diff --git a/README.md b/README.md index d578494ae..f6f71840f 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Digi Embedded Yocto (DEY) 5.0 -## Release 5.0-r3 +## Release 5.0-r4 This document provides information about Digi Embedded Yocto, Digi International's professional embedded Yocto development environment. @@ -147,11 +147,15 @@ Documentation is available online at https://www.digi.com/resources/documentatio # Downloads -* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/5.0/r3/images/ -* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/5.0/r3/sdk/ +* Demo images: https://ftp1.digi.com/support/digiembeddedyocto/5.0/r4/images/ +* Software Development Kit (SDK): https://ftp1.digi.com/support/digiembeddedyocto/5.0/r4/sdk/ # Release Changelog +## 5.0-r4 + +TODO + ## 5.0-r3 * ST-based platforms diff --git a/meta-digi-arm/conf/layer.conf b/meta-digi-arm/conf/layer.conf index 3f7c8ba15..1f68ab2ad 100644 --- a/meta-digi-arm/conf/layer.conf +++ b/meta-digi-arm/conf/layer.conf @@ -57,6 +57,16 @@ BBMASK += " \ meta-st-x-linux-ai/recipes-st/images/st-image-ai.bb \ " +# Tweak x-linux-isp dependencies to use ST's ISP packages +LAYERDEPENDS_x-linux-isp:remove = "st-openstlinux" +BBMASK += " \ + meta-st-x-linux-isp/recipes-st/images/st-image-isp.bb \ + meta-st-x-linux-isp/recipes-st/images/st-image-isp-lava.bb \ + meta-st-x-linux-isp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.12.bbappend \ + meta-st-x-linux-isp/recipes-devtools/x-linux-isp/x-linux-isp-tool.bb \ + meta-st-x-linux-isp/recipes-iqtune/stm32-isp-iqtune-application-python_6.1.0.bb \ +" + # Digi's General and Open Source license agreements DIGI_EULA_FILE = "${LAYERDIR}/DIGI_EULA" DIGI_OPEN_EULA_FILE = "${LAYERDIR}/DIGI_OPEN_EULA" diff --git a/meta-digi-arm/conf/machine/ccimx91-dvk.conf b/meta-digi-arm/conf/machine/ccimx91-dvk.conf index ec1355381..af86be294 100644 --- a/meta-digi-arm/conf/machine/ccimx91-dvk.conf +++ b/meta-digi-arm/conf/machine/ccimx91-dvk.conf @@ -8,6 +8,27 @@ MACHINEOVERRIDES =. "mx91:${DIGI_FAMILY}:${DIGI_SOM}:" # Include the machine configuration for Digi's ConnectCore 9 module include conf/machine/include/ccimx9.inc +# Console +SERIAL_CONSOLES = "115200;ttyLP5" + +# Bluetooth tty +BT_TTY ?= "ttyLP0" + +# Firmware +MACHINE_FIRMWARE:append = " ${@oe.utils.conditional('HAVE_WIFI', '1', 'firmware-nxp-wifi-nxpiw612-sdio firmware-murata-nxp', '', d)}" + +# Wi-Fi +WIRELESS_MODULE ?= "" +WIRELESS_MODULE:append = " ${@oe.utils.conditional('HAVE_WIFI', '1', 'kernel-module-nxp-wlan', '', d)}" +HAS_WIFI_VIRTWLANS = "true" +WLAN_P2P_INTERFACE = "p2p0" +MACHINE_EXTRA_RRECOMMENDS += "${WIRELESS_MODULE}" + +# XBee +XBEE_RESET_N_GPIO ?= "gpio2@19" +XBEE_SLEEP_RQ_GPIO ?= "" +XBEE_TTY ?= "ttyLP3" + # U-Boot configurations UBOOT_CONFIG ??= "ccimx91-dvk" UBOOT_CONFIG[ccimx91-dvk] = "ccimx91-dvk_defconfig" diff --git a/meta-digi-arm/conf/machine/ccimx93-dvk.conf b/meta-digi-arm/conf/machine/ccimx93-dvk.conf index 184c92c90..4aa4469a4 100644 --- a/meta-digi-arm/conf/machine/ccimx93-dvk.conf +++ b/meta-digi-arm/conf/machine/ccimx93-dvk.conf @@ -8,6 +8,28 @@ MACHINEOVERRIDES =. "mx93:${DIGI_FAMILY}:${DIGI_SOM}:" # Include the machine configuration for Digi's ConnectCore 9 module include conf/machine/include/ccimx9.inc +# Console +SERIAL_CONSOLES = "115200;ttyLP5" + +# Bluetooth tty +BT_TTY ?= "ttyLP0" + +# Firmware +MACHINE_FIRMWARE:append = " ${@oe.utils.conditional('HAVE_WIFI', '1', 'firmware-nxp-wifi-nxpiw612-sdio firmware-murata-nxp', '', d)}" +MACHINE_FIRMWARE:append = " ethos-u-firmware" + +# Wi-Fi +WIRELESS_MODULE ?= "" +WIRELESS_MODULE:append = " ${@oe.utils.conditional('HAVE_WIFI', '1', 'kernel-module-nxp-wlan', '', d)}" +HAS_WIFI_VIRTWLANS = "true" +WLAN_P2P_INTERFACE = "p2p0" +MACHINE_EXTRA_RRECOMMENDS += "${WIRELESS_MODULE}" + +# XBee +XBEE_RESET_N_GPIO ?= "gpio2@19" +XBEE_SLEEP_RQ_GPIO ?= "" +XBEE_TTY ?= "ttyLP3" + # U-Boot configurations UBOOT_CONFIG ??= "ccimx93-dvk" UBOOT_CONFIG[ccimx93-dvk] = "ccimx93-dvk_defconfig" @@ -43,7 +65,7 @@ KERNEL_DEVICETREE ?= " \ digi/ccimx9-dvk_mikroe-accel2-click.dtbo \ digi/ccimx9-dvk_mikroe-gyro-click.dtbo \ digi/ccimx93-dvk_dlc0200ccp04df-mipi-dsi.dtbo \ - digi/ccimx93-dvk_lvds.dtbo \ + digi/ccimx93-dvk_lvds-g101evn010.dtbo \ digi/ccimx93-dvk_nhd-3-5-640480ef-msxp-mipi-dsi.dtbo \ digi/ccimx93-dvk.dtb \ ${@bb.utils.contains('DISTRO_FEATURES', 'tsn', 'digi/ccimx9-dvk_eqos-tsn.dtbo', '', d)} \ @@ -53,9 +75,6 @@ FIT_CONF_DEFAULT_DTB = "ccimx93-dvk.dtb" # Per-machine DISTRO_FEATURES customization MACHINE_DISTRO_FEATURES_REMOVE = "vulkan" -# Add additional firmware -MACHINE_FIRMWARE:append = " ethos-u-firmware" - # Boot artifacts to be copied from the deploy dir to the installer ZIP BOOTABLE_ARTIFACTS = " \ imx-boot##SIGNED##-ccimx93-dvk.bin \ diff --git a/meta-digi-arm/conf/machine/ccimx95-dvk.conf b/meta-digi-arm/conf/machine/ccimx95-dvk.conf index 71f9a1180..f53b912a5 100644 --- a/meta-digi-arm/conf/machine/ccimx95-dvk.conf +++ b/meta-digi-arm/conf/machine/ccimx95-dvk.conf @@ -8,8 +8,29 @@ MACHINEOVERRIDES =. "mx95:${DIGI_FAMILY}:${DIGI_SOM}:" # Include the machine configuration for Digi's ConnectCore 9 module include conf/machine/include/ccimx9.inc -# XBEE -XBEE_RESET_N_GPIO = "43840000.gpio@21" +# SMARC module +SMARC ?= "1" + +# Machine features +MACHINE_FEATURES += "${@oe.utils.conditional('SMARC', '1', 'mca', '', d)}" + +# Console +SERIAL_CONSOLES = "115200;ttyLP0" + +# Bluetooth tty +BT_TTY ?= "ttyLP4" + +# Firmware +MACHINE_FIRMWARE:append = " ${@oe.utils.conditional('HAVE_WIFI', '1', 'firmware-murata-infineon', '', d)}" + +# Wi-Fi +HAS_WIFI_VIRTWLANS = "true" +WLAN_P2P_INTERFACE = "p2p0" + +# XBee +XBEE_RESET_N_GPIO ?= "43840000.gpio@21" +XBEE_SLEEP_RQ_GPIO ?= "" +XBEE_TTY ?= "ttyLP3" # U-Boot configurations UBOOT_CONFIG ??= "ccimx95-dvk" @@ -43,16 +64,14 @@ DDR_FIRMWARE_NAME = " \ KERNEL_DEVICETREE ?= " \ digi/ccimx95-dvk.dtb \ - digi/ccimx95-dvk_enet2.dtbo \ - digi/ccimx95-dvk_lvds0_g101evn010.dtbo \ - digi/ccimx95-dvk_lvds1_g101evn010.dtbo \ - digi/ccimx95-dvk_mikroe-accel2-click.dtbo \ - digi/ccimx95-dvk_mikroe-gyro-click.dtbo \ + digi/ccimx95-dvk_expi-os08a20-cam.dtbo \ + digi/ccimx95-dvk_gpio-watchdog.dtbo \ + digi/ccimx95-dvk_lvds0-g101evn010.dtbo \ + digi/ccimx95-dvk_lvds1-g101evn010.dtbo \ digi/ccimx95-dvk_pcam5c.dtbo \ + digi/ccimx95_bt.dtbo \ digi/ccimx95_npu.dtbo \ - digi/ccimx9_bt.dtbo \ - digi/ccimx9_bt-dtm.dtbo \ - digi/ccimx9_wifi.dtbo \ + digi/ccimx95_wifi.dtbo \ " FIT_CONF_DEFAULT_DTB = "ccimx95-dvk.dtb" @@ -63,3 +82,13 @@ DEFAULT_IMAGE_NAME ?= "dey-image-chromium" BOOTABLE_ARTIFACTS = " \ imx-boot##SIGNED##-ccimx95-dvk.bin \ " + +# Systemd logind power key event. +# short press: +# SMARC=1: graceful poweroff +# SMARC=0: suspend +# long press: +# SMARC=1: ignored by systemd (absorbed by MCA fw for a forceful poweroff) +# SMARC=0: graceful poweroff +LOGIND_HANDLE_POWER_KEY ?= "${@oe.utils.conditional('SMARC', '1', 'poweroff', 'suspend', d)}" +LOGIND_HANDLE_POWER_KEY_LONGPRESS ?= "${@oe.utils.conditional('SMARC', '1', 'ignore', 'poweroff', d)}" diff --git a/meta-digi-arm/conf/machine/ccmp13-dvk.conf b/meta-digi-arm/conf/machine/ccmp13-dvk.conf index 8bd31d79e..cc3c86773 100644 --- a/meta-digi-arm/conf/machine/ccmp13-dvk.conf +++ b/meta-digi-arm/conf/machine/ccmp13-dvk.conf @@ -96,16 +96,6 @@ WKS_FILE += "ccmp1-256MB.wks.in" # For populate_sdk, gcc-arm-none-eabi_9 has a python2 dependency, so we remove it. ST_TOOLS_FOR_SDK:remove = "nativesdk-gcc-arm-none-eabi" -# ========================================================================= -# flashlayout -# ========================================================================= -# Define the config labels to use to generate flashlayout file - -# ========================================================================= -# extlinux configuration -# ========================================================================= -# As example, modify the default boot config for each target to M4 config - # ========================================================================= # Debug trace # ========================================================================= @@ -113,13 +103,14 @@ ST_TOOLS_FOR_SDK:remove = "nativesdk-gcc-arm-none-eabi" ST_DEBUG_TRACE = "0" # ========================================================================= -# Flashlayouts +# Signing configuration # ========================================================================= +SIGN_HEADER_VERSION_stm32mp13 ?= "2.0" # ========================================================================= # DEY settings # ========================================================================= -IMAGE_CLASSES = "image_types_digi image_types-stubi" +IMAGE_CLASSES = "image_types_digi" # mkfs.ubifs parameters for boot partition (the one holding kernel and device tree files) # Max LEB count (-c 255) calculated for a partition of up to 32 MiB considering 128 KiB erase-block size. @@ -153,14 +144,21 @@ ST_USERFS = "0" # Boot artifacts to be copied from the deploy dir to the installer ZIP BOOTABLE_ARTIFACTS = " \ - ${@oe.utils.ifelse(d.getVar('TRUSTFENCE_SIGN') == '1', 'tf-a-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand${SIGN_SUFFIX}.stm32', \ - 'tf-a-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand.stm32')} \ + ${@oe.utils.ifelse(d.getVar('TRUSTFENCE_SIGN') == '1', \ + oe.utils.ifelse(d.getVar('TRUSTFENCE_ENCRYPT') == '0', 'tf-a-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand${SIGN_SUFFIX}.stm32 ', \ + 'tf-a-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand${ENCRYPT_SUFFIX}${SIGN_SUFFIX}.stm32 '), \ + 'tf-a-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand.stm32 ')} \ metadata-ccmp13-dvk.bin \ - ${@oe.utils.ifelse(d.getVar('TRUSTFENCE_SIGN') == '1', 'fip-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand${SIGN_SUFFIX}.bin', \ - 'fip-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand.bin')} \ + ${@oe.utils.ifelse(d.getVar('TRUSTFENCE_SIGN') == '1', \ + oe.utils.ifelse(d.getVar('TRUSTFENCE_ENCRYPT') == '0', 'fip-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand${SIGN_SUFFIX}.bin ', \ + 'fip-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand${ENCRYPT_SUFFIX}${SIGN_SUFFIX}.bin '), \ + 'fip-ccmp13-dvk-256MB-${BOOTSCHEME_DEFAULT}-nand.bin ')} \ " # Default overlayfs_etc mount point and type OVERLAYFS_ETC_MOUNT_POINT ?= "/mnt/data" OVERLAYFS_ETC_DEVICE ?= "ubi1:data" OVERLAYFS_ETC_FSTYPE ?= "ubifs" + +# Bluetooth +BT_TTY ?= "ttySTM1" diff --git a/meta-digi-arm/conf/machine/ccmp15-dvk.conf b/meta-digi-arm/conf/machine/ccmp15-dvk.conf index a0ca37532..368dfd8a6 100644 --- a/meta-digi-arm/conf/machine/ccmp15-dvk.conf +++ b/meta-digi-arm/conf/machine/ccmp15-dvk.conf @@ -112,16 +112,6 @@ WKS_FILES += " \ # For populate_sdk, gcc-arm-none-eabi_9 has a python2 dependency, so we remove it. ST_TOOLS_FOR_SDK:remove = "nativesdk-gcc-arm-none-eabi" -# ========================================================================= -# flashlayout -# ========================================================================= -# Define the config labels to use to generate flashlayout file - -# ========================================================================= -# extlinux configuration -# ========================================================================= -# As example, modify the default boot config for each target to M4 config - # ========================================================================= # Debug trace # ========================================================================= @@ -129,13 +119,14 @@ ST_TOOLS_FOR_SDK:remove = "nativesdk-gcc-arm-none-eabi" ST_DEBUG_TRACE = "0" # ========================================================================= -# Flashlayouts +# Signing configuration # ========================================================================= +SIGN_HEADER_VERSION_stm32mp15 ?= "1.0" # ========================================================================= # DEY settings # ========================================================================= -IMAGE_CLASSES = "image_types_digi image_types-stubi" +IMAGE_CLASSES = "image_types_digi" # mkfs.ubifs parameters for boot partition (the one holding kernel and device tree files) # Max LEB count (-c 255) calculated for a partition of up to 32 MiB considering 128 KiB erase-block size. @@ -181,3 +172,6 @@ BOOTABLE_ARTIFACTS = " \ OVERLAYFS_ETC_MOUNT_POINT ?= "/mnt/data" OVERLAYFS_ETC_DEVICE ?= "ubi1:data" OVERLAYFS_ETC_FSTYPE ?= "ubifs" + +# Bluetooth +BT_TTY ?= "ttySTM1" diff --git a/meta-digi-arm/conf/machine/ccmp25-dvk.conf b/meta-digi-arm/conf/machine/ccmp25-dvk.conf index 5030ce62e..c0e751c98 100644 --- a/meta-digi-arm/conf/machine/ccmp25-dvk.conf +++ b/meta-digi-arm/conf/machine/ccmp25-dvk.conf @@ -118,6 +118,14 @@ WKS_FILES += " \ ccmp2-1GB.wks.in \ " +# ========================================================================= +# Signing configuration +# ========================================================================= +SIGN_HEADER_VERSION_stm32mp25 ?= "2.2" + +# ========================================================================= +# DEY settings +# ========================================================================= # Wireless external module HAS_WIFI_VIRTWLANS = "true" @@ -166,3 +174,6 @@ IMAGE_ROOTFS_MAXSIZE = "2621440" OVERLAYFS_ETC_MOUNT_POINT ?= "/mnt/data" OVERLAYFS_ETC_DEVICE ?= "/dev/mmcblk0p11" OVERLAYFS_ETC_FSTYPE ?= "ext4" + +# Bluetooth +BT_TTY ?= "ttySTM1" diff --git a/meta-digi-arm/conf/machine/include/ccimx9.inc b/meta-digi-arm/conf/machine/include/ccimx9.inc index 738396ef4..6b14c4378 100644 --- a/meta-digi-arm/conf/machine/include/ccimx9.inc +++ b/meta-digi-arm/conf/machine/include/ccimx9.inc @@ -53,11 +53,6 @@ TRUSTFENCE_SIGN_MODE = "AHAB" IMX_BOOT_SEEK = "32" -SERIAL_CONSOLES = "115200;ttyLP5" - -# Bluetooth tty -BT_TTY ?= "ttyLP0" - # SWUpdate sw-description configuration BOOTFS_EXT ?= ".boot.vfat" ROOTFS_EXT ?= '${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", ".squashfs", ".ext4.gz", d)}' @@ -67,21 +62,6 @@ ROOTFS_DEV_NAME ?= "/dev/mmcblk0p3" ROOTFS_ENC_DEV = "/dev/mapper/cryptrootfs" ROOTFS_DEV_NAME_FINAL = "${@oe.utils.ifelse(d.getVar('TRUSTFENCE_ENCRYPT_ROOTFS') == '1', '${ROOTFS_ENC_DEV}', '${ROOTFS_DEV_NAME}')}" -# Wireless external module -WIRELESS_MODULE ?= "" -WIRELESS_MODULE:append = " ${@oe.utils.conditional('HAVE_WIFI', '1', 'kernel-module-nxp-wlan', '', d)}" -HAS_WIFI_VIRTWLANS = "true" - -# Machine firmware -MACHINE_FIRMWARE:append = " ${@oe.utils.conditional('HAVE_WIFI', '1', 'firmware-nxp-wifi-nxpiw612-sdio firmware-murata-nxp', '', d)}" - -MACHINE_EXTRA_RRECOMMENDS += "${WIRELESS_MODULE}" - -# XBee -XBEE_RESET_N_GPIO ?= "gpio2@19" -XBEE_SLEEP_RQ_GPIO ?= "" -XBEE_TTY ?= "ttyLP3" - # Default overlayfs_etc mount point and type OVERLAYFS_ETC_MOUNT_POINT ?= "/mnt/data" OVERLAYFS_ETC_DEVICE ?= "/dev/mmcblk0p7" diff --git a/meta-digi-arm/conf/machine/include/ccmp1.inc b/meta-digi-arm/conf/machine/include/ccmp1.inc index 36f673a81..d625b41e9 100644 --- a/meta-digi-arm/conf/machine/include/ccmp1.inc +++ b/meta-digi-arm/conf/machine/include/ccmp1.inc @@ -114,6 +114,9 @@ SWUPDATE_MTD_BLACKLIST = "0 1 2 3 4 5" # Remove custom kernel headers from toolchain ST_TOOLS_FOR_TARGET_SDK:remove = "kernel-headers" +# Disable partitions configuration from ST layer +ENABLE_PARTITIONS_IMAGE ??= "0" + # Skip warnings for packages using 32-bit APIs INSANE_SKIP:append:pn-alsa-lib = " 32bit-time" INSANE_SKIP:append:pn-ir-keytable = " 32bit-time" diff --git a/meta-digi-arm/conf/machine/include/ccmp2.inc b/meta-digi-arm/conf/machine/include/ccmp2.inc index e69eaee54..897799d17 100644 --- a/meta-digi-arm/conf/machine/include/ccmp2.inc +++ b/meta-digi-arm/conf/machine/include/ccmp2.inc @@ -130,3 +130,13 @@ ENABLE_FLASHLAYOUT_CONFIG = "0" # Remove custom kernel headers from toolchain ST_TOOLS_FOR_TARGET_SDK:remove = " kernel-headers " + +# Remove toolchain for TF-A on aarch64 added by st-machine-common-stm32mp.inc +# because it throws a build issue. +ST_TOOLS_FOR_SDK:remove:aarch64 = " \ + nativesdk-gcc-aarch64-none-elf \ + nativesdk-gcc-aarch64-none-elf-staticdev \ +" + +# Disable partitions configuration from ST layer +ENABLE_PARTITIONS_IMAGE ??= "0" diff --git a/meta-digi-arm/conf/machine/include/digi-defaults.inc b/meta-digi-arm/conf/machine/include/digi-defaults.inc index a39a1bd4c..745f71501 100644 --- a/meta-digi-arm/conf/machine/include/digi-defaults.inc +++ b/meta-digi-arm/conf/machine/include/digi-defaults.inc @@ -116,6 +116,7 @@ BOOTLOADER_SEEK_BOOTPART ?= "0" # This is otherwise forced by systemd because of hard-coded paths # in systemd source code. ROOT_HOME ?= "/root" +CC_CONTAINER_PATH ?= "${ROOT_HOME}/cc-container" # Default IMAGE_FSTYPES for eMMC/NAND IMAGE_FSTYPES ?= "${@ \ @@ -130,3 +131,7 @@ IMAGE_FSTYPES ?= "${@ \ '' , d), \ d) \ }" + +# Systemd logind power key event +LOGIND_HANDLE_POWER_KEY ??= "suspend" +LOGIND_HANDLE_POWER_KEY_LONGPRESS ??= "poweroff" diff --git a/meta-digi-arm/conf/machine/include/imx-digi-base.inc b/meta-digi-arm/conf/machine/include/imx-digi-base.inc index 5221f33ea..2eee65fb2 100644 --- a/meta-digi-arm/conf/machine/include/imx-digi-base.inc +++ b/meta-digi-arm/conf/machine/include/imx-digi-base.inc @@ -236,13 +236,13 @@ IMX_EXTRA_FIRMWARE:mx95-generic-bsp = "imx-boot-firmware-files firmware-ele-im # Firmware MACHINE_FIRMWARE ?= "" -MACHINE_FIRMWARE:append:mx6-generic-bsp = " firmware-imx-sdma-imx6q" +MACHINE_FIRMWARE:append:mx6-generic-bsp = " linux-firmware-imx-sdma-imx6q" MACHINE_FIRMWARE:append:mx6q-generic-bsp = " firmware-imx-vpu-imx6q" MACHINE_FIRMWARE:append:mx6dl-generic-bsp = " firmware-imx-vpu-imx6d firmware-imx-epdc" -MACHINE_FIRMWARE:append:mx8mm-generic-bsp = " firmware-imx-sdma-imx7d" -MACHINE_FIRMWARE:append:mx8mn-generic-bsp = " firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn" -MACHINE_FIRMWARE:append:mx8qxp-generic-bsp = " firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" -MACHINE_FIRMWARE:append:mx8dx-generic-bsp = " firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" +MACHINE_FIRMWARE:append:mx8mm-generic-bsp = " linux-firmware-imx-sdma-imx7d" +MACHINE_FIRMWARE:append:mx8mn-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-easrc-imx8mn" +MACHINE_FIRMWARE:append:mx8qxp-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" +MACHINE_FIRMWARE:append:mx8dx-generic-bsp = " linux-firmware-imx-sdma-imx7d firmware-imx-vpu-amphion" MACHINE_FIRMWARE:append:mx95-generic-bsp = " firmware-imx-vpu-wave" MACHINE_EXTRA_RRECOMMENDS += "${MACHINE_FIRMWARE}" @@ -289,7 +289,7 @@ PREFERRED_VERSION_gstreamer1.0-vaapi:imx-nxp-bsp ??= "1.24.0.imx" PREFERRED_VERSION_ffmpeg:imx-nxp-bsp ??= "4.4.1" # Use newer libvpx from 'meta-oe' (otherwise uses older from 'meta-webkit) -PREFERRED_VERSION_libvpx:imx-nxp-bsp ??= "1.14.0" +PREFERRED_VERSION_libvpx:imx-nxp-bsp ??= "1.14.%" # Determines if the SoC has support for Vivante kernel driver SOC_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT = "0" @@ -390,8 +390,8 @@ WKS_FILE_DEPENDS:append:mx8-nxp-bsp = " imx-boot" WKS_FILE_DEPENDS:append:mx9-nxp-bsp = " imx-boot" SOC_DEFAULT_WKS_FILE ?= "imx-uboot-bootpart.wks.in" -SOC_DEFAULT_WKS_FILE:mx8-generic-bsp ?= "imx-imx-boot-bootpart.wks.in" -SOC_DEFAULT_WKS_FILE:mx9-generic-bsp ?= "imx-imx-boot-bootpart.wks.in" +SOC_DEFAULT_WKS_FILE:mx8-generic-bsp ?= "imx-imx-boot-bootpart-uboot-env.wks.in" +SOC_DEFAULT_WKS_FILE:mx9-generic-bsp ?= "imx-imx-boot-bootpart-uboot-env.wks.in" WKS_FILE ?= "${SOC_DEFAULT_WKS_FILE}" diff --git a/meta-digi-arm/conf/templates/ccimx95-dvk/conf-notes.txt b/meta-digi-arm/conf/templates/ccimx95-dvk/conf-notes.txt index ea31a59b3..683e5abd2 100644 --- a/meta-digi-arm/conf/templates/ccimx95-dvk/conf-notes.txt +++ b/meta-digi-arm/conf/templates/ccimx95-dvk/conf-notes.txt @@ -18,3 +18,9 @@ Digi Embedded Yocto provides the following image recipes: Expansion of custom Digi core-image-base including full Flutter framework support. + + * dey-image-container-manager: container management image + + Minimal image including the trimmed Podman and LXC runtimes used to + manage container artifacts on target. + Requires DISTRO_FEATURES:append = " virtualization" in local.conf. diff --git a/meta-digi-arm/conf/templates/ccmp25-dvk/conf-notes.txt b/meta-digi-arm/conf/templates/ccmp25-dvk/conf-notes.txt index a9a19bfe1..e5c2212ab 100644 --- a/meta-digi-arm/conf/templates/ccmp25-dvk/conf-notes.txt +++ b/meta-digi-arm/conf/templates/ccmp25-dvk/conf-notes.txt @@ -19,6 +19,12 @@ Digi Embedded Yocto provides the following image recipes: Expansion of custom Digi core-image-base including full Flutter framework support. + * dey-image-container-manager: container management image + + Minimal image including the trimmed Podman and LXC runtimes used to + manage container artifacts on target. + Requires DISTRO_FEATURES:append = " virtualization" in local.conf. + * core-image-base: a console-only image Expansion of native core-image-base by including all the support for the diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0001-boards-ccimx95-add-platform-as-a-clone-of-mx95lp5.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0001-boards-ccimx95-add-platform-as-a-clone-of-mx95lp5.patch deleted file mode 100644 index 0eb6e9272..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0001-boards-ccimx95-add-platform-as-a-clone-of-mx95lp5.patch +++ /dev/null @@ -1,32672 +0,0 @@ -From: Javier Viguera -Date: Mon, 15 Sep 2025 11:38:14 +0200 -Subject: [PATCH] boards: ccimx95: add platform as a clone of mx95lp5 - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Javier Viguera ---- - boards/ccimx95/Makefile | 25 + - boards/ccimx95/board.c | 80 + - boards/ccimx95/board.h | 72 + - boards/ccimx95/config_board.h | 61 + - ...X19_6400MTS_FW2024.09_ECC_enabled_timing.c | 10757 ++++++++++++++++ - ...PDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c | 10752 +++++++++++++++ - boards/ccimx95/ddr/Makefile | 4 + - ...XIMX95LPD5EVK19_6400mbps_train_timing_a1.c | 10754 +++++++++++++++ - boards/ccimx95/pin_mux.c | 33 + - boards/ccimx95/pin_mux.h | 44 + - 10 files changed, 32582 insertions(+) - create mode 100644 boards/ccimx95/Makefile - create mode 100644 boards/ccimx95/board.c - create mode 100644 boards/ccimx95/board.h - create mode 100644 boards/ccimx95/config_board.h - create mode 100644 boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c - create mode 100644 boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c - create mode 100644 boards/ccimx95/ddr/Makefile - create mode 100644 boards/ccimx95/ddr/XIMX95LPD5EVK19_6400mbps_train_timing_a1.c - create mode 100644 boards/ccimx95/pin_mux.c - create mode 100644 boards/ccimx95/pin_mux.h - -diff --git a/boards/ccimx95/Makefile b/boards/ccimx95/Makefile -new file mode 100644 -index 000000000000..321143748ec1 ---- /dev/null -+++ b/boards/ccimx95/Makefile -@@ -0,0 +1,25 @@ -+cpu := m33 -+SOC := MIMX95 -+SOCFULL := $(SOC) -+SOC_DEVICE_DIR := devices/$(SOC) -+ -+ifneq ($(REV),A0) -+FLAGS += -DCONFIG_DUMMY_TRAIN_DATA_SUPPORT -DCONFIG_ELE -+endif -+ -+BOARDS_DIR = $(ROOT_DIR)/boards -+BOARD_DIR = $(BOARDS_DIR)/$(SOM) -+ -+INCLUDE += \ -+ -I$(BOARDS_DIR) \ -+ -I$(BOARD_DIR) -+ -+ifeq ($(DEBUG),1) -+OBJS += \ -+ $(OUT)/board.o \ -+ $(OUT)/pin_mux.o -+endif -+ -+VPATH += \ -+ $(BOARDS_DIR) \ -+ $(BOARD_DIR) -diff --git a/boards/ccimx95/board.c b/boards/ccimx95/board.c -new file mode 100644 -index 000000000000..1de026235304 ---- /dev/null -+++ b/boards/ccimx95/board.c -@@ -0,0 +1,80 @@ -+/* -+ * Copyright 2023-2024 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ */ -+ -+#include "oei.h" -+#include "board.h" -+#include "fsl_lpuart.h" -+#include "fsl_ccm.h" -+#include "fsl_clock.h" -+ -+/******************************************************************************* -+ * Variables -+ ******************************************************************************/ -+/* Debug UART base pointer list */ -+static LPUART_Type *const s_uartBases[] = LPUART_BASE_PTRS; -+ -+/* Debug UART clock list */ -+static uint32_t const s_uartClks[] = -+{ -+ 0U, -+ CLOCK_ROOT_LPUART1, -+ CLOCK_ROOT_LPUART2, -+ CLOCK_ROOT_LPUART3, -+ CLOCK_ROOT_LPUART4, -+ CLOCK_ROOT_LPUART5, -+ CLOCK_ROOT_LPUART6, -+ CLOCK_ROOT_LPUART7, -+ CLOCK_ROOT_LPUART8 -+}; -+ -+/* Debug UART configuration info */ -+static board_uart_config_t const s_uartConfig = -+{ -+ .base = s_uartBases[BOARD_DEBUG_UART_INSTANCE], -+ .clockId = s_uartClks[BOARD_DEBUG_UART_INSTANCE], -+ .baud = BOARD_DEBUG_UART_BAUDRATE, -+ .inst = BOARD_DEBUG_UART_INSTANCE -+}; -+ -+/******************************************************************************* -+ * Code -+ ******************************************************************************/ -+ -+/*--------------------------------------------------------------------------*/ -+/* Return the debug UART info */ -+/*--------------------------------------------------------------------------*/ -+const board_uart_config_t *BOARD_GetDebugUart(void) -+{ -+ return &s_uartConfig; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Initialize debug console */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_InitDebugConsole(void) -+{ -+ if (s_uartConfig.base != NULL) -+ { -+#if 0 -+ uint64_t rate = CCM_RootGetRate(s_uartConfig.clockId); -+#else -+ uint64_t rate = 24000000; -+#endif -+ -+ /* Configure debug UART */ -+ lpuart_config_t lpuart_config; -+ LPUART_GetDefaultConfig(&lpuart_config); -+ lpuart_config.baudRate_Bps = s_uartConfig.baud; -+ lpuart_config.rxFifoWatermark = ((uint8_t) -+ FSL_FEATURE_LPUART_FIFO_SIZEn(s_uartConfig.base)) - 1U; -+ lpuart_config.txFifoWatermark = ((uint8_t) -+ FSL_FEATURE_LPUART_FIFO_SIZEn(s_uartConfig.base)) - 1U; -+ lpuart_config.enableTx = true; -+ lpuart_config.enableRx = true; -+ (void) LPUART_Init(s_uartConfig.base, &lpuart_config, -+ (uint32_t) rate & 0xFFFFFFFFU); -+ } -+} -diff --git a/boards/ccimx95/board.h b/boards/ccimx95/board.h -new file mode 100644 -index 000000000000..6142222a4739 ---- /dev/null -+++ b/boards/ccimx95/board.h -@@ -0,0 +1,72 @@ -+/* -+ * Copyright 2023-2024 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ */ -+ -+#ifndef BOARD_H -+#define BOARD_H -+ -+#include "fsl_common.h" -+#include "pin_mux.h" -+#include "config_board.h" -+ -+/*! -+ * @addtogroup BRD_OEI_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing the board API. -+ */ -+ -+/******************************************************************************* -+ * Types -+ ******************************************************************************/ -+ -+/*! -+ * Debug UART configuration info -+ */ -+typedef struct -+{ -+ LPUART_Type *const base; /*!< LPUART base pointer */ -+ uint32_t clockId; /*!< Clock ID */ -+ uint32_t baud; /*!< Baud rate */ -+ uint8_t inst; /*!< Instance number */ -+} board_uart_config_t; -+ -+#if defined(__cplusplus) -+extern "C" { -+#endif /* __cplusplus */ -+ -+/******************************************************************************* -+ * API -+ ******************************************************************************/ -+ -+/*! Init hardware */ -+void BOARD_InitHardware(void); -+ -+/*! Init clocks */ -+void BOARD_InitClocks(void); -+ -+/*! -+ * Get a device clock debug UART info. -+ * -+ * This function returns the UART info for the UART used for SM -+ * debug. -+ * -+ * @return Returns the debug UART config info. -+ */ -+const board_uart_config_t *BOARD_GetDebugUart(void); -+ -+/*! Init the debug UART */ -+void BOARD_InitDebugConsole(void); -+ -+#if defined(__cplusplus) -+} -+#endif /* __cplusplus */ -+ -+/** @} */ -+ -+#endif /* BOARD_H */ -diff --git a/boards/ccimx95/config_board.h b/boards/ccimx95/config_board.h -new file mode 100644 -index 000000000000..3095ebf1d8ce ---- /dev/null -+++ b/boards/ccimx95/config_board.h -@@ -0,0 +1,61 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2024 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing coniguration info for the board abstraction. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_BOARD_H -+#define CONFIG_BOARD_H -+ -+/* Includes */ -+ -+/* Defines */ -+ -+/*! Config for UART instance */ -+#define BOARD_DEBUG_UART_INSTANCE 2U -+/*! Config for UART baudrate */ -+#define BOARD_DEBUG_UART_BAUDRATE 115200U -+ -+#endif /* CONFIG_BOARD_H */ -+ -+/** @} */ -diff --git a/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c b/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c -new file mode 100644 -index 000000000000..99b2ec568cb8 ---- /dev/null -+++ b/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c -@@ -0,0 +1,10757 @@ -+/* -+ * Copyright 2025 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ * -+ * Code generated with DDR Tool v3.7.0_0.2-4600df02. -+ * DDR PHY FW2024.09 -+ * Chip revision: B0 -+ */ -+ -+#include "ddr.h" -+ -+/* Initialize DDRC registers */ -+static struct ddrc_cfg_param ddr_ddrc_cfg[] = { -+ {0x5e080110, 0x41114001U}, -+ {0x5e080000, 0x37fU}, -+ {0x5e080008, 0x0U}, -+ {0x5e080010, 0x3U}, -+ {0x5e080014, 0x80000U}, -+ {0x5e080020, 0x80000000U}, -+ {0x5e080024, 0x8000fffU}, -+ {0x5e080028, 0x80000000U}, -+ {0x5e08002c, 0x7ffU}, -+ {0x5e080080, 0x80800522U}, -+ {0x5e080084, 0x80800522U}, -+ {0x5e080114, 0x201000U}, -+ {0x5e080260, 0x800a1U}, -+ {0x5e080268, 0x0U}, -+ {0x5e08026c, 0x3d04U}, -+ {0x5e080278, 0x10U}, -+ {0x5e080800, 0x43d3bd80U}, -+ {0x5e080804, 0x1f1f1f1fU}, -+ {0x5e080810, 0x14084060U}, -+ {0x5e080c00, 0x40000000U}, -+ {0x5e081000, 0xc00000e3U}, -+ {0x5e080d00, 0x81000200U}, -+ {0x5e080d60, 0x0U}, -+ {0x5e080d64, 0x80000000U}, -+ {0x5e080d68, 0x3U}, -+ {0x5e080d6c, 0xffffffffU}, -+ {0x5e081220, 0x0U}, -+ {0x5e081224, 0x0U}, -+ {0x5e081228, 0x0U}, -+ {0x5e08122c, 0x0U}, -+ {0x5e081230, 0x0U}, -+ {0x5e081234, 0x0U}, -+ {0x5e081238, 0x0U}, -+ {0x5e08123c, 0x0U}, -+ {0x5e081240, 0x0U}, -+ {0x5e081244, 0x0U}, -+ {0x5e081248, 0x0U}, -+ {0x5e08124c, 0x0U}, -+ {0x5e081250, 0x0U}, -+ {0x5e081254, 0x0U}, -+ {0x5e081258, 0x0U}, -+ {0x5e08125c, 0x0U}, -+}; -+ -+/* DRAM fsp configurations */ -+static struct ddrc_cfg_param ddr_dram_fsp0_ddrc_cfg[] = { -+ {0x5e080100, 0x020D2100U}, -+ {0x5e080104, 0x4866000CU}, -+ {0x5e080108, 0xF2F28D47U}, -+ {0x5e08010C, 0x20488010U}, -+ {0x5e080124, 0x0C230000U}, -+ {0x5e080160, 0x00000101U}, -+ {0x5e08016C, 0x01300000U}, -+ {0x5e080170, 0x8C010509U}, -+ {0x5e080250, 0x00110C11U}, -+ {0x5e080254, 0x00680040U}, -+ {0x5e080258, 0x03003E80U}, -+ {0x5e08025C, 0x40520200U}, -+ {0x5e080300, 0x08110809U}, -+ {0x5e080304, 0x00680F02U}, -+ {0x5e080308, 0x06040603U}, -+ {0x5e08030C, 0x0030001CU}, -+ {0x5e080310, 0x20610000U}, -+ {0x5e080314, 0x0A0A0407U}, -+}; -+ -+/* PHY Initialize Configuration */ -+static struct ddrphy_cfg_param ddr_ddrphy_cfg[] = { -+ {0x10080, 0x7}, -+ {0x10081, 0x5}, -+ {0x10082, 0x6}, -+ {0x10083, 0x1}, -+ {0x10084, 0x2}, -+ {0x10085, 0x0}, -+ {0x10086, 0x3}, -+ {0x10087, 0x4}, -+ {0x11080, 0x0}, -+ {0x11081, 0x1}, -+ {0x11082, 0x2}, -+ {0x11083, 0x3}, -+ {0x11084, 0x4}, -+ {0x11085, 0x7}, -+ {0x11086, 0x6}, -+ {0x11087, 0x5}, -+ {0x12080, 0x5}, -+ {0x12081, 0x6}, -+ {0x12082, 0x1}, -+ {0x12083, 0x7}, -+ {0x12084, 0x4}, -+ {0x12085, 0x2}, -+ {0x12086, 0x0}, -+ {0x12087, 0x3}, -+ {0x13080, 0x0}, -+ {0x13081, 0x3}, -+ {0x13082, 0x2}, -+ {0x13083, 0x7}, -+ {0x13084, 0x4}, -+ {0x13085, 0x5}, -+ {0x13086, 0x6}, -+ {0x13087, 0x1}, -+ {0x30090, 0x4}, -+ {0x30091, 0x3}, -+ {0x30092, 0x6}, -+ {0x30093, 0x0}, -+ {0x30094, 0x5}, -+ {0x30095, 0x1}, -+ {0x30096, 0x2}, -+ {0x31090, 0x1}, -+ {0x31091, 0x3}, -+ {0x31092, 0x4}, -+ {0x31093, 0x6}, -+ {0x31094, 0x2}, -+ {0x31095, 0x0}, -+ {0x31096, 0x5}, -+ {0x20060, 0x2}, -+ {0x200a5, 0x1}, -+ {0xd0036, 0x0}, -+ {0x200bd, 0xff}, -+ {0x20300, 0x808}, -+ {0x20303, 0x9}, -+ {0x20302, 0x26}, -+ {0x20328, 0x0}, -+ {0x20301, 0x3}, -+ {0x2030b, 0x0}, -+ {0x300a7, 0x0}, -+ {0x310a7, 0x0}, -+ {0x300ae, 0x80}, -+ {0x300ad, 0x80}, -+ {0x300ac, 0x80}, -+ {0x310ae, 0x80}, -+ {0x310ad, 0x80}, -+ {0x310ac, 0x80}, -+ {0xc0086, 0x0}, -+ {0x100a3, 0xb33}, -+ {0x110a3, 0xb33}, -+ {0x120a3, 0xb33}, -+ {0x130a3, 0xb33}, -+ {0xc00f1, 0x6000}, -+ {0xc00f2, 0xa9}, -+ {0xc00f3, 0x8000}, -+ {0xc00f4, 0x5}, -+ {0xc00f5, 0x4000}, -+ {0xc00f6, 0x2}, -+ {0xc00f7, 0xf000}, -+ {0xc00f9, 0x6000}, -+ {0xc00fa, 0xa9}, -+ {0xc00fb, 0x8000}, -+ {0xc00fd, 0x4000}, -+ {0xc00ff, 0xf000}, -+ {0x908ff, 0xf}, -+ {0x10093, 0x0}, -+ {0x11093, 0x0}, -+ {0x12093, 0x0}, -+ {0x13093, 0x0}, -+ {0x20051, 0x3}, -+}; -+ -+/* PHY trained csr */ -+static struct ddrphy_cfg_param ddr_ddrphy_trained_csr[] = { -+ {0x200a5, 0x0}, -+ {0xd0036, 0x0}, -+ {0x200bd, 0x0}, -+ {0x20300, 0x0}, -+ {0x20303, 0x0}, -+ {0x20302, 0x0}, -+ {0x20328, 0x0}, -+ {0x20301, 0x0}, -+ {0x2030b, 0x0}, -+ {0x300a7, 0x0}, -+ {0x310a7, 0x0}, -+ {0x300ae, 0x0}, -+ {0x300ad, 0x0}, -+ {0x300ac, 0x0}, -+ {0x310ae, 0x0}, -+ {0x310ad, 0x0}, -+ {0x310ac, 0x0}, -+ {0xc0086, 0x0}, -+ {0x100a3, 0x0}, -+ {0x110a3, 0x0}, -+ {0x120a3, 0x0}, -+ {0x130a3, 0x0}, -+ {0xc00f1, 0x0}, -+ {0xc00f2, 0x0}, -+ {0xc00f3, 0x0}, -+ {0xc00f4, 0x0}, -+ {0xc00f5, 0x0}, -+ {0xc00f6, 0x0}, -+ {0xc00f7, 0x0}, -+ {0xc00f9, 0x0}, -+ {0xc00fa, 0x0}, -+ {0xc00fb, 0x0}, -+ {0xc00fd, 0x0}, -+ {0xc00ff, 0x0}, -+ {0x908ff, 0x0}, -+ {0x10093, 0x0}, -+ {0x11093, 0x0}, -+ {0x12093, 0x0}, -+ {0x13093, 0x0}, -+ {0x20051, 0x0}, -+ {0x90802, 0x0}, -+ {0x20002, 0x0}, -+ {0x20000, 0x0}, -+ {0x90801, 0x0}, -+ {0x90809, 0x0}, -+ {0x1005e, 0x0}, -+ {0x10060, 0x0}, -+ {0x10062, 0x0}, -+ {0x10064, 0x0}, -+ {0x1005f, 0x0}, -+ {0x10061, 0x0}, -+ {0x10063, 0x0}, -+ {0x10065, 0x0}, -+ {0x1105e, 0x0}, -+ {0x11060, 0x0}, -+ {0x11062, 0x0}, -+ {0x11064, 0x0}, -+ {0x1105f, 0x0}, -+ {0x11061, 0x0}, -+ {0x11063, 0x0}, -+ {0x11065, 0x0}, -+ {0x1205e, 0x0}, -+ {0x12060, 0x0}, -+ {0x12062, 0x0}, -+ {0x12064, 0x0}, -+ {0x1205f, 0x0}, -+ {0x12061, 0x0}, -+ {0x12063, 0x0}, -+ {0x12065, 0x0}, -+ {0x1305e, 0x0}, -+ {0x13060, 0x0}, -+ {0x13062, 0x0}, -+ {0x13064, 0x0}, -+ {0x1305f, 0x0}, -+ {0x13061, 0x0}, -+ {0x13063, 0x0}, -+ {0x13065, 0x0}, -+ {0x10005, 0x0}, -+ {0x1000b, 0x0}, -+ {0x11005, 0x0}, -+ {0x1100b, 0x0}, -+ {0x12005, 0x0}, -+ {0x1200b, 0x0}, -+ {0x13005, 0x0}, -+ {0x1300b, 0x0}, -+ {0x20007, 0x0}, -+ {0x20013, 0x0}, -+ {0x30038, 0x0}, -+ {0x30039, 0x0}, -+ {0x3003a, 0x0}, -+ {0x31038, 0x0}, -+ {0x31039, 0x0}, -+ {0x3103a, 0x0}, -+ {0x10038, 0x0}, -+ {0x1003a, 0x0}, -+ {0x11038, 0x0}, -+ {0x1103a, 0x0}, -+ {0x12038, 0x0}, -+ {0x1203a, 0x0}, -+ {0x13038, 0x0}, -+ {0x1303a, 0x0}, -+ {0x1003b, 0x0}, -+ {0x1103b, 0x0}, -+ {0x1203b, 0x0}, -+ {0x1303b, 0x0}, -+ {0x10009, 0x0}, -+ {0x10037, 0x0}, -+ {0x11009, 0x0}, -+ {0x11037, 0x0}, -+ {0x12009, 0x0}, -+ {0x12037, 0x0}, -+ {0x13009, 0x0}, -+ {0x13037, 0x0}, -+ {0x10004, 0x0}, -+ {0x10003, 0x0}, -+ {0x11004, 0x0}, -+ {0x11003, 0x0}, -+ {0x12004, 0x0}, -+ {0x12003, 0x0}, -+ {0x13004, 0x0}, -+ {0x13003, 0x0}, -+ {0x20004, 0x0}, -+ {0x30050, 0x0}, -+ {0x30051, 0x0}, -+ {0x30052, 0x0}, -+ {0x30053, 0x0}, -+ {0x31050, 0x0}, -+ {0x31051, 0x0}, -+ {0x31052, 0x0}, -+ {0x31053, 0x0}, -+ {0x1004e, 0x0}, -+ {0x1004f, 0x0}, -+ {0x10050, 0x0}, -+ {0x10051, 0x0}, -+ {0x1014e, 0x0}, -+ {0x1014f, 0x0}, -+ {0x10150, 0x0}, -+ {0x10151, 0x0}, -+ {0x1024e, 0x0}, -+ {0x1024f, 0x0}, -+ {0x10250, 0x0}, -+ {0x10251, 0x0}, -+ {0x1034e, 0x0}, -+ {0x1034f, 0x0}, -+ {0x10350, 0x0}, -+ {0x10351, 0x0}, -+ {0x1044e, 0x0}, -+ {0x1044f, 0x0}, -+ {0x10450, 0x0}, -+ {0x10451, 0x0}, -+ {0x1054e, 0x0}, -+ {0x1054f, 0x0}, -+ {0x10550, 0x0}, -+ {0x10551, 0x0}, -+ {0x1064e, 0x0}, -+ {0x1064f, 0x0}, -+ {0x10650, 0x0}, -+ {0x10651, 0x0}, -+ {0x1074e, 0x0}, -+ {0x1074f, 0x0}, -+ {0x10750, 0x0}, -+ {0x10751, 0x0}, -+ {0x1084e, 0x0}, -+ {0x1084f, 0x0}, -+ {0x10850, 0x0}, -+ {0x10851, 0x0}, -+ {0x1104e, 0x0}, -+ {0x1104f, 0x0}, -+ {0x11050, 0x0}, -+ {0x11051, 0x0}, -+ {0x1114e, 0x0}, -+ {0x1114f, 0x0}, -+ {0x11150, 0x0}, -+ {0x11151, 0x0}, -+ {0x1124e, 0x0}, -+ {0x1124f, 0x0}, -+ {0x11250, 0x0}, -+ {0x11251, 0x0}, -+ {0x1134e, 0x0}, -+ {0x1134f, 0x0}, -+ {0x11350, 0x0}, -+ {0x11351, 0x0}, -+ {0x1144e, 0x0}, -+ {0x1144f, 0x0}, -+ {0x11450, 0x0}, -+ {0x11451, 0x0}, -+ {0x1154e, 0x0}, -+ {0x1154f, 0x0}, -+ {0x11550, 0x0}, -+ {0x11551, 0x0}, -+ {0x1164e, 0x0}, -+ {0x1164f, 0x0}, -+ {0x11650, 0x0}, -+ {0x11651, 0x0}, -+ {0x1174e, 0x0}, -+ {0x1174f, 0x0}, -+ {0x11750, 0x0}, -+ {0x11751, 0x0}, -+ {0x1184e, 0x0}, -+ {0x1184f, 0x0}, -+ {0x11850, 0x0}, -+ {0x11851, 0x0}, -+ {0x1204e, 0x0}, -+ {0x1204f, 0x0}, -+ {0x12050, 0x0}, -+ {0x12051, 0x0}, -+ {0x1214e, 0x0}, -+ {0x1214f, 0x0}, -+ {0x12150, 0x0}, -+ {0x12151, 0x0}, -+ {0x1224e, 0x0}, -+ {0x1224f, 0x0}, -+ {0x12250, 0x0}, -+ {0x12251, 0x0}, -+ {0x1234e, 0x0}, -+ {0x1234f, 0x0}, -+ {0x12350, 0x0}, -+ {0x12351, 0x0}, -+ {0x1244e, 0x0}, -+ {0x1244f, 0x0}, -+ {0x12450, 0x0}, -+ {0x12451, 0x0}, -+ {0x1254e, 0x0}, -+ {0x1254f, 0x0}, -+ {0x12550, 0x0}, -+ {0x12551, 0x0}, -+ {0x1264e, 0x0}, -+ {0x1264f, 0x0}, -+ {0x12650, 0x0}, -+ {0x12651, 0x0}, -+ {0x1274e, 0x0}, -+ {0x1274f, 0x0}, -+ {0x12750, 0x0}, -+ {0x12751, 0x0}, -+ {0x1284e, 0x0}, -+ {0x1284f, 0x0}, -+ {0x12850, 0x0}, -+ {0x12851, 0x0}, -+ {0x1304e, 0x0}, -+ {0x1304f, 0x0}, -+ {0x13050, 0x0}, -+ {0x13051, 0x0}, -+ {0x1314e, 0x0}, -+ {0x1314f, 0x0}, -+ {0x13150, 0x0}, -+ {0x13151, 0x0}, -+ {0x1324e, 0x0}, -+ {0x1324f, 0x0}, -+ {0x13250, 0x0}, -+ {0x13251, 0x0}, -+ {0x1334e, 0x0}, -+ {0x1334f, 0x0}, -+ {0x13350, 0x0}, -+ {0x13351, 0x0}, -+ {0x1344e, 0x0}, -+ {0x1344f, 0x0}, -+ {0x13450, 0x0}, -+ {0x13451, 0x0}, -+ {0x1354e, 0x0}, -+ {0x1354f, 0x0}, -+ {0x13550, 0x0}, -+ {0x13551, 0x0}, -+ {0x1364e, 0x0}, -+ {0x1364f, 0x0}, -+ {0x13650, 0x0}, -+ {0x13651, 0x0}, -+ {0x1374e, 0x0}, -+ {0x1374f, 0x0}, -+ {0x13750, 0x0}, -+ {0x13751, 0x0}, -+ {0x1384e, 0x0}, -+ {0x1384f, 0x0}, -+ {0x13850, 0x0}, -+ {0x13851, 0x0}, -+ {0x30030, 0x0}, -+ {0x30031, 0x0}, -+ {0x30035, 0x0}, -+ {0x31030, 0x0}, -+ {0x31031, 0x0}, -+ {0x31035, 0x0}, -+ {0x10030, 0x0}, -+ {0x10035, 0x0}, -+ {0x10036, 0x0}, -+ {0x11030, 0x0}, -+ {0x11035, 0x0}, -+ {0x11036, 0x0}, -+ {0x12030, 0x0}, -+ {0x12035, 0x0}, -+ {0x12036, 0x0}, -+ {0x13030, 0x0}, -+ {0x13035, 0x0}, -+ {0x13036, 0x0}, -+ {0x3003c, 0x0}, -+ {0x3103c, 0x0}, -+ {0x1003c, 0x0}, -+ {0x1003d, 0x0}, -+ {0x1003e, 0x0}, -+ {0x1103c, 0x0}, -+ {0x1103d, 0x0}, -+ {0x1103e, 0x0}, -+ {0x1203c, 0x0}, -+ {0x1203d, 0x0}, -+ {0x1203e, 0x0}, -+ {0x1303c, 0x0}, -+ {0x1303d, 0x0}, -+ {0x1303e, 0x0}, -+ {0x20003, 0x0}, -+ {0x10006, 0x0}, -+ {0x11006, 0x0}, -+ {0x12006, 0x0}, -+ {0x13006, 0x0}, -+ {0x20001, 0x0}, -+ {0x20009, 0x0}, -+ {0x20008, 0x0}, -+ {0x200d9, 0x0}, -+ {0x30eef, 0x0}, -+ {0x31eef, 0x0}, -+ {0x20014, 0x0}, -+ {0x9080a, 0x0}, -+ {0x10040, 0x0}, -+ {0x10042, 0x0}, -+ {0x9080d, 0x0}, -+ {0x10043, 0x0}, -+ {0x10044, 0x0}, -+ {0x10045, 0x0}, -+ {0x11040, 0x0}, -+ {0x11042, 0x0}, -+ {0x11043, 0x0}, -+ {0x11044, 0x0}, -+ {0x11045, 0x0}, -+ {0x12040, 0x0}, -+ {0x12042, 0x0}, -+ {0x12043, 0x0}, -+ {0x12044, 0x0}, -+ {0x12045, 0x0}, -+ {0x13040, 0x0}, -+ {0x13042, 0x0}, -+ {0x13043, 0x0}, -+ {0x13044, 0x0}, -+ {0x13045, 0x0}, -+ {0x30040, 0x0}, -+ {0x30041, 0x0}, -+ {0x30042, 0x0}, -+ {0x30043, 0x0}, -+ {0x30330, 0x0}, -+ {0x31040, 0x0}, -+ {0x31041, 0x0}, -+ {0x31042, 0x0}, -+ {0x31043, 0x0}, -+ {0x31330, 0x0}, -+ {0x20331, 0x0}, -+ {0x10048, 0x0}, -+ {0x1004a, 0x0}, -+ {0x1004b, 0x0}, -+ {0x1004c, 0x0}, -+ {0x1004d, 0x0}, -+ {0x11048, 0x0}, -+ {0x1104a, 0x0}, -+ {0x1104b, 0x0}, -+ {0x1104c, 0x0}, -+ {0x1104d, 0x0}, -+ {0x12048, 0x0}, -+ {0x1204a, 0x0}, -+ {0x1204b, 0x0}, -+ {0x1204c, 0x0}, -+ {0x1204d, 0x0}, -+ {0x13048, 0x0}, -+ {0x1304a, 0x0}, -+ {0x1304b, 0x0}, -+ {0x1304c, 0x0}, -+ {0x1304d, 0x0}, -+ {0x30048, 0x0}, -+ {0x30049, 0x0}, -+ {0x3004a, 0x0}, -+ {0x3004b, 0x0}, -+ {0x31048, 0x0}, -+ {0x31049, 0x0}, -+ {0x3104a, 0x0}, -+ {0x3104b, 0x0}, -+ {0x30033, 0x0}, -+ {0x30034, 0x0}, -+ {0x3002e, 0x0}, -+ {0x31033, 0x0}, -+ {0x31034, 0x0}, -+ {0x3102e, 0x0}, -+ {0x10033, 0x0}, -+ {0x1002e, 0x0}, -+ {0x1002f, 0x0}, -+ {0x11033, 0x0}, -+ {0x1102e, 0x0}, -+ {0x1102f, 0x0}, -+ {0x12033, 0x0}, -+ {0x1202e, 0x0}, -+ {0x1202f, 0x0}, -+ {0x13033, 0x0}, -+ {0x1302e, 0x0}, -+ {0x1302f, 0x0}, -+ {0x90806, 0x0}, -+ {0x100e8, 0x0}, -+ {0x100e9, 0x0}, -+ {0x110e8, 0x0}, -+ {0x110e9, 0x0}, -+ {0x120e8, 0x0}, -+ {0x120e9, 0x0}, -+ {0x130e8, 0x0}, -+ {0x130e9, 0x0}, -+ {0x10001, 0x0}, -+ {0x11001, 0x0}, -+ {0x12001, 0x0}, -+ {0x13001, 0x0}, -+ {0x20012, 0x0}, -+ {0x20017, 0x0}, -+ {0x2000a, 0x0}, -+ {0x20186, 0x0}, -+ {0x20187, 0x0}, -+ {0x20010, 0x0}, -+ {0x20011, 0x0}, -+ {0x9080b, 0x0}, -+ {0x9080c, 0x0}, -+ {0x100a5, 0x0}, -+ {0x110a5, 0x0}, -+ {0x120a5, 0x0}, -+ {0x130a5, 0x0}, -+ {0x10014, 0x0}, -+ {0x11014, 0x0}, -+ {0x12014, 0x0}, -+ {0x13014, 0x0}, -+ {0x20035, 0x0}, -+ {0x20036, 0x0}, -+ {0x20037, 0x0}, -+ {0x20038, 0x0}, -+ {0x20039, 0x0}, -+ {0x2003a, 0x0}, -+ {0x2003b, 0x0}, -+ {0x2003c, 0x0}, -+ {0x2003d, 0x0}, -+ {0x2003e, 0x0}, -+ {0x2003f, 0x0}, -+ {0x20040, 0x0}, -+ {0x2002c, 0x0}, -+ {0x2002d, 0x0}, -+ {0x20030, 0x0}, -+ {0x2002e, 0x0}, -+ {0x2002f, 0x0}, -+ {0x2000c, 0x0}, -+ {0x2001b, 0x0}, -+ {0x10007, 0x0}, -+ {0x11007, 0x0}, -+ {0x12007, 0x0}, -+ {0x13007, 0x0}, -+ {0x908f0, 0x0}, -+ {0x908f1, 0x0}, -+ {0x908f2, 0x0}, -+ {0x908f3, 0x0}, -+ {0x908f4, 0x0}, -+ {0x908f5, 0x0}, -+ {0x908f6, 0x0}, -+ {0x908f7, 0x0}, -+ {0x41008, 0x0}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0x0}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x0}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0x0}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0x0}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x0}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0x0}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0x0}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x0}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0x0}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0x0}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x0}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0x0}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0x0}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x0}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0x0}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0x0}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x0}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0x0}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0x0}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x0}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x0}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x0}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x0}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x0}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x0}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0x0}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0x0}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x0}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0x0}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0x0}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x0}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0x0}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0x0}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0x410b8, 0x0}, -+ {0x410b9, 0x0}, -+ {0x410ba, 0x0}, -+ {0x410bb, 0x0}, -+ {0x410bc, 0x0}, -+ {0x410bd, 0x0}, -+ {0x410be, 0x0}, -+ {0x410bf, 0x0}, -+ {0x410c0, 0x0}, -+ {0x410c1, 0x0}, -+ {0x410c2, 0x0}, -+ {0x410c3, 0x0}, -+ {0x410c4, 0x0}, -+ {0x410c5, 0x0}, -+ {0x410c6, 0x0}, -+ {0x410c7, 0x0}, -+ {0x410c8, 0x0}, -+ {0x410c9, 0x0}, -+ {0x410ca, 0x0}, -+ {0x410cb, 0x0}, -+ {0x410cc, 0x0}, -+ {0x410cd, 0x0}, -+ {0x410ce, 0x0}, -+ {0x410cf, 0x0}, -+ {0x410d0, 0x0}, -+ {0x410d1, 0x0}, -+ {0x410d2, 0x0}, -+ {0x410d3, 0x0}, -+ {0x410d4, 0x0}, -+ {0x410d5, 0x0}, -+ {0x410d6, 0x0}, -+ {0x410d7, 0x0}, -+ {0x410d8, 0x0}, -+ {0x410d9, 0x0}, -+ {0x410da, 0x0}, -+ {0x410db, 0x0}, -+ {0x410dc, 0x0}, -+ {0x410dd, 0x0}, -+ {0x410de, 0x0}, -+ {0x410df, 0x0}, -+ {0x410e0, 0x0}, -+ {0x410e1, 0x0}, -+ {0x410e2, 0x0}, -+ {0x410e3, 0x0}, -+ {0x410e4, 0x0}, -+ {0x410e5, 0x0}, -+ {0x410e6, 0x0}, -+ {0x410e7, 0x0}, -+ {0x410e8, 0x0}, -+ {0x410e9, 0x0}, -+ {0x410ea, 0x0}, -+ {0x410eb, 0x0}, -+ {0x410ec, 0x0}, -+ {0x410ed, 0x0}, -+ {0x410ee, 0x0}, -+ {0x410ef, 0x0}, -+ {0x410f0, 0x0}, -+ {0x410f1, 0x0}, -+ {0x410f2, 0x0}, -+ {0x410f3, 0x0}, -+ {0x410f4, 0x0}, -+ {0x410f5, 0x0}, -+ {0x410f6, 0x0}, -+ {0x410f7, 0x0}, -+ {0x410f8, 0x0}, -+ {0x410f9, 0x0}, -+ {0x410fa, 0x0}, -+ {0x410fb, 0x0}, -+ {0x410fc, 0x0}, -+ {0x410fd, 0x0}, -+ {0x410fe, 0x0}, -+ {0x410ff, 0x0}, -+ {0x41100, 0x0}, -+ {0x41101, 0x0}, -+ {0x41102, 0x0}, -+ {0x41103, 0x0}, -+ {0x41104, 0x0}, -+ {0x41105, 0x0}, -+ {0x41106, 0x0}, -+ {0x41107, 0x0}, -+ {0x41108, 0x0}, -+ {0x41109, 0x0}, -+ {0x4110a, 0x0}, -+ {0x4110b, 0x0}, -+ {0x4110c, 0x0}, -+ {0x4110d, 0x0}, -+ {0x4110e, 0x0}, -+ {0x4110f, 0x0}, -+ {0x41110, 0x0}, -+ {0x41111, 0x0}, -+ {0x41112, 0x0}, -+ {0x41113, 0x0}, -+ {0x41114, 0x0}, -+ {0x41115, 0x0}, -+ {0x41116, 0x0}, -+ {0x41117, 0x0}, -+ {0x41118, 0x0}, -+ {0x41119, 0x0}, -+ {0x4111a, 0x0}, -+ {0x4111b, 0x0}, -+ {0x4111c, 0x0}, -+ {0x4111d, 0x0}, -+ {0x4111e, 0x0}, -+ {0x4111f, 0x0}, -+ {0x41120, 0x0}, -+ {0x41121, 0x0}, -+ {0x41122, 0x0}, -+ {0x41123, 0x0}, -+ {0x41124, 0x0}, -+ {0x41125, 0x0}, -+ {0x41126, 0x0}, -+ {0x41127, 0x0}, -+ {0x41128, 0x0}, -+ {0x41129, 0x0}, -+ {0x4112a, 0x0}, -+ {0x4112b, 0x0}, -+ {0x4112c, 0x0}, -+ {0x4112d, 0x0}, -+ {0x4112e, 0x0}, -+ {0x4112f, 0x0}, -+ {0x41130, 0x0}, -+ {0x41131, 0x0}, -+ {0x41132, 0x0}, -+ {0x41133, 0x0}, -+ {0x41134, 0x0}, -+ {0x41135, 0x0}, -+ {0x41136, 0x0}, -+ {0x41137, 0x0}, -+ {0x41138, 0x0}, -+ {0x41139, 0x0}, -+ {0x4113a, 0x0}, -+ {0x4113b, 0x0}, -+ {0x4113c, 0x0}, -+ {0x4113d, 0x0}, -+ {0x4113e, 0x0}, -+ {0x4113f, 0x0}, -+ {0x41140, 0x0}, -+ {0x41141, 0x0}, -+ {0x41142, 0x0}, -+ {0x41143, 0x0}, -+ {0x41144, 0x0}, -+ {0x41145, 0x0}, -+ {0x41146, 0x0}, -+ {0x41147, 0x0}, -+ {0x41148, 0x0}, -+ {0x41149, 0x0}, -+ {0x4114a, 0x0}, -+ {0x4114b, 0x0}, -+ {0x4114c, 0x0}, -+ {0x4114d, 0x0}, -+ {0x4114e, 0x0}, -+ {0x4114f, 0x0}, -+ {0x41150, 0x0}, -+ {0x41151, 0x0}, -+ {0x41152, 0x0}, -+ {0x41153, 0x0}, -+ {0x41154, 0x0}, -+ {0x41155, 0x0}, -+ {0x41156, 0x0}, -+ {0x41157, 0x0}, -+ {0x41158, 0x0}, -+ {0x41159, 0x0}, -+ {0x4115a, 0x0}, -+ {0x4115b, 0x0}, -+ {0x4115c, 0x0}, -+ {0x4115d, 0x0}, -+ {0x4115e, 0x0}, -+ {0x4115f, 0x0}, -+ {0x41160, 0x0}, -+ {0x41161, 0x0}, -+ {0x41162, 0x0}, -+ {0x41163, 0x0}, -+ {0x41164, 0x0}, -+ {0x41165, 0x0}, -+ {0x41166, 0x0}, -+ {0x41167, 0x0}, -+ {0x41168, 0x0}, -+ {0x41169, 0x0}, -+ {0x4116a, 0x0}, -+ {0x4116b, 0x0}, -+ {0x4116c, 0x0}, -+ {0x4116d, 0x0}, -+ {0x4116e, 0x0}, -+ {0x4116f, 0x0}, -+ {0x41170, 0x0}, -+ {0x41171, 0x0}, -+ {0x41172, 0x0}, -+ {0x41173, 0x0}, -+ {0x41174, 0x0}, -+ {0x41175, 0x0}, -+ {0x41176, 0x0}, -+ {0x41177, 0x0}, -+ {0x41178, 0x0}, -+ {0x41179, 0x0}, -+ {0x4117a, 0x0}, -+ {0x4117b, 0x0}, -+ {0x4117c, 0x0}, -+ {0x4117d, 0x0}, -+ {0x4117e, 0x0}, -+ {0x4117f, 0x0}, -+ {0x41180, 0x0}, -+ {0x41181, 0x0}, -+ {0x41182, 0x0}, -+ {0x41183, 0x0}, -+ {0x41184, 0x0}, -+ {0x41185, 0x0}, -+ {0x41186, 0x0}, -+ {0x41187, 0x0}, -+ {0x41188, 0x0}, -+ {0x41189, 0x0}, -+ {0x4118a, 0x0}, -+ {0x4118b, 0x0}, -+ {0x4118c, 0x0}, -+ {0x4118d, 0x0}, -+ {0x4118e, 0x0}, -+ {0x4118f, 0x0}, -+ {0x41190, 0x0}, -+ {0x41191, 0x0}, -+ {0x41192, 0x0}, -+ {0x41193, 0x0}, -+ {0x41194, 0x0}, -+ {0x41195, 0x0}, -+ {0x41196, 0x0}, -+ {0x41197, 0x0}, -+ {0x41198, 0x0}, -+ {0x41199, 0x0}, -+ {0x4119a, 0x0}, -+ {0x4119b, 0x0}, -+ {0x4119c, 0x0}, -+ {0x4119d, 0x0}, -+ {0x4119e, 0x0}, -+ {0x4119f, 0x0}, -+ {0x411a0, 0x0}, -+ {0x411a1, 0x0}, -+ {0x411a2, 0x0}, -+ {0x411a3, 0x0}, -+ {0x411a4, 0x0}, -+ {0x411a5, 0x0}, -+ {0x411a6, 0x0}, -+ {0x411a7, 0x0}, -+ {0x411a8, 0x0}, -+ {0x411a9, 0x0}, -+ {0x411aa, 0x0}, -+ {0x411ab, 0x0}, -+ {0x411ac, 0x0}, -+ {0x411ad, 0x0}, -+ {0x411ae, 0x0}, -+ {0x411af, 0x0}, -+ {0x411b0, 0x0}, -+ {0x411b1, 0x0}, -+ {0x411b2, 0x0}, -+ {0x411b3, 0x0}, -+ {0x411b4, 0x0}, -+ {0x411b5, 0x0}, -+ {0x411b6, 0x0}, -+ {0x411b7, 0x0}, -+ {0x411b8, 0x0}, -+ {0x411b9, 0x0}, -+ {0x411ba, 0x0}, -+ {0x411bb, 0x0}, -+ {0x411bc, 0x0}, -+ {0x411bd, 0x0}, -+ {0x411be, 0x0}, -+ {0x411bf, 0x0}, -+ {0x411c0, 0x0}, -+ {0x411c1, 0x0}, -+ {0x411c2, 0x0}, -+ {0x411c3, 0x0}, -+ {0x411c4, 0x0}, -+ {0x411c5, 0x0}, -+ {0x411c6, 0x0}, -+ {0x411c7, 0x0}, -+ {0x20015, 0x0}, -+ {0x2004a, 0x0}, -+ {0x2004b, 0x0}, -+ {0x2004c, 0x0}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x0}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20041, 0x0}, -+ {0x20045, 0x0}, -+ {0x10057, 0x0}, -+ {0x11057, 0x0}, -+ {0x12057, 0x0}, -+ {0x13057, 0x0}, -+ {0x1000f, 0x0}, -+ {0x1100f, 0x0}, -+ {0x1200f, 0x0}, -+ {0x1300f, 0x0}, -+ {0x90803, 0x0}, -+ {0x90804, 0x0}, -+ {0x90805, 0x0}, -+ {0x90903, 0x0}, -+ {0x9090b, 0x0}, -+ {0x90811, 0x0}, -+ {0x90812, 0x0}, -+ {0x20072, 0x0}, -+ {0x9080e, 0x0}, -+ {0x20073, 0x0}, -+ {0x9080f, 0x0}, -+ {0x41000, 0x0}, -+ {0x41001, 0x0}, -+ {0x41002, 0x0}, -+ {0x41003, 0x0}, -+ {0x41004, 0x0}, -+ {0x41005, 0x0}, -+ {0x41006, 0x0}, -+ {0x41007, 0x0}, -+ {0x41388, 0x0}, -+ {0x41389, 0x0}, -+ {0x4138a, 0x0}, -+ {0x4138b, 0x0}, -+ {0x4138c, 0x0}, -+ {0x4138d, 0x0}, -+ {0x4138e, 0x0}, -+ {0x4138f, 0x0}, -+ {0x41390, 0x0}, -+ {0x41391, 0x0}, -+ {0x41392, 0x0}, -+ {0x41393, 0x0}, -+ {0x41394, 0x0}, -+ {0x41395, 0x0}, -+ {0x41396, 0x0}, -+ {0x41397, 0x0}, -+ {0x41398, 0x0}, -+ {0x41399, 0x0}, -+ {0x4139a, 0x0}, -+ {0x4139b, 0x0}, -+ {0x4139c, 0x0}, -+ {0x4139d, 0x0}, -+ {0x4139e, 0x0}, -+ {0x4139f, 0x0}, -+ {0x413a0, 0x0}, -+ {0x413a1, 0x0}, -+ {0x413a2, 0x0}, -+ {0x413a3, 0x0}, -+ {0x413a4, 0x0}, -+ {0x413a5, 0x0}, -+ {0x413a6, 0x0}, -+ {0x413a7, 0x0}, -+ {0x413a8, 0x0}, -+ {0x413a9, 0x0}, -+ {0x413aa, 0x0}, -+ {0x413ab, 0x0}, -+ {0x413ac, 0x0}, -+ {0x413ad, 0x0}, -+ {0x413ae, 0x0}, -+ {0x413af, 0x0}, -+ {0x413b0, 0x0}, -+ {0x413b1, 0x0}, -+ {0x413b2, 0x0}, -+ {0x413b3, 0x0}, -+ {0x413b4, 0x0}, -+ {0x413b5, 0x0}, -+ {0x413b6, 0x0}, -+ {0x413b7, 0x0}, -+ {0x413b8, 0x0}, -+ {0x413b9, 0x0}, -+ {0x413ba, 0x0}, -+ {0x413bb, 0x0}, -+ {0x413bc, 0x0}, -+ {0x413bd, 0x0}, -+ {0x413be, 0x0}, -+ {0x413bf, 0x0}, -+ {0x413c0, 0x0}, -+ {0x413c1, 0x0}, -+ {0x413c2, 0x0}, -+ {0x413c3, 0x0}, -+ {0x413c4, 0x0}, -+ {0x413c5, 0x0}, -+ {0x413c6, 0x0}, -+ {0x413c7, 0x0}, -+ {0x413c8, 0x0}, -+ {0x413c9, 0x0}, -+ {0x413ca, 0x0}, -+ {0x413cb, 0x0}, -+ {0x413cc, 0x0}, -+ {0x413cd, 0x0}, -+ {0x413ce, 0x0}, -+ {0x413cf, 0x0}, -+ {0x413d0, 0x0}, -+ {0x413d1, 0x0}, -+ {0x413d2, 0x0}, -+ {0x413d3, 0x0}, -+ {0x413d4, 0x0}, -+ {0x413d5, 0x0}, -+ {0x413d6, 0x0}, -+ {0x413d7, 0x0}, -+ {0x413d8, 0x0}, -+ {0x413d9, 0x0}, -+ {0x413da, 0x0}, -+ {0x413db, 0x0}, -+ {0x413dc, 0x0}, -+ {0x413dd, 0x0}, -+ {0x413de, 0x0}, -+ {0x413df, 0x0}, -+ {0x413e0, 0x0}, -+ {0x413e1, 0x0}, -+ {0x413e2, 0x0}, -+ {0x413e3, 0x0}, -+ {0x413e4, 0x0}, -+ {0x413e5, 0x0}, -+ {0x413e6, 0x0}, -+ {0x413e7, 0x0}, -+ {0x413e8, 0x0}, -+ {0x413e9, 0x0}, -+ {0x413ea, 0x0}, -+ {0x413eb, 0x0}, -+ {0x413ec, 0x0}, -+ {0x413ed, 0x0}, -+ {0x413ee, 0x0}, -+ {0x413ef, 0x0}, -+ {0x413f0, 0x0}, -+ {0x413f1, 0x0}, -+ {0x413f2, 0x0}, -+ {0x413f3, 0x0}, -+ {0x413f4, 0x0}, -+ {0x413f5, 0x0}, -+ {0x413f6, 0x0}, -+ {0x413f7, 0x0}, -+ {0x413f8, 0x0}, -+ {0x413f9, 0x0}, -+ {0x413fa, 0x0}, -+ {0x413fb, 0x0}, -+ {0x413fc, 0x0}, -+ {0x413fd, 0x0}, -+ {0x413fe, 0x0}, -+ {0x413ff, 0x0}, -+ {0x41400, 0x0}, -+ {0x41401, 0x0}, -+ {0x41402, 0x0}, -+ {0x41403, 0x0}, -+ {0x41404, 0x0}, -+ {0x41405, 0x0}, -+ {0x41406, 0x0}, -+ {0x41407, 0x0}, -+ {0x41408, 0x0}, -+ {0x41409, 0x0}, -+ {0x4140a, 0x0}, -+ {0x4140b, 0x0}, -+ {0x4140c, 0x0}, -+ {0x4140d, 0x0}, -+ {0x4140e, 0x0}, -+ {0x4140f, 0x0}, -+ {0x41410, 0x0}, -+ {0x41411, 0x0}, -+ {0x41412, 0x0}, -+ {0x41413, 0x0}, -+ {0x41414, 0x0}, -+ {0x41415, 0x0}, -+ {0x41416, 0x0}, -+ {0x41417, 0x0}, -+ {0x41418, 0x0}, -+ {0x41419, 0x0}, -+ {0x4141a, 0x0}, -+ {0x4141b, 0x0}, -+ {0x4141c, 0x0}, -+ {0x4141d, 0x0}, -+ {0x4141e, 0x0}, -+ {0x4141f, 0x0}, -+ {0x41420, 0x0}, -+ {0x41421, 0x0}, -+ {0x41422, 0x0}, -+ {0x41423, 0x0}, -+ {0x41424, 0x0}, -+ {0x41425, 0x0}, -+ {0x41426, 0x0}, -+ {0x41427, 0x0}, -+ {0x41428, 0x0}, -+ {0x41429, 0x0}, -+ {0x4142a, 0x0}, -+ {0x4142b, 0x0}, -+ {0x4142c, 0x0}, -+ {0x4142d, 0x0}, -+ {0x4142e, 0x0}, -+ {0x4142f, 0x0}, -+ {0x41430, 0x0}, -+ {0x41431, 0x0}, -+ {0x41432, 0x0}, -+ {0x41433, 0x0}, -+ {0x41434, 0x0}, -+ {0x41435, 0x0}, -+ {0x41436, 0x0}, -+ {0x41437, 0x0}, -+ {0x41438, 0x0}, -+ {0x41439, 0x0}, -+ {0x4143a, 0x0}, -+ {0x4143b, 0x0}, -+ {0x4143c, 0x0}, -+ {0x4143d, 0x0}, -+ {0x4143e, 0x0}, -+ {0x4143f, 0x0}, -+ {0x41440, 0x0}, -+ {0x41441, 0x0}, -+ {0x41442, 0x0}, -+ {0x41443, 0x0}, -+ {0x41444, 0x0}, -+ {0x41445, 0x0}, -+ {0x41446, 0x0}, -+ {0x41447, 0x0}, -+ {0x41448, 0x0}, -+ {0x41449, 0x0}, -+ {0x4144a, 0x0}, -+ {0x4144b, 0x0}, -+ {0x4144c, 0x0}, -+ {0x4144d, 0x0}, -+ {0x4144e, 0x0}, -+ {0x4144f, 0x0}, -+ {0x41450, 0x0}, -+ {0x41451, 0x0}, -+ {0x41452, 0x0}, -+ {0x41453, 0x0}, -+ {0x41454, 0x0}, -+ {0x41455, 0x0}, -+ {0x41456, 0x0}, -+ {0x41457, 0x0}, -+ {0x41458, 0x0}, -+ {0x41459, 0x0}, -+ {0x4145a, 0x0}, -+ {0x4145b, 0x0}, -+ {0x4145c, 0x0}, -+ {0x4145d, 0x0}, -+ {0x4145e, 0x0}, -+ {0x4145f, 0x0}, -+ {0x41460, 0x0}, -+ {0x41461, 0x0}, -+ {0x41462, 0x0}, -+ {0x41463, 0x0}, -+ {0x41464, 0x0}, -+ {0x41465, 0x0}, -+ {0x41466, 0x0}, -+ {0x41467, 0x0}, -+ {0x41468, 0x0}, -+ {0x41469, 0x0}, -+ {0x4146a, 0x0}, -+ {0x4146b, 0x0}, -+ {0x4146c, 0x0}, -+ {0x4146d, 0x0}, -+ {0x4146e, 0x0}, -+ {0x4146f, 0x0}, -+ {0x41470, 0x0}, -+ {0x41471, 0x0}, -+ {0x41472, 0x0}, -+ {0x41473, 0x0}, -+ {0x41474, 0x0}, -+ {0x41475, 0x0}, -+ {0x41476, 0x0}, -+ {0x41477, 0x0}, -+ {0x41478, 0x0}, -+ {0x41479, 0x0}, -+ {0x4147a, 0x0}, -+ {0x4147b, 0x0}, -+ {0x4147c, 0x0}, -+ {0x4147d, 0x0}, -+ {0x4147e, 0x0}, -+ {0x4147f, 0x0}, -+ {0x41480, 0x0}, -+ {0x41481, 0x0}, -+ {0x41482, 0x0}, -+ {0x41483, 0x0}, -+ {0x41484, 0x0}, -+ {0x41485, 0x0}, -+ {0x41486, 0x0}, -+ {0x41487, 0x0}, -+ {0x41488, 0x0}, -+ {0x41489, 0x0}, -+ {0x4148a, 0x0}, -+ {0x4148b, 0x0}, -+ {0x4148c, 0x0}, -+ {0x4148d, 0x0}, -+ {0x4148e, 0x0}, -+ {0x4148f, 0x0}, -+ {0x41490, 0x0}, -+ {0x41491, 0x0}, -+ {0x41492, 0x0}, -+ {0x41493, 0x0}, -+ {0x41494, 0x0}, -+ {0x41495, 0x0}, -+ {0x41496, 0x0}, -+ {0x41497, 0x0}, -+ {0x41498, 0x0}, -+ {0x41499, 0x0}, -+ {0x4149a, 0x0}, -+ {0x4149b, 0x0}, -+ {0x4149c, 0x0}, -+ {0x4149d, 0x0}, -+ {0x4149e, 0x0}, -+ {0x4149f, 0x0}, -+ {0x414a0, 0x0}, -+ {0x414a1, 0x0}, -+ {0x414a2, 0x0}, -+ {0x414a3, 0x0}, -+ {0x414a4, 0x0}, -+ {0x414a5, 0x0}, -+ {0x414a6, 0x0}, -+ {0x414a7, 0x0}, -+ {0x414a8, 0x0}, -+ {0x414a9, 0x0}, -+ {0x414aa, 0x0}, -+ {0x414ab, 0x0}, -+ {0x414ac, 0x0}, -+ {0x414ad, 0x0}, -+ {0x414ae, 0x0}, -+ {0x414af, 0x0}, -+ {0x414b0, 0x0}, -+ {0x414b1, 0x0}, -+ {0x414b2, 0x0}, -+ {0x414b3, 0x0}, -+ {0x414b4, 0x0}, -+ {0x414b5, 0x0}, -+ {0x414b6, 0x0}, -+ {0x414b7, 0x0}, -+ {0x414b8, 0x0}, -+ {0x414b9, 0x0}, -+ {0x414ba, 0x0}, -+ {0x414bb, 0x0}, -+ {0x414bc, 0x0}, -+ {0x414bd, 0x0}, -+ {0x414be, 0x0}, -+ {0x414bf, 0x0}, -+ {0x414c0, 0x0}, -+ {0x414c1, 0x0}, -+ {0x414c2, 0x0}, -+ {0x414c3, 0x0}, -+ {0x414c4, 0x0}, -+ {0x414c5, 0x0}, -+ {0x414c6, 0x0}, -+ {0x414c7, 0x0}, -+ {0x414c8, 0x0}, -+ {0x414c9, 0x0}, -+ {0x414ca, 0x0}, -+ {0x414cb, 0x0}, -+ {0x414cc, 0x0}, -+ {0x414cd, 0x0}, -+ {0x414ce, 0x0}, -+ {0x414cf, 0x0}, -+ {0x414d0, 0x0}, -+ {0x414d1, 0x0}, -+ {0x414d2, 0x0}, -+ {0x414d3, 0x0}, -+ {0x414d4, 0x0}, -+ {0x414d5, 0x0}, -+ {0x414d6, 0x0}, -+ {0x414d7, 0x0}, -+ {0x414d8, 0x0}, -+ {0x414d9, 0x0}, -+ {0x414da, 0x0}, -+ {0x414db, 0x0}, -+ {0x414dc, 0x0}, -+ {0x414dd, 0x0}, -+ {0x414de, 0x0}, -+ {0x414df, 0x0}, -+ {0x414e0, 0x0}, -+ {0x414e1, 0x0}, -+ {0x414e2, 0x0}, -+ {0x414e3, 0x0}, -+ {0x414e4, 0x0}, -+ {0x414e5, 0x0}, -+ {0x414e6, 0x0}, -+ {0x414e7, 0x0}, -+ {0x414e8, 0x0}, -+ {0x414e9, 0x0}, -+ {0x414ea, 0x0}, -+ {0x414eb, 0x0}, -+ {0x414ec, 0x0}, -+ {0x414ed, 0x0}, -+ {0x414ee, 0x0}, -+ {0x414ef, 0x0}, -+ {0x414f0, 0x0}, -+ {0x414f1, 0x0}, -+ {0x414f2, 0x0}, -+ {0x414f3, 0x0}, -+ {0x414f4, 0x0}, -+ {0x414f5, 0x0}, -+ {0x414f6, 0x0}, -+ {0x414f7, 0x0}, -+ {0x414f8, 0x0}, -+ {0x414f9, 0x0}, -+ {0x414fa, 0x0}, -+ {0x414fb, 0x0}, -+ {0x414fc, 0x0}, -+ {0x414fd, 0x0}, -+ {0x414fe, 0x0}, -+ {0x414ff, 0x0}, -+ {0x41500, 0x0}, -+ {0x41501, 0x0}, -+ {0x41502, 0x0}, -+ {0x41503, 0x0}, -+ {0x41504, 0x0}, -+ {0x41505, 0x0}, -+ {0x41506, 0x0}, -+ {0x41507, 0x0}, -+ {0x41508, 0x0}, -+ {0x41509, 0x0}, -+ {0x4150a, 0x0}, -+ {0x4150b, 0x0}, -+ {0x4150c, 0x0}, -+ {0x4150d, 0x0}, -+ {0x4150e, 0x0}, -+ {0x4150f, 0x0}, -+ {0x41510, 0x0}, -+ {0x41511, 0x0}, -+ {0x41512, 0x0}, -+ {0x41513, 0x0}, -+ {0x41514, 0x0}, -+ {0x41515, 0x0}, -+ {0x41516, 0x0}, -+ {0x41517, 0x0}, -+ {0x41518, 0x0}, -+ {0x41519, 0x0}, -+ {0x4151a, 0x0}, -+ {0x4151b, 0x0}, -+ {0x4151c, 0x0}, -+ {0x4151d, 0x0}, -+ {0x4151e, 0x0}, -+ {0x4151f, 0x0}, -+ {0x41520, 0x0}, -+ {0x41521, 0x0}, -+ {0x41522, 0x0}, -+ {0x41523, 0x0}, -+ {0x41524, 0x0}, -+ {0x41525, 0x0}, -+ {0x41526, 0x0}, -+ {0x41527, 0x0}, -+ {0x41528, 0x0}, -+ {0x41529, 0x0}, -+ {0x4152a, 0x0}, -+ {0x4152b, 0x0}, -+ {0x4152c, 0x0}, -+ {0x4152d, 0x0}, -+ {0x4152e, 0x0}, -+ {0x4152f, 0x0}, -+ {0x41530, 0x0}, -+ {0x41531, 0x0}, -+ {0x41532, 0x0}, -+ {0x41533, 0x0}, -+ {0x41534, 0x0}, -+ {0x41535, 0x0}, -+ {0x41536, 0x0}, -+ {0x41537, 0x0}, -+ {0x41538, 0x0}, -+ {0x41539, 0x0}, -+ {0x4153a, 0x0}, -+ {0x4153b, 0x0}, -+ {0x4153c, 0x0}, -+ {0x4153d, 0x0}, -+ {0x4153e, 0x0}, -+ {0x4153f, 0x0}, -+ {0x41540, 0x0}, -+ {0x41541, 0x0}, -+ {0x41542, 0x0}, -+ {0x41543, 0x0}, -+ {0x41544, 0x0}, -+ {0x41545, 0x0}, -+ {0x41546, 0x0}, -+ {0x41547, 0x0}, -+ {0x41548, 0x0}, -+ {0x41549, 0x0}, -+ {0x4154a, 0x0}, -+ {0x4154b, 0x0}, -+ {0x4154c, 0x0}, -+ {0x4154d, 0x0}, -+ {0x4154e, 0x0}, -+ {0x4154f, 0x0}, -+ {0x41550, 0x0}, -+ {0x41551, 0x0}, -+ {0x41552, 0x0}, -+ {0x41553, 0x0}, -+ {0x41554, 0x0}, -+ {0x41555, 0x0}, -+ {0x41556, 0x0}, -+ {0x41557, 0x0}, -+ {0x41558, 0x0}, -+ {0x41559, 0x0}, -+ {0x4155a, 0x0}, -+ {0x4155b, 0x0}, -+ {0x4155c, 0x0}, -+ {0x4155d, 0x0}, -+ {0x4155e, 0x0}, -+ {0x4155f, 0x0}, -+ {0x41560, 0x0}, -+ {0x41561, 0x0}, -+ {0x41562, 0x0}, -+ {0x41563, 0x0}, -+ {0x41564, 0x0}, -+ {0x41565, 0x0}, -+ {0x41566, 0x0}, -+ {0x41567, 0x0}, -+ {0x41568, 0x0}, -+ {0x41569, 0x0}, -+ {0x4156a, 0x0}, -+ {0x4156b, 0x0}, -+ {0x4156c, 0x0}, -+ {0x4156d, 0x0}, -+ {0x4156e, 0x0}, -+ {0x4156f, 0x0}, -+ {0x41570, 0x0}, -+ {0x41571, 0x0}, -+ {0x41572, 0x0}, -+ {0x41573, 0x0}, -+ {0x41574, 0x0}, -+ {0x41575, 0x0}, -+ {0x41576, 0x0}, -+ {0x41577, 0x0}, -+ {0x41578, 0x0}, -+ {0x41579, 0x0}, -+ {0x4157a, 0x0}, -+ {0x4157b, 0x0}, -+ {0x4157c, 0x0}, -+ {0x4157d, 0x0}, -+ {0x4157e, 0x0}, -+ {0x4157f, 0x0}, -+ {0x41580, 0x0}, -+ {0x41581, 0x0}, -+ {0x41582, 0x0}, -+ {0x41583, 0x0}, -+ {0x41584, 0x0}, -+ {0x41585, 0x0}, -+ {0x41586, 0x0}, -+ {0x41587, 0x0}, -+ {0x41588, 0x0}, -+ {0x41589, 0x0}, -+ {0x4158a, 0x0}, -+ {0x4158b, 0x0}, -+ {0x4158c, 0x0}, -+ {0x4158d, 0x0}, -+ {0x4158e, 0x0}, -+ {0x4158f, 0x0}, -+ {0x41590, 0x0}, -+ {0x41591, 0x0}, -+ {0x41592, 0x0}, -+ {0x41593, 0x0}, -+ {0x41594, 0x0}, -+ {0x41595, 0x0}, -+ {0x41596, 0x0}, -+ {0x41597, 0x0}, -+ {0x41598, 0x0}, -+ {0x41599, 0x0}, -+ {0x4159a, 0x0}, -+ {0x4159b, 0x0}, -+ {0x4159c, 0x0}, -+ {0x4159d, 0x0}, -+ {0x4159e, 0x0}, -+ {0x4159f, 0x0}, -+ {0x415a0, 0x0}, -+ {0x415a1, 0x0}, -+ {0x415a2, 0x0}, -+ {0x415a3, 0x0}, -+ {0x415a4, 0x0}, -+ {0x415a5, 0x0}, -+ {0x415a6, 0x0}, -+ {0x415a7, 0x0}, -+ {0x415a8, 0x0}, -+ {0x415a9, 0x0}, -+ {0x415aa, 0x0}, -+ {0x415ab, 0x0}, -+ {0x415ac, 0x0}, -+ {0x415ad, 0x0}, -+ {0x415ae, 0x0}, -+ {0x415af, 0x0}, -+ {0x415b0, 0x0}, -+ {0x415b1, 0x0}, -+ {0x415b2, 0x0}, -+ {0x415b3, 0x0}, -+ {0x415b4, 0x0}, -+ {0x415b5, 0x0}, -+ {0x415b6, 0x0}, -+ {0x415b7, 0x0}, -+ {0x415b8, 0x0}, -+ {0x415b9, 0x0}, -+ {0x415ba, 0x0}, -+ {0x415bb, 0x0}, -+ {0x415bc, 0x0}, -+ {0x415bd, 0x0}, -+ {0x415be, 0x0}, -+ {0x415bf, 0x0}, -+ {0x415c0, 0x0}, -+ {0x415c1, 0x0}, -+ {0x415c2, 0x0}, -+ {0x415c3, 0x0}, -+ {0x415c4, 0x0}, -+ {0x415c5, 0x0}, -+ {0x415c6, 0x0}, -+ {0x415c7, 0x0}, -+ {0x415c8, 0x0}, -+ {0x415c9, 0x0}, -+ {0x415ca, 0x0}, -+ {0x415cb, 0x0}, -+ {0x415cc, 0x0}, -+ {0x415cd, 0x0}, -+ {0x415ce, 0x0}, -+ {0x415cf, 0x0}, -+ {0x415d0, 0x0}, -+ {0x415d1, 0x0}, -+ {0x415d2, 0x0}, -+ {0x415d3, 0x0}, -+ {0x415d4, 0x0}, -+ {0x415d5, 0x0}, -+ {0x415d6, 0x0}, -+ {0x415d7, 0x0}, -+ {0x415d8, 0x0}, -+ {0x415d9, 0x0}, -+ {0x415da, 0x0}, -+ {0x415db, 0x0}, -+ {0x415dc, 0x0}, -+ {0x415dd, 0x0}, -+ {0x415de, 0x0}, -+ {0x415df, 0x0}, -+ {0x415e0, 0x0}, -+ {0x415e1, 0x0}, -+ {0x415e2, 0x0}, -+ {0x415e3, 0x0}, -+ {0x415e4, 0x0}, -+ {0x415e5, 0x0}, -+ {0x415e6, 0x0}, -+ {0x415e7, 0x0}, -+ {0x415e8, 0x0}, -+ {0x415e9, 0x0}, -+ {0x415ea, 0x0}, -+ {0x415eb, 0x0}, -+ {0x415ec, 0x0}, -+ {0x415ed, 0x0}, -+ {0x415ee, 0x0}, -+ {0x415ef, 0x0}, -+ {0x415f0, 0x0}, -+ {0x415f1, 0x0}, -+ {0x415f2, 0x0}, -+ {0x415f3, 0x0}, -+ {0x415f4, 0x0}, -+ {0x415f5, 0x0}, -+ {0x415f6, 0x0}, -+ {0x415f7, 0x0}, -+ {0x415f8, 0x0}, -+ {0x415f9, 0x0}, -+ {0x415fa, 0x0}, -+ {0x415fb, 0x0}, -+ {0x415fc, 0x0}, -+ {0x415fd, 0x0}, -+ {0x415fe, 0x0}, -+ {0x415ff, 0x0}, -+ {0x41600, 0x0}, -+ {0x41601, 0x0}, -+ {0x41602, 0x0}, -+ {0x41603, 0x0}, -+ {0x41604, 0x0}, -+ {0x41605, 0x0}, -+ {0x41606, 0x0}, -+ {0x41607, 0x0}, -+ {0x41608, 0x0}, -+ {0x41609, 0x0}, -+ {0x4160a, 0x0}, -+ {0x4160b, 0x0}, -+ {0x4160c, 0x0}, -+ {0x4160d, 0x0}, -+ {0x4160e, 0x0}, -+ {0x4160f, 0x0}, -+ {0x41610, 0x0}, -+ {0x41611, 0x0}, -+ {0x41612, 0x0}, -+ {0x41613, 0x0}, -+ {0x41614, 0x0}, -+ {0x41615, 0x0}, -+ {0x41616, 0x0}, -+ {0x41617, 0x0}, -+ {0x41618, 0x0}, -+ {0x41619, 0x0}, -+ {0x4161a, 0x0}, -+ {0x4161b, 0x0}, -+ {0x4161c, 0x0}, -+ {0x4161d, 0x0}, -+ {0x4161e, 0x0}, -+ {0x4161f, 0x0}, -+ {0x41620, 0x0}, -+ {0x41621, 0x0}, -+ {0x41622, 0x0}, -+ {0x41623, 0x0}, -+ {0x41624, 0x0}, -+ {0x41625, 0x0}, -+ {0x41626, 0x0}, -+ {0x41627, 0x0}, -+ {0x41628, 0x0}, -+ {0x41629, 0x0}, -+ {0x4162a, 0x0}, -+ {0x4162b, 0x0}, -+ {0x4162c, 0x0}, -+ {0x4162d, 0x0}, -+ {0x4162e, 0x0}, -+ {0x4162f, 0x0}, -+ {0x41630, 0x0}, -+ {0x41631, 0x0}, -+ {0x41632, 0x0}, -+ {0x41633, 0x0}, -+ {0x41634, 0x0}, -+ {0x41635, 0x0}, -+ {0x41636, 0x0}, -+ {0x41637, 0x0}, -+ {0x41638, 0x0}, -+ {0x41639, 0x0}, -+ {0x4163a, 0x0}, -+ {0x4163b, 0x0}, -+ {0x4163c, 0x0}, -+ {0x4163d, 0x0}, -+ {0x4163e, 0x0}, -+ {0x4163f, 0x0}, -+ {0x41640, 0x0}, -+ {0x41641, 0x0}, -+ {0x41642, 0x0}, -+ {0x41643, 0x0}, -+ {0x41644, 0x0}, -+ {0x41645, 0x0}, -+ {0x41646, 0x0}, -+ {0x41647, 0x0}, -+ {0x41648, 0x0}, -+ {0x41649, 0x0}, -+ {0x4164a, 0x0}, -+ {0x4164b, 0x0}, -+ {0x4164c, 0x0}, -+ {0x4164d, 0x0}, -+ {0x4164e, 0x0}, -+ {0x4164f, 0x0}, -+ {0x41650, 0x0}, -+ {0x41651, 0x0}, -+ {0x41652, 0x0}, -+ {0x41653, 0x0}, -+ {0x41654, 0x0}, -+ {0x41655, 0x0}, -+ {0x41656, 0x0}, -+ {0x41657, 0x0}, -+ {0x41658, 0x0}, -+ {0x41659, 0x0}, -+ {0x4165a, 0x0}, -+ {0x4165b, 0x0}, -+ {0x4165c, 0x0}, -+ {0x4165d, 0x0}, -+ {0x4165e, 0x0}, -+ {0x4165f, 0x0}, -+ {0x41660, 0x0}, -+ {0x41661, 0x0}, -+ {0x41662, 0x0}, -+ {0x41663, 0x0}, -+ {0x41664, 0x0}, -+ {0x41665, 0x0}, -+ {0x41666, 0x0}, -+ {0x41667, 0x0}, -+ {0x41668, 0x0}, -+ {0x41669, 0x0}, -+ {0x4166a, 0x0}, -+ {0x4166b, 0x0}, -+ {0x4166c, 0x0}, -+ {0x4166d, 0x0}, -+ {0x4166e, 0x0}, -+ {0x4166f, 0x0}, -+ {0x41670, 0x0}, -+ {0x41671, 0x0}, -+ {0x41672, 0x0}, -+ {0x41673, 0x0}, -+ {0x41674, 0x0}, -+ {0x41675, 0x0}, -+ {0x41676, 0x0}, -+ {0x41677, 0x0}, -+ {0x41678, 0x0}, -+ {0x41679, 0x0}, -+ {0x4167a, 0x0}, -+ {0x4167b, 0x0}, -+ {0x4167c, 0x0}, -+ {0x4167d, 0x0}, -+ {0x4167e, 0x0}, -+ {0x4167f, 0x0}, -+ {0x41680, 0x0}, -+ {0x41681, 0x0}, -+ {0x41682, 0x0}, -+ {0x41683, 0x0}, -+ {0x41684, 0x0}, -+ {0x41685, 0x0}, -+ {0x41686, 0x0}, -+ {0x41687, 0x0}, -+ {0x41688, 0x0}, -+ {0x41689, 0x0}, -+ {0x4168a, 0x0}, -+ {0x4168b, 0x0}, -+ {0x4168c, 0x0}, -+ {0x4168d, 0x0}, -+ {0x4168e, 0x0}, -+ {0x4168f, 0x0}, -+ {0x41690, 0x0}, -+ {0x41691, 0x0}, -+ {0x41692, 0x0}, -+ {0x41693, 0x0}, -+ {0x41694, 0x0}, -+ {0x41695, 0x0}, -+ {0x41696, 0x0}, -+ {0x41697, 0x0}, -+ {0x41698, 0x0}, -+ {0x41699, 0x0}, -+ {0x4169a, 0x0}, -+ {0x4169b, 0x0}, -+ {0x4169c, 0x0}, -+ {0x4169d, 0x0}, -+ {0x4169e, 0x0}, -+ {0x4169f, 0x0}, -+ {0x416a0, 0x0}, -+ {0x416a1, 0x0}, -+ {0x416a2, 0x0}, -+ {0x416a3, 0x0}, -+ {0x416a4, 0x0}, -+ {0x416a5, 0x0}, -+ {0x416a6, 0x0}, -+ {0x416a7, 0x0}, -+ {0x416a8, 0x0}, -+ {0x416a9, 0x0}, -+ {0x416aa, 0x0}, -+ {0x416ab, 0x0}, -+ {0x416ac, 0x0}, -+ {0x416ad, 0x0}, -+ {0x416ae, 0x0}, -+ {0x416af, 0x0}, -+ {0x416b0, 0x0}, -+ {0x416b1, 0x0}, -+ {0x416b2, 0x0}, -+ {0x416b3, 0x0}, -+ {0x416b4, 0x0}, -+ {0x416b5, 0x0}, -+ {0x416b6, 0x0}, -+ {0x416b7, 0x0}, -+ {0x416b8, 0x0}, -+ {0x416b9, 0x0}, -+ {0x416ba, 0x0}, -+ {0x416bb, 0x0}, -+ {0x416bc, 0x0}, -+ {0x416bd, 0x0}, -+ {0x416be, 0x0}, -+ {0x416bf, 0x0}, -+ {0x416c0, 0x0}, -+ {0x416c1, 0x0}, -+ {0x416c2, 0x0}, -+ {0x416c3, 0x0}, -+ {0x416c4, 0x0}, -+ {0x416c5, 0x0}, -+ {0x416c6, 0x0}, -+ {0x416c7, 0x0}, -+ {0x416c8, 0x0}, -+ {0x416c9, 0x0}, -+ {0x416ca, 0x0}, -+ {0x416cb, 0x0}, -+ {0x416cc, 0x0}, -+ {0x416cd, 0x0}, -+ {0x416ce, 0x0}, -+ {0x416cf, 0x0}, -+ {0x416d0, 0x0}, -+ {0x416d1, 0x0}, -+ {0x416d2, 0x0}, -+ {0x416d3, 0x0}, -+ {0x416d4, 0x0}, -+ {0x416d5, 0x0}, -+ {0x416d6, 0x0}, -+ {0x416d7, 0x0}, -+ {0x416d8, 0x0}, -+ {0x416d9, 0x0}, -+ {0x416da, 0x0}, -+ {0x416db, 0x0}, -+ {0x416dc, 0x0}, -+ {0x416dd, 0x0}, -+ {0x416de, 0x0}, -+ {0x416df, 0x0}, -+ {0x416e0, 0x0}, -+ {0x416e1, 0x0}, -+ {0x416e2, 0x0}, -+ {0x416e3, 0x0}, -+ {0x416e4, 0x0}, -+ {0x416e5, 0x0}, -+ {0x416e6, 0x0}, -+ {0x416e7, 0x0}, -+ {0x416e8, 0x0}, -+ {0x416e9, 0x0}, -+ {0x416ea, 0x0}, -+ {0x416eb, 0x0}, -+ {0x416ec, 0x0}, -+ {0x416ed, 0x0}, -+ {0x416ee, 0x0}, -+ {0x416ef, 0x0}, -+ {0x416f0, 0x0}, -+ {0x416f1, 0x0}, -+ {0x416f2, 0x0}, -+ {0x416f3, 0x0}, -+ {0x416f4, 0x0}, -+ {0x416f5, 0x0}, -+ {0x416f6, 0x0}, -+ {0x416f7, 0x0}, -+ {0x416f8, 0x0}, -+ {0x416f9, 0x0}, -+ {0x416fa, 0x0}, -+ {0x416fb, 0x0}, -+ {0x416fc, 0x0}, -+ {0x416fd, 0x0}, -+ {0x416fe, 0x0}, -+ {0x416ff, 0x0}, -+ {0x41700, 0x0}, -+ {0x41701, 0x0}, -+ {0x41702, 0x0}, -+ {0x41703, 0x0}, -+ {0x41704, 0x0}, -+ {0x41705, 0x0}, -+ {0x41706, 0x0}, -+ {0x41707, 0x0}, -+ {0x41708, 0x0}, -+ {0x41709, 0x0}, -+ {0x4170a, 0x0}, -+ {0x4170b, 0x0}, -+ {0x4170c, 0x0}, -+ {0x4170d, 0x0}, -+ {0x4170e, 0x0}, -+ {0x4170f, 0x0}, -+ {0x41710, 0x0}, -+ {0x41711, 0x0}, -+ {0x41712, 0x0}, -+ {0x41713, 0x0}, -+ {0x41714, 0x0}, -+ {0x41715, 0x0}, -+ {0x41716, 0x0}, -+ {0x41717, 0x0}, -+ {0x41718, 0x0}, -+ {0x41719, 0x0}, -+ {0x4171a, 0x0}, -+ {0x4171b, 0x0}, -+ {0x4171c, 0x0}, -+ {0x4171d, 0x0}, -+ {0x4171e, 0x0}, -+ {0x4171f, 0x0}, -+ {0x41720, 0x0}, -+ {0x41721, 0x0}, -+ {0x41722, 0x0}, -+ {0x41723, 0x0}, -+ {0x41724, 0x0}, -+ {0x41725, 0x0}, -+ {0x41726, 0x0}, -+ {0x41727, 0x0}, -+ {0x41728, 0x0}, -+ {0x41729, 0x0}, -+ {0x4172a, 0x0}, -+ {0x4172b, 0x0}, -+ {0x4172c, 0x0}, -+ {0x4172d, 0x0}, -+ {0x4172e, 0x0}, -+ {0x4172f, 0x0}, -+ {0x41730, 0x0}, -+ {0x41731, 0x0}, -+ {0x41732, 0x0}, -+ {0x41733, 0x0}, -+ {0x41734, 0x0}, -+ {0x41735, 0x0}, -+ {0x41736, 0x0}, -+ {0x41737, 0x0}, -+ {0x41738, 0x0}, -+ {0x41739, 0x0}, -+ {0x4173a, 0x0}, -+ {0x4173b, 0x0}, -+ {0x4173c, 0x0}, -+ {0x4173d, 0x0}, -+ {0x4173e, 0x0}, -+ {0x4173f, 0x0}, -+ {0x41740, 0x0}, -+ {0x41741, 0x0}, -+ {0x41742, 0x0}, -+ {0x41743, 0x0}, -+ {0x41744, 0x0}, -+ {0x41745, 0x0}, -+ {0x41746, 0x0}, -+ {0x41747, 0x0}, -+ {0x41748, 0x0}, -+ {0x41749, 0x0}, -+ {0x4174a, 0x0}, -+ {0x4174b, 0x0}, -+ {0x4174c, 0x0}, -+ {0x4174d, 0x0}, -+ {0x4174e, 0x0}, -+ {0x4174f, 0x0}, -+ {0x41750, 0x0}, -+ {0x41751, 0x0}, -+ {0x41752, 0x0}, -+ {0x41753, 0x0}, -+ {0x41754, 0x0}, -+ {0x41755, 0x0}, -+ {0x41756, 0x0}, -+ {0x41757, 0x0}, -+ {0x41758, 0x0}, -+ {0x41759, 0x0}, -+ {0x4175a, 0x0}, -+ {0x4175b, 0x0}, -+ {0x4175c, 0x0}, -+ {0x4175d, 0x0}, -+ {0x4175e, 0x0}, -+ {0x4175f, 0x0}, -+ {0x41760, 0x0}, -+ {0x41761, 0x0}, -+ {0x41762, 0x0}, -+ {0x41763, 0x0}, -+ {0x41764, 0x0}, -+ {0x41765, 0x0}, -+ {0x41766, 0x0}, -+ {0x41767, 0x0}, -+ {0x41768, 0x0}, -+ {0x41769, 0x0}, -+ {0x4176a, 0x0}, -+ {0x4176b, 0x0}, -+ {0x4176c, 0x0}, -+ {0x4176d, 0x0}, -+ {0x4176e, 0x0}, -+ {0x4176f, 0x0}, -+ {0x41770, 0x0}, -+ {0x41771, 0x0}, -+ {0x41772, 0x0}, -+ {0x41773, 0x0}, -+ {0x41774, 0x0}, -+ {0x41775, 0x0}, -+ {0x41776, 0x0}, -+ {0x41777, 0x0}, -+ {0x41778, 0x0}, -+ {0x41779, 0x0}, -+ {0x4177a, 0x0}, -+ {0x4177b, 0x0}, -+ {0x4177c, 0x0}, -+ {0x4177d, 0x0}, -+ {0x4177e, 0x0}, -+ {0x4177f, 0x0}, -+ {0x41780, 0x0}, -+ {0x41781, 0x0}, -+ {0x41782, 0x0}, -+ {0x41783, 0x0}, -+ {0x41784, 0x0}, -+ {0x41785, 0x0}, -+ {0x41786, 0x0}, -+ {0x41787, 0x0}, -+ {0x41788, 0x0}, -+ {0x41789, 0x0}, -+ {0x4178a, 0x0}, -+ {0x4178b, 0x0}, -+ {0x4178c, 0x0}, -+ {0x4178d, 0x0}, -+ {0x4178e, 0x0}, -+ {0x4178f, 0x0}, -+ {0x41790, 0x0}, -+ {0x41791, 0x0}, -+ {0x41792, 0x0}, -+ {0x41793, 0x0}, -+ {0x41794, 0x0}, -+ {0x41795, 0x0}, -+ {0x41796, 0x0}, -+ {0x41797, 0x0}, -+ {0x41798, 0x0}, -+ {0x41799, 0x0}, -+ {0x4179a, 0x0}, -+ {0x4179b, 0x0}, -+ {0x4179c, 0x0}, -+ {0x4179d, 0x0}, -+ {0x4179e, 0x0}, -+ {0x4179f, 0x0}, -+ {0x417a0, 0x0}, -+ {0x417a1, 0x0}, -+ {0x417a2, 0x0}, -+ {0x417a3, 0x0}, -+ {0x417a4, 0x0}, -+ {0x417a5, 0x0}, -+ {0x417a6, 0x0}, -+ {0x417a7, 0x0}, -+ {0x417a8, 0x0}, -+ {0x417a9, 0x0}, -+ {0x417aa, 0x0}, -+ {0x417ab, 0x0}, -+ {0x417ac, 0x0}, -+ {0x417ad, 0x0}, -+ {0x417ae, 0x0}, -+ {0x417af, 0x0}, -+ {0x417b0, 0x0}, -+ {0x417b1, 0x0}, -+ {0x417b2, 0x0}, -+ {0x417b3, 0x0}, -+ {0x417b4, 0x0}, -+ {0x417b5, 0x0}, -+ {0x417b6, 0x0}, -+ {0x417b7, 0x0}, -+ {0x417b8, 0x0}, -+ {0x417b9, 0x0}, -+ {0x417ba, 0x0}, -+ {0x417bb, 0x0}, -+ {0x417bc, 0x0}, -+ {0x417bd, 0x0}, -+ {0x417be, 0x0}, -+ {0x417bf, 0x0}, -+ {0x417c0, 0x0}, -+ {0x417c1, 0x0}, -+ {0x417c2, 0x0}, -+ {0x417c3, 0x0}, -+ {0x417c4, 0x0}, -+ {0x417c5, 0x0}, -+ {0x417c6, 0x0}, -+ {0x417c7, 0x0}, -+ {0x417c8, 0x0}, -+ {0x417c9, 0x0}, -+ {0x417ca, 0x0}, -+ {0x417cb, 0x0}, -+ {0x417cc, 0x0}, -+ {0x417cd, 0x0}, -+ {0x417ce, 0x0}, -+ {0x417cf, 0x0}, -+ {0x417d0, 0x0}, -+ {0x417d1, 0x0}, -+ {0x417d2, 0x0}, -+ {0x417d3, 0x0}, -+ {0x417d4, 0x0}, -+ {0x417d5, 0x0}, -+ {0x417d6, 0x0}, -+ {0x417d7, 0x0}, -+ {0x417d8, 0x0}, -+ {0x417d9, 0x0}, -+ {0x417da, 0x0}, -+ {0x417db, 0x0}, -+ {0x417dc, 0x0}, -+ {0x417dd, 0x0}, -+ {0x417de, 0x0}, -+ {0x417df, 0x0}, -+ {0x417e0, 0x0}, -+ {0x417e1, 0x0}, -+ {0x417e2, 0x0}, -+ {0x417e3, 0x0}, -+ {0x417e4, 0x0}, -+ {0x417e5, 0x0}, -+ {0x417e6, 0x0}, -+ {0x417e7, 0x0}, -+ {0x417e8, 0x0}, -+ {0x417e9, 0x0}, -+ {0x417ea, 0x0}, -+ {0x417eb, 0x0}, -+ {0x417ec, 0x0}, -+ {0x417ed, 0x0}, -+ {0x417ee, 0x0}, -+ {0x417ef, 0x0}, -+ {0x417f0, 0x0}, -+ {0x417f1, 0x0}, -+ {0x417f2, 0x0}, -+ {0x417f3, 0x0}, -+ {0x417f4, 0x0}, -+ {0x417f5, 0x0}, -+ {0x417f6, 0x0}, -+ {0x417f7, 0x0}, -+ {0x417f8, 0x0}, -+ {0x417f9, 0x0}, -+ {0x417fa, 0x0}, -+ {0x417fb, 0x0}, -+ {0x417fc, 0x0}, -+ {0x417fd, 0x0}, -+ {0x417fe, 0x0}, -+ {0x417ff, 0x0}, -+ {0x41800, 0x0}, -+ {0x41801, 0x0}, -+ {0x41802, 0x0}, -+ {0x41803, 0x0}, -+ {0x41804, 0x0}, -+ {0x41805, 0x0}, -+ {0x41806, 0x0}, -+ {0x41807, 0x0}, -+ {0x41808, 0x0}, -+ {0x41809, 0x0}, -+ {0x4180a, 0x0}, -+ {0x4180b, 0x0}, -+ {0x4180c, 0x0}, -+ {0x4180d, 0x0}, -+ {0x4180e, 0x0}, -+ {0x4180f, 0x0}, -+ {0x41810, 0x0}, -+ {0x41811, 0x0}, -+ {0x41812, 0x0}, -+ {0x41813, 0x0}, -+ {0x41814, 0x0}, -+ {0x41815, 0x0}, -+ {0x41816, 0x0}, -+ {0x41817, 0x0}, -+ {0x41818, 0x0}, -+ {0x41819, 0x0}, -+ {0x4181a, 0x0}, -+ {0x4181b, 0x0}, -+ {0x4181c, 0x0}, -+ {0x4181d, 0x0}, -+ {0x4181e, 0x0}, -+ {0x4181f, 0x0}, -+ {0x41820, 0x0}, -+ {0x41821, 0x0}, -+ {0x41822, 0x0}, -+ {0x41823, 0x0}, -+ {0x41824, 0x0}, -+ {0x41825, 0x0}, -+ {0x41826, 0x0}, -+ {0x41827, 0x0}, -+ {0x41828, 0x0}, -+ {0x41829, 0x0}, -+ {0x4182a, 0x0}, -+ {0x4182b, 0x0}, -+ {0x4182c, 0x0}, -+ {0x4182d, 0x0}, -+ {0x4182e, 0x0}, -+ {0x4182f, 0x0}, -+ {0x41830, 0x0}, -+ {0x41831, 0x0}, -+ {0x41832, 0x0}, -+ {0x41833, 0x0}, -+ {0x41834, 0x0}, -+ {0x41835, 0x0}, -+ {0x41836, 0x0}, -+ {0x41837, 0x0}, -+ {0x41838, 0x0}, -+ {0x41839, 0x0}, -+ {0x4183a, 0x0}, -+ {0x4183b, 0x0}, -+ {0x4183c, 0x0}, -+ {0x4183d, 0x0}, -+ {0x4183e, 0x0}, -+ {0x4183f, 0x0}, -+ {0x41840, 0x0}, -+ {0x41841, 0x0}, -+ {0x41842, 0x0}, -+ {0x41843, 0x0}, -+ {0x41844, 0x0}, -+ {0x41845, 0x0}, -+ {0x41846, 0x0}, -+ {0x41847, 0x0}, -+ {0x41848, 0x0}, -+ {0x41849, 0x0}, -+ {0x4184a, 0x0}, -+ {0x4184b, 0x0}, -+ {0x4184c, 0x0}, -+ {0x4184d, 0x0}, -+ {0x4184e, 0x0}, -+ {0x4184f, 0x0}, -+ {0x41850, 0x0}, -+ {0x41851, 0x0}, -+ {0x41852, 0x0}, -+ {0x41853, 0x0}, -+ {0x41854, 0x0}, -+ {0x41855, 0x0}, -+ {0x41856, 0x0}, -+ {0x41857, 0x0}, -+ {0x41858, 0x0}, -+ {0x41859, 0x0}, -+ {0x4185a, 0x0}, -+ {0x4185b, 0x0}, -+ {0x4185c, 0x0}, -+ {0x4185d, 0x0}, -+ {0x4185e, 0x0}, -+ {0x4185f, 0x0}, -+ {0x41860, 0x0}, -+ {0x41861, 0x0}, -+ {0x41862, 0x0}, -+ {0x41863, 0x0}, -+ {0x41864, 0x0}, -+ {0x41865, 0x0}, -+ {0x41866, 0x0}, -+ {0x41867, 0x0}, -+ {0x41868, 0x0}, -+ {0x41869, 0x0}, -+ {0x4186a, 0x0}, -+ {0x4186b, 0x0}, -+ {0x4186c, 0x0}, -+ {0x4186d, 0x0}, -+ {0x4186e, 0x0}, -+ {0x4186f, 0x0}, -+ {0x41870, 0x0}, -+ {0x41871, 0x0}, -+ {0x41872, 0x0}, -+ {0x41873, 0x0}, -+ {0x41874, 0x0}, -+ {0x41875, 0x0}, -+ {0x41876, 0x0}, -+ {0x41877, 0x0}, -+ {0x41878, 0x0}, -+ {0x41879, 0x0}, -+ {0x4187a, 0x0}, -+ {0x4187b, 0x0}, -+ {0x4187c, 0x0}, -+ {0x4187d, 0x0}, -+ {0x4187e, 0x0}, -+ {0x4187f, 0x0}, -+ {0x41880, 0x0}, -+ {0x41881, 0x0}, -+ {0x41882, 0x0}, -+ {0x41883, 0x0}, -+ {0x41884, 0x0}, -+ {0x41885, 0x0}, -+ {0x41886, 0x0}, -+ {0x41887, 0x0}, -+ {0x41888, 0x0}, -+ {0x41889, 0x0}, -+ {0x4188a, 0x0}, -+ {0x4188b, 0x0}, -+ {0x4188c, 0x0}, -+ {0x4188d, 0x0}, -+ {0x4188e, 0x0}, -+ {0x4188f, 0x0}, -+ {0x41890, 0x0}, -+ {0x41891, 0x0}, -+ {0x41892, 0x0}, -+ {0x41893, 0x0}, -+ {0x41894, 0x0}, -+ {0x41895, 0x0}, -+ {0x41896, 0x0}, -+ {0x41897, 0x0}, -+ {0x41898, 0x0}, -+ {0x41899, 0x0}, -+ {0x4189a, 0x0}, -+ {0x4189b, 0x0}, -+ {0x4189c, 0x0}, -+ {0x4189d, 0x0}, -+ {0x4189e, 0x0}, -+ {0x4189f, 0x0}, -+ {0x418a0, 0x0}, -+ {0x418a1, 0x0}, -+ {0x418a2, 0x0}, -+ {0x418a3, 0x0}, -+ {0x418a4, 0x0}, -+ {0x418a5, 0x0}, -+ {0x418a6, 0x0}, -+ {0x418a7, 0x0}, -+ {0x418a8, 0x0}, -+ {0x418a9, 0x0}, -+ {0x418aa, 0x0}, -+ {0x418ab, 0x0}, -+ {0x418ac, 0x0}, -+ {0x418ad, 0x0}, -+ {0x418ae, 0x0}, -+ {0x418af, 0x0}, -+ {0x418b0, 0x0}, -+ {0x418b1, 0x0}, -+ {0x418b2, 0x0}, -+ {0x418b3, 0x0}, -+ {0x418b4, 0x0}, -+ {0x418b5, 0x0}, -+ {0x418b6, 0x0}, -+ {0x418b7, 0x0}, -+ {0x418b8, 0x0}, -+ {0x418b9, 0x0}, -+ {0x418ba, 0x0}, -+ {0x418bb, 0x0}, -+ {0x418bc, 0x0}, -+ {0x418bd, 0x0}, -+ {0x418be, 0x0}, -+ {0x418bf, 0x0}, -+ {0x418c0, 0x0}, -+ {0x418c1, 0x0}, -+ {0x418c2, 0x0}, -+ {0x418c3, 0x0}, -+ {0x418c4, 0x0}, -+ {0x418c5, 0x0}, -+ {0x418c6, 0x0}, -+ {0x418c7, 0x0}, -+ {0x418c8, 0x0}, -+ {0x418c9, 0x0}, -+ {0x418ca, 0x0}, -+ {0x418cb, 0x0}, -+ {0x418cc, 0x0}, -+ {0x418cd, 0x0}, -+ {0x418ce, 0x0}, -+ {0x418cf, 0x0}, -+ {0x418d0, 0x0}, -+ {0x418d1, 0x0}, -+ {0x418d2, 0x0}, -+ {0x418d3, 0x0}, -+ {0x418d4, 0x0}, -+ {0x418d5, 0x0}, -+ {0x418d6, 0x0}, -+ {0x418d7, 0x0}, -+ {0x418d8, 0x0}, -+ {0x418d9, 0x0}, -+ {0x418da, 0x0}, -+ {0x418db, 0x0}, -+ {0x418dc, 0x0}, -+ {0x418dd, 0x0}, -+ {0x418de, 0x0}, -+ {0x418df, 0x0}, -+ {0x418e0, 0x0}, -+ {0x418e1, 0x0}, -+ {0x418e2, 0x0}, -+ {0x418e3, 0x0}, -+ {0x418e4, 0x0}, -+ {0x418e5, 0x0}, -+ {0x418e6, 0x0}, -+ {0x418e7, 0x0}, -+ {0x418e8, 0x0}, -+ {0x418e9, 0x0}, -+ {0x418ea, 0x0}, -+ {0x418eb, 0x0}, -+ {0x418ec, 0x0}, -+ {0x418ed, 0x0}, -+ {0x418ee, 0x0}, -+ {0x418ef, 0x0}, -+ {0x418f0, 0x0}, -+ {0x418f1, 0x0}, -+ {0x418f2, 0x0}, -+ {0x418f3, 0x0}, -+ {0x418f4, 0x0}, -+ {0x418f5, 0x0}, -+ {0x418f6, 0x0}, -+ {0x418f7, 0x0}, -+ {0x418f8, 0x0}, -+ {0x418f9, 0x0}, -+ {0x418fa, 0x0}, -+ {0x418fb, 0x0}, -+ {0x418fc, 0x0}, -+ {0x418fd, 0x0}, -+ {0x418fe, 0x0}, -+ {0x418ff, 0x0}, -+ {0x41900, 0x0}, -+ {0x41901, 0x0}, -+ {0x41902, 0x0}, -+ {0x41903, 0x0}, -+ {0x41904, 0x0}, -+ {0x41905, 0x0}, -+ {0x41906, 0x0}, -+ {0x41907, 0x0}, -+ {0x41908, 0x0}, -+ {0x41909, 0x0}, -+ {0x4190a, 0x0}, -+ {0x4190b, 0x0}, -+ {0x4190c, 0x0}, -+ {0x4190d, 0x0}, -+ {0x4190e, 0x0}, -+ {0x4190f, 0x0}, -+ {0x41910, 0x0}, -+ {0x41911, 0x0}, -+ {0x41912, 0x0}, -+ {0x41913, 0x0}, -+ {0x41914, 0x0}, -+ {0x41915, 0x0}, -+ {0x41916, 0x0}, -+ {0x41917, 0x0}, -+ {0x41918, 0x0}, -+ {0x41919, 0x0}, -+ {0x4191a, 0x0}, -+ {0x4191b, 0x0}, -+ {0x4191c, 0x0}, -+ {0x4191d, 0x0}, -+ {0x4191e, 0x0}, -+ {0x4191f, 0x0}, -+ {0x41920, 0x0}, -+ {0x41921, 0x0}, -+ {0x41922, 0x0}, -+ {0x41923, 0x0}, -+ {0x41924, 0x0}, -+ {0x41925, 0x0}, -+ {0x41926, 0x0}, -+ {0x41927, 0x0}, -+ {0x41928, 0x0}, -+ {0x41929, 0x0}, -+ {0x4192a, 0x0}, -+ {0x4192b, 0x0}, -+ {0x4192c, 0x0}, -+ {0x4192d, 0x0}, -+ {0x4192e, 0x0}, -+ {0x4192f, 0x0}, -+ {0x41930, 0x0}, -+ {0x41931, 0x0}, -+ {0x41932, 0x0}, -+ {0x41933, 0x0}, -+ {0x41934, 0x0}, -+ {0x41935, 0x0}, -+ {0x41936, 0x0}, -+ {0x41937, 0x0}, -+ {0x41938, 0x0}, -+ {0x41939, 0x0}, -+ {0x4193a, 0x0}, -+ {0x4193b, 0x0}, -+ {0x4193c, 0x0}, -+ {0x4193d, 0x0}, -+ {0x4193e, 0x0}, -+ {0x4193f, 0x0}, -+ {0x41940, 0x0}, -+ {0x41941, 0x0}, -+ {0x41942, 0x0}, -+ {0x41943, 0x0}, -+ {0x41944, 0x0}, -+ {0x41945, 0x0}, -+ {0x41946, 0x0}, -+ {0x41947, 0x0}, -+ {0x41948, 0x0}, -+ {0x41949, 0x0}, -+ {0x4194a, 0x0}, -+ {0x4194b, 0x0}, -+ {0x4194c, 0x0}, -+ {0x4194d, 0x0}, -+ {0x4194e, 0x0}, -+ {0x4194f, 0x0}, -+ {0x41950, 0x0}, -+ {0x41951, 0x0}, -+ {0x41952, 0x0}, -+ {0x41953, 0x0}, -+ {0x41954, 0x0}, -+ {0x41955, 0x0}, -+ {0x41956, 0x0}, -+ {0x41957, 0x0}, -+ {0x41958, 0x0}, -+ {0x41959, 0x0}, -+ {0x4195a, 0x0}, -+ {0x4195b, 0x0}, -+ {0x4195c, 0x0}, -+ {0x4195d, 0x0}, -+ {0x4195e, 0x0}, -+ {0x4195f, 0x0}, -+ {0x41960, 0x0}, -+ {0x41961, 0x0}, -+ {0x41962, 0x0}, -+ {0x41963, 0x0}, -+ {0x41964, 0x0}, -+ {0x41965, 0x0}, -+ {0x41966, 0x0}, -+ {0x41967, 0x0}, -+ {0x41968, 0x0}, -+ {0x41969, 0x0}, -+ {0x4196a, 0x0}, -+ {0x4196b, 0x0}, -+ {0x4196c, 0x0}, -+ {0x4196d, 0x0}, -+ {0x4196e, 0x0}, -+ {0x4196f, 0x0}, -+ {0x41970, 0x0}, -+ {0x41971, 0x0}, -+ {0x41972, 0x0}, -+ {0x41973, 0x0}, -+ {0x41974, 0x0}, -+ {0x41975, 0x0}, -+ {0x41976, 0x0}, -+ {0x41977, 0x0}, -+ {0x41978, 0x0}, -+ {0x41979, 0x0}, -+ {0x4197a, 0x0}, -+ {0x4197b, 0x0}, -+ {0x4197c, 0x0}, -+ {0x4197d, 0x0}, -+ {0x4197e, 0x0}, -+ {0x4197f, 0x0}, -+ {0x41980, 0x0}, -+ {0x41981, 0x0}, -+ {0x41982, 0x0}, -+ {0x41983, 0x0}, -+ {0x41984, 0x0}, -+ {0x41985, 0x0}, -+ {0x41986, 0x0}, -+ {0x41987, 0x0}, -+ {0x41988, 0x0}, -+ {0x41989, 0x0}, -+ {0x4198a, 0x0}, -+ {0x4198b, 0x0}, -+ {0x4198c, 0x0}, -+ {0x4198d, 0x0}, -+ {0x4198e, 0x0}, -+ {0x4198f, 0x0}, -+ {0x41990, 0x0}, -+ {0x41991, 0x0}, -+ {0x41992, 0x0}, -+ {0x41993, 0x0}, -+ {0x41994, 0x0}, -+ {0x41995, 0x0}, -+ {0x41996, 0x0}, -+ {0x41997, 0x0}, -+ {0x41998, 0x0}, -+ {0x41999, 0x0}, -+ {0x4199a, 0x0}, -+ {0x4199b, 0x0}, -+ {0x4199c, 0x0}, -+ {0x4199d, 0x0}, -+ {0x4199e, 0x0}, -+ {0x4199f, 0x0}, -+ {0x419a0, 0x0}, -+ {0x419a1, 0x0}, -+ {0x419a2, 0x0}, -+ {0x419a3, 0x0}, -+ {0x419a4, 0x0}, -+ {0x419a5, 0x0}, -+ {0x419a6, 0x0}, -+ {0x419a7, 0x0}, -+ {0x419a8, 0x0}, -+ {0x419a9, 0x0}, -+ {0x419aa, 0x0}, -+ {0x419ab, 0x0}, -+ {0x419ac, 0x0}, -+ {0x419ad, 0x0}, -+ {0x419ae, 0x0}, -+ {0x419af, 0x0}, -+ {0x419b0, 0x0}, -+ {0x419b1, 0x0}, -+ {0x419b2, 0x0}, -+ {0x419b3, 0x0}, -+ {0x419b4, 0x0}, -+ {0x419b5, 0x0}, -+ {0x419b6, 0x0}, -+ {0x419b7, 0x0}, -+ {0x419b8, 0x0}, -+ {0x419b9, 0x0}, -+ {0x419ba, 0x0}, -+ {0x419bb, 0x0}, -+ {0x419bc, 0x0}, -+ {0x419bd, 0x0}, -+ {0x419be, 0x0}, -+ {0x419bf, 0x0}, -+ {0x419c0, 0x0}, -+ {0x419c1, 0x0}, -+ {0x419c2, 0x0}, -+ {0x419c3, 0x0}, -+ {0x419c4, 0x0}, -+ {0x419c5, 0x0}, -+ {0x419c6, 0x0}, -+ {0x419c7, 0x0}, -+ {0x419c8, 0x0}, -+ {0x419c9, 0x0}, -+ {0x419ca, 0x0}, -+ {0x419cb, 0x0}, -+ {0x419cc, 0x0}, -+ {0x419cd, 0x0}, -+ {0x419ce, 0x0}, -+ {0x419cf, 0x0}, -+ {0x419d0, 0x0}, -+ {0x419d1, 0x0}, -+ {0x419d2, 0x0}, -+ {0x419d3, 0x0}, -+ {0x419d4, 0x0}, -+ {0x419d5, 0x0}, -+ {0x419d6, 0x0}, -+ {0x419d7, 0x0}, -+ {0x419d8, 0x0}, -+ {0x419d9, 0x0}, -+ {0x419da, 0x0}, -+ {0x419db, 0x0}, -+ {0x419dc, 0x0}, -+ {0x419dd, 0x0}, -+ {0x419de, 0x0}, -+ {0x419df, 0x0}, -+ {0x419e0, 0x0}, -+ {0x419e1, 0x0}, -+ {0x419e2, 0x0}, -+ {0x419e3, 0x0}, -+ {0x419e4, 0x0}, -+ {0x419e5, 0x0}, -+ {0x419e6, 0x0}, -+ {0x419e7, 0x0}, -+ {0x419e8, 0x0}, -+ {0x419e9, 0x0}, -+ {0x419ea, 0x0}, -+ {0x419eb, 0x0}, -+ {0x419ec, 0x0}, -+ {0x419ed, 0x0}, -+ {0x419ee, 0x0}, -+ {0x419ef, 0x0}, -+ {0x419f0, 0x0}, -+ {0x419f1, 0x0}, -+ {0x419f2, 0x0}, -+ {0x419f3, 0x0}, -+ {0x419f4, 0x0}, -+ {0x419f5, 0x0}, -+ {0x419f6, 0x0}, -+ {0x419f7, 0x0}, -+ {0x419f8, 0x0}, -+ {0x419f9, 0x0}, -+ {0x419fa, 0x0}, -+ {0x419fb, 0x0}, -+ {0x419fc, 0x0}, -+ {0x419fd, 0x0}, -+ {0x419fe, 0x0}, -+ {0x419ff, 0x0}, -+ {0x41a00, 0x0}, -+ {0x41a01, 0x0}, -+ {0x41a02, 0x0}, -+ {0x41a03, 0x0}, -+ {0x41a04, 0x0}, -+ {0x41a05, 0x0}, -+ {0x41a06, 0x0}, -+ {0x41a07, 0x0}, -+ {0x41a08, 0x0}, -+ {0x41a09, 0x0}, -+ {0x41a0a, 0x0}, -+ {0x41a0b, 0x0}, -+ {0x41a0c, 0x0}, -+ {0x41a0d, 0x0}, -+ {0x41a0e, 0x0}, -+ {0x41a0f, 0x0}, -+ {0x41a10, 0x0}, -+ {0x41a11, 0x0}, -+ {0x41a12, 0x0}, -+ {0x41a13, 0x0}, -+ {0x41a14, 0x0}, -+ {0x41a15, 0x0}, -+ {0x41a16, 0x0}, -+ {0x41a17, 0x0}, -+ {0x41a18, 0x0}, -+ {0x41a19, 0x0}, -+ {0x41a1a, 0x0}, -+ {0x41a1b, 0x0}, -+ {0x41a1c, 0x0}, -+ {0x41a1d, 0x0}, -+ {0x41a1e, 0x0}, -+ {0x41a1f, 0x0}, -+ {0x41a20, 0x0}, -+ {0x41a21, 0x0}, -+ {0x41a22, 0x0}, -+ {0x41a23, 0x0}, -+ {0x41a24, 0x0}, -+ {0x41a25, 0x0}, -+ {0x41a26, 0x0}, -+ {0x41a27, 0x0}, -+ {0x41a28, 0x0}, -+ {0x41a29, 0x0}, -+ {0x41a2a, 0x0}, -+ {0x41a2b, 0x0}, -+ {0x41a2c, 0x0}, -+ {0x41a2d, 0x0}, -+ {0x41a2e, 0x0}, -+ {0x41a2f, 0x0}, -+ {0x41a30, 0x0}, -+ {0x41a31, 0x0}, -+ {0x41a32, 0x0}, -+ {0x41a33, 0x0}, -+ {0x41a34, 0x0}, -+ {0x41a35, 0x0}, -+ {0x41a36, 0x0}, -+ {0x41a37, 0x0}, -+ {0x41a38, 0x0}, -+ {0x41a39, 0x0}, -+ {0x41a3a, 0x0}, -+ {0x41a3b, 0x0}, -+ {0x41a3c, 0x0}, -+ {0x41a3d, 0x0}, -+ {0x41a3e, 0x0}, -+ {0x41a3f, 0x0}, -+ {0x41a40, 0x0}, -+ {0x41a41, 0x0}, -+ {0x41a42, 0x0}, -+ {0x41a43, 0x0}, -+ {0x41a44, 0x0}, -+ {0x41a45, 0x0}, -+ {0x41a46, 0x0}, -+ {0x41a47, 0x0}, -+ {0x41a48, 0x0}, -+ {0x41a49, 0x0}, -+ {0x41a4a, 0x0}, -+ {0x41a4b, 0x0}, -+ {0x41a4c, 0x0}, -+ {0x41a4d, 0x0}, -+ {0x41a4e, 0x0}, -+ {0x41a4f, 0x0}, -+ {0x41a50, 0x0}, -+ {0x41a51, 0x0}, -+ {0x41a52, 0x0}, -+ {0x41a53, 0x0}, -+ {0x41a54, 0x0}, -+ {0x41a55, 0x0}, -+ {0x41a56, 0x0}, -+ {0x41a57, 0x0}, -+ {0x41a58, 0x0}, -+ {0x41a59, 0x0}, -+ {0x41a5a, 0x0}, -+ {0x41a5b, 0x0}, -+ {0x41a5c, 0x0}, -+ {0x41a5d, 0x0}, -+ {0x41a5e, 0x0}, -+ {0x41a5f, 0x0}, -+ {0x41a60, 0x0}, -+ {0x41a61, 0x0}, -+ {0x41a62, 0x0}, -+ {0x41a63, 0x0}, -+ {0x41a64, 0x0}, -+ {0x41a65, 0x0}, -+ {0x41a66, 0x0}, -+ {0x41a67, 0x0}, -+ {0x41a68, 0x0}, -+ {0x41a69, 0x0}, -+ {0x41a6a, 0x0}, -+ {0x41a6b, 0x0}, -+ {0x41a6c, 0x0}, -+ {0x41a6d, 0x0}, -+ {0x41a6e, 0x0}, -+ {0x41a6f, 0x0}, -+ {0x41a70, 0x0}, -+ {0x41a71, 0x0}, -+ {0x41a72, 0x0}, -+ {0x41a73, 0x0}, -+ {0x41a74, 0x0}, -+ {0x41a75, 0x0}, -+ {0x41a76, 0x0}, -+ {0x41a77, 0x0}, -+ {0x41a78, 0x0}, -+ {0x41a79, 0x0}, -+ {0x41a7a, 0x0}, -+ {0x41a7b, 0x0}, -+ {0x41a7c, 0x0}, -+ {0x41a7d, 0x0}, -+ {0x41a7e, 0x0}, -+ {0x41a7f, 0x0}, -+ {0x41a80, 0x0}, -+ {0x41a81, 0x0}, -+ {0x41a82, 0x0}, -+ {0x41a83, 0x0}, -+ {0x41a84, 0x0}, -+ {0x41a85, 0x0}, -+ {0x41a86, 0x0}, -+ {0x41a87, 0x0}, -+ {0x41a88, 0x0}, -+ {0x41a89, 0x0}, -+ {0x41a8a, 0x0}, -+ {0x41a8b, 0x0}, -+ {0x41a8c, 0x0}, -+ {0x41a8d, 0x0}, -+ {0x41a8e, 0x0}, -+ {0x41a8f, 0x0}, -+ {0x41a90, 0x0}, -+ {0x41a91, 0x0}, -+ {0x41a92, 0x0}, -+ {0x41a93, 0x0}, -+ {0x41a94, 0x0}, -+ {0x41a95, 0x0}, -+ {0x41a96, 0x0}, -+ {0x41a97, 0x0}, -+ {0x41a98, 0x0}, -+ {0x41a99, 0x0}, -+ {0x41a9a, 0x0}, -+ {0x41a9b, 0x0}, -+ {0x41a9c, 0x0}, -+ {0x41a9d, 0x0}, -+ {0x41a9e, 0x0}, -+ {0x41a9f, 0x0}, -+ {0x41aa0, 0x0}, -+ {0x41aa1, 0x0}, -+ {0x41aa2, 0x0}, -+ {0x41aa3, 0x0}, -+ {0x41aa4, 0x0}, -+ {0x41aa5, 0x0}, -+ {0x41aa6, 0x0}, -+ {0x41aa7, 0x0}, -+ {0x41aa8, 0x0}, -+ {0x41aa9, 0x0}, -+ {0x41aaa, 0x0}, -+ {0x41aab, 0x0}, -+ {0x41aac, 0x0}, -+ {0x41aad, 0x0}, -+ {0x41aae, 0x0}, -+ {0x41aaf, 0x0}, -+ {0x41ab0, 0x0}, -+ {0x41ab1, 0x0}, -+ {0x41ab2, 0x0}, -+ {0x41ab3, 0x0}, -+ {0x41ab4, 0x0}, -+ {0x41ab5, 0x0}, -+ {0x41ab6, 0x0}, -+ {0x41ab7, 0x0}, -+ {0x41ab8, 0x0}, -+ {0x41ab9, 0x0}, -+ {0x41aba, 0x0}, -+ {0x41abb, 0x0}, -+ {0x41abc, 0x0}, -+ {0x41abd, 0x0}, -+ {0x41abe, 0x0}, -+ {0x41abf, 0x0}, -+ {0x41ac0, 0x0}, -+ {0x41ac1, 0x0}, -+ {0x41ac2, 0x0}, -+ {0x41ac3, 0x0}, -+ {0x41ac4, 0x0}, -+ {0x41ac5, 0x0}, -+ {0x41ac6, 0x0}, -+ {0x41ac7, 0x0}, -+ {0x41ac8, 0x0}, -+ {0x41ac9, 0x0}, -+ {0x41aca, 0x0}, -+ {0x41acb, 0x0}, -+ {0x41acc, 0x0}, -+ {0x41acd, 0x0}, -+ {0x41ace, 0x0}, -+ {0x41acf, 0x0}, -+ {0x41ad0, 0x0}, -+ {0x41ad1, 0x0}, -+ {0x41ad2, 0x0}, -+ {0x41ad3, 0x0}, -+ {0x41ad4, 0x0}, -+ {0x41ad5, 0x0}, -+ {0x41ad6, 0x0}, -+ {0x41ad7, 0x0}, -+ {0x41ad8, 0x0}, -+ {0x41ad9, 0x0}, -+ {0x41ada, 0x0}, -+ {0x41adb, 0x0}, -+ {0x41adc, 0x0}, -+ {0x41add, 0x0}, -+ {0x41ade, 0x0}, -+ {0x41adf, 0x0}, -+ {0x41ae0, 0x0}, -+ {0x41ae1, 0x0}, -+ {0x41ae2, 0x0}, -+ {0x41ae3, 0x0}, -+ {0x41ae4, 0x0}, -+ {0x41ae5, 0x0}, -+ {0x41ae6, 0x0}, -+ {0x41ae7, 0x0}, -+ {0x41ae8, 0x0}, -+ {0x41ae9, 0x0}, -+ {0x41aea, 0x0}, -+ {0x41aeb, 0x0}, -+ {0x41aec, 0x0}, -+ {0x41aed, 0x0}, -+ {0x41aee, 0x0}, -+ {0x41aef, 0x0}, -+ {0x41af0, 0x0}, -+ {0x41af1, 0x0}, -+ {0x41af2, 0x0}, -+ {0x41af3, 0x0}, -+ {0x41af4, 0x0}, -+ {0x41af5, 0x0}, -+ {0x41af6, 0x0}, -+ {0x41af7, 0x0}, -+ {0x41af8, 0x0}, -+ {0x41af9, 0x0}, -+ {0x41afa, 0x0}, -+ {0x41afb, 0x0}, -+ {0x41afc, 0x0}, -+ {0x41afd, 0x0}, -+ {0x41afe, 0x0}, -+ {0x41aff, 0x0}, -+ {0x41b00, 0x0}, -+ {0x41b01, 0x0}, -+ {0x41b02, 0x0}, -+ {0x41b03, 0x0}, -+ {0x41b04, 0x0}, -+ {0x41b05, 0x0}, -+ {0x41b06, 0x0}, -+ {0x41b07, 0x0}, -+ {0x41b08, 0x0}, -+ {0x41b09, 0x0}, -+ {0x41b0a, 0x0}, -+ {0x41b0b, 0x0}, -+ {0x41b0c, 0x0}, -+ {0x41b0d, 0x0}, -+ {0x41b0e, 0x0}, -+ {0x41b0f, 0x0}, -+ {0x41b10, 0x0}, -+ {0x41b11, 0x0}, -+ {0x41b12, 0x0}, -+ {0x41b13, 0x0}, -+ {0x41b14, 0x0}, -+ {0x41b15, 0x0}, -+ {0x41b16, 0x0}, -+ {0x41b17, 0x0}, -+ {0x41b18, 0x0}, -+ {0x41b19, 0x0}, -+ {0x41b1a, 0x0}, -+ {0x41b1b, 0x0}, -+ {0x41b1c, 0x0}, -+ {0x41b1d, 0x0}, -+ {0x41b1e, 0x0}, -+ {0x41b1f, 0x0}, -+ {0x41b20, 0x0}, -+ {0x41b21, 0x0}, -+ {0x41b22, 0x0}, -+ {0x41b23, 0x0}, -+ {0x41b24, 0x0}, -+ {0x41b25, 0x0}, -+ {0x41b26, 0x0}, -+ {0x41b27, 0x0}, -+ {0x41b28, 0x0}, -+ {0x41b29, 0x0}, -+ {0x41b2a, 0x0}, -+ {0x41b2b, 0x0}, -+ {0x41b2c, 0x0}, -+ {0x41b2d, 0x0}, -+ {0x41b2e, 0x0}, -+ {0x41b2f, 0x0}, -+ {0x41b30, 0x0}, -+ {0x41b31, 0x0}, -+ {0x41b32, 0x0}, -+ {0x41b33, 0x0}, -+ {0x41b34, 0x0}, -+ {0x41b35, 0x0}, -+ {0x41b36, 0x0}, -+ {0x41b37, 0x0}, -+ {0x41b38, 0x0}, -+ {0x41b39, 0x0}, -+ {0x41b3a, 0x0}, -+ {0x41b3b, 0x0}, -+ {0x41b3c, 0x0}, -+ {0x41b3d, 0x0}, -+ {0x41b3e, 0x0}, -+ {0x41b3f, 0x0}, -+ {0x41b40, 0x0}, -+ {0x41b41, 0x0}, -+ {0x41b42, 0x0}, -+ {0x41b43, 0x0}, -+ {0x41b44, 0x0}, -+ {0x41b45, 0x0}, -+ {0x41b46, 0x0}, -+ {0x41b47, 0x0}, -+ {0x41b48, 0x0}, -+ {0x41b49, 0x0}, -+ {0x41b4a, 0x0}, -+ {0x41b4b, 0x0}, -+ {0x41b4c, 0x0}, -+ {0x41b4d, 0x0}, -+ {0x41b4e, 0x0}, -+ {0x41b4f, 0x0}, -+ {0x41b50, 0x0}, -+ {0x41b51, 0x0}, -+ {0x41b52, 0x0}, -+ {0x41b53, 0x0}, -+ {0x41b54, 0x0}, -+ {0x41b55, 0x0}, -+ {0x41b56, 0x0}, -+ {0x41b57, 0x0}, -+ {0x41b58, 0x0}, -+ {0x41b59, 0x0}, -+ {0x41b5a, 0x0}, -+ {0x41b5b, 0x0}, -+ {0x41b5c, 0x0}, -+ {0x41b5d, 0x0}, -+ {0x41b5e, 0x0}, -+ {0x41b5f, 0x0}, -+ {0x41b60, 0x0}, -+ {0x41b61, 0x0}, -+ {0x41b62, 0x0}, -+ {0x41b63, 0x0}, -+ {0x41b64, 0x0}, -+ {0x41b65, 0x0}, -+ {0x41b66, 0x0}, -+ {0x41b67, 0x0}, -+ {0x41b68, 0x0}, -+ {0x41b69, 0x0}, -+ {0x41b6a, 0x0}, -+ {0x41b6b, 0x0}, -+ {0x41b6c, 0x0}, -+ {0x41b6d, 0x0}, -+ {0x41b6e, 0x0}, -+ {0x41b6f, 0x0}, -+ {0x41b70, 0x0}, -+ {0x41b71, 0x0}, -+ {0x41b72, 0x0}, -+ {0x41b73, 0x0}, -+ {0x41b74, 0x0}, -+ {0x41b75, 0x0}, -+ {0x41b76, 0x0}, -+ {0x41b77, 0x0}, -+ {0x41b78, 0x0}, -+ {0x41b79, 0x0}, -+ {0x41b7a, 0x0}, -+ {0x41b7b, 0x0}, -+ {0x41b7c, 0x0}, -+ {0x41b7d, 0x0}, -+ {0x41b7e, 0x0}, -+ {0x41b7f, 0x0}, -+ {0x41b80, 0x0}, -+ {0x41b81, 0x0}, -+ {0x41b82, 0x0}, -+ {0x41b83, 0x0}, -+ {0x41b84, 0x0}, -+ {0x41b85, 0x0}, -+ {0x41b86, 0x0}, -+ {0x41b87, 0x0}, -+ {0x41b88, 0x0}, -+ {0x41b89, 0x0}, -+ {0x41b8a, 0x0}, -+ {0x41b8b, 0x0}, -+ {0x41b8c, 0x0}, -+ {0x41b8d, 0x0}, -+ {0x41b8e, 0x0}, -+ {0x41b8f, 0x0}, -+ {0x41b90, 0x0}, -+ {0x41b91, 0x0}, -+ {0x41b92, 0x0}, -+ {0x41b93, 0x0}, -+ {0x41b94, 0x0}, -+ {0x41b95, 0x0}, -+ {0x41b96, 0x0}, -+ {0x41b97, 0x0}, -+ {0x41b98, 0x0}, -+ {0x41b99, 0x0}, -+ {0x41b9a, 0x0}, -+ {0x41b9b, 0x0}, -+ {0x41b9c, 0x0}, -+ {0x41b9d, 0x0}, -+ {0x41b9e, 0x0}, -+ {0x41b9f, 0x0}, -+ {0x41ba0, 0x0}, -+ {0x41ba1, 0x0}, -+ {0x41ba2, 0x0}, -+ {0x41ba3, 0x0}, -+ {0x41ba4, 0x0}, -+ {0x41ba5, 0x0}, -+ {0x41ba6, 0x0}, -+ {0x41ba7, 0x0}, -+ {0x41ba8, 0x0}, -+ {0x41ba9, 0x0}, -+ {0x41baa, 0x0}, -+ {0x41bab, 0x0}, -+ {0x41bac, 0x0}, -+ {0x41bad, 0x0}, -+ {0x41bae, 0x0}, -+ {0x41baf, 0x0}, -+ {0x41bb0, 0x0}, -+ {0x41bb1, 0x0}, -+ {0x41bb2, 0x0}, -+ {0x41bb3, 0x0}, -+ {0x41bb4, 0x0}, -+ {0x41bb5, 0x0}, -+ {0x41bb6, 0x0}, -+ {0x41bb7, 0x0}, -+ {0x41bb8, 0x0}, -+ {0x41bb9, 0x0}, -+ {0x41bba, 0x0}, -+ {0x41bbb, 0x0}, -+ {0x41bbc, 0x0}, -+ {0x41bbd, 0x0}, -+ {0x41bbe, 0x0}, -+ {0x41bbf, 0x0}, -+ {0x41bc0, 0x0}, -+ {0x41bc1, 0x0}, -+ {0x41bc2, 0x0}, -+ {0x41bc3, 0x0}, -+ {0x41bc4, 0x0}, -+ {0x41bc5, 0x0}, -+ {0x41bc6, 0x0}, -+ {0x41bc7, 0x0}, -+ {0x41bc8, 0x0}, -+ {0x41bc9, 0x0}, -+ {0x41bca, 0x0}, -+ {0x41bcb, 0x0}, -+ {0x41bcc, 0x0}, -+ {0x41bcd, 0x0}, -+ {0x41bce, 0x0}, -+ {0x41bcf, 0x0}, -+ {0x41bd0, 0x0}, -+ {0x41bd1, 0x0}, -+ {0x41bd2, 0x0}, -+ {0x41bd3, 0x0}, -+ {0x41bd4, 0x0}, -+ {0x41bd5, 0x0}, -+ {0x41bd6, 0x0}, -+ {0x41bd7, 0x0}, -+ {0x41bd8, 0x0}, -+ {0x41bd9, 0x0}, -+ {0x41bda, 0x0}, -+ {0x41bdb, 0x0}, -+ {0x41bdc, 0x0}, -+ {0x41bdd, 0x0}, -+ {0x41bde, 0x0}, -+ {0x41bdf, 0x0}, -+ {0x41be0, 0x0}, -+ {0x41be1, 0x0}, -+ {0x41be2, 0x0}, -+ {0x41be3, 0x0}, -+ {0x41be4, 0x0}, -+ {0x41be5, 0x0}, -+ {0x41be6, 0x0}, -+ {0x41be7, 0x0}, -+ {0x41be8, 0x0}, -+ {0x41be9, 0x0}, -+ {0x41bea, 0x0}, -+ {0x41beb, 0x0}, -+ {0x41bec, 0x0}, -+ {0x41bed, 0x0}, -+ {0x41bee, 0x0}, -+ {0x41bef, 0x0}, -+ {0x41bf0, 0x0}, -+ {0x41bf1, 0x0}, -+ {0x41bf2, 0x0}, -+ {0x41bf3, 0x0}, -+ {0x41bf4, 0x0}, -+ {0x41bf5, 0x0}, -+ {0x41bf6, 0x0}, -+ {0x41bf7, 0x0}, -+ {0x41bf8, 0x0}, -+ {0x41bf9, 0x0}, -+ {0x41bfa, 0x0}, -+ {0x41bfb, 0x0}, -+ {0x41bfc, 0x0}, -+ {0x41bfd, 0x0}, -+ {0x41bfe, 0x0}, -+ {0x41bff, 0x0}, -+ {0x41c00, 0x0}, -+ {0x41c01, 0x0}, -+ {0x41c02, 0x0}, -+ {0x41c03, 0x0}, -+ {0x41c04, 0x0}, -+ {0x41c05, 0x0}, -+ {0x41c06, 0x0}, -+ {0x41c07, 0x0}, -+ {0x41c08, 0x0}, -+ {0x41c09, 0x0}, -+ {0x41c0a, 0x0}, -+ {0x41c0b, 0x0}, -+ {0x41c0c, 0x0}, -+ {0x41c0d, 0x0}, -+ {0x41c0e, 0x0}, -+ {0x41c0f, 0x0}, -+ {0x41c10, 0x0}, -+ {0x41c11, 0x0}, -+ {0x41c12, 0x0}, -+ {0x41c13, 0x0}, -+ {0x41c14, 0x0}, -+ {0x41c15, 0x0}, -+ {0x41c16, 0x0}, -+ {0x41c17, 0x0}, -+ {0x41c18, 0x0}, -+ {0x41c19, 0x0}, -+ {0x41c1a, 0x0}, -+ {0x41c1b, 0x0}, -+ {0x41c1c, 0x0}, -+ {0x41c1d, 0x0}, -+ {0x41c1e, 0x0}, -+ {0x41c1f, 0x0}, -+ {0x41c20, 0x0}, -+ {0x41c21, 0x0}, -+ {0x41c22, 0x0}, -+ {0x41c23, 0x0}, -+ {0x41c24, 0x0}, -+ {0x41c25, 0x0}, -+ {0x41c26, 0x0}, -+ {0x41c27, 0x0}, -+ {0x41c28, 0x0}, -+ {0x41c29, 0x0}, -+ {0x41c2a, 0x0}, -+ {0x41c2b, 0x0}, -+ {0x41c2c, 0x0}, -+ {0x41c2d, 0x0}, -+ {0x41c2e, 0x0}, -+ {0x41c2f, 0x0}, -+ {0x41c30, 0x0}, -+ {0x41c31, 0x0}, -+ {0x41c32, 0x0}, -+ {0x41c33, 0x0}, -+ {0x41c34, 0x0}, -+ {0x41c35, 0x0}, -+ {0x41c36, 0x0}, -+ {0x41c37, 0x0}, -+ {0x41c38, 0x0}, -+ {0x41c39, 0x0}, -+ {0x41c3a, 0x0}, -+ {0x41c3b, 0x0}, -+ {0x41c3c, 0x0}, -+ {0x41c3d, 0x0}, -+ {0x41c3e, 0x0}, -+ {0x41c3f, 0x0}, -+ {0x41c40, 0x0}, -+ {0x41c41, 0x0}, -+ {0x41c42, 0x0}, -+ {0x41c43, 0x0}, -+ {0x41c44, 0x0}, -+ {0x41c45, 0x0}, -+ {0x41c46, 0x0}, -+ {0x41c47, 0x0}, -+ {0x41c48, 0x0}, -+ {0x41c49, 0x0}, -+ {0x41c4a, 0x0}, -+ {0x41c4b, 0x0}, -+ {0x41c4c, 0x0}, -+ {0x41c4d, 0x0}, -+ {0x41c4e, 0x0}, -+ {0x41c4f, 0x0}, -+ {0x41c50, 0x0}, -+ {0x41c51, 0x0}, -+ {0x41c52, 0x0}, -+ {0x41c53, 0x0}, -+ {0x41c54, 0x0}, -+ {0x41c55, 0x0}, -+ {0x41c56, 0x0}, -+ {0x41c57, 0x0}, -+ {0x9002e, 0x0}, -+ {0x9002f, 0x0}, -+ {0x90030, 0x0}, -+ {0x90031, 0x0}, -+ {0x90032, 0x0}, -+ {0x90033, 0x0}, -+ {0x90034, 0x0}, -+ {0x90035, 0x0}, -+ {0x90036, 0x0}, -+ {0x90037, 0x0}, -+ {0x90038, 0x0}, -+ {0x90039, 0x0}, -+ {0x9003a, 0x0}, -+ {0x9003b, 0x0}, -+ {0x9003c, 0x0}, -+ {0x9003d, 0x0}, -+ {0x9003e, 0x0}, -+ {0x9003f, 0x0}, -+ {0x90040, 0x0}, -+ {0x90041, 0x0}, -+ {0x90042, 0x0}, -+ {0x90043, 0x0}, -+ {0x90044, 0x0}, -+ {0x90045, 0x0}, -+ {0x90046, 0x0}, -+ {0x90047, 0x0}, -+ {0x90048, 0x0}, -+ {0x90049, 0x0}, -+ {0x9004a, 0x0}, -+ {0x9004b, 0x0}, -+ {0x9004c, 0x0}, -+ {0x9004d, 0x0}, -+ {0x9004e, 0x0}, -+ {0x9004f, 0x0}, -+ {0x90050, 0x0}, -+ {0x90051, 0x0}, -+ {0x90052, 0x0}, -+ {0x90053, 0x0}, -+ {0x90054, 0x0}, -+ {0x90055, 0x0}, -+ {0x90056, 0x0}, -+ {0x90057, 0x0}, -+ {0x90058, 0x0}, -+ {0x90059, 0x0}, -+ {0x9005a, 0x0}, -+ {0x9005b, 0x0}, -+ {0x9005c, 0x0}, -+ {0x9005d, 0x0}, -+ {0x9005e, 0x0}, -+ {0x9005f, 0x0}, -+ {0x90060, 0x0}, -+ {0x90061, 0x0}, -+ {0x90062, 0x0}, -+ {0x90063, 0x0}, -+ {0x90064, 0x0}, -+ {0x90065, 0x0}, -+ {0x90066, 0x0}, -+ {0x90067, 0x0}, -+ {0x90068, 0x0}, -+ {0x90069, 0x0}, -+ {0x9006a, 0x0}, -+ {0x9006b, 0x0}, -+ {0x9006c, 0x0}, -+ {0x9006d, 0x0}, -+ {0x9006e, 0x0}, -+ {0x9006f, 0x0}, -+ {0x90070, 0x0}, -+ {0x90071, 0x0}, -+ {0x90072, 0x0}, -+ {0x90073, 0x0}, -+ {0x90074, 0x0}, -+ {0x90075, 0x0}, -+ {0x90076, 0x0}, -+ {0x90077, 0x0}, -+ {0x90078, 0x0}, -+ {0x90079, 0x0}, -+ {0x9007a, 0x0}, -+ {0x9007b, 0x0}, -+ {0x9007c, 0x0}, -+ {0x9007d, 0x0}, -+ {0x9007e, 0x0}, -+ {0x9007f, 0x0}, -+ {0x90080, 0x0}, -+ {0x90081, 0x0}, -+ {0x90082, 0x0}, -+ {0x90083, 0x0}, -+ {0x90084, 0x0}, -+ {0x90085, 0x0}, -+ {0x90086, 0x0}, -+ {0x90087, 0x0}, -+ {0x90088, 0x0}, -+ {0x90089, 0x0}, -+ {0x9008a, 0x0}, -+ {0x9008b, 0x0}, -+ {0x9008c, 0x0}, -+ {0x9008d, 0x0}, -+ {0x9008e, 0x0}, -+ {0x9008f, 0x0}, -+ {0x90090, 0x0}, -+ {0x90091, 0x0}, -+ {0x90092, 0x0}, -+ {0x90093, 0x0}, -+ {0x90094, 0x0}, -+ {0x90095, 0x0}, -+ {0x90096, 0x0}, -+ {0x90097, 0x0}, -+ {0x90098, 0x0}, -+ {0x90099, 0x0}, -+ {0x9009a, 0x0}, -+ {0x9009b, 0x0}, -+ {0x9009c, 0x0}, -+ {0x9009d, 0x0}, -+ {0x9009e, 0x0}, -+ {0x9009f, 0x0}, -+ {0x900a0, 0x0}, -+ {0x900a1, 0x0}, -+ {0x900a2, 0x0}, -+ {0x900a3, 0x0}, -+ {0x900a4, 0x0}, -+ {0x900a5, 0x0}, -+ {0x900a6, 0x0}, -+ {0x900a7, 0x0}, -+ {0x900a8, 0x0}, -+ {0x900a9, 0x0}, -+ {0x900aa, 0x0}, -+ {0x900ab, 0x0}, -+ {0x900ac, 0x0}, -+ {0x900ad, 0x0}, -+ {0x900ae, 0x0}, -+ {0x900af, 0x0}, -+ {0x900b0, 0x0}, -+ {0x900b1, 0x0}, -+ {0x900b2, 0x0}, -+ {0x900b3, 0x0}, -+ {0x900b4, 0x0}, -+ {0x900b5, 0x0}, -+ {0x900b6, 0x0}, -+ {0x900b7, 0x0}, -+ {0x900b8, 0x0}, -+ {0x900b9, 0x0}, -+ {0x900ba, 0x0}, -+ {0x900bb, 0x0}, -+ {0x900bc, 0x0}, -+ {0x900bd, 0x0}, -+ {0x900be, 0x0}, -+ {0x900bf, 0x0}, -+ {0x900c0, 0x0}, -+ {0x900c1, 0x0}, -+ {0x900c2, 0x0}, -+ {0x900c3, 0x0}, -+ {0x900c4, 0x0}, -+ {0x900c5, 0x0}, -+ {0x900c6, 0x0}, -+ {0x900c7, 0x0}, -+ {0x900c8, 0x0}, -+ {0x900c9, 0x0}, -+ {0x900ca, 0x0}, -+ {0x900cb, 0x0}, -+ {0x900cc, 0x0}, -+ {0x900cd, 0x0}, -+ {0x900ce, 0x0}, -+ {0x900cf, 0x0}, -+ {0x900d0, 0x0}, -+ {0x900d1, 0x0}, -+ {0x900d2, 0x0}, -+ {0x900d3, 0x0}, -+ {0x900d4, 0x0}, -+ {0x900d5, 0x0}, -+ {0x900d6, 0x0}, -+ {0x900d7, 0x0}, -+ {0x900d8, 0x0}, -+ {0x900d9, 0x0}, -+ {0x900da, 0x0}, -+ {0x900db, 0x0}, -+ {0x900dc, 0x0}, -+ {0x900dd, 0x0}, -+ {0x900de, 0x0}, -+ {0x900df, 0x0}, -+ {0x900e0, 0x0}, -+ {0x900e1, 0x0}, -+ {0x900e2, 0x0}, -+ {0x900e3, 0x0}, -+ {0x900e4, 0x0}, -+ {0x900e5, 0x0}, -+ {0x900e6, 0x0}, -+ {0x900e7, 0x0}, -+ {0x900e8, 0x0}, -+ {0x900e9, 0x0}, -+ {0x900ea, 0x0}, -+ {0x900eb, 0x0}, -+ {0x900ec, 0x0}, -+ {0x900ed, 0x0}, -+ {0x900ee, 0x0}, -+ {0x900ef, 0x0}, -+ {0x900f0, 0x0}, -+ {0x900f1, 0x0}, -+ {0x900f2, 0x0}, -+ {0x900f3, 0x0}, -+ {0x900f4, 0x0}, -+ {0x900f5, 0x0}, -+ {0x900f6, 0x0}, -+ {0x900f7, 0x0}, -+ {0x900f8, 0x0}, -+ {0x900f9, 0x0}, -+ {0x900fa, 0x0}, -+ {0x900fb, 0x0}, -+ {0x900fc, 0x0}, -+ {0x900fd, 0x0}, -+ {0x900fe, 0x0}, -+ {0x900ff, 0x0}, -+ {0x90100, 0x0}, -+ {0x90101, 0x0}, -+ {0x90102, 0x0}, -+ {0x90103, 0x0}, -+ {0x90104, 0x0}, -+ {0x90105, 0x0}, -+ {0x90106, 0x0}, -+ {0x90107, 0x0}, -+ {0x90108, 0x0}, -+ {0x90109, 0x0}, -+ {0x9010a, 0x0}, -+ {0x9010b, 0x0}, -+ {0x9010c, 0x0}, -+ {0x9010d, 0x0}, -+ {0x9010e, 0x0}, -+ {0x9010f, 0x0}, -+ {0x90110, 0x0}, -+ {0x90111, 0x0}, -+ {0x90112, 0x0}, -+ {0x90113, 0x0}, -+ {0x90114, 0x0}, -+ {0x90115, 0x0}, -+ {0x90116, 0x0}, -+ {0x90117, 0x0}, -+ {0x90118, 0x0}, -+ {0x90119, 0x0}, -+ {0x9011a, 0x0}, -+ {0x9011b, 0x0}, -+ {0x9011c, 0x0}, -+ {0x9011d, 0x0}, -+ {0x9011e, 0x0}, -+ {0x9011f, 0x0}, -+ {0x90120, 0x0}, -+ {0x90121, 0x0}, -+ {0x90122, 0x0}, -+ {0x90123, 0x0}, -+ {0x90124, 0x0}, -+ {0x90125, 0x0}, -+ {0x90126, 0x0}, -+ {0x90127, 0x0}, -+ {0x90128, 0x0}, -+ {0x90129, 0x0}, -+ {0x9012a, 0x0}, -+ {0x9012b, 0x0}, -+ {0x9012c, 0x0}, -+ {0x9012d, 0x0}, -+ {0x9012e, 0x0}, -+ {0x9012f, 0x0}, -+ {0x90130, 0x0}, -+ {0x90131, 0x0}, -+ {0x90132, 0x0}, -+ {0x90133, 0x0}, -+ {0x90134, 0x0}, -+ {0x90135, 0x0}, -+ {0x90136, 0x0}, -+ {0x90137, 0x0}, -+ {0x90138, 0x0}, -+ {0x90139, 0x0}, -+ {0x9013a, 0x0}, -+ {0x9013b, 0x0}, -+ {0x9013c, 0x0}, -+ {0x9013d, 0x0}, -+ {0x9013e, 0x0}, -+ {0x9013f, 0x0}, -+ {0x90140, 0x0}, -+ {0x90141, 0x0}, -+ {0x90142, 0x0}, -+ {0x90143, 0x0}, -+ {0x90144, 0x0}, -+ {0x90145, 0x0}, -+ {0x90146, 0x0}, -+ {0x90147, 0x0}, -+ {0x90148, 0x0}, -+ {0x90149, 0x0}, -+ {0x9014a, 0x0}, -+ {0x9014b, 0x0}, -+ {0x9014c, 0x0}, -+ {0x9014d, 0x0}, -+ {0x9014e, 0x0}, -+ {0x9014f, 0x0}, -+ {0x90150, 0x0}, -+ {0x90151, 0x0}, -+ {0x90152, 0x0}, -+ {0x90153, 0x0}, -+ {0x90154, 0x0}, -+ {0x90155, 0x0}, -+ {0x90156, 0x0}, -+ {0x90157, 0x0}, -+ {0x90158, 0x0}, -+ {0x90159, 0x0}, -+ {0x9015a, 0x0}, -+ {0x9015b, 0x0}, -+ {0x9015c, 0x0}, -+ {0x9015d, 0x0}, -+ {0x9015e, 0x0}, -+ {0x9015f, 0x0}, -+ {0x90160, 0x0}, -+ {0x90161, 0x0}, -+ {0x90162, 0x0}, -+ {0x90163, 0x0}, -+ {0x90164, 0x0}, -+ {0x90165, 0x0}, -+ {0x90166, 0x0}, -+ {0x90167, 0x0}, -+ {0x90168, 0x0}, -+ {0x90169, 0x0}, -+ {0x9016a, 0x0}, -+ {0x9016b, 0x0}, -+ {0x9016c, 0x0}, -+ {0x9016d, 0x0}, -+ {0x9016e, 0x0}, -+ {0x9016f, 0x0}, -+ {0x90170, 0x0}, -+ {0x90171, 0x0}, -+ {0x90172, 0x0}, -+ {0x90173, 0x0}, -+ {0x90174, 0x0}, -+ {0x90175, 0x0}, -+ {0x90176, 0x0}, -+ {0x90177, 0x0}, -+ {0x90178, 0x0}, -+ {0x90179, 0x0}, -+ {0x9017a, 0x0}, -+ {0x9017b, 0x0}, -+ {0x9017c, 0x0}, -+ {0x9017d, 0x0}, -+ {0x9017e, 0x0}, -+ {0x9017f, 0x0}, -+ {0x90180, 0x0}, -+ {0x90181, 0x0}, -+ {0x90182, 0x0}, -+ {0x90183, 0x0}, -+ {0x90184, 0x0}, -+ {0x90185, 0x0}, -+ {0x90186, 0x0}, -+ {0x90187, 0x0}, -+ {0x90188, 0x0}, -+ {0x90189, 0x0}, -+ {0x9018a, 0x0}, -+ {0x9018b, 0x0}, -+ {0x9018c, 0x0}, -+ {0x9018d, 0x0}, -+ {0x9018e, 0x0}, -+ {0x9018f, 0x0}, -+ {0x90190, 0x0}, -+ {0x90191, 0x0}, -+ {0x90192, 0x0}, -+ {0x90193, 0x0}, -+ {0x90194, 0x0}, -+ {0x90195, 0x0}, -+ {0x90196, 0x0}, -+ {0x90197, 0x0}, -+ {0x90198, 0x0}, -+ {0x90199, 0x0}, -+ {0x9019a, 0x0}, -+ {0x9019b, 0x0}, -+ {0x9019c, 0x0}, -+ {0x9019d, 0x0}, -+ {0x9019e, 0x0}, -+ {0x9019f, 0x0}, -+ {0x901a0, 0x0}, -+ {0x901a1, 0x0}, -+ {0x901a2, 0x0}, -+ {0x901a3, 0x0}, -+ {0x901a4, 0x0}, -+ {0x901a5, 0x0}, -+ {0x901a6, 0x0}, -+ {0x901a7, 0x0}, -+ {0x901a8, 0x0}, -+ {0x901a9, 0x0}, -+ {0x901aa, 0x0}, -+ {0x901ab, 0x0}, -+ {0x901ac, 0x0}, -+ {0x901ad, 0x0}, -+ {0x901ae, 0x0}, -+ {0x901af, 0x0}, -+ {0x901b0, 0x0}, -+ {0x901b1, 0x0}, -+ {0x901b2, 0x0}, -+ {0x901b3, 0x0}, -+ {0x901b4, 0x0}, -+ {0x901b5, 0x0}, -+ {0x901b6, 0x0}, -+ {0x901b7, 0x0}, -+ {0x901b8, 0x0}, -+ {0x901b9, 0x0}, -+ {0x901ba, 0x0}, -+ {0x901bb, 0x0}, -+ {0x901bc, 0x0}, -+ {0x901bd, 0x0}, -+ {0x901be, 0x0}, -+ {0x901bf, 0x0}, -+ {0x901c0, 0x0}, -+ {0x901c1, 0x0}, -+ {0x901c2, 0x0}, -+ {0x901c3, 0x0}, -+ {0x901c4, 0x0}, -+ {0x901c5, 0x0}, -+ {0x901c6, 0x0}, -+ {0x901c7, 0x0}, -+ {0x901c8, 0x0}, -+ {0x901c9, 0x0}, -+ {0x901ca, 0x0}, -+ {0x901cb, 0x0}, -+ {0x901cc, 0x0}, -+ {0x901cd, 0x0}, -+ {0x901ce, 0x0}, -+ {0x901cf, 0x0}, -+ {0x901d0, 0x0}, -+ {0x901d1, 0x0}, -+ {0x901d2, 0x0}, -+ {0x901d3, 0x0}, -+ {0x901d4, 0x0}, -+ {0x901d5, 0x0}, -+ {0x901d6, 0x0}, -+ {0x901d7, 0x0}, -+ {0x901d8, 0x0}, -+ {0x901d9, 0x0}, -+ {0x901da, 0x0}, -+ {0x901db, 0x0}, -+ {0x901dc, 0x0}, -+ {0x901dd, 0x0}, -+ {0x901de, 0x0}, -+ {0x901df, 0x0}, -+ {0x901e0, 0x0}, -+ {0x901e1, 0x0}, -+ {0x901e2, 0x0}, -+ {0x901e3, 0x0}, -+ {0x901e4, 0x0}, -+ {0x901e5, 0x0}, -+ {0x901e6, 0x0}, -+ {0x901e7, 0x0}, -+ {0x901e8, 0x0}, -+ {0x901e9, 0x0}, -+ {0x901ea, 0x0}, -+ {0x901eb, 0x0}, -+ {0x901ec, 0x0}, -+ {0x901ed, 0x0}, -+ {0x901ee, 0x0}, -+ {0x901ef, 0x0}, -+ {0x901f0, 0x0}, -+ {0x901f1, 0x0}, -+ {0x901f2, 0x0}, -+ {0x901f3, 0x0}, -+ {0x901f4, 0x0}, -+ {0x901f5, 0x0}, -+ {0x901f6, 0x0}, -+ {0x901f7, 0x0}, -+ {0x901f8, 0x0}, -+ {0x901f9, 0x0}, -+ {0x901fa, 0x0}, -+ {0x901fb, 0x0}, -+ {0x901fc, 0x0}, -+ {0x901fd, 0x0}, -+ {0x901fe, 0x0}, -+ {0x901ff, 0x0}, -+ {0x90200, 0x0}, -+ {0x90201, 0x0}, -+ {0x90202, 0x0}, -+ {0x90203, 0x0}, -+ {0x90204, 0x0}, -+ {0x90205, 0x0}, -+ {0x90206, 0x0}, -+ {0x90207, 0x0}, -+ {0x90208, 0x0}, -+ {0x90209, 0x0}, -+ {0x9020a, 0x0}, -+ {0x9020b, 0x0}, -+ {0x9020c, 0x0}, -+ {0x9020d, 0x0}, -+ {0x9020e, 0x0}, -+ {0x9020f, 0x0}, -+ {0x90210, 0x0}, -+ {0x90211, 0x0}, -+ {0x90212, 0x0}, -+ {0x90213, 0x0}, -+ {0x90214, 0x0}, -+ {0x90215, 0x0}, -+ {0x90216, 0x0}, -+ {0x90217, 0x0}, -+ {0x90218, 0x0}, -+ {0x90219, 0x0}, -+ {0x9021a, 0x0}, -+ {0x9021b, 0x0}, -+ {0x9021c, 0x0}, -+ {0x9021d, 0x0}, -+ {0x9021e, 0x0}, -+ {0x9021f, 0x0}, -+ {0x90220, 0x0}, -+ {0x90221, 0x0}, -+ {0x90222, 0x0}, -+ {0x90223, 0x0}, -+ {0x90224, 0x0}, -+ {0x90225, 0x0}, -+ {0x90226, 0x0}, -+ {0x90227, 0x0}, -+ {0x90228, 0x0}, -+ {0x90229, 0x0}, -+ {0x9022a, 0x0}, -+ {0x9022b, 0x0}, -+ {0x9022c, 0x0}, -+ {0x9022d, 0x0}, -+ {0x9022e, 0x0}, -+ {0x9022f, 0x0}, -+ {0x90230, 0x0}, -+ {0x90231, 0x0}, -+ {0x90232, 0x0}, -+ {0x90233, 0x0}, -+ {0x90234, 0x0}, -+ {0x90235, 0x0}, -+ {0x90236, 0x0}, -+ {0x90237, 0x0}, -+ {0x90238, 0x0}, -+ {0x90239, 0x0}, -+ {0x9023a, 0x0}, -+ {0x9023b, 0x0}, -+ {0x9023c, 0x0}, -+ {0x9023d, 0x0}, -+ {0x9023e, 0x0}, -+ {0x9023f, 0x0}, -+ {0x90240, 0x0}, -+ {0x90241, 0x0}, -+ {0x90242, 0x0}, -+ {0x90243, 0x0}, -+ {0x90244, 0x0}, -+ {0x90245, 0x0}, -+ {0x90246, 0x0}, -+ {0x90247, 0x0}, -+ {0x90248, 0x0}, -+ {0x90249, 0x0}, -+ {0x9024a, 0x0}, -+ {0x9024b, 0x0}, -+ {0x9024c, 0x0}, -+ {0x9024d, 0x0}, -+ {0x9024e, 0x0}, -+ {0x9024f, 0x0}, -+ {0x90250, 0x0}, -+ {0x90251, 0x0}, -+ {0x90252, 0x0}, -+ {0x90253, 0x0}, -+ {0x90254, 0x0}, -+ {0x90255, 0x0}, -+ {0x90256, 0x0}, -+ {0x90257, 0x0}, -+ {0x90258, 0x0}, -+ {0x90259, 0x0}, -+ {0x9025a, 0x0}, -+ {0x9025b, 0x0}, -+ {0x9025c, 0x0}, -+ {0x9025d, 0x0}, -+ {0x9025e, 0x0}, -+ {0x9025f, 0x0}, -+ {0x90260, 0x0}, -+ {0x90261, 0x0}, -+ {0x90262, 0x0}, -+ {0x90263, 0x0}, -+ {0x90264, 0x0}, -+ {0x90265, 0x0}, -+ {0x90266, 0x0}, -+ {0x90267, 0x0}, -+ {0x90268, 0x0}, -+ {0x90269, 0x0}, -+ {0x9026a, 0x0}, -+ {0x9026b, 0x0}, -+ {0x9026c, 0x0}, -+ {0x9026d, 0x0}, -+ {0x9026e, 0x0}, -+ {0x9026f, 0x0}, -+ {0x90270, 0x0}, -+ {0x90271, 0x0}, -+ {0x90272, 0x0}, -+ {0x90273, 0x0}, -+ {0x90274, 0x0}, -+ {0x90275, 0x0}, -+ {0x90276, 0x0}, -+ {0x90277, 0x0}, -+ {0x90278, 0x0}, -+ {0x90279, 0x0}, -+ {0x9027a, 0x0}, -+ {0x9027b, 0x0}, -+ {0x9027c, 0x0}, -+ {0x9027d, 0x0}, -+ {0x9027e, 0x0}, -+ {0x9027f, 0x0}, -+ {0x90280, 0x0}, -+ {0x90281, 0x0}, -+ {0x90282, 0x0}, -+ {0x90283, 0x0}, -+ {0x90284, 0x0}, -+ {0x90285, 0x0}, -+ {0x90286, 0x0}, -+ {0x90287, 0x0}, -+ {0x90288, 0x0}, -+ {0x90289, 0x0}, -+ {0x9028a, 0x0}, -+ {0x9028b, 0x0}, -+ {0x9028c, 0x0}, -+ {0x9028d, 0x0}, -+ {0x9028e, 0x0}, -+ {0x9028f, 0x0}, -+ {0x90290, 0x0}, -+ {0x90291, 0x0}, -+ {0x90292, 0x0}, -+ {0x90293, 0x0}, -+ {0x90294, 0x0}, -+ {0x90295, 0x0}, -+ {0x90296, 0x0}, -+ {0x90297, 0x0}, -+ {0x90298, 0x0}, -+ {0x90299, 0x0}, -+ {0x9029a, 0x0}, -+ {0x9029b, 0x0}, -+ {0x9029c, 0x0}, -+ {0x9029d, 0x0}, -+ {0x9029e, 0x0}, -+ {0x9029f, 0x0}, -+ {0x902a0, 0x0}, -+ {0x902a1, 0x0}, -+ {0x902a2, 0x0}, -+ {0x902a3, 0x0}, -+ {0x902a4, 0x0}, -+ {0x902a5, 0x0}, -+ {0x902a6, 0x0}, -+ {0x902a7, 0x0}, -+ {0x902a8, 0x0}, -+ {0x902a9, 0x0}, -+ {0x902aa, 0x0}, -+ {0x902ab, 0x0}, -+ {0x902ac, 0x0}, -+ {0x902ad, 0x0}, -+ {0x902ae, 0x0}, -+ {0x902af, 0x0}, -+ {0x902b0, 0x0}, -+ {0x902b1, 0x0}, -+ {0x902b2, 0x0}, -+ {0x902b3, 0x0}, -+ {0x902b4, 0x0}, -+ {0x902b5, 0x0}, -+ {0x902b6, 0x0}, -+ {0x902b7, 0x0}, -+ {0x902b8, 0x0}, -+ {0x902b9, 0x0}, -+ {0x902ba, 0x0}, -+ {0x902bb, 0x0}, -+ {0x902bc, 0x0}, -+ {0x902bd, 0x0}, -+ {0x902be, 0x0}, -+ {0x902bf, 0x0}, -+ {0x902c0, 0x0}, -+ {0x902c1, 0x0}, -+ {0x902c2, 0x0}, -+ {0x902c3, 0x0}, -+ {0x902c4, 0x0}, -+ {0x902c5, 0x0}, -+ {0x902c6, 0x0}, -+ {0x902c7, 0x0}, -+ {0x902c8, 0x0}, -+ {0x902c9, 0x0}, -+ {0x902ca, 0x0}, -+ {0x902cb, 0x0}, -+ {0x902cc, 0x0}, -+ {0x902cd, 0x0}, -+ {0x902ce, 0x0}, -+ {0x902cf, 0x0}, -+ {0x902d0, 0x0}, -+ {0x902d1, 0x0}, -+ {0x902d2, 0x0}, -+ {0x902d3, 0x0}, -+ {0x902d4, 0x0}, -+ {0x902d5, 0x0}, -+ {0x902d6, 0x0}, -+ {0x902d7, 0x0}, -+ {0x902d8, 0x0}, -+ {0x902d9, 0x0}, -+ {0x902da, 0x0}, -+ {0x902db, 0x0}, -+ {0x902dc, 0x0}, -+ {0x902dd, 0x0}, -+ {0x902de, 0x0}, -+ {0x902df, 0x0}, -+ {0x902e0, 0x0}, -+ {0x902e1, 0x0}, -+ {0x902e2, 0x0}, -+ {0x902e3, 0x0}, -+ {0x902e4, 0x0}, -+ {0x902e5, 0x0}, -+ {0x902e6, 0x0}, -+ {0x902e7, 0x0}, -+ {0x902e8, 0x0}, -+ {0x902e9, 0x0}, -+ {0x902ea, 0x0}, -+ {0x902eb, 0x0}, -+ {0x902ec, 0x0}, -+ {0x902ed, 0x0}, -+ {0x902ee, 0x0}, -+ {0x902ef, 0x0}, -+ {0x902f0, 0x0}, -+ {0x902f1, 0x0}, -+ {0x902f2, 0x0}, -+ {0x902f3, 0x0}, -+ {0x902f4, 0x0}, -+ {0x902f5, 0x0}, -+ {0x902f6, 0x0}, -+ {0x902f7, 0x0}, -+ {0x902f8, 0x0}, -+ {0x902f9, 0x0}, -+ {0x902fa, 0x0}, -+ {0x902fb, 0x0}, -+ {0x902fc, 0x0}, -+ {0x902fd, 0x0}, -+ {0x902fe, 0x0}, -+ {0x902ff, 0x0}, -+ {0x90300, 0x0}, -+ {0x90301, 0x0}, -+ {0x90302, 0x0}, -+ {0x90303, 0x0}, -+ {0x90304, 0x0}, -+ {0x90305, 0x0}, -+ {0x90306, 0x0}, -+ {0x90307, 0x0}, -+ {0x90308, 0x0}, -+ {0x90309, 0x0}, -+ {0x9030a, 0x0}, -+ {0x9030b, 0x0}, -+ {0x9030c, 0x0}, -+ {0x9030d, 0x0}, -+ {0x9030e, 0x0}, -+ {0x9030f, 0x0}, -+ {0x90310, 0x0}, -+ {0x90311, 0x0}, -+ {0x90312, 0x0}, -+ {0x90313, 0x0}, -+ {0x90314, 0x0}, -+ {0x90315, 0x0}, -+ {0x90316, 0x0}, -+ {0x90317, 0x0}, -+ {0x90318, 0x0}, -+ {0x90319, 0x0}, -+ {0x9031a, 0x0}, -+ {0x9031b, 0x0}, -+ {0x9031c, 0x0}, -+ {0x9031d, 0x0}, -+ {0x9031e, 0x0}, -+ {0x9031f, 0x0}, -+ {0x90320, 0x0}, -+ {0x90321, 0x0}, -+ {0x90322, 0x0}, -+ {0x90323, 0x0}, -+ {0x90324, 0x0}, -+ {0x90325, 0x0}, -+ {0x90326, 0x0}, -+ {0x90327, 0x0}, -+ {0x90328, 0x0}, -+ {0x90329, 0x0}, -+ {0x9032a, 0x0}, -+ {0x9032b, 0x0}, -+ {0x9032c, 0x0}, -+ {0x9032d, 0x0}, -+ {0x9032e, 0x0}, -+ {0x9032f, 0x0}, -+ {0x90330, 0x0}, -+ {0x90331, 0x0}, -+ {0x90332, 0x0}, -+ {0x90333, 0x0}, -+ {0x90334, 0x0}, -+ {0x90335, 0x0}, -+ {0x90336, 0x0}, -+ {0x90337, 0x0}, -+ {0x90338, 0x0}, -+ {0x90339, 0x0}, -+ {0x9033a, 0x0}, -+ {0x9033b, 0x0}, -+ {0x9033c, 0x0}, -+ {0x9033d, 0x0}, -+ {0x9033e, 0x0}, -+ {0x9033f, 0x0}, -+ {0x90340, 0x0}, -+ {0x90341, 0x0}, -+ {0x90342, 0x0}, -+ {0x90343, 0x0}, -+ {0x90344, 0x0}, -+ {0x90345, 0x0}, -+ {0x90346, 0x0}, -+ {0x90347, 0x0}, -+ {0x90348, 0x0}, -+ {0x90349, 0x0}, -+ {0x9034a, 0x0}, -+ {0x9034b, 0x0}, -+ {0x9034c, 0x0}, -+ {0x9034d, 0x0}, -+ {0x9034e, 0x0}, -+ {0x9034f, 0x0}, -+ {0x90350, 0x0}, -+ {0x90351, 0x0}, -+ {0x90352, 0x0}, -+ {0x90353, 0x0}, -+ {0x90354, 0x0}, -+ {0x90355, 0x0}, -+ {0x90356, 0x0}, -+ {0x90357, 0x0}, -+ {0x90358, 0x0}, -+ {0x90359, 0x0}, -+ {0x9035a, 0x0}, -+ {0x9035b, 0x0}, -+ {0x9035c, 0x0}, -+ {0x9035d, 0x0}, -+ {0x9035e, 0x0}, -+ {0x9035f, 0x0}, -+ {0x90360, 0x0}, -+ {0x90361, 0x0}, -+ {0x90362, 0x0}, -+ {0x90363, 0x0}, -+ {0x90364, 0x0}, -+ {0x90365, 0x0}, -+ {0x90366, 0x0}, -+ {0x90367, 0x0}, -+ {0x90368, 0x0}, -+ {0x90369, 0x0}, -+ {0x9036a, 0x0}, -+ {0x9036b, 0x0}, -+ {0x9036c, 0x0}, -+ {0x9036d, 0x0}, -+ {0x9036e, 0x0}, -+ {0x9036f, 0x0}, -+ {0x90370, 0x0}, -+ {0x90371, 0x0}, -+ {0x90372, 0x0}, -+ {0x90373, 0x0}, -+ {0x90374, 0x0}, -+ {0x90375, 0x0}, -+ {0x90376, 0x0}, -+ {0x90377, 0x0}, -+ {0x90378, 0x0}, -+ {0x90379, 0x0}, -+ {0x9037a, 0x0}, -+ {0x9037b, 0x0}, -+ {0x9037c, 0x0}, -+ {0x9037d, 0x0}, -+ {0x9037e, 0x0}, -+ {0x9037f, 0x0}, -+ {0x90380, 0x0}, -+ {0x90381, 0x0}, -+ {0x90382, 0x0}, -+ {0x90383, 0x0}, -+ {0x90384, 0x0}, -+ {0x90385, 0x0}, -+ {0x90386, 0x0}, -+ {0x90387, 0x0}, -+ {0x90388, 0x0}, -+ {0x90389, 0x0}, -+ {0x9038a, 0x0}, -+ {0x9038b, 0x0}, -+ {0x9038c, 0x0}, -+ {0x9038d, 0x0}, -+ {0x9038e, 0x0}, -+ {0x9038f, 0x0}, -+ {0x90390, 0x0}, -+ {0x90391, 0x0}, -+ {0x90392, 0x0}, -+ {0x90393, 0x0}, -+ {0x90394, 0x0}, -+ {0x90395, 0x0}, -+ {0x90396, 0x0}, -+ {0x90397, 0x0}, -+ {0x90398, 0x0}, -+ {0x90399, 0x0}, -+ {0x9039a, 0x0}, -+ {0x9039b, 0x0}, -+ {0x9039c, 0x0}, -+ {0x9039d, 0x0}, -+ {0x9039e, 0x0}, -+ {0x9039f, 0x0}, -+ {0x903a0, 0x0}, -+ {0x903a1, 0x0}, -+ {0x903a2, 0x0}, -+ {0x903a3, 0x0}, -+ {0x903a4, 0x0}, -+ {0x903a5, 0x0}, -+ {0x903a6, 0x0}, -+ {0x903a7, 0x0}, -+ {0x903a8, 0x0}, -+ {0x903a9, 0x0}, -+ {0x903aa, 0x0}, -+ {0x903ab, 0x0}, -+ {0x903ac, 0x0}, -+ {0x903ad, 0x0}, -+ {0x903ae, 0x0}, -+ {0x903af, 0x0}, -+ {0x903b0, 0x0}, -+ {0x903b1, 0x0}, -+ {0x903b2, 0x0}, -+ {0x903b3, 0x0}, -+ {0x903b4, 0x0}, -+ {0x903b5, 0x0}, -+ {0x903b6, 0x0}, -+ {0x903b7, 0x0}, -+ {0x903b8, 0x0}, -+ {0x903b9, 0x0}, -+ {0x903ba, 0x0}, -+ {0x903bb, 0x0}, -+ {0x903bc, 0x0}, -+ {0x903bd, 0x0}, -+ {0x903be, 0x0}, -+ {0x903bf, 0x0}, -+ {0x903c0, 0x0}, -+ {0x903c1, 0x0}, -+ {0x903c2, 0x0}, -+ {0x903c3, 0x0}, -+ {0x903c4, 0x0}, -+ {0x903c5, 0x0}, -+ {0x903c6, 0x0}, -+ {0x903c7, 0x0}, -+ {0x903c8, 0x0}, -+ {0x903c9, 0x0}, -+ {0x903ca, 0x0}, -+ {0x903cb, 0x0}, -+ {0x903cc, 0x0}, -+ {0x903cd, 0x0}, -+ {0x903ce, 0x0}, -+ {0x903cf, 0x0}, -+ {0x903d0, 0x0}, -+ {0x903d1, 0x0}, -+ {0x903d2, 0x0}, -+ {0x903d3, 0x0}, -+ {0x903d4, 0x0}, -+ {0x903d5, 0x0}, -+ {0x903d6, 0x0}, -+ {0x903d7, 0x0}, -+ {0x903d8, 0x0}, -+ {0x903d9, 0x0}, -+ {0x903da, 0x0}, -+ {0x903db, 0x0}, -+ {0x903dc, 0x0}, -+ {0x903dd, 0x0}, -+ {0x903de, 0x0}, -+ {0x903df, 0x0}, -+ {0x903e0, 0x0}, -+ {0x903e1, 0x0}, -+ {0x903e2, 0x0}, -+ {0x903e3, 0x0}, -+ {0x903e4, 0x0}, -+ {0x903e5, 0x0}, -+ {0x903e6, 0x0}, -+ {0x903e7, 0x0}, -+ {0x903e8, 0x0}, -+ {0x903e9, 0x0}, -+ {0x903ea, 0x0}, -+ {0x903eb, 0x0}, -+ {0x903ec, 0x0}, -+ {0x903ed, 0x0}, -+ {0x903ee, 0x0}, -+ {0x903ef, 0x0}, -+ {0x903f0, 0x0}, -+ {0x903f1, 0x0}, -+ {0x903f2, 0x0}, -+ {0x903f3, 0x0}, -+ {0x903f4, 0x0}, -+ {0x903f5, 0x0}, -+ {0x903f6, 0x0}, -+ {0x903f7, 0x0}, -+ {0x903f8, 0x0}, -+ {0x903f9, 0x0}, -+ {0x903fa, 0x0}, -+ {0x903fb, 0x0}, -+ {0x903fc, 0x0}, -+ {0x903fd, 0x0}, -+ {0x903fe, 0x0}, -+ {0x903ff, 0x0}, -+ {0x90400, 0x0}, -+ {0x90401, 0x0}, -+ {0x90402, 0x0}, -+ {0x90403, 0x0}, -+ {0x90404, 0x0}, -+ {0x90405, 0x0}, -+ {0x90406, 0x0}, -+ {0x90407, 0x0}, -+ {0x90408, 0x0}, -+ {0x90409, 0x0}, -+ {0x9040a, 0x0}, -+ {0x9040b, 0x0}, -+ {0x9040c, 0x0}, -+ {0x9040d, 0x0}, -+ {0x9040e, 0x0}, -+ {0x9040f, 0x0}, -+ {0x90410, 0x0}, -+ {0x90411, 0x0}, -+ {0x90412, 0x0}, -+ {0x90413, 0x0}, -+ {0x90414, 0x0}, -+ {0x90415, 0x0}, -+ {0x90416, 0x0}, -+ {0x90417, 0x0}, -+ {0x90418, 0x0}, -+ {0x90419, 0x0}, -+ {0x9041a, 0x0}, -+ {0x9041b, 0x0}, -+ {0x9041c, 0x0}, -+ {0x9041d, 0x0}, -+ {0x9041e, 0x0}, -+ {0x9041f, 0x0}, -+ {0x90420, 0x0}, -+ {0x90421, 0x0}, -+ {0x90422, 0x0}, -+ {0x90423, 0x0}, -+ {0x90424, 0x0}, -+ {0x90425, 0x0}, -+ {0x90426, 0x0}, -+ {0x90427, 0x0}, -+ {0x90428, 0x0}, -+ {0x90429, 0x0}, -+ {0x9042a, 0x0}, -+ {0x9042b, 0x0}, -+ {0x9042c, 0x0}, -+ {0x9042d, 0x0}, -+ {0x9042e, 0x0}, -+ {0x9042f, 0x0}, -+ {0x90430, 0x0}, -+ {0x90431, 0x0}, -+ {0x90432, 0x0}, -+ {0x90433, 0x0}, -+ {0x90434, 0x0}, -+ {0x90435, 0x0}, -+ {0x90436, 0x0}, -+ {0x90437, 0x0}, -+ {0x90438, 0x0}, -+ {0x90439, 0x0}, -+ {0x9043a, 0x0}, -+ {0x9043b, 0x0}, -+ {0x9043c, 0x0}, -+ {0x9043d, 0x0}, -+ {0x9043e, 0x0}, -+ {0x9043f, 0x0}, -+ {0x90440, 0x0}, -+ {0x90441, 0x0}, -+ {0x90442, 0x0}, -+ {0x90443, 0x0}, -+ {0x90444, 0x0}, -+ {0x90445, 0x0}, -+ {0x90446, 0x0}, -+ {0x90447, 0x0}, -+ {0x90448, 0x0}, -+ {0x90449, 0x0}, -+ {0x9044a, 0x0}, -+ {0x9044b, 0x0}, -+ {0x9044c, 0x0}, -+ {0x9044d, 0x0}, -+ {0x9044e, 0x0}, -+ {0x9044f, 0x0}, -+ {0x90450, 0x0}, -+ {0x90451, 0x0}, -+ {0x90452, 0x0}, -+ {0x90453, 0x0}, -+ {0x90454, 0x0}, -+ {0x90455, 0x0}, -+ {0x90456, 0x0}, -+ {0x90457, 0x0}, -+ {0x90458, 0x0}, -+ {0x90459, 0x0}, -+ {0x9045a, 0x0}, -+ {0x9045b, 0x0}, -+ {0x9045c, 0x0}, -+ {0x9045d, 0x0}, -+ {0x9045e, 0x0}, -+ {0x9045f, 0x0}, -+ {0x90460, 0x0}, -+ {0x90461, 0x0}, -+ {0x90462, 0x0}, -+ {0x90463, 0x0}, -+ {0x90464, 0x0}, -+ {0x90465, 0x0}, -+ {0x90466, 0x0}, -+ {0x90467, 0x0}, -+ {0x90468, 0x0}, -+ {0x90469, 0x0}, -+ {0x9046a, 0x0}, -+ {0x9046b, 0x0}, -+ {0x9046c, 0x0}, -+ {0x9046d, 0x0}, -+ {0x9046e, 0x0}, -+ {0x9046f, 0x0}, -+ {0x90470, 0x0}, -+ {0x90471, 0x0}, -+ {0x90472, 0x0}, -+ {0x90473, 0x0}, -+ {0x90474, 0x0}, -+ {0x90475, 0x0}, -+ {0x90476, 0x0}, -+ {0x90477, 0x0}, -+ {0x90478, 0x0}, -+ {0x90479, 0x0}, -+ {0x9047a, 0x0}, -+ {0x9047b, 0x0}, -+ {0x9047c, 0x0}, -+ {0x9047d, 0x0}, -+ {0x9047e, 0x0}, -+ {0x9047f, 0x0}, -+ {0x90480, 0x0}, -+ {0x90481, 0x0}, -+ {0x90482, 0x0}, -+ {0x90483, 0x0}, -+ {0x90484, 0x0}, -+ {0x90485, 0x0}, -+ {0x90486, 0x0}, -+ {0x90487, 0x0}, -+ {0x90488, 0x0}, -+ {0x90489, 0x0}, -+ {0x9048a, 0x0}, -+ {0x9048b, 0x0}, -+ {0x9048c, 0x0}, -+ {0x9048d, 0x0}, -+ {0x9048e, 0x0}, -+ {0x9048f, 0x0}, -+ {0x90490, 0x0}, -+ {0x90491, 0x0}, -+ {0x90492, 0x0}, -+ {0x90493, 0x0}, -+ {0x90494, 0x0}, -+ {0x90495, 0x0}, -+ {0x90496, 0x0}, -+ {0x90497, 0x0}, -+ {0x90498, 0x0}, -+ {0x90499, 0x0}, -+ {0x9049a, 0x0}, -+ {0x9049b, 0x0}, -+ {0x9049c, 0x0}, -+ {0x9049d, 0x0}, -+ {0x9049e, 0x0}, -+ {0x9049f, 0x0}, -+ {0x904a0, 0x0}, -+ {0x904a1, 0x0}, -+ {0x904a2, 0x0}, -+ {0x904a3, 0x0}, -+ {0x904a4, 0x0}, -+ {0x904a5, 0x0}, -+ {0x904a6, 0x0}, -+ {0x904a7, 0x0}, -+ {0x904a8, 0x0}, -+ {0x904a9, 0x0}, -+ {0x904aa, 0x0}, -+ {0x904ab, 0x0}, -+ {0x904ac, 0x0}, -+ {0x904ad, 0x0}, -+ {0x904ae, 0x0}, -+ {0x904af, 0x0}, -+ {0x904b0, 0x0}, -+ {0x904b1, 0x0}, -+ {0x904b2, 0x0}, -+ {0x904b3, 0x0}, -+ {0x904b4, 0x0}, -+ {0x904b5, 0x0}, -+ {0x904b6, 0x0}, -+ {0x904b7, 0x0}, -+ {0x904b8, 0x0}, -+ {0x904b9, 0x0}, -+ {0x904ba, 0x0}, -+ {0x904bb, 0x0}, -+ {0x904bc, 0x0}, -+ {0x904bd, 0x0}, -+ {0x904be, 0x0}, -+ {0x904bf, 0x0}, -+ {0x904c0, 0x0}, -+ {0x904c1, 0x0}, -+ {0x904c2, 0x0}, -+ {0x904c3, 0x0}, -+ {0x904c4, 0x0}, -+ {0x904c5, 0x0}, -+ {0x904c6, 0x0}, -+ {0x904c7, 0x0}, -+ {0x904c8, 0x0}, -+ {0x904c9, 0x0}, -+ {0x904ca, 0x0}, -+ {0x904cb, 0x0}, -+ {0x904cc, 0x0}, -+ {0x904cd, 0x0}, -+ {0x904ce, 0x0}, -+ {0x904cf, 0x0}, -+ {0x904d0, 0x0}, -+ {0x904d1, 0x0}, -+ {0x904d2, 0x0}, -+ {0x904d3, 0x0}, -+ {0x904d4, 0x0}, -+ {0x904d5, 0x0}, -+ {0x904d6, 0x0}, -+ {0x904d7, 0x0}, -+ {0x904d8, 0x0}, -+ {0x904d9, 0x0}, -+ {0x904da, 0x0}, -+ {0x904db, 0x0}, -+ {0x904dc, 0x0}, -+ {0x904dd, 0x0}, -+ {0x904de, 0x0}, -+ {0x904df, 0x0}, -+ {0x904e0, 0x0}, -+ {0x904e1, 0x0}, -+ {0x904e2, 0x0}, -+ {0x904e3, 0x0}, -+ {0x904e4, 0x0}, -+ {0x904e5, 0x0}, -+ {0x904e6, 0x0}, -+ {0x904e7, 0x0}, -+ {0x904e8, 0x0}, -+ {0x904e9, 0x0}, -+ {0x904ea, 0x0}, -+ {0x904eb, 0x0}, -+ {0x904ec, 0x0}, -+ {0x904ed, 0x0}, -+ {0x904ee, 0x0}, -+ {0x904ef, 0x0}, -+ {0x904f0, 0x0}, -+ {0x904f1, 0x0}, -+ {0x904f2, 0x0}, -+ {0x904f3, 0x0}, -+ {0x904f4, 0x0}, -+ {0x904f5, 0x0}, -+ {0x904f6, 0x0}, -+ {0x904f7, 0x0}, -+ {0x904f8, 0x0}, -+ {0x904f9, 0x0}, -+ {0x904fa, 0x0}, -+ {0x904fb, 0x0}, -+ {0x904fc, 0x0}, -+ {0x904fd, 0x0}, -+ {0x904fe, 0x0}, -+ {0x904ff, 0x0}, -+ {0x90500, 0x0}, -+ {0x90501, 0x0}, -+ {0x90502, 0x0}, -+ {0x90503, 0x0}, -+ {0x90504, 0x0}, -+ {0x90505, 0x0}, -+ {0x90506, 0x0}, -+ {0x90507, 0x0}, -+ {0x90508, 0x0}, -+ {0x90509, 0x0}, -+ {0x9050a, 0x0}, -+ {0x9050b, 0x0}, -+ {0x9050c, 0x0}, -+ {0x9050d, 0x0}, -+ {0x9050e, 0x0}, -+ {0x9050f, 0x0}, -+ {0x90510, 0x0}, -+ {0x90511, 0x0}, -+ {0x90512, 0x0}, -+ {0x90513, 0x0}, -+ {0x90514, 0x0}, -+ {0x90515, 0x0}, -+ {0x90516, 0x0}, -+ {0x90517, 0x0}, -+ {0x90518, 0x0}, -+ {0x90519, 0x0}, -+ {0x9051a, 0x0}, -+ {0x9051b, 0x0}, -+ {0x9051c, 0x0}, -+ {0x9051d, 0x0}, -+ {0x9051e, 0x0}, -+ {0x9051f, 0x0}, -+ {0x90520, 0x0}, -+ {0x90521, 0x0}, -+ {0x90522, 0x0}, -+ {0x90523, 0x0}, -+ {0x90524, 0x0}, -+ {0x90525, 0x0}, -+ {0x90526, 0x0}, -+ {0x90527, 0x0}, -+ {0x90528, 0x0}, -+ {0x90529, 0x0}, -+ {0x9052a, 0x0}, -+ {0x9052b, 0x0}, -+ {0x9052c, 0x0}, -+ {0x9052d, 0x0}, -+ {0x9052e, 0x0}, -+ {0x9052f, 0x0}, -+ {0x90530, 0x0}, -+ {0x90531, 0x0}, -+ {0x90532, 0x0}, -+ {0x90533, 0x0}, -+ {0x90534, 0x0}, -+ {0x90535, 0x0}, -+ {0x90536, 0x0}, -+ {0x90537, 0x0}, -+ {0x90538, 0x0}, -+ {0x90539, 0x0}, -+ {0x9053a, 0x0}, -+ {0xd00e7, 0x0}, -+ {0x9001c, 0x0}, -+ {0x90020, 0x0}, -+ {0x90024, 0x0}, -+ {0x90025, 0x0}, -+ {0x90026, 0x0}, -+ {0x9002b, 0x0}, -+ {0x90708, 0x0}, -+ {0x90700, 0x0}, -+ {0x90701, 0x0}, -+ {0x90702, 0x0}, -+ {0x90703, 0x0}, -+ {0x90704, 0x0}, -+ {0x90705, 0x0}, -+ {0x90706, 0x0}, -+ {0x90707, 0x0}, -+ {0x2018a, 0x0}, -+ {0x20124, 0x0}, -+ {0x2018b, 0x0}, -+ {0x20125, 0x0}, -+ {0x2018c, 0x0}, -+ {0x20126, 0x0}, -+ {0x2018d, 0x0}, -+ {0x20127, 0x0}, -+ {0x2018e, 0x0}, -+ {0x20128, 0x0}, -+ {0x2018f, 0x0}, -+ {0x20129, 0x0}, -+ {0x20190, 0x0}, -+ {0x2012a, 0x0}, -+ {0x20191, 0x0}, -+ {0x2012b, 0x0}, -+ {0x20192, 0x0}, -+ {0x2012c, 0x0}, -+ {0x20193, 0x0}, -+ {0x2012d, 0x0}, -+ {0x20194, 0x0}, -+ {0x2012e, 0x0}, -+ {0x20195, 0x0}, -+ {0x2012f, 0x0}, -+ {0x20196, 0x0}, -+ {0x20130, 0x0}, -+ {0x20197, 0x0}, -+ {0x20131, 0x0}, -+ {0x20198, 0x0}, -+ {0x20132, 0x0}, -+ {0x20199, 0x0}, -+ {0x20133, 0x0}, -+ {0x2019a, 0x0}, -+ {0x20134, 0x0}, -+ {0x2019b, 0x0}, -+ {0x20135, 0x0}, -+ {0x2019c, 0x0}, -+ {0x20136, 0x0}, -+ {0x2019d, 0x0}, -+ {0x20137, 0x0}, -+ {0x2019e, 0x0}, -+ {0x20138, 0x0}, -+ {0x2019f, 0x0}, -+ {0x20139, 0x0}, -+ {0x201a0, 0x0}, -+ {0x2013a, 0x0}, -+ {0x201a1, 0x0}, -+ {0x2013b, 0x0}, -+ {0x201a2, 0x0}, -+ {0x2013c, 0x0}, -+ {0x201a3, 0x0}, -+ {0x2013d, 0x0}, -+ {0x201a4, 0x0}, -+ {0x2013e, 0x0}, -+ {0x201a5, 0x0}, -+ {0x2013f, 0x0}, -+ {0x201a6, 0x0}, -+ {0x20140, 0x0}, -+ {0x201a7, 0x0}, -+ {0x20141, 0x0}, -+ {0x201a8, 0x0}, -+ {0x20142, 0x0}, -+ {0x201a9, 0x0}, -+ {0x20143, 0x0}, -+ {0x201aa, 0x0}, -+ {0x20144, 0x0}, -+ {0x201ab, 0x0}, -+ {0x20145, 0x0}, -+ {0x201ac, 0x0}, -+ {0x20146, 0x0}, -+ {0x201ad, 0x0}, -+ {0x20147, 0x0}, -+ {0x201ae, 0x0}, -+ {0x20148, 0x0}, -+ {0x201af, 0x0}, -+ {0x20149, 0x0}, -+ {0x201b0, 0x0}, -+ {0x2014a, 0x0}, -+ {0x201b1, 0x0}, -+ {0x2014b, 0x0}, -+ {0x201b2, 0x0}, -+ {0x2014c, 0x0}, -+ {0x201b3, 0x0}, -+ {0x2014d, 0x0}, -+ {0x201b4, 0x0}, -+ {0x2014e, 0x0}, -+ {0x201b5, 0x0}, -+ {0x2014f, 0x0}, -+ {0x201b6, 0x0}, -+ {0x20150, 0x0}, -+ {0x201b7, 0x0}, -+ {0x20151, 0x0}, -+ {0x201b8, 0x0}, -+ {0x20152, 0x0}, -+ {0x201b9, 0x0}, -+ {0x20153, 0x0}, -+ {0x201ba, 0x0}, -+ {0x20154, 0x0}, -+ {0x201bb, 0x0}, -+ {0x20155, 0x0}, -+ {0x201bc, 0x0}, -+ {0x20156, 0x0}, -+ {0x201bd, 0x0}, -+ {0x20157, 0x0}, -+ {0x201be, 0x0}, -+ {0x20158, 0x0}, -+ {0x201bf, 0x0}, -+ {0x20159, 0x0}, -+ {0x201c0, 0x0}, -+ {0x2015a, 0x0}, -+ {0x201c1, 0x0}, -+ {0x2015b, 0x0}, -+ {0x201c2, 0x0}, -+ {0x2015c, 0x0}, -+ {0x201c3, 0x0}, -+ {0x2015d, 0x0}, -+ {0x201c4, 0x0}, -+ {0x2015e, 0x0}, -+ {0x201c5, 0x0}, -+ {0x2015f, 0x0}, -+ {0x201c6, 0x0}, -+ {0x20160, 0x0}, -+ {0x201c7, 0x0}, -+ {0x20161, 0x0}, -+ {0x201c8, 0x0}, -+ {0x20162, 0x0}, -+ {0x201c9, 0x0}, -+ {0x20163, 0x0}, -+ {0x201ca, 0x0}, -+ {0x20164, 0x0}, -+ {0x201cb, 0x0}, -+ {0x20165, 0x0}, -+ {0x201cc, 0x0}, -+ {0x20166, 0x0}, -+ {0x201cd, 0x0}, -+ {0x20167, 0x0}, -+ {0x201ce, 0x0}, -+ {0x20168, 0x0}, -+ {0x201cf, 0x0}, -+ {0x20169, 0x0}, -+ {0x201d0, 0x0}, -+ {0x2016a, 0x0}, -+ {0x201d1, 0x0}, -+ {0x2016b, 0x0}, -+ {0x201d2, 0x0}, -+ {0x2016c, 0x0}, -+ {0x201d3, 0x0}, -+ {0x2016d, 0x0}, -+ {0x201d4, 0x0}, -+ {0x2016e, 0x0}, -+ {0x201d5, 0x0}, -+ {0x2016f, 0x0}, -+ {0x201d6, 0x0}, -+ {0x20170, 0x0}, -+ {0x201d7, 0x0}, -+ {0x20171, 0x0}, -+ {0x201d8, 0x0}, -+ {0x20172, 0x0}, -+ {0x201d9, 0x0}, -+ {0x20173, 0x0}, -+ {0x201da, 0x0}, -+ {0xc0001, 0x0}, -+ {0xc0002, 0x0}, -+ {0xc0003, 0x0}, -+ {0xc0000, 0x0}, -+ {0xc0006, 0x0}, -+ {0xc0007, 0x0}, -+ {0x9070c, 0x0}, -+ {0x9070d, 0x0}, -+ {0x9070e, 0x0}, -+ {0x9070f, 0x0}, -+ {0x90710, 0x0}, -+ {0x90711, 0x0}, -+ {0x90713, 0x0}, -+ {0x90714, 0x0}, -+ {0x90715, 0x0}, -+ {0x90c10, 0x0}, -+ {0x90c12, 0x0}, -+ {0x90712, 0x0}, -+ {0x90c11, 0x0}, -+ {0x90716, 0x0}, -+ {0x90717, 0x0}, -+ {0x90718, 0x0}, -+ {0x90719, 0x0}, -+ {0x9071a, 0x0}, -+ {0x9071b, 0x0}, -+ {0x90904, 0x0}, -+ {0x90986, 0x0}, -+ {0x90920, 0x0}, -+ {0x90921, 0x0}, -+ {0x90922, 0x0}, -+ {0x90923, 0x0}, -+ {0x90924, 0x0}, -+ {0x90925, 0x0}, -+ {0x90926, 0x0}, -+ {0x90927, 0x0}, -+ {0x90930, 0x0}, -+ {0x90931, 0x0}, -+ {0x90932, 0x0}, -+ {0x90933, 0x0}, -+ {0x9090a, 0x0}, -+ {0x9090c, 0x0}, -+ {0x9090d, 0x0}, -+ {0x200f0, 0x0}, -+ {0x200f1, 0x0}, -+ {0x200f2, 0x0}, -+ {0x100b9, 0x0}, -+ {0x100b1, 0x0}, -+ {0x100ba, 0x0}, -+ {0x100a2, 0x0}, -+ {0x100b5, 0x0}, -+ {0x110b9, 0x0}, -+ {0x110b1, 0x0}, -+ {0x110ba, 0x0}, -+ {0x110a2, 0x0}, -+ {0x110b5, 0x0}, -+ {0x120b9, 0x0}, -+ {0x120b1, 0x0}, -+ {0x120ba, 0x0}, -+ {0x120a2, 0x0}, -+ {0x120b5, 0x0}, -+ {0x130b9, 0x0}, -+ {0x130b1, 0x0}, -+ {0x130ba, 0x0}, -+ {0x130a2, 0x0}, -+ {0x130b5, 0x0}, -+ {0x70024, 0x0}, -+ {0x70025, 0x0}, -+ {0x70026, 0x0}, -+ {0x70027, 0x0}, -+ {0x70028, 0x0}, -+ {0x70029, 0x0}, -+ {0x7002a, 0x0}, -+ {0x7002b, 0x0}, -+ {0x70124, 0x0}, -+ {0x70125, 0x0}, -+ {0x70126, 0x0}, -+ {0x70127, 0x0}, -+ {0x70128, 0x0}, -+ {0x70129, 0x0}, -+ {0x7012a, 0x0}, -+ {0x7012b, 0x0}, -+ {0x70224, 0x0}, -+ {0x70225, 0x0}, -+ {0x70226, 0x0}, -+ {0x70227, 0x0}, -+ {0x70228, 0x0}, -+ {0x70229, 0x0}, -+ {0x7022a, 0x0}, -+ {0x7022b, 0x0}, -+ {0x70324, 0x0}, -+ {0x70325, 0x0}, -+ {0x70326, 0x0}, -+ {0x70327, 0x0}, -+ {0x70328, 0x0}, -+ {0x70329, 0x0}, -+ {0x7032a, 0x0}, -+ {0x7032b, 0x0}, -+ {0x70424, 0x0}, -+ {0x70425, 0x0}, -+ {0x70426, 0x0}, -+ {0x70427, 0x0}, -+ {0x70428, 0x0}, -+ {0x70429, 0x0}, -+ {0x7042a, 0x0}, -+ {0x7042b, 0x0}, -+ {0x70524, 0x0}, -+ {0x70525, 0x0}, -+ {0x70526, 0x0}, -+ {0x70527, 0x0}, -+ {0x70528, 0x0}, -+ {0x70529, 0x0}, -+ {0x7052a, 0x0}, -+ {0x7052b, 0x0}, -+ {0x70624, 0x0}, -+ {0x70625, 0x0}, -+ {0x70626, 0x0}, -+ {0x70627, 0x0}, -+ {0x70628, 0x0}, -+ {0x70629, 0x0}, -+ {0x7062a, 0x0}, -+ {0x7062b, 0x0}, -+ {0x70724, 0x0}, -+ {0x70725, 0x0}, -+ {0x70726, 0x0}, -+ {0x70727, 0x0}, -+ {0x70728, 0x0}, -+ {0x70729, 0x0}, -+ {0x7072a, 0x0}, -+ {0x7072b, 0x0}, -+ {0x70824, 0x0}, -+ {0x70825, 0x0}, -+ {0x70826, 0x0}, -+ {0x70827, 0x0}, -+ {0x70828, 0x0}, -+ {0x70829, 0x0}, -+ {0x7082a, 0x0}, -+ {0x7082b, 0x0}, -+ {0x70065, 0x0}, -+ {0x2007e, 0x0}, -+ {0x200ef, 0x0}, -+ {0x90910, 0x0}, -+ {0x20310, 0x0}, -+ {0x20311, 0x0}, -+ {0x20049, 0x0}, -+ {0x100be, 0x0}, -+ {0x100b0, 0x0}, -+ {0x10080, 0x0}, -+ {0x10081, 0x0}, -+ {0x10082, 0x0}, -+ {0x10083, 0x0}, -+ {0x10084, 0x0}, -+ {0x10085, 0x0}, -+ {0x10086, 0x0}, -+ {0x10087, 0x0}, -+ {0x10056, 0x0}, -+ {0x100d9, 0x0}, -+ {0x110be, 0x0}, -+ {0x110b0, 0x0}, -+ {0x11080, 0x0}, -+ {0x11081, 0x0}, -+ {0x11082, 0x0}, -+ {0x11083, 0x0}, -+ {0x11084, 0x0}, -+ {0x11085, 0x0}, -+ {0x11086, 0x0}, -+ {0x11087, 0x0}, -+ {0x11056, 0x0}, -+ {0x110d9, 0x0}, -+ {0x120be, 0x0}, -+ {0x120b0, 0x0}, -+ {0x12080, 0x0}, -+ {0x12081, 0x0}, -+ {0x12082, 0x0}, -+ {0x12083, 0x0}, -+ {0x12084, 0x0}, -+ {0x12085, 0x0}, -+ {0x12086, 0x0}, -+ {0x12087, 0x0}, -+ {0x12056, 0x0}, -+ {0x120d9, 0x0}, -+ {0x130be, 0x0}, -+ {0x130b0, 0x0}, -+ {0x13080, 0x0}, -+ {0x13081, 0x0}, -+ {0x13082, 0x0}, -+ {0x13083, 0x0}, -+ {0x13084, 0x0}, -+ {0x13085, 0x0}, -+ {0x13086, 0x0}, -+ {0x13087, 0x0}, -+ {0x13056, 0x0}, -+ {0x130d9, 0x0}, -+ {0x30090, 0x0}, -+ {0x30091, 0x0}, -+ {0x30092, 0x0}, -+ {0x30093, 0x0}, -+ {0x30094, 0x0}, -+ {0x30095, 0x0}, -+ {0x30096, 0x0}, -+ {0x31090, 0x0}, -+ {0x31091, 0x0}, -+ {0x31092, 0x0}, -+ {0x31093, 0x0}, -+ {0x31094, 0x0}, -+ {0x31095, 0x0}, -+ {0x31096, 0x0}, -+ {0x30002, 0x0}, -+ {0x30007, 0x0}, -+ {0x30008, 0x0}, -+ {0x30005, 0x0}, -+ {0x30006, 0x0}, -+ {0x30001, 0x0}, -+ {0x30101, 0x0}, -+ {0x30201, 0x0}, -+ {0x30301, 0x0}, -+ {0x30401, 0x0}, -+ {0x30501, 0x0}, -+ {0x30601, 0x0}, -+ {0x30701, 0x0}, -+ {0x30801, 0x0}, -+ {0x30901, 0x0}, -+ {0x31002, 0x0}, -+ {0x31007, 0x0}, -+ {0x31008, 0x0}, -+ {0x31005, 0x0}, -+ {0x31006, 0x0}, -+ {0x31001, 0x0}, -+ {0x31101, 0x0}, -+ {0x31201, 0x0}, -+ {0x31301, 0x0}, -+ {0x31401, 0x0}, -+ {0x31501, 0x0}, -+ {0x31601, 0x0}, -+ {0x31701, 0x0}, -+ {0x31801, 0x0}, -+ {0x31901, 0x0}, -+ {0x10000, 0x0}, -+ {0x100ad, 0x0}, -+ {0x100af, 0x0}, -+ {0x10020, 0x0}, -+ {0x10021, 0x0}, -+ {0x10028, 0x0}, -+ {0x10029, 0x0}, -+ {0x10066, 0x0}, -+ {0x10067, 0x0}, -+ {0x1005a, 0x0}, -+ {0x1005b, 0x0}, -+ {0x1005c, 0x0}, -+ {0x1005d, 0x0}, -+ {0x1002a, 0x0}, -+ {0x1002b, 0x0}, -+ {0x10024, 0x0}, -+ {0x10025, 0x0}, -+ {0x10026, 0x0}, -+ {0x10027, 0x0}, -+ {0x10010, 0x0}, -+ {0x10011, 0x0}, -+ {0x10012, 0x0}, -+ {0x10013, 0x0}, -+ {0x10068, 0x0}, -+ {0x10069, 0x0}, -+ {0x1006a, 0x0}, -+ {0x1006b, 0x0}, -+ {0x1006c, 0x0}, -+ {0x1006d, 0x0}, -+ {0x1006e, 0x0}, -+ {0x1006f, 0x0}, -+ {0x1001c, 0x0}, -+ {0x1001d, 0x0}, -+ {0x1001e, 0x0}, -+ {0x1001f, 0x0}, -+ {0x10124, 0x0}, -+ {0x10125, 0x0}, -+ {0x10126, 0x0}, -+ {0x10127, 0x0}, -+ {0x10110, 0x0}, -+ {0x10111, 0x0}, -+ {0x10112, 0x0}, -+ {0x10113, 0x0}, -+ {0x10168, 0x0}, -+ {0x10169, 0x0}, -+ {0x1016a, 0x0}, -+ {0x1016b, 0x0}, -+ {0x1016c, 0x0}, -+ {0x1016d, 0x0}, -+ {0x1016e, 0x0}, -+ {0x1016f, 0x0}, -+ {0x1011c, 0x0}, -+ {0x1011d, 0x0}, -+ {0x1011e, 0x0}, -+ {0x1011f, 0x0}, -+ {0x10224, 0x0}, -+ {0x10225, 0x0}, -+ {0x10226, 0x0}, -+ {0x10227, 0x0}, -+ {0x10210, 0x0}, -+ {0x10211, 0x0}, -+ {0x10212, 0x0}, -+ {0x10213, 0x0}, -+ {0x10268, 0x0}, -+ {0x10269, 0x0}, -+ {0x1026a, 0x0}, -+ {0x1026b, 0x0}, -+ {0x1026c, 0x0}, -+ {0x1026d, 0x0}, -+ {0x1026e, 0x0}, -+ {0x1026f, 0x0}, -+ {0x1021c, 0x0}, -+ {0x1021d, 0x0}, -+ {0x1021e, 0x0}, -+ {0x1021f, 0x0}, -+ {0x10324, 0x0}, -+ {0x10325, 0x0}, -+ {0x10326, 0x0}, -+ {0x10327, 0x0}, -+ {0x10310, 0x0}, -+ {0x10311, 0x0}, -+ {0x10312, 0x0}, -+ {0x10313, 0x0}, -+ {0x10368, 0x0}, -+ {0x10369, 0x0}, -+ {0x1036a, 0x0}, -+ {0x1036b, 0x0}, -+ {0x1036c, 0x0}, -+ {0x1036d, 0x0}, -+ {0x1036e, 0x0}, -+ {0x1036f, 0x0}, -+ {0x1031c, 0x0}, -+ {0x1031d, 0x0}, -+ {0x1031e, 0x0}, -+ {0x1031f, 0x0}, -+ {0x10424, 0x0}, -+ {0x10425, 0x0}, -+ {0x10426, 0x0}, -+ {0x10427, 0x0}, -+ {0x10410, 0x0}, -+ {0x10411, 0x0}, -+ {0x10412, 0x0}, -+ {0x10413, 0x0}, -+ {0x10468, 0x0}, -+ {0x10469, 0x0}, -+ {0x1046a, 0x0}, -+ {0x1046b, 0x0}, -+ {0x1046c, 0x0}, -+ {0x1046d, 0x0}, -+ {0x1046e, 0x0}, -+ {0x1046f, 0x0}, -+ {0x1041c, 0x0}, -+ {0x1041d, 0x0}, -+ {0x1041e, 0x0}, -+ {0x1041f, 0x0}, -+ {0x10524, 0x0}, -+ {0x10525, 0x0}, -+ {0x10526, 0x0}, -+ {0x10527, 0x0}, -+ {0x10510, 0x0}, -+ {0x10511, 0x0}, -+ {0x10512, 0x0}, -+ {0x10513, 0x0}, -+ {0x10568, 0x0}, -+ {0x10569, 0x0}, -+ {0x1056a, 0x0}, -+ {0x1056b, 0x0}, -+ {0x1056c, 0x0}, -+ {0x1056d, 0x0}, -+ {0x1056e, 0x0}, -+ {0x1056f, 0x0}, -+ {0x1051c, 0x0}, -+ {0x1051d, 0x0}, -+ {0x1051e, 0x0}, -+ {0x1051f, 0x0}, -+ {0x10624, 0x0}, -+ {0x10625, 0x0}, -+ {0x10626, 0x0}, -+ {0x10627, 0x0}, -+ {0x10610, 0x0}, -+ {0x10611, 0x0}, -+ {0x10612, 0x0}, -+ {0x10613, 0x0}, -+ {0x10668, 0x0}, -+ {0x10669, 0x0}, -+ {0x1066a, 0x0}, -+ {0x1066b, 0x0}, -+ {0x1066c, 0x0}, -+ {0x1066d, 0x0}, -+ {0x1066e, 0x0}, -+ {0x1066f, 0x0}, -+ {0x1061c, 0x0}, -+ {0x1061d, 0x0}, -+ {0x1061e, 0x0}, -+ {0x1061f, 0x0}, -+ {0x10724, 0x0}, -+ {0x10725, 0x0}, -+ {0x10726, 0x0}, -+ {0x10727, 0x0}, -+ {0x10710, 0x0}, -+ {0x10711, 0x0}, -+ {0x10712, 0x0}, -+ {0x10713, 0x0}, -+ {0x10768, 0x0}, -+ {0x10769, 0x0}, -+ {0x1076a, 0x0}, -+ {0x1076b, 0x0}, -+ {0x1076c, 0x0}, -+ {0x1076d, 0x0}, -+ {0x1076e, 0x0}, -+ {0x1076f, 0x0}, -+ {0x1071c, 0x0}, -+ {0x1071d, 0x0}, -+ {0x1071e, 0x0}, -+ {0x1071f, 0x0}, -+ {0x10824, 0x0}, -+ {0x10825, 0x0}, -+ {0x10826, 0x0}, -+ {0x10827, 0x0}, -+ {0x10810, 0x0}, -+ {0x10811, 0x0}, -+ {0x10812, 0x0}, -+ {0x10813, 0x0}, -+ {0x10868, 0x0}, -+ {0x10869, 0x0}, -+ {0x1086a, 0x0}, -+ {0x1086b, 0x0}, -+ {0x1086c, 0x0}, -+ {0x1086d, 0x0}, -+ {0x1086e, 0x0}, -+ {0x1086f, 0x0}, -+ {0x1081c, 0x0}, -+ {0x1081d, 0x0}, -+ {0x1081e, 0x0}, -+ {0x1081f, 0x0}, -+ {0x1000c, 0x0}, -+ {0x1000d, 0x0}, -+ {0x10015, 0x0}, -+ {0x10016, 0x0}, -+ {0x10019, 0x0}, -+ {0x1001b, 0x0}, -+ {0x10022, 0x0}, -+ {0x10023, 0x0}, -+ {0x100d0, 0x0}, -+ {0x100d1, 0x0}, -+ {0x100d2, 0x0}, -+ {0x100d3, 0x0}, -+ {0x100d4, 0x0}, -+ {0x11000, 0x0}, -+ {0x110ad, 0x0}, -+ {0x110af, 0x0}, -+ {0x11020, 0x0}, -+ {0x11021, 0x0}, -+ {0x11028, 0x0}, -+ {0x11029, 0x0}, -+ {0x11066, 0x0}, -+ {0x11067, 0x0}, -+ {0x1105a, 0x0}, -+ {0x1105b, 0x0}, -+ {0x1105c, 0x0}, -+ {0x1105d, 0x0}, -+ {0x1102a, 0x0}, -+ {0x1102b, 0x0}, -+ {0x11024, 0x0}, -+ {0x11025, 0x0}, -+ {0x11026, 0x0}, -+ {0x11027, 0x0}, -+ {0x11010, 0x0}, -+ {0x11011, 0x0}, -+ {0x11012, 0x0}, -+ {0x11013, 0x0}, -+ {0x11068, 0x0}, -+ {0x11069, 0x0}, -+ {0x1106a, 0x0}, -+ {0x1106b, 0x0}, -+ {0x1106c, 0x0}, -+ {0x1106d, 0x0}, -+ {0x1106e, 0x0}, -+ {0x1106f, 0x0}, -+ {0x1101c, 0x0}, -+ {0x1101d, 0x0}, -+ {0x1101e, 0x0}, -+ {0x1101f, 0x0}, -+ {0x11124, 0x0}, -+ {0x11125, 0x0}, -+ {0x11126, 0x0}, -+ {0x11127, 0x0}, -+ {0x11110, 0x0}, -+ {0x11111, 0x0}, -+ {0x11112, 0x0}, -+ {0x11113, 0x0}, -+ {0x11168, 0x0}, -+ {0x11169, 0x0}, -+ {0x1116a, 0x0}, -+ {0x1116b, 0x0}, -+ {0x1116c, 0x0}, -+ {0x1116d, 0x0}, -+ {0x1116e, 0x0}, -+ {0x1116f, 0x0}, -+ {0x1111c, 0x0}, -+ {0x1111d, 0x0}, -+ {0x1111e, 0x0}, -+ {0x1111f, 0x0}, -+ {0x11224, 0x0}, -+ {0x11225, 0x0}, -+ {0x11226, 0x0}, -+ {0x11227, 0x0}, -+ {0x11210, 0x0}, -+ {0x11211, 0x0}, -+ {0x11212, 0x0}, -+ {0x11213, 0x0}, -+ {0x11268, 0x0}, -+ {0x11269, 0x0}, -+ {0x1126a, 0x0}, -+ {0x1126b, 0x0}, -+ {0x1126c, 0x0}, -+ {0x1126d, 0x0}, -+ {0x1126e, 0x0}, -+ {0x1126f, 0x0}, -+ {0x1121c, 0x0}, -+ {0x1121d, 0x0}, -+ {0x1121e, 0x0}, -+ {0x1121f, 0x0}, -+ {0x11324, 0x0}, -+ {0x11325, 0x0}, -+ {0x11326, 0x0}, -+ {0x11327, 0x0}, -+ {0x11310, 0x0}, -+ {0x11311, 0x0}, -+ {0x11312, 0x0}, -+ {0x11313, 0x0}, -+ {0x11368, 0x0}, -+ {0x11369, 0x0}, -+ {0x1136a, 0x0}, -+ {0x1136b, 0x0}, -+ {0x1136c, 0x0}, -+ {0x1136d, 0x0}, -+ {0x1136e, 0x0}, -+ {0x1136f, 0x0}, -+ {0x1131c, 0x0}, -+ {0x1131d, 0x0}, -+ {0x1131e, 0x0}, -+ {0x1131f, 0x0}, -+ {0x11424, 0x0}, -+ {0x11425, 0x0}, -+ {0x11426, 0x0}, -+ {0x11427, 0x0}, -+ {0x11410, 0x0}, -+ {0x11411, 0x0}, -+ {0x11412, 0x0}, -+ {0x11413, 0x0}, -+ {0x11468, 0x0}, -+ {0x11469, 0x0}, -+ {0x1146a, 0x0}, -+ {0x1146b, 0x0}, -+ {0x1146c, 0x0}, -+ {0x1146d, 0x0}, -+ {0x1146e, 0x0}, -+ {0x1146f, 0x0}, -+ {0x1141c, 0x0}, -+ {0x1141d, 0x0}, -+ {0x1141e, 0x0}, -+ {0x1141f, 0x0}, -+ {0x11524, 0x0}, -+ {0x11525, 0x0}, -+ {0x11526, 0x0}, -+ {0x11527, 0x0}, -+ {0x11510, 0x0}, -+ {0x11511, 0x0}, -+ {0x11512, 0x0}, -+ {0x11513, 0x0}, -+ {0x11568, 0x0}, -+ {0x11569, 0x0}, -+ {0x1156a, 0x0}, -+ {0x1156b, 0x0}, -+ {0x1156c, 0x0}, -+ {0x1156d, 0x0}, -+ {0x1156e, 0x0}, -+ {0x1156f, 0x0}, -+ {0x1151c, 0x0}, -+ {0x1151d, 0x0}, -+ {0x1151e, 0x0}, -+ {0x1151f, 0x0}, -+ {0x11624, 0x0}, -+ {0x11625, 0x0}, -+ {0x11626, 0x0}, -+ {0x11627, 0x0}, -+ {0x11610, 0x0}, -+ {0x11611, 0x0}, -+ {0x11612, 0x0}, -+ {0x11613, 0x0}, -+ {0x11668, 0x0}, -+ {0x11669, 0x0}, -+ {0x1166a, 0x0}, -+ {0x1166b, 0x0}, -+ {0x1166c, 0x0}, -+ {0x1166d, 0x0}, -+ {0x1166e, 0x0}, -+ {0x1166f, 0x0}, -+ {0x1161c, 0x0}, -+ {0x1161d, 0x0}, -+ {0x1161e, 0x0}, -+ {0x1161f, 0x0}, -+ {0x11724, 0x0}, -+ {0x11725, 0x0}, -+ {0x11726, 0x0}, -+ {0x11727, 0x0}, -+ {0x11710, 0x0}, -+ {0x11711, 0x0}, -+ {0x11712, 0x0}, -+ {0x11713, 0x0}, -+ {0x11768, 0x0}, -+ {0x11769, 0x0}, -+ {0x1176a, 0x0}, -+ {0x1176b, 0x0}, -+ {0x1176c, 0x0}, -+ {0x1176d, 0x0}, -+ {0x1176e, 0x0}, -+ {0x1176f, 0x0}, -+ {0x1171c, 0x0}, -+ {0x1171d, 0x0}, -+ {0x1171e, 0x0}, -+ {0x1171f, 0x0}, -+ {0x11824, 0x0}, -+ {0x11825, 0x0}, -+ {0x11826, 0x0}, -+ {0x11827, 0x0}, -+ {0x11810, 0x0}, -+ {0x11811, 0x0}, -+ {0x11812, 0x0}, -+ {0x11813, 0x0}, -+ {0x11868, 0x0}, -+ {0x11869, 0x0}, -+ {0x1186a, 0x0}, -+ {0x1186b, 0x0}, -+ {0x1186c, 0x0}, -+ {0x1186d, 0x0}, -+ {0x1186e, 0x0}, -+ {0x1186f, 0x0}, -+ {0x1181c, 0x0}, -+ {0x1181d, 0x0}, -+ {0x1181e, 0x0}, -+ {0x1181f, 0x0}, -+ {0x1100c, 0x0}, -+ {0x1100d, 0x0}, -+ {0x11015, 0x0}, -+ {0x11016, 0x0}, -+ {0x11019, 0x0}, -+ {0x1101b, 0x0}, -+ {0x11022, 0x0}, -+ {0x11023, 0x0}, -+ {0x110d0, 0x0}, -+ {0x110d1, 0x0}, -+ {0x110d2, 0x0}, -+ {0x110d3, 0x0}, -+ {0x110d4, 0x0}, -+ {0x12000, 0x0}, -+ {0x120ad, 0x0}, -+ {0x120af, 0x0}, -+ {0x12020, 0x0}, -+ {0x12021, 0x0}, -+ {0x12028, 0x0}, -+ {0x12029, 0x0}, -+ {0x12066, 0x0}, -+ {0x12067, 0x0}, -+ {0x1205a, 0x0}, -+ {0x1205b, 0x0}, -+ {0x1205c, 0x0}, -+ {0x1205d, 0x0}, -+ {0x1202a, 0x0}, -+ {0x1202b, 0x0}, -+ {0x12024, 0x0}, -+ {0x12025, 0x0}, -+ {0x12026, 0x0}, -+ {0x12027, 0x0}, -+ {0x12010, 0x0}, -+ {0x12011, 0x0}, -+ {0x12012, 0x0}, -+ {0x12013, 0x0}, -+ {0x12068, 0x0}, -+ {0x12069, 0x0}, -+ {0x1206a, 0x0}, -+ {0x1206b, 0x0}, -+ {0x1206c, 0x0}, -+ {0x1206d, 0x0}, -+ {0x1206e, 0x0}, -+ {0x1206f, 0x0}, -+ {0x1201c, 0x0}, -+ {0x1201d, 0x0}, -+ {0x1201e, 0x0}, -+ {0x1201f, 0x0}, -+ {0x12124, 0x0}, -+ {0x12125, 0x0}, -+ {0x12126, 0x0}, -+ {0x12127, 0x0}, -+ {0x12110, 0x0}, -+ {0x12111, 0x0}, -+ {0x12112, 0x0}, -+ {0x12113, 0x0}, -+ {0x12168, 0x0}, -+ {0x12169, 0x0}, -+ {0x1216a, 0x0}, -+ {0x1216b, 0x0}, -+ {0x1216c, 0x0}, -+ {0x1216d, 0x0}, -+ {0x1216e, 0x0}, -+ {0x1216f, 0x0}, -+ {0x1211c, 0x0}, -+ {0x1211d, 0x0}, -+ {0x1211e, 0x0}, -+ {0x1211f, 0x0}, -+ {0x12224, 0x0}, -+ {0x12225, 0x0}, -+ {0x12226, 0x0}, -+ {0x12227, 0x0}, -+ {0x12210, 0x0}, -+ {0x12211, 0x0}, -+ {0x12212, 0x0}, -+ {0x12213, 0x0}, -+ {0x12268, 0x0}, -+ {0x12269, 0x0}, -+ {0x1226a, 0x0}, -+ {0x1226b, 0x0}, -+ {0x1226c, 0x0}, -+ {0x1226d, 0x0}, -+ {0x1226e, 0x0}, -+ {0x1226f, 0x0}, -+ {0x1221c, 0x0}, -+ {0x1221d, 0x0}, -+ {0x1221e, 0x0}, -+ {0x1221f, 0x0}, -+ {0x12324, 0x0}, -+ {0x12325, 0x0}, -+ {0x12326, 0x0}, -+ {0x12327, 0x0}, -+ {0x12310, 0x0}, -+ {0x12311, 0x0}, -+ {0x12312, 0x0}, -+ {0x12313, 0x0}, -+ {0x12368, 0x0}, -+ {0x12369, 0x0}, -+ {0x1236a, 0x0}, -+ {0x1236b, 0x0}, -+ {0x1236c, 0x0}, -+ {0x1236d, 0x0}, -+ {0x1236e, 0x0}, -+ {0x1236f, 0x0}, -+ {0x1231c, 0x0}, -+ {0x1231d, 0x0}, -+ {0x1231e, 0x0}, -+ {0x1231f, 0x0}, -+ {0x12424, 0x0}, -+ {0x12425, 0x0}, -+ {0x12426, 0x0}, -+ {0x12427, 0x0}, -+ {0x12410, 0x0}, -+ {0x12411, 0x0}, -+ {0x12412, 0x0}, -+ {0x12413, 0x0}, -+ {0x12468, 0x0}, -+ {0x12469, 0x0}, -+ {0x1246a, 0x0}, -+ {0x1246b, 0x0}, -+ {0x1246c, 0x0}, -+ {0x1246d, 0x0}, -+ {0x1246e, 0x0}, -+ {0x1246f, 0x0}, -+ {0x1241c, 0x0}, -+ {0x1241d, 0x0}, -+ {0x1241e, 0x0}, -+ {0x1241f, 0x0}, -+ {0x12524, 0x0}, -+ {0x12525, 0x0}, -+ {0x12526, 0x0}, -+ {0x12527, 0x0}, -+ {0x12510, 0x0}, -+ {0x12511, 0x0}, -+ {0x12512, 0x0}, -+ {0x12513, 0x0}, -+ {0x12568, 0x0}, -+ {0x12569, 0x0}, -+ {0x1256a, 0x0}, -+ {0x1256b, 0x0}, -+ {0x1256c, 0x0}, -+ {0x1256d, 0x0}, -+ {0x1256e, 0x0}, -+ {0x1256f, 0x0}, -+ {0x1251c, 0x0}, -+ {0x1251d, 0x0}, -+ {0x1251e, 0x0}, -+ {0x1251f, 0x0}, -+ {0x12624, 0x0}, -+ {0x12625, 0x0}, -+ {0x12626, 0x0}, -+ {0x12627, 0x0}, -+ {0x12610, 0x0}, -+ {0x12611, 0x0}, -+ {0x12612, 0x0}, -+ {0x12613, 0x0}, -+ {0x12668, 0x0}, -+ {0x12669, 0x0}, -+ {0x1266a, 0x0}, -+ {0x1266b, 0x0}, -+ {0x1266c, 0x0}, -+ {0x1266d, 0x0}, -+ {0x1266e, 0x0}, -+ {0x1266f, 0x0}, -+ {0x1261c, 0x0}, -+ {0x1261d, 0x0}, -+ {0x1261e, 0x0}, -+ {0x1261f, 0x0}, -+ {0x12724, 0x0}, -+ {0x12725, 0x0}, -+ {0x12726, 0x0}, -+ {0x12727, 0x0}, -+ {0x12710, 0x0}, -+ {0x12711, 0x0}, -+ {0x12712, 0x0}, -+ {0x12713, 0x0}, -+ {0x12768, 0x0}, -+ {0x12769, 0x0}, -+ {0x1276a, 0x0}, -+ {0x1276b, 0x0}, -+ {0x1276c, 0x0}, -+ {0x1276d, 0x0}, -+ {0x1276e, 0x0}, -+ {0x1276f, 0x0}, -+ {0x1271c, 0x0}, -+ {0x1271d, 0x0}, -+ {0x1271e, 0x0}, -+ {0x1271f, 0x0}, -+ {0x12824, 0x0}, -+ {0x12825, 0x0}, -+ {0x12826, 0x0}, -+ {0x12827, 0x0}, -+ {0x12810, 0x0}, -+ {0x12811, 0x0}, -+ {0x12812, 0x0}, -+ {0x12813, 0x0}, -+ {0x12868, 0x0}, -+ {0x12869, 0x0}, -+ {0x1286a, 0x0}, -+ {0x1286b, 0x0}, -+ {0x1286c, 0x0}, -+ {0x1286d, 0x0}, -+ {0x1286e, 0x0}, -+ {0x1286f, 0x0}, -+ {0x1281c, 0x0}, -+ {0x1281d, 0x0}, -+ {0x1281e, 0x0}, -+ {0x1281f, 0x0}, -+ {0x1200c, 0x0}, -+ {0x1200d, 0x0}, -+ {0x12015, 0x0}, -+ {0x12016, 0x0}, -+ {0x12019, 0x0}, -+ {0x1201b, 0x0}, -+ {0x12022, 0x0}, -+ {0x12023, 0x0}, -+ {0x120d0, 0x0}, -+ {0x120d1, 0x0}, -+ {0x120d2, 0x0}, -+ {0x120d3, 0x0}, -+ {0x120d4, 0x0}, -+ {0x13000, 0x0}, -+ {0x130ad, 0x0}, -+ {0x130af, 0x0}, -+ {0x13020, 0x0}, -+ {0x13021, 0x0}, -+ {0x13028, 0x0}, -+ {0x13029, 0x0}, -+ {0x13066, 0x0}, -+ {0x13067, 0x0}, -+ {0x1305a, 0x0}, -+ {0x1305b, 0x0}, -+ {0x1305c, 0x0}, -+ {0x1305d, 0x0}, -+ {0x1302a, 0x0}, -+ {0x1302b, 0x0}, -+ {0x13024, 0x0}, -+ {0x13025, 0x0}, -+ {0x13026, 0x0}, -+ {0x13027, 0x0}, -+ {0x13010, 0x0}, -+ {0x13011, 0x0}, -+ {0x13012, 0x0}, -+ {0x13013, 0x0}, -+ {0x13068, 0x0}, -+ {0x13069, 0x0}, -+ {0x1306a, 0x0}, -+ {0x1306b, 0x0}, -+ {0x1306c, 0x0}, -+ {0x1306d, 0x0}, -+ {0x1306e, 0x0}, -+ {0x1306f, 0x0}, -+ {0x1301c, 0x0}, -+ {0x1301d, 0x0}, -+ {0x1301e, 0x0}, -+ {0x1301f, 0x0}, -+ {0x13124, 0x0}, -+ {0x13125, 0x0}, -+ {0x13126, 0x0}, -+ {0x13127, 0x0}, -+ {0x13110, 0x0}, -+ {0x13111, 0x0}, -+ {0x13112, 0x0}, -+ {0x13113, 0x0}, -+ {0x13168, 0x0}, -+ {0x13169, 0x0}, -+ {0x1316a, 0x0}, -+ {0x1316b, 0x0}, -+ {0x1316c, 0x0}, -+ {0x1316d, 0x0}, -+ {0x1316e, 0x0}, -+ {0x1316f, 0x0}, -+ {0x1311c, 0x0}, -+ {0x1311d, 0x0}, -+ {0x1311e, 0x0}, -+ {0x1311f, 0x0}, -+ {0x13224, 0x0}, -+ {0x13225, 0x0}, -+ {0x13226, 0x0}, -+ {0x13227, 0x0}, -+ {0x13210, 0x0}, -+ {0x13211, 0x0}, -+ {0x13212, 0x0}, -+ {0x13213, 0x0}, -+ {0x13268, 0x0}, -+ {0x13269, 0x0}, -+ {0x1326a, 0x0}, -+ {0x1326b, 0x0}, -+ {0x1326c, 0x0}, -+ {0x1326d, 0x0}, -+ {0x1326e, 0x0}, -+ {0x1326f, 0x0}, -+ {0x1321c, 0x0}, -+ {0x1321d, 0x0}, -+ {0x1321e, 0x0}, -+ {0x1321f, 0x0}, -+ {0x13324, 0x0}, -+ {0x13325, 0x0}, -+ {0x13326, 0x0}, -+ {0x13327, 0x0}, -+ {0x13310, 0x0}, -+ {0x13311, 0x0}, -+ {0x13312, 0x0}, -+ {0x13313, 0x0}, -+ {0x13368, 0x0}, -+ {0x13369, 0x0}, -+ {0x1336a, 0x0}, -+ {0x1336b, 0x0}, -+ {0x1336c, 0x0}, -+ {0x1336d, 0x0}, -+ {0x1336e, 0x0}, -+ {0x1336f, 0x0}, -+ {0x1331c, 0x0}, -+ {0x1331d, 0x0}, -+ {0x1331e, 0x0}, -+ {0x1331f, 0x0}, -+ {0x13424, 0x0}, -+ {0x13425, 0x0}, -+ {0x13426, 0x0}, -+ {0x13427, 0x0}, -+ {0x13410, 0x0}, -+ {0x13411, 0x0}, -+ {0x13412, 0x0}, -+ {0x13413, 0x0}, -+ {0x13468, 0x0}, -+ {0x13469, 0x0}, -+ {0x1346a, 0x0}, -+ {0x1346b, 0x0}, -+ {0x1346c, 0x0}, -+ {0x1346d, 0x0}, -+ {0x1346e, 0x0}, -+ {0x1346f, 0x0}, -+ {0x1341c, 0x0}, -+ {0x1341d, 0x0}, -+ {0x1341e, 0x0}, -+ {0x1341f, 0x0}, -+ {0x13524, 0x0}, -+ {0x13525, 0x0}, -+ {0x13526, 0x0}, -+ {0x13527, 0x0}, -+ {0x13510, 0x0}, -+ {0x13511, 0x0}, -+ {0x13512, 0x0}, -+ {0x13513, 0x0}, -+ {0x13568, 0x0}, -+ {0x13569, 0x0}, -+ {0x1356a, 0x0}, -+ {0x1356b, 0x0}, -+ {0x1356c, 0x0}, -+ {0x1356d, 0x0}, -+ {0x1356e, 0x0}, -+ {0x1356f, 0x0}, -+ {0x1351c, 0x0}, -+ {0x1351d, 0x0}, -+ {0x1351e, 0x0}, -+ {0x1351f, 0x0}, -+ {0x13624, 0x0}, -+ {0x13625, 0x0}, -+ {0x13626, 0x0}, -+ {0x13627, 0x0}, -+ {0x13610, 0x0}, -+ {0x13611, 0x0}, -+ {0x13612, 0x0}, -+ {0x13613, 0x0}, -+ {0x13668, 0x0}, -+ {0x13669, 0x0}, -+ {0x1366a, 0x0}, -+ {0x1366b, 0x0}, -+ {0x1366c, 0x0}, -+ {0x1366d, 0x0}, -+ {0x1366e, 0x0}, -+ {0x1366f, 0x0}, -+ {0x1361c, 0x0}, -+ {0x1361d, 0x0}, -+ {0x1361e, 0x0}, -+ {0x1361f, 0x0}, -+ {0x13724, 0x0}, -+ {0x13725, 0x0}, -+ {0x13726, 0x0}, -+ {0x13727, 0x0}, -+ {0x13710, 0x0}, -+ {0x13711, 0x0}, -+ {0x13712, 0x0}, -+ {0x13713, 0x0}, -+ {0x13768, 0x0}, -+ {0x13769, 0x0}, -+ {0x1376a, 0x0}, -+ {0x1376b, 0x0}, -+ {0x1376c, 0x0}, -+ {0x1376d, 0x0}, -+ {0x1376e, 0x0}, -+ {0x1376f, 0x0}, -+ {0x1371c, 0x0}, -+ {0x1371d, 0x0}, -+ {0x1371e, 0x0}, -+ {0x1371f, 0x0}, -+ {0x13824, 0x0}, -+ {0x13825, 0x0}, -+ {0x13826, 0x0}, -+ {0x13827, 0x0}, -+ {0x13810, 0x0}, -+ {0x13811, 0x0}, -+ {0x13812, 0x0}, -+ {0x13813, 0x0}, -+ {0x13868, 0x0}, -+ {0x13869, 0x0}, -+ {0x1386a, 0x0}, -+ {0x1386b, 0x0}, -+ {0x1386c, 0x0}, -+ {0x1386d, 0x0}, -+ {0x1386e, 0x0}, -+ {0x1386f, 0x0}, -+ {0x1381c, 0x0}, -+ {0x1381d, 0x0}, -+ {0x1381e, 0x0}, -+ {0x1381f, 0x0}, -+ {0x1300c, 0x0}, -+ {0x1300d, 0x0}, -+ {0x13015, 0x0}, -+ {0x13016, 0x0}, -+ {0x13019, 0x0}, -+ {0x1301b, 0x0}, -+ {0x13022, 0x0}, -+ {0x13023, 0x0}, -+ {0x130d0, 0x0}, -+ {0x130d1, 0x0}, -+ {0x130d2, 0x0}, -+ {0x130d3, 0x0}, -+ {0x130d4, 0x0}, -+ {0x90807, 0x0}, -+ {0x90808, 0x0}, -+ {0x90813, 0x0}, -+ {0x2004e, 0x0}, -+ {0x2000d, 0x0}, -+ {0x20077, 0x0}, -+}; -+ -+/* PHY Initialize Configuration for Pstate 0 */ -+static struct ddrphy_cfg_param ddr_phy_fsp0_cfg[] = { -+ {0x90802, 0x1}, -+ {0x2004a, 0x601}, -+ {0x2004b, 0x1c3e}, -+ {0x2004c, 0x2e8f}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x101}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20002, 0x2}, -+ {0x20000, 0x2}, -+ {0x90801, 0x4d}, -+ {0x90809, 0x6800}, -+ {0x1005e, 0x366}, -+ {0x10060, 0x366}, -+ {0x10062, 0x366}, -+ {0x10064, 0x366}, -+ {0x1005f, 0x366}, -+ {0x10061, 0x366}, -+ {0x10063, 0x366}, -+ {0x10065, 0x366}, -+ {0x1105e, 0x366}, -+ {0x11060, 0x366}, -+ {0x11062, 0x366}, -+ {0x11064, 0x366}, -+ {0x1105f, 0x366}, -+ {0x11061, 0x366}, -+ {0x11063, 0x366}, -+ {0x11065, 0x366}, -+ {0x1205e, 0x366}, -+ {0x12060, 0x366}, -+ {0x12062, 0x366}, -+ {0x12064, 0x366}, -+ {0x1205f, 0x366}, -+ {0x12061, 0x366}, -+ {0x12063, 0x366}, -+ {0x12065, 0x366}, -+ {0x1305e, 0x366}, -+ {0x13060, 0x366}, -+ {0x13062, 0x366}, -+ {0x13064, 0x366}, -+ {0x1305f, 0x366}, -+ {0x13061, 0x366}, -+ {0x13063, 0x366}, -+ {0x13065, 0x366}, -+ {0x10005, 0x0}, -+ {0x1000b, 0x0}, -+ {0x11005, 0x0}, -+ {0x1100b, 0x0}, -+ {0x12005, 0x0}, -+ {0x1200b, 0x0}, -+ {0x13005, 0x0}, -+ {0x1300b, 0x0}, -+ {0x20007, 0x200}, -+ {0x20013, 0x2c}, -+ {0x30038, 0x3}, -+ {0x30039, 0x3}, -+ {0x3003a, 0x3}, -+ {0x31038, 0x3}, -+ {0x31039, 0x3}, -+ {0x3103a, 0x3}, -+ {0x10038, 0x3}, -+ {0x1003a, 0x3}, -+ {0x11038, 0x3}, -+ {0x1103a, 0x3}, -+ {0x12038, 0x3}, -+ {0x1203a, 0x3}, -+ {0x13038, 0x3}, -+ {0x1303a, 0x3}, -+ {0x1003b, 0x3}, -+ {0x1103b, 0x3}, -+ {0x1203b, 0x3}, -+ {0x1303b, 0x3}, -+ {0x10009, 0x0}, -+ {0x10037, 0x0}, -+ {0x11009, 0x0}, -+ {0x11037, 0x0}, -+ {0x12009, 0x0}, -+ {0x12037, 0x0}, -+ {0x13009, 0x0}, -+ {0x13037, 0x0}, -+ {0x10004, 0x0}, -+ {0x10003, 0x0}, -+ {0x11004, 0x0}, -+ {0x11003, 0x0}, -+ {0x12004, 0x0}, -+ {0x12003, 0x0}, -+ {0x13004, 0x0}, -+ {0x13003, 0x0}, -+ {0x20004, 0x320}, -+ {0x30050, 0x15}, -+ {0x30051, 0x15}, -+ {0x30052, 0x15}, -+ {0x30053, 0x15}, -+ {0x31050, 0x15}, -+ {0x31051, 0x15}, -+ {0x31052, 0x15}, -+ {0x31053, 0x15}, -+ {0x1004e, 0x15}, -+ {0x1004f, 0x15}, -+ {0x10050, 0x15}, -+ {0x10051, 0x15}, -+ {0x1014e, 0x15}, -+ {0x1014f, 0x15}, -+ {0x10150, 0x15}, -+ {0x10151, 0x15}, -+ {0x1024e, 0x15}, -+ {0x1024f, 0x15}, -+ {0x10250, 0x15}, -+ {0x10251, 0x15}, -+ {0x1034e, 0x15}, -+ {0x1034f, 0x15}, -+ {0x10350, 0x15}, -+ {0x10351, 0x15}, -+ {0x1044e, 0x15}, -+ {0x1044f, 0x15}, -+ {0x10450, 0x15}, -+ {0x10451, 0x15}, -+ {0x1054e, 0x15}, -+ {0x1054f, 0x15}, -+ {0x10550, 0x15}, -+ {0x10551, 0x15}, -+ {0x1064e, 0x15}, -+ {0x1064f, 0x15}, -+ {0x10650, 0x15}, -+ {0x10651, 0x15}, -+ {0x1074e, 0x15}, -+ {0x1074f, 0x15}, -+ {0x10750, 0x15}, -+ {0x10751, 0x15}, -+ {0x1084e, 0x15}, -+ {0x1084f, 0x15}, -+ {0x10850, 0x15}, -+ {0x10851, 0x15}, -+ {0x1104e, 0x15}, -+ {0x1104f, 0x15}, -+ {0x11050, 0x15}, -+ {0x11051, 0x15}, -+ {0x1114e, 0x15}, -+ {0x1114f, 0x15}, -+ {0x11150, 0x15}, -+ {0x11151, 0x15}, -+ {0x1124e, 0x15}, -+ {0x1124f, 0x15}, -+ {0x11250, 0x15}, -+ {0x11251, 0x15}, -+ {0x1134e, 0x15}, -+ {0x1134f, 0x15}, -+ {0x11350, 0x15}, -+ {0x11351, 0x15}, -+ {0x1144e, 0x15}, -+ {0x1144f, 0x15}, -+ {0x11450, 0x15}, -+ {0x11451, 0x15}, -+ {0x1154e, 0x15}, -+ {0x1154f, 0x15}, -+ {0x11550, 0x15}, -+ {0x11551, 0x15}, -+ {0x1164e, 0x15}, -+ {0x1164f, 0x15}, -+ {0x11650, 0x15}, -+ {0x11651, 0x15}, -+ {0x1174e, 0x15}, -+ {0x1174f, 0x15}, -+ {0x11750, 0x15}, -+ {0x11751, 0x15}, -+ {0x1184e, 0x15}, -+ {0x1184f, 0x15}, -+ {0x11850, 0x15}, -+ {0x11851, 0x15}, -+ {0x1204e, 0x15}, -+ {0x1204f, 0x15}, -+ {0x12050, 0x15}, -+ {0x12051, 0x15}, -+ {0x1214e, 0x15}, -+ {0x1214f, 0x15}, -+ {0x12150, 0x15}, -+ {0x12151, 0x15}, -+ {0x1224e, 0x15}, -+ {0x1224f, 0x15}, -+ {0x12250, 0x15}, -+ {0x12251, 0x15}, -+ {0x1234e, 0x15}, -+ {0x1234f, 0x15}, -+ {0x12350, 0x15}, -+ {0x12351, 0x15}, -+ {0x1244e, 0x15}, -+ {0x1244f, 0x15}, -+ {0x12450, 0x15}, -+ {0x12451, 0x15}, -+ {0x1254e, 0x15}, -+ {0x1254f, 0x15}, -+ {0x12550, 0x15}, -+ {0x12551, 0x15}, -+ {0x1264e, 0x15}, -+ {0x1264f, 0x15}, -+ {0x12650, 0x15}, -+ {0x12651, 0x15}, -+ {0x1274e, 0x15}, -+ {0x1274f, 0x15}, -+ {0x12750, 0x15}, -+ {0x12751, 0x15}, -+ {0x1284e, 0x15}, -+ {0x1284f, 0x15}, -+ {0x12850, 0x15}, -+ {0x12851, 0x15}, -+ {0x1304e, 0x15}, -+ {0x1304f, 0x15}, -+ {0x13050, 0x15}, -+ {0x13051, 0x15}, -+ {0x1314e, 0x15}, -+ {0x1314f, 0x15}, -+ {0x13150, 0x15}, -+ {0x13151, 0x15}, -+ {0x1324e, 0x15}, -+ {0x1324f, 0x15}, -+ {0x13250, 0x15}, -+ {0x13251, 0x15}, -+ {0x1334e, 0x15}, -+ {0x1334f, 0x15}, -+ {0x13350, 0x15}, -+ {0x13351, 0x15}, -+ {0x1344e, 0x15}, -+ {0x1344f, 0x15}, -+ {0x13450, 0x15}, -+ {0x13451, 0x15}, -+ {0x1354e, 0x15}, -+ {0x1354f, 0x15}, -+ {0x13550, 0x15}, -+ {0x13551, 0x15}, -+ {0x1364e, 0x15}, -+ {0x1364f, 0x15}, -+ {0x13650, 0x15}, -+ {0x13651, 0x15}, -+ {0x1374e, 0x15}, -+ {0x1374f, 0x15}, -+ {0x13750, 0x15}, -+ {0x13751, 0x15}, -+ {0x1384e, 0x15}, -+ {0x1384f, 0x15}, -+ {0x13850, 0x15}, -+ {0x13851, 0x15}, -+ {0x30030, 0x0}, -+ {0x30031, 0x0}, -+ {0x30035, 0x0}, -+ {0x31030, 0x0}, -+ {0x31031, 0x0}, -+ {0x31035, 0x0}, -+ {0x10030, 0x0}, -+ {0x10035, 0x0}, -+ {0x10036, 0x0}, -+ {0x11030, 0x0}, -+ {0x11035, 0x0}, -+ {0x11036, 0x0}, -+ {0x12030, 0x0}, -+ {0x12035, 0x0}, -+ {0x12036, 0x0}, -+ {0x13030, 0x0}, -+ {0x13035, 0x0}, -+ {0x13036, 0x0}, -+ {0x3003c, 0x5}, -+ {0x3103c, 0x5}, -+ {0x1003c, 0x5}, -+ {0x1003d, 0x5}, -+ {0x1003e, 0x5}, -+ {0x1103c, 0x5}, -+ {0x1103d, 0x5}, -+ {0x1103e, 0x5}, -+ {0x1203c, 0x5}, -+ {0x1203d, 0x5}, -+ {0x1203e, 0x5}, -+ {0x1303c, 0x5}, -+ {0x1303d, 0x5}, -+ {0x1303e, 0x5}, -+ {0x20003, 0x1}, -+ {0x10006, 0x2}, -+ {0x11006, 0x2}, -+ {0x12006, 0x2}, -+ {0x13006, 0x2}, -+ {0x20001, 0x1122}, -+ {0x20009, 0x0}, -+ {0x20008, 0x0}, -+ {0x200d9, 0x1}, -+ {0x30eef, 0x0}, -+ {0x31eef, 0x0}, -+ {0x20014, 0x1301}, -+ {0x9080a, 0x1300}, -+ {0x10040, 0xe0e}, -+ {0x10042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x10043, 0x0}, -+ {0x10044, 0xe0e}, -+ {0x10045, 0xe0e}, -+ {0x11040, 0xe0e}, -+ {0x11042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x11043, 0x0}, -+ {0x11044, 0xe0e}, -+ {0x11045, 0xe0e}, -+ {0x12040, 0xe0e}, -+ {0x12042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x12043, 0x0}, -+ {0x12044, 0xe0e}, -+ {0x12045, 0xe0e}, -+ {0x13040, 0xe0e}, -+ {0x13042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x13043, 0x0}, -+ {0x13044, 0xe0e}, -+ {0x13045, 0xe0e}, -+ {0x30040, 0xe0e}, -+ {0x30041, 0xe0e}, -+ {0x30042, 0xe0e}, -+ {0x30043, 0xe0e}, -+ {0x30330, 0x33}, -+ {0x31040, 0xe0e}, -+ {0x31041, 0xe0e}, -+ {0x31042, 0xe0e}, -+ {0x31043, 0xe0e}, -+ {0x31330, 0x33}, -+ {0x20331, 0x33}, -+ {0x10048, 0xc00}, -+ {0x1004a, 0xc00}, -+ {0x1004b, 0xc00}, -+ {0x1004c, 0xe00}, -+ {0x1004d, 0xe00}, -+ {0x11048, 0xc00}, -+ {0x1104a, 0xc00}, -+ {0x1104b, 0xc00}, -+ {0x1104c, 0xe00}, -+ {0x1104d, 0xe00}, -+ {0x12048, 0xc00}, -+ {0x1204a, 0xc00}, -+ {0x1204b, 0xc00}, -+ {0x1204c, 0xe00}, -+ {0x1204d, 0xe00}, -+ {0x13048, 0xc00}, -+ {0x1304a, 0xc00}, -+ {0x1304b, 0xc00}, -+ {0x1304c, 0xe00}, -+ {0x1304d, 0xe00}, -+ {0x30048, 0xc00}, -+ {0x30049, 0xc00}, -+ {0x3004a, 0xc00}, -+ {0x3004b, 0xc00}, -+ {0x31048, 0xc00}, -+ {0x31049, 0xc00}, -+ {0x3104a, 0xc00}, -+ {0x3104b, 0xc00}, -+ {0x30033, 0xcc}, -+ {0x30034, 0xcc}, -+ {0x3002e, 0xcc}, -+ {0x31033, 0xcc}, -+ {0x31034, 0xcc}, -+ {0x3102e, 0xcc}, -+ {0x10033, 0xcc}, -+ {0x1002e, 0xcc}, -+ {0x1002f, 0xcc}, -+ {0x11033, 0xcc}, -+ {0x1102e, 0xcc}, -+ {0x1102f, 0xcc}, -+ {0x12033, 0xcc}, -+ {0x1202e, 0xcc}, -+ {0x1202f, 0xcc}, -+ {0x13033, 0xcc}, -+ {0x1302e, 0xcc}, -+ {0x1302f, 0xcc}, -+ {0x20015, 0x0}, -+ {0x90806, 0x0}, -+ {0x100e8, 0x0}, -+ {0x100e9, 0x15}, -+ {0x110e8, 0x0}, -+ {0x110e9, 0x15}, -+ {0x120e8, 0x0}, -+ {0x120e9, 0x15}, -+ {0x130e8, 0x0}, -+ {0x130e9, 0x15}, -+ {0x10001, 0x0}, -+ {0x11001, 0x0}, -+ {0x12001, 0x0}, -+ {0x13001, 0x0}, -+ {0x20012, 0xa1a1}, -+ {0x20017, 0x40}, -+ {0x2000a, 0x40}, -+ {0x20186, 0xa1}, -+ {0x20187, 0x40}, -+ {0x20010, 0x0}, -+ {0x20011, 0xf}, -+ {0x9080b, 0xf}, -+ {0x9080c, 0xf}, -+ {0x100a5, 0x1}, -+ {0x110a5, 0x1}, -+ {0x120a5, 0x1}, -+ {0x130a5, 0x1}, -+ {0x10014, 0x3232}, -+ {0x11014, 0x3232}, -+ {0x12014, 0x3232}, -+ {0x13014, 0x3232}, -+ {0x1000f, 0x1086}, -+ {0x1100f, 0x1086}, -+ {0x1200f, 0x1086}, -+ {0x1300f, 0x1086}, -+ {0x20035, 0x100c}, -+ {0x20036, 0x100c}, -+ {0x20037, 0x41c}, -+ {0x20037, 0x45c}, -+ {0x20038, 0x1920}, -+ {0x20039, 0x101c}, -+ {0x2003a, 0x101c}, -+ {0x2003b, 0x42c}, -+ {0x2003c, 0x2d30}, -+ {0x2003d, 0x1004}, -+ {0x2003e, 0x1004}, -+ {0x2003f, 0x414}, -+ {0x20040, 0x1118}, -+ {0x2002c, 0x843}, -+ {0x2002d, 0x843}, -+ {0x20030, 0x843}, -+ {0x2002e, 0x81f}, -+ {0x2002f, 0x81f}, -+ {0x2000c, 0x0}, -+ {0x2001b, 0x0}, -+ {0x10007, 0x0}, -+ {0x11007, 0x0}, -+ {0x12007, 0x0}, -+ {0x13007, 0x0}, -+ {0xc0080, 0x3}, -+}; -+ -+/* P0 message block parameter for training firmware */ -+static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { -+ {0x58000, 0x4000}, -+ {0x58002, 0x30}, -+ {0x58003, 0x1900}, -+ {0x58004, 0x4}, -+ {0x58005, 0x4}, -+ {0x58008, 0x17df}, -+ {0x58009, 0xc8}, -+ {0x5800b, 0x2}, -+ {0x5800d, 0x100}, -+ {0x5800e, 0xf}, -+ {0x58012, 0x310}, -+ {0x5801f, 0x1000}, -+ {0x58020, 0x3}, -+ {0x5802d, 0xb0b0}, -+ {0x5802e, 0xb0b0}, -+ {0x5802f, 0xbbbb}, -+ {0x58030, 0xbbbb}, -+ {0x58031, 0x606}, -+ {0x58032, 0x606}, -+ {0x58033, 0x5454}, -+ {0x58034, 0x5454}, -+ {0x58035, 0x4646}, -+ {0x58036, 0x4646}, -+ {0x58037, 0x2d2d}, -+ {0x58038, 0x2d2d}, -+ {0x58039, 0x8080}, -+ {0x5803a, 0x8080}, -+ {0x5803b, 0x1c1c}, -+ {0x5803c, 0x1c1c}, -+ {0x5803d, 0x1c1c}, -+ {0x5803e, 0x1c1c}, -+ {0x58041, 0xac84}, -+ {0x58042, 0xac84}, -+ {0x58043, 0x1b1b}, -+ {0x58044, 0x1b1b}, -+ {0x58045, 0x1010}, -+ {0x58046, 0x1010}, -+ {0x58047, 0x202}, -+ {0x58048, 0x202}, -+ {0x5804f, 0x8080}, -+ {0x58050, 0x8080}, -+ {0x58055, 0x404}, -+ {0x58056, 0x404}, -+ {0x58074, 0x2e}, -+ {0x58075, 0x50}, -+ {0x58080, 0x1}, -+ {0x58081, 0x4b00}, -+ {0x58082, 0x43}, -+}; -+ -+/* DRAM PHY init engine image for Pstate 0 */ -+static struct ddrphy_cfg_param ddr_phy_pie_fsp0_cfg[] = { -+ {0x908f0, 0x65}, -+ {0x908f1, 0x258}, -+ {0x908f2, 0x0}, -+ {0x908f3, 0x58}, -+ {0x908f4, 0x14}, -+ {0x908f5, 0x0}, -+ {0x908f6, 0xb0}, -+ {0x908f7, 0x0}, -+ {0x41008, 0xc9d8}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0xc808}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x2b00}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0xc958}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0xcd88}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x2b00}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0xc0d8}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0xd848}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x2b00}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0xc158}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0xddc8}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x2b00}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0xc1d8}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0xc308}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x2b00}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0xc558}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0xea08}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x2b00}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0xc5d8}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0xe308}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x2b00}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x48d8}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x4248}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x88d8}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x9648}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x2b00}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0xca58}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0xc108}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x2b00}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0xcb58}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0xc008}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x2b00}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0xd4d8}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0xc008}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0x20015, 0x0}, -+ {0x3004a, 0x0}, -+ {0x3004b, 0x0}, -+ {0x3104a, 0x0}, -+ {0x3104b, 0x0}, -+ {0x2004a, 0x1a3e}, -+ {0x2004b, 0x1a3e}, -+ {0x2004c, 0x2c0f}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x101}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20041, 0x1}, -+ {0x90802, 0x0}, -+ {0x20045, 0x2}, -+ {0x10057, 0x0}, -+ {0x11057, 0x0}, -+ {0x12057, 0x0}, -+ {0x13057, 0x0}, -+ {0x1000f, 0x1087}, -+ {0x1100f, 0x1087}, -+ {0x1200f, 0x1087}, -+ {0x1300f, 0x1087}, -+ {0x90803, 0x4}, -+ {0x90804, 0x82}, -+ {0x90805, 0x1}, -+ {0x90903, 0x0}, -+ {0x9090b, 0x2}, -+ {0x90811, 0x0}, -+ {0x90812, 0xff00}, -+ {0x20072, 0x3}, -+ {0x9080e, 0x3}, -+ {0x20073, 0x3}, -+ {0x9080f, 0x3}, -+}; -+ -+/* DRAM PHY init engine image */ -+static struct ddrphy_cfg_param ddr_phy_pie[] = { -+ {0x41000, 0x0}, -+ {0x41001, 0x0}, -+ {0x41002, 0x0}, -+ {0x41003, 0x0}, -+ {0x41004, 0x0}, -+ {0x41005, 0x0}, -+ {0x41006, 0x0}, -+ {0x41007, 0x0}, -+ {0x41388, 0xc028}, -+ {0x41389, 0x0}, -+ {0x4138a, 0x0}, -+ {0x4138b, 0x10}, -+ {0x4138c, 0x0}, -+ {0x4138d, 0x0}, -+ {0x4138e, 0x0}, -+ {0x4138f, 0x0}, -+ {0x41390, 0x0}, -+ {0x41391, 0x0}, -+ {0x41392, 0x0}, -+ {0x41393, 0x400}, -+ {0x41394, 0x0}, -+ {0x41395, 0x0}, -+ {0x41396, 0x0}, -+ {0x41397, 0x0}, -+ {0x41398, 0x0}, -+ {0x41399, 0x0}, -+ {0x4139a, 0x0}, -+ {0x4139b, 0x0}, -+ {0x4139c, 0x0}, -+ {0x4139d, 0x0}, -+ {0x4139e, 0x0}, -+ {0x4139f, 0x0}, -+ {0x413a0, 0xc858}, -+ {0x413a1, 0x0}, -+ {0x413a2, 0x0}, -+ {0x413a3, 0x10}, -+ {0x413a4, 0xe088}, -+ {0x413a5, 0x0}, -+ {0x413a6, 0x0}, -+ {0x413a7, 0x10}, -+ {0x413a8, 0xe038}, -+ {0x413a9, 0x0}, -+ {0x413aa, 0x0}, -+ {0x413ab, 0x10}, -+ {0x413ac, 0xc858}, -+ {0x413ad, 0x0}, -+ {0x413ae, 0x0}, -+ {0x413af, 0x10}, -+ {0x413b0, 0xc088}, -+ {0x413b1, 0x0}, -+ {0x413b2, 0x0}, -+ {0x413b3, 0x10}, -+ {0x413b4, 0x0}, -+ {0x413b5, 0x0}, -+ {0x413b6, 0x0}, -+ {0x413b7, 0x0}, -+ {0x413b8, 0xc028}, -+ {0x413b9, 0x0}, -+ {0x413ba, 0x0}, -+ {0x413bb, 0x10}, -+ {0x413bc, 0x0}, -+ {0x413bd, 0x0}, -+ {0x413be, 0x0}, -+ {0x413bf, 0x0}, -+ {0x413c0, 0x0}, -+ {0x413c1, 0x0}, -+ {0x413c2, 0x0}, -+ {0x413c3, 0x400}, -+ {0x413c4, 0x0}, -+ {0x413c5, 0x0}, -+ {0x413c6, 0x0}, -+ {0x413c7, 0x0}, -+ {0x413c8, 0x0}, -+ {0x413c9, 0x0}, -+ {0x413ca, 0x0}, -+ {0x413cb, 0x0}, -+ {0x413cc, 0x0}, -+ {0x413cd, 0x0}, -+ {0x413ce, 0x0}, -+ {0x413cf, 0x0}, -+ {0x413d0, 0xc858}, -+ {0x413d1, 0x0}, -+ {0x413d2, 0x0}, -+ {0x413d3, 0x10}, -+ {0x413d4, 0xe208}, -+ {0x413d5, 0x0}, -+ {0x413d6, 0x0}, -+ {0x413d7, 0x10}, -+ {0x413d8, 0xe038}, -+ {0x413d9, 0x0}, -+ {0x413da, 0x0}, -+ {0x413db, 0x10}, -+ {0x413dc, 0xc858}, -+ {0x413dd, 0x0}, -+ {0x413de, 0x0}, -+ {0x413df, 0x10}, -+ {0x413e0, 0xc208}, -+ {0x413e1, 0x0}, -+ {0x413e2, 0x0}, -+ {0x413e3, 0x10}, -+ {0x413e4, 0x0}, -+ {0x413e5, 0x0}, -+ {0x413e6, 0x0}, -+ {0x413e7, 0x0}, -+ {0x413e8, 0xce58}, -+ {0x413e9, 0x0}, -+ {0x413ea, 0x0}, -+ {0x413eb, 0x10}, -+ {0x413ec, 0xc208}, -+ {0x413ed, 0x0}, -+ {0x413ee, 0x0}, -+ {0x413ef, 0x10}, -+ {0x413f0, 0x0}, -+ {0x413f1, 0x0}, -+ {0x413f2, 0x0}, -+ {0x413f3, 0x0}, -+ {0x413f4, 0x0}, -+ {0x413f5, 0x0}, -+ {0x413f6, 0x0}, -+ {0x413f7, 0x0}, -+ {0x413f8, 0xc370}, -+ {0x413f9, 0x0}, -+ {0x413fa, 0x0}, -+ {0x413fb, 0x10}, -+ {0x413fc, 0x0}, -+ {0x413fd, 0x0}, -+ {0x413fe, 0x0}, -+ {0x413ff, 0x0}, -+ {0x41400, 0xc040}, -+ {0x41401, 0x0}, -+ {0x41402, 0x0}, -+ {0x41403, 0x10}, -+ {0x41404, 0x0}, -+ {0x41405, 0x0}, -+ {0x41406, 0x0}, -+ {0x41407, 0x10}, -+ {0x41408, 0xd2d8}, -+ {0x41409, 0x0}, -+ {0x4140a, 0x0}, -+ {0x4140b, 0x10}, -+ {0x4140c, 0xe008}, -+ {0x4140d, 0x0}, -+ {0x4140e, 0x0}, -+ {0x4140f, 0x10}, -+ {0x41410, 0x0}, -+ {0x41411, 0x0}, -+ {0x41412, 0x0}, -+ {0x41413, 0x5b00}, -+ {0x41414, 0x0}, -+ {0x41415, 0x0}, -+ {0x41416, 0x0}, -+ {0x41417, 0x0}, -+ {0x41418, 0xc0f0}, -+ {0x41419, 0x0}, -+ {0x4141a, 0x0}, -+ {0x4141b, 0x10}, -+ {0x4141c, 0x0}, -+ {0x4141d, 0x0}, -+ {0x4141e, 0x0}, -+ {0x4141f, 0x0}, -+ {0x41420, 0xcfd8}, -+ {0x41421, 0x0}, -+ {0x41422, 0x0}, -+ {0x41423, 0x10}, -+ {0x41424, 0xc008}, -+ {0x41425, 0x0}, -+ {0x41426, 0x0}, -+ {0x41427, 0x10}, -+ {0x41428, 0x0}, -+ {0x41429, 0x0}, -+ {0x4142a, 0x0}, -+ {0x4142b, 0x2b00}, -+ {0x4142c, 0x0}, -+ {0x4142d, 0x0}, -+ {0x4142e, 0x0}, -+ {0x4142f, 0x0}, -+ {0x41430, 0xd058}, -+ {0x41431, 0x0}, -+ {0x41432, 0x0}, -+ {0x41433, 0x10}, -+ {0x41434, 0xc008}, -+ {0x41435, 0x0}, -+ {0x41436, 0x0}, -+ {0x41437, 0x10}, -+ {0x41438, 0x0}, -+ {0x41439, 0x0}, -+ {0x4143a, 0x0}, -+ {0x4143b, 0x2b00}, -+ {0x4143c, 0x0}, -+ {0x4143d, 0x0}, -+ {0x4143e, 0x0}, -+ {0x4143f, 0x0}, -+ {0x41440, 0xd0d8}, -+ {0x41441, 0x0}, -+ {0x41442, 0x0}, -+ {0x41443, 0x10}, -+ {0x41444, 0xc088}, -+ {0x41445, 0x0}, -+ {0x41446, 0x0}, -+ {0x41447, 0x10}, -+ {0x41448, 0x0}, -+ {0x41449, 0x0}, -+ {0x4144a, 0x0}, -+ {0x4144b, 0x2b00}, -+ {0x4144c, 0x0}, -+ {0x4144d, 0x0}, -+ {0x4144e, 0x0}, -+ {0x4144f, 0x0}, -+ {0x41450, 0xd158}, -+ {0x41451, 0x0}, -+ {0x41452, 0x0}, -+ {0x41453, 0x10}, -+ {0x41454, 0xc008}, -+ {0x41455, 0x0}, -+ {0x41456, 0x0}, -+ {0x41457, 0x10}, -+ {0x41458, 0x0}, -+ {0x41459, 0x0}, -+ {0x4145a, 0x0}, -+ {0x4145b, 0x5b00}, -+ {0x4145c, 0x0}, -+ {0x4145d, 0x0}, -+ {0x4145e, 0x0}, -+ {0x4145f, 0x0}, -+ {0x41460, 0x402c}, -+ {0x41461, 0xd00}, -+ {0x41462, 0x1}, -+ {0x41463, 0x400}, -+ {0x41464, 0x4050}, -+ {0x41465, 0x800}, -+ {0x41466, 0x0}, -+ {0x41467, 0x0}, -+ {0x41468, 0x0}, -+ {0x41469, 0x0}, -+ {0x4146a, 0x0}, -+ {0x4146b, 0x400}, -+ {0x4146c, 0x0}, -+ {0x4146d, 0x0}, -+ {0x4146e, 0x0}, -+ {0x4146f, 0x0}, -+ {0x41470, 0x0}, -+ {0x41471, 0x0}, -+ {0x41472, 0x0}, -+ {0x41473, 0x400}, -+ {0x41474, 0x4050}, -+ {0x41475, 0x803}, -+ {0x41476, 0x0}, -+ {0x41477, 0x0}, -+ {0x41478, 0x0}, -+ {0x41479, 0x0}, -+ {0x4147a, 0x0}, -+ {0x4147b, 0x7f00}, -+ {0x4147c, 0x0}, -+ {0x4147d, 0x0}, -+ {0x4147e, 0x0}, -+ {0x4147f, 0x400}, -+ {0x41480, 0x407c}, -+ {0x41481, 0x0}, -+ {0x41482, 0x0}, -+ {0x41483, 0x400}, -+ {0x41484, 0x0}, -+ {0x41485, 0x0}, -+ {0x41486, 0x0}, -+ {0x41487, 0x0}, -+ {0x41488, 0x0}, -+ {0x41489, 0x0}, -+ {0x4148a, 0x0}, -+ {0x4148b, 0x400}, -+ {0x4148c, 0x0}, -+ {0x4148d, 0x0}, -+ {0x4148e, 0x1}, -+ {0x4148f, 0x0}, -+ {0x41490, 0x0}, -+ {0x41491, 0x0}, -+ {0x41492, 0x0}, -+ {0x41493, 0x400}, -+ {0x41494, 0x0}, -+ {0x41495, 0x0}, -+ {0x41496, 0x0}, -+ {0x41497, 0x0}, -+ {0x41498, 0x0}, -+ {0x41499, 0x0}, -+ {0x4149a, 0x0}, -+ {0x4149b, 0x0}, -+ {0x4149c, 0x0}, -+ {0x4149d, 0x0}, -+ {0x4149e, 0x0}, -+ {0x4149f, 0x0}, -+ {0x414a0, 0x802c}, -+ {0x414a1, 0xd00}, -+ {0x414a2, 0x1}, -+ {0x414a3, 0x410}, -+ {0x414a4, 0x8050}, -+ {0x414a5, 0x800}, -+ {0x414a6, 0x0}, -+ {0x414a7, 0x10}, -+ {0x414a8, 0x0}, -+ {0x414a9, 0x0}, -+ {0x414aa, 0x0}, -+ {0x414ab, 0x400}, -+ {0x414ac, 0x0}, -+ {0x414ad, 0x0}, -+ {0x414ae, 0x0}, -+ {0x414af, 0x0}, -+ {0x414b0, 0x0}, -+ {0x414b1, 0x0}, -+ {0x414b2, 0x0}, -+ {0x414b3, 0x400}, -+ {0x414b4, 0x8050}, -+ {0x414b5, 0x803}, -+ {0x414b6, 0x0}, -+ {0x414b7, 0x10}, -+ {0x414b8, 0x0}, -+ {0x414b9, 0x0}, -+ {0x414ba, 0x0}, -+ {0x414bb, 0x7f00}, -+ {0x414bc, 0x0}, -+ {0x414bd, 0x0}, -+ {0x414be, 0x0}, -+ {0x414bf, 0x400}, -+ {0x414c0, 0x807c}, -+ {0x414c1, 0x0}, -+ {0x414c2, 0x0}, -+ {0x414c3, 0x410}, -+ {0x414c4, 0x0}, -+ {0x414c5, 0x0}, -+ {0x414c6, 0x0}, -+ {0x414c7, 0x0}, -+ {0x414c8, 0x0}, -+ {0x414c9, 0x0}, -+ {0x414ca, 0x0}, -+ {0x414cb, 0x400}, -+ {0x414cc, 0x0}, -+ {0x414cd, 0x0}, -+ {0x414ce, 0x1}, -+ {0x414cf, 0x0}, -+ {0x414d0, 0x0}, -+ {0x414d1, 0x0}, -+ {0x414d2, 0x0}, -+ {0x414d3, 0x400}, -+ {0x414d4, 0x0}, -+ {0x414d5, 0x0}, -+ {0x414d6, 0x0}, -+ {0x414d7, 0x0}, -+ {0x414d8, 0x0}, -+ {0x414d9, 0x0}, -+ {0x414da, 0x0}, -+ {0x414db, 0x0}, -+ {0x414dc, 0x0}, -+ {0x414dd, 0x0}, -+ {0x414de, 0x0}, -+ {0x414df, 0x0}, -+ {0x414e0, 0x402c}, -+ {0x414e1, 0xd00}, -+ {0x414e2, 0x1}, -+ {0x414e3, 0x0}, -+ {0x414e4, 0x4050}, -+ {0x414e5, 0x800}, -+ {0x414e6, 0x0}, -+ {0x414e7, 0x0}, -+ {0x414e8, 0x0}, -+ {0x414e9, 0x0}, -+ {0x414ea, 0x0}, -+ {0x414eb, 0x0}, -+ {0x414ec, 0x0}, -+ {0x414ed, 0x0}, -+ {0x414ee, 0x0}, -+ {0x414ef, 0x0}, -+ {0x414f0, 0x0}, -+ {0x414f1, 0x0}, -+ {0x414f2, 0x0}, -+ {0x414f3, 0x0}, -+ {0x414f4, 0x4050}, -+ {0x414f5, 0x803}, -+ {0x414f6, 0x0}, -+ {0x414f7, 0x0}, -+ {0x414f8, 0x0}, -+ {0x414f9, 0x0}, -+ {0x414fa, 0x0}, -+ {0x414fb, 0x0}, -+ {0x414fc, 0x0}, -+ {0x414fd, 0x0}, -+ {0x414fe, 0x0}, -+ {0x414ff, 0x0}, -+ {0x41500, 0x0}, -+ {0x41501, 0x0}, -+ {0x41502, 0x0}, -+ {0x41503, 0x0}, -+ {0x41504, 0x4050}, -+ {0x41505, 0x800}, -+ {0x41506, 0x0}, -+ {0x41507, 0x0}, -+ {0x41508, 0x0}, -+ {0x41509, 0x0}, -+ {0x4150a, 0x0}, -+ {0x4150b, 0x6b00}, -+ {0x4150c, 0x0}, -+ {0x4150d, 0x0}, -+ {0x4150e, 0x0}, -+ {0x4150f, 0x400}, -+ {0x41510, 0x0}, -+ {0x41511, 0x0}, -+ {0x41512, 0x0}, -+ {0x41513, 0x0}, -+ {0x41514, 0x407c}, -+ {0x41515, 0x0}, -+ {0x41516, 0x0}, -+ {0x41517, 0x0}, -+ {0x41518, 0x0}, -+ {0x41519, 0x0}, -+ {0x4151a, 0x0}, -+ {0x4151b, 0x0}, -+ {0x4151c, 0x0}, -+ {0x4151d, 0x0}, -+ {0x4151e, 0x0}, -+ {0x4151f, 0x0}, -+ {0x41520, 0x0}, -+ {0x41521, 0x0}, -+ {0x41522, 0x1}, -+ {0x41523, 0x0}, -+ {0x41524, 0x0}, -+ {0x41525, 0x0}, -+ {0x41526, 0x0}, -+ {0x41527, 0x0}, -+ {0x41528, 0x0}, -+ {0x41529, 0x0}, -+ {0x4152a, 0x0}, -+ {0x4152b, 0x4b00}, -+ {0x4152c, 0x0}, -+ {0x4152d, 0x0}, -+ {0x4152e, 0x0}, -+ {0x4152f, 0x1800}, -+ {0x41530, 0x0}, -+ {0x41531, 0x0}, -+ {0x41532, 0x0}, -+ {0x41533, 0x0}, -+ {0x41534, 0x802c}, -+ {0x41535, 0xd00}, -+ {0x41536, 0x1}, -+ {0x41537, 0x10}, -+ {0x41538, 0x8050}, -+ {0x41539, 0x800}, -+ {0x4153a, 0x0}, -+ {0x4153b, 0x10}, -+ {0x4153c, 0x0}, -+ {0x4153d, 0x0}, -+ {0x4153e, 0x0}, -+ {0x4153f, 0x0}, -+ {0x41540, 0x0}, -+ {0x41541, 0x0}, -+ {0x41542, 0x0}, -+ {0x41543, 0x0}, -+ {0x41544, 0x0}, -+ {0x41545, 0x0}, -+ {0x41546, 0x0}, -+ {0x41547, 0x0}, -+ {0x41548, 0x8050}, -+ {0x41549, 0x803}, -+ {0x4154a, 0x0}, -+ {0x4154b, 0x10}, -+ {0x4154c, 0x0}, -+ {0x4154d, 0x0}, -+ {0x4154e, 0x0}, -+ {0x4154f, 0x0}, -+ {0x41550, 0x0}, -+ {0x41551, 0x0}, -+ {0x41552, 0x0}, -+ {0x41553, 0x0}, -+ {0x41554, 0x0}, -+ {0x41555, 0x0}, -+ {0x41556, 0x0}, -+ {0x41557, 0x0}, -+ {0x41558, 0x8050}, -+ {0x41559, 0x800}, -+ {0x4155a, 0x0}, -+ {0x4155b, 0x10}, -+ {0x4155c, 0x0}, -+ {0x4155d, 0x0}, -+ {0x4155e, 0x0}, -+ {0x4155f, 0x0}, -+ {0x41560, 0x0}, -+ {0x41561, 0x0}, -+ {0x41562, 0x0}, -+ {0x41563, 0x6b00}, -+ {0x41564, 0x0}, -+ {0x41565, 0x0}, -+ {0x41566, 0x0}, -+ {0x41567, 0x400}, -+ {0x41568, 0x807c}, -+ {0x41569, 0x0}, -+ {0x4156a, 0x0}, -+ {0x4156b, 0x10}, -+ {0x4156c, 0x0}, -+ {0x4156d, 0x0}, -+ {0x4156e, 0x0}, -+ {0x4156f, 0x0}, -+ {0x41570, 0x0}, -+ {0x41571, 0x0}, -+ {0x41572, 0x0}, -+ {0x41573, 0x0}, -+ {0x41574, 0x0}, -+ {0x41575, 0x0}, -+ {0x41576, 0x1}, -+ {0x41577, 0x0}, -+ {0x41578, 0x0}, -+ {0x41579, 0x0}, -+ {0x4157a, 0x0}, -+ {0x4157b, 0x7b00}, -+ {0x4157c, 0x0}, -+ {0x4157d, 0x0}, -+ {0x4157e, 0x0}, -+ {0x4157f, 0x2000}, -+ {0x41580, 0x402c}, -+ {0x41581, 0xd00}, -+ {0x41582, 0x1}, -+ {0x41583, 0x0}, -+ {0x41584, 0x5198}, -+ {0x41585, 0x803}, -+ {0x41586, 0x0}, -+ {0x41587, 0x0}, -+ {0x41588, 0x0}, -+ {0x41589, 0x0}, -+ {0x4158a, 0x0}, -+ {0x4158b, 0x3b00}, -+ {0x4158c, 0x0}, -+ {0x4158d, 0x0}, -+ {0x4158e, 0x0}, -+ {0x4158f, 0x0}, -+ {0x41590, 0x5218}, -+ {0x41591, 0x803}, -+ {0x41592, 0x0}, -+ {0x41593, 0x0}, -+ {0x41594, 0x0}, -+ {0x41595, 0x0}, -+ {0x41596, 0x0}, -+ {0x41597, 0x0}, -+ {0x41598, 0x0}, -+ {0x41599, 0x0}, -+ {0x4159a, 0x0}, -+ {0x4159b, 0x6b00}, -+ {0x4159c, 0x0}, -+ {0x4159d, 0x0}, -+ {0x4159e, 0x0}, -+ {0x4159f, 0x400}, -+ {0x415a0, 0x407c}, -+ {0x415a1, 0x0}, -+ {0x415a2, 0x0}, -+ {0x415a3, 0x0}, -+ {0x415a4, 0x0}, -+ {0x415a5, 0x0}, -+ {0x415a6, 0x0}, -+ {0x415a7, 0x0}, -+ {0x415a8, 0x0}, -+ {0x415a9, 0x0}, -+ {0x415aa, 0x0}, -+ {0x415ab, 0x0}, -+ {0x415ac, 0x0}, -+ {0x415ad, 0x0}, -+ {0x415ae, 0x1}, -+ {0x415af, 0x0}, -+ {0x415b0, 0x0}, -+ {0x415b1, 0x0}, -+ {0x415b2, 0x0}, -+ {0x415b3, 0x1b00}, -+ {0x415b4, 0x0}, -+ {0x415b5, 0x0}, -+ {0x415b6, 0x0}, -+ {0x415b7, 0x0}, -+ {0x415b8, 0x0}, -+ {0x415b9, 0x0}, -+ {0x415ba, 0x0}, -+ {0x415bb, 0x0}, -+ {0x415bc, 0x802c}, -+ {0x415bd, 0xd00}, -+ {0x415be, 0x1}, -+ {0x415bf, 0x10}, -+ {0x415c0, 0x9198}, -+ {0x415c1, 0x803}, -+ {0x415c2, 0x0}, -+ {0x415c3, 0x10}, -+ {0x415c4, 0x0}, -+ {0x415c5, 0x0}, -+ {0x415c6, 0x0}, -+ {0x415c7, 0x0}, -+ {0x415c8, 0x0}, -+ {0x415c9, 0x0}, -+ {0x415ca, 0x0}, -+ {0x415cb, 0x2b00}, -+ {0x415cc, 0x0}, -+ {0x415cd, 0x0}, -+ {0x415ce, 0x0}, -+ {0x415cf, 0x0}, -+ {0x415d0, 0x0}, -+ {0x415d1, 0x0}, -+ {0x415d2, 0x0}, -+ {0x415d3, 0x0}, -+ {0x415d4, 0x9218}, -+ {0x415d5, 0x803}, -+ {0x415d6, 0x0}, -+ {0x415d7, 0x10}, -+ {0x415d8, 0x0}, -+ {0x415d9, 0x0}, -+ {0x415da, 0x0}, -+ {0x415db, 0x6b00}, -+ {0x415dc, 0x0}, -+ {0x415dd, 0x0}, -+ {0x415de, 0x0}, -+ {0x415df, 0x400}, -+ {0x415e0, 0x0}, -+ {0x415e1, 0x0}, -+ {0x415e2, 0x0}, -+ {0x415e3, 0x0}, -+ {0x415e4, 0x807c}, -+ {0x415e5, 0x0}, -+ {0x415e6, 0x0}, -+ {0x415e7, 0x10}, -+ {0x415e8, 0x0}, -+ {0x415e9, 0x0}, -+ {0x415ea, 0x0}, -+ {0x415eb, 0x0}, -+ {0x415ec, 0x0}, -+ {0x415ed, 0x0}, -+ {0x415ee, 0x0}, -+ {0x415ef, 0x0}, -+ {0x415f0, 0x0}, -+ {0x415f1, 0x0}, -+ {0x415f2, 0x1}, -+ {0x415f3, 0x0}, -+ {0x415f4, 0x0}, -+ {0x415f5, 0x0}, -+ {0x415f6, 0x0}, -+ {0x415f7, 0x0}, -+ {0x415f8, 0x0}, -+ {0x415f9, 0x0}, -+ {0x415fa, 0x0}, -+ {0x415fb, 0xb00}, -+ {0x415fc, 0x0}, -+ {0x415fd, 0x0}, -+ {0x415fe, 0x0}, -+ {0x415ff, 0x400}, -+ {0x41600, 0x0}, -+ {0x41601, 0x0}, -+ {0x41602, 0x0}, -+ {0x41603, 0x0}, -+ {0x41604, 0x0}, -+ {0x41605, 0x0}, -+ {0x41606, 0x0}, -+ {0x41607, 0x0}, -+ {0x41608, 0x401c}, -+ {0x41609, 0xd0}, -+ {0x4160a, 0x1}, -+ {0x4160b, 0x0}, -+ {0x4160c, 0x4060}, -+ {0x4160d, 0x84}, -+ {0x4160e, 0x0}, -+ {0x4160f, 0x0}, -+ {0x41610, 0x0}, -+ {0x41611, 0x0}, -+ {0x41612, 0x0}, -+ {0x41613, 0xb00}, -+ {0x41614, 0x0}, -+ {0x41615, 0x0}, -+ {0x41616, 0x0}, -+ {0x41617, 0x800}, -+ {0x41618, 0x407c}, -+ {0x41619, 0x0}, -+ {0x4161a, 0x0}, -+ {0x4161b, 0x0}, -+ {0x4161c, 0x0}, -+ {0x4161d, 0x0}, -+ {0x4161e, 0x0}, -+ {0x4161f, 0x0}, -+ {0x41620, 0x0}, -+ {0x41621, 0x0}, -+ {0x41622, 0x0}, -+ {0x41623, 0x0}, -+ {0x41624, 0x4000}, -+ {0x41625, 0x0}, -+ {0x41626, 0x1}, -+ {0x41627, 0x0}, -+ {0x41628, 0x0}, -+ {0x41629, 0x0}, -+ {0x4162a, 0x0}, -+ {0x4162b, 0x0}, -+ {0x4162c, 0x402c}, -+ {0x4162d, 0xd00}, -+ {0x4162e, 0x1}, -+ {0x4162f, 0x0}, -+ {0x41630, 0x4020}, -+ {0x41631, 0x803}, -+ {0x41632, 0x0}, -+ {0x41633, 0x0}, -+ {0x41634, 0x0}, -+ {0x41635, 0x0}, -+ {0x41636, 0x0}, -+ {0x41637, 0x0}, -+ {0x41638, 0x0}, -+ {0x41639, 0x0}, -+ {0x4163a, 0x0}, -+ {0x4163b, 0x2b00}, -+ {0x4163c, 0x0}, -+ {0x4163d, 0x0}, -+ {0x4163e, 0x0}, -+ {0x4163f, 0x800}, -+ {0x41640, 0x0}, -+ {0x41641, 0x0}, -+ {0x41642, 0x0}, -+ {0x41643, 0x0}, -+ {0x41644, 0x407c}, -+ {0x41645, 0x0}, -+ {0x41646, 0x0}, -+ {0x41647, 0x0}, -+ {0x41648, 0x0}, -+ {0x41649, 0x0}, -+ {0x4164a, 0x0}, -+ {0x4164b, 0x0}, -+ {0x4164c, 0x0}, -+ {0x4164d, 0x0}, -+ {0x4164e, 0x0}, -+ {0x4164f, 0x0}, -+ {0x41650, 0x0}, -+ {0x41651, 0x0}, -+ {0x41652, 0x1}, -+ {0x41653, 0x0}, -+ {0x41654, 0x0}, -+ {0x41655, 0x0}, -+ {0x41656, 0x0}, -+ {0x41657, 0x0}, -+ {0x41658, 0x801c}, -+ {0x41659, 0xd0}, -+ {0x4165a, 0x1}, -+ {0x4165b, 0x10}, -+ {0x4165c, 0x8060}, -+ {0x4165d, 0x84}, -+ {0x4165e, 0x0}, -+ {0x4165f, 0x10}, -+ {0x41660, 0x0}, -+ {0x41661, 0x0}, -+ {0x41662, 0x0}, -+ {0x41663, 0xb00}, -+ {0x41664, 0x0}, -+ {0x41665, 0x0}, -+ {0x41666, 0x0}, -+ {0x41667, 0x800}, -+ {0x41668, 0x807c}, -+ {0x41669, 0x0}, -+ {0x4166a, 0x0}, -+ {0x4166b, 0x10}, -+ {0x4166c, 0x0}, -+ {0x4166d, 0x0}, -+ {0x4166e, 0x0}, -+ {0x4166f, 0x0}, -+ {0x41670, 0x0}, -+ {0x41671, 0x0}, -+ {0x41672, 0x0}, -+ {0x41673, 0x0}, -+ {0x41674, 0x8000}, -+ {0x41675, 0x0}, -+ {0x41676, 0x1}, -+ {0x41677, 0x10}, -+ {0x41678, 0x0}, -+ {0x41679, 0x0}, -+ {0x4167a, 0x0}, -+ {0x4167b, 0x0}, -+ {0x4167c, 0x802c}, -+ {0x4167d, 0xd00}, -+ {0x4167e, 0x1}, -+ {0x4167f, 0x10}, -+ {0x41680, 0x8020}, -+ {0x41681, 0x803}, -+ {0x41682, 0x0}, -+ {0x41683, 0x10}, -+ {0x41684, 0x0}, -+ {0x41685, 0x0}, -+ {0x41686, 0x0}, -+ {0x41687, 0x0}, -+ {0x41688, 0x0}, -+ {0x41689, 0x0}, -+ {0x4168a, 0x0}, -+ {0x4168b, 0x2b00}, -+ {0x4168c, 0x0}, -+ {0x4168d, 0x0}, -+ {0x4168e, 0x0}, -+ {0x4168f, 0x800}, -+ {0x41690, 0x0}, -+ {0x41691, 0x0}, -+ {0x41692, 0x0}, -+ {0x41693, 0x0}, -+ {0x41694, 0x807c}, -+ {0x41695, 0x0}, -+ {0x41696, 0x0}, -+ {0x41697, 0x10}, -+ {0x41698, 0x0}, -+ {0x41699, 0x0}, -+ {0x4169a, 0x0}, -+ {0x4169b, 0x0}, -+ {0x4169c, 0x0}, -+ {0x4169d, 0x0}, -+ {0x4169e, 0x0}, -+ {0x4169f, 0x0}, -+ {0x416a0, 0x0}, -+ {0x416a1, 0x0}, -+ {0x416a2, 0x1}, -+ {0x416a3, 0x0}, -+ {0x416a4, 0x0}, -+ {0x416a5, 0x0}, -+ {0x416a6, 0x0}, -+ {0x416a7, 0x0}, -+ {0x416a8, 0x402c}, -+ {0x416a9, 0xd00}, -+ {0x416aa, 0x1}, -+ {0x416ab, 0x0}, -+ {0x416ac, 0x4050}, -+ {0x416ad, 0x803}, -+ {0x416ae, 0x0}, -+ {0x416af, 0x0}, -+ {0x416b0, 0x0}, -+ {0x416b1, 0x0}, -+ {0x416b2, 0x0}, -+ {0x416b3, 0x1b00}, -+ {0x416b4, 0x0}, -+ {0x416b5, 0x0}, -+ {0x416b6, 0x0}, -+ {0x416b7, 0x0}, -+ {0x416b8, 0x0}, -+ {0x416b9, 0x0}, -+ {0x416ba, 0x0}, -+ {0x416bb, 0x0}, -+ {0x416bc, 0x0}, -+ {0x416bd, 0x0}, -+ {0x416be, 0x0}, -+ {0x416bf, 0x0}, -+ {0x416c0, 0x4050}, -+ {0x416c1, 0x803}, -+ {0x416c2, 0x0}, -+ {0x416c3, 0x5a00}, -+ {0x416c4, 0x0}, -+ {0x416c5, 0x0}, -+ {0x416c6, 0x0}, -+ {0x416c7, 0x0}, -+ {0x416c8, 0x0}, -+ {0x416c9, 0x0}, -+ {0x416ca, 0x0}, -+ {0x416cb, 0x0}, -+ {0x416cc, 0x0}, -+ {0x416cd, 0x0}, -+ {0x416ce, 0x0}, -+ {0x416cf, 0x0}, -+ {0x416d0, 0x0}, -+ {0x416d1, 0x0}, -+ {0x416d2, 0x0}, -+ {0x416d3, 0x100}, -+ {0x416d4, 0x0}, -+ {0x416d5, 0x0}, -+ {0x416d6, 0x0}, -+ {0x416d7, 0x0}, -+ {0x416d8, 0x4050}, -+ {0x416d9, 0x803}, -+ {0x416da, 0x0}, -+ {0x416db, 0x0}, -+ {0x416dc, 0x0}, -+ {0x416dd, 0x0}, -+ {0x416de, 0x0}, -+ {0x416df, 0x0}, -+ {0x416e0, 0x0}, -+ {0x416e1, 0x0}, -+ {0x416e2, 0x0}, -+ {0x416e3, 0x6b00}, -+ {0x416e4, 0x0}, -+ {0x416e5, 0x0}, -+ {0x416e6, 0x0}, -+ {0x416e7, 0x400}, -+ {0x416e8, 0x407c}, -+ {0x416e9, 0x0}, -+ {0x416ea, 0x0}, -+ {0x416eb, 0x0}, -+ {0x416ec, 0x0}, -+ {0x416ed, 0x0}, -+ {0x416ee, 0x0}, -+ {0x416ef, 0x0}, -+ {0x416f0, 0x0}, -+ {0x416f1, 0x0}, -+ {0x416f2, 0x0}, -+ {0x416f3, 0x3b00}, -+ {0x416f4, 0x0}, -+ {0x416f5, 0x0}, -+ {0x416f6, 0x0}, -+ {0x416f7, 0x0}, -+ {0x416f8, 0x0}, -+ {0x416f9, 0x0}, -+ {0x416fa, 0x0}, -+ {0x416fb, 0x0}, -+ {0x416fc, 0x0}, -+ {0x416fd, 0x0}, -+ {0x416fe, 0x1}, -+ {0x416ff, 0x0}, -+ {0x41700, 0x5758}, -+ {0x41701, 0x0}, -+ {0x41702, 0x0}, -+ {0x41703, 0x0}, -+ {0x41704, 0x4208}, -+ {0x41705, 0x0}, -+ {0x41706, 0x0}, -+ {0x41707, 0x0}, -+ {0x41708, 0x0}, -+ {0x41709, 0x0}, -+ {0x4170a, 0x0}, -+ {0x4170b, 0x4b00}, -+ {0x4170c, 0x0}, -+ {0x4170d, 0x0}, -+ {0x4170e, 0x0}, -+ {0x4170f, 0x0}, -+ {0x41710, 0x0}, -+ {0x41711, 0x0}, -+ {0x41712, 0x0}, -+ {0x41713, 0x0}, -+ {0x41714, 0x401c}, -+ {0x41715, 0xd0}, -+ {0x41716, 0x1}, -+ {0x41717, 0x0}, -+ {0x41718, 0x4060}, -+ {0x41719, 0x84}, -+ {0x4171a, 0x0}, -+ {0x4171b, 0x0}, -+ {0x4171c, 0x0}, -+ {0x4171d, 0x0}, -+ {0x4171e, 0x0}, -+ {0x4171f, 0x0}, -+ {0x41720, 0x0}, -+ {0x41721, 0x0}, -+ {0x41722, 0x0}, -+ {0x41723, 0x7b00}, -+ {0x41724, 0x0}, -+ {0x41725, 0x0}, -+ {0x41726, 0x0}, -+ {0x41727, 0x0}, -+ {0x41728, 0x407c}, -+ {0x41729, 0x0}, -+ {0x4172a, 0x0}, -+ {0x4172b, 0x0}, -+ {0x4172c, 0x0}, -+ {0x4172d, 0x0}, -+ {0x4172e, 0x0}, -+ {0x4172f, 0x0}, -+ {0x41730, 0x0}, -+ {0x41731, 0x0}, -+ {0x41732, 0x0}, -+ {0x41733, 0x0}, -+ {0x41734, 0x4000}, -+ {0x41735, 0x0}, -+ {0x41736, 0x1}, -+ {0x41737, 0x0}, -+ {0x41738, 0x0}, -+ {0x41739, 0x0}, -+ {0x4173a, 0x0}, -+ {0x4173b, 0x0}, -+ {0x4173c, 0x402c}, -+ {0x4173d, 0xd00}, -+ {0x4173e, 0x1}, -+ {0x4173f, 0x0}, -+ {0x41740, 0x4020}, -+ {0x41741, 0x803}, -+ {0x41742, 0x0}, -+ {0x41743, 0x0}, -+ {0x41744, 0x0}, -+ {0x41745, 0x0}, -+ {0x41746, 0x0}, -+ {0x41747, 0x0}, -+ {0x41748, 0x0}, -+ {0x41749, 0x0}, -+ {0x4174a, 0x0}, -+ {0x4174b, 0x2b00}, -+ {0x4174c, 0x0}, -+ {0x4174d, 0x0}, -+ {0x4174e, 0x0}, -+ {0x4174f, 0x800}, -+ {0x41750, 0x0}, -+ {0x41751, 0x0}, -+ {0x41752, 0x0}, -+ {0x41753, 0x0}, -+ {0x41754, 0x407c}, -+ {0x41755, 0x0}, -+ {0x41756, 0x0}, -+ {0x41757, 0x0}, -+ {0x41758, 0x0}, -+ {0x41759, 0x0}, -+ {0x4175a, 0x0}, -+ {0x4175b, 0x0}, -+ {0x4175c, 0x0}, -+ {0x4175d, 0x0}, -+ {0x4175e, 0x0}, -+ {0x4175f, 0x0}, -+ {0x41760, 0x4000}, -+ {0x41761, 0x0}, -+ {0x41762, 0x1}, -+ {0x41763, 0x0}, -+ {0x41764, 0x0}, -+ {0x41765, 0x0}, -+ {0x41766, 0x0}, -+ {0x41767, 0x0}, -+ {0x41768, 0x5758}, -+ {0x41769, 0x0}, -+ {0x4176a, 0x0}, -+ {0x4176b, 0x0}, -+ {0x4176c, 0x4008}, -+ {0x4176d, 0x0}, -+ {0x4176e, 0x0}, -+ {0x4176f, 0x0}, -+ {0x41770, 0x0}, -+ {0x41771, 0x0}, -+ {0x41772, 0x0}, -+ {0x41773, 0x0}, -+ {0x41774, 0x0}, -+ {0x41775, 0x0}, -+ {0x41776, 0x0}, -+ {0x41777, 0x0}, -+ {0x41778, 0x802c}, -+ {0x41779, 0xd00}, -+ {0x4177a, 0x1}, -+ {0x4177b, 0x10}, -+ {0x4177c, 0x8050}, -+ {0x4177d, 0x803}, -+ {0x4177e, 0x0}, -+ {0x4177f, 0x10}, -+ {0x41780, 0x0}, -+ {0x41781, 0x0}, -+ {0x41782, 0x0}, -+ {0x41783, 0x1b00}, -+ {0x41784, 0x0}, -+ {0x41785, 0x0}, -+ {0x41786, 0x0}, -+ {0x41787, 0x0}, -+ {0x41788, 0x0}, -+ {0x41789, 0x0}, -+ {0x4178a, 0x0}, -+ {0x4178b, 0x0}, -+ {0x4178c, 0x0}, -+ {0x4178d, 0x0}, -+ {0x4178e, 0x0}, -+ {0x4178f, 0x0}, -+ {0x41790, 0x8050}, -+ {0x41791, 0x803}, -+ {0x41792, 0x0}, -+ {0x41793, 0x5a10}, -+ {0x41794, 0x0}, -+ {0x41795, 0x0}, -+ {0x41796, 0x0}, -+ {0x41797, 0x0}, -+ {0x41798, 0x0}, -+ {0x41799, 0x0}, -+ {0x4179a, 0x0}, -+ {0x4179b, 0x0}, -+ {0x4179c, 0x0}, -+ {0x4179d, 0x0}, -+ {0x4179e, 0x0}, -+ {0x4179f, 0x0}, -+ {0x417a0, 0x0}, -+ {0x417a1, 0x0}, -+ {0x417a2, 0x0}, -+ {0x417a3, 0x100}, -+ {0x417a4, 0x0}, -+ {0x417a5, 0x0}, -+ {0x417a6, 0x0}, -+ {0x417a7, 0x0}, -+ {0x417a8, 0x8050}, -+ {0x417a9, 0x803}, -+ {0x417aa, 0x0}, -+ {0x417ab, 0x10}, -+ {0x417ac, 0x0}, -+ {0x417ad, 0x0}, -+ {0x417ae, 0x0}, -+ {0x417af, 0x0}, -+ {0x417b0, 0x0}, -+ {0x417b1, 0x0}, -+ {0x417b2, 0x0}, -+ {0x417b3, 0x6b00}, -+ {0x417b4, 0x0}, -+ {0x417b5, 0x0}, -+ {0x417b6, 0x0}, -+ {0x417b7, 0x400}, -+ {0x417b8, 0x807c}, -+ {0x417b9, 0x0}, -+ {0x417ba, 0x0}, -+ {0x417bb, 0x10}, -+ {0x417bc, 0x0}, -+ {0x417bd, 0x0}, -+ {0x417be, 0x0}, -+ {0x417bf, 0x0}, -+ {0x417c0, 0x0}, -+ {0x417c1, 0x0}, -+ {0x417c2, 0x0}, -+ {0x417c3, 0x3b00}, -+ {0x417c4, 0x0}, -+ {0x417c5, 0x0}, -+ {0x417c6, 0x0}, -+ {0x417c7, 0x0}, -+ {0x417c8, 0x0}, -+ {0x417c9, 0x0}, -+ {0x417ca, 0x0}, -+ {0x417cb, 0x0}, -+ {0x417cc, 0x0}, -+ {0x417cd, 0x0}, -+ {0x417ce, 0x1}, -+ {0x417cf, 0x0}, -+ {0x417d0, 0x9758}, -+ {0x417d1, 0x0}, -+ {0x417d2, 0x0}, -+ {0x417d3, 0x10}, -+ {0x417d4, 0x8208}, -+ {0x417d5, 0x0}, -+ {0x417d6, 0x0}, -+ {0x417d7, 0x10}, -+ {0x417d8, 0x0}, -+ {0x417d9, 0x0}, -+ {0x417da, 0x0}, -+ {0x417db, 0x4b00}, -+ {0x417dc, 0x0}, -+ {0x417dd, 0x0}, -+ {0x417de, 0x0}, -+ {0x417df, 0x0}, -+ {0x417e0, 0x0}, -+ {0x417e1, 0x0}, -+ {0x417e2, 0x0}, -+ {0x417e3, 0x0}, -+ {0x417e4, 0x801c}, -+ {0x417e5, 0xd0}, -+ {0x417e6, 0x1}, -+ {0x417e7, 0x10}, -+ {0x417e8, 0x8060}, -+ {0x417e9, 0x84}, -+ {0x417ea, 0x0}, -+ {0x417eb, 0x10}, -+ {0x417ec, 0x0}, -+ {0x417ed, 0x0}, -+ {0x417ee, 0x0}, -+ {0x417ef, 0x0}, -+ {0x417f0, 0x0}, -+ {0x417f1, 0x0}, -+ {0x417f2, 0x0}, -+ {0x417f3, 0x7b00}, -+ {0x417f4, 0x0}, -+ {0x417f5, 0x0}, -+ {0x417f6, 0x0}, -+ {0x417f7, 0x0}, -+ {0x417f8, 0x807c}, -+ {0x417f9, 0x0}, -+ {0x417fa, 0x0}, -+ {0x417fb, 0x10}, -+ {0x417fc, 0x0}, -+ {0x417fd, 0x0}, -+ {0x417fe, 0x0}, -+ {0x417ff, 0x0}, -+ {0x41800, 0x0}, -+ {0x41801, 0x0}, -+ {0x41802, 0x0}, -+ {0x41803, 0x0}, -+ {0x41804, 0x8000}, -+ {0x41805, 0x0}, -+ {0x41806, 0x1}, -+ {0x41807, 0x10}, -+ {0x41808, 0x0}, -+ {0x41809, 0x0}, -+ {0x4180a, 0x0}, -+ {0x4180b, 0x0}, -+ {0x4180c, 0x802c}, -+ {0x4180d, 0xd00}, -+ {0x4180e, 0x1}, -+ {0x4180f, 0x10}, -+ {0x41810, 0x8020}, -+ {0x41811, 0x803}, -+ {0x41812, 0x0}, -+ {0x41813, 0x10}, -+ {0x41814, 0x0}, -+ {0x41815, 0x0}, -+ {0x41816, 0x0}, -+ {0x41817, 0x0}, -+ {0x41818, 0x0}, -+ {0x41819, 0x0}, -+ {0x4181a, 0x0}, -+ {0x4181b, 0x2b00}, -+ {0x4181c, 0x0}, -+ {0x4181d, 0x0}, -+ {0x4181e, 0x0}, -+ {0x4181f, 0x800}, -+ {0x41820, 0x0}, -+ {0x41821, 0x0}, -+ {0x41822, 0x0}, -+ {0x41823, 0x0}, -+ {0x41824, 0x807c}, -+ {0x41825, 0x0}, -+ {0x41826, 0x0}, -+ {0x41827, 0x10}, -+ {0x41828, 0x0}, -+ {0x41829, 0x0}, -+ {0x4182a, 0x0}, -+ {0x4182b, 0x0}, -+ {0x4182c, 0x0}, -+ {0x4182d, 0x0}, -+ {0x4182e, 0x0}, -+ {0x4182f, 0x0}, -+ {0x41830, 0x8000}, -+ {0x41831, 0x0}, -+ {0x41832, 0x1}, -+ {0x41833, 0x10}, -+ {0x41834, 0x0}, -+ {0x41835, 0x0}, -+ {0x41836, 0x0}, -+ {0x41837, 0x0}, -+ {0x41838, 0x9758}, -+ {0x41839, 0x0}, -+ {0x4183a, 0x0}, -+ {0x4183b, 0x10}, -+ {0x4183c, 0x8008}, -+ {0x4183d, 0x0}, -+ {0x4183e, 0x0}, -+ {0x4183f, 0x10}, -+ {0x41840, 0x0}, -+ {0x41841, 0x0}, -+ {0x41842, 0x0}, -+ {0x41843, 0x0}, -+ {0x41844, 0x0}, -+ {0x41845, 0x0}, -+ {0x41846, 0x0}, -+ {0x41847, 0x0}, -+ {0x41848, 0xc068}, -+ {0x41849, 0x0}, -+ {0x4184a, 0x0}, -+ {0x4184b, 0x10}, -+ {0x4184c, 0x0}, -+ {0x4184d, 0x0}, -+ {0x4184e, 0x0}, -+ {0x4184f, 0x0}, -+ {0x41850, 0xd2d8}, -+ {0x41851, 0x0}, -+ {0x41852, 0x0}, -+ {0x41853, 0x10}, -+ {0x41854, 0xe008}, -+ {0x41855, 0x0}, -+ {0x41856, 0x0}, -+ {0x41857, 0x10}, -+ {0x41858, 0x0}, -+ {0x41859, 0x0}, -+ {0x4185a, 0x0}, -+ {0x4185b, 0x5b00}, -+ {0x4185c, 0x0}, -+ {0x4185d, 0x0}, -+ {0x4185e, 0x0}, -+ {0x4185f, 0x0}, -+ {0x41860, 0xc0f0}, -+ {0x41861, 0x0}, -+ {0x41862, 0x0}, -+ {0x41863, 0x10}, -+ {0x41864, 0x0}, -+ {0x41865, 0x0}, -+ {0x41866, 0x0}, -+ {0x41867, 0x0}, -+ {0x41868, 0xcfd8}, -+ {0x41869, 0x0}, -+ {0x4186a, 0x0}, -+ {0x4186b, 0x10}, -+ {0x4186c, 0xc008}, -+ {0x4186d, 0x0}, -+ {0x4186e, 0x0}, -+ {0x4186f, 0x10}, -+ {0x41870, 0x0}, -+ {0x41871, 0x0}, -+ {0x41872, 0x0}, -+ {0x41873, 0x2b00}, -+ {0x41874, 0x0}, -+ {0x41875, 0x0}, -+ {0x41876, 0x0}, -+ {0x41877, 0x0}, -+ {0x41878, 0xd058}, -+ {0x41879, 0x0}, -+ {0x4187a, 0x0}, -+ {0x4187b, 0x10}, -+ {0x4187c, 0xc008}, -+ {0x4187d, 0x0}, -+ {0x4187e, 0x0}, -+ {0x4187f, 0x10}, -+ {0x41880, 0x0}, -+ {0x41881, 0x0}, -+ {0x41882, 0x0}, -+ {0x41883, 0x2b00}, -+ {0x41884, 0x0}, -+ {0x41885, 0x0}, -+ {0x41886, 0x0}, -+ {0x41887, 0x0}, -+ {0x41888, 0xd0d8}, -+ {0x41889, 0x0}, -+ {0x4188a, 0x0}, -+ {0x4188b, 0x10}, -+ {0x4188c, 0xc088}, -+ {0x4188d, 0x0}, -+ {0x4188e, 0x0}, -+ {0x4188f, 0x10}, -+ {0x41890, 0x0}, -+ {0x41891, 0x0}, -+ {0x41892, 0x0}, -+ {0x41893, 0x2b00}, -+ {0x41894, 0x0}, -+ {0x41895, 0x0}, -+ {0x41896, 0x0}, -+ {0x41897, 0x0}, -+ {0x41898, 0xd158}, -+ {0x41899, 0x0}, -+ {0x4189a, 0x0}, -+ {0x4189b, 0x10}, -+ {0x4189c, 0xc008}, -+ {0x4189d, 0x0}, -+ {0x4189e, 0x0}, -+ {0x4189f, 0x10}, -+ {0x418a0, 0x0}, -+ {0x418a1, 0x0}, -+ {0x418a2, 0x0}, -+ {0x418a3, 0x5b00}, -+ {0x418a4, 0x0}, -+ {0x418a5, 0x0}, -+ {0x418a6, 0x0}, -+ {0x418a7, 0x0}, -+ {0x418a8, 0x402c}, -+ {0x418a9, 0xd00}, -+ {0x418aa, 0x1}, -+ {0x418ab, 0x400}, -+ {0x418ac, 0x4050}, -+ {0x418ad, 0x800}, -+ {0x418ae, 0x0}, -+ {0x418af, 0x0}, -+ {0x418b0, 0x0}, -+ {0x418b1, 0x0}, -+ {0x418b2, 0x0}, -+ {0x418b3, 0x400}, -+ {0x418b4, 0x4050}, -+ {0x418b5, 0x803}, -+ {0x418b6, 0x0}, -+ {0x418b7, 0x0}, -+ {0x418b8, 0x0}, -+ {0x418b9, 0x0}, -+ {0x418ba, 0x0}, -+ {0x418bb, 0x6f00}, -+ {0x418bc, 0x0}, -+ {0x418bd, 0x0}, -+ {0x418be, 0x0}, -+ {0x418bf, 0x400}, -+ {0x418c0, 0x407c}, -+ {0x418c1, 0x0}, -+ {0x418c2, 0x0}, -+ {0x418c3, 0x400}, -+ {0x418c4, 0x0}, -+ {0x418c5, 0x0}, -+ {0x418c6, 0x0}, -+ {0x418c7, 0x0}, -+ {0x418c8, 0x0}, -+ {0x418c9, 0x0}, -+ {0x418ca, 0x0}, -+ {0x418cb, 0x400}, -+ {0x418cc, 0x0}, -+ {0x418cd, 0x0}, -+ {0x418ce, 0x1}, -+ {0x418cf, 0x0}, -+ {0x418d0, 0x0}, -+ {0x418d1, 0x0}, -+ {0x418d2, 0x0}, -+ {0x418d3, 0x400}, -+ {0x418d4, 0x0}, -+ {0x418d5, 0x0}, -+ {0x418d6, 0x0}, -+ {0x418d7, 0x0}, -+ {0x418d8, 0x0}, -+ {0x418d9, 0x0}, -+ {0x418da, 0x0}, -+ {0x418db, 0x0}, -+ {0x418dc, 0x0}, -+ {0x418dd, 0x0}, -+ {0x418de, 0x0}, -+ {0x418df, 0x0}, -+ {0x418e0, 0x802c}, -+ {0x418e1, 0xd00}, -+ {0x418e2, 0x1}, -+ {0x418e3, 0x410}, -+ {0x418e4, 0x8050}, -+ {0x418e5, 0x800}, -+ {0x418e6, 0x0}, -+ {0x418e7, 0x10}, -+ {0x418e8, 0x0}, -+ {0x418e9, 0x0}, -+ {0x418ea, 0x0}, -+ {0x418eb, 0x400}, -+ {0x418ec, 0x8050}, -+ {0x418ed, 0x803}, -+ {0x418ee, 0x0}, -+ {0x418ef, 0x10}, -+ {0x418f0, 0x0}, -+ {0x418f1, 0x0}, -+ {0x418f2, 0x0}, -+ {0x418f3, 0x6f00}, -+ {0x418f4, 0x0}, -+ {0x418f5, 0x0}, -+ {0x418f6, 0x0}, -+ {0x418f7, 0x400}, -+ {0x418f8, 0x807c}, -+ {0x418f9, 0x0}, -+ {0x418fa, 0x0}, -+ {0x418fb, 0x410}, -+ {0x418fc, 0x0}, -+ {0x418fd, 0x0}, -+ {0x418fe, 0x0}, -+ {0x418ff, 0x0}, -+ {0x41900, 0x0}, -+ {0x41901, 0x0}, -+ {0x41902, 0x0}, -+ {0x41903, 0x400}, -+ {0x41904, 0x0}, -+ {0x41905, 0x0}, -+ {0x41906, 0x1}, -+ {0x41907, 0x0}, -+ {0x41908, 0x0}, -+ {0x41909, 0x0}, -+ {0x4190a, 0x0}, -+ {0x4190b, 0x400}, -+ {0x4190c, 0x0}, -+ {0x4190d, 0x0}, -+ {0x4190e, 0x0}, -+ {0x4190f, 0x0}, -+ {0x41910, 0x0}, -+ {0x41911, 0x0}, -+ {0x41912, 0x0}, -+ {0x41913, 0x0}, -+ {0x41914, 0x0}, -+ {0x41915, 0x0}, -+ {0x41916, 0x0}, -+ {0x41917, 0x0}, -+ {0x41918, 0x402c}, -+ {0x41919, 0xd00}, -+ {0x4191a, 0x1}, -+ {0x4191b, 0x0}, -+ {0x4191c, 0x4050}, -+ {0x4191d, 0x800}, -+ {0x4191e, 0x0}, -+ {0x4191f, 0x0}, -+ {0x41920, 0x0}, -+ {0x41921, 0x0}, -+ {0x41922, 0x0}, -+ {0x41923, 0x0}, -+ {0x41924, 0x4050}, -+ {0x41925, 0x803}, -+ {0x41926, 0x0}, -+ {0x41927, 0x0}, -+ {0x41928, 0x0}, -+ {0x41929, 0x0}, -+ {0x4192a, 0x0}, -+ {0x4192b, 0x0}, -+ {0x4192c, 0x4050}, -+ {0x4192d, 0x800}, -+ {0x4192e, 0x0}, -+ {0x4192f, 0x0}, -+ {0x41930, 0x0}, -+ {0x41931, 0x0}, -+ {0x41932, 0x0}, -+ {0x41933, 0x4b00}, -+ {0x41934, 0x0}, -+ {0x41935, 0x0}, -+ {0x41936, 0x0}, -+ {0x41937, 0x400}, -+ {0x41938, 0x0}, -+ {0x41939, 0x0}, -+ {0x4193a, 0x0}, -+ {0x4193b, 0x0}, -+ {0x4193c, 0x407c}, -+ {0x4193d, 0x0}, -+ {0x4193e, 0x0}, -+ {0x4193f, 0x0}, -+ {0x41940, 0x0}, -+ {0x41941, 0x0}, -+ {0x41942, 0x0}, -+ {0x41943, 0x0}, -+ {0x41944, 0x0}, -+ {0x41945, 0x0}, -+ {0x41946, 0x0}, -+ {0x41947, 0x0}, -+ {0x41948, 0x0}, -+ {0x41949, 0x0}, -+ {0x4194a, 0x1}, -+ {0x4194b, 0x0}, -+ {0x4194c, 0x0}, -+ {0x4194d, 0x0}, -+ {0x4194e, 0x0}, -+ {0x4194f, 0x0}, -+ {0x41950, 0x0}, -+ {0x41951, 0x0}, -+ {0x41952, 0x0}, -+ {0x41953, 0x4b00}, -+ {0x41954, 0x0}, -+ {0x41955, 0x0}, -+ {0x41956, 0x0}, -+ {0x41957, 0x1800}, -+ {0x41958, 0x0}, -+ {0x41959, 0x0}, -+ {0x4195a, 0x0}, -+ {0x4195b, 0x0}, -+ {0x4195c, 0x802c}, -+ {0x4195d, 0xd00}, -+ {0x4195e, 0x1}, -+ {0x4195f, 0x10}, -+ {0x41960, 0x8050}, -+ {0x41961, 0x800}, -+ {0x41962, 0x0}, -+ {0x41963, 0x10}, -+ {0x41964, 0x0}, -+ {0x41965, 0x0}, -+ {0x41966, 0x0}, -+ {0x41967, 0x0}, -+ {0x41968, 0x8050}, -+ {0x41969, 0x803}, -+ {0x4196a, 0x0}, -+ {0x4196b, 0x10}, -+ {0x4196c, 0x0}, -+ {0x4196d, 0x0}, -+ {0x4196e, 0x0}, -+ {0x4196f, 0x0}, -+ {0x41970, 0x8050}, -+ {0x41971, 0x800}, -+ {0x41972, 0x0}, -+ {0x41973, 0x10}, -+ {0x41974, 0x0}, -+ {0x41975, 0x0}, -+ {0x41976, 0x0}, -+ {0x41977, 0x0}, -+ {0x41978, 0x0}, -+ {0x41979, 0x0}, -+ {0x4197a, 0x0}, -+ {0x4197b, 0x4b00}, -+ {0x4197c, 0x0}, -+ {0x4197d, 0x0}, -+ {0x4197e, 0x0}, -+ {0x4197f, 0x400}, -+ {0x41980, 0x807c}, -+ {0x41981, 0x0}, -+ {0x41982, 0x0}, -+ {0x41983, 0x10}, -+ {0x41984, 0x0}, -+ {0x41985, 0x0}, -+ {0x41986, 0x0}, -+ {0x41987, 0x0}, -+ {0x41988, 0x0}, -+ {0x41989, 0x0}, -+ {0x4198a, 0x0}, -+ {0x4198b, 0x0}, -+ {0x4198c, 0x0}, -+ {0x4198d, 0x0}, -+ {0x4198e, 0x1}, -+ {0x4198f, 0x0}, -+ {0x41990, 0x0}, -+ {0x41991, 0x0}, -+ {0x41992, 0x0}, -+ {0x41993, 0x5b00}, -+ {0x41994, 0x0}, -+ {0x41995, 0x0}, -+ {0x41996, 0x0}, -+ {0x41997, 0x2000}, -+ {0x41998, 0x402c}, -+ {0x41999, 0xd00}, -+ {0x4199a, 0x1}, -+ {0x4199b, 0x0}, -+ {0x4199c, 0x5198}, -+ {0x4199d, 0x803}, -+ {0x4199e, 0x0}, -+ {0x4199f, 0x0}, -+ {0x419a0, 0x0}, -+ {0x419a1, 0x0}, -+ {0x419a2, 0x0}, -+ {0x419a3, 0x1b00}, -+ {0x419a4, 0x0}, -+ {0x419a5, 0x0}, -+ {0x419a6, 0x0}, -+ {0x419a7, 0x0}, -+ {0x419a8, 0x5218}, -+ {0x419a9, 0x803}, -+ {0x419aa, 0x0}, -+ {0x419ab, 0x0}, -+ {0x419ac, 0x0}, -+ {0x419ad, 0x0}, -+ {0x419ae, 0x0}, -+ {0x419af, 0x0}, -+ {0x419b0, 0x0}, -+ {0x419b1, 0x0}, -+ {0x419b2, 0x0}, -+ {0x419b3, 0x4b00}, -+ {0x419b4, 0x0}, -+ {0x419b5, 0x0}, -+ {0x419b6, 0x0}, -+ {0x419b7, 0x400}, -+ {0x419b8, 0x407c}, -+ {0x419b9, 0x0}, -+ {0x419ba, 0x0}, -+ {0x419bb, 0x0}, -+ {0x419bc, 0x0}, -+ {0x419bd, 0x0}, -+ {0x419be, 0x0}, -+ {0x419bf, 0x0}, -+ {0x419c0, 0x0}, -+ {0x419c1, 0x0}, -+ {0x419c2, 0x0}, -+ {0x419c3, 0x0}, -+ {0x419c4, 0x0}, -+ {0x419c5, 0x0}, -+ {0x419c6, 0x1}, -+ {0x419c7, 0x0}, -+ {0x419c8, 0x0}, -+ {0x419c9, 0x0}, -+ {0x419ca, 0x0}, -+ {0x419cb, 0x1b00}, -+ {0x419cc, 0x0}, -+ {0x419cd, 0x0}, -+ {0x419ce, 0x0}, -+ {0x419cf, 0x0}, -+ {0x419d0, 0x0}, -+ {0x419d1, 0x0}, -+ {0x419d2, 0x0}, -+ {0x419d3, 0x0}, -+ {0x419d4, 0x802c}, -+ {0x419d5, 0xd00}, -+ {0x419d6, 0x1}, -+ {0x419d7, 0x10}, -+ {0x419d8, 0x9198}, -+ {0x419d9, 0x803}, -+ {0x419da, 0x0}, -+ {0x419db, 0x10}, -+ {0x419dc, 0x0}, -+ {0x419dd, 0x0}, -+ {0x419de, 0x0}, -+ {0x419df, 0x0}, -+ {0x419e0, 0x0}, -+ {0x419e1, 0x0}, -+ {0x419e2, 0x0}, -+ {0x419e3, 0x0}, -+ {0x419e4, 0x0}, -+ {0x419e5, 0x0}, -+ {0x419e6, 0x0}, -+ {0x419e7, 0x0}, -+ {0x419e8, 0x0}, -+ {0x419e9, 0x0}, -+ {0x419ea, 0x0}, -+ {0x419eb, 0x0}, -+ {0x419ec, 0x9218}, -+ {0x419ed, 0x803}, -+ {0x419ee, 0x0}, -+ {0x419ef, 0x10}, -+ {0x419f0, 0x0}, -+ {0x419f1, 0x0}, -+ {0x419f2, 0x0}, -+ {0x419f3, 0x4b00}, -+ {0x419f4, 0x0}, -+ {0x419f5, 0x0}, -+ {0x419f6, 0x0}, -+ {0x419f7, 0x400}, -+ {0x419f8, 0x0}, -+ {0x419f9, 0x0}, -+ {0x419fa, 0x0}, -+ {0x419fb, 0x0}, -+ {0x419fc, 0x807c}, -+ {0x419fd, 0x0}, -+ {0x419fe, 0x0}, -+ {0x419ff, 0x10}, -+ {0x41a00, 0x0}, -+ {0x41a01, 0x0}, -+ {0x41a02, 0x0}, -+ {0x41a03, 0x0}, -+ {0x41a04, 0x0}, -+ {0x41a05, 0x0}, -+ {0x41a06, 0x0}, -+ {0x41a07, 0x0}, -+ {0x41a08, 0x0}, -+ {0x41a09, 0x0}, -+ {0x41a0a, 0x1}, -+ {0x41a0b, 0x0}, -+ {0x41a0c, 0x0}, -+ {0x41a0d, 0x0}, -+ {0x41a0e, 0x0}, -+ {0x41a0f, 0x0}, -+ {0x41a10, 0x0}, -+ {0x41a11, 0x0}, -+ {0x41a12, 0x0}, -+ {0x41a13, 0xb00}, -+ {0x41a14, 0x0}, -+ {0x41a15, 0x0}, -+ {0x41a16, 0x0}, -+ {0x41a17, 0x400}, -+ {0x41a18, 0x0}, -+ {0x41a19, 0x0}, -+ {0x41a1a, 0x0}, -+ {0x41a1b, 0x0}, -+ {0x41a1c, 0x0}, -+ {0x41a1d, 0x0}, -+ {0x41a1e, 0x0}, -+ {0x41a1f, 0x0}, -+ {0x41a20, 0x401c}, -+ {0x41a21, 0xd0}, -+ {0x41a22, 0x1}, -+ {0x41a23, 0x0}, -+ {0x41a24, 0x4060}, -+ {0x41a25, 0x84}, -+ {0x41a26, 0x0}, -+ {0x41a27, 0x0}, -+ {0x41a28, 0x0}, -+ {0x41a29, 0x0}, -+ {0x41a2a, 0x0}, -+ {0x41a2b, 0xb00}, -+ {0x41a2c, 0x0}, -+ {0x41a2d, 0x0}, -+ {0x41a2e, 0x0}, -+ {0x41a2f, 0x800}, -+ {0x41a30, 0x407c}, -+ {0x41a31, 0x0}, -+ {0x41a32, 0x0}, -+ {0x41a33, 0x0}, -+ {0x41a34, 0x0}, -+ {0x41a35, 0x0}, -+ {0x41a36, 0x0}, -+ {0x41a37, 0x0}, -+ {0x41a38, 0x0}, -+ {0x41a39, 0x0}, -+ {0x41a3a, 0x0}, -+ {0x41a3b, 0x0}, -+ {0x41a3c, 0x4000}, -+ {0x41a3d, 0x0}, -+ {0x41a3e, 0x1}, -+ {0x41a3f, 0x0}, -+ {0x41a40, 0x0}, -+ {0x41a41, 0x0}, -+ {0x41a42, 0x0}, -+ {0x41a43, 0x0}, -+ {0x41a44, 0x402c}, -+ {0x41a45, 0xd00}, -+ {0x41a46, 0x1}, -+ {0x41a47, 0x0}, -+ {0x41a48, 0x4020}, -+ {0x41a49, 0x803}, -+ {0x41a4a, 0x0}, -+ {0x41a4b, 0x0}, -+ {0x41a4c, 0x0}, -+ {0x41a4d, 0x0}, -+ {0x41a4e, 0x0}, -+ {0x41a4f, 0x0}, -+ {0x41a50, 0x0}, -+ {0x41a51, 0x0}, -+ {0x41a52, 0x0}, -+ {0x41a53, 0x2b00}, -+ {0x41a54, 0x0}, -+ {0x41a55, 0x0}, -+ {0x41a56, 0x0}, -+ {0x41a57, 0x800}, -+ {0x41a58, 0x0}, -+ {0x41a59, 0x0}, -+ {0x41a5a, 0x0}, -+ {0x41a5b, 0x0}, -+ {0x41a5c, 0x407c}, -+ {0x41a5d, 0x0}, -+ {0x41a5e, 0x0}, -+ {0x41a5f, 0x0}, -+ {0x41a60, 0x0}, -+ {0x41a61, 0x0}, -+ {0x41a62, 0x0}, -+ {0x41a63, 0x0}, -+ {0x41a64, 0x0}, -+ {0x41a65, 0x0}, -+ {0x41a66, 0x0}, -+ {0x41a67, 0x0}, -+ {0x41a68, 0x0}, -+ {0x41a69, 0x0}, -+ {0x41a6a, 0x1}, -+ {0x41a6b, 0x0}, -+ {0x41a6c, 0x0}, -+ {0x41a6d, 0x0}, -+ {0x41a6e, 0x0}, -+ {0x41a6f, 0x0}, -+ {0x41a70, 0x801c}, -+ {0x41a71, 0xd0}, -+ {0x41a72, 0x1}, -+ {0x41a73, 0x10}, -+ {0x41a74, 0x8060}, -+ {0x41a75, 0x84}, -+ {0x41a76, 0x0}, -+ {0x41a77, 0x10}, -+ {0x41a78, 0x0}, -+ {0x41a79, 0x0}, -+ {0x41a7a, 0x0}, -+ {0x41a7b, 0xb00}, -+ {0x41a7c, 0x0}, -+ {0x41a7d, 0x0}, -+ {0x41a7e, 0x0}, -+ {0x41a7f, 0x800}, -+ {0x41a80, 0x807c}, -+ {0x41a81, 0x0}, -+ {0x41a82, 0x0}, -+ {0x41a83, 0x10}, -+ {0x41a84, 0x0}, -+ {0x41a85, 0x0}, -+ {0x41a86, 0x0}, -+ {0x41a87, 0x0}, -+ {0x41a88, 0x0}, -+ {0x41a89, 0x0}, -+ {0x41a8a, 0x0}, -+ {0x41a8b, 0x0}, -+ {0x41a8c, 0x8000}, -+ {0x41a8d, 0x0}, -+ {0x41a8e, 0x1}, -+ {0x41a8f, 0x10}, -+ {0x41a90, 0x0}, -+ {0x41a91, 0x0}, -+ {0x41a92, 0x0}, -+ {0x41a93, 0x0}, -+ {0x41a94, 0x802c}, -+ {0x41a95, 0xd00}, -+ {0x41a96, 0x1}, -+ {0x41a97, 0x10}, -+ {0x41a98, 0x8020}, -+ {0x41a99, 0x803}, -+ {0x41a9a, 0x0}, -+ {0x41a9b, 0x10}, -+ {0x41a9c, 0x0}, -+ {0x41a9d, 0x0}, -+ {0x41a9e, 0x0}, -+ {0x41a9f, 0x0}, -+ {0x41aa0, 0x0}, -+ {0x41aa1, 0x0}, -+ {0x41aa2, 0x0}, -+ {0x41aa3, 0x2b00}, -+ {0x41aa4, 0x0}, -+ {0x41aa5, 0x0}, -+ {0x41aa6, 0x0}, -+ {0x41aa7, 0x800}, -+ {0x41aa8, 0x0}, -+ {0x41aa9, 0x0}, -+ {0x41aaa, 0x0}, -+ {0x41aab, 0x0}, -+ {0x41aac, 0x807c}, -+ {0x41aad, 0x0}, -+ {0x41aae, 0x0}, -+ {0x41aaf, 0x10}, -+ {0x41ab0, 0x0}, -+ {0x41ab1, 0x0}, -+ {0x41ab2, 0x0}, -+ {0x41ab3, 0x0}, -+ {0x41ab4, 0x0}, -+ {0x41ab5, 0x0}, -+ {0x41ab6, 0x0}, -+ {0x41ab7, 0x0}, -+ {0x41ab8, 0x0}, -+ {0x41ab9, 0x0}, -+ {0x41aba, 0x1}, -+ {0x41abb, 0x0}, -+ {0x41abc, 0x0}, -+ {0x41abd, 0x0}, -+ {0x41abe, 0x0}, -+ {0x41abf, 0x0}, -+ {0x41ac0, 0x402c}, -+ {0x41ac1, 0xd00}, -+ {0x41ac2, 0x1}, -+ {0x41ac3, 0x0}, -+ {0x41ac4, 0x4050}, -+ {0x41ac5, 0x803}, -+ {0x41ac6, 0x0}, -+ {0x41ac7, 0x0}, -+ {0x41ac8, 0x0}, -+ {0x41ac9, 0x0}, -+ {0x41aca, 0x0}, -+ {0x41acb, 0x0}, -+ {0x41acc, 0x0}, -+ {0x41acd, 0x0}, -+ {0x41ace, 0x0}, -+ {0x41acf, 0x0}, -+ {0x41ad0, 0x0}, -+ {0x41ad1, 0x0}, -+ {0x41ad2, 0x0}, -+ {0x41ad3, 0x0}, -+ {0x41ad4, 0x0}, -+ {0x41ad5, 0x0}, -+ {0x41ad6, 0x0}, -+ {0x41ad7, 0x0}, -+ {0x41ad8, 0x4050}, -+ {0x41ad9, 0x803}, -+ {0x41ada, 0x0}, -+ {0x41adb, 0x5a00}, -+ {0x41adc, 0x0}, -+ {0x41add, 0x0}, -+ {0x41ade, 0x0}, -+ {0x41adf, 0x0}, -+ {0x41ae0, 0x0}, -+ {0x41ae1, 0x0}, -+ {0x41ae2, 0x0}, -+ {0x41ae3, 0x100}, -+ {0x41ae4, 0x0}, -+ {0x41ae5, 0x0}, -+ {0x41ae6, 0x0}, -+ {0x41ae7, 0x0}, -+ {0x41ae8, 0x4050}, -+ {0x41ae9, 0x803}, -+ {0x41aea, 0x0}, -+ {0x41aeb, 0x0}, -+ {0x41aec, 0x0}, -+ {0x41aed, 0x0}, -+ {0x41aee, 0x0}, -+ {0x41aef, 0x0}, -+ {0x41af0, 0x0}, -+ {0x41af1, 0x0}, -+ {0x41af2, 0x0}, -+ {0x41af3, 0x4b00}, -+ {0x41af4, 0x0}, -+ {0x41af5, 0x0}, -+ {0x41af6, 0x0}, -+ {0x41af7, 0x400}, -+ {0x41af8, 0x407c}, -+ {0x41af9, 0x0}, -+ {0x41afa, 0x0}, -+ {0x41afb, 0x0}, -+ {0x41afc, 0x0}, -+ {0x41afd, 0x0}, -+ {0x41afe, 0x0}, -+ {0x41aff, 0x0}, -+ {0x41b00, 0x0}, -+ {0x41b01, 0x0}, -+ {0x41b02, 0x0}, -+ {0x41b03, 0x3b00}, -+ {0x41b04, 0x0}, -+ {0x41b05, 0x0}, -+ {0x41b06, 0x0}, -+ {0x41b07, 0x0}, -+ {0x41b08, 0x0}, -+ {0x41b09, 0x0}, -+ {0x41b0a, 0x0}, -+ {0x41b0b, 0x0}, -+ {0x41b0c, 0x0}, -+ {0x41b0d, 0x0}, -+ {0x41b0e, 0x1}, -+ {0x41b0f, 0x0}, -+ {0x41b10, 0x5758}, -+ {0x41b11, 0x0}, -+ {0x41b12, 0x0}, -+ {0x41b13, 0x0}, -+ {0x41b14, 0x4208}, -+ {0x41b15, 0x0}, -+ {0x41b16, 0x0}, -+ {0x41b17, 0x0}, -+ {0x41b18, 0x0}, -+ {0x41b19, 0x0}, -+ {0x41b1a, 0x0}, -+ {0x41b1b, 0x4b00}, -+ {0x41b1c, 0x0}, -+ {0x41b1d, 0x0}, -+ {0x41b1e, 0x0}, -+ {0x41b1f, 0x0}, -+ {0x41b20, 0x0}, -+ {0x41b21, 0x0}, -+ {0x41b22, 0x0}, -+ {0x41b23, 0x0}, -+ {0x41b24, 0x401c}, -+ {0x41b25, 0xd0}, -+ {0x41b26, 0x1}, -+ {0x41b27, 0x0}, -+ {0x41b28, 0x4060}, -+ {0x41b29, 0x84}, -+ {0x41b2a, 0x0}, -+ {0x41b2b, 0x0}, -+ {0x41b2c, 0x0}, -+ {0x41b2d, 0x0}, -+ {0x41b2e, 0x0}, -+ {0x41b2f, 0x0}, -+ {0x41b30, 0x0}, -+ {0x41b31, 0x0}, -+ {0x41b32, 0x0}, -+ {0x41b33, 0x7b00}, -+ {0x41b34, 0x0}, -+ {0x41b35, 0x0}, -+ {0x41b36, 0x0}, -+ {0x41b37, 0x0}, -+ {0x41b38, 0x407c}, -+ {0x41b39, 0x0}, -+ {0x41b3a, 0x0}, -+ {0x41b3b, 0x0}, -+ {0x41b3c, 0x0}, -+ {0x41b3d, 0x0}, -+ {0x41b3e, 0x0}, -+ {0x41b3f, 0x0}, -+ {0x41b40, 0x0}, -+ {0x41b41, 0x0}, -+ {0x41b42, 0x0}, -+ {0x41b43, 0x0}, -+ {0x41b44, 0x4000}, -+ {0x41b45, 0x0}, -+ {0x41b46, 0x1}, -+ {0x41b47, 0x0}, -+ {0x41b48, 0x0}, -+ {0x41b49, 0x0}, -+ {0x41b4a, 0x0}, -+ {0x41b4b, 0x0}, -+ {0x41b4c, 0x402c}, -+ {0x41b4d, 0xd00}, -+ {0x41b4e, 0x1}, -+ {0x41b4f, 0x0}, -+ {0x41b50, 0x4020}, -+ {0x41b51, 0x803}, -+ {0x41b52, 0x0}, -+ {0x41b53, 0x0}, -+ {0x41b54, 0x0}, -+ {0x41b55, 0x0}, -+ {0x41b56, 0x0}, -+ {0x41b57, 0x0}, -+ {0x41b58, 0x0}, -+ {0x41b59, 0x0}, -+ {0x41b5a, 0x0}, -+ {0x41b5b, 0x2b00}, -+ {0x41b5c, 0x0}, -+ {0x41b5d, 0x0}, -+ {0x41b5e, 0x0}, -+ {0x41b5f, 0x800}, -+ {0x41b60, 0x0}, -+ {0x41b61, 0x0}, -+ {0x41b62, 0x0}, -+ {0x41b63, 0x0}, -+ {0x41b64, 0x407c}, -+ {0x41b65, 0x0}, -+ {0x41b66, 0x0}, -+ {0x41b67, 0x0}, -+ {0x41b68, 0x0}, -+ {0x41b69, 0x0}, -+ {0x41b6a, 0x0}, -+ {0x41b6b, 0x0}, -+ {0x41b6c, 0x0}, -+ {0x41b6d, 0x0}, -+ {0x41b6e, 0x0}, -+ {0x41b6f, 0x0}, -+ {0x41b70, 0x4000}, -+ {0x41b71, 0x0}, -+ {0x41b72, 0x1}, -+ {0x41b73, 0x0}, -+ {0x41b74, 0x0}, -+ {0x41b75, 0x0}, -+ {0x41b76, 0x0}, -+ {0x41b77, 0x0}, -+ {0x41b78, 0x5758}, -+ {0x41b79, 0x0}, -+ {0x41b7a, 0x0}, -+ {0x41b7b, 0x0}, -+ {0x41b7c, 0x4008}, -+ {0x41b7d, 0x0}, -+ {0x41b7e, 0x0}, -+ {0x41b7f, 0x0}, -+ {0x41b80, 0x0}, -+ {0x41b81, 0x0}, -+ {0x41b82, 0x0}, -+ {0x41b83, 0x0}, -+ {0x41b84, 0x0}, -+ {0x41b85, 0x0}, -+ {0x41b86, 0x0}, -+ {0x41b87, 0x0}, -+ {0x41b88, 0x802c}, -+ {0x41b89, 0xd00}, -+ {0x41b8a, 0x1}, -+ {0x41b8b, 0x10}, -+ {0x41b8c, 0x8050}, -+ {0x41b8d, 0x803}, -+ {0x41b8e, 0x0}, -+ {0x41b8f, 0x10}, -+ {0x41b90, 0x0}, -+ {0x41b91, 0x0}, -+ {0x41b92, 0x0}, -+ {0x41b93, 0x0}, -+ {0x41b94, 0x0}, -+ {0x41b95, 0x0}, -+ {0x41b96, 0x0}, -+ {0x41b97, 0x0}, -+ {0x41b98, 0x0}, -+ {0x41b99, 0x0}, -+ {0x41b9a, 0x0}, -+ {0x41b9b, 0x0}, -+ {0x41b9c, 0x0}, -+ {0x41b9d, 0x0}, -+ {0x41b9e, 0x0}, -+ {0x41b9f, 0x0}, -+ {0x41ba0, 0x8050}, -+ {0x41ba1, 0x803}, -+ {0x41ba2, 0x0}, -+ {0x41ba3, 0x5a10}, -+ {0x41ba4, 0x0}, -+ {0x41ba5, 0x0}, -+ {0x41ba6, 0x0}, -+ {0x41ba7, 0x0}, -+ {0x41ba8, 0x0}, -+ {0x41ba9, 0x0}, -+ {0x41baa, 0x0}, -+ {0x41bab, 0x100}, -+ {0x41bac, 0x0}, -+ {0x41bad, 0x0}, -+ {0x41bae, 0x0}, -+ {0x41baf, 0x0}, -+ {0x41bb0, 0x8050}, -+ {0x41bb1, 0x803}, -+ {0x41bb2, 0x0}, -+ {0x41bb3, 0x10}, -+ {0x41bb4, 0x0}, -+ {0x41bb5, 0x0}, -+ {0x41bb6, 0x0}, -+ {0x41bb7, 0x0}, -+ {0x41bb8, 0x0}, -+ {0x41bb9, 0x0}, -+ {0x41bba, 0x0}, -+ {0x41bbb, 0x4b00}, -+ {0x41bbc, 0x0}, -+ {0x41bbd, 0x0}, -+ {0x41bbe, 0x0}, -+ {0x41bbf, 0x400}, -+ {0x41bc0, 0x807c}, -+ {0x41bc1, 0x0}, -+ {0x41bc2, 0x0}, -+ {0x41bc3, 0x10}, -+ {0x41bc4, 0x0}, -+ {0x41bc5, 0x0}, -+ {0x41bc6, 0x0}, -+ {0x41bc7, 0x0}, -+ {0x41bc8, 0x0}, -+ {0x41bc9, 0x0}, -+ {0x41bca, 0x0}, -+ {0x41bcb, 0x3b00}, -+ {0x41bcc, 0x0}, -+ {0x41bcd, 0x0}, -+ {0x41bce, 0x0}, -+ {0x41bcf, 0x0}, -+ {0x41bd0, 0x0}, -+ {0x41bd1, 0x0}, -+ {0x41bd2, 0x0}, -+ {0x41bd3, 0x0}, -+ {0x41bd4, 0x0}, -+ {0x41bd5, 0x0}, -+ {0x41bd6, 0x1}, -+ {0x41bd7, 0x0}, -+ {0x41bd8, 0x9758}, -+ {0x41bd9, 0x0}, -+ {0x41bda, 0x0}, -+ {0x41bdb, 0x10}, -+ {0x41bdc, 0x8208}, -+ {0x41bdd, 0x0}, -+ {0x41bde, 0x0}, -+ {0x41bdf, 0x10}, -+ {0x41be0, 0x0}, -+ {0x41be1, 0x0}, -+ {0x41be2, 0x0}, -+ {0x41be3, 0x4b00}, -+ {0x41be4, 0x0}, -+ {0x41be5, 0x0}, -+ {0x41be6, 0x0}, -+ {0x41be7, 0x0}, -+ {0x41be8, 0x0}, -+ {0x41be9, 0x0}, -+ {0x41bea, 0x0}, -+ {0x41beb, 0x0}, -+ {0x41bec, 0x801c}, -+ {0x41bed, 0xd0}, -+ {0x41bee, 0x1}, -+ {0x41bef, 0x10}, -+ {0x41bf0, 0x8060}, -+ {0x41bf1, 0x84}, -+ {0x41bf2, 0x0}, -+ {0x41bf3, 0x10}, -+ {0x41bf4, 0x0}, -+ {0x41bf5, 0x0}, -+ {0x41bf6, 0x0}, -+ {0x41bf7, 0x0}, -+ {0x41bf8, 0x0}, -+ {0x41bf9, 0x0}, -+ {0x41bfa, 0x0}, -+ {0x41bfb, 0x7b00}, -+ {0x41bfc, 0x0}, -+ {0x41bfd, 0x0}, -+ {0x41bfe, 0x0}, -+ {0x41bff, 0x0}, -+ {0x41c00, 0x807c}, -+ {0x41c01, 0x0}, -+ {0x41c02, 0x0}, -+ {0x41c03, 0x10}, -+ {0x41c04, 0x0}, -+ {0x41c05, 0x0}, -+ {0x41c06, 0x0}, -+ {0x41c07, 0x0}, -+ {0x41c08, 0x0}, -+ {0x41c09, 0x0}, -+ {0x41c0a, 0x0}, -+ {0x41c0b, 0x0}, -+ {0x41c0c, 0x8000}, -+ {0x41c0d, 0x0}, -+ {0x41c0e, 0x1}, -+ {0x41c0f, 0x10}, -+ {0x41c10, 0x0}, -+ {0x41c11, 0x0}, -+ {0x41c12, 0x0}, -+ {0x41c13, 0x0}, -+ {0x41c14, 0x802c}, -+ {0x41c15, 0xd00}, -+ {0x41c16, 0x1}, -+ {0x41c17, 0x10}, -+ {0x41c18, 0x8020}, -+ {0x41c19, 0x803}, -+ {0x41c1a, 0x0}, -+ {0x41c1b, 0x10}, -+ {0x41c1c, 0x0}, -+ {0x41c1d, 0x0}, -+ {0x41c1e, 0x0}, -+ {0x41c1f, 0x0}, -+ {0x41c20, 0x0}, -+ {0x41c21, 0x0}, -+ {0x41c22, 0x0}, -+ {0x41c23, 0x2b00}, -+ {0x41c24, 0x0}, -+ {0x41c25, 0x0}, -+ {0x41c26, 0x0}, -+ {0x41c27, 0x800}, -+ {0x41c28, 0x0}, -+ {0x41c29, 0x0}, -+ {0x41c2a, 0x0}, -+ {0x41c2b, 0x0}, -+ {0x41c2c, 0x807c}, -+ {0x41c2d, 0x0}, -+ {0x41c2e, 0x0}, -+ {0x41c2f, 0x10}, -+ {0x41c30, 0x0}, -+ {0x41c31, 0x0}, -+ {0x41c32, 0x0}, -+ {0x41c33, 0x0}, -+ {0x41c34, 0x0}, -+ {0x41c35, 0x0}, -+ {0x41c36, 0x0}, -+ {0x41c37, 0x0}, -+ {0x41c38, 0x8000}, -+ {0x41c39, 0x0}, -+ {0x41c3a, 0x1}, -+ {0x41c3b, 0x10}, -+ {0x41c3c, 0x0}, -+ {0x41c3d, 0x0}, -+ {0x41c3e, 0x0}, -+ {0x41c3f, 0x0}, -+ {0x41c40, 0x9758}, -+ {0x41c41, 0x0}, -+ {0x41c42, 0x0}, -+ {0x41c43, 0x10}, -+ {0x41c44, 0x8008}, -+ {0x41c45, 0x0}, -+ {0x41c46, 0x0}, -+ {0x41c47, 0x10}, -+ {0x41c48, 0x0}, -+ {0x41c49, 0x0}, -+ {0x41c4a, 0x0}, -+ {0x41c4b, 0x0}, -+ {0x41c4c, 0x0}, -+ {0x41c4d, 0x0}, -+ {0x41c4e, 0x0}, -+ {0x41c4f, 0x0}, -+ {0x41c50, 0xc068}, -+ {0x41c51, 0x0}, -+ {0x41c52, 0x0}, -+ {0x41c53, 0x10}, -+ {0x41c54, 0x0}, -+ {0x41c55, 0x0}, -+ {0x41c56, 0x0}, -+ {0x41c57, 0x0}, -+ {0x9002e, 0x10}, -+ {0x9002f, 0x400}, -+ {0x90030, 0x80e}, -+ {0x90031, 0xb}, -+ {0x90032, 0x480}, -+ {0x90033, 0x809}, -+ {0x90034, 0x9}, -+ {0x90035, 0x308}, -+ {0x90036, 0xc09}, -+ {0x90037, 0x28}, -+ {0x90038, 0x8160}, -+ {0x90039, 0x87c}, -+ {0x9003a, 0x98}, -+ {0x9003b, 0x820}, -+ {0x9003c, 0xc7e}, -+ {0x9003d, 0x2}, -+ {0x9003e, 0x1}, -+ {0x9003f, 0x78}, -+ {0x90040, 0xa}, -+ {0x90041, 0x370}, -+ {0x90042, 0x839}, -+ {0x90043, 0x18}, -+ {0x90044, 0x8160}, -+ {0x90045, 0x83c}, -+ {0x90046, 0x9}, -+ {0x90047, 0x150}, -+ {0x90048, 0x839}, -+ {0x90049, 0x70}, -+ {0x9004a, 0x392}, -+ {0x9004b, 0x39}, -+ {0x9004c, 0x78}, -+ {0x9004d, 0x39a}, -+ {0x9004e, 0x39}, -+ {0x9004f, 0xe09}, -+ {0x90050, 0x100}, -+ {0x90051, 0x839}, -+ {0x90052, 0x2}, -+ {0x90053, 0x1}, -+ {0x90054, 0x38}, -+ {0x90055, 0x0}, -+ {0x90056, 0x100}, -+ {0x90057, 0x839}, -+ {0x90058, 0x0}, -+ {0x90059, 0x398}, -+ {0x9005a, 0x839}, -+ {0x9005b, 0xe19}, -+ {0x9005c, 0x100}, -+ {0x9005d, 0x839}, -+ {0x9005e, 0x2}, -+ {0x9005f, 0x1}, -+ {0x90060, 0x38}, -+ {0x90061, 0x0}, -+ {0x90062, 0x100}, -+ {0x90063, 0x839}, -+ {0x90064, 0x0}, -+ {0x90065, 0x390}, -+ {0x90066, 0x839}, -+ {0x90067, 0x78}, -+ {0x90068, 0x39a}, -+ {0x90069, 0x39}, -+ {0x9006a, 0xe29}, -+ {0x9006b, 0x100}, -+ {0x9006c, 0x839}, -+ {0x9006d, 0x2}, -+ {0x9006e, 0x1}, -+ {0x9006f, 0x38}, -+ {0x90070, 0x0}, -+ {0x90071, 0x100}, -+ {0x90072, 0x839}, -+ {0x90073, 0x70}, -+ {0x90074, 0x392}, -+ {0x90075, 0x39}, -+ {0x90076, 0x0}, -+ {0x90077, 0xf0}, -+ {0x90078, 0x909}, -+ {0x90079, 0x18}, -+ {0x9007a, 0x8160}, -+ {0x9007b, 0x8bc}, -+ {0x9007c, 0x8}, -+ {0x9007d, 0x13a}, -+ {0x9007e, 0xb9}, -+ {0x9007f, 0x24b}, -+ {0x90080, 0x100}, -+ {0x90081, 0x8b9}, -+ {0x90082, 0x2}, -+ {0x90083, 0x1}, -+ {0x90084, 0xb8}, -+ {0x90085, 0x0}, -+ {0x90086, 0x100}, -+ {0x90087, 0x8b9}, -+ {0x90088, 0x20}, -+ {0x90089, 0x4}, -+ {0x9008a, 0xb8}, -+ {0x9008b, 0x20}, -+ {0x9008c, 0x4}, -+ {0x9008d, 0xb8}, -+ {0x9008e, 0x5}, -+ {0x9008f, 0x0}, -+ {0x90090, 0xb8}, -+ {0x90091, 0x479}, -+ {0x90092, 0xc7f8}, -+ {0x90093, 0x8bc}, -+ {0x90094, 0x0}, -+ {0x90095, 0x0}, -+ {0x90096, 0xb8}, -+ {0x90097, 0x0}, -+ {0x90098, 0xa8}, -+ {0x90099, 0x8b9}, -+ {0x9009a, 0x9}, -+ {0x9009b, 0xc9c0}, -+ {0x9009c, 0xcbc}, -+ {0x9009d, 0x0}, -+ {0x9009e, 0x0}, -+ {0x9009f, 0xb8}, -+ {0x900a0, 0x25b}, -+ {0x900a1, 0x100}, -+ {0x900a2, 0xcb9}, -+ {0x900a3, 0x20}, -+ {0x900a4, 0x4}, -+ {0x900a5, 0xb8}, -+ {0x900a6, 0x20}, -+ {0x900a7, 0x4}, -+ {0x900a8, 0xb8}, -+ {0x900a9, 0x20}, -+ {0x900aa, 0x4}, -+ {0x900ab, 0xb8}, -+ {0x900ac, 0x20}, -+ {0x900ad, 0x4}, -+ {0x900ae, 0xb8}, -+ {0x900af, 0x10}, -+ {0x900b0, 0x400}, -+ {0x900b1, 0x89e}, -+ {0x900b2, 0x8}, -+ {0x900b3, 0x370}, -+ {0x900b4, 0x839}, -+ {0x900b5, 0x0}, -+ {0x900b6, 0xf0}, -+ {0x900b7, 0x909}, -+ {0x900b8, 0x33b}, -+ {0x900b9, 0x100}, -+ {0x900ba, 0x8b9}, -+ {0x900bb, 0x0}, -+ {0x900bc, 0x100}, -+ {0x900bd, 0x8b9}, -+ {0x900be, 0x23b}, -+ {0x900bf, 0x100}, -+ {0x900c0, 0xc99}, -+ {0x900c1, 0x2}, -+ {0x900c2, 0x150}, -+ {0x900c3, 0x839}, -+ {0x900c4, 0x1800}, -+ {0x900c5, 0x8660}, -+ {0x900c6, 0x839}, -+ {0x900c7, 0x0}, -+ {0x900c8, 0x2a0}, -+ {0x900c9, 0x809}, -+ {0x900ca, 0x8}, -+ {0x900cb, 0x1880}, -+ {0x900cc, 0x839}, -+ {0x900cd, 0x0}, -+ {0x900ce, 0x82b0}, -+ {0x900cf, 0x838}, -+ {0x900d0, 0x18}, -+ {0x900d1, 0xe0}, -+ {0x900d2, 0x809}, -+ {0x900d3, 0x0}, -+ {0x900d4, 0xe0}, -+ {0x900d5, 0x869}, -+ {0x900d6, 0xf}, -+ {0x900d7, 0x7c0}, -+ {0x900d8, 0x839}, -+ {0x900d9, 0xa}, -+ {0x900da, 0x510}, -+ {0x900db, 0x839}, -+ {0x900dc, 0xa}, -+ {0x900dd, 0x700}, -+ {0x900de, 0x849}, -+ {0x900df, 0xa}, -+ {0x900e0, 0x700}, -+ {0x900e1, 0x859}, -+ {0x900e2, 0xa}, -+ {0x900e3, 0x708}, -+ {0x900e4, 0x859}, -+ {0x900e5, 0x2}, -+ {0x900e6, 0x708}, -+ {0x900e7, 0x849}, -+ {0x900e8, 0xff8}, -+ {0x900e9, 0x8410}, -+ {0x900ea, 0x839}, -+ {0x900eb, 0x7ff8}, -+ {0x900ec, 0x8498}, -+ {0x900ed, 0x838}, -+ {0x900ee, 0x10}, -+ {0x900ef, 0x8160}, -+ {0x900f0, 0x83c}, -+ {0x900f1, 0x0}, -+ {0x900f2, 0x7c8}, -+ {0x900f3, 0x809}, -+ {0x900f4, 0x0}, -+ {0x900f5, 0x1}, -+ {0x900f6, 0x8}, -+ {0x900f7, 0x0}, -+ {0x900f8, 0x45a}, -+ {0x900f9, 0x89}, -+ {0x900fa, 0x0}, -+ {0x900fb, 0x8018}, -+ {0x900fc, 0x808}, -+ {0x900fd, 0x0}, -+ {0x900fe, 0x8020}, -+ {0x900ff, 0x808}, -+ {0x90100, 0x479}, -+ {0x90101, 0xc7f8}, -+ {0x90102, 0x80c}, -+ {0x90103, 0x0}, -+ {0x90104, 0x0}, -+ {0x90105, 0x8}, -+ {0x90106, 0x0}, -+ {0x90107, 0x8018}, -+ {0x90108, 0x808}, -+ {0x90109, 0x0}, -+ {0x9010a, 0x8020}, -+ {0x9010b, 0x808}, -+ {0x9010c, 0x9}, -+ {0x9010d, 0xc9c0}, -+ {0x9010e, 0xc0c}, -+ {0x9010f, 0x0}, -+ {0x90110, 0xa8}, -+ {0x90111, 0x8c9}, -+ {0x90112, 0x29}, -+ {0x90113, 0x8160}, -+ {0x90114, 0x87c}, -+ {0x90115, 0xb8}, -+ {0x90116, 0x820}, -+ {0x90117, 0xc7e}, -+ {0x90118, 0x1}, -+ {0x90119, 0x0}, -+ {0x9011a, 0x78}, -+ {0x9011b, 0x0}, -+ {0x9011c, 0x1}, -+ {0x9011d, 0x78}, -+ {0x9011e, 0xd8}, -+ {0x9011f, 0x820}, -+ {0x90120, 0xc7e}, -+ {0x90121, 0x1}, -+ {0x90122, 0x0}, -+ {0x90123, 0x78}, -+ {0x90124, 0x0}, -+ {0x90125, 0x1}, -+ {0x90126, 0x78}, -+ {0x90127, 0xf8}, -+ {0x90128, 0x820}, -+ {0x90129, 0xc7e}, -+ {0x9012a, 0x1}, -+ {0x9012b, 0x0}, -+ {0x9012c, 0x78}, -+ {0x9012d, 0x0}, -+ {0x9012e, 0x1}, -+ {0x9012f, 0x78}, -+ {0x90130, 0x0}, -+ {0x90131, 0x700}, -+ {0x90132, 0x849}, -+ {0x90133, 0x0}, -+ {0x90134, 0x618}, -+ {0x90135, 0x809}, -+ {0x90136, 0x3ff8}, -+ {0x90137, 0x84b8}, -+ {0x90138, 0x808}, -+ {0x90139, 0x0}, -+ {0x9013a, 0x0}, -+ {0x9013b, 0x8}, -+ {0x9013c, 0x8}, -+ {0x9013d, 0xc870}, -+ {0x9013e, 0xc0c}, -+ {0x9013f, 0x18}, -+ {0x90140, 0x710}, -+ {0x90141, 0x849}, -+ {0x90142, 0x0}, -+ {0x90143, 0x4}, -+ {0x90144, 0x48}, -+ {0x90145, 0x0}, -+ {0x90146, 0x4}, -+ {0x90147, 0x48}, -+ {0x90148, 0x10}, -+ {0x90149, 0x710}, -+ {0x9014a, 0x849}, -+ {0x9014b, 0x0}, -+ {0x9014c, 0x4}, -+ {0x9014d, 0x48}, -+ {0x9014e, 0x0}, -+ {0x9014f, 0x710}, -+ {0x90150, 0x849}, -+ {0x90151, 0x0}, -+ {0x90152, 0x4}, -+ {0x90153, 0x48}, -+ {0x90154, 0x0}, -+ {0x90155, 0x4}, -+ {0x90156, 0x18}, -+ {0x90157, 0x0}, -+ {0x90158, 0x4}, -+ {0x90159, 0x18}, -+ {0x9015a, 0x0}, -+ {0x9015b, 0x4}, -+ {0x9015c, 0x18}, -+ {0x9015d, 0x0}, -+ {0x9015e, 0x8410}, -+ {0x9015f, 0x809}, -+ {0x90160, 0x0}, -+ {0x90161, 0x8498}, -+ {0x90162, 0x808}, -+ {0x90163, 0x5}, -+ {0x90164, 0x510}, -+ {0x90165, 0x809}, -+ {0x90166, 0x198}, -+ {0x90167, 0x1000}, -+ {0x90168, 0x809}, -+ {0x90169, 0x9}, -+ {0x9016a, 0x3c0}, -+ {0x9016b, 0x809}, -+ {0x9016c, 0x10}, -+ {0x9016d, 0x510}, -+ {0x9016e, 0x809}, -+ {0x9016f, 0x0}, -+ {0x90170, 0x3c0}, -+ {0x90171, 0x809}, -+ {0x90172, 0x18}, -+ {0x90173, 0x4}, -+ {0x90174, 0x8}, -+ {0x90175, 0x2}, -+ {0x90176, 0x510}, -+ {0x90177, 0x809}, -+ {0x90178, 0x2}, -+ {0x90179, 0x1000}, -+ {0x9017a, 0x809}, -+ {0x9017b, 0x68}, -+ {0x9017c, 0x801a}, -+ {0x9017d, 0x8}, -+ {0x9017e, 0x68}, -+ {0x9017f, 0x8022}, -+ {0x90180, 0x8}, -+ {0x90181, 0x479}, -+ {0x90182, 0xc7f8}, -+ {0x90183, 0x80c}, -+ {0x90184, 0x0}, -+ {0x90185, 0x0}, -+ {0x90186, 0x8}, -+ {0x90187, 0x68}, -+ {0x90188, 0x801a}, -+ {0x90189, 0x8}, -+ {0x9018a, 0x68}, -+ {0x9018b, 0x8022}, -+ {0x9018c, 0x8}, -+ {0x9018d, 0x9}, -+ {0x9018e, 0xc9c0}, -+ {0x9018f, 0xc0c}, -+ {0x90190, 0x0}, -+ {0x90191, 0xc870}, -+ {0x90192, 0xc0c}, -+ {0x90193, 0x0}, -+ {0x90194, 0x2a0}, -+ {0x90195, 0x809}, -+ {0x90196, 0x10}, -+ {0x90197, 0x8160}, -+ {0x90198, 0x89c}, -+ {0x90199, 0x2}, -+ {0x9019a, 0x7c8}, -+ {0x9019b, 0x809}, -+ {0x9019c, 0x0}, -+ {0x9019d, 0x1}, -+ {0x9019e, 0x8}, -+ {0x9019f, 0x40}, -+ {0x901a0, 0x1932}, -+ {0x901a1, 0x129}, -+ {0x901a2, 0xa}, -+ {0x901a3, 0xc140}, -+ {0x901a4, 0x80c}, -+ {0x901a5, 0x98}, -+ {0x901a6, 0x193a}, -+ {0x901a7, 0x129}, -+ {0x901a8, 0x90}, -+ {0x901a9, 0x1932}, -+ {0x901aa, 0x329}, -+ {0x901ab, 0x90}, -+ {0x901ac, 0x193a}, -+ {0x901ad, 0x329}, -+ {0x901ae, 0x88}, -+ {0x901af, 0x1882}, -+ {0x901b0, 0x9}, -+ {0x901b1, 0x0}, -+ {0x901b2, 0xc140}, -+ {0x901b3, 0x80c}, -+ {0x901b4, 0x10}, -+ {0x901b5, 0x400}, -+ {0x901b6, 0x80e}, -+ {0x901b7, 0xb}, -+ {0x901b8, 0x370}, -+ {0x901b9, 0x809}, -+ {0x901ba, 0x23b}, -+ {0x901bb, 0x100}, -+ {0x901bc, 0xcf9}, -+ {0x901bd, 0x0}, -+ {0x901be, 0x2a0}, -+ {0x901bf, 0x809}, -+ {0x901c0, 0x7800}, -+ {0x901c1, 0x8660}, -+ {0x901c2, 0x809}, -+ {0x901c3, 0xd}, -+ {0x901c4, 0x7c0}, -+ {0x901c5, 0x809}, -+ {0x901c6, 0x0}, -+ {0x901c7, 0x82b0}, -+ {0x901c8, 0x818}, -+ {0x901c9, 0x0}, -+ {0x901ca, 0x82b0}, -+ {0x901cb, 0x868}, -+ {0x901cc, 0x479}, -+ {0x901cd, 0xc7f8}, -+ {0x901ce, 0x91c}, -+ {0x901cf, 0x0}, -+ {0x901d0, 0x0}, -+ {0x901d1, 0x118}, -+ {0x901d2, 0x38}, -+ {0x901d3, 0x80a2}, -+ {0x901d4, 0x118}, -+ {0x901d5, 0x9}, -+ {0x901d6, 0xc9c0}, -+ {0x901d7, 0xd1c}, -+ {0x901d8, 0x0}, -+ {0x901d9, 0x0}, -+ {0x901da, 0x118}, -+ {0x901db, 0x8}, -+ {0x901dc, 0x508}, -+ {0x901dd, 0x809}, -+ {0x901de, 0x5}, -+ {0x901df, 0x7c0}, -+ {0x901e0, 0x809}, -+ {0x901e1, 0x8}, -+ {0x901e2, 0x82b0}, -+ {0x901e3, 0x868}, -+ {0x901e4, 0x8}, -+ {0x901e5, 0x82b0}, -+ {0x901e6, 0x818}, -+ {0x901e7, 0x8}, -+ {0x901e8, 0x82b0}, -+ {0x901e9, 0x888}, -+ {0x901ea, 0x10}, -+ {0x901eb, 0x510}, -+ {0x901ec, 0x809}, -+ {0x901ed, 0x0}, -+ {0x901ee, 0xa8}, -+ {0x901ef, 0x8c9}, -+ {0x901f0, 0x8}, -+ {0x901f1, 0x1900}, -+ {0x901f2, 0xc09}, -+ {0x901f3, 0x0}, -+ {0x901f4, 0x508}, -+ {0x901f5, 0x809}, -+ {0x901f6, 0x2}, -+ {0x901f7, 0x7c8}, -+ {0x901f8, 0x829}, -+ {0x901f9, 0xa}, -+ {0x901fa, 0x3c8}, -+ {0x901fb, 0xc29}, -+ {0x901fc, 0x199}, -+ {0x901fd, 0x3d0}, -+ {0x901fe, 0xc19}, -+ {0x901ff, 0x3}, -+ {0x90200, 0x0}, -+ {0x90201, 0x18}, -+ {0x90202, 0x38}, -+ {0x90203, 0x4}, -+ {0x90204, 0x18}, -+ {0x90205, 0x199}, -+ {0x90206, 0x3d0}, -+ {0x90207, 0xc09}, -+ {0x90208, 0x0}, -+ {0x90209, 0x0}, -+ {0x9020a, 0x8}, -+ {0x9020b, 0x9}, -+ {0x9020c, 0x150}, -+ {0x9020d, 0x809}, -+ {0x9020e, 0x9}, -+ {0x9020f, 0xc800}, -+ {0x90210, 0xc0c}, -+ {0x90211, 0x18}, -+ {0x90212, 0x8160}, -+ {0x90213, 0x8cc}, -+ {0x90214, 0x8}, -+ {0x90215, 0x13a}, -+ {0x90216, 0xc9}, -+ {0x90217, 0x24b}, -+ {0x90218, 0x100}, -+ {0x90219, 0x8c9}, -+ {0x9021a, 0x2}, -+ {0x9021b, 0x1}, -+ {0x9021c, 0xc8}, -+ {0x9021d, 0x0}, -+ {0x9021e, 0x100}, -+ {0x9021f, 0x8c9}, -+ {0x90220, 0x20}, -+ {0x90221, 0x4}, -+ {0x90222, 0xc8}, -+ {0x90223, 0x20}, -+ {0x90224, 0x4}, -+ {0x90225, 0xc8}, -+ {0x90226, 0x5}, -+ {0x90227, 0x0}, -+ {0x90228, 0xc8}, -+ {0x90229, 0x479}, -+ {0x9022a, 0xc7f8}, -+ {0x9022b, 0x8cc}, -+ {0x9022c, 0x0}, -+ {0x9022d, 0x0}, -+ {0x9022e, 0xc8}, -+ {0x9022f, 0x30}, -+ {0x90230, 0xaa}, -+ {0x90231, 0xc9}, -+ {0x90232, 0x9}, -+ {0x90233, 0xc9c0}, -+ {0x90234, 0xccc}, -+ {0x90235, 0x0}, -+ {0x90236, 0x0}, -+ {0x90237, 0xc8}, -+ {0x90238, 0x479}, -+ {0x90239, 0xc7f8}, -+ {0x9023a, 0x8bc}, -+ {0x9023b, 0x0}, -+ {0x9023c, 0x0}, -+ {0x9023d, 0xb8}, -+ {0x9023e, 0x30}, -+ {0x9023f, 0xaa}, -+ {0x90240, 0xb9}, -+ {0x90241, 0x9}, -+ {0x90242, 0xc9c0}, -+ {0x90243, 0xcbc}, -+ {0x90244, 0x0}, -+ {0x90245, 0x0}, -+ {0x90246, 0xb8}, -+ {0x90247, 0x25b}, -+ {0x90248, 0x100}, -+ {0x90249, 0xcc9}, -+ {0x9024a, 0x20}, -+ {0x9024b, 0x4}, -+ {0x9024c, 0xc8}, -+ {0x9024d, 0x20}, -+ {0x9024e, 0x4}, -+ {0x9024f, 0xc8}, -+ {0x90250, 0x20}, -+ {0x90251, 0x4}, -+ {0x90252, 0xa8}, -+ {0x90253, 0x4}, -+ {0x90254, 0x0}, -+ {0x90255, 0xc8}, -+ {0x90256, 0x9}, -+ {0x90257, 0xc800}, -+ {0x90258, 0xc6c}, -+ {0x90259, 0x26f}, -+ {0x9025a, 0x100}, -+ {0x9025b, 0xc19}, -+ {0x9025c, 0x8}, -+ {0x9025d, 0x4}, -+ {0x9025e, 0x18}, -+ {0x9025f, 0x27f}, -+ {0x90260, 0x100}, -+ {0x90261, 0xc19}, -+ {0x90262, 0x479}, -+ {0x90263, 0xc7f8}, -+ {0x90264, 0x80c}, -+ {0x90265, 0x0}, -+ {0x90266, 0x0}, -+ {0x90267, 0x8}, -+ {0x90268, 0x58}, -+ {0x90269, 0x8a}, -+ {0x9026a, 0x9}, -+ {0x9026b, 0x9}, -+ {0x9026c, 0xc9c0}, -+ {0x9026d, 0xc0c}, -+ {0x9026e, 0x0}, -+ {0x9026f, 0x0}, -+ {0x90270, 0x8}, -+ {0x90271, 0x18}, -+ {0x90272, 0x8160}, -+ {0x90273, 0x86c}, -+ {0x90274, 0x1008}, -+ {0x90275, 0x853b}, -+ {0x90276, 0x868}, -+ {0x90277, 0xc00}, -+ {0x90278, 0x8588}, -+ {0x90279, 0x868}, -+ {0x9027a, 0x8}, -+ {0x9027b, 0x85a8}, -+ {0x9027c, 0x868}, -+ {0x9027d, 0x8}, -+ {0x9027e, 0x85c8}, -+ {0x9027f, 0x868}, -+ {0x90280, 0x0}, -+ {0x90281, 0x8050}, -+ {0x90282, 0x868}, -+ {0x90283, 0x60}, -+ {0x90284, 0x138}, -+ {0x90285, 0x869}, -+ {0x90286, 0x18}, -+ {0x90287, 0x8510}, -+ {0x90288, 0x868}, -+ {0x90289, 0x18}, -+ {0x9028a, 0x2c8}, -+ {0x9028b, 0x869}, -+ {0x9028c, 0x10}, -+ {0x9028d, 0x8520}, -+ {0x9028e, 0x868}, -+ {0x9028f, 0x1ff8}, -+ {0x90290, 0x85d8}, -+ {0x90291, 0xc68}, -+ {0x90292, 0x0}, -+ {0x90293, 0xfdf0}, -+ {0x90294, 0x868}, -+ {0x90295, 0x8}, -+ {0x90296, 0x85f0}, -+ {0x90297, 0x868}, -+ {0x90298, 0x8}, -+ {0x90299, 0xa5f0}, -+ {0x9029a, 0x868}, -+ {0x9029b, 0x298}, -+ {0x9029c, 0x100}, -+ {0x9029d, 0x869}, -+ {0x9029e, 0x2}, -+ {0x9029f, 0x1}, -+ {0x902a0, 0x68}, -+ {0x902a1, 0x0}, -+ {0x902a2, 0x100}, -+ {0x902a3, 0x869}, -+ {0x902a4, 0x0}, -+ {0x902a5, 0x85f0}, -+ {0x902a6, 0x868}, -+ {0x902a7, 0x0}, -+ {0x902a8, 0xa5f0}, -+ {0x902a9, 0x868}, -+ {0x902aa, 0x33b}, -+ {0x902ab, 0x100}, -+ {0x902ac, 0x8c9}, -+ {0x902ad, 0x0}, -+ {0x902ae, 0x100}, -+ {0x902af, 0x8c9}, -+ {0x902b0, 0x1ff8}, -+ {0x902b1, 0x85d8}, -+ {0x902b2, 0xc68}, -+ {0x902b3, 0x8}, -+ {0x902b4, 0x8df0}, -+ {0x902b5, 0x868}, -+ {0x902b6, 0x8}, -+ {0x902b7, 0xadf0}, -+ {0x902b8, 0x868}, -+ {0x902b9, 0x2a8}, -+ {0x902ba, 0x100}, -+ {0x902bb, 0x869}, -+ {0x902bc, 0x2}, -+ {0x902bd, 0x1}, -+ {0x902be, 0x68}, -+ {0x902bf, 0x0}, -+ {0x902c0, 0x100}, -+ {0x902c1, 0x869}, -+ {0x902c2, 0x0}, -+ {0x902c3, 0x8df0}, -+ {0x902c4, 0x868}, -+ {0x902c5, 0x0}, -+ {0x902c6, 0xadf0}, -+ {0x902c7, 0x868}, -+ {0x902c8, 0x10}, -+ {0x902c9, 0x2c8}, -+ {0x902ca, 0x869}, -+ {0x902cb, 0x28}, -+ {0x902cc, 0x4}, -+ {0x902cd, 0x68}, -+ {0x902ce, 0xa}, -+ {0x902cf, 0x500}, -+ {0x902d0, 0xc69}, -+ {0x902d1, 0x0}, -+ {0x902d2, 0x8520}, -+ {0x902d3, 0x868}, -+ {0x902d4, 0x8}, -+ {0x902d5, 0x8530}, -+ {0x902d6, 0x868}, -+ {0x902d7, 0x2ba}, -+ {0x902d8, 0x100}, -+ {0x902d9, 0x869}, -+ {0x902da, 0x2}, -+ {0x902db, 0x1}, -+ {0x902dc, 0x68}, -+ {0x902dd, 0x2}, -+ {0x902de, 0x100}, -+ {0x902df, 0x869}, -+ {0x902e0, 0x0}, -+ {0x902e1, 0x8530}, -+ {0x902e2, 0x868}, -+ {0x902e3, 0x0}, -+ {0x902e4, 0x8510}, -+ {0x902e5, 0x868}, -+ {0x902e6, 0x0}, -+ {0x902e7, 0x2c8}, -+ {0x902e8, 0x869}, -+ {0x902e9, 0x8}, -+ {0x902ea, 0x8050}, -+ {0x902eb, 0x868}, -+ {0x902ec, 0x30}, -+ {0x902ed, 0x4}, -+ {0x902ee, 0x68}, -+ {0x902ef, 0x8}, -+ {0x902f0, 0x8520}, -+ {0x902f1, 0x868}, -+ {0x902f2, 0x0}, -+ {0x902f3, 0x8328}, -+ {0x902f4, 0x86b}, -+ {0x902f5, 0x2ca}, -+ {0x902f6, 0x100}, -+ {0x902f7, 0x869}, -+ {0x902f8, 0x2}, -+ {0x902f9, 0x1}, -+ {0x902fa, 0x68}, -+ {0x902fb, 0x4}, -+ {0x902fc, 0x100}, -+ {0x902fd, 0x869}, -+ {0x902fe, 0xff8}, -+ {0x902ff, 0x8328}, -+ {0x90300, 0x86b}, -+ {0x90301, 0x9}, -+ {0x90302, 0x500}, -+ {0x90303, 0xc29}, -+ {0x90304, 0x0}, -+ {0x90305, 0x8520}, -+ {0x90306, 0x868}, -+ {0x90307, 0x8}, -+ {0x90308, 0x3c8}, -+ {0x90309, 0xc29}, -+ {0x9030a, 0x0}, -+ {0x9030b, 0x150}, -+ {0x9030c, 0x809}, -+ {0x9030d, 0x2}, -+ {0x9030e, 0x370}, -+ {0x9030f, 0x809}, -+ {0x90310, 0x0}, -+ {0x90311, 0x400}, -+ {0x90312, 0x80e}, -+ {0x90313, 0x10}, -+ {0x90314, 0x4}, -+ {0x90315, 0x118}, -+ {0x90316, 0x20}, -+ {0x90317, 0x82b0}, -+ {0x90318, 0x808}, -+ {0x90319, 0x479}, -+ {0x9031a, 0xc7f8}, -+ {0x9031b, 0x80c}, -+ {0x9031c, 0x0}, -+ {0x9031d, 0x0}, -+ {0x9031e, 0x8}, -+ {0x9031f, 0x60}, -+ {0x90320, 0x8a}, -+ {0x90321, 0x9}, -+ {0x90322, 0x9}, -+ {0x90323, 0xc9c0}, -+ {0x90324, 0xc0c}, -+ {0x90325, 0x0}, -+ {0x90326, 0x0}, -+ {0x90327, 0x8}, -+ {0x90328, 0x8}, -+ {0x90329, 0x2a0}, -+ {0x9032a, 0x809}, -+ {0x9032b, 0x48}, -+ {0x9032c, 0xc822}, -+ {0x9032d, 0xc}, -+ {0x9032e, 0x48}, -+ {0x9032f, 0xcc32}, -+ {0x90330, 0xc}, -+ {0x90331, 0x9}, -+ {0x90332, 0xc800}, -+ {0x90333, 0xc0c}, -+ {0x90334, 0x0}, -+ {0x90335, 0x8168}, -+ {0x90336, 0x80c}, -+ {0x90337, 0x479}, -+ {0x90338, 0xc7f8}, -+ {0x90339, 0x91c}, -+ {0x9033a, 0x0}, -+ {0x9033b, 0x0}, -+ {0x9033c, 0x118}, -+ {0x9033d, 0x9190}, -+ {0x9033e, 0x80a1}, -+ {0x9033f, 0x918}, -+ {0x90340, 0x9}, -+ {0x90341, 0xc9c0}, -+ {0x90342, 0xd1c}, -+ {0x90343, 0x0}, -+ {0x90344, 0x0}, -+ {0x90345, 0x118}, -+ {0x90346, 0x18}, -+ {0x90347, 0xf0}, -+ {0x90348, 0x909}, -+ {0x90349, 0xa}, -+ {0x9034a, 0xc140}, -+ {0x9034b, 0x92c}, -+ {0x9034c, 0x88}, -+ {0x9034d, 0x1932}, -+ {0x9034e, 0x129}, -+ {0x9034f, 0x88}, -+ {0x90350, 0x193a}, -+ {0x90351, 0x129}, -+ {0x90352, 0x0}, -+ {0x90353, 0xc140}, -+ {0x90354, 0x92c}, -+ {0x90355, 0x8}, -+ {0x90356, 0x300}, -+ {0x90357, 0x819}, -+ {0x90358, 0x10}, -+ {0x90359, 0x8160}, -+ {0x9035a, 0x80c}, -+ {0x9035b, 0x8}, -+ {0x9035c, 0x7c8}, -+ {0x9035d, 0x801}, -+ {0x9035e, 0x8}, -+ {0x9035f, 0x0}, -+ {0x90360, 0x8}, -+ {0x90361, 0x8}, -+ {0x90362, 0x1880}, -+ {0x90363, 0x809}, -+ {0x90364, 0x10}, -+ {0x90365, 0x8160}, -+ {0x90366, 0x80c}, -+ {0x90367, 0x1800}, -+ {0x90368, 0x8660}, -+ {0x90369, 0x809}, -+ {0x9036a, 0x4000}, -+ {0x9036b, 0x8668}, -+ {0x9036c, 0x809}, -+ {0x9036d, 0x0}, -+ {0x9036e, 0xf0}, -+ {0x9036f, 0x909}, -+ {0x90370, 0xf}, -+ {0x90371, 0x7c0}, -+ {0x90372, 0x809}, -+ {0x90373, 0x0}, -+ {0x90374, 0x2a0}, -+ {0x90375, 0x809}, -+ {0x90376, 0x8}, -+ {0x90377, 0x618}, -+ {0x90378, 0x809}, -+ {0x90379, 0x0}, -+ {0x9037a, 0x84b8}, -+ {0x9037b, 0x808}, -+ {0x9037c, 0xff8}, -+ {0x9037d, 0x8410}, -+ {0x9037e, 0x809}, -+ {0x9037f, 0x7ff8}, -+ {0x90380, 0x8498}, -+ {0x90381, 0x808}, -+ {0x90382, 0x0}, -+ {0x90383, 0x7c8}, -+ {0x90384, 0x809}, -+ {0x90385, 0x8}, -+ {0x90386, 0x8168}, -+ {0x90387, 0x80c}, -+ {0x90388, 0x0}, -+ {0x90389, 0x1}, -+ {0x9038a, 0x8}, -+ {0x9038b, 0x0}, -+ {0x9038c, 0x4}, -+ {0x9038d, 0x8}, -+ {0x9038e, 0x0}, -+ {0x9038f, 0x4}, -+ {0x90390, 0x8}, -+ {0x90391, 0x18}, -+ {0x90392, 0x300}, -+ {0x90393, 0x809}, -+ {0x90394, 0x0}, -+ {0x90395, 0x480}, -+ {0x90396, 0x809}, -+ {0x90397, 0x8}, -+ {0x90398, 0x510}, -+ {0x90399, 0x809}, -+ {0x9039a, 0x7800}, -+ {0x9039b, 0x8660}, -+ {0x9039c, 0x809}, -+ {0x9039d, 0x18}, -+ {0x9039e, 0xf0}, -+ {0x9039f, 0x909}, -+ {0x903a0, 0x8}, -+ {0x903a1, 0x7c8}, -+ {0x903a2, 0x801}, -+ {0x903a3, 0x10}, -+ {0x903a4, 0x400}, -+ {0x903a5, 0x80e}, -+ {0x903a6, 0x8}, -+ {0x903a7, 0x150}, -+ {0x903a8, 0x809}, -+ {0x903a9, 0x9}, -+ {0x903aa, 0x370}, -+ {0x903ab, 0x809}, -+ {0x903ac, 0x18}, -+ {0x903ad, 0x8160}, -+ {0x903ae, 0x80c}, -+ {0x903af, 0x8}, -+ {0x903b0, 0xc800}, -+ {0x903b1, 0xc0c}, -+ {0x903b2, 0x8}, -+ {0x903b3, 0xc888}, -+ {0x903b4, 0xc04}, -+ {0x903b5, 0x20}, -+ {0x903b6, 0x8302}, -+ {0x903b7, 0xb}, -+ {0x903b8, 0x18}, -+ {0x903b9, 0x8582}, -+ {0x903ba, 0x8}, -+ {0x903bb, 0x9000}, -+ {0x903bc, 0x8539}, -+ {0x903bd, 0x808}, -+ {0x903be, 0x0}, -+ {0x903bf, 0x8588}, -+ {0x903c0, 0x808}, -+ {0x903c1, 0x40}, -+ {0x903c2, 0x85c8}, -+ {0x903c3, 0x808}, -+ {0x903c4, 0x0}, -+ {0x903c5, 0xfdf0}, -+ {0x903c6, 0x808}, -+ {0x903c7, 0x800}, -+ {0x903c8, 0xc5f0}, -+ {0x903c9, 0x808}, -+ {0x903ca, 0x1ff8}, -+ {0x903cb, 0xfdd8}, -+ {0x903cc, 0xc08}, -+ {0x903cd, 0x18}, -+ {0x903ce, 0xfda8}, -+ {0x903cf, 0x808}, -+ {0x903d0, 0x40}, -+ {0x903d1, 0x8520}, -+ {0x903d2, 0x8d8}, -+ {0x903d3, 0x80}, -+ {0x903d4, 0x8520}, -+ {0x903d5, 0x8e8}, -+ {0x903d6, 0x30a}, -+ {0x903d7, 0x100}, -+ {0x903d8, 0x8d9}, -+ {0x903d9, 0x32a}, -+ {0x903da, 0x100}, -+ {0x903db, 0x8e9}, -+ {0x903dc, 0x0}, -+ {0x903dd, 0x1}, -+ {0x903de, 0x8}, -+ {0x903df, 0x0}, -+ {0x903e0, 0x100}, -+ {0x903e1, 0x809}, -+ {0x903e2, 0x1ff8}, -+ {0x903e3, 0xfdd8}, -+ {0x903e4, 0xc08}, -+ {0x903e5, 0x8}, -+ {0x903e6, 0xfda8}, -+ {0x903e7, 0x808}, -+ {0x903e8, 0x140}, -+ {0x903e9, 0x8520}, -+ {0x903ea, 0x8d8}, -+ {0x903eb, 0x180}, -+ {0x903ec, 0x8520}, -+ {0x903ed, 0x8e8}, -+ {0x903ee, 0x30a}, -+ {0x903ef, 0x100}, -+ {0x903f0, 0x8d9}, -+ {0x903f1, 0x32a}, -+ {0x903f2, 0x100}, -+ {0x903f3, 0x8e9}, -+ {0x903f4, 0x0}, -+ {0x903f5, 0x1}, -+ {0x903f6, 0x8}, -+ {0x903f7, 0x0}, -+ {0x903f8, 0x100}, -+ {0x903f9, 0x809}, -+ {0x903fa, 0x9}, -+ {0x903fb, 0x500}, -+ {0x903fc, 0xc09}, -+ {0x903fd, 0x10}, -+ {0x903fe, 0x82b0}, -+ {0x903ff, 0x808}, -+ {0x90400, 0x0}, -+ {0x90401, 0x8520}, -+ {0x90402, 0x808}, -+ {0x90403, 0x8}, -+ {0x90404, 0x3c8}, -+ {0x90405, 0xc09}, -+ {0x90406, 0x0}, -+ {0x90407, 0x150}, -+ {0x90408, 0x809}, -+ {0x90409, 0x2}, -+ {0x9040a, 0x370}, -+ {0x9040b, 0x809}, -+ {0x9040c, 0x0}, -+ {0x9040d, 0x400}, -+ {0x9040e, 0x80e}, -+ {0x9040f, 0x8}, -+ {0x90410, 0xc848}, -+ {0x90411, 0xc0c}, -+ {0x90412, 0x0}, -+ {0x90413, 0xc890}, -+ {0x90414, 0x804}, -+ {0x90415, 0x20}, -+ {0x90416, 0x8302}, -+ {0x90417, 0xb}, -+ {0x90418, 0x18}, -+ {0x90419, 0x8582}, -+ {0x9041a, 0x8}, -+ {0x9041b, 0x0}, -+ {0x9041c, 0x82b0}, -+ {0x9041d, 0x808}, -+ {0x9041e, 0x1000}, -+ {0x9041f, 0x8539}, -+ {0x90420, 0x808}, -+ {0x90421, 0x0}, -+ {0x90422, 0x8588}, -+ {0x90423, 0x808}, -+ {0x90424, 0x40}, -+ {0x90425, 0x85c8}, -+ {0x90426, 0x808}, -+ {0x90427, 0x7f8}, -+ {0x90428, 0xfdf0}, -+ {0x90429, 0x808}, -+ {0x9042a, 0x800}, -+ {0x9042b, 0xc5f0}, -+ {0x9042c, 0x808}, -+ {0x9042d, 0x80}, -+ {0x9042e, 0x8088}, -+ {0x9042f, 0x80b}, -+ {0x90430, 0x1ff8}, -+ {0x90431, 0xfdd8}, -+ {0x90432, 0xc08}, -+ {0x90433, 0x18}, -+ {0x90434, 0xfda8}, -+ {0x90435, 0x808}, -+ {0x90436, 0x200}, -+ {0x90437, 0x8520}, -+ {0x90438, 0x8d8}, -+ {0x90439, 0x400}, -+ {0x9043a, 0x8520}, -+ {0x9043b, 0x8e8}, -+ {0x9043c, 0x2da}, -+ {0x9043d, 0x100}, -+ {0x9043e, 0x8d9}, -+ {0x9043f, 0x2ea}, -+ {0x90440, 0x100}, -+ {0x90441, 0x8e9}, -+ {0x90442, 0x2}, -+ {0x90443, 0x1}, -+ {0x90444, 0x8}, -+ {0x90445, 0x0}, -+ {0x90446, 0x100}, -+ {0x90447, 0x809}, -+ {0x90448, 0x1ff8}, -+ {0x90449, 0xfdd8}, -+ {0x9044a, 0xc08}, -+ {0x9044b, 0x8}, -+ {0x9044c, 0xfda8}, -+ {0x9044d, 0x808}, -+ {0x9044e, 0xa00}, -+ {0x9044f, 0x8520}, -+ {0x90450, 0x8d8}, -+ {0x90451, 0xc00}, -+ {0x90452, 0x8520}, -+ {0x90453, 0x8e8}, -+ {0x90454, 0x2da}, -+ {0x90455, 0x100}, -+ {0x90456, 0x8d9}, -+ {0x90457, 0x2ea}, -+ {0x90458, 0x100}, -+ {0x90459, 0x8e9}, -+ {0x9045a, 0x0}, -+ {0x9045b, 0x1}, -+ {0x9045c, 0x8}, -+ {0x9045d, 0x0}, -+ {0x9045e, 0x100}, -+ {0x9045f, 0x809}, -+ {0x90460, 0x9}, -+ {0x90461, 0x500}, -+ {0x90462, 0xc09}, -+ {0x90463, 0x10}, -+ {0x90464, 0x82b0}, -+ {0x90465, 0x808}, -+ {0x90466, 0x0}, -+ {0x90467, 0x8520}, -+ {0x90468, 0x808}, -+ {0x90469, 0x8}, -+ {0x9046a, 0x3c8}, -+ {0x9046b, 0xc09}, -+ {0x9046c, 0x0}, -+ {0x9046d, 0x150}, -+ {0x9046e, 0x809}, -+ {0x9046f, 0x2}, -+ {0x90470, 0x370}, -+ {0x90471, 0x809}, -+ {0x90472, 0x0}, -+ {0x90473, 0x400}, -+ {0x90474, 0x80e}, -+ {0x90475, 0x8}, -+ {0x90476, 0xc848}, -+ {0x90477, 0xc0c}, -+ {0x90478, 0x0}, -+ {0x90479, 0xc890}, -+ {0x9047a, 0x804}, -+ {0x9047b, 0x1008}, -+ {0x9047c, 0x853b}, -+ {0x9047d, 0x808}, -+ {0x9047e, 0xc00}, -+ {0x9047f, 0x8588}, -+ {0x90480, 0x808}, -+ {0x90481, 0x8}, -+ {0x90482, 0x85a8}, -+ {0x90483, 0x808}, -+ {0x90484, 0x8}, -+ {0x90485, 0x85c8}, -+ {0x90486, 0x808}, -+ {0x90487, 0x60}, -+ {0x90488, 0x138}, -+ {0x90489, 0x809}, -+ {0x9048a, 0x18}, -+ {0x9048b, 0xc8}, -+ {0x9048c, 0x809}, -+ {0x9048d, 0x0}, -+ {0x9048e, 0xa4}, -+ {0x9048f, 0x809}, -+ {0x90490, 0x0}, -+ {0x90491, 0x8510}, -+ {0x90492, 0x808}, -+ {0x90493, 0x2fa}, -+ {0x90494, 0x100}, -+ {0x90495, 0x8d9}, -+ {0x90496, 0x31a}, -+ {0x90497, 0x100}, -+ {0x90498, 0x8e9}, -+ {0x90499, 0x2}, -+ {0x9049a, 0x1}, -+ {0x9049b, 0x8}, -+ {0x9049c, 0x2}, -+ {0x9049d, 0x100}, -+ {0x9049e, 0x809}, -+ {0x9049f, 0x202}, -+ {0x904a0, 0x8510}, -+ {0x904a1, 0xc08}, -+ {0x904a2, 0x50}, -+ {0x904a3, 0xa2}, -+ {0x904a4, 0x9}, -+ {0x904a5, 0x0}, -+ {0x904a6, 0x0}, -+ {0x904a7, 0x8}, -+ {0x904a8, 0x0}, -+ {0x904a9, 0x0}, -+ {0x904aa, 0x8}, -+ {0x904ab, 0x0}, -+ {0x904ac, 0x0}, -+ {0x904ad, 0x8}, -+ {0x904ae, 0x0}, -+ {0x904af, 0xc8}, -+ {0x904b0, 0x809}, -+ {0x904b1, 0xb}, -+ {0x904b2, 0x508}, -+ {0x904b3, 0x809}, -+ {0x904b4, 0x8}, -+ {0x904b5, 0x1900}, -+ {0x904b6, 0xc09}, -+ {0x904b7, 0x2}, -+ {0x904b8, 0x0}, -+ {0x904b9, 0x8}, -+ {0x904ba, 0x0}, -+ {0x904bb, 0x508}, -+ {0x904bc, 0x809}, -+ {0x904bd, 0x9}, -+ {0x904be, 0x500}, -+ {0x904bf, 0xc09}, -+ {0x904c0, 0x10}, -+ {0x904c1, 0x82b0}, -+ {0x904c2, 0x808}, -+ {0x904c3, 0x0}, -+ {0x904c4, 0x8520}, -+ {0x904c5, 0x808}, -+ {0x904c6, 0x8}, -+ {0x904c7, 0x3c8}, -+ {0x904c8, 0xc09}, -+ {0x904c9, 0x0}, -+ {0x904ca, 0x150}, -+ {0x904cb, 0x809}, -+ {0x904cc, 0x2}, -+ {0x904cd, 0x370}, -+ {0x904ce, 0x809}, -+ {0x904cf, 0x0}, -+ {0x904d0, 0x400}, -+ {0x904d1, 0x80e}, -+ {0x904d2, 0x8}, -+ {0x904d3, 0xc848}, -+ {0x904d4, 0xc0c}, -+ {0x904d5, 0x0}, -+ {0x904d6, 0xc890}, -+ {0x904d7, 0x804}, -+ {0x904d8, 0x20}, -+ {0x904d9, 0x8302}, -+ {0x904da, 0xb}, -+ {0x904db, 0x18}, -+ {0x904dc, 0x8582}, -+ {0x904dd, 0x8}, -+ {0x904de, 0x1000}, -+ {0x904df, 0x8539}, -+ {0x904e0, 0x808}, -+ {0x904e1, 0x0}, -+ {0x904e2, 0x8588}, -+ {0x904e3, 0x808}, -+ {0x904e4, 0x40}, -+ {0x904e5, 0x85c8}, -+ {0x904e6, 0x808}, -+ {0x904e7, 0x8}, -+ {0x904e8, 0xfdf0}, -+ {0x904e9, 0x808}, -+ {0x904ea, 0x80}, -+ {0x904eb, 0x8088}, -+ {0x904ec, 0x80b}, -+ {0x904ed, 0x0}, -+ {0x904ee, 0x3b8}, -+ {0x904ef, 0x869}, -+ {0x904f0, 0x1ff8}, -+ {0x904f1, 0xfdd8}, -+ {0x904f2, 0xc08}, -+ {0x904f3, 0x18}, -+ {0x904f4, 0xfda8}, -+ {0x904f5, 0x808}, -+ {0x904f6, 0x40}, -+ {0x904f7, 0x8520}, -+ {0x904f8, 0x8d8}, -+ {0x904f9, 0x80}, -+ {0x904fa, 0x8520}, -+ {0x904fb, 0x8e8}, -+ {0x904fc, 0x2da}, -+ {0x904fd, 0x100}, -+ {0x904fe, 0x8d9}, -+ {0x904ff, 0x2ea}, -+ {0x90500, 0x100}, -+ {0x90501, 0x8e9}, -+ {0x90502, 0x2}, -+ {0x90503, 0x1}, -+ {0x90504, 0x8}, -+ {0x90505, 0x0}, -+ {0x90506, 0x100}, -+ {0x90507, 0x809}, -+ {0x90508, 0x1ff8}, -+ {0x90509, 0xfdd8}, -+ {0x9050a, 0xc08}, -+ {0x9050b, 0x8}, -+ {0x9050c, 0xfda8}, -+ {0x9050d, 0x808}, -+ {0x9050e, 0x140}, -+ {0x9050f, 0x8520}, -+ {0x90510, 0x8d8}, -+ {0x90511, 0x180}, -+ {0x90512, 0x8520}, -+ {0x90513, 0x8e8}, -+ {0x90514, 0x2da}, -+ {0x90515, 0x100}, -+ {0x90516, 0x8d9}, -+ {0x90517, 0x2ea}, -+ {0x90518, 0x100}, -+ {0x90519, 0x8e9}, -+ {0x9051a, 0x0}, -+ {0x9051b, 0x1}, -+ {0x9051c, 0x8}, -+ {0x9051d, 0x0}, -+ {0x9051e, 0x100}, -+ {0x9051f, 0x809}, -+ {0x90520, 0x9}, -+ {0x90521, 0x500}, -+ {0x90522, 0xc09}, -+ {0x90523, 0x10}, -+ {0x90524, 0x82b0}, -+ {0x90525, 0x808}, -+ {0x90526, 0x0}, -+ {0x90527, 0x8520}, -+ {0x90528, 0x808}, -+ {0x90529, 0x8}, -+ {0x9052a, 0x3c8}, -+ {0x9052b, 0xc09}, -+ {0x9052c, 0x0}, -+ {0x9052d, 0x150}, -+ {0x9052e, 0x809}, -+ {0x9052f, 0x2}, -+ {0x90530, 0x370}, -+ {0x90531, 0x809}, -+ {0x90532, 0x0}, -+ {0x90533, 0x400}, -+ {0x90534, 0x80e}, -+ {0x90535, 0x8}, -+ {0x90536, 0xc848}, -+ {0x90537, 0xc0c}, -+ {0x90538, 0x0}, -+ {0x90539, 0xc890}, -+ {0x9053a, 0x804}, -+ {0xd00e7, 0x600}, -+ {0x9001c, 0x0}, -+ {0x90020, 0x77}, -+ {0x90024, 0x82}, -+ {0x90025, 0x2b}, -+ {0x90026, 0x2b}, -+ {0x9002b, 0x110}, -+ {0x90708, 0x127}, -+ {0x90700, 0x14d}, -+ {0x90701, 0x16f}, -+ {0x90702, 0x18e}, -+ {0x90703, 0x12d}, -+ {0x90704, 0x0}, -+ {0x90705, 0x0}, -+ {0x90706, 0x0}, -+ {0x90707, 0x0}, -+ {0x2018a, 0x0}, -+ {0x20124, 0x1}, -+ {0x2018b, 0x16}, -+ {0x20125, 0x39}, -+ {0x2018c, 0x4e}, -+ {0x20126, 0x1}, -+ {0x2018d, 0x16}, -+ {0x20127, 0x39}, -+ {0x2018e, 0x4e}, -+ {0x20128, 0x17}, -+ {0x2018f, 0x27}, -+ {0x20129, 0x4f}, -+ {0x20190, 0x5f}, -+ {0x2012a, 0x17}, -+ {0x20191, 0x27}, -+ {0x2012b, 0x4f}, -+ {0x20192, 0x5f}, -+ {0x2012c, 0x28}, -+ {0x20193, 0x38}, -+ {0x2012d, 0x60}, -+ {0x20194, 0x70}, -+ {0x2012e, 0x28}, -+ {0x20195, 0x38}, -+ {0x2012f, 0x60}, -+ {0x20196, 0x70}, -+ {0x20130, 0x80}, -+ {0x20197, 0x80}, -+ {0x20131, 0x80}, -+ {0x20198, 0x80}, -+ {0x20132, 0x80}, -+ {0x20199, 0x80}, -+ {0x20133, 0x80}, -+ {0x2019a, 0x80}, -+ {0x20134, 0x71}, -+ {0x2019b, 0x74}, -+ {0x20135, 0x77}, -+ {0x2019c, 0x7a}, -+ {0x20136, 0x71}, -+ {0x2019d, 0x74}, -+ {0x20137, 0x77}, -+ {0x2019e, 0x7a}, -+ {0x20138, 0x75}, -+ {0x2019f, 0x76}, -+ {0x20139, 0x7b}, -+ {0x201a0, 0x7c}, -+ {0x2013a, 0x75}, -+ {0x201a1, 0x76}, -+ {0x2013b, 0x7b}, -+ {0x201a2, 0x7c}, -+ {0x2013c, 0x7d}, -+ {0x201a3, 0x7e}, -+ {0x2013d, 0x7d}, -+ {0x201a4, 0x7e}, -+ {0x2013e, 0x7d}, -+ {0x201a5, 0x7e}, -+ {0x2013f, 0x7d}, -+ {0x201a6, 0x7e}, -+ {0x20140, 0x7f}, -+ {0x201a7, 0x7f}, -+ {0x20141, 0x7f}, -+ {0x201a8, 0x7f}, -+ {0x20142, 0x7f}, -+ {0x201a9, 0x7f}, -+ {0x20143, 0x7f}, -+ {0x201aa, 0x7f}, -+ {0x20144, 0x80}, -+ {0x201ab, 0x7f}, -+ {0x20145, 0x80}, -+ {0x201ac, 0x7f}, -+ {0x20146, 0x80}, -+ {0x201ad, 0x7f}, -+ {0x20147, 0x80}, -+ {0x201ae, 0x7f}, -+ {0x20148, 0x81}, -+ {0x201af, 0x93}, -+ {0x20149, 0x81}, -+ {0x201b0, 0x93}, -+ {0x2014a, 0x10a}, -+ {0x201b1, 0x11b}, -+ {0x2014b, 0x10a}, -+ {0x201b2, 0x11b}, -+ {0x2014c, 0x94}, -+ {0x201b3, 0x9b}, -+ {0x2014d, 0x94}, -+ {0x201b4, 0x9b}, -+ {0x2014e, 0x11c}, -+ {0x201b5, 0x122}, -+ {0x2014f, 0x11c}, -+ {0x201b6, 0x122}, -+ {0x20150, 0x9c}, -+ {0x201b7, 0xaf}, -+ {0x20151, 0x9c}, -+ {0x201b8, 0xaf}, -+ {0x20152, 0x123}, -+ {0x201b9, 0x132}, -+ {0x20153, 0x123}, -+ {0x201ba, 0x132}, -+ {0x20154, 0xb0}, -+ {0x201bb, 0xc0}, -+ {0x20155, 0xb0}, -+ {0x201bc, 0xc0}, -+ {0x20156, 0x133}, -+ {0x201bd, 0x143}, -+ {0x20157, 0x133}, -+ {0x201be, 0x143}, -+ {0x20158, 0xc1}, -+ {0x201bf, 0xca}, -+ {0x20159, 0xc1}, -+ {0x201c0, 0xca}, -+ {0x2015a, 0x144}, -+ {0x201c1, 0x14d}, -+ {0x2015b, 0x144}, -+ {0x201c2, 0x14d}, -+ {0x2015c, 0xcb}, -+ {0x201c3, 0xd4}, -+ {0x2015d, 0xcb}, -+ {0x201c4, 0xd4}, -+ {0x2015e, 0x14e}, -+ {0x201c5, 0x157}, -+ {0x2015f, 0x14e}, -+ {0x201c6, 0x157}, -+ {0x20160, 0xd5}, -+ {0x201c7, 0xdf}, -+ {0x20161, 0xd5}, -+ {0x201c8, 0xdf}, -+ {0x20162, 0x158}, -+ {0x201c9, 0x161}, -+ {0x20163, 0x158}, -+ {0x201ca, 0x161}, -+ {0x20164, 0xe0}, -+ {0x201cb, 0xee}, -+ {0x20165, 0xe0}, -+ {0x201cc, 0xee}, -+ {0x20166, 0x162}, -+ {0x201cd, 0x170}, -+ {0x20167, 0x162}, -+ {0x201ce, 0x170}, -+ {0x20168, 0xef}, -+ {0x201cf, 0xf9}, -+ {0x20169, 0xef}, -+ {0x201d0, 0xf9}, -+ {0x2016a, 0x171}, -+ {0x201d1, 0x17a}, -+ {0x2016b, 0x171}, -+ {0x201d2, 0x17a}, -+ {0x2016c, 0xfa}, -+ {0x201d3, 0x108}, -+ {0x2016d, 0xfa}, -+ {0x201d4, 0x108}, -+ {0x2016e, 0x17b}, -+ {0x201d5, 0x189}, -+ {0x2016f, 0x17b}, -+ {0x201d6, 0x189}, -+ {0x20170, 0x109}, -+ {0x201d7, 0x109}, -+ {0x20171, 0x109}, -+ {0x201d8, 0x109}, -+ {0x20172, 0x18a}, -+ {0x201d9, 0x18a}, -+ {0x20173, 0x18a}, -+ {0x201da, 0x18a}, -+ {0x41613, 0xb00}, -+ {0x41617, 0x0}, -+ {0x4163b, 0xb00}, -+ {0x4163f, 0x0}, -+ {0x41663, 0xb00}, -+ {0x41667, 0x0}, -+ {0x4168b, 0xb00}, -+ {0x4168f, 0x0}, -+ {0x41723, 0xb00}, -+ {0x41727, 0x0}, -+ {0x4174b, 0xb00}, -+ {0x4174f, 0x0}, -+ {0x417f3, 0xb00}, -+ {0x417f7, 0x0}, -+ {0x4181b, 0xb00}, -+ {0x4181f, 0x0}, -+ {0x41a2b, 0x6b00}, -+ {0x41a2f, 0x0}, -+ {0x41a53, 0x3b00}, -+ {0x41a57, 0x800}, -+ {0x41a7b, 0x6b00}, -+ {0x41a7f, 0x0}, -+ {0x41aa3, 0x3b00}, -+ {0x41aa7, 0x800}, -+ {0x41b33, 0x6b00}, -+ {0x41b37, 0x0}, -+ {0x41b5b, 0x3b00}, -+ {0x41b5f, 0x800}, -+ {0x41bfb, 0x6b00}, -+ {0x41bff, 0x0}, -+ {0x41c23, 0x3b00}, -+ {0x41c27, 0x800}, -+ {0x41008, 0xc9d8}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0xc808}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x2b00}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0xc958}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0xcd88}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x2b00}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0xc0d8}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0xd848}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x2b00}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0xc158}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0xddc8}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x2b00}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0xc1d8}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0xc308}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x2b00}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0xc558}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0xea08}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x2b00}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0xc5d8}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0xe308}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x2b00}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x48d8}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x4248}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x88d8}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x9648}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x2b00}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0xca58}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0xc108}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x2b00}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0xcb58}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0xc008}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x2b00}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0xd4d8}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0xc008}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0xc0001, 0x5061}, -+ {0xc0002, 0x7098}, -+ {0xc0003, 0x0}, -+ {0xc0000, 0xbedc}, -+ {0xc0006, 0xb0db}, -+ {0xc0007, 0x0}, -+ {0x9070c, 0x0}, -+ {0x9070d, 0x7ff}, -+ {0x9070e, 0x668}, -+ {0x9070f, 0x7910}, -+ {0x90710, 0x355e}, -+ {0x90711, 0xcbb5}, -+ {0x90713, 0xffff}, -+ {0x90714, 0x710}, -+ {0x90715, 0x7800}, -+ {0x90c10, 0xffff}, -+ {0x90c12, 0xff10}, -+ {0x90712, 0x2ee8}, -+ {0x90c11, 0xffff}, -+ {0x90716, 0xffdf}, -+ {0x90717, 0x6f10}, -+ {0x90718, 0x6f10}, -+ {0x90719, 0x2868}, -+ {0x9071a, 0x2868}, -+ {0x9071b, 0xfeef}, -+ {0x90904, 0xe400}, -+ {0x90986, 0xe400}, -+ {0x90920, 0x0}, -+ {0x90921, 0x0}, -+ {0x90922, 0x0}, -+ {0x90923, 0x0}, -+ {0x90924, 0xff00}, -+ {0x90925, 0xff00}, -+ {0x90926, 0xff00}, -+ {0x90927, 0xff00}, -+ {0x90930, 0x4000}, -+ {0x90931, 0x2000}, -+ {0x90932, 0xff00}, -+ {0x90933, 0xff00}, -+ {0x9090a, 0x0}, -+ {0x9090c, 0x0}, -+ {0x9090d, 0x1}, -+ {0x200f0, 0x27f7}, -+ {0x200f1, 0x2108}, -+ {0x200f2, 0x2108}, -+ {0x100b9, 0x1}, -+ {0x100b1, 0x180}, -+ {0x100ba, 0x1}, -+ {0x100a2, 0x0}, -+ {0x100b5, 0x1}, -+ {0x110b9, 0x1}, -+ {0x110b1, 0x180}, -+ {0x110ba, 0x1}, -+ {0x110a2, 0x0}, -+ {0x110b5, 0x1}, -+ {0x120b9, 0x1}, -+ {0x120b1, 0x180}, -+ {0x120ba, 0x1}, -+ {0x120a2, 0x0}, -+ {0x120b5, 0x1}, -+ {0x130b9, 0x1}, -+ {0x130b1, 0x180}, -+ {0x130ba, 0x1}, -+ {0x130a2, 0x0}, -+ {0x130b5, 0x1}, -+ {0x70024, 0x5a3c}, -+ {0x70025, 0x5a3c}, -+ {0x70026, 0x5a3c}, -+ {0x70027, 0x5a3c}, -+ {0x70028, 0x5a3c}, -+ {0x70029, 0x5a3c}, -+ {0x7002a, 0x5a3c}, -+ {0x7002b, 0x5a3c}, -+ {0x70124, 0x5a3c}, -+ {0x70125, 0x5a3c}, -+ {0x70126, 0x5a3c}, -+ {0x70127, 0x5a3c}, -+ {0x70128, 0x5a3c}, -+ {0x70129, 0x5a3c}, -+ {0x7012a, 0x5a3c}, -+ {0x7012b, 0x5a3c}, -+ {0x70224, 0x5a3c}, -+ {0x70225, 0x5a3c}, -+ {0x70226, 0x5a3c}, -+ {0x70227, 0x5a3c}, -+ {0x70228, 0x5a3c}, -+ {0x70229, 0x5a3c}, -+ {0x7022a, 0x5a3c}, -+ {0x7022b, 0x5a3c}, -+ {0x70324, 0x5a3c}, -+ {0x70325, 0x5a3c}, -+ {0x70326, 0x5a3c}, -+ {0x70327, 0x5a3c}, -+ {0x70328, 0x5a3c}, -+ {0x70329, 0x5a3c}, -+ {0x7032a, 0x5a3c}, -+ {0x7032b, 0x5a3c}, -+ {0x70424, 0x5a3c}, -+ {0x70425, 0x5a3c}, -+ {0x70426, 0x5a3c}, -+ {0x70427, 0x5a3c}, -+ {0x70428, 0x5a3c}, -+ {0x70429, 0x5a3c}, -+ {0x7042a, 0x5a3c}, -+ {0x7042b, 0x5a3c}, -+ {0x70524, 0x5a3c}, -+ {0x70525, 0x5a3c}, -+ {0x70526, 0x5a3c}, -+ {0x70527, 0x5a3c}, -+ {0x70528, 0x5a3c}, -+ {0x70529, 0x5a3c}, -+ {0x7052a, 0x5a3c}, -+ {0x7052b, 0x5a3c}, -+ {0x70624, 0x5a3c}, -+ {0x70625, 0x5a3c}, -+ {0x70626, 0x5a3c}, -+ {0x70627, 0x5a3c}, -+ {0x70628, 0x5a3c}, -+ {0x70629, 0x5a3c}, -+ {0x7062a, 0x5a3c}, -+ {0x7062b, 0x5a3c}, -+ {0x70724, 0x5a3c}, -+ {0x70725, 0x5a3c}, -+ {0x70726, 0x5a3c}, -+ {0x70727, 0x5a3c}, -+ {0x70728, 0x5a3c}, -+ {0x70729, 0x5a3c}, -+ {0x7072a, 0x5a3c}, -+ {0x7072b, 0x5a3c}, -+ {0x70824, 0x5a3c}, -+ {0x70825, 0x5a3c}, -+ {0x70826, 0x5a3c}, -+ {0x70827, 0x5a3c}, -+ {0x70828, 0x5a3c}, -+ {0x70829, 0x5a3c}, -+ {0x7082a, 0x5a3c}, -+ {0x7082b, 0x5a3c}, -+ {0x70065, 0x1ff}, -+ {0x2007e, 0x33}, -+ {0x200ef, 0xffff}, -+ {0x90910, 0x2}, -+ {0x20310, 0x1}, -+ {0x20311, 0x1}, -+ {0xc0080, 0x2}, -+ {0xd0003, 0x0}, -+}; -+ -+static struct dram_fsp_msg ddr_dram_fsp_msg[] = { -+ { -+ /* P0 6400mbps */ -+ .drate = 6400, -+ .ssc = false, -+ .fsp_phy_cfg = ddr_phy_fsp0_cfg, -+ .fsp_phy_cfg_num = ARRAY_SIZE(ddr_phy_fsp0_cfg), -+ .fw_type = FW_1D_IMAGE, -+ .fsp_phy_msgh_cfg = ddr_phy_msgh_fsp0_cfg, -+ .fsp_phy_msgh_cfg_num = ARRAY_SIZE(ddr_phy_msgh_fsp0_cfg), -+ .fsp_phy_pie_cfg = ddr_phy_pie_fsp0_cfg, -+ .fsp_phy_pie_cfg_num = ARRAY_SIZE(ddr_phy_pie_fsp0_cfg), -+ }, -+}; -+ -+/* dram fsp cfg */ -+static struct dram_fsp_cfg ddr_dram_fsp_cfg[] = { -+ { -+ .ddrc_cfg = ddr_dram_fsp0_ddrc_cfg, -+ .ddrc_cfg_num = ARRAY_SIZE(ddr_dram_fsp0_ddrc_cfg), -+ .bypass = 0, -+ }, -+}; -+ -+/* ddr timing config params */ -+struct dram_timing_info dram_timing = { -+ .ddrc_cfg = ddr_ddrc_cfg, -+ .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), -+ .ddrphy_cfg = ddr_ddrphy_cfg, -+ .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), -+ .fsp_msg = ddr_dram_fsp_msg, -+ .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), -+ .ddrphy_trained_csr = ddr_ddrphy_trained_csr, -+ .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), -+ .ddrphy_pie = ddr_phy_pie, -+ .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), -+ .fsp_table = { 6400, }, -+ .fsp_cfg = ddr_dram_fsp_cfg, -+ .fsp_cfg_num = ARRAY_SIZE(ddr_dram_fsp_cfg), -+}; -diff --git a/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c b/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c -new file mode 100644 -index 000000000000..59199b033b17 ---- /dev/null -+++ b/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c -@@ -0,0 +1,10752 @@ -+/* -+ * Copyright 2023-2025 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ * -+ * Code generated with DDR Tool v3.7.0_0.2-4600df02. -+ * DDR PHY FW2024.09 -+ * Chip revision: B0 -+ */ -+ -+#include "ddr.h" -+ -+/* Initialize DDRC registers */ -+static struct ddrc_cfg_param ddr_ddrc_cfg[] = { -+ {0x5e080110, 0x41114001U}, -+ {0x5e080000, 0x3ffU}, -+ {0x5e080008, 0x0U}, -+ {0x5e080010, 0x4U}, -+ {0x5e080014, 0x80000U}, -+ {0x5e080020, 0x80000000U}, -+ {0x5e080024, 0x80007ffU}, -+ {0x5e080028, 0x80000000U}, -+ {0x5e08002c, 0x7ffU}, -+ {0x5e080080, 0x80800522U}, -+ {0x5e080084, 0x80800522U}, -+ {0x5e080114, 0x201000U}, -+ {0x5e080260, 0x800a1U}, -+ {0x5e080268, 0x0U}, -+ {0x5e08026c, 0x3d04U}, -+ {0x5e080278, 0x10U}, -+ {0x5e080800, 0x43d3b000U}, -+ {0x5e080804, 0x1f1f1f1fU}, -+ {0x5e080810, 0x14084060U}, -+ {0x5e080c00, 0x40000000U}, -+ {0x5e081000, 0xe3U}, -+ {0x5e081220, 0x0U}, -+ {0x5e081224, 0x0U}, -+ {0x5e081228, 0x0U}, -+ {0x5e08122c, 0x0U}, -+ {0x5e081230, 0x0U}, -+ {0x5e081234, 0x0U}, -+ {0x5e081238, 0x0U}, -+ {0x5e08123c, 0x0U}, -+ {0x5e081240, 0x0U}, -+ {0x5e081244, 0x0U}, -+ {0x5e081248, 0x0U}, -+ {0x5e08124c, 0x0U}, -+ {0x5e081250, 0x0U}, -+ {0x5e081254, 0x0U}, -+ {0x5e081258, 0x0U}, -+ {0x5e08125c, 0x0U}, -+}; -+ -+/* DRAM fsp configurations */ -+static struct ddrc_cfg_param ddr_dram_fsp0_ddrc_cfg[] = { -+ {0x5e080100, 0x020D2100U}, -+ {0x5e080104, 0x4866000CU}, -+ {0x5e080108, 0xF2F28D47U}, -+ {0x5e08010C, 0x20488010U}, -+ {0x5e080124, 0x0C230000U}, -+ {0x5e080160, 0x00000101U}, -+ {0x5e08016C, 0x01300000U}, -+ {0x5e080170, 0x8C010509U}, -+ {0x5e080250, 0x00110C11U}, -+ {0x5e080254, 0x00680040U}, -+ {0x5e080258, 0x03003E80U}, -+ {0x5e08025C, 0x40520200U}, -+ {0x5e080300, 0x08110809U}, -+ {0x5e080304, 0x00680F02U}, -+ {0x5e080308, 0x06040603U}, -+ {0x5e08030C, 0x0030001CU}, -+ {0x5e080310, 0x20610000U}, -+ {0x5e080314, 0x0A0A0407U}, -+}; -+ -+/* PHY Initialize Configuration */ -+static struct ddrphy_cfg_param ddr_ddrphy_cfg[] = { -+ {0x10080, 0x7}, -+ {0x10081, 0x5}, -+ {0x10082, 0x6}, -+ {0x10083, 0x1}, -+ {0x10084, 0x2}, -+ {0x10085, 0x0}, -+ {0x10086, 0x3}, -+ {0x10087, 0x4}, -+ {0x11080, 0x0}, -+ {0x11081, 0x1}, -+ {0x11082, 0x2}, -+ {0x11083, 0x3}, -+ {0x11084, 0x4}, -+ {0x11085, 0x7}, -+ {0x11086, 0x6}, -+ {0x11087, 0x5}, -+ {0x12080, 0x5}, -+ {0x12081, 0x6}, -+ {0x12082, 0x1}, -+ {0x12083, 0x7}, -+ {0x12084, 0x4}, -+ {0x12085, 0x2}, -+ {0x12086, 0x0}, -+ {0x12087, 0x3}, -+ {0x13080, 0x0}, -+ {0x13081, 0x3}, -+ {0x13082, 0x2}, -+ {0x13083, 0x7}, -+ {0x13084, 0x4}, -+ {0x13085, 0x5}, -+ {0x13086, 0x6}, -+ {0x13087, 0x1}, -+ {0x30090, 0x4}, -+ {0x30091, 0x3}, -+ {0x30092, 0x6}, -+ {0x30093, 0x0}, -+ {0x30094, 0x5}, -+ {0x30095, 0x1}, -+ {0x30096, 0x2}, -+ {0x31090, 0x1}, -+ {0x31091, 0x3}, -+ {0x31092, 0x4}, -+ {0x31093, 0x6}, -+ {0x31094, 0x2}, -+ {0x31095, 0x0}, -+ {0x31096, 0x5}, -+ {0x20060, 0x2}, -+ {0x200a5, 0x1}, -+ {0xd0036, 0x0}, -+ {0x200bd, 0xff}, -+ {0x20300, 0x808}, -+ {0x20303, 0x9}, -+ {0x20302, 0x26}, -+ {0x20328, 0x0}, -+ {0x20301, 0x3}, -+ {0x2030b, 0x0}, -+ {0x300a7, 0x0}, -+ {0x310a7, 0x0}, -+ {0x300ae, 0x80}, -+ {0x300ad, 0x80}, -+ {0x300ac, 0x80}, -+ {0x310ae, 0x80}, -+ {0x310ad, 0x80}, -+ {0x310ac, 0x80}, -+ {0xc0086, 0x0}, -+ {0x100a3, 0xb33}, -+ {0x110a3, 0xb33}, -+ {0x120a3, 0xb33}, -+ {0x130a3, 0xb33}, -+ {0xc00f1, 0x6000}, -+ {0xc00f2, 0xa9}, -+ {0xc00f3, 0x8000}, -+ {0xc00f4, 0x5}, -+ {0xc00f5, 0x4000}, -+ {0xc00f6, 0x2}, -+ {0xc00f7, 0xf000}, -+ {0xc00f9, 0x6000}, -+ {0xc00fa, 0xa9}, -+ {0xc00fb, 0x8000}, -+ {0xc00fd, 0x4000}, -+ {0xc00ff, 0xf000}, -+ {0x908ff, 0xf}, -+ {0x10093, 0x0}, -+ {0x11093, 0x0}, -+ {0x12093, 0x0}, -+ {0x13093, 0x0}, -+ {0x20051, 0x3}, -+}; -+ -+/* PHY trained csr */ -+static struct ddrphy_cfg_param ddr_ddrphy_trained_csr[] = { -+ {0x200a5, 0x0}, -+ {0xd0036, 0x0}, -+ {0x200bd, 0x0}, -+ {0x20300, 0x0}, -+ {0x20303, 0x0}, -+ {0x20302, 0x0}, -+ {0x20328, 0x0}, -+ {0x20301, 0x0}, -+ {0x2030b, 0x0}, -+ {0x300a7, 0x0}, -+ {0x310a7, 0x0}, -+ {0x300ae, 0x0}, -+ {0x300ad, 0x0}, -+ {0x300ac, 0x0}, -+ {0x310ae, 0x0}, -+ {0x310ad, 0x0}, -+ {0x310ac, 0x0}, -+ {0xc0086, 0x0}, -+ {0x100a3, 0x0}, -+ {0x110a3, 0x0}, -+ {0x120a3, 0x0}, -+ {0x130a3, 0x0}, -+ {0xc00f1, 0x0}, -+ {0xc00f2, 0x0}, -+ {0xc00f3, 0x0}, -+ {0xc00f4, 0x0}, -+ {0xc00f5, 0x0}, -+ {0xc00f6, 0x0}, -+ {0xc00f7, 0x0}, -+ {0xc00f9, 0x0}, -+ {0xc00fa, 0x0}, -+ {0xc00fb, 0x0}, -+ {0xc00fd, 0x0}, -+ {0xc00ff, 0x0}, -+ {0x908ff, 0x0}, -+ {0x10093, 0x0}, -+ {0x11093, 0x0}, -+ {0x12093, 0x0}, -+ {0x13093, 0x0}, -+ {0x20051, 0x0}, -+ {0x90802, 0x0}, -+ {0x20002, 0x0}, -+ {0x20000, 0x0}, -+ {0x90801, 0x0}, -+ {0x90809, 0x0}, -+ {0x1005e, 0x0}, -+ {0x10060, 0x0}, -+ {0x10062, 0x0}, -+ {0x10064, 0x0}, -+ {0x1005f, 0x0}, -+ {0x10061, 0x0}, -+ {0x10063, 0x0}, -+ {0x10065, 0x0}, -+ {0x1105e, 0x0}, -+ {0x11060, 0x0}, -+ {0x11062, 0x0}, -+ {0x11064, 0x0}, -+ {0x1105f, 0x0}, -+ {0x11061, 0x0}, -+ {0x11063, 0x0}, -+ {0x11065, 0x0}, -+ {0x1205e, 0x0}, -+ {0x12060, 0x0}, -+ {0x12062, 0x0}, -+ {0x12064, 0x0}, -+ {0x1205f, 0x0}, -+ {0x12061, 0x0}, -+ {0x12063, 0x0}, -+ {0x12065, 0x0}, -+ {0x1305e, 0x0}, -+ {0x13060, 0x0}, -+ {0x13062, 0x0}, -+ {0x13064, 0x0}, -+ {0x1305f, 0x0}, -+ {0x13061, 0x0}, -+ {0x13063, 0x0}, -+ {0x13065, 0x0}, -+ {0x10005, 0x0}, -+ {0x1000b, 0x0}, -+ {0x11005, 0x0}, -+ {0x1100b, 0x0}, -+ {0x12005, 0x0}, -+ {0x1200b, 0x0}, -+ {0x13005, 0x0}, -+ {0x1300b, 0x0}, -+ {0x20007, 0x0}, -+ {0x20013, 0x0}, -+ {0x30038, 0x0}, -+ {0x30039, 0x0}, -+ {0x3003a, 0x0}, -+ {0x31038, 0x0}, -+ {0x31039, 0x0}, -+ {0x3103a, 0x0}, -+ {0x10038, 0x0}, -+ {0x1003a, 0x0}, -+ {0x11038, 0x0}, -+ {0x1103a, 0x0}, -+ {0x12038, 0x0}, -+ {0x1203a, 0x0}, -+ {0x13038, 0x0}, -+ {0x1303a, 0x0}, -+ {0x1003b, 0x0}, -+ {0x1103b, 0x0}, -+ {0x1203b, 0x0}, -+ {0x1303b, 0x0}, -+ {0x10009, 0x0}, -+ {0x10037, 0x0}, -+ {0x11009, 0x0}, -+ {0x11037, 0x0}, -+ {0x12009, 0x0}, -+ {0x12037, 0x0}, -+ {0x13009, 0x0}, -+ {0x13037, 0x0}, -+ {0x10004, 0x0}, -+ {0x10003, 0x0}, -+ {0x11004, 0x0}, -+ {0x11003, 0x0}, -+ {0x12004, 0x0}, -+ {0x12003, 0x0}, -+ {0x13004, 0x0}, -+ {0x13003, 0x0}, -+ {0x20004, 0x0}, -+ {0x30050, 0x0}, -+ {0x30051, 0x0}, -+ {0x30052, 0x0}, -+ {0x30053, 0x0}, -+ {0x31050, 0x0}, -+ {0x31051, 0x0}, -+ {0x31052, 0x0}, -+ {0x31053, 0x0}, -+ {0x1004e, 0x0}, -+ {0x1004f, 0x0}, -+ {0x10050, 0x0}, -+ {0x10051, 0x0}, -+ {0x1014e, 0x0}, -+ {0x1014f, 0x0}, -+ {0x10150, 0x0}, -+ {0x10151, 0x0}, -+ {0x1024e, 0x0}, -+ {0x1024f, 0x0}, -+ {0x10250, 0x0}, -+ {0x10251, 0x0}, -+ {0x1034e, 0x0}, -+ {0x1034f, 0x0}, -+ {0x10350, 0x0}, -+ {0x10351, 0x0}, -+ {0x1044e, 0x0}, -+ {0x1044f, 0x0}, -+ {0x10450, 0x0}, -+ {0x10451, 0x0}, -+ {0x1054e, 0x0}, -+ {0x1054f, 0x0}, -+ {0x10550, 0x0}, -+ {0x10551, 0x0}, -+ {0x1064e, 0x0}, -+ {0x1064f, 0x0}, -+ {0x10650, 0x0}, -+ {0x10651, 0x0}, -+ {0x1074e, 0x0}, -+ {0x1074f, 0x0}, -+ {0x10750, 0x0}, -+ {0x10751, 0x0}, -+ {0x1084e, 0x0}, -+ {0x1084f, 0x0}, -+ {0x10850, 0x0}, -+ {0x10851, 0x0}, -+ {0x1104e, 0x0}, -+ {0x1104f, 0x0}, -+ {0x11050, 0x0}, -+ {0x11051, 0x0}, -+ {0x1114e, 0x0}, -+ {0x1114f, 0x0}, -+ {0x11150, 0x0}, -+ {0x11151, 0x0}, -+ {0x1124e, 0x0}, -+ {0x1124f, 0x0}, -+ {0x11250, 0x0}, -+ {0x11251, 0x0}, -+ {0x1134e, 0x0}, -+ {0x1134f, 0x0}, -+ {0x11350, 0x0}, -+ {0x11351, 0x0}, -+ {0x1144e, 0x0}, -+ {0x1144f, 0x0}, -+ {0x11450, 0x0}, -+ {0x11451, 0x0}, -+ {0x1154e, 0x0}, -+ {0x1154f, 0x0}, -+ {0x11550, 0x0}, -+ {0x11551, 0x0}, -+ {0x1164e, 0x0}, -+ {0x1164f, 0x0}, -+ {0x11650, 0x0}, -+ {0x11651, 0x0}, -+ {0x1174e, 0x0}, -+ {0x1174f, 0x0}, -+ {0x11750, 0x0}, -+ {0x11751, 0x0}, -+ {0x1184e, 0x0}, -+ {0x1184f, 0x0}, -+ {0x11850, 0x0}, -+ {0x11851, 0x0}, -+ {0x1204e, 0x0}, -+ {0x1204f, 0x0}, -+ {0x12050, 0x0}, -+ {0x12051, 0x0}, -+ {0x1214e, 0x0}, -+ {0x1214f, 0x0}, -+ {0x12150, 0x0}, -+ {0x12151, 0x0}, -+ {0x1224e, 0x0}, -+ {0x1224f, 0x0}, -+ {0x12250, 0x0}, -+ {0x12251, 0x0}, -+ {0x1234e, 0x0}, -+ {0x1234f, 0x0}, -+ {0x12350, 0x0}, -+ {0x12351, 0x0}, -+ {0x1244e, 0x0}, -+ {0x1244f, 0x0}, -+ {0x12450, 0x0}, -+ {0x12451, 0x0}, -+ {0x1254e, 0x0}, -+ {0x1254f, 0x0}, -+ {0x12550, 0x0}, -+ {0x12551, 0x0}, -+ {0x1264e, 0x0}, -+ {0x1264f, 0x0}, -+ {0x12650, 0x0}, -+ {0x12651, 0x0}, -+ {0x1274e, 0x0}, -+ {0x1274f, 0x0}, -+ {0x12750, 0x0}, -+ {0x12751, 0x0}, -+ {0x1284e, 0x0}, -+ {0x1284f, 0x0}, -+ {0x12850, 0x0}, -+ {0x12851, 0x0}, -+ {0x1304e, 0x0}, -+ {0x1304f, 0x0}, -+ {0x13050, 0x0}, -+ {0x13051, 0x0}, -+ {0x1314e, 0x0}, -+ {0x1314f, 0x0}, -+ {0x13150, 0x0}, -+ {0x13151, 0x0}, -+ {0x1324e, 0x0}, -+ {0x1324f, 0x0}, -+ {0x13250, 0x0}, -+ {0x13251, 0x0}, -+ {0x1334e, 0x0}, -+ {0x1334f, 0x0}, -+ {0x13350, 0x0}, -+ {0x13351, 0x0}, -+ {0x1344e, 0x0}, -+ {0x1344f, 0x0}, -+ {0x13450, 0x0}, -+ {0x13451, 0x0}, -+ {0x1354e, 0x0}, -+ {0x1354f, 0x0}, -+ {0x13550, 0x0}, -+ {0x13551, 0x0}, -+ {0x1364e, 0x0}, -+ {0x1364f, 0x0}, -+ {0x13650, 0x0}, -+ {0x13651, 0x0}, -+ {0x1374e, 0x0}, -+ {0x1374f, 0x0}, -+ {0x13750, 0x0}, -+ {0x13751, 0x0}, -+ {0x1384e, 0x0}, -+ {0x1384f, 0x0}, -+ {0x13850, 0x0}, -+ {0x13851, 0x0}, -+ {0x30030, 0x0}, -+ {0x30031, 0x0}, -+ {0x30035, 0x0}, -+ {0x31030, 0x0}, -+ {0x31031, 0x0}, -+ {0x31035, 0x0}, -+ {0x10030, 0x0}, -+ {0x10035, 0x0}, -+ {0x10036, 0x0}, -+ {0x11030, 0x0}, -+ {0x11035, 0x0}, -+ {0x11036, 0x0}, -+ {0x12030, 0x0}, -+ {0x12035, 0x0}, -+ {0x12036, 0x0}, -+ {0x13030, 0x0}, -+ {0x13035, 0x0}, -+ {0x13036, 0x0}, -+ {0x3003c, 0x0}, -+ {0x3103c, 0x0}, -+ {0x1003c, 0x0}, -+ {0x1003d, 0x0}, -+ {0x1003e, 0x0}, -+ {0x1103c, 0x0}, -+ {0x1103d, 0x0}, -+ {0x1103e, 0x0}, -+ {0x1203c, 0x0}, -+ {0x1203d, 0x0}, -+ {0x1203e, 0x0}, -+ {0x1303c, 0x0}, -+ {0x1303d, 0x0}, -+ {0x1303e, 0x0}, -+ {0x20003, 0x0}, -+ {0x10006, 0x0}, -+ {0x11006, 0x0}, -+ {0x12006, 0x0}, -+ {0x13006, 0x0}, -+ {0x20001, 0x0}, -+ {0x20009, 0x0}, -+ {0x20008, 0x0}, -+ {0x200d9, 0x0}, -+ {0x30eef, 0x0}, -+ {0x31eef, 0x0}, -+ {0x20014, 0x0}, -+ {0x9080a, 0x0}, -+ {0x10040, 0x0}, -+ {0x10042, 0x0}, -+ {0x9080d, 0x0}, -+ {0x10043, 0x0}, -+ {0x10044, 0x0}, -+ {0x10045, 0x0}, -+ {0x11040, 0x0}, -+ {0x11042, 0x0}, -+ {0x11043, 0x0}, -+ {0x11044, 0x0}, -+ {0x11045, 0x0}, -+ {0x12040, 0x0}, -+ {0x12042, 0x0}, -+ {0x12043, 0x0}, -+ {0x12044, 0x0}, -+ {0x12045, 0x0}, -+ {0x13040, 0x0}, -+ {0x13042, 0x0}, -+ {0x13043, 0x0}, -+ {0x13044, 0x0}, -+ {0x13045, 0x0}, -+ {0x30040, 0x0}, -+ {0x30041, 0x0}, -+ {0x30042, 0x0}, -+ {0x30043, 0x0}, -+ {0x30330, 0x0}, -+ {0x31040, 0x0}, -+ {0x31041, 0x0}, -+ {0x31042, 0x0}, -+ {0x31043, 0x0}, -+ {0x31330, 0x0}, -+ {0x20331, 0x0}, -+ {0x10048, 0x0}, -+ {0x1004a, 0x0}, -+ {0x1004b, 0x0}, -+ {0x1004c, 0x0}, -+ {0x1004d, 0x0}, -+ {0x11048, 0x0}, -+ {0x1104a, 0x0}, -+ {0x1104b, 0x0}, -+ {0x1104c, 0x0}, -+ {0x1104d, 0x0}, -+ {0x12048, 0x0}, -+ {0x1204a, 0x0}, -+ {0x1204b, 0x0}, -+ {0x1204c, 0x0}, -+ {0x1204d, 0x0}, -+ {0x13048, 0x0}, -+ {0x1304a, 0x0}, -+ {0x1304b, 0x0}, -+ {0x1304c, 0x0}, -+ {0x1304d, 0x0}, -+ {0x30048, 0x0}, -+ {0x30049, 0x0}, -+ {0x3004a, 0x0}, -+ {0x3004b, 0x0}, -+ {0x31048, 0x0}, -+ {0x31049, 0x0}, -+ {0x3104a, 0x0}, -+ {0x3104b, 0x0}, -+ {0x30033, 0x0}, -+ {0x30034, 0x0}, -+ {0x3002e, 0x0}, -+ {0x31033, 0x0}, -+ {0x31034, 0x0}, -+ {0x3102e, 0x0}, -+ {0x10033, 0x0}, -+ {0x1002e, 0x0}, -+ {0x1002f, 0x0}, -+ {0x11033, 0x0}, -+ {0x1102e, 0x0}, -+ {0x1102f, 0x0}, -+ {0x12033, 0x0}, -+ {0x1202e, 0x0}, -+ {0x1202f, 0x0}, -+ {0x13033, 0x0}, -+ {0x1302e, 0x0}, -+ {0x1302f, 0x0}, -+ {0x90806, 0x0}, -+ {0x100e8, 0x0}, -+ {0x100e9, 0x0}, -+ {0x110e8, 0x0}, -+ {0x110e9, 0x0}, -+ {0x120e8, 0x0}, -+ {0x120e9, 0x0}, -+ {0x130e8, 0x0}, -+ {0x130e9, 0x0}, -+ {0x10001, 0x0}, -+ {0x11001, 0x0}, -+ {0x12001, 0x0}, -+ {0x13001, 0x0}, -+ {0x20012, 0x0}, -+ {0x20017, 0x0}, -+ {0x2000a, 0x0}, -+ {0x20186, 0x0}, -+ {0x20187, 0x0}, -+ {0x20010, 0x0}, -+ {0x20011, 0x0}, -+ {0x9080b, 0x0}, -+ {0x9080c, 0x0}, -+ {0x100a5, 0x0}, -+ {0x110a5, 0x0}, -+ {0x120a5, 0x0}, -+ {0x130a5, 0x0}, -+ {0x10014, 0x0}, -+ {0x11014, 0x0}, -+ {0x12014, 0x0}, -+ {0x13014, 0x0}, -+ {0x20035, 0x0}, -+ {0x20036, 0x0}, -+ {0x20037, 0x0}, -+ {0x20038, 0x0}, -+ {0x20039, 0x0}, -+ {0x2003a, 0x0}, -+ {0x2003b, 0x0}, -+ {0x2003c, 0x0}, -+ {0x2003d, 0x0}, -+ {0x2003e, 0x0}, -+ {0x2003f, 0x0}, -+ {0x20040, 0x0}, -+ {0x2002c, 0x0}, -+ {0x2002d, 0x0}, -+ {0x20030, 0x0}, -+ {0x2002e, 0x0}, -+ {0x2002f, 0x0}, -+ {0x2000c, 0x0}, -+ {0x2001b, 0x0}, -+ {0x10007, 0x0}, -+ {0x11007, 0x0}, -+ {0x12007, 0x0}, -+ {0x13007, 0x0}, -+ {0x908f0, 0x0}, -+ {0x908f1, 0x0}, -+ {0x908f2, 0x0}, -+ {0x908f3, 0x0}, -+ {0x908f4, 0x0}, -+ {0x908f5, 0x0}, -+ {0x908f6, 0x0}, -+ {0x908f7, 0x0}, -+ {0x41008, 0x0}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0x0}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x0}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0x0}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0x0}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x0}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0x0}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0x0}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x0}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0x0}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0x0}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x0}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0x0}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0x0}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x0}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0x0}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0x0}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x0}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0x0}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0x0}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x0}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x0}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x0}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x0}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x0}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x0}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0x0}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0x0}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x0}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0x0}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0x0}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x0}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0x0}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0x0}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0x410b8, 0x0}, -+ {0x410b9, 0x0}, -+ {0x410ba, 0x0}, -+ {0x410bb, 0x0}, -+ {0x410bc, 0x0}, -+ {0x410bd, 0x0}, -+ {0x410be, 0x0}, -+ {0x410bf, 0x0}, -+ {0x410c0, 0x0}, -+ {0x410c1, 0x0}, -+ {0x410c2, 0x0}, -+ {0x410c3, 0x0}, -+ {0x410c4, 0x0}, -+ {0x410c5, 0x0}, -+ {0x410c6, 0x0}, -+ {0x410c7, 0x0}, -+ {0x410c8, 0x0}, -+ {0x410c9, 0x0}, -+ {0x410ca, 0x0}, -+ {0x410cb, 0x0}, -+ {0x410cc, 0x0}, -+ {0x410cd, 0x0}, -+ {0x410ce, 0x0}, -+ {0x410cf, 0x0}, -+ {0x410d0, 0x0}, -+ {0x410d1, 0x0}, -+ {0x410d2, 0x0}, -+ {0x410d3, 0x0}, -+ {0x410d4, 0x0}, -+ {0x410d5, 0x0}, -+ {0x410d6, 0x0}, -+ {0x410d7, 0x0}, -+ {0x410d8, 0x0}, -+ {0x410d9, 0x0}, -+ {0x410da, 0x0}, -+ {0x410db, 0x0}, -+ {0x410dc, 0x0}, -+ {0x410dd, 0x0}, -+ {0x410de, 0x0}, -+ {0x410df, 0x0}, -+ {0x410e0, 0x0}, -+ {0x410e1, 0x0}, -+ {0x410e2, 0x0}, -+ {0x410e3, 0x0}, -+ {0x410e4, 0x0}, -+ {0x410e5, 0x0}, -+ {0x410e6, 0x0}, -+ {0x410e7, 0x0}, -+ {0x410e8, 0x0}, -+ {0x410e9, 0x0}, -+ {0x410ea, 0x0}, -+ {0x410eb, 0x0}, -+ {0x410ec, 0x0}, -+ {0x410ed, 0x0}, -+ {0x410ee, 0x0}, -+ {0x410ef, 0x0}, -+ {0x410f0, 0x0}, -+ {0x410f1, 0x0}, -+ {0x410f2, 0x0}, -+ {0x410f3, 0x0}, -+ {0x410f4, 0x0}, -+ {0x410f5, 0x0}, -+ {0x410f6, 0x0}, -+ {0x410f7, 0x0}, -+ {0x410f8, 0x0}, -+ {0x410f9, 0x0}, -+ {0x410fa, 0x0}, -+ {0x410fb, 0x0}, -+ {0x410fc, 0x0}, -+ {0x410fd, 0x0}, -+ {0x410fe, 0x0}, -+ {0x410ff, 0x0}, -+ {0x41100, 0x0}, -+ {0x41101, 0x0}, -+ {0x41102, 0x0}, -+ {0x41103, 0x0}, -+ {0x41104, 0x0}, -+ {0x41105, 0x0}, -+ {0x41106, 0x0}, -+ {0x41107, 0x0}, -+ {0x41108, 0x0}, -+ {0x41109, 0x0}, -+ {0x4110a, 0x0}, -+ {0x4110b, 0x0}, -+ {0x4110c, 0x0}, -+ {0x4110d, 0x0}, -+ {0x4110e, 0x0}, -+ {0x4110f, 0x0}, -+ {0x41110, 0x0}, -+ {0x41111, 0x0}, -+ {0x41112, 0x0}, -+ {0x41113, 0x0}, -+ {0x41114, 0x0}, -+ {0x41115, 0x0}, -+ {0x41116, 0x0}, -+ {0x41117, 0x0}, -+ {0x41118, 0x0}, -+ {0x41119, 0x0}, -+ {0x4111a, 0x0}, -+ {0x4111b, 0x0}, -+ {0x4111c, 0x0}, -+ {0x4111d, 0x0}, -+ {0x4111e, 0x0}, -+ {0x4111f, 0x0}, -+ {0x41120, 0x0}, -+ {0x41121, 0x0}, -+ {0x41122, 0x0}, -+ {0x41123, 0x0}, -+ {0x41124, 0x0}, -+ {0x41125, 0x0}, -+ {0x41126, 0x0}, -+ {0x41127, 0x0}, -+ {0x41128, 0x0}, -+ {0x41129, 0x0}, -+ {0x4112a, 0x0}, -+ {0x4112b, 0x0}, -+ {0x4112c, 0x0}, -+ {0x4112d, 0x0}, -+ {0x4112e, 0x0}, -+ {0x4112f, 0x0}, -+ {0x41130, 0x0}, -+ {0x41131, 0x0}, -+ {0x41132, 0x0}, -+ {0x41133, 0x0}, -+ {0x41134, 0x0}, -+ {0x41135, 0x0}, -+ {0x41136, 0x0}, -+ {0x41137, 0x0}, -+ {0x41138, 0x0}, -+ {0x41139, 0x0}, -+ {0x4113a, 0x0}, -+ {0x4113b, 0x0}, -+ {0x4113c, 0x0}, -+ {0x4113d, 0x0}, -+ {0x4113e, 0x0}, -+ {0x4113f, 0x0}, -+ {0x41140, 0x0}, -+ {0x41141, 0x0}, -+ {0x41142, 0x0}, -+ {0x41143, 0x0}, -+ {0x41144, 0x0}, -+ {0x41145, 0x0}, -+ {0x41146, 0x0}, -+ {0x41147, 0x0}, -+ {0x41148, 0x0}, -+ {0x41149, 0x0}, -+ {0x4114a, 0x0}, -+ {0x4114b, 0x0}, -+ {0x4114c, 0x0}, -+ {0x4114d, 0x0}, -+ {0x4114e, 0x0}, -+ {0x4114f, 0x0}, -+ {0x41150, 0x0}, -+ {0x41151, 0x0}, -+ {0x41152, 0x0}, -+ {0x41153, 0x0}, -+ {0x41154, 0x0}, -+ {0x41155, 0x0}, -+ {0x41156, 0x0}, -+ {0x41157, 0x0}, -+ {0x41158, 0x0}, -+ {0x41159, 0x0}, -+ {0x4115a, 0x0}, -+ {0x4115b, 0x0}, -+ {0x4115c, 0x0}, -+ {0x4115d, 0x0}, -+ {0x4115e, 0x0}, -+ {0x4115f, 0x0}, -+ {0x41160, 0x0}, -+ {0x41161, 0x0}, -+ {0x41162, 0x0}, -+ {0x41163, 0x0}, -+ {0x41164, 0x0}, -+ {0x41165, 0x0}, -+ {0x41166, 0x0}, -+ {0x41167, 0x0}, -+ {0x41168, 0x0}, -+ {0x41169, 0x0}, -+ {0x4116a, 0x0}, -+ {0x4116b, 0x0}, -+ {0x4116c, 0x0}, -+ {0x4116d, 0x0}, -+ {0x4116e, 0x0}, -+ {0x4116f, 0x0}, -+ {0x41170, 0x0}, -+ {0x41171, 0x0}, -+ {0x41172, 0x0}, -+ {0x41173, 0x0}, -+ {0x41174, 0x0}, -+ {0x41175, 0x0}, -+ {0x41176, 0x0}, -+ {0x41177, 0x0}, -+ {0x41178, 0x0}, -+ {0x41179, 0x0}, -+ {0x4117a, 0x0}, -+ {0x4117b, 0x0}, -+ {0x4117c, 0x0}, -+ {0x4117d, 0x0}, -+ {0x4117e, 0x0}, -+ {0x4117f, 0x0}, -+ {0x41180, 0x0}, -+ {0x41181, 0x0}, -+ {0x41182, 0x0}, -+ {0x41183, 0x0}, -+ {0x41184, 0x0}, -+ {0x41185, 0x0}, -+ {0x41186, 0x0}, -+ {0x41187, 0x0}, -+ {0x41188, 0x0}, -+ {0x41189, 0x0}, -+ {0x4118a, 0x0}, -+ {0x4118b, 0x0}, -+ {0x4118c, 0x0}, -+ {0x4118d, 0x0}, -+ {0x4118e, 0x0}, -+ {0x4118f, 0x0}, -+ {0x41190, 0x0}, -+ {0x41191, 0x0}, -+ {0x41192, 0x0}, -+ {0x41193, 0x0}, -+ {0x41194, 0x0}, -+ {0x41195, 0x0}, -+ {0x41196, 0x0}, -+ {0x41197, 0x0}, -+ {0x41198, 0x0}, -+ {0x41199, 0x0}, -+ {0x4119a, 0x0}, -+ {0x4119b, 0x0}, -+ {0x4119c, 0x0}, -+ {0x4119d, 0x0}, -+ {0x4119e, 0x0}, -+ {0x4119f, 0x0}, -+ {0x411a0, 0x0}, -+ {0x411a1, 0x0}, -+ {0x411a2, 0x0}, -+ {0x411a3, 0x0}, -+ {0x411a4, 0x0}, -+ {0x411a5, 0x0}, -+ {0x411a6, 0x0}, -+ {0x411a7, 0x0}, -+ {0x411a8, 0x0}, -+ {0x411a9, 0x0}, -+ {0x411aa, 0x0}, -+ {0x411ab, 0x0}, -+ {0x411ac, 0x0}, -+ {0x411ad, 0x0}, -+ {0x411ae, 0x0}, -+ {0x411af, 0x0}, -+ {0x411b0, 0x0}, -+ {0x411b1, 0x0}, -+ {0x411b2, 0x0}, -+ {0x411b3, 0x0}, -+ {0x411b4, 0x0}, -+ {0x411b5, 0x0}, -+ {0x411b6, 0x0}, -+ {0x411b7, 0x0}, -+ {0x411b8, 0x0}, -+ {0x411b9, 0x0}, -+ {0x411ba, 0x0}, -+ {0x411bb, 0x0}, -+ {0x411bc, 0x0}, -+ {0x411bd, 0x0}, -+ {0x411be, 0x0}, -+ {0x411bf, 0x0}, -+ {0x411c0, 0x0}, -+ {0x411c1, 0x0}, -+ {0x411c2, 0x0}, -+ {0x411c3, 0x0}, -+ {0x411c4, 0x0}, -+ {0x411c5, 0x0}, -+ {0x411c6, 0x0}, -+ {0x411c7, 0x0}, -+ {0x20015, 0x0}, -+ {0x2004a, 0x0}, -+ {0x2004b, 0x0}, -+ {0x2004c, 0x0}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x0}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20041, 0x0}, -+ {0x20045, 0x0}, -+ {0x10057, 0x0}, -+ {0x11057, 0x0}, -+ {0x12057, 0x0}, -+ {0x13057, 0x0}, -+ {0x1000f, 0x0}, -+ {0x1100f, 0x0}, -+ {0x1200f, 0x0}, -+ {0x1300f, 0x0}, -+ {0x90803, 0x0}, -+ {0x90804, 0x0}, -+ {0x90805, 0x0}, -+ {0x90903, 0x0}, -+ {0x9090b, 0x0}, -+ {0x90811, 0x0}, -+ {0x90812, 0x0}, -+ {0x20072, 0x0}, -+ {0x9080e, 0x0}, -+ {0x20073, 0x0}, -+ {0x9080f, 0x0}, -+ {0x41000, 0x0}, -+ {0x41001, 0x0}, -+ {0x41002, 0x0}, -+ {0x41003, 0x0}, -+ {0x41004, 0x0}, -+ {0x41005, 0x0}, -+ {0x41006, 0x0}, -+ {0x41007, 0x0}, -+ {0x41388, 0x0}, -+ {0x41389, 0x0}, -+ {0x4138a, 0x0}, -+ {0x4138b, 0x0}, -+ {0x4138c, 0x0}, -+ {0x4138d, 0x0}, -+ {0x4138e, 0x0}, -+ {0x4138f, 0x0}, -+ {0x41390, 0x0}, -+ {0x41391, 0x0}, -+ {0x41392, 0x0}, -+ {0x41393, 0x0}, -+ {0x41394, 0x0}, -+ {0x41395, 0x0}, -+ {0x41396, 0x0}, -+ {0x41397, 0x0}, -+ {0x41398, 0x0}, -+ {0x41399, 0x0}, -+ {0x4139a, 0x0}, -+ {0x4139b, 0x0}, -+ {0x4139c, 0x0}, -+ {0x4139d, 0x0}, -+ {0x4139e, 0x0}, -+ {0x4139f, 0x0}, -+ {0x413a0, 0x0}, -+ {0x413a1, 0x0}, -+ {0x413a2, 0x0}, -+ {0x413a3, 0x0}, -+ {0x413a4, 0x0}, -+ {0x413a5, 0x0}, -+ {0x413a6, 0x0}, -+ {0x413a7, 0x0}, -+ {0x413a8, 0x0}, -+ {0x413a9, 0x0}, -+ {0x413aa, 0x0}, -+ {0x413ab, 0x0}, -+ {0x413ac, 0x0}, -+ {0x413ad, 0x0}, -+ {0x413ae, 0x0}, -+ {0x413af, 0x0}, -+ {0x413b0, 0x0}, -+ {0x413b1, 0x0}, -+ {0x413b2, 0x0}, -+ {0x413b3, 0x0}, -+ {0x413b4, 0x0}, -+ {0x413b5, 0x0}, -+ {0x413b6, 0x0}, -+ {0x413b7, 0x0}, -+ {0x413b8, 0x0}, -+ {0x413b9, 0x0}, -+ {0x413ba, 0x0}, -+ {0x413bb, 0x0}, -+ {0x413bc, 0x0}, -+ {0x413bd, 0x0}, -+ {0x413be, 0x0}, -+ {0x413bf, 0x0}, -+ {0x413c0, 0x0}, -+ {0x413c1, 0x0}, -+ {0x413c2, 0x0}, -+ {0x413c3, 0x0}, -+ {0x413c4, 0x0}, -+ {0x413c5, 0x0}, -+ {0x413c6, 0x0}, -+ {0x413c7, 0x0}, -+ {0x413c8, 0x0}, -+ {0x413c9, 0x0}, -+ {0x413ca, 0x0}, -+ {0x413cb, 0x0}, -+ {0x413cc, 0x0}, -+ {0x413cd, 0x0}, -+ {0x413ce, 0x0}, -+ {0x413cf, 0x0}, -+ {0x413d0, 0x0}, -+ {0x413d1, 0x0}, -+ {0x413d2, 0x0}, -+ {0x413d3, 0x0}, -+ {0x413d4, 0x0}, -+ {0x413d5, 0x0}, -+ {0x413d6, 0x0}, -+ {0x413d7, 0x0}, -+ {0x413d8, 0x0}, -+ {0x413d9, 0x0}, -+ {0x413da, 0x0}, -+ {0x413db, 0x0}, -+ {0x413dc, 0x0}, -+ {0x413dd, 0x0}, -+ {0x413de, 0x0}, -+ {0x413df, 0x0}, -+ {0x413e0, 0x0}, -+ {0x413e1, 0x0}, -+ {0x413e2, 0x0}, -+ {0x413e3, 0x0}, -+ {0x413e4, 0x0}, -+ {0x413e5, 0x0}, -+ {0x413e6, 0x0}, -+ {0x413e7, 0x0}, -+ {0x413e8, 0x0}, -+ {0x413e9, 0x0}, -+ {0x413ea, 0x0}, -+ {0x413eb, 0x0}, -+ {0x413ec, 0x0}, -+ {0x413ed, 0x0}, -+ {0x413ee, 0x0}, -+ {0x413ef, 0x0}, -+ {0x413f0, 0x0}, -+ {0x413f1, 0x0}, -+ {0x413f2, 0x0}, -+ {0x413f3, 0x0}, -+ {0x413f4, 0x0}, -+ {0x413f5, 0x0}, -+ {0x413f6, 0x0}, -+ {0x413f7, 0x0}, -+ {0x413f8, 0x0}, -+ {0x413f9, 0x0}, -+ {0x413fa, 0x0}, -+ {0x413fb, 0x0}, -+ {0x413fc, 0x0}, -+ {0x413fd, 0x0}, -+ {0x413fe, 0x0}, -+ {0x413ff, 0x0}, -+ {0x41400, 0x0}, -+ {0x41401, 0x0}, -+ {0x41402, 0x0}, -+ {0x41403, 0x0}, -+ {0x41404, 0x0}, -+ {0x41405, 0x0}, -+ {0x41406, 0x0}, -+ {0x41407, 0x0}, -+ {0x41408, 0x0}, -+ {0x41409, 0x0}, -+ {0x4140a, 0x0}, -+ {0x4140b, 0x0}, -+ {0x4140c, 0x0}, -+ {0x4140d, 0x0}, -+ {0x4140e, 0x0}, -+ {0x4140f, 0x0}, -+ {0x41410, 0x0}, -+ {0x41411, 0x0}, -+ {0x41412, 0x0}, -+ {0x41413, 0x0}, -+ {0x41414, 0x0}, -+ {0x41415, 0x0}, -+ {0x41416, 0x0}, -+ {0x41417, 0x0}, -+ {0x41418, 0x0}, -+ {0x41419, 0x0}, -+ {0x4141a, 0x0}, -+ {0x4141b, 0x0}, -+ {0x4141c, 0x0}, -+ {0x4141d, 0x0}, -+ {0x4141e, 0x0}, -+ {0x4141f, 0x0}, -+ {0x41420, 0x0}, -+ {0x41421, 0x0}, -+ {0x41422, 0x0}, -+ {0x41423, 0x0}, -+ {0x41424, 0x0}, -+ {0x41425, 0x0}, -+ {0x41426, 0x0}, -+ {0x41427, 0x0}, -+ {0x41428, 0x0}, -+ {0x41429, 0x0}, -+ {0x4142a, 0x0}, -+ {0x4142b, 0x0}, -+ {0x4142c, 0x0}, -+ {0x4142d, 0x0}, -+ {0x4142e, 0x0}, -+ {0x4142f, 0x0}, -+ {0x41430, 0x0}, -+ {0x41431, 0x0}, -+ {0x41432, 0x0}, -+ {0x41433, 0x0}, -+ {0x41434, 0x0}, -+ {0x41435, 0x0}, -+ {0x41436, 0x0}, -+ {0x41437, 0x0}, -+ {0x41438, 0x0}, -+ {0x41439, 0x0}, -+ {0x4143a, 0x0}, -+ {0x4143b, 0x0}, -+ {0x4143c, 0x0}, -+ {0x4143d, 0x0}, -+ {0x4143e, 0x0}, -+ {0x4143f, 0x0}, -+ {0x41440, 0x0}, -+ {0x41441, 0x0}, -+ {0x41442, 0x0}, -+ {0x41443, 0x0}, -+ {0x41444, 0x0}, -+ {0x41445, 0x0}, -+ {0x41446, 0x0}, -+ {0x41447, 0x0}, -+ {0x41448, 0x0}, -+ {0x41449, 0x0}, -+ {0x4144a, 0x0}, -+ {0x4144b, 0x0}, -+ {0x4144c, 0x0}, -+ {0x4144d, 0x0}, -+ {0x4144e, 0x0}, -+ {0x4144f, 0x0}, -+ {0x41450, 0x0}, -+ {0x41451, 0x0}, -+ {0x41452, 0x0}, -+ {0x41453, 0x0}, -+ {0x41454, 0x0}, -+ {0x41455, 0x0}, -+ {0x41456, 0x0}, -+ {0x41457, 0x0}, -+ {0x41458, 0x0}, -+ {0x41459, 0x0}, -+ {0x4145a, 0x0}, -+ {0x4145b, 0x0}, -+ {0x4145c, 0x0}, -+ {0x4145d, 0x0}, -+ {0x4145e, 0x0}, -+ {0x4145f, 0x0}, -+ {0x41460, 0x0}, -+ {0x41461, 0x0}, -+ {0x41462, 0x0}, -+ {0x41463, 0x0}, -+ {0x41464, 0x0}, -+ {0x41465, 0x0}, -+ {0x41466, 0x0}, -+ {0x41467, 0x0}, -+ {0x41468, 0x0}, -+ {0x41469, 0x0}, -+ {0x4146a, 0x0}, -+ {0x4146b, 0x0}, -+ {0x4146c, 0x0}, -+ {0x4146d, 0x0}, -+ {0x4146e, 0x0}, -+ {0x4146f, 0x0}, -+ {0x41470, 0x0}, -+ {0x41471, 0x0}, -+ {0x41472, 0x0}, -+ {0x41473, 0x0}, -+ {0x41474, 0x0}, -+ {0x41475, 0x0}, -+ {0x41476, 0x0}, -+ {0x41477, 0x0}, -+ {0x41478, 0x0}, -+ {0x41479, 0x0}, -+ {0x4147a, 0x0}, -+ {0x4147b, 0x0}, -+ {0x4147c, 0x0}, -+ {0x4147d, 0x0}, -+ {0x4147e, 0x0}, -+ {0x4147f, 0x0}, -+ {0x41480, 0x0}, -+ {0x41481, 0x0}, -+ {0x41482, 0x0}, -+ {0x41483, 0x0}, -+ {0x41484, 0x0}, -+ {0x41485, 0x0}, -+ {0x41486, 0x0}, -+ {0x41487, 0x0}, -+ {0x41488, 0x0}, -+ {0x41489, 0x0}, -+ {0x4148a, 0x0}, -+ {0x4148b, 0x0}, -+ {0x4148c, 0x0}, -+ {0x4148d, 0x0}, -+ {0x4148e, 0x0}, -+ {0x4148f, 0x0}, -+ {0x41490, 0x0}, -+ {0x41491, 0x0}, -+ {0x41492, 0x0}, -+ {0x41493, 0x0}, -+ {0x41494, 0x0}, -+ {0x41495, 0x0}, -+ {0x41496, 0x0}, -+ {0x41497, 0x0}, -+ {0x41498, 0x0}, -+ {0x41499, 0x0}, -+ {0x4149a, 0x0}, -+ {0x4149b, 0x0}, -+ {0x4149c, 0x0}, -+ {0x4149d, 0x0}, -+ {0x4149e, 0x0}, -+ {0x4149f, 0x0}, -+ {0x414a0, 0x0}, -+ {0x414a1, 0x0}, -+ {0x414a2, 0x0}, -+ {0x414a3, 0x0}, -+ {0x414a4, 0x0}, -+ {0x414a5, 0x0}, -+ {0x414a6, 0x0}, -+ {0x414a7, 0x0}, -+ {0x414a8, 0x0}, -+ {0x414a9, 0x0}, -+ {0x414aa, 0x0}, -+ {0x414ab, 0x0}, -+ {0x414ac, 0x0}, -+ {0x414ad, 0x0}, -+ {0x414ae, 0x0}, -+ {0x414af, 0x0}, -+ {0x414b0, 0x0}, -+ {0x414b1, 0x0}, -+ {0x414b2, 0x0}, -+ {0x414b3, 0x0}, -+ {0x414b4, 0x0}, -+ {0x414b5, 0x0}, -+ {0x414b6, 0x0}, -+ {0x414b7, 0x0}, -+ {0x414b8, 0x0}, -+ {0x414b9, 0x0}, -+ {0x414ba, 0x0}, -+ {0x414bb, 0x0}, -+ {0x414bc, 0x0}, -+ {0x414bd, 0x0}, -+ {0x414be, 0x0}, -+ {0x414bf, 0x0}, -+ {0x414c0, 0x0}, -+ {0x414c1, 0x0}, -+ {0x414c2, 0x0}, -+ {0x414c3, 0x0}, -+ {0x414c4, 0x0}, -+ {0x414c5, 0x0}, -+ {0x414c6, 0x0}, -+ {0x414c7, 0x0}, -+ {0x414c8, 0x0}, -+ {0x414c9, 0x0}, -+ {0x414ca, 0x0}, -+ {0x414cb, 0x0}, -+ {0x414cc, 0x0}, -+ {0x414cd, 0x0}, -+ {0x414ce, 0x0}, -+ {0x414cf, 0x0}, -+ {0x414d0, 0x0}, -+ {0x414d1, 0x0}, -+ {0x414d2, 0x0}, -+ {0x414d3, 0x0}, -+ {0x414d4, 0x0}, -+ {0x414d5, 0x0}, -+ {0x414d6, 0x0}, -+ {0x414d7, 0x0}, -+ {0x414d8, 0x0}, -+ {0x414d9, 0x0}, -+ {0x414da, 0x0}, -+ {0x414db, 0x0}, -+ {0x414dc, 0x0}, -+ {0x414dd, 0x0}, -+ {0x414de, 0x0}, -+ {0x414df, 0x0}, -+ {0x414e0, 0x0}, -+ {0x414e1, 0x0}, -+ {0x414e2, 0x0}, -+ {0x414e3, 0x0}, -+ {0x414e4, 0x0}, -+ {0x414e5, 0x0}, -+ {0x414e6, 0x0}, -+ {0x414e7, 0x0}, -+ {0x414e8, 0x0}, -+ {0x414e9, 0x0}, -+ {0x414ea, 0x0}, -+ {0x414eb, 0x0}, -+ {0x414ec, 0x0}, -+ {0x414ed, 0x0}, -+ {0x414ee, 0x0}, -+ {0x414ef, 0x0}, -+ {0x414f0, 0x0}, -+ {0x414f1, 0x0}, -+ {0x414f2, 0x0}, -+ {0x414f3, 0x0}, -+ {0x414f4, 0x0}, -+ {0x414f5, 0x0}, -+ {0x414f6, 0x0}, -+ {0x414f7, 0x0}, -+ {0x414f8, 0x0}, -+ {0x414f9, 0x0}, -+ {0x414fa, 0x0}, -+ {0x414fb, 0x0}, -+ {0x414fc, 0x0}, -+ {0x414fd, 0x0}, -+ {0x414fe, 0x0}, -+ {0x414ff, 0x0}, -+ {0x41500, 0x0}, -+ {0x41501, 0x0}, -+ {0x41502, 0x0}, -+ {0x41503, 0x0}, -+ {0x41504, 0x0}, -+ {0x41505, 0x0}, -+ {0x41506, 0x0}, -+ {0x41507, 0x0}, -+ {0x41508, 0x0}, -+ {0x41509, 0x0}, -+ {0x4150a, 0x0}, -+ {0x4150b, 0x0}, -+ {0x4150c, 0x0}, -+ {0x4150d, 0x0}, -+ {0x4150e, 0x0}, -+ {0x4150f, 0x0}, -+ {0x41510, 0x0}, -+ {0x41511, 0x0}, -+ {0x41512, 0x0}, -+ {0x41513, 0x0}, -+ {0x41514, 0x0}, -+ {0x41515, 0x0}, -+ {0x41516, 0x0}, -+ {0x41517, 0x0}, -+ {0x41518, 0x0}, -+ {0x41519, 0x0}, -+ {0x4151a, 0x0}, -+ {0x4151b, 0x0}, -+ {0x4151c, 0x0}, -+ {0x4151d, 0x0}, -+ {0x4151e, 0x0}, -+ {0x4151f, 0x0}, -+ {0x41520, 0x0}, -+ {0x41521, 0x0}, -+ {0x41522, 0x0}, -+ {0x41523, 0x0}, -+ {0x41524, 0x0}, -+ {0x41525, 0x0}, -+ {0x41526, 0x0}, -+ {0x41527, 0x0}, -+ {0x41528, 0x0}, -+ {0x41529, 0x0}, -+ {0x4152a, 0x0}, -+ {0x4152b, 0x0}, -+ {0x4152c, 0x0}, -+ {0x4152d, 0x0}, -+ {0x4152e, 0x0}, -+ {0x4152f, 0x0}, -+ {0x41530, 0x0}, -+ {0x41531, 0x0}, -+ {0x41532, 0x0}, -+ {0x41533, 0x0}, -+ {0x41534, 0x0}, -+ {0x41535, 0x0}, -+ {0x41536, 0x0}, -+ {0x41537, 0x0}, -+ {0x41538, 0x0}, -+ {0x41539, 0x0}, -+ {0x4153a, 0x0}, -+ {0x4153b, 0x0}, -+ {0x4153c, 0x0}, -+ {0x4153d, 0x0}, -+ {0x4153e, 0x0}, -+ {0x4153f, 0x0}, -+ {0x41540, 0x0}, -+ {0x41541, 0x0}, -+ {0x41542, 0x0}, -+ {0x41543, 0x0}, -+ {0x41544, 0x0}, -+ {0x41545, 0x0}, -+ {0x41546, 0x0}, -+ {0x41547, 0x0}, -+ {0x41548, 0x0}, -+ {0x41549, 0x0}, -+ {0x4154a, 0x0}, -+ {0x4154b, 0x0}, -+ {0x4154c, 0x0}, -+ {0x4154d, 0x0}, -+ {0x4154e, 0x0}, -+ {0x4154f, 0x0}, -+ {0x41550, 0x0}, -+ {0x41551, 0x0}, -+ {0x41552, 0x0}, -+ {0x41553, 0x0}, -+ {0x41554, 0x0}, -+ {0x41555, 0x0}, -+ {0x41556, 0x0}, -+ {0x41557, 0x0}, -+ {0x41558, 0x0}, -+ {0x41559, 0x0}, -+ {0x4155a, 0x0}, -+ {0x4155b, 0x0}, -+ {0x4155c, 0x0}, -+ {0x4155d, 0x0}, -+ {0x4155e, 0x0}, -+ {0x4155f, 0x0}, -+ {0x41560, 0x0}, -+ {0x41561, 0x0}, -+ {0x41562, 0x0}, -+ {0x41563, 0x0}, -+ {0x41564, 0x0}, -+ {0x41565, 0x0}, -+ {0x41566, 0x0}, -+ {0x41567, 0x0}, -+ {0x41568, 0x0}, -+ {0x41569, 0x0}, -+ {0x4156a, 0x0}, -+ {0x4156b, 0x0}, -+ {0x4156c, 0x0}, -+ {0x4156d, 0x0}, -+ {0x4156e, 0x0}, -+ {0x4156f, 0x0}, -+ {0x41570, 0x0}, -+ {0x41571, 0x0}, -+ {0x41572, 0x0}, -+ {0x41573, 0x0}, -+ {0x41574, 0x0}, -+ {0x41575, 0x0}, -+ {0x41576, 0x0}, -+ {0x41577, 0x0}, -+ {0x41578, 0x0}, -+ {0x41579, 0x0}, -+ {0x4157a, 0x0}, -+ {0x4157b, 0x0}, -+ {0x4157c, 0x0}, -+ {0x4157d, 0x0}, -+ {0x4157e, 0x0}, -+ {0x4157f, 0x0}, -+ {0x41580, 0x0}, -+ {0x41581, 0x0}, -+ {0x41582, 0x0}, -+ {0x41583, 0x0}, -+ {0x41584, 0x0}, -+ {0x41585, 0x0}, -+ {0x41586, 0x0}, -+ {0x41587, 0x0}, -+ {0x41588, 0x0}, -+ {0x41589, 0x0}, -+ {0x4158a, 0x0}, -+ {0x4158b, 0x0}, -+ {0x4158c, 0x0}, -+ {0x4158d, 0x0}, -+ {0x4158e, 0x0}, -+ {0x4158f, 0x0}, -+ {0x41590, 0x0}, -+ {0x41591, 0x0}, -+ {0x41592, 0x0}, -+ {0x41593, 0x0}, -+ {0x41594, 0x0}, -+ {0x41595, 0x0}, -+ {0x41596, 0x0}, -+ {0x41597, 0x0}, -+ {0x41598, 0x0}, -+ {0x41599, 0x0}, -+ {0x4159a, 0x0}, -+ {0x4159b, 0x0}, -+ {0x4159c, 0x0}, -+ {0x4159d, 0x0}, -+ {0x4159e, 0x0}, -+ {0x4159f, 0x0}, -+ {0x415a0, 0x0}, -+ {0x415a1, 0x0}, -+ {0x415a2, 0x0}, -+ {0x415a3, 0x0}, -+ {0x415a4, 0x0}, -+ {0x415a5, 0x0}, -+ {0x415a6, 0x0}, -+ {0x415a7, 0x0}, -+ {0x415a8, 0x0}, -+ {0x415a9, 0x0}, -+ {0x415aa, 0x0}, -+ {0x415ab, 0x0}, -+ {0x415ac, 0x0}, -+ {0x415ad, 0x0}, -+ {0x415ae, 0x0}, -+ {0x415af, 0x0}, -+ {0x415b0, 0x0}, -+ {0x415b1, 0x0}, -+ {0x415b2, 0x0}, -+ {0x415b3, 0x0}, -+ {0x415b4, 0x0}, -+ {0x415b5, 0x0}, -+ {0x415b6, 0x0}, -+ {0x415b7, 0x0}, -+ {0x415b8, 0x0}, -+ {0x415b9, 0x0}, -+ {0x415ba, 0x0}, -+ {0x415bb, 0x0}, -+ {0x415bc, 0x0}, -+ {0x415bd, 0x0}, -+ {0x415be, 0x0}, -+ {0x415bf, 0x0}, -+ {0x415c0, 0x0}, -+ {0x415c1, 0x0}, -+ {0x415c2, 0x0}, -+ {0x415c3, 0x0}, -+ {0x415c4, 0x0}, -+ {0x415c5, 0x0}, -+ {0x415c6, 0x0}, -+ {0x415c7, 0x0}, -+ {0x415c8, 0x0}, -+ {0x415c9, 0x0}, -+ {0x415ca, 0x0}, -+ {0x415cb, 0x0}, -+ {0x415cc, 0x0}, -+ {0x415cd, 0x0}, -+ {0x415ce, 0x0}, -+ {0x415cf, 0x0}, -+ {0x415d0, 0x0}, -+ {0x415d1, 0x0}, -+ {0x415d2, 0x0}, -+ {0x415d3, 0x0}, -+ {0x415d4, 0x0}, -+ {0x415d5, 0x0}, -+ {0x415d6, 0x0}, -+ {0x415d7, 0x0}, -+ {0x415d8, 0x0}, -+ {0x415d9, 0x0}, -+ {0x415da, 0x0}, -+ {0x415db, 0x0}, -+ {0x415dc, 0x0}, -+ {0x415dd, 0x0}, -+ {0x415de, 0x0}, -+ {0x415df, 0x0}, -+ {0x415e0, 0x0}, -+ {0x415e1, 0x0}, -+ {0x415e2, 0x0}, -+ {0x415e3, 0x0}, -+ {0x415e4, 0x0}, -+ {0x415e5, 0x0}, -+ {0x415e6, 0x0}, -+ {0x415e7, 0x0}, -+ {0x415e8, 0x0}, -+ {0x415e9, 0x0}, -+ {0x415ea, 0x0}, -+ {0x415eb, 0x0}, -+ {0x415ec, 0x0}, -+ {0x415ed, 0x0}, -+ {0x415ee, 0x0}, -+ {0x415ef, 0x0}, -+ {0x415f0, 0x0}, -+ {0x415f1, 0x0}, -+ {0x415f2, 0x0}, -+ {0x415f3, 0x0}, -+ {0x415f4, 0x0}, -+ {0x415f5, 0x0}, -+ {0x415f6, 0x0}, -+ {0x415f7, 0x0}, -+ {0x415f8, 0x0}, -+ {0x415f9, 0x0}, -+ {0x415fa, 0x0}, -+ {0x415fb, 0x0}, -+ {0x415fc, 0x0}, -+ {0x415fd, 0x0}, -+ {0x415fe, 0x0}, -+ {0x415ff, 0x0}, -+ {0x41600, 0x0}, -+ {0x41601, 0x0}, -+ {0x41602, 0x0}, -+ {0x41603, 0x0}, -+ {0x41604, 0x0}, -+ {0x41605, 0x0}, -+ {0x41606, 0x0}, -+ {0x41607, 0x0}, -+ {0x41608, 0x0}, -+ {0x41609, 0x0}, -+ {0x4160a, 0x0}, -+ {0x4160b, 0x0}, -+ {0x4160c, 0x0}, -+ {0x4160d, 0x0}, -+ {0x4160e, 0x0}, -+ {0x4160f, 0x0}, -+ {0x41610, 0x0}, -+ {0x41611, 0x0}, -+ {0x41612, 0x0}, -+ {0x41613, 0x0}, -+ {0x41614, 0x0}, -+ {0x41615, 0x0}, -+ {0x41616, 0x0}, -+ {0x41617, 0x0}, -+ {0x41618, 0x0}, -+ {0x41619, 0x0}, -+ {0x4161a, 0x0}, -+ {0x4161b, 0x0}, -+ {0x4161c, 0x0}, -+ {0x4161d, 0x0}, -+ {0x4161e, 0x0}, -+ {0x4161f, 0x0}, -+ {0x41620, 0x0}, -+ {0x41621, 0x0}, -+ {0x41622, 0x0}, -+ {0x41623, 0x0}, -+ {0x41624, 0x0}, -+ {0x41625, 0x0}, -+ {0x41626, 0x0}, -+ {0x41627, 0x0}, -+ {0x41628, 0x0}, -+ {0x41629, 0x0}, -+ {0x4162a, 0x0}, -+ {0x4162b, 0x0}, -+ {0x4162c, 0x0}, -+ {0x4162d, 0x0}, -+ {0x4162e, 0x0}, -+ {0x4162f, 0x0}, -+ {0x41630, 0x0}, -+ {0x41631, 0x0}, -+ {0x41632, 0x0}, -+ {0x41633, 0x0}, -+ {0x41634, 0x0}, -+ {0x41635, 0x0}, -+ {0x41636, 0x0}, -+ {0x41637, 0x0}, -+ {0x41638, 0x0}, -+ {0x41639, 0x0}, -+ {0x4163a, 0x0}, -+ {0x4163b, 0x0}, -+ {0x4163c, 0x0}, -+ {0x4163d, 0x0}, -+ {0x4163e, 0x0}, -+ {0x4163f, 0x0}, -+ {0x41640, 0x0}, -+ {0x41641, 0x0}, -+ {0x41642, 0x0}, -+ {0x41643, 0x0}, -+ {0x41644, 0x0}, -+ {0x41645, 0x0}, -+ {0x41646, 0x0}, -+ {0x41647, 0x0}, -+ {0x41648, 0x0}, -+ {0x41649, 0x0}, -+ {0x4164a, 0x0}, -+ {0x4164b, 0x0}, -+ {0x4164c, 0x0}, -+ {0x4164d, 0x0}, -+ {0x4164e, 0x0}, -+ {0x4164f, 0x0}, -+ {0x41650, 0x0}, -+ {0x41651, 0x0}, -+ {0x41652, 0x0}, -+ {0x41653, 0x0}, -+ {0x41654, 0x0}, -+ {0x41655, 0x0}, -+ {0x41656, 0x0}, -+ {0x41657, 0x0}, -+ {0x41658, 0x0}, -+ {0x41659, 0x0}, -+ {0x4165a, 0x0}, -+ {0x4165b, 0x0}, -+ {0x4165c, 0x0}, -+ {0x4165d, 0x0}, -+ {0x4165e, 0x0}, -+ {0x4165f, 0x0}, -+ {0x41660, 0x0}, -+ {0x41661, 0x0}, -+ {0x41662, 0x0}, -+ {0x41663, 0x0}, -+ {0x41664, 0x0}, -+ {0x41665, 0x0}, -+ {0x41666, 0x0}, -+ {0x41667, 0x0}, -+ {0x41668, 0x0}, -+ {0x41669, 0x0}, -+ {0x4166a, 0x0}, -+ {0x4166b, 0x0}, -+ {0x4166c, 0x0}, -+ {0x4166d, 0x0}, -+ {0x4166e, 0x0}, -+ {0x4166f, 0x0}, -+ {0x41670, 0x0}, -+ {0x41671, 0x0}, -+ {0x41672, 0x0}, -+ {0x41673, 0x0}, -+ {0x41674, 0x0}, -+ {0x41675, 0x0}, -+ {0x41676, 0x0}, -+ {0x41677, 0x0}, -+ {0x41678, 0x0}, -+ {0x41679, 0x0}, -+ {0x4167a, 0x0}, -+ {0x4167b, 0x0}, -+ {0x4167c, 0x0}, -+ {0x4167d, 0x0}, -+ {0x4167e, 0x0}, -+ {0x4167f, 0x0}, -+ {0x41680, 0x0}, -+ {0x41681, 0x0}, -+ {0x41682, 0x0}, -+ {0x41683, 0x0}, -+ {0x41684, 0x0}, -+ {0x41685, 0x0}, -+ {0x41686, 0x0}, -+ {0x41687, 0x0}, -+ {0x41688, 0x0}, -+ {0x41689, 0x0}, -+ {0x4168a, 0x0}, -+ {0x4168b, 0x0}, -+ {0x4168c, 0x0}, -+ {0x4168d, 0x0}, -+ {0x4168e, 0x0}, -+ {0x4168f, 0x0}, -+ {0x41690, 0x0}, -+ {0x41691, 0x0}, -+ {0x41692, 0x0}, -+ {0x41693, 0x0}, -+ {0x41694, 0x0}, -+ {0x41695, 0x0}, -+ {0x41696, 0x0}, -+ {0x41697, 0x0}, -+ {0x41698, 0x0}, -+ {0x41699, 0x0}, -+ {0x4169a, 0x0}, -+ {0x4169b, 0x0}, -+ {0x4169c, 0x0}, -+ {0x4169d, 0x0}, -+ {0x4169e, 0x0}, -+ {0x4169f, 0x0}, -+ {0x416a0, 0x0}, -+ {0x416a1, 0x0}, -+ {0x416a2, 0x0}, -+ {0x416a3, 0x0}, -+ {0x416a4, 0x0}, -+ {0x416a5, 0x0}, -+ {0x416a6, 0x0}, -+ {0x416a7, 0x0}, -+ {0x416a8, 0x0}, -+ {0x416a9, 0x0}, -+ {0x416aa, 0x0}, -+ {0x416ab, 0x0}, -+ {0x416ac, 0x0}, -+ {0x416ad, 0x0}, -+ {0x416ae, 0x0}, -+ {0x416af, 0x0}, -+ {0x416b0, 0x0}, -+ {0x416b1, 0x0}, -+ {0x416b2, 0x0}, -+ {0x416b3, 0x0}, -+ {0x416b4, 0x0}, -+ {0x416b5, 0x0}, -+ {0x416b6, 0x0}, -+ {0x416b7, 0x0}, -+ {0x416b8, 0x0}, -+ {0x416b9, 0x0}, -+ {0x416ba, 0x0}, -+ {0x416bb, 0x0}, -+ {0x416bc, 0x0}, -+ {0x416bd, 0x0}, -+ {0x416be, 0x0}, -+ {0x416bf, 0x0}, -+ {0x416c0, 0x0}, -+ {0x416c1, 0x0}, -+ {0x416c2, 0x0}, -+ {0x416c3, 0x0}, -+ {0x416c4, 0x0}, -+ {0x416c5, 0x0}, -+ {0x416c6, 0x0}, -+ {0x416c7, 0x0}, -+ {0x416c8, 0x0}, -+ {0x416c9, 0x0}, -+ {0x416ca, 0x0}, -+ {0x416cb, 0x0}, -+ {0x416cc, 0x0}, -+ {0x416cd, 0x0}, -+ {0x416ce, 0x0}, -+ {0x416cf, 0x0}, -+ {0x416d0, 0x0}, -+ {0x416d1, 0x0}, -+ {0x416d2, 0x0}, -+ {0x416d3, 0x0}, -+ {0x416d4, 0x0}, -+ {0x416d5, 0x0}, -+ {0x416d6, 0x0}, -+ {0x416d7, 0x0}, -+ {0x416d8, 0x0}, -+ {0x416d9, 0x0}, -+ {0x416da, 0x0}, -+ {0x416db, 0x0}, -+ {0x416dc, 0x0}, -+ {0x416dd, 0x0}, -+ {0x416de, 0x0}, -+ {0x416df, 0x0}, -+ {0x416e0, 0x0}, -+ {0x416e1, 0x0}, -+ {0x416e2, 0x0}, -+ {0x416e3, 0x0}, -+ {0x416e4, 0x0}, -+ {0x416e5, 0x0}, -+ {0x416e6, 0x0}, -+ {0x416e7, 0x0}, -+ {0x416e8, 0x0}, -+ {0x416e9, 0x0}, -+ {0x416ea, 0x0}, -+ {0x416eb, 0x0}, -+ {0x416ec, 0x0}, -+ {0x416ed, 0x0}, -+ {0x416ee, 0x0}, -+ {0x416ef, 0x0}, -+ {0x416f0, 0x0}, -+ {0x416f1, 0x0}, -+ {0x416f2, 0x0}, -+ {0x416f3, 0x0}, -+ {0x416f4, 0x0}, -+ {0x416f5, 0x0}, -+ {0x416f6, 0x0}, -+ {0x416f7, 0x0}, -+ {0x416f8, 0x0}, -+ {0x416f9, 0x0}, -+ {0x416fa, 0x0}, -+ {0x416fb, 0x0}, -+ {0x416fc, 0x0}, -+ {0x416fd, 0x0}, -+ {0x416fe, 0x0}, -+ {0x416ff, 0x0}, -+ {0x41700, 0x0}, -+ {0x41701, 0x0}, -+ {0x41702, 0x0}, -+ {0x41703, 0x0}, -+ {0x41704, 0x0}, -+ {0x41705, 0x0}, -+ {0x41706, 0x0}, -+ {0x41707, 0x0}, -+ {0x41708, 0x0}, -+ {0x41709, 0x0}, -+ {0x4170a, 0x0}, -+ {0x4170b, 0x0}, -+ {0x4170c, 0x0}, -+ {0x4170d, 0x0}, -+ {0x4170e, 0x0}, -+ {0x4170f, 0x0}, -+ {0x41710, 0x0}, -+ {0x41711, 0x0}, -+ {0x41712, 0x0}, -+ {0x41713, 0x0}, -+ {0x41714, 0x0}, -+ {0x41715, 0x0}, -+ {0x41716, 0x0}, -+ {0x41717, 0x0}, -+ {0x41718, 0x0}, -+ {0x41719, 0x0}, -+ {0x4171a, 0x0}, -+ {0x4171b, 0x0}, -+ {0x4171c, 0x0}, -+ {0x4171d, 0x0}, -+ {0x4171e, 0x0}, -+ {0x4171f, 0x0}, -+ {0x41720, 0x0}, -+ {0x41721, 0x0}, -+ {0x41722, 0x0}, -+ {0x41723, 0x0}, -+ {0x41724, 0x0}, -+ {0x41725, 0x0}, -+ {0x41726, 0x0}, -+ {0x41727, 0x0}, -+ {0x41728, 0x0}, -+ {0x41729, 0x0}, -+ {0x4172a, 0x0}, -+ {0x4172b, 0x0}, -+ {0x4172c, 0x0}, -+ {0x4172d, 0x0}, -+ {0x4172e, 0x0}, -+ {0x4172f, 0x0}, -+ {0x41730, 0x0}, -+ {0x41731, 0x0}, -+ {0x41732, 0x0}, -+ {0x41733, 0x0}, -+ {0x41734, 0x0}, -+ {0x41735, 0x0}, -+ {0x41736, 0x0}, -+ {0x41737, 0x0}, -+ {0x41738, 0x0}, -+ {0x41739, 0x0}, -+ {0x4173a, 0x0}, -+ {0x4173b, 0x0}, -+ {0x4173c, 0x0}, -+ {0x4173d, 0x0}, -+ {0x4173e, 0x0}, -+ {0x4173f, 0x0}, -+ {0x41740, 0x0}, -+ {0x41741, 0x0}, -+ {0x41742, 0x0}, -+ {0x41743, 0x0}, -+ {0x41744, 0x0}, -+ {0x41745, 0x0}, -+ {0x41746, 0x0}, -+ {0x41747, 0x0}, -+ {0x41748, 0x0}, -+ {0x41749, 0x0}, -+ {0x4174a, 0x0}, -+ {0x4174b, 0x0}, -+ {0x4174c, 0x0}, -+ {0x4174d, 0x0}, -+ {0x4174e, 0x0}, -+ {0x4174f, 0x0}, -+ {0x41750, 0x0}, -+ {0x41751, 0x0}, -+ {0x41752, 0x0}, -+ {0x41753, 0x0}, -+ {0x41754, 0x0}, -+ {0x41755, 0x0}, -+ {0x41756, 0x0}, -+ {0x41757, 0x0}, -+ {0x41758, 0x0}, -+ {0x41759, 0x0}, -+ {0x4175a, 0x0}, -+ {0x4175b, 0x0}, -+ {0x4175c, 0x0}, -+ {0x4175d, 0x0}, -+ {0x4175e, 0x0}, -+ {0x4175f, 0x0}, -+ {0x41760, 0x0}, -+ {0x41761, 0x0}, -+ {0x41762, 0x0}, -+ {0x41763, 0x0}, -+ {0x41764, 0x0}, -+ {0x41765, 0x0}, -+ {0x41766, 0x0}, -+ {0x41767, 0x0}, -+ {0x41768, 0x0}, -+ {0x41769, 0x0}, -+ {0x4176a, 0x0}, -+ {0x4176b, 0x0}, -+ {0x4176c, 0x0}, -+ {0x4176d, 0x0}, -+ {0x4176e, 0x0}, -+ {0x4176f, 0x0}, -+ {0x41770, 0x0}, -+ {0x41771, 0x0}, -+ {0x41772, 0x0}, -+ {0x41773, 0x0}, -+ {0x41774, 0x0}, -+ {0x41775, 0x0}, -+ {0x41776, 0x0}, -+ {0x41777, 0x0}, -+ {0x41778, 0x0}, -+ {0x41779, 0x0}, -+ {0x4177a, 0x0}, -+ {0x4177b, 0x0}, -+ {0x4177c, 0x0}, -+ {0x4177d, 0x0}, -+ {0x4177e, 0x0}, -+ {0x4177f, 0x0}, -+ {0x41780, 0x0}, -+ {0x41781, 0x0}, -+ {0x41782, 0x0}, -+ {0x41783, 0x0}, -+ {0x41784, 0x0}, -+ {0x41785, 0x0}, -+ {0x41786, 0x0}, -+ {0x41787, 0x0}, -+ {0x41788, 0x0}, -+ {0x41789, 0x0}, -+ {0x4178a, 0x0}, -+ {0x4178b, 0x0}, -+ {0x4178c, 0x0}, -+ {0x4178d, 0x0}, -+ {0x4178e, 0x0}, -+ {0x4178f, 0x0}, -+ {0x41790, 0x0}, -+ {0x41791, 0x0}, -+ {0x41792, 0x0}, -+ {0x41793, 0x0}, -+ {0x41794, 0x0}, -+ {0x41795, 0x0}, -+ {0x41796, 0x0}, -+ {0x41797, 0x0}, -+ {0x41798, 0x0}, -+ {0x41799, 0x0}, -+ {0x4179a, 0x0}, -+ {0x4179b, 0x0}, -+ {0x4179c, 0x0}, -+ {0x4179d, 0x0}, -+ {0x4179e, 0x0}, -+ {0x4179f, 0x0}, -+ {0x417a0, 0x0}, -+ {0x417a1, 0x0}, -+ {0x417a2, 0x0}, -+ {0x417a3, 0x0}, -+ {0x417a4, 0x0}, -+ {0x417a5, 0x0}, -+ {0x417a6, 0x0}, -+ {0x417a7, 0x0}, -+ {0x417a8, 0x0}, -+ {0x417a9, 0x0}, -+ {0x417aa, 0x0}, -+ {0x417ab, 0x0}, -+ {0x417ac, 0x0}, -+ {0x417ad, 0x0}, -+ {0x417ae, 0x0}, -+ {0x417af, 0x0}, -+ {0x417b0, 0x0}, -+ {0x417b1, 0x0}, -+ {0x417b2, 0x0}, -+ {0x417b3, 0x0}, -+ {0x417b4, 0x0}, -+ {0x417b5, 0x0}, -+ {0x417b6, 0x0}, -+ {0x417b7, 0x0}, -+ {0x417b8, 0x0}, -+ {0x417b9, 0x0}, -+ {0x417ba, 0x0}, -+ {0x417bb, 0x0}, -+ {0x417bc, 0x0}, -+ {0x417bd, 0x0}, -+ {0x417be, 0x0}, -+ {0x417bf, 0x0}, -+ {0x417c0, 0x0}, -+ {0x417c1, 0x0}, -+ {0x417c2, 0x0}, -+ {0x417c3, 0x0}, -+ {0x417c4, 0x0}, -+ {0x417c5, 0x0}, -+ {0x417c6, 0x0}, -+ {0x417c7, 0x0}, -+ {0x417c8, 0x0}, -+ {0x417c9, 0x0}, -+ {0x417ca, 0x0}, -+ {0x417cb, 0x0}, -+ {0x417cc, 0x0}, -+ {0x417cd, 0x0}, -+ {0x417ce, 0x0}, -+ {0x417cf, 0x0}, -+ {0x417d0, 0x0}, -+ {0x417d1, 0x0}, -+ {0x417d2, 0x0}, -+ {0x417d3, 0x0}, -+ {0x417d4, 0x0}, -+ {0x417d5, 0x0}, -+ {0x417d6, 0x0}, -+ {0x417d7, 0x0}, -+ {0x417d8, 0x0}, -+ {0x417d9, 0x0}, -+ {0x417da, 0x0}, -+ {0x417db, 0x0}, -+ {0x417dc, 0x0}, -+ {0x417dd, 0x0}, -+ {0x417de, 0x0}, -+ {0x417df, 0x0}, -+ {0x417e0, 0x0}, -+ {0x417e1, 0x0}, -+ {0x417e2, 0x0}, -+ {0x417e3, 0x0}, -+ {0x417e4, 0x0}, -+ {0x417e5, 0x0}, -+ {0x417e6, 0x0}, -+ {0x417e7, 0x0}, -+ {0x417e8, 0x0}, -+ {0x417e9, 0x0}, -+ {0x417ea, 0x0}, -+ {0x417eb, 0x0}, -+ {0x417ec, 0x0}, -+ {0x417ed, 0x0}, -+ {0x417ee, 0x0}, -+ {0x417ef, 0x0}, -+ {0x417f0, 0x0}, -+ {0x417f1, 0x0}, -+ {0x417f2, 0x0}, -+ {0x417f3, 0x0}, -+ {0x417f4, 0x0}, -+ {0x417f5, 0x0}, -+ {0x417f6, 0x0}, -+ {0x417f7, 0x0}, -+ {0x417f8, 0x0}, -+ {0x417f9, 0x0}, -+ {0x417fa, 0x0}, -+ {0x417fb, 0x0}, -+ {0x417fc, 0x0}, -+ {0x417fd, 0x0}, -+ {0x417fe, 0x0}, -+ {0x417ff, 0x0}, -+ {0x41800, 0x0}, -+ {0x41801, 0x0}, -+ {0x41802, 0x0}, -+ {0x41803, 0x0}, -+ {0x41804, 0x0}, -+ {0x41805, 0x0}, -+ {0x41806, 0x0}, -+ {0x41807, 0x0}, -+ {0x41808, 0x0}, -+ {0x41809, 0x0}, -+ {0x4180a, 0x0}, -+ {0x4180b, 0x0}, -+ {0x4180c, 0x0}, -+ {0x4180d, 0x0}, -+ {0x4180e, 0x0}, -+ {0x4180f, 0x0}, -+ {0x41810, 0x0}, -+ {0x41811, 0x0}, -+ {0x41812, 0x0}, -+ {0x41813, 0x0}, -+ {0x41814, 0x0}, -+ {0x41815, 0x0}, -+ {0x41816, 0x0}, -+ {0x41817, 0x0}, -+ {0x41818, 0x0}, -+ {0x41819, 0x0}, -+ {0x4181a, 0x0}, -+ {0x4181b, 0x0}, -+ {0x4181c, 0x0}, -+ {0x4181d, 0x0}, -+ {0x4181e, 0x0}, -+ {0x4181f, 0x0}, -+ {0x41820, 0x0}, -+ {0x41821, 0x0}, -+ {0x41822, 0x0}, -+ {0x41823, 0x0}, -+ {0x41824, 0x0}, -+ {0x41825, 0x0}, -+ {0x41826, 0x0}, -+ {0x41827, 0x0}, -+ {0x41828, 0x0}, -+ {0x41829, 0x0}, -+ {0x4182a, 0x0}, -+ {0x4182b, 0x0}, -+ {0x4182c, 0x0}, -+ {0x4182d, 0x0}, -+ {0x4182e, 0x0}, -+ {0x4182f, 0x0}, -+ {0x41830, 0x0}, -+ {0x41831, 0x0}, -+ {0x41832, 0x0}, -+ {0x41833, 0x0}, -+ {0x41834, 0x0}, -+ {0x41835, 0x0}, -+ {0x41836, 0x0}, -+ {0x41837, 0x0}, -+ {0x41838, 0x0}, -+ {0x41839, 0x0}, -+ {0x4183a, 0x0}, -+ {0x4183b, 0x0}, -+ {0x4183c, 0x0}, -+ {0x4183d, 0x0}, -+ {0x4183e, 0x0}, -+ {0x4183f, 0x0}, -+ {0x41840, 0x0}, -+ {0x41841, 0x0}, -+ {0x41842, 0x0}, -+ {0x41843, 0x0}, -+ {0x41844, 0x0}, -+ {0x41845, 0x0}, -+ {0x41846, 0x0}, -+ {0x41847, 0x0}, -+ {0x41848, 0x0}, -+ {0x41849, 0x0}, -+ {0x4184a, 0x0}, -+ {0x4184b, 0x0}, -+ {0x4184c, 0x0}, -+ {0x4184d, 0x0}, -+ {0x4184e, 0x0}, -+ {0x4184f, 0x0}, -+ {0x41850, 0x0}, -+ {0x41851, 0x0}, -+ {0x41852, 0x0}, -+ {0x41853, 0x0}, -+ {0x41854, 0x0}, -+ {0x41855, 0x0}, -+ {0x41856, 0x0}, -+ {0x41857, 0x0}, -+ {0x41858, 0x0}, -+ {0x41859, 0x0}, -+ {0x4185a, 0x0}, -+ {0x4185b, 0x0}, -+ {0x4185c, 0x0}, -+ {0x4185d, 0x0}, -+ {0x4185e, 0x0}, -+ {0x4185f, 0x0}, -+ {0x41860, 0x0}, -+ {0x41861, 0x0}, -+ {0x41862, 0x0}, -+ {0x41863, 0x0}, -+ {0x41864, 0x0}, -+ {0x41865, 0x0}, -+ {0x41866, 0x0}, -+ {0x41867, 0x0}, -+ {0x41868, 0x0}, -+ {0x41869, 0x0}, -+ {0x4186a, 0x0}, -+ {0x4186b, 0x0}, -+ {0x4186c, 0x0}, -+ {0x4186d, 0x0}, -+ {0x4186e, 0x0}, -+ {0x4186f, 0x0}, -+ {0x41870, 0x0}, -+ {0x41871, 0x0}, -+ {0x41872, 0x0}, -+ {0x41873, 0x0}, -+ {0x41874, 0x0}, -+ {0x41875, 0x0}, -+ {0x41876, 0x0}, -+ {0x41877, 0x0}, -+ {0x41878, 0x0}, -+ {0x41879, 0x0}, -+ {0x4187a, 0x0}, -+ {0x4187b, 0x0}, -+ {0x4187c, 0x0}, -+ {0x4187d, 0x0}, -+ {0x4187e, 0x0}, -+ {0x4187f, 0x0}, -+ {0x41880, 0x0}, -+ {0x41881, 0x0}, -+ {0x41882, 0x0}, -+ {0x41883, 0x0}, -+ {0x41884, 0x0}, -+ {0x41885, 0x0}, -+ {0x41886, 0x0}, -+ {0x41887, 0x0}, -+ {0x41888, 0x0}, -+ {0x41889, 0x0}, -+ {0x4188a, 0x0}, -+ {0x4188b, 0x0}, -+ {0x4188c, 0x0}, -+ {0x4188d, 0x0}, -+ {0x4188e, 0x0}, -+ {0x4188f, 0x0}, -+ {0x41890, 0x0}, -+ {0x41891, 0x0}, -+ {0x41892, 0x0}, -+ {0x41893, 0x0}, -+ {0x41894, 0x0}, -+ {0x41895, 0x0}, -+ {0x41896, 0x0}, -+ {0x41897, 0x0}, -+ {0x41898, 0x0}, -+ {0x41899, 0x0}, -+ {0x4189a, 0x0}, -+ {0x4189b, 0x0}, -+ {0x4189c, 0x0}, -+ {0x4189d, 0x0}, -+ {0x4189e, 0x0}, -+ {0x4189f, 0x0}, -+ {0x418a0, 0x0}, -+ {0x418a1, 0x0}, -+ {0x418a2, 0x0}, -+ {0x418a3, 0x0}, -+ {0x418a4, 0x0}, -+ {0x418a5, 0x0}, -+ {0x418a6, 0x0}, -+ {0x418a7, 0x0}, -+ {0x418a8, 0x0}, -+ {0x418a9, 0x0}, -+ {0x418aa, 0x0}, -+ {0x418ab, 0x0}, -+ {0x418ac, 0x0}, -+ {0x418ad, 0x0}, -+ {0x418ae, 0x0}, -+ {0x418af, 0x0}, -+ {0x418b0, 0x0}, -+ {0x418b1, 0x0}, -+ {0x418b2, 0x0}, -+ {0x418b3, 0x0}, -+ {0x418b4, 0x0}, -+ {0x418b5, 0x0}, -+ {0x418b6, 0x0}, -+ {0x418b7, 0x0}, -+ {0x418b8, 0x0}, -+ {0x418b9, 0x0}, -+ {0x418ba, 0x0}, -+ {0x418bb, 0x0}, -+ {0x418bc, 0x0}, -+ {0x418bd, 0x0}, -+ {0x418be, 0x0}, -+ {0x418bf, 0x0}, -+ {0x418c0, 0x0}, -+ {0x418c1, 0x0}, -+ {0x418c2, 0x0}, -+ {0x418c3, 0x0}, -+ {0x418c4, 0x0}, -+ {0x418c5, 0x0}, -+ {0x418c6, 0x0}, -+ {0x418c7, 0x0}, -+ {0x418c8, 0x0}, -+ {0x418c9, 0x0}, -+ {0x418ca, 0x0}, -+ {0x418cb, 0x0}, -+ {0x418cc, 0x0}, -+ {0x418cd, 0x0}, -+ {0x418ce, 0x0}, -+ {0x418cf, 0x0}, -+ {0x418d0, 0x0}, -+ {0x418d1, 0x0}, -+ {0x418d2, 0x0}, -+ {0x418d3, 0x0}, -+ {0x418d4, 0x0}, -+ {0x418d5, 0x0}, -+ {0x418d6, 0x0}, -+ {0x418d7, 0x0}, -+ {0x418d8, 0x0}, -+ {0x418d9, 0x0}, -+ {0x418da, 0x0}, -+ {0x418db, 0x0}, -+ {0x418dc, 0x0}, -+ {0x418dd, 0x0}, -+ {0x418de, 0x0}, -+ {0x418df, 0x0}, -+ {0x418e0, 0x0}, -+ {0x418e1, 0x0}, -+ {0x418e2, 0x0}, -+ {0x418e3, 0x0}, -+ {0x418e4, 0x0}, -+ {0x418e5, 0x0}, -+ {0x418e6, 0x0}, -+ {0x418e7, 0x0}, -+ {0x418e8, 0x0}, -+ {0x418e9, 0x0}, -+ {0x418ea, 0x0}, -+ {0x418eb, 0x0}, -+ {0x418ec, 0x0}, -+ {0x418ed, 0x0}, -+ {0x418ee, 0x0}, -+ {0x418ef, 0x0}, -+ {0x418f0, 0x0}, -+ {0x418f1, 0x0}, -+ {0x418f2, 0x0}, -+ {0x418f3, 0x0}, -+ {0x418f4, 0x0}, -+ {0x418f5, 0x0}, -+ {0x418f6, 0x0}, -+ {0x418f7, 0x0}, -+ {0x418f8, 0x0}, -+ {0x418f9, 0x0}, -+ {0x418fa, 0x0}, -+ {0x418fb, 0x0}, -+ {0x418fc, 0x0}, -+ {0x418fd, 0x0}, -+ {0x418fe, 0x0}, -+ {0x418ff, 0x0}, -+ {0x41900, 0x0}, -+ {0x41901, 0x0}, -+ {0x41902, 0x0}, -+ {0x41903, 0x0}, -+ {0x41904, 0x0}, -+ {0x41905, 0x0}, -+ {0x41906, 0x0}, -+ {0x41907, 0x0}, -+ {0x41908, 0x0}, -+ {0x41909, 0x0}, -+ {0x4190a, 0x0}, -+ {0x4190b, 0x0}, -+ {0x4190c, 0x0}, -+ {0x4190d, 0x0}, -+ {0x4190e, 0x0}, -+ {0x4190f, 0x0}, -+ {0x41910, 0x0}, -+ {0x41911, 0x0}, -+ {0x41912, 0x0}, -+ {0x41913, 0x0}, -+ {0x41914, 0x0}, -+ {0x41915, 0x0}, -+ {0x41916, 0x0}, -+ {0x41917, 0x0}, -+ {0x41918, 0x0}, -+ {0x41919, 0x0}, -+ {0x4191a, 0x0}, -+ {0x4191b, 0x0}, -+ {0x4191c, 0x0}, -+ {0x4191d, 0x0}, -+ {0x4191e, 0x0}, -+ {0x4191f, 0x0}, -+ {0x41920, 0x0}, -+ {0x41921, 0x0}, -+ {0x41922, 0x0}, -+ {0x41923, 0x0}, -+ {0x41924, 0x0}, -+ {0x41925, 0x0}, -+ {0x41926, 0x0}, -+ {0x41927, 0x0}, -+ {0x41928, 0x0}, -+ {0x41929, 0x0}, -+ {0x4192a, 0x0}, -+ {0x4192b, 0x0}, -+ {0x4192c, 0x0}, -+ {0x4192d, 0x0}, -+ {0x4192e, 0x0}, -+ {0x4192f, 0x0}, -+ {0x41930, 0x0}, -+ {0x41931, 0x0}, -+ {0x41932, 0x0}, -+ {0x41933, 0x0}, -+ {0x41934, 0x0}, -+ {0x41935, 0x0}, -+ {0x41936, 0x0}, -+ {0x41937, 0x0}, -+ {0x41938, 0x0}, -+ {0x41939, 0x0}, -+ {0x4193a, 0x0}, -+ {0x4193b, 0x0}, -+ {0x4193c, 0x0}, -+ {0x4193d, 0x0}, -+ {0x4193e, 0x0}, -+ {0x4193f, 0x0}, -+ {0x41940, 0x0}, -+ {0x41941, 0x0}, -+ {0x41942, 0x0}, -+ {0x41943, 0x0}, -+ {0x41944, 0x0}, -+ {0x41945, 0x0}, -+ {0x41946, 0x0}, -+ {0x41947, 0x0}, -+ {0x41948, 0x0}, -+ {0x41949, 0x0}, -+ {0x4194a, 0x0}, -+ {0x4194b, 0x0}, -+ {0x4194c, 0x0}, -+ {0x4194d, 0x0}, -+ {0x4194e, 0x0}, -+ {0x4194f, 0x0}, -+ {0x41950, 0x0}, -+ {0x41951, 0x0}, -+ {0x41952, 0x0}, -+ {0x41953, 0x0}, -+ {0x41954, 0x0}, -+ {0x41955, 0x0}, -+ {0x41956, 0x0}, -+ {0x41957, 0x0}, -+ {0x41958, 0x0}, -+ {0x41959, 0x0}, -+ {0x4195a, 0x0}, -+ {0x4195b, 0x0}, -+ {0x4195c, 0x0}, -+ {0x4195d, 0x0}, -+ {0x4195e, 0x0}, -+ {0x4195f, 0x0}, -+ {0x41960, 0x0}, -+ {0x41961, 0x0}, -+ {0x41962, 0x0}, -+ {0x41963, 0x0}, -+ {0x41964, 0x0}, -+ {0x41965, 0x0}, -+ {0x41966, 0x0}, -+ {0x41967, 0x0}, -+ {0x41968, 0x0}, -+ {0x41969, 0x0}, -+ {0x4196a, 0x0}, -+ {0x4196b, 0x0}, -+ {0x4196c, 0x0}, -+ {0x4196d, 0x0}, -+ {0x4196e, 0x0}, -+ {0x4196f, 0x0}, -+ {0x41970, 0x0}, -+ {0x41971, 0x0}, -+ {0x41972, 0x0}, -+ {0x41973, 0x0}, -+ {0x41974, 0x0}, -+ {0x41975, 0x0}, -+ {0x41976, 0x0}, -+ {0x41977, 0x0}, -+ {0x41978, 0x0}, -+ {0x41979, 0x0}, -+ {0x4197a, 0x0}, -+ {0x4197b, 0x0}, -+ {0x4197c, 0x0}, -+ {0x4197d, 0x0}, -+ {0x4197e, 0x0}, -+ {0x4197f, 0x0}, -+ {0x41980, 0x0}, -+ {0x41981, 0x0}, -+ {0x41982, 0x0}, -+ {0x41983, 0x0}, -+ {0x41984, 0x0}, -+ {0x41985, 0x0}, -+ {0x41986, 0x0}, -+ {0x41987, 0x0}, -+ {0x41988, 0x0}, -+ {0x41989, 0x0}, -+ {0x4198a, 0x0}, -+ {0x4198b, 0x0}, -+ {0x4198c, 0x0}, -+ {0x4198d, 0x0}, -+ {0x4198e, 0x0}, -+ {0x4198f, 0x0}, -+ {0x41990, 0x0}, -+ {0x41991, 0x0}, -+ {0x41992, 0x0}, -+ {0x41993, 0x0}, -+ {0x41994, 0x0}, -+ {0x41995, 0x0}, -+ {0x41996, 0x0}, -+ {0x41997, 0x0}, -+ {0x41998, 0x0}, -+ {0x41999, 0x0}, -+ {0x4199a, 0x0}, -+ {0x4199b, 0x0}, -+ {0x4199c, 0x0}, -+ {0x4199d, 0x0}, -+ {0x4199e, 0x0}, -+ {0x4199f, 0x0}, -+ {0x419a0, 0x0}, -+ {0x419a1, 0x0}, -+ {0x419a2, 0x0}, -+ {0x419a3, 0x0}, -+ {0x419a4, 0x0}, -+ {0x419a5, 0x0}, -+ {0x419a6, 0x0}, -+ {0x419a7, 0x0}, -+ {0x419a8, 0x0}, -+ {0x419a9, 0x0}, -+ {0x419aa, 0x0}, -+ {0x419ab, 0x0}, -+ {0x419ac, 0x0}, -+ {0x419ad, 0x0}, -+ {0x419ae, 0x0}, -+ {0x419af, 0x0}, -+ {0x419b0, 0x0}, -+ {0x419b1, 0x0}, -+ {0x419b2, 0x0}, -+ {0x419b3, 0x0}, -+ {0x419b4, 0x0}, -+ {0x419b5, 0x0}, -+ {0x419b6, 0x0}, -+ {0x419b7, 0x0}, -+ {0x419b8, 0x0}, -+ {0x419b9, 0x0}, -+ {0x419ba, 0x0}, -+ {0x419bb, 0x0}, -+ {0x419bc, 0x0}, -+ {0x419bd, 0x0}, -+ {0x419be, 0x0}, -+ {0x419bf, 0x0}, -+ {0x419c0, 0x0}, -+ {0x419c1, 0x0}, -+ {0x419c2, 0x0}, -+ {0x419c3, 0x0}, -+ {0x419c4, 0x0}, -+ {0x419c5, 0x0}, -+ {0x419c6, 0x0}, -+ {0x419c7, 0x0}, -+ {0x419c8, 0x0}, -+ {0x419c9, 0x0}, -+ {0x419ca, 0x0}, -+ {0x419cb, 0x0}, -+ {0x419cc, 0x0}, -+ {0x419cd, 0x0}, -+ {0x419ce, 0x0}, -+ {0x419cf, 0x0}, -+ {0x419d0, 0x0}, -+ {0x419d1, 0x0}, -+ {0x419d2, 0x0}, -+ {0x419d3, 0x0}, -+ {0x419d4, 0x0}, -+ {0x419d5, 0x0}, -+ {0x419d6, 0x0}, -+ {0x419d7, 0x0}, -+ {0x419d8, 0x0}, -+ {0x419d9, 0x0}, -+ {0x419da, 0x0}, -+ {0x419db, 0x0}, -+ {0x419dc, 0x0}, -+ {0x419dd, 0x0}, -+ {0x419de, 0x0}, -+ {0x419df, 0x0}, -+ {0x419e0, 0x0}, -+ {0x419e1, 0x0}, -+ {0x419e2, 0x0}, -+ {0x419e3, 0x0}, -+ {0x419e4, 0x0}, -+ {0x419e5, 0x0}, -+ {0x419e6, 0x0}, -+ {0x419e7, 0x0}, -+ {0x419e8, 0x0}, -+ {0x419e9, 0x0}, -+ {0x419ea, 0x0}, -+ {0x419eb, 0x0}, -+ {0x419ec, 0x0}, -+ {0x419ed, 0x0}, -+ {0x419ee, 0x0}, -+ {0x419ef, 0x0}, -+ {0x419f0, 0x0}, -+ {0x419f1, 0x0}, -+ {0x419f2, 0x0}, -+ {0x419f3, 0x0}, -+ {0x419f4, 0x0}, -+ {0x419f5, 0x0}, -+ {0x419f6, 0x0}, -+ {0x419f7, 0x0}, -+ {0x419f8, 0x0}, -+ {0x419f9, 0x0}, -+ {0x419fa, 0x0}, -+ {0x419fb, 0x0}, -+ {0x419fc, 0x0}, -+ {0x419fd, 0x0}, -+ {0x419fe, 0x0}, -+ {0x419ff, 0x0}, -+ {0x41a00, 0x0}, -+ {0x41a01, 0x0}, -+ {0x41a02, 0x0}, -+ {0x41a03, 0x0}, -+ {0x41a04, 0x0}, -+ {0x41a05, 0x0}, -+ {0x41a06, 0x0}, -+ {0x41a07, 0x0}, -+ {0x41a08, 0x0}, -+ {0x41a09, 0x0}, -+ {0x41a0a, 0x0}, -+ {0x41a0b, 0x0}, -+ {0x41a0c, 0x0}, -+ {0x41a0d, 0x0}, -+ {0x41a0e, 0x0}, -+ {0x41a0f, 0x0}, -+ {0x41a10, 0x0}, -+ {0x41a11, 0x0}, -+ {0x41a12, 0x0}, -+ {0x41a13, 0x0}, -+ {0x41a14, 0x0}, -+ {0x41a15, 0x0}, -+ {0x41a16, 0x0}, -+ {0x41a17, 0x0}, -+ {0x41a18, 0x0}, -+ {0x41a19, 0x0}, -+ {0x41a1a, 0x0}, -+ {0x41a1b, 0x0}, -+ {0x41a1c, 0x0}, -+ {0x41a1d, 0x0}, -+ {0x41a1e, 0x0}, -+ {0x41a1f, 0x0}, -+ {0x41a20, 0x0}, -+ {0x41a21, 0x0}, -+ {0x41a22, 0x0}, -+ {0x41a23, 0x0}, -+ {0x41a24, 0x0}, -+ {0x41a25, 0x0}, -+ {0x41a26, 0x0}, -+ {0x41a27, 0x0}, -+ {0x41a28, 0x0}, -+ {0x41a29, 0x0}, -+ {0x41a2a, 0x0}, -+ {0x41a2b, 0x0}, -+ {0x41a2c, 0x0}, -+ {0x41a2d, 0x0}, -+ {0x41a2e, 0x0}, -+ {0x41a2f, 0x0}, -+ {0x41a30, 0x0}, -+ {0x41a31, 0x0}, -+ {0x41a32, 0x0}, -+ {0x41a33, 0x0}, -+ {0x41a34, 0x0}, -+ {0x41a35, 0x0}, -+ {0x41a36, 0x0}, -+ {0x41a37, 0x0}, -+ {0x41a38, 0x0}, -+ {0x41a39, 0x0}, -+ {0x41a3a, 0x0}, -+ {0x41a3b, 0x0}, -+ {0x41a3c, 0x0}, -+ {0x41a3d, 0x0}, -+ {0x41a3e, 0x0}, -+ {0x41a3f, 0x0}, -+ {0x41a40, 0x0}, -+ {0x41a41, 0x0}, -+ {0x41a42, 0x0}, -+ {0x41a43, 0x0}, -+ {0x41a44, 0x0}, -+ {0x41a45, 0x0}, -+ {0x41a46, 0x0}, -+ {0x41a47, 0x0}, -+ {0x41a48, 0x0}, -+ {0x41a49, 0x0}, -+ {0x41a4a, 0x0}, -+ {0x41a4b, 0x0}, -+ {0x41a4c, 0x0}, -+ {0x41a4d, 0x0}, -+ {0x41a4e, 0x0}, -+ {0x41a4f, 0x0}, -+ {0x41a50, 0x0}, -+ {0x41a51, 0x0}, -+ {0x41a52, 0x0}, -+ {0x41a53, 0x0}, -+ {0x41a54, 0x0}, -+ {0x41a55, 0x0}, -+ {0x41a56, 0x0}, -+ {0x41a57, 0x0}, -+ {0x41a58, 0x0}, -+ {0x41a59, 0x0}, -+ {0x41a5a, 0x0}, -+ {0x41a5b, 0x0}, -+ {0x41a5c, 0x0}, -+ {0x41a5d, 0x0}, -+ {0x41a5e, 0x0}, -+ {0x41a5f, 0x0}, -+ {0x41a60, 0x0}, -+ {0x41a61, 0x0}, -+ {0x41a62, 0x0}, -+ {0x41a63, 0x0}, -+ {0x41a64, 0x0}, -+ {0x41a65, 0x0}, -+ {0x41a66, 0x0}, -+ {0x41a67, 0x0}, -+ {0x41a68, 0x0}, -+ {0x41a69, 0x0}, -+ {0x41a6a, 0x0}, -+ {0x41a6b, 0x0}, -+ {0x41a6c, 0x0}, -+ {0x41a6d, 0x0}, -+ {0x41a6e, 0x0}, -+ {0x41a6f, 0x0}, -+ {0x41a70, 0x0}, -+ {0x41a71, 0x0}, -+ {0x41a72, 0x0}, -+ {0x41a73, 0x0}, -+ {0x41a74, 0x0}, -+ {0x41a75, 0x0}, -+ {0x41a76, 0x0}, -+ {0x41a77, 0x0}, -+ {0x41a78, 0x0}, -+ {0x41a79, 0x0}, -+ {0x41a7a, 0x0}, -+ {0x41a7b, 0x0}, -+ {0x41a7c, 0x0}, -+ {0x41a7d, 0x0}, -+ {0x41a7e, 0x0}, -+ {0x41a7f, 0x0}, -+ {0x41a80, 0x0}, -+ {0x41a81, 0x0}, -+ {0x41a82, 0x0}, -+ {0x41a83, 0x0}, -+ {0x41a84, 0x0}, -+ {0x41a85, 0x0}, -+ {0x41a86, 0x0}, -+ {0x41a87, 0x0}, -+ {0x41a88, 0x0}, -+ {0x41a89, 0x0}, -+ {0x41a8a, 0x0}, -+ {0x41a8b, 0x0}, -+ {0x41a8c, 0x0}, -+ {0x41a8d, 0x0}, -+ {0x41a8e, 0x0}, -+ {0x41a8f, 0x0}, -+ {0x41a90, 0x0}, -+ {0x41a91, 0x0}, -+ {0x41a92, 0x0}, -+ {0x41a93, 0x0}, -+ {0x41a94, 0x0}, -+ {0x41a95, 0x0}, -+ {0x41a96, 0x0}, -+ {0x41a97, 0x0}, -+ {0x41a98, 0x0}, -+ {0x41a99, 0x0}, -+ {0x41a9a, 0x0}, -+ {0x41a9b, 0x0}, -+ {0x41a9c, 0x0}, -+ {0x41a9d, 0x0}, -+ {0x41a9e, 0x0}, -+ {0x41a9f, 0x0}, -+ {0x41aa0, 0x0}, -+ {0x41aa1, 0x0}, -+ {0x41aa2, 0x0}, -+ {0x41aa3, 0x0}, -+ {0x41aa4, 0x0}, -+ {0x41aa5, 0x0}, -+ {0x41aa6, 0x0}, -+ {0x41aa7, 0x0}, -+ {0x41aa8, 0x0}, -+ {0x41aa9, 0x0}, -+ {0x41aaa, 0x0}, -+ {0x41aab, 0x0}, -+ {0x41aac, 0x0}, -+ {0x41aad, 0x0}, -+ {0x41aae, 0x0}, -+ {0x41aaf, 0x0}, -+ {0x41ab0, 0x0}, -+ {0x41ab1, 0x0}, -+ {0x41ab2, 0x0}, -+ {0x41ab3, 0x0}, -+ {0x41ab4, 0x0}, -+ {0x41ab5, 0x0}, -+ {0x41ab6, 0x0}, -+ {0x41ab7, 0x0}, -+ {0x41ab8, 0x0}, -+ {0x41ab9, 0x0}, -+ {0x41aba, 0x0}, -+ {0x41abb, 0x0}, -+ {0x41abc, 0x0}, -+ {0x41abd, 0x0}, -+ {0x41abe, 0x0}, -+ {0x41abf, 0x0}, -+ {0x41ac0, 0x0}, -+ {0x41ac1, 0x0}, -+ {0x41ac2, 0x0}, -+ {0x41ac3, 0x0}, -+ {0x41ac4, 0x0}, -+ {0x41ac5, 0x0}, -+ {0x41ac6, 0x0}, -+ {0x41ac7, 0x0}, -+ {0x41ac8, 0x0}, -+ {0x41ac9, 0x0}, -+ {0x41aca, 0x0}, -+ {0x41acb, 0x0}, -+ {0x41acc, 0x0}, -+ {0x41acd, 0x0}, -+ {0x41ace, 0x0}, -+ {0x41acf, 0x0}, -+ {0x41ad0, 0x0}, -+ {0x41ad1, 0x0}, -+ {0x41ad2, 0x0}, -+ {0x41ad3, 0x0}, -+ {0x41ad4, 0x0}, -+ {0x41ad5, 0x0}, -+ {0x41ad6, 0x0}, -+ {0x41ad7, 0x0}, -+ {0x41ad8, 0x0}, -+ {0x41ad9, 0x0}, -+ {0x41ada, 0x0}, -+ {0x41adb, 0x0}, -+ {0x41adc, 0x0}, -+ {0x41add, 0x0}, -+ {0x41ade, 0x0}, -+ {0x41adf, 0x0}, -+ {0x41ae0, 0x0}, -+ {0x41ae1, 0x0}, -+ {0x41ae2, 0x0}, -+ {0x41ae3, 0x0}, -+ {0x41ae4, 0x0}, -+ {0x41ae5, 0x0}, -+ {0x41ae6, 0x0}, -+ {0x41ae7, 0x0}, -+ {0x41ae8, 0x0}, -+ {0x41ae9, 0x0}, -+ {0x41aea, 0x0}, -+ {0x41aeb, 0x0}, -+ {0x41aec, 0x0}, -+ {0x41aed, 0x0}, -+ {0x41aee, 0x0}, -+ {0x41aef, 0x0}, -+ {0x41af0, 0x0}, -+ {0x41af1, 0x0}, -+ {0x41af2, 0x0}, -+ {0x41af3, 0x0}, -+ {0x41af4, 0x0}, -+ {0x41af5, 0x0}, -+ {0x41af6, 0x0}, -+ {0x41af7, 0x0}, -+ {0x41af8, 0x0}, -+ {0x41af9, 0x0}, -+ {0x41afa, 0x0}, -+ {0x41afb, 0x0}, -+ {0x41afc, 0x0}, -+ {0x41afd, 0x0}, -+ {0x41afe, 0x0}, -+ {0x41aff, 0x0}, -+ {0x41b00, 0x0}, -+ {0x41b01, 0x0}, -+ {0x41b02, 0x0}, -+ {0x41b03, 0x0}, -+ {0x41b04, 0x0}, -+ {0x41b05, 0x0}, -+ {0x41b06, 0x0}, -+ {0x41b07, 0x0}, -+ {0x41b08, 0x0}, -+ {0x41b09, 0x0}, -+ {0x41b0a, 0x0}, -+ {0x41b0b, 0x0}, -+ {0x41b0c, 0x0}, -+ {0x41b0d, 0x0}, -+ {0x41b0e, 0x0}, -+ {0x41b0f, 0x0}, -+ {0x41b10, 0x0}, -+ {0x41b11, 0x0}, -+ {0x41b12, 0x0}, -+ {0x41b13, 0x0}, -+ {0x41b14, 0x0}, -+ {0x41b15, 0x0}, -+ {0x41b16, 0x0}, -+ {0x41b17, 0x0}, -+ {0x41b18, 0x0}, -+ {0x41b19, 0x0}, -+ {0x41b1a, 0x0}, -+ {0x41b1b, 0x0}, -+ {0x41b1c, 0x0}, -+ {0x41b1d, 0x0}, -+ {0x41b1e, 0x0}, -+ {0x41b1f, 0x0}, -+ {0x41b20, 0x0}, -+ {0x41b21, 0x0}, -+ {0x41b22, 0x0}, -+ {0x41b23, 0x0}, -+ {0x41b24, 0x0}, -+ {0x41b25, 0x0}, -+ {0x41b26, 0x0}, -+ {0x41b27, 0x0}, -+ {0x41b28, 0x0}, -+ {0x41b29, 0x0}, -+ {0x41b2a, 0x0}, -+ {0x41b2b, 0x0}, -+ {0x41b2c, 0x0}, -+ {0x41b2d, 0x0}, -+ {0x41b2e, 0x0}, -+ {0x41b2f, 0x0}, -+ {0x41b30, 0x0}, -+ {0x41b31, 0x0}, -+ {0x41b32, 0x0}, -+ {0x41b33, 0x0}, -+ {0x41b34, 0x0}, -+ {0x41b35, 0x0}, -+ {0x41b36, 0x0}, -+ {0x41b37, 0x0}, -+ {0x41b38, 0x0}, -+ {0x41b39, 0x0}, -+ {0x41b3a, 0x0}, -+ {0x41b3b, 0x0}, -+ {0x41b3c, 0x0}, -+ {0x41b3d, 0x0}, -+ {0x41b3e, 0x0}, -+ {0x41b3f, 0x0}, -+ {0x41b40, 0x0}, -+ {0x41b41, 0x0}, -+ {0x41b42, 0x0}, -+ {0x41b43, 0x0}, -+ {0x41b44, 0x0}, -+ {0x41b45, 0x0}, -+ {0x41b46, 0x0}, -+ {0x41b47, 0x0}, -+ {0x41b48, 0x0}, -+ {0x41b49, 0x0}, -+ {0x41b4a, 0x0}, -+ {0x41b4b, 0x0}, -+ {0x41b4c, 0x0}, -+ {0x41b4d, 0x0}, -+ {0x41b4e, 0x0}, -+ {0x41b4f, 0x0}, -+ {0x41b50, 0x0}, -+ {0x41b51, 0x0}, -+ {0x41b52, 0x0}, -+ {0x41b53, 0x0}, -+ {0x41b54, 0x0}, -+ {0x41b55, 0x0}, -+ {0x41b56, 0x0}, -+ {0x41b57, 0x0}, -+ {0x41b58, 0x0}, -+ {0x41b59, 0x0}, -+ {0x41b5a, 0x0}, -+ {0x41b5b, 0x0}, -+ {0x41b5c, 0x0}, -+ {0x41b5d, 0x0}, -+ {0x41b5e, 0x0}, -+ {0x41b5f, 0x0}, -+ {0x41b60, 0x0}, -+ {0x41b61, 0x0}, -+ {0x41b62, 0x0}, -+ {0x41b63, 0x0}, -+ {0x41b64, 0x0}, -+ {0x41b65, 0x0}, -+ {0x41b66, 0x0}, -+ {0x41b67, 0x0}, -+ {0x41b68, 0x0}, -+ {0x41b69, 0x0}, -+ {0x41b6a, 0x0}, -+ {0x41b6b, 0x0}, -+ {0x41b6c, 0x0}, -+ {0x41b6d, 0x0}, -+ {0x41b6e, 0x0}, -+ {0x41b6f, 0x0}, -+ {0x41b70, 0x0}, -+ {0x41b71, 0x0}, -+ {0x41b72, 0x0}, -+ {0x41b73, 0x0}, -+ {0x41b74, 0x0}, -+ {0x41b75, 0x0}, -+ {0x41b76, 0x0}, -+ {0x41b77, 0x0}, -+ {0x41b78, 0x0}, -+ {0x41b79, 0x0}, -+ {0x41b7a, 0x0}, -+ {0x41b7b, 0x0}, -+ {0x41b7c, 0x0}, -+ {0x41b7d, 0x0}, -+ {0x41b7e, 0x0}, -+ {0x41b7f, 0x0}, -+ {0x41b80, 0x0}, -+ {0x41b81, 0x0}, -+ {0x41b82, 0x0}, -+ {0x41b83, 0x0}, -+ {0x41b84, 0x0}, -+ {0x41b85, 0x0}, -+ {0x41b86, 0x0}, -+ {0x41b87, 0x0}, -+ {0x41b88, 0x0}, -+ {0x41b89, 0x0}, -+ {0x41b8a, 0x0}, -+ {0x41b8b, 0x0}, -+ {0x41b8c, 0x0}, -+ {0x41b8d, 0x0}, -+ {0x41b8e, 0x0}, -+ {0x41b8f, 0x0}, -+ {0x41b90, 0x0}, -+ {0x41b91, 0x0}, -+ {0x41b92, 0x0}, -+ {0x41b93, 0x0}, -+ {0x41b94, 0x0}, -+ {0x41b95, 0x0}, -+ {0x41b96, 0x0}, -+ {0x41b97, 0x0}, -+ {0x41b98, 0x0}, -+ {0x41b99, 0x0}, -+ {0x41b9a, 0x0}, -+ {0x41b9b, 0x0}, -+ {0x41b9c, 0x0}, -+ {0x41b9d, 0x0}, -+ {0x41b9e, 0x0}, -+ {0x41b9f, 0x0}, -+ {0x41ba0, 0x0}, -+ {0x41ba1, 0x0}, -+ {0x41ba2, 0x0}, -+ {0x41ba3, 0x0}, -+ {0x41ba4, 0x0}, -+ {0x41ba5, 0x0}, -+ {0x41ba6, 0x0}, -+ {0x41ba7, 0x0}, -+ {0x41ba8, 0x0}, -+ {0x41ba9, 0x0}, -+ {0x41baa, 0x0}, -+ {0x41bab, 0x0}, -+ {0x41bac, 0x0}, -+ {0x41bad, 0x0}, -+ {0x41bae, 0x0}, -+ {0x41baf, 0x0}, -+ {0x41bb0, 0x0}, -+ {0x41bb1, 0x0}, -+ {0x41bb2, 0x0}, -+ {0x41bb3, 0x0}, -+ {0x41bb4, 0x0}, -+ {0x41bb5, 0x0}, -+ {0x41bb6, 0x0}, -+ {0x41bb7, 0x0}, -+ {0x41bb8, 0x0}, -+ {0x41bb9, 0x0}, -+ {0x41bba, 0x0}, -+ {0x41bbb, 0x0}, -+ {0x41bbc, 0x0}, -+ {0x41bbd, 0x0}, -+ {0x41bbe, 0x0}, -+ {0x41bbf, 0x0}, -+ {0x41bc0, 0x0}, -+ {0x41bc1, 0x0}, -+ {0x41bc2, 0x0}, -+ {0x41bc3, 0x0}, -+ {0x41bc4, 0x0}, -+ {0x41bc5, 0x0}, -+ {0x41bc6, 0x0}, -+ {0x41bc7, 0x0}, -+ {0x41bc8, 0x0}, -+ {0x41bc9, 0x0}, -+ {0x41bca, 0x0}, -+ {0x41bcb, 0x0}, -+ {0x41bcc, 0x0}, -+ {0x41bcd, 0x0}, -+ {0x41bce, 0x0}, -+ {0x41bcf, 0x0}, -+ {0x41bd0, 0x0}, -+ {0x41bd1, 0x0}, -+ {0x41bd2, 0x0}, -+ {0x41bd3, 0x0}, -+ {0x41bd4, 0x0}, -+ {0x41bd5, 0x0}, -+ {0x41bd6, 0x0}, -+ {0x41bd7, 0x0}, -+ {0x41bd8, 0x0}, -+ {0x41bd9, 0x0}, -+ {0x41bda, 0x0}, -+ {0x41bdb, 0x0}, -+ {0x41bdc, 0x0}, -+ {0x41bdd, 0x0}, -+ {0x41bde, 0x0}, -+ {0x41bdf, 0x0}, -+ {0x41be0, 0x0}, -+ {0x41be1, 0x0}, -+ {0x41be2, 0x0}, -+ {0x41be3, 0x0}, -+ {0x41be4, 0x0}, -+ {0x41be5, 0x0}, -+ {0x41be6, 0x0}, -+ {0x41be7, 0x0}, -+ {0x41be8, 0x0}, -+ {0x41be9, 0x0}, -+ {0x41bea, 0x0}, -+ {0x41beb, 0x0}, -+ {0x41bec, 0x0}, -+ {0x41bed, 0x0}, -+ {0x41bee, 0x0}, -+ {0x41bef, 0x0}, -+ {0x41bf0, 0x0}, -+ {0x41bf1, 0x0}, -+ {0x41bf2, 0x0}, -+ {0x41bf3, 0x0}, -+ {0x41bf4, 0x0}, -+ {0x41bf5, 0x0}, -+ {0x41bf6, 0x0}, -+ {0x41bf7, 0x0}, -+ {0x41bf8, 0x0}, -+ {0x41bf9, 0x0}, -+ {0x41bfa, 0x0}, -+ {0x41bfb, 0x0}, -+ {0x41bfc, 0x0}, -+ {0x41bfd, 0x0}, -+ {0x41bfe, 0x0}, -+ {0x41bff, 0x0}, -+ {0x41c00, 0x0}, -+ {0x41c01, 0x0}, -+ {0x41c02, 0x0}, -+ {0x41c03, 0x0}, -+ {0x41c04, 0x0}, -+ {0x41c05, 0x0}, -+ {0x41c06, 0x0}, -+ {0x41c07, 0x0}, -+ {0x41c08, 0x0}, -+ {0x41c09, 0x0}, -+ {0x41c0a, 0x0}, -+ {0x41c0b, 0x0}, -+ {0x41c0c, 0x0}, -+ {0x41c0d, 0x0}, -+ {0x41c0e, 0x0}, -+ {0x41c0f, 0x0}, -+ {0x41c10, 0x0}, -+ {0x41c11, 0x0}, -+ {0x41c12, 0x0}, -+ {0x41c13, 0x0}, -+ {0x41c14, 0x0}, -+ {0x41c15, 0x0}, -+ {0x41c16, 0x0}, -+ {0x41c17, 0x0}, -+ {0x41c18, 0x0}, -+ {0x41c19, 0x0}, -+ {0x41c1a, 0x0}, -+ {0x41c1b, 0x0}, -+ {0x41c1c, 0x0}, -+ {0x41c1d, 0x0}, -+ {0x41c1e, 0x0}, -+ {0x41c1f, 0x0}, -+ {0x41c20, 0x0}, -+ {0x41c21, 0x0}, -+ {0x41c22, 0x0}, -+ {0x41c23, 0x0}, -+ {0x41c24, 0x0}, -+ {0x41c25, 0x0}, -+ {0x41c26, 0x0}, -+ {0x41c27, 0x0}, -+ {0x41c28, 0x0}, -+ {0x41c29, 0x0}, -+ {0x41c2a, 0x0}, -+ {0x41c2b, 0x0}, -+ {0x41c2c, 0x0}, -+ {0x41c2d, 0x0}, -+ {0x41c2e, 0x0}, -+ {0x41c2f, 0x0}, -+ {0x41c30, 0x0}, -+ {0x41c31, 0x0}, -+ {0x41c32, 0x0}, -+ {0x41c33, 0x0}, -+ {0x41c34, 0x0}, -+ {0x41c35, 0x0}, -+ {0x41c36, 0x0}, -+ {0x41c37, 0x0}, -+ {0x41c38, 0x0}, -+ {0x41c39, 0x0}, -+ {0x41c3a, 0x0}, -+ {0x41c3b, 0x0}, -+ {0x41c3c, 0x0}, -+ {0x41c3d, 0x0}, -+ {0x41c3e, 0x0}, -+ {0x41c3f, 0x0}, -+ {0x41c40, 0x0}, -+ {0x41c41, 0x0}, -+ {0x41c42, 0x0}, -+ {0x41c43, 0x0}, -+ {0x41c44, 0x0}, -+ {0x41c45, 0x0}, -+ {0x41c46, 0x0}, -+ {0x41c47, 0x0}, -+ {0x41c48, 0x0}, -+ {0x41c49, 0x0}, -+ {0x41c4a, 0x0}, -+ {0x41c4b, 0x0}, -+ {0x41c4c, 0x0}, -+ {0x41c4d, 0x0}, -+ {0x41c4e, 0x0}, -+ {0x41c4f, 0x0}, -+ {0x41c50, 0x0}, -+ {0x41c51, 0x0}, -+ {0x41c52, 0x0}, -+ {0x41c53, 0x0}, -+ {0x41c54, 0x0}, -+ {0x41c55, 0x0}, -+ {0x41c56, 0x0}, -+ {0x41c57, 0x0}, -+ {0x9002e, 0x0}, -+ {0x9002f, 0x0}, -+ {0x90030, 0x0}, -+ {0x90031, 0x0}, -+ {0x90032, 0x0}, -+ {0x90033, 0x0}, -+ {0x90034, 0x0}, -+ {0x90035, 0x0}, -+ {0x90036, 0x0}, -+ {0x90037, 0x0}, -+ {0x90038, 0x0}, -+ {0x90039, 0x0}, -+ {0x9003a, 0x0}, -+ {0x9003b, 0x0}, -+ {0x9003c, 0x0}, -+ {0x9003d, 0x0}, -+ {0x9003e, 0x0}, -+ {0x9003f, 0x0}, -+ {0x90040, 0x0}, -+ {0x90041, 0x0}, -+ {0x90042, 0x0}, -+ {0x90043, 0x0}, -+ {0x90044, 0x0}, -+ {0x90045, 0x0}, -+ {0x90046, 0x0}, -+ {0x90047, 0x0}, -+ {0x90048, 0x0}, -+ {0x90049, 0x0}, -+ {0x9004a, 0x0}, -+ {0x9004b, 0x0}, -+ {0x9004c, 0x0}, -+ {0x9004d, 0x0}, -+ {0x9004e, 0x0}, -+ {0x9004f, 0x0}, -+ {0x90050, 0x0}, -+ {0x90051, 0x0}, -+ {0x90052, 0x0}, -+ {0x90053, 0x0}, -+ {0x90054, 0x0}, -+ {0x90055, 0x0}, -+ {0x90056, 0x0}, -+ {0x90057, 0x0}, -+ {0x90058, 0x0}, -+ {0x90059, 0x0}, -+ {0x9005a, 0x0}, -+ {0x9005b, 0x0}, -+ {0x9005c, 0x0}, -+ {0x9005d, 0x0}, -+ {0x9005e, 0x0}, -+ {0x9005f, 0x0}, -+ {0x90060, 0x0}, -+ {0x90061, 0x0}, -+ {0x90062, 0x0}, -+ {0x90063, 0x0}, -+ {0x90064, 0x0}, -+ {0x90065, 0x0}, -+ {0x90066, 0x0}, -+ {0x90067, 0x0}, -+ {0x90068, 0x0}, -+ {0x90069, 0x0}, -+ {0x9006a, 0x0}, -+ {0x9006b, 0x0}, -+ {0x9006c, 0x0}, -+ {0x9006d, 0x0}, -+ {0x9006e, 0x0}, -+ {0x9006f, 0x0}, -+ {0x90070, 0x0}, -+ {0x90071, 0x0}, -+ {0x90072, 0x0}, -+ {0x90073, 0x0}, -+ {0x90074, 0x0}, -+ {0x90075, 0x0}, -+ {0x90076, 0x0}, -+ {0x90077, 0x0}, -+ {0x90078, 0x0}, -+ {0x90079, 0x0}, -+ {0x9007a, 0x0}, -+ {0x9007b, 0x0}, -+ {0x9007c, 0x0}, -+ {0x9007d, 0x0}, -+ {0x9007e, 0x0}, -+ {0x9007f, 0x0}, -+ {0x90080, 0x0}, -+ {0x90081, 0x0}, -+ {0x90082, 0x0}, -+ {0x90083, 0x0}, -+ {0x90084, 0x0}, -+ {0x90085, 0x0}, -+ {0x90086, 0x0}, -+ {0x90087, 0x0}, -+ {0x90088, 0x0}, -+ {0x90089, 0x0}, -+ {0x9008a, 0x0}, -+ {0x9008b, 0x0}, -+ {0x9008c, 0x0}, -+ {0x9008d, 0x0}, -+ {0x9008e, 0x0}, -+ {0x9008f, 0x0}, -+ {0x90090, 0x0}, -+ {0x90091, 0x0}, -+ {0x90092, 0x0}, -+ {0x90093, 0x0}, -+ {0x90094, 0x0}, -+ {0x90095, 0x0}, -+ {0x90096, 0x0}, -+ {0x90097, 0x0}, -+ {0x90098, 0x0}, -+ {0x90099, 0x0}, -+ {0x9009a, 0x0}, -+ {0x9009b, 0x0}, -+ {0x9009c, 0x0}, -+ {0x9009d, 0x0}, -+ {0x9009e, 0x0}, -+ {0x9009f, 0x0}, -+ {0x900a0, 0x0}, -+ {0x900a1, 0x0}, -+ {0x900a2, 0x0}, -+ {0x900a3, 0x0}, -+ {0x900a4, 0x0}, -+ {0x900a5, 0x0}, -+ {0x900a6, 0x0}, -+ {0x900a7, 0x0}, -+ {0x900a8, 0x0}, -+ {0x900a9, 0x0}, -+ {0x900aa, 0x0}, -+ {0x900ab, 0x0}, -+ {0x900ac, 0x0}, -+ {0x900ad, 0x0}, -+ {0x900ae, 0x0}, -+ {0x900af, 0x0}, -+ {0x900b0, 0x0}, -+ {0x900b1, 0x0}, -+ {0x900b2, 0x0}, -+ {0x900b3, 0x0}, -+ {0x900b4, 0x0}, -+ {0x900b5, 0x0}, -+ {0x900b6, 0x0}, -+ {0x900b7, 0x0}, -+ {0x900b8, 0x0}, -+ {0x900b9, 0x0}, -+ {0x900ba, 0x0}, -+ {0x900bb, 0x0}, -+ {0x900bc, 0x0}, -+ {0x900bd, 0x0}, -+ {0x900be, 0x0}, -+ {0x900bf, 0x0}, -+ {0x900c0, 0x0}, -+ {0x900c1, 0x0}, -+ {0x900c2, 0x0}, -+ {0x900c3, 0x0}, -+ {0x900c4, 0x0}, -+ {0x900c5, 0x0}, -+ {0x900c6, 0x0}, -+ {0x900c7, 0x0}, -+ {0x900c8, 0x0}, -+ {0x900c9, 0x0}, -+ {0x900ca, 0x0}, -+ {0x900cb, 0x0}, -+ {0x900cc, 0x0}, -+ {0x900cd, 0x0}, -+ {0x900ce, 0x0}, -+ {0x900cf, 0x0}, -+ {0x900d0, 0x0}, -+ {0x900d1, 0x0}, -+ {0x900d2, 0x0}, -+ {0x900d3, 0x0}, -+ {0x900d4, 0x0}, -+ {0x900d5, 0x0}, -+ {0x900d6, 0x0}, -+ {0x900d7, 0x0}, -+ {0x900d8, 0x0}, -+ {0x900d9, 0x0}, -+ {0x900da, 0x0}, -+ {0x900db, 0x0}, -+ {0x900dc, 0x0}, -+ {0x900dd, 0x0}, -+ {0x900de, 0x0}, -+ {0x900df, 0x0}, -+ {0x900e0, 0x0}, -+ {0x900e1, 0x0}, -+ {0x900e2, 0x0}, -+ {0x900e3, 0x0}, -+ {0x900e4, 0x0}, -+ {0x900e5, 0x0}, -+ {0x900e6, 0x0}, -+ {0x900e7, 0x0}, -+ {0x900e8, 0x0}, -+ {0x900e9, 0x0}, -+ {0x900ea, 0x0}, -+ {0x900eb, 0x0}, -+ {0x900ec, 0x0}, -+ {0x900ed, 0x0}, -+ {0x900ee, 0x0}, -+ {0x900ef, 0x0}, -+ {0x900f0, 0x0}, -+ {0x900f1, 0x0}, -+ {0x900f2, 0x0}, -+ {0x900f3, 0x0}, -+ {0x900f4, 0x0}, -+ {0x900f5, 0x0}, -+ {0x900f6, 0x0}, -+ {0x900f7, 0x0}, -+ {0x900f8, 0x0}, -+ {0x900f9, 0x0}, -+ {0x900fa, 0x0}, -+ {0x900fb, 0x0}, -+ {0x900fc, 0x0}, -+ {0x900fd, 0x0}, -+ {0x900fe, 0x0}, -+ {0x900ff, 0x0}, -+ {0x90100, 0x0}, -+ {0x90101, 0x0}, -+ {0x90102, 0x0}, -+ {0x90103, 0x0}, -+ {0x90104, 0x0}, -+ {0x90105, 0x0}, -+ {0x90106, 0x0}, -+ {0x90107, 0x0}, -+ {0x90108, 0x0}, -+ {0x90109, 0x0}, -+ {0x9010a, 0x0}, -+ {0x9010b, 0x0}, -+ {0x9010c, 0x0}, -+ {0x9010d, 0x0}, -+ {0x9010e, 0x0}, -+ {0x9010f, 0x0}, -+ {0x90110, 0x0}, -+ {0x90111, 0x0}, -+ {0x90112, 0x0}, -+ {0x90113, 0x0}, -+ {0x90114, 0x0}, -+ {0x90115, 0x0}, -+ {0x90116, 0x0}, -+ {0x90117, 0x0}, -+ {0x90118, 0x0}, -+ {0x90119, 0x0}, -+ {0x9011a, 0x0}, -+ {0x9011b, 0x0}, -+ {0x9011c, 0x0}, -+ {0x9011d, 0x0}, -+ {0x9011e, 0x0}, -+ {0x9011f, 0x0}, -+ {0x90120, 0x0}, -+ {0x90121, 0x0}, -+ {0x90122, 0x0}, -+ {0x90123, 0x0}, -+ {0x90124, 0x0}, -+ {0x90125, 0x0}, -+ {0x90126, 0x0}, -+ {0x90127, 0x0}, -+ {0x90128, 0x0}, -+ {0x90129, 0x0}, -+ {0x9012a, 0x0}, -+ {0x9012b, 0x0}, -+ {0x9012c, 0x0}, -+ {0x9012d, 0x0}, -+ {0x9012e, 0x0}, -+ {0x9012f, 0x0}, -+ {0x90130, 0x0}, -+ {0x90131, 0x0}, -+ {0x90132, 0x0}, -+ {0x90133, 0x0}, -+ {0x90134, 0x0}, -+ {0x90135, 0x0}, -+ {0x90136, 0x0}, -+ {0x90137, 0x0}, -+ {0x90138, 0x0}, -+ {0x90139, 0x0}, -+ {0x9013a, 0x0}, -+ {0x9013b, 0x0}, -+ {0x9013c, 0x0}, -+ {0x9013d, 0x0}, -+ {0x9013e, 0x0}, -+ {0x9013f, 0x0}, -+ {0x90140, 0x0}, -+ {0x90141, 0x0}, -+ {0x90142, 0x0}, -+ {0x90143, 0x0}, -+ {0x90144, 0x0}, -+ {0x90145, 0x0}, -+ {0x90146, 0x0}, -+ {0x90147, 0x0}, -+ {0x90148, 0x0}, -+ {0x90149, 0x0}, -+ {0x9014a, 0x0}, -+ {0x9014b, 0x0}, -+ {0x9014c, 0x0}, -+ {0x9014d, 0x0}, -+ {0x9014e, 0x0}, -+ {0x9014f, 0x0}, -+ {0x90150, 0x0}, -+ {0x90151, 0x0}, -+ {0x90152, 0x0}, -+ {0x90153, 0x0}, -+ {0x90154, 0x0}, -+ {0x90155, 0x0}, -+ {0x90156, 0x0}, -+ {0x90157, 0x0}, -+ {0x90158, 0x0}, -+ {0x90159, 0x0}, -+ {0x9015a, 0x0}, -+ {0x9015b, 0x0}, -+ {0x9015c, 0x0}, -+ {0x9015d, 0x0}, -+ {0x9015e, 0x0}, -+ {0x9015f, 0x0}, -+ {0x90160, 0x0}, -+ {0x90161, 0x0}, -+ {0x90162, 0x0}, -+ {0x90163, 0x0}, -+ {0x90164, 0x0}, -+ {0x90165, 0x0}, -+ {0x90166, 0x0}, -+ {0x90167, 0x0}, -+ {0x90168, 0x0}, -+ {0x90169, 0x0}, -+ {0x9016a, 0x0}, -+ {0x9016b, 0x0}, -+ {0x9016c, 0x0}, -+ {0x9016d, 0x0}, -+ {0x9016e, 0x0}, -+ {0x9016f, 0x0}, -+ {0x90170, 0x0}, -+ {0x90171, 0x0}, -+ {0x90172, 0x0}, -+ {0x90173, 0x0}, -+ {0x90174, 0x0}, -+ {0x90175, 0x0}, -+ {0x90176, 0x0}, -+ {0x90177, 0x0}, -+ {0x90178, 0x0}, -+ {0x90179, 0x0}, -+ {0x9017a, 0x0}, -+ {0x9017b, 0x0}, -+ {0x9017c, 0x0}, -+ {0x9017d, 0x0}, -+ {0x9017e, 0x0}, -+ {0x9017f, 0x0}, -+ {0x90180, 0x0}, -+ {0x90181, 0x0}, -+ {0x90182, 0x0}, -+ {0x90183, 0x0}, -+ {0x90184, 0x0}, -+ {0x90185, 0x0}, -+ {0x90186, 0x0}, -+ {0x90187, 0x0}, -+ {0x90188, 0x0}, -+ {0x90189, 0x0}, -+ {0x9018a, 0x0}, -+ {0x9018b, 0x0}, -+ {0x9018c, 0x0}, -+ {0x9018d, 0x0}, -+ {0x9018e, 0x0}, -+ {0x9018f, 0x0}, -+ {0x90190, 0x0}, -+ {0x90191, 0x0}, -+ {0x90192, 0x0}, -+ {0x90193, 0x0}, -+ {0x90194, 0x0}, -+ {0x90195, 0x0}, -+ {0x90196, 0x0}, -+ {0x90197, 0x0}, -+ {0x90198, 0x0}, -+ {0x90199, 0x0}, -+ {0x9019a, 0x0}, -+ {0x9019b, 0x0}, -+ {0x9019c, 0x0}, -+ {0x9019d, 0x0}, -+ {0x9019e, 0x0}, -+ {0x9019f, 0x0}, -+ {0x901a0, 0x0}, -+ {0x901a1, 0x0}, -+ {0x901a2, 0x0}, -+ {0x901a3, 0x0}, -+ {0x901a4, 0x0}, -+ {0x901a5, 0x0}, -+ {0x901a6, 0x0}, -+ {0x901a7, 0x0}, -+ {0x901a8, 0x0}, -+ {0x901a9, 0x0}, -+ {0x901aa, 0x0}, -+ {0x901ab, 0x0}, -+ {0x901ac, 0x0}, -+ {0x901ad, 0x0}, -+ {0x901ae, 0x0}, -+ {0x901af, 0x0}, -+ {0x901b0, 0x0}, -+ {0x901b1, 0x0}, -+ {0x901b2, 0x0}, -+ {0x901b3, 0x0}, -+ {0x901b4, 0x0}, -+ {0x901b5, 0x0}, -+ {0x901b6, 0x0}, -+ {0x901b7, 0x0}, -+ {0x901b8, 0x0}, -+ {0x901b9, 0x0}, -+ {0x901ba, 0x0}, -+ {0x901bb, 0x0}, -+ {0x901bc, 0x0}, -+ {0x901bd, 0x0}, -+ {0x901be, 0x0}, -+ {0x901bf, 0x0}, -+ {0x901c0, 0x0}, -+ {0x901c1, 0x0}, -+ {0x901c2, 0x0}, -+ {0x901c3, 0x0}, -+ {0x901c4, 0x0}, -+ {0x901c5, 0x0}, -+ {0x901c6, 0x0}, -+ {0x901c7, 0x0}, -+ {0x901c8, 0x0}, -+ {0x901c9, 0x0}, -+ {0x901ca, 0x0}, -+ {0x901cb, 0x0}, -+ {0x901cc, 0x0}, -+ {0x901cd, 0x0}, -+ {0x901ce, 0x0}, -+ {0x901cf, 0x0}, -+ {0x901d0, 0x0}, -+ {0x901d1, 0x0}, -+ {0x901d2, 0x0}, -+ {0x901d3, 0x0}, -+ {0x901d4, 0x0}, -+ {0x901d5, 0x0}, -+ {0x901d6, 0x0}, -+ {0x901d7, 0x0}, -+ {0x901d8, 0x0}, -+ {0x901d9, 0x0}, -+ {0x901da, 0x0}, -+ {0x901db, 0x0}, -+ {0x901dc, 0x0}, -+ {0x901dd, 0x0}, -+ {0x901de, 0x0}, -+ {0x901df, 0x0}, -+ {0x901e0, 0x0}, -+ {0x901e1, 0x0}, -+ {0x901e2, 0x0}, -+ {0x901e3, 0x0}, -+ {0x901e4, 0x0}, -+ {0x901e5, 0x0}, -+ {0x901e6, 0x0}, -+ {0x901e7, 0x0}, -+ {0x901e8, 0x0}, -+ {0x901e9, 0x0}, -+ {0x901ea, 0x0}, -+ {0x901eb, 0x0}, -+ {0x901ec, 0x0}, -+ {0x901ed, 0x0}, -+ {0x901ee, 0x0}, -+ {0x901ef, 0x0}, -+ {0x901f0, 0x0}, -+ {0x901f1, 0x0}, -+ {0x901f2, 0x0}, -+ {0x901f3, 0x0}, -+ {0x901f4, 0x0}, -+ {0x901f5, 0x0}, -+ {0x901f6, 0x0}, -+ {0x901f7, 0x0}, -+ {0x901f8, 0x0}, -+ {0x901f9, 0x0}, -+ {0x901fa, 0x0}, -+ {0x901fb, 0x0}, -+ {0x901fc, 0x0}, -+ {0x901fd, 0x0}, -+ {0x901fe, 0x0}, -+ {0x901ff, 0x0}, -+ {0x90200, 0x0}, -+ {0x90201, 0x0}, -+ {0x90202, 0x0}, -+ {0x90203, 0x0}, -+ {0x90204, 0x0}, -+ {0x90205, 0x0}, -+ {0x90206, 0x0}, -+ {0x90207, 0x0}, -+ {0x90208, 0x0}, -+ {0x90209, 0x0}, -+ {0x9020a, 0x0}, -+ {0x9020b, 0x0}, -+ {0x9020c, 0x0}, -+ {0x9020d, 0x0}, -+ {0x9020e, 0x0}, -+ {0x9020f, 0x0}, -+ {0x90210, 0x0}, -+ {0x90211, 0x0}, -+ {0x90212, 0x0}, -+ {0x90213, 0x0}, -+ {0x90214, 0x0}, -+ {0x90215, 0x0}, -+ {0x90216, 0x0}, -+ {0x90217, 0x0}, -+ {0x90218, 0x0}, -+ {0x90219, 0x0}, -+ {0x9021a, 0x0}, -+ {0x9021b, 0x0}, -+ {0x9021c, 0x0}, -+ {0x9021d, 0x0}, -+ {0x9021e, 0x0}, -+ {0x9021f, 0x0}, -+ {0x90220, 0x0}, -+ {0x90221, 0x0}, -+ {0x90222, 0x0}, -+ {0x90223, 0x0}, -+ {0x90224, 0x0}, -+ {0x90225, 0x0}, -+ {0x90226, 0x0}, -+ {0x90227, 0x0}, -+ {0x90228, 0x0}, -+ {0x90229, 0x0}, -+ {0x9022a, 0x0}, -+ {0x9022b, 0x0}, -+ {0x9022c, 0x0}, -+ {0x9022d, 0x0}, -+ {0x9022e, 0x0}, -+ {0x9022f, 0x0}, -+ {0x90230, 0x0}, -+ {0x90231, 0x0}, -+ {0x90232, 0x0}, -+ {0x90233, 0x0}, -+ {0x90234, 0x0}, -+ {0x90235, 0x0}, -+ {0x90236, 0x0}, -+ {0x90237, 0x0}, -+ {0x90238, 0x0}, -+ {0x90239, 0x0}, -+ {0x9023a, 0x0}, -+ {0x9023b, 0x0}, -+ {0x9023c, 0x0}, -+ {0x9023d, 0x0}, -+ {0x9023e, 0x0}, -+ {0x9023f, 0x0}, -+ {0x90240, 0x0}, -+ {0x90241, 0x0}, -+ {0x90242, 0x0}, -+ {0x90243, 0x0}, -+ {0x90244, 0x0}, -+ {0x90245, 0x0}, -+ {0x90246, 0x0}, -+ {0x90247, 0x0}, -+ {0x90248, 0x0}, -+ {0x90249, 0x0}, -+ {0x9024a, 0x0}, -+ {0x9024b, 0x0}, -+ {0x9024c, 0x0}, -+ {0x9024d, 0x0}, -+ {0x9024e, 0x0}, -+ {0x9024f, 0x0}, -+ {0x90250, 0x0}, -+ {0x90251, 0x0}, -+ {0x90252, 0x0}, -+ {0x90253, 0x0}, -+ {0x90254, 0x0}, -+ {0x90255, 0x0}, -+ {0x90256, 0x0}, -+ {0x90257, 0x0}, -+ {0x90258, 0x0}, -+ {0x90259, 0x0}, -+ {0x9025a, 0x0}, -+ {0x9025b, 0x0}, -+ {0x9025c, 0x0}, -+ {0x9025d, 0x0}, -+ {0x9025e, 0x0}, -+ {0x9025f, 0x0}, -+ {0x90260, 0x0}, -+ {0x90261, 0x0}, -+ {0x90262, 0x0}, -+ {0x90263, 0x0}, -+ {0x90264, 0x0}, -+ {0x90265, 0x0}, -+ {0x90266, 0x0}, -+ {0x90267, 0x0}, -+ {0x90268, 0x0}, -+ {0x90269, 0x0}, -+ {0x9026a, 0x0}, -+ {0x9026b, 0x0}, -+ {0x9026c, 0x0}, -+ {0x9026d, 0x0}, -+ {0x9026e, 0x0}, -+ {0x9026f, 0x0}, -+ {0x90270, 0x0}, -+ {0x90271, 0x0}, -+ {0x90272, 0x0}, -+ {0x90273, 0x0}, -+ {0x90274, 0x0}, -+ {0x90275, 0x0}, -+ {0x90276, 0x0}, -+ {0x90277, 0x0}, -+ {0x90278, 0x0}, -+ {0x90279, 0x0}, -+ {0x9027a, 0x0}, -+ {0x9027b, 0x0}, -+ {0x9027c, 0x0}, -+ {0x9027d, 0x0}, -+ {0x9027e, 0x0}, -+ {0x9027f, 0x0}, -+ {0x90280, 0x0}, -+ {0x90281, 0x0}, -+ {0x90282, 0x0}, -+ {0x90283, 0x0}, -+ {0x90284, 0x0}, -+ {0x90285, 0x0}, -+ {0x90286, 0x0}, -+ {0x90287, 0x0}, -+ {0x90288, 0x0}, -+ {0x90289, 0x0}, -+ {0x9028a, 0x0}, -+ {0x9028b, 0x0}, -+ {0x9028c, 0x0}, -+ {0x9028d, 0x0}, -+ {0x9028e, 0x0}, -+ {0x9028f, 0x0}, -+ {0x90290, 0x0}, -+ {0x90291, 0x0}, -+ {0x90292, 0x0}, -+ {0x90293, 0x0}, -+ {0x90294, 0x0}, -+ {0x90295, 0x0}, -+ {0x90296, 0x0}, -+ {0x90297, 0x0}, -+ {0x90298, 0x0}, -+ {0x90299, 0x0}, -+ {0x9029a, 0x0}, -+ {0x9029b, 0x0}, -+ {0x9029c, 0x0}, -+ {0x9029d, 0x0}, -+ {0x9029e, 0x0}, -+ {0x9029f, 0x0}, -+ {0x902a0, 0x0}, -+ {0x902a1, 0x0}, -+ {0x902a2, 0x0}, -+ {0x902a3, 0x0}, -+ {0x902a4, 0x0}, -+ {0x902a5, 0x0}, -+ {0x902a6, 0x0}, -+ {0x902a7, 0x0}, -+ {0x902a8, 0x0}, -+ {0x902a9, 0x0}, -+ {0x902aa, 0x0}, -+ {0x902ab, 0x0}, -+ {0x902ac, 0x0}, -+ {0x902ad, 0x0}, -+ {0x902ae, 0x0}, -+ {0x902af, 0x0}, -+ {0x902b0, 0x0}, -+ {0x902b1, 0x0}, -+ {0x902b2, 0x0}, -+ {0x902b3, 0x0}, -+ {0x902b4, 0x0}, -+ {0x902b5, 0x0}, -+ {0x902b6, 0x0}, -+ {0x902b7, 0x0}, -+ {0x902b8, 0x0}, -+ {0x902b9, 0x0}, -+ {0x902ba, 0x0}, -+ {0x902bb, 0x0}, -+ {0x902bc, 0x0}, -+ {0x902bd, 0x0}, -+ {0x902be, 0x0}, -+ {0x902bf, 0x0}, -+ {0x902c0, 0x0}, -+ {0x902c1, 0x0}, -+ {0x902c2, 0x0}, -+ {0x902c3, 0x0}, -+ {0x902c4, 0x0}, -+ {0x902c5, 0x0}, -+ {0x902c6, 0x0}, -+ {0x902c7, 0x0}, -+ {0x902c8, 0x0}, -+ {0x902c9, 0x0}, -+ {0x902ca, 0x0}, -+ {0x902cb, 0x0}, -+ {0x902cc, 0x0}, -+ {0x902cd, 0x0}, -+ {0x902ce, 0x0}, -+ {0x902cf, 0x0}, -+ {0x902d0, 0x0}, -+ {0x902d1, 0x0}, -+ {0x902d2, 0x0}, -+ {0x902d3, 0x0}, -+ {0x902d4, 0x0}, -+ {0x902d5, 0x0}, -+ {0x902d6, 0x0}, -+ {0x902d7, 0x0}, -+ {0x902d8, 0x0}, -+ {0x902d9, 0x0}, -+ {0x902da, 0x0}, -+ {0x902db, 0x0}, -+ {0x902dc, 0x0}, -+ {0x902dd, 0x0}, -+ {0x902de, 0x0}, -+ {0x902df, 0x0}, -+ {0x902e0, 0x0}, -+ {0x902e1, 0x0}, -+ {0x902e2, 0x0}, -+ {0x902e3, 0x0}, -+ {0x902e4, 0x0}, -+ {0x902e5, 0x0}, -+ {0x902e6, 0x0}, -+ {0x902e7, 0x0}, -+ {0x902e8, 0x0}, -+ {0x902e9, 0x0}, -+ {0x902ea, 0x0}, -+ {0x902eb, 0x0}, -+ {0x902ec, 0x0}, -+ {0x902ed, 0x0}, -+ {0x902ee, 0x0}, -+ {0x902ef, 0x0}, -+ {0x902f0, 0x0}, -+ {0x902f1, 0x0}, -+ {0x902f2, 0x0}, -+ {0x902f3, 0x0}, -+ {0x902f4, 0x0}, -+ {0x902f5, 0x0}, -+ {0x902f6, 0x0}, -+ {0x902f7, 0x0}, -+ {0x902f8, 0x0}, -+ {0x902f9, 0x0}, -+ {0x902fa, 0x0}, -+ {0x902fb, 0x0}, -+ {0x902fc, 0x0}, -+ {0x902fd, 0x0}, -+ {0x902fe, 0x0}, -+ {0x902ff, 0x0}, -+ {0x90300, 0x0}, -+ {0x90301, 0x0}, -+ {0x90302, 0x0}, -+ {0x90303, 0x0}, -+ {0x90304, 0x0}, -+ {0x90305, 0x0}, -+ {0x90306, 0x0}, -+ {0x90307, 0x0}, -+ {0x90308, 0x0}, -+ {0x90309, 0x0}, -+ {0x9030a, 0x0}, -+ {0x9030b, 0x0}, -+ {0x9030c, 0x0}, -+ {0x9030d, 0x0}, -+ {0x9030e, 0x0}, -+ {0x9030f, 0x0}, -+ {0x90310, 0x0}, -+ {0x90311, 0x0}, -+ {0x90312, 0x0}, -+ {0x90313, 0x0}, -+ {0x90314, 0x0}, -+ {0x90315, 0x0}, -+ {0x90316, 0x0}, -+ {0x90317, 0x0}, -+ {0x90318, 0x0}, -+ {0x90319, 0x0}, -+ {0x9031a, 0x0}, -+ {0x9031b, 0x0}, -+ {0x9031c, 0x0}, -+ {0x9031d, 0x0}, -+ {0x9031e, 0x0}, -+ {0x9031f, 0x0}, -+ {0x90320, 0x0}, -+ {0x90321, 0x0}, -+ {0x90322, 0x0}, -+ {0x90323, 0x0}, -+ {0x90324, 0x0}, -+ {0x90325, 0x0}, -+ {0x90326, 0x0}, -+ {0x90327, 0x0}, -+ {0x90328, 0x0}, -+ {0x90329, 0x0}, -+ {0x9032a, 0x0}, -+ {0x9032b, 0x0}, -+ {0x9032c, 0x0}, -+ {0x9032d, 0x0}, -+ {0x9032e, 0x0}, -+ {0x9032f, 0x0}, -+ {0x90330, 0x0}, -+ {0x90331, 0x0}, -+ {0x90332, 0x0}, -+ {0x90333, 0x0}, -+ {0x90334, 0x0}, -+ {0x90335, 0x0}, -+ {0x90336, 0x0}, -+ {0x90337, 0x0}, -+ {0x90338, 0x0}, -+ {0x90339, 0x0}, -+ {0x9033a, 0x0}, -+ {0x9033b, 0x0}, -+ {0x9033c, 0x0}, -+ {0x9033d, 0x0}, -+ {0x9033e, 0x0}, -+ {0x9033f, 0x0}, -+ {0x90340, 0x0}, -+ {0x90341, 0x0}, -+ {0x90342, 0x0}, -+ {0x90343, 0x0}, -+ {0x90344, 0x0}, -+ {0x90345, 0x0}, -+ {0x90346, 0x0}, -+ {0x90347, 0x0}, -+ {0x90348, 0x0}, -+ {0x90349, 0x0}, -+ {0x9034a, 0x0}, -+ {0x9034b, 0x0}, -+ {0x9034c, 0x0}, -+ {0x9034d, 0x0}, -+ {0x9034e, 0x0}, -+ {0x9034f, 0x0}, -+ {0x90350, 0x0}, -+ {0x90351, 0x0}, -+ {0x90352, 0x0}, -+ {0x90353, 0x0}, -+ {0x90354, 0x0}, -+ {0x90355, 0x0}, -+ {0x90356, 0x0}, -+ {0x90357, 0x0}, -+ {0x90358, 0x0}, -+ {0x90359, 0x0}, -+ {0x9035a, 0x0}, -+ {0x9035b, 0x0}, -+ {0x9035c, 0x0}, -+ {0x9035d, 0x0}, -+ {0x9035e, 0x0}, -+ {0x9035f, 0x0}, -+ {0x90360, 0x0}, -+ {0x90361, 0x0}, -+ {0x90362, 0x0}, -+ {0x90363, 0x0}, -+ {0x90364, 0x0}, -+ {0x90365, 0x0}, -+ {0x90366, 0x0}, -+ {0x90367, 0x0}, -+ {0x90368, 0x0}, -+ {0x90369, 0x0}, -+ {0x9036a, 0x0}, -+ {0x9036b, 0x0}, -+ {0x9036c, 0x0}, -+ {0x9036d, 0x0}, -+ {0x9036e, 0x0}, -+ {0x9036f, 0x0}, -+ {0x90370, 0x0}, -+ {0x90371, 0x0}, -+ {0x90372, 0x0}, -+ {0x90373, 0x0}, -+ {0x90374, 0x0}, -+ {0x90375, 0x0}, -+ {0x90376, 0x0}, -+ {0x90377, 0x0}, -+ {0x90378, 0x0}, -+ {0x90379, 0x0}, -+ {0x9037a, 0x0}, -+ {0x9037b, 0x0}, -+ {0x9037c, 0x0}, -+ {0x9037d, 0x0}, -+ {0x9037e, 0x0}, -+ {0x9037f, 0x0}, -+ {0x90380, 0x0}, -+ {0x90381, 0x0}, -+ {0x90382, 0x0}, -+ {0x90383, 0x0}, -+ {0x90384, 0x0}, -+ {0x90385, 0x0}, -+ {0x90386, 0x0}, -+ {0x90387, 0x0}, -+ {0x90388, 0x0}, -+ {0x90389, 0x0}, -+ {0x9038a, 0x0}, -+ {0x9038b, 0x0}, -+ {0x9038c, 0x0}, -+ {0x9038d, 0x0}, -+ {0x9038e, 0x0}, -+ {0x9038f, 0x0}, -+ {0x90390, 0x0}, -+ {0x90391, 0x0}, -+ {0x90392, 0x0}, -+ {0x90393, 0x0}, -+ {0x90394, 0x0}, -+ {0x90395, 0x0}, -+ {0x90396, 0x0}, -+ {0x90397, 0x0}, -+ {0x90398, 0x0}, -+ {0x90399, 0x0}, -+ {0x9039a, 0x0}, -+ {0x9039b, 0x0}, -+ {0x9039c, 0x0}, -+ {0x9039d, 0x0}, -+ {0x9039e, 0x0}, -+ {0x9039f, 0x0}, -+ {0x903a0, 0x0}, -+ {0x903a1, 0x0}, -+ {0x903a2, 0x0}, -+ {0x903a3, 0x0}, -+ {0x903a4, 0x0}, -+ {0x903a5, 0x0}, -+ {0x903a6, 0x0}, -+ {0x903a7, 0x0}, -+ {0x903a8, 0x0}, -+ {0x903a9, 0x0}, -+ {0x903aa, 0x0}, -+ {0x903ab, 0x0}, -+ {0x903ac, 0x0}, -+ {0x903ad, 0x0}, -+ {0x903ae, 0x0}, -+ {0x903af, 0x0}, -+ {0x903b0, 0x0}, -+ {0x903b1, 0x0}, -+ {0x903b2, 0x0}, -+ {0x903b3, 0x0}, -+ {0x903b4, 0x0}, -+ {0x903b5, 0x0}, -+ {0x903b6, 0x0}, -+ {0x903b7, 0x0}, -+ {0x903b8, 0x0}, -+ {0x903b9, 0x0}, -+ {0x903ba, 0x0}, -+ {0x903bb, 0x0}, -+ {0x903bc, 0x0}, -+ {0x903bd, 0x0}, -+ {0x903be, 0x0}, -+ {0x903bf, 0x0}, -+ {0x903c0, 0x0}, -+ {0x903c1, 0x0}, -+ {0x903c2, 0x0}, -+ {0x903c3, 0x0}, -+ {0x903c4, 0x0}, -+ {0x903c5, 0x0}, -+ {0x903c6, 0x0}, -+ {0x903c7, 0x0}, -+ {0x903c8, 0x0}, -+ {0x903c9, 0x0}, -+ {0x903ca, 0x0}, -+ {0x903cb, 0x0}, -+ {0x903cc, 0x0}, -+ {0x903cd, 0x0}, -+ {0x903ce, 0x0}, -+ {0x903cf, 0x0}, -+ {0x903d0, 0x0}, -+ {0x903d1, 0x0}, -+ {0x903d2, 0x0}, -+ {0x903d3, 0x0}, -+ {0x903d4, 0x0}, -+ {0x903d5, 0x0}, -+ {0x903d6, 0x0}, -+ {0x903d7, 0x0}, -+ {0x903d8, 0x0}, -+ {0x903d9, 0x0}, -+ {0x903da, 0x0}, -+ {0x903db, 0x0}, -+ {0x903dc, 0x0}, -+ {0x903dd, 0x0}, -+ {0x903de, 0x0}, -+ {0x903df, 0x0}, -+ {0x903e0, 0x0}, -+ {0x903e1, 0x0}, -+ {0x903e2, 0x0}, -+ {0x903e3, 0x0}, -+ {0x903e4, 0x0}, -+ {0x903e5, 0x0}, -+ {0x903e6, 0x0}, -+ {0x903e7, 0x0}, -+ {0x903e8, 0x0}, -+ {0x903e9, 0x0}, -+ {0x903ea, 0x0}, -+ {0x903eb, 0x0}, -+ {0x903ec, 0x0}, -+ {0x903ed, 0x0}, -+ {0x903ee, 0x0}, -+ {0x903ef, 0x0}, -+ {0x903f0, 0x0}, -+ {0x903f1, 0x0}, -+ {0x903f2, 0x0}, -+ {0x903f3, 0x0}, -+ {0x903f4, 0x0}, -+ {0x903f5, 0x0}, -+ {0x903f6, 0x0}, -+ {0x903f7, 0x0}, -+ {0x903f8, 0x0}, -+ {0x903f9, 0x0}, -+ {0x903fa, 0x0}, -+ {0x903fb, 0x0}, -+ {0x903fc, 0x0}, -+ {0x903fd, 0x0}, -+ {0x903fe, 0x0}, -+ {0x903ff, 0x0}, -+ {0x90400, 0x0}, -+ {0x90401, 0x0}, -+ {0x90402, 0x0}, -+ {0x90403, 0x0}, -+ {0x90404, 0x0}, -+ {0x90405, 0x0}, -+ {0x90406, 0x0}, -+ {0x90407, 0x0}, -+ {0x90408, 0x0}, -+ {0x90409, 0x0}, -+ {0x9040a, 0x0}, -+ {0x9040b, 0x0}, -+ {0x9040c, 0x0}, -+ {0x9040d, 0x0}, -+ {0x9040e, 0x0}, -+ {0x9040f, 0x0}, -+ {0x90410, 0x0}, -+ {0x90411, 0x0}, -+ {0x90412, 0x0}, -+ {0x90413, 0x0}, -+ {0x90414, 0x0}, -+ {0x90415, 0x0}, -+ {0x90416, 0x0}, -+ {0x90417, 0x0}, -+ {0x90418, 0x0}, -+ {0x90419, 0x0}, -+ {0x9041a, 0x0}, -+ {0x9041b, 0x0}, -+ {0x9041c, 0x0}, -+ {0x9041d, 0x0}, -+ {0x9041e, 0x0}, -+ {0x9041f, 0x0}, -+ {0x90420, 0x0}, -+ {0x90421, 0x0}, -+ {0x90422, 0x0}, -+ {0x90423, 0x0}, -+ {0x90424, 0x0}, -+ {0x90425, 0x0}, -+ {0x90426, 0x0}, -+ {0x90427, 0x0}, -+ {0x90428, 0x0}, -+ {0x90429, 0x0}, -+ {0x9042a, 0x0}, -+ {0x9042b, 0x0}, -+ {0x9042c, 0x0}, -+ {0x9042d, 0x0}, -+ {0x9042e, 0x0}, -+ {0x9042f, 0x0}, -+ {0x90430, 0x0}, -+ {0x90431, 0x0}, -+ {0x90432, 0x0}, -+ {0x90433, 0x0}, -+ {0x90434, 0x0}, -+ {0x90435, 0x0}, -+ {0x90436, 0x0}, -+ {0x90437, 0x0}, -+ {0x90438, 0x0}, -+ {0x90439, 0x0}, -+ {0x9043a, 0x0}, -+ {0x9043b, 0x0}, -+ {0x9043c, 0x0}, -+ {0x9043d, 0x0}, -+ {0x9043e, 0x0}, -+ {0x9043f, 0x0}, -+ {0x90440, 0x0}, -+ {0x90441, 0x0}, -+ {0x90442, 0x0}, -+ {0x90443, 0x0}, -+ {0x90444, 0x0}, -+ {0x90445, 0x0}, -+ {0x90446, 0x0}, -+ {0x90447, 0x0}, -+ {0x90448, 0x0}, -+ {0x90449, 0x0}, -+ {0x9044a, 0x0}, -+ {0x9044b, 0x0}, -+ {0x9044c, 0x0}, -+ {0x9044d, 0x0}, -+ {0x9044e, 0x0}, -+ {0x9044f, 0x0}, -+ {0x90450, 0x0}, -+ {0x90451, 0x0}, -+ {0x90452, 0x0}, -+ {0x90453, 0x0}, -+ {0x90454, 0x0}, -+ {0x90455, 0x0}, -+ {0x90456, 0x0}, -+ {0x90457, 0x0}, -+ {0x90458, 0x0}, -+ {0x90459, 0x0}, -+ {0x9045a, 0x0}, -+ {0x9045b, 0x0}, -+ {0x9045c, 0x0}, -+ {0x9045d, 0x0}, -+ {0x9045e, 0x0}, -+ {0x9045f, 0x0}, -+ {0x90460, 0x0}, -+ {0x90461, 0x0}, -+ {0x90462, 0x0}, -+ {0x90463, 0x0}, -+ {0x90464, 0x0}, -+ {0x90465, 0x0}, -+ {0x90466, 0x0}, -+ {0x90467, 0x0}, -+ {0x90468, 0x0}, -+ {0x90469, 0x0}, -+ {0x9046a, 0x0}, -+ {0x9046b, 0x0}, -+ {0x9046c, 0x0}, -+ {0x9046d, 0x0}, -+ {0x9046e, 0x0}, -+ {0x9046f, 0x0}, -+ {0x90470, 0x0}, -+ {0x90471, 0x0}, -+ {0x90472, 0x0}, -+ {0x90473, 0x0}, -+ {0x90474, 0x0}, -+ {0x90475, 0x0}, -+ {0x90476, 0x0}, -+ {0x90477, 0x0}, -+ {0x90478, 0x0}, -+ {0x90479, 0x0}, -+ {0x9047a, 0x0}, -+ {0x9047b, 0x0}, -+ {0x9047c, 0x0}, -+ {0x9047d, 0x0}, -+ {0x9047e, 0x0}, -+ {0x9047f, 0x0}, -+ {0x90480, 0x0}, -+ {0x90481, 0x0}, -+ {0x90482, 0x0}, -+ {0x90483, 0x0}, -+ {0x90484, 0x0}, -+ {0x90485, 0x0}, -+ {0x90486, 0x0}, -+ {0x90487, 0x0}, -+ {0x90488, 0x0}, -+ {0x90489, 0x0}, -+ {0x9048a, 0x0}, -+ {0x9048b, 0x0}, -+ {0x9048c, 0x0}, -+ {0x9048d, 0x0}, -+ {0x9048e, 0x0}, -+ {0x9048f, 0x0}, -+ {0x90490, 0x0}, -+ {0x90491, 0x0}, -+ {0x90492, 0x0}, -+ {0x90493, 0x0}, -+ {0x90494, 0x0}, -+ {0x90495, 0x0}, -+ {0x90496, 0x0}, -+ {0x90497, 0x0}, -+ {0x90498, 0x0}, -+ {0x90499, 0x0}, -+ {0x9049a, 0x0}, -+ {0x9049b, 0x0}, -+ {0x9049c, 0x0}, -+ {0x9049d, 0x0}, -+ {0x9049e, 0x0}, -+ {0x9049f, 0x0}, -+ {0x904a0, 0x0}, -+ {0x904a1, 0x0}, -+ {0x904a2, 0x0}, -+ {0x904a3, 0x0}, -+ {0x904a4, 0x0}, -+ {0x904a5, 0x0}, -+ {0x904a6, 0x0}, -+ {0x904a7, 0x0}, -+ {0x904a8, 0x0}, -+ {0x904a9, 0x0}, -+ {0x904aa, 0x0}, -+ {0x904ab, 0x0}, -+ {0x904ac, 0x0}, -+ {0x904ad, 0x0}, -+ {0x904ae, 0x0}, -+ {0x904af, 0x0}, -+ {0x904b0, 0x0}, -+ {0x904b1, 0x0}, -+ {0x904b2, 0x0}, -+ {0x904b3, 0x0}, -+ {0x904b4, 0x0}, -+ {0x904b5, 0x0}, -+ {0x904b6, 0x0}, -+ {0x904b7, 0x0}, -+ {0x904b8, 0x0}, -+ {0x904b9, 0x0}, -+ {0x904ba, 0x0}, -+ {0x904bb, 0x0}, -+ {0x904bc, 0x0}, -+ {0x904bd, 0x0}, -+ {0x904be, 0x0}, -+ {0x904bf, 0x0}, -+ {0x904c0, 0x0}, -+ {0x904c1, 0x0}, -+ {0x904c2, 0x0}, -+ {0x904c3, 0x0}, -+ {0x904c4, 0x0}, -+ {0x904c5, 0x0}, -+ {0x904c6, 0x0}, -+ {0x904c7, 0x0}, -+ {0x904c8, 0x0}, -+ {0x904c9, 0x0}, -+ {0x904ca, 0x0}, -+ {0x904cb, 0x0}, -+ {0x904cc, 0x0}, -+ {0x904cd, 0x0}, -+ {0x904ce, 0x0}, -+ {0x904cf, 0x0}, -+ {0x904d0, 0x0}, -+ {0x904d1, 0x0}, -+ {0x904d2, 0x0}, -+ {0x904d3, 0x0}, -+ {0x904d4, 0x0}, -+ {0x904d5, 0x0}, -+ {0x904d6, 0x0}, -+ {0x904d7, 0x0}, -+ {0x904d8, 0x0}, -+ {0x904d9, 0x0}, -+ {0x904da, 0x0}, -+ {0x904db, 0x0}, -+ {0x904dc, 0x0}, -+ {0x904dd, 0x0}, -+ {0x904de, 0x0}, -+ {0x904df, 0x0}, -+ {0x904e0, 0x0}, -+ {0x904e1, 0x0}, -+ {0x904e2, 0x0}, -+ {0x904e3, 0x0}, -+ {0x904e4, 0x0}, -+ {0x904e5, 0x0}, -+ {0x904e6, 0x0}, -+ {0x904e7, 0x0}, -+ {0x904e8, 0x0}, -+ {0x904e9, 0x0}, -+ {0x904ea, 0x0}, -+ {0x904eb, 0x0}, -+ {0x904ec, 0x0}, -+ {0x904ed, 0x0}, -+ {0x904ee, 0x0}, -+ {0x904ef, 0x0}, -+ {0x904f0, 0x0}, -+ {0x904f1, 0x0}, -+ {0x904f2, 0x0}, -+ {0x904f3, 0x0}, -+ {0x904f4, 0x0}, -+ {0x904f5, 0x0}, -+ {0x904f6, 0x0}, -+ {0x904f7, 0x0}, -+ {0x904f8, 0x0}, -+ {0x904f9, 0x0}, -+ {0x904fa, 0x0}, -+ {0x904fb, 0x0}, -+ {0x904fc, 0x0}, -+ {0x904fd, 0x0}, -+ {0x904fe, 0x0}, -+ {0x904ff, 0x0}, -+ {0x90500, 0x0}, -+ {0x90501, 0x0}, -+ {0x90502, 0x0}, -+ {0x90503, 0x0}, -+ {0x90504, 0x0}, -+ {0x90505, 0x0}, -+ {0x90506, 0x0}, -+ {0x90507, 0x0}, -+ {0x90508, 0x0}, -+ {0x90509, 0x0}, -+ {0x9050a, 0x0}, -+ {0x9050b, 0x0}, -+ {0x9050c, 0x0}, -+ {0x9050d, 0x0}, -+ {0x9050e, 0x0}, -+ {0x9050f, 0x0}, -+ {0x90510, 0x0}, -+ {0x90511, 0x0}, -+ {0x90512, 0x0}, -+ {0x90513, 0x0}, -+ {0x90514, 0x0}, -+ {0x90515, 0x0}, -+ {0x90516, 0x0}, -+ {0x90517, 0x0}, -+ {0x90518, 0x0}, -+ {0x90519, 0x0}, -+ {0x9051a, 0x0}, -+ {0x9051b, 0x0}, -+ {0x9051c, 0x0}, -+ {0x9051d, 0x0}, -+ {0x9051e, 0x0}, -+ {0x9051f, 0x0}, -+ {0x90520, 0x0}, -+ {0x90521, 0x0}, -+ {0x90522, 0x0}, -+ {0x90523, 0x0}, -+ {0x90524, 0x0}, -+ {0x90525, 0x0}, -+ {0x90526, 0x0}, -+ {0x90527, 0x0}, -+ {0x90528, 0x0}, -+ {0x90529, 0x0}, -+ {0x9052a, 0x0}, -+ {0x9052b, 0x0}, -+ {0x9052c, 0x0}, -+ {0x9052d, 0x0}, -+ {0x9052e, 0x0}, -+ {0x9052f, 0x0}, -+ {0x90530, 0x0}, -+ {0x90531, 0x0}, -+ {0x90532, 0x0}, -+ {0x90533, 0x0}, -+ {0x90534, 0x0}, -+ {0x90535, 0x0}, -+ {0x90536, 0x0}, -+ {0x90537, 0x0}, -+ {0x90538, 0x0}, -+ {0x90539, 0x0}, -+ {0x9053a, 0x0}, -+ {0xd00e7, 0x0}, -+ {0x9001c, 0x0}, -+ {0x90020, 0x0}, -+ {0x90024, 0x0}, -+ {0x90025, 0x0}, -+ {0x90026, 0x0}, -+ {0x9002b, 0x0}, -+ {0x90708, 0x0}, -+ {0x90700, 0x0}, -+ {0x90701, 0x0}, -+ {0x90702, 0x0}, -+ {0x90703, 0x0}, -+ {0x90704, 0x0}, -+ {0x90705, 0x0}, -+ {0x90706, 0x0}, -+ {0x90707, 0x0}, -+ {0x2018a, 0x0}, -+ {0x20124, 0x0}, -+ {0x2018b, 0x0}, -+ {0x20125, 0x0}, -+ {0x2018c, 0x0}, -+ {0x20126, 0x0}, -+ {0x2018d, 0x0}, -+ {0x20127, 0x0}, -+ {0x2018e, 0x0}, -+ {0x20128, 0x0}, -+ {0x2018f, 0x0}, -+ {0x20129, 0x0}, -+ {0x20190, 0x0}, -+ {0x2012a, 0x0}, -+ {0x20191, 0x0}, -+ {0x2012b, 0x0}, -+ {0x20192, 0x0}, -+ {0x2012c, 0x0}, -+ {0x20193, 0x0}, -+ {0x2012d, 0x0}, -+ {0x20194, 0x0}, -+ {0x2012e, 0x0}, -+ {0x20195, 0x0}, -+ {0x2012f, 0x0}, -+ {0x20196, 0x0}, -+ {0x20130, 0x0}, -+ {0x20197, 0x0}, -+ {0x20131, 0x0}, -+ {0x20198, 0x0}, -+ {0x20132, 0x0}, -+ {0x20199, 0x0}, -+ {0x20133, 0x0}, -+ {0x2019a, 0x0}, -+ {0x20134, 0x0}, -+ {0x2019b, 0x0}, -+ {0x20135, 0x0}, -+ {0x2019c, 0x0}, -+ {0x20136, 0x0}, -+ {0x2019d, 0x0}, -+ {0x20137, 0x0}, -+ {0x2019e, 0x0}, -+ {0x20138, 0x0}, -+ {0x2019f, 0x0}, -+ {0x20139, 0x0}, -+ {0x201a0, 0x0}, -+ {0x2013a, 0x0}, -+ {0x201a1, 0x0}, -+ {0x2013b, 0x0}, -+ {0x201a2, 0x0}, -+ {0x2013c, 0x0}, -+ {0x201a3, 0x0}, -+ {0x2013d, 0x0}, -+ {0x201a4, 0x0}, -+ {0x2013e, 0x0}, -+ {0x201a5, 0x0}, -+ {0x2013f, 0x0}, -+ {0x201a6, 0x0}, -+ {0x20140, 0x0}, -+ {0x201a7, 0x0}, -+ {0x20141, 0x0}, -+ {0x201a8, 0x0}, -+ {0x20142, 0x0}, -+ {0x201a9, 0x0}, -+ {0x20143, 0x0}, -+ {0x201aa, 0x0}, -+ {0x20144, 0x0}, -+ {0x201ab, 0x0}, -+ {0x20145, 0x0}, -+ {0x201ac, 0x0}, -+ {0x20146, 0x0}, -+ {0x201ad, 0x0}, -+ {0x20147, 0x0}, -+ {0x201ae, 0x0}, -+ {0x20148, 0x0}, -+ {0x201af, 0x0}, -+ {0x20149, 0x0}, -+ {0x201b0, 0x0}, -+ {0x2014a, 0x0}, -+ {0x201b1, 0x0}, -+ {0x2014b, 0x0}, -+ {0x201b2, 0x0}, -+ {0x2014c, 0x0}, -+ {0x201b3, 0x0}, -+ {0x2014d, 0x0}, -+ {0x201b4, 0x0}, -+ {0x2014e, 0x0}, -+ {0x201b5, 0x0}, -+ {0x2014f, 0x0}, -+ {0x201b6, 0x0}, -+ {0x20150, 0x0}, -+ {0x201b7, 0x0}, -+ {0x20151, 0x0}, -+ {0x201b8, 0x0}, -+ {0x20152, 0x0}, -+ {0x201b9, 0x0}, -+ {0x20153, 0x0}, -+ {0x201ba, 0x0}, -+ {0x20154, 0x0}, -+ {0x201bb, 0x0}, -+ {0x20155, 0x0}, -+ {0x201bc, 0x0}, -+ {0x20156, 0x0}, -+ {0x201bd, 0x0}, -+ {0x20157, 0x0}, -+ {0x201be, 0x0}, -+ {0x20158, 0x0}, -+ {0x201bf, 0x0}, -+ {0x20159, 0x0}, -+ {0x201c0, 0x0}, -+ {0x2015a, 0x0}, -+ {0x201c1, 0x0}, -+ {0x2015b, 0x0}, -+ {0x201c2, 0x0}, -+ {0x2015c, 0x0}, -+ {0x201c3, 0x0}, -+ {0x2015d, 0x0}, -+ {0x201c4, 0x0}, -+ {0x2015e, 0x0}, -+ {0x201c5, 0x0}, -+ {0x2015f, 0x0}, -+ {0x201c6, 0x0}, -+ {0x20160, 0x0}, -+ {0x201c7, 0x0}, -+ {0x20161, 0x0}, -+ {0x201c8, 0x0}, -+ {0x20162, 0x0}, -+ {0x201c9, 0x0}, -+ {0x20163, 0x0}, -+ {0x201ca, 0x0}, -+ {0x20164, 0x0}, -+ {0x201cb, 0x0}, -+ {0x20165, 0x0}, -+ {0x201cc, 0x0}, -+ {0x20166, 0x0}, -+ {0x201cd, 0x0}, -+ {0x20167, 0x0}, -+ {0x201ce, 0x0}, -+ {0x20168, 0x0}, -+ {0x201cf, 0x0}, -+ {0x20169, 0x0}, -+ {0x201d0, 0x0}, -+ {0x2016a, 0x0}, -+ {0x201d1, 0x0}, -+ {0x2016b, 0x0}, -+ {0x201d2, 0x0}, -+ {0x2016c, 0x0}, -+ {0x201d3, 0x0}, -+ {0x2016d, 0x0}, -+ {0x201d4, 0x0}, -+ {0x2016e, 0x0}, -+ {0x201d5, 0x0}, -+ {0x2016f, 0x0}, -+ {0x201d6, 0x0}, -+ {0x20170, 0x0}, -+ {0x201d7, 0x0}, -+ {0x20171, 0x0}, -+ {0x201d8, 0x0}, -+ {0x20172, 0x0}, -+ {0x201d9, 0x0}, -+ {0x20173, 0x0}, -+ {0x201da, 0x0}, -+ {0xc0001, 0x0}, -+ {0xc0002, 0x0}, -+ {0xc0003, 0x0}, -+ {0xc0000, 0x0}, -+ {0xc0006, 0x0}, -+ {0xc0007, 0x0}, -+ {0x9070c, 0x0}, -+ {0x9070d, 0x0}, -+ {0x9070e, 0x0}, -+ {0x9070f, 0x0}, -+ {0x90710, 0x0}, -+ {0x90711, 0x0}, -+ {0x90713, 0x0}, -+ {0x90714, 0x0}, -+ {0x90715, 0x0}, -+ {0x90c10, 0x0}, -+ {0x90c12, 0x0}, -+ {0x90712, 0x0}, -+ {0x90c11, 0x0}, -+ {0x90716, 0x0}, -+ {0x90717, 0x0}, -+ {0x90718, 0x0}, -+ {0x90719, 0x0}, -+ {0x9071a, 0x0}, -+ {0x9071b, 0x0}, -+ {0x90904, 0x0}, -+ {0x90986, 0x0}, -+ {0x90920, 0x0}, -+ {0x90921, 0x0}, -+ {0x90922, 0x0}, -+ {0x90923, 0x0}, -+ {0x90924, 0x0}, -+ {0x90925, 0x0}, -+ {0x90926, 0x0}, -+ {0x90927, 0x0}, -+ {0x90930, 0x0}, -+ {0x90931, 0x0}, -+ {0x90932, 0x0}, -+ {0x90933, 0x0}, -+ {0x9090a, 0x0}, -+ {0x9090c, 0x0}, -+ {0x9090d, 0x0}, -+ {0x200f0, 0x0}, -+ {0x200f1, 0x0}, -+ {0x200f2, 0x0}, -+ {0x100b9, 0x0}, -+ {0x100b1, 0x0}, -+ {0x100ba, 0x0}, -+ {0x100a2, 0x0}, -+ {0x100b5, 0x0}, -+ {0x110b9, 0x0}, -+ {0x110b1, 0x0}, -+ {0x110ba, 0x0}, -+ {0x110a2, 0x0}, -+ {0x110b5, 0x0}, -+ {0x120b9, 0x0}, -+ {0x120b1, 0x0}, -+ {0x120ba, 0x0}, -+ {0x120a2, 0x0}, -+ {0x120b5, 0x0}, -+ {0x130b9, 0x0}, -+ {0x130b1, 0x0}, -+ {0x130ba, 0x0}, -+ {0x130a2, 0x0}, -+ {0x130b5, 0x0}, -+ {0x70024, 0x0}, -+ {0x70025, 0x0}, -+ {0x70026, 0x0}, -+ {0x70027, 0x0}, -+ {0x70028, 0x0}, -+ {0x70029, 0x0}, -+ {0x7002a, 0x0}, -+ {0x7002b, 0x0}, -+ {0x70124, 0x0}, -+ {0x70125, 0x0}, -+ {0x70126, 0x0}, -+ {0x70127, 0x0}, -+ {0x70128, 0x0}, -+ {0x70129, 0x0}, -+ {0x7012a, 0x0}, -+ {0x7012b, 0x0}, -+ {0x70224, 0x0}, -+ {0x70225, 0x0}, -+ {0x70226, 0x0}, -+ {0x70227, 0x0}, -+ {0x70228, 0x0}, -+ {0x70229, 0x0}, -+ {0x7022a, 0x0}, -+ {0x7022b, 0x0}, -+ {0x70324, 0x0}, -+ {0x70325, 0x0}, -+ {0x70326, 0x0}, -+ {0x70327, 0x0}, -+ {0x70328, 0x0}, -+ {0x70329, 0x0}, -+ {0x7032a, 0x0}, -+ {0x7032b, 0x0}, -+ {0x70424, 0x0}, -+ {0x70425, 0x0}, -+ {0x70426, 0x0}, -+ {0x70427, 0x0}, -+ {0x70428, 0x0}, -+ {0x70429, 0x0}, -+ {0x7042a, 0x0}, -+ {0x7042b, 0x0}, -+ {0x70524, 0x0}, -+ {0x70525, 0x0}, -+ {0x70526, 0x0}, -+ {0x70527, 0x0}, -+ {0x70528, 0x0}, -+ {0x70529, 0x0}, -+ {0x7052a, 0x0}, -+ {0x7052b, 0x0}, -+ {0x70624, 0x0}, -+ {0x70625, 0x0}, -+ {0x70626, 0x0}, -+ {0x70627, 0x0}, -+ {0x70628, 0x0}, -+ {0x70629, 0x0}, -+ {0x7062a, 0x0}, -+ {0x7062b, 0x0}, -+ {0x70724, 0x0}, -+ {0x70725, 0x0}, -+ {0x70726, 0x0}, -+ {0x70727, 0x0}, -+ {0x70728, 0x0}, -+ {0x70729, 0x0}, -+ {0x7072a, 0x0}, -+ {0x7072b, 0x0}, -+ {0x70824, 0x0}, -+ {0x70825, 0x0}, -+ {0x70826, 0x0}, -+ {0x70827, 0x0}, -+ {0x70828, 0x0}, -+ {0x70829, 0x0}, -+ {0x7082a, 0x0}, -+ {0x7082b, 0x0}, -+ {0x70065, 0x0}, -+ {0x2007e, 0x0}, -+ {0x200ef, 0x0}, -+ {0x90910, 0x0}, -+ {0x20310, 0x0}, -+ {0x20311, 0x0}, -+ {0x20049, 0x0}, -+ {0x100be, 0x0}, -+ {0x100b0, 0x0}, -+ {0x10080, 0x0}, -+ {0x10081, 0x0}, -+ {0x10082, 0x0}, -+ {0x10083, 0x0}, -+ {0x10084, 0x0}, -+ {0x10085, 0x0}, -+ {0x10086, 0x0}, -+ {0x10087, 0x0}, -+ {0x10056, 0x0}, -+ {0x100d9, 0x0}, -+ {0x110be, 0x0}, -+ {0x110b0, 0x0}, -+ {0x11080, 0x0}, -+ {0x11081, 0x0}, -+ {0x11082, 0x0}, -+ {0x11083, 0x0}, -+ {0x11084, 0x0}, -+ {0x11085, 0x0}, -+ {0x11086, 0x0}, -+ {0x11087, 0x0}, -+ {0x11056, 0x0}, -+ {0x110d9, 0x0}, -+ {0x120be, 0x0}, -+ {0x120b0, 0x0}, -+ {0x12080, 0x0}, -+ {0x12081, 0x0}, -+ {0x12082, 0x0}, -+ {0x12083, 0x0}, -+ {0x12084, 0x0}, -+ {0x12085, 0x0}, -+ {0x12086, 0x0}, -+ {0x12087, 0x0}, -+ {0x12056, 0x0}, -+ {0x120d9, 0x0}, -+ {0x130be, 0x0}, -+ {0x130b0, 0x0}, -+ {0x13080, 0x0}, -+ {0x13081, 0x0}, -+ {0x13082, 0x0}, -+ {0x13083, 0x0}, -+ {0x13084, 0x0}, -+ {0x13085, 0x0}, -+ {0x13086, 0x0}, -+ {0x13087, 0x0}, -+ {0x13056, 0x0}, -+ {0x130d9, 0x0}, -+ {0x30090, 0x0}, -+ {0x30091, 0x0}, -+ {0x30092, 0x0}, -+ {0x30093, 0x0}, -+ {0x30094, 0x0}, -+ {0x30095, 0x0}, -+ {0x30096, 0x0}, -+ {0x31090, 0x0}, -+ {0x31091, 0x0}, -+ {0x31092, 0x0}, -+ {0x31093, 0x0}, -+ {0x31094, 0x0}, -+ {0x31095, 0x0}, -+ {0x31096, 0x0}, -+ {0x30002, 0x0}, -+ {0x30007, 0x0}, -+ {0x30008, 0x0}, -+ {0x30005, 0x0}, -+ {0x30006, 0x0}, -+ {0x30001, 0x0}, -+ {0x30101, 0x0}, -+ {0x30201, 0x0}, -+ {0x30301, 0x0}, -+ {0x30401, 0x0}, -+ {0x30501, 0x0}, -+ {0x30601, 0x0}, -+ {0x30701, 0x0}, -+ {0x30801, 0x0}, -+ {0x30901, 0x0}, -+ {0x31002, 0x0}, -+ {0x31007, 0x0}, -+ {0x31008, 0x0}, -+ {0x31005, 0x0}, -+ {0x31006, 0x0}, -+ {0x31001, 0x0}, -+ {0x31101, 0x0}, -+ {0x31201, 0x0}, -+ {0x31301, 0x0}, -+ {0x31401, 0x0}, -+ {0x31501, 0x0}, -+ {0x31601, 0x0}, -+ {0x31701, 0x0}, -+ {0x31801, 0x0}, -+ {0x31901, 0x0}, -+ {0x10000, 0x0}, -+ {0x100ad, 0x0}, -+ {0x100af, 0x0}, -+ {0x10020, 0x0}, -+ {0x10021, 0x0}, -+ {0x10028, 0x0}, -+ {0x10029, 0x0}, -+ {0x10066, 0x0}, -+ {0x10067, 0x0}, -+ {0x1005a, 0x0}, -+ {0x1005b, 0x0}, -+ {0x1005c, 0x0}, -+ {0x1005d, 0x0}, -+ {0x1002a, 0x0}, -+ {0x1002b, 0x0}, -+ {0x10024, 0x0}, -+ {0x10025, 0x0}, -+ {0x10026, 0x0}, -+ {0x10027, 0x0}, -+ {0x10010, 0x0}, -+ {0x10011, 0x0}, -+ {0x10012, 0x0}, -+ {0x10013, 0x0}, -+ {0x10068, 0x0}, -+ {0x10069, 0x0}, -+ {0x1006a, 0x0}, -+ {0x1006b, 0x0}, -+ {0x1006c, 0x0}, -+ {0x1006d, 0x0}, -+ {0x1006e, 0x0}, -+ {0x1006f, 0x0}, -+ {0x1001c, 0x0}, -+ {0x1001d, 0x0}, -+ {0x1001e, 0x0}, -+ {0x1001f, 0x0}, -+ {0x10124, 0x0}, -+ {0x10125, 0x0}, -+ {0x10126, 0x0}, -+ {0x10127, 0x0}, -+ {0x10110, 0x0}, -+ {0x10111, 0x0}, -+ {0x10112, 0x0}, -+ {0x10113, 0x0}, -+ {0x10168, 0x0}, -+ {0x10169, 0x0}, -+ {0x1016a, 0x0}, -+ {0x1016b, 0x0}, -+ {0x1016c, 0x0}, -+ {0x1016d, 0x0}, -+ {0x1016e, 0x0}, -+ {0x1016f, 0x0}, -+ {0x1011c, 0x0}, -+ {0x1011d, 0x0}, -+ {0x1011e, 0x0}, -+ {0x1011f, 0x0}, -+ {0x10224, 0x0}, -+ {0x10225, 0x0}, -+ {0x10226, 0x0}, -+ {0x10227, 0x0}, -+ {0x10210, 0x0}, -+ {0x10211, 0x0}, -+ {0x10212, 0x0}, -+ {0x10213, 0x0}, -+ {0x10268, 0x0}, -+ {0x10269, 0x0}, -+ {0x1026a, 0x0}, -+ {0x1026b, 0x0}, -+ {0x1026c, 0x0}, -+ {0x1026d, 0x0}, -+ {0x1026e, 0x0}, -+ {0x1026f, 0x0}, -+ {0x1021c, 0x0}, -+ {0x1021d, 0x0}, -+ {0x1021e, 0x0}, -+ {0x1021f, 0x0}, -+ {0x10324, 0x0}, -+ {0x10325, 0x0}, -+ {0x10326, 0x0}, -+ {0x10327, 0x0}, -+ {0x10310, 0x0}, -+ {0x10311, 0x0}, -+ {0x10312, 0x0}, -+ {0x10313, 0x0}, -+ {0x10368, 0x0}, -+ {0x10369, 0x0}, -+ {0x1036a, 0x0}, -+ {0x1036b, 0x0}, -+ {0x1036c, 0x0}, -+ {0x1036d, 0x0}, -+ {0x1036e, 0x0}, -+ {0x1036f, 0x0}, -+ {0x1031c, 0x0}, -+ {0x1031d, 0x0}, -+ {0x1031e, 0x0}, -+ {0x1031f, 0x0}, -+ {0x10424, 0x0}, -+ {0x10425, 0x0}, -+ {0x10426, 0x0}, -+ {0x10427, 0x0}, -+ {0x10410, 0x0}, -+ {0x10411, 0x0}, -+ {0x10412, 0x0}, -+ {0x10413, 0x0}, -+ {0x10468, 0x0}, -+ {0x10469, 0x0}, -+ {0x1046a, 0x0}, -+ {0x1046b, 0x0}, -+ {0x1046c, 0x0}, -+ {0x1046d, 0x0}, -+ {0x1046e, 0x0}, -+ {0x1046f, 0x0}, -+ {0x1041c, 0x0}, -+ {0x1041d, 0x0}, -+ {0x1041e, 0x0}, -+ {0x1041f, 0x0}, -+ {0x10524, 0x0}, -+ {0x10525, 0x0}, -+ {0x10526, 0x0}, -+ {0x10527, 0x0}, -+ {0x10510, 0x0}, -+ {0x10511, 0x0}, -+ {0x10512, 0x0}, -+ {0x10513, 0x0}, -+ {0x10568, 0x0}, -+ {0x10569, 0x0}, -+ {0x1056a, 0x0}, -+ {0x1056b, 0x0}, -+ {0x1056c, 0x0}, -+ {0x1056d, 0x0}, -+ {0x1056e, 0x0}, -+ {0x1056f, 0x0}, -+ {0x1051c, 0x0}, -+ {0x1051d, 0x0}, -+ {0x1051e, 0x0}, -+ {0x1051f, 0x0}, -+ {0x10624, 0x0}, -+ {0x10625, 0x0}, -+ {0x10626, 0x0}, -+ {0x10627, 0x0}, -+ {0x10610, 0x0}, -+ {0x10611, 0x0}, -+ {0x10612, 0x0}, -+ {0x10613, 0x0}, -+ {0x10668, 0x0}, -+ {0x10669, 0x0}, -+ {0x1066a, 0x0}, -+ {0x1066b, 0x0}, -+ {0x1066c, 0x0}, -+ {0x1066d, 0x0}, -+ {0x1066e, 0x0}, -+ {0x1066f, 0x0}, -+ {0x1061c, 0x0}, -+ {0x1061d, 0x0}, -+ {0x1061e, 0x0}, -+ {0x1061f, 0x0}, -+ {0x10724, 0x0}, -+ {0x10725, 0x0}, -+ {0x10726, 0x0}, -+ {0x10727, 0x0}, -+ {0x10710, 0x0}, -+ {0x10711, 0x0}, -+ {0x10712, 0x0}, -+ {0x10713, 0x0}, -+ {0x10768, 0x0}, -+ {0x10769, 0x0}, -+ {0x1076a, 0x0}, -+ {0x1076b, 0x0}, -+ {0x1076c, 0x0}, -+ {0x1076d, 0x0}, -+ {0x1076e, 0x0}, -+ {0x1076f, 0x0}, -+ {0x1071c, 0x0}, -+ {0x1071d, 0x0}, -+ {0x1071e, 0x0}, -+ {0x1071f, 0x0}, -+ {0x10824, 0x0}, -+ {0x10825, 0x0}, -+ {0x10826, 0x0}, -+ {0x10827, 0x0}, -+ {0x10810, 0x0}, -+ {0x10811, 0x0}, -+ {0x10812, 0x0}, -+ {0x10813, 0x0}, -+ {0x10868, 0x0}, -+ {0x10869, 0x0}, -+ {0x1086a, 0x0}, -+ {0x1086b, 0x0}, -+ {0x1086c, 0x0}, -+ {0x1086d, 0x0}, -+ {0x1086e, 0x0}, -+ {0x1086f, 0x0}, -+ {0x1081c, 0x0}, -+ {0x1081d, 0x0}, -+ {0x1081e, 0x0}, -+ {0x1081f, 0x0}, -+ {0x1000c, 0x0}, -+ {0x1000d, 0x0}, -+ {0x10015, 0x0}, -+ {0x10016, 0x0}, -+ {0x10019, 0x0}, -+ {0x1001b, 0x0}, -+ {0x10022, 0x0}, -+ {0x10023, 0x0}, -+ {0x100d0, 0x0}, -+ {0x100d1, 0x0}, -+ {0x100d2, 0x0}, -+ {0x100d3, 0x0}, -+ {0x100d4, 0x0}, -+ {0x11000, 0x0}, -+ {0x110ad, 0x0}, -+ {0x110af, 0x0}, -+ {0x11020, 0x0}, -+ {0x11021, 0x0}, -+ {0x11028, 0x0}, -+ {0x11029, 0x0}, -+ {0x11066, 0x0}, -+ {0x11067, 0x0}, -+ {0x1105a, 0x0}, -+ {0x1105b, 0x0}, -+ {0x1105c, 0x0}, -+ {0x1105d, 0x0}, -+ {0x1102a, 0x0}, -+ {0x1102b, 0x0}, -+ {0x11024, 0x0}, -+ {0x11025, 0x0}, -+ {0x11026, 0x0}, -+ {0x11027, 0x0}, -+ {0x11010, 0x0}, -+ {0x11011, 0x0}, -+ {0x11012, 0x0}, -+ {0x11013, 0x0}, -+ {0x11068, 0x0}, -+ {0x11069, 0x0}, -+ {0x1106a, 0x0}, -+ {0x1106b, 0x0}, -+ {0x1106c, 0x0}, -+ {0x1106d, 0x0}, -+ {0x1106e, 0x0}, -+ {0x1106f, 0x0}, -+ {0x1101c, 0x0}, -+ {0x1101d, 0x0}, -+ {0x1101e, 0x0}, -+ {0x1101f, 0x0}, -+ {0x11124, 0x0}, -+ {0x11125, 0x0}, -+ {0x11126, 0x0}, -+ {0x11127, 0x0}, -+ {0x11110, 0x0}, -+ {0x11111, 0x0}, -+ {0x11112, 0x0}, -+ {0x11113, 0x0}, -+ {0x11168, 0x0}, -+ {0x11169, 0x0}, -+ {0x1116a, 0x0}, -+ {0x1116b, 0x0}, -+ {0x1116c, 0x0}, -+ {0x1116d, 0x0}, -+ {0x1116e, 0x0}, -+ {0x1116f, 0x0}, -+ {0x1111c, 0x0}, -+ {0x1111d, 0x0}, -+ {0x1111e, 0x0}, -+ {0x1111f, 0x0}, -+ {0x11224, 0x0}, -+ {0x11225, 0x0}, -+ {0x11226, 0x0}, -+ {0x11227, 0x0}, -+ {0x11210, 0x0}, -+ {0x11211, 0x0}, -+ {0x11212, 0x0}, -+ {0x11213, 0x0}, -+ {0x11268, 0x0}, -+ {0x11269, 0x0}, -+ {0x1126a, 0x0}, -+ {0x1126b, 0x0}, -+ {0x1126c, 0x0}, -+ {0x1126d, 0x0}, -+ {0x1126e, 0x0}, -+ {0x1126f, 0x0}, -+ {0x1121c, 0x0}, -+ {0x1121d, 0x0}, -+ {0x1121e, 0x0}, -+ {0x1121f, 0x0}, -+ {0x11324, 0x0}, -+ {0x11325, 0x0}, -+ {0x11326, 0x0}, -+ {0x11327, 0x0}, -+ {0x11310, 0x0}, -+ {0x11311, 0x0}, -+ {0x11312, 0x0}, -+ {0x11313, 0x0}, -+ {0x11368, 0x0}, -+ {0x11369, 0x0}, -+ {0x1136a, 0x0}, -+ {0x1136b, 0x0}, -+ {0x1136c, 0x0}, -+ {0x1136d, 0x0}, -+ {0x1136e, 0x0}, -+ {0x1136f, 0x0}, -+ {0x1131c, 0x0}, -+ {0x1131d, 0x0}, -+ {0x1131e, 0x0}, -+ {0x1131f, 0x0}, -+ {0x11424, 0x0}, -+ {0x11425, 0x0}, -+ {0x11426, 0x0}, -+ {0x11427, 0x0}, -+ {0x11410, 0x0}, -+ {0x11411, 0x0}, -+ {0x11412, 0x0}, -+ {0x11413, 0x0}, -+ {0x11468, 0x0}, -+ {0x11469, 0x0}, -+ {0x1146a, 0x0}, -+ {0x1146b, 0x0}, -+ {0x1146c, 0x0}, -+ {0x1146d, 0x0}, -+ {0x1146e, 0x0}, -+ {0x1146f, 0x0}, -+ {0x1141c, 0x0}, -+ {0x1141d, 0x0}, -+ {0x1141e, 0x0}, -+ {0x1141f, 0x0}, -+ {0x11524, 0x0}, -+ {0x11525, 0x0}, -+ {0x11526, 0x0}, -+ {0x11527, 0x0}, -+ {0x11510, 0x0}, -+ {0x11511, 0x0}, -+ {0x11512, 0x0}, -+ {0x11513, 0x0}, -+ {0x11568, 0x0}, -+ {0x11569, 0x0}, -+ {0x1156a, 0x0}, -+ {0x1156b, 0x0}, -+ {0x1156c, 0x0}, -+ {0x1156d, 0x0}, -+ {0x1156e, 0x0}, -+ {0x1156f, 0x0}, -+ {0x1151c, 0x0}, -+ {0x1151d, 0x0}, -+ {0x1151e, 0x0}, -+ {0x1151f, 0x0}, -+ {0x11624, 0x0}, -+ {0x11625, 0x0}, -+ {0x11626, 0x0}, -+ {0x11627, 0x0}, -+ {0x11610, 0x0}, -+ {0x11611, 0x0}, -+ {0x11612, 0x0}, -+ {0x11613, 0x0}, -+ {0x11668, 0x0}, -+ {0x11669, 0x0}, -+ {0x1166a, 0x0}, -+ {0x1166b, 0x0}, -+ {0x1166c, 0x0}, -+ {0x1166d, 0x0}, -+ {0x1166e, 0x0}, -+ {0x1166f, 0x0}, -+ {0x1161c, 0x0}, -+ {0x1161d, 0x0}, -+ {0x1161e, 0x0}, -+ {0x1161f, 0x0}, -+ {0x11724, 0x0}, -+ {0x11725, 0x0}, -+ {0x11726, 0x0}, -+ {0x11727, 0x0}, -+ {0x11710, 0x0}, -+ {0x11711, 0x0}, -+ {0x11712, 0x0}, -+ {0x11713, 0x0}, -+ {0x11768, 0x0}, -+ {0x11769, 0x0}, -+ {0x1176a, 0x0}, -+ {0x1176b, 0x0}, -+ {0x1176c, 0x0}, -+ {0x1176d, 0x0}, -+ {0x1176e, 0x0}, -+ {0x1176f, 0x0}, -+ {0x1171c, 0x0}, -+ {0x1171d, 0x0}, -+ {0x1171e, 0x0}, -+ {0x1171f, 0x0}, -+ {0x11824, 0x0}, -+ {0x11825, 0x0}, -+ {0x11826, 0x0}, -+ {0x11827, 0x0}, -+ {0x11810, 0x0}, -+ {0x11811, 0x0}, -+ {0x11812, 0x0}, -+ {0x11813, 0x0}, -+ {0x11868, 0x0}, -+ {0x11869, 0x0}, -+ {0x1186a, 0x0}, -+ {0x1186b, 0x0}, -+ {0x1186c, 0x0}, -+ {0x1186d, 0x0}, -+ {0x1186e, 0x0}, -+ {0x1186f, 0x0}, -+ {0x1181c, 0x0}, -+ {0x1181d, 0x0}, -+ {0x1181e, 0x0}, -+ {0x1181f, 0x0}, -+ {0x1100c, 0x0}, -+ {0x1100d, 0x0}, -+ {0x11015, 0x0}, -+ {0x11016, 0x0}, -+ {0x11019, 0x0}, -+ {0x1101b, 0x0}, -+ {0x11022, 0x0}, -+ {0x11023, 0x0}, -+ {0x110d0, 0x0}, -+ {0x110d1, 0x0}, -+ {0x110d2, 0x0}, -+ {0x110d3, 0x0}, -+ {0x110d4, 0x0}, -+ {0x12000, 0x0}, -+ {0x120ad, 0x0}, -+ {0x120af, 0x0}, -+ {0x12020, 0x0}, -+ {0x12021, 0x0}, -+ {0x12028, 0x0}, -+ {0x12029, 0x0}, -+ {0x12066, 0x0}, -+ {0x12067, 0x0}, -+ {0x1205a, 0x0}, -+ {0x1205b, 0x0}, -+ {0x1205c, 0x0}, -+ {0x1205d, 0x0}, -+ {0x1202a, 0x0}, -+ {0x1202b, 0x0}, -+ {0x12024, 0x0}, -+ {0x12025, 0x0}, -+ {0x12026, 0x0}, -+ {0x12027, 0x0}, -+ {0x12010, 0x0}, -+ {0x12011, 0x0}, -+ {0x12012, 0x0}, -+ {0x12013, 0x0}, -+ {0x12068, 0x0}, -+ {0x12069, 0x0}, -+ {0x1206a, 0x0}, -+ {0x1206b, 0x0}, -+ {0x1206c, 0x0}, -+ {0x1206d, 0x0}, -+ {0x1206e, 0x0}, -+ {0x1206f, 0x0}, -+ {0x1201c, 0x0}, -+ {0x1201d, 0x0}, -+ {0x1201e, 0x0}, -+ {0x1201f, 0x0}, -+ {0x12124, 0x0}, -+ {0x12125, 0x0}, -+ {0x12126, 0x0}, -+ {0x12127, 0x0}, -+ {0x12110, 0x0}, -+ {0x12111, 0x0}, -+ {0x12112, 0x0}, -+ {0x12113, 0x0}, -+ {0x12168, 0x0}, -+ {0x12169, 0x0}, -+ {0x1216a, 0x0}, -+ {0x1216b, 0x0}, -+ {0x1216c, 0x0}, -+ {0x1216d, 0x0}, -+ {0x1216e, 0x0}, -+ {0x1216f, 0x0}, -+ {0x1211c, 0x0}, -+ {0x1211d, 0x0}, -+ {0x1211e, 0x0}, -+ {0x1211f, 0x0}, -+ {0x12224, 0x0}, -+ {0x12225, 0x0}, -+ {0x12226, 0x0}, -+ {0x12227, 0x0}, -+ {0x12210, 0x0}, -+ {0x12211, 0x0}, -+ {0x12212, 0x0}, -+ {0x12213, 0x0}, -+ {0x12268, 0x0}, -+ {0x12269, 0x0}, -+ {0x1226a, 0x0}, -+ {0x1226b, 0x0}, -+ {0x1226c, 0x0}, -+ {0x1226d, 0x0}, -+ {0x1226e, 0x0}, -+ {0x1226f, 0x0}, -+ {0x1221c, 0x0}, -+ {0x1221d, 0x0}, -+ {0x1221e, 0x0}, -+ {0x1221f, 0x0}, -+ {0x12324, 0x0}, -+ {0x12325, 0x0}, -+ {0x12326, 0x0}, -+ {0x12327, 0x0}, -+ {0x12310, 0x0}, -+ {0x12311, 0x0}, -+ {0x12312, 0x0}, -+ {0x12313, 0x0}, -+ {0x12368, 0x0}, -+ {0x12369, 0x0}, -+ {0x1236a, 0x0}, -+ {0x1236b, 0x0}, -+ {0x1236c, 0x0}, -+ {0x1236d, 0x0}, -+ {0x1236e, 0x0}, -+ {0x1236f, 0x0}, -+ {0x1231c, 0x0}, -+ {0x1231d, 0x0}, -+ {0x1231e, 0x0}, -+ {0x1231f, 0x0}, -+ {0x12424, 0x0}, -+ {0x12425, 0x0}, -+ {0x12426, 0x0}, -+ {0x12427, 0x0}, -+ {0x12410, 0x0}, -+ {0x12411, 0x0}, -+ {0x12412, 0x0}, -+ {0x12413, 0x0}, -+ {0x12468, 0x0}, -+ {0x12469, 0x0}, -+ {0x1246a, 0x0}, -+ {0x1246b, 0x0}, -+ {0x1246c, 0x0}, -+ {0x1246d, 0x0}, -+ {0x1246e, 0x0}, -+ {0x1246f, 0x0}, -+ {0x1241c, 0x0}, -+ {0x1241d, 0x0}, -+ {0x1241e, 0x0}, -+ {0x1241f, 0x0}, -+ {0x12524, 0x0}, -+ {0x12525, 0x0}, -+ {0x12526, 0x0}, -+ {0x12527, 0x0}, -+ {0x12510, 0x0}, -+ {0x12511, 0x0}, -+ {0x12512, 0x0}, -+ {0x12513, 0x0}, -+ {0x12568, 0x0}, -+ {0x12569, 0x0}, -+ {0x1256a, 0x0}, -+ {0x1256b, 0x0}, -+ {0x1256c, 0x0}, -+ {0x1256d, 0x0}, -+ {0x1256e, 0x0}, -+ {0x1256f, 0x0}, -+ {0x1251c, 0x0}, -+ {0x1251d, 0x0}, -+ {0x1251e, 0x0}, -+ {0x1251f, 0x0}, -+ {0x12624, 0x0}, -+ {0x12625, 0x0}, -+ {0x12626, 0x0}, -+ {0x12627, 0x0}, -+ {0x12610, 0x0}, -+ {0x12611, 0x0}, -+ {0x12612, 0x0}, -+ {0x12613, 0x0}, -+ {0x12668, 0x0}, -+ {0x12669, 0x0}, -+ {0x1266a, 0x0}, -+ {0x1266b, 0x0}, -+ {0x1266c, 0x0}, -+ {0x1266d, 0x0}, -+ {0x1266e, 0x0}, -+ {0x1266f, 0x0}, -+ {0x1261c, 0x0}, -+ {0x1261d, 0x0}, -+ {0x1261e, 0x0}, -+ {0x1261f, 0x0}, -+ {0x12724, 0x0}, -+ {0x12725, 0x0}, -+ {0x12726, 0x0}, -+ {0x12727, 0x0}, -+ {0x12710, 0x0}, -+ {0x12711, 0x0}, -+ {0x12712, 0x0}, -+ {0x12713, 0x0}, -+ {0x12768, 0x0}, -+ {0x12769, 0x0}, -+ {0x1276a, 0x0}, -+ {0x1276b, 0x0}, -+ {0x1276c, 0x0}, -+ {0x1276d, 0x0}, -+ {0x1276e, 0x0}, -+ {0x1276f, 0x0}, -+ {0x1271c, 0x0}, -+ {0x1271d, 0x0}, -+ {0x1271e, 0x0}, -+ {0x1271f, 0x0}, -+ {0x12824, 0x0}, -+ {0x12825, 0x0}, -+ {0x12826, 0x0}, -+ {0x12827, 0x0}, -+ {0x12810, 0x0}, -+ {0x12811, 0x0}, -+ {0x12812, 0x0}, -+ {0x12813, 0x0}, -+ {0x12868, 0x0}, -+ {0x12869, 0x0}, -+ {0x1286a, 0x0}, -+ {0x1286b, 0x0}, -+ {0x1286c, 0x0}, -+ {0x1286d, 0x0}, -+ {0x1286e, 0x0}, -+ {0x1286f, 0x0}, -+ {0x1281c, 0x0}, -+ {0x1281d, 0x0}, -+ {0x1281e, 0x0}, -+ {0x1281f, 0x0}, -+ {0x1200c, 0x0}, -+ {0x1200d, 0x0}, -+ {0x12015, 0x0}, -+ {0x12016, 0x0}, -+ {0x12019, 0x0}, -+ {0x1201b, 0x0}, -+ {0x12022, 0x0}, -+ {0x12023, 0x0}, -+ {0x120d0, 0x0}, -+ {0x120d1, 0x0}, -+ {0x120d2, 0x0}, -+ {0x120d3, 0x0}, -+ {0x120d4, 0x0}, -+ {0x13000, 0x0}, -+ {0x130ad, 0x0}, -+ {0x130af, 0x0}, -+ {0x13020, 0x0}, -+ {0x13021, 0x0}, -+ {0x13028, 0x0}, -+ {0x13029, 0x0}, -+ {0x13066, 0x0}, -+ {0x13067, 0x0}, -+ {0x1305a, 0x0}, -+ {0x1305b, 0x0}, -+ {0x1305c, 0x0}, -+ {0x1305d, 0x0}, -+ {0x1302a, 0x0}, -+ {0x1302b, 0x0}, -+ {0x13024, 0x0}, -+ {0x13025, 0x0}, -+ {0x13026, 0x0}, -+ {0x13027, 0x0}, -+ {0x13010, 0x0}, -+ {0x13011, 0x0}, -+ {0x13012, 0x0}, -+ {0x13013, 0x0}, -+ {0x13068, 0x0}, -+ {0x13069, 0x0}, -+ {0x1306a, 0x0}, -+ {0x1306b, 0x0}, -+ {0x1306c, 0x0}, -+ {0x1306d, 0x0}, -+ {0x1306e, 0x0}, -+ {0x1306f, 0x0}, -+ {0x1301c, 0x0}, -+ {0x1301d, 0x0}, -+ {0x1301e, 0x0}, -+ {0x1301f, 0x0}, -+ {0x13124, 0x0}, -+ {0x13125, 0x0}, -+ {0x13126, 0x0}, -+ {0x13127, 0x0}, -+ {0x13110, 0x0}, -+ {0x13111, 0x0}, -+ {0x13112, 0x0}, -+ {0x13113, 0x0}, -+ {0x13168, 0x0}, -+ {0x13169, 0x0}, -+ {0x1316a, 0x0}, -+ {0x1316b, 0x0}, -+ {0x1316c, 0x0}, -+ {0x1316d, 0x0}, -+ {0x1316e, 0x0}, -+ {0x1316f, 0x0}, -+ {0x1311c, 0x0}, -+ {0x1311d, 0x0}, -+ {0x1311e, 0x0}, -+ {0x1311f, 0x0}, -+ {0x13224, 0x0}, -+ {0x13225, 0x0}, -+ {0x13226, 0x0}, -+ {0x13227, 0x0}, -+ {0x13210, 0x0}, -+ {0x13211, 0x0}, -+ {0x13212, 0x0}, -+ {0x13213, 0x0}, -+ {0x13268, 0x0}, -+ {0x13269, 0x0}, -+ {0x1326a, 0x0}, -+ {0x1326b, 0x0}, -+ {0x1326c, 0x0}, -+ {0x1326d, 0x0}, -+ {0x1326e, 0x0}, -+ {0x1326f, 0x0}, -+ {0x1321c, 0x0}, -+ {0x1321d, 0x0}, -+ {0x1321e, 0x0}, -+ {0x1321f, 0x0}, -+ {0x13324, 0x0}, -+ {0x13325, 0x0}, -+ {0x13326, 0x0}, -+ {0x13327, 0x0}, -+ {0x13310, 0x0}, -+ {0x13311, 0x0}, -+ {0x13312, 0x0}, -+ {0x13313, 0x0}, -+ {0x13368, 0x0}, -+ {0x13369, 0x0}, -+ {0x1336a, 0x0}, -+ {0x1336b, 0x0}, -+ {0x1336c, 0x0}, -+ {0x1336d, 0x0}, -+ {0x1336e, 0x0}, -+ {0x1336f, 0x0}, -+ {0x1331c, 0x0}, -+ {0x1331d, 0x0}, -+ {0x1331e, 0x0}, -+ {0x1331f, 0x0}, -+ {0x13424, 0x0}, -+ {0x13425, 0x0}, -+ {0x13426, 0x0}, -+ {0x13427, 0x0}, -+ {0x13410, 0x0}, -+ {0x13411, 0x0}, -+ {0x13412, 0x0}, -+ {0x13413, 0x0}, -+ {0x13468, 0x0}, -+ {0x13469, 0x0}, -+ {0x1346a, 0x0}, -+ {0x1346b, 0x0}, -+ {0x1346c, 0x0}, -+ {0x1346d, 0x0}, -+ {0x1346e, 0x0}, -+ {0x1346f, 0x0}, -+ {0x1341c, 0x0}, -+ {0x1341d, 0x0}, -+ {0x1341e, 0x0}, -+ {0x1341f, 0x0}, -+ {0x13524, 0x0}, -+ {0x13525, 0x0}, -+ {0x13526, 0x0}, -+ {0x13527, 0x0}, -+ {0x13510, 0x0}, -+ {0x13511, 0x0}, -+ {0x13512, 0x0}, -+ {0x13513, 0x0}, -+ {0x13568, 0x0}, -+ {0x13569, 0x0}, -+ {0x1356a, 0x0}, -+ {0x1356b, 0x0}, -+ {0x1356c, 0x0}, -+ {0x1356d, 0x0}, -+ {0x1356e, 0x0}, -+ {0x1356f, 0x0}, -+ {0x1351c, 0x0}, -+ {0x1351d, 0x0}, -+ {0x1351e, 0x0}, -+ {0x1351f, 0x0}, -+ {0x13624, 0x0}, -+ {0x13625, 0x0}, -+ {0x13626, 0x0}, -+ {0x13627, 0x0}, -+ {0x13610, 0x0}, -+ {0x13611, 0x0}, -+ {0x13612, 0x0}, -+ {0x13613, 0x0}, -+ {0x13668, 0x0}, -+ {0x13669, 0x0}, -+ {0x1366a, 0x0}, -+ {0x1366b, 0x0}, -+ {0x1366c, 0x0}, -+ {0x1366d, 0x0}, -+ {0x1366e, 0x0}, -+ {0x1366f, 0x0}, -+ {0x1361c, 0x0}, -+ {0x1361d, 0x0}, -+ {0x1361e, 0x0}, -+ {0x1361f, 0x0}, -+ {0x13724, 0x0}, -+ {0x13725, 0x0}, -+ {0x13726, 0x0}, -+ {0x13727, 0x0}, -+ {0x13710, 0x0}, -+ {0x13711, 0x0}, -+ {0x13712, 0x0}, -+ {0x13713, 0x0}, -+ {0x13768, 0x0}, -+ {0x13769, 0x0}, -+ {0x1376a, 0x0}, -+ {0x1376b, 0x0}, -+ {0x1376c, 0x0}, -+ {0x1376d, 0x0}, -+ {0x1376e, 0x0}, -+ {0x1376f, 0x0}, -+ {0x1371c, 0x0}, -+ {0x1371d, 0x0}, -+ {0x1371e, 0x0}, -+ {0x1371f, 0x0}, -+ {0x13824, 0x0}, -+ {0x13825, 0x0}, -+ {0x13826, 0x0}, -+ {0x13827, 0x0}, -+ {0x13810, 0x0}, -+ {0x13811, 0x0}, -+ {0x13812, 0x0}, -+ {0x13813, 0x0}, -+ {0x13868, 0x0}, -+ {0x13869, 0x0}, -+ {0x1386a, 0x0}, -+ {0x1386b, 0x0}, -+ {0x1386c, 0x0}, -+ {0x1386d, 0x0}, -+ {0x1386e, 0x0}, -+ {0x1386f, 0x0}, -+ {0x1381c, 0x0}, -+ {0x1381d, 0x0}, -+ {0x1381e, 0x0}, -+ {0x1381f, 0x0}, -+ {0x1300c, 0x0}, -+ {0x1300d, 0x0}, -+ {0x13015, 0x0}, -+ {0x13016, 0x0}, -+ {0x13019, 0x0}, -+ {0x1301b, 0x0}, -+ {0x13022, 0x0}, -+ {0x13023, 0x0}, -+ {0x130d0, 0x0}, -+ {0x130d1, 0x0}, -+ {0x130d2, 0x0}, -+ {0x130d3, 0x0}, -+ {0x130d4, 0x0}, -+ {0x90807, 0x0}, -+ {0x90808, 0x0}, -+ {0x90813, 0x0}, -+ {0x2004e, 0x0}, -+ {0x2000d, 0x0}, -+ {0x20077, 0x0}, -+}; -+ -+/* PHY Initialize Configuration for Pstate 0 */ -+static struct ddrphy_cfg_param ddr_phy_fsp0_cfg[] = { -+ {0x90802, 0x1}, -+ {0x2004a, 0x601}, -+ {0x2004b, 0x1c3e}, -+ {0x2004c, 0x2e8f}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x101}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20002, 0x2}, -+ {0x20000, 0x2}, -+ {0x90801, 0x4d}, -+ {0x90809, 0x6800}, -+ {0x1005e, 0x366}, -+ {0x10060, 0x366}, -+ {0x10062, 0x366}, -+ {0x10064, 0x366}, -+ {0x1005f, 0x366}, -+ {0x10061, 0x366}, -+ {0x10063, 0x366}, -+ {0x10065, 0x366}, -+ {0x1105e, 0x366}, -+ {0x11060, 0x366}, -+ {0x11062, 0x366}, -+ {0x11064, 0x366}, -+ {0x1105f, 0x366}, -+ {0x11061, 0x366}, -+ {0x11063, 0x366}, -+ {0x11065, 0x366}, -+ {0x1205e, 0x366}, -+ {0x12060, 0x366}, -+ {0x12062, 0x366}, -+ {0x12064, 0x366}, -+ {0x1205f, 0x366}, -+ {0x12061, 0x366}, -+ {0x12063, 0x366}, -+ {0x12065, 0x366}, -+ {0x1305e, 0x366}, -+ {0x13060, 0x366}, -+ {0x13062, 0x366}, -+ {0x13064, 0x366}, -+ {0x1305f, 0x366}, -+ {0x13061, 0x366}, -+ {0x13063, 0x366}, -+ {0x13065, 0x366}, -+ {0x10005, 0x0}, -+ {0x1000b, 0x0}, -+ {0x11005, 0x0}, -+ {0x1100b, 0x0}, -+ {0x12005, 0x0}, -+ {0x1200b, 0x0}, -+ {0x13005, 0x0}, -+ {0x1300b, 0x0}, -+ {0x20007, 0x200}, -+ {0x20013, 0x2c}, -+ {0x30038, 0x3}, -+ {0x30039, 0x3}, -+ {0x3003a, 0x3}, -+ {0x31038, 0x3}, -+ {0x31039, 0x3}, -+ {0x3103a, 0x3}, -+ {0x10038, 0x3}, -+ {0x1003a, 0x3}, -+ {0x11038, 0x3}, -+ {0x1103a, 0x3}, -+ {0x12038, 0x3}, -+ {0x1203a, 0x3}, -+ {0x13038, 0x3}, -+ {0x1303a, 0x3}, -+ {0x1003b, 0x3}, -+ {0x1103b, 0x3}, -+ {0x1203b, 0x3}, -+ {0x1303b, 0x3}, -+ {0x10009, 0x0}, -+ {0x10037, 0x0}, -+ {0x11009, 0x0}, -+ {0x11037, 0x0}, -+ {0x12009, 0x0}, -+ {0x12037, 0x0}, -+ {0x13009, 0x0}, -+ {0x13037, 0x0}, -+ {0x10004, 0x0}, -+ {0x10003, 0x0}, -+ {0x11004, 0x0}, -+ {0x11003, 0x0}, -+ {0x12004, 0x0}, -+ {0x12003, 0x0}, -+ {0x13004, 0x0}, -+ {0x13003, 0x0}, -+ {0x20004, 0x320}, -+ {0x30050, 0x15}, -+ {0x30051, 0x15}, -+ {0x30052, 0x15}, -+ {0x30053, 0x15}, -+ {0x31050, 0x15}, -+ {0x31051, 0x15}, -+ {0x31052, 0x15}, -+ {0x31053, 0x15}, -+ {0x1004e, 0x15}, -+ {0x1004f, 0x15}, -+ {0x10050, 0x15}, -+ {0x10051, 0x15}, -+ {0x1014e, 0x15}, -+ {0x1014f, 0x15}, -+ {0x10150, 0x15}, -+ {0x10151, 0x15}, -+ {0x1024e, 0x15}, -+ {0x1024f, 0x15}, -+ {0x10250, 0x15}, -+ {0x10251, 0x15}, -+ {0x1034e, 0x15}, -+ {0x1034f, 0x15}, -+ {0x10350, 0x15}, -+ {0x10351, 0x15}, -+ {0x1044e, 0x15}, -+ {0x1044f, 0x15}, -+ {0x10450, 0x15}, -+ {0x10451, 0x15}, -+ {0x1054e, 0x15}, -+ {0x1054f, 0x15}, -+ {0x10550, 0x15}, -+ {0x10551, 0x15}, -+ {0x1064e, 0x15}, -+ {0x1064f, 0x15}, -+ {0x10650, 0x15}, -+ {0x10651, 0x15}, -+ {0x1074e, 0x15}, -+ {0x1074f, 0x15}, -+ {0x10750, 0x15}, -+ {0x10751, 0x15}, -+ {0x1084e, 0x15}, -+ {0x1084f, 0x15}, -+ {0x10850, 0x15}, -+ {0x10851, 0x15}, -+ {0x1104e, 0x15}, -+ {0x1104f, 0x15}, -+ {0x11050, 0x15}, -+ {0x11051, 0x15}, -+ {0x1114e, 0x15}, -+ {0x1114f, 0x15}, -+ {0x11150, 0x15}, -+ {0x11151, 0x15}, -+ {0x1124e, 0x15}, -+ {0x1124f, 0x15}, -+ {0x11250, 0x15}, -+ {0x11251, 0x15}, -+ {0x1134e, 0x15}, -+ {0x1134f, 0x15}, -+ {0x11350, 0x15}, -+ {0x11351, 0x15}, -+ {0x1144e, 0x15}, -+ {0x1144f, 0x15}, -+ {0x11450, 0x15}, -+ {0x11451, 0x15}, -+ {0x1154e, 0x15}, -+ {0x1154f, 0x15}, -+ {0x11550, 0x15}, -+ {0x11551, 0x15}, -+ {0x1164e, 0x15}, -+ {0x1164f, 0x15}, -+ {0x11650, 0x15}, -+ {0x11651, 0x15}, -+ {0x1174e, 0x15}, -+ {0x1174f, 0x15}, -+ {0x11750, 0x15}, -+ {0x11751, 0x15}, -+ {0x1184e, 0x15}, -+ {0x1184f, 0x15}, -+ {0x11850, 0x15}, -+ {0x11851, 0x15}, -+ {0x1204e, 0x15}, -+ {0x1204f, 0x15}, -+ {0x12050, 0x15}, -+ {0x12051, 0x15}, -+ {0x1214e, 0x15}, -+ {0x1214f, 0x15}, -+ {0x12150, 0x15}, -+ {0x12151, 0x15}, -+ {0x1224e, 0x15}, -+ {0x1224f, 0x15}, -+ {0x12250, 0x15}, -+ {0x12251, 0x15}, -+ {0x1234e, 0x15}, -+ {0x1234f, 0x15}, -+ {0x12350, 0x15}, -+ {0x12351, 0x15}, -+ {0x1244e, 0x15}, -+ {0x1244f, 0x15}, -+ {0x12450, 0x15}, -+ {0x12451, 0x15}, -+ {0x1254e, 0x15}, -+ {0x1254f, 0x15}, -+ {0x12550, 0x15}, -+ {0x12551, 0x15}, -+ {0x1264e, 0x15}, -+ {0x1264f, 0x15}, -+ {0x12650, 0x15}, -+ {0x12651, 0x15}, -+ {0x1274e, 0x15}, -+ {0x1274f, 0x15}, -+ {0x12750, 0x15}, -+ {0x12751, 0x15}, -+ {0x1284e, 0x15}, -+ {0x1284f, 0x15}, -+ {0x12850, 0x15}, -+ {0x12851, 0x15}, -+ {0x1304e, 0x15}, -+ {0x1304f, 0x15}, -+ {0x13050, 0x15}, -+ {0x13051, 0x15}, -+ {0x1314e, 0x15}, -+ {0x1314f, 0x15}, -+ {0x13150, 0x15}, -+ {0x13151, 0x15}, -+ {0x1324e, 0x15}, -+ {0x1324f, 0x15}, -+ {0x13250, 0x15}, -+ {0x13251, 0x15}, -+ {0x1334e, 0x15}, -+ {0x1334f, 0x15}, -+ {0x13350, 0x15}, -+ {0x13351, 0x15}, -+ {0x1344e, 0x15}, -+ {0x1344f, 0x15}, -+ {0x13450, 0x15}, -+ {0x13451, 0x15}, -+ {0x1354e, 0x15}, -+ {0x1354f, 0x15}, -+ {0x13550, 0x15}, -+ {0x13551, 0x15}, -+ {0x1364e, 0x15}, -+ {0x1364f, 0x15}, -+ {0x13650, 0x15}, -+ {0x13651, 0x15}, -+ {0x1374e, 0x15}, -+ {0x1374f, 0x15}, -+ {0x13750, 0x15}, -+ {0x13751, 0x15}, -+ {0x1384e, 0x15}, -+ {0x1384f, 0x15}, -+ {0x13850, 0x15}, -+ {0x13851, 0x15}, -+ {0x30030, 0x0}, -+ {0x30031, 0x0}, -+ {0x30035, 0x0}, -+ {0x31030, 0x0}, -+ {0x31031, 0x0}, -+ {0x31035, 0x0}, -+ {0x10030, 0x0}, -+ {0x10035, 0x0}, -+ {0x10036, 0x0}, -+ {0x11030, 0x0}, -+ {0x11035, 0x0}, -+ {0x11036, 0x0}, -+ {0x12030, 0x0}, -+ {0x12035, 0x0}, -+ {0x12036, 0x0}, -+ {0x13030, 0x0}, -+ {0x13035, 0x0}, -+ {0x13036, 0x0}, -+ {0x3003c, 0x5}, -+ {0x3103c, 0x5}, -+ {0x1003c, 0x5}, -+ {0x1003d, 0x5}, -+ {0x1003e, 0x5}, -+ {0x1103c, 0x5}, -+ {0x1103d, 0x5}, -+ {0x1103e, 0x5}, -+ {0x1203c, 0x5}, -+ {0x1203d, 0x5}, -+ {0x1203e, 0x5}, -+ {0x1303c, 0x5}, -+ {0x1303d, 0x5}, -+ {0x1303e, 0x5}, -+ {0x20003, 0x1}, -+ {0x10006, 0x2}, -+ {0x11006, 0x2}, -+ {0x12006, 0x2}, -+ {0x13006, 0x2}, -+ {0x20001, 0x1122}, -+ {0x20009, 0x0}, -+ {0x20008, 0x0}, -+ {0x200d9, 0x1}, -+ {0x30eef, 0x0}, -+ {0x31eef, 0x0}, -+ {0x20014, 0x1301}, -+ {0x9080a, 0x1300}, -+ {0x10040, 0xe0e}, -+ {0x10042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x10043, 0x0}, -+ {0x10044, 0xe0e}, -+ {0x10045, 0xe0e}, -+ {0x11040, 0xe0e}, -+ {0x11042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x11043, 0x0}, -+ {0x11044, 0xe0e}, -+ {0x11045, 0xe0e}, -+ {0x12040, 0xe0e}, -+ {0x12042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x12043, 0x0}, -+ {0x12044, 0xe0e}, -+ {0x12045, 0xe0e}, -+ {0x13040, 0xe0e}, -+ {0x13042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x13043, 0x0}, -+ {0x13044, 0xe0e}, -+ {0x13045, 0xe0e}, -+ {0x30040, 0xe0e}, -+ {0x30041, 0xe0e}, -+ {0x30042, 0xe0e}, -+ {0x30043, 0xe0e}, -+ {0x30330, 0x33}, -+ {0x31040, 0xe0e}, -+ {0x31041, 0xe0e}, -+ {0x31042, 0xe0e}, -+ {0x31043, 0xe0e}, -+ {0x31330, 0x33}, -+ {0x20331, 0x33}, -+ {0x10048, 0xc00}, -+ {0x1004a, 0xc00}, -+ {0x1004b, 0xc00}, -+ {0x1004c, 0xe00}, -+ {0x1004d, 0xe00}, -+ {0x11048, 0xc00}, -+ {0x1104a, 0xc00}, -+ {0x1104b, 0xc00}, -+ {0x1104c, 0xe00}, -+ {0x1104d, 0xe00}, -+ {0x12048, 0xc00}, -+ {0x1204a, 0xc00}, -+ {0x1204b, 0xc00}, -+ {0x1204c, 0xe00}, -+ {0x1204d, 0xe00}, -+ {0x13048, 0xc00}, -+ {0x1304a, 0xc00}, -+ {0x1304b, 0xc00}, -+ {0x1304c, 0xe00}, -+ {0x1304d, 0xe00}, -+ {0x30048, 0xc00}, -+ {0x30049, 0xc00}, -+ {0x3004a, 0xc00}, -+ {0x3004b, 0xc00}, -+ {0x31048, 0xc00}, -+ {0x31049, 0xc00}, -+ {0x3104a, 0xc00}, -+ {0x3104b, 0xc00}, -+ {0x30033, 0xcc}, -+ {0x30034, 0xcc}, -+ {0x3002e, 0xcc}, -+ {0x31033, 0xcc}, -+ {0x31034, 0xcc}, -+ {0x3102e, 0xcc}, -+ {0x10033, 0xcc}, -+ {0x1002e, 0xcc}, -+ {0x1002f, 0xcc}, -+ {0x11033, 0xcc}, -+ {0x1102e, 0xcc}, -+ {0x1102f, 0xcc}, -+ {0x12033, 0xcc}, -+ {0x1202e, 0xcc}, -+ {0x1202f, 0xcc}, -+ {0x13033, 0xcc}, -+ {0x1302e, 0xcc}, -+ {0x1302f, 0xcc}, -+ {0x20015, 0x0}, -+ {0x90806, 0x0}, -+ {0x100e8, 0x0}, -+ {0x100e9, 0x15}, -+ {0x110e8, 0x0}, -+ {0x110e9, 0x15}, -+ {0x120e8, 0x0}, -+ {0x120e9, 0x15}, -+ {0x130e8, 0x0}, -+ {0x130e9, 0x15}, -+ {0x10001, 0x0}, -+ {0x11001, 0x0}, -+ {0x12001, 0x0}, -+ {0x13001, 0x0}, -+ {0x20012, 0xa1a1}, -+ {0x20017, 0x40}, -+ {0x2000a, 0x40}, -+ {0x20186, 0xa1}, -+ {0x20187, 0x40}, -+ {0x20010, 0x0}, -+ {0x20011, 0xf}, -+ {0x9080b, 0xf}, -+ {0x9080c, 0xf}, -+ {0x100a5, 0x1}, -+ {0x110a5, 0x1}, -+ {0x120a5, 0x1}, -+ {0x130a5, 0x1}, -+ {0x10014, 0x3232}, -+ {0x11014, 0x3232}, -+ {0x12014, 0x3232}, -+ {0x13014, 0x3232}, -+ {0x1000f, 0x1086}, -+ {0x1100f, 0x1086}, -+ {0x1200f, 0x1086}, -+ {0x1300f, 0x1086}, -+ {0x20035, 0x100c}, -+ {0x20036, 0x100c}, -+ {0x20037, 0x41c}, -+ {0x20037, 0x45c}, -+ {0x20038, 0x1920}, -+ {0x20039, 0x101c}, -+ {0x2003a, 0x101c}, -+ {0x2003b, 0x42c}, -+ {0x2003c, 0x2d30}, -+ {0x2003d, 0x1004}, -+ {0x2003e, 0x1004}, -+ {0x2003f, 0x414}, -+ {0x20040, 0x1118}, -+ {0x2002c, 0x843}, -+ {0x2002d, 0x843}, -+ {0x20030, 0x843}, -+ {0x2002e, 0x81f}, -+ {0x2002f, 0x81f}, -+ {0x2000c, 0x0}, -+ {0x2001b, 0x0}, -+ {0x10007, 0x0}, -+ {0x11007, 0x0}, -+ {0x12007, 0x0}, -+ {0x13007, 0x0}, -+ {0xc0080, 0x3}, -+}; -+ -+/* P0 message block parameter for training firmware */ -+static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { -+ {0x58000, 0x4000}, -+ {0x58002, 0x30}, -+ {0x58003, 0x1900}, -+ {0x58004, 0x4}, -+ {0x58005, 0x4}, -+ {0x58008, 0x17df}, -+ {0x58009, 0xc8}, -+ {0x5800b, 0x2}, -+ {0x5800d, 0x100}, -+ {0x5800e, 0xf}, -+ {0x58012, 0x310}, -+ {0x5801f, 0x1000}, -+ {0x58020, 0x3}, -+ {0x5802d, 0xb0b0}, -+ {0x5802e, 0xb0b0}, -+ {0x5802f, 0xbbbb}, -+ {0x58030, 0xbbbb}, -+ {0x58031, 0x606}, -+ {0x58032, 0x606}, -+ {0x58033, 0x5454}, -+ {0x58034, 0x5454}, -+ {0x58035, 0x4646}, -+ {0x58036, 0x4646}, -+ {0x58037, 0x2d2d}, -+ {0x58038, 0x2d2d}, -+ {0x58039, 0x8080}, -+ {0x5803a, 0x8080}, -+ {0x5803b, 0x1c1c}, -+ {0x5803c, 0x1c1c}, -+ {0x5803d, 0x1c1c}, -+ {0x5803e, 0x1c1c}, -+ {0x58041, 0xac84}, -+ {0x58042, 0xac84}, -+ {0x58043, 0x1b1b}, -+ {0x58044, 0x1b1b}, -+ {0x58045, 0x1010}, -+ {0x58046, 0x1010}, -+ {0x58047, 0x202}, -+ {0x58048, 0x202}, -+ {0x5804f, 0x8080}, -+ {0x58050, 0x8080}, -+ {0x58055, 0x404}, -+ {0x58056, 0x404}, -+ {0x58074, 0x2e}, -+ {0x58075, 0x50}, -+ {0x58080, 0x1}, -+ {0x58081, 0x4b00}, -+ {0x58082, 0x43}, -+}; -+ -+/* DRAM PHY init engine image for Pstate 0 */ -+static struct ddrphy_cfg_param ddr_phy_pie_fsp0_cfg[] = { -+ {0x908f0, 0x65}, -+ {0x908f1, 0x258}, -+ {0x908f2, 0x0}, -+ {0x908f3, 0x58}, -+ {0x908f4, 0x14}, -+ {0x908f5, 0x0}, -+ {0x908f6, 0xb0}, -+ {0x908f7, 0x0}, -+ {0x41008, 0xc9d8}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0xc808}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x2b00}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0xc958}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0xcd88}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x2b00}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0xc0d8}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0xd848}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x2b00}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0xc158}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0xddc8}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x2b00}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0xc1d8}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0xc308}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x2b00}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0xc558}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0xea08}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x2b00}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0xc5d8}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0xe308}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x2b00}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x48d8}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x4248}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x88d8}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x9648}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x2b00}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0xca58}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0xc108}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x2b00}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0xcb58}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0xc008}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x2b00}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0xd4d8}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0xc008}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0x20015, 0x0}, -+ {0x3004a, 0x0}, -+ {0x3004b, 0x0}, -+ {0x3104a, 0x0}, -+ {0x3104b, 0x0}, -+ {0x2004a, 0x1a3e}, -+ {0x2004b, 0x1a3e}, -+ {0x2004c, 0x2c0f}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x101}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20041, 0x1}, -+ {0x90802, 0x0}, -+ {0x20045, 0x2}, -+ {0x10057, 0x0}, -+ {0x11057, 0x0}, -+ {0x12057, 0x0}, -+ {0x13057, 0x0}, -+ {0x1000f, 0x1087}, -+ {0x1100f, 0x1087}, -+ {0x1200f, 0x1087}, -+ {0x1300f, 0x1087}, -+ {0x90803, 0x4}, -+ {0x90804, 0x82}, -+ {0x90805, 0x1}, -+ {0x90903, 0x0}, -+ {0x9090b, 0x2}, -+ {0x90811, 0x0}, -+ {0x90812, 0xff00}, -+ {0x20072, 0x3}, -+ {0x9080e, 0x3}, -+ {0x20073, 0x3}, -+ {0x9080f, 0x3}, -+}; -+ -+/* DRAM PHY init engine image */ -+static struct ddrphy_cfg_param ddr_phy_pie[] = { -+ {0x41000, 0x0}, -+ {0x41001, 0x0}, -+ {0x41002, 0x0}, -+ {0x41003, 0x0}, -+ {0x41004, 0x0}, -+ {0x41005, 0x0}, -+ {0x41006, 0x0}, -+ {0x41007, 0x0}, -+ {0x41388, 0xc028}, -+ {0x41389, 0x0}, -+ {0x4138a, 0x0}, -+ {0x4138b, 0x10}, -+ {0x4138c, 0x0}, -+ {0x4138d, 0x0}, -+ {0x4138e, 0x0}, -+ {0x4138f, 0x0}, -+ {0x41390, 0x0}, -+ {0x41391, 0x0}, -+ {0x41392, 0x0}, -+ {0x41393, 0x400}, -+ {0x41394, 0x0}, -+ {0x41395, 0x0}, -+ {0x41396, 0x0}, -+ {0x41397, 0x0}, -+ {0x41398, 0x0}, -+ {0x41399, 0x0}, -+ {0x4139a, 0x0}, -+ {0x4139b, 0x0}, -+ {0x4139c, 0x0}, -+ {0x4139d, 0x0}, -+ {0x4139e, 0x0}, -+ {0x4139f, 0x0}, -+ {0x413a0, 0xc858}, -+ {0x413a1, 0x0}, -+ {0x413a2, 0x0}, -+ {0x413a3, 0x10}, -+ {0x413a4, 0xe088}, -+ {0x413a5, 0x0}, -+ {0x413a6, 0x0}, -+ {0x413a7, 0x10}, -+ {0x413a8, 0xe038}, -+ {0x413a9, 0x0}, -+ {0x413aa, 0x0}, -+ {0x413ab, 0x10}, -+ {0x413ac, 0xc858}, -+ {0x413ad, 0x0}, -+ {0x413ae, 0x0}, -+ {0x413af, 0x10}, -+ {0x413b0, 0xc088}, -+ {0x413b1, 0x0}, -+ {0x413b2, 0x0}, -+ {0x413b3, 0x10}, -+ {0x413b4, 0x0}, -+ {0x413b5, 0x0}, -+ {0x413b6, 0x0}, -+ {0x413b7, 0x0}, -+ {0x413b8, 0xc028}, -+ {0x413b9, 0x0}, -+ {0x413ba, 0x0}, -+ {0x413bb, 0x10}, -+ {0x413bc, 0x0}, -+ {0x413bd, 0x0}, -+ {0x413be, 0x0}, -+ {0x413bf, 0x0}, -+ {0x413c0, 0x0}, -+ {0x413c1, 0x0}, -+ {0x413c2, 0x0}, -+ {0x413c3, 0x400}, -+ {0x413c4, 0x0}, -+ {0x413c5, 0x0}, -+ {0x413c6, 0x0}, -+ {0x413c7, 0x0}, -+ {0x413c8, 0x0}, -+ {0x413c9, 0x0}, -+ {0x413ca, 0x0}, -+ {0x413cb, 0x0}, -+ {0x413cc, 0x0}, -+ {0x413cd, 0x0}, -+ {0x413ce, 0x0}, -+ {0x413cf, 0x0}, -+ {0x413d0, 0xc858}, -+ {0x413d1, 0x0}, -+ {0x413d2, 0x0}, -+ {0x413d3, 0x10}, -+ {0x413d4, 0xe208}, -+ {0x413d5, 0x0}, -+ {0x413d6, 0x0}, -+ {0x413d7, 0x10}, -+ {0x413d8, 0xe038}, -+ {0x413d9, 0x0}, -+ {0x413da, 0x0}, -+ {0x413db, 0x10}, -+ {0x413dc, 0xc858}, -+ {0x413dd, 0x0}, -+ {0x413de, 0x0}, -+ {0x413df, 0x10}, -+ {0x413e0, 0xc208}, -+ {0x413e1, 0x0}, -+ {0x413e2, 0x0}, -+ {0x413e3, 0x10}, -+ {0x413e4, 0x0}, -+ {0x413e5, 0x0}, -+ {0x413e6, 0x0}, -+ {0x413e7, 0x0}, -+ {0x413e8, 0xce58}, -+ {0x413e9, 0x0}, -+ {0x413ea, 0x0}, -+ {0x413eb, 0x10}, -+ {0x413ec, 0xc208}, -+ {0x413ed, 0x0}, -+ {0x413ee, 0x0}, -+ {0x413ef, 0x10}, -+ {0x413f0, 0x0}, -+ {0x413f1, 0x0}, -+ {0x413f2, 0x0}, -+ {0x413f3, 0x0}, -+ {0x413f4, 0x0}, -+ {0x413f5, 0x0}, -+ {0x413f6, 0x0}, -+ {0x413f7, 0x0}, -+ {0x413f8, 0xc370}, -+ {0x413f9, 0x0}, -+ {0x413fa, 0x0}, -+ {0x413fb, 0x10}, -+ {0x413fc, 0x0}, -+ {0x413fd, 0x0}, -+ {0x413fe, 0x0}, -+ {0x413ff, 0x0}, -+ {0x41400, 0xc040}, -+ {0x41401, 0x0}, -+ {0x41402, 0x0}, -+ {0x41403, 0x10}, -+ {0x41404, 0x0}, -+ {0x41405, 0x0}, -+ {0x41406, 0x0}, -+ {0x41407, 0x10}, -+ {0x41408, 0xd2d8}, -+ {0x41409, 0x0}, -+ {0x4140a, 0x0}, -+ {0x4140b, 0x10}, -+ {0x4140c, 0xe008}, -+ {0x4140d, 0x0}, -+ {0x4140e, 0x0}, -+ {0x4140f, 0x10}, -+ {0x41410, 0x0}, -+ {0x41411, 0x0}, -+ {0x41412, 0x0}, -+ {0x41413, 0x5b00}, -+ {0x41414, 0x0}, -+ {0x41415, 0x0}, -+ {0x41416, 0x0}, -+ {0x41417, 0x0}, -+ {0x41418, 0xc0f0}, -+ {0x41419, 0x0}, -+ {0x4141a, 0x0}, -+ {0x4141b, 0x10}, -+ {0x4141c, 0x0}, -+ {0x4141d, 0x0}, -+ {0x4141e, 0x0}, -+ {0x4141f, 0x0}, -+ {0x41420, 0xcfd8}, -+ {0x41421, 0x0}, -+ {0x41422, 0x0}, -+ {0x41423, 0x10}, -+ {0x41424, 0xc008}, -+ {0x41425, 0x0}, -+ {0x41426, 0x0}, -+ {0x41427, 0x10}, -+ {0x41428, 0x0}, -+ {0x41429, 0x0}, -+ {0x4142a, 0x0}, -+ {0x4142b, 0x2b00}, -+ {0x4142c, 0x0}, -+ {0x4142d, 0x0}, -+ {0x4142e, 0x0}, -+ {0x4142f, 0x0}, -+ {0x41430, 0xd058}, -+ {0x41431, 0x0}, -+ {0x41432, 0x0}, -+ {0x41433, 0x10}, -+ {0x41434, 0xc008}, -+ {0x41435, 0x0}, -+ {0x41436, 0x0}, -+ {0x41437, 0x10}, -+ {0x41438, 0x0}, -+ {0x41439, 0x0}, -+ {0x4143a, 0x0}, -+ {0x4143b, 0x2b00}, -+ {0x4143c, 0x0}, -+ {0x4143d, 0x0}, -+ {0x4143e, 0x0}, -+ {0x4143f, 0x0}, -+ {0x41440, 0xd0d8}, -+ {0x41441, 0x0}, -+ {0x41442, 0x0}, -+ {0x41443, 0x10}, -+ {0x41444, 0xc088}, -+ {0x41445, 0x0}, -+ {0x41446, 0x0}, -+ {0x41447, 0x10}, -+ {0x41448, 0x0}, -+ {0x41449, 0x0}, -+ {0x4144a, 0x0}, -+ {0x4144b, 0x2b00}, -+ {0x4144c, 0x0}, -+ {0x4144d, 0x0}, -+ {0x4144e, 0x0}, -+ {0x4144f, 0x0}, -+ {0x41450, 0xd158}, -+ {0x41451, 0x0}, -+ {0x41452, 0x0}, -+ {0x41453, 0x10}, -+ {0x41454, 0xc008}, -+ {0x41455, 0x0}, -+ {0x41456, 0x0}, -+ {0x41457, 0x10}, -+ {0x41458, 0x0}, -+ {0x41459, 0x0}, -+ {0x4145a, 0x0}, -+ {0x4145b, 0x5b00}, -+ {0x4145c, 0x0}, -+ {0x4145d, 0x0}, -+ {0x4145e, 0x0}, -+ {0x4145f, 0x0}, -+ {0x41460, 0x402c}, -+ {0x41461, 0xd00}, -+ {0x41462, 0x1}, -+ {0x41463, 0x400}, -+ {0x41464, 0x4050}, -+ {0x41465, 0x800}, -+ {0x41466, 0x0}, -+ {0x41467, 0x0}, -+ {0x41468, 0x0}, -+ {0x41469, 0x0}, -+ {0x4146a, 0x0}, -+ {0x4146b, 0x400}, -+ {0x4146c, 0x0}, -+ {0x4146d, 0x0}, -+ {0x4146e, 0x0}, -+ {0x4146f, 0x0}, -+ {0x41470, 0x0}, -+ {0x41471, 0x0}, -+ {0x41472, 0x0}, -+ {0x41473, 0x400}, -+ {0x41474, 0x4050}, -+ {0x41475, 0x803}, -+ {0x41476, 0x0}, -+ {0x41477, 0x0}, -+ {0x41478, 0x0}, -+ {0x41479, 0x0}, -+ {0x4147a, 0x0}, -+ {0x4147b, 0x7f00}, -+ {0x4147c, 0x0}, -+ {0x4147d, 0x0}, -+ {0x4147e, 0x0}, -+ {0x4147f, 0x400}, -+ {0x41480, 0x407c}, -+ {0x41481, 0x0}, -+ {0x41482, 0x0}, -+ {0x41483, 0x400}, -+ {0x41484, 0x0}, -+ {0x41485, 0x0}, -+ {0x41486, 0x0}, -+ {0x41487, 0x0}, -+ {0x41488, 0x0}, -+ {0x41489, 0x0}, -+ {0x4148a, 0x0}, -+ {0x4148b, 0x400}, -+ {0x4148c, 0x0}, -+ {0x4148d, 0x0}, -+ {0x4148e, 0x1}, -+ {0x4148f, 0x0}, -+ {0x41490, 0x0}, -+ {0x41491, 0x0}, -+ {0x41492, 0x0}, -+ {0x41493, 0x400}, -+ {0x41494, 0x0}, -+ {0x41495, 0x0}, -+ {0x41496, 0x0}, -+ {0x41497, 0x0}, -+ {0x41498, 0x0}, -+ {0x41499, 0x0}, -+ {0x4149a, 0x0}, -+ {0x4149b, 0x0}, -+ {0x4149c, 0x0}, -+ {0x4149d, 0x0}, -+ {0x4149e, 0x0}, -+ {0x4149f, 0x0}, -+ {0x414a0, 0x802c}, -+ {0x414a1, 0xd00}, -+ {0x414a2, 0x1}, -+ {0x414a3, 0x410}, -+ {0x414a4, 0x8050}, -+ {0x414a5, 0x800}, -+ {0x414a6, 0x0}, -+ {0x414a7, 0x10}, -+ {0x414a8, 0x0}, -+ {0x414a9, 0x0}, -+ {0x414aa, 0x0}, -+ {0x414ab, 0x400}, -+ {0x414ac, 0x0}, -+ {0x414ad, 0x0}, -+ {0x414ae, 0x0}, -+ {0x414af, 0x0}, -+ {0x414b0, 0x0}, -+ {0x414b1, 0x0}, -+ {0x414b2, 0x0}, -+ {0x414b3, 0x400}, -+ {0x414b4, 0x8050}, -+ {0x414b5, 0x803}, -+ {0x414b6, 0x0}, -+ {0x414b7, 0x10}, -+ {0x414b8, 0x0}, -+ {0x414b9, 0x0}, -+ {0x414ba, 0x0}, -+ {0x414bb, 0x7f00}, -+ {0x414bc, 0x0}, -+ {0x414bd, 0x0}, -+ {0x414be, 0x0}, -+ {0x414bf, 0x400}, -+ {0x414c0, 0x807c}, -+ {0x414c1, 0x0}, -+ {0x414c2, 0x0}, -+ {0x414c3, 0x410}, -+ {0x414c4, 0x0}, -+ {0x414c5, 0x0}, -+ {0x414c6, 0x0}, -+ {0x414c7, 0x0}, -+ {0x414c8, 0x0}, -+ {0x414c9, 0x0}, -+ {0x414ca, 0x0}, -+ {0x414cb, 0x400}, -+ {0x414cc, 0x0}, -+ {0x414cd, 0x0}, -+ {0x414ce, 0x1}, -+ {0x414cf, 0x0}, -+ {0x414d0, 0x0}, -+ {0x414d1, 0x0}, -+ {0x414d2, 0x0}, -+ {0x414d3, 0x400}, -+ {0x414d4, 0x0}, -+ {0x414d5, 0x0}, -+ {0x414d6, 0x0}, -+ {0x414d7, 0x0}, -+ {0x414d8, 0x0}, -+ {0x414d9, 0x0}, -+ {0x414da, 0x0}, -+ {0x414db, 0x0}, -+ {0x414dc, 0x0}, -+ {0x414dd, 0x0}, -+ {0x414de, 0x0}, -+ {0x414df, 0x0}, -+ {0x414e0, 0x402c}, -+ {0x414e1, 0xd00}, -+ {0x414e2, 0x1}, -+ {0x414e3, 0x0}, -+ {0x414e4, 0x4050}, -+ {0x414e5, 0x800}, -+ {0x414e6, 0x0}, -+ {0x414e7, 0x0}, -+ {0x414e8, 0x0}, -+ {0x414e9, 0x0}, -+ {0x414ea, 0x0}, -+ {0x414eb, 0x0}, -+ {0x414ec, 0x0}, -+ {0x414ed, 0x0}, -+ {0x414ee, 0x0}, -+ {0x414ef, 0x0}, -+ {0x414f0, 0x0}, -+ {0x414f1, 0x0}, -+ {0x414f2, 0x0}, -+ {0x414f3, 0x0}, -+ {0x414f4, 0x4050}, -+ {0x414f5, 0x803}, -+ {0x414f6, 0x0}, -+ {0x414f7, 0x0}, -+ {0x414f8, 0x0}, -+ {0x414f9, 0x0}, -+ {0x414fa, 0x0}, -+ {0x414fb, 0x0}, -+ {0x414fc, 0x0}, -+ {0x414fd, 0x0}, -+ {0x414fe, 0x0}, -+ {0x414ff, 0x0}, -+ {0x41500, 0x0}, -+ {0x41501, 0x0}, -+ {0x41502, 0x0}, -+ {0x41503, 0x0}, -+ {0x41504, 0x4050}, -+ {0x41505, 0x800}, -+ {0x41506, 0x0}, -+ {0x41507, 0x0}, -+ {0x41508, 0x0}, -+ {0x41509, 0x0}, -+ {0x4150a, 0x0}, -+ {0x4150b, 0x6b00}, -+ {0x4150c, 0x0}, -+ {0x4150d, 0x0}, -+ {0x4150e, 0x0}, -+ {0x4150f, 0x400}, -+ {0x41510, 0x0}, -+ {0x41511, 0x0}, -+ {0x41512, 0x0}, -+ {0x41513, 0x0}, -+ {0x41514, 0x407c}, -+ {0x41515, 0x0}, -+ {0x41516, 0x0}, -+ {0x41517, 0x0}, -+ {0x41518, 0x0}, -+ {0x41519, 0x0}, -+ {0x4151a, 0x0}, -+ {0x4151b, 0x0}, -+ {0x4151c, 0x0}, -+ {0x4151d, 0x0}, -+ {0x4151e, 0x0}, -+ {0x4151f, 0x0}, -+ {0x41520, 0x0}, -+ {0x41521, 0x0}, -+ {0x41522, 0x1}, -+ {0x41523, 0x0}, -+ {0x41524, 0x0}, -+ {0x41525, 0x0}, -+ {0x41526, 0x0}, -+ {0x41527, 0x0}, -+ {0x41528, 0x0}, -+ {0x41529, 0x0}, -+ {0x4152a, 0x0}, -+ {0x4152b, 0x4b00}, -+ {0x4152c, 0x0}, -+ {0x4152d, 0x0}, -+ {0x4152e, 0x0}, -+ {0x4152f, 0x1800}, -+ {0x41530, 0x0}, -+ {0x41531, 0x0}, -+ {0x41532, 0x0}, -+ {0x41533, 0x0}, -+ {0x41534, 0x802c}, -+ {0x41535, 0xd00}, -+ {0x41536, 0x1}, -+ {0x41537, 0x10}, -+ {0x41538, 0x8050}, -+ {0x41539, 0x800}, -+ {0x4153a, 0x0}, -+ {0x4153b, 0x10}, -+ {0x4153c, 0x0}, -+ {0x4153d, 0x0}, -+ {0x4153e, 0x0}, -+ {0x4153f, 0x0}, -+ {0x41540, 0x0}, -+ {0x41541, 0x0}, -+ {0x41542, 0x0}, -+ {0x41543, 0x0}, -+ {0x41544, 0x0}, -+ {0x41545, 0x0}, -+ {0x41546, 0x0}, -+ {0x41547, 0x0}, -+ {0x41548, 0x8050}, -+ {0x41549, 0x803}, -+ {0x4154a, 0x0}, -+ {0x4154b, 0x10}, -+ {0x4154c, 0x0}, -+ {0x4154d, 0x0}, -+ {0x4154e, 0x0}, -+ {0x4154f, 0x0}, -+ {0x41550, 0x0}, -+ {0x41551, 0x0}, -+ {0x41552, 0x0}, -+ {0x41553, 0x0}, -+ {0x41554, 0x0}, -+ {0x41555, 0x0}, -+ {0x41556, 0x0}, -+ {0x41557, 0x0}, -+ {0x41558, 0x8050}, -+ {0x41559, 0x800}, -+ {0x4155a, 0x0}, -+ {0x4155b, 0x10}, -+ {0x4155c, 0x0}, -+ {0x4155d, 0x0}, -+ {0x4155e, 0x0}, -+ {0x4155f, 0x0}, -+ {0x41560, 0x0}, -+ {0x41561, 0x0}, -+ {0x41562, 0x0}, -+ {0x41563, 0x6b00}, -+ {0x41564, 0x0}, -+ {0x41565, 0x0}, -+ {0x41566, 0x0}, -+ {0x41567, 0x400}, -+ {0x41568, 0x807c}, -+ {0x41569, 0x0}, -+ {0x4156a, 0x0}, -+ {0x4156b, 0x10}, -+ {0x4156c, 0x0}, -+ {0x4156d, 0x0}, -+ {0x4156e, 0x0}, -+ {0x4156f, 0x0}, -+ {0x41570, 0x0}, -+ {0x41571, 0x0}, -+ {0x41572, 0x0}, -+ {0x41573, 0x0}, -+ {0x41574, 0x0}, -+ {0x41575, 0x0}, -+ {0x41576, 0x1}, -+ {0x41577, 0x0}, -+ {0x41578, 0x0}, -+ {0x41579, 0x0}, -+ {0x4157a, 0x0}, -+ {0x4157b, 0x7b00}, -+ {0x4157c, 0x0}, -+ {0x4157d, 0x0}, -+ {0x4157e, 0x0}, -+ {0x4157f, 0x2000}, -+ {0x41580, 0x402c}, -+ {0x41581, 0xd00}, -+ {0x41582, 0x1}, -+ {0x41583, 0x0}, -+ {0x41584, 0x5198}, -+ {0x41585, 0x803}, -+ {0x41586, 0x0}, -+ {0x41587, 0x0}, -+ {0x41588, 0x0}, -+ {0x41589, 0x0}, -+ {0x4158a, 0x0}, -+ {0x4158b, 0x3b00}, -+ {0x4158c, 0x0}, -+ {0x4158d, 0x0}, -+ {0x4158e, 0x0}, -+ {0x4158f, 0x0}, -+ {0x41590, 0x5218}, -+ {0x41591, 0x803}, -+ {0x41592, 0x0}, -+ {0x41593, 0x0}, -+ {0x41594, 0x0}, -+ {0x41595, 0x0}, -+ {0x41596, 0x0}, -+ {0x41597, 0x0}, -+ {0x41598, 0x0}, -+ {0x41599, 0x0}, -+ {0x4159a, 0x0}, -+ {0x4159b, 0x6b00}, -+ {0x4159c, 0x0}, -+ {0x4159d, 0x0}, -+ {0x4159e, 0x0}, -+ {0x4159f, 0x400}, -+ {0x415a0, 0x407c}, -+ {0x415a1, 0x0}, -+ {0x415a2, 0x0}, -+ {0x415a3, 0x0}, -+ {0x415a4, 0x0}, -+ {0x415a5, 0x0}, -+ {0x415a6, 0x0}, -+ {0x415a7, 0x0}, -+ {0x415a8, 0x0}, -+ {0x415a9, 0x0}, -+ {0x415aa, 0x0}, -+ {0x415ab, 0x0}, -+ {0x415ac, 0x0}, -+ {0x415ad, 0x0}, -+ {0x415ae, 0x1}, -+ {0x415af, 0x0}, -+ {0x415b0, 0x0}, -+ {0x415b1, 0x0}, -+ {0x415b2, 0x0}, -+ {0x415b3, 0x1b00}, -+ {0x415b4, 0x0}, -+ {0x415b5, 0x0}, -+ {0x415b6, 0x0}, -+ {0x415b7, 0x0}, -+ {0x415b8, 0x0}, -+ {0x415b9, 0x0}, -+ {0x415ba, 0x0}, -+ {0x415bb, 0x0}, -+ {0x415bc, 0x802c}, -+ {0x415bd, 0xd00}, -+ {0x415be, 0x1}, -+ {0x415bf, 0x10}, -+ {0x415c0, 0x9198}, -+ {0x415c1, 0x803}, -+ {0x415c2, 0x0}, -+ {0x415c3, 0x10}, -+ {0x415c4, 0x0}, -+ {0x415c5, 0x0}, -+ {0x415c6, 0x0}, -+ {0x415c7, 0x0}, -+ {0x415c8, 0x0}, -+ {0x415c9, 0x0}, -+ {0x415ca, 0x0}, -+ {0x415cb, 0x2b00}, -+ {0x415cc, 0x0}, -+ {0x415cd, 0x0}, -+ {0x415ce, 0x0}, -+ {0x415cf, 0x0}, -+ {0x415d0, 0x0}, -+ {0x415d1, 0x0}, -+ {0x415d2, 0x0}, -+ {0x415d3, 0x0}, -+ {0x415d4, 0x9218}, -+ {0x415d5, 0x803}, -+ {0x415d6, 0x0}, -+ {0x415d7, 0x10}, -+ {0x415d8, 0x0}, -+ {0x415d9, 0x0}, -+ {0x415da, 0x0}, -+ {0x415db, 0x6b00}, -+ {0x415dc, 0x0}, -+ {0x415dd, 0x0}, -+ {0x415de, 0x0}, -+ {0x415df, 0x400}, -+ {0x415e0, 0x0}, -+ {0x415e1, 0x0}, -+ {0x415e2, 0x0}, -+ {0x415e3, 0x0}, -+ {0x415e4, 0x807c}, -+ {0x415e5, 0x0}, -+ {0x415e6, 0x0}, -+ {0x415e7, 0x10}, -+ {0x415e8, 0x0}, -+ {0x415e9, 0x0}, -+ {0x415ea, 0x0}, -+ {0x415eb, 0x0}, -+ {0x415ec, 0x0}, -+ {0x415ed, 0x0}, -+ {0x415ee, 0x0}, -+ {0x415ef, 0x0}, -+ {0x415f0, 0x0}, -+ {0x415f1, 0x0}, -+ {0x415f2, 0x1}, -+ {0x415f3, 0x0}, -+ {0x415f4, 0x0}, -+ {0x415f5, 0x0}, -+ {0x415f6, 0x0}, -+ {0x415f7, 0x0}, -+ {0x415f8, 0x0}, -+ {0x415f9, 0x0}, -+ {0x415fa, 0x0}, -+ {0x415fb, 0xb00}, -+ {0x415fc, 0x0}, -+ {0x415fd, 0x0}, -+ {0x415fe, 0x0}, -+ {0x415ff, 0x400}, -+ {0x41600, 0x0}, -+ {0x41601, 0x0}, -+ {0x41602, 0x0}, -+ {0x41603, 0x0}, -+ {0x41604, 0x0}, -+ {0x41605, 0x0}, -+ {0x41606, 0x0}, -+ {0x41607, 0x0}, -+ {0x41608, 0x401c}, -+ {0x41609, 0xd0}, -+ {0x4160a, 0x1}, -+ {0x4160b, 0x0}, -+ {0x4160c, 0x4060}, -+ {0x4160d, 0x84}, -+ {0x4160e, 0x0}, -+ {0x4160f, 0x0}, -+ {0x41610, 0x0}, -+ {0x41611, 0x0}, -+ {0x41612, 0x0}, -+ {0x41613, 0xb00}, -+ {0x41614, 0x0}, -+ {0x41615, 0x0}, -+ {0x41616, 0x0}, -+ {0x41617, 0x800}, -+ {0x41618, 0x407c}, -+ {0x41619, 0x0}, -+ {0x4161a, 0x0}, -+ {0x4161b, 0x0}, -+ {0x4161c, 0x0}, -+ {0x4161d, 0x0}, -+ {0x4161e, 0x0}, -+ {0x4161f, 0x0}, -+ {0x41620, 0x0}, -+ {0x41621, 0x0}, -+ {0x41622, 0x0}, -+ {0x41623, 0x0}, -+ {0x41624, 0x4000}, -+ {0x41625, 0x0}, -+ {0x41626, 0x1}, -+ {0x41627, 0x0}, -+ {0x41628, 0x0}, -+ {0x41629, 0x0}, -+ {0x4162a, 0x0}, -+ {0x4162b, 0x0}, -+ {0x4162c, 0x402c}, -+ {0x4162d, 0xd00}, -+ {0x4162e, 0x1}, -+ {0x4162f, 0x0}, -+ {0x41630, 0x4020}, -+ {0x41631, 0x803}, -+ {0x41632, 0x0}, -+ {0x41633, 0x0}, -+ {0x41634, 0x0}, -+ {0x41635, 0x0}, -+ {0x41636, 0x0}, -+ {0x41637, 0x0}, -+ {0x41638, 0x0}, -+ {0x41639, 0x0}, -+ {0x4163a, 0x0}, -+ {0x4163b, 0x2b00}, -+ {0x4163c, 0x0}, -+ {0x4163d, 0x0}, -+ {0x4163e, 0x0}, -+ {0x4163f, 0x800}, -+ {0x41640, 0x0}, -+ {0x41641, 0x0}, -+ {0x41642, 0x0}, -+ {0x41643, 0x0}, -+ {0x41644, 0x407c}, -+ {0x41645, 0x0}, -+ {0x41646, 0x0}, -+ {0x41647, 0x0}, -+ {0x41648, 0x0}, -+ {0x41649, 0x0}, -+ {0x4164a, 0x0}, -+ {0x4164b, 0x0}, -+ {0x4164c, 0x0}, -+ {0x4164d, 0x0}, -+ {0x4164e, 0x0}, -+ {0x4164f, 0x0}, -+ {0x41650, 0x0}, -+ {0x41651, 0x0}, -+ {0x41652, 0x1}, -+ {0x41653, 0x0}, -+ {0x41654, 0x0}, -+ {0x41655, 0x0}, -+ {0x41656, 0x0}, -+ {0x41657, 0x0}, -+ {0x41658, 0x801c}, -+ {0x41659, 0xd0}, -+ {0x4165a, 0x1}, -+ {0x4165b, 0x10}, -+ {0x4165c, 0x8060}, -+ {0x4165d, 0x84}, -+ {0x4165e, 0x0}, -+ {0x4165f, 0x10}, -+ {0x41660, 0x0}, -+ {0x41661, 0x0}, -+ {0x41662, 0x0}, -+ {0x41663, 0xb00}, -+ {0x41664, 0x0}, -+ {0x41665, 0x0}, -+ {0x41666, 0x0}, -+ {0x41667, 0x800}, -+ {0x41668, 0x807c}, -+ {0x41669, 0x0}, -+ {0x4166a, 0x0}, -+ {0x4166b, 0x10}, -+ {0x4166c, 0x0}, -+ {0x4166d, 0x0}, -+ {0x4166e, 0x0}, -+ {0x4166f, 0x0}, -+ {0x41670, 0x0}, -+ {0x41671, 0x0}, -+ {0x41672, 0x0}, -+ {0x41673, 0x0}, -+ {0x41674, 0x8000}, -+ {0x41675, 0x0}, -+ {0x41676, 0x1}, -+ {0x41677, 0x10}, -+ {0x41678, 0x0}, -+ {0x41679, 0x0}, -+ {0x4167a, 0x0}, -+ {0x4167b, 0x0}, -+ {0x4167c, 0x802c}, -+ {0x4167d, 0xd00}, -+ {0x4167e, 0x1}, -+ {0x4167f, 0x10}, -+ {0x41680, 0x8020}, -+ {0x41681, 0x803}, -+ {0x41682, 0x0}, -+ {0x41683, 0x10}, -+ {0x41684, 0x0}, -+ {0x41685, 0x0}, -+ {0x41686, 0x0}, -+ {0x41687, 0x0}, -+ {0x41688, 0x0}, -+ {0x41689, 0x0}, -+ {0x4168a, 0x0}, -+ {0x4168b, 0x2b00}, -+ {0x4168c, 0x0}, -+ {0x4168d, 0x0}, -+ {0x4168e, 0x0}, -+ {0x4168f, 0x800}, -+ {0x41690, 0x0}, -+ {0x41691, 0x0}, -+ {0x41692, 0x0}, -+ {0x41693, 0x0}, -+ {0x41694, 0x807c}, -+ {0x41695, 0x0}, -+ {0x41696, 0x0}, -+ {0x41697, 0x10}, -+ {0x41698, 0x0}, -+ {0x41699, 0x0}, -+ {0x4169a, 0x0}, -+ {0x4169b, 0x0}, -+ {0x4169c, 0x0}, -+ {0x4169d, 0x0}, -+ {0x4169e, 0x0}, -+ {0x4169f, 0x0}, -+ {0x416a0, 0x0}, -+ {0x416a1, 0x0}, -+ {0x416a2, 0x1}, -+ {0x416a3, 0x0}, -+ {0x416a4, 0x0}, -+ {0x416a5, 0x0}, -+ {0x416a6, 0x0}, -+ {0x416a7, 0x0}, -+ {0x416a8, 0x402c}, -+ {0x416a9, 0xd00}, -+ {0x416aa, 0x1}, -+ {0x416ab, 0x0}, -+ {0x416ac, 0x4050}, -+ {0x416ad, 0x803}, -+ {0x416ae, 0x0}, -+ {0x416af, 0x0}, -+ {0x416b0, 0x0}, -+ {0x416b1, 0x0}, -+ {0x416b2, 0x0}, -+ {0x416b3, 0x1b00}, -+ {0x416b4, 0x0}, -+ {0x416b5, 0x0}, -+ {0x416b6, 0x0}, -+ {0x416b7, 0x0}, -+ {0x416b8, 0x0}, -+ {0x416b9, 0x0}, -+ {0x416ba, 0x0}, -+ {0x416bb, 0x0}, -+ {0x416bc, 0x0}, -+ {0x416bd, 0x0}, -+ {0x416be, 0x0}, -+ {0x416bf, 0x0}, -+ {0x416c0, 0x4050}, -+ {0x416c1, 0x803}, -+ {0x416c2, 0x0}, -+ {0x416c3, 0x5a00}, -+ {0x416c4, 0x0}, -+ {0x416c5, 0x0}, -+ {0x416c6, 0x0}, -+ {0x416c7, 0x0}, -+ {0x416c8, 0x0}, -+ {0x416c9, 0x0}, -+ {0x416ca, 0x0}, -+ {0x416cb, 0x0}, -+ {0x416cc, 0x0}, -+ {0x416cd, 0x0}, -+ {0x416ce, 0x0}, -+ {0x416cf, 0x0}, -+ {0x416d0, 0x0}, -+ {0x416d1, 0x0}, -+ {0x416d2, 0x0}, -+ {0x416d3, 0x100}, -+ {0x416d4, 0x0}, -+ {0x416d5, 0x0}, -+ {0x416d6, 0x0}, -+ {0x416d7, 0x0}, -+ {0x416d8, 0x4050}, -+ {0x416d9, 0x803}, -+ {0x416da, 0x0}, -+ {0x416db, 0x0}, -+ {0x416dc, 0x0}, -+ {0x416dd, 0x0}, -+ {0x416de, 0x0}, -+ {0x416df, 0x0}, -+ {0x416e0, 0x0}, -+ {0x416e1, 0x0}, -+ {0x416e2, 0x0}, -+ {0x416e3, 0x6b00}, -+ {0x416e4, 0x0}, -+ {0x416e5, 0x0}, -+ {0x416e6, 0x0}, -+ {0x416e7, 0x400}, -+ {0x416e8, 0x407c}, -+ {0x416e9, 0x0}, -+ {0x416ea, 0x0}, -+ {0x416eb, 0x0}, -+ {0x416ec, 0x0}, -+ {0x416ed, 0x0}, -+ {0x416ee, 0x0}, -+ {0x416ef, 0x0}, -+ {0x416f0, 0x0}, -+ {0x416f1, 0x0}, -+ {0x416f2, 0x0}, -+ {0x416f3, 0x3b00}, -+ {0x416f4, 0x0}, -+ {0x416f5, 0x0}, -+ {0x416f6, 0x0}, -+ {0x416f7, 0x0}, -+ {0x416f8, 0x0}, -+ {0x416f9, 0x0}, -+ {0x416fa, 0x0}, -+ {0x416fb, 0x0}, -+ {0x416fc, 0x0}, -+ {0x416fd, 0x0}, -+ {0x416fe, 0x1}, -+ {0x416ff, 0x0}, -+ {0x41700, 0x5758}, -+ {0x41701, 0x0}, -+ {0x41702, 0x0}, -+ {0x41703, 0x0}, -+ {0x41704, 0x4208}, -+ {0x41705, 0x0}, -+ {0x41706, 0x0}, -+ {0x41707, 0x0}, -+ {0x41708, 0x0}, -+ {0x41709, 0x0}, -+ {0x4170a, 0x0}, -+ {0x4170b, 0x4b00}, -+ {0x4170c, 0x0}, -+ {0x4170d, 0x0}, -+ {0x4170e, 0x0}, -+ {0x4170f, 0x0}, -+ {0x41710, 0x0}, -+ {0x41711, 0x0}, -+ {0x41712, 0x0}, -+ {0x41713, 0x0}, -+ {0x41714, 0x401c}, -+ {0x41715, 0xd0}, -+ {0x41716, 0x1}, -+ {0x41717, 0x0}, -+ {0x41718, 0x4060}, -+ {0x41719, 0x84}, -+ {0x4171a, 0x0}, -+ {0x4171b, 0x0}, -+ {0x4171c, 0x0}, -+ {0x4171d, 0x0}, -+ {0x4171e, 0x0}, -+ {0x4171f, 0x0}, -+ {0x41720, 0x0}, -+ {0x41721, 0x0}, -+ {0x41722, 0x0}, -+ {0x41723, 0x7b00}, -+ {0x41724, 0x0}, -+ {0x41725, 0x0}, -+ {0x41726, 0x0}, -+ {0x41727, 0x0}, -+ {0x41728, 0x407c}, -+ {0x41729, 0x0}, -+ {0x4172a, 0x0}, -+ {0x4172b, 0x0}, -+ {0x4172c, 0x0}, -+ {0x4172d, 0x0}, -+ {0x4172e, 0x0}, -+ {0x4172f, 0x0}, -+ {0x41730, 0x0}, -+ {0x41731, 0x0}, -+ {0x41732, 0x0}, -+ {0x41733, 0x0}, -+ {0x41734, 0x4000}, -+ {0x41735, 0x0}, -+ {0x41736, 0x1}, -+ {0x41737, 0x0}, -+ {0x41738, 0x0}, -+ {0x41739, 0x0}, -+ {0x4173a, 0x0}, -+ {0x4173b, 0x0}, -+ {0x4173c, 0x402c}, -+ {0x4173d, 0xd00}, -+ {0x4173e, 0x1}, -+ {0x4173f, 0x0}, -+ {0x41740, 0x4020}, -+ {0x41741, 0x803}, -+ {0x41742, 0x0}, -+ {0x41743, 0x0}, -+ {0x41744, 0x0}, -+ {0x41745, 0x0}, -+ {0x41746, 0x0}, -+ {0x41747, 0x0}, -+ {0x41748, 0x0}, -+ {0x41749, 0x0}, -+ {0x4174a, 0x0}, -+ {0x4174b, 0x2b00}, -+ {0x4174c, 0x0}, -+ {0x4174d, 0x0}, -+ {0x4174e, 0x0}, -+ {0x4174f, 0x800}, -+ {0x41750, 0x0}, -+ {0x41751, 0x0}, -+ {0x41752, 0x0}, -+ {0x41753, 0x0}, -+ {0x41754, 0x407c}, -+ {0x41755, 0x0}, -+ {0x41756, 0x0}, -+ {0x41757, 0x0}, -+ {0x41758, 0x0}, -+ {0x41759, 0x0}, -+ {0x4175a, 0x0}, -+ {0x4175b, 0x0}, -+ {0x4175c, 0x0}, -+ {0x4175d, 0x0}, -+ {0x4175e, 0x0}, -+ {0x4175f, 0x0}, -+ {0x41760, 0x4000}, -+ {0x41761, 0x0}, -+ {0x41762, 0x1}, -+ {0x41763, 0x0}, -+ {0x41764, 0x0}, -+ {0x41765, 0x0}, -+ {0x41766, 0x0}, -+ {0x41767, 0x0}, -+ {0x41768, 0x5758}, -+ {0x41769, 0x0}, -+ {0x4176a, 0x0}, -+ {0x4176b, 0x0}, -+ {0x4176c, 0x4008}, -+ {0x4176d, 0x0}, -+ {0x4176e, 0x0}, -+ {0x4176f, 0x0}, -+ {0x41770, 0x0}, -+ {0x41771, 0x0}, -+ {0x41772, 0x0}, -+ {0x41773, 0x0}, -+ {0x41774, 0x0}, -+ {0x41775, 0x0}, -+ {0x41776, 0x0}, -+ {0x41777, 0x0}, -+ {0x41778, 0x802c}, -+ {0x41779, 0xd00}, -+ {0x4177a, 0x1}, -+ {0x4177b, 0x10}, -+ {0x4177c, 0x8050}, -+ {0x4177d, 0x803}, -+ {0x4177e, 0x0}, -+ {0x4177f, 0x10}, -+ {0x41780, 0x0}, -+ {0x41781, 0x0}, -+ {0x41782, 0x0}, -+ {0x41783, 0x1b00}, -+ {0x41784, 0x0}, -+ {0x41785, 0x0}, -+ {0x41786, 0x0}, -+ {0x41787, 0x0}, -+ {0x41788, 0x0}, -+ {0x41789, 0x0}, -+ {0x4178a, 0x0}, -+ {0x4178b, 0x0}, -+ {0x4178c, 0x0}, -+ {0x4178d, 0x0}, -+ {0x4178e, 0x0}, -+ {0x4178f, 0x0}, -+ {0x41790, 0x8050}, -+ {0x41791, 0x803}, -+ {0x41792, 0x0}, -+ {0x41793, 0x5a10}, -+ {0x41794, 0x0}, -+ {0x41795, 0x0}, -+ {0x41796, 0x0}, -+ {0x41797, 0x0}, -+ {0x41798, 0x0}, -+ {0x41799, 0x0}, -+ {0x4179a, 0x0}, -+ {0x4179b, 0x0}, -+ {0x4179c, 0x0}, -+ {0x4179d, 0x0}, -+ {0x4179e, 0x0}, -+ {0x4179f, 0x0}, -+ {0x417a0, 0x0}, -+ {0x417a1, 0x0}, -+ {0x417a2, 0x0}, -+ {0x417a3, 0x100}, -+ {0x417a4, 0x0}, -+ {0x417a5, 0x0}, -+ {0x417a6, 0x0}, -+ {0x417a7, 0x0}, -+ {0x417a8, 0x8050}, -+ {0x417a9, 0x803}, -+ {0x417aa, 0x0}, -+ {0x417ab, 0x10}, -+ {0x417ac, 0x0}, -+ {0x417ad, 0x0}, -+ {0x417ae, 0x0}, -+ {0x417af, 0x0}, -+ {0x417b0, 0x0}, -+ {0x417b1, 0x0}, -+ {0x417b2, 0x0}, -+ {0x417b3, 0x6b00}, -+ {0x417b4, 0x0}, -+ {0x417b5, 0x0}, -+ {0x417b6, 0x0}, -+ {0x417b7, 0x400}, -+ {0x417b8, 0x807c}, -+ {0x417b9, 0x0}, -+ {0x417ba, 0x0}, -+ {0x417bb, 0x10}, -+ {0x417bc, 0x0}, -+ {0x417bd, 0x0}, -+ {0x417be, 0x0}, -+ {0x417bf, 0x0}, -+ {0x417c0, 0x0}, -+ {0x417c1, 0x0}, -+ {0x417c2, 0x0}, -+ {0x417c3, 0x3b00}, -+ {0x417c4, 0x0}, -+ {0x417c5, 0x0}, -+ {0x417c6, 0x0}, -+ {0x417c7, 0x0}, -+ {0x417c8, 0x0}, -+ {0x417c9, 0x0}, -+ {0x417ca, 0x0}, -+ {0x417cb, 0x0}, -+ {0x417cc, 0x0}, -+ {0x417cd, 0x0}, -+ {0x417ce, 0x1}, -+ {0x417cf, 0x0}, -+ {0x417d0, 0x9758}, -+ {0x417d1, 0x0}, -+ {0x417d2, 0x0}, -+ {0x417d3, 0x10}, -+ {0x417d4, 0x8208}, -+ {0x417d5, 0x0}, -+ {0x417d6, 0x0}, -+ {0x417d7, 0x10}, -+ {0x417d8, 0x0}, -+ {0x417d9, 0x0}, -+ {0x417da, 0x0}, -+ {0x417db, 0x4b00}, -+ {0x417dc, 0x0}, -+ {0x417dd, 0x0}, -+ {0x417de, 0x0}, -+ {0x417df, 0x0}, -+ {0x417e0, 0x0}, -+ {0x417e1, 0x0}, -+ {0x417e2, 0x0}, -+ {0x417e3, 0x0}, -+ {0x417e4, 0x801c}, -+ {0x417e5, 0xd0}, -+ {0x417e6, 0x1}, -+ {0x417e7, 0x10}, -+ {0x417e8, 0x8060}, -+ {0x417e9, 0x84}, -+ {0x417ea, 0x0}, -+ {0x417eb, 0x10}, -+ {0x417ec, 0x0}, -+ {0x417ed, 0x0}, -+ {0x417ee, 0x0}, -+ {0x417ef, 0x0}, -+ {0x417f0, 0x0}, -+ {0x417f1, 0x0}, -+ {0x417f2, 0x0}, -+ {0x417f3, 0x7b00}, -+ {0x417f4, 0x0}, -+ {0x417f5, 0x0}, -+ {0x417f6, 0x0}, -+ {0x417f7, 0x0}, -+ {0x417f8, 0x807c}, -+ {0x417f9, 0x0}, -+ {0x417fa, 0x0}, -+ {0x417fb, 0x10}, -+ {0x417fc, 0x0}, -+ {0x417fd, 0x0}, -+ {0x417fe, 0x0}, -+ {0x417ff, 0x0}, -+ {0x41800, 0x0}, -+ {0x41801, 0x0}, -+ {0x41802, 0x0}, -+ {0x41803, 0x0}, -+ {0x41804, 0x8000}, -+ {0x41805, 0x0}, -+ {0x41806, 0x1}, -+ {0x41807, 0x10}, -+ {0x41808, 0x0}, -+ {0x41809, 0x0}, -+ {0x4180a, 0x0}, -+ {0x4180b, 0x0}, -+ {0x4180c, 0x802c}, -+ {0x4180d, 0xd00}, -+ {0x4180e, 0x1}, -+ {0x4180f, 0x10}, -+ {0x41810, 0x8020}, -+ {0x41811, 0x803}, -+ {0x41812, 0x0}, -+ {0x41813, 0x10}, -+ {0x41814, 0x0}, -+ {0x41815, 0x0}, -+ {0x41816, 0x0}, -+ {0x41817, 0x0}, -+ {0x41818, 0x0}, -+ {0x41819, 0x0}, -+ {0x4181a, 0x0}, -+ {0x4181b, 0x2b00}, -+ {0x4181c, 0x0}, -+ {0x4181d, 0x0}, -+ {0x4181e, 0x0}, -+ {0x4181f, 0x800}, -+ {0x41820, 0x0}, -+ {0x41821, 0x0}, -+ {0x41822, 0x0}, -+ {0x41823, 0x0}, -+ {0x41824, 0x807c}, -+ {0x41825, 0x0}, -+ {0x41826, 0x0}, -+ {0x41827, 0x10}, -+ {0x41828, 0x0}, -+ {0x41829, 0x0}, -+ {0x4182a, 0x0}, -+ {0x4182b, 0x0}, -+ {0x4182c, 0x0}, -+ {0x4182d, 0x0}, -+ {0x4182e, 0x0}, -+ {0x4182f, 0x0}, -+ {0x41830, 0x8000}, -+ {0x41831, 0x0}, -+ {0x41832, 0x1}, -+ {0x41833, 0x10}, -+ {0x41834, 0x0}, -+ {0x41835, 0x0}, -+ {0x41836, 0x0}, -+ {0x41837, 0x0}, -+ {0x41838, 0x9758}, -+ {0x41839, 0x0}, -+ {0x4183a, 0x0}, -+ {0x4183b, 0x10}, -+ {0x4183c, 0x8008}, -+ {0x4183d, 0x0}, -+ {0x4183e, 0x0}, -+ {0x4183f, 0x10}, -+ {0x41840, 0x0}, -+ {0x41841, 0x0}, -+ {0x41842, 0x0}, -+ {0x41843, 0x0}, -+ {0x41844, 0x0}, -+ {0x41845, 0x0}, -+ {0x41846, 0x0}, -+ {0x41847, 0x0}, -+ {0x41848, 0xc068}, -+ {0x41849, 0x0}, -+ {0x4184a, 0x0}, -+ {0x4184b, 0x10}, -+ {0x4184c, 0x0}, -+ {0x4184d, 0x0}, -+ {0x4184e, 0x0}, -+ {0x4184f, 0x0}, -+ {0x41850, 0xd2d8}, -+ {0x41851, 0x0}, -+ {0x41852, 0x0}, -+ {0x41853, 0x10}, -+ {0x41854, 0xe008}, -+ {0x41855, 0x0}, -+ {0x41856, 0x0}, -+ {0x41857, 0x10}, -+ {0x41858, 0x0}, -+ {0x41859, 0x0}, -+ {0x4185a, 0x0}, -+ {0x4185b, 0x5b00}, -+ {0x4185c, 0x0}, -+ {0x4185d, 0x0}, -+ {0x4185e, 0x0}, -+ {0x4185f, 0x0}, -+ {0x41860, 0xc0f0}, -+ {0x41861, 0x0}, -+ {0x41862, 0x0}, -+ {0x41863, 0x10}, -+ {0x41864, 0x0}, -+ {0x41865, 0x0}, -+ {0x41866, 0x0}, -+ {0x41867, 0x0}, -+ {0x41868, 0xcfd8}, -+ {0x41869, 0x0}, -+ {0x4186a, 0x0}, -+ {0x4186b, 0x10}, -+ {0x4186c, 0xc008}, -+ {0x4186d, 0x0}, -+ {0x4186e, 0x0}, -+ {0x4186f, 0x10}, -+ {0x41870, 0x0}, -+ {0x41871, 0x0}, -+ {0x41872, 0x0}, -+ {0x41873, 0x2b00}, -+ {0x41874, 0x0}, -+ {0x41875, 0x0}, -+ {0x41876, 0x0}, -+ {0x41877, 0x0}, -+ {0x41878, 0xd058}, -+ {0x41879, 0x0}, -+ {0x4187a, 0x0}, -+ {0x4187b, 0x10}, -+ {0x4187c, 0xc008}, -+ {0x4187d, 0x0}, -+ {0x4187e, 0x0}, -+ {0x4187f, 0x10}, -+ {0x41880, 0x0}, -+ {0x41881, 0x0}, -+ {0x41882, 0x0}, -+ {0x41883, 0x2b00}, -+ {0x41884, 0x0}, -+ {0x41885, 0x0}, -+ {0x41886, 0x0}, -+ {0x41887, 0x0}, -+ {0x41888, 0xd0d8}, -+ {0x41889, 0x0}, -+ {0x4188a, 0x0}, -+ {0x4188b, 0x10}, -+ {0x4188c, 0xc088}, -+ {0x4188d, 0x0}, -+ {0x4188e, 0x0}, -+ {0x4188f, 0x10}, -+ {0x41890, 0x0}, -+ {0x41891, 0x0}, -+ {0x41892, 0x0}, -+ {0x41893, 0x2b00}, -+ {0x41894, 0x0}, -+ {0x41895, 0x0}, -+ {0x41896, 0x0}, -+ {0x41897, 0x0}, -+ {0x41898, 0xd158}, -+ {0x41899, 0x0}, -+ {0x4189a, 0x0}, -+ {0x4189b, 0x10}, -+ {0x4189c, 0xc008}, -+ {0x4189d, 0x0}, -+ {0x4189e, 0x0}, -+ {0x4189f, 0x10}, -+ {0x418a0, 0x0}, -+ {0x418a1, 0x0}, -+ {0x418a2, 0x0}, -+ {0x418a3, 0x5b00}, -+ {0x418a4, 0x0}, -+ {0x418a5, 0x0}, -+ {0x418a6, 0x0}, -+ {0x418a7, 0x0}, -+ {0x418a8, 0x402c}, -+ {0x418a9, 0xd00}, -+ {0x418aa, 0x1}, -+ {0x418ab, 0x400}, -+ {0x418ac, 0x4050}, -+ {0x418ad, 0x800}, -+ {0x418ae, 0x0}, -+ {0x418af, 0x0}, -+ {0x418b0, 0x0}, -+ {0x418b1, 0x0}, -+ {0x418b2, 0x0}, -+ {0x418b3, 0x400}, -+ {0x418b4, 0x4050}, -+ {0x418b5, 0x803}, -+ {0x418b6, 0x0}, -+ {0x418b7, 0x0}, -+ {0x418b8, 0x0}, -+ {0x418b9, 0x0}, -+ {0x418ba, 0x0}, -+ {0x418bb, 0x6f00}, -+ {0x418bc, 0x0}, -+ {0x418bd, 0x0}, -+ {0x418be, 0x0}, -+ {0x418bf, 0x400}, -+ {0x418c0, 0x407c}, -+ {0x418c1, 0x0}, -+ {0x418c2, 0x0}, -+ {0x418c3, 0x400}, -+ {0x418c4, 0x0}, -+ {0x418c5, 0x0}, -+ {0x418c6, 0x0}, -+ {0x418c7, 0x0}, -+ {0x418c8, 0x0}, -+ {0x418c9, 0x0}, -+ {0x418ca, 0x0}, -+ {0x418cb, 0x400}, -+ {0x418cc, 0x0}, -+ {0x418cd, 0x0}, -+ {0x418ce, 0x1}, -+ {0x418cf, 0x0}, -+ {0x418d0, 0x0}, -+ {0x418d1, 0x0}, -+ {0x418d2, 0x0}, -+ {0x418d3, 0x400}, -+ {0x418d4, 0x0}, -+ {0x418d5, 0x0}, -+ {0x418d6, 0x0}, -+ {0x418d7, 0x0}, -+ {0x418d8, 0x0}, -+ {0x418d9, 0x0}, -+ {0x418da, 0x0}, -+ {0x418db, 0x0}, -+ {0x418dc, 0x0}, -+ {0x418dd, 0x0}, -+ {0x418de, 0x0}, -+ {0x418df, 0x0}, -+ {0x418e0, 0x802c}, -+ {0x418e1, 0xd00}, -+ {0x418e2, 0x1}, -+ {0x418e3, 0x410}, -+ {0x418e4, 0x8050}, -+ {0x418e5, 0x800}, -+ {0x418e6, 0x0}, -+ {0x418e7, 0x10}, -+ {0x418e8, 0x0}, -+ {0x418e9, 0x0}, -+ {0x418ea, 0x0}, -+ {0x418eb, 0x400}, -+ {0x418ec, 0x8050}, -+ {0x418ed, 0x803}, -+ {0x418ee, 0x0}, -+ {0x418ef, 0x10}, -+ {0x418f0, 0x0}, -+ {0x418f1, 0x0}, -+ {0x418f2, 0x0}, -+ {0x418f3, 0x6f00}, -+ {0x418f4, 0x0}, -+ {0x418f5, 0x0}, -+ {0x418f6, 0x0}, -+ {0x418f7, 0x400}, -+ {0x418f8, 0x807c}, -+ {0x418f9, 0x0}, -+ {0x418fa, 0x0}, -+ {0x418fb, 0x410}, -+ {0x418fc, 0x0}, -+ {0x418fd, 0x0}, -+ {0x418fe, 0x0}, -+ {0x418ff, 0x0}, -+ {0x41900, 0x0}, -+ {0x41901, 0x0}, -+ {0x41902, 0x0}, -+ {0x41903, 0x400}, -+ {0x41904, 0x0}, -+ {0x41905, 0x0}, -+ {0x41906, 0x1}, -+ {0x41907, 0x0}, -+ {0x41908, 0x0}, -+ {0x41909, 0x0}, -+ {0x4190a, 0x0}, -+ {0x4190b, 0x400}, -+ {0x4190c, 0x0}, -+ {0x4190d, 0x0}, -+ {0x4190e, 0x0}, -+ {0x4190f, 0x0}, -+ {0x41910, 0x0}, -+ {0x41911, 0x0}, -+ {0x41912, 0x0}, -+ {0x41913, 0x0}, -+ {0x41914, 0x0}, -+ {0x41915, 0x0}, -+ {0x41916, 0x0}, -+ {0x41917, 0x0}, -+ {0x41918, 0x402c}, -+ {0x41919, 0xd00}, -+ {0x4191a, 0x1}, -+ {0x4191b, 0x0}, -+ {0x4191c, 0x4050}, -+ {0x4191d, 0x800}, -+ {0x4191e, 0x0}, -+ {0x4191f, 0x0}, -+ {0x41920, 0x0}, -+ {0x41921, 0x0}, -+ {0x41922, 0x0}, -+ {0x41923, 0x0}, -+ {0x41924, 0x4050}, -+ {0x41925, 0x803}, -+ {0x41926, 0x0}, -+ {0x41927, 0x0}, -+ {0x41928, 0x0}, -+ {0x41929, 0x0}, -+ {0x4192a, 0x0}, -+ {0x4192b, 0x0}, -+ {0x4192c, 0x4050}, -+ {0x4192d, 0x800}, -+ {0x4192e, 0x0}, -+ {0x4192f, 0x0}, -+ {0x41930, 0x0}, -+ {0x41931, 0x0}, -+ {0x41932, 0x0}, -+ {0x41933, 0x4b00}, -+ {0x41934, 0x0}, -+ {0x41935, 0x0}, -+ {0x41936, 0x0}, -+ {0x41937, 0x400}, -+ {0x41938, 0x0}, -+ {0x41939, 0x0}, -+ {0x4193a, 0x0}, -+ {0x4193b, 0x0}, -+ {0x4193c, 0x407c}, -+ {0x4193d, 0x0}, -+ {0x4193e, 0x0}, -+ {0x4193f, 0x0}, -+ {0x41940, 0x0}, -+ {0x41941, 0x0}, -+ {0x41942, 0x0}, -+ {0x41943, 0x0}, -+ {0x41944, 0x0}, -+ {0x41945, 0x0}, -+ {0x41946, 0x0}, -+ {0x41947, 0x0}, -+ {0x41948, 0x0}, -+ {0x41949, 0x0}, -+ {0x4194a, 0x1}, -+ {0x4194b, 0x0}, -+ {0x4194c, 0x0}, -+ {0x4194d, 0x0}, -+ {0x4194e, 0x0}, -+ {0x4194f, 0x0}, -+ {0x41950, 0x0}, -+ {0x41951, 0x0}, -+ {0x41952, 0x0}, -+ {0x41953, 0x4b00}, -+ {0x41954, 0x0}, -+ {0x41955, 0x0}, -+ {0x41956, 0x0}, -+ {0x41957, 0x1800}, -+ {0x41958, 0x0}, -+ {0x41959, 0x0}, -+ {0x4195a, 0x0}, -+ {0x4195b, 0x0}, -+ {0x4195c, 0x802c}, -+ {0x4195d, 0xd00}, -+ {0x4195e, 0x1}, -+ {0x4195f, 0x10}, -+ {0x41960, 0x8050}, -+ {0x41961, 0x800}, -+ {0x41962, 0x0}, -+ {0x41963, 0x10}, -+ {0x41964, 0x0}, -+ {0x41965, 0x0}, -+ {0x41966, 0x0}, -+ {0x41967, 0x0}, -+ {0x41968, 0x8050}, -+ {0x41969, 0x803}, -+ {0x4196a, 0x0}, -+ {0x4196b, 0x10}, -+ {0x4196c, 0x0}, -+ {0x4196d, 0x0}, -+ {0x4196e, 0x0}, -+ {0x4196f, 0x0}, -+ {0x41970, 0x8050}, -+ {0x41971, 0x800}, -+ {0x41972, 0x0}, -+ {0x41973, 0x10}, -+ {0x41974, 0x0}, -+ {0x41975, 0x0}, -+ {0x41976, 0x0}, -+ {0x41977, 0x0}, -+ {0x41978, 0x0}, -+ {0x41979, 0x0}, -+ {0x4197a, 0x0}, -+ {0x4197b, 0x4b00}, -+ {0x4197c, 0x0}, -+ {0x4197d, 0x0}, -+ {0x4197e, 0x0}, -+ {0x4197f, 0x400}, -+ {0x41980, 0x807c}, -+ {0x41981, 0x0}, -+ {0x41982, 0x0}, -+ {0x41983, 0x10}, -+ {0x41984, 0x0}, -+ {0x41985, 0x0}, -+ {0x41986, 0x0}, -+ {0x41987, 0x0}, -+ {0x41988, 0x0}, -+ {0x41989, 0x0}, -+ {0x4198a, 0x0}, -+ {0x4198b, 0x0}, -+ {0x4198c, 0x0}, -+ {0x4198d, 0x0}, -+ {0x4198e, 0x1}, -+ {0x4198f, 0x0}, -+ {0x41990, 0x0}, -+ {0x41991, 0x0}, -+ {0x41992, 0x0}, -+ {0x41993, 0x5b00}, -+ {0x41994, 0x0}, -+ {0x41995, 0x0}, -+ {0x41996, 0x0}, -+ {0x41997, 0x2000}, -+ {0x41998, 0x402c}, -+ {0x41999, 0xd00}, -+ {0x4199a, 0x1}, -+ {0x4199b, 0x0}, -+ {0x4199c, 0x5198}, -+ {0x4199d, 0x803}, -+ {0x4199e, 0x0}, -+ {0x4199f, 0x0}, -+ {0x419a0, 0x0}, -+ {0x419a1, 0x0}, -+ {0x419a2, 0x0}, -+ {0x419a3, 0x1b00}, -+ {0x419a4, 0x0}, -+ {0x419a5, 0x0}, -+ {0x419a6, 0x0}, -+ {0x419a7, 0x0}, -+ {0x419a8, 0x5218}, -+ {0x419a9, 0x803}, -+ {0x419aa, 0x0}, -+ {0x419ab, 0x0}, -+ {0x419ac, 0x0}, -+ {0x419ad, 0x0}, -+ {0x419ae, 0x0}, -+ {0x419af, 0x0}, -+ {0x419b0, 0x0}, -+ {0x419b1, 0x0}, -+ {0x419b2, 0x0}, -+ {0x419b3, 0x4b00}, -+ {0x419b4, 0x0}, -+ {0x419b5, 0x0}, -+ {0x419b6, 0x0}, -+ {0x419b7, 0x400}, -+ {0x419b8, 0x407c}, -+ {0x419b9, 0x0}, -+ {0x419ba, 0x0}, -+ {0x419bb, 0x0}, -+ {0x419bc, 0x0}, -+ {0x419bd, 0x0}, -+ {0x419be, 0x0}, -+ {0x419bf, 0x0}, -+ {0x419c0, 0x0}, -+ {0x419c1, 0x0}, -+ {0x419c2, 0x0}, -+ {0x419c3, 0x0}, -+ {0x419c4, 0x0}, -+ {0x419c5, 0x0}, -+ {0x419c6, 0x1}, -+ {0x419c7, 0x0}, -+ {0x419c8, 0x0}, -+ {0x419c9, 0x0}, -+ {0x419ca, 0x0}, -+ {0x419cb, 0x1b00}, -+ {0x419cc, 0x0}, -+ {0x419cd, 0x0}, -+ {0x419ce, 0x0}, -+ {0x419cf, 0x0}, -+ {0x419d0, 0x0}, -+ {0x419d1, 0x0}, -+ {0x419d2, 0x0}, -+ {0x419d3, 0x0}, -+ {0x419d4, 0x802c}, -+ {0x419d5, 0xd00}, -+ {0x419d6, 0x1}, -+ {0x419d7, 0x10}, -+ {0x419d8, 0x9198}, -+ {0x419d9, 0x803}, -+ {0x419da, 0x0}, -+ {0x419db, 0x10}, -+ {0x419dc, 0x0}, -+ {0x419dd, 0x0}, -+ {0x419de, 0x0}, -+ {0x419df, 0x0}, -+ {0x419e0, 0x0}, -+ {0x419e1, 0x0}, -+ {0x419e2, 0x0}, -+ {0x419e3, 0x0}, -+ {0x419e4, 0x0}, -+ {0x419e5, 0x0}, -+ {0x419e6, 0x0}, -+ {0x419e7, 0x0}, -+ {0x419e8, 0x0}, -+ {0x419e9, 0x0}, -+ {0x419ea, 0x0}, -+ {0x419eb, 0x0}, -+ {0x419ec, 0x9218}, -+ {0x419ed, 0x803}, -+ {0x419ee, 0x0}, -+ {0x419ef, 0x10}, -+ {0x419f0, 0x0}, -+ {0x419f1, 0x0}, -+ {0x419f2, 0x0}, -+ {0x419f3, 0x4b00}, -+ {0x419f4, 0x0}, -+ {0x419f5, 0x0}, -+ {0x419f6, 0x0}, -+ {0x419f7, 0x400}, -+ {0x419f8, 0x0}, -+ {0x419f9, 0x0}, -+ {0x419fa, 0x0}, -+ {0x419fb, 0x0}, -+ {0x419fc, 0x807c}, -+ {0x419fd, 0x0}, -+ {0x419fe, 0x0}, -+ {0x419ff, 0x10}, -+ {0x41a00, 0x0}, -+ {0x41a01, 0x0}, -+ {0x41a02, 0x0}, -+ {0x41a03, 0x0}, -+ {0x41a04, 0x0}, -+ {0x41a05, 0x0}, -+ {0x41a06, 0x0}, -+ {0x41a07, 0x0}, -+ {0x41a08, 0x0}, -+ {0x41a09, 0x0}, -+ {0x41a0a, 0x1}, -+ {0x41a0b, 0x0}, -+ {0x41a0c, 0x0}, -+ {0x41a0d, 0x0}, -+ {0x41a0e, 0x0}, -+ {0x41a0f, 0x0}, -+ {0x41a10, 0x0}, -+ {0x41a11, 0x0}, -+ {0x41a12, 0x0}, -+ {0x41a13, 0xb00}, -+ {0x41a14, 0x0}, -+ {0x41a15, 0x0}, -+ {0x41a16, 0x0}, -+ {0x41a17, 0x400}, -+ {0x41a18, 0x0}, -+ {0x41a19, 0x0}, -+ {0x41a1a, 0x0}, -+ {0x41a1b, 0x0}, -+ {0x41a1c, 0x0}, -+ {0x41a1d, 0x0}, -+ {0x41a1e, 0x0}, -+ {0x41a1f, 0x0}, -+ {0x41a20, 0x401c}, -+ {0x41a21, 0xd0}, -+ {0x41a22, 0x1}, -+ {0x41a23, 0x0}, -+ {0x41a24, 0x4060}, -+ {0x41a25, 0x84}, -+ {0x41a26, 0x0}, -+ {0x41a27, 0x0}, -+ {0x41a28, 0x0}, -+ {0x41a29, 0x0}, -+ {0x41a2a, 0x0}, -+ {0x41a2b, 0xb00}, -+ {0x41a2c, 0x0}, -+ {0x41a2d, 0x0}, -+ {0x41a2e, 0x0}, -+ {0x41a2f, 0x800}, -+ {0x41a30, 0x407c}, -+ {0x41a31, 0x0}, -+ {0x41a32, 0x0}, -+ {0x41a33, 0x0}, -+ {0x41a34, 0x0}, -+ {0x41a35, 0x0}, -+ {0x41a36, 0x0}, -+ {0x41a37, 0x0}, -+ {0x41a38, 0x0}, -+ {0x41a39, 0x0}, -+ {0x41a3a, 0x0}, -+ {0x41a3b, 0x0}, -+ {0x41a3c, 0x4000}, -+ {0x41a3d, 0x0}, -+ {0x41a3e, 0x1}, -+ {0x41a3f, 0x0}, -+ {0x41a40, 0x0}, -+ {0x41a41, 0x0}, -+ {0x41a42, 0x0}, -+ {0x41a43, 0x0}, -+ {0x41a44, 0x402c}, -+ {0x41a45, 0xd00}, -+ {0x41a46, 0x1}, -+ {0x41a47, 0x0}, -+ {0x41a48, 0x4020}, -+ {0x41a49, 0x803}, -+ {0x41a4a, 0x0}, -+ {0x41a4b, 0x0}, -+ {0x41a4c, 0x0}, -+ {0x41a4d, 0x0}, -+ {0x41a4e, 0x0}, -+ {0x41a4f, 0x0}, -+ {0x41a50, 0x0}, -+ {0x41a51, 0x0}, -+ {0x41a52, 0x0}, -+ {0x41a53, 0x2b00}, -+ {0x41a54, 0x0}, -+ {0x41a55, 0x0}, -+ {0x41a56, 0x0}, -+ {0x41a57, 0x800}, -+ {0x41a58, 0x0}, -+ {0x41a59, 0x0}, -+ {0x41a5a, 0x0}, -+ {0x41a5b, 0x0}, -+ {0x41a5c, 0x407c}, -+ {0x41a5d, 0x0}, -+ {0x41a5e, 0x0}, -+ {0x41a5f, 0x0}, -+ {0x41a60, 0x0}, -+ {0x41a61, 0x0}, -+ {0x41a62, 0x0}, -+ {0x41a63, 0x0}, -+ {0x41a64, 0x0}, -+ {0x41a65, 0x0}, -+ {0x41a66, 0x0}, -+ {0x41a67, 0x0}, -+ {0x41a68, 0x0}, -+ {0x41a69, 0x0}, -+ {0x41a6a, 0x1}, -+ {0x41a6b, 0x0}, -+ {0x41a6c, 0x0}, -+ {0x41a6d, 0x0}, -+ {0x41a6e, 0x0}, -+ {0x41a6f, 0x0}, -+ {0x41a70, 0x801c}, -+ {0x41a71, 0xd0}, -+ {0x41a72, 0x1}, -+ {0x41a73, 0x10}, -+ {0x41a74, 0x8060}, -+ {0x41a75, 0x84}, -+ {0x41a76, 0x0}, -+ {0x41a77, 0x10}, -+ {0x41a78, 0x0}, -+ {0x41a79, 0x0}, -+ {0x41a7a, 0x0}, -+ {0x41a7b, 0xb00}, -+ {0x41a7c, 0x0}, -+ {0x41a7d, 0x0}, -+ {0x41a7e, 0x0}, -+ {0x41a7f, 0x800}, -+ {0x41a80, 0x807c}, -+ {0x41a81, 0x0}, -+ {0x41a82, 0x0}, -+ {0x41a83, 0x10}, -+ {0x41a84, 0x0}, -+ {0x41a85, 0x0}, -+ {0x41a86, 0x0}, -+ {0x41a87, 0x0}, -+ {0x41a88, 0x0}, -+ {0x41a89, 0x0}, -+ {0x41a8a, 0x0}, -+ {0x41a8b, 0x0}, -+ {0x41a8c, 0x8000}, -+ {0x41a8d, 0x0}, -+ {0x41a8e, 0x1}, -+ {0x41a8f, 0x10}, -+ {0x41a90, 0x0}, -+ {0x41a91, 0x0}, -+ {0x41a92, 0x0}, -+ {0x41a93, 0x0}, -+ {0x41a94, 0x802c}, -+ {0x41a95, 0xd00}, -+ {0x41a96, 0x1}, -+ {0x41a97, 0x10}, -+ {0x41a98, 0x8020}, -+ {0x41a99, 0x803}, -+ {0x41a9a, 0x0}, -+ {0x41a9b, 0x10}, -+ {0x41a9c, 0x0}, -+ {0x41a9d, 0x0}, -+ {0x41a9e, 0x0}, -+ {0x41a9f, 0x0}, -+ {0x41aa0, 0x0}, -+ {0x41aa1, 0x0}, -+ {0x41aa2, 0x0}, -+ {0x41aa3, 0x2b00}, -+ {0x41aa4, 0x0}, -+ {0x41aa5, 0x0}, -+ {0x41aa6, 0x0}, -+ {0x41aa7, 0x800}, -+ {0x41aa8, 0x0}, -+ {0x41aa9, 0x0}, -+ {0x41aaa, 0x0}, -+ {0x41aab, 0x0}, -+ {0x41aac, 0x807c}, -+ {0x41aad, 0x0}, -+ {0x41aae, 0x0}, -+ {0x41aaf, 0x10}, -+ {0x41ab0, 0x0}, -+ {0x41ab1, 0x0}, -+ {0x41ab2, 0x0}, -+ {0x41ab3, 0x0}, -+ {0x41ab4, 0x0}, -+ {0x41ab5, 0x0}, -+ {0x41ab6, 0x0}, -+ {0x41ab7, 0x0}, -+ {0x41ab8, 0x0}, -+ {0x41ab9, 0x0}, -+ {0x41aba, 0x1}, -+ {0x41abb, 0x0}, -+ {0x41abc, 0x0}, -+ {0x41abd, 0x0}, -+ {0x41abe, 0x0}, -+ {0x41abf, 0x0}, -+ {0x41ac0, 0x402c}, -+ {0x41ac1, 0xd00}, -+ {0x41ac2, 0x1}, -+ {0x41ac3, 0x0}, -+ {0x41ac4, 0x4050}, -+ {0x41ac5, 0x803}, -+ {0x41ac6, 0x0}, -+ {0x41ac7, 0x0}, -+ {0x41ac8, 0x0}, -+ {0x41ac9, 0x0}, -+ {0x41aca, 0x0}, -+ {0x41acb, 0x0}, -+ {0x41acc, 0x0}, -+ {0x41acd, 0x0}, -+ {0x41ace, 0x0}, -+ {0x41acf, 0x0}, -+ {0x41ad0, 0x0}, -+ {0x41ad1, 0x0}, -+ {0x41ad2, 0x0}, -+ {0x41ad3, 0x0}, -+ {0x41ad4, 0x0}, -+ {0x41ad5, 0x0}, -+ {0x41ad6, 0x0}, -+ {0x41ad7, 0x0}, -+ {0x41ad8, 0x4050}, -+ {0x41ad9, 0x803}, -+ {0x41ada, 0x0}, -+ {0x41adb, 0x5a00}, -+ {0x41adc, 0x0}, -+ {0x41add, 0x0}, -+ {0x41ade, 0x0}, -+ {0x41adf, 0x0}, -+ {0x41ae0, 0x0}, -+ {0x41ae1, 0x0}, -+ {0x41ae2, 0x0}, -+ {0x41ae3, 0x100}, -+ {0x41ae4, 0x0}, -+ {0x41ae5, 0x0}, -+ {0x41ae6, 0x0}, -+ {0x41ae7, 0x0}, -+ {0x41ae8, 0x4050}, -+ {0x41ae9, 0x803}, -+ {0x41aea, 0x0}, -+ {0x41aeb, 0x0}, -+ {0x41aec, 0x0}, -+ {0x41aed, 0x0}, -+ {0x41aee, 0x0}, -+ {0x41aef, 0x0}, -+ {0x41af0, 0x0}, -+ {0x41af1, 0x0}, -+ {0x41af2, 0x0}, -+ {0x41af3, 0x4b00}, -+ {0x41af4, 0x0}, -+ {0x41af5, 0x0}, -+ {0x41af6, 0x0}, -+ {0x41af7, 0x400}, -+ {0x41af8, 0x407c}, -+ {0x41af9, 0x0}, -+ {0x41afa, 0x0}, -+ {0x41afb, 0x0}, -+ {0x41afc, 0x0}, -+ {0x41afd, 0x0}, -+ {0x41afe, 0x0}, -+ {0x41aff, 0x0}, -+ {0x41b00, 0x0}, -+ {0x41b01, 0x0}, -+ {0x41b02, 0x0}, -+ {0x41b03, 0x3b00}, -+ {0x41b04, 0x0}, -+ {0x41b05, 0x0}, -+ {0x41b06, 0x0}, -+ {0x41b07, 0x0}, -+ {0x41b08, 0x0}, -+ {0x41b09, 0x0}, -+ {0x41b0a, 0x0}, -+ {0x41b0b, 0x0}, -+ {0x41b0c, 0x0}, -+ {0x41b0d, 0x0}, -+ {0x41b0e, 0x1}, -+ {0x41b0f, 0x0}, -+ {0x41b10, 0x5758}, -+ {0x41b11, 0x0}, -+ {0x41b12, 0x0}, -+ {0x41b13, 0x0}, -+ {0x41b14, 0x4208}, -+ {0x41b15, 0x0}, -+ {0x41b16, 0x0}, -+ {0x41b17, 0x0}, -+ {0x41b18, 0x0}, -+ {0x41b19, 0x0}, -+ {0x41b1a, 0x0}, -+ {0x41b1b, 0x4b00}, -+ {0x41b1c, 0x0}, -+ {0x41b1d, 0x0}, -+ {0x41b1e, 0x0}, -+ {0x41b1f, 0x0}, -+ {0x41b20, 0x0}, -+ {0x41b21, 0x0}, -+ {0x41b22, 0x0}, -+ {0x41b23, 0x0}, -+ {0x41b24, 0x401c}, -+ {0x41b25, 0xd0}, -+ {0x41b26, 0x1}, -+ {0x41b27, 0x0}, -+ {0x41b28, 0x4060}, -+ {0x41b29, 0x84}, -+ {0x41b2a, 0x0}, -+ {0x41b2b, 0x0}, -+ {0x41b2c, 0x0}, -+ {0x41b2d, 0x0}, -+ {0x41b2e, 0x0}, -+ {0x41b2f, 0x0}, -+ {0x41b30, 0x0}, -+ {0x41b31, 0x0}, -+ {0x41b32, 0x0}, -+ {0x41b33, 0x7b00}, -+ {0x41b34, 0x0}, -+ {0x41b35, 0x0}, -+ {0x41b36, 0x0}, -+ {0x41b37, 0x0}, -+ {0x41b38, 0x407c}, -+ {0x41b39, 0x0}, -+ {0x41b3a, 0x0}, -+ {0x41b3b, 0x0}, -+ {0x41b3c, 0x0}, -+ {0x41b3d, 0x0}, -+ {0x41b3e, 0x0}, -+ {0x41b3f, 0x0}, -+ {0x41b40, 0x0}, -+ {0x41b41, 0x0}, -+ {0x41b42, 0x0}, -+ {0x41b43, 0x0}, -+ {0x41b44, 0x4000}, -+ {0x41b45, 0x0}, -+ {0x41b46, 0x1}, -+ {0x41b47, 0x0}, -+ {0x41b48, 0x0}, -+ {0x41b49, 0x0}, -+ {0x41b4a, 0x0}, -+ {0x41b4b, 0x0}, -+ {0x41b4c, 0x402c}, -+ {0x41b4d, 0xd00}, -+ {0x41b4e, 0x1}, -+ {0x41b4f, 0x0}, -+ {0x41b50, 0x4020}, -+ {0x41b51, 0x803}, -+ {0x41b52, 0x0}, -+ {0x41b53, 0x0}, -+ {0x41b54, 0x0}, -+ {0x41b55, 0x0}, -+ {0x41b56, 0x0}, -+ {0x41b57, 0x0}, -+ {0x41b58, 0x0}, -+ {0x41b59, 0x0}, -+ {0x41b5a, 0x0}, -+ {0x41b5b, 0x2b00}, -+ {0x41b5c, 0x0}, -+ {0x41b5d, 0x0}, -+ {0x41b5e, 0x0}, -+ {0x41b5f, 0x800}, -+ {0x41b60, 0x0}, -+ {0x41b61, 0x0}, -+ {0x41b62, 0x0}, -+ {0x41b63, 0x0}, -+ {0x41b64, 0x407c}, -+ {0x41b65, 0x0}, -+ {0x41b66, 0x0}, -+ {0x41b67, 0x0}, -+ {0x41b68, 0x0}, -+ {0x41b69, 0x0}, -+ {0x41b6a, 0x0}, -+ {0x41b6b, 0x0}, -+ {0x41b6c, 0x0}, -+ {0x41b6d, 0x0}, -+ {0x41b6e, 0x0}, -+ {0x41b6f, 0x0}, -+ {0x41b70, 0x4000}, -+ {0x41b71, 0x0}, -+ {0x41b72, 0x1}, -+ {0x41b73, 0x0}, -+ {0x41b74, 0x0}, -+ {0x41b75, 0x0}, -+ {0x41b76, 0x0}, -+ {0x41b77, 0x0}, -+ {0x41b78, 0x5758}, -+ {0x41b79, 0x0}, -+ {0x41b7a, 0x0}, -+ {0x41b7b, 0x0}, -+ {0x41b7c, 0x4008}, -+ {0x41b7d, 0x0}, -+ {0x41b7e, 0x0}, -+ {0x41b7f, 0x0}, -+ {0x41b80, 0x0}, -+ {0x41b81, 0x0}, -+ {0x41b82, 0x0}, -+ {0x41b83, 0x0}, -+ {0x41b84, 0x0}, -+ {0x41b85, 0x0}, -+ {0x41b86, 0x0}, -+ {0x41b87, 0x0}, -+ {0x41b88, 0x802c}, -+ {0x41b89, 0xd00}, -+ {0x41b8a, 0x1}, -+ {0x41b8b, 0x10}, -+ {0x41b8c, 0x8050}, -+ {0x41b8d, 0x803}, -+ {0x41b8e, 0x0}, -+ {0x41b8f, 0x10}, -+ {0x41b90, 0x0}, -+ {0x41b91, 0x0}, -+ {0x41b92, 0x0}, -+ {0x41b93, 0x0}, -+ {0x41b94, 0x0}, -+ {0x41b95, 0x0}, -+ {0x41b96, 0x0}, -+ {0x41b97, 0x0}, -+ {0x41b98, 0x0}, -+ {0x41b99, 0x0}, -+ {0x41b9a, 0x0}, -+ {0x41b9b, 0x0}, -+ {0x41b9c, 0x0}, -+ {0x41b9d, 0x0}, -+ {0x41b9e, 0x0}, -+ {0x41b9f, 0x0}, -+ {0x41ba0, 0x8050}, -+ {0x41ba1, 0x803}, -+ {0x41ba2, 0x0}, -+ {0x41ba3, 0x5a10}, -+ {0x41ba4, 0x0}, -+ {0x41ba5, 0x0}, -+ {0x41ba6, 0x0}, -+ {0x41ba7, 0x0}, -+ {0x41ba8, 0x0}, -+ {0x41ba9, 0x0}, -+ {0x41baa, 0x0}, -+ {0x41bab, 0x100}, -+ {0x41bac, 0x0}, -+ {0x41bad, 0x0}, -+ {0x41bae, 0x0}, -+ {0x41baf, 0x0}, -+ {0x41bb0, 0x8050}, -+ {0x41bb1, 0x803}, -+ {0x41bb2, 0x0}, -+ {0x41bb3, 0x10}, -+ {0x41bb4, 0x0}, -+ {0x41bb5, 0x0}, -+ {0x41bb6, 0x0}, -+ {0x41bb7, 0x0}, -+ {0x41bb8, 0x0}, -+ {0x41bb9, 0x0}, -+ {0x41bba, 0x0}, -+ {0x41bbb, 0x4b00}, -+ {0x41bbc, 0x0}, -+ {0x41bbd, 0x0}, -+ {0x41bbe, 0x0}, -+ {0x41bbf, 0x400}, -+ {0x41bc0, 0x807c}, -+ {0x41bc1, 0x0}, -+ {0x41bc2, 0x0}, -+ {0x41bc3, 0x10}, -+ {0x41bc4, 0x0}, -+ {0x41bc5, 0x0}, -+ {0x41bc6, 0x0}, -+ {0x41bc7, 0x0}, -+ {0x41bc8, 0x0}, -+ {0x41bc9, 0x0}, -+ {0x41bca, 0x0}, -+ {0x41bcb, 0x3b00}, -+ {0x41bcc, 0x0}, -+ {0x41bcd, 0x0}, -+ {0x41bce, 0x0}, -+ {0x41bcf, 0x0}, -+ {0x41bd0, 0x0}, -+ {0x41bd1, 0x0}, -+ {0x41bd2, 0x0}, -+ {0x41bd3, 0x0}, -+ {0x41bd4, 0x0}, -+ {0x41bd5, 0x0}, -+ {0x41bd6, 0x1}, -+ {0x41bd7, 0x0}, -+ {0x41bd8, 0x9758}, -+ {0x41bd9, 0x0}, -+ {0x41bda, 0x0}, -+ {0x41bdb, 0x10}, -+ {0x41bdc, 0x8208}, -+ {0x41bdd, 0x0}, -+ {0x41bde, 0x0}, -+ {0x41bdf, 0x10}, -+ {0x41be0, 0x0}, -+ {0x41be1, 0x0}, -+ {0x41be2, 0x0}, -+ {0x41be3, 0x4b00}, -+ {0x41be4, 0x0}, -+ {0x41be5, 0x0}, -+ {0x41be6, 0x0}, -+ {0x41be7, 0x0}, -+ {0x41be8, 0x0}, -+ {0x41be9, 0x0}, -+ {0x41bea, 0x0}, -+ {0x41beb, 0x0}, -+ {0x41bec, 0x801c}, -+ {0x41bed, 0xd0}, -+ {0x41bee, 0x1}, -+ {0x41bef, 0x10}, -+ {0x41bf0, 0x8060}, -+ {0x41bf1, 0x84}, -+ {0x41bf2, 0x0}, -+ {0x41bf3, 0x10}, -+ {0x41bf4, 0x0}, -+ {0x41bf5, 0x0}, -+ {0x41bf6, 0x0}, -+ {0x41bf7, 0x0}, -+ {0x41bf8, 0x0}, -+ {0x41bf9, 0x0}, -+ {0x41bfa, 0x0}, -+ {0x41bfb, 0x7b00}, -+ {0x41bfc, 0x0}, -+ {0x41bfd, 0x0}, -+ {0x41bfe, 0x0}, -+ {0x41bff, 0x0}, -+ {0x41c00, 0x807c}, -+ {0x41c01, 0x0}, -+ {0x41c02, 0x0}, -+ {0x41c03, 0x10}, -+ {0x41c04, 0x0}, -+ {0x41c05, 0x0}, -+ {0x41c06, 0x0}, -+ {0x41c07, 0x0}, -+ {0x41c08, 0x0}, -+ {0x41c09, 0x0}, -+ {0x41c0a, 0x0}, -+ {0x41c0b, 0x0}, -+ {0x41c0c, 0x8000}, -+ {0x41c0d, 0x0}, -+ {0x41c0e, 0x1}, -+ {0x41c0f, 0x10}, -+ {0x41c10, 0x0}, -+ {0x41c11, 0x0}, -+ {0x41c12, 0x0}, -+ {0x41c13, 0x0}, -+ {0x41c14, 0x802c}, -+ {0x41c15, 0xd00}, -+ {0x41c16, 0x1}, -+ {0x41c17, 0x10}, -+ {0x41c18, 0x8020}, -+ {0x41c19, 0x803}, -+ {0x41c1a, 0x0}, -+ {0x41c1b, 0x10}, -+ {0x41c1c, 0x0}, -+ {0x41c1d, 0x0}, -+ {0x41c1e, 0x0}, -+ {0x41c1f, 0x0}, -+ {0x41c20, 0x0}, -+ {0x41c21, 0x0}, -+ {0x41c22, 0x0}, -+ {0x41c23, 0x2b00}, -+ {0x41c24, 0x0}, -+ {0x41c25, 0x0}, -+ {0x41c26, 0x0}, -+ {0x41c27, 0x800}, -+ {0x41c28, 0x0}, -+ {0x41c29, 0x0}, -+ {0x41c2a, 0x0}, -+ {0x41c2b, 0x0}, -+ {0x41c2c, 0x807c}, -+ {0x41c2d, 0x0}, -+ {0x41c2e, 0x0}, -+ {0x41c2f, 0x10}, -+ {0x41c30, 0x0}, -+ {0x41c31, 0x0}, -+ {0x41c32, 0x0}, -+ {0x41c33, 0x0}, -+ {0x41c34, 0x0}, -+ {0x41c35, 0x0}, -+ {0x41c36, 0x0}, -+ {0x41c37, 0x0}, -+ {0x41c38, 0x8000}, -+ {0x41c39, 0x0}, -+ {0x41c3a, 0x1}, -+ {0x41c3b, 0x10}, -+ {0x41c3c, 0x0}, -+ {0x41c3d, 0x0}, -+ {0x41c3e, 0x0}, -+ {0x41c3f, 0x0}, -+ {0x41c40, 0x9758}, -+ {0x41c41, 0x0}, -+ {0x41c42, 0x0}, -+ {0x41c43, 0x10}, -+ {0x41c44, 0x8008}, -+ {0x41c45, 0x0}, -+ {0x41c46, 0x0}, -+ {0x41c47, 0x10}, -+ {0x41c48, 0x0}, -+ {0x41c49, 0x0}, -+ {0x41c4a, 0x0}, -+ {0x41c4b, 0x0}, -+ {0x41c4c, 0x0}, -+ {0x41c4d, 0x0}, -+ {0x41c4e, 0x0}, -+ {0x41c4f, 0x0}, -+ {0x41c50, 0xc068}, -+ {0x41c51, 0x0}, -+ {0x41c52, 0x0}, -+ {0x41c53, 0x10}, -+ {0x41c54, 0x0}, -+ {0x41c55, 0x0}, -+ {0x41c56, 0x0}, -+ {0x41c57, 0x0}, -+ {0x9002e, 0x10}, -+ {0x9002f, 0x400}, -+ {0x90030, 0x80e}, -+ {0x90031, 0xb}, -+ {0x90032, 0x480}, -+ {0x90033, 0x809}, -+ {0x90034, 0x9}, -+ {0x90035, 0x308}, -+ {0x90036, 0xc09}, -+ {0x90037, 0x28}, -+ {0x90038, 0x8160}, -+ {0x90039, 0x87c}, -+ {0x9003a, 0x98}, -+ {0x9003b, 0x820}, -+ {0x9003c, 0xc7e}, -+ {0x9003d, 0x2}, -+ {0x9003e, 0x1}, -+ {0x9003f, 0x78}, -+ {0x90040, 0xa}, -+ {0x90041, 0x370}, -+ {0x90042, 0x839}, -+ {0x90043, 0x18}, -+ {0x90044, 0x8160}, -+ {0x90045, 0x83c}, -+ {0x90046, 0x9}, -+ {0x90047, 0x150}, -+ {0x90048, 0x839}, -+ {0x90049, 0x70}, -+ {0x9004a, 0x392}, -+ {0x9004b, 0x39}, -+ {0x9004c, 0x78}, -+ {0x9004d, 0x39a}, -+ {0x9004e, 0x39}, -+ {0x9004f, 0xe09}, -+ {0x90050, 0x100}, -+ {0x90051, 0x839}, -+ {0x90052, 0x2}, -+ {0x90053, 0x1}, -+ {0x90054, 0x38}, -+ {0x90055, 0x0}, -+ {0x90056, 0x100}, -+ {0x90057, 0x839}, -+ {0x90058, 0x0}, -+ {0x90059, 0x398}, -+ {0x9005a, 0x839}, -+ {0x9005b, 0xe19}, -+ {0x9005c, 0x100}, -+ {0x9005d, 0x839}, -+ {0x9005e, 0x2}, -+ {0x9005f, 0x1}, -+ {0x90060, 0x38}, -+ {0x90061, 0x0}, -+ {0x90062, 0x100}, -+ {0x90063, 0x839}, -+ {0x90064, 0x0}, -+ {0x90065, 0x390}, -+ {0x90066, 0x839}, -+ {0x90067, 0x78}, -+ {0x90068, 0x39a}, -+ {0x90069, 0x39}, -+ {0x9006a, 0xe29}, -+ {0x9006b, 0x100}, -+ {0x9006c, 0x839}, -+ {0x9006d, 0x2}, -+ {0x9006e, 0x1}, -+ {0x9006f, 0x38}, -+ {0x90070, 0x0}, -+ {0x90071, 0x100}, -+ {0x90072, 0x839}, -+ {0x90073, 0x70}, -+ {0x90074, 0x392}, -+ {0x90075, 0x39}, -+ {0x90076, 0x0}, -+ {0x90077, 0xf0}, -+ {0x90078, 0x909}, -+ {0x90079, 0x18}, -+ {0x9007a, 0x8160}, -+ {0x9007b, 0x8bc}, -+ {0x9007c, 0x8}, -+ {0x9007d, 0x13a}, -+ {0x9007e, 0xb9}, -+ {0x9007f, 0x24b}, -+ {0x90080, 0x100}, -+ {0x90081, 0x8b9}, -+ {0x90082, 0x2}, -+ {0x90083, 0x1}, -+ {0x90084, 0xb8}, -+ {0x90085, 0x0}, -+ {0x90086, 0x100}, -+ {0x90087, 0x8b9}, -+ {0x90088, 0x20}, -+ {0x90089, 0x4}, -+ {0x9008a, 0xb8}, -+ {0x9008b, 0x20}, -+ {0x9008c, 0x4}, -+ {0x9008d, 0xb8}, -+ {0x9008e, 0x5}, -+ {0x9008f, 0x0}, -+ {0x90090, 0xb8}, -+ {0x90091, 0x479}, -+ {0x90092, 0xc7f8}, -+ {0x90093, 0x8bc}, -+ {0x90094, 0x0}, -+ {0x90095, 0x0}, -+ {0x90096, 0xb8}, -+ {0x90097, 0x0}, -+ {0x90098, 0xa8}, -+ {0x90099, 0x8b9}, -+ {0x9009a, 0x9}, -+ {0x9009b, 0xc9c0}, -+ {0x9009c, 0xcbc}, -+ {0x9009d, 0x0}, -+ {0x9009e, 0x0}, -+ {0x9009f, 0xb8}, -+ {0x900a0, 0x25b}, -+ {0x900a1, 0x100}, -+ {0x900a2, 0xcb9}, -+ {0x900a3, 0x20}, -+ {0x900a4, 0x4}, -+ {0x900a5, 0xb8}, -+ {0x900a6, 0x20}, -+ {0x900a7, 0x4}, -+ {0x900a8, 0xb8}, -+ {0x900a9, 0x20}, -+ {0x900aa, 0x4}, -+ {0x900ab, 0xb8}, -+ {0x900ac, 0x20}, -+ {0x900ad, 0x4}, -+ {0x900ae, 0xb8}, -+ {0x900af, 0x10}, -+ {0x900b0, 0x400}, -+ {0x900b1, 0x89e}, -+ {0x900b2, 0x8}, -+ {0x900b3, 0x370}, -+ {0x900b4, 0x839}, -+ {0x900b5, 0x0}, -+ {0x900b6, 0xf0}, -+ {0x900b7, 0x909}, -+ {0x900b8, 0x33b}, -+ {0x900b9, 0x100}, -+ {0x900ba, 0x8b9}, -+ {0x900bb, 0x0}, -+ {0x900bc, 0x100}, -+ {0x900bd, 0x8b9}, -+ {0x900be, 0x23b}, -+ {0x900bf, 0x100}, -+ {0x900c0, 0xc99}, -+ {0x900c1, 0x2}, -+ {0x900c2, 0x150}, -+ {0x900c3, 0x839}, -+ {0x900c4, 0x1800}, -+ {0x900c5, 0x8660}, -+ {0x900c6, 0x839}, -+ {0x900c7, 0x0}, -+ {0x900c8, 0x2a0}, -+ {0x900c9, 0x809}, -+ {0x900ca, 0x8}, -+ {0x900cb, 0x1880}, -+ {0x900cc, 0x839}, -+ {0x900cd, 0x0}, -+ {0x900ce, 0x82b0}, -+ {0x900cf, 0x838}, -+ {0x900d0, 0x18}, -+ {0x900d1, 0xe0}, -+ {0x900d2, 0x809}, -+ {0x900d3, 0x0}, -+ {0x900d4, 0xe0}, -+ {0x900d5, 0x869}, -+ {0x900d6, 0xf}, -+ {0x900d7, 0x7c0}, -+ {0x900d8, 0x839}, -+ {0x900d9, 0xa}, -+ {0x900da, 0x510}, -+ {0x900db, 0x839}, -+ {0x900dc, 0xa}, -+ {0x900dd, 0x700}, -+ {0x900de, 0x849}, -+ {0x900df, 0xa}, -+ {0x900e0, 0x700}, -+ {0x900e1, 0x859}, -+ {0x900e2, 0xa}, -+ {0x900e3, 0x708}, -+ {0x900e4, 0x859}, -+ {0x900e5, 0x2}, -+ {0x900e6, 0x708}, -+ {0x900e7, 0x849}, -+ {0x900e8, 0xff8}, -+ {0x900e9, 0x8410}, -+ {0x900ea, 0x839}, -+ {0x900eb, 0x7ff8}, -+ {0x900ec, 0x8498}, -+ {0x900ed, 0x838}, -+ {0x900ee, 0x10}, -+ {0x900ef, 0x8160}, -+ {0x900f0, 0x83c}, -+ {0x900f1, 0x0}, -+ {0x900f2, 0x7c8}, -+ {0x900f3, 0x809}, -+ {0x900f4, 0x0}, -+ {0x900f5, 0x1}, -+ {0x900f6, 0x8}, -+ {0x900f7, 0x0}, -+ {0x900f8, 0x45a}, -+ {0x900f9, 0x89}, -+ {0x900fa, 0x0}, -+ {0x900fb, 0x8018}, -+ {0x900fc, 0x808}, -+ {0x900fd, 0x0}, -+ {0x900fe, 0x8020}, -+ {0x900ff, 0x808}, -+ {0x90100, 0x479}, -+ {0x90101, 0xc7f8}, -+ {0x90102, 0x80c}, -+ {0x90103, 0x0}, -+ {0x90104, 0x0}, -+ {0x90105, 0x8}, -+ {0x90106, 0x0}, -+ {0x90107, 0x8018}, -+ {0x90108, 0x808}, -+ {0x90109, 0x0}, -+ {0x9010a, 0x8020}, -+ {0x9010b, 0x808}, -+ {0x9010c, 0x9}, -+ {0x9010d, 0xc9c0}, -+ {0x9010e, 0xc0c}, -+ {0x9010f, 0x0}, -+ {0x90110, 0xa8}, -+ {0x90111, 0x8c9}, -+ {0x90112, 0x29}, -+ {0x90113, 0x8160}, -+ {0x90114, 0x87c}, -+ {0x90115, 0xb8}, -+ {0x90116, 0x820}, -+ {0x90117, 0xc7e}, -+ {0x90118, 0x1}, -+ {0x90119, 0x0}, -+ {0x9011a, 0x78}, -+ {0x9011b, 0x0}, -+ {0x9011c, 0x1}, -+ {0x9011d, 0x78}, -+ {0x9011e, 0xd8}, -+ {0x9011f, 0x820}, -+ {0x90120, 0xc7e}, -+ {0x90121, 0x1}, -+ {0x90122, 0x0}, -+ {0x90123, 0x78}, -+ {0x90124, 0x0}, -+ {0x90125, 0x1}, -+ {0x90126, 0x78}, -+ {0x90127, 0xf8}, -+ {0x90128, 0x820}, -+ {0x90129, 0xc7e}, -+ {0x9012a, 0x1}, -+ {0x9012b, 0x0}, -+ {0x9012c, 0x78}, -+ {0x9012d, 0x0}, -+ {0x9012e, 0x1}, -+ {0x9012f, 0x78}, -+ {0x90130, 0x0}, -+ {0x90131, 0x700}, -+ {0x90132, 0x849}, -+ {0x90133, 0x0}, -+ {0x90134, 0x618}, -+ {0x90135, 0x809}, -+ {0x90136, 0x3ff8}, -+ {0x90137, 0x84b8}, -+ {0x90138, 0x808}, -+ {0x90139, 0x0}, -+ {0x9013a, 0x0}, -+ {0x9013b, 0x8}, -+ {0x9013c, 0x8}, -+ {0x9013d, 0xc870}, -+ {0x9013e, 0xc0c}, -+ {0x9013f, 0x18}, -+ {0x90140, 0x710}, -+ {0x90141, 0x849}, -+ {0x90142, 0x0}, -+ {0x90143, 0x4}, -+ {0x90144, 0x48}, -+ {0x90145, 0x0}, -+ {0x90146, 0x4}, -+ {0x90147, 0x48}, -+ {0x90148, 0x10}, -+ {0x90149, 0x710}, -+ {0x9014a, 0x849}, -+ {0x9014b, 0x0}, -+ {0x9014c, 0x4}, -+ {0x9014d, 0x48}, -+ {0x9014e, 0x0}, -+ {0x9014f, 0x710}, -+ {0x90150, 0x849}, -+ {0x90151, 0x0}, -+ {0x90152, 0x4}, -+ {0x90153, 0x48}, -+ {0x90154, 0x0}, -+ {0x90155, 0x4}, -+ {0x90156, 0x18}, -+ {0x90157, 0x0}, -+ {0x90158, 0x4}, -+ {0x90159, 0x18}, -+ {0x9015a, 0x0}, -+ {0x9015b, 0x4}, -+ {0x9015c, 0x18}, -+ {0x9015d, 0x0}, -+ {0x9015e, 0x8410}, -+ {0x9015f, 0x809}, -+ {0x90160, 0x0}, -+ {0x90161, 0x8498}, -+ {0x90162, 0x808}, -+ {0x90163, 0x5}, -+ {0x90164, 0x510}, -+ {0x90165, 0x809}, -+ {0x90166, 0x198}, -+ {0x90167, 0x1000}, -+ {0x90168, 0x809}, -+ {0x90169, 0x9}, -+ {0x9016a, 0x3c0}, -+ {0x9016b, 0x809}, -+ {0x9016c, 0x10}, -+ {0x9016d, 0x510}, -+ {0x9016e, 0x809}, -+ {0x9016f, 0x0}, -+ {0x90170, 0x3c0}, -+ {0x90171, 0x809}, -+ {0x90172, 0x18}, -+ {0x90173, 0x4}, -+ {0x90174, 0x8}, -+ {0x90175, 0x2}, -+ {0x90176, 0x510}, -+ {0x90177, 0x809}, -+ {0x90178, 0x2}, -+ {0x90179, 0x1000}, -+ {0x9017a, 0x809}, -+ {0x9017b, 0x68}, -+ {0x9017c, 0x801a}, -+ {0x9017d, 0x8}, -+ {0x9017e, 0x68}, -+ {0x9017f, 0x8022}, -+ {0x90180, 0x8}, -+ {0x90181, 0x479}, -+ {0x90182, 0xc7f8}, -+ {0x90183, 0x80c}, -+ {0x90184, 0x0}, -+ {0x90185, 0x0}, -+ {0x90186, 0x8}, -+ {0x90187, 0x68}, -+ {0x90188, 0x801a}, -+ {0x90189, 0x8}, -+ {0x9018a, 0x68}, -+ {0x9018b, 0x8022}, -+ {0x9018c, 0x8}, -+ {0x9018d, 0x9}, -+ {0x9018e, 0xc9c0}, -+ {0x9018f, 0xc0c}, -+ {0x90190, 0x0}, -+ {0x90191, 0xc870}, -+ {0x90192, 0xc0c}, -+ {0x90193, 0x0}, -+ {0x90194, 0x2a0}, -+ {0x90195, 0x809}, -+ {0x90196, 0x10}, -+ {0x90197, 0x8160}, -+ {0x90198, 0x89c}, -+ {0x90199, 0x2}, -+ {0x9019a, 0x7c8}, -+ {0x9019b, 0x809}, -+ {0x9019c, 0x0}, -+ {0x9019d, 0x1}, -+ {0x9019e, 0x8}, -+ {0x9019f, 0x40}, -+ {0x901a0, 0x1932}, -+ {0x901a1, 0x129}, -+ {0x901a2, 0xa}, -+ {0x901a3, 0xc140}, -+ {0x901a4, 0x80c}, -+ {0x901a5, 0x98}, -+ {0x901a6, 0x193a}, -+ {0x901a7, 0x129}, -+ {0x901a8, 0x90}, -+ {0x901a9, 0x1932}, -+ {0x901aa, 0x329}, -+ {0x901ab, 0x90}, -+ {0x901ac, 0x193a}, -+ {0x901ad, 0x329}, -+ {0x901ae, 0x88}, -+ {0x901af, 0x1882}, -+ {0x901b0, 0x9}, -+ {0x901b1, 0x0}, -+ {0x901b2, 0xc140}, -+ {0x901b3, 0x80c}, -+ {0x901b4, 0x10}, -+ {0x901b5, 0x400}, -+ {0x901b6, 0x80e}, -+ {0x901b7, 0xb}, -+ {0x901b8, 0x370}, -+ {0x901b9, 0x809}, -+ {0x901ba, 0x23b}, -+ {0x901bb, 0x100}, -+ {0x901bc, 0xcf9}, -+ {0x901bd, 0x0}, -+ {0x901be, 0x2a0}, -+ {0x901bf, 0x809}, -+ {0x901c0, 0x7800}, -+ {0x901c1, 0x8660}, -+ {0x901c2, 0x809}, -+ {0x901c3, 0xd}, -+ {0x901c4, 0x7c0}, -+ {0x901c5, 0x809}, -+ {0x901c6, 0x0}, -+ {0x901c7, 0x82b0}, -+ {0x901c8, 0x818}, -+ {0x901c9, 0x0}, -+ {0x901ca, 0x82b0}, -+ {0x901cb, 0x868}, -+ {0x901cc, 0x479}, -+ {0x901cd, 0xc7f8}, -+ {0x901ce, 0x91c}, -+ {0x901cf, 0x0}, -+ {0x901d0, 0x0}, -+ {0x901d1, 0x118}, -+ {0x901d2, 0x38}, -+ {0x901d3, 0x80a2}, -+ {0x901d4, 0x118}, -+ {0x901d5, 0x9}, -+ {0x901d6, 0xc9c0}, -+ {0x901d7, 0xd1c}, -+ {0x901d8, 0x0}, -+ {0x901d9, 0x0}, -+ {0x901da, 0x118}, -+ {0x901db, 0x8}, -+ {0x901dc, 0x508}, -+ {0x901dd, 0x809}, -+ {0x901de, 0x5}, -+ {0x901df, 0x7c0}, -+ {0x901e0, 0x809}, -+ {0x901e1, 0x8}, -+ {0x901e2, 0x82b0}, -+ {0x901e3, 0x868}, -+ {0x901e4, 0x8}, -+ {0x901e5, 0x82b0}, -+ {0x901e6, 0x818}, -+ {0x901e7, 0x8}, -+ {0x901e8, 0x82b0}, -+ {0x901e9, 0x888}, -+ {0x901ea, 0x10}, -+ {0x901eb, 0x510}, -+ {0x901ec, 0x809}, -+ {0x901ed, 0x0}, -+ {0x901ee, 0xa8}, -+ {0x901ef, 0x8c9}, -+ {0x901f0, 0x8}, -+ {0x901f1, 0x1900}, -+ {0x901f2, 0xc09}, -+ {0x901f3, 0x0}, -+ {0x901f4, 0x508}, -+ {0x901f5, 0x809}, -+ {0x901f6, 0x2}, -+ {0x901f7, 0x7c8}, -+ {0x901f8, 0x829}, -+ {0x901f9, 0xa}, -+ {0x901fa, 0x3c8}, -+ {0x901fb, 0xc29}, -+ {0x901fc, 0x199}, -+ {0x901fd, 0x3d0}, -+ {0x901fe, 0xc19}, -+ {0x901ff, 0x3}, -+ {0x90200, 0x0}, -+ {0x90201, 0x18}, -+ {0x90202, 0x38}, -+ {0x90203, 0x4}, -+ {0x90204, 0x18}, -+ {0x90205, 0x199}, -+ {0x90206, 0x3d0}, -+ {0x90207, 0xc09}, -+ {0x90208, 0x0}, -+ {0x90209, 0x0}, -+ {0x9020a, 0x8}, -+ {0x9020b, 0x9}, -+ {0x9020c, 0x150}, -+ {0x9020d, 0x809}, -+ {0x9020e, 0x9}, -+ {0x9020f, 0xc800}, -+ {0x90210, 0xc0c}, -+ {0x90211, 0x18}, -+ {0x90212, 0x8160}, -+ {0x90213, 0x8cc}, -+ {0x90214, 0x8}, -+ {0x90215, 0x13a}, -+ {0x90216, 0xc9}, -+ {0x90217, 0x24b}, -+ {0x90218, 0x100}, -+ {0x90219, 0x8c9}, -+ {0x9021a, 0x2}, -+ {0x9021b, 0x1}, -+ {0x9021c, 0xc8}, -+ {0x9021d, 0x0}, -+ {0x9021e, 0x100}, -+ {0x9021f, 0x8c9}, -+ {0x90220, 0x20}, -+ {0x90221, 0x4}, -+ {0x90222, 0xc8}, -+ {0x90223, 0x20}, -+ {0x90224, 0x4}, -+ {0x90225, 0xc8}, -+ {0x90226, 0x5}, -+ {0x90227, 0x0}, -+ {0x90228, 0xc8}, -+ {0x90229, 0x479}, -+ {0x9022a, 0xc7f8}, -+ {0x9022b, 0x8cc}, -+ {0x9022c, 0x0}, -+ {0x9022d, 0x0}, -+ {0x9022e, 0xc8}, -+ {0x9022f, 0x30}, -+ {0x90230, 0xaa}, -+ {0x90231, 0xc9}, -+ {0x90232, 0x9}, -+ {0x90233, 0xc9c0}, -+ {0x90234, 0xccc}, -+ {0x90235, 0x0}, -+ {0x90236, 0x0}, -+ {0x90237, 0xc8}, -+ {0x90238, 0x479}, -+ {0x90239, 0xc7f8}, -+ {0x9023a, 0x8bc}, -+ {0x9023b, 0x0}, -+ {0x9023c, 0x0}, -+ {0x9023d, 0xb8}, -+ {0x9023e, 0x30}, -+ {0x9023f, 0xaa}, -+ {0x90240, 0xb9}, -+ {0x90241, 0x9}, -+ {0x90242, 0xc9c0}, -+ {0x90243, 0xcbc}, -+ {0x90244, 0x0}, -+ {0x90245, 0x0}, -+ {0x90246, 0xb8}, -+ {0x90247, 0x25b}, -+ {0x90248, 0x100}, -+ {0x90249, 0xcc9}, -+ {0x9024a, 0x20}, -+ {0x9024b, 0x4}, -+ {0x9024c, 0xc8}, -+ {0x9024d, 0x20}, -+ {0x9024e, 0x4}, -+ {0x9024f, 0xc8}, -+ {0x90250, 0x20}, -+ {0x90251, 0x4}, -+ {0x90252, 0xa8}, -+ {0x90253, 0x4}, -+ {0x90254, 0x0}, -+ {0x90255, 0xc8}, -+ {0x90256, 0x9}, -+ {0x90257, 0xc800}, -+ {0x90258, 0xc6c}, -+ {0x90259, 0x26f}, -+ {0x9025a, 0x100}, -+ {0x9025b, 0xc19}, -+ {0x9025c, 0x8}, -+ {0x9025d, 0x4}, -+ {0x9025e, 0x18}, -+ {0x9025f, 0x27f}, -+ {0x90260, 0x100}, -+ {0x90261, 0xc19}, -+ {0x90262, 0x479}, -+ {0x90263, 0xc7f8}, -+ {0x90264, 0x80c}, -+ {0x90265, 0x0}, -+ {0x90266, 0x0}, -+ {0x90267, 0x8}, -+ {0x90268, 0x58}, -+ {0x90269, 0x8a}, -+ {0x9026a, 0x9}, -+ {0x9026b, 0x9}, -+ {0x9026c, 0xc9c0}, -+ {0x9026d, 0xc0c}, -+ {0x9026e, 0x0}, -+ {0x9026f, 0x0}, -+ {0x90270, 0x8}, -+ {0x90271, 0x18}, -+ {0x90272, 0x8160}, -+ {0x90273, 0x86c}, -+ {0x90274, 0x1008}, -+ {0x90275, 0x853b}, -+ {0x90276, 0x868}, -+ {0x90277, 0xc00}, -+ {0x90278, 0x8588}, -+ {0x90279, 0x868}, -+ {0x9027a, 0x8}, -+ {0x9027b, 0x85a8}, -+ {0x9027c, 0x868}, -+ {0x9027d, 0x8}, -+ {0x9027e, 0x85c8}, -+ {0x9027f, 0x868}, -+ {0x90280, 0x0}, -+ {0x90281, 0x8050}, -+ {0x90282, 0x868}, -+ {0x90283, 0x60}, -+ {0x90284, 0x138}, -+ {0x90285, 0x869}, -+ {0x90286, 0x18}, -+ {0x90287, 0x8510}, -+ {0x90288, 0x868}, -+ {0x90289, 0x18}, -+ {0x9028a, 0x2c8}, -+ {0x9028b, 0x869}, -+ {0x9028c, 0x10}, -+ {0x9028d, 0x8520}, -+ {0x9028e, 0x868}, -+ {0x9028f, 0x1ff8}, -+ {0x90290, 0x85d8}, -+ {0x90291, 0xc68}, -+ {0x90292, 0x0}, -+ {0x90293, 0xfdf0}, -+ {0x90294, 0x868}, -+ {0x90295, 0x8}, -+ {0x90296, 0x85f0}, -+ {0x90297, 0x868}, -+ {0x90298, 0x8}, -+ {0x90299, 0xa5f0}, -+ {0x9029a, 0x868}, -+ {0x9029b, 0x298}, -+ {0x9029c, 0x100}, -+ {0x9029d, 0x869}, -+ {0x9029e, 0x2}, -+ {0x9029f, 0x1}, -+ {0x902a0, 0x68}, -+ {0x902a1, 0x0}, -+ {0x902a2, 0x100}, -+ {0x902a3, 0x869}, -+ {0x902a4, 0x0}, -+ {0x902a5, 0x85f0}, -+ {0x902a6, 0x868}, -+ {0x902a7, 0x0}, -+ {0x902a8, 0xa5f0}, -+ {0x902a9, 0x868}, -+ {0x902aa, 0x33b}, -+ {0x902ab, 0x100}, -+ {0x902ac, 0x8c9}, -+ {0x902ad, 0x0}, -+ {0x902ae, 0x100}, -+ {0x902af, 0x8c9}, -+ {0x902b0, 0x1ff8}, -+ {0x902b1, 0x85d8}, -+ {0x902b2, 0xc68}, -+ {0x902b3, 0x8}, -+ {0x902b4, 0x8df0}, -+ {0x902b5, 0x868}, -+ {0x902b6, 0x8}, -+ {0x902b7, 0xadf0}, -+ {0x902b8, 0x868}, -+ {0x902b9, 0x2a8}, -+ {0x902ba, 0x100}, -+ {0x902bb, 0x869}, -+ {0x902bc, 0x2}, -+ {0x902bd, 0x1}, -+ {0x902be, 0x68}, -+ {0x902bf, 0x0}, -+ {0x902c0, 0x100}, -+ {0x902c1, 0x869}, -+ {0x902c2, 0x0}, -+ {0x902c3, 0x8df0}, -+ {0x902c4, 0x868}, -+ {0x902c5, 0x0}, -+ {0x902c6, 0xadf0}, -+ {0x902c7, 0x868}, -+ {0x902c8, 0x10}, -+ {0x902c9, 0x2c8}, -+ {0x902ca, 0x869}, -+ {0x902cb, 0x28}, -+ {0x902cc, 0x4}, -+ {0x902cd, 0x68}, -+ {0x902ce, 0xa}, -+ {0x902cf, 0x500}, -+ {0x902d0, 0xc69}, -+ {0x902d1, 0x0}, -+ {0x902d2, 0x8520}, -+ {0x902d3, 0x868}, -+ {0x902d4, 0x8}, -+ {0x902d5, 0x8530}, -+ {0x902d6, 0x868}, -+ {0x902d7, 0x2ba}, -+ {0x902d8, 0x100}, -+ {0x902d9, 0x869}, -+ {0x902da, 0x2}, -+ {0x902db, 0x1}, -+ {0x902dc, 0x68}, -+ {0x902dd, 0x2}, -+ {0x902de, 0x100}, -+ {0x902df, 0x869}, -+ {0x902e0, 0x0}, -+ {0x902e1, 0x8530}, -+ {0x902e2, 0x868}, -+ {0x902e3, 0x0}, -+ {0x902e4, 0x8510}, -+ {0x902e5, 0x868}, -+ {0x902e6, 0x0}, -+ {0x902e7, 0x2c8}, -+ {0x902e8, 0x869}, -+ {0x902e9, 0x8}, -+ {0x902ea, 0x8050}, -+ {0x902eb, 0x868}, -+ {0x902ec, 0x30}, -+ {0x902ed, 0x4}, -+ {0x902ee, 0x68}, -+ {0x902ef, 0x8}, -+ {0x902f0, 0x8520}, -+ {0x902f1, 0x868}, -+ {0x902f2, 0x0}, -+ {0x902f3, 0x8328}, -+ {0x902f4, 0x86b}, -+ {0x902f5, 0x2ca}, -+ {0x902f6, 0x100}, -+ {0x902f7, 0x869}, -+ {0x902f8, 0x2}, -+ {0x902f9, 0x1}, -+ {0x902fa, 0x68}, -+ {0x902fb, 0x4}, -+ {0x902fc, 0x100}, -+ {0x902fd, 0x869}, -+ {0x902fe, 0xff8}, -+ {0x902ff, 0x8328}, -+ {0x90300, 0x86b}, -+ {0x90301, 0x9}, -+ {0x90302, 0x500}, -+ {0x90303, 0xc29}, -+ {0x90304, 0x0}, -+ {0x90305, 0x8520}, -+ {0x90306, 0x868}, -+ {0x90307, 0x8}, -+ {0x90308, 0x3c8}, -+ {0x90309, 0xc29}, -+ {0x9030a, 0x0}, -+ {0x9030b, 0x150}, -+ {0x9030c, 0x809}, -+ {0x9030d, 0x2}, -+ {0x9030e, 0x370}, -+ {0x9030f, 0x809}, -+ {0x90310, 0x0}, -+ {0x90311, 0x400}, -+ {0x90312, 0x80e}, -+ {0x90313, 0x10}, -+ {0x90314, 0x4}, -+ {0x90315, 0x118}, -+ {0x90316, 0x20}, -+ {0x90317, 0x82b0}, -+ {0x90318, 0x808}, -+ {0x90319, 0x479}, -+ {0x9031a, 0xc7f8}, -+ {0x9031b, 0x80c}, -+ {0x9031c, 0x0}, -+ {0x9031d, 0x0}, -+ {0x9031e, 0x8}, -+ {0x9031f, 0x60}, -+ {0x90320, 0x8a}, -+ {0x90321, 0x9}, -+ {0x90322, 0x9}, -+ {0x90323, 0xc9c0}, -+ {0x90324, 0xc0c}, -+ {0x90325, 0x0}, -+ {0x90326, 0x0}, -+ {0x90327, 0x8}, -+ {0x90328, 0x8}, -+ {0x90329, 0x2a0}, -+ {0x9032a, 0x809}, -+ {0x9032b, 0x48}, -+ {0x9032c, 0xc822}, -+ {0x9032d, 0xc}, -+ {0x9032e, 0x48}, -+ {0x9032f, 0xcc32}, -+ {0x90330, 0xc}, -+ {0x90331, 0x9}, -+ {0x90332, 0xc800}, -+ {0x90333, 0xc0c}, -+ {0x90334, 0x0}, -+ {0x90335, 0x8168}, -+ {0x90336, 0x80c}, -+ {0x90337, 0x479}, -+ {0x90338, 0xc7f8}, -+ {0x90339, 0x91c}, -+ {0x9033a, 0x0}, -+ {0x9033b, 0x0}, -+ {0x9033c, 0x118}, -+ {0x9033d, 0x9190}, -+ {0x9033e, 0x80a1}, -+ {0x9033f, 0x918}, -+ {0x90340, 0x9}, -+ {0x90341, 0xc9c0}, -+ {0x90342, 0xd1c}, -+ {0x90343, 0x0}, -+ {0x90344, 0x0}, -+ {0x90345, 0x118}, -+ {0x90346, 0x18}, -+ {0x90347, 0xf0}, -+ {0x90348, 0x909}, -+ {0x90349, 0xa}, -+ {0x9034a, 0xc140}, -+ {0x9034b, 0x92c}, -+ {0x9034c, 0x88}, -+ {0x9034d, 0x1932}, -+ {0x9034e, 0x129}, -+ {0x9034f, 0x88}, -+ {0x90350, 0x193a}, -+ {0x90351, 0x129}, -+ {0x90352, 0x0}, -+ {0x90353, 0xc140}, -+ {0x90354, 0x92c}, -+ {0x90355, 0x8}, -+ {0x90356, 0x300}, -+ {0x90357, 0x819}, -+ {0x90358, 0x10}, -+ {0x90359, 0x8160}, -+ {0x9035a, 0x80c}, -+ {0x9035b, 0x8}, -+ {0x9035c, 0x7c8}, -+ {0x9035d, 0x801}, -+ {0x9035e, 0x8}, -+ {0x9035f, 0x0}, -+ {0x90360, 0x8}, -+ {0x90361, 0x8}, -+ {0x90362, 0x1880}, -+ {0x90363, 0x809}, -+ {0x90364, 0x10}, -+ {0x90365, 0x8160}, -+ {0x90366, 0x80c}, -+ {0x90367, 0x1800}, -+ {0x90368, 0x8660}, -+ {0x90369, 0x809}, -+ {0x9036a, 0x4000}, -+ {0x9036b, 0x8668}, -+ {0x9036c, 0x809}, -+ {0x9036d, 0x0}, -+ {0x9036e, 0xf0}, -+ {0x9036f, 0x909}, -+ {0x90370, 0xf}, -+ {0x90371, 0x7c0}, -+ {0x90372, 0x809}, -+ {0x90373, 0x0}, -+ {0x90374, 0x2a0}, -+ {0x90375, 0x809}, -+ {0x90376, 0x8}, -+ {0x90377, 0x618}, -+ {0x90378, 0x809}, -+ {0x90379, 0x0}, -+ {0x9037a, 0x84b8}, -+ {0x9037b, 0x808}, -+ {0x9037c, 0xff8}, -+ {0x9037d, 0x8410}, -+ {0x9037e, 0x809}, -+ {0x9037f, 0x7ff8}, -+ {0x90380, 0x8498}, -+ {0x90381, 0x808}, -+ {0x90382, 0x0}, -+ {0x90383, 0x7c8}, -+ {0x90384, 0x809}, -+ {0x90385, 0x8}, -+ {0x90386, 0x8168}, -+ {0x90387, 0x80c}, -+ {0x90388, 0x0}, -+ {0x90389, 0x1}, -+ {0x9038a, 0x8}, -+ {0x9038b, 0x0}, -+ {0x9038c, 0x4}, -+ {0x9038d, 0x8}, -+ {0x9038e, 0x0}, -+ {0x9038f, 0x4}, -+ {0x90390, 0x8}, -+ {0x90391, 0x18}, -+ {0x90392, 0x300}, -+ {0x90393, 0x809}, -+ {0x90394, 0x0}, -+ {0x90395, 0x480}, -+ {0x90396, 0x809}, -+ {0x90397, 0x8}, -+ {0x90398, 0x510}, -+ {0x90399, 0x809}, -+ {0x9039a, 0x7800}, -+ {0x9039b, 0x8660}, -+ {0x9039c, 0x809}, -+ {0x9039d, 0x18}, -+ {0x9039e, 0xf0}, -+ {0x9039f, 0x909}, -+ {0x903a0, 0x8}, -+ {0x903a1, 0x7c8}, -+ {0x903a2, 0x801}, -+ {0x903a3, 0x10}, -+ {0x903a4, 0x400}, -+ {0x903a5, 0x80e}, -+ {0x903a6, 0x8}, -+ {0x903a7, 0x150}, -+ {0x903a8, 0x809}, -+ {0x903a9, 0x9}, -+ {0x903aa, 0x370}, -+ {0x903ab, 0x809}, -+ {0x903ac, 0x18}, -+ {0x903ad, 0x8160}, -+ {0x903ae, 0x80c}, -+ {0x903af, 0x8}, -+ {0x903b0, 0xc800}, -+ {0x903b1, 0xc0c}, -+ {0x903b2, 0x8}, -+ {0x903b3, 0xc888}, -+ {0x903b4, 0xc04}, -+ {0x903b5, 0x20}, -+ {0x903b6, 0x8302}, -+ {0x903b7, 0xb}, -+ {0x903b8, 0x18}, -+ {0x903b9, 0x8582}, -+ {0x903ba, 0x8}, -+ {0x903bb, 0x9000}, -+ {0x903bc, 0x8539}, -+ {0x903bd, 0x808}, -+ {0x903be, 0x0}, -+ {0x903bf, 0x8588}, -+ {0x903c0, 0x808}, -+ {0x903c1, 0x40}, -+ {0x903c2, 0x85c8}, -+ {0x903c3, 0x808}, -+ {0x903c4, 0x0}, -+ {0x903c5, 0xfdf0}, -+ {0x903c6, 0x808}, -+ {0x903c7, 0x800}, -+ {0x903c8, 0xc5f0}, -+ {0x903c9, 0x808}, -+ {0x903ca, 0x1ff8}, -+ {0x903cb, 0xfdd8}, -+ {0x903cc, 0xc08}, -+ {0x903cd, 0x18}, -+ {0x903ce, 0xfda8}, -+ {0x903cf, 0x808}, -+ {0x903d0, 0x40}, -+ {0x903d1, 0x8520}, -+ {0x903d2, 0x8d8}, -+ {0x903d3, 0x80}, -+ {0x903d4, 0x8520}, -+ {0x903d5, 0x8e8}, -+ {0x903d6, 0x30a}, -+ {0x903d7, 0x100}, -+ {0x903d8, 0x8d9}, -+ {0x903d9, 0x32a}, -+ {0x903da, 0x100}, -+ {0x903db, 0x8e9}, -+ {0x903dc, 0x0}, -+ {0x903dd, 0x1}, -+ {0x903de, 0x8}, -+ {0x903df, 0x0}, -+ {0x903e0, 0x100}, -+ {0x903e1, 0x809}, -+ {0x903e2, 0x1ff8}, -+ {0x903e3, 0xfdd8}, -+ {0x903e4, 0xc08}, -+ {0x903e5, 0x8}, -+ {0x903e6, 0xfda8}, -+ {0x903e7, 0x808}, -+ {0x903e8, 0x140}, -+ {0x903e9, 0x8520}, -+ {0x903ea, 0x8d8}, -+ {0x903eb, 0x180}, -+ {0x903ec, 0x8520}, -+ {0x903ed, 0x8e8}, -+ {0x903ee, 0x30a}, -+ {0x903ef, 0x100}, -+ {0x903f0, 0x8d9}, -+ {0x903f1, 0x32a}, -+ {0x903f2, 0x100}, -+ {0x903f3, 0x8e9}, -+ {0x903f4, 0x0}, -+ {0x903f5, 0x1}, -+ {0x903f6, 0x8}, -+ {0x903f7, 0x0}, -+ {0x903f8, 0x100}, -+ {0x903f9, 0x809}, -+ {0x903fa, 0x9}, -+ {0x903fb, 0x500}, -+ {0x903fc, 0xc09}, -+ {0x903fd, 0x10}, -+ {0x903fe, 0x82b0}, -+ {0x903ff, 0x808}, -+ {0x90400, 0x0}, -+ {0x90401, 0x8520}, -+ {0x90402, 0x808}, -+ {0x90403, 0x8}, -+ {0x90404, 0x3c8}, -+ {0x90405, 0xc09}, -+ {0x90406, 0x0}, -+ {0x90407, 0x150}, -+ {0x90408, 0x809}, -+ {0x90409, 0x2}, -+ {0x9040a, 0x370}, -+ {0x9040b, 0x809}, -+ {0x9040c, 0x0}, -+ {0x9040d, 0x400}, -+ {0x9040e, 0x80e}, -+ {0x9040f, 0x8}, -+ {0x90410, 0xc848}, -+ {0x90411, 0xc0c}, -+ {0x90412, 0x0}, -+ {0x90413, 0xc890}, -+ {0x90414, 0x804}, -+ {0x90415, 0x20}, -+ {0x90416, 0x8302}, -+ {0x90417, 0xb}, -+ {0x90418, 0x18}, -+ {0x90419, 0x8582}, -+ {0x9041a, 0x8}, -+ {0x9041b, 0x0}, -+ {0x9041c, 0x82b0}, -+ {0x9041d, 0x808}, -+ {0x9041e, 0x1000}, -+ {0x9041f, 0x8539}, -+ {0x90420, 0x808}, -+ {0x90421, 0x0}, -+ {0x90422, 0x8588}, -+ {0x90423, 0x808}, -+ {0x90424, 0x40}, -+ {0x90425, 0x85c8}, -+ {0x90426, 0x808}, -+ {0x90427, 0x7f8}, -+ {0x90428, 0xfdf0}, -+ {0x90429, 0x808}, -+ {0x9042a, 0x800}, -+ {0x9042b, 0xc5f0}, -+ {0x9042c, 0x808}, -+ {0x9042d, 0x80}, -+ {0x9042e, 0x8088}, -+ {0x9042f, 0x80b}, -+ {0x90430, 0x1ff8}, -+ {0x90431, 0xfdd8}, -+ {0x90432, 0xc08}, -+ {0x90433, 0x18}, -+ {0x90434, 0xfda8}, -+ {0x90435, 0x808}, -+ {0x90436, 0x200}, -+ {0x90437, 0x8520}, -+ {0x90438, 0x8d8}, -+ {0x90439, 0x400}, -+ {0x9043a, 0x8520}, -+ {0x9043b, 0x8e8}, -+ {0x9043c, 0x2da}, -+ {0x9043d, 0x100}, -+ {0x9043e, 0x8d9}, -+ {0x9043f, 0x2ea}, -+ {0x90440, 0x100}, -+ {0x90441, 0x8e9}, -+ {0x90442, 0x2}, -+ {0x90443, 0x1}, -+ {0x90444, 0x8}, -+ {0x90445, 0x0}, -+ {0x90446, 0x100}, -+ {0x90447, 0x809}, -+ {0x90448, 0x1ff8}, -+ {0x90449, 0xfdd8}, -+ {0x9044a, 0xc08}, -+ {0x9044b, 0x8}, -+ {0x9044c, 0xfda8}, -+ {0x9044d, 0x808}, -+ {0x9044e, 0xa00}, -+ {0x9044f, 0x8520}, -+ {0x90450, 0x8d8}, -+ {0x90451, 0xc00}, -+ {0x90452, 0x8520}, -+ {0x90453, 0x8e8}, -+ {0x90454, 0x2da}, -+ {0x90455, 0x100}, -+ {0x90456, 0x8d9}, -+ {0x90457, 0x2ea}, -+ {0x90458, 0x100}, -+ {0x90459, 0x8e9}, -+ {0x9045a, 0x0}, -+ {0x9045b, 0x1}, -+ {0x9045c, 0x8}, -+ {0x9045d, 0x0}, -+ {0x9045e, 0x100}, -+ {0x9045f, 0x809}, -+ {0x90460, 0x9}, -+ {0x90461, 0x500}, -+ {0x90462, 0xc09}, -+ {0x90463, 0x10}, -+ {0x90464, 0x82b0}, -+ {0x90465, 0x808}, -+ {0x90466, 0x0}, -+ {0x90467, 0x8520}, -+ {0x90468, 0x808}, -+ {0x90469, 0x8}, -+ {0x9046a, 0x3c8}, -+ {0x9046b, 0xc09}, -+ {0x9046c, 0x0}, -+ {0x9046d, 0x150}, -+ {0x9046e, 0x809}, -+ {0x9046f, 0x2}, -+ {0x90470, 0x370}, -+ {0x90471, 0x809}, -+ {0x90472, 0x0}, -+ {0x90473, 0x400}, -+ {0x90474, 0x80e}, -+ {0x90475, 0x8}, -+ {0x90476, 0xc848}, -+ {0x90477, 0xc0c}, -+ {0x90478, 0x0}, -+ {0x90479, 0xc890}, -+ {0x9047a, 0x804}, -+ {0x9047b, 0x1008}, -+ {0x9047c, 0x853b}, -+ {0x9047d, 0x808}, -+ {0x9047e, 0xc00}, -+ {0x9047f, 0x8588}, -+ {0x90480, 0x808}, -+ {0x90481, 0x8}, -+ {0x90482, 0x85a8}, -+ {0x90483, 0x808}, -+ {0x90484, 0x8}, -+ {0x90485, 0x85c8}, -+ {0x90486, 0x808}, -+ {0x90487, 0x60}, -+ {0x90488, 0x138}, -+ {0x90489, 0x809}, -+ {0x9048a, 0x18}, -+ {0x9048b, 0xc8}, -+ {0x9048c, 0x809}, -+ {0x9048d, 0x0}, -+ {0x9048e, 0xa4}, -+ {0x9048f, 0x809}, -+ {0x90490, 0x0}, -+ {0x90491, 0x8510}, -+ {0x90492, 0x808}, -+ {0x90493, 0x2fa}, -+ {0x90494, 0x100}, -+ {0x90495, 0x8d9}, -+ {0x90496, 0x31a}, -+ {0x90497, 0x100}, -+ {0x90498, 0x8e9}, -+ {0x90499, 0x2}, -+ {0x9049a, 0x1}, -+ {0x9049b, 0x8}, -+ {0x9049c, 0x2}, -+ {0x9049d, 0x100}, -+ {0x9049e, 0x809}, -+ {0x9049f, 0x202}, -+ {0x904a0, 0x8510}, -+ {0x904a1, 0xc08}, -+ {0x904a2, 0x50}, -+ {0x904a3, 0xa2}, -+ {0x904a4, 0x9}, -+ {0x904a5, 0x0}, -+ {0x904a6, 0x0}, -+ {0x904a7, 0x8}, -+ {0x904a8, 0x0}, -+ {0x904a9, 0x0}, -+ {0x904aa, 0x8}, -+ {0x904ab, 0x0}, -+ {0x904ac, 0x0}, -+ {0x904ad, 0x8}, -+ {0x904ae, 0x0}, -+ {0x904af, 0xc8}, -+ {0x904b0, 0x809}, -+ {0x904b1, 0xb}, -+ {0x904b2, 0x508}, -+ {0x904b3, 0x809}, -+ {0x904b4, 0x8}, -+ {0x904b5, 0x1900}, -+ {0x904b6, 0xc09}, -+ {0x904b7, 0x2}, -+ {0x904b8, 0x0}, -+ {0x904b9, 0x8}, -+ {0x904ba, 0x0}, -+ {0x904bb, 0x508}, -+ {0x904bc, 0x809}, -+ {0x904bd, 0x9}, -+ {0x904be, 0x500}, -+ {0x904bf, 0xc09}, -+ {0x904c0, 0x10}, -+ {0x904c1, 0x82b0}, -+ {0x904c2, 0x808}, -+ {0x904c3, 0x0}, -+ {0x904c4, 0x8520}, -+ {0x904c5, 0x808}, -+ {0x904c6, 0x8}, -+ {0x904c7, 0x3c8}, -+ {0x904c8, 0xc09}, -+ {0x904c9, 0x0}, -+ {0x904ca, 0x150}, -+ {0x904cb, 0x809}, -+ {0x904cc, 0x2}, -+ {0x904cd, 0x370}, -+ {0x904ce, 0x809}, -+ {0x904cf, 0x0}, -+ {0x904d0, 0x400}, -+ {0x904d1, 0x80e}, -+ {0x904d2, 0x8}, -+ {0x904d3, 0xc848}, -+ {0x904d4, 0xc0c}, -+ {0x904d5, 0x0}, -+ {0x904d6, 0xc890}, -+ {0x904d7, 0x804}, -+ {0x904d8, 0x20}, -+ {0x904d9, 0x8302}, -+ {0x904da, 0xb}, -+ {0x904db, 0x18}, -+ {0x904dc, 0x8582}, -+ {0x904dd, 0x8}, -+ {0x904de, 0x1000}, -+ {0x904df, 0x8539}, -+ {0x904e0, 0x808}, -+ {0x904e1, 0x0}, -+ {0x904e2, 0x8588}, -+ {0x904e3, 0x808}, -+ {0x904e4, 0x40}, -+ {0x904e5, 0x85c8}, -+ {0x904e6, 0x808}, -+ {0x904e7, 0x8}, -+ {0x904e8, 0xfdf0}, -+ {0x904e9, 0x808}, -+ {0x904ea, 0x80}, -+ {0x904eb, 0x8088}, -+ {0x904ec, 0x80b}, -+ {0x904ed, 0x0}, -+ {0x904ee, 0x3b8}, -+ {0x904ef, 0x869}, -+ {0x904f0, 0x1ff8}, -+ {0x904f1, 0xfdd8}, -+ {0x904f2, 0xc08}, -+ {0x904f3, 0x18}, -+ {0x904f4, 0xfda8}, -+ {0x904f5, 0x808}, -+ {0x904f6, 0x40}, -+ {0x904f7, 0x8520}, -+ {0x904f8, 0x8d8}, -+ {0x904f9, 0x80}, -+ {0x904fa, 0x8520}, -+ {0x904fb, 0x8e8}, -+ {0x904fc, 0x2da}, -+ {0x904fd, 0x100}, -+ {0x904fe, 0x8d9}, -+ {0x904ff, 0x2ea}, -+ {0x90500, 0x100}, -+ {0x90501, 0x8e9}, -+ {0x90502, 0x2}, -+ {0x90503, 0x1}, -+ {0x90504, 0x8}, -+ {0x90505, 0x0}, -+ {0x90506, 0x100}, -+ {0x90507, 0x809}, -+ {0x90508, 0x1ff8}, -+ {0x90509, 0xfdd8}, -+ {0x9050a, 0xc08}, -+ {0x9050b, 0x8}, -+ {0x9050c, 0xfda8}, -+ {0x9050d, 0x808}, -+ {0x9050e, 0x140}, -+ {0x9050f, 0x8520}, -+ {0x90510, 0x8d8}, -+ {0x90511, 0x180}, -+ {0x90512, 0x8520}, -+ {0x90513, 0x8e8}, -+ {0x90514, 0x2da}, -+ {0x90515, 0x100}, -+ {0x90516, 0x8d9}, -+ {0x90517, 0x2ea}, -+ {0x90518, 0x100}, -+ {0x90519, 0x8e9}, -+ {0x9051a, 0x0}, -+ {0x9051b, 0x1}, -+ {0x9051c, 0x8}, -+ {0x9051d, 0x0}, -+ {0x9051e, 0x100}, -+ {0x9051f, 0x809}, -+ {0x90520, 0x9}, -+ {0x90521, 0x500}, -+ {0x90522, 0xc09}, -+ {0x90523, 0x10}, -+ {0x90524, 0x82b0}, -+ {0x90525, 0x808}, -+ {0x90526, 0x0}, -+ {0x90527, 0x8520}, -+ {0x90528, 0x808}, -+ {0x90529, 0x8}, -+ {0x9052a, 0x3c8}, -+ {0x9052b, 0xc09}, -+ {0x9052c, 0x0}, -+ {0x9052d, 0x150}, -+ {0x9052e, 0x809}, -+ {0x9052f, 0x2}, -+ {0x90530, 0x370}, -+ {0x90531, 0x809}, -+ {0x90532, 0x0}, -+ {0x90533, 0x400}, -+ {0x90534, 0x80e}, -+ {0x90535, 0x8}, -+ {0x90536, 0xc848}, -+ {0x90537, 0xc0c}, -+ {0x90538, 0x0}, -+ {0x90539, 0xc890}, -+ {0x9053a, 0x804}, -+ {0xd00e7, 0x600}, -+ {0x9001c, 0x0}, -+ {0x90020, 0x77}, -+ {0x90024, 0x82}, -+ {0x90025, 0x2b}, -+ {0x90026, 0x2b}, -+ {0x9002b, 0x110}, -+ {0x90708, 0x127}, -+ {0x90700, 0x14d}, -+ {0x90701, 0x16f}, -+ {0x90702, 0x18e}, -+ {0x90703, 0x12d}, -+ {0x90704, 0x0}, -+ {0x90705, 0x0}, -+ {0x90706, 0x0}, -+ {0x90707, 0x0}, -+ {0x2018a, 0x0}, -+ {0x20124, 0x1}, -+ {0x2018b, 0x16}, -+ {0x20125, 0x39}, -+ {0x2018c, 0x4e}, -+ {0x20126, 0x1}, -+ {0x2018d, 0x16}, -+ {0x20127, 0x39}, -+ {0x2018e, 0x4e}, -+ {0x20128, 0x17}, -+ {0x2018f, 0x27}, -+ {0x20129, 0x4f}, -+ {0x20190, 0x5f}, -+ {0x2012a, 0x17}, -+ {0x20191, 0x27}, -+ {0x2012b, 0x4f}, -+ {0x20192, 0x5f}, -+ {0x2012c, 0x28}, -+ {0x20193, 0x38}, -+ {0x2012d, 0x60}, -+ {0x20194, 0x70}, -+ {0x2012e, 0x28}, -+ {0x20195, 0x38}, -+ {0x2012f, 0x60}, -+ {0x20196, 0x70}, -+ {0x20130, 0x80}, -+ {0x20197, 0x80}, -+ {0x20131, 0x80}, -+ {0x20198, 0x80}, -+ {0x20132, 0x80}, -+ {0x20199, 0x80}, -+ {0x20133, 0x80}, -+ {0x2019a, 0x80}, -+ {0x20134, 0x71}, -+ {0x2019b, 0x74}, -+ {0x20135, 0x77}, -+ {0x2019c, 0x7a}, -+ {0x20136, 0x71}, -+ {0x2019d, 0x74}, -+ {0x20137, 0x77}, -+ {0x2019e, 0x7a}, -+ {0x20138, 0x75}, -+ {0x2019f, 0x76}, -+ {0x20139, 0x7b}, -+ {0x201a0, 0x7c}, -+ {0x2013a, 0x75}, -+ {0x201a1, 0x76}, -+ {0x2013b, 0x7b}, -+ {0x201a2, 0x7c}, -+ {0x2013c, 0x7d}, -+ {0x201a3, 0x7e}, -+ {0x2013d, 0x7d}, -+ {0x201a4, 0x7e}, -+ {0x2013e, 0x7d}, -+ {0x201a5, 0x7e}, -+ {0x2013f, 0x7d}, -+ {0x201a6, 0x7e}, -+ {0x20140, 0x7f}, -+ {0x201a7, 0x7f}, -+ {0x20141, 0x7f}, -+ {0x201a8, 0x7f}, -+ {0x20142, 0x7f}, -+ {0x201a9, 0x7f}, -+ {0x20143, 0x7f}, -+ {0x201aa, 0x7f}, -+ {0x20144, 0x80}, -+ {0x201ab, 0x7f}, -+ {0x20145, 0x80}, -+ {0x201ac, 0x7f}, -+ {0x20146, 0x80}, -+ {0x201ad, 0x7f}, -+ {0x20147, 0x80}, -+ {0x201ae, 0x7f}, -+ {0x20148, 0x81}, -+ {0x201af, 0x93}, -+ {0x20149, 0x81}, -+ {0x201b0, 0x93}, -+ {0x2014a, 0x10a}, -+ {0x201b1, 0x11b}, -+ {0x2014b, 0x10a}, -+ {0x201b2, 0x11b}, -+ {0x2014c, 0x94}, -+ {0x201b3, 0x9b}, -+ {0x2014d, 0x94}, -+ {0x201b4, 0x9b}, -+ {0x2014e, 0x11c}, -+ {0x201b5, 0x122}, -+ {0x2014f, 0x11c}, -+ {0x201b6, 0x122}, -+ {0x20150, 0x9c}, -+ {0x201b7, 0xaf}, -+ {0x20151, 0x9c}, -+ {0x201b8, 0xaf}, -+ {0x20152, 0x123}, -+ {0x201b9, 0x132}, -+ {0x20153, 0x123}, -+ {0x201ba, 0x132}, -+ {0x20154, 0xb0}, -+ {0x201bb, 0xc0}, -+ {0x20155, 0xb0}, -+ {0x201bc, 0xc0}, -+ {0x20156, 0x133}, -+ {0x201bd, 0x143}, -+ {0x20157, 0x133}, -+ {0x201be, 0x143}, -+ {0x20158, 0xc1}, -+ {0x201bf, 0xca}, -+ {0x20159, 0xc1}, -+ {0x201c0, 0xca}, -+ {0x2015a, 0x144}, -+ {0x201c1, 0x14d}, -+ {0x2015b, 0x144}, -+ {0x201c2, 0x14d}, -+ {0x2015c, 0xcb}, -+ {0x201c3, 0xd4}, -+ {0x2015d, 0xcb}, -+ {0x201c4, 0xd4}, -+ {0x2015e, 0x14e}, -+ {0x201c5, 0x157}, -+ {0x2015f, 0x14e}, -+ {0x201c6, 0x157}, -+ {0x20160, 0xd5}, -+ {0x201c7, 0xdf}, -+ {0x20161, 0xd5}, -+ {0x201c8, 0xdf}, -+ {0x20162, 0x158}, -+ {0x201c9, 0x161}, -+ {0x20163, 0x158}, -+ {0x201ca, 0x161}, -+ {0x20164, 0xe0}, -+ {0x201cb, 0xee}, -+ {0x20165, 0xe0}, -+ {0x201cc, 0xee}, -+ {0x20166, 0x162}, -+ {0x201cd, 0x170}, -+ {0x20167, 0x162}, -+ {0x201ce, 0x170}, -+ {0x20168, 0xef}, -+ {0x201cf, 0xf9}, -+ {0x20169, 0xef}, -+ {0x201d0, 0xf9}, -+ {0x2016a, 0x171}, -+ {0x201d1, 0x17a}, -+ {0x2016b, 0x171}, -+ {0x201d2, 0x17a}, -+ {0x2016c, 0xfa}, -+ {0x201d3, 0x108}, -+ {0x2016d, 0xfa}, -+ {0x201d4, 0x108}, -+ {0x2016e, 0x17b}, -+ {0x201d5, 0x189}, -+ {0x2016f, 0x17b}, -+ {0x201d6, 0x189}, -+ {0x20170, 0x109}, -+ {0x201d7, 0x109}, -+ {0x20171, 0x109}, -+ {0x201d8, 0x109}, -+ {0x20172, 0x18a}, -+ {0x201d9, 0x18a}, -+ {0x20173, 0x18a}, -+ {0x201da, 0x18a}, -+ {0x41613, 0xb00}, -+ {0x41617, 0x0}, -+ {0x4163b, 0xb00}, -+ {0x4163f, 0x0}, -+ {0x41663, 0xb00}, -+ {0x41667, 0x0}, -+ {0x4168b, 0xb00}, -+ {0x4168f, 0x0}, -+ {0x41723, 0xb00}, -+ {0x41727, 0x0}, -+ {0x4174b, 0xb00}, -+ {0x4174f, 0x0}, -+ {0x417f3, 0xb00}, -+ {0x417f7, 0x0}, -+ {0x4181b, 0xb00}, -+ {0x4181f, 0x0}, -+ {0x41a2b, 0x6b00}, -+ {0x41a2f, 0x0}, -+ {0x41a53, 0x3b00}, -+ {0x41a57, 0x800}, -+ {0x41a7b, 0x6b00}, -+ {0x41a7f, 0x0}, -+ {0x41aa3, 0x3b00}, -+ {0x41aa7, 0x800}, -+ {0x41b33, 0x6b00}, -+ {0x41b37, 0x0}, -+ {0x41b5b, 0x3b00}, -+ {0x41b5f, 0x800}, -+ {0x41bfb, 0x6b00}, -+ {0x41bff, 0x0}, -+ {0x41c23, 0x3b00}, -+ {0x41c27, 0x800}, -+ {0x41008, 0xc9d8}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0xc808}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x2b00}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0xc958}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0xcd88}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x2b00}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0xc0d8}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0xd848}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x2b00}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0xc158}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0xddc8}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x2b00}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0xc1d8}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0xc308}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x2b00}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0xc558}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0xea08}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x2b00}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0xc5d8}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0xe308}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x2b00}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x48d8}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x4248}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x88d8}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x9648}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x2b00}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0xca58}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0xc108}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x2b00}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0xcb58}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0xc008}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x2b00}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0xd4d8}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0xc008}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0xc0001, 0x5061}, -+ {0xc0002, 0x7098}, -+ {0xc0003, 0x0}, -+ {0xc0000, 0xbedc}, -+ {0xc0006, 0xb0db}, -+ {0xc0007, 0x0}, -+ {0x9070c, 0x0}, -+ {0x9070d, 0x7ff}, -+ {0x9070e, 0x668}, -+ {0x9070f, 0x7910}, -+ {0x90710, 0x355e}, -+ {0x90711, 0xcbb5}, -+ {0x90713, 0xffff}, -+ {0x90714, 0x710}, -+ {0x90715, 0x7800}, -+ {0x90c10, 0xffff}, -+ {0x90c12, 0xff10}, -+ {0x90712, 0x2ee8}, -+ {0x90c11, 0xffff}, -+ {0x90716, 0xffdf}, -+ {0x90717, 0x6f10}, -+ {0x90718, 0x6f10}, -+ {0x90719, 0x2868}, -+ {0x9071a, 0x2868}, -+ {0x9071b, 0xfeef}, -+ {0x90904, 0xe400}, -+ {0x90986, 0xe400}, -+ {0x90920, 0x0}, -+ {0x90921, 0x0}, -+ {0x90922, 0x0}, -+ {0x90923, 0x0}, -+ {0x90924, 0xff00}, -+ {0x90925, 0xff00}, -+ {0x90926, 0xff00}, -+ {0x90927, 0xff00}, -+ {0x90930, 0x4000}, -+ {0x90931, 0x2000}, -+ {0x90932, 0xff00}, -+ {0x90933, 0xff00}, -+ {0x9090a, 0x0}, -+ {0x9090c, 0x0}, -+ {0x9090d, 0x1}, -+ {0x200f0, 0x27f7}, -+ {0x200f1, 0x2108}, -+ {0x200f2, 0x2108}, -+ {0x100b9, 0x1}, -+ {0x100b1, 0x180}, -+ {0x100ba, 0x1}, -+ {0x100a2, 0x0}, -+ {0x100b5, 0x1}, -+ {0x110b9, 0x1}, -+ {0x110b1, 0x180}, -+ {0x110ba, 0x1}, -+ {0x110a2, 0x0}, -+ {0x110b5, 0x1}, -+ {0x120b9, 0x1}, -+ {0x120b1, 0x180}, -+ {0x120ba, 0x1}, -+ {0x120a2, 0x0}, -+ {0x120b5, 0x1}, -+ {0x130b9, 0x1}, -+ {0x130b1, 0x180}, -+ {0x130ba, 0x1}, -+ {0x130a2, 0x0}, -+ {0x130b5, 0x1}, -+ {0x70024, 0x5a3c}, -+ {0x70025, 0x5a3c}, -+ {0x70026, 0x5a3c}, -+ {0x70027, 0x5a3c}, -+ {0x70028, 0x5a3c}, -+ {0x70029, 0x5a3c}, -+ {0x7002a, 0x5a3c}, -+ {0x7002b, 0x5a3c}, -+ {0x70124, 0x5a3c}, -+ {0x70125, 0x5a3c}, -+ {0x70126, 0x5a3c}, -+ {0x70127, 0x5a3c}, -+ {0x70128, 0x5a3c}, -+ {0x70129, 0x5a3c}, -+ {0x7012a, 0x5a3c}, -+ {0x7012b, 0x5a3c}, -+ {0x70224, 0x5a3c}, -+ {0x70225, 0x5a3c}, -+ {0x70226, 0x5a3c}, -+ {0x70227, 0x5a3c}, -+ {0x70228, 0x5a3c}, -+ {0x70229, 0x5a3c}, -+ {0x7022a, 0x5a3c}, -+ {0x7022b, 0x5a3c}, -+ {0x70324, 0x5a3c}, -+ {0x70325, 0x5a3c}, -+ {0x70326, 0x5a3c}, -+ {0x70327, 0x5a3c}, -+ {0x70328, 0x5a3c}, -+ {0x70329, 0x5a3c}, -+ {0x7032a, 0x5a3c}, -+ {0x7032b, 0x5a3c}, -+ {0x70424, 0x5a3c}, -+ {0x70425, 0x5a3c}, -+ {0x70426, 0x5a3c}, -+ {0x70427, 0x5a3c}, -+ {0x70428, 0x5a3c}, -+ {0x70429, 0x5a3c}, -+ {0x7042a, 0x5a3c}, -+ {0x7042b, 0x5a3c}, -+ {0x70524, 0x5a3c}, -+ {0x70525, 0x5a3c}, -+ {0x70526, 0x5a3c}, -+ {0x70527, 0x5a3c}, -+ {0x70528, 0x5a3c}, -+ {0x70529, 0x5a3c}, -+ {0x7052a, 0x5a3c}, -+ {0x7052b, 0x5a3c}, -+ {0x70624, 0x5a3c}, -+ {0x70625, 0x5a3c}, -+ {0x70626, 0x5a3c}, -+ {0x70627, 0x5a3c}, -+ {0x70628, 0x5a3c}, -+ {0x70629, 0x5a3c}, -+ {0x7062a, 0x5a3c}, -+ {0x7062b, 0x5a3c}, -+ {0x70724, 0x5a3c}, -+ {0x70725, 0x5a3c}, -+ {0x70726, 0x5a3c}, -+ {0x70727, 0x5a3c}, -+ {0x70728, 0x5a3c}, -+ {0x70729, 0x5a3c}, -+ {0x7072a, 0x5a3c}, -+ {0x7072b, 0x5a3c}, -+ {0x70824, 0x5a3c}, -+ {0x70825, 0x5a3c}, -+ {0x70826, 0x5a3c}, -+ {0x70827, 0x5a3c}, -+ {0x70828, 0x5a3c}, -+ {0x70829, 0x5a3c}, -+ {0x7082a, 0x5a3c}, -+ {0x7082b, 0x5a3c}, -+ {0x70065, 0x1ff}, -+ {0x2007e, 0x33}, -+ {0x200ef, 0xffff}, -+ {0x90910, 0x2}, -+ {0x20310, 0x1}, -+ {0x20311, 0x1}, -+ {0xc0080, 0x2}, -+ {0xd0003, 0x0}, -+}; -+ -+static struct dram_fsp_msg ddr_dram_fsp_msg[] = { -+ { -+ /* P0 6400mbps */ -+ .drate = 6400, -+ .ssc = false, -+ .fsp_phy_cfg = ddr_phy_fsp0_cfg, -+ .fsp_phy_cfg_num = ARRAY_SIZE(ddr_phy_fsp0_cfg), -+ .fw_type = FW_1D_IMAGE, -+ .fsp_phy_msgh_cfg = ddr_phy_msgh_fsp0_cfg, -+ .fsp_phy_msgh_cfg_num = ARRAY_SIZE(ddr_phy_msgh_fsp0_cfg), -+ .fsp_phy_pie_cfg = ddr_phy_pie_fsp0_cfg, -+ .fsp_phy_pie_cfg_num = ARRAY_SIZE(ddr_phy_pie_fsp0_cfg), -+ }, -+}; -+ -+/* dram fsp cfg */ -+static struct dram_fsp_cfg ddr_dram_fsp_cfg[] = { -+ { -+ .ddrc_cfg = ddr_dram_fsp0_ddrc_cfg, -+ .ddrc_cfg_num = ARRAY_SIZE(ddr_dram_fsp0_ddrc_cfg), -+ .bypass = 0, -+ }, -+}; -+ -+/* ddr timing config params */ -+struct dram_timing_info dram_timing = { -+ .ddrc_cfg = ddr_ddrc_cfg, -+ .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), -+ .ddrphy_cfg = ddr_ddrphy_cfg, -+ .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), -+ .fsp_msg = ddr_dram_fsp_msg, -+ .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), -+ .ddrphy_trained_csr = ddr_ddrphy_trained_csr, -+ .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), -+ .ddrphy_pie = ddr_phy_pie, -+ .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), -+ .fsp_table = { 6400, }, -+ .fsp_cfg = ddr_dram_fsp_cfg, -+ .fsp_cfg_num = ARRAY_SIZE(ddr_dram_fsp_cfg), -+}; -diff --git a/boards/ccimx95/ddr/Makefile b/boards/ccimx95/ddr/Makefile -new file mode 100644 -index 000000000000..646ed78e5aaf ---- /dev/null -+++ b/boards/ccimx95/ddr/Makefile -@@ -0,0 +1,4 @@ -+DDR_CONFIG ?= MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing -+OBJS += $(OUT)/$(DDR_CONFIG).o -+ -+VPATH += boards/ccimx95/ddr -diff --git a/boards/ccimx95/ddr/XIMX95LPD5EVK19_6400mbps_train_timing_a1.c b/boards/ccimx95/ddr/XIMX95LPD5EVK19_6400mbps_train_timing_a1.c -new file mode 100644 -index 000000000000..9bbb3c8c8ad7 ---- /dev/null -+++ b/boards/ccimx95/ddr/XIMX95LPD5EVK19_6400mbps_train_timing_a1.c -@@ -0,0 +1,10754 @@ -+/* -+ * Copyright 2023-2024 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ * -+ * Code generated with DDR Tool v3.5.0_7-ad54c9c4. -+ * DDR PHY FW2024.09 -+ */ -+ -+#include "ddr.h" -+ -+/* Initialize DDRC registers */ -+static struct ddrc_cfg_param ddr_ddrc_cfg[] = { -+ {0x5e080110, 0x41084001U}, -+ {0x5e080000, 0x3ffU}, -+ {0x5e080008, 0x0U}, -+ {0x5e080010, 0x4U}, -+ {0x5e080014, 0x80000U}, -+ {0x5e080020, 0x80000000U}, -+ {0x5e080024, 0x80007ffU}, -+ {0x5e080028, 0x80000000U}, -+ {0x5e08002c, 0x7ffU}, -+ {0x5e080080, 0x80000522U}, -+ {0x5e080084, 0x80000522U}, -+ {0x5e080114, 0x1000U}, -+ {0x5e080260, 0x21U}, -+ {0x5e080268, 0x0U}, -+ {0x5e08026c, 0x1004U}, -+ {0x5e080f00, 0x8U}, -+ {0x5e080f04, 0x800U}, -+ {0x5e080800, 0x43931002U}, -+ {0x5e080804, 0x3f1f1f1fU}, -+ {0x5e081000, 0x0U}, -+ {0x5e081220, 0x0U}, -+ {0x5e081224, 0x0U}, -+ {0x5e081228, 0x0U}, -+ {0x5e08122c, 0x0U}, -+ {0x5e081230, 0x0U}, -+ {0x5e081234, 0x0U}, -+ {0x5e081238, 0x0U}, -+ {0x5e08123c, 0x0U}, -+ {0x5e081240, 0x0U}, -+ {0x5e081244, 0x0U}, -+ {0x5e081248, 0x0U}, -+ {0x5e08124c, 0x0U}, -+ {0x5e081250, 0x0U}, -+ {0x5e081254, 0x0U}, -+ {0x5e081258, 0x0U}, -+ {0x5e08125c, 0x0U}, -+}; -+ -+/* DRAM fsp configurations */ -+static struct ddrc_cfg_param ddr_dram_fsp0_ddrc_cfg[] = { -+ {0x5e080100, 0x020D2100U}, -+ {0x5e080104, 0x4866000CU}, -+ {0x5e080108, 0xF2F28D47U}, -+ {0x5e08010C, 0x20488010U}, -+ {0x5e080124, 0x0C34030DU}, -+ {0x5e080160, 0x00000101U}, -+ {0x5e08016C, 0x01300000U}, -+ {0x5e080170, 0x8C010509U}, -+ {0x5e080250, 0x00110C11U}, -+ {0x5e080254, 0x00680040U}, -+ {0x5e080258, 0x03003E80U}, -+ {0x5e08025C, 0x40520200U}, -+ {0x5e080300, 0x08120809U}, -+ {0x5e080304, 0x00680F03U}, -+ {0x5e080308, 0x0604061AU}, -+ {0x5e08030C, 0x0030001CU}, -+ {0x5e080310, 0x20610000U}, -+ {0x5e080314, 0x0A0A0407U}, -+}; -+ -+/* PHY Initialize Configuration */ -+static struct ddrphy_cfg_param ddr_ddrphy_cfg[] = { -+ {0x10080, 0x7}, -+ {0x10081, 0x5}, -+ {0x10082, 0x6}, -+ {0x10083, 0x1}, -+ {0x10084, 0x2}, -+ {0x10085, 0x0}, -+ {0x10086, 0x3}, -+ {0x10087, 0x4}, -+ {0x11080, 0x0}, -+ {0x11081, 0x1}, -+ {0x11082, 0x2}, -+ {0x11083, 0x3}, -+ {0x11084, 0x4}, -+ {0x11085, 0x7}, -+ {0x11086, 0x6}, -+ {0x11087, 0x5}, -+ {0x12080, 0x5}, -+ {0x12081, 0x6}, -+ {0x12082, 0x1}, -+ {0x12083, 0x7}, -+ {0x12084, 0x4}, -+ {0x12085, 0x2}, -+ {0x12086, 0x0}, -+ {0x12087, 0x3}, -+ {0x13080, 0x0}, -+ {0x13081, 0x3}, -+ {0x13082, 0x2}, -+ {0x13083, 0x7}, -+ {0x13084, 0x4}, -+ {0x13085, 0x5}, -+ {0x13086, 0x6}, -+ {0x13087, 0x1}, -+ {0x30090, 0x4}, -+ {0x30091, 0x3}, -+ {0x30092, 0x6}, -+ {0x30093, 0x0}, -+ {0x30094, 0x5}, -+ {0x30095, 0x1}, -+ {0x30096, 0x2}, -+ {0x31090, 0x1}, -+ {0x31091, 0x3}, -+ {0x31092, 0x4}, -+ {0x31093, 0x6}, -+ {0x31094, 0x2}, -+ {0x31095, 0x0}, -+ {0x31096, 0x5}, -+ {0x20060, 0x2}, -+ {0x200a5, 0x1}, -+ {0xd0036, 0x0}, -+ {0x200bd, 0xff}, -+ {0x20300, 0x808}, -+ {0x20303, 0x9}, -+ {0x20302, 0x26}, -+ {0x20328, 0x0}, -+ {0x20301, 0x3}, -+ {0x2030b, 0x0}, -+ {0x300a7, 0x0}, -+ {0x310a7, 0x0}, -+ {0x300ae, 0x80}, -+ {0x300ad, 0x80}, -+ {0x300ac, 0x80}, -+ {0x310ae, 0x80}, -+ {0x310ad, 0x80}, -+ {0x310ac, 0x80}, -+ {0xc0086, 0x0}, -+ {0x100a3, 0x833}, -+ {0x110a3, 0x833}, -+ {0x120a3, 0x833}, -+ {0x130a3, 0x833}, -+ {0xc00f1, 0x6000}, -+ {0xc00f2, 0xa9}, -+ {0xc00f3, 0x8000}, -+ {0xc00f4, 0x5}, -+ {0xc00f5, 0x4000}, -+ {0xc00f6, 0x2}, -+ {0xc00f7, 0xf000}, -+ {0xc00f9, 0x6000}, -+ {0xc00fa, 0xa9}, -+ {0xc00fb, 0x8000}, -+ {0xc00fd, 0x4000}, -+ {0xc00ff, 0xf000}, -+ {0x908ff, 0xf}, -+ {0x10093, 0x0}, -+ {0x11093, 0x0}, -+ {0x12093, 0x0}, -+ {0x13093, 0x0}, -+ {0x20051, 0x3}, -+}; -+ -+/* PHY trained csr */ -+static struct ddrphy_cfg_param ddr_ddrphy_trained_csr[] = { -+ {0x200a5, 0x0}, -+ {0xd0036, 0x0}, -+ {0x200bd, 0x0}, -+ {0x20300, 0x0}, -+ {0x20303, 0x0}, -+ {0x20302, 0x0}, -+ {0x20328, 0x0}, -+ {0x20301, 0x0}, -+ {0x2030b, 0x0}, -+ {0x300a7, 0x0}, -+ {0x310a7, 0x0}, -+ {0x300ae, 0x0}, -+ {0x300ad, 0x0}, -+ {0x300ac, 0x0}, -+ {0x310ae, 0x0}, -+ {0x310ad, 0x0}, -+ {0x310ac, 0x0}, -+ {0xc0086, 0x0}, -+ {0x100a3, 0x0}, -+ {0x110a3, 0x0}, -+ {0x120a3, 0x0}, -+ {0x130a3, 0x0}, -+ {0xc00f1, 0x0}, -+ {0xc00f2, 0x0}, -+ {0xc00f3, 0x0}, -+ {0xc00f4, 0x0}, -+ {0xc00f5, 0x0}, -+ {0xc00f6, 0x0}, -+ {0xc00f7, 0x0}, -+ {0xc00f9, 0x0}, -+ {0xc00fa, 0x0}, -+ {0xc00fb, 0x0}, -+ {0xc00fd, 0x0}, -+ {0xc00ff, 0x0}, -+ {0x908ff, 0x0}, -+ {0x10093, 0x0}, -+ {0x11093, 0x0}, -+ {0x12093, 0x0}, -+ {0x13093, 0x0}, -+ {0x20051, 0x0}, -+ {0x90802, 0x0}, -+ {0x20002, 0x0}, -+ {0x20000, 0x0}, -+ {0x90801, 0x0}, -+ {0x90809, 0x0}, -+ {0x1005e, 0x0}, -+ {0x10060, 0x0}, -+ {0x10062, 0x0}, -+ {0x10064, 0x0}, -+ {0x1005f, 0x0}, -+ {0x10061, 0x0}, -+ {0x10063, 0x0}, -+ {0x10065, 0x0}, -+ {0x1105e, 0x0}, -+ {0x11060, 0x0}, -+ {0x11062, 0x0}, -+ {0x11064, 0x0}, -+ {0x1105f, 0x0}, -+ {0x11061, 0x0}, -+ {0x11063, 0x0}, -+ {0x11065, 0x0}, -+ {0x1205e, 0x0}, -+ {0x12060, 0x0}, -+ {0x12062, 0x0}, -+ {0x12064, 0x0}, -+ {0x1205f, 0x0}, -+ {0x12061, 0x0}, -+ {0x12063, 0x0}, -+ {0x12065, 0x0}, -+ {0x1305e, 0x0}, -+ {0x13060, 0x0}, -+ {0x13062, 0x0}, -+ {0x13064, 0x0}, -+ {0x1305f, 0x0}, -+ {0x13061, 0x0}, -+ {0x13063, 0x0}, -+ {0x13065, 0x0}, -+ {0x10005, 0x0}, -+ {0x1000b, 0x0}, -+ {0x11005, 0x0}, -+ {0x1100b, 0x0}, -+ {0x12005, 0x0}, -+ {0x1200b, 0x0}, -+ {0x13005, 0x0}, -+ {0x1300b, 0x0}, -+ {0x20007, 0x0}, -+ {0x20013, 0x0}, -+ {0x30038, 0x0}, -+ {0x30039, 0x0}, -+ {0x3003a, 0x0}, -+ {0x31038, 0x0}, -+ {0x31039, 0x0}, -+ {0x3103a, 0x0}, -+ {0x10038, 0x0}, -+ {0x1003a, 0x0}, -+ {0x11038, 0x0}, -+ {0x1103a, 0x0}, -+ {0x12038, 0x0}, -+ {0x1203a, 0x0}, -+ {0x13038, 0x0}, -+ {0x1303a, 0x0}, -+ {0x1003b, 0x0}, -+ {0x1103b, 0x0}, -+ {0x1203b, 0x0}, -+ {0x1303b, 0x0}, -+ {0x10009, 0x0}, -+ {0x10037, 0x0}, -+ {0x11009, 0x0}, -+ {0x11037, 0x0}, -+ {0x12009, 0x0}, -+ {0x12037, 0x0}, -+ {0x13009, 0x0}, -+ {0x13037, 0x0}, -+ {0x10004, 0x0}, -+ {0x10003, 0x0}, -+ {0x11004, 0x0}, -+ {0x11003, 0x0}, -+ {0x12004, 0x0}, -+ {0x12003, 0x0}, -+ {0x13004, 0x0}, -+ {0x13003, 0x0}, -+ {0x20004, 0x0}, -+ {0x30050, 0x0}, -+ {0x30051, 0x0}, -+ {0x30052, 0x0}, -+ {0x30053, 0x0}, -+ {0x31050, 0x0}, -+ {0x31051, 0x0}, -+ {0x31052, 0x0}, -+ {0x31053, 0x0}, -+ {0x1004e, 0x0}, -+ {0x1004f, 0x0}, -+ {0x10050, 0x0}, -+ {0x10051, 0x0}, -+ {0x1014e, 0x0}, -+ {0x1014f, 0x0}, -+ {0x10150, 0x0}, -+ {0x10151, 0x0}, -+ {0x1024e, 0x0}, -+ {0x1024f, 0x0}, -+ {0x10250, 0x0}, -+ {0x10251, 0x0}, -+ {0x1034e, 0x0}, -+ {0x1034f, 0x0}, -+ {0x10350, 0x0}, -+ {0x10351, 0x0}, -+ {0x1044e, 0x0}, -+ {0x1044f, 0x0}, -+ {0x10450, 0x0}, -+ {0x10451, 0x0}, -+ {0x1054e, 0x0}, -+ {0x1054f, 0x0}, -+ {0x10550, 0x0}, -+ {0x10551, 0x0}, -+ {0x1064e, 0x0}, -+ {0x1064f, 0x0}, -+ {0x10650, 0x0}, -+ {0x10651, 0x0}, -+ {0x1074e, 0x0}, -+ {0x1074f, 0x0}, -+ {0x10750, 0x0}, -+ {0x10751, 0x0}, -+ {0x1084e, 0x0}, -+ {0x1084f, 0x0}, -+ {0x10850, 0x0}, -+ {0x10851, 0x0}, -+ {0x1104e, 0x0}, -+ {0x1104f, 0x0}, -+ {0x11050, 0x0}, -+ {0x11051, 0x0}, -+ {0x1114e, 0x0}, -+ {0x1114f, 0x0}, -+ {0x11150, 0x0}, -+ {0x11151, 0x0}, -+ {0x1124e, 0x0}, -+ {0x1124f, 0x0}, -+ {0x11250, 0x0}, -+ {0x11251, 0x0}, -+ {0x1134e, 0x0}, -+ {0x1134f, 0x0}, -+ {0x11350, 0x0}, -+ {0x11351, 0x0}, -+ {0x1144e, 0x0}, -+ {0x1144f, 0x0}, -+ {0x11450, 0x0}, -+ {0x11451, 0x0}, -+ {0x1154e, 0x0}, -+ {0x1154f, 0x0}, -+ {0x11550, 0x0}, -+ {0x11551, 0x0}, -+ {0x1164e, 0x0}, -+ {0x1164f, 0x0}, -+ {0x11650, 0x0}, -+ {0x11651, 0x0}, -+ {0x1174e, 0x0}, -+ {0x1174f, 0x0}, -+ {0x11750, 0x0}, -+ {0x11751, 0x0}, -+ {0x1184e, 0x0}, -+ {0x1184f, 0x0}, -+ {0x11850, 0x0}, -+ {0x11851, 0x0}, -+ {0x1204e, 0x0}, -+ {0x1204f, 0x0}, -+ {0x12050, 0x0}, -+ {0x12051, 0x0}, -+ {0x1214e, 0x0}, -+ {0x1214f, 0x0}, -+ {0x12150, 0x0}, -+ {0x12151, 0x0}, -+ {0x1224e, 0x0}, -+ {0x1224f, 0x0}, -+ {0x12250, 0x0}, -+ {0x12251, 0x0}, -+ {0x1234e, 0x0}, -+ {0x1234f, 0x0}, -+ {0x12350, 0x0}, -+ {0x12351, 0x0}, -+ {0x1244e, 0x0}, -+ {0x1244f, 0x0}, -+ {0x12450, 0x0}, -+ {0x12451, 0x0}, -+ {0x1254e, 0x0}, -+ {0x1254f, 0x0}, -+ {0x12550, 0x0}, -+ {0x12551, 0x0}, -+ {0x1264e, 0x0}, -+ {0x1264f, 0x0}, -+ {0x12650, 0x0}, -+ {0x12651, 0x0}, -+ {0x1274e, 0x0}, -+ {0x1274f, 0x0}, -+ {0x12750, 0x0}, -+ {0x12751, 0x0}, -+ {0x1284e, 0x0}, -+ {0x1284f, 0x0}, -+ {0x12850, 0x0}, -+ {0x12851, 0x0}, -+ {0x1304e, 0x0}, -+ {0x1304f, 0x0}, -+ {0x13050, 0x0}, -+ {0x13051, 0x0}, -+ {0x1314e, 0x0}, -+ {0x1314f, 0x0}, -+ {0x13150, 0x0}, -+ {0x13151, 0x0}, -+ {0x1324e, 0x0}, -+ {0x1324f, 0x0}, -+ {0x13250, 0x0}, -+ {0x13251, 0x0}, -+ {0x1334e, 0x0}, -+ {0x1334f, 0x0}, -+ {0x13350, 0x0}, -+ {0x13351, 0x0}, -+ {0x1344e, 0x0}, -+ {0x1344f, 0x0}, -+ {0x13450, 0x0}, -+ {0x13451, 0x0}, -+ {0x1354e, 0x0}, -+ {0x1354f, 0x0}, -+ {0x13550, 0x0}, -+ {0x13551, 0x0}, -+ {0x1364e, 0x0}, -+ {0x1364f, 0x0}, -+ {0x13650, 0x0}, -+ {0x13651, 0x0}, -+ {0x1374e, 0x0}, -+ {0x1374f, 0x0}, -+ {0x13750, 0x0}, -+ {0x13751, 0x0}, -+ {0x1384e, 0x0}, -+ {0x1384f, 0x0}, -+ {0x13850, 0x0}, -+ {0x13851, 0x0}, -+ {0x30030, 0x0}, -+ {0x30031, 0x0}, -+ {0x30035, 0x0}, -+ {0x31030, 0x0}, -+ {0x31031, 0x0}, -+ {0x31035, 0x0}, -+ {0x10030, 0x0}, -+ {0x10035, 0x0}, -+ {0x10036, 0x0}, -+ {0x11030, 0x0}, -+ {0x11035, 0x0}, -+ {0x11036, 0x0}, -+ {0x12030, 0x0}, -+ {0x12035, 0x0}, -+ {0x12036, 0x0}, -+ {0x13030, 0x0}, -+ {0x13035, 0x0}, -+ {0x13036, 0x0}, -+ {0x3003c, 0x0}, -+ {0x3103c, 0x0}, -+ {0x1003c, 0x0}, -+ {0x1003d, 0x0}, -+ {0x1003e, 0x0}, -+ {0x1103c, 0x0}, -+ {0x1103d, 0x0}, -+ {0x1103e, 0x0}, -+ {0x1203c, 0x0}, -+ {0x1203d, 0x0}, -+ {0x1203e, 0x0}, -+ {0x1303c, 0x0}, -+ {0x1303d, 0x0}, -+ {0x1303e, 0x0}, -+ {0x20003, 0x0}, -+ {0x10006, 0x0}, -+ {0x11006, 0x0}, -+ {0x12006, 0x0}, -+ {0x13006, 0x0}, -+ {0x20001, 0x0}, -+ {0x20009, 0x0}, -+ {0x20008, 0x0}, -+ {0x200d9, 0x0}, -+ {0x30eef, 0x0}, -+ {0x31eef, 0x0}, -+ {0x20014, 0x0}, -+ {0x9080a, 0x0}, -+ {0x10040, 0x0}, -+ {0x10042, 0x0}, -+ {0x9080d, 0x0}, -+ {0x10043, 0x0}, -+ {0x10044, 0x0}, -+ {0x10045, 0x0}, -+ {0x11040, 0x0}, -+ {0x11042, 0x0}, -+ {0x11043, 0x0}, -+ {0x11044, 0x0}, -+ {0x11045, 0x0}, -+ {0x12040, 0x0}, -+ {0x12042, 0x0}, -+ {0x12043, 0x0}, -+ {0x12044, 0x0}, -+ {0x12045, 0x0}, -+ {0x13040, 0x0}, -+ {0x13042, 0x0}, -+ {0x13043, 0x0}, -+ {0x13044, 0x0}, -+ {0x13045, 0x0}, -+ {0x30040, 0x0}, -+ {0x30041, 0x0}, -+ {0x30042, 0x0}, -+ {0x30043, 0x0}, -+ {0x30330, 0x0}, -+ {0x31040, 0x0}, -+ {0x31041, 0x0}, -+ {0x31042, 0x0}, -+ {0x31043, 0x0}, -+ {0x31330, 0x0}, -+ {0x20331, 0x0}, -+ {0x10048, 0x0}, -+ {0x1004a, 0x0}, -+ {0x1004b, 0x0}, -+ {0x1004c, 0x0}, -+ {0x1004d, 0x0}, -+ {0x11048, 0x0}, -+ {0x1104a, 0x0}, -+ {0x1104b, 0x0}, -+ {0x1104c, 0x0}, -+ {0x1104d, 0x0}, -+ {0x12048, 0x0}, -+ {0x1204a, 0x0}, -+ {0x1204b, 0x0}, -+ {0x1204c, 0x0}, -+ {0x1204d, 0x0}, -+ {0x13048, 0x0}, -+ {0x1304a, 0x0}, -+ {0x1304b, 0x0}, -+ {0x1304c, 0x0}, -+ {0x1304d, 0x0}, -+ {0x30048, 0x0}, -+ {0x30049, 0x0}, -+ {0x3004a, 0x0}, -+ {0x3004b, 0x0}, -+ {0x31048, 0x0}, -+ {0x31049, 0x0}, -+ {0x3104a, 0x0}, -+ {0x3104b, 0x0}, -+ {0x30033, 0x0}, -+ {0x30034, 0x0}, -+ {0x3002e, 0x0}, -+ {0x31033, 0x0}, -+ {0x31034, 0x0}, -+ {0x3102e, 0x0}, -+ {0x10033, 0x0}, -+ {0x1002e, 0x0}, -+ {0x1002f, 0x0}, -+ {0x11033, 0x0}, -+ {0x1102e, 0x0}, -+ {0x1102f, 0x0}, -+ {0x12033, 0x0}, -+ {0x1202e, 0x0}, -+ {0x1202f, 0x0}, -+ {0x13033, 0x0}, -+ {0x1302e, 0x0}, -+ {0x1302f, 0x0}, -+ {0x90806, 0x0}, -+ {0x100e8, 0x0}, -+ {0x100e9, 0x0}, -+ {0x110e8, 0x0}, -+ {0x110e9, 0x0}, -+ {0x120e8, 0x0}, -+ {0x120e9, 0x0}, -+ {0x130e8, 0x0}, -+ {0x130e9, 0x0}, -+ {0x10001, 0x0}, -+ {0x11001, 0x0}, -+ {0x12001, 0x0}, -+ {0x13001, 0x0}, -+ {0x20012, 0x0}, -+ {0x20017, 0x0}, -+ {0x2000a, 0x0}, -+ {0x20186, 0x0}, -+ {0x20187, 0x0}, -+ {0x20010, 0x0}, -+ {0x20011, 0x0}, -+ {0x9080b, 0x0}, -+ {0x9080c, 0x0}, -+ {0x100a5, 0x0}, -+ {0x110a5, 0x0}, -+ {0x120a5, 0x0}, -+ {0x130a5, 0x0}, -+ {0x10014, 0x0}, -+ {0x11014, 0x0}, -+ {0x12014, 0x0}, -+ {0x13014, 0x0}, -+ {0x20035, 0x0}, -+ {0x20036, 0x0}, -+ {0x20037, 0x0}, -+ {0x20038, 0x0}, -+ {0x20039, 0x0}, -+ {0x2003a, 0x0}, -+ {0x2003b, 0x0}, -+ {0x2003c, 0x0}, -+ {0x2003d, 0x0}, -+ {0x2003e, 0x0}, -+ {0x2003f, 0x0}, -+ {0x20040, 0x0}, -+ {0x2002c, 0x0}, -+ {0x2002d, 0x0}, -+ {0x20030, 0x0}, -+ {0x2002e, 0x0}, -+ {0x2002f, 0x0}, -+ {0x2000c, 0x0}, -+ {0x2001b, 0x0}, -+ {0x10007, 0x0}, -+ {0x11007, 0x0}, -+ {0x12007, 0x0}, -+ {0x13007, 0x0}, -+ {0x908f0, 0x0}, -+ {0x908f1, 0x0}, -+ {0x908f2, 0x0}, -+ {0x908f3, 0x0}, -+ {0x908f4, 0x0}, -+ {0x908f5, 0x0}, -+ {0x908f6, 0x0}, -+ {0x908f7, 0x0}, -+ {0x41008, 0x0}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0x0}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x0}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0x0}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0x0}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x0}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0x0}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0x0}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x0}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0x0}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0x0}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x0}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0x0}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0x0}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x0}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0x0}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0x0}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x0}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0x0}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0x0}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x0}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x0}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x0}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x0}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x0}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x0}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0x0}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0x0}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x0}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0x0}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0x0}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x0}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0x0}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0x0}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0x410b8, 0x0}, -+ {0x410b9, 0x0}, -+ {0x410ba, 0x0}, -+ {0x410bb, 0x0}, -+ {0x410bc, 0x0}, -+ {0x410bd, 0x0}, -+ {0x410be, 0x0}, -+ {0x410bf, 0x0}, -+ {0x410c0, 0x0}, -+ {0x410c1, 0x0}, -+ {0x410c2, 0x0}, -+ {0x410c3, 0x0}, -+ {0x410c4, 0x0}, -+ {0x410c5, 0x0}, -+ {0x410c6, 0x0}, -+ {0x410c7, 0x0}, -+ {0x410c8, 0x0}, -+ {0x410c9, 0x0}, -+ {0x410ca, 0x0}, -+ {0x410cb, 0x0}, -+ {0x410cc, 0x0}, -+ {0x410cd, 0x0}, -+ {0x410ce, 0x0}, -+ {0x410cf, 0x0}, -+ {0x410d0, 0x0}, -+ {0x410d1, 0x0}, -+ {0x410d2, 0x0}, -+ {0x410d3, 0x0}, -+ {0x410d4, 0x0}, -+ {0x410d5, 0x0}, -+ {0x410d6, 0x0}, -+ {0x410d7, 0x0}, -+ {0x410d8, 0x0}, -+ {0x410d9, 0x0}, -+ {0x410da, 0x0}, -+ {0x410db, 0x0}, -+ {0x410dc, 0x0}, -+ {0x410dd, 0x0}, -+ {0x410de, 0x0}, -+ {0x410df, 0x0}, -+ {0x410e0, 0x0}, -+ {0x410e1, 0x0}, -+ {0x410e2, 0x0}, -+ {0x410e3, 0x0}, -+ {0x410e4, 0x0}, -+ {0x410e5, 0x0}, -+ {0x410e6, 0x0}, -+ {0x410e7, 0x0}, -+ {0x410e8, 0x0}, -+ {0x410e9, 0x0}, -+ {0x410ea, 0x0}, -+ {0x410eb, 0x0}, -+ {0x410ec, 0x0}, -+ {0x410ed, 0x0}, -+ {0x410ee, 0x0}, -+ {0x410ef, 0x0}, -+ {0x410f0, 0x0}, -+ {0x410f1, 0x0}, -+ {0x410f2, 0x0}, -+ {0x410f3, 0x0}, -+ {0x410f4, 0x0}, -+ {0x410f5, 0x0}, -+ {0x410f6, 0x0}, -+ {0x410f7, 0x0}, -+ {0x410f8, 0x0}, -+ {0x410f9, 0x0}, -+ {0x410fa, 0x0}, -+ {0x410fb, 0x0}, -+ {0x410fc, 0x0}, -+ {0x410fd, 0x0}, -+ {0x410fe, 0x0}, -+ {0x410ff, 0x0}, -+ {0x41100, 0x0}, -+ {0x41101, 0x0}, -+ {0x41102, 0x0}, -+ {0x41103, 0x0}, -+ {0x41104, 0x0}, -+ {0x41105, 0x0}, -+ {0x41106, 0x0}, -+ {0x41107, 0x0}, -+ {0x41108, 0x0}, -+ {0x41109, 0x0}, -+ {0x4110a, 0x0}, -+ {0x4110b, 0x0}, -+ {0x4110c, 0x0}, -+ {0x4110d, 0x0}, -+ {0x4110e, 0x0}, -+ {0x4110f, 0x0}, -+ {0x41110, 0x0}, -+ {0x41111, 0x0}, -+ {0x41112, 0x0}, -+ {0x41113, 0x0}, -+ {0x41114, 0x0}, -+ {0x41115, 0x0}, -+ {0x41116, 0x0}, -+ {0x41117, 0x0}, -+ {0x41118, 0x0}, -+ {0x41119, 0x0}, -+ {0x4111a, 0x0}, -+ {0x4111b, 0x0}, -+ {0x4111c, 0x0}, -+ {0x4111d, 0x0}, -+ {0x4111e, 0x0}, -+ {0x4111f, 0x0}, -+ {0x41120, 0x0}, -+ {0x41121, 0x0}, -+ {0x41122, 0x0}, -+ {0x41123, 0x0}, -+ {0x41124, 0x0}, -+ {0x41125, 0x0}, -+ {0x41126, 0x0}, -+ {0x41127, 0x0}, -+ {0x41128, 0x0}, -+ {0x41129, 0x0}, -+ {0x4112a, 0x0}, -+ {0x4112b, 0x0}, -+ {0x4112c, 0x0}, -+ {0x4112d, 0x0}, -+ {0x4112e, 0x0}, -+ {0x4112f, 0x0}, -+ {0x41130, 0x0}, -+ {0x41131, 0x0}, -+ {0x41132, 0x0}, -+ {0x41133, 0x0}, -+ {0x41134, 0x0}, -+ {0x41135, 0x0}, -+ {0x41136, 0x0}, -+ {0x41137, 0x0}, -+ {0x41138, 0x0}, -+ {0x41139, 0x0}, -+ {0x4113a, 0x0}, -+ {0x4113b, 0x0}, -+ {0x4113c, 0x0}, -+ {0x4113d, 0x0}, -+ {0x4113e, 0x0}, -+ {0x4113f, 0x0}, -+ {0x41140, 0x0}, -+ {0x41141, 0x0}, -+ {0x41142, 0x0}, -+ {0x41143, 0x0}, -+ {0x41144, 0x0}, -+ {0x41145, 0x0}, -+ {0x41146, 0x0}, -+ {0x41147, 0x0}, -+ {0x41148, 0x0}, -+ {0x41149, 0x0}, -+ {0x4114a, 0x0}, -+ {0x4114b, 0x0}, -+ {0x4114c, 0x0}, -+ {0x4114d, 0x0}, -+ {0x4114e, 0x0}, -+ {0x4114f, 0x0}, -+ {0x41150, 0x0}, -+ {0x41151, 0x0}, -+ {0x41152, 0x0}, -+ {0x41153, 0x0}, -+ {0x41154, 0x0}, -+ {0x41155, 0x0}, -+ {0x41156, 0x0}, -+ {0x41157, 0x0}, -+ {0x41158, 0x0}, -+ {0x41159, 0x0}, -+ {0x4115a, 0x0}, -+ {0x4115b, 0x0}, -+ {0x4115c, 0x0}, -+ {0x4115d, 0x0}, -+ {0x4115e, 0x0}, -+ {0x4115f, 0x0}, -+ {0x41160, 0x0}, -+ {0x41161, 0x0}, -+ {0x41162, 0x0}, -+ {0x41163, 0x0}, -+ {0x41164, 0x0}, -+ {0x41165, 0x0}, -+ {0x41166, 0x0}, -+ {0x41167, 0x0}, -+ {0x41168, 0x0}, -+ {0x41169, 0x0}, -+ {0x4116a, 0x0}, -+ {0x4116b, 0x0}, -+ {0x4116c, 0x0}, -+ {0x4116d, 0x0}, -+ {0x4116e, 0x0}, -+ {0x4116f, 0x0}, -+ {0x41170, 0x0}, -+ {0x41171, 0x0}, -+ {0x41172, 0x0}, -+ {0x41173, 0x0}, -+ {0x41174, 0x0}, -+ {0x41175, 0x0}, -+ {0x41176, 0x0}, -+ {0x41177, 0x0}, -+ {0x41178, 0x0}, -+ {0x41179, 0x0}, -+ {0x4117a, 0x0}, -+ {0x4117b, 0x0}, -+ {0x4117c, 0x0}, -+ {0x4117d, 0x0}, -+ {0x4117e, 0x0}, -+ {0x4117f, 0x0}, -+ {0x41180, 0x0}, -+ {0x41181, 0x0}, -+ {0x41182, 0x0}, -+ {0x41183, 0x0}, -+ {0x41184, 0x0}, -+ {0x41185, 0x0}, -+ {0x41186, 0x0}, -+ {0x41187, 0x0}, -+ {0x41188, 0x0}, -+ {0x41189, 0x0}, -+ {0x4118a, 0x0}, -+ {0x4118b, 0x0}, -+ {0x4118c, 0x0}, -+ {0x4118d, 0x0}, -+ {0x4118e, 0x0}, -+ {0x4118f, 0x0}, -+ {0x41190, 0x0}, -+ {0x41191, 0x0}, -+ {0x41192, 0x0}, -+ {0x41193, 0x0}, -+ {0x41194, 0x0}, -+ {0x41195, 0x0}, -+ {0x41196, 0x0}, -+ {0x41197, 0x0}, -+ {0x41198, 0x0}, -+ {0x41199, 0x0}, -+ {0x4119a, 0x0}, -+ {0x4119b, 0x0}, -+ {0x4119c, 0x0}, -+ {0x4119d, 0x0}, -+ {0x4119e, 0x0}, -+ {0x4119f, 0x0}, -+ {0x411a0, 0x0}, -+ {0x411a1, 0x0}, -+ {0x411a2, 0x0}, -+ {0x411a3, 0x0}, -+ {0x411a4, 0x0}, -+ {0x411a5, 0x0}, -+ {0x411a6, 0x0}, -+ {0x411a7, 0x0}, -+ {0x411a8, 0x0}, -+ {0x411a9, 0x0}, -+ {0x411aa, 0x0}, -+ {0x411ab, 0x0}, -+ {0x411ac, 0x0}, -+ {0x411ad, 0x0}, -+ {0x411ae, 0x0}, -+ {0x411af, 0x0}, -+ {0x411b0, 0x0}, -+ {0x411b1, 0x0}, -+ {0x411b2, 0x0}, -+ {0x411b3, 0x0}, -+ {0x411b4, 0x0}, -+ {0x411b5, 0x0}, -+ {0x411b6, 0x0}, -+ {0x411b7, 0x0}, -+ {0x411b8, 0x0}, -+ {0x411b9, 0x0}, -+ {0x411ba, 0x0}, -+ {0x411bb, 0x0}, -+ {0x411bc, 0x0}, -+ {0x411bd, 0x0}, -+ {0x411be, 0x0}, -+ {0x411bf, 0x0}, -+ {0x411c0, 0x0}, -+ {0x411c1, 0x0}, -+ {0x411c2, 0x0}, -+ {0x411c3, 0x0}, -+ {0x411c4, 0x0}, -+ {0x411c5, 0x0}, -+ {0x411c6, 0x0}, -+ {0x411c7, 0x0}, -+ {0x20015, 0x0}, -+ {0x2004a, 0x0}, -+ {0x2004b, 0x0}, -+ {0x2004c, 0x0}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x0}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20041, 0x0}, -+ {0x20045, 0x0}, -+ {0x10057, 0x0}, -+ {0x11057, 0x0}, -+ {0x12057, 0x0}, -+ {0x13057, 0x0}, -+ {0x1000f, 0x0}, -+ {0x1100f, 0x0}, -+ {0x1200f, 0x0}, -+ {0x1300f, 0x0}, -+ {0x90803, 0x0}, -+ {0x90804, 0x0}, -+ {0x90805, 0x0}, -+ {0x90903, 0x0}, -+ {0x9090b, 0x0}, -+ {0x90811, 0x0}, -+ {0x90812, 0x0}, -+ {0x20072, 0x0}, -+ {0x9080e, 0x0}, -+ {0x20073, 0x0}, -+ {0x9080f, 0x0}, -+ {0x41000, 0x0}, -+ {0x41001, 0x0}, -+ {0x41002, 0x0}, -+ {0x41003, 0x0}, -+ {0x41004, 0x0}, -+ {0x41005, 0x0}, -+ {0x41006, 0x0}, -+ {0x41007, 0x0}, -+ {0x41388, 0x0}, -+ {0x41389, 0x0}, -+ {0x4138a, 0x0}, -+ {0x4138b, 0x0}, -+ {0x4138c, 0x0}, -+ {0x4138d, 0x0}, -+ {0x4138e, 0x0}, -+ {0x4138f, 0x0}, -+ {0x41390, 0x0}, -+ {0x41391, 0x0}, -+ {0x41392, 0x0}, -+ {0x41393, 0x0}, -+ {0x41394, 0x0}, -+ {0x41395, 0x0}, -+ {0x41396, 0x0}, -+ {0x41397, 0x0}, -+ {0x41398, 0x0}, -+ {0x41399, 0x0}, -+ {0x4139a, 0x0}, -+ {0x4139b, 0x0}, -+ {0x4139c, 0x0}, -+ {0x4139d, 0x0}, -+ {0x4139e, 0x0}, -+ {0x4139f, 0x0}, -+ {0x413a0, 0x0}, -+ {0x413a1, 0x0}, -+ {0x413a2, 0x0}, -+ {0x413a3, 0x0}, -+ {0x413a4, 0x0}, -+ {0x413a5, 0x0}, -+ {0x413a6, 0x0}, -+ {0x413a7, 0x0}, -+ {0x413a8, 0x0}, -+ {0x413a9, 0x0}, -+ {0x413aa, 0x0}, -+ {0x413ab, 0x0}, -+ {0x413ac, 0x0}, -+ {0x413ad, 0x0}, -+ {0x413ae, 0x0}, -+ {0x413af, 0x0}, -+ {0x413b0, 0x0}, -+ {0x413b1, 0x0}, -+ {0x413b2, 0x0}, -+ {0x413b3, 0x0}, -+ {0x413b4, 0x0}, -+ {0x413b5, 0x0}, -+ {0x413b6, 0x0}, -+ {0x413b7, 0x0}, -+ {0x413b8, 0x0}, -+ {0x413b9, 0x0}, -+ {0x413ba, 0x0}, -+ {0x413bb, 0x0}, -+ {0x413bc, 0x0}, -+ {0x413bd, 0x0}, -+ {0x413be, 0x0}, -+ {0x413bf, 0x0}, -+ {0x413c0, 0x0}, -+ {0x413c1, 0x0}, -+ {0x413c2, 0x0}, -+ {0x413c3, 0x0}, -+ {0x413c4, 0x0}, -+ {0x413c5, 0x0}, -+ {0x413c6, 0x0}, -+ {0x413c7, 0x0}, -+ {0x413c8, 0x0}, -+ {0x413c9, 0x0}, -+ {0x413ca, 0x0}, -+ {0x413cb, 0x0}, -+ {0x413cc, 0x0}, -+ {0x413cd, 0x0}, -+ {0x413ce, 0x0}, -+ {0x413cf, 0x0}, -+ {0x413d0, 0x0}, -+ {0x413d1, 0x0}, -+ {0x413d2, 0x0}, -+ {0x413d3, 0x0}, -+ {0x413d4, 0x0}, -+ {0x413d5, 0x0}, -+ {0x413d6, 0x0}, -+ {0x413d7, 0x0}, -+ {0x413d8, 0x0}, -+ {0x413d9, 0x0}, -+ {0x413da, 0x0}, -+ {0x413db, 0x0}, -+ {0x413dc, 0x0}, -+ {0x413dd, 0x0}, -+ {0x413de, 0x0}, -+ {0x413df, 0x0}, -+ {0x413e0, 0x0}, -+ {0x413e1, 0x0}, -+ {0x413e2, 0x0}, -+ {0x413e3, 0x0}, -+ {0x413e4, 0x0}, -+ {0x413e5, 0x0}, -+ {0x413e6, 0x0}, -+ {0x413e7, 0x0}, -+ {0x413e8, 0x0}, -+ {0x413e9, 0x0}, -+ {0x413ea, 0x0}, -+ {0x413eb, 0x0}, -+ {0x413ec, 0x0}, -+ {0x413ed, 0x0}, -+ {0x413ee, 0x0}, -+ {0x413ef, 0x0}, -+ {0x413f0, 0x0}, -+ {0x413f1, 0x0}, -+ {0x413f2, 0x0}, -+ {0x413f3, 0x0}, -+ {0x413f4, 0x0}, -+ {0x413f5, 0x0}, -+ {0x413f6, 0x0}, -+ {0x413f7, 0x0}, -+ {0x413f8, 0x0}, -+ {0x413f9, 0x0}, -+ {0x413fa, 0x0}, -+ {0x413fb, 0x0}, -+ {0x413fc, 0x0}, -+ {0x413fd, 0x0}, -+ {0x413fe, 0x0}, -+ {0x413ff, 0x0}, -+ {0x41400, 0x0}, -+ {0x41401, 0x0}, -+ {0x41402, 0x0}, -+ {0x41403, 0x0}, -+ {0x41404, 0x0}, -+ {0x41405, 0x0}, -+ {0x41406, 0x0}, -+ {0x41407, 0x0}, -+ {0x41408, 0x0}, -+ {0x41409, 0x0}, -+ {0x4140a, 0x0}, -+ {0x4140b, 0x0}, -+ {0x4140c, 0x0}, -+ {0x4140d, 0x0}, -+ {0x4140e, 0x0}, -+ {0x4140f, 0x0}, -+ {0x41410, 0x0}, -+ {0x41411, 0x0}, -+ {0x41412, 0x0}, -+ {0x41413, 0x0}, -+ {0x41414, 0x0}, -+ {0x41415, 0x0}, -+ {0x41416, 0x0}, -+ {0x41417, 0x0}, -+ {0x41418, 0x0}, -+ {0x41419, 0x0}, -+ {0x4141a, 0x0}, -+ {0x4141b, 0x0}, -+ {0x4141c, 0x0}, -+ {0x4141d, 0x0}, -+ {0x4141e, 0x0}, -+ {0x4141f, 0x0}, -+ {0x41420, 0x0}, -+ {0x41421, 0x0}, -+ {0x41422, 0x0}, -+ {0x41423, 0x0}, -+ {0x41424, 0x0}, -+ {0x41425, 0x0}, -+ {0x41426, 0x0}, -+ {0x41427, 0x0}, -+ {0x41428, 0x0}, -+ {0x41429, 0x0}, -+ {0x4142a, 0x0}, -+ {0x4142b, 0x0}, -+ {0x4142c, 0x0}, -+ {0x4142d, 0x0}, -+ {0x4142e, 0x0}, -+ {0x4142f, 0x0}, -+ {0x41430, 0x0}, -+ {0x41431, 0x0}, -+ {0x41432, 0x0}, -+ {0x41433, 0x0}, -+ {0x41434, 0x0}, -+ {0x41435, 0x0}, -+ {0x41436, 0x0}, -+ {0x41437, 0x0}, -+ {0x41438, 0x0}, -+ {0x41439, 0x0}, -+ {0x4143a, 0x0}, -+ {0x4143b, 0x0}, -+ {0x4143c, 0x0}, -+ {0x4143d, 0x0}, -+ {0x4143e, 0x0}, -+ {0x4143f, 0x0}, -+ {0x41440, 0x0}, -+ {0x41441, 0x0}, -+ {0x41442, 0x0}, -+ {0x41443, 0x0}, -+ {0x41444, 0x0}, -+ {0x41445, 0x0}, -+ {0x41446, 0x0}, -+ {0x41447, 0x0}, -+ {0x41448, 0x0}, -+ {0x41449, 0x0}, -+ {0x4144a, 0x0}, -+ {0x4144b, 0x0}, -+ {0x4144c, 0x0}, -+ {0x4144d, 0x0}, -+ {0x4144e, 0x0}, -+ {0x4144f, 0x0}, -+ {0x41450, 0x0}, -+ {0x41451, 0x0}, -+ {0x41452, 0x0}, -+ {0x41453, 0x0}, -+ {0x41454, 0x0}, -+ {0x41455, 0x0}, -+ {0x41456, 0x0}, -+ {0x41457, 0x0}, -+ {0x41458, 0x0}, -+ {0x41459, 0x0}, -+ {0x4145a, 0x0}, -+ {0x4145b, 0x0}, -+ {0x4145c, 0x0}, -+ {0x4145d, 0x0}, -+ {0x4145e, 0x0}, -+ {0x4145f, 0x0}, -+ {0x41460, 0x0}, -+ {0x41461, 0x0}, -+ {0x41462, 0x0}, -+ {0x41463, 0x0}, -+ {0x41464, 0x0}, -+ {0x41465, 0x0}, -+ {0x41466, 0x0}, -+ {0x41467, 0x0}, -+ {0x41468, 0x0}, -+ {0x41469, 0x0}, -+ {0x4146a, 0x0}, -+ {0x4146b, 0x0}, -+ {0x4146c, 0x0}, -+ {0x4146d, 0x0}, -+ {0x4146e, 0x0}, -+ {0x4146f, 0x0}, -+ {0x41470, 0x0}, -+ {0x41471, 0x0}, -+ {0x41472, 0x0}, -+ {0x41473, 0x0}, -+ {0x41474, 0x0}, -+ {0x41475, 0x0}, -+ {0x41476, 0x0}, -+ {0x41477, 0x0}, -+ {0x41478, 0x0}, -+ {0x41479, 0x0}, -+ {0x4147a, 0x0}, -+ {0x4147b, 0x0}, -+ {0x4147c, 0x0}, -+ {0x4147d, 0x0}, -+ {0x4147e, 0x0}, -+ {0x4147f, 0x0}, -+ {0x41480, 0x0}, -+ {0x41481, 0x0}, -+ {0x41482, 0x0}, -+ {0x41483, 0x0}, -+ {0x41484, 0x0}, -+ {0x41485, 0x0}, -+ {0x41486, 0x0}, -+ {0x41487, 0x0}, -+ {0x41488, 0x0}, -+ {0x41489, 0x0}, -+ {0x4148a, 0x0}, -+ {0x4148b, 0x0}, -+ {0x4148c, 0x0}, -+ {0x4148d, 0x0}, -+ {0x4148e, 0x0}, -+ {0x4148f, 0x0}, -+ {0x41490, 0x0}, -+ {0x41491, 0x0}, -+ {0x41492, 0x0}, -+ {0x41493, 0x0}, -+ {0x41494, 0x0}, -+ {0x41495, 0x0}, -+ {0x41496, 0x0}, -+ {0x41497, 0x0}, -+ {0x41498, 0x0}, -+ {0x41499, 0x0}, -+ {0x4149a, 0x0}, -+ {0x4149b, 0x0}, -+ {0x4149c, 0x0}, -+ {0x4149d, 0x0}, -+ {0x4149e, 0x0}, -+ {0x4149f, 0x0}, -+ {0x414a0, 0x0}, -+ {0x414a1, 0x0}, -+ {0x414a2, 0x0}, -+ {0x414a3, 0x0}, -+ {0x414a4, 0x0}, -+ {0x414a5, 0x0}, -+ {0x414a6, 0x0}, -+ {0x414a7, 0x0}, -+ {0x414a8, 0x0}, -+ {0x414a9, 0x0}, -+ {0x414aa, 0x0}, -+ {0x414ab, 0x0}, -+ {0x414ac, 0x0}, -+ {0x414ad, 0x0}, -+ {0x414ae, 0x0}, -+ {0x414af, 0x0}, -+ {0x414b0, 0x0}, -+ {0x414b1, 0x0}, -+ {0x414b2, 0x0}, -+ {0x414b3, 0x0}, -+ {0x414b4, 0x0}, -+ {0x414b5, 0x0}, -+ {0x414b6, 0x0}, -+ {0x414b7, 0x0}, -+ {0x414b8, 0x0}, -+ {0x414b9, 0x0}, -+ {0x414ba, 0x0}, -+ {0x414bb, 0x0}, -+ {0x414bc, 0x0}, -+ {0x414bd, 0x0}, -+ {0x414be, 0x0}, -+ {0x414bf, 0x0}, -+ {0x414c0, 0x0}, -+ {0x414c1, 0x0}, -+ {0x414c2, 0x0}, -+ {0x414c3, 0x0}, -+ {0x414c4, 0x0}, -+ {0x414c5, 0x0}, -+ {0x414c6, 0x0}, -+ {0x414c7, 0x0}, -+ {0x414c8, 0x0}, -+ {0x414c9, 0x0}, -+ {0x414ca, 0x0}, -+ {0x414cb, 0x0}, -+ {0x414cc, 0x0}, -+ {0x414cd, 0x0}, -+ {0x414ce, 0x0}, -+ {0x414cf, 0x0}, -+ {0x414d0, 0x0}, -+ {0x414d1, 0x0}, -+ {0x414d2, 0x0}, -+ {0x414d3, 0x0}, -+ {0x414d4, 0x0}, -+ {0x414d5, 0x0}, -+ {0x414d6, 0x0}, -+ {0x414d7, 0x0}, -+ {0x414d8, 0x0}, -+ {0x414d9, 0x0}, -+ {0x414da, 0x0}, -+ {0x414db, 0x0}, -+ {0x414dc, 0x0}, -+ {0x414dd, 0x0}, -+ {0x414de, 0x0}, -+ {0x414df, 0x0}, -+ {0x414e0, 0x0}, -+ {0x414e1, 0x0}, -+ {0x414e2, 0x0}, -+ {0x414e3, 0x0}, -+ {0x414e4, 0x0}, -+ {0x414e5, 0x0}, -+ {0x414e6, 0x0}, -+ {0x414e7, 0x0}, -+ {0x414e8, 0x0}, -+ {0x414e9, 0x0}, -+ {0x414ea, 0x0}, -+ {0x414eb, 0x0}, -+ {0x414ec, 0x0}, -+ {0x414ed, 0x0}, -+ {0x414ee, 0x0}, -+ {0x414ef, 0x0}, -+ {0x414f0, 0x0}, -+ {0x414f1, 0x0}, -+ {0x414f2, 0x0}, -+ {0x414f3, 0x0}, -+ {0x414f4, 0x0}, -+ {0x414f5, 0x0}, -+ {0x414f6, 0x0}, -+ {0x414f7, 0x0}, -+ {0x414f8, 0x0}, -+ {0x414f9, 0x0}, -+ {0x414fa, 0x0}, -+ {0x414fb, 0x0}, -+ {0x414fc, 0x0}, -+ {0x414fd, 0x0}, -+ {0x414fe, 0x0}, -+ {0x414ff, 0x0}, -+ {0x41500, 0x0}, -+ {0x41501, 0x0}, -+ {0x41502, 0x0}, -+ {0x41503, 0x0}, -+ {0x41504, 0x0}, -+ {0x41505, 0x0}, -+ {0x41506, 0x0}, -+ {0x41507, 0x0}, -+ {0x41508, 0x0}, -+ {0x41509, 0x0}, -+ {0x4150a, 0x0}, -+ {0x4150b, 0x0}, -+ {0x4150c, 0x0}, -+ {0x4150d, 0x0}, -+ {0x4150e, 0x0}, -+ {0x4150f, 0x0}, -+ {0x41510, 0x0}, -+ {0x41511, 0x0}, -+ {0x41512, 0x0}, -+ {0x41513, 0x0}, -+ {0x41514, 0x0}, -+ {0x41515, 0x0}, -+ {0x41516, 0x0}, -+ {0x41517, 0x0}, -+ {0x41518, 0x0}, -+ {0x41519, 0x0}, -+ {0x4151a, 0x0}, -+ {0x4151b, 0x0}, -+ {0x4151c, 0x0}, -+ {0x4151d, 0x0}, -+ {0x4151e, 0x0}, -+ {0x4151f, 0x0}, -+ {0x41520, 0x0}, -+ {0x41521, 0x0}, -+ {0x41522, 0x0}, -+ {0x41523, 0x0}, -+ {0x41524, 0x0}, -+ {0x41525, 0x0}, -+ {0x41526, 0x0}, -+ {0x41527, 0x0}, -+ {0x41528, 0x0}, -+ {0x41529, 0x0}, -+ {0x4152a, 0x0}, -+ {0x4152b, 0x0}, -+ {0x4152c, 0x0}, -+ {0x4152d, 0x0}, -+ {0x4152e, 0x0}, -+ {0x4152f, 0x0}, -+ {0x41530, 0x0}, -+ {0x41531, 0x0}, -+ {0x41532, 0x0}, -+ {0x41533, 0x0}, -+ {0x41534, 0x0}, -+ {0x41535, 0x0}, -+ {0x41536, 0x0}, -+ {0x41537, 0x0}, -+ {0x41538, 0x0}, -+ {0x41539, 0x0}, -+ {0x4153a, 0x0}, -+ {0x4153b, 0x0}, -+ {0x4153c, 0x0}, -+ {0x4153d, 0x0}, -+ {0x4153e, 0x0}, -+ {0x4153f, 0x0}, -+ {0x41540, 0x0}, -+ {0x41541, 0x0}, -+ {0x41542, 0x0}, -+ {0x41543, 0x0}, -+ {0x41544, 0x0}, -+ {0x41545, 0x0}, -+ {0x41546, 0x0}, -+ {0x41547, 0x0}, -+ {0x41548, 0x0}, -+ {0x41549, 0x0}, -+ {0x4154a, 0x0}, -+ {0x4154b, 0x0}, -+ {0x4154c, 0x0}, -+ {0x4154d, 0x0}, -+ {0x4154e, 0x0}, -+ {0x4154f, 0x0}, -+ {0x41550, 0x0}, -+ {0x41551, 0x0}, -+ {0x41552, 0x0}, -+ {0x41553, 0x0}, -+ {0x41554, 0x0}, -+ {0x41555, 0x0}, -+ {0x41556, 0x0}, -+ {0x41557, 0x0}, -+ {0x41558, 0x0}, -+ {0x41559, 0x0}, -+ {0x4155a, 0x0}, -+ {0x4155b, 0x0}, -+ {0x4155c, 0x0}, -+ {0x4155d, 0x0}, -+ {0x4155e, 0x0}, -+ {0x4155f, 0x0}, -+ {0x41560, 0x0}, -+ {0x41561, 0x0}, -+ {0x41562, 0x0}, -+ {0x41563, 0x0}, -+ {0x41564, 0x0}, -+ {0x41565, 0x0}, -+ {0x41566, 0x0}, -+ {0x41567, 0x0}, -+ {0x41568, 0x0}, -+ {0x41569, 0x0}, -+ {0x4156a, 0x0}, -+ {0x4156b, 0x0}, -+ {0x4156c, 0x0}, -+ {0x4156d, 0x0}, -+ {0x4156e, 0x0}, -+ {0x4156f, 0x0}, -+ {0x41570, 0x0}, -+ {0x41571, 0x0}, -+ {0x41572, 0x0}, -+ {0x41573, 0x0}, -+ {0x41574, 0x0}, -+ {0x41575, 0x0}, -+ {0x41576, 0x0}, -+ {0x41577, 0x0}, -+ {0x41578, 0x0}, -+ {0x41579, 0x0}, -+ {0x4157a, 0x0}, -+ {0x4157b, 0x0}, -+ {0x4157c, 0x0}, -+ {0x4157d, 0x0}, -+ {0x4157e, 0x0}, -+ {0x4157f, 0x0}, -+ {0x41580, 0x0}, -+ {0x41581, 0x0}, -+ {0x41582, 0x0}, -+ {0x41583, 0x0}, -+ {0x41584, 0x0}, -+ {0x41585, 0x0}, -+ {0x41586, 0x0}, -+ {0x41587, 0x0}, -+ {0x41588, 0x0}, -+ {0x41589, 0x0}, -+ {0x4158a, 0x0}, -+ {0x4158b, 0x0}, -+ {0x4158c, 0x0}, -+ {0x4158d, 0x0}, -+ {0x4158e, 0x0}, -+ {0x4158f, 0x0}, -+ {0x41590, 0x0}, -+ {0x41591, 0x0}, -+ {0x41592, 0x0}, -+ {0x41593, 0x0}, -+ {0x41594, 0x0}, -+ {0x41595, 0x0}, -+ {0x41596, 0x0}, -+ {0x41597, 0x0}, -+ {0x41598, 0x0}, -+ {0x41599, 0x0}, -+ {0x4159a, 0x0}, -+ {0x4159b, 0x0}, -+ {0x4159c, 0x0}, -+ {0x4159d, 0x0}, -+ {0x4159e, 0x0}, -+ {0x4159f, 0x0}, -+ {0x415a0, 0x0}, -+ {0x415a1, 0x0}, -+ {0x415a2, 0x0}, -+ {0x415a3, 0x0}, -+ {0x415a4, 0x0}, -+ {0x415a5, 0x0}, -+ {0x415a6, 0x0}, -+ {0x415a7, 0x0}, -+ {0x415a8, 0x0}, -+ {0x415a9, 0x0}, -+ {0x415aa, 0x0}, -+ {0x415ab, 0x0}, -+ {0x415ac, 0x0}, -+ {0x415ad, 0x0}, -+ {0x415ae, 0x0}, -+ {0x415af, 0x0}, -+ {0x415b0, 0x0}, -+ {0x415b1, 0x0}, -+ {0x415b2, 0x0}, -+ {0x415b3, 0x0}, -+ {0x415b4, 0x0}, -+ {0x415b5, 0x0}, -+ {0x415b6, 0x0}, -+ {0x415b7, 0x0}, -+ {0x415b8, 0x0}, -+ {0x415b9, 0x0}, -+ {0x415ba, 0x0}, -+ {0x415bb, 0x0}, -+ {0x415bc, 0x0}, -+ {0x415bd, 0x0}, -+ {0x415be, 0x0}, -+ {0x415bf, 0x0}, -+ {0x415c0, 0x0}, -+ {0x415c1, 0x0}, -+ {0x415c2, 0x0}, -+ {0x415c3, 0x0}, -+ {0x415c4, 0x0}, -+ {0x415c5, 0x0}, -+ {0x415c6, 0x0}, -+ {0x415c7, 0x0}, -+ {0x415c8, 0x0}, -+ {0x415c9, 0x0}, -+ {0x415ca, 0x0}, -+ {0x415cb, 0x0}, -+ {0x415cc, 0x0}, -+ {0x415cd, 0x0}, -+ {0x415ce, 0x0}, -+ {0x415cf, 0x0}, -+ {0x415d0, 0x0}, -+ {0x415d1, 0x0}, -+ {0x415d2, 0x0}, -+ {0x415d3, 0x0}, -+ {0x415d4, 0x0}, -+ {0x415d5, 0x0}, -+ {0x415d6, 0x0}, -+ {0x415d7, 0x0}, -+ {0x415d8, 0x0}, -+ {0x415d9, 0x0}, -+ {0x415da, 0x0}, -+ {0x415db, 0x0}, -+ {0x415dc, 0x0}, -+ {0x415dd, 0x0}, -+ {0x415de, 0x0}, -+ {0x415df, 0x0}, -+ {0x415e0, 0x0}, -+ {0x415e1, 0x0}, -+ {0x415e2, 0x0}, -+ {0x415e3, 0x0}, -+ {0x415e4, 0x0}, -+ {0x415e5, 0x0}, -+ {0x415e6, 0x0}, -+ {0x415e7, 0x0}, -+ {0x415e8, 0x0}, -+ {0x415e9, 0x0}, -+ {0x415ea, 0x0}, -+ {0x415eb, 0x0}, -+ {0x415ec, 0x0}, -+ {0x415ed, 0x0}, -+ {0x415ee, 0x0}, -+ {0x415ef, 0x0}, -+ {0x415f0, 0x0}, -+ {0x415f1, 0x0}, -+ {0x415f2, 0x0}, -+ {0x415f3, 0x0}, -+ {0x415f4, 0x0}, -+ {0x415f5, 0x0}, -+ {0x415f6, 0x0}, -+ {0x415f7, 0x0}, -+ {0x415f8, 0x0}, -+ {0x415f9, 0x0}, -+ {0x415fa, 0x0}, -+ {0x415fb, 0x0}, -+ {0x415fc, 0x0}, -+ {0x415fd, 0x0}, -+ {0x415fe, 0x0}, -+ {0x415ff, 0x0}, -+ {0x41600, 0x0}, -+ {0x41601, 0x0}, -+ {0x41602, 0x0}, -+ {0x41603, 0x0}, -+ {0x41604, 0x0}, -+ {0x41605, 0x0}, -+ {0x41606, 0x0}, -+ {0x41607, 0x0}, -+ {0x41608, 0x0}, -+ {0x41609, 0x0}, -+ {0x4160a, 0x0}, -+ {0x4160b, 0x0}, -+ {0x4160c, 0x0}, -+ {0x4160d, 0x0}, -+ {0x4160e, 0x0}, -+ {0x4160f, 0x0}, -+ {0x41610, 0x0}, -+ {0x41611, 0x0}, -+ {0x41612, 0x0}, -+ {0x41613, 0x0}, -+ {0x41614, 0x0}, -+ {0x41615, 0x0}, -+ {0x41616, 0x0}, -+ {0x41617, 0x0}, -+ {0x41618, 0x0}, -+ {0x41619, 0x0}, -+ {0x4161a, 0x0}, -+ {0x4161b, 0x0}, -+ {0x4161c, 0x0}, -+ {0x4161d, 0x0}, -+ {0x4161e, 0x0}, -+ {0x4161f, 0x0}, -+ {0x41620, 0x0}, -+ {0x41621, 0x0}, -+ {0x41622, 0x0}, -+ {0x41623, 0x0}, -+ {0x41624, 0x0}, -+ {0x41625, 0x0}, -+ {0x41626, 0x0}, -+ {0x41627, 0x0}, -+ {0x41628, 0x0}, -+ {0x41629, 0x0}, -+ {0x4162a, 0x0}, -+ {0x4162b, 0x0}, -+ {0x4162c, 0x0}, -+ {0x4162d, 0x0}, -+ {0x4162e, 0x0}, -+ {0x4162f, 0x0}, -+ {0x41630, 0x0}, -+ {0x41631, 0x0}, -+ {0x41632, 0x0}, -+ {0x41633, 0x0}, -+ {0x41634, 0x0}, -+ {0x41635, 0x0}, -+ {0x41636, 0x0}, -+ {0x41637, 0x0}, -+ {0x41638, 0x0}, -+ {0x41639, 0x0}, -+ {0x4163a, 0x0}, -+ {0x4163b, 0x0}, -+ {0x4163c, 0x0}, -+ {0x4163d, 0x0}, -+ {0x4163e, 0x0}, -+ {0x4163f, 0x0}, -+ {0x41640, 0x0}, -+ {0x41641, 0x0}, -+ {0x41642, 0x0}, -+ {0x41643, 0x0}, -+ {0x41644, 0x0}, -+ {0x41645, 0x0}, -+ {0x41646, 0x0}, -+ {0x41647, 0x0}, -+ {0x41648, 0x0}, -+ {0x41649, 0x0}, -+ {0x4164a, 0x0}, -+ {0x4164b, 0x0}, -+ {0x4164c, 0x0}, -+ {0x4164d, 0x0}, -+ {0x4164e, 0x0}, -+ {0x4164f, 0x0}, -+ {0x41650, 0x0}, -+ {0x41651, 0x0}, -+ {0x41652, 0x0}, -+ {0x41653, 0x0}, -+ {0x41654, 0x0}, -+ {0x41655, 0x0}, -+ {0x41656, 0x0}, -+ {0x41657, 0x0}, -+ {0x41658, 0x0}, -+ {0x41659, 0x0}, -+ {0x4165a, 0x0}, -+ {0x4165b, 0x0}, -+ {0x4165c, 0x0}, -+ {0x4165d, 0x0}, -+ {0x4165e, 0x0}, -+ {0x4165f, 0x0}, -+ {0x41660, 0x0}, -+ {0x41661, 0x0}, -+ {0x41662, 0x0}, -+ {0x41663, 0x0}, -+ {0x41664, 0x0}, -+ {0x41665, 0x0}, -+ {0x41666, 0x0}, -+ {0x41667, 0x0}, -+ {0x41668, 0x0}, -+ {0x41669, 0x0}, -+ {0x4166a, 0x0}, -+ {0x4166b, 0x0}, -+ {0x4166c, 0x0}, -+ {0x4166d, 0x0}, -+ {0x4166e, 0x0}, -+ {0x4166f, 0x0}, -+ {0x41670, 0x0}, -+ {0x41671, 0x0}, -+ {0x41672, 0x0}, -+ {0x41673, 0x0}, -+ {0x41674, 0x0}, -+ {0x41675, 0x0}, -+ {0x41676, 0x0}, -+ {0x41677, 0x0}, -+ {0x41678, 0x0}, -+ {0x41679, 0x0}, -+ {0x4167a, 0x0}, -+ {0x4167b, 0x0}, -+ {0x4167c, 0x0}, -+ {0x4167d, 0x0}, -+ {0x4167e, 0x0}, -+ {0x4167f, 0x0}, -+ {0x41680, 0x0}, -+ {0x41681, 0x0}, -+ {0x41682, 0x0}, -+ {0x41683, 0x0}, -+ {0x41684, 0x0}, -+ {0x41685, 0x0}, -+ {0x41686, 0x0}, -+ {0x41687, 0x0}, -+ {0x41688, 0x0}, -+ {0x41689, 0x0}, -+ {0x4168a, 0x0}, -+ {0x4168b, 0x0}, -+ {0x4168c, 0x0}, -+ {0x4168d, 0x0}, -+ {0x4168e, 0x0}, -+ {0x4168f, 0x0}, -+ {0x41690, 0x0}, -+ {0x41691, 0x0}, -+ {0x41692, 0x0}, -+ {0x41693, 0x0}, -+ {0x41694, 0x0}, -+ {0x41695, 0x0}, -+ {0x41696, 0x0}, -+ {0x41697, 0x0}, -+ {0x41698, 0x0}, -+ {0x41699, 0x0}, -+ {0x4169a, 0x0}, -+ {0x4169b, 0x0}, -+ {0x4169c, 0x0}, -+ {0x4169d, 0x0}, -+ {0x4169e, 0x0}, -+ {0x4169f, 0x0}, -+ {0x416a0, 0x0}, -+ {0x416a1, 0x0}, -+ {0x416a2, 0x0}, -+ {0x416a3, 0x0}, -+ {0x416a4, 0x0}, -+ {0x416a5, 0x0}, -+ {0x416a6, 0x0}, -+ {0x416a7, 0x0}, -+ {0x416a8, 0x0}, -+ {0x416a9, 0x0}, -+ {0x416aa, 0x0}, -+ {0x416ab, 0x0}, -+ {0x416ac, 0x0}, -+ {0x416ad, 0x0}, -+ {0x416ae, 0x0}, -+ {0x416af, 0x0}, -+ {0x416b0, 0x0}, -+ {0x416b1, 0x0}, -+ {0x416b2, 0x0}, -+ {0x416b3, 0x0}, -+ {0x416b4, 0x0}, -+ {0x416b5, 0x0}, -+ {0x416b6, 0x0}, -+ {0x416b7, 0x0}, -+ {0x416b8, 0x0}, -+ {0x416b9, 0x0}, -+ {0x416ba, 0x0}, -+ {0x416bb, 0x0}, -+ {0x416bc, 0x0}, -+ {0x416bd, 0x0}, -+ {0x416be, 0x0}, -+ {0x416bf, 0x0}, -+ {0x416c0, 0x0}, -+ {0x416c1, 0x0}, -+ {0x416c2, 0x0}, -+ {0x416c3, 0x0}, -+ {0x416c4, 0x0}, -+ {0x416c5, 0x0}, -+ {0x416c6, 0x0}, -+ {0x416c7, 0x0}, -+ {0x416c8, 0x0}, -+ {0x416c9, 0x0}, -+ {0x416ca, 0x0}, -+ {0x416cb, 0x0}, -+ {0x416cc, 0x0}, -+ {0x416cd, 0x0}, -+ {0x416ce, 0x0}, -+ {0x416cf, 0x0}, -+ {0x416d0, 0x0}, -+ {0x416d1, 0x0}, -+ {0x416d2, 0x0}, -+ {0x416d3, 0x0}, -+ {0x416d4, 0x0}, -+ {0x416d5, 0x0}, -+ {0x416d6, 0x0}, -+ {0x416d7, 0x0}, -+ {0x416d8, 0x0}, -+ {0x416d9, 0x0}, -+ {0x416da, 0x0}, -+ {0x416db, 0x0}, -+ {0x416dc, 0x0}, -+ {0x416dd, 0x0}, -+ {0x416de, 0x0}, -+ {0x416df, 0x0}, -+ {0x416e0, 0x0}, -+ {0x416e1, 0x0}, -+ {0x416e2, 0x0}, -+ {0x416e3, 0x0}, -+ {0x416e4, 0x0}, -+ {0x416e5, 0x0}, -+ {0x416e6, 0x0}, -+ {0x416e7, 0x0}, -+ {0x416e8, 0x0}, -+ {0x416e9, 0x0}, -+ {0x416ea, 0x0}, -+ {0x416eb, 0x0}, -+ {0x416ec, 0x0}, -+ {0x416ed, 0x0}, -+ {0x416ee, 0x0}, -+ {0x416ef, 0x0}, -+ {0x416f0, 0x0}, -+ {0x416f1, 0x0}, -+ {0x416f2, 0x0}, -+ {0x416f3, 0x0}, -+ {0x416f4, 0x0}, -+ {0x416f5, 0x0}, -+ {0x416f6, 0x0}, -+ {0x416f7, 0x0}, -+ {0x416f8, 0x0}, -+ {0x416f9, 0x0}, -+ {0x416fa, 0x0}, -+ {0x416fb, 0x0}, -+ {0x416fc, 0x0}, -+ {0x416fd, 0x0}, -+ {0x416fe, 0x0}, -+ {0x416ff, 0x0}, -+ {0x41700, 0x0}, -+ {0x41701, 0x0}, -+ {0x41702, 0x0}, -+ {0x41703, 0x0}, -+ {0x41704, 0x0}, -+ {0x41705, 0x0}, -+ {0x41706, 0x0}, -+ {0x41707, 0x0}, -+ {0x41708, 0x0}, -+ {0x41709, 0x0}, -+ {0x4170a, 0x0}, -+ {0x4170b, 0x0}, -+ {0x4170c, 0x0}, -+ {0x4170d, 0x0}, -+ {0x4170e, 0x0}, -+ {0x4170f, 0x0}, -+ {0x41710, 0x0}, -+ {0x41711, 0x0}, -+ {0x41712, 0x0}, -+ {0x41713, 0x0}, -+ {0x41714, 0x0}, -+ {0x41715, 0x0}, -+ {0x41716, 0x0}, -+ {0x41717, 0x0}, -+ {0x41718, 0x0}, -+ {0x41719, 0x0}, -+ {0x4171a, 0x0}, -+ {0x4171b, 0x0}, -+ {0x4171c, 0x0}, -+ {0x4171d, 0x0}, -+ {0x4171e, 0x0}, -+ {0x4171f, 0x0}, -+ {0x41720, 0x0}, -+ {0x41721, 0x0}, -+ {0x41722, 0x0}, -+ {0x41723, 0x0}, -+ {0x41724, 0x0}, -+ {0x41725, 0x0}, -+ {0x41726, 0x0}, -+ {0x41727, 0x0}, -+ {0x41728, 0x0}, -+ {0x41729, 0x0}, -+ {0x4172a, 0x0}, -+ {0x4172b, 0x0}, -+ {0x4172c, 0x0}, -+ {0x4172d, 0x0}, -+ {0x4172e, 0x0}, -+ {0x4172f, 0x0}, -+ {0x41730, 0x0}, -+ {0x41731, 0x0}, -+ {0x41732, 0x0}, -+ {0x41733, 0x0}, -+ {0x41734, 0x0}, -+ {0x41735, 0x0}, -+ {0x41736, 0x0}, -+ {0x41737, 0x0}, -+ {0x41738, 0x0}, -+ {0x41739, 0x0}, -+ {0x4173a, 0x0}, -+ {0x4173b, 0x0}, -+ {0x4173c, 0x0}, -+ {0x4173d, 0x0}, -+ {0x4173e, 0x0}, -+ {0x4173f, 0x0}, -+ {0x41740, 0x0}, -+ {0x41741, 0x0}, -+ {0x41742, 0x0}, -+ {0x41743, 0x0}, -+ {0x41744, 0x0}, -+ {0x41745, 0x0}, -+ {0x41746, 0x0}, -+ {0x41747, 0x0}, -+ {0x41748, 0x0}, -+ {0x41749, 0x0}, -+ {0x4174a, 0x0}, -+ {0x4174b, 0x0}, -+ {0x4174c, 0x0}, -+ {0x4174d, 0x0}, -+ {0x4174e, 0x0}, -+ {0x4174f, 0x0}, -+ {0x41750, 0x0}, -+ {0x41751, 0x0}, -+ {0x41752, 0x0}, -+ {0x41753, 0x0}, -+ {0x41754, 0x0}, -+ {0x41755, 0x0}, -+ {0x41756, 0x0}, -+ {0x41757, 0x0}, -+ {0x41758, 0x0}, -+ {0x41759, 0x0}, -+ {0x4175a, 0x0}, -+ {0x4175b, 0x0}, -+ {0x4175c, 0x0}, -+ {0x4175d, 0x0}, -+ {0x4175e, 0x0}, -+ {0x4175f, 0x0}, -+ {0x41760, 0x0}, -+ {0x41761, 0x0}, -+ {0x41762, 0x0}, -+ {0x41763, 0x0}, -+ {0x41764, 0x0}, -+ {0x41765, 0x0}, -+ {0x41766, 0x0}, -+ {0x41767, 0x0}, -+ {0x41768, 0x0}, -+ {0x41769, 0x0}, -+ {0x4176a, 0x0}, -+ {0x4176b, 0x0}, -+ {0x4176c, 0x0}, -+ {0x4176d, 0x0}, -+ {0x4176e, 0x0}, -+ {0x4176f, 0x0}, -+ {0x41770, 0x0}, -+ {0x41771, 0x0}, -+ {0x41772, 0x0}, -+ {0x41773, 0x0}, -+ {0x41774, 0x0}, -+ {0x41775, 0x0}, -+ {0x41776, 0x0}, -+ {0x41777, 0x0}, -+ {0x41778, 0x0}, -+ {0x41779, 0x0}, -+ {0x4177a, 0x0}, -+ {0x4177b, 0x0}, -+ {0x4177c, 0x0}, -+ {0x4177d, 0x0}, -+ {0x4177e, 0x0}, -+ {0x4177f, 0x0}, -+ {0x41780, 0x0}, -+ {0x41781, 0x0}, -+ {0x41782, 0x0}, -+ {0x41783, 0x0}, -+ {0x41784, 0x0}, -+ {0x41785, 0x0}, -+ {0x41786, 0x0}, -+ {0x41787, 0x0}, -+ {0x41788, 0x0}, -+ {0x41789, 0x0}, -+ {0x4178a, 0x0}, -+ {0x4178b, 0x0}, -+ {0x4178c, 0x0}, -+ {0x4178d, 0x0}, -+ {0x4178e, 0x0}, -+ {0x4178f, 0x0}, -+ {0x41790, 0x0}, -+ {0x41791, 0x0}, -+ {0x41792, 0x0}, -+ {0x41793, 0x0}, -+ {0x41794, 0x0}, -+ {0x41795, 0x0}, -+ {0x41796, 0x0}, -+ {0x41797, 0x0}, -+ {0x41798, 0x0}, -+ {0x41799, 0x0}, -+ {0x4179a, 0x0}, -+ {0x4179b, 0x0}, -+ {0x4179c, 0x0}, -+ {0x4179d, 0x0}, -+ {0x4179e, 0x0}, -+ {0x4179f, 0x0}, -+ {0x417a0, 0x0}, -+ {0x417a1, 0x0}, -+ {0x417a2, 0x0}, -+ {0x417a3, 0x0}, -+ {0x417a4, 0x0}, -+ {0x417a5, 0x0}, -+ {0x417a6, 0x0}, -+ {0x417a7, 0x0}, -+ {0x417a8, 0x0}, -+ {0x417a9, 0x0}, -+ {0x417aa, 0x0}, -+ {0x417ab, 0x0}, -+ {0x417ac, 0x0}, -+ {0x417ad, 0x0}, -+ {0x417ae, 0x0}, -+ {0x417af, 0x0}, -+ {0x417b0, 0x0}, -+ {0x417b1, 0x0}, -+ {0x417b2, 0x0}, -+ {0x417b3, 0x0}, -+ {0x417b4, 0x0}, -+ {0x417b5, 0x0}, -+ {0x417b6, 0x0}, -+ {0x417b7, 0x0}, -+ {0x417b8, 0x0}, -+ {0x417b9, 0x0}, -+ {0x417ba, 0x0}, -+ {0x417bb, 0x0}, -+ {0x417bc, 0x0}, -+ {0x417bd, 0x0}, -+ {0x417be, 0x0}, -+ {0x417bf, 0x0}, -+ {0x417c0, 0x0}, -+ {0x417c1, 0x0}, -+ {0x417c2, 0x0}, -+ {0x417c3, 0x0}, -+ {0x417c4, 0x0}, -+ {0x417c5, 0x0}, -+ {0x417c6, 0x0}, -+ {0x417c7, 0x0}, -+ {0x417c8, 0x0}, -+ {0x417c9, 0x0}, -+ {0x417ca, 0x0}, -+ {0x417cb, 0x0}, -+ {0x417cc, 0x0}, -+ {0x417cd, 0x0}, -+ {0x417ce, 0x0}, -+ {0x417cf, 0x0}, -+ {0x417d0, 0x0}, -+ {0x417d1, 0x0}, -+ {0x417d2, 0x0}, -+ {0x417d3, 0x0}, -+ {0x417d4, 0x0}, -+ {0x417d5, 0x0}, -+ {0x417d6, 0x0}, -+ {0x417d7, 0x0}, -+ {0x417d8, 0x0}, -+ {0x417d9, 0x0}, -+ {0x417da, 0x0}, -+ {0x417db, 0x0}, -+ {0x417dc, 0x0}, -+ {0x417dd, 0x0}, -+ {0x417de, 0x0}, -+ {0x417df, 0x0}, -+ {0x417e0, 0x0}, -+ {0x417e1, 0x0}, -+ {0x417e2, 0x0}, -+ {0x417e3, 0x0}, -+ {0x417e4, 0x0}, -+ {0x417e5, 0x0}, -+ {0x417e6, 0x0}, -+ {0x417e7, 0x0}, -+ {0x417e8, 0x0}, -+ {0x417e9, 0x0}, -+ {0x417ea, 0x0}, -+ {0x417eb, 0x0}, -+ {0x417ec, 0x0}, -+ {0x417ed, 0x0}, -+ {0x417ee, 0x0}, -+ {0x417ef, 0x0}, -+ {0x417f0, 0x0}, -+ {0x417f1, 0x0}, -+ {0x417f2, 0x0}, -+ {0x417f3, 0x0}, -+ {0x417f4, 0x0}, -+ {0x417f5, 0x0}, -+ {0x417f6, 0x0}, -+ {0x417f7, 0x0}, -+ {0x417f8, 0x0}, -+ {0x417f9, 0x0}, -+ {0x417fa, 0x0}, -+ {0x417fb, 0x0}, -+ {0x417fc, 0x0}, -+ {0x417fd, 0x0}, -+ {0x417fe, 0x0}, -+ {0x417ff, 0x0}, -+ {0x41800, 0x0}, -+ {0x41801, 0x0}, -+ {0x41802, 0x0}, -+ {0x41803, 0x0}, -+ {0x41804, 0x0}, -+ {0x41805, 0x0}, -+ {0x41806, 0x0}, -+ {0x41807, 0x0}, -+ {0x41808, 0x0}, -+ {0x41809, 0x0}, -+ {0x4180a, 0x0}, -+ {0x4180b, 0x0}, -+ {0x4180c, 0x0}, -+ {0x4180d, 0x0}, -+ {0x4180e, 0x0}, -+ {0x4180f, 0x0}, -+ {0x41810, 0x0}, -+ {0x41811, 0x0}, -+ {0x41812, 0x0}, -+ {0x41813, 0x0}, -+ {0x41814, 0x0}, -+ {0x41815, 0x0}, -+ {0x41816, 0x0}, -+ {0x41817, 0x0}, -+ {0x41818, 0x0}, -+ {0x41819, 0x0}, -+ {0x4181a, 0x0}, -+ {0x4181b, 0x0}, -+ {0x4181c, 0x0}, -+ {0x4181d, 0x0}, -+ {0x4181e, 0x0}, -+ {0x4181f, 0x0}, -+ {0x41820, 0x0}, -+ {0x41821, 0x0}, -+ {0x41822, 0x0}, -+ {0x41823, 0x0}, -+ {0x41824, 0x0}, -+ {0x41825, 0x0}, -+ {0x41826, 0x0}, -+ {0x41827, 0x0}, -+ {0x41828, 0x0}, -+ {0x41829, 0x0}, -+ {0x4182a, 0x0}, -+ {0x4182b, 0x0}, -+ {0x4182c, 0x0}, -+ {0x4182d, 0x0}, -+ {0x4182e, 0x0}, -+ {0x4182f, 0x0}, -+ {0x41830, 0x0}, -+ {0x41831, 0x0}, -+ {0x41832, 0x0}, -+ {0x41833, 0x0}, -+ {0x41834, 0x0}, -+ {0x41835, 0x0}, -+ {0x41836, 0x0}, -+ {0x41837, 0x0}, -+ {0x41838, 0x0}, -+ {0x41839, 0x0}, -+ {0x4183a, 0x0}, -+ {0x4183b, 0x0}, -+ {0x4183c, 0x0}, -+ {0x4183d, 0x0}, -+ {0x4183e, 0x0}, -+ {0x4183f, 0x0}, -+ {0x41840, 0x0}, -+ {0x41841, 0x0}, -+ {0x41842, 0x0}, -+ {0x41843, 0x0}, -+ {0x41844, 0x0}, -+ {0x41845, 0x0}, -+ {0x41846, 0x0}, -+ {0x41847, 0x0}, -+ {0x41848, 0x0}, -+ {0x41849, 0x0}, -+ {0x4184a, 0x0}, -+ {0x4184b, 0x0}, -+ {0x4184c, 0x0}, -+ {0x4184d, 0x0}, -+ {0x4184e, 0x0}, -+ {0x4184f, 0x0}, -+ {0x41850, 0x0}, -+ {0x41851, 0x0}, -+ {0x41852, 0x0}, -+ {0x41853, 0x0}, -+ {0x41854, 0x0}, -+ {0x41855, 0x0}, -+ {0x41856, 0x0}, -+ {0x41857, 0x0}, -+ {0x41858, 0x0}, -+ {0x41859, 0x0}, -+ {0x4185a, 0x0}, -+ {0x4185b, 0x0}, -+ {0x4185c, 0x0}, -+ {0x4185d, 0x0}, -+ {0x4185e, 0x0}, -+ {0x4185f, 0x0}, -+ {0x41860, 0x0}, -+ {0x41861, 0x0}, -+ {0x41862, 0x0}, -+ {0x41863, 0x0}, -+ {0x41864, 0x0}, -+ {0x41865, 0x0}, -+ {0x41866, 0x0}, -+ {0x41867, 0x0}, -+ {0x41868, 0x0}, -+ {0x41869, 0x0}, -+ {0x4186a, 0x0}, -+ {0x4186b, 0x0}, -+ {0x4186c, 0x0}, -+ {0x4186d, 0x0}, -+ {0x4186e, 0x0}, -+ {0x4186f, 0x0}, -+ {0x41870, 0x0}, -+ {0x41871, 0x0}, -+ {0x41872, 0x0}, -+ {0x41873, 0x0}, -+ {0x41874, 0x0}, -+ {0x41875, 0x0}, -+ {0x41876, 0x0}, -+ {0x41877, 0x0}, -+ {0x41878, 0x0}, -+ {0x41879, 0x0}, -+ {0x4187a, 0x0}, -+ {0x4187b, 0x0}, -+ {0x4187c, 0x0}, -+ {0x4187d, 0x0}, -+ {0x4187e, 0x0}, -+ {0x4187f, 0x0}, -+ {0x41880, 0x0}, -+ {0x41881, 0x0}, -+ {0x41882, 0x0}, -+ {0x41883, 0x0}, -+ {0x41884, 0x0}, -+ {0x41885, 0x0}, -+ {0x41886, 0x0}, -+ {0x41887, 0x0}, -+ {0x41888, 0x0}, -+ {0x41889, 0x0}, -+ {0x4188a, 0x0}, -+ {0x4188b, 0x0}, -+ {0x4188c, 0x0}, -+ {0x4188d, 0x0}, -+ {0x4188e, 0x0}, -+ {0x4188f, 0x0}, -+ {0x41890, 0x0}, -+ {0x41891, 0x0}, -+ {0x41892, 0x0}, -+ {0x41893, 0x0}, -+ {0x41894, 0x0}, -+ {0x41895, 0x0}, -+ {0x41896, 0x0}, -+ {0x41897, 0x0}, -+ {0x41898, 0x0}, -+ {0x41899, 0x0}, -+ {0x4189a, 0x0}, -+ {0x4189b, 0x0}, -+ {0x4189c, 0x0}, -+ {0x4189d, 0x0}, -+ {0x4189e, 0x0}, -+ {0x4189f, 0x0}, -+ {0x418a0, 0x0}, -+ {0x418a1, 0x0}, -+ {0x418a2, 0x0}, -+ {0x418a3, 0x0}, -+ {0x418a4, 0x0}, -+ {0x418a5, 0x0}, -+ {0x418a6, 0x0}, -+ {0x418a7, 0x0}, -+ {0x418a8, 0x0}, -+ {0x418a9, 0x0}, -+ {0x418aa, 0x0}, -+ {0x418ab, 0x0}, -+ {0x418ac, 0x0}, -+ {0x418ad, 0x0}, -+ {0x418ae, 0x0}, -+ {0x418af, 0x0}, -+ {0x418b0, 0x0}, -+ {0x418b1, 0x0}, -+ {0x418b2, 0x0}, -+ {0x418b3, 0x0}, -+ {0x418b4, 0x0}, -+ {0x418b5, 0x0}, -+ {0x418b6, 0x0}, -+ {0x418b7, 0x0}, -+ {0x418b8, 0x0}, -+ {0x418b9, 0x0}, -+ {0x418ba, 0x0}, -+ {0x418bb, 0x0}, -+ {0x418bc, 0x0}, -+ {0x418bd, 0x0}, -+ {0x418be, 0x0}, -+ {0x418bf, 0x0}, -+ {0x418c0, 0x0}, -+ {0x418c1, 0x0}, -+ {0x418c2, 0x0}, -+ {0x418c3, 0x0}, -+ {0x418c4, 0x0}, -+ {0x418c5, 0x0}, -+ {0x418c6, 0x0}, -+ {0x418c7, 0x0}, -+ {0x418c8, 0x0}, -+ {0x418c9, 0x0}, -+ {0x418ca, 0x0}, -+ {0x418cb, 0x0}, -+ {0x418cc, 0x0}, -+ {0x418cd, 0x0}, -+ {0x418ce, 0x0}, -+ {0x418cf, 0x0}, -+ {0x418d0, 0x0}, -+ {0x418d1, 0x0}, -+ {0x418d2, 0x0}, -+ {0x418d3, 0x0}, -+ {0x418d4, 0x0}, -+ {0x418d5, 0x0}, -+ {0x418d6, 0x0}, -+ {0x418d7, 0x0}, -+ {0x418d8, 0x0}, -+ {0x418d9, 0x0}, -+ {0x418da, 0x0}, -+ {0x418db, 0x0}, -+ {0x418dc, 0x0}, -+ {0x418dd, 0x0}, -+ {0x418de, 0x0}, -+ {0x418df, 0x0}, -+ {0x418e0, 0x0}, -+ {0x418e1, 0x0}, -+ {0x418e2, 0x0}, -+ {0x418e3, 0x0}, -+ {0x418e4, 0x0}, -+ {0x418e5, 0x0}, -+ {0x418e6, 0x0}, -+ {0x418e7, 0x0}, -+ {0x418e8, 0x0}, -+ {0x418e9, 0x0}, -+ {0x418ea, 0x0}, -+ {0x418eb, 0x0}, -+ {0x418ec, 0x0}, -+ {0x418ed, 0x0}, -+ {0x418ee, 0x0}, -+ {0x418ef, 0x0}, -+ {0x418f0, 0x0}, -+ {0x418f1, 0x0}, -+ {0x418f2, 0x0}, -+ {0x418f3, 0x0}, -+ {0x418f4, 0x0}, -+ {0x418f5, 0x0}, -+ {0x418f6, 0x0}, -+ {0x418f7, 0x0}, -+ {0x418f8, 0x0}, -+ {0x418f9, 0x0}, -+ {0x418fa, 0x0}, -+ {0x418fb, 0x0}, -+ {0x418fc, 0x0}, -+ {0x418fd, 0x0}, -+ {0x418fe, 0x0}, -+ {0x418ff, 0x0}, -+ {0x41900, 0x0}, -+ {0x41901, 0x0}, -+ {0x41902, 0x0}, -+ {0x41903, 0x0}, -+ {0x41904, 0x0}, -+ {0x41905, 0x0}, -+ {0x41906, 0x0}, -+ {0x41907, 0x0}, -+ {0x41908, 0x0}, -+ {0x41909, 0x0}, -+ {0x4190a, 0x0}, -+ {0x4190b, 0x0}, -+ {0x4190c, 0x0}, -+ {0x4190d, 0x0}, -+ {0x4190e, 0x0}, -+ {0x4190f, 0x0}, -+ {0x41910, 0x0}, -+ {0x41911, 0x0}, -+ {0x41912, 0x0}, -+ {0x41913, 0x0}, -+ {0x41914, 0x0}, -+ {0x41915, 0x0}, -+ {0x41916, 0x0}, -+ {0x41917, 0x0}, -+ {0x41918, 0x0}, -+ {0x41919, 0x0}, -+ {0x4191a, 0x0}, -+ {0x4191b, 0x0}, -+ {0x4191c, 0x0}, -+ {0x4191d, 0x0}, -+ {0x4191e, 0x0}, -+ {0x4191f, 0x0}, -+ {0x41920, 0x0}, -+ {0x41921, 0x0}, -+ {0x41922, 0x0}, -+ {0x41923, 0x0}, -+ {0x41924, 0x0}, -+ {0x41925, 0x0}, -+ {0x41926, 0x0}, -+ {0x41927, 0x0}, -+ {0x41928, 0x0}, -+ {0x41929, 0x0}, -+ {0x4192a, 0x0}, -+ {0x4192b, 0x0}, -+ {0x4192c, 0x0}, -+ {0x4192d, 0x0}, -+ {0x4192e, 0x0}, -+ {0x4192f, 0x0}, -+ {0x41930, 0x0}, -+ {0x41931, 0x0}, -+ {0x41932, 0x0}, -+ {0x41933, 0x0}, -+ {0x41934, 0x0}, -+ {0x41935, 0x0}, -+ {0x41936, 0x0}, -+ {0x41937, 0x0}, -+ {0x41938, 0x0}, -+ {0x41939, 0x0}, -+ {0x4193a, 0x0}, -+ {0x4193b, 0x0}, -+ {0x4193c, 0x0}, -+ {0x4193d, 0x0}, -+ {0x4193e, 0x0}, -+ {0x4193f, 0x0}, -+ {0x41940, 0x0}, -+ {0x41941, 0x0}, -+ {0x41942, 0x0}, -+ {0x41943, 0x0}, -+ {0x41944, 0x0}, -+ {0x41945, 0x0}, -+ {0x41946, 0x0}, -+ {0x41947, 0x0}, -+ {0x41948, 0x0}, -+ {0x41949, 0x0}, -+ {0x4194a, 0x0}, -+ {0x4194b, 0x0}, -+ {0x4194c, 0x0}, -+ {0x4194d, 0x0}, -+ {0x4194e, 0x0}, -+ {0x4194f, 0x0}, -+ {0x41950, 0x0}, -+ {0x41951, 0x0}, -+ {0x41952, 0x0}, -+ {0x41953, 0x0}, -+ {0x41954, 0x0}, -+ {0x41955, 0x0}, -+ {0x41956, 0x0}, -+ {0x41957, 0x0}, -+ {0x41958, 0x0}, -+ {0x41959, 0x0}, -+ {0x4195a, 0x0}, -+ {0x4195b, 0x0}, -+ {0x4195c, 0x0}, -+ {0x4195d, 0x0}, -+ {0x4195e, 0x0}, -+ {0x4195f, 0x0}, -+ {0x41960, 0x0}, -+ {0x41961, 0x0}, -+ {0x41962, 0x0}, -+ {0x41963, 0x0}, -+ {0x41964, 0x0}, -+ {0x41965, 0x0}, -+ {0x41966, 0x0}, -+ {0x41967, 0x0}, -+ {0x41968, 0x0}, -+ {0x41969, 0x0}, -+ {0x4196a, 0x0}, -+ {0x4196b, 0x0}, -+ {0x4196c, 0x0}, -+ {0x4196d, 0x0}, -+ {0x4196e, 0x0}, -+ {0x4196f, 0x0}, -+ {0x41970, 0x0}, -+ {0x41971, 0x0}, -+ {0x41972, 0x0}, -+ {0x41973, 0x0}, -+ {0x41974, 0x0}, -+ {0x41975, 0x0}, -+ {0x41976, 0x0}, -+ {0x41977, 0x0}, -+ {0x41978, 0x0}, -+ {0x41979, 0x0}, -+ {0x4197a, 0x0}, -+ {0x4197b, 0x0}, -+ {0x4197c, 0x0}, -+ {0x4197d, 0x0}, -+ {0x4197e, 0x0}, -+ {0x4197f, 0x0}, -+ {0x41980, 0x0}, -+ {0x41981, 0x0}, -+ {0x41982, 0x0}, -+ {0x41983, 0x0}, -+ {0x41984, 0x0}, -+ {0x41985, 0x0}, -+ {0x41986, 0x0}, -+ {0x41987, 0x0}, -+ {0x41988, 0x0}, -+ {0x41989, 0x0}, -+ {0x4198a, 0x0}, -+ {0x4198b, 0x0}, -+ {0x4198c, 0x0}, -+ {0x4198d, 0x0}, -+ {0x4198e, 0x0}, -+ {0x4198f, 0x0}, -+ {0x41990, 0x0}, -+ {0x41991, 0x0}, -+ {0x41992, 0x0}, -+ {0x41993, 0x0}, -+ {0x41994, 0x0}, -+ {0x41995, 0x0}, -+ {0x41996, 0x0}, -+ {0x41997, 0x0}, -+ {0x41998, 0x0}, -+ {0x41999, 0x0}, -+ {0x4199a, 0x0}, -+ {0x4199b, 0x0}, -+ {0x4199c, 0x0}, -+ {0x4199d, 0x0}, -+ {0x4199e, 0x0}, -+ {0x4199f, 0x0}, -+ {0x419a0, 0x0}, -+ {0x419a1, 0x0}, -+ {0x419a2, 0x0}, -+ {0x419a3, 0x0}, -+ {0x419a4, 0x0}, -+ {0x419a5, 0x0}, -+ {0x419a6, 0x0}, -+ {0x419a7, 0x0}, -+ {0x419a8, 0x0}, -+ {0x419a9, 0x0}, -+ {0x419aa, 0x0}, -+ {0x419ab, 0x0}, -+ {0x419ac, 0x0}, -+ {0x419ad, 0x0}, -+ {0x419ae, 0x0}, -+ {0x419af, 0x0}, -+ {0x419b0, 0x0}, -+ {0x419b1, 0x0}, -+ {0x419b2, 0x0}, -+ {0x419b3, 0x0}, -+ {0x419b4, 0x0}, -+ {0x419b5, 0x0}, -+ {0x419b6, 0x0}, -+ {0x419b7, 0x0}, -+ {0x419b8, 0x0}, -+ {0x419b9, 0x0}, -+ {0x419ba, 0x0}, -+ {0x419bb, 0x0}, -+ {0x419bc, 0x0}, -+ {0x419bd, 0x0}, -+ {0x419be, 0x0}, -+ {0x419bf, 0x0}, -+ {0x419c0, 0x0}, -+ {0x419c1, 0x0}, -+ {0x419c2, 0x0}, -+ {0x419c3, 0x0}, -+ {0x419c4, 0x0}, -+ {0x419c5, 0x0}, -+ {0x419c6, 0x0}, -+ {0x419c7, 0x0}, -+ {0x419c8, 0x0}, -+ {0x419c9, 0x0}, -+ {0x419ca, 0x0}, -+ {0x419cb, 0x0}, -+ {0x419cc, 0x0}, -+ {0x419cd, 0x0}, -+ {0x419ce, 0x0}, -+ {0x419cf, 0x0}, -+ {0x419d0, 0x0}, -+ {0x419d1, 0x0}, -+ {0x419d2, 0x0}, -+ {0x419d3, 0x0}, -+ {0x419d4, 0x0}, -+ {0x419d5, 0x0}, -+ {0x419d6, 0x0}, -+ {0x419d7, 0x0}, -+ {0x419d8, 0x0}, -+ {0x419d9, 0x0}, -+ {0x419da, 0x0}, -+ {0x419db, 0x0}, -+ {0x419dc, 0x0}, -+ {0x419dd, 0x0}, -+ {0x419de, 0x0}, -+ {0x419df, 0x0}, -+ {0x419e0, 0x0}, -+ {0x419e1, 0x0}, -+ {0x419e2, 0x0}, -+ {0x419e3, 0x0}, -+ {0x419e4, 0x0}, -+ {0x419e5, 0x0}, -+ {0x419e6, 0x0}, -+ {0x419e7, 0x0}, -+ {0x419e8, 0x0}, -+ {0x419e9, 0x0}, -+ {0x419ea, 0x0}, -+ {0x419eb, 0x0}, -+ {0x419ec, 0x0}, -+ {0x419ed, 0x0}, -+ {0x419ee, 0x0}, -+ {0x419ef, 0x0}, -+ {0x419f0, 0x0}, -+ {0x419f1, 0x0}, -+ {0x419f2, 0x0}, -+ {0x419f3, 0x0}, -+ {0x419f4, 0x0}, -+ {0x419f5, 0x0}, -+ {0x419f6, 0x0}, -+ {0x419f7, 0x0}, -+ {0x419f8, 0x0}, -+ {0x419f9, 0x0}, -+ {0x419fa, 0x0}, -+ {0x419fb, 0x0}, -+ {0x419fc, 0x0}, -+ {0x419fd, 0x0}, -+ {0x419fe, 0x0}, -+ {0x419ff, 0x0}, -+ {0x41a00, 0x0}, -+ {0x41a01, 0x0}, -+ {0x41a02, 0x0}, -+ {0x41a03, 0x0}, -+ {0x41a04, 0x0}, -+ {0x41a05, 0x0}, -+ {0x41a06, 0x0}, -+ {0x41a07, 0x0}, -+ {0x41a08, 0x0}, -+ {0x41a09, 0x0}, -+ {0x41a0a, 0x0}, -+ {0x41a0b, 0x0}, -+ {0x41a0c, 0x0}, -+ {0x41a0d, 0x0}, -+ {0x41a0e, 0x0}, -+ {0x41a0f, 0x0}, -+ {0x41a10, 0x0}, -+ {0x41a11, 0x0}, -+ {0x41a12, 0x0}, -+ {0x41a13, 0x0}, -+ {0x41a14, 0x0}, -+ {0x41a15, 0x0}, -+ {0x41a16, 0x0}, -+ {0x41a17, 0x0}, -+ {0x41a18, 0x0}, -+ {0x41a19, 0x0}, -+ {0x41a1a, 0x0}, -+ {0x41a1b, 0x0}, -+ {0x41a1c, 0x0}, -+ {0x41a1d, 0x0}, -+ {0x41a1e, 0x0}, -+ {0x41a1f, 0x0}, -+ {0x41a20, 0x0}, -+ {0x41a21, 0x0}, -+ {0x41a22, 0x0}, -+ {0x41a23, 0x0}, -+ {0x41a24, 0x0}, -+ {0x41a25, 0x0}, -+ {0x41a26, 0x0}, -+ {0x41a27, 0x0}, -+ {0x41a28, 0x0}, -+ {0x41a29, 0x0}, -+ {0x41a2a, 0x0}, -+ {0x41a2b, 0x0}, -+ {0x41a2c, 0x0}, -+ {0x41a2d, 0x0}, -+ {0x41a2e, 0x0}, -+ {0x41a2f, 0x0}, -+ {0x41a30, 0x0}, -+ {0x41a31, 0x0}, -+ {0x41a32, 0x0}, -+ {0x41a33, 0x0}, -+ {0x41a34, 0x0}, -+ {0x41a35, 0x0}, -+ {0x41a36, 0x0}, -+ {0x41a37, 0x0}, -+ {0x41a38, 0x0}, -+ {0x41a39, 0x0}, -+ {0x41a3a, 0x0}, -+ {0x41a3b, 0x0}, -+ {0x41a3c, 0x0}, -+ {0x41a3d, 0x0}, -+ {0x41a3e, 0x0}, -+ {0x41a3f, 0x0}, -+ {0x41a40, 0x0}, -+ {0x41a41, 0x0}, -+ {0x41a42, 0x0}, -+ {0x41a43, 0x0}, -+ {0x41a44, 0x0}, -+ {0x41a45, 0x0}, -+ {0x41a46, 0x0}, -+ {0x41a47, 0x0}, -+ {0x41a48, 0x0}, -+ {0x41a49, 0x0}, -+ {0x41a4a, 0x0}, -+ {0x41a4b, 0x0}, -+ {0x41a4c, 0x0}, -+ {0x41a4d, 0x0}, -+ {0x41a4e, 0x0}, -+ {0x41a4f, 0x0}, -+ {0x41a50, 0x0}, -+ {0x41a51, 0x0}, -+ {0x41a52, 0x0}, -+ {0x41a53, 0x0}, -+ {0x41a54, 0x0}, -+ {0x41a55, 0x0}, -+ {0x41a56, 0x0}, -+ {0x41a57, 0x0}, -+ {0x41a58, 0x0}, -+ {0x41a59, 0x0}, -+ {0x41a5a, 0x0}, -+ {0x41a5b, 0x0}, -+ {0x41a5c, 0x0}, -+ {0x41a5d, 0x0}, -+ {0x41a5e, 0x0}, -+ {0x41a5f, 0x0}, -+ {0x41a60, 0x0}, -+ {0x41a61, 0x0}, -+ {0x41a62, 0x0}, -+ {0x41a63, 0x0}, -+ {0x41a64, 0x0}, -+ {0x41a65, 0x0}, -+ {0x41a66, 0x0}, -+ {0x41a67, 0x0}, -+ {0x41a68, 0x0}, -+ {0x41a69, 0x0}, -+ {0x41a6a, 0x0}, -+ {0x41a6b, 0x0}, -+ {0x41a6c, 0x0}, -+ {0x41a6d, 0x0}, -+ {0x41a6e, 0x0}, -+ {0x41a6f, 0x0}, -+ {0x41a70, 0x0}, -+ {0x41a71, 0x0}, -+ {0x41a72, 0x0}, -+ {0x41a73, 0x0}, -+ {0x41a74, 0x0}, -+ {0x41a75, 0x0}, -+ {0x41a76, 0x0}, -+ {0x41a77, 0x0}, -+ {0x41a78, 0x0}, -+ {0x41a79, 0x0}, -+ {0x41a7a, 0x0}, -+ {0x41a7b, 0x0}, -+ {0x41a7c, 0x0}, -+ {0x41a7d, 0x0}, -+ {0x41a7e, 0x0}, -+ {0x41a7f, 0x0}, -+ {0x41a80, 0x0}, -+ {0x41a81, 0x0}, -+ {0x41a82, 0x0}, -+ {0x41a83, 0x0}, -+ {0x41a84, 0x0}, -+ {0x41a85, 0x0}, -+ {0x41a86, 0x0}, -+ {0x41a87, 0x0}, -+ {0x41a88, 0x0}, -+ {0x41a89, 0x0}, -+ {0x41a8a, 0x0}, -+ {0x41a8b, 0x0}, -+ {0x41a8c, 0x0}, -+ {0x41a8d, 0x0}, -+ {0x41a8e, 0x0}, -+ {0x41a8f, 0x0}, -+ {0x41a90, 0x0}, -+ {0x41a91, 0x0}, -+ {0x41a92, 0x0}, -+ {0x41a93, 0x0}, -+ {0x41a94, 0x0}, -+ {0x41a95, 0x0}, -+ {0x41a96, 0x0}, -+ {0x41a97, 0x0}, -+ {0x41a98, 0x0}, -+ {0x41a99, 0x0}, -+ {0x41a9a, 0x0}, -+ {0x41a9b, 0x0}, -+ {0x41a9c, 0x0}, -+ {0x41a9d, 0x0}, -+ {0x41a9e, 0x0}, -+ {0x41a9f, 0x0}, -+ {0x41aa0, 0x0}, -+ {0x41aa1, 0x0}, -+ {0x41aa2, 0x0}, -+ {0x41aa3, 0x0}, -+ {0x41aa4, 0x0}, -+ {0x41aa5, 0x0}, -+ {0x41aa6, 0x0}, -+ {0x41aa7, 0x0}, -+ {0x41aa8, 0x0}, -+ {0x41aa9, 0x0}, -+ {0x41aaa, 0x0}, -+ {0x41aab, 0x0}, -+ {0x41aac, 0x0}, -+ {0x41aad, 0x0}, -+ {0x41aae, 0x0}, -+ {0x41aaf, 0x0}, -+ {0x41ab0, 0x0}, -+ {0x41ab1, 0x0}, -+ {0x41ab2, 0x0}, -+ {0x41ab3, 0x0}, -+ {0x41ab4, 0x0}, -+ {0x41ab5, 0x0}, -+ {0x41ab6, 0x0}, -+ {0x41ab7, 0x0}, -+ {0x41ab8, 0x0}, -+ {0x41ab9, 0x0}, -+ {0x41aba, 0x0}, -+ {0x41abb, 0x0}, -+ {0x41abc, 0x0}, -+ {0x41abd, 0x0}, -+ {0x41abe, 0x0}, -+ {0x41abf, 0x0}, -+ {0x41ac0, 0x0}, -+ {0x41ac1, 0x0}, -+ {0x41ac2, 0x0}, -+ {0x41ac3, 0x0}, -+ {0x41ac4, 0x0}, -+ {0x41ac5, 0x0}, -+ {0x41ac6, 0x0}, -+ {0x41ac7, 0x0}, -+ {0x41ac8, 0x0}, -+ {0x41ac9, 0x0}, -+ {0x41aca, 0x0}, -+ {0x41acb, 0x0}, -+ {0x41acc, 0x0}, -+ {0x41acd, 0x0}, -+ {0x41ace, 0x0}, -+ {0x41acf, 0x0}, -+ {0x41ad0, 0x0}, -+ {0x41ad1, 0x0}, -+ {0x41ad2, 0x0}, -+ {0x41ad3, 0x0}, -+ {0x41ad4, 0x0}, -+ {0x41ad5, 0x0}, -+ {0x41ad6, 0x0}, -+ {0x41ad7, 0x0}, -+ {0x41ad8, 0x0}, -+ {0x41ad9, 0x0}, -+ {0x41ada, 0x0}, -+ {0x41adb, 0x0}, -+ {0x41adc, 0x0}, -+ {0x41add, 0x0}, -+ {0x41ade, 0x0}, -+ {0x41adf, 0x0}, -+ {0x41ae0, 0x0}, -+ {0x41ae1, 0x0}, -+ {0x41ae2, 0x0}, -+ {0x41ae3, 0x0}, -+ {0x41ae4, 0x0}, -+ {0x41ae5, 0x0}, -+ {0x41ae6, 0x0}, -+ {0x41ae7, 0x0}, -+ {0x41ae8, 0x0}, -+ {0x41ae9, 0x0}, -+ {0x41aea, 0x0}, -+ {0x41aeb, 0x0}, -+ {0x41aec, 0x0}, -+ {0x41aed, 0x0}, -+ {0x41aee, 0x0}, -+ {0x41aef, 0x0}, -+ {0x41af0, 0x0}, -+ {0x41af1, 0x0}, -+ {0x41af2, 0x0}, -+ {0x41af3, 0x0}, -+ {0x41af4, 0x0}, -+ {0x41af5, 0x0}, -+ {0x41af6, 0x0}, -+ {0x41af7, 0x0}, -+ {0x41af8, 0x0}, -+ {0x41af9, 0x0}, -+ {0x41afa, 0x0}, -+ {0x41afb, 0x0}, -+ {0x41afc, 0x0}, -+ {0x41afd, 0x0}, -+ {0x41afe, 0x0}, -+ {0x41aff, 0x0}, -+ {0x41b00, 0x0}, -+ {0x41b01, 0x0}, -+ {0x41b02, 0x0}, -+ {0x41b03, 0x0}, -+ {0x41b04, 0x0}, -+ {0x41b05, 0x0}, -+ {0x41b06, 0x0}, -+ {0x41b07, 0x0}, -+ {0x41b08, 0x0}, -+ {0x41b09, 0x0}, -+ {0x41b0a, 0x0}, -+ {0x41b0b, 0x0}, -+ {0x41b0c, 0x0}, -+ {0x41b0d, 0x0}, -+ {0x41b0e, 0x0}, -+ {0x41b0f, 0x0}, -+ {0x41b10, 0x0}, -+ {0x41b11, 0x0}, -+ {0x41b12, 0x0}, -+ {0x41b13, 0x0}, -+ {0x41b14, 0x0}, -+ {0x41b15, 0x0}, -+ {0x41b16, 0x0}, -+ {0x41b17, 0x0}, -+ {0x41b18, 0x0}, -+ {0x41b19, 0x0}, -+ {0x41b1a, 0x0}, -+ {0x41b1b, 0x0}, -+ {0x41b1c, 0x0}, -+ {0x41b1d, 0x0}, -+ {0x41b1e, 0x0}, -+ {0x41b1f, 0x0}, -+ {0x41b20, 0x0}, -+ {0x41b21, 0x0}, -+ {0x41b22, 0x0}, -+ {0x41b23, 0x0}, -+ {0x41b24, 0x0}, -+ {0x41b25, 0x0}, -+ {0x41b26, 0x0}, -+ {0x41b27, 0x0}, -+ {0x41b28, 0x0}, -+ {0x41b29, 0x0}, -+ {0x41b2a, 0x0}, -+ {0x41b2b, 0x0}, -+ {0x41b2c, 0x0}, -+ {0x41b2d, 0x0}, -+ {0x41b2e, 0x0}, -+ {0x41b2f, 0x0}, -+ {0x41b30, 0x0}, -+ {0x41b31, 0x0}, -+ {0x41b32, 0x0}, -+ {0x41b33, 0x0}, -+ {0x41b34, 0x0}, -+ {0x41b35, 0x0}, -+ {0x41b36, 0x0}, -+ {0x41b37, 0x0}, -+ {0x41b38, 0x0}, -+ {0x41b39, 0x0}, -+ {0x41b3a, 0x0}, -+ {0x41b3b, 0x0}, -+ {0x41b3c, 0x0}, -+ {0x41b3d, 0x0}, -+ {0x41b3e, 0x0}, -+ {0x41b3f, 0x0}, -+ {0x41b40, 0x0}, -+ {0x41b41, 0x0}, -+ {0x41b42, 0x0}, -+ {0x41b43, 0x0}, -+ {0x41b44, 0x0}, -+ {0x41b45, 0x0}, -+ {0x41b46, 0x0}, -+ {0x41b47, 0x0}, -+ {0x41b48, 0x0}, -+ {0x41b49, 0x0}, -+ {0x41b4a, 0x0}, -+ {0x41b4b, 0x0}, -+ {0x41b4c, 0x0}, -+ {0x41b4d, 0x0}, -+ {0x41b4e, 0x0}, -+ {0x41b4f, 0x0}, -+ {0x41b50, 0x0}, -+ {0x41b51, 0x0}, -+ {0x41b52, 0x0}, -+ {0x41b53, 0x0}, -+ {0x41b54, 0x0}, -+ {0x41b55, 0x0}, -+ {0x41b56, 0x0}, -+ {0x41b57, 0x0}, -+ {0x41b58, 0x0}, -+ {0x41b59, 0x0}, -+ {0x41b5a, 0x0}, -+ {0x41b5b, 0x0}, -+ {0x41b5c, 0x0}, -+ {0x41b5d, 0x0}, -+ {0x41b5e, 0x0}, -+ {0x41b5f, 0x0}, -+ {0x41b60, 0x0}, -+ {0x41b61, 0x0}, -+ {0x41b62, 0x0}, -+ {0x41b63, 0x0}, -+ {0x41b64, 0x0}, -+ {0x41b65, 0x0}, -+ {0x41b66, 0x0}, -+ {0x41b67, 0x0}, -+ {0x41b68, 0x0}, -+ {0x41b69, 0x0}, -+ {0x41b6a, 0x0}, -+ {0x41b6b, 0x0}, -+ {0x41b6c, 0x0}, -+ {0x41b6d, 0x0}, -+ {0x41b6e, 0x0}, -+ {0x41b6f, 0x0}, -+ {0x41b70, 0x0}, -+ {0x41b71, 0x0}, -+ {0x41b72, 0x0}, -+ {0x41b73, 0x0}, -+ {0x41b74, 0x0}, -+ {0x41b75, 0x0}, -+ {0x41b76, 0x0}, -+ {0x41b77, 0x0}, -+ {0x41b78, 0x0}, -+ {0x41b79, 0x0}, -+ {0x41b7a, 0x0}, -+ {0x41b7b, 0x0}, -+ {0x41b7c, 0x0}, -+ {0x41b7d, 0x0}, -+ {0x41b7e, 0x0}, -+ {0x41b7f, 0x0}, -+ {0x41b80, 0x0}, -+ {0x41b81, 0x0}, -+ {0x41b82, 0x0}, -+ {0x41b83, 0x0}, -+ {0x41b84, 0x0}, -+ {0x41b85, 0x0}, -+ {0x41b86, 0x0}, -+ {0x41b87, 0x0}, -+ {0x41b88, 0x0}, -+ {0x41b89, 0x0}, -+ {0x41b8a, 0x0}, -+ {0x41b8b, 0x0}, -+ {0x41b8c, 0x0}, -+ {0x41b8d, 0x0}, -+ {0x41b8e, 0x0}, -+ {0x41b8f, 0x0}, -+ {0x41b90, 0x0}, -+ {0x41b91, 0x0}, -+ {0x41b92, 0x0}, -+ {0x41b93, 0x0}, -+ {0x41b94, 0x0}, -+ {0x41b95, 0x0}, -+ {0x41b96, 0x0}, -+ {0x41b97, 0x0}, -+ {0x41b98, 0x0}, -+ {0x41b99, 0x0}, -+ {0x41b9a, 0x0}, -+ {0x41b9b, 0x0}, -+ {0x41b9c, 0x0}, -+ {0x41b9d, 0x0}, -+ {0x41b9e, 0x0}, -+ {0x41b9f, 0x0}, -+ {0x41ba0, 0x0}, -+ {0x41ba1, 0x0}, -+ {0x41ba2, 0x0}, -+ {0x41ba3, 0x0}, -+ {0x41ba4, 0x0}, -+ {0x41ba5, 0x0}, -+ {0x41ba6, 0x0}, -+ {0x41ba7, 0x0}, -+ {0x41ba8, 0x0}, -+ {0x41ba9, 0x0}, -+ {0x41baa, 0x0}, -+ {0x41bab, 0x0}, -+ {0x41bac, 0x0}, -+ {0x41bad, 0x0}, -+ {0x41bae, 0x0}, -+ {0x41baf, 0x0}, -+ {0x41bb0, 0x0}, -+ {0x41bb1, 0x0}, -+ {0x41bb2, 0x0}, -+ {0x41bb3, 0x0}, -+ {0x41bb4, 0x0}, -+ {0x41bb5, 0x0}, -+ {0x41bb6, 0x0}, -+ {0x41bb7, 0x0}, -+ {0x41bb8, 0x0}, -+ {0x41bb9, 0x0}, -+ {0x41bba, 0x0}, -+ {0x41bbb, 0x0}, -+ {0x41bbc, 0x0}, -+ {0x41bbd, 0x0}, -+ {0x41bbe, 0x0}, -+ {0x41bbf, 0x0}, -+ {0x41bc0, 0x0}, -+ {0x41bc1, 0x0}, -+ {0x41bc2, 0x0}, -+ {0x41bc3, 0x0}, -+ {0x41bc4, 0x0}, -+ {0x41bc5, 0x0}, -+ {0x41bc6, 0x0}, -+ {0x41bc7, 0x0}, -+ {0x41bc8, 0x0}, -+ {0x41bc9, 0x0}, -+ {0x41bca, 0x0}, -+ {0x41bcb, 0x0}, -+ {0x41bcc, 0x0}, -+ {0x41bcd, 0x0}, -+ {0x41bce, 0x0}, -+ {0x41bcf, 0x0}, -+ {0x41bd0, 0x0}, -+ {0x41bd1, 0x0}, -+ {0x41bd2, 0x0}, -+ {0x41bd3, 0x0}, -+ {0x41bd4, 0x0}, -+ {0x41bd5, 0x0}, -+ {0x41bd6, 0x0}, -+ {0x41bd7, 0x0}, -+ {0x41bd8, 0x0}, -+ {0x41bd9, 0x0}, -+ {0x41bda, 0x0}, -+ {0x41bdb, 0x0}, -+ {0x41bdc, 0x0}, -+ {0x41bdd, 0x0}, -+ {0x41bde, 0x0}, -+ {0x41bdf, 0x0}, -+ {0x41be0, 0x0}, -+ {0x41be1, 0x0}, -+ {0x41be2, 0x0}, -+ {0x41be3, 0x0}, -+ {0x41be4, 0x0}, -+ {0x41be5, 0x0}, -+ {0x41be6, 0x0}, -+ {0x41be7, 0x0}, -+ {0x41be8, 0x0}, -+ {0x41be9, 0x0}, -+ {0x41bea, 0x0}, -+ {0x41beb, 0x0}, -+ {0x41bec, 0x0}, -+ {0x41bed, 0x0}, -+ {0x41bee, 0x0}, -+ {0x41bef, 0x0}, -+ {0x41bf0, 0x0}, -+ {0x41bf1, 0x0}, -+ {0x41bf2, 0x0}, -+ {0x41bf3, 0x0}, -+ {0x41bf4, 0x0}, -+ {0x41bf5, 0x0}, -+ {0x41bf6, 0x0}, -+ {0x41bf7, 0x0}, -+ {0x41bf8, 0x0}, -+ {0x41bf9, 0x0}, -+ {0x41bfa, 0x0}, -+ {0x41bfb, 0x0}, -+ {0x41bfc, 0x0}, -+ {0x41bfd, 0x0}, -+ {0x41bfe, 0x0}, -+ {0x41bff, 0x0}, -+ {0x41c00, 0x0}, -+ {0x41c01, 0x0}, -+ {0x41c02, 0x0}, -+ {0x41c03, 0x0}, -+ {0x41c04, 0x0}, -+ {0x41c05, 0x0}, -+ {0x41c06, 0x0}, -+ {0x41c07, 0x0}, -+ {0x41c08, 0x0}, -+ {0x41c09, 0x0}, -+ {0x41c0a, 0x0}, -+ {0x41c0b, 0x0}, -+ {0x41c0c, 0x0}, -+ {0x41c0d, 0x0}, -+ {0x41c0e, 0x0}, -+ {0x41c0f, 0x0}, -+ {0x41c10, 0x0}, -+ {0x41c11, 0x0}, -+ {0x41c12, 0x0}, -+ {0x41c13, 0x0}, -+ {0x41c14, 0x0}, -+ {0x41c15, 0x0}, -+ {0x41c16, 0x0}, -+ {0x41c17, 0x0}, -+ {0x41c18, 0x0}, -+ {0x41c19, 0x0}, -+ {0x41c1a, 0x0}, -+ {0x41c1b, 0x0}, -+ {0x41c1c, 0x0}, -+ {0x41c1d, 0x0}, -+ {0x41c1e, 0x0}, -+ {0x41c1f, 0x0}, -+ {0x41c20, 0x0}, -+ {0x41c21, 0x0}, -+ {0x41c22, 0x0}, -+ {0x41c23, 0x0}, -+ {0x41c24, 0x0}, -+ {0x41c25, 0x0}, -+ {0x41c26, 0x0}, -+ {0x41c27, 0x0}, -+ {0x41c28, 0x0}, -+ {0x41c29, 0x0}, -+ {0x41c2a, 0x0}, -+ {0x41c2b, 0x0}, -+ {0x41c2c, 0x0}, -+ {0x41c2d, 0x0}, -+ {0x41c2e, 0x0}, -+ {0x41c2f, 0x0}, -+ {0x41c30, 0x0}, -+ {0x41c31, 0x0}, -+ {0x41c32, 0x0}, -+ {0x41c33, 0x0}, -+ {0x41c34, 0x0}, -+ {0x41c35, 0x0}, -+ {0x41c36, 0x0}, -+ {0x41c37, 0x0}, -+ {0x41c38, 0x0}, -+ {0x41c39, 0x0}, -+ {0x41c3a, 0x0}, -+ {0x41c3b, 0x0}, -+ {0x41c3c, 0x0}, -+ {0x41c3d, 0x0}, -+ {0x41c3e, 0x0}, -+ {0x41c3f, 0x0}, -+ {0x41c40, 0x0}, -+ {0x41c41, 0x0}, -+ {0x41c42, 0x0}, -+ {0x41c43, 0x0}, -+ {0x41c44, 0x0}, -+ {0x41c45, 0x0}, -+ {0x41c46, 0x0}, -+ {0x41c47, 0x0}, -+ {0x41c48, 0x0}, -+ {0x41c49, 0x0}, -+ {0x41c4a, 0x0}, -+ {0x41c4b, 0x0}, -+ {0x41c4c, 0x0}, -+ {0x41c4d, 0x0}, -+ {0x41c4e, 0x0}, -+ {0x41c4f, 0x0}, -+ {0x41c50, 0x0}, -+ {0x41c51, 0x0}, -+ {0x41c52, 0x0}, -+ {0x41c53, 0x0}, -+ {0x41c54, 0x0}, -+ {0x41c55, 0x0}, -+ {0x41c56, 0x0}, -+ {0x41c57, 0x0}, -+ {0x9002e, 0x0}, -+ {0x9002f, 0x0}, -+ {0x90030, 0x0}, -+ {0x90031, 0x0}, -+ {0x90032, 0x0}, -+ {0x90033, 0x0}, -+ {0x90034, 0x0}, -+ {0x90035, 0x0}, -+ {0x90036, 0x0}, -+ {0x90037, 0x0}, -+ {0x90038, 0x0}, -+ {0x90039, 0x0}, -+ {0x9003a, 0x0}, -+ {0x9003b, 0x0}, -+ {0x9003c, 0x0}, -+ {0x9003d, 0x0}, -+ {0x9003e, 0x0}, -+ {0x9003f, 0x0}, -+ {0x90040, 0x0}, -+ {0x90041, 0x0}, -+ {0x90042, 0x0}, -+ {0x90043, 0x0}, -+ {0x90044, 0x0}, -+ {0x90045, 0x0}, -+ {0x90046, 0x0}, -+ {0x90047, 0x0}, -+ {0x90048, 0x0}, -+ {0x90049, 0x0}, -+ {0x9004a, 0x0}, -+ {0x9004b, 0x0}, -+ {0x9004c, 0x0}, -+ {0x9004d, 0x0}, -+ {0x9004e, 0x0}, -+ {0x9004f, 0x0}, -+ {0x90050, 0x0}, -+ {0x90051, 0x0}, -+ {0x90052, 0x0}, -+ {0x90053, 0x0}, -+ {0x90054, 0x0}, -+ {0x90055, 0x0}, -+ {0x90056, 0x0}, -+ {0x90057, 0x0}, -+ {0x90058, 0x0}, -+ {0x90059, 0x0}, -+ {0x9005a, 0x0}, -+ {0x9005b, 0x0}, -+ {0x9005c, 0x0}, -+ {0x9005d, 0x0}, -+ {0x9005e, 0x0}, -+ {0x9005f, 0x0}, -+ {0x90060, 0x0}, -+ {0x90061, 0x0}, -+ {0x90062, 0x0}, -+ {0x90063, 0x0}, -+ {0x90064, 0x0}, -+ {0x90065, 0x0}, -+ {0x90066, 0x0}, -+ {0x90067, 0x0}, -+ {0x90068, 0x0}, -+ {0x90069, 0x0}, -+ {0x9006a, 0x0}, -+ {0x9006b, 0x0}, -+ {0x9006c, 0x0}, -+ {0x9006d, 0x0}, -+ {0x9006e, 0x0}, -+ {0x9006f, 0x0}, -+ {0x90070, 0x0}, -+ {0x90071, 0x0}, -+ {0x90072, 0x0}, -+ {0x90073, 0x0}, -+ {0x90074, 0x0}, -+ {0x90075, 0x0}, -+ {0x90076, 0x0}, -+ {0x90077, 0x0}, -+ {0x90078, 0x0}, -+ {0x90079, 0x0}, -+ {0x9007a, 0x0}, -+ {0x9007b, 0x0}, -+ {0x9007c, 0x0}, -+ {0x9007d, 0x0}, -+ {0x9007e, 0x0}, -+ {0x9007f, 0x0}, -+ {0x90080, 0x0}, -+ {0x90081, 0x0}, -+ {0x90082, 0x0}, -+ {0x90083, 0x0}, -+ {0x90084, 0x0}, -+ {0x90085, 0x0}, -+ {0x90086, 0x0}, -+ {0x90087, 0x0}, -+ {0x90088, 0x0}, -+ {0x90089, 0x0}, -+ {0x9008a, 0x0}, -+ {0x9008b, 0x0}, -+ {0x9008c, 0x0}, -+ {0x9008d, 0x0}, -+ {0x9008e, 0x0}, -+ {0x9008f, 0x0}, -+ {0x90090, 0x0}, -+ {0x90091, 0x0}, -+ {0x90092, 0x0}, -+ {0x90093, 0x0}, -+ {0x90094, 0x0}, -+ {0x90095, 0x0}, -+ {0x90096, 0x0}, -+ {0x90097, 0x0}, -+ {0x90098, 0x0}, -+ {0x90099, 0x0}, -+ {0x9009a, 0x0}, -+ {0x9009b, 0x0}, -+ {0x9009c, 0x0}, -+ {0x9009d, 0x0}, -+ {0x9009e, 0x0}, -+ {0x9009f, 0x0}, -+ {0x900a0, 0x0}, -+ {0x900a1, 0x0}, -+ {0x900a2, 0x0}, -+ {0x900a3, 0x0}, -+ {0x900a4, 0x0}, -+ {0x900a5, 0x0}, -+ {0x900a6, 0x0}, -+ {0x900a7, 0x0}, -+ {0x900a8, 0x0}, -+ {0x900a9, 0x0}, -+ {0x900aa, 0x0}, -+ {0x900ab, 0x0}, -+ {0x900ac, 0x0}, -+ {0x900ad, 0x0}, -+ {0x900ae, 0x0}, -+ {0x900af, 0x0}, -+ {0x900b0, 0x0}, -+ {0x900b1, 0x0}, -+ {0x900b2, 0x0}, -+ {0x900b3, 0x0}, -+ {0x900b4, 0x0}, -+ {0x900b5, 0x0}, -+ {0x900b6, 0x0}, -+ {0x900b7, 0x0}, -+ {0x900b8, 0x0}, -+ {0x900b9, 0x0}, -+ {0x900ba, 0x0}, -+ {0x900bb, 0x0}, -+ {0x900bc, 0x0}, -+ {0x900bd, 0x0}, -+ {0x900be, 0x0}, -+ {0x900bf, 0x0}, -+ {0x900c0, 0x0}, -+ {0x900c1, 0x0}, -+ {0x900c2, 0x0}, -+ {0x900c3, 0x0}, -+ {0x900c4, 0x0}, -+ {0x900c5, 0x0}, -+ {0x900c6, 0x0}, -+ {0x900c7, 0x0}, -+ {0x900c8, 0x0}, -+ {0x900c9, 0x0}, -+ {0x900ca, 0x0}, -+ {0x900cb, 0x0}, -+ {0x900cc, 0x0}, -+ {0x900cd, 0x0}, -+ {0x900ce, 0x0}, -+ {0x900cf, 0x0}, -+ {0x900d0, 0x0}, -+ {0x900d1, 0x0}, -+ {0x900d2, 0x0}, -+ {0x900d3, 0x0}, -+ {0x900d4, 0x0}, -+ {0x900d5, 0x0}, -+ {0x900d6, 0x0}, -+ {0x900d7, 0x0}, -+ {0x900d8, 0x0}, -+ {0x900d9, 0x0}, -+ {0x900da, 0x0}, -+ {0x900db, 0x0}, -+ {0x900dc, 0x0}, -+ {0x900dd, 0x0}, -+ {0x900de, 0x0}, -+ {0x900df, 0x0}, -+ {0x900e0, 0x0}, -+ {0x900e1, 0x0}, -+ {0x900e2, 0x0}, -+ {0x900e3, 0x0}, -+ {0x900e4, 0x0}, -+ {0x900e5, 0x0}, -+ {0x900e6, 0x0}, -+ {0x900e7, 0x0}, -+ {0x900e8, 0x0}, -+ {0x900e9, 0x0}, -+ {0x900ea, 0x0}, -+ {0x900eb, 0x0}, -+ {0x900ec, 0x0}, -+ {0x900ed, 0x0}, -+ {0x900ee, 0x0}, -+ {0x900ef, 0x0}, -+ {0x900f0, 0x0}, -+ {0x900f1, 0x0}, -+ {0x900f2, 0x0}, -+ {0x900f3, 0x0}, -+ {0x900f4, 0x0}, -+ {0x900f5, 0x0}, -+ {0x900f6, 0x0}, -+ {0x900f7, 0x0}, -+ {0x900f8, 0x0}, -+ {0x900f9, 0x0}, -+ {0x900fa, 0x0}, -+ {0x900fb, 0x0}, -+ {0x900fc, 0x0}, -+ {0x900fd, 0x0}, -+ {0x900fe, 0x0}, -+ {0x900ff, 0x0}, -+ {0x90100, 0x0}, -+ {0x90101, 0x0}, -+ {0x90102, 0x0}, -+ {0x90103, 0x0}, -+ {0x90104, 0x0}, -+ {0x90105, 0x0}, -+ {0x90106, 0x0}, -+ {0x90107, 0x0}, -+ {0x90108, 0x0}, -+ {0x90109, 0x0}, -+ {0x9010a, 0x0}, -+ {0x9010b, 0x0}, -+ {0x9010c, 0x0}, -+ {0x9010d, 0x0}, -+ {0x9010e, 0x0}, -+ {0x9010f, 0x0}, -+ {0x90110, 0x0}, -+ {0x90111, 0x0}, -+ {0x90112, 0x0}, -+ {0x90113, 0x0}, -+ {0x90114, 0x0}, -+ {0x90115, 0x0}, -+ {0x90116, 0x0}, -+ {0x90117, 0x0}, -+ {0x90118, 0x0}, -+ {0x90119, 0x0}, -+ {0x9011a, 0x0}, -+ {0x9011b, 0x0}, -+ {0x9011c, 0x0}, -+ {0x9011d, 0x0}, -+ {0x9011e, 0x0}, -+ {0x9011f, 0x0}, -+ {0x90120, 0x0}, -+ {0x90121, 0x0}, -+ {0x90122, 0x0}, -+ {0x90123, 0x0}, -+ {0x90124, 0x0}, -+ {0x90125, 0x0}, -+ {0x90126, 0x0}, -+ {0x90127, 0x0}, -+ {0x90128, 0x0}, -+ {0x90129, 0x0}, -+ {0x9012a, 0x0}, -+ {0x9012b, 0x0}, -+ {0x9012c, 0x0}, -+ {0x9012d, 0x0}, -+ {0x9012e, 0x0}, -+ {0x9012f, 0x0}, -+ {0x90130, 0x0}, -+ {0x90131, 0x0}, -+ {0x90132, 0x0}, -+ {0x90133, 0x0}, -+ {0x90134, 0x0}, -+ {0x90135, 0x0}, -+ {0x90136, 0x0}, -+ {0x90137, 0x0}, -+ {0x90138, 0x0}, -+ {0x90139, 0x0}, -+ {0x9013a, 0x0}, -+ {0x9013b, 0x0}, -+ {0x9013c, 0x0}, -+ {0x9013d, 0x0}, -+ {0x9013e, 0x0}, -+ {0x9013f, 0x0}, -+ {0x90140, 0x0}, -+ {0x90141, 0x0}, -+ {0x90142, 0x0}, -+ {0x90143, 0x0}, -+ {0x90144, 0x0}, -+ {0x90145, 0x0}, -+ {0x90146, 0x0}, -+ {0x90147, 0x0}, -+ {0x90148, 0x0}, -+ {0x90149, 0x0}, -+ {0x9014a, 0x0}, -+ {0x9014b, 0x0}, -+ {0x9014c, 0x0}, -+ {0x9014d, 0x0}, -+ {0x9014e, 0x0}, -+ {0x9014f, 0x0}, -+ {0x90150, 0x0}, -+ {0x90151, 0x0}, -+ {0x90152, 0x0}, -+ {0x90153, 0x0}, -+ {0x90154, 0x0}, -+ {0x90155, 0x0}, -+ {0x90156, 0x0}, -+ {0x90157, 0x0}, -+ {0x90158, 0x0}, -+ {0x90159, 0x0}, -+ {0x9015a, 0x0}, -+ {0x9015b, 0x0}, -+ {0x9015c, 0x0}, -+ {0x9015d, 0x0}, -+ {0x9015e, 0x0}, -+ {0x9015f, 0x0}, -+ {0x90160, 0x0}, -+ {0x90161, 0x0}, -+ {0x90162, 0x0}, -+ {0x90163, 0x0}, -+ {0x90164, 0x0}, -+ {0x90165, 0x0}, -+ {0x90166, 0x0}, -+ {0x90167, 0x0}, -+ {0x90168, 0x0}, -+ {0x90169, 0x0}, -+ {0x9016a, 0x0}, -+ {0x9016b, 0x0}, -+ {0x9016c, 0x0}, -+ {0x9016d, 0x0}, -+ {0x9016e, 0x0}, -+ {0x9016f, 0x0}, -+ {0x90170, 0x0}, -+ {0x90171, 0x0}, -+ {0x90172, 0x0}, -+ {0x90173, 0x0}, -+ {0x90174, 0x0}, -+ {0x90175, 0x0}, -+ {0x90176, 0x0}, -+ {0x90177, 0x0}, -+ {0x90178, 0x0}, -+ {0x90179, 0x0}, -+ {0x9017a, 0x0}, -+ {0x9017b, 0x0}, -+ {0x9017c, 0x0}, -+ {0x9017d, 0x0}, -+ {0x9017e, 0x0}, -+ {0x9017f, 0x0}, -+ {0x90180, 0x0}, -+ {0x90181, 0x0}, -+ {0x90182, 0x0}, -+ {0x90183, 0x0}, -+ {0x90184, 0x0}, -+ {0x90185, 0x0}, -+ {0x90186, 0x0}, -+ {0x90187, 0x0}, -+ {0x90188, 0x0}, -+ {0x90189, 0x0}, -+ {0x9018a, 0x0}, -+ {0x9018b, 0x0}, -+ {0x9018c, 0x0}, -+ {0x9018d, 0x0}, -+ {0x9018e, 0x0}, -+ {0x9018f, 0x0}, -+ {0x90190, 0x0}, -+ {0x90191, 0x0}, -+ {0x90192, 0x0}, -+ {0x90193, 0x0}, -+ {0x90194, 0x0}, -+ {0x90195, 0x0}, -+ {0x90196, 0x0}, -+ {0x90197, 0x0}, -+ {0x90198, 0x0}, -+ {0x90199, 0x0}, -+ {0x9019a, 0x0}, -+ {0x9019b, 0x0}, -+ {0x9019c, 0x0}, -+ {0x9019d, 0x0}, -+ {0x9019e, 0x0}, -+ {0x9019f, 0x0}, -+ {0x901a0, 0x0}, -+ {0x901a1, 0x0}, -+ {0x901a2, 0x0}, -+ {0x901a3, 0x0}, -+ {0x901a4, 0x0}, -+ {0x901a5, 0x0}, -+ {0x901a6, 0x0}, -+ {0x901a7, 0x0}, -+ {0x901a8, 0x0}, -+ {0x901a9, 0x0}, -+ {0x901aa, 0x0}, -+ {0x901ab, 0x0}, -+ {0x901ac, 0x0}, -+ {0x901ad, 0x0}, -+ {0x901ae, 0x0}, -+ {0x901af, 0x0}, -+ {0x901b0, 0x0}, -+ {0x901b1, 0x0}, -+ {0x901b2, 0x0}, -+ {0x901b3, 0x0}, -+ {0x901b4, 0x0}, -+ {0x901b5, 0x0}, -+ {0x901b6, 0x0}, -+ {0x901b7, 0x0}, -+ {0x901b8, 0x0}, -+ {0x901b9, 0x0}, -+ {0x901ba, 0x0}, -+ {0x901bb, 0x0}, -+ {0x901bc, 0x0}, -+ {0x901bd, 0x0}, -+ {0x901be, 0x0}, -+ {0x901bf, 0x0}, -+ {0x901c0, 0x0}, -+ {0x901c1, 0x0}, -+ {0x901c2, 0x0}, -+ {0x901c3, 0x0}, -+ {0x901c4, 0x0}, -+ {0x901c5, 0x0}, -+ {0x901c6, 0x0}, -+ {0x901c7, 0x0}, -+ {0x901c8, 0x0}, -+ {0x901c9, 0x0}, -+ {0x901ca, 0x0}, -+ {0x901cb, 0x0}, -+ {0x901cc, 0x0}, -+ {0x901cd, 0x0}, -+ {0x901ce, 0x0}, -+ {0x901cf, 0x0}, -+ {0x901d0, 0x0}, -+ {0x901d1, 0x0}, -+ {0x901d2, 0x0}, -+ {0x901d3, 0x0}, -+ {0x901d4, 0x0}, -+ {0x901d5, 0x0}, -+ {0x901d6, 0x0}, -+ {0x901d7, 0x0}, -+ {0x901d8, 0x0}, -+ {0x901d9, 0x0}, -+ {0x901da, 0x0}, -+ {0x901db, 0x0}, -+ {0x901dc, 0x0}, -+ {0x901dd, 0x0}, -+ {0x901de, 0x0}, -+ {0x901df, 0x0}, -+ {0x901e0, 0x0}, -+ {0x901e1, 0x0}, -+ {0x901e2, 0x0}, -+ {0x901e3, 0x0}, -+ {0x901e4, 0x0}, -+ {0x901e5, 0x0}, -+ {0x901e6, 0x0}, -+ {0x901e7, 0x0}, -+ {0x901e8, 0x0}, -+ {0x901e9, 0x0}, -+ {0x901ea, 0x0}, -+ {0x901eb, 0x0}, -+ {0x901ec, 0x0}, -+ {0x901ed, 0x0}, -+ {0x901ee, 0x0}, -+ {0x901ef, 0x0}, -+ {0x901f0, 0x0}, -+ {0x901f1, 0x0}, -+ {0x901f2, 0x0}, -+ {0x901f3, 0x0}, -+ {0x901f4, 0x0}, -+ {0x901f5, 0x0}, -+ {0x901f6, 0x0}, -+ {0x901f7, 0x0}, -+ {0x901f8, 0x0}, -+ {0x901f9, 0x0}, -+ {0x901fa, 0x0}, -+ {0x901fb, 0x0}, -+ {0x901fc, 0x0}, -+ {0x901fd, 0x0}, -+ {0x901fe, 0x0}, -+ {0x901ff, 0x0}, -+ {0x90200, 0x0}, -+ {0x90201, 0x0}, -+ {0x90202, 0x0}, -+ {0x90203, 0x0}, -+ {0x90204, 0x0}, -+ {0x90205, 0x0}, -+ {0x90206, 0x0}, -+ {0x90207, 0x0}, -+ {0x90208, 0x0}, -+ {0x90209, 0x0}, -+ {0x9020a, 0x0}, -+ {0x9020b, 0x0}, -+ {0x9020c, 0x0}, -+ {0x9020d, 0x0}, -+ {0x9020e, 0x0}, -+ {0x9020f, 0x0}, -+ {0x90210, 0x0}, -+ {0x90211, 0x0}, -+ {0x90212, 0x0}, -+ {0x90213, 0x0}, -+ {0x90214, 0x0}, -+ {0x90215, 0x0}, -+ {0x90216, 0x0}, -+ {0x90217, 0x0}, -+ {0x90218, 0x0}, -+ {0x90219, 0x0}, -+ {0x9021a, 0x0}, -+ {0x9021b, 0x0}, -+ {0x9021c, 0x0}, -+ {0x9021d, 0x0}, -+ {0x9021e, 0x0}, -+ {0x9021f, 0x0}, -+ {0x90220, 0x0}, -+ {0x90221, 0x0}, -+ {0x90222, 0x0}, -+ {0x90223, 0x0}, -+ {0x90224, 0x0}, -+ {0x90225, 0x0}, -+ {0x90226, 0x0}, -+ {0x90227, 0x0}, -+ {0x90228, 0x0}, -+ {0x90229, 0x0}, -+ {0x9022a, 0x0}, -+ {0x9022b, 0x0}, -+ {0x9022c, 0x0}, -+ {0x9022d, 0x0}, -+ {0x9022e, 0x0}, -+ {0x9022f, 0x0}, -+ {0x90230, 0x0}, -+ {0x90231, 0x0}, -+ {0x90232, 0x0}, -+ {0x90233, 0x0}, -+ {0x90234, 0x0}, -+ {0x90235, 0x0}, -+ {0x90236, 0x0}, -+ {0x90237, 0x0}, -+ {0x90238, 0x0}, -+ {0x90239, 0x0}, -+ {0x9023a, 0x0}, -+ {0x9023b, 0x0}, -+ {0x9023c, 0x0}, -+ {0x9023d, 0x0}, -+ {0x9023e, 0x0}, -+ {0x9023f, 0x0}, -+ {0x90240, 0x0}, -+ {0x90241, 0x0}, -+ {0x90242, 0x0}, -+ {0x90243, 0x0}, -+ {0x90244, 0x0}, -+ {0x90245, 0x0}, -+ {0x90246, 0x0}, -+ {0x90247, 0x0}, -+ {0x90248, 0x0}, -+ {0x90249, 0x0}, -+ {0x9024a, 0x0}, -+ {0x9024b, 0x0}, -+ {0x9024c, 0x0}, -+ {0x9024d, 0x0}, -+ {0x9024e, 0x0}, -+ {0x9024f, 0x0}, -+ {0x90250, 0x0}, -+ {0x90251, 0x0}, -+ {0x90252, 0x0}, -+ {0x90253, 0x0}, -+ {0x90254, 0x0}, -+ {0x90255, 0x0}, -+ {0x90256, 0x0}, -+ {0x90257, 0x0}, -+ {0x90258, 0x0}, -+ {0x90259, 0x0}, -+ {0x9025a, 0x0}, -+ {0x9025b, 0x0}, -+ {0x9025c, 0x0}, -+ {0x9025d, 0x0}, -+ {0x9025e, 0x0}, -+ {0x9025f, 0x0}, -+ {0x90260, 0x0}, -+ {0x90261, 0x0}, -+ {0x90262, 0x0}, -+ {0x90263, 0x0}, -+ {0x90264, 0x0}, -+ {0x90265, 0x0}, -+ {0x90266, 0x0}, -+ {0x90267, 0x0}, -+ {0x90268, 0x0}, -+ {0x90269, 0x0}, -+ {0x9026a, 0x0}, -+ {0x9026b, 0x0}, -+ {0x9026c, 0x0}, -+ {0x9026d, 0x0}, -+ {0x9026e, 0x0}, -+ {0x9026f, 0x0}, -+ {0x90270, 0x0}, -+ {0x90271, 0x0}, -+ {0x90272, 0x0}, -+ {0x90273, 0x0}, -+ {0x90274, 0x0}, -+ {0x90275, 0x0}, -+ {0x90276, 0x0}, -+ {0x90277, 0x0}, -+ {0x90278, 0x0}, -+ {0x90279, 0x0}, -+ {0x9027a, 0x0}, -+ {0x9027b, 0x0}, -+ {0x9027c, 0x0}, -+ {0x9027d, 0x0}, -+ {0x9027e, 0x0}, -+ {0x9027f, 0x0}, -+ {0x90280, 0x0}, -+ {0x90281, 0x0}, -+ {0x90282, 0x0}, -+ {0x90283, 0x0}, -+ {0x90284, 0x0}, -+ {0x90285, 0x0}, -+ {0x90286, 0x0}, -+ {0x90287, 0x0}, -+ {0x90288, 0x0}, -+ {0x90289, 0x0}, -+ {0x9028a, 0x0}, -+ {0x9028b, 0x0}, -+ {0x9028c, 0x0}, -+ {0x9028d, 0x0}, -+ {0x9028e, 0x0}, -+ {0x9028f, 0x0}, -+ {0x90290, 0x0}, -+ {0x90291, 0x0}, -+ {0x90292, 0x0}, -+ {0x90293, 0x0}, -+ {0x90294, 0x0}, -+ {0x90295, 0x0}, -+ {0x90296, 0x0}, -+ {0x90297, 0x0}, -+ {0x90298, 0x0}, -+ {0x90299, 0x0}, -+ {0x9029a, 0x0}, -+ {0x9029b, 0x0}, -+ {0x9029c, 0x0}, -+ {0x9029d, 0x0}, -+ {0x9029e, 0x0}, -+ {0x9029f, 0x0}, -+ {0x902a0, 0x0}, -+ {0x902a1, 0x0}, -+ {0x902a2, 0x0}, -+ {0x902a3, 0x0}, -+ {0x902a4, 0x0}, -+ {0x902a5, 0x0}, -+ {0x902a6, 0x0}, -+ {0x902a7, 0x0}, -+ {0x902a8, 0x0}, -+ {0x902a9, 0x0}, -+ {0x902aa, 0x0}, -+ {0x902ab, 0x0}, -+ {0x902ac, 0x0}, -+ {0x902ad, 0x0}, -+ {0x902ae, 0x0}, -+ {0x902af, 0x0}, -+ {0x902b0, 0x0}, -+ {0x902b1, 0x0}, -+ {0x902b2, 0x0}, -+ {0x902b3, 0x0}, -+ {0x902b4, 0x0}, -+ {0x902b5, 0x0}, -+ {0x902b6, 0x0}, -+ {0x902b7, 0x0}, -+ {0x902b8, 0x0}, -+ {0x902b9, 0x0}, -+ {0x902ba, 0x0}, -+ {0x902bb, 0x0}, -+ {0x902bc, 0x0}, -+ {0x902bd, 0x0}, -+ {0x902be, 0x0}, -+ {0x902bf, 0x0}, -+ {0x902c0, 0x0}, -+ {0x902c1, 0x0}, -+ {0x902c2, 0x0}, -+ {0x902c3, 0x0}, -+ {0x902c4, 0x0}, -+ {0x902c5, 0x0}, -+ {0x902c6, 0x0}, -+ {0x902c7, 0x0}, -+ {0x902c8, 0x0}, -+ {0x902c9, 0x0}, -+ {0x902ca, 0x0}, -+ {0x902cb, 0x0}, -+ {0x902cc, 0x0}, -+ {0x902cd, 0x0}, -+ {0x902ce, 0x0}, -+ {0x902cf, 0x0}, -+ {0x902d0, 0x0}, -+ {0x902d1, 0x0}, -+ {0x902d2, 0x0}, -+ {0x902d3, 0x0}, -+ {0x902d4, 0x0}, -+ {0x902d5, 0x0}, -+ {0x902d6, 0x0}, -+ {0x902d7, 0x0}, -+ {0x902d8, 0x0}, -+ {0x902d9, 0x0}, -+ {0x902da, 0x0}, -+ {0x902db, 0x0}, -+ {0x902dc, 0x0}, -+ {0x902dd, 0x0}, -+ {0x902de, 0x0}, -+ {0x902df, 0x0}, -+ {0x902e0, 0x0}, -+ {0x902e1, 0x0}, -+ {0x902e2, 0x0}, -+ {0x902e3, 0x0}, -+ {0x902e4, 0x0}, -+ {0x902e5, 0x0}, -+ {0x902e6, 0x0}, -+ {0x902e7, 0x0}, -+ {0x902e8, 0x0}, -+ {0x902e9, 0x0}, -+ {0x902ea, 0x0}, -+ {0x902eb, 0x0}, -+ {0x902ec, 0x0}, -+ {0x902ed, 0x0}, -+ {0x902ee, 0x0}, -+ {0x902ef, 0x0}, -+ {0x902f0, 0x0}, -+ {0x902f1, 0x0}, -+ {0x902f2, 0x0}, -+ {0x902f3, 0x0}, -+ {0x902f4, 0x0}, -+ {0x902f5, 0x0}, -+ {0x902f6, 0x0}, -+ {0x902f7, 0x0}, -+ {0x902f8, 0x0}, -+ {0x902f9, 0x0}, -+ {0x902fa, 0x0}, -+ {0x902fb, 0x0}, -+ {0x902fc, 0x0}, -+ {0x902fd, 0x0}, -+ {0x902fe, 0x0}, -+ {0x902ff, 0x0}, -+ {0x90300, 0x0}, -+ {0x90301, 0x0}, -+ {0x90302, 0x0}, -+ {0x90303, 0x0}, -+ {0x90304, 0x0}, -+ {0x90305, 0x0}, -+ {0x90306, 0x0}, -+ {0x90307, 0x0}, -+ {0x90308, 0x0}, -+ {0x90309, 0x0}, -+ {0x9030a, 0x0}, -+ {0x9030b, 0x0}, -+ {0x9030c, 0x0}, -+ {0x9030d, 0x0}, -+ {0x9030e, 0x0}, -+ {0x9030f, 0x0}, -+ {0x90310, 0x0}, -+ {0x90311, 0x0}, -+ {0x90312, 0x0}, -+ {0x90313, 0x0}, -+ {0x90314, 0x0}, -+ {0x90315, 0x0}, -+ {0x90316, 0x0}, -+ {0x90317, 0x0}, -+ {0x90318, 0x0}, -+ {0x90319, 0x0}, -+ {0x9031a, 0x0}, -+ {0x9031b, 0x0}, -+ {0x9031c, 0x0}, -+ {0x9031d, 0x0}, -+ {0x9031e, 0x0}, -+ {0x9031f, 0x0}, -+ {0x90320, 0x0}, -+ {0x90321, 0x0}, -+ {0x90322, 0x0}, -+ {0x90323, 0x0}, -+ {0x90324, 0x0}, -+ {0x90325, 0x0}, -+ {0x90326, 0x0}, -+ {0x90327, 0x0}, -+ {0x90328, 0x0}, -+ {0x90329, 0x0}, -+ {0x9032a, 0x0}, -+ {0x9032b, 0x0}, -+ {0x9032c, 0x0}, -+ {0x9032d, 0x0}, -+ {0x9032e, 0x0}, -+ {0x9032f, 0x0}, -+ {0x90330, 0x0}, -+ {0x90331, 0x0}, -+ {0x90332, 0x0}, -+ {0x90333, 0x0}, -+ {0x90334, 0x0}, -+ {0x90335, 0x0}, -+ {0x90336, 0x0}, -+ {0x90337, 0x0}, -+ {0x90338, 0x0}, -+ {0x90339, 0x0}, -+ {0x9033a, 0x0}, -+ {0x9033b, 0x0}, -+ {0x9033c, 0x0}, -+ {0x9033d, 0x0}, -+ {0x9033e, 0x0}, -+ {0x9033f, 0x0}, -+ {0x90340, 0x0}, -+ {0x90341, 0x0}, -+ {0x90342, 0x0}, -+ {0x90343, 0x0}, -+ {0x90344, 0x0}, -+ {0x90345, 0x0}, -+ {0x90346, 0x0}, -+ {0x90347, 0x0}, -+ {0x90348, 0x0}, -+ {0x90349, 0x0}, -+ {0x9034a, 0x0}, -+ {0x9034b, 0x0}, -+ {0x9034c, 0x0}, -+ {0x9034d, 0x0}, -+ {0x9034e, 0x0}, -+ {0x9034f, 0x0}, -+ {0x90350, 0x0}, -+ {0x90351, 0x0}, -+ {0x90352, 0x0}, -+ {0x90353, 0x0}, -+ {0x90354, 0x0}, -+ {0x90355, 0x0}, -+ {0x90356, 0x0}, -+ {0x90357, 0x0}, -+ {0x90358, 0x0}, -+ {0x90359, 0x0}, -+ {0x9035a, 0x0}, -+ {0x9035b, 0x0}, -+ {0x9035c, 0x0}, -+ {0x9035d, 0x0}, -+ {0x9035e, 0x0}, -+ {0x9035f, 0x0}, -+ {0x90360, 0x0}, -+ {0x90361, 0x0}, -+ {0x90362, 0x0}, -+ {0x90363, 0x0}, -+ {0x90364, 0x0}, -+ {0x90365, 0x0}, -+ {0x90366, 0x0}, -+ {0x90367, 0x0}, -+ {0x90368, 0x0}, -+ {0x90369, 0x0}, -+ {0x9036a, 0x0}, -+ {0x9036b, 0x0}, -+ {0x9036c, 0x0}, -+ {0x9036d, 0x0}, -+ {0x9036e, 0x0}, -+ {0x9036f, 0x0}, -+ {0x90370, 0x0}, -+ {0x90371, 0x0}, -+ {0x90372, 0x0}, -+ {0x90373, 0x0}, -+ {0x90374, 0x0}, -+ {0x90375, 0x0}, -+ {0x90376, 0x0}, -+ {0x90377, 0x0}, -+ {0x90378, 0x0}, -+ {0x90379, 0x0}, -+ {0x9037a, 0x0}, -+ {0x9037b, 0x0}, -+ {0x9037c, 0x0}, -+ {0x9037d, 0x0}, -+ {0x9037e, 0x0}, -+ {0x9037f, 0x0}, -+ {0x90380, 0x0}, -+ {0x90381, 0x0}, -+ {0x90382, 0x0}, -+ {0x90383, 0x0}, -+ {0x90384, 0x0}, -+ {0x90385, 0x0}, -+ {0x90386, 0x0}, -+ {0x90387, 0x0}, -+ {0x90388, 0x0}, -+ {0x90389, 0x0}, -+ {0x9038a, 0x0}, -+ {0x9038b, 0x0}, -+ {0x9038c, 0x0}, -+ {0x9038d, 0x0}, -+ {0x9038e, 0x0}, -+ {0x9038f, 0x0}, -+ {0x90390, 0x0}, -+ {0x90391, 0x0}, -+ {0x90392, 0x0}, -+ {0x90393, 0x0}, -+ {0x90394, 0x0}, -+ {0x90395, 0x0}, -+ {0x90396, 0x0}, -+ {0x90397, 0x0}, -+ {0x90398, 0x0}, -+ {0x90399, 0x0}, -+ {0x9039a, 0x0}, -+ {0x9039b, 0x0}, -+ {0x9039c, 0x0}, -+ {0x9039d, 0x0}, -+ {0x9039e, 0x0}, -+ {0x9039f, 0x0}, -+ {0x903a0, 0x0}, -+ {0x903a1, 0x0}, -+ {0x903a2, 0x0}, -+ {0x903a3, 0x0}, -+ {0x903a4, 0x0}, -+ {0x903a5, 0x0}, -+ {0x903a6, 0x0}, -+ {0x903a7, 0x0}, -+ {0x903a8, 0x0}, -+ {0x903a9, 0x0}, -+ {0x903aa, 0x0}, -+ {0x903ab, 0x0}, -+ {0x903ac, 0x0}, -+ {0x903ad, 0x0}, -+ {0x903ae, 0x0}, -+ {0x903af, 0x0}, -+ {0x903b0, 0x0}, -+ {0x903b1, 0x0}, -+ {0x903b2, 0x0}, -+ {0x903b3, 0x0}, -+ {0x903b4, 0x0}, -+ {0x903b5, 0x0}, -+ {0x903b6, 0x0}, -+ {0x903b7, 0x0}, -+ {0x903b8, 0x0}, -+ {0x903b9, 0x0}, -+ {0x903ba, 0x0}, -+ {0x903bb, 0x0}, -+ {0x903bc, 0x0}, -+ {0x903bd, 0x0}, -+ {0x903be, 0x0}, -+ {0x903bf, 0x0}, -+ {0x903c0, 0x0}, -+ {0x903c1, 0x0}, -+ {0x903c2, 0x0}, -+ {0x903c3, 0x0}, -+ {0x903c4, 0x0}, -+ {0x903c5, 0x0}, -+ {0x903c6, 0x0}, -+ {0x903c7, 0x0}, -+ {0x903c8, 0x0}, -+ {0x903c9, 0x0}, -+ {0x903ca, 0x0}, -+ {0x903cb, 0x0}, -+ {0x903cc, 0x0}, -+ {0x903cd, 0x0}, -+ {0x903ce, 0x0}, -+ {0x903cf, 0x0}, -+ {0x903d0, 0x0}, -+ {0x903d1, 0x0}, -+ {0x903d2, 0x0}, -+ {0x903d3, 0x0}, -+ {0x903d4, 0x0}, -+ {0x903d5, 0x0}, -+ {0x903d6, 0x0}, -+ {0x903d7, 0x0}, -+ {0x903d8, 0x0}, -+ {0x903d9, 0x0}, -+ {0x903da, 0x0}, -+ {0x903db, 0x0}, -+ {0x903dc, 0x0}, -+ {0x903dd, 0x0}, -+ {0x903de, 0x0}, -+ {0x903df, 0x0}, -+ {0x903e0, 0x0}, -+ {0x903e1, 0x0}, -+ {0x903e2, 0x0}, -+ {0x903e3, 0x0}, -+ {0x903e4, 0x0}, -+ {0x903e5, 0x0}, -+ {0x903e6, 0x0}, -+ {0x903e7, 0x0}, -+ {0x903e8, 0x0}, -+ {0x903e9, 0x0}, -+ {0x903ea, 0x0}, -+ {0x903eb, 0x0}, -+ {0x903ec, 0x0}, -+ {0x903ed, 0x0}, -+ {0x903ee, 0x0}, -+ {0x903ef, 0x0}, -+ {0x903f0, 0x0}, -+ {0x903f1, 0x0}, -+ {0x903f2, 0x0}, -+ {0x903f3, 0x0}, -+ {0x903f4, 0x0}, -+ {0x903f5, 0x0}, -+ {0x903f6, 0x0}, -+ {0x903f7, 0x0}, -+ {0x903f8, 0x0}, -+ {0x903f9, 0x0}, -+ {0x903fa, 0x0}, -+ {0x903fb, 0x0}, -+ {0x903fc, 0x0}, -+ {0x903fd, 0x0}, -+ {0x903fe, 0x0}, -+ {0x903ff, 0x0}, -+ {0x90400, 0x0}, -+ {0x90401, 0x0}, -+ {0x90402, 0x0}, -+ {0x90403, 0x0}, -+ {0x90404, 0x0}, -+ {0x90405, 0x0}, -+ {0x90406, 0x0}, -+ {0x90407, 0x0}, -+ {0x90408, 0x0}, -+ {0x90409, 0x0}, -+ {0x9040a, 0x0}, -+ {0x9040b, 0x0}, -+ {0x9040c, 0x0}, -+ {0x9040d, 0x0}, -+ {0x9040e, 0x0}, -+ {0x9040f, 0x0}, -+ {0x90410, 0x0}, -+ {0x90411, 0x0}, -+ {0x90412, 0x0}, -+ {0x90413, 0x0}, -+ {0x90414, 0x0}, -+ {0x90415, 0x0}, -+ {0x90416, 0x0}, -+ {0x90417, 0x0}, -+ {0x90418, 0x0}, -+ {0x90419, 0x0}, -+ {0x9041a, 0x0}, -+ {0x9041b, 0x0}, -+ {0x9041c, 0x0}, -+ {0x9041d, 0x0}, -+ {0x9041e, 0x0}, -+ {0x9041f, 0x0}, -+ {0x90420, 0x0}, -+ {0x90421, 0x0}, -+ {0x90422, 0x0}, -+ {0x90423, 0x0}, -+ {0x90424, 0x0}, -+ {0x90425, 0x0}, -+ {0x90426, 0x0}, -+ {0x90427, 0x0}, -+ {0x90428, 0x0}, -+ {0x90429, 0x0}, -+ {0x9042a, 0x0}, -+ {0x9042b, 0x0}, -+ {0x9042c, 0x0}, -+ {0x9042d, 0x0}, -+ {0x9042e, 0x0}, -+ {0x9042f, 0x0}, -+ {0x90430, 0x0}, -+ {0x90431, 0x0}, -+ {0x90432, 0x0}, -+ {0x90433, 0x0}, -+ {0x90434, 0x0}, -+ {0x90435, 0x0}, -+ {0x90436, 0x0}, -+ {0x90437, 0x0}, -+ {0x90438, 0x0}, -+ {0x90439, 0x0}, -+ {0x9043a, 0x0}, -+ {0x9043b, 0x0}, -+ {0x9043c, 0x0}, -+ {0x9043d, 0x0}, -+ {0x9043e, 0x0}, -+ {0x9043f, 0x0}, -+ {0x90440, 0x0}, -+ {0x90441, 0x0}, -+ {0x90442, 0x0}, -+ {0x90443, 0x0}, -+ {0x90444, 0x0}, -+ {0x90445, 0x0}, -+ {0x90446, 0x0}, -+ {0x90447, 0x0}, -+ {0x90448, 0x0}, -+ {0x90449, 0x0}, -+ {0x9044a, 0x0}, -+ {0x9044b, 0x0}, -+ {0x9044c, 0x0}, -+ {0x9044d, 0x0}, -+ {0x9044e, 0x0}, -+ {0x9044f, 0x0}, -+ {0x90450, 0x0}, -+ {0x90451, 0x0}, -+ {0x90452, 0x0}, -+ {0x90453, 0x0}, -+ {0x90454, 0x0}, -+ {0x90455, 0x0}, -+ {0x90456, 0x0}, -+ {0x90457, 0x0}, -+ {0x90458, 0x0}, -+ {0x90459, 0x0}, -+ {0x9045a, 0x0}, -+ {0x9045b, 0x0}, -+ {0x9045c, 0x0}, -+ {0x9045d, 0x0}, -+ {0x9045e, 0x0}, -+ {0x9045f, 0x0}, -+ {0x90460, 0x0}, -+ {0x90461, 0x0}, -+ {0x90462, 0x0}, -+ {0x90463, 0x0}, -+ {0x90464, 0x0}, -+ {0x90465, 0x0}, -+ {0x90466, 0x0}, -+ {0x90467, 0x0}, -+ {0x90468, 0x0}, -+ {0x90469, 0x0}, -+ {0x9046a, 0x0}, -+ {0x9046b, 0x0}, -+ {0x9046c, 0x0}, -+ {0x9046d, 0x0}, -+ {0x9046e, 0x0}, -+ {0x9046f, 0x0}, -+ {0x90470, 0x0}, -+ {0x90471, 0x0}, -+ {0x90472, 0x0}, -+ {0x90473, 0x0}, -+ {0x90474, 0x0}, -+ {0x90475, 0x0}, -+ {0x90476, 0x0}, -+ {0x90477, 0x0}, -+ {0x90478, 0x0}, -+ {0x90479, 0x0}, -+ {0x9047a, 0x0}, -+ {0x9047b, 0x0}, -+ {0x9047c, 0x0}, -+ {0x9047d, 0x0}, -+ {0x9047e, 0x0}, -+ {0x9047f, 0x0}, -+ {0x90480, 0x0}, -+ {0x90481, 0x0}, -+ {0x90482, 0x0}, -+ {0x90483, 0x0}, -+ {0x90484, 0x0}, -+ {0x90485, 0x0}, -+ {0x90486, 0x0}, -+ {0x90487, 0x0}, -+ {0x90488, 0x0}, -+ {0x90489, 0x0}, -+ {0x9048a, 0x0}, -+ {0x9048b, 0x0}, -+ {0x9048c, 0x0}, -+ {0x9048d, 0x0}, -+ {0x9048e, 0x0}, -+ {0x9048f, 0x0}, -+ {0x90490, 0x0}, -+ {0x90491, 0x0}, -+ {0x90492, 0x0}, -+ {0x90493, 0x0}, -+ {0x90494, 0x0}, -+ {0x90495, 0x0}, -+ {0x90496, 0x0}, -+ {0x90497, 0x0}, -+ {0x90498, 0x0}, -+ {0x90499, 0x0}, -+ {0x9049a, 0x0}, -+ {0x9049b, 0x0}, -+ {0x9049c, 0x0}, -+ {0x9049d, 0x0}, -+ {0x9049e, 0x0}, -+ {0x9049f, 0x0}, -+ {0x904a0, 0x0}, -+ {0x904a1, 0x0}, -+ {0x904a2, 0x0}, -+ {0x904a3, 0x0}, -+ {0x904a4, 0x0}, -+ {0x904a5, 0x0}, -+ {0x904a6, 0x0}, -+ {0x904a7, 0x0}, -+ {0x904a8, 0x0}, -+ {0x904a9, 0x0}, -+ {0x904aa, 0x0}, -+ {0x904ab, 0x0}, -+ {0x904ac, 0x0}, -+ {0x904ad, 0x0}, -+ {0x904ae, 0x0}, -+ {0x904af, 0x0}, -+ {0x904b0, 0x0}, -+ {0x904b1, 0x0}, -+ {0x904b2, 0x0}, -+ {0x904b3, 0x0}, -+ {0x904b4, 0x0}, -+ {0x904b5, 0x0}, -+ {0x904b6, 0x0}, -+ {0x904b7, 0x0}, -+ {0x904b8, 0x0}, -+ {0x904b9, 0x0}, -+ {0x904ba, 0x0}, -+ {0x904bb, 0x0}, -+ {0x904bc, 0x0}, -+ {0x904bd, 0x0}, -+ {0x904be, 0x0}, -+ {0x904bf, 0x0}, -+ {0x904c0, 0x0}, -+ {0x904c1, 0x0}, -+ {0x904c2, 0x0}, -+ {0x904c3, 0x0}, -+ {0x904c4, 0x0}, -+ {0x904c5, 0x0}, -+ {0x904c6, 0x0}, -+ {0x904c7, 0x0}, -+ {0x904c8, 0x0}, -+ {0x904c9, 0x0}, -+ {0x904ca, 0x0}, -+ {0x904cb, 0x0}, -+ {0x904cc, 0x0}, -+ {0x904cd, 0x0}, -+ {0x904ce, 0x0}, -+ {0x904cf, 0x0}, -+ {0x904d0, 0x0}, -+ {0x904d1, 0x0}, -+ {0x904d2, 0x0}, -+ {0x904d3, 0x0}, -+ {0x904d4, 0x0}, -+ {0x904d5, 0x0}, -+ {0x904d6, 0x0}, -+ {0x904d7, 0x0}, -+ {0x904d8, 0x0}, -+ {0x904d9, 0x0}, -+ {0x904da, 0x0}, -+ {0x904db, 0x0}, -+ {0x904dc, 0x0}, -+ {0x904dd, 0x0}, -+ {0x904de, 0x0}, -+ {0x904df, 0x0}, -+ {0x904e0, 0x0}, -+ {0x904e1, 0x0}, -+ {0x904e2, 0x0}, -+ {0x904e3, 0x0}, -+ {0x904e4, 0x0}, -+ {0x904e5, 0x0}, -+ {0x904e6, 0x0}, -+ {0x904e7, 0x0}, -+ {0x904e8, 0x0}, -+ {0x904e9, 0x0}, -+ {0x904ea, 0x0}, -+ {0x904eb, 0x0}, -+ {0x904ec, 0x0}, -+ {0x904ed, 0x0}, -+ {0x904ee, 0x0}, -+ {0x904ef, 0x0}, -+ {0x904f0, 0x0}, -+ {0x904f1, 0x0}, -+ {0x904f2, 0x0}, -+ {0x904f3, 0x0}, -+ {0x904f4, 0x0}, -+ {0x904f5, 0x0}, -+ {0x904f6, 0x0}, -+ {0x904f7, 0x0}, -+ {0x904f8, 0x0}, -+ {0x904f9, 0x0}, -+ {0x904fa, 0x0}, -+ {0x904fb, 0x0}, -+ {0x904fc, 0x0}, -+ {0x904fd, 0x0}, -+ {0x904fe, 0x0}, -+ {0x904ff, 0x0}, -+ {0x90500, 0x0}, -+ {0x90501, 0x0}, -+ {0x90502, 0x0}, -+ {0x90503, 0x0}, -+ {0x90504, 0x0}, -+ {0x90505, 0x0}, -+ {0x90506, 0x0}, -+ {0x90507, 0x0}, -+ {0x90508, 0x0}, -+ {0x90509, 0x0}, -+ {0x9050a, 0x0}, -+ {0x9050b, 0x0}, -+ {0x9050c, 0x0}, -+ {0x9050d, 0x0}, -+ {0x9050e, 0x0}, -+ {0x9050f, 0x0}, -+ {0x90510, 0x0}, -+ {0x90511, 0x0}, -+ {0x90512, 0x0}, -+ {0x90513, 0x0}, -+ {0x90514, 0x0}, -+ {0x90515, 0x0}, -+ {0x90516, 0x0}, -+ {0x90517, 0x0}, -+ {0x90518, 0x0}, -+ {0x90519, 0x0}, -+ {0x9051a, 0x0}, -+ {0x9051b, 0x0}, -+ {0x9051c, 0x0}, -+ {0x9051d, 0x0}, -+ {0x9051e, 0x0}, -+ {0x9051f, 0x0}, -+ {0x90520, 0x0}, -+ {0x90521, 0x0}, -+ {0x90522, 0x0}, -+ {0x90523, 0x0}, -+ {0x90524, 0x0}, -+ {0x90525, 0x0}, -+ {0x90526, 0x0}, -+ {0x90527, 0x0}, -+ {0x90528, 0x0}, -+ {0x90529, 0x0}, -+ {0x9052a, 0x0}, -+ {0x9052b, 0x0}, -+ {0x9052c, 0x0}, -+ {0x9052d, 0x0}, -+ {0x9052e, 0x0}, -+ {0x9052f, 0x0}, -+ {0x90530, 0x0}, -+ {0x90531, 0x0}, -+ {0x90532, 0x0}, -+ {0x90533, 0x0}, -+ {0x90534, 0x0}, -+ {0x90535, 0x0}, -+ {0x90536, 0x0}, -+ {0x90537, 0x0}, -+ {0x90538, 0x0}, -+ {0x90539, 0x0}, -+ {0x9053a, 0x0}, -+ {0xd00e7, 0x0}, -+ {0x9001c, 0x0}, -+ {0x90020, 0x0}, -+ {0x90024, 0x0}, -+ {0x90025, 0x0}, -+ {0x90026, 0x0}, -+ {0x9002b, 0x0}, -+ {0x90708, 0x0}, -+ {0x90700, 0x0}, -+ {0x90701, 0x0}, -+ {0x90702, 0x0}, -+ {0x90703, 0x0}, -+ {0x90704, 0x0}, -+ {0x90705, 0x0}, -+ {0x90706, 0x0}, -+ {0x90707, 0x0}, -+ {0x2018a, 0x0}, -+ {0x20124, 0x0}, -+ {0x2018b, 0x0}, -+ {0x20125, 0x0}, -+ {0x2018c, 0x0}, -+ {0x20126, 0x0}, -+ {0x2018d, 0x0}, -+ {0x20127, 0x0}, -+ {0x2018e, 0x0}, -+ {0x20128, 0x0}, -+ {0x2018f, 0x0}, -+ {0x20129, 0x0}, -+ {0x20190, 0x0}, -+ {0x2012a, 0x0}, -+ {0x20191, 0x0}, -+ {0x2012b, 0x0}, -+ {0x20192, 0x0}, -+ {0x2012c, 0x0}, -+ {0x20193, 0x0}, -+ {0x2012d, 0x0}, -+ {0x20194, 0x0}, -+ {0x2012e, 0x0}, -+ {0x20195, 0x0}, -+ {0x2012f, 0x0}, -+ {0x20196, 0x0}, -+ {0x20130, 0x0}, -+ {0x20197, 0x0}, -+ {0x20131, 0x0}, -+ {0x20198, 0x0}, -+ {0x20132, 0x0}, -+ {0x20199, 0x0}, -+ {0x20133, 0x0}, -+ {0x2019a, 0x0}, -+ {0x20134, 0x0}, -+ {0x2019b, 0x0}, -+ {0x20135, 0x0}, -+ {0x2019c, 0x0}, -+ {0x20136, 0x0}, -+ {0x2019d, 0x0}, -+ {0x20137, 0x0}, -+ {0x2019e, 0x0}, -+ {0x20138, 0x0}, -+ {0x2019f, 0x0}, -+ {0x20139, 0x0}, -+ {0x201a0, 0x0}, -+ {0x2013a, 0x0}, -+ {0x201a1, 0x0}, -+ {0x2013b, 0x0}, -+ {0x201a2, 0x0}, -+ {0x2013c, 0x0}, -+ {0x201a3, 0x0}, -+ {0x2013d, 0x0}, -+ {0x201a4, 0x0}, -+ {0x2013e, 0x0}, -+ {0x201a5, 0x0}, -+ {0x2013f, 0x0}, -+ {0x201a6, 0x0}, -+ {0x20140, 0x0}, -+ {0x201a7, 0x0}, -+ {0x20141, 0x0}, -+ {0x201a8, 0x0}, -+ {0x20142, 0x0}, -+ {0x201a9, 0x0}, -+ {0x20143, 0x0}, -+ {0x201aa, 0x0}, -+ {0x20144, 0x0}, -+ {0x201ab, 0x0}, -+ {0x20145, 0x0}, -+ {0x201ac, 0x0}, -+ {0x20146, 0x0}, -+ {0x201ad, 0x0}, -+ {0x20147, 0x0}, -+ {0x201ae, 0x0}, -+ {0x20148, 0x0}, -+ {0x201af, 0x0}, -+ {0x20149, 0x0}, -+ {0x201b0, 0x0}, -+ {0x2014a, 0x0}, -+ {0x201b1, 0x0}, -+ {0x2014b, 0x0}, -+ {0x201b2, 0x0}, -+ {0x2014c, 0x0}, -+ {0x201b3, 0x0}, -+ {0x2014d, 0x0}, -+ {0x201b4, 0x0}, -+ {0x2014e, 0x0}, -+ {0x201b5, 0x0}, -+ {0x2014f, 0x0}, -+ {0x201b6, 0x0}, -+ {0x20150, 0x0}, -+ {0x201b7, 0x0}, -+ {0x20151, 0x0}, -+ {0x201b8, 0x0}, -+ {0x20152, 0x0}, -+ {0x201b9, 0x0}, -+ {0x20153, 0x0}, -+ {0x201ba, 0x0}, -+ {0x20154, 0x0}, -+ {0x201bb, 0x0}, -+ {0x20155, 0x0}, -+ {0x201bc, 0x0}, -+ {0x20156, 0x0}, -+ {0x201bd, 0x0}, -+ {0x20157, 0x0}, -+ {0x201be, 0x0}, -+ {0x20158, 0x0}, -+ {0x201bf, 0x0}, -+ {0x20159, 0x0}, -+ {0x201c0, 0x0}, -+ {0x2015a, 0x0}, -+ {0x201c1, 0x0}, -+ {0x2015b, 0x0}, -+ {0x201c2, 0x0}, -+ {0x2015c, 0x0}, -+ {0x201c3, 0x0}, -+ {0x2015d, 0x0}, -+ {0x201c4, 0x0}, -+ {0x2015e, 0x0}, -+ {0x201c5, 0x0}, -+ {0x2015f, 0x0}, -+ {0x201c6, 0x0}, -+ {0x20160, 0x0}, -+ {0x201c7, 0x0}, -+ {0x20161, 0x0}, -+ {0x201c8, 0x0}, -+ {0x20162, 0x0}, -+ {0x201c9, 0x0}, -+ {0x20163, 0x0}, -+ {0x201ca, 0x0}, -+ {0x20164, 0x0}, -+ {0x201cb, 0x0}, -+ {0x20165, 0x0}, -+ {0x201cc, 0x0}, -+ {0x20166, 0x0}, -+ {0x201cd, 0x0}, -+ {0x20167, 0x0}, -+ {0x201ce, 0x0}, -+ {0x20168, 0x0}, -+ {0x201cf, 0x0}, -+ {0x20169, 0x0}, -+ {0x201d0, 0x0}, -+ {0x2016a, 0x0}, -+ {0x201d1, 0x0}, -+ {0x2016b, 0x0}, -+ {0x201d2, 0x0}, -+ {0x2016c, 0x0}, -+ {0x201d3, 0x0}, -+ {0x2016d, 0x0}, -+ {0x201d4, 0x0}, -+ {0x2016e, 0x0}, -+ {0x201d5, 0x0}, -+ {0x2016f, 0x0}, -+ {0x201d6, 0x0}, -+ {0x20170, 0x0}, -+ {0x201d7, 0x0}, -+ {0x20171, 0x0}, -+ {0x201d8, 0x0}, -+ {0x20172, 0x0}, -+ {0x201d9, 0x0}, -+ {0x20173, 0x0}, -+ {0x201da, 0x0}, -+ {0xc0001, 0x0}, -+ {0xc0002, 0x0}, -+ {0xc0003, 0x0}, -+ {0xc0000, 0x0}, -+ {0xc0006, 0x0}, -+ {0xc0007, 0x0}, -+ {0x9070c, 0x0}, -+ {0x9070d, 0x0}, -+ {0x9070e, 0x0}, -+ {0x9070f, 0x0}, -+ {0x90710, 0x0}, -+ {0x90711, 0x0}, -+ {0x90713, 0x0}, -+ {0x90714, 0x0}, -+ {0x90715, 0x0}, -+ {0x90c10, 0x0}, -+ {0x90c12, 0x0}, -+ {0x90712, 0x0}, -+ {0x90716, 0x0}, -+ {0x90717, 0x0}, -+ {0x90718, 0x0}, -+ {0x90719, 0x0}, -+ {0x9071a, 0x0}, -+ {0x9071b, 0x0}, -+ {0x90c11, 0x0}, -+ {0x90904, 0x0}, -+ {0x90986, 0x0}, -+ {0x90920, 0x0}, -+ {0x90921, 0x0}, -+ {0x90922, 0x0}, -+ {0x90923, 0x0}, -+ {0x90924, 0x0}, -+ {0x90925, 0x0}, -+ {0x90926, 0x0}, -+ {0x90927, 0x0}, -+ {0x90930, 0x0}, -+ {0x90931, 0x0}, -+ {0x90932, 0x0}, -+ {0x90933, 0x0}, -+ {0x9090a, 0x0}, -+ {0x9090c, 0x0}, -+ {0x9090d, 0x0}, -+ {0x200f0, 0x0}, -+ {0x200f1, 0x0}, -+ {0x200f2, 0x0}, -+ {0x100b9, 0x0}, -+ {0x100b1, 0x0}, -+ {0x100ba, 0x0}, -+ {0x100a2, 0x0}, -+ {0x100b5, 0x0}, -+ {0x110b9, 0x0}, -+ {0x110b1, 0x0}, -+ {0x110ba, 0x0}, -+ {0x110a2, 0x0}, -+ {0x110b5, 0x0}, -+ {0x120b9, 0x0}, -+ {0x120b1, 0x0}, -+ {0x120ba, 0x0}, -+ {0x120a2, 0x0}, -+ {0x120b5, 0x0}, -+ {0x130b9, 0x0}, -+ {0x130b1, 0x0}, -+ {0x130ba, 0x0}, -+ {0x130a2, 0x0}, -+ {0x130b5, 0x0}, -+ {0x70024, 0x0}, -+ {0x70025, 0x0}, -+ {0x70026, 0x0}, -+ {0x70027, 0x0}, -+ {0x70028, 0x0}, -+ {0x70029, 0x0}, -+ {0x7002a, 0x0}, -+ {0x7002b, 0x0}, -+ {0x70124, 0x0}, -+ {0x70125, 0x0}, -+ {0x70126, 0x0}, -+ {0x70127, 0x0}, -+ {0x70128, 0x0}, -+ {0x70129, 0x0}, -+ {0x7012a, 0x0}, -+ {0x7012b, 0x0}, -+ {0x70224, 0x0}, -+ {0x70225, 0x0}, -+ {0x70226, 0x0}, -+ {0x70227, 0x0}, -+ {0x70228, 0x0}, -+ {0x70229, 0x0}, -+ {0x7022a, 0x0}, -+ {0x7022b, 0x0}, -+ {0x70324, 0x0}, -+ {0x70325, 0x0}, -+ {0x70326, 0x0}, -+ {0x70327, 0x0}, -+ {0x70328, 0x0}, -+ {0x70329, 0x0}, -+ {0x7032a, 0x0}, -+ {0x7032b, 0x0}, -+ {0x70424, 0x0}, -+ {0x70425, 0x0}, -+ {0x70426, 0x0}, -+ {0x70427, 0x0}, -+ {0x70428, 0x0}, -+ {0x70429, 0x0}, -+ {0x7042a, 0x0}, -+ {0x7042b, 0x0}, -+ {0x70524, 0x0}, -+ {0x70525, 0x0}, -+ {0x70526, 0x0}, -+ {0x70527, 0x0}, -+ {0x70528, 0x0}, -+ {0x70529, 0x0}, -+ {0x7052a, 0x0}, -+ {0x7052b, 0x0}, -+ {0x70624, 0x0}, -+ {0x70625, 0x0}, -+ {0x70626, 0x0}, -+ {0x70627, 0x0}, -+ {0x70628, 0x0}, -+ {0x70629, 0x0}, -+ {0x7062a, 0x0}, -+ {0x7062b, 0x0}, -+ {0x70724, 0x0}, -+ {0x70725, 0x0}, -+ {0x70726, 0x0}, -+ {0x70727, 0x0}, -+ {0x70728, 0x0}, -+ {0x70729, 0x0}, -+ {0x7072a, 0x0}, -+ {0x7072b, 0x0}, -+ {0x70824, 0x0}, -+ {0x70825, 0x0}, -+ {0x70826, 0x0}, -+ {0x70827, 0x0}, -+ {0x70828, 0x0}, -+ {0x70829, 0x0}, -+ {0x7082a, 0x0}, -+ {0x7082b, 0x0}, -+ {0x70065, 0x0}, -+ {0x2007e, 0x0}, -+ {0x200ef, 0x0}, -+ {0x90910, 0x0}, -+ {0x20310, 0x0}, -+ {0x20311, 0x0}, -+ {0x20049, 0x0}, -+ {0x100be, 0x0}, -+ {0x100b0, 0x0}, -+ {0x10080, 0x0}, -+ {0x10081, 0x0}, -+ {0x10082, 0x0}, -+ {0x10083, 0x0}, -+ {0x10084, 0x0}, -+ {0x10085, 0x0}, -+ {0x10086, 0x0}, -+ {0x10087, 0x0}, -+ {0x10056, 0x0}, -+ {0x100d9, 0x0}, -+ {0x110be, 0x0}, -+ {0x110b0, 0x0}, -+ {0x11080, 0x0}, -+ {0x11081, 0x0}, -+ {0x11082, 0x0}, -+ {0x11083, 0x0}, -+ {0x11084, 0x0}, -+ {0x11085, 0x0}, -+ {0x11086, 0x0}, -+ {0x11087, 0x0}, -+ {0x11056, 0x0}, -+ {0x110d9, 0x0}, -+ {0x120be, 0x0}, -+ {0x120b0, 0x0}, -+ {0x12080, 0x0}, -+ {0x12081, 0x0}, -+ {0x12082, 0x0}, -+ {0x12083, 0x0}, -+ {0x12084, 0x0}, -+ {0x12085, 0x0}, -+ {0x12086, 0x0}, -+ {0x12087, 0x0}, -+ {0x12056, 0x0}, -+ {0x120d9, 0x0}, -+ {0x130be, 0x0}, -+ {0x130b0, 0x0}, -+ {0x13080, 0x0}, -+ {0x13081, 0x0}, -+ {0x13082, 0x0}, -+ {0x13083, 0x0}, -+ {0x13084, 0x0}, -+ {0x13085, 0x0}, -+ {0x13086, 0x0}, -+ {0x13087, 0x0}, -+ {0x13056, 0x0}, -+ {0x130d9, 0x0}, -+ {0x30090, 0x0}, -+ {0x30091, 0x0}, -+ {0x30092, 0x0}, -+ {0x30093, 0x0}, -+ {0x30094, 0x0}, -+ {0x30095, 0x0}, -+ {0x30096, 0x0}, -+ {0x31090, 0x0}, -+ {0x31091, 0x0}, -+ {0x31092, 0x0}, -+ {0x31093, 0x0}, -+ {0x31094, 0x0}, -+ {0x31095, 0x0}, -+ {0x31096, 0x0}, -+ {0x30002, 0x0}, -+ {0x30007, 0x0}, -+ {0x30008, 0x0}, -+ {0x30005, 0x0}, -+ {0x30006, 0x0}, -+ {0x30001, 0x0}, -+ {0x30101, 0x0}, -+ {0x30201, 0x0}, -+ {0x30301, 0x0}, -+ {0x30401, 0x0}, -+ {0x30501, 0x0}, -+ {0x30601, 0x0}, -+ {0x30701, 0x0}, -+ {0x30801, 0x0}, -+ {0x30901, 0x0}, -+ {0x31002, 0x0}, -+ {0x31007, 0x0}, -+ {0x31008, 0x0}, -+ {0x31005, 0x0}, -+ {0x31006, 0x0}, -+ {0x31001, 0x0}, -+ {0x31101, 0x0}, -+ {0x31201, 0x0}, -+ {0x31301, 0x0}, -+ {0x31401, 0x0}, -+ {0x31501, 0x0}, -+ {0x31601, 0x0}, -+ {0x31701, 0x0}, -+ {0x31801, 0x0}, -+ {0x31901, 0x0}, -+ {0x10000, 0x0}, -+ {0x100ad, 0x0}, -+ {0x100af, 0x0}, -+ {0x10020, 0x0}, -+ {0x10021, 0x0}, -+ {0x10028, 0x0}, -+ {0x10029, 0x0}, -+ {0x10066, 0x0}, -+ {0x10067, 0x0}, -+ {0x1005a, 0x0}, -+ {0x1005b, 0x0}, -+ {0x1005c, 0x0}, -+ {0x1005d, 0x0}, -+ {0x1002a, 0x0}, -+ {0x1002b, 0x0}, -+ {0x10024, 0x0}, -+ {0x10025, 0x0}, -+ {0x10026, 0x0}, -+ {0x10027, 0x0}, -+ {0x10010, 0x0}, -+ {0x10011, 0x0}, -+ {0x10012, 0x0}, -+ {0x10013, 0x0}, -+ {0x10068, 0x0}, -+ {0x10069, 0x0}, -+ {0x1006a, 0x0}, -+ {0x1006b, 0x0}, -+ {0x1006c, 0x0}, -+ {0x1006d, 0x0}, -+ {0x1006e, 0x0}, -+ {0x1006f, 0x0}, -+ {0x1001c, 0x0}, -+ {0x1001d, 0x0}, -+ {0x1001e, 0x0}, -+ {0x1001f, 0x0}, -+ {0x10124, 0x0}, -+ {0x10125, 0x0}, -+ {0x10126, 0x0}, -+ {0x10127, 0x0}, -+ {0x10110, 0x0}, -+ {0x10111, 0x0}, -+ {0x10112, 0x0}, -+ {0x10113, 0x0}, -+ {0x10168, 0x0}, -+ {0x10169, 0x0}, -+ {0x1016a, 0x0}, -+ {0x1016b, 0x0}, -+ {0x1016c, 0x0}, -+ {0x1016d, 0x0}, -+ {0x1016e, 0x0}, -+ {0x1016f, 0x0}, -+ {0x1011c, 0x0}, -+ {0x1011d, 0x0}, -+ {0x1011e, 0x0}, -+ {0x1011f, 0x0}, -+ {0x10224, 0x0}, -+ {0x10225, 0x0}, -+ {0x10226, 0x0}, -+ {0x10227, 0x0}, -+ {0x10210, 0x0}, -+ {0x10211, 0x0}, -+ {0x10212, 0x0}, -+ {0x10213, 0x0}, -+ {0x10268, 0x0}, -+ {0x10269, 0x0}, -+ {0x1026a, 0x0}, -+ {0x1026b, 0x0}, -+ {0x1026c, 0x0}, -+ {0x1026d, 0x0}, -+ {0x1026e, 0x0}, -+ {0x1026f, 0x0}, -+ {0x1021c, 0x0}, -+ {0x1021d, 0x0}, -+ {0x1021e, 0x0}, -+ {0x1021f, 0x0}, -+ {0x10324, 0x0}, -+ {0x10325, 0x0}, -+ {0x10326, 0x0}, -+ {0x10327, 0x0}, -+ {0x10310, 0x0}, -+ {0x10311, 0x0}, -+ {0x10312, 0x0}, -+ {0x10313, 0x0}, -+ {0x10368, 0x0}, -+ {0x10369, 0x0}, -+ {0x1036a, 0x0}, -+ {0x1036b, 0x0}, -+ {0x1036c, 0x0}, -+ {0x1036d, 0x0}, -+ {0x1036e, 0x0}, -+ {0x1036f, 0x0}, -+ {0x1031c, 0x0}, -+ {0x1031d, 0x0}, -+ {0x1031e, 0x0}, -+ {0x1031f, 0x0}, -+ {0x10424, 0x0}, -+ {0x10425, 0x0}, -+ {0x10426, 0x0}, -+ {0x10427, 0x0}, -+ {0x10410, 0x0}, -+ {0x10411, 0x0}, -+ {0x10412, 0x0}, -+ {0x10413, 0x0}, -+ {0x10468, 0x0}, -+ {0x10469, 0x0}, -+ {0x1046a, 0x0}, -+ {0x1046b, 0x0}, -+ {0x1046c, 0x0}, -+ {0x1046d, 0x0}, -+ {0x1046e, 0x0}, -+ {0x1046f, 0x0}, -+ {0x1041c, 0x0}, -+ {0x1041d, 0x0}, -+ {0x1041e, 0x0}, -+ {0x1041f, 0x0}, -+ {0x10524, 0x0}, -+ {0x10525, 0x0}, -+ {0x10526, 0x0}, -+ {0x10527, 0x0}, -+ {0x10510, 0x0}, -+ {0x10511, 0x0}, -+ {0x10512, 0x0}, -+ {0x10513, 0x0}, -+ {0x10568, 0x0}, -+ {0x10569, 0x0}, -+ {0x1056a, 0x0}, -+ {0x1056b, 0x0}, -+ {0x1056c, 0x0}, -+ {0x1056d, 0x0}, -+ {0x1056e, 0x0}, -+ {0x1056f, 0x0}, -+ {0x1051c, 0x0}, -+ {0x1051d, 0x0}, -+ {0x1051e, 0x0}, -+ {0x1051f, 0x0}, -+ {0x10624, 0x0}, -+ {0x10625, 0x0}, -+ {0x10626, 0x0}, -+ {0x10627, 0x0}, -+ {0x10610, 0x0}, -+ {0x10611, 0x0}, -+ {0x10612, 0x0}, -+ {0x10613, 0x0}, -+ {0x10668, 0x0}, -+ {0x10669, 0x0}, -+ {0x1066a, 0x0}, -+ {0x1066b, 0x0}, -+ {0x1066c, 0x0}, -+ {0x1066d, 0x0}, -+ {0x1066e, 0x0}, -+ {0x1066f, 0x0}, -+ {0x1061c, 0x0}, -+ {0x1061d, 0x0}, -+ {0x1061e, 0x0}, -+ {0x1061f, 0x0}, -+ {0x10724, 0x0}, -+ {0x10725, 0x0}, -+ {0x10726, 0x0}, -+ {0x10727, 0x0}, -+ {0x10710, 0x0}, -+ {0x10711, 0x0}, -+ {0x10712, 0x0}, -+ {0x10713, 0x0}, -+ {0x10768, 0x0}, -+ {0x10769, 0x0}, -+ {0x1076a, 0x0}, -+ {0x1076b, 0x0}, -+ {0x1076c, 0x0}, -+ {0x1076d, 0x0}, -+ {0x1076e, 0x0}, -+ {0x1076f, 0x0}, -+ {0x1071c, 0x0}, -+ {0x1071d, 0x0}, -+ {0x1071e, 0x0}, -+ {0x1071f, 0x0}, -+ {0x10824, 0x0}, -+ {0x10825, 0x0}, -+ {0x10826, 0x0}, -+ {0x10827, 0x0}, -+ {0x10810, 0x0}, -+ {0x10811, 0x0}, -+ {0x10812, 0x0}, -+ {0x10813, 0x0}, -+ {0x10868, 0x0}, -+ {0x10869, 0x0}, -+ {0x1086a, 0x0}, -+ {0x1086b, 0x0}, -+ {0x1086c, 0x0}, -+ {0x1086d, 0x0}, -+ {0x1086e, 0x0}, -+ {0x1086f, 0x0}, -+ {0x1081c, 0x0}, -+ {0x1081d, 0x0}, -+ {0x1081e, 0x0}, -+ {0x1081f, 0x0}, -+ {0x1000c, 0x0}, -+ {0x1000d, 0x0}, -+ {0x10015, 0x0}, -+ {0x10016, 0x0}, -+ {0x10019, 0x0}, -+ {0x1001b, 0x0}, -+ {0x10022, 0x0}, -+ {0x10023, 0x0}, -+ {0x100d0, 0x0}, -+ {0x100d1, 0x0}, -+ {0x100d2, 0x0}, -+ {0x100d3, 0x0}, -+ {0x100d4, 0x0}, -+ {0x11000, 0x0}, -+ {0x110ad, 0x0}, -+ {0x110af, 0x0}, -+ {0x11020, 0x0}, -+ {0x11021, 0x0}, -+ {0x11028, 0x0}, -+ {0x11029, 0x0}, -+ {0x11066, 0x0}, -+ {0x11067, 0x0}, -+ {0x1105a, 0x0}, -+ {0x1105b, 0x0}, -+ {0x1105c, 0x0}, -+ {0x1105d, 0x0}, -+ {0x1102a, 0x0}, -+ {0x1102b, 0x0}, -+ {0x11024, 0x0}, -+ {0x11025, 0x0}, -+ {0x11026, 0x0}, -+ {0x11027, 0x0}, -+ {0x11010, 0x0}, -+ {0x11011, 0x0}, -+ {0x11012, 0x0}, -+ {0x11013, 0x0}, -+ {0x11068, 0x0}, -+ {0x11069, 0x0}, -+ {0x1106a, 0x0}, -+ {0x1106b, 0x0}, -+ {0x1106c, 0x0}, -+ {0x1106d, 0x0}, -+ {0x1106e, 0x0}, -+ {0x1106f, 0x0}, -+ {0x1101c, 0x0}, -+ {0x1101d, 0x0}, -+ {0x1101e, 0x0}, -+ {0x1101f, 0x0}, -+ {0x11124, 0x0}, -+ {0x11125, 0x0}, -+ {0x11126, 0x0}, -+ {0x11127, 0x0}, -+ {0x11110, 0x0}, -+ {0x11111, 0x0}, -+ {0x11112, 0x0}, -+ {0x11113, 0x0}, -+ {0x11168, 0x0}, -+ {0x11169, 0x0}, -+ {0x1116a, 0x0}, -+ {0x1116b, 0x0}, -+ {0x1116c, 0x0}, -+ {0x1116d, 0x0}, -+ {0x1116e, 0x0}, -+ {0x1116f, 0x0}, -+ {0x1111c, 0x0}, -+ {0x1111d, 0x0}, -+ {0x1111e, 0x0}, -+ {0x1111f, 0x0}, -+ {0x11224, 0x0}, -+ {0x11225, 0x0}, -+ {0x11226, 0x0}, -+ {0x11227, 0x0}, -+ {0x11210, 0x0}, -+ {0x11211, 0x0}, -+ {0x11212, 0x0}, -+ {0x11213, 0x0}, -+ {0x11268, 0x0}, -+ {0x11269, 0x0}, -+ {0x1126a, 0x0}, -+ {0x1126b, 0x0}, -+ {0x1126c, 0x0}, -+ {0x1126d, 0x0}, -+ {0x1126e, 0x0}, -+ {0x1126f, 0x0}, -+ {0x1121c, 0x0}, -+ {0x1121d, 0x0}, -+ {0x1121e, 0x0}, -+ {0x1121f, 0x0}, -+ {0x11324, 0x0}, -+ {0x11325, 0x0}, -+ {0x11326, 0x0}, -+ {0x11327, 0x0}, -+ {0x11310, 0x0}, -+ {0x11311, 0x0}, -+ {0x11312, 0x0}, -+ {0x11313, 0x0}, -+ {0x11368, 0x0}, -+ {0x11369, 0x0}, -+ {0x1136a, 0x0}, -+ {0x1136b, 0x0}, -+ {0x1136c, 0x0}, -+ {0x1136d, 0x0}, -+ {0x1136e, 0x0}, -+ {0x1136f, 0x0}, -+ {0x1131c, 0x0}, -+ {0x1131d, 0x0}, -+ {0x1131e, 0x0}, -+ {0x1131f, 0x0}, -+ {0x11424, 0x0}, -+ {0x11425, 0x0}, -+ {0x11426, 0x0}, -+ {0x11427, 0x0}, -+ {0x11410, 0x0}, -+ {0x11411, 0x0}, -+ {0x11412, 0x0}, -+ {0x11413, 0x0}, -+ {0x11468, 0x0}, -+ {0x11469, 0x0}, -+ {0x1146a, 0x0}, -+ {0x1146b, 0x0}, -+ {0x1146c, 0x0}, -+ {0x1146d, 0x0}, -+ {0x1146e, 0x0}, -+ {0x1146f, 0x0}, -+ {0x1141c, 0x0}, -+ {0x1141d, 0x0}, -+ {0x1141e, 0x0}, -+ {0x1141f, 0x0}, -+ {0x11524, 0x0}, -+ {0x11525, 0x0}, -+ {0x11526, 0x0}, -+ {0x11527, 0x0}, -+ {0x11510, 0x0}, -+ {0x11511, 0x0}, -+ {0x11512, 0x0}, -+ {0x11513, 0x0}, -+ {0x11568, 0x0}, -+ {0x11569, 0x0}, -+ {0x1156a, 0x0}, -+ {0x1156b, 0x0}, -+ {0x1156c, 0x0}, -+ {0x1156d, 0x0}, -+ {0x1156e, 0x0}, -+ {0x1156f, 0x0}, -+ {0x1151c, 0x0}, -+ {0x1151d, 0x0}, -+ {0x1151e, 0x0}, -+ {0x1151f, 0x0}, -+ {0x11624, 0x0}, -+ {0x11625, 0x0}, -+ {0x11626, 0x0}, -+ {0x11627, 0x0}, -+ {0x11610, 0x0}, -+ {0x11611, 0x0}, -+ {0x11612, 0x0}, -+ {0x11613, 0x0}, -+ {0x11668, 0x0}, -+ {0x11669, 0x0}, -+ {0x1166a, 0x0}, -+ {0x1166b, 0x0}, -+ {0x1166c, 0x0}, -+ {0x1166d, 0x0}, -+ {0x1166e, 0x0}, -+ {0x1166f, 0x0}, -+ {0x1161c, 0x0}, -+ {0x1161d, 0x0}, -+ {0x1161e, 0x0}, -+ {0x1161f, 0x0}, -+ {0x11724, 0x0}, -+ {0x11725, 0x0}, -+ {0x11726, 0x0}, -+ {0x11727, 0x0}, -+ {0x11710, 0x0}, -+ {0x11711, 0x0}, -+ {0x11712, 0x0}, -+ {0x11713, 0x0}, -+ {0x11768, 0x0}, -+ {0x11769, 0x0}, -+ {0x1176a, 0x0}, -+ {0x1176b, 0x0}, -+ {0x1176c, 0x0}, -+ {0x1176d, 0x0}, -+ {0x1176e, 0x0}, -+ {0x1176f, 0x0}, -+ {0x1171c, 0x0}, -+ {0x1171d, 0x0}, -+ {0x1171e, 0x0}, -+ {0x1171f, 0x0}, -+ {0x11824, 0x0}, -+ {0x11825, 0x0}, -+ {0x11826, 0x0}, -+ {0x11827, 0x0}, -+ {0x11810, 0x0}, -+ {0x11811, 0x0}, -+ {0x11812, 0x0}, -+ {0x11813, 0x0}, -+ {0x11868, 0x0}, -+ {0x11869, 0x0}, -+ {0x1186a, 0x0}, -+ {0x1186b, 0x0}, -+ {0x1186c, 0x0}, -+ {0x1186d, 0x0}, -+ {0x1186e, 0x0}, -+ {0x1186f, 0x0}, -+ {0x1181c, 0x0}, -+ {0x1181d, 0x0}, -+ {0x1181e, 0x0}, -+ {0x1181f, 0x0}, -+ {0x1100c, 0x0}, -+ {0x1100d, 0x0}, -+ {0x11015, 0x0}, -+ {0x11016, 0x0}, -+ {0x11019, 0x0}, -+ {0x1101b, 0x0}, -+ {0x11022, 0x0}, -+ {0x11023, 0x0}, -+ {0x110d0, 0x0}, -+ {0x110d1, 0x0}, -+ {0x110d2, 0x0}, -+ {0x110d3, 0x0}, -+ {0x110d4, 0x0}, -+ {0x12000, 0x0}, -+ {0x120ad, 0x0}, -+ {0x120af, 0x0}, -+ {0x12020, 0x0}, -+ {0x12021, 0x0}, -+ {0x12028, 0x0}, -+ {0x12029, 0x0}, -+ {0x12066, 0x0}, -+ {0x12067, 0x0}, -+ {0x1205a, 0x0}, -+ {0x1205b, 0x0}, -+ {0x1205c, 0x0}, -+ {0x1205d, 0x0}, -+ {0x1202a, 0x0}, -+ {0x1202b, 0x0}, -+ {0x12024, 0x0}, -+ {0x12025, 0x0}, -+ {0x12026, 0x0}, -+ {0x12027, 0x0}, -+ {0x12010, 0x0}, -+ {0x12011, 0x0}, -+ {0x12012, 0x0}, -+ {0x12013, 0x0}, -+ {0x12068, 0x0}, -+ {0x12069, 0x0}, -+ {0x1206a, 0x0}, -+ {0x1206b, 0x0}, -+ {0x1206c, 0x0}, -+ {0x1206d, 0x0}, -+ {0x1206e, 0x0}, -+ {0x1206f, 0x0}, -+ {0x1201c, 0x0}, -+ {0x1201d, 0x0}, -+ {0x1201e, 0x0}, -+ {0x1201f, 0x0}, -+ {0x12124, 0x0}, -+ {0x12125, 0x0}, -+ {0x12126, 0x0}, -+ {0x12127, 0x0}, -+ {0x12110, 0x0}, -+ {0x12111, 0x0}, -+ {0x12112, 0x0}, -+ {0x12113, 0x0}, -+ {0x12168, 0x0}, -+ {0x12169, 0x0}, -+ {0x1216a, 0x0}, -+ {0x1216b, 0x0}, -+ {0x1216c, 0x0}, -+ {0x1216d, 0x0}, -+ {0x1216e, 0x0}, -+ {0x1216f, 0x0}, -+ {0x1211c, 0x0}, -+ {0x1211d, 0x0}, -+ {0x1211e, 0x0}, -+ {0x1211f, 0x0}, -+ {0x12224, 0x0}, -+ {0x12225, 0x0}, -+ {0x12226, 0x0}, -+ {0x12227, 0x0}, -+ {0x12210, 0x0}, -+ {0x12211, 0x0}, -+ {0x12212, 0x0}, -+ {0x12213, 0x0}, -+ {0x12268, 0x0}, -+ {0x12269, 0x0}, -+ {0x1226a, 0x0}, -+ {0x1226b, 0x0}, -+ {0x1226c, 0x0}, -+ {0x1226d, 0x0}, -+ {0x1226e, 0x0}, -+ {0x1226f, 0x0}, -+ {0x1221c, 0x0}, -+ {0x1221d, 0x0}, -+ {0x1221e, 0x0}, -+ {0x1221f, 0x0}, -+ {0x12324, 0x0}, -+ {0x12325, 0x0}, -+ {0x12326, 0x0}, -+ {0x12327, 0x0}, -+ {0x12310, 0x0}, -+ {0x12311, 0x0}, -+ {0x12312, 0x0}, -+ {0x12313, 0x0}, -+ {0x12368, 0x0}, -+ {0x12369, 0x0}, -+ {0x1236a, 0x0}, -+ {0x1236b, 0x0}, -+ {0x1236c, 0x0}, -+ {0x1236d, 0x0}, -+ {0x1236e, 0x0}, -+ {0x1236f, 0x0}, -+ {0x1231c, 0x0}, -+ {0x1231d, 0x0}, -+ {0x1231e, 0x0}, -+ {0x1231f, 0x0}, -+ {0x12424, 0x0}, -+ {0x12425, 0x0}, -+ {0x12426, 0x0}, -+ {0x12427, 0x0}, -+ {0x12410, 0x0}, -+ {0x12411, 0x0}, -+ {0x12412, 0x0}, -+ {0x12413, 0x0}, -+ {0x12468, 0x0}, -+ {0x12469, 0x0}, -+ {0x1246a, 0x0}, -+ {0x1246b, 0x0}, -+ {0x1246c, 0x0}, -+ {0x1246d, 0x0}, -+ {0x1246e, 0x0}, -+ {0x1246f, 0x0}, -+ {0x1241c, 0x0}, -+ {0x1241d, 0x0}, -+ {0x1241e, 0x0}, -+ {0x1241f, 0x0}, -+ {0x12524, 0x0}, -+ {0x12525, 0x0}, -+ {0x12526, 0x0}, -+ {0x12527, 0x0}, -+ {0x12510, 0x0}, -+ {0x12511, 0x0}, -+ {0x12512, 0x0}, -+ {0x12513, 0x0}, -+ {0x12568, 0x0}, -+ {0x12569, 0x0}, -+ {0x1256a, 0x0}, -+ {0x1256b, 0x0}, -+ {0x1256c, 0x0}, -+ {0x1256d, 0x0}, -+ {0x1256e, 0x0}, -+ {0x1256f, 0x0}, -+ {0x1251c, 0x0}, -+ {0x1251d, 0x0}, -+ {0x1251e, 0x0}, -+ {0x1251f, 0x0}, -+ {0x12624, 0x0}, -+ {0x12625, 0x0}, -+ {0x12626, 0x0}, -+ {0x12627, 0x0}, -+ {0x12610, 0x0}, -+ {0x12611, 0x0}, -+ {0x12612, 0x0}, -+ {0x12613, 0x0}, -+ {0x12668, 0x0}, -+ {0x12669, 0x0}, -+ {0x1266a, 0x0}, -+ {0x1266b, 0x0}, -+ {0x1266c, 0x0}, -+ {0x1266d, 0x0}, -+ {0x1266e, 0x0}, -+ {0x1266f, 0x0}, -+ {0x1261c, 0x0}, -+ {0x1261d, 0x0}, -+ {0x1261e, 0x0}, -+ {0x1261f, 0x0}, -+ {0x12724, 0x0}, -+ {0x12725, 0x0}, -+ {0x12726, 0x0}, -+ {0x12727, 0x0}, -+ {0x12710, 0x0}, -+ {0x12711, 0x0}, -+ {0x12712, 0x0}, -+ {0x12713, 0x0}, -+ {0x12768, 0x0}, -+ {0x12769, 0x0}, -+ {0x1276a, 0x0}, -+ {0x1276b, 0x0}, -+ {0x1276c, 0x0}, -+ {0x1276d, 0x0}, -+ {0x1276e, 0x0}, -+ {0x1276f, 0x0}, -+ {0x1271c, 0x0}, -+ {0x1271d, 0x0}, -+ {0x1271e, 0x0}, -+ {0x1271f, 0x0}, -+ {0x12824, 0x0}, -+ {0x12825, 0x0}, -+ {0x12826, 0x0}, -+ {0x12827, 0x0}, -+ {0x12810, 0x0}, -+ {0x12811, 0x0}, -+ {0x12812, 0x0}, -+ {0x12813, 0x0}, -+ {0x12868, 0x0}, -+ {0x12869, 0x0}, -+ {0x1286a, 0x0}, -+ {0x1286b, 0x0}, -+ {0x1286c, 0x0}, -+ {0x1286d, 0x0}, -+ {0x1286e, 0x0}, -+ {0x1286f, 0x0}, -+ {0x1281c, 0x0}, -+ {0x1281d, 0x0}, -+ {0x1281e, 0x0}, -+ {0x1281f, 0x0}, -+ {0x1200c, 0x0}, -+ {0x1200d, 0x0}, -+ {0x12015, 0x0}, -+ {0x12016, 0x0}, -+ {0x12019, 0x0}, -+ {0x1201b, 0x0}, -+ {0x12022, 0x0}, -+ {0x12023, 0x0}, -+ {0x120d0, 0x0}, -+ {0x120d1, 0x0}, -+ {0x120d2, 0x0}, -+ {0x120d3, 0x0}, -+ {0x120d4, 0x0}, -+ {0x13000, 0x0}, -+ {0x130ad, 0x0}, -+ {0x130af, 0x0}, -+ {0x13020, 0x0}, -+ {0x13021, 0x0}, -+ {0x13028, 0x0}, -+ {0x13029, 0x0}, -+ {0x13066, 0x0}, -+ {0x13067, 0x0}, -+ {0x1305a, 0x0}, -+ {0x1305b, 0x0}, -+ {0x1305c, 0x0}, -+ {0x1305d, 0x0}, -+ {0x1302a, 0x0}, -+ {0x1302b, 0x0}, -+ {0x13024, 0x0}, -+ {0x13025, 0x0}, -+ {0x13026, 0x0}, -+ {0x13027, 0x0}, -+ {0x13010, 0x0}, -+ {0x13011, 0x0}, -+ {0x13012, 0x0}, -+ {0x13013, 0x0}, -+ {0x13068, 0x0}, -+ {0x13069, 0x0}, -+ {0x1306a, 0x0}, -+ {0x1306b, 0x0}, -+ {0x1306c, 0x0}, -+ {0x1306d, 0x0}, -+ {0x1306e, 0x0}, -+ {0x1306f, 0x0}, -+ {0x1301c, 0x0}, -+ {0x1301d, 0x0}, -+ {0x1301e, 0x0}, -+ {0x1301f, 0x0}, -+ {0x13124, 0x0}, -+ {0x13125, 0x0}, -+ {0x13126, 0x0}, -+ {0x13127, 0x0}, -+ {0x13110, 0x0}, -+ {0x13111, 0x0}, -+ {0x13112, 0x0}, -+ {0x13113, 0x0}, -+ {0x13168, 0x0}, -+ {0x13169, 0x0}, -+ {0x1316a, 0x0}, -+ {0x1316b, 0x0}, -+ {0x1316c, 0x0}, -+ {0x1316d, 0x0}, -+ {0x1316e, 0x0}, -+ {0x1316f, 0x0}, -+ {0x1311c, 0x0}, -+ {0x1311d, 0x0}, -+ {0x1311e, 0x0}, -+ {0x1311f, 0x0}, -+ {0x13224, 0x0}, -+ {0x13225, 0x0}, -+ {0x13226, 0x0}, -+ {0x13227, 0x0}, -+ {0x13210, 0x0}, -+ {0x13211, 0x0}, -+ {0x13212, 0x0}, -+ {0x13213, 0x0}, -+ {0x13268, 0x0}, -+ {0x13269, 0x0}, -+ {0x1326a, 0x0}, -+ {0x1326b, 0x0}, -+ {0x1326c, 0x0}, -+ {0x1326d, 0x0}, -+ {0x1326e, 0x0}, -+ {0x1326f, 0x0}, -+ {0x1321c, 0x0}, -+ {0x1321d, 0x0}, -+ {0x1321e, 0x0}, -+ {0x1321f, 0x0}, -+ {0x13324, 0x0}, -+ {0x13325, 0x0}, -+ {0x13326, 0x0}, -+ {0x13327, 0x0}, -+ {0x13310, 0x0}, -+ {0x13311, 0x0}, -+ {0x13312, 0x0}, -+ {0x13313, 0x0}, -+ {0x13368, 0x0}, -+ {0x13369, 0x0}, -+ {0x1336a, 0x0}, -+ {0x1336b, 0x0}, -+ {0x1336c, 0x0}, -+ {0x1336d, 0x0}, -+ {0x1336e, 0x0}, -+ {0x1336f, 0x0}, -+ {0x1331c, 0x0}, -+ {0x1331d, 0x0}, -+ {0x1331e, 0x0}, -+ {0x1331f, 0x0}, -+ {0x13424, 0x0}, -+ {0x13425, 0x0}, -+ {0x13426, 0x0}, -+ {0x13427, 0x0}, -+ {0x13410, 0x0}, -+ {0x13411, 0x0}, -+ {0x13412, 0x0}, -+ {0x13413, 0x0}, -+ {0x13468, 0x0}, -+ {0x13469, 0x0}, -+ {0x1346a, 0x0}, -+ {0x1346b, 0x0}, -+ {0x1346c, 0x0}, -+ {0x1346d, 0x0}, -+ {0x1346e, 0x0}, -+ {0x1346f, 0x0}, -+ {0x1341c, 0x0}, -+ {0x1341d, 0x0}, -+ {0x1341e, 0x0}, -+ {0x1341f, 0x0}, -+ {0x13524, 0x0}, -+ {0x13525, 0x0}, -+ {0x13526, 0x0}, -+ {0x13527, 0x0}, -+ {0x13510, 0x0}, -+ {0x13511, 0x0}, -+ {0x13512, 0x0}, -+ {0x13513, 0x0}, -+ {0x13568, 0x0}, -+ {0x13569, 0x0}, -+ {0x1356a, 0x0}, -+ {0x1356b, 0x0}, -+ {0x1356c, 0x0}, -+ {0x1356d, 0x0}, -+ {0x1356e, 0x0}, -+ {0x1356f, 0x0}, -+ {0x1351c, 0x0}, -+ {0x1351d, 0x0}, -+ {0x1351e, 0x0}, -+ {0x1351f, 0x0}, -+ {0x13624, 0x0}, -+ {0x13625, 0x0}, -+ {0x13626, 0x0}, -+ {0x13627, 0x0}, -+ {0x13610, 0x0}, -+ {0x13611, 0x0}, -+ {0x13612, 0x0}, -+ {0x13613, 0x0}, -+ {0x13668, 0x0}, -+ {0x13669, 0x0}, -+ {0x1366a, 0x0}, -+ {0x1366b, 0x0}, -+ {0x1366c, 0x0}, -+ {0x1366d, 0x0}, -+ {0x1366e, 0x0}, -+ {0x1366f, 0x0}, -+ {0x1361c, 0x0}, -+ {0x1361d, 0x0}, -+ {0x1361e, 0x0}, -+ {0x1361f, 0x0}, -+ {0x13724, 0x0}, -+ {0x13725, 0x0}, -+ {0x13726, 0x0}, -+ {0x13727, 0x0}, -+ {0x13710, 0x0}, -+ {0x13711, 0x0}, -+ {0x13712, 0x0}, -+ {0x13713, 0x0}, -+ {0x13768, 0x0}, -+ {0x13769, 0x0}, -+ {0x1376a, 0x0}, -+ {0x1376b, 0x0}, -+ {0x1376c, 0x0}, -+ {0x1376d, 0x0}, -+ {0x1376e, 0x0}, -+ {0x1376f, 0x0}, -+ {0x1371c, 0x0}, -+ {0x1371d, 0x0}, -+ {0x1371e, 0x0}, -+ {0x1371f, 0x0}, -+ {0x13824, 0x0}, -+ {0x13825, 0x0}, -+ {0x13826, 0x0}, -+ {0x13827, 0x0}, -+ {0x13810, 0x0}, -+ {0x13811, 0x0}, -+ {0x13812, 0x0}, -+ {0x13813, 0x0}, -+ {0x13868, 0x0}, -+ {0x13869, 0x0}, -+ {0x1386a, 0x0}, -+ {0x1386b, 0x0}, -+ {0x1386c, 0x0}, -+ {0x1386d, 0x0}, -+ {0x1386e, 0x0}, -+ {0x1386f, 0x0}, -+ {0x1381c, 0x0}, -+ {0x1381d, 0x0}, -+ {0x1381e, 0x0}, -+ {0x1381f, 0x0}, -+ {0x1300c, 0x0}, -+ {0x1300d, 0x0}, -+ {0x13015, 0x0}, -+ {0x13016, 0x0}, -+ {0x13019, 0x0}, -+ {0x1301b, 0x0}, -+ {0x13022, 0x0}, -+ {0x13023, 0x0}, -+ {0x130d0, 0x0}, -+ {0x130d1, 0x0}, -+ {0x130d2, 0x0}, -+ {0x130d3, 0x0}, -+ {0x130d4, 0x0}, -+ {0x90807, 0x0}, -+ {0x90808, 0x0}, -+ {0x90813, 0x0}, -+ {0x2004e, 0x0}, -+ {0x2000d, 0x0}, -+ {0x20077, 0x0}, -+}; -+ -+/* PHY Initialize Configuration for Pstate 0 */ -+static struct ddrphy_cfg_param ddr_phy_fsp0_cfg[] = { -+ {0x90802, 0x1}, -+ {0x2004a, 0x601}, -+ {0x2004b, 0x1c3e}, -+ {0x2004c, 0x2e8f}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x101}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20002, 0x2}, -+ {0x20000, 0x2}, -+ {0x90801, 0x4d}, -+ {0x90809, 0x6800}, -+ {0x1005e, 0x366}, -+ {0x10060, 0x366}, -+ {0x10062, 0x366}, -+ {0x10064, 0x366}, -+ {0x1005f, 0x366}, -+ {0x10061, 0x366}, -+ {0x10063, 0x366}, -+ {0x10065, 0x366}, -+ {0x1105e, 0x366}, -+ {0x11060, 0x366}, -+ {0x11062, 0x366}, -+ {0x11064, 0x366}, -+ {0x1105f, 0x366}, -+ {0x11061, 0x366}, -+ {0x11063, 0x366}, -+ {0x11065, 0x366}, -+ {0x1205e, 0x366}, -+ {0x12060, 0x366}, -+ {0x12062, 0x366}, -+ {0x12064, 0x366}, -+ {0x1205f, 0x366}, -+ {0x12061, 0x366}, -+ {0x12063, 0x366}, -+ {0x12065, 0x366}, -+ {0x1305e, 0x366}, -+ {0x13060, 0x366}, -+ {0x13062, 0x366}, -+ {0x13064, 0x366}, -+ {0x1305f, 0x366}, -+ {0x13061, 0x366}, -+ {0x13063, 0x366}, -+ {0x13065, 0x366}, -+ {0x10005, 0x0}, -+ {0x1000b, 0x0}, -+ {0x11005, 0x0}, -+ {0x1100b, 0x0}, -+ {0x12005, 0x0}, -+ {0x1200b, 0x0}, -+ {0x13005, 0x0}, -+ {0x1300b, 0x0}, -+ {0x20007, 0x200}, -+ {0x20013, 0x2c}, -+ {0x30038, 0x3}, -+ {0x30039, 0x3}, -+ {0x3003a, 0x3}, -+ {0x31038, 0x3}, -+ {0x31039, 0x3}, -+ {0x3103a, 0x3}, -+ {0x10038, 0x3}, -+ {0x1003a, 0x3}, -+ {0x11038, 0x3}, -+ {0x1103a, 0x3}, -+ {0x12038, 0x3}, -+ {0x1203a, 0x3}, -+ {0x13038, 0x3}, -+ {0x1303a, 0x3}, -+ {0x1003b, 0x3}, -+ {0x1103b, 0x3}, -+ {0x1203b, 0x3}, -+ {0x1303b, 0x3}, -+ {0x10009, 0x0}, -+ {0x10037, 0x0}, -+ {0x11009, 0x0}, -+ {0x11037, 0x0}, -+ {0x12009, 0x0}, -+ {0x12037, 0x0}, -+ {0x13009, 0x0}, -+ {0x13037, 0x0}, -+ {0x10004, 0x0}, -+ {0x10003, 0x0}, -+ {0x11004, 0x0}, -+ {0x11003, 0x0}, -+ {0x12004, 0x0}, -+ {0x12003, 0x0}, -+ {0x13004, 0x0}, -+ {0x13003, 0x0}, -+ {0x20004, 0x320}, -+ {0x30050, 0x15}, -+ {0x30051, 0x15}, -+ {0x30052, 0x15}, -+ {0x30053, 0x15}, -+ {0x31050, 0x15}, -+ {0x31051, 0x15}, -+ {0x31052, 0x15}, -+ {0x31053, 0x15}, -+ {0x1004e, 0x15}, -+ {0x1004f, 0x15}, -+ {0x10050, 0x15}, -+ {0x10051, 0x15}, -+ {0x1014e, 0x15}, -+ {0x1014f, 0x15}, -+ {0x10150, 0x15}, -+ {0x10151, 0x15}, -+ {0x1024e, 0x15}, -+ {0x1024f, 0x15}, -+ {0x10250, 0x15}, -+ {0x10251, 0x15}, -+ {0x1034e, 0x15}, -+ {0x1034f, 0x15}, -+ {0x10350, 0x15}, -+ {0x10351, 0x15}, -+ {0x1044e, 0x15}, -+ {0x1044f, 0x15}, -+ {0x10450, 0x15}, -+ {0x10451, 0x15}, -+ {0x1054e, 0x15}, -+ {0x1054f, 0x15}, -+ {0x10550, 0x15}, -+ {0x10551, 0x15}, -+ {0x1064e, 0x15}, -+ {0x1064f, 0x15}, -+ {0x10650, 0x15}, -+ {0x10651, 0x15}, -+ {0x1074e, 0x15}, -+ {0x1074f, 0x15}, -+ {0x10750, 0x15}, -+ {0x10751, 0x15}, -+ {0x1084e, 0x15}, -+ {0x1084f, 0x15}, -+ {0x10850, 0x15}, -+ {0x10851, 0x15}, -+ {0x1104e, 0x15}, -+ {0x1104f, 0x15}, -+ {0x11050, 0x15}, -+ {0x11051, 0x15}, -+ {0x1114e, 0x15}, -+ {0x1114f, 0x15}, -+ {0x11150, 0x15}, -+ {0x11151, 0x15}, -+ {0x1124e, 0x15}, -+ {0x1124f, 0x15}, -+ {0x11250, 0x15}, -+ {0x11251, 0x15}, -+ {0x1134e, 0x15}, -+ {0x1134f, 0x15}, -+ {0x11350, 0x15}, -+ {0x11351, 0x15}, -+ {0x1144e, 0x15}, -+ {0x1144f, 0x15}, -+ {0x11450, 0x15}, -+ {0x11451, 0x15}, -+ {0x1154e, 0x15}, -+ {0x1154f, 0x15}, -+ {0x11550, 0x15}, -+ {0x11551, 0x15}, -+ {0x1164e, 0x15}, -+ {0x1164f, 0x15}, -+ {0x11650, 0x15}, -+ {0x11651, 0x15}, -+ {0x1174e, 0x15}, -+ {0x1174f, 0x15}, -+ {0x11750, 0x15}, -+ {0x11751, 0x15}, -+ {0x1184e, 0x15}, -+ {0x1184f, 0x15}, -+ {0x11850, 0x15}, -+ {0x11851, 0x15}, -+ {0x1204e, 0x15}, -+ {0x1204f, 0x15}, -+ {0x12050, 0x15}, -+ {0x12051, 0x15}, -+ {0x1214e, 0x15}, -+ {0x1214f, 0x15}, -+ {0x12150, 0x15}, -+ {0x12151, 0x15}, -+ {0x1224e, 0x15}, -+ {0x1224f, 0x15}, -+ {0x12250, 0x15}, -+ {0x12251, 0x15}, -+ {0x1234e, 0x15}, -+ {0x1234f, 0x15}, -+ {0x12350, 0x15}, -+ {0x12351, 0x15}, -+ {0x1244e, 0x15}, -+ {0x1244f, 0x15}, -+ {0x12450, 0x15}, -+ {0x12451, 0x15}, -+ {0x1254e, 0x15}, -+ {0x1254f, 0x15}, -+ {0x12550, 0x15}, -+ {0x12551, 0x15}, -+ {0x1264e, 0x15}, -+ {0x1264f, 0x15}, -+ {0x12650, 0x15}, -+ {0x12651, 0x15}, -+ {0x1274e, 0x15}, -+ {0x1274f, 0x15}, -+ {0x12750, 0x15}, -+ {0x12751, 0x15}, -+ {0x1284e, 0x15}, -+ {0x1284f, 0x15}, -+ {0x12850, 0x15}, -+ {0x12851, 0x15}, -+ {0x1304e, 0x15}, -+ {0x1304f, 0x15}, -+ {0x13050, 0x15}, -+ {0x13051, 0x15}, -+ {0x1314e, 0x15}, -+ {0x1314f, 0x15}, -+ {0x13150, 0x15}, -+ {0x13151, 0x15}, -+ {0x1324e, 0x15}, -+ {0x1324f, 0x15}, -+ {0x13250, 0x15}, -+ {0x13251, 0x15}, -+ {0x1334e, 0x15}, -+ {0x1334f, 0x15}, -+ {0x13350, 0x15}, -+ {0x13351, 0x15}, -+ {0x1344e, 0x15}, -+ {0x1344f, 0x15}, -+ {0x13450, 0x15}, -+ {0x13451, 0x15}, -+ {0x1354e, 0x15}, -+ {0x1354f, 0x15}, -+ {0x13550, 0x15}, -+ {0x13551, 0x15}, -+ {0x1364e, 0x15}, -+ {0x1364f, 0x15}, -+ {0x13650, 0x15}, -+ {0x13651, 0x15}, -+ {0x1374e, 0x15}, -+ {0x1374f, 0x15}, -+ {0x13750, 0x15}, -+ {0x13751, 0x15}, -+ {0x1384e, 0x15}, -+ {0x1384f, 0x15}, -+ {0x13850, 0x15}, -+ {0x13851, 0x15}, -+ {0x30030, 0x0}, -+ {0x30031, 0x0}, -+ {0x30035, 0x0}, -+ {0x31030, 0x0}, -+ {0x31031, 0x0}, -+ {0x31035, 0x0}, -+ {0x10030, 0x0}, -+ {0x10035, 0x0}, -+ {0x10036, 0x0}, -+ {0x11030, 0x0}, -+ {0x11035, 0x0}, -+ {0x11036, 0x0}, -+ {0x12030, 0x0}, -+ {0x12035, 0x0}, -+ {0x12036, 0x0}, -+ {0x13030, 0x0}, -+ {0x13035, 0x0}, -+ {0x13036, 0x0}, -+ {0x3003c, 0x5}, -+ {0x3103c, 0x5}, -+ {0x1003c, 0x5}, -+ {0x1003d, 0x5}, -+ {0x1003e, 0x5}, -+ {0x1103c, 0x5}, -+ {0x1103d, 0x5}, -+ {0x1103e, 0x5}, -+ {0x1203c, 0x5}, -+ {0x1203d, 0x5}, -+ {0x1203e, 0x5}, -+ {0x1303c, 0x5}, -+ {0x1303d, 0x5}, -+ {0x1303e, 0x5}, -+ {0x20003, 0x1}, -+ {0x10006, 0x2}, -+ {0x11006, 0x2}, -+ {0x12006, 0x2}, -+ {0x13006, 0x2}, -+ {0x20001, 0x1122}, -+ {0x20009, 0x0}, -+ {0x20008, 0x0}, -+ {0x200d9, 0x0}, -+ {0x30eef, 0x0}, -+ {0x31eef, 0x0}, -+ {0x20014, 0x1300}, -+ {0x9080a, 0x1300}, -+ {0x10040, 0xe0e}, -+ {0x10042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x10043, 0x0}, -+ {0x10044, 0xe0e}, -+ {0x10045, 0xe0e}, -+ {0x11040, 0xe0e}, -+ {0x11042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x11043, 0x0}, -+ {0x11044, 0xe0e}, -+ {0x11045, 0xe0e}, -+ {0x12040, 0xe0e}, -+ {0x12042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x12043, 0x0}, -+ {0x12044, 0xe0e}, -+ {0x12045, 0xe0e}, -+ {0x13040, 0xe0e}, -+ {0x13042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x13043, 0x0}, -+ {0x13044, 0xe0e}, -+ {0x13045, 0xe0e}, -+ {0x30040, 0xe0e}, -+ {0x30041, 0xe0e}, -+ {0x30042, 0xe0e}, -+ {0x30043, 0xe0e}, -+ {0x30330, 0x33}, -+ {0x31040, 0xe0e}, -+ {0x31041, 0xe0e}, -+ {0x31042, 0xe0e}, -+ {0x31043, 0xe0e}, -+ {0x31330, 0x33}, -+ {0x20331, 0x33}, -+ {0x10048, 0xc00}, -+ {0x1004a, 0xc00}, -+ {0x1004b, 0xc00}, -+ {0x1004c, 0xe00}, -+ {0x1004d, 0xe00}, -+ {0x11048, 0xc00}, -+ {0x1104a, 0xc00}, -+ {0x1104b, 0xc00}, -+ {0x1104c, 0xe00}, -+ {0x1104d, 0xe00}, -+ {0x12048, 0xc00}, -+ {0x1204a, 0xc00}, -+ {0x1204b, 0xc00}, -+ {0x1204c, 0xe00}, -+ {0x1204d, 0xe00}, -+ {0x13048, 0xc00}, -+ {0x1304a, 0xc00}, -+ {0x1304b, 0xc00}, -+ {0x1304c, 0xe00}, -+ {0x1304d, 0xe00}, -+ {0x30048, 0xc00}, -+ {0x30049, 0xc00}, -+ {0x3004a, 0xc00}, -+ {0x3004b, 0xc00}, -+ {0x31048, 0xc00}, -+ {0x31049, 0xc00}, -+ {0x3104a, 0xc00}, -+ {0x3104b, 0xc00}, -+ {0x30033, 0xcc}, -+ {0x30034, 0xcc}, -+ {0x3002e, 0xcc}, -+ {0x31033, 0xcc}, -+ {0x31034, 0xcc}, -+ {0x3102e, 0xcc}, -+ {0x10033, 0xcc}, -+ {0x1002e, 0xcc}, -+ {0x1002f, 0xcc}, -+ {0x11033, 0xcc}, -+ {0x1102e, 0xcc}, -+ {0x1102f, 0xcc}, -+ {0x12033, 0xcc}, -+ {0x1202e, 0xcc}, -+ {0x1202f, 0xcc}, -+ {0x13033, 0xcc}, -+ {0x1302e, 0xcc}, -+ {0x1302f, 0xcc}, -+ {0x20015, 0x0}, -+ {0x90806, 0x0}, -+ {0x100e8, 0x0}, -+ {0x100e9, 0x15}, -+ {0x110e8, 0x0}, -+ {0x110e9, 0x15}, -+ {0x120e8, 0x0}, -+ {0x120e9, 0x15}, -+ {0x130e8, 0x0}, -+ {0x130e9, 0x15}, -+ {0x10001, 0x0}, -+ {0x11001, 0x0}, -+ {0x12001, 0x0}, -+ {0x13001, 0x0}, -+ {0x20012, 0xa1a1}, -+ {0x20017, 0x40}, -+ {0x2000a, 0x40}, -+ {0x20186, 0xa1}, -+ {0x20187, 0x40}, -+ {0x20010, 0x0}, -+ {0x20011, 0xf}, -+ {0x9080b, 0xf}, -+ {0x9080c, 0xf}, -+ {0x100a5, 0x1}, -+ {0x110a5, 0x1}, -+ {0x120a5, 0x1}, -+ {0x130a5, 0x1}, -+ {0x10014, 0x3232}, -+ {0x11014, 0x3232}, -+ {0x12014, 0x3232}, -+ {0x13014, 0x3232}, -+ {0x1000f, 0x1086}, -+ {0x1100f, 0x1086}, -+ {0x1200f, 0x1086}, -+ {0x1300f, 0x1086}, -+ {0x20035, 0x100c}, -+ {0x20036, 0x100c}, -+ {0x20037, 0x41c}, -+ {0x20037, 0x45c}, -+ {0x20038, 0x1920}, -+ {0x20039, 0x101c}, -+ {0x2003a, 0x101c}, -+ {0x2003b, 0x42c}, -+ {0x2003c, 0x2d30}, -+ {0x2003d, 0x1004}, -+ {0x2003e, 0x1004}, -+ {0x2003f, 0x414}, -+ {0x20040, 0x1118}, -+ {0x2002c, 0x843}, -+ {0x2002d, 0x843}, -+ {0x20030, 0x843}, -+ {0x2002e, 0x81f}, -+ {0x2002f, 0x81f}, -+ {0x2000c, 0x0}, -+ {0x2001b, 0x0}, -+ {0x10007, 0x0}, -+ {0x11007, 0x0}, -+ {0x12007, 0x0}, -+ {0x13007, 0x0}, -+ {0xc0080, 0x3}, -+}; -+ -+/* P0 message block parameter for training firmware */ -+static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { -+ {0x58000, 0x4000}, -+ {0x58002, 0x30}, -+ {0x58003, 0x1900}, -+ {0x58004, 0x4}, -+ {0x58005, 0x4}, -+ {0x58008, 0x17df}, -+ {0x58009, 0xff}, -+ {0x5800b, 0x2}, -+ {0x5800d, 0x100}, -+ {0x5800e, 0xf}, -+ {0x58012, 0x310}, -+ {0x5801f, 0x1000}, -+ {0x58020, 0x3}, -+ {0x5802d, 0xb0b0}, -+ {0x5802e, 0xb0b0}, -+ {0x5802f, 0xbbbb}, -+ {0x58030, 0xbbbb}, -+ {0x58031, 0x606}, -+ {0x58032, 0x606}, -+ {0x58033, 0x5454}, -+ {0x58034, 0x5454}, -+ {0x58035, 0x4646}, -+ {0x58036, 0x4646}, -+ {0x58037, 0x2d2d}, -+ {0x58038, 0x2d2d}, -+ {0x58039, 0x8080}, -+ {0x5803a, 0x8080}, -+ {0x5803b, 0x1c1c}, -+ {0x5803c, 0x1c1c}, -+ {0x5803d, 0x1c1c}, -+ {0x5803e, 0x1c1c}, -+ {0x58041, 0xac84}, -+ {0x58042, 0xac84}, -+ {0x58043, 0x1e1e}, -+ {0x58044, 0x1e1e}, -+ {0x58045, 0x1010}, -+ {0x58046, 0x1010}, -+ {0x58047, 0x202}, -+ {0x58048, 0x202}, -+ {0x5804f, 0x8080}, -+ {0x58050, 0x8080}, -+ {0x58055, 0x404}, -+ {0x58056, 0x404}, -+ {0x58074, 0x2e}, -+ {0x58075, 0x50}, -+ {0x58080, 0x1}, -+ {0x58081, 0x4b00}, -+ {0x58082, 0x43}, -+}; -+ -+/* DRAM PHY init engine image for Pstate 0 */ -+static struct ddrphy_cfg_param ddr_phy_pie_fsp0_cfg[] = { -+ {0x908f0, 0x65}, -+ {0x908f1, 0x258}, -+ {0x908f2, 0x0}, -+ {0x908f3, 0x58}, -+ {0x908f4, 0x14}, -+ {0x908f5, 0x0}, -+ {0x908f6, 0xb0}, -+ {0x908f7, 0x0}, -+ {0x41008, 0xc9d8}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0xc808}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x2b00}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0xc958}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0xcf08}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x2b00}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0xc0d8}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0xd848}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x2b00}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0xc158}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0xddc8}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x2b00}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0xc1d8}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0xc308}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x2b00}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0xc558}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0xea08}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x2b00}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0xc5d8}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0xe308}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x2b00}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x48d8}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x4248}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x88d8}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x9648}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x2b00}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0xca58}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0xc108}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x2b00}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0xcb58}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0xc008}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x2b00}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0xd4d8}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0xc008}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0x20015, 0x0}, -+ {0x3004a, 0x0}, -+ {0x3004b, 0x0}, -+ {0x3104a, 0x0}, -+ {0x3104b, 0x0}, -+ {0x2004a, 0x1a3e}, -+ {0x2004b, 0x1a3e}, -+ {0x2004c, 0x2c0f}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x101}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20041, 0x1}, -+ {0x90802, 0x1}, -+ {0x20045, 0x2}, -+ {0x10057, 0x0}, -+ {0x11057, 0x0}, -+ {0x12057, 0x0}, -+ {0x13057, 0x0}, -+ {0x1000f, 0x1086}, -+ {0x1100f, 0x1086}, -+ {0x1200f, 0x1086}, -+ {0x1300f, 0x1086}, -+ {0x90803, 0x4}, -+ {0x90804, 0x82}, -+ {0x90805, 0x1}, -+ {0x90903, 0x0}, -+ {0x9090b, 0x2}, -+ {0x90811, 0x0}, -+ {0x90812, 0xff00}, -+ {0x20072, 0x3}, -+ {0x9080e, 0x3}, -+ {0x20073, 0x3}, -+ {0x9080f, 0x3}, -+}; -+ -+/* DRAM PHY init engine image */ -+static struct ddrphy_cfg_param ddr_phy_pie[] = { -+ {0x41000, 0x0}, -+ {0x41001, 0x0}, -+ {0x41002, 0x0}, -+ {0x41003, 0x0}, -+ {0x41004, 0x0}, -+ {0x41005, 0x0}, -+ {0x41006, 0x0}, -+ {0x41007, 0x0}, -+ {0x41388, 0xc028}, -+ {0x41389, 0x0}, -+ {0x4138a, 0x0}, -+ {0x4138b, 0x10}, -+ {0x4138c, 0x0}, -+ {0x4138d, 0x0}, -+ {0x4138e, 0x0}, -+ {0x4138f, 0x0}, -+ {0x41390, 0x0}, -+ {0x41391, 0x0}, -+ {0x41392, 0x0}, -+ {0x41393, 0x400}, -+ {0x41394, 0x0}, -+ {0x41395, 0x0}, -+ {0x41396, 0x0}, -+ {0x41397, 0x0}, -+ {0x41398, 0x0}, -+ {0x41399, 0x0}, -+ {0x4139a, 0x0}, -+ {0x4139b, 0x0}, -+ {0x4139c, 0x0}, -+ {0x4139d, 0x0}, -+ {0x4139e, 0x0}, -+ {0x4139f, 0x0}, -+ {0x413a0, 0xc858}, -+ {0x413a1, 0x0}, -+ {0x413a2, 0x0}, -+ {0x413a3, 0x10}, -+ {0x413a4, 0xe088}, -+ {0x413a5, 0x0}, -+ {0x413a6, 0x0}, -+ {0x413a7, 0x10}, -+ {0x413a8, 0xe038}, -+ {0x413a9, 0x0}, -+ {0x413aa, 0x0}, -+ {0x413ab, 0x10}, -+ {0x413ac, 0xc858}, -+ {0x413ad, 0x0}, -+ {0x413ae, 0x0}, -+ {0x413af, 0x10}, -+ {0x413b0, 0xc088}, -+ {0x413b1, 0x0}, -+ {0x413b2, 0x0}, -+ {0x413b3, 0x10}, -+ {0x413b4, 0x0}, -+ {0x413b5, 0x0}, -+ {0x413b6, 0x0}, -+ {0x413b7, 0x0}, -+ {0x413b8, 0xc028}, -+ {0x413b9, 0x0}, -+ {0x413ba, 0x0}, -+ {0x413bb, 0x10}, -+ {0x413bc, 0x0}, -+ {0x413bd, 0x0}, -+ {0x413be, 0x0}, -+ {0x413bf, 0x0}, -+ {0x413c0, 0x0}, -+ {0x413c1, 0x0}, -+ {0x413c2, 0x0}, -+ {0x413c3, 0x400}, -+ {0x413c4, 0x0}, -+ {0x413c5, 0x0}, -+ {0x413c6, 0x0}, -+ {0x413c7, 0x0}, -+ {0x413c8, 0x0}, -+ {0x413c9, 0x0}, -+ {0x413ca, 0x0}, -+ {0x413cb, 0x0}, -+ {0x413cc, 0x0}, -+ {0x413cd, 0x0}, -+ {0x413ce, 0x0}, -+ {0x413cf, 0x0}, -+ {0x413d0, 0xc858}, -+ {0x413d1, 0x0}, -+ {0x413d2, 0x0}, -+ {0x413d3, 0x10}, -+ {0x413d4, 0xe208}, -+ {0x413d5, 0x0}, -+ {0x413d6, 0x0}, -+ {0x413d7, 0x10}, -+ {0x413d8, 0xe038}, -+ {0x413d9, 0x0}, -+ {0x413da, 0x0}, -+ {0x413db, 0x10}, -+ {0x413dc, 0xc858}, -+ {0x413dd, 0x0}, -+ {0x413de, 0x0}, -+ {0x413df, 0x10}, -+ {0x413e0, 0xc208}, -+ {0x413e1, 0x0}, -+ {0x413e2, 0x0}, -+ {0x413e3, 0x10}, -+ {0x413e4, 0x0}, -+ {0x413e5, 0x0}, -+ {0x413e6, 0x0}, -+ {0x413e7, 0x0}, -+ {0x413e8, 0xce58}, -+ {0x413e9, 0x0}, -+ {0x413ea, 0x0}, -+ {0x413eb, 0x10}, -+ {0x413ec, 0xc208}, -+ {0x413ed, 0x0}, -+ {0x413ee, 0x0}, -+ {0x413ef, 0x10}, -+ {0x413f0, 0x0}, -+ {0x413f1, 0x0}, -+ {0x413f2, 0x0}, -+ {0x413f3, 0x0}, -+ {0x413f4, 0x0}, -+ {0x413f5, 0x0}, -+ {0x413f6, 0x0}, -+ {0x413f7, 0x0}, -+ {0x413f8, 0xc370}, -+ {0x413f9, 0x0}, -+ {0x413fa, 0x0}, -+ {0x413fb, 0x10}, -+ {0x413fc, 0x0}, -+ {0x413fd, 0x0}, -+ {0x413fe, 0x0}, -+ {0x413ff, 0x0}, -+ {0x41400, 0xc040}, -+ {0x41401, 0x0}, -+ {0x41402, 0x0}, -+ {0x41403, 0x10}, -+ {0x41404, 0x0}, -+ {0x41405, 0x0}, -+ {0x41406, 0x0}, -+ {0x41407, 0x10}, -+ {0x41408, 0xd2d8}, -+ {0x41409, 0x0}, -+ {0x4140a, 0x0}, -+ {0x4140b, 0x10}, -+ {0x4140c, 0xe008}, -+ {0x4140d, 0x0}, -+ {0x4140e, 0x0}, -+ {0x4140f, 0x10}, -+ {0x41410, 0x0}, -+ {0x41411, 0x0}, -+ {0x41412, 0x0}, -+ {0x41413, 0x5b00}, -+ {0x41414, 0x0}, -+ {0x41415, 0x0}, -+ {0x41416, 0x0}, -+ {0x41417, 0x0}, -+ {0x41418, 0xc0f0}, -+ {0x41419, 0x0}, -+ {0x4141a, 0x0}, -+ {0x4141b, 0x10}, -+ {0x4141c, 0x0}, -+ {0x4141d, 0x0}, -+ {0x4141e, 0x0}, -+ {0x4141f, 0x0}, -+ {0x41420, 0xcfd8}, -+ {0x41421, 0x0}, -+ {0x41422, 0x0}, -+ {0x41423, 0x10}, -+ {0x41424, 0xc008}, -+ {0x41425, 0x0}, -+ {0x41426, 0x0}, -+ {0x41427, 0x10}, -+ {0x41428, 0x0}, -+ {0x41429, 0x0}, -+ {0x4142a, 0x0}, -+ {0x4142b, 0x2b00}, -+ {0x4142c, 0x0}, -+ {0x4142d, 0x0}, -+ {0x4142e, 0x0}, -+ {0x4142f, 0x0}, -+ {0x41430, 0xd058}, -+ {0x41431, 0x0}, -+ {0x41432, 0x0}, -+ {0x41433, 0x10}, -+ {0x41434, 0xc008}, -+ {0x41435, 0x0}, -+ {0x41436, 0x0}, -+ {0x41437, 0x10}, -+ {0x41438, 0x0}, -+ {0x41439, 0x0}, -+ {0x4143a, 0x0}, -+ {0x4143b, 0x2b00}, -+ {0x4143c, 0x0}, -+ {0x4143d, 0x0}, -+ {0x4143e, 0x0}, -+ {0x4143f, 0x0}, -+ {0x41440, 0xd0d8}, -+ {0x41441, 0x0}, -+ {0x41442, 0x0}, -+ {0x41443, 0x10}, -+ {0x41444, 0xc088}, -+ {0x41445, 0x0}, -+ {0x41446, 0x0}, -+ {0x41447, 0x10}, -+ {0x41448, 0x0}, -+ {0x41449, 0x0}, -+ {0x4144a, 0x0}, -+ {0x4144b, 0x2b00}, -+ {0x4144c, 0x0}, -+ {0x4144d, 0x0}, -+ {0x4144e, 0x0}, -+ {0x4144f, 0x0}, -+ {0x41450, 0xd158}, -+ {0x41451, 0x0}, -+ {0x41452, 0x0}, -+ {0x41453, 0x10}, -+ {0x41454, 0xc008}, -+ {0x41455, 0x0}, -+ {0x41456, 0x0}, -+ {0x41457, 0x10}, -+ {0x41458, 0x0}, -+ {0x41459, 0x0}, -+ {0x4145a, 0x0}, -+ {0x4145b, 0x5b00}, -+ {0x4145c, 0x0}, -+ {0x4145d, 0x0}, -+ {0x4145e, 0x0}, -+ {0x4145f, 0x0}, -+ {0x41460, 0x402c}, -+ {0x41461, 0xd00}, -+ {0x41462, 0x1}, -+ {0x41463, 0x400}, -+ {0x41464, 0x4050}, -+ {0x41465, 0x800}, -+ {0x41466, 0x0}, -+ {0x41467, 0x0}, -+ {0x41468, 0x0}, -+ {0x41469, 0x0}, -+ {0x4146a, 0x0}, -+ {0x4146b, 0x400}, -+ {0x4146c, 0x0}, -+ {0x4146d, 0x0}, -+ {0x4146e, 0x0}, -+ {0x4146f, 0x0}, -+ {0x41470, 0x0}, -+ {0x41471, 0x0}, -+ {0x41472, 0x0}, -+ {0x41473, 0x400}, -+ {0x41474, 0x4050}, -+ {0x41475, 0x803}, -+ {0x41476, 0x0}, -+ {0x41477, 0x0}, -+ {0x41478, 0x0}, -+ {0x41479, 0x0}, -+ {0x4147a, 0x0}, -+ {0x4147b, 0x7f00}, -+ {0x4147c, 0x0}, -+ {0x4147d, 0x0}, -+ {0x4147e, 0x0}, -+ {0x4147f, 0x400}, -+ {0x41480, 0x407c}, -+ {0x41481, 0x0}, -+ {0x41482, 0x0}, -+ {0x41483, 0x400}, -+ {0x41484, 0x0}, -+ {0x41485, 0x0}, -+ {0x41486, 0x0}, -+ {0x41487, 0x0}, -+ {0x41488, 0x0}, -+ {0x41489, 0x0}, -+ {0x4148a, 0x0}, -+ {0x4148b, 0x400}, -+ {0x4148c, 0x0}, -+ {0x4148d, 0x0}, -+ {0x4148e, 0x1}, -+ {0x4148f, 0x0}, -+ {0x41490, 0x0}, -+ {0x41491, 0x0}, -+ {0x41492, 0x0}, -+ {0x41493, 0x400}, -+ {0x41494, 0x0}, -+ {0x41495, 0x0}, -+ {0x41496, 0x0}, -+ {0x41497, 0x0}, -+ {0x41498, 0x0}, -+ {0x41499, 0x0}, -+ {0x4149a, 0x0}, -+ {0x4149b, 0x0}, -+ {0x4149c, 0x0}, -+ {0x4149d, 0x0}, -+ {0x4149e, 0x0}, -+ {0x4149f, 0x0}, -+ {0x414a0, 0x802c}, -+ {0x414a1, 0xd00}, -+ {0x414a2, 0x1}, -+ {0x414a3, 0x410}, -+ {0x414a4, 0x8050}, -+ {0x414a5, 0x800}, -+ {0x414a6, 0x0}, -+ {0x414a7, 0x10}, -+ {0x414a8, 0x0}, -+ {0x414a9, 0x0}, -+ {0x414aa, 0x0}, -+ {0x414ab, 0x400}, -+ {0x414ac, 0x0}, -+ {0x414ad, 0x0}, -+ {0x414ae, 0x0}, -+ {0x414af, 0x0}, -+ {0x414b0, 0x0}, -+ {0x414b1, 0x0}, -+ {0x414b2, 0x0}, -+ {0x414b3, 0x400}, -+ {0x414b4, 0x8050}, -+ {0x414b5, 0x803}, -+ {0x414b6, 0x0}, -+ {0x414b7, 0x10}, -+ {0x414b8, 0x0}, -+ {0x414b9, 0x0}, -+ {0x414ba, 0x0}, -+ {0x414bb, 0x7f00}, -+ {0x414bc, 0x0}, -+ {0x414bd, 0x0}, -+ {0x414be, 0x0}, -+ {0x414bf, 0x400}, -+ {0x414c0, 0x807c}, -+ {0x414c1, 0x0}, -+ {0x414c2, 0x0}, -+ {0x414c3, 0x410}, -+ {0x414c4, 0x0}, -+ {0x414c5, 0x0}, -+ {0x414c6, 0x0}, -+ {0x414c7, 0x0}, -+ {0x414c8, 0x0}, -+ {0x414c9, 0x0}, -+ {0x414ca, 0x0}, -+ {0x414cb, 0x400}, -+ {0x414cc, 0x0}, -+ {0x414cd, 0x0}, -+ {0x414ce, 0x1}, -+ {0x414cf, 0x0}, -+ {0x414d0, 0x0}, -+ {0x414d1, 0x0}, -+ {0x414d2, 0x0}, -+ {0x414d3, 0x400}, -+ {0x414d4, 0x0}, -+ {0x414d5, 0x0}, -+ {0x414d6, 0x0}, -+ {0x414d7, 0x0}, -+ {0x414d8, 0x0}, -+ {0x414d9, 0x0}, -+ {0x414da, 0x0}, -+ {0x414db, 0x0}, -+ {0x414dc, 0x0}, -+ {0x414dd, 0x0}, -+ {0x414de, 0x0}, -+ {0x414df, 0x0}, -+ {0x414e0, 0x402c}, -+ {0x414e1, 0xd00}, -+ {0x414e2, 0x1}, -+ {0x414e3, 0x0}, -+ {0x414e4, 0x4050}, -+ {0x414e5, 0x800}, -+ {0x414e6, 0x0}, -+ {0x414e7, 0x0}, -+ {0x414e8, 0x0}, -+ {0x414e9, 0x0}, -+ {0x414ea, 0x0}, -+ {0x414eb, 0x0}, -+ {0x414ec, 0x0}, -+ {0x414ed, 0x0}, -+ {0x414ee, 0x0}, -+ {0x414ef, 0x0}, -+ {0x414f0, 0x0}, -+ {0x414f1, 0x0}, -+ {0x414f2, 0x0}, -+ {0x414f3, 0x0}, -+ {0x414f4, 0x4050}, -+ {0x414f5, 0x803}, -+ {0x414f6, 0x0}, -+ {0x414f7, 0x0}, -+ {0x414f8, 0x0}, -+ {0x414f9, 0x0}, -+ {0x414fa, 0x0}, -+ {0x414fb, 0x0}, -+ {0x414fc, 0x0}, -+ {0x414fd, 0x0}, -+ {0x414fe, 0x0}, -+ {0x414ff, 0x0}, -+ {0x41500, 0x0}, -+ {0x41501, 0x0}, -+ {0x41502, 0x0}, -+ {0x41503, 0x0}, -+ {0x41504, 0x4050}, -+ {0x41505, 0x800}, -+ {0x41506, 0x0}, -+ {0x41507, 0x0}, -+ {0x41508, 0x0}, -+ {0x41509, 0x0}, -+ {0x4150a, 0x0}, -+ {0x4150b, 0x6b00}, -+ {0x4150c, 0x0}, -+ {0x4150d, 0x0}, -+ {0x4150e, 0x0}, -+ {0x4150f, 0x400}, -+ {0x41510, 0x0}, -+ {0x41511, 0x0}, -+ {0x41512, 0x0}, -+ {0x41513, 0x0}, -+ {0x41514, 0x407c}, -+ {0x41515, 0x0}, -+ {0x41516, 0x0}, -+ {0x41517, 0x0}, -+ {0x41518, 0x0}, -+ {0x41519, 0x0}, -+ {0x4151a, 0x0}, -+ {0x4151b, 0x0}, -+ {0x4151c, 0x0}, -+ {0x4151d, 0x0}, -+ {0x4151e, 0x0}, -+ {0x4151f, 0x0}, -+ {0x41520, 0x0}, -+ {0x41521, 0x0}, -+ {0x41522, 0x1}, -+ {0x41523, 0x0}, -+ {0x41524, 0x0}, -+ {0x41525, 0x0}, -+ {0x41526, 0x0}, -+ {0x41527, 0x0}, -+ {0x41528, 0x0}, -+ {0x41529, 0x0}, -+ {0x4152a, 0x0}, -+ {0x4152b, 0x4b00}, -+ {0x4152c, 0x0}, -+ {0x4152d, 0x0}, -+ {0x4152e, 0x0}, -+ {0x4152f, 0x1800}, -+ {0x41530, 0x0}, -+ {0x41531, 0x0}, -+ {0x41532, 0x0}, -+ {0x41533, 0x0}, -+ {0x41534, 0x802c}, -+ {0x41535, 0xd00}, -+ {0x41536, 0x1}, -+ {0x41537, 0x10}, -+ {0x41538, 0x8050}, -+ {0x41539, 0x800}, -+ {0x4153a, 0x0}, -+ {0x4153b, 0x10}, -+ {0x4153c, 0x0}, -+ {0x4153d, 0x0}, -+ {0x4153e, 0x0}, -+ {0x4153f, 0x0}, -+ {0x41540, 0x0}, -+ {0x41541, 0x0}, -+ {0x41542, 0x0}, -+ {0x41543, 0x0}, -+ {0x41544, 0x0}, -+ {0x41545, 0x0}, -+ {0x41546, 0x0}, -+ {0x41547, 0x0}, -+ {0x41548, 0x8050}, -+ {0x41549, 0x803}, -+ {0x4154a, 0x0}, -+ {0x4154b, 0x10}, -+ {0x4154c, 0x0}, -+ {0x4154d, 0x0}, -+ {0x4154e, 0x0}, -+ {0x4154f, 0x0}, -+ {0x41550, 0x0}, -+ {0x41551, 0x0}, -+ {0x41552, 0x0}, -+ {0x41553, 0x0}, -+ {0x41554, 0x0}, -+ {0x41555, 0x0}, -+ {0x41556, 0x0}, -+ {0x41557, 0x0}, -+ {0x41558, 0x8050}, -+ {0x41559, 0x800}, -+ {0x4155a, 0x0}, -+ {0x4155b, 0x10}, -+ {0x4155c, 0x0}, -+ {0x4155d, 0x0}, -+ {0x4155e, 0x0}, -+ {0x4155f, 0x0}, -+ {0x41560, 0x0}, -+ {0x41561, 0x0}, -+ {0x41562, 0x0}, -+ {0x41563, 0x6b00}, -+ {0x41564, 0x0}, -+ {0x41565, 0x0}, -+ {0x41566, 0x0}, -+ {0x41567, 0x400}, -+ {0x41568, 0x807c}, -+ {0x41569, 0x0}, -+ {0x4156a, 0x0}, -+ {0x4156b, 0x10}, -+ {0x4156c, 0x0}, -+ {0x4156d, 0x0}, -+ {0x4156e, 0x0}, -+ {0x4156f, 0x0}, -+ {0x41570, 0x0}, -+ {0x41571, 0x0}, -+ {0x41572, 0x0}, -+ {0x41573, 0x0}, -+ {0x41574, 0x0}, -+ {0x41575, 0x0}, -+ {0x41576, 0x1}, -+ {0x41577, 0x0}, -+ {0x41578, 0x0}, -+ {0x41579, 0x0}, -+ {0x4157a, 0x0}, -+ {0x4157b, 0x7b00}, -+ {0x4157c, 0x0}, -+ {0x4157d, 0x0}, -+ {0x4157e, 0x0}, -+ {0x4157f, 0x2000}, -+ {0x41580, 0x402c}, -+ {0x41581, 0xd00}, -+ {0x41582, 0x1}, -+ {0x41583, 0x0}, -+ {0x41584, 0x5198}, -+ {0x41585, 0x803}, -+ {0x41586, 0x0}, -+ {0x41587, 0x0}, -+ {0x41588, 0x0}, -+ {0x41589, 0x0}, -+ {0x4158a, 0x0}, -+ {0x4158b, 0x3b00}, -+ {0x4158c, 0x0}, -+ {0x4158d, 0x0}, -+ {0x4158e, 0x0}, -+ {0x4158f, 0x0}, -+ {0x41590, 0x5218}, -+ {0x41591, 0x803}, -+ {0x41592, 0x0}, -+ {0x41593, 0x0}, -+ {0x41594, 0x0}, -+ {0x41595, 0x0}, -+ {0x41596, 0x0}, -+ {0x41597, 0x0}, -+ {0x41598, 0x0}, -+ {0x41599, 0x0}, -+ {0x4159a, 0x0}, -+ {0x4159b, 0x6b00}, -+ {0x4159c, 0x0}, -+ {0x4159d, 0x0}, -+ {0x4159e, 0x0}, -+ {0x4159f, 0x400}, -+ {0x415a0, 0x407c}, -+ {0x415a1, 0x0}, -+ {0x415a2, 0x0}, -+ {0x415a3, 0x0}, -+ {0x415a4, 0x0}, -+ {0x415a5, 0x0}, -+ {0x415a6, 0x0}, -+ {0x415a7, 0x0}, -+ {0x415a8, 0x0}, -+ {0x415a9, 0x0}, -+ {0x415aa, 0x0}, -+ {0x415ab, 0x0}, -+ {0x415ac, 0x0}, -+ {0x415ad, 0x0}, -+ {0x415ae, 0x1}, -+ {0x415af, 0x0}, -+ {0x415b0, 0x0}, -+ {0x415b1, 0x0}, -+ {0x415b2, 0x0}, -+ {0x415b3, 0x1b00}, -+ {0x415b4, 0x0}, -+ {0x415b5, 0x0}, -+ {0x415b6, 0x0}, -+ {0x415b7, 0x0}, -+ {0x415b8, 0x0}, -+ {0x415b9, 0x0}, -+ {0x415ba, 0x0}, -+ {0x415bb, 0x0}, -+ {0x415bc, 0x802c}, -+ {0x415bd, 0xd00}, -+ {0x415be, 0x1}, -+ {0x415bf, 0x10}, -+ {0x415c0, 0x9198}, -+ {0x415c1, 0x803}, -+ {0x415c2, 0x0}, -+ {0x415c3, 0x10}, -+ {0x415c4, 0x0}, -+ {0x415c5, 0x0}, -+ {0x415c6, 0x0}, -+ {0x415c7, 0x0}, -+ {0x415c8, 0x0}, -+ {0x415c9, 0x0}, -+ {0x415ca, 0x0}, -+ {0x415cb, 0x2b00}, -+ {0x415cc, 0x0}, -+ {0x415cd, 0x0}, -+ {0x415ce, 0x0}, -+ {0x415cf, 0x0}, -+ {0x415d0, 0x0}, -+ {0x415d1, 0x0}, -+ {0x415d2, 0x0}, -+ {0x415d3, 0x0}, -+ {0x415d4, 0x9218}, -+ {0x415d5, 0x803}, -+ {0x415d6, 0x0}, -+ {0x415d7, 0x10}, -+ {0x415d8, 0x0}, -+ {0x415d9, 0x0}, -+ {0x415da, 0x0}, -+ {0x415db, 0x6b00}, -+ {0x415dc, 0x0}, -+ {0x415dd, 0x0}, -+ {0x415de, 0x0}, -+ {0x415df, 0x400}, -+ {0x415e0, 0x0}, -+ {0x415e1, 0x0}, -+ {0x415e2, 0x0}, -+ {0x415e3, 0x0}, -+ {0x415e4, 0x807c}, -+ {0x415e5, 0x0}, -+ {0x415e6, 0x0}, -+ {0x415e7, 0x10}, -+ {0x415e8, 0x0}, -+ {0x415e9, 0x0}, -+ {0x415ea, 0x0}, -+ {0x415eb, 0x0}, -+ {0x415ec, 0x0}, -+ {0x415ed, 0x0}, -+ {0x415ee, 0x0}, -+ {0x415ef, 0x0}, -+ {0x415f0, 0x0}, -+ {0x415f1, 0x0}, -+ {0x415f2, 0x1}, -+ {0x415f3, 0x0}, -+ {0x415f4, 0x0}, -+ {0x415f5, 0x0}, -+ {0x415f6, 0x0}, -+ {0x415f7, 0x0}, -+ {0x415f8, 0x0}, -+ {0x415f9, 0x0}, -+ {0x415fa, 0x0}, -+ {0x415fb, 0xb00}, -+ {0x415fc, 0x0}, -+ {0x415fd, 0x0}, -+ {0x415fe, 0x0}, -+ {0x415ff, 0x400}, -+ {0x41600, 0x0}, -+ {0x41601, 0x0}, -+ {0x41602, 0x0}, -+ {0x41603, 0x0}, -+ {0x41604, 0x0}, -+ {0x41605, 0x0}, -+ {0x41606, 0x0}, -+ {0x41607, 0x0}, -+ {0x41608, 0x401c}, -+ {0x41609, 0xd0}, -+ {0x4160a, 0x1}, -+ {0x4160b, 0x0}, -+ {0x4160c, 0x4060}, -+ {0x4160d, 0x84}, -+ {0x4160e, 0x0}, -+ {0x4160f, 0x0}, -+ {0x41610, 0x0}, -+ {0x41611, 0x0}, -+ {0x41612, 0x0}, -+ {0x41613, 0xb00}, -+ {0x41614, 0x0}, -+ {0x41615, 0x0}, -+ {0x41616, 0x0}, -+ {0x41617, 0x800}, -+ {0x41618, 0x407c}, -+ {0x41619, 0x0}, -+ {0x4161a, 0x0}, -+ {0x4161b, 0x0}, -+ {0x4161c, 0x0}, -+ {0x4161d, 0x0}, -+ {0x4161e, 0x0}, -+ {0x4161f, 0x0}, -+ {0x41620, 0x0}, -+ {0x41621, 0x0}, -+ {0x41622, 0x0}, -+ {0x41623, 0x0}, -+ {0x41624, 0x4000}, -+ {0x41625, 0x0}, -+ {0x41626, 0x1}, -+ {0x41627, 0x0}, -+ {0x41628, 0x0}, -+ {0x41629, 0x0}, -+ {0x4162a, 0x0}, -+ {0x4162b, 0x0}, -+ {0x4162c, 0x402c}, -+ {0x4162d, 0xd00}, -+ {0x4162e, 0x1}, -+ {0x4162f, 0x0}, -+ {0x41630, 0x4020}, -+ {0x41631, 0x803}, -+ {0x41632, 0x0}, -+ {0x41633, 0x0}, -+ {0x41634, 0x0}, -+ {0x41635, 0x0}, -+ {0x41636, 0x0}, -+ {0x41637, 0x0}, -+ {0x41638, 0x0}, -+ {0x41639, 0x0}, -+ {0x4163a, 0x0}, -+ {0x4163b, 0x2b00}, -+ {0x4163c, 0x0}, -+ {0x4163d, 0x0}, -+ {0x4163e, 0x0}, -+ {0x4163f, 0x800}, -+ {0x41640, 0x0}, -+ {0x41641, 0x0}, -+ {0x41642, 0x0}, -+ {0x41643, 0x0}, -+ {0x41644, 0x407c}, -+ {0x41645, 0x0}, -+ {0x41646, 0x0}, -+ {0x41647, 0x0}, -+ {0x41648, 0x0}, -+ {0x41649, 0x0}, -+ {0x4164a, 0x0}, -+ {0x4164b, 0x0}, -+ {0x4164c, 0x0}, -+ {0x4164d, 0x0}, -+ {0x4164e, 0x0}, -+ {0x4164f, 0x0}, -+ {0x41650, 0x0}, -+ {0x41651, 0x0}, -+ {0x41652, 0x1}, -+ {0x41653, 0x0}, -+ {0x41654, 0x0}, -+ {0x41655, 0x0}, -+ {0x41656, 0x0}, -+ {0x41657, 0x0}, -+ {0x41658, 0x801c}, -+ {0x41659, 0xd0}, -+ {0x4165a, 0x1}, -+ {0x4165b, 0x10}, -+ {0x4165c, 0x8060}, -+ {0x4165d, 0x84}, -+ {0x4165e, 0x0}, -+ {0x4165f, 0x10}, -+ {0x41660, 0x0}, -+ {0x41661, 0x0}, -+ {0x41662, 0x0}, -+ {0x41663, 0xb00}, -+ {0x41664, 0x0}, -+ {0x41665, 0x0}, -+ {0x41666, 0x0}, -+ {0x41667, 0x800}, -+ {0x41668, 0x807c}, -+ {0x41669, 0x0}, -+ {0x4166a, 0x0}, -+ {0x4166b, 0x10}, -+ {0x4166c, 0x0}, -+ {0x4166d, 0x0}, -+ {0x4166e, 0x0}, -+ {0x4166f, 0x0}, -+ {0x41670, 0x0}, -+ {0x41671, 0x0}, -+ {0x41672, 0x0}, -+ {0x41673, 0x0}, -+ {0x41674, 0x8000}, -+ {0x41675, 0x0}, -+ {0x41676, 0x1}, -+ {0x41677, 0x10}, -+ {0x41678, 0x0}, -+ {0x41679, 0x0}, -+ {0x4167a, 0x0}, -+ {0x4167b, 0x0}, -+ {0x4167c, 0x802c}, -+ {0x4167d, 0xd00}, -+ {0x4167e, 0x1}, -+ {0x4167f, 0x10}, -+ {0x41680, 0x8020}, -+ {0x41681, 0x803}, -+ {0x41682, 0x0}, -+ {0x41683, 0x10}, -+ {0x41684, 0x0}, -+ {0x41685, 0x0}, -+ {0x41686, 0x0}, -+ {0x41687, 0x0}, -+ {0x41688, 0x0}, -+ {0x41689, 0x0}, -+ {0x4168a, 0x0}, -+ {0x4168b, 0x2b00}, -+ {0x4168c, 0x0}, -+ {0x4168d, 0x0}, -+ {0x4168e, 0x0}, -+ {0x4168f, 0x800}, -+ {0x41690, 0x0}, -+ {0x41691, 0x0}, -+ {0x41692, 0x0}, -+ {0x41693, 0x0}, -+ {0x41694, 0x807c}, -+ {0x41695, 0x0}, -+ {0x41696, 0x0}, -+ {0x41697, 0x10}, -+ {0x41698, 0x0}, -+ {0x41699, 0x0}, -+ {0x4169a, 0x0}, -+ {0x4169b, 0x0}, -+ {0x4169c, 0x0}, -+ {0x4169d, 0x0}, -+ {0x4169e, 0x0}, -+ {0x4169f, 0x0}, -+ {0x416a0, 0x0}, -+ {0x416a1, 0x0}, -+ {0x416a2, 0x1}, -+ {0x416a3, 0x0}, -+ {0x416a4, 0x0}, -+ {0x416a5, 0x0}, -+ {0x416a6, 0x0}, -+ {0x416a7, 0x0}, -+ {0x416a8, 0x402c}, -+ {0x416a9, 0xd00}, -+ {0x416aa, 0x1}, -+ {0x416ab, 0x0}, -+ {0x416ac, 0x4050}, -+ {0x416ad, 0x803}, -+ {0x416ae, 0x0}, -+ {0x416af, 0x0}, -+ {0x416b0, 0x0}, -+ {0x416b1, 0x0}, -+ {0x416b2, 0x0}, -+ {0x416b3, 0x1b00}, -+ {0x416b4, 0x0}, -+ {0x416b5, 0x0}, -+ {0x416b6, 0x0}, -+ {0x416b7, 0x0}, -+ {0x416b8, 0x0}, -+ {0x416b9, 0x0}, -+ {0x416ba, 0x0}, -+ {0x416bb, 0x0}, -+ {0x416bc, 0x0}, -+ {0x416bd, 0x0}, -+ {0x416be, 0x0}, -+ {0x416bf, 0x0}, -+ {0x416c0, 0x4050}, -+ {0x416c1, 0x803}, -+ {0x416c2, 0x0}, -+ {0x416c3, 0x5a00}, -+ {0x416c4, 0x0}, -+ {0x416c5, 0x0}, -+ {0x416c6, 0x0}, -+ {0x416c7, 0x0}, -+ {0x416c8, 0x0}, -+ {0x416c9, 0x0}, -+ {0x416ca, 0x0}, -+ {0x416cb, 0x0}, -+ {0x416cc, 0x0}, -+ {0x416cd, 0x0}, -+ {0x416ce, 0x0}, -+ {0x416cf, 0x0}, -+ {0x416d0, 0x0}, -+ {0x416d1, 0x0}, -+ {0x416d2, 0x0}, -+ {0x416d3, 0x100}, -+ {0x416d4, 0x0}, -+ {0x416d5, 0x0}, -+ {0x416d6, 0x0}, -+ {0x416d7, 0x0}, -+ {0x416d8, 0x4050}, -+ {0x416d9, 0x803}, -+ {0x416da, 0x0}, -+ {0x416db, 0x0}, -+ {0x416dc, 0x0}, -+ {0x416dd, 0x0}, -+ {0x416de, 0x0}, -+ {0x416df, 0x0}, -+ {0x416e0, 0x0}, -+ {0x416e1, 0x0}, -+ {0x416e2, 0x0}, -+ {0x416e3, 0x6b00}, -+ {0x416e4, 0x0}, -+ {0x416e5, 0x0}, -+ {0x416e6, 0x0}, -+ {0x416e7, 0x400}, -+ {0x416e8, 0x407c}, -+ {0x416e9, 0x0}, -+ {0x416ea, 0x0}, -+ {0x416eb, 0x0}, -+ {0x416ec, 0x0}, -+ {0x416ed, 0x0}, -+ {0x416ee, 0x0}, -+ {0x416ef, 0x0}, -+ {0x416f0, 0x0}, -+ {0x416f1, 0x0}, -+ {0x416f2, 0x0}, -+ {0x416f3, 0x3b00}, -+ {0x416f4, 0x0}, -+ {0x416f5, 0x0}, -+ {0x416f6, 0x0}, -+ {0x416f7, 0x0}, -+ {0x416f8, 0x0}, -+ {0x416f9, 0x0}, -+ {0x416fa, 0x0}, -+ {0x416fb, 0x0}, -+ {0x416fc, 0x0}, -+ {0x416fd, 0x0}, -+ {0x416fe, 0x1}, -+ {0x416ff, 0x0}, -+ {0x41700, 0x5758}, -+ {0x41701, 0x0}, -+ {0x41702, 0x0}, -+ {0x41703, 0x0}, -+ {0x41704, 0x4208}, -+ {0x41705, 0x0}, -+ {0x41706, 0x0}, -+ {0x41707, 0x0}, -+ {0x41708, 0x0}, -+ {0x41709, 0x0}, -+ {0x4170a, 0x0}, -+ {0x4170b, 0x4b00}, -+ {0x4170c, 0x0}, -+ {0x4170d, 0x0}, -+ {0x4170e, 0x0}, -+ {0x4170f, 0x0}, -+ {0x41710, 0x0}, -+ {0x41711, 0x0}, -+ {0x41712, 0x0}, -+ {0x41713, 0x0}, -+ {0x41714, 0x401c}, -+ {0x41715, 0xd0}, -+ {0x41716, 0x1}, -+ {0x41717, 0x0}, -+ {0x41718, 0x4060}, -+ {0x41719, 0x84}, -+ {0x4171a, 0x0}, -+ {0x4171b, 0x0}, -+ {0x4171c, 0x0}, -+ {0x4171d, 0x0}, -+ {0x4171e, 0x0}, -+ {0x4171f, 0x0}, -+ {0x41720, 0x0}, -+ {0x41721, 0x0}, -+ {0x41722, 0x0}, -+ {0x41723, 0x7b00}, -+ {0x41724, 0x0}, -+ {0x41725, 0x0}, -+ {0x41726, 0x0}, -+ {0x41727, 0x0}, -+ {0x41728, 0x407c}, -+ {0x41729, 0x0}, -+ {0x4172a, 0x0}, -+ {0x4172b, 0x0}, -+ {0x4172c, 0x0}, -+ {0x4172d, 0x0}, -+ {0x4172e, 0x0}, -+ {0x4172f, 0x0}, -+ {0x41730, 0x0}, -+ {0x41731, 0x0}, -+ {0x41732, 0x0}, -+ {0x41733, 0x0}, -+ {0x41734, 0x4000}, -+ {0x41735, 0x0}, -+ {0x41736, 0x1}, -+ {0x41737, 0x0}, -+ {0x41738, 0x0}, -+ {0x41739, 0x0}, -+ {0x4173a, 0x0}, -+ {0x4173b, 0x0}, -+ {0x4173c, 0x402c}, -+ {0x4173d, 0xd00}, -+ {0x4173e, 0x1}, -+ {0x4173f, 0x0}, -+ {0x41740, 0x4020}, -+ {0x41741, 0x803}, -+ {0x41742, 0x0}, -+ {0x41743, 0x0}, -+ {0x41744, 0x0}, -+ {0x41745, 0x0}, -+ {0x41746, 0x0}, -+ {0x41747, 0x0}, -+ {0x41748, 0x0}, -+ {0x41749, 0x0}, -+ {0x4174a, 0x0}, -+ {0x4174b, 0x2b00}, -+ {0x4174c, 0x0}, -+ {0x4174d, 0x0}, -+ {0x4174e, 0x0}, -+ {0x4174f, 0x800}, -+ {0x41750, 0x0}, -+ {0x41751, 0x0}, -+ {0x41752, 0x0}, -+ {0x41753, 0x0}, -+ {0x41754, 0x407c}, -+ {0x41755, 0x0}, -+ {0x41756, 0x0}, -+ {0x41757, 0x0}, -+ {0x41758, 0x0}, -+ {0x41759, 0x0}, -+ {0x4175a, 0x0}, -+ {0x4175b, 0x0}, -+ {0x4175c, 0x0}, -+ {0x4175d, 0x0}, -+ {0x4175e, 0x0}, -+ {0x4175f, 0x0}, -+ {0x41760, 0x4000}, -+ {0x41761, 0x0}, -+ {0x41762, 0x1}, -+ {0x41763, 0x0}, -+ {0x41764, 0x0}, -+ {0x41765, 0x0}, -+ {0x41766, 0x0}, -+ {0x41767, 0x0}, -+ {0x41768, 0x5758}, -+ {0x41769, 0x0}, -+ {0x4176a, 0x0}, -+ {0x4176b, 0x0}, -+ {0x4176c, 0x4008}, -+ {0x4176d, 0x0}, -+ {0x4176e, 0x0}, -+ {0x4176f, 0x0}, -+ {0x41770, 0x0}, -+ {0x41771, 0x0}, -+ {0x41772, 0x0}, -+ {0x41773, 0x0}, -+ {0x41774, 0x0}, -+ {0x41775, 0x0}, -+ {0x41776, 0x0}, -+ {0x41777, 0x0}, -+ {0x41778, 0x802c}, -+ {0x41779, 0xd00}, -+ {0x4177a, 0x1}, -+ {0x4177b, 0x10}, -+ {0x4177c, 0x8050}, -+ {0x4177d, 0x803}, -+ {0x4177e, 0x0}, -+ {0x4177f, 0x10}, -+ {0x41780, 0x0}, -+ {0x41781, 0x0}, -+ {0x41782, 0x0}, -+ {0x41783, 0x1b00}, -+ {0x41784, 0x0}, -+ {0x41785, 0x0}, -+ {0x41786, 0x0}, -+ {0x41787, 0x0}, -+ {0x41788, 0x0}, -+ {0x41789, 0x0}, -+ {0x4178a, 0x0}, -+ {0x4178b, 0x0}, -+ {0x4178c, 0x0}, -+ {0x4178d, 0x0}, -+ {0x4178e, 0x0}, -+ {0x4178f, 0x0}, -+ {0x41790, 0x8050}, -+ {0x41791, 0x803}, -+ {0x41792, 0x0}, -+ {0x41793, 0x5a10}, -+ {0x41794, 0x0}, -+ {0x41795, 0x0}, -+ {0x41796, 0x0}, -+ {0x41797, 0x0}, -+ {0x41798, 0x0}, -+ {0x41799, 0x0}, -+ {0x4179a, 0x0}, -+ {0x4179b, 0x0}, -+ {0x4179c, 0x0}, -+ {0x4179d, 0x0}, -+ {0x4179e, 0x0}, -+ {0x4179f, 0x0}, -+ {0x417a0, 0x0}, -+ {0x417a1, 0x0}, -+ {0x417a2, 0x0}, -+ {0x417a3, 0x100}, -+ {0x417a4, 0x0}, -+ {0x417a5, 0x0}, -+ {0x417a6, 0x0}, -+ {0x417a7, 0x0}, -+ {0x417a8, 0x8050}, -+ {0x417a9, 0x803}, -+ {0x417aa, 0x0}, -+ {0x417ab, 0x10}, -+ {0x417ac, 0x0}, -+ {0x417ad, 0x0}, -+ {0x417ae, 0x0}, -+ {0x417af, 0x0}, -+ {0x417b0, 0x0}, -+ {0x417b1, 0x0}, -+ {0x417b2, 0x0}, -+ {0x417b3, 0x6b00}, -+ {0x417b4, 0x0}, -+ {0x417b5, 0x0}, -+ {0x417b6, 0x0}, -+ {0x417b7, 0x400}, -+ {0x417b8, 0x807c}, -+ {0x417b9, 0x0}, -+ {0x417ba, 0x0}, -+ {0x417bb, 0x10}, -+ {0x417bc, 0x0}, -+ {0x417bd, 0x0}, -+ {0x417be, 0x0}, -+ {0x417bf, 0x0}, -+ {0x417c0, 0x0}, -+ {0x417c1, 0x0}, -+ {0x417c2, 0x0}, -+ {0x417c3, 0x3b00}, -+ {0x417c4, 0x0}, -+ {0x417c5, 0x0}, -+ {0x417c6, 0x0}, -+ {0x417c7, 0x0}, -+ {0x417c8, 0x0}, -+ {0x417c9, 0x0}, -+ {0x417ca, 0x0}, -+ {0x417cb, 0x0}, -+ {0x417cc, 0x0}, -+ {0x417cd, 0x0}, -+ {0x417ce, 0x1}, -+ {0x417cf, 0x0}, -+ {0x417d0, 0x9758}, -+ {0x417d1, 0x0}, -+ {0x417d2, 0x0}, -+ {0x417d3, 0x10}, -+ {0x417d4, 0x8208}, -+ {0x417d5, 0x0}, -+ {0x417d6, 0x0}, -+ {0x417d7, 0x10}, -+ {0x417d8, 0x0}, -+ {0x417d9, 0x0}, -+ {0x417da, 0x0}, -+ {0x417db, 0x4b00}, -+ {0x417dc, 0x0}, -+ {0x417dd, 0x0}, -+ {0x417de, 0x0}, -+ {0x417df, 0x0}, -+ {0x417e0, 0x0}, -+ {0x417e1, 0x0}, -+ {0x417e2, 0x0}, -+ {0x417e3, 0x0}, -+ {0x417e4, 0x801c}, -+ {0x417e5, 0xd0}, -+ {0x417e6, 0x1}, -+ {0x417e7, 0x10}, -+ {0x417e8, 0x8060}, -+ {0x417e9, 0x84}, -+ {0x417ea, 0x0}, -+ {0x417eb, 0x10}, -+ {0x417ec, 0x0}, -+ {0x417ed, 0x0}, -+ {0x417ee, 0x0}, -+ {0x417ef, 0x0}, -+ {0x417f0, 0x0}, -+ {0x417f1, 0x0}, -+ {0x417f2, 0x0}, -+ {0x417f3, 0x7b00}, -+ {0x417f4, 0x0}, -+ {0x417f5, 0x0}, -+ {0x417f6, 0x0}, -+ {0x417f7, 0x0}, -+ {0x417f8, 0x807c}, -+ {0x417f9, 0x0}, -+ {0x417fa, 0x0}, -+ {0x417fb, 0x10}, -+ {0x417fc, 0x0}, -+ {0x417fd, 0x0}, -+ {0x417fe, 0x0}, -+ {0x417ff, 0x0}, -+ {0x41800, 0x0}, -+ {0x41801, 0x0}, -+ {0x41802, 0x0}, -+ {0x41803, 0x0}, -+ {0x41804, 0x8000}, -+ {0x41805, 0x0}, -+ {0x41806, 0x1}, -+ {0x41807, 0x10}, -+ {0x41808, 0x0}, -+ {0x41809, 0x0}, -+ {0x4180a, 0x0}, -+ {0x4180b, 0x0}, -+ {0x4180c, 0x802c}, -+ {0x4180d, 0xd00}, -+ {0x4180e, 0x1}, -+ {0x4180f, 0x10}, -+ {0x41810, 0x8020}, -+ {0x41811, 0x803}, -+ {0x41812, 0x0}, -+ {0x41813, 0x10}, -+ {0x41814, 0x0}, -+ {0x41815, 0x0}, -+ {0x41816, 0x0}, -+ {0x41817, 0x0}, -+ {0x41818, 0x0}, -+ {0x41819, 0x0}, -+ {0x4181a, 0x0}, -+ {0x4181b, 0x2b00}, -+ {0x4181c, 0x0}, -+ {0x4181d, 0x0}, -+ {0x4181e, 0x0}, -+ {0x4181f, 0x800}, -+ {0x41820, 0x0}, -+ {0x41821, 0x0}, -+ {0x41822, 0x0}, -+ {0x41823, 0x0}, -+ {0x41824, 0x807c}, -+ {0x41825, 0x0}, -+ {0x41826, 0x0}, -+ {0x41827, 0x10}, -+ {0x41828, 0x0}, -+ {0x41829, 0x0}, -+ {0x4182a, 0x0}, -+ {0x4182b, 0x0}, -+ {0x4182c, 0x0}, -+ {0x4182d, 0x0}, -+ {0x4182e, 0x0}, -+ {0x4182f, 0x0}, -+ {0x41830, 0x8000}, -+ {0x41831, 0x0}, -+ {0x41832, 0x1}, -+ {0x41833, 0x10}, -+ {0x41834, 0x0}, -+ {0x41835, 0x0}, -+ {0x41836, 0x0}, -+ {0x41837, 0x0}, -+ {0x41838, 0x9758}, -+ {0x41839, 0x0}, -+ {0x4183a, 0x0}, -+ {0x4183b, 0x10}, -+ {0x4183c, 0x8008}, -+ {0x4183d, 0x0}, -+ {0x4183e, 0x0}, -+ {0x4183f, 0x10}, -+ {0x41840, 0x0}, -+ {0x41841, 0x0}, -+ {0x41842, 0x0}, -+ {0x41843, 0x0}, -+ {0x41844, 0x0}, -+ {0x41845, 0x0}, -+ {0x41846, 0x0}, -+ {0x41847, 0x0}, -+ {0x41848, 0xc068}, -+ {0x41849, 0x0}, -+ {0x4184a, 0x0}, -+ {0x4184b, 0x10}, -+ {0x4184c, 0x0}, -+ {0x4184d, 0x0}, -+ {0x4184e, 0x0}, -+ {0x4184f, 0x0}, -+ {0x41850, 0xd2d8}, -+ {0x41851, 0x0}, -+ {0x41852, 0x0}, -+ {0x41853, 0x10}, -+ {0x41854, 0xe008}, -+ {0x41855, 0x0}, -+ {0x41856, 0x0}, -+ {0x41857, 0x10}, -+ {0x41858, 0x0}, -+ {0x41859, 0x0}, -+ {0x4185a, 0x0}, -+ {0x4185b, 0x5b00}, -+ {0x4185c, 0x0}, -+ {0x4185d, 0x0}, -+ {0x4185e, 0x0}, -+ {0x4185f, 0x0}, -+ {0x41860, 0xc0f0}, -+ {0x41861, 0x0}, -+ {0x41862, 0x0}, -+ {0x41863, 0x10}, -+ {0x41864, 0x0}, -+ {0x41865, 0x0}, -+ {0x41866, 0x0}, -+ {0x41867, 0x0}, -+ {0x41868, 0xcfd8}, -+ {0x41869, 0x0}, -+ {0x4186a, 0x0}, -+ {0x4186b, 0x10}, -+ {0x4186c, 0xc008}, -+ {0x4186d, 0x0}, -+ {0x4186e, 0x0}, -+ {0x4186f, 0x10}, -+ {0x41870, 0x0}, -+ {0x41871, 0x0}, -+ {0x41872, 0x0}, -+ {0x41873, 0x2b00}, -+ {0x41874, 0x0}, -+ {0x41875, 0x0}, -+ {0x41876, 0x0}, -+ {0x41877, 0x0}, -+ {0x41878, 0xd058}, -+ {0x41879, 0x0}, -+ {0x4187a, 0x0}, -+ {0x4187b, 0x10}, -+ {0x4187c, 0xc008}, -+ {0x4187d, 0x0}, -+ {0x4187e, 0x0}, -+ {0x4187f, 0x10}, -+ {0x41880, 0x0}, -+ {0x41881, 0x0}, -+ {0x41882, 0x0}, -+ {0x41883, 0x2b00}, -+ {0x41884, 0x0}, -+ {0x41885, 0x0}, -+ {0x41886, 0x0}, -+ {0x41887, 0x0}, -+ {0x41888, 0xd0d8}, -+ {0x41889, 0x0}, -+ {0x4188a, 0x0}, -+ {0x4188b, 0x10}, -+ {0x4188c, 0xc088}, -+ {0x4188d, 0x0}, -+ {0x4188e, 0x0}, -+ {0x4188f, 0x10}, -+ {0x41890, 0x0}, -+ {0x41891, 0x0}, -+ {0x41892, 0x0}, -+ {0x41893, 0x2b00}, -+ {0x41894, 0x0}, -+ {0x41895, 0x0}, -+ {0x41896, 0x0}, -+ {0x41897, 0x0}, -+ {0x41898, 0xd158}, -+ {0x41899, 0x0}, -+ {0x4189a, 0x0}, -+ {0x4189b, 0x10}, -+ {0x4189c, 0xc008}, -+ {0x4189d, 0x0}, -+ {0x4189e, 0x0}, -+ {0x4189f, 0x10}, -+ {0x418a0, 0x0}, -+ {0x418a1, 0x0}, -+ {0x418a2, 0x0}, -+ {0x418a3, 0x5b00}, -+ {0x418a4, 0x0}, -+ {0x418a5, 0x0}, -+ {0x418a6, 0x0}, -+ {0x418a7, 0x0}, -+ {0x418a8, 0x402c}, -+ {0x418a9, 0xd00}, -+ {0x418aa, 0x1}, -+ {0x418ab, 0x400}, -+ {0x418ac, 0x4050}, -+ {0x418ad, 0x800}, -+ {0x418ae, 0x0}, -+ {0x418af, 0x0}, -+ {0x418b0, 0x0}, -+ {0x418b1, 0x0}, -+ {0x418b2, 0x0}, -+ {0x418b3, 0x400}, -+ {0x418b4, 0x4050}, -+ {0x418b5, 0x803}, -+ {0x418b6, 0x0}, -+ {0x418b7, 0x0}, -+ {0x418b8, 0x0}, -+ {0x418b9, 0x0}, -+ {0x418ba, 0x0}, -+ {0x418bb, 0x6f00}, -+ {0x418bc, 0x0}, -+ {0x418bd, 0x0}, -+ {0x418be, 0x0}, -+ {0x418bf, 0x400}, -+ {0x418c0, 0x407c}, -+ {0x418c1, 0x0}, -+ {0x418c2, 0x0}, -+ {0x418c3, 0x400}, -+ {0x418c4, 0x0}, -+ {0x418c5, 0x0}, -+ {0x418c6, 0x0}, -+ {0x418c7, 0x0}, -+ {0x418c8, 0x0}, -+ {0x418c9, 0x0}, -+ {0x418ca, 0x0}, -+ {0x418cb, 0x400}, -+ {0x418cc, 0x0}, -+ {0x418cd, 0x0}, -+ {0x418ce, 0x1}, -+ {0x418cf, 0x0}, -+ {0x418d0, 0x0}, -+ {0x418d1, 0x0}, -+ {0x418d2, 0x0}, -+ {0x418d3, 0x400}, -+ {0x418d4, 0x0}, -+ {0x418d5, 0x0}, -+ {0x418d6, 0x0}, -+ {0x418d7, 0x0}, -+ {0x418d8, 0x0}, -+ {0x418d9, 0x0}, -+ {0x418da, 0x0}, -+ {0x418db, 0x0}, -+ {0x418dc, 0x0}, -+ {0x418dd, 0x0}, -+ {0x418de, 0x0}, -+ {0x418df, 0x0}, -+ {0x418e0, 0x802c}, -+ {0x418e1, 0xd00}, -+ {0x418e2, 0x1}, -+ {0x418e3, 0x410}, -+ {0x418e4, 0x8050}, -+ {0x418e5, 0x800}, -+ {0x418e6, 0x0}, -+ {0x418e7, 0x10}, -+ {0x418e8, 0x0}, -+ {0x418e9, 0x0}, -+ {0x418ea, 0x0}, -+ {0x418eb, 0x400}, -+ {0x418ec, 0x8050}, -+ {0x418ed, 0x803}, -+ {0x418ee, 0x0}, -+ {0x418ef, 0x10}, -+ {0x418f0, 0x0}, -+ {0x418f1, 0x0}, -+ {0x418f2, 0x0}, -+ {0x418f3, 0x6f00}, -+ {0x418f4, 0x0}, -+ {0x418f5, 0x0}, -+ {0x418f6, 0x0}, -+ {0x418f7, 0x400}, -+ {0x418f8, 0x807c}, -+ {0x418f9, 0x0}, -+ {0x418fa, 0x0}, -+ {0x418fb, 0x410}, -+ {0x418fc, 0x0}, -+ {0x418fd, 0x0}, -+ {0x418fe, 0x0}, -+ {0x418ff, 0x0}, -+ {0x41900, 0x0}, -+ {0x41901, 0x0}, -+ {0x41902, 0x0}, -+ {0x41903, 0x400}, -+ {0x41904, 0x0}, -+ {0x41905, 0x0}, -+ {0x41906, 0x1}, -+ {0x41907, 0x0}, -+ {0x41908, 0x0}, -+ {0x41909, 0x0}, -+ {0x4190a, 0x0}, -+ {0x4190b, 0x400}, -+ {0x4190c, 0x0}, -+ {0x4190d, 0x0}, -+ {0x4190e, 0x0}, -+ {0x4190f, 0x0}, -+ {0x41910, 0x0}, -+ {0x41911, 0x0}, -+ {0x41912, 0x0}, -+ {0x41913, 0x0}, -+ {0x41914, 0x0}, -+ {0x41915, 0x0}, -+ {0x41916, 0x0}, -+ {0x41917, 0x0}, -+ {0x41918, 0x402c}, -+ {0x41919, 0xd00}, -+ {0x4191a, 0x1}, -+ {0x4191b, 0x0}, -+ {0x4191c, 0x4050}, -+ {0x4191d, 0x800}, -+ {0x4191e, 0x0}, -+ {0x4191f, 0x0}, -+ {0x41920, 0x0}, -+ {0x41921, 0x0}, -+ {0x41922, 0x0}, -+ {0x41923, 0x0}, -+ {0x41924, 0x4050}, -+ {0x41925, 0x803}, -+ {0x41926, 0x0}, -+ {0x41927, 0x0}, -+ {0x41928, 0x0}, -+ {0x41929, 0x0}, -+ {0x4192a, 0x0}, -+ {0x4192b, 0x0}, -+ {0x4192c, 0x4050}, -+ {0x4192d, 0x800}, -+ {0x4192e, 0x0}, -+ {0x4192f, 0x0}, -+ {0x41930, 0x0}, -+ {0x41931, 0x0}, -+ {0x41932, 0x0}, -+ {0x41933, 0x4b00}, -+ {0x41934, 0x0}, -+ {0x41935, 0x0}, -+ {0x41936, 0x0}, -+ {0x41937, 0x400}, -+ {0x41938, 0x0}, -+ {0x41939, 0x0}, -+ {0x4193a, 0x0}, -+ {0x4193b, 0x0}, -+ {0x4193c, 0x407c}, -+ {0x4193d, 0x0}, -+ {0x4193e, 0x0}, -+ {0x4193f, 0x0}, -+ {0x41940, 0x0}, -+ {0x41941, 0x0}, -+ {0x41942, 0x0}, -+ {0x41943, 0x0}, -+ {0x41944, 0x0}, -+ {0x41945, 0x0}, -+ {0x41946, 0x0}, -+ {0x41947, 0x0}, -+ {0x41948, 0x0}, -+ {0x41949, 0x0}, -+ {0x4194a, 0x1}, -+ {0x4194b, 0x0}, -+ {0x4194c, 0x0}, -+ {0x4194d, 0x0}, -+ {0x4194e, 0x0}, -+ {0x4194f, 0x0}, -+ {0x41950, 0x0}, -+ {0x41951, 0x0}, -+ {0x41952, 0x0}, -+ {0x41953, 0x4b00}, -+ {0x41954, 0x0}, -+ {0x41955, 0x0}, -+ {0x41956, 0x0}, -+ {0x41957, 0x1800}, -+ {0x41958, 0x0}, -+ {0x41959, 0x0}, -+ {0x4195a, 0x0}, -+ {0x4195b, 0x0}, -+ {0x4195c, 0x802c}, -+ {0x4195d, 0xd00}, -+ {0x4195e, 0x1}, -+ {0x4195f, 0x10}, -+ {0x41960, 0x8050}, -+ {0x41961, 0x800}, -+ {0x41962, 0x0}, -+ {0x41963, 0x10}, -+ {0x41964, 0x0}, -+ {0x41965, 0x0}, -+ {0x41966, 0x0}, -+ {0x41967, 0x0}, -+ {0x41968, 0x8050}, -+ {0x41969, 0x803}, -+ {0x4196a, 0x0}, -+ {0x4196b, 0x10}, -+ {0x4196c, 0x0}, -+ {0x4196d, 0x0}, -+ {0x4196e, 0x0}, -+ {0x4196f, 0x0}, -+ {0x41970, 0x8050}, -+ {0x41971, 0x800}, -+ {0x41972, 0x0}, -+ {0x41973, 0x10}, -+ {0x41974, 0x0}, -+ {0x41975, 0x0}, -+ {0x41976, 0x0}, -+ {0x41977, 0x0}, -+ {0x41978, 0x0}, -+ {0x41979, 0x0}, -+ {0x4197a, 0x0}, -+ {0x4197b, 0x4b00}, -+ {0x4197c, 0x0}, -+ {0x4197d, 0x0}, -+ {0x4197e, 0x0}, -+ {0x4197f, 0x400}, -+ {0x41980, 0x807c}, -+ {0x41981, 0x0}, -+ {0x41982, 0x0}, -+ {0x41983, 0x10}, -+ {0x41984, 0x0}, -+ {0x41985, 0x0}, -+ {0x41986, 0x0}, -+ {0x41987, 0x0}, -+ {0x41988, 0x0}, -+ {0x41989, 0x0}, -+ {0x4198a, 0x0}, -+ {0x4198b, 0x0}, -+ {0x4198c, 0x0}, -+ {0x4198d, 0x0}, -+ {0x4198e, 0x1}, -+ {0x4198f, 0x0}, -+ {0x41990, 0x0}, -+ {0x41991, 0x0}, -+ {0x41992, 0x0}, -+ {0x41993, 0x5b00}, -+ {0x41994, 0x0}, -+ {0x41995, 0x0}, -+ {0x41996, 0x0}, -+ {0x41997, 0x2000}, -+ {0x41998, 0x402c}, -+ {0x41999, 0xd00}, -+ {0x4199a, 0x1}, -+ {0x4199b, 0x0}, -+ {0x4199c, 0x5198}, -+ {0x4199d, 0x803}, -+ {0x4199e, 0x0}, -+ {0x4199f, 0x0}, -+ {0x419a0, 0x0}, -+ {0x419a1, 0x0}, -+ {0x419a2, 0x0}, -+ {0x419a3, 0x1b00}, -+ {0x419a4, 0x0}, -+ {0x419a5, 0x0}, -+ {0x419a6, 0x0}, -+ {0x419a7, 0x0}, -+ {0x419a8, 0x5218}, -+ {0x419a9, 0x803}, -+ {0x419aa, 0x0}, -+ {0x419ab, 0x0}, -+ {0x419ac, 0x0}, -+ {0x419ad, 0x0}, -+ {0x419ae, 0x0}, -+ {0x419af, 0x0}, -+ {0x419b0, 0x0}, -+ {0x419b1, 0x0}, -+ {0x419b2, 0x0}, -+ {0x419b3, 0x4b00}, -+ {0x419b4, 0x0}, -+ {0x419b5, 0x0}, -+ {0x419b6, 0x0}, -+ {0x419b7, 0x400}, -+ {0x419b8, 0x407c}, -+ {0x419b9, 0x0}, -+ {0x419ba, 0x0}, -+ {0x419bb, 0x0}, -+ {0x419bc, 0x0}, -+ {0x419bd, 0x0}, -+ {0x419be, 0x0}, -+ {0x419bf, 0x0}, -+ {0x419c0, 0x0}, -+ {0x419c1, 0x0}, -+ {0x419c2, 0x0}, -+ {0x419c3, 0x0}, -+ {0x419c4, 0x0}, -+ {0x419c5, 0x0}, -+ {0x419c6, 0x1}, -+ {0x419c7, 0x0}, -+ {0x419c8, 0x0}, -+ {0x419c9, 0x0}, -+ {0x419ca, 0x0}, -+ {0x419cb, 0x1b00}, -+ {0x419cc, 0x0}, -+ {0x419cd, 0x0}, -+ {0x419ce, 0x0}, -+ {0x419cf, 0x0}, -+ {0x419d0, 0x0}, -+ {0x419d1, 0x0}, -+ {0x419d2, 0x0}, -+ {0x419d3, 0x0}, -+ {0x419d4, 0x802c}, -+ {0x419d5, 0xd00}, -+ {0x419d6, 0x1}, -+ {0x419d7, 0x10}, -+ {0x419d8, 0x9198}, -+ {0x419d9, 0x803}, -+ {0x419da, 0x0}, -+ {0x419db, 0x10}, -+ {0x419dc, 0x0}, -+ {0x419dd, 0x0}, -+ {0x419de, 0x0}, -+ {0x419df, 0x0}, -+ {0x419e0, 0x0}, -+ {0x419e1, 0x0}, -+ {0x419e2, 0x0}, -+ {0x419e3, 0x0}, -+ {0x419e4, 0x0}, -+ {0x419e5, 0x0}, -+ {0x419e6, 0x0}, -+ {0x419e7, 0x0}, -+ {0x419e8, 0x0}, -+ {0x419e9, 0x0}, -+ {0x419ea, 0x0}, -+ {0x419eb, 0x0}, -+ {0x419ec, 0x9218}, -+ {0x419ed, 0x803}, -+ {0x419ee, 0x0}, -+ {0x419ef, 0x10}, -+ {0x419f0, 0x0}, -+ {0x419f1, 0x0}, -+ {0x419f2, 0x0}, -+ {0x419f3, 0x4b00}, -+ {0x419f4, 0x0}, -+ {0x419f5, 0x0}, -+ {0x419f6, 0x0}, -+ {0x419f7, 0x400}, -+ {0x419f8, 0x0}, -+ {0x419f9, 0x0}, -+ {0x419fa, 0x0}, -+ {0x419fb, 0x0}, -+ {0x419fc, 0x807c}, -+ {0x419fd, 0x0}, -+ {0x419fe, 0x0}, -+ {0x419ff, 0x10}, -+ {0x41a00, 0x0}, -+ {0x41a01, 0x0}, -+ {0x41a02, 0x0}, -+ {0x41a03, 0x0}, -+ {0x41a04, 0x0}, -+ {0x41a05, 0x0}, -+ {0x41a06, 0x0}, -+ {0x41a07, 0x0}, -+ {0x41a08, 0x0}, -+ {0x41a09, 0x0}, -+ {0x41a0a, 0x1}, -+ {0x41a0b, 0x0}, -+ {0x41a0c, 0x0}, -+ {0x41a0d, 0x0}, -+ {0x41a0e, 0x0}, -+ {0x41a0f, 0x0}, -+ {0x41a10, 0x0}, -+ {0x41a11, 0x0}, -+ {0x41a12, 0x0}, -+ {0x41a13, 0xb00}, -+ {0x41a14, 0x0}, -+ {0x41a15, 0x0}, -+ {0x41a16, 0x0}, -+ {0x41a17, 0x400}, -+ {0x41a18, 0x0}, -+ {0x41a19, 0x0}, -+ {0x41a1a, 0x0}, -+ {0x41a1b, 0x0}, -+ {0x41a1c, 0x0}, -+ {0x41a1d, 0x0}, -+ {0x41a1e, 0x0}, -+ {0x41a1f, 0x0}, -+ {0x41a20, 0x401c}, -+ {0x41a21, 0xd0}, -+ {0x41a22, 0x1}, -+ {0x41a23, 0x0}, -+ {0x41a24, 0x4060}, -+ {0x41a25, 0x84}, -+ {0x41a26, 0x0}, -+ {0x41a27, 0x0}, -+ {0x41a28, 0x0}, -+ {0x41a29, 0x0}, -+ {0x41a2a, 0x0}, -+ {0x41a2b, 0xb00}, -+ {0x41a2c, 0x0}, -+ {0x41a2d, 0x0}, -+ {0x41a2e, 0x0}, -+ {0x41a2f, 0x800}, -+ {0x41a30, 0x407c}, -+ {0x41a31, 0x0}, -+ {0x41a32, 0x0}, -+ {0x41a33, 0x0}, -+ {0x41a34, 0x0}, -+ {0x41a35, 0x0}, -+ {0x41a36, 0x0}, -+ {0x41a37, 0x0}, -+ {0x41a38, 0x0}, -+ {0x41a39, 0x0}, -+ {0x41a3a, 0x0}, -+ {0x41a3b, 0x0}, -+ {0x41a3c, 0x4000}, -+ {0x41a3d, 0x0}, -+ {0x41a3e, 0x1}, -+ {0x41a3f, 0x0}, -+ {0x41a40, 0x0}, -+ {0x41a41, 0x0}, -+ {0x41a42, 0x0}, -+ {0x41a43, 0x0}, -+ {0x41a44, 0x402c}, -+ {0x41a45, 0xd00}, -+ {0x41a46, 0x1}, -+ {0x41a47, 0x0}, -+ {0x41a48, 0x4020}, -+ {0x41a49, 0x803}, -+ {0x41a4a, 0x0}, -+ {0x41a4b, 0x0}, -+ {0x41a4c, 0x0}, -+ {0x41a4d, 0x0}, -+ {0x41a4e, 0x0}, -+ {0x41a4f, 0x0}, -+ {0x41a50, 0x0}, -+ {0x41a51, 0x0}, -+ {0x41a52, 0x0}, -+ {0x41a53, 0x2b00}, -+ {0x41a54, 0x0}, -+ {0x41a55, 0x0}, -+ {0x41a56, 0x0}, -+ {0x41a57, 0x800}, -+ {0x41a58, 0x0}, -+ {0x41a59, 0x0}, -+ {0x41a5a, 0x0}, -+ {0x41a5b, 0x0}, -+ {0x41a5c, 0x407c}, -+ {0x41a5d, 0x0}, -+ {0x41a5e, 0x0}, -+ {0x41a5f, 0x0}, -+ {0x41a60, 0x0}, -+ {0x41a61, 0x0}, -+ {0x41a62, 0x0}, -+ {0x41a63, 0x0}, -+ {0x41a64, 0x0}, -+ {0x41a65, 0x0}, -+ {0x41a66, 0x0}, -+ {0x41a67, 0x0}, -+ {0x41a68, 0x0}, -+ {0x41a69, 0x0}, -+ {0x41a6a, 0x1}, -+ {0x41a6b, 0x0}, -+ {0x41a6c, 0x0}, -+ {0x41a6d, 0x0}, -+ {0x41a6e, 0x0}, -+ {0x41a6f, 0x0}, -+ {0x41a70, 0x801c}, -+ {0x41a71, 0xd0}, -+ {0x41a72, 0x1}, -+ {0x41a73, 0x10}, -+ {0x41a74, 0x8060}, -+ {0x41a75, 0x84}, -+ {0x41a76, 0x0}, -+ {0x41a77, 0x10}, -+ {0x41a78, 0x0}, -+ {0x41a79, 0x0}, -+ {0x41a7a, 0x0}, -+ {0x41a7b, 0xb00}, -+ {0x41a7c, 0x0}, -+ {0x41a7d, 0x0}, -+ {0x41a7e, 0x0}, -+ {0x41a7f, 0x800}, -+ {0x41a80, 0x807c}, -+ {0x41a81, 0x0}, -+ {0x41a82, 0x0}, -+ {0x41a83, 0x10}, -+ {0x41a84, 0x0}, -+ {0x41a85, 0x0}, -+ {0x41a86, 0x0}, -+ {0x41a87, 0x0}, -+ {0x41a88, 0x0}, -+ {0x41a89, 0x0}, -+ {0x41a8a, 0x0}, -+ {0x41a8b, 0x0}, -+ {0x41a8c, 0x8000}, -+ {0x41a8d, 0x0}, -+ {0x41a8e, 0x1}, -+ {0x41a8f, 0x10}, -+ {0x41a90, 0x0}, -+ {0x41a91, 0x0}, -+ {0x41a92, 0x0}, -+ {0x41a93, 0x0}, -+ {0x41a94, 0x802c}, -+ {0x41a95, 0xd00}, -+ {0x41a96, 0x1}, -+ {0x41a97, 0x10}, -+ {0x41a98, 0x8020}, -+ {0x41a99, 0x803}, -+ {0x41a9a, 0x0}, -+ {0x41a9b, 0x10}, -+ {0x41a9c, 0x0}, -+ {0x41a9d, 0x0}, -+ {0x41a9e, 0x0}, -+ {0x41a9f, 0x0}, -+ {0x41aa0, 0x0}, -+ {0x41aa1, 0x0}, -+ {0x41aa2, 0x0}, -+ {0x41aa3, 0x2b00}, -+ {0x41aa4, 0x0}, -+ {0x41aa5, 0x0}, -+ {0x41aa6, 0x0}, -+ {0x41aa7, 0x800}, -+ {0x41aa8, 0x0}, -+ {0x41aa9, 0x0}, -+ {0x41aaa, 0x0}, -+ {0x41aab, 0x0}, -+ {0x41aac, 0x807c}, -+ {0x41aad, 0x0}, -+ {0x41aae, 0x0}, -+ {0x41aaf, 0x10}, -+ {0x41ab0, 0x0}, -+ {0x41ab1, 0x0}, -+ {0x41ab2, 0x0}, -+ {0x41ab3, 0x0}, -+ {0x41ab4, 0x0}, -+ {0x41ab5, 0x0}, -+ {0x41ab6, 0x0}, -+ {0x41ab7, 0x0}, -+ {0x41ab8, 0x0}, -+ {0x41ab9, 0x0}, -+ {0x41aba, 0x1}, -+ {0x41abb, 0x0}, -+ {0x41abc, 0x0}, -+ {0x41abd, 0x0}, -+ {0x41abe, 0x0}, -+ {0x41abf, 0x0}, -+ {0x41ac0, 0x402c}, -+ {0x41ac1, 0xd00}, -+ {0x41ac2, 0x1}, -+ {0x41ac3, 0x0}, -+ {0x41ac4, 0x4050}, -+ {0x41ac5, 0x803}, -+ {0x41ac6, 0x0}, -+ {0x41ac7, 0x0}, -+ {0x41ac8, 0x0}, -+ {0x41ac9, 0x0}, -+ {0x41aca, 0x0}, -+ {0x41acb, 0x0}, -+ {0x41acc, 0x0}, -+ {0x41acd, 0x0}, -+ {0x41ace, 0x0}, -+ {0x41acf, 0x0}, -+ {0x41ad0, 0x0}, -+ {0x41ad1, 0x0}, -+ {0x41ad2, 0x0}, -+ {0x41ad3, 0x0}, -+ {0x41ad4, 0x0}, -+ {0x41ad5, 0x0}, -+ {0x41ad6, 0x0}, -+ {0x41ad7, 0x0}, -+ {0x41ad8, 0x4050}, -+ {0x41ad9, 0x803}, -+ {0x41ada, 0x0}, -+ {0x41adb, 0x5a00}, -+ {0x41adc, 0x0}, -+ {0x41add, 0x0}, -+ {0x41ade, 0x0}, -+ {0x41adf, 0x0}, -+ {0x41ae0, 0x0}, -+ {0x41ae1, 0x0}, -+ {0x41ae2, 0x0}, -+ {0x41ae3, 0x100}, -+ {0x41ae4, 0x0}, -+ {0x41ae5, 0x0}, -+ {0x41ae6, 0x0}, -+ {0x41ae7, 0x0}, -+ {0x41ae8, 0x4050}, -+ {0x41ae9, 0x803}, -+ {0x41aea, 0x0}, -+ {0x41aeb, 0x0}, -+ {0x41aec, 0x0}, -+ {0x41aed, 0x0}, -+ {0x41aee, 0x0}, -+ {0x41aef, 0x0}, -+ {0x41af0, 0x0}, -+ {0x41af1, 0x0}, -+ {0x41af2, 0x0}, -+ {0x41af3, 0x4b00}, -+ {0x41af4, 0x0}, -+ {0x41af5, 0x0}, -+ {0x41af6, 0x0}, -+ {0x41af7, 0x400}, -+ {0x41af8, 0x407c}, -+ {0x41af9, 0x0}, -+ {0x41afa, 0x0}, -+ {0x41afb, 0x0}, -+ {0x41afc, 0x0}, -+ {0x41afd, 0x0}, -+ {0x41afe, 0x0}, -+ {0x41aff, 0x0}, -+ {0x41b00, 0x0}, -+ {0x41b01, 0x0}, -+ {0x41b02, 0x0}, -+ {0x41b03, 0x3b00}, -+ {0x41b04, 0x0}, -+ {0x41b05, 0x0}, -+ {0x41b06, 0x0}, -+ {0x41b07, 0x0}, -+ {0x41b08, 0x0}, -+ {0x41b09, 0x0}, -+ {0x41b0a, 0x0}, -+ {0x41b0b, 0x0}, -+ {0x41b0c, 0x0}, -+ {0x41b0d, 0x0}, -+ {0x41b0e, 0x1}, -+ {0x41b0f, 0x0}, -+ {0x41b10, 0x5758}, -+ {0x41b11, 0x0}, -+ {0x41b12, 0x0}, -+ {0x41b13, 0x0}, -+ {0x41b14, 0x4208}, -+ {0x41b15, 0x0}, -+ {0x41b16, 0x0}, -+ {0x41b17, 0x0}, -+ {0x41b18, 0x0}, -+ {0x41b19, 0x0}, -+ {0x41b1a, 0x0}, -+ {0x41b1b, 0x4b00}, -+ {0x41b1c, 0x0}, -+ {0x41b1d, 0x0}, -+ {0x41b1e, 0x0}, -+ {0x41b1f, 0x0}, -+ {0x41b20, 0x0}, -+ {0x41b21, 0x0}, -+ {0x41b22, 0x0}, -+ {0x41b23, 0x0}, -+ {0x41b24, 0x401c}, -+ {0x41b25, 0xd0}, -+ {0x41b26, 0x1}, -+ {0x41b27, 0x0}, -+ {0x41b28, 0x4060}, -+ {0x41b29, 0x84}, -+ {0x41b2a, 0x0}, -+ {0x41b2b, 0x0}, -+ {0x41b2c, 0x0}, -+ {0x41b2d, 0x0}, -+ {0x41b2e, 0x0}, -+ {0x41b2f, 0x0}, -+ {0x41b30, 0x0}, -+ {0x41b31, 0x0}, -+ {0x41b32, 0x0}, -+ {0x41b33, 0x7b00}, -+ {0x41b34, 0x0}, -+ {0x41b35, 0x0}, -+ {0x41b36, 0x0}, -+ {0x41b37, 0x0}, -+ {0x41b38, 0x407c}, -+ {0x41b39, 0x0}, -+ {0x41b3a, 0x0}, -+ {0x41b3b, 0x0}, -+ {0x41b3c, 0x0}, -+ {0x41b3d, 0x0}, -+ {0x41b3e, 0x0}, -+ {0x41b3f, 0x0}, -+ {0x41b40, 0x0}, -+ {0x41b41, 0x0}, -+ {0x41b42, 0x0}, -+ {0x41b43, 0x0}, -+ {0x41b44, 0x4000}, -+ {0x41b45, 0x0}, -+ {0x41b46, 0x1}, -+ {0x41b47, 0x0}, -+ {0x41b48, 0x0}, -+ {0x41b49, 0x0}, -+ {0x41b4a, 0x0}, -+ {0x41b4b, 0x0}, -+ {0x41b4c, 0x402c}, -+ {0x41b4d, 0xd00}, -+ {0x41b4e, 0x1}, -+ {0x41b4f, 0x0}, -+ {0x41b50, 0x4020}, -+ {0x41b51, 0x803}, -+ {0x41b52, 0x0}, -+ {0x41b53, 0x0}, -+ {0x41b54, 0x0}, -+ {0x41b55, 0x0}, -+ {0x41b56, 0x0}, -+ {0x41b57, 0x0}, -+ {0x41b58, 0x0}, -+ {0x41b59, 0x0}, -+ {0x41b5a, 0x0}, -+ {0x41b5b, 0x2b00}, -+ {0x41b5c, 0x0}, -+ {0x41b5d, 0x0}, -+ {0x41b5e, 0x0}, -+ {0x41b5f, 0x800}, -+ {0x41b60, 0x0}, -+ {0x41b61, 0x0}, -+ {0x41b62, 0x0}, -+ {0x41b63, 0x0}, -+ {0x41b64, 0x407c}, -+ {0x41b65, 0x0}, -+ {0x41b66, 0x0}, -+ {0x41b67, 0x0}, -+ {0x41b68, 0x0}, -+ {0x41b69, 0x0}, -+ {0x41b6a, 0x0}, -+ {0x41b6b, 0x0}, -+ {0x41b6c, 0x0}, -+ {0x41b6d, 0x0}, -+ {0x41b6e, 0x0}, -+ {0x41b6f, 0x0}, -+ {0x41b70, 0x4000}, -+ {0x41b71, 0x0}, -+ {0x41b72, 0x1}, -+ {0x41b73, 0x0}, -+ {0x41b74, 0x0}, -+ {0x41b75, 0x0}, -+ {0x41b76, 0x0}, -+ {0x41b77, 0x0}, -+ {0x41b78, 0x5758}, -+ {0x41b79, 0x0}, -+ {0x41b7a, 0x0}, -+ {0x41b7b, 0x0}, -+ {0x41b7c, 0x4008}, -+ {0x41b7d, 0x0}, -+ {0x41b7e, 0x0}, -+ {0x41b7f, 0x0}, -+ {0x41b80, 0x0}, -+ {0x41b81, 0x0}, -+ {0x41b82, 0x0}, -+ {0x41b83, 0x0}, -+ {0x41b84, 0x0}, -+ {0x41b85, 0x0}, -+ {0x41b86, 0x0}, -+ {0x41b87, 0x0}, -+ {0x41b88, 0x802c}, -+ {0x41b89, 0xd00}, -+ {0x41b8a, 0x1}, -+ {0x41b8b, 0x10}, -+ {0x41b8c, 0x8050}, -+ {0x41b8d, 0x803}, -+ {0x41b8e, 0x0}, -+ {0x41b8f, 0x10}, -+ {0x41b90, 0x0}, -+ {0x41b91, 0x0}, -+ {0x41b92, 0x0}, -+ {0x41b93, 0x0}, -+ {0x41b94, 0x0}, -+ {0x41b95, 0x0}, -+ {0x41b96, 0x0}, -+ {0x41b97, 0x0}, -+ {0x41b98, 0x0}, -+ {0x41b99, 0x0}, -+ {0x41b9a, 0x0}, -+ {0x41b9b, 0x0}, -+ {0x41b9c, 0x0}, -+ {0x41b9d, 0x0}, -+ {0x41b9e, 0x0}, -+ {0x41b9f, 0x0}, -+ {0x41ba0, 0x8050}, -+ {0x41ba1, 0x803}, -+ {0x41ba2, 0x0}, -+ {0x41ba3, 0x5a10}, -+ {0x41ba4, 0x0}, -+ {0x41ba5, 0x0}, -+ {0x41ba6, 0x0}, -+ {0x41ba7, 0x0}, -+ {0x41ba8, 0x0}, -+ {0x41ba9, 0x0}, -+ {0x41baa, 0x0}, -+ {0x41bab, 0x100}, -+ {0x41bac, 0x0}, -+ {0x41bad, 0x0}, -+ {0x41bae, 0x0}, -+ {0x41baf, 0x0}, -+ {0x41bb0, 0x8050}, -+ {0x41bb1, 0x803}, -+ {0x41bb2, 0x0}, -+ {0x41bb3, 0x10}, -+ {0x41bb4, 0x0}, -+ {0x41bb5, 0x0}, -+ {0x41bb6, 0x0}, -+ {0x41bb7, 0x0}, -+ {0x41bb8, 0x0}, -+ {0x41bb9, 0x0}, -+ {0x41bba, 0x0}, -+ {0x41bbb, 0x4b00}, -+ {0x41bbc, 0x0}, -+ {0x41bbd, 0x0}, -+ {0x41bbe, 0x0}, -+ {0x41bbf, 0x400}, -+ {0x41bc0, 0x807c}, -+ {0x41bc1, 0x0}, -+ {0x41bc2, 0x0}, -+ {0x41bc3, 0x10}, -+ {0x41bc4, 0x0}, -+ {0x41bc5, 0x0}, -+ {0x41bc6, 0x0}, -+ {0x41bc7, 0x0}, -+ {0x41bc8, 0x0}, -+ {0x41bc9, 0x0}, -+ {0x41bca, 0x0}, -+ {0x41bcb, 0x3b00}, -+ {0x41bcc, 0x0}, -+ {0x41bcd, 0x0}, -+ {0x41bce, 0x0}, -+ {0x41bcf, 0x0}, -+ {0x41bd0, 0x0}, -+ {0x41bd1, 0x0}, -+ {0x41bd2, 0x0}, -+ {0x41bd3, 0x0}, -+ {0x41bd4, 0x0}, -+ {0x41bd5, 0x0}, -+ {0x41bd6, 0x1}, -+ {0x41bd7, 0x0}, -+ {0x41bd8, 0x9758}, -+ {0x41bd9, 0x0}, -+ {0x41bda, 0x0}, -+ {0x41bdb, 0x10}, -+ {0x41bdc, 0x8208}, -+ {0x41bdd, 0x0}, -+ {0x41bde, 0x0}, -+ {0x41bdf, 0x10}, -+ {0x41be0, 0x0}, -+ {0x41be1, 0x0}, -+ {0x41be2, 0x0}, -+ {0x41be3, 0x4b00}, -+ {0x41be4, 0x0}, -+ {0x41be5, 0x0}, -+ {0x41be6, 0x0}, -+ {0x41be7, 0x0}, -+ {0x41be8, 0x0}, -+ {0x41be9, 0x0}, -+ {0x41bea, 0x0}, -+ {0x41beb, 0x0}, -+ {0x41bec, 0x801c}, -+ {0x41bed, 0xd0}, -+ {0x41bee, 0x1}, -+ {0x41bef, 0x10}, -+ {0x41bf0, 0x8060}, -+ {0x41bf1, 0x84}, -+ {0x41bf2, 0x0}, -+ {0x41bf3, 0x10}, -+ {0x41bf4, 0x0}, -+ {0x41bf5, 0x0}, -+ {0x41bf6, 0x0}, -+ {0x41bf7, 0x0}, -+ {0x41bf8, 0x0}, -+ {0x41bf9, 0x0}, -+ {0x41bfa, 0x0}, -+ {0x41bfb, 0x7b00}, -+ {0x41bfc, 0x0}, -+ {0x41bfd, 0x0}, -+ {0x41bfe, 0x0}, -+ {0x41bff, 0x0}, -+ {0x41c00, 0x807c}, -+ {0x41c01, 0x0}, -+ {0x41c02, 0x0}, -+ {0x41c03, 0x10}, -+ {0x41c04, 0x0}, -+ {0x41c05, 0x0}, -+ {0x41c06, 0x0}, -+ {0x41c07, 0x0}, -+ {0x41c08, 0x0}, -+ {0x41c09, 0x0}, -+ {0x41c0a, 0x0}, -+ {0x41c0b, 0x0}, -+ {0x41c0c, 0x8000}, -+ {0x41c0d, 0x0}, -+ {0x41c0e, 0x1}, -+ {0x41c0f, 0x10}, -+ {0x41c10, 0x0}, -+ {0x41c11, 0x0}, -+ {0x41c12, 0x0}, -+ {0x41c13, 0x0}, -+ {0x41c14, 0x802c}, -+ {0x41c15, 0xd00}, -+ {0x41c16, 0x1}, -+ {0x41c17, 0x10}, -+ {0x41c18, 0x8020}, -+ {0x41c19, 0x803}, -+ {0x41c1a, 0x0}, -+ {0x41c1b, 0x10}, -+ {0x41c1c, 0x0}, -+ {0x41c1d, 0x0}, -+ {0x41c1e, 0x0}, -+ {0x41c1f, 0x0}, -+ {0x41c20, 0x0}, -+ {0x41c21, 0x0}, -+ {0x41c22, 0x0}, -+ {0x41c23, 0x2b00}, -+ {0x41c24, 0x0}, -+ {0x41c25, 0x0}, -+ {0x41c26, 0x0}, -+ {0x41c27, 0x800}, -+ {0x41c28, 0x0}, -+ {0x41c29, 0x0}, -+ {0x41c2a, 0x0}, -+ {0x41c2b, 0x0}, -+ {0x41c2c, 0x807c}, -+ {0x41c2d, 0x0}, -+ {0x41c2e, 0x0}, -+ {0x41c2f, 0x10}, -+ {0x41c30, 0x0}, -+ {0x41c31, 0x0}, -+ {0x41c32, 0x0}, -+ {0x41c33, 0x0}, -+ {0x41c34, 0x0}, -+ {0x41c35, 0x0}, -+ {0x41c36, 0x0}, -+ {0x41c37, 0x0}, -+ {0x41c38, 0x8000}, -+ {0x41c39, 0x0}, -+ {0x41c3a, 0x1}, -+ {0x41c3b, 0x10}, -+ {0x41c3c, 0x0}, -+ {0x41c3d, 0x0}, -+ {0x41c3e, 0x0}, -+ {0x41c3f, 0x0}, -+ {0x41c40, 0x9758}, -+ {0x41c41, 0x0}, -+ {0x41c42, 0x0}, -+ {0x41c43, 0x10}, -+ {0x41c44, 0x8008}, -+ {0x41c45, 0x0}, -+ {0x41c46, 0x0}, -+ {0x41c47, 0x10}, -+ {0x41c48, 0x0}, -+ {0x41c49, 0x0}, -+ {0x41c4a, 0x0}, -+ {0x41c4b, 0x0}, -+ {0x41c4c, 0x0}, -+ {0x41c4d, 0x0}, -+ {0x41c4e, 0x0}, -+ {0x41c4f, 0x0}, -+ {0x41c50, 0xc068}, -+ {0x41c51, 0x0}, -+ {0x41c52, 0x0}, -+ {0x41c53, 0x10}, -+ {0x41c54, 0x0}, -+ {0x41c55, 0x0}, -+ {0x41c56, 0x0}, -+ {0x41c57, 0x0}, -+ {0x9002e, 0x10}, -+ {0x9002f, 0x400}, -+ {0x90030, 0x80e}, -+ {0x90031, 0xb}, -+ {0x90032, 0x480}, -+ {0x90033, 0x809}, -+ {0x90034, 0x9}, -+ {0x90035, 0x308}, -+ {0x90036, 0xc09}, -+ {0x90037, 0x28}, -+ {0x90038, 0x8160}, -+ {0x90039, 0x87c}, -+ {0x9003a, 0x98}, -+ {0x9003b, 0x820}, -+ {0x9003c, 0xc7e}, -+ {0x9003d, 0x2}, -+ {0x9003e, 0x1}, -+ {0x9003f, 0x78}, -+ {0x90040, 0xa}, -+ {0x90041, 0x370}, -+ {0x90042, 0x839}, -+ {0x90043, 0x18}, -+ {0x90044, 0x8160}, -+ {0x90045, 0x83c}, -+ {0x90046, 0x9}, -+ {0x90047, 0x150}, -+ {0x90048, 0x839}, -+ {0x90049, 0x70}, -+ {0x9004a, 0x392}, -+ {0x9004b, 0x39}, -+ {0x9004c, 0x78}, -+ {0x9004d, 0x39a}, -+ {0x9004e, 0x39}, -+ {0x9004f, 0xe09}, -+ {0x90050, 0x100}, -+ {0x90051, 0x839}, -+ {0x90052, 0x2}, -+ {0x90053, 0x1}, -+ {0x90054, 0x38}, -+ {0x90055, 0x0}, -+ {0x90056, 0x100}, -+ {0x90057, 0x839}, -+ {0x90058, 0x0}, -+ {0x90059, 0x398}, -+ {0x9005a, 0x839}, -+ {0x9005b, 0xe19}, -+ {0x9005c, 0x100}, -+ {0x9005d, 0x839}, -+ {0x9005e, 0x2}, -+ {0x9005f, 0x1}, -+ {0x90060, 0x38}, -+ {0x90061, 0x0}, -+ {0x90062, 0x100}, -+ {0x90063, 0x839}, -+ {0x90064, 0x0}, -+ {0x90065, 0x390}, -+ {0x90066, 0x839}, -+ {0x90067, 0x78}, -+ {0x90068, 0x39a}, -+ {0x90069, 0x39}, -+ {0x9006a, 0xe29}, -+ {0x9006b, 0x100}, -+ {0x9006c, 0x839}, -+ {0x9006d, 0x2}, -+ {0x9006e, 0x1}, -+ {0x9006f, 0x38}, -+ {0x90070, 0x0}, -+ {0x90071, 0x100}, -+ {0x90072, 0x839}, -+ {0x90073, 0x70}, -+ {0x90074, 0x392}, -+ {0x90075, 0x39}, -+ {0x90076, 0x0}, -+ {0x90077, 0xf0}, -+ {0x90078, 0x909}, -+ {0x90079, 0x18}, -+ {0x9007a, 0x8160}, -+ {0x9007b, 0x8bc}, -+ {0x9007c, 0x8}, -+ {0x9007d, 0x13a}, -+ {0x9007e, 0xb9}, -+ {0x9007f, 0x24b}, -+ {0x90080, 0x100}, -+ {0x90081, 0x8b9}, -+ {0x90082, 0x2}, -+ {0x90083, 0x1}, -+ {0x90084, 0xb8}, -+ {0x90085, 0x0}, -+ {0x90086, 0x100}, -+ {0x90087, 0x8b9}, -+ {0x90088, 0x20}, -+ {0x90089, 0x4}, -+ {0x9008a, 0xb8}, -+ {0x9008b, 0x20}, -+ {0x9008c, 0x4}, -+ {0x9008d, 0xb8}, -+ {0x9008e, 0x5}, -+ {0x9008f, 0x0}, -+ {0x90090, 0xb8}, -+ {0x90091, 0x479}, -+ {0x90092, 0xc7f8}, -+ {0x90093, 0x8bc}, -+ {0x90094, 0x0}, -+ {0x90095, 0x0}, -+ {0x90096, 0xb8}, -+ {0x90097, 0x0}, -+ {0x90098, 0xa8}, -+ {0x90099, 0x8b9}, -+ {0x9009a, 0x9}, -+ {0x9009b, 0xc9c0}, -+ {0x9009c, 0xcbc}, -+ {0x9009d, 0x0}, -+ {0x9009e, 0x0}, -+ {0x9009f, 0xb8}, -+ {0x900a0, 0x25b}, -+ {0x900a1, 0x100}, -+ {0x900a2, 0xcb9}, -+ {0x900a3, 0x20}, -+ {0x900a4, 0x4}, -+ {0x900a5, 0xb8}, -+ {0x900a6, 0x20}, -+ {0x900a7, 0x4}, -+ {0x900a8, 0xb8}, -+ {0x900a9, 0x20}, -+ {0x900aa, 0x4}, -+ {0x900ab, 0xb8}, -+ {0x900ac, 0x20}, -+ {0x900ad, 0x4}, -+ {0x900ae, 0xb8}, -+ {0x900af, 0x10}, -+ {0x900b0, 0x400}, -+ {0x900b1, 0x89e}, -+ {0x900b2, 0x8}, -+ {0x900b3, 0x370}, -+ {0x900b4, 0x839}, -+ {0x900b5, 0x0}, -+ {0x900b6, 0xf0}, -+ {0x900b7, 0x909}, -+ {0x900b8, 0x33b}, -+ {0x900b9, 0x100}, -+ {0x900ba, 0x8b9}, -+ {0x900bb, 0x0}, -+ {0x900bc, 0x100}, -+ {0x900bd, 0x8b9}, -+ {0x900be, 0x23b}, -+ {0x900bf, 0x100}, -+ {0x900c0, 0xc99}, -+ {0x900c1, 0x2}, -+ {0x900c2, 0x150}, -+ {0x900c3, 0x839}, -+ {0x900c4, 0x1800}, -+ {0x900c5, 0x8660}, -+ {0x900c6, 0x839}, -+ {0x900c7, 0x0}, -+ {0x900c8, 0x2a0}, -+ {0x900c9, 0x809}, -+ {0x900ca, 0x8}, -+ {0x900cb, 0x1880}, -+ {0x900cc, 0x839}, -+ {0x900cd, 0x0}, -+ {0x900ce, 0x82b0}, -+ {0x900cf, 0x838}, -+ {0x900d0, 0x18}, -+ {0x900d1, 0xe0}, -+ {0x900d2, 0x809}, -+ {0x900d3, 0x0}, -+ {0x900d4, 0xe0}, -+ {0x900d5, 0x869}, -+ {0x900d6, 0xf}, -+ {0x900d7, 0x7c0}, -+ {0x900d8, 0x839}, -+ {0x900d9, 0xa}, -+ {0x900da, 0x510}, -+ {0x900db, 0x839}, -+ {0x900dc, 0xa}, -+ {0x900dd, 0x700}, -+ {0x900de, 0x849}, -+ {0x900df, 0xa}, -+ {0x900e0, 0x700}, -+ {0x900e1, 0x859}, -+ {0x900e2, 0xa}, -+ {0x900e3, 0x708}, -+ {0x900e4, 0x859}, -+ {0x900e5, 0x2}, -+ {0x900e6, 0x708}, -+ {0x900e7, 0x849}, -+ {0x900e8, 0xff8}, -+ {0x900e9, 0x8410}, -+ {0x900ea, 0x839}, -+ {0x900eb, 0x7ff8}, -+ {0x900ec, 0x8498}, -+ {0x900ed, 0x838}, -+ {0x900ee, 0x10}, -+ {0x900ef, 0x8160}, -+ {0x900f0, 0x83c}, -+ {0x900f1, 0x0}, -+ {0x900f2, 0x7c8}, -+ {0x900f3, 0x809}, -+ {0x900f4, 0x0}, -+ {0x900f5, 0x1}, -+ {0x900f6, 0x8}, -+ {0x900f7, 0x0}, -+ {0x900f8, 0x45a}, -+ {0x900f9, 0x89}, -+ {0x900fa, 0x0}, -+ {0x900fb, 0x8018}, -+ {0x900fc, 0x808}, -+ {0x900fd, 0x0}, -+ {0x900fe, 0x8020}, -+ {0x900ff, 0x808}, -+ {0x90100, 0x479}, -+ {0x90101, 0xc7f8}, -+ {0x90102, 0x80c}, -+ {0x90103, 0x0}, -+ {0x90104, 0x0}, -+ {0x90105, 0x8}, -+ {0x90106, 0x0}, -+ {0x90107, 0x8018}, -+ {0x90108, 0x808}, -+ {0x90109, 0x0}, -+ {0x9010a, 0x8020}, -+ {0x9010b, 0x808}, -+ {0x9010c, 0x9}, -+ {0x9010d, 0xc9c0}, -+ {0x9010e, 0xc0c}, -+ {0x9010f, 0x0}, -+ {0x90110, 0xa8}, -+ {0x90111, 0x8c9}, -+ {0x90112, 0x29}, -+ {0x90113, 0x8160}, -+ {0x90114, 0x87c}, -+ {0x90115, 0xb8}, -+ {0x90116, 0x820}, -+ {0x90117, 0xc7e}, -+ {0x90118, 0x1}, -+ {0x90119, 0x0}, -+ {0x9011a, 0x78}, -+ {0x9011b, 0x0}, -+ {0x9011c, 0x1}, -+ {0x9011d, 0x78}, -+ {0x9011e, 0xd8}, -+ {0x9011f, 0x820}, -+ {0x90120, 0xc7e}, -+ {0x90121, 0x1}, -+ {0x90122, 0x0}, -+ {0x90123, 0x78}, -+ {0x90124, 0x0}, -+ {0x90125, 0x1}, -+ {0x90126, 0x78}, -+ {0x90127, 0xf8}, -+ {0x90128, 0x820}, -+ {0x90129, 0xc7e}, -+ {0x9012a, 0x1}, -+ {0x9012b, 0x0}, -+ {0x9012c, 0x78}, -+ {0x9012d, 0x0}, -+ {0x9012e, 0x1}, -+ {0x9012f, 0x78}, -+ {0x90130, 0x0}, -+ {0x90131, 0x700}, -+ {0x90132, 0x849}, -+ {0x90133, 0x0}, -+ {0x90134, 0x618}, -+ {0x90135, 0x809}, -+ {0x90136, 0x3ff8}, -+ {0x90137, 0x84b8}, -+ {0x90138, 0x808}, -+ {0x90139, 0x0}, -+ {0x9013a, 0x0}, -+ {0x9013b, 0x8}, -+ {0x9013c, 0x8}, -+ {0x9013d, 0xc870}, -+ {0x9013e, 0xc0c}, -+ {0x9013f, 0x18}, -+ {0x90140, 0x710}, -+ {0x90141, 0x849}, -+ {0x90142, 0x0}, -+ {0x90143, 0x4}, -+ {0x90144, 0x48}, -+ {0x90145, 0x0}, -+ {0x90146, 0x4}, -+ {0x90147, 0x48}, -+ {0x90148, 0x10}, -+ {0x90149, 0x710}, -+ {0x9014a, 0x849}, -+ {0x9014b, 0x0}, -+ {0x9014c, 0x4}, -+ {0x9014d, 0x48}, -+ {0x9014e, 0x0}, -+ {0x9014f, 0x710}, -+ {0x90150, 0x849}, -+ {0x90151, 0x0}, -+ {0x90152, 0x4}, -+ {0x90153, 0x48}, -+ {0x90154, 0x0}, -+ {0x90155, 0x4}, -+ {0x90156, 0x18}, -+ {0x90157, 0x0}, -+ {0x90158, 0x4}, -+ {0x90159, 0x18}, -+ {0x9015a, 0x0}, -+ {0x9015b, 0x4}, -+ {0x9015c, 0x18}, -+ {0x9015d, 0x0}, -+ {0x9015e, 0x8410}, -+ {0x9015f, 0x809}, -+ {0x90160, 0x0}, -+ {0x90161, 0x8498}, -+ {0x90162, 0x808}, -+ {0x90163, 0x5}, -+ {0x90164, 0x510}, -+ {0x90165, 0x809}, -+ {0x90166, 0x198}, -+ {0x90167, 0x1000}, -+ {0x90168, 0x809}, -+ {0x90169, 0x9}, -+ {0x9016a, 0x3c0}, -+ {0x9016b, 0x809}, -+ {0x9016c, 0x10}, -+ {0x9016d, 0x510}, -+ {0x9016e, 0x809}, -+ {0x9016f, 0x0}, -+ {0x90170, 0x3c0}, -+ {0x90171, 0x809}, -+ {0x90172, 0x18}, -+ {0x90173, 0x4}, -+ {0x90174, 0x8}, -+ {0x90175, 0x2}, -+ {0x90176, 0x510}, -+ {0x90177, 0x809}, -+ {0x90178, 0x2}, -+ {0x90179, 0x1000}, -+ {0x9017a, 0x809}, -+ {0x9017b, 0x68}, -+ {0x9017c, 0x801a}, -+ {0x9017d, 0x8}, -+ {0x9017e, 0x68}, -+ {0x9017f, 0x8022}, -+ {0x90180, 0x8}, -+ {0x90181, 0x479}, -+ {0x90182, 0xc7f8}, -+ {0x90183, 0x80c}, -+ {0x90184, 0x0}, -+ {0x90185, 0x0}, -+ {0x90186, 0x8}, -+ {0x90187, 0x68}, -+ {0x90188, 0x801a}, -+ {0x90189, 0x8}, -+ {0x9018a, 0x68}, -+ {0x9018b, 0x8022}, -+ {0x9018c, 0x8}, -+ {0x9018d, 0x9}, -+ {0x9018e, 0xc9c0}, -+ {0x9018f, 0xc0c}, -+ {0x90190, 0x0}, -+ {0x90191, 0xc870}, -+ {0x90192, 0xc0c}, -+ {0x90193, 0x0}, -+ {0x90194, 0x2a0}, -+ {0x90195, 0x809}, -+ {0x90196, 0x10}, -+ {0x90197, 0x8160}, -+ {0x90198, 0x89c}, -+ {0x90199, 0x2}, -+ {0x9019a, 0x7c8}, -+ {0x9019b, 0x809}, -+ {0x9019c, 0x0}, -+ {0x9019d, 0x1}, -+ {0x9019e, 0x8}, -+ {0x9019f, 0x40}, -+ {0x901a0, 0x1932}, -+ {0x901a1, 0x129}, -+ {0x901a2, 0xa}, -+ {0x901a3, 0xc140}, -+ {0x901a4, 0x80c}, -+ {0x901a5, 0x98}, -+ {0x901a6, 0x193a}, -+ {0x901a7, 0x129}, -+ {0x901a8, 0x90}, -+ {0x901a9, 0x1932}, -+ {0x901aa, 0x329}, -+ {0x901ab, 0x90}, -+ {0x901ac, 0x193a}, -+ {0x901ad, 0x329}, -+ {0x901ae, 0x88}, -+ {0x901af, 0x1882}, -+ {0x901b0, 0x9}, -+ {0x901b1, 0x0}, -+ {0x901b2, 0xc140}, -+ {0x901b3, 0x80c}, -+ {0x901b4, 0x10}, -+ {0x901b5, 0x400}, -+ {0x901b6, 0x80e}, -+ {0x901b7, 0xb}, -+ {0x901b8, 0x370}, -+ {0x901b9, 0x809}, -+ {0x901ba, 0x23b}, -+ {0x901bb, 0x100}, -+ {0x901bc, 0xcf9}, -+ {0x901bd, 0x0}, -+ {0x901be, 0x2a0}, -+ {0x901bf, 0x809}, -+ {0x901c0, 0x7800}, -+ {0x901c1, 0x8660}, -+ {0x901c2, 0x809}, -+ {0x901c3, 0xd}, -+ {0x901c4, 0x7c0}, -+ {0x901c5, 0x809}, -+ {0x901c6, 0x0}, -+ {0x901c7, 0x82b0}, -+ {0x901c8, 0x818}, -+ {0x901c9, 0x0}, -+ {0x901ca, 0x82b0}, -+ {0x901cb, 0x868}, -+ {0x901cc, 0x479}, -+ {0x901cd, 0xc7f8}, -+ {0x901ce, 0x91c}, -+ {0x901cf, 0x0}, -+ {0x901d0, 0x0}, -+ {0x901d1, 0x118}, -+ {0x901d2, 0x38}, -+ {0x901d3, 0x80a2}, -+ {0x901d4, 0x118}, -+ {0x901d5, 0x9}, -+ {0x901d6, 0xc9c0}, -+ {0x901d7, 0xd1c}, -+ {0x901d8, 0x0}, -+ {0x901d9, 0x0}, -+ {0x901da, 0x118}, -+ {0x901db, 0x8}, -+ {0x901dc, 0x508}, -+ {0x901dd, 0x809}, -+ {0x901de, 0x5}, -+ {0x901df, 0x7c0}, -+ {0x901e0, 0x809}, -+ {0x901e1, 0x8}, -+ {0x901e2, 0x82b0}, -+ {0x901e3, 0x868}, -+ {0x901e4, 0x8}, -+ {0x901e5, 0x82b0}, -+ {0x901e6, 0x818}, -+ {0x901e7, 0x8}, -+ {0x901e8, 0x82b0}, -+ {0x901e9, 0x888}, -+ {0x901ea, 0x10}, -+ {0x901eb, 0x510}, -+ {0x901ec, 0x809}, -+ {0x901ed, 0x0}, -+ {0x901ee, 0xa8}, -+ {0x901ef, 0x8c9}, -+ {0x901f0, 0x8}, -+ {0x901f1, 0x1900}, -+ {0x901f2, 0xc09}, -+ {0x901f3, 0x0}, -+ {0x901f4, 0x508}, -+ {0x901f5, 0x809}, -+ {0x901f6, 0x2}, -+ {0x901f7, 0x7c8}, -+ {0x901f8, 0x829}, -+ {0x901f9, 0xa}, -+ {0x901fa, 0x3c8}, -+ {0x901fb, 0xc29}, -+ {0x901fc, 0x199}, -+ {0x901fd, 0x3d0}, -+ {0x901fe, 0xc19}, -+ {0x901ff, 0x3}, -+ {0x90200, 0x0}, -+ {0x90201, 0x18}, -+ {0x90202, 0x38}, -+ {0x90203, 0x4}, -+ {0x90204, 0x18}, -+ {0x90205, 0x199}, -+ {0x90206, 0x3d0}, -+ {0x90207, 0xc09}, -+ {0x90208, 0x0}, -+ {0x90209, 0x0}, -+ {0x9020a, 0x8}, -+ {0x9020b, 0x9}, -+ {0x9020c, 0x150}, -+ {0x9020d, 0x809}, -+ {0x9020e, 0x9}, -+ {0x9020f, 0xc800}, -+ {0x90210, 0xc0c}, -+ {0x90211, 0x18}, -+ {0x90212, 0x8160}, -+ {0x90213, 0x8cc}, -+ {0x90214, 0x8}, -+ {0x90215, 0x13a}, -+ {0x90216, 0xc9}, -+ {0x90217, 0x24b}, -+ {0x90218, 0x100}, -+ {0x90219, 0x8c9}, -+ {0x9021a, 0x2}, -+ {0x9021b, 0x1}, -+ {0x9021c, 0xc8}, -+ {0x9021d, 0x0}, -+ {0x9021e, 0x100}, -+ {0x9021f, 0x8c9}, -+ {0x90220, 0x20}, -+ {0x90221, 0x4}, -+ {0x90222, 0xc8}, -+ {0x90223, 0x20}, -+ {0x90224, 0x4}, -+ {0x90225, 0xc8}, -+ {0x90226, 0x5}, -+ {0x90227, 0x0}, -+ {0x90228, 0xc8}, -+ {0x90229, 0x479}, -+ {0x9022a, 0xc7f8}, -+ {0x9022b, 0x8cc}, -+ {0x9022c, 0x0}, -+ {0x9022d, 0x0}, -+ {0x9022e, 0xc8}, -+ {0x9022f, 0x30}, -+ {0x90230, 0xaa}, -+ {0x90231, 0xc9}, -+ {0x90232, 0x9}, -+ {0x90233, 0xc9c0}, -+ {0x90234, 0xccc}, -+ {0x90235, 0x0}, -+ {0x90236, 0x0}, -+ {0x90237, 0xc8}, -+ {0x90238, 0x479}, -+ {0x90239, 0xc7f8}, -+ {0x9023a, 0x8bc}, -+ {0x9023b, 0x0}, -+ {0x9023c, 0x0}, -+ {0x9023d, 0xb8}, -+ {0x9023e, 0x30}, -+ {0x9023f, 0xaa}, -+ {0x90240, 0xb9}, -+ {0x90241, 0x9}, -+ {0x90242, 0xc9c0}, -+ {0x90243, 0xcbc}, -+ {0x90244, 0x0}, -+ {0x90245, 0x0}, -+ {0x90246, 0xb8}, -+ {0x90247, 0x25b}, -+ {0x90248, 0x100}, -+ {0x90249, 0xcc9}, -+ {0x9024a, 0x20}, -+ {0x9024b, 0x4}, -+ {0x9024c, 0xc8}, -+ {0x9024d, 0x20}, -+ {0x9024e, 0x4}, -+ {0x9024f, 0xc8}, -+ {0x90250, 0x20}, -+ {0x90251, 0x4}, -+ {0x90252, 0xa8}, -+ {0x90253, 0x4}, -+ {0x90254, 0x0}, -+ {0x90255, 0xc8}, -+ {0x90256, 0x9}, -+ {0x90257, 0xc800}, -+ {0x90258, 0xc6c}, -+ {0x90259, 0x26f}, -+ {0x9025a, 0x100}, -+ {0x9025b, 0xc19}, -+ {0x9025c, 0x8}, -+ {0x9025d, 0x4}, -+ {0x9025e, 0x18}, -+ {0x9025f, 0x27f}, -+ {0x90260, 0x100}, -+ {0x90261, 0xc19}, -+ {0x90262, 0x479}, -+ {0x90263, 0xc7f8}, -+ {0x90264, 0x80c}, -+ {0x90265, 0x0}, -+ {0x90266, 0x0}, -+ {0x90267, 0x8}, -+ {0x90268, 0x58}, -+ {0x90269, 0x8a}, -+ {0x9026a, 0x9}, -+ {0x9026b, 0x9}, -+ {0x9026c, 0xc9c0}, -+ {0x9026d, 0xc0c}, -+ {0x9026e, 0x0}, -+ {0x9026f, 0x0}, -+ {0x90270, 0x8}, -+ {0x90271, 0x18}, -+ {0x90272, 0x8160}, -+ {0x90273, 0x86c}, -+ {0x90274, 0x1008}, -+ {0x90275, 0x853b}, -+ {0x90276, 0x868}, -+ {0x90277, 0xc00}, -+ {0x90278, 0x8588}, -+ {0x90279, 0x868}, -+ {0x9027a, 0x8}, -+ {0x9027b, 0x85a8}, -+ {0x9027c, 0x868}, -+ {0x9027d, 0x8}, -+ {0x9027e, 0x85c8}, -+ {0x9027f, 0x868}, -+ {0x90280, 0x0}, -+ {0x90281, 0x8050}, -+ {0x90282, 0x868}, -+ {0x90283, 0x60}, -+ {0x90284, 0x138}, -+ {0x90285, 0x869}, -+ {0x90286, 0x18}, -+ {0x90287, 0x8510}, -+ {0x90288, 0x868}, -+ {0x90289, 0x18}, -+ {0x9028a, 0x2c8}, -+ {0x9028b, 0x869}, -+ {0x9028c, 0x10}, -+ {0x9028d, 0x8520}, -+ {0x9028e, 0x868}, -+ {0x9028f, 0x1ff8}, -+ {0x90290, 0x85d8}, -+ {0x90291, 0xc68}, -+ {0x90292, 0x0}, -+ {0x90293, 0xfdf0}, -+ {0x90294, 0x868}, -+ {0x90295, 0x8}, -+ {0x90296, 0x85f0}, -+ {0x90297, 0x868}, -+ {0x90298, 0x8}, -+ {0x90299, 0xa5f0}, -+ {0x9029a, 0x868}, -+ {0x9029b, 0x298}, -+ {0x9029c, 0x100}, -+ {0x9029d, 0x869}, -+ {0x9029e, 0x2}, -+ {0x9029f, 0x1}, -+ {0x902a0, 0x68}, -+ {0x902a1, 0x0}, -+ {0x902a2, 0x100}, -+ {0x902a3, 0x869}, -+ {0x902a4, 0x0}, -+ {0x902a5, 0x85f0}, -+ {0x902a6, 0x868}, -+ {0x902a7, 0x0}, -+ {0x902a8, 0xa5f0}, -+ {0x902a9, 0x868}, -+ {0x902aa, 0x33b}, -+ {0x902ab, 0x100}, -+ {0x902ac, 0x8c9}, -+ {0x902ad, 0x0}, -+ {0x902ae, 0x100}, -+ {0x902af, 0x8c9}, -+ {0x902b0, 0x1ff8}, -+ {0x902b1, 0x85d8}, -+ {0x902b2, 0xc68}, -+ {0x902b3, 0x8}, -+ {0x902b4, 0x8df0}, -+ {0x902b5, 0x868}, -+ {0x902b6, 0x8}, -+ {0x902b7, 0xadf0}, -+ {0x902b8, 0x868}, -+ {0x902b9, 0x2a8}, -+ {0x902ba, 0x100}, -+ {0x902bb, 0x869}, -+ {0x902bc, 0x2}, -+ {0x902bd, 0x1}, -+ {0x902be, 0x68}, -+ {0x902bf, 0x0}, -+ {0x902c0, 0x100}, -+ {0x902c1, 0x869}, -+ {0x902c2, 0x0}, -+ {0x902c3, 0x8df0}, -+ {0x902c4, 0x868}, -+ {0x902c5, 0x0}, -+ {0x902c6, 0xadf0}, -+ {0x902c7, 0x868}, -+ {0x902c8, 0x10}, -+ {0x902c9, 0x2c8}, -+ {0x902ca, 0x869}, -+ {0x902cb, 0x28}, -+ {0x902cc, 0x4}, -+ {0x902cd, 0x68}, -+ {0x902ce, 0xa}, -+ {0x902cf, 0x500}, -+ {0x902d0, 0xc69}, -+ {0x902d1, 0x0}, -+ {0x902d2, 0x8520}, -+ {0x902d3, 0x868}, -+ {0x902d4, 0x8}, -+ {0x902d5, 0x8530}, -+ {0x902d6, 0x868}, -+ {0x902d7, 0x2ba}, -+ {0x902d8, 0x100}, -+ {0x902d9, 0x869}, -+ {0x902da, 0x2}, -+ {0x902db, 0x1}, -+ {0x902dc, 0x68}, -+ {0x902dd, 0x2}, -+ {0x902de, 0x100}, -+ {0x902df, 0x869}, -+ {0x902e0, 0x0}, -+ {0x902e1, 0x8530}, -+ {0x902e2, 0x868}, -+ {0x902e3, 0x0}, -+ {0x902e4, 0x8510}, -+ {0x902e5, 0x868}, -+ {0x902e6, 0x0}, -+ {0x902e7, 0x2c8}, -+ {0x902e8, 0x869}, -+ {0x902e9, 0x8}, -+ {0x902ea, 0x8050}, -+ {0x902eb, 0x868}, -+ {0x902ec, 0x30}, -+ {0x902ed, 0x4}, -+ {0x902ee, 0x68}, -+ {0x902ef, 0x8}, -+ {0x902f0, 0x8520}, -+ {0x902f1, 0x868}, -+ {0x902f2, 0x0}, -+ {0x902f3, 0x8328}, -+ {0x902f4, 0x86b}, -+ {0x902f5, 0x2ca}, -+ {0x902f6, 0x100}, -+ {0x902f7, 0x869}, -+ {0x902f8, 0x2}, -+ {0x902f9, 0x1}, -+ {0x902fa, 0x68}, -+ {0x902fb, 0x4}, -+ {0x902fc, 0x100}, -+ {0x902fd, 0x869}, -+ {0x902fe, 0xff8}, -+ {0x902ff, 0x8328}, -+ {0x90300, 0x86b}, -+ {0x90301, 0x9}, -+ {0x90302, 0x500}, -+ {0x90303, 0xc29}, -+ {0x90304, 0x0}, -+ {0x90305, 0x8520}, -+ {0x90306, 0x868}, -+ {0x90307, 0x8}, -+ {0x90308, 0x3c8}, -+ {0x90309, 0xc29}, -+ {0x9030a, 0x0}, -+ {0x9030b, 0x150}, -+ {0x9030c, 0x809}, -+ {0x9030d, 0x2}, -+ {0x9030e, 0x370}, -+ {0x9030f, 0x809}, -+ {0x90310, 0x0}, -+ {0x90311, 0x400}, -+ {0x90312, 0x80e}, -+ {0x90313, 0x10}, -+ {0x90314, 0x4}, -+ {0x90315, 0x118}, -+ {0x90316, 0x20}, -+ {0x90317, 0x82b0}, -+ {0x90318, 0x808}, -+ {0x90319, 0x479}, -+ {0x9031a, 0xc7f8}, -+ {0x9031b, 0x80c}, -+ {0x9031c, 0x0}, -+ {0x9031d, 0x0}, -+ {0x9031e, 0x8}, -+ {0x9031f, 0x60}, -+ {0x90320, 0x8a}, -+ {0x90321, 0x9}, -+ {0x90322, 0x9}, -+ {0x90323, 0xc9c0}, -+ {0x90324, 0xc0c}, -+ {0x90325, 0x0}, -+ {0x90326, 0x0}, -+ {0x90327, 0x8}, -+ {0x90328, 0x8}, -+ {0x90329, 0x2a0}, -+ {0x9032a, 0x809}, -+ {0x9032b, 0x48}, -+ {0x9032c, 0xc822}, -+ {0x9032d, 0xc}, -+ {0x9032e, 0x48}, -+ {0x9032f, 0xcc32}, -+ {0x90330, 0xc}, -+ {0x90331, 0x9}, -+ {0x90332, 0xc800}, -+ {0x90333, 0xc0c}, -+ {0x90334, 0x0}, -+ {0x90335, 0x8168}, -+ {0x90336, 0x80c}, -+ {0x90337, 0x479}, -+ {0x90338, 0xc7f8}, -+ {0x90339, 0x91c}, -+ {0x9033a, 0x0}, -+ {0x9033b, 0x0}, -+ {0x9033c, 0x118}, -+ {0x9033d, 0x9190}, -+ {0x9033e, 0x80a1}, -+ {0x9033f, 0x918}, -+ {0x90340, 0x9}, -+ {0x90341, 0xc9c0}, -+ {0x90342, 0xd1c}, -+ {0x90343, 0x0}, -+ {0x90344, 0x0}, -+ {0x90345, 0x118}, -+ {0x90346, 0x18}, -+ {0x90347, 0xf0}, -+ {0x90348, 0x909}, -+ {0x90349, 0xa}, -+ {0x9034a, 0xc140}, -+ {0x9034b, 0x92c}, -+ {0x9034c, 0x88}, -+ {0x9034d, 0x1932}, -+ {0x9034e, 0x129}, -+ {0x9034f, 0x88}, -+ {0x90350, 0x193a}, -+ {0x90351, 0x129}, -+ {0x90352, 0x0}, -+ {0x90353, 0xc140}, -+ {0x90354, 0x92c}, -+ {0x90355, 0x8}, -+ {0x90356, 0x300}, -+ {0x90357, 0x819}, -+ {0x90358, 0x10}, -+ {0x90359, 0x8160}, -+ {0x9035a, 0x80c}, -+ {0x9035b, 0x8}, -+ {0x9035c, 0x7c8}, -+ {0x9035d, 0x801}, -+ {0x9035e, 0x8}, -+ {0x9035f, 0x0}, -+ {0x90360, 0x8}, -+ {0x90361, 0x8}, -+ {0x90362, 0x1880}, -+ {0x90363, 0x809}, -+ {0x90364, 0x10}, -+ {0x90365, 0x8160}, -+ {0x90366, 0x80c}, -+ {0x90367, 0x1800}, -+ {0x90368, 0x8660}, -+ {0x90369, 0x809}, -+ {0x9036a, 0x4000}, -+ {0x9036b, 0x8668}, -+ {0x9036c, 0x809}, -+ {0x9036d, 0x0}, -+ {0x9036e, 0xf0}, -+ {0x9036f, 0x909}, -+ {0x90370, 0xf}, -+ {0x90371, 0x7c0}, -+ {0x90372, 0x809}, -+ {0x90373, 0x0}, -+ {0x90374, 0x2a0}, -+ {0x90375, 0x809}, -+ {0x90376, 0x8}, -+ {0x90377, 0x618}, -+ {0x90378, 0x809}, -+ {0x90379, 0x0}, -+ {0x9037a, 0x84b8}, -+ {0x9037b, 0x808}, -+ {0x9037c, 0xff8}, -+ {0x9037d, 0x8410}, -+ {0x9037e, 0x809}, -+ {0x9037f, 0x7ff8}, -+ {0x90380, 0x8498}, -+ {0x90381, 0x808}, -+ {0x90382, 0x0}, -+ {0x90383, 0x7c8}, -+ {0x90384, 0x809}, -+ {0x90385, 0x8}, -+ {0x90386, 0x8168}, -+ {0x90387, 0x80c}, -+ {0x90388, 0x0}, -+ {0x90389, 0x1}, -+ {0x9038a, 0x8}, -+ {0x9038b, 0x0}, -+ {0x9038c, 0x4}, -+ {0x9038d, 0x8}, -+ {0x9038e, 0x0}, -+ {0x9038f, 0x4}, -+ {0x90390, 0x8}, -+ {0x90391, 0x18}, -+ {0x90392, 0x300}, -+ {0x90393, 0x809}, -+ {0x90394, 0x0}, -+ {0x90395, 0x480}, -+ {0x90396, 0x809}, -+ {0x90397, 0x8}, -+ {0x90398, 0x510}, -+ {0x90399, 0x809}, -+ {0x9039a, 0x7800}, -+ {0x9039b, 0x8660}, -+ {0x9039c, 0x809}, -+ {0x9039d, 0x18}, -+ {0x9039e, 0xf0}, -+ {0x9039f, 0x909}, -+ {0x903a0, 0x8}, -+ {0x903a1, 0x7c8}, -+ {0x903a2, 0x801}, -+ {0x903a3, 0x10}, -+ {0x903a4, 0x400}, -+ {0x903a5, 0x80e}, -+ {0x903a6, 0x8}, -+ {0x903a7, 0x150}, -+ {0x903a8, 0x809}, -+ {0x903a9, 0x9}, -+ {0x903aa, 0x370}, -+ {0x903ab, 0x809}, -+ {0x903ac, 0x18}, -+ {0x903ad, 0x8160}, -+ {0x903ae, 0x80c}, -+ {0x903af, 0x8}, -+ {0x903b0, 0xc800}, -+ {0x903b1, 0xc0c}, -+ {0x903b2, 0x8}, -+ {0x903b3, 0xc888}, -+ {0x903b4, 0xc04}, -+ {0x903b5, 0x20}, -+ {0x903b6, 0x8302}, -+ {0x903b7, 0xb}, -+ {0x903b8, 0x18}, -+ {0x903b9, 0x8582}, -+ {0x903ba, 0x8}, -+ {0x903bb, 0x9000}, -+ {0x903bc, 0x8539}, -+ {0x903bd, 0x808}, -+ {0x903be, 0x0}, -+ {0x903bf, 0x8588}, -+ {0x903c0, 0x808}, -+ {0x903c1, 0x40}, -+ {0x903c2, 0x85c8}, -+ {0x903c3, 0x808}, -+ {0x903c4, 0x0}, -+ {0x903c5, 0xfdf0}, -+ {0x903c6, 0x808}, -+ {0x903c7, 0x800}, -+ {0x903c8, 0xc5f0}, -+ {0x903c9, 0x808}, -+ {0x903ca, 0x1ff8}, -+ {0x903cb, 0xfdd8}, -+ {0x903cc, 0xc08}, -+ {0x903cd, 0x18}, -+ {0x903ce, 0xfda8}, -+ {0x903cf, 0x808}, -+ {0x903d0, 0x40}, -+ {0x903d1, 0x8520}, -+ {0x903d2, 0x8d8}, -+ {0x903d3, 0x80}, -+ {0x903d4, 0x8520}, -+ {0x903d5, 0x8e8}, -+ {0x903d6, 0x30a}, -+ {0x903d7, 0x100}, -+ {0x903d8, 0x8d9}, -+ {0x903d9, 0x32a}, -+ {0x903da, 0x100}, -+ {0x903db, 0x8e9}, -+ {0x903dc, 0x0}, -+ {0x903dd, 0x1}, -+ {0x903de, 0x8}, -+ {0x903df, 0x0}, -+ {0x903e0, 0x100}, -+ {0x903e1, 0x809}, -+ {0x903e2, 0x1ff8}, -+ {0x903e3, 0xfdd8}, -+ {0x903e4, 0xc08}, -+ {0x903e5, 0x8}, -+ {0x903e6, 0xfda8}, -+ {0x903e7, 0x808}, -+ {0x903e8, 0x140}, -+ {0x903e9, 0x8520}, -+ {0x903ea, 0x8d8}, -+ {0x903eb, 0x180}, -+ {0x903ec, 0x8520}, -+ {0x903ed, 0x8e8}, -+ {0x903ee, 0x30a}, -+ {0x903ef, 0x100}, -+ {0x903f0, 0x8d9}, -+ {0x903f1, 0x32a}, -+ {0x903f2, 0x100}, -+ {0x903f3, 0x8e9}, -+ {0x903f4, 0x0}, -+ {0x903f5, 0x1}, -+ {0x903f6, 0x8}, -+ {0x903f7, 0x0}, -+ {0x903f8, 0x100}, -+ {0x903f9, 0x809}, -+ {0x903fa, 0x9}, -+ {0x903fb, 0x500}, -+ {0x903fc, 0xc09}, -+ {0x903fd, 0x10}, -+ {0x903fe, 0x82b0}, -+ {0x903ff, 0x808}, -+ {0x90400, 0x0}, -+ {0x90401, 0x8520}, -+ {0x90402, 0x808}, -+ {0x90403, 0x8}, -+ {0x90404, 0x3c8}, -+ {0x90405, 0xc09}, -+ {0x90406, 0x0}, -+ {0x90407, 0x150}, -+ {0x90408, 0x809}, -+ {0x90409, 0x2}, -+ {0x9040a, 0x370}, -+ {0x9040b, 0x809}, -+ {0x9040c, 0x0}, -+ {0x9040d, 0x400}, -+ {0x9040e, 0x80e}, -+ {0x9040f, 0x8}, -+ {0x90410, 0xc848}, -+ {0x90411, 0xc0c}, -+ {0x90412, 0x0}, -+ {0x90413, 0xc890}, -+ {0x90414, 0x804}, -+ {0x90415, 0x20}, -+ {0x90416, 0x8302}, -+ {0x90417, 0xb}, -+ {0x90418, 0x18}, -+ {0x90419, 0x8582}, -+ {0x9041a, 0x8}, -+ {0x9041b, 0x0}, -+ {0x9041c, 0x82b0}, -+ {0x9041d, 0x808}, -+ {0x9041e, 0x1000}, -+ {0x9041f, 0x8539}, -+ {0x90420, 0x808}, -+ {0x90421, 0x0}, -+ {0x90422, 0x8588}, -+ {0x90423, 0x808}, -+ {0x90424, 0x40}, -+ {0x90425, 0x85c8}, -+ {0x90426, 0x808}, -+ {0x90427, 0x7f8}, -+ {0x90428, 0xfdf0}, -+ {0x90429, 0x808}, -+ {0x9042a, 0x800}, -+ {0x9042b, 0xc5f0}, -+ {0x9042c, 0x808}, -+ {0x9042d, 0x80}, -+ {0x9042e, 0x8088}, -+ {0x9042f, 0x80b}, -+ {0x90430, 0x1ff8}, -+ {0x90431, 0xfdd8}, -+ {0x90432, 0xc08}, -+ {0x90433, 0x18}, -+ {0x90434, 0xfda8}, -+ {0x90435, 0x808}, -+ {0x90436, 0x200}, -+ {0x90437, 0x8520}, -+ {0x90438, 0x8d8}, -+ {0x90439, 0x400}, -+ {0x9043a, 0x8520}, -+ {0x9043b, 0x8e8}, -+ {0x9043c, 0x2da}, -+ {0x9043d, 0x100}, -+ {0x9043e, 0x8d9}, -+ {0x9043f, 0x2ea}, -+ {0x90440, 0x100}, -+ {0x90441, 0x8e9}, -+ {0x90442, 0x2}, -+ {0x90443, 0x1}, -+ {0x90444, 0x8}, -+ {0x90445, 0x0}, -+ {0x90446, 0x100}, -+ {0x90447, 0x809}, -+ {0x90448, 0x1ff8}, -+ {0x90449, 0xfdd8}, -+ {0x9044a, 0xc08}, -+ {0x9044b, 0x8}, -+ {0x9044c, 0xfda8}, -+ {0x9044d, 0x808}, -+ {0x9044e, 0xa00}, -+ {0x9044f, 0x8520}, -+ {0x90450, 0x8d8}, -+ {0x90451, 0xc00}, -+ {0x90452, 0x8520}, -+ {0x90453, 0x8e8}, -+ {0x90454, 0x2da}, -+ {0x90455, 0x100}, -+ {0x90456, 0x8d9}, -+ {0x90457, 0x2ea}, -+ {0x90458, 0x100}, -+ {0x90459, 0x8e9}, -+ {0x9045a, 0x0}, -+ {0x9045b, 0x1}, -+ {0x9045c, 0x8}, -+ {0x9045d, 0x0}, -+ {0x9045e, 0x100}, -+ {0x9045f, 0x809}, -+ {0x90460, 0x9}, -+ {0x90461, 0x500}, -+ {0x90462, 0xc09}, -+ {0x90463, 0x10}, -+ {0x90464, 0x82b0}, -+ {0x90465, 0x808}, -+ {0x90466, 0x0}, -+ {0x90467, 0x8520}, -+ {0x90468, 0x808}, -+ {0x90469, 0x8}, -+ {0x9046a, 0x3c8}, -+ {0x9046b, 0xc09}, -+ {0x9046c, 0x0}, -+ {0x9046d, 0x150}, -+ {0x9046e, 0x809}, -+ {0x9046f, 0x2}, -+ {0x90470, 0x370}, -+ {0x90471, 0x809}, -+ {0x90472, 0x0}, -+ {0x90473, 0x400}, -+ {0x90474, 0x80e}, -+ {0x90475, 0x8}, -+ {0x90476, 0xc848}, -+ {0x90477, 0xc0c}, -+ {0x90478, 0x0}, -+ {0x90479, 0xc890}, -+ {0x9047a, 0x804}, -+ {0x9047b, 0x1008}, -+ {0x9047c, 0x853b}, -+ {0x9047d, 0x808}, -+ {0x9047e, 0xc00}, -+ {0x9047f, 0x8588}, -+ {0x90480, 0x808}, -+ {0x90481, 0x8}, -+ {0x90482, 0x85a8}, -+ {0x90483, 0x808}, -+ {0x90484, 0x8}, -+ {0x90485, 0x85c8}, -+ {0x90486, 0x808}, -+ {0x90487, 0x60}, -+ {0x90488, 0x138}, -+ {0x90489, 0x809}, -+ {0x9048a, 0x18}, -+ {0x9048b, 0xc8}, -+ {0x9048c, 0x809}, -+ {0x9048d, 0x0}, -+ {0x9048e, 0xa4}, -+ {0x9048f, 0x809}, -+ {0x90490, 0x0}, -+ {0x90491, 0x8510}, -+ {0x90492, 0x808}, -+ {0x90493, 0x2fa}, -+ {0x90494, 0x100}, -+ {0x90495, 0x8d9}, -+ {0x90496, 0x31a}, -+ {0x90497, 0x100}, -+ {0x90498, 0x8e9}, -+ {0x90499, 0x2}, -+ {0x9049a, 0x1}, -+ {0x9049b, 0x8}, -+ {0x9049c, 0x2}, -+ {0x9049d, 0x100}, -+ {0x9049e, 0x809}, -+ {0x9049f, 0x202}, -+ {0x904a0, 0x8510}, -+ {0x904a1, 0xc08}, -+ {0x904a2, 0x50}, -+ {0x904a3, 0xa2}, -+ {0x904a4, 0x9}, -+ {0x904a5, 0x0}, -+ {0x904a6, 0x0}, -+ {0x904a7, 0x8}, -+ {0x904a8, 0x0}, -+ {0x904a9, 0x0}, -+ {0x904aa, 0x8}, -+ {0x904ab, 0x0}, -+ {0x904ac, 0x0}, -+ {0x904ad, 0x8}, -+ {0x904ae, 0x0}, -+ {0x904af, 0xc8}, -+ {0x904b0, 0x809}, -+ {0x904b1, 0xb}, -+ {0x904b2, 0x508}, -+ {0x904b3, 0x809}, -+ {0x904b4, 0x8}, -+ {0x904b5, 0x1900}, -+ {0x904b6, 0xc09}, -+ {0x904b7, 0x2}, -+ {0x904b8, 0x0}, -+ {0x904b9, 0x8}, -+ {0x904ba, 0x0}, -+ {0x904bb, 0x508}, -+ {0x904bc, 0x809}, -+ {0x904bd, 0x9}, -+ {0x904be, 0x500}, -+ {0x904bf, 0xc09}, -+ {0x904c0, 0x10}, -+ {0x904c1, 0x82b0}, -+ {0x904c2, 0x808}, -+ {0x904c3, 0x0}, -+ {0x904c4, 0x8520}, -+ {0x904c5, 0x808}, -+ {0x904c6, 0x8}, -+ {0x904c7, 0x3c8}, -+ {0x904c8, 0xc09}, -+ {0x904c9, 0x0}, -+ {0x904ca, 0x150}, -+ {0x904cb, 0x809}, -+ {0x904cc, 0x2}, -+ {0x904cd, 0x370}, -+ {0x904ce, 0x809}, -+ {0x904cf, 0x0}, -+ {0x904d0, 0x400}, -+ {0x904d1, 0x80e}, -+ {0x904d2, 0x8}, -+ {0x904d3, 0xc848}, -+ {0x904d4, 0xc0c}, -+ {0x904d5, 0x0}, -+ {0x904d6, 0xc890}, -+ {0x904d7, 0x804}, -+ {0x904d8, 0x20}, -+ {0x904d9, 0x8302}, -+ {0x904da, 0xb}, -+ {0x904db, 0x18}, -+ {0x904dc, 0x8582}, -+ {0x904dd, 0x8}, -+ {0x904de, 0x1000}, -+ {0x904df, 0x8539}, -+ {0x904e0, 0x808}, -+ {0x904e1, 0x0}, -+ {0x904e2, 0x8588}, -+ {0x904e3, 0x808}, -+ {0x904e4, 0x40}, -+ {0x904e5, 0x85c8}, -+ {0x904e6, 0x808}, -+ {0x904e7, 0x8}, -+ {0x904e8, 0xfdf0}, -+ {0x904e9, 0x808}, -+ {0x904ea, 0x80}, -+ {0x904eb, 0x8088}, -+ {0x904ec, 0x80b}, -+ {0x904ed, 0x0}, -+ {0x904ee, 0x3b8}, -+ {0x904ef, 0x869}, -+ {0x904f0, 0x1ff8}, -+ {0x904f1, 0xfdd8}, -+ {0x904f2, 0xc08}, -+ {0x904f3, 0x18}, -+ {0x904f4, 0xfda8}, -+ {0x904f5, 0x808}, -+ {0x904f6, 0x40}, -+ {0x904f7, 0x8520}, -+ {0x904f8, 0x8d8}, -+ {0x904f9, 0x80}, -+ {0x904fa, 0x8520}, -+ {0x904fb, 0x8e8}, -+ {0x904fc, 0x2da}, -+ {0x904fd, 0x100}, -+ {0x904fe, 0x8d9}, -+ {0x904ff, 0x2ea}, -+ {0x90500, 0x100}, -+ {0x90501, 0x8e9}, -+ {0x90502, 0x2}, -+ {0x90503, 0x1}, -+ {0x90504, 0x8}, -+ {0x90505, 0x0}, -+ {0x90506, 0x100}, -+ {0x90507, 0x809}, -+ {0x90508, 0x1ff8}, -+ {0x90509, 0xfdd8}, -+ {0x9050a, 0xc08}, -+ {0x9050b, 0x8}, -+ {0x9050c, 0xfda8}, -+ {0x9050d, 0x808}, -+ {0x9050e, 0x140}, -+ {0x9050f, 0x8520}, -+ {0x90510, 0x8d8}, -+ {0x90511, 0x180}, -+ {0x90512, 0x8520}, -+ {0x90513, 0x8e8}, -+ {0x90514, 0x2da}, -+ {0x90515, 0x100}, -+ {0x90516, 0x8d9}, -+ {0x90517, 0x2ea}, -+ {0x90518, 0x100}, -+ {0x90519, 0x8e9}, -+ {0x9051a, 0x0}, -+ {0x9051b, 0x1}, -+ {0x9051c, 0x8}, -+ {0x9051d, 0x0}, -+ {0x9051e, 0x100}, -+ {0x9051f, 0x809}, -+ {0x90520, 0x9}, -+ {0x90521, 0x500}, -+ {0x90522, 0xc09}, -+ {0x90523, 0x10}, -+ {0x90524, 0x82b0}, -+ {0x90525, 0x808}, -+ {0x90526, 0x0}, -+ {0x90527, 0x8520}, -+ {0x90528, 0x808}, -+ {0x90529, 0x8}, -+ {0x9052a, 0x3c8}, -+ {0x9052b, 0xc09}, -+ {0x9052c, 0x0}, -+ {0x9052d, 0x150}, -+ {0x9052e, 0x809}, -+ {0x9052f, 0x2}, -+ {0x90530, 0x370}, -+ {0x90531, 0x809}, -+ {0x90532, 0x0}, -+ {0x90533, 0x400}, -+ {0x90534, 0x80e}, -+ {0x90535, 0x8}, -+ {0x90536, 0xc848}, -+ {0x90537, 0xc0c}, -+ {0x90538, 0x0}, -+ {0x90539, 0xc890}, -+ {0x9053a, 0x804}, -+ {0xd00e7, 0x600}, -+ {0x9001c, 0x0}, -+ {0x90020, 0x77}, -+ {0x90024, 0x82}, -+ {0x90025, 0x2b}, -+ {0x90026, 0x2b}, -+ {0x9002b, 0x110}, -+ {0x90708, 0x127}, -+ {0x90700, 0x14d}, -+ {0x90701, 0x16f}, -+ {0x90702, 0x18e}, -+ {0x90703, 0x12d}, -+ {0x90704, 0x0}, -+ {0x90705, 0x0}, -+ {0x90706, 0x0}, -+ {0x90707, 0x0}, -+ {0x2018a, 0x0}, -+ {0x20124, 0x1}, -+ {0x2018b, 0x16}, -+ {0x20125, 0x39}, -+ {0x2018c, 0x4e}, -+ {0x20126, 0x1}, -+ {0x2018d, 0x16}, -+ {0x20127, 0x39}, -+ {0x2018e, 0x4e}, -+ {0x20128, 0x17}, -+ {0x2018f, 0x27}, -+ {0x20129, 0x4f}, -+ {0x20190, 0x5f}, -+ {0x2012a, 0x17}, -+ {0x20191, 0x27}, -+ {0x2012b, 0x4f}, -+ {0x20192, 0x5f}, -+ {0x2012c, 0x28}, -+ {0x20193, 0x38}, -+ {0x2012d, 0x60}, -+ {0x20194, 0x70}, -+ {0x2012e, 0x28}, -+ {0x20195, 0x38}, -+ {0x2012f, 0x60}, -+ {0x20196, 0x70}, -+ {0x20130, 0x80}, -+ {0x20197, 0x80}, -+ {0x20131, 0x80}, -+ {0x20198, 0x80}, -+ {0x20132, 0x80}, -+ {0x20199, 0x80}, -+ {0x20133, 0x80}, -+ {0x2019a, 0x80}, -+ {0x20134, 0x71}, -+ {0x2019b, 0x74}, -+ {0x20135, 0x77}, -+ {0x2019c, 0x7a}, -+ {0x20136, 0x71}, -+ {0x2019d, 0x74}, -+ {0x20137, 0x77}, -+ {0x2019e, 0x7a}, -+ {0x20138, 0x75}, -+ {0x2019f, 0x76}, -+ {0x20139, 0x7b}, -+ {0x201a0, 0x7c}, -+ {0x2013a, 0x75}, -+ {0x201a1, 0x76}, -+ {0x2013b, 0x7b}, -+ {0x201a2, 0x7c}, -+ {0x2013c, 0x7d}, -+ {0x201a3, 0x7e}, -+ {0x2013d, 0x7d}, -+ {0x201a4, 0x7e}, -+ {0x2013e, 0x7d}, -+ {0x201a5, 0x7e}, -+ {0x2013f, 0x7d}, -+ {0x201a6, 0x7e}, -+ {0x20140, 0x7f}, -+ {0x201a7, 0x7f}, -+ {0x20141, 0x7f}, -+ {0x201a8, 0x7f}, -+ {0x20142, 0x7f}, -+ {0x201a9, 0x7f}, -+ {0x20143, 0x7f}, -+ {0x201aa, 0x7f}, -+ {0x20144, 0x80}, -+ {0x201ab, 0x7f}, -+ {0x20145, 0x80}, -+ {0x201ac, 0x7f}, -+ {0x20146, 0x80}, -+ {0x201ad, 0x7f}, -+ {0x20147, 0x80}, -+ {0x201ae, 0x7f}, -+ {0x20148, 0x81}, -+ {0x201af, 0x93}, -+ {0x20149, 0x81}, -+ {0x201b0, 0x93}, -+ {0x2014a, 0x10a}, -+ {0x201b1, 0x11b}, -+ {0x2014b, 0x10a}, -+ {0x201b2, 0x11b}, -+ {0x2014c, 0x94}, -+ {0x201b3, 0x9b}, -+ {0x2014d, 0x94}, -+ {0x201b4, 0x9b}, -+ {0x2014e, 0x11c}, -+ {0x201b5, 0x122}, -+ {0x2014f, 0x11c}, -+ {0x201b6, 0x122}, -+ {0x20150, 0x9c}, -+ {0x201b7, 0xaf}, -+ {0x20151, 0x9c}, -+ {0x201b8, 0xaf}, -+ {0x20152, 0x123}, -+ {0x201b9, 0x132}, -+ {0x20153, 0x123}, -+ {0x201ba, 0x132}, -+ {0x20154, 0xb0}, -+ {0x201bb, 0xc0}, -+ {0x20155, 0xb0}, -+ {0x201bc, 0xc0}, -+ {0x20156, 0x133}, -+ {0x201bd, 0x143}, -+ {0x20157, 0x133}, -+ {0x201be, 0x143}, -+ {0x20158, 0xc1}, -+ {0x201bf, 0xca}, -+ {0x20159, 0xc1}, -+ {0x201c0, 0xca}, -+ {0x2015a, 0x144}, -+ {0x201c1, 0x14d}, -+ {0x2015b, 0x144}, -+ {0x201c2, 0x14d}, -+ {0x2015c, 0xcb}, -+ {0x201c3, 0xd4}, -+ {0x2015d, 0xcb}, -+ {0x201c4, 0xd4}, -+ {0x2015e, 0x14e}, -+ {0x201c5, 0x157}, -+ {0x2015f, 0x14e}, -+ {0x201c6, 0x157}, -+ {0x20160, 0xd5}, -+ {0x201c7, 0xdf}, -+ {0x20161, 0xd5}, -+ {0x201c8, 0xdf}, -+ {0x20162, 0x158}, -+ {0x201c9, 0x161}, -+ {0x20163, 0x158}, -+ {0x201ca, 0x161}, -+ {0x20164, 0xe0}, -+ {0x201cb, 0xee}, -+ {0x20165, 0xe0}, -+ {0x201cc, 0xee}, -+ {0x20166, 0x162}, -+ {0x201cd, 0x170}, -+ {0x20167, 0x162}, -+ {0x201ce, 0x170}, -+ {0x20168, 0xef}, -+ {0x201cf, 0xf9}, -+ {0x20169, 0xef}, -+ {0x201d0, 0xf9}, -+ {0x2016a, 0x171}, -+ {0x201d1, 0x17a}, -+ {0x2016b, 0x171}, -+ {0x201d2, 0x17a}, -+ {0x2016c, 0xfa}, -+ {0x201d3, 0x108}, -+ {0x2016d, 0xfa}, -+ {0x201d4, 0x108}, -+ {0x2016e, 0x17b}, -+ {0x201d5, 0x189}, -+ {0x2016f, 0x17b}, -+ {0x201d6, 0x189}, -+ {0x20170, 0x109}, -+ {0x201d7, 0x109}, -+ {0x20171, 0x109}, -+ {0x201d8, 0x109}, -+ {0x20172, 0x18a}, -+ {0x201d9, 0x18a}, -+ {0x20173, 0x18a}, -+ {0x201da, 0x18a}, -+ {0x41613, 0xb00}, -+ {0x41617, 0x0}, -+ {0x4163b, 0xb00}, -+ {0x4163f, 0x0}, -+ {0x41663, 0xb00}, -+ {0x41667, 0x0}, -+ {0x4168b, 0xb00}, -+ {0x4168f, 0x0}, -+ {0x41723, 0xb00}, -+ {0x41727, 0x0}, -+ {0x4174b, 0xb00}, -+ {0x4174f, 0x0}, -+ {0x417f3, 0xb00}, -+ {0x417f7, 0x0}, -+ {0x4181b, 0xb00}, -+ {0x4181f, 0x0}, -+ {0x41a2b, 0x6b00}, -+ {0x41a2f, 0x0}, -+ {0x41a53, 0x3b00}, -+ {0x41a57, 0x800}, -+ {0x41a7b, 0x6b00}, -+ {0x41a7f, 0x0}, -+ {0x41aa3, 0x3b00}, -+ {0x41aa7, 0x800}, -+ {0x41b33, 0x6b00}, -+ {0x41b37, 0x0}, -+ {0x41b5b, 0x3b00}, -+ {0x41b5f, 0x800}, -+ {0x41bfb, 0x6b00}, -+ {0x41bff, 0x0}, -+ {0x41c23, 0x3b00}, -+ {0x41c27, 0x800}, -+ {0x41008, 0xc9d8}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0xc808}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x2b00}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0xc958}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0xcf08}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x2b00}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0xc0d8}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0xd848}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x2b00}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0xc158}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0xddc8}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x2b00}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0xc1d8}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0xc308}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x2b00}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0xc558}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0xea08}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x2b00}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0xc5d8}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0xe308}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x2b00}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x48d8}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x4248}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x88d8}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x9648}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x2b00}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0xca58}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0xc108}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x2b00}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0xcb58}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0xc008}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x2b00}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0xd4d8}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0xc008}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0xc0001, 0x5061}, -+ {0xc0002, 0x7098}, -+ {0xc0003, 0x0}, -+ {0xc0000, 0xbedc}, -+ {0xc0006, 0xb0db}, -+ {0xc0007, 0x0}, -+ {0x9070c, 0x0}, -+ {0x9070d, 0x7ff}, -+ {0x9070e, 0x668}, -+ {0x9070f, 0x7910}, -+ {0x90710, 0x355e}, -+ {0x90711, 0xcbb5}, -+ {0x90713, 0xffff}, -+ {0x90714, 0x710}, -+ {0x90715, 0x7800}, -+ {0x90c10, 0xffff}, -+ {0x90c12, 0xff10}, -+ {0x90712, 0xffff}, -+ {0x90716, 0xff10}, -+ {0x90717, 0xff10}, -+ {0x90718, 0xff10}, -+ {0x90719, 0xffff}, -+ {0x9071a, 0xffff}, -+ {0x9071b, 0xfeef}, -+ {0x90c11, 0xffff}, -+ {0x90904, 0xe400}, -+ {0x90986, 0xe400}, -+ {0x90920, 0x0}, -+ {0x90921, 0x0}, -+ {0x90922, 0x0}, -+ {0x90923, 0x0}, -+ {0x90924, 0xff00}, -+ {0x90925, 0xff00}, -+ {0x90926, 0xff00}, -+ {0x90927, 0xff00}, -+ {0x90930, 0x4000}, -+ {0x90931, 0x2000}, -+ {0x90932, 0xff00}, -+ {0x90933, 0xff00}, -+ {0x9090a, 0x0}, -+ {0x9090c, 0x0}, -+ {0x9090d, 0x1}, -+ {0x200f0, 0x27f7}, -+ {0x200f1, 0x2108}, -+ {0x200f2, 0x2108}, -+ {0x100b9, 0x1}, -+ {0x100b1, 0x180}, -+ {0x100ba, 0x1}, -+ {0x100a2, 0x0}, -+ {0x100b5, 0x1}, -+ {0x110b9, 0x1}, -+ {0x110b1, 0x180}, -+ {0x110ba, 0x1}, -+ {0x110a2, 0x0}, -+ {0x110b5, 0x1}, -+ {0x120b9, 0x1}, -+ {0x120b1, 0x180}, -+ {0x120ba, 0x1}, -+ {0x120a2, 0x0}, -+ {0x120b5, 0x1}, -+ {0x130b9, 0x1}, -+ {0x130b1, 0x180}, -+ {0x130ba, 0x1}, -+ {0x130a2, 0x0}, -+ {0x130b5, 0x1}, -+ {0x70024, 0x5a3c}, -+ {0x70025, 0x5a3c}, -+ {0x70026, 0x5a3c}, -+ {0x70027, 0x5a3c}, -+ {0x70028, 0x5a3c}, -+ {0x70029, 0x5a3c}, -+ {0x7002a, 0x5a3c}, -+ {0x7002b, 0x5a3c}, -+ {0x70124, 0x5a3c}, -+ {0x70125, 0x5a3c}, -+ {0x70126, 0x5a3c}, -+ {0x70127, 0x5a3c}, -+ {0x70128, 0x5a3c}, -+ {0x70129, 0x5a3c}, -+ {0x7012a, 0x5a3c}, -+ {0x7012b, 0x5a3c}, -+ {0x70224, 0x5a3c}, -+ {0x70225, 0x5a3c}, -+ {0x70226, 0x5a3c}, -+ {0x70227, 0x5a3c}, -+ {0x70228, 0x5a3c}, -+ {0x70229, 0x5a3c}, -+ {0x7022a, 0x5a3c}, -+ {0x7022b, 0x5a3c}, -+ {0x70324, 0x5a3c}, -+ {0x70325, 0x5a3c}, -+ {0x70326, 0x5a3c}, -+ {0x70327, 0x5a3c}, -+ {0x70328, 0x5a3c}, -+ {0x70329, 0x5a3c}, -+ {0x7032a, 0x5a3c}, -+ {0x7032b, 0x5a3c}, -+ {0x70424, 0x5a3c}, -+ {0x70425, 0x5a3c}, -+ {0x70426, 0x5a3c}, -+ {0x70427, 0x5a3c}, -+ {0x70428, 0x5a3c}, -+ {0x70429, 0x5a3c}, -+ {0x7042a, 0x5a3c}, -+ {0x7042b, 0x5a3c}, -+ {0x70524, 0x5a3c}, -+ {0x70525, 0x5a3c}, -+ {0x70526, 0x5a3c}, -+ {0x70527, 0x5a3c}, -+ {0x70528, 0x5a3c}, -+ {0x70529, 0x5a3c}, -+ {0x7052a, 0x5a3c}, -+ {0x7052b, 0x5a3c}, -+ {0x70624, 0x5a3c}, -+ {0x70625, 0x5a3c}, -+ {0x70626, 0x5a3c}, -+ {0x70627, 0x5a3c}, -+ {0x70628, 0x5a3c}, -+ {0x70629, 0x5a3c}, -+ {0x7062a, 0x5a3c}, -+ {0x7062b, 0x5a3c}, -+ {0x70724, 0x5a3c}, -+ {0x70725, 0x5a3c}, -+ {0x70726, 0x5a3c}, -+ {0x70727, 0x5a3c}, -+ {0x70728, 0x5a3c}, -+ {0x70729, 0x5a3c}, -+ {0x7072a, 0x5a3c}, -+ {0x7072b, 0x5a3c}, -+ {0x70824, 0x5a3c}, -+ {0x70825, 0x5a3c}, -+ {0x70826, 0x5a3c}, -+ {0x70827, 0x5a3c}, -+ {0x70828, 0x5a3c}, -+ {0x70829, 0x5a3c}, -+ {0x7082a, 0x5a3c}, -+ {0x7082b, 0x5a3c}, -+ {0x70065, 0x1ff}, -+ {0x2007e, 0x33}, -+ {0x200ef, 0xffff}, -+ {0x90910, 0x2}, -+ {0x20310, 0x1}, -+ {0x20311, 0x1}, -+ {0xc0080, 0x2}, -+ {0xd0003, 0x0}, -+ {0x1000f, 0x1087}, -+ {0x1100f, 0x1087}, -+ {0x1200f, 0x1087}, -+ {0x1300f, 0x1087}, -+}; -+ -+static struct dram_fsp_msg ddr_dram_fsp_msg[] = { -+ { -+ /* P0 6400mbps */ -+ .drate = 6400, -+ .ssc = false, -+ .fsp_phy_cfg = ddr_phy_fsp0_cfg, -+ .fsp_phy_cfg_num = ARRAY_SIZE(ddr_phy_fsp0_cfg), -+ .fw_type = FW_1D_IMAGE, -+ .fsp_phy_msgh_cfg = ddr_phy_msgh_fsp0_cfg, -+ .fsp_phy_msgh_cfg_num = ARRAY_SIZE(ddr_phy_msgh_fsp0_cfg), -+ .fsp_phy_pie_cfg = ddr_phy_pie_fsp0_cfg, -+ .fsp_phy_pie_cfg_num = ARRAY_SIZE(ddr_phy_pie_fsp0_cfg), -+ }, -+}; -+ -+/* dram fsp cfg */ -+static struct dram_fsp_cfg ddr_dram_fsp_cfg[] = { -+ { -+ .ddrc_cfg = ddr_dram_fsp0_ddrc_cfg, -+ .ddrc_cfg_num = ARRAY_SIZE(ddr_dram_fsp0_ddrc_cfg), -+ .bypass = 0, -+ }, -+}; -+ -+/* ddr timing config params */ -+struct dram_timing_info dram_timing = { -+ .ddrc_cfg = ddr_ddrc_cfg, -+ .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), -+ .ddrphy_cfg = ddr_ddrphy_cfg, -+ .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), -+ .fsp_msg = ddr_dram_fsp_msg, -+ .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), -+ .ddrphy_trained_csr = ddr_ddrphy_trained_csr, -+ .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), -+ .ddrphy_pie = ddr_phy_pie, -+ .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), -+ .fsp_table = { 6400, }, -+ .fsp_cfg = ddr_dram_fsp_cfg, -+ .fsp_cfg_num = ARRAY_SIZE(ddr_dram_fsp_cfg), -+}; -diff --git a/boards/ccimx95/pin_mux.c b/boards/ccimx95/pin_mux.c -new file mode 100644 -index 000000000000..a8c15513b578 ---- /dev/null -+++ b/boards/ccimx95/pin_mux.c -@@ -0,0 +1,33 @@ -+/* -+ * Copyright 2023-2024 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ */ -+ -+#include "pin_mux.h" -+#include "board.h" -+ -+/* FUNCTION ************************************************************************************************************ -+ * -+ * Function Name : BOARD_InitPins -+ * Description : Configures pin routing and optionally pin electrical features. -+ * -+ * END ****************************************************************************************************************/ -+void BOARD_InitPins(void) -+{ -+#if (BOARD_DEBUG_UART_INSTANCE == 1U) -+ /* Configure LPUART 1 */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_UART1_RXD__LPUART1_RX, 0U); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_UART1_RXD__LPUART1_RX, IOMUXC_PAD_PD(1U)); -+ -+ IOMUXC_SetPinMux(IOMUXC_PAD_UART1_TXD__LPUART1_TX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_UART1_TXD__LPUART1_TX, IOMUXC_PAD_DSE(0xFU)); -+#elif (BOARD_DEBUG_UART_INSTANCE == 2U) -+ /* Configure LPUART 2 */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_UART2_RXD__LPUART2_RX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_UART2_RXD__LPUART2_RX, IOMUXC_PAD_PD(1U)); -+ -+ IOMUXC_SetPinMux(IOMUXC_PAD_UART2_TXD__LPUART2_TX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_UART2_TXD__LPUART2_TX, IOMUXC_PAD_DSE(0xFU)); -+#endif -+} -diff --git a/boards/ccimx95/pin_mux.h b/boards/ccimx95/pin_mux.h -new file mode 100644 -index 000000000000..24cd7920d220 ---- /dev/null -+++ b/boards/ccimx95/pin_mux.h -@@ -0,0 +1,44 @@ -+/* -+ * Copyright 2023 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ */ -+ -+#ifndef PIN_MUX_H -+#define PIN_MUX_H -+ -+#include "fsl_iomuxc.h" -+ -+/*********************************************************************************************************************** -+ * Definitions -+ **********************************************************************************************************************/ -+ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @file -+ * @{ -+ */ -+ -+/*********************************************************************************************************************** -+ * API -+ **********************************************************************************************************************/ -+ -+#if defined(__cplusplus) -+extern "C" { -+#endif -+ -+/*! -+ * @brief Configures pin routing and optionally pin electrical features. -+ * -+ */ -+void BOARD_InitPins(void); /*!< Function assigned for the core: Cortex-M33[cm33] */ -+ -+#if defined(__cplusplus) -+} -+#endif -+ -+/*! -+ * @} -+ */ -+#endif /* PIN_MUX_H */ -+ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0002-ddr-add-DDR-configuration-file-for-ccimx95.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0002-ddr-add-DDR-configuration-file-for-ccimx95.patch deleted file mode 100644 index ffeaa80cb..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0002-ddr-add-DDR-configuration-file-for-ccimx95.patch +++ /dev/null @@ -1,21814 +0,0 @@ -From: Javier Viguera -Date: Mon, 15 Sep 2025 11:38:35 +0200 -Subject: [PATCH] ddr: add DDR configuration file for ccimx95 - -Also: -* manually disable ssc following the example configurations on the - NXP's EVK. -* delete configurations for NXP's EVK. - -Memory: MT62F2G32D4DS-023 AIT:B - -Using NXP Config Tools for i.MX version 25.03 - -*** About Config Tools for i.MX: -Version and Build id: 202503251451 -Installed tools: -Pins (17.0) -Clocks (16.0) -Peripherals (15.0) -TEE (9.0) -DDR (1.0) -SERDES (1.0) - -Data server: https://mcuxpresso.nxp.com - -Locally installed data: -C:\ProgramData\NXP\mcu_data_25.03 -Processors: -MIMX8MM6xxxKZ (25.03.10) - i.MX 8M Mini Quad -MIMX8MM6xxxLZ (25.03.10) - i.MX 8M Mini Quad -MIMX9596xxxxN (25.03.10) - i.MX 95 - -NOTICE: NEWER VERSIONS OF THE TOOL GENERATE CONFIGURATION FOR B0 SILICON - -A basic white space processing has been done on the file: - -fromdos lpddr5_timing_a1.c -sed -i -e '/^};$/{G;}' lpddr5_timing_a1.c -sed -i -e '/^$/N;/^\n$/D' lpddr5_timing_a1.c -sed -i -e '${/^[[:space:]]*$/d;}' lpddr5_timing_a1.c - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Javier Viguera ---- - ...X19_6400MTS_FW2024.09_ECC_enabled_timing.c | 10757 ---------------- - boards/ccimx95/ddr/Makefile | 2 +- - ...XIMX95LPD5EVK19_6400mbps_train_timing_a1.c | 10754 --------------- - ..._FW2024.09_timing.c => lpddr5_timing_a1.c} | 95 +- - 4 files changed, 47 insertions(+), 21561 deletions(-) - delete mode 100644 boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c - delete mode 100644 boards/ccimx95/ddr/XIMX95LPD5EVK19_6400mbps_train_timing_a1.c - rename boards/ccimx95/ddr/{MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c => lpddr5_timing_a1.c} (99%) - -diff --git a/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c b/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c -deleted file mode 100644 -index 99b2ec568cb8..000000000000 ---- a/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_ECC_enabled_timing.c -+++ /dev/null -@@ -1,10757 +0,0 @@ --/* -- * Copyright 2025 NXP -- * -- * SPDX-License-Identifier: BSD-3-Clause -- * -- * Code generated with DDR Tool v3.7.0_0.2-4600df02. -- * DDR PHY FW2024.09 -- * Chip revision: B0 -- */ -- --#include "ddr.h" -- --/* Initialize DDRC registers */ --static struct ddrc_cfg_param ddr_ddrc_cfg[] = { -- {0x5e080110, 0x41114001U}, -- {0x5e080000, 0x37fU}, -- {0x5e080008, 0x0U}, -- {0x5e080010, 0x3U}, -- {0x5e080014, 0x80000U}, -- {0x5e080020, 0x80000000U}, -- {0x5e080024, 0x8000fffU}, -- {0x5e080028, 0x80000000U}, -- {0x5e08002c, 0x7ffU}, -- {0x5e080080, 0x80800522U}, -- {0x5e080084, 0x80800522U}, -- {0x5e080114, 0x201000U}, -- {0x5e080260, 0x800a1U}, -- {0x5e080268, 0x0U}, -- {0x5e08026c, 0x3d04U}, -- {0x5e080278, 0x10U}, -- {0x5e080800, 0x43d3bd80U}, -- {0x5e080804, 0x1f1f1f1fU}, -- {0x5e080810, 0x14084060U}, -- {0x5e080c00, 0x40000000U}, -- {0x5e081000, 0xc00000e3U}, -- {0x5e080d00, 0x81000200U}, -- {0x5e080d60, 0x0U}, -- {0x5e080d64, 0x80000000U}, -- {0x5e080d68, 0x3U}, -- {0x5e080d6c, 0xffffffffU}, -- {0x5e081220, 0x0U}, -- {0x5e081224, 0x0U}, -- {0x5e081228, 0x0U}, -- {0x5e08122c, 0x0U}, -- {0x5e081230, 0x0U}, -- {0x5e081234, 0x0U}, -- {0x5e081238, 0x0U}, -- {0x5e08123c, 0x0U}, -- {0x5e081240, 0x0U}, -- {0x5e081244, 0x0U}, -- {0x5e081248, 0x0U}, -- {0x5e08124c, 0x0U}, -- {0x5e081250, 0x0U}, -- {0x5e081254, 0x0U}, -- {0x5e081258, 0x0U}, -- {0x5e08125c, 0x0U}, --}; -- --/* DRAM fsp configurations */ --static struct ddrc_cfg_param ddr_dram_fsp0_ddrc_cfg[] = { -- {0x5e080100, 0x020D2100U}, -- {0x5e080104, 0x4866000CU}, -- {0x5e080108, 0xF2F28D47U}, -- {0x5e08010C, 0x20488010U}, -- {0x5e080124, 0x0C230000U}, -- {0x5e080160, 0x00000101U}, -- {0x5e08016C, 0x01300000U}, -- {0x5e080170, 0x8C010509U}, -- {0x5e080250, 0x00110C11U}, -- {0x5e080254, 0x00680040U}, -- {0x5e080258, 0x03003E80U}, -- {0x5e08025C, 0x40520200U}, -- {0x5e080300, 0x08110809U}, -- {0x5e080304, 0x00680F02U}, -- {0x5e080308, 0x06040603U}, -- {0x5e08030C, 0x0030001CU}, -- {0x5e080310, 0x20610000U}, -- {0x5e080314, 0x0A0A0407U}, --}; -- --/* PHY Initialize Configuration */ --static struct ddrphy_cfg_param ddr_ddrphy_cfg[] = { -- {0x10080, 0x7}, -- {0x10081, 0x5}, -- {0x10082, 0x6}, -- {0x10083, 0x1}, -- {0x10084, 0x2}, -- {0x10085, 0x0}, -- {0x10086, 0x3}, -- {0x10087, 0x4}, -- {0x11080, 0x0}, -- {0x11081, 0x1}, -- {0x11082, 0x2}, -- {0x11083, 0x3}, -- {0x11084, 0x4}, -- {0x11085, 0x7}, -- {0x11086, 0x6}, -- {0x11087, 0x5}, -- {0x12080, 0x5}, -- {0x12081, 0x6}, -- {0x12082, 0x1}, -- {0x12083, 0x7}, -- {0x12084, 0x4}, -- {0x12085, 0x2}, -- {0x12086, 0x0}, -- {0x12087, 0x3}, -- {0x13080, 0x0}, -- {0x13081, 0x3}, -- {0x13082, 0x2}, -- {0x13083, 0x7}, -- {0x13084, 0x4}, -- {0x13085, 0x5}, -- {0x13086, 0x6}, -- {0x13087, 0x1}, -- {0x30090, 0x4}, -- {0x30091, 0x3}, -- {0x30092, 0x6}, -- {0x30093, 0x0}, -- {0x30094, 0x5}, -- {0x30095, 0x1}, -- {0x30096, 0x2}, -- {0x31090, 0x1}, -- {0x31091, 0x3}, -- {0x31092, 0x4}, -- {0x31093, 0x6}, -- {0x31094, 0x2}, -- {0x31095, 0x0}, -- {0x31096, 0x5}, -- {0x20060, 0x2}, -- {0x200a5, 0x1}, -- {0xd0036, 0x0}, -- {0x200bd, 0xff}, -- {0x20300, 0x808}, -- {0x20303, 0x9}, -- {0x20302, 0x26}, -- {0x20328, 0x0}, -- {0x20301, 0x3}, -- {0x2030b, 0x0}, -- {0x300a7, 0x0}, -- {0x310a7, 0x0}, -- {0x300ae, 0x80}, -- {0x300ad, 0x80}, -- {0x300ac, 0x80}, -- {0x310ae, 0x80}, -- {0x310ad, 0x80}, -- {0x310ac, 0x80}, -- {0xc0086, 0x0}, -- {0x100a3, 0xb33}, -- {0x110a3, 0xb33}, -- {0x120a3, 0xb33}, -- {0x130a3, 0xb33}, -- {0xc00f1, 0x6000}, -- {0xc00f2, 0xa9}, -- {0xc00f3, 0x8000}, -- {0xc00f4, 0x5}, -- {0xc00f5, 0x4000}, -- {0xc00f6, 0x2}, -- {0xc00f7, 0xf000}, -- {0xc00f9, 0x6000}, -- {0xc00fa, 0xa9}, -- {0xc00fb, 0x8000}, -- {0xc00fd, 0x4000}, -- {0xc00ff, 0xf000}, -- {0x908ff, 0xf}, -- {0x10093, 0x0}, -- {0x11093, 0x0}, -- {0x12093, 0x0}, -- {0x13093, 0x0}, -- {0x20051, 0x3}, --}; -- --/* PHY trained csr */ --static struct ddrphy_cfg_param ddr_ddrphy_trained_csr[] = { -- {0x200a5, 0x0}, -- {0xd0036, 0x0}, -- {0x200bd, 0x0}, -- {0x20300, 0x0}, -- {0x20303, 0x0}, -- {0x20302, 0x0}, -- {0x20328, 0x0}, -- {0x20301, 0x0}, -- {0x2030b, 0x0}, -- {0x300a7, 0x0}, -- {0x310a7, 0x0}, -- {0x300ae, 0x0}, -- {0x300ad, 0x0}, -- {0x300ac, 0x0}, -- {0x310ae, 0x0}, -- {0x310ad, 0x0}, -- {0x310ac, 0x0}, -- {0xc0086, 0x0}, -- {0x100a3, 0x0}, -- {0x110a3, 0x0}, -- {0x120a3, 0x0}, -- {0x130a3, 0x0}, -- {0xc00f1, 0x0}, -- {0xc00f2, 0x0}, -- {0xc00f3, 0x0}, -- {0xc00f4, 0x0}, -- {0xc00f5, 0x0}, -- {0xc00f6, 0x0}, -- {0xc00f7, 0x0}, -- {0xc00f9, 0x0}, -- {0xc00fa, 0x0}, -- {0xc00fb, 0x0}, -- {0xc00fd, 0x0}, -- {0xc00ff, 0x0}, -- {0x908ff, 0x0}, -- {0x10093, 0x0}, -- {0x11093, 0x0}, -- {0x12093, 0x0}, -- {0x13093, 0x0}, -- {0x20051, 0x0}, -- {0x90802, 0x0}, -- {0x20002, 0x0}, -- {0x20000, 0x0}, -- {0x90801, 0x0}, -- {0x90809, 0x0}, -- {0x1005e, 0x0}, -- {0x10060, 0x0}, -- {0x10062, 0x0}, -- {0x10064, 0x0}, -- {0x1005f, 0x0}, -- {0x10061, 0x0}, -- {0x10063, 0x0}, -- {0x10065, 0x0}, -- {0x1105e, 0x0}, -- {0x11060, 0x0}, -- {0x11062, 0x0}, -- {0x11064, 0x0}, -- {0x1105f, 0x0}, -- {0x11061, 0x0}, -- {0x11063, 0x0}, -- {0x11065, 0x0}, -- {0x1205e, 0x0}, -- {0x12060, 0x0}, -- {0x12062, 0x0}, -- {0x12064, 0x0}, -- {0x1205f, 0x0}, -- {0x12061, 0x0}, -- {0x12063, 0x0}, -- {0x12065, 0x0}, -- {0x1305e, 0x0}, -- {0x13060, 0x0}, -- {0x13062, 0x0}, -- {0x13064, 0x0}, -- {0x1305f, 0x0}, -- {0x13061, 0x0}, -- {0x13063, 0x0}, -- {0x13065, 0x0}, -- {0x10005, 0x0}, -- {0x1000b, 0x0}, -- {0x11005, 0x0}, -- {0x1100b, 0x0}, -- {0x12005, 0x0}, -- {0x1200b, 0x0}, -- {0x13005, 0x0}, -- {0x1300b, 0x0}, -- {0x20007, 0x0}, -- {0x20013, 0x0}, -- {0x30038, 0x0}, -- {0x30039, 0x0}, -- {0x3003a, 0x0}, -- {0x31038, 0x0}, -- {0x31039, 0x0}, -- {0x3103a, 0x0}, -- {0x10038, 0x0}, -- {0x1003a, 0x0}, -- {0x11038, 0x0}, -- {0x1103a, 0x0}, -- {0x12038, 0x0}, -- {0x1203a, 0x0}, -- {0x13038, 0x0}, -- {0x1303a, 0x0}, -- {0x1003b, 0x0}, -- {0x1103b, 0x0}, -- {0x1203b, 0x0}, -- {0x1303b, 0x0}, -- {0x10009, 0x0}, -- {0x10037, 0x0}, -- {0x11009, 0x0}, -- {0x11037, 0x0}, -- {0x12009, 0x0}, -- {0x12037, 0x0}, -- {0x13009, 0x0}, -- {0x13037, 0x0}, -- {0x10004, 0x0}, -- {0x10003, 0x0}, -- {0x11004, 0x0}, -- {0x11003, 0x0}, -- {0x12004, 0x0}, -- {0x12003, 0x0}, -- {0x13004, 0x0}, -- {0x13003, 0x0}, -- {0x20004, 0x0}, -- {0x30050, 0x0}, -- {0x30051, 0x0}, -- {0x30052, 0x0}, -- {0x30053, 0x0}, -- {0x31050, 0x0}, -- {0x31051, 0x0}, -- {0x31052, 0x0}, -- {0x31053, 0x0}, -- {0x1004e, 0x0}, -- {0x1004f, 0x0}, -- {0x10050, 0x0}, -- {0x10051, 0x0}, -- {0x1014e, 0x0}, -- {0x1014f, 0x0}, -- {0x10150, 0x0}, -- {0x10151, 0x0}, -- {0x1024e, 0x0}, -- {0x1024f, 0x0}, -- {0x10250, 0x0}, -- {0x10251, 0x0}, -- {0x1034e, 0x0}, -- {0x1034f, 0x0}, -- {0x10350, 0x0}, -- {0x10351, 0x0}, -- {0x1044e, 0x0}, -- {0x1044f, 0x0}, -- {0x10450, 0x0}, -- {0x10451, 0x0}, -- {0x1054e, 0x0}, -- {0x1054f, 0x0}, -- {0x10550, 0x0}, -- {0x10551, 0x0}, -- {0x1064e, 0x0}, -- {0x1064f, 0x0}, -- {0x10650, 0x0}, -- {0x10651, 0x0}, -- {0x1074e, 0x0}, -- {0x1074f, 0x0}, -- {0x10750, 0x0}, -- {0x10751, 0x0}, -- {0x1084e, 0x0}, -- {0x1084f, 0x0}, -- {0x10850, 0x0}, -- {0x10851, 0x0}, -- {0x1104e, 0x0}, -- {0x1104f, 0x0}, -- {0x11050, 0x0}, -- {0x11051, 0x0}, -- {0x1114e, 0x0}, -- {0x1114f, 0x0}, -- {0x11150, 0x0}, -- {0x11151, 0x0}, -- {0x1124e, 0x0}, -- {0x1124f, 0x0}, -- {0x11250, 0x0}, -- {0x11251, 0x0}, -- {0x1134e, 0x0}, -- {0x1134f, 0x0}, -- {0x11350, 0x0}, -- {0x11351, 0x0}, -- {0x1144e, 0x0}, -- {0x1144f, 0x0}, -- {0x11450, 0x0}, -- {0x11451, 0x0}, -- {0x1154e, 0x0}, -- {0x1154f, 0x0}, -- {0x11550, 0x0}, -- {0x11551, 0x0}, -- {0x1164e, 0x0}, -- {0x1164f, 0x0}, -- {0x11650, 0x0}, -- {0x11651, 0x0}, -- {0x1174e, 0x0}, -- {0x1174f, 0x0}, -- {0x11750, 0x0}, -- {0x11751, 0x0}, -- {0x1184e, 0x0}, -- {0x1184f, 0x0}, -- {0x11850, 0x0}, -- {0x11851, 0x0}, -- {0x1204e, 0x0}, -- {0x1204f, 0x0}, -- {0x12050, 0x0}, -- {0x12051, 0x0}, -- {0x1214e, 0x0}, -- {0x1214f, 0x0}, -- {0x12150, 0x0}, -- {0x12151, 0x0}, -- {0x1224e, 0x0}, -- {0x1224f, 0x0}, -- {0x12250, 0x0}, -- {0x12251, 0x0}, -- {0x1234e, 0x0}, -- {0x1234f, 0x0}, -- {0x12350, 0x0}, -- {0x12351, 0x0}, -- {0x1244e, 0x0}, -- {0x1244f, 0x0}, -- {0x12450, 0x0}, -- {0x12451, 0x0}, -- {0x1254e, 0x0}, -- {0x1254f, 0x0}, -- {0x12550, 0x0}, -- {0x12551, 0x0}, -- {0x1264e, 0x0}, -- {0x1264f, 0x0}, -- {0x12650, 0x0}, -- {0x12651, 0x0}, -- {0x1274e, 0x0}, -- {0x1274f, 0x0}, -- {0x12750, 0x0}, -- {0x12751, 0x0}, -- {0x1284e, 0x0}, -- {0x1284f, 0x0}, -- {0x12850, 0x0}, -- {0x12851, 0x0}, -- {0x1304e, 0x0}, -- {0x1304f, 0x0}, -- {0x13050, 0x0}, -- {0x13051, 0x0}, -- {0x1314e, 0x0}, -- {0x1314f, 0x0}, -- {0x13150, 0x0}, -- {0x13151, 0x0}, -- {0x1324e, 0x0}, -- {0x1324f, 0x0}, -- {0x13250, 0x0}, -- {0x13251, 0x0}, -- {0x1334e, 0x0}, -- {0x1334f, 0x0}, -- {0x13350, 0x0}, -- {0x13351, 0x0}, -- {0x1344e, 0x0}, -- {0x1344f, 0x0}, -- {0x13450, 0x0}, -- {0x13451, 0x0}, -- {0x1354e, 0x0}, -- {0x1354f, 0x0}, -- {0x13550, 0x0}, -- {0x13551, 0x0}, -- {0x1364e, 0x0}, -- {0x1364f, 0x0}, -- {0x13650, 0x0}, -- {0x13651, 0x0}, -- {0x1374e, 0x0}, -- {0x1374f, 0x0}, -- {0x13750, 0x0}, -- {0x13751, 0x0}, -- {0x1384e, 0x0}, -- {0x1384f, 0x0}, -- {0x13850, 0x0}, -- {0x13851, 0x0}, -- {0x30030, 0x0}, -- {0x30031, 0x0}, -- {0x30035, 0x0}, -- {0x31030, 0x0}, -- {0x31031, 0x0}, -- {0x31035, 0x0}, -- {0x10030, 0x0}, -- {0x10035, 0x0}, -- {0x10036, 0x0}, -- {0x11030, 0x0}, -- {0x11035, 0x0}, -- {0x11036, 0x0}, -- {0x12030, 0x0}, -- {0x12035, 0x0}, -- {0x12036, 0x0}, -- {0x13030, 0x0}, -- {0x13035, 0x0}, -- {0x13036, 0x0}, -- {0x3003c, 0x0}, -- {0x3103c, 0x0}, -- {0x1003c, 0x0}, -- {0x1003d, 0x0}, -- {0x1003e, 0x0}, -- {0x1103c, 0x0}, -- {0x1103d, 0x0}, -- {0x1103e, 0x0}, -- {0x1203c, 0x0}, -- {0x1203d, 0x0}, -- {0x1203e, 0x0}, -- {0x1303c, 0x0}, -- {0x1303d, 0x0}, -- {0x1303e, 0x0}, -- {0x20003, 0x0}, -- {0x10006, 0x0}, -- {0x11006, 0x0}, -- {0x12006, 0x0}, -- {0x13006, 0x0}, -- {0x20001, 0x0}, -- {0x20009, 0x0}, -- {0x20008, 0x0}, -- {0x200d9, 0x0}, -- {0x30eef, 0x0}, -- {0x31eef, 0x0}, -- {0x20014, 0x0}, -- {0x9080a, 0x0}, -- {0x10040, 0x0}, -- {0x10042, 0x0}, -- {0x9080d, 0x0}, -- {0x10043, 0x0}, -- {0x10044, 0x0}, -- {0x10045, 0x0}, -- {0x11040, 0x0}, -- {0x11042, 0x0}, -- {0x11043, 0x0}, -- {0x11044, 0x0}, -- {0x11045, 0x0}, -- {0x12040, 0x0}, -- {0x12042, 0x0}, -- {0x12043, 0x0}, -- {0x12044, 0x0}, -- {0x12045, 0x0}, -- {0x13040, 0x0}, -- {0x13042, 0x0}, -- {0x13043, 0x0}, -- {0x13044, 0x0}, -- {0x13045, 0x0}, -- {0x30040, 0x0}, -- {0x30041, 0x0}, -- {0x30042, 0x0}, -- {0x30043, 0x0}, -- {0x30330, 0x0}, -- {0x31040, 0x0}, -- {0x31041, 0x0}, -- {0x31042, 0x0}, -- {0x31043, 0x0}, -- {0x31330, 0x0}, -- {0x20331, 0x0}, -- {0x10048, 0x0}, -- {0x1004a, 0x0}, -- {0x1004b, 0x0}, -- {0x1004c, 0x0}, -- {0x1004d, 0x0}, -- {0x11048, 0x0}, -- {0x1104a, 0x0}, -- {0x1104b, 0x0}, -- {0x1104c, 0x0}, -- {0x1104d, 0x0}, -- {0x12048, 0x0}, -- {0x1204a, 0x0}, -- {0x1204b, 0x0}, -- {0x1204c, 0x0}, -- {0x1204d, 0x0}, -- {0x13048, 0x0}, -- {0x1304a, 0x0}, -- {0x1304b, 0x0}, -- {0x1304c, 0x0}, -- {0x1304d, 0x0}, -- {0x30048, 0x0}, -- {0x30049, 0x0}, -- {0x3004a, 0x0}, -- {0x3004b, 0x0}, -- {0x31048, 0x0}, -- {0x31049, 0x0}, -- {0x3104a, 0x0}, -- {0x3104b, 0x0}, -- {0x30033, 0x0}, -- {0x30034, 0x0}, -- {0x3002e, 0x0}, -- {0x31033, 0x0}, -- {0x31034, 0x0}, -- {0x3102e, 0x0}, -- {0x10033, 0x0}, -- {0x1002e, 0x0}, -- {0x1002f, 0x0}, -- {0x11033, 0x0}, -- {0x1102e, 0x0}, -- {0x1102f, 0x0}, -- {0x12033, 0x0}, -- {0x1202e, 0x0}, -- {0x1202f, 0x0}, -- {0x13033, 0x0}, -- {0x1302e, 0x0}, -- {0x1302f, 0x0}, -- {0x90806, 0x0}, -- {0x100e8, 0x0}, -- {0x100e9, 0x0}, -- {0x110e8, 0x0}, -- {0x110e9, 0x0}, -- {0x120e8, 0x0}, -- {0x120e9, 0x0}, -- {0x130e8, 0x0}, -- {0x130e9, 0x0}, -- {0x10001, 0x0}, -- {0x11001, 0x0}, -- {0x12001, 0x0}, -- {0x13001, 0x0}, -- {0x20012, 0x0}, -- {0x20017, 0x0}, -- {0x2000a, 0x0}, -- {0x20186, 0x0}, -- {0x20187, 0x0}, -- {0x20010, 0x0}, -- {0x20011, 0x0}, -- {0x9080b, 0x0}, -- {0x9080c, 0x0}, -- {0x100a5, 0x0}, -- {0x110a5, 0x0}, -- {0x120a5, 0x0}, -- {0x130a5, 0x0}, -- {0x10014, 0x0}, -- {0x11014, 0x0}, -- {0x12014, 0x0}, -- {0x13014, 0x0}, -- {0x20035, 0x0}, -- {0x20036, 0x0}, -- {0x20037, 0x0}, -- {0x20038, 0x0}, -- {0x20039, 0x0}, -- {0x2003a, 0x0}, -- {0x2003b, 0x0}, -- {0x2003c, 0x0}, -- {0x2003d, 0x0}, -- {0x2003e, 0x0}, -- {0x2003f, 0x0}, -- {0x20040, 0x0}, -- {0x2002c, 0x0}, -- {0x2002d, 0x0}, -- {0x20030, 0x0}, -- {0x2002e, 0x0}, -- {0x2002f, 0x0}, -- {0x2000c, 0x0}, -- {0x2001b, 0x0}, -- {0x10007, 0x0}, -- {0x11007, 0x0}, -- {0x12007, 0x0}, -- {0x13007, 0x0}, -- {0x908f0, 0x0}, -- {0x908f1, 0x0}, -- {0x908f2, 0x0}, -- {0x908f3, 0x0}, -- {0x908f4, 0x0}, -- {0x908f5, 0x0}, -- {0x908f6, 0x0}, -- {0x908f7, 0x0}, -- {0x41008, 0x0}, -- {0x41009, 0x0}, -- {0x4100a, 0x0}, -- {0x4100b, 0x0}, -- {0x4100c, 0x0}, -- {0x4100d, 0x0}, -- {0x4100e, 0x0}, -- {0x4100f, 0x0}, -- {0x41010, 0x0}, -- {0x41011, 0x0}, -- {0x41012, 0x0}, -- {0x41013, 0x0}, -- {0x41014, 0x0}, -- {0x41015, 0x0}, -- {0x41016, 0x0}, -- {0x41017, 0x0}, -- {0x41018, 0x0}, -- {0x41019, 0x0}, -- {0x4101a, 0x0}, -- {0x4101b, 0x0}, -- {0x4101c, 0x0}, -- {0x4101d, 0x0}, -- {0x4101e, 0x0}, -- {0x4101f, 0x0}, -- {0x41020, 0x0}, -- {0x41021, 0x0}, -- {0x41022, 0x0}, -- {0x41023, 0x0}, -- {0x41024, 0x0}, -- {0x41025, 0x0}, -- {0x41026, 0x0}, -- {0x41027, 0x0}, -- {0x41028, 0x0}, -- {0x41029, 0x0}, -- {0x4102a, 0x0}, -- {0x4102b, 0x0}, -- {0x4102c, 0x0}, -- {0x4102d, 0x0}, -- {0x4102e, 0x0}, -- {0x4102f, 0x0}, -- {0x41030, 0x0}, -- {0x41031, 0x0}, -- {0x41032, 0x0}, -- {0x41033, 0x0}, -- {0x41034, 0x0}, -- {0x41035, 0x0}, -- {0x41036, 0x0}, -- {0x41037, 0x0}, -- {0x41038, 0x0}, -- {0x41039, 0x0}, -- {0x4103a, 0x0}, -- {0x4103b, 0x0}, -- {0x4103c, 0x0}, -- {0x4103d, 0x0}, -- {0x4103e, 0x0}, -- {0x4103f, 0x0}, -- {0x41040, 0x0}, -- {0x41041, 0x0}, -- {0x41042, 0x0}, -- {0x41043, 0x0}, -- {0x41044, 0x0}, -- {0x41045, 0x0}, -- {0x41046, 0x0}, -- {0x41047, 0x0}, -- {0x41048, 0x0}, -- {0x41049, 0x0}, -- {0x4104a, 0x0}, -- {0x4104b, 0x0}, -- {0x4104c, 0x0}, -- {0x4104d, 0x0}, -- {0x4104e, 0x0}, -- {0x4104f, 0x0}, -- {0x41050, 0x0}, -- {0x41051, 0x0}, -- {0x41052, 0x0}, -- {0x41053, 0x0}, -- {0x41054, 0x0}, -- {0x41055, 0x0}, -- {0x41056, 0x0}, -- {0x41057, 0x0}, -- {0x41058, 0x0}, -- {0x41059, 0x0}, -- {0x4105a, 0x0}, -- {0x4105b, 0x0}, -- {0x4105c, 0x0}, -- {0x4105d, 0x0}, -- {0x4105e, 0x0}, -- {0x4105f, 0x0}, -- {0x41060, 0x0}, -- {0x41061, 0x0}, -- {0x41062, 0x0}, -- {0x41063, 0x0}, -- {0x41064, 0x0}, -- {0x41065, 0x0}, -- {0x41066, 0x0}, -- {0x41067, 0x0}, -- {0x41068, 0x0}, -- {0x41069, 0x0}, -- {0x4106a, 0x0}, -- {0x4106b, 0x0}, -- {0x4106c, 0x0}, -- {0x4106d, 0x0}, -- {0x4106e, 0x0}, -- {0x4106f, 0x0}, -- {0x41070, 0x0}, -- {0x41071, 0x0}, -- {0x41072, 0x0}, -- {0x41073, 0x0}, -- {0x41074, 0x0}, -- {0x41075, 0x0}, -- {0x41076, 0x0}, -- {0x41077, 0x0}, -- {0x41078, 0x0}, -- {0x41079, 0x0}, -- {0x4107a, 0x0}, -- {0x4107b, 0x0}, -- {0x4107c, 0x0}, -- {0x4107d, 0x0}, -- {0x4107e, 0x0}, -- {0x4107f, 0x0}, -- {0x41080, 0x0}, -- {0x41081, 0x0}, -- {0x41082, 0x0}, -- {0x41083, 0x0}, -- {0x41084, 0x0}, -- {0x41085, 0x0}, -- {0x41086, 0x0}, -- {0x41087, 0x0}, -- {0x41088, 0x0}, -- {0x41089, 0x0}, -- {0x4108a, 0x0}, -- {0x4108b, 0x0}, -- {0x4108c, 0x0}, -- {0x4108d, 0x0}, -- {0x4108e, 0x0}, -- {0x4108f, 0x0}, -- {0x41090, 0x0}, -- {0x41091, 0x0}, -- {0x41092, 0x0}, -- {0x41093, 0x0}, -- {0x41094, 0x0}, -- {0x41095, 0x0}, -- {0x41096, 0x0}, -- {0x41097, 0x0}, -- {0x41098, 0x0}, -- {0x41099, 0x0}, -- {0x4109a, 0x0}, -- {0x4109b, 0x0}, -- {0x4109c, 0x0}, -- {0x4109d, 0x0}, -- {0x4109e, 0x0}, -- {0x4109f, 0x0}, -- {0x410a0, 0x0}, -- {0x410a1, 0x0}, -- {0x410a2, 0x0}, -- {0x410a3, 0x0}, -- {0x410a4, 0x0}, -- {0x410a5, 0x0}, -- {0x410a6, 0x0}, -- {0x410a7, 0x0}, -- {0x410a8, 0x0}, -- {0x410a9, 0x0}, -- {0x410aa, 0x0}, -- {0x410ab, 0x0}, -- {0x410ac, 0x0}, -- {0x410ad, 0x0}, -- {0x410ae, 0x0}, -- {0x410af, 0x0}, -- {0x410b0, 0x0}, -- {0x410b1, 0x0}, -- {0x410b2, 0x0}, -- {0x410b3, 0x0}, -- {0x410b4, 0x0}, -- {0x410b5, 0x0}, -- {0x410b6, 0x0}, -- {0x410b7, 0x0}, -- {0x410b8, 0x0}, -- {0x410b9, 0x0}, -- {0x410ba, 0x0}, -- {0x410bb, 0x0}, -- {0x410bc, 0x0}, -- {0x410bd, 0x0}, -- {0x410be, 0x0}, -- {0x410bf, 0x0}, -- {0x410c0, 0x0}, -- {0x410c1, 0x0}, -- {0x410c2, 0x0}, -- {0x410c3, 0x0}, -- {0x410c4, 0x0}, -- {0x410c5, 0x0}, -- {0x410c6, 0x0}, -- {0x410c7, 0x0}, -- {0x410c8, 0x0}, -- {0x410c9, 0x0}, -- {0x410ca, 0x0}, -- {0x410cb, 0x0}, -- {0x410cc, 0x0}, -- {0x410cd, 0x0}, -- {0x410ce, 0x0}, -- {0x410cf, 0x0}, -- {0x410d0, 0x0}, -- {0x410d1, 0x0}, -- {0x410d2, 0x0}, -- {0x410d3, 0x0}, -- {0x410d4, 0x0}, -- {0x410d5, 0x0}, -- {0x410d6, 0x0}, -- {0x410d7, 0x0}, -- {0x410d8, 0x0}, -- {0x410d9, 0x0}, -- {0x410da, 0x0}, -- {0x410db, 0x0}, -- {0x410dc, 0x0}, -- {0x410dd, 0x0}, -- {0x410de, 0x0}, -- {0x410df, 0x0}, -- {0x410e0, 0x0}, -- {0x410e1, 0x0}, -- {0x410e2, 0x0}, -- {0x410e3, 0x0}, -- {0x410e4, 0x0}, -- {0x410e5, 0x0}, -- {0x410e6, 0x0}, -- {0x410e7, 0x0}, -- {0x410e8, 0x0}, -- {0x410e9, 0x0}, -- {0x410ea, 0x0}, -- {0x410eb, 0x0}, -- {0x410ec, 0x0}, -- {0x410ed, 0x0}, -- {0x410ee, 0x0}, -- {0x410ef, 0x0}, -- {0x410f0, 0x0}, -- {0x410f1, 0x0}, -- {0x410f2, 0x0}, -- {0x410f3, 0x0}, -- {0x410f4, 0x0}, -- {0x410f5, 0x0}, -- {0x410f6, 0x0}, -- {0x410f7, 0x0}, -- {0x410f8, 0x0}, -- {0x410f9, 0x0}, -- {0x410fa, 0x0}, -- {0x410fb, 0x0}, -- {0x410fc, 0x0}, -- {0x410fd, 0x0}, -- {0x410fe, 0x0}, -- {0x410ff, 0x0}, -- {0x41100, 0x0}, -- {0x41101, 0x0}, -- {0x41102, 0x0}, -- {0x41103, 0x0}, -- {0x41104, 0x0}, -- {0x41105, 0x0}, -- {0x41106, 0x0}, -- {0x41107, 0x0}, -- {0x41108, 0x0}, -- {0x41109, 0x0}, -- {0x4110a, 0x0}, -- {0x4110b, 0x0}, -- {0x4110c, 0x0}, -- {0x4110d, 0x0}, -- {0x4110e, 0x0}, -- {0x4110f, 0x0}, -- {0x41110, 0x0}, -- {0x41111, 0x0}, -- {0x41112, 0x0}, -- {0x41113, 0x0}, -- {0x41114, 0x0}, -- {0x41115, 0x0}, -- {0x41116, 0x0}, -- {0x41117, 0x0}, -- {0x41118, 0x0}, -- {0x41119, 0x0}, -- {0x4111a, 0x0}, -- {0x4111b, 0x0}, -- {0x4111c, 0x0}, -- {0x4111d, 0x0}, -- {0x4111e, 0x0}, -- {0x4111f, 0x0}, -- {0x41120, 0x0}, -- {0x41121, 0x0}, -- {0x41122, 0x0}, -- {0x41123, 0x0}, -- {0x41124, 0x0}, -- {0x41125, 0x0}, -- {0x41126, 0x0}, -- {0x41127, 0x0}, -- {0x41128, 0x0}, -- {0x41129, 0x0}, -- {0x4112a, 0x0}, -- {0x4112b, 0x0}, -- {0x4112c, 0x0}, -- {0x4112d, 0x0}, -- {0x4112e, 0x0}, -- {0x4112f, 0x0}, -- {0x41130, 0x0}, -- {0x41131, 0x0}, -- {0x41132, 0x0}, -- {0x41133, 0x0}, -- {0x41134, 0x0}, -- {0x41135, 0x0}, -- {0x41136, 0x0}, -- {0x41137, 0x0}, -- {0x41138, 0x0}, -- {0x41139, 0x0}, -- {0x4113a, 0x0}, -- {0x4113b, 0x0}, -- {0x4113c, 0x0}, -- {0x4113d, 0x0}, -- {0x4113e, 0x0}, -- {0x4113f, 0x0}, -- {0x41140, 0x0}, -- {0x41141, 0x0}, -- {0x41142, 0x0}, -- {0x41143, 0x0}, -- {0x41144, 0x0}, -- {0x41145, 0x0}, -- {0x41146, 0x0}, -- {0x41147, 0x0}, -- {0x41148, 0x0}, -- {0x41149, 0x0}, -- {0x4114a, 0x0}, -- {0x4114b, 0x0}, -- {0x4114c, 0x0}, -- {0x4114d, 0x0}, -- {0x4114e, 0x0}, -- {0x4114f, 0x0}, -- {0x41150, 0x0}, -- {0x41151, 0x0}, -- {0x41152, 0x0}, -- {0x41153, 0x0}, -- {0x41154, 0x0}, -- {0x41155, 0x0}, -- {0x41156, 0x0}, -- {0x41157, 0x0}, -- {0x41158, 0x0}, -- {0x41159, 0x0}, -- {0x4115a, 0x0}, -- {0x4115b, 0x0}, -- {0x4115c, 0x0}, -- {0x4115d, 0x0}, -- {0x4115e, 0x0}, -- {0x4115f, 0x0}, -- {0x41160, 0x0}, -- {0x41161, 0x0}, -- {0x41162, 0x0}, -- {0x41163, 0x0}, -- {0x41164, 0x0}, -- {0x41165, 0x0}, -- {0x41166, 0x0}, -- {0x41167, 0x0}, -- {0x41168, 0x0}, -- {0x41169, 0x0}, -- {0x4116a, 0x0}, -- {0x4116b, 0x0}, -- {0x4116c, 0x0}, -- {0x4116d, 0x0}, -- {0x4116e, 0x0}, -- {0x4116f, 0x0}, -- {0x41170, 0x0}, -- {0x41171, 0x0}, -- {0x41172, 0x0}, -- {0x41173, 0x0}, -- {0x41174, 0x0}, -- {0x41175, 0x0}, -- {0x41176, 0x0}, -- {0x41177, 0x0}, -- {0x41178, 0x0}, -- {0x41179, 0x0}, -- {0x4117a, 0x0}, -- {0x4117b, 0x0}, -- {0x4117c, 0x0}, -- {0x4117d, 0x0}, -- {0x4117e, 0x0}, -- {0x4117f, 0x0}, -- {0x41180, 0x0}, -- {0x41181, 0x0}, -- {0x41182, 0x0}, -- {0x41183, 0x0}, -- {0x41184, 0x0}, -- {0x41185, 0x0}, -- {0x41186, 0x0}, -- {0x41187, 0x0}, -- {0x41188, 0x0}, -- {0x41189, 0x0}, -- {0x4118a, 0x0}, -- {0x4118b, 0x0}, -- {0x4118c, 0x0}, -- {0x4118d, 0x0}, -- {0x4118e, 0x0}, -- {0x4118f, 0x0}, -- {0x41190, 0x0}, -- {0x41191, 0x0}, -- {0x41192, 0x0}, -- {0x41193, 0x0}, -- {0x41194, 0x0}, -- {0x41195, 0x0}, -- {0x41196, 0x0}, -- {0x41197, 0x0}, -- {0x41198, 0x0}, -- {0x41199, 0x0}, -- {0x4119a, 0x0}, -- {0x4119b, 0x0}, -- {0x4119c, 0x0}, -- {0x4119d, 0x0}, -- {0x4119e, 0x0}, -- {0x4119f, 0x0}, -- {0x411a0, 0x0}, -- {0x411a1, 0x0}, -- {0x411a2, 0x0}, -- {0x411a3, 0x0}, -- {0x411a4, 0x0}, -- {0x411a5, 0x0}, -- {0x411a6, 0x0}, -- {0x411a7, 0x0}, -- {0x411a8, 0x0}, -- {0x411a9, 0x0}, -- {0x411aa, 0x0}, -- {0x411ab, 0x0}, -- {0x411ac, 0x0}, -- {0x411ad, 0x0}, -- {0x411ae, 0x0}, -- {0x411af, 0x0}, -- {0x411b0, 0x0}, -- {0x411b1, 0x0}, -- {0x411b2, 0x0}, -- {0x411b3, 0x0}, -- {0x411b4, 0x0}, -- {0x411b5, 0x0}, -- {0x411b6, 0x0}, -- {0x411b7, 0x0}, -- {0x411b8, 0x0}, -- {0x411b9, 0x0}, -- {0x411ba, 0x0}, -- {0x411bb, 0x0}, -- {0x411bc, 0x0}, -- {0x411bd, 0x0}, -- {0x411be, 0x0}, -- {0x411bf, 0x0}, -- {0x411c0, 0x0}, -- {0x411c1, 0x0}, -- {0x411c2, 0x0}, -- {0x411c3, 0x0}, -- {0x411c4, 0x0}, -- {0x411c5, 0x0}, -- {0x411c6, 0x0}, -- {0x411c7, 0x0}, -- {0x20015, 0x0}, -- {0x2004a, 0x0}, -- {0x2004b, 0x0}, -- {0x2004c, 0x0}, -- {0x2004d, 0x0}, -- {0x20088, 0x0}, -- {0x20089, 0x0}, -- {0x2008a, 0x0}, -- {0x2008c, 0x0}, -- {0x20041, 0x0}, -- {0x20045, 0x0}, -- {0x10057, 0x0}, -- {0x11057, 0x0}, -- {0x12057, 0x0}, -- {0x13057, 0x0}, -- {0x1000f, 0x0}, -- {0x1100f, 0x0}, -- {0x1200f, 0x0}, -- {0x1300f, 0x0}, -- {0x90803, 0x0}, -- {0x90804, 0x0}, -- {0x90805, 0x0}, -- {0x90903, 0x0}, -- {0x9090b, 0x0}, -- {0x90811, 0x0}, -- {0x90812, 0x0}, -- {0x20072, 0x0}, -- {0x9080e, 0x0}, -- {0x20073, 0x0}, -- {0x9080f, 0x0}, -- {0x41000, 0x0}, -- {0x41001, 0x0}, -- {0x41002, 0x0}, -- {0x41003, 0x0}, -- {0x41004, 0x0}, -- {0x41005, 0x0}, -- {0x41006, 0x0}, -- {0x41007, 0x0}, -- {0x41388, 0x0}, -- {0x41389, 0x0}, -- {0x4138a, 0x0}, -- {0x4138b, 0x0}, -- {0x4138c, 0x0}, -- {0x4138d, 0x0}, -- {0x4138e, 0x0}, -- {0x4138f, 0x0}, -- {0x41390, 0x0}, -- {0x41391, 0x0}, -- {0x41392, 0x0}, -- {0x41393, 0x0}, -- {0x41394, 0x0}, -- {0x41395, 0x0}, -- {0x41396, 0x0}, -- {0x41397, 0x0}, -- {0x41398, 0x0}, -- {0x41399, 0x0}, -- {0x4139a, 0x0}, -- {0x4139b, 0x0}, -- {0x4139c, 0x0}, -- {0x4139d, 0x0}, -- {0x4139e, 0x0}, -- {0x4139f, 0x0}, -- {0x413a0, 0x0}, -- {0x413a1, 0x0}, -- {0x413a2, 0x0}, -- {0x413a3, 0x0}, -- {0x413a4, 0x0}, -- {0x413a5, 0x0}, -- {0x413a6, 0x0}, -- {0x413a7, 0x0}, -- {0x413a8, 0x0}, -- {0x413a9, 0x0}, -- {0x413aa, 0x0}, -- {0x413ab, 0x0}, -- {0x413ac, 0x0}, -- {0x413ad, 0x0}, -- {0x413ae, 0x0}, -- {0x413af, 0x0}, -- {0x413b0, 0x0}, -- {0x413b1, 0x0}, -- {0x413b2, 0x0}, -- {0x413b3, 0x0}, -- {0x413b4, 0x0}, -- {0x413b5, 0x0}, -- {0x413b6, 0x0}, -- {0x413b7, 0x0}, -- {0x413b8, 0x0}, -- {0x413b9, 0x0}, -- {0x413ba, 0x0}, -- {0x413bb, 0x0}, -- {0x413bc, 0x0}, -- {0x413bd, 0x0}, -- {0x413be, 0x0}, -- {0x413bf, 0x0}, -- {0x413c0, 0x0}, -- {0x413c1, 0x0}, -- {0x413c2, 0x0}, -- {0x413c3, 0x0}, -- {0x413c4, 0x0}, -- {0x413c5, 0x0}, -- {0x413c6, 0x0}, -- {0x413c7, 0x0}, -- {0x413c8, 0x0}, -- {0x413c9, 0x0}, -- {0x413ca, 0x0}, -- {0x413cb, 0x0}, -- {0x413cc, 0x0}, -- {0x413cd, 0x0}, -- {0x413ce, 0x0}, -- {0x413cf, 0x0}, -- {0x413d0, 0x0}, -- {0x413d1, 0x0}, -- {0x413d2, 0x0}, -- {0x413d3, 0x0}, -- {0x413d4, 0x0}, -- {0x413d5, 0x0}, -- {0x413d6, 0x0}, -- {0x413d7, 0x0}, -- {0x413d8, 0x0}, -- {0x413d9, 0x0}, -- {0x413da, 0x0}, -- {0x413db, 0x0}, -- {0x413dc, 0x0}, -- {0x413dd, 0x0}, -- {0x413de, 0x0}, -- {0x413df, 0x0}, -- {0x413e0, 0x0}, -- {0x413e1, 0x0}, -- {0x413e2, 0x0}, -- {0x413e3, 0x0}, -- {0x413e4, 0x0}, -- {0x413e5, 0x0}, -- {0x413e6, 0x0}, -- {0x413e7, 0x0}, -- {0x413e8, 0x0}, -- {0x413e9, 0x0}, -- {0x413ea, 0x0}, -- {0x413eb, 0x0}, -- {0x413ec, 0x0}, -- {0x413ed, 0x0}, -- {0x413ee, 0x0}, -- {0x413ef, 0x0}, -- {0x413f0, 0x0}, -- {0x413f1, 0x0}, -- {0x413f2, 0x0}, -- {0x413f3, 0x0}, -- {0x413f4, 0x0}, -- {0x413f5, 0x0}, -- {0x413f6, 0x0}, -- {0x413f7, 0x0}, -- {0x413f8, 0x0}, -- {0x413f9, 0x0}, -- {0x413fa, 0x0}, -- {0x413fb, 0x0}, -- {0x413fc, 0x0}, -- {0x413fd, 0x0}, -- {0x413fe, 0x0}, -- {0x413ff, 0x0}, -- {0x41400, 0x0}, -- {0x41401, 0x0}, -- {0x41402, 0x0}, -- {0x41403, 0x0}, -- {0x41404, 0x0}, -- {0x41405, 0x0}, -- {0x41406, 0x0}, -- {0x41407, 0x0}, -- {0x41408, 0x0}, -- {0x41409, 0x0}, -- {0x4140a, 0x0}, -- {0x4140b, 0x0}, -- {0x4140c, 0x0}, -- {0x4140d, 0x0}, -- {0x4140e, 0x0}, -- {0x4140f, 0x0}, -- {0x41410, 0x0}, -- {0x41411, 0x0}, -- {0x41412, 0x0}, -- {0x41413, 0x0}, -- {0x41414, 0x0}, -- {0x41415, 0x0}, -- {0x41416, 0x0}, -- {0x41417, 0x0}, -- {0x41418, 0x0}, -- {0x41419, 0x0}, -- {0x4141a, 0x0}, -- {0x4141b, 0x0}, -- {0x4141c, 0x0}, -- {0x4141d, 0x0}, -- {0x4141e, 0x0}, -- {0x4141f, 0x0}, -- {0x41420, 0x0}, -- {0x41421, 0x0}, -- {0x41422, 0x0}, -- {0x41423, 0x0}, -- {0x41424, 0x0}, -- {0x41425, 0x0}, -- {0x41426, 0x0}, -- {0x41427, 0x0}, -- {0x41428, 0x0}, -- {0x41429, 0x0}, -- {0x4142a, 0x0}, -- {0x4142b, 0x0}, -- {0x4142c, 0x0}, -- {0x4142d, 0x0}, -- {0x4142e, 0x0}, -- {0x4142f, 0x0}, -- {0x41430, 0x0}, -- {0x41431, 0x0}, -- {0x41432, 0x0}, -- {0x41433, 0x0}, -- {0x41434, 0x0}, -- {0x41435, 0x0}, -- {0x41436, 0x0}, -- {0x41437, 0x0}, -- {0x41438, 0x0}, -- {0x41439, 0x0}, -- {0x4143a, 0x0}, -- {0x4143b, 0x0}, -- {0x4143c, 0x0}, -- {0x4143d, 0x0}, -- {0x4143e, 0x0}, -- {0x4143f, 0x0}, -- {0x41440, 0x0}, -- {0x41441, 0x0}, -- {0x41442, 0x0}, -- {0x41443, 0x0}, -- {0x41444, 0x0}, -- {0x41445, 0x0}, -- {0x41446, 0x0}, -- {0x41447, 0x0}, -- {0x41448, 0x0}, -- {0x41449, 0x0}, -- {0x4144a, 0x0}, -- {0x4144b, 0x0}, -- {0x4144c, 0x0}, -- {0x4144d, 0x0}, -- {0x4144e, 0x0}, -- {0x4144f, 0x0}, -- {0x41450, 0x0}, -- {0x41451, 0x0}, -- {0x41452, 0x0}, -- {0x41453, 0x0}, -- {0x41454, 0x0}, -- {0x41455, 0x0}, -- {0x41456, 0x0}, -- {0x41457, 0x0}, -- {0x41458, 0x0}, -- {0x41459, 0x0}, -- {0x4145a, 0x0}, -- {0x4145b, 0x0}, -- {0x4145c, 0x0}, -- {0x4145d, 0x0}, -- {0x4145e, 0x0}, -- {0x4145f, 0x0}, -- {0x41460, 0x0}, -- {0x41461, 0x0}, -- {0x41462, 0x0}, -- {0x41463, 0x0}, -- {0x41464, 0x0}, -- {0x41465, 0x0}, -- {0x41466, 0x0}, -- {0x41467, 0x0}, -- {0x41468, 0x0}, -- {0x41469, 0x0}, -- {0x4146a, 0x0}, -- {0x4146b, 0x0}, -- {0x4146c, 0x0}, -- {0x4146d, 0x0}, -- {0x4146e, 0x0}, -- {0x4146f, 0x0}, -- {0x41470, 0x0}, -- {0x41471, 0x0}, -- {0x41472, 0x0}, -- {0x41473, 0x0}, -- {0x41474, 0x0}, -- {0x41475, 0x0}, -- {0x41476, 0x0}, -- {0x41477, 0x0}, -- {0x41478, 0x0}, -- {0x41479, 0x0}, -- {0x4147a, 0x0}, -- {0x4147b, 0x0}, -- {0x4147c, 0x0}, -- {0x4147d, 0x0}, -- {0x4147e, 0x0}, -- {0x4147f, 0x0}, -- {0x41480, 0x0}, -- {0x41481, 0x0}, -- {0x41482, 0x0}, -- {0x41483, 0x0}, -- {0x41484, 0x0}, -- {0x41485, 0x0}, -- {0x41486, 0x0}, -- {0x41487, 0x0}, -- {0x41488, 0x0}, -- {0x41489, 0x0}, -- {0x4148a, 0x0}, -- {0x4148b, 0x0}, -- {0x4148c, 0x0}, -- {0x4148d, 0x0}, -- {0x4148e, 0x0}, -- {0x4148f, 0x0}, -- {0x41490, 0x0}, -- {0x41491, 0x0}, -- {0x41492, 0x0}, -- {0x41493, 0x0}, -- {0x41494, 0x0}, -- {0x41495, 0x0}, -- {0x41496, 0x0}, -- {0x41497, 0x0}, -- {0x41498, 0x0}, -- {0x41499, 0x0}, -- {0x4149a, 0x0}, -- {0x4149b, 0x0}, -- {0x4149c, 0x0}, -- {0x4149d, 0x0}, -- {0x4149e, 0x0}, -- {0x4149f, 0x0}, -- {0x414a0, 0x0}, -- {0x414a1, 0x0}, -- {0x414a2, 0x0}, -- {0x414a3, 0x0}, -- {0x414a4, 0x0}, -- {0x414a5, 0x0}, -- {0x414a6, 0x0}, -- {0x414a7, 0x0}, -- {0x414a8, 0x0}, -- {0x414a9, 0x0}, -- {0x414aa, 0x0}, -- {0x414ab, 0x0}, -- {0x414ac, 0x0}, -- {0x414ad, 0x0}, -- {0x414ae, 0x0}, -- {0x414af, 0x0}, -- {0x414b0, 0x0}, -- {0x414b1, 0x0}, -- {0x414b2, 0x0}, -- {0x414b3, 0x0}, -- {0x414b4, 0x0}, -- {0x414b5, 0x0}, -- {0x414b6, 0x0}, -- {0x414b7, 0x0}, -- {0x414b8, 0x0}, -- {0x414b9, 0x0}, -- {0x414ba, 0x0}, -- {0x414bb, 0x0}, -- {0x414bc, 0x0}, -- {0x414bd, 0x0}, -- {0x414be, 0x0}, -- {0x414bf, 0x0}, -- {0x414c0, 0x0}, -- {0x414c1, 0x0}, -- {0x414c2, 0x0}, -- {0x414c3, 0x0}, -- {0x414c4, 0x0}, -- {0x414c5, 0x0}, -- {0x414c6, 0x0}, -- {0x414c7, 0x0}, -- {0x414c8, 0x0}, -- {0x414c9, 0x0}, -- {0x414ca, 0x0}, -- {0x414cb, 0x0}, -- {0x414cc, 0x0}, -- {0x414cd, 0x0}, -- {0x414ce, 0x0}, -- {0x414cf, 0x0}, -- {0x414d0, 0x0}, -- {0x414d1, 0x0}, -- {0x414d2, 0x0}, -- {0x414d3, 0x0}, -- {0x414d4, 0x0}, -- {0x414d5, 0x0}, -- {0x414d6, 0x0}, -- {0x414d7, 0x0}, -- {0x414d8, 0x0}, -- {0x414d9, 0x0}, -- {0x414da, 0x0}, -- {0x414db, 0x0}, -- {0x414dc, 0x0}, -- {0x414dd, 0x0}, -- {0x414de, 0x0}, -- {0x414df, 0x0}, -- {0x414e0, 0x0}, -- {0x414e1, 0x0}, -- {0x414e2, 0x0}, -- {0x414e3, 0x0}, -- {0x414e4, 0x0}, -- {0x414e5, 0x0}, -- {0x414e6, 0x0}, -- {0x414e7, 0x0}, -- {0x414e8, 0x0}, -- {0x414e9, 0x0}, -- {0x414ea, 0x0}, -- {0x414eb, 0x0}, -- {0x414ec, 0x0}, -- {0x414ed, 0x0}, -- {0x414ee, 0x0}, -- {0x414ef, 0x0}, -- {0x414f0, 0x0}, -- {0x414f1, 0x0}, -- {0x414f2, 0x0}, -- {0x414f3, 0x0}, -- {0x414f4, 0x0}, -- {0x414f5, 0x0}, -- {0x414f6, 0x0}, -- {0x414f7, 0x0}, -- {0x414f8, 0x0}, -- {0x414f9, 0x0}, -- {0x414fa, 0x0}, -- {0x414fb, 0x0}, -- {0x414fc, 0x0}, -- {0x414fd, 0x0}, -- {0x414fe, 0x0}, -- {0x414ff, 0x0}, -- {0x41500, 0x0}, -- {0x41501, 0x0}, -- {0x41502, 0x0}, -- {0x41503, 0x0}, -- {0x41504, 0x0}, -- {0x41505, 0x0}, -- {0x41506, 0x0}, -- {0x41507, 0x0}, -- {0x41508, 0x0}, -- {0x41509, 0x0}, -- {0x4150a, 0x0}, -- {0x4150b, 0x0}, -- {0x4150c, 0x0}, -- {0x4150d, 0x0}, -- {0x4150e, 0x0}, -- {0x4150f, 0x0}, -- {0x41510, 0x0}, -- {0x41511, 0x0}, -- {0x41512, 0x0}, -- {0x41513, 0x0}, -- {0x41514, 0x0}, -- {0x41515, 0x0}, -- {0x41516, 0x0}, -- {0x41517, 0x0}, -- {0x41518, 0x0}, -- {0x41519, 0x0}, -- {0x4151a, 0x0}, -- {0x4151b, 0x0}, -- {0x4151c, 0x0}, -- {0x4151d, 0x0}, -- {0x4151e, 0x0}, -- {0x4151f, 0x0}, -- {0x41520, 0x0}, -- {0x41521, 0x0}, -- {0x41522, 0x0}, -- {0x41523, 0x0}, -- {0x41524, 0x0}, -- {0x41525, 0x0}, -- {0x41526, 0x0}, -- {0x41527, 0x0}, -- {0x41528, 0x0}, -- {0x41529, 0x0}, -- {0x4152a, 0x0}, -- {0x4152b, 0x0}, -- {0x4152c, 0x0}, -- {0x4152d, 0x0}, -- {0x4152e, 0x0}, -- {0x4152f, 0x0}, -- {0x41530, 0x0}, -- {0x41531, 0x0}, -- {0x41532, 0x0}, -- {0x41533, 0x0}, -- {0x41534, 0x0}, -- {0x41535, 0x0}, -- {0x41536, 0x0}, -- {0x41537, 0x0}, -- {0x41538, 0x0}, -- {0x41539, 0x0}, -- {0x4153a, 0x0}, -- {0x4153b, 0x0}, -- {0x4153c, 0x0}, -- {0x4153d, 0x0}, -- {0x4153e, 0x0}, -- {0x4153f, 0x0}, -- {0x41540, 0x0}, -- {0x41541, 0x0}, -- {0x41542, 0x0}, -- {0x41543, 0x0}, -- {0x41544, 0x0}, -- {0x41545, 0x0}, -- {0x41546, 0x0}, -- {0x41547, 0x0}, -- {0x41548, 0x0}, -- {0x41549, 0x0}, -- {0x4154a, 0x0}, -- {0x4154b, 0x0}, -- {0x4154c, 0x0}, -- {0x4154d, 0x0}, -- {0x4154e, 0x0}, -- {0x4154f, 0x0}, -- {0x41550, 0x0}, -- {0x41551, 0x0}, -- {0x41552, 0x0}, -- {0x41553, 0x0}, -- {0x41554, 0x0}, -- {0x41555, 0x0}, -- {0x41556, 0x0}, -- {0x41557, 0x0}, -- {0x41558, 0x0}, -- {0x41559, 0x0}, -- {0x4155a, 0x0}, -- {0x4155b, 0x0}, -- {0x4155c, 0x0}, -- {0x4155d, 0x0}, -- {0x4155e, 0x0}, -- {0x4155f, 0x0}, -- {0x41560, 0x0}, -- {0x41561, 0x0}, -- {0x41562, 0x0}, -- {0x41563, 0x0}, -- {0x41564, 0x0}, -- {0x41565, 0x0}, -- {0x41566, 0x0}, -- {0x41567, 0x0}, -- {0x41568, 0x0}, -- {0x41569, 0x0}, -- {0x4156a, 0x0}, -- {0x4156b, 0x0}, -- {0x4156c, 0x0}, -- {0x4156d, 0x0}, -- {0x4156e, 0x0}, -- {0x4156f, 0x0}, -- {0x41570, 0x0}, -- {0x41571, 0x0}, -- {0x41572, 0x0}, -- {0x41573, 0x0}, -- {0x41574, 0x0}, -- {0x41575, 0x0}, -- {0x41576, 0x0}, -- {0x41577, 0x0}, -- {0x41578, 0x0}, -- {0x41579, 0x0}, -- {0x4157a, 0x0}, -- {0x4157b, 0x0}, -- {0x4157c, 0x0}, -- {0x4157d, 0x0}, -- {0x4157e, 0x0}, -- {0x4157f, 0x0}, -- {0x41580, 0x0}, -- {0x41581, 0x0}, -- {0x41582, 0x0}, -- {0x41583, 0x0}, -- {0x41584, 0x0}, -- {0x41585, 0x0}, -- {0x41586, 0x0}, -- {0x41587, 0x0}, -- {0x41588, 0x0}, -- {0x41589, 0x0}, -- {0x4158a, 0x0}, -- {0x4158b, 0x0}, -- {0x4158c, 0x0}, -- {0x4158d, 0x0}, -- {0x4158e, 0x0}, -- {0x4158f, 0x0}, -- {0x41590, 0x0}, -- {0x41591, 0x0}, -- {0x41592, 0x0}, -- {0x41593, 0x0}, -- {0x41594, 0x0}, -- {0x41595, 0x0}, -- {0x41596, 0x0}, -- {0x41597, 0x0}, -- {0x41598, 0x0}, -- {0x41599, 0x0}, -- {0x4159a, 0x0}, -- {0x4159b, 0x0}, -- {0x4159c, 0x0}, -- {0x4159d, 0x0}, -- {0x4159e, 0x0}, -- {0x4159f, 0x0}, -- {0x415a0, 0x0}, -- {0x415a1, 0x0}, -- {0x415a2, 0x0}, -- {0x415a3, 0x0}, -- {0x415a4, 0x0}, -- {0x415a5, 0x0}, -- {0x415a6, 0x0}, -- {0x415a7, 0x0}, -- {0x415a8, 0x0}, -- {0x415a9, 0x0}, -- {0x415aa, 0x0}, -- {0x415ab, 0x0}, -- {0x415ac, 0x0}, -- {0x415ad, 0x0}, -- {0x415ae, 0x0}, -- {0x415af, 0x0}, -- {0x415b0, 0x0}, -- {0x415b1, 0x0}, -- {0x415b2, 0x0}, -- {0x415b3, 0x0}, -- {0x415b4, 0x0}, -- {0x415b5, 0x0}, -- {0x415b6, 0x0}, -- {0x415b7, 0x0}, -- {0x415b8, 0x0}, -- {0x415b9, 0x0}, -- {0x415ba, 0x0}, -- {0x415bb, 0x0}, -- {0x415bc, 0x0}, -- {0x415bd, 0x0}, -- {0x415be, 0x0}, -- {0x415bf, 0x0}, -- {0x415c0, 0x0}, -- {0x415c1, 0x0}, -- {0x415c2, 0x0}, -- {0x415c3, 0x0}, -- {0x415c4, 0x0}, -- {0x415c5, 0x0}, -- {0x415c6, 0x0}, -- {0x415c7, 0x0}, -- {0x415c8, 0x0}, -- {0x415c9, 0x0}, -- {0x415ca, 0x0}, -- {0x415cb, 0x0}, -- {0x415cc, 0x0}, -- {0x415cd, 0x0}, -- {0x415ce, 0x0}, -- {0x415cf, 0x0}, -- {0x415d0, 0x0}, -- {0x415d1, 0x0}, -- {0x415d2, 0x0}, -- {0x415d3, 0x0}, -- {0x415d4, 0x0}, -- {0x415d5, 0x0}, -- {0x415d6, 0x0}, -- {0x415d7, 0x0}, -- {0x415d8, 0x0}, -- {0x415d9, 0x0}, -- {0x415da, 0x0}, -- {0x415db, 0x0}, -- {0x415dc, 0x0}, -- {0x415dd, 0x0}, -- {0x415de, 0x0}, -- {0x415df, 0x0}, -- {0x415e0, 0x0}, -- {0x415e1, 0x0}, -- {0x415e2, 0x0}, -- {0x415e3, 0x0}, -- {0x415e4, 0x0}, -- {0x415e5, 0x0}, -- {0x415e6, 0x0}, -- {0x415e7, 0x0}, -- {0x415e8, 0x0}, -- {0x415e9, 0x0}, -- {0x415ea, 0x0}, -- {0x415eb, 0x0}, -- {0x415ec, 0x0}, -- {0x415ed, 0x0}, -- {0x415ee, 0x0}, -- {0x415ef, 0x0}, -- {0x415f0, 0x0}, -- {0x415f1, 0x0}, -- {0x415f2, 0x0}, -- {0x415f3, 0x0}, -- {0x415f4, 0x0}, -- {0x415f5, 0x0}, -- {0x415f6, 0x0}, -- {0x415f7, 0x0}, -- {0x415f8, 0x0}, -- {0x415f9, 0x0}, -- {0x415fa, 0x0}, -- {0x415fb, 0x0}, -- {0x415fc, 0x0}, -- {0x415fd, 0x0}, -- {0x415fe, 0x0}, -- {0x415ff, 0x0}, -- {0x41600, 0x0}, -- {0x41601, 0x0}, -- {0x41602, 0x0}, -- {0x41603, 0x0}, -- {0x41604, 0x0}, -- {0x41605, 0x0}, -- {0x41606, 0x0}, -- {0x41607, 0x0}, -- {0x41608, 0x0}, -- {0x41609, 0x0}, -- {0x4160a, 0x0}, -- {0x4160b, 0x0}, -- {0x4160c, 0x0}, -- {0x4160d, 0x0}, -- {0x4160e, 0x0}, -- {0x4160f, 0x0}, -- {0x41610, 0x0}, -- {0x41611, 0x0}, -- {0x41612, 0x0}, -- {0x41613, 0x0}, -- {0x41614, 0x0}, -- {0x41615, 0x0}, -- {0x41616, 0x0}, -- {0x41617, 0x0}, -- {0x41618, 0x0}, -- {0x41619, 0x0}, -- {0x4161a, 0x0}, -- {0x4161b, 0x0}, -- {0x4161c, 0x0}, -- {0x4161d, 0x0}, -- {0x4161e, 0x0}, -- {0x4161f, 0x0}, -- {0x41620, 0x0}, -- {0x41621, 0x0}, -- {0x41622, 0x0}, -- {0x41623, 0x0}, -- {0x41624, 0x0}, -- {0x41625, 0x0}, -- {0x41626, 0x0}, -- {0x41627, 0x0}, -- {0x41628, 0x0}, -- {0x41629, 0x0}, -- {0x4162a, 0x0}, -- {0x4162b, 0x0}, -- {0x4162c, 0x0}, -- {0x4162d, 0x0}, -- {0x4162e, 0x0}, -- {0x4162f, 0x0}, -- {0x41630, 0x0}, -- {0x41631, 0x0}, -- {0x41632, 0x0}, -- {0x41633, 0x0}, -- {0x41634, 0x0}, -- {0x41635, 0x0}, -- {0x41636, 0x0}, -- {0x41637, 0x0}, -- {0x41638, 0x0}, -- {0x41639, 0x0}, -- {0x4163a, 0x0}, -- {0x4163b, 0x0}, -- {0x4163c, 0x0}, -- {0x4163d, 0x0}, -- {0x4163e, 0x0}, -- {0x4163f, 0x0}, -- {0x41640, 0x0}, -- {0x41641, 0x0}, -- {0x41642, 0x0}, -- {0x41643, 0x0}, -- {0x41644, 0x0}, -- {0x41645, 0x0}, -- {0x41646, 0x0}, -- {0x41647, 0x0}, -- {0x41648, 0x0}, -- {0x41649, 0x0}, -- {0x4164a, 0x0}, -- {0x4164b, 0x0}, -- {0x4164c, 0x0}, -- {0x4164d, 0x0}, -- {0x4164e, 0x0}, -- {0x4164f, 0x0}, -- {0x41650, 0x0}, -- {0x41651, 0x0}, -- {0x41652, 0x0}, -- {0x41653, 0x0}, -- {0x41654, 0x0}, -- {0x41655, 0x0}, -- {0x41656, 0x0}, -- {0x41657, 0x0}, -- {0x41658, 0x0}, -- {0x41659, 0x0}, -- {0x4165a, 0x0}, -- {0x4165b, 0x0}, -- {0x4165c, 0x0}, -- {0x4165d, 0x0}, -- {0x4165e, 0x0}, -- {0x4165f, 0x0}, -- {0x41660, 0x0}, -- {0x41661, 0x0}, -- {0x41662, 0x0}, -- {0x41663, 0x0}, -- {0x41664, 0x0}, -- {0x41665, 0x0}, -- {0x41666, 0x0}, -- {0x41667, 0x0}, -- {0x41668, 0x0}, -- {0x41669, 0x0}, -- {0x4166a, 0x0}, -- {0x4166b, 0x0}, -- {0x4166c, 0x0}, -- {0x4166d, 0x0}, -- {0x4166e, 0x0}, -- {0x4166f, 0x0}, -- {0x41670, 0x0}, -- {0x41671, 0x0}, -- {0x41672, 0x0}, -- {0x41673, 0x0}, -- {0x41674, 0x0}, -- {0x41675, 0x0}, -- {0x41676, 0x0}, -- {0x41677, 0x0}, -- {0x41678, 0x0}, -- {0x41679, 0x0}, -- {0x4167a, 0x0}, -- {0x4167b, 0x0}, -- {0x4167c, 0x0}, -- {0x4167d, 0x0}, -- {0x4167e, 0x0}, -- {0x4167f, 0x0}, -- {0x41680, 0x0}, -- {0x41681, 0x0}, -- {0x41682, 0x0}, -- {0x41683, 0x0}, -- {0x41684, 0x0}, -- {0x41685, 0x0}, -- {0x41686, 0x0}, -- {0x41687, 0x0}, -- {0x41688, 0x0}, -- {0x41689, 0x0}, -- {0x4168a, 0x0}, -- {0x4168b, 0x0}, -- {0x4168c, 0x0}, -- {0x4168d, 0x0}, -- {0x4168e, 0x0}, -- {0x4168f, 0x0}, -- {0x41690, 0x0}, -- {0x41691, 0x0}, -- {0x41692, 0x0}, -- {0x41693, 0x0}, -- {0x41694, 0x0}, -- {0x41695, 0x0}, -- {0x41696, 0x0}, -- {0x41697, 0x0}, -- {0x41698, 0x0}, -- {0x41699, 0x0}, -- {0x4169a, 0x0}, -- {0x4169b, 0x0}, -- {0x4169c, 0x0}, -- {0x4169d, 0x0}, -- {0x4169e, 0x0}, -- {0x4169f, 0x0}, -- {0x416a0, 0x0}, -- {0x416a1, 0x0}, -- {0x416a2, 0x0}, -- {0x416a3, 0x0}, -- {0x416a4, 0x0}, -- {0x416a5, 0x0}, -- {0x416a6, 0x0}, -- {0x416a7, 0x0}, -- {0x416a8, 0x0}, -- {0x416a9, 0x0}, -- {0x416aa, 0x0}, -- {0x416ab, 0x0}, -- {0x416ac, 0x0}, -- {0x416ad, 0x0}, -- {0x416ae, 0x0}, -- {0x416af, 0x0}, -- {0x416b0, 0x0}, -- {0x416b1, 0x0}, -- {0x416b2, 0x0}, -- {0x416b3, 0x0}, -- {0x416b4, 0x0}, -- {0x416b5, 0x0}, -- {0x416b6, 0x0}, -- {0x416b7, 0x0}, -- {0x416b8, 0x0}, -- {0x416b9, 0x0}, -- {0x416ba, 0x0}, -- {0x416bb, 0x0}, -- {0x416bc, 0x0}, -- {0x416bd, 0x0}, -- {0x416be, 0x0}, -- {0x416bf, 0x0}, -- {0x416c0, 0x0}, -- {0x416c1, 0x0}, -- {0x416c2, 0x0}, -- {0x416c3, 0x0}, -- {0x416c4, 0x0}, -- {0x416c5, 0x0}, -- {0x416c6, 0x0}, -- {0x416c7, 0x0}, -- {0x416c8, 0x0}, -- {0x416c9, 0x0}, -- {0x416ca, 0x0}, -- {0x416cb, 0x0}, -- {0x416cc, 0x0}, -- {0x416cd, 0x0}, -- {0x416ce, 0x0}, -- {0x416cf, 0x0}, -- {0x416d0, 0x0}, -- {0x416d1, 0x0}, -- {0x416d2, 0x0}, -- {0x416d3, 0x0}, -- {0x416d4, 0x0}, -- {0x416d5, 0x0}, -- {0x416d6, 0x0}, -- {0x416d7, 0x0}, -- {0x416d8, 0x0}, -- {0x416d9, 0x0}, -- {0x416da, 0x0}, -- {0x416db, 0x0}, -- {0x416dc, 0x0}, -- {0x416dd, 0x0}, -- {0x416de, 0x0}, -- {0x416df, 0x0}, -- {0x416e0, 0x0}, -- {0x416e1, 0x0}, -- {0x416e2, 0x0}, -- {0x416e3, 0x0}, -- {0x416e4, 0x0}, -- {0x416e5, 0x0}, -- {0x416e6, 0x0}, -- {0x416e7, 0x0}, -- {0x416e8, 0x0}, -- {0x416e9, 0x0}, -- {0x416ea, 0x0}, -- {0x416eb, 0x0}, -- {0x416ec, 0x0}, -- {0x416ed, 0x0}, -- {0x416ee, 0x0}, -- {0x416ef, 0x0}, -- {0x416f0, 0x0}, -- {0x416f1, 0x0}, -- {0x416f2, 0x0}, -- {0x416f3, 0x0}, -- {0x416f4, 0x0}, -- {0x416f5, 0x0}, -- {0x416f6, 0x0}, -- {0x416f7, 0x0}, -- {0x416f8, 0x0}, -- {0x416f9, 0x0}, -- {0x416fa, 0x0}, -- {0x416fb, 0x0}, -- {0x416fc, 0x0}, -- {0x416fd, 0x0}, -- {0x416fe, 0x0}, -- {0x416ff, 0x0}, -- {0x41700, 0x0}, -- {0x41701, 0x0}, -- {0x41702, 0x0}, -- {0x41703, 0x0}, -- {0x41704, 0x0}, -- {0x41705, 0x0}, -- {0x41706, 0x0}, -- {0x41707, 0x0}, -- {0x41708, 0x0}, -- {0x41709, 0x0}, -- {0x4170a, 0x0}, -- {0x4170b, 0x0}, -- {0x4170c, 0x0}, -- {0x4170d, 0x0}, -- {0x4170e, 0x0}, -- {0x4170f, 0x0}, -- {0x41710, 0x0}, -- {0x41711, 0x0}, -- {0x41712, 0x0}, -- {0x41713, 0x0}, -- {0x41714, 0x0}, -- {0x41715, 0x0}, -- {0x41716, 0x0}, -- {0x41717, 0x0}, -- {0x41718, 0x0}, -- {0x41719, 0x0}, -- {0x4171a, 0x0}, -- {0x4171b, 0x0}, -- {0x4171c, 0x0}, -- {0x4171d, 0x0}, -- {0x4171e, 0x0}, -- {0x4171f, 0x0}, -- {0x41720, 0x0}, -- {0x41721, 0x0}, -- {0x41722, 0x0}, -- {0x41723, 0x0}, -- {0x41724, 0x0}, -- {0x41725, 0x0}, -- {0x41726, 0x0}, -- {0x41727, 0x0}, -- {0x41728, 0x0}, -- {0x41729, 0x0}, -- {0x4172a, 0x0}, -- {0x4172b, 0x0}, -- {0x4172c, 0x0}, -- {0x4172d, 0x0}, -- {0x4172e, 0x0}, -- {0x4172f, 0x0}, -- {0x41730, 0x0}, -- {0x41731, 0x0}, -- {0x41732, 0x0}, -- {0x41733, 0x0}, -- {0x41734, 0x0}, -- {0x41735, 0x0}, -- {0x41736, 0x0}, -- {0x41737, 0x0}, -- {0x41738, 0x0}, -- {0x41739, 0x0}, -- {0x4173a, 0x0}, -- {0x4173b, 0x0}, -- {0x4173c, 0x0}, -- {0x4173d, 0x0}, -- {0x4173e, 0x0}, -- {0x4173f, 0x0}, -- {0x41740, 0x0}, -- {0x41741, 0x0}, -- {0x41742, 0x0}, -- {0x41743, 0x0}, -- {0x41744, 0x0}, -- {0x41745, 0x0}, -- {0x41746, 0x0}, -- {0x41747, 0x0}, -- {0x41748, 0x0}, -- {0x41749, 0x0}, -- {0x4174a, 0x0}, -- {0x4174b, 0x0}, -- {0x4174c, 0x0}, -- {0x4174d, 0x0}, -- {0x4174e, 0x0}, -- {0x4174f, 0x0}, -- {0x41750, 0x0}, -- {0x41751, 0x0}, -- {0x41752, 0x0}, -- {0x41753, 0x0}, -- {0x41754, 0x0}, -- {0x41755, 0x0}, -- {0x41756, 0x0}, -- {0x41757, 0x0}, -- {0x41758, 0x0}, -- {0x41759, 0x0}, -- {0x4175a, 0x0}, -- {0x4175b, 0x0}, -- {0x4175c, 0x0}, -- {0x4175d, 0x0}, -- {0x4175e, 0x0}, -- {0x4175f, 0x0}, -- {0x41760, 0x0}, -- {0x41761, 0x0}, -- {0x41762, 0x0}, -- {0x41763, 0x0}, -- {0x41764, 0x0}, -- {0x41765, 0x0}, -- {0x41766, 0x0}, -- {0x41767, 0x0}, -- {0x41768, 0x0}, -- {0x41769, 0x0}, -- {0x4176a, 0x0}, -- {0x4176b, 0x0}, -- {0x4176c, 0x0}, -- {0x4176d, 0x0}, -- {0x4176e, 0x0}, -- {0x4176f, 0x0}, -- {0x41770, 0x0}, -- {0x41771, 0x0}, -- {0x41772, 0x0}, -- {0x41773, 0x0}, -- {0x41774, 0x0}, -- {0x41775, 0x0}, -- {0x41776, 0x0}, -- {0x41777, 0x0}, -- {0x41778, 0x0}, -- {0x41779, 0x0}, -- {0x4177a, 0x0}, -- {0x4177b, 0x0}, -- {0x4177c, 0x0}, -- {0x4177d, 0x0}, -- {0x4177e, 0x0}, -- {0x4177f, 0x0}, -- {0x41780, 0x0}, -- {0x41781, 0x0}, -- {0x41782, 0x0}, -- {0x41783, 0x0}, -- {0x41784, 0x0}, -- {0x41785, 0x0}, -- {0x41786, 0x0}, -- {0x41787, 0x0}, -- {0x41788, 0x0}, -- {0x41789, 0x0}, -- {0x4178a, 0x0}, -- {0x4178b, 0x0}, -- {0x4178c, 0x0}, -- {0x4178d, 0x0}, -- {0x4178e, 0x0}, -- {0x4178f, 0x0}, -- {0x41790, 0x0}, -- {0x41791, 0x0}, -- {0x41792, 0x0}, -- {0x41793, 0x0}, -- {0x41794, 0x0}, -- {0x41795, 0x0}, -- {0x41796, 0x0}, -- {0x41797, 0x0}, -- {0x41798, 0x0}, -- {0x41799, 0x0}, -- {0x4179a, 0x0}, -- {0x4179b, 0x0}, -- {0x4179c, 0x0}, -- {0x4179d, 0x0}, -- {0x4179e, 0x0}, -- {0x4179f, 0x0}, -- {0x417a0, 0x0}, -- {0x417a1, 0x0}, -- {0x417a2, 0x0}, -- {0x417a3, 0x0}, -- {0x417a4, 0x0}, -- {0x417a5, 0x0}, -- {0x417a6, 0x0}, -- {0x417a7, 0x0}, -- {0x417a8, 0x0}, -- {0x417a9, 0x0}, -- {0x417aa, 0x0}, -- {0x417ab, 0x0}, -- {0x417ac, 0x0}, -- {0x417ad, 0x0}, -- {0x417ae, 0x0}, -- {0x417af, 0x0}, -- {0x417b0, 0x0}, -- {0x417b1, 0x0}, -- {0x417b2, 0x0}, -- {0x417b3, 0x0}, -- {0x417b4, 0x0}, -- {0x417b5, 0x0}, -- {0x417b6, 0x0}, -- {0x417b7, 0x0}, -- {0x417b8, 0x0}, -- {0x417b9, 0x0}, -- {0x417ba, 0x0}, -- {0x417bb, 0x0}, -- {0x417bc, 0x0}, -- {0x417bd, 0x0}, -- {0x417be, 0x0}, -- {0x417bf, 0x0}, -- {0x417c0, 0x0}, -- {0x417c1, 0x0}, -- {0x417c2, 0x0}, -- {0x417c3, 0x0}, -- {0x417c4, 0x0}, -- {0x417c5, 0x0}, -- {0x417c6, 0x0}, -- {0x417c7, 0x0}, -- {0x417c8, 0x0}, -- {0x417c9, 0x0}, -- {0x417ca, 0x0}, -- {0x417cb, 0x0}, -- {0x417cc, 0x0}, -- {0x417cd, 0x0}, -- {0x417ce, 0x0}, -- {0x417cf, 0x0}, -- {0x417d0, 0x0}, -- {0x417d1, 0x0}, -- {0x417d2, 0x0}, -- {0x417d3, 0x0}, -- {0x417d4, 0x0}, -- {0x417d5, 0x0}, -- {0x417d6, 0x0}, -- {0x417d7, 0x0}, -- {0x417d8, 0x0}, -- {0x417d9, 0x0}, -- {0x417da, 0x0}, -- {0x417db, 0x0}, -- {0x417dc, 0x0}, -- {0x417dd, 0x0}, -- {0x417de, 0x0}, -- {0x417df, 0x0}, -- {0x417e0, 0x0}, -- {0x417e1, 0x0}, -- {0x417e2, 0x0}, -- {0x417e3, 0x0}, -- {0x417e4, 0x0}, -- {0x417e5, 0x0}, -- {0x417e6, 0x0}, -- {0x417e7, 0x0}, -- {0x417e8, 0x0}, -- {0x417e9, 0x0}, -- {0x417ea, 0x0}, -- {0x417eb, 0x0}, -- {0x417ec, 0x0}, -- {0x417ed, 0x0}, -- {0x417ee, 0x0}, -- {0x417ef, 0x0}, -- {0x417f0, 0x0}, -- {0x417f1, 0x0}, -- {0x417f2, 0x0}, -- {0x417f3, 0x0}, -- {0x417f4, 0x0}, -- {0x417f5, 0x0}, -- {0x417f6, 0x0}, -- {0x417f7, 0x0}, -- {0x417f8, 0x0}, -- {0x417f9, 0x0}, -- {0x417fa, 0x0}, -- {0x417fb, 0x0}, -- {0x417fc, 0x0}, -- {0x417fd, 0x0}, -- {0x417fe, 0x0}, -- {0x417ff, 0x0}, -- {0x41800, 0x0}, -- {0x41801, 0x0}, -- {0x41802, 0x0}, -- {0x41803, 0x0}, -- {0x41804, 0x0}, -- {0x41805, 0x0}, -- {0x41806, 0x0}, -- {0x41807, 0x0}, -- {0x41808, 0x0}, -- {0x41809, 0x0}, -- {0x4180a, 0x0}, -- {0x4180b, 0x0}, -- {0x4180c, 0x0}, -- {0x4180d, 0x0}, -- {0x4180e, 0x0}, -- {0x4180f, 0x0}, -- {0x41810, 0x0}, -- {0x41811, 0x0}, -- {0x41812, 0x0}, -- {0x41813, 0x0}, -- {0x41814, 0x0}, -- {0x41815, 0x0}, -- {0x41816, 0x0}, -- {0x41817, 0x0}, -- {0x41818, 0x0}, -- {0x41819, 0x0}, -- {0x4181a, 0x0}, -- {0x4181b, 0x0}, -- {0x4181c, 0x0}, -- {0x4181d, 0x0}, -- {0x4181e, 0x0}, -- {0x4181f, 0x0}, -- {0x41820, 0x0}, -- {0x41821, 0x0}, -- {0x41822, 0x0}, -- {0x41823, 0x0}, -- {0x41824, 0x0}, -- {0x41825, 0x0}, -- {0x41826, 0x0}, -- {0x41827, 0x0}, -- {0x41828, 0x0}, -- {0x41829, 0x0}, -- {0x4182a, 0x0}, -- {0x4182b, 0x0}, -- {0x4182c, 0x0}, -- {0x4182d, 0x0}, -- {0x4182e, 0x0}, -- {0x4182f, 0x0}, -- {0x41830, 0x0}, -- {0x41831, 0x0}, -- {0x41832, 0x0}, -- {0x41833, 0x0}, -- {0x41834, 0x0}, -- {0x41835, 0x0}, -- {0x41836, 0x0}, -- {0x41837, 0x0}, -- {0x41838, 0x0}, -- {0x41839, 0x0}, -- {0x4183a, 0x0}, -- {0x4183b, 0x0}, -- {0x4183c, 0x0}, -- {0x4183d, 0x0}, -- {0x4183e, 0x0}, -- {0x4183f, 0x0}, -- {0x41840, 0x0}, -- {0x41841, 0x0}, -- {0x41842, 0x0}, -- {0x41843, 0x0}, -- {0x41844, 0x0}, -- {0x41845, 0x0}, -- {0x41846, 0x0}, -- {0x41847, 0x0}, -- {0x41848, 0x0}, -- {0x41849, 0x0}, -- {0x4184a, 0x0}, -- {0x4184b, 0x0}, -- {0x4184c, 0x0}, -- {0x4184d, 0x0}, -- {0x4184e, 0x0}, -- {0x4184f, 0x0}, -- {0x41850, 0x0}, -- {0x41851, 0x0}, -- {0x41852, 0x0}, -- {0x41853, 0x0}, -- {0x41854, 0x0}, -- {0x41855, 0x0}, -- {0x41856, 0x0}, -- {0x41857, 0x0}, -- {0x41858, 0x0}, -- {0x41859, 0x0}, -- {0x4185a, 0x0}, -- {0x4185b, 0x0}, -- {0x4185c, 0x0}, -- {0x4185d, 0x0}, -- {0x4185e, 0x0}, -- {0x4185f, 0x0}, -- {0x41860, 0x0}, -- {0x41861, 0x0}, -- {0x41862, 0x0}, -- {0x41863, 0x0}, -- {0x41864, 0x0}, -- {0x41865, 0x0}, -- {0x41866, 0x0}, -- {0x41867, 0x0}, -- {0x41868, 0x0}, -- {0x41869, 0x0}, -- {0x4186a, 0x0}, -- {0x4186b, 0x0}, -- {0x4186c, 0x0}, -- {0x4186d, 0x0}, -- {0x4186e, 0x0}, -- {0x4186f, 0x0}, -- {0x41870, 0x0}, -- {0x41871, 0x0}, -- {0x41872, 0x0}, -- {0x41873, 0x0}, -- {0x41874, 0x0}, -- {0x41875, 0x0}, -- {0x41876, 0x0}, -- {0x41877, 0x0}, -- {0x41878, 0x0}, -- {0x41879, 0x0}, -- {0x4187a, 0x0}, -- {0x4187b, 0x0}, -- {0x4187c, 0x0}, -- {0x4187d, 0x0}, -- {0x4187e, 0x0}, -- {0x4187f, 0x0}, -- {0x41880, 0x0}, -- {0x41881, 0x0}, -- {0x41882, 0x0}, -- {0x41883, 0x0}, -- {0x41884, 0x0}, -- {0x41885, 0x0}, -- {0x41886, 0x0}, -- {0x41887, 0x0}, -- {0x41888, 0x0}, -- {0x41889, 0x0}, -- {0x4188a, 0x0}, -- {0x4188b, 0x0}, -- {0x4188c, 0x0}, -- {0x4188d, 0x0}, -- {0x4188e, 0x0}, -- {0x4188f, 0x0}, -- {0x41890, 0x0}, -- {0x41891, 0x0}, -- {0x41892, 0x0}, -- {0x41893, 0x0}, -- {0x41894, 0x0}, -- {0x41895, 0x0}, -- {0x41896, 0x0}, -- {0x41897, 0x0}, -- {0x41898, 0x0}, -- {0x41899, 0x0}, -- {0x4189a, 0x0}, -- {0x4189b, 0x0}, -- {0x4189c, 0x0}, -- {0x4189d, 0x0}, -- {0x4189e, 0x0}, -- {0x4189f, 0x0}, -- {0x418a0, 0x0}, -- {0x418a1, 0x0}, -- {0x418a2, 0x0}, -- {0x418a3, 0x0}, -- {0x418a4, 0x0}, -- {0x418a5, 0x0}, -- {0x418a6, 0x0}, -- {0x418a7, 0x0}, -- {0x418a8, 0x0}, -- {0x418a9, 0x0}, -- {0x418aa, 0x0}, -- {0x418ab, 0x0}, -- {0x418ac, 0x0}, -- {0x418ad, 0x0}, -- {0x418ae, 0x0}, -- {0x418af, 0x0}, -- {0x418b0, 0x0}, -- {0x418b1, 0x0}, -- {0x418b2, 0x0}, -- {0x418b3, 0x0}, -- {0x418b4, 0x0}, -- {0x418b5, 0x0}, -- {0x418b6, 0x0}, -- {0x418b7, 0x0}, -- {0x418b8, 0x0}, -- {0x418b9, 0x0}, -- {0x418ba, 0x0}, -- {0x418bb, 0x0}, -- {0x418bc, 0x0}, -- {0x418bd, 0x0}, -- {0x418be, 0x0}, -- {0x418bf, 0x0}, -- {0x418c0, 0x0}, -- {0x418c1, 0x0}, -- {0x418c2, 0x0}, -- {0x418c3, 0x0}, -- {0x418c4, 0x0}, -- {0x418c5, 0x0}, -- {0x418c6, 0x0}, -- {0x418c7, 0x0}, -- {0x418c8, 0x0}, -- {0x418c9, 0x0}, -- {0x418ca, 0x0}, -- {0x418cb, 0x0}, -- {0x418cc, 0x0}, -- {0x418cd, 0x0}, -- {0x418ce, 0x0}, -- {0x418cf, 0x0}, -- {0x418d0, 0x0}, -- {0x418d1, 0x0}, -- {0x418d2, 0x0}, -- {0x418d3, 0x0}, -- {0x418d4, 0x0}, -- {0x418d5, 0x0}, -- {0x418d6, 0x0}, -- {0x418d7, 0x0}, -- {0x418d8, 0x0}, -- {0x418d9, 0x0}, -- {0x418da, 0x0}, -- {0x418db, 0x0}, -- {0x418dc, 0x0}, -- {0x418dd, 0x0}, -- {0x418de, 0x0}, -- {0x418df, 0x0}, -- {0x418e0, 0x0}, -- {0x418e1, 0x0}, -- {0x418e2, 0x0}, -- {0x418e3, 0x0}, -- {0x418e4, 0x0}, -- {0x418e5, 0x0}, -- {0x418e6, 0x0}, -- {0x418e7, 0x0}, -- {0x418e8, 0x0}, -- {0x418e9, 0x0}, -- {0x418ea, 0x0}, -- {0x418eb, 0x0}, -- {0x418ec, 0x0}, -- {0x418ed, 0x0}, -- {0x418ee, 0x0}, -- {0x418ef, 0x0}, -- {0x418f0, 0x0}, -- {0x418f1, 0x0}, -- {0x418f2, 0x0}, -- {0x418f3, 0x0}, -- {0x418f4, 0x0}, -- {0x418f5, 0x0}, -- {0x418f6, 0x0}, -- {0x418f7, 0x0}, -- {0x418f8, 0x0}, -- {0x418f9, 0x0}, -- {0x418fa, 0x0}, -- {0x418fb, 0x0}, -- {0x418fc, 0x0}, -- {0x418fd, 0x0}, -- {0x418fe, 0x0}, -- {0x418ff, 0x0}, -- {0x41900, 0x0}, -- {0x41901, 0x0}, -- {0x41902, 0x0}, -- {0x41903, 0x0}, -- {0x41904, 0x0}, -- {0x41905, 0x0}, -- {0x41906, 0x0}, -- {0x41907, 0x0}, -- {0x41908, 0x0}, -- {0x41909, 0x0}, -- {0x4190a, 0x0}, -- {0x4190b, 0x0}, -- {0x4190c, 0x0}, -- {0x4190d, 0x0}, -- {0x4190e, 0x0}, -- {0x4190f, 0x0}, -- {0x41910, 0x0}, -- {0x41911, 0x0}, -- {0x41912, 0x0}, -- {0x41913, 0x0}, -- {0x41914, 0x0}, -- {0x41915, 0x0}, -- {0x41916, 0x0}, -- {0x41917, 0x0}, -- {0x41918, 0x0}, -- {0x41919, 0x0}, -- {0x4191a, 0x0}, -- {0x4191b, 0x0}, -- {0x4191c, 0x0}, -- {0x4191d, 0x0}, -- {0x4191e, 0x0}, -- {0x4191f, 0x0}, -- {0x41920, 0x0}, -- {0x41921, 0x0}, -- {0x41922, 0x0}, -- {0x41923, 0x0}, -- {0x41924, 0x0}, -- {0x41925, 0x0}, -- {0x41926, 0x0}, -- {0x41927, 0x0}, -- {0x41928, 0x0}, -- {0x41929, 0x0}, -- {0x4192a, 0x0}, -- {0x4192b, 0x0}, -- {0x4192c, 0x0}, -- {0x4192d, 0x0}, -- {0x4192e, 0x0}, -- {0x4192f, 0x0}, -- {0x41930, 0x0}, -- {0x41931, 0x0}, -- {0x41932, 0x0}, -- {0x41933, 0x0}, -- {0x41934, 0x0}, -- {0x41935, 0x0}, -- {0x41936, 0x0}, -- {0x41937, 0x0}, -- {0x41938, 0x0}, -- {0x41939, 0x0}, -- {0x4193a, 0x0}, -- {0x4193b, 0x0}, -- {0x4193c, 0x0}, -- {0x4193d, 0x0}, -- {0x4193e, 0x0}, -- {0x4193f, 0x0}, -- {0x41940, 0x0}, -- {0x41941, 0x0}, -- {0x41942, 0x0}, -- {0x41943, 0x0}, -- {0x41944, 0x0}, -- {0x41945, 0x0}, -- {0x41946, 0x0}, -- {0x41947, 0x0}, -- {0x41948, 0x0}, -- {0x41949, 0x0}, -- {0x4194a, 0x0}, -- {0x4194b, 0x0}, -- {0x4194c, 0x0}, -- {0x4194d, 0x0}, -- {0x4194e, 0x0}, -- {0x4194f, 0x0}, -- {0x41950, 0x0}, -- {0x41951, 0x0}, -- {0x41952, 0x0}, -- {0x41953, 0x0}, -- {0x41954, 0x0}, -- {0x41955, 0x0}, -- {0x41956, 0x0}, -- {0x41957, 0x0}, -- {0x41958, 0x0}, -- {0x41959, 0x0}, -- {0x4195a, 0x0}, -- {0x4195b, 0x0}, -- {0x4195c, 0x0}, -- {0x4195d, 0x0}, -- {0x4195e, 0x0}, -- {0x4195f, 0x0}, -- {0x41960, 0x0}, -- {0x41961, 0x0}, -- {0x41962, 0x0}, -- {0x41963, 0x0}, -- {0x41964, 0x0}, -- {0x41965, 0x0}, -- {0x41966, 0x0}, -- {0x41967, 0x0}, -- {0x41968, 0x0}, -- {0x41969, 0x0}, -- {0x4196a, 0x0}, -- {0x4196b, 0x0}, -- {0x4196c, 0x0}, -- {0x4196d, 0x0}, -- {0x4196e, 0x0}, -- {0x4196f, 0x0}, -- {0x41970, 0x0}, -- {0x41971, 0x0}, -- {0x41972, 0x0}, -- {0x41973, 0x0}, -- {0x41974, 0x0}, -- {0x41975, 0x0}, -- {0x41976, 0x0}, -- {0x41977, 0x0}, -- {0x41978, 0x0}, -- {0x41979, 0x0}, -- {0x4197a, 0x0}, -- {0x4197b, 0x0}, -- {0x4197c, 0x0}, -- {0x4197d, 0x0}, -- {0x4197e, 0x0}, -- {0x4197f, 0x0}, -- {0x41980, 0x0}, -- {0x41981, 0x0}, -- {0x41982, 0x0}, -- {0x41983, 0x0}, -- {0x41984, 0x0}, -- {0x41985, 0x0}, -- {0x41986, 0x0}, -- {0x41987, 0x0}, -- {0x41988, 0x0}, -- {0x41989, 0x0}, -- {0x4198a, 0x0}, -- {0x4198b, 0x0}, -- {0x4198c, 0x0}, -- {0x4198d, 0x0}, -- {0x4198e, 0x0}, -- {0x4198f, 0x0}, -- {0x41990, 0x0}, -- {0x41991, 0x0}, -- {0x41992, 0x0}, -- {0x41993, 0x0}, -- {0x41994, 0x0}, -- {0x41995, 0x0}, -- {0x41996, 0x0}, -- {0x41997, 0x0}, -- {0x41998, 0x0}, -- {0x41999, 0x0}, -- {0x4199a, 0x0}, -- {0x4199b, 0x0}, -- {0x4199c, 0x0}, -- {0x4199d, 0x0}, -- {0x4199e, 0x0}, -- {0x4199f, 0x0}, -- {0x419a0, 0x0}, -- {0x419a1, 0x0}, -- {0x419a2, 0x0}, -- {0x419a3, 0x0}, -- {0x419a4, 0x0}, -- {0x419a5, 0x0}, -- {0x419a6, 0x0}, -- {0x419a7, 0x0}, -- {0x419a8, 0x0}, -- {0x419a9, 0x0}, -- {0x419aa, 0x0}, -- {0x419ab, 0x0}, -- {0x419ac, 0x0}, -- {0x419ad, 0x0}, -- {0x419ae, 0x0}, -- {0x419af, 0x0}, -- {0x419b0, 0x0}, -- {0x419b1, 0x0}, -- {0x419b2, 0x0}, -- {0x419b3, 0x0}, -- {0x419b4, 0x0}, -- {0x419b5, 0x0}, -- {0x419b6, 0x0}, -- {0x419b7, 0x0}, -- {0x419b8, 0x0}, -- {0x419b9, 0x0}, -- {0x419ba, 0x0}, -- {0x419bb, 0x0}, -- {0x419bc, 0x0}, -- {0x419bd, 0x0}, -- {0x419be, 0x0}, -- {0x419bf, 0x0}, -- {0x419c0, 0x0}, -- {0x419c1, 0x0}, -- {0x419c2, 0x0}, -- {0x419c3, 0x0}, -- {0x419c4, 0x0}, -- {0x419c5, 0x0}, -- {0x419c6, 0x0}, -- {0x419c7, 0x0}, -- {0x419c8, 0x0}, -- {0x419c9, 0x0}, -- {0x419ca, 0x0}, -- {0x419cb, 0x0}, -- {0x419cc, 0x0}, -- {0x419cd, 0x0}, -- {0x419ce, 0x0}, -- {0x419cf, 0x0}, -- {0x419d0, 0x0}, -- {0x419d1, 0x0}, -- {0x419d2, 0x0}, -- {0x419d3, 0x0}, -- {0x419d4, 0x0}, -- {0x419d5, 0x0}, -- {0x419d6, 0x0}, -- {0x419d7, 0x0}, -- {0x419d8, 0x0}, -- {0x419d9, 0x0}, -- {0x419da, 0x0}, -- {0x419db, 0x0}, -- {0x419dc, 0x0}, -- {0x419dd, 0x0}, -- {0x419de, 0x0}, -- {0x419df, 0x0}, -- {0x419e0, 0x0}, -- {0x419e1, 0x0}, -- {0x419e2, 0x0}, -- {0x419e3, 0x0}, -- {0x419e4, 0x0}, -- {0x419e5, 0x0}, -- {0x419e6, 0x0}, -- {0x419e7, 0x0}, -- {0x419e8, 0x0}, -- {0x419e9, 0x0}, -- {0x419ea, 0x0}, -- {0x419eb, 0x0}, -- {0x419ec, 0x0}, -- {0x419ed, 0x0}, -- {0x419ee, 0x0}, -- {0x419ef, 0x0}, -- {0x419f0, 0x0}, -- {0x419f1, 0x0}, -- {0x419f2, 0x0}, -- {0x419f3, 0x0}, -- {0x419f4, 0x0}, -- {0x419f5, 0x0}, -- {0x419f6, 0x0}, -- {0x419f7, 0x0}, -- {0x419f8, 0x0}, -- {0x419f9, 0x0}, -- {0x419fa, 0x0}, -- {0x419fb, 0x0}, -- {0x419fc, 0x0}, -- {0x419fd, 0x0}, -- {0x419fe, 0x0}, -- {0x419ff, 0x0}, -- {0x41a00, 0x0}, -- {0x41a01, 0x0}, -- {0x41a02, 0x0}, -- {0x41a03, 0x0}, -- {0x41a04, 0x0}, -- {0x41a05, 0x0}, -- {0x41a06, 0x0}, -- {0x41a07, 0x0}, -- {0x41a08, 0x0}, -- {0x41a09, 0x0}, -- {0x41a0a, 0x0}, -- {0x41a0b, 0x0}, -- {0x41a0c, 0x0}, -- {0x41a0d, 0x0}, -- {0x41a0e, 0x0}, -- {0x41a0f, 0x0}, -- {0x41a10, 0x0}, -- {0x41a11, 0x0}, -- {0x41a12, 0x0}, -- {0x41a13, 0x0}, -- {0x41a14, 0x0}, -- {0x41a15, 0x0}, -- {0x41a16, 0x0}, -- {0x41a17, 0x0}, -- {0x41a18, 0x0}, -- {0x41a19, 0x0}, -- {0x41a1a, 0x0}, -- {0x41a1b, 0x0}, -- {0x41a1c, 0x0}, -- {0x41a1d, 0x0}, -- {0x41a1e, 0x0}, -- {0x41a1f, 0x0}, -- {0x41a20, 0x0}, -- {0x41a21, 0x0}, -- {0x41a22, 0x0}, -- {0x41a23, 0x0}, -- {0x41a24, 0x0}, -- {0x41a25, 0x0}, -- {0x41a26, 0x0}, -- {0x41a27, 0x0}, -- {0x41a28, 0x0}, -- {0x41a29, 0x0}, -- {0x41a2a, 0x0}, -- {0x41a2b, 0x0}, -- {0x41a2c, 0x0}, -- {0x41a2d, 0x0}, -- {0x41a2e, 0x0}, -- {0x41a2f, 0x0}, -- {0x41a30, 0x0}, -- {0x41a31, 0x0}, -- {0x41a32, 0x0}, -- {0x41a33, 0x0}, -- {0x41a34, 0x0}, -- {0x41a35, 0x0}, -- {0x41a36, 0x0}, -- {0x41a37, 0x0}, -- {0x41a38, 0x0}, -- {0x41a39, 0x0}, -- {0x41a3a, 0x0}, -- {0x41a3b, 0x0}, -- {0x41a3c, 0x0}, -- {0x41a3d, 0x0}, -- {0x41a3e, 0x0}, -- {0x41a3f, 0x0}, -- {0x41a40, 0x0}, -- {0x41a41, 0x0}, -- {0x41a42, 0x0}, -- {0x41a43, 0x0}, -- {0x41a44, 0x0}, -- {0x41a45, 0x0}, -- {0x41a46, 0x0}, -- {0x41a47, 0x0}, -- {0x41a48, 0x0}, -- {0x41a49, 0x0}, -- {0x41a4a, 0x0}, -- {0x41a4b, 0x0}, -- {0x41a4c, 0x0}, -- {0x41a4d, 0x0}, -- {0x41a4e, 0x0}, -- {0x41a4f, 0x0}, -- {0x41a50, 0x0}, -- {0x41a51, 0x0}, -- {0x41a52, 0x0}, -- {0x41a53, 0x0}, -- {0x41a54, 0x0}, -- {0x41a55, 0x0}, -- {0x41a56, 0x0}, -- {0x41a57, 0x0}, -- {0x41a58, 0x0}, -- {0x41a59, 0x0}, -- {0x41a5a, 0x0}, -- {0x41a5b, 0x0}, -- {0x41a5c, 0x0}, -- {0x41a5d, 0x0}, -- {0x41a5e, 0x0}, -- {0x41a5f, 0x0}, -- {0x41a60, 0x0}, -- {0x41a61, 0x0}, -- {0x41a62, 0x0}, -- {0x41a63, 0x0}, -- {0x41a64, 0x0}, -- {0x41a65, 0x0}, -- {0x41a66, 0x0}, -- {0x41a67, 0x0}, -- {0x41a68, 0x0}, -- {0x41a69, 0x0}, -- {0x41a6a, 0x0}, -- {0x41a6b, 0x0}, -- {0x41a6c, 0x0}, -- {0x41a6d, 0x0}, -- {0x41a6e, 0x0}, -- {0x41a6f, 0x0}, -- {0x41a70, 0x0}, -- {0x41a71, 0x0}, -- {0x41a72, 0x0}, -- {0x41a73, 0x0}, -- {0x41a74, 0x0}, -- {0x41a75, 0x0}, -- {0x41a76, 0x0}, -- {0x41a77, 0x0}, -- {0x41a78, 0x0}, -- {0x41a79, 0x0}, -- {0x41a7a, 0x0}, -- {0x41a7b, 0x0}, -- {0x41a7c, 0x0}, -- {0x41a7d, 0x0}, -- {0x41a7e, 0x0}, -- {0x41a7f, 0x0}, -- {0x41a80, 0x0}, -- {0x41a81, 0x0}, -- {0x41a82, 0x0}, -- {0x41a83, 0x0}, -- {0x41a84, 0x0}, -- {0x41a85, 0x0}, -- {0x41a86, 0x0}, -- {0x41a87, 0x0}, -- {0x41a88, 0x0}, -- {0x41a89, 0x0}, -- {0x41a8a, 0x0}, -- {0x41a8b, 0x0}, -- {0x41a8c, 0x0}, -- {0x41a8d, 0x0}, -- {0x41a8e, 0x0}, -- {0x41a8f, 0x0}, -- {0x41a90, 0x0}, -- {0x41a91, 0x0}, -- {0x41a92, 0x0}, -- {0x41a93, 0x0}, -- {0x41a94, 0x0}, -- {0x41a95, 0x0}, -- {0x41a96, 0x0}, -- {0x41a97, 0x0}, -- {0x41a98, 0x0}, -- {0x41a99, 0x0}, -- {0x41a9a, 0x0}, -- {0x41a9b, 0x0}, -- {0x41a9c, 0x0}, -- {0x41a9d, 0x0}, -- {0x41a9e, 0x0}, -- {0x41a9f, 0x0}, -- {0x41aa0, 0x0}, -- {0x41aa1, 0x0}, -- {0x41aa2, 0x0}, -- {0x41aa3, 0x0}, -- {0x41aa4, 0x0}, -- {0x41aa5, 0x0}, -- {0x41aa6, 0x0}, -- {0x41aa7, 0x0}, -- {0x41aa8, 0x0}, -- {0x41aa9, 0x0}, -- {0x41aaa, 0x0}, -- {0x41aab, 0x0}, -- {0x41aac, 0x0}, -- {0x41aad, 0x0}, -- {0x41aae, 0x0}, -- {0x41aaf, 0x0}, -- {0x41ab0, 0x0}, -- {0x41ab1, 0x0}, -- {0x41ab2, 0x0}, -- {0x41ab3, 0x0}, -- {0x41ab4, 0x0}, -- {0x41ab5, 0x0}, -- {0x41ab6, 0x0}, -- {0x41ab7, 0x0}, -- {0x41ab8, 0x0}, -- {0x41ab9, 0x0}, -- {0x41aba, 0x0}, -- {0x41abb, 0x0}, -- {0x41abc, 0x0}, -- {0x41abd, 0x0}, -- {0x41abe, 0x0}, -- {0x41abf, 0x0}, -- {0x41ac0, 0x0}, -- {0x41ac1, 0x0}, -- {0x41ac2, 0x0}, -- {0x41ac3, 0x0}, -- {0x41ac4, 0x0}, -- {0x41ac5, 0x0}, -- {0x41ac6, 0x0}, -- {0x41ac7, 0x0}, -- {0x41ac8, 0x0}, -- {0x41ac9, 0x0}, -- {0x41aca, 0x0}, -- {0x41acb, 0x0}, -- {0x41acc, 0x0}, -- {0x41acd, 0x0}, -- {0x41ace, 0x0}, -- {0x41acf, 0x0}, -- {0x41ad0, 0x0}, -- {0x41ad1, 0x0}, -- {0x41ad2, 0x0}, -- {0x41ad3, 0x0}, -- {0x41ad4, 0x0}, -- {0x41ad5, 0x0}, -- {0x41ad6, 0x0}, -- {0x41ad7, 0x0}, -- {0x41ad8, 0x0}, -- {0x41ad9, 0x0}, -- {0x41ada, 0x0}, -- {0x41adb, 0x0}, -- {0x41adc, 0x0}, -- {0x41add, 0x0}, -- {0x41ade, 0x0}, -- {0x41adf, 0x0}, -- {0x41ae0, 0x0}, -- {0x41ae1, 0x0}, -- {0x41ae2, 0x0}, -- {0x41ae3, 0x0}, -- {0x41ae4, 0x0}, -- {0x41ae5, 0x0}, -- {0x41ae6, 0x0}, -- {0x41ae7, 0x0}, -- {0x41ae8, 0x0}, -- {0x41ae9, 0x0}, -- {0x41aea, 0x0}, -- {0x41aeb, 0x0}, -- {0x41aec, 0x0}, -- {0x41aed, 0x0}, -- {0x41aee, 0x0}, -- {0x41aef, 0x0}, -- {0x41af0, 0x0}, -- {0x41af1, 0x0}, -- {0x41af2, 0x0}, -- {0x41af3, 0x0}, -- {0x41af4, 0x0}, -- {0x41af5, 0x0}, -- {0x41af6, 0x0}, -- {0x41af7, 0x0}, -- {0x41af8, 0x0}, -- {0x41af9, 0x0}, -- {0x41afa, 0x0}, -- {0x41afb, 0x0}, -- {0x41afc, 0x0}, -- {0x41afd, 0x0}, -- {0x41afe, 0x0}, -- {0x41aff, 0x0}, -- {0x41b00, 0x0}, -- {0x41b01, 0x0}, -- {0x41b02, 0x0}, -- {0x41b03, 0x0}, -- {0x41b04, 0x0}, -- {0x41b05, 0x0}, -- {0x41b06, 0x0}, -- {0x41b07, 0x0}, -- {0x41b08, 0x0}, -- {0x41b09, 0x0}, -- {0x41b0a, 0x0}, -- {0x41b0b, 0x0}, -- {0x41b0c, 0x0}, -- {0x41b0d, 0x0}, -- {0x41b0e, 0x0}, -- {0x41b0f, 0x0}, -- {0x41b10, 0x0}, -- {0x41b11, 0x0}, -- {0x41b12, 0x0}, -- {0x41b13, 0x0}, -- {0x41b14, 0x0}, -- {0x41b15, 0x0}, -- {0x41b16, 0x0}, -- {0x41b17, 0x0}, -- {0x41b18, 0x0}, -- {0x41b19, 0x0}, -- {0x41b1a, 0x0}, -- {0x41b1b, 0x0}, -- {0x41b1c, 0x0}, -- {0x41b1d, 0x0}, -- {0x41b1e, 0x0}, -- {0x41b1f, 0x0}, -- {0x41b20, 0x0}, -- {0x41b21, 0x0}, -- {0x41b22, 0x0}, -- {0x41b23, 0x0}, -- {0x41b24, 0x0}, -- {0x41b25, 0x0}, -- {0x41b26, 0x0}, -- {0x41b27, 0x0}, -- {0x41b28, 0x0}, -- {0x41b29, 0x0}, -- {0x41b2a, 0x0}, -- {0x41b2b, 0x0}, -- {0x41b2c, 0x0}, -- {0x41b2d, 0x0}, -- {0x41b2e, 0x0}, -- {0x41b2f, 0x0}, -- {0x41b30, 0x0}, -- {0x41b31, 0x0}, -- {0x41b32, 0x0}, -- {0x41b33, 0x0}, -- {0x41b34, 0x0}, -- {0x41b35, 0x0}, -- {0x41b36, 0x0}, -- {0x41b37, 0x0}, -- {0x41b38, 0x0}, -- {0x41b39, 0x0}, -- {0x41b3a, 0x0}, -- {0x41b3b, 0x0}, -- {0x41b3c, 0x0}, -- {0x41b3d, 0x0}, -- {0x41b3e, 0x0}, -- {0x41b3f, 0x0}, -- {0x41b40, 0x0}, -- {0x41b41, 0x0}, -- {0x41b42, 0x0}, -- {0x41b43, 0x0}, -- {0x41b44, 0x0}, -- {0x41b45, 0x0}, -- {0x41b46, 0x0}, -- {0x41b47, 0x0}, -- {0x41b48, 0x0}, -- {0x41b49, 0x0}, -- {0x41b4a, 0x0}, -- {0x41b4b, 0x0}, -- {0x41b4c, 0x0}, -- {0x41b4d, 0x0}, -- {0x41b4e, 0x0}, -- {0x41b4f, 0x0}, -- {0x41b50, 0x0}, -- {0x41b51, 0x0}, -- {0x41b52, 0x0}, -- {0x41b53, 0x0}, -- {0x41b54, 0x0}, -- {0x41b55, 0x0}, -- {0x41b56, 0x0}, -- {0x41b57, 0x0}, -- {0x41b58, 0x0}, -- {0x41b59, 0x0}, -- {0x41b5a, 0x0}, -- {0x41b5b, 0x0}, -- {0x41b5c, 0x0}, -- {0x41b5d, 0x0}, -- {0x41b5e, 0x0}, -- {0x41b5f, 0x0}, -- {0x41b60, 0x0}, -- {0x41b61, 0x0}, -- {0x41b62, 0x0}, -- {0x41b63, 0x0}, -- {0x41b64, 0x0}, -- {0x41b65, 0x0}, -- {0x41b66, 0x0}, -- {0x41b67, 0x0}, -- {0x41b68, 0x0}, -- {0x41b69, 0x0}, -- {0x41b6a, 0x0}, -- {0x41b6b, 0x0}, -- {0x41b6c, 0x0}, -- {0x41b6d, 0x0}, -- {0x41b6e, 0x0}, -- {0x41b6f, 0x0}, -- {0x41b70, 0x0}, -- {0x41b71, 0x0}, -- {0x41b72, 0x0}, -- {0x41b73, 0x0}, -- {0x41b74, 0x0}, -- {0x41b75, 0x0}, -- {0x41b76, 0x0}, -- {0x41b77, 0x0}, -- {0x41b78, 0x0}, -- {0x41b79, 0x0}, -- {0x41b7a, 0x0}, -- {0x41b7b, 0x0}, -- {0x41b7c, 0x0}, -- {0x41b7d, 0x0}, -- {0x41b7e, 0x0}, -- {0x41b7f, 0x0}, -- {0x41b80, 0x0}, -- {0x41b81, 0x0}, -- {0x41b82, 0x0}, -- {0x41b83, 0x0}, -- {0x41b84, 0x0}, -- {0x41b85, 0x0}, -- {0x41b86, 0x0}, -- {0x41b87, 0x0}, -- {0x41b88, 0x0}, -- {0x41b89, 0x0}, -- {0x41b8a, 0x0}, -- {0x41b8b, 0x0}, -- {0x41b8c, 0x0}, -- {0x41b8d, 0x0}, -- {0x41b8e, 0x0}, -- {0x41b8f, 0x0}, -- {0x41b90, 0x0}, -- {0x41b91, 0x0}, -- {0x41b92, 0x0}, -- {0x41b93, 0x0}, -- {0x41b94, 0x0}, -- {0x41b95, 0x0}, -- {0x41b96, 0x0}, -- {0x41b97, 0x0}, -- {0x41b98, 0x0}, -- {0x41b99, 0x0}, -- {0x41b9a, 0x0}, -- {0x41b9b, 0x0}, -- {0x41b9c, 0x0}, -- {0x41b9d, 0x0}, -- {0x41b9e, 0x0}, -- {0x41b9f, 0x0}, -- {0x41ba0, 0x0}, -- {0x41ba1, 0x0}, -- {0x41ba2, 0x0}, -- {0x41ba3, 0x0}, -- {0x41ba4, 0x0}, -- {0x41ba5, 0x0}, -- {0x41ba6, 0x0}, -- {0x41ba7, 0x0}, -- {0x41ba8, 0x0}, -- {0x41ba9, 0x0}, -- {0x41baa, 0x0}, -- {0x41bab, 0x0}, -- {0x41bac, 0x0}, -- {0x41bad, 0x0}, -- {0x41bae, 0x0}, -- {0x41baf, 0x0}, -- {0x41bb0, 0x0}, -- {0x41bb1, 0x0}, -- {0x41bb2, 0x0}, -- {0x41bb3, 0x0}, -- {0x41bb4, 0x0}, -- {0x41bb5, 0x0}, -- {0x41bb6, 0x0}, -- {0x41bb7, 0x0}, -- {0x41bb8, 0x0}, -- {0x41bb9, 0x0}, -- {0x41bba, 0x0}, -- {0x41bbb, 0x0}, -- {0x41bbc, 0x0}, -- {0x41bbd, 0x0}, -- {0x41bbe, 0x0}, -- {0x41bbf, 0x0}, -- {0x41bc0, 0x0}, -- {0x41bc1, 0x0}, -- {0x41bc2, 0x0}, -- {0x41bc3, 0x0}, -- {0x41bc4, 0x0}, -- {0x41bc5, 0x0}, -- {0x41bc6, 0x0}, -- {0x41bc7, 0x0}, -- {0x41bc8, 0x0}, -- {0x41bc9, 0x0}, -- {0x41bca, 0x0}, -- {0x41bcb, 0x0}, -- {0x41bcc, 0x0}, -- {0x41bcd, 0x0}, -- {0x41bce, 0x0}, -- {0x41bcf, 0x0}, -- {0x41bd0, 0x0}, -- {0x41bd1, 0x0}, -- {0x41bd2, 0x0}, -- {0x41bd3, 0x0}, -- {0x41bd4, 0x0}, -- {0x41bd5, 0x0}, -- {0x41bd6, 0x0}, -- {0x41bd7, 0x0}, -- {0x41bd8, 0x0}, -- {0x41bd9, 0x0}, -- {0x41bda, 0x0}, -- {0x41bdb, 0x0}, -- {0x41bdc, 0x0}, -- {0x41bdd, 0x0}, -- {0x41bde, 0x0}, -- {0x41bdf, 0x0}, -- {0x41be0, 0x0}, -- {0x41be1, 0x0}, -- {0x41be2, 0x0}, -- {0x41be3, 0x0}, -- {0x41be4, 0x0}, -- {0x41be5, 0x0}, -- {0x41be6, 0x0}, -- {0x41be7, 0x0}, -- {0x41be8, 0x0}, -- {0x41be9, 0x0}, -- {0x41bea, 0x0}, -- {0x41beb, 0x0}, -- {0x41bec, 0x0}, -- {0x41bed, 0x0}, -- {0x41bee, 0x0}, -- {0x41bef, 0x0}, -- {0x41bf0, 0x0}, -- {0x41bf1, 0x0}, -- {0x41bf2, 0x0}, -- {0x41bf3, 0x0}, -- {0x41bf4, 0x0}, -- {0x41bf5, 0x0}, -- {0x41bf6, 0x0}, -- {0x41bf7, 0x0}, -- {0x41bf8, 0x0}, -- {0x41bf9, 0x0}, -- {0x41bfa, 0x0}, -- {0x41bfb, 0x0}, -- {0x41bfc, 0x0}, -- {0x41bfd, 0x0}, -- {0x41bfe, 0x0}, -- {0x41bff, 0x0}, -- {0x41c00, 0x0}, -- {0x41c01, 0x0}, -- {0x41c02, 0x0}, -- {0x41c03, 0x0}, -- {0x41c04, 0x0}, -- {0x41c05, 0x0}, -- {0x41c06, 0x0}, -- {0x41c07, 0x0}, -- {0x41c08, 0x0}, -- {0x41c09, 0x0}, -- {0x41c0a, 0x0}, -- {0x41c0b, 0x0}, -- {0x41c0c, 0x0}, -- {0x41c0d, 0x0}, -- {0x41c0e, 0x0}, -- {0x41c0f, 0x0}, -- {0x41c10, 0x0}, -- {0x41c11, 0x0}, -- {0x41c12, 0x0}, -- {0x41c13, 0x0}, -- {0x41c14, 0x0}, -- {0x41c15, 0x0}, -- {0x41c16, 0x0}, -- {0x41c17, 0x0}, -- {0x41c18, 0x0}, -- {0x41c19, 0x0}, -- {0x41c1a, 0x0}, -- {0x41c1b, 0x0}, -- {0x41c1c, 0x0}, -- {0x41c1d, 0x0}, -- {0x41c1e, 0x0}, -- {0x41c1f, 0x0}, -- {0x41c20, 0x0}, -- {0x41c21, 0x0}, -- {0x41c22, 0x0}, -- {0x41c23, 0x0}, -- {0x41c24, 0x0}, -- {0x41c25, 0x0}, -- {0x41c26, 0x0}, -- {0x41c27, 0x0}, -- {0x41c28, 0x0}, -- {0x41c29, 0x0}, -- {0x41c2a, 0x0}, -- {0x41c2b, 0x0}, -- {0x41c2c, 0x0}, -- {0x41c2d, 0x0}, -- {0x41c2e, 0x0}, -- {0x41c2f, 0x0}, -- {0x41c30, 0x0}, -- {0x41c31, 0x0}, -- {0x41c32, 0x0}, -- {0x41c33, 0x0}, -- {0x41c34, 0x0}, -- {0x41c35, 0x0}, -- {0x41c36, 0x0}, -- {0x41c37, 0x0}, -- {0x41c38, 0x0}, -- {0x41c39, 0x0}, -- {0x41c3a, 0x0}, -- {0x41c3b, 0x0}, -- {0x41c3c, 0x0}, -- {0x41c3d, 0x0}, -- {0x41c3e, 0x0}, -- {0x41c3f, 0x0}, -- {0x41c40, 0x0}, -- {0x41c41, 0x0}, -- {0x41c42, 0x0}, -- {0x41c43, 0x0}, -- {0x41c44, 0x0}, -- {0x41c45, 0x0}, -- {0x41c46, 0x0}, -- {0x41c47, 0x0}, -- {0x41c48, 0x0}, -- {0x41c49, 0x0}, -- {0x41c4a, 0x0}, -- {0x41c4b, 0x0}, -- {0x41c4c, 0x0}, -- {0x41c4d, 0x0}, -- {0x41c4e, 0x0}, -- {0x41c4f, 0x0}, -- {0x41c50, 0x0}, -- {0x41c51, 0x0}, -- {0x41c52, 0x0}, -- {0x41c53, 0x0}, -- {0x41c54, 0x0}, -- {0x41c55, 0x0}, -- {0x41c56, 0x0}, -- {0x41c57, 0x0}, -- {0x9002e, 0x0}, -- {0x9002f, 0x0}, -- {0x90030, 0x0}, -- {0x90031, 0x0}, -- {0x90032, 0x0}, -- {0x90033, 0x0}, -- {0x90034, 0x0}, -- {0x90035, 0x0}, -- {0x90036, 0x0}, -- {0x90037, 0x0}, -- {0x90038, 0x0}, -- {0x90039, 0x0}, -- {0x9003a, 0x0}, -- {0x9003b, 0x0}, -- {0x9003c, 0x0}, -- {0x9003d, 0x0}, -- {0x9003e, 0x0}, -- {0x9003f, 0x0}, -- {0x90040, 0x0}, -- {0x90041, 0x0}, -- {0x90042, 0x0}, -- {0x90043, 0x0}, -- {0x90044, 0x0}, -- {0x90045, 0x0}, -- {0x90046, 0x0}, -- {0x90047, 0x0}, -- {0x90048, 0x0}, -- {0x90049, 0x0}, -- {0x9004a, 0x0}, -- {0x9004b, 0x0}, -- {0x9004c, 0x0}, -- {0x9004d, 0x0}, -- {0x9004e, 0x0}, -- {0x9004f, 0x0}, -- {0x90050, 0x0}, -- {0x90051, 0x0}, -- {0x90052, 0x0}, -- {0x90053, 0x0}, -- {0x90054, 0x0}, -- {0x90055, 0x0}, -- {0x90056, 0x0}, -- {0x90057, 0x0}, -- {0x90058, 0x0}, -- {0x90059, 0x0}, -- {0x9005a, 0x0}, -- {0x9005b, 0x0}, -- {0x9005c, 0x0}, -- {0x9005d, 0x0}, -- {0x9005e, 0x0}, -- {0x9005f, 0x0}, -- {0x90060, 0x0}, -- {0x90061, 0x0}, -- {0x90062, 0x0}, -- {0x90063, 0x0}, -- {0x90064, 0x0}, -- {0x90065, 0x0}, -- {0x90066, 0x0}, -- {0x90067, 0x0}, -- {0x90068, 0x0}, -- {0x90069, 0x0}, -- {0x9006a, 0x0}, -- {0x9006b, 0x0}, -- {0x9006c, 0x0}, -- {0x9006d, 0x0}, -- {0x9006e, 0x0}, -- {0x9006f, 0x0}, -- {0x90070, 0x0}, -- {0x90071, 0x0}, -- {0x90072, 0x0}, -- {0x90073, 0x0}, -- {0x90074, 0x0}, -- {0x90075, 0x0}, -- {0x90076, 0x0}, -- {0x90077, 0x0}, -- {0x90078, 0x0}, -- {0x90079, 0x0}, -- {0x9007a, 0x0}, -- {0x9007b, 0x0}, -- {0x9007c, 0x0}, -- {0x9007d, 0x0}, -- {0x9007e, 0x0}, -- {0x9007f, 0x0}, -- {0x90080, 0x0}, -- {0x90081, 0x0}, -- {0x90082, 0x0}, -- {0x90083, 0x0}, -- {0x90084, 0x0}, -- {0x90085, 0x0}, -- {0x90086, 0x0}, -- {0x90087, 0x0}, -- {0x90088, 0x0}, -- {0x90089, 0x0}, -- {0x9008a, 0x0}, -- {0x9008b, 0x0}, -- {0x9008c, 0x0}, -- {0x9008d, 0x0}, -- {0x9008e, 0x0}, -- {0x9008f, 0x0}, -- {0x90090, 0x0}, -- {0x90091, 0x0}, -- {0x90092, 0x0}, -- {0x90093, 0x0}, -- {0x90094, 0x0}, -- {0x90095, 0x0}, -- {0x90096, 0x0}, -- {0x90097, 0x0}, -- {0x90098, 0x0}, -- {0x90099, 0x0}, -- {0x9009a, 0x0}, -- {0x9009b, 0x0}, -- {0x9009c, 0x0}, -- {0x9009d, 0x0}, -- {0x9009e, 0x0}, -- {0x9009f, 0x0}, -- {0x900a0, 0x0}, -- {0x900a1, 0x0}, -- {0x900a2, 0x0}, -- {0x900a3, 0x0}, -- {0x900a4, 0x0}, -- {0x900a5, 0x0}, -- {0x900a6, 0x0}, -- {0x900a7, 0x0}, -- {0x900a8, 0x0}, -- {0x900a9, 0x0}, -- {0x900aa, 0x0}, -- {0x900ab, 0x0}, -- {0x900ac, 0x0}, -- {0x900ad, 0x0}, -- {0x900ae, 0x0}, -- {0x900af, 0x0}, -- {0x900b0, 0x0}, -- {0x900b1, 0x0}, -- {0x900b2, 0x0}, -- {0x900b3, 0x0}, -- {0x900b4, 0x0}, -- {0x900b5, 0x0}, -- {0x900b6, 0x0}, -- {0x900b7, 0x0}, -- {0x900b8, 0x0}, -- {0x900b9, 0x0}, -- {0x900ba, 0x0}, -- {0x900bb, 0x0}, -- {0x900bc, 0x0}, -- {0x900bd, 0x0}, -- {0x900be, 0x0}, -- {0x900bf, 0x0}, -- {0x900c0, 0x0}, -- {0x900c1, 0x0}, -- {0x900c2, 0x0}, -- {0x900c3, 0x0}, -- {0x900c4, 0x0}, -- {0x900c5, 0x0}, -- {0x900c6, 0x0}, -- {0x900c7, 0x0}, -- {0x900c8, 0x0}, -- {0x900c9, 0x0}, -- {0x900ca, 0x0}, -- {0x900cb, 0x0}, -- {0x900cc, 0x0}, -- {0x900cd, 0x0}, -- {0x900ce, 0x0}, -- {0x900cf, 0x0}, -- {0x900d0, 0x0}, -- {0x900d1, 0x0}, -- {0x900d2, 0x0}, -- {0x900d3, 0x0}, -- {0x900d4, 0x0}, -- {0x900d5, 0x0}, -- {0x900d6, 0x0}, -- {0x900d7, 0x0}, -- {0x900d8, 0x0}, -- {0x900d9, 0x0}, -- {0x900da, 0x0}, -- {0x900db, 0x0}, -- {0x900dc, 0x0}, -- {0x900dd, 0x0}, -- {0x900de, 0x0}, -- {0x900df, 0x0}, -- {0x900e0, 0x0}, -- {0x900e1, 0x0}, -- {0x900e2, 0x0}, -- {0x900e3, 0x0}, -- {0x900e4, 0x0}, -- {0x900e5, 0x0}, -- {0x900e6, 0x0}, -- {0x900e7, 0x0}, -- {0x900e8, 0x0}, -- {0x900e9, 0x0}, -- {0x900ea, 0x0}, -- {0x900eb, 0x0}, -- {0x900ec, 0x0}, -- {0x900ed, 0x0}, -- {0x900ee, 0x0}, -- {0x900ef, 0x0}, -- {0x900f0, 0x0}, -- {0x900f1, 0x0}, -- {0x900f2, 0x0}, -- {0x900f3, 0x0}, -- {0x900f4, 0x0}, -- {0x900f5, 0x0}, -- {0x900f6, 0x0}, -- {0x900f7, 0x0}, -- {0x900f8, 0x0}, -- {0x900f9, 0x0}, -- {0x900fa, 0x0}, -- {0x900fb, 0x0}, -- {0x900fc, 0x0}, -- {0x900fd, 0x0}, -- {0x900fe, 0x0}, -- {0x900ff, 0x0}, -- {0x90100, 0x0}, -- {0x90101, 0x0}, -- {0x90102, 0x0}, -- {0x90103, 0x0}, -- {0x90104, 0x0}, -- {0x90105, 0x0}, -- {0x90106, 0x0}, -- {0x90107, 0x0}, -- {0x90108, 0x0}, -- {0x90109, 0x0}, -- {0x9010a, 0x0}, -- {0x9010b, 0x0}, -- {0x9010c, 0x0}, -- {0x9010d, 0x0}, -- {0x9010e, 0x0}, -- {0x9010f, 0x0}, -- {0x90110, 0x0}, -- {0x90111, 0x0}, -- {0x90112, 0x0}, -- {0x90113, 0x0}, -- {0x90114, 0x0}, -- {0x90115, 0x0}, -- {0x90116, 0x0}, -- {0x90117, 0x0}, -- {0x90118, 0x0}, -- {0x90119, 0x0}, -- {0x9011a, 0x0}, -- {0x9011b, 0x0}, -- {0x9011c, 0x0}, -- {0x9011d, 0x0}, -- {0x9011e, 0x0}, -- {0x9011f, 0x0}, -- {0x90120, 0x0}, -- {0x90121, 0x0}, -- {0x90122, 0x0}, -- {0x90123, 0x0}, -- {0x90124, 0x0}, -- {0x90125, 0x0}, -- {0x90126, 0x0}, -- {0x90127, 0x0}, -- {0x90128, 0x0}, -- {0x90129, 0x0}, -- {0x9012a, 0x0}, -- {0x9012b, 0x0}, -- {0x9012c, 0x0}, -- {0x9012d, 0x0}, -- {0x9012e, 0x0}, -- {0x9012f, 0x0}, -- {0x90130, 0x0}, -- {0x90131, 0x0}, -- {0x90132, 0x0}, -- {0x90133, 0x0}, -- {0x90134, 0x0}, -- {0x90135, 0x0}, -- {0x90136, 0x0}, -- {0x90137, 0x0}, -- {0x90138, 0x0}, -- {0x90139, 0x0}, -- {0x9013a, 0x0}, -- {0x9013b, 0x0}, -- {0x9013c, 0x0}, -- {0x9013d, 0x0}, -- {0x9013e, 0x0}, -- {0x9013f, 0x0}, -- {0x90140, 0x0}, -- {0x90141, 0x0}, -- {0x90142, 0x0}, -- {0x90143, 0x0}, -- {0x90144, 0x0}, -- {0x90145, 0x0}, -- {0x90146, 0x0}, -- {0x90147, 0x0}, -- {0x90148, 0x0}, -- {0x90149, 0x0}, -- {0x9014a, 0x0}, -- {0x9014b, 0x0}, -- {0x9014c, 0x0}, -- {0x9014d, 0x0}, -- {0x9014e, 0x0}, -- {0x9014f, 0x0}, -- {0x90150, 0x0}, -- {0x90151, 0x0}, -- {0x90152, 0x0}, -- {0x90153, 0x0}, -- {0x90154, 0x0}, -- {0x90155, 0x0}, -- {0x90156, 0x0}, -- {0x90157, 0x0}, -- {0x90158, 0x0}, -- {0x90159, 0x0}, -- {0x9015a, 0x0}, -- {0x9015b, 0x0}, -- {0x9015c, 0x0}, -- {0x9015d, 0x0}, -- {0x9015e, 0x0}, -- {0x9015f, 0x0}, -- {0x90160, 0x0}, -- {0x90161, 0x0}, -- {0x90162, 0x0}, -- {0x90163, 0x0}, -- {0x90164, 0x0}, -- {0x90165, 0x0}, -- {0x90166, 0x0}, -- {0x90167, 0x0}, -- {0x90168, 0x0}, -- {0x90169, 0x0}, -- {0x9016a, 0x0}, -- {0x9016b, 0x0}, -- {0x9016c, 0x0}, -- {0x9016d, 0x0}, -- {0x9016e, 0x0}, -- {0x9016f, 0x0}, -- {0x90170, 0x0}, -- {0x90171, 0x0}, -- {0x90172, 0x0}, -- {0x90173, 0x0}, -- {0x90174, 0x0}, -- {0x90175, 0x0}, -- {0x90176, 0x0}, -- {0x90177, 0x0}, -- {0x90178, 0x0}, -- {0x90179, 0x0}, -- {0x9017a, 0x0}, -- {0x9017b, 0x0}, -- {0x9017c, 0x0}, -- {0x9017d, 0x0}, -- {0x9017e, 0x0}, -- {0x9017f, 0x0}, -- {0x90180, 0x0}, -- {0x90181, 0x0}, -- {0x90182, 0x0}, -- {0x90183, 0x0}, -- {0x90184, 0x0}, -- {0x90185, 0x0}, -- {0x90186, 0x0}, -- {0x90187, 0x0}, -- {0x90188, 0x0}, -- {0x90189, 0x0}, -- {0x9018a, 0x0}, -- {0x9018b, 0x0}, -- {0x9018c, 0x0}, -- {0x9018d, 0x0}, -- {0x9018e, 0x0}, -- {0x9018f, 0x0}, -- {0x90190, 0x0}, -- {0x90191, 0x0}, -- {0x90192, 0x0}, -- {0x90193, 0x0}, -- {0x90194, 0x0}, -- {0x90195, 0x0}, -- {0x90196, 0x0}, -- {0x90197, 0x0}, -- {0x90198, 0x0}, -- {0x90199, 0x0}, -- {0x9019a, 0x0}, -- {0x9019b, 0x0}, -- {0x9019c, 0x0}, -- {0x9019d, 0x0}, -- {0x9019e, 0x0}, -- {0x9019f, 0x0}, -- {0x901a0, 0x0}, -- {0x901a1, 0x0}, -- {0x901a2, 0x0}, -- {0x901a3, 0x0}, -- {0x901a4, 0x0}, -- {0x901a5, 0x0}, -- {0x901a6, 0x0}, -- {0x901a7, 0x0}, -- {0x901a8, 0x0}, -- {0x901a9, 0x0}, -- {0x901aa, 0x0}, -- {0x901ab, 0x0}, -- {0x901ac, 0x0}, -- {0x901ad, 0x0}, -- {0x901ae, 0x0}, -- {0x901af, 0x0}, -- {0x901b0, 0x0}, -- {0x901b1, 0x0}, -- {0x901b2, 0x0}, -- {0x901b3, 0x0}, -- {0x901b4, 0x0}, -- {0x901b5, 0x0}, -- {0x901b6, 0x0}, -- {0x901b7, 0x0}, -- {0x901b8, 0x0}, -- {0x901b9, 0x0}, -- {0x901ba, 0x0}, -- {0x901bb, 0x0}, -- {0x901bc, 0x0}, -- {0x901bd, 0x0}, -- {0x901be, 0x0}, -- {0x901bf, 0x0}, -- {0x901c0, 0x0}, -- {0x901c1, 0x0}, -- {0x901c2, 0x0}, -- {0x901c3, 0x0}, -- {0x901c4, 0x0}, -- {0x901c5, 0x0}, -- {0x901c6, 0x0}, -- {0x901c7, 0x0}, -- {0x901c8, 0x0}, -- {0x901c9, 0x0}, -- {0x901ca, 0x0}, -- {0x901cb, 0x0}, -- {0x901cc, 0x0}, -- {0x901cd, 0x0}, -- {0x901ce, 0x0}, -- {0x901cf, 0x0}, -- {0x901d0, 0x0}, -- {0x901d1, 0x0}, -- {0x901d2, 0x0}, -- {0x901d3, 0x0}, -- {0x901d4, 0x0}, -- {0x901d5, 0x0}, -- {0x901d6, 0x0}, -- {0x901d7, 0x0}, -- {0x901d8, 0x0}, -- {0x901d9, 0x0}, -- {0x901da, 0x0}, -- {0x901db, 0x0}, -- {0x901dc, 0x0}, -- {0x901dd, 0x0}, -- {0x901de, 0x0}, -- {0x901df, 0x0}, -- {0x901e0, 0x0}, -- {0x901e1, 0x0}, -- {0x901e2, 0x0}, -- {0x901e3, 0x0}, -- {0x901e4, 0x0}, -- {0x901e5, 0x0}, -- {0x901e6, 0x0}, -- {0x901e7, 0x0}, -- {0x901e8, 0x0}, -- {0x901e9, 0x0}, -- {0x901ea, 0x0}, -- {0x901eb, 0x0}, -- {0x901ec, 0x0}, -- {0x901ed, 0x0}, -- {0x901ee, 0x0}, -- {0x901ef, 0x0}, -- {0x901f0, 0x0}, -- {0x901f1, 0x0}, -- {0x901f2, 0x0}, -- {0x901f3, 0x0}, -- {0x901f4, 0x0}, -- {0x901f5, 0x0}, -- {0x901f6, 0x0}, -- {0x901f7, 0x0}, -- {0x901f8, 0x0}, -- {0x901f9, 0x0}, -- {0x901fa, 0x0}, -- {0x901fb, 0x0}, -- {0x901fc, 0x0}, -- {0x901fd, 0x0}, -- {0x901fe, 0x0}, -- {0x901ff, 0x0}, -- {0x90200, 0x0}, -- {0x90201, 0x0}, -- {0x90202, 0x0}, -- {0x90203, 0x0}, -- {0x90204, 0x0}, -- {0x90205, 0x0}, -- {0x90206, 0x0}, -- {0x90207, 0x0}, -- {0x90208, 0x0}, -- {0x90209, 0x0}, -- {0x9020a, 0x0}, -- {0x9020b, 0x0}, -- {0x9020c, 0x0}, -- {0x9020d, 0x0}, -- {0x9020e, 0x0}, -- {0x9020f, 0x0}, -- {0x90210, 0x0}, -- {0x90211, 0x0}, -- {0x90212, 0x0}, -- {0x90213, 0x0}, -- {0x90214, 0x0}, -- {0x90215, 0x0}, -- {0x90216, 0x0}, -- {0x90217, 0x0}, -- {0x90218, 0x0}, -- {0x90219, 0x0}, -- {0x9021a, 0x0}, -- {0x9021b, 0x0}, -- {0x9021c, 0x0}, -- {0x9021d, 0x0}, -- {0x9021e, 0x0}, -- {0x9021f, 0x0}, -- {0x90220, 0x0}, -- {0x90221, 0x0}, -- {0x90222, 0x0}, -- {0x90223, 0x0}, -- {0x90224, 0x0}, -- {0x90225, 0x0}, -- {0x90226, 0x0}, -- {0x90227, 0x0}, -- {0x90228, 0x0}, -- {0x90229, 0x0}, -- {0x9022a, 0x0}, -- {0x9022b, 0x0}, -- {0x9022c, 0x0}, -- {0x9022d, 0x0}, -- {0x9022e, 0x0}, -- {0x9022f, 0x0}, -- {0x90230, 0x0}, -- {0x90231, 0x0}, -- {0x90232, 0x0}, -- {0x90233, 0x0}, -- {0x90234, 0x0}, -- {0x90235, 0x0}, -- {0x90236, 0x0}, -- {0x90237, 0x0}, -- {0x90238, 0x0}, -- {0x90239, 0x0}, -- {0x9023a, 0x0}, -- {0x9023b, 0x0}, -- {0x9023c, 0x0}, -- {0x9023d, 0x0}, -- {0x9023e, 0x0}, -- {0x9023f, 0x0}, -- {0x90240, 0x0}, -- {0x90241, 0x0}, -- {0x90242, 0x0}, -- {0x90243, 0x0}, -- {0x90244, 0x0}, -- {0x90245, 0x0}, -- {0x90246, 0x0}, -- {0x90247, 0x0}, -- {0x90248, 0x0}, -- {0x90249, 0x0}, -- {0x9024a, 0x0}, -- {0x9024b, 0x0}, -- {0x9024c, 0x0}, -- {0x9024d, 0x0}, -- {0x9024e, 0x0}, -- {0x9024f, 0x0}, -- {0x90250, 0x0}, -- {0x90251, 0x0}, -- {0x90252, 0x0}, -- {0x90253, 0x0}, -- {0x90254, 0x0}, -- {0x90255, 0x0}, -- {0x90256, 0x0}, -- {0x90257, 0x0}, -- {0x90258, 0x0}, -- {0x90259, 0x0}, -- {0x9025a, 0x0}, -- {0x9025b, 0x0}, -- {0x9025c, 0x0}, -- {0x9025d, 0x0}, -- {0x9025e, 0x0}, -- {0x9025f, 0x0}, -- {0x90260, 0x0}, -- {0x90261, 0x0}, -- {0x90262, 0x0}, -- {0x90263, 0x0}, -- {0x90264, 0x0}, -- {0x90265, 0x0}, -- {0x90266, 0x0}, -- {0x90267, 0x0}, -- {0x90268, 0x0}, -- {0x90269, 0x0}, -- {0x9026a, 0x0}, -- {0x9026b, 0x0}, -- {0x9026c, 0x0}, -- {0x9026d, 0x0}, -- {0x9026e, 0x0}, -- {0x9026f, 0x0}, -- {0x90270, 0x0}, -- {0x90271, 0x0}, -- {0x90272, 0x0}, -- {0x90273, 0x0}, -- {0x90274, 0x0}, -- {0x90275, 0x0}, -- {0x90276, 0x0}, -- {0x90277, 0x0}, -- {0x90278, 0x0}, -- {0x90279, 0x0}, -- {0x9027a, 0x0}, -- {0x9027b, 0x0}, -- {0x9027c, 0x0}, -- {0x9027d, 0x0}, -- {0x9027e, 0x0}, -- {0x9027f, 0x0}, -- {0x90280, 0x0}, -- {0x90281, 0x0}, -- {0x90282, 0x0}, -- {0x90283, 0x0}, -- {0x90284, 0x0}, -- {0x90285, 0x0}, -- {0x90286, 0x0}, -- {0x90287, 0x0}, -- {0x90288, 0x0}, -- {0x90289, 0x0}, -- {0x9028a, 0x0}, -- {0x9028b, 0x0}, -- {0x9028c, 0x0}, -- {0x9028d, 0x0}, -- {0x9028e, 0x0}, -- {0x9028f, 0x0}, -- {0x90290, 0x0}, -- {0x90291, 0x0}, -- {0x90292, 0x0}, -- {0x90293, 0x0}, -- {0x90294, 0x0}, -- {0x90295, 0x0}, -- {0x90296, 0x0}, -- {0x90297, 0x0}, -- {0x90298, 0x0}, -- {0x90299, 0x0}, -- {0x9029a, 0x0}, -- {0x9029b, 0x0}, -- {0x9029c, 0x0}, -- {0x9029d, 0x0}, -- {0x9029e, 0x0}, -- {0x9029f, 0x0}, -- {0x902a0, 0x0}, -- {0x902a1, 0x0}, -- {0x902a2, 0x0}, -- {0x902a3, 0x0}, -- {0x902a4, 0x0}, -- {0x902a5, 0x0}, -- {0x902a6, 0x0}, -- {0x902a7, 0x0}, -- {0x902a8, 0x0}, -- {0x902a9, 0x0}, -- {0x902aa, 0x0}, -- {0x902ab, 0x0}, -- {0x902ac, 0x0}, -- {0x902ad, 0x0}, -- {0x902ae, 0x0}, -- {0x902af, 0x0}, -- {0x902b0, 0x0}, -- {0x902b1, 0x0}, -- {0x902b2, 0x0}, -- {0x902b3, 0x0}, -- {0x902b4, 0x0}, -- {0x902b5, 0x0}, -- {0x902b6, 0x0}, -- {0x902b7, 0x0}, -- {0x902b8, 0x0}, -- {0x902b9, 0x0}, -- {0x902ba, 0x0}, -- {0x902bb, 0x0}, -- {0x902bc, 0x0}, -- {0x902bd, 0x0}, -- {0x902be, 0x0}, -- {0x902bf, 0x0}, -- {0x902c0, 0x0}, -- {0x902c1, 0x0}, -- {0x902c2, 0x0}, -- {0x902c3, 0x0}, -- {0x902c4, 0x0}, -- {0x902c5, 0x0}, -- {0x902c6, 0x0}, -- {0x902c7, 0x0}, -- {0x902c8, 0x0}, -- {0x902c9, 0x0}, -- {0x902ca, 0x0}, -- {0x902cb, 0x0}, -- {0x902cc, 0x0}, -- {0x902cd, 0x0}, -- {0x902ce, 0x0}, -- {0x902cf, 0x0}, -- {0x902d0, 0x0}, -- {0x902d1, 0x0}, -- {0x902d2, 0x0}, -- {0x902d3, 0x0}, -- {0x902d4, 0x0}, -- {0x902d5, 0x0}, -- {0x902d6, 0x0}, -- {0x902d7, 0x0}, -- {0x902d8, 0x0}, -- {0x902d9, 0x0}, -- {0x902da, 0x0}, -- {0x902db, 0x0}, -- {0x902dc, 0x0}, -- {0x902dd, 0x0}, -- {0x902de, 0x0}, -- {0x902df, 0x0}, -- {0x902e0, 0x0}, -- {0x902e1, 0x0}, -- {0x902e2, 0x0}, -- {0x902e3, 0x0}, -- {0x902e4, 0x0}, -- {0x902e5, 0x0}, -- {0x902e6, 0x0}, -- {0x902e7, 0x0}, -- {0x902e8, 0x0}, -- {0x902e9, 0x0}, -- {0x902ea, 0x0}, -- {0x902eb, 0x0}, -- {0x902ec, 0x0}, -- {0x902ed, 0x0}, -- {0x902ee, 0x0}, -- {0x902ef, 0x0}, -- {0x902f0, 0x0}, -- {0x902f1, 0x0}, -- {0x902f2, 0x0}, -- {0x902f3, 0x0}, -- {0x902f4, 0x0}, -- {0x902f5, 0x0}, -- {0x902f6, 0x0}, -- {0x902f7, 0x0}, -- {0x902f8, 0x0}, -- {0x902f9, 0x0}, -- {0x902fa, 0x0}, -- {0x902fb, 0x0}, -- {0x902fc, 0x0}, -- {0x902fd, 0x0}, -- {0x902fe, 0x0}, -- {0x902ff, 0x0}, -- {0x90300, 0x0}, -- {0x90301, 0x0}, -- {0x90302, 0x0}, -- {0x90303, 0x0}, -- {0x90304, 0x0}, -- {0x90305, 0x0}, -- {0x90306, 0x0}, -- {0x90307, 0x0}, -- {0x90308, 0x0}, -- {0x90309, 0x0}, -- {0x9030a, 0x0}, -- {0x9030b, 0x0}, -- {0x9030c, 0x0}, -- {0x9030d, 0x0}, -- {0x9030e, 0x0}, -- {0x9030f, 0x0}, -- {0x90310, 0x0}, -- {0x90311, 0x0}, -- {0x90312, 0x0}, -- {0x90313, 0x0}, -- {0x90314, 0x0}, -- {0x90315, 0x0}, -- {0x90316, 0x0}, -- {0x90317, 0x0}, -- {0x90318, 0x0}, -- {0x90319, 0x0}, -- {0x9031a, 0x0}, -- {0x9031b, 0x0}, -- {0x9031c, 0x0}, -- {0x9031d, 0x0}, -- {0x9031e, 0x0}, -- {0x9031f, 0x0}, -- {0x90320, 0x0}, -- {0x90321, 0x0}, -- {0x90322, 0x0}, -- {0x90323, 0x0}, -- {0x90324, 0x0}, -- {0x90325, 0x0}, -- {0x90326, 0x0}, -- {0x90327, 0x0}, -- {0x90328, 0x0}, -- {0x90329, 0x0}, -- {0x9032a, 0x0}, -- {0x9032b, 0x0}, -- {0x9032c, 0x0}, -- {0x9032d, 0x0}, -- {0x9032e, 0x0}, -- {0x9032f, 0x0}, -- {0x90330, 0x0}, -- {0x90331, 0x0}, -- {0x90332, 0x0}, -- {0x90333, 0x0}, -- {0x90334, 0x0}, -- {0x90335, 0x0}, -- {0x90336, 0x0}, -- {0x90337, 0x0}, -- {0x90338, 0x0}, -- {0x90339, 0x0}, -- {0x9033a, 0x0}, -- {0x9033b, 0x0}, -- {0x9033c, 0x0}, -- {0x9033d, 0x0}, -- {0x9033e, 0x0}, -- {0x9033f, 0x0}, -- {0x90340, 0x0}, -- {0x90341, 0x0}, -- {0x90342, 0x0}, -- {0x90343, 0x0}, -- {0x90344, 0x0}, -- {0x90345, 0x0}, -- {0x90346, 0x0}, -- {0x90347, 0x0}, -- {0x90348, 0x0}, -- {0x90349, 0x0}, -- {0x9034a, 0x0}, -- {0x9034b, 0x0}, -- {0x9034c, 0x0}, -- {0x9034d, 0x0}, -- {0x9034e, 0x0}, -- {0x9034f, 0x0}, -- {0x90350, 0x0}, -- {0x90351, 0x0}, -- {0x90352, 0x0}, -- {0x90353, 0x0}, -- {0x90354, 0x0}, -- {0x90355, 0x0}, -- {0x90356, 0x0}, -- {0x90357, 0x0}, -- {0x90358, 0x0}, -- {0x90359, 0x0}, -- {0x9035a, 0x0}, -- {0x9035b, 0x0}, -- {0x9035c, 0x0}, -- {0x9035d, 0x0}, -- {0x9035e, 0x0}, -- {0x9035f, 0x0}, -- {0x90360, 0x0}, -- {0x90361, 0x0}, -- {0x90362, 0x0}, -- {0x90363, 0x0}, -- {0x90364, 0x0}, -- {0x90365, 0x0}, -- {0x90366, 0x0}, -- {0x90367, 0x0}, -- {0x90368, 0x0}, -- {0x90369, 0x0}, -- {0x9036a, 0x0}, -- {0x9036b, 0x0}, -- {0x9036c, 0x0}, -- {0x9036d, 0x0}, -- {0x9036e, 0x0}, -- {0x9036f, 0x0}, -- {0x90370, 0x0}, -- {0x90371, 0x0}, -- {0x90372, 0x0}, -- {0x90373, 0x0}, -- {0x90374, 0x0}, -- {0x90375, 0x0}, -- {0x90376, 0x0}, -- {0x90377, 0x0}, -- {0x90378, 0x0}, -- {0x90379, 0x0}, -- {0x9037a, 0x0}, -- {0x9037b, 0x0}, -- {0x9037c, 0x0}, -- {0x9037d, 0x0}, -- {0x9037e, 0x0}, -- {0x9037f, 0x0}, -- {0x90380, 0x0}, -- {0x90381, 0x0}, -- {0x90382, 0x0}, -- {0x90383, 0x0}, -- {0x90384, 0x0}, -- {0x90385, 0x0}, -- {0x90386, 0x0}, -- {0x90387, 0x0}, -- {0x90388, 0x0}, -- {0x90389, 0x0}, -- {0x9038a, 0x0}, -- {0x9038b, 0x0}, -- {0x9038c, 0x0}, -- {0x9038d, 0x0}, -- {0x9038e, 0x0}, -- {0x9038f, 0x0}, -- {0x90390, 0x0}, -- {0x90391, 0x0}, -- {0x90392, 0x0}, -- {0x90393, 0x0}, -- {0x90394, 0x0}, -- {0x90395, 0x0}, -- {0x90396, 0x0}, -- {0x90397, 0x0}, -- {0x90398, 0x0}, -- {0x90399, 0x0}, -- {0x9039a, 0x0}, -- {0x9039b, 0x0}, -- {0x9039c, 0x0}, -- {0x9039d, 0x0}, -- {0x9039e, 0x0}, -- {0x9039f, 0x0}, -- {0x903a0, 0x0}, -- {0x903a1, 0x0}, -- {0x903a2, 0x0}, -- {0x903a3, 0x0}, -- {0x903a4, 0x0}, -- {0x903a5, 0x0}, -- {0x903a6, 0x0}, -- {0x903a7, 0x0}, -- {0x903a8, 0x0}, -- {0x903a9, 0x0}, -- {0x903aa, 0x0}, -- {0x903ab, 0x0}, -- {0x903ac, 0x0}, -- {0x903ad, 0x0}, -- {0x903ae, 0x0}, -- {0x903af, 0x0}, -- {0x903b0, 0x0}, -- {0x903b1, 0x0}, -- {0x903b2, 0x0}, -- {0x903b3, 0x0}, -- {0x903b4, 0x0}, -- {0x903b5, 0x0}, -- {0x903b6, 0x0}, -- {0x903b7, 0x0}, -- {0x903b8, 0x0}, -- {0x903b9, 0x0}, -- {0x903ba, 0x0}, -- {0x903bb, 0x0}, -- {0x903bc, 0x0}, -- {0x903bd, 0x0}, -- {0x903be, 0x0}, -- {0x903bf, 0x0}, -- {0x903c0, 0x0}, -- {0x903c1, 0x0}, -- {0x903c2, 0x0}, -- {0x903c3, 0x0}, -- {0x903c4, 0x0}, -- {0x903c5, 0x0}, -- {0x903c6, 0x0}, -- {0x903c7, 0x0}, -- {0x903c8, 0x0}, -- {0x903c9, 0x0}, -- {0x903ca, 0x0}, -- {0x903cb, 0x0}, -- {0x903cc, 0x0}, -- {0x903cd, 0x0}, -- {0x903ce, 0x0}, -- {0x903cf, 0x0}, -- {0x903d0, 0x0}, -- {0x903d1, 0x0}, -- {0x903d2, 0x0}, -- {0x903d3, 0x0}, -- {0x903d4, 0x0}, -- {0x903d5, 0x0}, -- {0x903d6, 0x0}, -- {0x903d7, 0x0}, -- {0x903d8, 0x0}, -- {0x903d9, 0x0}, -- {0x903da, 0x0}, -- {0x903db, 0x0}, -- {0x903dc, 0x0}, -- {0x903dd, 0x0}, -- {0x903de, 0x0}, -- {0x903df, 0x0}, -- {0x903e0, 0x0}, -- {0x903e1, 0x0}, -- {0x903e2, 0x0}, -- {0x903e3, 0x0}, -- {0x903e4, 0x0}, -- {0x903e5, 0x0}, -- {0x903e6, 0x0}, -- {0x903e7, 0x0}, -- {0x903e8, 0x0}, -- {0x903e9, 0x0}, -- {0x903ea, 0x0}, -- {0x903eb, 0x0}, -- {0x903ec, 0x0}, -- {0x903ed, 0x0}, -- {0x903ee, 0x0}, -- {0x903ef, 0x0}, -- {0x903f0, 0x0}, -- {0x903f1, 0x0}, -- {0x903f2, 0x0}, -- {0x903f3, 0x0}, -- {0x903f4, 0x0}, -- {0x903f5, 0x0}, -- {0x903f6, 0x0}, -- {0x903f7, 0x0}, -- {0x903f8, 0x0}, -- {0x903f9, 0x0}, -- {0x903fa, 0x0}, -- {0x903fb, 0x0}, -- {0x903fc, 0x0}, -- {0x903fd, 0x0}, -- {0x903fe, 0x0}, -- {0x903ff, 0x0}, -- {0x90400, 0x0}, -- {0x90401, 0x0}, -- {0x90402, 0x0}, -- {0x90403, 0x0}, -- {0x90404, 0x0}, -- {0x90405, 0x0}, -- {0x90406, 0x0}, -- {0x90407, 0x0}, -- {0x90408, 0x0}, -- {0x90409, 0x0}, -- {0x9040a, 0x0}, -- {0x9040b, 0x0}, -- {0x9040c, 0x0}, -- {0x9040d, 0x0}, -- {0x9040e, 0x0}, -- {0x9040f, 0x0}, -- {0x90410, 0x0}, -- {0x90411, 0x0}, -- {0x90412, 0x0}, -- {0x90413, 0x0}, -- {0x90414, 0x0}, -- {0x90415, 0x0}, -- {0x90416, 0x0}, -- {0x90417, 0x0}, -- {0x90418, 0x0}, -- {0x90419, 0x0}, -- {0x9041a, 0x0}, -- {0x9041b, 0x0}, -- {0x9041c, 0x0}, -- {0x9041d, 0x0}, -- {0x9041e, 0x0}, -- {0x9041f, 0x0}, -- {0x90420, 0x0}, -- {0x90421, 0x0}, -- {0x90422, 0x0}, -- {0x90423, 0x0}, -- {0x90424, 0x0}, -- {0x90425, 0x0}, -- {0x90426, 0x0}, -- {0x90427, 0x0}, -- {0x90428, 0x0}, -- {0x90429, 0x0}, -- {0x9042a, 0x0}, -- {0x9042b, 0x0}, -- {0x9042c, 0x0}, -- {0x9042d, 0x0}, -- {0x9042e, 0x0}, -- {0x9042f, 0x0}, -- {0x90430, 0x0}, -- {0x90431, 0x0}, -- {0x90432, 0x0}, -- {0x90433, 0x0}, -- {0x90434, 0x0}, -- {0x90435, 0x0}, -- {0x90436, 0x0}, -- {0x90437, 0x0}, -- {0x90438, 0x0}, -- {0x90439, 0x0}, -- {0x9043a, 0x0}, -- {0x9043b, 0x0}, -- {0x9043c, 0x0}, -- {0x9043d, 0x0}, -- {0x9043e, 0x0}, -- {0x9043f, 0x0}, -- {0x90440, 0x0}, -- {0x90441, 0x0}, -- {0x90442, 0x0}, -- {0x90443, 0x0}, -- {0x90444, 0x0}, -- {0x90445, 0x0}, -- {0x90446, 0x0}, -- {0x90447, 0x0}, -- {0x90448, 0x0}, -- {0x90449, 0x0}, -- {0x9044a, 0x0}, -- {0x9044b, 0x0}, -- {0x9044c, 0x0}, -- {0x9044d, 0x0}, -- {0x9044e, 0x0}, -- {0x9044f, 0x0}, -- {0x90450, 0x0}, -- {0x90451, 0x0}, -- {0x90452, 0x0}, -- {0x90453, 0x0}, -- {0x90454, 0x0}, -- {0x90455, 0x0}, -- {0x90456, 0x0}, -- {0x90457, 0x0}, -- {0x90458, 0x0}, -- {0x90459, 0x0}, -- {0x9045a, 0x0}, -- {0x9045b, 0x0}, -- {0x9045c, 0x0}, -- {0x9045d, 0x0}, -- {0x9045e, 0x0}, -- {0x9045f, 0x0}, -- {0x90460, 0x0}, -- {0x90461, 0x0}, -- {0x90462, 0x0}, -- {0x90463, 0x0}, -- {0x90464, 0x0}, -- {0x90465, 0x0}, -- {0x90466, 0x0}, -- {0x90467, 0x0}, -- {0x90468, 0x0}, -- {0x90469, 0x0}, -- {0x9046a, 0x0}, -- {0x9046b, 0x0}, -- {0x9046c, 0x0}, -- {0x9046d, 0x0}, -- {0x9046e, 0x0}, -- {0x9046f, 0x0}, -- {0x90470, 0x0}, -- {0x90471, 0x0}, -- {0x90472, 0x0}, -- {0x90473, 0x0}, -- {0x90474, 0x0}, -- {0x90475, 0x0}, -- {0x90476, 0x0}, -- {0x90477, 0x0}, -- {0x90478, 0x0}, -- {0x90479, 0x0}, -- {0x9047a, 0x0}, -- {0x9047b, 0x0}, -- {0x9047c, 0x0}, -- {0x9047d, 0x0}, -- {0x9047e, 0x0}, -- {0x9047f, 0x0}, -- {0x90480, 0x0}, -- {0x90481, 0x0}, -- {0x90482, 0x0}, -- {0x90483, 0x0}, -- {0x90484, 0x0}, -- {0x90485, 0x0}, -- {0x90486, 0x0}, -- {0x90487, 0x0}, -- {0x90488, 0x0}, -- {0x90489, 0x0}, -- {0x9048a, 0x0}, -- {0x9048b, 0x0}, -- {0x9048c, 0x0}, -- {0x9048d, 0x0}, -- {0x9048e, 0x0}, -- {0x9048f, 0x0}, -- {0x90490, 0x0}, -- {0x90491, 0x0}, -- {0x90492, 0x0}, -- {0x90493, 0x0}, -- {0x90494, 0x0}, -- {0x90495, 0x0}, -- {0x90496, 0x0}, -- {0x90497, 0x0}, -- {0x90498, 0x0}, -- {0x90499, 0x0}, -- {0x9049a, 0x0}, -- {0x9049b, 0x0}, -- {0x9049c, 0x0}, -- {0x9049d, 0x0}, -- {0x9049e, 0x0}, -- {0x9049f, 0x0}, -- {0x904a0, 0x0}, -- {0x904a1, 0x0}, -- {0x904a2, 0x0}, -- {0x904a3, 0x0}, -- {0x904a4, 0x0}, -- {0x904a5, 0x0}, -- {0x904a6, 0x0}, -- {0x904a7, 0x0}, -- {0x904a8, 0x0}, -- {0x904a9, 0x0}, -- {0x904aa, 0x0}, -- {0x904ab, 0x0}, -- {0x904ac, 0x0}, -- {0x904ad, 0x0}, -- {0x904ae, 0x0}, -- {0x904af, 0x0}, -- {0x904b0, 0x0}, -- {0x904b1, 0x0}, -- {0x904b2, 0x0}, -- {0x904b3, 0x0}, -- {0x904b4, 0x0}, -- {0x904b5, 0x0}, -- {0x904b6, 0x0}, -- {0x904b7, 0x0}, -- {0x904b8, 0x0}, -- {0x904b9, 0x0}, -- {0x904ba, 0x0}, -- {0x904bb, 0x0}, -- {0x904bc, 0x0}, -- {0x904bd, 0x0}, -- {0x904be, 0x0}, -- {0x904bf, 0x0}, -- {0x904c0, 0x0}, -- {0x904c1, 0x0}, -- {0x904c2, 0x0}, -- {0x904c3, 0x0}, -- {0x904c4, 0x0}, -- {0x904c5, 0x0}, -- {0x904c6, 0x0}, -- {0x904c7, 0x0}, -- {0x904c8, 0x0}, -- {0x904c9, 0x0}, -- {0x904ca, 0x0}, -- {0x904cb, 0x0}, -- {0x904cc, 0x0}, -- {0x904cd, 0x0}, -- {0x904ce, 0x0}, -- {0x904cf, 0x0}, -- {0x904d0, 0x0}, -- {0x904d1, 0x0}, -- {0x904d2, 0x0}, -- {0x904d3, 0x0}, -- {0x904d4, 0x0}, -- {0x904d5, 0x0}, -- {0x904d6, 0x0}, -- {0x904d7, 0x0}, -- {0x904d8, 0x0}, -- {0x904d9, 0x0}, -- {0x904da, 0x0}, -- {0x904db, 0x0}, -- {0x904dc, 0x0}, -- {0x904dd, 0x0}, -- {0x904de, 0x0}, -- {0x904df, 0x0}, -- {0x904e0, 0x0}, -- {0x904e1, 0x0}, -- {0x904e2, 0x0}, -- {0x904e3, 0x0}, -- {0x904e4, 0x0}, -- {0x904e5, 0x0}, -- {0x904e6, 0x0}, -- {0x904e7, 0x0}, -- {0x904e8, 0x0}, -- {0x904e9, 0x0}, -- {0x904ea, 0x0}, -- {0x904eb, 0x0}, -- {0x904ec, 0x0}, -- {0x904ed, 0x0}, -- {0x904ee, 0x0}, -- {0x904ef, 0x0}, -- {0x904f0, 0x0}, -- {0x904f1, 0x0}, -- {0x904f2, 0x0}, -- {0x904f3, 0x0}, -- {0x904f4, 0x0}, -- {0x904f5, 0x0}, -- {0x904f6, 0x0}, -- {0x904f7, 0x0}, -- {0x904f8, 0x0}, -- {0x904f9, 0x0}, -- {0x904fa, 0x0}, -- {0x904fb, 0x0}, -- {0x904fc, 0x0}, -- {0x904fd, 0x0}, -- {0x904fe, 0x0}, -- {0x904ff, 0x0}, -- {0x90500, 0x0}, -- {0x90501, 0x0}, -- {0x90502, 0x0}, -- {0x90503, 0x0}, -- {0x90504, 0x0}, -- {0x90505, 0x0}, -- {0x90506, 0x0}, -- {0x90507, 0x0}, -- {0x90508, 0x0}, -- {0x90509, 0x0}, -- {0x9050a, 0x0}, -- {0x9050b, 0x0}, -- {0x9050c, 0x0}, -- {0x9050d, 0x0}, -- {0x9050e, 0x0}, -- {0x9050f, 0x0}, -- {0x90510, 0x0}, -- {0x90511, 0x0}, -- {0x90512, 0x0}, -- {0x90513, 0x0}, -- {0x90514, 0x0}, -- {0x90515, 0x0}, -- {0x90516, 0x0}, -- {0x90517, 0x0}, -- {0x90518, 0x0}, -- {0x90519, 0x0}, -- {0x9051a, 0x0}, -- {0x9051b, 0x0}, -- {0x9051c, 0x0}, -- {0x9051d, 0x0}, -- {0x9051e, 0x0}, -- {0x9051f, 0x0}, -- {0x90520, 0x0}, -- {0x90521, 0x0}, -- {0x90522, 0x0}, -- {0x90523, 0x0}, -- {0x90524, 0x0}, -- {0x90525, 0x0}, -- {0x90526, 0x0}, -- {0x90527, 0x0}, -- {0x90528, 0x0}, -- {0x90529, 0x0}, -- {0x9052a, 0x0}, -- {0x9052b, 0x0}, -- {0x9052c, 0x0}, -- {0x9052d, 0x0}, -- {0x9052e, 0x0}, -- {0x9052f, 0x0}, -- {0x90530, 0x0}, -- {0x90531, 0x0}, -- {0x90532, 0x0}, -- {0x90533, 0x0}, -- {0x90534, 0x0}, -- {0x90535, 0x0}, -- {0x90536, 0x0}, -- {0x90537, 0x0}, -- {0x90538, 0x0}, -- {0x90539, 0x0}, -- {0x9053a, 0x0}, -- {0xd00e7, 0x0}, -- {0x9001c, 0x0}, -- {0x90020, 0x0}, -- {0x90024, 0x0}, -- {0x90025, 0x0}, -- {0x90026, 0x0}, -- {0x9002b, 0x0}, -- {0x90708, 0x0}, -- {0x90700, 0x0}, -- {0x90701, 0x0}, -- {0x90702, 0x0}, -- {0x90703, 0x0}, -- {0x90704, 0x0}, -- {0x90705, 0x0}, -- {0x90706, 0x0}, -- {0x90707, 0x0}, -- {0x2018a, 0x0}, -- {0x20124, 0x0}, -- {0x2018b, 0x0}, -- {0x20125, 0x0}, -- {0x2018c, 0x0}, -- {0x20126, 0x0}, -- {0x2018d, 0x0}, -- {0x20127, 0x0}, -- {0x2018e, 0x0}, -- {0x20128, 0x0}, -- {0x2018f, 0x0}, -- {0x20129, 0x0}, -- {0x20190, 0x0}, -- {0x2012a, 0x0}, -- {0x20191, 0x0}, -- {0x2012b, 0x0}, -- {0x20192, 0x0}, -- {0x2012c, 0x0}, -- {0x20193, 0x0}, -- {0x2012d, 0x0}, -- {0x20194, 0x0}, -- {0x2012e, 0x0}, -- {0x20195, 0x0}, -- {0x2012f, 0x0}, -- {0x20196, 0x0}, -- {0x20130, 0x0}, -- {0x20197, 0x0}, -- {0x20131, 0x0}, -- {0x20198, 0x0}, -- {0x20132, 0x0}, -- {0x20199, 0x0}, -- {0x20133, 0x0}, -- {0x2019a, 0x0}, -- {0x20134, 0x0}, -- {0x2019b, 0x0}, -- {0x20135, 0x0}, -- {0x2019c, 0x0}, -- {0x20136, 0x0}, -- {0x2019d, 0x0}, -- {0x20137, 0x0}, -- {0x2019e, 0x0}, -- {0x20138, 0x0}, -- {0x2019f, 0x0}, -- {0x20139, 0x0}, -- {0x201a0, 0x0}, -- {0x2013a, 0x0}, -- {0x201a1, 0x0}, -- {0x2013b, 0x0}, -- {0x201a2, 0x0}, -- {0x2013c, 0x0}, -- {0x201a3, 0x0}, -- {0x2013d, 0x0}, -- {0x201a4, 0x0}, -- {0x2013e, 0x0}, -- {0x201a5, 0x0}, -- {0x2013f, 0x0}, -- {0x201a6, 0x0}, -- {0x20140, 0x0}, -- {0x201a7, 0x0}, -- {0x20141, 0x0}, -- {0x201a8, 0x0}, -- {0x20142, 0x0}, -- {0x201a9, 0x0}, -- {0x20143, 0x0}, -- {0x201aa, 0x0}, -- {0x20144, 0x0}, -- {0x201ab, 0x0}, -- {0x20145, 0x0}, -- {0x201ac, 0x0}, -- {0x20146, 0x0}, -- {0x201ad, 0x0}, -- {0x20147, 0x0}, -- {0x201ae, 0x0}, -- {0x20148, 0x0}, -- {0x201af, 0x0}, -- {0x20149, 0x0}, -- {0x201b0, 0x0}, -- {0x2014a, 0x0}, -- {0x201b1, 0x0}, -- {0x2014b, 0x0}, -- {0x201b2, 0x0}, -- {0x2014c, 0x0}, -- {0x201b3, 0x0}, -- {0x2014d, 0x0}, -- {0x201b4, 0x0}, -- {0x2014e, 0x0}, -- {0x201b5, 0x0}, -- {0x2014f, 0x0}, -- {0x201b6, 0x0}, -- {0x20150, 0x0}, -- {0x201b7, 0x0}, -- {0x20151, 0x0}, -- {0x201b8, 0x0}, -- {0x20152, 0x0}, -- {0x201b9, 0x0}, -- {0x20153, 0x0}, -- {0x201ba, 0x0}, -- {0x20154, 0x0}, -- {0x201bb, 0x0}, -- {0x20155, 0x0}, -- {0x201bc, 0x0}, -- {0x20156, 0x0}, -- {0x201bd, 0x0}, -- {0x20157, 0x0}, -- {0x201be, 0x0}, -- {0x20158, 0x0}, -- {0x201bf, 0x0}, -- {0x20159, 0x0}, -- {0x201c0, 0x0}, -- {0x2015a, 0x0}, -- {0x201c1, 0x0}, -- {0x2015b, 0x0}, -- {0x201c2, 0x0}, -- {0x2015c, 0x0}, -- {0x201c3, 0x0}, -- {0x2015d, 0x0}, -- {0x201c4, 0x0}, -- {0x2015e, 0x0}, -- {0x201c5, 0x0}, -- {0x2015f, 0x0}, -- {0x201c6, 0x0}, -- {0x20160, 0x0}, -- {0x201c7, 0x0}, -- {0x20161, 0x0}, -- {0x201c8, 0x0}, -- {0x20162, 0x0}, -- {0x201c9, 0x0}, -- {0x20163, 0x0}, -- {0x201ca, 0x0}, -- {0x20164, 0x0}, -- {0x201cb, 0x0}, -- {0x20165, 0x0}, -- {0x201cc, 0x0}, -- {0x20166, 0x0}, -- {0x201cd, 0x0}, -- {0x20167, 0x0}, -- {0x201ce, 0x0}, -- {0x20168, 0x0}, -- {0x201cf, 0x0}, -- {0x20169, 0x0}, -- {0x201d0, 0x0}, -- {0x2016a, 0x0}, -- {0x201d1, 0x0}, -- {0x2016b, 0x0}, -- {0x201d2, 0x0}, -- {0x2016c, 0x0}, -- {0x201d3, 0x0}, -- {0x2016d, 0x0}, -- {0x201d4, 0x0}, -- {0x2016e, 0x0}, -- {0x201d5, 0x0}, -- {0x2016f, 0x0}, -- {0x201d6, 0x0}, -- {0x20170, 0x0}, -- {0x201d7, 0x0}, -- {0x20171, 0x0}, -- {0x201d8, 0x0}, -- {0x20172, 0x0}, -- {0x201d9, 0x0}, -- {0x20173, 0x0}, -- {0x201da, 0x0}, -- {0xc0001, 0x0}, -- {0xc0002, 0x0}, -- {0xc0003, 0x0}, -- {0xc0000, 0x0}, -- {0xc0006, 0x0}, -- {0xc0007, 0x0}, -- {0x9070c, 0x0}, -- {0x9070d, 0x0}, -- {0x9070e, 0x0}, -- {0x9070f, 0x0}, -- {0x90710, 0x0}, -- {0x90711, 0x0}, -- {0x90713, 0x0}, -- {0x90714, 0x0}, -- {0x90715, 0x0}, -- {0x90c10, 0x0}, -- {0x90c12, 0x0}, -- {0x90712, 0x0}, -- {0x90c11, 0x0}, -- {0x90716, 0x0}, -- {0x90717, 0x0}, -- {0x90718, 0x0}, -- {0x90719, 0x0}, -- {0x9071a, 0x0}, -- {0x9071b, 0x0}, -- {0x90904, 0x0}, -- {0x90986, 0x0}, -- {0x90920, 0x0}, -- {0x90921, 0x0}, -- {0x90922, 0x0}, -- {0x90923, 0x0}, -- {0x90924, 0x0}, -- {0x90925, 0x0}, -- {0x90926, 0x0}, -- {0x90927, 0x0}, -- {0x90930, 0x0}, -- {0x90931, 0x0}, -- {0x90932, 0x0}, -- {0x90933, 0x0}, -- {0x9090a, 0x0}, -- {0x9090c, 0x0}, -- {0x9090d, 0x0}, -- {0x200f0, 0x0}, -- {0x200f1, 0x0}, -- {0x200f2, 0x0}, -- {0x100b9, 0x0}, -- {0x100b1, 0x0}, -- {0x100ba, 0x0}, -- {0x100a2, 0x0}, -- {0x100b5, 0x0}, -- {0x110b9, 0x0}, -- {0x110b1, 0x0}, -- {0x110ba, 0x0}, -- {0x110a2, 0x0}, -- {0x110b5, 0x0}, -- {0x120b9, 0x0}, -- {0x120b1, 0x0}, -- {0x120ba, 0x0}, -- {0x120a2, 0x0}, -- {0x120b5, 0x0}, -- {0x130b9, 0x0}, -- {0x130b1, 0x0}, -- {0x130ba, 0x0}, -- {0x130a2, 0x0}, -- {0x130b5, 0x0}, -- {0x70024, 0x0}, -- {0x70025, 0x0}, -- {0x70026, 0x0}, -- {0x70027, 0x0}, -- {0x70028, 0x0}, -- {0x70029, 0x0}, -- {0x7002a, 0x0}, -- {0x7002b, 0x0}, -- {0x70124, 0x0}, -- {0x70125, 0x0}, -- {0x70126, 0x0}, -- {0x70127, 0x0}, -- {0x70128, 0x0}, -- {0x70129, 0x0}, -- {0x7012a, 0x0}, -- {0x7012b, 0x0}, -- {0x70224, 0x0}, -- {0x70225, 0x0}, -- {0x70226, 0x0}, -- {0x70227, 0x0}, -- {0x70228, 0x0}, -- {0x70229, 0x0}, -- {0x7022a, 0x0}, -- {0x7022b, 0x0}, -- {0x70324, 0x0}, -- {0x70325, 0x0}, -- {0x70326, 0x0}, -- {0x70327, 0x0}, -- {0x70328, 0x0}, -- {0x70329, 0x0}, -- {0x7032a, 0x0}, -- {0x7032b, 0x0}, -- {0x70424, 0x0}, -- {0x70425, 0x0}, -- {0x70426, 0x0}, -- {0x70427, 0x0}, -- {0x70428, 0x0}, -- {0x70429, 0x0}, -- {0x7042a, 0x0}, -- {0x7042b, 0x0}, -- {0x70524, 0x0}, -- {0x70525, 0x0}, -- {0x70526, 0x0}, -- {0x70527, 0x0}, -- {0x70528, 0x0}, -- {0x70529, 0x0}, -- {0x7052a, 0x0}, -- {0x7052b, 0x0}, -- {0x70624, 0x0}, -- {0x70625, 0x0}, -- {0x70626, 0x0}, -- {0x70627, 0x0}, -- {0x70628, 0x0}, -- {0x70629, 0x0}, -- {0x7062a, 0x0}, -- {0x7062b, 0x0}, -- {0x70724, 0x0}, -- {0x70725, 0x0}, -- {0x70726, 0x0}, -- {0x70727, 0x0}, -- {0x70728, 0x0}, -- {0x70729, 0x0}, -- {0x7072a, 0x0}, -- {0x7072b, 0x0}, -- {0x70824, 0x0}, -- {0x70825, 0x0}, -- {0x70826, 0x0}, -- {0x70827, 0x0}, -- {0x70828, 0x0}, -- {0x70829, 0x0}, -- {0x7082a, 0x0}, -- {0x7082b, 0x0}, -- {0x70065, 0x0}, -- {0x2007e, 0x0}, -- {0x200ef, 0x0}, -- {0x90910, 0x0}, -- {0x20310, 0x0}, -- {0x20311, 0x0}, -- {0x20049, 0x0}, -- {0x100be, 0x0}, -- {0x100b0, 0x0}, -- {0x10080, 0x0}, -- {0x10081, 0x0}, -- {0x10082, 0x0}, -- {0x10083, 0x0}, -- {0x10084, 0x0}, -- {0x10085, 0x0}, -- {0x10086, 0x0}, -- {0x10087, 0x0}, -- {0x10056, 0x0}, -- {0x100d9, 0x0}, -- {0x110be, 0x0}, -- {0x110b0, 0x0}, -- {0x11080, 0x0}, -- {0x11081, 0x0}, -- {0x11082, 0x0}, -- {0x11083, 0x0}, -- {0x11084, 0x0}, -- {0x11085, 0x0}, -- {0x11086, 0x0}, -- {0x11087, 0x0}, -- {0x11056, 0x0}, -- {0x110d9, 0x0}, -- {0x120be, 0x0}, -- {0x120b0, 0x0}, -- {0x12080, 0x0}, -- {0x12081, 0x0}, -- {0x12082, 0x0}, -- {0x12083, 0x0}, -- {0x12084, 0x0}, -- {0x12085, 0x0}, -- {0x12086, 0x0}, -- {0x12087, 0x0}, -- {0x12056, 0x0}, -- {0x120d9, 0x0}, -- {0x130be, 0x0}, -- {0x130b0, 0x0}, -- {0x13080, 0x0}, -- {0x13081, 0x0}, -- {0x13082, 0x0}, -- {0x13083, 0x0}, -- {0x13084, 0x0}, -- {0x13085, 0x0}, -- {0x13086, 0x0}, -- {0x13087, 0x0}, -- {0x13056, 0x0}, -- {0x130d9, 0x0}, -- {0x30090, 0x0}, -- {0x30091, 0x0}, -- {0x30092, 0x0}, -- {0x30093, 0x0}, -- {0x30094, 0x0}, -- {0x30095, 0x0}, -- {0x30096, 0x0}, -- {0x31090, 0x0}, -- {0x31091, 0x0}, -- {0x31092, 0x0}, -- {0x31093, 0x0}, -- {0x31094, 0x0}, -- {0x31095, 0x0}, -- {0x31096, 0x0}, -- {0x30002, 0x0}, -- {0x30007, 0x0}, -- {0x30008, 0x0}, -- {0x30005, 0x0}, -- {0x30006, 0x0}, -- {0x30001, 0x0}, -- {0x30101, 0x0}, -- {0x30201, 0x0}, -- {0x30301, 0x0}, -- {0x30401, 0x0}, -- {0x30501, 0x0}, -- {0x30601, 0x0}, -- {0x30701, 0x0}, -- {0x30801, 0x0}, -- {0x30901, 0x0}, -- {0x31002, 0x0}, -- {0x31007, 0x0}, -- {0x31008, 0x0}, -- {0x31005, 0x0}, -- {0x31006, 0x0}, -- {0x31001, 0x0}, -- {0x31101, 0x0}, -- {0x31201, 0x0}, -- {0x31301, 0x0}, -- {0x31401, 0x0}, -- {0x31501, 0x0}, -- {0x31601, 0x0}, -- {0x31701, 0x0}, -- {0x31801, 0x0}, -- {0x31901, 0x0}, -- {0x10000, 0x0}, -- {0x100ad, 0x0}, -- {0x100af, 0x0}, -- {0x10020, 0x0}, -- {0x10021, 0x0}, -- {0x10028, 0x0}, -- {0x10029, 0x0}, -- {0x10066, 0x0}, -- {0x10067, 0x0}, -- {0x1005a, 0x0}, -- {0x1005b, 0x0}, -- {0x1005c, 0x0}, -- {0x1005d, 0x0}, -- {0x1002a, 0x0}, -- {0x1002b, 0x0}, -- {0x10024, 0x0}, -- {0x10025, 0x0}, -- {0x10026, 0x0}, -- {0x10027, 0x0}, -- {0x10010, 0x0}, -- {0x10011, 0x0}, -- {0x10012, 0x0}, -- {0x10013, 0x0}, -- {0x10068, 0x0}, -- {0x10069, 0x0}, -- {0x1006a, 0x0}, -- {0x1006b, 0x0}, -- {0x1006c, 0x0}, -- {0x1006d, 0x0}, -- {0x1006e, 0x0}, -- {0x1006f, 0x0}, -- {0x1001c, 0x0}, -- {0x1001d, 0x0}, -- {0x1001e, 0x0}, -- {0x1001f, 0x0}, -- {0x10124, 0x0}, -- {0x10125, 0x0}, -- {0x10126, 0x0}, -- {0x10127, 0x0}, -- {0x10110, 0x0}, -- {0x10111, 0x0}, -- {0x10112, 0x0}, -- {0x10113, 0x0}, -- {0x10168, 0x0}, -- {0x10169, 0x0}, -- {0x1016a, 0x0}, -- {0x1016b, 0x0}, -- {0x1016c, 0x0}, -- {0x1016d, 0x0}, -- {0x1016e, 0x0}, -- {0x1016f, 0x0}, -- {0x1011c, 0x0}, -- {0x1011d, 0x0}, -- {0x1011e, 0x0}, -- {0x1011f, 0x0}, -- {0x10224, 0x0}, -- {0x10225, 0x0}, -- {0x10226, 0x0}, -- {0x10227, 0x0}, -- {0x10210, 0x0}, -- {0x10211, 0x0}, -- {0x10212, 0x0}, -- {0x10213, 0x0}, -- {0x10268, 0x0}, -- {0x10269, 0x0}, -- {0x1026a, 0x0}, -- {0x1026b, 0x0}, -- {0x1026c, 0x0}, -- {0x1026d, 0x0}, -- {0x1026e, 0x0}, -- {0x1026f, 0x0}, -- {0x1021c, 0x0}, -- {0x1021d, 0x0}, -- {0x1021e, 0x0}, -- {0x1021f, 0x0}, -- {0x10324, 0x0}, -- {0x10325, 0x0}, -- {0x10326, 0x0}, -- {0x10327, 0x0}, -- {0x10310, 0x0}, -- {0x10311, 0x0}, -- {0x10312, 0x0}, -- {0x10313, 0x0}, -- {0x10368, 0x0}, -- {0x10369, 0x0}, -- {0x1036a, 0x0}, -- {0x1036b, 0x0}, -- {0x1036c, 0x0}, -- {0x1036d, 0x0}, -- {0x1036e, 0x0}, -- {0x1036f, 0x0}, -- {0x1031c, 0x0}, -- {0x1031d, 0x0}, -- {0x1031e, 0x0}, -- {0x1031f, 0x0}, -- {0x10424, 0x0}, -- {0x10425, 0x0}, -- {0x10426, 0x0}, -- {0x10427, 0x0}, -- {0x10410, 0x0}, -- {0x10411, 0x0}, -- {0x10412, 0x0}, -- {0x10413, 0x0}, -- {0x10468, 0x0}, -- {0x10469, 0x0}, -- {0x1046a, 0x0}, -- {0x1046b, 0x0}, -- {0x1046c, 0x0}, -- {0x1046d, 0x0}, -- {0x1046e, 0x0}, -- {0x1046f, 0x0}, -- {0x1041c, 0x0}, -- {0x1041d, 0x0}, -- {0x1041e, 0x0}, -- {0x1041f, 0x0}, -- {0x10524, 0x0}, -- {0x10525, 0x0}, -- {0x10526, 0x0}, -- {0x10527, 0x0}, -- {0x10510, 0x0}, -- {0x10511, 0x0}, -- {0x10512, 0x0}, -- {0x10513, 0x0}, -- {0x10568, 0x0}, -- {0x10569, 0x0}, -- {0x1056a, 0x0}, -- {0x1056b, 0x0}, -- {0x1056c, 0x0}, -- {0x1056d, 0x0}, -- {0x1056e, 0x0}, -- {0x1056f, 0x0}, -- {0x1051c, 0x0}, -- {0x1051d, 0x0}, -- {0x1051e, 0x0}, -- {0x1051f, 0x0}, -- {0x10624, 0x0}, -- {0x10625, 0x0}, -- {0x10626, 0x0}, -- {0x10627, 0x0}, -- {0x10610, 0x0}, -- {0x10611, 0x0}, -- {0x10612, 0x0}, -- {0x10613, 0x0}, -- {0x10668, 0x0}, -- {0x10669, 0x0}, -- {0x1066a, 0x0}, -- {0x1066b, 0x0}, -- {0x1066c, 0x0}, -- {0x1066d, 0x0}, -- {0x1066e, 0x0}, -- {0x1066f, 0x0}, -- {0x1061c, 0x0}, -- {0x1061d, 0x0}, -- {0x1061e, 0x0}, -- {0x1061f, 0x0}, -- {0x10724, 0x0}, -- {0x10725, 0x0}, -- {0x10726, 0x0}, -- {0x10727, 0x0}, -- {0x10710, 0x0}, -- {0x10711, 0x0}, -- {0x10712, 0x0}, -- {0x10713, 0x0}, -- {0x10768, 0x0}, -- {0x10769, 0x0}, -- {0x1076a, 0x0}, -- {0x1076b, 0x0}, -- {0x1076c, 0x0}, -- {0x1076d, 0x0}, -- {0x1076e, 0x0}, -- {0x1076f, 0x0}, -- {0x1071c, 0x0}, -- {0x1071d, 0x0}, -- {0x1071e, 0x0}, -- {0x1071f, 0x0}, -- {0x10824, 0x0}, -- {0x10825, 0x0}, -- {0x10826, 0x0}, -- {0x10827, 0x0}, -- {0x10810, 0x0}, -- {0x10811, 0x0}, -- {0x10812, 0x0}, -- {0x10813, 0x0}, -- {0x10868, 0x0}, -- {0x10869, 0x0}, -- {0x1086a, 0x0}, -- {0x1086b, 0x0}, -- {0x1086c, 0x0}, -- {0x1086d, 0x0}, -- {0x1086e, 0x0}, -- {0x1086f, 0x0}, -- {0x1081c, 0x0}, -- {0x1081d, 0x0}, -- {0x1081e, 0x0}, -- {0x1081f, 0x0}, -- {0x1000c, 0x0}, -- {0x1000d, 0x0}, -- {0x10015, 0x0}, -- {0x10016, 0x0}, -- {0x10019, 0x0}, -- {0x1001b, 0x0}, -- {0x10022, 0x0}, -- {0x10023, 0x0}, -- {0x100d0, 0x0}, -- {0x100d1, 0x0}, -- {0x100d2, 0x0}, -- {0x100d3, 0x0}, -- {0x100d4, 0x0}, -- {0x11000, 0x0}, -- {0x110ad, 0x0}, -- {0x110af, 0x0}, -- {0x11020, 0x0}, -- {0x11021, 0x0}, -- {0x11028, 0x0}, -- {0x11029, 0x0}, -- {0x11066, 0x0}, -- {0x11067, 0x0}, -- {0x1105a, 0x0}, -- {0x1105b, 0x0}, -- {0x1105c, 0x0}, -- {0x1105d, 0x0}, -- {0x1102a, 0x0}, -- {0x1102b, 0x0}, -- {0x11024, 0x0}, -- {0x11025, 0x0}, -- {0x11026, 0x0}, -- {0x11027, 0x0}, -- {0x11010, 0x0}, -- {0x11011, 0x0}, -- {0x11012, 0x0}, -- {0x11013, 0x0}, -- {0x11068, 0x0}, -- {0x11069, 0x0}, -- {0x1106a, 0x0}, -- {0x1106b, 0x0}, -- {0x1106c, 0x0}, -- {0x1106d, 0x0}, -- {0x1106e, 0x0}, -- {0x1106f, 0x0}, -- {0x1101c, 0x0}, -- {0x1101d, 0x0}, -- {0x1101e, 0x0}, -- {0x1101f, 0x0}, -- {0x11124, 0x0}, -- {0x11125, 0x0}, -- {0x11126, 0x0}, -- {0x11127, 0x0}, -- {0x11110, 0x0}, -- {0x11111, 0x0}, -- {0x11112, 0x0}, -- {0x11113, 0x0}, -- {0x11168, 0x0}, -- {0x11169, 0x0}, -- {0x1116a, 0x0}, -- {0x1116b, 0x0}, -- {0x1116c, 0x0}, -- {0x1116d, 0x0}, -- {0x1116e, 0x0}, -- {0x1116f, 0x0}, -- {0x1111c, 0x0}, -- {0x1111d, 0x0}, -- {0x1111e, 0x0}, -- {0x1111f, 0x0}, -- {0x11224, 0x0}, -- {0x11225, 0x0}, -- {0x11226, 0x0}, -- {0x11227, 0x0}, -- {0x11210, 0x0}, -- {0x11211, 0x0}, -- {0x11212, 0x0}, -- {0x11213, 0x0}, -- {0x11268, 0x0}, -- {0x11269, 0x0}, -- {0x1126a, 0x0}, -- {0x1126b, 0x0}, -- {0x1126c, 0x0}, -- {0x1126d, 0x0}, -- {0x1126e, 0x0}, -- {0x1126f, 0x0}, -- {0x1121c, 0x0}, -- {0x1121d, 0x0}, -- {0x1121e, 0x0}, -- {0x1121f, 0x0}, -- {0x11324, 0x0}, -- {0x11325, 0x0}, -- {0x11326, 0x0}, -- {0x11327, 0x0}, -- {0x11310, 0x0}, -- {0x11311, 0x0}, -- {0x11312, 0x0}, -- {0x11313, 0x0}, -- {0x11368, 0x0}, -- {0x11369, 0x0}, -- {0x1136a, 0x0}, -- {0x1136b, 0x0}, -- {0x1136c, 0x0}, -- {0x1136d, 0x0}, -- {0x1136e, 0x0}, -- {0x1136f, 0x0}, -- {0x1131c, 0x0}, -- {0x1131d, 0x0}, -- {0x1131e, 0x0}, -- {0x1131f, 0x0}, -- {0x11424, 0x0}, -- {0x11425, 0x0}, -- {0x11426, 0x0}, -- {0x11427, 0x0}, -- {0x11410, 0x0}, -- {0x11411, 0x0}, -- {0x11412, 0x0}, -- {0x11413, 0x0}, -- {0x11468, 0x0}, -- {0x11469, 0x0}, -- {0x1146a, 0x0}, -- {0x1146b, 0x0}, -- {0x1146c, 0x0}, -- {0x1146d, 0x0}, -- {0x1146e, 0x0}, -- {0x1146f, 0x0}, -- {0x1141c, 0x0}, -- {0x1141d, 0x0}, -- {0x1141e, 0x0}, -- {0x1141f, 0x0}, -- {0x11524, 0x0}, -- {0x11525, 0x0}, -- {0x11526, 0x0}, -- {0x11527, 0x0}, -- {0x11510, 0x0}, -- {0x11511, 0x0}, -- {0x11512, 0x0}, -- {0x11513, 0x0}, -- {0x11568, 0x0}, -- {0x11569, 0x0}, -- {0x1156a, 0x0}, -- {0x1156b, 0x0}, -- {0x1156c, 0x0}, -- {0x1156d, 0x0}, -- {0x1156e, 0x0}, -- {0x1156f, 0x0}, -- {0x1151c, 0x0}, -- {0x1151d, 0x0}, -- {0x1151e, 0x0}, -- {0x1151f, 0x0}, -- {0x11624, 0x0}, -- {0x11625, 0x0}, -- {0x11626, 0x0}, -- {0x11627, 0x0}, -- {0x11610, 0x0}, -- {0x11611, 0x0}, -- {0x11612, 0x0}, -- {0x11613, 0x0}, -- {0x11668, 0x0}, -- {0x11669, 0x0}, -- {0x1166a, 0x0}, -- {0x1166b, 0x0}, -- {0x1166c, 0x0}, -- {0x1166d, 0x0}, -- {0x1166e, 0x0}, -- {0x1166f, 0x0}, -- {0x1161c, 0x0}, -- {0x1161d, 0x0}, -- {0x1161e, 0x0}, -- {0x1161f, 0x0}, -- {0x11724, 0x0}, -- {0x11725, 0x0}, -- {0x11726, 0x0}, -- {0x11727, 0x0}, -- {0x11710, 0x0}, -- {0x11711, 0x0}, -- {0x11712, 0x0}, -- {0x11713, 0x0}, -- {0x11768, 0x0}, -- {0x11769, 0x0}, -- {0x1176a, 0x0}, -- {0x1176b, 0x0}, -- {0x1176c, 0x0}, -- {0x1176d, 0x0}, -- {0x1176e, 0x0}, -- {0x1176f, 0x0}, -- {0x1171c, 0x0}, -- {0x1171d, 0x0}, -- {0x1171e, 0x0}, -- {0x1171f, 0x0}, -- {0x11824, 0x0}, -- {0x11825, 0x0}, -- {0x11826, 0x0}, -- {0x11827, 0x0}, -- {0x11810, 0x0}, -- {0x11811, 0x0}, -- {0x11812, 0x0}, -- {0x11813, 0x0}, -- {0x11868, 0x0}, -- {0x11869, 0x0}, -- {0x1186a, 0x0}, -- {0x1186b, 0x0}, -- {0x1186c, 0x0}, -- {0x1186d, 0x0}, -- {0x1186e, 0x0}, -- {0x1186f, 0x0}, -- {0x1181c, 0x0}, -- {0x1181d, 0x0}, -- {0x1181e, 0x0}, -- {0x1181f, 0x0}, -- {0x1100c, 0x0}, -- {0x1100d, 0x0}, -- {0x11015, 0x0}, -- {0x11016, 0x0}, -- {0x11019, 0x0}, -- {0x1101b, 0x0}, -- {0x11022, 0x0}, -- {0x11023, 0x0}, -- {0x110d0, 0x0}, -- {0x110d1, 0x0}, -- {0x110d2, 0x0}, -- {0x110d3, 0x0}, -- {0x110d4, 0x0}, -- {0x12000, 0x0}, -- {0x120ad, 0x0}, -- {0x120af, 0x0}, -- {0x12020, 0x0}, -- {0x12021, 0x0}, -- {0x12028, 0x0}, -- {0x12029, 0x0}, -- {0x12066, 0x0}, -- {0x12067, 0x0}, -- {0x1205a, 0x0}, -- {0x1205b, 0x0}, -- {0x1205c, 0x0}, -- {0x1205d, 0x0}, -- {0x1202a, 0x0}, -- {0x1202b, 0x0}, -- {0x12024, 0x0}, -- {0x12025, 0x0}, -- {0x12026, 0x0}, -- {0x12027, 0x0}, -- {0x12010, 0x0}, -- {0x12011, 0x0}, -- {0x12012, 0x0}, -- {0x12013, 0x0}, -- {0x12068, 0x0}, -- {0x12069, 0x0}, -- {0x1206a, 0x0}, -- {0x1206b, 0x0}, -- {0x1206c, 0x0}, -- {0x1206d, 0x0}, -- {0x1206e, 0x0}, -- {0x1206f, 0x0}, -- {0x1201c, 0x0}, -- {0x1201d, 0x0}, -- {0x1201e, 0x0}, -- {0x1201f, 0x0}, -- {0x12124, 0x0}, -- {0x12125, 0x0}, -- {0x12126, 0x0}, -- {0x12127, 0x0}, -- {0x12110, 0x0}, -- {0x12111, 0x0}, -- {0x12112, 0x0}, -- {0x12113, 0x0}, -- {0x12168, 0x0}, -- {0x12169, 0x0}, -- {0x1216a, 0x0}, -- {0x1216b, 0x0}, -- {0x1216c, 0x0}, -- {0x1216d, 0x0}, -- {0x1216e, 0x0}, -- {0x1216f, 0x0}, -- {0x1211c, 0x0}, -- {0x1211d, 0x0}, -- {0x1211e, 0x0}, -- {0x1211f, 0x0}, -- {0x12224, 0x0}, -- {0x12225, 0x0}, -- {0x12226, 0x0}, -- {0x12227, 0x0}, -- {0x12210, 0x0}, -- {0x12211, 0x0}, -- {0x12212, 0x0}, -- {0x12213, 0x0}, -- {0x12268, 0x0}, -- {0x12269, 0x0}, -- {0x1226a, 0x0}, -- {0x1226b, 0x0}, -- {0x1226c, 0x0}, -- {0x1226d, 0x0}, -- {0x1226e, 0x0}, -- {0x1226f, 0x0}, -- {0x1221c, 0x0}, -- {0x1221d, 0x0}, -- {0x1221e, 0x0}, -- {0x1221f, 0x0}, -- {0x12324, 0x0}, -- {0x12325, 0x0}, -- {0x12326, 0x0}, -- {0x12327, 0x0}, -- {0x12310, 0x0}, -- {0x12311, 0x0}, -- {0x12312, 0x0}, -- {0x12313, 0x0}, -- {0x12368, 0x0}, -- {0x12369, 0x0}, -- {0x1236a, 0x0}, -- {0x1236b, 0x0}, -- {0x1236c, 0x0}, -- {0x1236d, 0x0}, -- {0x1236e, 0x0}, -- {0x1236f, 0x0}, -- {0x1231c, 0x0}, -- {0x1231d, 0x0}, -- {0x1231e, 0x0}, -- {0x1231f, 0x0}, -- {0x12424, 0x0}, -- {0x12425, 0x0}, -- {0x12426, 0x0}, -- {0x12427, 0x0}, -- {0x12410, 0x0}, -- {0x12411, 0x0}, -- {0x12412, 0x0}, -- {0x12413, 0x0}, -- {0x12468, 0x0}, -- {0x12469, 0x0}, -- {0x1246a, 0x0}, -- {0x1246b, 0x0}, -- {0x1246c, 0x0}, -- {0x1246d, 0x0}, -- {0x1246e, 0x0}, -- {0x1246f, 0x0}, -- {0x1241c, 0x0}, -- {0x1241d, 0x0}, -- {0x1241e, 0x0}, -- {0x1241f, 0x0}, -- {0x12524, 0x0}, -- {0x12525, 0x0}, -- {0x12526, 0x0}, -- {0x12527, 0x0}, -- {0x12510, 0x0}, -- {0x12511, 0x0}, -- {0x12512, 0x0}, -- {0x12513, 0x0}, -- {0x12568, 0x0}, -- {0x12569, 0x0}, -- {0x1256a, 0x0}, -- {0x1256b, 0x0}, -- {0x1256c, 0x0}, -- {0x1256d, 0x0}, -- {0x1256e, 0x0}, -- {0x1256f, 0x0}, -- {0x1251c, 0x0}, -- {0x1251d, 0x0}, -- {0x1251e, 0x0}, -- {0x1251f, 0x0}, -- {0x12624, 0x0}, -- {0x12625, 0x0}, -- {0x12626, 0x0}, -- {0x12627, 0x0}, -- {0x12610, 0x0}, -- {0x12611, 0x0}, -- {0x12612, 0x0}, -- {0x12613, 0x0}, -- {0x12668, 0x0}, -- {0x12669, 0x0}, -- {0x1266a, 0x0}, -- {0x1266b, 0x0}, -- {0x1266c, 0x0}, -- {0x1266d, 0x0}, -- {0x1266e, 0x0}, -- {0x1266f, 0x0}, -- {0x1261c, 0x0}, -- {0x1261d, 0x0}, -- {0x1261e, 0x0}, -- {0x1261f, 0x0}, -- {0x12724, 0x0}, -- {0x12725, 0x0}, -- {0x12726, 0x0}, -- {0x12727, 0x0}, -- {0x12710, 0x0}, -- {0x12711, 0x0}, -- {0x12712, 0x0}, -- {0x12713, 0x0}, -- {0x12768, 0x0}, -- {0x12769, 0x0}, -- {0x1276a, 0x0}, -- {0x1276b, 0x0}, -- {0x1276c, 0x0}, -- {0x1276d, 0x0}, -- {0x1276e, 0x0}, -- {0x1276f, 0x0}, -- {0x1271c, 0x0}, -- {0x1271d, 0x0}, -- {0x1271e, 0x0}, -- {0x1271f, 0x0}, -- {0x12824, 0x0}, -- {0x12825, 0x0}, -- {0x12826, 0x0}, -- {0x12827, 0x0}, -- {0x12810, 0x0}, -- {0x12811, 0x0}, -- {0x12812, 0x0}, -- {0x12813, 0x0}, -- {0x12868, 0x0}, -- {0x12869, 0x0}, -- {0x1286a, 0x0}, -- {0x1286b, 0x0}, -- {0x1286c, 0x0}, -- {0x1286d, 0x0}, -- {0x1286e, 0x0}, -- {0x1286f, 0x0}, -- {0x1281c, 0x0}, -- {0x1281d, 0x0}, -- {0x1281e, 0x0}, -- {0x1281f, 0x0}, -- {0x1200c, 0x0}, -- {0x1200d, 0x0}, -- {0x12015, 0x0}, -- {0x12016, 0x0}, -- {0x12019, 0x0}, -- {0x1201b, 0x0}, -- {0x12022, 0x0}, -- {0x12023, 0x0}, -- {0x120d0, 0x0}, -- {0x120d1, 0x0}, -- {0x120d2, 0x0}, -- {0x120d3, 0x0}, -- {0x120d4, 0x0}, -- {0x13000, 0x0}, -- {0x130ad, 0x0}, -- {0x130af, 0x0}, -- {0x13020, 0x0}, -- {0x13021, 0x0}, -- {0x13028, 0x0}, -- {0x13029, 0x0}, -- {0x13066, 0x0}, -- {0x13067, 0x0}, -- {0x1305a, 0x0}, -- {0x1305b, 0x0}, -- {0x1305c, 0x0}, -- {0x1305d, 0x0}, -- {0x1302a, 0x0}, -- {0x1302b, 0x0}, -- {0x13024, 0x0}, -- {0x13025, 0x0}, -- {0x13026, 0x0}, -- {0x13027, 0x0}, -- {0x13010, 0x0}, -- {0x13011, 0x0}, -- {0x13012, 0x0}, -- {0x13013, 0x0}, -- {0x13068, 0x0}, -- {0x13069, 0x0}, -- {0x1306a, 0x0}, -- {0x1306b, 0x0}, -- {0x1306c, 0x0}, -- {0x1306d, 0x0}, -- {0x1306e, 0x0}, -- {0x1306f, 0x0}, -- {0x1301c, 0x0}, -- {0x1301d, 0x0}, -- {0x1301e, 0x0}, -- {0x1301f, 0x0}, -- {0x13124, 0x0}, -- {0x13125, 0x0}, -- {0x13126, 0x0}, -- {0x13127, 0x0}, -- {0x13110, 0x0}, -- {0x13111, 0x0}, -- {0x13112, 0x0}, -- {0x13113, 0x0}, -- {0x13168, 0x0}, -- {0x13169, 0x0}, -- {0x1316a, 0x0}, -- {0x1316b, 0x0}, -- {0x1316c, 0x0}, -- {0x1316d, 0x0}, -- {0x1316e, 0x0}, -- {0x1316f, 0x0}, -- {0x1311c, 0x0}, -- {0x1311d, 0x0}, -- {0x1311e, 0x0}, -- {0x1311f, 0x0}, -- {0x13224, 0x0}, -- {0x13225, 0x0}, -- {0x13226, 0x0}, -- {0x13227, 0x0}, -- {0x13210, 0x0}, -- {0x13211, 0x0}, -- {0x13212, 0x0}, -- {0x13213, 0x0}, -- {0x13268, 0x0}, -- {0x13269, 0x0}, -- {0x1326a, 0x0}, -- {0x1326b, 0x0}, -- {0x1326c, 0x0}, -- {0x1326d, 0x0}, -- {0x1326e, 0x0}, -- {0x1326f, 0x0}, -- {0x1321c, 0x0}, -- {0x1321d, 0x0}, -- {0x1321e, 0x0}, -- {0x1321f, 0x0}, -- {0x13324, 0x0}, -- {0x13325, 0x0}, -- {0x13326, 0x0}, -- {0x13327, 0x0}, -- {0x13310, 0x0}, -- {0x13311, 0x0}, -- {0x13312, 0x0}, -- {0x13313, 0x0}, -- {0x13368, 0x0}, -- {0x13369, 0x0}, -- {0x1336a, 0x0}, -- {0x1336b, 0x0}, -- {0x1336c, 0x0}, -- {0x1336d, 0x0}, -- {0x1336e, 0x0}, -- {0x1336f, 0x0}, -- {0x1331c, 0x0}, -- {0x1331d, 0x0}, -- {0x1331e, 0x0}, -- {0x1331f, 0x0}, -- {0x13424, 0x0}, -- {0x13425, 0x0}, -- {0x13426, 0x0}, -- {0x13427, 0x0}, -- {0x13410, 0x0}, -- {0x13411, 0x0}, -- {0x13412, 0x0}, -- {0x13413, 0x0}, -- {0x13468, 0x0}, -- {0x13469, 0x0}, -- {0x1346a, 0x0}, -- {0x1346b, 0x0}, -- {0x1346c, 0x0}, -- {0x1346d, 0x0}, -- {0x1346e, 0x0}, -- {0x1346f, 0x0}, -- {0x1341c, 0x0}, -- {0x1341d, 0x0}, -- {0x1341e, 0x0}, -- {0x1341f, 0x0}, -- {0x13524, 0x0}, -- {0x13525, 0x0}, -- {0x13526, 0x0}, -- {0x13527, 0x0}, -- {0x13510, 0x0}, -- {0x13511, 0x0}, -- {0x13512, 0x0}, -- {0x13513, 0x0}, -- {0x13568, 0x0}, -- {0x13569, 0x0}, -- {0x1356a, 0x0}, -- {0x1356b, 0x0}, -- {0x1356c, 0x0}, -- {0x1356d, 0x0}, -- {0x1356e, 0x0}, -- {0x1356f, 0x0}, -- {0x1351c, 0x0}, -- {0x1351d, 0x0}, -- {0x1351e, 0x0}, -- {0x1351f, 0x0}, -- {0x13624, 0x0}, -- {0x13625, 0x0}, -- {0x13626, 0x0}, -- {0x13627, 0x0}, -- {0x13610, 0x0}, -- {0x13611, 0x0}, -- {0x13612, 0x0}, -- {0x13613, 0x0}, -- {0x13668, 0x0}, -- {0x13669, 0x0}, -- {0x1366a, 0x0}, -- {0x1366b, 0x0}, -- {0x1366c, 0x0}, -- {0x1366d, 0x0}, -- {0x1366e, 0x0}, -- {0x1366f, 0x0}, -- {0x1361c, 0x0}, -- {0x1361d, 0x0}, -- {0x1361e, 0x0}, -- {0x1361f, 0x0}, -- {0x13724, 0x0}, -- {0x13725, 0x0}, -- {0x13726, 0x0}, -- {0x13727, 0x0}, -- {0x13710, 0x0}, -- {0x13711, 0x0}, -- {0x13712, 0x0}, -- {0x13713, 0x0}, -- {0x13768, 0x0}, -- {0x13769, 0x0}, -- {0x1376a, 0x0}, -- {0x1376b, 0x0}, -- {0x1376c, 0x0}, -- {0x1376d, 0x0}, -- {0x1376e, 0x0}, -- {0x1376f, 0x0}, -- {0x1371c, 0x0}, -- {0x1371d, 0x0}, -- {0x1371e, 0x0}, -- {0x1371f, 0x0}, -- {0x13824, 0x0}, -- {0x13825, 0x0}, -- {0x13826, 0x0}, -- {0x13827, 0x0}, -- {0x13810, 0x0}, -- {0x13811, 0x0}, -- {0x13812, 0x0}, -- {0x13813, 0x0}, -- {0x13868, 0x0}, -- {0x13869, 0x0}, -- {0x1386a, 0x0}, -- {0x1386b, 0x0}, -- {0x1386c, 0x0}, -- {0x1386d, 0x0}, -- {0x1386e, 0x0}, -- {0x1386f, 0x0}, -- {0x1381c, 0x0}, -- {0x1381d, 0x0}, -- {0x1381e, 0x0}, -- {0x1381f, 0x0}, -- {0x1300c, 0x0}, -- {0x1300d, 0x0}, -- {0x13015, 0x0}, -- {0x13016, 0x0}, -- {0x13019, 0x0}, -- {0x1301b, 0x0}, -- {0x13022, 0x0}, -- {0x13023, 0x0}, -- {0x130d0, 0x0}, -- {0x130d1, 0x0}, -- {0x130d2, 0x0}, -- {0x130d3, 0x0}, -- {0x130d4, 0x0}, -- {0x90807, 0x0}, -- {0x90808, 0x0}, -- {0x90813, 0x0}, -- {0x2004e, 0x0}, -- {0x2000d, 0x0}, -- {0x20077, 0x0}, --}; -- --/* PHY Initialize Configuration for Pstate 0 */ --static struct ddrphy_cfg_param ddr_phy_fsp0_cfg[] = { -- {0x90802, 0x1}, -- {0x2004a, 0x601}, -- {0x2004b, 0x1c3e}, -- {0x2004c, 0x2e8f}, -- {0x2004d, 0x0}, -- {0x20088, 0x101}, -- {0x20089, 0x0}, -- {0x2008a, 0x0}, -- {0x2008c, 0x0}, -- {0x20002, 0x2}, -- {0x20000, 0x2}, -- {0x90801, 0x4d}, -- {0x90809, 0x6800}, -- {0x1005e, 0x366}, -- {0x10060, 0x366}, -- {0x10062, 0x366}, -- {0x10064, 0x366}, -- {0x1005f, 0x366}, -- {0x10061, 0x366}, -- {0x10063, 0x366}, -- {0x10065, 0x366}, -- {0x1105e, 0x366}, -- {0x11060, 0x366}, -- {0x11062, 0x366}, -- {0x11064, 0x366}, -- {0x1105f, 0x366}, -- {0x11061, 0x366}, -- {0x11063, 0x366}, -- {0x11065, 0x366}, -- {0x1205e, 0x366}, -- {0x12060, 0x366}, -- {0x12062, 0x366}, -- {0x12064, 0x366}, -- {0x1205f, 0x366}, -- {0x12061, 0x366}, -- {0x12063, 0x366}, -- {0x12065, 0x366}, -- {0x1305e, 0x366}, -- {0x13060, 0x366}, -- {0x13062, 0x366}, -- {0x13064, 0x366}, -- {0x1305f, 0x366}, -- {0x13061, 0x366}, -- {0x13063, 0x366}, -- {0x13065, 0x366}, -- {0x10005, 0x0}, -- {0x1000b, 0x0}, -- {0x11005, 0x0}, -- {0x1100b, 0x0}, -- {0x12005, 0x0}, -- {0x1200b, 0x0}, -- {0x13005, 0x0}, -- {0x1300b, 0x0}, -- {0x20007, 0x200}, -- {0x20013, 0x2c}, -- {0x30038, 0x3}, -- {0x30039, 0x3}, -- {0x3003a, 0x3}, -- {0x31038, 0x3}, -- {0x31039, 0x3}, -- {0x3103a, 0x3}, -- {0x10038, 0x3}, -- {0x1003a, 0x3}, -- {0x11038, 0x3}, -- {0x1103a, 0x3}, -- {0x12038, 0x3}, -- {0x1203a, 0x3}, -- {0x13038, 0x3}, -- {0x1303a, 0x3}, -- {0x1003b, 0x3}, -- {0x1103b, 0x3}, -- {0x1203b, 0x3}, -- {0x1303b, 0x3}, -- {0x10009, 0x0}, -- {0x10037, 0x0}, -- {0x11009, 0x0}, -- {0x11037, 0x0}, -- {0x12009, 0x0}, -- {0x12037, 0x0}, -- {0x13009, 0x0}, -- {0x13037, 0x0}, -- {0x10004, 0x0}, -- {0x10003, 0x0}, -- {0x11004, 0x0}, -- {0x11003, 0x0}, -- {0x12004, 0x0}, -- {0x12003, 0x0}, -- {0x13004, 0x0}, -- {0x13003, 0x0}, -- {0x20004, 0x320}, -- {0x30050, 0x15}, -- {0x30051, 0x15}, -- {0x30052, 0x15}, -- {0x30053, 0x15}, -- {0x31050, 0x15}, -- {0x31051, 0x15}, -- {0x31052, 0x15}, -- {0x31053, 0x15}, -- {0x1004e, 0x15}, -- {0x1004f, 0x15}, -- {0x10050, 0x15}, -- {0x10051, 0x15}, -- {0x1014e, 0x15}, -- {0x1014f, 0x15}, -- {0x10150, 0x15}, -- {0x10151, 0x15}, -- {0x1024e, 0x15}, -- {0x1024f, 0x15}, -- {0x10250, 0x15}, -- {0x10251, 0x15}, -- {0x1034e, 0x15}, -- {0x1034f, 0x15}, -- {0x10350, 0x15}, -- {0x10351, 0x15}, -- {0x1044e, 0x15}, -- {0x1044f, 0x15}, -- {0x10450, 0x15}, -- {0x10451, 0x15}, -- {0x1054e, 0x15}, -- {0x1054f, 0x15}, -- {0x10550, 0x15}, -- {0x10551, 0x15}, -- {0x1064e, 0x15}, -- {0x1064f, 0x15}, -- {0x10650, 0x15}, -- {0x10651, 0x15}, -- {0x1074e, 0x15}, -- {0x1074f, 0x15}, -- {0x10750, 0x15}, -- {0x10751, 0x15}, -- {0x1084e, 0x15}, -- {0x1084f, 0x15}, -- {0x10850, 0x15}, -- {0x10851, 0x15}, -- {0x1104e, 0x15}, -- {0x1104f, 0x15}, -- {0x11050, 0x15}, -- {0x11051, 0x15}, -- {0x1114e, 0x15}, -- {0x1114f, 0x15}, -- {0x11150, 0x15}, -- {0x11151, 0x15}, -- {0x1124e, 0x15}, -- {0x1124f, 0x15}, -- {0x11250, 0x15}, -- {0x11251, 0x15}, -- {0x1134e, 0x15}, -- {0x1134f, 0x15}, -- {0x11350, 0x15}, -- {0x11351, 0x15}, -- {0x1144e, 0x15}, -- {0x1144f, 0x15}, -- {0x11450, 0x15}, -- {0x11451, 0x15}, -- {0x1154e, 0x15}, -- {0x1154f, 0x15}, -- {0x11550, 0x15}, -- {0x11551, 0x15}, -- {0x1164e, 0x15}, -- {0x1164f, 0x15}, -- {0x11650, 0x15}, -- {0x11651, 0x15}, -- {0x1174e, 0x15}, -- {0x1174f, 0x15}, -- {0x11750, 0x15}, -- {0x11751, 0x15}, -- {0x1184e, 0x15}, -- {0x1184f, 0x15}, -- {0x11850, 0x15}, -- {0x11851, 0x15}, -- {0x1204e, 0x15}, -- {0x1204f, 0x15}, -- {0x12050, 0x15}, -- {0x12051, 0x15}, -- {0x1214e, 0x15}, -- {0x1214f, 0x15}, -- {0x12150, 0x15}, -- {0x12151, 0x15}, -- {0x1224e, 0x15}, -- {0x1224f, 0x15}, -- {0x12250, 0x15}, -- {0x12251, 0x15}, -- {0x1234e, 0x15}, -- {0x1234f, 0x15}, -- {0x12350, 0x15}, -- {0x12351, 0x15}, -- {0x1244e, 0x15}, -- {0x1244f, 0x15}, -- {0x12450, 0x15}, -- {0x12451, 0x15}, -- {0x1254e, 0x15}, -- {0x1254f, 0x15}, -- {0x12550, 0x15}, -- {0x12551, 0x15}, -- {0x1264e, 0x15}, -- {0x1264f, 0x15}, -- {0x12650, 0x15}, -- {0x12651, 0x15}, -- {0x1274e, 0x15}, -- {0x1274f, 0x15}, -- {0x12750, 0x15}, -- {0x12751, 0x15}, -- {0x1284e, 0x15}, -- {0x1284f, 0x15}, -- {0x12850, 0x15}, -- {0x12851, 0x15}, -- {0x1304e, 0x15}, -- {0x1304f, 0x15}, -- {0x13050, 0x15}, -- {0x13051, 0x15}, -- {0x1314e, 0x15}, -- {0x1314f, 0x15}, -- {0x13150, 0x15}, -- {0x13151, 0x15}, -- {0x1324e, 0x15}, -- {0x1324f, 0x15}, -- {0x13250, 0x15}, -- {0x13251, 0x15}, -- {0x1334e, 0x15}, -- {0x1334f, 0x15}, -- {0x13350, 0x15}, -- {0x13351, 0x15}, -- {0x1344e, 0x15}, -- {0x1344f, 0x15}, -- {0x13450, 0x15}, -- {0x13451, 0x15}, -- {0x1354e, 0x15}, -- {0x1354f, 0x15}, -- {0x13550, 0x15}, -- {0x13551, 0x15}, -- {0x1364e, 0x15}, -- {0x1364f, 0x15}, -- {0x13650, 0x15}, -- {0x13651, 0x15}, -- {0x1374e, 0x15}, -- {0x1374f, 0x15}, -- {0x13750, 0x15}, -- {0x13751, 0x15}, -- {0x1384e, 0x15}, -- {0x1384f, 0x15}, -- {0x13850, 0x15}, -- {0x13851, 0x15}, -- {0x30030, 0x0}, -- {0x30031, 0x0}, -- {0x30035, 0x0}, -- {0x31030, 0x0}, -- {0x31031, 0x0}, -- {0x31035, 0x0}, -- {0x10030, 0x0}, -- {0x10035, 0x0}, -- {0x10036, 0x0}, -- {0x11030, 0x0}, -- {0x11035, 0x0}, -- {0x11036, 0x0}, -- {0x12030, 0x0}, -- {0x12035, 0x0}, -- {0x12036, 0x0}, -- {0x13030, 0x0}, -- {0x13035, 0x0}, -- {0x13036, 0x0}, -- {0x3003c, 0x5}, -- {0x3103c, 0x5}, -- {0x1003c, 0x5}, -- {0x1003d, 0x5}, -- {0x1003e, 0x5}, -- {0x1103c, 0x5}, -- {0x1103d, 0x5}, -- {0x1103e, 0x5}, -- {0x1203c, 0x5}, -- {0x1203d, 0x5}, -- {0x1203e, 0x5}, -- {0x1303c, 0x5}, -- {0x1303d, 0x5}, -- {0x1303e, 0x5}, -- {0x20003, 0x1}, -- {0x10006, 0x2}, -- {0x11006, 0x2}, -- {0x12006, 0x2}, -- {0x13006, 0x2}, -- {0x20001, 0x1122}, -- {0x20009, 0x0}, -- {0x20008, 0x0}, -- {0x200d9, 0x1}, -- {0x30eef, 0x0}, -- {0x31eef, 0x0}, -- {0x20014, 0x1301}, -- {0x9080a, 0x1300}, -- {0x10040, 0xe0e}, -- {0x10042, 0xe0e}, -- {0x9080d, 0x0}, -- {0x10043, 0x0}, -- {0x10044, 0xe0e}, -- {0x10045, 0xe0e}, -- {0x11040, 0xe0e}, -- {0x11042, 0xe0e}, -- {0x9080d, 0x0}, -- {0x11043, 0x0}, -- {0x11044, 0xe0e}, -- {0x11045, 0xe0e}, -- {0x12040, 0xe0e}, -- {0x12042, 0xe0e}, -- {0x9080d, 0x0}, -- {0x12043, 0x0}, -- {0x12044, 0xe0e}, -- {0x12045, 0xe0e}, -- {0x13040, 0xe0e}, -- {0x13042, 0xe0e}, -- {0x9080d, 0x0}, -- {0x13043, 0x0}, -- {0x13044, 0xe0e}, -- {0x13045, 0xe0e}, -- {0x30040, 0xe0e}, -- {0x30041, 0xe0e}, -- {0x30042, 0xe0e}, -- {0x30043, 0xe0e}, -- {0x30330, 0x33}, -- {0x31040, 0xe0e}, -- {0x31041, 0xe0e}, -- {0x31042, 0xe0e}, -- {0x31043, 0xe0e}, -- {0x31330, 0x33}, -- {0x20331, 0x33}, -- {0x10048, 0xc00}, -- {0x1004a, 0xc00}, -- {0x1004b, 0xc00}, -- {0x1004c, 0xe00}, -- {0x1004d, 0xe00}, -- {0x11048, 0xc00}, -- {0x1104a, 0xc00}, -- {0x1104b, 0xc00}, -- {0x1104c, 0xe00}, -- {0x1104d, 0xe00}, -- {0x12048, 0xc00}, -- {0x1204a, 0xc00}, -- {0x1204b, 0xc00}, -- {0x1204c, 0xe00}, -- {0x1204d, 0xe00}, -- {0x13048, 0xc00}, -- {0x1304a, 0xc00}, -- {0x1304b, 0xc00}, -- {0x1304c, 0xe00}, -- {0x1304d, 0xe00}, -- {0x30048, 0xc00}, -- {0x30049, 0xc00}, -- {0x3004a, 0xc00}, -- {0x3004b, 0xc00}, -- {0x31048, 0xc00}, -- {0x31049, 0xc00}, -- {0x3104a, 0xc00}, -- {0x3104b, 0xc00}, -- {0x30033, 0xcc}, -- {0x30034, 0xcc}, -- {0x3002e, 0xcc}, -- {0x31033, 0xcc}, -- {0x31034, 0xcc}, -- {0x3102e, 0xcc}, -- {0x10033, 0xcc}, -- {0x1002e, 0xcc}, -- {0x1002f, 0xcc}, -- {0x11033, 0xcc}, -- {0x1102e, 0xcc}, -- {0x1102f, 0xcc}, -- {0x12033, 0xcc}, -- {0x1202e, 0xcc}, -- {0x1202f, 0xcc}, -- {0x13033, 0xcc}, -- {0x1302e, 0xcc}, -- {0x1302f, 0xcc}, -- {0x20015, 0x0}, -- {0x90806, 0x0}, -- {0x100e8, 0x0}, -- {0x100e9, 0x15}, -- {0x110e8, 0x0}, -- {0x110e9, 0x15}, -- {0x120e8, 0x0}, -- {0x120e9, 0x15}, -- {0x130e8, 0x0}, -- {0x130e9, 0x15}, -- {0x10001, 0x0}, -- {0x11001, 0x0}, -- {0x12001, 0x0}, -- {0x13001, 0x0}, -- {0x20012, 0xa1a1}, -- {0x20017, 0x40}, -- {0x2000a, 0x40}, -- {0x20186, 0xa1}, -- {0x20187, 0x40}, -- {0x20010, 0x0}, -- {0x20011, 0xf}, -- {0x9080b, 0xf}, -- {0x9080c, 0xf}, -- {0x100a5, 0x1}, -- {0x110a5, 0x1}, -- {0x120a5, 0x1}, -- {0x130a5, 0x1}, -- {0x10014, 0x3232}, -- {0x11014, 0x3232}, -- {0x12014, 0x3232}, -- {0x13014, 0x3232}, -- {0x1000f, 0x1086}, -- {0x1100f, 0x1086}, -- {0x1200f, 0x1086}, -- {0x1300f, 0x1086}, -- {0x20035, 0x100c}, -- {0x20036, 0x100c}, -- {0x20037, 0x41c}, -- {0x20037, 0x45c}, -- {0x20038, 0x1920}, -- {0x20039, 0x101c}, -- {0x2003a, 0x101c}, -- {0x2003b, 0x42c}, -- {0x2003c, 0x2d30}, -- {0x2003d, 0x1004}, -- {0x2003e, 0x1004}, -- {0x2003f, 0x414}, -- {0x20040, 0x1118}, -- {0x2002c, 0x843}, -- {0x2002d, 0x843}, -- {0x20030, 0x843}, -- {0x2002e, 0x81f}, -- {0x2002f, 0x81f}, -- {0x2000c, 0x0}, -- {0x2001b, 0x0}, -- {0x10007, 0x0}, -- {0x11007, 0x0}, -- {0x12007, 0x0}, -- {0x13007, 0x0}, -- {0xc0080, 0x3}, --}; -- --/* P0 message block parameter for training firmware */ --static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { -- {0x58000, 0x4000}, -- {0x58002, 0x30}, -- {0x58003, 0x1900}, -- {0x58004, 0x4}, -- {0x58005, 0x4}, -- {0x58008, 0x17df}, -- {0x58009, 0xc8}, -- {0x5800b, 0x2}, -- {0x5800d, 0x100}, -- {0x5800e, 0xf}, -- {0x58012, 0x310}, -- {0x5801f, 0x1000}, -- {0x58020, 0x3}, -- {0x5802d, 0xb0b0}, -- {0x5802e, 0xb0b0}, -- {0x5802f, 0xbbbb}, -- {0x58030, 0xbbbb}, -- {0x58031, 0x606}, -- {0x58032, 0x606}, -- {0x58033, 0x5454}, -- {0x58034, 0x5454}, -- {0x58035, 0x4646}, -- {0x58036, 0x4646}, -- {0x58037, 0x2d2d}, -- {0x58038, 0x2d2d}, -- {0x58039, 0x8080}, -- {0x5803a, 0x8080}, -- {0x5803b, 0x1c1c}, -- {0x5803c, 0x1c1c}, -- {0x5803d, 0x1c1c}, -- {0x5803e, 0x1c1c}, -- {0x58041, 0xac84}, -- {0x58042, 0xac84}, -- {0x58043, 0x1b1b}, -- {0x58044, 0x1b1b}, -- {0x58045, 0x1010}, -- {0x58046, 0x1010}, -- {0x58047, 0x202}, -- {0x58048, 0x202}, -- {0x5804f, 0x8080}, -- {0x58050, 0x8080}, -- {0x58055, 0x404}, -- {0x58056, 0x404}, -- {0x58074, 0x2e}, -- {0x58075, 0x50}, -- {0x58080, 0x1}, -- {0x58081, 0x4b00}, -- {0x58082, 0x43}, --}; -- --/* DRAM PHY init engine image for Pstate 0 */ --static struct ddrphy_cfg_param ddr_phy_pie_fsp0_cfg[] = { -- {0x908f0, 0x65}, -- {0x908f1, 0x258}, -- {0x908f2, 0x0}, -- {0x908f3, 0x58}, -- {0x908f4, 0x14}, -- {0x908f5, 0x0}, -- {0x908f6, 0xb0}, -- {0x908f7, 0x0}, -- {0x41008, 0xc9d8}, -- {0x41009, 0x0}, -- {0x4100a, 0x0}, -- {0x4100b, 0x0}, -- {0x4100c, 0xc808}, -- {0x4100d, 0x0}, -- {0x4100e, 0x0}, -- {0x4100f, 0x0}, -- {0x41010, 0x0}, -- {0x41011, 0x0}, -- {0x41012, 0x0}, -- {0x41013, 0x2b00}, -- {0x41014, 0x0}, -- {0x41015, 0x0}, -- {0x41016, 0x0}, -- {0x41017, 0x0}, -- {0x41018, 0xc958}, -- {0x41019, 0x0}, -- {0x4101a, 0x0}, -- {0x4101b, 0x0}, -- {0x4101c, 0xcd88}, -- {0x4101d, 0x0}, -- {0x4101e, 0x0}, -- {0x4101f, 0x0}, -- {0x41020, 0x0}, -- {0x41021, 0x0}, -- {0x41022, 0x0}, -- {0x41023, 0x2b00}, -- {0x41024, 0x0}, -- {0x41025, 0x0}, -- {0x41026, 0x0}, -- {0x41027, 0x0}, -- {0x41028, 0xc0d8}, -- {0x41029, 0x0}, -- {0x4102a, 0x0}, -- {0x4102b, 0x0}, -- {0x4102c, 0xd848}, -- {0x4102d, 0x0}, -- {0x4102e, 0x0}, -- {0x4102f, 0x0}, -- {0x41030, 0x0}, -- {0x41031, 0x0}, -- {0x41032, 0x0}, -- {0x41033, 0x2b00}, -- {0x41034, 0x0}, -- {0x41035, 0x0}, -- {0x41036, 0x0}, -- {0x41037, 0x0}, -- {0x41038, 0xc158}, -- {0x41039, 0x0}, -- {0x4103a, 0x0}, -- {0x4103b, 0x0}, -- {0x4103c, 0xddc8}, -- {0x4103d, 0x0}, -- {0x4103e, 0x0}, -- {0x4103f, 0x0}, -- {0x41040, 0x0}, -- {0x41041, 0x0}, -- {0x41042, 0x0}, -- {0x41043, 0x2b00}, -- {0x41044, 0x0}, -- {0x41045, 0x0}, -- {0x41046, 0x0}, -- {0x41047, 0x0}, -- {0x41048, 0xc1d8}, -- {0x41049, 0x0}, -- {0x4104a, 0x0}, -- {0x4104b, 0x0}, -- {0x4104c, 0xc308}, -- {0x4104d, 0x0}, -- {0x4104e, 0x0}, -- {0x4104f, 0x0}, -- {0x41050, 0x0}, -- {0x41051, 0x0}, -- {0x41052, 0x0}, -- {0x41053, 0x2b00}, -- {0x41054, 0x0}, -- {0x41055, 0x0}, -- {0x41056, 0x0}, -- {0x41057, 0x0}, -- {0x41058, 0xc558}, -- {0x41059, 0x0}, -- {0x4105a, 0x0}, -- {0x4105b, 0x0}, -- {0x4105c, 0xea08}, -- {0x4105d, 0x0}, -- {0x4105e, 0x0}, -- {0x4105f, 0x0}, -- {0x41060, 0x0}, -- {0x41061, 0x0}, -- {0x41062, 0x0}, -- {0x41063, 0x2b00}, -- {0x41064, 0x0}, -- {0x41065, 0x0}, -- {0x41066, 0x0}, -- {0x41067, 0x0}, -- {0x41068, 0xc5d8}, -- {0x41069, 0x0}, -- {0x4106a, 0x0}, -- {0x4106b, 0x0}, -- {0x4106c, 0xe308}, -- {0x4106d, 0x0}, -- {0x4106e, 0x0}, -- {0x4106f, 0x0}, -- {0x41070, 0x0}, -- {0x41071, 0x0}, -- {0x41072, 0x0}, -- {0x41073, 0x2b00}, -- {0x41074, 0x0}, -- {0x41075, 0x0}, -- {0x41076, 0x0}, -- {0x41077, 0x0}, -- {0x41078, 0x48d8}, -- {0x41079, 0x0}, -- {0x4107a, 0x0}, -- {0x4107b, 0x0}, -- {0x4107c, 0x4248}, -- {0x4107d, 0x0}, -- {0x4107e, 0x0}, -- {0x4107f, 0x0}, -- {0x41080, 0x88d8}, -- {0x41081, 0x0}, -- {0x41082, 0x0}, -- {0x41083, 0x0}, -- {0x41084, 0x9648}, -- {0x41085, 0x0}, -- {0x41086, 0x0}, -- {0x41087, 0x0}, -- {0x41088, 0x0}, -- {0x41089, 0x0}, -- {0x4108a, 0x0}, -- {0x4108b, 0x2b00}, -- {0x4108c, 0x0}, -- {0x4108d, 0x0}, -- {0x4108e, 0x0}, -- {0x4108f, 0x0}, -- {0x41090, 0xca58}, -- {0x41091, 0x0}, -- {0x41092, 0x0}, -- {0x41093, 0x0}, -- {0x41094, 0xc108}, -- {0x41095, 0x0}, -- {0x41096, 0x0}, -- {0x41097, 0x0}, -- {0x41098, 0x0}, -- {0x41099, 0x0}, -- {0x4109a, 0x0}, -- {0x4109b, 0x2b00}, -- {0x4109c, 0x0}, -- {0x4109d, 0x0}, -- {0x4109e, 0x0}, -- {0x4109f, 0x0}, -- {0x410a0, 0xcb58}, -- {0x410a1, 0x0}, -- {0x410a2, 0x0}, -- {0x410a3, 0x0}, -- {0x410a4, 0xc008}, -- {0x410a5, 0x0}, -- {0x410a6, 0x0}, -- {0x410a7, 0x0}, -- {0x410a8, 0x0}, -- {0x410a9, 0x0}, -- {0x410aa, 0x0}, -- {0x410ab, 0x2b00}, -- {0x410ac, 0x0}, -- {0x410ad, 0x0}, -- {0x410ae, 0x0}, -- {0x410af, 0x0}, -- {0x410b0, 0xd4d8}, -- {0x410b1, 0x0}, -- {0x410b2, 0x0}, -- {0x410b3, 0x0}, -- {0x410b4, 0xc008}, -- {0x410b5, 0x0}, -- {0x410b6, 0x0}, -- {0x410b7, 0x0}, -- {0x20015, 0x0}, -- {0x3004a, 0x0}, -- {0x3004b, 0x0}, -- {0x3104a, 0x0}, -- {0x3104b, 0x0}, -- {0x2004a, 0x1a3e}, -- {0x2004b, 0x1a3e}, -- {0x2004c, 0x2c0f}, -- {0x2004d, 0x0}, -- {0x20088, 0x101}, -- {0x20089, 0x0}, -- {0x2008a, 0x0}, -- {0x2008c, 0x0}, -- {0x20041, 0x1}, -- {0x90802, 0x0}, -- {0x20045, 0x2}, -- {0x10057, 0x0}, -- {0x11057, 0x0}, -- {0x12057, 0x0}, -- {0x13057, 0x0}, -- {0x1000f, 0x1087}, -- {0x1100f, 0x1087}, -- {0x1200f, 0x1087}, -- {0x1300f, 0x1087}, -- {0x90803, 0x4}, -- {0x90804, 0x82}, -- {0x90805, 0x1}, -- {0x90903, 0x0}, -- {0x9090b, 0x2}, -- {0x90811, 0x0}, -- {0x90812, 0xff00}, -- {0x20072, 0x3}, -- {0x9080e, 0x3}, -- {0x20073, 0x3}, -- {0x9080f, 0x3}, --}; -- --/* DRAM PHY init engine image */ --static struct ddrphy_cfg_param ddr_phy_pie[] = { -- {0x41000, 0x0}, -- {0x41001, 0x0}, -- {0x41002, 0x0}, -- {0x41003, 0x0}, -- {0x41004, 0x0}, -- {0x41005, 0x0}, -- {0x41006, 0x0}, -- {0x41007, 0x0}, -- {0x41388, 0xc028}, -- {0x41389, 0x0}, -- {0x4138a, 0x0}, -- {0x4138b, 0x10}, -- {0x4138c, 0x0}, -- {0x4138d, 0x0}, -- {0x4138e, 0x0}, -- {0x4138f, 0x0}, -- {0x41390, 0x0}, -- {0x41391, 0x0}, -- {0x41392, 0x0}, -- {0x41393, 0x400}, -- {0x41394, 0x0}, -- {0x41395, 0x0}, -- {0x41396, 0x0}, -- {0x41397, 0x0}, -- {0x41398, 0x0}, -- {0x41399, 0x0}, -- {0x4139a, 0x0}, -- {0x4139b, 0x0}, -- {0x4139c, 0x0}, -- {0x4139d, 0x0}, -- {0x4139e, 0x0}, -- {0x4139f, 0x0}, -- {0x413a0, 0xc858}, -- {0x413a1, 0x0}, -- {0x413a2, 0x0}, -- {0x413a3, 0x10}, -- {0x413a4, 0xe088}, -- {0x413a5, 0x0}, -- {0x413a6, 0x0}, -- {0x413a7, 0x10}, -- {0x413a8, 0xe038}, -- {0x413a9, 0x0}, -- {0x413aa, 0x0}, -- {0x413ab, 0x10}, -- {0x413ac, 0xc858}, -- {0x413ad, 0x0}, -- {0x413ae, 0x0}, -- {0x413af, 0x10}, -- {0x413b0, 0xc088}, -- {0x413b1, 0x0}, -- {0x413b2, 0x0}, -- {0x413b3, 0x10}, -- {0x413b4, 0x0}, -- {0x413b5, 0x0}, -- {0x413b6, 0x0}, -- {0x413b7, 0x0}, -- {0x413b8, 0xc028}, -- {0x413b9, 0x0}, -- {0x413ba, 0x0}, -- {0x413bb, 0x10}, -- {0x413bc, 0x0}, -- {0x413bd, 0x0}, -- {0x413be, 0x0}, -- {0x413bf, 0x0}, -- {0x413c0, 0x0}, -- {0x413c1, 0x0}, -- {0x413c2, 0x0}, -- {0x413c3, 0x400}, -- {0x413c4, 0x0}, -- {0x413c5, 0x0}, -- {0x413c6, 0x0}, -- {0x413c7, 0x0}, -- {0x413c8, 0x0}, -- {0x413c9, 0x0}, -- {0x413ca, 0x0}, -- {0x413cb, 0x0}, -- {0x413cc, 0x0}, -- {0x413cd, 0x0}, -- {0x413ce, 0x0}, -- {0x413cf, 0x0}, -- {0x413d0, 0xc858}, -- {0x413d1, 0x0}, -- {0x413d2, 0x0}, -- {0x413d3, 0x10}, -- {0x413d4, 0xe208}, -- {0x413d5, 0x0}, -- {0x413d6, 0x0}, -- {0x413d7, 0x10}, -- {0x413d8, 0xe038}, -- {0x413d9, 0x0}, -- {0x413da, 0x0}, -- {0x413db, 0x10}, -- {0x413dc, 0xc858}, -- {0x413dd, 0x0}, -- {0x413de, 0x0}, -- {0x413df, 0x10}, -- {0x413e0, 0xc208}, -- {0x413e1, 0x0}, -- {0x413e2, 0x0}, -- {0x413e3, 0x10}, -- {0x413e4, 0x0}, -- {0x413e5, 0x0}, -- {0x413e6, 0x0}, -- {0x413e7, 0x0}, -- {0x413e8, 0xce58}, -- {0x413e9, 0x0}, -- {0x413ea, 0x0}, -- {0x413eb, 0x10}, -- {0x413ec, 0xc208}, -- {0x413ed, 0x0}, -- {0x413ee, 0x0}, -- {0x413ef, 0x10}, -- {0x413f0, 0x0}, -- {0x413f1, 0x0}, -- {0x413f2, 0x0}, -- {0x413f3, 0x0}, -- {0x413f4, 0x0}, -- {0x413f5, 0x0}, -- {0x413f6, 0x0}, -- {0x413f7, 0x0}, -- {0x413f8, 0xc370}, -- {0x413f9, 0x0}, -- {0x413fa, 0x0}, -- {0x413fb, 0x10}, -- {0x413fc, 0x0}, -- {0x413fd, 0x0}, -- {0x413fe, 0x0}, -- {0x413ff, 0x0}, -- {0x41400, 0xc040}, -- {0x41401, 0x0}, -- {0x41402, 0x0}, -- {0x41403, 0x10}, -- {0x41404, 0x0}, -- {0x41405, 0x0}, -- {0x41406, 0x0}, -- {0x41407, 0x10}, -- {0x41408, 0xd2d8}, -- {0x41409, 0x0}, -- {0x4140a, 0x0}, -- {0x4140b, 0x10}, -- {0x4140c, 0xe008}, -- {0x4140d, 0x0}, -- {0x4140e, 0x0}, -- {0x4140f, 0x10}, -- {0x41410, 0x0}, -- {0x41411, 0x0}, -- {0x41412, 0x0}, -- {0x41413, 0x5b00}, -- {0x41414, 0x0}, -- {0x41415, 0x0}, -- {0x41416, 0x0}, -- {0x41417, 0x0}, -- {0x41418, 0xc0f0}, -- {0x41419, 0x0}, -- {0x4141a, 0x0}, -- {0x4141b, 0x10}, -- {0x4141c, 0x0}, -- {0x4141d, 0x0}, -- {0x4141e, 0x0}, -- {0x4141f, 0x0}, -- {0x41420, 0xcfd8}, -- {0x41421, 0x0}, -- {0x41422, 0x0}, -- {0x41423, 0x10}, -- {0x41424, 0xc008}, -- {0x41425, 0x0}, -- {0x41426, 0x0}, -- {0x41427, 0x10}, -- {0x41428, 0x0}, -- {0x41429, 0x0}, -- {0x4142a, 0x0}, -- {0x4142b, 0x2b00}, -- {0x4142c, 0x0}, -- {0x4142d, 0x0}, -- {0x4142e, 0x0}, -- {0x4142f, 0x0}, -- {0x41430, 0xd058}, -- {0x41431, 0x0}, -- {0x41432, 0x0}, -- {0x41433, 0x10}, -- {0x41434, 0xc008}, -- {0x41435, 0x0}, -- {0x41436, 0x0}, -- {0x41437, 0x10}, -- {0x41438, 0x0}, -- {0x41439, 0x0}, -- {0x4143a, 0x0}, -- {0x4143b, 0x2b00}, -- {0x4143c, 0x0}, -- {0x4143d, 0x0}, -- {0x4143e, 0x0}, -- {0x4143f, 0x0}, -- {0x41440, 0xd0d8}, -- {0x41441, 0x0}, -- {0x41442, 0x0}, -- {0x41443, 0x10}, -- {0x41444, 0xc088}, -- {0x41445, 0x0}, -- {0x41446, 0x0}, -- {0x41447, 0x10}, -- {0x41448, 0x0}, -- {0x41449, 0x0}, -- {0x4144a, 0x0}, -- {0x4144b, 0x2b00}, -- {0x4144c, 0x0}, -- {0x4144d, 0x0}, -- {0x4144e, 0x0}, -- {0x4144f, 0x0}, -- {0x41450, 0xd158}, -- {0x41451, 0x0}, -- {0x41452, 0x0}, -- {0x41453, 0x10}, -- {0x41454, 0xc008}, -- {0x41455, 0x0}, -- {0x41456, 0x0}, -- {0x41457, 0x10}, -- {0x41458, 0x0}, -- {0x41459, 0x0}, -- {0x4145a, 0x0}, -- {0x4145b, 0x5b00}, -- {0x4145c, 0x0}, -- {0x4145d, 0x0}, -- {0x4145e, 0x0}, -- {0x4145f, 0x0}, -- {0x41460, 0x402c}, -- {0x41461, 0xd00}, -- {0x41462, 0x1}, -- {0x41463, 0x400}, -- {0x41464, 0x4050}, -- {0x41465, 0x800}, -- {0x41466, 0x0}, -- {0x41467, 0x0}, -- {0x41468, 0x0}, -- {0x41469, 0x0}, -- {0x4146a, 0x0}, -- {0x4146b, 0x400}, -- {0x4146c, 0x0}, -- {0x4146d, 0x0}, -- {0x4146e, 0x0}, -- {0x4146f, 0x0}, -- {0x41470, 0x0}, -- {0x41471, 0x0}, -- {0x41472, 0x0}, -- {0x41473, 0x400}, -- {0x41474, 0x4050}, -- {0x41475, 0x803}, -- {0x41476, 0x0}, -- {0x41477, 0x0}, -- {0x41478, 0x0}, -- {0x41479, 0x0}, -- {0x4147a, 0x0}, -- {0x4147b, 0x7f00}, -- {0x4147c, 0x0}, -- {0x4147d, 0x0}, -- {0x4147e, 0x0}, -- {0x4147f, 0x400}, -- {0x41480, 0x407c}, -- {0x41481, 0x0}, -- {0x41482, 0x0}, -- {0x41483, 0x400}, -- {0x41484, 0x0}, -- {0x41485, 0x0}, -- {0x41486, 0x0}, -- {0x41487, 0x0}, -- {0x41488, 0x0}, -- {0x41489, 0x0}, -- {0x4148a, 0x0}, -- {0x4148b, 0x400}, -- {0x4148c, 0x0}, -- {0x4148d, 0x0}, -- {0x4148e, 0x1}, -- {0x4148f, 0x0}, -- {0x41490, 0x0}, -- {0x41491, 0x0}, -- {0x41492, 0x0}, -- {0x41493, 0x400}, -- {0x41494, 0x0}, -- {0x41495, 0x0}, -- {0x41496, 0x0}, -- {0x41497, 0x0}, -- {0x41498, 0x0}, -- {0x41499, 0x0}, -- {0x4149a, 0x0}, -- {0x4149b, 0x0}, -- {0x4149c, 0x0}, -- {0x4149d, 0x0}, -- {0x4149e, 0x0}, -- {0x4149f, 0x0}, -- {0x414a0, 0x802c}, -- {0x414a1, 0xd00}, -- {0x414a2, 0x1}, -- {0x414a3, 0x410}, -- {0x414a4, 0x8050}, -- {0x414a5, 0x800}, -- {0x414a6, 0x0}, -- {0x414a7, 0x10}, -- {0x414a8, 0x0}, -- {0x414a9, 0x0}, -- {0x414aa, 0x0}, -- {0x414ab, 0x400}, -- {0x414ac, 0x0}, -- {0x414ad, 0x0}, -- {0x414ae, 0x0}, -- {0x414af, 0x0}, -- {0x414b0, 0x0}, -- {0x414b1, 0x0}, -- {0x414b2, 0x0}, -- {0x414b3, 0x400}, -- {0x414b4, 0x8050}, -- {0x414b5, 0x803}, -- {0x414b6, 0x0}, -- {0x414b7, 0x10}, -- {0x414b8, 0x0}, -- {0x414b9, 0x0}, -- {0x414ba, 0x0}, -- {0x414bb, 0x7f00}, -- {0x414bc, 0x0}, -- {0x414bd, 0x0}, -- {0x414be, 0x0}, -- {0x414bf, 0x400}, -- {0x414c0, 0x807c}, -- {0x414c1, 0x0}, -- {0x414c2, 0x0}, -- {0x414c3, 0x410}, -- {0x414c4, 0x0}, -- {0x414c5, 0x0}, -- {0x414c6, 0x0}, -- {0x414c7, 0x0}, -- {0x414c8, 0x0}, -- {0x414c9, 0x0}, -- {0x414ca, 0x0}, -- {0x414cb, 0x400}, -- {0x414cc, 0x0}, -- {0x414cd, 0x0}, -- {0x414ce, 0x1}, -- {0x414cf, 0x0}, -- {0x414d0, 0x0}, -- {0x414d1, 0x0}, -- {0x414d2, 0x0}, -- {0x414d3, 0x400}, -- {0x414d4, 0x0}, -- {0x414d5, 0x0}, -- {0x414d6, 0x0}, -- {0x414d7, 0x0}, -- {0x414d8, 0x0}, -- {0x414d9, 0x0}, -- {0x414da, 0x0}, -- {0x414db, 0x0}, -- {0x414dc, 0x0}, -- {0x414dd, 0x0}, -- {0x414de, 0x0}, -- {0x414df, 0x0}, -- {0x414e0, 0x402c}, -- {0x414e1, 0xd00}, -- {0x414e2, 0x1}, -- {0x414e3, 0x0}, -- {0x414e4, 0x4050}, -- {0x414e5, 0x800}, -- {0x414e6, 0x0}, -- {0x414e7, 0x0}, -- {0x414e8, 0x0}, -- {0x414e9, 0x0}, -- {0x414ea, 0x0}, -- {0x414eb, 0x0}, -- {0x414ec, 0x0}, -- {0x414ed, 0x0}, -- {0x414ee, 0x0}, -- {0x414ef, 0x0}, -- {0x414f0, 0x0}, -- {0x414f1, 0x0}, -- {0x414f2, 0x0}, -- {0x414f3, 0x0}, -- {0x414f4, 0x4050}, -- {0x414f5, 0x803}, -- {0x414f6, 0x0}, -- {0x414f7, 0x0}, -- {0x414f8, 0x0}, -- {0x414f9, 0x0}, -- {0x414fa, 0x0}, -- {0x414fb, 0x0}, -- {0x414fc, 0x0}, -- {0x414fd, 0x0}, -- {0x414fe, 0x0}, -- {0x414ff, 0x0}, -- {0x41500, 0x0}, -- {0x41501, 0x0}, -- {0x41502, 0x0}, -- {0x41503, 0x0}, -- {0x41504, 0x4050}, -- {0x41505, 0x800}, -- {0x41506, 0x0}, -- {0x41507, 0x0}, -- {0x41508, 0x0}, -- {0x41509, 0x0}, -- {0x4150a, 0x0}, -- {0x4150b, 0x6b00}, -- {0x4150c, 0x0}, -- {0x4150d, 0x0}, -- {0x4150e, 0x0}, -- {0x4150f, 0x400}, -- {0x41510, 0x0}, -- {0x41511, 0x0}, -- {0x41512, 0x0}, -- {0x41513, 0x0}, -- {0x41514, 0x407c}, -- {0x41515, 0x0}, -- {0x41516, 0x0}, -- {0x41517, 0x0}, -- {0x41518, 0x0}, -- {0x41519, 0x0}, -- {0x4151a, 0x0}, -- {0x4151b, 0x0}, -- {0x4151c, 0x0}, -- {0x4151d, 0x0}, -- {0x4151e, 0x0}, -- {0x4151f, 0x0}, -- {0x41520, 0x0}, -- {0x41521, 0x0}, -- {0x41522, 0x1}, -- {0x41523, 0x0}, -- {0x41524, 0x0}, -- {0x41525, 0x0}, -- {0x41526, 0x0}, -- {0x41527, 0x0}, -- {0x41528, 0x0}, -- {0x41529, 0x0}, -- {0x4152a, 0x0}, -- {0x4152b, 0x4b00}, -- {0x4152c, 0x0}, -- {0x4152d, 0x0}, -- {0x4152e, 0x0}, -- {0x4152f, 0x1800}, -- {0x41530, 0x0}, -- {0x41531, 0x0}, -- {0x41532, 0x0}, -- {0x41533, 0x0}, -- {0x41534, 0x802c}, -- {0x41535, 0xd00}, -- {0x41536, 0x1}, -- {0x41537, 0x10}, -- {0x41538, 0x8050}, -- {0x41539, 0x800}, -- {0x4153a, 0x0}, -- {0x4153b, 0x10}, -- {0x4153c, 0x0}, -- {0x4153d, 0x0}, -- {0x4153e, 0x0}, -- {0x4153f, 0x0}, -- {0x41540, 0x0}, -- {0x41541, 0x0}, -- {0x41542, 0x0}, -- {0x41543, 0x0}, -- {0x41544, 0x0}, -- {0x41545, 0x0}, -- {0x41546, 0x0}, -- {0x41547, 0x0}, -- {0x41548, 0x8050}, -- {0x41549, 0x803}, -- {0x4154a, 0x0}, -- {0x4154b, 0x10}, -- {0x4154c, 0x0}, -- {0x4154d, 0x0}, -- {0x4154e, 0x0}, -- {0x4154f, 0x0}, -- {0x41550, 0x0}, -- {0x41551, 0x0}, -- {0x41552, 0x0}, -- {0x41553, 0x0}, -- {0x41554, 0x0}, -- {0x41555, 0x0}, -- {0x41556, 0x0}, -- {0x41557, 0x0}, -- {0x41558, 0x8050}, -- {0x41559, 0x800}, -- {0x4155a, 0x0}, -- {0x4155b, 0x10}, -- {0x4155c, 0x0}, -- {0x4155d, 0x0}, -- {0x4155e, 0x0}, -- {0x4155f, 0x0}, -- {0x41560, 0x0}, -- {0x41561, 0x0}, -- {0x41562, 0x0}, -- {0x41563, 0x6b00}, -- {0x41564, 0x0}, -- {0x41565, 0x0}, -- {0x41566, 0x0}, -- {0x41567, 0x400}, -- {0x41568, 0x807c}, -- {0x41569, 0x0}, -- {0x4156a, 0x0}, -- {0x4156b, 0x10}, -- {0x4156c, 0x0}, -- {0x4156d, 0x0}, -- {0x4156e, 0x0}, -- {0x4156f, 0x0}, -- {0x41570, 0x0}, -- {0x41571, 0x0}, -- {0x41572, 0x0}, -- {0x41573, 0x0}, -- {0x41574, 0x0}, -- {0x41575, 0x0}, -- {0x41576, 0x1}, -- {0x41577, 0x0}, -- {0x41578, 0x0}, -- {0x41579, 0x0}, -- {0x4157a, 0x0}, -- {0x4157b, 0x7b00}, -- {0x4157c, 0x0}, -- {0x4157d, 0x0}, -- {0x4157e, 0x0}, -- {0x4157f, 0x2000}, -- {0x41580, 0x402c}, -- {0x41581, 0xd00}, -- {0x41582, 0x1}, -- {0x41583, 0x0}, -- {0x41584, 0x5198}, -- {0x41585, 0x803}, -- {0x41586, 0x0}, -- {0x41587, 0x0}, -- {0x41588, 0x0}, -- {0x41589, 0x0}, -- {0x4158a, 0x0}, -- {0x4158b, 0x3b00}, -- {0x4158c, 0x0}, -- {0x4158d, 0x0}, -- {0x4158e, 0x0}, -- {0x4158f, 0x0}, -- {0x41590, 0x5218}, -- {0x41591, 0x803}, -- {0x41592, 0x0}, -- {0x41593, 0x0}, -- {0x41594, 0x0}, -- {0x41595, 0x0}, -- {0x41596, 0x0}, -- {0x41597, 0x0}, -- {0x41598, 0x0}, -- {0x41599, 0x0}, -- {0x4159a, 0x0}, -- {0x4159b, 0x6b00}, -- {0x4159c, 0x0}, -- {0x4159d, 0x0}, -- {0x4159e, 0x0}, -- {0x4159f, 0x400}, -- {0x415a0, 0x407c}, -- {0x415a1, 0x0}, -- {0x415a2, 0x0}, -- {0x415a3, 0x0}, -- {0x415a4, 0x0}, -- {0x415a5, 0x0}, -- {0x415a6, 0x0}, -- {0x415a7, 0x0}, -- {0x415a8, 0x0}, -- {0x415a9, 0x0}, -- {0x415aa, 0x0}, -- {0x415ab, 0x0}, -- {0x415ac, 0x0}, -- {0x415ad, 0x0}, -- {0x415ae, 0x1}, -- {0x415af, 0x0}, -- {0x415b0, 0x0}, -- {0x415b1, 0x0}, -- {0x415b2, 0x0}, -- {0x415b3, 0x1b00}, -- {0x415b4, 0x0}, -- {0x415b5, 0x0}, -- {0x415b6, 0x0}, -- {0x415b7, 0x0}, -- {0x415b8, 0x0}, -- {0x415b9, 0x0}, -- {0x415ba, 0x0}, -- {0x415bb, 0x0}, -- {0x415bc, 0x802c}, -- {0x415bd, 0xd00}, -- {0x415be, 0x1}, -- {0x415bf, 0x10}, -- {0x415c0, 0x9198}, -- {0x415c1, 0x803}, -- {0x415c2, 0x0}, -- {0x415c3, 0x10}, -- {0x415c4, 0x0}, -- {0x415c5, 0x0}, -- {0x415c6, 0x0}, -- {0x415c7, 0x0}, -- {0x415c8, 0x0}, -- {0x415c9, 0x0}, -- {0x415ca, 0x0}, -- {0x415cb, 0x2b00}, -- {0x415cc, 0x0}, -- {0x415cd, 0x0}, -- {0x415ce, 0x0}, -- {0x415cf, 0x0}, -- {0x415d0, 0x0}, -- {0x415d1, 0x0}, -- {0x415d2, 0x0}, -- {0x415d3, 0x0}, -- {0x415d4, 0x9218}, -- {0x415d5, 0x803}, -- {0x415d6, 0x0}, -- {0x415d7, 0x10}, -- {0x415d8, 0x0}, -- {0x415d9, 0x0}, -- {0x415da, 0x0}, -- {0x415db, 0x6b00}, -- {0x415dc, 0x0}, -- {0x415dd, 0x0}, -- {0x415de, 0x0}, -- {0x415df, 0x400}, -- {0x415e0, 0x0}, -- {0x415e1, 0x0}, -- {0x415e2, 0x0}, -- {0x415e3, 0x0}, -- {0x415e4, 0x807c}, -- {0x415e5, 0x0}, -- {0x415e6, 0x0}, -- {0x415e7, 0x10}, -- {0x415e8, 0x0}, -- {0x415e9, 0x0}, -- {0x415ea, 0x0}, -- {0x415eb, 0x0}, -- {0x415ec, 0x0}, -- {0x415ed, 0x0}, -- {0x415ee, 0x0}, -- {0x415ef, 0x0}, -- {0x415f0, 0x0}, -- {0x415f1, 0x0}, -- {0x415f2, 0x1}, -- {0x415f3, 0x0}, -- {0x415f4, 0x0}, -- {0x415f5, 0x0}, -- {0x415f6, 0x0}, -- {0x415f7, 0x0}, -- {0x415f8, 0x0}, -- {0x415f9, 0x0}, -- {0x415fa, 0x0}, -- {0x415fb, 0xb00}, -- {0x415fc, 0x0}, -- {0x415fd, 0x0}, -- {0x415fe, 0x0}, -- {0x415ff, 0x400}, -- {0x41600, 0x0}, -- {0x41601, 0x0}, -- {0x41602, 0x0}, -- {0x41603, 0x0}, -- {0x41604, 0x0}, -- {0x41605, 0x0}, -- {0x41606, 0x0}, -- {0x41607, 0x0}, -- {0x41608, 0x401c}, -- {0x41609, 0xd0}, -- {0x4160a, 0x1}, -- {0x4160b, 0x0}, -- {0x4160c, 0x4060}, -- {0x4160d, 0x84}, -- {0x4160e, 0x0}, -- {0x4160f, 0x0}, -- {0x41610, 0x0}, -- {0x41611, 0x0}, -- {0x41612, 0x0}, -- {0x41613, 0xb00}, -- {0x41614, 0x0}, -- {0x41615, 0x0}, -- {0x41616, 0x0}, -- {0x41617, 0x800}, -- {0x41618, 0x407c}, -- {0x41619, 0x0}, -- {0x4161a, 0x0}, -- {0x4161b, 0x0}, -- {0x4161c, 0x0}, -- {0x4161d, 0x0}, -- {0x4161e, 0x0}, -- {0x4161f, 0x0}, -- {0x41620, 0x0}, -- {0x41621, 0x0}, -- {0x41622, 0x0}, -- {0x41623, 0x0}, -- {0x41624, 0x4000}, -- {0x41625, 0x0}, -- {0x41626, 0x1}, -- {0x41627, 0x0}, -- {0x41628, 0x0}, -- {0x41629, 0x0}, -- {0x4162a, 0x0}, -- {0x4162b, 0x0}, -- {0x4162c, 0x402c}, -- {0x4162d, 0xd00}, -- {0x4162e, 0x1}, -- {0x4162f, 0x0}, -- {0x41630, 0x4020}, -- {0x41631, 0x803}, -- {0x41632, 0x0}, -- {0x41633, 0x0}, -- {0x41634, 0x0}, -- {0x41635, 0x0}, -- {0x41636, 0x0}, -- {0x41637, 0x0}, -- {0x41638, 0x0}, -- {0x41639, 0x0}, -- {0x4163a, 0x0}, -- {0x4163b, 0x2b00}, -- {0x4163c, 0x0}, -- {0x4163d, 0x0}, -- {0x4163e, 0x0}, -- {0x4163f, 0x800}, -- {0x41640, 0x0}, -- {0x41641, 0x0}, -- {0x41642, 0x0}, -- {0x41643, 0x0}, -- {0x41644, 0x407c}, -- {0x41645, 0x0}, -- {0x41646, 0x0}, -- {0x41647, 0x0}, -- {0x41648, 0x0}, -- {0x41649, 0x0}, -- {0x4164a, 0x0}, -- {0x4164b, 0x0}, -- {0x4164c, 0x0}, -- {0x4164d, 0x0}, -- {0x4164e, 0x0}, -- {0x4164f, 0x0}, -- {0x41650, 0x0}, -- {0x41651, 0x0}, -- {0x41652, 0x1}, -- {0x41653, 0x0}, -- {0x41654, 0x0}, -- {0x41655, 0x0}, -- {0x41656, 0x0}, -- {0x41657, 0x0}, -- {0x41658, 0x801c}, -- {0x41659, 0xd0}, -- {0x4165a, 0x1}, -- {0x4165b, 0x10}, -- {0x4165c, 0x8060}, -- {0x4165d, 0x84}, -- {0x4165e, 0x0}, -- {0x4165f, 0x10}, -- {0x41660, 0x0}, -- {0x41661, 0x0}, -- {0x41662, 0x0}, -- {0x41663, 0xb00}, -- {0x41664, 0x0}, -- {0x41665, 0x0}, -- {0x41666, 0x0}, -- {0x41667, 0x800}, -- {0x41668, 0x807c}, -- {0x41669, 0x0}, -- {0x4166a, 0x0}, -- {0x4166b, 0x10}, -- {0x4166c, 0x0}, -- {0x4166d, 0x0}, -- {0x4166e, 0x0}, -- {0x4166f, 0x0}, -- {0x41670, 0x0}, -- {0x41671, 0x0}, -- {0x41672, 0x0}, -- {0x41673, 0x0}, -- {0x41674, 0x8000}, -- {0x41675, 0x0}, -- {0x41676, 0x1}, -- {0x41677, 0x10}, -- {0x41678, 0x0}, -- {0x41679, 0x0}, -- {0x4167a, 0x0}, -- {0x4167b, 0x0}, -- {0x4167c, 0x802c}, -- {0x4167d, 0xd00}, -- {0x4167e, 0x1}, -- {0x4167f, 0x10}, -- {0x41680, 0x8020}, -- {0x41681, 0x803}, -- {0x41682, 0x0}, -- {0x41683, 0x10}, -- {0x41684, 0x0}, -- {0x41685, 0x0}, -- {0x41686, 0x0}, -- {0x41687, 0x0}, -- {0x41688, 0x0}, -- {0x41689, 0x0}, -- {0x4168a, 0x0}, -- {0x4168b, 0x2b00}, -- {0x4168c, 0x0}, -- {0x4168d, 0x0}, -- {0x4168e, 0x0}, -- {0x4168f, 0x800}, -- {0x41690, 0x0}, -- {0x41691, 0x0}, -- {0x41692, 0x0}, -- {0x41693, 0x0}, -- {0x41694, 0x807c}, -- {0x41695, 0x0}, -- {0x41696, 0x0}, -- {0x41697, 0x10}, -- {0x41698, 0x0}, -- {0x41699, 0x0}, -- {0x4169a, 0x0}, -- {0x4169b, 0x0}, -- {0x4169c, 0x0}, -- {0x4169d, 0x0}, -- {0x4169e, 0x0}, -- {0x4169f, 0x0}, -- {0x416a0, 0x0}, -- {0x416a1, 0x0}, -- {0x416a2, 0x1}, -- {0x416a3, 0x0}, -- {0x416a4, 0x0}, -- {0x416a5, 0x0}, -- {0x416a6, 0x0}, -- {0x416a7, 0x0}, -- {0x416a8, 0x402c}, -- {0x416a9, 0xd00}, -- {0x416aa, 0x1}, -- {0x416ab, 0x0}, -- {0x416ac, 0x4050}, -- {0x416ad, 0x803}, -- {0x416ae, 0x0}, -- {0x416af, 0x0}, -- {0x416b0, 0x0}, -- {0x416b1, 0x0}, -- {0x416b2, 0x0}, -- {0x416b3, 0x1b00}, -- {0x416b4, 0x0}, -- {0x416b5, 0x0}, -- {0x416b6, 0x0}, -- {0x416b7, 0x0}, -- {0x416b8, 0x0}, -- {0x416b9, 0x0}, -- {0x416ba, 0x0}, -- {0x416bb, 0x0}, -- {0x416bc, 0x0}, -- {0x416bd, 0x0}, -- {0x416be, 0x0}, -- {0x416bf, 0x0}, -- {0x416c0, 0x4050}, -- {0x416c1, 0x803}, -- {0x416c2, 0x0}, -- {0x416c3, 0x5a00}, -- {0x416c4, 0x0}, -- {0x416c5, 0x0}, -- {0x416c6, 0x0}, -- {0x416c7, 0x0}, -- {0x416c8, 0x0}, -- {0x416c9, 0x0}, -- {0x416ca, 0x0}, -- {0x416cb, 0x0}, -- {0x416cc, 0x0}, -- {0x416cd, 0x0}, -- {0x416ce, 0x0}, -- {0x416cf, 0x0}, -- {0x416d0, 0x0}, -- {0x416d1, 0x0}, -- {0x416d2, 0x0}, -- {0x416d3, 0x100}, -- {0x416d4, 0x0}, -- {0x416d5, 0x0}, -- {0x416d6, 0x0}, -- {0x416d7, 0x0}, -- {0x416d8, 0x4050}, -- {0x416d9, 0x803}, -- {0x416da, 0x0}, -- {0x416db, 0x0}, -- {0x416dc, 0x0}, -- {0x416dd, 0x0}, -- {0x416de, 0x0}, -- {0x416df, 0x0}, -- {0x416e0, 0x0}, -- {0x416e1, 0x0}, -- {0x416e2, 0x0}, -- {0x416e3, 0x6b00}, -- {0x416e4, 0x0}, -- {0x416e5, 0x0}, -- {0x416e6, 0x0}, -- {0x416e7, 0x400}, -- {0x416e8, 0x407c}, -- {0x416e9, 0x0}, -- {0x416ea, 0x0}, -- {0x416eb, 0x0}, -- {0x416ec, 0x0}, -- {0x416ed, 0x0}, -- {0x416ee, 0x0}, -- {0x416ef, 0x0}, -- {0x416f0, 0x0}, -- {0x416f1, 0x0}, -- {0x416f2, 0x0}, -- {0x416f3, 0x3b00}, -- {0x416f4, 0x0}, -- {0x416f5, 0x0}, -- {0x416f6, 0x0}, -- {0x416f7, 0x0}, -- {0x416f8, 0x0}, -- {0x416f9, 0x0}, -- {0x416fa, 0x0}, -- {0x416fb, 0x0}, -- {0x416fc, 0x0}, -- {0x416fd, 0x0}, -- {0x416fe, 0x1}, -- {0x416ff, 0x0}, -- {0x41700, 0x5758}, -- {0x41701, 0x0}, -- {0x41702, 0x0}, -- {0x41703, 0x0}, -- {0x41704, 0x4208}, -- {0x41705, 0x0}, -- {0x41706, 0x0}, -- {0x41707, 0x0}, -- {0x41708, 0x0}, -- {0x41709, 0x0}, -- {0x4170a, 0x0}, -- {0x4170b, 0x4b00}, -- {0x4170c, 0x0}, -- {0x4170d, 0x0}, -- {0x4170e, 0x0}, -- {0x4170f, 0x0}, -- {0x41710, 0x0}, -- {0x41711, 0x0}, -- {0x41712, 0x0}, -- {0x41713, 0x0}, -- {0x41714, 0x401c}, -- {0x41715, 0xd0}, -- {0x41716, 0x1}, -- {0x41717, 0x0}, -- {0x41718, 0x4060}, -- {0x41719, 0x84}, -- {0x4171a, 0x0}, -- {0x4171b, 0x0}, -- {0x4171c, 0x0}, -- {0x4171d, 0x0}, -- {0x4171e, 0x0}, -- {0x4171f, 0x0}, -- {0x41720, 0x0}, -- {0x41721, 0x0}, -- {0x41722, 0x0}, -- {0x41723, 0x7b00}, -- {0x41724, 0x0}, -- {0x41725, 0x0}, -- {0x41726, 0x0}, -- {0x41727, 0x0}, -- {0x41728, 0x407c}, -- {0x41729, 0x0}, -- {0x4172a, 0x0}, -- {0x4172b, 0x0}, -- {0x4172c, 0x0}, -- {0x4172d, 0x0}, -- {0x4172e, 0x0}, -- {0x4172f, 0x0}, -- {0x41730, 0x0}, -- {0x41731, 0x0}, -- {0x41732, 0x0}, -- {0x41733, 0x0}, -- {0x41734, 0x4000}, -- {0x41735, 0x0}, -- {0x41736, 0x1}, -- {0x41737, 0x0}, -- {0x41738, 0x0}, -- {0x41739, 0x0}, -- {0x4173a, 0x0}, -- {0x4173b, 0x0}, -- {0x4173c, 0x402c}, -- {0x4173d, 0xd00}, -- {0x4173e, 0x1}, -- {0x4173f, 0x0}, -- {0x41740, 0x4020}, -- {0x41741, 0x803}, -- {0x41742, 0x0}, -- {0x41743, 0x0}, -- {0x41744, 0x0}, -- {0x41745, 0x0}, -- {0x41746, 0x0}, -- {0x41747, 0x0}, -- {0x41748, 0x0}, -- {0x41749, 0x0}, -- {0x4174a, 0x0}, -- {0x4174b, 0x2b00}, -- {0x4174c, 0x0}, -- {0x4174d, 0x0}, -- {0x4174e, 0x0}, -- {0x4174f, 0x800}, -- {0x41750, 0x0}, -- {0x41751, 0x0}, -- {0x41752, 0x0}, -- {0x41753, 0x0}, -- {0x41754, 0x407c}, -- {0x41755, 0x0}, -- {0x41756, 0x0}, -- {0x41757, 0x0}, -- {0x41758, 0x0}, -- {0x41759, 0x0}, -- {0x4175a, 0x0}, -- {0x4175b, 0x0}, -- {0x4175c, 0x0}, -- {0x4175d, 0x0}, -- {0x4175e, 0x0}, -- {0x4175f, 0x0}, -- {0x41760, 0x4000}, -- {0x41761, 0x0}, -- {0x41762, 0x1}, -- {0x41763, 0x0}, -- {0x41764, 0x0}, -- {0x41765, 0x0}, -- {0x41766, 0x0}, -- {0x41767, 0x0}, -- {0x41768, 0x5758}, -- {0x41769, 0x0}, -- {0x4176a, 0x0}, -- {0x4176b, 0x0}, -- {0x4176c, 0x4008}, -- {0x4176d, 0x0}, -- {0x4176e, 0x0}, -- {0x4176f, 0x0}, -- {0x41770, 0x0}, -- {0x41771, 0x0}, -- {0x41772, 0x0}, -- {0x41773, 0x0}, -- {0x41774, 0x0}, -- {0x41775, 0x0}, -- {0x41776, 0x0}, -- {0x41777, 0x0}, -- {0x41778, 0x802c}, -- {0x41779, 0xd00}, -- {0x4177a, 0x1}, -- {0x4177b, 0x10}, -- {0x4177c, 0x8050}, -- {0x4177d, 0x803}, -- {0x4177e, 0x0}, -- {0x4177f, 0x10}, -- {0x41780, 0x0}, -- {0x41781, 0x0}, -- {0x41782, 0x0}, -- {0x41783, 0x1b00}, -- {0x41784, 0x0}, -- {0x41785, 0x0}, -- {0x41786, 0x0}, -- {0x41787, 0x0}, -- {0x41788, 0x0}, -- {0x41789, 0x0}, -- {0x4178a, 0x0}, -- {0x4178b, 0x0}, -- {0x4178c, 0x0}, -- {0x4178d, 0x0}, -- {0x4178e, 0x0}, -- {0x4178f, 0x0}, -- {0x41790, 0x8050}, -- {0x41791, 0x803}, -- {0x41792, 0x0}, -- {0x41793, 0x5a10}, -- {0x41794, 0x0}, -- {0x41795, 0x0}, -- {0x41796, 0x0}, -- {0x41797, 0x0}, -- {0x41798, 0x0}, -- {0x41799, 0x0}, -- {0x4179a, 0x0}, -- {0x4179b, 0x0}, -- {0x4179c, 0x0}, -- {0x4179d, 0x0}, -- {0x4179e, 0x0}, -- {0x4179f, 0x0}, -- {0x417a0, 0x0}, -- {0x417a1, 0x0}, -- {0x417a2, 0x0}, -- {0x417a3, 0x100}, -- {0x417a4, 0x0}, -- {0x417a5, 0x0}, -- {0x417a6, 0x0}, -- {0x417a7, 0x0}, -- {0x417a8, 0x8050}, -- {0x417a9, 0x803}, -- {0x417aa, 0x0}, -- {0x417ab, 0x10}, -- {0x417ac, 0x0}, -- {0x417ad, 0x0}, -- {0x417ae, 0x0}, -- {0x417af, 0x0}, -- {0x417b0, 0x0}, -- {0x417b1, 0x0}, -- {0x417b2, 0x0}, -- {0x417b3, 0x6b00}, -- {0x417b4, 0x0}, -- {0x417b5, 0x0}, -- {0x417b6, 0x0}, -- {0x417b7, 0x400}, -- {0x417b8, 0x807c}, -- {0x417b9, 0x0}, -- {0x417ba, 0x0}, -- {0x417bb, 0x10}, -- {0x417bc, 0x0}, -- {0x417bd, 0x0}, -- {0x417be, 0x0}, -- {0x417bf, 0x0}, -- {0x417c0, 0x0}, -- {0x417c1, 0x0}, -- {0x417c2, 0x0}, -- {0x417c3, 0x3b00}, -- {0x417c4, 0x0}, -- {0x417c5, 0x0}, -- {0x417c6, 0x0}, -- {0x417c7, 0x0}, -- {0x417c8, 0x0}, -- {0x417c9, 0x0}, -- {0x417ca, 0x0}, -- {0x417cb, 0x0}, -- {0x417cc, 0x0}, -- {0x417cd, 0x0}, -- {0x417ce, 0x1}, -- {0x417cf, 0x0}, -- {0x417d0, 0x9758}, -- {0x417d1, 0x0}, -- {0x417d2, 0x0}, -- {0x417d3, 0x10}, -- {0x417d4, 0x8208}, -- {0x417d5, 0x0}, -- {0x417d6, 0x0}, -- {0x417d7, 0x10}, -- {0x417d8, 0x0}, -- {0x417d9, 0x0}, -- {0x417da, 0x0}, -- {0x417db, 0x4b00}, -- {0x417dc, 0x0}, -- {0x417dd, 0x0}, -- {0x417de, 0x0}, -- {0x417df, 0x0}, -- {0x417e0, 0x0}, -- {0x417e1, 0x0}, -- {0x417e2, 0x0}, -- {0x417e3, 0x0}, -- {0x417e4, 0x801c}, -- {0x417e5, 0xd0}, -- {0x417e6, 0x1}, -- {0x417e7, 0x10}, -- {0x417e8, 0x8060}, -- {0x417e9, 0x84}, -- {0x417ea, 0x0}, -- {0x417eb, 0x10}, -- {0x417ec, 0x0}, -- {0x417ed, 0x0}, -- {0x417ee, 0x0}, -- {0x417ef, 0x0}, -- {0x417f0, 0x0}, -- {0x417f1, 0x0}, -- {0x417f2, 0x0}, -- {0x417f3, 0x7b00}, -- {0x417f4, 0x0}, -- {0x417f5, 0x0}, -- {0x417f6, 0x0}, -- {0x417f7, 0x0}, -- {0x417f8, 0x807c}, -- {0x417f9, 0x0}, -- {0x417fa, 0x0}, -- {0x417fb, 0x10}, -- {0x417fc, 0x0}, -- {0x417fd, 0x0}, -- {0x417fe, 0x0}, -- {0x417ff, 0x0}, -- {0x41800, 0x0}, -- {0x41801, 0x0}, -- {0x41802, 0x0}, -- {0x41803, 0x0}, -- {0x41804, 0x8000}, -- {0x41805, 0x0}, -- {0x41806, 0x1}, -- {0x41807, 0x10}, -- {0x41808, 0x0}, -- {0x41809, 0x0}, -- {0x4180a, 0x0}, -- {0x4180b, 0x0}, -- {0x4180c, 0x802c}, -- {0x4180d, 0xd00}, -- {0x4180e, 0x1}, -- {0x4180f, 0x10}, -- {0x41810, 0x8020}, -- {0x41811, 0x803}, -- {0x41812, 0x0}, -- {0x41813, 0x10}, -- {0x41814, 0x0}, -- {0x41815, 0x0}, -- {0x41816, 0x0}, -- {0x41817, 0x0}, -- {0x41818, 0x0}, -- {0x41819, 0x0}, -- {0x4181a, 0x0}, -- {0x4181b, 0x2b00}, -- {0x4181c, 0x0}, -- {0x4181d, 0x0}, -- {0x4181e, 0x0}, -- {0x4181f, 0x800}, -- {0x41820, 0x0}, -- {0x41821, 0x0}, -- {0x41822, 0x0}, -- {0x41823, 0x0}, -- {0x41824, 0x807c}, -- {0x41825, 0x0}, -- {0x41826, 0x0}, -- {0x41827, 0x10}, -- {0x41828, 0x0}, -- {0x41829, 0x0}, -- {0x4182a, 0x0}, -- {0x4182b, 0x0}, -- {0x4182c, 0x0}, -- {0x4182d, 0x0}, -- {0x4182e, 0x0}, -- {0x4182f, 0x0}, -- {0x41830, 0x8000}, -- {0x41831, 0x0}, -- {0x41832, 0x1}, -- {0x41833, 0x10}, -- {0x41834, 0x0}, -- {0x41835, 0x0}, -- {0x41836, 0x0}, -- {0x41837, 0x0}, -- {0x41838, 0x9758}, -- {0x41839, 0x0}, -- {0x4183a, 0x0}, -- {0x4183b, 0x10}, -- {0x4183c, 0x8008}, -- {0x4183d, 0x0}, -- {0x4183e, 0x0}, -- {0x4183f, 0x10}, -- {0x41840, 0x0}, -- {0x41841, 0x0}, -- {0x41842, 0x0}, -- {0x41843, 0x0}, -- {0x41844, 0x0}, -- {0x41845, 0x0}, -- {0x41846, 0x0}, -- {0x41847, 0x0}, -- {0x41848, 0xc068}, -- {0x41849, 0x0}, -- {0x4184a, 0x0}, -- {0x4184b, 0x10}, -- {0x4184c, 0x0}, -- {0x4184d, 0x0}, -- {0x4184e, 0x0}, -- {0x4184f, 0x0}, -- {0x41850, 0xd2d8}, -- {0x41851, 0x0}, -- {0x41852, 0x0}, -- {0x41853, 0x10}, -- {0x41854, 0xe008}, -- {0x41855, 0x0}, -- {0x41856, 0x0}, -- {0x41857, 0x10}, -- {0x41858, 0x0}, -- {0x41859, 0x0}, -- {0x4185a, 0x0}, -- {0x4185b, 0x5b00}, -- {0x4185c, 0x0}, -- {0x4185d, 0x0}, -- {0x4185e, 0x0}, -- {0x4185f, 0x0}, -- {0x41860, 0xc0f0}, -- {0x41861, 0x0}, -- {0x41862, 0x0}, -- {0x41863, 0x10}, -- {0x41864, 0x0}, -- {0x41865, 0x0}, -- {0x41866, 0x0}, -- {0x41867, 0x0}, -- {0x41868, 0xcfd8}, -- {0x41869, 0x0}, -- {0x4186a, 0x0}, -- {0x4186b, 0x10}, -- {0x4186c, 0xc008}, -- {0x4186d, 0x0}, -- {0x4186e, 0x0}, -- {0x4186f, 0x10}, -- {0x41870, 0x0}, -- {0x41871, 0x0}, -- {0x41872, 0x0}, -- {0x41873, 0x2b00}, -- {0x41874, 0x0}, -- {0x41875, 0x0}, -- {0x41876, 0x0}, -- {0x41877, 0x0}, -- {0x41878, 0xd058}, -- {0x41879, 0x0}, -- {0x4187a, 0x0}, -- {0x4187b, 0x10}, -- {0x4187c, 0xc008}, -- {0x4187d, 0x0}, -- {0x4187e, 0x0}, -- {0x4187f, 0x10}, -- {0x41880, 0x0}, -- {0x41881, 0x0}, -- {0x41882, 0x0}, -- {0x41883, 0x2b00}, -- {0x41884, 0x0}, -- {0x41885, 0x0}, -- {0x41886, 0x0}, -- {0x41887, 0x0}, -- {0x41888, 0xd0d8}, -- {0x41889, 0x0}, -- {0x4188a, 0x0}, -- {0x4188b, 0x10}, -- {0x4188c, 0xc088}, -- {0x4188d, 0x0}, -- {0x4188e, 0x0}, -- {0x4188f, 0x10}, -- {0x41890, 0x0}, -- {0x41891, 0x0}, -- {0x41892, 0x0}, -- {0x41893, 0x2b00}, -- {0x41894, 0x0}, -- {0x41895, 0x0}, -- {0x41896, 0x0}, -- {0x41897, 0x0}, -- {0x41898, 0xd158}, -- {0x41899, 0x0}, -- {0x4189a, 0x0}, -- {0x4189b, 0x10}, -- {0x4189c, 0xc008}, -- {0x4189d, 0x0}, -- {0x4189e, 0x0}, -- {0x4189f, 0x10}, -- {0x418a0, 0x0}, -- {0x418a1, 0x0}, -- {0x418a2, 0x0}, -- {0x418a3, 0x5b00}, -- {0x418a4, 0x0}, -- {0x418a5, 0x0}, -- {0x418a6, 0x0}, -- {0x418a7, 0x0}, -- {0x418a8, 0x402c}, -- {0x418a9, 0xd00}, -- {0x418aa, 0x1}, -- {0x418ab, 0x400}, -- {0x418ac, 0x4050}, -- {0x418ad, 0x800}, -- {0x418ae, 0x0}, -- {0x418af, 0x0}, -- {0x418b0, 0x0}, -- {0x418b1, 0x0}, -- {0x418b2, 0x0}, -- {0x418b3, 0x400}, -- {0x418b4, 0x4050}, -- {0x418b5, 0x803}, -- {0x418b6, 0x0}, -- {0x418b7, 0x0}, -- {0x418b8, 0x0}, -- {0x418b9, 0x0}, -- {0x418ba, 0x0}, -- {0x418bb, 0x6f00}, -- {0x418bc, 0x0}, -- {0x418bd, 0x0}, -- {0x418be, 0x0}, -- {0x418bf, 0x400}, -- {0x418c0, 0x407c}, -- {0x418c1, 0x0}, -- {0x418c2, 0x0}, -- {0x418c3, 0x400}, -- {0x418c4, 0x0}, -- {0x418c5, 0x0}, -- {0x418c6, 0x0}, -- {0x418c7, 0x0}, -- {0x418c8, 0x0}, -- {0x418c9, 0x0}, -- {0x418ca, 0x0}, -- {0x418cb, 0x400}, -- {0x418cc, 0x0}, -- {0x418cd, 0x0}, -- {0x418ce, 0x1}, -- {0x418cf, 0x0}, -- {0x418d0, 0x0}, -- {0x418d1, 0x0}, -- {0x418d2, 0x0}, -- {0x418d3, 0x400}, -- {0x418d4, 0x0}, -- {0x418d5, 0x0}, -- {0x418d6, 0x0}, -- {0x418d7, 0x0}, -- {0x418d8, 0x0}, -- {0x418d9, 0x0}, -- {0x418da, 0x0}, -- {0x418db, 0x0}, -- {0x418dc, 0x0}, -- {0x418dd, 0x0}, -- {0x418de, 0x0}, -- {0x418df, 0x0}, -- {0x418e0, 0x802c}, -- {0x418e1, 0xd00}, -- {0x418e2, 0x1}, -- {0x418e3, 0x410}, -- {0x418e4, 0x8050}, -- {0x418e5, 0x800}, -- {0x418e6, 0x0}, -- {0x418e7, 0x10}, -- {0x418e8, 0x0}, -- {0x418e9, 0x0}, -- {0x418ea, 0x0}, -- {0x418eb, 0x400}, -- {0x418ec, 0x8050}, -- {0x418ed, 0x803}, -- {0x418ee, 0x0}, -- {0x418ef, 0x10}, -- {0x418f0, 0x0}, -- {0x418f1, 0x0}, -- {0x418f2, 0x0}, -- {0x418f3, 0x6f00}, -- {0x418f4, 0x0}, -- {0x418f5, 0x0}, -- {0x418f6, 0x0}, -- {0x418f7, 0x400}, -- {0x418f8, 0x807c}, -- {0x418f9, 0x0}, -- {0x418fa, 0x0}, -- {0x418fb, 0x410}, -- {0x418fc, 0x0}, -- {0x418fd, 0x0}, -- {0x418fe, 0x0}, -- {0x418ff, 0x0}, -- {0x41900, 0x0}, -- {0x41901, 0x0}, -- {0x41902, 0x0}, -- {0x41903, 0x400}, -- {0x41904, 0x0}, -- {0x41905, 0x0}, -- {0x41906, 0x1}, -- {0x41907, 0x0}, -- {0x41908, 0x0}, -- {0x41909, 0x0}, -- {0x4190a, 0x0}, -- {0x4190b, 0x400}, -- {0x4190c, 0x0}, -- {0x4190d, 0x0}, -- {0x4190e, 0x0}, -- {0x4190f, 0x0}, -- {0x41910, 0x0}, -- {0x41911, 0x0}, -- {0x41912, 0x0}, -- {0x41913, 0x0}, -- {0x41914, 0x0}, -- {0x41915, 0x0}, -- {0x41916, 0x0}, -- {0x41917, 0x0}, -- {0x41918, 0x402c}, -- {0x41919, 0xd00}, -- {0x4191a, 0x1}, -- {0x4191b, 0x0}, -- {0x4191c, 0x4050}, -- {0x4191d, 0x800}, -- {0x4191e, 0x0}, -- {0x4191f, 0x0}, -- {0x41920, 0x0}, -- {0x41921, 0x0}, -- {0x41922, 0x0}, -- {0x41923, 0x0}, -- {0x41924, 0x4050}, -- {0x41925, 0x803}, -- {0x41926, 0x0}, -- {0x41927, 0x0}, -- {0x41928, 0x0}, -- {0x41929, 0x0}, -- {0x4192a, 0x0}, -- {0x4192b, 0x0}, -- {0x4192c, 0x4050}, -- {0x4192d, 0x800}, -- {0x4192e, 0x0}, -- {0x4192f, 0x0}, -- {0x41930, 0x0}, -- {0x41931, 0x0}, -- {0x41932, 0x0}, -- {0x41933, 0x4b00}, -- {0x41934, 0x0}, -- {0x41935, 0x0}, -- {0x41936, 0x0}, -- {0x41937, 0x400}, -- {0x41938, 0x0}, -- {0x41939, 0x0}, -- {0x4193a, 0x0}, -- {0x4193b, 0x0}, -- {0x4193c, 0x407c}, -- {0x4193d, 0x0}, -- {0x4193e, 0x0}, -- {0x4193f, 0x0}, -- {0x41940, 0x0}, -- {0x41941, 0x0}, -- {0x41942, 0x0}, -- {0x41943, 0x0}, -- {0x41944, 0x0}, -- {0x41945, 0x0}, -- {0x41946, 0x0}, -- {0x41947, 0x0}, -- {0x41948, 0x0}, -- {0x41949, 0x0}, -- {0x4194a, 0x1}, -- {0x4194b, 0x0}, -- {0x4194c, 0x0}, -- {0x4194d, 0x0}, -- {0x4194e, 0x0}, -- {0x4194f, 0x0}, -- {0x41950, 0x0}, -- {0x41951, 0x0}, -- {0x41952, 0x0}, -- {0x41953, 0x4b00}, -- {0x41954, 0x0}, -- {0x41955, 0x0}, -- {0x41956, 0x0}, -- {0x41957, 0x1800}, -- {0x41958, 0x0}, -- {0x41959, 0x0}, -- {0x4195a, 0x0}, -- {0x4195b, 0x0}, -- {0x4195c, 0x802c}, -- {0x4195d, 0xd00}, -- {0x4195e, 0x1}, -- {0x4195f, 0x10}, -- {0x41960, 0x8050}, -- {0x41961, 0x800}, -- {0x41962, 0x0}, -- {0x41963, 0x10}, -- {0x41964, 0x0}, -- {0x41965, 0x0}, -- {0x41966, 0x0}, -- {0x41967, 0x0}, -- {0x41968, 0x8050}, -- {0x41969, 0x803}, -- {0x4196a, 0x0}, -- {0x4196b, 0x10}, -- {0x4196c, 0x0}, -- {0x4196d, 0x0}, -- {0x4196e, 0x0}, -- {0x4196f, 0x0}, -- {0x41970, 0x8050}, -- {0x41971, 0x800}, -- {0x41972, 0x0}, -- {0x41973, 0x10}, -- {0x41974, 0x0}, -- {0x41975, 0x0}, -- {0x41976, 0x0}, -- {0x41977, 0x0}, -- {0x41978, 0x0}, -- {0x41979, 0x0}, -- {0x4197a, 0x0}, -- {0x4197b, 0x4b00}, -- {0x4197c, 0x0}, -- {0x4197d, 0x0}, -- {0x4197e, 0x0}, -- {0x4197f, 0x400}, -- {0x41980, 0x807c}, -- {0x41981, 0x0}, -- {0x41982, 0x0}, -- {0x41983, 0x10}, -- {0x41984, 0x0}, -- {0x41985, 0x0}, -- {0x41986, 0x0}, -- {0x41987, 0x0}, -- {0x41988, 0x0}, -- {0x41989, 0x0}, -- {0x4198a, 0x0}, -- {0x4198b, 0x0}, -- {0x4198c, 0x0}, -- {0x4198d, 0x0}, -- {0x4198e, 0x1}, -- {0x4198f, 0x0}, -- {0x41990, 0x0}, -- {0x41991, 0x0}, -- {0x41992, 0x0}, -- {0x41993, 0x5b00}, -- {0x41994, 0x0}, -- {0x41995, 0x0}, -- {0x41996, 0x0}, -- {0x41997, 0x2000}, -- {0x41998, 0x402c}, -- {0x41999, 0xd00}, -- {0x4199a, 0x1}, -- {0x4199b, 0x0}, -- {0x4199c, 0x5198}, -- {0x4199d, 0x803}, -- {0x4199e, 0x0}, -- {0x4199f, 0x0}, -- {0x419a0, 0x0}, -- {0x419a1, 0x0}, -- {0x419a2, 0x0}, -- {0x419a3, 0x1b00}, -- {0x419a4, 0x0}, -- {0x419a5, 0x0}, -- {0x419a6, 0x0}, -- {0x419a7, 0x0}, -- {0x419a8, 0x5218}, -- {0x419a9, 0x803}, -- {0x419aa, 0x0}, -- {0x419ab, 0x0}, -- {0x419ac, 0x0}, -- {0x419ad, 0x0}, -- {0x419ae, 0x0}, -- {0x419af, 0x0}, -- {0x419b0, 0x0}, -- {0x419b1, 0x0}, -- {0x419b2, 0x0}, -- {0x419b3, 0x4b00}, -- {0x419b4, 0x0}, -- {0x419b5, 0x0}, -- {0x419b6, 0x0}, -- {0x419b7, 0x400}, -- {0x419b8, 0x407c}, -- {0x419b9, 0x0}, -- {0x419ba, 0x0}, -- {0x419bb, 0x0}, -- {0x419bc, 0x0}, -- {0x419bd, 0x0}, -- {0x419be, 0x0}, -- {0x419bf, 0x0}, -- {0x419c0, 0x0}, -- {0x419c1, 0x0}, -- {0x419c2, 0x0}, -- {0x419c3, 0x0}, -- {0x419c4, 0x0}, -- {0x419c5, 0x0}, -- {0x419c6, 0x1}, -- {0x419c7, 0x0}, -- {0x419c8, 0x0}, -- {0x419c9, 0x0}, -- {0x419ca, 0x0}, -- {0x419cb, 0x1b00}, -- {0x419cc, 0x0}, -- {0x419cd, 0x0}, -- {0x419ce, 0x0}, -- {0x419cf, 0x0}, -- {0x419d0, 0x0}, -- {0x419d1, 0x0}, -- {0x419d2, 0x0}, -- {0x419d3, 0x0}, -- {0x419d4, 0x802c}, -- {0x419d5, 0xd00}, -- {0x419d6, 0x1}, -- {0x419d7, 0x10}, -- {0x419d8, 0x9198}, -- {0x419d9, 0x803}, -- {0x419da, 0x0}, -- {0x419db, 0x10}, -- {0x419dc, 0x0}, -- {0x419dd, 0x0}, -- {0x419de, 0x0}, -- {0x419df, 0x0}, -- {0x419e0, 0x0}, -- {0x419e1, 0x0}, -- {0x419e2, 0x0}, -- {0x419e3, 0x0}, -- {0x419e4, 0x0}, -- {0x419e5, 0x0}, -- {0x419e6, 0x0}, -- {0x419e7, 0x0}, -- {0x419e8, 0x0}, -- {0x419e9, 0x0}, -- {0x419ea, 0x0}, -- {0x419eb, 0x0}, -- {0x419ec, 0x9218}, -- {0x419ed, 0x803}, -- {0x419ee, 0x0}, -- {0x419ef, 0x10}, -- {0x419f0, 0x0}, -- {0x419f1, 0x0}, -- {0x419f2, 0x0}, -- {0x419f3, 0x4b00}, -- {0x419f4, 0x0}, -- {0x419f5, 0x0}, -- {0x419f6, 0x0}, -- {0x419f7, 0x400}, -- {0x419f8, 0x0}, -- {0x419f9, 0x0}, -- {0x419fa, 0x0}, -- {0x419fb, 0x0}, -- {0x419fc, 0x807c}, -- {0x419fd, 0x0}, -- {0x419fe, 0x0}, -- {0x419ff, 0x10}, -- {0x41a00, 0x0}, -- {0x41a01, 0x0}, -- {0x41a02, 0x0}, -- {0x41a03, 0x0}, -- {0x41a04, 0x0}, -- {0x41a05, 0x0}, -- {0x41a06, 0x0}, -- {0x41a07, 0x0}, -- {0x41a08, 0x0}, -- {0x41a09, 0x0}, -- {0x41a0a, 0x1}, -- {0x41a0b, 0x0}, -- {0x41a0c, 0x0}, -- {0x41a0d, 0x0}, -- {0x41a0e, 0x0}, -- {0x41a0f, 0x0}, -- {0x41a10, 0x0}, -- {0x41a11, 0x0}, -- {0x41a12, 0x0}, -- {0x41a13, 0xb00}, -- {0x41a14, 0x0}, -- {0x41a15, 0x0}, -- {0x41a16, 0x0}, -- {0x41a17, 0x400}, -- {0x41a18, 0x0}, -- {0x41a19, 0x0}, -- {0x41a1a, 0x0}, -- {0x41a1b, 0x0}, -- {0x41a1c, 0x0}, -- {0x41a1d, 0x0}, -- {0x41a1e, 0x0}, -- {0x41a1f, 0x0}, -- {0x41a20, 0x401c}, -- {0x41a21, 0xd0}, -- {0x41a22, 0x1}, -- {0x41a23, 0x0}, -- {0x41a24, 0x4060}, -- {0x41a25, 0x84}, -- {0x41a26, 0x0}, -- {0x41a27, 0x0}, -- {0x41a28, 0x0}, -- {0x41a29, 0x0}, -- {0x41a2a, 0x0}, -- {0x41a2b, 0xb00}, -- {0x41a2c, 0x0}, -- {0x41a2d, 0x0}, -- {0x41a2e, 0x0}, -- {0x41a2f, 0x800}, -- {0x41a30, 0x407c}, -- {0x41a31, 0x0}, -- {0x41a32, 0x0}, -- {0x41a33, 0x0}, -- {0x41a34, 0x0}, -- {0x41a35, 0x0}, -- {0x41a36, 0x0}, -- {0x41a37, 0x0}, -- {0x41a38, 0x0}, -- {0x41a39, 0x0}, -- {0x41a3a, 0x0}, -- {0x41a3b, 0x0}, -- {0x41a3c, 0x4000}, -- {0x41a3d, 0x0}, -- {0x41a3e, 0x1}, -- {0x41a3f, 0x0}, -- {0x41a40, 0x0}, -- {0x41a41, 0x0}, -- {0x41a42, 0x0}, -- {0x41a43, 0x0}, -- {0x41a44, 0x402c}, -- {0x41a45, 0xd00}, -- {0x41a46, 0x1}, -- {0x41a47, 0x0}, -- {0x41a48, 0x4020}, -- {0x41a49, 0x803}, -- {0x41a4a, 0x0}, -- {0x41a4b, 0x0}, -- {0x41a4c, 0x0}, -- {0x41a4d, 0x0}, -- {0x41a4e, 0x0}, -- {0x41a4f, 0x0}, -- {0x41a50, 0x0}, -- {0x41a51, 0x0}, -- {0x41a52, 0x0}, -- {0x41a53, 0x2b00}, -- {0x41a54, 0x0}, -- {0x41a55, 0x0}, -- {0x41a56, 0x0}, -- {0x41a57, 0x800}, -- {0x41a58, 0x0}, -- {0x41a59, 0x0}, -- {0x41a5a, 0x0}, -- {0x41a5b, 0x0}, -- {0x41a5c, 0x407c}, -- {0x41a5d, 0x0}, -- {0x41a5e, 0x0}, -- {0x41a5f, 0x0}, -- {0x41a60, 0x0}, -- {0x41a61, 0x0}, -- {0x41a62, 0x0}, -- {0x41a63, 0x0}, -- {0x41a64, 0x0}, -- {0x41a65, 0x0}, -- {0x41a66, 0x0}, -- {0x41a67, 0x0}, -- {0x41a68, 0x0}, -- {0x41a69, 0x0}, -- {0x41a6a, 0x1}, -- {0x41a6b, 0x0}, -- {0x41a6c, 0x0}, -- {0x41a6d, 0x0}, -- {0x41a6e, 0x0}, -- {0x41a6f, 0x0}, -- {0x41a70, 0x801c}, -- {0x41a71, 0xd0}, -- {0x41a72, 0x1}, -- {0x41a73, 0x10}, -- {0x41a74, 0x8060}, -- {0x41a75, 0x84}, -- {0x41a76, 0x0}, -- {0x41a77, 0x10}, -- {0x41a78, 0x0}, -- {0x41a79, 0x0}, -- {0x41a7a, 0x0}, -- {0x41a7b, 0xb00}, -- {0x41a7c, 0x0}, -- {0x41a7d, 0x0}, -- {0x41a7e, 0x0}, -- {0x41a7f, 0x800}, -- {0x41a80, 0x807c}, -- {0x41a81, 0x0}, -- {0x41a82, 0x0}, -- {0x41a83, 0x10}, -- {0x41a84, 0x0}, -- {0x41a85, 0x0}, -- {0x41a86, 0x0}, -- {0x41a87, 0x0}, -- {0x41a88, 0x0}, -- {0x41a89, 0x0}, -- {0x41a8a, 0x0}, -- {0x41a8b, 0x0}, -- {0x41a8c, 0x8000}, -- {0x41a8d, 0x0}, -- {0x41a8e, 0x1}, -- {0x41a8f, 0x10}, -- {0x41a90, 0x0}, -- {0x41a91, 0x0}, -- {0x41a92, 0x0}, -- {0x41a93, 0x0}, -- {0x41a94, 0x802c}, -- {0x41a95, 0xd00}, -- {0x41a96, 0x1}, -- {0x41a97, 0x10}, -- {0x41a98, 0x8020}, -- {0x41a99, 0x803}, -- {0x41a9a, 0x0}, -- {0x41a9b, 0x10}, -- {0x41a9c, 0x0}, -- {0x41a9d, 0x0}, -- {0x41a9e, 0x0}, -- {0x41a9f, 0x0}, -- {0x41aa0, 0x0}, -- {0x41aa1, 0x0}, -- {0x41aa2, 0x0}, -- {0x41aa3, 0x2b00}, -- {0x41aa4, 0x0}, -- {0x41aa5, 0x0}, -- {0x41aa6, 0x0}, -- {0x41aa7, 0x800}, -- {0x41aa8, 0x0}, -- {0x41aa9, 0x0}, -- {0x41aaa, 0x0}, -- {0x41aab, 0x0}, -- {0x41aac, 0x807c}, -- {0x41aad, 0x0}, -- {0x41aae, 0x0}, -- {0x41aaf, 0x10}, -- {0x41ab0, 0x0}, -- {0x41ab1, 0x0}, -- {0x41ab2, 0x0}, -- {0x41ab3, 0x0}, -- {0x41ab4, 0x0}, -- {0x41ab5, 0x0}, -- {0x41ab6, 0x0}, -- {0x41ab7, 0x0}, -- {0x41ab8, 0x0}, -- {0x41ab9, 0x0}, -- {0x41aba, 0x1}, -- {0x41abb, 0x0}, -- {0x41abc, 0x0}, -- {0x41abd, 0x0}, -- {0x41abe, 0x0}, -- {0x41abf, 0x0}, -- {0x41ac0, 0x402c}, -- {0x41ac1, 0xd00}, -- {0x41ac2, 0x1}, -- {0x41ac3, 0x0}, -- {0x41ac4, 0x4050}, -- {0x41ac5, 0x803}, -- {0x41ac6, 0x0}, -- {0x41ac7, 0x0}, -- {0x41ac8, 0x0}, -- {0x41ac9, 0x0}, -- {0x41aca, 0x0}, -- {0x41acb, 0x0}, -- {0x41acc, 0x0}, -- {0x41acd, 0x0}, -- {0x41ace, 0x0}, -- {0x41acf, 0x0}, -- {0x41ad0, 0x0}, -- {0x41ad1, 0x0}, -- {0x41ad2, 0x0}, -- {0x41ad3, 0x0}, -- {0x41ad4, 0x0}, -- {0x41ad5, 0x0}, -- {0x41ad6, 0x0}, -- {0x41ad7, 0x0}, -- {0x41ad8, 0x4050}, -- {0x41ad9, 0x803}, -- {0x41ada, 0x0}, -- {0x41adb, 0x5a00}, -- {0x41adc, 0x0}, -- {0x41add, 0x0}, -- {0x41ade, 0x0}, -- {0x41adf, 0x0}, -- {0x41ae0, 0x0}, -- {0x41ae1, 0x0}, -- {0x41ae2, 0x0}, -- {0x41ae3, 0x100}, -- {0x41ae4, 0x0}, -- {0x41ae5, 0x0}, -- {0x41ae6, 0x0}, -- {0x41ae7, 0x0}, -- {0x41ae8, 0x4050}, -- {0x41ae9, 0x803}, -- {0x41aea, 0x0}, -- {0x41aeb, 0x0}, -- {0x41aec, 0x0}, -- {0x41aed, 0x0}, -- {0x41aee, 0x0}, -- {0x41aef, 0x0}, -- {0x41af0, 0x0}, -- {0x41af1, 0x0}, -- {0x41af2, 0x0}, -- {0x41af3, 0x4b00}, -- {0x41af4, 0x0}, -- {0x41af5, 0x0}, -- {0x41af6, 0x0}, -- {0x41af7, 0x400}, -- {0x41af8, 0x407c}, -- {0x41af9, 0x0}, -- {0x41afa, 0x0}, -- {0x41afb, 0x0}, -- {0x41afc, 0x0}, -- {0x41afd, 0x0}, -- {0x41afe, 0x0}, -- {0x41aff, 0x0}, -- {0x41b00, 0x0}, -- {0x41b01, 0x0}, -- {0x41b02, 0x0}, -- {0x41b03, 0x3b00}, -- {0x41b04, 0x0}, -- {0x41b05, 0x0}, -- {0x41b06, 0x0}, -- {0x41b07, 0x0}, -- {0x41b08, 0x0}, -- {0x41b09, 0x0}, -- {0x41b0a, 0x0}, -- {0x41b0b, 0x0}, -- {0x41b0c, 0x0}, -- {0x41b0d, 0x0}, -- {0x41b0e, 0x1}, -- {0x41b0f, 0x0}, -- {0x41b10, 0x5758}, -- {0x41b11, 0x0}, -- {0x41b12, 0x0}, -- {0x41b13, 0x0}, -- {0x41b14, 0x4208}, -- {0x41b15, 0x0}, -- {0x41b16, 0x0}, -- {0x41b17, 0x0}, -- {0x41b18, 0x0}, -- {0x41b19, 0x0}, -- {0x41b1a, 0x0}, -- {0x41b1b, 0x4b00}, -- {0x41b1c, 0x0}, -- {0x41b1d, 0x0}, -- {0x41b1e, 0x0}, -- {0x41b1f, 0x0}, -- {0x41b20, 0x0}, -- {0x41b21, 0x0}, -- {0x41b22, 0x0}, -- {0x41b23, 0x0}, -- {0x41b24, 0x401c}, -- {0x41b25, 0xd0}, -- {0x41b26, 0x1}, -- {0x41b27, 0x0}, -- {0x41b28, 0x4060}, -- {0x41b29, 0x84}, -- {0x41b2a, 0x0}, -- {0x41b2b, 0x0}, -- {0x41b2c, 0x0}, -- {0x41b2d, 0x0}, -- {0x41b2e, 0x0}, -- {0x41b2f, 0x0}, -- {0x41b30, 0x0}, -- {0x41b31, 0x0}, -- {0x41b32, 0x0}, -- {0x41b33, 0x7b00}, -- {0x41b34, 0x0}, -- {0x41b35, 0x0}, -- {0x41b36, 0x0}, -- {0x41b37, 0x0}, -- {0x41b38, 0x407c}, -- {0x41b39, 0x0}, -- {0x41b3a, 0x0}, -- {0x41b3b, 0x0}, -- {0x41b3c, 0x0}, -- {0x41b3d, 0x0}, -- {0x41b3e, 0x0}, -- {0x41b3f, 0x0}, -- {0x41b40, 0x0}, -- {0x41b41, 0x0}, -- {0x41b42, 0x0}, -- {0x41b43, 0x0}, -- {0x41b44, 0x4000}, -- {0x41b45, 0x0}, -- {0x41b46, 0x1}, -- {0x41b47, 0x0}, -- {0x41b48, 0x0}, -- {0x41b49, 0x0}, -- {0x41b4a, 0x0}, -- {0x41b4b, 0x0}, -- {0x41b4c, 0x402c}, -- {0x41b4d, 0xd00}, -- {0x41b4e, 0x1}, -- {0x41b4f, 0x0}, -- {0x41b50, 0x4020}, -- {0x41b51, 0x803}, -- {0x41b52, 0x0}, -- {0x41b53, 0x0}, -- {0x41b54, 0x0}, -- {0x41b55, 0x0}, -- {0x41b56, 0x0}, -- {0x41b57, 0x0}, -- {0x41b58, 0x0}, -- {0x41b59, 0x0}, -- {0x41b5a, 0x0}, -- {0x41b5b, 0x2b00}, -- {0x41b5c, 0x0}, -- {0x41b5d, 0x0}, -- {0x41b5e, 0x0}, -- {0x41b5f, 0x800}, -- {0x41b60, 0x0}, -- {0x41b61, 0x0}, -- {0x41b62, 0x0}, -- {0x41b63, 0x0}, -- {0x41b64, 0x407c}, -- {0x41b65, 0x0}, -- {0x41b66, 0x0}, -- {0x41b67, 0x0}, -- {0x41b68, 0x0}, -- {0x41b69, 0x0}, -- {0x41b6a, 0x0}, -- {0x41b6b, 0x0}, -- {0x41b6c, 0x0}, -- {0x41b6d, 0x0}, -- {0x41b6e, 0x0}, -- {0x41b6f, 0x0}, -- {0x41b70, 0x4000}, -- {0x41b71, 0x0}, -- {0x41b72, 0x1}, -- {0x41b73, 0x0}, -- {0x41b74, 0x0}, -- {0x41b75, 0x0}, -- {0x41b76, 0x0}, -- {0x41b77, 0x0}, -- {0x41b78, 0x5758}, -- {0x41b79, 0x0}, -- {0x41b7a, 0x0}, -- {0x41b7b, 0x0}, -- {0x41b7c, 0x4008}, -- {0x41b7d, 0x0}, -- {0x41b7e, 0x0}, -- {0x41b7f, 0x0}, -- {0x41b80, 0x0}, -- {0x41b81, 0x0}, -- {0x41b82, 0x0}, -- {0x41b83, 0x0}, -- {0x41b84, 0x0}, -- {0x41b85, 0x0}, -- {0x41b86, 0x0}, -- {0x41b87, 0x0}, -- {0x41b88, 0x802c}, -- {0x41b89, 0xd00}, -- {0x41b8a, 0x1}, -- {0x41b8b, 0x10}, -- {0x41b8c, 0x8050}, -- {0x41b8d, 0x803}, -- {0x41b8e, 0x0}, -- {0x41b8f, 0x10}, -- {0x41b90, 0x0}, -- {0x41b91, 0x0}, -- {0x41b92, 0x0}, -- {0x41b93, 0x0}, -- {0x41b94, 0x0}, -- {0x41b95, 0x0}, -- {0x41b96, 0x0}, -- {0x41b97, 0x0}, -- {0x41b98, 0x0}, -- {0x41b99, 0x0}, -- {0x41b9a, 0x0}, -- {0x41b9b, 0x0}, -- {0x41b9c, 0x0}, -- {0x41b9d, 0x0}, -- {0x41b9e, 0x0}, -- {0x41b9f, 0x0}, -- {0x41ba0, 0x8050}, -- {0x41ba1, 0x803}, -- {0x41ba2, 0x0}, -- {0x41ba3, 0x5a10}, -- {0x41ba4, 0x0}, -- {0x41ba5, 0x0}, -- {0x41ba6, 0x0}, -- {0x41ba7, 0x0}, -- {0x41ba8, 0x0}, -- {0x41ba9, 0x0}, -- {0x41baa, 0x0}, -- {0x41bab, 0x100}, -- {0x41bac, 0x0}, -- {0x41bad, 0x0}, -- {0x41bae, 0x0}, -- {0x41baf, 0x0}, -- {0x41bb0, 0x8050}, -- {0x41bb1, 0x803}, -- {0x41bb2, 0x0}, -- {0x41bb3, 0x10}, -- {0x41bb4, 0x0}, -- {0x41bb5, 0x0}, -- {0x41bb6, 0x0}, -- {0x41bb7, 0x0}, -- {0x41bb8, 0x0}, -- {0x41bb9, 0x0}, -- {0x41bba, 0x0}, -- {0x41bbb, 0x4b00}, -- {0x41bbc, 0x0}, -- {0x41bbd, 0x0}, -- {0x41bbe, 0x0}, -- {0x41bbf, 0x400}, -- {0x41bc0, 0x807c}, -- {0x41bc1, 0x0}, -- {0x41bc2, 0x0}, -- {0x41bc3, 0x10}, -- {0x41bc4, 0x0}, -- {0x41bc5, 0x0}, -- {0x41bc6, 0x0}, -- {0x41bc7, 0x0}, -- {0x41bc8, 0x0}, -- {0x41bc9, 0x0}, -- {0x41bca, 0x0}, -- {0x41bcb, 0x3b00}, -- {0x41bcc, 0x0}, -- {0x41bcd, 0x0}, -- {0x41bce, 0x0}, -- {0x41bcf, 0x0}, -- {0x41bd0, 0x0}, -- {0x41bd1, 0x0}, -- {0x41bd2, 0x0}, -- {0x41bd3, 0x0}, -- {0x41bd4, 0x0}, -- {0x41bd5, 0x0}, -- {0x41bd6, 0x1}, -- {0x41bd7, 0x0}, -- {0x41bd8, 0x9758}, -- {0x41bd9, 0x0}, -- {0x41bda, 0x0}, -- {0x41bdb, 0x10}, -- {0x41bdc, 0x8208}, -- {0x41bdd, 0x0}, -- {0x41bde, 0x0}, -- {0x41bdf, 0x10}, -- {0x41be0, 0x0}, -- {0x41be1, 0x0}, -- {0x41be2, 0x0}, -- {0x41be3, 0x4b00}, -- {0x41be4, 0x0}, -- {0x41be5, 0x0}, -- {0x41be6, 0x0}, -- {0x41be7, 0x0}, -- {0x41be8, 0x0}, -- {0x41be9, 0x0}, -- {0x41bea, 0x0}, -- {0x41beb, 0x0}, -- {0x41bec, 0x801c}, -- {0x41bed, 0xd0}, -- {0x41bee, 0x1}, -- {0x41bef, 0x10}, -- {0x41bf0, 0x8060}, -- {0x41bf1, 0x84}, -- {0x41bf2, 0x0}, -- {0x41bf3, 0x10}, -- {0x41bf4, 0x0}, -- {0x41bf5, 0x0}, -- {0x41bf6, 0x0}, -- {0x41bf7, 0x0}, -- {0x41bf8, 0x0}, -- {0x41bf9, 0x0}, -- {0x41bfa, 0x0}, -- {0x41bfb, 0x7b00}, -- {0x41bfc, 0x0}, -- {0x41bfd, 0x0}, -- {0x41bfe, 0x0}, -- {0x41bff, 0x0}, -- {0x41c00, 0x807c}, -- {0x41c01, 0x0}, -- {0x41c02, 0x0}, -- {0x41c03, 0x10}, -- {0x41c04, 0x0}, -- {0x41c05, 0x0}, -- {0x41c06, 0x0}, -- {0x41c07, 0x0}, -- {0x41c08, 0x0}, -- {0x41c09, 0x0}, -- {0x41c0a, 0x0}, -- {0x41c0b, 0x0}, -- {0x41c0c, 0x8000}, -- {0x41c0d, 0x0}, -- {0x41c0e, 0x1}, -- {0x41c0f, 0x10}, -- {0x41c10, 0x0}, -- {0x41c11, 0x0}, -- {0x41c12, 0x0}, -- {0x41c13, 0x0}, -- {0x41c14, 0x802c}, -- {0x41c15, 0xd00}, -- {0x41c16, 0x1}, -- {0x41c17, 0x10}, -- {0x41c18, 0x8020}, -- {0x41c19, 0x803}, -- {0x41c1a, 0x0}, -- {0x41c1b, 0x10}, -- {0x41c1c, 0x0}, -- {0x41c1d, 0x0}, -- {0x41c1e, 0x0}, -- {0x41c1f, 0x0}, -- {0x41c20, 0x0}, -- {0x41c21, 0x0}, -- {0x41c22, 0x0}, -- {0x41c23, 0x2b00}, -- {0x41c24, 0x0}, -- {0x41c25, 0x0}, -- {0x41c26, 0x0}, -- {0x41c27, 0x800}, -- {0x41c28, 0x0}, -- {0x41c29, 0x0}, -- {0x41c2a, 0x0}, -- {0x41c2b, 0x0}, -- {0x41c2c, 0x807c}, -- {0x41c2d, 0x0}, -- {0x41c2e, 0x0}, -- {0x41c2f, 0x10}, -- {0x41c30, 0x0}, -- {0x41c31, 0x0}, -- {0x41c32, 0x0}, -- {0x41c33, 0x0}, -- {0x41c34, 0x0}, -- {0x41c35, 0x0}, -- {0x41c36, 0x0}, -- {0x41c37, 0x0}, -- {0x41c38, 0x8000}, -- {0x41c39, 0x0}, -- {0x41c3a, 0x1}, -- {0x41c3b, 0x10}, -- {0x41c3c, 0x0}, -- {0x41c3d, 0x0}, -- {0x41c3e, 0x0}, -- {0x41c3f, 0x0}, -- {0x41c40, 0x9758}, -- {0x41c41, 0x0}, -- {0x41c42, 0x0}, -- {0x41c43, 0x10}, -- {0x41c44, 0x8008}, -- {0x41c45, 0x0}, -- {0x41c46, 0x0}, -- {0x41c47, 0x10}, -- {0x41c48, 0x0}, -- {0x41c49, 0x0}, -- {0x41c4a, 0x0}, -- {0x41c4b, 0x0}, -- {0x41c4c, 0x0}, -- {0x41c4d, 0x0}, -- {0x41c4e, 0x0}, -- {0x41c4f, 0x0}, -- {0x41c50, 0xc068}, -- {0x41c51, 0x0}, -- {0x41c52, 0x0}, -- {0x41c53, 0x10}, -- {0x41c54, 0x0}, -- {0x41c55, 0x0}, -- {0x41c56, 0x0}, -- {0x41c57, 0x0}, -- {0x9002e, 0x10}, -- {0x9002f, 0x400}, -- {0x90030, 0x80e}, -- {0x90031, 0xb}, -- {0x90032, 0x480}, -- {0x90033, 0x809}, -- {0x90034, 0x9}, -- {0x90035, 0x308}, -- {0x90036, 0xc09}, -- {0x90037, 0x28}, -- {0x90038, 0x8160}, -- {0x90039, 0x87c}, -- {0x9003a, 0x98}, -- {0x9003b, 0x820}, -- {0x9003c, 0xc7e}, -- {0x9003d, 0x2}, -- {0x9003e, 0x1}, -- {0x9003f, 0x78}, -- {0x90040, 0xa}, -- {0x90041, 0x370}, -- {0x90042, 0x839}, -- {0x90043, 0x18}, -- {0x90044, 0x8160}, -- {0x90045, 0x83c}, -- {0x90046, 0x9}, -- {0x90047, 0x150}, -- {0x90048, 0x839}, -- {0x90049, 0x70}, -- {0x9004a, 0x392}, -- {0x9004b, 0x39}, -- {0x9004c, 0x78}, -- {0x9004d, 0x39a}, -- {0x9004e, 0x39}, -- {0x9004f, 0xe09}, -- {0x90050, 0x100}, -- {0x90051, 0x839}, -- {0x90052, 0x2}, -- {0x90053, 0x1}, -- {0x90054, 0x38}, -- {0x90055, 0x0}, -- {0x90056, 0x100}, -- {0x90057, 0x839}, -- {0x90058, 0x0}, -- {0x90059, 0x398}, -- {0x9005a, 0x839}, -- {0x9005b, 0xe19}, -- {0x9005c, 0x100}, -- {0x9005d, 0x839}, -- {0x9005e, 0x2}, -- {0x9005f, 0x1}, -- {0x90060, 0x38}, -- {0x90061, 0x0}, -- {0x90062, 0x100}, -- {0x90063, 0x839}, -- {0x90064, 0x0}, -- {0x90065, 0x390}, -- {0x90066, 0x839}, -- {0x90067, 0x78}, -- {0x90068, 0x39a}, -- {0x90069, 0x39}, -- {0x9006a, 0xe29}, -- {0x9006b, 0x100}, -- {0x9006c, 0x839}, -- {0x9006d, 0x2}, -- {0x9006e, 0x1}, -- {0x9006f, 0x38}, -- {0x90070, 0x0}, -- {0x90071, 0x100}, -- {0x90072, 0x839}, -- {0x90073, 0x70}, -- {0x90074, 0x392}, -- {0x90075, 0x39}, -- {0x90076, 0x0}, -- {0x90077, 0xf0}, -- {0x90078, 0x909}, -- {0x90079, 0x18}, -- {0x9007a, 0x8160}, -- {0x9007b, 0x8bc}, -- {0x9007c, 0x8}, -- {0x9007d, 0x13a}, -- {0x9007e, 0xb9}, -- {0x9007f, 0x24b}, -- {0x90080, 0x100}, -- {0x90081, 0x8b9}, -- {0x90082, 0x2}, -- {0x90083, 0x1}, -- {0x90084, 0xb8}, -- {0x90085, 0x0}, -- {0x90086, 0x100}, -- {0x90087, 0x8b9}, -- {0x90088, 0x20}, -- {0x90089, 0x4}, -- {0x9008a, 0xb8}, -- {0x9008b, 0x20}, -- {0x9008c, 0x4}, -- {0x9008d, 0xb8}, -- {0x9008e, 0x5}, -- {0x9008f, 0x0}, -- {0x90090, 0xb8}, -- {0x90091, 0x479}, -- {0x90092, 0xc7f8}, -- {0x90093, 0x8bc}, -- {0x90094, 0x0}, -- {0x90095, 0x0}, -- {0x90096, 0xb8}, -- {0x90097, 0x0}, -- {0x90098, 0xa8}, -- {0x90099, 0x8b9}, -- {0x9009a, 0x9}, -- {0x9009b, 0xc9c0}, -- {0x9009c, 0xcbc}, -- {0x9009d, 0x0}, -- {0x9009e, 0x0}, -- {0x9009f, 0xb8}, -- {0x900a0, 0x25b}, -- {0x900a1, 0x100}, -- {0x900a2, 0xcb9}, -- {0x900a3, 0x20}, -- {0x900a4, 0x4}, -- {0x900a5, 0xb8}, -- {0x900a6, 0x20}, -- {0x900a7, 0x4}, -- {0x900a8, 0xb8}, -- {0x900a9, 0x20}, -- {0x900aa, 0x4}, -- {0x900ab, 0xb8}, -- {0x900ac, 0x20}, -- {0x900ad, 0x4}, -- {0x900ae, 0xb8}, -- {0x900af, 0x10}, -- {0x900b0, 0x400}, -- {0x900b1, 0x89e}, -- {0x900b2, 0x8}, -- {0x900b3, 0x370}, -- {0x900b4, 0x839}, -- {0x900b5, 0x0}, -- {0x900b6, 0xf0}, -- {0x900b7, 0x909}, -- {0x900b8, 0x33b}, -- {0x900b9, 0x100}, -- {0x900ba, 0x8b9}, -- {0x900bb, 0x0}, -- {0x900bc, 0x100}, -- {0x900bd, 0x8b9}, -- {0x900be, 0x23b}, -- {0x900bf, 0x100}, -- {0x900c0, 0xc99}, -- {0x900c1, 0x2}, -- {0x900c2, 0x150}, -- {0x900c3, 0x839}, -- {0x900c4, 0x1800}, -- {0x900c5, 0x8660}, -- {0x900c6, 0x839}, -- {0x900c7, 0x0}, -- {0x900c8, 0x2a0}, -- {0x900c9, 0x809}, -- {0x900ca, 0x8}, -- {0x900cb, 0x1880}, -- {0x900cc, 0x839}, -- {0x900cd, 0x0}, -- {0x900ce, 0x82b0}, -- {0x900cf, 0x838}, -- {0x900d0, 0x18}, -- {0x900d1, 0xe0}, -- {0x900d2, 0x809}, -- {0x900d3, 0x0}, -- {0x900d4, 0xe0}, -- {0x900d5, 0x869}, -- {0x900d6, 0xf}, -- {0x900d7, 0x7c0}, -- {0x900d8, 0x839}, -- {0x900d9, 0xa}, -- {0x900da, 0x510}, -- {0x900db, 0x839}, -- {0x900dc, 0xa}, -- {0x900dd, 0x700}, -- {0x900de, 0x849}, -- {0x900df, 0xa}, -- {0x900e0, 0x700}, -- {0x900e1, 0x859}, -- {0x900e2, 0xa}, -- {0x900e3, 0x708}, -- {0x900e4, 0x859}, -- {0x900e5, 0x2}, -- {0x900e6, 0x708}, -- {0x900e7, 0x849}, -- {0x900e8, 0xff8}, -- {0x900e9, 0x8410}, -- {0x900ea, 0x839}, -- {0x900eb, 0x7ff8}, -- {0x900ec, 0x8498}, -- {0x900ed, 0x838}, -- {0x900ee, 0x10}, -- {0x900ef, 0x8160}, -- {0x900f0, 0x83c}, -- {0x900f1, 0x0}, -- {0x900f2, 0x7c8}, -- {0x900f3, 0x809}, -- {0x900f4, 0x0}, -- {0x900f5, 0x1}, -- {0x900f6, 0x8}, -- {0x900f7, 0x0}, -- {0x900f8, 0x45a}, -- {0x900f9, 0x89}, -- {0x900fa, 0x0}, -- {0x900fb, 0x8018}, -- {0x900fc, 0x808}, -- {0x900fd, 0x0}, -- {0x900fe, 0x8020}, -- {0x900ff, 0x808}, -- {0x90100, 0x479}, -- {0x90101, 0xc7f8}, -- {0x90102, 0x80c}, -- {0x90103, 0x0}, -- {0x90104, 0x0}, -- {0x90105, 0x8}, -- {0x90106, 0x0}, -- {0x90107, 0x8018}, -- {0x90108, 0x808}, -- {0x90109, 0x0}, -- {0x9010a, 0x8020}, -- {0x9010b, 0x808}, -- {0x9010c, 0x9}, -- {0x9010d, 0xc9c0}, -- {0x9010e, 0xc0c}, -- {0x9010f, 0x0}, -- {0x90110, 0xa8}, -- {0x90111, 0x8c9}, -- {0x90112, 0x29}, -- {0x90113, 0x8160}, -- {0x90114, 0x87c}, -- {0x90115, 0xb8}, -- {0x90116, 0x820}, -- {0x90117, 0xc7e}, -- {0x90118, 0x1}, -- {0x90119, 0x0}, -- {0x9011a, 0x78}, -- {0x9011b, 0x0}, -- {0x9011c, 0x1}, -- {0x9011d, 0x78}, -- {0x9011e, 0xd8}, -- {0x9011f, 0x820}, -- {0x90120, 0xc7e}, -- {0x90121, 0x1}, -- {0x90122, 0x0}, -- {0x90123, 0x78}, -- {0x90124, 0x0}, -- {0x90125, 0x1}, -- {0x90126, 0x78}, -- {0x90127, 0xf8}, -- {0x90128, 0x820}, -- {0x90129, 0xc7e}, -- {0x9012a, 0x1}, -- {0x9012b, 0x0}, -- {0x9012c, 0x78}, -- {0x9012d, 0x0}, -- {0x9012e, 0x1}, -- {0x9012f, 0x78}, -- {0x90130, 0x0}, -- {0x90131, 0x700}, -- {0x90132, 0x849}, -- {0x90133, 0x0}, -- {0x90134, 0x618}, -- {0x90135, 0x809}, -- {0x90136, 0x3ff8}, -- {0x90137, 0x84b8}, -- {0x90138, 0x808}, -- {0x90139, 0x0}, -- {0x9013a, 0x0}, -- {0x9013b, 0x8}, -- {0x9013c, 0x8}, -- {0x9013d, 0xc870}, -- {0x9013e, 0xc0c}, -- {0x9013f, 0x18}, -- {0x90140, 0x710}, -- {0x90141, 0x849}, -- {0x90142, 0x0}, -- {0x90143, 0x4}, -- {0x90144, 0x48}, -- {0x90145, 0x0}, -- {0x90146, 0x4}, -- {0x90147, 0x48}, -- {0x90148, 0x10}, -- {0x90149, 0x710}, -- {0x9014a, 0x849}, -- {0x9014b, 0x0}, -- {0x9014c, 0x4}, -- {0x9014d, 0x48}, -- {0x9014e, 0x0}, -- {0x9014f, 0x710}, -- {0x90150, 0x849}, -- {0x90151, 0x0}, -- {0x90152, 0x4}, -- {0x90153, 0x48}, -- {0x90154, 0x0}, -- {0x90155, 0x4}, -- {0x90156, 0x18}, -- {0x90157, 0x0}, -- {0x90158, 0x4}, -- {0x90159, 0x18}, -- {0x9015a, 0x0}, -- {0x9015b, 0x4}, -- {0x9015c, 0x18}, -- {0x9015d, 0x0}, -- {0x9015e, 0x8410}, -- {0x9015f, 0x809}, -- {0x90160, 0x0}, -- {0x90161, 0x8498}, -- {0x90162, 0x808}, -- {0x90163, 0x5}, -- {0x90164, 0x510}, -- {0x90165, 0x809}, -- {0x90166, 0x198}, -- {0x90167, 0x1000}, -- {0x90168, 0x809}, -- {0x90169, 0x9}, -- {0x9016a, 0x3c0}, -- {0x9016b, 0x809}, -- {0x9016c, 0x10}, -- {0x9016d, 0x510}, -- {0x9016e, 0x809}, -- {0x9016f, 0x0}, -- {0x90170, 0x3c0}, -- {0x90171, 0x809}, -- {0x90172, 0x18}, -- {0x90173, 0x4}, -- {0x90174, 0x8}, -- {0x90175, 0x2}, -- {0x90176, 0x510}, -- {0x90177, 0x809}, -- {0x90178, 0x2}, -- {0x90179, 0x1000}, -- {0x9017a, 0x809}, -- {0x9017b, 0x68}, -- {0x9017c, 0x801a}, -- {0x9017d, 0x8}, -- {0x9017e, 0x68}, -- {0x9017f, 0x8022}, -- {0x90180, 0x8}, -- {0x90181, 0x479}, -- {0x90182, 0xc7f8}, -- {0x90183, 0x80c}, -- {0x90184, 0x0}, -- {0x90185, 0x0}, -- {0x90186, 0x8}, -- {0x90187, 0x68}, -- {0x90188, 0x801a}, -- {0x90189, 0x8}, -- {0x9018a, 0x68}, -- {0x9018b, 0x8022}, -- {0x9018c, 0x8}, -- {0x9018d, 0x9}, -- {0x9018e, 0xc9c0}, -- {0x9018f, 0xc0c}, -- {0x90190, 0x0}, -- {0x90191, 0xc870}, -- {0x90192, 0xc0c}, -- {0x90193, 0x0}, -- {0x90194, 0x2a0}, -- {0x90195, 0x809}, -- {0x90196, 0x10}, -- {0x90197, 0x8160}, -- {0x90198, 0x89c}, -- {0x90199, 0x2}, -- {0x9019a, 0x7c8}, -- {0x9019b, 0x809}, -- {0x9019c, 0x0}, -- {0x9019d, 0x1}, -- {0x9019e, 0x8}, -- {0x9019f, 0x40}, -- {0x901a0, 0x1932}, -- {0x901a1, 0x129}, -- {0x901a2, 0xa}, -- {0x901a3, 0xc140}, -- {0x901a4, 0x80c}, -- {0x901a5, 0x98}, -- {0x901a6, 0x193a}, -- {0x901a7, 0x129}, -- {0x901a8, 0x90}, -- {0x901a9, 0x1932}, -- {0x901aa, 0x329}, -- {0x901ab, 0x90}, -- {0x901ac, 0x193a}, -- {0x901ad, 0x329}, -- {0x901ae, 0x88}, -- {0x901af, 0x1882}, -- {0x901b0, 0x9}, -- {0x901b1, 0x0}, -- {0x901b2, 0xc140}, -- {0x901b3, 0x80c}, -- {0x901b4, 0x10}, -- {0x901b5, 0x400}, -- {0x901b6, 0x80e}, -- {0x901b7, 0xb}, -- {0x901b8, 0x370}, -- {0x901b9, 0x809}, -- {0x901ba, 0x23b}, -- {0x901bb, 0x100}, -- {0x901bc, 0xcf9}, -- {0x901bd, 0x0}, -- {0x901be, 0x2a0}, -- {0x901bf, 0x809}, -- {0x901c0, 0x7800}, -- {0x901c1, 0x8660}, -- {0x901c2, 0x809}, -- {0x901c3, 0xd}, -- {0x901c4, 0x7c0}, -- {0x901c5, 0x809}, -- {0x901c6, 0x0}, -- {0x901c7, 0x82b0}, -- {0x901c8, 0x818}, -- {0x901c9, 0x0}, -- {0x901ca, 0x82b0}, -- {0x901cb, 0x868}, -- {0x901cc, 0x479}, -- {0x901cd, 0xc7f8}, -- {0x901ce, 0x91c}, -- {0x901cf, 0x0}, -- {0x901d0, 0x0}, -- {0x901d1, 0x118}, -- {0x901d2, 0x38}, -- {0x901d3, 0x80a2}, -- {0x901d4, 0x118}, -- {0x901d5, 0x9}, -- {0x901d6, 0xc9c0}, -- {0x901d7, 0xd1c}, -- {0x901d8, 0x0}, -- {0x901d9, 0x0}, -- {0x901da, 0x118}, -- {0x901db, 0x8}, -- {0x901dc, 0x508}, -- {0x901dd, 0x809}, -- {0x901de, 0x5}, -- {0x901df, 0x7c0}, -- {0x901e0, 0x809}, -- {0x901e1, 0x8}, -- {0x901e2, 0x82b0}, -- {0x901e3, 0x868}, -- {0x901e4, 0x8}, -- {0x901e5, 0x82b0}, -- {0x901e6, 0x818}, -- {0x901e7, 0x8}, -- {0x901e8, 0x82b0}, -- {0x901e9, 0x888}, -- {0x901ea, 0x10}, -- {0x901eb, 0x510}, -- {0x901ec, 0x809}, -- {0x901ed, 0x0}, -- {0x901ee, 0xa8}, -- {0x901ef, 0x8c9}, -- {0x901f0, 0x8}, -- {0x901f1, 0x1900}, -- {0x901f2, 0xc09}, -- {0x901f3, 0x0}, -- {0x901f4, 0x508}, -- {0x901f5, 0x809}, -- {0x901f6, 0x2}, -- {0x901f7, 0x7c8}, -- {0x901f8, 0x829}, -- {0x901f9, 0xa}, -- {0x901fa, 0x3c8}, -- {0x901fb, 0xc29}, -- {0x901fc, 0x199}, -- {0x901fd, 0x3d0}, -- {0x901fe, 0xc19}, -- {0x901ff, 0x3}, -- {0x90200, 0x0}, -- {0x90201, 0x18}, -- {0x90202, 0x38}, -- {0x90203, 0x4}, -- {0x90204, 0x18}, -- {0x90205, 0x199}, -- {0x90206, 0x3d0}, -- {0x90207, 0xc09}, -- {0x90208, 0x0}, -- {0x90209, 0x0}, -- {0x9020a, 0x8}, -- {0x9020b, 0x9}, -- {0x9020c, 0x150}, -- {0x9020d, 0x809}, -- {0x9020e, 0x9}, -- {0x9020f, 0xc800}, -- {0x90210, 0xc0c}, -- {0x90211, 0x18}, -- {0x90212, 0x8160}, -- {0x90213, 0x8cc}, -- {0x90214, 0x8}, -- {0x90215, 0x13a}, -- {0x90216, 0xc9}, -- {0x90217, 0x24b}, -- {0x90218, 0x100}, -- {0x90219, 0x8c9}, -- {0x9021a, 0x2}, -- {0x9021b, 0x1}, -- {0x9021c, 0xc8}, -- {0x9021d, 0x0}, -- {0x9021e, 0x100}, -- {0x9021f, 0x8c9}, -- {0x90220, 0x20}, -- {0x90221, 0x4}, -- {0x90222, 0xc8}, -- {0x90223, 0x20}, -- {0x90224, 0x4}, -- {0x90225, 0xc8}, -- {0x90226, 0x5}, -- {0x90227, 0x0}, -- {0x90228, 0xc8}, -- {0x90229, 0x479}, -- {0x9022a, 0xc7f8}, -- {0x9022b, 0x8cc}, -- {0x9022c, 0x0}, -- {0x9022d, 0x0}, -- {0x9022e, 0xc8}, -- {0x9022f, 0x30}, -- {0x90230, 0xaa}, -- {0x90231, 0xc9}, -- {0x90232, 0x9}, -- {0x90233, 0xc9c0}, -- {0x90234, 0xccc}, -- {0x90235, 0x0}, -- {0x90236, 0x0}, -- {0x90237, 0xc8}, -- {0x90238, 0x479}, -- {0x90239, 0xc7f8}, -- {0x9023a, 0x8bc}, -- {0x9023b, 0x0}, -- {0x9023c, 0x0}, -- {0x9023d, 0xb8}, -- {0x9023e, 0x30}, -- {0x9023f, 0xaa}, -- {0x90240, 0xb9}, -- {0x90241, 0x9}, -- {0x90242, 0xc9c0}, -- {0x90243, 0xcbc}, -- {0x90244, 0x0}, -- {0x90245, 0x0}, -- {0x90246, 0xb8}, -- {0x90247, 0x25b}, -- {0x90248, 0x100}, -- {0x90249, 0xcc9}, -- {0x9024a, 0x20}, -- {0x9024b, 0x4}, -- {0x9024c, 0xc8}, -- {0x9024d, 0x20}, -- {0x9024e, 0x4}, -- {0x9024f, 0xc8}, -- {0x90250, 0x20}, -- {0x90251, 0x4}, -- {0x90252, 0xa8}, -- {0x90253, 0x4}, -- {0x90254, 0x0}, -- {0x90255, 0xc8}, -- {0x90256, 0x9}, -- {0x90257, 0xc800}, -- {0x90258, 0xc6c}, -- {0x90259, 0x26f}, -- {0x9025a, 0x100}, -- {0x9025b, 0xc19}, -- {0x9025c, 0x8}, -- {0x9025d, 0x4}, -- {0x9025e, 0x18}, -- {0x9025f, 0x27f}, -- {0x90260, 0x100}, -- {0x90261, 0xc19}, -- {0x90262, 0x479}, -- {0x90263, 0xc7f8}, -- {0x90264, 0x80c}, -- {0x90265, 0x0}, -- {0x90266, 0x0}, -- {0x90267, 0x8}, -- {0x90268, 0x58}, -- {0x90269, 0x8a}, -- {0x9026a, 0x9}, -- {0x9026b, 0x9}, -- {0x9026c, 0xc9c0}, -- {0x9026d, 0xc0c}, -- {0x9026e, 0x0}, -- {0x9026f, 0x0}, -- {0x90270, 0x8}, -- {0x90271, 0x18}, -- {0x90272, 0x8160}, -- {0x90273, 0x86c}, -- {0x90274, 0x1008}, -- {0x90275, 0x853b}, -- {0x90276, 0x868}, -- {0x90277, 0xc00}, -- {0x90278, 0x8588}, -- {0x90279, 0x868}, -- {0x9027a, 0x8}, -- {0x9027b, 0x85a8}, -- {0x9027c, 0x868}, -- {0x9027d, 0x8}, -- {0x9027e, 0x85c8}, -- {0x9027f, 0x868}, -- {0x90280, 0x0}, -- {0x90281, 0x8050}, -- {0x90282, 0x868}, -- {0x90283, 0x60}, -- {0x90284, 0x138}, -- {0x90285, 0x869}, -- {0x90286, 0x18}, -- {0x90287, 0x8510}, -- {0x90288, 0x868}, -- {0x90289, 0x18}, -- {0x9028a, 0x2c8}, -- {0x9028b, 0x869}, -- {0x9028c, 0x10}, -- {0x9028d, 0x8520}, -- {0x9028e, 0x868}, -- {0x9028f, 0x1ff8}, -- {0x90290, 0x85d8}, -- {0x90291, 0xc68}, -- {0x90292, 0x0}, -- {0x90293, 0xfdf0}, -- {0x90294, 0x868}, -- {0x90295, 0x8}, -- {0x90296, 0x85f0}, -- {0x90297, 0x868}, -- {0x90298, 0x8}, -- {0x90299, 0xa5f0}, -- {0x9029a, 0x868}, -- {0x9029b, 0x298}, -- {0x9029c, 0x100}, -- {0x9029d, 0x869}, -- {0x9029e, 0x2}, -- {0x9029f, 0x1}, -- {0x902a0, 0x68}, -- {0x902a1, 0x0}, -- {0x902a2, 0x100}, -- {0x902a3, 0x869}, -- {0x902a4, 0x0}, -- {0x902a5, 0x85f0}, -- {0x902a6, 0x868}, -- {0x902a7, 0x0}, -- {0x902a8, 0xa5f0}, -- {0x902a9, 0x868}, -- {0x902aa, 0x33b}, -- {0x902ab, 0x100}, -- {0x902ac, 0x8c9}, -- {0x902ad, 0x0}, -- {0x902ae, 0x100}, -- {0x902af, 0x8c9}, -- {0x902b0, 0x1ff8}, -- {0x902b1, 0x85d8}, -- {0x902b2, 0xc68}, -- {0x902b3, 0x8}, -- {0x902b4, 0x8df0}, -- {0x902b5, 0x868}, -- {0x902b6, 0x8}, -- {0x902b7, 0xadf0}, -- {0x902b8, 0x868}, -- {0x902b9, 0x2a8}, -- {0x902ba, 0x100}, -- {0x902bb, 0x869}, -- {0x902bc, 0x2}, -- {0x902bd, 0x1}, -- {0x902be, 0x68}, -- {0x902bf, 0x0}, -- {0x902c0, 0x100}, -- {0x902c1, 0x869}, -- {0x902c2, 0x0}, -- {0x902c3, 0x8df0}, -- {0x902c4, 0x868}, -- {0x902c5, 0x0}, -- {0x902c6, 0xadf0}, -- {0x902c7, 0x868}, -- {0x902c8, 0x10}, -- {0x902c9, 0x2c8}, -- {0x902ca, 0x869}, -- {0x902cb, 0x28}, -- {0x902cc, 0x4}, -- {0x902cd, 0x68}, -- {0x902ce, 0xa}, -- {0x902cf, 0x500}, -- {0x902d0, 0xc69}, -- {0x902d1, 0x0}, -- {0x902d2, 0x8520}, -- {0x902d3, 0x868}, -- {0x902d4, 0x8}, -- {0x902d5, 0x8530}, -- {0x902d6, 0x868}, -- {0x902d7, 0x2ba}, -- {0x902d8, 0x100}, -- {0x902d9, 0x869}, -- {0x902da, 0x2}, -- {0x902db, 0x1}, -- {0x902dc, 0x68}, -- {0x902dd, 0x2}, -- {0x902de, 0x100}, -- {0x902df, 0x869}, -- {0x902e0, 0x0}, -- {0x902e1, 0x8530}, -- {0x902e2, 0x868}, -- {0x902e3, 0x0}, -- {0x902e4, 0x8510}, -- {0x902e5, 0x868}, -- {0x902e6, 0x0}, -- {0x902e7, 0x2c8}, -- {0x902e8, 0x869}, -- {0x902e9, 0x8}, -- {0x902ea, 0x8050}, -- {0x902eb, 0x868}, -- {0x902ec, 0x30}, -- {0x902ed, 0x4}, -- {0x902ee, 0x68}, -- {0x902ef, 0x8}, -- {0x902f0, 0x8520}, -- {0x902f1, 0x868}, -- {0x902f2, 0x0}, -- {0x902f3, 0x8328}, -- {0x902f4, 0x86b}, -- {0x902f5, 0x2ca}, -- {0x902f6, 0x100}, -- {0x902f7, 0x869}, -- {0x902f8, 0x2}, -- {0x902f9, 0x1}, -- {0x902fa, 0x68}, -- {0x902fb, 0x4}, -- {0x902fc, 0x100}, -- {0x902fd, 0x869}, -- {0x902fe, 0xff8}, -- {0x902ff, 0x8328}, -- {0x90300, 0x86b}, -- {0x90301, 0x9}, -- {0x90302, 0x500}, -- {0x90303, 0xc29}, -- {0x90304, 0x0}, -- {0x90305, 0x8520}, -- {0x90306, 0x868}, -- {0x90307, 0x8}, -- {0x90308, 0x3c8}, -- {0x90309, 0xc29}, -- {0x9030a, 0x0}, -- {0x9030b, 0x150}, -- {0x9030c, 0x809}, -- {0x9030d, 0x2}, -- {0x9030e, 0x370}, -- {0x9030f, 0x809}, -- {0x90310, 0x0}, -- {0x90311, 0x400}, -- {0x90312, 0x80e}, -- {0x90313, 0x10}, -- {0x90314, 0x4}, -- {0x90315, 0x118}, -- {0x90316, 0x20}, -- {0x90317, 0x82b0}, -- {0x90318, 0x808}, -- {0x90319, 0x479}, -- {0x9031a, 0xc7f8}, -- {0x9031b, 0x80c}, -- {0x9031c, 0x0}, -- {0x9031d, 0x0}, -- {0x9031e, 0x8}, -- {0x9031f, 0x60}, -- {0x90320, 0x8a}, -- {0x90321, 0x9}, -- {0x90322, 0x9}, -- {0x90323, 0xc9c0}, -- {0x90324, 0xc0c}, -- {0x90325, 0x0}, -- {0x90326, 0x0}, -- {0x90327, 0x8}, -- {0x90328, 0x8}, -- {0x90329, 0x2a0}, -- {0x9032a, 0x809}, -- {0x9032b, 0x48}, -- {0x9032c, 0xc822}, -- {0x9032d, 0xc}, -- {0x9032e, 0x48}, -- {0x9032f, 0xcc32}, -- {0x90330, 0xc}, -- {0x90331, 0x9}, -- {0x90332, 0xc800}, -- {0x90333, 0xc0c}, -- {0x90334, 0x0}, -- {0x90335, 0x8168}, -- {0x90336, 0x80c}, -- {0x90337, 0x479}, -- {0x90338, 0xc7f8}, -- {0x90339, 0x91c}, -- {0x9033a, 0x0}, -- {0x9033b, 0x0}, -- {0x9033c, 0x118}, -- {0x9033d, 0x9190}, -- {0x9033e, 0x80a1}, -- {0x9033f, 0x918}, -- {0x90340, 0x9}, -- {0x90341, 0xc9c0}, -- {0x90342, 0xd1c}, -- {0x90343, 0x0}, -- {0x90344, 0x0}, -- {0x90345, 0x118}, -- {0x90346, 0x18}, -- {0x90347, 0xf0}, -- {0x90348, 0x909}, -- {0x90349, 0xa}, -- {0x9034a, 0xc140}, -- {0x9034b, 0x92c}, -- {0x9034c, 0x88}, -- {0x9034d, 0x1932}, -- {0x9034e, 0x129}, -- {0x9034f, 0x88}, -- {0x90350, 0x193a}, -- {0x90351, 0x129}, -- {0x90352, 0x0}, -- {0x90353, 0xc140}, -- {0x90354, 0x92c}, -- {0x90355, 0x8}, -- {0x90356, 0x300}, -- {0x90357, 0x819}, -- {0x90358, 0x10}, -- {0x90359, 0x8160}, -- {0x9035a, 0x80c}, -- {0x9035b, 0x8}, -- {0x9035c, 0x7c8}, -- {0x9035d, 0x801}, -- {0x9035e, 0x8}, -- {0x9035f, 0x0}, -- {0x90360, 0x8}, -- {0x90361, 0x8}, -- {0x90362, 0x1880}, -- {0x90363, 0x809}, -- {0x90364, 0x10}, -- {0x90365, 0x8160}, -- {0x90366, 0x80c}, -- {0x90367, 0x1800}, -- {0x90368, 0x8660}, -- {0x90369, 0x809}, -- {0x9036a, 0x4000}, -- {0x9036b, 0x8668}, -- {0x9036c, 0x809}, -- {0x9036d, 0x0}, -- {0x9036e, 0xf0}, -- {0x9036f, 0x909}, -- {0x90370, 0xf}, -- {0x90371, 0x7c0}, -- {0x90372, 0x809}, -- {0x90373, 0x0}, -- {0x90374, 0x2a0}, -- {0x90375, 0x809}, -- {0x90376, 0x8}, -- {0x90377, 0x618}, -- {0x90378, 0x809}, -- {0x90379, 0x0}, -- {0x9037a, 0x84b8}, -- {0x9037b, 0x808}, -- {0x9037c, 0xff8}, -- {0x9037d, 0x8410}, -- {0x9037e, 0x809}, -- {0x9037f, 0x7ff8}, -- {0x90380, 0x8498}, -- {0x90381, 0x808}, -- {0x90382, 0x0}, -- {0x90383, 0x7c8}, -- {0x90384, 0x809}, -- {0x90385, 0x8}, -- {0x90386, 0x8168}, -- {0x90387, 0x80c}, -- {0x90388, 0x0}, -- {0x90389, 0x1}, -- {0x9038a, 0x8}, -- {0x9038b, 0x0}, -- {0x9038c, 0x4}, -- {0x9038d, 0x8}, -- {0x9038e, 0x0}, -- {0x9038f, 0x4}, -- {0x90390, 0x8}, -- {0x90391, 0x18}, -- {0x90392, 0x300}, -- {0x90393, 0x809}, -- {0x90394, 0x0}, -- {0x90395, 0x480}, -- {0x90396, 0x809}, -- {0x90397, 0x8}, -- {0x90398, 0x510}, -- {0x90399, 0x809}, -- {0x9039a, 0x7800}, -- {0x9039b, 0x8660}, -- {0x9039c, 0x809}, -- {0x9039d, 0x18}, -- {0x9039e, 0xf0}, -- {0x9039f, 0x909}, -- {0x903a0, 0x8}, -- {0x903a1, 0x7c8}, -- {0x903a2, 0x801}, -- {0x903a3, 0x10}, -- {0x903a4, 0x400}, -- {0x903a5, 0x80e}, -- {0x903a6, 0x8}, -- {0x903a7, 0x150}, -- {0x903a8, 0x809}, -- {0x903a9, 0x9}, -- {0x903aa, 0x370}, -- {0x903ab, 0x809}, -- {0x903ac, 0x18}, -- {0x903ad, 0x8160}, -- {0x903ae, 0x80c}, -- {0x903af, 0x8}, -- {0x903b0, 0xc800}, -- {0x903b1, 0xc0c}, -- {0x903b2, 0x8}, -- {0x903b3, 0xc888}, -- {0x903b4, 0xc04}, -- {0x903b5, 0x20}, -- {0x903b6, 0x8302}, -- {0x903b7, 0xb}, -- {0x903b8, 0x18}, -- {0x903b9, 0x8582}, -- {0x903ba, 0x8}, -- {0x903bb, 0x9000}, -- {0x903bc, 0x8539}, -- {0x903bd, 0x808}, -- {0x903be, 0x0}, -- {0x903bf, 0x8588}, -- {0x903c0, 0x808}, -- {0x903c1, 0x40}, -- {0x903c2, 0x85c8}, -- {0x903c3, 0x808}, -- {0x903c4, 0x0}, -- {0x903c5, 0xfdf0}, -- {0x903c6, 0x808}, -- {0x903c7, 0x800}, -- {0x903c8, 0xc5f0}, -- {0x903c9, 0x808}, -- {0x903ca, 0x1ff8}, -- {0x903cb, 0xfdd8}, -- {0x903cc, 0xc08}, -- {0x903cd, 0x18}, -- {0x903ce, 0xfda8}, -- {0x903cf, 0x808}, -- {0x903d0, 0x40}, -- {0x903d1, 0x8520}, -- {0x903d2, 0x8d8}, -- {0x903d3, 0x80}, -- {0x903d4, 0x8520}, -- {0x903d5, 0x8e8}, -- {0x903d6, 0x30a}, -- {0x903d7, 0x100}, -- {0x903d8, 0x8d9}, -- {0x903d9, 0x32a}, -- {0x903da, 0x100}, -- {0x903db, 0x8e9}, -- {0x903dc, 0x0}, -- {0x903dd, 0x1}, -- {0x903de, 0x8}, -- {0x903df, 0x0}, -- {0x903e0, 0x100}, -- {0x903e1, 0x809}, -- {0x903e2, 0x1ff8}, -- {0x903e3, 0xfdd8}, -- {0x903e4, 0xc08}, -- {0x903e5, 0x8}, -- {0x903e6, 0xfda8}, -- {0x903e7, 0x808}, -- {0x903e8, 0x140}, -- {0x903e9, 0x8520}, -- {0x903ea, 0x8d8}, -- {0x903eb, 0x180}, -- {0x903ec, 0x8520}, -- {0x903ed, 0x8e8}, -- {0x903ee, 0x30a}, -- {0x903ef, 0x100}, -- {0x903f0, 0x8d9}, -- {0x903f1, 0x32a}, -- {0x903f2, 0x100}, -- {0x903f3, 0x8e9}, -- {0x903f4, 0x0}, -- {0x903f5, 0x1}, -- {0x903f6, 0x8}, -- {0x903f7, 0x0}, -- {0x903f8, 0x100}, -- {0x903f9, 0x809}, -- {0x903fa, 0x9}, -- {0x903fb, 0x500}, -- {0x903fc, 0xc09}, -- {0x903fd, 0x10}, -- {0x903fe, 0x82b0}, -- {0x903ff, 0x808}, -- {0x90400, 0x0}, -- {0x90401, 0x8520}, -- {0x90402, 0x808}, -- {0x90403, 0x8}, -- {0x90404, 0x3c8}, -- {0x90405, 0xc09}, -- {0x90406, 0x0}, -- {0x90407, 0x150}, -- {0x90408, 0x809}, -- {0x90409, 0x2}, -- {0x9040a, 0x370}, -- {0x9040b, 0x809}, -- {0x9040c, 0x0}, -- {0x9040d, 0x400}, -- {0x9040e, 0x80e}, -- {0x9040f, 0x8}, -- {0x90410, 0xc848}, -- {0x90411, 0xc0c}, -- {0x90412, 0x0}, -- {0x90413, 0xc890}, -- {0x90414, 0x804}, -- {0x90415, 0x20}, -- {0x90416, 0x8302}, -- {0x90417, 0xb}, -- {0x90418, 0x18}, -- {0x90419, 0x8582}, -- {0x9041a, 0x8}, -- {0x9041b, 0x0}, -- {0x9041c, 0x82b0}, -- {0x9041d, 0x808}, -- {0x9041e, 0x1000}, -- {0x9041f, 0x8539}, -- {0x90420, 0x808}, -- {0x90421, 0x0}, -- {0x90422, 0x8588}, -- {0x90423, 0x808}, -- {0x90424, 0x40}, -- {0x90425, 0x85c8}, -- {0x90426, 0x808}, -- {0x90427, 0x7f8}, -- {0x90428, 0xfdf0}, -- {0x90429, 0x808}, -- {0x9042a, 0x800}, -- {0x9042b, 0xc5f0}, -- {0x9042c, 0x808}, -- {0x9042d, 0x80}, -- {0x9042e, 0x8088}, -- {0x9042f, 0x80b}, -- {0x90430, 0x1ff8}, -- {0x90431, 0xfdd8}, -- {0x90432, 0xc08}, -- {0x90433, 0x18}, -- {0x90434, 0xfda8}, -- {0x90435, 0x808}, -- {0x90436, 0x200}, -- {0x90437, 0x8520}, -- {0x90438, 0x8d8}, -- {0x90439, 0x400}, -- {0x9043a, 0x8520}, -- {0x9043b, 0x8e8}, -- {0x9043c, 0x2da}, -- {0x9043d, 0x100}, -- {0x9043e, 0x8d9}, -- {0x9043f, 0x2ea}, -- {0x90440, 0x100}, -- {0x90441, 0x8e9}, -- {0x90442, 0x2}, -- {0x90443, 0x1}, -- {0x90444, 0x8}, -- {0x90445, 0x0}, -- {0x90446, 0x100}, -- {0x90447, 0x809}, -- {0x90448, 0x1ff8}, -- {0x90449, 0xfdd8}, -- {0x9044a, 0xc08}, -- {0x9044b, 0x8}, -- {0x9044c, 0xfda8}, -- {0x9044d, 0x808}, -- {0x9044e, 0xa00}, -- {0x9044f, 0x8520}, -- {0x90450, 0x8d8}, -- {0x90451, 0xc00}, -- {0x90452, 0x8520}, -- {0x90453, 0x8e8}, -- {0x90454, 0x2da}, -- {0x90455, 0x100}, -- {0x90456, 0x8d9}, -- {0x90457, 0x2ea}, -- {0x90458, 0x100}, -- {0x90459, 0x8e9}, -- {0x9045a, 0x0}, -- {0x9045b, 0x1}, -- {0x9045c, 0x8}, -- {0x9045d, 0x0}, -- {0x9045e, 0x100}, -- {0x9045f, 0x809}, -- {0x90460, 0x9}, -- {0x90461, 0x500}, -- {0x90462, 0xc09}, -- {0x90463, 0x10}, -- {0x90464, 0x82b0}, -- {0x90465, 0x808}, -- {0x90466, 0x0}, -- {0x90467, 0x8520}, -- {0x90468, 0x808}, -- {0x90469, 0x8}, -- {0x9046a, 0x3c8}, -- {0x9046b, 0xc09}, -- {0x9046c, 0x0}, -- {0x9046d, 0x150}, -- {0x9046e, 0x809}, -- {0x9046f, 0x2}, -- {0x90470, 0x370}, -- {0x90471, 0x809}, -- {0x90472, 0x0}, -- {0x90473, 0x400}, -- {0x90474, 0x80e}, -- {0x90475, 0x8}, -- {0x90476, 0xc848}, -- {0x90477, 0xc0c}, -- {0x90478, 0x0}, -- {0x90479, 0xc890}, -- {0x9047a, 0x804}, -- {0x9047b, 0x1008}, -- {0x9047c, 0x853b}, -- {0x9047d, 0x808}, -- {0x9047e, 0xc00}, -- {0x9047f, 0x8588}, -- {0x90480, 0x808}, -- {0x90481, 0x8}, -- {0x90482, 0x85a8}, -- {0x90483, 0x808}, -- {0x90484, 0x8}, -- {0x90485, 0x85c8}, -- {0x90486, 0x808}, -- {0x90487, 0x60}, -- {0x90488, 0x138}, -- {0x90489, 0x809}, -- {0x9048a, 0x18}, -- {0x9048b, 0xc8}, -- {0x9048c, 0x809}, -- {0x9048d, 0x0}, -- {0x9048e, 0xa4}, -- {0x9048f, 0x809}, -- {0x90490, 0x0}, -- {0x90491, 0x8510}, -- {0x90492, 0x808}, -- {0x90493, 0x2fa}, -- {0x90494, 0x100}, -- {0x90495, 0x8d9}, -- {0x90496, 0x31a}, -- {0x90497, 0x100}, -- {0x90498, 0x8e9}, -- {0x90499, 0x2}, -- {0x9049a, 0x1}, -- {0x9049b, 0x8}, -- {0x9049c, 0x2}, -- {0x9049d, 0x100}, -- {0x9049e, 0x809}, -- {0x9049f, 0x202}, -- {0x904a0, 0x8510}, -- {0x904a1, 0xc08}, -- {0x904a2, 0x50}, -- {0x904a3, 0xa2}, -- {0x904a4, 0x9}, -- {0x904a5, 0x0}, -- {0x904a6, 0x0}, -- {0x904a7, 0x8}, -- {0x904a8, 0x0}, -- {0x904a9, 0x0}, -- {0x904aa, 0x8}, -- {0x904ab, 0x0}, -- {0x904ac, 0x0}, -- {0x904ad, 0x8}, -- {0x904ae, 0x0}, -- {0x904af, 0xc8}, -- {0x904b0, 0x809}, -- {0x904b1, 0xb}, -- {0x904b2, 0x508}, -- {0x904b3, 0x809}, -- {0x904b4, 0x8}, -- {0x904b5, 0x1900}, -- {0x904b6, 0xc09}, -- {0x904b7, 0x2}, -- {0x904b8, 0x0}, -- {0x904b9, 0x8}, -- {0x904ba, 0x0}, -- {0x904bb, 0x508}, -- {0x904bc, 0x809}, -- {0x904bd, 0x9}, -- {0x904be, 0x500}, -- {0x904bf, 0xc09}, -- {0x904c0, 0x10}, -- {0x904c1, 0x82b0}, -- {0x904c2, 0x808}, -- {0x904c3, 0x0}, -- {0x904c4, 0x8520}, -- {0x904c5, 0x808}, -- {0x904c6, 0x8}, -- {0x904c7, 0x3c8}, -- {0x904c8, 0xc09}, -- {0x904c9, 0x0}, -- {0x904ca, 0x150}, -- {0x904cb, 0x809}, -- {0x904cc, 0x2}, -- {0x904cd, 0x370}, -- {0x904ce, 0x809}, -- {0x904cf, 0x0}, -- {0x904d0, 0x400}, -- {0x904d1, 0x80e}, -- {0x904d2, 0x8}, -- {0x904d3, 0xc848}, -- {0x904d4, 0xc0c}, -- {0x904d5, 0x0}, -- {0x904d6, 0xc890}, -- {0x904d7, 0x804}, -- {0x904d8, 0x20}, -- {0x904d9, 0x8302}, -- {0x904da, 0xb}, -- {0x904db, 0x18}, -- {0x904dc, 0x8582}, -- {0x904dd, 0x8}, -- {0x904de, 0x1000}, -- {0x904df, 0x8539}, -- {0x904e0, 0x808}, -- {0x904e1, 0x0}, -- {0x904e2, 0x8588}, -- {0x904e3, 0x808}, -- {0x904e4, 0x40}, -- {0x904e5, 0x85c8}, -- {0x904e6, 0x808}, -- {0x904e7, 0x8}, -- {0x904e8, 0xfdf0}, -- {0x904e9, 0x808}, -- {0x904ea, 0x80}, -- {0x904eb, 0x8088}, -- {0x904ec, 0x80b}, -- {0x904ed, 0x0}, -- {0x904ee, 0x3b8}, -- {0x904ef, 0x869}, -- {0x904f0, 0x1ff8}, -- {0x904f1, 0xfdd8}, -- {0x904f2, 0xc08}, -- {0x904f3, 0x18}, -- {0x904f4, 0xfda8}, -- {0x904f5, 0x808}, -- {0x904f6, 0x40}, -- {0x904f7, 0x8520}, -- {0x904f8, 0x8d8}, -- {0x904f9, 0x80}, -- {0x904fa, 0x8520}, -- {0x904fb, 0x8e8}, -- {0x904fc, 0x2da}, -- {0x904fd, 0x100}, -- {0x904fe, 0x8d9}, -- {0x904ff, 0x2ea}, -- {0x90500, 0x100}, -- {0x90501, 0x8e9}, -- {0x90502, 0x2}, -- {0x90503, 0x1}, -- {0x90504, 0x8}, -- {0x90505, 0x0}, -- {0x90506, 0x100}, -- {0x90507, 0x809}, -- {0x90508, 0x1ff8}, -- {0x90509, 0xfdd8}, -- {0x9050a, 0xc08}, -- {0x9050b, 0x8}, -- {0x9050c, 0xfda8}, -- {0x9050d, 0x808}, -- {0x9050e, 0x140}, -- {0x9050f, 0x8520}, -- {0x90510, 0x8d8}, -- {0x90511, 0x180}, -- {0x90512, 0x8520}, -- {0x90513, 0x8e8}, -- {0x90514, 0x2da}, -- {0x90515, 0x100}, -- {0x90516, 0x8d9}, -- {0x90517, 0x2ea}, -- {0x90518, 0x100}, -- {0x90519, 0x8e9}, -- {0x9051a, 0x0}, -- {0x9051b, 0x1}, -- {0x9051c, 0x8}, -- {0x9051d, 0x0}, -- {0x9051e, 0x100}, -- {0x9051f, 0x809}, -- {0x90520, 0x9}, -- {0x90521, 0x500}, -- {0x90522, 0xc09}, -- {0x90523, 0x10}, -- {0x90524, 0x82b0}, -- {0x90525, 0x808}, -- {0x90526, 0x0}, -- {0x90527, 0x8520}, -- {0x90528, 0x808}, -- {0x90529, 0x8}, -- {0x9052a, 0x3c8}, -- {0x9052b, 0xc09}, -- {0x9052c, 0x0}, -- {0x9052d, 0x150}, -- {0x9052e, 0x809}, -- {0x9052f, 0x2}, -- {0x90530, 0x370}, -- {0x90531, 0x809}, -- {0x90532, 0x0}, -- {0x90533, 0x400}, -- {0x90534, 0x80e}, -- {0x90535, 0x8}, -- {0x90536, 0xc848}, -- {0x90537, 0xc0c}, -- {0x90538, 0x0}, -- {0x90539, 0xc890}, -- {0x9053a, 0x804}, -- {0xd00e7, 0x600}, -- {0x9001c, 0x0}, -- {0x90020, 0x77}, -- {0x90024, 0x82}, -- {0x90025, 0x2b}, -- {0x90026, 0x2b}, -- {0x9002b, 0x110}, -- {0x90708, 0x127}, -- {0x90700, 0x14d}, -- {0x90701, 0x16f}, -- {0x90702, 0x18e}, -- {0x90703, 0x12d}, -- {0x90704, 0x0}, -- {0x90705, 0x0}, -- {0x90706, 0x0}, -- {0x90707, 0x0}, -- {0x2018a, 0x0}, -- {0x20124, 0x1}, -- {0x2018b, 0x16}, -- {0x20125, 0x39}, -- {0x2018c, 0x4e}, -- {0x20126, 0x1}, -- {0x2018d, 0x16}, -- {0x20127, 0x39}, -- {0x2018e, 0x4e}, -- {0x20128, 0x17}, -- {0x2018f, 0x27}, -- {0x20129, 0x4f}, -- {0x20190, 0x5f}, -- {0x2012a, 0x17}, -- {0x20191, 0x27}, -- {0x2012b, 0x4f}, -- {0x20192, 0x5f}, -- {0x2012c, 0x28}, -- {0x20193, 0x38}, -- {0x2012d, 0x60}, -- {0x20194, 0x70}, -- {0x2012e, 0x28}, -- {0x20195, 0x38}, -- {0x2012f, 0x60}, -- {0x20196, 0x70}, -- {0x20130, 0x80}, -- {0x20197, 0x80}, -- {0x20131, 0x80}, -- {0x20198, 0x80}, -- {0x20132, 0x80}, -- {0x20199, 0x80}, -- {0x20133, 0x80}, -- {0x2019a, 0x80}, -- {0x20134, 0x71}, -- {0x2019b, 0x74}, -- {0x20135, 0x77}, -- {0x2019c, 0x7a}, -- {0x20136, 0x71}, -- {0x2019d, 0x74}, -- {0x20137, 0x77}, -- {0x2019e, 0x7a}, -- {0x20138, 0x75}, -- {0x2019f, 0x76}, -- {0x20139, 0x7b}, -- {0x201a0, 0x7c}, -- {0x2013a, 0x75}, -- {0x201a1, 0x76}, -- {0x2013b, 0x7b}, -- {0x201a2, 0x7c}, -- {0x2013c, 0x7d}, -- {0x201a3, 0x7e}, -- {0x2013d, 0x7d}, -- {0x201a4, 0x7e}, -- {0x2013e, 0x7d}, -- {0x201a5, 0x7e}, -- {0x2013f, 0x7d}, -- {0x201a6, 0x7e}, -- {0x20140, 0x7f}, -- {0x201a7, 0x7f}, -- {0x20141, 0x7f}, -- {0x201a8, 0x7f}, -- {0x20142, 0x7f}, -- {0x201a9, 0x7f}, -- {0x20143, 0x7f}, -- {0x201aa, 0x7f}, -- {0x20144, 0x80}, -- {0x201ab, 0x7f}, -- {0x20145, 0x80}, -- {0x201ac, 0x7f}, -- {0x20146, 0x80}, -- {0x201ad, 0x7f}, -- {0x20147, 0x80}, -- {0x201ae, 0x7f}, -- {0x20148, 0x81}, -- {0x201af, 0x93}, -- {0x20149, 0x81}, -- {0x201b0, 0x93}, -- {0x2014a, 0x10a}, -- {0x201b1, 0x11b}, -- {0x2014b, 0x10a}, -- {0x201b2, 0x11b}, -- {0x2014c, 0x94}, -- {0x201b3, 0x9b}, -- {0x2014d, 0x94}, -- {0x201b4, 0x9b}, -- {0x2014e, 0x11c}, -- {0x201b5, 0x122}, -- {0x2014f, 0x11c}, -- {0x201b6, 0x122}, -- {0x20150, 0x9c}, -- {0x201b7, 0xaf}, -- {0x20151, 0x9c}, -- {0x201b8, 0xaf}, -- {0x20152, 0x123}, -- {0x201b9, 0x132}, -- {0x20153, 0x123}, -- {0x201ba, 0x132}, -- {0x20154, 0xb0}, -- {0x201bb, 0xc0}, -- {0x20155, 0xb0}, -- {0x201bc, 0xc0}, -- {0x20156, 0x133}, -- {0x201bd, 0x143}, -- {0x20157, 0x133}, -- {0x201be, 0x143}, -- {0x20158, 0xc1}, -- {0x201bf, 0xca}, -- {0x20159, 0xc1}, -- {0x201c0, 0xca}, -- {0x2015a, 0x144}, -- {0x201c1, 0x14d}, -- {0x2015b, 0x144}, -- {0x201c2, 0x14d}, -- {0x2015c, 0xcb}, -- {0x201c3, 0xd4}, -- {0x2015d, 0xcb}, -- {0x201c4, 0xd4}, -- {0x2015e, 0x14e}, -- {0x201c5, 0x157}, -- {0x2015f, 0x14e}, -- {0x201c6, 0x157}, -- {0x20160, 0xd5}, -- {0x201c7, 0xdf}, -- {0x20161, 0xd5}, -- {0x201c8, 0xdf}, -- {0x20162, 0x158}, -- {0x201c9, 0x161}, -- {0x20163, 0x158}, -- {0x201ca, 0x161}, -- {0x20164, 0xe0}, -- {0x201cb, 0xee}, -- {0x20165, 0xe0}, -- {0x201cc, 0xee}, -- {0x20166, 0x162}, -- {0x201cd, 0x170}, -- {0x20167, 0x162}, -- {0x201ce, 0x170}, -- {0x20168, 0xef}, -- {0x201cf, 0xf9}, -- {0x20169, 0xef}, -- {0x201d0, 0xf9}, -- {0x2016a, 0x171}, -- {0x201d1, 0x17a}, -- {0x2016b, 0x171}, -- {0x201d2, 0x17a}, -- {0x2016c, 0xfa}, -- {0x201d3, 0x108}, -- {0x2016d, 0xfa}, -- {0x201d4, 0x108}, -- {0x2016e, 0x17b}, -- {0x201d5, 0x189}, -- {0x2016f, 0x17b}, -- {0x201d6, 0x189}, -- {0x20170, 0x109}, -- {0x201d7, 0x109}, -- {0x20171, 0x109}, -- {0x201d8, 0x109}, -- {0x20172, 0x18a}, -- {0x201d9, 0x18a}, -- {0x20173, 0x18a}, -- {0x201da, 0x18a}, -- {0x41613, 0xb00}, -- {0x41617, 0x0}, -- {0x4163b, 0xb00}, -- {0x4163f, 0x0}, -- {0x41663, 0xb00}, -- {0x41667, 0x0}, -- {0x4168b, 0xb00}, -- {0x4168f, 0x0}, -- {0x41723, 0xb00}, -- {0x41727, 0x0}, -- {0x4174b, 0xb00}, -- {0x4174f, 0x0}, -- {0x417f3, 0xb00}, -- {0x417f7, 0x0}, -- {0x4181b, 0xb00}, -- {0x4181f, 0x0}, -- {0x41a2b, 0x6b00}, -- {0x41a2f, 0x0}, -- {0x41a53, 0x3b00}, -- {0x41a57, 0x800}, -- {0x41a7b, 0x6b00}, -- {0x41a7f, 0x0}, -- {0x41aa3, 0x3b00}, -- {0x41aa7, 0x800}, -- {0x41b33, 0x6b00}, -- {0x41b37, 0x0}, -- {0x41b5b, 0x3b00}, -- {0x41b5f, 0x800}, -- {0x41bfb, 0x6b00}, -- {0x41bff, 0x0}, -- {0x41c23, 0x3b00}, -- {0x41c27, 0x800}, -- {0x41008, 0xc9d8}, -- {0x41009, 0x0}, -- {0x4100a, 0x0}, -- {0x4100b, 0x0}, -- {0x4100c, 0xc808}, -- {0x4100d, 0x0}, -- {0x4100e, 0x0}, -- {0x4100f, 0x0}, -- {0x41010, 0x0}, -- {0x41011, 0x0}, -- {0x41012, 0x0}, -- {0x41013, 0x2b00}, -- {0x41014, 0x0}, -- {0x41015, 0x0}, -- {0x41016, 0x0}, -- {0x41017, 0x0}, -- {0x41018, 0xc958}, -- {0x41019, 0x0}, -- {0x4101a, 0x0}, -- {0x4101b, 0x0}, -- {0x4101c, 0xcd88}, -- {0x4101d, 0x0}, -- {0x4101e, 0x0}, -- {0x4101f, 0x0}, -- {0x41020, 0x0}, -- {0x41021, 0x0}, -- {0x41022, 0x0}, -- {0x41023, 0x2b00}, -- {0x41024, 0x0}, -- {0x41025, 0x0}, -- {0x41026, 0x0}, -- {0x41027, 0x0}, -- {0x41028, 0xc0d8}, -- {0x41029, 0x0}, -- {0x4102a, 0x0}, -- {0x4102b, 0x0}, -- {0x4102c, 0xd848}, -- {0x4102d, 0x0}, -- {0x4102e, 0x0}, -- {0x4102f, 0x0}, -- {0x41030, 0x0}, -- {0x41031, 0x0}, -- {0x41032, 0x0}, -- {0x41033, 0x2b00}, -- {0x41034, 0x0}, -- {0x41035, 0x0}, -- {0x41036, 0x0}, -- {0x41037, 0x0}, -- {0x41038, 0xc158}, -- {0x41039, 0x0}, -- {0x4103a, 0x0}, -- {0x4103b, 0x0}, -- {0x4103c, 0xddc8}, -- {0x4103d, 0x0}, -- {0x4103e, 0x0}, -- {0x4103f, 0x0}, -- {0x41040, 0x0}, -- {0x41041, 0x0}, -- {0x41042, 0x0}, -- {0x41043, 0x2b00}, -- {0x41044, 0x0}, -- {0x41045, 0x0}, -- {0x41046, 0x0}, -- {0x41047, 0x0}, -- {0x41048, 0xc1d8}, -- {0x41049, 0x0}, -- {0x4104a, 0x0}, -- {0x4104b, 0x0}, -- {0x4104c, 0xc308}, -- {0x4104d, 0x0}, -- {0x4104e, 0x0}, -- {0x4104f, 0x0}, -- {0x41050, 0x0}, -- {0x41051, 0x0}, -- {0x41052, 0x0}, -- {0x41053, 0x2b00}, -- {0x41054, 0x0}, -- {0x41055, 0x0}, -- {0x41056, 0x0}, -- {0x41057, 0x0}, -- {0x41058, 0xc558}, -- {0x41059, 0x0}, -- {0x4105a, 0x0}, -- {0x4105b, 0x0}, -- {0x4105c, 0xea08}, -- {0x4105d, 0x0}, -- {0x4105e, 0x0}, -- {0x4105f, 0x0}, -- {0x41060, 0x0}, -- {0x41061, 0x0}, -- {0x41062, 0x0}, -- {0x41063, 0x2b00}, -- {0x41064, 0x0}, -- {0x41065, 0x0}, -- {0x41066, 0x0}, -- {0x41067, 0x0}, -- {0x41068, 0xc5d8}, -- {0x41069, 0x0}, -- {0x4106a, 0x0}, -- {0x4106b, 0x0}, -- {0x4106c, 0xe308}, -- {0x4106d, 0x0}, -- {0x4106e, 0x0}, -- {0x4106f, 0x0}, -- {0x41070, 0x0}, -- {0x41071, 0x0}, -- {0x41072, 0x0}, -- {0x41073, 0x2b00}, -- {0x41074, 0x0}, -- {0x41075, 0x0}, -- {0x41076, 0x0}, -- {0x41077, 0x0}, -- {0x41078, 0x48d8}, -- {0x41079, 0x0}, -- {0x4107a, 0x0}, -- {0x4107b, 0x0}, -- {0x4107c, 0x4248}, -- {0x4107d, 0x0}, -- {0x4107e, 0x0}, -- {0x4107f, 0x0}, -- {0x41080, 0x88d8}, -- {0x41081, 0x0}, -- {0x41082, 0x0}, -- {0x41083, 0x0}, -- {0x41084, 0x9648}, -- {0x41085, 0x0}, -- {0x41086, 0x0}, -- {0x41087, 0x0}, -- {0x41088, 0x0}, -- {0x41089, 0x0}, -- {0x4108a, 0x0}, -- {0x4108b, 0x2b00}, -- {0x4108c, 0x0}, -- {0x4108d, 0x0}, -- {0x4108e, 0x0}, -- {0x4108f, 0x0}, -- {0x41090, 0xca58}, -- {0x41091, 0x0}, -- {0x41092, 0x0}, -- {0x41093, 0x0}, -- {0x41094, 0xc108}, -- {0x41095, 0x0}, -- {0x41096, 0x0}, -- {0x41097, 0x0}, -- {0x41098, 0x0}, -- {0x41099, 0x0}, -- {0x4109a, 0x0}, -- {0x4109b, 0x2b00}, -- {0x4109c, 0x0}, -- {0x4109d, 0x0}, -- {0x4109e, 0x0}, -- {0x4109f, 0x0}, -- {0x410a0, 0xcb58}, -- {0x410a1, 0x0}, -- {0x410a2, 0x0}, -- {0x410a3, 0x0}, -- {0x410a4, 0xc008}, -- {0x410a5, 0x0}, -- {0x410a6, 0x0}, -- {0x410a7, 0x0}, -- {0x410a8, 0x0}, -- {0x410a9, 0x0}, -- {0x410aa, 0x0}, -- {0x410ab, 0x2b00}, -- {0x410ac, 0x0}, -- {0x410ad, 0x0}, -- {0x410ae, 0x0}, -- {0x410af, 0x0}, -- {0x410b0, 0xd4d8}, -- {0x410b1, 0x0}, -- {0x410b2, 0x0}, -- {0x410b3, 0x0}, -- {0x410b4, 0xc008}, -- {0x410b5, 0x0}, -- {0x410b6, 0x0}, -- {0x410b7, 0x0}, -- {0xc0001, 0x5061}, -- {0xc0002, 0x7098}, -- {0xc0003, 0x0}, -- {0xc0000, 0xbedc}, -- {0xc0006, 0xb0db}, -- {0xc0007, 0x0}, -- {0x9070c, 0x0}, -- {0x9070d, 0x7ff}, -- {0x9070e, 0x668}, -- {0x9070f, 0x7910}, -- {0x90710, 0x355e}, -- {0x90711, 0xcbb5}, -- {0x90713, 0xffff}, -- {0x90714, 0x710}, -- {0x90715, 0x7800}, -- {0x90c10, 0xffff}, -- {0x90c12, 0xff10}, -- {0x90712, 0x2ee8}, -- {0x90c11, 0xffff}, -- {0x90716, 0xffdf}, -- {0x90717, 0x6f10}, -- {0x90718, 0x6f10}, -- {0x90719, 0x2868}, -- {0x9071a, 0x2868}, -- {0x9071b, 0xfeef}, -- {0x90904, 0xe400}, -- {0x90986, 0xe400}, -- {0x90920, 0x0}, -- {0x90921, 0x0}, -- {0x90922, 0x0}, -- {0x90923, 0x0}, -- {0x90924, 0xff00}, -- {0x90925, 0xff00}, -- {0x90926, 0xff00}, -- {0x90927, 0xff00}, -- {0x90930, 0x4000}, -- {0x90931, 0x2000}, -- {0x90932, 0xff00}, -- {0x90933, 0xff00}, -- {0x9090a, 0x0}, -- {0x9090c, 0x0}, -- {0x9090d, 0x1}, -- {0x200f0, 0x27f7}, -- {0x200f1, 0x2108}, -- {0x200f2, 0x2108}, -- {0x100b9, 0x1}, -- {0x100b1, 0x180}, -- {0x100ba, 0x1}, -- {0x100a2, 0x0}, -- {0x100b5, 0x1}, -- {0x110b9, 0x1}, -- {0x110b1, 0x180}, -- {0x110ba, 0x1}, -- {0x110a2, 0x0}, -- {0x110b5, 0x1}, -- {0x120b9, 0x1}, -- {0x120b1, 0x180}, -- {0x120ba, 0x1}, -- {0x120a2, 0x0}, -- {0x120b5, 0x1}, -- {0x130b9, 0x1}, -- {0x130b1, 0x180}, -- {0x130ba, 0x1}, -- {0x130a2, 0x0}, -- {0x130b5, 0x1}, -- {0x70024, 0x5a3c}, -- {0x70025, 0x5a3c}, -- {0x70026, 0x5a3c}, -- {0x70027, 0x5a3c}, -- {0x70028, 0x5a3c}, -- {0x70029, 0x5a3c}, -- {0x7002a, 0x5a3c}, -- {0x7002b, 0x5a3c}, -- {0x70124, 0x5a3c}, -- {0x70125, 0x5a3c}, -- {0x70126, 0x5a3c}, -- {0x70127, 0x5a3c}, -- {0x70128, 0x5a3c}, -- {0x70129, 0x5a3c}, -- {0x7012a, 0x5a3c}, -- {0x7012b, 0x5a3c}, -- {0x70224, 0x5a3c}, -- {0x70225, 0x5a3c}, -- {0x70226, 0x5a3c}, -- {0x70227, 0x5a3c}, -- {0x70228, 0x5a3c}, -- {0x70229, 0x5a3c}, -- {0x7022a, 0x5a3c}, -- {0x7022b, 0x5a3c}, -- {0x70324, 0x5a3c}, -- {0x70325, 0x5a3c}, -- {0x70326, 0x5a3c}, -- {0x70327, 0x5a3c}, -- {0x70328, 0x5a3c}, -- {0x70329, 0x5a3c}, -- {0x7032a, 0x5a3c}, -- {0x7032b, 0x5a3c}, -- {0x70424, 0x5a3c}, -- {0x70425, 0x5a3c}, -- {0x70426, 0x5a3c}, -- {0x70427, 0x5a3c}, -- {0x70428, 0x5a3c}, -- {0x70429, 0x5a3c}, -- {0x7042a, 0x5a3c}, -- {0x7042b, 0x5a3c}, -- {0x70524, 0x5a3c}, -- {0x70525, 0x5a3c}, -- {0x70526, 0x5a3c}, -- {0x70527, 0x5a3c}, -- {0x70528, 0x5a3c}, -- {0x70529, 0x5a3c}, -- {0x7052a, 0x5a3c}, -- {0x7052b, 0x5a3c}, -- {0x70624, 0x5a3c}, -- {0x70625, 0x5a3c}, -- {0x70626, 0x5a3c}, -- {0x70627, 0x5a3c}, -- {0x70628, 0x5a3c}, -- {0x70629, 0x5a3c}, -- {0x7062a, 0x5a3c}, -- {0x7062b, 0x5a3c}, -- {0x70724, 0x5a3c}, -- {0x70725, 0x5a3c}, -- {0x70726, 0x5a3c}, -- {0x70727, 0x5a3c}, -- {0x70728, 0x5a3c}, -- {0x70729, 0x5a3c}, -- {0x7072a, 0x5a3c}, -- {0x7072b, 0x5a3c}, -- {0x70824, 0x5a3c}, -- {0x70825, 0x5a3c}, -- {0x70826, 0x5a3c}, -- {0x70827, 0x5a3c}, -- {0x70828, 0x5a3c}, -- {0x70829, 0x5a3c}, -- {0x7082a, 0x5a3c}, -- {0x7082b, 0x5a3c}, -- {0x70065, 0x1ff}, -- {0x2007e, 0x33}, -- {0x200ef, 0xffff}, -- {0x90910, 0x2}, -- {0x20310, 0x1}, -- {0x20311, 0x1}, -- {0xc0080, 0x2}, -- {0xd0003, 0x0}, --}; -- --static struct dram_fsp_msg ddr_dram_fsp_msg[] = { -- { -- /* P0 6400mbps */ -- .drate = 6400, -- .ssc = false, -- .fsp_phy_cfg = ddr_phy_fsp0_cfg, -- .fsp_phy_cfg_num = ARRAY_SIZE(ddr_phy_fsp0_cfg), -- .fw_type = FW_1D_IMAGE, -- .fsp_phy_msgh_cfg = ddr_phy_msgh_fsp0_cfg, -- .fsp_phy_msgh_cfg_num = ARRAY_SIZE(ddr_phy_msgh_fsp0_cfg), -- .fsp_phy_pie_cfg = ddr_phy_pie_fsp0_cfg, -- .fsp_phy_pie_cfg_num = ARRAY_SIZE(ddr_phy_pie_fsp0_cfg), -- }, --}; -- --/* dram fsp cfg */ --static struct dram_fsp_cfg ddr_dram_fsp_cfg[] = { -- { -- .ddrc_cfg = ddr_dram_fsp0_ddrc_cfg, -- .ddrc_cfg_num = ARRAY_SIZE(ddr_dram_fsp0_ddrc_cfg), -- .bypass = 0, -- }, --}; -- --/* ddr timing config params */ --struct dram_timing_info dram_timing = { -- .ddrc_cfg = ddr_ddrc_cfg, -- .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), -- .ddrphy_cfg = ddr_ddrphy_cfg, -- .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), -- .fsp_msg = ddr_dram_fsp_msg, -- .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), -- .ddrphy_trained_csr = ddr_ddrphy_trained_csr, -- .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), -- .ddrphy_pie = ddr_phy_pie, -- .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), -- .fsp_table = { 6400, }, -- .fsp_cfg = ddr_dram_fsp_cfg, -- .fsp_cfg_num = ARRAY_SIZE(ddr_dram_fsp_cfg), --}; -diff --git a/boards/ccimx95/ddr/Makefile b/boards/ccimx95/ddr/Makefile -index 646ed78e5aaf..8cceb6e345d5 100644 ---- a/boards/ccimx95/ddr/Makefile -+++ b/boards/ccimx95/ddr/Makefile -@@ -1,4 +1,4 @@ --DDR_CONFIG ?= MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing -+DDR_CONFIG ?= lpddr5_timing_a1 - OBJS += $(OUT)/$(DDR_CONFIG).o - - VPATH += boards/ccimx95/ddr -diff --git a/boards/ccimx95/ddr/XIMX95LPD5EVK19_6400mbps_train_timing_a1.c b/boards/ccimx95/ddr/XIMX95LPD5EVK19_6400mbps_train_timing_a1.c -deleted file mode 100644 -index 9bbb3c8c8ad7..000000000000 ---- a/boards/ccimx95/ddr/XIMX95LPD5EVK19_6400mbps_train_timing_a1.c -+++ /dev/null -@@ -1,10754 +0,0 @@ --/* -- * Copyright 2023-2024 NXP -- * -- * SPDX-License-Identifier: BSD-3-Clause -- * -- * Code generated with DDR Tool v3.5.0_7-ad54c9c4. -- * DDR PHY FW2024.09 -- */ -- --#include "ddr.h" -- --/* Initialize DDRC registers */ --static struct ddrc_cfg_param ddr_ddrc_cfg[] = { -- {0x5e080110, 0x41084001U}, -- {0x5e080000, 0x3ffU}, -- {0x5e080008, 0x0U}, -- {0x5e080010, 0x4U}, -- {0x5e080014, 0x80000U}, -- {0x5e080020, 0x80000000U}, -- {0x5e080024, 0x80007ffU}, -- {0x5e080028, 0x80000000U}, -- {0x5e08002c, 0x7ffU}, -- {0x5e080080, 0x80000522U}, -- {0x5e080084, 0x80000522U}, -- {0x5e080114, 0x1000U}, -- {0x5e080260, 0x21U}, -- {0x5e080268, 0x0U}, -- {0x5e08026c, 0x1004U}, -- {0x5e080f00, 0x8U}, -- {0x5e080f04, 0x800U}, -- {0x5e080800, 0x43931002U}, -- {0x5e080804, 0x3f1f1f1fU}, -- {0x5e081000, 0x0U}, -- {0x5e081220, 0x0U}, -- {0x5e081224, 0x0U}, -- {0x5e081228, 0x0U}, -- {0x5e08122c, 0x0U}, -- {0x5e081230, 0x0U}, -- {0x5e081234, 0x0U}, -- {0x5e081238, 0x0U}, -- {0x5e08123c, 0x0U}, -- {0x5e081240, 0x0U}, -- {0x5e081244, 0x0U}, -- {0x5e081248, 0x0U}, -- {0x5e08124c, 0x0U}, -- {0x5e081250, 0x0U}, -- {0x5e081254, 0x0U}, -- {0x5e081258, 0x0U}, -- {0x5e08125c, 0x0U}, --}; -- --/* DRAM fsp configurations */ --static struct ddrc_cfg_param ddr_dram_fsp0_ddrc_cfg[] = { -- {0x5e080100, 0x020D2100U}, -- {0x5e080104, 0x4866000CU}, -- {0x5e080108, 0xF2F28D47U}, -- {0x5e08010C, 0x20488010U}, -- {0x5e080124, 0x0C34030DU}, -- {0x5e080160, 0x00000101U}, -- {0x5e08016C, 0x01300000U}, -- {0x5e080170, 0x8C010509U}, -- {0x5e080250, 0x00110C11U}, -- {0x5e080254, 0x00680040U}, -- {0x5e080258, 0x03003E80U}, -- {0x5e08025C, 0x40520200U}, -- {0x5e080300, 0x08120809U}, -- {0x5e080304, 0x00680F03U}, -- {0x5e080308, 0x0604061AU}, -- {0x5e08030C, 0x0030001CU}, -- {0x5e080310, 0x20610000U}, -- {0x5e080314, 0x0A0A0407U}, --}; -- --/* PHY Initialize Configuration */ --static struct ddrphy_cfg_param ddr_ddrphy_cfg[] = { -- {0x10080, 0x7}, -- {0x10081, 0x5}, -- {0x10082, 0x6}, -- {0x10083, 0x1}, -- {0x10084, 0x2}, -- {0x10085, 0x0}, -- {0x10086, 0x3}, -- {0x10087, 0x4}, -- {0x11080, 0x0}, -- {0x11081, 0x1}, -- {0x11082, 0x2}, -- {0x11083, 0x3}, -- {0x11084, 0x4}, -- {0x11085, 0x7}, -- {0x11086, 0x6}, -- {0x11087, 0x5}, -- {0x12080, 0x5}, -- {0x12081, 0x6}, -- {0x12082, 0x1}, -- {0x12083, 0x7}, -- {0x12084, 0x4}, -- {0x12085, 0x2}, -- {0x12086, 0x0}, -- {0x12087, 0x3}, -- {0x13080, 0x0}, -- {0x13081, 0x3}, -- {0x13082, 0x2}, -- {0x13083, 0x7}, -- {0x13084, 0x4}, -- {0x13085, 0x5}, -- {0x13086, 0x6}, -- {0x13087, 0x1}, -- {0x30090, 0x4}, -- {0x30091, 0x3}, -- {0x30092, 0x6}, -- {0x30093, 0x0}, -- {0x30094, 0x5}, -- {0x30095, 0x1}, -- {0x30096, 0x2}, -- {0x31090, 0x1}, -- {0x31091, 0x3}, -- {0x31092, 0x4}, -- {0x31093, 0x6}, -- {0x31094, 0x2}, -- {0x31095, 0x0}, -- {0x31096, 0x5}, -- {0x20060, 0x2}, -- {0x200a5, 0x1}, -- {0xd0036, 0x0}, -- {0x200bd, 0xff}, -- {0x20300, 0x808}, -- {0x20303, 0x9}, -- {0x20302, 0x26}, -- {0x20328, 0x0}, -- {0x20301, 0x3}, -- {0x2030b, 0x0}, -- {0x300a7, 0x0}, -- {0x310a7, 0x0}, -- {0x300ae, 0x80}, -- {0x300ad, 0x80}, -- {0x300ac, 0x80}, -- {0x310ae, 0x80}, -- {0x310ad, 0x80}, -- {0x310ac, 0x80}, -- {0xc0086, 0x0}, -- {0x100a3, 0x833}, -- {0x110a3, 0x833}, -- {0x120a3, 0x833}, -- {0x130a3, 0x833}, -- {0xc00f1, 0x6000}, -- {0xc00f2, 0xa9}, -- {0xc00f3, 0x8000}, -- {0xc00f4, 0x5}, -- {0xc00f5, 0x4000}, -- {0xc00f6, 0x2}, -- {0xc00f7, 0xf000}, -- {0xc00f9, 0x6000}, -- {0xc00fa, 0xa9}, -- {0xc00fb, 0x8000}, -- {0xc00fd, 0x4000}, -- {0xc00ff, 0xf000}, -- {0x908ff, 0xf}, -- {0x10093, 0x0}, -- {0x11093, 0x0}, -- {0x12093, 0x0}, -- {0x13093, 0x0}, -- {0x20051, 0x3}, --}; -- --/* PHY trained csr */ --static struct ddrphy_cfg_param ddr_ddrphy_trained_csr[] = { -- {0x200a5, 0x0}, -- {0xd0036, 0x0}, -- {0x200bd, 0x0}, -- {0x20300, 0x0}, -- {0x20303, 0x0}, -- {0x20302, 0x0}, -- {0x20328, 0x0}, -- {0x20301, 0x0}, -- {0x2030b, 0x0}, -- {0x300a7, 0x0}, -- {0x310a7, 0x0}, -- {0x300ae, 0x0}, -- {0x300ad, 0x0}, -- {0x300ac, 0x0}, -- {0x310ae, 0x0}, -- {0x310ad, 0x0}, -- {0x310ac, 0x0}, -- {0xc0086, 0x0}, -- {0x100a3, 0x0}, -- {0x110a3, 0x0}, -- {0x120a3, 0x0}, -- {0x130a3, 0x0}, -- {0xc00f1, 0x0}, -- {0xc00f2, 0x0}, -- {0xc00f3, 0x0}, -- {0xc00f4, 0x0}, -- {0xc00f5, 0x0}, -- {0xc00f6, 0x0}, -- {0xc00f7, 0x0}, -- {0xc00f9, 0x0}, -- {0xc00fa, 0x0}, -- {0xc00fb, 0x0}, -- {0xc00fd, 0x0}, -- {0xc00ff, 0x0}, -- {0x908ff, 0x0}, -- {0x10093, 0x0}, -- {0x11093, 0x0}, -- {0x12093, 0x0}, -- {0x13093, 0x0}, -- {0x20051, 0x0}, -- {0x90802, 0x0}, -- {0x20002, 0x0}, -- {0x20000, 0x0}, -- {0x90801, 0x0}, -- {0x90809, 0x0}, -- {0x1005e, 0x0}, -- {0x10060, 0x0}, -- {0x10062, 0x0}, -- {0x10064, 0x0}, -- {0x1005f, 0x0}, -- {0x10061, 0x0}, -- {0x10063, 0x0}, -- {0x10065, 0x0}, -- {0x1105e, 0x0}, -- {0x11060, 0x0}, -- {0x11062, 0x0}, -- {0x11064, 0x0}, -- {0x1105f, 0x0}, -- {0x11061, 0x0}, -- {0x11063, 0x0}, -- {0x11065, 0x0}, -- {0x1205e, 0x0}, -- {0x12060, 0x0}, -- {0x12062, 0x0}, -- {0x12064, 0x0}, -- {0x1205f, 0x0}, -- {0x12061, 0x0}, -- {0x12063, 0x0}, -- {0x12065, 0x0}, -- {0x1305e, 0x0}, -- {0x13060, 0x0}, -- {0x13062, 0x0}, -- {0x13064, 0x0}, -- {0x1305f, 0x0}, -- {0x13061, 0x0}, -- {0x13063, 0x0}, -- {0x13065, 0x0}, -- {0x10005, 0x0}, -- {0x1000b, 0x0}, -- {0x11005, 0x0}, -- {0x1100b, 0x0}, -- {0x12005, 0x0}, -- {0x1200b, 0x0}, -- {0x13005, 0x0}, -- {0x1300b, 0x0}, -- {0x20007, 0x0}, -- {0x20013, 0x0}, -- {0x30038, 0x0}, -- {0x30039, 0x0}, -- {0x3003a, 0x0}, -- {0x31038, 0x0}, -- {0x31039, 0x0}, -- {0x3103a, 0x0}, -- {0x10038, 0x0}, -- {0x1003a, 0x0}, -- {0x11038, 0x0}, -- {0x1103a, 0x0}, -- {0x12038, 0x0}, -- {0x1203a, 0x0}, -- {0x13038, 0x0}, -- {0x1303a, 0x0}, -- {0x1003b, 0x0}, -- {0x1103b, 0x0}, -- {0x1203b, 0x0}, -- {0x1303b, 0x0}, -- {0x10009, 0x0}, -- {0x10037, 0x0}, -- {0x11009, 0x0}, -- {0x11037, 0x0}, -- {0x12009, 0x0}, -- {0x12037, 0x0}, -- {0x13009, 0x0}, -- {0x13037, 0x0}, -- {0x10004, 0x0}, -- {0x10003, 0x0}, -- {0x11004, 0x0}, -- {0x11003, 0x0}, -- {0x12004, 0x0}, -- {0x12003, 0x0}, -- {0x13004, 0x0}, -- {0x13003, 0x0}, -- {0x20004, 0x0}, -- {0x30050, 0x0}, -- {0x30051, 0x0}, -- {0x30052, 0x0}, -- {0x30053, 0x0}, -- {0x31050, 0x0}, -- {0x31051, 0x0}, -- {0x31052, 0x0}, -- {0x31053, 0x0}, -- {0x1004e, 0x0}, -- {0x1004f, 0x0}, -- {0x10050, 0x0}, -- {0x10051, 0x0}, -- {0x1014e, 0x0}, -- {0x1014f, 0x0}, -- {0x10150, 0x0}, -- {0x10151, 0x0}, -- {0x1024e, 0x0}, -- {0x1024f, 0x0}, -- {0x10250, 0x0}, -- {0x10251, 0x0}, -- {0x1034e, 0x0}, -- {0x1034f, 0x0}, -- {0x10350, 0x0}, -- {0x10351, 0x0}, -- {0x1044e, 0x0}, -- {0x1044f, 0x0}, -- {0x10450, 0x0}, -- {0x10451, 0x0}, -- {0x1054e, 0x0}, -- {0x1054f, 0x0}, -- {0x10550, 0x0}, -- {0x10551, 0x0}, -- {0x1064e, 0x0}, -- {0x1064f, 0x0}, -- {0x10650, 0x0}, -- {0x10651, 0x0}, -- {0x1074e, 0x0}, -- {0x1074f, 0x0}, -- {0x10750, 0x0}, -- {0x10751, 0x0}, -- {0x1084e, 0x0}, -- {0x1084f, 0x0}, -- {0x10850, 0x0}, -- {0x10851, 0x0}, -- {0x1104e, 0x0}, -- {0x1104f, 0x0}, -- {0x11050, 0x0}, -- {0x11051, 0x0}, -- {0x1114e, 0x0}, -- {0x1114f, 0x0}, -- {0x11150, 0x0}, -- {0x11151, 0x0}, -- {0x1124e, 0x0}, -- {0x1124f, 0x0}, -- {0x11250, 0x0}, -- {0x11251, 0x0}, -- {0x1134e, 0x0}, -- {0x1134f, 0x0}, -- {0x11350, 0x0}, -- {0x11351, 0x0}, -- {0x1144e, 0x0}, -- {0x1144f, 0x0}, -- {0x11450, 0x0}, -- {0x11451, 0x0}, -- {0x1154e, 0x0}, -- {0x1154f, 0x0}, -- {0x11550, 0x0}, -- {0x11551, 0x0}, -- {0x1164e, 0x0}, -- {0x1164f, 0x0}, -- {0x11650, 0x0}, -- {0x11651, 0x0}, -- {0x1174e, 0x0}, -- {0x1174f, 0x0}, -- {0x11750, 0x0}, -- {0x11751, 0x0}, -- {0x1184e, 0x0}, -- {0x1184f, 0x0}, -- {0x11850, 0x0}, -- {0x11851, 0x0}, -- {0x1204e, 0x0}, -- {0x1204f, 0x0}, -- {0x12050, 0x0}, -- {0x12051, 0x0}, -- {0x1214e, 0x0}, -- {0x1214f, 0x0}, -- {0x12150, 0x0}, -- {0x12151, 0x0}, -- {0x1224e, 0x0}, -- {0x1224f, 0x0}, -- {0x12250, 0x0}, -- {0x12251, 0x0}, -- {0x1234e, 0x0}, -- {0x1234f, 0x0}, -- {0x12350, 0x0}, -- {0x12351, 0x0}, -- {0x1244e, 0x0}, -- {0x1244f, 0x0}, -- {0x12450, 0x0}, -- {0x12451, 0x0}, -- {0x1254e, 0x0}, -- {0x1254f, 0x0}, -- {0x12550, 0x0}, -- {0x12551, 0x0}, -- {0x1264e, 0x0}, -- {0x1264f, 0x0}, -- {0x12650, 0x0}, -- {0x12651, 0x0}, -- {0x1274e, 0x0}, -- {0x1274f, 0x0}, -- {0x12750, 0x0}, -- {0x12751, 0x0}, -- {0x1284e, 0x0}, -- {0x1284f, 0x0}, -- {0x12850, 0x0}, -- {0x12851, 0x0}, -- {0x1304e, 0x0}, -- {0x1304f, 0x0}, -- {0x13050, 0x0}, -- {0x13051, 0x0}, -- {0x1314e, 0x0}, -- {0x1314f, 0x0}, -- {0x13150, 0x0}, -- {0x13151, 0x0}, -- {0x1324e, 0x0}, -- {0x1324f, 0x0}, -- {0x13250, 0x0}, -- {0x13251, 0x0}, -- {0x1334e, 0x0}, -- {0x1334f, 0x0}, -- {0x13350, 0x0}, -- {0x13351, 0x0}, -- {0x1344e, 0x0}, -- {0x1344f, 0x0}, -- {0x13450, 0x0}, -- {0x13451, 0x0}, -- {0x1354e, 0x0}, -- {0x1354f, 0x0}, -- {0x13550, 0x0}, -- {0x13551, 0x0}, -- {0x1364e, 0x0}, -- {0x1364f, 0x0}, -- {0x13650, 0x0}, -- {0x13651, 0x0}, -- {0x1374e, 0x0}, -- {0x1374f, 0x0}, -- {0x13750, 0x0}, -- {0x13751, 0x0}, -- {0x1384e, 0x0}, -- {0x1384f, 0x0}, -- {0x13850, 0x0}, -- {0x13851, 0x0}, -- {0x30030, 0x0}, -- {0x30031, 0x0}, -- {0x30035, 0x0}, -- {0x31030, 0x0}, -- {0x31031, 0x0}, -- {0x31035, 0x0}, -- {0x10030, 0x0}, -- {0x10035, 0x0}, -- {0x10036, 0x0}, -- {0x11030, 0x0}, -- {0x11035, 0x0}, -- {0x11036, 0x0}, -- {0x12030, 0x0}, -- {0x12035, 0x0}, -- {0x12036, 0x0}, -- {0x13030, 0x0}, -- {0x13035, 0x0}, -- {0x13036, 0x0}, -- {0x3003c, 0x0}, -- {0x3103c, 0x0}, -- {0x1003c, 0x0}, -- {0x1003d, 0x0}, -- {0x1003e, 0x0}, -- {0x1103c, 0x0}, -- {0x1103d, 0x0}, -- {0x1103e, 0x0}, -- {0x1203c, 0x0}, -- {0x1203d, 0x0}, -- {0x1203e, 0x0}, -- {0x1303c, 0x0}, -- {0x1303d, 0x0}, -- {0x1303e, 0x0}, -- {0x20003, 0x0}, -- {0x10006, 0x0}, -- {0x11006, 0x0}, -- {0x12006, 0x0}, -- {0x13006, 0x0}, -- {0x20001, 0x0}, -- {0x20009, 0x0}, -- {0x20008, 0x0}, -- {0x200d9, 0x0}, -- {0x30eef, 0x0}, -- {0x31eef, 0x0}, -- {0x20014, 0x0}, -- {0x9080a, 0x0}, -- {0x10040, 0x0}, -- {0x10042, 0x0}, -- {0x9080d, 0x0}, -- {0x10043, 0x0}, -- {0x10044, 0x0}, -- {0x10045, 0x0}, -- {0x11040, 0x0}, -- {0x11042, 0x0}, -- {0x11043, 0x0}, -- {0x11044, 0x0}, -- {0x11045, 0x0}, -- {0x12040, 0x0}, -- {0x12042, 0x0}, -- {0x12043, 0x0}, -- {0x12044, 0x0}, -- {0x12045, 0x0}, -- {0x13040, 0x0}, -- {0x13042, 0x0}, -- {0x13043, 0x0}, -- {0x13044, 0x0}, -- {0x13045, 0x0}, -- {0x30040, 0x0}, -- {0x30041, 0x0}, -- {0x30042, 0x0}, -- {0x30043, 0x0}, -- {0x30330, 0x0}, -- {0x31040, 0x0}, -- {0x31041, 0x0}, -- {0x31042, 0x0}, -- {0x31043, 0x0}, -- {0x31330, 0x0}, -- {0x20331, 0x0}, -- {0x10048, 0x0}, -- {0x1004a, 0x0}, -- {0x1004b, 0x0}, -- {0x1004c, 0x0}, -- {0x1004d, 0x0}, -- {0x11048, 0x0}, -- {0x1104a, 0x0}, -- {0x1104b, 0x0}, -- {0x1104c, 0x0}, -- {0x1104d, 0x0}, -- {0x12048, 0x0}, -- {0x1204a, 0x0}, -- {0x1204b, 0x0}, -- {0x1204c, 0x0}, -- {0x1204d, 0x0}, -- {0x13048, 0x0}, -- {0x1304a, 0x0}, -- {0x1304b, 0x0}, -- {0x1304c, 0x0}, -- {0x1304d, 0x0}, -- {0x30048, 0x0}, -- {0x30049, 0x0}, -- {0x3004a, 0x0}, -- {0x3004b, 0x0}, -- {0x31048, 0x0}, -- {0x31049, 0x0}, -- {0x3104a, 0x0}, -- {0x3104b, 0x0}, -- {0x30033, 0x0}, -- {0x30034, 0x0}, -- {0x3002e, 0x0}, -- {0x31033, 0x0}, -- {0x31034, 0x0}, -- {0x3102e, 0x0}, -- {0x10033, 0x0}, -- {0x1002e, 0x0}, -- {0x1002f, 0x0}, -- {0x11033, 0x0}, -- {0x1102e, 0x0}, -- {0x1102f, 0x0}, -- {0x12033, 0x0}, -- {0x1202e, 0x0}, -- {0x1202f, 0x0}, -- {0x13033, 0x0}, -- {0x1302e, 0x0}, -- {0x1302f, 0x0}, -- {0x90806, 0x0}, -- {0x100e8, 0x0}, -- {0x100e9, 0x0}, -- {0x110e8, 0x0}, -- {0x110e9, 0x0}, -- {0x120e8, 0x0}, -- {0x120e9, 0x0}, -- {0x130e8, 0x0}, -- {0x130e9, 0x0}, -- {0x10001, 0x0}, -- {0x11001, 0x0}, -- {0x12001, 0x0}, -- {0x13001, 0x0}, -- {0x20012, 0x0}, -- {0x20017, 0x0}, -- {0x2000a, 0x0}, -- {0x20186, 0x0}, -- {0x20187, 0x0}, -- {0x20010, 0x0}, -- {0x20011, 0x0}, -- {0x9080b, 0x0}, -- {0x9080c, 0x0}, -- {0x100a5, 0x0}, -- {0x110a5, 0x0}, -- {0x120a5, 0x0}, -- {0x130a5, 0x0}, -- {0x10014, 0x0}, -- {0x11014, 0x0}, -- {0x12014, 0x0}, -- {0x13014, 0x0}, -- {0x20035, 0x0}, -- {0x20036, 0x0}, -- {0x20037, 0x0}, -- {0x20038, 0x0}, -- {0x20039, 0x0}, -- {0x2003a, 0x0}, -- {0x2003b, 0x0}, -- {0x2003c, 0x0}, -- {0x2003d, 0x0}, -- {0x2003e, 0x0}, -- {0x2003f, 0x0}, -- {0x20040, 0x0}, -- {0x2002c, 0x0}, -- {0x2002d, 0x0}, -- {0x20030, 0x0}, -- {0x2002e, 0x0}, -- {0x2002f, 0x0}, -- {0x2000c, 0x0}, -- {0x2001b, 0x0}, -- {0x10007, 0x0}, -- {0x11007, 0x0}, -- {0x12007, 0x0}, -- {0x13007, 0x0}, -- {0x908f0, 0x0}, -- {0x908f1, 0x0}, -- {0x908f2, 0x0}, -- {0x908f3, 0x0}, -- {0x908f4, 0x0}, -- {0x908f5, 0x0}, -- {0x908f6, 0x0}, -- {0x908f7, 0x0}, -- {0x41008, 0x0}, -- {0x41009, 0x0}, -- {0x4100a, 0x0}, -- {0x4100b, 0x0}, -- {0x4100c, 0x0}, -- {0x4100d, 0x0}, -- {0x4100e, 0x0}, -- {0x4100f, 0x0}, -- {0x41010, 0x0}, -- {0x41011, 0x0}, -- {0x41012, 0x0}, -- {0x41013, 0x0}, -- {0x41014, 0x0}, -- {0x41015, 0x0}, -- {0x41016, 0x0}, -- {0x41017, 0x0}, -- {0x41018, 0x0}, -- {0x41019, 0x0}, -- {0x4101a, 0x0}, -- {0x4101b, 0x0}, -- {0x4101c, 0x0}, -- {0x4101d, 0x0}, -- {0x4101e, 0x0}, -- {0x4101f, 0x0}, -- {0x41020, 0x0}, -- {0x41021, 0x0}, -- {0x41022, 0x0}, -- {0x41023, 0x0}, -- {0x41024, 0x0}, -- {0x41025, 0x0}, -- {0x41026, 0x0}, -- {0x41027, 0x0}, -- {0x41028, 0x0}, -- {0x41029, 0x0}, -- {0x4102a, 0x0}, -- {0x4102b, 0x0}, -- {0x4102c, 0x0}, -- {0x4102d, 0x0}, -- {0x4102e, 0x0}, -- {0x4102f, 0x0}, -- {0x41030, 0x0}, -- {0x41031, 0x0}, -- {0x41032, 0x0}, -- {0x41033, 0x0}, -- {0x41034, 0x0}, -- {0x41035, 0x0}, -- {0x41036, 0x0}, -- {0x41037, 0x0}, -- {0x41038, 0x0}, -- {0x41039, 0x0}, -- {0x4103a, 0x0}, -- {0x4103b, 0x0}, -- {0x4103c, 0x0}, -- {0x4103d, 0x0}, -- {0x4103e, 0x0}, -- {0x4103f, 0x0}, -- {0x41040, 0x0}, -- {0x41041, 0x0}, -- {0x41042, 0x0}, -- {0x41043, 0x0}, -- {0x41044, 0x0}, -- {0x41045, 0x0}, -- {0x41046, 0x0}, -- {0x41047, 0x0}, -- {0x41048, 0x0}, -- {0x41049, 0x0}, -- {0x4104a, 0x0}, -- {0x4104b, 0x0}, -- {0x4104c, 0x0}, -- {0x4104d, 0x0}, -- {0x4104e, 0x0}, -- {0x4104f, 0x0}, -- {0x41050, 0x0}, -- {0x41051, 0x0}, -- {0x41052, 0x0}, -- {0x41053, 0x0}, -- {0x41054, 0x0}, -- {0x41055, 0x0}, -- {0x41056, 0x0}, -- {0x41057, 0x0}, -- {0x41058, 0x0}, -- {0x41059, 0x0}, -- {0x4105a, 0x0}, -- {0x4105b, 0x0}, -- {0x4105c, 0x0}, -- {0x4105d, 0x0}, -- {0x4105e, 0x0}, -- {0x4105f, 0x0}, -- {0x41060, 0x0}, -- {0x41061, 0x0}, -- {0x41062, 0x0}, -- {0x41063, 0x0}, -- {0x41064, 0x0}, -- {0x41065, 0x0}, -- {0x41066, 0x0}, -- {0x41067, 0x0}, -- {0x41068, 0x0}, -- {0x41069, 0x0}, -- {0x4106a, 0x0}, -- {0x4106b, 0x0}, -- {0x4106c, 0x0}, -- {0x4106d, 0x0}, -- {0x4106e, 0x0}, -- {0x4106f, 0x0}, -- {0x41070, 0x0}, -- {0x41071, 0x0}, -- {0x41072, 0x0}, -- {0x41073, 0x0}, -- {0x41074, 0x0}, -- {0x41075, 0x0}, -- {0x41076, 0x0}, -- {0x41077, 0x0}, -- {0x41078, 0x0}, -- {0x41079, 0x0}, -- {0x4107a, 0x0}, -- {0x4107b, 0x0}, -- {0x4107c, 0x0}, -- {0x4107d, 0x0}, -- {0x4107e, 0x0}, -- {0x4107f, 0x0}, -- {0x41080, 0x0}, -- {0x41081, 0x0}, -- {0x41082, 0x0}, -- {0x41083, 0x0}, -- {0x41084, 0x0}, -- {0x41085, 0x0}, -- {0x41086, 0x0}, -- {0x41087, 0x0}, -- {0x41088, 0x0}, -- {0x41089, 0x0}, -- {0x4108a, 0x0}, -- {0x4108b, 0x0}, -- {0x4108c, 0x0}, -- {0x4108d, 0x0}, -- {0x4108e, 0x0}, -- {0x4108f, 0x0}, -- {0x41090, 0x0}, -- {0x41091, 0x0}, -- {0x41092, 0x0}, -- {0x41093, 0x0}, -- {0x41094, 0x0}, -- {0x41095, 0x0}, -- {0x41096, 0x0}, -- {0x41097, 0x0}, -- {0x41098, 0x0}, -- {0x41099, 0x0}, -- {0x4109a, 0x0}, -- {0x4109b, 0x0}, -- {0x4109c, 0x0}, -- {0x4109d, 0x0}, -- {0x4109e, 0x0}, -- {0x4109f, 0x0}, -- {0x410a0, 0x0}, -- {0x410a1, 0x0}, -- {0x410a2, 0x0}, -- {0x410a3, 0x0}, -- {0x410a4, 0x0}, -- {0x410a5, 0x0}, -- {0x410a6, 0x0}, -- {0x410a7, 0x0}, -- {0x410a8, 0x0}, -- {0x410a9, 0x0}, -- {0x410aa, 0x0}, -- {0x410ab, 0x0}, -- {0x410ac, 0x0}, -- {0x410ad, 0x0}, -- {0x410ae, 0x0}, -- {0x410af, 0x0}, -- {0x410b0, 0x0}, -- {0x410b1, 0x0}, -- {0x410b2, 0x0}, -- {0x410b3, 0x0}, -- {0x410b4, 0x0}, -- {0x410b5, 0x0}, -- {0x410b6, 0x0}, -- {0x410b7, 0x0}, -- {0x410b8, 0x0}, -- {0x410b9, 0x0}, -- {0x410ba, 0x0}, -- {0x410bb, 0x0}, -- {0x410bc, 0x0}, -- {0x410bd, 0x0}, -- {0x410be, 0x0}, -- {0x410bf, 0x0}, -- {0x410c0, 0x0}, -- {0x410c1, 0x0}, -- {0x410c2, 0x0}, -- {0x410c3, 0x0}, -- {0x410c4, 0x0}, -- {0x410c5, 0x0}, -- {0x410c6, 0x0}, -- {0x410c7, 0x0}, -- {0x410c8, 0x0}, -- {0x410c9, 0x0}, -- {0x410ca, 0x0}, -- {0x410cb, 0x0}, -- {0x410cc, 0x0}, -- {0x410cd, 0x0}, -- {0x410ce, 0x0}, -- {0x410cf, 0x0}, -- {0x410d0, 0x0}, -- {0x410d1, 0x0}, -- {0x410d2, 0x0}, -- {0x410d3, 0x0}, -- {0x410d4, 0x0}, -- {0x410d5, 0x0}, -- {0x410d6, 0x0}, -- {0x410d7, 0x0}, -- {0x410d8, 0x0}, -- {0x410d9, 0x0}, -- {0x410da, 0x0}, -- {0x410db, 0x0}, -- {0x410dc, 0x0}, -- {0x410dd, 0x0}, -- {0x410de, 0x0}, -- {0x410df, 0x0}, -- {0x410e0, 0x0}, -- {0x410e1, 0x0}, -- {0x410e2, 0x0}, -- {0x410e3, 0x0}, -- {0x410e4, 0x0}, -- {0x410e5, 0x0}, -- {0x410e6, 0x0}, -- {0x410e7, 0x0}, -- {0x410e8, 0x0}, -- {0x410e9, 0x0}, -- {0x410ea, 0x0}, -- {0x410eb, 0x0}, -- {0x410ec, 0x0}, -- {0x410ed, 0x0}, -- {0x410ee, 0x0}, -- {0x410ef, 0x0}, -- {0x410f0, 0x0}, -- {0x410f1, 0x0}, -- {0x410f2, 0x0}, -- {0x410f3, 0x0}, -- {0x410f4, 0x0}, -- {0x410f5, 0x0}, -- {0x410f6, 0x0}, -- {0x410f7, 0x0}, -- {0x410f8, 0x0}, -- {0x410f9, 0x0}, -- {0x410fa, 0x0}, -- {0x410fb, 0x0}, -- {0x410fc, 0x0}, -- {0x410fd, 0x0}, -- {0x410fe, 0x0}, -- {0x410ff, 0x0}, -- {0x41100, 0x0}, -- {0x41101, 0x0}, -- {0x41102, 0x0}, -- {0x41103, 0x0}, -- {0x41104, 0x0}, -- {0x41105, 0x0}, -- {0x41106, 0x0}, -- {0x41107, 0x0}, -- {0x41108, 0x0}, -- {0x41109, 0x0}, -- {0x4110a, 0x0}, -- {0x4110b, 0x0}, -- {0x4110c, 0x0}, -- {0x4110d, 0x0}, -- {0x4110e, 0x0}, -- {0x4110f, 0x0}, -- {0x41110, 0x0}, -- {0x41111, 0x0}, -- {0x41112, 0x0}, -- {0x41113, 0x0}, -- {0x41114, 0x0}, -- {0x41115, 0x0}, -- {0x41116, 0x0}, -- {0x41117, 0x0}, -- {0x41118, 0x0}, -- {0x41119, 0x0}, -- {0x4111a, 0x0}, -- {0x4111b, 0x0}, -- {0x4111c, 0x0}, -- {0x4111d, 0x0}, -- {0x4111e, 0x0}, -- {0x4111f, 0x0}, -- {0x41120, 0x0}, -- {0x41121, 0x0}, -- {0x41122, 0x0}, -- {0x41123, 0x0}, -- {0x41124, 0x0}, -- {0x41125, 0x0}, -- {0x41126, 0x0}, -- {0x41127, 0x0}, -- {0x41128, 0x0}, -- {0x41129, 0x0}, -- {0x4112a, 0x0}, -- {0x4112b, 0x0}, -- {0x4112c, 0x0}, -- {0x4112d, 0x0}, -- {0x4112e, 0x0}, -- {0x4112f, 0x0}, -- {0x41130, 0x0}, -- {0x41131, 0x0}, -- {0x41132, 0x0}, -- {0x41133, 0x0}, -- {0x41134, 0x0}, -- {0x41135, 0x0}, -- {0x41136, 0x0}, -- {0x41137, 0x0}, -- {0x41138, 0x0}, -- {0x41139, 0x0}, -- {0x4113a, 0x0}, -- {0x4113b, 0x0}, -- {0x4113c, 0x0}, -- {0x4113d, 0x0}, -- {0x4113e, 0x0}, -- {0x4113f, 0x0}, -- {0x41140, 0x0}, -- {0x41141, 0x0}, -- {0x41142, 0x0}, -- {0x41143, 0x0}, -- {0x41144, 0x0}, -- {0x41145, 0x0}, -- {0x41146, 0x0}, -- {0x41147, 0x0}, -- {0x41148, 0x0}, -- {0x41149, 0x0}, -- {0x4114a, 0x0}, -- {0x4114b, 0x0}, -- {0x4114c, 0x0}, -- {0x4114d, 0x0}, -- {0x4114e, 0x0}, -- {0x4114f, 0x0}, -- {0x41150, 0x0}, -- {0x41151, 0x0}, -- {0x41152, 0x0}, -- {0x41153, 0x0}, -- {0x41154, 0x0}, -- {0x41155, 0x0}, -- {0x41156, 0x0}, -- {0x41157, 0x0}, -- {0x41158, 0x0}, -- {0x41159, 0x0}, -- {0x4115a, 0x0}, -- {0x4115b, 0x0}, -- {0x4115c, 0x0}, -- {0x4115d, 0x0}, -- {0x4115e, 0x0}, -- {0x4115f, 0x0}, -- {0x41160, 0x0}, -- {0x41161, 0x0}, -- {0x41162, 0x0}, -- {0x41163, 0x0}, -- {0x41164, 0x0}, -- {0x41165, 0x0}, -- {0x41166, 0x0}, -- {0x41167, 0x0}, -- {0x41168, 0x0}, -- {0x41169, 0x0}, -- {0x4116a, 0x0}, -- {0x4116b, 0x0}, -- {0x4116c, 0x0}, -- {0x4116d, 0x0}, -- {0x4116e, 0x0}, -- {0x4116f, 0x0}, -- {0x41170, 0x0}, -- {0x41171, 0x0}, -- {0x41172, 0x0}, -- {0x41173, 0x0}, -- {0x41174, 0x0}, -- {0x41175, 0x0}, -- {0x41176, 0x0}, -- {0x41177, 0x0}, -- {0x41178, 0x0}, -- {0x41179, 0x0}, -- {0x4117a, 0x0}, -- {0x4117b, 0x0}, -- {0x4117c, 0x0}, -- {0x4117d, 0x0}, -- {0x4117e, 0x0}, -- {0x4117f, 0x0}, -- {0x41180, 0x0}, -- {0x41181, 0x0}, -- {0x41182, 0x0}, -- {0x41183, 0x0}, -- {0x41184, 0x0}, -- {0x41185, 0x0}, -- {0x41186, 0x0}, -- {0x41187, 0x0}, -- {0x41188, 0x0}, -- {0x41189, 0x0}, -- {0x4118a, 0x0}, -- {0x4118b, 0x0}, -- {0x4118c, 0x0}, -- {0x4118d, 0x0}, -- {0x4118e, 0x0}, -- {0x4118f, 0x0}, -- {0x41190, 0x0}, -- {0x41191, 0x0}, -- {0x41192, 0x0}, -- {0x41193, 0x0}, -- {0x41194, 0x0}, -- {0x41195, 0x0}, -- {0x41196, 0x0}, -- {0x41197, 0x0}, -- {0x41198, 0x0}, -- {0x41199, 0x0}, -- {0x4119a, 0x0}, -- {0x4119b, 0x0}, -- {0x4119c, 0x0}, -- {0x4119d, 0x0}, -- {0x4119e, 0x0}, -- {0x4119f, 0x0}, -- {0x411a0, 0x0}, -- {0x411a1, 0x0}, -- {0x411a2, 0x0}, -- {0x411a3, 0x0}, -- {0x411a4, 0x0}, -- {0x411a5, 0x0}, -- {0x411a6, 0x0}, -- {0x411a7, 0x0}, -- {0x411a8, 0x0}, -- {0x411a9, 0x0}, -- {0x411aa, 0x0}, -- {0x411ab, 0x0}, -- {0x411ac, 0x0}, -- {0x411ad, 0x0}, -- {0x411ae, 0x0}, -- {0x411af, 0x0}, -- {0x411b0, 0x0}, -- {0x411b1, 0x0}, -- {0x411b2, 0x0}, -- {0x411b3, 0x0}, -- {0x411b4, 0x0}, -- {0x411b5, 0x0}, -- {0x411b6, 0x0}, -- {0x411b7, 0x0}, -- {0x411b8, 0x0}, -- {0x411b9, 0x0}, -- {0x411ba, 0x0}, -- {0x411bb, 0x0}, -- {0x411bc, 0x0}, -- {0x411bd, 0x0}, -- {0x411be, 0x0}, -- {0x411bf, 0x0}, -- {0x411c0, 0x0}, -- {0x411c1, 0x0}, -- {0x411c2, 0x0}, -- {0x411c3, 0x0}, -- {0x411c4, 0x0}, -- {0x411c5, 0x0}, -- {0x411c6, 0x0}, -- {0x411c7, 0x0}, -- {0x20015, 0x0}, -- {0x2004a, 0x0}, -- {0x2004b, 0x0}, -- {0x2004c, 0x0}, -- {0x2004d, 0x0}, -- {0x20088, 0x0}, -- {0x20089, 0x0}, -- {0x2008a, 0x0}, -- {0x2008c, 0x0}, -- {0x20041, 0x0}, -- {0x20045, 0x0}, -- {0x10057, 0x0}, -- {0x11057, 0x0}, -- {0x12057, 0x0}, -- {0x13057, 0x0}, -- {0x1000f, 0x0}, -- {0x1100f, 0x0}, -- {0x1200f, 0x0}, -- {0x1300f, 0x0}, -- {0x90803, 0x0}, -- {0x90804, 0x0}, -- {0x90805, 0x0}, -- {0x90903, 0x0}, -- {0x9090b, 0x0}, -- {0x90811, 0x0}, -- {0x90812, 0x0}, -- {0x20072, 0x0}, -- {0x9080e, 0x0}, -- {0x20073, 0x0}, -- {0x9080f, 0x0}, -- {0x41000, 0x0}, -- {0x41001, 0x0}, -- {0x41002, 0x0}, -- {0x41003, 0x0}, -- {0x41004, 0x0}, -- {0x41005, 0x0}, -- {0x41006, 0x0}, -- {0x41007, 0x0}, -- {0x41388, 0x0}, -- {0x41389, 0x0}, -- {0x4138a, 0x0}, -- {0x4138b, 0x0}, -- {0x4138c, 0x0}, -- {0x4138d, 0x0}, -- {0x4138e, 0x0}, -- {0x4138f, 0x0}, -- {0x41390, 0x0}, -- {0x41391, 0x0}, -- {0x41392, 0x0}, -- {0x41393, 0x0}, -- {0x41394, 0x0}, -- {0x41395, 0x0}, -- {0x41396, 0x0}, -- {0x41397, 0x0}, -- {0x41398, 0x0}, -- {0x41399, 0x0}, -- {0x4139a, 0x0}, -- {0x4139b, 0x0}, -- {0x4139c, 0x0}, -- {0x4139d, 0x0}, -- {0x4139e, 0x0}, -- {0x4139f, 0x0}, -- {0x413a0, 0x0}, -- {0x413a1, 0x0}, -- {0x413a2, 0x0}, -- {0x413a3, 0x0}, -- {0x413a4, 0x0}, -- {0x413a5, 0x0}, -- {0x413a6, 0x0}, -- {0x413a7, 0x0}, -- {0x413a8, 0x0}, -- {0x413a9, 0x0}, -- {0x413aa, 0x0}, -- {0x413ab, 0x0}, -- {0x413ac, 0x0}, -- {0x413ad, 0x0}, -- {0x413ae, 0x0}, -- {0x413af, 0x0}, -- {0x413b0, 0x0}, -- {0x413b1, 0x0}, -- {0x413b2, 0x0}, -- {0x413b3, 0x0}, -- {0x413b4, 0x0}, -- {0x413b5, 0x0}, -- {0x413b6, 0x0}, -- {0x413b7, 0x0}, -- {0x413b8, 0x0}, -- {0x413b9, 0x0}, -- {0x413ba, 0x0}, -- {0x413bb, 0x0}, -- {0x413bc, 0x0}, -- {0x413bd, 0x0}, -- {0x413be, 0x0}, -- {0x413bf, 0x0}, -- {0x413c0, 0x0}, -- {0x413c1, 0x0}, -- {0x413c2, 0x0}, -- {0x413c3, 0x0}, -- {0x413c4, 0x0}, -- {0x413c5, 0x0}, -- {0x413c6, 0x0}, -- {0x413c7, 0x0}, -- {0x413c8, 0x0}, -- {0x413c9, 0x0}, -- {0x413ca, 0x0}, -- {0x413cb, 0x0}, -- {0x413cc, 0x0}, -- {0x413cd, 0x0}, -- {0x413ce, 0x0}, -- {0x413cf, 0x0}, -- {0x413d0, 0x0}, -- {0x413d1, 0x0}, -- {0x413d2, 0x0}, -- {0x413d3, 0x0}, -- {0x413d4, 0x0}, -- {0x413d5, 0x0}, -- {0x413d6, 0x0}, -- {0x413d7, 0x0}, -- {0x413d8, 0x0}, -- {0x413d9, 0x0}, -- {0x413da, 0x0}, -- {0x413db, 0x0}, -- {0x413dc, 0x0}, -- {0x413dd, 0x0}, -- {0x413de, 0x0}, -- {0x413df, 0x0}, -- {0x413e0, 0x0}, -- {0x413e1, 0x0}, -- {0x413e2, 0x0}, -- {0x413e3, 0x0}, -- {0x413e4, 0x0}, -- {0x413e5, 0x0}, -- {0x413e6, 0x0}, -- {0x413e7, 0x0}, -- {0x413e8, 0x0}, -- {0x413e9, 0x0}, -- {0x413ea, 0x0}, -- {0x413eb, 0x0}, -- {0x413ec, 0x0}, -- {0x413ed, 0x0}, -- {0x413ee, 0x0}, -- {0x413ef, 0x0}, -- {0x413f0, 0x0}, -- {0x413f1, 0x0}, -- {0x413f2, 0x0}, -- {0x413f3, 0x0}, -- {0x413f4, 0x0}, -- {0x413f5, 0x0}, -- {0x413f6, 0x0}, -- {0x413f7, 0x0}, -- {0x413f8, 0x0}, -- {0x413f9, 0x0}, -- {0x413fa, 0x0}, -- {0x413fb, 0x0}, -- {0x413fc, 0x0}, -- {0x413fd, 0x0}, -- {0x413fe, 0x0}, -- {0x413ff, 0x0}, -- {0x41400, 0x0}, -- {0x41401, 0x0}, -- {0x41402, 0x0}, -- {0x41403, 0x0}, -- {0x41404, 0x0}, -- {0x41405, 0x0}, -- {0x41406, 0x0}, -- {0x41407, 0x0}, -- {0x41408, 0x0}, -- {0x41409, 0x0}, -- {0x4140a, 0x0}, -- {0x4140b, 0x0}, -- {0x4140c, 0x0}, -- {0x4140d, 0x0}, -- {0x4140e, 0x0}, -- {0x4140f, 0x0}, -- {0x41410, 0x0}, -- {0x41411, 0x0}, -- {0x41412, 0x0}, -- {0x41413, 0x0}, -- {0x41414, 0x0}, -- {0x41415, 0x0}, -- {0x41416, 0x0}, -- {0x41417, 0x0}, -- {0x41418, 0x0}, -- {0x41419, 0x0}, -- {0x4141a, 0x0}, -- {0x4141b, 0x0}, -- {0x4141c, 0x0}, -- {0x4141d, 0x0}, -- {0x4141e, 0x0}, -- {0x4141f, 0x0}, -- {0x41420, 0x0}, -- {0x41421, 0x0}, -- {0x41422, 0x0}, -- {0x41423, 0x0}, -- {0x41424, 0x0}, -- {0x41425, 0x0}, -- {0x41426, 0x0}, -- {0x41427, 0x0}, -- {0x41428, 0x0}, -- {0x41429, 0x0}, -- {0x4142a, 0x0}, -- {0x4142b, 0x0}, -- {0x4142c, 0x0}, -- {0x4142d, 0x0}, -- {0x4142e, 0x0}, -- {0x4142f, 0x0}, -- {0x41430, 0x0}, -- {0x41431, 0x0}, -- {0x41432, 0x0}, -- {0x41433, 0x0}, -- {0x41434, 0x0}, -- {0x41435, 0x0}, -- {0x41436, 0x0}, -- {0x41437, 0x0}, -- {0x41438, 0x0}, -- {0x41439, 0x0}, -- {0x4143a, 0x0}, -- {0x4143b, 0x0}, -- {0x4143c, 0x0}, -- {0x4143d, 0x0}, -- {0x4143e, 0x0}, -- {0x4143f, 0x0}, -- {0x41440, 0x0}, -- {0x41441, 0x0}, -- {0x41442, 0x0}, -- {0x41443, 0x0}, -- {0x41444, 0x0}, -- {0x41445, 0x0}, -- {0x41446, 0x0}, -- {0x41447, 0x0}, -- {0x41448, 0x0}, -- {0x41449, 0x0}, -- {0x4144a, 0x0}, -- {0x4144b, 0x0}, -- {0x4144c, 0x0}, -- {0x4144d, 0x0}, -- {0x4144e, 0x0}, -- {0x4144f, 0x0}, -- {0x41450, 0x0}, -- {0x41451, 0x0}, -- {0x41452, 0x0}, -- {0x41453, 0x0}, -- {0x41454, 0x0}, -- {0x41455, 0x0}, -- {0x41456, 0x0}, -- {0x41457, 0x0}, -- {0x41458, 0x0}, -- {0x41459, 0x0}, -- {0x4145a, 0x0}, -- {0x4145b, 0x0}, -- {0x4145c, 0x0}, -- {0x4145d, 0x0}, -- {0x4145e, 0x0}, -- {0x4145f, 0x0}, -- {0x41460, 0x0}, -- {0x41461, 0x0}, -- {0x41462, 0x0}, -- {0x41463, 0x0}, -- {0x41464, 0x0}, -- {0x41465, 0x0}, -- {0x41466, 0x0}, -- {0x41467, 0x0}, -- {0x41468, 0x0}, -- {0x41469, 0x0}, -- {0x4146a, 0x0}, -- {0x4146b, 0x0}, -- {0x4146c, 0x0}, -- {0x4146d, 0x0}, -- {0x4146e, 0x0}, -- {0x4146f, 0x0}, -- {0x41470, 0x0}, -- {0x41471, 0x0}, -- {0x41472, 0x0}, -- {0x41473, 0x0}, -- {0x41474, 0x0}, -- {0x41475, 0x0}, -- {0x41476, 0x0}, -- {0x41477, 0x0}, -- {0x41478, 0x0}, -- {0x41479, 0x0}, -- {0x4147a, 0x0}, -- {0x4147b, 0x0}, -- {0x4147c, 0x0}, -- {0x4147d, 0x0}, -- {0x4147e, 0x0}, -- {0x4147f, 0x0}, -- {0x41480, 0x0}, -- {0x41481, 0x0}, -- {0x41482, 0x0}, -- {0x41483, 0x0}, -- {0x41484, 0x0}, -- {0x41485, 0x0}, -- {0x41486, 0x0}, -- {0x41487, 0x0}, -- {0x41488, 0x0}, -- {0x41489, 0x0}, -- {0x4148a, 0x0}, -- {0x4148b, 0x0}, -- {0x4148c, 0x0}, -- {0x4148d, 0x0}, -- {0x4148e, 0x0}, -- {0x4148f, 0x0}, -- {0x41490, 0x0}, -- {0x41491, 0x0}, -- {0x41492, 0x0}, -- {0x41493, 0x0}, -- {0x41494, 0x0}, -- {0x41495, 0x0}, -- {0x41496, 0x0}, -- {0x41497, 0x0}, -- {0x41498, 0x0}, -- {0x41499, 0x0}, -- {0x4149a, 0x0}, -- {0x4149b, 0x0}, -- {0x4149c, 0x0}, -- {0x4149d, 0x0}, -- {0x4149e, 0x0}, -- {0x4149f, 0x0}, -- {0x414a0, 0x0}, -- {0x414a1, 0x0}, -- {0x414a2, 0x0}, -- {0x414a3, 0x0}, -- {0x414a4, 0x0}, -- {0x414a5, 0x0}, -- {0x414a6, 0x0}, -- {0x414a7, 0x0}, -- {0x414a8, 0x0}, -- {0x414a9, 0x0}, -- {0x414aa, 0x0}, -- {0x414ab, 0x0}, -- {0x414ac, 0x0}, -- {0x414ad, 0x0}, -- {0x414ae, 0x0}, -- {0x414af, 0x0}, -- {0x414b0, 0x0}, -- {0x414b1, 0x0}, -- {0x414b2, 0x0}, -- {0x414b3, 0x0}, -- {0x414b4, 0x0}, -- {0x414b5, 0x0}, -- {0x414b6, 0x0}, -- {0x414b7, 0x0}, -- {0x414b8, 0x0}, -- {0x414b9, 0x0}, -- {0x414ba, 0x0}, -- {0x414bb, 0x0}, -- {0x414bc, 0x0}, -- {0x414bd, 0x0}, -- {0x414be, 0x0}, -- {0x414bf, 0x0}, -- {0x414c0, 0x0}, -- {0x414c1, 0x0}, -- {0x414c2, 0x0}, -- {0x414c3, 0x0}, -- {0x414c4, 0x0}, -- {0x414c5, 0x0}, -- {0x414c6, 0x0}, -- {0x414c7, 0x0}, -- {0x414c8, 0x0}, -- {0x414c9, 0x0}, -- {0x414ca, 0x0}, -- {0x414cb, 0x0}, -- {0x414cc, 0x0}, -- {0x414cd, 0x0}, -- {0x414ce, 0x0}, -- {0x414cf, 0x0}, -- {0x414d0, 0x0}, -- {0x414d1, 0x0}, -- {0x414d2, 0x0}, -- {0x414d3, 0x0}, -- {0x414d4, 0x0}, -- {0x414d5, 0x0}, -- {0x414d6, 0x0}, -- {0x414d7, 0x0}, -- {0x414d8, 0x0}, -- {0x414d9, 0x0}, -- {0x414da, 0x0}, -- {0x414db, 0x0}, -- {0x414dc, 0x0}, -- {0x414dd, 0x0}, -- {0x414de, 0x0}, -- {0x414df, 0x0}, -- {0x414e0, 0x0}, -- {0x414e1, 0x0}, -- {0x414e2, 0x0}, -- {0x414e3, 0x0}, -- {0x414e4, 0x0}, -- {0x414e5, 0x0}, -- {0x414e6, 0x0}, -- {0x414e7, 0x0}, -- {0x414e8, 0x0}, -- {0x414e9, 0x0}, -- {0x414ea, 0x0}, -- {0x414eb, 0x0}, -- {0x414ec, 0x0}, -- {0x414ed, 0x0}, -- {0x414ee, 0x0}, -- {0x414ef, 0x0}, -- {0x414f0, 0x0}, -- {0x414f1, 0x0}, -- {0x414f2, 0x0}, -- {0x414f3, 0x0}, -- {0x414f4, 0x0}, -- {0x414f5, 0x0}, -- {0x414f6, 0x0}, -- {0x414f7, 0x0}, -- {0x414f8, 0x0}, -- {0x414f9, 0x0}, -- {0x414fa, 0x0}, -- {0x414fb, 0x0}, -- {0x414fc, 0x0}, -- {0x414fd, 0x0}, -- {0x414fe, 0x0}, -- {0x414ff, 0x0}, -- {0x41500, 0x0}, -- {0x41501, 0x0}, -- {0x41502, 0x0}, -- {0x41503, 0x0}, -- {0x41504, 0x0}, -- {0x41505, 0x0}, -- {0x41506, 0x0}, -- {0x41507, 0x0}, -- {0x41508, 0x0}, -- {0x41509, 0x0}, -- {0x4150a, 0x0}, -- {0x4150b, 0x0}, -- {0x4150c, 0x0}, -- {0x4150d, 0x0}, -- {0x4150e, 0x0}, -- {0x4150f, 0x0}, -- {0x41510, 0x0}, -- {0x41511, 0x0}, -- {0x41512, 0x0}, -- {0x41513, 0x0}, -- {0x41514, 0x0}, -- {0x41515, 0x0}, -- {0x41516, 0x0}, -- {0x41517, 0x0}, -- {0x41518, 0x0}, -- {0x41519, 0x0}, -- {0x4151a, 0x0}, -- {0x4151b, 0x0}, -- {0x4151c, 0x0}, -- {0x4151d, 0x0}, -- {0x4151e, 0x0}, -- {0x4151f, 0x0}, -- {0x41520, 0x0}, -- {0x41521, 0x0}, -- {0x41522, 0x0}, -- {0x41523, 0x0}, -- {0x41524, 0x0}, -- {0x41525, 0x0}, -- {0x41526, 0x0}, -- {0x41527, 0x0}, -- {0x41528, 0x0}, -- {0x41529, 0x0}, -- {0x4152a, 0x0}, -- {0x4152b, 0x0}, -- {0x4152c, 0x0}, -- {0x4152d, 0x0}, -- {0x4152e, 0x0}, -- {0x4152f, 0x0}, -- {0x41530, 0x0}, -- {0x41531, 0x0}, -- {0x41532, 0x0}, -- {0x41533, 0x0}, -- {0x41534, 0x0}, -- {0x41535, 0x0}, -- {0x41536, 0x0}, -- {0x41537, 0x0}, -- {0x41538, 0x0}, -- {0x41539, 0x0}, -- {0x4153a, 0x0}, -- {0x4153b, 0x0}, -- {0x4153c, 0x0}, -- {0x4153d, 0x0}, -- {0x4153e, 0x0}, -- {0x4153f, 0x0}, -- {0x41540, 0x0}, -- {0x41541, 0x0}, -- {0x41542, 0x0}, -- {0x41543, 0x0}, -- {0x41544, 0x0}, -- {0x41545, 0x0}, -- {0x41546, 0x0}, -- {0x41547, 0x0}, -- {0x41548, 0x0}, -- {0x41549, 0x0}, -- {0x4154a, 0x0}, -- {0x4154b, 0x0}, -- {0x4154c, 0x0}, -- {0x4154d, 0x0}, -- {0x4154e, 0x0}, -- {0x4154f, 0x0}, -- {0x41550, 0x0}, -- {0x41551, 0x0}, -- {0x41552, 0x0}, -- {0x41553, 0x0}, -- {0x41554, 0x0}, -- {0x41555, 0x0}, -- {0x41556, 0x0}, -- {0x41557, 0x0}, -- {0x41558, 0x0}, -- {0x41559, 0x0}, -- {0x4155a, 0x0}, -- {0x4155b, 0x0}, -- {0x4155c, 0x0}, -- {0x4155d, 0x0}, -- {0x4155e, 0x0}, -- {0x4155f, 0x0}, -- {0x41560, 0x0}, -- {0x41561, 0x0}, -- {0x41562, 0x0}, -- {0x41563, 0x0}, -- {0x41564, 0x0}, -- {0x41565, 0x0}, -- {0x41566, 0x0}, -- {0x41567, 0x0}, -- {0x41568, 0x0}, -- {0x41569, 0x0}, -- {0x4156a, 0x0}, -- {0x4156b, 0x0}, -- {0x4156c, 0x0}, -- {0x4156d, 0x0}, -- {0x4156e, 0x0}, -- {0x4156f, 0x0}, -- {0x41570, 0x0}, -- {0x41571, 0x0}, -- {0x41572, 0x0}, -- {0x41573, 0x0}, -- {0x41574, 0x0}, -- {0x41575, 0x0}, -- {0x41576, 0x0}, -- {0x41577, 0x0}, -- {0x41578, 0x0}, -- {0x41579, 0x0}, -- {0x4157a, 0x0}, -- {0x4157b, 0x0}, -- {0x4157c, 0x0}, -- {0x4157d, 0x0}, -- {0x4157e, 0x0}, -- {0x4157f, 0x0}, -- {0x41580, 0x0}, -- {0x41581, 0x0}, -- {0x41582, 0x0}, -- {0x41583, 0x0}, -- {0x41584, 0x0}, -- {0x41585, 0x0}, -- {0x41586, 0x0}, -- {0x41587, 0x0}, -- {0x41588, 0x0}, -- {0x41589, 0x0}, -- {0x4158a, 0x0}, -- {0x4158b, 0x0}, -- {0x4158c, 0x0}, -- {0x4158d, 0x0}, -- {0x4158e, 0x0}, -- {0x4158f, 0x0}, -- {0x41590, 0x0}, -- {0x41591, 0x0}, -- {0x41592, 0x0}, -- {0x41593, 0x0}, -- {0x41594, 0x0}, -- {0x41595, 0x0}, -- {0x41596, 0x0}, -- {0x41597, 0x0}, -- {0x41598, 0x0}, -- {0x41599, 0x0}, -- {0x4159a, 0x0}, -- {0x4159b, 0x0}, -- {0x4159c, 0x0}, -- {0x4159d, 0x0}, -- {0x4159e, 0x0}, -- {0x4159f, 0x0}, -- {0x415a0, 0x0}, -- {0x415a1, 0x0}, -- {0x415a2, 0x0}, -- {0x415a3, 0x0}, -- {0x415a4, 0x0}, -- {0x415a5, 0x0}, -- {0x415a6, 0x0}, -- {0x415a7, 0x0}, -- {0x415a8, 0x0}, -- {0x415a9, 0x0}, -- {0x415aa, 0x0}, -- {0x415ab, 0x0}, -- {0x415ac, 0x0}, -- {0x415ad, 0x0}, -- {0x415ae, 0x0}, -- {0x415af, 0x0}, -- {0x415b0, 0x0}, -- {0x415b1, 0x0}, -- {0x415b2, 0x0}, -- {0x415b3, 0x0}, -- {0x415b4, 0x0}, -- {0x415b5, 0x0}, -- {0x415b6, 0x0}, -- {0x415b7, 0x0}, -- {0x415b8, 0x0}, -- {0x415b9, 0x0}, -- {0x415ba, 0x0}, -- {0x415bb, 0x0}, -- {0x415bc, 0x0}, -- {0x415bd, 0x0}, -- {0x415be, 0x0}, -- {0x415bf, 0x0}, -- {0x415c0, 0x0}, -- {0x415c1, 0x0}, -- {0x415c2, 0x0}, -- {0x415c3, 0x0}, -- {0x415c4, 0x0}, -- {0x415c5, 0x0}, -- {0x415c6, 0x0}, -- {0x415c7, 0x0}, -- {0x415c8, 0x0}, -- {0x415c9, 0x0}, -- {0x415ca, 0x0}, -- {0x415cb, 0x0}, -- {0x415cc, 0x0}, -- {0x415cd, 0x0}, -- {0x415ce, 0x0}, -- {0x415cf, 0x0}, -- {0x415d0, 0x0}, -- {0x415d1, 0x0}, -- {0x415d2, 0x0}, -- {0x415d3, 0x0}, -- {0x415d4, 0x0}, -- {0x415d5, 0x0}, -- {0x415d6, 0x0}, -- {0x415d7, 0x0}, -- {0x415d8, 0x0}, -- {0x415d9, 0x0}, -- {0x415da, 0x0}, -- {0x415db, 0x0}, -- {0x415dc, 0x0}, -- {0x415dd, 0x0}, -- {0x415de, 0x0}, -- {0x415df, 0x0}, -- {0x415e0, 0x0}, -- {0x415e1, 0x0}, -- {0x415e2, 0x0}, -- {0x415e3, 0x0}, -- {0x415e4, 0x0}, -- {0x415e5, 0x0}, -- {0x415e6, 0x0}, -- {0x415e7, 0x0}, -- {0x415e8, 0x0}, -- {0x415e9, 0x0}, -- {0x415ea, 0x0}, -- {0x415eb, 0x0}, -- {0x415ec, 0x0}, -- {0x415ed, 0x0}, -- {0x415ee, 0x0}, -- {0x415ef, 0x0}, -- {0x415f0, 0x0}, -- {0x415f1, 0x0}, -- {0x415f2, 0x0}, -- {0x415f3, 0x0}, -- {0x415f4, 0x0}, -- {0x415f5, 0x0}, -- {0x415f6, 0x0}, -- {0x415f7, 0x0}, -- {0x415f8, 0x0}, -- {0x415f9, 0x0}, -- {0x415fa, 0x0}, -- {0x415fb, 0x0}, -- {0x415fc, 0x0}, -- {0x415fd, 0x0}, -- {0x415fe, 0x0}, -- {0x415ff, 0x0}, -- {0x41600, 0x0}, -- {0x41601, 0x0}, -- {0x41602, 0x0}, -- {0x41603, 0x0}, -- {0x41604, 0x0}, -- {0x41605, 0x0}, -- {0x41606, 0x0}, -- {0x41607, 0x0}, -- {0x41608, 0x0}, -- {0x41609, 0x0}, -- {0x4160a, 0x0}, -- {0x4160b, 0x0}, -- {0x4160c, 0x0}, -- {0x4160d, 0x0}, -- {0x4160e, 0x0}, -- {0x4160f, 0x0}, -- {0x41610, 0x0}, -- {0x41611, 0x0}, -- {0x41612, 0x0}, -- {0x41613, 0x0}, -- {0x41614, 0x0}, -- {0x41615, 0x0}, -- {0x41616, 0x0}, -- {0x41617, 0x0}, -- {0x41618, 0x0}, -- {0x41619, 0x0}, -- {0x4161a, 0x0}, -- {0x4161b, 0x0}, -- {0x4161c, 0x0}, -- {0x4161d, 0x0}, -- {0x4161e, 0x0}, -- {0x4161f, 0x0}, -- {0x41620, 0x0}, -- {0x41621, 0x0}, -- {0x41622, 0x0}, -- {0x41623, 0x0}, -- {0x41624, 0x0}, -- {0x41625, 0x0}, -- {0x41626, 0x0}, -- {0x41627, 0x0}, -- {0x41628, 0x0}, -- {0x41629, 0x0}, -- {0x4162a, 0x0}, -- {0x4162b, 0x0}, -- {0x4162c, 0x0}, -- {0x4162d, 0x0}, -- {0x4162e, 0x0}, -- {0x4162f, 0x0}, -- {0x41630, 0x0}, -- {0x41631, 0x0}, -- {0x41632, 0x0}, -- {0x41633, 0x0}, -- {0x41634, 0x0}, -- {0x41635, 0x0}, -- {0x41636, 0x0}, -- {0x41637, 0x0}, -- {0x41638, 0x0}, -- {0x41639, 0x0}, -- {0x4163a, 0x0}, -- {0x4163b, 0x0}, -- {0x4163c, 0x0}, -- {0x4163d, 0x0}, -- {0x4163e, 0x0}, -- {0x4163f, 0x0}, -- {0x41640, 0x0}, -- {0x41641, 0x0}, -- {0x41642, 0x0}, -- {0x41643, 0x0}, -- {0x41644, 0x0}, -- {0x41645, 0x0}, -- {0x41646, 0x0}, -- {0x41647, 0x0}, -- {0x41648, 0x0}, -- {0x41649, 0x0}, -- {0x4164a, 0x0}, -- {0x4164b, 0x0}, -- {0x4164c, 0x0}, -- {0x4164d, 0x0}, -- {0x4164e, 0x0}, -- {0x4164f, 0x0}, -- {0x41650, 0x0}, -- {0x41651, 0x0}, -- {0x41652, 0x0}, -- {0x41653, 0x0}, -- {0x41654, 0x0}, -- {0x41655, 0x0}, -- {0x41656, 0x0}, -- {0x41657, 0x0}, -- {0x41658, 0x0}, -- {0x41659, 0x0}, -- {0x4165a, 0x0}, -- {0x4165b, 0x0}, -- {0x4165c, 0x0}, -- {0x4165d, 0x0}, -- {0x4165e, 0x0}, -- {0x4165f, 0x0}, -- {0x41660, 0x0}, -- {0x41661, 0x0}, -- {0x41662, 0x0}, -- {0x41663, 0x0}, -- {0x41664, 0x0}, -- {0x41665, 0x0}, -- {0x41666, 0x0}, -- {0x41667, 0x0}, -- {0x41668, 0x0}, -- {0x41669, 0x0}, -- {0x4166a, 0x0}, -- {0x4166b, 0x0}, -- {0x4166c, 0x0}, -- {0x4166d, 0x0}, -- {0x4166e, 0x0}, -- {0x4166f, 0x0}, -- {0x41670, 0x0}, -- {0x41671, 0x0}, -- {0x41672, 0x0}, -- {0x41673, 0x0}, -- {0x41674, 0x0}, -- {0x41675, 0x0}, -- {0x41676, 0x0}, -- {0x41677, 0x0}, -- {0x41678, 0x0}, -- {0x41679, 0x0}, -- {0x4167a, 0x0}, -- {0x4167b, 0x0}, -- {0x4167c, 0x0}, -- {0x4167d, 0x0}, -- {0x4167e, 0x0}, -- {0x4167f, 0x0}, -- {0x41680, 0x0}, -- {0x41681, 0x0}, -- {0x41682, 0x0}, -- {0x41683, 0x0}, -- {0x41684, 0x0}, -- {0x41685, 0x0}, -- {0x41686, 0x0}, -- {0x41687, 0x0}, -- {0x41688, 0x0}, -- {0x41689, 0x0}, -- {0x4168a, 0x0}, -- {0x4168b, 0x0}, -- {0x4168c, 0x0}, -- {0x4168d, 0x0}, -- {0x4168e, 0x0}, -- {0x4168f, 0x0}, -- {0x41690, 0x0}, -- {0x41691, 0x0}, -- {0x41692, 0x0}, -- {0x41693, 0x0}, -- {0x41694, 0x0}, -- {0x41695, 0x0}, -- {0x41696, 0x0}, -- {0x41697, 0x0}, -- {0x41698, 0x0}, -- {0x41699, 0x0}, -- {0x4169a, 0x0}, -- {0x4169b, 0x0}, -- {0x4169c, 0x0}, -- {0x4169d, 0x0}, -- {0x4169e, 0x0}, -- {0x4169f, 0x0}, -- {0x416a0, 0x0}, -- {0x416a1, 0x0}, -- {0x416a2, 0x0}, -- {0x416a3, 0x0}, -- {0x416a4, 0x0}, -- {0x416a5, 0x0}, -- {0x416a6, 0x0}, -- {0x416a7, 0x0}, -- {0x416a8, 0x0}, -- {0x416a9, 0x0}, -- {0x416aa, 0x0}, -- {0x416ab, 0x0}, -- {0x416ac, 0x0}, -- {0x416ad, 0x0}, -- {0x416ae, 0x0}, -- {0x416af, 0x0}, -- {0x416b0, 0x0}, -- {0x416b1, 0x0}, -- {0x416b2, 0x0}, -- {0x416b3, 0x0}, -- {0x416b4, 0x0}, -- {0x416b5, 0x0}, -- {0x416b6, 0x0}, -- {0x416b7, 0x0}, -- {0x416b8, 0x0}, -- {0x416b9, 0x0}, -- {0x416ba, 0x0}, -- {0x416bb, 0x0}, -- {0x416bc, 0x0}, -- {0x416bd, 0x0}, -- {0x416be, 0x0}, -- {0x416bf, 0x0}, -- {0x416c0, 0x0}, -- {0x416c1, 0x0}, -- {0x416c2, 0x0}, -- {0x416c3, 0x0}, -- {0x416c4, 0x0}, -- {0x416c5, 0x0}, -- {0x416c6, 0x0}, -- {0x416c7, 0x0}, -- {0x416c8, 0x0}, -- {0x416c9, 0x0}, -- {0x416ca, 0x0}, -- {0x416cb, 0x0}, -- {0x416cc, 0x0}, -- {0x416cd, 0x0}, -- {0x416ce, 0x0}, -- {0x416cf, 0x0}, -- {0x416d0, 0x0}, -- {0x416d1, 0x0}, -- {0x416d2, 0x0}, -- {0x416d3, 0x0}, -- {0x416d4, 0x0}, -- {0x416d5, 0x0}, -- {0x416d6, 0x0}, -- {0x416d7, 0x0}, -- {0x416d8, 0x0}, -- {0x416d9, 0x0}, -- {0x416da, 0x0}, -- {0x416db, 0x0}, -- {0x416dc, 0x0}, -- {0x416dd, 0x0}, -- {0x416de, 0x0}, -- {0x416df, 0x0}, -- {0x416e0, 0x0}, -- {0x416e1, 0x0}, -- {0x416e2, 0x0}, -- {0x416e3, 0x0}, -- {0x416e4, 0x0}, -- {0x416e5, 0x0}, -- {0x416e6, 0x0}, -- {0x416e7, 0x0}, -- {0x416e8, 0x0}, -- {0x416e9, 0x0}, -- {0x416ea, 0x0}, -- {0x416eb, 0x0}, -- {0x416ec, 0x0}, -- {0x416ed, 0x0}, -- {0x416ee, 0x0}, -- {0x416ef, 0x0}, -- {0x416f0, 0x0}, -- {0x416f1, 0x0}, -- {0x416f2, 0x0}, -- {0x416f3, 0x0}, -- {0x416f4, 0x0}, -- {0x416f5, 0x0}, -- {0x416f6, 0x0}, -- {0x416f7, 0x0}, -- {0x416f8, 0x0}, -- {0x416f9, 0x0}, -- {0x416fa, 0x0}, -- {0x416fb, 0x0}, -- {0x416fc, 0x0}, -- {0x416fd, 0x0}, -- {0x416fe, 0x0}, -- {0x416ff, 0x0}, -- {0x41700, 0x0}, -- {0x41701, 0x0}, -- {0x41702, 0x0}, -- {0x41703, 0x0}, -- {0x41704, 0x0}, -- {0x41705, 0x0}, -- {0x41706, 0x0}, -- {0x41707, 0x0}, -- {0x41708, 0x0}, -- {0x41709, 0x0}, -- {0x4170a, 0x0}, -- {0x4170b, 0x0}, -- {0x4170c, 0x0}, -- {0x4170d, 0x0}, -- {0x4170e, 0x0}, -- {0x4170f, 0x0}, -- {0x41710, 0x0}, -- {0x41711, 0x0}, -- {0x41712, 0x0}, -- {0x41713, 0x0}, -- {0x41714, 0x0}, -- {0x41715, 0x0}, -- {0x41716, 0x0}, -- {0x41717, 0x0}, -- {0x41718, 0x0}, -- {0x41719, 0x0}, -- {0x4171a, 0x0}, -- {0x4171b, 0x0}, -- {0x4171c, 0x0}, -- {0x4171d, 0x0}, -- {0x4171e, 0x0}, -- {0x4171f, 0x0}, -- {0x41720, 0x0}, -- {0x41721, 0x0}, -- {0x41722, 0x0}, -- {0x41723, 0x0}, -- {0x41724, 0x0}, -- {0x41725, 0x0}, -- {0x41726, 0x0}, -- {0x41727, 0x0}, -- {0x41728, 0x0}, -- {0x41729, 0x0}, -- {0x4172a, 0x0}, -- {0x4172b, 0x0}, -- {0x4172c, 0x0}, -- {0x4172d, 0x0}, -- {0x4172e, 0x0}, -- {0x4172f, 0x0}, -- {0x41730, 0x0}, -- {0x41731, 0x0}, -- {0x41732, 0x0}, -- {0x41733, 0x0}, -- {0x41734, 0x0}, -- {0x41735, 0x0}, -- {0x41736, 0x0}, -- {0x41737, 0x0}, -- {0x41738, 0x0}, -- {0x41739, 0x0}, -- {0x4173a, 0x0}, -- {0x4173b, 0x0}, -- {0x4173c, 0x0}, -- {0x4173d, 0x0}, -- {0x4173e, 0x0}, -- {0x4173f, 0x0}, -- {0x41740, 0x0}, -- {0x41741, 0x0}, -- {0x41742, 0x0}, -- {0x41743, 0x0}, -- {0x41744, 0x0}, -- {0x41745, 0x0}, -- {0x41746, 0x0}, -- {0x41747, 0x0}, -- {0x41748, 0x0}, -- {0x41749, 0x0}, -- {0x4174a, 0x0}, -- {0x4174b, 0x0}, -- {0x4174c, 0x0}, -- {0x4174d, 0x0}, -- {0x4174e, 0x0}, -- {0x4174f, 0x0}, -- {0x41750, 0x0}, -- {0x41751, 0x0}, -- {0x41752, 0x0}, -- {0x41753, 0x0}, -- {0x41754, 0x0}, -- {0x41755, 0x0}, -- {0x41756, 0x0}, -- {0x41757, 0x0}, -- {0x41758, 0x0}, -- {0x41759, 0x0}, -- {0x4175a, 0x0}, -- {0x4175b, 0x0}, -- {0x4175c, 0x0}, -- {0x4175d, 0x0}, -- {0x4175e, 0x0}, -- {0x4175f, 0x0}, -- {0x41760, 0x0}, -- {0x41761, 0x0}, -- {0x41762, 0x0}, -- {0x41763, 0x0}, -- {0x41764, 0x0}, -- {0x41765, 0x0}, -- {0x41766, 0x0}, -- {0x41767, 0x0}, -- {0x41768, 0x0}, -- {0x41769, 0x0}, -- {0x4176a, 0x0}, -- {0x4176b, 0x0}, -- {0x4176c, 0x0}, -- {0x4176d, 0x0}, -- {0x4176e, 0x0}, -- {0x4176f, 0x0}, -- {0x41770, 0x0}, -- {0x41771, 0x0}, -- {0x41772, 0x0}, -- {0x41773, 0x0}, -- {0x41774, 0x0}, -- {0x41775, 0x0}, -- {0x41776, 0x0}, -- {0x41777, 0x0}, -- {0x41778, 0x0}, -- {0x41779, 0x0}, -- {0x4177a, 0x0}, -- {0x4177b, 0x0}, -- {0x4177c, 0x0}, -- {0x4177d, 0x0}, -- {0x4177e, 0x0}, -- {0x4177f, 0x0}, -- {0x41780, 0x0}, -- {0x41781, 0x0}, -- {0x41782, 0x0}, -- {0x41783, 0x0}, -- {0x41784, 0x0}, -- {0x41785, 0x0}, -- {0x41786, 0x0}, -- {0x41787, 0x0}, -- {0x41788, 0x0}, -- {0x41789, 0x0}, -- {0x4178a, 0x0}, -- {0x4178b, 0x0}, -- {0x4178c, 0x0}, -- {0x4178d, 0x0}, -- {0x4178e, 0x0}, -- {0x4178f, 0x0}, -- {0x41790, 0x0}, -- {0x41791, 0x0}, -- {0x41792, 0x0}, -- {0x41793, 0x0}, -- {0x41794, 0x0}, -- {0x41795, 0x0}, -- {0x41796, 0x0}, -- {0x41797, 0x0}, -- {0x41798, 0x0}, -- {0x41799, 0x0}, -- {0x4179a, 0x0}, -- {0x4179b, 0x0}, -- {0x4179c, 0x0}, -- {0x4179d, 0x0}, -- {0x4179e, 0x0}, -- {0x4179f, 0x0}, -- {0x417a0, 0x0}, -- {0x417a1, 0x0}, -- {0x417a2, 0x0}, -- {0x417a3, 0x0}, -- {0x417a4, 0x0}, -- {0x417a5, 0x0}, -- {0x417a6, 0x0}, -- {0x417a7, 0x0}, -- {0x417a8, 0x0}, -- {0x417a9, 0x0}, -- {0x417aa, 0x0}, -- {0x417ab, 0x0}, -- {0x417ac, 0x0}, -- {0x417ad, 0x0}, -- {0x417ae, 0x0}, -- {0x417af, 0x0}, -- {0x417b0, 0x0}, -- {0x417b1, 0x0}, -- {0x417b2, 0x0}, -- {0x417b3, 0x0}, -- {0x417b4, 0x0}, -- {0x417b5, 0x0}, -- {0x417b6, 0x0}, -- {0x417b7, 0x0}, -- {0x417b8, 0x0}, -- {0x417b9, 0x0}, -- {0x417ba, 0x0}, -- {0x417bb, 0x0}, -- {0x417bc, 0x0}, -- {0x417bd, 0x0}, -- {0x417be, 0x0}, -- {0x417bf, 0x0}, -- {0x417c0, 0x0}, -- {0x417c1, 0x0}, -- {0x417c2, 0x0}, -- {0x417c3, 0x0}, -- {0x417c4, 0x0}, -- {0x417c5, 0x0}, -- {0x417c6, 0x0}, -- {0x417c7, 0x0}, -- {0x417c8, 0x0}, -- {0x417c9, 0x0}, -- {0x417ca, 0x0}, -- {0x417cb, 0x0}, -- {0x417cc, 0x0}, -- {0x417cd, 0x0}, -- {0x417ce, 0x0}, -- {0x417cf, 0x0}, -- {0x417d0, 0x0}, -- {0x417d1, 0x0}, -- {0x417d2, 0x0}, -- {0x417d3, 0x0}, -- {0x417d4, 0x0}, -- {0x417d5, 0x0}, -- {0x417d6, 0x0}, -- {0x417d7, 0x0}, -- {0x417d8, 0x0}, -- {0x417d9, 0x0}, -- {0x417da, 0x0}, -- {0x417db, 0x0}, -- {0x417dc, 0x0}, -- {0x417dd, 0x0}, -- {0x417de, 0x0}, -- {0x417df, 0x0}, -- {0x417e0, 0x0}, -- {0x417e1, 0x0}, -- {0x417e2, 0x0}, -- {0x417e3, 0x0}, -- {0x417e4, 0x0}, -- {0x417e5, 0x0}, -- {0x417e6, 0x0}, -- {0x417e7, 0x0}, -- {0x417e8, 0x0}, -- {0x417e9, 0x0}, -- {0x417ea, 0x0}, -- {0x417eb, 0x0}, -- {0x417ec, 0x0}, -- {0x417ed, 0x0}, -- {0x417ee, 0x0}, -- {0x417ef, 0x0}, -- {0x417f0, 0x0}, -- {0x417f1, 0x0}, -- {0x417f2, 0x0}, -- {0x417f3, 0x0}, -- {0x417f4, 0x0}, -- {0x417f5, 0x0}, -- {0x417f6, 0x0}, -- {0x417f7, 0x0}, -- {0x417f8, 0x0}, -- {0x417f9, 0x0}, -- {0x417fa, 0x0}, -- {0x417fb, 0x0}, -- {0x417fc, 0x0}, -- {0x417fd, 0x0}, -- {0x417fe, 0x0}, -- {0x417ff, 0x0}, -- {0x41800, 0x0}, -- {0x41801, 0x0}, -- {0x41802, 0x0}, -- {0x41803, 0x0}, -- {0x41804, 0x0}, -- {0x41805, 0x0}, -- {0x41806, 0x0}, -- {0x41807, 0x0}, -- {0x41808, 0x0}, -- {0x41809, 0x0}, -- {0x4180a, 0x0}, -- {0x4180b, 0x0}, -- {0x4180c, 0x0}, -- {0x4180d, 0x0}, -- {0x4180e, 0x0}, -- {0x4180f, 0x0}, -- {0x41810, 0x0}, -- {0x41811, 0x0}, -- {0x41812, 0x0}, -- {0x41813, 0x0}, -- {0x41814, 0x0}, -- {0x41815, 0x0}, -- {0x41816, 0x0}, -- {0x41817, 0x0}, -- {0x41818, 0x0}, -- {0x41819, 0x0}, -- {0x4181a, 0x0}, -- {0x4181b, 0x0}, -- {0x4181c, 0x0}, -- {0x4181d, 0x0}, -- {0x4181e, 0x0}, -- {0x4181f, 0x0}, -- {0x41820, 0x0}, -- {0x41821, 0x0}, -- {0x41822, 0x0}, -- {0x41823, 0x0}, -- {0x41824, 0x0}, -- {0x41825, 0x0}, -- {0x41826, 0x0}, -- {0x41827, 0x0}, -- {0x41828, 0x0}, -- {0x41829, 0x0}, -- {0x4182a, 0x0}, -- {0x4182b, 0x0}, -- {0x4182c, 0x0}, -- {0x4182d, 0x0}, -- {0x4182e, 0x0}, -- {0x4182f, 0x0}, -- {0x41830, 0x0}, -- {0x41831, 0x0}, -- {0x41832, 0x0}, -- {0x41833, 0x0}, -- {0x41834, 0x0}, -- {0x41835, 0x0}, -- {0x41836, 0x0}, -- {0x41837, 0x0}, -- {0x41838, 0x0}, -- {0x41839, 0x0}, -- {0x4183a, 0x0}, -- {0x4183b, 0x0}, -- {0x4183c, 0x0}, -- {0x4183d, 0x0}, -- {0x4183e, 0x0}, -- {0x4183f, 0x0}, -- {0x41840, 0x0}, -- {0x41841, 0x0}, -- {0x41842, 0x0}, -- {0x41843, 0x0}, -- {0x41844, 0x0}, -- {0x41845, 0x0}, -- {0x41846, 0x0}, -- {0x41847, 0x0}, -- {0x41848, 0x0}, -- {0x41849, 0x0}, -- {0x4184a, 0x0}, -- {0x4184b, 0x0}, -- {0x4184c, 0x0}, -- {0x4184d, 0x0}, -- {0x4184e, 0x0}, -- {0x4184f, 0x0}, -- {0x41850, 0x0}, -- {0x41851, 0x0}, -- {0x41852, 0x0}, -- {0x41853, 0x0}, -- {0x41854, 0x0}, -- {0x41855, 0x0}, -- {0x41856, 0x0}, -- {0x41857, 0x0}, -- {0x41858, 0x0}, -- {0x41859, 0x0}, -- {0x4185a, 0x0}, -- {0x4185b, 0x0}, -- {0x4185c, 0x0}, -- {0x4185d, 0x0}, -- {0x4185e, 0x0}, -- {0x4185f, 0x0}, -- {0x41860, 0x0}, -- {0x41861, 0x0}, -- {0x41862, 0x0}, -- {0x41863, 0x0}, -- {0x41864, 0x0}, -- {0x41865, 0x0}, -- {0x41866, 0x0}, -- {0x41867, 0x0}, -- {0x41868, 0x0}, -- {0x41869, 0x0}, -- {0x4186a, 0x0}, -- {0x4186b, 0x0}, -- {0x4186c, 0x0}, -- {0x4186d, 0x0}, -- {0x4186e, 0x0}, -- {0x4186f, 0x0}, -- {0x41870, 0x0}, -- {0x41871, 0x0}, -- {0x41872, 0x0}, -- {0x41873, 0x0}, -- {0x41874, 0x0}, -- {0x41875, 0x0}, -- {0x41876, 0x0}, -- {0x41877, 0x0}, -- {0x41878, 0x0}, -- {0x41879, 0x0}, -- {0x4187a, 0x0}, -- {0x4187b, 0x0}, -- {0x4187c, 0x0}, -- {0x4187d, 0x0}, -- {0x4187e, 0x0}, -- {0x4187f, 0x0}, -- {0x41880, 0x0}, -- {0x41881, 0x0}, -- {0x41882, 0x0}, -- {0x41883, 0x0}, -- {0x41884, 0x0}, -- {0x41885, 0x0}, -- {0x41886, 0x0}, -- {0x41887, 0x0}, -- {0x41888, 0x0}, -- {0x41889, 0x0}, -- {0x4188a, 0x0}, -- {0x4188b, 0x0}, -- {0x4188c, 0x0}, -- {0x4188d, 0x0}, -- {0x4188e, 0x0}, -- {0x4188f, 0x0}, -- {0x41890, 0x0}, -- {0x41891, 0x0}, -- {0x41892, 0x0}, -- {0x41893, 0x0}, -- {0x41894, 0x0}, -- {0x41895, 0x0}, -- {0x41896, 0x0}, -- {0x41897, 0x0}, -- {0x41898, 0x0}, -- {0x41899, 0x0}, -- {0x4189a, 0x0}, -- {0x4189b, 0x0}, -- {0x4189c, 0x0}, -- {0x4189d, 0x0}, -- {0x4189e, 0x0}, -- {0x4189f, 0x0}, -- {0x418a0, 0x0}, -- {0x418a1, 0x0}, -- {0x418a2, 0x0}, -- {0x418a3, 0x0}, -- {0x418a4, 0x0}, -- {0x418a5, 0x0}, -- {0x418a6, 0x0}, -- {0x418a7, 0x0}, -- {0x418a8, 0x0}, -- {0x418a9, 0x0}, -- {0x418aa, 0x0}, -- {0x418ab, 0x0}, -- {0x418ac, 0x0}, -- {0x418ad, 0x0}, -- {0x418ae, 0x0}, -- {0x418af, 0x0}, -- {0x418b0, 0x0}, -- {0x418b1, 0x0}, -- {0x418b2, 0x0}, -- {0x418b3, 0x0}, -- {0x418b4, 0x0}, -- {0x418b5, 0x0}, -- {0x418b6, 0x0}, -- {0x418b7, 0x0}, -- {0x418b8, 0x0}, -- {0x418b9, 0x0}, -- {0x418ba, 0x0}, -- {0x418bb, 0x0}, -- {0x418bc, 0x0}, -- {0x418bd, 0x0}, -- {0x418be, 0x0}, -- {0x418bf, 0x0}, -- {0x418c0, 0x0}, -- {0x418c1, 0x0}, -- {0x418c2, 0x0}, -- {0x418c3, 0x0}, -- {0x418c4, 0x0}, -- {0x418c5, 0x0}, -- {0x418c6, 0x0}, -- {0x418c7, 0x0}, -- {0x418c8, 0x0}, -- {0x418c9, 0x0}, -- {0x418ca, 0x0}, -- {0x418cb, 0x0}, -- {0x418cc, 0x0}, -- {0x418cd, 0x0}, -- {0x418ce, 0x0}, -- {0x418cf, 0x0}, -- {0x418d0, 0x0}, -- {0x418d1, 0x0}, -- {0x418d2, 0x0}, -- {0x418d3, 0x0}, -- {0x418d4, 0x0}, -- {0x418d5, 0x0}, -- {0x418d6, 0x0}, -- {0x418d7, 0x0}, -- {0x418d8, 0x0}, -- {0x418d9, 0x0}, -- {0x418da, 0x0}, -- {0x418db, 0x0}, -- {0x418dc, 0x0}, -- {0x418dd, 0x0}, -- {0x418de, 0x0}, -- {0x418df, 0x0}, -- {0x418e0, 0x0}, -- {0x418e1, 0x0}, -- {0x418e2, 0x0}, -- {0x418e3, 0x0}, -- {0x418e4, 0x0}, -- {0x418e5, 0x0}, -- {0x418e6, 0x0}, -- {0x418e7, 0x0}, -- {0x418e8, 0x0}, -- {0x418e9, 0x0}, -- {0x418ea, 0x0}, -- {0x418eb, 0x0}, -- {0x418ec, 0x0}, -- {0x418ed, 0x0}, -- {0x418ee, 0x0}, -- {0x418ef, 0x0}, -- {0x418f0, 0x0}, -- {0x418f1, 0x0}, -- {0x418f2, 0x0}, -- {0x418f3, 0x0}, -- {0x418f4, 0x0}, -- {0x418f5, 0x0}, -- {0x418f6, 0x0}, -- {0x418f7, 0x0}, -- {0x418f8, 0x0}, -- {0x418f9, 0x0}, -- {0x418fa, 0x0}, -- {0x418fb, 0x0}, -- {0x418fc, 0x0}, -- {0x418fd, 0x0}, -- {0x418fe, 0x0}, -- {0x418ff, 0x0}, -- {0x41900, 0x0}, -- {0x41901, 0x0}, -- {0x41902, 0x0}, -- {0x41903, 0x0}, -- {0x41904, 0x0}, -- {0x41905, 0x0}, -- {0x41906, 0x0}, -- {0x41907, 0x0}, -- {0x41908, 0x0}, -- {0x41909, 0x0}, -- {0x4190a, 0x0}, -- {0x4190b, 0x0}, -- {0x4190c, 0x0}, -- {0x4190d, 0x0}, -- {0x4190e, 0x0}, -- {0x4190f, 0x0}, -- {0x41910, 0x0}, -- {0x41911, 0x0}, -- {0x41912, 0x0}, -- {0x41913, 0x0}, -- {0x41914, 0x0}, -- {0x41915, 0x0}, -- {0x41916, 0x0}, -- {0x41917, 0x0}, -- {0x41918, 0x0}, -- {0x41919, 0x0}, -- {0x4191a, 0x0}, -- {0x4191b, 0x0}, -- {0x4191c, 0x0}, -- {0x4191d, 0x0}, -- {0x4191e, 0x0}, -- {0x4191f, 0x0}, -- {0x41920, 0x0}, -- {0x41921, 0x0}, -- {0x41922, 0x0}, -- {0x41923, 0x0}, -- {0x41924, 0x0}, -- {0x41925, 0x0}, -- {0x41926, 0x0}, -- {0x41927, 0x0}, -- {0x41928, 0x0}, -- {0x41929, 0x0}, -- {0x4192a, 0x0}, -- {0x4192b, 0x0}, -- {0x4192c, 0x0}, -- {0x4192d, 0x0}, -- {0x4192e, 0x0}, -- {0x4192f, 0x0}, -- {0x41930, 0x0}, -- {0x41931, 0x0}, -- {0x41932, 0x0}, -- {0x41933, 0x0}, -- {0x41934, 0x0}, -- {0x41935, 0x0}, -- {0x41936, 0x0}, -- {0x41937, 0x0}, -- {0x41938, 0x0}, -- {0x41939, 0x0}, -- {0x4193a, 0x0}, -- {0x4193b, 0x0}, -- {0x4193c, 0x0}, -- {0x4193d, 0x0}, -- {0x4193e, 0x0}, -- {0x4193f, 0x0}, -- {0x41940, 0x0}, -- {0x41941, 0x0}, -- {0x41942, 0x0}, -- {0x41943, 0x0}, -- {0x41944, 0x0}, -- {0x41945, 0x0}, -- {0x41946, 0x0}, -- {0x41947, 0x0}, -- {0x41948, 0x0}, -- {0x41949, 0x0}, -- {0x4194a, 0x0}, -- {0x4194b, 0x0}, -- {0x4194c, 0x0}, -- {0x4194d, 0x0}, -- {0x4194e, 0x0}, -- {0x4194f, 0x0}, -- {0x41950, 0x0}, -- {0x41951, 0x0}, -- {0x41952, 0x0}, -- {0x41953, 0x0}, -- {0x41954, 0x0}, -- {0x41955, 0x0}, -- {0x41956, 0x0}, -- {0x41957, 0x0}, -- {0x41958, 0x0}, -- {0x41959, 0x0}, -- {0x4195a, 0x0}, -- {0x4195b, 0x0}, -- {0x4195c, 0x0}, -- {0x4195d, 0x0}, -- {0x4195e, 0x0}, -- {0x4195f, 0x0}, -- {0x41960, 0x0}, -- {0x41961, 0x0}, -- {0x41962, 0x0}, -- {0x41963, 0x0}, -- {0x41964, 0x0}, -- {0x41965, 0x0}, -- {0x41966, 0x0}, -- {0x41967, 0x0}, -- {0x41968, 0x0}, -- {0x41969, 0x0}, -- {0x4196a, 0x0}, -- {0x4196b, 0x0}, -- {0x4196c, 0x0}, -- {0x4196d, 0x0}, -- {0x4196e, 0x0}, -- {0x4196f, 0x0}, -- {0x41970, 0x0}, -- {0x41971, 0x0}, -- {0x41972, 0x0}, -- {0x41973, 0x0}, -- {0x41974, 0x0}, -- {0x41975, 0x0}, -- {0x41976, 0x0}, -- {0x41977, 0x0}, -- {0x41978, 0x0}, -- {0x41979, 0x0}, -- {0x4197a, 0x0}, -- {0x4197b, 0x0}, -- {0x4197c, 0x0}, -- {0x4197d, 0x0}, -- {0x4197e, 0x0}, -- {0x4197f, 0x0}, -- {0x41980, 0x0}, -- {0x41981, 0x0}, -- {0x41982, 0x0}, -- {0x41983, 0x0}, -- {0x41984, 0x0}, -- {0x41985, 0x0}, -- {0x41986, 0x0}, -- {0x41987, 0x0}, -- {0x41988, 0x0}, -- {0x41989, 0x0}, -- {0x4198a, 0x0}, -- {0x4198b, 0x0}, -- {0x4198c, 0x0}, -- {0x4198d, 0x0}, -- {0x4198e, 0x0}, -- {0x4198f, 0x0}, -- {0x41990, 0x0}, -- {0x41991, 0x0}, -- {0x41992, 0x0}, -- {0x41993, 0x0}, -- {0x41994, 0x0}, -- {0x41995, 0x0}, -- {0x41996, 0x0}, -- {0x41997, 0x0}, -- {0x41998, 0x0}, -- {0x41999, 0x0}, -- {0x4199a, 0x0}, -- {0x4199b, 0x0}, -- {0x4199c, 0x0}, -- {0x4199d, 0x0}, -- {0x4199e, 0x0}, -- {0x4199f, 0x0}, -- {0x419a0, 0x0}, -- {0x419a1, 0x0}, -- {0x419a2, 0x0}, -- {0x419a3, 0x0}, -- {0x419a4, 0x0}, -- {0x419a5, 0x0}, -- {0x419a6, 0x0}, -- {0x419a7, 0x0}, -- {0x419a8, 0x0}, -- {0x419a9, 0x0}, -- {0x419aa, 0x0}, -- {0x419ab, 0x0}, -- {0x419ac, 0x0}, -- {0x419ad, 0x0}, -- {0x419ae, 0x0}, -- {0x419af, 0x0}, -- {0x419b0, 0x0}, -- {0x419b1, 0x0}, -- {0x419b2, 0x0}, -- {0x419b3, 0x0}, -- {0x419b4, 0x0}, -- {0x419b5, 0x0}, -- {0x419b6, 0x0}, -- {0x419b7, 0x0}, -- {0x419b8, 0x0}, -- {0x419b9, 0x0}, -- {0x419ba, 0x0}, -- {0x419bb, 0x0}, -- {0x419bc, 0x0}, -- {0x419bd, 0x0}, -- {0x419be, 0x0}, -- {0x419bf, 0x0}, -- {0x419c0, 0x0}, -- {0x419c1, 0x0}, -- {0x419c2, 0x0}, -- {0x419c3, 0x0}, -- {0x419c4, 0x0}, -- {0x419c5, 0x0}, -- {0x419c6, 0x0}, -- {0x419c7, 0x0}, -- {0x419c8, 0x0}, -- {0x419c9, 0x0}, -- {0x419ca, 0x0}, -- {0x419cb, 0x0}, -- {0x419cc, 0x0}, -- {0x419cd, 0x0}, -- {0x419ce, 0x0}, -- {0x419cf, 0x0}, -- {0x419d0, 0x0}, -- {0x419d1, 0x0}, -- {0x419d2, 0x0}, -- {0x419d3, 0x0}, -- {0x419d4, 0x0}, -- {0x419d5, 0x0}, -- {0x419d6, 0x0}, -- {0x419d7, 0x0}, -- {0x419d8, 0x0}, -- {0x419d9, 0x0}, -- {0x419da, 0x0}, -- {0x419db, 0x0}, -- {0x419dc, 0x0}, -- {0x419dd, 0x0}, -- {0x419de, 0x0}, -- {0x419df, 0x0}, -- {0x419e0, 0x0}, -- {0x419e1, 0x0}, -- {0x419e2, 0x0}, -- {0x419e3, 0x0}, -- {0x419e4, 0x0}, -- {0x419e5, 0x0}, -- {0x419e6, 0x0}, -- {0x419e7, 0x0}, -- {0x419e8, 0x0}, -- {0x419e9, 0x0}, -- {0x419ea, 0x0}, -- {0x419eb, 0x0}, -- {0x419ec, 0x0}, -- {0x419ed, 0x0}, -- {0x419ee, 0x0}, -- {0x419ef, 0x0}, -- {0x419f0, 0x0}, -- {0x419f1, 0x0}, -- {0x419f2, 0x0}, -- {0x419f3, 0x0}, -- {0x419f4, 0x0}, -- {0x419f5, 0x0}, -- {0x419f6, 0x0}, -- {0x419f7, 0x0}, -- {0x419f8, 0x0}, -- {0x419f9, 0x0}, -- {0x419fa, 0x0}, -- {0x419fb, 0x0}, -- {0x419fc, 0x0}, -- {0x419fd, 0x0}, -- {0x419fe, 0x0}, -- {0x419ff, 0x0}, -- {0x41a00, 0x0}, -- {0x41a01, 0x0}, -- {0x41a02, 0x0}, -- {0x41a03, 0x0}, -- {0x41a04, 0x0}, -- {0x41a05, 0x0}, -- {0x41a06, 0x0}, -- {0x41a07, 0x0}, -- {0x41a08, 0x0}, -- {0x41a09, 0x0}, -- {0x41a0a, 0x0}, -- {0x41a0b, 0x0}, -- {0x41a0c, 0x0}, -- {0x41a0d, 0x0}, -- {0x41a0e, 0x0}, -- {0x41a0f, 0x0}, -- {0x41a10, 0x0}, -- {0x41a11, 0x0}, -- {0x41a12, 0x0}, -- {0x41a13, 0x0}, -- {0x41a14, 0x0}, -- {0x41a15, 0x0}, -- {0x41a16, 0x0}, -- {0x41a17, 0x0}, -- {0x41a18, 0x0}, -- {0x41a19, 0x0}, -- {0x41a1a, 0x0}, -- {0x41a1b, 0x0}, -- {0x41a1c, 0x0}, -- {0x41a1d, 0x0}, -- {0x41a1e, 0x0}, -- {0x41a1f, 0x0}, -- {0x41a20, 0x0}, -- {0x41a21, 0x0}, -- {0x41a22, 0x0}, -- {0x41a23, 0x0}, -- {0x41a24, 0x0}, -- {0x41a25, 0x0}, -- {0x41a26, 0x0}, -- {0x41a27, 0x0}, -- {0x41a28, 0x0}, -- {0x41a29, 0x0}, -- {0x41a2a, 0x0}, -- {0x41a2b, 0x0}, -- {0x41a2c, 0x0}, -- {0x41a2d, 0x0}, -- {0x41a2e, 0x0}, -- {0x41a2f, 0x0}, -- {0x41a30, 0x0}, -- {0x41a31, 0x0}, -- {0x41a32, 0x0}, -- {0x41a33, 0x0}, -- {0x41a34, 0x0}, -- {0x41a35, 0x0}, -- {0x41a36, 0x0}, -- {0x41a37, 0x0}, -- {0x41a38, 0x0}, -- {0x41a39, 0x0}, -- {0x41a3a, 0x0}, -- {0x41a3b, 0x0}, -- {0x41a3c, 0x0}, -- {0x41a3d, 0x0}, -- {0x41a3e, 0x0}, -- {0x41a3f, 0x0}, -- {0x41a40, 0x0}, -- {0x41a41, 0x0}, -- {0x41a42, 0x0}, -- {0x41a43, 0x0}, -- {0x41a44, 0x0}, -- {0x41a45, 0x0}, -- {0x41a46, 0x0}, -- {0x41a47, 0x0}, -- {0x41a48, 0x0}, -- {0x41a49, 0x0}, -- {0x41a4a, 0x0}, -- {0x41a4b, 0x0}, -- {0x41a4c, 0x0}, -- {0x41a4d, 0x0}, -- {0x41a4e, 0x0}, -- {0x41a4f, 0x0}, -- {0x41a50, 0x0}, -- {0x41a51, 0x0}, -- {0x41a52, 0x0}, -- {0x41a53, 0x0}, -- {0x41a54, 0x0}, -- {0x41a55, 0x0}, -- {0x41a56, 0x0}, -- {0x41a57, 0x0}, -- {0x41a58, 0x0}, -- {0x41a59, 0x0}, -- {0x41a5a, 0x0}, -- {0x41a5b, 0x0}, -- {0x41a5c, 0x0}, -- {0x41a5d, 0x0}, -- {0x41a5e, 0x0}, -- {0x41a5f, 0x0}, -- {0x41a60, 0x0}, -- {0x41a61, 0x0}, -- {0x41a62, 0x0}, -- {0x41a63, 0x0}, -- {0x41a64, 0x0}, -- {0x41a65, 0x0}, -- {0x41a66, 0x0}, -- {0x41a67, 0x0}, -- {0x41a68, 0x0}, -- {0x41a69, 0x0}, -- {0x41a6a, 0x0}, -- {0x41a6b, 0x0}, -- {0x41a6c, 0x0}, -- {0x41a6d, 0x0}, -- {0x41a6e, 0x0}, -- {0x41a6f, 0x0}, -- {0x41a70, 0x0}, -- {0x41a71, 0x0}, -- {0x41a72, 0x0}, -- {0x41a73, 0x0}, -- {0x41a74, 0x0}, -- {0x41a75, 0x0}, -- {0x41a76, 0x0}, -- {0x41a77, 0x0}, -- {0x41a78, 0x0}, -- {0x41a79, 0x0}, -- {0x41a7a, 0x0}, -- {0x41a7b, 0x0}, -- {0x41a7c, 0x0}, -- {0x41a7d, 0x0}, -- {0x41a7e, 0x0}, -- {0x41a7f, 0x0}, -- {0x41a80, 0x0}, -- {0x41a81, 0x0}, -- {0x41a82, 0x0}, -- {0x41a83, 0x0}, -- {0x41a84, 0x0}, -- {0x41a85, 0x0}, -- {0x41a86, 0x0}, -- {0x41a87, 0x0}, -- {0x41a88, 0x0}, -- {0x41a89, 0x0}, -- {0x41a8a, 0x0}, -- {0x41a8b, 0x0}, -- {0x41a8c, 0x0}, -- {0x41a8d, 0x0}, -- {0x41a8e, 0x0}, -- {0x41a8f, 0x0}, -- {0x41a90, 0x0}, -- {0x41a91, 0x0}, -- {0x41a92, 0x0}, -- {0x41a93, 0x0}, -- {0x41a94, 0x0}, -- {0x41a95, 0x0}, -- {0x41a96, 0x0}, -- {0x41a97, 0x0}, -- {0x41a98, 0x0}, -- {0x41a99, 0x0}, -- {0x41a9a, 0x0}, -- {0x41a9b, 0x0}, -- {0x41a9c, 0x0}, -- {0x41a9d, 0x0}, -- {0x41a9e, 0x0}, -- {0x41a9f, 0x0}, -- {0x41aa0, 0x0}, -- {0x41aa1, 0x0}, -- {0x41aa2, 0x0}, -- {0x41aa3, 0x0}, -- {0x41aa4, 0x0}, -- {0x41aa5, 0x0}, -- {0x41aa6, 0x0}, -- {0x41aa7, 0x0}, -- {0x41aa8, 0x0}, -- {0x41aa9, 0x0}, -- {0x41aaa, 0x0}, -- {0x41aab, 0x0}, -- {0x41aac, 0x0}, -- {0x41aad, 0x0}, -- {0x41aae, 0x0}, -- {0x41aaf, 0x0}, -- {0x41ab0, 0x0}, -- {0x41ab1, 0x0}, -- {0x41ab2, 0x0}, -- {0x41ab3, 0x0}, -- {0x41ab4, 0x0}, -- {0x41ab5, 0x0}, -- {0x41ab6, 0x0}, -- {0x41ab7, 0x0}, -- {0x41ab8, 0x0}, -- {0x41ab9, 0x0}, -- {0x41aba, 0x0}, -- {0x41abb, 0x0}, -- {0x41abc, 0x0}, -- {0x41abd, 0x0}, -- {0x41abe, 0x0}, -- {0x41abf, 0x0}, -- {0x41ac0, 0x0}, -- {0x41ac1, 0x0}, -- {0x41ac2, 0x0}, -- {0x41ac3, 0x0}, -- {0x41ac4, 0x0}, -- {0x41ac5, 0x0}, -- {0x41ac6, 0x0}, -- {0x41ac7, 0x0}, -- {0x41ac8, 0x0}, -- {0x41ac9, 0x0}, -- {0x41aca, 0x0}, -- {0x41acb, 0x0}, -- {0x41acc, 0x0}, -- {0x41acd, 0x0}, -- {0x41ace, 0x0}, -- {0x41acf, 0x0}, -- {0x41ad0, 0x0}, -- {0x41ad1, 0x0}, -- {0x41ad2, 0x0}, -- {0x41ad3, 0x0}, -- {0x41ad4, 0x0}, -- {0x41ad5, 0x0}, -- {0x41ad6, 0x0}, -- {0x41ad7, 0x0}, -- {0x41ad8, 0x0}, -- {0x41ad9, 0x0}, -- {0x41ada, 0x0}, -- {0x41adb, 0x0}, -- {0x41adc, 0x0}, -- {0x41add, 0x0}, -- {0x41ade, 0x0}, -- {0x41adf, 0x0}, -- {0x41ae0, 0x0}, -- {0x41ae1, 0x0}, -- {0x41ae2, 0x0}, -- {0x41ae3, 0x0}, -- {0x41ae4, 0x0}, -- {0x41ae5, 0x0}, -- {0x41ae6, 0x0}, -- {0x41ae7, 0x0}, -- {0x41ae8, 0x0}, -- {0x41ae9, 0x0}, -- {0x41aea, 0x0}, -- {0x41aeb, 0x0}, -- {0x41aec, 0x0}, -- {0x41aed, 0x0}, -- {0x41aee, 0x0}, -- {0x41aef, 0x0}, -- {0x41af0, 0x0}, -- {0x41af1, 0x0}, -- {0x41af2, 0x0}, -- {0x41af3, 0x0}, -- {0x41af4, 0x0}, -- {0x41af5, 0x0}, -- {0x41af6, 0x0}, -- {0x41af7, 0x0}, -- {0x41af8, 0x0}, -- {0x41af9, 0x0}, -- {0x41afa, 0x0}, -- {0x41afb, 0x0}, -- {0x41afc, 0x0}, -- {0x41afd, 0x0}, -- {0x41afe, 0x0}, -- {0x41aff, 0x0}, -- {0x41b00, 0x0}, -- {0x41b01, 0x0}, -- {0x41b02, 0x0}, -- {0x41b03, 0x0}, -- {0x41b04, 0x0}, -- {0x41b05, 0x0}, -- {0x41b06, 0x0}, -- {0x41b07, 0x0}, -- {0x41b08, 0x0}, -- {0x41b09, 0x0}, -- {0x41b0a, 0x0}, -- {0x41b0b, 0x0}, -- {0x41b0c, 0x0}, -- {0x41b0d, 0x0}, -- {0x41b0e, 0x0}, -- {0x41b0f, 0x0}, -- {0x41b10, 0x0}, -- {0x41b11, 0x0}, -- {0x41b12, 0x0}, -- {0x41b13, 0x0}, -- {0x41b14, 0x0}, -- {0x41b15, 0x0}, -- {0x41b16, 0x0}, -- {0x41b17, 0x0}, -- {0x41b18, 0x0}, -- {0x41b19, 0x0}, -- {0x41b1a, 0x0}, -- {0x41b1b, 0x0}, -- {0x41b1c, 0x0}, -- {0x41b1d, 0x0}, -- {0x41b1e, 0x0}, -- {0x41b1f, 0x0}, -- {0x41b20, 0x0}, -- {0x41b21, 0x0}, -- {0x41b22, 0x0}, -- {0x41b23, 0x0}, -- {0x41b24, 0x0}, -- {0x41b25, 0x0}, -- {0x41b26, 0x0}, -- {0x41b27, 0x0}, -- {0x41b28, 0x0}, -- {0x41b29, 0x0}, -- {0x41b2a, 0x0}, -- {0x41b2b, 0x0}, -- {0x41b2c, 0x0}, -- {0x41b2d, 0x0}, -- {0x41b2e, 0x0}, -- {0x41b2f, 0x0}, -- {0x41b30, 0x0}, -- {0x41b31, 0x0}, -- {0x41b32, 0x0}, -- {0x41b33, 0x0}, -- {0x41b34, 0x0}, -- {0x41b35, 0x0}, -- {0x41b36, 0x0}, -- {0x41b37, 0x0}, -- {0x41b38, 0x0}, -- {0x41b39, 0x0}, -- {0x41b3a, 0x0}, -- {0x41b3b, 0x0}, -- {0x41b3c, 0x0}, -- {0x41b3d, 0x0}, -- {0x41b3e, 0x0}, -- {0x41b3f, 0x0}, -- {0x41b40, 0x0}, -- {0x41b41, 0x0}, -- {0x41b42, 0x0}, -- {0x41b43, 0x0}, -- {0x41b44, 0x0}, -- {0x41b45, 0x0}, -- {0x41b46, 0x0}, -- {0x41b47, 0x0}, -- {0x41b48, 0x0}, -- {0x41b49, 0x0}, -- {0x41b4a, 0x0}, -- {0x41b4b, 0x0}, -- {0x41b4c, 0x0}, -- {0x41b4d, 0x0}, -- {0x41b4e, 0x0}, -- {0x41b4f, 0x0}, -- {0x41b50, 0x0}, -- {0x41b51, 0x0}, -- {0x41b52, 0x0}, -- {0x41b53, 0x0}, -- {0x41b54, 0x0}, -- {0x41b55, 0x0}, -- {0x41b56, 0x0}, -- {0x41b57, 0x0}, -- {0x41b58, 0x0}, -- {0x41b59, 0x0}, -- {0x41b5a, 0x0}, -- {0x41b5b, 0x0}, -- {0x41b5c, 0x0}, -- {0x41b5d, 0x0}, -- {0x41b5e, 0x0}, -- {0x41b5f, 0x0}, -- {0x41b60, 0x0}, -- {0x41b61, 0x0}, -- {0x41b62, 0x0}, -- {0x41b63, 0x0}, -- {0x41b64, 0x0}, -- {0x41b65, 0x0}, -- {0x41b66, 0x0}, -- {0x41b67, 0x0}, -- {0x41b68, 0x0}, -- {0x41b69, 0x0}, -- {0x41b6a, 0x0}, -- {0x41b6b, 0x0}, -- {0x41b6c, 0x0}, -- {0x41b6d, 0x0}, -- {0x41b6e, 0x0}, -- {0x41b6f, 0x0}, -- {0x41b70, 0x0}, -- {0x41b71, 0x0}, -- {0x41b72, 0x0}, -- {0x41b73, 0x0}, -- {0x41b74, 0x0}, -- {0x41b75, 0x0}, -- {0x41b76, 0x0}, -- {0x41b77, 0x0}, -- {0x41b78, 0x0}, -- {0x41b79, 0x0}, -- {0x41b7a, 0x0}, -- {0x41b7b, 0x0}, -- {0x41b7c, 0x0}, -- {0x41b7d, 0x0}, -- {0x41b7e, 0x0}, -- {0x41b7f, 0x0}, -- {0x41b80, 0x0}, -- {0x41b81, 0x0}, -- {0x41b82, 0x0}, -- {0x41b83, 0x0}, -- {0x41b84, 0x0}, -- {0x41b85, 0x0}, -- {0x41b86, 0x0}, -- {0x41b87, 0x0}, -- {0x41b88, 0x0}, -- {0x41b89, 0x0}, -- {0x41b8a, 0x0}, -- {0x41b8b, 0x0}, -- {0x41b8c, 0x0}, -- {0x41b8d, 0x0}, -- {0x41b8e, 0x0}, -- {0x41b8f, 0x0}, -- {0x41b90, 0x0}, -- {0x41b91, 0x0}, -- {0x41b92, 0x0}, -- {0x41b93, 0x0}, -- {0x41b94, 0x0}, -- {0x41b95, 0x0}, -- {0x41b96, 0x0}, -- {0x41b97, 0x0}, -- {0x41b98, 0x0}, -- {0x41b99, 0x0}, -- {0x41b9a, 0x0}, -- {0x41b9b, 0x0}, -- {0x41b9c, 0x0}, -- {0x41b9d, 0x0}, -- {0x41b9e, 0x0}, -- {0x41b9f, 0x0}, -- {0x41ba0, 0x0}, -- {0x41ba1, 0x0}, -- {0x41ba2, 0x0}, -- {0x41ba3, 0x0}, -- {0x41ba4, 0x0}, -- {0x41ba5, 0x0}, -- {0x41ba6, 0x0}, -- {0x41ba7, 0x0}, -- {0x41ba8, 0x0}, -- {0x41ba9, 0x0}, -- {0x41baa, 0x0}, -- {0x41bab, 0x0}, -- {0x41bac, 0x0}, -- {0x41bad, 0x0}, -- {0x41bae, 0x0}, -- {0x41baf, 0x0}, -- {0x41bb0, 0x0}, -- {0x41bb1, 0x0}, -- {0x41bb2, 0x0}, -- {0x41bb3, 0x0}, -- {0x41bb4, 0x0}, -- {0x41bb5, 0x0}, -- {0x41bb6, 0x0}, -- {0x41bb7, 0x0}, -- {0x41bb8, 0x0}, -- {0x41bb9, 0x0}, -- {0x41bba, 0x0}, -- {0x41bbb, 0x0}, -- {0x41bbc, 0x0}, -- {0x41bbd, 0x0}, -- {0x41bbe, 0x0}, -- {0x41bbf, 0x0}, -- {0x41bc0, 0x0}, -- {0x41bc1, 0x0}, -- {0x41bc2, 0x0}, -- {0x41bc3, 0x0}, -- {0x41bc4, 0x0}, -- {0x41bc5, 0x0}, -- {0x41bc6, 0x0}, -- {0x41bc7, 0x0}, -- {0x41bc8, 0x0}, -- {0x41bc9, 0x0}, -- {0x41bca, 0x0}, -- {0x41bcb, 0x0}, -- {0x41bcc, 0x0}, -- {0x41bcd, 0x0}, -- {0x41bce, 0x0}, -- {0x41bcf, 0x0}, -- {0x41bd0, 0x0}, -- {0x41bd1, 0x0}, -- {0x41bd2, 0x0}, -- {0x41bd3, 0x0}, -- {0x41bd4, 0x0}, -- {0x41bd5, 0x0}, -- {0x41bd6, 0x0}, -- {0x41bd7, 0x0}, -- {0x41bd8, 0x0}, -- {0x41bd9, 0x0}, -- {0x41bda, 0x0}, -- {0x41bdb, 0x0}, -- {0x41bdc, 0x0}, -- {0x41bdd, 0x0}, -- {0x41bde, 0x0}, -- {0x41bdf, 0x0}, -- {0x41be0, 0x0}, -- {0x41be1, 0x0}, -- {0x41be2, 0x0}, -- {0x41be3, 0x0}, -- {0x41be4, 0x0}, -- {0x41be5, 0x0}, -- {0x41be6, 0x0}, -- {0x41be7, 0x0}, -- {0x41be8, 0x0}, -- {0x41be9, 0x0}, -- {0x41bea, 0x0}, -- {0x41beb, 0x0}, -- {0x41bec, 0x0}, -- {0x41bed, 0x0}, -- {0x41bee, 0x0}, -- {0x41bef, 0x0}, -- {0x41bf0, 0x0}, -- {0x41bf1, 0x0}, -- {0x41bf2, 0x0}, -- {0x41bf3, 0x0}, -- {0x41bf4, 0x0}, -- {0x41bf5, 0x0}, -- {0x41bf6, 0x0}, -- {0x41bf7, 0x0}, -- {0x41bf8, 0x0}, -- {0x41bf9, 0x0}, -- {0x41bfa, 0x0}, -- {0x41bfb, 0x0}, -- {0x41bfc, 0x0}, -- {0x41bfd, 0x0}, -- {0x41bfe, 0x0}, -- {0x41bff, 0x0}, -- {0x41c00, 0x0}, -- {0x41c01, 0x0}, -- {0x41c02, 0x0}, -- {0x41c03, 0x0}, -- {0x41c04, 0x0}, -- {0x41c05, 0x0}, -- {0x41c06, 0x0}, -- {0x41c07, 0x0}, -- {0x41c08, 0x0}, -- {0x41c09, 0x0}, -- {0x41c0a, 0x0}, -- {0x41c0b, 0x0}, -- {0x41c0c, 0x0}, -- {0x41c0d, 0x0}, -- {0x41c0e, 0x0}, -- {0x41c0f, 0x0}, -- {0x41c10, 0x0}, -- {0x41c11, 0x0}, -- {0x41c12, 0x0}, -- {0x41c13, 0x0}, -- {0x41c14, 0x0}, -- {0x41c15, 0x0}, -- {0x41c16, 0x0}, -- {0x41c17, 0x0}, -- {0x41c18, 0x0}, -- {0x41c19, 0x0}, -- {0x41c1a, 0x0}, -- {0x41c1b, 0x0}, -- {0x41c1c, 0x0}, -- {0x41c1d, 0x0}, -- {0x41c1e, 0x0}, -- {0x41c1f, 0x0}, -- {0x41c20, 0x0}, -- {0x41c21, 0x0}, -- {0x41c22, 0x0}, -- {0x41c23, 0x0}, -- {0x41c24, 0x0}, -- {0x41c25, 0x0}, -- {0x41c26, 0x0}, -- {0x41c27, 0x0}, -- {0x41c28, 0x0}, -- {0x41c29, 0x0}, -- {0x41c2a, 0x0}, -- {0x41c2b, 0x0}, -- {0x41c2c, 0x0}, -- {0x41c2d, 0x0}, -- {0x41c2e, 0x0}, -- {0x41c2f, 0x0}, -- {0x41c30, 0x0}, -- {0x41c31, 0x0}, -- {0x41c32, 0x0}, -- {0x41c33, 0x0}, -- {0x41c34, 0x0}, -- {0x41c35, 0x0}, -- {0x41c36, 0x0}, -- {0x41c37, 0x0}, -- {0x41c38, 0x0}, -- {0x41c39, 0x0}, -- {0x41c3a, 0x0}, -- {0x41c3b, 0x0}, -- {0x41c3c, 0x0}, -- {0x41c3d, 0x0}, -- {0x41c3e, 0x0}, -- {0x41c3f, 0x0}, -- {0x41c40, 0x0}, -- {0x41c41, 0x0}, -- {0x41c42, 0x0}, -- {0x41c43, 0x0}, -- {0x41c44, 0x0}, -- {0x41c45, 0x0}, -- {0x41c46, 0x0}, -- {0x41c47, 0x0}, -- {0x41c48, 0x0}, -- {0x41c49, 0x0}, -- {0x41c4a, 0x0}, -- {0x41c4b, 0x0}, -- {0x41c4c, 0x0}, -- {0x41c4d, 0x0}, -- {0x41c4e, 0x0}, -- {0x41c4f, 0x0}, -- {0x41c50, 0x0}, -- {0x41c51, 0x0}, -- {0x41c52, 0x0}, -- {0x41c53, 0x0}, -- {0x41c54, 0x0}, -- {0x41c55, 0x0}, -- {0x41c56, 0x0}, -- {0x41c57, 0x0}, -- {0x9002e, 0x0}, -- {0x9002f, 0x0}, -- {0x90030, 0x0}, -- {0x90031, 0x0}, -- {0x90032, 0x0}, -- {0x90033, 0x0}, -- {0x90034, 0x0}, -- {0x90035, 0x0}, -- {0x90036, 0x0}, -- {0x90037, 0x0}, -- {0x90038, 0x0}, -- {0x90039, 0x0}, -- {0x9003a, 0x0}, -- {0x9003b, 0x0}, -- {0x9003c, 0x0}, -- {0x9003d, 0x0}, -- {0x9003e, 0x0}, -- {0x9003f, 0x0}, -- {0x90040, 0x0}, -- {0x90041, 0x0}, -- {0x90042, 0x0}, -- {0x90043, 0x0}, -- {0x90044, 0x0}, -- {0x90045, 0x0}, -- {0x90046, 0x0}, -- {0x90047, 0x0}, -- {0x90048, 0x0}, -- {0x90049, 0x0}, -- {0x9004a, 0x0}, -- {0x9004b, 0x0}, -- {0x9004c, 0x0}, -- {0x9004d, 0x0}, -- {0x9004e, 0x0}, -- {0x9004f, 0x0}, -- {0x90050, 0x0}, -- {0x90051, 0x0}, -- {0x90052, 0x0}, -- {0x90053, 0x0}, -- {0x90054, 0x0}, -- {0x90055, 0x0}, -- {0x90056, 0x0}, -- {0x90057, 0x0}, -- {0x90058, 0x0}, -- {0x90059, 0x0}, -- {0x9005a, 0x0}, -- {0x9005b, 0x0}, -- {0x9005c, 0x0}, -- {0x9005d, 0x0}, -- {0x9005e, 0x0}, -- {0x9005f, 0x0}, -- {0x90060, 0x0}, -- {0x90061, 0x0}, -- {0x90062, 0x0}, -- {0x90063, 0x0}, -- {0x90064, 0x0}, -- {0x90065, 0x0}, -- {0x90066, 0x0}, -- {0x90067, 0x0}, -- {0x90068, 0x0}, -- {0x90069, 0x0}, -- {0x9006a, 0x0}, -- {0x9006b, 0x0}, -- {0x9006c, 0x0}, -- {0x9006d, 0x0}, -- {0x9006e, 0x0}, -- {0x9006f, 0x0}, -- {0x90070, 0x0}, -- {0x90071, 0x0}, -- {0x90072, 0x0}, -- {0x90073, 0x0}, -- {0x90074, 0x0}, -- {0x90075, 0x0}, -- {0x90076, 0x0}, -- {0x90077, 0x0}, -- {0x90078, 0x0}, -- {0x90079, 0x0}, -- {0x9007a, 0x0}, -- {0x9007b, 0x0}, -- {0x9007c, 0x0}, -- {0x9007d, 0x0}, -- {0x9007e, 0x0}, -- {0x9007f, 0x0}, -- {0x90080, 0x0}, -- {0x90081, 0x0}, -- {0x90082, 0x0}, -- {0x90083, 0x0}, -- {0x90084, 0x0}, -- {0x90085, 0x0}, -- {0x90086, 0x0}, -- {0x90087, 0x0}, -- {0x90088, 0x0}, -- {0x90089, 0x0}, -- {0x9008a, 0x0}, -- {0x9008b, 0x0}, -- {0x9008c, 0x0}, -- {0x9008d, 0x0}, -- {0x9008e, 0x0}, -- {0x9008f, 0x0}, -- {0x90090, 0x0}, -- {0x90091, 0x0}, -- {0x90092, 0x0}, -- {0x90093, 0x0}, -- {0x90094, 0x0}, -- {0x90095, 0x0}, -- {0x90096, 0x0}, -- {0x90097, 0x0}, -- {0x90098, 0x0}, -- {0x90099, 0x0}, -- {0x9009a, 0x0}, -- {0x9009b, 0x0}, -- {0x9009c, 0x0}, -- {0x9009d, 0x0}, -- {0x9009e, 0x0}, -- {0x9009f, 0x0}, -- {0x900a0, 0x0}, -- {0x900a1, 0x0}, -- {0x900a2, 0x0}, -- {0x900a3, 0x0}, -- {0x900a4, 0x0}, -- {0x900a5, 0x0}, -- {0x900a6, 0x0}, -- {0x900a7, 0x0}, -- {0x900a8, 0x0}, -- {0x900a9, 0x0}, -- {0x900aa, 0x0}, -- {0x900ab, 0x0}, -- {0x900ac, 0x0}, -- {0x900ad, 0x0}, -- {0x900ae, 0x0}, -- {0x900af, 0x0}, -- {0x900b0, 0x0}, -- {0x900b1, 0x0}, -- {0x900b2, 0x0}, -- {0x900b3, 0x0}, -- {0x900b4, 0x0}, -- {0x900b5, 0x0}, -- {0x900b6, 0x0}, -- {0x900b7, 0x0}, -- {0x900b8, 0x0}, -- {0x900b9, 0x0}, -- {0x900ba, 0x0}, -- {0x900bb, 0x0}, -- {0x900bc, 0x0}, -- {0x900bd, 0x0}, -- {0x900be, 0x0}, -- {0x900bf, 0x0}, -- {0x900c0, 0x0}, -- {0x900c1, 0x0}, -- {0x900c2, 0x0}, -- {0x900c3, 0x0}, -- {0x900c4, 0x0}, -- {0x900c5, 0x0}, -- {0x900c6, 0x0}, -- {0x900c7, 0x0}, -- {0x900c8, 0x0}, -- {0x900c9, 0x0}, -- {0x900ca, 0x0}, -- {0x900cb, 0x0}, -- {0x900cc, 0x0}, -- {0x900cd, 0x0}, -- {0x900ce, 0x0}, -- {0x900cf, 0x0}, -- {0x900d0, 0x0}, -- {0x900d1, 0x0}, -- {0x900d2, 0x0}, -- {0x900d3, 0x0}, -- {0x900d4, 0x0}, -- {0x900d5, 0x0}, -- {0x900d6, 0x0}, -- {0x900d7, 0x0}, -- {0x900d8, 0x0}, -- {0x900d9, 0x0}, -- {0x900da, 0x0}, -- {0x900db, 0x0}, -- {0x900dc, 0x0}, -- {0x900dd, 0x0}, -- {0x900de, 0x0}, -- {0x900df, 0x0}, -- {0x900e0, 0x0}, -- {0x900e1, 0x0}, -- {0x900e2, 0x0}, -- {0x900e3, 0x0}, -- {0x900e4, 0x0}, -- {0x900e5, 0x0}, -- {0x900e6, 0x0}, -- {0x900e7, 0x0}, -- {0x900e8, 0x0}, -- {0x900e9, 0x0}, -- {0x900ea, 0x0}, -- {0x900eb, 0x0}, -- {0x900ec, 0x0}, -- {0x900ed, 0x0}, -- {0x900ee, 0x0}, -- {0x900ef, 0x0}, -- {0x900f0, 0x0}, -- {0x900f1, 0x0}, -- {0x900f2, 0x0}, -- {0x900f3, 0x0}, -- {0x900f4, 0x0}, -- {0x900f5, 0x0}, -- {0x900f6, 0x0}, -- {0x900f7, 0x0}, -- {0x900f8, 0x0}, -- {0x900f9, 0x0}, -- {0x900fa, 0x0}, -- {0x900fb, 0x0}, -- {0x900fc, 0x0}, -- {0x900fd, 0x0}, -- {0x900fe, 0x0}, -- {0x900ff, 0x0}, -- {0x90100, 0x0}, -- {0x90101, 0x0}, -- {0x90102, 0x0}, -- {0x90103, 0x0}, -- {0x90104, 0x0}, -- {0x90105, 0x0}, -- {0x90106, 0x0}, -- {0x90107, 0x0}, -- {0x90108, 0x0}, -- {0x90109, 0x0}, -- {0x9010a, 0x0}, -- {0x9010b, 0x0}, -- {0x9010c, 0x0}, -- {0x9010d, 0x0}, -- {0x9010e, 0x0}, -- {0x9010f, 0x0}, -- {0x90110, 0x0}, -- {0x90111, 0x0}, -- {0x90112, 0x0}, -- {0x90113, 0x0}, -- {0x90114, 0x0}, -- {0x90115, 0x0}, -- {0x90116, 0x0}, -- {0x90117, 0x0}, -- {0x90118, 0x0}, -- {0x90119, 0x0}, -- {0x9011a, 0x0}, -- {0x9011b, 0x0}, -- {0x9011c, 0x0}, -- {0x9011d, 0x0}, -- {0x9011e, 0x0}, -- {0x9011f, 0x0}, -- {0x90120, 0x0}, -- {0x90121, 0x0}, -- {0x90122, 0x0}, -- {0x90123, 0x0}, -- {0x90124, 0x0}, -- {0x90125, 0x0}, -- {0x90126, 0x0}, -- {0x90127, 0x0}, -- {0x90128, 0x0}, -- {0x90129, 0x0}, -- {0x9012a, 0x0}, -- {0x9012b, 0x0}, -- {0x9012c, 0x0}, -- {0x9012d, 0x0}, -- {0x9012e, 0x0}, -- {0x9012f, 0x0}, -- {0x90130, 0x0}, -- {0x90131, 0x0}, -- {0x90132, 0x0}, -- {0x90133, 0x0}, -- {0x90134, 0x0}, -- {0x90135, 0x0}, -- {0x90136, 0x0}, -- {0x90137, 0x0}, -- {0x90138, 0x0}, -- {0x90139, 0x0}, -- {0x9013a, 0x0}, -- {0x9013b, 0x0}, -- {0x9013c, 0x0}, -- {0x9013d, 0x0}, -- {0x9013e, 0x0}, -- {0x9013f, 0x0}, -- {0x90140, 0x0}, -- {0x90141, 0x0}, -- {0x90142, 0x0}, -- {0x90143, 0x0}, -- {0x90144, 0x0}, -- {0x90145, 0x0}, -- {0x90146, 0x0}, -- {0x90147, 0x0}, -- {0x90148, 0x0}, -- {0x90149, 0x0}, -- {0x9014a, 0x0}, -- {0x9014b, 0x0}, -- {0x9014c, 0x0}, -- {0x9014d, 0x0}, -- {0x9014e, 0x0}, -- {0x9014f, 0x0}, -- {0x90150, 0x0}, -- {0x90151, 0x0}, -- {0x90152, 0x0}, -- {0x90153, 0x0}, -- {0x90154, 0x0}, -- {0x90155, 0x0}, -- {0x90156, 0x0}, -- {0x90157, 0x0}, -- {0x90158, 0x0}, -- {0x90159, 0x0}, -- {0x9015a, 0x0}, -- {0x9015b, 0x0}, -- {0x9015c, 0x0}, -- {0x9015d, 0x0}, -- {0x9015e, 0x0}, -- {0x9015f, 0x0}, -- {0x90160, 0x0}, -- {0x90161, 0x0}, -- {0x90162, 0x0}, -- {0x90163, 0x0}, -- {0x90164, 0x0}, -- {0x90165, 0x0}, -- {0x90166, 0x0}, -- {0x90167, 0x0}, -- {0x90168, 0x0}, -- {0x90169, 0x0}, -- {0x9016a, 0x0}, -- {0x9016b, 0x0}, -- {0x9016c, 0x0}, -- {0x9016d, 0x0}, -- {0x9016e, 0x0}, -- {0x9016f, 0x0}, -- {0x90170, 0x0}, -- {0x90171, 0x0}, -- {0x90172, 0x0}, -- {0x90173, 0x0}, -- {0x90174, 0x0}, -- {0x90175, 0x0}, -- {0x90176, 0x0}, -- {0x90177, 0x0}, -- {0x90178, 0x0}, -- {0x90179, 0x0}, -- {0x9017a, 0x0}, -- {0x9017b, 0x0}, -- {0x9017c, 0x0}, -- {0x9017d, 0x0}, -- {0x9017e, 0x0}, -- {0x9017f, 0x0}, -- {0x90180, 0x0}, -- {0x90181, 0x0}, -- {0x90182, 0x0}, -- {0x90183, 0x0}, -- {0x90184, 0x0}, -- {0x90185, 0x0}, -- {0x90186, 0x0}, -- {0x90187, 0x0}, -- {0x90188, 0x0}, -- {0x90189, 0x0}, -- {0x9018a, 0x0}, -- {0x9018b, 0x0}, -- {0x9018c, 0x0}, -- {0x9018d, 0x0}, -- {0x9018e, 0x0}, -- {0x9018f, 0x0}, -- {0x90190, 0x0}, -- {0x90191, 0x0}, -- {0x90192, 0x0}, -- {0x90193, 0x0}, -- {0x90194, 0x0}, -- {0x90195, 0x0}, -- {0x90196, 0x0}, -- {0x90197, 0x0}, -- {0x90198, 0x0}, -- {0x90199, 0x0}, -- {0x9019a, 0x0}, -- {0x9019b, 0x0}, -- {0x9019c, 0x0}, -- {0x9019d, 0x0}, -- {0x9019e, 0x0}, -- {0x9019f, 0x0}, -- {0x901a0, 0x0}, -- {0x901a1, 0x0}, -- {0x901a2, 0x0}, -- {0x901a3, 0x0}, -- {0x901a4, 0x0}, -- {0x901a5, 0x0}, -- {0x901a6, 0x0}, -- {0x901a7, 0x0}, -- {0x901a8, 0x0}, -- {0x901a9, 0x0}, -- {0x901aa, 0x0}, -- {0x901ab, 0x0}, -- {0x901ac, 0x0}, -- {0x901ad, 0x0}, -- {0x901ae, 0x0}, -- {0x901af, 0x0}, -- {0x901b0, 0x0}, -- {0x901b1, 0x0}, -- {0x901b2, 0x0}, -- {0x901b3, 0x0}, -- {0x901b4, 0x0}, -- {0x901b5, 0x0}, -- {0x901b6, 0x0}, -- {0x901b7, 0x0}, -- {0x901b8, 0x0}, -- {0x901b9, 0x0}, -- {0x901ba, 0x0}, -- {0x901bb, 0x0}, -- {0x901bc, 0x0}, -- {0x901bd, 0x0}, -- {0x901be, 0x0}, -- {0x901bf, 0x0}, -- {0x901c0, 0x0}, -- {0x901c1, 0x0}, -- {0x901c2, 0x0}, -- {0x901c3, 0x0}, -- {0x901c4, 0x0}, -- {0x901c5, 0x0}, -- {0x901c6, 0x0}, -- {0x901c7, 0x0}, -- {0x901c8, 0x0}, -- {0x901c9, 0x0}, -- {0x901ca, 0x0}, -- {0x901cb, 0x0}, -- {0x901cc, 0x0}, -- {0x901cd, 0x0}, -- {0x901ce, 0x0}, -- {0x901cf, 0x0}, -- {0x901d0, 0x0}, -- {0x901d1, 0x0}, -- {0x901d2, 0x0}, -- {0x901d3, 0x0}, -- {0x901d4, 0x0}, -- {0x901d5, 0x0}, -- {0x901d6, 0x0}, -- {0x901d7, 0x0}, -- {0x901d8, 0x0}, -- {0x901d9, 0x0}, -- {0x901da, 0x0}, -- {0x901db, 0x0}, -- {0x901dc, 0x0}, -- {0x901dd, 0x0}, -- {0x901de, 0x0}, -- {0x901df, 0x0}, -- {0x901e0, 0x0}, -- {0x901e1, 0x0}, -- {0x901e2, 0x0}, -- {0x901e3, 0x0}, -- {0x901e4, 0x0}, -- {0x901e5, 0x0}, -- {0x901e6, 0x0}, -- {0x901e7, 0x0}, -- {0x901e8, 0x0}, -- {0x901e9, 0x0}, -- {0x901ea, 0x0}, -- {0x901eb, 0x0}, -- {0x901ec, 0x0}, -- {0x901ed, 0x0}, -- {0x901ee, 0x0}, -- {0x901ef, 0x0}, -- {0x901f0, 0x0}, -- {0x901f1, 0x0}, -- {0x901f2, 0x0}, -- {0x901f3, 0x0}, -- {0x901f4, 0x0}, -- {0x901f5, 0x0}, -- {0x901f6, 0x0}, -- {0x901f7, 0x0}, -- {0x901f8, 0x0}, -- {0x901f9, 0x0}, -- {0x901fa, 0x0}, -- {0x901fb, 0x0}, -- {0x901fc, 0x0}, -- {0x901fd, 0x0}, -- {0x901fe, 0x0}, -- {0x901ff, 0x0}, -- {0x90200, 0x0}, -- {0x90201, 0x0}, -- {0x90202, 0x0}, -- {0x90203, 0x0}, -- {0x90204, 0x0}, -- {0x90205, 0x0}, -- {0x90206, 0x0}, -- {0x90207, 0x0}, -- {0x90208, 0x0}, -- {0x90209, 0x0}, -- {0x9020a, 0x0}, -- {0x9020b, 0x0}, -- {0x9020c, 0x0}, -- {0x9020d, 0x0}, -- {0x9020e, 0x0}, -- {0x9020f, 0x0}, -- {0x90210, 0x0}, -- {0x90211, 0x0}, -- {0x90212, 0x0}, -- {0x90213, 0x0}, -- {0x90214, 0x0}, -- {0x90215, 0x0}, -- {0x90216, 0x0}, -- {0x90217, 0x0}, -- {0x90218, 0x0}, -- {0x90219, 0x0}, -- {0x9021a, 0x0}, -- {0x9021b, 0x0}, -- {0x9021c, 0x0}, -- {0x9021d, 0x0}, -- {0x9021e, 0x0}, -- {0x9021f, 0x0}, -- {0x90220, 0x0}, -- {0x90221, 0x0}, -- {0x90222, 0x0}, -- {0x90223, 0x0}, -- {0x90224, 0x0}, -- {0x90225, 0x0}, -- {0x90226, 0x0}, -- {0x90227, 0x0}, -- {0x90228, 0x0}, -- {0x90229, 0x0}, -- {0x9022a, 0x0}, -- {0x9022b, 0x0}, -- {0x9022c, 0x0}, -- {0x9022d, 0x0}, -- {0x9022e, 0x0}, -- {0x9022f, 0x0}, -- {0x90230, 0x0}, -- {0x90231, 0x0}, -- {0x90232, 0x0}, -- {0x90233, 0x0}, -- {0x90234, 0x0}, -- {0x90235, 0x0}, -- {0x90236, 0x0}, -- {0x90237, 0x0}, -- {0x90238, 0x0}, -- {0x90239, 0x0}, -- {0x9023a, 0x0}, -- {0x9023b, 0x0}, -- {0x9023c, 0x0}, -- {0x9023d, 0x0}, -- {0x9023e, 0x0}, -- {0x9023f, 0x0}, -- {0x90240, 0x0}, -- {0x90241, 0x0}, -- {0x90242, 0x0}, -- {0x90243, 0x0}, -- {0x90244, 0x0}, -- {0x90245, 0x0}, -- {0x90246, 0x0}, -- {0x90247, 0x0}, -- {0x90248, 0x0}, -- {0x90249, 0x0}, -- {0x9024a, 0x0}, -- {0x9024b, 0x0}, -- {0x9024c, 0x0}, -- {0x9024d, 0x0}, -- {0x9024e, 0x0}, -- {0x9024f, 0x0}, -- {0x90250, 0x0}, -- {0x90251, 0x0}, -- {0x90252, 0x0}, -- {0x90253, 0x0}, -- {0x90254, 0x0}, -- {0x90255, 0x0}, -- {0x90256, 0x0}, -- {0x90257, 0x0}, -- {0x90258, 0x0}, -- {0x90259, 0x0}, -- {0x9025a, 0x0}, -- {0x9025b, 0x0}, -- {0x9025c, 0x0}, -- {0x9025d, 0x0}, -- {0x9025e, 0x0}, -- {0x9025f, 0x0}, -- {0x90260, 0x0}, -- {0x90261, 0x0}, -- {0x90262, 0x0}, -- {0x90263, 0x0}, -- {0x90264, 0x0}, -- {0x90265, 0x0}, -- {0x90266, 0x0}, -- {0x90267, 0x0}, -- {0x90268, 0x0}, -- {0x90269, 0x0}, -- {0x9026a, 0x0}, -- {0x9026b, 0x0}, -- {0x9026c, 0x0}, -- {0x9026d, 0x0}, -- {0x9026e, 0x0}, -- {0x9026f, 0x0}, -- {0x90270, 0x0}, -- {0x90271, 0x0}, -- {0x90272, 0x0}, -- {0x90273, 0x0}, -- {0x90274, 0x0}, -- {0x90275, 0x0}, -- {0x90276, 0x0}, -- {0x90277, 0x0}, -- {0x90278, 0x0}, -- {0x90279, 0x0}, -- {0x9027a, 0x0}, -- {0x9027b, 0x0}, -- {0x9027c, 0x0}, -- {0x9027d, 0x0}, -- {0x9027e, 0x0}, -- {0x9027f, 0x0}, -- {0x90280, 0x0}, -- {0x90281, 0x0}, -- {0x90282, 0x0}, -- {0x90283, 0x0}, -- {0x90284, 0x0}, -- {0x90285, 0x0}, -- {0x90286, 0x0}, -- {0x90287, 0x0}, -- {0x90288, 0x0}, -- {0x90289, 0x0}, -- {0x9028a, 0x0}, -- {0x9028b, 0x0}, -- {0x9028c, 0x0}, -- {0x9028d, 0x0}, -- {0x9028e, 0x0}, -- {0x9028f, 0x0}, -- {0x90290, 0x0}, -- {0x90291, 0x0}, -- {0x90292, 0x0}, -- {0x90293, 0x0}, -- {0x90294, 0x0}, -- {0x90295, 0x0}, -- {0x90296, 0x0}, -- {0x90297, 0x0}, -- {0x90298, 0x0}, -- {0x90299, 0x0}, -- {0x9029a, 0x0}, -- {0x9029b, 0x0}, -- {0x9029c, 0x0}, -- {0x9029d, 0x0}, -- {0x9029e, 0x0}, -- {0x9029f, 0x0}, -- {0x902a0, 0x0}, -- {0x902a1, 0x0}, -- {0x902a2, 0x0}, -- {0x902a3, 0x0}, -- {0x902a4, 0x0}, -- {0x902a5, 0x0}, -- {0x902a6, 0x0}, -- {0x902a7, 0x0}, -- {0x902a8, 0x0}, -- {0x902a9, 0x0}, -- {0x902aa, 0x0}, -- {0x902ab, 0x0}, -- {0x902ac, 0x0}, -- {0x902ad, 0x0}, -- {0x902ae, 0x0}, -- {0x902af, 0x0}, -- {0x902b0, 0x0}, -- {0x902b1, 0x0}, -- {0x902b2, 0x0}, -- {0x902b3, 0x0}, -- {0x902b4, 0x0}, -- {0x902b5, 0x0}, -- {0x902b6, 0x0}, -- {0x902b7, 0x0}, -- {0x902b8, 0x0}, -- {0x902b9, 0x0}, -- {0x902ba, 0x0}, -- {0x902bb, 0x0}, -- {0x902bc, 0x0}, -- {0x902bd, 0x0}, -- {0x902be, 0x0}, -- {0x902bf, 0x0}, -- {0x902c0, 0x0}, -- {0x902c1, 0x0}, -- {0x902c2, 0x0}, -- {0x902c3, 0x0}, -- {0x902c4, 0x0}, -- {0x902c5, 0x0}, -- {0x902c6, 0x0}, -- {0x902c7, 0x0}, -- {0x902c8, 0x0}, -- {0x902c9, 0x0}, -- {0x902ca, 0x0}, -- {0x902cb, 0x0}, -- {0x902cc, 0x0}, -- {0x902cd, 0x0}, -- {0x902ce, 0x0}, -- {0x902cf, 0x0}, -- {0x902d0, 0x0}, -- {0x902d1, 0x0}, -- {0x902d2, 0x0}, -- {0x902d3, 0x0}, -- {0x902d4, 0x0}, -- {0x902d5, 0x0}, -- {0x902d6, 0x0}, -- {0x902d7, 0x0}, -- {0x902d8, 0x0}, -- {0x902d9, 0x0}, -- {0x902da, 0x0}, -- {0x902db, 0x0}, -- {0x902dc, 0x0}, -- {0x902dd, 0x0}, -- {0x902de, 0x0}, -- {0x902df, 0x0}, -- {0x902e0, 0x0}, -- {0x902e1, 0x0}, -- {0x902e2, 0x0}, -- {0x902e3, 0x0}, -- {0x902e4, 0x0}, -- {0x902e5, 0x0}, -- {0x902e6, 0x0}, -- {0x902e7, 0x0}, -- {0x902e8, 0x0}, -- {0x902e9, 0x0}, -- {0x902ea, 0x0}, -- {0x902eb, 0x0}, -- {0x902ec, 0x0}, -- {0x902ed, 0x0}, -- {0x902ee, 0x0}, -- {0x902ef, 0x0}, -- {0x902f0, 0x0}, -- {0x902f1, 0x0}, -- {0x902f2, 0x0}, -- {0x902f3, 0x0}, -- {0x902f4, 0x0}, -- {0x902f5, 0x0}, -- {0x902f6, 0x0}, -- {0x902f7, 0x0}, -- {0x902f8, 0x0}, -- {0x902f9, 0x0}, -- {0x902fa, 0x0}, -- {0x902fb, 0x0}, -- {0x902fc, 0x0}, -- {0x902fd, 0x0}, -- {0x902fe, 0x0}, -- {0x902ff, 0x0}, -- {0x90300, 0x0}, -- {0x90301, 0x0}, -- {0x90302, 0x0}, -- {0x90303, 0x0}, -- {0x90304, 0x0}, -- {0x90305, 0x0}, -- {0x90306, 0x0}, -- {0x90307, 0x0}, -- {0x90308, 0x0}, -- {0x90309, 0x0}, -- {0x9030a, 0x0}, -- {0x9030b, 0x0}, -- {0x9030c, 0x0}, -- {0x9030d, 0x0}, -- {0x9030e, 0x0}, -- {0x9030f, 0x0}, -- {0x90310, 0x0}, -- {0x90311, 0x0}, -- {0x90312, 0x0}, -- {0x90313, 0x0}, -- {0x90314, 0x0}, -- {0x90315, 0x0}, -- {0x90316, 0x0}, -- {0x90317, 0x0}, -- {0x90318, 0x0}, -- {0x90319, 0x0}, -- {0x9031a, 0x0}, -- {0x9031b, 0x0}, -- {0x9031c, 0x0}, -- {0x9031d, 0x0}, -- {0x9031e, 0x0}, -- {0x9031f, 0x0}, -- {0x90320, 0x0}, -- {0x90321, 0x0}, -- {0x90322, 0x0}, -- {0x90323, 0x0}, -- {0x90324, 0x0}, -- {0x90325, 0x0}, -- {0x90326, 0x0}, -- {0x90327, 0x0}, -- {0x90328, 0x0}, -- {0x90329, 0x0}, -- {0x9032a, 0x0}, -- {0x9032b, 0x0}, -- {0x9032c, 0x0}, -- {0x9032d, 0x0}, -- {0x9032e, 0x0}, -- {0x9032f, 0x0}, -- {0x90330, 0x0}, -- {0x90331, 0x0}, -- {0x90332, 0x0}, -- {0x90333, 0x0}, -- {0x90334, 0x0}, -- {0x90335, 0x0}, -- {0x90336, 0x0}, -- {0x90337, 0x0}, -- {0x90338, 0x0}, -- {0x90339, 0x0}, -- {0x9033a, 0x0}, -- {0x9033b, 0x0}, -- {0x9033c, 0x0}, -- {0x9033d, 0x0}, -- {0x9033e, 0x0}, -- {0x9033f, 0x0}, -- {0x90340, 0x0}, -- {0x90341, 0x0}, -- {0x90342, 0x0}, -- {0x90343, 0x0}, -- {0x90344, 0x0}, -- {0x90345, 0x0}, -- {0x90346, 0x0}, -- {0x90347, 0x0}, -- {0x90348, 0x0}, -- {0x90349, 0x0}, -- {0x9034a, 0x0}, -- {0x9034b, 0x0}, -- {0x9034c, 0x0}, -- {0x9034d, 0x0}, -- {0x9034e, 0x0}, -- {0x9034f, 0x0}, -- {0x90350, 0x0}, -- {0x90351, 0x0}, -- {0x90352, 0x0}, -- {0x90353, 0x0}, -- {0x90354, 0x0}, -- {0x90355, 0x0}, -- {0x90356, 0x0}, -- {0x90357, 0x0}, -- {0x90358, 0x0}, -- {0x90359, 0x0}, -- {0x9035a, 0x0}, -- {0x9035b, 0x0}, -- {0x9035c, 0x0}, -- {0x9035d, 0x0}, -- {0x9035e, 0x0}, -- {0x9035f, 0x0}, -- {0x90360, 0x0}, -- {0x90361, 0x0}, -- {0x90362, 0x0}, -- {0x90363, 0x0}, -- {0x90364, 0x0}, -- {0x90365, 0x0}, -- {0x90366, 0x0}, -- {0x90367, 0x0}, -- {0x90368, 0x0}, -- {0x90369, 0x0}, -- {0x9036a, 0x0}, -- {0x9036b, 0x0}, -- {0x9036c, 0x0}, -- {0x9036d, 0x0}, -- {0x9036e, 0x0}, -- {0x9036f, 0x0}, -- {0x90370, 0x0}, -- {0x90371, 0x0}, -- {0x90372, 0x0}, -- {0x90373, 0x0}, -- {0x90374, 0x0}, -- {0x90375, 0x0}, -- {0x90376, 0x0}, -- {0x90377, 0x0}, -- {0x90378, 0x0}, -- {0x90379, 0x0}, -- {0x9037a, 0x0}, -- {0x9037b, 0x0}, -- {0x9037c, 0x0}, -- {0x9037d, 0x0}, -- {0x9037e, 0x0}, -- {0x9037f, 0x0}, -- {0x90380, 0x0}, -- {0x90381, 0x0}, -- {0x90382, 0x0}, -- {0x90383, 0x0}, -- {0x90384, 0x0}, -- {0x90385, 0x0}, -- {0x90386, 0x0}, -- {0x90387, 0x0}, -- {0x90388, 0x0}, -- {0x90389, 0x0}, -- {0x9038a, 0x0}, -- {0x9038b, 0x0}, -- {0x9038c, 0x0}, -- {0x9038d, 0x0}, -- {0x9038e, 0x0}, -- {0x9038f, 0x0}, -- {0x90390, 0x0}, -- {0x90391, 0x0}, -- {0x90392, 0x0}, -- {0x90393, 0x0}, -- {0x90394, 0x0}, -- {0x90395, 0x0}, -- {0x90396, 0x0}, -- {0x90397, 0x0}, -- {0x90398, 0x0}, -- {0x90399, 0x0}, -- {0x9039a, 0x0}, -- {0x9039b, 0x0}, -- {0x9039c, 0x0}, -- {0x9039d, 0x0}, -- {0x9039e, 0x0}, -- {0x9039f, 0x0}, -- {0x903a0, 0x0}, -- {0x903a1, 0x0}, -- {0x903a2, 0x0}, -- {0x903a3, 0x0}, -- {0x903a4, 0x0}, -- {0x903a5, 0x0}, -- {0x903a6, 0x0}, -- {0x903a7, 0x0}, -- {0x903a8, 0x0}, -- {0x903a9, 0x0}, -- {0x903aa, 0x0}, -- {0x903ab, 0x0}, -- {0x903ac, 0x0}, -- {0x903ad, 0x0}, -- {0x903ae, 0x0}, -- {0x903af, 0x0}, -- {0x903b0, 0x0}, -- {0x903b1, 0x0}, -- {0x903b2, 0x0}, -- {0x903b3, 0x0}, -- {0x903b4, 0x0}, -- {0x903b5, 0x0}, -- {0x903b6, 0x0}, -- {0x903b7, 0x0}, -- {0x903b8, 0x0}, -- {0x903b9, 0x0}, -- {0x903ba, 0x0}, -- {0x903bb, 0x0}, -- {0x903bc, 0x0}, -- {0x903bd, 0x0}, -- {0x903be, 0x0}, -- {0x903bf, 0x0}, -- {0x903c0, 0x0}, -- {0x903c1, 0x0}, -- {0x903c2, 0x0}, -- {0x903c3, 0x0}, -- {0x903c4, 0x0}, -- {0x903c5, 0x0}, -- {0x903c6, 0x0}, -- {0x903c7, 0x0}, -- {0x903c8, 0x0}, -- {0x903c9, 0x0}, -- {0x903ca, 0x0}, -- {0x903cb, 0x0}, -- {0x903cc, 0x0}, -- {0x903cd, 0x0}, -- {0x903ce, 0x0}, -- {0x903cf, 0x0}, -- {0x903d0, 0x0}, -- {0x903d1, 0x0}, -- {0x903d2, 0x0}, -- {0x903d3, 0x0}, -- {0x903d4, 0x0}, -- {0x903d5, 0x0}, -- {0x903d6, 0x0}, -- {0x903d7, 0x0}, -- {0x903d8, 0x0}, -- {0x903d9, 0x0}, -- {0x903da, 0x0}, -- {0x903db, 0x0}, -- {0x903dc, 0x0}, -- {0x903dd, 0x0}, -- {0x903de, 0x0}, -- {0x903df, 0x0}, -- {0x903e0, 0x0}, -- {0x903e1, 0x0}, -- {0x903e2, 0x0}, -- {0x903e3, 0x0}, -- {0x903e4, 0x0}, -- {0x903e5, 0x0}, -- {0x903e6, 0x0}, -- {0x903e7, 0x0}, -- {0x903e8, 0x0}, -- {0x903e9, 0x0}, -- {0x903ea, 0x0}, -- {0x903eb, 0x0}, -- {0x903ec, 0x0}, -- {0x903ed, 0x0}, -- {0x903ee, 0x0}, -- {0x903ef, 0x0}, -- {0x903f0, 0x0}, -- {0x903f1, 0x0}, -- {0x903f2, 0x0}, -- {0x903f3, 0x0}, -- {0x903f4, 0x0}, -- {0x903f5, 0x0}, -- {0x903f6, 0x0}, -- {0x903f7, 0x0}, -- {0x903f8, 0x0}, -- {0x903f9, 0x0}, -- {0x903fa, 0x0}, -- {0x903fb, 0x0}, -- {0x903fc, 0x0}, -- {0x903fd, 0x0}, -- {0x903fe, 0x0}, -- {0x903ff, 0x0}, -- {0x90400, 0x0}, -- {0x90401, 0x0}, -- {0x90402, 0x0}, -- {0x90403, 0x0}, -- {0x90404, 0x0}, -- {0x90405, 0x0}, -- {0x90406, 0x0}, -- {0x90407, 0x0}, -- {0x90408, 0x0}, -- {0x90409, 0x0}, -- {0x9040a, 0x0}, -- {0x9040b, 0x0}, -- {0x9040c, 0x0}, -- {0x9040d, 0x0}, -- {0x9040e, 0x0}, -- {0x9040f, 0x0}, -- {0x90410, 0x0}, -- {0x90411, 0x0}, -- {0x90412, 0x0}, -- {0x90413, 0x0}, -- {0x90414, 0x0}, -- {0x90415, 0x0}, -- {0x90416, 0x0}, -- {0x90417, 0x0}, -- {0x90418, 0x0}, -- {0x90419, 0x0}, -- {0x9041a, 0x0}, -- {0x9041b, 0x0}, -- {0x9041c, 0x0}, -- {0x9041d, 0x0}, -- {0x9041e, 0x0}, -- {0x9041f, 0x0}, -- {0x90420, 0x0}, -- {0x90421, 0x0}, -- {0x90422, 0x0}, -- {0x90423, 0x0}, -- {0x90424, 0x0}, -- {0x90425, 0x0}, -- {0x90426, 0x0}, -- {0x90427, 0x0}, -- {0x90428, 0x0}, -- {0x90429, 0x0}, -- {0x9042a, 0x0}, -- {0x9042b, 0x0}, -- {0x9042c, 0x0}, -- {0x9042d, 0x0}, -- {0x9042e, 0x0}, -- {0x9042f, 0x0}, -- {0x90430, 0x0}, -- {0x90431, 0x0}, -- {0x90432, 0x0}, -- {0x90433, 0x0}, -- {0x90434, 0x0}, -- {0x90435, 0x0}, -- {0x90436, 0x0}, -- {0x90437, 0x0}, -- {0x90438, 0x0}, -- {0x90439, 0x0}, -- {0x9043a, 0x0}, -- {0x9043b, 0x0}, -- {0x9043c, 0x0}, -- {0x9043d, 0x0}, -- {0x9043e, 0x0}, -- {0x9043f, 0x0}, -- {0x90440, 0x0}, -- {0x90441, 0x0}, -- {0x90442, 0x0}, -- {0x90443, 0x0}, -- {0x90444, 0x0}, -- {0x90445, 0x0}, -- {0x90446, 0x0}, -- {0x90447, 0x0}, -- {0x90448, 0x0}, -- {0x90449, 0x0}, -- {0x9044a, 0x0}, -- {0x9044b, 0x0}, -- {0x9044c, 0x0}, -- {0x9044d, 0x0}, -- {0x9044e, 0x0}, -- {0x9044f, 0x0}, -- {0x90450, 0x0}, -- {0x90451, 0x0}, -- {0x90452, 0x0}, -- {0x90453, 0x0}, -- {0x90454, 0x0}, -- {0x90455, 0x0}, -- {0x90456, 0x0}, -- {0x90457, 0x0}, -- {0x90458, 0x0}, -- {0x90459, 0x0}, -- {0x9045a, 0x0}, -- {0x9045b, 0x0}, -- {0x9045c, 0x0}, -- {0x9045d, 0x0}, -- {0x9045e, 0x0}, -- {0x9045f, 0x0}, -- {0x90460, 0x0}, -- {0x90461, 0x0}, -- {0x90462, 0x0}, -- {0x90463, 0x0}, -- {0x90464, 0x0}, -- {0x90465, 0x0}, -- {0x90466, 0x0}, -- {0x90467, 0x0}, -- {0x90468, 0x0}, -- {0x90469, 0x0}, -- {0x9046a, 0x0}, -- {0x9046b, 0x0}, -- {0x9046c, 0x0}, -- {0x9046d, 0x0}, -- {0x9046e, 0x0}, -- {0x9046f, 0x0}, -- {0x90470, 0x0}, -- {0x90471, 0x0}, -- {0x90472, 0x0}, -- {0x90473, 0x0}, -- {0x90474, 0x0}, -- {0x90475, 0x0}, -- {0x90476, 0x0}, -- {0x90477, 0x0}, -- {0x90478, 0x0}, -- {0x90479, 0x0}, -- {0x9047a, 0x0}, -- {0x9047b, 0x0}, -- {0x9047c, 0x0}, -- {0x9047d, 0x0}, -- {0x9047e, 0x0}, -- {0x9047f, 0x0}, -- {0x90480, 0x0}, -- {0x90481, 0x0}, -- {0x90482, 0x0}, -- {0x90483, 0x0}, -- {0x90484, 0x0}, -- {0x90485, 0x0}, -- {0x90486, 0x0}, -- {0x90487, 0x0}, -- {0x90488, 0x0}, -- {0x90489, 0x0}, -- {0x9048a, 0x0}, -- {0x9048b, 0x0}, -- {0x9048c, 0x0}, -- {0x9048d, 0x0}, -- {0x9048e, 0x0}, -- {0x9048f, 0x0}, -- {0x90490, 0x0}, -- {0x90491, 0x0}, -- {0x90492, 0x0}, -- {0x90493, 0x0}, -- {0x90494, 0x0}, -- {0x90495, 0x0}, -- {0x90496, 0x0}, -- {0x90497, 0x0}, -- {0x90498, 0x0}, -- {0x90499, 0x0}, -- {0x9049a, 0x0}, -- {0x9049b, 0x0}, -- {0x9049c, 0x0}, -- {0x9049d, 0x0}, -- {0x9049e, 0x0}, -- {0x9049f, 0x0}, -- {0x904a0, 0x0}, -- {0x904a1, 0x0}, -- {0x904a2, 0x0}, -- {0x904a3, 0x0}, -- {0x904a4, 0x0}, -- {0x904a5, 0x0}, -- {0x904a6, 0x0}, -- {0x904a7, 0x0}, -- {0x904a8, 0x0}, -- {0x904a9, 0x0}, -- {0x904aa, 0x0}, -- {0x904ab, 0x0}, -- {0x904ac, 0x0}, -- {0x904ad, 0x0}, -- {0x904ae, 0x0}, -- {0x904af, 0x0}, -- {0x904b0, 0x0}, -- {0x904b1, 0x0}, -- {0x904b2, 0x0}, -- {0x904b3, 0x0}, -- {0x904b4, 0x0}, -- {0x904b5, 0x0}, -- {0x904b6, 0x0}, -- {0x904b7, 0x0}, -- {0x904b8, 0x0}, -- {0x904b9, 0x0}, -- {0x904ba, 0x0}, -- {0x904bb, 0x0}, -- {0x904bc, 0x0}, -- {0x904bd, 0x0}, -- {0x904be, 0x0}, -- {0x904bf, 0x0}, -- {0x904c0, 0x0}, -- {0x904c1, 0x0}, -- {0x904c2, 0x0}, -- {0x904c3, 0x0}, -- {0x904c4, 0x0}, -- {0x904c5, 0x0}, -- {0x904c6, 0x0}, -- {0x904c7, 0x0}, -- {0x904c8, 0x0}, -- {0x904c9, 0x0}, -- {0x904ca, 0x0}, -- {0x904cb, 0x0}, -- {0x904cc, 0x0}, -- {0x904cd, 0x0}, -- {0x904ce, 0x0}, -- {0x904cf, 0x0}, -- {0x904d0, 0x0}, -- {0x904d1, 0x0}, -- {0x904d2, 0x0}, -- {0x904d3, 0x0}, -- {0x904d4, 0x0}, -- {0x904d5, 0x0}, -- {0x904d6, 0x0}, -- {0x904d7, 0x0}, -- {0x904d8, 0x0}, -- {0x904d9, 0x0}, -- {0x904da, 0x0}, -- {0x904db, 0x0}, -- {0x904dc, 0x0}, -- {0x904dd, 0x0}, -- {0x904de, 0x0}, -- {0x904df, 0x0}, -- {0x904e0, 0x0}, -- {0x904e1, 0x0}, -- {0x904e2, 0x0}, -- {0x904e3, 0x0}, -- {0x904e4, 0x0}, -- {0x904e5, 0x0}, -- {0x904e6, 0x0}, -- {0x904e7, 0x0}, -- {0x904e8, 0x0}, -- {0x904e9, 0x0}, -- {0x904ea, 0x0}, -- {0x904eb, 0x0}, -- {0x904ec, 0x0}, -- {0x904ed, 0x0}, -- {0x904ee, 0x0}, -- {0x904ef, 0x0}, -- {0x904f0, 0x0}, -- {0x904f1, 0x0}, -- {0x904f2, 0x0}, -- {0x904f3, 0x0}, -- {0x904f4, 0x0}, -- {0x904f5, 0x0}, -- {0x904f6, 0x0}, -- {0x904f7, 0x0}, -- {0x904f8, 0x0}, -- {0x904f9, 0x0}, -- {0x904fa, 0x0}, -- {0x904fb, 0x0}, -- {0x904fc, 0x0}, -- {0x904fd, 0x0}, -- {0x904fe, 0x0}, -- {0x904ff, 0x0}, -- {0x90500, 0x0}, -- {0x90501, 0x0}, -- {0x90502, 0x0}, -- {0x90503, 0x0}, -- {0x90504, 0x0}, -- {0x90505, 0x0}, -- {0x90506, 0x0}, -- {0x90507, 0x0}, -- {0x90508, 0x0}, -- {0x90509, 0x0}, -- {0x9050a, 0x0}, -- {0x9050b, 0x0}, -- {0x9050c, 0x0}, -- {0x9050d, 0x0}, -- {0x9050e, 0x0}, -- {0x9050f, 0x0}, -- {0x90510, 0x0}, -- {0x90511, 0x0}, -- {0x90512, 0x0}, -- {0x90513, 0x0}, -- {0x90514, 0x0}, -- {0x90515, 0x0}, -- {0x90516, 0x0}, -- {0x90517, 0x0}, -- {0x90518, 0x0}, -- {0x90519, 0x0}, -- {0x9051a, 0x0}, -- {0x9051b, 0x0}, -- {0x9051c, 0x0}, -- {0x9051d, 0x0}, -- {0x9051e, 0x0}, -- {0x9051f, 0x0}, -- {0x90520, 0x0}, -- {0x90521, 0x0}, -- {0x90522, 0x0}, -- {0x90523, 0x0}, -- {0x90524, 0x0}, -- {0x90525, 0x0}, -- {0x90526, 0x0}, -- {0x90527, 0x0}, -- {0x90528, 0x0}, -- {0x90529, 0x0}, -- {0x9052a, 0x0}, -- {0x9052b, 0x0}, -- {0x9052c, 0x0}, -- {0x9052d, 0x0}, -- {0x9052e, 0x0}, -- {0x9052f, 0x0}, -- {0x90530, 0x0}, -- {0x90531, 0x0}, -- {0x90532, 0x0}, -- {0x90533, 0x0}, -- {0x90534, 0x0}, -- {0x90535, 0x0}, -- {0x90536, 0x0}, -- {0x90537, 0x0}, -- {0x90538, 0x0}, -- {0x90539, 0x0}, -- {0x9053a, 0x0}, -- {0xd00e7, 0x0}, -- {0x9001c, 0x0}, -- {0x90020, 0x0}, -- {0x90024, 0x0}, -- {0x90025, 0x0}, -- {0x90026, 0x0}, -- {0x9002b, 0x0}, -- {0x90708, 0x0}, -- {0x90700, 0x0}, -- {0x90701, 0x0}, -- {0x90702, 0x0}, -- {0x90703, 0x0}, -- {0x90704, 0x0}, -- {0x90705, 0x0}, -- {0x90706, 0x0}, -- {0x90707, 0x0}, -- {0x2018a, 0x0}, -- {0x20124, 0x0}, -- {0x2018b, 0x0}, -- {0x20125, 0x0}, -- {0x2018c, 0x0}, -- {0x20126, 0x0}, -- {0x2018d, 0x0}, -- {0x20127, 0x0}, -- {0x2018e, 0x0}, -- {0x20128, 0x0}, -- {0x2018f, 0x0}, -- {0x20129, 0x0}, -- {0x20190, 0x0}, -- {0x2012a, 0x0}, -- {0x20191, 0x0}, -- {0x2012b, 0x0}, -- {0x20192, 0x0}, -- {0x2012c, 0x0}, -- {0x20193, 0x0}, -- {0x2012d, 0x0}, -- {0x20194, 0x0}, -- {0x2012e, 0x0}, -- {0x20195, 0x0}, -- {0x2012f, 0x0}, -- {0x20196, 0x0}, -- {0x20130, 0x0}, -- {0x20197, 0x0}, -- {0x20131, 0x0}, -- {0x20198, 0x0}, -- {0x20132, 0x0}, -- {0x20199, 0x0}, -- {0x20133, 0x0}, -- {0x2019a, 0x0}, -- {0x20134, 0x0}, -- {0x2019b, 0x0}, -- {0x20135, 0x0}, -- {0x2019c, 0x0}, -- {0x20136, 0x0}, -- {0x2019d, 0x0}, -- {0x20137, 0x0}, -- {0x2019e, 0x0}, -- {0x20138, 0x0}, -- {0x2019f, 0x0}, -- {0x20139, 0x0}, -- {0x201a0, 0x0}, -- {0x2013a, 0x0}, -- {0x201a1, 0x0}, -- {0x2013b, 0x0}, -- {0x201a2, 0x0}, -- {0x2013c, 0x0}, -- {0x201a3, 0x0}, -- {0x2013d, 0x0}, -- {0x201a4, 0x0}, -- {0x2013e, 0x0}, -- {0x201a5, 0x0}, -- {0x2013f, 0x0}, -- {0x201a6, 0x0}, -- {0x20140, 0x0}, -- {0x201a7, 0x0}, -- {0x20141, 0x0}, -- {0x201a8, 0x0}, -- {0x20142, 0x0}, -- {0x201a9, 0x0}, -- {0x20143, 0x0}, -- {0x201aa, 0x0}, -- {0x20144, 0x0}, -- {0x201ab, 0x0}, -- {0x20145, 0x0}, -- {0x201ac, 0x0}, -- {0x20146, 0x0}, -- {0x201ad, 0x0}, -- {0x20147, 0x0}, -- {0x201ae, 0x0}, -- {0x20148, 0x0}, -- {0x201af, 0x0}, -- {0x20149, 0x0}, -- {0x201b0, 0x0}, -- {0x2014a, 0x0}, -- {0x201b1, 0x0}, -- {0x2014b, 0x0}, -- {0x201b2, 0x0}, -- {0x2014c, 0x0}, -- {0x201b3, 0x0}, -- {0x2014d, 0x0}, -- {0x201b4, 0x0}, -- {0x2014e, 0x0}, -- {0x201b5, 0x0}, -- {0x2014f, 0x0}, -- {0x201b6, 0x0}, -- {0x20150, 0x0}, -- {0x201b7, 0x0}, -- {0x20151, 0x0}, -- {0x201b8, 0x0}, -- {0x20152, 0x0}, -- {0x201b9, 0x0}, -- {0x20153, 0x0}, -- {0x201ba, 0x0}, -- {0x20154, 0x0}, -- {0x201bb, 0x0}, -- {0x20155, 0x0}, -- {0x201bc, 0x0}, -- {0x20156, 0x0}, -- {0x201bd, 0x0}, -- {0x20157, 0x0}, -- {0x201be, 0x0}, -- {0x20158, 0x0}, -- {0x201bf, 0x0}, -- {0x20159, 0x0}, -- {0x201c0, 0x0}, -- {0x2015a, 0x0}, -- {0x201c1, 0x0}, -- {0x2015b, 0x0}, -- {0x201c2, 0x0}, -- {0x2015c, 0x0}, -- {0x201c3, 0x0}, -- {0x2015d, 0x0}, -- {0x201c4, 0x0}, -- {0x2015e, 0x0}, -- {0x201c5, 0x0}, -- {0x2015f, 0x0}, -- {0x201c6, 0x0}, -- {0x20160, 0x0}, -- {0x201c7, 0x0}, -- {0x20161, 0x0}, -- {0x201c8, 0x0}, -- {0x20162, 0x0}, -- {0x201c9, 0x0}, -- {0x20163, 0x0}, -- {0x201ca, 0x0}, -- {0x20164, 0x0}, -- {0x201cb, 0x0}, -- {0x20165, 0x0}, -- {0x201cc, 0x0}, -- {0x20166, 0x0}, -- {0x201cd, 0x0}, -- {0x20167, 0x0}, -- {0x201ce, 0x0}, -- {0x20168, 0x0}, -- {0x201cf, 0x0}, -- {0x20169, 0x0}, -- {0x201d0, 0x0}, -- {0x2016a, 0x0}, -- {0x201d1, 0x0}, -- {0x2016b, 0x0}, -- {0x201d2, 0x0}, -- {0x2016c, 0x0}, -- {0x201d3, 0x0}, -- {0x2016d, 0x0}, -- {0x201d4, 0x0}, -- {0x2016e, 0x0}, -- {0x201d5, 0x0}, -- {0x2016f, 0x0}, -- {0x201d6, 0x0}, -- {0x20170, 0x0}, -- {0x201d7, 0x0}, -- {0x20171, 0x0}, -- {0x201d8, 0x0}, -- {0x20172, 0x0}, -- {0x201d9, 0x0}, -- {0x20173, 0x0}, -- {0x201da, 0x0}, -- {0xc0001, 0x0}, -- {0xc0002, 0x0}, -- {0xc0003, 0x0}, -- {0xc0000, 0x0}, -- {0xc0006, 0x0}, -- {0xc0007, 0x0}, -- {0x9070c, 0x0}, -- {0x9070d, 0x0}, -- {0x9070e, 0x0}, -- {0x9070f, 0x0}, -- {0x90710, 0x0}, -- {0x90711, 0x0}, -- {0x90713, 0x0}, -- {0x90714, 0x0}, -- {0x90715, 0x0}, -- {0x90c10, 0x0}, -- {0x90c12, 0x0}, -- {0x90712, 0x0}, -- {0x90716, 0x0}, -- {0x90717, 0x0}, -- {0x90718, 0x0}, -- {0x90719, 0x0}, -- {0x9071a, 0x0}, -- {0x9071b, 0x0}, -- {0x90c11, 0x0}, -- {0x90904, 0x0}, -- {0x90986, 0x0}, -- {0x90920, 0x0}, -- {0x90921, 0x0}, -- {0x90922, 0x0}, -- {0x90923, 0x0}, -- {0x90924, 0x0}, -- {0x90925, 0x0}, -- {0x90926, 0x0}, -- {0x90927, 0x0}, -- {0x90930, 0x0}, -- {0x90931, 0x0}, -- {0x90932, 0x0}, -- {0x90933, 0x0}, -- {0x9090a, 0x0}, -- {0x9090c, 0x0}, -- {0x9090d, 0x0}, -- {0x200f0, 0x0}, -- {0x200f1, 0x0}, -- {0x200f2, 0x0}, -- {0x100b9, 0x0}, -- {0x100b1, 0x0}, -- {0x100ba, 0x0}, -- {0x100a2, 0x0}, -- {0x100b5, 0x0}, -- {0x110b9, 0x0}, -- {0x110b1, 0x0}, -- {0x110ba, 0x0}, -- {0x110a2, 0x0}, -- {0x110b5, 0x0}, -- {0x120b9, 0x0}, -- {0x120b1, 0x0}, -- {0x120ba, 0x0}, -- {0x120a2, 0x0}, -- {0x120b5, 0x0}, -- {0x130b9, 0x0}, -- {0x130b1, 0x0}, -- {0x130ba, 0x0}, -- {0x130a2, 0x0}, -- {0x130b5, 0x0}, -- {0x70024, 0x0}, -- {0x70025, 0x0}, -- {0x70026, 0x0}, -- {0x70027, 0x0}, -- {0x70028, 0x0}, -- {0x70029, 0x0}, -- {0x7002a, 0x0}, -- {0x7002b, 0x0}, -- {0x70124, 0x0}, -- {0x70125, 0x0}, -- {0x70126, 0x0}, -- {0x70127, 0x0}, -- {0x70128, 0x0}, -- {0x70129, 0x0}, -- {0x7012a, 0x0}, -- {0x7012b, 0x0}, -- {0x70224, 0x0}, -- {0x70225, 0x0}, -- {0x70226, 0x0}, -- {0x70227, 0x0}, -- {0x70228, 0x0}, -- {0x70229, 0x0}, -- {0x7022a, 0x0}, -- {0x7022b, 0x0}, -- {0x70324, 0x0}, -- {0x70325, 0x0}, -- {0x70326, 0x0}, -- {0x70327, 0x0}, -- {0x70328, 0x0}, -- {0x70329, 0x0}, -- {0x7032a, 0x0}, -- {0x7032b, 0x0}, -- {0x70424, 0x0}, -- {0x70425, 0x0}, -- {0x70426, 0x0}, -- {0x70427, 0x0}, -- {0x70428, 0x0}, -- {0x70429, 0x0}, -- {0x7042a, 0x0}, -- {0x7042b, 0x0}, -- {0x70524, 0x0}, -- {0x70525, 0x0}, -- {0x70526, 0x0}, -- {0x70527, 0x0}, -- {0x70528, 0x0}, -- {0x70529, 0x0}, -- {0x7052a, 0x0}, -- {0x7052b, 0x0}, -- {0x70624, 0x0}, -- {0x70625, 0x0}, -- {0x70626, 0x0}, -- {0x70627, 0x0}, -- {0x70628, 0x0}, -- {0x70629, 0x0}, -- {0x7062a, 0x0}, -- {0x7062b, 0x0}, -- {0x70724, 0x0}, -- {0x70725, 0x0}, -- {0x70726, 0x0}, -- {0x70727, 0x0}, -- {0x70728, 0x0}, -- {0x70729, 0x0}, -- {0x7072a, 0x0}, -- {0x7072b, 0x0}, -- {0x70824, 0x0}, -- {0x70825, 0x0}, -- {0x70826, 0x0}, -- {0x70827, 0x0}, -- {0x70828, 0x0}, -- {0x70829, 0x0}, -- {0x7082a, 0x0}, -- {0x7082b, 0x0}, -- {0x70065, 0x0}, -- {0x2007e, 0x0}, -- {0x200ef, 0x0}, -- {0x90910, 0x0}, -- {0x20310, 0x0}, -- {0x20311, 0x0}, -- {0x20049, 0x0}, -- {0x100be, 0x0}, -- {0x100b0, 0x0}, -- {0x10080, 0x0}, -- {0x10081, 0x0}, -- {0x10082, 0x0}, -- {0x10083, 0x0}, -- {0x10084, 0x0}, -- {0x10085, 0x0}, -- {0x10086, 0x0}, -- {0x10087, 0x0}, -- {0x10056, 0x0}, -- {0x100d9, 0x0}, -- {0x110be, 0x0}, -- {0x110b0, 0x0}, -- {0x11080, 0x0}, -- {0x11081, 0x0}, -- {0x11082, 0x0}, -- {0x11083, 0x0}, -- {0x11084, 0x0}, -- {0x11085, 0x0}, -- {0x11086, 0x0}, -- {0x11087, 0x0}, -- {0x11056, 0x0}, -- {0x110d9, 0x0}, -- {0x120be, 0x0}, -- {0x120b0, 0x0}, -- {0x12080, 0x0}, -- {0x12081, 0x0}, -- {0x12082, 0x0}, -- {0x12083, 0x0}, -- {0x12084, 0x0}, -- {0x12085, 0x0}, -- {0x12086, 0x0}, -- {0x12087, 0x0}, -- {0x12056, 0x0}, -- {0x120d9, 0x0}, -- {0x130be, 0x0}, -- {0x130b0, 0x0}, -- {0x13080, 0x0}, -- {0x13081, 0x0}, -- {0x13082, 0x0}, -- {0x13083, 0x0}, -- {0x13084, 0x0}, -- {0x13085, 0x0}, -- {0x13086, 0x0}, -- {0x13087, 0x0}, -- {0x13056, 0x0}, -- {0x130d9, 0x0}, -- {0x30090, 0x0}, -- {0x30091, 0x0}, -- {0x30092, 0x0}, -- {0x30093, 0x0}, -- {0x30094, 0x0}, -- {0x30095, 0x0}, -- {0x30096, 0x0}, -- {0x31090, 0x0}, -- {0x31091, 0x0}, -- {0x31092, 0x0}, -- {0x31093, 0x0}, -- {0x31094, 0x0}, -- {0x31095, 0x0}, -- {0x31096, 0x0}, -- {0x30002, 0x0}, -- {0x30007, 0x0}, -- {0x30008, 0x0}, -- {0x30005, 0x0}, -- {0x30006, 0x0}, -- {0x30001, 0x0}, -- {0x30101, 0x0}, -- {0x30201, 0x0}, -- {0x30301, 0x0}, -- {0x30401, 0x0}, -- {0x30501, 0x0}, -- {0x30601, 0x0}, -- {0x30701, 0x0}, -- {0x30801, 0x0}, -- {0x30901, 0x0}, -- {0x31002, 0x0}, -- {0x31007, 0x0}, -- {0x31008, 0x0}, -- {0x31005, 0x0}, -- {0x31006, 0x0}, -- {0x31001, 0x0}, -- {0x31101, 0x0}, -- {0x31201, 0x0}, -- {0x31301, 0x0}, -- {0x31401, 0x0}, -- {0x31501, 0x0}, -- {0x31601, 0x0}, -- {0x31701, 0x0}, -- {0x31801, 0x0}, -- {0x31901, 0x0}, -- {0x10000, 0x0}, -- {0x100ad, 0x0}, -- {0x100af, 0x0}, -- {0x10020, 0x0}, -- {0x10021, 0x0}, -- {0x10028, 0x0}, -- {0x10029, 0x0}, -- {0x10066, 0x0}, -- {0x10067, 0x0}, -- {0x1005a, 0x0}, -- {0x1005b, 0x0}, -- {0x1005c, 0x0}, -- {0x1005d, 0x0}, -- {0x1002a, 0x0}, -- {0x1002b, 0x0}, -- {0x10024, 0x0}, -- {0x10025, 0x0}, -- {0x10026, 0x0}, -- {0x10027, 0x0}, -- {0x10010, 0x0}, -- {0x10011, 0x0}, -- {0x10012, 0x0}, -- {0x10013, 0x0}, -- {0x10068, 0x0}, -- {0x10069, 0x0}, -- {0x1006a, 0x0}, -- {0x1006b, 0x0}, -- {0x1006c, 0x0}, -- {0x1006d, 0x0}, -- {0x1006e, 0x0}, -- {0x1006f, 0x0}, -- {0x1001c, 0x0}, -- {0x1001d, 0x0}, -- {0x1001e, 0x0}, -- {0x1001f, 0x0}, -- {0x10124, 0x0}, -- {0x10125, 0x0}, -- {0x10126, 0x0}, -- {0x10127, 0x0}, -- {0x10110, 0x0}, -- {0x10111, 0x0}, -- {0x10112, 0x0}, -- {0x10113, 0x0}, -- {0x10168, 0x0}, -- {0x10169, 0x0}, -- {0x1016a, 0x0}, -- {0x1016b, 0x0}, -- {0x1016c, 0x0}, -- {0x1016d, 0x0}, -- {0x1016e, 0x0}, -- {0x1016f, 0x0}, -- {0x1011c, 0x0}, -- {0x1011d, 0x0}, -- {0x1011e, 0x0}, -- {0x1011f, 0x0}, -- {0x10224, 0x0}, -- {0x10225, 0x0}, -- {0x10226, 0x0}, -- {0x10227, 0x0}, -- {0x10210, 0x0}, -- {0x10211, 0x0}, -- {0x10212, 0x0}, -- {0x10213, 0x0}, -- {0x10268, 0x0}, -- {0x10269, 0x0}, -- {0x1026a, 0x0}, -- {0x1026b, 0x0}, -- {0x1026c, 0x0}, -- {0x1026d, 0x0}, -- {0x1026e, 0x0}, -- {0x1026f, 0x0}, -- {0x1021c, 0x0}, -- {0x1021d, 0x0}, -- {0x1021e, 0x0}, -- {0x1021f, 0x0}, -- {0x10324, 0x0}, -- {0x10325, 0x0}, -- {0x10326, 0x0}, -- {0x10327, 0x0}, -- {0x10310, 0x0}, -- {0x10311, 0x0}, -- {0x10312, 0x0}, -- {0x10313, 0x0}, -- {0x10368, 0x0}, -- {0x10369, 0x0}, -- {0x1036a, 0x0}, -- {0x1036b, 0x0}, -- {0x1036c, 0x0}, -- {0x1036d, 0x0}, -- {0x1036e, 0x0}, -- {0x1036f, 0x0}, -- {0x1031c, 0x0}, -- {0x1031d, 0x0}, -- {0x1031e, 0x0}, -- {0x1031f, 0x0}, -- {0x10424, 0x0}, -- {0x10425, 0x0}, -- {0x10426, 0x0}, -- {0x10427, 0x0}, -- {0x10410, 0x0}, -- {0x10411, 0x0}, -- {0x10412, 0x0}, -- {0x10413, 0x0}, -- {0x10468, 0x0}, -- {0x10469, 0x0}, -- {0x1046a, 0x0}, -- {0x1046b, 0x0}, -- {0x1046c, 0x0}, -- {0x1046d, 0x0}, -- {0x1046e, 0x0}, -- {0x1046f, 0x0}, -- {0x1041c, 0x0}, -- {0x1041d, 0x0}, -- {0x1041e, 0x0}, -- {0x1041f, 0x0}, -- {0x10524, 0x0}, -- {0x10525, 0x0}, -- {0x10526, 0x0}, -- {0x10527, 0x0}, -- {0x10510, 0x0}, -- {0x10511, 0x0}, -- {0x10512, 0x0}, -- {0x10513, 0x0}, -- {0x10568, 0x0}, -- {0x10569, 0x0}, -- {0x1056a, 0x0}, -- {0x1056b, 0x0}, -- {0x1056c, 0x0}, -- {0x1056d, 0x0}, -- {0x1056e, 0x0}, -- {0x1056f, 0x0}, -- {0x1051c, 0x0}, -- {0x1051d, 0x0}, -- {0x1051e, 0x0}, -- {0x1051f, 0x0}, -- {0x10624, 0x0}, -- {0x10625, 0x0}, -- {0x10626, 0x0}, -- {0x10627, 0x0}, -- {0x10610, 0x0}, -- {0x10611, 0x0}, -- {0x10612, 0x0}, -- {0x10613, 0x0}, -- {0x10668, 0x0}, -- {0x10669, 0x0}, -- {0x1066a, 0x0}, -- {0x1066b, 0x0}, -- {0x1066c, 0x0}, -- {0x1066d, 0x0}, -- {0x1066e, 0x0}, -- {0x1066f, 0x0}, -- {0x1061c, 0x0}, -- {0x1061d, 0x0}, -- {0x1061e, 0x0}, -- {0x1061f, 0x0}, -- {0x10724, 0x0}, -- {0x10725, 0x0}, -- {0x10726, 0x0}, -- {0x10727, 0x0}, -- {0x10710, 0x0}, -- {0x10711, 0x0}, -- {0x10712, 0x0}, -- {0x10713, 0x0}, -- {0x10768, 0x0}, -- {0x10769, 0x0}, -- {0x1076a, 0x0}, -- {0x1076b, 0x0}, -- {0x1076c, 0x0}, -- {0x1076d, 0x0}, -- {0x1076e, 0x0}, -- {0x1076f, 0x0}, -- {0x1071c, 0x0}, -- {0x1071d, 0x0}, -- {0x1071e, 0x0}, -- {0x1071f, 0x0}, -- {0x10824, 0x0}, -- {0x10825, 0x0}, -- {0x10826, 0x0}, -- {0x10827, 0x0}, -- {0x10810, 0x0}, -- {0x10811, 0x0}, -- {0x10812, 0x0}, -- {0x10813, 0x0}, -- {0x10868, 0x0}, -- {0x10869, 0x0}, -- {0x1086a, 0x0}, -- {0x1086b, 0x0}, -- {0x1086c, 0x0}, -- {0x1086d, 0x0}, -- {0x1086e, 0x0}, -- {0x1086f, 0x0}, -- {0x1081c, 0x0}, -- {0x1081d, 0x0}, -- {0x1081e, 0x0}, -- {0x1081f, 0x0}, -- {0x1000c, 0x0}, -- {0x1000d, 0x0}, -- {0x10015, 0x0}, -- {0x10016, 0x0}, -- {0x10019, 0x0}, -- {0x1001b, 0x0}, -- {0x10022, 0x0}, -- {0x10023, 0x0}, -- {0x100d0, 0x0}, -- {0x100d1, 0x0}, -- {0x100d2, 0x0}, -- {0x100d3, 0x0}, -- {0x100d4, 0x0}, -- {0x11000, 0x0}, -- {0x110ad, 0x0}, -- {0x110af, 0x0}, -- {0x11020, 0x0}, -- {0x11021, 0x0}, -- {0x11028, 0x0}, -- {0x11029, 0x0}, -- {0x11066, 0x0}, -- {0x11067, 0x0}, -- {0x1105a, 0x0}, -- {0x1105b, 0x0}, -- {0x1105c, 0x0}, -- {0x1105d, 0x0}, -- {0x1102a, 0x0}, -- {0x1102b, 0x0}, -- {0x11024, 0x0}, -- {0x11025, 0x0}, -- {0x11026, 0x0}, -- {0x11027, 0x0}, -- {0x11010, 0x0}, -- {0x11011, 0x0}, -- {0x11012, 0x0}, -- {0x11013, 0x0}, -- {0x11068, 0x0}, -- {0x11069, 0x0}, -- {0x1106a, 0x0}, -- {0x1106b, 0x0}, -- {0x1106c, 0x0}, -- {0x1106d, 0x0}, -- {0x1106e, 0x0}, -- {0x1106f, 0x0}, -- {0x1101c, 0x0}, -- {0x1101d, 0x0}, -- {0x1101e, 0x0}, -- {0x1101f, 0x0}, -- {0x11124, 0x0}, -- {0x11125, 0x0}, -- {0x11126, 0x0}, -- {0x11127, 0x0}, -- {0x11110, 0x0}, -- {0x11111, 0x0}, -- {0x11112, 0x0}, -- {0x11113, 0x0}, -- {0x11168, 0x0}, -- {0x11169, 0x0}, -- {0x1116a, 0x0}, -- {0x1116b, 0x0}, -- {0x1116c, 0x0}, -- {0x1116d, 0x0}, -- {0x1116e, 0x0}, -- {0x1116f, 0x0}, -- {0x1111c, 0x0}, -- {0x1111d, 0x0}, -- {0x1111e, 0x0}, -- {0x1111f, 0x0}, -- {0x11224, 0x0}, -- {0x11225, 0x0}, -- {0x11226, 0x0}, -- {0x11227, 0x0}, -- {0x11210, 0x0}, -- {0x11211, 0x0}, -- {0x11212, 0x0}, -- {0x11213, 0x0}, -- {0x11268, 0x0}, -- {0x11269, 0x0}, -- {0x1126a, 0x0}, -- {0x1126b, 0x0}, -- {0x1126c, 0x0}, -- {0x1126d, 0x0}, -- {0x1126e, 0x0}, -- {0x1126f, 0x0}, -- {0x1121c, 0x0}, -- {0x1121d, 0x0}, -- {0x1121e, 0x0}, -- {0x1121f, 0x0}, -- {0x11324, 0x0}, -- {0x11325, 0x0}, -- {0x11326, 0x0}, -- {0x11327, 0x0}, -- {0x11310, 0x0}, -- {0x11311, 0x0}, -- {0x11312, 0x0}, -- {0x11313, 0x0}, -- {0x11368, 0x0}, -- {0x11369, 0x0}, -- {0x1136a, 0x0}, -- {0x1136b, 0x0}, -- {0x1136c, 0x0}, -- {0x1136d, 0x0}, -- {0x1136e, 0x0}, -- {0x1136f, 0x0}, -- {0x1131c, 0x0}, -- {0x1131d, 0x0}, -- {0x1131e, 0x0}, -- {0x1131f, 0x0}, -- {0x11424, 0x0}, -- {0x11425, 0x0}, -- {0x11426, 0x0}, -- {0x11427, 0x0}, -- {0x11410, 0x0}, -- {0x11411, 0x0}, -- {0x11412, 0x0}, -- {0x11413, 0x0}, -- {0x11468, 0x0}, -- {0x11469, 0x0}, -- {0x1146a, 0x0}, -- {0x1146b, 0x0}, -- {0x1146c, 0x0}, -- {0x1146d, 0x0}, -- {0x1146e, 0x0}, -- {0x1146f, 0x0}, -- {0x1141c, 0x0}, -- {0x1141d, 0x0}, -- {0x1141e, 0x0}, -- {0x1141f, 0x0}, -- {0x11524, 0x0}, -- {0x11525, 0x0}, -- {0x11526, 0x0}, -- {0x11527, 0x0}, -- {0x11510, 0x0}, -- {0x11511, 0x0}, -- {0x11512, 0x0}, -- {0x11513, 0x0}, -- {0x11568, 0x0}, -- {0x11569, 0x0}, -- {0x1156a, 0x0}, -- {0x1156b, 0x0}, -- {0x1156c, 0x0}, -- {0x1156d, 0x0}, -- {0x1156e, 0x0}, -- {0x1156f, 0x0}, -- {0x1151c, 0x0}, -- {0x1151d, 0x0}, -- {0x1151e, 0x0}, -- {0x1151f, 0x0}, -- {0x11624, 0x0}, -- {0x11625, 0x0}, -- {0x11626, 0x0}, -- {0x11627, 0x0}, -- {0x11610, 0x0}, -- {0x11611, 0x0}, -- {0x11612, 0x0}, -- {0x11613, 0x0}, -- {0x11668, 0x0}, -- {0x11669, 0x0}, -- {0x1166a, 0x0}, -- {0x1166b, 0x0}, -- {0x1166c, 0x0}, -- {0x1166d, 0x0}, -- {0x1166e, 0x0}, -- {0x1166f, 0x0}, -- {0x1161c, 0x0}, -- {0x1161d, 0x0}, -- {0x1161e, 0x0}, -- {0x1161f, 0x0}, -- {0x11724, 0x0}, -- {0x11725, 0x0}, -- {0x11726, 0x0}, -- {0x11727, 0x0}, -- {0x11710, 0x0}, -- {0x11711, 0x0}, -- {0x11712, 0x0}, -- {0x11713, 0x0}, -- {0x11768, 0x0}, -- {0x11769, 0x0}, -- {0x1176a, 0x0}, -- {0x1176b, 0x0}, -- {0x1176c, 0x0}, -- {0x1176d, 0x0}, -- {0x1176e, 0x0}, -- {0x1176f, 0x0}, -- {0x1171c, 0x0}, -- {0x1171d, 0x0}, -- {0x1171e, 0x0}, -- {0x1171f, 0x0}, -- {0x11824, 0x0}, -- {0x11825, 0x0}, -- {0x11826, 0x0}, -- {0x11827, 0x0}, -- {0x11810, 0x0}, -- {0x11811, 0x0}, -- {0x11812, 0x0}, -- {0x11813, 0x0}, -- {0x11868, 0x0}, -- {0x11869, 0x0}, -- {0x1186a, 0x0}, -- {0x1186b, 0x0}, -- {0x1186c, 0x0}, -- {0x1186d, 0x0}, -- {0x1186e, 0x0}, -- {0x1186f, 0x0}, -- {0x1181c, 0x0}, -- {0x1181d, 0x0}, -- {0x1181e, 0x0}, -- {0x1181f, 0x0}, -- {0x1100c, 0x0}, -- {0x1100d, 0x0}, -- {0x11015, 0x0}, -- {0x11016, 0x0}, -- {0x11019, 0x0}, -- {0x1101b, 0x0}, -- {0x11022, 0x0}, -- {0x11023, 0x0}, -- {0x110d0, 0x0}, -- {0x110d1, 0x0}, -- {0x110d2, 0x0}, -- {0x110d3, 0x0}, -- {0x110d4, 0x0}, -- {0x12000, 0x0}, -- {0x120ad, 0x0}, -- {0x120af, 0x0}, -- {0x12020, 0x0}, -- {0x12021, 0x0}, -- {0x12028, 0x0}, -- {0x12029, 0x0}, -- {0x12066, 0x0}, -- {0x12067, 0x0}, -- {0x1205a, 0x0}, -- {0x1205b, 0x0}, -- {0x1205c, 0x0}, -- {0x1205d, 0x0}, -- {0x1202a, 0x0}, -- {0x1202b, 0x0}, -- {0x12024, 0x0}, -- {0x12025, 0x0}, -- {0x12026, 0x0}, -- {0x12027, 0x0}, -- {0x12010, 0x0}, -- {0x12011, 0x0}, -- {0x12012, 0x0}, -- {0x12013, 0x0}, -- {0x12068, 0x0}, -- {0x12069, 0x0}, -- {0x1206a, 0x0}, -- {0x1206b, 0x0}, -- {0x1206c, 0x0}, -- {0x1206d, 0x0}, -- {0x1206e, 0x0}, -- {0x1206f, 0x0}, -- {0x1201c, 0x0}, -- {0x1201d, 0x0}, -- {0x1201e, 0x0}, -- {0x1201f, 0x0}, -- {0x12124, 0x0}, -- {0x12125, 0x0}, -- {0x12126, 0x0}, -- {0x12127, 0x0}, -- {0x12110, 0x0}, -- {0x12111, 0x0}, -- {0x12112, 0x0}, -- {0x12113, 0x0}, -- {0x12168, 0x0}, -- {0x12169, 0x0}, -- {0x1216a, 0x0}, -- {0x1216b, 0x0}, -- {0x1216c, 0x0}, -- {0x1216d, 0x0}, -- {0x1216e, 0x0}, -- {0x1216f, 0x0}, -- {0x1211c, 0x0}, -- {0x1211d, 0x0}, -- {0x1211e, 0x0}, -- {0x1211f, 0x0}, -- {0x12224, 0x0}, -- {0x12225, 0x0}, -- {0x12226, 0x0}, -- {0x12227, 0x0}, -- {0x12210, 0x0}, -- {0x12211, 0x0}, -- {0x12212, 0x0}, -- {0x12213, 0x0}, -- {0x12268, 0x0}, -- {0x12269, 0x0}, -- {0x1226a, 0x0}, -- {0x1226b, 0x0}, -- {0x1226c, 0x0}, -- {0x1226d, 0x0}, -- {0x1226e, 0x0}, -- {0x1226f, 0x0}, -- {0x1221c, 0x0}, -- {0x1221d, 0x0}, -- {0x1221e, 0x0}, -- {0x1221f, 0x0}, -- {0x12324, 0x0}, -- {0x12325, 0x0}, -- {0x12326, 0x0}, -- {0x12327, 0x0}, -- {0x12310, 0x0}, -- {0x12311, 0x0}, -- {0x12312, 0x0}, -- {0x12313, 0x0}, -- {0x12368, 0x0}, -- {0x12369, 0x0}, -- {0x1236a, 0x0}, -- {0x1236b, 0x0}, -- {0x1236c, 0x0}, -- {0x1236d, 0x0}, -- {0x1236e, 0x0}, -- {0x1236f, 0x0}, -- {0x1231c, 0x0}, -- {0x1231d, 0x0}, -- {0x1231e, 0x0}, -- {0x1231f, 0x0}, -- {0x12424, 0x0}, -- {0x12425, 0x0}, -- {0x12426, 0x0}, -- {0x12427, 0x0}, -- {0x12410, 0x0}, -- {0x12411, 0x0}, -- {0x12412, 0x0}, -- {0x12413, 0x0}, -- {0x12468, 0x0}, -- {0x12469, 0x0}, -- {0x1246a, 0x0}, -- {0x1246b, 0x0}, -- {0x1246c, 0x0}, -- {0x1246d, 0x0}, -- {0x1246e, 0x0}, -- {0x1246f, 0x0}, -- {0x1241c, 0x0}, -- {0x1241d, 0x0}, -- {0x1241e, 0x0}, -- {0x1241f, 0x0}, -- {0x12524, 0x0}, -- {0x12525, 0x0}, -- {0x12526, 0x0}, -- {0x12527, 0x0}, -- {0x12510, 0x0}, -- {0x12511, 0x0}, -- {0x12512, 0x0}, -- {0x12513, 0x0}, -- {0x12568, 0x0}, -- {0x12569, 0x0}, -- {0x1256a, 0x0}, -- {0x1256b, 0x0}, -- {0x1256c, 0x0}, -- {0x1256d, 0x0}, -- {0x1256e, 0x0}, -- {0x1256f, 0x0}, -- {0x1251c, 0x0}, -- {0x1251d, 0x0}, -- {0x1251e, 0x0}, -- {0x1251f, 0x0}, -- {0x12624, 0x0}, -- {0x12625, 0x0}, -- {0x12626, 0x0}, -- {0x12627, 0x0}, -- {0x12610, 0x0}, -- {0x12611, 0x0}, -- {0x12612, 0x0}, -- {0x12613, 0x0}, -- {0x12668, 0x0}, -- {0x12669, 0x0}, -- {0x1266a, 0x0}, -- {0x1266b, 0x0}, -- {0x1266c, 0x0}, -- {0x1266d, 0x0}, -- {0x1266e, 0x0}, -- {0x1266f, 0x0}, -- {0x1261c, 0x0}, -- {0x1261d, 0x0}, -- {0x1261e, 0x0}, -- {0x1261f, 0x0}, -- {0x12724, 0x0}, -- {0x12725, 0x0}, -- {0x12726, 0x0}, -- {0x12727, 0x0}, -- {0x12710, 0x0}, -- {0x12711, 0x0}, -- {0x12712, 0x0}, -- {0x12713, 0x0}, -- {0x12768, 0x0}, -- {0x12769, 0x0}, -- {0x1276a, 0x0}, -- {0x1276b, 0x0}, -- {0x1276c, 0x0}, -- {0x1276d, 0x0}, -- {0x1276e, 0x0}, -- {0x1276f, 0x0}, -- {0x1271c, 0x0}, -- {0x1271d, 0x0}, -- {0x1271e, 0x0}, -- {0x1271f, 0x0}, -- {0x12824, 0x0}, -- {0x12825, 0x0}, -- {0x12826, 0x0}, -- {0x12827, 0x0}, -- {0x12810, 0x0}, -- {0x12811, 0x0}, -- {0x12812, 0x0}, -- {0x12813, 0x0}, -- {0x12868, 0x0}, -- {0x12869, 0x0}, -- {0x1286a, 0x0}, -- {0x1286b, 0x0}, -- {0x1286c, 0x0}, -- {0x1286d, 0x0}, -- {0x1286e, 0x0}, -- {0x1286f, 0x0}, -- {0x1281c, 0x0}, -- {0x1281d, 0x0}, -- {0x1281e, 0x0}, -- {0x1281f, 0x0}, -- {0x1200c, 0x0}, -- {0x1200d, 0x0}, -- {0x12015, 0x0}, -- {0x12016, 0x0}, -- {0x12019, 0x0}, -- {0x1201b, 0x0}, -- {0x12022, 0x0}, -- {0x12023, 0x0}, -- {0x120d0, 0x0}, -- {0x120d1, 0x0}, -- {0x120d2, 0x0}, -- {0x120d3, 0x0}, -- {0x120d4, 0x0}, -- {0x13000, 0x0}, -- {0x130ad, 0x0}, -- {0x130af, 0x0}, -- {0x13020, 0x0}, -- {0x13021, 0x0}, -- {0x13028, 0x0}, -- {0x13029, 0x0}, -- {0x13066, 0x0}, -- {0x13067, 0x0}, -- {0x1305a, 0x0}, -- {0x1305b, 0x0}, -- {0x1305c, 0x0}, -- {0x1305d, 0x0}, -- {0x1302a, 0x0}, -- {0x1302b, 0x0}, -- {0x13024, 0x0}, -- {0x13025, 0x0}, -- {0x13026, 0x0}, -- {0x13027, 0x0}, -- {0x13010, 0x0}, -- {0x13011, 0x0}, -- {0x13012, 0x0}, -- {0x13013, 0x0}, -- {0x13068, 0x0}, -- {0x13069, 0x0}, -- {0x1306a, 0x0}, -- {0x1306b, 0x0}, -- {0x1306c, 0x0}, -- {0x1306d, 0x0}, -- {0x1306e, 0x0}, -- {0x1306f, 0x0}, -- {0x1301c, 0x0}, -- {0x1301d, 0x0}, -- {0x1301e, 0x0}, -- {0x1301f, 0x0}, -- {0x13124, 0x0}, -- {0x13125, 0x0}, -- {0x13126, 0x0}, -- {0x13127, 0x0}, -- {0x13110, 0x0}, -- {0x13111, 0x0}, -- {0x13112, 0x0}, -- {0x13113, 0x0}, -- {0x13168, 0x0}, -- {0x13169, 0x0}, -- {0x1316a, 0x0}, -- {0x1316b, 0x0}, -- {0x1316c, 0x0}, -- {0x1316d, 0x0}, -- {0x1316e, 0x0}, -- {0x1316f, 0x0}, -- {0x1311c, 0x0}, -- {0x1311d, 0x0}, -- {0x1311e, 0x0}, -- {0x1311f, 0x0}, -- {0x13224, 0x0}, -- {0x13225, 0x0}, -- {0x13226, 0x0}, -- {0x13227, 0x0}, -- {0x13210, 0x0}, -- {0x13211, 0x0}, -- {0x13212, 0x0}, -- {0x13213, 0x0}, -- {0x13268, 0x0}, -- {0x13269, 0x0}, -- {0x1326a, 0x0}, -- {0x1326b, 0x0}, -- {0x1326c, 0x0}, -- {0x1326d, 0x0}, -- {0x1326e, 0x0}, -- {0x1326f, 0x0}, -- {0x1321c, 0x0}, -- {0x1321d, 0x0}, -- {0x1321e, 0x0}, -- {0x1321f, 0x0}, -- {0x13324, 0x0}, -- {0x13325, 0x0}, -- {0x13326, 0x0}, -- {0x13327, 0x0}, -- {0x13310, 0x0}, -- {0x13311, 0x0}, -- {0x13312, 0x0}, -- {0x13313, 0x0}, -- {0x13368, 0x0}, -- {0x13369, 0x0}, -- {0x1336a, 0x0}, -- {0x1336b, 0x0}, -- {0x1336c, 0x0}, -- {0x1336d, 0x0}, -- {0x1336e, 0x0}, -- {0x1336f, 0x0}, -- {0x1331c, 0x0}, -- {0x1331d, 0x0}, -- {0x1331e, 0x0}, -- {0x1331f, 0x0}, -- {0x13424, 0x0}, -- {0x13425, 0x0}, -- {0x13426, 0x0}, -- {0x13427, 0x0}, -- {0x13410, 0x0}, -- {0x13411, 0x0}, -- {0x13412, 0x0}, -- {0x13413, 0x0}, -- {0x13468, 0x0}, -- {0x13469, 0x0}, -- {0x1346a, 0x0}, -- {0x1346b, 0x0}, -- {0x1346c, 0x0}, -- {0x1346d, 0x0}, -- {0x1346e, 0x0}, -- {0x1346f, 0x0}, -- {0x1341c, 0x0}, -- {0x1341d, 0x0}, -- {0x1341e, 0x0}, -- {0x1341f, 0x0}, -- {0x13524, 0x0}, -- {0x13525, 0x0}, -- {0x13526, 0x0}, -- {0x13527, 0x0}, -- {0x13510, 0x0}, -- {0x13511, 0x0}, -- {0x13512, 0x0}, -- {0x13513, 0x0}, -- {0x13568, 0x0}, -- {0x13569, 0x0}, -- {0x1356a, 0x0}, -- {0x1356b, 0x0}, -- {0x1356c, 0x0}, -- {0x1356d, 0x0}, -- {0x1356e, 0x0}, -- {0x1356f, 0x0}, -- {0x1351c, 0x0}, -- {0x1351d, 0x0}, -- {0x1351e, 0x0}, -- {0x1351f, 0x0}, -- {0x13624, 0x0}, -- {0x13625, 0x0}, -- {0x13626, 0x0}, -- {0x13627, 0x0}, -- {0x13610, 0x0}, -- {0x13611, 0x0}, -- {0x13612, 0x0}, -- {0x13613, 0x0}, -- {0x13668, 0x0}, -- {0x13669, 0x0}, -- {0x1366a, 0x0}, -- {0x1366b, 0x0}, -- {0x1366c, 0x0}, -- {0x1366d, 0x0}, -- {0x1366e, 0x0}, -- {0x1366f, 0x0}, -- {0x1361c, 0x0}, -- {0x1361d, 0x0}, -- {0x1361e, 0x0}, -- {0x1361f, 0x0}, -- {0x13724, 0x0}, -- {0x13725, 0x0}, -- {0x13726, 0x0}, -- {0x13727, 0x0}, -- {0x13710, 0x0}, -- {0x13711, 0x0}, -- {0x13712, 0x0}, -- {0x13713, 0x0}, -- {0x13768, 0x0}, -- {0x13769, 0x0}, -- {0x1376a, 0x0}, -- {0x1376b, 0x0}, -- {0x1376c, 0x0}, -- {0x1376d, 0x0}, -- {0x1376e, 0x0}, -- {0x1376f, 0x0}, -- {0x1371c, 0x0}, -- {0x1371d, 0x0}, -- {0x1371e, 0x0}, -- {0x1371f, 0x0}, -- {0x13824, 0x0}, -- {0x13825, 0x0}, -- {0x13826, 0x0}, -- {0x13827, 0x0}, -- {0x13810, 0x0}, -- {0x13811, 0x0}, -- {0x13812, 0x0}, -- {0x13813, 0x0}, -- {0x13868, 0x0}, -- {0x13869, 0x0}, -- {0x1386a, 0x0}, -- {0x1386b, 0x0}, -- {0x1386c, 0x0}, -- {0x1386d, 0x0}, -- {0x1386e, 0x0}, -- {0x1386f, 0x0}, -- {0x1381c, 0x0}, -- {0x1381d, 0x0}, -- {0x1381e, 0x0}, -- {0x1381f, 0x0}, -- {0x1300c, 0x0}, -- {0x1300d, 0x0}, -- {0x13015, 0x0}, -- {0x13016, 0x0}, -- {0x13019, 0x0}, -- {0x1301b, 0x0}, -- {0x13022, 0x0}, -- {0x13023, 0x0}, -- {0x130d0, 0x0}, -- {0x130d1, 0x0}, -- {0x130d2, 0x0}, -- {0x130d3, 0x0}, -- {0x130d4, 0x0}, -- {0x90807, 0x0}, -- {0x90808, 0x0}, -- {0x90813, 0x0}, -- {0x2004e, 0x0}, -- {0x2000d, 0x0}, -- {0x20077, 0x0}, --}; -- --/* PHY Initialize Configuration for Pstate 0 */ --static struct ddrphy_cfg_param ddr_phy_fsp0_cfg[] = { -- {0x90802, 0x1}, -- {0x2004a, 0x601}, -- {0x2004b, 0x1c3e}, -- {0x2004c, 0x2e8f}, -- {0x2004d, 0x0}, -- {0x20088, 0x101}, -- {0x20089, 0x0}, -- {0x2008a, 0x0}, -- {0x2008c, 0x0}, -- {0x20002, 0x2}, -- {0x20000, 0x2}, -- {0x90801, 0x4d}, -- {0x90809, 0x6800}, -- {0x1005e, 0x366}, -- {0x10060, 0x366}, -- {0x10062, 0x366}, -- {0x10064, 0x366}, -- {0x1005f, 0x366}, -- {0x10061, 0x366}, -- {0x10063, 0x366}, -- {0x10065, 0x366}, -- {0x1105e, 0x366}, -- {0x11060, 0x366}, -- {0x11062, 0x366}, -- {0x11064, 0x366}, -- {0x1105f, 0x366}, -- {0x11061, 0x366}, -- {0x11063, 0x366}, -- {0x11065, 0x366}, -- {0x1205e, 0x366}, -- {0x12060, 0x366}, -- {0x12062, 0x366}, -- {0x12064, 0x366}, -- {0x1205f, 0x366}, -- {0x12061, 0x366}, -- {0x12063, 0x366}, -- {0x12065, 0x366}, -- {0x1305e, 0x366}, -- {0x13060, 0x366}, -- {0x13062, 0x366}, -- {0x13064, 0x366}, -- {0x1305f, 0x366}, -- {0x13061, 0x366}, -- {0x13063, 0x366}, -- {0x13065, 0x366}, -- {0x10005, 0x0}, -- {0x1000b, 0x0}, -- {0x11005, 0x0}, -- {0x1100b, 0x0}, -- {0x12005, 0x0}, -- {0x1200b, 0x0}, -- {0x13005, 0x0}, -- {0x1300b, 0x0}, -- {0x20007, 0x200}, -- {0x20013, 0x2c}, -- {0x30038, 0x3}, -- {0x30039, 0x3}, -- {0x3003a, 0x3}, -- {0x31038, 0x3}, -- {0x31039, 0x3}, -- {0x3103a, 0x3}, -- {0x10038, 0x3}, -- {0x1003a, 0x3}, -- {0x11038, 0x3}, -- {0x1103a, 0x3}, -- {0x12038, 0x3}, -- {0x1203a, 0x3}, -- {0x13038, 0x3}, -- {0x1303a, 0x3}, -- {0x1003b, 0x3}, -- {0x1103b, 0x3}, -- {0x1203b, 0x3}, -- {0x1303b, 0x3}, -- {0x10009, 0x0}, -- {0x10037, 0x0}, -- {0x11009, 0x0}, -- {0x11037, 0x0}, -- {0x12009, 0x0}, -- {0x12037, 0x0}, -- {0x13009, 0x0}, -- {0x13037, 0x0}, -- {0x10004, 0x0}, -- {0x10003, 0x0}, -- {0x11004, 0x0}, -- {0x11003, 0x0}, -- {0x12004, 0x0}, -- {0x12003, 0x0}, -- {0x13004, 0x0}, -- {0x13003, 0x0}, -- {0x20004, 0x320}, -- {0x30050, 0x15}, -- {0x30051, 0x15}, -- {0x30052, 0x15}, -- {0x30053, 0x15}, -- {0x31050, 0x15}, -- {0x31051, 0x15}, -- {0x31052, 0x15}, -- {0x31053, 0x15}, -- {0x1004e, 0x15}, -- {0x1004f, 0x15}, -- {0x10050, 0x15}, -- {0x10051, 0x15}, -- {0x1014e, 0x15}, -- {0x1014f, 0x15}, -- {0x10150, 0x15}, -- {0x10151, 0x15}, -- {0x1024e, 0x15}, -- {0x1024f, 0x15}, -- {0x10250, 0x15}, -- {0x10251, 0x15}, -- {0x1034e, 0x15}, -- {0x1034f, 0x15}, -- {0x10350, 0x15}, -- {0x10351, 0x15}, -- {0x1044e, 0x15}, -- {0x1044f, 0x15}, -- {0x10450, 0x15}, -- {0x10451, 0x15}, -- {0x1054e, 0x15}, -- {0x1054f, 0x15}, -- {0x10550, 0x15}, -- {0x10551, 0x15}, -- {0x1064e, 0x15}, -- {0x1064f, 0x15}, -- {0x10650, 0x15}, -- {0x10651, 0x15}, -- {0x1074e, 0x15}, -- {0x1074f, 0x15}, -- {0x10750, 0x15}, -- {0x10751, 0x15}, -- {0x1084e, 0x15}, -- {0x1084f, 0x15}, -- {0x10850, 0x15}, -- {0x10851, 0x15}, -- {0x1104e, 0x15}, -- {0x1104f, 0x15}, -- {0x11050, 0x15}, -- {0x11051, 0x15}, -- {0x1114e, 0x15}, -- {0x1114f, 0x15}, -- {0x11150, 0x15}, -- {0x11151, 0x15}, -- {0x1124e, 0x15}, -- {0x1124f, 0x15}, -- {0x11250, 0x15}, -- {0x11251, 0x15}, -- {0x1134e, 0x15}, -- {0x1134f, 0x15}, -- {0x11350, 0x15}, -- {0x11351, 0x15}, -- {0x1144e, 0x15}, -- {0x1144f, 0x15}, -- {0x11450, 0x15}, -- {0x11451, 0x15}, -- {0x1154e, 0x15}, -- {0x1154f, 0x15}, -- {0x11550, 0x15}, -- {0x11551, 0x15}, -- {0x1164e, 0x15}, -- {0x1164f, 0x15}, -- {0x11650, 0x15}, -- {0x11651, 0x15}, -- {0x1174e, 0x15}, -- {0x1174f, 0x15}, -- {0x11750, 0x15}, -- {0x11751, 0x15}, -- {0x1184e, 0x15}, -- {0x1184f, 0x15}, -- {0x11850, 0x15}, -- {0x11851, 0x15}, -- {0x1204e, 0x15}, -- {0x1204f, 0x15}, -- {0x12050, 0x15}, -- {0x12051, 0x15}, -- {0x1214e, 0x15}, -- {0x1214f, 0x15}, -- {0x12150, 0x15}, -- {0x12151, 0x15}, -- {0x1224e, 0x15}, -- {0x1224f, 0x15}, -- {0x12250, 0x15}, -- {0x12251, 0x15}, -- {0x1234e, 0x15}, -- {0x1234f, 0x15}, -- {0x12350, 0x15}, -- {0x12351, 0x15}, -- {0x1244e, 0x15}, -- {0x1244f, 0x15}, -- {0x12450, 0x15}, -- {0x12451, 0x15}, -- {0x1254e, 0x15}, -- {0x1254f, 0x15}, -- {0x12550, 0x15}, -- {0x12551, 0x15}, -- {0x1264e, 0x15}, -- {0x1264f, 0x15}, -- {0x12650, 0x15}, -- {0x12651, 0x15}, -- {0x1274e, 0x15}, -- {0x1274f, 0x15}, -- {0x12750, 0x15}, -- {0x12751, 0x15}, -- {0x1284e, 0x15}, -- {0x1284f, 0x15}, -- {0x12850, 0x15}, -- {0x12851, 0x15}, -- {0x1304e, 0x15}, -- {0x1304f, 0x15}, -- {0x13050, 0x15}, -- {0x13051, 0x15}, -- {0x1314e, 0x15}, -- {0x1314f, 0x15}, -- {0x13150, 0x15}, -- {0x13151, 0x15}, -- {0x1324e, 0x15}, -- {0x1324f, 0x15}, -- {0x13250, 0x15}, -- {0x13251, 0x15}, -- {0x1334e, 0x15}, -- {0x1334f, 0x15}, -- {0x13350, 0x15}, -- {0x13351, 0x15}, -- {0x1344e, 0x15}, -- {0x1344f, 0x15}, -- {0x13450, 0x15}, -- {0x13451, 0x15}, -- {0x1354e, 0x15}, -- {0x1354f, 0x15}, -- {0x13550, 0x15}, -- {0x13551, 0x15}, -- {0x1364e, 0x15}, -- {0x1364f, 0x15}, -- {0x13650, 0x15}, -- {0x13651, 0x15}, -- {0x1374e, 0x15}, -- {0x1374f, 0x15}, -- {0x13750, 0x15}, -- {0x13751, 0x15}, -- {0x1384e, 0x15}, -- {0x1384f, 0x15}, -- {0x13850, 0x15}, -- {0x13851, 0x15}, -- {0x30030, 0x0}, -- {0x30031, 0x0}, -- {0x30035, 0x0}, -- {0x31030, 0x0}, -- {0x31031, 0x0}, -- {0x31035, 0x0}, -- {0x10030, 0x0}, -- {0x10035, 0x0}, -- {0x10036, 0x0}, -- {0x11030, 0x0}, -- {0x11035, 0x0}, -- {0x11036, 0x0}, -- {0x12030, 0x0}, -- {0x12035, 0x0}, -- {0x12036, 0x0}, -- {0x13030, 0x0}, -- {0x13035, 0x0}, -- {0x13036, 0x0}, -- {0x3003c, 0x5}, -- {0x3103c, 0x5}, -- {0x1003c, 0x5}, -- {0x1003d, 0x5}, -- {0x1003e, 0x5}, -- {0x1103c, 0x5}, -- {0x1103d, 0x5}, -- {0x1103e, 0x5}, -- {0x1203c, 0x5}, -- {0x1203d, 0x5}, -- {0x1203e, 0x5}, -- {0x1303c, 0x5}, -- {0x1303d, 0x5}, -- {0x1303e, 0x5}, -- {0x20003, 0x1}, -- {0x10006, 0x2}, -- {0x11006, 0x2}, -- {0x12006, 0x2}, -- {0x13006, 0x2}, -- {0x20001, 0x1122}, -- {0x20009, 0x0}, -- {0x20008, 0x0}, -- {0x200d9, 0x0}, -- {0x30eef, 0x0}, -- {0x31eef, 0x0}, -- {0x20014, 0x1300}, -- {0x9080a, 0x1300}, -- {0x10040, 0xe0e}, -- {0x10042, 0xe0e}, -- {0x9080d, 0x0}, -- {0x10043, 0x0}, -- {0x10044, 0xe0e}, -- {0x10045, 0xe0e}, -- {0x11040, 0xe0e}, -- {0x11042, 0xe0e}, -- {0x9080d, 0x0}, -- {0x11043, 0x0}, -- {0x11044, 0xe0e}, -- {0x11045, 0xe0e}, -- {0x12040, 0xe0e}, -- {0x12042, 0xe0e}, -- {0x9080d, 0x0}, -- {0x12043, 0x0}, -- {0x12044, 0xe0e}, -- {0x12045, 0xe0e}, -- {0x13040, 0xe0e}, -- {0x13042, 0xe0e}, -- {0x9080d, 0x0}, -- {0x13043, 0x0}, -- {0x13044, 0xe0e}, -- {0x13045, 0xe0e}, -- {0x30040, 0xe0e}, -- {0x30041, 0xe0e}, -- {0x30042, 0xe0e}, -- {0x30043, 0xe0e}, -- {0x30330, 0x33}, -- {0x31040, 0xe0e}, -- {0x31041, 0xe0e}, -- {0x31042, 0xe0e}, -- {0x31043, 0xe0e}, -- {0x31330, 0x33}, -- {0x20331, 0x33}, -- {0x10048, 0xc00}, -- {0x1004a, 0xc00}, -- {0x1004b, 0xc00}, -- {0x1004c, 0xe00}, -- {0x1004d, 0xe00}, -- {0x11048, 0xc00}, -- {0x1104a, 0xc00}, -- {0x1104b, 0xc00}, -- {0x1104c, 0xe00}, -- {0x1104d, 0xe00}, -- {0x12048, 0xc00}, -- {0x1204a, 0xc00}, -- {0x1204b, 0xc00}, -- {0x1204c, 0xe00}, -- {0x1204d, 0xe00}, -- {0x13048, 0xc00}, -- {0x1304a, 0xc00}, -- {0x1304b, 0xc00}, -- {0x1304c, 0xe00}, -- {0x1304d, 0xe00}, -- {0x30048, 0xc00}, -- {0x30049, 0xc00}, -- {0x3004a, 0xc00}, -- {0x3004b, 0xc00}, -- {0x31048, 0xc00}, -- {0x31049, 0xc00}, -- {0x3104a, 0xc00}, -- {0x3104b, 0xc00}, -- {0x30033, 0xcc}, -- {0x30034, 0xcc}, -- {0x3002e, 0xcc}, -- {0x31033, 0xcc}, -- {0x31034, 0xcc}, -- {0x3102e, 0xcc}, -- {0x10033, 0xcc}, -- {0x1002e, 0xcc}, -- {0x1002f, 0xcc}, -- {0x11033, 0xcc}, -- {0x1102e, 0xcc}, -- {0x1102f, 0xcc}, -- {0x12033, 0xcc}, -- {0x1202e, 0xcc}, -- {0x1202f, 0xcc}, -- {0x13033, 0xcc}, -- {0x1302e, 0xcc}, -- {0x1302f, 0xcc}, -- {0x20015, 0x0}, -- {0x90806, 0x0}, -- {0x100e8, 0x0}, -- {0x100e9, 0x15}, -- {0x110e8, 0x0}, -- {0x110e9, 0x15}, -- {0x120e8, 0x0}, -- {0x120e9, 0x15}, -- {0x130e8, 0x0}, -- {0x130e9, 0x15}, -- {0x10001, 0x0}, -- {0x11001, 0x0}, -- {0x12001, 0x0}, -- {0x13001, 0x0}, -- {0x20012, 0xa1a1}, -- {0x20017, 0x40}, -- {0x2000a, 0x40}, -- {0x20186, 0xa1}, -- {0x20187, 0x40}, -- {0x20010, 0x0}, -- {0x20011, 0xf}, -- {0x9080b, 0xf}, -- {0x9080c, 0xf}, -- {0x100a5, 0x1}, -- {0x110a5, 0x1}, -- {0x120a5, 0x1}, -- {0x130a5, 0x1}, -- {0x10014, 0x3232}, -- {0x11014, 0x3232}, -- {0x12014, 0x3232}, -- {0x13014, 0x3232}, -- {0x1000f, 0x1086}, -- {0x1100f, 0x1086}, -- {0x1200f, 0x1086}, -- {0x1300f, 0x1086}, -- {0x20035, 0x100c}, -- {0x20036, 0x100c}, -- {0x20037, 0x41c}, -- {0x20037, 0x45c}, -- {0x20038, 0x1920}, -- {0x20039, 0x101c}, -- {0x2003a, 0x101c}, -- {0x2003b, 0x42c}, -- {0x2003c, 0x2d30}, -- {0x2003d, 0x1004}, -- {0x2003e, 0x1004}, -- {0x2003f, 0x414}, -- {0x20040, 0x1118}, -- {0x2002c, 0x843}, -- {0x2002d, 0x843}, -- {0x20030, 0x843}, -- {0x2002e, 0x81f}, -- {0x2002f, 0x81f}, -- {0x2000c, 0x0}, -- {0x2001b, 0x0}, -- {0x10007, 0x0}, -- {0x11007, 0x0}, -- {0x12007, 0x0}, -- {0x13007, 0x0}, -- {0xc0080, 0x3}, --}; -- --/* P0 message block parameter for training firmware */ --static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { -- {0x58000, 0x4000}, -- {0x58002, 0x30}, -- {0x58003, 0x1900}, -- {0x58004, 0x4}, -- {0x58005, 0x4}, -- {0x58008, 0x17df}, -- {0x58009, 0xff}, -- {0x5800b, 0x2}, -- {0x5800d, 0x100}, -- {0x5800e, 0xf}, -- {0x58012, 0x310}, -- {0x5801f, 0x1000}, -- {0x58020, 0x3}, -- {0x5802d, 0xb0b0}, -- {0x5802e, 0xb0b0}, -- {0x5802f, 0xbbbb}, -- {0x58030, 0xbbbb}, -- {0x58031, 0x606}, -- {0x58032, 0x606}, -- {0x58033, 0x5454}, -- {0x58034, 0x5454}, -- {0x58035, 0x4646}, -- {0x58036, 0x4646}, -- {0x58037, 0x2d2d}, -- {0x58038, 0x2d2d}, -- {0x58039, 0x8080}, -- {0x5803a, 0x8080}, -- {0x5803b, 0x1c1c}, -- {0x5803c, 0x1c1c}, -- {0x5803d, 0x1c1c}, -- {0x5803e, 0x1c1c}, -- {0x58041, 0xac84}, -- {0x58042, 0xac84}, -- {0x58043, 0x1e1e}, -- {0x58044, 0x1e1e}, -- {0x58045, 0x1010}, -- {0x58046, 0x1010}, -- {0x58047, 0x202}, -- {0x58048, 0x202}, -- {0x5804f, 0x8080}, -- {0x58050, 0x8080}, -- {0x58055, 0x404}, -- {0x58056, 0x404}, -- {0x58074, 0x2e}, -- {0x58075, 0x50}, -- {0x58080, 0x1}, -- {0x58081, 0x4b00}, -- {0x58082, 0x43}, --}; -- --/* DRAM PHY init engine image for Pstate 0 */ --static struct ddrphy_cfg_param ddr_phy_pie_fsp0_cfg[] = { -- {0x908f0, 0x65}, -- {0x908f1, 0x258}, -- {0x908f2, 0x0}, -- {0x908f3, 0x58}, -- {0x908f4, 0x14}, -- {0x908f5, 0x0}, -- {0x908f6, 0xb0}, -- {0x908f7, 0x0}, -- {0x41008, 0xc9d8}, -- {0x41009, 0x0}, -- {0x4100a, 0x0}, -- {0x4100b, 0x0}, -- {0x4100c, 0xc808}, -- {0x4100d, 0x0}, -- {0x4100e, 0x0}, -- {0x4100f, 0x0}, -- {0x41010, 0x0}, -- {0x41011, 0x0}, -- {0x41012, 0x0}, -- {0x41013, 0x2b00}, -- {0x41014, 0x0}, -- {0x41015, 0x0}, -- {0x41016, 0x0}, -- {0x41017, 0x0}, -- {0x41018, 0xc958}, -- {0x41019, 0x0}, -- {0x4101a, 0x0}, -- {0x4101b, 0x0}, -- {0x4101c, 0xcf08}, -- {0x4101d, 0x0}, -- {0x4101e, 0x0}, -- {0x4101f, 0x0}, -- {0x41020, 0x0}, -- {0x41021, 0x0}, -- {0x41022, 0x0}, -- {0x41023, 0x2b00}, -- {0x41024, 0x0}, -- {0x41025, 0x0}, -- {0x41026, 0x0}, -- {0x41027, 0x0}, -- {0x41028, 0xc0d8}, -- {0x41029, 0x0}, -- {0x4102a, 0x0}, -- {0x4102b, 0x0}, -- {0x4102c, 0xd848}, -- {0x4102d, 0x0}, -- {0x4102e, 0x0}, -- {0x4102f, 0x0}, -- {0x41030, 0x0}, -- {0x41031, 0x0}, -- {0x41032, 0x0}, -- {0x41033, 0x2b00}, -- {0x41034, 0x0}, -- {0x41035, 0x0}, -- {0x41036, 0x0}, -- {0x41037, 0x0}, -- {0x41038, 0xc158}, -- {0x41039, 0x0}, -- {0x4103a, 0x0}, -- {0x4103b, 0x0}, -- {0x4103c, 0xddc8}, -- {0x4103d, 0x0}, -- {0x4103e, 0x0}, -- {0x4103f, 0x0}, -- {0x41040, 0x0}, -- {0x41041, 0x0}, -- {0x41042, 0x0}, -- {0x41043, 0x2b00}, -- {0x41044, 0x0}, -- {0x41045, 0x0}, -- {0x41046, 0x0}, -- {0x41047, 0x0}, -- {0x41048, 0xc1d8}, -- {0x41049, 0x0}, -- {0x4104a, 0x0}, -- {0x4104b, 0x0}, -- {0x4104c, 0xc308}, -- {0x4104d, 0x0}, -- {0x4104e, 0x0}, -- {0x4104f, 0x0}, -- {0x41050, 0x0}, -- {0x41051, 0x0}, -- {0x41052, 0x0}, -- {0x41053, 0x2b00}, -- {0x41054, 0x0}, -- {0x41055, 0x0}, -- {0x41056, 0x0}, -- {0x41057, 0x0}, -- {0x41058, 0xc558}, -- {0x41059, 0x0}, -- {0x4105a, 0x0}, -- {0x4105b, 0x0}, -- {0x4105c, 0xea08}, -- {0x4105d, 0x0}, -- {0x4105e, 0x0}, -- {0x4105f, 0x0}, -- {0x41060, 0x0}, -- {0x41061, 0x0}, -- {0x41062, 0x0}, -- {0x41063, 0x2b00}, -- {0x41064, 0x0}, -- {0x41065, 0x0}, -- {0x41066, 0x0}, -- {0x41067, 0x0}, -- {0x41068, 0xc5d8}, -- {0x41069, 0x0}, -- {0x4106a, 0x0}, -- {0x4106b, 0x0}, -- {0x4106c, 0xe308}, -- {0x4106d, 0x0}, -- {0x4106e, 0x0}, -- {0x4106f, 0x0}, -- {0x41070, 0x0}, -- {0x41071, 0x0}, -- {0x41072, 0x0}, -- {0x41073, 0x2b00}, -- {0x41074, 0x0}, -- {0x41075, 0x0}, -- {0x41076, 0x0}, -- {0x41077, 0x0}, -- {0x41078, 0x48d8}, -- {0x41079, 0x0}, -- {0x4107a, 0x0}, -- {0x4107b, 0x0}, -- {0x4107c, 0x4248}, -- {0x4107d, 0x0}, -- {0x4107e, 0x0}, -- {0x4107f, 0x0}, -- {0x41080, 0x88d8}, -- {0x41081, 0x0}, -- {0x41082, 0x0}, -- {0x41083, 0x0}, -- {0x41084, 0x9648}, -- {0x41085, 0x0}, -- {0x41086, 0x0}, -- {0x41087, 0x0}, -- {0x41088, 0x0}, -- {0x41089, 0x0}, -- {0x4108a, 0x0}, -- {0x4108b, 0x2b00}, -- {0x4108c, 0x0}, -- {0x4108d, 0x0}, -- {0x4108e, 0x0}, -- {0x4108f, 0x0}, -- {0x41090, 0xca58}, -- {0x41091, 0x0}, -- {0x41092, 0x0}, -- {0x41093, 0x0}, -- {0x41094, 0xc108}, -- {0x41095, 0x0}, -- {0x41096, 0x0}, -- {0x41097, 0x0}, -- {0x41098, 0x0}, -- {0x41099, 0x0}, -- {0x4109a, 0x0}, -- {0x4109b, 0x2b00}, -- {0x4109c, 0x0}, -- {0x4109d, 0x0}, -- {0x4109e, 0x0}, -- {0x4109f, 0x0}, -- {0x410a0, 0xcb58}, -- {0x410a1, 0x0}, -- {0x410a2, 0x0}, -- {0x410a3, 0x0}, -- {0x410a4, 0xc008}, -- {0x410a5, 0x0}, -- {0x410a6, 0x0}, -- {0x410a7, 0x0}, -- {0x410a8, 0x0}, -- {0x410a9, 0x0}, -- {0x410aa, 0x0}, -- {0x410ab, 0x2b00}, -- {0x410ac, 0x0}, -- {0x410ad, 0x0}, -- {0x410ae, 0x0}, -- {0x410af, 0x0}, -- {0x410b0, 0xd4d8}, -- {0x410b1, 0x0}, -- {0x410b2, 0x0}, -- {0x410b3, 0x0}, -- {0x410b4, 0xc008}, -- {0x410b5, 0x0}, -- {0x410b6, 0x0}, -- {0x410b7, 0x0}, -- {0x20015, 0x0}, -- {0x3004a, 0x0}, -- {0x3004b, 0x0}, -- {0x3104a, 0x0}, -- {0x3104b, 0x0}, -- {0x2004a, 0x1a3e}, -- {0x2004b, 0x1a3e}, -- {0x2004c, 0x2c0f}, -- {0x2004d, 0x0}, -- {0x20088, 0x101}, -- {0x20089, 0x0}, -- {0x2008a, 0x0}, -- {0x2008c, 0x0}, -- {0x20041, 0x1}, -- {0x90802, 0x1}, -- {0x20045, 0x2}, -- {0x10057, 0x0}, -- {0x11057, 0x0}, -- {0x12057, 0x0}, -- {0x13057, 0x0}, -- {0x1000f, 0x1086}, -- {0x1100f, 0x1086}, -- {0x1200f, 0x1086}, -- {0x1300f, 0x1086}, -- {0x90803, 0x4}, -- {0x90804, 0x82}, -- {0x90805, 0x1}, -- {0x90903, 0x0}, -- {0x9090b, 0x2}, -- {0x90811, 0x0}, -- {0x90812, 0xff00}, -- {0x20072, 0x3}, -- {0x9080e, 0x3}, -- {0x20073, 0x3}, -- {0x9080f, 0x3}, --}; -- --/* DRAM PHY init engine image */ --static struct ddrphy_cfg_param ddr_phy_pie[] = { -- {0x41000, 0x0}, -- {0x41001, 0x0}, -- {0x41002, 0x0}, -- {0x41003, 0x0}, -- {0x41004, 0x0}, -- {0x41005, 0x0}, -- {0x41006, 0x0}, -- {0x41007, 0x0}, -- {0x41388, 0xc028}, -- {0x41389, 0x0}, -- {0x4138a, 0x0}, -- {0x4138b, 0x10}, -- {0x4138c, 0x0}, -- {0x4138d, 0x0}, -- {0x4138e, 0x0}, -- {0x4138f, 0x0}, -- {0x41390, 0x0}, -- {0x41391, 0x0}, -- {0x41392, 0x0}, -- {0x41393, 0x400}, -- {0x41394, 0x0}, -- {0x41395, 0x0}, -- {0x41396, 0x0}, -- {0x41397, 0x0}, -- {0x41398, 0x0}, -- {0x41399, 0x0}, -- {0x4139a, 0x0}, -- {0x4139b, 0x0}, -- {0x4139c, 0x0}, -- {0x4139d, 0x0}, -- {0x4139e, 0x0}, -- {0x4139f, 0x0}, -- {0x413a0, 0xc858}, -- {0x413a1, 0x0}, -- {0x413a2, 0x0}, -- {0x413a3, 0x10}, -- {0x413a4, 0xe088}, -- {0x413a5, 0x0}, -- {0x413a6, 0x0}, -- {0x413a7, 0x10}, -- {0x413a8, 0xe038}, -- {0x413a9, 0x0}, -- {0x413aa, 0x0}, -- {0x413ab, 0x10}, -- {0x413ac, 0xc858}, -- {0x413ad, 0x0}, -- {0x413ae, 0x0}, -- {0x413af, 0x10}, -- {0x413b0, 0xc088}, -- {0x413b1, 0x0}, -- {0x413b2, 0x0}, -- {0x413b3, 0x10}, -- {0x413b4, 0x0}, -- {0x413b5, 0x0}, -- {0x413b6, 0x0}, -- {0x413b7, 0x0}, -- {0x413b8, 0xc028}, -- {0x413b9, 0x0}, -- {0x413ba, 0x0}, -- {0x413bb, 0x10}, -- {0x413bc, 0x0}, -- {0x413bd, 0x0}, -- {0x413be, 0x0}, -- {0x413bf, 0x0}, -- {0x413c0, 0x0}, -- {0x413c1, 0x0}, -- {0x413c2, 0x0}, -- {0x413c3, 0x400}, -- {0x413c4, 0x0}, -- {0x413c5, 0x0}, -- {0x413c6, 0x0}, -- {0x413c7, 0x0}, -- {0x413c8, 0x0}, -- {0x413c9, 0x0}, -- {0x413ca, 0x0}, -- {0x413cb, 0x0}, -- {0x413cc, 0x0}, -- {0x413cd, 0x0}, -- {0x413ce, 0x0}, -- {0x413cf, 0x0}, -- {0x413d0, 0xc858}, -- {0x413d1, 0x0}, -- {0x413d2, 0x0}, -- {0x413d3, 0x10}, -- {0x413d4, 0xe208}, -- {0x413d5, 0x0}, -- {0x413d6, 0x0}, -- {0x413d7, 0x10}, -- {0x413d8, 0xe038}, -- {0x413d9, 0x0}, -- {0x413da, 0x0}, -- {0x413db, 0x10}, -- {0x413dc, 0xc858}, -- {0x413dd, 0x0}, -- {0x413de, 0x0}, -- {0x413df, 0x10}, -- {0x413e0, 0xc208}, -- {0x413e1, 0x0}, -- {0x413e2, 0x0}, -- {0x413e3, 0x10}, -- {0x413e4, 0x0}, -- {0x413e5, 0x0}, -- {0x413e6, 0x0}, -- {0x413e7, 0x0}, -- {0x413e8, 0xce58}, -- {0x413e9, 0x0}, -- {0x413ea, 0x0}, -- {0x413eb, 0x10}, -- {0x413ec, 0xc208}, -- {0x413ed, 0x0}, -- {0x413ee, 0x0}, -- {0x413ef, 0x10}, -- {0x413f0, 0x0}, -- {0x413f1, 0x0}, -- {0x413f2, 0x0}, -- {0x413f3, 0x0}, -- {0x413f4, 0x0}, -- {0x413f5, 0x0}, -- {0x413f6, 0x0}, -- {0x413f7, 0x0}, -- {0x413f8, 0xc370}, -- {0x413f9, 0x0}, -- {0x413fa, 0x0}, -- {0x413fb, 0x10}, -- {0x413fc, 0x0}, -- {0x413fd, 0x0}, -- {0x413fe, 0x0}, -- {0x413ff, 0x0}, -- {0x41400, 0xc040}, -- {0x41401, 0x0}, -- {0x41402, 0x0}, -- {0x41403, 0x10}, -- {0x41404, 0x0}, -- {0x41405, 0x0}, -- {0x41406, 0x0}, -- {0x41407, 0x10}, -- {0x41408, 0xd2d8}, -- {0x41409, 0x0}, -- {0x4140a, 0x0}, -- {0x4140b, 0x10}, -- {0x4140c, 0xe008}, -- {0x4140d, 0x0}, -- {0x4140e, 0x0}, -- {0x4140f, 0x10}, -- {0x41410, 0x0}, -- {0x41411, 0x0}, -- {0x41412, 0x0}, -- {0x41413, 0x5b00}, -- {0x41414, 0x0}, -- {0x41415, 0x0}, -- {0x41416, 0x0}, -- {0x41417, 0x0}, -- {0x41418, 0xc0f0}, -- {0x41419, 0x0}, -- {0x4141a, 0x0}, -- {0x4141b, 0x10}, -- {0x4141c, 0x0}, -- {0x4141d, 0x0}, -- {0x4141e, 0x0}, -- {0x4141f, 0x0}, -- {0x41420, 0xcfd8}, -- {0x41421, 0x0}, -- {0x41422, 0x0}, -- {0x41423, 0x10}, -- {0x41424, 0xc008}, -- {0x41425, 0x0}, -- {0x41426, 0x0}, -- {0x41427, 0x10}, -- {0x41428, 0x0}, -- {0x41429, 0x0}, -- {0x4142a, 0x0}, -- {0x4142b, 0x2b00}, -- {0x4142c, 0x0}, -- {0x4142d, 0x0}, -- {0x4142e, 0x0}, -- {0x4142f, 0x0}, -- {0x41430, 0xd058}, -- {0x41431, 0x0}, -- {0x41432, 0x0}, -- {0x41433, 0x10}, -- {0x41434, 0xc008}, -- {0x41435, 0x0}, -- {0x41436, 0x0}, -- {0x41437, 0x10}, -- {0x41438, 0x0}, -- {0x41439, 0x0}, -- {0x4143a, 0x0}, -- {0x4143b, 0x2b00}, -- {0x4143c, 0x0}, -- {0x4143d, 0x0}, -- {0x4143e, 0x0}, -- {0x4143f, 0x0}, -- {0x41440, 0xd0d8}, -- {0x41441, 0x0}, -- {0x41442, 0x0}, -- {0x41443, 0x10}, -- {0x41444, 0xc088}, -- {0x41445, 0x0}, -- {0x41446, 0x0}, -- {0x41447, 0x10}, -- {0x41448, 0x0}, -- {0x41449, 0x0}, -- {0x4144a, 0x0}, -- {0x4144b, 0x2b00}, -- {0x4144c, 0x0}, -- {0x4144d, 0x0}, -- {0x4144e, 0x0}, -- {0x4144f, 0x0}, -- {0x41450, 0xd158}, -- {0x41451, 0x0}, -- {0x41452, 0x0}, -- {0x41453, 0x10}, -- {0x41454, 0xc008}, -- {0x41455, 0x0}, -- {0x41456, 0x0}, -- {0x41457, 0x10}, -- {0x41458, 0x0}, -- {0x41459, 0x0}, -- {0x4145a, 0x0}, -- {0x4145b, 0x5b00}, -- {0x4145c, 0x0}, -- {0x4145d, 0x0}, -- {0x4145e, 0x0}, -- {0x4145f, 0x0}, -- {0x41460, 0x402c}, -- {0x41461, 0xd00}, -- {0x41462, 0x1}, -- {0x41463, 0x400}, -- {0x41464, 0x4050}, -- {0x41465, 0x800}, -- {0x41466, 0x0}, -- {0x41467, 0x0}, -- {0x41468, 0x0}, -- {0x41469, 0x0}, -- {0x4146a, 0x0}, -- {0x4146b, 0x400}, -- {0x4146c, 0x0}, -- {0x4146d, 0x0}, -- {0x4146e, 0x0}, -- {0x4146f, 0x0}, -- {0x41470, 0x0}, -- {0x41471, 0x0}, -- {0x41472, 0x0}, -- {0x41473, 0x400}, -- {0x41474, 0x4050}, -- {0x41475, 0x803}, -- {0x41476, 0x0}, -- {0x41477, 0x0}, -- {0x41478, 0x0}, -- {0x41479, 0x0}, -- {0x4147a, 0x0}, -- {0x4147b, 0x7f00}, -- {0x4147c, 0x0}, -- {0x4147d, 0x0}, -- {0x4147e, 0x0}, -- {0x4147f, 0x400}, -- {0x41480, 0x407c}, -- {0x41481, 0x0}, -- {0x41482, 0x0}, -- {0x41483, 0x400}, -- {0x41484, 0x0}, -- {0x41485, 0x0}, -- {0x41486, 0x0}, -- {0x41487, 0x0}, -- {0x41488, 0x0}, -- {0x41489, 0x0}, -- {0x4148a, 0x0}, -- {0x4148b, 0x400}, -- {0x4148c, 0x0}, -- {0x4148d, 0x0}, -- {0x4148e, 0x1}, -- {0x4148f, 0x0}, -- {0x41490, 0x0}, -- {0x41491, 0x0}, -- {0x41492, 0x0}, -- {0x41493, 0x400}, -- {0x41494, 0x0}, -- {0x41495, 0x0}, -- {0x41496, 0x0}, -- {0x41497, 0x0}, -- {0x41498, 0x0}, -- {0x41499, 0x0}, -- {0x4149a, 0x0}, -- {0x4149b, 0x0}, -- {0x4149c, 0x0}, -- {0x4149d, 0x0}, -- {0x4149e, 0x0}, -- {0x4149f, 0x0}, -- {0x414a0, 0x802c}, -- {0x414a1, 0xd00}, -- {0x414a2, 0x1}, -- {0x414a3, 0x410}, -- {0x414a4, 0x8050}, -- {0x414a5, 0x800}, -- {0x414a6, 0x0}, -- {0x414a7, 0x10}, -- {0x414a8, 0x0}, -- {0x414a9, 0x0}, -- {0x414aa, 0x0}, -- {0x414ab, 0x400}, -- {0x414ac, 0x0}, -- {0x414ad, 0x0}, -- {0x414ae, 0x0}, -- {0x414af, 0x0}, -- {0x414b0, 0x0}, -- {0x414b1, 0x0}, -- {0x414b2, 0x0}, -- {0x414b3, 0x400}, -- {0x414b4, 0x8050}, -- {0x414b5, 0x803}, -- {0x414b6, 0x0}, -- {0x414b7, 0x10}, -- {0x414b8, 0x0}, -- {0x414b9, 0x0}, -- {0x414ba, 0x0}, -- {0x414bb, 0x7f00}, -- {0x414bc, 0x0}, -- {0x414bd, 0x0}, -- {0x414be, 0x0}, -- {0x414bf, 0x400}, -- {0x414c0, 0x807c}, -- {0x414c1, 0x0}, -- {0x414c2, 0x0}, -- {0x414c3, 0x410}, -- {0x414c4, 0x0}, -- {0x414c5, 0x0}, -- {0x414c6, 0x0}, -- {0x414c7, 0x0}, -- {0x414c8, 0x0}, -- {0x414c9, 0x0}, -- {0x414ca, 0x0}, -- {0x414cb, 0x400}, -- {0x414cc, 0x0}, -- {0x414cd, 0x0}, -- {0x414ce, 0x1}, -- {0x414cf, 0x0}, -- {0x414d0, 0x0}, -- {0x414d1, 0x0}, -- {0x414d2, 0x0}, -- {0x414d3, 0x400}, -- {0x414d4, 0x0}, -- {0x414d5, 0x0}, -- {0x414d6, 0x0}, -- {0x414d7, 0x0}, -- {0x414d8, 0x0}, -- {0x414d9, 0x0}, -- {0x414da, 0x0}, -- {0x414db, 0x0}, -- {0x414dc, 0x0}, -- {0x414dd, 0x0}, -- {0x414de, 0x0}, -- {0x414df, 0x0}, -- {0x414e0, 0x402c}, -- {0x414e1, 0xd00}, -- {0x414e2, 0x1}, -- {0x414e3, 0x0}, -- {0x414e4, 0x4050}, -- {0x414e5, 0x800}, -- {0x414e6, 0x0}, -- {0x414e7, 0x0}, -- {0x414e8, 0x0}, -- {0x414e9, 0x0}, -- {0x414ea, 0x0}, -- {0x414eb, 0x0}, -- {0x414ec, 0x0}, -- {0x414ed, 0x0}, -- {0x414ee, 0x0}, -- {0x414ef, 0x0}, -- {0x414f0, 0x0}, -- {0x414f1, 0x0}, -- {0x414f2, 0x0}, -- {0x414f3, 0x0}, -- {0x414f4, 0x4050}, -- {0x414f5, 0x803}, -- {0x414f6, 0x0}, -- {0x414f7, 0x0}, -- {0x414f8, 0x0}, -- {0x414f9, 0x0}, -- {0x414fa, 0x0}, -- {0x414fb, 0x0}, -- {0x414fc, 0x0}, -- {0x414fd, 0x0}, -- {0x414fe, 0x0}, -- {0x414ff, 0x0}, -- {0x41500, 0x0}, -- {0x41501, 0x0}, -- {0x41502, 0x0}, -- {0x41503, 0x0}, -- {0x41504, 0x4050}, -- {0x41505, 0x800}, -- {0x41506, 0x0}, -- {0x41507, 0x0}, -- {0x41508, 0x0}, -- {0x41509, 0x0}, -- {0x4150a, 0x0}, -- {0x4150b, 0x6b00}, -- {0x4150c, 0x0}, -- {0x4150d, 0x0}, -- {0x4150e, 0x0}, -- {0x4150f, 0x400}, -- {0x41510, 0x0}, -- {0x41511, 0x0}, -- {0x41512, 0x0}, -- {0x41513, 0x0}, -- {0x41514, 0x407c}, -- {0x41515, 0x0}, -- {0x41516, 0x0}, -- {0x41517, 0x0}, -- {0x41518, 0x0}, -- {0x41519, 0x0}, -- {0x4151a, 0x0}, -- {0x4151b, 0x0}, -- {0x4151c, 0x0}, -- {0x4151d, 0x0}, -- {0x4151e, 0x0}, -- {0x4151f, 0x0}, -- {0x41520, 0x0}, -- {0x41521, 0x0}, -- {0x41522, 0x1}, -- {0x41523, 0x0}, -- {0x41524, 0x0}, -- {0x41525, 0x0}, -- {0x41526, 0x0}, -- {0x41527, 0x0}, -- {0x41528, 0x0}, -- {0x41529, 0x0}, -- {0x4152a, 0x0}, -- {0x4152b, 0x4b00}, -- {0x4152c, 0x0}, -- {0x4152d, 0x0}, -- {0x4152e, 0x0}, -- {0x4152f, 0x1800}, -- {0x41530, 0x0}, -- {0x41531, 0x0}, -- {0x41532, 0x0}, -- {0x41533, 0x0}, -- {0x41534, 0x802c}, -- {0x41535, 0xd00}, -- {0x41536, 0x1}, -- {0x41537, 0x10}, -- {0x41538, 0x8050}, -- {0x41539, 0x800}, -- {0x4153a, 0x0}, -- {0x4153b, 0x10}, -- {0x4153c, 0x0}, -- {0x4153d, 0x0}, -- {0x4153e, 0x0}, -- {0x4153f, 0x0}, -- {0x41540, 0x0}, -- {0x41541, 0x0}, -- {0x41542, 0x0}, -- {0x41543, 0x0}, -- {0x41544, 0x0}, -- {0x41545, 0x0}, -- {0x41546, 0x0}, -- {0x41547, 0x0}, -- {0x41548, 0x8050}, -- {0x41549, 0x803}, -- {0x4154a, 0x0}, -- {0x4154b, 0x10}, -- {0x4154c, 0x0}, -- {0x4154d, 0x0}, -- {0x4154e, 0x0}, -- {0x4154f, 0x0}, -- {0x41550, 0x0}, -- {0x41551, 0x0}, -- {0x41552, 0x0}, -- {0x41553, 0x0}, -- {0x41554, 0x0}, -- {0x41555, 0x0}, -- {0x41556, 0x0}, -- {0x41557, 0x0}, -- {0x41558, 0x8050}, -- {0x41559, 0x800}, -- {0x4155a, 0x0}, -- {0x4155b, 0x10}, -- {0x4155c, 0x0}, -- {0x4155d, 0x0}, -- {0x4155e, 0x0}, -- {0x4155f, 0x0}, -- {0x41560, 0x0}, -- {0x41561, 0x0}, -- {0x41562, 0x0}, -- {0x41563, 0x6b00}, -- {0x41564, 0x0}, -- {0x41565, 0x0}, -- {0x41566, 0x0}, -- {0x41567, 0x400}, -- {0x41568, 0x807c}, -- {0x41569, 0x0}, -- {0x4156a, 0x0}, -- {0x4156b, 0x10}, -- {0x4156c, 0x0}, -- {0x4156d, 0x0}, -- {0x4156e, 0x0}, -- {0x4156f, 0x0}, -- {0x41570, 0x0}, -- {0x41571, 0x0}, -- {0x41572, 0x0}, -- {0x41573, 0x0}, -- {0x41574, 0x0}, -- {0x41575, 0x0}, -- {0x41576, 0x1}, -- {0x41577, 0x0}, -- {0x41578, 0x0}, -- {0x41579, 0x0}, -- {0x4157a, 0x0}, -- {0x4157b, 0x7b00}, -- {0x4157c, 0x0}, -- {0x4157d, 0x0}, -- {0x4157e, 0x0}, -- {0x4157f, 0x2000}, -- {0x41580, 0x402c}, -- {0x41581, 0xd00}, -- {0x41582, 0x1}, -- {0x41583, 0x0}, -- {0x41584, 0x5198}, -- {0x41585, 0x803}, -- {0x41586, 0x0}, -- {0x41587, 0x0}, -- {0x41588, 0x0}, -- {0x41589, 0x0}, -- {0x4158a, 0x0}, -- {0x4158b, 0x3b00}, -- {0x4158c, 0x0}, -- {0x4158d, 0x0}, -- {0x4158e, 0x0}, -- {0x4158f, 0x0}, -- {0x41590, 0x5218}, -- {0x41591, 0x803}, -- {0x41592, 0x0}, -- {0x41593, 0x0}, -- {0x41594, 0x0}, -- {0x41595, 0x0}, -- {0x41596, 0x0}, -- {0x41597, 0x0}, -- {0x41598, 0x0}, -- {0x41599, 0x0}, -- {0x4159a, 0x0}, -- {0x4159b, 0x6b00}, -- {0x4159c, 0x0}, -- {0x4159d, 0x0}, -- {0x4159e, 0x0}, -- {0x4159f, 0x400}, -- {0x415a0, 0x407c}, -- {0x415a1, 0x0}, -- {0x415a2, 0x0}, -- {0x415a3, 0x0}, -- {0x415a4, 0x0}, -- {0x415a5, 0x0}, -- {0x415a6, 0x0}, -- {0x415a7, 0x0}, -- {0x415a8, 0x0}, -- {0x415a9, 0x0}, -- {0x415aa, 0x0}, -- {0x415ab, 0x0}, -- {0x415ac, 0x0}, -- {0x415ad, 0x0}, -- {0x415ae, 0x1}, -- {0x415af, 0x0}, -- {0x415b0, 0x0}, -- {0x415b1, 0x0}, -- {0x415b2, 0x0}, -- {0x415b3, 0x1b00}, -- {0x415b4, 0x0}, -- {0x415b5, 0x0}, -- {0x415b6, 0x0}, -- {0x415b7, 0x0}, -- {0x415b8, 0x0}, -- {0x415b9, 0x0}, -- {0x415ba, 0x0}, -- {0x415bb, 0x0}, -- {0x415bc, 0x802c}, -- {0x415bd, 0xd00}, -- {0x415be, 0x1}, -- {0x415bf, 0x10}, -- {0x415c0, 0x9198}, -- {0x415c1, 0x803}, -- {0x415c2, 0x0}, -- {0x415c3, 0x10}, -- {0x415c4, 0x0}, -- {0x415c5, 0x0}, -- {0x415c6, 0x0}, -- {0x415c7, 0x0}, -- {0x415c8, 0x0}, -- {0x415c9, 0x0}, -- {0x415ca, 0x0}, -- {0x415cb, 0x2b00}, -- {0x415cc, 0x0}, -- {0x415cd, 0x0}, -- {0x415ce, 0x0}, -- {0x415cf, 0x0}, -- {0x415d0, 0x0}, -- {0x415d1, 0x0}, -- {0x415d2, 0x0}, -- {0x415d3, 0x0}, -- {0x415d4, 0x9218}, -- {0x415d5, 0x803}, -- {0x415d6, 0x0}, -- {0x415d7, 0x10}, -- {0x415d8, 0x0}, -- {0x415d9, 0x0}, -- {0x415da, 0x0}, -- {0x415db, 0x6b00}, -- {0x415dc, 0x0}, -- {0x415dd, 0x0}, -- {0x415de, 0x0}, -- {0x415df, 0x400}, -- {0x415e0, 0x0}, -- {0x415e1, 0x0}, -- {0x415e2, 0x0}, -- {0x415e3, 0x0}, -- {0x415e4, 0x807c}, -- {0x415e5, 0x0}, -- {0x415e6, 0x0}, -- {0x415e7, 0x10}, -- {0x415e8, 0x0}, -- {0x415e9, 0x0}, -- {0x415ea, 0x0}, -- {0x415eb, 0x0}, -- {0x415ec, 0x0}, -- {0x415ed, 0x0}, -- {0x415ee, 0x0}, -- {0x415ef, 0x0}, -- {0x415f0, 0x0}, -- {0x415f1, 0x0}, -- {0x415f2, 0x1}, -- {0x415f3, 0x0}, -- {0x415f4, 0x0}, -- {0x415f5, 0x0}, -- {0x415f6, 0x0}, -- {0x415f7, 0x0}, -- {0x415f8, 0x0}, -- {0x415f9, 0x0}, -- {0x415fa, 0x0}, -- {0x415fb, 0xb00}, -- {0x415fc, 0x0}, -- {0x415fd, 0x0}, -- {0x415fe, 0x0}, -- {0x415ff, 0x400}, -- {0x41600, 0x0}, -- {0x41601, 0x0}, -- {0x41602, 0x0}, -- {0x41603, 0x0}, -- {0x41604, 0x0}, -- {0x41605, 0x0}, -- {0x41606, 0x0}, -- {0x41607, 0x0}, -- {0x41608, 0x401c}, -- {0x41609, 0xd0}, -- {0x4160a, 0x1}, -- {0x4160b, 0x0}, -- {0x4160c, 0x4060}, -- {0x4160d, 0x84}, -- {0x4160e, 0x0}, -- {0x4160f, 0x0}, -- {0x41610, 0x0}, -- {0x41611, 0x0}, -- {0x41612, 0x0}, -- {0x41613, 0xb00}, -- {0x41614, 0x0}, -- {0x41615, 0x0}, -- {0x41616, 0x0}, -- {0x41617, 0x800}, -- {0x41618, 0x407c}, -- {0x41619, 0x0}, -- {0x4161a, 0x0}, -- {0x4161b, 0x0}, -- {0x4161c, 0x0}, -- {0x4161d, 0x0}, -- {0x4161e, 0x0}, -- {0x4161f, 0x0}, -- {0x41620, 0x0}, -- {0x41621, 0x0}, -- {0x41622, 0x0}, -- {0x41623, 0x0}, -- {0x41624, 0x4000}, -- {0x41625, 0x0}, -- {0x41626, 0x1}, -- {0x41627, 0x0}, -- {0x41628, 0x0}, -- {0x41629, 0x0}, -- {0x4162a, 0x0}, -- {0x4162b, 0x0}, -- {0x4162c, 0x402c}, -- {0x4162d, 0xd00}, -- {0x4162e, 0x1}, -- {0x4162f, 0x0}, -- {0x41630, 0x4020}, -- {0x41631, 0x803}, -- {0x41632, 0x0}, -- {0x41633, 0x0}, -- {0x41634, 0x0}, -- {0x41635, 0x0}, -- {0x41636, 0x0}, -- {0x41637, 0x0}, -- {0x41638, 0x0}, -- {0x41639, 0x0}, -- {0x4163a, 0x0}, -- {0x4163b, 0x2b00}, -- {0x4163c, 0x0}, -- {0x4163d, 0x0}, -- {0x4163e, 0x0}, -- {0x4163f, 0x800}, -- {0x41640, 0x0}, -- {0x41641, 0x0}, -- {0x41642, 0x0}, -- {0x41643, 0x0}, -- {0x41644, 0x407c}, -- {0x41645, 0x0}, -- {0x41646, 0x0}, -- {0x41647, 0x0}, -- {0x41648, 0x0}, -- {0x41649, 0x0}, -- {0x4164a, 0x0}, -- {0x4164b, 0x0}, -- {0x4164c, 0x0}, -- {0x4164d, 0x0}, -- {0x4164e, 0x0}, -- {0x4164f, 0x0}, -- {0x41650, 0x0}, -- {0x41651, 0x0}, -- {0x41652, 0x1}, -- {0x41653, 0x0}, -- {0x41654, 0x0}, -- {0x41655, 0x0}, -- {0x41656, 0x0}, -- {0x41657, 0x0}, -- {0x41658, 0x801c}, -- {0x41659, 0xd0}, -- {0x4165a, 0x1}, -- {0x4165b, 0x10}, -- {0x4165c, 0x8060}, -- {0x4165d, 0x84}, -- {0x4165e, 0x0}, -- {0x4165f, 0x10}, -- {0x41660, 0x0}, -- {0x41661, 0x0}, -- {0x41662, 0x0}, -- {0x41663, 0xb00}, -- {0x41664, 0x0}, -- {0x41665, 0x0}, -- {0x41666, 0x0}, -- {0x41667, 0x800}, -- {0x41668, 0x807c}, -- {0x41669, 0x0}, -- {0x4166a, 0x0}, -- {0x4166b, 0x10}, -- {0x4166c, 0x0}, -- {0x4166d, 0x0}, -- {0x4166e, 0x0}, -- {0x4166f, 0x0}, -- {0x41670, 0x0}, -- {0x41671, 0x0}, -- {0x41672, 0x0}, -- {0x41673, 0x0}, -- {0x41674, 0x8000}, -- {0x41675, 0x0}, -- {0x41676, 0x1}, -- {0x41677, 0x10}, -- {0x41678, 0x0}, -- {0x41679, 0x0}, -- {0x4167a, 0x0}, -- {0x4167b, 0x0}, -- {0x4167c, 0x802c}, -- {0x4167d, 0xd00}, -- {0x4167e, 0x1}, -- {0x4167f, 0x10}, -- {0x41680, 0x8020}, -- {0x41681, 0x803}, -- {0x41682, 0x0}, -- {0x41683, 0x10}, -- {0x41684, 0x0}, -- {0x41685, 0x0}, -- {0x41686, 0x0}, -- {0x41687, 0x0}, -- {0x41688, 0x0}, -- {0x41689, 0x0}, -- {0x4168a, 0x0}, -- {0x4168b, 0x2b00}, -- {0x4168c, 0x0}, -- {0x4168d, 0x0}, -- {0x4168e, 0x0}, -- {0x4168f, 0x800}, -- {0x41690, 0x0}, -- {0x41691, 0x0}, -- {0x41692, 0x0}, -- {0x41693, 0x0}, -- {0x41694, 0x807c}, -- {0x41695, 0x0}, -- {0x41696, 0x0}, -- {0x41697, 0x10}, -- {0x41698, 0x0}, -- {0x41699, 0x0}, -- {0x4169a, 0x0}, -- {0x4169b, 0x0}, -- {0x4169c, 0x0}, -- {0x4169d, 0x0}, -- {0x4169e, 0x0}, -- {0x4169f, 0x0}, -- {0x416a0, 0x0}, -- {0x416a1, 0x0}, -- {0x416a2, 0x1}, -- {0x416a3, 0x0}, -- {0x416a4, 0x0}, -- {0x416a5, 0x0}, -- {0x416a6, 0x0}, -- {0x416a7, 0x0}, -- {0x416a8, 0x402c}, -- {0x416a9, 0xd00}, -- {0x416aa, 0x1}, -- {0x416ab, 0x0}, -- {0x416ac, 0x4050}, -- {0x416ad, 0x803}, -- {0x416ae, 0x0}, -- {0x416af, 0x0}, -- {0x416b0, 0x0}, -- {0x416b1, 0x0}, -- {0x416b2, 0x0}, -- {0x416b3, 0x1b00}, -- {0x416b4, 0x0}, -- {0x416b5, 0x0}, -- {0x416b6, 0x0}, -- {0x416b7, 0x0}, -- {0x416b8, 0x0}, -- {0x416b9, 0x0}, -- {0x416ba, 0x0}, -- {0x416bb, 0x0}, -- {0x416bc, 0x0}, -- {0x416bd, 0x0}, -- {0x416be, 0x0}, -- {0x416bf, 0x0}, -- {0x416c0, 0x4050}, -- {0x416c1, 0x803}, -- {0x416c2, 0x0}, -- {0x416c3, 0x5a00}, -- {0x416c4, 0x0}, -- {0x416c5, 0x0}, -- {0x416c6, 0x0}, -- {0x416c7, 0x0}, -- {0x416c8, 0x0}, -- {0x416c9, 0x0}, -- {0x416ca, 0x0}, -- {0x416cb, 0x0}, -- {0x416cc, 0x0}, -- {0x416cd, 0x0}, -- {0x416ce, 0x0}, -- {0x416cf, 0x0}, -- {0x416d0, 0x0}, -- {0x416d1, 0x0}, -- {0x416d2, 0x0}, -- {0x416d3, 0x100}, -- {0x416d4, 0x0}, -- {0x416d5, 0x0}, -- {0x416d6, 0x0}, -- {0x416d7, 0x0}, -- {0x416d8, 0x4050}, -- {0x416d9, 0x803}, -- {0x416da, 0x0}, -- {0x416db, 0x0}, -- {0x416dc, 0x0}, -- {0x416dd, 0x0}, -- {0x416de, 0x0}, -- {0x416df, 0x0}, -- {0x416e0, 0x0}, -- {0x416e1, 0x0}, -- {0x416e2, 0x0}, -- {0x416e3, 0x6b00}, -- {0x416e4, 0x0}, -- {0x416e5, 0x0}, -- {0x416e6, 0x0}, -- {0x416e7, 0x400}, -- {0x416e8, 0x407c}, -- {0x416e9, 0x0}, -- {0x416ea, 0x0}, -- {0x416eb, 0x0}, -- {0x416ec, 0x0}, -- {0x416ed, 0x0}, -- {0x416ee, 0x0}, -- {0x416ef, 0x0}, -- {0x416f0, 0x0}, -- {0x416f1, 0x0}, -- {0x416f2, 0x0}, -- {0x416f3, 0x3b00}, -- {0x416f4, 0x0}, -- {0x416f5, 0x0}, -- {0x416f6, 0x0}, -- {0x416f7, 0x0}, -- {0x416f8, 0x0}, -- {0x416f9, 0x0}, -- {0x416fa, 0x0}, -- {0x416fb, 0x0}, -- {0x416fc, 0x0}, -- {0x416fd, 0x0}, -- {0x416fe, 0x1}, -- {0x416ff, 0x0}, -- {0x41700, 0x5758}, -- {0x41701, 0x0}, -- {0x41702, 0x0}, -- {0x41703, 0x0}, -- {0x41704, 0x4208}, -- {0x41705, 0x0}, -- {0x41706, 0x0}, -- {0x41707, 0x0}, -- {0x41708, 0x0}, -- {0x41709, 0x0}, -- {0x4170a, 0x0}, -- {0x4170b, 0x4b00}, -- {0x4170c, 0x0}, -- {0x4170d, 0x0}, -- {0x4170e, 0x0}, -- {0x4170f, 0x0}, -- {0x41710, 0x0}, -- {0x41711, 0x0}, -- {0x41712, 0x0}, -- {0x41713, 0x0}, -- {0x41714, 0x401c}, -- {0x41715, 0xd0}, -- {0x41716, 0x1}, -- {0x41717, 0x0}, -- {0x41718, 0x4060}, -- {0x41719, 0x84}, -- {0x4171a, 0x0}, -- {0x4171b, 0x0}, -- {0x4171c, 0x0}, -- {0x4171d, 0x0}, -- {0x4171e, 0x0}, -- {0x4171f, 0x0}, -- {0x41720, 0x0}, -- {0x41721, 0x0}, -- {0x41722, 0x0}, -- {0x41723, 0x7b00}, -- {0x41724, 0x0}, -- {0x41725, 0x0}, -- {0x41726, 0x0}, -- {0x41727, 0x0}, -- {0x41728, 0x407c}, -- {0x41729, 0x0}, -- {0x4172a, 0x0}, -- {0x4172b, 0x0}, -- {0x4172c, 0x0}, -- {0x4172d, 0x0}, -- {0x4172e, 0x0}, -- {0x4172f, 0x0}, -- {0x41730, 0x0}, -- {0x41731, 0x0}, -- {0x41732, 0x0}, -- {0x41733, 0x0}, -- {0x41734, 0x4000}, -- {0x41735, 0x0}, -- {0x41736, 0x1}, -- {0x41737, 0x0}, -- {0x41738, 0x0}, -- {0x41739, 0x0}, -- {0x4173a, 0x0}, -- {0x4173b, 0x0}, -- {0x4173c, 0x402c}, -- {0x4173d, 0xd00}, -- {0x4173e, 0x1}, -- {0x4173f, 0x0}, -- {0x41740, 0x4020}, -- {0x41741, 0x803}, -- {0x41742, 0x0}, -- {0x41743, 0x0}, -- {0x41744, 0x0}, -- {0x41745, 0x0}, -- {0x41746, 0x0}, -- {0x41747, 0x0}, -- {0x41748, 0x0}, -- {0x41749, 0x0}, -- {0x4174a, 0x0}, -- {0x4174b, 0x2b00}, -- {0x4174c, 0x0}, -- {0x4174d, 0x0}, -- {0x4174e, 0x0}, -- {0x4174f, 0x800}, -- {0x41750, 0x0}, -- {0x41751, 0x0}, -- {0x41752, 0x0}, -- {0x41753, 0x0}, -- {0x41754, 0x407c}, -- {0x41755, 0x0}, -- {0x41756, 0x0}, -- {0x41757, 0x0}, -- {0x41758, 0x0}, -- {0x41759, 0x0}, -- {0x4175a, 0x0}, -- {0x4175b, 0x0}, -- {0x4175c, 0x0}, -- {0x4175d, 0x0}, -- {0x4175e, 0x0}, -- {0x4175f, 0x0}, -- {0x41760, 0x4000}, -- {0x41761, 0x0}, -- {0x41762, 0x1}, -- {0x41763, 0x0}, -- {0x41764, 0x0}, -- {0x41765, 0x0}, -- {0x41766, 0x0}, -- {0x41767, 0x0}, -- {0x41768, 0x5758}, -- {0x41769, 0x0}, -- {0x4176a, 0x0}, -- {0x4176b, 0x0}, -- {0x4176c, 0x4008}, -- {0x4176d, 0x0}, -- {0x4176e, 0x0}, -- {0x4176f, 0x0}, -- {0x41770, 0x0}, -- {0x41771, 0x0}, -- {0x41772, 0x0}, -- {0x41773, 0x0}, -- {0x41774, 0x0}, -- {0x41775, 0x0}, -- {0x41776, 0x0}, -- {0x41777, 0x0}, -- {0x41778, 0x802c}, -- {0x41779, 0xd00}, -- {0x4177a, 0x1}, -- {0x4177b, 0x10}, -- {0x4177c, 0x8050}, -- {0x4177d, 0x803}, -- {0x4177e, 0x0}, -- {0x4177f, 0x10}, -- {0x41780, 0x0}, -- {0x41781, 0x0}, -- {0x41782, 0x0}, -- {0x41783, 0x1b00}, -- {0x41784, 0x0}, -- {0x41785, 0x0}, -- {0x41786, 0x0}, -- {0x41787, 0x0}, -- {0x41788, 0x0}, -- {0x41789, 0x0}, -- {0x4178a, 0x0}, -- {0x4178b, 0x0}, -- {0x4178c, 0x0}, -- {0x4178d, 0x0}, -- {0x4178e, 0x0}, -- {0x4178f, 0x0}, -- {0x41790, 0x8050}, -- {0x41791, 0x803}, -- {0x41792, 0x0}, -- {0x41793, 0x5a10}, -- {0x41794, 0x0}, -- {0x41795, 0x0}, -- {0x41796, 0x0}, -- {0x41797, 0x0}, -- {0x41798, 0x0}, -- {0x41799, 0x0}, -- {0x4179a, 0x0}, -- {0x4179b, 0x0}, -- {0x4179c, 0x0}, -- {0x4179d, 0x0}, -- {0x4179e, 0x0}, -- {0x4179f, 0x0}, -- {0x417a0, 0x0}, -- {0x417a1, 0x0}, -- {0x417a2, 0x0}, -- {0x417a3, 0x100}, -- {0x417a4, 0x0}, -- {0x417a5, 0x0}, -- {0x417a6, 0x0}, -- {0x417a7, 0x0}, -- {0x417a8, 0x8050}, -- {0x417a9, 0x803}, -- {0x417aa, 0x0}, -- {0x417ab, 0x10}, -- {0x417ac, 0x0}, -- {0x417ad, 0x0}, -- {0x417ae, 0x0}, -- {0x417af, 0x0}, -- {0x417b0, 0x0}, -- {0x417b1, 0x0}, -- {0x417b2, 0x0}, -- {0x417b3, 0x6b00}, -- {0x417b4, 0x0}, -- {0x417b5, 0x0}, -- {0x417b6, 0x0}, -- {0x417b7, 0x400}, -- {0x417b8, 0x807c}, -- {0x417b9, 0x0}, -- {0x417ba, 0x0}, -- {0x417bb, 0x10}, -- {0x417bc, 0x0}, -- {0x417bd, 0x0}, -- {0x417be, 0x0}, -- {0x417bf, 0x0}, -- {0x417c0, 0x0}, -- {0x417c1, 0x0}, -- {0x417c2, 0x0}, -- {0x417c3, 0x3b00}, -- {0x417c4, 0x0}, -- {0x417c5, 0x0}, -- {0x417c6, 0x0}, -- {0x417c7, 0x0}, -- {0x417c8, 0x0}, -- {0x417c9, 0x0}, -- {0x417ca, 0x0}, -- {0x417cb, 0x0}, -- {0x417cc, 0x0}, -- {0x417cd, 0x0}, -- {0x417ce, 0x1}, -- {0x417cf, 0x0}, -- {0x417d0, 0x9758}, -- {0x417d1, 0x0}, -- {0x417d2, 0x0}, -- {0x417d3, 0x10}, -- {0x417d4, 0x8208}, -- {0x417d5, 0x0}, -- {0x417d6, 0x0}, -- {0x417d7, 0x10}, -- {0x417d8, 0x0}, -- {0x417d9, 0x0}, -- {0x417da, 0x0}, -- {0x417db, 0x4b00}, -- {0x417dc, 0x0}, -- {0x417dd, 0x0}, -- {0x417de, 0x0}, -- {0x417df, 0x0}, -- {0x417e0, 0x0}, -- {0x417e1, 0x0}, -- {0x417e2, 0x0}, -- {0x417e3, 0x0}, -- {0x417e4, 0x801c}, -- {0x417e5, 0xd0}, -- {0x417e6, 0x1}, -- {0x417e7, 0x10}, -- {0x417e8, 0x8060}, -- {0x417e9, 0x84}, -- {0x417ea, 0x0}, -- {0x417eb, 0x10}, -- {0x417ec, 0x0}, -- {0x417ed, 0x0}, -- {0x417ee, 0x0}, -- {0x417ef, 0x0}, -- {0x417f0, 0x0}, -- {0x417f1, 0x0}, -- {0x417f2, 0x0}, -- {0x417f3, 0x7b00}, -- {0x417f4, 0x0}, -- {0x417f5, 0x0}, -- {0x417f6, 0x0}, -- {0x417f7, 0x0}, -- {0x417f8, 0x807c}, -- {0x417f9, 0x0}, -- {0x417fa, 0x0}, -- {0x417fb, 0x10}, -- {0x417fc, 0x0}, -- {0x417fd, 0x0}, -- {0x417fe, 0x0}, -- {0x417ff, 0x0}, -- {0x41800, 0x0}, -- {0x41801, 0x0}, -- {0x41802, 0x0}, -- {0x41803, 0x0}, -- {0x41804, 0x8000}, -- {0x41805, 0x0}, -- {0x41806, 0x1}, -- {0x41807, 0x10}, -- {0x41808, 0x0}, -- {0x41809, 0x0}, -- {0x4180a, 0x0}, -- {0x4180b, 0x0}, -- {0x4180c, 0x802c}, -- {0x4180d, 0xd00}, -- {0x4180e, 0x1}, -- {0x4180f, 0x10}, -- {0x41810, 0x8020}, -- {0x41811, 0x803}, -- {0x41812, 0x0}, -- {0x41813, 0x10}, -- {0x41814, 0x0}, -- {0x41815, 0x0}, -- {0x41816, 0x0}, -- {0x41817, 0x0}, -- {0x41818, 0x0}, -- {0x41819, 0x0}, -- {0x4181a, 0x0}, -- {0x4181b, 0x2b00}, -- {0x4181c, 0x0}, -- {0x4181d, 0x0}, -- {0x4181e, 0x0}, -- {0x4181f, 0x800}, -- {0x41820, 0x0}, -- {0x41821, 0x0}, -- {0x41822, 0x0}, -- {0x41823, 0x0}, -- {0x41824, 0x807c}, -- {0x41825, 0x0}, -- {0x41826, 0x0}, -- {0x41827, 0x10}, -- {0x41828, 0x0}, -- {0x41829, 0x0}, -- {0x4182a, 0x0}, -- {0x4182b, 0x0}, -- {0x4182c, 0x0}, -- {0x4182d, 0x0}, -- {0x4182e, 0x0}, -- {0x4182f, 0x0}, -- {0x41830, 0x8000}, -- {0x41831, 0x0}, -- {0x41832, 0x1}, -- {0x41833, 0x10}, -- {0x41834, 0x0}, -- {0x41835, 0x0}, -- {0x41836, 0x0}, -- {0x41837, 0x0}, -- {0x41838, 0x9758}, -- {0x41839, 0x0}, -- {0x4183a, 0x0}, -- {0x4183b, 0x10}, -- {0x4183c, 0x8008}, -- {0x4183d, 0x0}, -- {0x4183e, 0x0}, -- {0x4183f, 0x10}, -- {0x41840, 0x0}, -- {0x41841, 0x0}, -- {0x41842, 0x0}, -- {0x41843, 0x0}, -- {0x41844, 0x0}, -- {0x41845, 0x0}, -- {0x41846, 0x0}, -- {0x41847, 0x0}, -- {0x41848, 0xc068}, -- {0x41849, 0x0}, -- {0x4184a, 0x0}, -- {0x4184b, 0x10}, -- {0x4184c, 0x0}, -- {0x4184d, 0x0}, -- {0x4184e, 0x0}, -- {0x4184f, 0x0}, -- {0x41850, 0xd2d8}, -- {0x41851, 0x0}, -- {0x41852, 0x0}, -- {0x41853, 0x10}, -- {0x41854, 0xe008}, -- {0x41855, 0x0}, -- {0x41856, 0x0}, -- {0x41857, 0x10}, -- {0x41858, 0x0}, -- {0x41859, 0x0}, -- {0x4185a, 0x0}, -- {0x4185b, 0x5b00}, -- {0x4185c, 0x0}, -- {0x4185d, 0x0}, -- {0x4185e, 0x0}, -- {0x4185f, 0x0}, -- {0x41860, 0xc0f0}, -- {0x41861, 0x0}, -- {0x41862, 0x0}, -- {0x41863, 0x10}, -- {0x41864, 0x0}, -- {0x41865, 0x0}, -- {0x41866, 0x0}, -- {0x41867, 0x0}, -- {0x41868, 0xcfd8}, -- {0x41869, 0x0}, -- {0x4186a, 0x0}, -- {0x4186b, 0x10}, -- {0x4186c, 0xc008}, -- {0x4186d, 0x0}, -- {0x4186e, 0x0}, -- {0x4186f, 0x10}, -- {0x41870, 0x0}, -- {0x41871, 0x0}, -- {0x41872, 0x0}, -- {0x41873, 0x2b00}, -- {0x41874, 0x0}, -- {0x41875, 0x0}, -- {0x41876, 0x0}, -- {0x41877, 0x0}, -- {0x41878, 0xd058}, -- {0x41879, 0x0}, -- {0x4187a, 0x0}, -- {0x4187b, 0x10}, -- {0x4187c, 0xc008}, -- {0x4187d, 0x0}, -- {0x4187e, 0x0}, -- {0x4187f, 0x10}, -- {0x41880, 0x0}, -- {0x41881, 0x0}, -- {0x41882, 0x0}, -- {0x41883, 0x2b00}, -- {0x41884, 0x0}, -- {0x41885, 0x0}, -- {0x41886, 0x0}, -- {0x41887, 0x0}, -- {0x41888, 0xd0d8}, -- {0x41889, 0x0}, -- {0x4188a, 0x0}, -- {0x4188b, 0x10}, -- {0x4188c, 0xc088}, -- {0x4188d, 0x0}, -- {0x4188e, 0x0}, -- {0x4188f, 0x10}, -- {0x41890, 0x0}, -- {0x41891, 0x0}, -- {0x41892, 0x0}, -- {0x41893, 0x2b00}, -- {0x41894, 0x0}, -- {0x41895, 0x0}, -- {0x41896, 0x0}, -- {0x41897, 0x0}, -- {0x41898, 0xd158}, -- {0x41899, 0x0}, -- {0x4189a, 0x0}, -- {0x4189b, 0x10}, -- {0x4189c, 0xc008}, -- {0x4189d, 0x0}, -- {0x4189e, 0x0}, -- {0x4189f, 0x10}, -- {0x418a0, 0x0}, -- {0x418a1, 0x0}, -- {0x418a2, 0x0}, -- {0x418a3, 0x5b00}, -- {0x418a4, 0x0}, -- {0x418a5, 0x0}, -- {0x418a6, 0x0}, -- {0x418a7, 0x0}, -- {0x418a8, 0x402c}, -- {0x418a9, 0xd00}, -- {0x418aa, 0x1}, -- {0x418ab, 0x400}, -- {0x418ac, 0x4050}, -- {0x418ad, 0x800}, -- {0x418ae, 0x0}, -- {0x418af, 0x0}, -- {0x418b0, 0x0}, -- {0x418b1, 0x0}, -- {0x418b2, 0x0}, -- {0x418b3, 0x400}, -- {0x418b4, 0x4050}, -- {0x418b5, 0x803}, -- {0x418b6, 0x0}, -- {0x418b7, 0x0}, -- {0x418b8, 0x0}, -- {0x418b9, 0x0}, -- {0x418ba, 0x0}, -- {0x418bb, 0x6f00}, -- {0x418bc, 0x0}, -- {0x418bd, 0x0}, -- {0x418be, 0x0}, -- {0x418bf, 0x400}, -- {0x418c0, 0x407c}, -- {0x418c1, 0x0}, -- {0x418c2, 0x0}, -- {0x418c3, 0x400}, -- {0x418c4, 0x0}, -- {0x418c5, 0x0}, -- {0x418c6, 0x0}, -- {0x418c7, 0x0}, -- {0x418c8, 0x0}, -- {0x418c9, 0x0}, -- {0x418ca, 0x0}, -- {0x418cb, 0x400}, -- {0x418cc, 0x0}, -- {0x418cd, 0x0}, -- {0x418ce, 0x1}, -- {0x418cf, 0x0}, -- {0x418d0, 0x0}, -- {0x418d1, 0x0}, -- {0x418d2, 0x0}, -- {0x418d3, 0x400}, -- {0x418d4, 0x0}, -- {0x418d5, 0x0}, -- {0x418d6, 0x0}, -- {0x418d7, 0x0}, -- {0x418d8, 0x0}, -- {0x418d9, 0x0}, -- {0x418da, 0x0}, -- {0x418db, 0x0}, -- {0x418dc, 0x0}, -- {0x418dd, 0x0}, -- {0x418de, 0x0}, -- {0x418df, 0x0}, -- {0x418e0, 0x802c}, -- {0x418e1, 0xd00}, -- {0x418e2, 0x1}, -- {0x418e3, 0x410}, -- {0x418e4, 0x8050}, -- {0x418e5, 0x800}, -- {0x418e6, 0x0}, -- {0x418e7, 0x10}, -- {0x418e8, 0x0}, -- {0x418e9, 0x0}, -- {0x418ea, 0x0}, -- {0x418eb, 0x400}, -- {0x418ec, 0x8050}, -- {0x418ed, 0x803}, -- {0x418ee, 0x0}, -- {0x418ef, 0x10}, -- {0x418f0, 0x0}, -- {0x418f1, 0x0}, -- {0x418f2, 0x0}, -- {0x418f3, 0x6f00}, -- {0x418f4, 0x0}, -- {0x418f5, 0x0}, -- {0x418f6, 0x0}, -- {0x418f7, 0x400}, -- {0x418f8, 0x807c}, -- {0x418f9, 0x0}, -- {0x418fa, 0x0}, -- {0x418fb, 0x410}, -- {0x418fc, 0x0}, -- {0x418fd, 0x0}, -- {0x418fe, 0x0}, -- {0x418ff, 0x0}, -- {0x41900, 0x0}, -- {0x41901, 0x0}, -- {0x41902, 0x0}, -- {0x41903, 0x400}, -- {0x41904, 0x0}, -- {0x41905, 0x0}, -- {0x41906, 0x1}, -- {0x41907, 0x0}, -- {0x41908, 0x0}, -- {0x41909, 0x0}, -- {0x4190a, 0x0}, -- {0x4190b, 0x400}, -- {0x4190c, 0x0}, -- {0x4190d, 0x0}, -- {0x4190e, 0x0}, -- {0x4190f, 0x0}, -- {0x41910, 0x0}, -- {0x41911, 0x0}, -- {0x41912, 0x0}, -- {0x41913, 0x0}, -- {0x41914, 0x0}, -- {0x41915, 0x0}, -- {0x41916, 0x0}, -- {0x41917, 0x0}, -- {0x41918, 0x402c}, -- {0x41919, 0xd00}, -- {0x4191a, 0x1}, -- {0x4191b, 0x0}, -- {0x4191c, 0x4050}, -- {0x4191d, 0x800}, -- {0x4191e, 0x0}, -- {0x4191f, 0x0}, -- {0x41920, 0x0}, -- {0x41921, 0x0}, -- {0x41922, 0x0}, -- {0x41923, 0x0}, -- {0x41924, 0x4050}, -- {0x41925, 0x803}, -- {0x41926, 0x0}, -- {0x41927, 0x0}, -- {0x41928, 0x0}, -- {0x41929, 0x0}, -- {0x4192a, 0x0}, -- {0x4192b, 0x0}, -- {0x4192c, 0x4050}, -- {0x4192d, 0x800}, -- {0x4192e, 0x0}, -- {0x4192f, 0x0}, -- {0x41930, 0x0}, -- {0x41931, 0x0}, -- {0x41932, 0x0}, -- {0x41933, 0x4b00}, -- {0x41934, 0x0}, -- {0x41935, 0x0}, -- {0x41936, 0x0}, -- {0x41937, 0x400}, -- {0x41938, 0x0}, -- {0x41939, 0x0}, -- {0x4193a, 0x0}, -- {0x4193b, 0x0}, -- {0x4193c, 0x407c}, -- {0x4193d, 0x0}, -- {0x4193e, 0x0}, -- {0x4193f, 0x0}, -- {0x41940, 0x0}, -- {0x41941, 0x0}, -- {0x41942, 0x0}, -- {0x41943, 0x0}, -- {0x41944, 0x0}, -- {0x41945, 0x0}, -- {0x41946, 0x0}, -- {0x41947, 0x0}, -- {0x41948, 0x0}, -- {0x41949, 0x0}, -- {0x4194a, 0x1}, -- {0x4194b, 0x0}, -- {0x4194c, 0x0}, -- {0x4194d, 0x0}, -- {0x4194e, 0x0}, -- {0x4194f, 0x0}, -- {0x41950, 0x0}, -- {0x41951, 0x0}, -- {0x41952, 0x0}, -- {0x41953, 0x4b00}, -- {0x41954, 0x0}, -- {0x41955, 0x0}, -- {0x41956, 0x0}, -- {0x41957, 0x1800}, -- {0x41958, 0x0}, -- {0x41959, 0x0}, -- {0x4195a, 0x0}, -- {0x4195b, 0x0}, -- {0x4195c, 0x802c}, -- {0x4195d, 0xd00}, -- {0x4195e, 0x1}, -- {0x4195f, 0x10}, -- {0x41960, 0x8050}, -- {0x41961, 0x800}, -- {0x41962, 0x0}, -- {0x41963, 0x10}, -- {0x41964, 0x0}, -- {0x41965, 0x0}, -- {0x41966, 0x0}, -- {0x41967, 0x0}, -- {0x41968, 0x8050}, -- {0x41969, 0x803}, -- {0x4196a, 0x0}, -- {0x4196b, 0x10}, -- {0x4196c, 0x0}, -- {0x4196d, 0x0}, -- {0x4196e, 0x0}, -- {0x4196f, 0x0}, -- {0x41970, 0x8050}, -- {0x41971, 0x800}, -- {0x41972, 0x0}, -- {0x41973, 0x10}, -- {0x41974, 0x0}, -- {0x41975, 0x0}, -- {0x41976, 0x0}, -- {0x41977, 0x0}, -- {0x41978, 0x0}, -- {0x41979, 0x0}, -- {0x4197a, 0x0}, -- {0x4197b, 0x4b00}, -- {0x4197c, 0x0}, -- {0x4197d, 0x0}, -- {0x4197e, 0x0}, -- {0x4197f, 0x400}, -- {0x41980, 0x807c}, -- {0x41981, 0x0}, -- {0x41982, 0x0}, -- {0x41983, 0x10}, -- {0x41984, 0x0}, -- {0x41985, 0x0}, -- {0x41986, 0x0}, -- {0x41987, 0x0}, -- {0x41988, 0x0}, -- {0x41989, 0x0}, -- {0x4198a, 0x0}, -- {0x4198b, 0x0}, -- {0x4198c, 0x0}, -- {0x4198d, 0x0}, -- {0x4198e, 0x1}, -- {0x4198f, 0x0}, -- {0x41990, 0x0}, -- {0x41991, 0x0}, -- {0x41992, 0x0}, -- {0x41993, 0x5b00}, -- {0x41994, 0x0}, -- {0x41995, 0x0}, -- {0x41996, 0x0}, -- {0x41997, 0x2000}, -- {0x41998, 0x402c}, -- {0x41999, 0xd00}, -- {0x4199a, 0x1}, -- {0x4199b, 0x0}, -- {0x4199c, 0x5198}, -- {0x4199d, 0x803}, -- {0x4199e, 0x0}, -- {0x4199f, 0x0}, -- {0x419a0, 0x0}, -- {0x419a1, 0x0}, -- {0x419a2, 0x0}, -- {0x419a3, 0x1b00}, -- {0x419a4, 0x0}, -- {0x419a5, 0x0}, -- {0x419a6, 0x0}, -- {0x419a7, 0x0}, -- {0x419a8, 0x5218}, -- {0x419a9, 0x803}, -- {0x419aa, 0x0}, -- {0x419ab, 0x0}, -- {0x419ac, 0x0}, -- {0x419ad, 0x0}, -- {0x419ae, 0x0}, -- {0x419af, 0x0}, -- {0x419b0, 0x0}, -- {0x419b1, 0x0}, -- {0x419b2, 0x0}, -- {0x419b3, 0x4b00}, -- {0x419b4, 0x0}, -- {0x419b5, 0x0}, -- {0x419b6, 0x0}, -- {0x419b7, 0x400}, -- {0x419b8, 0x407c}, -- {0x419b9, 0x0}, -- {0x419ba, 0x0}, -- {0x419bb, 0x0}, -- {0x419bc, 0x0}, -- {0x419bd, 0x0}, -- {0x419be, 0x0}, -- {0x419bf, 0x0}, -- {0x419c0, 0x0}, -- {0x419c1, 0x0}, -- {0x419c2, 0x0}, -- {0x419c3, 0x0}, -- {0x419c4, 0x0}, -- {0x419c5, 0x0}, -- {0x419c6, 0x1}, -- {0x419c7, 0x0}, -- {0x419c8, 0x0}, -- {0x419c9, 0x0}, -- {0x419ca, 0x0}, -- {0x419cb, 0x1b00}, -- {0x419cc, 0x0}, -- {0x419cd, 0x0}, -- {0x419ce, 0x0}, -- {0x419cf, 0x0}, -- {0x419d0, 0x0}, -- {0x419d1, 0x0}, -- {0x419d2, 0x0}, -- {0x419d3, 0x0}, -- {0x419d4, 0x802c}, -- {0x419d5, 0xd00}, -- {0x419d6, 0x1}, -- {0x419d7, 0x10}, -- {0x419d8, 0x9198}, -- {0x419d9, 0x803}, -- {0x419da, 0x0}, -- {0x419db, 0x10}, -- {0x419dc, 0x0}, -- {0x419dd, 0x0}, -- {0x419de, 0x0}, -- {0x419df, 0x0}, -- {0x419e0, 0x0}, -- {0x419e1, 0x0}, -- {0x419e2, 0x0}, -- {0x419e3, 0x0}, -- {0x419e4, 0x0}, -- {0x419e5, 0x0}, -- {0x419e6, 0x0}, -- {0x419e7, 0x0}, -- {0x419e8, 0x0}, -- {0x419e9, 0x0}, -- {0x419ea, 0x0}, -- {0x419eb, 0x0}, -- {0x419ec, 0x9218}, -- {0x419ed, 0x803}, -- {0x419ee, 0x0}, -- {0x419ef, 0x10}, -- {0x419f0, 0x0}, -- {0x419f1, 0x0}, -- {0x419f2, 0x0}, -- {0x419f3, 0x4b00}, -- {0x419f4, 0x0}, -- {0x419f5, 0x0}, -- {0x419f6, 0x0}, -- {0x419f7, 0x400}, -- {0x419f8, 0x0}, -- {0x419f9, 0x0}, -- {0x419fa, 0x0}, -- {0x419fb, 0x0}, -- {0x419fc, 0x807c}, -- {0x419fd, 0x0}, -- {0x419fe, 0x0}, -- {0x419ff, 0x10}, -- {0x41a00, 0x0}, -- {0x41a01, 0x0}, -- {0x41a02, 0x0}, -- {0x41a03, 0x0}, -- {0x41a04, 0x0}, -- {0x41a05, 0x0}, -- {0x41a06, 0x0}, -- {0x41a07, 0x0}, -- {0x41a08, 0x0}, -- {0x41a09, 0x0}, -- {0x41a0a, 0x1}, -- {0x41a0b, 0x0}, -- {0x41a0c, 0x0}, -- {0x41a0d, 0x0}, -- {0x41a0e, 0x0}, -- {0x41a0f, 0x0}, -- {0x41a10, 0x0}, -- {0x41a11, 0x0}, -- {0x41a12, 0x0}, -- {0x41a13, 0xb00}, -- {0x41a14, 0x0}, -- {0x41a15, 0x0}, -- {0x41a16, 0x0}, -- {0x41a17, 0x400}, -- {0x41a18, 0x0}, -- {0x41a19, 0x0}, -- {0x41a1a, 0x0}, -- {0x41a1b, 0x0}, -- {0x41a1c, 0x0}, -- {0x41a1d, 0x0}, -- {0x41a1e, 0x0}, -- {0x41a1f, 0x0}, -- {0x41a20, 0x401c}, -- {0x41a21, 0xd0}, -- {0x41a22, 0x1}, -- {0x41a23, 0x0}, -- {0x41a24, 0x4060}, -- {0x41a25, 0x84}, -- {0x41a26, 0x0}, -- {0x41a27, 0x0}, -- {0x41a28, 0x0}, -- {0x41a29, 0x0}, -- {0x41a2a, 0x0}, -- {0x41a2b, 0xb00}, -- {0x41a2c, 0x0}, -- {0x41a2d, 0x0}, -- {0x41a2e, 0x0}, -- {0x41a2f, 0x800}, -- {0x41a30, 0x407c}, -- {0x41a31, 0x0}, -- {0x41a32, 0x0}, -- {0x41a33, 0x0}, -- {0x41a34, 0x0}, -- {0x41a35, 0x0}, -- {0x41a36, 0x0}, -- {0x41a37, 0x0}, -- {0x41a38, 0x0}, -- {0x41a39, 0x0}, -- {0x41a3a, 0x0}, -- {0x41a3b, 0x0}, -- {0x41a3c, 0x4000}, -- {0x41a3d, 0x0}, -- {0x41a3e, 0x1}, -- {0x41a3f, 0x0}, -- {0x41a40, 0x0}, -- {0x41a41, 0x0}, -- {0x41a42, 0x0}, -- {0x41a43, 0x0}, -- {0x41a44, 0x402c}, -- {0x41a45, 0xd00}, -- {0x41a46, 0x1}, -- {0x41a47, 0x0}, -- {0x41a48, 0x4020}, -- {0x41a49, 0x803}, -- {0x41a4a, 0x0}, -- {0x41a4b, 0x0}, -- {0x41a4c, 0x0}, -- {0x41a4d, 0x0}, -- {0x41a4e, 0x0}, -- {0x41a4f, 0x0}, -- {0x41a50, 0x0}, -- {0x41a51, 0x0}, -- {0x41a52, 0x0}, -- {0x41a53, 0x2b00}, -- {0x41a54, 0x0}, -- {0x41a55, 0x0}, -- {0x41a56, 0x0}, -- {0x41a57, 0x800}, -- {0x41a58, 0x0}, -- {0x41a59, 0x0}, -- {0x41a5a, 0x0}, -- {0x41a5b, 0x0}, -- {0x41a5c, 0x407c}, -- {0x41a5d, 0x0}, -- {0x41a5e, 0x0}, -- {0x41a5f, 0x0}, -- {0x41a60, 0x0}, -- {0x41a61, 0x0}, -- {0x41a62, 0x0}, -- {0x41a63, 0x0}, -- {0x41a64, 0x0}, -- {0x41a65, 0x0}, -- {0x41a66, 0x0}, -- {0x41a67, 0x0}, -- {0x41a68, 0x0}, -- {0x41a69, 0x0}, -- {0x41a6a, 0x1}, -- {0x41a6b, 0x0}, -- {0x41a6c, 0x0}, -- {0x41a6d, 0x0}, -- {0x41a6e, 0x0}, -- {0x41a6f, 0x0}, -- {0x41a70, 0x801c}, -- {0x41a71, 0xd0}, -- {0x41a72, 0x1}, -- {0x41a73, 0x10}, -- {0x41a74, 0x8060}, -- {0x41a75, 0x84}, -- {0x41a76, 0x0}, -- {0x41a77, 0x10}, -- {0x41a78, 0x0}, -- {0x41a79, 0x0}, -- {0x41a7a, 0x0}, -- {0x41a7b, 0xb00}, -- {0x41a7c, 0x0}, -- {0x41a7d, 0x0}, -- {0x41a7e, 0x0}, -- {0x41a7f, 0x800}, -- {0x41a80, 0x807c}, -- {0x41a81, 0x0}, -- {0x41a82, 0x0}, -- {0x41a83, 0x10}, -- {0x41a84, 0x0}, -- {0x41a85, 0x0}, -- {0x41a86, 0x0}, -- {0x41a87, 0x0}, -- {0x41a88, 0x0}, -- {0x41a89, 0x0}, -- {0x41a8a, 0x0}, -- {0x41a8b, 0x0}, -- {0x41a8c, 0x8000}, -- {0x41a8d, 0x0}, -- {0x41a8e, 0x1}, -- {0x41a8f, 0x10}, -- {0x41a90, 0x0}, -- {0x41a91, 0x0}, -- {0x41a92, 0x0}, -- {0x41a93, 0x0}, -- {0x41a94, 0x802c}, -- {0x41a95, 0xd00}, -- {0x41a96, 0x1}, -- {0x41a97, 0x10}, -- {0x41a98, 0x8020}, -- {0x41a99, 0x803}, -- {0x41a9a, 0x0}, -- {0x41a9b, 0x10}, -- {0x41a9c, 0x0}, -- {0x41a9d, 0x0}, -- {0x41a9e, 0x0}, -- {0x41a9f, 0x0}, -- {0x41aa0, 0x0}, -- {0x41aa1, 0x0}, -- {0x41aa2, 0x0}, -- {0x41aa3, 0x2b00}, -- {0x41aa4, 0x0}, -- {0x41aa5, 0x0}, -- {0x41aa6, 0x0}, -- {0x41aa7, 0x800}, -- {0x41aa8, 0x0}, -- {0x41aa9, 0x0}, -- {0x41aaa, 0x0}, -- {0x41aab, 0x0}, -- {0x41aac, 0x807c}, -- {0x41aad, 0x0}, -- {0x41aae, 0x0}, -- {0x41aaf, 0x10}, -- {0x41ab0, 0x0}, -- {0x41ab1, 0x0}, -- {0x41ab2, 0x0}, -- {0x41ab3, 0x0}, -- {0x41ab4, 0x0}, -- {0x41ab5, 0x0}, -- {0x41ab6, 0x0}, -- {0x41ab7, 0x0}, -- {0x41ab8, 0x0}, -- {0x41ab9, 0x0}, -- {0x41aba, 0x1}, -- {0x41abb, 0x0}, -- {0x41abc, 0x0}, -- {0x41abd, 0x0}, -- {0x41abe, 0x0}, -- {0x41abf, 0x0}, -- {0x41ac0, 0x402c}, -- {0x41ac1, 0xd00}, -- {0x41ac2, 0x1}, -- {0x41ac3, 0x0}, -- {0x41ac4, 0x4050}, -- {0x41ac5, 0x803}, -- {0x41ac6, 0x0}, -- {0x41ac7, 0x0}, -- {0x41ac8, 0x0}, -- {0x41ac9, 0x0}, -- {0x41aca, 0x0}, -- {0x41acb, 0x0}, -- {0x41acc, 0x0}, -- {0x41acd, 0x0}, -- {0x41ace, 0x0}, -- {0x41acf, 0x0}, -- {0x41ad0, 0x0}, -- {0x41ad1, 0x0}, -- {0x41ad2, 0x0}, -- {0x41ad3, 0x0}, -- {0x41ad4, 0x0}, -- {0x41ad5, 0x0}, -- {0x41ad6, 0x0}, -- {0x41ad7, 0x0}, -- {0x41ad8, 0x4050}, -- {0x41ad9, 0x803}, -- {0x41ada, 0x0}, -- {0x41adb, 0x5a00}, -- {0x41adc, 0x0}, -- {0x41add, 0x0}, -- {0x41ade, 0x0}, -- {0x41adf, 0x0}, -- {0x41ae0, 0x0}, -- {0x41ae1, 0x0}, -- {0x41ae2, 0x0}, -- {0x41ae3, 0x100}, -- {0x41ae4, 0x0}, -- {0x41ae5, 0x0}, -- {0x41ae6, 0x0}, -- {0x41ae7, 0x0}, -- {0x41ae8, 0x4050}, -- {0x41ae9, 0x803}, -- {0x41aea, 0x0}, -- {0x41aeb, 0x0}, -- {0x41aec, 0x0}, -- {0x41aed, 0x0}, -- {0x41aee, 0x0}, -- {0x41aef, 0x0}, -- {0x41af0, 0x0}, -- {0x41af1, 0x0}, -- {0x41af2, 0x0}, -- {0x41af3, 0x4b00}, -- {0x41af4, 0x0}, -- {0x41af5, 0x0}, -- {0x41af6, 0x0}, -- {0x41af7, 0x400}, -- {0x41af8, 0x407c}, -- {0x41af9, 0x0}, -- {0x41afa, 0x0}, -- {0x41afb, 0x0}, -- {0x41afc, 0x0}, -- {0x41afd, 0x0}, -- {0x41afe, 0x0}, -- {0x41aff, 0x0}, -- {0x41b00, 0x0}, -- {0x41b01, 0x0}, -- {0x41b02, 0x0}, -- {0x41b03, 0x3b00}, -- {0x41b04, 0x0}, -- {0x41b05, 0x0}, -- {0x41b06, 0x0}, -- {0x41b07, 0x0}, -- {0x41b08, 0x0}, -- {0x41b09, 0x0}, -- {0x41b0a, 0x0}, -- {0x41b0b, 0x0}, -- {0x41b0c, 0x0}, -- {0x41b0d, 0x0}, -- {0x41b0e, 0x1}, -- {0x41b0f, 0x0}, -- {0x41b10, 0x5758}, -- {0x41b11, 0x0}, -- {0x41b12, 0x0}, -- {0x41b13, 0x0}, -- {0x41b14, 0x4208}, -- {0x41b15, 0x0}, -- {0x41b16, 0x0}, -- {0x41b17, 0x0}, -- {0x41b18, 0x0}, -- {0x41b19, 0x0}, -- {0x41b1a, 0x0}, -- {0x41b1b, 0x4b00}, -- {0x41b1c, 0x0}, -- {0x41b1d, 0x0}, -- {0x41b1e, 0x0}, -- {0x41b1f, 0x0}, -- {0x41b20, 0x0}, -- {0x41b21, 0x0}, -- {0x41b22, 0x0}, -- {0x41b23, 0x0}, -- {0x41b24, 0x401c}, -- {0x41b25, 0xd0}, -- {0x41b26, 0x1}, -- {0x41b27, 0x0}, -- {0x41b28, 0x4060}, -- {0x41b29, 0x84}, -- {0x41b2a, 0x0}, -- {0x41b2b, 0x0}, -- {0x41b2c, 0x0}, -- {0x41b2d, 0x0}, -- {0x41b2e, 0x0}, -- {0x41b2f, 0x0}, -- {0x41b30, 0x0}, -- {0x41b31, 0x0}, -- {0x41b32, 0x0}, -- {0x41b33, 0x7b00}, -- {0x41b34, 0x0}, -- {0x41b35, 0x0}, -- {0x41b36, 0x0}, -- {0x41b37, 0x0}, -- {0x41b38, 0x407c}, -- {0x41b39, 0x0}, -- {0x41b3a, 0x0}, -- {0x41b3b, 0x0}, -- {0x41b3c, 0x0}, -- {0x41b3d, 0x0}, -- {0x41b3e, 0x0}, -- {0x41b3f, 0x0}, -- {0x41b40, 0x0}, -- {0x41b41, 0x0}, -- {0x41b42, 0x0}, -- {0x41b43, 0x0}, -- {0x41b44, 0x4000}, -- {0x41b45, 0x0}, -- {0x41b46, 0x1}, -- {0x41b47, 0x0}, -- {0x41b48, 0x0}, -- {0x41b49, 0x0}, -- {0x41b4a, 0x0}, -- {0x41b4b, 0x0}, -- {0x41b4c, 0x402c}, -- {0x41b4d, 0xd00}, -- {0x41b4e, 0x1}, -- {0x41b4f, 0x0}, -- {0x41b50, 0x4020}, -- {0x41b51, 0x803}, -- {0x41b52, 0x0}, -- {0x41b53, 0x0}, -- {0x41b54, 0x0}, -- {0x41b55, 0x0}, -- {0x41b56, 0x0}, -- {0x41b57, 0x0}, -- {0x41b58, 0x0}, -- {0x41b59, 0x0}, -- {0x41b5a, 0x0}, -- {0x41b5b, 0x2b00}, -- {0x41b5c, 0x0}, -- {0x41b5d, 0x0}, -- {0x41b5e, 0x0}, -- {0x41b5f, 0x800}, -- {0x41b60, 0x0}, -- {0x41b61, 0x0}, -- {0x41b62, 0x0}, -- {0x41b63, 0x0}, -- {0x41b64, 0x407c}, -- {0x41b65, 0x0}, -- {0x41b66, 0x0}, -- {0x41b67, 0x0}, -- {0x41b68, 0x0}, -- {0x41b69, 0x0}, -- {0x41b6a, 0x0}, -- {0x41b6b, 0x0}, -- {0x41b6c, 0x0}, -- {0x41b6d, 0x0}, -- {0x41b6e, 0x0}, -- {0x41b6f, 0x0}, -- {0x41b70, 0x4000}, -- {0x41b71, 0x0}, -- {0x41b72, 0x1}, -- {0x41b73, 0x0}, -- {0x41b74, 0x0}, -- {0x41b75, 0x0}, -- {0x41b76, 0x0}, -- {0x41b77, 0x0}, -- {0x41b78, 0x5758}, -- {0x41b79, 0x0}, -- {0x41b7a, 0x0}, -- {0x41b7b, 0x0}, -- {0x41b7c, 0x4008}, -- {0x41b7d, 0x0}, -- {0x41b7e, 0x0}, -- {0x41b7f, 0x0}, -- {0x41b80, 0x0}, -- {0x41b81, 0x0}, -- {0x41b82, 0x0}, -- {0x41b83, 0x0}, -- {0x41b84, 0x0}, -- {0x41b85, 0x0}, -- {0x41b86, 0x0}, -- {0x41b87, 0x0}, -- {0x41b88, 0x802c}, -- {0x41b89, 0xd00}, -- {0x41b8a, 0x1}, -- {0x41b8b, 0x10}, -- {0x41b8c, 0x8050}, -- {0x41b8d, 0x803}, -- {0x41b8e, 0x0}, -- {0x41b8f, 0x10}, -- {0x41b90, 0x0}, -- {0x41b91, 0x0}, -- {0x41b92, 0x0}, -- {0x41b93, 0x0}, -- {0x41b94, 0x0}, -- {0x41b95, 0x0}, -- {0x41b96, 0x0}, -- {0x41b97, 0x0}, -- {0x41b98, 0x0}, -- {0x41b99, 0x0}, -- {0x41b9a, 0x0}, -- {0x41b9b, 0x0}, -- {0x41b9c, 0x0}, -- {0x41b9d, 0x0}, -- {0x41b9e, 0x0}, -- {0x41b9f, 0x0}, -- {0x41ba0, 0x8050}, -- {0x41ba1, 0x803}, -- {0x41ba2, 0x0}, -- {0x41ba3, 0x5a10}, -- {0x41ba4, 0x0}, -- {0x41ba5, 0x0}, -- {0x41ba6, 0x0}, -- {0x41ba7, 0x0}, -- {0x41ba8, 0x0}, -- {0x41ba9, 0x0}, -- {0x41baa, 0x0}, -- {0x41bab, 0x100}, -- {0x41bac, 0x0}, -- {0x41bad, 0x0}, -- {0x41bae, 0x0}, -- {0x41baf, 0x0}, -- {0x41bb0, 0x8050}, -- {0x41bb1, 0x803}, -- {0x41bb2, 0x0}, -- {0x41bb3, 0x10}, -- {0x41bb4, 0x0}, -- {0x41bb5, 0x0}, -- {0x41bb6, 0x0}, -- {0x41bb7, 0x0}, -- {0x41bb8, 0x0}, -- {0x41bb9, 0x0}, -- {0x41bba, 0x0}, -- {0x41bbb, 0x4b00}, -- {0x41bbc, 0x0}, -- {0x41bbd, 0x0}, -- {0x41bbe, 0x0}, -- {0x41bbf, 0x400}, -- {0x41bc0, 0x807c}, -- {0x41bc1, 0x0}, -- {0x41bc2, 0x0}, -- {0x41bc3, 0x10}, -- {0x41bc4, 0x0}, -- {0x41bc5, 0x0}, -- {0x41bc6, 0x0}, -- {0x41bc7, 0x0}, -- {0x41bc8, 0x0}, -- {0x41bc9, 0x0}, -- {0x41bca, 0x0}, -- {0x41bcb, 0x3b00}, -- {0x41bcc, 0x0}, -- {0x41bcd, 0x0}, -- {0x41bce, 0x0}, -- {0x41bcf, 0x0}, -- {0x41bd0, 0x0}, -- {0x41bd1, 0x0}, -- {0x41bd2, 0x0}, -- {0x41bd3, 0x0}, -- {0x41bd4, 0x0}, -- {0x41bd5, 0x0}, -- {0x41bd6, 0x1}, -- {0x41bd7, 0x0}, -- {0x41bd8, 0x9758}, -- {0x41bd9, 0x0}, -- {0x41bda, 0x0}, -- {0x41bdb, 0x10}, -- {0x41bdc, 0x8208}, -- {0x41bdd, 0x0}, -- {0x41bde, 0x0}, -- {0x41bdf, 0x10}, -- {0x41be0, 0x0}, -- {0x41be1, 0x0}, -- {0x41be2, 0x0}, -- {0x41be3, 0x4b00}, -- {0x41be4, 0x0}, -- {0x41be5, 0x0}, -- {0x41be6, 0x0}, -- {0x41be7, 0x0}, -- {0x41be8, 0x0}, -- {0x41be9, 0x0}, -- {0x41bea, 0x0}, -- {0x41beb, 0x0}, -- {0x41bec, 0x801c}, -- {0x41bed, 0xd0}, -- {0x41bee, 0x1}, -- {0x41bef, 0x10}, -- {0x41bf0, 0x8060}, -- {0x41bf1, 0x84}, -- {0x41bf2, 0x0}, -- {0x41bf3, 0x10}, -- {0x41bf4, 0x0}, -- {0x41bf5, 0x0}, -- {0x41bf6, 0x0}, -- {0x41bf7, 0x0}, -- {0x41bf8, 0x0}, -- {0x41bf9, 0x0}, -- {0x41bfa, 0x0}, -- {0x41bfb, 0x7b00}, -- {0x41bfc, 0x0}, -- {0x41bfd, 0x0}, -- {0x41bfe, 0x0}, -- {0x41bff, 0x0}, -- {0x41c00, 0x807c}, -- {0x41c01, 0x0}, -- {0x41c02, 0x0}, -- {0x41c03, 0x10}, -- {0x41c04, 0x0}, -- {0x41c05, 0x0}, -- {0x41c06, 0x0}, -- {0x41c07, 0x0}, -- {0x41c08, 0x0}, -- {0x41c09, 0x0}, -- {0x41c0a, 0x0}, -- {0x41c0b, 0x0}, -- {0x41c0c, 0x8000}, -- {0x41c0d, 0x0}, -- {0x41c0e, 0x1}, -- {0x41c0f, 0x10}, -- {0x41c10, 0x0}, -- {0x41c11, 0x0}, -- {0x41c12, 0x0}, -- {0x41c13, 0x0}, -- {0x41c14, 0x802c}, -- {0x41c15, 0xd00}, -- {0x41c16, 0x1}, -- {0x41c17, 0x10}, -- {0x41c18, 0x8020}, -- {0x41c19, 0x803}, -- {0x41c1a, 0x0}, -- {0x41c1b, 0x10}, -- {0x41c1c, 0x0}, -- {0x41c1d, 0x0}, -- {0x41c1e, 0x0}, -- {0x41c1f, 0x0}, -- {0x41c20, 0x0}, -- {0x41c21, 0x0}, -- {0x41c22, 0x0}, -- {0x41c23, 0x2b00}, -- {0x41c24, 0x0}, -- {0x41c25, 0x0}, -- {0x41c26, 0x0}, -- {0x41c27, 0x800}, -- {0x41c28, 0x0}, -- {0x41c29, 0x0}, -- {0x41c2a, 0x0}, -- {0x41c2b, 0x0}, -- {0x41c2c, 0x807c}, -- {0x41c2d, 0x0}, -- {0x41c2e, 0x0}, -- {0x41c2f, 0x10}, -- {0x41c30, 0x0}, -- {0x41c31, 0x0}, -- {0x41c32, 0x0}, -- {0x41c33, 0x0}, -- {0x41c34, 0x0}, -- {0x41c35, 0x0}, -- {0x41c36, 0x0}, -- {0x41c37, 0x0}, -- {0x41c38, 0x8000}, -- {0x41c39, 0x0}, -- {0x41c3a, 0x1}, -- {0x41c3b, 0x10}, -- {0x41c3c, 0x0}, -- {0x41c3d, 0x0}, -- {0x41c3e, 0x0}, -- {0x41c3f, 0x0}, -- {0x41c40, 0x9758}, -- {0x41c41, 0x0}, -- {0x41c42, 0x0}, -- {0x41c43, 0x10}, -- {0x41c44, 0x8008}, -- {0x41c45, 0x0}, -- {0x41c46, 0x0}, -- {0x41c47, 0x10}, -- {0x41c48, 0x0}, -- {0x41c49, 0x0}, -- {0x41c4a, 0x0}, -- {0x41c4b, 0x0}, -- {0x41c4c, 0x0}, -- {0x41c4d, 0x0}, -- {0x41c4e, 0x0}, -- {0x41c4f, 0x0}, -- {0x41c50, 0xc068}, -- {0x41c51, 0x0}, -- {0x41c52, 0x0}, -- {0x41c53, 0x10}, -- {0x41c54, 0x0}, -- {0x41c55, 0x0}, -- {0x41c56, 0x0}, -- {0x41c57, 0x0}, -- {0x9002e, 0x10}, -- {0x9002f, 0x400}, -- {0x90030, 0x80e}, -- {0x90031, 0xb}, -- {0x90032, 0x480}, -- {0x90033, 0x809}, -- {0x90034, 0x9}, -- {0x90035, 0x308}, -- {0x90036, 0xc09}, -- {0x90037, 0x28}, -- {0x90038, 0x8160}, -- {0x90039, 0x87c}, -- {0x9003a, 0x98}, -- {0x9003b, 0x820}, -- {0x9003c, 0xc7e}, -- {0x9003d, 0x2}, -- {0x9003e, 0x1}, -- {0x9003f, 0x78}, -- {0x90040, 0xa}, -- {0x90041, 0x370}, -- {0x90042, 0x839}, -- {0x90043, 0x18}, -- {0x90044, 0x8160}, -- {0x90045, 0x83c}, -- {0x90046, 0x9}, -- {0x90047, 0x150}, -- {0x90048, 0x839}, -- {0x90049, 0x70}, -- {0x9004a, 0x392}, -- {0x9004b, 0x39}, -- {0x9004c, 0x78}, -- {0x9004d, 0x39a}, -- {0x9004e, 0x39}, -- {0x9004f, 0xe09}, -- {0x90050, 0x100}, -- {0x90051, 0x839}, -- {0x90052, 0x2}, -- {0x90053, 0x1}, -- {0x90054, 0x38}, -- {0x90055, 0x0}, -- {0x90056, 0x100}, -- {0x90057, 0x839}, -- {0x90058, 0x0}, -- {0x90059, 0x398}, -- {0x9005a, 0x839}, -- {0x9005b, 0xe19}, -- {0x9005c, 0x100}, -- {0x9005d, 0x839}, -- {0x9005e, 0x2}, -- {0x9005f, 0x1}, -- {0x90060, 0x38}, -- {0x90061, 0x0}, -- {0x90062, 0x100}, -- {0x90063, 0x839}, -- {0x90064, 0x0}, -- {0x90065, 0x390}, -- {0x90066, 0x839}, -- {0x90067, 0x78}, -- {0x90068, 0x39a}, -- {0x90069, 0x39}, -- {0x9006a, 0xe29}, -- {0x9006b, 0x100}, -- {0x9006c, 0x839}, -- {0x9006d, 0x2}, -- {0x9006e, 0x1}, -- {0x9006f, 0x38}, -- {0x90070, 0x0}, -- {0x90071, 0x100}, -- {0x90072, 0x839}, -- {0x90073, 0x70}, -- {0x90074, 0x392}, -- {0x90075, 0x39}, -- {0x90076, 0x0}, -- {0x90077, 0xf0}, -- {0x90078, 0x909}, -- {0x90079, 0x18}, -- {0x9007a, 0x8160}, -- {0x9007b, 0x8bc}, -- {0x9007c, 0x8}, -- {0x9007d, 0x13a}, -- {0x9007e, 0xb9}, -- {0x9007f, 0x24b}, -- {0x90080, 0x100}, -- {0x90081, 0x8b9}, -- {0x90082, 0x2}, -- {0x90083, 0x1}, -- {0x90084, 0xb8}, -- {0x90085, 0x0}, -- {0x90086, 0x100}, -- {0x90087, 0x8b9}, -- {0x90088, 0x20}, -- {0x90089, 0x4}, -- {0x9008a, 0xb8}, -- {0x9008b, 0x20}, -- {0x9008c, 0x4}, -- {0x9008d, 0xb8}, -- {0x9008e, 0x5}, -- {0x9008f, 0x0}, -- {0x90090, 0xb8}, -- {0x90091, 0x479}, -- {0x90092, 0xc7f8}, -- {0x90093, 0x8bc}, -- {0x90094, 0x0}, -- {0x90095, 0x0}, -- {0x90096, 0xb8}, -- {0x90097, 0x0}, -- {0x90098, 0xa8}, -- {0x90099, 0x8b9}, -- {0x9009a, 0x9}, -- {0x9009b, 0xc9c0}, -- {0x9009c, 0xcbc}, -- {0x9009d, 0x0}, -- {0x9009e, 0x0}, -- {0x9009f, 0xb8}, -- {0x900a0, 0x25b}, -- {0x900a1, 0x100}, -- {0x900a2, 0xcb9}, -- {0x900a3, 0x20}, -- {0x900a4, 0x4}, -- {0x900a5, 0xb8}, -- {0x900a6, 0x20}, -- {0x900a7, 0x4}, -- {0x900a8, 0xb8}, -- {0x900a9, 0x20}, -- {0x900aa, 0x4}, -- {0x900ab, 0xb8}, -- {0x900ac, 0x20}, -- {0x900ad, 0x4}, -- {0x900ae, 0xb8}, -- {0x900af, 0x10}, -- {0x900b0, 0x400}, -- {0x900b1, 0x89e}, -- {0x900b2, 0x8}, -- {0x900b3, 0x370}, -- {0x900b4, 0x839}, -- {0x900b5, 0x0}, -- {0x900b6, 0xf0}, -- {0x900b7, 0x909}, -- {0x900b8, 0x33b}, -- {0x900b9, 0x100}, -- {0x900ba, 0x8b9}, -- {0x900bb, 0x0}, -- {0x900bc, 0x100}, -- {0x900bd, 0x8b9}, -- {0x900be, 0x23b}, -- {0x900bf, 0x100}, -- {0x900c0, 0xc99}, -- {0x900c1, 0x2}, -- {0x900c2, 0x150}, -- {0x900c3, 0x839}, -- {0x900c4, 0x1800}, -- {0x900c5, 0x8660}, -- {0x900c6, 0x839}, -- {0x900c7, 0x0}, -- {0x900c8, 0x2a0}, -- {0x900c9, 0x809}, -- {0x900ca, 0x8}, -- {0x900cb, 0x1880}, -- {0x900cc, 0x839}, -- {0x900cd, 0x0}, -- {0x900ce, 0x82b0}, -- {0x900cf, 0x838}, -- {0x900d0, 0x18}, -- {0x900d1, 0xe0}, -- {0x900d2, 0x809}, -- {0x900d3, 0x0}, -- {0x900d4, 0xe0}, -- {0x900d5, 0x869}, -- {0x900d6, 0xf}, -- {0x900d7, 0x7c0}, -- {0x900d8, 0x839}, -- {0x900d9, 0xa}, -- {0x900da, 0x510}, -- {0x900db, 0x839}, -- {0x900dc, 0xa}, -- {0x900dd, 0x700}, -- {0x900de, 0x849}, -- {0x900df, 0xa}, -- {0x900e0, 0x700}, -- {0x900e1, 0x859}, -- {0x900e2, 0xa}, -- {0x900e3, 0x708}, -- {0x900e4, 0x859}, -- {0x900e5, 0x2}, -- {0x900e6, 0x708}, -- {0x900e7, 0x849}, -- {0x900e8, 0xff8}, -- {0x900e9, 0x8410}, -- {0x900ea, 0x839}, -- {0x900eb, 0x7ff8}, -- {0x900ec, 0x8498}, -- {0x900ed, 0x838}, -- {0x900ee, 0x10}, -- {0x900ef, 0x8160}, -- {0x900f0, 0x83c}, -- {0x900f1, 0x0}, -- {0x900f2, 0x7c8}, -- {0x900f3, 0x809}, -- {0x900f4, 0x0}, -- {0x900f5, 0x1}, -- {0x900f6, 0x8}, -- {0x900f7, 0x0}, -- {0x900f8, 0x45a}, -- {0x900f9, 0x89}, -- {0x900fa, 0x0}, -- {0x900fb, 0x8018}, -- {0x900fc, 0x808}, -- {0x900fd, 0x0}, -- {0x900fe, 0x8020}, -- {0x900ff, 0x808}, -- {0x90100, 0x479}, -- {0x90101, 0xc7f8}, -- {0x90102, 0x80c}, -- {0x90103, 0x0}, -- {0x90104, 0x0}, -- {0x90105, 0x8}, -- {0x90106, 0x0}, -- {0x90107, 0x8018}, -- {0x90108, 0x808}, -- {0x90109, 0x0}, -- {0x9010a, 0x8020}, -- {0x9010b, 0x808}, -- {0x9010c, 0x9}, -- {0x9010d, 0xc9c0}, -- {0x9010e, 0xc0c}, -- {0x9010f, 0x0}, -- {0x90110, 0xa8}, -- {0x90111, 0x8c9}, -- {0x90112, 0x29}, -- {0x90113, 0x8160}, -- {0x90114, 0x87c}, -- {0x90115, 0xb8}, -- {0x90116, 0x820}, -- {0x90117, 0xc7e}, -- {0x90118, 0x1}, -- {0x90119, 0x0}, -- {0x9011a, 0x78}, -- {0x9011b, 0x0}, -- {0x9011c, 0x1}, -- {0x9011d, 0x78}, -- {0x9011e, 0xd8}, -- {0x9011f, 0x820}, -- {0x90120, 0xc7e}, -- {0x90121, 0x1}, -- {0x90122, 0x0}, -- {0x90123, 0x78}, -- {0x90124, 0x0}, -- {0x90125, 0x1}, -- {0x90126, 0x78}, -- {0x90127, 0xf8}, -- {0x90128, 0x820}, -- {0x90129, 0xc7e}, -- {0x9012a, 0x1}, -- {0x9012b, 0x0}, -- {0x9012c, 0x78}, -- {0x9012d, 0x0}, -- {0x9012e, 0x1}, -- {0x9012f, 0x78}, -- {0x90130, 0x0}, -- {0x90131, 0x700}, -- {0x90132, 0x849}, -- {0x90133, 0x0}, -- {0x90134, 0x618}, -- {0x90135, 0x809}, -- {0x90136, 0x3ff8}, -- {0x90137, 0x84b8}, -- {0x90138, 0x808}, -- {0x90139, 0x0}, -- {0x9013a, 0x0}, -- {0x9013b, 0x8}, -- {0x9013c, 0x8}, -- {0x9013d, 0xc870}, -- {0x9013e, 0xc0c}, -- {0x9013f, 0x18}, -- {0x90140, 0x710}, -- {0x90141, 0x849}, -- {0x90142, 0x0}, -- {0x90143, 0x4}, -- {0x90144, 0x48}, -- {0x90145, 0x0}, -- {0x90146, 0x4}, -- {0x90147, 0x48}, -- {0x90148, 0x10}, -- {0x90149, 0x710}, -- {0x9014a, 0x849}, -- {0x9014b, 0x0}, -- {0x9014c, 0x4}, -- {0x9014d, 0x48}, -- {0x9014e, 0x0}, -- {0x9014f, 0x710}, -- {0x90150, 0x849}, -- {0x90151, 0x0}, -- {0x90152, 0x4}, -- {0x90153, 0x48}, -- {0x90154, 0x0}, -- {0x90155, 0x4}, -- {0x90156, 0x18}, -- {0x90157, 0x0}, -- {0x90158, 0x4}, -- {0x90159, 0x18}, -- {0x9015a, 0x0}, -- {0x9015b, 0x4}, -- {0x9015c, 0x18}, -- {0x9015d, 0x0}, -- {0x9015e, 0x8410}, -- {0x9015f, 0x809}, -- {0x90160, 0x0}, -- {0x90161, 0x8498}, -- {0x90162, 0x808}, -- {0x90163, 0x5}, -- {0x90164, 0x510}, -- {0x90165, 0x809}, -- {0x90166, 0x198}, -- {0x90167, 0x1000}, -- {0x90168, 0x809}, -- {0x90169, 0x9}, -- {0x9016a, 0x3c0}, -- {0x9016b, 0x809}, -- {0x9016c, 0x10}, -- {0x9016d, 0x510}, -- {0x9016e, 0x809}, -- {0x9016f, 0x0}, -- {0x90170, 0x3c0}, -- {0x90171, 0x809}, -- {0x90172, 0x18}, -- {0x90173, 0x4}, -- {0x90174, 0x8}, -- {0x90175, 0x2}, -- {0x90176, 0x510}, -- {0x90177, 0x809}, -- {0x90178, 0x2}, -- {0x90179, 0x1000}, -- {0x9017a, 0x809}, -- {0x9017b, 0x68}, -- {0x9017c, 0x801a}, -- {0x9017d, 0x8}, -- {0x9017e, 0x68}, -- {0x9017f, 0x8022}, -- {0x90180, 0x8}, -- {0x90181, 0x479}, -- {0x90182, 0xc7f8}, -- {0x90183, 0x80c}, -- {0x90184, 0x0}, -- {0x90185, 0x0}, -- {0x90186, 0x8}, -- {0x90187, 0x68}, -- {0x90188, 0x801a}, -- {0x90189, 0x8}, -- {0x9018a, 0x68}, -- {0x9018b, 0x8022}, -- {0x9018c, 0x8}, -- {0x9018d, 0x9}, -- {0x9018e, 0xc9c0}, -- {0x9018f, 0xc0c}, -- {0x90190, 0x0}, -- {0x90191, 0xc870}, -- {0x90192, 0xc0c}, -- {0x90193, 0x0}, -- {0x90194, 0x2a0}, -- {0x90195, 0x809}, -- {0x90196, 0x10}, -- {0x90197, 0x8160}, -- {0x90198, 0x89c}, -- {0x90199, 0x2}, -- {0x9019a, 0x7c8}, -- {0x9019b, 0x809}, -- {0x9019c, 0x0}, -- {0x9019d, 0x1}, -- {0x9019e, 0x8}, -- {0x9019f, 0x40}, -- {0x901a0, 0x1932}, -- {0x901a1, 0x129}, -- {0x901a2, 0xa}, -- {0x901a3, 0xc140}, -- {0x901a4, 0x80c}, -- {0x901a5, 0x98}, -- {0x901a6, 0x193a}, -- {0x901a7, 0x129}, -- {0x901a8, 0x90}, -- {0x901a9, 0x1932}, -- {0x901aa, 0x329}, -- {0x901ab, 0x90}, -- {0x901ac, 0x193a}, -- {0x901ad, 0x329}, -- {0x901ae, 0x88}, -- {0x901af, 0x1882}, -- {0x901b0, 0x9}, -- {0x901b1, 0x0}, -- {0x901b2, 0xc140}, -- {0x901b3, 0x80c}, -- {0x901b4, 0x10}, -- {0x901b5, 0x400}, -- {0x901b6, 0x80e}, -- {0x901b7, 0xb}, -- {0x901b8, 0x370}, -- {0x901b9, 0x809}, -- {0x901ba, 0x23b}, -- {0x901bb, 0x100}, -- {0x901bc, 0xcf9}, -- {0x901bd, 0x0}, -- {0x901be, 0x2a0}, -- {0x901bf, 0x809}, -- {0x901c0, 0x7800}, -- {0x901c1, 0x8660}, -- {0x901c2, 0x809}, -- {0x901c3, 0xd}, -- {0x901c4, 0x7c0}, -- {0x901c5, 0x809}, -- {0x901c6, 0x0}, -- {0x901c7, 0x82b0}, -- {0x901c8, 0x818}, -- {0x901c9, 0x0}, -- {0x901ca, 0x82b0}, -- {0x901cb, 0x868}, -- {0x901cc, 0x479}, -- {0x901cd, 0xc7f8}, -- {0x901ce, 0x91c}, -- {0x901cf, 0x0}, -- {0x901d0, 0x0}, -- {0x901d1, 0x118}, -- {0x901d2, 0x38}, -- {0x901d3, 0x80a2}, -- {0x901d4, 0x118}, -- {0x901d5, 0x9}, -- {0x901d6, 0xc9c0}, -- {0x901d7, 0xd1c}, -- {0x901d8, 0x0}, -- {0x901d9, 0x0}, -- {0x901da, 0x118}, -- {0x901db, 0x8}, -- {0x901dc, 0x508}, -- {0x901dd, 0x809}, -- {0x901de, 0x5}, -- {0x901df, 0x7c0}, -- {0x901e0, 0x809}, -- {0x901e1, 0x8}, -- {0x901e2, 0x82b0}, -- {0x901e3, 0x868}, -- {0x901e4, 0x8}, -- {0x901e5, 0x82b0}, -- {0x901e6, 0x818}, -- {0x901e7, 0x8}, -- {0x901e8, 0x82b0}, -- {0x901e9, 0x888}, -- {0x901ea, 0x10}, -- {0x901eb, 0x510}, -- {0x901ec, 0x809}, -- {0x901ed, 0x0}, -- {0x901ee, 0xa8}, -- {0x901ef, 0x8c9}, -- {0x901f0, 0x8}, -- {0x901f1, 0x1900}, -- {0x901f2, 0xc09}, -- {0x901f3, 0x0}, -- {0x901f4, 0x508}, -- {0x901f5, 0x809}, -- {0x901f6, 0x2}, -- {0x901f7, 0x7c8}, -- {0x901f8, 0x829}, -- {0x901f9, 0xa}, -- {0x901fa, 0x3c8}, -- {0x901fb, 0xc29}, -- {0x901fc, 0x199}, -- {0x901fd, 0x3d0}, -- {0x901fe, 0xc19}, -- {0x901ff, 0x3}, -- {0x90200, 0x0}, -- {0x90201, 0x18}, -- {0x90202, 0x38}, -- {0x90203, 0x4}, -- {0x90204, 0x18}, -- {0x90205, 0x199}, -- {0x90206, 0x3d0}, -- {0x90207, 0xc09}, -- {0x90208, 0x0}, -- {0x90209, 0x0}, -- {0x9020a, 0x8}, -- {0x9020b, 0x9}, -- {0x9020c, 0x150}, -- {0x9020d, 0x809}, -- {0x9020e, 0x9}, -- {0x9020f, 0xc800}, -- {0x90210, 0xc0c}, -- {0x90211, 0x18}, -- {0x90212, 0x8160}, -- {0x90213, 0x8cc}, -- {0x90214, 0x8}, -- {0x90215, 0x13a}, -- {0x90216, 0xc9}, -- {0x90217, 0x24b}, -- {0x90218, 0x100}, -- {0x90219, 0x8c9}, -- {0x9021a, 0x2}, -- {0x9021b, 0x1}, -- {0x9021c, 0xc8}, -- {0x9021d, 0x0}, -- {0x9021e, 0x100}, -- {0x9021f, 0x8c9}, -- {0x90220, 0x20}, -- {0x90221, 0x4}, -- {0x90222, 0xc8}, -- {0x90223, 0x20}, -- {0x90224, 0x4}, -- {0x90225, 0xc8}, -- {0x90226, 0x5}, -- {0x90227, 0x0}, -- {0x90228, 0xc8}, -- {0x90229, 0x479}, -- {0x9022a, 0xc7f8}, -- {0x9022b, 0x8cc}, -- {0x9022c, 0x0}, -- {0x9022d, 0x0}, -- {0x9022e, 0xc8}, -- {0x9022f, 0x30}, -- {0x90230, 0xaa}, -- {0x90231, 0xc9}, -- {0x90232, 0x9}, -- {0x90233, 0xc9c0}, -- {0x90234, 0xccc}, -- {0x90235, 0x0}, -- {0x90236, 0x0}, -- {0x90237, 0xc8}, -- {0x90238, 0x479}, -- {0x90239, 0xc7f8}, -- {0x9023a, 0x8bc}, -- {0x9023b, 0x0}, -- {0x9023c, 0x0}, -- {0x9023d, 0xb8}, -- {0x9023e, 0x30}, -- {0x9023f, 0xaa}, -- {0x90240, 0xb9}, -- {0x90241, 0x9}, -- {0x90242, 0xc9c0}, -- {0x90243, 0xcbc}, -- {0x90244, 0x0}, -- {0x90245, 0x0}, -- {0x90246, 0xb8}, -- {0x90247, 0x25b}, -- {0x90248, 0x100}, -- {0x90249, 0xcc9}, -- {0x9024a, 0x20}, -- {0x9024b, 0x4}, -- {0x9024c, 0xc8}, -- {0x9024d, 0x20}, -- {0x9024e, 0x4}, -- {0x9024f, 0xc8}, -- {0x90250, 0x20}, -- {0x90251, 0x4}, -- {0x90252, 0xa8}, -- {0x90253, 0x4}, -- {0x90254, 0x0}, -- {0x90255, 0xc8}, -- {0x90256, 0x9}, -- {0x90257, 0xc800}, -- {0x90258, 0xc6c}, -- {0x90259, 0x26f}, -- {0x9025a, 0x100}, -- {0x9025b, 0xc19}, -- {0x9025c, 0x8}, -- {0x9025d, 0x4}, -- {0x9025e, 0x18}, -- {0x9025f, 0x27f}, -- {0x90260, 0x100}, -- {0x90261, 0xc19}, -- {0x90262, 0x479}, -- {0x90263, 0xc7f8}, -- {0x90264, 0x80c}, -- {0x90265, 0x0}, -- {0x90266, 0x0}, -- {0x90267, 0x8}, -- {0x90268, 0x58}, -- {0x90269, 0x8a}, -- {0x9026a, 0x9}, -- {0x9026b, 0x9}, -- {0x9026c, 0xc9c0}, -- {0x9026d, 0xc0c}, -- {0x9026e, 0x0}, -- {0x9026f, 0x0}, -- {0x90270, 0x8}, -- {0x90271, 0x18}, -- {0x90272, 0x8160}, -- {0x90273, 0x86c}, -- {0x90274, 0x1008}, -- {0x90275, 0x853b}, -- {0x90276, 0x868}, -- {0x90277, 0xc00}, -- {0x90278, 0x8588}, -- {0x90279, 0x868}, -- {0x9027a, 0x8}, -- {0x9027b, 0x85a8}, -- {0x9027c, 0x868}, -- {0x9027d, 0x8}, -- {0x9027e, 0x85c8}, -- {0x9027f, 0x868}, -- {0x90280, 0x0}, -- {0x90281, 0x8050}, -- {0x90282, 0x868}, -- {0x90283, 0x60}, -- {0x90284, 0x138}, -- {0x90285, 0x869}, -- {0x90286, 0x18}, -- {0x90287, 0x8510}, -- {0x90288, 0x868}, -- {0x90289, 0x18}, -- {0x9028a, 0x2c8}, -- {0x9028b, 0x869}, -- {0x9028c, 0x10}, -- {0x9028d, 0x8520}, -- {0x9028e, 0x868}, -- {0x9028f, 0x1ff8}, -- {0x90290, 0x85d8}, -- {0x90291, 0xc68}, -- {0x90292, 0x0}, -- {0x90293, 0xfdf0}, -- {0x90294, 0x868}, -- {0x90295, 0x8}, -- {0x90296, 0x85f0}, -- {0x90297, 0x868}, -- {0x90298, 0x8}, -- {0x90299, 0xa5f0}, -- {0x9029a, 0x868}, -- {0x9029b, 0x298}, -- {0x9029c, 0x100}, -- {0x9029d, 0x869}, -- {0x9029e, 0x2}, -- {0x9029f, 0x1}, -- {0x902a0, 0x68}, -- {0x902a1, 0x0}, -- {0x902a2, 0x100}, -- {0x902a3, 0x869}, -- {0x902a4, 0x0}, -- {0x902a5, 0x85f0}, -- {0x902a6, 0x868}, -- {0x902a7, 0x0}, -- {0x902a8, 0xa5f0}, -- {0x902a9, 0x868}, -- {0x902aa, 0x33b}, -- {0x902ab, 0x100}, -- {0x902ac, 0x8c9}, -- {0x902ad, 0x0}, -- {0x902ae, 0x100}, -- {0x902af, 0x8c9}, -- {0x902b0, 0x1ff8}, -- {0x902b1, 0x85d8}, -- {0x902b2, 0xc68}, -- {0x902b3, 0x8}, -- {0x902b4, 0x8df0}, -- {0x902b5, 0x868}, -- {0x902b6, 0x8}, -- {0x902b7, 0xadf0}, -- {0x902b8, 0x868}, -- {0x902b9, 0x2a8}, -- {0x902ba, 0x100}, -- {0x902bb, 0x869}, -- {0x902bc, 0x2}, -- {0x902bd, 0x1}, -- {0x902be, 0x68}, -- {0x902bf, 0x0}, -- {0x902c0, 0x100}, -- {0x902c1, 0x869}, -- {0x902c2, 0x0}, -- {0x902c3, 0x8df0}, -- {0x902c4, 0x868}, -- {0x902c5, 0x0}, -- {0x902c6, 0xadf0}, -- {0x902c7, 0x868}, -- {0x902c8, 0x10}, -- {0x902c9, 0x2c8}, -- {0x902ca, 0x869}, -- {0x902cb, 0x28}, -- {0x902cc, 0x4}, -- {0x902cd, 0x68}, -- {0x902ce, 0xa}, -- {0x902cf, 0x500}, -- {0x902d0, 0xc69}, -- {0x902d1, 0x0}, -- {0x902d2, 0x8520}, -- {0x902d3, 0x868}, -- {0x902d4, 0x8}, -- {0x902d5, 0x8530}, -- {0x902d6, 0x868}, -- {0x902d7, 0x2ba}, -- {0x902d8, 0x100}, -- {0x902d9, 0x869}, -- {0x902da, 0x2}, -- {0x902db, 0x1}, -- {0x902dc, 0x68}, -- {0x902dd, 0x2}, -- {0x902de, 0x100}, -- {0x902df, 0x869}, -- {0x902e0, 0x0}, -- {0x902e1, 0x8530}, -- {0x902e2, 0x868}, -- {0x902e3, 0x0}, -- {0x902e4, 0x8510}, -- {0x902e5, 0x868}, -- {0x902e6, 0x0}, -- {0x902e7, 0x2c8}, -- {0x902e8, 0x869}, -- {0x902e9, 0x8}, -- {0x902ea, 0x8050}, -- {0x902eb, 0x868}, -- {0x902ec, 0x30}, -- {0x902ed, 0x4}, -- {0x902ee, 0x68}, -- {0x902ef, 0x8}, -- {0x902f0, 0x8520}, -- {0x902f1, 0x868}, -- {0x902f2, 0x0}, -- {0x902f3, 0x8328}, -- {0x902f4, 0x86b}, -- {0x902f5, 0x2ca}, -- {0x902f6, 0x100}, -- {0x902f7, 0x869}, -- {0x902f8, 0x2}, -- {0x902f9, 0x1}, -- {0x902fa, 0x68}, -- {0x902fb, 0x4}, -- {0x902fc, 0x100}, -- {0x902fd, 0x869}, -- {0x902fe, 0xff8}, -- {0x902ff, 0x8328}, -- {0x90300, 0x86b}, -- {0x90301, 0x9}, -- {0x90302, 0x500}, -- {0x90303, 0xc29}, -- {0x90304, 0x0}, -- {0x90305, 0x8520}, -- {0x90306, 0x868}, -- {0x90307, 0x8}, -- {0x90308, 0x3c8}, -- {0x90309, 0xc29}, -- {0x9030a, 0x0}, -- {0x9030b, 0x150}, -- {0x9030c, 0x809}, -- {0x9030d, 0x2}, -- {0x9030e, 0x370}, -- {0x9030f, 0x809}, -- {0x90310, 0x0}, -- {0x90311, 0x400}, -- {0x90312, 0x80e}, -- {0x90313, 0x10}, -- {0x90314, 0x4}, -- {0x90315, 0x118}, -- {0x90316, 0x20}, -- {0x90317, 0x82b0}, -- {0x90318, 0x808}, -- {0x90319, 0x479}, -- {0x9031a, 0xc7f8}, -- {0x9031b, 0x80c}, -- {0x9031c, 0x0}, -- {0x9031d, 0x0}, -- {0x9031e, 0x8}, -- {0x9031f, 0x60}, -- {0x90320, 0x8a}, -- {0x90321, 0x9}, -- {0x90322, 0x9}, -- {0x90323, 0xc9c0}, -- {0x90324, 0xc0c}, -- {0x90325, 0x0}, -- {0x90326, 0x0}, -- {0x90327, 0x8}, -- {0x90328, 0x8}, -- {0x90329, 0x2a0}, -- {0x9032a, 0x809}, -- {0x9032b, 0x48}, -- {0x9032c, 0xc822}, -- {0x9032d, 0xc}, -- {0x9032e, 0x48}, -- {0x9032f, 0xcc32}, -- {0x90330, 0xc}, -- {0x90331, 0x9}, -- {0x90332, 0xc800}, -- {0x90333, 0xc0c}, -- {0x90334, 0x0}, -- {0x90335, 0x8168}, -- {0x90336, 0x80c}, -- {0x90337, 0x479}, -- {0x90338, 0xc7f8}, -- {0x90339, 0x91c}, -- {0x9033a, 0x0}, -- {0x9033b, 0x0}, -- {0x9033c, 0x118}, -- {0x9033d, 0x9190}, -- {0x9033e, 0x80a1}, -- {0x9033f, 0x918}, -- {0x90340, 0x9}, -- {0x90341, 0xc9c0}, -- {0x90342, 0xd1c}, -- {0x90343, 0x0}, -- {0x90344, 0x0}, -- {0x90345, 0x118}, -- {0x90346, 0x18}, -- {0x90347, 0xf0}, -- {0x90348, 0x909}, -- {0x90349, 0xa}, -- {0x9034a, 0xc140}, -- {0x9034b, 0x92c}, -- {0x9034c, 0x88}, -- {0x9034d, 0x1932}, -- {0x9034e, 0x129}, -- {0x9034f, 0x88}, -- {0x90350, 0x193a}, -- {0x90351, 0x129}, -- {0x90352, 0x0}, -- {0x90353, 0xc140}, -- {0x90354, 0x92c}, -- {0x90355, 0x8}, -- {0x90356, 0x300}, -- {0x90357, 0x819}, -- {0x90358, 0x10}, -- {0x90359, 0x8160}, -- {0x9035a, 0x80c}, -- {0x9035b, 0x8}, -- {0x9035c, 0x7c8}, -- {0x9035d, 0x801}, -- {0x9035e, 0x8}, -- {0x9035f, 0x0}, -- {0x90360, 0x8}, -- {0x90361, 0x8}, -- {0x90362, 0x1880}, -- {0x90363, 0x809}, -- {0x90364, 0x10}, -- {0x90365, 0x8160}, -- {0x90366, 0x80c}, -- {0x90367, 0x1800}, -- {0x90368, 0x8660}, -- {0x90369, 0x809}, -- {0x9036a, 0x4000}, -- {0x9036b, 0x8668}, -- {0x9036c, 0x809}, -- {0x9036d, 0x0}, -- {0x9036e, 0xf0}, -- {0x9036f, 0x909}, -- {0x90370, 0xf}, -- {0x90371, 0x7c0}, -- {0x90372, 0x809}, -- {0x90373, 0x0}, -- {0x90374, 0x2a0}, -- {0x90375, 0x809}, -- {0x90376, 0x8}, -- {0x90377, 0x618}, -- {0x90378, 0x809}, -- {0x90379, 0x0}, -- {0x9037a, 0x84b8}, -- {0x9037b, 0x808}, -- {0x9037c, 0xff8}, -- {0x9037d, 0x8410}, -- {0x9037e, 0x809}, -- {0x9037f, 0x7ff8}, -- {0x90380, 0x8498}, -- {0x90381, 0x808}, -- {0x90382, 0x0}, -- {0x90383, 0x7c8}, -- {0x90384, 0x809}, -- {0x90385, 0x8}, -- {0x90386, 0x8168}, -- {0x90387, 0x80c}, -- {0x90388, 0x0}, -- {0x90389, 0x1}, -- {0x9038a, 0x8}, -- {0x9038b, 0x0}, -- {0x9038c, 0x4}, -- {0x9038d, 0x8}, -- {0x9038e, 0x0}, -- {0x9038f, 0x4}, -- {0x90390, 0x8}, -- {0x90391, 0x18}, -- {0x90392, 0x300}, -- {0x90393, 0x809}, -- {0x90394, 0x0}, -- {0x90395, 0x480}, -- {0x90396, 0x809}, -- {0x90397, 0x8}, -- {0x90398, 0x510}, -- {0x90399, 0x809}, -- {0x9039a, 0x7800}, -- {0x9039b, 0x8660}, -- {0x9039c, 0x809}, -- {0x9039d, 0x18}, -- {0x9039e, 0xf0}, -- {0x9039f, 0x909}, -- {0x903a0, 0x8}, -- {0x903a1, 0x7c8}, -- {0x903a2, 0x801}, -- {0x903a3, 0x10}, -- {0x903a4, 0x400}, -- {0x903a5, 0x80e}, -- {0x903a6, 0x8}, -- {0x903a7, 0x150}, -- {0x903a8, 0x809}, -- {0x903a9, 0x9}, -- {0x903aa, 0x370}, -- {0x903ab, 0x809}, -- {0x903ac, 0x18}, -- {0x903ad, 0x8160}, -- {0x903ae, 0x80c}, -- {0x903af, 0x8}, -- {0x903b0, 0xc800}, -- {0x903b1, 0xc0c}, -- {0x903b2, 0x8}, -- {0x903b3, 0xc888}, -- {0x903b4, 0xc04}, -- {0x903b5, 0x20}, -- {0x903b6, 0x8302}, -- {0x903b7, 0xb}, -- {0x903b8, 0x18}, -- {0x903b9, 0x8582}, -- {0x903ba, 0x8}, -- {0x903bb, 0x9000}, -- {0x903bc, 0x8539}, -- {0x903bd, 0x808}, -- {0x903be, 0x0}, -- {0x903bf, 0x8588}, -- {0x903c0, 0x808}, -- {0x903c1, 0x40}, -- {0x903c2, 0x85c8}, -- {0x903c3, 0x808}, -- {0x903c4, 0x0}, -- {0x903c5, 0xfdf0}, -- {0x903c6, 0x808}, -- {0x903c7, 0x800}, -- {0x903c8, 0xc5f0}, -- {0x903c9, 0x808}, -- {0x903ca, 0x1ff8}, -- {0x903cb, 0xfdd8}, -- {0x903cc, 0xc08}, -- {0x903cd, 0x18}, -- {0x903ce, 0xfda8}, -- {0x903cf, 0x808}, -- {0x903d0, 0x40}, -- {0x903d1, 0x8520}, -- {0x903d2, 0x8d8}, -- {0x903d3, 0x80}, -- {0x903d4, 0x8520}, -- {0x903d5, 0x8e8}, -- {0x903d6, 0x30a}, -- {0x903d7, 0x100}, -- {0x903d8, 0x8d9}, -- {0x903d9, 0x32a}, -- {0x903da, 0x100}, -- {0x903db, 0x8e9}, -- {0x903dc, 0x0}, -- {0x903dd, 0x1}, -- {0x903de, 0x8}, -- {0x903df, 0x0}, -- {0x903e0, 0x100}, -- {0x903e1, 0x809}, -- {0x903e2, 0x1ff8}, -- {0x903e3, 0xfdd8}, -- {0x903e4, 0xc08}, -- {0x903e5, 0x8}, -- {0x903e6, 0xfda8}, -- {0x903e7, 0x808}, -- {0x903e8, 0x140}, -- {0x903e9, 0x8520}, -- {0x903ea, 0x8d8}, -- {0x903eb, 0x180}, -- {0x903ec, 0x8520}, -- {0x903ed, 0x8e8}, -- {0x903ee, 0x30a}, -- {0x903ef, 0x100}, -- {0x903f0, 0x8d9}, -- {0x903f1, 0x32a}, -- {0x903f2, 0x100}, -- {0x903f3, 0x8e9}, -- {0x903f4, 0x0}, -- {0x903f5, 0x1}, -- {0x903f6, 0x8}, -- {0x903f7, 0x0}, -- {0x903f8, 0x100}, -- {0x903f9, 0x809}, -- {0x903fa, 0x9}, -- {0x903fb, 0x500}, -- {0x903fc, 0xc09}, -- {0x903fd, 0x10}, -- {0x903fe, 0x82b0}, -- {0x903ff, 0x808}, -- {0x90400, 0x0}, -- {0x90401, 0x8520}, -- {0x90402, 0x808}, -- {0x90403, 0x8}, -- {0x90404, 0x3c8}, -- {0x90405, 0xc09}, -- {0x90406, 0x0}, -- {0x90407, 0x150}, -- {0x90408, 0x809}, -- {0x90409, 0x2}, -- {0x9040a, 0x370}, -- {0x9040b, 0x809}, -- {0x9040c, 0x0}, -- {0x9040d, 0x400}, -- {0x9040e, 0x80e}, -- {0x9040f, 0x8}, -- {0x90410, 0xc848}, -- {0x90411, 0xc0c}, -- {0x90412, 0x0}, -- {0x90413, 0xc890}, -- {0x90414, 0x804}, -- {0x90415, 0x20}, -- {0x90416, 0x8302}, -- {0x90417, 0xb}, -- {0x90418, 0x18}, -- {0x90419, 0x8582}, -- {0x9041a, 0x8}, -- {0x9041b, 0x0}, -- {0x9041c, 0x82b0}, -- {0x9041d, 0x808}, -- {0x9041e, 0x1000}, -- {0x9041f, 0x8539}, -- {0x90420, 0x808}, -- {0x90421, 0x0}, -- {0x90422, 0x8588}, -- {0x90423, 0x808}, -- {0x90424, 0x40}, -- {0x90425, 0x85c8}, -- {0x90426, 0x808}, -- {0x90427, 0x7f8}, -- {0x90428, 0xfdf0}, -- {0x90429, 0x808}, -- {0x9042a, 0x800}, -- {0x9042b, 0xc5f0}, -- {0x9042c, 0x808}, -- {0x9042d, 0x80}, -- {0x9042e, 0x8088}, -- {0x9042f, 0x80b}, -- {0x90430, 0x1ff8}, -- {0x90431, 0xfdd8}, -- {0x90432, 0xc08}, -- {0x90433, 0x18}, -- {0x90434, 0xfda8}, -- {0x90435, 0x808}, -- {0x90436, 0x200}, -- {0x90437, 0x8520}, -- {0x90438, 0x8d8}, -- {0x90439, 0x400}, -- {0x9043a, 0x8520}, -- {0x9043b, 0x8e8}, -- {0x9043c, 0x2da}, -- {0x9043d, 0x100}, -- {0x9043e, 0x8d9}, -- {0x9043f, 0x2ea}, -- {0x90440, 0x100}, -- {0x90441, 0x8e9}, -- {0x90442, 0x2}, -- {0x90443, 0x1}, -- {0x90444, 0x8}, -- {0x90445, 0x0}, -- {0x90446, 0x100}, -- {0x90447, 0x809}, -- {0x90448, 0x1ff8}, -- {0x90449, 0xfdd8}, -- {0x9044a, 0xc08}, -- {0x9044b, 0x8}, -- {0x9044c, 0xfda8}, -- {0x9044d, 0x808}, -- {0x9044e, 0xa00}, -- {0x9044f, 0x8520}, -- {0x90450, 0x8d8}, -- {0x90451, 0xc00}, -- {0x90452, 0x8520}, -- {0x90453, 0x8e8}, -- {0x90454, 0x2da}, -- {0x90455, 0x100}, -- {0x90456, 0x8d9}, -- {0x90457, 0x2ea}, -- {0x90458, 0x100}, -- {0x90459, 0x8e9}, -- {0x9045a, 0x0}, -- {0x9045b, 0x1}, -- {0x9045c, 0x8}, -- {0x9045d, 0x0}, -- {0x9045e, 0x100}, -- {0x9045f, 0x809}, -- {0x90460, 0x9}, -- {0x90461, 0x500}, -- {0x90462, 0xc09}, -- {0x90463, 0x10}, -- {0x90464, 0x82b0}, -- {0x90465, 0x808}, -- {0x90466, 0x0}, -- {0x90467, 0x8520}, -- {0x90468, 0x808}, -- {0x90469, 0x8}, -- {0x9046a, 0x3c8}, -- {0x9046b, 0xc09}, -- {0x9046c, 0x0}, -- {0x9046d, 0x150}, -- {0x9046e, 0x809}, -- {0x9046f, 0x2}, -- {0x90470, 0x370}, -- {0x90471, 0x809}, -- {0x90472, 0x0}, -- {0x90473, 0x400}, -- {0x90474, 0x80e}, -- {0x90475, 0x8}, -- {0x90476, 0xc848}, -- {0x90477, 0xc0c}, -- {0x90478, 0x0}, -- {0x90479, 0xc890}, -- {0x9047a, 0x804}, -- {0x9047b, 0x1008}, -- {0x9047c, 0x853b}, -- {0x9047d, 0x808}, -- {0x9047e, 0xc00}, -- {0x9047f, 0x8588}, -- {0x90480, 0x808}, -- {0x90481, 0x8}, -- {0x90482, 0x85a8}, -- {0x90483, 0x808}, -- {0x90484, 0x8}, -- {0x90485, 0x85c8}, -- {0x90486, 0x808}, -- {0x90487, 0x60}, -- {0x90488, 0x138}, -- {0x90489, 0x809}, -- {0x9048a, 0x18}, -- {0x9048b, 0xc8}, -- {0x9048c, 0x809}, -- {0x9048d, 0x0}, -- {0x9048e, 0xa4}, -- {0x9048f, 0x809}, -- {0x90490, 0x0}, -- {0x90491, 0x8510}, -- {0x90492, 0x808}, -- {0x90493, 0x2fa}, -- {0x90494, 0x100}, -- {0x90495, 0x8d9}, -- {0x90496, 0x31a}, -- {0x90497, 0x100}, -- {0x90498, 0x8e9}, -- {0x90499, 0x2}, -- {0x9049a, 0x1}, -- {0x9049b, 0x8}, -- {0x9049c, 0x2}, -- {0x9049d, 0x100}, -- {0x9049e, 0x809}, -- {0x9049f, 0x202}, -- {0x904a0, 0x8510}, -- {0x904a1, 0xc08}, -- {0x904a2, 0x50}, -- {0x904a3, 0xa2}, -- {0x904a4, 0x9}, -- {0x904a5, 0x0}, -- {0x904a6, 0x0}, -- {0x904a7, 0x8}, -- {0x904a8, 0x0}, -- {0x904a9, 0x0}, -- {0x904aa, 0x8}, -- {0x904ab, 0x0}, -- {0x904ac, 0x0}, -- {0x904ad, 0x8}, -- {0x904ae, 0x0}, -- {0x904af, 0xc8}, -- {0x904b0, 0x809}, -- {0x904b1, 0xb}, -- {0x904b2, 0x508}, -- {0x904b3, 0x809}, -- {0x904b4, 0x8}, -- {0x904b5, 0x1900}, -- {0x904b6, 0xc09}, -- {0x904b7, 0x2}, -- {0x904b8, 0x0}, -- {0x904b9, 0x8}, -- {0x904ba, 0x0}, -- {0x904bb, 0x508}, -- {0x904bc, 0x809}, -- {0x904bd, 0x9}, -- {0x904be, 0x500}, -- {0x904bf, 0xc09}, -- {0x904c0, 0x10}, -- {0x904c1, 0x82b0}, -- {0x904c2, 0x808}, -- {0x904c3, 0x0}, -- {0x904c4, 0x8520}, -- {0x904c5, 0x808}, -- {0x904c6, 0x8}, -- {0x904c7, 0x3c8}, -- {0x904c8, 0xc09}, -- {0x904c9, 0x0}, -- {0x904ca, 0x150}, -- {0x904cb, 0x809}, -- {0x904cc, 0x2}, -- {0x904cd, 0x370}, -- {0x904ce, 0x809}, -- {0x904cf, 0x0}, -- {0x904d0, 0x400}, -- {0x904d1, 0x80e}, -- {0x904d2, 0x8}, -- {0x904d3, 0xc848}, -- {0x904d4, 0xc0c}, -- {0x904d5, 0x0}, -- {0x904d6, 0xc890}, -- {0x904d7, 0x804}, -- {0x904d8, 0x20}, -- {0x904d9, 0x8302}, -- {0x904da, 0xb}, -- {0x904db, 0x18}, -- {0x904dc, 0x8582}, -- {0x904dd, 0x8}, -- {0x904de, 0x1000}, -- {0x904df, 0x8539}, -- {0x904e0, 0x808}, -- {0x904e1, 0x0}, -- {0x904e2, 0x8588}, -- {0x904e3, 0x808}, -- {0x904e4, 0x40}, -- {0x904e5, 0x85c8}, -- {0x904e6, 0x808}, -- {0x904e7, 0x8}, -- {0x904e8, 0xfdf0}, -- {0x904e9, 0x808}, -- {0x904ea, 0x80}, -- {0x904eb, 0x8088}, -- {0x904ec, 0x80b}, -- {0x904ed, 0x0}, -- {0x904ee, 0x3b8}, -- {0x904ef, 0x869}, -- {0x904f0, 0x1ff8}, -- {0x904f1, 0xfdd8}, -- {0x904f2, 0xc08}, -- {0x904f3, 0x18}, -- {0x904f4, 0xfda8}, -- {0x904f5, 0x808}, -- {0x904f6, 0x40}, -- {0x904f7, 0x8520}, -- {0x904f8, 0x8d8}, -- {0x904f9, 0x80}, -- {0x904fa, 0x8520}, -- {0x904fb, 0x8e8}, -- {0x904fc, 0x2da}, -- {0x904fd, 0x100}, -- {0x904fe, 0x8d9}, -- {0x904ff, 0x2ea}, -- {0x90500, 0x100}, -- {0x90501, 0x8e9}, -- {0x90502, 0x2}, -- {0x90503, 0x1}, -- {0x90504, 0x8}, -- {0x90505, 0x0}, -- {0x90506, 0x100}, -- {0x90507, 0x809}, -- {0x90508, 0x1ff8}, -- {0x90509, 0xfdd8}, -- {0x9050a, 0xc08}, -- {0x9050b, 0x8}, -- {0x9050c, 0xfda8}, -- {0x9050d, 0x808}, -- {0x9050e, 0x140}, -- {0x9050f, 0x8520}, -- {0x90510, 0x8d8}, -- {0x90511, 0x180}, -- {0x90512, 0x8520}, -- {0x90513, 0x8e8}, -- {0x90514, 0x2da}, -- {0x90515, 0x100}, -- {0x90516, 0x8d9}, -- {0x90517, 0x2ea}, -- {0x90518, 0x100}, -- {0x90519, 0x8e9}, -- {0x9051a, 0x0}, -- {0x9051b, 0x1}, -- {0x9051c, 0x8}, -- {0x9051d, 0x0}, -- {0x9051e, 0x100}, -- {0x9051f, 0x809}, -- {0x90520, 0x9}, -- {0x90521, 0x500}, -- {0x90522, 0xc09}, -- {0x90523, 0x10}, -- {0x90524, 0x82b0}, -- {0x90525, 0x808}, -- {0x90526, 0x0}, -- {0x90527, 0x8520}, -- {0x90528, 0x808}, -- {0x90529, 0x8}, -- {0x9052a, 0x3c8}, -- {0x9052b, 0xc09}, -- {0x9052c, 0x0}, -- {0x9052d, 0x150}, -- {0x9052e, 0x809}, -- {0x9052f, 0x2}, -- {0x90530, 0x370}, -- {0x90531, 0x809}, -- {0x90532, 0x0}, -- {0x90533, 0x400}, -- {0x90534, 0x80e}, -- {0x90535, 0x8}, -- {0x90536, 0xc848}, -- {0x90537, 0xc0c}, -- {0x90538, 0x0}, -- {0x90539, 0xc890}, -- {0x9053a, 0x804}, -- {0xd00e7, 0x600}, -- {0x9001c, 0x0}, -- {0x90020, 0x77}, -- {0x90024, 0x82}, -- {0x90025, 0x2b}, -- {0x90026, 0x2b}, -- {0x9002b, 0x110}, -- {0x90708, 0x127}, -- {0x90700, 0x14d}, -- {0x90701, 0x16f}, -- {0x90702, 0x18e}, -- {0x90703, 0x12d}, -- {0x90704, 0x0}, -- {0x90705, 0x0}, -- {0x90706, 0x0}, -- {0x90707, 0x0}, -- {0x2018a, 0x0}, -- {0x20124, 0x1}, -- {0x2018b, 0x16}, -- {0x20125, 0x39}, -- {0x2018c, 0x4e}, -- {0x20126, 0x1}, -- {0x2018d, 0x16}, -- {0x20127, 0x39}, -- {0x2018e, 0x4e}, -- {0x20128, 0x17}, -- {0x2018f, 0x27}, -- {0x20129, 0x4f}, -- {0x20190, 0x5f}, -- {0x2012a, 0x17}, -- {0x20191, 0x27}, -- {0x2012b, 0x4f}, -- {0x20192, 0x5f}, -- {0x2012c, 0x28}, -- {0x20193, 0x38}, -- {0x2012d, 0x60}, -- {0x20194, 0x70}, -- {0x2012e, 0x28}, -- {0x20195, 0x38}, -- {0x2012f, 0x60}, -- {0x20196, 0x70}, -- {0x20130, 0x80}, -- {0x20197, 0x80}, -- {0x20131, 0x80}, -- {0x20198, 0x80}, -- {0x20132, 0x80}, -- {0x20199, 0x80}, -- {0x20133, 0x80}, -- {0x2019a, 0x80}, -- {0x20134, 0x71}, -- {0x2019b, 0x74}, -- {0x20135, 0x77}, -- {0x2019c, 0x7a}, -- {0x20136, 0x71}, -- {0x2019d, 0x74}, -- {0x20137, 0x77}, -- {0x2019e, 0x7a}, -- {0x20138, 0x75}, -- {0x2019f, 0x76}, -- {0x20139, 0x7b}, -- {0x201a0, 0x7c}, -- {0x2013a, 0x75}, -- {0x201a1, 0x76}, -- {0x2013b, 0x7b}, -- {0x201a2, 0x7c}, -- {0x2013c, 0x7d}, -- {0x201a3, 0x7e}, -- {0x2013d, 0x7d}, -- {0x201a4, 0x7e}, -- {0x2013e, 0x7d}, -- {0x201a5, 0x7e}, -- {0x2013f, 0x7d}, -- {0x201a6, 0x7e}, -- {0x20140, 0x7f}, -- {0x201a7, 0x7f}, -- {0x20141, 0x7f}, -- {0x201a8, 0x7f}, -- {0x20142, 0x7f}, -- {0x201a9, 0x7f}, -- {0x20143, 0x7f}, -- {0x201aa, 0x7f}, -- {0x20144, 0x80}, -- {0x201ab, 0x7f}, -- {0x20145, 0x80}, -- {0x201ac, 0x7f}, -- {0x20146, 0x80}, -- {0x201ad, 0x7f}, -- {0x20147, 0x80}, -- {0x201ae, 0x7f}, -- {0x20148, 0x81}, -- {0x201af, 0x93}, -- {0x20149, 0x81}, -- {0x201b0, 0x93}, -- {0x2014a, 0x10a}, -- {0x201b1, 0x11b}, -- {0x2014b, 0x10a}, -- {0x201b2, 0x11b}, -- {0x2014c, 0x94}, -- {0x201b3, 0x9b}, -- {0x2014d, 0x94}, -- {0x201b4, 0x9b}, -- {0x2014e, 0x11c}, -- {0x201b5, 0x122}, -- {0x2014f, 0x11c}, -- {0x201b6, 0x122}, -- {0x20150, 0x9c}, -- {0x201b7, 0xaf}, -- {0x20151, 0x9c}, -- {0x201b8, 0xaf}, -- {0x20152, 0x123}, -- {0x201b9, 0x132}, -- {0x20153, 0x123}, -- {0x201ba, 0x132}, -- {0x20154, 0xb0}, -- {0x201bb, 0xc0}, -- {0x20155, 0xb0}, -- {0x201bc, 0xc0}, -- {0x20156, 0x133}, -- {0x201bd, 0x143}, -- {0x20157, 0x133}, -- {0x201be, 0x143}, -- {0x20158, 0xc1}, -- {0x201bf, 0xca}, -- {0x20159, 0xc1}, -- {0x201c0, 0xca}, -- {0x2015a, 0x144}, -- {0x201c1, 0x14d}, -- {0x2015b, 0x144}, -- {0x201c2, 0x14d}, -- {0x2015c, 0xcb}, -- {0x201c3, 0xd4}, -- {0x2015d, 0xcb}, -- {0x201c4, 0xd4}, -- {0x2015e, 0x14e}, -- {0x201c5, 0x157}, -- {0x2015f, 0x14e}, -- {0x201c6, 0x157}, -- {0x20160, 0xd5}, -- {0x201c7, 0xdf}, -- {0x20161, 0xd5}, -- {0x201c8, 0xdf}, -- {0x20162, 0x158}, -- {0x201c9, 0x161}, -- {0x20163, 0x158}, -- {0x201ca, 0x161}, -- {0x20164, 0xe0}, -- {0x201cb, 0xee}, -- {0x20165, 0xe0}, -- {0x201cc, 0xee}, -- {0x20166, 0x162}, -- {0x201cd, 0x170}, -- {0x20167, 0x162}, -- {0x201ce, 0x170}, -- {0x20168, 0xef}, -- {0x201cf, 0xf9}, -- {0x20169, 0xef}, -- {0x201d0, 0xf9}, -- {0x2016a, 0x171}, -- {0x201d1, 0x17a}, -- {0x2016b, 0x171}, -- {0x201d2, 0x17a}, -- {0x2016c, 0xfa}, -- {0x201d3, 0x108}, -- {0x2016d, 0xfa}, -- {0x201d4, 0x108}, -- {0x2016e, 0x17b}, -- {0x201d5, 0x189}, -- {0x2016f, 0x17b}, -- {0x201d6, 0x189}, -- {0x20170, 0x109}, -- {0x201d7, 0x109}, -- {0x20171, 0x109}, -- {0x201d8, 0x109}, -- {0x20172, 0x18a}, -- {0x201d9, 0x18a}, -- {0x20173, 0x18a}, -- {0x201da, 0x18a}, -- {0x41613, 0xb00}, -- {0x41617, 0x0}, -- {0x4163b, 0xb00}, -- {0x4163f, 0x0}, -- {0x41663, 0xb00}, -- {0x41667, 0x0}, -- {0x4168b, 0xb00}, -- {0x4168f, 0x0}, -- {0x41723, 0xb00}, -- {0x41727, 0x0}, -- {0x4174b, 0xb00}, -- {0x4174f, 0x0}, -- {0x417f3, 0xb00}, -- {0x417f7, 0x0}, -- {0x4181b, 0xb00}, -- {0x4181f, 0x0}, -- {0x41a2b, 0x6b00}, -- {0x41a2f, 0x0}, -- {0x41a53, 0x3b00}, -- {0x41a57, 0x800}, -- {0x41a7b, 0x6b00}, -- {0x41a7f, 0x0}, -- {0x41aa3, 0x3b00}, -- {0x41aa7, 0x800}, -- {0x41b33, 0x6b00}, -- {0x41b37, 0x0}, -- {0x41b5b, 0x3b00}, -- {0x41b5f, 0x800}, -- {0x41bfb, 0x6b00}, -- {0x41bff, 0x0}, -- {0x41c23, 0x3b00}, -- {0x41c27, 0x800}, -- {0x41008, 0xc9d8}, -- {0x41009, 0x0}, -- {0x4100a, 0x0}, -- {0x4100b, 0x0}, -- {0x4100c, 0xc808}, -- {0x4100d, 0x0}, -- {0x4100e, 0x0}, -- {0x4100f, 0x0}, -- {0x41010, 0x0}, -- {0x41011, 0x0}, -- {0x41012, 0x0}, -- {0x41013, 0x2b00}, -- {0x41014, 0x0}, -- {0x41015, 0x0}, -- {0x41016, 0x0}, -- {0x41017, 0x0}, -- {0x41018, 0xc958}, -- {0x41019, 0x0}, -- {0x4101a, 0x0}, -- {0x4101b, 0x0}, -- {0x4101c, 0xcf08}, -- {0x4101d, 0x0}, -- {0x4101e, 0x0}, -- {0x4101f, 0x0}, -- {0x41020, 0x0}, -- {0x41021, 0x0}, -- {0x41022, 0x0}, -- {0x41023, 0x2b00}, -- {0x41024, 0x0}, -- {0x41025, 0x0}, -- {0x41026, 0x0}, -- {0x41027, 0x0}, -- {0x41028, 0xc0d8}, -- {0x41029, 0x0}, -- {0x4102a, 0x0}, -- {0x4102b, 0x0}, -- {0x4102c, 0xd848}, -- {0x4102d, 0x0}, -- {0x4102e, 0x0}, -- {0x4102f, 0x0}, -- {0x41030, 0x0}, -- {0x41031, 0x0}, -- {0x41032, 0x0}, -- {0x41033, 0x2b00}, -- {0x41034, 0x0}, -- {0x41035, 0x0}, -- {0x41036, 0x0}, -- {0x41037, 0x0}, -- {0x41038, 0xc158}, -- {0x41039, 0x0}, -- {0x4103a, 0x0}, -- {0x4103b, 0x0}, -- {0x4103c, 0xddc8}, -- {0x4103d, 0x0}, -- {0x4103e, 0x0}, -- {0x4103f, 0x0}, -- {0x41040, 0x0}, -- {0x41041, 0x0}, -- {0x41042, 0x0}, -- {0x41043, 0x2b00}, -- {0x41044, 0x0}, -- {0x41045, 0x0}, -- {0x41046, 0x0}, -- {0x41047, 0x0}, -- {0x41048, 0xc1d8}, -- {0x41049, 0x0}, -- {0x4104a, 0x0}, -- {0x4104b, 0x0}, -- {0x4104c, 0xc308}, -- {0x4104d, 0x0}, -- {0x4104e, 0x0}, -- {0x4104f, 0x0}, -- {0x41050, 0x0}, -- {0x41051, 0x0}, -- {0x41052, 0x0}, -- {0x41053, 0x2b00}, -- {0x41054, 0x0}, -- {0x41055, 0x0}, -- {0x41056, 0x0}, -- {0x41057, 0x0}, -- {0x41058, 0xc558}, -- {0x41059, 0x0}, -- {0x4105a, 0x0}, -- {0x4105b, 0x0}, -- {0x4105c, 0xea08}, -- {0x4105d, 0x0}, -- {0x4105e, 0x0}, -- {0x4105f, 0x0}, -- {0x41060, 0x0}, -- {0x41061, 0x0}, -- {0x41062, 0x0}, -- {0x41063, 0x2b00}, -- {0x41064, 0x0}, -- {0x41065, 0x0}, -- {0x41066, 0x0}, -- {0x41067, 0x0}, -- {0x41068, 0xc5d8}, -- {0x41069, 0x0}, -- {0x4106a, 0x0}, -- {0x4106b, 0x0}, -- {0x4106c, 0xe308}, -- {0x4106d, 0x0}, -- {0x4106e, 0x0}, -- {0x4106f, 0x0}, -- {0x41070, 0x0}, -- {0x41071, 0x0}, -- {0x41072, 0x0}, -- {0x41073, 0x2b00}, -- {0x41074, 0x0}, -- {0x41075, 0x0}, -- {0x41076, 0x0}, -- {0x41077, 0x0}, -- {0x41078, 0x48d8}, -- {0x41079, 0x0}, -- {0x4107a, 0x0}, -- {0x4107b, 0x0}, -- {0x4107c, 0x4248}, -- {0x4107d, 0x0}, -- {0x4107e, 0x0}, -- {0x4107f, 0x0}, -- {0x41080, 0x88d8}, -- {0x41081, 0x0}, -- {0x41082, 0x0}, -- {0x41083, 0x0}, -- {0x41084, 0x9648}, -- {0x41085, 0x0}, -- {0x41086, 0x0}, -- {0x41087, 0x0}, -- {0x41088, 0x0}, -- {0x41089, 0x0}, -- {0x4108a, 0x0}, -- {0x4108b, 0x2b00}, -- {0x4108c, 0x0}, -- {0x4108d, 0x0}, -- {0x4108e, 0x0}, -- {0x4108f, 0x0}, -- {0x41090, 0xca58}, -- {0x41091, 0x0}, -- {0x41092, 0x0}, -- {0x41093, 0x0}, -- {0x41094, 0xc108}, -- {0x41095, 0x0}, -- {0x41096, 0x0}, -- {0x41097, 0x0}, -- {0x41098, 0x0}, -- {0x41099, 0x0}, -- {0x4109a, 0x0}, -- {0x4109b, 0x2b00}, -- {0x4109c, 0x0}, -- {0x4109d, 0x0}, -- {0x4109e, 0x0}, -- {0x4109f, 0x0}, -- {0x410a0, 0xcb58}, -- {0x410a1, 0x0}, -- {0x410a2, 0x0}, -- {0x410a3, 0x0}, -- {0x410a4, 0xc008}, -- {0x410a5, 0x0}, -- {0x410a6, 0x0}, -- {0x410a7, 0x0}, -- {0x410a8, 0x0}, -- {0x410a9, 0x0}, -- {0x410aa, 0x0}, -- {0x410ab, 0x2b00}, -- {0x410ac, 0x0}, -- {0x410ad, 0x0}, -- {0x410ae, 0x0}, -- {0x410af, 0x0}, -- {0x410b0, 0xd4d8}, -- {0x410b1, 0x0}, -- {0x410b2, 0x0}, -- {0x410b3, 0x0}, -- {0x410b4, 0xc008}, -- {0x410b5, 0x0}, -- {0x410b6, 0x0}, -- {0x410b7, 0x0}, -- {0xc0001, 0x5061}, -- {0xc0002, 0x7098}, -- {0xc0003, 0x0}, -- {0xc0000, 0xbedc}, -- {0xc0006, 0xb0db}, -- {0xc0007, 0x0}, -- {0x9070c, 0x0}, -- {0x9070d, 0x7ff}, -- {0x9070e, 0x668}, -- {0x9070f, 0x7910}, -- {0x90710, 0x355e}, -- {0x90711, 0xcbb5}, -- {0x90713, 0xffff}, -- {0x90714, 0x710}, -- {0x90715, 0x7800}, -- {0x90c10, 0xffff}, -- {0x90c12, 0xff10}, -- {0x90712, 0xffff}, -- {0x90716, 0xff10}, -- {0x90717, 0xff10}, -- {0x90718, 0xff10}, -- {0x90719, 0xffff}, -- {0x9071a, 0xffff}, -- {0x9071b, 0xfeef}, -- {0x90c11, 0xffff}, -- {0x90904, 0xe400}, -- {0x90986, 0xe400}, -- {0x90920, 0x0}, -- {0x90921, 0x0}, -- {0x90922, 0x0}, -- {0x90923, 0x0}, -- {0x90924, 0xff00}, -- {0x90925, 0xff00}, -- {0x90926, 0xff00}, -- {0x90927, 0xff00}, -- {0x90930, 0x4000}, -- {0x90931, 0x2000}, -- {0x90932, 0xff00}, -- {0x90933, 0xff00}, -- {0x9090a, 0x0}, -- {0x9090c, 0x0}, -- {0x9090d, 0x1}, -- {0x200f0, 0x27f7}, -- {0x200f1, 0x2108}, -- {0x200f2, 0x2108}, -- {0x100b9, 0x1}, -- {0x100b1, 0x180}, -- {0x100ba, 0x1}, -- {0x100a2, 0x0}, -- {0x100b5, 0x1}, -- {0x110b9, 0x1}, -- {0x110b1, 0x180}, -- {0x110ba, 0x1}, -- {0x110a2, 0x0}, -- {0x110b5, 0x1}, -- {0x120b9, 0x1}, -- {0x120b1, 0x180}, -- {0x120ba, 0x1}, -- {0x120a2, 0x0}, -- {0x120b5, 0x1}, -- {0x130b9, 0x1}, -- {0x130b1, 0x180}, -- {0x130ba, 0x1}, -- {0x130a2, 0x0}, -- {0x130b5, 0x1}, -- {0x70024, 0x5a3c}, -- {0x70025, 0x5a3c}, -- {0x70026, 0x5a3c}, -- {0x70027, 0x5a3c}, -- {0x70028, 0x5a3c}, -- {0x70029, 0x5a3c}, -- {0x7002a, 0x5a3c}, -- {0x7002b, 0x5a3c}, -- {0x70124, 0x5a3c}, -- {0x70125, 0x5a3c}, -- {0x70126, 0x5a3c}, -- {0x70127, 0x5a3c}, -- {0x70128, 0x5a3c}, -- {0x70129, 0x5a3c}, -- {0x7012a, 0x5a3c}, -- {0x7012b, 0x5a3c}, -- {0x70224, 0x5a3c}, -- {0x70225, 0x5a3c}, -- {0x70226, 0x5a3c}, -- {0x70227, 0x5a3c}, -- {0x70228, 0x5a3c}, -- {0x70229, 0x5a3c}, -- {0x7022a, 0x5a3c}, -- {0x7022b, 0x5a3c}, -- {0x70324, 0x5a3c}, -- {0x70325, 0x5a3c}, -- {0x70326, 0x5a3c}, -- {0x70327, 0x5a3c}, -- {0x70328, 0x5a3c}, -- {0x70329, 0x5a3c}, -- {0x7032a, 0x5a3c}, -- {0x7032b, 0x5a3c}, -- {0x70424, 0x5a3c}, -- {0x70425, 0x5a3c}, -- {0x70426, 0x5a3c}, -- {0x70427, 0x5a3c}, -- {0x70428, 0x5a3c}, -- {0x70429, 0x5a3c}, -- {0x7042a, 0x5a3c}, -- {0x7042b, 0x5a3c}, -- {0x70524, 0x5a3c}, -- {0x70525, 0x5a3c}, -- {0x70526, 0x5a3c}, -- {0x70527, 0x5a3c}, -- {0x70528, 0x5a3c}, -- {0x70529, 0x5a3c}, -- {0x7052a, 0x5a3c}, -- {0x7052b, 0x5a3c}, -- {0x70624, 0x5a3c}, -- {0x70625, 0x5a3c}, -- {0x70626, 0x5a3c}, -- {0x70627, 0x5a3c}, -- {0x70628, 0x5a3c}, -- {0x70629, 0x5a3c}, -- {0x7062a, 0x5a3c}, -- {0x7062b, 0x5a3c}, -- {0x70724, 0x5a3c}, -- {0x70725, 0x5a3c}, -- {0x70726, 0x5a3c}, -- {0x70727, 0x5a3c}, -- {0x70728, 0x5a3c}, -- {0x70729, 0x5a3c}, -- {0x7072a, 0x5a3c}, -- {0x7072b, 0x5a3c}, -- {0x70824, 0x5a3c}, -- {0x70825, 0x5a3c}, -- {0x70826, 0x5a3c}, -- {0x70827, 0x5a3c}, -- {0x70828, 0x5a3c}, -- {0x70829, 0x5a3c}, -- {0x7082a, 0x5a3c}, -- {0x7082b, 0x5a3c}, -- {0x70065, 0x1ff}, -- {0x2007e, 0x33}, -- {0x200ef, 0xffff}, -- {0x90910, 0x2}, -- {0x20310, 0x1}, -- {0x20311, 0x1}, -- {0xc0080, 0x2}, -- {0xd0003, 0x0}, -- {0x1000f, 0x1087}, -- {0x1100f, 0x1087}, -- {0x1200f, 0x1087}, -- {0x1300f, 0x1087}, --}; -- --static struct dram_fsp_msg ddr_dram_fsp_msg[] = { -- { -- /* P0 6400mbps */ -- .drate = 6400, -- .ssc = false, -- .fsp_phy_cfg = ddr_phy_fsp0_cfg, -- .fsp_phy_cfg_num = ARRAY_SIZE(ddr_phy_fsp0_cfg), -- .fw_type = FW_1D_IMAGE, -- .fsp_phy_msgh_cfg = ddr_phy_msgh_fsp0_cfg, -- .fsp_phy_msgh_cfg_num = ARRAY_SIZE(ddr_phy_msgh_fsp0_cfg), -- .fsp_phy_pie_cfg = ddr_phy_pie_fsp0_cfg, -- .fsp_phy_pie_cfg_num = ARRAY_SIZE(ddr_phy_pie_fsp0_cfg), -- }, --}; -- --/* dram fsp cfg */ --static struct dram_fsp_cfg ddr_dram_fsp_cfg[] = { -- { -- .ddrc_cfg = ddr_dram_fsp0_ddrc_cfg, -- .ddrc_cfg_num = ARRAY_SIZE(ddr_dram_fsp0_ddrc_cfg), -- .bypass = 0, -- }, --}; -- --/* ddr timing config params */ --struct dram_timing_info dram_timing = { -- .ddrc_cfg = ddr_ddrc_cfg, -- .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), -- .ddrphy_cfg = ddr_ddrphy_cfg, -- .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), -- .fsp_msg = ddr_dram_fsp_msg, -- .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), -- .ddrphy_trained_csr = ddr_ddrphy_trained_csr, -- .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), -- .ddrphy_pie = ddr_phy_pie, -- .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), -- .fsp_table = { 6400, }, -- .fsp_cfg = ddr_dram_fsp_cfg, -- .fsp_cfg_num = ARRAY_SIZE(ddr_dram_fsp_cfg), --}; -diff --git a/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c b/boards/ccimx95/ddr/lpddr5_timing_a1.c -similarity index 99% -rename from boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c -rename to boards/ccimx95/ddr/lpddr5_timing_a1.c -index 59199b033b17..d85865bd5e6a 100644 ---- a/boards/ccimx95/ddr/MIMX95_LPDDR5_EVK_19X19_6400MTS_FW2024.09_timing.c -+++ b/boards/ccimx95/ddr/lpddr5_timing_a1.c -@@ -3,36 +3,34 @@ - * - * SPDX-License-Identifier: BSD-3-Clause - * -- * Code generated with DDR Tool v3.7.0_0.2-4600df02. -+ * Code generated with DDR Tool v3.6.0_7.9-aa018543. - * DDR PHY FW2024.09 -- * Chip revision: B0 - */ - - #include "ddr.h" - - /* Initialize DDRC registers */ - static struct ddrc_cfg_param ddr_ddrc_cfg[] = { -- {0x5e080110, 0x41114001U}, -- {0x5e080000, 0x3ffU}, -+ {0x5e080110, 0x41084001U}, -+ {0x5e080000, 0x1ffU}, - {0x5e080008, 0x0U}, -- {0x5e080010, 0x4U}, -+ {0x5e080010, 0x2U}, - {0x5e080014, 0x80000U}, - {0x5e080020, 0x80000000U}, - {0x5e080024, 0x80007ffU}, - {0x5e080028, 0x80000000U}, - {0x5e08002c, 0x7ffU}, -- {0x5e080080, 0x80800522U}, -- {0x5e080084, 0x80800522U}, -- {0x5e080114, 0x201000U}, -- {0x5e080260, 0x800a1U}, -+ {0x5e080080, 0x80000422U}, -+ {0x5e080084, 0x80000422U}, -+ {0x5e080114, 0x1000U}, -+ {0x5e080260, 0x21U}, - {0x5e080268, 0x0U}, -- {0x5e08026c, 0x3d04U}, -- {0x5e080278, 0x10U}, -- {0x5e080800, 0x43d3b000U}, -- {0x5e080804, 0x1f1f1f1fU}, -- {0x5e080810, 0x14084060U}, -- {0x5e080c00, 0x40000000U}, -- {0x5e081000, 0xe3U}, -+ {0x5e08026c, 0x1004U}, -+ {0x5e080f00, 0x8U}, -+ {0x5e080f04, 0x0U}, -+ {0x5e080800, 0x43931002U}, -+ {0x5e080804, 0x3f1f1f1fU}, -+ {0x5e081000, 0x0U}, - {0x5e081220, 0x0U}, - {0x5e081224, 0x0U}, - {0x5e081228, 0x0U}, -@@ -55,18 +53,18 @@ static struct ddrc_cfg_param ddr_ddrc_cfg[] = { - static struct ddrc_cfg_param ddr_dram_fsp0_ddrc_cfg[] = { - {0x5e080100, 0x020D2100U}, - {0x5e080104, 0x4866000CU}, -- {0x5e080108, 0xF2F28D47U}, -+ {0x5e080108, 0xF2F08C45U}, - {0x5e08010C, 0x20488010U}, -- {0x5e080124, 0x0C230000U}, -+ {0x5e080124, 0x0C230308U}, - {0x5e080160, 0x00000101U}, - {0x5e08016C, 0x01300000U}, -- {0x5e080170, 0x8C010509U}, -- {0x5e080250, 0x00110C11U}, -+ {0x5e080170, 0x8B010509U}, -+ {0x5e080250, 0x00110A11U}, - {0x5e080254, 0x00680040U}, - {0x5e080258, 0x03003E80U}, - {0x5e08025C, 0x40520200U}, -- {0x5e080300, 0x08110809U}, -- {0x5e080304, 0x00680F02U}, -+ {0x5e080300, 0x08110808U}, -+ {0x5e080304, 0x00680E02U}, - {0x5e080308, 0x06040603U}, - {0x5e08030C, 0x0030001CU}, - {0x5e080310, 0x20610000U}, -@@ -141,9 +139,9 @@ static struct ddrphy_cfg_param ddr_ddrphy_cfg[] = { - {0x310ac, 0x80}, - {0xc0086, 0x0}, - {0x100a3, 0xb33}, -- {0x110a3, 0xb33}, -+ {0x110a3, 0xb3f}, - {0x120a3, 0xb33}, -- {0x130a3, 0xb33}, -+ {0x130a3, 0xb3f}, - {0xc00f1, 0x6000}, - {0xc00f2, 0xa9}, - {0xc00f3, 0x8000}, -@@ -6196,10 +6194,10 @@ static struct ddrphy_cfg_param ddr_phy_fsp0_cfg[] = { - {0x20001, 0x1122}, - {0x20009, 0x0}, - {0x20008, 0x0}, -- {0x200d9, 0x1}, -+ {0x200d9, 0x0}, - {0x30eef, 0x0}, - {0x31eef, 0x0}, -- {0x20014, 0x1301}, -+ {0x20014, 0x1300}, - {0x9080a, 0x1300}, - {0x10040, 0xe0e}, - {0x10042, 0xe0e}, -@@ -6322,17 +6320,17 @@ static struct ddrphy_cfg_param ddr_phy_fsp0_cfg[] = { - {0x20037, 0x41c}, - {0x20037, 0x45c}, - {0x20038, 0x1920}, -- {0x20039, 0x101c}, -- {0x2003a, 0x101c}, -- {0x2003b, 0x42c}, -- {0x2003c, 0x2d30}, -+ {0x20039, 0x1018}, -+ {0x2003a, 0x1018}, -+ {0x2003b, 0x428}, -+ {0x2003c, 0x2d2c}, - {0x2003d, 0x1004}, - {0x2003e, 0x1004}, - {0x2003f, 0x414}, - {0x20040, 0x1118}, -- {0x2002c, 0x843}, -- {0x2002d, 0x843}, -- {0x20030, 0x843}, -+ {0x2002c, 0x83f}, -+ {0x2002d, 0x83f}, -+ {0x20030, 0x83f}, - {0x2002e, 0x81f}, - {0x2002f, 0x81f}, - {0x2000c, 0x0}, -@@ -6355,7 +6353,6 @@ static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { - {0x58009, 0xc8}, - {0x5800b, 0x2}, - {0x5800d, 0x100}, -- {0x5800e, 0xf}, - {0x58012, 0x310}, - {0x5801f, 0x1000}, - {0x58020, 0x3}, -@@ -6379,8 +6376,8 @@ static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { - {0x5803e, 0x1c1c}, - {0x58041, 0xac84}, - {0x58042, 0xac84}, -- {0x58043, 0x1b1b}, -- {0x58044, 0x1b1b}, -+ {0x58043, 0x1e1e}, -+ {0x58044, 0x1e1e}, - {0x58045, 0x1010}, - {0x58046, 0x1010}, - {0x58047, 0x202}, -@@ -6392,8 +6389,8 @@ static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { - {0x58074, 0x2e}, - {0x58075, 0x50}, - {0x58080, 0x1}, -- {0x58081, 0x4b00}, -- {0x58082, 0x43}, -+ {0x58081, 0x4300}, -+ {0x58082, 0x3f}, - }; - - /* DRAM PHY init engine image for Pstate 0 */ -@@ -6426,7 +6423,7 @@ static struct ddrphy_cfg_param ddr_phy_pie_fsp0_cfg[] = { - {0x41019, 0x0}, - {0x4101a, 0x0}, - {0x4101b, 0x0}, -- {0x4101c, 0xcd88}, -+ {0x4101c, 0xcf08}, - {0x4101d, 0x0}, - {0x4101e, 0x0}, - {0x4101f, 0x0}, -@@ -6596,16 +6593,16 @@ static struct ddrphy_cfg_param ddr_phy_pie_fsp0_cfg[] = { - {0x2008a, 0x0}, - {0x2008c, 0x0}, - {0x20041, 0x1}, -- {0x90802, 0x0}, -+ {0x90802, 0x1}, - {0x20045, 0x2}, - {0x10057, 0x0}, - {0x11057, 0x0}, - {0x12057, 0x0}, - {0x13057, 0x0}, -- {0x1000f, 0x1087}, -- {0x1100f, 0x1087}, -- {0x1200f, 0x1087}, -- {0x1300f, 0x1087}, -+ {0x1000f, 0x1088}, -+ {0x1100f, 0x1088}, -+ {0x1200f, 0x1088}, -+ {0x1300f, 0x1088}, - {0x90803, 0x4}, - {0x90804, 0x82}, - {0x90805, 0x1}, -@@ -10373,19 +10370,19 @@ static struct ddrphy_cfg_param ddr_phy_pie[] = { - {0x4181f, 0x0}, - {0x41a2b, 0x6b00}, - {0x41a2f, 0x0}, -- {0x41a53, 0x3b00}, -+ {0x41a53, 0x2b00}, - {0x41a57, 0x800}, - {0x41a7b, 0x6b00}, - {0x41a7f, 0x0}, -- {0x41aa3, 0x3b00}, -+ {0x41aa3, 0x2b00}, - {0x41aa7, 0x800}, - {0x41b33, 0x6b00}, - {0x41b37, 0x0}, -- {0x41b5b, 0x3b00}, -+ {0x41b5b, 0x2b00}, - {0x41b5f, 0x800}, - {0x41bfb, 0x6b00}, - {0x41bff, 0x0}, -- {0x41c23, 0x3b00}, -+ {0x41c23, 0x2b00}, - {0x41c27, 0x800}, - {0x41008, 0xc9d8}, - {0x41009, 0x0}, -@@ -10407,7 +10404,7 @@ static struct ddrphy_cfg_param ddr_phy_pie[] = { - {0x41019, 0x0}, - {0x4101a, 0x0}, - {0x4101b, 0x0}, -- {0x4101c, 0xcd88}, -+ {0x4101c, 0xcf08}, - {0x4101d, 0x0}, - {0x4101e, 0x0}, - {0x4101f, 0x0}, diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0003-ccimx95-configure-console-on-LPUART6.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0003-ccimx95-configure-console-on-LPUART6.patch deleted file mode 100644 index a2ff57b68..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0003-ccimx95-configure-console-on-LPUART6.patch +++ /dev/null @@ -1,56 +0,0 @@ -From: Isaac Hermida -Date: Mon, 15 Sep 2025 11:38:55 +0200 -Subject: [PATCH] ccimx95: configure console on LPUART6 - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Javier Viguera ---- - boards/ccimx95/config_board.h | 2 +- - boards/ccimx95/pin_mux.c | 7 +++++++ - devices/MIMX95/oei/soc_clock.c | 2 ++ - 3 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/boards/ccimx95/config_board.h b/boards/ccimx95/config_board.h -index 3095ebf1d8ce..ec97626a2a28 100644 ---- a/boards/ccimx95/config_board.h -+++ b/boards/ccimx95/config_board.h -@@ -52,7 +52,7 @@ - /* Defines */ - - /*! Config for UART instance */ --#define BOARD_DEBUG_UART_INSTANCE 2U -+#define BOARD_DEBUG_UART_INSTANCE 6U - /*! Config for UART baudrate */ - #define BOARD_DEBUG_UART_BAUDRATE 115200U - -diff --git a/boards/ccimx95/pin_mux.c b/boards/ccimx95/pin_mux.c -index a8c15513b578..3cb33909f740 100644 ---- a/boards/ccimx95/pin_mux.c -+++ b/boards/ccimx95/pin_mux.c -@@ -29,5 +29,12 @@ void BOARD_InitPins(void) - - IOMUXC_SetPinMux(IOMUXC_PAD_UART2_TXD__LPUART2_TX, 0); - IOMUXC_SetPinConfig(IOMUXC_PAD_UART2_TXD__LPUART2_TX, IOMUXC_PAD_DSE(0xFU)); -+#elif (BOARD_DEBUG_UART_INSTANCE == 6U) -+ /* Configure LPUART 6 */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_GPIO_IO05__LPUART6_RX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_GPIO_IO05__LPUART6_RX, IOMUXC_PAD_PD(1U)); -+ -+ IOMUXC_SetPinMux(IOMUXC_PAD_GPIO_IO04__LPUART6_TX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_GPIO_IO04__LPUART6_TX, IOMUXC_PAD_DSE(0xFU)); - #endif - } -diff --git a/devices/MIMX95/oei/soc_clock.c b/devices/MIMX95/oei/soc_clock.c -index 3421e3efe143..9205b9a12782 100644 ---- a/devices/MIMX95/oei/soc_clock.c -+++ b/devices/MIMX95/oei/soc_clock.c -@@ -25,6 +25,8 @@ static struct clk_root_cfg clk_root_cfgs[] = { - { CLOCK_ROOT_LPUART1, CLOCK_SRC_OSC24M, 1}, /* 24MHz */ - #elif (BOARD_DEBUG_UART_INSTANCE == 2) - { CLOCK_ROOT_LPUART2, CLOCK_SRC_OSC24M, 1}, /* 24MHz */ -+#elif (BOARD_DEBUG_UART_INSTANCE == 6) -+ { CLOCK_ROOT_LPUART6, CLOCK_SRC_OSC24M, 1}, /* 24MHz */ - #endif - #endif - }; diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0004-ccimx95-add-DDR-configuration-file-for-ccimx95-B0-si.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0004-ccimx95-add-DDR-configuration-file-for-ccimx95-B0-si.patch deleted file mode 100644 index f225cf02a..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei/0004-ccimx95-add-DDR-configuration-file-for-ccimx95-B0-si.patch +++ /dev/null @@ -1,10713 +0,0 @@ -From: Javier Viguera -Date: Mon, 27 Oct 2025 13:11:44 +0100 -Subject: [PATCH] ccimx95: add DDR configuration file for ccimx95 B0 silicon - -*** About Config Tools for i.MX: -Version and Build id: 202509170918 -Installed tools: -Pins (17.0) -Clocks (18.0) -System Manager (1.0) -Peripherals (15.0) -TEE (10.0) -DDR (1.0) -SERDES (1.0) - -Data server: https://mcuxpresso.nxp.com - -Locally installed data: -C:\ProgramData\NXP\mcu_data_25.09 -Processors: -MIMX9596xxxxN (25.09.20) - i.MX 95 - -A basic white space processing has been done on the file: - -fromdos lpddr5_timing.c -sed -i -e '/^};$/{G;}' lpddr5_timing.c -sed -i -e '/^$/N;/^\n$/D' lpddr5_timing.c -sed -i -e '${/^[[:space:]]*$/d;}' lpddr5_timing.c - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Javier Viguera ---- - boards/ccimx95/ddr/Makefile | 2 +- - boards/ccimx95/ddr/lpddr5_timing.c | 10659 +++++++++++++++++++++++++++ - 2 files changed, 10660 insertions(+), 1 deletion(-) - create mode 100644 boards/ccimx95/ddr/lpddr5_timing.c - -diff --git a/boards/ccimx95/ddr/Makefile b/boards/ccimx95/ddr/Makefile -index 8cceb6e345d5..39095fb6d0c8 100644 ---- a/boards/ccimx95/ddr/Makefile -+++ b/boards/ccimx95/ddr/Makefile -@@ -1,4 +1,4 @@ --DDR_CONFIG ?= lpddr5_timing_a1 -+DDR_CONFIG ?= lpddr5_timing - OBJS += $(OUT)/$(DDR_CONFIG).o - - VPATH += boards/ccimx95/ddr -diff --git a/boards/ccimx95/ddr/lpddr5_timing.c b/boards/ccimx95/ddr/lpddr5_timing.c -new file mode 100644 -index 000000000000..108fbcdefe6d ---- /dev/null -+++ b/boards/ccimx95/ddr/lpddr5_timing.c -@@ -0,0 +1,10659 @@ -+/* -+ * Copyright 2025 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ * -+ * Code generated with DDR Tool v3.8.0_0.7-7343b64b3. -+ * DDR PHY FW2024.09-SP2 -+ * Chip revision: B0 -+ * Part number: MT62F2G32D4DS-023 -+ */ -+ -+#include "ddr.h" -+ -+/* Initialize DDRC registers */ -+static struct ddrc_cfg_param ddr_ddrc_cfg[] = { -+ {0x5e080110, 0x41114001U}, -+ {0x5e080000, 0x1ffU}, -+ {0x5e080008, 0x0U}, -+ {0x5e080010, 0x2U}, -+ {0x5e080014, 0x80000U}, -+ {0x5e080020, 0x80000000U}, -+ {0x5e080024, 0x80007ffU}, -+ {0x5e080028, 0x80000000U}, -+ {0x5e08002c, 0x7ffU}, -+ {0x5e080080, 0x80800422U}, -+ {0x5e080084, 0x80800422U}, -+ {0x5e080114, 0x1000U}, -+ {0x5e080260, 0x800a1U}, -+ {0x5e080268, 0x0U}, -+ {0x5e08026c, 0x3d04U}, -+ {0x5e080278, 0x10U}, -+ {0x5e080800, 0x43d3b000U}, -+ {0x5e080804, 0x1f1f1f1fU}, -+ {0x5e080810, 0x14084060U}, -+ {0x5e080c00, 0x40000000U}, -+ {0x5e081000, 0xe3U}, -+ {0x5e081220, 0x0U}, -+ {0x5e081224, 0x0U}, -+ {0x5e081228, 0x0U}, -+ {0x5e08122c, 0x0U}, -+ {0x5e081230, 0x0U}, -+ {0x5e081234, 0x0U}, -+ {0x5e081238, 0x0U}, -+ {0x5e08123c, 0x0U}, -+ {0x5e081240, 0x0U}, -+ {0x5e081244, 0x0U}, -+ {0x5e081248, 0x0U}, -+ {0x5e08124c, 0x0U}, -+ {0x5e081250, 0x0U}, -+ {0x5e081254, 0x0U}, -+ {0x5e081258, 0x0U}, -+ {0x5e08125c, 0x0U}, -+}; -+ -+/* DRAM fsp configurations */ -+static struct ddrc_cfg_param ddr_dram_fsp0_ddrc_cfg[] = { -+ {0x5e080100, 0x020D2100U}, -+ {0x5e080104, 0x4866000CU}, -+ {0x5e080108, 0xF2F08C45U}, -+ {0x5e08010C, 0x20488010U}, -+ {0x5e080124, 0x0C230000U}, -+ {0x5e080160, 0x00000101U}, -+ {0x5e08016C, 0x01300000U}, -+ {0x5e080170, 0x8B010509U}, -+ {0x5e080250, 0x00110A11U}, -+ {0x5e080254, 0x00680040U}, -+ {0x5e080258, 0x03003E80U}, -+ {0x5e08025C, 0x40520200U}, -+ {0x5e080300, 0x08110808U}, -+ {0x5e080304, 0x00680E02U}, -+ {0x5e080308, 0x06040603U}, -+ {0x5e08030C, 0x0030001CU}, -+ {0x5e080310, 0x20610000U}, -+ {0x5e080314, 0x0A0A0407U}, -+}; -+ -+/* PHY Initialize Configuration */ -+static struct ddrphy_cfg_param ddr_ddrphy_cfg[] = { -+ {0x10080, 0x7}, -+ {0x10081, 0x5}, -+ {0x10082, 0x6}, -+ {0x10083, 0x1}, -+ {0x10084, 0x2}, -+ {0x10085, 0x0}, -+ {0x10086, 0x3}, -+ {0x10087, 0x4}, -+ {0x11080, 0x0}, -+ {0x11081, 0x1}, -+ {0x11082, 0x2}, -+ {0x11083, 0x3}, -+ {0x11084, 0x4}, -+ {0x11085, 0x7}, -+ {0x11086, 0x6}, -+ {0x11087, 0x5}, -+ {0x12080, 0x5}, -+ {0x12081, 0x6}, -+ {0x12082, 0x1}, -+ {0x12083, 0x7}, -+ {0x12084, 0x4}, -+ {0x12085, 0x2}, -+ {0x12086, 0x0}, -+ {0x12087, 0x3}, -+ {0x13080, 0x0}, -+ {0x13081, 0x3}, -+ {0x13082, 0x2}, -+ {0x13083, 0x7}, -+ {0x13084, 0x4}, -+ {0x13085, 0x5}, -+ {0x13086, 0x6}, -+ {0x13087, 0x1}, -+ {0x30090, 0x4}, -+ {0x30091, 0x3}, -+ {0x30092, 0x6}, -+ {0x30093, 0x0}, -+ {0x30094, 0x5}, -+ {0x30095, 0x1}, -+ {0x30096, 0x2}, -+ {0x31090, 0x1}, -+ {0x31091, 0x3}, -+ {0x31092, 0x4}, -+ {0x31093, 0x6}, -+ {0x31094, 0x2}, -+ {0x31095, 0x0}, -+ {0x31096, 0x5}, -+ {0x20060, 0x2}, -+ {0x200a5, 0x1}, -+ {0xd0036, 0x0}, -+ {0x200bd, 0xff}, -+ {0x20300, 0x808}, -+ {0x20303, 0x9}, -+ {0x20302, 0x26}, -+ {0x20328, 0x0}, -+ {0x20301, 0x3}, -+ {0x2030b, 0x0}, -+ {0x300a7, 0x0}, -+ {0x310a7, 0x0}, -+ {0x300ae, 0x80}, -+ {0x300ad, 0x80}, -+ {0x300ac, 0x80}, -+ {0x310ae, 0x80}, -+ {0x310ad, 0x80}, -+ {0x310ac, 0x80}, -+ {0xc0086, 0x0}, -+ {0x100a3, 0xb33}, -+ {0x110a3, 0xb3f}, -+ {0x120a3, 0xb33}, -+ {0x130a3, 0xb3f}, -+ {0xc00f1, 0x6000}, -+ {0xc00f2, 0xa9}, -+ {0xc00f3, 0x8000}, -+ {0xc00f4, 0x5}, -+ {0xc00f5, 0x4000}, -+ {0xc00f6, 0x2}, -+ {0xc00f7, 0xf000}, -+ {0xc00f9, 0x6000}, -+ {0xc00fa, 0xa9}, -+ {0xc00fb, 0x8000}, -+ {0xc00fd, 0x4000}, -+ {0xc00ff, 0xf000}, -+ {0x908ff, 0xf}, -+ {0x10093, 0x0}, -+ {0x11093, 0x0}, -+ {0x12093, 0x0}, -+ {0x13093, 0x0}, -+ {0x20051, 0x3}, -+}; -+ -+/* PHY trained csr */ -+static struct ddrphy_cfg_param ddr_ddrphy_trained_csr[] = { -+ {0x200a5, 0x0}, -+ {0xd0036, 0x0}, -+ {0x200bd, 0x0}, -+ {0x20300, 0x0}, -+ {0x20303, 0x0}, -+ {0x20302, 0x0}, -+ {0x20328, 0x0}, -+ {0x20301, 0x0}, -+ {0x2030b, 0x0}, -+ {0x300a7, 0x0}, -+ {0x310a7, 0x0}, -+ {0x300ae, 0x0}, -+ {0x300ad, 0x0}, -+ {0x300ac, 0x0}, -+ {0x310ae, 0x0}, -+ {0x310ad, 0x0}, -+ {0x310ac, 0x0}, -+ {0xc0086, 0x0}, -+ {0x100a3, 0x0}, -+ {0x110a3, 0x0}, -+ {0x120a3, 0x0}, -+ {0x130a3, 0x0}, -+ {0xc00f1, 0x0}, -+ {0xc00f2, 0x0}, -+ {0xc00f3, 0x0}, -+ {0xc00f4, 0x0}, -+ {0xc00f5, 0x0}, -+ {0xc00f6, 0x0}, -+ {0xc00f7, 0x0}, -+ {0xc00f9, 0x0}, -+ {0xc00fa, 0x0}, -+ {0xc00fb, 0x0}, -+ {0xc00fd, 0x0}, -+ {0xc00ff, 0x0}, -+ {0x908ff, 0x0}, -+ {0x10093, 0x0}, -+ {0x11093, 0x0}, -+ {0x12093, 0x0}, -+ {0x13093, 0x0}, -+ {0x20051, 0x0}, -+ {0x90802, 0x0}, -+ {0x20002, 0x0}, -+ {0x20000, 0x0}, -+ {0x90801, 0x0}, -+ {0x90809, 0x0}, -+ {0x1005e, 0x0}, -+ {0x10060, 0x0}, -+ {0x10062, 0x0}, -+ {0x10064, 0x0}, -+ {0x1005f, 0x0}, -+ {0x10061, 0x0}, -+ {0x10063, 0x0}, -+ {0x10065, 0x0}, -+ {0x1105e, 0x0}, -+ {0x11060, 0x0}, -+ {0x11062, 0x0}, -+ {0x11064, 0x0}, -+ {0x1105f, 0x0}, -+ {0x11061, 0x0}, -+ {0x11063, 0x0}, -+ {0x11065, 0x0}, -+ {0x1205e, 0x0}, -+ {0x12060, 0x0}, -+ {0x12062, 0x0}, -+ {0x12064, 0x0}, -+ {0x1205f, 0x0}, -+ {0x12061, 0x0}, -+ {0x12063, 0x0}, -+ {0x12065, 0x0}, -+ {0x1305e, 0x0}, -+ {0x13060, 0x0}, -+ {0x13062, 0x0}, -+ {0x13064, 0x0}, -+ {0x1305f, 0x0}, -+ {0x13061, 0x0}, -+ {0x13063, 0x0}, -+ {0x13065, 0x0}, -+ {0x10005, 0x0}, -+ {0x1000b, 0x0}, -+ {0x11005, 0x0}, -+ {0x1100b, 0x0}, -+ {0x12005, 0x0}, -+ {0x1200b, 0x0}, -+ {0x13005, 0x0}, -+ {0x1300b, 0x0}, -+ {0x20007, 0x0}, -+ {0x20013, 0x0}, -+ {0x30038, 0x0}, -+ {0x30039, 0x0}, -+ {0x3003a, 0x0}, -+ {0x31038, 0x0}, -+ {0x31039, 0x0}, -+ {0x3103a, 0x0}, -+ {0x10038, 0x0}, -+ {0x1003a, 0x0}, -+ {0x11038, 0x0}, -+ {0x1103a, 0x0}, -+ {0x12038, 0x0}, -+ {0x1203a, 0x0}, -+ {0x13038, 0x0}, -+ {0x1303a, 0x0}, -+ {0x1003b, 0x0}, -+ {0x1103b, 0x0}, -+ {0x1203b, 0x0}, -+ {0x1303b, 0x0}, -+ {0x10009, 0x0}, -+ {0x10037, 0x0}, -+ {0x11009, 0x0}, -+ {0x11037, 0x0}, -+ {0x12009, 0x0}, -+ {0x12037, 0x0}, -+ {0x13009, 0x0}, -+ {0x13037, 0x0}, -+ {0x10004, 0x0}, -+ {0x10003, 0x0}, -+ {0x11004, 0x0}, -+ {0x11003, 0x0}, -+ {0x12004, 0x0}, -+ {0x12003, 0x0}, -+ {0x13004, 0x0}, -+ {0x13003, 0x0}, -+ {0x20004, 0x0}, -+ {0x30050, 0x0}, -+ {0x30051, 0x0}, -+ {0x30052, 0x0}, -+ {0x30053, 0x0}, -+ {0x31050, 0x0}, -+ {0x31051, 0x0}, -+ {0x31052, 0x0}, -+ {0x31053, 0x0}, -+ {0x1004e, 0x0}, -+ {0x1004f, 0x0}, -+ {0x10050, 0x0}, -+ {0x10051, 0x0}, -+ {0x1014e, 0x0}, -+ {0x1014f, 0x0}, -+ {0x10150, 0x0}, -+ {0x10151, 0x0}, -+ {0x1024e, 0x0}, -+ {0x1024f, 0x0}, -+ {0x10250, 0x0}, -+ {0x10251, 0x0}, -+ {0x1034e, 0x0}, -+ {0x1034f, 0x0}, -+ {0x10350, 0x0}, -+ {0x10351, 0x0}, -+ {0x1044e, 0x0}, -+ {0x1044f, 0x0}, -+ {0x10450, 0x0}, -+ {0x10451, 0x0}, -+ {0x1054e, 0x0}, -+ {0x1054f, 0x0}, -+ {0x10550, 0x0}, -+ {0x10551, 0x0}, -+ {0x1064e, 0x0}, -+ {0x1064f, 0x0}, -+ {0x10650, 0x0}, -+ {0x10651, 0x0}, -+ {0x1074e, 0x0}, -+ {0x1074f, 0x0}, -+ {0x10750, 0x0}, -+ {0x10751, 0x0}, -+ {0x1084e, 0x0}, -+ {0x1084f, 0x0}, -+ {0x10850, 0x0}, -+ {0x10851, 0x0}, -+ {0x1104e, 0x0}, -+ {0x1104f, 0x0}, -+ {0x11050, 0x0}, -+ {0x11051, 0x0}, -+ {0x1114e, 0x0}, -+ {0x1114f, 0x0}, -+ {0x11150, 0x0}, -+ {0x11151, 0x0}, -+ {0x1124e, 0x0}, -+ {0x1124f, 0x0}, -+ {0x11250, 0x0}, -+ {0x11251, 0x0}, -+ {0x1134e, 0x0}, -+ {0x1134f, 0x0}, -+ {0x11350, 0x0}, -+ {0x11351, 0x0}, -+ {0x1144e, 0x0}, -+ {0x1144f, 0x0}, -+ {0x11450, 0x0}, -+ {0x11451, 0x0}, -+ {0x1154e, 0x0}, -+ {0x1154f, 0x0}, -+ {0x11550, 0x0}, -+ {0x11551, 0x0}, -+ {0x1164e, 0x0}, -+ {0x1164f, 0x0}, -+ {0x11650, 0x0}, -+ {0x11651, 0x0}, -+ {0x1174e, 0x0}, -+ {0x1174f, 0x0}, -+ {0x11750, 0x0}, -+ {0x11751, 0x0}, -+ {0x1184e, 0x0}, -+ {0x1184f, 0x0}, -+ {0x11850, 0x0}, -+ {0x11851, 0x0}, -+ {0x1204e, 0x0}, -+ {0x1204f, 0x0}, -+ {0x12050, 0x0}, -+ {0x12051, 0x0}, -+ {0x1214e, 0x0}, -+ {0x1214f, 0x0}, -+ {0x12150, 0x0}, -+ {0x12151, 0x0}, -+ {0x1224e, 0x0}, -+ {0x1224f, 0x0}, -+ {0x12250, 0x0}, -+ {0x12251, 0x0}, -+ {0x1234e, 0x0}, -+ {0x1234f, 0x0}, -+ {0x12350, 0x0}, -+ {0x12351, 0x0}, -+ {0x1244e, 0x0}, -+ {0x1244f, 0x0}, -+ {0x12450, 0x0}, -+ {0x12451, 0x0}, -+ {0x1254e, 0x0}, -+ {0x1254f, 0x0}, -+ {0x12550, 0x0}, -+ {0x12551, 0x0}, -+ {0x1264e, 0x0}, -+ {0x1264f, 0x0}, -+ {0x12650, 0x0}, -+ {0x12651, 0x0}, -+ {0x1274e, 0x0}, -+ {0x1274f, 0x0}, -+ {0x12750, 0x0}, -+ {0x12751, 0x0}, -+ {0x1284e, 0x0}, -+ {0x1284f, 0x0}, -+ {0x12850, 0x0}, -+ {0x12851, 0x0}, -+ {0x1304e, 0x0}, -+ {0x1304f, 0x0}, -+ {0x13050, 0x0}, -+ {0x13051, 0x0}, -+ {0x1314e, 0x0}, -+ {0x1314f, 0x0}, -+ {0x13150, 0x0}, -+ {0x13151, 0x0}, -+ {0x1324e, 0x0}, -+ {0x1324f, 0x0}, -+ {0x13250, 0x0}, -+ {0x13251, 0x0}, -+ {0x1334e, 0x0}, -+ {0x1334f, 0x0}, -+ {0x13350, 0x0}, -+ {0x13351, 0x0}, -+ {0x1344e, 0x0}, -+ {0x1344f, 0x0}, -+ {0x13450, 0x0}, -+ {0x13451, 0x0}, -+ {0x1354e, 0x0}, -+ {0x1354f, 0x0}, -+ {0x13550, 0x0}, -+ {0x13551, 0x0}, -+ {0x1364e, 0x0}, -+ {0x1364f, 0x0}, -+ {0x13650, 0x0}, -+ {0x13651, 0x0}, -+ {0x1374e, 0x0}, -+ {0x1374f, 0x0}, -+ {0x13750, 0x0}, -+ {0x13751, 0x0}, -+ {0x1384e, 0x0}, -+ {0x1384f, 0x0}, -+ {0x13850, 0x0}, -+ {0x13851, 0x0}, -+ {0x30030, 0x0}, -+ {0x30031, 0x0}, -+ {0x30035, 0x0}, -+ {0x31030, 0x0}, -+ {0x31031, 0x0}, -+ {0x31035, 0x0}, -+ {0x10030, 0x0}, -+ {0x10035, 0x0}, -+ {0x10036, 0x0}, -+ {0x11030, 0x0}, -+ {0x11035, 0x0}, -+ {0x11036, 0x0}, -+ {0x12030, 0x0}, -+ {0x12035, 0x0}, -+ {0x12036, 0x0}, -+ {0x13030, 0x0}, -+ {0x13035, 0x0}, -+ {0x13036, 0x0}, -+ {0x3003c, 0x0}, -+ {0x3103c, 0x0}, -+ {0x1003c, 0x0}, -+ {0x1003d, 0x0}, -+ {0x1003e, 0x0}, -+ {0x1103c, 0x0}, -+ {0x1103d, 0x0}, -+ {0x1103e, 0x0}, -+ {0x1203c, 0x0}, -+ {0x1203d, 0x0}, -+ {0x1203e, 0x0}, -+ {0x1303c, 0x0}, -+ {0x1303d, 0x0}, -+ {0x1303e, 0x0}, -+ {0x20003, 0x0}, -+ {0x10006, 0x0}, -+ {0x11006, 0x0}, -+ {0x12006, 0x0}, -+ {0x13006, 0x0}, -+ {0x20001, 0x0}, -+ {0x20009, 0x0}, -+ {0x20008, 0x0}, -+ {0x200d9, 0x0}, -+ {0x30eef, 0x0}, -+ {0x31eef, 0x0}, -+ {0x20014, 0x0}, -+ {0x9080a, 0x0}, -+ {0x10040, 0x0}, -+ {0x10042, 0x0}, -+ {0x9080d, 0x0}, -+ {0x10043, 0x0}, -+ {0x10044, 0x0}, -+ {0x10045, 0x0}, -+ {0x11040, 0x0}, -+ {0x11042, 0x0}, -+ {0x11043, 0x0}, -+ {0x11044, 0x0}, -+ {0x11045, 0x0}, -+ {0x12040, 0x0}, -+ {0x12042, 0x0}, -+ {0x12043, 0x0}, -+ {0x12044, 0x0}, -+ {0x12045, 0x0}, -+ {0x13040, 0x0}, -+ {0x13042, 0x0}, -+ {0x13043, 0x0}, -+ {0x13044, 0x0}, -+ {0x13045, 0x0}, -+ {0x30040, 0x0}, -+ {0x30041, 0x0}, -+ {0x30042, 0x0}, -+ {0x30043, 0x0}, -+ {0x30330, 0x0}, -+ {0x31040, 0x0}, -+ {0x31041, 0x0}, -+ {0x31042, 0x0}, -+ {0x31043, 0x0}, -+ {0x31330, 0x0}, -+ {0x20331, 0x0}, -+ {0x10048, 0x0}, -+ {0x1004a, 0x0}, -+ {0x1004b, 0x0}, -+ {0x1004c, 0x0}, -+ {0x1004d, 0x0}, -+ {0x11048, 0x0}, -+ {0x1104a, 0x0}, -+ {0x1104b, 0x0}, -+ {0x1104c, 0x0}, -+ {0x1104d, 0x0}, -+ {0x12048, 0x0}, -+ {0x1204a, 0x0}, -+ {0x1204b, 0x0}, -+ {0x1204c, 0x0}, -+ {0x1204d, 0x0}, -+ {0x13048, 0x0}, -+ {0x1304a, 0x0}, -+ {0x1304b, 0x0}, -+ {0x1304c, 0x0}, -+ {0x1304d, 0x0}, -+ {0x30048, 0x0}, -+ {0x30049, 0x0}, -+ {0x3004a, 0x0}, -+ {0x3004b, 0x0}, -+ {0x31048, 0x0}, -+ {0x31049, 0x0}, -+ {0x3104a, 0x0}, -+ {0x3104b, 0x0}, -+ {0x30033, 0x0}, -+ {0x30034, 0x0}, -+ {0x3002e, 0x0}, -+ {0x31033, 0x0}, -+ {0x31034, 0x0}, -+ {0x3102e, 0x0}, -+ {0x10033, 0x0}, -+ {0x1002e, 0x0}, -+ {0x1002f, 0x0}, -+ {0x11033, 0x0}, -+ {0x1102e, 0x0}, -+ {0x1102f, 0x0}, -+ {0x12033, 0x0}, -+ {0x1202e, 0x0}, -+ {0x1202f, 0x0}, -+ {0x13033, 0x0}, -+ {0x1302e, 0x0}, -+ {0x1302f, 0x0}, -+ {0x90806, 0x0}, -+ {0x100e8, 0x0}, -+ {0x100e9, 0x0}, -+ {0x110e8, 0x0}, -+ {0x110e9, 0x0}, -+ {0x120e8, 0x0}, -+ {0x120e9, 0x0}, -+ {0x130e8, 0x0}, -+ {0x130e9, 0x0}, -+ {0x10001, 0x0}, -+ {0x11001, 0x0}, -+ {0x12001, 0x0}, -+ {0x13001, 0x0}, -+ {0x20012, 0x0}, -+ {0x20017, 0x0}, -+ {0x2000a, 0x0}, -+ {0x20186, 0x0}, -+ {0x20187, 0x0}, -+ {0x20010, 0x0}, -+ {0x20011, 0x0}, -+ {0x9080b, 0x0}, -+ {0x9080c, 0x0}, -+ {0x100a5, 0x0}, -+ {0x110a5, 0x0}, -+ {0x120a5, 0x0}, -+ {0x130a5, 0x0}, -+ {0x10014, 0x0}, -+ {0x11014, 0x0}, -+ {0x12014, 0x0}, -+ {0x13014, 0x0}, -+ {0x20035, 0x0}, -+ {0x20036, 0x0}, -+ {0x20037, 0x0}, -+ {0x20038, 0x0}, -+ {0x20039, 0x0}, -+ {0x2003a, 0x0}, -+ {0x2003b, 0x0}, -+ {0x2003c, 0x0}, -+ {0x2003d, 0x0}, -+ {0x2003e, 0x0}, -+ {0x2003f, 0x0}, -+ {0x20040, 0x0}, -+ {0x2002c, 0x0}, -+ {0x2002d, 0x0}, -+ {0x20030, 0x0}, -+ {0x2002e, 0x0}, -+ {0x2002f, 0x0}, -+ {0x2000c, 0x0}, -+ {0x2001b, 0x0}, -+ {0x10007, 0x0}, -+ {0x11007, 0x0}, -+ {0x12007, 0x0}, -+ {0x13007, 0x0}, -+ {0x908f0, 0x0}, -+ {0x908f1, 0x0}, -+ {0x908f2, 0x0}, -+ {0x908f3, 0x0}, -+ {0x908f4, 0x0}, -+ {0x908f5, 0x0}, -+ {0x908f6, 0x0}, -+ {0x908f7, 0x0}, -+ {0x41008, 0x0}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0x0}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x0}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0x0}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0x0}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x0}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0x0}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0x0}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x0}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0x0}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0x0}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x0}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0x0}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0x0}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x0}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0x0}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0x0}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x0}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0x0}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0x0}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x0}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x0}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x0}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x0}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x0}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x0}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0x0}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0x0}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x0}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0x0}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0x0}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x0}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0x0}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0x0}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0x410b8, 0x0}, -+ {0x410b9, 0x0}, -+ {0x410ba, 0x0}, -+ {0x410bb, 0x0}, -+ {0x410bc, 0x0}, -+ {0x410bd, 0x0}, -+ {0x410be, 0x0}, -+ {0x410bf, 0x0}, -+ {0x410c0, 0x0}, -+ {0x410c1, 0x0}, -+ {0x410c2, 0x0}, -+ {0x410c3, 0x0}, -+ {0x410c4, 0x0}, -+ {0x410c5, 0x0}, -+ {0x410c6, 0x0}, -+ {0x410c7, 0x0}, -+ {0x410c8, 0x0}, -+ {0x410c9, 0x0}, -+ {0x410ca, 0x0}, -+ {0x410cb, 0x0}, -+ {0x410cc, 0x0}, -+ {0x410cd, 0x0}, -+ {0x410ce, 0x0}, -+ {0x410cf, 0x0}, -+ {0x410d0, 0x0}, -+ {0x410d1, 0x0}, -+ {0x410d2, 0x0}, -+ {0x410d3, 0x0}, -+ {0x410d4, 0x0}, -+ {0x410d5, 0x0}, -+ {0x410d6, 0x0}, -+ {0x410d7, 0x0}, -+ {0x410d8, 0x0}, -+ {0x410d9, 0x0}, -+ {0x410da, 0x0}, -+ {0x410db, 0x0}, -+ {0x410dc, 0x0}, -+ {0x410dd, 0x0}, -+ {0x410de, 0x0}, -+ {0x410df, 0x0}, -+ {0x410e0, 0x0}, -+ {0x410e1, 0x0}, -+ {0x410e2, 0x0}, -+ {0x410e3, 0x0}, -+ {0x410e4, 0x0}, -+ {0x410e5, 0x0}, -+ {0x410e6, 0x0}, -+ {0x410e7, 0x0}, -+ {0x410e8, 0x0}, -+ {0x410e9, 0x0}, -+ {0x410ea, 0x0}, -+ {0x410eb, 0x0}, -+ {0x410ec, 0x0}, -+ {0x410ed, 0x0}, -+ {0x410ee, 0x0}, -+ {0x410ef, 0x0}, -+ {0x410f0, 0x0}, -+ {0x410f1, 0x0}, -+ {0x410f2, 0x0}, -+ {0x410f3, 0x0}, -+ {0x410f4, 0x0}, -+ {0x410f5, 0x0}, -+ {0x410f6, 0x0}, -+ {0x410f7, 0x0}, -+ {0x410f8, 0x0}, -+ {0x410f9, 0x0}, -+ {0x410fa, 0x0}, -+ {0x410fb, 0x0}, -+ {0x410fc, 0x0}, -+ {0x410fd, 0x0}, -+ {0x410fe, 0x0}, -+ {0x410ff, 0x0}, -+ {0x41100, 0x0}, -+ {0x41101, 0x0}, -+ {0x41102, 0x0}, -+ {0x41103, 0x0}, -+ {0x41104, 0x0}, -+ {0x41105, 0x0}, -+ {0x41106, 0x0}, -+ {0x41107, 0x0}, -+ {0x41108, 0x0}, -+ {0x41109, 0x0}, -+ {0x4110a, 0x0}, -+ {0x4110b, 0x0}, -+ {0x4110c, 0x0}, -+ {0x4110d, 0x0}, -+ {0x4110e, 0x0}, -+ {0x4110f, 0x0}, -+ {0x41110, 0x0}, -+ {0x41111, 0x0}, -+ {0x41112, 0x0}, -+ {0x41113, 0x0}, -+ {0x41114, 0x0}, -+ {0x41115, 0x0}, -+ {0x41116, 0x0}, -+ {0x41117, 0x0}, -+ {0x41118, 0x0}, -+ {0x41119, 0x0}, -+ {0x4111a, 0x0}, -+ {0x4111b, 0x0}, -+ {0x4111c, 0x0}, -+ {0x4111d, 0x0}, -+ {0x4111e, 0x0}, -+ {0x4111f, 0x0}, -+ {0x41120, 0x0}, -+ {0x41121, 0x0}, -+ {0x41122, 0x0}, -+ {0x41123, 0x0}, -+ {0x41124, 0x0}, -+ {0x41125, 0x0}, -+ {0x41126, 0x0}, -+ {0x41127, 0x0}, -+ {0x41128, 0x0}, -+ {0x41129, 0x0}, -+ {0x4112a, 0x0}, -+ {0x4112b, 0x0}, -+ {0x4112c, 0x0}, -+ {0x4112d, 0x0}, -+ {0x4112e, 0x0}, -+ {0x4112f, 0x0}, -+ {0x41130, 0x0}, -+ {0x41131, 0x0}, -+ {0x41132, 0x0}, -+ {0x41133, 0x0}, -+ {0x41134, 0x0}, -+ {0x41135, 0x0}, -+ {0x41136, 0x0}, -+ {0x41137, 0x0}, -+ {0x41138, 0x0}, -+ {0x41139, 0x0}, -+ {0x4113a, 0x0}, -+ {0x4113b, 0x0}, -+ {0x4113c, 0x0}, -+ {0x4113d, 0x0}, -+ {0x4113e, 0x0}, -+ {0x4113f, 0x0}, -+ {0x41140, 0x0}, -+ {0x41141, 0x0}, -+ {0x41142, 0x0}, -+ {0x41143, 0x0}, -+ {0x41144, 0x0}, -+ {0x41145, 0x0}, -+ {0x41146, 0x0}, -+ {0x41147, 0x0}, -+ {0x41148, 0x0}, -+ {0x41149, 0x0}, -+ {0x4114a, 0x0}, -+ {0x4114b, 0x0}, -+ {0x4114c, 0x0}, -+ {0x4114d, 0x0}, -+ {0x4114e, 0x0}, -+ {0x4114f, 0x0}, -+ {0x41150, 0x0}, -+ {0x41151, 0x0}, -+ {0x41152, 0x0}, -+ {0x41153, 0x0}, -+ {0x41154, 0x0}, -+ {0x41155, 0x0}, -+ {0x41156, 0x0}, -+ {0x41157, 0x0}, -+ {0x41158, 0x0}, -+ {0x41159, 0x0}, -+ {0x4115a, 0x0}, -+ {0x4115b, 0x0}, -+ {0x4115c, 0x0}, -+ {0x4115d, 0x0}, -+ {0x4115e, 0x0}, -+ {0x4115f, 0x0}, -+ {0x41160, 0x0}, -+ {0x41161, 0x0}, -+ {0x41162, 0x0}, -+ {0x41163, 0x0}, -+ {0x41164, 0x0}, -+ {0x41165, 0x0}, -+ {0x41166, 0x0}, -+ {0x41167, 0x0}, -+ {0x41168, 0x0}, -+ {0x41169, 0x0}, -+ {0x4116a, 0x0}, -+ {0x4116b, 0x0}, -+ {0x4116c, 0x0}, -+ {0x4116d, 0x0}, -+ {0x4116e, 0x0}, -+ {0x4116f, 0x0}, -+ {0x41170, 0x0}, -+ {0x41171, 0x0}, -+ {0x41172, 0x0}, -+ {0x41173, 0x0}, -+ {0x41174, 0x0}, -+ {0x41175, 0x0}, -+ {0x41176, 0x0}, -+ {0x41177, 0x0}, -+ {0x41178, 0x0}, -+ {0x41179, 0x0}, -+ {0x4117a, 0x0}, -+ {0x4117b, 0x0}, -+ {0x4117c, 0x0}, -+ {0x4117d, 0x0}, -+ {0x4117e, 0x0}, -+ {0x4117f, 0x0}, -+ {0x41180, 0x0}, -+ {0x41181, 0x0}, -+ {0x41182, 0x0}, -+ {0x41183, 0x0}, -+ {0x41184, 0x0}, -+ {0x41185, 0x0}, -+ {0x41186, 0x0}, -+ {0x41187, 0x0}, -+ {0x41188, 0x0}, -+ {0x41189, 0x0}, -+ {0x4118a, 0x0}, -+ {0x4118b, 0x0}, -+ {0x4118c, 0x0}, -+ {0x4118d, 0x0}, -+ {0x4118e, 0x0}, -+ {0x4118f, 0x0}, -+ {0x41190, 0x0}, -+ {0x41191, 0x0}, -+ {0x41192, 0x0}, -+ {0x41193, 0x0}, -+ {0x41194, 0x0}, -+ {0x41195, 0x0}, -+ {0x41196, 0x0}, -+ {0x41197, 0x0}, -+ {0x41198, 0x0}, -+ {0x41199, 0x0}, -+ {0x4119a, 0x0}, -+ {0x4119b, 0x0}, -+ {0x4119c, 0x0}, -+ {0x4119d, 0x0}, -+ {0x4119e, 0x0}, -+ {0x4119f, 0x0}, -+ {0x411a0, 0x0}, -+ {0x411a1, 0x0}, -+ {0x411a2, 0x0}, -+ {0x411a3, 0x0}, -+ {0x411a4, 0x0}, -+ {0x411a5, 0x0}, -+ {0x411a6, 0x0}, -+ {0x411a7, 0x0}, -+ {0x411a8, 0x0}, -+ {0x411a9, 0x0}, -+ {0x411aa, 0x0}, -+ {0x411ab, 0x0}, -+ {0x411ac, 0x0}, -+ {0x411ad, 0x0}, -+ {0x411ae, 0x0}, -+ {0x411af, 0x0}, -+ {0x411b0, 0x0}, -+ {0x411b1, 0x0}, -+ {0x411b2, 0x0}, -+ {0x411b3, 0x0}, -+ {0x411b4, 0x0}, -+ {0x411b5, 0x0}, -+ {0x411b6, 0x0}, -+ {0x411b7, 0x0}, -+ {0x411b8, 0x0}, -+ {0x411b9, 0x0}, -+ {0x411ba, 0x0}, -+ {0x411bb, 0x0}, -+ {0x411bc, 0x0}, -+ {0x411bd, 0x0}, -+ {0x411be, 0x0}, -+ {0x411bf, 0x0}, -+ {0x411c0, 0x0}, -+ {0x411c1, 0x0}, -+ {0x411c2, 0x0}, -+ {0x411c3, 0x0}, -+ {0x411c4, 0x0}, -+ {0x411c5, 0x0}, -+ {0x411c6, 0x0}, -+ {0x411c7, 0x0}, -+ {0x20015, 0x0}, -+ {0x2004a, 0x0}, -+ {0x2004b, 0x0}, -+ {0x2004c, 0x0}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x0}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20041, 0x0}, -+ {0x20045, 0x0}, -+ {0x10057, 0x0}, -+ {0x11057, 0x0}, -+ {0x12057, 0x0}, -+ {0x13057, 0x0}, -+ {0x1000f, 0x0}, -+ {0x1100f, 0x0}, -+ {0x1200f, 0x0}, -+ {0x1300f, 0x0}, -+ {0x90803, 0x0}, -+ {0x90804, 0x0}, -+ {0x90805, 0x0}, -+ {0x90903, 0x0}, -+ {0x9090b, 0x0}, -+ {0x90811, 0x0}, -+ {0x90812, 0x0}, -+ {0x20072, 0x0}, -+ {0x9080e, 0x0}, -+ {0x20073, 0x0}, -+ {0x9080f, 0x0}, -+ {0x41000, 0x0}, -+ {0x41001, 0x0}, -+ {0x41002, 0x0}, -+ {0x41003, 0x0}, -+ {0x41004, 0x0}, -+ {0x41005, 0x0}, -+ {0x41006, 0x0}, -+ {0x41007, 0x0}, -+ {0x41388, 0x0}, -+ {0x41389, 0x0}, -+ {0x4138a, 0x0}, -+ {0x4138b, 0x0}, -+ {0x4138c, 0x0}, -+ {0x4138d, 0x0}, -+ {0x4138e, 0x0}, -+ {0x4138f, 0x0}, -+ {0x41390, 0x0}, -+ {0x41391, 0x0}, -+ {0x41392, 0x0}, -+ {0x41393, 0x0}, -+ {0x41394, 0x0}, -+ {0x41395, 0x0}, -+ {0x41396, 0x0}, -+ {0x41397, 0x0}, -+ {0x41398, 0x0}, -+ {0x41399, 0x0}, -+ {0x4139a, 0x0}, -+ {0x4139b, 0x0}, -+ {0x4139c, 0x0}, -+ {0x4139d, 0x0}, -+ {0x4139e, 0x0}, -+ {0x4139f, 0x0}, -+ {0x413a0, 0x0}, -+ {0x413a1, 0x0}, -+ {0x413a2, 0x0}, -+ {0x413a3, 0x0}, -+ {0x413a4, 0x0}, -+ {0x413a5, 0x0}, -+ {0x413a6, 0x0}, -+ {0x413a7, 0x0}, -+ {0x413a8, 0x0}, -+ {0x413a9, 0x0}, -+ {0x413aa, 0x0}, -+ {0x413ab, 0x0}, -+ {0x413ac, 0x0}, -+ {0x413ad, 0x0}, -+ {0x413ae, 0x0}, -+ {0x413af, 0x0}, -+ {0x413b0, 0x0}, -+ {0x413b1, 0x0}, -+ {0x413b2, 0x0}, -+ {0x413b3, 0x0}, -+ {0x413b4, 0x0}, -+ {0x413b5, 0x0}, -+ {0x413b6, 0x0}, -+ {0x413b7, 0x0}, -+ {0x413b8, 0x0}, -+ {0x413b9, 0x0}, -+ {0x413ba, 0x0}, -+ {0x413bb, 0x0}, -+ {0x413bc, 0x0}, -+ {0x413bd, 0x0}, -+ {0x413be, 0x0}, -+ {0x413bf, 0x0}, -+ {0x413c0, 0x0}, -+ {0x413c1, 0x0}, -+ {0x413c2, 0x0}, -+ {0x413c3, 0x0}, -+ {0x413c4, 0x0}, -+ {0x413c5, 0x0}, -+ {0x413c6, 0x0}, -+ {0x413c7, 0x0}, -+ {0x413c8, 0x0}, -+ {0x413c9, 0x0}, -+ {0x413ca, 0x0}, -+ {0x413cb, 0x0}, -+ {0x413cc, 0x0}, -+ {0x413cd, 0x0}, -+ {0x413ce, 0x0}, -+ {0x413cf, 0x0}, -+ {0x413d0, 0x0}, -+ {0x413d1, 0x0}, -+ {0x413d2, 0x0}, -+ {0x413d3, 0x0}, -+ {0x413d4, 0x0}, -+ {0x413d5, 0x0}, -+ {0x413d6, 0x0}, -+ {0x413d7, 0x0}, -+ {0x413d8, 0x0}, -+ {0x413d9, 0x0}, -+ {0x413da, 0x0}, -+ {0x413db, 0x0}, -+ {0x413dc, 0x0}, -+ {0x413dd, 0x0}, -+ {0x413de, 0x0}, -+ {0x413df, 0x0}, -+ {0x413e0, 0x0}, -+ {0x413e1, 0x0}, -+ {0x413e2, 0x0}, -+ {0x413e3, 0x0}, -+ {0x413e4, 0x0}, -+ {0x413e5, 0x0}, -+ {0x413e6, 0x0}, -+ {0x413e7, 0x0}, -+ {0x413e8, 0x0}, -+ {0x413e9, 0x0}, -+ {0x413ea, 0x0}, -+ {0x413eb, 0x0}, -+ {0x413ec, 0x0}, -+ {0x413ed, 0x0}, -+ {0x413ee, 0x0}, -+ {0x413ef, 0x0}, -+ {0x413f0, 0x0}, -+ {0x413f1, 0x0}, -+ {0x413f2, 0x0}, -+ {0x413f3, 0x0}, -+ {0x413f4, 0x0}, -+ {0x413f5, 0x0}, -+ {0x413f6, 0x0}, -+ {0x413f7, 0x0}, -+ {0x413f8, 0x0}, -+ {0x413f9, 0x0}, -+ {0x413fa, 0x0}, -+ {0x413fb, 0x0}, -+ {0x413fc, 0x0}, -+ {0x413fd, 0x0}, -+ {0x413fe, 0x0}, -+ {0x413ff, 0x0}, -+ {0x41400, 0x0}, -+ {0x41401, 0x0}, -+ {0x41402, 0x0}, -+ {0x41403, 0x0}, -+ {0x41404, 0x0}, -+ {0x41405, 0x0}, -+ {0x41406, 0x0}, -+ {0x41407, 0x0}, -+ {0x41408, 0x0}, -+ {0x41409, 0x0}, -+ {0x4140a, 0x0}, -+ {0x4140b, 0x0}, -+ {0x4140c, 0x0}, -+ {0x4140d, 0x0}, -+ {0x4140e, 0x0}, -+ {0x4140f, 0x0}, -+ {0x41410, 0x0}, -+ {0x41411, 0x0}, -+ {0x41412, 0x0}, -+ {0x41413, 0x0}, -+ {0x41414, 0x0}, -+ {0x41415, 0x0}, -+ {0x41416, 0x0}, -+ {0x41417, 0x0}, -+ {0x41418, 0x0}, -+ {0x41419, 0x0}, -+ {0x4141a, 0x0}, -+ {0x4141b, 0x0}, -+ {0x4141c, 0x0}, -+ {0x4141d, 0x0}, -+ {0x4141e, 0x0}, -+ {0x4141f, 0x0}, -+ {0x41420, 0x0}, -+ {0x41421, 0x0}, -+ {0x41422, 0x0}, -+ {0x41423, 0x0}, -+ {0x41424, 0x0}, -+ {0x41425, 0x0}, -+ {0x41426, 0x0}, -+ {0x41427, 0x0}, -+ {0x41428, 0x0}, -+ {0x41429, 0x0}, -+ {0x4142a, 0x0}, -+ {0x4142b, 0x0}, -+ {0x4142c, 0x0}, -+ {0x4142d, 0x0}, -+ {0x4142e, 0x0}, -+ {0x4142f, 0x0}, -+ {0x41430, 0x0}, -+ {0x41431, 0x0}, -+ {0x41432, 0x0}, -+ {0x41433, 0x0}, -+ {0x41434, 0x0}, -+ {0x41435, 0x0}, -+ {0x41436, 0x0}, -+ {0x41437, 0x0}, -+ {0x41438, 0x0}, -+ {0x41439, 0x0}, -+ {0x4143a, 0x0}, -+ {0x4143b, 0x0}, -+ {0x4143c, 0x0}, -+ {0x4143d, 0x0}, -+ {0x4143e, 0x0}, -+ {0x4143f, 0x0}, -+ {0x41440, 0x0}, -+ {0x41441, 0x0}, -+ {0x41442, 0x0}, -+ {0x41443, 0x0}, -+ {0x41444, 0x0}, -+ {0x41445, 0x0}, -+ {0x41446, 0x0}, -+ {0x41447, 0x0}, -+ {0x41448, 0x0}, -+ {0x41449, 0x0}, -+ {0x4144a, 0x0}, -+ {0x4144b, 0x0}, -+ {0x4144c, 0x0}, -+ {0x4144d, 0x0}, -+ {0x4144e, 0x0}, -+ {0x4144f, 0x0}, -+ {0x41450, 0x0}, -+ {0x41451, 0x0}, -+ {0x41452, 0x0}, -+ {0x41453, 0x0}, -+ {0x41454, 0x0}, -+ {0x41455, 0x0}, -+ {0x41456, 0x0}, -+ {0x41457, 0x0}, -+ {0x41458, 0x0}, -+ {0x41459, 0x0}, -+ {0x4145a, 0x0}, -+ {0x4145b, 0x0}, -+ {0x4145c, 0x0}, -+ {0x4145d, 0x0}, -+ {0x4145e, 0x0}, -+ {0x4145f, 0x0}, -+ {0x41460, 0x0}, -+ {0x41461, 0x0}, -+ {0x41462, 0x0}, -+ {0x41463, 0x0}, -+ {0x41464, 0x0}, -+ {0x41465, 0x0}, -+ {0x41466, 0x0}, -+ {0x41467, 0x0}, -+ {0x41468, 0x0}, -+ {0x41469, 0x0}, -+ {0x4146a, 0x0}, -+ {0x4146b, 0x0}, -+ {0x4146c, 0x0}, -+ {0x4146d, 0x0}, -+ {0x4146e, 0x0}, -+ {0x4146f, 0x0}, -+ {0x41470, 0x0}, -+ {0x41471, 0x0}, -+ {0x41472, 0x0}, -+ {0x41473, 0x0}, -+ {0x41474, 0x0}, -+ {0x41475, 0x0}, -+ {0x41476, 0x0}, -+ {0x41477, 0x0}, -+ {0x41478, 0x0}, -+ {0x41479, 0x0}, -+ {0x4147a, 0x0}, -+ {0x4147b, 0x0}, -+ {0x4147c, 0x0}, -+ {0x4147d, 0x0}, -+ {0x4147e, 0x0}, -+ {0x4147f, 0x0}, -+ {0x41480, 0x0}, -+ {0x41481, 0x0}, -+ {0x41482, 0x0}, -+ {0x41483, 0x0}, -+ {0x41484, 0x0}, -+ {0x41485, 0x0}, -+ {0x41486, 0x0}, -+ {0x41487, 0x0}, -+ {0x41488, 0x0}, -+ {0x41489, 0x0}, -+ {0x4148a, 0x0}, -+ {0x4148b, 0x0}, -+ {0x4148c, 0x0}, -+ {0x4148d, 0x0}, -+ {0x4148e, 0x0}, -+ {0x4148f, 0x0}, -+ {0x41490, 0x0}, -+ {0x41491, 0x0}, -+ {0x41492, 0x0}, -+ {0x41493, 0x0}, -+ {0x41494, 0x0}, -+ {0x41495, 0x0}, -+ {0x41496, 0x0}, -+ {0x41497, 0x0}, -+ {0x41498, 0x0}, -+ {0x41499, 0x0}, -+ {0x4149a, 0x0}, -+ {0x4149b, 0x0}, -+ {0x4149c, 0x0}, -+ {0x4149d, 0x0}, -+ {0x4149e, 0x0}, -+ {0x4149f, 0x0}, -+ {0x414a0, 0x0}, -+ {0x414a1, 0x0}, -+ {0x414a2, 0x0}, -+ {0x414a3, 0x0}, -+ {0x414a4, 0x0}, -+ {0x414a5, 0x0}, -+ {0x414a6, 0x0}, -+ {0x414a7, 0x0}, -+ {0x414a8, 0x0}, -+ {0x414a9, 0x0}, -+ {0x414aa, 0x0}, -+ {0x414ab, 0x0}, -+ {0x414ac, 0x0}, -+ {0x414ad, 0x0}, -+ {0x414ae, 0x0}, -+ {0x414af, 0x0}, -+ {0x414b0, 0x0}, -+ {0x414b1, 0x0}, -+ {0x414b2, 0x0}, -+ {0x414b3, 0x0}, -+ {0x414b4, 0x0}, -+ {0x414b5, 0x0}, -+ {0x414b6, 0x0}, -+ {0x414b7, 0x0}, -+ {0x414b8, 0x0}, -+ {0x414b9, 0x0}, -+ {0x414ba, 0x0}, -+ {0x414bb, 0x0}, -+ {0x414bc, 0x0}, -+ {0x414bd, 0x0}, -+ {0x414be, 0x0}, -+ {0x414bf, 0x0}, -+ {0x414c0, 0x0}, -+ {0x414c1, 0x0}, -+ {0x414c2, 0x0}, -+ {0x414c3, 0x0}, -+ {0x414c4, 0x0}, -+ {0x414c5, 0x0}, -+ {0x414c6, 0x0}, -+ {0x414c7, 0x0}, -+ {0x414c8, 0x0}, -+ {0x414c9, 0x0}, -+ {0x414ca, 0x0}, -+ {0x414cb, 0x0}, -+ {0x414cc, 0x0}, -+ {0x414cd, 0x0}, -+ {0x414ce, 0x0}, -+ {0x414cf, 0x0}, -+ {0x414d0, 0x0}, -+ {0x414d1, 0x0}, -+ {0x414d2, 0x0}, -+ {0x414d3, 0x0}, -+ {0x414d4, 0x0}, -+ {0x414d5, 0x0}, -+ {0x414d6, 0x0}, -+ {0x414d7, 0x0}, -+ {0x414d8, 0x0}, -+ {0x414d9, 0x0}, -+ {0x414da, 0x0}, -+ {0x414db, 0x0}, -+ {0x414dc, 0x0}, -+ {0x414dd, 0x0}, -+ {0x414de, 0x0}, -+ {0x414df, 0x0}, -+ {0x414e0, 0x0}, -+ {0x414e1, 0x0}, -+ {0x414e2, 0x0}, -+ {0x414e3, 0x0}, -+ {0x414e4, 0x0}, -+ {0x414e5, 0x0}, -+ {0x414e6, 0x0}, -+ {0x414e7, 0x0}, -+ {0x414e8, 0x0}, -+ {0x414e9, 0x0}, -+ {0x414ea, 0x0}, -+ {0x414eb, 0x0}, -+ {0x414ec, 0x0}, -+ {0x414ed, 0x0}, -+ {0x414ee, 0x0}, -+ {0x414ef, 0x0}, -+ {0x414f0, 0x0}, -+ {0x414f1, 0x0}, -+ {0x414f2, 0x0}, -+ {0x414f3, 0x0}, -+ {0x414f4, 0x0}, -+ {0x414f5, 0x0}, -+ {0x414f6, 0x0}, -+ {0x414f7, 0x0}, -+ {0x414f8, 0x0}, -+ {0x414f9, 0x0}, -+ {0x414fa, 0x0}, -+ {0x414fb, 0x0}, -+ {0x414fc, 0x0}, -+ {0x414fd, 0x0}, -+ {0x414fe, 0x0}, -+ {0x414ff, 0x0}, -+ {0x41500, 0x0}, -+ {0x41501, 0x0}, -+ {0x41502, 0x0}, -+ {0x41503, 0x0}, -+ {0x41504, 0x0}, -+ {0x41505, 0x0}, -+ {0x41506, 0x0}, -+ {0x41507, 0x0}, -+ {0x41508, 0x0}, -+ {0x41509, 0x0}, -+ {0x4150a, 0x0}, -+ {0x4150b, 0x0}, -+ {0x4150c, 0x0}, -+ {0x4150d, 0x0}, -+ {0x4150e, 0x0}, -+ {0x4150f, 0x0}, -+ {0x41510, 0x0}, -+ {0x41511, 0x0}, -+ {0x41512, 0x0}, -+ {0x41513, 0x0}, -+ {0x41514, 0x0}, -+ {0x41515, 0x0}, -+ {0x41516, 0x0}, -+ {0x41517, 0x0}, -+ {0x41518, 0x0}, -+ {0x41519, 0x0}, -+ {0x4151a, 0x0}, -+ {0x4151b, 0x0}, -+ {0x4151c, 0x0}, -+ {0x4151d, 0x0}, -+ {0x4151e, 0x0}, -+ {0x4151f, 0x0}, -+ {0x41520, 0x0}, -+ {0x41521, 0x0}, -+ {0x41522, 0x0}, -+ {0x41523, 0x0}, -+ {0x41524, 0x0}, -+ {0x41525, 0x0}, -+ {0x41526, 0x0}, -+ {0x41527, 0x0}, -+ {0x41528, 0x0}, -+ {0x41529, 0x0}, -+ {0x4152a, 0x0}, -+ {0x4152b, 0x0}, -+ {0x4152c, 0x0}, -+ {0x4152d, 0x0}, -+ {0x4152e, 0x0}, -+ {0x4152f, 0x0}, -+ {0x41530, 0x0}, -+ {0x41531, 0x0}, -+ {0x41532, 0x0}, -+ {0x41533, 0x0}, -+ {0x41534, 0x0}, -+ {0x41535, 0x0}, -+ {0x41536, 0x0}, -+ {0x41537, 0x0}, -+ {0x41538, 0x0}, -+ {0x41539, 0x0}, -+ {0x4153a, 0x0}, -+ {0x4153b, 0x0}, -+ {0x4153c, 0x0}, -+ {0x4153d, 0x0}, -+ {0x4153e, 0x0}, -+ {0x4153f, 0x0}, -+ {0x41540, 0x0}, -+ {0x41541, 0x0}, -+ {0x41542, 0x0}, -+ {0x41543, 0x0}, -+ {0x41544, 0x0}, -+ {0x41545, 0x0}, -+ {0x41546, 0x0}, -+ {0x41547, 0x0}, -+ {0x41548, 0x0}, -+ {0x41549, 0x0}, -+ {0x4154a, 0x0}, -+ {0x4154b, 0x0}, -+ {0x4154c, 0x0}, -+ {0x4154d, 0x0}, -+ {0x4154e, 0x0}, -+ {0x4154f, 0x0}, -+ {0x41550, 0x0}, -+ {0x41551, 0x0}, -+ {0x41552, 0x0}, -+ {0x41553, 0x0}, -+ {0x41554, 0x0}, -+ {0x41555, 0x0}, -+ {0x41556, 0x0}, -+ {0x41557, 0x0}, -+ {0x41558, 0x0}, -+ {0x41559, 0x0}, -+ {0x4155a, 0x0}, -+ {0x4155b, 0x0}, -+ {0x4155c, 0x0}, -+ {0x4155d, 0x0}, -+ {0x4155e, 0x0}, -+ {0x4155f, 0x0}, -+ {0x41560, 0x0}, -+ {0x41561, 0x0}, -+ {0x41562, 0x0}, -+ {0x41563, 0x0}, -+ {0x41564, 0x0}, -+ {0x41565, 0x0}, -+ {0x41566, 0x0}, -+ {0x41567, 0x0}, -+ {0x41568, 0x0}, -+ {0x41569, 0x0}, -+ {0x4156a, 0x0}, -+ {0x4156b, 0x0}, -+ {0x4156c, 0x0}, -+ {0x4156d, 0x0}, -+ {0x4156e, 0x0}, -+ {0x4156f, 0x0}, -+ {0x41570, 0x0}, -+ {0x41571, 0x0}, -+ {0x41572, 0x0}, -+ {0x41573, 0x0}, -+ {0x41574, 0x0}, -+ {0x41575, 0x0}, -+ {0x41576, 0x0}, -+ {0x41577, 0x0}, -+ {0x41578, 0x0}, -+ {0x41579, 0x0}, -+ {0x4157a, 0x0}, -+ {0x4157b, 0x0}, -+ {0x4157c, 0x0}, -+ {0x4157d, 0x0}, -+ {0x4157e, 0x0}, -+ {0x4157f, 0x0}, -+ {0x41580, 0x0}, -+ {0x41581, 0x0}, -+ {0x41582, 0x0}, -+ {0x41583, 0x0}, -+ {0x41584, 0x0}, -+ {0x41585, 0x0}, -+ {0x41586, 0x0}, -+ {0x41587, 0x0}, -+ {0x41588, 0x0}, -+ {0x41589, 0x0}, -+ {0x4158a, 0x0}, -+ {0x4158b, 0x0}, -+ {0x4158c, 0x0}, -+ {0x4158d, 0x0}, -+ {0x4158e, 0x0}, -+ {0x4158f, 0x0}, -+ {0x41590, 0x0}, -+ {0x41591, 0x0}, -+ {0x41592, 0x0}, -+ {0x41593, 0x0}, -+ {0x41594, 0x0}, -+ {0x41595, 0x0}, -+ {0x41596, 0x0}, -+ {0x41597, 0x0}, -+ {0x41598, 0x0}, -+ {0x41599, 0x0}, -+ {0x4159a, 0x0}, -+ {0x4159b, 0x0}, -+ {0x4159c, 0x0}, -+ {0x4159d, 0x0}, -+ {0x4159e, 0x0}, -+ {0x4159f, 0x0}, -+ {0x415a0, 0x0}, -+ {0x415a1, 0x0}, -+ {0x415a2, 0x0}, -+ {0x415a3, 0x0}, -+ {0x415a4, 0x0}, -+ {0x415a5, 0x0}, -+ {0x415a6, 0x0}, -+ {0x415a7, 0x0}, -+ {0x415a8, 0x0}, -+ {0x415a9, 0x0}, -+ {0x415aa, 0x0}, -+ {0x415ab, 0x0}, -+ {0x415ac, 0x0}, -+ {0x415ad, 0x0}, -+ {0x415ae, 0x0}, -+ {0x415af, 0x0}, -+ {0x415b0, 0x0}, -+ {0x415b1, 0x0}, -+ {0x415b2, 0x0}, -+ {0x415b3, 0x0}, -+ {0x415b4, 0x0}, -+ {0x415b5, 0x0}, -+ {0x415b6, 0x0}, -+ {0x415b7, 0x0}, -+ {0x415b8, 0x0}, -+ {0x415b9, 0x0}, -+ {0x415ba, 0x0}, -+ {0x415bb, 0x0}, -+ {0x415bc, 0x0}, -+ {0x415bd, 0x0}, -+ {0x415be, 0x0}, -+ {0x415bf, 0x0}, -+ {0x415c0, 0x0}, -+ {0x415c1, 0x0}, -+ {0x415c2, 0x0}, -+ {0x415c3, 0x0}, -+ {0x415c4, 0x0}, -+ {0x415c5, 0x0}, -+ {0x415c6, 0x0}, -+ {0x415c7, 0x0}, -+ {0x415c8, 0x0}, -+ {0x415c9, 0x0}, -+ {0x415ca, 0x0}, -+ {0x415cb, 0x0}, -+ {0x415cc, 0x0}, -+ {0x415cd, 0x0}, -+ {0x415ce, 0x0}, -+ {0x415cf, 0x0}, -+ {0x415d0, 0x0}, -+ {0x415d1, 0x0}, -+ {0x415d2, 0x0}, -+ {0x415d3, 0x0}, -+ {0x415d4, 0x0}, -+ {0x415d5, 0x0}, -+ {0x415d6, 0x0}, -+ {0x415d7, 0x0}, -+ {0x415d8, 0x0}, -+ {0x415d9, 0x0}, -+ {0x415da, 0x0}, -+ {0x415db, 0x0}, -+ {0x415dc, 0x0}, -+ {0x415dd, 0x0}, -+ {0x415de, 0x0}, -+ {0x415df, 0x0}, -+ {0x415e0, 0x0}, -+ {0x415e1, 0x0}, -+ {0x415e2, 0x0}, -+ {0x415e3, 0x0}, -+ {0x415e4, 0x0}, -+ {0x415e5, 0x0}, -+ {0x415e6, 0x0}, -+ {0x415e7, 0x0}, -+ {0x415e8, 0x0}, -+ {0x415e9, 0x0}, -+ {0x415ea, 0x0}, -+ {0x415eb, 0x0}, -+ {0x415ec, 0x0}, -+ {0x415ed, 0x0}, -+ {0x415ee, 0x0}, -+ {0x415ef, 0x0}, -+ {0x415f0, 0x0}, -+ {0x415f1, 0x0}, -+ {0x415f2, 0x0}, -+ {0x415f3, 0x0}, -+ {0x415f4, 0x0}, -+ {0x415f5, 0x0}, -+ {0x415f6, 0x0}, -+ {0x415f7, 0x0}, -+ {0x415f8, 0x0}, -+ {0x415f9, 0x0}, -+ {0x415fa, 0x0}, -+ {0x415fb, 0x0}, -+ {0x415fc, 0x0}, -+ {0x415fd, 0x0}, -+ {0x415fe, 0x0}, -+ {0x415ff, 0x0}, -+ {0x41600, 0x0}, -+ {0x41601, 0x0}, -+ {0x41602, 0x0}, -+ {0x41603, 0x0}, -+ {0x41604, 0x0}, -+ {0x41605, 0x0}, -+ {0x41606, 0x0}, -+ {0x41607, 0x0}, -+ {0x41608, 0x0}, -+ {0x41609, 0x0}, -+ {0x4160a, 0x0}, -+ {0x4160b, 0x0}, -+ {0x4160c, 0x0}, -+ {0x4160d, 0x0}, -+ {0x4160e, 0x0}, -+ {0x4160f, 0x0}, -+ {0x41610, 0x0}, -+ {0x41611, 0x0}, -+ {0x41612, 0x0}, -+ {0x41613, 0x0}, -+ {0x41614, 0x0}, -+ {0x41615, 0x0}, -+ {0x41616, 0x0}, -+ {0x41617, 0x0}, -+ {0x41618, 0x0}, -+ {0x41619, 0x0}, -+ {0x4161a, 0x0}, -+ {0x4161b, 0x0}, -+ {0x4161c, 0x0}, -+ {0x4161d, 0x0}, -+ {0x4161e, 0x0}, -+ {0x4161f, 0x0}, -+ {0x41620, 0x0}, -+ {0x41621, 0x0}, -+ {0x41622, 0x0}, -+ {0x41623, 0x0}, -+ {0x41624, 0x0}, -+ {0x41625, 0x0}, -+ {0x41626, 0x0}, -+ {0x41627, 0x0}, -+ {0x41628, 0x0}, -+ {0x41629, 0x0}, -+ {0x4162a, 0x0}, -+ {0x4162b, 0x0}, -+ {0x4162c, 0x0}, -+ {0x4162d, 0x0}, -+ {0x4162e, 0x0}, -+ {0x4162f, 0x0}, -+ {0x41630, 0x0}, -+ {0x41631, 0x0}, -+ {0x41632, 0x0}, -+ {0x41633, 0x0}, -+ {0x41634, 0x0}, -+ {0x41635, 0x0}, -+ {0x41636, 0x0}, -+ {0x41637, 0x0}, -+ {0x41638, 0x0}, -+ {0x41639, 0x0}, -+ {0x4163a, 0x0}, -+ {0x4163b, 0x0}, -+ {0x4163c, 0x0}, -+ {0x4163d, 0x0}, -+ {0x4163e, 0x0}, -+ {0x4163f, 0x0}, -+ {0x41640, 0x0}, -+ {0x41641, 0x0}, -+ {0x41642, 0x0}, -+ {0x41643, 0x0}, -+ {0x41644, 0x0}, -+ {0x41645, 0x0}, -+ {0x41646, 0x0}, -+ {0x41647, 0x0}, -+ {0x41648, 0x0}, -+ {0x41649, 0x0}, -+ {0x4164a, 0x0}, -+ {0x4164b, 0x0}, -+ {0x4164c, 0x0}, -+ {0x4164d, 0x0}, -+ {0x4164e, 0x0}, -+ {0x4164f, 0x0}, -+ {0x41650, 0x0}, -+ {0x41651, 0x0}, -+ {0x41652, 0x0}, -+ {0x41653, 0x0}, -+ {0x41654, 0x0}, -+ {0x41655, 0x0}, -+ {0x41656, 0x0}, -+ {0x41657, 0x0}, -+ {0x41658, 0x0}, -+ {0x41659, 0x0}, -+ {0x4165a, 0x0}, -+ {0x4165b, 0x0}, -+ {0x4165c, 0x0}, -+ {0x4165d, 0x0}, -+ {0x4165e, 0x0}, -+ {0x4165f, 0x0}, -+ {0x41660, 0x0}, -+ {0x41661, 0x0}, -+ {0x41662, 0x0}, -+ {0x41663, 0x0}, -+ {0x41664, 0x0}, -+ {0x41665, 0x0}, -+ {0x41666, 0x0}, -+ {0x41667, 0x0}, -+ {0x41668, 0x0}, -+ {0x41669, 0x0}, -+ {0x4166a, 0x0}, -+ {0x4166b, 0x0}, -+ {0x4166c, 0x0}, -+ {0x4166d, 0x0}, -+ {0x4166e, 0x0}, -+ {0x4166f, 0x0}, -+ {0x41670, 0x0}, -+ {0x41671, 0x0}, -+ {0x41672, 0x0}, -+ {0x41673, 0x0}, -+ {0x41674, 0x0}, -+ {0x41675, 0x0}, -+ {0x41676, 0x0}, -+ {0x41677, 0x0}, -+ {0x41678, 0x0}, -+ {0x41679, 0x0}, -+ {0x4167a, 0x0}, -+ {0x4167b, 0x0}, -+ {0x4167c, 0x0}, -+ {0x4167d, 0x0}, -+ {0x4167e, 0x0}, -+ {0x4167f, 0x0}, -+ {0x41680, 0x0}, -+ {0x41681, 0x0}, -+ {0x41682, 0x0}, -+ {0x41683, 0x0}, -+ {0x41684, 0x0}, -+ {0x41685, 0x0}, -+ {0x41686, 0x0}, -+ {0x41687, 0x0}, -+ {0x41688, 0x0}, -+ {0x41689, 0x0}, -+ {0x4168a, 0x0}, -+ {0x4168b, 0x0}, -+ {0x4168c, 0x0}, -+ {0x4168d, 0x0}, -+ {0x4168e, 0x0}, -+ {0x4168f, 0x0}, -+ {0x41690, 0x0}, -+ {0x41691, 0x0}, -+ {0x41692, 0x0}, -+ {0x41693, 0x0}, -+ {0x41694, 0x0}, -+ {0x41695, 0x0}, -+ {0x41696, 0x0}, -+ {0x41697, 0x0}, -+ {0x41698, 0x0}, -+ {0x41699, 0x0}, -+ {0x4169a, 0x0}, -+ {0x4169b, 0x0}, -+ {0x4169c, 0x0}, -+ {0x4169d, 0x0}, -+ {0x4169e, 0x0}, -+ {0x4169f, 0x0}, -+ {0x416a0, 0x0}, -+ {0x416a1, 0x0}, -+ {0x416a2, 0x0}, -+ {0x416a3, 0x0}, -+ {0x416a4, 0x0}, -+ {0x416a5, 0x0}, -+ {0x416a6, 0x0}, -+ {0x416a7, 0x0}, -+ {0x416a8, 0x0}, -+ {0x416a9, 0x0}, -+ {0x416aa, 0x0}, -+ {0x416ab, 0x0}, -+ {0x416ac, 0x0}, -+ {0x416ad, 0x0}, -+ {0x416ae, 0x0}, -+ {0x416af, 0x0}, -+ {0x416b0, 0x0}, -+ {0x416b1, 0x0}, -+ {0x416b2, 0x0}, -+ {0x416b3, 0x0}, -+ {0x416b4, 0x0}, -+ {0x416b5, 0x0}, -+ {0x416b6, 0x0}, -+ {0x416b7, 0x0}, -+ {0x416b8, 0x0}, -+ {0x416b9, 0x0}, -+ {0x416ba, 0x0}, -+ {0x416bb, 0x0}, -+ {0x416bc, 0x0}, -+ {0x416bd, 0x0}, -+ {0x416be, 0x0}, -+ {0x416bf, 0x0}, -+ {0x416c0, 0x0}, -+ {0x416c1, 0x0}, -+ {0x416c2, 0x0}, -+ {0x416c3, 0x0}, -+ {0x416c4, 0x0}, -+ {0x416c5, 0x0}, -+ {0x416c6, 0x0}, -+ {0x416c7, 0x0}, -+ {0x416c8, 0x0}, -+ {0x416c9, 0x0}, -+ {0x416ca, 0x0}, -+ {0x416cb, 0x0}, -+ {0x416cc, 0x0}, -+ {0x416cd, 0x0}, -+ {0x416ce, 0x0}, -+ {0x416cf, 0x0}, -+ {0x416d0, 0x0}, -+ {0x416d1, 0x0}, -+ {0x416d2, 0x0}, -+ {0x416d3, 0x0}, -+ {0x416d4, 0x0}, -+ {0x416d5, 0x0}, -+ {0x416d6, 0x0}, -+ {0x416d7, 0x0}, -+ {0x416d8, 0x0}, -+ {0x416d9, 0x0}, -+ {0x416da, 0x0}, -+ {0x416db, 0x0}, -+ {0x416dc, 0x0}, -+ {0x416dd, 0x0}, -+ {0x416de, 0x0}, -+ {0x416df, 0x0}, -+ {0x416e0, 0x0}, -+ {0x416e1, 0x0}, -+ {0x416e2, 0x0}, -+ {0x416e3, 0x0}, -+ {0x416e4, 0x0}, -+ {0x416e5, 0x0}, -+ {0x416e6, 0x0}, -+ {0x416e7, 0x0}, -+ {0x416e8, 0x0}, -+ {0x416e9, 0x0}, -+ {0x416ea, 0x0}, -+ {0x416eb, 0x0}, -+ {0x416ec, 0x0}, -+ {0x416ed, 0x0}, -+ {0x416ee, 0x0}, -+ {0x416ef, 0x0}, -+ {0x416f0, 0x0}, -+ {0x416f1, 0x0}, -+ {0x416f2, 0x0}, -+ {0x416f3, 0x0}, -+ {0x416f4, 0x0}, -+ {0x416f5, 0x0}, -+ {0x416f6, 0x0}, -+ {0x416f7, 0x0}, -+ {0x416f8, 0x0}, -+ {0x416f9, 0x0}, -+ {0x416fa, 0x0}, -+ {0x416fb, 0x0}, -+ {0x416fc, 0x0}, -+ {0x416fd, 0x0}, -+ {0x416fe, 0x0}, -+ {0x416ff, 0x0}, -+ {0x41700, 0x0}, -+ {0x41701, 0x0}, -+ {0x41702, 0x0}, -+ {0x41703, 0x0}, -+ {0x41704, 0x0}, -+ {0x41705, 0x0}, -+ {0x41706, 0x0}, -+ {0x41707, 0x0}, -+ {0x41708, 0x0}, -+ {0x41709, 0x0}, -+ {0x4170a, 0x0}, -+ {0x4170b, 0x0}, -+ {0x4170c, 0x0}, -+ {0x4170d, 0x0}, -+ {0x4170e, 0x0}, -+ {0x4170f, 0x0}, -+ {0x41710, 0x0}, -+ {0x41711, 0x0}, -+ {0x41712, 0x0}, -+ {0x41713, 0x0}, -+ {0x41714, 0x0}, -+ {0x41715, 0x0}, -+ {0x41716, 0x0}, -+ {0x41717, 0x0}, -+ {0x41718, 0x0}, -+ {0x41719, 0x0}, -+ {0x4171a, 0x0}, -+ {0x4171b, 0x0}, -+ {0x4171c, 0x0}, -+ {0x4171d, 0x0}, -+ {0x4171e, 0x0}, -+ {0x4171f, 0x0}, -+ {0x41720, 0x0}, -+ {0x41721, 0x0}, -+ {0x41722, 0x0}, -+ {0x41723, 0x0}, -+ {0x41724, 0x0}, -+ {0x41725, 0x0}, -+ {0x41726, 0x0}, -+ {0x41727, 0x0}, -+ {0x41728, 0x0}, -+ {0x41729, 0x0}, -+ {0x4172a, 0x0}, -+ {0x4172b, 0x0}, -+ {0x4172c, 0x0}, -+ {0x4172d, 0x0}, -+ {0x4172e, 0x0}, -+ {0x4172f, 0x0}, -+ {0x41730, 0x0}, -+ {0x41731, 0x0}, -+ {0x41732, 0x0}, -+ {0x41733, 0x0}, -+ {0x41734, 0x0}, -+ {0x41735, 0x0}, -+ {0x41736, 0x0}, -+ {0x41737, 0x0}, -+ {0x41738, 0x0}, -+ {0x41739, 0x0}, -+ {0x4173a, 0x0}, -+ {0x4173b, 0x0}, -+ {0x4173c, 0x0}, -+ {0x4173d, 0x0}, -+ {0x4173e, 0x0}, -+ {0x4173f, 0x0}, -+ {0x41740, 0x0}, -+ {0x41741, 0x0}, -+ {0x41742, 0x0}, -+ {0x41743, 0x0}, -+ {0x41744, 0x0}, -+ {0x41745, 0x0}, -+ {0x41746, 0x0}, -+ {0x41747, 0x0}, -+ {0x41748, 0x0}, -+ {0x41749, 0x0}, -+ {0x4174a, 0x0}, -+ {0x4174b, 0x0}, -+ {0x4174c, 0x0}, -+ {0x4174d, 0x0}, -+ {0x4174e, 0x0}, -+ {0x4174f, 0x0}, -+ {0x41750, 0x0}, -+ {0x41751, 0x0}, -+ {0x41752, 0x0}, -+ {0x41753, 0x0}, -+ {0x41754, 0x0}, -+ {0x41755, 0x0}, -+ {0x41756, 0x0}, -+ {0x41757, 0x0}, -+ {0x41758, 0x0}, -+ {0x41759, 0x0}, -+ {0x4175a, 0x0}, -+ {0x4175b, 0x0}, -+ {0x4175c, 0x0}, -+ {0x4175d, 0x0}, -+ {0x4175e, 0x0}, -+ {0x4175f, 0x0}, -+ {0x41760, 0x0}, -+ {0x41761, 0x0}, -+ {0x41762, 0x0}, -+ {0x41763, 0x0}, -+ {0x41764, 0x0}, -+ {0x41765, 0x0}, -+ {0x41766, 0x0}, -+ {0x41767, 0x0}, -+ {0x41768, 0x0}, -+ {0x41769, 0x0}, -+ {0x4176a, 0x0}, -+ {0x4176b, 0x0}, -+ {0x4176c, 0x0}, -+ {0x4176d, 0x0}, -+ {0x4176e, 0x0}, -+ {0x4176f, 0x0}, -+ {0x41770, 0x0}, -+ {0x41771, 0x0}, -+ {0x41772, 0x0}, -+ {0x41773, 0x0}, -+ {0x41774, 0x0}, -+ {0x41775, 0x0}, -+ {0x41776, 0x0}, -+ {0x41777, 0x0}, -+ {0x41778, 0x0}, -+ {0x41779, 0x0}, -+ {0x4177a, 0x0}, -+ {0x4177b, 0x0}, -+ {0x4177c, 0x0}, -+ {0x4177d, 0x0}, -+ {0x4177e, 0x0}, -+ {0x4177f, 0x0}, -+ {0x41780, 0x0}, -+ {0x41781, 0x0}, -+ {0x41782, 0x0}, -+ {0x41783, 0x0}, -+ {0x41784, 0x0}, -+ {0x41785, 0x0}, -+ {0x41786, 0x0}, -+ {0x41787, 0x0}, -+ {0x41788, 0x0}, -+ {0x41789, 0x0}, -+ {0x4178a, 0x0}, -+ {0x4178b, 0x0}, -+ {0x4178c, 0x0}, -+ {0x4178d, 0x0}, -+ {0x4178e, 0x0}, -+ {0x4178f, 0x0}, -+ {0x41790, 0x0}, -+ {0x41791, 0x0}, -+ {0x41792, 0x0}, -+ {0x41793, 0x0}, -+ {0x41794, 0x0}, -+ {0x41795, 0x0}, -+ {0x41796, 0x0}, -+ {0x41797, 0x0}, -+ {0x41798, 0x0}, -+ {0x41799, 0x0}, -+ {0x4179a, 0x0}, -+ {0x4179b, 0x0}, -+ {0x4179c, 0x0}, -+ {0x4179d, 0x0}, -+ {0x4179e, 0x0}, -+ {0x4179f, 0x0}, -+ {0x417a0, 0x0}, -+ {0x417a1, 0x0}, -+ {0x417a2, 0x0}, -+ {0x417a3, 0x0}, -+ {0x417a4, 0x0}, -+ {0x417a5, 0x0}, -+ {0x417a6, 0x0}, -+ {0x417a7, 0x0}, -+ {0x417a8, 0x0}, -+ {0x417a9, 0x0}, -+ {0x417aa, 0x0}, -+ {0x417ab, 0x0}, -+ {0x417ac, 0x0}, -+ {0x417ad, 0x0}, -+ {0x417ae, 0x0}, -+ {0x417af, 0x0}, -+ {0x417b0, 0x0}, -+ {0x417b1, 0x0}, -+ {0x417b2, 0x0}, -+ {0x417b3, 0x0}, -+ {0x417b4, 0x0}, -+ {0x417b5, 0x0}, -+ {0x417b6, 0x0}, -+ {0x417b7, 0x0}, -+ {0x417b8, 0x0}, -+ {0x417b9, 0x0}, -+ {0x417ba, 0x0}, -+ {0x417bb, 0x0}, -+ {0x417bc, 0x0}, -+ {0x417bd, 0x0}, -+ {0x417be, 0x0}, -+ {0x417bf, 0x0}, -+ {0x417c0, 0x0}, -+ {0x417c1, 0x0}, -+ {0x417c2, 0x0}, -+ {0x417c3, 0x0}, -+ {0x417c4, 0x0}, -+ {0x417c5, 0x0}, -+ {0x417c6, 0x0}, -+ {0x417c7, 0x0}, -+ {0x417c8, 0x0}, -+ {0x417c9, 0x0}, -+ {0x417ca, 0x0}, -+ {0x417cb, 0x0}, -+ {0x417cc, 0x0}, -+ {0x417cd, 0x0}, -+ {0x417ce, 0x0}, -+ {0x417cf, 0x0}, -+ {0x417d0, 0x0}, -+ {0x417d1, 0x0}, -+ {0x417d2, 0x0}, -+ {0x417d3, 0x0}, -+ {0x417d4, 0x0}, -+ {0x417d5, 0x0}, -+ {0x417d6, 0x0}, -+ {0x417d7, 0x0}, -+ {0x417d8, 0x0}, -+ {0x417d9, 0x0}, -+ {0x417da, 0x0}, -+ {0x417db, 0x0}, -+ {0x417dc, 0x0}, -+ {0x417dd, 0x0}, -+ {0x417de, 0x0}, -+ {0x417df, 0x0}, -+ {0x417e0, 0x0}, -+ {0x417e1, 0x0}, -+ {0x417e2, 0x0}, -+ {0x417e3, 0x0}, -+ {0x417e4, 0x0}, -+ {0x417e5, 0x0}, -+ {0x417e6, 0x0}, -+ {0x417e7, 0x0}, -+ {0x417e8, 0x0}, -+ {0x417e9, 0x0}, -+ {0x417ea, 0x0}, -+ {0x417eb, 0x0}, -+ {0x417ec, 0x0}, -+ {0x417ed, 0x0}, -+ {0x417ee, 0x0}, -+ {0x417ef, 0x0}, -+ {0x417f0, 0x0}, -+ {0x417f1, 0x0}, -+ {0x417f2, 0x0}, -+ {0x417f3, 0x0}, -+ {0x417f4, 0x0}, -+ {0x417f5, 0x0}, -+ {0x417f6, 0x0}, -+ {0x417f7, 0x0}, -+ {0x417f8, 0x0}, -+ {0x417f9, 0x0}, -+ {0x417fa, 0x0}, -+ {0x417fb, 0x0}, -+ {0x417fc, 0x0}, -+ {0x417fd, 0x0}, -+ {0x417fe, 0x0}, -+ {0x417ff, 0x0}, -+ {0x41800, 0x0}, -+ {0x41801, 0x0}, -+ {0x41802, 0x0}, -+ {0x41803, 0x0}, -+ {0x41804, 0x0}, -+ {0x41805, 0x0}, -+ {0x41806, 0x0}, -+ {0x41807, 0x0}, -+ {0x41808, 0x0}, -+ {0x41809, 0x0}, -+ {0x4180a, 0x0}, -+ {0x4180b, 0x0}, -+ {0x4180c, 0x0}, -+ {0x4180d, 0x0}, -+ {0x4180e, 0x0}, -+ {0x4180f, 0x0}, -+ {0x41810, 0x0}, -+ {0x41811, 0x0}, -+ {0x41812, 0x0}, -+ {0x41813, 0x0}, -+ {0x41814, 0x0}, -+ {0x41815, 0x0}, -+ {0x41816, 0x0}, -+ {0x41817, 0x0}, -+ {0x41818, 0x0}, -+ {0x41819, 0x0}, -+ {0x4181a, 0x0}, -+ {0x4181b, 0x0}, -+ {0x4181c, 0x0}, -+ {0x4181d, 0x0}, -+ {0x4181e, 0x0}, -+ {0x4181f, 0x0}, -+ {0x41820, 0x0}, -+ {0x41821, 0x0}, -+ {0x41822, 0x0}, -+ {0x41823, 0x0}, -+ {0x41824, 0x0}, -+ {0x41825, 0x0}, -+ {0x41826, 0x0}, -+ {0x41827, 0x0}, -+ {0x41828, 0x0}, -+ {0x41829, 0x0}, -+ {0x4182a, 0x0}, -+ {0x4182b, 0x0}, -+ {0x4182c, 0x0}, -+ {0x4182d, 0x0}, -+ {0x4182e, 0x0}, -+ {0x4182f, 0x0}, -+ {0x41830, 0x0}, -+ {0x41831, 0x0}, -+ {0x41832, 0x0}, -+ {0x41833, 0x0}, -+ {0x41834, 0x0}, -+ {0x41835, 0x0}, -+ {0x41836, 0x0}, -+ {0x41837, 0x0}, -+ {0x41838, 0x0}, -+ {0x41839, 0x0}, -+ {0x4183a, 0x0}, -+ {0x4183b, 0x0}, -+ {0x4183c, 0x0}, -+ {0x4183d, 0x0}, -+ {0x4183e, 0x0}, -+ {0x4183f, 0x0}, -+ {0x41840, 0x0}, -+ {0x41841, 0x0}, -+ {0x41842, 0x0}, -+ {0x41843, 0x0}, -+ {0x41844, 0x0}, -+ {0x41845, 0x0}, -+ {0x41846, 0x0}, -+ {0x41847, 0x0}, -+ {0x41848, 0x0}, -+ {0x41849, 0x0}, -+ {0x4184a, 0x0}, -+ {0x4184b, 0x0}, -+ {0x4184c, 0x0}, -+ {0x4184d, 0x0}, -+ {0x4184e, 0x0}, -+ {0x4184f, 0x0}, -+ {0x41850, 0x0}, -+ {0x41851, 0x0}, -+ {0x41852, 0x0}, -+ {0x41853, 0x0}, -+ {0x41854, 0x0}, -+ {0x41855, 0x0}, -+ {0x41856, 0x0}, -+ {0x41857, 0x0}, -+ {0x41858, 0x0}, -+ {0x41859, 0x0}, -+ {0x4185a, 0x0}, -+ {0x4185b, 0x0}, -+ {0x4185c, 0x0}, -+ {0x4185d, 0x0}, -+ {0x4185e, 0x0}, -+ {0x4185f, 0x0}, -+ {0x41860, 0x0}, -+ {0x41861, 0x0}, -+ {0x41862, 0x0}, -+ {0x41863, 0x0}, -+ {0x41864, 0x0}, -+ {0x41865, 0x0}, -+ {0x41866, 0x0}, -+ {0x41867, 0x0}, -+ {0x41868, 0x0}, -+ {0x41869, 0x0}, -+ {0x4186a, 0x0}, -+ {0x4186b, 0x0}, -+ {0x4186c, 0x0}, -+ {0x4186d, 0x0}, -+ {0x4186e, 0x0}, -+ {0x4186f, 0x0}, -+ {0x41870, 0x0}, -+ {0x41871, 0x0}, -+ {0x41872, 0x0}, -+ {0x41873, 0x0}, -+ {0x41874, 0x0}, -+ {0x41875, 0x0}, -+ {0x41876, 0x0}, -+ {0x41877, 0x0}, -+ {0x41878, 0x0}, -+ {0x41879, 0x0}, -+ {0x4187a, 0x0}, -+ {0x4187b, 0x0}, -+ {0x4187c, 0x0}, -+ {0x4187d, 0x0}, -+ {0x4187e, 0x0}, -+ {0x4187f, 0x0}, -+ {0x41880, 0x0}, -+ {0x41881, 0x0}, -+ {0x41882, 0x0}, -+ {0x41883, 0x0}, -+ {0x41884, 0x0}, -+ {0x41885, 0x0}, -+ {0x41886, 0x0}, -+ {0x41887, 0x0}, -+ {0x41888, 0x0}, -+ {0x41889, 0x0}, -+ {0x4188a, 0x0}, -+ {0x4188b, 0x0}, -+ {0x4188c, 0x0}, -+ {0x4188d, 0x0}, -+ {0x4188e, 0x0}, -+ {0x4188f, 0x0}, -+ {0x41890, 0x0}, -+ {0x41891, 0x0}, -+ {0x41892, 0x0}, -+ {0x41893, 0x0}, -+ {0x41894, 0x0}, -+ {0x41895, 0x0}, -+ {0x41896, 0x0}, -+ {0x41897, 0x0}, -+ {0x41898, 0x0}, -+ {0x41899, 0x0}, -+ {0x4189a, 0x0}, -+ {0x4189b, 0x0}, -+ {0x4189c, 0x0}, -+ {0x4189d, 0x0}, -+ {0x4189e, 0x0}, -+ {0x4189f, 0x0}, -+ {0x418a0, 0x0}, -+ {0x418a1, 0x0}, -+ {0x418a2, 0x0}, -+ {0x418a3, 0x0}, -+ {0x418a4, 0x0}, -+ {0x418a5, 0x0}, -+ {0x418a6, 0x0}, -+ {0x418a7, 0x0}, -+ {0x418a8, 0x0}, -+ {0x418a9, 0x0}, -+ {0x418aa, 0x0}, -+ {0x418ab, 0x0}, -+ {0x418ac, 0x0}, -+ {0x418ad, 0x0}, -+ {0x418ae, 0x0}, -+ {0x418af, 0x0}, -+ {0x418b0, 0x0}, -+ {0x418b1, 0x0}, -+ {0x418b2, 0x0}, -+ {0x418b3, 0x0}, -+ {0x418b4, 0x0}, -+ {0x418b5, 0x0}, -+ {0x418b6, 0x0}, -+ {0x418b7, 0x0}, -+ {0x418b8, 0x0}, -+ {0x418b9, 0x0}, -+ {0x418ba, 0x0}, -+ {0x418bb, 0x0}, -+ {0x418bc, 0x0}, -+ {0x418bd, 0x0}, -+ {0x418be, 0x0}, -+ {0x418bf, 0x0}, -+ {0x418c0, 0x0}, -+ {0x418c1, 0x0}, -+ {0x418c2, 0x0}, -+ {0x418c3, 0x0}, -+ {0x418c4, 0x0}, -+ {0x418c5, 0x0}, -+ {0x418c6, 0x0}, -+ {0x418c7, 0x0}, -+ {0x418c8, 0x0}, -+ {0x418c9, 0x0}, -+ {0x418ca, 0x0}, -+ {0x418cb, 0x0}, -+ {0x418cc, 0x0}, -+ {0x418cd, 0x0}, -+ {0x418ce, 0x0}, -+ {0x418cf, 0x0}, -+ {0x418d0, 0x0}, -+ {0x418d1, 0x0}, -+ {0x418d2, 0x0}, -+ {0x418d3, 0x0}, -+ {0x418d4, 0x0}, -+ {0x418d5, 0x0}, -+ {0x418d6, 0x0}, -+ {0x418d7, 0x0}, -+ {0x418d8, 0x0}, -+ {0x418d9, 0x0}, -+ {0x418da, 0x0}, -+ {0x418db, 0x0}, -+ {0x418dc, 0x0}, -+ {0x418dd, 0x0}, -+ {0x418de, 0x0}, -+ {0x418df, 0x0}, -+ {0x418e0, 0x0}, -+ {0x418e1, 0x0}, -+ {0x418e2, 0x0}, -+ {0x418e3, 0x0}, -+ {0x418e4, 0x0}, -+ {0x418e5, 0x0}, -+ {0x418e6, 0x0}, -+ {0x418e7, 0x0}, -+ {0x418e8, 0x0}, -+ {0x418e9, 0x0}, -+ {0x418ea, 0x0}, -+ {0x418eb, 0x0}, -+ {0x418ec, 0x0}, -+ {0x418ed, 0x0}, -+ {0x418ee, 0x0}, -+ {0x418ef, 0x0}, -+ {0x418f0, 0x0}, -+ {0x418f1, 0x0}, -+ {0x418f2, 0x0}, -+ {0x418f3, 0x0}, -+ {0x418f4, 0x0}, -+ {0x418f5, 0x0}, -+ {0x418f6, 0x0}, -+ {0x418f7, 0x0}, -+ {0x418f8, 0x0}, -+ {0x418f9, 0x0}, -+ {0x418fa, 0x0}, -+ {0x418fb, 0x0}, -+ {0x418fc, 0x0}, -+ {0x418fd, 0x0}, -+ {0x418fe, 0x0}, -+ {0x418ff, 0x0}, -+ {0x41900, 0x0}, -+ {0x41901, 0x0}, -+ {0x41902, 0x0}, -+ {0x41903, 0x0}, -+ {0x41904, 0x0}, -+ {0x41905, 0x0}, -+ {0x41906, 0x0}, -+ {0x41907, 0x0}, -+ {0x41908, 0x0}, -+ {0x41909, 0x0}, -+ {0x4190a, 0x0}, -+ {0x4190b, 0x0}, -+ {0x4190c, 0x0}, -+ {0x4190d, 0x0}, -+ {0x4190e, 0x0}, -+ {0x4190f, 0x0}, -+ {0x41910, 0x0}, -+ {0x41911, 0x0}, -+ {0x41912, 0x0}, -+ {0x41913, 0x0}, -+ {0x41914, 0x0}, -+ {0x41915, 0x0}, -+ {0x41916, 0x0}, -+ {0x41917, 0x0}, -+ {0x41918, 0x0}, -+ {0x41919, 0x0}, -+ {0x4191a, 0x0}, -+ {0x4191b, 0x0}, -+ {0x4191c, 0x0}, -+ {0x4191d, 0x0}, -+ {0x4191e, 0x0}, -+ {0x4191f, 0x0}, -+ {0x41920, 0x0}, -+ {0x41921, 0x0}, -+ {0x41922, 0x0}, -+ {0x41923, 0x0}, -+ {0x41924, 0x0}, -+ {0x41925, 0x0}, -+ {0x41926, 0x0}, -+ {0x41927, 0x0}, -+ {0x41928, 0x0}, -+ {0x41929, 0x0}, -+ {0x4192a, 0x0}, -+ {0x4192b, 0x0}, -+ {0x4192c, 0x0}, -+ {0x4192d, 0x0}, -+ {0x4192e, 0x0}, -+ {0x4192f, 0x0}, -+ {0x41930, 0x0}, -+ {0x41931, 0x0}, -+ {0x41932, 0x0}, -+ {0x41933, 0x0}, -+ {0x41934, 0x0}, -+ {0x41935, 0x0}, -+ {0x41936, 0x0}, -+ {0x41937, 0x0}, -+ {0x41938, 0x0}, -+ {0x41939, 0x0}, -+ {0x4193a, 0x0}, -+ {0x4193b, 0x0}, -+ {0x4193c, 0x0}, -+ {0x4193d, 0x0}, -+ {0x4193e, 0x0}, -+ {0x4193f, 0x0}, -+ {0x41940, 0x0}, -+ {0x41941, 0x0}, -+ {0x41942, 0x0}, -+ {0x41943, 0x0}, -+ {0x41944, 0x0}, -+ {0x41945, 0x0}, -+ {0x41946, 0x0}, -+ {0x41947, 0x0}, -+ {0x41948, 0x0}, -+ {0x41949, 0x0}, -+ {0x4194a, 0x0}, -+ {0x4194b, 0x0}, -+ {0x4194c, 0x0}, -+ {0x4194d, 0x0}, -+ {0x4194e, 0x0}, -+ {0x4194f, 0x0}, -+ {0x41950, 0x0}, -+ {0x41951, 0x0}, -+ {0x41952, 0x0}, -+ {0x41953, 0x0}, -+ {0x41954, 0x0}, -+ {0x41955, 0x0}, -+ {0x41956, 0x0}, -+ {0x41957, 0x0}, -+ {0x41958, 0x0}, -+ {0x41959, 0x0}, -+ {0x4195a, 0x0}, -+ {0x4195b, 0x0}, -+ {0x4195c, 0x0}, -+ {0x4195d, 0x0}, -+ {0x4195e, 0x0}, -+ {0x4195f, 0x0}, -+ {0x41960, 0x0}, -+ {0x41961, 0x0}, -+ {0x41962, 0x0}, -+ {0x41963, 0x0}, -+ {0x41964, 0x0}, -+ {0x41965, 0x0}, -+ {0x41966, 0x0}, -+ {0x41967, 0x0}, -+ {0x41968, 0x0}, -+ {0x41969, 0x0}, -+ {0x4196a, 0x0}, -+ {0x4196b, 0x0}, -+ {0x4196c, 0x0}, -+ {0x4196d, 0x0}, -+ {0x4196e, 0x0}, -+ {0x4196f, 0x0}, -+ {0x41970, 0x0}, -+ {0x41971, 0x0}, -+ {0x41972, 0x0}, -+ {0x41973, 0x0}, -+ {0x41974, 0x0}, -+ {0x41975, 0x0}, -+ {0x41976, 0x0}, -+ {0x41977, 0x0}, -+ {0x41978, 0x0}, -+ {0x41979, 0x0}, -+ {0x4197a, 0x0}, -+ {0x4197b, 0x0}, -+ {0x4197c, 0x0}, -+ {0x4197d, 0x0}, -+ {0x4197e, 0x0}, -+ {0x4197f, 0x0}, -+ {0x41980, 0x0}, -+ {0x41981, 0x0}, -+ {0x41982, 0x0}, -+ {0x41983, 0x0}, -+ {0x41984, 0x0}, -+ {0x41985, 0x0}, -+ {0x41986, 0x0}, -+ {0x41987, 0x0}, -+ {0x41988, 0x0}, -+ {0x41989, 0x0}, -+ {0x4198a, 0x0}, -+ {0x4198b, 0x0}, -+ {0x4198c, 0x0}, -+ {0x4198d, 0x0}, -+ {0x4198e, 0x0}, -+ {0x4198f, 0x0}, -+ {0x41990, 0x0}, -+ {0x41991, 0x0}, -+ {0x41992, 0x0}, -+ {0x41993, 0x0}, -+ {0x41994, 0x0}, -+ {0x41995, 0x0}, -+ {0x41996, 0x0}, -+ {0x41997, 0x0}, -+ {0x41998, 0x0}, -+ {0x41999, 0x0}, -+ {0x4199a, 0x0}, -+ {0x4199b, 0x0}, -+ {0x4199c, 0x0}, -+ {0x4199d, 0x0}, -+ {0x4199e, 0x0}, -+ {0x4199f, 0x0}, -+ {0x419a0, 0x0}, -+ {0x419a1, 0x0}, -+ {0x419a2, 0x0}, -+ {0x419a3, 0x0}, -+ {0x419a4, 0x0}, -+ {0x419a5, 0x0}, -+ {0x419a6, 0x0}, -+ {0x419a7, 0x0}, -+ {0x419a8, 0x0}, -+ {0x419a9, 0x0}, -+ {0x419aa, 0x0}, -+ {0x419ab, 0x0}, -+ {0x419ac, 0x0}, -+ {0x419ad, 0x0}, -+ {0x419ae, 0x0}, -+ {0x419af, 0x0}, -+ {0x419b0, 0x0}, -+ {0x419b1, 0x0}, -+ {0x419b2, 0x0}, -+ {0x419b3, 0x0}, -+ {0x419b4, 0x0}, -+ {0x419b5, 0x0}, -+ {0x419b6, 0x0}, -+ {0x419b7, 0x0}, -+ {0x419b8, 0x0}, -+ {0x419b9, 0x0}, -+ {0x419ba, 0x0}, -+ {0x419bb, 0x0}, -+ {0x419bc, 0x0}, -+ {0x419bd, 0x0}, -+ {0x419be, 0x0}, -+ {0x419bf, 0x0}, -+ {0x419c0, 0x0}, -+ {0x419c1, 0x0}, -+ {0x419c2, 0x0}, -+ {0x419c3, 0x0}, -+ {0x419c4, 0x0}, -+ {0x419c5, 0x0}, -+ {0x419c6, 0x0}, -+ {0x419c7, 0x0}, -+ {0x419c8, 0x0}, -+ {0x419c9, 0x0}, -+ {0x419ca, 0x0}, -+ {0x419cb, 0x0}, -+ {0x419cc, 0x0}, -+ {0x419cd, 0x0}, -+ {0x419ce, 0x0}, -+ {0x419cf, 0x0}, -+ {0x419d0, 0x0}, -+ {0x419d1, 0x0}, -+ {0x419d2, 0x0}, -+ {0x419d3, 0x0}, -+ {0x419d4, 0x0}, -+ {0x419d5, 0x0}, -+ {0x419d6, 0x0}, -+ {0x419d7, 0x0}, -+ {0x419d8, 0x0}, -+ {0x419d9, 0x0}, -+ {0x419da, 0x0}, -+ {0x419db, 0x0}, -+ {0x419dc, 0x0}, -+ {0x419dd, 0x0}, -+ {0x419de, 0x0}, -+ {0x419df, 0x0}, -+ {0x419e0, 0x0}, -+ {0x419e1, 0x0}, -+ {0x419e2, 0x0}, -+ {0x419e3, 0x0}, -+ {0x419e4, 0x0}, -+ {0x419e5, 0x0}, -+ {0x419e6, 0x0}, -+ {0x419e7, 0x0}, -+ {0x419e8, 0x0}, -+ {0x419e9, 0x0}, -+ {0x419ea, 0x0}, -+ {0x419eb, 0x0}, -+ {0x419ec, 0x0}, -+ {0x419ed, 0x0}, -+ {0x419ee, 0x0}, -+ {0x419ef, 0x0}, -+ {0x419f0, 0x0}, -+ {0x419f1, 0x0}, -+ {0x419f2, 0x0}, -+ {0x419f3, 0x0}, -+ {0x419f4, 0x0}, -+ {0x419f5, 0x0}, -+ {0x419f6, 0x0}, -+ {0x419f7, 0x0}, -+ {0x419f8, 0x0}, -+ {0x419f9, 0x0}, -+ {0x419fa, 0x0}, -+ {0x419fb, 0x0}, -+ {0x419fc, 0x0}, -+ {0x419fd, 0x0}, -+ {0x419fe, 0x0}, -+ {0x419ff, 0x0}, -+ {0x41a00, 0x0}, -+ {0x41a01, 0x0}, -+ {0x41a02, 0x0}, -+ {0x41a03, 0x0}, -+ {0x41a04, 0x0}, -+ {0x41a05, 0x0}, -+ {0x41a06, 0x0}, -+ {0x41a07, 0x0}, -+ {0x41a08, 0x0}, -+ {0x41a09, 0x0}, -+ {0x41a0a, 0x0}, -+ {0x41a0b, 0x0}, -+ {0x41a0c, 0x0}, -+ {0x41a0d, 0x0}, -+ {0x41a0e, 0x0}, -+ {0x41a0f, 0x0}, -+ {0x41a10, 0x0}, -+ {0x41a11, 0x0}, -+ {0x41a12, 0x0}, -+ {0x41a13, 0x0}, -+ {0x41a14, 0x0}, -+ {0x41a15, 0x0}, -+ {0x41a16, 0x0}, -+ {0x41a17, 0x0}, -+ {0x41a18, 0x0}, -+ {0x41a19, 0x0}, -+ {0x41a1a, 0x0}, -+ {0x41a1b, 0x0}, -+ {0x41a1c, 0x0}, -+ {0x41a1d, 0x0}, -+ {0x41a1e, 0x0}, -+ {0x41a1f, 0x0}, -+ {0x41a20, 0x0}, -+ {0x41a21, 0x0}, -+ {0x41a22, 0x0}, -+ {0x41a23, 0x0}, -+ {0x41a24, 0x0}, -+ {0x41a25, 0x0}, -+ {0x41a26, 0x0}, -+ {0x41a27, 0x0}, -+ {0x41a28, 0x0}, -+ {0x41a29, 0x0}, -+ {0x41a2a, 0x0}, -+ {0x41a2b, 0x0}, -+ {0x41a2c, 0x0}, -+ {0x41a2d, 0x0}, -+ {0x41a2e, 0x0}, -+ {0x41a2f, 0x0}, -+ {0x41a30, 0x0}, -+ {0x41a31, 0x0}, -+ {0x41a32, 0x0}, -+ {0x41a33, 0x0}, -+ {0x41a34, 0x0}, -+ {0x41a35, 0x0}, -+ {0x41a36, 0x0}, -+ {0x41a37, 0x0}, -+ {0x41a38, 0x0}, -+ {0x41a39, 0x0}, -+ {0x41a3a, 0x0}, -+ {0x41a3b, 0x0}, -+ {0x41a3c, 0x0}, -+ {0x41a3d, 0x0}, -+ {0x41a3e, 0x0}, -+ {0x41a3f, 0x0}, -+ {0x41a40, 0x0}, -+ {0x41a41, 0x0}, -+ {0x41a42, 0x0}, -+ {0x41a43, 0x0}, -+ {0x41a44, 0x0}, -+ {0x41a45, 0x0}, -+ {0x41a46, 0x0}, -+ {0x41a47, 0x0}, -+ {0x41a48, 0x0}, -+ {0x41a49, 0x0}, -+ {0x41a4a, 0x0}, -+ {0x41a4b, 0x0}, -+ {0x41a4c, 0x0}, -+ {0x41a4d, 0x0}, -+ {0x41a4e, 0x0}, -+ {0x41a4f, 0x0}, -+ {0x41a50, 0x0}, -+ {0x41a51, 0x0}, -+ {0x41a52, 0x0}, -+ {0x41a53, 0x0}, -+ {0x41a54, 0x0}, -+ {0x41a55, 0x0}, -+ {0x41a56, 0x0}, -+ {0x41a57, 0x0}, -+ {0x41a58, 0x0}, -+ {0x41a59, 0x0}, -+ {0x41a5a, 0x0}, -+ {0x41a5b, 0x0}, -+ {0x41a5c, 0x0}, -+ {0x41a5d, 0x0}, -+ {0x41a5e, 0x0}, -+ {0x41a5f, 0x0}, -+ {0x41a60, 0x0}, -+ {0x41a61, 0x0}, -+ {0x41a62, 0x0}, -+ {0x41a63, 0x0}, -+ {0x41a64, 0x0}, -+ {0x41a65, 0x0}, -+ {0x41a66, 0x0}, -+ {0x41a67, 0x0}, -+ {0x41a68, 0x0}, -+ {0x41a69, 0x0}, -+ {0x41a6a, 0x0}, -+ {0x41a6b, 0x0}, -+ {0x41a6c, 0x0}, -+ {0x41a6d, 0x0}, -+ {0x41a6e, 0x0}, -+ {0x41a6f, 0x0}, -+ {0x41a70, 0x0}, -+ {0x41a71, 0x0}, -+ {0x41a72, 0x0}, -+ {0x41a73, 0x0}, -+ {0x41a74, 0x0}, -+ {0x41a75, 0x0}, -+ {0x41a76, 0x0}, -+ {0x41a77, 0x0}, -+ {0x41a78, 0x0}, -+ {0x41a79, 0x0}, -+ {0x41a7a, 0x0}, -+ {0x41a7b, 0x0}, -+ {0x41a7c, 0x0}, -+ {0x41a7d, 0x0}, -+ {0x41a7e, 0x0}, -+ {0x41a7f, 0x0}, -+ {0x41a80, 0x0}, -+ {0x41a81, 0x0}, -+ {0x41a82, 0x0}, -+ {0x41a83, 0x0}, -+ {0x41a84, 0x0}, -+ {0x41a85, 0x0}, -+ {0x41a86, 0x0}, -+ {0x41a87, 0x0}, -+ {0x41a88, 0x0}, -+ {0x41a89, 0x0}, -+ {0x41a8a, 0x0}, -+ {0x41a8b, 0x0}, -+ {0x41a8c, 0x0}, -+ {0x41a8d, 0x0}, -+ {0x41a8e, 0x0}, -+ {0x41a8f, 0x0}, -+ {0x41a90, 0x0}, -+ {0x41a91, 0x0}, -+ {0x41a92, 0x0}, -+ {0x41a93, 0x0}, -+ {0x41a94, 0x0}, -+ {0x41a95, 0x0}, -+ {0x41a96, 0x0}, -+ {0x41a97, 0x0}, -+ {0x41a98, 0x0}, -+ {0x41a99, 0x0}, -+ {0x41a9a, 0x0}, -+ {0x41a9b, 0x0}, -+ {0x41a9c, 0x0}, -+ {0x41a9d, 0x0}, -+ {0x41a9e, 0x0}, -+ {0x41a9f, 0x0}, -+ {0x41aa0, 0x0}, -+ {0x41aa1, 0x0}, -+ {0x41aa2, 0x0}, -+ {0x41aa3, 0x0}, -+ {0x41aa4, 0x0}, -+ {0x41aa5, 0x0}, -+ {0x41aa6, 0x0}, -+ {0x41aa7, 0x0}, -+ {0x41aa8, 0x0}, -+ {0x41aa9, 0x0}, -+ {0x41aaa, 0x0}, -+ {0x41aab, 0x0}, -+ {0x41aac, 0x0}, -+ {0x41aad, 0x0}, -+ {0x41aae, 0x0}, -+ {0x41aaf, 0x0}, -+ {0x41ab0, 0x0}, -+ {0x41ab1, 0x0}, -+ {0x41ab2, 0x0}, -+ {0x41ab3, 0x0}, -+ {0x41ab4, 0x0}, -+ {0x41ab5, 0x0}, -+ {0x41ab6, 0x0}, -+ {0x41ab7, 0x0}, -+ {0x41ab8, 0x0}, -+ {0x41ab9, 0x0}, -+ {0x41aba, 0x0}, -+ {0x41abb, 0x0}, -+ {0x41abc, 0x0}, -+ {0x41abd, 0x0}, -+ {0x41abe, 0x0}, -+ {0x41abf, 0x0}, -+ {0x41ac0, 0x0}, -+ {0x41ac1, 0x0}, -+ {0x41ac2, 0x0}, -+ {0x41ac3, 0x0}, -+ {0x41ac4, 0x0}, -+ {0x41ac5, 0x0}, -+ {0x41ac6, 0x0}, -+ {0x41ac7, 0x0}, -+ {0x41ac8, 0x0}, -+ {0x41ac9, 0x0}, -+ {0x41aca, 0x0}, -+ {0x41acb, 0x0}, -+ {0x41acc, 0x0}, -+ {0x41acd, 0x0}, -+ {0x41ace, 0x0}, -+ {0x41acf, 0x0}, -+ {0x41ad0, 0x0}, -+ {0x41ad1, 0x0}, -+ {0x41ad2, 0x0}, -+ {0x41ad3, 0x0}, -+ {0x41ad4, 0x0}, -+ {0x41ad5, 0x0}, -+ {0x41ad6, 0x0}, -+ {0x41ad7, 0x0}, -+ {0x41ad8, 0x0}, -+ {0x41ad9, 0x0}, -+ {0x41ada, 0x0}, -+ {0x41adb, 0x0}, -+ {0x41adc, 0x0}, -+ {0x41add, 0x0}, -+ {0x41ade, 0x0}, -+ {0x41adf, 0x0}, -+ {0x41ae0, 0x0}, -+ {0x41ae1, 0x0}, -+ {0x41ae2, 0x0}, -+ {0x41ae3, 0x0}, -+ {0x41ae4, 0x0}, -+ {0x41ae5, 0x0}, -+ {0x41ae6, 0x0}, -+ {0x41ae7, 0x0}, -+ {0x41ae8, 0x0}, -+ {0x41ae9, 0x0}, -+ {0x41aea, 0x0}, -+ {0x41aeb, 0x0}, -+ {0x41aec, 0x0}, -+ {0x41aed, 0x0}, -+ {0x41aee, 0x0}, -+ {0x41aef, 0x0}, -+ {0x41af0, 0x0}, -+ {0x41af1, 0x0}, -+ {0x41af2, 0x0}, -+ {0x41af3, 0x0}, -+ {0x41af4, 0x0}, -+ {0x41af5, 0x0}, -+ {0x41af6, 0x0}, -+ {0x41af7, 0x0}, -+ {0x41af8, 0x0}, -+ {0x41af9, 0x0}, -+ {0x41afa, 0x0}, -+ {0x41afb, 0x0}, -+ {0x41afc, 0x0}, -+ {0x41afd, 0x0}, -+ {0x41afe, 0x0}, -+ {0x41aff, 0x0}, -+ {0x41b00, 0x0}, -+ {0x41b01, 0x0}, -+ {0x41b02, 0x0}, -+ {0x41b03, 0x0}, -+ {0x41b04, 0x0}, -+ {0x41b05, 0x0}, -+ {0x41b06, 0x0}, -+ {0x41b07, 0x0}, -+ {0x41b08, 0x0}, -+ {0x41b09, 0x0}, -+ {0x41b0a, 0x0}, -+ {0x41b0b, 0x0}, -+ {0x41b0c, 0x0}, -+ {0x41b0d, 0x0}, -+ {0x41b0e, 0x0}, -+ {0x41b0f, 0x0}, -+ {0x41b10, 0x0}, -+ {0x41b11, 0x0}, -+ {0x41b12, 0x0}, -+ {0x41b13, 0x0}, -+ {0x41b14, 0x0}, -+ {0x41b15, 0x0}, -+ {0x41b16, 0x0}, -+ {0x41b17, 0x0}, -+ {0x41b18, 0x0}, -+ {0x41b19, 0x0}, -+ {0x41b1a, 0x0}, -+ {0x41b1b, 0x0}, -+ {0x41b1c, 0x0}, -+ {0x41b1d, 0x0}, -+ {0x41b1e, 0x0}, -+ {0x41b1f, 0x0}, -+ {0x41b20, 0x0}, -+ {0x41b21, 0x0}, -+ {0x41b22, 0x0}, -+ {0x41b23, 0x0}, -+ {0x41b24, 0x0}, -+ {0x41b25, 0x0}, -+ {0x41b26, 0x0}, -+ {0x41b27, 0x0}, -+ {0x41b28, 0x0}, -+ {0x41b29, 0x0}, -+ {0x41b2a, 0x0}, -+ {0x41b2b, 0x0}, -+ {0x41b2c, 0x0}, -+ {0x41b2d, 0x0}, -+ {0x41b2e, 0x0}, -+ {0x41b2f, 0x0}, -+ {0x41b30, 0x0}, -+ {0x41b31, 0x0}, -+ {0x41b32, 0x0}, -+ {0x41b33, 0x0}, -+ {0x41b34, 0x0}, -+ {0x41b35, 0x0}, -+ {0x41b36, 0x0}, -+ {0x41b37, 0x0}, -+ {0x41b38, 0x0}, -+ {0x41b39, 0x0}, -+ {0x41b3a, 0x0}, -+ {0x41b3b, 0x0}, -+ {0x41b3c, 0x0}, -+ {0x41b3d, 0x0}, -+ {0x41b3e, 0x0}, -+ {0x41b3f, 0x0}, -+ {0x41b40, 0x0}, -+ {0x41b41, 0x0}, -+ {0x41b42, 0x0}, -+ {0x41b43, 0x0}, -+ {0x41b44, 0x0}, -+ {0x41b45, 0x0}, -+ {0x41b46, 0x0}, -+ {0x41b47, 0x0}, -+ {0x41b48, 0x0}, -+ {0x41b49, 0x0}, -+ {0x41b4a, 0x0}, -+ {0x41b4b, 0x0}, -+ {0x41b4c, 0x0}, -+ {0x41b4d, 0x0}, -+ {0x41b4e, 0x0}, -+ {0x41b4f, 0x0}, -+ {0x41b50, 0x0}, -+ {0x41b51, 0x0}, -+ {0x41b52, 0x0}, -+ {0x41b53, 0x0}, -+ {0x41b54, 0x0}, -+ {0x41b55, 0x0}, -+ {0x41b56, 0x0}, -+ {0x41b57, 0x0}, -+ {0x41b58, 0x0}, -+ {0x41b59, 0x0}, -+ {0x41b5a, 0x0}, -+ {0x41b5b, 0x0}, -+ {0x41b5c, 0x0}, -+ {0x41b5d, 0x0}, -+ {0x41b5e, 0x0}, -+ {0x41b5f, 0x0}, -+ {0x41b60, 0x0}, -+ {0x41b61, 0x0}, -+ {0x41b62, 0x0}, -+ {0x41b63, 0x0}, -+ {0x41b64, 0x0}, -+ {0x41b65, 0x0}, -+ {0x41b66, 0x0}, -+ {0x41b67, 0x0}, -+ {0x41b68, 0x0}, -+ {0x41b69, 0x0}, -+ {0x41b6a, 0x0}, -+ {0x41b6b, 0x0}, -+ {0x41b6c, 0x0}, -+ {0x41b6d, 0x0}, -+ {0x41b6e, 0x0}, -+ {0x41b6f, 0x0}, -+ {0x41b70, 0x0}, -+ {0x41b71, 0x0}, -+ {0x41b72, 0x0}, -+ {0x41b73, 0x0}, -+ {0x41b74, 0x0}, -+ {0x41b75, 0x0}, -+ {0x41b76, 0x0}, -+ {0x41b77, 0x0}, -+ {0x41b78, 0x0}, -+ {0x41b79, 0x0}, -+ {0x41b7a, 0x0}, -+ {0x41b7b, 0x0}, -+ {0x41b7c, 0x0}, -+ {0x41b7d, 0x0}, -+ {0x41b7e, 0x0}, -+ {0x41b7f, 0x0}, -+ {0x41b80, 0x0}, -+ {0x41b81, 0x0}, -+ {0x41b82, 0x0}, -+ {0x41b83, 0x0}, -+ {0x41b84, 0x0}, -+ {0x41b85, 0x0}, -+ {0x41b86, 0x0}, -+ {0x41b87, 0x0}, -+ {0x41b88, 0x0}, -+ {0x41b89, 0x0}, -+ {0x41b8a, 0x0}, -+ {0x41b8b, 0x0}, -+ {0x41b8c, 0x0}, -+ {0x41b8d, 0x0}, -+ {0x41b8e, 0x0}, -+ {0x41b8f, 0x0}, -+ {0x41b90, 0x0}, -+ {0x41b91, 0x0}, -+ {0x41b92, 0x0}, -+ {0x41b93, 0x0}, -+ {0x41b94, 0x0}, -+ {0x41b95, 0x0}, -+ {0x41b96, 0x0}, -+ {0x41b97, 0x0}, -+ {0x41b98, 0x0}, -+ {0x41b99, 0x0}, -+ {0x41b9a, 0x0}, -+ {0x41b9b, 0x0}, -+ {0x41b9c, 0x0}, -+ {0x41b9d, 0x0}, -+ {0x41b9e, 0x0}, -+ {0x41b9f, 0x0}, -+ {0x41ba0, 0x0}, -+ {0x41ba1, 0x0}, -+ {0x41ba2, 0x0}, -+ {0x41ba3, 0x0}, -+ {0x41ba4, 0x0}, -+ {0x41ba5, 0x0}, -+ {0x41ba6, 0x0}, -+ {0x41ba7, 0x0}, -+ {0x41ba8, 0x0}, -+ {0x41ba9, 0x0}, -+ {0x41baa, 0x0}, -+ {0x41bab, 0x0}, -+ {0x41bac, 0x0}, -+ {0x41bad, 0x0}, -+ {0x41bae, 0x0}, -+ {0x41baf, 0x0}, -+ {0x41bb0, 0x0}, -+ {0x41bb1, 0x0}, -+ {0x41bb2, 0x0}, -+ {0x41bb3, 0x0}, -+ {0x41bb4, 0x0}, -+ {0x41bb5, 0x0}, -+ {0x41bb6, 0x0}, -+ {0x41bb7, 0x0}, -+ {0x41bb8, 0x0}, -+ {0x41bb9, 0x0}, -+ {0x41bba, 0x0}, -+ {0x41bbb, 0x0}, -+ {0x41bbc, 0x0}, -+ {0x41bbd, 0x0}, -+ {0x41bbe, 0x0}, -+ {0x41bbf, 0x0}, -+ {0x41bc0, 0x0}, -+ {0x41bc1, 0x0}, -+ {0x41bc2, 0x0}, -+ {0x41bc3, 0x0}, -+ {0x41bc4, 0x0}, -+ {0x41bc5, 0x0}, -+ {0x41bc6, 0x0}, -+ {0x41bc7, 0x0}, -+ {0x41bc8, 0x0}, -+ {0x41bc9, 0x0}, -+ {0x41bca, 0x0}, -+ {0x41bcb, 0x0}, -+ {0x41bcc, 0x0}, -+ {0x41bcd, 0x0}, -+ {0x41bce, 0x0}, -+ {0x41bcf, 0x0}, -+ {0x41bd0, 0x0}, -+ {0x41bd1, 0x0}, -+ {0x41bd2, 0x0}, -+ {0x41bd3, 0x0}, -+ {0x41bd4, 0x0}, -+ {0x41bd5, 0x0}, -+ {0x41bd6, 0x0}, -+ {0x41bd7, 0x0}, -+ {0x41bd8, 0x0}, -+ {0x41bd9, 0x0}, -+ {0x41bda, 0x0}, -+ {0x41bdb, 0x0}, -+ {0x41bdc, 0x0}, -+ {0x41bdd, 0x0}, -+ {0x41bde, 0x0}, -+ {0x41bdf, 0x0}, -+ {0x41be0, 0x0}, -+ {0x41be1, 0x0}, -+ {0x41be2, 0x0}, -+ {0x41be3, 0x0}, -+ {0x41be4, 0x0}, -+ {0x41be5, 0x0}, -+ {0x41be6, 0x0}, -+ {0x41be7, 0x0}, -+ {0x41be8, 0x0}, -+ {0x41be9, 0x0}, -+ {0x41bea, 0x0}, -+ {0x41beb, 0x0}, -+ {0x41bec, 0x0}, -+ {0x41bed, 0x0}, -+ {0x41bee, 0x0}, -+ {0x41bef, 0x0}, -+ {0x41bf0, 0x0}, -+ {0x41bf1, 0x0}, -+ {0x41bf2, 0x0}, -+ {0x41bf3, 0x0}, -+ {0x41bf4, 0x0}, -+ {0x41bf5, 0x0}, -+ {0x41bf6, 0x0}, -+ {0x41bf7, 0x0}, -+ {0x41bf8, 0x0}, -+ {0x41bf9, 0x0}, -+ {0x41bfa, 0x0}, -+ {0x41bfb, 0x0}, -+ {0x41bfc, 0x0}, -+ {0x41bfd, 0x0}, -+ {0x41bfe, 0x0}, -+ {0x41bff, 0x0}, -+ {0x41c00, 0x0}, -+ {0x41c01, 0x0}, -+ {0x41c02, 0x0}, -+ {0x41c03, 0x0}, -+ {0x41c04, 0x0}, -+ {0x41c05, 0x0}, -+ {0x41c06, 0x0}, -+ {0x41c07, 0x0}, -+ {0x41c08, 0x0}, -+ {0x41c09, 0x0}, -+ {0x41c0a, 0x0}, -+ {0x41c0b, 0x0}, -+ {0x41c0c, 0x0}, -+ {0x41c0d, 0x0}, -+ {0x41c0e, 0x0}, -+ {0x41c0f, 0x0}, -+ {0x41c10, 0x0}, -+ {0x41c11, 0x0}, -+ {0x41c12, 0x0}, -+ {0x41c13, 0x0}, -+ {0x41c14, 0x0}, -+ {0x41c15, 0x0}, -+ {0x41c16, 0x0}, -+ {0x41c17, 0x0}, -+ {0x41c18, 0x0}, -+ {0x41c19, 0x0}, -+ {0x41c1a, 0x0}, -+ {0x41c1b, 0x0}, -+ {0x41c1c, 0x0}, -+ {0x41c1d, 0x0}, -+ {0x41c1e, 0x0}, -+ {0x41c1f, 0x0}, -+ {0x41c20, 0x0}, -+ {0x41c21, 0x0}, -+ {0x41c22, 0x0}, -+ {0x41c23, 0x0}, -+ {0x41c24, 0x0}, -+ {0x41c25, 0x0}, -+ {0x41c26, 0x0}, -+ {0x41c27, 0x0}, -+ {0x41c28, 0x0}, -+ {0x41c29, 0x0}, -+ {0x41c2a, 0x0}, -+ {0x41c2b, 0x0}, -+ {0x41c2c, 0x0}, -+ {0x41c2d, 0x0}, -+ {0x41c2e, 0x0}, -+ {0x41c2f, 0x0}, -+ {0x41c30, 0x0}, -+ {0x41c31, 0x0}, -+ {0x41c32, 0x0}, -+ {0x41c33, 0x0}, -+ {0x41c34, 0x0}, -+ {0x41c35, 0x0}, -+ {0x41c36, 0x0}, -+ {0x41c37, 0x0}, -+ {0x41c38, 0x0}, -+ {0x41c39, 0x0}, -+ {0x41c3a, 0x0}, -+ {0x41c3b, 0x0}, -+ {0x41c3c, 0x0}, -+ {0x41c3d, 0x0}, -+ {0x41c3e, 0x0}, -+ {0x41c3f, 0x0}, -+ {0x41c40, 0x0}, -+ {0x41c41, 0x0}, -+ {0x41c42, 0x0}, -+ {0x41c43, 0x0}, -+ {0x41c44, 0x0}, -+ {0x41c45, 0x0}, -+ {0x41c46, 0x0}, -+ {0x41c47, 0x0}, -+ {0x41c48, 0x0}, -+ {0x41c49, 0x0}, -+ {0x41c4a, 0x0}, -+ {0x41c4b, 0x0}, -+ {0x41c4c, 0x0}, -+ {0x41c4d, 0x0}, -+ {0x41c4e, 0x0}, -+ {0x41c4f, 0x0}, -+ {0x41c50, 0x0}, -+ {0x41c51, 0x0}, -+ {0x41c52, 0x0}, -+ {0x41c53, 0x0}, -+ {0x41c54, 0x0}, -+ {0x41c55, 0x0}, -+ {0x41c56, 0x0}, -+ {0x41c57, 0x0}, -+ {0x9002e, 0x0}, -+ {0x9002f, 0x0}, -+ {0x90030, 0x0}, -+ {0x90031, 0x0}, -+ {0x90032, 0x0}, -+ {0x90033, 0x0}, -+ {0x90034, 0x0}, -+ {0x90035, 0x0}, -+ {0x90036, 0x0}, -+ {0x90037, 0x0}, -+ {0x90038, 0x0}, -+ {0x90039, 0x0}, -+ {0x9003a, 0x0}, -+ {0x9003b, 0x0}, -+ {0x9003c, 0x0}, -+ {0x9003d, 0x0}, -+ {0x9003e, 0x0}, -+ {0x9003f, 0x0}, -+ {0x90040, 0x0}, -+ {0x90041, 0x0}, -+ {0x90042, 0x0}, -+ {0x90043, 0x0}, -+ {0x90044, 0x0}, -+ {0x90045, 0x0}, -+ {0x90046, 0x0}, -+ {0x90047, 0x0}, -+ {0x90048, 0x0}, -+ {0x90049, 0x0}, -+ {0x9004a, 0x0}, -+ {0x9004b, 0x0}, -+ {0x9004c, 0x0}, -+ {0x9004d, 0x0}, -+ {0x9004e, 0x0}, -+ {0x9004f, 0x0}, -+ {0x90050, 0x0}, -+ {0x90051, 0x0}, -+ {0x90052, 0x0}, -+ {0x90053, 0x0}, -+ {0x90054, 0x0}, -+ {0x90055, 0x0}, -+ {0x90056, 0x0}, -+ {0x90057, 0x0}, -+ {0x90058, 0x0}, -+ {0x90059, 0x0}, -+ {0x9005a, 0x0}, -+ {0x9005b, 0x0}, -+ {0x9005c, 0x0}, -+ {0x9005d, 0x0}, -+ {0x9005e, 0x0}, -+ {0x9005f, 0x0}, -+ {0x90060, 0x0}, -+ {0x90061, 0x0}, -+ {0x90062, 0x0}, -+ {0x90063, 0x0}, -+ {0x90064, 0x0}, -+ {0x90065, 0x0}, -+ {0x90066, 0x0}, -+ {0x90067, 0x0}, -+ {0x90068, 0x0}, -+ {0x90069, 0x0}, -+ {0x9006a, 0x0}, -+ {0x9006b, 0x0}, -+ {0x9006c, 0x0}, -+ {0x9006d, 0x0}, -+ {0x9006e, 0x0}, -+ {0x9006f, 0x0}, -+ {0x90070, 0x0}, -+ {0x90071, 0x0}, -+ {0x90072, 0x0}, -+ {0x90073, 0x0}, -+ {0x90074, 0x0}, -+ {0x90075, 0x0}, -+ {0x90076, 0x0}, -+ {0x90077, 0x0}, -+ {0x90078, 0x0}, -+ {0x90079, 0x0}, -+ {0x9007a, 0x0}, -+ {0x9007b, 0x0}, -+ {0x9007c, 0x0}, -+ {0x9007d, 0x0}, -+ {0x9007e, 0x0}, -+ {0x9007f, 0x0}, -+ {0x90080, 0x0}, -+ {0x90081, 0x0}, -+ {0x90082, 0x0}, -+ {0x90083, 0x0}, -+ {0x90084, 0x0}, -+ {0x90085, 0x0}, -+ {0x90086, 0x0}, -+ {0x90087, 0x0}, -+ {0x90088, 0x0}, -+ {0x90089, 0x0}, -+ {0x9008a, 0x0}, -+ {0x9008b, 0x0}, -+ {0x9008c, 0x0}, -+ {0x9008d, 0x0}, -+ {0x9008e, 0x0}, -+ {0x9008f, 0x0}, -+ {0x90090, 0x0}, -+ {0x90091, 0x0}, -+ {0x90092, 0x0}, -+ {0x90093, 0x0}, -+ {0x90094, 0x0}, -+ {0x90095, 0x0}, -+ {0x90096, 0x0}, -+ {0x90097, 0x0}, -+ {0x90098, 0x0}, -+ {0x90099, 0x0}, -+ {0x9009a, 0x0}, -+ {0x9009b, 0x0}, -+ {0x9009c, 0x0}, -+ {0x9009d, 0x0}, -+ {0x9009e, 0x0}, -+ {0x9009f, 0x0}, -+ {0x900a0, 0x0}, -+ {0x900a1, 0x0}, -+ {0x900a2, 0x0}, -+ {0x900a3, 0x0}, -+ {0x900a4, 0x0}, -+ {0x900a5, 0x0}, -+ {0x900a6, 0x0}, -+ {0x900a7, 0x0}, -+ {0x900a8, 0x0}, -+ {0x900a9, 0x0}, -+ {0x900aa, 0x0}, -+ {0x900ab, 0x0}, -+ {0x900ac, 0x0}, -+ {0x900ad, 0x0}, -+ {0x900ae, 0x0}, -+ {0x900af, 0x0}, -+ {0x900b0, 0x0}, -+ {0x900b1, 0x0}, -+ {0x900b2, 0x0}, -+ {0x900b3, 0x0}, -+ {0x900b4, 0x0}, -+ {0x900b5, 0x0}, -+ {0x900b6, 0x0}, -+ {0x900b7, 0x0}, -+ {0x900b8, 0x0}, -+ {0x900b9, 0x0}, -+ {0x900ba, 0x0}, -+ {0x900bb, 0x0}, -+ {0x900bc, 0x0}, -+ {0x900bd, 0x0}, -+ {0x900be, 0x0}, -+ {0x900bf, 0x0}, -+ {0x900c0, 0x0}, -+ {0x900c1, 0x0}, -+ {0x900c2, 0x0}, -+ {0x900c3, 0x0}, -+ {0x900c4, 0x0}, -+ {0x900c5, 0x0}, -+ {0x900c6, 0x0}, -+ {0x900c7, 0x0}, -+ {0x900c8, 0x0}, -+ {0x900c9, 0x0}, -+ {0x900ca, 0x0}, -+ {0x900cb, 0x0}, -+ {0x900cc, 0x0}, -+ {0x900cd, 0x0}, -+ {0x900ce, 0x0}, -+ {0x900cf, 0x0}, -+ {0x900d0, 0x0}, -+ {0x900d1, 0x0}, -+ {0x900d2, 0x0}, -+ {0x900d3, 0x0}, -+ {0x900d4, 0x0}, -+ {0x900d5, 0x0}, -+ {0x900d6, 0x0}, -+ {0x900d7, 0x0}, -+ {0x900d8, 0x0}, -+ {0x900d9, 0x0}, -+ {0x900da, 0x0}, -+ {0x900db, 0x0}, -+ {0x900dc, 0x0}, -+ {0x900dd, 0x0}, -+ {0x900de, 0x0}, -+ {0x900df, 0x0}, -+ {0x900e0, 0x0}, -+ {0x900e1, 0x0}, -+ {0x900e2, 0x0}, -+ {0x900e3, 0x0}, -+ {0x900e4, 0x0}, -+ {0x900e5, 0x0}, -+ {0x900e6, 0x0}, -+ {0x900e7, 0x0}, -+ {0x900e8, 0x0}, -+ {0x900e9, 0x0}, -+ {0x900ea, 0x0}, -+ {0x900eb, 0x0}, -+ {0x900ec, 0x0}, -+ {0x900ed, 0x0}, -+ {0x900ee, 0x0}, -+ {0x900ef, 0x0}, -+ {0x900f0, 0x0}, -+ {0x900f1, 0x0}, -+ {0x900f2, 0x0}, -+ {0x900f3, 0x0}, -+ {0x900f4, 0x0}, -+ {0x900f5, 0x0}, -+ {0x900f6, 0x0}, -+ {0x900f7, 0x0}, -+ {0x900f8, 0x0}, -+ {0x900f9, 0x0}, -+ {0x900fa, 0x0}, -+ {0x900fb, 0x0}, -+ {0x900fc, 0x0}, -+ {0x900fd, 0x0}, -+ {0x900fe, 0x0}, -+ {0x900ff, 0x0}, -+ {0x90100, 0x0}, -+ {0x90101, 0x0}, -+ {0x90102, 0x0}, -+ {0x90103, 0x0}, -+ {0x90104, 0x0}, -+ {0x90105, 0x0}, -+ {0x90106, 0x0}, -+ {0x90107, 0x0}, -+ {0x90108, 0x0}, -+ {0x90109, 0x0}, -+ {0x9010a, 0x0}, -+ {0x9010b, 0x0}, -+ {0x9010c, 0x0}, -+ {0x9010d, 0x0}, -+ {0x9010e, 0x0}, -+ {0x9010f, 0x0}, -+ {0x90110, 0x0}, -+ {0x90111, 0x0}, -+ {0x90112, 0x0}, -+ {0x90113, 0x0}, -+ {0x90114, 0x0}, -+ {0x90115, 0x0}, -+ {0x90116, 0x0}, -+ {0x90117, 0x0}, -+ {0x90118, 0x0}, -+ {0x90119, 0x0}, -+ {0x9011a, 0x0}, -+ {0x9011b, 0x0}, -+ {0x9011c, 0x0}, -+ {0x9011d, 0x0}, -+ {0x9011e, 0x0}, -+ {0x9011f, 0x0}, -+ {0x90120, 0x0}, -+ {0x90121, 0x0}, -+ {0x90122, 0x0}, -+ {0x90123, 0x0}, -+ {0x90124, 0x0}, -+ {0x90125, 0x0}, -+ {0x90126, 0x0}, -+ {0x90127, 0x0}, -+ {0x90128, 0x0}, -+ {0x90129, 0x0}, -+ {0x9012a, 0x0}, -+ {0x9012b, 0x0}, -+ {0x9012c, 0x0}, -+ {0x9012d, 0x0}, -+ {0x9012e, 0x0}, -+ {0x9012f, 0x0}, -+ {0x90130, 0x0}, -+ {0x90131, 0x0}, -+ {0x90132, 0x0}, -+ {0x90133, 0x0}, -+ {0x90134, 0x0}, -+ {0x90135, 0x0}, -+ {0x90136, 0x0}, -+ {0x90137, 0x0}, -+ {0x90138, 0x0}, -+ {0x90139, 0x0}, -+ {0x9013a, 0x0}, -+ {0x9013b, 0x0}, -+ {0x9013c, 0x0}, -+ {0x9013d, 0x0}, -+ {0x9013e, 0x0}, -+ {0x9013f, 0x0}, -+ {0x90140, 0x0}, -+ {0x90141, 0x0}, -+ {0x90142, 0x0}, -+ {0x90143, 0x0}, -+ {0x90144, 0x0}, -+ {0x90145, 0x0}, -+ {0x90146, 0x0}, -+ {0x90147, 0x0}, -+ {0x90148, 0x0}, -+ {0x90149, 0x0}, -+ {0x9014a, 0x0}, -+ {0x9014b, 0x0}, -+ {0x9014c, 0x0}, -+ {0x9014d, 0x0}, -+ {0x9014e, 0x0}, -+ {0x9014f, 0x0}, -+ {0x90150, 0x0}, -+ {0x90151, 0x0}, -+ {0x90152, 0x0}, -+ {0x90153, 0x0}, -+ {0x90154, 0x0}, -+ {0x90155, 0x0}, -+ {0x90156, 0x0}, -+ {0x90157, 0x0}, -+ {0x90158, 0x0}, -+ {0x90159, 0x0}, -+ {0x9015a, 0x0}, -+ {0x9015b, 0x0}, -+ {0x9015c, 0x0}, -+ {0x9015d, 0x0}, -+ {0x9015e, 0x0}, -+ {0x9015f, 0x0}, -+ {0x90160, 0x0}, -+ {0x90161, 0x0}, -+ {0x90162, 0x0}, -+ {0x90163, 0x0}, -+ {0x90164, 0x0}, -+ {0x90165, 0x0}, -+ {0x90166, 0x0}, -+ {0x90167, 0x0}, -+ {0x90168, 0x0}, -+ {0x90169, 0x0}, -+ {0x9016a, 0x0}, -+ {0x9016b, 0x0}, -+ {0x9016c, 0x0}, -+ {0x9016d, 0x0}, -+ {0x9016e, 0x0}, -+ {0x9016f, 0x0}, -+ {0x90170, 0x0}, -+ {0x90171, 0x0}, -+ {0x90172, 0x0}, -+ {0x90173, 0x0}, -+ {0x90174, 0x0}, -+ {0x90175, 0x0}, -+ {0x90176, 0x0}, -+ {0x90177, 0x0}, -+ {0x90178, 0x0}, -+ {0x90179, 0x0}, -+ {0x9017a, 0x0}, -+ {0x9017b, 0x0}, -+ {0x9017c, 0x0}, -+ {0x9017d, 0x0}, -+ {0x9017e, 0x0}, -+ {0x9017f, 0x0}, -+ {0x90180, 0x0}, -+ {0x90181, 0x0}, -+ {0x90182, 0x0}, -+ {0x90183, 0x0}, -+ {0x90184, 0x0}, -+ {0x90185, 0x0}, -+ {0x90186, 0x0}, -+ {0x90187, 0x0}, -+ {0x90188, 0x0}, -+ {0x90189, 0x0}, -+ {0x9018a, 0x0}, -+ {0x9018b, 0x0}, -+ {0x9018c, 0x0}, -+ {0x9018d, 0x0}, -+ {0x9018e, 0x0}, -+ {0x9018f, 0x0}, -+ {0x90190, 0x0}, -+ {0x90191, 0x0}, -+ {0x90192, 0x0}, -+ {0x90193, 0x0}, -+ {0x90194, 0x0}, -+ {0x90195, 0x0}, -+ {0x90196, 0x0}, -+ {0x90197, 0x0}, -+ {0x90198, 0x0}, -+ {0x90199, 0x0}, -+ {0x9019a, 0x0}, -+ {0x9019b, 0x0}, -+ {0x9019c, 0x0}, -+ {0x9019d, 0x0}, -+ {0x9019e, 0x0}, -+ {0x9019f, 0x0}, -+ {0x901a0, 0x0}, -+ {0x901a1, 0x0}, -+ {0x901a2, 0x0}, -+ {0x901a3, 0x0}, -+ {0x901a4, 0x0}, -+ {0x901a5, 0x0}, -+ {0x901a6, 0x0}, -+ {0x901a7, 0x0}, -+ {0x901a8, 0x0}, -+ {0x901a9, 0x0}, -+ {0x901aa, 0x0}, -+ {0x901ab, 0x0}, -+ {0x901ac, 0x0}, -+ {0x901ad, 0x0}, -+ {0x901ae, 0x0}, -+ {0x901af, 0x0}, -+ {0x901b0, 0x0}, -+ {0x901b1, 0x0}, -+ {0x901b2, 0x0}, -+ {0x901b3, 0x0}, -+ {0x901b4, 0x0}, -+ {0x901b5, 0x0}, -+ {0x901b6, 0x0}, -+ {0x901b7, 0x0}, -+ {0x901b8, 0x0}, -+ {0x901b9, 0x0}, -+ {0x901ba, 0x0}, -+ {0x901bb, 0x0}, -+ {0x901bc, 0x0}, -+ {0x901bd, 0x0}, -+ {0x901be, 0x0}, -+ {0x901bf, 0x0}, -+ {0x901c0, 0x0}, -+ {0x901c1, 0x0}, -+ {0x901c2, 0x0}, -+ {0x901c3, 0x0}, -+ {0x901c4, 0x0}, -+ {0x901c5, 0x0}, -+ {0x901c6, 0x0}, -+ {0x901c7, 0x0}, -+ {0x901c8, 0x0}, -+ {0x901c9, 0x0}, -+ {0x901ca, 0x0}, -+ {0x901cb, 0x0}, -+ {0x901cc, 0x0}, -+ {0x901cd, 0x0}, -+ {0x901ce, 0x0}, -+ {0x901cf, 0x0}, -+ {0x901d0, 0x0}, -+ {0x901d1, 0x0}, -+ {0x901d2, 0x0}, -+ {0x901d3, 0x0}, -+ {0x901d4, 0x0}, -+ {0x901d5, 0x0}, -+ {0x901d6, 0x0}, -+ {0x901d7, 0x0}, -+ {0x901d8, 0x0}, -+ {0x901d9, 0x0}, -+ {0x901da, 0x0}, -+ {0x901db, 0x0}, -+ {0x901dc, 0x0}, -+ {0x901dd, 0x0}, -+ {0x901de, 0x0}, -+ {0x901df, 0x0}, -+ {0x901e0, 0x0}, -+ {0x901e1, 0x0}, -+ {0x901e2, 0x0}, -+ {0x901e3, 0x0}, -+ {0x901e4, 0x0}, -+ {0x901e5, 0x0}, -+ {0x901e6, 0x0}, -+ {0x901e7, 0x0}, -+ {0x901e8, 0x0}, -+ {0x901e9, 0x0}, -+ {0x901ea, 0x0}, -+ {0x901eb, 0x0}, -+ {0x901ec, 0x0}, -+ {0x901ed, 0x0}, -+ {0x901ee, 0x0}, -+ {0x901ef, 0x0}, -+ {0x901f0, 0x0}, -+ {0x901f1, 0x0}, -+ {0x901f2, 0x0}, -+ {0x901f3, 0x0}, -+ {0x901f4, 0x0}, -+ {0x901f5, 0x0}, -+ {0x901f6, 0x0}, -+ {0x901f7, 0x0}, -+ {0x901f8, 0x0}, -+ {0x901f9, 0x0}, -+ {0x901fa, 0x0}, -+ {0x901fb, 0x0}, -+ {0x901fc, 0x0}, -+ {0x901fd, 0x0}, -+ {0x901fe, 0x0}, -+ {0x901ff, 0x0}, -+ {0x90200, 0x0}, -+ {0x90201, 0x0}, -+ {0x90202, 0x0}, -+ {0x90203, 0x0}, -+ {0x90204, 0x0}, -+ {0x90205, 0x0}, -+ {0x90206, 0x0}, -+ {0x90207, 0x0}, -+ {0x90208, 0x0}, -+ {0x90209, 0x0}, -+ {0x9020a, 0x0}, -+ {0x9020b, 0x0}, -+ {0x9020c, 0x0}, -+ {0x9020d, 0x0}, -+ {0x9020e, 0x0}, -+ {0x9020f, 0x0}, -+ {0x90210, 0x0}, -+ {0x90211, 0x0}, -+ {0x90212, 0x0}, -+ {0x90213, 0x0}, -+ {0x90214, 0x0}, -+ {0x90215, 0x0}, -+ {0x90216, 0x0}, -+ {0x90217, 0x0}, -+ {0x90218, 0x0}, -+ {0x90219, 0x0}, -+ {0x9021a, 0x0}, -+ {0x9021b, 0x0}, -+ {0x9021c, 0x0}, -+ {0x9021d, 0x0}, -+ {0x9021e, 0x0}, -+ {0x9021f, 0x0}, -+ {0x90220, 0x0}, -+ {0x90221, 0x0}, -+ {0x90222, 0x0}, -+ {0x90223, 0x0}, -+ {0x90224, 0x0}, -+ {0x90225, 0x0}, -+ {0x90226, 0x0}, -+ {0x90227, 0x0}, -+ {0x90228, 0x0}, -+ {0x90229, 0x0}, -+ {0x9022a, 0x0}, -+ {0x9022b, 0x0}, -+ {0x9022c, 0x0}, -+ {0x9022d, 0x0}, -+ {0x9022e, 0x0}, -+ {0x9022f, 0x0}, -+ {0x90230, 0x0}, -+ {0x90231, 0x0}, -+ {0x90232, 0x0}, -+ {0x90233, 0x0}, -+ {0x90234, 0x0}, -+ {0x90235, 0x0}, -+ {0x90236, 0x0}, -+ {0x90237, 0x0}, -+ {0x90238, 0x0}, -+ {0x90239, 0x0}, -+ {0x9023a, 0x0}, -+ {0x9023b, 0x0}, -+ {0x9023c, 0x0}, -+ {0x9023d, 0x0}, -+ {0x9023e, 0x0}, -+ {0x9023f, 0x0}, -+ {0x90240, 0x0}, -+ {0x90241, 0x0}, -+ {0x90242, 0x0}, -+ {0x90243, 0x0}, -+ {0x90244, 0x0}, -+ {0x90245, 0x0}, -+ {0x90246, 0x0}, -+ {0x90247, 0x0}, -+ {0x90248, 0x0}, -+ {0x90249, 0x0}, -+ {0x9024a, 0x0}, -+ {0x9024b, 0x0}, -+ {0x9024c, 0x0}, -+ {0x9024d, 0x0}, -+ {0x9024e, 0x0}, -+ {0x9024f, 0x0}, -+ {0x90250, 0x0}, -+ {0x90251, 0x0}, -+ {0x90252, 0x0}, -+ {0x90253, 0x0}, -+ {0x90254, 0x0}, -+ {0x90255, 0x0}, -+ {0x90256, 0x0}, -+ {0x90257, 0x0}, -+ {0x90258, 0x0}, -+ {0x90259, 0x0}, -+ {0x9025a, 0x0}, -+ {0x9025b, 0x0}, -+ {0x9025c, 0x0}, -+ {0x9025d, 0x0}, -+ {0x9025e, 0x0}, -+ {0x9025f, 0x0}, -+ {0x90260, 0x0}, -+ {0x90261, 0x0}, -+ {0x90262, 0x0}, -+ {0x90263, 0x0}, -+ {0x90264, 0x0}, -+ {0x90265, 0x0}, -+ {0x90266, 0x0}, -+ {0x90267, 0x0}, -+ {0x90268, 0x0}, -+ {0x90269, 0x0}, -+ {0x9026a, 0x0}, -+ {0x9026b, 0x0}, -+ {0x9026c, 0x0}, -+ {0x9026d, 0x0}, -+ {0x9026e, 0x0}, -+ {0x9026f, 0x0}, -+ {0x90270, 0x0}, -+ {0x90271, 0x0}, -+ {0x90272, 0x0}, -+ {0x90273, 0x0}, -+ {0x90274, 0x0}, -+ {0x90275, 0x0}, -+ {0x90276, 0x0}, -+ {0x90277, 0x0}, -+ {0x90278, 0x0}, -+ {0x90279, 0x0}, -+ {0x9027a, 0x0}, -+ {0x9027b, 0x0}, -+ {0x9027c, 0x0}, -+ {0x9027d, 0x0}, -+ {0x9027e, 0x0}, -+ {0x9027f, 0x0}, -+ {0x90280, 0x0}, -+ {0x90281, 0x0}, -+ {0x90282, 0x0}, -+ {0x90283, 0x0}, -+ {0x90284, 0x0}, -+ {0x90285, 0x0}, -+ {0x90286, 0x0}, -+ {0x90287, 0x0}, -+ {0x90288, 0x0}, -+ {0x90289, 0x0}, -+ {0x9028a, 0x0}, -+ {0x9028b, 0x0}, -+ {0x9028c, 0x0}, -+ {0x9028d, 0x0}, -+ {0x9028e, 0x0}, -+ {0x9028f, 0x0}, -+ {0x90290, 0x0}, -+ {0x90291, 0x0}, -+ {0x90292, 0x0}, -+ {0x90293, 0x0}, -+ {0x90294, 0x0}, -+ {0x90295, 0x0}, -+ {0x90296, 0x0}, -+ {0x90297, 0x0}, -+ {0x90298, 0x0}, -+ {0x90299, 0x0}, -+ {0x9029a, 0x0}, -+ {0x9029b, 0x0}, -+ {0x9029c, 0x0}, -+ {0x9029d, 0x0}, -+ {0x9029e, 0x0}, -+ {0x9029f, 0x0}, -+ {0x902a0, 0x0}, -+ {0x902a1, 0x0}, -+ {0x902a2, 0x0}, -+ {0x902a3, 0x0}, -+ {0x902a4, 0x0}, -+ {0x902a5, 0x0}, -+ {0x902a6, 0x0}, -+ {0x902a7, 0x0}, -+ {0x902a8, 0x0}, -+ {0x902a9, 0x0}, -+ {0x902aa, 0x0}, -+ {0x902ab, 0x0}, -+ {0x902ac, 0x0}, -+ {0x902ad, 0x0}, -+ {0x902ae, 0x0}, -+ {0x902af, 0x0}, -+ {0x902b0, 0x0}, -+ {0x902b1, 0x0}, -+ {0x902b2, 0x0}, -+ {0x902b3, 0x0}, -+ {0x902b4, 0x0}, -+ {0x902b5, 0x0}, -+ {0x902b6, 0x0}, -+ {0x902b7, 0x0}, -+ {0x902b8, 0x0}, -+ {0x902b9, 0x0}, -+ {0x902ba, 0x0}, -+ {0x902bb, 0x0}, -+ {0x902bc, 0x0}, -+ {0x902bd, 0x0}, -+ {0x902be, 0x0}, -+ {0x902bf, 0x0}, -+ {0x902c0, 0x0}, -+ {0x902c1, 0x0}, -+ {0x902c2, 0x0}, -+ {0x902c3, 0x0}, -+ {0x902c4, 0x0}, -+ {0x902c5, 0x0}, -+ {0x902c6, 0x0}, -+ {0x902c7, 0x0}, -+ {0x902c8, 0x0}, -+ {0x902c9, 0x0}, -+ {0x902ca, 0x0}, -+ {0x902cb, 0x0}, -+ {0x902cc, 0x0}, -+ {0x902cd, 0x0}, -+ {0x902ce, 0x0}, -+ {0x902cf, 0x0}, -+ {0x902d0, 0x0}, -+ {0x902d1, 0x0}, -+ {0x902d2, 0x0}, -+ {0x902d3, 0x0}, -+ {0x902d4, 0x0}, -+ {0x902d5, 0x0}, -+ {0x902d6, 0x0}, -+ {0x902d7, 0x0}, -+ {0x902d8, 0x0}, -+ {0x902d9, 0x0}, -+ {0x902da, 0x0}, -+ {0x902db, 0x0}, -+ {0x902dc, 0x0}, -+ {0x902dd, 0x0}, -+ {0x902de, 0x0}, -+ {0x902df, 0x0}, -+ {0x902e0, 0x0}, -+ {0x902e1, 0x0}, -+ {0x902e2, 0x0}, -+ {0x902e3, 0x0}, -+ {0x902e4, 0x0}, -+ {0x902e5, 0x0}, -+ {0x902e6, 0x0}, -+ {0x902e7, 0x0}, -+ {0x902e8, 0x0}, -+ {0x902e9, 0x0}, -+ {0x902ea, 0x0}, -+ {0x902eb, 0x0}, -+ {0x902ec, 0x0}, -+ {0x902ed, 0x0}, -+ {0x902ee, 0x0}, -+ {0x902ef, 0x0}, -+ {0x902f0, 0x0}, -+ {0x902f1, 0x0}, -+ {0x902f2, 0x0}, -+ {0x902f3, 0x0}, -+ {0x902f4, 0x0}, -+ {0x902f5, 0x0}, -+ {0x902f6, 0x0}, -+ {0x902f7, 0x0}, -+ {0x902f8, 0x0}, -+ {0x902f9, 0x0}, -+ {0x902fa, 0x0}, -+ {0x902fb, 0x0}, -+ {0x902fc, 0x0}, -+ {0x902fd, 0x0}, -+ {0x902fe, 0x0}, -+ {0x902ff, 0x0}, -+ {0x90300, 0x0}, -+ {0x90301, 0x0}, -+ {0x90302, 0x0}, -+ {0x90303, 0x0}, -+ {0x90304, 0x0}, -+ {0x90305, 0x0}, -+ {0x90306, 0x0}, -+ {0x90307, 0x0}, -+ {0x90308, 0x0}, -+ {0x90309, 0x0}, -+ {0x9030a, 0x0}, -+ {0x9030b, 0x0}, -+ {0x9030c, 0x0}, -+ {0x9030d, 0x0}, -+ {0x9030e, 0x0}, -+ {0x9030f, 0x0}, -+ {0x90310, 0x0}, -+ {0x90311, 0x0}, -+ {0x90312, 0x0}, -+ {0x90313, 0x0}, -+ {0x90314, 0x0}, -+ {0x90315, 0x0}, -+ {0x90316, 0x0}, -+ {0x90317, 0x0}, -+ {0x90318, 0x0}, -+ {0x90319, 0x0}, -+ {0x9031a, 0x0}, -+ {0x9031b, 0x0}, -+ {0x9031c, 0x0}, -+ {0x9031d, 0x0}, -+ {0x9031e, 0x0}, -+ {0x9031f, 0x0}, -+ {0x90320, 0x0}, -+ {0x90321, 0x0}, -+ {0x90322, 0x0}, -+ {0x90323, 0x0}, -+ {0x90324, 0x0}, -+ {0x90325, 0x0}, -+ {0x90326, 0x0}, -+ {0x90327, 0x0}, -+ {0x90328, 0x0}, -+ {0x90329, 0x0}, -+ {0x9032a, 0x0}, -+ {0x9032b, 0x0}, -+ {0x9032c, 0x0}, -+ {0x9032d, 0x0}, -+ {0x9032e, 0x0}, -+ {0x9032f, 0x0}, -+ {0x90330, 0x0}, -+ {0x90331, 0x0}, -+ {0x90332, 0x0}, -+ {0x90333, 0x0}, -+ {0x90334, 0x0}, -+ {0x90335, 0x0}, -+ {0x90336, 0x0}, -+ {0x90337, 0x0}, -+ {0x90338, 0x0}, -+ {0x90339, 0x0}, -+ {0x9033a, 0x0}, -+ {0x9033b, 0x0}, -+ {0x9033c, 0x0}, -+ {0x9033d, 0x0}, -+ {0x9033e, 0x0}, -+ {0x9033f, 0x0}, -+ {0x90340, 0x0}, -+ {0x90341, 0x0}, -+ {0x90342, 0x0}, -+ {0x90343, 0x0}, -+ {0x90344, 0x0}, -+ {0x90345, 0x0}, -+ {0x90346, 0x0}, -+ {0x90347, 0x0}, -+ {0x90348, 0x0}, -+ {0x90349, 0x0}, -+ {0x9034a, 0x0}, -+ {0x9034b, 0x0}, -+ {0x9034c, 0x0}, -+ {0x9034d, 0x0}, -+ {0x9034e, 0x0}, -+ {0x9034f, 0x0}, -+ {0x90350, 0x0}, -+ {0x90351, 0x0}, -+ {0x90352, 0x0}, -+ {0x90353, 0x0}, -+ {0x90354, 0x0}, -+ {0x90355, 0x0}, -+ {0x90356, 0x0}, -+ {0x90357, 0x0}, -+ {0x90358, 0x0}, -+ {0x90359, 0x0}, -+ {0x9035a, 0x0}, -+ {0x9035b, 0x0}, -+ {0x9035c, 0x0}, -+ {0x9035d, 0x0}, -+ {0x9035e, 0x0}, -+ {0x9035f, 0x0}, -+ {0x90360, 0x0}, -+ {0x90361, 0x0}, -+ {0x90362, 0x0}, -+ {0x90363, 0x0}, -+ {0x90364, 0x0}, -+ {0x90365, 0x0}, -+ {0x90366, 0x0}, -+ {0x90367, 0x0}, -+ {0x90368, 0x0}, -+ {0x90369, 0x0}, -+ {0x9036a, 0x0}, -+ {0x9036b, 0x0}, -+ {0x9036c, 0x0}, -+ {0x9036d, 0x0}, -+ {0x9036e, 0x0}, -+ {0x9036f, 0x0}, -+ {0x90370, 0x0}, -+ {0x90371, 0x0}, -+ {0x90372, 0x0}, -+ {0x90373, 0x0}, -+ {0x90374, 0x0}, -+ {0x90375, 0x0}, -+ {0x90376, 0x0}, -+ {0x90377, 0x0}, -+ {0x90378, 0x0}, -+ {0x90379, 0x0}, -+ {0x9037a, 0x0}, -+ {0x9037b, 0x0}, -+ {0x9037c, 0x0}, -+ {0x9037d, 0x0}, -+ {0x9037e, 0x0}, -+ {0x9037f, 0x0}, -+ {0x90380, 0x0}, -+ {0x90381, 0x0}, -+ {0x90382, 0x0}, -+ {0x90383, 0x0}, -+ {0x90384, 0x0}, -+ {0x90385, 0x0}, -+ {0x90386, 0x0}, -+ {0x90387, 0x0}, -+ {0x90388, 0x0}, -+ {0x90389, 0x0}, -+ {0x9038a, 0x0}, -+ {0x9038b, 0x0}, -+ {0x9038c, 0x0}, -+ {0x9038d, 0x0}, -+ {0x9038e, 0x0}, -+ {0x9038f, 0x0}, -+ {0x90390, 0x0}, -+ {0x90391, 0x0}, -+ {0x90392, 0x0}, -+ {0x90393, 0x0}, -+ {0x90394, 0x0}, -+ {0x90395, 0x0}, -+ {0x90396, 0x0}, -+ {0x90397, 0x0}, -+ {0x90398, 0x0}, -+ {0x90399, 0x0}, -+ {0x9039a, 0x0}, -+ {0x9039b, 0x0}, -+ {0x9039c, 0x0}, -+ {0x9039d, 0x0}, -+ {0x9039e, 0x0}, -+ {0x9039f, 0x0}, -+ {0x903a0, 0x0}, -+ {0x903a1, 0x0}, -+ {0x903a2, 0x0}, -+ {0x903a3, 0x0}, -+ {0x903a4, 0x0}, -+ {0x903a5, 0x0}, -+ {0x903a6, 0x0}, -+ {0x903a7, 0x0}, -+ {0x903a8, 0x0}, -+ {0x903a9, 0x0}, -+ {0x903aa, 0x0}, -+ {0x903ab, 0x0}, -+ {0x903ac, 0x0}, -+ {0x903ad, 0x0}, -+ {0x903ae, 0x0}, -+ {0x903af, 0x0}, -+ {0x903b0, 0x0}, -+ {0x903b1, 0x0}, -+ {0x903b2, 0x0}, -+ {0x903b3, 0x0}, -+ {0x903b4, 0x0}, -+ {0x903b5, 0x0}, -+ {0x903b6, 0x0}, -+ {0x903b7, 0x0}, -+ {0x903b8, 0x0}, -+ {0x903b9, 0x0}, -+ {0x903ba, 0x0}, -+ {0x903bb, 0x0}, -+ {0x903bc, 0x0}, -+ {0x903bd, 0x0}, -+ {0x903be, 0x0}, -+ {0x903bf, 0x0}, -+ {0x903c0, 0x0}, -+ {0x903c1, 0x0}, -+ {0x903c2, 0x0}, -+ {0x903c3, 0x0}, -+ {0x903c4, 0x0}, -+ {0x903c5, 0x0}, -+ {0x903c6, 0x0}, -+ {0x903c7, 0x0}, -+ {0x903c8, 0x0}, -+ {0x903c9, 0x0}, -+ {0x903ca, 0x0}, -+ {0x903cb, 0x0}, -+ {0x903cc, 0x0}, -+ {0x903cd, 0x0}, -+ {0x903ce, 0x0}, -+ {0x903cf, 0x0}, -+ {0x903d0, 0x0}, -+ {0x903d1, 0x0}, -+ {0x903d2, 0x0}, -+ {0x903d3, 0x0}, -+ {0x903d4, 0x0}, -+ {0x903d5, 0x0}, -+ {0x903d6, 0x0}, -+ {0x903d7, 0x0}, -+ {0x903d8, 0x0}, -+ {0x903d9, 0x0}, -+ {0x903da, 0x0}, -+ {0x903db, 0x0}, -+ {0x903dc, 0x0}, -+ {0x903dd, 0x0}, -+ {0x903de, 0x0}, -+ {0x903df, 0x0}, -+ {0x903e0, 0x0}, -+ {0x903e1, 0x0}, -+ {0x903e2, 0x0}, -+ {0x903e3, 0x0}, -+ {0x903e4, 0x0}, -+ {0x903e5, 0x0}, -+ {0x903e6, 0x0}, -+ {0x903e7, 0x0}, -+ {0x903e8, 0x0}, -+ {0x903e9, 0x0}, -+ {0x903ea, 0x0}, -+ {0x903eb, 0x0}, -+ {0x903ec, 0x0}, -+ {0x903ed, 0x0}, -+ {0x903ee, 0x0}, -+ {0x903ef, 0x0}, -+ {0x903f0, 0x0}, -+ {0x903f1, 0x0}, -+ {0x903f2, 0x0}, -+ {0x903f3, 0x0}, -+ {0x903f4, 0x0}, -+ {0x903f5, 0x0}, -+ {0x903f6, 0x0}, -+ {0x903f7, 0x0}, -+ {0x903f8, 0x0}, -+ {0x903f9, 0x0}, -+ {0x903fa, 0x0}, -+ {0x903fb, 0x0}, -+ {0x903fc, 0x0}, -+ {0x903fd, 0x0}, -+ {0x903fe, 0x0}, -+ {0x903ff, 0x0}, -+ {0x90400, 0x0}, -+ {0x90401, 0x0}, -+ {0x90402, 0x0}, -+ {0x90403, 0x0}, -+ {0x90404, 0x0}, -+ {0x90405, 0x0}, -+ {0x90406, 0x0}, -+ {0x90407, 0x0}, -+ {0x90408, 0x0}, -+ {0x90409, 0x0}, -+ {0x9040a, 0x0}, -+ {0x9040b, 0x0}, -+ {0x9040c, 0x0}, -+ {0x9040d, 0x0}, -+ {0x9040e, 0x0}, -+ {0x9040f, 0x0}, -+ {0x90410, 0x0}, -+ {0x90411, 0x0}, -+ {0x90412, 0x0}, -+ {0x90413, 0x0}, -+ {0x90414, 0x0}, -+ {0x90415, 0x0}, -+ {0x90416, 0x0}, -+ {0x90417, 0x0}, -+ {0x90418, 0x0}, -+ {0x90419, 0x0}, -+ {0x9041a, 0x0}, -+ {0x9041b, 0x0}, -+ {0x9041c, 0x0}, -+ {0x9041d, 0x0}, -+ {0x9041e, 0x0}, -+ {0x9041f, 0x0}, -+ {0x90420, 0x0}, -+ {0x90421, 0x0}, -+ {0x90422, 0x0}, -+ {0x90423, 0x0}, -+ {0x90424, 0x0}, -+ {0x90425, 0x0}, -+ {0x90426, 0x0}, -+ {0x90427, 0x0}, -+ {0x90428, 0x0}, -+ {0x90429, 0x0}, -+ {0x9042a, 0x0}, -+ {0x9042b, 0x0}, -+ {0x9042c, 0x0}, -+ {0x9042d, 0x0}, -+ {0x9042e, 0x0}, -+ {0x9042f, 0x0}, -+ {0x90430, 0x0}, -+ {0x90431, 0x0}, -+ {0x90432, 0x0}, -+ {0x90433, 0x0}, -+ {0x90434, 0x0}, -+ {0x90435, 0x0}, -+ {0x90436, 0x0}, -+ {0x90437, 0x0}, -+ {0x90438, 0x0}, -+ {0x90439, 0x0}, -+ {0x9043a, 0x0}, -+ {0x9043b, 0x0}, -+ {0x9043c, 0x0}, -+ {0x9043d, 0x0}, -+ {0x9043e, 0x0}, -+ {0x9043f, 0x0}, -+ {0x90440, 0x0}, -+ {0x90441, 0x0}, -+ {0x90442, 0x0}, -+ {0x90443, 0x0}, -+ {0x90444, 0x0}, -+ {0x90445, 0x0}, -+ {0x90446, 0x0}, -+ {0x90447, 0x0}, -+ {0x90448, 0x0}, -+ {0x90449, 0x0}, -+ {0x9044a, 0x0}, -+ {0x9044b, 0x0}, -+ {0x9044c, 0x0}, -+ {0x9044d, 0x0}, -+ {0x9044e, 0x0}, -+ {0x9044f, 0x0}, -+ {0x90450, 0x0}, -+ {0x90451, 0x0}, -+ {0x90452, 0x0}, -+ {0x90453, 0x0}, -+ {0x90454, 0x0}, -+ {0x90455, 0x0}, -+ {0x90456, 0x0}, -+ {0x90457, 0x0}, -+ {0x90458, 0x0}, -+ {0x90459, 0x0}, -+ {0x9045a, 0x0}, -+ {0x9045b, 0x0}, -+ {0x9045c, 0x0}, -+ {0x9045d, 0x0}, -+ {0x9045e, 0x0}, -+ {0x9045f, 0x0}, -+ {0x90460, 0x0}, -+ {0x90461, 0x0}, -+ {0x90462, 0x0}, -+ {0x90463, 0x0}, -+ {0x90464, 0x0}, -+ {0x90465, 0x0}, -+ {0x90466, 0x0}, -+ {0x90467, 0x0}, -+ {0x90468, 0x0}, -+ {0x90469, 0x0}, -+ {0x9046a, 0x0}, -+ {0x9046b, 0x0}, -+ {0x9046c, 0x0}, -+ {0x9046d, 0x0}, -+ {0x9046e, 0x0}, -+ {0x9046f, 0x0}, -+ {0x90470, 0x0}, -+ {0x90471, 0x0}, -+ {0x90472, 0x0}, -+ {0x90473, 0x0}, -+ {0x90474, 0x0}, -+ {0x90475, 0x0}, -+ {0x90476, 0x0}, -+ {0x90477, 0x0}, -+ {0x90478, 0x0}, -+ {0x90479, 0x0}, -+ {0x9047a, 0x0}, -+ {0x9047b, 0x0}, -+ {0x9047c, 0x0}, -+ {0x9047d, 0x0}, -+ {0x9047e, 0x0}, -+ {0x9047f, 0x0}, -+ {0x90480, 0x0}, -+ {0x90481, 0x0}, -+ {0x90482, 0x0}, -+ {0x90483, 0x0}, -+ {0x90484, 0x0}, -+ {0x90485, 0x0}, -+ {0x90486, 0x0}, -+ {0x90487, 0x0}, -+ {0x90488, 0x0}, -+ {0x90489, 0x0}, -+ {0x9048a, 0x0}, -+ {0x9048b, 0x0}, -+ {0x9048c, 0x0}, -+ {0x9048d, 0x0}, -+ {0x9048e, 0x0}, -+ {0x9048f, 0x0}, -+ {0x90490, 0x0}, -+ {0x90491, 0x0}, -+ {0x90492, 0x0}, -+ {0x90493, 0x0}, -+ {0x90494, 0x0}, -+ {0x90495, 0x0}, -+ {0x90496, 0x0}, -+ {0x90497, 0x0}, -+ {0x90498, 0x0}, -+ {0x90499, 0x0}, -+ {0x9049a, 0x0}, -+ {0x9049b, 0x0}, -+ {0x9049c, 0x0}, -+ {0x9049d, 0x0}, -+ {0x9049e, 0x0}, -+ {0x9049f, 0x0}, -+ {0x904a0, 0x0}, -+ {0x904a1, 0x0}, -+ {0x904a2, 0x0}, -+ {0x904a3, 0x0}, -+ {0x904a4, 0x0}, -+ {0x904a5, 0x0}, -+ {0x904a6, 0x0}, -+ {0x904a7, 0x0}, -+ {0x904a8, 0x0}, -+ {0x904a9, 0x0}, -+ {0x904aa, 0x0}, -+ {0x904ab, 0x0}, -+ {0x904ac, 0x0}, -+ {0x904ad, 0x0}, -+ {0x904ae, 0x0}, -+ {0x904af, 0x0}, -+ {0x904b0, 0x0}, -+ {0x904b1, 0x0}, -+ {0x904b2, 0x0}, -+ {0x904b3, 0x0}, -+ {0x904b4, 0x0}, -+ {0x904b5, 0x0}, -+ {0x904b6, 0x0}, -+ {0x904b7, 0x0}, -+ {0x904b8, 0x0}, -+ {0x904b9, 0x0}, -+ {0x904ba, 0x0}, -+ {0x904bb, 0x0}, -+ {0x904bc, 0x0}, -+ {0x904bd, 0x0}, -+ {0x904be, 0x0}, -+ {0x904bf, 0x0}, -+ {0x904c0, 0x0}, -+ {0x904c1, 0x0}, -+ {0x904c2, 0x0}, -+ {0x904c3, 0x0}, -+ {0x904c4, 0x0}, -+ {0x904c5, 0x0}, -+ {0x904c6, 0x0}, -+ {0x904c7, 0x0}, -+ {0x904c8, 0x0}, -+ {0x904c9, 0x0}, -+ {0x904ca, 0x0}, -+ {0x904cb, 0x0}, -+ {0x904cc, 0x0}, -+ {0x904cd, 0x0}, -+ {0x904ce, 0x0}, -+ {0x904cf, 0x0}, -+ {0x904d0, 0x0}, -+ {0x904d1, 0x0}, -+ {0x904d2, 0x0}, -+ {0x904d3, 0x0}, -+ {0x904d4, 0x0}, -+ {0x904d5, 0x0}, -+ {0x904d6, 0x0}, -+ {0x904d7, 0x0}, -+ {0x904d8, 0x0}, -+ {0x904d9, 0x0}, -+ {0x904da, 0x0}, -+ {0x904db, 0x0}, -+ {0x904dc, 0x0}, -+ {0x904dd, 0x0}, -+ {0x904de, 0x0}, -+ {0x904df, 0x0}, -+ {0x904e0, 0x0}, -+ {0x904e1, 0x0}, -+ {0x904e2, 0x0}, -+ {0x904e3, 0x0}, -+ {0x904e4, 0x0}, -+ {0x904e5, 0x0}, -+ {0x904e6, 0x0}, -+ {0x904e7, 0x0}, -+ {0x904e8, 0x0}, -+ {0x904e9, 0x0}, -+ {0x904ea, 0x0}, -+ {0x904eb, 0x0}, -+ {0x904ec, 0x0}, -+ {0x904ed, 0x0}, -+ {0x904ee, 0x0}, -+ {0x904ef, 0x0}, -+ {0x904f0, 0x0}, -+ {0x904f1, 0x0}, -+ {0x904f2, 0x0}, -+ {0x904f3, 0x0}, -+ {0x904f4, 0x0}, -+ {0x904f5, 0x0}, -+ {0x904f6, 0x0}, -+ {0x904f7, 0x0}, -+ {0x904f8, 0x0}, -+ {0x904f9, 0x0}, -+ {0x904fa, 0x0}, -+ {0x904fb, 0x0}, -+ {0x904fc, 0x0}, -+ {0x904fd, 0x0}, -+ {0x904fe, 0x0}, -+ {0x904ff, 0x0}, -+ {0x90500, 0x0}, -+ {0x90501, 0x0}, -+ {0x90502, 0x0}, -+ {0x90503, 0x0}, -+ {0x90504, 0x0}, -+ {0x90505, 0x0}, -+ {0x90506, 0x0}, -+ {0x90507, 0x0}, -+ {0x90508, 0x0}, -+ {0x90509, 0x0}, -+ {0x9050a, 0x0}, -+ {0x9050b, 0x0}, -+ {0x9050c, 0x0}, -+ {0x9050d, 0x0}, -+ {0xd00e7, 0x0}, -+ {0x9001c, 0x0}, -+ {0x90020, 0x0}, -+ {0x90024, 0x0}, -+ {0x90025, 0x0}, -+ {0x90026, 0x0}, -+ {0x9002b, 0x0}, -+ {0x90708, 0x0}, -+ {0x90700, 0x0}, -+ {0x90701, 0x0}, -+ {0x90702, 0x0}, -+ {0x90703, 0x0}, -+ {0x90704, 0x0}, -+ {0x90705, 0x0}, -+ {0x90706, 0x0}, -+ {0x90707, 0x0}, -+ {0x2018a, 0x0}, -+ {0x20124, 0x0}, -+ {0x2018b, 0x0}, -+ {0x20125, 0x0}, -+ {0x2018c, 0x0}, -+ {0x20126, 0x0}, -+ {0x2018d, 0x0}, -+ {0x20127, 0x0}, -+ {0x2018e, 0x0}, -+ {0x20128, 0x0}, -+ {0x2018f, 0x0}, -+ {0x20129, 0x0}, -+ {0x20190, 0x0}, -+ {0x2012a, 0x0}, -+ {0x20191, 0x0}, -+ {0x2012b, 0x0}, -+ {0x20192, 0x0}, -+ {0x2012c, 0x0}, -+ {0x20193, 0x0}, -+ {0x2012d, 0x0}, -+ {0x20194, 0x0}, -+ {0x2012e, 0x0}, -+ {0x20195, 0x0}, -+ {0x2012f, 0x0}, -+ {0x20196, 0x0}, -+ {0x20130, 0x0}, -+ {0x20197, 0x0}, -+ {0x20131, 0x0}, -+ {0x20198, 0x0}, -+ {0x20132, 0x0}, -+ {0x20199, 0x0}, -+ {0x20133, 0x0}, -+ {0x2019a, 0x0}, -+ {0x20134, 0x0}, -+ {0x2019b, 0x0}, -+ {0x20135, 0x0}, -+ {0x2019c, 0x0}, -+ {0x20136, 0x0}, -+ {0x2019d, 0x0}, -+ {0x20137, 0x0}, -+ {0x2019e, 0x0}, -+ {0x20138, 0x0}, -+ {0x2019f, 0x0}, -+ {0x20139, 0x0}, -+ {0x201a0, 0x0}, -+ {0x2013a, 0x0}, -+ {0x201a1, 0x0}, -+ {0x2013b, 0x0}, -+ {0x201a2, 0x0}, -+ {0x2013c, 0x0}, -+ {0x201a3, 0x0}, -+ {0x2013d, 0x0}, -+ {0x201a4, 0x0}, -+ {0x2013e, 0x0}, -+ {0x201a5, 0x0}, -+ {0x2013f, 0x0}, -+ {0x201a6, 0x0}, -+ {0x20140, 0x0}, -+ {0x201a7, 0x0}, -+ {0x20141, 0x0}, -+ {0x201a8, 0x0}, -+ {0x20142, 0x0}, -+ {0x201a9, 0x0}, -+ {0x20143, 0x0}, -+ {0x201aa, 0x0}, -+ {0x20144, 0x0}, -+ {0x201ab, 0x0}, -+ {0x20145, 0x0}, -+ {0x201ac, 0x0}, -+ {0x20146, 0x0}, -+ {0x201ad, 0x0}, -+ {0x20147, 0x0}, -+ {0x201ae, 0x0}, -+ {0x20148, 0x0}, -+ {0x201af, 0x0}, -+ {0x20149, 0x0}, -+ {0x201b0, 0x0}, -+ {0x2014a, 0x0}, -+ {0x201b1, 0x0}, -+ {0x2014b, 0x0}, -+ {0x201b2, 0x0}, -+ {0x2014c, 0x0}, -+ {0x201b3, 0x0}, -+ {0x2014d, 0x0}, -+ {0x201b4, 0x0}, -+ {0x2014e, 0x0}, -+ {0x201b5, 0x0}, -+ {0x2014f, 0x0}, -+ {0x201b6, 0x0}, -+ {0x20150, 0x0}, -+ {0x201b7, 0x0}, -+ {0x20151, 0x0}, -+ {0x201b8, 0x0}, -+ {0x20152, 0x0}, -+ {0x201b9, 0x0}, -+ {0x20153, 0x0}, -+ {0x201ba, 0x0}, -+ {0x20154, 0x0}, -+ {0x201bb, 0x0}, -+ {0x20155, 0x0}, -+ {0x201bc, 0x0}, -+ {0x20156, 0x0}, -+ {0x201bd, 0x0}, -+ {0x20157, 0x0}, -+ {0x201be, 0x0}, -+ {0x20158, 0x0}, -+ {0x201bf, 0x0}, -+ {0x20159, 0x0}, -+ {0x201c0, 0x0}, -+ {0x2015a, 0x0}, -+ {0x201c1, 0x0}, -+ {0x2015b, 0x0}, -+ {0x201c2, 0x0}, -+ {0x2015c, 0x0}, -+ {0x201c3, 0x0}, -+ {0x2015d, 0x0}, -+ {0x201c4, 0x0}, -+ {0x2015e, 0x0}, -+ {0x201c5, 0x0}, -+ {0x2015f, 0x0}, -+ {0x201c6, 0x0}, -+ {0x20160, 0x0}, -+ {0x201c7, 0x0}, -+ {0x20161, 0x0}, -+ {0x201c8, 0x0}, -+ {0x20162, 0x0}, -+ {0x201c9, 0x0}, -+ {0x20163, 0x0}, -+ {0x201ca, 0x0}, -+ {0x20164, 0x0}, -+ {0x201cb, 0x0}, -+ {0x20165, 0x0}, -+ {0x201cc, 0x0}, -+ {0x20166, 0x0}, -+ {0x201cd, 0x0}, -+ {0x20167, 0x0}, -+ {0x201ce, 0x0}, -+ {0x20168, 0x0}, -+ {0x201cf, 0x0}, -+ {0x20169, 0x0}, -+ {0x201d0, 0x0}, -+ {0x2016a, 0x0}, -+ {0x201d1, 0x0}, -+ {0x2016b, 0x0}, -+ {0x201d2, 0x0}, -+ {0x2016c, 0x0}, -+ {0x201d3, 0x0}, -+ {0x2016d, 0x0}, -+ {0x201d4, 0x0}, -+ {0x2016e, 0x0}, -+ {0x201d5, 0x0}, -+ {0x2016f, 0x0}, -+ {0x201d6, 0x0}, -+ {0x20170, 0x0}, -+ {0x201d7, 0x0}, -+ {0x20171, 0x0}, -+ {0x201d8, 0x0}, -+ {0x20172, 0x0}, -+ {0x201d9, 0x0}, -+ {0x20173, 0x0}, -+ {0x201da, 0x0}, -+ {0xc0001, 0x0}, -+ {0xc0002, 0x0}, -+ {0xc0003, 0x0}, -+ {0xc0000, 0x0}, -+ {0xc0006, 0x0}, -+ {0xc0007, 0x0}, -+ {0x9070c, 0x0}, -+ {0x9070d, 0x0}, -+ {0x9070e, 0x0}, -+ {0x90c13, 0x0}, -+ {0x9070f, 0x0}, -+ {0x90710, 0x0}, -+ {0x90711, 0x0}, -+ {0x90713, 0x0}, -+ {0x90714, 0x0}, -+ {0x90715, 0x0}, -+ {0x90c12, 0x0}, -+ {0x90712, 0x0}, -+ {0x90716, 0x0}, -+ {0x90717, 0x0}, -+ {0x90718, 0x0}, -+ {0x90719, 0x0}, -+ {0x9071a, 0x0}, -+ {0x9071b, 0x0}, -+ {0x90904, 0x0}, -+ {0x90986, 0x0}, -+ {0x90920, 0x0}, -+ {0x90921, 0x0}, -+ {0x90922, 0x0}, -+ {0x90923, 0x0}, -+ {0x90924, 0x0}, -+ {0x90925, 0x0}, -+ {0x90926, 0x0}, -+ {0x90927, 0x0}, -+ {0x90930, 0x0}, -+ {0x90931, 0x0}, -+ {0x90932, 0x0}, -+ {0x90933, 0x0}, -+ {0x9090a, 0x0}, -+ {0x9090c, 0x0}, -+ {0x9090d, 0x0}, -+ {0x200f0, 0x0}, -+ {0x200f1, 0x0}, -+ {0x200f2, 0x0}, -+ {0x100b9, 0x0}, -+ {0x100b1, 0x0}, -+ {0x100ba, 0x0}, -+ {0x100a2, 0x0}, -+ {0x100b5, 0x0}, -+ {0x110b9, 0x0}, -+ {0x110b1, 0x0}, -+ {0x110ba, 0x0}, -+ {0x110a2, 0x0}, -+ {0x110b5, 0x0}, -+ {0x120b9, 0x0}, -+ {0x120b1, 0x0}, -+ {0x120ba, 0x0}, -+ {0x120a2, 0x0}, -+ {0x120b5, 0x0}, -+ {0x130b9, 0x0}, -+ {0x130b1, 0x0}, -+ {0x130ba, 0x0}, -+ {0x130a2, 0x0}, -+ {0x130b5, 0x0}, -+ {0x70024, 0x0}, -+ {0x70025, 0x0}, -+ {0x70026, 0x0}, -+ {0x70027, 0x0}, -+ {0x70028, 0x0}, -+ {0x70029, 0x0}, -+ {0x7002a, 0x0}, -+ {0x7002b, 0x0}, -+ {0x70124, 0x0}, -+ {0x70125, 0x0}, -+ {0x70126, 0x0}, -+ {0x70127, 0x0}, -+ {0x70128, 0x0}, -+ {0x70129, 0x0}, -+ {0x7012a, 0x0}, -+ {0x7012b, 0x0}, -+ {0x70224, 0x0}, -+ {0x70225, 0x0}, -+ {0x70226, 0x0}, -+ {0x70227, 0x0}, -+ {0x70228, 0x0}, -+ {0x70229, 0x0}, -+ {0x7022a, 0x0}, -+ {0x7022b, 0x0}, -+ {0x70324, 0x0}, -+ {0x70325, 0x0}, -+ {0x70326, 0x0}, -+ {0x70327, 0x0}, -+ {0x70328, 0x0}, -+ {0x70329, 0x0}, -+ {0x7032a, 0x0}, -+ {0x7032b, 0x0}, -+ {0x70424, 0x0}, -+ {0x70425, 0x0}, -+ {0x70426, 0x0}, -+ {0x70427, 0x0}, -+ {0x70428, 0x0}, -+ {0x70429, 0x0}, -+ {0x7042a, 0x0}, -+ {0x7042b, 0x0}, -+ {0x70524, 0x0}, -+ {0x70525, 0x0}, -+ {0x70526, 0x0}, -+ {0x70527, 0x0}, -+ {0x70528, 0x0}, -+ {0x70529, 0x0}, -+ {0x7052a, 0x0}, -+ {0x7052b, 0x0}, -+ {0x70624, 0x0}, -+ {0x70625, 0x0}, -+ {0x70626, 0x0}, -+ {0x70627, 0x0}, -+ {0x70628, 0x0}, -+ {0x70629, 0x0}, -+ {0x7062a, 0x0}, -+ {0x7062b, 0x0}, -+ {0x70724, 0x0}, -+ {0x70725, 0x0}, -+ {0x70726, 0x0}, -+ {0x70727, 0x0}, -+ {0x70728, 0x0}, -+ {0x70729, 0x0}, -+ {0x7072a, 0x0}, -+ {0x7072b, 0x0}, -+ {0x70824, 0x0}, -+ {0x70825, 0x0}, -+ {0x70826, 0x0}, -+ {0x70827, 0x0}, -+ {0x70828, 0x0}, -+ {0x70829, 0x0}, -+ {0x7082a, 0x0}, -+ {0x7082b, 0x0}, -+ {0x70065, 0x0}, -+ {0x2007e, 0x0}, -+ {0x200ef, 0x0}, -+ {0x90910, 0x0}, -+ {0x20310, 0x0}, -+ {0x20311, 0x0}, -+ {0x20049, 0x0}, -+ {0x100be, 0x0}, -+ {0x100b0, 0x0}, -+ {0x10080, 0x0}, -+ {0x10081, 0x0}, -+ {0x10082, 0x0}, -+ {0x10083, 0x0}, -+ {0x10084, 0x0}, -+ {0x10085, 0x0}, -+ {0x10086, 0x0}, -+ {0x10087, 0x0}, -+ {0x10056, 0x0}, -+ {0x100d9, 0x0}, -+ {0x110be, 0x0}, -+ {0x110b0, 0x0}, -+ {0x11080, 0x0}, -+ {0x11081, 0x0}, -+ {0x11082, 0x0}, -+ {0x11083, 0x0}, -+ {0x11084, 0x0}, -+ {0x11085, 0x0}, -+ {0x11086, 0x0}, -+ {0x11087, 0x0}, -+ {0x11056, 0x0}, -+ {0x110d9, 0x0}, -+ {0x120be, 0x0}, -+ {0x120b0, 0x0}, -+ {0x12080, 0x0}, -+ {0x12081, 0x0}, -+ {0x12082, 0x0}, -+ {0x12083, 0x0}, -+ {0x12084, 0x0}, -+ {0x12085, 0x0}, -+ {0x12086, 0x0}, -+ {0x12087, 0x0}, -+ {0x12056, 0x0}, -+ {0x120d9, 0x0}, -+ {0x130be, 0x0}, -+ {0x130b0, 0x0}, -+ {0x13080, 0x0}, -+ {0x13081, 0x0}, -+ {0x13082, 0x0}, -+ {0x13083, 0x0}, -+ {0x13084, 0x0}, -+ {0x13085, 0x0}, -+ {0x13086, 0x0}, -+ {0x13087, 0x0}, -+ {0x13056, 0x0}, -+ {0x130d9, 0x0}, -+ {0x30090, 0x0}, -+ {0x30091, 0x0}, -+ {0x30092, 0x0}, -+ {0x30093, 0x0}, -+ {0x30094, 0x0}, -+ {0x30095, 0x0}, -+ {0x30096, 0x0}, -+ {0x31090, 0x0}, -+ {0x31091, 0x0}, -+ {0x31092, 0x0}, -+ {0x31093, 0x0}, -+ {0x31094, 0x0}, -+ {0x31095, 0x0}, -+ {0x31096, 0x0}, -+ {0x30002, 0x0}, -+ {0x30007, 0x0}, -+ {0x30008, 0x0}, -+ {0x30005, 0x0}, -+ {0x30006, 0x0}, -+ {0x30001, 0x0}, -+ {0x30101, 0x0}, -+ {0x30201, 0x0}, -+ {0x30301, 0x0}, -+ {0x30401, 0x0}, -+ {0x30501, 0x0}, -+ {0x30601, 0x0}, -+ {0x30701, 0x0}, -+ {0x30801, 0x0}, -+ {0x30901, 0x0}, -+ {0x31002, 0x0}, -+ {0x31007, 0x0}, -+ {0x31008, 0x0}, -+ {0x31005, 0x0}, -+ {0x31006, 0x0}, -+ {0x31001, 0x0}, -+ {0x31101, 0x0}, -+ {0x31201, 0x0}, -+ {0x31301, 0x0}, -+ {0x31401, 0x0}, -+ {0x31501, 0x0}, -+ {0x31601, 0x0}, -+ {0x31701, 0x0}, -+ {0x31801, 0x0}, -+ {0x31901, 0x0}, -+ {0x10000, 0x0}, -+ {0x100ad, 0x0}, -+ {0x100af, 0x0}, -+ {0x10020, 0x0}, -+ {0x10021, 0x0}, -+ {0x10028, 0x0}, -+ {0x10029, 0x0}, -+ {0x10066, 0x0}, -+ {0x10067, 0x0}, -+ {0x1005a, 0x0}, -+ {0x1005b, 0x0}, -+ {0x1005c, 0x0}, -+ {0x1005d, 0x0}, -+ {0x1002a, 0x0}, -+ {0x1002b, 0x0}, -+ {0x10024, 0x0}, -+ {0x10025, 0x0}, -+ {0x10026, 0x0}, -+ {0x10027, 0x0}, -+ {0x10010, 0x0}, -+ {0x10011, 0x0}, -+ {0x10012, 0x0}, -+ {0x10013, 0x0}, -+ {0x10068, 0x0}, -+ {0x10069, 0x0}, -+ {0x1006a, 0x0}, -+ {0x1006b, 0x0}, -+ {0x1006c, 0x0}, -+ {0x1006d, 0x0}, -+ {0x1006e, 0x0}, -+ {0x1006f, 0x0}, -+ {0x1001c, 0x0}, -+ {0x1001d, 0x0}, -+ {0x1001e, 0x0}, -+ {0x1001f, 0x0}, -+ {0x10124, 0x0}, -+ {0x10125, 0x0}, -+ {0x10126, 0x0}, -+ {0x10127, 0x0}, -+ {0x10110, 0x0}, -+ {0x10111, 0x0}, -+ {0x10112, 0x0}, -+ {0x10113, 0x0}, -+ {0x10168, 0x0}, -+ {0x10169, 0x0}, -+ {0x1016a, 0x0}, -+ {0x1016b, 0x0}, -+ {0x1016c, 0x0}, -+ {0x1016d, 0x0}, -+ {0x1016e, 0x0}, -+ {0x1016f, 0x0}, -+ {0x1011c, 0x0}, -+ {0x1011d, 0x0}, -+ {0x1011e, 0x0}, -+ {0x1011f, 0x0}, -+ {0x10224, 0x0}, -+ {0x10225, 0x0}, -+ {0x10226, 0x0}, -+ {0x10227, 0x0}, -+ {0x10210, 0x0}, -+ {0x10211, 0x0}, -+ {0x10212, 0x0}, -+ {0x10213, 0x0}, -+ {0x10268, 0x0}, -+ {0x10269, 0x0}, -+ {0x1026a, 0x0}, -+ {0x1026b, 0x0}, -+ {0x1026c, 0x0}, -+ {0x1026d, 0x0}, -+ {0x1026e, 0x0}, -+ {0x1026f, 0x0}, -+ {0x1021c, 0x0}, -+ {0x1021d, 0x0}, -+ {0x1021e, 0x0}, -+ {0x1021f, 0x0}, -+ {0x10324, 0x0}, -+ {0x10325, 0x0}, -+ {0x10326, 0x0}, -+ {0x10327, 0x0}, -+ {0x10310, 0x0}, -+ {0x10311, 0x0}, -+ {0x10312, 0x0}, -+ {0x10313, 0x0}, -+ {0x10368, 0x0}, -+ {0x10369, 0x0}, -+ {0x1036a, 0x0}, -+ {0x1036b, 0x0}, -+ {0x1036c, 0x0}, -+ {0x1036d, 0x0}, -+ {0x1036e, 0x0}, -+ {0x1036f, 0x0}, -+ {0x1031c, 0x0}, -+ {0x1031d, 0x0}, -+ {0x1031e, 0x0}, -+ {0x1031f, 0x0}, -+ {0x10424, 0x0}, -+ {0x10425, 0x0}, -+ {0x10426, 0x0}, -+ {0x10427, 0x0}, -+ {0x10410, 0x0}, -+ {0x10411, 0x0}, -+ {0x10412, 0x0}, -+ {0x10413, 0x0}, -+ {0x10468, 0x0}, -+ {0x10469, 0x0}, -+ {0x1046a, 0x0}, -+ {0x1046b, 0x0}, -+ {0x1046c, 0x0}, -+ {0x1046d, 0x0}, -+ {0x1046e, 0x0}, -+ {0x1046f, 0x0}, -+ {0x1041c, 0x0}, -+ {0x1041d, 0x0}, -+ {0x1041e, 0x0}, -+ {0x1041f, 0x0}, -+ {0x10524, 0x0}, -+ {0x10525, 0x0}, -+ {0x10526, 0x0}, -+ {0x10527, 0x0}, -+ {0x10510, 0x0}, -+ {0x10511, 0x0}, -+ {0x10512, 0x0}, -+ {0x10513, 0x0}, -+ {0x10568, 0x0}, -+ {0x10569, 0x0}, -+ {0x1056a, 0x0}, -+ {0x1056b, 0x0}, -+ {0x1056c, 0x0}, -+ {0x1056d, 0x0}, -+ {0x1056e, 0x0}, -+ {0x1056f, 0x0}, -+ {0x1051c, 0x0}, -+ {0x1051d, 0x0}, -+ {0x1051e, 0x0}, -+ {0x1051f, 0x0}, -+ {0x10624, 0x0}, -+ {0x10625, 0x0}, -+ {0x10626, 0x0}, -+ {0x10627, 0x0}, -+ {0x10610, 0x0}, -+ {0x10611, 0x0}, -+ {0x10612, 0x0}, -+ {0x10613, 0x0}, -+ {0x10668, 0x0}, -+ {0x10669, 0x0}, -+ {0x1066a, 0x0}, -+ {0x1066b, 0x0}, -+ {0x1066c, 0x0}, -+ {0x1066d, 0x0}, -+ {0x1066e, 0x0}, -+ {0x1066f, 0x0}, -+ {0x1061c, 0x0}, -+ {0x1061d, 0x0}, -+ {0x1061e, 0x0}, -+ {0x1061f, 0x0}, -+ {0x10724, 0x0}, -+ {0x10725, 0x0}, -+ {0x10726, 0x0}, -+ {0x10727, 0x0}, -+ {0x10710, 0x0}, -+ {0x10711, 0x0}, -+ {0x10712, 0x0}, -+ {0x10713, 0x0}, -+ {0x10768, 0x0}, -+ {0x10769, 0x0}, -+ {0x1076a, 0x0}, -+ {0x1076b, 0x0}, -+ {0x1076c, 0x0}, -+ {0x1076d, 0x0}, -+ {0x1076e, 0x0}, -+ {0x1076f, 0x0}, -+ {0x1071c, 0x0}, -+ {0x1071d, 0x0}, -+ {0x1071e, 0x0}, -+ {0x1071f, 0x0}, -+ {0x10824, 0x0}, -+ {0x10825, 0x0}, -+ {0x10826, 0x0}, -+ {0x10827, 0x0}, -+ {0x10810, 0x0}, -+ {0x10811, 0x0}, -+ {0x10812, 0x0}, -+ {0x10813, 0x0}, -+ {0x10868, 0x0}, -+ {0x10869, 0x0}, -+ {0x1086a, 0x0}, -+ {0x1086b, 0x0}, -+ {0x1086c, 0x0}, -+ {0x1086d, 0x0}, -+ {0x1086e, 0x0}, -+ {0x1086f, 0x0}, -+ {0x1081c, 0x0}, -+ {0x1081d, 0x0}, -+ {0x1081e, 0x0}, -+ {0x1081f, 0x0}, -+ {0x1000c, 0x0}, -+ {0x1000d, 0x0}, -+ {0x10015, 0x0}, -+ {0x10016, 0x0}, -+ {0x10019, 0x0}, -+ {0x1001b, 0x0}, -+ {0x10022, 0x0}, -+ {0x10023, 0x0}, -+ {0x100d0, 0x0}, -+ {0x100d1, 0x0}, -+ {0x100d2, 0x0}, -+ {0x100d3, 0x0}, -+ {0x100d4, 0x0}, -+ {0x11000, 0x0}, -+ {0x110ad, 0x0}, -+ {0x110af, 0x0}, -+ {0x11020, 0x0}, -+ {0x11021, 0x0}, -+ {0x11028, 0x0}, -+ {0x11029, 0x0}, -+ {0x11066, 0x0}, -+ {0x11067, 0x0}, -+ {0x1105a, 0x0}, -+ {0x1105b, 0x0}, -+ {0x1105c, 0x0}, -+ {0x1105d, 0x0}, -+ {0x1102a, 0x0}, -+ {0x1102b, 0x0}, -+ {0x11024, 0x0}, -+ {0x11025, 0x0}, -+ {0x11026, 0x0}, -+ {0x11027, 0x0}, -+ {0x11010, 0x0}, -+ {0x11011, 0x0}, -+ {0x11012, 0x0}, -+ {0x11013, 0x0}, -+ {0x11068, 0x0}, -+ {0x11069, 0x0}, -+ {0x1106a, 0x0}, -+ {0x1106b, 0x0}, -+ {0x1106c, 0x0}, -+ {0x1106d, 0x0}, -+ {0x1106e, 0x0}, -+ {0x1106f, 0x0}, -+ {0x1101c, 0x0}, -+ {0x1101d, 0x0}, -+ {0x1101e, 0x0}, -+ {0x1101f, 0x0}, -+ {0x11124, 0x0}, -+ {0x11125, 0x0}, -+ {0x11126, 0x0}, -+ {0x11127, 0x0}, -+ {0x11110, 0x0}, -+ {0x11111, 0x0}, -+ {0x11112, 0x0}, -+ {0x11113, 0x0}, -+ {0x11168, 0x0}, -+ {0x11169, 0x0}, -+ {0x1116a, 0x0}, -+ {0x1116b, 0x0}, -+ {0x1116c, 0x0}, -+ {0x1116d, 0x0}, -+ {0x1116e, 0x0}, -+ {0x1116f, 0x0}, -+ {0x1111c, 0x0}, -+ {0x1111d, 0x0}, -+ {0x1111e, 0x0}, -+ {0x1111f, 0x0}, -+ {0x11224, 0x0}, -+ {0x11225, 0x0}, -+ {0x11226, 0x0}, -+ {0x11227, 0x0}, -+ {0x11210, 0x0}, -+ {0x11211, 0x0}, -+ {0x11212, 0x0}, -+ {0x11213, 0x0}, -+ {0x11268, 0x0}, -+ {0x11269, 0x0}, -+ {0x1126a, 0x0}, -+ {0x1126b, 0x0}, -+ {0x1126c, 0x0}, -+ {0x1126d, 0x0}, -+ {0x1126e, 0x0}, -+ {0x1126f, 0x0}, -+ {0x1121c, 0x0}, -+ {0x1121d, 0x0}, -+ {0x1121e, 0x0}, -+ {0x1121f, 0x0}, -+ {0x11324, 0x0}, -+ {0x11325, 0x0}, -+ {0x11326, 0x0}, -+ {0x11327, 0x0}, -+ {0x11310, 0x0}, -+ {0x11311, 0x0}, -+ {0x11312, 0x0}, -+ {0x11313, 0x0}, -+ {0x11368, 0x0}, -+ {0x11369, 0x0}, -+ {0x1136a, 0x0}, -+ {0x1136b, 0x0}, -+ {0x1136c, 0x0}, -+ {0x1136d, 0x0}, -+ {0x1136e, 0x0}, -+ {0x1136f, 0x0}, -+ {0x1131c, 0x0}, -+ {0x1131d, 0x0}, -+ {0x1131e, 0x0}, -+ {0x1131f, 0x0}, -+ {0x11424, 0x0}, -+ {0x11425, 0x0}, -+ {0x11426, 0x0}, -+ {0x11427, 0x0}, -+ {0x11410, 0x0}, -+ {0x11411, 0x0}, -+ {0x11412, 0x0}, -+ {0x11413, 0x0}, -+ {0x11468, 0x0}, -+ {0x11469, 0x0}, -+ {0x1146a, 0x0}, -+ {0x1146b, 0x0}, -+ {0x1146c, 0x0}, -+ {0x1146d, 0x0}, -+ {0x1146e, 0x0}, -+ {0x1146f, 0x0}, -+ {0x1141c, 0x0}, -+ {0x1141d, 0x0}, -+ {0x1141e, 0x0}, -+ {0x1141f, 0x0}, -+ {0x11524, 0x0}, -+ {0x11525, 0x0}, -+ {0x11526, 0x0}, -+ {0x11527, 0x0}, -+ {0x11510, 0x0}, -+ {0x11511, 0x0}, -+ {0x11512, 0x0}, -+ {0x11513, 0x0}, -+ {0x11568, 0x0}, -+ {0x11569, 0x0}, -+ {0x1156a, 0x0}, -+ {0x1156b, 0x0}, -+ {0x1156c, 0x0}, -+ {0x1156d, 0x0}, -+ {0x1156e, 0x0}, -+ {0x1156f, 0x0}, -+ {0x1151c, 0x0}, -+ {0x1151d, 0x0}, -+ {0x1151e, 0x0}, -+ {0x1151f, 0x0}, -+ {0x11624, 0x0}, -+ {0x11625, 0x0}, -+ {0x11626, 0x0}, -+ {0x11627, 0x0}, -+ {0x11610, 0x0}, -+ {0x11611, 0x0}, -+ {0x11612, 0x0}, -+ {0x11613, 0x0}, -+ {0x11668, 0x0}, -+ {0x11669, 0x0}, -+ {0x1166a, 0x0}, -+ {0x1166b, 0x0}, -+ {0x1166c, 0x0}, -+ {0x1166d, 0x0}, -+ {0x1166e, 0x0}, -+ {0x1166f, 0x0}, -+ {0x1161c, 0x0}, -+ {0x1161d, 0x0}, -+ {0x1161e, 0x0}, -+ {0x1161f, 0x0}, -+ {0x11724, 0x0}, -+ {0x11725, 0x0}, -+ {0x11726, 0x0}, -+ {0x11727, 0x0}, -+ {0x11710, 0x0}, -+ {0x11711, 0x0}, -+ {0x11712, 0x0}, -+ {0x11713, 0x0}, -+ {0x11768, 0x0}, -+ {0x11769, 0x0}, -+ {0x1176a, 0x0}, -+ {0x1176b, 0x0}, -+ {0x1176c, 0x0}, -+ {0x1176d, 0x0}, -+ {0x1176e, 0x0}, -+ {0x1176f, 0x0}, -+ {0x1171c, 0x0}, -+ {0x1171d, 0x0}, -+ {0x1171e, 0x0}, -+ {0x1171f, 0x0}, -+ {0x11824, 0x0}, -+ {0x11825, 0x0}, -+ {0x11826, 0x0}, -+ {0x11827, 0x0}, -+ {0x11810, 0x0}, -+ {0x11811, 0x0}, -+ {0x11812, 0x0}, -+ {0x11813, 0x0}, -+ {0x11868, 0x0}, -+ {0x11869, 0x0}, -+ {0x1186a, 0x0}, -+ {0x1186b, 0x0}, -+ {0x1186c, 0x0}, -+ {0x1186d, 0x0}, -+ {0x1186e, 0x0}, -+ {0x1186f, 0x0}, -+ {0x1181c, 0x0}, -+ {0x1181d, 0x0}, -+ {0x1181e, 0x0}, -+ {0x1181f, 0x0}, -+ {0x1100c, 0x0}, -+ {0x1100d, 0x0}, -+ {0x11015, 0x0}, -+ {0x11016, 0x0}, -+ {0x11019, 0x0}, -+ {0x1101b, 0x0}, -+ {0x11022, 0x0}, -+ {0x11023, 0x0}, -+ {0x110d0, 0x0}, -+ {0x110d1, 0x0}, -+ {0x110d2, 0x0}, -+ {0x110d3, 0x0}, -+ {0x110d4, 0x0}, -+ {0x12000, 0x0}, -+ {0x120ad, 0x0}, -+ {0x120af, 0x0}, -+ {0x12020, 0x0}, -+ {0x12021, 0x0}, -+ {0x12028, 0x0}, -+ {0x12029, 0x0}, -+ {0x12066, 0x0}, -+ {0x12067, 0x0}, -+ {0x1205a, 0x0}, -+ {0x1205b, 0x0}, -+ {0x1205c, 0x0}, -+ {0x1205d, 0x0}, -+ {0x1202a, 0x0}, -+ {0x1202b, 0x0}, -+ {0x12024, 0x0}, -+ {0x12025, 0x0}, -+ {0x12026, 0x0}, -+ {0x12027, 0x0}, -+ {0x12010, 0x0}, -+ {0x12011, 0x0}, -+ {0x12012, 0x0}, -+ {0x12013, 0x0}, -+ {0x12068, 0x0}, -+ {0x12069, 0x0}, -+ {0x1206a, 0x0}, -+ {0x1206b, 0x0}, -+ {0x1206c, 0x0}, -+ {0x1206d, 0x0}, -+ {0x1206e, 0x0}, -+ {0x1206f, 0x0}, -+ {0x1201c, 0x0}, -+ {0x1201d, 0x0}, -+ {0x1201e, 0x0}, -+ {0x1201f, 0x0}, -+ {0x12124, 0x0}, -+ {0x12125, 0x0}, -+ {0x12126, 0x0}, -+ {0x12127, 0x0}, -+ {0x12110, 0x0}, -+ {0x12111, 0x0}, -+ {0x12112, 0x0}, -+ {0x12113, 0x0}, -+ {0x12168, 0x0}, -+ {0x12169, 0x0}, -+ {0x1216a, 0x0}, -+ {0x1216b, 0x0}, -+ {0x1216c, 0x0}, -+ {0x1216d, 0x0}, -+ {0x1216e, 0x0}, -+ {0x1216f, 0x0}, -+ {0x1211c, 0x0}, -+ {0x1211d, 0x0}, -+ {0x1211e, 0x0}, -+ {0x1211f, 0x0}, -+ {0x12224, 0x0}, -+ {0x12225, 0x0}, -+ {0x12226, 0x0}, -+ {0x12227, 0x0}, -+ {0x12210, 0x0}, -+ {0x12211, 0x0}, -+ {0x12212, 0x0}, -+ {0x12213, 0x0}, -+ {0x12268, 0x0}, -+ {0x12269, 0x0}, -+ {0x1226a, 0x0}, -+ {0x1226b, 0x0}, -+ {0x1226c, 0x0}, -+ {0x1226d, 0x0}, -+ {0x1226e, 0x0}, -+ {0x1226f, 0x0}, -+ {0x1221c, 0x0}, -+ {0x1221d, 0x0}, -+ {0x1221e, 0x0}, -+ {0x1221f, 0x0}, -+ {0x12324, 0x0}, -+ {0x12325, 0x0}, -+ {0x12326, 0x0}, -+ {0x12327, 0x0}, -+ {0x12310, 0x0}, -+ {0x12311, 0x0}, -+ {0x12312, 0x0}, -+ {0x12313, 0x0}, -+ {0x12368, 0x0}, -+ {0x12369, 0x0}, -+ {0x1236a, 0x0}, -+ {0x1236b, 0x0}, -+ {0x1236c, 0x0}, -+ {0x1236d, 0x0}, -+ {0x1236e, 0x0}, -+ {0x1236f, 0x0}, -+ {0x1231c, 0x0}, -+ {0x1231d, 0x0}, -+ {0x1231e, 0x0}, -+ {0x1231f, 0x0}, -+ {0x12424, 0x0}, -+ {0x12425, 0x0}, -+ {0x12426, 0x0}, -+ {0x12427, 0x0}, -+ {0x12410, 0x0}, -+ {0x12411, 0x0}, -+ {0x12412, 0x0}, -+ {0x12413, 0x0}, -+ {0x12468, 0x0}, -+ {0x12469, 0x0}, -+ {0x1246a, 0x0}, -+ {0x1246b, 0x0}, -+ {0x1246c, 0x0}, -+ {0x1246d, 0x0}, -+ {0x1246e, 0x0}, -+ {0x1246f, 0x0}, -+ {0x1241c, 0x0}, -+ {0x1241d, 0x0}, -+ {0x1241e, 0x0}, -+ {0x1241f, 0x0}, -+ {0x12524, 0x0}, -+ {0x12525, 0x0}, -+ {0x12526, 0x0}, -+ {0x12527, 0x0}, -+ {0x12510, 0x0}, -+ {0x12511, 0x0}, -+ {0x12512, 0x0}, -+ {0x12513, 0x0}, -+ {0x12568, 0x0}, -+ {0x12569, 0x0}, -+ {0x1256a, 0x0}, -+ {0x1256b, 0x0}, -+ {0x1256c, 0x0}, -+ {0x1256d, 0x0}, -+ {0x1256e, 0x0}, -+ {0x1256f, 0x0}, -+ {0x1251c, 0x0}, -+ {0x1251d, 0x0}, -+ {0x1251e, 0x0}, -+ {0x1251f, 0x0}, -+ {0x12624, 0x0}, -+ {0x12625, 0x0}, -+ {0x12626, 0x0}, -+ {0x12627, 0x0}, -+ {0x12610, 0x0}, -+ {0x12611, 0x0}, -+ {0x12612, 0x0}, -+ {0x12613, 0x0}, -+ {0x12668, 0x0}, -+ {0x12669, 0x0}, -+ {0x1266a, 0x0}, -+ {0x1266b, 0x0}, -+ {0x1266c, 0x0}, -+ {0x1266d, 0x0}, -+ {0x1266e, 0x0}, -+ {0x1266f, 0x0}, -+ {0x1261c, 0x0}, -+ {0x1261d, 0x0}, -+ {0x1261e, 0x0}, -+ {0x1261f, 0x0}, -+ {0x12724, 0x0}, -+ {0x12725, 0x0}, -+ {0x12726, 0x0}, -+ {0x12727, 0x0}, -+ {0x12710, 0x0}, -+ {0x12711, 0x0}, -+ {0x12712, 0x0}, -+ {0x12713, 0x0}, -+ {0x12768, 0x0}, -+ {0x12769, 0x0}, -+ {0x1276a, 0x0}, -+ {0x1276b, 0x0}, -+ {0x1276c, 0x0}, -+ {0x1276d, 0x0}, -+ {0x1276e, 0x0}, -+ {0x1276f, 0x0}, -+ {0x1271c, 0x0}, -+ {0x1271d, 0x0}, -+ {0x1271e, 0x0}, -+ {0x1271f, 0x0}, -+ {0x12824, 0x0}, -+ {0x12825, 0x0}, -+ {0x12826, 0x0}, -+ {0x12827, 0x0}, -+ {0x12810, 0x0}, -+ {0x12811, 0x0}, -+ {0x12812, 0x0}, -+ {0x12813, 0x0}, -+ {0x12868, 0x0}, -+ {0x12869, 0x0}, -+ {0x1286a, 0x0}, -+ {0x1286b, 0x0}, -+ {0x1286c, 0x0}, -+ {0x1286d, 0x0}, -+ {0x1286e, 0x0}, -+ {0x1286f, 0x0}, -+ {0x1281c, 0x0}, -+ {0x1281d, 0x0}, -+ {0x1281e, 0x0}, -+ {0x1281f, 0x0}, -+ {0x1200c, 0x0}, -+ {0x1200d, 0x0}, -+ {0x12015, 0x0}, -+ {0x12016, 0x0}, -+ {0x12019, 0x0}, -+ {0x1201b, 0x0}, -+ {0x12022, 0x0}, -+ {0x12023, 0x0}, -+ {0x120d0, 0x0}, -+ {0x120d1, 0x0}, -+ {0x120d2, 0x0}, -+ {0x120d3, 0x0}, -+ {0x120d4, 0x0}, -+ {0x13000, 0x0}, -+ {0x130ad, 0x0}, -+ {0x130af, 0x0}, -+ {0x13020, 0x0}, -+ {0x13021, 0x0}, -+ {0x13028, 0x0}, -+ {0x13029, 0x0}, -+ {0x13066, 0x0}, -+ {0x13067, 0x0}, -+ {0x1305a, 0x0}, -+ {0x1305b, 0x0}, -+ {0x1305c, 0x0}, -+ {0x1305d, 0x0}, -+ {0x1302a, 0x0}, -+ {0x1302b, 0x0}, -+ {0x13024, 0x0}, -+ {0x13025, 0x0}, -+ {0x13026, 0x0}, -+ {0x13027, 0x0}, -+ {0x13010, 0x0}, -+ {0x13011, 0x0}, -+ {0x13012, 0x0}, -+ {0x13013, 0x0}, -+ {0x13068, 0x0}, -+ {0x13069, 0x0}, -+ {0x1306a, 0x0}, -+ {0x1306b, 0x0}, -+ {0x1306c, 0x0}, -+ {0x1306d, 0x0}, -+ {0x1306e, 0x0}, -+ {0x1306f, 0x0}, -+ {0x1301c, 0x0}, -+ {0x1301d, 0x0}, -+ {0x1301e, 0x0}, -+ {0x1301f, 0x0}, -+ {0x13124, 0x0}, -+ {0x13125, 0x0}, -+ {0x13126, 0x0}, -+ {0x13127, 0x0}, -+ {0x13110, 0x0}, -+ {0x13111, 0x0}, -+ {0x13112, 0x0}, -+ {0x13113, 0x0}, -+ {0x13168, 0x0}, -+ {0x13169, 0x0}, -+ {0x1316a, 0x0}, -+ {0x1316b, 0x0}, -+ {0x1316c, 0x0}, -+ {0x1316d, 0x0}, -+ {0x1316e, 0x0}, -+ {0x1316f, 0x0}, -+ {0x1311c, 0x0}, -+ {0x1311d, 0x0}, -+ {0x1311e, 0x0}, -+ {0x1311f, 0x0}, -+ {0x13224, 0x0}, -+ {0x13225, 0x0}, -+ {0x13226, 0x0}, -+ {0x13227, 0x0}, -+ {0x13210, 0x0}, -+ {0x13211, 0x0}, -+ {0x13212, 0x0}, -+ {0x13213, 0x0}, -+ {0x13268, 0x0}, -+ {0x13269, 0x0}, -+ {0x1326a, 0x0}, -+ {0x1326b, 0x0}, -+ {0x1326c, 0x0}, -+ {0x1326d, 0x0}, -+ {0x1326e, 0x0}, -+ {0x1326f, 0x0}, -+ {0x1321c, 0x0}, -+ {0x1321d, 0x0}, -+ {0x1321e, 0x0}, -+ {0x1321f, 0x0}, -+ {0x13324, 0x0}, -+ {0x13325, 0x0}, -+ {0x13326, 0x0}, -+ {0x13327, 0x0}, -+ {0x13310, 0x0}, -+ {0x13311, 0x0}, -+ {0x13312, 0x0}, -+ {0x13313, 0x0}, -+ {0x13368, 0x0}, -+ {0x13369, 0x0}, -+ {0x1336a, 0x0}, -+ {0x1336b, 0x0}, -+ {0x1336c, 0x0}, -+ {0x1336d, 0x0}, -+ {0x1336e, 0x0}, -+ {0x1336f, 0x0}, -+ {0x1331c, 0x0}, -+ {0x1331d, 0x0}, -+ {0x1331e, 0x0}, -+ {0x1331f, 0x0}, -+ {0x13424, 0x0}, -+ {0x13425, 0x0}, -+ {0x13426, 0x0}, -+ {0x13427, 0x0}, -+ {0x13410, 0x0}, -+ {0x13411, 0x0}, -+ {0x13412, 0x0}, -+ {0x13413, 0x0}, -+ {0x13468, 0x0}, -+ {0x13469, 0x0}, -+ {0x1346a, 0x0}, -+ {0x1346b, 0x0}, -+ {0x1346c, 0x0}, -+ {0x1346d, 0x0}, -+ {0x1346e, 0x0}, -+ {0x1346f, 0x0}, -+ {0x1341c, 0x0}, -+ {0x1341d, 0x0}, -+ {0x1341e, 0x0}, -+ {0x1341f, 0x0}, -+ {0x13524, 0x0}, -+ {0x13525, 0x0}, -+ {0x13526, 0x0}, -+ {0x13527, 0x0}, -+ {0x13510, 0x0}, -+ {0x13511, 0x0}, -+ {0x13512, 0x0}, -+ {0x13513, 0x0}, -+ {0x13568, 0x0}, -+ {0x13569, 0x0}, -+ {0x1356a, 0x0}, -+ {0x1356b, 0x0}, -+ {0x1356c, 0x0}, -+ {0x1356d, 0x0}, -+ {0x1356e, 0x0}, -+ {0x1356f, 0x0}, -+ {0x1351c, 0x0}, -+ {0x1351d, 0x0}, -+ {0x1351e, 0x0}, -+ {0x1351f, 0x0}, -+ {0x13624, 0x0}, -+ {0x13625, 0x0}, -+ {0x13626, 0x0}, -+ {0x13627, 0x0}, -+ {0x13610, 0x0}, -+ {0x13611, 0x0}, -+ {0x13612, 0x0}, -+ {0x13613, 0x0}, -+ {0x13668, 0x0}, -+ {0x13669, 0x0}, -+ {0x1366a, 0x0}, -+ {0x1366b, 0x0}, -+ {0x1366c, 0x0}, -+ {0x1366d, 0x0}, -+ {0x1366e, 0x0}, -+ {0x1366f, 0x0}, -+ {0x1361c, 0x0}, -+ {0x1361d, 0x0}, -+ {0x1361e, 0x0}, -+ {0x1361f, 0x0}, -+ {0x13724, 0x0}, -+ {0x13725, 0x0}, -+ {0x13726, 0x0}, -+ {0x13727, 0x0}, -+ {0x13710, 0x0}, -+ {0x13711, 0x0}, -+ {0x13712, 0x0}, -+ {0x13713, 0x0}, -+ {0x13768, 0x0}, -+ {0x13769, 0x0}, -+ {0x1376a, 0x0}, -+ {0x1376b, 0x0}, -+ {0x1376c, 0x0}, -+ {0x1376d, 0x0}, -+ {0x1376e, 0x0}, -+ {0x1376f, 0x0}, -+ {0x1371c, 0x0}, -+ {0x1371d, 0x0}, -+ {0x1371e, 0x0}, -+ {0x1371f, 0x0}, -+ {0x13824, 0x0}, -+ {0x13825, 0x0}, -+ {0x13826, 0x0}, -+ {0x13827, 0x0}, -+ {0x13810, 0x0}, -+ {0x13811, 0x0}, -+ {0x13812, 0x0}, -+ {0x13813, 0x0}, -+ {0x13868, 0x0}, -+ {0x13869, 0x0}, -+ {0x1386a, 0x0}, -+ {0x1386b, 0x0}, -+ {0x1386c, 0x0}, -+ {0x1386d, 0x0}, -+ {0x1386e, 0x0}, -+ {0x1386f, 0x0}, -+ {0x1381c, 0x0}, -+ {0x1381d, 0x0}, -+ {0x1381e, 0x0}, -+ {0x1381f, 0x0}, -+ {0x1300c, 0x0}, -+ {0x1300d, 0x0}, -+ {0x13015, 0x0}, -+ {0x13016, 0x0}, -+ {0x13019, 0x0}, -+ {0x1301b, 0x0}, -+ {0x13022, 0x0}, -+ {0x13023, 0x0}, -+ {0x130d0, 0x0}, -+ {0x130d1, 0x0}, -+ {0x130d2, 0x0}, -+ {0x130d3, 0x0}, -+ {0x130d4, 0x0}, -+ {0x90807, 0x0}, -+ {0x90808, 0x0}, -+ {0x90813, 0x0}, -+ {0x2004e, 0x0}, -+ {0x2000d, 0x0}, -+ {0x20077, 0x0}, -+}; -+ -+/* PHY Initialize Configuration for Pstate 0 */ -+static struct ddrphy_cfg_param ddr_phy_fsp0_cfg[] = { -+ {0x90802, 0x1}, -+ {0x2004a, 0x601}, -+ {0x2004b, 0x1c3e}, -+ {0x2004c, 0x2e8f}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x101}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20002, 0x2}, -+ {0x20000, 0x2}, -+ {0x90801, 0x4d}, -+ {0x90809, 0x6800}, -+ {0x1005e, 0x366}, -+ {0x10060, 0x366}, -+ {0x10062, 0x366}, -+ {0x10064, 0x366}, -+ {0x1005f, 0x366}, -+ {0x10061, 0x366}, -+ {0x10063, 0x366}, -+ {0x10065, 0x366}, -+ {0x1105e, 0x366}, -+ {0x11060, 0x366}, -+ {0x11062, 0x366}, -+ {0x11064, 0x366}, -+ {0x1105f, 0x366}, -+ {0x11061, 0x366}, -+ {0x11063, 0x366}, -+ {0x11065, 0x366}, -+ {0x1205e, 0x366}, -+ {0x12060, 0x366}, -+ {0x12062, 0x366}, -+ {0x12064, 0x366}, -+ {0x1205f, 0x366}, -+ {0x12061, 0x366}, -+ {0x12063, 0x366}, -+ {0x12065, 0x366}, -+ {0x1305e, 0x366}, -+ {0x13060, 0x366}, -+ {0x13062, 0x366}, -+ {0x13064, 0x366}, -+ {0x1305f, 0x366}, -+ {0x13061, 0x366}, -+ {0x13063, 0x366}, -+ {0x13065, 0x366}, -+ {0x10005, 0x0}, -+ {0x1000b, 0x0}, -+ {0x11005, 0x0}, -+ {0x1100b, 0x0}, -+ {0x12005, 0x0}, -+ {0x1200b, 0x0}, -+ {0x13005, 0x0}, -+ {0x1300b, 0x0}, -+ {0x20007, 0x200}, -+ {0x20013, 0x2c}, -+ {0x30038, 0x3}, -+ {0x30039, 0x3}, -+ {0x3003a, 0x3}, -+ {0x31038, 0x3}, -+ {0x31039, 0x3}, -+ {0x3103a, 0x3}, -+ {0x10038, 0x3}, -+ {0x1003a, 0x3}, -+ {0x11038, 0x3}, -+ {0x1103a, 0x3}, -+ {0x12038, 0x3}, -+ {0x1203a, 0x3}, -+ {0x13038, 0x3}, -+ {0x1303a, 0x3}, -+ {0x1003b, 0x3}, -+ {0x1103b, 0x3}, -+ {0x1203b, 0x3}, -+ {0x1303b, 0x3}, -+ {0x10009, 0x0}, -+ {0x10037, 0x0}, -+ {0x11009, 0x0}, -+ {0x11037, 0x0}, -+ {0x12009, 0x0}, -+ {0x12037, 0x0}, -+ {0x13009, 0x0}, -+ {0x13037, 0x0}, -+ {0x10004, 0x0}, -+ {0x10003, 0x0}, -+ {0x11004, 0x0}, -+ {0x11003, 0x0}, -+ {0x12004, 0x0}, -+ {0x12003, 0x0}, -+ {0x13004, 0x0}, -+ {0x13003, 0x0}, -+ {0x20004, 0x320}, -+ {0x30050, 0x15}, -+ {0x30051, 0x15}, -+ {0x30052, 0x15}, -+ {0x30053, 0x15}, -+ {0x31050, 0x15}, -+ {0x31051, 0x15}, -+ {0x31052, 0x15}, -+ {0x31053, 0x15}, -+ {0x1004e, 0x15}, -+ {0x1004f, 0x15}, -+ {0x10050, 0x15}, -+ {0x10051, 0x15}, -+ {0x1014e, 0x15}, -+ {0x1014f, 0x15}, -+ {0x10150, 0x15}, -+ {0x10151, 0x15}, -+ {0x1024e, 0x15}, -+ {0x1024f, 0x15}, -+ {0x10250, 0x15}, -+ {0x10251, 0x15}, -+ {0x1034e, 0x15}, -+ {0x1034f, 0x15}, -+ {0x10350, 0x15}, -+ {0x10351, 0x15}, -+ {0x1044e, 0x15}, -+ {0x1044f, 0x15}, -+ {0x10450, 0x15}, -+ {0x10451, 0x15}, -+ {0x1054e, 0x15}, -+ {0x1054f, 0x15}, -+ {0x10550, 0x15}, -+ {0x10551, 0x15}, -+ {0x1064e, 0x15}, -+ {0x1064f, 0x15}, -+ {0x10650, 0x15}, -+ {0x10651, 0x15}, -+ {0x1074e, 0x15}, -+ {0x1074f, 0x15}, -+ {0x10750, 0x15}, -+ {0x10751, 0x15}, -+ {0x1084e, 0x15}, -+ {0x1084f, 0x15}, -+ {0x10850, 0x15}, -+ {0x10851, 0x15}, -+ {0x1104e, 0x15}, -+ {0x1104f, 0x15}, -+ {0x11050, 0x15}, -+ {0x11051, 0x15}, -+ {0x1114e, 0x15}, -+ {0x1114f, 0x15}, -+ {0x11150, 0x15}, -+ {0x11151, 0x15}, -+ {0x1124e, 0x15}, -+ {0x1124f, 0x15}, -+ {0x11250, 0x15}, -+ {0x11251, 0x15}, -+ {0x1134e, 0x15}, -+ {0x1134f, 0x15}, -+ {0x11350, 0x15}, -+ {0x11351, 0x15}, -+ {0x1144e, 0x15}, -+ {0x1144f, 0x15}, -+ {0x11450, 0x15}, -+ {0x11451, 0x15}, -+ {0x1154e, 0x15}, -+ {0x1154f, 0x15}, -+ {0x11550, 0x15}, -+ {0x11551, 0x15}, -+ {0x1164e, 0x15}, -+ {0x1164f, 0x15}, -+ {0x11650, 0x15}, -+ {0x11651, 0x15}, -+ {0x1174e, 0x15}, -+ {0x1174f, 0x15}, -+ {0x11750, 0x15}, -+ {0x11751, 0x15}, -+ {0x1184e, 0x15}, -+ {0x1184f, 0x15}, -+ {0x11850, 0x15}, -+ {0x11851, 0x15}, -+ {0x1204e, 0x15}, -+ {0x1204f, 0x15}, -+ {0x12050, 0x15}, -+ {0x12051, 0x15}, -+ {0x1214e, 0x15}, -+ {0x1214f, 0x15}, -+ {0x12150, 0x15}, -+ {0x12151, 0x15}, -+ {0x1224e, 0x15}, -+ {0x1224f, 0x15}, -+ {0x12250, 0x15}, -+ {0x12251, 0x15}, -+ {0x1234e, 0x15}, -+ {0x1234f, 0x15}, -+ {0x12350, 0x15}, -+ {0x12351, 0x15}, -+ {0x1244e, 0x15}, -+ {0x1244f, 0x15}, -+ {0x12450, 0x15}, -+ {0x12451, 0x15}, -+ {0x1254e, 0x15}, -+ {0x1254f, 0x15}, -+ {0x12550, 0x15}, -+ {0x12551, 0x15}, -+ {0x1264e, 0x15}, -+ {0x1264f, 0x15}, -+ {0x12650, 0x15}, -+ {0x12651, 0x15}, -+ {0x1274e, 0x15}, -+ {0x1274f, 0x15}, -+ {0x12750, 0x15}, -+ {0x12751, 0x15}, -+ {0x1284e, 0x15}, -+ {0x1284f, 0x15}, -+ {0x12850, 0x15}, -+ {0x12851, 0x15}, -+ {0x1304e, 0x15}, -+ {0x1304f, 0x15}, -+ {0x13050, 0x15}, -+ {0x13051, 0x15}, -+ {0x1314e, 0x15}, -+ {0x1314f, 0x15}, -+ {0x13150, 0x15}, -+ {0x13151, 0x15}, -+ {0x1324e, 0x15}, -+ {0x1324f, 0x15}, -+ {0x13250, 0x15}, -+ {0x13251, 0x15}, -+ {0x1334e, 0x15}, -+ {0x1334f, 0x15}, -+ {0x13350, 0x15}, -+ {0x13351, 0x15}, -+ {0x1344e, 0x15}, -+ {0x1344f, 0x15}, -+ {0x13450, 0x15}, -+ {0x13451, 0x15}, -+ {0x1354e, 0x15}, -+ {0x1354f, 0x15}, -+ {0x13550, 0x15}, -+ {0x13551, 0x15}, -+ {0x1364e, 0x15}, -+ {0x1364f, 0x15}, -+ {0x13650, 0x15}, -+ {0x13651, 0x15}, -+ {0x1374e, 0x15}, -+ {0x1374f, 0x15}, -+ {0x13750, 0x15}, -+ {0x13751, 0x15}, -+ {0x1384e, 0x15}, -+ {0x1384f, 0x15}, -+ {0x13850, 0x15}, -+ {0x13851, 0x15}, -+ {0x30030, 0x0}, -+ {0x30031, 0x0}, -+ {0x30035, 0x0}, -+ {0x31030, 0x0}, -+ {0x31031, 0x0}, -+ {0x31035, 0x0}, -+ {0x10030, 0x0}, -+ {0x10035, 0x0}, -+ {0x10036, 0x0}, -+ {0x11030, 0x0}, -+ {0x11035, 0x0}, -+ {0x11036, 0x0}, -+ {0x12030, 0x0}, -+ {0x12035, 0x0}, -+ {0x12036, 0x0}, -+ {0x13030, 0x0}, -+ {0x13035, 0x0}, -+ {0x13036, 0x0}, -+ {0x3003c, 0x5}, -+ {0x3103c, 0x5}, -+ {0x1003c, 0x5}, -+ {0x1003d, 0x5}, -+ {0x1003e, 0x5}, -+ {0x1103c, 0x5}, -+ {0x1103d, 0x5}, -+ {0x1103e, 0x5}, -+ {0x1203c, 0x5}, -+ {0x1203d, 0x5}, -+ {0x1203e, 0x5}, -+ {0x1303c, 0x5}, -+ {0x1303d, 0x5}, -+ {0x1303e, 0x5}, -+ {0x20003, 0x1}, -+ {0x10006, 0x2}, -+ {0x11006, 0x2}, -+ {0x12006, 0x2}, -+ {0x13006, 0x2}, -+ {0x20001, 0x1122}, -+ {0x20009, 0x0}, -+ {0x20008, 0x0}, -+ {0x200d9, 0x1}, -+ {0x30eef, 0x0}, -+ {0x31eef, 0x0}, -+ {0x20014, 0x1301}, -+ {0x9080a, 0x1300}, -+ {0x10040, 0xe0e}, -+ {0x10042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x10043, 0x0}, -+ {0x10044, 0xe0e}, -+ {0x10045, 0xe0e}, -+ {0x11040, 0xe0e}, -+ {0x11042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x11043, 0x0}, -+ {0x11044, 0xe0e}, -+ {0x11045, 0xe0e}, -+ {0x12040, 0xe0e}, -+ {0x12042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x12043, 0x0}, -+ {0x12044, 0xe0e}, -+ {0x12045, 0xe0e}, -+ {0x13040, 0xe0e}, -+ {0x13042, 0xe0e}, -+ {0x9080d, 0x0}, -+ {0x13043, 0x0}, -+ {0x13044, 0xe0e}, -+ {0x13045, 0xe0e}, -+ {0x30040, 0xe0e}, -+ {0x30041, 0xe0e}, -+ {0x30042, 0xe0e}, -+ {0x30043, 0xe0e}, -+ {0x30330, 0x33}, -+ {0x31040, 0xe0e}, -+ {0x31041, 0xe0e}, -+ {0x31042, 0xe0e}, -+ {0x31043, 0xe0e}, -+ {0x31330, 0x33}, -+ {0x20331, 0x33}, -+ {0x10048, 0xc00}, -+ {0x1004a, 0xc00}, -+ {0x1004b, 0xc00}, -+ {0x1004c, 0xe00}, -+ {0x1004d, 0xe00}, -+ {0x11048, 0xc00}, -+ {0x1104a, 0xc00}, -+ {0x1104b, 0xc00}, -+ {0x1104c, 0xe00}, -+ {0x1104d, 0xe00}, -+ {0x12048, 0xc00}, -+ {0x1204a, 0xc00}, -+ {0x1204b, 0xc00}, -+ {0x1204c, 0xe00}, -+ {0x1204d, 0xe00}, -+ {0x13048, 0xc00}, -+ {0x1304a, 0xc00}, -+ {0x1304b, 0xc00}, -+ {0x1304c, 0xe00}, -+ {0x1304d, 0xe00}, -+ {0x30048, 0xc00}, -+ {0x30049, 0xc00}, -+ {0x3004a, 0xc00}, -+ {0x3004b, 0xc00}, -+ {0x31048, 0xc00}, -+ {0x31049, 0xc00}, -+ {0x3104a, 0xc00}, -+ {0x3104b, 0xc00}, -+ {0x30033, 0xcc}, -+ {0x30034, 0xcc}, -+ {0x3002e, 0xcc}, -+ {0x31033, 0xcc}, -+ {0x31034, 0xcc}, -+ {0x3102e, 0xcc}, -+ {0x10033, 0xcc}, -+ {0x1002e, 0xcc}, -+ {0x1002f, 0xcc}, -+ {0x11033, 0xcc}, -+ {0x1102e, 0xcc}, -+ {0x1102f, 0xcc}, -+ {0x12033, 0xcc}, -+ {0x1202e, 0xcc}, -+ {0x1202f, 0xcc}, -+ {0x13033, 0xcc}, -+ {0x1302e, 0xcc}, -+ {0x1302f, 0xcc}, -+ {0x20015, 0x0}, -+ {0x90806, 0x0}, -+ {0x100e8, 0x0}, -+ {0x100e9, 0x15}, -+ {0x110e8, 0x0}, -+ {0x110e9, 0x15}, -+ {0x120e8, 0x0}, -+ {0x120e9, 0x15}, -+ {0x130e8, 0x0}, -+ {0x130e9, 0x15}, -+ {0x10001, 0x0}, -+ {0x11001, 0x0}, -+ {0x12001, 0x0}, -+ {0x13001, 0x0}, -+ {0x20012, 0xa1a1}, -+ {0x20017, 0x40}, -+ {0x2000a, 0x40}, -+ {0x20186, 0xa1}, -+ {0x20187, 0x40}, -+ {0x20010, 0x0}, -+ {0x20011, 0xf}, -+ {0x9080b, 0xf}, -+ {0x9080c, 0xf}, -+ {0x100a5, 0x1}, -+ {0x110a5, 0x1}, -+ {0x120a5, 0x1}, -+ {0x130a5, 0x1}, -+ {0x10014, 0x3232}, -+ {0x11014, 0x3232}, -+ {0x12014, 0x3232}, -+ {0x13014, 0x3232}, -+ {0x1000f, 0x1086}, -+ {0x1100f, 0x1086}, -+ {0x1200f, 0x1086}, -+ {0x1300f, 0x1086}, -+ {0x20035, 0x100c}, -+ {0x20036, 0x100c}, -+ {0x20037, 0x41c}, -+ {0x20038, 0x1920}, -+ {0x20039, 0x1018}, -+ {0x2003a, 0x1018}, -+ {0x2003b, 0x428}, -+ {0x2003c, 0x2d2c}, -+ {0x2003d, 0x1004}, -+ {0x2003e, 0x1004}, -+ {0x2003f, 0x414}, -+ {0x20040, 0x1118}, -+ {0x2002c, 0x83f}, -+ {0x2002d, 0x83f}, -+ {0x20030, 0x83f}, -+ {0x2002e, 0x81f}, -+ {0x2002f, 0x81f}, -+ {0x2000c, 0x0}, -+ {0x2001b, 0x0}, -+ {0x10007, 0x0}, -+ {0x11007, 0x0}, -+ {0x12007, 0x0}, -+ {0x13007, 0x0}, -+ {0xc0080, 0x3}, -+}; -+ -+/* P0 message block parameter for training firmware */ -+static struct ddrphy_cfg_param ddr_phy_msgh_fsp0_cfg[] = { -+ {0x58000, 0x4000}, -+ {0x58002, 0x30}, -+ {0x58003, 0x1900}, -+ {0x58004, 0x4}, -+ {0x58005, 0x4}, -+ {0x58008, 0x17df}, -+ {0x58009, 0xc8}, -+ {0x5800b, 0x2}, -+ {0x5800d, 0x100}, -+ {0x58012, 0x310}, -+ {0x5801f, 0x1000}, -+ {0x58020, 0x3}, -+ {0x5802d, 0xb0b0}, -+ {0x5802e, 0xb0b0}, -+ {0x5802f, 0xbbbb}, -+ {0x58030, 0xbbbb}, -+ {0x58031, 0x606}, -+ {0x58032, 0x606}, -+ {0x58033, 0x5454}, -+ {0x58034, 0x5454}, -+ {0x58035, 0x4646}, -+ {0x58036, 0x4646}, -+ {0x58037, 0x2d2d}, -+ {0x58038, 0x2d2d}, -+ {0x58039, 0x8080}, -+ {0x5803a, 0x8080}, -+ {0x5803b, 0x1c1c}, -+ {0x5803c, 0x1c1c}, -+ {0x5803d, 0x1c1c}, -+ {0x5803e, 0x1c1c}, -+ {0x58041, 0x2c04}, -+ {0x58042, 0x2c04}, -+ {0x58043, 0x1b1b}, -+ {0x58044, 0x1b1b}, -+ {0x58045, 0x1010}, -+ {0x58046, 0x1010}, -+ {0x58047, 0x202}, -+ {0x58048, 0x202}, -+ {0x5804f, 0x8080}, -+ {0x58050, 0x8080}, -+ {0x58055, 0x404}, -+ {0x58056, 0x404}, -+ {0x58074, 0x2e}, -+ {0x58075, 0x50}, -+ {0x58080, 0x1}, -+ {0x58081, 0x4300}, -+ {0x58082, 0x3f}, -+}; -+ -+/* DRAM PHY init engine image for Pstate 0 */ -+static struct ddrphy_cfg_param ddr_phy_pie_fsp0_cfg[] = { -+ {0x908f0, 0x65}, -+ {0x908f1, 0x258}, -+ {0x908f2, 0x0}, -+ {0x908f3, 0x58}, -+ {0x908f4, 0x14}, -+ {0x908f5, 0x0}, -+ {0x908f6, 0xb0}, -+ {0x908f7, 0x0}, -+ {0x41008, 0xc9d8}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0xc808}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x2b00}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0xc958}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0xcd88}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x2b00}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0xc0d8}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0xd848}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x2b00}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0xc158}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0xddc8}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x2b00}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0xc1d8}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0xc308}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x2b00}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0xc558}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0xea08}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x2b00}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0xc5d8}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0xe308}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x2b00}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x48d8}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x4208}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x88d8}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x9608}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x2b00}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0xca58}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0xc108}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x2b00}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0xcb58}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0xc008}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x2b00}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0xd4d8}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0xc008}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0x20015, 0x0}, -+ {0x3004a, 0x0}, -+ {0x3004b, 0x0}, -+ {0x3104a, 0x0}, -+ {0x3104b, 0x0}, -+ {0x2004a, 0x1a3e}, -+ {0x2004b, 0x1a3e}, -+ {0x2004c, 0x2c0f}, -+ {0x2004d, 0x0}, -+ {0x20088, 0x101}, -+ {0x20089, 0x0}, -+ {0x2008a, 0x0}, -+ {0x2008c, 0x0}, -+ {0x20041, 0x1}, -+ {0x90802, 0x0}, -+ {0x20045, 0x2}, -+ {0x10057, 0x0}, -+ {0x11057, 0x0}, -+ {0x12057, 0x0}, -+ {0x13057, 0x0}, -+ {0x1000f, 0x1087}, -+ {0x1100f, 0x1087}, -+ {0x1200f, 0x1087}, -+ {0x1300f, 0x1087}, -+ {0x90803, 0x4}, -+ {0x90804, 0x82}, -+ {0x90805, 0x1}, -+ {0x90903, 0x0}, -+ {0x9090b, 0x2}, -+ {0x90811, 0x0}, -+ {0x90812, 0xff00}, -+ {0x20072, 0x3}, -+ {0x9080e, 0x3}, -+ {0x20073, 0x3}, -+ {0x9080f, 0x3}, -+}; -+ -+/* DRAM PHY init engine image */ -+static struct ddrphy_cfg_param ddr_phy_pie[] = { -+ {0x41000, 0x0}, -+ {0x41001, 0x0}, -+ {0x41002, 0x0}, -+ {0x41003, 0x0}, -+ {0x41004, 0x0}, -+ {0x41005, 0x0}, -+ {0x41006, 0x0}, -+ {0x41007, 0x0}, -+ {0x41388, 0xc028}, -+ {0x41389, 0x0}, -+ {0x4138a, 0x0}, -+ {0x4138b, 0x10}, -+ {0x4138c, 0x0}, -+ {0x4138d, 0x0}, -+ {0x4138e, 0x0}, -+ {0x4138f, 0x0}, -+ {0x41390, 0x0}, -+ {0x41391, 0x0}, -+ {0x41392, 0x0}, -+ {0x41393, 0x400}, -+ {0x41394, 0x0}, -+ {0x41395, 0x0}, -+ {0x41396, 0x0}, -+ {0x41397, 0x0}, -+ {0x41398, 0x0}, -+ {0x41399, 0x0}, -+ {0x4139a, 0x0}, -+ {0x4139b, 0x0}, -+ {0x4139c, 0x0}, -+ {0x4139d, 0x0}, -+ {0x4139e, 0x0}, -+ {0x4139f, 0x0}, -+ {0x413a0, 0xc858}, -+ {0x413a1, 0x0}, -+ {0x413a2, 0x0}, -+ {0x413a3, 0x10}, -+ {0x413a4, 0xe088}, -+ {0x413a5, 0x0}, -+ {0x413a6, 0x0}, -+ {0x413a7, 0x10}, -+ {0x413a8, 0xe038}, -+ {0x413a9, 0x0}, -+ {0x413aa, 0x0}, -+ {0x413ab, 0x10}, -+ {0x413ac, 0xc858}, -+ {0x413ad, 0x0}, -+ {0x413ae, 0x0}, -+ {0x413af, 0x10}, -+ {0x413b0, 0xc088}, -+ {0x413b1, 0x0}, -+ {0x413b2, 0x0}, -+ {0x413b3, 0x10}, -+ {0x413b4, 0x0}, -+ {0x413b5, 0x0}, -+ {0x413b6, 0x0}, -+ {0x413b7, 0x0}, -+ {0x413b8, 0xc028}, -+ {0x413b9, 0x0}, -+ {0x413ba, 0x0}, -+ {0x413bb, 0x10}, -+ {0x413bc, 0x0}, -+ {0x413bd, 0x0}, -+ {0x413be, 0x0}, -+ {0x413bf, 0x0}, -+ {0x413c0, 0x0}, -+ {0x413c1, 0x0}, -+ {0x413c2, 0x0}, -+ {0x413c3, 0x400}, -+ {0x413c4, 0x0}, -+ {0x413c5, 0x0}, -+ {0x413c6, 0x0}, -+ {0x413c7, 0x0}, -+ {0x413c8, 0x0}, -+ {0x413c9, 0x0}, -+ {0x413ca, 0x0}, -+ {0x413cb, 0x0}, -+ {0x413cc, 0x0}, -+ {0x413cd, 0x0}, -+ {0x413ce, 0x0}, -+ {0x413cf, 0x0}, -+ {0x413d0, 0xc858}, -+ {0x413d1, 0x0}, -+ {0x413d2, 0x0}, -+ {0x413d3, 0x10}, -+ {0x413d4, 0xe208}, -+ {0x413d5, 0x0}, -+ {0x413d6, 0x0}, -+ {0x413d7, 0x10}, -+ {0x413d8, 0xe038}, -+ {0x413d9, 0x0}, -+ {0x413da, 0x0}, -+ {0x413db, 0x10}, -+ {0x413dc, 0xc858}, -+ {0x413dd, 0x0}, -+ {0x413de, 0x0}, -+ {0x413df, 0x10}, -+ {0x413e0, 0xc208}, -+ {0x413e1, 0x0}, -+ {0x413e2, 0x0}, -+ {0x413e3, 0x10}, -+ {0x413e4, 0x0}, -+ {0x413e5, 0x0}, -+ {0x413e6, 0x0}, -+ {0x413e7, 0x0}, -+ {0x413e8, 0xce58}, -+ {0x413e9, 0x0}, -+ {0x413ea, 0x0}, -+ {0x413eb, 0x10}, -+ {0x413ec, 0xc208}, -+ {0x413ed, 0x0}, -+ {0x413ee, 0x0}, -+ {0x413ef, 0x10}, -+ {0x413f0, 0x0}, -+ {0x413f1, 0x0}, -+ {0x413f2, 0x0}, -+ {0x413f3, 0x0}, -+ {0x413f4, 0x0}, -+ {0x413f5, 0x0}, -+ {0x413f6, 0x0}, -+ {0x413f7, 0x0}, -+ {0x413f8, 0xc370}, -+ {0x413f9, 0x0}, -+ {0x413fa, 0x0}, -+ {0x413fb, 0x10}, -+ {0x413fc, 0x0}, -+ {0x413fd, 0x0}, -+ {0x413fe, 0x0}, -+ {0x413ff, 0x0}, -+ {0x41400, 0xc040}, -+ {0x41401, 0x0}, -+ {0x41402, 0x0}, -+ {0x41403, 0x10}, -+ {0x41404, 0x0}, -+ {0x41405, 0x0}, -+ {0x41406, 0x0}, -+ {0x41407, 0x10}, -+ {0x41408, 0xd2d8}, -+ {0x41409, 0x0}, -+ {0x4140a, 0x0}, -+ {0x4140b, 0x10}, -+ {0x4140c, 0xe008}, -+ {0x4140d, 0x0}, -+ {0x4140e, 0x0}, -+ {0x4140f, 0x10}, -+ {0x41410, 0x0}, -+ {0x41411, 0x0}, -+ {0x41412, 0x0}, -+ {0x41413, 0x5b00}, -+ {0x41414, 0x0}, -+ {0x41415, 0x0}, -+ {0x41416, 0x0}, -+ {0x41417, 0x0}, -+ {0x41418, 0xc0f0}, -+ {0x41419, 0x0}, -+ {0x4141a, 0x0}, -+ {0x4141b, 0x10}, -+ {0x4141c, 0x0}, -+ {0x4141d, 0x0}, -+ {0x4141e, 0x0}, -+ {0x4141f, 0x0}, -+ {0x41420, 0xcfd8}, -+ {0x41421, 0x0}, -+ {0x41422, 0x0}, -+ {0x41423, 0x10}, -+ {0x41424, 0xc008}, -+ {0x41425, 0x0}, -+ {0x41426, 0x0}, -+ {0x41427, 0x10}, -+ {0x41428, 0x0}, -+ {0x41429, 0x0}, -+ {0x4142a, 0x0}, -+ {0x4142b, 0x2b00}, -+ {0x4142c, 0x0}, -+ {0x4142d, 0x0}, -+ {0x4142e, 0x0}, -+ {0x4142f, 0x0}, -+ {0x41430, 0xd058}, -+ {0x41431, 0x0}, -+ {0x41432, 0x0}, -+ {0x41433, 0x10}, -+ {0x41434, 0xc008}, -+ {0x41435, 0x0}, -+ {0x41436, 0x0}, -+ {0x41437, 0x10}, -+ {0x41438, 0x0}, -+ {0x41439, 0x0}, -+ {0x4143a, 0x0}, -+ {0x4143b, 0x2b00}, -+ {0x4143c, 0x0}, -+ {0x4143d, 0x0}, -+ {0x4143e, 0x0}, -+ {0x4143f, 0x0}, -+ {0x41440, 0xd0d8}, -+ {0x41441, 0x0}, -+ {0x41442, 0x0}, -+ {0x41443, 0x10}, -+ {0x41444, 0xc088}, -+ {0x41445, 0x0}, -+ {0x41446, 0x0}, -+ {0x41447, 0x10}, -+ {0x41448, 0x0}, -+ {0x41449, 0x0}, -+ {0x4144a, 0x0}, -+ {0x4144b, 0x2b00}, -+ {0x4144c, 0x0}, -+ {0x4144d, 0x0}, -+ {0x4144e, 0x0}, -+ {0x4144f, 0x0}, -+ {0x41450, 0xd158}, -+ {0x41451, 0x0}, -+ {0x41452, 0x0}, -+ {0x41453, 0x10}, -+ {0x41454, 0xc008}, -+ {0x41455, 0x0}, -+ {0x41456, 0x0}, -+ {0x41457, 0x10}, -+ {0x41458, 0x0}, -+ {0x41459, 0x0}, -+ {0x4145a, 0x0}, -+ {0x4145b, 0x5b00}, -+ {0x4145c, 0x0}, -+ {0x4145d, 0x0}, -+ {0x4145e, 0x0}, -+ {0x4145f, 0x0}, -+ {0x41460, 0x402c}, -+ {0x41461, 0xd00}, -+ {0x41462, 0x1}, -+ {0x41463, 0x400}, -+ {0x41464, 0x4050}, -+ {0x41465, 0x800}, -+ {0x41466, 0x0}, -+ {0x41467, 0x0}, -+ {0x41468, 0x0}, -+ {0x41469, 0x0}, -+ {0x4146a, 0x0}, -+ {0x4146b, 0x400}, -+ {0x4146c, 0x0}, -+ {0x4146d, 0x0}, -+ {0x4146e, 0x0}, -+ {0x4146f, 0x0}, -+ {0x41470, 0x0}, -+ {0x41471, 0x0}, -+ {0x41472, 0x0}, -+ {0x41473, 0x400}, -+ {0x41474, 0x4050}, -+ {0x41475, 0x803}, -+ {0x41476, 0x0}, -+ {0x41477, 0x0}, -+ {0x41478, 0x0}, -+ {0x41479, 0x0}, -+ {0x4147a, 0x0}, -+ {0x4147b, 0x7f00}, -+ {0x4147c, 0x0}, -+ {0x4147d, 0x0}, -+ {0x4147e, 0x0}, -+ {0x4147f, 0x400}, -+ {0x41480, 0x407c}, -+ {0x41481, 0x0}, -+ {0x41482, 0x0}, -+ {0x41483, 0x400}, -+ {0x41484, 0x0}, -+ {0x41485, 0x0}, -+ {0x41486, 0x0}, -+ {0x41487, 0x0}, -+ {0x41488, 0x0}, -+ {0x41489, 0x0}, -+ {0x4148a, 0x0}, -+ {0x4148b, 0x400}, -+ {0x4148c, 0x0}, -+ {0x4148d, 0x0}, -+ {0x4148e, 0x1}, -+ {0x4148f, 0x0}, -+ {0x41490, 0x0}, -+ {0x41491, 0x0}, -+ {0x41492, 0x0}, -+ {0x41493, 0x400}, -+ {0x41494, 0x0}, -+ {0x41495, 0x0}, -+ {0x41496, 0x0}, -+ {0x41497, 0x0}, -+ {0x41498, 0x0}, -+ {0x41499, 0x0}, -+ {0x4149a, 0x0}, -+ {0x4149b, 0x0}, -+ {0x4149c, 0x0}, -+ {0x4149d, 0x0}, -+ {0x4149e, 0x0}, -+ {0x4149f, 0x0}, -+ {0x414a0, 0x802c}, -+ {0x414a1, 0xd00}, -+ {0x414a2, 0x1}, -+ {0x414a3, 0x410}, -+ {0x414a4, 0x8050}, -+ {0x414a5, 0x800}, -+ {0x414a6, 0x0}, -+ {0x414a7, 0x10}, -+ {0x414a8, 0x0}, -+ {0x414a9, 0x0}, -+ {0x414aa, 0x0}, -+ {0x414ab, 0x400}, -+ {0x414ac, 0x0}, -+ {0x414ad, 0x0}, -+ {0x414ae, 0x0}, -+ {0x414af, 0x0}, -+ {0x414b0, 0x0}, -+ {0x414b1, 0x0}, -+ {0x414b2, 0x0}, -+ {0x414b3, 0x400}, -+ {0x414b4, 0x8050}, -+ {0x414b5, 0x803}, -+ {0x414b6, 0x0}, -+ {0x414b7, 0x10}, -+ {0x414b8, 0x0}, -+ {0x414b9, 0x0}, -+ {0x414ba, 0x0}, -+ {0x414bb, 0x7f00}, -+ {0x414bc, 0x0}, -+ {0x414bd, 0x0}, -+ {0x414be, 0x0}, -+ {0x414bf, 0x400}, -+ {0x414c0, 0x807c}, -+ {0x414c1, 0x0}, -+ {0x414c2, 0x0}, -+ {0x414c3, 0x410}, -+ {0x414c4, 0x0}, -+ {0x414c5, 0x0}, -+ {0x414c6, 0x0}, -+ {0x414c7, 0x0}, -+ {0x414c8, 0x0}, -+ {0x414c9, 0x0}, -+ {0x414ca, 0x0}, -+ {0x414cb, 0x400}, -+ {0x414cc, 0x0}, -+ {0x414cd, 0x0}, -+ {0x414ce, 0x1}, -+ {0x414cf, 0x0}, -+ {0x414d0, 0x0}, -+ {0x414d1, 0x0}, -+ {0x414d2, 0x0}, -+ {0x414d3, 0x400}, -+ {0x414d4, 0x0}, -+ {0x414d5, 0x0}, -+ {0x414d6, 0x0}, -+ {0x414d7, 0x0}, -+ {0x414d8, 0x0}, -+ {0x414d9, 0x0}, -+ {0x414da, 0x0}, -+ {0x414db, 0x0}, -+ {0x414dc, 0x0}, -+ {0x414dd, 0x0}, -+ {0x414de, 0x0}, -+ {0x414df, 0x0}, -+ {0x414e0, 0x402c}, -+ {0x414e1, 0xd00}, -+ {0x414e2, 0x1}, -+ {0x414e3, 0x0}, -+ {0x414e4, 0x4050}, -+ {0x414e5, 0x800}, -+ {0x414e6, 0x0}, -+ {0x414e7, 0x0}, -+ {0x414e8, 0x0}, -+ {0x414e9, 0x0}, -+ {0x414ea, 0x0}, -+ {0x414eb, 0x0}, -+ {0x414ec, 0x0}, -+ {0x414ed, 0x0}, -+ {0x414ee, 0x0}, -+ {0x414ef, 0x0}, -+ {0x414f0, 0x0}, -+ {0x414f1, 0x0}, -+ {0x414f2, 0x0}, -+ {0x414f3, 0x0}, -+ {0x414f4, 0x4050}, -+ {0x414f5, 0x803}, -+ {0x414f6, 0x0}, -+ {0x414f7, 0x0}, -+ {0x414f8, 0x0}, -+ {0x414f9, 0x0}, -+ {0x414fa, 0x0}, -+ {0x414fb, 0x0}, -+ {0x414fc, 0x0}, -+ {0x414fd, 0x0}, -+ {0x414fe, 0x0}, -+ {0x414ff, 0x0}, -+ {0x41500, 0x0}, -+ {0x41501, 0x0}, -+ {0x41502, 0x0}, -+ {0x41503, 0x0}, -+ {0x41504, 0x4050}, -+ {0x41505, 0x800}, -+ {0x41506, 0x0}, -+ {0x41507, 0x0}, -+ {0x41508, 0x0}, -+ {0x41509, 0x0}, -+ {0x4150a, 0x0}, -+ {0x4150b, 0x6b00}, -+ {0x4150c, 0x0}, -+ {0x4150d, 0x0}, -+ {0x4150e, 0x0}, -+ {0x4150f, 0x400}, -+ {0x41510, 0x0}, -+ {0x41511, 0x0}, -+ {0x41512, 0x0}, -+ {0x41513, 0x0}, -+ {0x41514, 0x407c}, -+ {0x41515, 0x0}, -+ {0x41516, 0x0}, -+ {0x41517, 0x0}, -+ {0x41518, 0x0}, -+ {0x41519, 0x0}, -+ {0x4151a, 0x0}, -+ {0x4151b, 0x0}, -+ {0x4151c, 0x0}, -+ {0x4151d, 0x0}, -+ {0x4151e, 0x0}, -+ {0x4151f, 0x0}, -+ {0x41520, 0x0}, -+ {0x41521, 0x0}, -+ {0x41522, 0x1}, -+ {0x41523, 0x0}, -+ {0x41524, 0x0}, -+ {0x41525, 0x0}, -+ {0x41526, 0x0}, -+ {0x41527, 0x0}, -+ {0x41528, 0x0}, -+ {0x41529, 0x0}, -+ {0x4152a, 0x0}, -+ {0x4152b, 0x4b00}, -+ {0x4152c, 0x0}, -+ {0x4152d, 0x0}, -+ {0x4152e, 0x0}, -+ {0x4152f, 0x1800}, -+ {0x41530, 0x0}, -+ {0x41531, 0x0}, -+ {0x41532, 0x0}, -+ {0x41533, 0x0}, -+ {0x41534, 0x802c}, -+ {0x41535, 0xd00}, -+ {0x41536, 0x1}, -+ {0x41537, 0x10}, -+ {0x41538, 0x8050}, -+ {0x41539, 0x800}, -+ {0x4153a, 0x0}, -+ {0x4153b, 0x10}, -+ {0x4153c, 0x0}, -+ {0x4153d, 0x0}, -+ {0x4153e, 0x0}, -+ {0x4153f, 0x0}, -+ {0x41540, 0x0}, -+ {0x41541, 0x0}, -+ {0x41542, 0x0}, -+ {0x41543, 0x0}, -+ {0x41544, 0x0}, -+ {0x41545, 0x0}, -+ {0x41546, 0x0}, -+ {0x41547, 0x0}, -+ {0x41548, 0x8050}, -+ {0x41549, 0x803}, -+ {0x4154a, 0x0}, -+ {0x4154b, 0x10}, -+ {0x4154c, 0x0}, -+ {0x4154d, 0x0}, -+ {0x4154e, 0x0}, -+ {0x4154f, 0x0}, -+ {0x41550, 0x0}, -+ {0x41551, 0x0}, -+ {0x41552, 0x0}, -+ {0x41553, 0x0}, -+ {0x41554, 0x0}, -+ {0x41555, 0x0}, -+ {0x41556, 0x0}, -+ {0x41557, 0x0}, -+ {0x41558, 0x8050}, -+ {0x41559, 0x800}, -+ {0x4155a, 0x0}, -+ {0x4155b, 0x10}, -+ {0x4155c, 0x0}, -+ {0x4155d, 0x0}, -+ {0x4155e, 0x0}, -+ {0x4155f, 0x0}, -+ {0x41560, 0x0}, -+ {0x41561, 0x0}, -+ {0x41562, 0x0}, -+ {0x41563, 0x6b00}, -+ {0x41564, 0x0}, -+ {0x41565, 0x0}, -+ {0x41566, 0x0}, -+ {0x41567, 0x400}, -+ {0x41568, 0x807c}, -+ {0x41569, 0x0}, -+ {0x4156a, 0x0}, -+ {0x4156b, 0x10}, -+ {0x4156c, 0x0}, -+ {0x4156d, 0x0}, -+ {0x4156e, 0x0}, -+ {0x4156f, 0x0}, -+ {0x41570, 0x0}, -+ {0x41571, 0x0}, -+ {0x41572, 0x0}, -+ {0x41573, 0x0}, -+ {0x41574, 0x0}, -+ {0x41575, 0x0}, -+ {0x41576, 0x1}, -+ {0x41577, 0x0}, -+ {0x41578, 0x0}, -+ {0x41579, 0x0}, -+ {0x4157a, 0x0}, -+ {0x4157b, 0x7b00}, -+ {0x4157c, 0x0}, -+ {0x4157d, 0x0}, -+ {0x4157e, 0x0}, -+ {0x4157f, 0x2000}, -+ {0x41580, 0x402c}, -+ {0x41581, 0xd00}, -+ {0x41582, 0x1}, -+ {0x41583, 0x0}, -+ {0x41584, 0x5198}, -+ {0x41585, 0x803}, -+ {0x41586, 0x0}, -+ {0x41587, 0x0}, -+ {0x41588, 0x0}, -+ {0x41589, 0x0}, -+ {0x4158a, 0x0}, -+ {0x4158b, 0x3b00}, -+ {0x4158c, 0x0}, -+ {0x4158d, 0x0}, -+ {0x4158e, 0x0}, -+ {0x4158f, 0x0}, -+ {0x41590, 0x5218}, -+ {0x41591, 0x803}, -+ {0x41592, 0x0}, -+ {0x41593, 0x0}, -+ {0x41594, 0x0}, -+ {0x41595, 0x0}, -+ {0x41596, 0x0}, -+ {0x41597, 0x0}, -+ {0x41598, 0x0}, -+ {0x41599, 0x0}, -+ {0x4159a, 0x0}, -+ {0x4159b, 0x6b00}, -+ {0x4159c, 0x0}, -+ {0x4159d, 0x0}, -+ {0x4159e, 0x0}, -+ {0x4159f, 0x400}, -+ {0x415a0, 0x407c}, -+ {0x415a1, 0x0}, -+ {0x415a2, 0x0}, -+ {0x415a3, 0x0}, -+ {0x415a4, 0x0}, -+ {0x415a5, 0x0}, -+ {0x415a6, 0x0}, -+ {0x415a7, 0x0}, -+ {0x415a8, 0x0}, -+ {0x415a9, 0x0}, -+ {0x415aa, 0x0}, -+ {0x415ab, 0x0}, -+ {0x415ac, 0x0}, -+ {0x415ad, 0x0}, -+ {0x415ae, 0x1}, -+ {0x415af, 0x0}, -+ {0x415b0, 0x0}, -+ {0x415b1, 0x0}, -+ {0x415b2, 0x0}, -+ {0x415b3, 0x1b00}, -+ {0x415b4, 0x0}, -+ {0x415b5, 0x0}, -+ {0x415b6, 0x0}, -+ {0x415b7, 0x0}, -+ {0x415b8, 0x0}, -+ {0x415b9, 0x0}, -+ {0x415ba, 0x0}, -+ {0x415bb, 0x0}, -+ {0x415bc, 0x802c}, -+ {0x415bd, 0xd00}, -+ {0x415be, 0x1}, -+ {0x415bf, 0x10}, -+ {0x415c0, 0x9198}, -+ {0x415c1, 0x803}, -+ {0x415c2, 0x0}, -+ {0x415c3, 0x10}, -+ {0x415c4, 0x0}, -+ {0x415c5, 0x0}, -+ {0x415c6, 0x0}, -+ {0x415c7, 0x0}, -+ {0x415c8, 0x0}, -+ {0x415c9, 0x0}, -+ {0x415ca, 0x0}, -+ {0x415cb, 0x2b00}, -+ {0x415cc, 0x0}, -+ {0x415cd, 0x0}, -+ {0x415ce, 0x0}, -+ {0x415cf, 0x0}, -+ {0x415d0, 0x0}, -+ {0x415d1, 0x0}, -+ {0x415d2, 0x0}, -+ {0x415d3, 0x0}, -+ {0x415d4, 0x9218}, -+ {0x415d5, 0x803}, -+ {0x415d6, 0x0}, -+ {0x415d7, 0x10}, -+ {0x415d8, 0x0}, -+ {0x415d9, 0x0}, -+ {0x415da, 0x0}, -+ {0x415db, 0x6b00}, -+ {0x415dc, 0x0}, -+ {0x415dd, 0x0}, -+ {0x415de, 0x0}, -+ {0x415df, 0x400}, -+ {0x415e0, 0x0}, -+ {0x415e1, 0x0}, -+ {0x415e2, 0x0}, -+ {0x415e3, 0x0}, -+ {0x415e4, 0x807c}, -+ {0x415e5, 0x0}, -+ {0x415e6, 0x0}, -+ {0x415e7, 0x10}, -+ {0x415e8, 0x0}, -+ {0x415e9, 0x0}, -+ {0x415ea, 0x0}, -+ {0x415eb, 0x0}, -+ {0x415ec, 0x0}, -+ {0x415ed, 0x0}, -+ {0x415ee, 0x0}, -+ {0x415ef, 0x0}, -+ {0x415f0, 0x0}, -+ {0x415f1, 0x0}, -+ {0x415f2, 0x1}, -+ {0x415f3, 0x0}, -+ {0x415f4, 0x0}, -+ {0x415f5, 0x0}, -+ {0x415f6, 0x0}, -+ {0x415f7, 0x0}, -+ {0x415f8, 0x0}, -+ {0x415f9, 0x0}, -+ {0x415fa, 0x0}, -+ {0x415fb, 0xb00}, -+ {0x415fc, 0x0}, -+ {0x415fd, 0x0}, -+ {0x415fe, 0x0}, -+ {0x415ff, 0x400}, -+ {0x41600, 0x0}, -+ {0x41601, 0x0}, -+ {0x41602, 0x0}, -+ {0x41603, 0x0}, -+ {0x41604, 0x0}, -+ {0x41605, 0x0}, -+ {0x41606, 0x0}, -+ {0x41607, 0x0}, -+ {0x41608, 0x401c}, -+ {0x41609, 0xd0}, -+ {0x4160a, 0x1}, -+ {0x4160b, 0x0}, -+ {0x4160c, 0x4060}, -+ {0x4160d, 0x84}, -+ {0x4160e, 0x0}, -+ {0x4160f, 0x0}, -+ {0x41610, 0x0}, -+ {0x41611, 0x0}, -+ {0x41612, 0x0}, -+ {0x41613, 0xb00}, -+ {0x41614, 0x0}, -+ {0x41615, 0x0}, -+ {0x41616, 0x0}, -+ {0x41617, 0x800}, -+ {0x41618, 0x407c}, -+ {0x41619, 0x0}, -+ {0x4161a, 0x0}, -+ {0x4161b, 0x0}, -+ {0x4161c, 0x0}, -+ {0x4161d, 0x0}, -+ {0x4161e, 0x0}, -+ {0x4161f, 0x0}, -+ {0x41620, 0x0}, -+ {0x41621, 0x0}, -+ {0x41622, 0x0}, -+ {0x41623, 0x0}, -+ {0x41624, 0x4000}, -+ {0x41625, 0x0}, -+ {0x41626, 0x1}, -+ {0x41627, 0x0}, -+ {0x41628, 0x0}, -+ {0x41629, 0x0}, -+ {0x4162a, 0x0}, -+ {0x4162b, 0x0}, -+ {0x4162c, 0x402c}, -+ {0x4162d, 0xd00}, -+ {0x4162e, 0x1}, -+ {0x4162f, 0x0}, -+ {0x41630, 0x4020}, -+ {0x41631, 0x803}, -+ {0x41632, 0x0}, -+ {0x41633, 0x0}, -+ {0x41634, 0x0}, -+ {0x41635, 0x0}, -+ {0x41636, 0x0}, -+ {0x41637, 0x0}, -+ {0x41638, 0x0}, -+ {0x41639, 0x0}, -+ {0x4163a, 0x0}, -+ {0x4163b, 0x2b00}, -+ {0x4163c, 0x0}, -+ {0x4163d, 0x0}, -+ {0x4163e, 0x0}, -+ {0x4163f, 0x800}, -+ {0x41640, 0x0}, -+ {0x41641, 0x0}, -+ {0x41642, 0x0}, -+ {0x41643, 0x0}, -+ {0x41644, 0x407c}, -+ {0x41645, 0x0}, -+ {0x41646, 0x0}, -+ {0x41647, 0x0}, -+ {0x41648, 0x0}, -+ {0x41649, 0x0}, -+ {0x4164a, 0x0}, -+ {0x4164b, 0x0}, -+ {0x4164c, 0x0}, -+ {0x4164d, 0x0}, -+ {0x4164e, 0x0}, -+ {0x4164f, 0x0}, -+ {0x41650, 0x0}, -+ {0x41651, 0x0}, -+ {0x41652, 0x1}, -+ {0x41653, 0x0}, -+ {0x41654, 0x0}, -+ {0x41655, 0x0}, -+ {0x41656, 0x0}, -+ {0x41657, 0x0}, -+ {0x41658, 0x801c}, -+ {0x41659, 0xd0}, -+ {0x4165a, 0x1}, -+ {0x4165b, 0x10}, -+ {0x4165c, 0x8060}, -+ {0x4165d, 0x84}, -+ {0x4165e, 0x0}, -+ {0x4165f, 0x10}, -+ {0x41660, 0x0}, -+ {0x41661, 0x0}, -+ {0x41662, 0x0}, -+ {0x41663, 0xb00}, -+ {0x41664, 0x0}, -+ {0x41665, 0x0}, -+ {0x41666, 0x0}, -+ {0x41667, 0x800}, -+ {0x41668, 0x807c}, -+ {0x41669, 0x0}, -+ {0x4166a, 0x0}, -+ {0x4166b, 0x10}, -+ {0x4166c, 0x0}, -+ {0x4166d, 0x0}, -+ {0x4166e, 0x0}, -+ {0x4166f, 0x0}, -+ {0x41670, 0x0}, -+ {0x41671, 0x0}, -+ {0x41672, 0x0}, -+ {0x41673, 0x0}, -+ {0x41674, 0x8000}, -+ {0x41675, 0x0}, -+ {0x41676, 0x1}, -+ {0x41677, 0x10}, -+ {0x41678, 0x0}, -+ {0x41679, 0x0}, -+ {0x4167a, 0x0}, -+ {0x4167b, 0x0}, -+ {0x4167c, 0x802c}, -+ {0x4167d, 0xd00}, -+ {0x4167e, 0x1}, -+ {0x4167f, 0x10}, -+ {0x41680, 0x8020}, -+ {0x41681, 0x803}, -+ {0x41682, 0x0}, -+ {0x41683, 0x10}, -+ {0x41684, 0x0}, -+ {0x41685, 0x0}, -+ {0x41686, 0x0}, -+ {0x41687, 0x0}, -+ {0x41688, 0x0}, -+ {0x41689, 0x0}, -+ {0x4168a, 0x0}, -+ {0x4168b, 0x2b00}, -+ {0x4168c, 0x0}, -+ {0x4168d, 0x0}, -+ {0x4168e, 0x0}, -+ {0x4168f, 0x800}, -+ {0x41690, 0x0}, -+ {0x41691, 0x0}, -+ {0x41692, 0x0}, -+ {0x41693, 0x0}, -+ {0x41694, 0x807c}, -+ {0x41695, 0x0}, -+ {0x41696, 0x0}, -+ {0x41697, 0x10}, -+ {0x41698, 0x0}, -+ {0x41699, 0x0}, -+ {0x4169a, 0x0}, -+ {0x4169b, 0x0}, -+ {0x4169c, 0x0}, -+ {0x4169d, 0x0}, -+ {0x4169e, 0x0}, -+ {0x4169f, 0x0}, -+ {0x416a0, 0x0}, -+ {0x416a1, 0x0}, -+ {0x416a2, 0x1}, -+ {0x416a3, 0x0}, -+ {0x416a4, 0x0}, -+ {0x416a5, 0x0}, -+ {0x416a6, 0x0}, -+ {0x416a7, 0x0}, -+ {0x416a8, 0x402c}, -+ {0x416a9, 0xd00}, -+ {0x416aa, 0x1}, -+ {0x416ab, 0x0}, -+ {0x416ac, 0x4050}, -+ {0x416ad, 0x803}, -+ {0x416ae, 0x0}, -+ {0x416af, 0x0}, -+ {0x416b0, 0x0}, -+ {0x416b1, 0x0}, -+ {0x416b2, 0x0}, -+ {0x416b3, 0x1b00}, -+ {0x416b4, 0x0}, -+ {0x416b5, 0x0}, -+ {0x416b6, 0x0}, -+ {0x416b7, 0x0}, -+ {0x416b8, 0x0}, -+ {0x416b9, 0x0}, -+ {0x416ba, 0x0}, -+ {0x416bb, 0x0}, -+ {0x416bc, 0x0}, -+ {0x416bd, 0x0}, -+ {0x416be, 0x0}, -+ {0x416bf, 0x0}, -+ {0x416c0, 0x4050}, -+ {0x416c1, 0x803}, -+ {0x416c2, 0x0}, -+ {0x416c3, 0x5a00}, -+ {0x416c4, 0x0}, -+ {0x416c5, 0x0}, -+ {0x416c6, 0x0}, -+ {0x416c7, 0x0}, -+ {0x416c8, 0x0}, -+ {0x416c9, 0x0}, -+ {0x416ca, 0x0}, -+ {0x416cb, 0x0}, -+ {0x416cc, 0x0}, -+ {0x416cd, 0x0}, -+ {0x416ce, 0x0}, -+ {0x416cf, 0x0}, -+ {0x416d0, 0x0}, -+ {0x416d1, 0x0}, -+ {0x416d2, 0x0}, -+ {0x416d3, 0x100}, -+ {0x416d4, 0x0}, -+ {0x416d5, 0x0}, -+ {0x416d6, 0x0}, -+ {0x416d7, 0x0}, -+ {0x416d8, 0x4050}, -+ {0x416d9, 0x803}, -+ {0x416da, 0x0}, -+ {0x416db, 0x0}, -+ {0x416dc, 0x0}, -+ {0x416dd, 0x0}, -+ {0x416de, 0x0}, -+ {0x416df, 0x0}, -+ {0x416e0, 0x0}, -+ {0x416e1, 0x0}, -+ {0x416e2, 0x0}, -+ {0x416e3, 0x6b00}, -+ {0x416e4, 0x0}, -+ {0x416e5, 0x0}, -+ {0x416e6, 0x0}, -+ {0x416e7, 0x400}, -+ {0x416e8, 0x407c}, -+ {0x416e9, 0x0}, -+ {0x416ea, 0x0}, -+ {0x416eb, 0x0}, -+ {0x416ec, 0x0}, -+ {0x416ed, 0x0}, -+ {0x416ee, 0x0}, -+ {0x416ef, 0x0}, -+ {0x416f0, 0x0}, -+ {0x416f1, 0x0}, -+ {0x416f2, 0x0}, -+ {0x416f3, 0x3b00}, -+ {0x416f4, 0x0}, -+ {0x416f5, 0x0}, -+ {0x416f6, 0x0}, -+ {0x416f7, 0x0}, -+ {0x416f8, 0x0}, -+ {0x416f9, 0x0}, -+ {0x416fa, 0x0}, -+ {0x416fb, 0x0}, -+ {0x416fc, 0x0}, -+ {0x416fd, 0x0}, -+ {0x416fe, 0x1}, -+ {0x416ff, 0x0}, -+ {0x41700, 0x5758}, -+ {0x41701, 0x0}, -+ {0x41702, 0x0}, -+ {0x41703, 0x0}, -+ {0x41704, 0x4208}, -+ {0x41705, 0x0}, -+ {0x41706, 0x0}, -+ {0x41707, 0x0}, -+ {0x41708, 0x0}, -+ {0x41709, 0x0}, -+ {0x4170a, 0x0}, -+ {0x4170b, 0x4b00}, -+ {0x4170c, 0x0}, -+ {0x4170d, 0x0}, -+ {0x4170e, 0x0}, -+ {0x4170f, 0x0}, -+ {0x41710, 0x0}, -+ {0x41711, 0x0}, -+ {0x41712, 0x0}, -+ {0x41713, 0x0}, -+ {0x41714, 0x401c}, -+ {0x41715, 0xd0}, -+ {0x41716, 0x1}, -+ {0x41717, 0x0}, -+ {0x41718, 0x4060}, -+ {0x41719, 0x84}, -+ {0x4171a, 0x0}, -+ {0x4171b, 0x0}, -+ {0x4171c, 0x0}, -+ {0x4171d, 0x0}, -+ {0x4171e, 0x0}, -+ {0x4171f, 0x0}, -+ {0x41720, 0x0}, -+ {0x41721, 0x0}, -+ {0x41722, 0x0}, -+ {0x41723, 0x7b00}, -+ {0x41724, 0x0}, -+ {0x41725, 0x0}, -+ {0x41726, 0x0}, -+ {0x41727, 0x0}, -+ {0x41728, 0x407c}, -+ {0x41729, 0x0}, -+ {0x4172a, 0x0}, -+ {0x4172b, 0x0}, -+ {0x4172c, 0x0}, -+ {0x4172d, 0x0}, -+ {0x4172e, 0x0}, -+ {0x4172f, 0x0}, -+ {0x41730, 0x0}, -+ {0x41731, 0x0}, -+ {0x41732, 0x0}, -+ {0x41733, 0x0}, -+ {0x41734, 0x4000}, -+ {0x41735, 0x0}, -+ {0x41736, 0x1}, -+ {0x41737, 0x0}, -+ {0x41738, 0x0}, -+ {0x41739, 0x0}, -+ {0x4173a, 0x0}, -+ {0x4173b, 0x0}, -+ {0x4173c, 0x402c}, -+ {0x4173d, 0xd00}, -+ {0x4173e, 0x1}, -+ {0x4173f, 0x0}, -+ {0x41740, 0x4020}, -+ {0x41741, 0x803}, -+ {0x41742, 0x0}, -+ {0x41743, 0x0}, -+ {0x41744, 0x0}, -+ {0x41745, 0x0}, -+ {0x41746, 0x0}, -+ {0x41747, 0x0}, -+ {0x41748, 0x0}, -+ {0x41749, 0x0}, -+ {0x4174a, 0x0}, -+ {0x4174b, 0x2b00}, -+ {0x4174c, 0x0}, -+ {0x4174d, 0x0}, -+ {0x4174e, 0x0}, -+ {0x4174f, 0x800}, -+ {0x41750, 0x0}, -+ {0x41751, 0x0}, -+ {0x41752, 0x0}, -+ {0x41753, 0x0}, -+ {0x41754, 0x407c}, -+ {0x41755, 0x0}, -+ {0x41756, 0x0}, -+ {0x41757, 0x0}, -+ {0x41758, 0x0}, -+ {0x41759, 0x0}, -+ {0x4175a, 0x0}, -+ {0x4175b, 0x0}, -+ {0x4175c, 0x0}, -+ {0x4175d, 0x0}, -+ {0x4175e, 0x0}, -+ {0x4175f, 0x0}, -+ {0x41760, 0x4000}, -+ {0x41761, 0x0}, -+ {0x41762, 0x1}, -+ {0x41763, 0x0}, -+ {0x41764, 0x0}, -+ {0x41765, 0x0}, -+ {0x41766, 0x0}, -+ {0x41767, 0x0}, -+ {0x41768, 0x5758}, -+ {0x41769, 0x0}, -+ {0x4176a, 0x0}, -+ {0x4176b, 0x0}, -+ {0x4176c, 0x4008}, -+ {0x4176d, 0x0}, -+ {0x4176e, 0x0}, -+ {0x4176f, 0x0}, -+ {0x41770, 0x0}, -+ {0x41771, 0x0}, -+ {0x41772, 0x0}, -+ {0x41773, 0x0}, -+ {0x41774, 0x0}, -+ {0x41775, 0x0}, -+ {0x41776, 0x0}, -+ {0x41777, 0x0}, -+ {0x41778, 0x802c}, -+ {0x41779, 0xd00}, -+ {0x4177a, 0x1}, -+ {0x4177b, 0x10}, -+ {0x4177c, 0x8050}, -+ {0x4177d, 0x803}, -+ {0x4177e, 0x0}, -+ {0x4177f, 0x10}, -+ {0x41780, 0x0}, -+ {0x41781, 0x0}, -+ {0x41782, 0x0}, -+ {0x41783, 0x1b00}, -+ {0x41784, 0x0}, -+ {0x41785, 0x0}, -+ {0x41786, 0x0}, -+ {0x41787, 0x0}, -+ {0x41788, 0x0}, -+ {0x41789, 0x0}, -+ {0x4178a, 0x0}, -+ {0x4178b, 0x0}, -+ {0x4178c, 0x0}, -+ {0x4178d, 0x0}, -+ {0x4178e, 0x0}, -+ {0x4178f, 0x0}, -+ {0x41790, 0x8050}, -+ {0x41791, 0x803}, -+ {0x41792, 0x0}, -+ {0x41793, 0x5a10}, -+ {0x41794, 0x0}, -+ {0x41795, 0x0}, -+ {0x41796, 0x0}, -+ {0x41797, 0x0}, -+ {0x41798, 0x0}, -+ {0x41799, 0x0}, -+ {0x4179a, 0x0}, -+ {0x4179b, 0x0}, -+ {0x4179c, 0x0}, -+ {0x4179d, 0x0}, -+ {0x4179e, 0x0}, -+ {0x4179f, 0x0}, -+ {0x417a0, 0x0}, -+ {0x417a1, 0x0}, -+ {0x417a2, 0x0}, -+ {0x417a3, 0x100}, -+ {0x417a4, 0x0}, -+ {0x417a5, 0x0}, -+ {0x417a6, 0x0}, -+ {0x417a7, 0x0}, -+ {0x417a8, 0x8050}, -+ {0x417a9, 0x803}, -+ {0x417aa, 0x0}, -+ {0x417ab, 0x10}, -+ {0x417ac, 0x0}, -+ {0x417ad, 0x0}, -+ {0x417ae, 0x0}, -+ {0x417af, 0x0}, -+ {0x417b0, 0x0}, -+ {0x417b1, 0x0}, -+ {0x417b2, 0x0}, -+ {0x417b3, 0x6b00}, -+ {0x417b4, 0x0}, -+ {0x417b5, 0x0}, -+ {0x417b6, 0x0}, -+ {0x417b7, 0x400}, -+ {0x417b8, 0x807c}, -+ {0x417b9, 0x0}, -+ {0x417ba, 0x0}, -+ {0x417bb, 0x10}, -+ {0x417bc, 0x0}, -+ {0x417bd, 0x0}, -+ {0x417be, 0x0}, -+ {0x417bf, 0x0}, -+ {0x417c0, 0x0}, -+ {0x417c1, 0x0}, -+ {0x417c2, 0x0}, -+ {0x417c3, 0x3b00}, -+ {0x417c4, 0x0}, -+ {0x417c5, 0x0}, -+ {0x417c6, 0x0}, -+ {0x417c7, 0x0}, -+ {0x417c8, 0x0}, -+ {0x417c9, 0x0}, -+ {0x417ca, 0x0}, -+ {0x417cb, 0x0}, -+ {0x417cc, 0x0}, -+ {0x417cd, 0x0}, -+ {0x417ce, 0x1}, -+ {0x417cf, 0x0}, -+ {0x417d0, 0x9758}, -+ {0x417d1, 0x0}, -+ {0x417d2, 0x0}, -+ {0x417d3, 0x10}, -+ {0x417d4, 0x8208}, -+ {0x417d5, 0x0}, -+ {0x417d6, 0x0}, -+ {0x417d7, 0x10}, -+ {0x417d8, 0x0}, -+ {0x417d9, 0x0}, -+ {0x417da, 0x0}, -+ {0x417db, 0x4b00}, -+ {0x417dc, 0x0}, -+ {0x417dd, 0x0}, -+ {0x417de, 0x0}, -+ {0x417df, 0x0}, -+ {0x417e0, 0x0}, -+ {0x417e1, 0x0}, -+ {0x417e2, 0x0}, -+ {0x417e3, 0x0}, -+ {0x417e4, 0x801c}, -+ {0x417e5, 0xd0}, -+ {0x417e6, 0x1}, -+ {0x417e7, 0x10}, -+ {0x417e8, 0x8060}, -+ {0x417e9, 0x84}, -+ {0x417ea, 0x0}, -+ {0x417eb, 0x10}, -+ {0x417ec, 0x0}, -+ {0x417ed, 0x0}, -+ {0x417ee, 0x0}, -+ {0x417ef, 0x0}, -+ {0x417f0, 0x0}, -+ {0x417f1, 0x0}, -+ {0x417f2, 0x0}, -+ {0x417f3, 0x7b00}, -+ {0x417f4, 0x0}, -+ {0x417f5, 0x0}, -+ {0x417f6, 0x0}, -+ {0x417f7, 0x0}, -+ {0x417f8, 0x807c}, -+ {0x417f9, 0x0}, -+ {0x417fa, 0x0}, -+ {0x417fb, 0x10}, -+ {0x417fc, 0x0}, -+ {0x417fd, 0x0}, -+ {0x417fe, 0x0}, -+ {0x417ff, 0x0}, -+ {0x41800, 0x0}, -+ {0x41801, 0x0}, -+ {0x41802, 0x0}, -+ {0x41803, 0x0}, -+ {0x41804, 0x8000}, -+ {0x41805, 0x0}, -+ {0x41806, 0x1}, -+ {0x41807, 0x10}, -+ {0x41808, 0x0}, -+ {0x41809, 0x0}, -+ {0x4180a, 0x0}, -+ {0x4180b, 0x0}, -+ {0x4180c, 0x802c}, -+ {0x4180d, 0xd00}, -+ {0x4180e, 0x1}, -+ {0x4180f, 0x10}, -+ {0x41810, 0x8020}, -+ {0x41811, 0x803}, -+ {0x41812, 0x0}, -+ {0x41813, 0x10}, -+ {0x41814, 0x0}, -+ {0x41815, 0x0}, -+ {0x41816, 0x0}, -+ {0x41817, 0x0}, -+ {0x41818, 0x0}, -+ {0x41819, 0x0}, -+ {0x4181a, 0x0}, -+ {0x4181b, 0x2b00}, -+ {0x4181c, 0x0}, -+ {0x4181d, 0x0}, -+ {0x4181e, 0x0}, -+ {0x4181f, 0x800}, -+ {0x41820, 0x0}, -+ {0x41821, 0x0}, -+ {0x41822, 0x0}, -+ {0x41823, 0x0}, -+ {0x41824, 0x807c}, -+ {0x41825, 0x0}, -+ {0x41826, 0x0}, -+ {0x41827, 0x10}, -+ {0x41828, 0x0}, -+ {0x41829, 0x0}, -+ {0x4182a, 0x0}, -+ {0x4182b, 0x0}, -+ {0x4182c, 0x0}, -+ {0x4182d, 0x0}, -+ {0x4182e, 0x0}, -+ {0x4182f, 0x0}, -+ {0x41830, 0x8000}, -+ {0x41831, 0x0}, -+ {0x41832, 0x1}, -+ {0x41833, 0x10}, -+ {0x41834, 0x0}, -+ {0x41835, 0x0}, -+ {0x41836, 0x0}, -+ {0x41837, 0x0}, -+ {0x41838, 0x9758}, -+ {0x41839, 0x0}, -+ {0x4183a, 0x0}, -+ {0x4183b, 0x10}, -+ {0x4183c, 0x8008}, -+ {0x4183d, 0x0}, -+ {0x4183e, 0x0}, -+ {0x4183f, 0x10}, -+ {0x41840, 0x0}, -+ {0x41841, 0x0}, -+ {0x41842, 0x0}, -+ {0x41843, 0x0}, -+ {0x41844, 0x0}, -+ {0x41845, 0x0}, -+ {0x41846, 0x0}, -+ {0x41847, 0x0}, -+ {0x41848, 0xc068}, -+ {0x41849, 0x0}, -+ {0x4184a, 0x0}, -+ {0x4184b, 0x10}, -+ {0x4184c, 0x0}, -+ {0x4184d, 0x0}, -+ {0x4184e, 0x0}, -+ {0x4184f, 0x0}, -+ {0x41850, 0xd2d8}, -+ {0x41851, 0x0}, -+ {0x41852, 0x0}, -+ {0x41853, 0x10}, -+ {0x41854, 0xe008}, -+ {0x41855, 0x0}, -+ {0x41856, 0x0}, -+ {0x41857, 0x10}, -+ {0x41858, 0x0}, -+ {0x41859, 0x0}, -+ {0x4185a, 0x0}, -+ {0x4185b, 0x5b00}, -+ {0x4185c, 0x0}, -+ {0x4185d, 0x0}, -+ {0x4185e, 0x0}, -+ {0x4185f, 0x0}, -+ {0x41860, 0xc0f0}, -+ {0x41861, 0x0}, -+ {0x41862, 0x0}, -+ {0x41863, 0x10}, -+ {0x41864, 0x0}, -+ {0x41865, 0x0}, -+ {0x41866, 0x0}, -+ {0x41867, 0x0}, -+ {0x41868, 0xcfd8}, -+ {0x41869, 0x0}, -+ {0x4186a, 0x0}, -+ {0x4186b, 0x10}, -+ {0x4186c, 0xc008}, -+ {0x4186d, 0x0}, -+ {0x4186e, 0x0}, -+ {0x4186f, 0x10}, -+ {0x41870, 0x0}, -+ {0x41871, 0x0}, -+ {0x41872, 0x0}, -+ {0x41873, 0x2b00}, -+ {0x41874, 0x0}, -+ {0x41875, 0x0}, -+ {0x41876, 0x0}, -+ {0x41877, 0x0}, -+ {0x41878, 0xd058}, -+ {0x41879, 0x0}, -+ {0x4187a, 0x0}, -+ {0x4187b, 0x10}, -+ {0x4187c, 0xc008}, -+ {0x4187d, 0x0}, -+ {0x4187e, 0x0}, -+ {0x4187f, 0x10}, -+ {0x41880, 0x0}, -+ {0x41881, 0x0}, -+ {0x41882, 0x0}, -+ {0x41883, 0x2b00}, -+ {0x41884, 0x0}, -+ {0x41885, 0x0}, -+ {0x41886, 0x0}, -+ {0x41887, 0x0}, -+ {0x41888, 0xd0d8}, -+ {0x41889, 0x0}, -+ {0x4188a, 0x0}, -+ {0x4188b, 0x10}, -+ {0x4188c, 0xc088}, -+ {0x4188d, 0x0}, -+ {0x4188e, 0x0}, -+ {0x4188f, 0x10}, -+ {0x41890, 0x0}, -+ {0x41891, 0x0}, -+ {0x41892, 0x0}, -+ {0x41893, 0x2b00}, -+ {0x41894, 0x0}, -+ {0x41895, 0x0}, -+ {0x41896, 0x0}, -+ {0x41897, 0x0}, -+ {0x41898, 0xd158}, -+ {0x41899, 0x0}, -+ {0x4189a, 0x0}, -+ {0x4189b, 0x10}, -+ {0x4189c, 0xc008}, -+ {0x4189d, 0x0}, -+ {0x4189e, 0x0}, -+ {0x4189f, 0x10}, -+ {0x418a0, 0x0}, -+ {0x418a1, 0x0}, -+ {0x418a2, 0x0}, -+ {0x418a3, 0x5b00}, -+ {0x418a4, 0x0}, -+ {0x418a5, 0x0}, -+ {0x418a6, 0x0}, -+ {0x418a7, 0x0}, -+ {0x418a8, 0x402c}, -+ {0x418a9, 0xd00}, -+ {0x418aa, 0x1}, -+ {0x418ab, 0x400}, -+ {0x418ac, 0x4050}, -+ {0x418ad, 0x800}, -+ {0x418ae, 0x0}, -+ {0x418af, 0x0}, -+ {0x418b0, 0x0}, -+ {0x418b1, 0x0}, -+ {0x418b2, 0x0}, -+ {0x418b3, 0x400}, -+ {0x418b4, 0x4050}, -+ {0x418b5, 0x803}, -+ {0x418b6, 0x0}, -+ {0x418b7, 0x0}, -+ {0x418b8, 0x0}, -+ {0x418b9, 0x0}, -+ {0x418ba, 0x0}, -+ {0x418bb, 0x6f00}, -+ {0x418bc, 0x0}, -+ {0x418bd, 0x0}, -+ {0x418be, 0x0}, -+ {0x418bf, 0x400}, -+ {0x418c0, 0x407c}, -+ {0x418c1, 0x0}, -+ {0x418c2, 0x0}, -+ {0x418c3, 0x400}, -+ {0x418c4, 0x0}, -+ {0x418c5, 0x0}, -+ {0x418c6, 0x0}, -+ {0x418c7, 0x0}, -+ {0x418c8, 0x0}, -+ {0x418c9, 0x0}, -+ {0x418ca, 0x0}, -+ {0x418cb, 0x400}, -+ {0x418cc, 0x0}, -+ {0x418cd, 0x0}, -+ {0x418ce, 0x1}, -+ {0x418cf, 0x0}, -+ {0x418d0, 0x0}, -+ {0x418d1, 0x0}, -+ {0x418d2, 0x0}, -+ {0x418d3, 0x400}, -+ {0x418d4, 0x0}, -+ {0x418d5, 0x0}, -+ {0x418d6, 0x0}, -+ {0x418d7, 0x0}, -+ {0x418d8, 0x0}, -+ {0x418d9, 0x0}, -+ {0x418da, 0x0}, -+ {0x418db, 0x0}, -+ {0x418dc, 0x0}, -+ {0x418dd, 0x0}, -+ {0x418de, 0x0}, -+ {0x418df, 0x0}, -+ {0x418e0, 0x802c}, -+ {0x418e1, 0xd00}, -+ {0x418e2, 0x1}, -+ {0x418e3, 0x410}, -+ {0x418e4, 0x8050}, -+ {0x418e5, 0x800}, -+ {0x418e6, 0x0}, -+ {0x418e7, 0x10}, -+ {0x418e8, 0x0}, -+ {0x418e9, 0x0}, -+ {0x418ea, 0x0}, -+ {0x418eb, 0x400}, -+ {0x418ec, 0x8050}, -+ {0x418ed, 0x803}, -+ {0x418ee, 0x0}, -+ {0x418ef, 0x10}, -+ {0x418f0, 0x0}, -+ {0x418f1, 0x0}, -+ {0x418f2, 0x0}, -+ {0x418f3, 0x6f00}, -+ {0x418f4, 0x0}, -+ {0x418f5, 0x0}, -+ {0x418f6, 0x0}, -+ {0x418f7, 0x400}, -+ {0x418f8, 0x807c}, -+ {0x418f9, 0x0}, -+ {0x418fa, 0x0}, -+ {0x418fb, 0x410}, -+ {0x418fc, 0x0}, -+ {0x418fd, 0x0}, -+ {0x418fe, 0x0}, -+ {0x418ff, 0x0}, -+ {0x41900, 0x0}, -+ {0x41901, 0x0}, -+ {0x41902, 0x0}, -+ {0x41903, 0x400}, -+ {0x41904, 0x0}, -+ {0x41905, 0x0}, -+ {0x41906, 0x1}, -+ {0x41907, 0x0}, -+ {0x41908, 0x0}, -+ {0x41909, 0x0}, -+ {0x4190a, 0x0}, -+ {0x4190b, 0x400}, -+ {0x4190c, 0x0}, -+ {0x4190d, 0x0}, -+ {0x4190e, 0x0}, -+ {0x4190f, 0x0}, -+ {0x41910, 0x0}, -+ {0x41911, 0x0}, -+ {0x41912, 0x0}, -+ {0x41913, 0x0}, -+ {0x41914, 0x0}, -+ {0x41915, 0x0}, -+ {0x41916, 0x0}, -+ {0x41917, 0x0}, -+ {0x41918, 0x402c}, -+ {0x41919, 0xd00}, -+ {0x4191a, 0x1}, -+ {0x4191b, 0x0}, -+ {0x4191c, 0x4050}, -+ {0x4191d, 0x800}, -+ {0x4191e, 0x0}, -+ {0x4191f, 0x0}, -+ {0x41920, 0x0}, -+ {0x41921, 0x0}, -+ {0x41922, 0x0}, -+ {0x41923, 0x0}, -+ {0x41924, 0x4050}, -+ {0x41925, 0x803}, -+ {0x41926, 0x0}, -+ {0x41927, 0x0}, -+ {0x41928, 0x0}, -+ {0x41929, 0x0}, -+ {0x4192a, 0x0}, -+ {0x4192b, 0x0}, -+ {0x4192c, 0x4050}, -+ {0x4192d, 0x800}, -+ {0x4192e, 0x0}, -+ {0x4192f, 0x0}, -+ {0x41930, 0x0}, -+ {0x41931, 0x0}, -+ {0x41932, 0x0}, -+ {0x41933, 0x4b00}, -+ {0x41934, 0x0}, -+ {0x41935, 0x0}, -+ {0x41936, 0x0}, -+ {0x41937, 0x400}, -+ {0x41938, 0x0}, -+ {0x41939, 0x0}, -+ {0x4193a, 0x0}, -+ {0x4193b, 0x0}, -+ {0x4193c, 0x407c}, -+ {0x4193d, 0x0}, -+ {0x4193e, 0x0}, -+ {0x4193f, 0x0}, -+ {0x41940, 0x0}, -+ {0x41941, 0x0}, -+ {0x41942, 0x0}, -+ {0x41943, 0x0}, -+ {0x41944, 0x0}, -+ {0x41945, 0x0}, -+ {0x41946, 0x0}, -+ {0x41947, 0x0}, -+ {0x41948, 0x0}, -+ {0x41949, 0x0}, -+ {0x4194a, 0x1}, -+ {0x4194b, 0x0}, -+ {0x4194c, 0x0}, -+ {0x4194d, 0x0}, -+ {0x4194e, 0x0}, -+ {0x4194f, 0x0}, -+ {0x41950, 0x0}, -+ {0x41951, 0x0}, -+ {0x41952, 0x0}, -+ {0x41953, 0x4b00}, -+ {0x41954, 0x0}, -+ {0x41955, 0x0}, -+ {0x41956, 0x0}, -+ {0x41957, 0x1800}, -+ {0x41958, 0x0}, -+ {0x41959, 0x0}, -+ {0x4195a, 0x0}, -+ {0x4195b, 0x0}, -+ {0x4195c, 0x802c}, -+ {0x4195d, 0xd00}, -+ {0x4195e, 0x1}, -+ {0x4195f, 0x10}, -+ {0x41960, 0x8050}, -+ {0x41961, 0x800}, -+ {0x41962, 0x0}, -+ {0x41963, 0x10}, -+ {0x41964, 0x0}, -+ {0x41965, 0x0}, -+ {0x41966, 0x0}, -+ {0x41967, 0x0}, -+ {0x41968, 0x8050}, -+ {0x41969, 0x803}, -+ {0x4196a, 0x0}, -+ {0x4196b, 0x10}, -+ {0x4196c, 0x0}, -+ {0x4196d, 0x0}, -+ {0x4196e, 0x0}, -+ {0x4196f, 0x0}, -+ {0x41970, 0x8050}, -+ {0x41971, 0x800}, -+ {0x41972, 0x0}, -+ {0x41973, 0x10}, -+ {0x41974, 0x0}, -+ {0x41975, 0x0}, -+ {0x41976, 0x0}, -+ {0x41977, 0x0}, -+ {0x41978, 0x0}, -+ {0x41979, 0x0}, -+ {0x4197a, 0x0}, -+ {0x4197b, 0x4b00}, -+ {0x4197c, 0x0}, -+ {0x4197d, 0x0}, -+ {0x4197e, 0x0}, -+ {0x4197f, 0x400}, -+ {0x41980, 0x807c}, -+ {0x41981, 0x0}, -+ {0x41982, 0x0}, -+ {0x41983, 0x10}, -+ {0x41984, 0x0}, -+ {0x41985, 0x0}, -+ {0x41986, 0x0}, -+ {0x41987, 0x0}, -+ {0x41988, 0x0}, -+ {0x41989, 0x0}, -+ {0x4198a, 0x0}, -+ {0x4198b, 0x0}, -+ {0x4198c, 0x0}, -+ {0x4198d, 0x0}, -+ {0x4198e, 0x1}, -+ {0x4198f, 0x0}, -+ {0x41990, 0x0}, -+ {0x41991, 0x0}, -+ {0x41992, 0x0}, -+ {0x41993, 0x5b00}, -+ {0x41994, 0x0}, -+ {0x41995, 0x0}, -+ {0x41996, 0x0}, -+ {0x41997, 0x2000}, -+ {0x41998, 0x402c}, -+ {0x41999, 0xd00}, -+ {0x4199a, 0x1}, -+ {0x4199b, 0x0}, -+ {0x4199c, 0x5198}, -+ {0x4199d, 0x803}, -+ {0x4199e, 0x0}, -+ {0x4199f, 0x0}, -+ {0x419a0, 0x0}, -+ {0x419a1, 0x0}, -+ {0x419a2, 0x0}, -+ {0x419a3, 0x1b00}, -+ {0x419a4, 0x0}, -+ {0x419a5, 0x0}, -+ {0x419a6, 0x0}, -+ {0x419a7, 0x0}, -+ {0x419a8, 0x5218}, -+ {0x419a9, 0x803}, -+ {0x419aa, 0x0}, -+ {0x419ab, 0x0}, -+ {0x419ac, 0x0}, -+ {0x419ad, 0x0}, -+ {0x419ae, 0x0}, -+ {0x419af, 0x0}, -+ {0x419b0, 0x0}, -+ {0x419b1, 0x0}, -+ {0x419b2, 0x0}, -+ {0x419b3, 0x4b00}, -+ {0x419b4, 0x0}, -+ {0x419b5, 0x0}, -+ {0x419b6, 0x0}, -+ {0x419b7, 0x400}, -+ {0x419b8, 0x407c}, -+ {0x419b9, 0x0}, -+ {0x419ba, 0x0}, -+ {0x419bb, 0x0}, -+ {0x419bc, 0x0}, -+ {0x419bd, 0x0}, -+ {0x419be, 0x0}, -+ {0x419bf, 0x0}, -+ {0x419c0, 0x0}, -+ {0x419c1, 0x0}, -+ {0x419c2, 0x0}, -+ {0x419c3, 0x0}, -+ {0x419c4, 0x0}, -+ {0x419c5, 0x0}, -+ {0x419c6, 0x1}, -+ {0x419c7, 0x0}, -+ {0x419c8, 0x0}, -+ {0x419c9, 0x0}, -+ {0x419ca, 0x0}, -+ {0x419cb, 0x1b00}, -+ {0x419cc, 0x0}, -+ {0x419cd, 0x0}, -+ {0x419ce, 0x0}, -+ {0x419cf, 0x0}, -+ {0x419d0, 0x0}, -+ {0x419d1, 0x0}, -+ {0x419d2, 0x0}, -+ {0x419d3, 0x0}, -+ {0x419d4, 0x802c}, -+ {0x419d5, 0xd00}, -+ {0x419d6, 0x1}, -+ {0x419d7, 0x10}, -+ {0x419d8, 0x9198}, -+ {0x419d9, 0x803}, -+ {0x419da, 0x0}, -+ {0x419db, 0x10}, -+ {0x419dc, 0x0}, -+ {0x419dd, 0x0}, -+ {0x419de, 0x0}, -+ {0x419df, 0x0}, -+ {0x419e0, 0x0}, -+ {0x419e1, 0x0}, -+ {0x419e2, 0x0}, -+ {0x419e3, 0x0}, -+ {0x419e4, 0x0}, -+ {0x419e5, 0x0}, -+ {0x419e6, 0x0}, -+ {0x419e7, 0x0}, -+ {0x419e8, 0x0}, -+ {0x419e9, 0x0}, -+ {0x419ea, 0x0}, -+ {0x419eb, 0x0}, -+ {0x419ec, 0x9218}, -+ {0x419ed, 0x803}, -+ {0x419ee, 0x0}, -+ {0x419ef, 0x10}, -+ {0x419f0, 0x0}, -+ {0x419f1, 0x0}, -+ {0x419f2, 0x0}, -+ {0x419f3, 0x4b00}, -+ {0x419f4, 0x0}, -+ {0x419f5, 0x0}, -+ {0x419f6, 0x0}, -+ {0x419f7, 0x400}, -+ {0x419f8, 0x0}, -+ {0x419f9, 0x0}, -+ {0x419fa, 0x0}, -+ {0x419fb, 0x0}, -+ {0x419fc, 0x807c}, -+ {0x419fd, 0x0}, -+ {0x419fe, 0x0}, -+ {0x419ff, 0x10}, -+ {0x41a00, 0x0}, -+ {0x41a01, 0x0}, -+ {0x41a02, 0x0}, -+ {0x41a03, 0x0}, -+ {0x41a04, 0x0}, -+ {0x41a05, 0x0}, -+ {0x41a06, 0x0}, -+ {0x41a07, 0x0}, -+ {0x41a08, 0x0}, -+ {0x41a09, 0x0}, -+ {0x41a0a, 0x1}, -+ {0x41a0b, 0x0}, -+ {0x41a0c, 0x0}, -+ {0x41a0d, 0x0}, -+ {0x41a0e, 0x0}, -+ {0x41a0f, 0x0}, -+ {0x41a10, 0x0}, -+ {0x41a11, 0x0}, -+ {0x41a12, 0x0}, -+ {0x41a13, 0xb00}, -+ {0x41a14, 0x0}, -+ {0x41a15, 0x0}, -+ {0x41a16, 0x0}, -+ {0x41a17, 0x400}, -+ {0x41a18, 0x0}, -+ {0x41a19, 0x0}, -+ {0x41a1a, 0x0}, -+ {0x41a1b, 0x0}, -+ {0x41a1c, 0x0}, -+ {0x41a1d, 0x0}, -+ {0x41a1e, 0x0}, -+ {0x41a1f, 0x0}, -+ {0x41a20, 0x401c}, -+ {0x41a21, 0xd0}, -+ {0x41a22, 0x1}, -+ {0x41a23, 0x0}, -+ {0x41a24, 0x4060}, -+ {0x41a25, 0x84}, -+ {0x41a26, 0x0}, -+ {0x41a27, 0x0}, -+ {0x41a28, 0x0}, -+ {0x41a29, 0x0}, -+ {0x41a2a, 0x0}, -+ {0x41a2b, 0xb00}, -+ {0x41a2c, 0x0}, -+ {0x41a2d, 0x0}, -+ {0x41a2e, 0x0}, -+ {0x41a2f, 0x800}, -+ {0x41a30, 0x407c}, -+ {0x41a31, 0x0}, -+ {0x41a32, 0x0}, -+ {0x41a33, 0x0}, -+ {0x41a34, 0x0}, -+ {0x41a35, 0x0}, -+ {0x41a36, 0x0}, -+ {0x41a37, 0x0}, -+ {0x41a38, 0x0}, -+ {0x41a39, 0x0}, -+ {0x41a3a, 0x0}, -+ {0x41a3b, 0x0}, -+ {0x41a3c, 0x4000}, -+ {0x41a3d, 0x0}, -+ {0x41a3e, 0x1}, -+ {0x41a3f, 0x0}, -+ {0x41a40, 0x0}, -+ {0x41a41, 0x0}, -+ {0x41a42, 0x0}, -+ {0x41a43, 0x0}, -+ {0x41a44, 0x402c}, -+ {0x41a45, 0xd00}, -+ {0x41a46, 0x1}, -+ {0x41a47, 0x0}, -+ {0x41a48, 0x4020}, -+ {0x41a49, 0x803}, -+ {0x41a4a, 0x0}, -+ {0x41a4b, 0x0}, -+ {0x41a4c, 0x0}, -+ {0x41a4d, 0x0}, -+ {0x41a4e, 0x0}, -+ {0x41a4f, 0x0}, -+ {0x41a50, 0x0}, -+ {0x41a51, 0x0}, -+ {0x41a52, 0x0}, -+ {0x41a53, 0x2b00}, -+ {0x41a54, 0x0}, -+ {0x41a55, 0x0}, -+ {0x41a56, 0x0}, -+ {0x41a57, 0x800}, -+ {0x41a58, 0x0}, -+ {0x41a59, 0x0}, -+ {0x41a5a, 0x0}, -+ {0x41a5b, 0x0}, -+ {0x41a5c, 0x407c}, -+ {0x41a5d, 0x0}, -+ {0x41a5e, 0x0}, -+ {0x41a5f, 0x0}, -+ {0x41a60, 0x0}, -+ {0x41a61, 0x0}, -+ {0x41a62, 0x0}, -+ {0x41a63, 0x0}, -+ {0x41a64, 0x0}, -+ {0x41a65, 0x0}, -+ {0x41a66, 0x0}, -+ {0x41a67, 0x0}, -+ {0x41a68, 0x0}, -+ {0x41a69, 0x0}, -+ {0x41a6a, 0x1}, -+ {0x41a6b, 0x0}, -+ {0x41a6c, 0x0}, -+ {0x41a6d, 0x0}, -+ {0x41a6e, 0x0}, -+ {0x41a6f, 0x0}, -+ {0x41a70, 0x801c}, -+ {0x41a71, 0xd0}, -+ {0x41a72, 0x1}, -+ {0x41a73, 0x10}, -+ {0x41a74, 0x8060}, -+ {0x41a75, 0x84}, -+ {0x41a76, 0x0}, -+ {0x41a77, 0x10}, -+ {0x41a78, 0x0}, -+ {0x41a79, 0x0}, -+ {0x41a7a, 0x0}, -+ {0x41a7b, 0xb00}, -+ {0x41a7c, 0x0}, -+ {0x41a7d, 0x0}, -+ {0x41a7e, 0x0}, -+ {0x41a7f, 0x800}, -+ {0x41a80, 0x807c}, -+ {0x41a81, 0x0}, -+ {0x41a82, 0x0}, -+ {0x41a83, 0x10}, -+ {0x41a84, 0x0}, -+ {0x41a85, 0x0}, -+ {0x41a86, 0x0}, -+ {0x41a87, 0x0}, -+ {0x41a88, 0x0}, -+ {0x41a89, 0x0}, -+ {0x41a8a, 0x0}, -+ {0x41a8b, 0x0}, -+ {0x41a8c, 0x8000}, -+ {0x41a8d, 0x0}, -+ {0x41a8e, 0x1}, -+ {0x41a8f, 0x10}, -+ {0x41a90, 0x0}, -+ {0x41a91, 0x0}, -+ {0x41a92, 0x0}, -+ {0x41a93, 0x0}, -+ {0x41a94, 0x802c}, -+ {0x41a95, 0xd00}, -+ {0x41a96, 0x1}, -+ {0x41a97, 0x10}, -+ {0x41a98, 0x8020}, -+ {0x41a99, 0x803}, -+ {0x41a9a, 0x0}, -+ {0x41a9b, 0x10}, -+ {0x41a9c, 0x0}, -+ {0x41a9d, 0x0}, -+ {0x41a9e, 0x0}, -+ {0x41a9f, 0x0}, -+ {0x41aa0, 0x0}, -+ {0x41aa1, 0x0}, -+ {0x41aa2, 0x0}, -+ {0x41aa3, 0x2b00}, -+ {0x41aa4, 0x0}, -+ {0x41aa5, 0x0}, -+ {0x41aa6, 0x0}, -+ {0x41aa7, 0x800}, -+ {0x41aa8, 0x0}, -+ {0x41aa9, 0x0}, -+ {0x41aaa, 0x0}, -+ {0x41aab, 0x0}, -+ {0x41aac, 0x807c}, -+ {0x41aad, 0x0}, -+ {0x41aae, 0x0}, -+ {0x41aaf, 0x10}, -+ {0x41ab0, 0x0}, -+ {0x41ab1, 0x0}, -+ {0x41ab2, 0x0}, -+ {0x41ab3, 0x0}, -+ {0x41ab4, 0x0}, -+ {0x41ab5, 0x0}, -+ {0x41ab6, 0x0}, -+ {0x41ab7, 0x0}, -+ {0x41ab8, 0x0}, -+ {0x41ab9, 0x0}, -+ {0x41aba, 0x1}, -+ {0x41abb, 0x0}, -+ {0x41abc, 0x0}, -+ {0x41abd, 0x0}, -+ {0x41abe, 0x0}, -+ {0x41abf, 0x0}, -+ {0x41ac0, 0x402c}, -+ {0x41ac1, 0xd00}, -+ {0x41ac2, 0x1}, -+ {0x41ac3, 0x0}, -+ {0x41ac4, 0x4050}, -+ {0x41ac5, 0x803}, -+ {0x41ac6, 0x0}, -+ {0x41ac7, 0x0}, -+ {0x41ac8, 0x0}, -+ {0x41ac9, 0x0}, -+ {0x41aca, 0x0}, -+ {0x41acb, 0x0}, -+ {0x41acc, 0x0}, -+ {0x41acd, 0x0}, -+ {0x41ace, 0x0}, -+ {0x41acf, 0x0}, -+ {0x41ad0, 0x0}, -+ {0x41ad1, 0x0}, -+ {0x41ad2, 0x0}, -+ {0x41ad3, 0x0}, -+ {0x41ad4, 0x0}, -+ {0x41ad5, 0x0}, -+ {0x41ad6, 0x0}, -+ {0x41ad7, 0x0}, -+ {0x41ad8, 0x4050}, -+ {0x41ad9, 0x803}, -+ {0x41ada, 0x0}, -+ {0x41adb, 0x5a00}, -+ {0x41adc, 0x0}, -+ {0x41add, 0x0}, -+ {0x41ade, 0x0}, -+ {0x41adf, 0x0}, -+ {0x41ae0, 0x0}, -+ {0x41ae1, 0x0}, -+ {0x41ae2, 0x0}, -+ {0x41ae3, 0x100}, -+ {0x41ae4, 0x0}, -+ {0x41ae5, 0x0}, -+ {0x41ae6, 0x0}, -+ {0x41ae7, 0x0}, -+ {0x41ae8, 0x4050}, -+ {0x41ae9, 0x803}, -+ {0x41aea, 0x0}, -+ {0x41aeb, 0x0}, -+ {0x41aec, 0x0}, -+ {0x41aed, 0x0}, -+ {0x41aee, 0x0}, -+ {0x41aef, 0x0}, -+ {0x41af0, 0x0}, -+ {0x41af1, 0x0}, -+ {0x41af2, 0x0}, -+ {0x41af3, 0x4b00}, -+ {0x41af4, 0x0}, -+ {0x41af5, 0x0}, -+ {0x41af6, 0x0}, -+ {0x41af7, 0x400}, -+ {0x41af8, 0x407c}, -+ {0x41af9, 0x0}, -+ {0x41afa, 0x0}, -+ {0x41afb, 0x0}, -+ {0x41afc, 0x0}, -+ {0x41afd, 0x0}, -+ {0x41afe, 0x0}, -+ {0x41aff, 0x0}, -+ {0x41b00, 0x0}, -+ {0x41b01, 0x0}, -+ {0x41b02, 0x0}, -+ {0x41b03, 0x3b00}, -+ {0x41b04, 0x0}, -+ {0x41b05, 0x0}, -+ {0x41b06, 0x0}, -+ {0x41b07, 0x0}, -+ {0x41b08, 0x0}, -+ {0x41b09, 0x0}, -+ {0x41b0a, 0x0}, -+ {0x41b0b, 0x0}, -+ {0x41b0c, 0x0}, -+ {0x41b0d, 0x0}, -+ {0x41b0e, 0x1}, -+ {0x41b0f, 0x0}, -+ {0x41b10, 0x5758}, -+ {0x41b11, 0x0}, -+ {0x41b12, 0x0}, -+ {0x41b13, 0x0}, -+ {0x41b14, 0x4208}, -+ {0x41b15, 0x0}, -+ {0x41b16, 0x0}, -+ {0x41b17, 0x0}, -+ {0x41b18, 0x0}, -+ {0x41b19, 0x0}, -+ {0x41b1a, 0x0}, -+ {0x41b1b, 0x4b00}, -+ {0x41b1c, 0x0}, -+ {0x41b1d, 0x0}, -+ {0x41b1e, 0x0}, -+ {0x41b1f, 0x0}, -+ {0x41b20, 0x0}, -+ {0x41b21, 0x0}, -+ {0x41b22, 0x0}, -+ {0x41b23, 0x0}, -+ {0x41b24, 0x401c}, -+ {0x41b25, 0xd0}, -+ {0x41b26, 0x1}, -+ {0x41b27, 0x0}, -+ {0x41b28, 0x4060}, -+ {0x41b29, 0x84}, -+ {0x41b2a, 0x0}, -+ {0x41b2b, 0x0}, -+ {0x41b2c, 0x0}, -+ {0x41b2d, 0x0}, -+ {0x41b2e, 0x0}, -+ {0x41b2f, 0x0}, -+ {0x41b30, 0x0}, -+ {0x41b31, 0x0}, -+ {0x41b32, 0x0}, -+ {0x41b33, 0x7b00}, -+ {0x41b34, 0x0}, -+ {0x41b35, 0x0}, -+ {0x41b36, 0x0}, -+ {0x41b37, 0x0}, -+ {0x41b38, 0x407c}, -+ {0x41b39, 0x0}, -+ {0x41b3a, 0x0}, -+ {0x41b3b, 0x0}, -+ {0x41b3c, 0x0}, -+ {0x41b3d, 0x0}, -+ {0x41b3e, 0x0}, -+ {0x41b3f, 0x0}, -+ {0x41b40, 0x0}, -+ {0x41b41, 0x0}, -+ {0x41b42, 0x0}, -+ {0x41b43, 0x0}, -+ {0x41b44, 0x4000}, -+ {0x41b45, 0x0}, -+ {0x41b46, 0x1}, -+ {0x41b47, 0x0}, -+ {0x41b48, 0x0}, -+ {0x41b49, 0x0}, -+ {0x41b4a, 0x0}, -+ {0x41b4b, 0x0}, -+ {0x41b4c, 0x402c}, -+ {0x41b4d, 0xd00}, -+ {0x41b4e, 0x1}, -+ {0x41b4f, 0x0}, -+ {0x41b50, 0x4020}, -+ {0x41b51, 0x803}, -+ {0x41b52, 0x0}, -+ {0x41b53, 0x0}, -+ {0x41b54, 0x0}, -+ {0x41b55, 0x0}, -+ {0x41b56, 0x0}, -+ {0x41b57, 0x0}, -+ {0x41b58, 0x0}, -+ {0x41b59, 0x0}, -+ {0x41b5a, 0x0}, -+ {0x41b5b, 0x2b00}, -+ {0x41b5c, 0x0}, -+ {0x41b5d, 0x0}, -+ {0x41b5e, 0x0}, -+ {0x41b5f, 0x800}, -+ {0x41b60, 0x0}, -+ {0x41b61, 0x0}, -+ {0x41b62, 0x0}, -+ {0x41b63, 0x0}, -+ {0x41b64, 0x407c}, -+ {0x41b65, 0x0}, -+ {0x41b66, 0x0}, -+ {0x41b67, 0x0}, -+ {0x41b68, 0x0}, -+ {0x41b69, 0x0}, -+ {0x41b6a, 0x0}, -+ {0x41b6b, 0x0}, -+ {0x41b6c, 0x0}, -+ {0x41b6d, 0x0}, -+ {0x41b6e, 0x0}, -+ {0x41b6f, 0x0}, -+ {0x41b70, 0x4000}, -+ {0x41b71, 0x0}, -+ {0x41b72, 0x1}, -+ {0x41b73, 0x0}, -+ {0x41b74, 0x0}, -+ {0x41b75, 0x0}, -+ {0x41b76, 0x0}, -+ {0x41b77, 0x0}, -+ {0x41b78, 0x5758}, -+ {0x41b79, 0x0}, -+ {0x41b7a, 0x0}, -+ {0x41b7b, 0x0}, -+ {0x41b7c, 0x4008}, -+ {0x41b7d, 0x0}, -+ {0x41b7e, 0x0}, -+ {0x41b7f, 0x0}, -+ {0x41b80, 0x0}, -+ {0x41b81, 0x0}, -+ {0x41b82, 0x0}, -+ {0x41b83, 0x0}, -+ {0x41b84, 0x0}, -+ {0x41b85, 0x0}, -+ {0x41b86, 0x0}, -+ {0x41b87, 0x0}, -+ {0x41b88, 0x802c}, -+ {0x41b89, 0xd00}, -+ {0x41b8a, 0x1}, -+ {0x41b8b, 0x10}, -+ {0x41b8c, 0x8050}, -+ {0x41b8d, 0x803}, -+ {0x41b8e, 0x0}, -+ {0x41b8f, 0x10}, -+ {0x41b90, 0x0}, -+ {0x41b91, 0x0}, -+ {0x41b92, 0x0}, -+ {0x41b93, 0x0}, -+ {0x41b94, 0x0}, -+ {0x41b95, 0x0}, -+ {0x41b96, 0x0}, -+ {0x41b97, 0x0}, -+ {0x41b98, 0x0}, -+ {0x41b99, 0x0}, -+ {0x41b9a, 0x0}, -+ {0x41b9b, 0x0}, -+ {0x41b9c, 0x0}, -+ {0x41b9d, 0x0}, -+ {0x41b9e, 0x0}, -+ {0x41b9f, 0x0}, -+ {0x41ba0, 0x8050}, -+ {0x41ba1, 0x803}, -+ {0x41ba2, 0x0}, -+ {0x41ba3, 0x5a10}, -+ {0x41ba4, 0x0}, -+ {0x41ba5, 0x0}, -+ {0x41ba6, 0x0}, -+ {0x41ba7, 0x0}, -+ {0x41ba8, 0x0}, -+ {0x41ba9, 0x0}, -+ {0x41baa, 0x0}, -+ {0x41bab, 0x100}, -+ {0x41bac, 0x0}, -+ {0x41bad, 0x0}, -+ {0x41bae, 0x0}, -+ {0x41baf, 0x0}, -+ {0x41bb0, 0x8050}, -+ {0x41bb1, 0x803}, -+ {0x41bb2, 0x0}, -+ {0x41bb3, 0x10}, -+ {0x41bb4, 0x0}, -+ {0x41bb5, 0x0}, -+ {0x41bb6, 0x0}, -+ {0x41bb7, 0x0}, -+ {0x41bb8, 0x0}, -+ {0x41bb9, 0x0}, -+ {0x41bba, 0x0}, -+ {0x41bbb, 0x4b00}, -+ {0x41bbc, 0x0}, -+ {0x41bbd, 0x0}, -+ {0x41bbe, 0x0}, -+ {0x41bbf, 0x400}, -+ {0x41bc0, 0x807c}, -+ {0x41bc1, 0x0}, -+ {0x41bc2, 0x0}, -+ {0x41bc3, 0x10}, -+ {0x41bc4, 0x0}, -+ {0x41bc5, 0x0}, -+ {0x41bc6, 0x0}, -+ {0x41bc7, 0x0}, -+ {0x41bc8, 0x0}, -+ {0x41bc9, 0x0}, -+ {0x41bca, 0x0}, -+ {0x41bcb, 0x3b00}, -+ {0x41bcc, 0x0}, -+ {0x41bcd, 0x0}, -+ {0x41bce, 0x0}, -+ {0x41bcf, 0x0}, -+ {0x41bd0, 0x0}, -+ {0x41bd1, 0x0}, -+ {0x41bd2, 0x0}, -+ {0x41bd3, 0x0}, -+ {0x41bd4, 0x0}, -+ {0x41bd5, 0x0}, -+ {0x41bd6, 0x1}, -+ {0x41bd7, 0x0}, -+ {0x41bd8, 0x9758}, -+ {0x41bd9, 0x0}, -+ {0x41bda, 0x0}, -+ {0x41bdb, 0x10}, -+ {0x41bdc, 0x8208}, -+ {0x41bdd, 0x0}, -+ {0x41bde, 0x0}, -+ {0x41bdf, 0x10}, -+ {0x41be0, 0x0}, -+ {0x41be1, 0x0}, -+ {0x41be2, 0x0}, -+ {0x41be3, 0x4b00}, -+ {0x41be4, 0x0}, -+ {0x41be5, 0x0}, -+ {0x41be6, 0x0}, -+ {0x41be7, 0x0}, -+ {0x41be8, 0x0}, -+ {0x41be9, 0x0}, -+ {0x41bea, 0x0}, -+ {0x41beb, 0x0}, -+ {0x41bec, 0x801c}, -+ {0x41bed, 0xd0}, -+ {0x41bee, 0x1}, -+ {0x41bef, 0x10}, -+ {0x41bf0, 0x8060}, -+ {0x41bf1, 0x84}, -+ {0x41bf2, 0x0}, -+ {0x41bf3, 0x10}, -+ {0x41bf4, 0x0}, -+ {0x41bf5, 0x0}, -+ {0x41bf6, 0x0}, -+ {0x41bf7, 0x0}, -+ {0x41bf8, 0x0}, -+ {0x41bf9, 0x0}, -+ {0x41bfa, 0x0}, -+ {0x41bfb, 0x7b00}, -+ {0x41bfc, 0x0}, -+ {0x41bfd, 0x0}, -+ {0x41bfe, 0x0}, -+ {0x41bff, 0x0}, -+ {0x41c00, 0x807c}, -+ {0x41c01, 0x0}, -+ {0x41c02, 0x0}, -+ {0x41c03, 0x10}, -+ {0x41c04, 0x0}, -+ {0x41c05, 0x0}, -+ {0x41c06, 0x0}, -+ {0x41c07, 0x0}, -+ {0x41c08, 0x0}, -+ {0x41c09, 0x0}, -+ {0x41c0a, 0x0}, -+ {0x41c0b, 0x0}, -+ {0x41c0c, 0x8000}, -+ {0x41c0d, 0x0}, -+ {0x41c0e, 0x1}, -+ {0x41c0f, 0x10}, -+ {0x41c10, 0x0}, -+ {0x41c11, 0x0}, -+ {0x41c12, 0x0}, -+ {0x41c13, 0x0}, -+ {0x41c14, 0x802c}, -+ {0x41c15, 0xd00}, -+ {0x41c16, 0x1}, -+ {0x41c17, 0x10}, -+ {0x41c18, 0x8020}, -+ {0x41c19, 0x803}, -+ {0x41c1a, 0x0}, -+ {0x41c1b, 0x10}, -+ {0x41c1c, 0x0}, -+ {0x41c1d, 0x0}, -+ {0x41c1e, 0x0}, -+ {0x41c1f, 0x0}, -+ {0x41c20, 0x0}, -+ {0x41c21, 0x0}, -+ {0x41c22, 0x0}, -+ {0x41c23, 0x2b00}, -+ {0x41c24, 0x0}, -+ {0x41c25, 0x0}, -+ {0x41c26, 0x0}, -+ {0x41c27, 0x800}, -+ {0x41c28, 0x0}, -+ {0x41c29, 0x0}, -+ {0x41c2a, 0x0}, -+ {0x41c2b, 0x0}, -+ {0x41c2c, 0x807c}, -+ {0x41c2d, 0x0}, -+ {0x41c2e, 0x0}, -+ {0x41c2f, 0x10}, -+ {0x41c30, 0x0}, -+ {0x41c31, 0x0}, -+ {0x41c32, 0x0}, -+ {0x41c33, 0x0}, -+ {0x41c34, 0x0}, -+ {0x41c35, 0x0}, -+ {0x41c36, 0x0}, -+ {0x41c37, 0x0}, -+ {0x41c38, 0x8000}, -+ {0x41c39, 0x0}, -+ {0x41c3a, 0x1}, -+ {0x41c3b, 0x10}, -+ {0x41c3c, 0x0}, -+ {0x41c3d, 0x0}, -+ {0x41c3e, 0x0}, -+ {0x41c3f, 0x0}, -+ {0x41c40, 0x9758}, -+ {0x41c41, 0x0}, -+ {0x41c42, 0x0}, -+ {0x41c43, 0x10}, -+ {0x41c44, 0x8008}, -+ {0x41c45, 0x0}, -+ {0x41c46, 0x0}, -+ {0x41c47, 0x10}, -+ {0x41c48, 0x0}, -+ {0x41c49, 0x0}, -+ {0x41c4a, 0x0}, -+ {0x41c4b, 0x0}, -+ {0x41c4c, 0x0}, -+ {0x41c4d, 0x0}, -+ {0x41c4e, 0x0}, -+ {0x41c4f, 0x0}, -+ {0x41c50, 0xc068}, -+ {0x41c51, 0x0}, -+ {0x41c52, 0x0}, -+ {0x41c53, 0x10}, -+ {0x41c54, 0x0}, -+ {0x41c55, 0x0}, -+ {0x41c56, 0x0}, -+ {0x41c57, 0x0}, -+ {0x9002e, 0x10}, -+ {0x9002f, 0x400}, -+ {0x90030, 0x80e}, -+ {0x90031, 0xb}, -+ {0x90032, 0x480}, -+ {0x90033, 0x809}, -+ {0x90034, 0x9}, -+ {0x90035, 0x308}, -+ {0x90036, 0xc09}, -+ {0x90037, 0x28}, -+ {0x90038, 0x8160}, -+ {0x90039, 0x87c}, -+ {0x9003a, 0x98}, -+ {0x9003b, 0x820}, -+ {0x9003c, 0xc7e}, -+ {0x9003d, 0x2}, -+ {0x9003e, 0x1}, -+ {0x9003f, 0x78}, -+ {0x90040, 0xa}, -+ {0x90041, 0x370}, -+ {0x90042, 0x839}, -+ {0x90043, 0x18}, -+ {0x90044, 0x8160}, -+ {0x90045, 0x83c}, -+ {0x90046, 0x9}, -+ {0x90047, 0x150}, -+ {0x90048, 0x839}, -+ {0x90049, 0x70}, -+ {0x9004a, 0x392}, -+ {0x9004b, 0x39}, -+ {0x9004c, 0x78}, -+ {0x9004d, 0x39a}, -+ {0x9004e, 0x39}, -+ {0x9004f, 0xe09}, -+ {0x90050, 0x100}, -+ {0x90051, 0x839}, -+ {0x90052, 0x2}, -+ {0x90053, 0x1}, -+ {0x90054, 0x38}, -+ {0x90055, 0x0}, -+ {0x90056, 0x100}, -+ {0x90057, 0x839}, -+ {0x90058, 0x0}, -+ {0x90059, 0x398}, -+ {0x9005a, 0x839}, -+ {0x9005b, 0xe19}, -+ {0x9005c, 0x100}, -+ {0x9005d, 0x839}, -+ {0x9005e, 0x2}, -+ {0x9005f, 0x1}, -+ {0x90060, 0x38}, -+ {0x90061, 0x0}, -+ {0x90062, 0x100}, -+ {0x90063, 0x839}, -+ {0x90064, 0x0}, -+ {0x90065, 0x390}, -+ {0x90066, 0x839}, -+ {0x90067, 0x78}, -+ {0x90068, 0x39a}, -+ {0x90069, 0x39}, -+ {0x9006a, 0xe29}, -+ {0x9006b, 0x100}, -+ {0x9006c, 0x839}, -+ {0x9006d, 0x2}, -+ {0x9006e, 0x1}, -+ {0x9006f, 0x38}, -+ {0x90070, 0x0}, -+ {0x90071, 0x100}, -+ {0x90072, 0x839}, -+ {0x90073, 0x70}, -+ {0x90074, 0x392}, -+ {0x90075, 0x39}, -+ {0x90076, 0x18}, -+ {0x90077, 0x8160}, -+ {0x90078, 0x8bc}, -+ {0x90079, 0x8}, -+ {0x9007a, 0x13a}, -+ {0x9007b, 0xb9}, -+ {0x9007c, 0x24b}, -+ {0x9007d, 0x100}, -+ {0x9007e, 0x8b9}, -+ {0x9007f, 0x2}, -+ {0x90080, 0x1}, -+ {0x90081, 0xb8}, -+ {0x90082, 0x0}, -+ {0x90083, 0x100}, -+ {0x90084, 0x8b9}, -+ {0x90085, 0x20}, -+ {0x90086, 0x4}, -+ {0x90087, 0xb8}, -+ {0x90088, 0x20}, -+ {0x90089, 0x4}, -+ {0x9008a, 0xb8}, -+ {0x9008b, 0x5}, -+ {0x9008c, 0x0}, -+ {0x9008d, 0xb8}, -+ {0x9008e, 0x479}, -+ {0x9008f, 0xc7f8}, -+ {0x90090, 0x8bc}, -+ {0x90091, 0x0}, -+ {0x90092, 0x0}, -+ {0x90093, 0xb8}, -+ {0x90094, 0x0}, -+ {0x90095, 0xa8}, -+ {0x90096, 0x8b9}, -+ {0x90097, 0x9}, -+ {0x90098, 0xc9c0}, -+ {0x90099, 0xcbc}, -+ {0x9009a, 0x0}, -+ {0x9009b, 0x0}, -+ {0x9009c, 0xb8}, -+ {0x9009d, 0x25b}, -+ {0x9009e, 0x100}, -+ {0x9009f, 0xcb9}, -+ {0x900a0, 0x20}, -+ {0x900a1, 0x4}, -+ {0x900a2, 0xb8}, -+ {0x900a3, 0x20}, -+ {0x900a4, 0x4}, -+ {0x900a5, 0xb8}, -+ {0x900a6, 0x20}, -+ {0x900a7, 0x4}, -+ {0x900a8, 0xb8}, -+ {0x900a9, 0x20}, -+ {0x900aa, 0x4}, -+ {0x900ab, 0xb8}, -+ {0x900ac, 0x10}, -+ {0x900ad, 0x400}, -+ {0x900ae, 0x89e}, -+ {0x900af, 0x8}, -+ {0x900b0, 0x370}, -+ {0x900b1, 0x839}, -+ {0x900b2, 0x33b}, -+ {0x900b3, 0x100}, -+ {0x900b4, 0x8b9}, -+ {0x900b5, 0x0}, -+ {0x900b6, 0x100}, -+ {0x900b7, 0x8b9}, -+ {0x900b8, 0x23b}, -+ {0x900b9, 0x100}, -+ {0x900ba, 0xc99}, -+ {0x900bb, 0x2}, -+ {0x900bc, 0x150}, -+ {0x900bd, 0x839}, -+ {0x900be, 0x1800}, -+ {0x900bf, 0x8660}, -+ {0x900c0, 0x839}, -+ {0x900c1, 0x0}, -+ {0x900c2, 0x2a0}, -+ {0x900c3, 0x809}, -+ {0x900c4, 0x8}, -+ {0x900c5, 0x1880}, -+ {0x900c6, 0x839}, -+ {0x900c7, 0x8}, -+ {0x900c8, 0x82b0}, -+ {0x900c9, 0x838}, -+ {0x900ca, 0x18}, -+ {0x900cb, 0xe0}, -+ {0x900cc, 0x809}, -+ {0x900cd, 0x0}, -+ {0x900ce, 0xe0}, -+ {0x900cf, 0x869}, -+ {0x900d0, 0xf}, -+ {0x900d1, 0x7c0}, -+ {0x900d2, 0x839}, -+ {0x900d3, 0xa}, -+ {0x900d4, 0x510}, -+ {0x900d5, 0x839}, -+ {0x900d6, 0xa}, -+ {0x900d7, 0x700}, -+ {0x900d8, 0x849}, -+ {0x900d9, 0xa}, -+ {0x900da, 0x700}, -+ {0x900db, 0x859}, -+ {0x900dc, 0xa}, -+ {0x900dd, 0x708}, -+ {0x900de, 0x859}, -+ {0x900df, 0x2}, -+ {0x900e0, 0x708}, -+ {0x900e1, 0x849}, -+ {0x900e2, 0xff8}, -+ {0x900e3, 0x8410}, -+ {0x900e4, 0x839}, -+ {0x900e5, 0x7ff8}, -+ {0x900e6, 0x8498}, -+ {0x900e7, 0x838}, -+ {0x900e8, 0x10}, -+ {0x900e9, 0x8160}, -+ {0x900ea, 0x83c}, -+ {0x900eb, 0x0}, -+ {0x900ec, 0x7c8}, -+ {0x900ed, 0x809}, -+ {0x900ee, 0x0}, -+ {0x900ef, 0x1}, -+ {0x900f0, 0x8}, -+ {0x900f1, 0x0}, -+ {0x900f2, 0x45a}, -+ {0x900f3, 0x89}, -+ {0x900f4, 0x0}, -+ {0x900f5, 0x8018}, -+ {0x900f6, 0x808}, -+ {0x900f7, 0x0}, -+ {0x900f8, 0x8020}, -+ {0x900f9, 0x808}, -+ {0x900fa, 0x479}, -+ {0x900fb, 0xc7f8}, -+ {0x900fc, 0x80c}, -+ {0x900fd, 0x0}, -+ {0x900fe, 0x0}, -+ {0x900ff, 0x8}, -+ {0x90100, 0x0}, -+ {0x90101, 0x8018}, -+ {0x90102, 0x808}, -+ {0x90103, 0x0}, -+ {0x90104, 0x8020}, -+ {0x90105, 0x808}, -+ {0x90106, 0x9}, -+ {0x90107, 0xc9c0}, -+ {0x90108, 0xc0c}, -+ {0x90109, 0x0}, -+ {0x9010a, 0xa8}, -+ {0x9010b, 0x8c9}, -+ {0x9010c, 0x29}, -+ {0x9010d, 0x8160}, -+ {0x9010e, 0x87c}, -+ {0x9010f, 0xb8}, -+ {0x90110, 0x820}, -+ {0x90111, 0xc7e}, -+ {0x90112, 0x1}, -+ {0x90113, 0x0}, -+ {0x90114, 0x78}, -+ {0x90115, 0x0}, -+ {0x90116, 0x1}, -+ {0x90117, 0x78}, -+ {0x90118, 0xd8}, -+ {0x90119, 0x820}, -+ {0x9011a, 0xc7e}, -+ {0x9011b, 0x1}, -+ {0x9011c, 0x0}, -+ {0x9011d, 0x78}, -+ {0x9011e, 0x0}, -+ {0x9011f, 0x1}, -+ {0x90120, 0x78}, -+ {0x90121, 0xf8}, -+ {0x90122, 0x820}, -+ {0x90123, 0xc7e}, -+ {0x90124, 0x1}, -+ {0x90125, 0x0}, -+ {0x90126, 0x78}, -+ {0x90127, 0x0}, -+ {0x90128, 0x1}, -+ {0x90129, 0x78}, -+ {0x9012a, 0x0}, -+ {0x9012b, 0x700}, -+ {0x9012c, 0x849}, -+ {0x9012d, 0x0}, -+ {0x9012e, 0x618}, -+ {0x9012f, 0x809}, -+ {0x90130, 0x3ff8}, -+ {0x90131, 0x84b8}, -+ {0x90132, 0x808}, -+ {0x90133, 0x0}, -+ {0x90134, 0x0}, -+ {0x90135, 0x8}, -+ {0x90136, 0x8}, -+ {0x90137, 0xc870}, -+ {0x90138, 0xc0c}, -+ {0x90139, 0x18}, -+ {0x9013a, 0x710}, -+ {0x9013b, 0x849}, -+ {0x9013c, 0x0}, -+ {0x9013d, 0x4}, -+ {0x9013e, 0x48}, -+ {0x9013f, 0x0}, -+ {0x90140, 0x4}, -+ {0x90141, 0x48}, -+ {0x90142, 0x10}, -+ {0x90143, 0x710}, -+ {0x90144, 0x849}, -+ {0x90145, 0x0}, -+ {0x90146, 0x4}, -+ {0x90147, 0x48}, -+ {0x90148, 0x0}, -+ {0x90149, 0x710}, -+ {0x9014a, 0x849}, -+ {0x9014b, 0x0}, -+ {0x9014c, 0x4}, -+ {0x9014d, 0x48}, -+ {0x9014e, 0x0}, -+ {0x9014f, 0x4}, -+ {0x90150, 0x18}, -+ {0x90151, 0x0}, -+ {0x90152, 0x4}, -+ {0x90153, 0x18}, -+ {0x90154, 0x0}, -+ {0x90155, 0x4}, -+ {0x90156, 0x18}, -+ {0x90157, 0x0}, -+ {0x90158, 0x8410}, -+ {0x90159, 0x809}, -+ {0x9015a, 0x0}, -+ {0x9015b, 0x8498}, -+ {0x9015c, 0x808}, -+ {0x9015d, 0x5}, -+ {0x9015e, 0x510}, -+ {0x9015f, 0x809}, -+ {0x90160, 0x198}, -+ {0x90161, 0x1000}, -+ {0x90162, 0x809}, -+ {0x90163, 0x9}, -+ {0x90164, 0x3c0}, -+ {0x90165, 0x809}, -+ {0x90166, 0x10}, -+ {0x90167, 0x510}, -+ {0x90168, 0x809}, -+ {0x90169, 0x0}, -+ {0x9016a, 0x3c0}, -+ {0x9016b, 0x809}, -+ {0x9016c, 0x18}, -+ {0x9016d, 0x4}, -+ {0x9016e, 0x8}, -+ {0x9016f, 0x2}, -+ {0x90170, 0x510}, -+ {0x90171, 0x809}, -+ {0x90172, 0x2}, -+ {0x90173, 0x1000}, -+ {0x90174, 0x809}, -+ {0x90175, 0x68}, -+ {0x90176, 0x801a}, -+ {0x90177, 0x8}, -+ {0x90178, 0x68}, -+ {0x90179, 0x8022}, -+ {0x9017a, 0x8}, -+ {0x9017b, 0x479}, -+ {0x9017c, 0xc7f8}, -+ {0x9017d, 0x80c}, -+ {0x9017e, 0x0}, -+ {0x9017f, 0x0}, -+ {0x90180, 0x8}, -+ {0x90181, 0x68}, -+ {0x90182, 0x801a}, -+ {0x90183, 0x8}, -+ {0x90184, 0x68}, -+ {0x90185, 0x8022}, -+ {0x90186, 0x8}, -+ {0x90187, 0x9}, -+ {0x90188, 0xc9c0}, -+ {0x90189, 0xc0c}, -+ {0x9018a, 0x0}, -+ {0x9018b, 0xc870}, -+ {0x9018c, 0xc0c}, -+ {0x9018d, 0x0}, -+ {0x9018e, 0x2a0}, -+ {0x9018f, 0x809}, -+ {0x90190, 0x10}, -+ {0x90191, 0x8160}, -+ {0x90192, 0x89c}, -+ {0x90193, 0x2}, -+ {0x90194, 0x7c8}, -+ {0x90195, 0x809}, -+ {0x90196, 0x0}, -+ {0x90197, 0x1}, -+ {0x90198, 0x8}, -+ {0x90199, 0x40}, -+ {0x9019a, 0x1932}, -+ {0x9019b, 0x129}, -+ {0x9019c, 0xa}, -+ {0x9019d, 0xc140}, -+ {0x9019e, 0x80c}, -+ {0x9019f, 0x98}, -+ {0x901a0, 0x193a}, -+ {0x901a1, 0x129}, -+ {0x901a2, 0x90}, -+ {0x901a3, 0x1932}, -+ {0x901a4, 0x329}, -+ {0x901a5, 0x90}, -+ {0x901a6, 0x193a}, -+ {0x901a7, 0x329}, -+ {0x901a8, 0x88}, -+ {0x901a9, 0x1882}, -+ {0x901aa, 0x9}, -+ {0x901ab, 0x0}, -+ {0x901ac, 0xc140}, -+ {0x901ad, 0x80c}, -+ {0x901ae, 0x10}, -+ {0x901af, 0x400}, -+ {0x901b0, 0x80e}, -+ {0x901b1, 0xb}, -+ {0x901b2, 0x370}, -+ {0x901b3, 0x809}, -+ {0x901b4, 0x23b}, -+ {0x901b5, 0x100}, -+ {0x901b6, 0xcf9}, -+ {0x901b7, 0x0}, -+ {0x901b8, 0x2a0}, -+ {0x901b9, 0x809}, -+ {0x901ba, 0x7800}, -+ {0x901bb, 0x8660}, -+ {0x901bc, 0x809}, -+ {0x901bd, 0xd}, -+ {0x901be, 0x7c0}, -+ {0x901bf, 0x809}, -+ {0x901c0, 0x0}, -+ {0x901c1, 0x82b0}, -+ {0x901c2, 0x818}, -+ {0x901c3, 0x0}, -+ {0x901c4, 0x82b0}, -+ {0x901c5, 0x868}, -+ {0x901c6, 0x2}, -+ {0x901c7, 0x7c8}, -+ {0x901c8, 0xa09}, -+ {0x901c9, 0x8}, -+ {0x901ca, 0x508}, -+ {0x901cb, 0x939}, -+ {0x901cc, 0x5}, -+ {0x901cd, 0x7c0}, -+ {0x901ce, 0x809}, -+ {0x901cf, 0x8}, -+ {0x901d0, 0x82b0}, -+ {0x901d1, 0x868}, -+ {0x901d2, 0x8}, -+ {0x901d3, 0x82b0}, -+ {0x901d4, 0x818}, -+ {0x901d5, 0x8}, -+ {0x901d6, 0x82b0}, -+ {0x901d7, 0x888}, -+ {0x901d8, 0x10}, -+ {0x901d9, 0x510}, -+ {0x901da, 0x809}, -+ {0x901db, 0x0}, -+ {0x901dc, 0xa8}, -+ {0x901dd, 0x8c9}, -+ {0x901de, 0x9}, -+ {0x901df, 0x1900}, -+ {0x901e0, 0xd39}, -+ {0x901e1, 0x0}, -+ {0x901e2, 0x508}, -+ {0x901e3, 0x939}, -+ {0x901e4, 0x2}, -+ {0x901e5, 0x7c8}, -+ {0x901e6, 0x829}, -+ {0x901e7, 0xa}, -+ {0x901e8, 0x3c8}, -+ {0x901e9, 0xc29}, -+ {0x901ea, 0x199}, -+ {0x901eb, 0x3d0}, -+ {0x901ec, 0xc19}, -+ {0x901ed, 0x3}, -+ {0x901ee, 0x0}, -+ {0x901ef, 0x18}, -+ {0x901f0, 0x38}, -+ {0x901f1, 0x4}, -+ {0x901f2, 0x18}, -+ {0x901f3, 0x199}, -+ {0x901f4, 0x3d0}, -+ {0x901f5, 0xc09}, -+ {0x901f6, 0x0}, -+ {0x901f7, 0x0}, -+ {0x901f8, 0x8}, -+ {0x901f9, 0x9}, -+ {0x901fa, 0x150}, -+ {0x901fb, 0x809}, -+ {0x901fc, 0x9}, -+ {0x901fd, 0xc800}, -+ {0x901fe, 0xc0c}, -+ {0x901ff, 0x18}, -+ {0x90200, 0x8160}, -+ {0x90201, 0x8cc}, -+ {0x90202, 0x8}, -+ {0x90203, 0x13a}, -+ {0x90204, 0xc9}, -+ {0x90205, 0x24b}, -+ {0x90206, 0x100}, -+ {0x90207, 0x8c9}, -+ {0x90208, 0x2}, -+ {0x90209, 0x1}, -+ {0x9020a, 0xc8}, -+ {0x9020b, 0x0}, -+ {0x9020c, 0x100}, -+ {0x9020d, 0x8c9}, -+ {0x9020e, 0x20}, -+ {0x9020f, 0x4}, -+ {0x90210, 0xc8}, -+ {0x90211, 0x20}, -+ {0x90212, 0x4}, -+ {0x90213, 0xc8}, -+ {0x90214, 0x5}, -+ {0x90215, 0x0}, -+ {0x90216, 0xc8}, -+ {0x90217, 0x479}, -+ {0x90218, 0xc7f8}, -+ {0x90219, 0x8cc}, -+ {0x9021a, 0x0}, -+ {0x9021b, 0x0}, -+ {0x9021c, 0xc8}, -+ {0x9021d, 0x30}, -+ {0x9021e, 0xaa}, -+ {0x9021f, 0xc9}, -+ {0x90220, 0x9}, -+ {0x90221, 0xc9c0}, -+ {0x90222, 0xccc}, -+ {0x90223, 0x0}, -+ {0x90224, 0x0}, -+ {0x90225, 0xc8}, -+ {0x90226, 0x479}, -+ {0x90227, 0xc7f8}, -+ {0x90228, 0x8bc}, -+ {0x90229, 0x0}, -+ {0x9022a, 0x0}, -+ {0x9022b, 0xb8}, -+ {0x9022c, 0x30}, -+ {0x9022d, 0xaa}, -+ {0x9022e, 0xb9}, -+ {0x9022f, 0x9}, -+ {0x90230, 0xc9c0}, -+ {0x90231, 0xcbc}, -+ {0x90232, 0x0}, -+ {0x90233, 0x0}, -+ {0x90234, 0xb8}, -+ {0x90235, 0x25b}, -+ {0x90236, 0x100}, -+ {0x90237, 0xcc9}, -+ {0x90238, 0x20}, -+ {0x90239, 0x4}, -+ {0x9023a, 0xc8}, -+ {0x9023b, 0x20}, -+ {0x9023c, 0x4}, -+ {0x9023d, 0xc8}, -+ {0x9023e, 0x20}, -+ {0x9023f, 0x4}, -+ {0x90240, 0xa8}, -+ {0x90241, 0x4}, -+ {0x90242, 0x0}, -+ {0x90243, 0xc8}, -+ {0x90244, 0x9}, -+ {0x90245, 0xc800}, -+ {0x90246, 0xc6c}, -+ {0x90247, 0x26f}, -+ {0x90248, 0x100}, -+ {0x90249, 0xc19}, -+ {0x9024a, 0x8}, -+ {0x9024b, 0x4}, -+ {0x9024c, 0x18}, -+ {0x9024d, 0x27f}, -+ {0x9024e, 0x100}, -+ {0x9024f, 0xc19}, -+ {0x90250, 0x479}, -+ {0x90251, 0xc7f8}, -+ {0x90252, 0x80c}, -+ {0x90253, 0x0}, -+ {0x90254, 0x0}, -+ {0x90255, 0x8}, -+ {0x90256, 0x58}, -+ {0x90257, 0x8a}, -+ {0x90258, 0x9}, -+ {0x90259, 0x9}, -+ {0x9025a, 0xc9c0}, -+ {0x9025b, 0xc0c}, -+ {0x9025c, 0x0}, -+ {0x9025d, 0x0}, -+ {0x9025e, 0x8}, -+ {0x9025f, 0x18}, -+ {0x90260, 0x8160}, -+ {0x90261, 0x86c}, -+ {0x90262, 0x1008}, -+ {0x90263, 0x853b}, -+ {0x90264, 0x868}, -+ {0x90265, 0xc00}, -+ {0x90266, 0x8588}, -+ {0x90267, 0x868}, -+ {0x90268, 0x8}, -+ {0x90269, 0x85a8}, -+ {0x9026a, 0x868}, -+ {0x9026b, 0x8}, -+ {0x9026c, 0x85c8}, -+ {0x9026d, 0x868}, -+ {0x9026e, 0x0}, -+ {0x9026f, 0x8050}, -+ {0x90270, 0x868}, -+ {0x90271, 0x60}, -+ {0x90272, 0x138}, -+ {0x90273, 0x869}, -+ {0x90274, 0x18}, -+ {0x90275, 0x8510}, -+ {0x90276, 0x868}, -+ {0x90277, 0x18}, -+ {0x90278, 0x2c8}, -+ {0x90279, 0x869}, -+ {0x9027a, 0x10}, -+ {0x9027b, 0x8520}, -+ {0x9027c, 0x868}, -+ {0x9027d, 0x1ff8}, -+ {0x9027e, 0x85d8}, -+ {0x9027f, 0xc68}, -+ {0x90280, 0x0}, -+ {0x90281, 0xfdf0}, -+ {0x90282, 0x868}, -+ {0x90283, 0x8}, -+ {0x90284, 0x85f0}, -+ {0x90285, 0x868}, -+ {0x90286, 0x8}, -+ {0x90287, 0xa5f0}, -+ {0x90288, 0x868}, -+ {0x90289, 0x298}, -+ {0x9028a, 0x100}, -+ {0x9028b, 0x869}, -+ {0x9028c, 0x2}, -+ {0x9028d, 0x1}, -+ {0x9028e, 0x68}, -+ {0x9028f, 0x0}, -+ {0x90290, 0x100}, -+ {0x90291, 0x869}, -+ {0x90292, 0x0}, -+ {0x90293, 0x85f0}, -+ {0x90294, 0x868}, -+ {0x90295, 0x0}, -+ {0x90296, 0xa5f0}, -+ {0x90297, 0x868}, -+ {0x90298, 0x33b}, -+ {0x90299, 0x100}, -+ {0x9029a, 0x8c9}, -+ {0x9029b, 0x0}, -+ {0x9029c, 0x100}, -+ {0x9029d, 0x8c9}, -+ {0x9029e, 0x1ff8}, -+ {0x9029f, 0x85d8}, -+ {0x902a0, 0xc68}, -+ {0x902a1, 0x8}, -+ {0x902a2, 0x8df0}, -+ {0x902a3, 0x868}, -+ {0x902a4, 0x8}, -+ {0x902a5, 0xadf0}, -+ {0x902a6, 0x868}, -+ {0x902a7, 0x2a8}, -+ {0x902a8, 0x100}, -+ {0x902a9, 0x869}, -+ {0x902aa, 0x2}, -+ {0x902ab, 0x1}, -+ {0x902ac, 0x68}, -+ {0x902ad, 0x0}, -+ {0x902ae, 0x100}, -+ {0x902af, 0x869}, -+ {0x902b0, 0x0}, -+ {0x902b1, 0x8df0}, -+ {0x902b2, 0x868}, -+ {0x902b3, 0x0}, -+ {0x902b4, 0xadf0}, -+ {0x902b5, 0x868}, -+ {0x902b6, 0x10}, -+ {0x902b7, 0x2c8}, -+ {0x902b8, 0x869}, -+ {0x902b9, 0x28}, -+ {0x902ba, 0x4}, -+ {0x902bb, 0x68}, -+ {0x902bc, 0xa}, -+ {0x902bd, 0x500}, -+ {0x902be, 0xc69}, -+ {0x902bf, 0x0}, -+ {0x902c0, 0x8520}, -+ {0x902c1, 0x868}, -+ {0x902c2, 0x8}, -+ {0x902c3, 0x8530}, -+ {0x902c4, 0x868}, -+ {0x902c5, 0x2ba}, -+ {0x902c6, 0x100}, -+ {0x902c7, 0x869}, -+ {0x902c8, 0x2}, -+ {0x902c9, 0x1}, -+ {0x902ca, 0x68}, -+ {0x902cb, 0x2}, -+ {0x902cc, 0x100}, -+ {0x902cd, 0x869}, -+ {0x902ce, 0x0}, -+ {0x902cf, 0x8530}, -+ {0x902d0, 0x868}, -+ {0x902d1, 0x0}, -+ {0x902d2, 0x8510}, -+ {0x902d3, 0x868}, -+ {0x902d4, 0x0}, -+ {0x902d5, 0x2c8}, -+ {0x902d6, 0x869}, -+ {0x902d7, 0x8}, -+ {0x902d8, 0x8050}, -+ {0x902d9, 0x868}, -+ {0x902da, 0x30}, -+ {0x902db, 0x4}, -+ {0x902dc, 0x68}, -+ {0x902dd, 0x8}, -+ {0x902de, 0x8520}, -+ {0x902df, 0x868}, -+ {0x902e0, 0x0}, -+ {0x902e1, 0x8328}, -+ {0x902e2, 0x86b}, -+ {0x902e3, 0x2ca}, -+ {0x902e4, 0x100}, -+ {0x902e5, 0x869}, -+ {0x902e6, 0x2}, -+ {0x902e7, 0x1}, -+ {0x902e8, 0x68}, -+ {0x902e9, 0x4}, -+ {0x902ea, 0x100}, -+ {0x902eb, 0x869}, -+ {0x902ec, 0xff8}, -+ {0x902ed, 0x8328}, -+ {0x902ee, 0x86b}, -+ {0x902ef, 0x9}, -+ {0x902f0, 0x500}, -+ {0x902f1, 0xc29}, -+ {0x902f2, 0x0}, -+ {0x902f3, 0x8520}, -+ {0x902f4, 0x868}, -+ {0x902f5, 0x8}, -+ {0x902f6, 0x3c8}, -+ {0x902f7, 0xc29}, -+ {0x902f8, 0x0}, -+ {0x902f9, 0x150}, -+ {0x902fa, 0x809}, -+ {0x902fb, 0x2}, -+ {0x902fc, 0x370}, -+ {0x902fd, 0x809}, -+ {0x902fe, 0x0}, -+ {0x902ff, 0x400}, -+ {0x90300, 0x80e}, -+ {0x90301, 0x20}, -+ {0x90302, 0x82b0}, -+ {0x90303, 0x808}, -+ {0x90304, 0x479}, -+ {0x90305, 0xc7f8}, -+ {0x90306, 0x80c}, -+ {0x90307, 0x0}, -+ {0x90308, 0x0}, -+ {0x90309, 0x8}, -+ {0x9030a, 0x60}, -+ {0x9030b, 0x8a}, -+ {0x9030c, 0x9}, -+ {0x9030d, 0x9}, -+ {0x9030e, 0xc9c0}, -+ {0x9030f, 0xc0c}, -+ {0x90310, 0x0}, -+ {0x90311, 0x0}, -+ {0x90312, 0x8}, -+ {0x90313, 0x8}, -+ {0x90314, 0x2a0}, -+ {0x90315, 0x809}, -+ {0x90316, 0x48}, -+ {0x90317, 0xc822}, -+ {0x90318, 0xc}, -+ {0x90319, 0x48}, -+ {0x9031a, 0xcc32}, -+ {0x9031b, 0xc}, -+ {0x9031c, 0x9}, -+ {0x9031d, 0xc800}, -+ {0x9031e, 0xc0c}, -+ {0x9031f, 0x0}, -+ {0x90320, 0x8168}, -+ {0x90321, 0x80c}, -+ {0x90322, 0xa}, -+ {0x90323, 0xc140}, -+ {0x90324, 0x92c}, -+ {0x90325, 0x88}, -+ {0x90326, 0x1932}, -+ {0x90327, 0x129}, -+ {0x90328, 0x88}, -+ {0x90329, 0x193a}, -+ {0x9032a, 0x129}, -+ {0x9032b, 0x0}, -+ {0x9032c, 0xc140}, -+ {0x9032d, 0x92c}, -+ {0x9032e, 0x8}, -+ {0x9032f, 0x300}, -+ {0x90330, 0x819}, -+ {0x90331, 0x10}, -+ {0x90332, 0x8160}, -+ {0x90333, 0x80c}, -+ {0x90334, 0x8}, -+ {0x90335, 0x7c8}, -+ {0x90336, 0x931}, -+ {0x90337, 0x8}, -+ {0x90338, 0x0}, -+ {0x90339, 0x8}, -+ {0x9033a, 0x8}, -+ {0x9033b, 0x1880}, -+ {0x9033c, 0x809}, -+ {0x9033d, 0x10}, -+ {0x9033e, 0x8160}, -+ {0x9033f, 0x80c}, -+ {0x90340, 0x1800}, -+ {0x90341, 0x8660}, -+ {0x90342, 0x809}, -+ {0x90343, 0x4000}, -+ {0x90344, 0x8668}, -+ {0x90345, 0x809}, -+ {0x90346, 0xf}, -+ {0x90347, 0x7c0}, -+ {0x90348, 0x809}, -+ {0x90349, 0x0}, -+ {0x9034a, 0x2a0}, -+ {0x9034b, 0x809}, -+ {0x9034c, 0x8}, -+ {0x9034d, 0x618}, -+ {0x9034e, 0x809}, -+ {0x9034f, 0x0}, -+ {0x90350, 0x84b8}, -+ {0x90351, 0x808}, -+ {0x90352, 0xff8}, -+ {0x90353, 0x8410}, -+ {0x90354, 0x809}, -+ {0x90355, 0x7ff8}, -+ {0x90356, 0x8498}, -+ {0x90357, 0x808}, -+ {0x90358, 0x0}, -+ {0x90359, 0x7c8}, -+ {0x9035a, 0x809}, -+ {0x9035b, 0x8}, -+ {0x9035c, 0x8168}, -+ {0x9035d, 0x80c}, -+ {0x9035e, 0x0}, -+ {0x9035f, 0x1}, -+ {0x90360, 0x8}, -+ {0x90361, 0x0}, -+ {0x90362, 0x4}, -+ {0x90363, 0x8}, -+ {0x90364, 0x0}, -+ {0x90365, 0x4}, -+ {0x90366, 0x8}, -+ {0x90367, 0x18}, -+ {0x90368, 0x300}, -+ {0x90369, 0x809}, -+ {0x9036a, 0x0}, -+ {0x9036b, 0x480}, -+ {0x9036c, 0x809}, -+ {0x9036d, 0x8}, -+ {0x9036e, 0x510}, -+ {0x9036f, 0x809}, -+ {0x90370, 0x7800}, -+ {0x90371, 0x8660}, -+ {0x90372, 0x809}, -+ {0x90373, 0x8}, -+ {0x90374, 0x7c8}, -+ {0x90375, 0x801}, -+ {0x90376, 0x10}, -+ {0x90377, 0x400}, -+ {0x90378, 0x80e}, -+ {0x90379, 0x8}, -+ {0x9037a, 0x150}, -+ {0x9037b, 0x809}, -+ {0x9037c, 0x9}, -+ {0x9037d, 0x370}, -+ {0x9037e, 0x809}, -+ {0x9037f, 0x18}, -+ {0x90380, 0x8160}, -+ {0x90381, 0x80c}, -+ {0x90382, 0x8}, -+ {0x90383, 0xc800}, -+ {0x90384, 0xc0c}, -+ {0x90385, 0x8}, -+ {0x90386, 0xc888}, -+ {0x90387, 0xc04}, -+ {0x90388, 0x20}, -+ {0x90389, 0x8302}, -+ {0x9038a, 0xb}, -+ {0x9038b, 0x18}, -+ {0x9038c, 0x8582}, -+ {0x9038d, 0x8}, -+ {0x9038e, 0x9000}, -+ {0x9038f, 0x8539}, -+ {0x90390, 0x808}, -+ {0x90391, 0x0}, -+ {0x90392, 0x8588}, -+ {0x90393, 0x808}, -+ {0x90394, 0x40}, -+ {0x90395, 0x85c8}, -+ {0x90396, 0x808}, -+ {0x90397, 0x0}, -+ {0x90398, 0xfdf0}, -+ {0x90399, 0x808}, -+ {0x9039a, 0x800}, -+ {0x9039b, 0xc5f0}, -+ {0x9039c, 0x808}, -+ {0x9039d, 0x1ff8}, -+ {0x9039e, 0xfdd8}, -+ {0x9039f, 0xc08}, -+ {0x903a0, 0x18}, -+ {0x903a1, 0xfda8}, -+ {0x903a2, 0x808}, -+ {0x903a3, 0x40}, -+ {0x903a4, 0x8520}, -+ {0x903a5, 0x8d8}, -+ {0x903a6, 0x80}, -+ {0x903a7, 0x8520}, -+ {0x903a8, 0x8e8}, -+ {0x903a9, 0x30a}, -+ {0x903aa, 0x100}, -+ {0x903ab, 0x8d9}, -+ {0x903ac, 0x32a}, -+ {0x903ad, 0x100}, -+ {0x903ae, 0x8e9}, -+ {0x903af, 0x0}, -+ {0x903b0, 0x1}, -+ {0x903b1, 0x8}, -+ {0x903b2, 0x0}, -+ {0x903b3, 0x100}, -+ {0x903b4, 0x809}, -+ {0x903b5, 0x1ff8}, -+ {0x903b6, 0xfdd8}, -+ {0x903b7, 0xc08}, -+ {0x903b8, 0x8}, -+ {0x903b9, 0xfda8}, -+ {0x903ba, 0x808}, -+ {0x903bb, 0x140}, -+ {0x903bc, 0x8520}, -+ {0x903bd, 0x8d8}, -+ {0x903be, 0x180}, -+ {0x903bf, 0x8520}, -+ {0x903c0, 0x8e8}, -+ {0x903c1, 0x30a}, -+ {0x903c2, 0x100}, -+ {0x903c3, 0x8d9}, -+ {0x903c4, 0x32a}, -+ {0x903c5, 0x100}, -+ {0x903c6, 0x8e9}, -+ {0x903c7, 0x0}, -+ {0x903c8, 0x1}, -+ {0x903c9, 0x8}, -+ {0x903ca, 0x0}, -+ {0x903cb, 0x100}, -+ {0x903cc, 0x809}, -+ {0x903cd, 0x9}, -+ {0x903ce, 0x500}, -+ {0x903cf, 0xc09}, -+ {0x903d0, 0x10}, -+ {0x903d1, 0x82b0}, -+ {0x903d2, 0x808}, -+ {0x903d3, 0x0}, -+ {0x903d4, 0x8520}, -+ {0x903d5, 0x808}, -+ {0x903d6, 0x8}, -+ {0x903d7, 0x3c8}, -+ {0x903d8, 0xc09}, -+ {0x903d9, 0x0}, -+ {0x903da, 0x150}, -+ {0x903db, 0x809}, -+ {0x903dc, 0x2}, -+ {0x903dd, 0x370}, -+ {0x903de, 0x809}, -+ {0x903df, 0x0}, -+ {0x903e0, 0x400}, -+ {0x903e1, 0x80e}, -+ {0x903e2, 0x8}, -+ {0x903e3, 0xc848}, -+ {0x903e4, 0xc0c}, -+ {0x903e5, 0x0}, -+ {0x903e6, 0xc890}, -+ {0x903e7, 0x804}, -+ {0x903e8, 0x20}, -+ {0x903e9, 0x8302}, -+ {0x903ea, 0xb}, -+ {0x903eb, 0x18}, -+ {0x903ec, 0x8582}, -+ {0x903ed, 0x8}, -+ {0x903ee, 0x0}, -+ {0x903ef, 0x82b0}, -+ {0x903f0, 0x808}, -+ {0x903f1, 0x1000}, -+ {0x903f2, 0x8539}, -+ {0x903f3, 0x808}, -+ {0x903f4, 0x0}, -+ {0x903f5, 0x8588}, -+ {0x903f6, 0x808}, -+ {0x903f7, 0x40}, -+ {0x903f8, 0x85c8}, -+ {0x903f9, 0x808}, -+ {0x903fa, 0x7f8}, -+ {0x903fb, 0xfdf0}, -+ {0x903fc, 0x808}, -+ {0x903fd, 0x800}, -+ {0x903fe, 0xc5f0}, -+ {0x903ff, 0x808}, -+ {0x90400, 0x80}, -+ {0x90401, 0x8088}, -+ {0x90402, 0x80b}, -+ {0x90403, 0x1ff8}, -+ {0x90404, 0xfdd8}, -+ {0x90405, 0xc08}, -+ {0x90406, 0x18}, -+ {0x90407, 0xfda8}, -+ {0x90408, 0x808}, -+ {0x90409, 0x200}, -+ {0x9040a, 0x8520}, -+ {0x9040b, 0x8d8}, -+ {0x9040c, 0x400}, -+ {0x9040d, 0x8520}, -+ {0x9040e, 0x8e8}, -+ {0x9040f, 0x2da}, -+ {0x90410, 0x100}, -+ {0x90411, 0x8d9}, -+ {0x90412, 0x2ea}, -+ {0x90413, 0x100}, -+ {0x90414, 0x8e9}, -+ {0x90415, 0x2}, -+ {0x90416, 0x1}, -+ {0x90417, 0x8}, -+ {0x90418, 0x0}, -+ {0x90419, 0x100}, -+ {0x9041a, 0x809}, -+ {0x9041b, 0x1ff8}, -+ {0x9041c, 0xfdd8}, -+ {0x9041d, 0xc08}, -+ {0x9041e, 0x8}, -+ {0x9041f, 0xfda8}, -+ {0x90420, 0x808}, -+ {0x90421, 0xa00}, -+ {0x90422, 0x8520}, -+ {0x90423, 0x8d8}, -+ {0x90424, 0xc00}, -+ {0x90425, 0x8520}, -+ {0x90426, 0x8e8}, -+ {0x90427, 0x2da}, -+ {0x90428, 0x100}, -+ {0x90429, 0x8d9}, -+ {0x9042a, 0x2ea}, -+ {0x9042b, 0x100}, -+ {0x9042c, 0x8e9}, -+ {0x9042d, 0x0}, -+ {0x9042e, 0x1}, -+ {0x9042f, 0x8}, -+ {0x90430, 0x0}, -+ {0x90431, 0x100}, -+ {0x90432, 0x809}, -+ {0x90433, 0x9}, -+ {0x90434, 0x500}, -+ {0x90435, 0xc09}, -+ {0x90436, 0x10}, -+ {0x90437, 0x82b0}, -+ {0x90438, 0x808}, -+ {0x90439, 0x0}, -+ {0x9043a, 0x8520}, -+ {0x9043b, 0x808}, -+ {0x9043c, 0x8}, -+ {0x9043d, 0x3c8}, -+ {0x9043e, 0xc09}, -+ {0x9043f, 0x0}, -+ {0x90440, 0x150}, -+ {0x90441, 0x809}, -+ {0x90442, 0x2}, -+ {0x90443, 0x370}, -+ {0x90444, 0x809}, -+ {0x90445, 0x0}, -+ {0x90446, 0x400}, -+ {0x90447, 0x80e}, -+ {0x90448, 0x8}, -+ {0x90449, 0xc848}, -+ {0x9044a, 0xc0c}, -+ {0x9044b, 0x0}, -+ {0x9044c, 0xc890}, -+ {0x9044d, 0x804}, -+ {0x9044e, 0x1008}, -+ {0x9044f, 0x853b}, -+ {0x90450, 0x808}, -+ {0x90451, 0xc00}, -+ {0x90452, 0x8588}, -+ {0x90453, 0x808}, -+ {0x90454, 0x8}, -+ {0x90455, 0x85a8}, -+ {0x90456, 0x808}, -+ {0x90457, 0x8}, -+ {0x90458, 0x85c8}, -+ {0x90459, 0x808}, -+ {0x9045a, 0x60}, -+ {0x9045b, 0x138}, -+ {0x9045c, 0x809}, -+ {0x9045d, 0x18}, -+ {0x9045e, 0xc8}, -+ {0x9045f, 0x809}, -+ {0x90460, 0x0}, -+ {0x90461, 0xa4}, -+ {0x90462, 0x809}, -+ {0x90463, 0x0}, -+ {0x90464, 0x8510}, -+ {0x90465, 0x808}, -+ {0x90466, 0x2fa}, -+ {0x90467, 0x100}, -+ {0x90468, 0x8d9}, -+ {0x90469, 0x31a}, -+ {0x9046a, 0x100}, -+ {0x9046b, 0x8e9}, -+ {0x9046c, 0x2}, -+ {0x9046d, 0x1}, -+ {0x9046e, 0x8}, -+ {0x9046f, 0x2}, -+ {0x90470, 0x100}, -+ {0x90471, 0x809}, -+ {0x90472, 0x202}, -+ {0x90473, 0x8510}, -+ {0x90474, 0xc08}, -+ {0x90475, 0x50}, -+ {0x90476, 0xa2}, -+ {0x90477, 0x9}, -+ {0x90478, 0x0}, -+ {0x90479, 0x0}, -+ {0x9047a, 0x8}, -+ {0x9047b, 0x0}, -+ {0x9047c, 0x0}, -+ {0x9047d, 0x8}, -+ {0x9047e, 0x0}, -+ {0x9047f, 0x0}, -+ {0x90480, 0x8}, -+ {0x90481, 0x0}, -+ {0x90482, 0xc8}, -+ {0x90483, 0x809}, -+ {0x90484, 0xb}, -+ {0x90485, 0x508}, -+ {0x90486, 0x809}, -+ {0x90487, 0x8}, -+ {0x90488, 0x1900}, -+ {0x90489, 0xc09}, -+ {0x9048a, 0x2}, -+ {0x9048b, 0x0}, -+ {0x9048c, 0x8}, -+ {0x9048d, 0x0}, -+ {0x9048e, 0x508}, -+ {0x9048f, 0x809}, -+ {0x90490, 0x9}, -+ {0x90491, 0x500}, -+ {0x90492, 0xc09}, -+ {0x90493, 0x10}, -+ {0x90494, 0x82b0}, -+ {0x90495, 0x808}, -+ {0x90496, 0x0}, -+ {0x90497, 0x8520}, -+ {0x90498, 0x808}, -+ {0x90499, 0x8}, -+ {0x9049a, 0x3c8}, -+ {0x9049b, 0xc09}, -+ {0x9049c, 0x0}, -+ {0x9049d, 0x150}, -+ {0x9049e, 0x809}, -+ {0x9049f, 0x2}, -+ {0x904a0, 0x370}, -+ {0x904a1, 0x809}, -+ {0x904a2, 0x0}, -+ {0x904a3, 0x400}, -+ {0x904a4, 0x80e}, -+ {0x904a5, 0x8}, -+ {0x904a6, 0xc848}, -+ {0x904a7, 0xc0c}, -+ {0x904a8, 0x0}, -+ {0x904a9, 0xc890}, -+ {0x904aa, 0x804}, -+ {0x904ab, 0x20}, -+ {0x904ac, 0x8302}, -+ {0x904ad, 0xb}, -+ {0x904ae, 0x18}, -+ {0x904af, 0x8582}, -+ {0x904b0, 0x8}, -+ {0x904b1, 0x1000}, -+ {0x904b2, 0x8539}, -+ {0x904b3, 0x808}, -+ {0x904b4, 0x0}, -+ {0x904b5, 0x8588}, -+ {0x904b6, 0x808}, -+ {0x904b7, 0x40}, -+ {0x904b8, 0x85c8}, -+ {0x904b9, 0x808}, -+ {0x904ba, 0x8}, -+ {0x904bb, 0xfdf0}, -+ {0x904bc, 0x808}, -+ {0x904bd, 0x80}, -+ {0x904be, 0x8088}, -+ {0x904bf, 0x80b}, -+ {0x904c0, 0x0}, -+ {0x904c1, 0x3b8}, -+ {0x904c2, 0x869}, -+ {0x904c3, 0x1ff8}, -+ {0x904c4, 0xfdd8}, -+ {0x904c5, 0xc08}, -+ {0x904c6, 0x18}, -+ {0x904c7, 0xfda8}, -+ {0x904c8, 0x808}, -+ {0x904c9, 0x40}, -+ {0x904ca, 0x8520}, -+ {0x904cb, 0x8d8}, -+ {0x904cc, 0x80}, -+ {0x904cd, 0x8520}, -+ {0x904ce, 0x8e8}, -+ {0x904cf, 0x2da}, -+ {0x904d0, 0x100}, -+ {0x904d1, 0x8d9}, -+ {0x904d2, 0x2ea}, -+ {0x904d3, 0x100}, -+ {0x904d4, 0x8e9}, -+ {0x904d5, 0x2}, -+ {0x904d6, 0x1}, -+ {0x904d7, 0x8}, -+ {0x904d8, 0x0}, -+ {0x904d9, 0x100}, -+ {0x904da, 0x809}, -+ {0x904db, 0x1ff8}, -+ {0x904dc, 0xfdd8}, -+ {0x904dd, 0xc08}, -+ {0x904de, 0x8}, -+ {0x904df, 0xfda8}, -+ {0x904e0, 0x808}, -+ {0x904e1, 0x140}, -+ {0x904e2, 0x8520}, -+ {0x904e3, 0x8d8}, -+ {0x904e4, 0x180}, -+ {0x904e5, 0x8520}, -+ {0x904e6, 0x8e8}, -+ {0x904e7, 0x2da}, -+ {0x904e8, 0x100}, -+ {0x904e9, 0x8d9}, -+ {0x904ea, 0x2ea}, -+ {0x904eb, 0x100}, -+ {0x904ec, 0x8e9}, -+ {0x904ed, 0x0}, -+ {0x904ee, 0x1}, -+ {0x904ef, 0x8}, -+ {0x904f0, 0x0}, -+ {0x904f1, 0x100}, -+ {0x904f2, 0x809}, -+ {0x904f3, 0x9}, -+ {0x904f4, 0x500}, -+ {0x904f5, 0xc09}, -+ {0x904f6, 0x10}, -+ {0x904f7, 0x82b0}, -+ {0x904f8, 0x808}, -+ {0x904f9, 0x0}, -+ {0x904fa, 0x8520}, -+ {0x904fb, 0x808}, -+ {0x904fc, 0x8}, -+ {0x904fd, 0x3c8}, -+ {0x904fe, 0xc09}, -+ {0x904ff, 0x0}, -+ {0x90500, 0x150}, -+ {0x90501, 0x809}, -+ {0x90502, 0x2}, -+ {0x90503, 0x370}, -+ {0x90504, 0x809}, -+ {0x90505, 0x0}, -+ {0x90506, 0x400}, -+ {0x90507, 0x80e}, -+ {0x90508, 0x8}, -+ {0x90509, 0xc848}, -+ {0x9050a, 0xc0c}, -+ {0x9050b, 0x0}, -+ {0x9050c, 0xc890}, -+ {0x9050d, 0x804}, -+ {0xd00e7, 0x600}, -+ {0x9001c, 0x0}, -+ {0x90020, 0x75}, -+ {0x90024, 0x80}, -+ {0x90025, 0x2a}, -+ {0x90026, 0x2a}, -+ {0x9002b, 0x103}, -+ {0x90708, 0x118}, -+ {0x90700, 0x13e}, -+ {0x90701, 0x160}, -+ {0x90702, 0x17f}, -+ {0x90703, 0x11e}, -+ {0x90704, 0x0}, -+ {0x90705, 0x0}, -+ {0x90706, 0x0}, -+ {0x90707, 0x0}, -+ {0x2018a, 0x0}, -+ {0x20124, 0x1}, -+ {0x2018b, 0x16}, -+ {0x20125, 0x39}, -+ {0x2018c, 0x4e}, -+ {0x20126, 0x1}, -+ {0x2018d, 0x16}, -+ {0x20127, 0x39}, -+ {0x2018e, 0x4e}, -+ {0x20128, 0x17}, -+ {0x2018f, 0x27}, -+ {0x20129, 0x4f}, -+ {0x20190, 0x5f}, -+ {0x2012a, 0x17}, -+ {0x20191, 0x27}, -+ {0x2012b, 0x4f}, -+ {0x20192, 0x5f}, -+ {0x2012c, 0x28}, -+ {0x20193, 0x38}, -+ {0x2012d, 0x60}, -+ {0x20194, 0x70}, -+ {0x2012e, 0x28}, -+ {0x20195, 0x38}, -+ {0x2012f, 0x60}, -+ {0x20196, 0x70}, -+ {0x20130, 0x80}, -+ {0x20197, 0x80}, -+ {0x20131, 0x80}, -+ {0x20198, 0x80}, -+ {0x20132, 0x80}, -+ {0x20199, 0x80}, -+ {0x20133, 0x80}, -+ {0x2019a, 0x80}, -+ {0x20134, 0x71}, -+ {0x2019b, 0x74}, -+ {0x20135, 0x77}, -+ {0x2019c, 0x7a}, -+ {0x20136, 0x71}, -+ {0x2019d, 0x74}, -+ {0x20137, 0x77}, -+ {0x2019e, 0x7a}, -+ {0x20138, 0x75}, -+ {0x2019f, 0x76}, -+ {0x20139, 0x7b}, -+ {0x201a0, 0x7c}, -+ {0x2013a, 0x75}, -+ {0x201a1, 0x76}, -+ {0x2013b, 0x7b}, -+ {0x201a2, 0x7c}, -+ {0x2013c, 0x7d}, -+ {0x201a3, 0x7e}, -+ {0x2013d, 0x7d}, -+ {0x201a4, 0x7e}, -+ {0x2013e, 0x7d}, -+ {0x201a5, 0x7e}, -+ {0x2013f, 0x7d}, -+ {0x201a6, 0x7e}, -+ {0x20140, 0x7f}, -+ {0x201a7, 0x7f}, -+ {0x20141, 0x7f}, -+ {0x201a8, 0x7f}, -+ {0x20142, 0x7f}, -+ {0x201a9, 0x7f}, -+ {0x20143, 0x7f}, -+ {0x201aa, 0x7f}, -+ {0x20144, 0x80}, -+ {0x201ab, 0x7f}, -+ {0x20145, 0x80}, -+ {0x201ac, 0x7f}, -+ {0x20146, 0x80}, -+ {0x201ad, 0x7f}, -+ {0x20147, 0x80}, -+ {0x201ae, 0x7f}, -+ {0x20148, 0x81}, -+ {0x201af, 0x93}, -+ {0x20149, 0x81}, -+ {0x201b0, 0x93}, -+ {0x2014a, 0x10a}, -+ {0x201b1, 0x11b}, -+ {0x2014b, 0x10a}, -+ {0x201b2, 0x11b}, -+ {0x2014c, 0x94}, -+ {0x201b3, 0x9b}, -+ {0x2014d, 0x94}, -+ {0x201b4, 0x9b}, -+ {0x2014e, 0x11c}, -+ {0x201b5, 0x122}, -+ {0x2014f, 0x11c}, -+ {0x201b6, 0x122}, -+ {0x20150, 0x9c}, -+ {0x201b7, 0xaf}, -+ {0x20151, 0x9c}, -+ {0x201b8, 0xaf}, -+ {0x20152, 0x123}, -+ {0x201b9, 0x132}, -+ {0x20153, 0x123}, -+ {0x201ba, 0x132}, -+ {0x20154, 0xb0}, -+ {0x201bb, 0xc0}, -+ {0x20155, 0xb0}, -+ {0x201bc, 0xc0}, -+ {0x20156, 0x133}, -+ {0x201bd, 0x143}, -+ {0x20157, 0x133}, -+ {0x201be, 0x143}, -+ {0x20158, 0xc1}, -+ {0x201bf, 0xca}, -+ {0x20159, 0xc1}, -+ {0x201c0, 0xca}, -+ {0x2015a, 0x144}, -+ {0x201c1, 0x14d}, -+ {0x2015b, 0x144}, -+ {0x201c2, 0x14d}, -+ {0x2015c, 0xcb}, -+ {0x201c3, 0xd4}, -+ {0x2015d, 0xcb}, -+ {0x201c4, 0xd4}, -+ {0x2015e, 0x14e}, -+ {0x201c5, 0x157}, -+ {0x2015f, 0x14e}, -+ {0x201c6, 0x157}, -+ {0x20160, 0xd5}, -+ {0x201c7, 0xdf}, -+ {0x20161, 0xd5}, -+ {0x201c8, 0xdf}, -+ {0x20162, 0x158}, -+ {0x201c9, 0x161}, -+ {0x20163, 0x158}, -+ {0x201ca, 0x161}, -+ {0x20164, 0xe0}, -+ {0x201cb, 0xee}, -+ {0x20165, 0xe0}, -+ {0x201cc, 0xee}, -+ {0x20166, 0x162}, -+ {0x201cd, 0x170}, -+ {0x20167, 0x162}, -+ {0x201ce, 0x170}, -+ {0x20168, 0xef}, -+ {0x201cf, 0xf9}, -+ {0x20169, 0xef}, -+ {0x201d0, 0xf9}, -+ {0x2016a, 0x171}, -+ {0x201d1, 0x17a}, -+ {0x2016b, 0x171}, -+ {0x201d2, 0x17a}, -+ {0x2016c, 0xfa}, -+ {0x201d3, 0x108}, -+ {0x2016d, 0xfa}, -+ {0x201d4, 0x108}, -+ {0x2016e, 0x17b}, -+ {0x201d5, 0x189}, -+ {0x2016f, 0x17b}, -+ {0x201d6, 0x189}, -+ {0x20170, 0x109}, -+ {0x201d7, 0x109}, -+ {0x20171, 0x109}, -+ {0x201d8, 0x109}, -+ {0x20172, 0x18a}, -+ {0x201d9, 0x18a}, -+ {0x20173, 0x18a}, -+ {0x201da, 0x18a}, -+ {0x41613, 0xb00}, -+ {0x41617, 0x0}, -+ {0x4163b, 0xb00}, -+ {0x4163f, 0x0}, -+ {0x41663, 0xb00}, -+ {0x41667, 0x0}, -+ {0x4168b, 0xb00}, -+ {0x4168f, 0x0}, -+ {0x41723, 0xb00}, -+ {0x41727, 0x0}, -+ {0x4174b, 0xb00}, -+ {0x4174f, 0x0}, -+ {0x417f3, 0xb00}, -+ {0x417f7, 0x0}, -+ {0x4181b, 0xb00}, -+ {0x4181f, 0x0}, -+ {0x41a2b, 0x6b00}, -+ {0x41a2f, 0x0}, -+ {0x41a53, 0x2b00}, -+ {0x41a57, 0x800}, -+ {0x41a7b, 0x6b00}, -+ {0x41a7f, 0x0}, -+ {0x41aa3, 0x2b00}, -+ {0x41aa7, 0x800}, -+ {0x41b33, 0x6b00}, -+ {0x41b37, 0x0}, -+ {0x41b5b, 0x2b00}, -+ {0x41b5f, 0x800}, -+ {0x41bfb, 0x6b00}, -+ {0x41bff, 0x0}, -+ {0x41c23, 0x2b00}, -+ {0x41c27, 0x800}, -+ {0x41008, 0xc9d8}, -+ {0x41009, 0x0}, -+ {0x4100a, 0x0}, -+ {0x4100b, 0x0}, -+ {0x4100c, 0xc808}, -+ {0x4100d, 0x0}, -+ {0x4100e, 0x0}, -+ {0x4100f, 0x0}, -+ {0x41010, 0x0}, -+ {0x41011, 0x0}, -+ {0x41012, 0x0}, -+ {0x41013, 0x2b00}, -+ {0x41014, 0x0}, -+ {0x41015, 0x0}, -+ {0x41016, 0x0}, -+ {0x41017, 0x0}, -+ {0x41018, 0xc958}, -+ {0x41019, 0x0}, -+ {0x4101a, 0x0}, -+ {0x4101b, 0x0}, -+ {0x4101c, 0xcd88}, -+ {0x4101d, 0x0}, -+ {0x4101e, 0x0}, -+ {0x4101f, 0x0}, -+ {0x41020, 0x0}, -+ {0x41021, 0x0}, -+ {0x41022, 0x0}, -+ {0x41023, 0x2b00}, -+ {0x41024, 0x0}, -+ {0x41025, 0x0}, -+ {0x41026, 0x0}, -+ {0x41027, 0x0}, -+ {0x41028, 0xc0d8}, -+ {0x41029, 0x0}, -+ {0x4102a, 0x0}, -+ {0x4102b, 0x0}, -+ {0x4102c, 0xd848}, -+ {0x4102d, 0x0}, -+ {0x4102e, 0x0}, -+ {0x4102f, 0x0}, -+ {0x41030, 0x0}, -+ {0x41031, 0x0}, -+ {0x41032, 0x0}, -+ {0x41033, 0x2b00}, -+ {0x41034, 0x0}, -+ {0x41035, 0x0}, -+ {0x41036, 0x0}, -+ {0x41037, 0x0}, -+ {0x41038, 0xc158}, -+ {0x41039, 0x0}, -+ {0x4103a, 0x0}, -+ {0x4103b, 0x0}, -+ {0x4103c, 0xddc8}, -+ {0x4103d, 0x0}, -+ {0x4103e, 0x0}, -+ {0x4103f, 0x0}, -+ {0x41040, 0x0}, -+ {0x41041, 0x0}, -+ {0x41042, 0x0}, -+ {0x41043, 0x2b00}, -+ {0x41044, 0x0}, -+ {0x41045, 0x0}, -+ {0x41046, 0x0}, -+ {0x41047, 0x0}, -+ {0x41048, 0xc1d8}, -+ {0x41049, 0x0}, -+ {0x4104a, 0x0}, -+ {0x4104b, 0x0}, -+ {0x4104c, 0xc308}, -+ {0x4104d, 0x0}, -+ {0x4104e, 0x0}, -+ {0x4104f, 0x0}, -+ {0x41050, 0x0}, -+ {0x41051, 0x0}, -+ {0x41052, 0x0}, -+ {0x41053, 0x2b00}, -+ {0x41054, 0x0}, -+ {0x41055, 0x0}, -+ {0x41056, 0x0}, -+ {0x41057, 0x0}, -+ {0x41058, 0xc558}, -+ {0x41059, 0x0}, -+ {0x4105a, 0x0}, -+ {0x4105b, 0x0}, -+ {0x4105c, 0xea08}, -+ {0x4105d, 0x0}, -+ {0x4105e, 0x0}, -+ {0x4105f, 0x0}, -+ {0x41060, 0x0}, -+ {0x41061, 0x0}, -+ {0x41062, 0x0}, -+ {0x41063, 0x2b00}, -+ {0x41064, 0x0}, -+ {0x41065, 0x0}, -+ {0x41066, 0x0}, -+ {0x41067, 0x0}, -+ {0x41068, 0xc5d8}, -+ {0x41069, 0x0}, -+ {0x4106a, 0x0}, -+ {0x4106b, 0x0}, -+ {0x4106c, 0xe308}, -+ {0x4106d, 0x0}, -+ {0x4106e, 0x0}, -+ {0x4106f, 0x0}, -+ {0x41070, 0x0}, -+ {0x41071, 0x0}, -+ {0x41072, 0x0}, -+ {0x41073, 0x2b00}, -+ {0x41074, 0x0}, -+ {0x41075, 0x0}, -+ {0x41076, 0x0}, -+ {0x41077, 0x0}, -+ {0x41078, 0x48d8}, -+ {0x41079, 0x0}, -+ {0x4107a, 0x0}, -+ {0x4107b, 0x0}, -+ {0x4107c, 0x4208}, -+ {0x4107d, 0x0}, -+ {0x4107e, 0x0}, -+ {0x4107f, 0x0}, -+ {0x41080, 0x88d8}, -+ {0x41081, 0x0}, -+ {0x41082, 0x0}, -+ {0x41083, 0x0}, -+ {0x41084, 0x9608}, -+ {0x41085, 0x0}, -+ {0x41086, 0x0}, -+ {0x41087, 0x0}, -+ {0x41088, 0x0}, -+ {0x41089, 0x0}, -+ {0x4108a, 0x0}, -+ {0x4108b, 0x2b00}, -+ {0x4108c, 0x0}, -+ {0x4108d, 0x0}, -+ {0x4108e, 0x0}, -+ {0x4108f, 0x0}, -+ {0x41090, 0xca58}, -+ {0x41091, 0x0}, -+ {0x41092, 0x0}, -+ {0x41093, 0x0}, -+ {0x41094, 0xc108}, -+ {0x41095, 0x0}, -+ {0x41096, 0x0}, -+ {0x41097, 0x0}, -+ {0x41098, 0x0}, -+ {0x41099, 0x0}, -+ {0x4109a, 0x0}, -+ {0x4109b, 0x2b00}, -+ {0x4109c, 0x0}, -+ {0x4109d, 0x0}, -+ {0x4109e, 0x0}, -+ {0x4109f, 0x0}, -+ {0x410a0, 0xcb58}, -+ {0x410a1, 0x0}, -+ {0x410a2, 0x0}, -+ {0x410a3, 0x0}, -+ {0x410a4, 0xc008}, -+ {0x410a5, 0x0}, -+ {0x410a6, 0x0}, -+ {0x410a7, 0x0}, -+ {0x410a8, 0x0}, -+ {0x410a9, 0x0}, -+ {0x410aa, 0x0}, -+ {0x410ab, 0x2b00}, -+ {0x410ac, 0x0}, -+ {0x410ad, 0x0}, -+ {0x410ae, 0x0}, -+ {0x410af, 0x0}, -+ {0x410b0, 0xd4d8}, -+ {0x410b1, 0x0}, -+ {0x410b2, 0x0}, -+ {0x410b3, 0x0}, -+ {0x410b4, 0xc008}, -+ {0x410b5, 0x0}, -+ {0x410b6, 0x0}, -+ {0x410b7, 0x0}, -+ {0xc0001, 0x5061}, -+ {0xc0002, 0x7098}, -+ {0xc0003, 0x0}, -+ {0xc0000, 0xbedc}, -+ {0xc0006, 0xb0db}, -+ {0xc0007, 0x0}, -+ {0x9070c, 0x0}, -+ {0x9070d, 0x7ff}, -+ {0x9070e, 0x668}, -+ {0x90c13, 0x0}, -+ {0x9070f, 0x7910}, -+ {0x90710, 0x355e}, -+ {0x90711, 0xcbb5}, -+ {0x90713, 0xffff}, -+ {0x90714, 0x710}, -+ {0x90715, 0x7800}, -+ {0x90c12, 0xff10}, -+ {0x90712, 0x2ee8}, -+ {0x90716, 0xffdf}, -+ {0x90717, 0x6f10}, -+ {0x90718, 0x6f10}, -+ {0x90719, 0x2868}, -+ {0x9071a, 0x2868}, -+ {0x9071b, 0xfeef}, -+ {0x90904, 0xe400}, -+ {0x90986, 0xe400}, -+ {0x90920, 0x0}, -+ {0x90921, 0x0}, -+ {0x90922, 0x0}, -+ {0x90923, 0x0}, -+ {0x90924, 0xff00}, -+ {0x90925, 0xff00}, -+ {0x90926, 0xff00}, -+ {0x90927, 0xff00}, -+ {0x90930, 0x4000}, -+ {0x90931, 0x2000}, -+ {0x90932, 0xff00}, -+ {0x90933, 0xff00}, -+ {0x9090a, 0x0}, -+ {0x9090c, 0x0}, -+ {0x9090d, 0x1}, -+ {0x200f0, 0x27f7}, -+ {0x200f1, 0x2108}, -+ {0x200f2, 0x2108}, -+ {0x100b9, 0x1}, -+ {0x100b1, 0x180}, -+ {0x100ba, 0x1}, -+ {0x100a2, 0x0}, -+ {0x100b5, 0x1}, -+ {0x110b9, 0x1}, -+ {0x110b1, 0x180}, -+ {0x110ba, 0x1}, -+ {0x110a2, 0x0}, -+ {0x110b5, 0x1}, -+ {0x120b9, 0x1}, -+ {0x120b1, 0x180}, -+ {0x120ba, 0x1}, -+ {0x120a2, 0x0}, -+ {0x120b5, 0x1}, -+ {0x130b9, 0x1}, -+ {0x130b1, 0x180}, -+ {0x130ba, 0x1}, -+ {0x130a2, 0x0}, -+ {0x130b5, 0x1}, -+ {0x70024, 0x5a3c}, -+ {0x70025, 0x5a3c}, -+ {0x70026, 0x5a3c}, -+ {0x70027, 0x5a3c}, -+ {0x70028, 0x5a3c}, -+ {0x70029, 0x5a3c}, -+ {0x7002a, 0x5a3c}, -+ {0x7002b, 0x5a3c}, -+ {0x70124, 0x5a3c}, -+ {0x70125, 0x5a3c}, -+ {0x70126, 0x5a3c}, -+ {0x70127, 0x5a3c}, -+ {0x70128, 0x5a3c}, -+ {0x70129, 0x5a3c}, -+ {0x7012a, 0x5a3c}, -+ {0x7012b, 0x5a3c}, -+ {0x70224, 0x5a3c}, -+ {0x70225, 0x5a3c}, -+ {0x70226, 0x5a3c}, -+ {0x70227, 0x5a3c}, -+ {0x70228, 0x5a3c}, -+ {0x70229, 0x5a3c}, -+ {0x7022a, 0x5a3c}, -+ {0x7022b, 0x5a3c}, -+ {0x70324, 0x5a3c}, -+ {0x70325, 0x5a3c}, -+ {0x70326, 0x5a3c}, -+ {0x70327, 0x5a3c}, -+ {0x70328, 0x5a3c}, -+ {0x70329, 0x5a3c}, -+ {0x7032a, 0x5a3c}, -+ {0x7032b, 0x5a3c}, -+ {0x70424, 0x5a3c}, -+ {0x70425, 0x5a3c}, -+ {0x70426, 0x5a3c}, -+ {0x70427, 0x5a3c}, -+ {0x70428, 0x5a3c}, -+ {0x70429, 0x5a3c}, -+ {0x7042a, 0x5a3c}, -+ {0x7042b, 0x5a3c}, -+ {0x70524, 0x5a3c}, -+ {0x70525, 0x5a3c}, -+ {0x70526, 0x5a3c}, -+ {0x70527, 0x5a3c}, -+ {0x70528, 0x5a3c}, -+ {0x70529, 0x5a3c}, -+ {0x7052a, 0x5a3c}, -+ {0x7052b, 0x5a3c}, -+ {0x70624, 0x5a3c}, -+ {0x70625, 0x5a3c}, -+ {0x70626, 0x5a3c}, -+ {0x70627, 0x5a3c}, -+ {0x70628, 0x5a3c}, -+ {0x70629, 0x5a3c}, -+ {0x7062a, 0x5a3c}, -+ {0x7062b, 0x5a3c}, -+ {0x70724, 0x5a3c}, -+ {0x70725, 0x5a3c}, -+ {0x70726, 0x5a3c}, -+ {0x70727, 0x5a3c}, -+ {0x70728, 0x5a3c}, -+ {0x70729, 0x5a3c}, -+ {0x7072a, 0x5a3c}, -+ {0x7072b, 0x5a3c}, -+ {0x70824, 0x5a3c}, -+ {0x70825, 0x5a3c}, -+ {0x70826, 0x5a3c}, -+ {0x70827, 0x5a3c}, -+ {0x70828, 0x5a3c}, -+ {0x70829, 0x5a3c}, -+ {0x7082a, 0x5a3c}, -+ {0x7082b, 0x5a3c}, -+ {0x70065, 0x1ff}, -+ {0x2007e, 0x33}, -+ {0x200ef, 0xffff}, -+ {0x90910, 0x2}, -+ {0x20310, 0x1}, -+ {0x20311, 0x1}, -+ {0xc0080, 0x2}, -+ {0xd0003, 0x0}, -+}; -+ -+static struct dram_fsp_msg ddr_dram_fsp_msg[] = { -+ { -+ /* P0 6400mts */ -+ .drate = 6400, -+ .ssc = false, -+ .fsp_phy_cfg = ddr_phy_fsp0_cfg, -+ .fsp_phy_cfg_num = ARRAY_SIZE(ddr_phy_fsp0_cfg), -+ .fw_type = FW_1D_IMAGE, -+ .fsp_phy_msgh_cfg = ddr_phy_msgh_fsp0_cfg, -+ .fsp_phy_msgh_cfg_num = ARRAY_SIZE(ddr_phy_msgh_fsp0_cfg), -+ .fsp_phy_pie_cfg = ddr_phy_pie_fsp0_cfg, -+ .fsp_phy_pie_cfg_num = ARRAY_SIZE(ddr_phy_pie_fsp0_cfg), -+ }, -+}; -+ -+/* dram fsp cfg */ -+static struct dram_fsp_cfg ddr_dram_fsp_cfg[] = { -+ { -+ .ddrc_cfg = ddr_dram_fsp0_ddrc_cfg, -+ .ddrc_cfg_num = ARRAY_SIZE(ddr_dram_fsp0_ddrc_cfg), -+ .bypass = 0, -+ }, -+}; -+ -+/* ddr timing config params */ -+struct dram_timing_info dram_timing = { -+ .ddrc_cfg = ddr_ddrc_cfg, -+ .ddrc_cfg_num = ARRAY_SIZE(ddr_ddrc_cfg), -+ .ddrphy_cfg = ddr_ddrphy_cfg, -+ .ddrphy_cfg_num = ARRAY_SIZE(ddr_ddrphy_cfg), -+ .fsp_msg = ddr_dram_fsp_msg, -+ .fsp_msg_num = ARRAY_SIZE(ddr_dram_fsp_msg), -+ .ddrphy_trained_csr = ddr_ddrphy_trained_csr, -+ .ddrphy_trained_csr_num = ARRAY_SIZE(ddr_ddrphy_trained_csr), -+ .ddrphy_pie = ddr_phy_pie, -+ .ddrphy_pie_num = ARRAY_SIZE(ddr_phy_pie), -+ .fsp_table = { 6400, }, -+ .fsp_cfg = ddr_dram_fsp_cfg, -+ .fsp_cfg_num = ARRAY_SIZE(ddr_dram_fsp_cfg), -+}; diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei_1.0.0.bbappend b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei_1.0.0.bbappend index 7dc2208b5..cc0bd1045 100644 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei_1.0.0.bbappend +++ b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-oei/imx-oei_1.0.0.bbappend @@ -1,10 +1,12 @@ -# Copyright (C) 2025, Digi International Inc. +# Copyright (C) 2025,2026 Digi International Inc. -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" +# Select internal or Github imx-oei repo +IMX_OEI_URI_STASH = "${DIGI_MTK_GIT}/emp/imx-oei.git;protocol=ssh" +IMX_OEI_URI_GITHUB = "${DIGI_GITHUB_GIT}/imx-oei.git;protocol=https" +IMX_OEI_SRC:dey = "${@oe.utils.conditional('DIGI_INTERNAL_GIT', '1', '${IMX_OEI_URI_STASH}', '${IMX_OEI_URI_GITHUB}', d)}" -SRC_URI:append:dey = " \ - file://0001-boards-ccimx95-add-platform-as-a-clone-of-mx95lp5.patch \ - file://0002-ddr-add-DDR-configuration-file-for-ccimx95.patch \ - file://0003-ccimx95-configure-console-on-LPUART6.patch \ - file://0004-ccimx95-add-DDR-configuration-file-for-ccimx95-B0-si.patch \ -" +SRCBRANCH:dey = "dey/scarthgap/lf-6.6.52-2.2.2" +# NXP's 'lf-6.6.52_2.2.2' release + patches +SRCREV:dey = "0a1fbc5ce9c4bed08d0add95c911749e56a7d57a" + +OEI_DEBUG:dey = "1" diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc new file mode 100644 index 000000000..1d23a22cd --- /dev/null +++ b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager.inc @@ -0,0 +1,44 @@ +# Set generic compiler for system manager core +INHIBIT_DEFAULT_DEPS = "1" +DEPENDS = "${SM_COMPILER}" +SM_COMPILER ?= "gcc-arm-none-eabi-native" +PROVIDES += "virtual/imx-system-manager" + +inherit deploy + +PACKAGE_ARCH = "${MACHINE_ARCH}" + +# Set monitor mode for none, one, or two +PACKAGECONFIG[m0] = "M=0,,,,,m1 m2" +PACKAGECONFIG[m1] = ",,,,,m0 m2" +PACKAGECONFIG[m2] = "M=2,,,,,m0 m1" + +SYSTEM_MANAGER_CONFIG ?= "INVALID" + +LDFLAGS[unexport] = "1" + +EXTRA_OEMAKE = " \ + V=1 \ + SM_CROSS_COMPILE=arm-none-eabi- \ + ${PACKAGECONFIG_CONFARGS} \ +" + +do_configure() { + oe_runmake config=${SYSTEM_MANAGER_CONFIG} clean + oe_runmake config=${SYSTEM_MANAGER_CONFIG} cfg +} + +do_compile() { + oe_runmake config=${SYSTEM_MANAGER_CONFIG} +} + +do_install[noexec] = "1" + +addtask deploy after do_compile +do_deploy() { + install -D -p -m 0644 \ + ${B}/build/${SYSTEM_MANAGER_CONFIG}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}.bin \ + ${DEPLOYDIR}/${SYSTEM_MANAGER_FIRMWARE_BASENAME}-${SYSTEM_MANAGER_CONFIG}.bin +} + +COMPATIBLE_MACHINE = "(mx95-generic-bsp)" diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0001-ccimx95dvk-add-new-platform-config-and-board.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0001-ccimx95dvk-add-new-platform-config-and-board.patch deleted file mode 100644 index 1600622b0..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0001-ccimx95dvk-add-new-platform-config-and-board.patch +++ /dev/null @@ -1,6195 +0,0 @@ -From: Javier Viguera -Date: Mon, 15 Sep 2025 11:54:08 +0200 -Subject: [PATCH] ccimx95dvk: add new platform (config and board) - -Verbatim copy of the mx95evk - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Javier Viguera ---- - boards/ccimx95dvk/board.c | 579 ++++++++++++++ - boards/ccimx95dvk/board.h | 164 ++++ - boards/ccimx95dvk/pin_mux.c | 58 ++ - boards/ccimx95dvk/pin_mux.h | 44 ++ - boards/ccimx95dvk/sm/Makefile | 70 ++ - boards/ccimx95dvk/sm/brd_sm.c | 665 +++++++++++++++++ - boards/ccimx95dvk/sm/brd_sm.dox | 55 ++ - boards/ccimx95dvk/sm/brd_sm.h | 100 +++ - boards/ccimx95dvk/sm/brd_sm_bbm.c | 674 +++++++++++++++++ - boards/ccimx95dvk/sm/brd_sm_bbm.h | 242 ++++++ - boards/ccimx95dvk/sm/brd_sm_control.c | 317 ++++++++ - boards/ccimx95dvk/sm/brd_sm_control.h | 202 +++++ - boards/ccimx95dvk/sm/brd_sm_handlers.c | 372 +++++++++ - boards/ccimx95dvk/sm/brd_sm_handlers.h | 129 ++++ - boards/ccimx95dvk/sm/brd_sm_sensor.c | 375 ++++++++++ - boards/ccimx95dvk/sm/brd_sm_sensor.h | 210 ++++++ - boards/ccimx95dvk/sm/brd_sm_voltage.c | 565 ++++++++++++++ - boards/ccimx95dvk/sm/brd_sm_voltage.h | 213 ++++++ - configs/ccimx95dvk.cfg | 997 +++++++++++++++++++++++++ - 19 files changed, 6031 insertions(+) - create mode 100755 boards/ccimx95dvk/board.c - create mode 100755 boards/ccimx95dvk/board.h - create mode 100755 boards/ccimx95dvk/pin_mux.c - create mode 100755 boards/ccimx95dvk/pin_mux.h - create mode 100755 boards/ccimx95dvk/sm/Makefile - create mode 100755 boards/ccimx95dvk/sm/brd_sm.c - create mode 100755 boards/ccimx95dvk/sm/brd_sm.dox - create mode 100755 boards/ccimx95dvk/sm/brd_sm.h - create mode 100755 boards/ccimx95dvk/sm/brd_sm_bbm.c - create mode 100755 boards/ccimx95dvk/sm/brd_sm_bbm.h - create mode 100755 boards/ccimx95dvk/sm/brd_sm_control.c - create mode 100755 boards/ccimx95dvk/sm/brd_sm_control.h - create mode 100755 boards/ccimx95dvk/sm/brd_sm_handlers.c - create mode 100755 boards/ccimx95dvk/sm/brd_sm_handlers.h - create mode 100755 boards/ccimx95dvk/sm/brd_sm_sensor.c - create mode 100755 boards/ccimx95dvk/sm/brd_sm_sensor.h - create mode 100755 boards/ccimx95dvk/sm/brd_sm_voltage.c - create mode 100755 boards/ccimx95dvk/sm/brd_sm_voltage.h - create mode 100755 configs/ccimx95dvk.cfg - -diff --git a/boards/ccimx95dvk/board.c b/boards/ccimx95dvk/board.c -new file mode 100755 -index 000000000000..d4a671f6d7f8 ---- /dev/null -+++ b/boards/ccimx95dvk/board.c -@@ -0,0 +1,579 @@ -+/* -+ * Copyright 2023-2025 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ */ -+ -+#include "sm.h" -+#include "board.h" -+#include "brd_sm_voltage.h" -+#include "fsl_lpuart.h" -+#include "fsl_lpi2c.h" -+#include "fsl_ccm.h" -+#include "fsl_clock.h" -+#include "fsl_bbnsm.h" -+#include "fsl_reset.h" -+#include "fsl_sysctr.h" -+#include "fsl_systick.h" -+#include "fsl_wdog32.h" -+#include "fsl_cache.h" -+#include "fsl_iomuxc.h" -+#include "fsl_fro.h" -+ -+/******************************************************************************* -+ * Definitions -+ ******************************************************************************/ -+ -+/* External board-level clock rates */ -+#define BOARD_EXT_CLK_RATE 25000000UL /* 25MHz */ -+ -+/* ADC clck rate */ -+#define BOARD_ADC_CLK_RATE 80000000UL /* 80MHz */ -+ -+/* SM SysTick parameters */ -+#define BOARD_SYSTICK_CLKSRC 0U /* 0 = external ref */ -+#define BOARD_SYSTICK_CLK_ROOT CLOCK_ROOT_M33SYSTICK /* Dedicated CCM root */ -+ -+/* SM WDOG */ -+#define BOARD_WDOG_BASE_PTR WDOG2 -+#define BOARD_WDOG_IRQn WDOG2_IRQn -+#define BOARD_WDOG_CLK_SRC kWDOG32_ClockSource1 /* lpo_clk @ 32K */ -+#define BOARD_WDOG_TIMEOUT 0xFFFFU /* 65535 ticks @ 32K = 2 sec */ -+#define BOARD_WDOG_SRMASK (1UL << RST_REASON_WDOG2) -+#define BOARD_WDOG_ANY_INIT ~(BLK_CTRL_S_AONMIX_WDOG_ANY_MASK_WDOG2_MASK) -+#define BOARD_WDOG_ANY_MASK BLK_CTRL_S_AONMIX_WDOG_ANY_MASK_WDOG2_MASK -+#define BOARD_WDOG_IPG_DEBUG BLK_CTRL_NS_AONMIX_IPG_DEBUG_CM33_WDOG2_MASK -+ -+/* Board UART */ -+#ifdef INC_LIBC -+#define BOARD_UART BOARD_DEBUG_UART_INSTANCE -+#else -+#define BOARD_UART 0U -+#endif -+ -+/******************************************************************************* -+ * Variables -+ ******************************************************************************/ -+static wdog32_config_t s_wdogConfig; -+ -+/* Debug UART base pointer list */ -+static LPUART_Type *const s_uartBases[] = LPUART_BASE_PTRS; -+ -+/* Debug UART base pointer list */ -+static IRQn_Type const s_uartIrqs[] = LPUART_RX_TX_IRQS; -+ -+/* Debug UART clock list */ -+static uint32_t const s_uartClks[] = -+{ -+ 0U, -+ CLOCK_ROOT_LPUART1, -+ CLOCK_ROOT_LPUART2, -+ CLOCK_ROOT_LPUART3, -+ CLOCK_ROOT_LPUART4, -+ CLOCK_ROOT_LPUART5, -+ CLOCK_ROOT_LPUART6, -+ CLOCK_ROOT_LPUART7, -+ CLOCK_ROOT_LPUART8 -+}; -+ -+/* Debug UART peripheral LPI list */ -+static uint32_t const s_uartPerLpi[] = -+{ -+ 0U, -+ CPU_PER_LPI_IDX_LPUART1, -+ CPU_PER_LPI_IDX_LPUART2, -+ CPU_PER_LPI_IDX_LPUART3, -+ CPU_PER_LPI_IDX_LPUART4, -+ CPU_PER_LPI_IDX_LPUART5, -+ CPU_PER_LPI_IDX_LPUART6, -+ CPU_PER_LPI_IDX_LPUART7, -+ CPU_PER_LPI_IDX_LPUART8 -+}; -+ -+/* Debug UART configuration info */ -+static board_uart_config_t const s_uartConfig = -+{ -+ .base = s_uartBases[BOARD_UART], -+ .irq = s_uartIrqs[BOARD_UART], -+ .clockId = s_uartClks[BOARD_UART], -+ .perLpiId = s_uartPerLpi[BOARD_UART], -+ .baud = BOARD_DEBUG_UART_BAUDRATE, -+ .inst = BOARD_UART -+}; -+ -+/******************************************************************************* -+ * Code -+ ******************************************************************************/ -+ -+/*--------------------------------------------------------------------------*/ -+/* Configure CM33 MPU and XCACHE controller */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_ConfigMPU(void) -+{ -+ uint8_t attr; -+ -+ /* Disable code cache(ICache) and system cache(DCache) */ -+ XCACHE_DisableCache(LPCAC_PC); -+ XCACHE_DisableCache(LPCAC_PS); -+ -+ /* NOTE: All TCRAM is non-cacheable regardless of MPU setting. */ -+ -+ /* -+ * default cache policy(default memory access behavior) after enable -+ * mpu on cortex-m33(according to RM of cortex-m33): -+ * 0x00000000-0x1FFFFFFF Normal memory, Non-shareable, Write-Through, -+ * not Write Allocate -+ * 0x20000000-0x3FFFFFFF Normal memory, Non-shareable, Write-Back, -+ * Write Allocate -+ * 0x40000000-0x5FFFFFFF Device, Shareable -+ * 0x60000000-0x7FFFFFFF Normal memory, Non-shareable, Write-Back, -+ * Write Allocate -+ * 0x80000000-0x9FFFFFFF Normal memory, Non-shareable, Write-Through, -+ * not Write Allocate -+ * 0xA0000000-0xDFFFFFFF Device, Shareable -+ * 0xE0000000-0xE003FFFF Device, Shareable -+ * 0xE0040000-0xE0043FFF Device, Shareable -+ * 0xE0044000-0xE00EFFFF Device, Shareable -+ * 0xF0000000-0xFFFFFFFF Device, Shareable -+ */ -+ /* Disable MPU */ -+ ARM_MPU_Disable(); -+ -+ /* Attr0: Device-nGnRnE */ -+ // coverity[misra_c_2012_rule_14_3_violation:FALSE] -+ ARM_MPU_SetMemAttr(0U, ARM_MPU_ATTR(ARM_MPU_ATTR_DEVICE, -+ ARM_MPU_ATTR_DEVICE)); -+ -+ /* Attr1: Normal memory, Outer non-cacheable, Inner non-cacheable */ -+ // coverity[misra_c_2012_rule_14_3_violation:FALSE] -+ ARM_MPU_SetMemAttr(1U, ARM_MPU_ATTR(ARM_MPU_ATTR_NON_CACHEABLE, -+ ARM_MPU_ATTR_NON_CACHEABLE)); -+ -+ /* Attr2: Normal memory, Inner write-through transient, read allocate. -+ * Inner write-through transient, read allocate -+ */ -+ attr = ARM_MPU_ATTR_MEMORY_(0U, 0U, 1U, 0U); -+ ARM_MPU_SetMemAttr(2U, ARM_MPU_ATTR(attr, attr)); -+ -+ /* Attr3: Normal memory, Outer write-back transient, read/write allocate. -+ * Inner write-back transient, read/write -+ * allocate */ -+ attr = ARM_MPU_ATTR_MEMORY_(0U, 1U, 1U, 1U); -+ ARM_MPU_SetMemAttr(3U, ARM_MPU_ATTR(attr, attr)); -+ -+ /* -+ * Change macro definitions as follows when choose cache policy -+ * as non-cacheable: -+ * #define DDR_NONCACHEABLE (1U) -+ * #define DDR_WRITE_THROUGH (0U) -+ * #define DDR_WRITE_BACK (0U) -+ * -+ * -+ * Change macro definitions as follows when choose cache policy -+ * as Write-Through: -+ * #define DDR_NONCACHEABLE (0U) -+ * #define DDR_WRITE_THROUGH (1U) -+ * #define DDR_WRITE_BACK (0U) -+ * -+ * -+ * Change macro definitions as follows when choose cache policy -+ * as Write-Back: -+ * #define DDR_NONCACHEABLE (0U) -+ * #define DDR_WRITE_THROUGH (0U) -+ * #define DDR_WRITE_BACK (1U) -+ */ -+#define DDR_NONCACHEABLE (1U) -+#define DDR_WRITE_THROUGH (0U) -+#define DDR_WRITE_BACK (0U) -+#if DDR_NONCACHEABLE -+ /* NOTE: DDR is used as shared memory for A/M core communication, -+ * set it to non-cacheable. */ -+ /* Region 0: [0x80000000, 0xDFFFFFFF](DRAM), outer shareable, -+ * read/write, any privileged, executable. Attr 1 (non-cacheable). */ -+ ARM_MPU_SetRegion(0U, ARM_MPU_RBAR(0x80000000U, ARM_MPU_SH_OUTER, 0U, -+ 1U, 0U), ARM_MPU_RLAR(0xDFFFFFFFU, 1U)); -+#elif DDR_WRITE_THROUGH -+ /* Region 0: [0x80000000, 0xDFFFFFFF](DRAM), outer shareable, read/write, -+ * any privileged, executable. Attr 2 -+ * (Normal memory, Inner write-through transient, read allocate. Inner -+ * write-through transient, read allocate). */ -+ ARM_MPU_SetRegion(0U, ARM_MPU_RBAR(0x80000000U, ARM_MPU_SH_OUTER, 0U, -+ 1U, 0U), ARM_MPU_RLAR(0xDFFFFFFFU, 2U)); -+#elif DDR_WRITE_BACK -+ /* Region 0: [0x80000000, 0xDFFFFFFF](DRAM), outer shareable, read/write, -+ * any privileged, executable. Attr 3 -+ * (Normal memory, Outer write-back transient, read/write allocate. Inner -+ * write-back transient, read/write allocate). */ -+ ARM_MPU_SetRegion(0U, ARM_MPU_RBAR(0x80000000U, ARM_MPU_SH_OUTER, 0U, -+ 1U, 0U), ARM_MPU_RLAR(0xDFFFFFFFU, 3U)); -+#endif -+ -+#define OCRAM_NONCACHEABLE (1U) -+#define OCRAM_WRITE_THROUGH (0U) -+#define OCRAM_WRITE_BACK (0U) -+#if OCRAM_NONCACHEABLE -+ /* Region 1: [0x20480000, 0x2051FFFF](OCRAM), outer shareable, read/write, -+ * any privileged, executable. Attr 1 (non-cacheable). */ -+ ARM_MPU_SetRegion(1U, ARM_MPU_RBAR(0x20480000U, ARM_MPU_SH_OUTER, 0U, -+ 1U, 0U), ARM_MPU_RLAR(0x2051FFFFU, 1U)); -+#elif OCRAM_WRITE_THROUGH -+ /* Region 1: [0x20480000, 0x2051FFFF](OCRAM), outer shareable, -+ * read/write, any privileged, executable. Attr 2 (Normal memory, Inner -+ * write-through transient, read allocate. Inner write-through transient, -+ * read allocate). */ -+ ARM_MPU_SetRegion(1U, ARM_MPU_RBAR(0x20480000U, ARM_MPU_SH_OUTER, 0U, -+ 1U, 0U), ARM_MPU_RLAR(0x2051FFFFU, 2U)); -+#elif OCRAM_WRITE_BACK -+ /* Region 1: [0x20480000, 0x2051FFFF](OCRAM), outer shareable, -+ * read/write, any privileged, executable. Attr 3 (Normal memory, -+ * Outer write-back transient, read/write allocate. Inner write-back -+ * transient, read/write allocate). */ -+ ARM_MPU_SetRegion(1U, ARM_MPU_RBAR(0x20480000U, ARM_MPU_SH_OUTER, 0U, -+ 1U, 0U), ARM_MPU_RLAR(0x2051FFFFU, 3U)); -+#endif -+ -+ /* Enable MPU(use default memory map when access the memory within -+ * region) */ -+ ARM_MPU_Enable(MPU_CTRL_PRIVDEFENA_Msk); -+ -+ /* Enable ICache and DCache */ -+ XCACHE_EnableCache(LPCAC_PC); -+ XCACHE_EnableCache(LPCAC_PS); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Initialize clocking */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_InitClocks(void) -+{ -+ uint32_t fuseTrim = DEV_SM_FuseGet(DEV_SM_FUSE_FRO_TRIM); -+ -+ if (fuseTrim == 0U) -+ { -+ /* Enable the FRO clock with default value */ -+ (void) FRO_SetEnable(true); -+ } -+ else -+ { -+ /* Set the Trim value read from the fuses */ -+ bool status = FRO_SetTrim(fuseTrim); -+ -+ if (status) -+ { -+ /* Enable the FRO clock with default value */ -+ (void) FRO_SetEnable(true); -+ } -+ } -+ -+ /* Configure default EXT_CLK1 rate tied to XTAL_OUT/EXT_CLK pin */ -+ (void) CLOCK_SourceSetRate(CLOCK_SRC_EXT1, BOARD_EXT_CLK_RATE, 0U); -+ -+ /* Configure ADC clock */ -+ (void) CCM_RootSetParent(CLOCK_ROOT_ADC, CLOCK_SRC_SYSPLL1_PFD1_DIV2); -+ (void) CCM_RootSetRate(CLOCK_ROOT_ADC, BOARD_ADC_CLK_RATE, -+ CLOCK_ROUND_RULE_CEILING); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Return the debug UART info */ -+/*--------------------------------------------------------------------------*/ -+const board_uart_config_t *BOARD_GetDebugUart(void) -+{ -+ return &s_uartConfig; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Initialize debug console */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_InitDebugConsole(void) -+{ -+ if (s_uartConfig.base != NULL) -+ { -+ uint64_t rate = CCM_RootGetRate(s_uartConfig.clockId); -+ -+ /* Configure debug UART */ -+ lpuart_config_t lpuart_config; -+ LPUART_GetDefaultConfig(&lpuart_config); -+ lpuart_config.baudRate_Bps = s_uartConfig.baud; -+ lpuart_config.rxFifoWatermark = ((uint8_t) -+ FSL_FEATURE_LPUART_FIFO_SIZEn(s_uartConfig.base)) - 1U; -+ lpuart_config.txFifoWatermark = ((uint8_t) -+ FSL_FEATURE_LPUART_FIFO_SIZEn(s_uartConfig.base)) - 1U; -+ lpuart_config.enableTx = true; -+ lpuart_config.enableRx = true; -+ (void) LPUART_Init(s_uartConfig.base, &lpuart_config, -+ U64_U32(rate)); -+ } -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Initialize IRQ handlers */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_InitHandlers(void) -+{ -+ /* Configure default priority of exceptions and IRQs */ -+ for (int32_t irq = ((int32_t) SVCall_IRQn); irq < ((int32_t) -+ NUMBER_OF_INT_VECTORS); irq++) -+ { -+ // coverity[misra_c_2012_rule_10_5_violation:FALSE] -+ NVIC_SetPriority((IRQn_Type) irq, IRQ_PRIO_NOPREEMPT_NORMAL); -+ } -+ -+ /* Configure SWI handler */ -+ NVIC_EnableIRQ(BOARD_SWI_IRQn); -+ -+ /* Enable BBNSM handler */ -+ NVIC_EnableIRQ(BBNSM_IRQn); -+ -+ /* Enable GPC SM handler */ -+ NVIC_SetPriority(GPC_SM_REQ_IRQn, IRQ_PRIO_NOPREEMPT_VERY_HIGH); -+ NVIC_EnableIRQ(GPC_SM_REQ_IRQn); -+ -+ /* Enable ELE Group IRQ handlers */ -+ NVIC_EnableIRQ(ELE_Group1_IRQn); -+ NVIC_EnableIRQ(ELE_Group2_IRQn); -+ NVIC_EnableIRQ(ELE_Group3_IRQn); -+ -+ /* Enable FCCU handler */ -+ NVIC_SetPriority(FCCU_INT0_IRQn, IRQ_PRIO_NOPREEMPT_CRITICAL); -+ NVIC_EnableIRQ(FCCU_INT0_IRQn); -+ -+ /* Enable GPIO1 handler */ -+ NVIC_EnableIRQ(GPIO1_0_IRQn); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Initialize timers */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_InitTimers(void) -+{ -+ /* Configure and enable the BBNSM RTC */ -+ bbnsm_rtc_config_t rtcConfig; -+ BBNSM_RTC_GetDefaultConfig(&rtcConfig); -+ BBNSM_RTC_Init(BBNSM, &rtcConfig); -+ -+ /* Configure and enable system counter */ -+ SYSCTR_Init(); -+ -+ /* Configure and enable M33 SysTick */ -+ uint64_t rate = CCM_RootGetRate(BOARD_SYSTICK_CLK_ROOT); -+ uint32_t reloadVal = (uint32_t) (rate & 0xFFFFFFFFU); -+ reloadVal = ((reloadVal * BOARD_TICK_PERIOD_MSEC) + 999U) / 1000U; -+ SYSTICK_Init(1U, BOARD_SYSTICK_CLKSRC, (uint32_t) (rate & 0xFFFFFFFFU), -+ reloadVal); -+ NVIC_EnableIRQ(SysTick_IRQn); -+ -+ /* Configure and enable the WDOG */ -+ WDOG32_GetDefaultConfig(&s_wdogConfig); -+ s_wdogConfig.clockSource = BOARD_WDOG_CLK_SRC; -+ s_wdogConfig.timeoutValue = BOARD_WDOG_TIMEOUT; -+ s_wdogConfig.enableInterrupt = true; -+ WDOG32_Init(BOARD_WDOG_BASE_PTR, &s_wdogConfig); -+ NVIC_SetPriority(BOARD_WDOG_IRQn, IRQ_PRIO_PREEMPT_CRITICAL); -+ -+ /* Configure to just non-FCCU SM watchdogs */ -+ BLK_CTRL_S_AONMIX->WDOG_ANY_MASK = BOARD_WDOG_ANY_INIT; -+ -+ /* Switch WDOG to COLD mode */ -+ BOARD_WdogModeSet(BOARD_WDOG_MODE_COLD); -+ -+ /* Halt SM WDOG on M33 debug entry */ -+ BLK_CTRL_NS_AONMIX->IPG_DEBUG_CM33 = (BOARD_WDOG_IPG_DEBUG); -+ -+ /* Halt CM7 WDOG on CM7 debug entry */ -+ BLK_CTRL_WAKEUPMIX->IPG_DEBUG_CM7 = -+ BLK_CTRL_WAKEUPMIX_IPG_DEBUG_CM7_WDOG5_MASK; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set watchdog mode */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_WdogModeSet(uint32_t mode) -+{ -+ switch (mode) -+ { -+ case BOARD_WDOG_MODE_WARM: /* warm */ -+ /* Allow WDOG to generate internal warm reset */ -+ SRC_GEN->SRMASK &= (~BOARD_WDOG_SRMASK); -+ -+ /* Enable WDOG interrupt */ -+ NVIC_EnableIRQ(BOARD_WDOG_IRQn); -+ -+ /* Disable WDOG_ANY */ -+ BLK_CTRL_S_AONMIX->WDOG_ANY_MASK |= BOARD_WDOG_ANY_MASK; -+ -+ /* Drive WDOG_ANY from WDOG */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_WDOG_ANY__WDOG_ANY, 0U); -+ break; -+ case BOARD_WDOG_MODE_COLD: /* cold */ -+ /* Allow WDOG to generate internal warm reset */ -+ SRC_GEN->SRMASK &= (~BOARD_WDOG_SRMASK); -+ -+ /* Enable WDOG interrupt */ -+ NVIC_EnableIRQ(BOARD_WDOG_IRQn); -+ -+ /* Enable WDOG_ANY */ -+ BLK_CTRL_S_AONMIX->WDOG_ANY_MASK &= ~BOARD_WDOG_ANY_MASK; -+ -+ /* Drive WDOG_ANY from WDOG */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_WDOG_ANY__WDOG_ANY, 0U); -+ break; -+ case BOARD_WDOG_MODE_IRQ: /* irq */ -+ /* Enable WDOG interrupt */ -+ NVIC_EnableIRQ(BOARD_WDOG_IRQn); -+ -+ /* Disallow WDOG to generate internal warm reset */ -+ SRC_GEN->SRMASK |= BOARD_WDOG_SRMASK; -+ -+ /* Disable WDOG_ANY */ -+ BLK_CTRL_S_AONMIX->WDOG_ANY_MASK |= BOARD_WDOG_ANY_MASK; -+ -+ /* Drive WDOG_ANY from WDOG */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_WDOG_ANY__WDOG_ANY, 0U); -+ break; -+ case BOARD_WDOG_MODE_OFF: /* off */ -+ s_wdogConfig.enableWdog32 = false; -+ WDOG32_Deinit(BOARD_WDOG_BASE_PTR); -+ break; -+ case BOARD_WDOG_MODE_TRIGGER: /* trigger */ -+ BOARD_WDOG_BASE_PTR->CNT = 0U; -+ break; -+ case BOARD_WDOG_MODE_FCCU: /* fccu */ -+ /* Drive WDOG_ANY from FCCU */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_WDOG_ANY__FCCU_EOUT1, 0U); -+ -+ /* Disallow WDOG to generate internal warm reset */ -+ SRC_GEN->SRMASK |= BOARD_WDOG_SRMASK; -+ -+ /* Disable WDOG interrupt */ -+ NVIC_DisableIRQ(BOARD_WDOG_IRQn); -+ break; -+ default: -+ ; /* Intentional empty default */ -+ break; -+ } -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Kick the watchdog timer */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_WdogRefresh(void) -+{ -+ WDOG32_Refresh(BOARD_WDOG_BASE_PTR); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Initialize serial bus for external devices */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_InitSerialBus(void) -+{ -+ static LPI2C_Type *const s_i2cBases[] = LPI2C_BASE_PTRS; -+ LPI2C_Type *base = s_i2cBases[BOARD_I2C_INSTANCE]; -+ lpi2c_master_config_t lpi2cConfig = {0}; -+ static uint32_t const s_i2cClks[] = -+ { -+ 0U, -+ CLOCK_ROOT_LPI2C1, -+ CLOCK_ROOT_LPI2C2 -+ }; -+ uint32_t clockId = s_i2cClks[BOARD_I2C_INSTANCE]; -+ -+ uint32_t rate = U64_U32(CCM_RootGetRate(clockId)); -+ -+ LPI2C_MasterGetDefaultConfig(&lpi2cConfig); -+ -+ lpi2cConfig.baudRate_Hz = BOARD_I2C_BAUDRATE; -+ lpi2cConfig.enableDoze = false; -+ -+ LPI2C_MasterInit(base, &lpi2cConfig, rate); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* System sleep prepare */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_SystemSleepPrepare(uint32_t sleepMode, uint32_t sleepFlags) -+{ -+ BRD_SM_VoltageSuspend(true); -+ -+ /* Configure SM LPUART for wakeup */ -+ if (s_uartConfig.base != NULL) -+ { -+ /* Enable edge-detect IRQ */ -+ (void) LPUART_ClearStatusFlags(s_uartConfig.base, -+ (uint32_t)kLPUART_RxActiveEdgeFlag); -+ LPUART_EnableInterrupts(s_uartConfig.base, -+ (uint32_t)kLPUART_RxActiveEdgeInterruptEnable); -+ NVIC_EnableIRQ(s_uartConfig.irq); -+ -+ /* Configure LPI of SM LPUART */ -+ (void) CPU_PerLpiConfigSet(CPU_IDX_M33P, s_uartConfig.perLpiId, -+ CPU_PER_LPI_ON_RUN_WAIT_STOP); -+ } -+ -+ /* Configure LPI for GPIO1 */ -+ (void) CPU_PerLpiConfigSet(CPU_IDX_M33P, CPU_PER_LPI_IDX_GPIO1, -+ CPU_PER_LPI_ON_RUN_WAIT_STOP); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* System sleep entry */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_SystemSleepEnter(uint32_t sleepMode, uint32_t sleepFlags) -+{ -+ /* Disable SysTick */ -+ uint32_t sysTickMask = SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; -+ SysTick->CTRL &= (~sysTickMask); -+ -+ /* Clear pending SysTick exception */ -+ SCB->ICSR = SCB_ICSR_PENDSTCLR_Msk; -+ -+ if (s_wdogConfig.enableWdog32) -+ { -+ /* Disable WDOG */ -+ WDOG32_Deinit(BOARD_WDOG_BASE_PTR); -+ -+ /* Waits for new configuration to take effect. */ -+ while (0U == ((BOARD_WDOG_BASE_PTR->CS) & WDOG_CS_RCS_MASK)) -+ { -+ ; /* Intentional empty while */ -+ } -+ } -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* System sleep exit */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_SystemSleepExit(uint32_t sleepMode, uint32_t sleepFlags) -+{ -+ if (s_wdogConfig.enableWdog32) -+ { -+ /* Enable WDOG */ -+ WDOG32_Init(BOARD_WDOG_BASE_PTR, &s_wdogConfig); -+ } -+ -+ /* Enable SysTick */ -+ uint32_t sysTickMask = SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; -+ SysTick->VAL = 0U; -+ SysTick->CTRL |= (sysTickMask); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* System sleep unprepare */ -+/*--------------------------------------------------------------------------*/ -+void BOARD_SystemSleepUnprepare(uint32_t sleepMode, uint32_t sleepFlags) -+{ -+ BRD_SM_VoltageRestore(); -+ -+ /* Service SM LPUART wakeup events */ -+ if (s_uartConfig.base != NULL) -+ { -+ (void) LPUART_ClearStatusFlags(s_uartConfig.base, -+ (uint32_t)kLPUART_RxActiveEdgeFlag); -+ LPUART_DisableInterrupts(s_uartConfig.base, -+ (uint32_t)kLPUART_RxActiveEdgeInterruptEnable); -+ -+ NVIC_DisableIRQ(s_uartConfig.irq); -+ NVIC_ClearPendingIRQ(s_uartConfig.irq); -+ } -+} -+ -diff --git a/boards/ccimx95dvk/board.h b/boards/ccimx95dvk/board.h -new file mode 100755 -index 000000000000..d6b450b92f10 ---- /dev/null -+++ b/boards/ccimx95dvk/board.h -@@ -0,0 +1,164 @@ -+/* -+ * Copyright 2023-2024 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ */ -+ -+#ifndef BOARD_H -+#define BOARD_H -+ -+#include "fsl_common.h" -+#include "config_board.h" -+#include "dev_sm.h" -+ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing the board API. -+ */ -+ -+/******************************************************************************* -+ * Definitions -+ ******************************************************************************/ -+ -+/*! -+ * @name Board general parameters -+ */ -+/** @{ */ -+#define BOARD_TICK_PERIOD_MSEC 10U /*!< Tick period */ -+#define BOARD_SWI_IRQn Reserved110_IRQn /*!< SWI IRQ */ -+#define BOARD_HAS_WDOG /*!< Has a watchdog */ -+#define BOARD_HAS_PMIC /*!< Has a PMIC */ -+#define BOARD_PMIC_RESUME_TICKS ((20U * 32768U) / 10000U) /*!< 2ms in 32K ticks */ -+/** @} */ -+ -+/*! -+ * @name Board PF09 OTP voltages (uV) -+ */ -+/** @{ */ -+#define BOARD_VOLT_SOC 920000 /*!< SOC OTP */ -+#define BOARD_VOLT_ARM 920000 /*!< ARM OTP */ -+/** @} */ -+ -+/*! -+ * @name Watchdog modes -+ */ -+/** @{ */ -+#define BOARD_WDOG_MODE_WARM 0U /*!< Wdog generate warm reset */ -+#define BOARD_WDOG_MODE_COLD 1U /*!< Wdog generate cold reset */ -+#define BOARD_WDOG_MODE_IRQ 2U /*!< Wdog generate IRQ only */ -+#define BOARD_WDOG_MODE_OFF 3U /*!< Wdog disabled */ -+#define BOARD_WDOG_MODE_TRIGGER 4U /*!< Trigger wdog */ -+#define BOARD_WDOG_MODE_FCCU 5U /*!< Wdog generate FCCU fault */ -+/** @} */ -+ -+/******************************************************************************* -+ * Types -+ ******************************************************************************/ -+ -+/*! -+ * Debug UART configuration info -+ */ -+typedef struct -+{ -+ LPUART_Type *const base; /*!< LPUART base pointer */ -+ IRQn_Type irq; /*!< Interrupt number */ -+ uint32_t clockId; /*!< Clock ID */ -+ uint32_t perLpiId; /*!< Peripheral LPI ID */ -+ uint32_t baud; /*!< Baud rate */ -+ uint8_t inst; /*!< Instance number */ -+} board_uart_config_t; -+ -+#if defined(__cplusplus) -+extern "C" { -+#endif /* __cplusplus */ -+ -+/******************************************************************************* -+ * API -+ ******************************************************************************/ -+ -+/*! Configure the M33 MPU */ -+void BOARD_ConfigMPU(void); -+ -+/*! Init hardware */ -+void BOARD_InitHardware(void); -+ -+/*! Init clocks */ -+void BOARD_InitClocks(void); -+ -+/*! -+ * Get a device clock debug UART info. -+ * -+ * This function returns the UART info for the UART used for SM -+ * debug. -+ * -+ * @return Returns the debug UART config info. -+ */ -+const board_uart_config_t *BOARD_GetDebugUart(void); -+ -+/*! Init the debug UART */ -+void BOARD_InitDebugConsole(void); -+ -+/*! Init interrupt handlers */ -+void BOARD_InitHandlers(void); -+ -+/*! Init timers */ -+void BOARD_InitTimers(void); -+ -+/*! Init serial buses */ -+void BOARD_InitSerialBus(void); -+ -+/*! -+ * Board-level prepare for system sleep entry -+ * -+ * @param sleepMode Sleep mode being entered. -+ * @param sleepFlags Sleep flag options. -+ */ -+void BOARD_SystemSleepPrepare(uint32_t sleepMode, uint32_t sleepFlags); -+ -+/*! -+ * Board-level system sleep entry -+ * -+ * @param sleepMode Sleep mode being entered. -+ * @param sleepFlags Sleep flag options. -+ */ -+void BOARD_SystemSleepEnter(uint32_t sleepMode, uint32_t sleepFlags); -+ -+/*! -+ * Board-level system sleep exit -+ * -+ * @param sleepMode Sleep mode being exited. -+ * @param sleepFlags Sleep flag options. -+ */ -+void BOARD_SystemSleepExit(uint32_t sleepMode, uint32_t sleepFlags); -+ -+/*! -+ * Board-level unprepare for system sleep entry -+ * -+ * @param sleepMode Sleep mode being entered. -+ * @param sleepFlags Sleep flag options. -+ */ -+void BOARD_SystemSleepUnprepare(uint32_t sleepMode, uint32_t sleepFlags); -+ -+/*! -+ * Set the watchdog mode -+ * -+ * @param mode Mode to set. -+ */ -+void BOARD_WdogModeSet(uint32_t mode); -+ -+/*! Service the watchdog */ -+void BOARD_WdogRefresh(void); -+ -+#if defined(__cplusplus) -+} -+#endif /* __cplusplus */ -+ -+/** @} */ -+ -+#endif /* BOARD_H */ -+ -diff --git a/boards/ccimx95dvk/pin_mux.c b/boards/ccimx95dvk/pin_mux.c -new file mode 100755 -index 000000000000..b40d897fbcdc ---- /dev/null -+++ b/boards/ccimx95dvk/pin_mux.c -@@ -0,0 +1,58 @@ -+/* -+ * Copyright 2023 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ */ -+ -+#include "pin_mux.h" -+#include "board.h" -+ -+/* FUNCTION ************************************************************************************************************ -+ * -+ * Function Name : BOARD_InitPins -+ * Description : Configures pin routing and optionally pin electrical features. -+ * -+ * END ****************************************************************************************************************/ -+void BOARD_InitPins(void) -+{ -+#if (BOARD_DEBUG_UART_INSTANCE == 1U) -+ /* Configure LPUART 1 */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_UART1_RXD__LPUART1_RX, 0U); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_UART1_RXD__LPUART1_RX, IOMUXC_PAD_PD(1U)); -+ -+ IOMUXC_SetPinMux(IOMUXC_PAD_UART1_TXD__LPUART1_TX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_UART1_TXD__LPUART1_TX, IOMUXC_PAD_DSE(0xFU)); -+#elif (BOARD_DEBUG_UART_INSTANCE == 2U) -+ /* Configure LPUART 2 */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_UART2_RXD__LPUART2_RX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_UART2_RXD__LPUART2_RX, IOMUXC_PAD_PD(1U)); -+ -+ IOMUXC_SetPinMux(IOMUXC_PAD_UART2_TXD__LPUART2_TX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_UART2_TXD__LPUART2_TX, IOMUXC_PAD_DSE(0xFU)); -+#endif -+ -+#if (BOARD_I2C_INSTANCE == 1U) -+ /* Configure LPI2C 1 */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_I2C1_SCL__LPI2C1_SCL, 1U); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_I2C1_SCL__LPI2C1_SCL, IOMUXC_PAD_DSE(0xFU) -+ | IOMUXC_PAD_FSEL1(0x3U) | IOMUXC_PAD_PU(0x1U) | IOMUXC_PAD_OD(0x1U)); -+ -+ IOMUXC_SetPinMux(IOMUXC_PAD_I2C1_SDA__LPI2C1_SDA, 1U); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_I2C1_SDA__LPI2C1_SDA, IOMUXC_PAD_DSE(0xFU) -+ | IOMUXC_PAD_FSEL1(0x3U) | IOMUXC_PAD_PU(0x1U) | IOMUXC_PAD_OD(0x1U)); -+#elif (BOARD_I2C_INSTANCE == 2U) -+ /* Configure LPI2C 2 */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_I2C2_SCL__LPI2C2_SCL, 1U); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_I2C2_SCL__LPI2C2_SCL, IOMUXC_PAD_DSE(0xFU) -+ | IOMUXC_PAD_FSEL1(0x3U) | IOMUXC_PAD_PU(0x1U) | IOMUXC_PAD_OD(0x1U)); -+ -+ IOMUXC_SetPinMux(IOMUXC_PAD_I2C2_SDA__LPI2C2_SDA, 1U); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_I2C2_SDA__LPI2C2_SDA, IOMUXC_PAD_DSE(0xFU) -+ | IOMUXC_PAD_FSEL1(0x3U) | IOMUXC_PAD_PU(0x1U) | IOMUXC_PAD_OD(0x1U)); -+#endif -+ -+ /* Configure GPIO1-10 (INT from the PCAL6408A */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_PDM_BIT_STREAM1__GPIO1_IO_BIT10, 0U); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_PDM_BIT_STREAM1__GPIO1_IO_BIT10, 0U); -+} -+ -diff --git a/boards/ccimx95dvk/pin_mux.h b/boards/ccimx95dvk/pin_mux.h -new file mode 100755 -index 000000000000..24cd7920d220 ---- /dev/null -+++ b/boards/ccimx95dvk/pin_mux.h -@@ -0,0 +1,44 @@ -+/* -+ * Copyright 2023 NXP -+ * -+ * SPDX-License-Identifier: BSD-3-Clause -+ */ -+ -+#ifndef PIN_MUX_H -+#define PIN_MUX_H -+ -+#include "fsl_iomuxc.h" -+ -+/*********************************************************************************************************************** -+ * Definitions -+ **********************************************************************************************************************/ -+ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @file -+ * @{ -+ */ -+ -+/*********************************************************************************************************************** -+ * API -+ **********************************************************************************************************************/ -+ -+#if defined(__cplusplus) -+extern "C" { -+#endif -+ -+/*! -+ * @brief Configures pin routing and optionally pin electrical features. -+ * -+ */ -+void BOARD_InitPins(void); /*!< Function assigned for the core: Cortex-M33[cm33] */ -+ -+#if defined(__cplusplus) -+} -+#endif -+ -+/*! -+ * @} -+ */ -+#endif /* PIN_MUX_H */ -+ -diff --git a/boards/ccimx95dvk/sm/Makefile b/boards/ccimx95dvk/sm/Makefile -new file mode 100755 -index 000000000000..d5b576737636 ---- /dev/null -+++ b/boards/ccimx95dvk/sm/Makefile -@@ -0,0 +1,70 @@ -+## ################################################################### -+## -+## Copyright 2023 NXP -+## -+## Redistribution and use in source and binary forms, with or without modification, -+## are permitted provided that the following conditions are met: -+## -+## o Redistributions of source code must retain the above copyright notice, this list -+## of conditions and the following disclaimer. -+## -+## o Redistributions in binary form must reproduce the above copyright notice, this -+## list of conditions and the following disclaimer in the documentation and/or -+## other materials provided with the distribution. -+## -+## o Neither the name of the copyright holder nor the names of its -+## contributors may be used to endorse or promote products derived from this -+## software without specific prior written permission. -+## -+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+## WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+## ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+## (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+## ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+## -+## -+## ################################################################### -+ -+BOARD ?= mcimx95evk -+BRD_SM_API_DIR = $(ROOT_DIR)/sm/brd -+BOARDS_DIR = $(ROOT_DIR)/boards -+BOARD_DIR = $(BOARDS_DIR)/$(BOARD) -+ -+INCLUDE += \ -+ -I$(BRD_SM_API_DIR) \ -+ -I$(BOARDS_DIR) \ -+ -I$(BOARD_DIR) \ -+ -I$(BOARD_DIR)/sm \ -+ -I$(COMPONENTS_DIR)/pcal6408a \ -+ -I$(COMPONENTS_DIR)/pf09 \ -+ -I$(COMPONENTS_DIR)/pf53 \ -+ -I$(COMPONENTS_DIR)/pca2131 -+ -+VPATH += \ -+ $(BRD_SM_API_DIR) \ -+ $(BOARDS_DIR) \ -+ $(BOARD_DIR) \ -+ $(BOARD_DIR)/sm \ -+ $(COMPONENTS_DIR)/pcal6408a \ -+ $(COMPONENTS_DIR)/pf09 \ -+ $(COMPONENTS_DIR)/pf53 \ -+ $(COMPONENTS_DIR)/pca2131 -+ -+OBJS += \ -+ $(OUT)/board.o \ -+ $(OUT)/brd_sm.o \ -+ $(OUT)/brd_sm_handlers.o \ -+ $(OUT)/brd_sm_control.o \ -+ $(OUT)/brd_sm_sensor.o \ -+ $(OUT)/brd_sm_voltage.o \ -+ $(OUT)/brd_sm_bbm.o \ -+ $(OUT)/fsl_pcal6408a.o \ -+ $(OUT)/fsl_pf09.o \ -+ $(OUT)/fsl_pf53.o \ -+ $(OUT)/fsl_pca2131.o -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm.c b/boards/ccimx95dvk/sm/brd_sm.c -new file mode 100755 -index 000000000000..cd48b590cd26 ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm.c -@@ -0,0 +1,665 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/* File containing the implementation of the SM abstraction for the board. */ -+/*==========================================================================*/ -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "brd_sm.h" -+#include "dev_sm.h" -+#include "lmm.h" -+#include "fsl_lpi2c.h" -+#include "fsl_bbnsm.h" -+#include "fsl_rgpio.h" -+#include "fsl_iomuxc.h" -+ -+/* Local defines */ -+ -+#define BRD_SM_RST_REC_FIRST 4U /* First GPR for shutdown record */ -+#define BRD_SM_RST_REC_NUM 4U /* Number of GPR for shutdown record */ -+ -+/* Defines to encode the reason */ -+#define BRD_SM_REC_REASON_MASK (0x000000FFU) -+#define BRD_SM_REC_REASON_SHIFT (0U) -+#define BRD_SM_REC_REASON(x) \ -+ (((uint32_t)(((uint32_t)(x)) << BRD_SM_REC_REASON_SHIFT)) & \ -+ BRD_SM_REC_REASON_MASK) -+ -+/* Defines to encode the error ID */ -+#define BRD_SM_REC_EID_MASK (0x007FFF00U) -+#define BRD_SM_REC_EID_SHIFT (8U) -+#define BRD_SM_REC_EID(x) \ -+ (((uint32_t)(((uint32_t)(x)) << BRD_SM_REC_EID_SHIFT)) & \ -+ BRD_SM_REC_EID_MASK) -+#define BRD_SM_REC_EID_SIGN (0x00004000U) -+#define BRD_SM_REC_EID_EXT (0xFFFF8000U) -+ -+/* Defines to encode the valid flag for the errId */ -+#define BRD_SM_REC_VERR_MASK (0x00800000U) -+#define BRD_SM_REC_VERR_SHIFT (23U) -+#define BRD_SM_REC_VERR(x) \ -+ (((uint32_t)(((uint32_t)(x)) << BRD_SM_REC_VERR_SHIFT)) & \ -+ BRD_SM_REC_VERR_MASK) -+ -+/* Defines to encode the source/origin */ -+#define BRD_SM_REC_SRC_MASK (0x0F000000U) -+#define BRD_SM_REC_SRC_SHIFT (24U) -+#define BRD_SM_REC_SRC(x) \ -+ (((uint32_t)(((uint32_t)(x)) << BRD_SM_REC_SRC_SHIFT)) & \ -+ BRD_SM_REC_SRC_MASK) -+ -+/* Defines to encode the valid flag for the source */ -+#define BRD_SM_REC_VSRC_MASK (0x10000000U) -+#define BRD_SM_REC_VSRC_SHIFT (28U) -+#define BRD_SM_REC_VSRC(x) \ -+ (((uint32_t)(((uint32_t)(x)) << BRD_SM_REC_VSRC_SHIFT)) & \ -+ BRD_SM_REC_VSRC_MASK) -+ -+/* Defines to encode the extended info length */ -+#define BRD_SM_REC_LEN_MASK (0x60000000U) -+#define BRD_SM_REC_LEN_SHIFT (29U) -+#define BRD_SM_REC_LEN(x) \ -+ (((uint32_t)(((uint32_t)(x)) << BRD_SM_REC_LEN_SHIFT)) & \ -+ BRD_SM_REC_LEN_MASK) -+ -+/* Defines to encode the valid */ -+#define BRD_SM_REC_VLD_MASK (0x80000000U) -+#define BRD_SM_REC_VLD_SHIFT (31U) -+#define BRD_SM_REC_VLD(x) \ -+ (((uint32_t)(((uint32_t)(x)) << BRD_SM_REC_VLD_SHIFT)) & \ -+ BRD_SM_REC_VLD_MASK) -+ -+/* Performance parameters */ -+#define BOARD_PERF_LEVEL DEV_SM_PERF_LVL_ODV /* Target perf level */ -+#if BOARD_VOLT_SOC >= ES_ODV_UV_VDD_SOC -+#define BOARD_BOOT_LEVEL DEV_SM_PERF_LVL_ODV /* Boot perf overdrive */ -+#elif BOARD_VOLT_SOC >= ES_NOM_UV_VDD_SOC -+#define BOARD_BOOT_LEVEL DEV_SM_PERF_LVL_NOM /* Boot perf nominal */ -+#else -+#define BOARD_BOOT_LEVEL DEV_SM_PERF_LVL_LOW /* Boot perf low */ -+#endif -+ -+/* Local types */ -+ -+/* Local variables */ -+ -+/* Local functions */ -+ -+static int32_t BRD_SM_InitComplete(uint32_t mSel); -+ -+/*--------------------------------------------------------------------------*/ -+/* Init board */ -+/*--------------------------------------------------------------------------*/ -+// coverity[misra_c_2012_directive_4_6_violation:FALSE] -+int32_t BRD_SM_Init(int argc, const char * const argv[], uint32_t *mSel) -+{ -+ int32_t status; -+ uint64_t addr; -+ uint32_t ms; -+ uint32_t flags; -+ -+ /* Init board hardware */ -+ BOARD_InitHardware(); -+ -+ /* Get the boot mode select */ -+ if (DEV_SM_RomBootCpuGet(DEV_SM_CPU_M33P, &addr, &ms, &flags) -+ == SM_ERR_SUCCESS) -+ { -+ *mSel = ms; -+ } -+ -+ /* Initialize devices connected to serial buses (PMIC, IOExp, etc) */ -+ status = BRD_SM_SerialDevicesInit(); -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ /* Init the device */ -+ status = DEV_SM_Init(BOARD_BOOT_LEVEL, BOARD_PERF_LEVEL); -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ /* Complete board init after device init */ -+ status = BRD_SM_InitComplete(*mSel); -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ /* Disallow ANA TMPSNS to generate internal warm reset */ -+ SRC_GEN->SRMASK |= BIT32(RST_REASON_TEMPSENSE); -+ -+ /* Switch WDOG to FCCU mode */ -+ BOARD_WdogModeSet(BOARD_WDOG_MODE_FCCU); -+ } -+ -+ /* TODO: Remove when A0 support dropped */ -+ /* Configure ISO controls based on feature fuses */ -+ uint32_t ipIsoMask = 0U; -+ -+ /* PCIe1 is tied to HSIO ISO[0] */ -+ if (DEV_SM_FuseGet(DEV_SM_FUSE_PCIE1_DISABLE) == 0U) -+ { -+ ipIsoMask |= SRC_XSPR_SLICE_SW_CTRL_ISO_CTRL_0_MASK; -+ } -+ -+ /* PCIe2 is tied to HSIO ISO[1] */ -+ if (DEV_SM_FuseGet(DEV_SM_FUSE_PCIE2_DISABLE) == 0U) -+ { -+ ipIsoMask |= SRC_XSPR_SLICE_SW_CTRL_ISO_CTRL_1_MASK; -+ } -+ -+ /* Apply ISO mask */ -+ if (ipIsoMask != 0U) -+ { -+ SRC_XSPR_HSIOMIX_TOP->SLICE_SW_CTRL &= (~ipIsoMask); -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Exit function */ -+/*--------------------------------------------------------------------------*/ -+_Noreturn void BRD_SM_Exit(int32_t status, uint32_t pc) -+{ -+#if defined(MONITOR) || defined(RUN_TEST) -+ printf("exit %d, 0x%08X\n", status, pc); -+ -+ /* Disable watchdog */ -+ BOARD_WdogModeSet(BOARD_WDOG_MODE_OFF); -+#else -+ SM_SYSTEMERROR(status, pc); -+ // coverity[misra_c_2012_rule_2_2_violation:FALSE] -+ SystemExit(); -+#endif -+ -+ /* Hang */ -+ // coverity[infinite_loop:FALSE] -+ while (true) -+ { -+ ; /* Intentional empty while */ -+ } -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Board timer tick */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_TimerTick(uint32_t msec) -+{ -+ /* Kick the dog */ -+ BOARD_WdogRefresh(); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Custom monitor function */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_Custom(int32_t argc, const char * const argv[]) -+{ -+ return SM_ERR_SUCCESS; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get fault reaction */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_FaultReactionGet(dev_sm_rst_rec_t resetRec, -+ // coverity[misra_c_2012_rule_8_13_violation:FALSE] -+ uint32_t *reaction, uint32_t *lm) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Print reaction */ -+ switch (*reaction) -+ { -+ case LMM_REACT_SYS_RESET: -+ case LMM_REACT_SYS_SHUTDOWN: -+ ; /* Intentional empty as will print elsewhere */ -+ break; -+ case LMM_REACT_GRP_RESET: -+ printf("\nReset group %u", *lm); -+ BRD_SM_ResetRecordPrint(",", resetRec); -+ break; -+ case LMM_REACT_GRP_SHUTDOWN: -+ printf("\nShutdown group %u", *lm); -+ BRD_SM_ResetRecordPrint(",", resetRec); -+ break; -+ case LMM_REACT_LM_RESET: -+ printf("\nReset LM %u", *lm); -+ BRD_SM_ResetRecordPrint(",", resetRec); -+ break; -+ case LMM_REACT_LM_SHUTDOWN: -+ printf("\nShutdown LM %u", *lm); -+ BRD_SM_ResetRecordPrint(",", resetRec); -+ break; -+ case LMM_REACT_BOARD: -+ printf("\nBoard %u", *lm); -+ BRD_SM_ResetRecordPrint(",", resetRec); -+ break; -+ case LMM_REACT_FUSA: -+ printf("\nFuSa %u", *lm); -+ BRD_SM_ResetRecordPrint(",", resetRec); -+ break; -+ case LMM_REACT_NONE: -+ ; /* Intentional empty case */ -+ break; -+ default: -+ status = SM_ERR_INVALID_PARAMETERS; -+ break; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Custom fault handler */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_CustomFault(dev_sm_rst_rec_t resetRec, uint32_t lm) -+{ -+ /* Return status */ -+ return SM_ERR_SUCCESS; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Print reset record */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_ResetRecordPrint(string name, dev_sm_rst_rec_t resetRec) -+{ -+ if (resetRec.valid) -+ { -+ int32_t status; -+ string reasonNameAddr; -+ -+ /* Get name */ -+ status = LMM_SystemReasonNameGet(0U, resetRec.reason, -+ &reasonNameAddr, NULL); -+ -+ /* Print reason */ -+ printf("%s reason=", name); -+ if (status == SM_ERR_SUCCESS) -+ { -+ printf("%s", reasonNameAddr); -+ } -+ else -+ { -+ printf("%u", resetRec.reason); -+ } -+ if (resetRec.validErr) -+ { -+ printf(", errId=%d", (int32_t) resetRec.errId); -+ } -+ if (resetRec.validOrigin) -+ { -+ printf(", srcLm=%u", resetRec.origin); -+ } -+ printf("\n"); -+ -+ /* Print extended info */ -+ for (uint32_t ex = 0U; ex < resetRec.extLen; ex++) -+ { -+ printf(" 0x%08X\n", resetRec.extInfo[ex]); -+ } -+ } -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Load and clear persistent shutdown record of previous boot */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_ShutdownRecordLoad(dev_sm_rst_rec_t *shutdownRec) -+{ -+#if BRD_SM_RST_REC_NUM > 0 -+ uint32_t hdr = 0U; -+ uint32_t *ePtr = &(shutdownRec->extInfo[0]); -+ -+ /* Read and clear header */ -+ (void) BBNSM_GprGetValue(BBNSM, BRD_SM_RST_REC_FIRST, &hdr); -+ (void) BBNSM_GprSetValue(BBNSM, BRD_SM_RST_REC_FIRST, 0U); -+ -+ /* Valid? */ -+ if (((hdr & BRD_SM_REC_VLD_MASK ) >> BRD_SM_REC_VLD_SHIFT) != 0U) -+ { -+ shutdownRec->valid = true; -+ -+ /* Parse header */ -+ shutdownRec->reason = (hdr & BRD_SM_REC_REASON_MASK ) >> -+ BRD_SM_REC_REASON_SHIFT; -+ shutdownRec->errId = (hdr & BRD_SM_REC_EID_MASK ) >> -+ BRD_SM_REC_EID_SHIFT; -+ shutdownRec->validErr = ((hdr & BRD_SM_REC_VERR_MASK ) != 0U); -+ shutdownRec->origin = (hdr & BRD_SM_REC_SRC_MASK ) >> -+ BRD_SM_REC_SRC_SHIFT; -+ shutdownRec->validOrigin = ((hdr & BRD_SM_REC_VSRC_MASK ) != 0U); -+ shutdownRec->extLen = (hdr & BRD_SM_REC_LEN_MASK ) >> -+ BRD_SM_REC_LEN_SHIFT; -+ -+ /* Sign extend */ -+ if ((shutdownRec->errId & BRD_SM_REC_EID_SIGN) != 0U) -+ { -+ shutdownRec->errId |= BRD_SM_REC_EID_EXT; -+ } -+ -+ shutdownRec->extLen = MIN(shutdownRec->extLen, DEV_SM_NUM_EXT_INFO); -+ } -+ -+ /* Copy out extended info */ -+ for (uint8_t idx = 1U; idx < BRD_SM_RST_REC_NUM; idx++) -+ { -+ if (idx <= shutdownRec->extLen) -+ { -+ (void) BBNSM_GprGetValue(BBNSM, idx + BRD_SM_RST_REC_FIRST, -+ ePtr); -+ ePtr++; -+ } -+ else -+ { -+ break; -+ } -+ } -+#endif -+ -+ /* PMIC reset? */ -+ if ((g_pmicFaultFlags & (PF09_XFAIL_FLG | PF09_WD_FLG -+ | PF09_HFAULT_FLG)) != 0U) -+ { -+ shutdownRec->valid = true; -+ shutdownRec->reset = true; -+ shutdownRec->reason = DEV_SM_REASON_PMIC; -+ shutdownRec->validErr = false; -+ shutdownRec->validOrigin = false; -+ shutdownRec->extLen = 1U; -+ shutdownRec->extInfo[0] = g_pmicFaultFlags; -+ } -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Save shutdown record to persistent storage */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_ShutdownRecordSave(dev_sm_rst_rec_t shutdownRec) -+{ -+#if BRD_SM_RST_REC_NUM > 0 -+ uint32_t hdr; -+ const uint32_t *ePtr = &(shutdownRec.extInfo[0]); -+ -+ /* Store extended info */ -+ for (uint8_t idx = 1U; idx < BRD_SM_RST_REC_NUM; idx++) -+ { -+ if (idx <= shutdownRec.extLen) -+ { -+ (void) BBNSM_GprSetValue(BBNSM, idx + BRD_SM_RST_REC_FIRST, -+ *ePtr); -+ ePtr++; -+ } -+ else -+ { -+ break; -+ } -+ } -+ -+ /* Create header */ -+ hdr = BRD_SM_REC_REASON(shutdownRec.reason) -+ | BRD_SM_REC_EID(shutdownRec.errId) -+ | BRD_SM_REC_VERR(shutdownRec.validErr ? 1U : 0U) -+ | BRD_SM_REC_SRC(shutdownRec.origin) -+ | BRD_SM_REC_VSRC(shutdownRec.validOrigin ? 1U : 0U) -+ | BRD_SM_REC_LEN(shutdownRec.extLen) -+ | BRD_SM_REC_VLD(shutdownRec.valid ? 1U : 0U); -+ -+ /* Save header */ -+ (void) BBNSM_GprSetValue(BBNSM, BRD_SM_RST_REC_FIRST, hdr); -+#endif -+ -+ /* Print shutdown record */ -+ if (shutdownRec.reset) -+ { -+ BRD_SM_ResetRecordPrint("\nReset request:", shutdownRec); -+ } -+ else -+ { -+ BRD_SM_ResetRecordPrint("\nShutdown request:", shutdownRec); -+ } -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Reset board */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SystemReset(void) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ rgpio_pin_config_t gpioConfig = -+ { -+ kRGPIO_DigitalOutput, -+ 0U -+ }; -+ -+ /* Drive WDOG_ANY to reset PMIC */ -+ RGPIO_PinInit(GPIO1, 15U, &gpioConfig); -+ IOMUXC_SetPinMux(IOMUXC_PAD_WDOG_ANY__GPIO1_IO_BIT15, 0U); -+ -+ /* Wait for PMIC to react */ -+ SystemTimeDelay(1000U); -+ -+ /* Fall back to warm reset of the device */ -+ status = DEV_SM_SystemReset(); -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get PMIC info */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_PmicInfoGet(uint32_t idx, uint8_t *devAddr, uint8_t **info, -+ uint8_t *len) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Call PMIC driver to get info */ -+ switch (idx) -+ { -+ case 0U: -+ *devAddr = g_pf09Dev.devAddr; -+ if (!PF09_PmicInfoGet(&g_pf09Dev, info, len)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ break; -+ case 1U: -+ *devAddr = g_pf5301Dev.devAddr; -+ if (!PF53_PmicInfoGet(&g_pf5301Dev, info, len)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ break; -+ case 2U: -+ *devAddr = g_pf5302Dev.devAddr; -+ if (!PF53_PmicInfoGet(&g_pf5302Dev, info, len)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ break; -+ default: -+ status = SM_ERR_NOT_FOUND; -+ break; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* PMIC register write */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_PmicWrite(uint8_t devAddr, uint8_t regAddr, uint8_t val, -+ uint8_t mask) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Call PF09 driver write data */ -+ if (devAddr == g_pf09Dev.devAddr) -+ { -+ if (!PF09_PmicWrite(&g_pf09Dev, regAddr, val, mask)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ /* Call PF5301 driver write data */ -+ else if (devAddr == g_pf5301Dev.devAddr) -+ { -+ if (!PF53_PmicWrite(&g_pf5301Dev, regAddr, val, mask)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ /* Call PF5302 driver write data */ -+ else if (devAddr == g_pf5302Dev.devAddr) -+ { -+ if (!PF53_PmicWrite(&g_pf5302Dev, regAddr, val, mask)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ /* Invalid device address */ -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* PMIC register read */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_PmicRead(uint8_t devAddr, uint8_t regAddr, uint8_t *val) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Call PF09 driver read data */ -+ if (devAddr == g_pf09Dev.devAddr) -+ { -+ if (!PF09_PmicRead(&g_pf09Dev, regAddr, val)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ /* Call PF5301 driver read data */ -+ else if (devAddr == g_pf5301Dev.devAddr) -+ { -+ if (!PF53_PmicRead(&g_pf5301Dev, regAddr, val)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ /* Call PF5302 driver read data */ -+ else if (devAddr == g_pf5302Dev.devAddr) -+ { -+ if (!PF53_PmicRead(&g_pf5302Dev, regAddr, val)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ /* Invalid device address */ -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set mode of specified SoC supply */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SupplyModeSet(uint32_t domain, uint8_t voltMode) -+{ -+ /* Set voltage mode */ -+ return BRD_SM_VoltageModeSet(domain, voltMode); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get mode of specified SoC supply */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SupplyModeGet(uint32_t domain, uint8_t *voltMode) -+{ -+ /* Get voltage mode */ -+ return BRD_SM_VoltageModeGet(domain, voltMode); -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set voltage of specified SoC supply */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SupplyLevelSet(uint32_t domain, int32_t microVolt) -+{ -+ int32_t status = SM_ERR_INVALID_PARAMETERS; -+ -+ /* Check for wrap */ -+ if (microVolt <= (INT32_MAX - BOARD_PERF_VDROP)) -+ { -+ /* Set voltage level */ -+ status = BRD_SM_VoltageLevelSet(domain, microVolt -+ + BOARD_PERF_VDROP); -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get voltage of specified SoC supply */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SupplyLevelGet(uint32_t domain, int32_t *microVolt) -+{ -+ /* Get voltage level */ -+ return BRD_SM_VoltageLevelGet(domain, microVolt); -+} -+ -+/*==========================================================================*/ -+ -+/*--------------------------------------------------------------------------*/ -+/* Complete init after DEV_SM init */ -+/*--------------------------------------------------------------------------*/ -+static int32_t BRD_SM_InitComplete(uint32_t mSel) -+{ -+ /* Safe to call DEV_SM functions to init hardware. For example, to -+ enabled a power domain, configure a clock SSC, clock rate, or pin. -+ Not safe to call LMM functions! */ -+ -+ return SM_ERR_SUCCESS; -+} -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm.dox b/boards/ccimx95dvk/sm/brd_sm.dox -new file mode 100755 -index 000000000000..b7b0c14b322e ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm.dox -@@ -0,0 +1,55 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*! -+ * @addtogroup BRD_SM -+ * @{ -+ */ -+ -+/*! -+ -+@defgroup BRD_SM_MX95EVK BOARD_MX95EVK: i.MX95 EVK SM Implementation -+ -+@brief Module for the i.MX95 EVK for the SM. -+ -+Board Module -+============ -+ -+This port supports i.MX95 on both the LPDDR4X and LPDDR5 EVKs. See -+the @ref PORT_MX95_EVK section for more information. -+ -+*/ -+ -+/** @} */ -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm.h b/boards/ccimx95dvk/sm/brd_sm.h -new file mode 100755 -index 000000000000..ce758e1e4c64 ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm.h -@@ -0,0 +1,100 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2024 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+#ifndef BRD_SM_H -+#define BRD_SM_H -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing the API for the SM abstraction of the board. -+ */ -+/*==========================================================================*/ -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "brd_sm_handlers.h" -+#include "brd_sm_control.h" -+#include "brd_sm_sensor.h" -+#include "brd_sm_voltage.h" -+#include "brd_sm_bbm.h" -+#include "board.h" -+#include "brd_sm_api.h" -+ -+/* Defines */ -+ -+/*! Board name string */ -+#define BRD_SM_NAME "i.MX95 EVK" -+ -+/*! Board attributes */ -+#define BRD_SM_ATTR 0x0 -+ -+/*! Perf voltage drop */ -+#define BOARD_PERF_VDROP 20000 -+ -+/*! -+ * @name Board redirection defines -+ * @{ -+ */ -+#define SM_SYSTEMRESET BRD_SM_SystemReset /*!< Reset */ -+/** @} */ -+ -+/* Types */ -+ -+/* External variables */ -+ -+/* Functions */ -+ -+/*! -+ * Reset the system. -+ * -+ * Redirect to just spin. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_SUCCESS -+ */ -+int32_t BRD_SM_SystemReset(void); -+ -+/** @} */ -+ -+#endif /* BRD_SM_H */ -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_bbm.c b/boards/ccimx95dvk/sm/brd_sm_bbm.c -new file mode 100755 -index 000000000000..c2e5cd61dc9f ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_bbm.c -@@ -0,0 +1,674 @@ -+/* -+** ################################################################### -+** -+** Copyright 2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/* File containing the implementation of the PCA2131 RTC. */ -+/*==========================================================================*/ -+ -+/* Note this code is an example. The conversion functions between date and -+ seconds have not been fully tested to match The PCA2131 and calling -+ agents. */ -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "brd_sm.h" -+#include "lmm.h" -+ -+/* Local defines */ -+ -+/* Local types */ -+ -+/* Local variables */ -+ -+/* Local functions */ -+ -+static bool days2date(uint32_t days, uint32_t *year, uint32_t *month, -+ uint32_t *day, uint32_t *weekday); -+static void date2days(uint32_t year, uint32_t month, uint32_t day, -+ uint32_t *days); -+ -+/*--------------------------------------------------------------------------*/ -+/* Write RTC raw data */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BbmRtcWrite(uint32_t addr, uint32_t numVal, -+ const uint32_t *val) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check read size */ -+ if (numVal > 24U) -+ { -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ else -+ { -+ uint8_t buf[24]; -+ -+ /* Copy buffer (convert to 8-bit) */ -+ for (uint32_t idx = 0U; idx < numVal; idx++) -+ { -+ buf[idx] = U32_U8(val[idx]); -+ } -+ -+ /* Write data */ -+ if (!PCA2131_RtcWrite(&g_pca2131Dev, U32_U8(addr), -+ U32_U8(numVal), buf)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Read RTC raw data */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BbmRtcRead(uint32_t addr, uint32_t numVal, uint32_t *val) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check read size */ -+ if (numVal > 24U) -+ { -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ else -+ { -+ uint8_t buf[24] = { 0 }; -+ -+ /* Read data */ -+ if (PCA2131_RtcRead(&g_pca2131Dev, U32_U8(addr), -+ U32_U8(numVal), buf)) -+ { -+ /* Copy buffer (convert to 32-bit) */ -+ for (uint32_t idx = 0U; idx < numVal; idx++) -+ { -+ val[idx] = (uint32_t) buf[idx]; -+ } -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Return RTC name */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BbmRtcNameGet(uint32_t rtcId, string *rtcNameAddr, -+ int32_t *len) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ static int32_t s_maxLen = 0; -+ -+ static string const s_name[BRD_SM_NUM_RTC] = -+ { -+ "pca2131" -+ }; -+ -+ /* Get max string width */ -+ DEV_SM_MaxStringGet(len, &s_maxLen, s_name, BRD_SM_NUM_RTC); -+ -+ if (rtcId < DEV_SM_NUM_RTC) -+ { -+ status = DEV_SM_BbmRtcNameGet(rtcId, rtcNameAddr, len); -+ } -+ else -+ { -+ /* Return pointer to name */ -+ *rtcNameAddr = s_name[rtcId - DEV_SM_NUM_RTC]; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Return RTC info */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BbmRtcDescribe(uint32_t rtcId, uint32_t *secWidth, -+ uint32_t *tickWidth, uint32_t *ticksPerSec) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ if (rtcId < DEV_SM_NUM_RTC) -+ { -+ status = DEV_SM_BbmRtcDescribe(rtcId, secWidth, tickWidth, -+ ticksPerSec); -+ } -+ else -+ { -+ /* Return RTC info */ -+ *secWidth = 32U; -+ *tickWidth = 39U; -+ *ticksPerSec = 100U; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set RTC time */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BbmRtcTimeSet(uint32_t rtcId, uint64_t val, bool ticks) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ if (rtcId < DEV_SM_NUM_RTC) -+ { -+ status = DEV_SM_BbmRtcTimeSet(rtcId, val, ticks); -+ } -+ else -+ { -+ uint32_t year, month, day, hour, min, sec, hun, weekday; -+ uint32_t days, hours, mins, secs; -+ -+ /* Convert to hundredths of seconds */ -+ if (ticks) -+ { -+ uint64_t sec64, hun64; -+ -+ sec64 = val / 100U; -+ hun64 = val - (sec64 * 100U); -+ -+ secs = U64_U32(sec64); -+ hun = U64_U32(hun64); -+ } -+ else -+ { -+ hun = 0U; -+ secs = U64_U32(val); -+ } -+ -+ /* Calculate totals */ -+ mins = secs / 60U; -+ hours = secs / 3600U; -+ days = secs / 86400U; -+ -+ /* Calculate time */ -+ sec = secs % 60U; -+ min = mins % 60U; -+ hour = hours % 24U; -+ -+ /* Convert to date */ -+ if (days2date(days, &year, &month, &day, &weekday) -+ && (year <= 2069U)) -+ { -+ /* Convert year */ -+ year %= 100U; -+ -+ /* Write RTC */ -+ if (!PCA2131_RtcSet(&g_pca2131Dev, year, month, day, hour, -+ min, sec, hun, weekday)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ else -+ { -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ /* Enable battery */ -+ (void) PCA2131_PowerModeSet(&g_pca2131Dev, 0U); -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get RTC time */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BbmRtcTimeGet(uint32_t rtcId, uint64_t *val, bool ticks) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ if (rtcId < DEV_SM_NUM_RTC) -+ { -+ status = DEV_SM_BbmRtcTimeGet(rtcId, val, ticks); -+ } -+ else -+ { -+ uint32_t year, month, day, hour, min, sec, hun, weekday; -+ -+ /* Read RTC */ -+ if (PCA2131_RtcGet(&g_pca2131Dev, &year, &month, &day, &hour, &min, -+ &sec, &hun, &weekday)) -+ { -+ uint32_t days, secs; -+ -+ /* Convert year */ -+ if (year >= 70U) -+ { -+ year = year + 1900U; -+ } -+ else -+ { -+ year = year + 2000U; -+ } -+ -+ /* Convert to days */ -+ date2days(year, month, day, &days); -+ -+ /* Calculate seconds */ -+ secs = sec + (min * 60U) + (hour * 3600U); -+ secs += (days * 86400U); -+ -+ /* Check time format */ -+ if (ticks) -+ { -+ *val = (((uint64_t) secs) * 100U) + hun; -+ } -+ else -+ { -+ *val = ((uint64_t) secs); -+ } -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get BBM RTC state */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BbmRtcStateGet(uint32_t rtcId, uint32_t *state) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ if (rtcId < DEV_SM_NUM_RTC) -+ { -+ status = DEV_SM_BbmRtcStateGet(rtcId, state); -+ } -+ else -+ { -+ bool st; -+ -+ /* Default state */ -+ *state = 0U; -+ -+ /* Enable battery */ -+ (void) PCA2131_PowerModeSet(&g_pca2131Dev, 0U); -+ -+ /* Get battery state */ -+ if (PCA2131_TimeStatusGet(&g_pca2131Dev, &st)) -+ { -+ if (st) -+ { -+ *state |= LMM_BBM_STATE_RESET; -+ } -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ -+ /* Get battery state */ -+ if (PCA2131_BattStatusGet(&g_pca2131Dev, &st)) -+ { -+ if (st) -+ { -+ *state |= LMM_BBM_STATE_BATT_LOW; -+ } -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set RTC alarm */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BbmRtcAlarmSet(uint32_t rtcId, bool enable, uint64_t val) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ if (rtcId < DEV_SM_NUM_RTC) -+ { -+ status = DEV_SM_BbmRtcAlarmSet(rtcId, enable, val); -+ } -+ else -+ { -+ /* Enable? */ -+ if (enable) -+ { -+ uint32_t year, month, day, hour, min, sec, weekday; -+ uint32_t days, hours, mins, secs; -+ -+ /* Convert to seconds */ -+ secs = U64_U32(val); -+ -+ /* Calculate totals */ -+ mins = secs / 60U; -+ hours = secs / 3600U; -+ days = secs / 86400U; -+ -+ /* Calculate time */ -+ sec = secs % 60U; -+ min = mins % 60U; -+ hour = hours % 24U; -+ -+ /* Convert to date */ -+ if (days2date(days, &year, &month, &day, &weekday) -+ && (year <= 2069U)) -+ { -+ /* Convert year */ -+ year %= 100U; -+ -+ /* Write to RTC */ -+ if (PCA2131_AlarmSet(&g_pca2131Dev, day, hour, min, sec, -+ weekday)) -+ { -+ /* Enable interrupt */ -+ if (PCA2131_IntEnable(&g_pca2131Dev, true)) -+ { -+ /* Enable bus expander interrupt */ -+ status = BRD_SM_BusExpMaskSet(0U, BIT8(6)); -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ } -+ else -+ { -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ -+ /* Track if enabled for PCA2131 use */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ g_pca2131Used = true; -+ } -+ } -+ else -+ { -+ /* Disable interrupt */ -+ if (PCA2131_IntEnable(&g_pca2131Dev, false)) -+ { -+ /* Disable bus expander interrupt */ -+ status = BRD_SM_BusExpMaskSet(BIT8(6), BIT8(6)); -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* PCA2131 interrupt handler */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_BbmHandler(void) -+{ -+ /* Handle alarm */ -+ LMM_BbmRtcAlarmEvent(BRD_SM_RTC_PCA2131); -+ -+ /* Clear status flags */ -+ (void) PCA2131_IntClear(&g_pca2131Dev); -+} -+ -+/*==========================================================================*/ -+ -+/*--------------------------------------------------------------------------*/ -+/* Convert days since 1-1-1970 to date/time */ -+/*--------------------------------------------------------------------------*/ -+static bool days2date(uint32_t days, uint32_t *year, uint32_t *month, -+ uint32_t *day, uint32_t *weekday) -+{ -+ bool rc = true; -+ uint32_t newDays = 0U; -+ uint32_t era = 0U; -+ uint32_t doe = 0U; -+ uint32_t yoe = 0U; -+ uint32_t doy = 0U; -+ uint32_t moy = 0U; -+ -+ /* Check days value doesn't wrap */ -+ if (days <= (UINT32_MAX - 719468U)) -+ { -+ /* Adjust to 1-1-1970) */ -+ newDays = days + 719468U; -+ } -+ else -+ { -+ /* Set the return code incase value wraps */ -+ rc = false; -+ } -+ -+ if (rc) -+ { -+ /* Calculate the era */ -+ era = newDays / 146097U; -+ -+ /* Check the expression doesn't wrap due to negative value */ -+ if (newDays >= (era * 146097U)) -+ { -+ /* Calculate the day in the era */ -+ doe = newDays - (era * 146097U); -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ -+ if (rc) -+ { -+ /* Check the expression doesn't wrap due to negative value */ -+ if (doe >= (doe / 1460U)) -+ { -+ /* Calculate the year of era */ -+ yoe = (doe - (doe / 1460U) + (doe / 36524U)); -+ -+ /* Check the expression doesn't wrap due to negative value */ -+ if (yoe >= (doe / 146096U)) -+ { -+ yoe -= (doe / 146096U); -+ yoe /= 365U; -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ -+ if (rc) -+ { -+ /* Check the expression doesn't wrap due to negative value */ -+ if (yoe <= (UINT32_MAX - (era * 400U))) -+ { -+ /* Calculate year */ -+ *year = yoe + (era * 400U); -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ -+ if (rc) -+ { -+ /* Check the expression doesn't wrap due to negative value */ -+ if (doe >= (365U * yoe)) -+ { -+ /* Calculate day of the year */ -+ doy = doe - (365U * yoe); -+ -+ /* Check the expression doesn't wrap due to negative value */ -+ if (doy >= (yoe / 4U)) -+ { -+ doy -= (yoe / 4U); -+ doy += (yoe / 100U); -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ -+ if (rc) -+ { -+ /* Check the expression doesn't wrap due to negative value */ -+ if (doy <= (UINT32_MAX / 5U)) -+ { -+ /* Calculate month of year */ -+ moy = ((5U * doy) + 2U) / 153U; -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ -+ -+ if (rc) -+ { -+ /* Check the expression doesn't wrap due to negative value */ -+ if (moy <= ((UINT32_MAX - 2U) / 153U)) -+ { -+ /* Calculate day */ -+ *day = (((153U * moy) + 2U) / 5U) - 1U; -+ if (doy >= *day) -+ { -+ *day = doy - *day; -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ else -+ { -+ /* Set the return code if the expression value wraps */ -+ rc = false; -+ } -+ } -+ -+ if (rc) -+ { -+ /* Calculate month */ -+ *month= (moy < 10U) ? (moy + 3U) : (moy - 9U); -+ -+ /* Calculate day of the week */ -+ *weekday = (days + 4U) % 7U; -+ -+ /* Adjust year */ -+ *year += (*month <= 2U) ? 1U : 0U; -+ } -+ -+ /* Return code */ -+ return rc; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Convert date/time to days since 1-1-1970 */ -+/*--------------------------------------------------------------------------*/ -+static void date2days(uint32_t year, uint32_t month, uint32_t day, -+ uint32_t *days) -+{ -+ uint32_t newYear; -+ uint32_t era; -+ uint32_t doe; -+ uint32_t yoe; -+ uint32_t doy; -+ uint32_t moy; -+ -+ /* Adjust year */ -+ newYear = year - ((month <= 2U) ? 1U : 0U); -+ -+ /* Calculate era */ -+ era = newYear / 400U; -+ -+ /* Calculate the year of era */ -+ yoe = newYear - (era * 400U); -+ -+ /* Calculate month of year */ -+ moy = (month > 2U) ? (month - 3U) : (month + 9U); -+ -+ /* Calculate day of the year */ -+ doy = (((153U * moy) + 2U) / 5U) + (day - 1U); -+ -+ /* Calculate the day in the era */ -+ doe = (yoe * 365U) + (yoe / 4U) - (yoe / 100U) + doy; -+ -+ /* Calculate days */ -+ *days = (era * 146097U) + doe - 719468U; -+} -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_bbm.h b/boards/ccimx95dvk/sm/brd_sm_bbm.h -new file mode 100755 -index 000000000000..a96a8e1cc901 ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_bbm.h -@@ -0,0 +1,242 @@ -+/* -+** ################################################################### -+** -+** Copyright 2024 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing the SM API for the board PCA2131. -+ */ -+/*==========================================================================*/ -+ -+#ifndef BRD_SM_BBM_H -+#define BRD_SM_BBM_H -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "dev_sm.h" -+#include "fsl_pca2131.h" -+ -+/* Defines */ -+ -+/*! -+ * @name Board redirection defines -+ * @{ -+ */ -+#define SM_BBMRTCNAMEGET BRD_SM_BbmRtcNameGet /*!< RTC name */ -+#define SM_BBMRTCDESCRIBE BRD_SM_BbmRtcDescribe /*!< RTC describe */ -+#define SM_BBMRTCTIMESET BRD_SM_BbmRtcTimeSet /*!< RTC time set */ -+#define SM_BBMRTCTIMEGET BRD_SM_BbmRtcTimeGet /*!< RTC time get */ -+#define SM_BBMRTCSTATEGET BRD_SM_BbmRtcStateGet /*!< RTC state get */ -+#define SM_BBMRTCALARMSET BRD_SM_BbmRtcAlarmSet /*!< RTC alarm set */ -+/** @} */ -+ -+/*! Number of board RTC */ -+#define BRD_SM_NUM_RTC 1UL -+ -+/*! Total number of RTC */ -+#define SM_NUM_RTC (DEV_SM_NUM_RTC + BRD_SM_NUM_RTC) -+ -+/*! -+ * @name BRD_SM bbm domain indexes -+ */ -+/** @{ */ -+#define BRD_SM_RTC_PCA2131 (BRD_SM_NUM_RTC + 0U) /*!< PCA2131 RTC */ -+/** @} */ -+ -+/* Types */ -+ -+/* Functions */ -+ -+/*! -+ * @name Board sensor functions -+ * @{ -+ */ -+ -+/*! -+ * Read raw byte data from the RTC. -+ * -+ * @param[in] addr I2C address to read -+ * @param[in] numVal Number of bytes to read -+ * @param[out] val Return pointer for data -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_INVALID_PARAMETERS: if \a numVal is invalid. -+ * - ::SM_ERR_HARDWARE_ERROR: if I2C transfer fails. -+ */ -+int32_t BRD_SM_BbmRtcWrite(uint32_t addr, uint32_t numVal, -+ const uint32_t *val); -+ -+/*! -+ * Write raw byte data to the RTC. -+ * -+ * @param[in] addr I2C address to write -+ * @param[in] numVal Number of bytes to write -+ * @param[in] val Pointer to data -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_INVALID_PARAMETERS: if \a numVal is invalid. -+ * - ::SM_ERR_HARDWARE_ERROR: if I2C transfer fails. -+ */ -+int32_t BRD_SM_BbmRtcRead(uint32_t addr, uint32_t numVal, uint32_t *val); -+ -+/*! -+ * Get a board RTC name. -+ * -+ * @param[in] rtcId RTC name to get -+ * @param[out] rtcNameAddr Return pointer to name -+ * @param[out] len Return max length of all RTC names -+ * -+ * This function allows the caller to get the name of an RTC. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a rtcId is invalid. -+ */ -+int32_t BRD_SM_BbmRtcNameGet(uint32_t rtcId, string *rtcNameAddr, -+ int32_t *len); -+ -+/*! -+ * Get a board RTC description. -+ * -+ * @param[in] rtcId RTC description to get -+ * @param[out] secWidth Return pointer to seconds width -+ * @param[out] tickWidth Return pointer to tick width -+ * @param[out] ticksPerSec Return pointer to ticks per second -+ * -+ * This function allows the caller to get the description of an RTC. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a rtcId is invalid. -+ */ -+int32_t BRD_SM_BbmRtcDescribe(uint32_t rtcId, uint32_t *secWidth, -+ uint32_t *tickWidth, uint32_t *ticksPerSec); -+ -+/*! -+ * Set a board RTC time. -+ * -+ * @param[in] rtcId Identifier of the RTC -+ * @param[in] val Time in seconds/ticks to write to the RTC -+ * @param[in] ticks true = ticks, false = seconds -+ * -+ * This function allows a caller to set the RTC time. Time can be set in units -+ * of ticks or seconds. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_SUCCESS: if the RTC time was successfully set. -+ * - ::SM_ERR_NOT_FOUND: if \a rtcId pertains to a non-existent RTC. -+ * - ::SM_ERR_INVALID_PARAMETERS: if the time is not valid (beyond the -+ * range of the RTC). -+ */ -+int32_t BRD_SM_BbmRtcTimeSet(uint32_t rtcId, uint64_t val, bool ticks); -+ -+/*! -+ * Get a board RTC time. -+ * -+ * @param[in] rtcId Identifier of the RTC -+ * @param[out] val Time in seconds/ticks read from the RTC -+ * @param[in] ticks true = ticks, false = seconds -+ * -+ * This function allows a caller to read the RTC time. Time can be read in -+ * units of ticks or seconds. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_SUCCESS: if the RTC time was successfully read. -+ * - ::SM_ERR_NOT_FOUND: if \a rtcId pertains to a non-existent RTC. -+ */ -+int32_t BRD_SM_BbmRtcTimeGet(uint32_t rtcId, uint64_t *val, bool ticks); -+ -+/*! -+ * Get a board RTC state. -+ * -+ * @param[in] rtcId Identifier of the RTC -+ * @param[out] state Bit mask of state flags -+ * -+ * This function allows a caller to read the RTC state. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_SUCCESS: if the RTC state was successfully read. -+ * - ::SM_ERR_NOT_FOUND: if \a rtcId pertains to a non-existent RTC. -+ */ -+int32_t BRD_SM_BbmRtcStateGet(uint32_t rtcId, uint32_t *state); -+ -+/*! -+ * Set a board RTC alarm. -+ * -+ * @param[in] rtcId Identifier of the RTC -+ * @param[in] enable Enable flag (1=enabled, 0=disabled) -+ * @param[in] val Alarm time in seconds to write to the RTC -+ * -+ * This function allows a caller to enable/disable and set the time for the RTC -+ * alarm. The alarm can be set in seconds only. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_SUCCESS: if the alarm was successfully set. -+ * - ::SM_ERR_NOT_FOUND: if \a rtcId pertains to a non-existent RTC. -+ * - ::SM_ERR_INVALID_PARAMETERS: if the time is not valid (beyond the -+ * range of the RTC alarm). -+ */ -+int32_t BRD_SM_BbmRtcAlarmSet(uint32_t rtcId, bool enable, uint64_t val); -+ -+/*! -+ * Handle PCA2131 interrupt. -+ */ -+void BRD_SM_BbmHandler(void); -+ -+/** @} */ -+ -+#endif /* BRD_SM_BBM_H */ -+ -+/** @} */ -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_control.c b/boards/ccimx95dvk/sm/brd_sm_control.c -new file mode 100755 -index 000000000000..5b36c66c593c ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_control.c -@@ -0,0 +1,317 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2024 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/* File containing the implementation of the board controls. */ -+/*==========================================================================*/ -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "brd_sm.h" -+#include "lmm.h" -+ -+/* Local defines */ -+ -+/* PCAL6408A input signals */ -+#define PCAL6408A_INPUT_SD3_WAKE 0U -+#define PCAL6408A_INPUT_PCIE1_WAKE 4U -+#define PCAL6408A_INPUT_BT_WAKE 5U -+#define PCAL6408A_INPUT_PCIE2_WAKE 6U -+#define PCAL6408A_INPUT_BUTTON 7U -+ -+/* Local types */ -+ -+/* Local variables */ -+ -+/*--------------------------------------------------------------------------*/ -+/* Set a control value */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_ControlSet(uint32_t ctrlId, uint32_t numVal, -+ const uint32_t *val) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if ctrlId is within bounds*/ -+ if (ctrlId < SM_NUM_CTRL) -+ { -+ /* Check if device or board */ -+ if (ctrlId < DEV_SM_NUM_CTRL) -+ { -+ status = DEV_SM_ControlSet(ctrlId, numVal, val); -+ } -+ else if (ctrlId == BRD_SM_CTRL_PCA2131) -+ { -+ status = SM_ERR_NOT_SUPPORTED; -+ } -+ else if (ctrlId == BRD_SM_CTRL_TEST) -+ { -+ /* Test response to an reported SM error */ -+ SM_Error(SM_ERR_GENERIC_ERROR); -+ } -+ else -+ { -+ status = SM_ERR_NOT_SUPPORTED; -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get a control value */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_ControlGet(uint32_t ctrlId, uint32_t *numRtn, uint32_t *rtn) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if ctrlId is within bounds*/ -+ if (ctrlId < SM_NUM_CTRL) -+ { -+ /* Check if device or board */ -+ if (ctrlId < DEV_SM_NUM_CTRL) -+ { -+ status = DEV_SM_ControlGet(ctrlId, numRtn, rtn); -+ } -+ else if ((ctrlId == BRD_SM_CTRL_PCA2131) -+ || (ctrlId == BRD_SM_CTRL_TEST)) -+ { -+ *numRtn = 0U; -+ status = SM_ERR_NOT_SUPPORTED; -+ } -+ else -+ { -+ uint8_t data; -+ -+ /* Read expander data input */ -+ if (PCAL6408A_InputGet(&g_pcal6408aDev, &data)) -+ { -+ uint32_t shift = ctrlId - DEV_SM_NUM_CTRL; -+ -+ /* Adjust bit position */ -+ if (shift > 0U) -+ { -+ shift += 3U; -+ } -+ -+ *numRtn = 1U; -+ rtn[0] = (((uint32_t) data) >> shift) & 0x1UL; -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ } -+ else -+ { -+ *numRtn = 0U; -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set an extended control value */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_ControlExtSet(uint32_t ctrlId, uint32_t addr, -+ uint32_t numVal, const uint32_t *val) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if ctrlId is within bounds*/ -+ if (ctrlId < SM_NUM_CTRL) -+ { -+ /* Check if device or board */ -+ if (ctrlId < DEV_SM_NUM_CTRL) -+ { -+ status = DEV_SM_ControlExtSet(ctrlId, addr, numVal, val); -+ } -+ else if (ctrlId == BRD_SM_CTRL_PCA2131) -+ { -+ status = BRD_SM_BbmRtcWrite(addr, numVal, val); -+ } -+ else -+ { -+ status = SM_ERR_NOT_SUPPORTED; -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get an extended control value */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_ControlExtGet(uint32_t ctrlId, uint32_t addr, -+ uint32_t numRtn, uint32_t *rtn) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if ctrlId is within bounds*/ -+ if (ctrlId < SM_NUM_CTRL) -+ { -+ /* Check if device or board */ -+ if (ctrlId < DEV_SM_NUM_CTRL) -+ { -+ status = DEV_SM_ControlExtGet(ctrlId, addr, numRtn, rtn); -+ } -+ else if (ctrlId == BRD_SM_CTRL_PCA2131) -+ { -+ status = BRD_SM_BbmRtcRead(addr, numRtn, rtn); -+ } -+ else -+ { -+ status = SM_ERR_NOT_SUPPORTED; -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Configure notification flags */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_ControlFlagsSet(uint32_t ctrlId, uint32_t flags) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check if device or board */ -+ if (ctrlId < DEV_SM_NUM_CTRL) -+ { -+ status = DEV_SM_ControlFlagsSet(ctrlId, flags); -+ } -+ else -+ { -+ uint8_t mask; -+ uint32_t val; -+ uint32_t enb = (flags != 0U) ? 0U : 1U; -+ -+ switch (ctrlId) -+ { -+ case BRD_SM_CTRL_SD3_WAKE: -+ mask = BIT8(PCAL6408A_INPUT_SD3_WAKE); -+ val = (enb & 0x1U) << PCAL6408A_INPUT_SD3_WAKE; -+ break; -+ case BRD_SM_CTRL_PCIE1_WAKE: -+ mask = BIT8(PCAL6408A_INPUT_PCIE1_WAKE); -+ val = (enb & 0x1U) << PCAL6408A_INPUT_PCIE1_WAKE; -+ break; -+ case BRD_SM_CTRL_BT_WAKE: -+ mask = BIT8(PCAL6408A_INPUT_BT_WAKE); -+ val = (enb & 0x1U) << PCAL6408A_INPUT_BT_WAKE; -+ break; -+ case BRD_SM_CTRL_PCIE2_WAKE: -+ mask = BIT8(PCAL6408A_INPUT_PCIE2_WAKE); -+ val = (enb & 0x1U) << PCAL6408A_INPUT_PCIE2_WAKE; -+ break; -+ case BRD_SM_CTRL_BUTTON: -+ mask = BIT8(PCAL6408A_INPUT_BUTTON); -+ val = (enb & 0x1U) << PCAL6408A_INPUT_BUTTON; -+ break; -+ default: -+ status = SM_ERR_NOT_FOUND; -+ break; -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ status = BRD_SM_BusExpMaskSet((uint8_t) val, mask); -+ } -+ } -+ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Control handler */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_ControlHandler(uint8_t status, uint8_t val) -+{ -+ uint32_t data = (uint32_t) val; -+ -+ /* Handle SD3 wake */ -+ if ((status & BIT8(PCAL6408A_INPUT_SD3_WAKE)) != 0U) -+ { -+ LMM_MiscControlEvent(BRD_SM_CTRL_SD3_WAKE, -+ ((data >> PCAL6408A_INPUT_SD3_WAKE) & 0x1U) + 1U); -+ } -+ -+ /* Handle PCIe1 wake */ -+ if ((status & BIT8(PCAL6408A_INPUT_PCIE1_WAKE)) != 0U) -+ { -+ LMM_MiscControlEvent(BRD_SM_CTRL_PCIE1_WAKE, -+ ((data >> PCAL6408A_INPUT_PCIE1_WAKE) & 0x1U) + 1U); -+ } -+ -+ /* Handle BT wake */ -+ if ((status & BIT8(PCAL6408A_INPUT_BT_WAKE)) != 0U) -+ { -+ LMM_MiscControlEvent(BRD_SM_CTRL_BT_WAKE, -+ ((data >> PCAL6408A_INPUT_BT_WAKE) & 0x1U) + 1U); -+ } -+ -+ /* Handle PCIe2 wake */ -+ if (((status & BIT8(PCAL6408A_INPUT_PCIE2_WAKE)) != 0U) -+ && !g_pca2131Used) -+ { -+ LMM_MiscControlEvent(BRD_SM_CTRL_PCIE2_WAKE, -+ ((data >> PCAL6408A_INPUT_PCIE2_WAKE) & 0x1U) + 1U); -+ } -+ -+ /* Handle button */ -+ if ((status & BIT8(PCAL6408A_INPUT_BUTTON)) != 0U) -+ { -+ LMM_MiscControlEvent(BRD_SM_CTRL_BUTTON, -+ ((data >> PCAL6408A_INPUT_BUTTON) & 0x1U) + 1U); -+ } -+} -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_control.h b/boards/ccimx95dvk/sm/brd_sm_control.h -new file mode 100755 -index 000000000000..bf893782e1d7 ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_control.h -@@ -0,0 +1,202 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2024 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing the SM API for the board controls. -+ */ -+/*==========================================================================*/ -+ -+#ifndef BRD_SM_CONTROL_H -+#define BRD_SM_CONTROL_H -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "dev_sm.h" -+ -+/* Defines */ -+ -+/*! -+ * @name Board redirection defines -+ * @{ -+ */ -+#define SM_CONTROLSET BRD_SM_ControlSet /*!< Control set */ -+#define SM_CONTROLGET BRD_SM_ControlGet /*!< Control get */ -+#define SM_CONTROLEXTSET BRD_SM_ControlExtSet /*!< Extended control set */ -+#define SM_CONTROLEXTGET BRD_SM_ControlExtGet /*!< Extended control get */ -+#define SM_CONTROLFLAGSSET BRD_SM_ControlFlagsSet /*!< Control flags */ -+/** @} */ -+ -+/*! Number of board controls */ -+#define BRD_SM_NUM_CTRL 7UL -+ -+/*! Total number of controls */ -+#define SM_NUM_CTRL (DEV_SM_NUM_CTRL + BRD_SM_NUM_CTRL) -+ -+/*! -+ * @name BRD_SM control domain indexes -+ */ -+/** @{ */ -+#define BRD_SM_CTRL_SD3_WAKE (DEV_SM_NUM_CTRL + 0U) /*!< PCAL6408A-0 */ -+#define BRD_SM_CTRL_PCIE1_WAKE (DEV_SM_NUM_CTRL + 1U) /*!< PCAL6408A-4 */ -+#define BRD_SM_CTRL_BT_WAKE (DEV_SM_NUM_CTRL + 2U) /*!< PCAL6408A-5 */ -+#define BRD_SM_CTRL_PCIE2_WAKE (DEV_SM_NUM_CTRL + 3U) /*!< PCAL6408A-6 */ -+#define BRD_SM_CTRL_BUTTON (DEV_SM_NUM_CTRL + 4U) /*!< PCAL6408A-7 */ -+#define BRD_SM_CTRL_TEST (DEV_SM_NUM_CTRL + 5U) /*!< Test */ -+#define BRD_SM_CTRL_PCA2131 (DEV_SM_NUM_CTRL + 6U) /*!< PCA2131 raw access */ -+/** @} */ -+ -+/* Types */ -+ -+/* Functions */ -+ -+/*! -+ * @name Board control functions -+ * @{ -+ */ -+ -+/*! -+ * Set a board control value. -+ * -+ * @param[in] ctrlId Index of control to write -+ * @param[in] numVal Number of array elements -+ * @param[in] val Pointer to array of values to set -+ * -+ * This function allows a caller to write an array of values for -+ * a control. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if ctrlId is not valid. -+ */ -+int32_t BRD_SM_ControlSet(uint32_t ctrlId, uint32_t numVal, -+ const uint32_t *val); -+ -+/*! -+ * Get a board control value. -+ * -+ * @param[in] ctrlId Index of control to read -+ * @param[out] numRtn Return pointer to number of array elements -+ * @param[out] rtn Pointer to array to store return -+ * -+ * This function allows a caller to read an array of values for -+ * a control. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if ctrlId is not valid. -+ */ -+int32_t BRD_SM_ControlGet(uint32_t ctrlId, uint32_t *numRtn, uint32_t *rtn); -+ -+/*! -+ * Set an extended board control value. -+ * -+ * @param[in] ctrlId Index of control to write -+ * @param[in] addr Address of write -+ * @param[in] numVal Number of array elements -+ * @param[in] val Pointer to array of values to set -+ * -+ * This function allows a caller to write an array of values for -+ * a control. Extra parameters allow this write to be more complex -+ * such as to an I2C. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if ctrlId is not valid. -+ * - ::SM_ERR_INVALID_PARAMETERS: if addr or numVal are not valid. -+ */ -+int32_t BRD_SM_ControlExtSet(uint32_t ctrlId, uint32_t addr, -+ uint32_t numVal, const uint32_t *val); -+ -+/*! -+ * Get an extended board control value. -+ * -+ * @param[in] ctrlId Index of control to read -+ * @param[in] addr Address of read -+ * @param[in] numRtn Number of array elements -+ * @param[out] rtn Pointer to array to store return -+ * -+ * This function allows a caller to read an array of values for -+ * a control. Extra parameters allow this read to be more complex -+ * such as from an I2C. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if ctrlId is not valid. -+ * - ::SM_ERR_INVALID_PARAMETERS: if addr or numRtn are not valid. -+ */ -+int32_t BRD_SM_ControlExtGet(uint32_t ctrlId, uint32_t addr, -+ uint32_t numRtn, uint32_t *rtn); -+ -+/*! -+ * Configure notification flags for a control. -+ * -+ * @param[in] ctrlId Index of control to take action -+ * @param[in] flags Action to take -+ * -+ * This function allows a caller to configure the notification flags. -+ * These often enable/disable hardware interrupts. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if ctrlId is not valid. -+ */ -+int32_t BRD_SM_ControlFlagsSet(uint32_t ctrlId, uint32_t flags); -+ -+/*! -+ * Control handler. -+ * -+ * @param[in] status Interrupt status -+ * @param[in] val Signal state -+ */ -+void BRD_SM_ControlHandler(uint8_t status, uint8_t val); -+ -+/** @} */ -+ -+#endif /* BRD_SM_CONTROL_H */ -+ -+/** @} */ -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_handlers.c b/boards/ccimx95dvk/sm/brd_sm_handlers.c -new file mode 100755 -index 000000000000..a96f6ce0e2f4 ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_handlers.c -@@ -0,0 +1,372 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/* File containing the implementation of the handlers for the board. */ -+/*==========================================================================*/ -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "brd_sm.h" -+#include "dev_sm.h" -+#include "fsl_lpi2c.h" -+#include "fsl_rgpio.h" -+ -+/* Local defines */ -+ -+/* I2C device addresses */ -+#define BOARD_PF09_DEV_ADDR 0x08U -+#define BOARD_PCAL6408A_DEV_ADDR 0x20U -+#define BOARD_PF5301_DEV_ADDR 0x2AU -+#define BOARD_PF5302_DEV_ADDR 0x29U -+#define BOARD_PCA2131_DEV_ADDR 0x53U -+ -+#define PCAL6408A_INPUT_PF53_ARM_PG 1U -+#define PCAL6408A_INPUT_PF53_SOC_PG 2U -+#define PCAL6408A_INPUT_PF09_INT 3U -+#define PCAL6408A_INPUT_PCA2131_INT 6U -+ -+/* Local types */ -+ -+/* Local variables */ -+ -+/* Global variables */ -+ -+PCAL6408A_Type g_pcal6408aDev; -+PF09_Type g_pf09Dev; -+PF53_Type g_pf5301Dev; -+PF53_Type g_pf5302Dev; -+PCA2131_Type g_pca2131Dev; -+ -+irq_prio_info_t g_brdIrqPrioInfo[BOARD_NUM_IRQ_PRIO_IDX] = -+{ -+ [BOARD_IRQ_PRIO_IDX_GPIO1_0] = -+ { -+ .irqId = GPIO1_0_IRQn, -+ .irqCntr = 0U, -+ .basePrio = 0U, -+ .dynPrioEn = false -+ } -+}; -+ -+bool g_pca2131Used = false; -+ -+uint32_t g_pmicFaultFlags = 0U; -+ -+/* Local functions */ -+ -+static void BRD_SM_Pf09Handler(void); -+ -+/*--------------------------------------------------------------------------*/ -+/* Init serial devices */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SerialDevicesInit(void) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ LPI2C_Type *const s_i2cBases[] = LPI2C_BASE_PTRS; -+ pcal6408a_config_t pcal6408Config; -+ -+ /* Fill in PCAL6408A dev */ -+ g_pcal6408aDev.i2cBase = s_i2cBases[BOARD_I2C_INSTANCE]; -+ g_pcal6408aDev.devAddr = BOARD_PCAL6408A_DEV_ADDR; -+ -+ /* Init the bus expander */ -+ PCAL6408A_GetDefaultConfig(&pcal6408Config); -+ pcal6408Config.inputLatch = 0xFFU; -+ if (!PCAL6408A_Init(&g_pcal6408aDev, &pcal6408Config)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ else -+ { -+ if (!PCAL6408A_IntMaskSet(&g_pcal6408aDev, PCAL6408A_INITIAL_MASK)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ /* Fill in PF09 PMIC handle */ -+ g_pf09Dev.i2cBase = s_i2cBases[BOARD_I2C_INSTANCE]; -+ g_pf09Dev.devAddr = BOARD_PF09_DEV_ADDR; -+ g_pf09Dev.crcEn = true; -+ -+ /* Initialize PF09 PMIC */ -+ if (!PF09_Init(&g_pf09Dev)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ -+ /* Disable voltage monitor 1 */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ if (!PF09_MonitorEnable(&g_pf09Dev, PF09_VMON1, false)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Disable voltage monitor 2 */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ if (!PF09_MonitorEnable(&g_pf09Dev, PF09_VMON2, false)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Disable the PWRUP interrupt */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ const uint8_t mask[PF09_MASK_LEN] = -+ { -+ [PF09_MASK_IDX_STATUS1] = 0x08U -+ }; -+ -+ if (!PF09_IntEnable(&g_pf09Dev, mask, PF09_MASK_LEN, false)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Change the LDO3 sequence */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ if (!PF09_PmicWrite(&g_pf09Dev, 0x4AU, 0x1EU, 0xFFU)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Set the LDO3 OV bypass */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ if (!PF09_PmicWrite(&g_pf09Dev, 0x7FU, 0xFCU, 0xFFU)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Enable the LDO3 in RUN mode */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ if (!PF09_PmicWrite(&g_pf09Dev, 0x7DU, 0x20U, 0xFFU)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Set the OV debounce to 50us due to errata ER011/12 */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ if (!PF09_PmicWrite(&g_pf09Dev, 0x37U, 0x94U, 0xFFU)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Save and clear any fault flags */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ if (!PF09_FaultFlags(&g_pf09Dev, &g_pmicFaultFlags, true)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Handle any already pending PF09 interrupts */ -+ if (status == SM_ERR_SUCCESS) -+ { -+ BRD_SM_Pf09Handler(); -+ } -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ /* Fill in PF5301 PMIC handle */ -+ g_pf5301Dev.i2cBase = s_i2cBases[BOARD_I2C_INSTANCE]; -+ g_pf5301Dev.devAddr = BOARD_PF5301_DEV_ADDR; -+ -+ /* Initialize PF5301 PMIC */ -+ if (!PF53_Init(&g_pf5301Dev)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ /* Fill in PF5302 PMIC handle */ -+ g_pf5302Dev.i2cBase = s_i2cBases[BOARD_I2C_INSTANCE]; -+ g_pf5302Dev.devAddr = BOARD_PF5302_DEV_ADDR; -+ -+ /* Initialize PF5302 PMIC */ -+ if (!PF53_Init(&g_pf5302Dev)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ /* Fill in PCA2131 RTC handle */ -+ g_pca2131Dev.i2cBase = s_i2cBases[BOARD_I2C_INSTANCE]; -+ g_pca2131Dev.devAddr = BOARD_PCA2131_DEV_ADDR; -+ -+ /* Initialize PCA2131 RTC */ -+ if (!PCA2131_Init(&g_pca2131Dev)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ if (status == SM_ERR_SUCCESS) -+ { -+ rgpio_pin_config_t gpioConfig = -+ { -+ kRGPIO_DigitalInput, -+ 0U -+ }; -+ -+ /* Init GPIO1-10 */ -+ RGPIO_PinInit(GPIO1, 10U, &gpioConfig); -+ RGPIO_SetPinInterruptConfig(GPIO1, 10U, kRGPIO_InterruptOutput0, -+ kRGPIO_InterruptLogicZero); -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set bus expander interrupt mask */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_BusExpMaskSet(uint8_t val, uint8_t mask) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ static uint8_t cachedMask = PCAL6408A_INITIAL_MASK; -+ uint8_t newMask = (cachedMask & ~mask); -+ -+ newMask |= val; -+ -+ /* Mask changed? */ -+ if (cachedMask != newMask) -+ { -+ if (PCAL6408A_IntMaskSet(&g_pcal6408aDev, newMask)) -+ { -+ cachedMask = newMask; -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* GPIO1 handler */ -+/*--------------------------------------------------------------------------*/ -+void GPIO1_0_IRQHandler(void) -+{ -+ uint32_t flags; -+ uint8_t status, val; -+ -+ /* Get GPIO status */ -+ flags = RGPIO_GetPinsInterruptFlags(GPIO1, kRGPIO_InterruptOutput0); -+ -+ /* Get PCAL6408A status */ -+ (void) PCAL6408A_IntStatusGet(&g_pcal6408aDev, &status); -+ -+ /* Get value and Clear PCAL6408A interrupts */ -+ (void) PCAL6408A_InputGet(&g_pcal6408aDev, &val); -+ -+ /* Clear GPIO interrupts */ -+ RGPIO_ClearPinsInterruptFlags(GPIO1, kRGPIO_InterruptOutput0, flags); -+ -+ /* Handle PF09 interrupt */ -+ if ((status & BIT8(PCAL6408A_INPUT_PF09_INT)) != 0U) -+ { -+ /* Asserts low */ -+ if ((val & BIT8(PCAL6408A_INPUT_PF09_INT)) == 0U) -+ { -+ BRD_SM_Pf09Handler(); -+ } -+ } -+ -+ /* Handle PCA2131 interrupt */ -+ if (g_pca2131Used && ((status & BIT8(PCAL6408A_INPUT_PCA2131_INT)) -+ != 0U)) -+ { -+ /* Asserts low */ -+ if ((val & BIT8(PCAL6408A_INPUT_PCA2131_INT)) == 0U) -+ { -+ BRD_SM_BbmHandler(); -+ } -+ } -+ -+ /* Handle controls interrupts */ -+ BRD_SM_ControlHandler(status, val); -+ -+ /* Adjust dynamic IRQ priority */ -+ (void) DEV_SM_IrqPrioUpdate(); -+} -+ -+/*==========================================================================*/ -+ -+/*--------------------------------------------------------------------------*/ -+/* PF09 handler */ -+/*--------------------------------------------------------------------------*/ -+static void BRD_SM_Pf09Handler(void) -+{ -+ uint8_t stat[PF09_MASK_LEN] = { 0 }; -+ -+ /* Read status of interrupts */ -+ (void) PF09_IntStatus(&g_pf09Dev, stat, PF09_MASK_LEN); -+ -+ /* Clear pending */ -+ (void) PF09_IntClear(&g_pf09Dev, stat, PF09_MASK_LEN); -+ -+ /* Handle pending temp interrupts */ -+ if ((stat[PF09_MASK_IDX_STATUS2] & 0x0FU) != 0U) -+ { -+ BRD_SM_SensorHandler(); -+ } -+} -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_handlers.h b/boards/ccimx95dvk/sm/brd_sm_handlers.h -new file mode 100755 -index 000000000000..e34d52b50f7a ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_handlers.h -@@ -0,0 +1,129 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2024 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+#ifndef BRD_SM_HANDLERS_H -+#define BRD_SM_HANDLERS_H -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing the implementation of interrupt handlers for the -+ * board. -+ */ -+/*==========================================================================*/ -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "dev_sm.h" -+#include "fsl_pcal6408a.h" -+#include "fsl_pf09.h" -+#include "fsl_pf53.h" -+#include "fsl_pca2131.h" -+ -+/* Defines */ -+ -+/*! Initial PCAL6408A interrupt mask */ -+#define PCAL6408A_INITIAL_MASK 0xF7U -+ -+/*! Number of board IRQs participating dynamic prioritization */ -+#define BOARD_NUM_IRQ_PRIO_IDX 1U -+ -+/*! Dynamic IRQ priority table index for GPIO1 */ -+#define BOARD_IRQ_PRIO_IDX_GPIO1_0 0U -+ -+/* Types */ -+ -+/* External variables */ -+ -+/*! Handle to access PCAL6408A */ -+extern PCAL6408A_Type g_pcal6408aDev; -+ -+/*! Handle to access PF09 */ -+extern PF09_Type g_pf09Dev; -+ -+/*! Handle to access PF5301 */ -+extern PF53_Type g_pf5301Dev; -+ -+/*! Handle to access PF5302 */ -+extern PF53_Type g_pf5302Dev; -+ -+/*! Handle to access PCA2131 */ -+extern PCA2131_Type g_pca2131Dev; -+ -+/*! Array of dynamic priority info for board IRQs */ -+extern irq_prio_info_t g_brdIrqPrioInfo[BOARD_NUM_IRQ_PRIO_IDX]; -+ -+/*! Indicator if bus expander bit[6] is used for the PF2131 RTC */ -+extern bool g_pca2131Used; -+ -+/*! Fault flags from the PMICs */ -+extern uint32_t g_pmicFaultFlags; -+ -+/* Functions */ -+ -+/*! -+ * Init serial devices. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ */ -+int32_t BRD_SM_SerialDevicesInit(void); -+ -+/*! -+ * Enable/disable bus expander interrupts. -+ * -+ * @param[in] val Value to write -+ * @param[in] mask Mask of bits to modify -+ * -+ * This function allows a caller to configure the bus expander. -+ * interrupts. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ */ -+int32_t BRD_SM_BusExpMaskSet(uint8_t val, uint8_t mask); -+ -+/*! -+ * GPIO 1 interrupt 0 handler. -+ */ -+void GPIO1_0_IRQHandler(void); -+ -+/** @} */ -+ -+#endif /* BRD_SM_HANDLERS_H */ -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_sensor.c b/boards/ccimx95dvk/sm/brd_sm_sensor.c -new file mode 100755 -index 000000000000..92e415459477 ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_sensor.c -@@ -0,0 +1,375 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/* File containing the implementation of the board sensors. */ -+/*==========================================================================*/ -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "brd_sm.h" -+#include "lmm.h" -+ -+/* Local defines */ -+ -+/* Local types */ -+ -+/* Local variables */ -+ -+static bool sensorEnb[BRD_SM_NUM_SENSOR]; -+ -+/*--------------------------------------------------------------------------*/ -+/* Return sensor name */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SensorNameGet(uint32_t sensorId, string *sensorNameAddr, -+ int32_t *len) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ static int32_t s_maxLen = 0; -+ -+ static string const s_name[BRD_SM_NUM_SENSOR] = -+ { -+ "temp_pf09", -+ "temp_pf53_soc", -+ "temp_pf53_arm" -+ }; -+ -+ /* Get max string width */ -+ DEV_SM_MaxStringGet(len, &s_maxLen, s_name, BRD_SM_NUM_SENSOR); -+ -+ /* Check to see if sensorId is within bounds */ -+ if (sensorId < SM_NUM_SENSOR) -+ { -+ /* Check if device or board */ -+ if (sensorId < DEV_SM_NUM_SENSOR) -+ { -+ status = DEV_SM_SensorNameGet(sensorId, sensorNameAddr, len); -+ } -+ else -+ { -+ uint32_t brdSensorId = sensorId - DEV_SM_NUM_SENSOR; -+ -+ /* Return pointer to name */ -+ *sensorNameAddr = s_name[brdSensorId]; -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Return sensor description */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SensorDescribe(uint32_t sensorId, -+ dev_sm_sensor_desc_t *desc) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if sensorId is within bounds */ -+ if (sensorId < SM_NUM_SENSOR) -+ { -+ /* Check if device or board */ -+ if (sensorId < DEV_SM_NUM_SENSOR) -+ { -+ status = DEV_SM_SensorDescribe(sensorId, desc); -+ } -+ else -+ { -+ desc->sensorType = 2U; -+ desc->sensorExponent = 0; -+ desc->numTripPoints = 0U; -+ desc->timestampSupport = false; -+ desc->timestampExponent = 0; -+ -+ /* PF09? */ -+ if (sensorId == BRD_SM_SENSOR_TEMP_PF09) -+ { -+ desc->numTripPoints = 1U; -+ } -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get sensor reading */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SensorReadingGet(uint32_t sensorId, int64_t *sensorValue, -+ uint64_t *sensorTimestamp) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if sensorId is within bounds */ -+ if (sensorId < SM_NUM_SENSOR) -+ { -+ /* Check if device or board */ -+ if (sensorId < DEV_SM_NUM_SENSOR) -+ { -+ status = DEV_SM_SensorReadingGet(sensorId, sensorValue, -+ sensorTimestamp); -+ } -+ else -+ { -+ uint32_t brdSensorId = sensorId - DEV_SM_NUM_SENSOR; -+ -+ /* Check if enabled */ -+ if (sensorEnb[brdSensorId]) -+ { -+ int32_t temp; -+ bool rc = false; -+ -+ /* Read sensor */ -+ switch (sensorId) -+ { -+ case BRD_SM_SENSOR_TEMP_PF09: -+ rc = PF09_TempGet(&g_pf09Dev, &temp); -+ break; -+ case BRD_SM_SENSOR_TEMP_PF5301: -+ rc = PF53_TempGet(&g_pf5301Dev, &temp); -+ break; -+ default: -+ rc = PF53_TempGet(&g_pf5302Dev, &temp); -+ break; -+ } -+ -+ if (rc) -+ { -+ *sensorValue = (int64_t) temp; -+ *sensorTimestamp = 0ULL; -+ } -+ else -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_SUPPORTED; -+ } -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set sensor trippoint */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SensorTripPointSet(uint32_t sensorId, uint8_t tripPoint, -+ int64_t value, uint8_t eventControl) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if sensorId is within bounds */ -+ if (sensorId < SM_NUM_SENSOR) -+ { -+ /* Check if device or board */ -+ if (sensorId < DEV_SM_NUM_SENSOR) -+ { -+ status = DEV_SM_SensorTripPointSet(sensorId, tripPoint, -+ value, eventControl); -+ } -+ else -+ { -+ uint32_t brdSensorId = sensorId - DEV_SM_NUM_SENSOR; -+ -+ /* Check if enabled */ -+ if ((sensorId == BRD_SM_SENSOR_TEMP_PF09) -+ && sensorEnb[brdSensorId]) -+ { -+ /* Check trip point */ -+ if (tripPoint == 0U) -+ { -+ if (eventControl == DEV_SM_SENSOR_TP_NONE) -+ { -+ if (!PF09_TempAlarmSet(&g_pf09Dev, 500)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ else if (eventControl == DEV_SM_SENSOR_TP_RISING) -+ { -+ /* Check value is within int32_t range */ -+ if (CHECK_I64_FIT_I32(value)) -+ { -+ int32_t temp = (int32_t) value; -+ -+ if (!PF09_TempAlarmSet(&g_pf09Dev, temp)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ else -+ { -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ } -+ else -+ { -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ } -+ else -+ { -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_SUPPORTED; -+ } -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Enable/disable sensor */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SensorEnable(uint32_t sensorId, bool enable, -+ bool timestampReporting) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if sensorId is within bounds */ -+ if (sensorId < SM_NUM_SENSOR) -+ { -+ /* Check if device or board */ -+ if (sensorId < DEV_SM_NUM_SENSOR) -+ { -+ status = DEV_SM_SensorEnable(sensorId, enable, -+ timestampReporting); -+ } -+ else -+ { -+ uint32_t brdSensorId = sensorId - DEV_SM_NUM_SENSOR; -+ -+ /* Timestamp not supported */ -+ if (timestampReporting) -+ { -+ status = SM_ERR_NOT_SUPPORTED; -+ } -+ else -+ { -+ /* Record sensor enable */ -+ sensorEnb[brdSensorId] = enable; -+ -+ /* Disable alarm */ -+ if ((sensorId == BRD_SM_SENSOR_TEMP_PF09) -+ && !sensorEnb[brdSensorId]) -+ { -+ if (!PF09_TempAlarmSet(&g_pf09Dev, 500)) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ } -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Return sensor enable status */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_SensorIsEnabled(uint32_t sensorId, bool *enabled, -+ bool *timestampReporting) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check to see if sensorId is within bounds */ -+ if (sensorId < SM_NUM_SENSOR) -+ { -+ uint32_t brdSensorId = sensorId - DEV_SM_NUM_SENSOR; -+ -+ /* Check if device or board */ -+ if (sensorId < DEV_SM_NUM_SENSOR) -+ { -+ status = DEV_SM_SensorIsEnabled(sensorId, enabled, -+ timestampReporting); -+ } -+ else -+ { -+ /* Return sensor enable */ -+ *enabled = sensorEnb[brdSensorId]; -+ *timestampReporting = false; -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* PMIC sensor handler */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_SensorHandler(void) -+{ -+ /* Send sensor event */ -+ LMM_SensorEvent(BRD_SM_SENSOR_TEMP_PF09, 0U, 1U); -+} -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_sensor.h b/boards/ccimx95dvk/sm/brd_sm_sensor.h -new file mode 100755 -index 000000000000..98b68ae9d53a ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_sensor.h -@@ -0,0 +1,210 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing the SM API for the board sensors. -+ */ -+/*==========================================================================*/ -+ -+#ifndef BRD_SM_SENSOR_H -+#define BRD_SM_SENSOR_H -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "dev_sm.h" -+ -+/* Defines */ -+ -+/*! -+ * @name Board redirection defines -+ * @{ -+ */ -+#define SM_SENSORNAMEGET BRD_SM_SensorNameGet /*!< Sensor name */ -+#define SM_SENSORDESCRIBE BRD_SM_SensorDescribe /*!< Sensor describe */ -+#define SM_SENSORREADINGGET BRD_SM_SensorReadingGet /*!< Sensor read */ -+#define SM_SENSORTRIPPOINTSET BRD_SM_SensorTripPointSet /*!< Sensor trip point */ -+#define SM_SENSORENABLE BRD_SM_SensorEnable /*!< Sensor enable */ -+#define SM_SENSORISENABLED BRD_SM_SensorIsEnabled /*!< Sensor status */ -+/** @} */ -+ -+/*! Number of board sensors */ -+#define BRD_SM_NUM_SENSOR 3UL -+ -+/*! Total number of sensors */ -+#define SM_NUM_SENSOR (DEV_SM_NUM_SENSOR + BRD_SM_NUM_SENSOR) -+ -+/*! -+ * @name BRD_SM sensor domain indexes -+ */ -+/** @{ */ -+#define BRD_SM_SENSOR_TEMP_PF09 (DEV_SM_NUM_SENSOR + 0U) /*!< PF09 temp sensor */ -+#define BRD_SM_SENSOR_TEMP_PF5302 (DEV_SM_NUM_SENSOR + 1U) /*!< PF5302 temp sensor */ -+#define BRD_SM_SENSOR_TEMP_PF5301 (DEV_SM_NUM_SENSOR + 2U) /*!< PF5301 temp sensor */ -+/** @} */ -+ -+/* Types */ -+ -+/* Functions */ -+ -+/*! -+ * @name Board sensor functions -+ * @{ -+ */ -+ -+/*! -+ * Get a board sensor name. -+ * -+ * @param[in] sensorId Sensor name to get -+ * @param[out] sensorNameAddr Return pointer to name -+ * @param[out] len Return max length of all sensor names -+ * -+ * This function allows the caller to get the name of a sensor. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a sensorId is invalid. -+ */ -+int32_t BRD_SM_SensorNameGet(uint32_t sensorId, string *sensorNameAddr, -+ int32_t *len); -+ -+/*! -+ * Get a board sensor description. -+ * -+ * @param[in] sensorId Sensor description to get -+ * @param[out] desc Return pointer to the description -+ * -+ * This function allows the caller to get the description of a sensor. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a sensorId is invalid. -+ */ -+int32_t BRD_SM_SensorDescribe(uint32_t sensorId, -+ dev_sm_sensor_desc_t *desc); -+ -+/*! -+ * Read a board sensor. -+ * -+ * @param[in] sensorId Sensor to read -+ * @param[out] sensorValue Return pointer to sensor value -+ * @param[out] sensorTimestamp Return pointer to timestamp -+ * -+ * This function allows the caller to read the value of a sensor. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a sensorId is invalid. -+ */ -+int32_t BRD_SM_SensorReadingGet(uint32_t sensorId, int64_t *sensorValue, -+ uint64_t *sensorTimestamp); -+ -+/*! -+ * Configure a trip point for a board sensor. -+ * -+ * @param[in] sensorId Sensor to configure TP -+ * @param[in] tripPoint Trip point ID -+ * @param[in] value Value to trip at -+ * @param[in] eventControl Event control (notifications) -+ * -+ * This function allows the caller to configure one of the trip -+ * points for a sensor. The caller can also configure which crossing -+ * direction will generate a notification. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a sensorId is invalid. -+ */ -+int32_t BRD_SM_SensorTripPointSet(uint32_t sensorId, uint8_t tripPoint, -+ int64_t value, uint8_t eventControl); -+ -+/*! -+ * Enable/disable a board sensor. -+ * -+ * @param[in] sensorId Sensor to enable/disable -+ * @param[in] enable True to enable -+ * @param[in] timestampReporting True to enable timestamp reporting -+ * -+ * This function allows the caller to enable/disable a sensor. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a sensorId is invalid. -+ */ -+int32_t BRD_SM_SensorEnable(uint32_t sensorId, bool enable, -+ bool timestampReporting); -+ -+/*! -+ * Get enable/disable state of a board sensor. -+ * -+ * @param[in] sensorId Sensor to get state -+ * @param[out] enabled Return pointer to enable -+ * @param[out] timestampReporting Return pointer to reporting -+ * -+ * This function allows the caller to get the enable/disable -+ * state of a sensor. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a sensorId is invalid. -+ */ -+int32_t BRD_SM_SensorIsEnabled(uint32_t sensorId, bool *enabled, -+ bool *timestampReporting); -+ -+/*! -+ * Sensor interrupt handler. -+ * -+ * Called by PF09 interrupt handler. -+ */ -+void BRD_SM_SensorHandler(void); -+ -+/** @} */ -+ -+#endif /* BRD_SM_SENSOR_H */ -+ -+/** @} */ -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_voltage.c b/boards/ccimx95dvk/sm/brd_sm_voltage.c -new file mode 100755 -index 000000000000..b81ffd970294 ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_voltage.c -@@ -0,0 +1,565 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/* File containing the implementation of the board voltages. */ -+/*==========================================================================*/ -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "brd_sm.h" -+ -+/* Local defines */ -+ -+/* Local types */ -+ -+/* Local variables */ -+ -+static int32_t s_levelSoc = BOARD_VOLT_SOC; -+static int32_t s_levelArm = BOARD_VOLT_ARM; -+static uint32_t s_modeArm = DEV_SM_VOLT_MODE_ON; -+static uint32_t s_modeArmSave = DEV_SM_VOLT_MODE_ON; -+ -+/*--------------------------------------------------------------------------*/ -+/* Return voltage name */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_VoltageNameGet(uint32_t domainId, string *voltNameAddr, -+ int32_t *len) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ static int32_t s_maxLen = 0; -+ -+ static string const s_name[BRD_SM_NUM_VOLT] = -+ { -+ "vdd_gpio_3p3", -+ "vdd_ana_0p8", -+ "vdd_gpio_1p8", -+ "vddq_ddr", -+ "vdd2_ddr", -+ "sd_card", -+ "nvcc_sd2" -+ }; -+ -+ /* Get max string width */ -+ DEV_SM_MaxStringGet(len, &s_maxLen, s_name, BRD_SM_NUM_VOLT); -+ -+ /* Check to see if domain is within bounds*/ -+ if (domainId < SM_NUM_VOLT) -+ { -+ /* Check if device or board */ -+ if (domainId < DEV_SM_NUM_VOLT) -+ { -+ status = DEV_SM_VoltageNameGet(domainId, voltNameAddr, len); -+ } -+ else -+ { -+ /* Return pointer to name */ -+ *voltNameAddr = s_name[domainId - DEV_SM_NUM_VOLT]; -+ } -+ } -+ else -+ { -+ status = SM_ERR_NOT_FOUND; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Return supported voltage range */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_VoltageDescribe(uint32_t domainId, -+ dev_sm_voltage_range_t *range) -+{ -+ int32_t status = SM_ERR_HARDWARE_ERROR; -+ bool rc = false; -+ PF09_RegInfo info; -+ -+ /* Get voltage range/info */ -+ switch (domainId) -+ { -+ case DEV_SM_VOLT_SOC: -+ status = DEV_SM_VoltageDescribe(domainId, range); -+ break; -+ case DEV_SM_VOLT_ARM: -+ status = DEV_SM_VoltageDescribe(domainId, range); -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_3P3: -+ rc = PF09_RegulatorInfoGet(PF09_REG_SW1, &info); -+ break; -+ case BRD_SM_VOLT_VDD_ANA_0P8: -+ rc = PF09_RegulatorInfoGet(PF09_REG_SW2, &info); -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_1P8: -+ rc = PF09_RegulatorInfoGet(PF09_REG_SW3, &info); -+ break; -+ case BRD_SM_VOLT_VDDQ_DDR: -+ rc = PF09_RegulatorInfoGet(PF09_REG_SW4, &info); -+ break; -+ case BRD_SM_VOLT_VDD2_DDR: -+ rc = PF09_RegulatorInfoGet(PF09_REG_SW5, &info); -+ break; -+ case BRD_SM_VOLT_SD_CARD: -+ rc = PF09_RegulatorInfoGet(PF09_REG_LDO1, &info); -+ break; -+ case BRD_SM_VOLT_NVCC_SD2: -+ rc = PF09_RegulatorInfoGet(PF09_REG_LDO2, &info); -+ break; -+ default: -+ status = SM_ERR_NOT_FOUND; -+ break; -+ } -+ -+ /* Return results */ -+ if ((status != SM_ERR_SUCCESS) && rc) -+ { -+ /* Validate the parameters values are with in int32 range */ -+ if (CHECK_U32_FIT_I32(info.maxV) && -+ CHECK_U32_FIT_I32(info.minV) && -+ CHECK_U32_FIT_I32(info.stepV)) -+ { -+ range->highestVolt = (int32_t) info.maxV; -+ range->lowestVolt = (int32_t) info.minV; -+ range->stepSize = (int32_t) info.stepV; -+ status = SM_ERR_SUCCESS; -+ } -+ else -+ { -+ /* Set the status if parameters are out of range */ -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set voltage mode */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_VoltageModeSet(uint32_t domainId, uint8_t voltMode) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ bool enable = (voltMode == DEV_SM_VOLT_MODE_ON); -+ uint8_t mode = ((voltMode == DEV_SM_VOLT_MODE_OFF) -+ ? PF09_SW_MODE_OFF : PF09_SW_MODE_PWM); -+ bool rc; -+ -+ /* Set mode */ -+ switch (domainId) -+ { -+ case DEV_SM_VOLT_SOC: -+ mode = ((voltMode == DEV_SM_VOLT_MODE_OFF) -+ ? PF53_SW_MODE_OFF : PF53_SW_MODE_PWM); -+ rc = PF53_SwModeSet(&g_pf5302Dev, PF53_REG_SW1, PF53_STATE_VRUN, -+ mode); -+ break; -+ case DEV_SM_VOLT_ARM: -+ rc = PF09_GpioCtrlSet(&g_pf09Dev, PF09_GPIO4, PF53_STATE_VRUN, -+ enable); -+ if (enable && rc) -+ { -+ /* Wait for PF53 power up and ramp */ -+ SystemTimeDelay(1000U); -+ -+ if (s_levelArm != BOARD_VOLT_ARM) -+ { -+ /* Restore voltage as enable resets the PF53 */ -+ status = BRD_SM_VoltageLevelSet(domainId, s_levelArm); -+ } -+ } -+ if (rc) -+ { -+ s_modeArm = voltMode; -+ } -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_3P3: -+ rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW1, PF09_STATE_VRUN, -+ mode); -+ break; -+ case BRD_SM_VOLT_VDD_ANA_0P8: -+ rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW2, PF09_STATE_VRUN, -+ mode); -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_1P8: -+ rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW3, PF09_STATE_VRUN, -+ mode); -+ break; -+ case BRD_SM_VOLT_VDDQ_DDR: -+ rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW4, PF09_STATE_VRUN, -+ mode); -+ break; -+ case BRD_SM_VOLT_VDD2_DDR: -+ rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW5, PF09_STATE_VRUN, -+ mode); -+ break; -+ case BRD_SM_VOLT_SD_CARD: -+ rc = PF09_LdoEnable(&g_pf09Dev, PF09_REG_LDO1, PF09_STATE_VRUN, -+ enable); -+ break; -+ case BRD_SM_VOLT_NVCC_SD2: -+ rc = PF09_LdoEnable(&g_pf09Dev, PF09_REG_LDO2, PF09_STATE_VRUN, -+ enable); -+ break; -+ default: -+ status = SM_ERR_NOT_FOUND; -+ break; -+ } -+ -+ /* Translate error */ -+ if ((status == SM_ERR_SUCCESS) && !rc) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get voltage mode */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_VoltageModeGet(uint32_t domainId, uint8_t *voltMode) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ bool enable; -+ uint8_t mode; -+ bool rc; -+ -+ /* Get mode */ -+ switch (domainId) -+ { -+ case DEV_SM_VOLT_SOC: -+ rc = PF53_SwModeGet(&g_pf5302Dev, PF53_REG_SW1, PF53_STATE_VRUN, -+ &mode); -+ enable = (mode != PF53_SW_MODE_OFF); -+ break; -+ case DEV_SM_VOLT_ARM: -+ rc = PF09_GpioCtrlGet(&g_pf09Dev, PF09_GPIO4, PF53_STATE_VRUN, -+ &enable); -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_3P3: -+ rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW1, PF09_STATE_VRUN, -+ &mode); -+ enable = (mode != PF09_SW_MODE_OFF); -+ break; -+ case BRD_SM_VOLT_VDD_ANA_0P8: -+ rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW2, PF09_STATE_VRUN, -+ &mode); -+ enable = (mode != PF09_SW_MODE_OFF); -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_1P8: -+ rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW3, PF09_STATE_VRUN, -+ &mode); -+ enable = (mode != PF09_SW_MODE_OFF); -+ break; -+ case BRD_SM_VOLT_VDDQ_DDR: -+ rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW4, PF09_STATE_VRUN, -+ &mode); -+ enable = (mode != PF09_SW_MODE_OFF); -+ break; -+ case BRD_SM_VOLT_VDD2_DDR: -+ rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW5, PF09_STATE_VRUN, -+ &mode); -+ enable = (mode != PF09_SW_MODE_OFF); -+ break; -+ case BRD_SM_VOLT_SD_CARD: -+ rc = PF09_LdoIsEnabled(&g_pf09Dev, PF09_REG_LDO1, PF09_STATE_VRUN, -+ &enable); -+ break; -+ case BRD_SM_VOLT_NVCC_SD2: -+ rc = PF09_LdoIsEnabled(&g_pf09Dev, PF09_REG_LDO2, PF09_STATE_VRUN, -+ &enable); -+ break; -+ default: -+ status = SM_ERR_NOT_FOUND; -+ break; -+ } -+ -+ /* Return result */ -+ if ((status == SM_ERR_SUCCESS) && rc) -+ { -+ *voltMode = enable ? DEV_SM_VOLT_MODE_ON : DEV_SM_VOLT_MODE_OFF; -+ } -+ -+ /* Translate error */ -+ if ((status == SM_ERR_SUCCESS) && !rc) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Set voltage level */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_VoltageLevelSet(uint32_t domainId, int32_t voltageLevel) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ -+ /* Check voltageLevel is positive */ -+ if (CHECK_I32_POSITIVE(voltageLevel)) -+ { -+ bool rc; -+ uint32_t level = (uint32_t) voltageLevel; -+ -+ /* Set level */ -+ switch (domainId) -+ { -+ case DEV_SM_VOLT_SOC: -+ rc = PF53_VoltageSet(&g_pf5302Dev, PF53_REG_SW1, PF53_STATE_VRUN, -+ level); -+ -+ if (rc) -+ { -+ /* Save level to restore */ -+ s_levelSoc = (int32_t) level; -+ } -+ break; -+ case DEV_SM_VOLT_ARM: -+ (void) PF53_VoltageSet(&g_pf5301Dev, PF53_REG_SW1, PF53_STATE_VRUN, -+ level); -+ -+ /* Save level to restore */ -+ s_levelArm = (int32_t) level; -+ rc = true; -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_3P3: -+ rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW1, PF09_STATE_VRUN, -+ level); -+ break; -+ case BRD_SM_VOLT_VDD_ANA_0P8: -+ rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW2, PF09_STATE_VRUN, -+ level); -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_1P8: -+ rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW3, PF09_STATE_VRUN, -+ level); -+ break; -+ case BRD_SM_VOLT_VDDQ_DDR: -+ rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW4, PF09_STATE_VRUN, -+ level); -+ break; -+ case BRD_SM_VOLT_VDD2_DDR: -+ rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW5, PF09_STATE_VRUN, -+ level); -+ break; -+ case BRD_SM_VOLT_SD_CARD: -+ rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_LDO1, PF09_STATE_VRUN, -+ level); -+ break; -+ case BRD_SM_VOLT_NVCC_SD2: -+ rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_LDO2, PF09_STATE_VRUN, -+ level); -+ break; -+ default: -+ status = SM_ERR_NOT_FOUND; -+ break; -+ } -+ -+ /* Translate error */ -+ if ((status == SM_ERR_SUCCESS) && !rc) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ } -+ else -+ { -+ /* Set the status if voltageLevel is negative */ -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Get voltage level */ -+/*--------------------------------------------------------------------------*/ -+int32_t BRD_SM_VoltageLevelGet(uint32_t domainId, int32_t *voltageLevel) -+{ -+ int32_t status = SM_ERR_SUCCESS; -+ bool rc; -+ uint32_t level = 0U; -+ -+ /* Get level */ -+ switch (domainId) -+ { -+ case DEV_SM_VOLT_SOC: -+ rc = PF53_VoltageGet(&g_pf5302Dev, PF53_REG_SW1, PF53_STATE_VRUN, -+ &level); -+ break; -+ case DEV_SM_VOLT_ARM: -+ rc = PF53_VoltageGet(&g_pf5301Dev, PF53_REG_SW1, PF53_STATE_VRUN, -+ &level); -+ if (rc) -+ { -+ /* Check level is within int32_t range */ -+ if (CHECK_U32_FIT_I32(level)) -+ { -+ /* Save level to restore */ -+ s_levelArm = (int32_t) level; -+ } -+ else -+ { -+ /* Set status if level is not within int32_t range */ -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ } -+ else -+ { -+ /* Check s_levelArm has positive value */ -+ if (CHECK_I32_POSITIVE(s_levelArm)) -+ { -+ /* Return saved level */ -+ level = (uint32_t) s_levelArm; -+ rc = true; -+ } -+ else -+ { -+ /* Set the status if s_levelArm is negative */ -+ status = SM_ERR_INVALID_PARAMETERS; -+ rc = false; -+ } -+ } -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_3P3: -+ rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW1, PF09_STATE_VRUN, -+ &level); -+ break; -+ case BRD_SM_VOLT_VDD_ANA_0P8: -+ rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW2, PF09_STATE_VRUN, -+ &level); -+ break; -+ case BRD_SM_VOLT_VDD_GPIO_1P8: -+ rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW3, PF09_STATE_VRUN, -+ &level); -+ break; -+ case BRD_SM_VOLT_VDDQ_DDR: -+ rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW4, PF09_STATE_VRUN, -+ &level); -+ break; -+ case BRD_SM_VOLT_VDD2_DDR: -+ rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW5, PF09_STATE_VRUN, -+ &level); -+ break; -+ case BRD_SM_VOLT_SD_CARD: -+ rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_LDO1, PF09_STATE_VRUN, -+ &level); -+ break; -+ case BRD_SM_VOLT_NVCC_SD2: -+ rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_LDO2, PF09_STATE_VRUN, -+ &level); -+ break; -+ default: -+ status = SM_ERR_NOT_FOUND; -+ break; -+ } -+ -+ /* Return result */ -+ if ((status == SM_ERR_SUCCESS) && rc) -+ { -+ /* Check level value within int32_t range */ -+ if (CHECK_U32_FIT_I32(level)) -+ { -+ *voltageLevel = (int32_t) level; -+ } -+ else -+ { -+ status = SM_ERR_INVALID_PARAMETERS; -+ } -+ } -+ -+ /* Translate error */ -+ if ((status == SM_ERR_SUCCESS) && !rc) -+ { -+ status = SM_ERR_HARDWARE_ERROR; -+ } -+ -+ /* Return status */ -+ return status; -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Suspend SoC voltages */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_VoltageSuspend(bool offArm) -+{ -+ /* Turn off VDD_ARM */ -+ if (offArm && (s_modeArm != DEV_SM_VOLT_MODE_OFF)) -+ { -+ /* Save VDD_ARM mode */ -+ s_modeArmSave = s_modeArm; -+ -+ (void) BRD_SM_VoltageModeSet(DEV_SM_VOLT_ARM, DEV_SM_VOLT_MODE_OFF); -+ } -+} -+ -+/*--------------------------------------------------------------------------*/ -+/* Restore SoC voltages */ -+/*--------------------------------------------------------------------------*/ -+void BRD_SM_VoltageRestore(void) -+{ -+ /* Restore VDD_SOC level */ -+ if (s_levelSoc != BOARD_VOLT_SOC) -+ { -+ /* Restore voltage as enable resets the PF53 */ -+ (void) BRD_SM_VoltageLevelSet(DEV_SM_VOLT_SOC, s_levelSoc); -+ } -+ -+ /* Restore VDD_ARM mode */ -+ if (s_modeArm != s_modeArmSave) -+ { -+ if (PF09_GpioCtrlSet(&g_pf09Dev, PF09_GPIO4, PF53_STATE_VRUN, -+ true)) -+ { -+ /* Wait for PF53 power up and ramp */ -+ SystemTimeDelay(1000U); -+ -+ s_modeArm = DEV_SM_VOLT_MODE_ON; -+ } -+ } -+ -+ /* Restore VDD_ARM level */ -+ if (s_levelArm != BOARD_VOLT_ARM) -+ { -+ /* Restore voltage as enable resets the PF53 */ -+ (void) BRD_SM_VoltageLevelSet(DEV_SM_VOLT_ARM, s_levelArm); -+ } -+} -+ -diff --git a/boards/ccimx95dvk/sm/brd_sm_voltage.h b/boards/ccimx95dvk/sm/brd_sm_voltage.h -new file mode 100755 -index 000000000000..6c9e01286e7e ---- /dev/null -+++ b/boards/ccimx95dvk/sm/brd_sm_voltage.h -@@ -0,0 +1,213 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2024 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup BRD_SM_MX95EVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing the SM API for the board voltages. -+ */ -+/*==========================================================================*/ -+ -+#ifndef BRD_SM_VOLTAGE_H -+#define BRD_SM_VOLTAGE_H -+ -+/* Includes */ -+ -+#include "sm.h" -+#include "dev_sm.h" -+ -+/* Defines */ -+ -+/*! -+ * @name Board redirection defines -+ * @{ -+ */ -+#define SM_VOLTAGENAMEGET BRD_SM_VoltageNameGet /*!< Voltage name */ -+#define SM_VOLTAGEDESCRIBE BRD_SM_VoltageDescribe /*!< Voltage describe */ -+#define SM_VOLTAGEMODESET BRD_SM_VoltageModeSet /*!< Set voltage mode */ -+#define SM_VOLTAGEMODEGET BRD_SM_VoltageModeGet /*!< Get coltage mode */ -+#define SM_VOLTAGELEVELSET BRD_SM_VoltageLevelSet /*!< Set voltage level */ -+#define SM_VOLTAGELEVELGET BRD_SM_VoltageLevelGet /*!< Get voltage level */ -+/** @} */ -+ -+/*! Number of board voltages */ -+#define BRD_SM_NUM_VOLT 7UL -+ -+/*! Total number of sensors */ -+#define SM_NUM_VOLT (DEV_SM_NUM_VOLT + BRD_SM_NUM_VOLT) -+ -+/*! -+ * @name BRD_SM voltage domains -+ */ -+/** @{ */ -+#define BRD_SM_VOLT_VDD_GPIO_3P3 (DEV_SM_NUM_VOLT + 0U) /*!< VDD GPIO 3.3v */ -+#define BRD_SM_VOLT_VDD_ANA_0P8 (DEV_SM_NUM_VOLT + 1U) /*!< VDD ANA 0.8v */ -+#define BRD_SM_VOLT_VDD_GPIO_1P8 (DEV_SM_NUM_VOLT + 2U) /*!< VDD GPIO 1.8v */ -+#define BRD_SM_VOLT_VDDQ_DDR (DEV_SM_NUM_VOLT + 3U) /*!< DDR VDDQ */ -+#define BRD_SM_VOLT_VDD2_DDR (DEV_SM_NUM_VOLT + 4U) /*!< DDR VDD2 */ -+#define BRD_SM_VOLT_SD_CARD (DEV_SM_NUM_VOLT + 5U) /*!< SD1 */ -+#define BRD_SM_VOLT_NVCC_SD2 (DEV_SM_NUM_VOLT + 6U) /*!< SD2 */ -+/** @} */ -+ -+/* Types */ -+ -+/* Functions */ -+ -+/*! -+ * Get a board voltage domain name. -+ * -+ * @param[in] domainId Domain name to get -+ * @param[out] voltNameAddr Return pointer to name -+ * @param[out] len Return max length of all domain names -+ * -+ * This function allows the caller to get the name of a voltage domain. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a domainId is invalid. -+ */ -+int32_t BRD_SM_VoltageNameGet(uint32_t domainId, string *voltNameAddr, -+ int32_t *len); -+ -+/*! -+ * Get a board voltage domain description. -+ * -+ * @param[in] domainId Voltage description to get -+ * @param[out] range Pointer to return range -+ * -+ * This function allows the caller to get the voltage range for -+ * a voltage. The range contains the high, low, and step voltage -+ * in microvolts (uV). -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a domainId is invalid. -+ */ -+int32_t BRD_SM_VoltageDescribe(uint32_t domainId, -+ dev_sm_voltage_range_t *range); -+ -+/*! -+ * Set a board voltage mode. -+ * -+ * @param[in] domainId Identifier for the voltage domain -+ * @param[in] voltMode Voltage mode to set -+ * -+ * This function allows the caller to set the current mode of -+ * a voltage domain. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a domainId is invalid. -+ */ -+int32_t BRD_SM_VoltageModeSet(uint32_t domainId, uint8_t voltMode); -+ -+/*! -+ * Get a board voltage mode. -+ * -+ * @param[in] domainId Identifier for the voltage domain -+ * @param[out] voltMode Pointer to return the voltage mode -+ * -+ * This function allows the caller to request the current mode of -+ * a voltage domain. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a domainId is invalid. -+ */ -+int32_t BRD_SM_VoltageModeGet(uint32_t domainId, uint8_t *voltMode); -+ -+/*! -+ * Set a board voltage level. -+ * -+ * @param[in] domainId Identifier for the voltage domain -+ * @param[in] voltageLevel Voltage level to set -+ * -+ * This function allows the caller to set the current level of -+ * a voltage domain. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a domainId is invalid. -+ * - ::SM_ERR_INVALID_PARAMETERS: if \a voltageLevel is negative. -+ * - other from BRD_SM_SupplyLevelSet() -+ */ -+int32_t BRD_SM_VoltageLevelSet(uint32_t domainId, int32_t voltageLevel); -+ -+/*! -+ * Get a board voltage level. -+ * -+ * @param[in] domainId Identifier for the voltage domain -+ * @param[out] voltageLevel Pointer to return the voltage level -+ * -+ * This function allows the caller to request the current level of -+ * a voltage domain. -+ * -+ * @return Returns the status (::SM_ERR_SUCCESS = success). -+ * -+ * Return errors (see @ref STATUS "SM error codes"): -+ * - ::SM_ERR_NOT_FOUND: if \a domainId is invalid. -+ * - other from BRD_SM_SupplyLevelGet() -+ */ -+int32_t BRD_SM_VoltageLevelGet(uint32_t domainId, int32_t *voltageLevel); -+ -+/*! -+ * Suspend voltage modes/levels. -+ * -+ * @param[in] offArm Turn off VDD_ARM if on -+ * -+ * This function saves and disabled the ARM voltage. -+ */ -+void BRD_SM_VoltageSuspend(bool offArm); -+ -+/*! -+ * Restore voltage modes/levels. -+ * -+ * This function writes the last set voltage levels back to the PMICs. -+ */ -+void BRD_SM_VoltageRestore(void); -+ -+#endif /* BRD_SM_VOLTAGE_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -new file mode 100755 -index 000000000000..d05e1214df8a ---- /dev/null -+++ b/configs/ccimx95dvk.cfg -@@ -0,0 +1,997 @@ -+## ################################################################### -+## -+## Copyright 2023-2025 NXP -+## -+## Redistribution and use in source and binary forms, with or without modification, -+## are permitted provided that the following conditions are met: -+## -+## o Redistributions of source code must retain the above copyright notice, this list -+## of conditions and the following disclaimer. -+## -+## o Redistributions in binary form must reproduce the above copyright notice, this -+## list of conditions and the following disclaimer in the documentation and/or -+## other materials provided with the distribution. -+## -+## o Neither the name of the copyright holder nor the names of its -+## contributors may be used to endorse or promote products derived from this -+## software without specific prior written permission. -+## -+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+## WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+## ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+## (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+## ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+## -+## -+## ################################################################### -+ -+# SM configuration file for the MX95 EVK -+ -+MAKE soc=MIMX95, board=mcimx95evk, build=gcc_cross -+DOX name=MX95EVK, desc="i.MX95 EVK Configuration Data" -+ -+include ../devices/MIMX95/configtool/device.cfg -+ -+#==========================================================================# -+# Board # -+#==========================================================================# -+ -+BOARD DEBUG_UART_INSTANCE=2 -+BOARD DEBUG_UART_BAUDRATE=115200 -+ -+BOARD I2C_INSTANCE=1 -+BOARD I2C_BAUDRATE=400000 -+ -+#==========================================================================# -+# Common Defines # -+#==========================================================================# -+ -+NOTIFY: api=notify -+GET: api=get -+SET: api=set -+PRIV: api=priv -+ALL: api=all -+READONLY: perm=ro -+ -+#==========================================================================# -+# ELE Domain # -+#==========================================================================# -+ -+DOM0 did=0 -+ -+DATA: perm=rw -+ -+# Resources -+ -+# Memory -+ -+M33_TCM_SYS DATA, begin=0x020200000, size=256K -+OCRAM DATA, begin=0x020480000, size=352K -+DDR DATA, begin=0x080000000, end=0x87FFFFFFF, nodbg -+ -+#==========================================================================# -+# ISP Domain # -+#==========================================================================# -+ -+DOM10 did=10 -+ -+OWNER: perm=rw -+ -+#==========================================================================# -+# V2X Domain # -+#==========================================================================# -+ -+DOM12 did=12 -+ -+DFMT1: sa=bypass, pa=bypass -+OWNER: -+ -+# Resources -+ -+V2X_FH OWNER -+ -+# Memory -+ -+DDR DATA, begin=0x08B000000, end=0x08BFFFFFF, nodbg -+ -+#==========================================================================# -+# SM M33 EENV # -+#==========================================================================# -+ -+LM0 name="SM", rpc=none, boot=1, did=2, safe=feenv -+ -+DFMT0: sa=secure -+DFMT1: sa=secure, pa=privileged -+OWNER: perm=sec_rw, api=all -+ACCESS: perm=sec_rw, api=all, mdid=none -+TEST_MU: perm=sec_rw -+ -+EXEC: perm=sec_rwx -+DATA: perm=sec_rw -+ -+MODE msel=1, boot=1 -+MODE msel=2, boot=1 -+ -+# API -+ -+# Modified via PERF protocol -+CLK_A55MTRBUS ALL -+CLK_ADC ALL -+CLK_BUSAON ALL -+CLK_BUSM7 ALL -+CLK_BUSNETCMIX ALL -+CLK_BUSWAKEUP ALL -+CLK_CAMAPB ALL -+CLK_CAMAXI ALL -+CLK_CAMCM0 ALL -+CLK_CAMISI ALL -+CLK_DISPAPB ALL -+CLK_DISPAXI ALL -+CLK_ELE ALL -+CLK_ENET ALL -+CLK_ENETPHYTEST200M ALL -+CLK_ENETPHYTEST500M ALL -+CLK_ENETPHYTEST667M ALL -+CLK_FRO ALL -+CLK_GPU ALL -+CLK_GPUAPB ALL -+CLK_HSIO ALL -+CLK_HSIOACSCAN480M ALL -+CLK_HSIOACSCAN80M ALL -+CLK_HSIOPCIETEST160M ALL -+CLK_HSIOPCIETEST400M ALL -+CLK_HSIOPCIETEST500M ALL -+CLK_HSIOUSBTEST50M ALL -+CLK_HSIOUSBTEST60M ALL -+CLK_NOC ALL -+CLK_NOCAPB ALL -+CLK_NPU ALL -+CLK_NPUAPB ALL -+CLK_OSC24M ALL -+CLK_OSC32K ALL -+CLK_SYSPLL1_PFD0 ALL -+CLK_SYSPLL1_PFD0_DIV2 ALL -+CLK_SYSPLL1_PFD0_UNGATED ALL -+CLK_SYSPLL1_PFD1 ALL -+CLK_SYSPLL1_PFD1_DIV2 ALL -+CLK_SYSPLL1_PFD1_UNGATED ALL -+CLK_SYSPLL1_PFD2 ALL -+CLK_SYSPLL1_PFD2_DIV2 ALL -+CLK_SYSPLL1_PFD2_UNGATED ALL -+CLK_SYSPLL1_VCO ALL -+CLK_TEMPSENSE_GPR_SEL ALL -+CLK_TMU ALL -+CLK_V2XPK ALL -+CLK_VPU ALL -+CLK_VPUAPB ALL -+CLK_VPUJPEG ALL -+CLK_WAKEUPAXI ALL -+ -+# Resources -+ -+M33P OWNER # CPUs must be first -+ANATOP OWNER -+ATU_A OWNER -+ATU_M OWNER -+AXBS_AON OWNER -+BBNSM OWNER -+BLK_CTRL_BBSMMIX OWNER -+BLK_CTRL_DDRMIX OWNER -+BLK_CTRL_GPUMIX OWNER -+BLK_CTRL_NOCMIX OWNER -+BLK_CTRL_NS_AONMIX OWNER -+BLK_CTRL_S_AONMIX OWNER -+BLK_CTRL_WAKEUPMIX OWNER -+CCM OWNER -+DAP OWNER -+DDR_CTRL OWNER -+DDR_PHY OWNER -+DDR_PM OWNER -+DRAM_PLL OWNER -+ELE OWNER -+FSB READONLY -+GIC ACCESS -+GPC OWNER -+GPIO1 OWNER -+GPR0 OWNER -+GPR1 OWNER -+GPR2 OWNER -+GPR3 OWNER -+GPV_CAMERA OWNER -+GPV_CENTRAL OWNER -+GPV_DISPLAY OWNER -+GPV_HSIO OWNER -+GPV_MAIN OWNER -+GPV_MEGA OWNER -+GPV_VPU OWNER -+IOMUXC OWNER -+IOMUX_GPR OWNER -+JTAG OWNER -+LPI2C1 OWNER -+LPUART2 OWNER -+M33_CACHE_CTRL OWNER -+M33_PCF OWNER -+M33_PSF OWNER -+M33_TCM_ECC OWNER -+MU1_A TEST_MU -+MU1_B OWNER -+MU2_A TEST_MU -+MU2_B OWNER -+MU3_A TEST_MU -+MU3_B OWNER -+MU4_A TEST_MU -+MU4_B OWNER -+MU5_A TEST_MU -+MU5_B OWNER -+MU6_A TEST_MU -+MU6_B OWNER -+MU_ELE0 OWNER -+ROMCP_M33 OWNER -+SRAM_CTL_1 OWNER -+SRAM_CTL_N OWNER -+SRC OWNER -+SYSCTR_CTL OWNER -+SYSCTR_RD OWNER -+TEMP_A55 OWNER -+TRDC_A OWNER -+TRDC_C OWNER -+TRDC_D OWNER -+TRDC_E OWNER -+TRDC_G OWNER -+TRDC_H OWNER -+TRDC_M OWNER -+TRDC_N OWNER -+TRDC_V OWNER -+TRDC_W OWNER -+TSTMR1 OWNER -+WDOG1 OWNER -+WDOG2 OWNER -+ -+# SAF -+ -+CMU_A1 OWNER -+CMU_A2 OWNER -+CMU_ANA OWNER -+CMU_DDR1 OWNER -+CMU_DDR2 OWNER -+CMU_N1 OWNER -+CMU_N2 OWNER -+CMU_W1 OWNER -+CMU_W2 OWNER -+CRC_A OWNER -+C_STCU OWNER -+DMA_CRC OWNER -+EIM_A OWNER -+EIM_N OWNER -+EIM_NPU OWNER -+EIM_W OWNER -+ERM_A OWNER -+ERM_NPU OWNER -+ERM_W OWNER -+FCCU OWNER -+FCCU_FHID OWNER -+INTM OWNER -+L_STCU_A OWNER -+L_STCU_DDR OWNER -+L_STCU_N OWNER -+L_STCU_NPUMIX OWNER -+ -+# Pins -+ -+PIN_FCCU_ERR0 OWNER -+PIN_I2C1_SCL OWNER -+PIN_I2C1_SDA OWNER -+PIN_PDM_BIT_STREAM1 OWNER -+PIN_UART2_RXD OWNER -+PIN_UART2_TXD OWNER -+PIN_WDOG_ANY OWNER -+ -+# Memory -+ -+M33_ROM EXEC, begin=0x000000000, end=0x00003FFFF -+M33_TCM_CODE EXEC, begin=0x0201C0000, size=256K -+M33_TCM_SYS EXEC, begin=0x020200000, size=256K -+M7MIX DATA, begin=0x04A050000, end=0x04A0AFFFF -+ -+# Faults -+ -+FAULT_SW3 OWNER, reaction=grp_reset -+FAULT_SW4 OWNER, reaction=sys_reset -+ -+#==========================================================================# -+# M7 EENV # -+#==========================================================================# -+ -+LM1 name="M7", rpc=scmi, boot=2, skip=1, did=4, safe=seenv -+ -+DFMT0: sa=secure -+DFMT1: sa=secure, pa=privileged -+OWNER: perm=rw, api=all -+ -+EXEC: perm=full -+DATA: perm=rw -+ -+# Start/Stop (mSel=0) -+ -+PD_M7 start=1, stop=2 -+CPU_M7P start=2, stop=1 -+ -+# Start/Stop (mSel=1) -+ -+MODE msel=1, boot=2 -+ -+PD_M7 msel=1, start=1, stop=2 -+CPU_M7P msel=1, start=2, stop=1 -+ -+# Start/Stop (mSel=2) -+ -+PD_M7 msel=2, start=1, stop=2 -+CPU_M7P msel=2, start=2, stop=1 -+ -+# RPC Interface -+ -+SCMI_AGENT0 name="M7" -+MAILBOX type=mu, mu=9, test=8, priority=high -+CHANNEL db=0, xport=smt, check=crc32, rpc=scmi, type=a2p, \ -+ test=default -+CHANNEL db=1, xport=smt, check=crc32, rpc=scmi, \ -+ type=p2a_notify, notify=24 -+CHANNEL db=2, xport=smt, check=crc32, rpc=scmi, \ -+ type=p2a_priority -+ -+# API -+ -+BRD_SM_CTRL_BUTTON NOTIFY -+BRD_SM_CTRL_PCA2131 ALL -+BRD_SM_CTRL_TEST ALL -+BRD_SM_RTC_PCA2131 ALL -+BRD_SM_SENSOR_TEMP_PF09 SET -+BRD_SM_SENSOR_TEMP_PF5301 SET -+BRD_SM_SENSOR_TEMP_PF5302 SET -+BUTTON NOTIFY -+FUSA ALL -+LMM_2 ALL -+RTC PRIV -+SENSOR_TEMP_ANA ALL, test -+SYS ALL -+ -+# Resources -+ -+M7P OWNER # CPUs must be first -+CAN_FD1 OWNER -+FSB READONLY -+IRQSTEER_M7 OWNER -+LPIT1 OWNER -+LPTMR1 OWNER -+LPTMR2 OWNER -+LPTPM1 OWNER -+LPUART3 OWNER, test -+MSGINTR1 OWNER -+MSGINTR2 OWNER -+MU5_A OWNER -+MU7_B OWNER -+MU8_B OWNER -+MU_ELE5 OWNER -+PD_M7 test -+SYSCTR_RD READONLY -+TSTMR2 OWNER -+V2X_SHE1 OWNER -+WDOG5 OWNER -+ -+# Pins -+ -+PIN_GPIO_IO14 OWNER -+PIN_GPIO_IO15 OWNER -+ -+# Memory -+ -+M7MIX DATA, begin=0x020380000, end=0x02047FFFF -+M7MIX DATA, begin=0x04A060000, end=0x04A09FFFF -+DDR EXEC, begin=0x080000000, end=0x089FFFFFF -+ -+# Faults -+ -+FAULT_M7_LOCKUP OWNER, reaction=lm_reset -+FAULT_M7_RESET OWNER, reaction=lm_reset -+FAULT_SW0 OWNER, reaction=fusa -+FAULT_SW1 OWNER, reaction=lm_reset -+FAULT_WDOG5 OWNER, reaction=lm_reset -+ -+#==========================================================================# -+# A55 secure EENV # -+#==========================================================================# -+ -+LM2 name="AP", rpc=scmi, boot=3, skip=1, did=3, default -+ -+DFMT0: sa=bypass -+DFMT1: sa=secure, pa=privileged -+OWNER: perm=sec_rw, api=all -+ -+EXEC: perm=sec_rwx -+DATA: perm=rw -+ -+# Start/Stop (mSel=0) -+ -+VOLT_ARM start=1|1, stop=9 -+PD_A55P start=2, stop=8, test -+PD_A55C0 stop=7 -+PD_A55C1 stop=6 -+PD_A55C2 stop=5 -+PD_A55C3 stop=4 -+PD_A55C4 stop=3 -+PD_A55C5 stop=2 -+PERF_A55 start=3|3 -+CPU_A55C0 start=4 -+CPU_A55P stop=1 -+ -+# Start/Stop (mSel=1) -+ -+VOLT_ARM msel=1, start=1|1, stop=9 -+PD_A55P msel=1, start=2, stop=8 -+PD_A55C0 msel=1, stop=7 -+PD_A55C1 msel=1, stop=6 -+PD_A55C2 msel=1, stop=5 -+PD_A55C3 msel=1, stop=4 -+PD_A55C4 msel=1, stop=3 -+PD_A55C5 msel=1, stop=2 -+PERF_A55 msel=1, start=3|3 -+CPU_A55C0 msel=1, start=4 -+CPU_A55P msel=1, stop=1 -+ -+# Start/Stop (mSel=2) -+ -+VOLT_ARM msel=2, start=1|1, stop=9 -+PD_A55P msel=2, start=2, stop=8 -+PD_A55C0 msel=2, stop=7 -+PD_A55C1 msel=2, stop=6 -+PD_A55C2 msel=2, stop=5 -+PD_A55C3 msel=2, stop=4 -+PD_A55C4 msel=2, stop=3 -+PD_A55C5 msel=2, stop=2 -+PERF_A55 msel=2, start=3|3 -+CPU_A55C0 msel=2, start=4 -+CPU_A55P msel=2, stop=1 -+ -+# RPC Interface -+ -+SCMI_AGENT1 name="AP-S", secure -+MAILBOX type=mu, mu=1, test=0 -+CHANNEL db=0, xport=smt, rpc=scmi, type=a2p -+CHANNEL db=1, xport=smt, rpc=scmi, type=p2a_notify -+ -+# API -+ -+PERF_A55 ALL -+PERF_DRAM ALL -+PERLPI_CAN2 ALL -+PERLPI_CAN3 ALL -+PERLPI_CAN4 ALL -+PERLPI_CAN5 ALL -+PERLPI_GPIO2 ALL -+PERLPI_GPIO3 ALL -+PERLPI_GPIO4 ALL -+PERLPI_GPIO5 ALL -+PERLPI_LPUART1 ALL -+PERLPI_LPUART4 ALL -+PERLPI_LPUART5 ALL -+PERLPI_LPUART6 ALL -+PERLPI_LPUART7 ALL -+PERLPI_LPUART8 ALL -+PERLPI_WDOG3 ALL -+PERLPI_WDOG4 ALL -+SYS ALL -+ -+# Resources -+ -+A55C0 OWNER # CPUs must be first -+A55C1 OWNER # CPUs must be first -+A55C2 OWNER # CPUs must be first -+A55C3 OWNER # CPUs must be first -+A55C4 OWNER # CPUs must be first -+A55C5 OWNER # CPUs must be first -+A55P OWNER, sema=0x442313F8 -+ARM_PLL OWNER -+MU1_A OWNER -+MU_ELE1 OWNER -+MU_ELE2 OWNER -+ -+# Pins -+ -+# Memory -+ -+OCRAM EXEC, begin=0x020480000, size=256K -+DDR EXEC, begin=0x08A000000, end=0x08DFFFFFF -+ -+# Faults -+ -+FAULT_SW2 OWNER, reaction=lm_reset -+FAULT_WDOG3 OWNER, reaction=lm_reset -+FAULT_WDOG4 OWNER, reaction=lm_reset -+ -+#==========================================================================# -+# A55 non-secure EENV # -+#==========================================================================# -+ -+DFMT0: sa=nonsecure -+DFMT1: sa=nonsecure, pa=privileged -+ -+OWNER: perm=rw, api=all -+ACCESS: perm=rw, api=all, mdid=none -+ -+EXEC: perm=full -+DATA: perm=rw -+ -+# RPC Interface -+ -+SCMI_AGENT2 name="AP-NS" -+MAILBOX type=mu, mu=3, test=2 -+CHANNEL db=0, xport=smt, rpc=scmi, type=a2p -+CHANNEL db=1, xport=smt, rpc=scmi, type=p2a_notify -+ -+# API -+ -+AUDIO_PLL1 ALL -+AUDIO_PLL2 ALL -+BRD_SM_CTRL_BT_WAKE NOTIFY -+BRD_SM_CTRL_BUTTON NOTIFY -+BRD_SM_CTRL_PCIE1_WAKE NOTIFY -+BRD_SM_CTRL_PCIE2_WAKE NOTIFY -+BRD_SM_CTRL_SD3_WAKE NOTIFY -+BRD_SM_RTC_PCA2131 PRIV -+BRD_SM_SENSOR_TEMP_PF09 ALL -+BRD_SM_SENSOR_TEMP_PF5301 SET -+BRD_SM_SENSOR_TEMP_PF5302 SET -+BUTTON ALL, test -+CLOCK_DISP1PIX ALL -+CLOCK_DISP2PIX ALL -+CLOCK_DISP3PIX ALL -+CLOCK_EXT ALL -+CLOCK_EXT1 ALL -+CLOCK_EXT2 ALL -+CLOCK_HSIOPCIEAUX ALL -+CLOCK_OUT1 ALL -+CLOCK_OUT2 ALL -+CLOCK_OUT3 ALL -+CLOCK_OUT4 ALL -+CLOCK_USBPHYBURUNIN ALL -+CLOCK_VPUDSP ALL -+HSIO_PLL ALL -+LDB_PLL ALL -+LMM_1 NOTIFY -+PERF_A55 ALL -+PERF_DRAM ALL -+RTC ALL, test -+SENSOR_TEMP_A55 ALL -+SENSOR_TEMP_ANA SET -+SYS NOTIFY -+ -+# Resources -+ -+ADC OWNER -+BLK_CTRL_CAMERAMIX OWNER -+BLK_CTRL_DISPLAYMIX OWNER -+BLK_CTRL_HSIOMIX OWNER -+BLK_CTRL_NETCMIX OWNER -+BLK_CTRL_NPUMIX OWNER -+BLK_CTRL_VPUMIX OWNER -+CAMERA1 OWNER -+CAMERA2 OWNER -+CAMERA3 OWNER -+CAMERA4 OWNER -+CAMERA5 OWNER -+CAMERA6 OWNER -+CAMERA7 OWNER -+CAMERA8 OWNER -+CAN_FD2 OWNER -+CAN_FD3 OWNER -+CAN_FD4 OWNER -+CAN_FD5 OWNER -+DC OWNER, test -+DC0 OWNER -+DC1 OWNER -+DC_2DBLIT OWNER -+DC_BLITINT OWNER -+DC_CMDSEQ OWNER -+DC_DISPENG OWNER -+DC_DISPENG_INT OWNER -+DC_FL0 OWNER -+DC_FL1 OWNER -+DC_INT_CTL OWNER -+DC_PIXENGINE OWNER -+DC_XPC OWNER -+DC_YUV0 OWNER -+DC_YUV1 OWNER -+DC_YUV2 OWNER -+DC_YUV3 OWNER -+DDR_PM ACCESS -+EDMA1_MP OWNER -+EDMA1_CH0 OWNER -+EDMA1_CH1 OWNER -+EDMA1_CH2 OWNER -+EDMA1_CH3 OWNER -+EDMA1_CH4 OWNER -+EDMA1_CH5 OWNER -+EDMA1_CH6 OWNER -+EDMA1_CH7 OWNER -+EDMA1_CH8 OWNER -+EDMA1_CH9 OWNER -+EDMA1_CH10 OWNER -+EDMA1_CH11 OWNER -+EDMA1_CH12 OWNER -+EDMA1_CH13 OWNER -+EDMA1_CH14 OWNER -+EDMA1_CH15 OWNER -+EDMA1_CH16 OWNER -+EDMA1_CH17 OWNER -+EDMA1_CH18 OWNER -+EDMA1_CH19 OWNER -+EDMA1_CH20 OWNER -+EDMA1_CH21 OWNER -+EDMA1_CH22 OWNER -+EDMA1_CH23 OWNER -+EDMA1_CH24 OWNER -+EDMA1_CH25 OWNER -+EDMA1_CH26 OWNER -+EDMA1_CH27 OWNER -+EDMA1_CH28 OWNER -+EDMA1_CH29 OWNER -+EDMA1_CH30 OWNER -+EDMA1_CH31 OWNER -+EDMA2_MP OWNER -+EDMA2_CH0_1 OWNER -+EDMA2_CH2_3 OWNER -+EDMA2_CH4_5 OWNER -+EDMA2_CH6_7 OWNER -+EDMA2_CH8_9 OWNER -+EDMA2_CH10_11 OWNER -+EDMA2_CH12_13 OWNER -+EDMA2_CH14_15 OWNER -+EDMA2_CH16_17 OWNER -+EDMA2_CH18_19 OWNER -+EDMA2_CH20_21 OWNER -+EDMA2_CH22_23 OWNER -+EDMA2_CH24_25 OWNER -+EDMA2_CH26_27 OWNER -+EDMA2_CH28_29 OWNER -+EDMA2_CH30_31 OWNER -+EDMA2_CH32_33 OWNER -+EDMA2_CH34_35 OWNER -+EDMA2_CH36_37 OWNER -+EDMA2_CH38_39 OWNER -+EDMA2_CH40_41 OWNER -+EDMA2_CH42_43 OWNER -+EDMA2_CH44_45 OWNER -+EDMA2_CH46_47 OWNER -+EDMA2_CH48_49 OWNER -+EDMA2_CH50_51 OWNER -+EDMA2_CH52_53 OWNER -+EDMA2_CH54_55 OWNER -+EDMA2_CH56_57 OWNER -+EDMA2_CH58_59 OWNER -+EDMA2_CH60_61_A OWNER -+EDMA2_CH60_61_B OWNER -+EDMA2_CH62_63_A OWNER -+EDMA2_CH62_63_B OWNER -+EDMA3_MP OWNER -+EDMA3_CH0_1 OWNER -+EDMA3_CH2_3 OWNER -+EDMA3_CH4_5 OWNER -+EDMA3_CH6_7 OWNER -+EDMA3_CH8_9 OWNER -+EDMA3_CH10_11 OWNER -+EDMA3_CH12_13 OWNER -+EDMA3_CH14_15 OWNER -+EDMA3_CH16_17 OWNER -+EDMA3_CH18_19 OWNER -+EDMA3_CH20_21 OWNER -+EDMA3_CH22_23 OWNER -+EDMA3_CH24_25 OWNER -+EDMA3_CH26_27 OWNER -+EDMA3_CH28_29 OWNER -+EDMA3_CH30_31 OWNER -+EDMA3_CH32_33 OWNER -+EDMA3_CH34_35 OWNER -+EDMA3_CH36_37 OWNER -+EDMA3_CH38_39 OWNER -+EDMA3_CH40_41 OWNER -+EDMA3_CH42_43 OWNER -+EDMA3_CH44_45 OWNER -+EDMA3_CH46_47 OWNER -+EDMA3_CH48_49 OWNER -+EDMA3_CH50_51 OWNER -+EDMA3_CH52_53 OWNER -+EDMA3_CH54_55 OWNER -+EDMA3_CH56_57 OWNER -+EDMA3_CH58_59 OWNER -+EDMA3_CH60_61 OWNER -+EDMA3_CH62_63 OWNER -+FLEXIO1 OWNER -+FLEXIO2 OWNER -+FLEXSPI1 OWNER -+FSB READONLY -+GIC OWNER -+GPIO2 OWNER -+GPIO3 OWNER -+GPIO4 OWNER -+GPIO5 OWNER -+GPR4 OWNER, test -+GPR5 OWNER -+GPR6 OWNER -+GPR7 OWNER -+GPU_NPROT OWNER -+GPU_PROT OWNER, test -+I3C1 OWNER -+I3C2 OWNER -+ISI1 OWNER -+ISI2 OWNER -+ISI3 OWNER -+ISI4 OWNER -+ISI5 OWNER -+ISI6 OWNER -+ISI7 OWNER -+ISI8 OWNER -+ISP_CPU OWNER -+ISP_MGR OWNER, test -+JPEG_DEC OWNER -+LPI2C2 OWNER -+LPI2C3 OWNER -+LPI2C4 OWNER -+LPI2C5 OWNER -+LPI2C6 OWNER -+LPI2C7 OWNER -+LPI2C8 OWNER -+LPIT2 OWNER -+LPSPI1 OWNER -+LPSPI2 OWNER -+LPSPI3 OWNER -+LPSPI4 OWNER -+LPSPI5 OWNER -+LPSPI6 OWNER -+LPSPI7 OWNER -+LPSPI8 OWNER -+LPTPM2 OWNER -+LPTPM3 OWNER -+LPTPM4 OWNER -+LPTPM5 OWNER -+LPTPM6 OWNER -+LPUART1 OWNER -+LPUART4 OWNER -+LPUART5 OWNER -+LPUART6 OWNER -+LPUART7 OWNER -+LPUART8 OWNER, test -+LVDS OWNER -+MIPI_CSI0 OWNER -+MIPI_CSI1 OWNER -+MIPI_DSI OWNER -+MIPI_PHY OWNER -+MJPEG_DEC1 OWNER -+MJPEG_DEC2 OWNER -+MJPEG_DEC3 OWNER -+MJPEG_DEC4 OWNER -+MJPEG_ENC OWNER -+MJPEG_ENC1 OWNER -+MJPEG_ENC2 OWNER -+MJPEG_ENC3 OWNER -+MJPEG_ENC4 OWNER -+MU2_A OWNER -+MU3_A OWNER -+MU4_A OWNER -+MU6_A OWNER -+MU7_A OWNER -+MU8_A OWNER -+MU_ELE3 OWNER -+MU_ELE4 OWNER -+NETC OWNER, test -+NETC0 OWNER -+NETC1 OWNER -+NETC2 OWNER -+NETC_ECAM OWNER -+NETC_EMDIO0 OWNER -+NETC_IERB OWNER -+NETC_LDID1 OWNER, kpa=0, sid=0x20 -+NETC_LDID2 OWNER, kpa=0, sid=0x21 -+NETC_LDID3 OWNER, kpa=0, sid=0x22 -+NETC_LDID4 OWNER, kpa=0, sid=0x23 -+NETC_LDID5 OWNER, kpa=0, sid=0x24 -+NETC_LDID6 OWNER, kpa=0, sid=0x25 -+NETC_LDID7 OWNER, kpa=0, sid=0x26 -+NETC_LDID8 OWNER, kpa=0, sid=0x27 -+NETC_PRB OWNER -+NETC_TIMER0 OWNER -+NETC_VSI0 OWNER -+NETC_VSI1 OWNER -+NETC_VSI2 OWNER -+NETC_VSI3 OWNER -+NETC_VSI4 OWNER -+NETC_VSI5 OWNER -+NPU OWNER, kpa=0, sid=0x0d, test -+PCI1_LUT0 OWNER, kpa=0, sid=0x10 -+PCI1_LUT1 OWNER, kpa=0, sid=0x11 -+PCI1_LUT2 OWNER, kpa=0, sid=0x12 -+PCI1_LUT3 OWNER, kpa=0, sid=0x13 -+PCI1_LUT4 OWNER, kpa=0, sid=0x14 -+PCI1_LUT5 OWNER, kpa=0, sid=0x15 -+PCI1_LUT6 OWNER, kpa=0, sid=0x16 -+PCI1_LUT7 OWNER, kpa=0, sid=0x17 -+PCI2_LUT0 OWNER, kpa=0, sid=0x18 -+PCI2_LUT1 OWNER, kpa=0, sid=0x19 -+PCI2_LUT2 OWNER, kpa=0, sid=0x1a -+PCI2_LUT3 OWNER, kpa=0, sid=0x1b -+PCI2_LUT4 OWNER, kpa=0, sid=0x1c -+PCI2_LUT5 OWNER, kpa=0, sid=0x1d -+PCI2_LUT6 OWNER, kpa=0, sid=0x1e -+PCI2_LUT7 OWNER, kpa=0, sid=0x1f -+PCIE1_OUT OWNER -+PCIE1_ROOT OWNER -+PCIE2_OUT OWNER -+PCIE2_ROOT OWNER -+PDM OWNER -+SAI1 OWNER, test -+SAI2 OWNER -+SAI3 OWNER -+SAI4 OWNER -+SAI5 OWNER -+SEMA41 OWNER -+SEMA42 OWNER -+SMMU OWNER -+SPDIF1 OWNER -+SYSCTR_CMP OWNER -+SYSCTR_RD_STOP READONLY -+USB1 OWNER, kpa=0, sid=0xe, test -+USB2 OWNER, kpa=0, sid=0xf -+USDHC1 OWNER, kpa=0, sid=0x1 -+USDHC2 OWNER, kpa=0, sid=0x2 -+USDHC3 OWNER, kpa=0, sid=0x3 -+V2X_APP0 OWNER -+V2X_DEBUG OWNER -+V2X_HSM1 OWNER -+V2X_HSM2 OWNER -+V2X_SHE0 OWNER -+VIDEO_PLL1 OWNER -+VPU OWNER, test -+VPU1 OWNER -+VPU2 OWNER -+VPU3 OWNER -+VPU4 OWNER -+WDOG3 OWNER -+WDOG4 OWNER -+XSPI OWNER -+ -+# Pins -+ -+PIN_CCM_CLKO1 OWNER -+PIN_CCM_CLKO2 OWNER -+PIN_CCM_CLKO3 OWNER -+PIN_CCM_CLKO4 OWNER -+PIN_DAP_TCLK_SWCLK OWNER -+PIN_DAP_TDI OWNER -+PIN_DAP_TDO_TRACESWO OWNER -+PIN_DAP_TMS_SWDIO OWNER -+PIN_ENET1_MDC OWNER -+PIN_ENET1_MDIO OWNER -+PIN_ENET1_RD0 OWNER -+PIN_ENET1_RD1 OWNER -+PIN_ENET1_RD2 OWNER -+PIN_ENET1_RD3 OWNER -+PIN_ENET1_RX_CTL OWNER -+PIN_ENET1_RXC OWNER -+PIN_ENET1_TD0 OWNER -+PIN_ENET1_TD1 OWNER -+PIN_ENET1_TD2 OWNER -+PIN_ENET1_TD3 OWNER -+PIN_ENET1_TX_CTL OWNER -+PIN_ENET1_TXC OWNER -+PIN_ENET2_MDC OWNER -+PIN_ENET2_MDIO OWNER -+PIN_ENET2_RD0 OWNER -+PIN_ENET2_RD1 OWNER -+PIN_ENET2_RD2 OWNER -+PIN_ENET2_RD3 OWNER -+PIN_ENET2_RX_CTL OWNER -+PIN_ENET2_RXC OWNER -+PIN_ENET2_TD0 OWNER -+PIN_ENET2_TD1 OWNER -+PIN_ENET2_TD2 OWNER -+PIN_ENET2_TD3 OWNER -+PIN_ENET2_TX_CTL OWNER -+PIN_ENET2_TXC OWNER -+PIN_GPIO_IO00 OWNER -+PIN_GPIO_IO01 OWNER -+PIN_GPIO_IO02 OWNER -+PIN_GPIO_IO03 OWNER -+PIN_GPIO_IO04 OWNER -+PIN_GPIO_IO05 OWNER -+PIN_GPIO_IO06 OWNER -+PIN_GPIO_IO07 OWNER -+PIN_GPIO_IO08 OWNER -+PIN_GPIO_IO09 OWNER -+PIN_GPIO_IO10 OWNER -+PIN_GPIO_IO11 OWNER -+PIN_GPIO_IO12 OWNER -+PIN_GPIO_IO13 OWNER -+PIN_GPIO_IO16 OWNER -+PIN_GPIO_IO17 OWNER -+PIN_GPIO_IO18 OWNER -+PIN_GPIO_IO19 OWNER -+PIN_GPIO_IO20 OWNER -+PIN_GPIO_IO21 OWNER -+PIN_GPIO_IO22 OWNER -+PIN_GPIO_IO23 OWNER -+PIN_GPIO_IO24 OWNER -+PIN_GPIO_IO25 OWNER -+PIN_GPIO_IO26 OWNER -+PIN_GPIO_IO27 OWNER -+PIN_GPIO_IO28 OWNER -+PIN_GPIO_IO29 OWNER -+PIN_GPIO_IO30 OWNER -+PIN_GPIO_IO31 OWNER -+PIN_GPIO_IO32 OWNER -+PIN_GPIO_IO33 OWNER -+PIN_GPIO_IO34 OWNER -+PIN_GPIO_IO35 OWNER -+PIN_GPIO_IO36 OWNER -+PIN_GPIO_IO37 OWNER -+PIN_I2C2_SCL OWNER -+PIN_I2C2_SDA OWNER -+PIN_PDM_BIT_STREAM0 OWNER -+PIN_PDM_CLK OWNER -+PIN_SAI1_RXD0 OWNER -+PIN_SAI1_TXC OWNER -+PIN_SAI1_TXD0 OWNER -+PIN_SAI1_TXFS OWNER -+PIN_SD1_CLK OWNER -+PIN_SD1_CMD OWNER -+PIN_SD1_DATA0 OWNER -+PIN_SD1_DATA1 OWNER -+PIN_SD1_DATA2 OWNER -+PIN_SD1_DATA3 OWNER -+PIN_SD1_DATA4 OWNER -+PIN_SD1_DATA5 OWNER -+PIN_SD1_DATA6 OWNER -+PIN_SD1_DATA7 OWNER -+PIN_SD1_STROBE OWNER -+PIN_SD2_CD_B OWNER -+PIN_SD2_CLK OWNER -+PIN_SD2_CMD OWNER -+PIN_SD2_DATA0 OWNER -+PIN_SD2_DATA1 OWNER -+PIN_SD2_DATA2 OWNER -+PIN_SD2_DATA3 OWNER -+PIN_SD2_RESET_B OWNER -+PIN_SD2_VSELECT OWNER -+PIN_SD3_CLK OWNER -+PIN_SD3_CMD OWNER -+PIN_SD3_DATA0 OWNER -+PIN_SD3_DATA1 OWNER -+PIN_SD3_DATA2 OWNER -+PIN_SD3_DATA3 OWNER -+PIN_UART1_RXD OWNER, test -+PIN_UART1_TXD OWNER -+PIN_XSPI1_DATA0 OWNER -+PIN_XSPI1_DATA1 OWNER -+PIN_XSPI1_DATA2 OWNER -+PIN_XSPI1_DATA3 OWNER -+PIN_XSPI1_DATA4 OWNER -+PIN_XSPI1_DATA5 OWNER -+PIN_XSPI1_DATA6 OWNER -+PIN_XSPI1_DATA7 OWNER -+PIN_XSPI1_DQS OWNER -+PIN_XSPI1_SCLK OWNER -+PIN_XSPI1_SS0_B OWNER -+PIN_XSPI1_SS1_B OWNER -+ -+# Memory -+ -+FLEXSPI1_MEM EXEC, begin=0x000000000, end=0x0FFFFFFFF -+OCRAM_C EXEC, begin=0x001000000, end=0x001017FFF -+OCRAM EXEC, begin=0x0204C0000, size=96K -+GPU DATA, begin=0x04D900000, end=0x04DD7FFFF -+DDR EXEC, begin=0x088000000, end=0x089FFFFFF -+DDR EXEC, begin=0x08E000000, end=0x87FFFFFFF -+ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0002-ccimx95dvk-configure-board-and-switch-debug-UART-to-.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0002-ccimx95dvk-configure-board-and-switch-debug-UART-to-.patch deleted file mode 100644 index 5a4f9b775..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0002-ccimx95dvk-configure-board-and-switch-debug-UART-to-.patch +++ /dev/null @@ -1,3541 +0,0 @@ -From: Javier Viguera -Date: Mon, 15 Sep 2025 12:17:01 +0200 -Subject: [PATCH] ccimx95dvk: configure board and switch debug UART to LPUART7 - -Assign the UART7 resources to the M33 CPU and the UART2 resources to the -AP CPU. - -Generate configuration tree (configs/ccimx95dvk) with: - - make CONFIG=ccimx95dvk cfg - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Javier Viguera ---- - boards/ccimx95dvk/pin_mux.c | 7 + - configs/ccimx95dvk.cfg | 18 +- - configs/ccimx95dvk/config.dox | 49 + - configs/ccimx95dvk/config.mak | 44 + - configs/ccimx95dvk/config_bctrl.h | 100 +++ - configs/ccimx95dvk/config_board.h | 69 ++ - configs/ccimx95dvk/config_dev.h | 65 ++ - configs/ccimx95dvk/config_lmm.h | 223 +++++ - configs/ccimx95dvk/config_mb_mu.h | 118 +++ - configs/ccimx95dvk/config_scmi.h | 695 +++++++++++++++ - configs/ccimx95dvk/config_smt.h | 168 ++++ - configs/ccimx95dvk/config_test.h | 197 +++++ - configs/ccimx95dvk/config_trdc.h | 1373 +++++++++++++++++++++++++++++ - configs/ccimx95dvk/config_user.h | 230 +++++ - 14 files changed, 3346 insertions(+), 10 deletions(-) - create mode 100644 configs/ccimx95dvk/config.dox - create mode 100644 configs/ccimx95dvk/config.mak - create mode 100644 configs/ccimx95dvk/config_bctrl.h - create mode 100644 configs/ccimx95dvk/config_board.h - create mode 100644 configs/ccimx95dvk/config_dev.h - create mode 100644 configs/ccimx95dvk/config_lmm.h - create mode 100644 configs/ccimx95dvk/config_mb_mu.h - create mode 100644 configs/ccimx95dvk/config_scmi.h - create mode 100644 configs/ccimx95dvk/config_smt.h - create mode 100644 configs/ccimx95dvk/config_test.h - create mode 100644 configs/ccimx95dvk/config_trdc.h - create mode 100644 configs/ccimx95dvk/config_user.h - -diff --git a/boards/ccimx95dvk/pin_mux.c b/boards/ccimx95dvk/pin_mux.c -index b40d897fbcdc..60f6d27c41c5 100755 ---- a/boards/ccimx95dvk/pin_mux.c -+++ b/boards/ccimx95dvk/pin_mux.c -@@ -29,6 +29,13 @@ void BOARD_InitPins(void) - - IOMUXC_SetPinMux(IOMUXC_PAD_UART2_TXD__LPUART2_TX, 0); - IOMUXC_SetPinConfig(IOMUXC_PAD_UART2_TXD__LPUART2_TX, IOMUXC_PAD_DSE(0xFU)); -+#elif (BOARD_DEBUG_UART_INSTANCE == 7U) -+ /* Configure LPUART 7 */ -+ IOMUXC_SetPinMux(IOMUXC_PAD_GPIO_IO09__LPUART7_RX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_GPIO_IO09__LPUART7_RX, IOMUXC_PAD_PD(1U)); -+ -+ IOMUXC_SetPinMux(IOMUXC_PAD_GPIO_IO08__LPUART7_TX, 0); -+ IOMUXC_SetPinConfig(IOMUXC_PAD_GPIO_IO08__LPUART7_TX, IOMUXC_PAD_DSE(0xFU)); - #endif - - #if (BOARD_I2C_INSTANCE == 1U) -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index d05e1214df8a..da383aab036c 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -32,8 +32,8 @@ - - # SM configuration file for the MX95 EVK - --MAKE soc=MIMX95, board=mcimx95evk, build=gcc_cross --DOX name=MX95EVK, desc="i.MX95 EVK Configuration Data" -+MAKE soc=MIMX95, board=ccimx95dvk, build=gcc_cross -+DOX name=CCIMX95DVK, desc="ConnectCore 95 DVK Configuration Data" - - include ../devices/MIMX95/configtool/device.cfg - -@@ -41,7 +41,7 @@ include ../devices/MIMX95/configtool/device.cfg - # Board # - #==========================================================================# - --BOARD DEBUG_UART_INSTANCE=2 -+BOARD DEBUG_UART_INSTANCE=7 - BOARD DEBUG_UART_BAUDRATE=115200 - - BOARD I2C_INSTANCE=1 -@@ -213,7 +213,7 @@ IOMUXC OWNER - IOMUX_GPR OWNER - JTAG OWNER - LPI2C1 OWNER --LPUART2 OWNER -+LPUART7 OWNER - M33_CACHE_CTRL OWNER - M33_PCF OWNER - M33_PSF OWNER -@@ -287,8 +287,8 @@ PIN_FCCU_ERR0 OWNER - PIN_I2C1_SCL OWNER - PIN_I2C1_SDA OWNER - PIN_PDM_BIT_STREAM1 OWNER --PIN_UART2_RXD OWNER --PIN_UART2_TXD OWNER -+PIN_GPIO_IO08 OWNER # LPUART7_TX -+PIN_GPIO_IO09 OWNER # LPUART7_RX - PIN_WDOG_ANY OWNER - - # Memory -@@ -477,10 +477,10 @@ PERLPI_GPIO3 ALL - PERLPI_GPIO4 ALL - PERLPI_GPIO5 ALL - PERLPI_LPUART1 ALL -+PERLPI_LPUART2 ALL - PERLPI_LPUART4 ALL - PERLPI_LPUART5 ALL - PERLPI_LPUART6 ALL --PERLPI_LPUART7 ALL - PERLPI_LPUART8 ALL - PERLPI_WDOG3 ALL - PERLPI_WDOG4 ALL -@@ -760,10 +760,10 @@ LPTPM4 OWNER - LPTPM5 OWNER - LPTPM6 OWNER - LPUART1 OWNER -+LPUART2 OWNER - LPUART4 OWNER - LPUART5 OWNER - LPUART6 OWNER --LPUART7 OWNER - LPUART8 OWNER, test - LVDS OWNER - MIPI_CSI0 OWNER -@@ -909,8 +909,6 @@ PIN_GPIO_IO04 OWNER - PIN_GPIO_IO05 OWNER - PIN_GPIO_IO06 OWNER - PIN_GPIO_IO07 OWNER --PIN_GPIO_IO08 OWNER --PIN_GPIO_IO09 OWNER - PIN_GPIO_IO10 OWNER - PIN_GPIO_IO11 OWNER - PIN_GPIO_IO12 OWNER -diff --git a/configs/ccimx95dvk/config.dox b/configs/ccimx95dvk/config.dox -new file mode 100644 -index 000000000000..09aa69cf4697 ---- /dev/null -+++ b/configs/ccimx95dvk/config.dox -@@ -0,0 +1,49 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*! -+ * @addtogroup SM_CONFIG -+ * @{ -+ */ -+ -+/*! -+ -+@defgroup CONFIG_CCIMX95DVK CONFIG_CCIMX95DVK: ConnectCore 95 DVK Configuration Data -+ -+@brief Module for ConnectCore 95 DVK Configuration Data. -+ -+*/ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config.mak b/configs/ccimx95dvk/config.mak -new file mode 100644 -index 000000000000..01730d54a9b3 ---- /dev/null -+++ b/configs/ccimx95dvk/config.mak -@@ -0,0 +1,44 @@ -+## ################################################################### -+## -+## Copyright 2023-2025 NXP -+## -+## Redistribution and use in source and binary forms, with or without modification, -+## are permitted provided that the following conditions are met: -+## -+## o Redistributions of source code must retain the above copyright notice, this list -+## of conditions and the following disclaimer. -+## -+## o Redistributions in binary form must reproduce the above copyright notice, this -+## list of conditions and the following disclaimer in the documentation and/or -+## other materials provided with the distribution. -+## -+## o Neither the name of the copyright holder nor the names of its -+## contributors may be used to endorse or promote products derived from this -+## software without specific prior written permission. -+## -+## THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+## ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+## WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+## DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+## ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+## (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+## LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+## ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+## (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+## SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+## -+## -+## ################################################################### -+ -+GEN_CONFIG_VER ?= 2U -+BOARD ?= ccimx95dvk -+USES_FUSA ?= 1 -+ -+include ./devices/MIMX95/sm/Makefile -+include ./boards/$(BOARD)/sm/Makefile -+include ./sm/lmm/Makefile -+include ./sm/rpc/mb_mu/Makefile -+include ./sm/rpc/scmi/Makefile -+include ./sm/rpc/smt/Makefile -+include ./sm/makefiles/gcc_cross.mak -+ -diff --git a/configs/ccimx95dvk/config_bctrl.h b/configs/ccimx95dvk/config_bctrl.h -new file mode 100644 -index 000000000000..a757834c32ab ---- /dev/null -+++ b/configs/ccimx95dvk/config_bctrl.h -@@ -0,0 +1,100 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the device block controls. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_BCTRL_H -+#define CONFIG_BCTRL_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+ -+/* Defines */ -+ -+/*--------------------------------------------------------------------------*/ -+/* BCTRL A Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for BCTRL A */ -+#define SM_BCTRL_A_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000008U), 0x00001804U, \ -+ SM_CFG_W1(0x0000000CU), 0x0000E56AU, \ -+ SM_CFG_W1(0x00000010U), 0x0000E56AU, \ -+ SM_CFG_W1(0x00000014U), 0x0000E56AU, \ -+ SM_CFG_W1(0x00000018U), 0x0000E56AU, \ -+ SM_CFG_W1(0x0000001CU), 0x0000E56AU, \ -+ SM_CFG_W1(0x00000020U), 0x0000E56AU, \ -+ SM_CFG_W1(0x00000024U), 0x00000291U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* BCTRL W Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for BCTRL W */ -+#define SM_BCTRL_W_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000030U), 0xFBF7FFFFU, \ -+ SM_CFG_W1(0x00000034U), 0xFBF7FFFFU, \ -+ SM_CFG_W1(0x00000038U), 0xFBF7FFFFU, \ -+ SM_CFG_W1(0x0000003CU), 0xFBF7FFFFU, \ -+ SM_CFG_W1(0x00000040U), 0xFBF7FFFFU, \ -+ SM_CFG_W1(0x00000044U), 0xFBF7FFFFU, \ -+ SM_CFG_W1(0x00000048U), 0x04080000U, \ -+ SM_CFG_W1(0x00000050U), 0x00000001U, \ -+ SM_CFG_W1(0x00000054U), 0x00000001U, \ -+ SM_CFG_W1(0x00000058U), 0x00000001U, \ -+ SM_CFG_W1(0x0000005CU), 0x00000001U, \ -+ SM_CFG_W1(0x00000060U), 0x00000001U, \ -+ SM_CFG_W1(0x00000064U), 0x00000001U, \ -+ SM_CFG_END \ -+ } -+ -+#endif /* CONFIG_BCTRL_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_board.h b/configs/ccimx95dvk/config_board.h -new file mode 100644 -index 000000000000..23ecae56cf78 ---- /dev/null -+++ b/configs/ccimx95dvk/config_board.h -@@ -0,0 +1,69 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the board abstraction. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_BOARD_H -+#define CONFIG_BOARD_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+ -+/* Defines */ -+ -+/*! Config for UART instance */ -+#define BOARD_DEBUG_UART_INSTANCE 7U -+/*! Config for UART baudrate */ -+#define BOARD_DEBUG_UART_BAUDRATE 115200U -+ -+/*! Config for PMIC I2C instance */ -+#define BOARD_I2C_INSTANCE 1U -+/*! Config for PMIC I2C baudrate */ -+#define BOARD_I2C_BAUDRATE 400000U -+ -+#endif /* CONFIG_BOARD_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_dev.h b/configs/ccimx95dvk/config_dev.h -new file mode 100644 -index 000000000000..1768fa8b16ab ---- /dev/null -+++ b/configs/ccimx95dvk/config_dev.h -@@ -0,0 +1,65 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the device abstraction. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_DEV_H -+#define CONFIG_DEV_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+ -+/* Defines */ -+ -+/*! Config for device */ -+#define SM_DEV_CONFIG_DATA \ -+ { \ -+ .cpuSemaAddr[DEV_SM_CPU_A55P] = 0x442313F8U, \ -+ } -+ -+#endif /* CONFIG_DEV_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_lmm.h b/configs/ccimx95dvk/config_lmm.h -new file mode 100644 -index 000000000000..4c7693ee8b81 ---- /dev/null -+++ b/configs/ccimx95dvk/config_lmm.h -@@ -0,0 +1,223 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the logical machine manager. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_LMM_H -+#define CONFIG_LMM_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+ -+/* Defines */ -+ -+/*--------------------------------------------------------------------------*/ -+/* LM0 Config (SM) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for LM0 */ -+#define SM_LM0_CONFIG \ -+ { \ -+ .name = "SM", \ -+ .rpcType = SM_RPC_NONE, \ -+ .boot[0] = 1U, \ -+ .safeType = LMM_SAFE_TYPE_FEENV, \ -+ .boot[1] = 1U, \ -+ .boot[2] = 1U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* LM1 Config (M7) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for LM1 */ -+#define SM_LM1_CONFIG \ -+ { \ -+ .name = "M7", \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcInst = 0U, \ -+ .boot[0] = 2U, \ -+ .bootSkip[0] = 1U, \ -+ .safeType = LMM_SAFE_TYPE_SEENV, \ -+ .start = 1U, \ -+ .stop = 1U, \ -+ .boot[1] = 2U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* LM2 Config (AP) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for LM2 */ -+#define SM_LM2_CONFIG \ -+ { \ -+ .name = "AP", \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcInst = 1U, \ -+ .boot[0] = 3U, \ -+ .bootSkip[0] = 1U, \ -+ .start = 7U, \ -+ .stop = 7U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* LM Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of LM */ -+#define SM_NUM_LM 3U -+ -+/*! Config data array for LM */ -+#define SM_LM_CONFIG_DATA \ -+ SM_LM0_CONFIG, \ -+ SM_LM1_CONFIG, \ -+ SM_LM2_CONFIG -+ -+/*! Number of mSel */ -+#define SM_LM_NUM_MSEL 3U -+ -+/*! Number of S-EENV */ -+#define SM_LM_NUM_SEENV 1U -+ -+/*! Config name */ -+#define SM_LM_CFG_NAME "ccimx95dvk" -+ -+/*! Default LM for monitor */ -+#define SM_LM_DEFAULT 2U -+ -+/*--------------------------------------------------------------------------*/ -+/* LM Start/Stop Lists */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of start */ -+#define SM_LM_NUM_START 18U -+ -+/*! LM start list */ -+#define SM_LM_START_DATA \ -+ {.lmId = 1U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_M7}, \ -+ {.lmId = 1U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_M7}, \ -+ {.lmId = 1U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_M7}, \ -+ {.lmId = 1U, .mSel = 0U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_M7P}, \ -+ {.lmId = 1U, .mSel = 1U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_M7P}, \ -+ {.lmId = 1U, .mSel = 2U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_M7P}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_VOLT, .rsrc = DEV_SM_VOLT_ARM, \ -+ .numArg = 1, .arg[0] = 1U,}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_VOLT, .rsrc = DEV_SM_VOLT_ARM, \ -+ .numArg = 1, .arg[0] = 1U,}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_VOLT, .rsrc = DEV_SM_VOLT_ARM, \ -+ .numArg = 1, .arg[0] = 1U,}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55P}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55P}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55P}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PERF, .rsrc = DEV_SM_PERF_A55, \ -+ .numArg = 1, .arg[0] = 3U,}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PERF, .rsrc = DEV_SM_PERF_A55, \ -+ .numArg = 1, .arg[0] = 3U,}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PERF, .rsrc = DEV_SM_PERF_A55, \ -+ .numArg = 1, .arg[0] = 3U,}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_A55C0}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_A55C0}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_A55C0}, -+ -+/*! Config for number of stop */ -+#define SM_LM_NUM_STOP 33U -+ -+/*! LM stop list */ -+#define SM_LM_STOP_DATA \ -+ {.lmId = 1U, .mSel = 0U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_M7P}, \ -+ {.lmId = 1U, .mSel = 1U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_M7P}, \ -+ {.lmId = 1U, .mSel = 2U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_M7P}, \ -+ {.lmId = 1U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_M7}, \ -+ {.lmId = 1U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_M7}, \ -+ {.lmId = 1U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_M7}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_A55P}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_A55P}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_CPU, .rsrc = DEV_SM_CPU_A55P}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C5}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C5}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C5}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C4}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C4}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C4}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C3}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C3}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C3}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C2}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C2}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C2}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C1}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C1}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C1}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C0}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C0}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55C0}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55P}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55P}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_PD, .rsrc = DEV_SM_PD_A55P}, \ -+ {.lmId = 2U, .mSel = 0U, .ss = LMM_SS_VOLT, .rsrc = DEV_SM_VOLT_ARM}, \ -+ {.lmId = 2U, .mSel = 1U, .ss = LMM_SS_VOLT, .rsrc = DEV_SM_VOLT_ARM}, \ -+ {.lmId = 2U, .mSel = 2U, .ss = LMM_SS_VOLT, .rsrc = DEV_SM_VOLT_ARM}, -+ -+/*--------------------------------------------------------------------------*/ -+/* LM Fault Lists */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! LM fault reactions */ -+#define SM_LM_FAULT_DATA \ -+ [DEV_SM_FAULT_SW3] = {.reaction = LMM_REACT_GRP_RESET, .lm = 0U}, \ -+ [DEV_SM_FAULT_SW4] = {.reaction = LMM_REACT_SYS_RESET, .lm = 0U}, \ -+ [DEV_SM_FAULT_M7_LOCKUP] = {.reaction = LMM_REACT_LM_RESET, .lm = 1U}, \ -+ [DEV_SM_FAULT_M7_RESET] = {.reaction = LMM_REACT_LM_RESET, .lm = 1U}, \ -+ [DEV_SM_FAULT_SW0] = {.reaction = LMM_REACT_FUSA, .lm = 1U}, \ -+ [DEV_SM_FAULT_SW1] = {.reaction = LMM_REACT_LM_RESET, .lm = 1U}, \ -+ [DEV_SM_FAULT_WDOG5] = {.reaction = LMM_REACT_LM_RESET, .lm = 1U}, \ -+ [DEV_SM_FAULT_SW2] = {.reaction = LMM_REACT_LM_RESET, .lm = 2U}, \ -+ [DEV_SM_FAULT_WDOG3] = {.reaction = LMM_REACT_LM_RESET, .lm = 2U}, \ -+ [DEV_SM_FAULT_WDOG4] = {.reaction = LMM_REACT_LM_RESET, .lm = 2U}, -+ -+#endif /* CONFIG_LMM_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_mb_mu.h b/configs/ccimx95dvk/config_mb_mu.h -new file mode 100644 -index 000000000000..e78f2dca1216 ---- /dev/null -+++ b/configs/ccimx95dvk/config_mb_mu.h -@@ -0,0 +1,118 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the MB_MU. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_MB_MU_H -+#define CONFIG_MB_MU_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+#include "mb_mu_config.h" -+ -+/* Defines */ -+ -+/*--------------------------------------------------------------------------*/ -+/* LM0 MB_MU Config (SM) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*--------------------------------------------------------------------------*/ -+/* LM1 MB_MU Config (M7) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for MU9 MB */ -+#define SM_MB_MU9_CONFIG \ -+ { \ -+ .mu = 9U, \ -+ .priority = IRQ_PRIO_NOPREEMPT_HIGH, \ -+ .xportType[0] = SM_XPORT_SMT, \ -+ .xportChannel[0] = 0U, \ -+ .xportType[1] = SM_XPORT_SMT, \ -+ .xportChannel[1] = 1U, \ -+ .xportType[2] = SM_XPORT_SMT, \ -+ .xportChannel[2] = 2U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* LM2 MB_MU Config (AP) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for MU1 MB */ -+#define SM_MB_MU1_CONFIG \ -+ { \ -+ .mu = 1U, \ -+ .xportType[0] = SM_XPORT_SMT, \ -+ .xportChannel[0] = 3U, \ -+ .xportType[1] = SM_XPORT_SMT, \ -+ .xportChannel[1] = 4U, \ -+ } -+ -+/*! Config for MU3 MB */ -+#define SM_MB_MU3_CONFIG \ -+ { \ -+ .mu = 3U, \ -+ .xportType[0] = SM_XPORT_SMT, \ -+ .xportChannel[0] = 5U, \ -+ .xportType[1] = SM_XPORT_SMT, \ -+ .xportChannel[1] = 6U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* MB MU Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of MU MB */ -+#define SM_NUM_MB_MU 3U -+ -+/*! Config data array for MU MB */ -+#define SM_MB_MU_CONFIG_DATA \ -+ SM_MB_MU9_CONFIG, \ -+ SM_MB_MU1_CONFIG, \ -+ SM_MB_MU3_CONFIG -+ -+#endif /* CONFIG_MB_MU_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -new file mode 100644 -index 000000000000..e1b81cc03f58 ---- /dev/null -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -0,0 +1,695 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the SCMI RPC. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_SCMI_H -+#define CONFIG_SCMI_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+ -+/* Defines */ -+ -+/*--------------------------------------------------------------------------*/ -+/* SCMI AGENT0 Config (M7) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for SCMI agent 0 */ -+#define SM_SCMI_AGNT0_CONFIG \ -+ { \ -+ .name = "M7", \ -+ .scmiInst = 0U, \ -+ .domId = 4U, \ -+ .secure = 0U, \ -+ .seenvId = 1U, \ -+ .buttonPerms[DEV_SM_BUTTON_0] = SM_SCMI_PERM_NOTIFY, \ -+ .clkPerms[DEV_SM_CLK_CAN1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPTMR1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPTMR2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPUART3] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_M7SYSTICK] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_M7] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_TSTMR2] = SM_SCMI_PERM_ALL, \ -+ .cpuPerms[DEV_SM_CPU_M7P] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[BRD_SM_CTRL_BUTTON] = SM_SCMI_PERM_NOTIFY, \ -+ .ctrlPerms[BRD_SM_CTRL_PCA2131] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[BRD_SM_CTRL_TEST] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_CAN1_RX] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPTMR2_0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPTMR2_1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPTMR2_2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART3_CTS] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART3_RXD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART3_TXD] = SM_SCMI_PERM_ALL, \ -+ .faultPerms[DEV_SM_FAULT_M7_LOCKUP] = SM_SCMI_PERM_ALL, \ -+ .faultPerms[DEV_SM_FAULT_M7_RESET] = SM_SCMI_PERM_ALL, \ -+ .faultPerms[DEV_SM_FAULT_SW0] = SM_SCMI_PERM_ALL, \ -+ .faultPerms[DEV_SM_FAULT_SW1] = SM_SCMI_PERM_ALL, \ -+ .faultPerms[DEV_SM_FAULT_WDOG5] = SM_SCMI_PERM_ALL, \ -+ .fusaPerms = SM_SCMI_PERM_ALL, \ -+ .lmmPerms[2] = SM_SCMI_PERM_ALL, \ -+ .pdPerms[DEV_SM_PD_M7] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_M7] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN1] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART3] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_WDOG5] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO14] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO15] = SM_SCMI_PERM_ALL, \ -+ .rtcPerms[BRD_SM_RTC_PCA2131] = SM_SCMI_PERM_ALL, \ -+ .rtcPerms[DEV_SM_RTC_BBNSM] = SM_SCMI_PERM_PRIV, \ -+ .sensorPerms[BRD_SM_SENSOR_TEMP_PF09] = SM_SCMI_PERM_SET, \ -+ .sensorPerms[BRD_SM_SENSOR_TEMP_PF5301] = SM_SCMI_PERM_SET, \ -+ .sensorPerms[BRD_SM_SENSOR_TEMP_PF5302] = SM_SCMI_PERM_SET, \ -+ .sensorPerms[DEV_SM_SENSOR_TEMP_ANA] = SM_SCMI_PERM_ALL, \ -+ .sysPerms = SM_SCMI_PERM_ALL, \ -+ } -+ -+/*! Config for SCMI channel 0 */ -+#define SM_SCMI_CHN0_CONFIG \ -+ { \ -+ .agentId = 0U, \ -+ .type = SM_SCMI_CHN_A2P, \ -+ .xportType = SM_XPORT_SMT, \ -+ .xportChannel = 0U, \ -+ } -+ -+/*! Config for SCMI channel 1 */ -+#define SM_SCMI_CHN1_CONFIG \ -+ { \ -+ .agentId = 0U, \ -+ .type = SM_SCMI_CHN_P2A_NOTIFY, \ -+ .xportType = SM_XPORT_SMT, \ -+ .xportChannel = 1U, \ -+ } -+ -+/*! Config for SCMI channel 2 */ -+#define SM_SCMI_CHN2_CONFIG \ -+ { \ -+ .agentId = 0U, \ -+ .type = SM_SCMI_CHN_P2A_PRIORITY, \ -+ .xportType = SM_XPORT_SMT, \ -+ .xportChannel = 2U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* SCMI Instance 0 Config (M7) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for SCMI instance 0 */ -+#define SM_SCMI0_CONFIG \ -+ { \ -+ .lmId = 1U, \ -+ .numAgents = 1U, \ -+ .firstAgent = 0U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* SCMI AGENT1 Config (AP-S) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for SCMI agent 1 */ -+#define SM_SCMI_AGNT1_CONFIG \ -+ { \ -+ .name = "AP-S", \ -+ .scmiInst = 1U, \ -+ .domId = 3U, \ -+ .secure = 1U, \ -+ .clkPerms[DEV_SM_CLK_A55C0_GPR_SEL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_A55C1_GPR_SEL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_A55C2_GPR_SEL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_A55C3_GPR_SEL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_A55C4_GPR_SEL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_A55C5_GPR_SEL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_A55PERIPH] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_A55P_GPR_SEL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_A55] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_PFD0] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_PFD0_UNGATED] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_PFD1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_PFD1_UNGATED] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_PFD2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_PFD2_UNGATED] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_PFD3] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_PFD3_UNGATED] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ARMPLL_VCO] = SM_SCMI_PERM_ALL, \ -+ .cpuPerms[DEV_SM_CPU_A55C0] = SM_SCMI_PERM_ALL, \ -+ .cpuPerms[DEV_SM_CPU_A55C1] = SM_SCMI_PERM_ALL, \ -+ .cpuPerms[DEV_SM_CPU_A55C2] = SM_SCMI_PERM_ALL, \ -+ .cpuPerms[DEV_SM_CPU_A55C3] = SM_SCMI_PERM_ALL, \ -+ .cpuPerms[DEV_SM_CPU_A55C4] = SM_SCMI_PERM_ALL, \ -+ .cpuPerms[DEV_SM_CPU_A55C5] = SM_SCMI_PERM_ALL, \ -+ .cpuPerms[DEV_SM_CPU_A55P] = SM_SCMI_PERM_ALL, \ -+ .faultPerms[DEV_SM_FAULT_SW2] = SM_SCMI_PERM_ALL, \ -+ .faultPerms[DEV_SM_FAULT_WDOG3] = SM_SCMI_PERM_ALL, \ -+ .faultPerms[DEV_SM_FAULT_WDOG4] = SM_SCMI_PERM_ALL, \ -+ .pdPerms[DEV_SM_PD_A55P] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_A55] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_DRAM] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN2] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN3] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN4] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN5] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO2] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO3] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO4] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO5] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART1] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART2] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART4] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART5] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART6] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART8] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_WDOG3] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_WDOG4] = SM_SCMI_PERM_ALL, \ -+ .sysPerms = SM_SCMI_PERM_ALL, \ -+ } -+ -+/*! Config for SCMI channel 3 */ -+#define SM_SCMI_CHN3_CONFIG \ -+ { \ -+ .agentId = 1U, \ -+ .type = SM_SCMI_CHN_A2P, \ -+ .xportType = SM_XPORT_SMT, \ -+ .xportChannel = 3U, \ -+ } -+ -+/*! Config for SCMI channel 4 */ -+#define SM_SCMI_CHN4_CONFIG \ -+ { \ -+ .agentId = 1U, \ -+ .type = SM_SCMI_CHN_P2A_NOTIFY, \ -+ .xportType = SM_XPORT_SMT, \ -+ .xportChannel = 4U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* SCMI AGENT2 Config (AP-NS) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for SCMI agent 2 */ -+#define SM_SCMI_AGNT2_CONFIG \ -+ { \ -+ .name = "AP-NS", \ -+ .scmiInst = 1U, \ -+ .domId = 3U, \ -+ .secure = 0U, \ -+ .buttonPerms[DEV_SM_BUTTON_0] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_AUDIOPLL1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_AUDIOPLL1_VCO] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_AUDIOPLL2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_AUDIOPLL2_VCO] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_AUDIOXCVR] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CAN2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CAN3] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CAN4] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CAN5] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CCMCKO1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CCMCKO2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CCMCKO3] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CCMCKO4] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_DISP1PIX] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_DISP2PIX] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_DISP3PIX] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_DISPOCRAM] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ENETREF] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_ENETTIMER1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_EXT1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_EXT2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_EXT] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_EXT_GPR_SEL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_FLEXIO1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_FLEXIO2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_FLEXSPI1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_GPU_CGC] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_HSIOPCIEAUX] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_HSIOPLL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_HSIOPLL_VCO] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_I3C1SLOW] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_I3C1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_I3C2SLOW] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_I3C2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LDBPLL] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LDBPLL_VCO] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPI2C2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPI2C3] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPI2C4] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPI2C5] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPI2C6] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPI2C7] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPI2C8] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPSPI1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPSPI2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPSPI3] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPSPI4] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPSPI5] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPSPI6] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPSPI7] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPSPI8] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPUART1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPUART2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPUART4] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPUART5] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPUART6] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPUART8] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_MIPIPHYCFG] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_MIPIPHYPLLBYPASS] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_MIPIPHYPLLREF] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_MIPITESTBYTE] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_MQS1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_MQS2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_PDM] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_SAI1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_SAI2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_SAI3] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_SAI4] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_SAI5] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_SPDIF] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_TPM2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_TPM4] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_TPM5] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_TPM6] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_USBPHYBURUNIN] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_USDHC1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_USDHC2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_USDHC3] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_VIDEOPLL1] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_VIDEOPLL1_VCO] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_VPUDSP] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_XSPISLVROOT] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[BRD_SM_CTRL_BT_WAKE] = SM_SCMI_PERM_NOTIFY, \ -+ .ctrlPerms[BRD_SM_CTRL_BUTTON] = SM_SCMI_PERM_NOTIFY, \ -+ .ctrlPerms[BRD_SM_CTRL_PCIE1_WAKE] = SM_SCMI_PERM_NOTIFY, \ -+ .ctrlPerms[BRD_SM_CTRL_PCIE2_WAKE] = SM_SCMI_PERM_NOTIFY, \ -+ .ctrlPerms[BRD_SM_CTRL_SD3_WAKE] = SM_SCMI_PERM_NOTIFY, \ -+ .ctrlPerms[DEV_SM_CTRL_ADC_TEST] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[DEV_SM_CTRL_MQS1_SETTINGS] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[DEV_SM_CTRL_PDM_CLK_SEL] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[DEV_SM_CTRL_SAI1_MCLK] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[DEV_SM_CTRL_SAI3_MCLK] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[DEV_SM_CTRL_SAI4_MCLK] = SM_SCMI_PERM_ALL, \ -+ .ctrlPerms[DEV_SM_CTRL_SAI5_MCLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_CAN2_RX] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_CAN3_RX] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_CAN4_RX] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_CAN5_RX] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_EARC_PHY_SPDIF] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_EXT1_CLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_10] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_11] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_12] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_13] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_14] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_15] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_16] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_17] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_18] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_19] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_20] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_21] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_22] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_23] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_24] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_25] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_26] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_27] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_30] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_31] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_3] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_4] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_5] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_6] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_7] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_8] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXIO1_9] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_3] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_4] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_5] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_6] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_7] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_DQS] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_FLEXSPI1_SCK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_I3C2_SCL] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_I3C2_SDA] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C3_SCL] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C3_SDA] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C4_SCL] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C4_SDA] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C5_SCL] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C5_SDA] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C6_SCL] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C6_SDA] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C7_SCL] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C7_SDA] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C8_SCL] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPI2C8_SDA] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPSPI4_PCS_0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPSPI4_PCS_1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPSPI4_PCS_2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPSPI4_SCK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPSPI4_SDI] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPSPI4_SDO] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART4_CTS] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART4_RXD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART4_TXD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART5_CTS] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART5_RXD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART5_TXD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART6_CTS] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART6_RXD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART6_TXD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_NETC_EMDC] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_NETC_EMDIO] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_NETC_ETH0_RMII_RX_ER] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_NETC_ETH1_RMII_RX_ER] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_NETC_TMR_1588_TRIG1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_NETC_TMR_1588_TRIG2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_PDM_BITSTREAM_0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_PDM_BITSTREAM_1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_PDM_BITSTREAM_2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_PDM_BITSTREAM_3] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI1_MCLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI2_RXDATA_6] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI2_RXDATA_7] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI3_RXBCLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI3_RXSYNC] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI4_RXBCLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI4_RXDATA_0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI4_RXSYNC] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI4_TXBCLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI4_TXSYNC] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI5_RXBCLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI5_RXDATA_0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI5_RXDATA_1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI5_RXDATA_2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI5_RXDATA_3] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI5_RXSYNC] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI5_TXBCLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_SAI5_TXSYNC] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_USDHC3_CLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_USDHC3_CMD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_USDHC3_DAT0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_USDHC3_DAT1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_USDHC3_DAT2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_USDHC3_DAT3] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_0] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_1] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_2] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_3] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_4] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_5] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_6] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_7] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_CS] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_DQS] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_XSPI_SCK] = SM_SCMI_PERM_ALL, \ -+ .gprPerms[DEV_SM_GPR_4] = SM_SCMI_PERM_ALL, \ -+ .gprPerms[DEV_SM_GPR_5] = SM_SCMI_PERM_ALL, \ -+ .gprPerms[DEV_SM_GPR_6] = SM_SCMI_PERM_ALL, \ -+ .gprPerms[DEV_SM_GPR_7] = SM_SCMI_PERM_ALL, \ -+ .lmmPerms[1] = SM_SCMI_PERM_NOTIFY, \ -+ .pdPerms[DEV_SM_PD_CAMERA] = SM_SCMI_PERM_ALL, \ -+ .pdPerms[DEV_SM_PD_DISPLAY] = SM_SCMI_PERM_ALL, \ -+ .pdPerms[DEV_SM_PD_GPU] = SM_SCMI_PERM_ALL, \ -+ .pdPerms[DEV_SM_PD_HSIO_TOP] = SM_SCMI_PERM_ALL, \ -+ .pdPerms[DEV_SM_PD_NETC] = SM_SCMI_PERM_ALL, \ -+ .pdPerms[DEV_SM_PD_NPU] = SM_SCMI_PERM_ALL, \ -+ .pdPerms[DEV_SM_PD_VPU] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_A55] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_CAM] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_DISP] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_DRAM] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_GPU] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_NPU] = SM_SCMI_PERM_ALL, \ -+ .perfPerms[DEV_SM_PERF_VPU] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN2] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN3] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN4] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN5] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO2] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO3] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO4] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO5] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART1] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART2] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART4] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART5] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART6] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART8] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_WDOG3] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_WDOG4] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_CCM_CLKO1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_CCM_CLKO2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_CCM_CLKO3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_CCM_CLKO4] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_DAP_TCLK_SWCLK] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_DAP_TDI] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_DAP_TDO_TRACESWO] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_DAP_TMS_SWDIO] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_MDC] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_MDIO] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_RD0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_RD1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_RD2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_RD3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_RXC] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_RX_CTL] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_TD0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_TD1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_TD2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_TD3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_TXC] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET1_TX_CTL] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_MDC] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_MDIO] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_RD0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_RD1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_RD2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_RD3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_RXC] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_RX_CTL] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_TD0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_TD1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_TD2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_TD3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_TXC] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_ENET2_TX_CTL] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO00] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO01] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO02] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO03] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO04] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO05] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO06] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO07] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO10] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO11] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO12] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO13] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO16] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO17] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO18] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO19] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO20] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO21] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO22] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO23] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO24] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO25] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO26] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO27] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO28] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO29] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO30] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO31] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO32] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO33] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO34] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO35] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO36] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO37] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_I2C2_SCL] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_I2C2_SDA] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_PDM_BIT_STREAM0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_PDM_CLK] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SAI1_RXD0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SAI1_TXC] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SAI1_TXD0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SAI1_TXFS] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_CLK] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_CMD] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_DATA0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_DATA1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_DATA2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_DATA3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_DATA4] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_DATA5] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_DATA6] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_DATA7] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD1_STROBE] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_CD_B] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_CLK] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_CMD] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_DATA0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_DATA1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_DATA2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_DATA3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_RESET_B] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD2_VSELECT] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD3_CLK] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD3_CMD] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD3_DATA0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD3_DATA1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD3_DATA2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_SD3_DATA3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_UART1_RXD] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_UART1_TXD] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DATA0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DATA1] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DATA2] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DATA3] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DATA4] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DATA5] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DATA6] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DATA7] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_DQS] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_SCLK] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_SS0_B] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_XSPI1_SS1_B] = SM_SCMI_PERM_ALL, \ -+ .rtcPerms[BRD_SM_RTC_PCA2131] = SM_SCMI_PERM_PRIV, \ -+ .rtcPerms[DEV_SM_RTC_BBNSM] = SM_SCMI_PERM_ALL, \ -+ .sensorPerms[BRD_SM_SENSOR_TEMP_PF09] = SM_SCMI_PERM_ALL, \ -+ .sensorPerms[BRD_SM_SENSOR_TEMP_PF5301] = SM_SCMI_PERM_SET, \ -+ .sensorPerms[BRD_SM_SENSOR_TEMP_PF5302] = SM_SCMI_PERM_SET, \ -+ .sensorPerms[DEV_SM_SENSOR_TEMP_A55] = SM_SCMI_PERM_ALL, \ -+ .sensorPerms[DEV_SM_SENSOR_TEMP_ANA] = SM_SCMI_PERM_SET, \ -+ .sysPerms = SM_SCMI_PERM_NOTIFY, \ -+ } -+ -+/*! Config for SCMI channel 5 */ -+#define SM_SCMI_CHN5_CONFIG \ -+ { \ -+ .agentId = 2U, \ -+ .type = SM_SCMI_CHN_A2P, \ -+ .xportType = SM_XPORT_SMT, \ -+ .xportChannel = 5U, \ -+ } -+ -+/*! Config for SCMI channel 6 */ -+#define SM_SCMI_CHN6_CONFIG \ -+ { \ -+ .agentId = 2U, \ -+ .type = SM_SCMI_CHN_P2A_NOTIFY, \ -+ .xportType = SM_XPORT_SMT, \ -+ .xportChannel = 6U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* SCMI Instance 1 Config (AP) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for SCMI instance 1 */ -+#define SM_SCMI1_CONFIG \ -+ { \ -+ .lmId = 2U, \ -+ .numAgents = 2U, \ -+ .firstAgent = 1U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* SCMI Agent Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of SCMI agents */ -+#define SM_SCMI_NUM_AGNT 3U -+ -+/*! Config data array for SCMI agents */ -+#define SM_SCMI_AGNT_CONFIG_DATA \ -+ SM_SCMI_AGNT0_CONFIG, \ -+ SM_SCMI_AGNT1_CONFIG, \ -+ SM_SCMI_AGNT2_CONFIG -+ -+/*--------------------------------------------------------------------------*/ -+/* SCMI Channel Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of SCMI channels */ -+#define SM_SCMI_NUM_CHN 7U -+ -+/*! Config data array for SCMI channels */ -+#define SM_SCMI_CHN_CONFIG_DATA \ -+ SM_SCMI_CHN0_CONFIG, \ -+ SM_SCMI_CHN1_CONFIG, \ -+ SM_SCMI_CHN2_CONFIG, \ -+ SM_SCMI_CHN3_CONFIG, \ -+ SM_SCMI_CHN4_CONFIG, \ -+ SM_SCMI_CHN5_CONFIG, \ -+ SM_SCMI_CHN6_CONFIG -+ -+/*--------------------------------------------------------------------------*/ -+/* SCMI Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of SCMI instances */ -+#define SM_NUM_SCMI 2U -+ -+/*! Config data array for SCMI instances */ -+#define SM_SCMI_CONFIG_DATA \ -+ SM_SCMI0_CONFIG, \ -+ SM_SCMI1_CONFIG -+ -+/*! Max words to buffer for notification messages */ -+#define SM_SCMI_MAX_NOTIFY 24U -+ -+#endif /* CONFIG_SCMI_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_smt.h b/configs/ccimx95dvk/config_smt.h -new file mode 100644 -index 000000000000..7da4e43af886 ---- /dev/null -+++ b/configs/ccimx95dvk/config_smt.h -@@ -0,0 +1,168 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the SMT. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_SMT_H -+#define CONFIG_SMT_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+#include "rpc_smt_config.h" -+ -+/* Defines */ -+ -+/*--------------------------------------------------------------------------*/ -+/* LM0 SMT Config (SM) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*--------------------------------------------------------------------------*/ -+/* LM1 SMT Config (M7) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for SMT channel 0 */ -+#define SM_SMT_CHN0_CONFIG \ -+ { \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcChannel = 0U, \ -+ .mbType = SM_MB_MU, \ -+ .mbInst = 0U, \ -+ .mbDoorbell = 0U, \ -+ .crc = SM_SMT_CRC_CRC32, \ -+ } -+ -+/*! Config for SMT channel 1 */ -+#define SM_SMT_CHN1_CONFIG \ -+ { \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcChannel = 1U, \ -+ .mbType = SM_MB_MU, \ -+ .mbInst = 0U, \ -+ .mbDoorbell = 1U, \ -+ .crc = SM_SMT_CRC_CRC32, \ -+ } -+ -+/*! Config for SMT channel 2 */ -+#define SM_SMT_CHN2_CONFIG \ -+ { \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcChannel = 2U, \ -+ .mbType = SM_MB_MU, \ -+ .mbInst = 0U, \ -+ .mbDoorbell = 2U, \ -+ .crc = SM_SMT_CRC_CRC32, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* LM2 SMT Config (AP) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for SMT channel 3 */ -+#define SM_SMT_CHN3_CONFIG \ -+ { \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcChannel = 3U, \ -+ .mbType = SM_MB_MU, \ -+ .mbInst = 1U, \ -+ .mbDoorbell = 0U, \ -+ } -+ -+/*! Config for SMT channel 4 */ -+#define SM_SMT_CHN4_CONFIG \ -+ { \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcChannel = 4U, \ -+ .mbType = SM_MB_MU, \ -+ .mbInst = 1U, \ -+ .mbDoorbell = 1U, \ -+ } -+ -+/*! Config for SMT channel 5 */ -+#define SM_SMT_CHN5_CONFIG \ -+ { \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcChannel = 5U, \ -+ .mbType = SM_MB_MU, \ -+ .mbInst = 2U, \ -+ .mbDoorbell = 0U, \ -+ } -+ -+/*! Config for SMT channel 6 */ -+#define SM_SMT_CHN6_CONFIG \ -+ { \ -+ .rpcType = SM_RPC_SCMI, \ -+ .rpcChannel = 6U, \ -+ .mbType = SM_MB_MU, \ -+ .mbInst = 2U, \ -+ .mbDoorbell = 1U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* SMT Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of SMT channels */ -+#define SM_NUM_SMT_CHN 7U -+ -+/*! Config data array for SMT channels */ -+#define SM_SMT_CHN_CONFIG_DATA \ -+ SM_SMT_CHN0_CONFIG, \ -+ SM_SMT_CHN1_CONFIG, \ -+ SM_SMT_CHN2_CONFIG, \ -+ SM_SMT_CHN3_CONFIG, \ -+ SM_SMT_CHN4_CONFIG, \ -+ SM_SMT_CHN5_CONFIG, \ -+ SM_SMT_CHN6_CONFIG -+ -+/* Mailbox and CRC types to support */ -+/*! Config for MB_MU USE */ -+#define USES_MB_MU -+/*! Config for CRC32 CRC USE */ -+#define USES_CRC_CRC32 -+ -+#endif /* CONFIG_SMT_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_test.h b/configs/ccimx95dvk/config_test.h -new file mode 100644 -index 000000000000..cb737f33eede ---- /dev/null -+++ b/configs/ccimx95dvk/config_test.h -@@ -0,0 +1,197 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the unit tests. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_TEST_H -+#define CONFIG_TEST_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+ -+/* Defines */ -+ -+/*--------------------------------------------------------------------------*/ -+/* LM0 Test Config (SM) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*--------------------------------------------------------------------------*/ -+/* LM1 Test Config (M7) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for test channel 0 */ -+#define SM_TEST_CHN0_CONFIG \ -+ { \ -+ .mbInst = 8U, \ -+ .mbDoorbell = 0U, \ -+ .agentId = 0U, \ -+ } -+ -+/*! Config for test channel 1 */ -+#define SM_TEST_CHN1_CONFIG \ -+ { \ -+ .mbInst = 8U, \ -+ .mbDoorbell = 1U, \ -+ .agentId = 0U, \ -+ } -+ -+/*! Config for test channel 2 */ -+#define SM_TEST_CHN2_CONFIG \ -+ { \ -+ .mbInst = 8U, \ -+ .mbDoorbell = 2U, \ -+ .agentId = 0U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* LM2 Test Config (AP) */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for test channel 3 */ -+#define SM_TEST_CHN3_CONFIG \ -+ { \ -+ .mbInst = 0U, \ -+ .mbDoorbell = 0U, \ -+ .agentId = 1U, \ -+ } -+ -+/*! Config for test channel 4 */ -+#define SM_TEST_CHN4_CONFIG \ -+ { \ -+ .mbInst = 0U, \ -+ .mbDoorbell = 1U, \ -+ .agentId = 1U, \ -+ } -+ -+/*! Config for test channel 5 */ -+#define SM_TEST_CHN5_CONFIG \ -+ { \ -+ .mbInst = 2U, \ -+ .mbDoorbell = 0U, \ -+ .agentId = 2U, \ -+ } -+ -+/*! Config for test channel 6 */ -+#define SM_TEST_CHN6_CONFIG \ -+ { \ -+ .mbInst = 2U, \ -+ .mbDoorbell = 1U, \ -+ .agentId = 2U, \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* Test Channel Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of test channels */ -+#define SM_NUM_TEST_CHN 7U -+ -+/*! Config data array for test channels */ -+#define SM_TEST_CHN_CONFIG_DATA \ -+ SM_TEST_CHN0_CONFIG, \ -+ SM_TEST_CHN1_CONFIG, \ -+ SM_TEST_CHN2_CONFIG, \ -+ SM_TEST_CHN3_CONFIG, \ -+ SM_TEST_CHN4_CONFIG, \ -+ SM_TEST_CHN5_CONFIG, \ -+ SM_TEST_CHN6_CONFIG -+ -+/*--------------------------------------------------------------------------*/ -+/* Test Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for number of tests */ -+#define SM_SCMI_NUM_TEST 40U -+ -+/*! Config data array for tests */ -+#define SM_SCMI_TEST_CONFIG_DATA \ -+ {.testId = TEST_BUTTON, .channel = 5U, .rsrc = DEV_SM_BUTTON_0}, \ -+ {.testId = TEST_CLK, .channel = 0U, .rsrc = DEV_SM_CLK_LPUART3}, \ -+ {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_DISPOCRAM}, \ -+ {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_ENETREF}, \ -+ {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_ENETTIMER1}, \ -+ {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_LPUART8}, \ -+ {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_MQS1}, \ -+ {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_SAI1}, \ -+ {.testId = TEST_CTRL, .channel = 5U, .rsrc = DEV_SM_CTRL_MQS1_SETTINGS}, \ -+ {.testId = TEST_CTRL, .channel = 5U, .rsrc = DEV_SM_CTRL_SAI1_MCLK}, \ -+ {.testId = TEST_DAISY, .channel = 0U, .rsrc = DEV_SM_DAISY_LPUART3_CTS}, \ -+ {.testId = TEST_DAISY, .channel = 0U, .rsrc = DEV_SM_DAISY_LPUART3_RXD}, \ -+ {.testId = TEST_DAISY, .channel = 0U, .rsrc = DEV_SM_DAISY_LPUART3_TXD}, \ -+ {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_EMDC}, \ -+ {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_EMDIO}, \ -+ {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_ETH0_RMII_RX_ER}, \ -+ {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_ETH1_RMII_RX_ER}, \ -+ {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_TMR_1588_TRIG1}, \ -+ {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_TMR_1588_TRIG2}, \ -+ {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_SAI1_MCLK}, \ -+ {.testId = TEST_GPR, .channel = 5U, .rsrc = DEV_SM_GPR_4}, \ -+ {.testId = TEST_PD, .channel = 0U, .rsrc = DEV_SM_PD_A55P}, \ -+ {.testId = TEST_PD, .channel = 0U, .rsrc = DEV_SM_PD_M7}, \ -+ {.testId = TEST_PD, .channel = 5U, .rsrc = DEV_SM_PD_CAMERA}, \ -+ {.testId = TEST_PD, .channel = 5U, .rsrc = DEV_SM_PD_CAMERA}, \ -+ {.testId = TEST_PD, .channel = 5U, .rsrc = DEV_SM_PD_DISPLAY}, \ -+ {.testId = TEST_PD, .channel = 5U, .rsrc = DEV_SM_PD_GPU}, \ -+ {.testId = TEST_PD, .channel = 5U, .rsrc = DEV_SM_PD_HSIO_TOP}, \ -+ {.testId = TEST_PD, .channel = 5U, .rsrc = DEV_SM_PD_NPU}, \ -+ {.testId = TEST_PD, .channel = 5U, .rsrc = DEV_SM_PD_VPU}, \ -+ {.testId = TEST_PERF, .channel = 5U, .rsrc = DEV_SM_PERF_CAM}, \ -+ {.testId = TEST_PERF, .channel = 5U, .rsrc = DEV_SM_PERF_DISP}, \ -+ {.testId = TEST_PERF, .channel = 5U, .rsrc = DEV_SM_PERF_GPU}, \ -+ {.testId = TEST_PERF, .channel = 5U, .rsrc = DEV_SM_PERF_NPU}, \ -+ {.testId = TEST_PERF, .channel = 5U, .rsrc = DEV_SM_PERF_VPU}, \ -+ {.testId = TEST_PERLPI, .channel = 0U, .rsrc = DEV_SM_PERLPI_LPUART3}, \ -+ {.testId = TEST_PERLPI, .channel = 5U, .rsrc = DEV_SM_PERLPI_LPUART8}, \ -+ {.testId = TEST_PIN, .channel = 5U, .rsrc = DEV_SM_PIN_UART1_RXD}, \ -+ {.testId = TEST_RTC, .channel = 5U, .rsrc = DEV_SM_RTC_BBNSM}, \ -+ {.testId = TEST_SENSOR, .channel = 0U, .rsrc = DEV_SM_SENSOR_TEMP_ANA} -+ -+/*! Default channel for non-agent specific tests */ -+#define SM_TEST_DEFAULT_CHN 0U -+ -+#endif /* CONFIG_TEST_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_trdc.h b/configs/ccimx95dvk/config_trdc.h -new file mode 100644 -index 000000000000..1d8ed0b6fc95 ---- /dev/null -+++ b/configs/ccimx95dvk/config_trdc.h -@@ -0,0 +1,1373 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the TRDC SM abstraction. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_TRDC_H -+#define CONFIG_TRDC_H -+ -+/* Includes */ -+ -+#include "config_user.h" -+ -+/* Defines */ -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC A Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC A */ -+#define SM_TRDC_A_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0xB00000A0U, \ -+ SM_CFG_W1(0x00000820U), 0xB0000012U, \ -+ SM_CFG_W1(0x00000840U), 0xB0000013U, \ -+ SM_CFG_W1(0x00000860U), 0xB0000013U, \ -+ SM_CFG_W1(0x00000880U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008c0U), 0xB0000014U, \ -+ SM_CFG_W1(0x00000a00U), 0x90000002U, \ -+ SM_CFG_W1(0x00000a04U), 0x90000002U, \ -+ SM_CFG_W1(0x00000a08U), 0x90000002U, \ -+ SM_CFG_W1(0x00000a20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000aa0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ac0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ae0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ba0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000bc0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000be0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ca0U), 0xB00000A1U, \ -+ SM_CFG_W1(0x00000cc0U), 0xB00000A1U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_W1(0x00010030U), 0x4444U, \ -+ SM_CFG_Z1(0x00010050U), \ -+ SM_CFG_Z1(0x00010054U), \ -+ SM_CFG_W1(0x00010064U), 0x00000003U, \ -+ SM_CFG_W1(0x00010068U), 0x00000003U, \ -+ SM_CFG_W1(0x00010180U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00010250U), \ -+ SM_CFG_Z1(0x00010254U), \ -+ SM_CFG_W1(0x00010264U), 0x00000900U, \ -+ SM_CFG_W1(0x00010380U), 0x000000C0U, \ -+ SM_CFG_W1(0x00010450U), 0x30003330U, \ -+ SM_CFG_W1(0x00010454U), 0x03333033U, \ -+ SM_CFG_W1(0x00010458U), 0x00030000U, \ -+ SM_CFG_W1(0x0001045cU), 0x33330000U, \ -+ SM_CFG_W1(0x00010460U), 0x33333333U, \ -+ SM_CFG_W1(0x00010464U), 0x30000003U, \ -+ SM_CFG_W1(0x00010468U), 0x33330030U, \ -+ SM_CFG_W1(0x0001046cU), 0x33333333U, \ -+ SM_CFG_W1(0x00010470U), 0x33333333U, \ -+ SM_CFG_W1(0x00010474U), 0x00003000U, \ -+ SM_CFG_W1(0x00010580U), 0x000003C0U, \ -+ SM_CFG_W1(0x000105a8U), 0x00000003U, \ -+ SM_CFG_W1(0x00010640U), 0x99999999U, \ -+ SM_CFG_W1(0x00010644U), 0x99999999U, \ -+ SM_CFG_W1(0x00010648U), 0x99999999U, \ -+ SM_CFG_W1(0x0001064cU), 0x99999999U, \ -+ SM_CFG_W1(0x00010650U), 0x09000309U, \ -+ SM_CFG_W1(0x00010654U), 0x0000C900U, \ -+ SM_CFG_W1(0x00010658U), 0x99909900U, \ -+ SM_CFG_W1(0x0001065cU), 0x00009099U, \ -+ SM_CFG_W1(0x00010668U), 0x00009900U, \ -+ SM_CFG_W1(0x0001066cU), 0x90909000U, \ -+ SM_CFG_W1(0x00010670U), 0x00009000U, \ -+ SM_CFG_W1(0x00010780U), 0x099330C0U, \ -+ SM_CFG_Z1(0x00010850U), \ -+ SM_CFG_W1(0x00010854U), 0x9000C000U, \ -+ SM_CFG_W1(0x00010858U), 0x00000099U, \ -+ SM_CFG_W1(0x0001085cU), 0x00000900U, \ -+ SM_CFG_W1(0x00010870U), 0x00000090U, \ -+ SM_CFG_W1(0x00010874U), 0x00000999U, \ -+ SM_CFG_W1(0x00010980U), 0x900000C0U, \ -+ SM_CFG_Z1(0x00010a50U), \ -+ SM_CFG_Z1(0x00010a54U), \ -+ SM_CFG_W1(0x00010b80U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00010c50U), \ -+ SM_CFG_Z1(0x00010c54U), \ -+ SM_CFG_W1(0x00010d80U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00010e50U), \ -+ SM_CFG_Z1(0x00010e54U), \ -+ SM_CFG_W1(0x00010f80U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00011050U), \ -+ SM_CFG_Z1(0x00011054U), \ -+ SM_CFG_W1(0x00011064U), 0x09999000U, \ -+ SM_CFG_W1(0x00011180U), 0x000000C0U, \ -+ SM_CFG_W1(0x00011240U), 0x99999999U, \ -+ SM_CFG_W1(0x00011244U), 0x99999999U, \ -+ SM_CFG_W1(0x00011248U), 0x99999999U, \ -+ SM_CFG_W1(0x0001124cU), 0x99999999U, \ -+ SM_CFG_W1(0x00011250U), 0x99009999U, \ -+ SM_CFG_W1(0x00011254U), 0x99999999U, \ -+ SM_CFG_W1(0x00011258U), 0x99999999U, \ -+ SM_CFG_W1(0x0001125cU), 0x99999999U, \ -+ SM_CFG_W1(0x00011260U), 0x99999999U, \ -+ SM_CFG_W1(0x00011264U), 0x99999909U, \ -+ SM_CFG_W1(0x00011268U), 0x99999999U, \ -+ SM_CFG_W1(0x0001126cU), 0x99999999U, \ -+ SM_CFG_W1(0x00011270U), 0x99999999U, \ -+ SM_CFG_W1(0x00011274U), 0x00009999U, \ -+ SM_CFG_W1(0x00011380U), 0x99999990U, \ -+ SM_CFG_W1(0x000113a8U), 0x00000009U, \ -+ SM_CFG_Z1(0x00011450U), \ -+ SM_CFG_Z1(0x00011454U), \ -+ SM_CFG_W1(0x00011580U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00011650U), \ -+ SM_CFG_Z1(0x00011654U), \ -+ SM_CFG_W1(0x00011780U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00011850U), \ -+ SM_CFG_Z1(0x00011854U), \ -+ SM_CFG_W1(0x00011980U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00011a50U), \ -+ SM_CFG_Z1(0x00011a54U), \ -+ SM_CFG_W1(0x00011b80U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00011c50U), \ -+ SM_CFG_Z1(0x00011c54U), \ -+ SM_CFG_W1(0x00011d80U), 0x000000C0U, \ -+ SM_CFG_Z1(0x00011e50U), \ -+ SM_CFG_Z1(0x00011e54U), \ -+ SM_CFG_W1(0x00011f80U), 0x000000C0U, \ -+ SM_CFG_W1(0x00012024U), 0x6666U, \ -+ SM_CFG_W1(0x00012028U), 0x7777U, \ -+ SM_CFG_W1(0x0001202cU), 0x7700U, \ -+ SM_CFG_W1(0x00012180U), 0x99999999U, \ -+ SM_CFG_W1(0x00012184U), 0x99999999U, \ -+ SM_CFG_W1(0x00012188U), 0x99999999U, \ -+ SM_CFG_W1(0x0001218cU), 0x99999999U, \ -+ SM_CFG_Z1(0x00012240U), \ -+ SM_CFG_Z1(0x00012244U), \ -+ SM_CFG_Z1(0x00012248U), \ -+ SM_CFG_Z1(0x0001224cU), \ -+ SM_CFG_Z1(0x00012380U), \ -+ SM_CFG_Z1(0x00012384U), \ -+ SM_CFG_Z1(0x00012388U), \ -+ SM_CFG_Z1(0x0001238cU), \ -+ SM_CFG_W1(0x00012440U), 0x33333333U, \ -+ SM_CFG_W1(0x00012444U), 0x33333333U, \ -+ SM_CFG_W1(0x00012448U), 0x33333333U, \ -+ SM_CFG_W1(0x0001244cU), 0x33333333U, \ -+ SM_CFG_W1(0x00012580U), 0x33333333U, \ -+ SM_CFG_W1(0x00012584U), 0x33333333U, \ -+ SM_CFG_W1(0x00012588U), 0x33333333U, \ -+ SM_CFG_W1(0x0001258cU), 0x33333333U, \ -+ SM_CFG_Z1(0x00012640U), \ -+ SM_CFG_Z1(0x00012644U), \ -+ SM_CFG_Z1(0x00012648U), \ -+ SM_CFG_Z1(0x0001264cU), \ -+ SM_CFG_Z1(0x00012780U), \ -+ SM_CFG_Z1(0x00012784U), \ -+ SM_CFG_Z1(0x00012788U), \ -+ SM_CFG_Z1(0x0001278cU), \ -+ SM_CFG_Z1(0x00012840U), \ -+ SM_CFG_Z1(0x00012844U), \ -+ SM_CFG_Z1(0x00012848U), \ -+ SM_CFG_Z1(0x0001284cU), \ -+ SM_CFG_Z1(0x00012980U), \ -+ SM_CFG_Z1(0x00012984U), \ -+ SM_CFG_Z1(0x00012988U), \ -+ SM_CFG_Z1(0x0001298cU), \ -+ SM_CFG_Z1(0x00012a40U), \ -+ SM_CFG_Z1(0x00012a44U), \ -+ SM_CFG_Z1(0x00012a48U), \ -+ SM_CFG_Z1(0x00012a4cU), \ -+ SM_CFG_Z1(0x00012b80U), \ -+ SM_CFG_Z1(0x00012b84U), \ -+ SM_CFG_Z1(0x00012b88U), \ -+ SM_CFG_Z1(0x00012b8cU), \ -+ SM_CFG_Z1(0x00012c40U), \ -+ SM_CFG_Z1(0x00012c44U), \ -+ SM_CFG_Z1(0x00012c48U), \ -+ SM_CFG_Z1(0x00012c4cU), \ -+ SM_CFG_Z1(0x00012d80U), \ -+ SM_CFG_Z1(0x00012d84U), \ -+ SM_CFG_Z1(0x00012d88U), \ -+ SM_CFG_Z1(0x00012d8cU), \ -+ SM_CFG_Z1(0x00012e40U), \ -+ SM_CFG_Z1(0x00012e44U), \ -+ SM_CFG_Z1(0x00012e48U), \ -+ SM_CFG_Z1(0x00012e4cU), \ -+ SM_CFG_Z1(0x00012f80U), \ -+ SM_CFG_Z1(0x00012f84U), \ -+ SM_CFG_Z1(0x00012f88U), \ -+ SM_CFG_Z1(0x00012f8cU), \ -+ SM_CFG_Z1(0x00013040U), \ -+ SM_CFG_Z1(0x00013044U), \ -+ SM_CFG_Z1(0x00013048U), \ -+ SM_CFG_Z1(0x0001304cU), \ -+ SM_CFG_Z1(0x00013180U), \ -+ SM_CFG_Z1(0x00013184U), \ -+ SM_CFG_Z1(0x00013188U), \ -+ SM_CFG_Z1(0x0001318cU), \ -+ SM_CFG_W1(0x00013240U), 0x99999999U, \ -+ SM_CFG_W1(0x00013244U), 0x99999999U, \ -+ SM_CFG_W1(0x00013248U), 0x99999999U, \ -+ SM_CFG_W1(0x0001324cU), 0x99999999U, \ -+ SM_CFG_W1(0x00013380U), 0x99999999U, \ -+ SM_CFG_W1(0x00013384U), 0x99999999U, \ -+ SM_CFG_W1(0x00013388U), 0x99999999U, \ -+ SM_CFG_W1(0x0001338cU), 0x99999999U, \ -+ SM_CFG_Z1(0x00013440U), \ -+ SM_CFG_Z1(0x00013444U), \ -+ SM_CFG_Z1(0x00013448U), \ -+ SM_CFG_Z1(0x0001344cU), \ -+ SM_CFG_Z1(0x00013580U), \ -+ SM_CFG_Z1(0x00013584U), \ -+ SM_CFG_Z1(0x00013588U), \ -+ SM_CFG_Z1(0x0001358cU), \ -+ SM_CFG_Z1(0x00013640U), \ -+ SM_CFG_Z1(0x00013644U), \ -+ SM_CFG_Z1(0x00013648U), \ -+ SM_CFG_Z1(0x0001364cU), \ -+ SM_CFG_Z1(0x00013780U), \ -+ SM_CFG_Z1(0x00013784U), \ -+ SM_CFG_Z1(0x00013788U), \ -+ SM_CFG_Z1(0x0001378cU), \ -+ SM_CFG_Z1(0x00013840U), \ -+ SM_CFG_Z1(0x00013844U), \ -+ SM_CFG_Z1(0x00013848U), \ -+ SM_CFG_Z1(0x0001384cU), \ -+ SM_CFG_Z1(0x00013980U), \ -+ SM_CFG_Z1(0x00013984U), \ -+ SM_CFG_Z1(0x00013988U), \ -+ SM_CFG_Z1(0x0001398cU), \ -+ SM_CFG_W1(0x00014024U), 0x6666U, \ -+ SM_CFG_Z1(0x00014240U), \ -+ SM_CFG_W1(0x00014244U), 0x0003C001U, \ -+ SM_CFG_Z1(0x0001424cU), \ -+ SM_CFG_Z1(0x00014254U), \ -+ SM_CFG_Z1(0x0001425cU), \ -+ SM_CFG_W1(0x00014940U), 0x00000001U, \ -+ SM_CFG_W1(0x00014944U), 0x0003C011U, \ -+ SM_CFG_Z1(0x0001494cU), \ -+ SM_CFG_Z1(0x00014954U), \ -+ SM_CFG_Z1(0x0001495cU), \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_Z1(0x00012020U), \ -+ SM_CFG_W1(0x00014020U), 0x7700U, \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC C Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC C */ -+#define SM_TRDC_C_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000820U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000840U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000860U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000880U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008e0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000900U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000920U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000940U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000960U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000980U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009e0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000aa0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ac0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ae0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_W1(0x00010040U), 0x00003000U, \ -+ SM_CFG_W1(0x00010240U), 0x00000900U, \ -+ SM_CFG_W1(0x00010440U), 0x00330000U, \ -+ SM_CFG_W1(0x00010640U), 0x99000090U, \ -+ SM_CFG_W1(0x00010644U), 0x99999999U, \ -+ SM_CFG_W1(0x00010648U), 0x99999999U, \ -+ SM_CFG_W1(0x0001064cU), 0x09999999U, \ -+ SM_CFG_W1(0x00010650U), 0x99999999U, \ -+ SM_CFG_W1(0x00010654U), 0x99999999U, \ -+ SM_CFG_W1(0x00010658U), 0x00000999U, \ -+ SM_CFG_Z1(0x00010840U), \ -+ SM_CFG_Z1(0x00010a40U), \ -+ SM_CFG_Z1(0x00010c40U), \ -+ SM_CFG_Z1(0x00010e40U), \ -+ SM_CFG_W1(0x00011040U), 0x00000009U, \ -+ SM_CFG_W1(0x00011240U), 0x99999999U, \ -+ SM_CFG_W1(0x00011244U), 0x99999999U, \ -+ SM_CFG_W1(0x00011248U), 0x99999999U, \ -+ SM_CFG_W1(0x0001124cU), 0x09999999U, \ -+ SM_CFG_W1(0x00011250U), 0x99999999U, \ -+ SM_CFG_W1(0x00011254U), 0x99999999U, \ -+ SM_CFG_W1(0x00011258U), 0x00000999U, \ -+ SM_CFG_Z1(0x00011440U), \ -+ SM_CFG_Z1(0x00011640U), \ -+ SM_CFG_Z1(0x00011840U), \ -+ SM_CFG_Z1(0x00011a40U), \ -+ SM_CFG_Z1(0x00011c40U), \ -+ SM_CFG_Z1(0x00011e40U), \ -+ SM_CFG_W1(0x00012024U), 0x6666U, \ -+ SM_CFG_W1(0x00012028U), 0x7777U, \ -+ SM_CFG_W1(0x0001202cU), 0x6600U, \ -+ SM_CFG_W1(0x00012440U), 0x00000003U, \ -+ SM_CFG_W1(0x00013240U), 0x00000009U, \ -+ SM_CFG_W1(0x00014024U), 0x6666U, \ -+ SM_CFG_W1(0x00014028U), 0x7777U, \ -+ SM_CFG_W1(0x00014640U), 0x00000009U, \ -+ SM_CFG_W1(0x00015240U), 0x00000009U, \ -+ SM_CFG_W1(0x00016024U), 0x6666U, \ -+ SM_CFG_W1(0x00016340U), 0x01000000U, \ -+ SM_CFG_W1(0x00016344U), 0x01014011U, \ -+ SM_CFG_Z1(0x0001634cU), \ -+ SM_CFG_W1(0x00016940U), 0x01000001U, \ -+ SM_CFG_W1(0x00016944U), 0x01014011U, \ -+ SM_CFG_Z1(0x0001694cU), \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_Z1(0x00012020U), \ -+ SM_CFG_Z1(0x00014020U), \ -+ SM_CFG_W1(0x00016020U), 0x7777U, \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC D Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC D */ -+#define SM_TRDC_D_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000820U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000840U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000860U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000880U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008e0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_W1(0x00010040U), 0x00003000U, \ -+ SM_CFG_W1(0x00010180U), 0x00003000U, \ -+ SM_CFG_W1(0x00010240U), 0x00000900U, \ -+ SM_CFG_W1(0x00010380U), 0x00000900U, \ -+ SM_CFG_W1(0x00010440U), 0x00330000U, \ -+ SM_CFG_W1(0x0001045cU), 0x30000000U, \ -+ SM_CFG_W1(0x00010580U), 0x00330000U, \ -+ SM_CFG_W1(0x0001059cU), 0x30000000U, \ -+ SM_CFG_W1(0x00010640U), 0x90000090U, \ -+ SM_CFG_W1(0x00010644U), 0x99999999U, \ -+ SM_CFG_W1(0x00010648U), 0x00000009U, \ -+ SM_CFG_W1(0x00010658U), 0x00000009U, \ -+ SM_CFG_W1(0x00010780U), 0x90000090U, \ -+ SM_CFG_W1(0x00010784U), 0x99999999U, \ -+ SM_CFG_W1(0x00010788U), 0x00000009U, \ -+ SM_CFG_W1(0x00010798U), 0x00000009U, \ -+ SM_CFG_W1(0x000107a8U), 0x99999999U, \ -+ SM_CFG_W1(0x000107acU), 0x99999999U, \ -+ SM_CFG_W1(0x000107b0U), 0x99999999U, \ -+ SM_CFG_W1(0x000107b4U), 0x99999999U, \ -+ SM_CFG_W1(0x000107b8U), 0x99999999U, \ -+ SM_CFG_W1(0x000107bcU), 0x99999999U, \ -+ SM_CFG_W1(0x000107c0U), 0x99999999U, \ -+ SM_CFG_W1(0x000107c4U), 0x99999999U, \ -+ SM_CFG_W1(0x000107d0U), 0x99999999U, \ -+ SM_CFG_W1(0x000107d4U), 0x99999999U, \ -+ SM_CFG_W1(0x000107d8U), 0x99999999U, \ -+ SM_CFG_W1(0x000107dcU), 0x99999999U, \ -+ SM_CFG_W1(0x000107e0U), 0x99999999U, \ -+ SM_CFG_W1(0x000107e4U), 0x99999999U, \ -+ SM_CFG_W1(0x000107e8U), 0x99999999U, \ -+ SM_CFG_W1(0x000107ecU), 0x99999999U, \ -+ SM_CFG_Z1(0x00010840U), \ -+ SM_CFG_Z1(0x00010980U), \ -+ SM_CFG_Z1(0x00010a40U), \ -+ SM_CFG_Z1(0x00010b80U), \ -+ SM_CFG_Z1(0x00010c40U), \ -+ SM_CFG_Z1(0x00010d80U), \ -+ SM_CFG_Z1(0x00010e40U), \ -+ SM_CFG_Z1(0x00010f80U), \ -+ SM_CFG_W1(0x00011040U), 0x00000009U, \ -+ SM_CFG_W1(0x00011180U), 0x00000009U, \ -+ SM_CFG_W1(0x00011240U), 0x90999999U, \ -+ SM_CFG_W1(0x00011244U), 0x99999999U, \ -+ SM_CFG_W1(0x00011248U), 0x00000009U, \ -+ SM_CFG_W1(0x00011258U), 0x00000009U, \ -+ SM_CFG_W1(0x0001125cU), 0x90000000U, \ -+ SM_CFG_W1(0x00011380U), 0x90999999U, \ -+ SM_CFG_W1(0x00011384U), 0x99999999U, \ -+ SM_CFG_W1(0x00011388U), 0x00000009U, \ -+ SM_CFG_W1(0x00011398U), 0x00000009U, \ -+ SM_CFG_W1(0x0001139cU), 0x90000000U, \ -+ SM_CFG_W1(0x000113a8U), 0x99999999U, \ -+ SM_CFG_W1(0x000113acU), 0x99999999U, \ -+ SM_CFG_W1(0x000113b0U), 0x99999999U, \ -+ SM_CFG_W1(0x000113b4U), 0x99999999U, \ -+ SM_CFG_W1(0x000113b8U), 0x99999999U, \ -+ SM_CFG_W1(0x000113bcU), 0x99999999U, \ -+ SM_CFG_W1(0x000113c0U), 0x99999999U, \ -+ SM_CFG_W1(0x000113c4U), 0x99999999U, \ -+ SM_CFG_W1(0x000113d0U), 0x99999999U, \ -+ SM_CFG_W1(0x000113d4U), 0x99999999U, \ -+ SM_CFG_W1(0x000113d8U), 0x99999999U, \ -+ SM_CFG_W1(0x000113dcU), 0x99999999U, \ -+ SM_CFG_W1(0x000113e0U), 0x99999999U, \ -+ SM_CFG_W1(0x000113e4U), 0x99999999U, \ -+ SM_CFG_W1(0x000113e8U), 0x99999999U, \ -+ SM_CFG_W1(0x000113ecU), 0x99999999U, \ -+ SM_CFG_Z1(0x00011440U), \ -+ SM_CFG_Z1(0x00011580U), \ -+ SM_CFG_Z1(0x00011640U), \ -+ SM_CFG_Z1(0x00011780U), \ -+ SM_CFG_Z1(0x00011840U), \ -+ SM_CFG_Z1(0x00011980U), \ -+ SM_CFG_Z1(0x00011a40U), \ -+ SM_CFG_Z1(0x00011b80U), \ -+ SM_CFG_Z1(0x00011c40U), \ -+ SM_CFG_Z1(0x00011d80U), \ -+ SM_CFG_Z1(0x00011e40U), \ -+ SM_CFG_Z1(0x00011f80U), \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC E Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC E */ -+#define SM_TRDC_E_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0xA8000053U, \ -+ SM_CFG_W1(0x00000820U), 0xA8400053U, \ -+ SM_CFG_W1(0x00000840U), 0xA8800053U, \ -+ SM_CFG_W1(0x00000860U), 0xA8C00053U, \ -+ SM_CFG_W1(0x00000880U), 0xA9000053U, \ -+ SM_CFG_W1(0x000008a0U), 0xA9400053U, \ -+ SM_CFG_W1(0x000008c0U), 0xA9800053U, \ -+ SM_CFG_W1(0x000008e0U), 0xA9C00053U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_W1(0x000101a8U), 0x00003000U, \ -+ SM_CFG_W1(0x000103a8U), 0x00000900U, \ -+ SM_CFG_W1(0x000105a8U), 0x00330000U, \ -+ SM_CFG_W1(0x00010640U), 0x99999999U, \ -+ SM_CFG_W1(0x00010644U), 0x99999999U, \ -+ SM_CFG_W1(0x00010648U), 0x99999999U, \ -+ SM_CFG_W1(0x0001064cU), 0x99999999U, \ -+ SM_CFG_W1(0x00010780U), 0x99999999U, \ -+ SM_CFG_W1(0x000107a8U), 0x00000090U, \ -+ SM_CFG_W1(0x000107acU), 0x00009909U, \ -+ SM_CFG_Z1(0x000109a8U), \ -+ SM_CFG_Z1(0x00010ba8U), \ -+ SM_CFG_Z1(0x00010da8U), \ -+ SM_CFG_Z1(0x00010fa8U), \ -+ SM_CFG_W1(0x000111a8U), 0x00000009U, \ -+ SM_CFG_W1(0x00011240U), 0x99999999U, \ -+ SM_CFG_W1(0x00011244U), 0x99999999U, \ -+ SM_CFG_W1(0x00011248U), 0x99999999U, \ -+ SM_CFG_W1(0x0001124cU), 0x99999999U, \ -+ SM_CFG_W1(0x00011380U), 0x99999999U, \ -+ SM_CFG_W1(0x000113a8U), 0x00999999U, \ -+ SM_CFG_W1(0x000113acU), 0x00009909U, \ -+ SM_CFG_Z1(0x000115a8U), \ -+ SM_CFG_Z1(0x000117a8U), \ -+ SM_CFG_Z1(0x000119a8U), \ -+ SM_CFG_Z1(0x00011ba8U), \ -+ SM_CFG_Z1(0x00011da8U), \ -+ SM_CFG_Z1(0x00011fa8U), \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC G Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC G */ -+#define SM_TRDC_G_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000820U), 0xB0000053U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_W1(0x00010040U), 0x00003000U, \ -+ SM_CFG_W1(0x00010240U), 0x00000900U, \ -+ SM_CFG_W1(0x00010440U), 0x00330030U, \ -+ SM_CFG_Z1(0x00010640U), \ -+ SM_CFG_Z1(0x00010840U), \ -+ SM_CFG_Z1(0x00010a40U), \ -+ SM_CFG_Z1(0x00010c40U), \ -+ SM_CFG_Z1(0x00010e40U), \ -+ SM_CFG_W1(0x00011040U), 0x00000009U, \ -+ SM_CFG_W1(0x00011240U), 0x00999999U, \ -+ SM_CFG_Z1(0x00011440U), \ -+ SM_CFG_Z1(0x00011640U), \ -+ SM_CFG_Z1(0x00011840U), \ -+ SM_CFG_Z1(0x00011a40U), \ -+ SM_CFG_Z1(0x00011c40U), \ -+ SM_CFG_Z1(0x00011e40U), \ -+ SM_CFG_W1(0x00012340U), 0x4D900000U, \ -+ SM_CFG_W1(0x00012344U), 0x4DD7C011U, \ -+ SM_CFG_Z1(0x0001234cU), \ -+ SM_CFG_Z1(0x00012354U), \ -+ SM_CFG_Z1(0x0001235cU), \ -+ SM_CFG_W1(0x00012940U), 0x4D900000U, \ -+ SM_CFG_W1(0x00012944U), 0x4DD7C011U, \ -+ SM_CFG_Z1(0x0001294cU), \ -+ SM_CFG_Z1(0x00012954U), \ -+ SM_CFG_Z1(0x0001295cU), \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_W1(0x00012020U), 0x6666U, \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC H Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC H */ -+#define SM_TRDC_H_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0xA3800053U, \ -+ SM_CFG_W1(0x00000820U), 0xA3C00053U, \ -+ SM_CFG_W1(0x00000840U), 0xA4000053U, \ -+ SM_CFG_W1(0x00000860U), 0xA4400053U, \ -+ SM_CFG_W1(0x00000880U), 0xA4800053U, \ -+ SM_CFG_W1(0x000008a0U), 0xA4C00053U, \ -+ SM_CFG_W1(0x000008c0U), 0xA5000053U, \ -+ SM_CFG_W1(0x000008e0U), 0xA5400053U, \ -+ SM_CFG_W1(0x00000900U), 0xA5800053U, \ -+ SM_CFG_W1(0x00000920U), 0xA5C00053U, \ -+ SM_CFG_W1(0x00000940U), 0xA6000053U, \ -+ SM_CFG_W1(0x00000960U), 0xA6400053U, \ -+ SM_CFG_W1(0x00000980U), 0xA6800053U, \ -+ SM_CFG_W1(0x000009a0U), 0xA6C00053U, \ -+ SM_CFG_W1(0x000009c0U), 0xA7000053U, \ -+ SM_CFG_W1(0x000009e0U), 0xA7400053U, \ -+ SM_CFG_W1(0x00000a00U), 0xA7800053U, \ -+ SM_CFG_W1(0x00000a20U), 0xA7C00053U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_W1(0x000101a8U), 0x00003000U, \ -+ SM_CFG_W1(0x000103a8U), 0x00000900U, \ -+ SM_CFG_W1(0x000105a8U), 0x03330000U, \ -+ SM_CFG_W1(0x00010640U), 0x99999999U, \ -+ SM_CFG_W1(0x00010644U), 0x99999999U, \ -+ SM_CFG_W1(0x00010780U), 0x99999999U, \ -+ SM_CFG_W1(0x00010784U), 0x99999999U, \ -+ SM_CFG_W1(0x000107a8U), 0x00000090U, \ -+ SM_CFG_W1(0x000107d0U), 0x99999999U, \ -+ SM_CFG_W1(0x000107d4U), 0x99999999U, \ -+ SM_CFG_W1(0x000107d8U), 0x99999999U, \ -+ SM_CFG_Z1(0x000109a8U), \ -+ SM_CFG_Z1(0x00010ba8U), \ -+ SM_CFG_Z1(0x00010da8U), \ -+ SM_CFG_Z1(0x00010fa8U), \ -+ SM_CFG_W1(0x000111a8U), 0x00000009U, \ -+ SM_CFG_W1(0x00011240U), 0x99999999U, \ -+ SM_CFG_W1(0x00011244U), 0x99999999U, \ -+ SM_CFG_W1(0x00011380U), 0x99999999U, \ -+ SM_CFG_W1(0x00011384U), 0x99999999U, \ -+ SM_CFG_W1(0x000113a8U), 0x09999999U, \ -+ SM_CFG_W1(0x000113d0U), 0x99999999U, \ -+ SM_CFG_W1(0x000113d4U), 0x99999999U, \ -+ SM_CFG_W1(0x000113d8U), 0x99999999U, \ -+ SM_CFG_Z1(0x000115a8U), \ -+ SM_CFG_Z1(0x000117a8U), \ -+ SM_CFG_Z1(0x000119a8U), \ -+ SM_CFG_Z1(0x00011ba8U), \ -+ SM_CFG_Z1(0x00011da8U), \ -+ SM_CFG_Z1(0x00011fa8U), \ -+ SM_CFG_W1(0x00012024U), 0x6666U, \ -+ SM_CFG_W1(0x00012028U), 0x7777U, \ -+ SM_CFG_W1(0x00012640U), 0x00099999U, \ -+ SM_CFG_W1(0x00012780U), 0x00099999U, \ -+ SM_CFG_W1(0x000127a8U), 0x00099999U, \ -+ SM_CFG_W1(0x000127d0U), 0x00099999U, \ -+ SM_CFG_W1(0x00013240U), 0x00099999U, \ -+ SM_CFG_W1(0x00013380U), 0x00099999U, \ -+ SM_CFG_W1(0x000133a8U), 0x00099999U, \ -+ SM_CFG_W1(0x000133d0U), 0x00099999U, \ -+ SM_CFG_W1(0x00014024U), 0x6666U, \ -+ SM_CFG_W1(0x00014028U), 0x7777U, \ -+ SM_CFG_W1(0x00014640U), 0x99999999U, \ -+ SM_CFG_W1(0x00014644U), 0x99999999U, \ -+ SM_CFG_W1(0x00014648U), 0x99999999U, \ -+ SM_CFG_W1(0x00015240U), 0x99999999U, \ -+ SM_CFG_W1(0x00015244U), 0x99999999U, \ -+ SM_CFG_W1(0x00015248U), 0x99999999U, \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_Z1(0x00012020U), \ -+ SM_CFG_Z1(0x00014020U), \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC M Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC M */ -+#define SM_TRDC_M_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0xA0400053U, \ -+ SM_CFG_W1(0x00000820U), 0xA0800053U, \ -+ SM_CFG_W1(0x00000840U), 0xB00000A8U, \ -+ SM_CFG_W1(0x00000860U), 0xA0C00053U, \ -+ SM_CFG_W1(0x00000880U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008a0U), 0xB00000A9U, \ -+ SM_CFG_W1(0x000008c0U), 0xB00000A9U, \ -+ SM_CFG_W1(0x000008e0U), 0xB00000ACU, \ -+ SM_CFG_W1(0x00000900U), 0x90000004U, \ -+ SM_CFG_W1(0x00000920U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000940U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000960U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000980U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009e0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000aa0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ac0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ae0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ba0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000bc0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000be0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ca0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000cc0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ce0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000d00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000d20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000d40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000d60U), 0xB00000ACU, \ -+ SM_CFG_W1(0x00000d80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000da0U), 0xB0000014U, \ -+ SM_CFG_W1(0x00000dc0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000de0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000e00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000e20U), 0xB0000053U, \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC N Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC N */ -+#define SM_TRDC_N_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0x90008003U, \ -+ SM_CFG_W1(0x00000804U), 0x90008003U, \ -+ SM_CFG_W1(0x00000808U), 0x90008003U, \ -+ SM_CFG_W1(0x0000080cU), 0x90008003U, \ -+ SM_CFG_W1(0x00000820U), 0x90008003U, \ -+ SM_CFG_W1(0x00000824U), 0x90008003U, \ -+ SM_CFG_W1(0x00000828U), 0x90008003U, \ -+ SM_CFG_W1(0x0000082cU), 0x90008003U, \ -+ SM_CFG_W1(0x00000840U), 0x90008003U, \ -+ SM_CFG_W1(0x00000844U), 0x90008003U, \ -+ SM_CFG_W1(0x00000848U), 0x90008003U, \ -+ SM_CFG_W1(0x0000084cU), 0x90008003U, \ -+ SM_CFG_W1(0x00000860U), 0x90008003U, \ -+ SM_CFG_W1(0x00000864U), 0x90008003U, \ -+ SM_CFG_W1(0x00000868U), 0x90008003U, \ -+ SM_CFG_W1(0x0000086cU), 0x90008003U, \ -+ SM_CFG_W1(0x00000880U), 0xA3400053U, \ -+ SM_CFG_W1(0x000008a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_W1(0x00010040U), 0x00300000U, \ -+ SM_CFG_W1(0x00010180U), 0x00300000U, \ -+ SM_CFG_W1(0x000101a8U), 0x00003000U, \ -+ SM_CFG_W1(0x000101d0U), 0x00003000U, \ -+ SM_CFG_W1(0x00010240U), 0x00009000U, \ -+ SM_CFG_W1(0x00010380U), 0x00009000U, \ -+ SM_CFG_W1(0x000103a8U), 0x00000900U, \ -+ SM_CFG_W1(0x000103d0U), 0x00000900U, \ -+ SM_CFG_W1(0x00010440U), 0x33000333U, \ -+ SM_CFG_W1(0x00010444U), 0x00033303U, \ -+ SM_CFG_W1(0x00010450U), 0x30000000U, \ -+ SM_CFG_W1(0x00010580U), 0x33000333U, \ -+ SM_CFG_W1(0x00010584U), 0x00033303U, \ -+ SM_CFG_W1(0x00010590U), 0x30000000U, \ -+ SM_CFG_W1(0x000105a8U), 0x00030000U, \ -+ SM_CFG_W1(0x000105d0U), 0x00030000U, \ -+ SM_CFG_Z1(0x00010640U), \ -+ SM_CFG_W1(0x00010644U), 0x99900000U, \ -+ SM_CFG_W1(0x00010648U), 0x99999990U, \ -+ SM_CFG_W1(0x0001064cU), 0x99999999U, \ -+ SM_CFG_W1(0x00010650U), 0x09999999U, \ -+ SM_CFG_Z1(0x00010780U), \ -+ SM_CFG_W1(0x00010784U), 0x99900000U, \ -+ SM_CFG_W1(0x00010788U), 0x99999990U, \ -+ SM_CFG_W1(0x0001078cU), 0x99999999U, \ -+ SM_CFG_W1(0x00010790U), 0x09999999U, \ -+ SM_CFG_Z1(0x00010840U), \ -+ SM_CFG_Z1(0x00010980U), \ -+ SM_CFG_Z1(0x00010a40U), \ -+ SM_CFG_Z1(0x00010b80U), \ -+ SM_CFG_Z1(0x00010c40U), \ -+ SM_CFG_Z1(0x00010d80U), \ -+ SM_CFG_Z1(0x00010e40U), \ -+ SM_CFG_Z1(0x00010f80U), \ -+ SM_CFG_W1(0x00011040U), 0x00090000U, \ -+ SM_CFG_W1(0x00011180U), 0x00090000U, \ -+ SM_CFG_W1(0x000111a8U), 0x00000009U, \ -+ SM_CFG_W1(0x000111d0U), 0x00000009U, \ -+ SM_CFG_W1(0x00011240U), 0x99999999U, \ -+ SM_CFG_W1(0x00011244U), 0x99999909U, \ -+ SM_CFG_W1(0x00011248U), 0x99999990U, \ -+ SM_CFG_W1(0x0001124cU), 0x99999999U, \ -+ SM_CFG_W1(0x00011250U), 0x99999999U, \ -+ SM_CFG_W1(0x00011380U), 0x99999999U, \ -+ SM_CFG_W1(0x00011384U), 0x99999909U, \ -+ SM_CFG_W1(0x00011388U), 0x99999990U, \ -+ SM_CFG_W1(0x0001138cU), 0x99999999U, \ -+ SM_CFG_W1(0x00011390U), 0x99999999U, \ -+ SM_CFG_W1(0x000113a8U), 0x00099909U, \ -+ SM_CFG_W1(0x000113d0U), 0x00099909U, \ -+ SM_CFG_Z1(0x00011440U), \ -+ SM_CFG_Z1(0x00011580U), \ -+ SM_CFG_Z1(0x00011640U), \ -+ SM_CFG_Z1(0x00011780U), \ -+ SM_CFG_Z1(0x00011840U), \ -+ SM_CFG_Z1(0x00011980U), \ -+ SM_CFG_Z1(0x00011a40U), \ -+ SM_CFG_Z1(0x00011b80U), \ -+ SM_CFG_Z1(0x00011c40U), \ -+ SM_CFG_Z1(0x00011d80U), \ -+ SM_CFG_Z1(0x00011e40U), \ -+ SM_CFG_Z1(0x00011f80U), \ -+ SM_CFG_W1(0x00012024U), 0x6666U, \ -+ SM_CFG_W1(0x00012028U), 0x7777U, \ -+ SM_CFG_W1(0x0001202cU), 0x6600U, \ -+ SM_CFG_W1(0x00012440U), 0x33333333U, \ -+ SM_CFG_W1(0x00012444U), 0x33333333U, \ -+ SM_CFG_W1(0x00012448U), 0x00000333U, \ -+ SM_CFG_W1(0x00012580U), 0x33333333U, \ -+ SM_CFG_W1(0x00012584U), 0x33333333U, \ -+ SM_CFG_W1(0x00012588U), 0x00000333U, \ -+ SM_CFG_W1(0x00012640U), 0x99999999U, \ -+ SM_CFG_W1(0x00012644U), 0x99999999U, \ -+ SM_CFG_W1(0x00012648U), 0x00000999U, \ -+ SM_CFG_W1(0x00012780U), 0x99999999U, \ -+ SM_CFG_W1(0x00012784U), 0x99999999U, \ -+ SM_CFG_W1(0x00012788U), 0x00000999U, \ -+ SM_CFG_W1(0x00013240U), 0x99999999U, \ -+ SM_CFG_W1(0x00013244U), 0x99999999U, \ -+ SM_CFG_W1(0x00013248U), 0x00000999U, \ -+ SM_CFG_W1(0x00013380U), 0x99999999U, \ -+ SM_CFG_W1(0x00013384U), 0x99999999U, \ -+ SM_CFG_W1(0x00013388U), 0x00000999U, \ -+ SM_CFG_W1(0x00014024U), 0x6666U, \ -+ SM_CFG_W1(0x00014028U), 0x7777U, \ -+ SM_CFG_W1(0x0001402cU), 0x7700U, \ -+ SM_CFG_W1(0x00014040U), 0x99999999U, \ -+ SM_CFG_W1(0x00014044U), 0x99999999U, \ -+ SM_CFG_W1(0x00014048U), 0x00999999U, \ -+ SM_CFG_W1(0x00014180U), 0x99999999U, \ -+ SM_CFG_W1(0x00014184U), 0x99999999U, \ -+ SM_CFG_W1(0x00014188U), 0x00999999U, \ -+ SM_CFG_Z1(0x00014440U), \ -+ SM_CFG_Z1(0x00014444U), \ -+ SM_CFG_Z1(0x00014448U), \ -+ SM_CFG_Z1(0x00014580U), \ -+ SM_CFG_Z1(0x00014584U), \ -+ SM_CFG_Z1(0x00014588U), \ -+ SM_CFG_W1(0x00014640U), 0x33333333U, \ -+ SM_CFG_W1(0x00014644U), 0x33333333U, \ -+ SM_CFG_W1(0x00014648U), 0x00AAAAAAU, \ -+ SM_CFG_W1(0x00014780U), 0x33333333U, \ -+ SM_CFG_W1(0x00014784U), 0x33333333U, \ -+ SM_CFG_W1(0x00014788U), 0x00AAAAAAU, \ -+ SM_CFG_W1(0x000147a8U), 0x99999999U, \ -+ SM_CFG_W1(0x000147acU), 0x00000009U, \ -+ SM_CFG_W1(0x000147d0U), 0x99999999U, \ -+ SM_CFG_W1(0x000147d4U), 0x00000009U, \ -+ SM_CFG_Z1(0x00014840U), \ -+ SM_CFG_Z1(0x00014844U), \ -+ SM_CFG_Z1(0x00014848U), \ -+ SM_CFG_Z1(0x00014980U), \ -+ SM_CFG_Z1(0x00014984U), \ -+ SM_CFG_Z1(0x00014988U), \ -+ SM_CFG_Z1(0x00014a40U), \ -+ SM_CFG_Z1(0x00014a44U), \ -+ SM_CFG_Z1(0x00014a48U), \ -+ SM_CFG_Z1(0x00014b80U), \ -+ SM_CFG_Z1(0x00014b84U), \ -+ SM_CFG_Z1(0x00014b88U), \ -+ SM_CFG_Z1(0x00014c40U), \ -+ SM_CFG_Z1(0x00014c44U), \ -+ SM_CFG_Z1(0x00014c48U), \ -+ SM_CFG_Z1(0x00014d80U), \ -+ SM_CFG_Z1(0x00014d84U), \ -+ SM_CFG_Z1(0x00014d88U), \ -+ SM_CFG_Z1(0x00014e40U), \ -+ SM_CFG_Z1(0x00014e44U), \ -+ SM_CFG_Z1(0x00014e48U), \ -+ SM_CFG_Z1(0x00014f80U), \ -+ SM_CFG_Z1(0x00014f84U), \ -+ SM_CFG_Z1(0x00014f88U), \ -+ SM_CFG_W1(0x00015240U), 0x99999999U, \ -+ SM_CFG_W1(0x00015244U), 0x99999999U, \ -+ SM_CFG_W1(0x00015248U), 0x00999999U, \ -+ SM_CFG_W1(0x00015380U), 0x99999999U, \ -+ SM_CFG_W1(0x00015384U), 0x99999999U, \ -+ SM_CFG_W1(0x00015388U), 0x00999999U, \ -+ SM_CFG_W1(0x000153a8U), 0x99999999U, \ -+ SM_CFG_W1(0x000153acU), 0x00000009U, \ -+ SM_CFG_W1(0x000153d0U), 0x99999999U, \ -+ SM_CFG_W1(0x000153d4U), 0x00000009U, \ -+ SM_CFG_Z1(0x00015440U), \ -+ SM_CFG_Z1(0x00015444U), \ -+ SM_CFG_Z1(0x00015448U), \ -+ SM_CFG_Z1(0x00015580U), \ -+ SM_CFG_Z1(0x00015584U), \ -+ SM_CFG_Z1(0x00015588U), \ -+ SM_CFG_Z1(0x00015640U), \ -+ SM_CFG_Z1(0x00015644U), \ -+ SM_CFG_Z1(0x00015648U), \ -+ SM_CFG_Z1(0x00015780U), \ -+ SM_CFG_Z1(0x00015784U), \ -+ SM_CFG_Z1(0x00015788U), \ -+ SM_CFG_W1(0x00016024U), 0x6666U, \ -+ SM_CFG_W1(0x00016028U), 0x7777U, \ -+ SM_CFG_W1(0x0001602cU), 0x6600U, \ -+ SM_CFG_W1(0x000161a8U), 0x00003000U, \ -+ SM_CFG_W1(0x000161d0U), 0x00003000U, \ -+ SM_CFG_W1(0x00016240U), 0x00000900U, \ -+ SM_CFG_W1(0x00016380U), 0x00000900U, \ -+ SM_CFG_W1(0x000163a8U), 0x00000900U, \ -+ SM_CFG_W1(0x000163d0U), 0x00000900U, \ -+ SM_CFG_W1(0x00016440U), 0x33300030U, \ -+ SM_CFG_W1(0x00016444U), 0x00000033U, \ -+ SM_CFG_W1(0x00016580U), 0x33300030U, \ -+ SM_CFG_W1(0x00016584U), 0x00000033U, \ -+ SM_CFG_W1(0x000165a8U), 0x33300000U, \ -+ SM_CFG_W1(0x000165d0U), 0x33300000U, \ -+ SM_CFG_W1(0x00016644U), 0x00000090U, \ -+ SM_CFG_W1(0x00016784U), 0x00000090U, \ -+ SM_CFG_W1(0x000167a8U), 0x00000090U, \ -+ SM_CFG_W1(0x000167d0U), 0x00000090U, \ -+ SM_CFG_W1(0x00017040U), 0x00000009U, \ -+ SM_CFG_W1(0x00017180U), 0x00000009U, \ -+ SM_CFG_W1(0x000171a8U), 0x00000009U, \ -+ SM_CFG_W1(0x000171d0U), 0x00000009U, \ -+ SM_CFG_W1(0x00017240U), 0x99900999U, \ -+ SM_CFG_W1(0x00017244U), 0x00000099U, \ -+ SM_CFG_W1(0x00017380U), 0x99900999U, \ -+ SM_CFG_W1(0x00017384U), 0x00000099U, \ -+ SM_CFG_W1(0x000173a8U), 0x99909999U, \ -+ SM_CFG_W1(0x000173d0U), 0x99909999U, \ -+ SM_CFG_W1(0x00018024U), 0x6666U, \ -+ SM_CFG_W1(0x00018028U), 0x7777U, \ -+ SM_CFG_W1(0x0001802cU), 0x6600U, \ -+ SM_CFG_W1(0x00018440U), 0x33333333U, \ -+ SM_CFG_W1(0x00018580U), 0x33333333U, \ -+ SM_CFG_W1(0x00019240U), 0x99999999U, \ -+ SM_CFG_W1(0x00019380U), 0x99999999U, \ -+ SM_CFG_W1(0x0001a024U), 0x7777U, \ -+ SM_CFG_W1(0x0001a028U), 0x7700U, \ -+ SM_CFG_W1(0x0001a040U), 0x08000000U, \ -+ SM_CFG_W1(0x0001a044U), 0x87FFFC11U, \ -+ SM_CFG_Z1(0x0001a04cU), \ -+ SM_CFG_Z1(0x0001a054U), \ -+ SM_CFG_Z1(0x0001a05cU), \ -+ SM_CFG_Z1(0x0001a244U), \ -+ SM_CFG_Z1(0x0001a24cU), \ -+ SM_CFG_Z1(0x0001a254U), \ -+ SM_CFG_Z1(0x0001a25cU), \ -+ SM_CFG_W1(0x0001a340U), 0x08800001U, \ -+ SM_CFG_W1(0x0001a344U), 0x089FFC11U, \ -+ SM_CFG_W1(0x0001a348U), 0x08A00002U, \ -+ SM_CFG_W1(0x0001a34cU), 0x08DFFC01U, \ -+ SM_CFG_W1(0x0001a350U), 0x08E00001U, \ -+ SM_CFG_W1(0x0001a354U), 0x87FFFC11U, \ -+ SM_CFG_Z1(0x0001a35cU), \ -+ SM_CFG_W1(0x0001a440U), 0x08000001U, \ -+ SM_CFG_W1(0x0001a444U), 0x089FFC11U, \ -+ SM_CFG_Z1(0x0001a44cU), \ -+ SM_CFG_Z1(0x0001a454U), \ -+ SM_CFG_Z1(0x0001a45cU), \ -+ SM_CFG_Z1(0x0001a544U), \ -+ SM_CFG_Z1(0x0001a54cU), \ -+ SM_CFG_Z1(0x0001a554U), \ -+ SM_CFG_Z1(0x0001a55cU), \ -+ SM_CFG_Z1(0x0001a644U), \ -+ SM_CFG_Z1(0x0001a64cU), \ -+ SM_CFG_Z1(0x0001a654U), \ -+ SM_CFG_Z1(0x0001a65cU), \ -+ SM_CFG_Z1(0x0001a744U), \ -+ SM_CFG_Z1(0x0001a74cU), \ -+ SM_CFG_Z1(0x0001a754U), \ -+ SM_CFG_Z1(0x0001a75cU), \ -+ SM_CFG_Z1(0x0001a844U), \ -+ SM_CFG_Z1(0x0001a84cU), \ -+ SM_CFG_Z1(0x0001a854U), \ -+ SM_CFG_Z1(0x0001a85cU), \ -+ SM_CFG_W1(0x0001a940U), 0x08000000U, \ -+ SM_CFG_W1(0x0001a944U), 0x089FFC11U, \ -+ SM_CFG_W1(0x0001a948U), 0x08800000U, \ -+ SM_CFG_W1(0x0001a94cU), 0x089FFC11U, \ -+ SM_CFG_W1(0x0001a950U), 0x08A00000U, \ -+ SM_CFG_W1(0x0001a954U), 0x08DFFC11U, \ -+ SM_CFG_W1(0x0001a958U), 0x08E00000U, \ -+ SM_CFG_W1(0x0001a95cU), 0x87FFFC11U, \ -+ SM_CFG_Z1(0x0001aa44U), \ -+ SM_CFG_Z1(0x0001aa4cU), \ -+ SM_CFG_Z1(0x0001aa54U), \ -+ SM_CFG_Z1(0x0001aa5cU), \ -+ SM_CFG_Z1(0x0001ab44U), \ -+ SM_CFG_Z1(0x0001ab4cU), \ -+ SM_CFG_Z1(0x0001ab54U), \ -+ SM_CFG_Z1(0x0001ab5cU), \ -+ SM_CFG_W1(0x0001ac40U), 0x08B00000U, \ -+ SM_CFG_W1(0x0001ac44U), 0x08BFFC11U, \ -+ SM_CFG_Z1(0x0001ac4cU), \ -+ SM_CFG_Z1(0x0001ac54U), \ -+ SM_CFG_Z1(0x0001ac5cU), \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_Z1(0x00012020U), \ -+ SM_CFG_Z1(0x00014020U), \ -+ SM_CFG_Z1(0x00016020U), \ -+ SM_CFG_Z1(0x00018020U), \ -+ SM_CFG_W1(0x0001a020U), 0x6666U, \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC V Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC V */ -+#define SM_TRDC_V_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000820U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000840U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000860U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000880U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008e0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000900U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000920U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000940U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000960U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000980U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009e0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_W1(0x00010040U), 0x00003000U, \ -+ SM_CFG_W1(0x00010180U), 0x00003000U, \ -+ SM_CFG_W1(0x00010240U), 0x00000900U, \ -+ SM_CFG_W1(0x00010380U), 0x00000900U, \ -+ SM_CFG_W1(0x00010440U), 0x00330000U, \ -+ SM_CFG_W1(0x00010450U), 0x00000003U, \ -+ SM_CFG_W1(0x00010580U), 0x00330000U, \ -+ SM_CFG_W1(0x00010590U), 0x00000003U, \ -+ SM_CFG_W1(0x00010640U), 0x00000090U, \ -+ SM_CFG_W1(0x00010644U), 0x00099999U, \ -+ SM_CFG_W1(0x00010648U), 0x99999999U, \ -+ SM_CFG_W1(0x0001064cU), 0x00000099U, \ -+ SM_CFG_W1(0x00010780U), 0x00000090U, \ -+ SM_CFG_W1(0x00010784U), 0x00099999U, \ -+ SM_CFG_W1(0x00010788U), 0x99999999U, \ -+ SM_CFG_W1(0x0001078cU), 0x00000099U, \ -+ SM_CFG_Z1(0x00010840U), \ -+ SM_CFG_Z1(0x00010980U), \ -+ SM_CFG_Z1(0x00010a40U), \ -+ SM_CFG_Z1(0x00010b80U), \ -+ SM_CFG_Z1(0x00010c40U), \ -+ SM_CFG_Z1(0x00010d80U), \ -+ SM_CFG_Z1(0x00010e40U), \ -+ SM_CFG_Z1(0x00010f80U), \ -+ SM_CFG_W1(0x00011040U), 0x00000009U, \ -+ SM_CFG_W1(0x00011180U), 0x00000009U, \ -+ SM_CFG_W1(0x00011240U), 0x00999999U, \ -+ SM_CFG_W1(0x00011244U), 0x00099999U, \ -+ SM_CFG_W1(0x00011248U), 0x99999999U, \ -+ SM_CFG_W1(0x0001124cU), 0x00000099U, \ -+ SM_CFG_W1(0x00011250U), 0x00000009U, \ -+ SM_CFG_W1(0x00011380U), 0x00999999U, \ -+ SM_CFG_W1(0x00011384U), 0x00099999U, \ -+ SM_CFG_W1(0x00011388U), 0x99999999U, \ -+ SM_CFG_W1(0x0001138cU), 0x00000099U, \ -+ SM_CFG_W1(0x00011390U), 0x00000009U, \ -+ SM_CFG_Z1(0x00011440U), \ -+ SM_CFG_Z1(0x00011580U), \ -+ SM_CFG_Z1(0x00011640U), \ -+ SM_CFG_Z1(0x00011780U), \ -+ SM_CFG_Z1(0x00011840U), \ -+ SM_CFG_Z1(0x00011980U), \ -+ SM_CFG_Z1(0x00011a40U), \ -+ SM_CFG_Z1(0x00011b80U), \ -+ SM_CFG_Z1(0x00011c40U), \ -+ SM_CFG_Z1(0x00011d80U), \ -+ SM_CFG_Z1(0x00011e40U), \ -+ SM_CFG_Z1(0x00011f80U), \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* TRDC W Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Config for TRDC W */ -+#define SM_TRDC_W_CONFIG \ -+ { \ -+ SM_CFG_W1(0x00000800U), 0x90000004U, \ -+ SM_CFG_W1(0x00000820U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000840U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000860U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000880U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000008e0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000900U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000920U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000940U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000960U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000980U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009a0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009c0U), 0xB0000053U, \ -+ SM_CFG_W1(0x000009e0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000a80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000aa0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ac0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ae0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b60U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000b80U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000ba0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000bc0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000be0U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c00U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c20U), 0xB0000053U, \ -+ SM_CFG_W1(0x00000c40U), 0xB0000053U, \ -+ SM_CFG_W1(0x00010024U), 0x6666U, \ -+ SM_CFG_W1(0x00010028U), 0x7777U, \ -+ SM_CFG_W1(0x0001002cU), 0x6600U, \ -+ SM_CFG_Z1(0x00010060U), \ -+ SM_CFG_W1(0x00010070U), 0x00003000U, \ -+ SM_CFG_Z1(0x00010260U), \ -+ SM_CFG_W1(0x00010270U), 0x00000090U, \ -+ SM_CFG_W1(0x00010460U), 0x33000300U, \ -+ SM_CFG_W1(0x00010474U), 0x00000030U, \ -+ SM_CFG_W1(0x00010478U), 0x33300000U, \ -+ SM_CFG_W1(0x0001047cU), 0x00003333U, \ -+ SM_CFG_W1(0x000105d0U), 0x33333333U, \ -+ SM_CFG_W1(0x000105d4U), 0x33333333U, \ -+ SM_CFG_W1(0x000105d8U), 0x00000003U, \ -+ SM_CFG_W1(0x00010640U), 0x99999999U, \ -+ SM_CFG_W1(0x00010644U), 0x99999999U, \ -+ SM_CFG_W1(0x00010648U), 0x99999999U, \ -+ SM_CFG_W1(0x0001064cU), 0x99999999U, \ -+ SM_CFG_W1(0x00010650U), 0x99999999U, \ -+ SM_CFG_W1(0x00010654U), 0x99999999U, \ -+ SM_CFG_W1(0x00010658U), 0x99999999U, \ -+ SM_CFG_W1(0x0001065cU), 0x99999999U, \ -+ SM_CFG_W1(0x00010660U), 0x00909099U, \ -+ SM_CFG_W1(0x00010664U), 0x99090990U, \ -+ SM_CFG_W1(0x00010668U), 0x09999999U, \ -+ SM_CFG_W1(0x0001066cU), 0x09999999U, \ -+ SM_CFG_W1(0x00010670U), 0x99900009U, \ -+ SM_CFG_W1(0x00010674U), 0x99999909U, \ -+ SM_CFG_W1(0x00010678U), 0x00009999U, \ -+ SM_CFG_W1(0x0001067cU), 0x00990000U, \ -+ SM_CFG_W1(0x00010780U), 0x00000009U, \ -+ SM_CFG_W1(0x000107a8U), 0x00000009U, \ -+ SM_CFG_W1(0x00010860U), 0x00090000U, \ -+ SM_CFG_W1(0x00010864U), 0x00909009U, \ -+ SM_CFG_W1(0x00010868U), 0x90000000U, \ -+ SM_CFG_W1(0x00010878U), 0x00090000U, \ -+ SM_CFG_Z1(0x00010a60U), \ -+ SM_CFG_Z1(0x00010c60U), \ -+ SM_CFG_Z1(0x00010e60U), \ -+ SM_CFG_Z1(0x00011060U), \ -+ SM_CFG_W1(0x00011070U), 0x00000900U, \ -+ SM_CFG_W1(0x00011240U), 0x99999999U, \ -+ SM_CFG_W1(0x00011244U), 0x99999999U, \ -+ SM_CFG_W1(0x00011248U), 0x99999999U, \ -+ SM_CFG_W1(0x0001124cU), 0x99999999U, \ -+ SM_CFG_W1(0x00011250U), 0x99999999U, \ -+ SM_CFG_W1(0x00011254U), 0x99999999U, \ -+ SM_CFG_W1(0x00011258U), 0x99999999U, \ -+ SM_CFG_W1(0x0001125cU), 0x99999999U, \ -+ SM_CFG_W1(0x00011260U), 0x99999999U, \ -+ SM_CFG_W1(0x00011264U), 0x99999999U, \ -+ SM_CFG_W1(0x00011268U), 0x99999999U, \ -+ SM_CFG_W1(0x0001126cU), 0x09999999U, \ -+ SM_CFG_W1(0x00011270U), 0x99909999U, \ -+ SM_CFG_W1(0x00011274U), 0x99999999U, \ -+ SM_CFG_W1(0x00011278U), 0x99999999U, \ -+ SM_CFG_W1(0x0001127cU), 0x00999999U, \ -+ SM_CFG_W1(0x00011380U), 0x00000009U, \ -+ SM_CFG_W1(0x000113a8U), 0x00000009U, \ -+ SM_CFG_W1(0x000113d0U), 0x99999999U, \ -+ SM_CFG_W1(0x000113d4U), 0x99999999U, \ -+ SM_CFG_W1(0x000113d8U), 0x00000009U, \ -+ SM_CFG_Z1(0x00011460U), \ -+ SM_CFG_Z1(0x00011660U), \ -+ SM_CFG_Z1(0x00011860U), \ -+ SM_CFG_Z1(0x00011a60U), \ -+ SM_CFG_Z1(0x00011c60U), \ -+ SM_CFG_Z1(0x00011e60U), \ -+ SM_CFG_W1(0x00012024U), 0x6666U, \ -+ SM_CFG_W1(0x00012028U), 0x7777U, \ -+ SM_CFG_W1(0x0001202cU), 0x6600U, \ -+ SM_CFG_Z1(0x00012040U), \ -+ SM_CFG_W1(0x00012180U), 0x00000003U, \ -+ SM_CFG_W1(0x00012240U), 0x90000000U, \ -+ SM_CFG_W1(0x00012440U), 0x00003330U, \ -+ SM_CFG_W1(0x000125a8U), 0x00000003U, \ -+ SM_CFG_W1(0x00012640U), 0x09900000U, \ -+ SM_CFG_W1(0x00012644U), 0x00009900U, \ -+ SM_CFG_W1(0x000127d0U), 0x00000099U, \ -+ SM_CFG_Z1(0x00012840U), \ -+ SM_CFG_Z1(0x00012a40U), \ -+ SM_CFG_Z1(0x00012c40U), \ -+ SM_CFG_Z1(0x00012e40U), \ -+ SM_CFG_Z1(0x00013040U), \ -+ SM_CFG_W1(0x00013240U), 0x99909990U, \ -+ SM_CFG_W1(0x00013244U), 0x00009900U, \ -+ SM_CFG_W1(0x00013380U), 0x00000009U, \ -+ SM_CFG_W1(0x000133a8U), 0x00000009U, \ -+ SM_CFG_W1(0x000133d0U), 0x00000099U, \ -+ SM_CFG_Z1(0x00013440U), \ -+ SM_CFG_Z1(0x00013640U), \ -+ SM_CFG_Z1(0x00013840U), \ -+ SM_CFG_Z1(0x00013a40U), \ -+ SM_CFG_Z1(0x00013c40U), \ -+ SM_CFG_Z1(0x00013e40U), \ -+ SM_CFG_W1(0x00014024U), 0x6666U, \ -+ SM_CFG_W1(0x00014028U), 0x7777U, \ -+ SM_CFG_W1(0x00014640U), 0x00999909U, \ -+ SM_CFG_W1(0x00014780U), 0x00999909U, \ -+ SM_CFG_W1(0x00014840U), 0x00000090U, \ -+ SM_CFG_W1(0x00014980U), 0x00000090U, \ -+ SM_CFG_W1(0x00015240U), 0x00999999U, \ -+ SM_CFG_W1(0x00015380U), 0x00999999U, \ -+ SM_CFG_W1(0x00017024U), 0x6666U, \ -+ SM_CFG_Z1(0x00017244U), \ -+ SM_CFG_Z1(0x0001724cU), \ -+ SM_CFG_Z1(0x00017254U), \ -+ SM_CFG_Z1(0x0001725cU), \ -+ SM_CFG_Z1(0x00017340U), \ -+ SM_CFG_W1(0x00017344U), 0xFFFFC011U, \ -+ SM_CFG_Z1(0x0001734cU), \ -+ SM_CFG_Z1(0x00017354U), \ -+ SM_CFG_Z1(0x0001735cU), \ -+ SM_CFG_Z1(0x00017444U), \ -+ SM_CFG_Z1(0x0001744cU), \ -+ SM_CFG_Z1(0x00017454U), \ -+ SM_CFG_Z1(0x0001745cU), \ -+ SM_CFG_Z1(0x00017544U), \ -+ SM_CFG_Z1(0x0001754cU), \ -+ SM_CFG_Z1(0x00017554U), \ -+ SM_CFG_Z1(0x0001755cU), \ -+ SM_CFG_Z1(0x00017644U), \ -+ SM_CFG_Z1(0x0001764cU), \ -+ SM_CFG_Z1(0x00017654U), \ -+ SM_CFG_Z1(0x0001765cU), \ -+ SM_CFG_Z1(0x00017744U), \ -+ SM_CFG_Z1(0x0001774cU), \ -+ SM_CFG_Z1(0x00017754U), \ -+ SM_CFG_Z1(0x0001775cU), \ -+ SM_CFG_Z1(0x00017844U), \ -+ SM_CFG_Z1(0x0001784cU), \ -+ SM_CFG_Z1(0x00017854U), \ -+ SM_CFG_Z1(0x0001785cU), \ -+ SM_CFG_W1(0x00017940U), 0x00000001U, \ -+ SM_CFG_W1(0x00017944U), 0xFFFFC011U, \ -+ SM_CFG_Z1(0x0001794cU), \ -+ SM_CFG_Z1(0x00017954U), \ -+ SM_CFG_Z1(0x0001795cU), \ -+ SM_CFG_Z1(0x00017a44U), \ -+ SM_CFG_Z1(0x00017a4cU), \ -+ SM_CFG_Z1(0x00017a54U), \ -+ SM_CFG_Z1(0x00017a5cU), \ -+ SM_CFG_Z1(0x00017b44U), \ -+ SM_CFG_Z1(0x00017b4cU), \ -+ SM_CFG_Z1(0x00017b54U), \ -+ SM_CFG_Z1(0x00017b5cU), \ -+ SM_CFG_Z1(0x00017c44U), \ -+ SM_CFG_Z1(0x00017c4cU), \ -+ SM_CFG_Z1(0x00017c54U), \ -+ SM_CFG_Z1(0x00017c5cU), \ -+ SM_CFG_W1(0x00018024U), 0x6666U, \ -+ SM_CFG_W1(0x00018040U), 0x4A030000U, \ -+ SM_CFG_W1(0x00018044U), 0x4A03C001U, \ -+ SM_CFG_Z1(0x0001804cU), \ -+ SM_CFG_Z1(0x00018054U), \ -+ SM_CFG_Z1(0x0001805cU), \ -+ SM_CFG_W1(0x00018140U), 0x4A020001U, \ -+ SM_CFG_W1(0x00018144U), 0x4A02C011U, \ -+ SM_CFG_Z1(0x0001814cU), \ -+ SM_CFG_Z1(0x00018154U), \ -+ SM_CFG_Z1(0x0001815cU), \ -+ SM_CFG_W1(0x00018240U), 0x4A050000U, \ -+ SM_CFG_W1(0x00018244U), 0x4A0AC001U, \ -+ SM_CFG_Z1(0x0001824cU), \ -+ SM_CFG_Z1(0x00018254U), \ -+ SM_CFG_Z1(0x0001825cU), \ -+ SM_CFG_Z1(0x00018344U), \ -+ SM_CFG_Z1(0x0001834cU), \ -+ SM_CFG_Z1(0x00018354U), \ -+ SM_CFG_Z1(0x0001835cU), \ -+ SM_CFG_W1(0x00018440U), 0x4A060001U, \ -+ SM_CFG_W1(0x00018444U), 0x4A09C011U, \ -+ SM_CFG_W1(0x00018448U), 0x20380001U, \ -+ SM_CFG_W1(0x0001844cU), 0x2047C011U, \ -+ SM_CFG_Z1(0x00018454U), \ -+ SM_CFG_Z1(0x0001845cU), \ -+ SM_CFG_Z1(0x00018544U), \ -+ SM_CFG_Z1(0x0001854cU), \ -+ SM_CFG_Z1(0x00018554U), \ -+ SM_CFG_Z1(0x0001855cU), \ -+ SM_CFG_Z1(0x00018644U), \ -+ SM_CFG_Z1(0x0001864cU), \ -+ SM_CFG_Z1(0x00018654U), \ -+ SM_CFG_Z1(0x0001865cU), \ -+ SM_CFG_Z1(0x00018744U), \ -+ SM_CFG_Z1(0x0001874cU), \ -+ SM_CFG_Z1(0x00018754U), \ -+ SM_CFG_Z1(0x0001875cU), \ -+ SM_CFG_Z1(0x00018844U), \ -+ SM_CFG_Z1(0x0001884cU), \ -+ SM_CFG_Z1(0x00018854U), \ -+ SM_CFG_Z1(0x0001885cU), \ -+ SM_CFG_W1(0x00018940U), 0x4A020001U, \ -+ SM_CFG_W1(0x00018944U), 0x4A02C011U, \ -+ SM_CFG_W1(0x00018948U), 0x4A030001U, \ -+ SM_CFG_W1(0x0001894cU), 0x4A03C011U, \ -+ SM_CFG_W1(0x00018950U), 0x4A050001U, \ -+ SM_CFG_W1(0x00018954U), 0x4A0AC011U, \ -+ SM_CFG_W1(0x00018958U), 0x4A060001U, \ -+ SM_CFG_W1(0x0001895cU), 0x4A09C011U, \ -+ SM_CFG_W1(0x00018960U), 0x20380001U, \ -+ SM_CFG_W1(0x00018964U), 0x2047C011U, \ -+ SM_CFG_Z1(0x00018a44U), \ -+ SM_CFG_Z1(0x00018a4cU), \ -+ SM_CFG_Z1(0x00018a54U), \ -+ SM_CFG_Z1(0x00018a5cU), \ -+ SM_CFG_Z1(0x00018b44U), \ -+ SM_CFG_Z1(0x00018b4cU), \ -+ SM_CFG_Z1(0x00018b54U), \ -+ SM_CFG_Z1(0x00018b5cU), \ -+ SM_CFG_Z1(0x00018c44U), \ -+ SM_CFG_Z1(0x00018c4cU), \ -+ SM_CFG_Z1(0x00018c54U), \ -+ SM_CFG_Z1(0x00018c5cU), \ -+ SM_CFG_Z1(0x00010020U), \ -+ SM_CFG_Z1(0x00012020U), \ -+ SM_CFG_Z1(0x00014020U), \ -+ SM_CFG_W1(0x00017020U), 0x7777U, \ -+ SM_CFG_W1(0x00018020U), 0x6600U, \ -+ SM_CFG_C1(0x00000000U), 0x0000C001U, \ -+ SM_CFG_END \ -+ } -+ -+#endif /* CONFIG_TRDC_H */ -+ -+/** @} */ -+ -diff --git a/configs/ccimx95dvk/config_user.h b/configs/ccimx95dvk/config_user.h -new file mode 100644 -index 000000000000..bb1bdba57765 ---- /dev/null -+++ b/configs/ccimx95dvk/config_user.h -@@ -0,0 +1,230 @@ -+/* -+** ################################################################### -+** -+** Copyright 2023-2025 NXP -+** -+** Redistribution and use in source and binary forms, with or without modification, -+** are permitted provided that the following conditions are met: -+** -+** o Redistributions of source code must retain the above copyright notice, this list -+** of conditions and the following disclaimer. -+** -+** o Redistributions in binary form must reproduce the above copyright notice, this -+** list of conditions and the following disclaimer in the documentation and/or -+** other materials provided with the distribution. -+** -+** o Neither the name of the copyright holder nor the names of its -+** contributors may be used to endorse or promote products derived from this -+** software without specific prior written permission. -+** -+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -+** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR -+** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -+** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -+** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+** -+** -+** ################################################################### -+*/ -+ -+/*==========================================================================*/ -+/*! -+ * @addtogroup CONFIG_CCIMX95DVK -+ * @{ -+ * -+ * @file -+ * @brief -+ * -+ * Header file containing configuration info for the manual user settings. -+ */ -+/*==========================================================================*/ -+ -+#ifndef CONFIG_USER_H -+#define CONFIG_USER_H -+ -+/* Includes */ -+ -+#include "config.h" -+ -+/* Defines */ -+ -+ -+/*--------------------------------------------------------------------------*/ -+/* CAMERA Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the CAMERA mix */ -+#define SM_CAMERA_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* A55P Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the A55P mix */ -+#define SM_A55P_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* DDR Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the DDR mix */ -+#define SM_DDR_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* DISPLAY Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the DISPLAY mix */ -+#define SM_DISPLAY_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* GPU Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the GPU mix */ -+#define SM_GPU_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* HSIO_TOP Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the HSIO_TOP mix */ -+#define SM_HSIO_TOP_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* HSIO_WAON Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the HSIO_WAON mix */ -+#define SM_HSIO_WAON_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* M7 Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the M7 mix */ -+#define SM_M7_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* NETC Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the NETC mix */ -+#define SM_NETC_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* NOC Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the NOC mix */ -+#define SM_NOC_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* NPU Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the NPU mix */ -+#define SM_NPU_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* VPU Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the VPU mix */ -+#define SM_VPU_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* WKUP Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the WKUP mix */ -+#define SM_WKUP_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* ANA Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the ANA mix */ -+#define SM_ANA_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* AON Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the AON mix */ -+#define SM_AON_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* BBSM Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the BBSM mix */ -+#define SM_BBSM_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+/*--------------------------------------------------------------------------*/ -+/* CCMSRCGPC Config */ -+/*--------------------------------------------------------------------------*/ -+ -+/*! Data load config for the CCMSRCGPC mix */ -+#define SM_CCMSRCGPC_CONFIG \ -+ { \ -+ SM_CFG_END \ -+ } -+ -+#endif /* CONFIG_USER_H */ -+ -+/** @} */ -+ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0003-ccimx95dvk-disable-PCAL6408A-expander-and-move-GPIO1.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0003-ccimx95dvk-disable-PCAL6408A-expander-and-move-GPIO1.patch deleted file mode 100644 index 550bfb35b..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0003-ccimx95dvk-disable-PCAL6408A-expander-and-move-GPIO1.patch +++ /dev/null @@ -1,254 +0,0 @@ -From: Javier Viguera -Date: Mon, 15 Sep 2025 12:37:05 +0200 -Subject: [PATCH] ccimx95dvk: disable PCAL6408A expander and move GPIO1 to A55 - -Our board does not populate that expander, so disable the initialization -and assign GPIO1 to be used by the A55 cpu. - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Javier Viguera ---- - boards/ccimx95dvk/board.c | 7 --- - boards/ccimx95dvk/pin_mux.c | 4 -- - boards/ccimx95dvk/sm/brd_sm.c | 9 --- - boards/ccimx95dvk/sm/brd_sm_handlers.c | 82 -------------------------- - configs/ccimx95dvk.cfg | 3 +- - configs/ccimx95dvk/config_scmi.h | 2 + - configs/ccimx95dvk/config_trdc.h | 2 +- - 7 files changed, 5 insertions(+), 104 deletions(-) - -diff --git a/boards/ccimx95dvk/board.c b/boards/ccimx95dvk/board.c -index d4a671f6d7f8..012a04540fd1 100755 ---- a/boards/ccimx95dvk/board.c -+++ b/boards/ccimx95dvk/board.c -@@ -337,9 +337,6 @@ void BOARD_InitHandlers(void) - /* Enable FCCU handler */ - NVIC_SetPriority(FCCU_INT0_IRQn, IRQ_PRIO_NOPREEMPT_CRITICAL); - NVIC_EnableIRQ(FCCU_INT0_IRQn); -- -- /* Enable GPIO1 handler */ -- NVIC_EnableIRQ(GPIO1_0_IRQn); - } - - /*--------------------------------------------------------------------------*/ -@@ -509,10 +506,6 @@ void BOARD_SystemSleepPrepare(uint32_t sleepMode, uint32_t sleepFlags) - (void) CPU_PerLpiConfigSet(CPU_IDX_M33P, s_uartConfig.perLpiId, - CPU_PER_LPI_ON_RUN_WAIT_STOP); - } -- -- /* Configure LPI for GPIO1 */ -- (void) CPU_PerLpiConfigSet(CPU_IDX_M33P, CPU_PER_LPI_IDX_GPIO1, -- CPU_PER_LPI_ON_RUN_WAIT_STOP); - } - - /*--------------------------------------------------------------------------*/ -diff --git a/boards/ccimx95dvk/pin_mux.c b/boards/ccimx95dvk/pin_mux.c -index 60f6d27c41c5..800126f3814b 100755 ---- a/boards/ccimx95dvk/pin_mux.c -+++ b/boards/ccimx95dvk/pin_mux.c -@@ -57,9 +57,5 @@ void BOARD_InitPins(void) - IOMUXC_SetPinConfig(IOMUXC_PAD_I2C2_SDA__LPI2C2_SDA, IOMUXC_PAD_DSE(0xFU) - | IOMUXC_PAD_FSEL1(0x3U) | IOMUXC_PAD_PU(0x1U) | IOMUXC_PAD_OD(0x1U)); - #endif -- -- /* Configure GPIO1-10 (INT from the PCAL6408A */ -- IOMUXC_SetPinMux(IOMUXC_PAD_PDM_BIT_STREAM1__GPIO1_IO_BIT10, 0U); -- IOMUXC_SetPinConfig(IOMUXC_PAD_PDM_BIT_STREAM1__GPIO1_IO_BIT10, 0U); - } - -diff --git a/boards/ccimx95dvk/sm/brd_sm.c b/boards/ccimx95dvk/sm/brd_sm.c -index cd48b590cd26..48a8486a2acd 100755 ---- a/boards/ccimx95dvk/sm/brd_sm.c -+++ b/boards/ccimx95dvk/sm/brd_sm.c -@@ -459,15 +459,6 @@ void BRD_SM_ShutdownRecordSave(dev_sm_rst_rec_t shutdownRec) - int32_t BRD_SM_SystemReset(void) - { - int32_t status = SM_ERR_SUCCESS; -- rgpio_pin_config_t gpioConfig = -- { -- kRGPIO_DigitalOutput, -- 0U -- }; -- -- /* Drive WDOG_ANY to reset PMIC */ -- RGPIO_PinInit(GPIO1, 15U, &gpioConfig); -- IOMUXC_SetPinMux(IOMUXC_PAD_WDOG_ANY__GPIO1_IO_BIT15, 0U); - - /* Wait for PMIC to react */ - SystemTimeDelay(1000U); -diff --git a/boards/ccimx95dvk/sm/brd_sm_handlers.c b/boards/ccimx95dvk/sm/brd_sm_handlers.c -index a96f6ce0e2f4..19ee28e93134 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_handlers.c -+++ b/boards/ccimx95dvk/sm/brd_sm_handlers.c -@@ -96,26 +96,6 @@ int32_t BRD_SM_SerialDevicesInit(void) - { - int32_t status = SM_ERR_SUCCESS; - LPI2C_Type *const s_i2cBases[] = LPI2C_BASE_PTRS; -- pcal6408a_config_t pcal6408Config; -- -- /* Fill in PCAL6408A dev */ -- g_pcal6408aDev.i2cBase = s_i2cBases[BOARD_I2C_INSTANCE]; -- g_pcal6408aDev.devAddr = BOARD_PCAL6408A_DEV_ADDR; -- -- /* Init the bus expander */ -- PCAL6408A_GetDefaultConfig(&pcal6408Config); -- pcal6408Config.inputLatch = 0xFFU; -- if (!PCAL6408A_Init(&g_pcal6408aDev, &pcal6408Config)) -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- else -- { -- if (!PCAL6408A_IntMaskSet(&g_pcal6408aDev, PCAL6408A_INITIAL_MASK)) -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } - - if (status == SM_ERR_SUCCESS) - { -@@ -254,20 +234,6 @@ int32_t BRD_SM_SerialDevicesInit(void) - } - } - -- if (status == SM_ERR_SUCCESS) -- { -- rgpio_pin_config_t gpioConfig = -- { -- kRGPIO_DigitalInput, -- 0U -- }; -- -- /* Init GPIO1-10 */ -- RGPIO_PinInit(GPIO1, 10U, &gpioConfig); -- RGPIO_SetPinInterruptConfig(GPIO1, 10U, kRGPIO_InterruptOutput0, -- kRGPIO_InterruptLogicZero); -- } -- - /* Return status */ - return status; - } -@@ -300,54 +266,6 @@ int32_t BRD_SM_BusExpMaskSet(uint8_t val, uint8_t mask) - return status; - } - --/*--------------------------------------------------------------------------*/ --/* GPIO1 handler */ --/*--------------------------------------------------------------------------*/ --void GPIO1_0_IRQHandler(void) --{ -- uint32_t flags; -- uint8_t status, val; -- -- /* Get GPIO status */ -- flags = RGPIO_GetPinsInterruptFlags(GPIO1, kRGPIO_InterruptOutput0); -- -- /* Get PCAL6408A status */ -- (void) PCAL6408A_IntStatusGet(&g_pcal6408aDev, &status); -- -- /* Get value and Clear PCAL6408A interrupts */ -- (void) PCAL6408A_InputGet(&g_pcal6408aDev, &val); -- -- /* Clear GPIO interrupts */ -- RGPIO_ClearPinsInterruptFlags(GPIO1, kRGPIO_InterruptOutput0, flags); -- -- /* Handle PF09 interrupt */ -- if ((status & BIT8(PCAL6408A_INPUT_PF09_INT)) != 0U) -- { -- /* Asserts low */ -- if ((val & BIT8(PCAL6408A_INPUT_PF09_INT)) == 0U) -- { -- BRD_SM_Pf09Handler(); -- } -- } -- -- /* Handle PCA2131 interrupt */ -- if (g_pca2131Used && ((status & BIT8(PCAL6408A_INPUT_PCA2131_INT)) -- != 0U)) -- { -- /* Asserts low */ -- if ((val & BIT8(PCAL6408A_INPUT_PCA2131_INT)) == 0U) -- { -- BRD_SM_BbmHandler(); -- } -- } -- -- /* Handle controls interrupts */ -- BRD_SM_ControlHandler(status, val); -- -- /* Adjust dynamic IRQ priority */ -- (void) DEV_SM_IrqPrioUpdate(); --} -- - /*==========================================================================*/ - - /*--------------------------------------------------------------------------*/ -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index da383aab036c..86d39e6e1fba 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -197,7 +197,6 @@ ELE OWNER - FSB READONLY - GIC ACCESS - GPC OWNER --GPIO1 OWNER - GPR0 OWNER - GPR1 OWNER - GPR2 OWNER -@@ -482,6 +481,7 @@ PERLPI_LPUART4 ALL - PERLPI_LPUART5 ALL - PERLPI_LPUART6 ALL - PERLPI_LPUART8 ALL -+PERLPI_GPIO1 ALL - PERLPI_WDOG3 ALL - PERLPI_WDOG4 ALL - SYS ALL -@@ -715,6 +715,7 @@ FLEXIO2 OWNER - FLEXSPI1 OWNER - FSB READONLY - GIC OWNER -+GPIO1 OWNER - GPIO2 OWNER - GPIO3 OWNER - GPIO4 OWNER -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -index e1b81cc03f58..c1cc90313174 100644 ---- a/configs/ccimx95dvk/config_scmi.h -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -192,6 +192,7 @@ - .perlpiPerms[DEV_SM_PERLPI_CAN3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN4] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN5] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO1] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_GPIO2] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_GPIO3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_GPIO4] = SM_SCMI_PERM_ALL, \ -@@ -474,6 +475,7 @@ - .perlpiPerms[DEV_SM_PERLPI_CAN3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN4] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN5] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_GPIO1] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_GPIO2] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_GPIO3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_GPIO4] = SM_SCMI_PERM_ALL, \ -diff --git a/configs/ccimx95dvk/config_trdc.h b/configs/ccimx95dvk/config_trdc.h -index 1d8ed0b6fc95..47df6a7577d5 100644 ---- a/configs/ccimx95dvk/config_trdc.h -+++ b/configs/ccimx95dvk/config_trdc.h -@@ -116,7 +116,6 @@ - SM_CFG_W1(0x00010470U), 0x33333333U, \ - SM_CFG_W1(0x00010474U), 0x00003000U, \ - SM_CFG_W1(0x00010580U), 0x000003C0U, \ -- SM_CFG_W1(0x000105a8U), 0x00000003U, \ - SM_CFG_W1(0x00010640U), 0x99999999U, \ - SM_CFG_W1(0x00010644U), 0x99999999U, \ - SM_CFG_W1(0x00010648U), 0x99999999U, \ -@@ -129,6 +128,7 @@ - SM_CFG_W1(0x0001066cU), 0x90909000U, \ - SM_CFG_W1(0x00010670U), 0x00009000U, \ - SM_CFG_W1(0x00010780U), 0x099330C0U, \ -+ SM_CFG_W1(0x000107a8U), 0x00000009U, \ - SM_CFG_Z1(0x00010850U), \ - SM_CFG_W1(0x00010854U), 0x9000C000U, \ - SM_CFG_W1(0x00010858U), 0x00000099U, \ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0004-ccimx95dvk-move-resources-from-M7-to-A55.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0004-ccimx95dvk-move-resources-from-M7-to-A55.patch deleted file mode 100644 index e961ad24b..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0004-ccimx95dvk-move-resources-from-M7-to-A55.patch +++ /dev/null @@ -1,206 +0,0 @@ -From: Javier Viguera -Date: Tue, 16 Sep 2025 17:51:14 +0200 -Subject: [PATCH] ccimx95dvk: move resources from M7 to A55 - -Moved from M7 to A55 domain: -* LPUART7 -* PIN_GPIO_IO14 -* PIN_GPIO_IO15 - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Javier Viguera ---- - configs/ccimx95dvk.cfg | 11 ++++------- - configs/ccimx95dvk/config_scmi.h | 15 ++++++++------- - configs/ccimx95dvk/config_test.h | 7 +------ - configs/ccimx95dvk/config_trdc.h | 3 +-- - 4 files changed, 14 insertions(+), 22 deletions(-) - -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index 86d39e6e1fba..393c29436894 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -369,7 +369,6 @@ LPIT1 OWNER - LPTMR1 OWNER - LPTMR2 OWNER - LPTPM1 OWNER --LPUART3 OWNER, test - MSGINTR1 OWNER - MSGINTR2 OWNER - MU5_A OWNER -@@ -382,11 +381,6 @@ TSTMR2 OWNER - V2X_SHE1 OWNER - WDOG5 OWNER - --# Pins -- --PIN_GPIO_IO14 OWNER --PIN_GPIO_IO15 OWNER -- - # Memory - - M7MIX DATA, begin=0x020380000, end=0x02047FFFF -@@ -477,6 +471,7 @@ PERLPI_GPIO4 ALL - PERLPI_GPIO5 ALL - PERLPI_LPUART1 ALL - PERLPI_LPUART2 ALL -+PERLPI_LPUART3 ALL - PERLPI_LPUART4 ALL - PERLPI_LPUART5 ALL - PERLPI_LPUART6 ALL -@@ -762,6 +757,7 @@ LPTPM5 OWNER - LPTPM6 OWNER - LPUART1 OWNER - LPUART2 OWNER -+LPUART3 OWNER - LPUART4 OWNER - LPUART5 OWNER - LPUART6 OWNER -@@ -914,6 +910,8 @@ PIN_GPIO_IO10 OWNER - PIN_GPIO_IO11 OWNER - PIN_GPIO_IO12 OWNER - PIN_GPIO_IO13 OWNER -+PIN_GPIO_IO14 OWNER -+PIN_GPIO_IO15 OWNER - PIN_GPIO_IO16 OWNER - PIN_GPIO_IO17 OWNER - PIN_GPIO_IO18 OWNER -@@ -993,4 +991,3 @@ OCRAM EXEC, begin=0x0204C0000, size=96K - GPU DATA, begin=0x04D900000, end=0x04DD7FFFF - DDR EXEC, begin=0x088000000, end=0x089FFFFFF - DDR EXEC, begin=0x08E000000, end=0x87FFFFFFF -- -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -index c1cc90313174..0913c1339af0 100644 ---- a/configs/ccimx95dvk/config_scmi.h -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -69,7 +69,6 @@ - .clkPerms[DEV_SM_CLK_CAN1] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPTMR1] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPTMR2] = SM_SCMI_PERM_ALL, \ -- .clkPerms[DEV_SM_CLK_LPUART3] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_M7SYSTICK] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_M7] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_TSTMR2] = SM_SCMI_PERM_ALL, \ -@@ -81,9 +80,6 @@ - .daisyPerms[DEV_SM_DAISY_LPTMR2_0] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPTMR2_1] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPTMR2_2] = SM_SCMI_PERM_ALL, \ -- .daisyPerms[DEV_SM_DAISY_LPUART3_CTS] = SM_SCMI_PERM_ALL, \ -- .daisyPerms[DEV_SM_DAISY_LPUART3_RXD] = SM_SCMI_PERM_ALL, \ -- .daisyPerms[DEV_SM_DAISY_LPUART3_TXD] = SM_SCMI_PERM_ALL, \ - .faultPerms[DEV_SM_FAULT_M7_LOCKUP] = SM_SCMI_PERM_ALL, \ - .faultPerms[DEV_SM_FAULT_M7_RESET] = SM_SCMI_PERM_ALL, \ - .faultPerms[DEV_SM_FAULT_SW0] = SM_SCMI_PERM_ALL, \ -@@ -94,10 +90,7 @@ - .pdPerms[DEV_SM_PD_M7] = SM_SCMI_PERM_ALL, \ - .perfPerms[DEV_SM_PERF_M7] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN1] = SM_SCMI_PERM_ALL, \ -- .perlpiPerms[DEV_SM_PERLPI_LPUART3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_WDOG5] = SM_SCMI_PERM_ALL, \ -- .pinPerms[DEV_SM_PIN_GPIO_IO14] = SM_SCMI_PERM_ALL, \ -- .pinPerms[DEV_SM_PIN_GPIO_IO15] = SM_SCMI_PERM_ALL, \ - .rtcPerms[BRD_SM_RTC_PCA2131] = SM_SCMI_PERM_ALL, \ - .rtcPerms[DEV_SM_RTC_BBNSM] = SM_SCMI_PERM_PRIV, \ - .sensorPerms[BRD_SM_SENSOR_TEMP_PF09] = SM_SCMI_PERM_SET, \ -@@ -199,6 +192,7 @@ - .perlpiPerms[DEV_SM_PERLPI_GPIO5] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART1] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART2] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART4] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART5] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART6] = SM_SCMI_PERM_ALL, \ -@@ -291,6 +285,7 @@ - .clkPerms[DEV_SM_CLK_LPSPI8] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPUART1] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPUART2] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_LPUART3] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPUART4] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPUART5] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPUART6] = SM_SCMI_PERM_ALL, \ -@@ -398,6 +393,9 @@ - .daisyPerms[DEV_SM_DAISY_LPSPI4_SCK] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPSPI4_SDI] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPSPI4_SDO] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART3_CTS] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART3_RXD] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_LPUART3_TXD] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPUART4_CTS] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPUART4_RXD] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPUART4_TXD] = SM_SCMI_PERM_ALL, \ -@@ -482,6 +480,7 @@ - .perlpiPerms[DEV_SM_PERLPI_GPIO5] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART1] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART2] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_LPUART3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART4] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART5] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_LPUART6] = SM_SCMI_PERM_ALL, \ -@@ -536,6 +535,8 @@ - .pinPerms[DEV_SM_PIN_GPIO_IO11] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_GPIO_IO12] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_GPIO_IO13] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO14] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_GPIO_IO15] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_GPIO_IO16] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_GPIO_IO17] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_GPIO_IO18] = SM_SCMI_PERM_ALL, \ -diff --git a/configs/ccimx95dvk/config_test.h b/configs/ccimx95dvk/config_test.h -index cb737f33eede..efc15c56ffe9 100644 ---- a/configs/ccimx95dvk/config_test.h -+++ b/configs/ccimx95dvk/config_test.h -@@ -143,12 +143,11 @@ - /*--------------------------------------------------------------------------*/ - - /*! Config for number of tests */ --#define SM_SCMI_NUM_TEST 40U -+#define SM_SCMI_NUM_TEST 35U - - /*! Config data array for tests */ - #define SM_SCMI_TEST_CONFIG_DATA \ - {.testId = TEST_BUTTON, .channel = 5U, .rsrc = DEV_SM_BUTTON_0}, \ -- {.testId = TEST_CLK, .channel = 0U, .rsrc = DEV_SM_CLK_LPUART3}, \ - {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_DISPOCRAM}, \ - {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_ENETREF}, \ - {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_ENETTIMER1}, \ -@@ -157,9 +156,6 @@ - {.testId = TEST_CLK, .channel = 5U, .rsrc = DEV_SM_CLK_SAI1}, \ - {.testId = TEST_CTRL, .channel = 5U, .rsrc = DEV_SM_CTRL_MQS1_SETTINGS}, \ - {.testId = TEST_CTRL, .channel = 5U, .rsrc = DEV_SM_CTRL_SAI1_MCLK}, \ -- {.testId = TEST_DAISY, .channel = 0U, .rsrc = DEV_SM_DAISY_LPUART3_CTS}, \ -- {.testId = TEST_DAISY, .channel = 0U, .rsrc = DEV_SM_DAISY_LPUART3_RXD}, \ -- {.testId = TEST_DAISY, .channel = 0U, .rsrc = DEV_SM_DAISY_LPUART3_TXD}, \ - {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_EMDC}, \ - {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_EMDIO}, \ - {.testId = TEST_DAISY, .channel = 5U, .rsrc = DEV_SM_DAISY_NETC_ETH0_RMII_RX_ER}, \ -@@ -182,7 +178,6 @@ - {.testId = TEST_PERF, .channel = 5U, .rsrc = DEV_SM_PERF_GPU}, \ - {.testId = TEST_PERF, .channel = 5U, .rsrc = DEV_SM_PERF_NPU}, \ - {.testId = TEST_PERF, .channel = 5U, .rsrc = DEV_SM_PERF_VPU}, \ -- {.testId = TEST_PERLPI, .channel = 0U, .rsrc = DEV_SM_PERLPI_LPUART3}, \ - {.testId = TEST_PERLPI, .channel = 5U, .rsrc = DEV_SM_PERLPI_LPUART8}, \ - {.testId = TEST_PIN, .channel = 5U, .rsrc = DEV_SM_PIN_UART1_RXD}, \ - {.testId = TEST_RTC, .channel = 5U, .rsrc = DEV_SM_RTC_BBNSM}, \ -diff --git a/configs/ccimx95dvk/config_trdc.h b/configs/ccimx95dvk/config_trdc.h -index 47df6a7577d5..dc6245097316 100644 ---- a/configs/ccimx95dvk/config_trdc.h -+++ b/configs/ccimx95dvk/config_trdc.h -@@ -1168,7 +1168,7 @@ - SM_CFG_W1(0x0001065cU), 0x99999999U, \ - SM_CFG_W1(0x00010660U), 0x00909099U, \ - SM_CFG_W1(0x00010664U), 0x99090990U, \ -- SM_CFG_W1(0x00010668U), 0x09999999U, \ -+ SM_CFG_W1(0x00010668U), 0x99999999U, \ - SM_CFG_W1(0x0001066cU), 0x09999999U, \ - SM_CFG_W1(0x00010670U), 0x99900009U, \ - SM_CFG_W1(0x00010674U), 0x99999909U, \ -@@ -1178,7 +1178,6 @@ - SM_CFG_W1(0x000107a8U), 0x00000009U, \ - SM_CFG_W1(0x00010860U), 0x00090000U, \ - SM_CFG_W1(0x00010864U), 0x00909009U, \ -- SM_CFG_W1(0x00010868U), 0x90000000U, \ - SM_CFG_W1(0x00010878U), 0x00090000U, \ - SM_CFG_Z1(0x00010a60U), \ - SM_CFG_Z1(0x00010c60U), \ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0005-ccimx95dvk-move-pads-to-non-secure-A55.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0005-ccimx95dvk-move-pads-to-non-secure-A55.patch deleted file mode 100644 index 3441991b9..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0005-ccimx95dvk-move-pads-to-non-secure-A55.patch +++ /dev/null @@ -1,75 +0,0 @@ -From: Hector Palacios -Date: Wed, 24 Sep 2025 12:26:07 +0200 -Subject: [PATCH] ccimx95dvk: move pads to non-secure A55 - -The following pads are multiplexed and used by A55 in Linux: -- PIN_UART2_RXD is used as LPUART1 CTS -- PIN_UART2_TXD is used as LPUART1 RTS -- PIN_PDM_BIT_STREAM1 is used as MIKROBUS_RST - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Hector Palacios ---- - configs/ccimx95dvk.cfg | 5 ++++- - configs/ccimx95dvk/config_scmi.h | 3 +++ - 2 files changed, 7 insertions(+), 1 deletion(-) - -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index 393c29436894..bf5f0739f526 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -1,6 +1,7 @@ - ## ################################################################### - ## - ## Copyright 2023-2025 NXP -+## Copyright 2025 Digi International Inc. - ## - ## Redistribution and use in source and binary forms, with or without modification, - ## are permitted provided that the following conditions are met: -@@ -285,7 +286,6 @@ L_STCU_NPUMIX OWNER - PIN_FCCU_ERR0 OWNER - PIN_I2C1_SCL OWNER - PIN_I2C1_SDA OWNER --PIN_PDM_BIT_STREAM1 OWNER - PIN_GPIO_IO08 OWNER # LPUART7_TX - PIN_GPIO_IO09 OWNER # LPUART7_RX - PIN_WDOG_ANY OWNER -@@ -937,6 +937,7 @@ PIN_GPIO_IO37 OWNER - PIN_I2C2_SCL OWNER - PIN_I2C2_SDA OWNER - PIN_PDM_BIT_STREAM0 OWNER -+PIN_PDM_BIT_STREAM1 OWNER - PIN_PDM_CLK OWNER - PIN_SAI1_RXD0 OWNER - PIN_SAI1_TXC OWNER -@@ -970,6 +971,8 @@ PIN_SD3_DATA2 OWNER - PIN_SD3_DATA3 OWNER - PIN_UART1_RXD OWNER, test - PIN_UART1_TXD OWNER -+PIN_UART2_RXD OWNER -+PIN_UART2_TXD OWNER - PIN_XSPI1_DATA0 OWNER - PIN_XSPI1_DATA1 OWNER - PIN_XSPI1_DATA2 OWNER -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -index 0913c1339af0..510de3d252a2 100644 ---- a/configs/ccimx95dvk/config_scmi.h -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -562,6 +562,7 @@ - .pinPerms[DEV_SM_PIN_I2C2_SCL] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_I2C2_SDA] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_PDM_BIT_STREAM0] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_PDM_BIT_STREAM1] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_PDM_CLK] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_SAI1_RXD0] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_SAI1_TXC] = SM_SCMI_PERM_ALL, \ -@@ -595,6 +596,8 @@ - .pinPerms[DEV_SM_PIN_SD3_DATA3] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_UART1_RXD] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_UART1_TXD] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_UART2_RXD] = SM_SCMI_PERM_ALL, \ -+ .pinPerms[DEV_SM_PIN_UART2_TXD] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_XSPI1_DATA0] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_XSPI1_DATA1] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_XSPI1_DATA2] = SM_SCMI_PERM_ALL, \ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0006-ccimx95dvk-move-CAN1-to-be-used-by-A55.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0006-ccimx95dvk-move-CAN1-to-be-used-by-A55.patch deleted file mode 100644 index a40b3976a..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0006-ccimx95dvk-move-CAN1-to-be-used-by-A55.patch +++ /dev/null @@ -1,151 +0,0 @@ -From: Hector Palacios -Date: Wed, 24 Sep 2025 13:01:57 +0200 -Subject: [PATCH] ccimx95dvk: move CAN1 to be used by A55 - -CAN1 is no longer reserved by M7 but instead moved to -non-secure A55 so that it can be used by Linux. - -Upstream-Status: Inappropriate [DEY specific] - -Signed-off-by: Hector Palacios ---- - configs/ccimx95dvk.cfg | 3 ++- - configs/ccimx95dvk/config_bctrl.h | 14 +++++++------- - configs/ccimx95dvk/config_scmi.h | 7 ++++--- - configs/ccimx95dvk/config_trdc.h | 3 +-- - 4 files changed, 14 insertions(+), 13 deletions(-) - -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index bf5f0739f526..afec8eb5b738 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -362,7 +362,6 @@ SYS ALL - # Resources - - M7P OWNER # CPUs must be first --CAN_FD1 OWNER - FSB READONLY - IRQSTEER_M7 OWNER - LPIT1 OWNER -@@ -461,6 +460,7 @@ CHANNEL db=1, xport=smt, rpc=scmi, type=p2a_notify - - PERF_A55 ALL - PERF_DRAM ALL -+PERLPI_CAN1 ALL - PERLPI_CAN2 ALL - PERLPI_CAN3 ALL - PERLPI_CAN4 ALL -@@ -582,6 +582,7 @@ CAMERA5 OWNER - CAMERA6 OWNER - CAMERA7 OWNER - CAMERA8 OWNER -+CAN_FD1 OWNER - CAN_FD2 OWNER - CAN_FD3 OWNER - CAN_FD4 OWNER -diff --git a/configs/ccimx95dvk/config_bctrl.h b/configs/ccimx95dvk/config_bctrl.h -index a757834c32ab..a55abe03ec02 100644 ---- a/configs/ccimx95dvk/config_bctrl.h -+++ b/configs/ccimx95dvk/config_bctrl.h -@@ -61,13 +61,13 @@ - #define SM_BCTRL_A_CONFIG \ - { \ - SM_CFG_W1(0x00000008U), 0x00001804U, \ -- SM_CFG_W1(0x0000000CU), 0x0000E56AU, \ -- SM_CFG_W1(0x00000010U), 0x0000E56AU, \ -- SM_CFG_W1(0x00000014U), 0x0000E56AU, \ -- SM_CFG_W1(0x00000018U), 0x0000E56AU, \ -- SM_CFG_W1(0x0000001CU), 0x0000E56AU, \ -- SM_CFG_W1(0x00000020U), 0x0000E56AU, \ -- SM_CFG_W1(0x00000024U), 0x00000291U, \ -+ SM_CFG_W1(0x0000000CU), 0x0000E56BU, \ -+ SM_CFG_W1(0x00000010U), 0x0000E56BU, \ -+ SM_CFG_W1(0x00000014U), 0x0000E56BU, \ -+ SM_CFG_W1(0x00000018U), 0x0000E56BU, \ -+ SM_CFG_W1(0x0000001CU), 0x0000E56BU, \ -+ SM_CFG_W1(0x00000020U), 0x0000E56BU, \ -+ SM_CFG_W1(0x00000024U), 0x00000290U, \ - SM_CFG_END \ - } - -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -index 510de3d252a2..36cbb06126fe 100644 ---- a/configs/ccimx95dvk/config_scmi.h -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -66,7 +66,6 @@ - .secure = 0U, \ - .seenvId = 1U, \ - .buttonPerms[DEV_SM_BUTTON_0] = SM_SCMI_PERM_NOTIFY, \ -- .clkPerms[DEV_SM_CLK_CAN1] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPTMR1] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_LPTMR2] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_M7SYSTICK] = SM_SCMI_PERM_ALL, \ -@@ -76,7 +75,6 @@ - .ctrlPerms[BRD_SM_CTRL_BUTTON] = SM_SCMI_PERM_NOTIFY, \ - .ctrlPerms[BRD_SM_CTRL_PCA2131] = SM_SCMI_PERM_ALL, \ - .ctrlPerms[BRD_SM_CTRL_TEST] = SM_SCMI_PERM_ALL, \ -- .daisyPerms[DEV_SM_DAISY_CAN1_RX] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPTMR2_0] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPTMR2_1] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPTMR2_2] = SM_SCMI_PERM_ALL, \ -@@ -89,7 +87,6 @@ - .lmmPerms[2] = SM_SCMI_PERM_ALL, \ - .pdPerms[DEV_SM_PD_M7] = SM_SCMI_PERM_ALL, \ - .perfPerms[DEV_SM_PERF_M7] = SM_SCMI_PERM_ALL, \ -- .perlpiPerms[DEV_SM_PERLPI_CAN1] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_WDOG5] = SM_SCMI_PERM_ALL, \ - .rtcPerms[BRD_SM_RTC_PCA2131] = SM_SCMI_PERM_ALL, \ - .rtcPerms[DEV_SM_RTC_BBNSM] = SM_SCMI_PERM_PRIV, \ -@@ -181,6 +178,7 @@ - .pdPerms[DEV_SM_PD_A55P] = SM_SCMI_PERM_ALL, \ - .perfPerms[DEV_SM_PERF_A55] = SM_SCMI_PERM_ALL, \ - .perfPerms[DEV_SM_PERF_DRAM] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN1] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN2] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN4] = SM_SCMI_PERM_ALL, \ -@@ -237,6 +235,7 @@ - .clkPerms[DEV_SM_CLK_AUDIOPLL2] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_AUDIOPLL2_VCO] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_AUDIOXCVR] = SM_SCMI_PERM_ALL, \ -+ .clkPerms[DEV_SM_CLK_CAN1] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_CAN2] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_CAN3] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_CAN4] = SM_SCMI_PERM_ALL, \ -@@ -327,6 +326,7 @@ - .ctrlPerms[DEV_SM_CTRL_SAI3_MCLK] = SM_SCMI_PERM_ALL, \ - .ctrlPerms[DEV_SM_CTRL_SAI4_MCLK] = SM_SCMI_PERM_ALL, \ - .ctrlPerms[DEV_SM_CTRL_SAI5_MCLK] = SM_SCMI_PERM_ALL, \ -+ .daisyPerms[DEV_SM_DAISY_CAN1_RX] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_CAN2_RX] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_CAN3_RX] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_CAN4_RX] = SM_SCMI_PERM_ALL, \ -@@ -469,6 +469,7 @@ - .perfPerms[DEV_SM_PERF_GPU] = SM_SCMI_PERM_ALL, \ - .perfPerms[DEV_SM_PERF_NPU] = SM_SCMI_PERM_ALL, \ - .perfPerms[DEV_SM_PERF_VPU] = SM_SCMI_PERM_ALL, \ -+ .perlpiPerms[DEV_SM_PERLPI_CAN1] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN2] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN3] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_CAN4] = SM_SCMI_PERM_ALL, \ -diff --git a/configs/ccimx95dvk/config_trdc.h b/configs/ccimx95dvk/config_trdc.h -index dc6245097316..12ebbc61ca64 100644 ---- a/configs/ccimx95dvk/config_trdc.h -+++ b/configs/ccimx95dvk/config_trdc.h -@@ -123,7 +123,7 @@ - SM_CFG_W1(0x00010650U), 0x09000309U, \ - SM_CFG_W1(0x00010654U), 0x0000C900U, \ - SM_CFG_W1(0x00010658U), 0x99909900U, \ -- SM_CFG_W1(0x0001065cU), 0x00009099U, \ -+ SM_CFG_W1(0x0001065cU), 0x00009999U, \ - SM_CFG_W1(0x00010668U), 0x00009900U, \ - SM_CFG_W1(0x0001066cU), 0x90909000U, \ - SM_CFG_W1(0x00010670U), 0x00009000U, \ -@@ -132,7 +132,6 @@ - SM_CFG_Z1(0x00010850U), \ - SM_CFG_W1(0x00010854U), 0x9000C000U, \ - SM_CFG_W1(0x00010858U), 0x00000099U, \ -- SM_CFG_W1(0x0001085cU), 0x00000900U, \ - SM_CFG_W1(0x00010870U), 0x00000090U, \ - SM_CFG_W1(0x00010874U), 0x00000999U, \ - SM_CFG_W1(0x00010980U), 0x900000C0U, \ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0007-ccimx95dvk-remove-PCAL6408A-IO-expander-from-EVK.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0007-ccimx95dvk-remove-PCAL6408A-IO-expander-from-EVK.patch deleted file mode 100644 index 04e5f58e5..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0007-ccimx95dvk-remove-PCAL6408A-IO-expander-from-EVK.patch +++ /dev/null @@ -1,453 +0,0 @@ -From: Hector Palacios -Date: Thu, 25 Sep 2025 11:11:20 +0200 -Subject: [PATCH 7/8] ccimx95dvk: remove PCAL6408A IO expander from EVK - -NXP used this I2C IO expander on their EVK to process -wakeup interrupt lines. -This chip is not available on the DVK. - -Signed-off-by: Hector Palacios ---- - boards/ccimx95dvk/board.c | 1 + - boards/ccimx95dvk/sm/Makefile | 4 +- - boards/ccimx95dvk/sm/brd_sm_bbm.c | 5 +- - boards/ccimx95dvk/sm/brd_sm_control.c | 96 +------------------------- - boards/ccimx95dvk/sm/brd_sm_control.h | 12 ++-- - boards/ccimx95dvk/sm/brd_sm_handlers.c | 36 +--------- - boards/ccimx95dvk/sm/brd_sm_handlers.h | 21 +----- - configs/ccimx95dvk.cfg | 6 -- - configs/ccimx95dvk/config_scmi.h | 6 -- - 9 files changed, 12 insertions(+), 175 deletions(-) - -diff --git a/boards/ccimx95dvk/board.c b/boards/ccimx95dvk/board.c -index 012a04540fd1..1f3c8cd3fdb9 100755 ---- a/boards/ccimx95dvk/board.c -+++ b/boards/ccimx95dvk/board.c -@@ -1,5 +1,6 @@ - /* - * Copyright 2023-2025 NXP -+ * Copyright 2025 Digi International Inc. - * - * SPDX-License-Identifier: BSD-3-Clause - */ -diff --git a/boards/ccimx95dvk/sm/Makefile b/boards/ccimx95dvk/sm/Makefile -index d5b576737636..db27ea922733 100755 ---- a/boards/ccimx95dvk/sm/Makefile -+++ b/boards/ccimx95dvk/sm/Makefile -@@ -1,6 +1,7 @@ - ## ################################################################### - ## - ## Copyright 2023 NXP -+## Copyright 2025 Digi International Inc. - ## - ## Redistribution and use in source and binary forms, with or without modification, - ## are permitted provided that the following conditions are met: -@@ -40,7 +41,6 @@ INCLUDE += \ - -I$(BOARDS_DIR) \ - -I$(BOARD_DIR) \ - -I$(BOARD_DIR)/sm \ -- -I$(COMPONENTS_DIR)/pcal6408a \ - -I$(COMPONENTS_DIR)/pf09 \ - -I$(COMPONENTS_DIR)/pf53 \ - -I$(COMPONENTS_DIR)/pca2131 -@@ -50,7 +50,6 @@ VPATH += \ - $(BOARDS_DIR) \ - $(BOARD_DIR) \ - $(BOARD_DIR)/sm \ -- $(COMPONENTS_DIR)/pcal6408a \ - $(COMPONENTS_DIR)/pf09 \ - $(COMPONENTS_DIR)/pf53 \ - $(COMPONENTS_DIR)/pca2131 -@@ -63,7 +62,6 @@ OBJS += \ - $(OUT)/brd_sm_sensor.o \ - $(OUT)/brd_sm_voltage.o \ - $(OUT)/brd_sm_bbm.o \ -- $(OUT)/fsl_pcal6408a.o \ - $(OUT)/fsl_pf09.o \ - $(OUT)/fsl_pf53.o \ - $(OUT)/fsl_pca2131.o -diff --git a/boards/ccimx95dvk/sm/brd_sm_bbm.c b/boards/ccimx95dvk/sm/brd_sm_bbm.c -index c2e5cd61dc9f..2b13931c7749 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_bbm.c -+++ b/boards/ccimx95dvk/sm/brd_sm_bbm.c -@@ -2,6 +2,7 @@ - ** ################################################################### - ** - ** Copyright 2025 NXP -+** Copyright 2025 Digi International Inc. - ** - ** Redistribution and use in source and binary forms, with or without modification, - ** are permitted provided that the following conditions are met: -@@ -415,8 +416,6 @@ int32_t BRD_SM_BbmRtcAlarmSet(uint32_t rtcId, bool enable, uint64_t val) - /* Enable interrupt */ - if (PCA2131_IntEnable(&g_pca2131Dev, true)) - { -- /* Enable bus expander interrupt */ -- status = BRD_SM_BusExpMaskSet(0U, BIT8(6)); - } - else - { -@@ -440,8 +439,6 @@ int32_t BRD_SM_BbmRtcAlarmSet(uint32_t rtcId, bool enable, uint64_t val) - /* Disable interrupt */ - if (PCA2131_IntEnable(&g_pca2131Dev, false)) - { -- /* Disable bus expander interrupt */ -- status = BRD_SM_BusExpMaskSet(BIT8(6), BIT8(6)); - } - else - { -diff --git a/boards/ccimx95dvk/sm/brd_sm_control.c b/boards/ccimx95dvk/sm/brd_sm_control.c -index 5b36c66c593c..8484a6895a3d 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_control.c -+++ b/boards/ccimx95dvk/sm/brd_sm_control.c -@@ -2,6 +2,7 @@ - ** ################################################################### - ** - ** Copyright 2023-2024 NXP -+** Copyright 2025 Digi International Inc. - ** - ** Redistribution and use in source and binary forms, with or without modification, - ** are permitted provided that the following conditions are met: -@@ -44,13 +45,6 @@ - - /* Local defines */ - --/* PCAL6408A input signals */ --#define PCAL6408A_INPUT_SD3_WAKE 0U --#define PCAL6408A_INPUT_PCIE1_WAKE 4U --#define PCAL6408A_INPUT_BT_WAKE 5U --#define PCAL6408A_INPUT_PCIE2_WAKE 6U --#define PCAL6408A_INPUT_BUTTON 7U -- - /* Local types */ - - /* Local variables */ -@@ -117,26 +111,7 @@ int32_t BRD_SM_ControlGet(uint32_t ctrlId, uint32_t *numRtn, uint32_t *rtn) - } - else - { -- uint8_t data; -- -- /* Read expander data input */ -- if (PCAL6408A_InputGet(&g_pcal6408aDev, &data)) -- { -- uint32_t shift = ctrlId - DEV_SM_NUM_CTRL; -- -- /* Adjust bit position */ -- if (shift > 0U) -- { -- shift += 3U; -- } -- -- *numRtn = 1U; -- rtn[0] = (((uint32_t) data) >> shift) & 0x1UL; -- } -- else -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -+ status = SM_ERR_HARDWARE_ERROR; - } - } - else -@@ -231,41 +206,12 @@ int32_t BRD_SM_ControlFlagsSet(uint32_t ctrlId, uint32_t flags) - } - else - { -- uint8_t mask; -- uint32_t val; -- uint32_t enb = (flags != 0U) ? 0U : 1U; -- - switch (ctrlId) - { -- case BRD_SM_CTRL_SD3_WAKE: -- mask = BIT8(PCAL6408A_INPUT_SD3_WAKE); -- val = (enb & 0x1U) << PCAL6408A_INPUT_SD3_WAKE; -- break; -- case BRD_SM_CTRL_PCIE1_WAKE: -- mask = BIT8(PCAL6408A_INPUT_PCIE1_WAKE); -- val = (enb & 0x1U) << PCAL6408A_INPUT_PCIE1_WAKE; -- break; -- case BRD_SM_CTRL_BT_WAKE: -- mask = BIT8(PCAL6408A_INPUT_BT_WAKE); -- val = (enb & 0x1U) << PCAL6408A_INPUT_BT_WAKE; -- break; -- case BRD_SM_CTRL_PCIE2_WAKE: -- mask = BIT8(PCAL6408A_INPUT_PCIE2_WAKE); -- val = (enb & 0x1U) << PCAL6408A_INPUT_PCIE2_WAKE; -- break; -- case BRD_SM_CTRL_BUTTON: -- mask = BIT8(PCAL6408A_INPUT_BUTTON); -- val = (enb & 0x1U) << PCAL6408A_INPUT_BUTTON; -- break; - default: - status = SM_ERR_NOT_FOUND; - break; - } -- -- if (status == SM_ERR_SUCCESS) -- { -- status = BRD_SM_BusExpMaskSet((uint8_t) val, mask); -- } - } - - return status; -@@ -276,42 +222,6 @@ int32_t BRD_SM_ControlFlagsSet(uint32_t ctrlId, uint32_t flags) - /*--------------------------------------------------------------------------*/ - void BRD_SM_ControlHandler(uint8_t status, uint8_t val) - { -- uint32_t data = (uint32_t) val; -- -- /* Handle SD3 wake */ -- if ((status & BIT8(PCAL6408A_INPUT_SD3_WAKE)) != 0U) -- { -- LMM_MiscControlEvent(BRD_SM_CTRL_SD3_WAKE, -- ((data >> PCAL6408A_INPUT_SD3_WAKE) & 0x1U) + 1U); -- } -- -- /* Handle PCIe1 wake */ -- if ((status & BIT8(PCAL6408A_INPUT_PCIE1_WAKE)) != 0U) -- { -- LMM_MiscControlEvent(BRD_SM_CTRL_PCIE1_WAKE, -- ((data >> PCAL6408A_INPUT_PCIE1_WAKE) & 0x1U) + 1U); -- } -- -- /* Handle BT wake */ -- if ((status & BIT8(PCAL6408A_INPUT_BT_WAKE)) != 0U) -- { -- LMM_MiscControlEvent(BRD_SM_CTRL_BT_WAKE, -- ((data >> PCAL6408A_INPUT_BT_WAKE) & 0x1U) + 1U); -- } -- -- /* Handle PCIe2 wake */ -- if (((status & BIT8(PCAL6408A_INPUT_PCIE2_WAKE)) != 0U) -- && !g_pca2131Used) -- { -- LMM_MiscControlEvent(BRD_SM_CTRL_PCIE2_WAKE, -- ((data >> PCAL6408A_INPUT_PCIE2_WAKE) & 0x1U) + 1U); -- } -- -- /* Handle button */ -- if ((status & BIT8(PCAL6408A_INPUT_BUTTON)) != 0U) -- { -- LMM_MiscControlEvent(BRD_SM_CTRL_BUTTON, -- ((data >> PCAL6408A_INPUT_BUTTON) & 0x1U) + 1U); -- } -+ // Call pertinent LMM_MiscControlEvent() - } - -diff --git a/boards/ccimx95dvk/sm/brd_sm_control.h b/boards/ccimx95dvk/sm/brd_sm_control.h -index bf893782e1d7..12365e56d7e4 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_control.h -+++ b/boards/ccimx95dvk/sm/brd_sm_control.h -@@ -2,6 +2,7 @@ - ** ################################################################### - ** - ** Copyright 2023-2024 NXP -+** Copyright 2025 Digi International Inc. - ** - ** Redistribution and use in source and binary forms, with or without modification, - ** are permitted provided that the following conditions are met: -@@ -66,7 +67,7 @@ - /** @} */ - - /*! Number of board controls */ --#define BRD_SM_NUM_CTRL 7UL -+#define BRD_SM_NUM_CTRL 2UL - - /*! Total number of controls */ - #define SM_NUM_CTRL (DEV_SM_NUM_CTRL + BRD_SM_NUM_CTRL) -@@ -75,13 +76,8 @@ - * @name BRD_SM control domain indexes - */ - /** @{ */ --#define BRD_SM_CTRL_SD3_WAKE (DEV_SM_NUM_CTRL + 0U) /*!< PCAL6408A-0 */ --#define BRD_SM_CTRL_PCIE1_WAKE (DEV_SM_NUM_CTRL + 1U) /*!< PCAL6408A-4 */ --#define BRD_SM_CTRL_BT_WAKE (DEV_SM_NUM_CTRL + 2U) /*!< PCAL6408A-5 */ --#define BRD_SM_CTRL_PCIE2_WAKE (DEV_SM_NUM_CTRL + 3U) /*!< PCAL6408A-6 */ --#define BRD_SM_CTRL_BUTTON (DEV_SM_NUM_CTRL + 4U) /*!< PCAL6408A-7 */ --#define BRD_SM_CTRL_TEST (DEV_SM_NUM_CTRL + 5U) /*!< Test */ --#define BRD_SM_CTRL_PCA2131 (DEV_SM_NUM_CTRL + 6U) /*!< PCA2131 raw access */ -+#define BRD_SM_CTRL_TEST (DEV_SM_NUM_CTRL + 0U) /*!< Test */ -+#define BRD_SM_CTRL_PCA2131 (DEV_SM_NUM_CTRL + 1U) /*!< PCA2131 raw access */ - /** @} */ - - /* Types */ -diff --git a/boards/ccimx95dvk/sm/brd_sm_handlers.c b/boards/ccimx95dvk/sm/brd_sm_handlers.c -index 19ee28e93134..a42359f15e8b 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_handlers.c -+++ b/boards/ccimx95dvk/sm/brd_sm_handlers.c -@@ -2,6 +2,7 @@ - ** ################################################################### - ** - ** Copyright 2023-2025 NXP -+** Copyright 2025 Digi International Inc. - ** - ** Redistribution and use in source and binary forms, with or without modification, - ** are permitted provided that the following conditions are met: -@@ -48,23 +49,16 @@ - - /* I2C device addresses */ - #define BOARD_PF09_DEV_ADDR 0x08U --#define BOARD_PCAL6408A_DEV_ADDR 0x20U - #define BOARD_PF5301_DEV_ADDR 0x2AU - #define BOARD_PF5302_DEV_ADDR 0x29U - #define BOARD_PCA2131_DEV_ADDR 0x53U - --#define PCAL6408A_INPUT_PF53_ARM_PG 1U --#define PCAL6408A_INPUT_PF53_SOC_PG 2U --#define PCAL6408A_INPUT_PF09_INT 3U --#define PCAL6408A_INPUT_PCA2131_INT 6U -- - /* Local types */ - - /* Local variables */ - - /* Global variables */ - --PCAL6408A_Type g_pcal6408aDev; - PF09_Type g_pf09Dev; - PF53_Type g_pf5301Dev; - PF53_Type g_pf5302Dev; -@@ -238,34 +232,6 @@ int32_t BRD_SM_SerialDevicesInit(void) - return status; - } - --/*--------------------------------------------------------------------------*/ --/* Set bus expander interrupt mask */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BusExpMaskSet(uint8_t val, uint8_t mask) --{ -- int32_t status = SM_ERR_SUCCESS; -- static uint8_t cachedMask = PCAL6408A_INITIAL_MASK; -- uint8_t newMask = (cachedMask & ~mask); -- -- newMask |= val; -- -- /* Mask changed? */ -- if (cachedMask != newMask) -- { -- if (PCAL6408A_IntMaskSet(&g_pcal6408aDev, newMask)) -- { -- cachedMask = newMask; -- } -- else -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- -- /* Return status */ -- return status; --} -- - /*==========================================================================*/ - - /*--------------------------------------------------------------------------*/ -diff --git a/boards/ccimx95dvk/sm/brd_sm_handlers.h b/boards/ccimx95dvk/sm/brd_sm_handlers.h -index e34d52b50f7a..781a443e8444 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_handlers.h -+++ b/boards/ccimx95dvk/sm/brd_sm_handlers.h -@@ -2,6 +2,7 @@ - ** ################################################################### - ** - ** Copyright 2023-2024 NXP -+** Copyright 2025 Digi International Inc. - ** - ** Redistribution and use in source and binary forms, with or without modification, - ** are permitted provided that the following conditions are met: -@@ -52,16 +53,12 @@ - - #include "sm.h" - #include "dev_sm.h" --#include "fsl_pcal6408a.h" - #include "fsl_pf09.h" - #include "fsl_pf53.h" - #include "fsl_pca2131.h" - - /* Defines */ - --/*! Initial PCAL6408A interrupt mask */ --#define PCAL6408A_INITIAL_MASK 0xF7U -- - /*! Number of board IRQs participating dynamic prioritization */ - #define BOARD_NUM_IRQ_PRIO_IDX 1U - -@@ -72,9 +69,6 @@ - - /* External variables */ - --/*! Handle to access PCAL6408A */ --extern PCAL6408A_Type g_pcal6408aDev; -- - /*! Handle to access PF09 */ - extern PF09_Type g_pf09Dev; - -@@ -105,19 +99,6 @@ extern uint32_t g_pmicFaultFlags; - */ - int32_t BRD_SM_SerialDevicesInit(void); - --/*! -- * Enable/disable bus expander interrupts. -- * -- * @param[in] val Value to write -- * @param[in] mask Mask of bits to modify -- * -- * This function allows a caller to configure the bus expander. -- * interrupts. -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- */ --int32_t BRD_SM_BusExpMaskSet(uint8_t val, uint8_t mask); -- - /*! - * GPIO 1 interrupt 0 handler. - */ -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index afec8eb5b738..4af5cea789d9 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -345,7 +345,6 @@ CHANNEL db=2, xport=smt, check=crc32, rpc=scmi, \ - - # API - --BRD_SM_CTRL_BUTTON NOTIFY - BRD_SM_CTRL_PCA2131 ALL - BRD_SM_CTRL_TEST ALL - BRD_SM_RTC_PCA2131 ALL -@@ -532,11 +531,6 @@ CHANNEL db=1, xport=smt, rpc=scmi, type=p2a_notify - - AUDIO_PLL1 ALL - AUDIO_PLL2 ALL --BRD_SM_CTRL_BT_WAKE NOTIFY --BRD_SM_CTRL_BUTTON NOTIFY --BRD_SM_CTRL_PCIE1_WAKE NOTIFY --BRD_SM_CTRL_PCIE2_WAKE NOTIFY --BRD_SM_CTRL_SD3_WAKE NOTIFY - BRD_SM_RTC_PCA2131 PRIV - BRD_SM_SENSOR_TEMP_PF09 ALL - BRD_SM_SENSOR_TEMP_PF5301 SET -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -index 36cbb06126fe..d251f7910b39 100644 ---- a/configs/ccimx95dvk/config_scmi.h -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -72,7 +72,6 @@ - .clkPerms[DEV_SM_CLK_M7] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_TSTMR2] = SM_SCMI_PERM_ALL, \ - .cpuPerms[DEV_SM_CPU_M7P] = SM_SCMI_PERM_ALL, \ -- .ctrlPerms[BRD_SM_CTRL_BUTTON] = SM_SCMI_PERM_NOTIFY, \ - .ctrlPerms[BRD_SM_CTRL_PCA2131] = SM_SCMI_PERM_ALL, \ - .ctrlPerms[BRD_SM_CTRL_TEST] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPTMR2_0] = SM_SCMI_PERM_ALL, \ -@@ -314,11 +313,6 @@ - .clkPerms[DEV_SM_CLK_VIDEOPLL1_VCO] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_VPUDSP] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_XSPISLVROOT] = SM_SCMI_PERM_ALL, \ -- .ctrlPerms[BRD_SM_CTRL_BT_WAKE] = SM_SCMI_PERM_NOTIFY, \ -- .ctrlPerms[BRD_SM_CTRL_BUTTON] = SM_SCMI_PERM_NOTIFY, \ -- .ctrlPerms[BRD_SM_CTRL_PCIE1_WAKE] = SM_SCMI_PERM_NOTIFY, \ -- .ctrlPerms[BRD_SM_CTRL_PCIE2_WAKE] = SM_SCMI_PERM_NOTIFY, \ -- .ctrlPerms[BRD_SM_CTRL_SD3_WAKE] = SM_SCMI_PERM_NOTIFY, \ - .ctrlPerms[DEV_SM_CTRL_ADC_TEST] = SM_SCMI_PERM_ALL, \ - .ctrlPerms[DEV_SM_CTRL_MQS1_SETTINGS] = SM_SCMI_PERM_ALL, \ - .ctrlPerms[DEV_SM_CTRL_PDM_CLK_SEL] = SM_SCMI_PERM_ALL, \ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0008-ccimx95dvk-remove-PCA2123-RTC-from-EVK.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0008-ccimx95dvk-remove-PCA2123-RTC-from-EVK.patch deleted file mode 100644 index 84048c6b0..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0008-ccimx95dvk-remove-PCA2123-RTC-from-EVK.patch +++ /dev/null @@ -1,1197 +0,0 @@ -From: Hector Palacios -Date: Thu, 25 Sep 2025 11:41:51 +0200 -Subject: [PATCH 8/8] ccimx95dvk: remove PCA2123 RTC from EVK - -NXP used this external RTC on its 15x15 EVK. -This chip is not present on the DVK. - -Signed-off-by: Hector Palacios ---- - boards/ccimx95dvk/sm/Makefile | 11 +- - boards/ccimx95dvk/sm/brd_sm.h | 2 +- - boards/ccimx95dvk/sm/brd_sm_bbm.c | 671 ------------------------- - boards/ccimx95dvk/sm/brd_sm_bbm.h | 242 --------- - boards/ccimx95dvk/sm/brd_sm_control.c | 15 +- - boards/ccimx95dvk/sm/brd_sm_control.h | 3 +- - boards/ccimx95dvk/sm/brd_sm_handlers.c | 17 - - boards/ccimx95dvk/sm/brd_sm_handlers.h | 7 - - configs/ccimx95dvk.cfg | 3 - - configs/ccimx95dvk/config_scmi.h | 3 - - 10 files changed, 6 insertions(+), 968 deletions(-) - delete mode 100755 boards/ccimx95dvk/sm/brd_sm_bbm.c - delete mode 100755 boards/ccimx95dvk/sm/brd_sm_bbm.h - -diff --git a/boards/ccimx95dvk/sm/Makefile b/boards/ccimx95dvk/sm/Makefile -index db27ea922733..05fc7febba4c 100755 ---- a/boards/ccimx95dvk/sm/Makefile -+++ b/boards/ccimx95dvk/sm/Makefile -@@ -42,8 +42,7 @@ INCLUDE += \ - -I$(BOARD_DIR) \ - -I$(BOARD_DIR)/sm \ - -I$(COMPONENTS_DIR)/pf09 \ -- -I$(COMPONENTS_DIR)/pf53 \ -- -I$(COMPONENTS_DIR)/pca2131 -+ -I$(COMPONENTS_DIR)/pf53 - - VPATH += \ - $(BRD_SM_API_DIR) \ -@@ -51,8 +50,7 @@ VPATH += \ - $(BOARD_DIR) \ - $(BOARD_DIR)/sm \ - $(COMPONENTS_DIR)/pf09 \ -- $(COMPONENTS_DIR)/pf53 \ -- $(COMPONENTS_DIR)/pca2131 -+ $(COMPONENTS_DIR)/pf53 - - OBJS += \ - $(OUT)/board.o \ -@@ -61,8 +59,5 @@ OBJS += \ - $(OUT)/brd_sm_control.o \ - $(OUT)/brd_sm_sensor.o \ - $(OUT)/brd_sm_voltage.o \ -- $(OUT)/brd_sm_bbm.o \ - $(OUT)/fsl_pf09.o \ -- $(OUT)/fsl_pf53.o \ -- $(OUT)/fsl_pca2131.o -- -+ $(OUT)/fsl_pf53.o -diff --git a/boards/ccimx95dvk/sm/brd_sm.h b/boards/ccimx95dvk/sm/brd_sm.h -index ce758e1e4c64..0c8050646fba 100755 ---- a/boards/ccimx95dvk/sm/brd_sm.h -+++ b/boards/ccimx95dvk/sm/brd_sm.h -@@ -2,6 +2,7 @@ - ** ################################################################### - ** - ** Copyright 2023-2024 NXP -+** Copyright 2025 Digi International Inc. - ** - ** Redistribution and use in source and binary forms, with or without modification, - ** are permitted provided that the following conditions are met: -@@ -54,7 +55,6 @@ - #include "brd_sm_control.h" - #include "brd_sm_sensor.h" - #include "brd_sm_voltage.h" --#include "brd_sm_bbm.h" - #include "board.h" - #include "brd_sm_api.h" - -diff --git a/boards/ccimx95dvk/sm/brd_sm_bbm.c b/boards/ccimx95dvk/sm/brd_sm_bbm.c -deleted file mode 100755 -index 2b13931c7749..000000000000 ---- a/boards/ccimx95dvk/sm/brd_sm_bbm.c -+++ /dev/null -@@ -1,671 +0,0 @@ --/* --** ################################################################### --** --** Copyright 2025 NXP --** Copyright 2025 Digi International Inc. --** --** Redistribution and use in source and binary forms, with or without modification, --** are permitted provided that the following conditions are met: --** --** o Redistributions of source code must retain the above copyright notice, this list --** of conditions and the following disclaimer. --** --** o Redistributions in binary form must reproduce the above copyright notice, this --** list of conditions and the following disclaimer in the documentation and/or --** other materials provided with the distribution. --** --** o Neither the name of the copyright holder nor the names of its --** contributors may be used to endorse or promote products derived from this --** software without specific prior written permission. --** --** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND --** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED --** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE --** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR --** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES --** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; --** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON --** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT --** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS --** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --** --** --** ################################################################### --*/ -- --/*==========================================================================*/ --/* File containing the implementation of the PCA2131 RTC. */ --/*==========================================================================*/ -- --/* Note this code is an example. The conversion functions between date and -- seconds have not been fully tested to match The PCA2131 and calling -- agents. */ -- --/* Includes */ -- --#include "sm.h" --#include "brd_sm.h" --#include "lmm.h" -- --/* Local defines */ -- --/* Local types */ -- --/* Local variables */ -- --/* Local functions */ -- --static bool days2date(uint32_t days, uint32_t *year, uint32_t *month, -- uint32_t *day, uint32_t *weekday); --static void date2days(uint32_t year, uint32_t month, uint32_t day, -- uint32_t *days); -- --/*--------------------------------------------------------------------------*/ --/* Write RTC raw data */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BbmRtcWrite(uint32_t addr, uint32_t numVal, -- const uint32_t *val) --{ -- int32_t status = SM_ERR_SUCCESS; -- -- /* Check read size */ -- if (numVal > 24U) -- { -- status = SM_ERR_INVALID_PARAMETERS; -- } -- else -- { -- uint8_t buf[24]; -- -- /* Copy buffer (convert to 8-bit) */ -- for (uint32_t idx = 0U; idx < numVal; idx++) -- { -- buf[idx] = U32_U8(val[idx]); -- } -- -- /* Write data */ -- if (!PCA2131_RtcWrite(&g_pca2131Dev, U32_U8(addr), -- U32_U8(numVal), buf)) -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- -- /* Return status */ -- return status; --} -- --/*--------------------------------------------------------------------------*/ --/* Read RTC raw data */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BbmRtcRead(uint32_t addr, uint32_t numVal, uint32_t *val) --{ -- int32_t status = SM_ERR_SUCCESS; -- -- /* Check read size */ -- if (numVal > 24U) -- { -- status = SM_ERR_INVALID_PARAMETERS; -- } -- else -- { -- uint8_t buf[24] = { 0 }; -- -- /* Read data */ -- if (PCA2131_RtcRead(&g_pca2131Dev, U32_U8(addr), -- U32_U8(numVal), buf)) -- { -- /* Copy buffer (convert to 32-bit) */ -- for (uint32_t idx = 0U; idx < numVal; idx++) -- { -- val[idx] = (uint32_t) buf[idx]; -- } -- } -- else -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- -- /* Return status */ -- return status; --} -- --/*--------------------------------------------------------------------------*/ --/* Return RTC name */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BbmRtcNameGet(uint32_t rtcId, string *rtcNameAddr, -- int32_t *len) --{ -- int32_t status = SM_ERR_SUCCESS; -- static int32_t s_maxLen = 0; -- -- static string const s_name[BRD_SM_NUM_RTC] = -- { -- "pca2131" -- }; -- -- /* Get max string width */ -- DEV_SM_MaxStringGet(len, &s_maxLen, s_name, BRD_SM_NUM_RTC); -- -- if (rtcId < DEV_SM_NUM_RTC) -- { -- status = DEV_SM_BbmRtcNameGet(rtcId, rtcNameAddr, len); -- } -- else -- { -- /* Return pointer to name */ -- *rtcNameAddr = s_name[rtcId - DEV_SM_NUM_RTC]; -- } -- -- /* Return status */ -- return status; --} -- --/*--------------------------------------------------------------------------*/ --/* Return RTC info */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BbmRtcDescribe(uint32_t rtcId, uint32_t *secWidth, -- uint32_t *tickWidth, uint32_t *ticksPerSec) --{ -- int32_t status = SM_ERR_SUCCESS; -- -- if (rtcId < DEV_SM_NUM_RTC) -- { -- status = DEV_SM_BbmRtcDescribe(rtcId, secWidth, tickWidth, -- ticksPerSec); -- } -- else -- { -- /* Return RTC info */ -- *secWidth = 32U; -- *tickWidth = 39U; -- *ticksPerSec = 100U; -- } -- -- /* Return status */ -- return status; --} -- --/*--------------------------------------------------------------------------*/ --/* Set RTC time */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BbmRtcTimeSet(uint32_t rtcId, uint64_t val, bool ticks) --{ -- int32_t status = SM_ERR_SUCCESS; -- -- if (rtcId < DEV_SM_NUM_RTC) -- { -- status = DEV_SM_BbmRtcTimeSet(rtcId, val, ticks); -- } -- else -- { -- uint32_t year, month, day, hour, min, sec, hun, weekday; -- uint32_t days, hours, mins, secs; -- -- /* Convert to hundredths of seconds */ -- if (ticks) -- { -- uint64_t sec64, hun64; -- -- sec64 = val / 100U; -- hun64 = val - (sec64 * 100U); -- -- secs = U64_U32(sec64); -- hun = U64_U32(hun64); -- } -- else -- { -- hun = 0U; -- secs = U64_U32(val); -- } -- -- /* Calculate totals */ -- mins = secs / 60U; -- hours = secs / 3600U; -- days = secs / 86400U; -- -- /* Calculate time */ -- sec = secs % 60U; -- min = mins % 60U; -- hour = hours % 24U; -- -- /* Convert to date */ -- if (days2date(days, &year, &month, &day, &weekday) -- && (year <= 2069U)) -- { -- /* Convert year */ -- year %= 100U; -- -- /* Write RTC */ -- if (!PCA2131_RtcSet(&g_pca2131Dev, year, month, day, hour, -- min, sec, hun, weekday)) -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- else -- { -- status = SM_ERR_INVALID_PARAMETERS; -- } -- } -- -- if (status == SM_ERR_SUCCESS) -- { -- /* Enable battery */ -- (void) PCA2131_PowerModeSet(&g_pca2131Dev, 0U); -- } -- -- /* Return status */ -- return status; --} -- --/*--------------------------------------------------------------------------*/ --/* Get RTC time */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BbmRtcTimeGet(uint32_t rtcId, uint64_t *val, bool ticks) --{ -- int32_t status = SM_ERR_SUCCESS; -- -- if (rtcId < DEV_SM_NUM_RTC) -- { -- status = DEV_SM_BbmRtcTimeGet(rtcId, val, ticks); -- } -- else -- { -- uint32_t year, month, day, hour, min, sec, hun, weekday; -- -- /* Read RTC */ -- if (PCA2131_RtcGet(&g_pca2131Dev, &year, &month, &day, &hour, &min, -- &sec, &hun, &weekday)) -- { -- uint32_t days, secs; -- -- /* Convert year */ -- if (year >= 70U) -- { -- year = year + 1900U; -- } -- else -- { -- year = year + 2000U; -- } -- -- /* Convert to days */ -- date2days(year, month, day, &days); -- -- /* Calculate seconds */ -- secs = sec + (min * 60U) + (hour * 3600U); -- secs += (days * 86400U); -- -- /* Check time format */ -- if (ticks) -- { -- *val = (((uint64_t) secs) * 100U) + hun; -- } -- else -- { -- *val = ((uint64_t) secs); -- } -- } -- else -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- -- /* Return status */ -- return status; --} -- --/*--------------------------------------------------------------------------*/ --/* Get BBM RTC state */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BbmRtcStateGet(uint32_t rtcId, uint32_t *state) --{ -- int32_t status = SM_ERR_SUCCESS; -- -- if (rtcId < DEV_SM_NUM_RTC) -- { -- status = DEV_SM_BbmRtcStateGet(rtcId, state); -- } -- else -- { -- bool st; -- -- /* Default state */ -- *state = 0U; -- -- /* Enable battery */ -- (void) PCA2131_PowerModeSet(&g_pca2131Dev, 0U); -- -- /* Get battery state */ -- if (PCA2131_TimeStatusGet(&g_pca2131Dev, &st)) -- { -- if (st) -- { -- *state |= LMM_BBM_STATE_RESET; -- } -- } -- else -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- -- /* Get battery state */ -- if (PCA2131_BattStatusGet(&g_pca2131Dev, &st)) -- { -- if (st) -- { -- *state |= LMM_BBM_STATE_BATT_LOW; -- } -- } -- else -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- -- /* Return status */ -- return status; --} -- --/*--------------------------------------------------------------------------*/ --/* Set RTC alarm */ --/*--------------------------------------------------------------------------*/ --int32_t BRD_SM_BbmRtcAlarmSet(uint32_t rtcId, bool enable, uint64_t val) --{ -- int32_t status = SM_ERR_SUCCESS; -- -- if (rtcId < DEV_SM_NUM_RTC) -- { -- status = DEV_SM_BbmRtcAlarmSet(rtcId, enable, val); -- } -- else -- { -- /* Enable? */ -- if (enable) -- { -- uint32_t year, month, day, hour, min, sec, weekday; -- uint32_t days, hours, mins, secs; -- -- /* Convert to seconds */ -- secs = U64_U32(val); -- -- /* Calculate totals */ -- mins = secs / 60U; -- hours = secs / 3600U; -- days = secs / 86400U; -- -- /* Calculate time */ -- sec = secs % 60U; -- min = mins % 60U; -- hour = hours % 24U; -- -- /* Convert to date */ -- if (days2date(days, &year, &month, &day, &weekday) -- && (year <= 2069U)) -- { -- /* Convert year */ -- year %= 100U; -- -- /* Write to RTC */ -- if (PCA2131_AlarmSet(&g_pca2131Dev, day, hour, min, sec, -- weekday)) -- { -- /* Enable interrupt */ -- if (PCA2131_IntEnable(&g_pca2131Dev, true)) -- { -- } -- else -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- } -- else -- { -- status = SM_ERR_INVALID_PARAMETERS; -- } -- -- /* Track if enabled for PCA2131 use */ -- if (status == SM_ERR_SUCCESS) -- { -- g_pca2131Used = true; -- } -- } -- else -- { -- /* Disable interrupt */ -- if (PCA2131_IntEnable(&g_pca2131Dev, false)) -- { -- } -- else -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- } -- -- /* Return status */ -- return status; --} -- --/*--------------------------------------------------------------------------*/ --/* PCA2131 interrupt handler */ --/*--------------------------------------------------------------------------*/ --void BRD_SM_BbmHandler(void) --{ -- /* Handle alarm */ -- LMM_BbmRtcAlarmEvent(BRD_SM_RTC_PCA2131); -- -- /* Clear status flags */ -- (void) PCA2131_IntClear(&g_pca2131Dev); --} -- --/*==========================================================================*/ -- --/*--------------------------------------------------------------------------*/ --/* Convert days since 1-1-1970 to date/time */ --/*--------------------------------------------------------------------------*/ --static bool days2date(uint32_t days, uint32_t *year, uint32_t *month, -- uint32_t *day, uint32_t *weekday) --{ -- bool rc = true; -- uint32_t newDays = 0U; -- uint32_t era = 0U; -- uint32_t doe = 0U; -- uint32_t yoe = 0U; -- uint32_t doy = 0U; -- uint32_t moy = 0U; -- -- /* Check days value doesn't wrap */ -- if (days <= (UINT32_MAX - 719468U)) -- { -- /* Adjust to 1-1-1970) */ -- newDays = days + 719468U; -- } -- else -- { -- /* Set the return code incase value wraps */ -- rc = false; -- } -- -- if (rc) -- { -- /* Calculate the era */ -- era = newDays / 146097U; -- -- /* Check the expression doesn't wrap due to negative value */ -- if (newDays >= (era * 146097U)) -- { -- /* Calculate the day in the era */ -- doe = newDays - (era * 146097U); -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- -- if (rc) -- { -- /* Check the expression doesn't wrap due to negative value */ -- if (doe >= (doe / 1460U)) -- { -- /* Calculate the year of era */ -- yoe = (doe - (doe / 1460U) + (doe / 36524U)); -- -- /* Check the expression doesn't wrap due to negative value */ -- if (yoe >= (doe / 146096U)) -- { -- yoe -= (doe / 146096U); -- yoe /= 365U; -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- -- if (rc) -- { -- /* Check the expression doesn't wrap due to negative value */ -- if (yoe <= (UINT32_MAX - (era * 400U))) -- { -- /* Calculate year */ -- *year = yoe + (era * 400U); -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- -- if (rc) -- { -- /* Check the expression doesn't wrap due to negative value */ -- if (doe >= (365U * yoe)) -- { -- /* Calculate day of the year */ -- doy = doe - (365U * yoe); -- -- /* Check the expression doesn't wrap due to negative value */ -- if (doy >= (yoe / 4U)) -- { -- doy -= (yoe / 4U); -- doy += (yoe / 100U); -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- -- if (rc) -- { -- /* Check the expression doesn't wrap due to negative value */ -- if (doy <= (UINT32_MAX / 5U)) -- { -- /* Calculate month of year */ -- moy = ((5U * doy) + 2U) / 153U; -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- -- -- if (rc) -- { -- /* Check the expression doesn't wrap due to negative value */ -- if (moy <= ((UINT32_MAX - 2U) / 153U)) -- { -- /* Calculate day */ -- *day = (((153U * moy) + 2U) / 5U) - 1U; -- if (doy >= *day) -- { -- *day = doy - *day; -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- else -- { -- /* Set the return code if the expression value wraps */ -- rc = false; -- } -- } -- -- if (rc) -- { -- /* Calculate month */ -- *month= (moy < 10U) ? (moy + 3U) : (moy - 9U); -- -- /* Calculate day of the week */ -- *weekday = (days + 4U) % 7U; -- -- /* Adjust year */ -- *year += (*month <= 2U) ? 1U : 0U; -- } -- -- /* Return code */ -- return rc; --} -- --/*--------------------------------------------------------------------------*/ --/* Convert date/time to days since 1-1-1970 */ --/*--------------------------------------------------------------------------*/ --static void date2days(uint32_t year, uint32_t month, uint32_t day, -- uint32_t *days) --{ -- uint32_t newYear; -- uint32_t era; -- uint32_t doe; -- uint32_t yoe; -- uint32_t doy; -- uint32_t moy; -- -- /* Adjust year */ -- newYear = year - ((month <= 2U) ? 1U : 0U); -- -- /* Calculate era */ -- era = newYear / 400U; -- -- /* Calculate the year of era */ -- yoe = newYear - (era * 400U); -- -- /* Calculate month of year */ -- moy = (month > 2U) ? (month - 3U) : (month + 9U); -- -- /* Calculate day of the year */ -- doy = (((153U * moy) + 2U) / 5U) + (day - 1U); -- -- /* Calculate the day in the era */ -- doe = (yoe * 365U) + (yoe / 4U) - (yoe / 100U) + doy; -- -- /* Calculate days */ -- *days = (era * 146097U) + doe - 719468U; --} -- -diff --git a/boards/ccimx95dvk/sm/brd_sm_bbm.h b/boards/ccimx95dvk/sm/brd_sm_bbm.h -deleted file mode 100755 -index a96a8e1cc901..000000000000 ---- a/boards/ccimx95dvk/sm/brd_sm_bbm.h -+++ /dev/null -@@ -1,242 +0,0 @@ --/* --** ################################################################### --** --** Copyright 2024 NXP --** --** Redistribution and use in source and binary forms, with or without modification, --** are permitted provided that the following conditions are met: --** --** o Redistributions of source code must retain the above copyright notice, this list --** of conditions and the following disclaimer. --** --** o Redistributions in binary form must reproduce the above copyright notice, this --** list of conditions and the following disclaimer in the documentation and/or --** other materials provided with the distribution. --** --** o Neither the name of the copyright holder nor the names of its --** contributors may be used to endorse or promote products derived from this --** software without specific prior written permission. --** --** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND --** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED --** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE --** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR --** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES --** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; --** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON --** ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT --** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS --** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --** --** --** ################################################################### --*/ -- --/*==========================================================================*/ --/*! -- * @addtogroup BRD_SM_MX95EVK -- * @{ -- * -- * @file -- * @brief -- * -- * Header file containing the SM API for the board PCA2131. -- */ --/*==========================================================================*/ -- --#ifndef BRD_SM_BBM_H --#define BRD_SM_BBM_H -- --/* Includes */ -- --#include "sm.h" --#include "dev_sm.h" --#include "fsl_pca2131.h" -- --/* Defines */ -- --/*! -- * @name Board redirection defines -- * @{ -- */ --#define SM_BBMRTCNAMEGET BRD_SM_BbmRtcNameGet /*!< RTC name */ --#define SM_BBMRTCDESCRIBE BRD_SM_BbmRtcDescribe /*!< RTC describe */ --#define SM_BBMRTCTIMESET BRD_SM_BbmRtcTimeSet /*!< RTC time set */ --#define SM_BBMRTCTIMEGET BRD_SM_BbmRtcTimeGet /*!< RTC time get */ --#define SM_BBMRTCSTATEGET BRD_SM_BbmRtcStateGet /*!< RTC state get */ --#define SM_BBMRTCALARMSET BRD_SM_BbmRtcAlarmSet /*!< RTC alarm set */ --/** @} */ -- --/*! Number of board RTC */ --#define BRD_SM_NUM_RTC 1UL -- --/*! Total number of RTC */ --#define SM_NUM_RTC (DEV_SM_NUM_RTC + BRD_SM_NUM_RTC) -- --/*! -- * @name BRD_SM bbm domain indexes -- */ --/** @{ */ --#define BRD_SM_RTC_PCA2131 (BRD_SM_NUM_RTC + 0U) /*!< PCA2131 RTC */ --/** @} */ -- --/* Types */ -- --/* Functions */ -- --/*! -- * @name Board sensor functions -- * @{ -- */ -- --/*! -- * Read raw byte data from the RTC. -- * -- * @param[in] addr I2C address to read -- * @param[in] numVal Number of bytes to read -- * @param[out] val Return pointer for data -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- * -- * Return errors (see @ref STATUS "SM error codes"): -- * - ::SM_ERR_INVALID_PARAMETERS: if \a numVal is invalid. -- * - ::SM_ERR_HARDWARE_ERROR: if I2C transfer fails. -- */ --int32_t BRD_SM_BbmRtcWrite(uint32_t addr, uint32_t numVal, -- const uint32_t *val); -- --/*! -- * Write raw byte data to the RTC. -- * -- * @param[in] addr I2C address to write -- * @param[in] numVal Number of bytes to write -- * @param[in] val Pointer to data -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- * -- * Return errors (see @ref STATUS "SM error codes"): -- * - ::SM_ERR_INVALID_PARAMETERS: if \a numVal is invalid. -- * - ::SM_ERR_HARDWARE_ERROR: if I2C transfer fails. -- */ --int32_t BRD_SM_BbmRtcRead(uint32_t addr, uint32_t numVal, uint32_t *val); -- --/*! -- * Get a board RTC name. -- * -- * @param[in] rtcId RTC name to get -- * @param[out] rtcNameAddr Return pointer to name -- * @param[out] len Return max length of all RTC names -- * -- * This function allows the caller to get the name of an RTC. -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- * -- * Return errors (see @ref STATUS "SM error codes"): -- * - ::SM_ERR_NOT_FOUND: if \a rtcId is invalid. -- */ --int32_t BRD_SM_BbmRtcNameGet(uint32_t rtcId, string *rtcNameAddr, -- int32_t *len); -- --/*! -- * Get a board RTC description. -- * -- * @param[in] rtcId RTC description to get -- * @param[out] secWidth Return pointer to seconds width -- * @param[out] tickWidth Return pointer to tick width -- * @param[out] ticksPerSec Return pointer to ticks per second -- * -- * This function allows the caller to get the description of an RTC. -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- * -- * Return errors (see @ref STATUS "SM error codes"): -- * - ::SM_ERR_NOT_FOUND: if \a rtcId is invalid. -- */ --int32_t BRD_SM_BbmRtcDescribe(uint32_t rtcId, uint32_t *secWidth, -- uint32_t *tickWidth, uint32_t *ticksPerSec); -- --/*! -- * Set a board RTC time. -- * -- * @param[in] rtcId Identifier of the RTC -- * @param[in] val Time in seconds/ticks to write to the RTC -- * @param[in] ticks true = ticks, false = seconds -- * -- * This function allows a caller to set the RTC time. Time can be set in units -- * of ticks or seconds. -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- * -- * Return errors (see @ref STATUS "SM error codes"): -- * - ::SM_ERR_SUCCESS: if the RTC time was successfully set. -- * - ::SM_ERR_NOT_FOUND: if \a rtcId pertains to a non-existent RTC. -- * - ::SM_ERR_INVALID_PARAMETERS: if the time is not valid (beyond the -- * range of the RTC). -- */ --int32_t BRD_SM_BbmRtcTimeSet(uint32_t rtcId, uint64_t val, bool ticks); -- --/*! -- * Get a board RTC time. -- * -- * @param[in] rtcId Identifier of the RTC -- * @param[out] val Time in seconds/ticks read from the RTC -- * @param[in] ticks true = ticks, false = seconds -- * -- * This function allows a caller to read the RTC time. Time can be read in -- * units of ticks or seconds. -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- * -- * Return errors (see @ref STATUS "SM error codes"): -- * - ::SM_ERR_SUCCESS: if the RTC time was successfully read. -- * - ::SM_ERR_NOT_FOUND: if \a rtcId pertains to a non-existent RTC. -- */ --int32_t BRD_SM_BbmRtcTimeGet(uint32_t rtcId, uint64_t *val, bool ticks); -- --/*! -- * Get a board RTC state. -- * -- * @param[in] rtcId Identifier of the RTC -- * @param[out] state Bit mask of state flags -- * -- * This function allows a caller to read the RTC state. -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- * -- * Return errors (see @ref STATUS "SM error codes"): -- * - ::SM_ERR_SUCCESS: if the RTC state was successfully read. -- * - ::SM_ERR_NOT_FOUND: if \a rtcId pertains to a non-existent RTC. -- */ --int32_t BRD_SM_BbmRtcStateGet(uint32_t rtcId, uint32_t *state); -- --/*! -- * Set a board RTC alarm. -- * -- * @param[in] rtcId Identifier of the RTC -- * @param[in] enable Enable flag (1=enabled, 0=disabled) -- * @param[in] val Alarm time in seconds to write to the RTC -- * -- * This function allows a caller to enable/disable and set the time for the RTC -- * alarm. The alarm can be set in seconds only. -- * -- * @return Returns the status (::SM_ERR_SUCCESS = success). -- * -- * Return errors (see @ref STATUS "SM error codes"): -- * - ::SM_ERR_SUCCESS: if the alarm was successfully set. -- * - ::SM_ERR_NOT_FOUND: if \a rtcId pertains to a non-existent RTC. -- * - ::SM_ERR_INVALID_PARAMETERS: if the time is not valid (beyond the -- * range of the RTC alarm). -- */ --int32_t BRD_SM_BbmRtcAlarmSet(uint32_t rtcId, bool enable, uint64_t val); -- --/*! -- * Handle PCA2131 interrupt. -- */ --void BRD_SM_BbmHandler(void); -- --/** @} */ -- --#endif /* BRD_SM_BBM_H */ -- --/** @} */ -- -diff --git a/boards/ccimx95dvk/sm/brd_sm_control.c b/boards/ccimx95dvk/sm/brd_sm_control.c -index 8484a6895a3d..564159c1ad7b 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_control.c -+++ b/boards/ccimx95dvk/sm/brd_sm_control.c -@@ -65,10 +65,6 @@ int32_t BRD_SM_ControlSet(uint32_t ctrlId, uint32_t numVal, - { - status = DEV_SM_ControlSet(ctrlId, numVal, val); - } -- else if (ctrlId == BRD_SM_CTRL_PCA2131) -- { -- status = SM_ERR_NOT_SUPPORTED; -- } - else if (ctrlId == BRD_SM_CTRL_TEST) - { - /* Test response to an reported SM error */ -@@ -103,8 +99,7 @@ int32_t BRD_SM_ControlGet(uint32_t ctrlId, uint32_t *numRtn, uint32_t *rtn) - { - status = DEV_SM_ControlGet(ctrlId, numRtn, rtn); - } -- else if ((ctrlId == BRD_SM_CTRL_PCA2131) -- || (ctrlId == BRD_SM_CTRL_TEST)) -+ else if (ctrlId == BRD_SM_CTRL_TEST) - { - *numRtn = 0U; - status = SM_ERR_NOT_SUPPORTED; -@@ -140,10 +135,6 @@ int32_t BRD_SM_ControlExtSet(uint32_t ctrlId, uint32_t addr, - { - status = DEV_SM_ControlExtSet(ctrlId, addr, numVal, val); - } -- else if (ctrlId == BRD_SM_CTRL_PCA2131) -- { -- status = BRD_SM_BbmRtcWrite(addr, numVal, val); -- } - else - { - status = SM_ERR_NOT_SUPPORTED; -@@ -174,10 +165,6 @@ int32_t BRD_SM_ControlExtGet(uint32_t ctrlId, uint32_t addr, - { - status = DEV_SM_ControlExtGet(ctrlId, addr, numRtn, rtn); - } -- else if (ctrlId == BRD_SM_CTRL_PCA2131) -- { -- status = BRD_SM_BbmRtcRead(addr, numRtn, rtn); -- } - else - { - status = SM_ERR_NOT_SUPPORTED; -diff --git a/boards/ccimx95dvk/sm/brd_sm_control.h b/boards/ccimx95dvk/sm/brd_sm_control.h -index 12365e56d7e4..be764f4cb1e7 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_control.h -+++ b/boards/ccimx95dvk/sm/brd_sm_control.h -@@ -67,7 +67,7 @@ - /** @} */ - - /*! Number of board controls */ --#define BRD_SM_NUM_CTRL 2UL -+#define BRD_SM_NUM_CTRL 1UL - - /*! Total number of controls */ - #define SM_NUM_CTRL (DEV_SM_NUM_CTRL + BRD_SM_NUM_CTRL) -@@ -77,7 +77,6 @@ - */ - /** @{ */ - #define BRD_SM_CTRL_TEST (DEV_SM_NUM_CTRL + 0U) /*!< Test */ --#define BRD_SM_CTRL_PCA2131 (DEV_SM_NUM_CTRL + 1U) /*!< PCA2131 raw access */ - /** @} */ - - /* Types */ -diff --git a/boards/ccimx95dvk/sm/brd_sm_handlers.c b/boards/ccimx95dvk/sm/brd_sm_handlers.c -index a42359f15e8b..1c02541a589b 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_handlers.c -+++ b/boards/ccimx95dvk/sm/brd_sm_handlers.c -@@ -51,7 +51,6 @@ - #define BOARD_PF09_DEV_ADDR 0x08U - #define BOARD_PF5301_DEV_ADDR 0x2AU - #define BOARD_PF5302_DEV_ADDR 0x29U --#define BOARD_PCA2131_DEV_ADDR 0x53U - - /* Local types */ - -@@ -62,7 +61,6 @@ - PF09_Type g_pf09Dev; - PF53_Type g_pf5301Dev; - PF53_Type g_pf5302Dev; --PCA2131_Type g_pca2131Dev; - - irq_prio_info_t g_brdIrqPrioInfo[BOARD_NUM_IRQ_PRIO_IDX] = - { -@@ -75,8 +73,6 @@ irq_prio_info_t g_brdIrqPrioInfo[BOARD_NUM_IRQ_PRIO_IDX] = - } - }; - --bool g_pca2131Used = false; -- - uint32_t g_pmicFaultFlags = 0U; - - /* Local functions */ -@@ -215,19 +211,6 @@ int32_t BRD_SM_SerialDevicesInit(void) - } - } - -- if (status == SM_ERR_SUCCESS) -- { -- /* Fill in PCA2131 RTC handle */ -- g_pca2131Dev.i2cBase = s_i2cBases[BOARD_I2C_INSTANCE]; -- g_pca2131Dev.devAddr = BOARD_PCA2131_DEV_ADDR; -- -- /* Initialize PCA2131 RTC */ -- if (!PCA2131_Init(&g_pca2131Dev)) -- { -- status = SM_ERR_HARDWARE_ERROR; -- } -- } -- - /* Return status */ - return status; - } -diff --git a/boards/ccimx95dvk/sm/brd_sm_handlers.h b/boards/ccimx95dvk/sm/brd_sm_handlers.h -index 781a443e8444..967d41d61b53 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_handlers.h -+++ b/boards/ccimx95dvk/sm/brd_sm_handlers.h -@@ -55,7 +55,6 @@ - #include "dev_sm.h" - #include "fsl_pf09.h" - #include "fsl_pf53.h" --#include "fsl_pca2131.h" - - /* Defines */ - -@@ -78,15 +77,9 @@ extern PF53_Type g_pf5301Dev; - /*! Handle to access PF5302 */ - extern PF53_Type g_pf5302Dev; - --/*! Handle to access PCA2131 */ --extern PCA2131_Type g_pca2131Dev; -- - /*! Array of dynamic priority info for board IRQs */ - extern irq_prio_info_t g_brdIrqPrioInfo[BOARD_NUM_IRQ_PRIO_IDX]; - --/*! Indicator if bus expander bit[6] is used for the PF2131 RTC */ --extern bool g_pca2131Used; -- - /*! Fault flags from the PMICs */ - extern uint32_t g_pmicFaultFlags; - -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index 4af5cea789d9..b324e0fb0e45 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -345,9 +345,7 @@ CHANNEL db=2, xport=smt, check=crc32, rpc=scmi, \ - - # API - --BRD_SM_CTRL_PCA2131 ALL - BRD_SM_CTRL_TEST ALL --BRD_SM_RTC_PCA2131 ALL - BRD_SM_SENSOR_TEMP_PF09 SET - BRD_SM_SENSOR_TEMP_PF5301 SET - BRD_SM_SENSOR_TEMP_PF5302 SET -@@ -531,7 +529,6 @@ CHANNEL db=1, xport=smt, rpc=scmi, type=p2a_notify - - AUDIO_PLL1 ALL - AUDIO_PLL2 ALL --BRD_SM_RTC_PCA2131 PRIV - BRD_SM_SENSOR_TEMP_PF09 ALL - BRD_SM_SENSOR_TEMP_PF5301 SET - BRD_SM_SENSOR_TEMP_PF5302 SET -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -index d251f7910b39..b23958f33138 100644 ---- a/configs/ccimx95dvk/config_scmi.h -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -72,7 +72,6 @@ - .clkPerms[DEV_SM_CLK_M7] = SM_SCMI_PERM_ALL, \ - .clkPerms[DEV_SM_CLK_TSTMR2] = SM_SCMI_PERM_ALL, \ - .cpuPerms[DEV_SM_CPU_M7P] = SM_SCMI_PERM_ALL, \ -- .ctrlPerms[BRD_SM_CTRL_PCA2131] = SM_SCMI_PERM_ALL, \ - .ctrlPerms[BRD_SM_CTRL_TEST] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPTMR2_0] = SM_SCMI_PERM_ALL, \ - .daisyPerms[DEV_SM_DAISY_LPTMR2_1] = SM_SCMI_PERM_ALL, \ -@@ -87,7 +86,6 @@ - .pdPerms[DEV_SM_PD_M7] = SM_SCMI_PERM_ALL, \ - .perfPerms[DEV_SM_PERF_M7] = SM_SCMI_PERM_ALL, \ - .perlpiPerms[DEV_SM_PERLPI_WDOG5] = SM_SCMI_PERM_ALL, \ -- .rtcPerms[BRD_SM_RTC_PCA2131] = SM_SCMI_PERM_ALL, \ - .rtcPerms[DEV_SM_RTC_BBNSM] = SM_SCMI_PERM_PRIV, \ - .sensorPerms[BRD_SM_SENSOR_TEMP_PF09] = SM_SCMI_PERM_SET, \ - .sensorPerms[BRD_SM_SENSOR_TEMP_PF5301] = SM_SCMI_PERM_SET, \ -@@ -605,7 +603,6 @@ - .pinPerms[DEV_SM_PIN_XSPI1_SCLK] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_XSPI1_SS0_B] = SM_SCMI_PERM_ALL, \ - .pinPerms[DEV_SM_PIN_XSPI1_SS1_B] = SM_SCMI_PERM_ALL, \ -- .rtcPerms[BRD_SM_RTC_PCA2131] = SM_SCMI_PERM_PRIV, \ - .rtcPerms[DEV_SM_RTC_BBNSM] = SM_SCMI_PERM_ALL, \ - .sensorPerms[BRD_SM_SENSOR_TEMP_PF09] = SM_SCMI_PERM_ALL, \ - .sensorPerms[BRD_SM_SENSOR_TEMP_PF5301] = SM_SCMI_PERM_SET, \ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0009-ccimx95-change-names-of-voltage-regulators.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0009-ccimx95-change-names-of-voltage-regulators.patch deleted file mode 100644 index e64e38706..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0009-ccimx95-change-names-of-voltage-regulators.patch +++ /dev/null @@ -1,274 +0,0 @@ -From: Hector Palacios -Date: Mon, 29 Sep 2025 13:02:02 +0200 -Subject: [PATCH 09/11] ccimx95: change names of voltage regulators - -Change the names of voltage regulators for easier identification. -Use the PMIC regulator (SW1, SW2, LDO1...) and then the name of the power -rail used in the SOM. - -Signed-off-by: Hector Palacios ---- - boards/ccimx95dvk/sm/brd_sm_voltage.c | 85 ++++++++++++++------------- - boards/ccimx95dvk/sm/brd_sm_voltage.h | 15 ++--- - 2 files changed, 51 insertions(+), 49 deletions(-) - -diff --git a/boards/ccimx95dvk/sm/brd_sm_voltage.c b/boards/ccimx95dvk/sm/brd_sm_voltage.c -index b81ffd970294..d7e7c9b3ea27 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_voltage.c -+++ b/boards/ccimx95dvk/sm/brd_sm_voltage.c -@@ -2,6 +2,7 @@ - ** ################################################################### - ** - ** Copyright 2023-2025 NXP -+** Copyright 2025 Digi International Inc. - ** - ** Redistribution and use in source and binary forms, with or without modification, - ** are permitted provided that the following conditions are met: -@@ -63,13 +64,13 @@ int32_t BRD_SM_VoltageNameGet(uint32_t domainId, string *voltNameAddr, - - static string const s_name[BRD_SM_NUM_VOLT] = - { -- "vdd_gpio_3p3", -- "vdd_ana_0p8", -- "vdd_gpio_1p8", -- "vddq_ddr", -- "vdd2_ddr", -- "sd_card", -- "nvcc_sd2" -+ "vdd_3v3", -+ "vdd_ana_0v8", -+ "vdd_1v8", -+ "lpd5_vddq", -+ "lpd5_vdd2", -+ "vdd_ldo1", -+ "vdd_sdio2" - }; - - /* Get max string width */ -@@ -117,25 +118,25 @@ int32_t BRD_SM_VoltageDescribe(uint32_t domainId, - case DEV_SM_VOLT_ARM: - status = DEV_SM_VoltageDescribe(domainId, range); - break; -- case BRD_SM_VOLT_VDD_GPIO_3P3: -+ case BRD_SM_VOLT_SW1_VDD_3V3: - rc = PF09_RegulatorInfoGet(PF09_REG_SW1, &info); - break; -- case BRD_SM_VOLT_VDD_ANA_0P8: -+ case BRD_SM_VOLT_SW2_VDD_ANA_0V8: - rc = PF09_RegulatorInfoGet(PF09_REG_SW2, &info); - break; -- case BRD_SM_VOLT_VDD_GPIO_1P8: -+ case BRD_SM_VOLT_SW3_VDD_1V8: - rc = PF09_RegulatorInfoGet(PF09_REG_SW3, &info); - break; -- case BRD_SM_VOLT_VDDQ_DDR: -+ case BRD_SM_VOLT_SW4_LPD5_VDDQ: - rc = PF09_RegulatorInfoGet(PF09_REG_SW4, &info); - break; -- case BRD_SM_VOLT_VDD2_DDR: -+ case BRD_SM_VOLT_SW5_LPD5_VDD2: - rc = PF09_RegulatorInfoGet(PF09_REG_SW5, &info); - break; -- case BRD_SM_VOLT_SD_CARD: -+ case BRD_SM_VOLT_LDO1_VDD_LDO1: - rc = PF09_RegulatorInfoGet(PF09_REG_LDO1, &info); - break; -- case BRD_SM_VOLT_NVCC_SD2: -+ case BRD_SM_VOLT_LDO2_VDD_SDIO2: - rc = PF09_RegulatorInfoGet(PF09_REG_LDO2, &info); - break; - default: -@@ -206,31 +207,31 @@ int32_t BRD_SM_VoltageModeSet(uint32_t domainId, uint8_t voltMode) - s_modeArm = voltMode; - } - break; -- case BRD_SM_VOLT_VDD_GPIO_3P3: -+ case BRD_SM_VOLT_SW1_VDD_3V3: - rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW1, PF09_STATE_VRUN, - mode); - break; -- case BRD_SM_VOLT_VDD_ANA_0P8: -+ case BRD_SM_VOLT_SW2_VDD_ANA_0V8: - rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW2, PF09_STATE_VRUN, - mode); - break; -- case BRD_SM_VOLT_VDD_GPIO_1P8: -+ case BRD_SM_VOLT_SW3_VDD_1V8: - rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW3, PF09_STATE_VRUN, - mode); - break; -- case BRD_SM_VOLT_VDDQ_DDR: -+ case BRD_SM_VOLT_SW4_LPD5_VDDQ: - rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW4, PF09_STATE_VRUN, - mode); - break; -- case BRD_SM_VOLT_VDD2_DDR: -+ case BRD_SM_VOLT_SW5_LPD5_VDD2: - rc = PF09_SwModeSet(&g_pf09Dev, PF09_REG_SW5, PF09_STATE_VRUN, - mode); - break; -- case BRD_SM_VOLT_SD_CARD: -+ case BRD_SM_VOLT_LDO1_VDD_LDO1: - rc = PF09_LdoEnable(&g_pf09Dev, PF09_REG_LDO1, PF09_STATE_VRUN, - enable); - break; -- case BRD_SM_VOLT_NVCC_SD2: -+ case BRD_SM_VOLT_LDO2_VDD_SDIO2: - rc = PF09_LdoEnable(&g_pf09Dev, PF09_REG_LDO2, PF09_STATE_VRUN, - enable); - break; -@@ -271,36 +272,36 @@ int32_t BRD_SM_VoltageModeGet(uint32_t domainId, uint8_t *voltMode) - rc = PF09_GpioCtrlGet(&g_pf09Dev, PF09_GPIO4, PF53_STATE_VRUN, - &enable); - break; -- case BRD_SM_VOLT_VDD_GPIO_3P3: -+ case BRD_SM_VOLT_SW1_VDD_3V3: - rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW1, PF09_STATE_VRUN, - &mode); - enable = (mode != PF09_SW_MODE_OFF); - break; -- case BRD_SM_VOLT_VDD_ANA_0P8: -+ case BRD_SM_VOLT_SW2_VDD_ANA_0V8: - rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW2, PF09_STATE_VRUN, - &mode); - enable = (mode != PF09_SW_MODE_OFF); - break; -- case BRD_SM_VOLT_VDD_GPIO_1P8: -+ case BRD_SM_VOLT_SW3_VDD_1V8: - rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW3, PF09_STATE_VRUN, - &mode); - enable = (mode != PF09_SW_MODE_OFF); - break; -- case BRD_SM_VOLT_VDDQ_DDR: -+ case BRD_SM_VOLT_SW4_LPD5_VDDQ: - rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW4, PF09_STATE_VRUN, - &mode); - enable = (mode != PF09_SW_MODE_OFF); - break; -- case BRD_SM_VOLT_VDD2_DDR: -+ case BRD_SM_VOLT_SW5_LPD5_VDD2: - rc = PF09_SwModeGet(&g_pf09Dev, PF09_REG_SW5, PF09_STATE_VRUN, - &mode); - enable = (mode != PF09_SW_MODE_OFF); - break; -- case BRD_SM_VOLT_SD_CARD: -+ case BRD_SM_VOLT_LDO1_VDD_LDO1: - rc = PF09_LdoIsEnabled(&g_pf09Dev, PF09_REG_LDO1, PF09_STATE_VRUN, - &enable); - break; -- case BRD_SM_VOLT_NVCC_SD2: -+ case BRD_SM_VOLT_LDO2_VDD_SDIO2: - rc = PF09_LdoIsEnabled(&g_pf09Dev, PF09_REG_LDO2, PF09_STATE_VRUN, - &enable); - break; -@@ -359,31 +360,31 @@ int32_t BRD_SM_VoltageLevelSet(uint32_t domainId, int32_t voltageLevel) - s_levelArm = (int32_t) level; - rc = true; - break; -- case BRD_SM_VOLT_VDD_GPIO_3P3: -+ case BRD_SM_VOLT_SW1_VDD_3V3: - rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW1, PF09_STATE_VRUN, - level); - break; -- case BRD_SM_VOLT_VDD_ANA_0P8: -+ case BRD_SM_VOLT_SW2_VDD_ANA_0V8: - rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW2, PF09_STATE_VRUN, - level); - break; -- case BRD_SM_VOLT_VDD_GPIO_1P8: -+ case BRD_SM_VOLT_SW3_VDD_1V8: - rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW3, PF09_STATE_VRUN, - level); - break; -- case BRD_SM_VOLT_VDDQ_DDR: -+ case BRD_SM_VOLT_SW4_LPD5_VDDQ: - rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW4, PF09_STATE_VRUN, - level); - break; -- case BRD_SM_VOLT_VDD2_DDR: -+ case BRD_SM_VOLT_SW5_LPD5_VDD2: - rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_SW5, PF09_STATE_VRUN, - level); - break; -- case BRD_SM_VOLT_SD_CARD: -+ case BRD_SM_VOLT_LDO1_VDD_LDO1: - rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_LDO1, PF09_STATE_VRUN, - level); - break; -- case BRD_SM_VOLT_NVCC_SD2: -+ case BRD_SM_VOLT_LDO2_VDD_SDIO2: - rc = PF09_VoltageSet(&g_pf09Dev, PF09_REG_LDO2, PF09_STATE_VRUN, - level); - break; -@@ -458,31 +459,31 @@ int32_t BRD_SM_VoltageLevelGet(uint32_t domainId, int32_t *voltageLevel) - } - } - break; -- case BRD_SM_VOLT_VDD_GPIO_3P3: -+ case BRD_SM_VOLT_SW1_VDD_3V3: - rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW1, PF09_STATE_VRUN, - &level); - break; -- case BRD_SM_VOLT_VDD_ANA_0P8: -+ case BRD_SM_VOLT_SW2_VDD_ANA_0V8: - rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW2, PF09_STATE_VRUN, - &level); - break; -- case BRD_SM_VOLT_VDD_GPIO_1P8: -+ case BRD_SM_VOLT_SW3_VDD_1V8: - rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW3, PF09_STATE_VRUN, - &level); - break; -- case BRD_SM_VOLT_VDDQ_DDR: -+ case BRD_SM_VOLT_SW4_LPD5_VDDQ: - rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW4, PF09_STATE_VRUN, - &level); - break; -- case BRD_SM_VOLT_VDD2_DDR: -+ case BRD_SM_VOLT_SW5_LPD5_VDD2: - rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_SW5, PF09_STATE_VRUN, - &level); - break; -- case BRD_SM_VOLT_SD_CARD: -+ case BRD_SM_VOLT_LDO1_VDD_LDO1: - rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_LDO1, PF09_STATE_VRUN, - &level); - break; -- case BRD_SM_VOLT_NVCC_SD2: -+ case BRD_SM_VOLT_LDO2_VDD_SDIO2: - rc = PF09_VoltageGet(&g_pf09Dev, PF09_REG_LDO2, PF09_STATE_VRUN, - &level); - break; -diff --git a/boards/ccimx95dvk/sm/brd_sm_voltage.h b/boards/ccimx95dvk/sm/brd_sm_voltage.h -index 6c9e01286e7e..46ddc9d89096 100755 ---- a/boards/ccimx95dvk/sm/brd_sm_voltage.h -+++ b/boards/ccimx95dvk/sm/brd_sm_voltage.h -@@ -2,6 +2,7 @@ - ** ################################################################### - ** - ** Copyright 2023-2024 NXP -+** Copyright 2025 Digi International Inc. - ** - ** Redistribution and use in source and binary forms, with or without modification, - ** are permitted provided that the following conditions are met: -@@ -76,13 +77,13 @@ - * @name BRD_SM voltage domains - */ - /** @{ */ --#define BRD_SM_VOLT_VDD_GPIO_3P3 (DEV_SM_NUM_VOLT + 0U) /*!< VDD GPIO 3.3v */ --#define BRD_SM_VOLT_VDD_ANA_0P8 (DEV_SM_NUM_VOLT + 1U) /*!< VDD ANA 0.8v */ --#define BRD_SM_VOLT_VDD_GPIO_1P8 (DEV_SM_NUM_VOLT + 2U) /*!< VDD GPIO 1.8v */ --#define BRD_SM_VOLT_VDDQ_DDR (DEV_SM_NUM_VOLT + 3U) /*!< DDR VDDQ */ --#define BRD_SM_VOLT_VDD2_DDR (DEV_SM_NUM_VOLT + 4U) /*!< DDR VDD2 */ --#define BRD_SM_VOLT_SD_CARD (DEV_SM_NUM_VOLT + 5U) /*!< SD1 */ --#define BRD_SM_VOLT_NVCC_SD2 (DEV_SM_NUM_VOLT + 6U) /*!< SD2 */ -+#define BRD_SM_VOLT_SW1_VDD_3V3 (DEV_SM_NUM_VOLT + 0U) /*!< VDD 3V3 */ -+#define BRD_SM_VOLT_SW2_VDD_ANA_0V8 (DEV_SM_NUM_VOLT + 1U) /*!< VDD ANA 0V8 */ -+#define BRD_SM_VOLT_SW3_VDD_1V8 (DEV_SM_NUM_VOLT + 2U) /*!< VDD 1V8 */ -+#define BRD_SM_VOLT_SW4_LPD5_VDDQ (DEV_SM_NUM_VOLT + 3U) /*!< DDR VDDQ */ -+#define BRD_SM_VOLT_SW5_LPD5_VDD2 (DEV_SM_NUM_VOLT + 4U) /*!< DDR VDD2 */ -+#define BRD_SM_VOLT_LDO1_VDD_LDO1 (DEV_SM_NUM_VOLT + 5U) /*!< LDO1 */ -+#define BRD_SM_VOLT_LDO2_VDD_SDIO2 (DEV_SM_NUM_VOLT + 6U) /*!< LDO2 (VDD_SDIO2) */ - /** @} */ - - /* Types */ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0010-ccimx95dvk-enable-full-access-to-certain-regulators-.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0010-ccimx95dvk-enable-full-access-to-certain-regulators-.patch deleted file mode 100644 index 0afda46a6..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0010-ccimx95dvk-enable-full-access-to-certain-regulators-.patch +++ /dev/null @@ -1,47 +0,0 @@ -From: Hector Palacios -Date: Thu, 9 Oct 2025 13:16:00 +0200 -Subject: [PATCH 10/11] ccimx95dvk: enable full access to certain regulators - from non-secure LVM - -The following PMIC regulators are used by the DVK: -- VDD_3V3 (SW1) -- VDD_1V8 (SW3) -- VDD_LDO1 (LDO1) -- VDD_SDIO2 (LDO2) - -Signed-off-by: Hector Palacios ---- - configs/ccimx95dvk.cfg | 4 ++++ - configs/ccimx95dvk/config_scmi.h | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index b324e0fb0e45..b7c33f8d7e9a 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -532,6 +532,10 @@ AUDIO_PLL2 ALL - BRD_SM_SENSOR_TEMP_PF09 ALL - BRD_SM_SENSOR_TEMP_PF5301 SET - BRD_SM_SENSOR_TEMP_PF5302 SET -+BRD_SM_VOLT_SW1_VDD_3V3 ALL -+BRD_SM_VOLT_SW3_VDD_1V8 ALL -+BRD_SM_VOLT_LDO1_VDD_LDO1 ALL -+BRD_SM_VOLT_LDO2_VDD_SDIO2 ALL - BUTTON ALL, test - CLOCK_DISP1PIX ALL - CLOCK_DISP2PIX ALL -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -index b23958f33138..18a4e5ef6360 100644 ---- a/configs/ccimx95dvk/config_scmi.h -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -610,6 +610,10 @@ - .sensorPerms[DEV_SM_SENSOR_TEMP_A55] = SM_SCMI_PERM_ALL, \ - .sensorPerms[DEV_SM_SENSOR_TEMP_ANA] = SM_SCMI_PERM_SET, \ - .sysPerms = SM_SCMI_PERM_NOTIFY, \ -+ .voltPerms[BRD_SM_VOLT_LDO1_VDD_LDO1] = SM_SCMI_PERM_ALL, \ -+ .voltPerms[BRD_SM_VOLT_LDO2_VDD_SDIO2] = SM_SCMI_PERM_ALL, \ -+ .voltPerms[BRD_SM_VOLT_SW1_VDD_3V3] = SM_SCMI_PERM_ALL, \ -+ .voltPerms[BRD_SM_VOLT_SW3_VDD_1V8] = SM_SCMI_PERM_ALL, \ - } - - /*! Config for SCMI channel 5 */ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0011-components-pf09-reduce-LDOs-step-to-50mV.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0011-components-pf09-reduce-LDOs-step-to-50mV.patch deleted file mode 100644 index 0d0185fbb..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0011-components-pf09-reduce-LDOs-step-to-50mV.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Hector Palacios -Date: Mon, 13 Oct 2025 08:49:57 +0200 -Subject: [PATCH 11/11] components: pf09: reduce LDOs step to 50mV - -The voltage values that can be programmed to the LDOs are not linear. -For low voltages, the step is 50mV, but for higher voltages it is 100mV. -Setting the step as 100mV fools the Linux kernel regulator framework -which does not properly calculate the selector it must call when using -the SCMI regulator framework, resulting in -EINVAL errors. - -Signed-off-by: Hector Palacios ---- - components/pf09/fsl_pf09.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/components/pf09/fsl_pf09.c b/components/pf09/fsl_pf09.c -index 21a0b5557244..3e1887158d7d 100755 ---- a/components/pf09/fsl_pf09.c -+++ b/components/pf09/fsl_pf09.c -@@ -528,7 +528,7 @@ bool PF09_RegulatorInfoGet(uint8_t regulator, PF09_RegInfo *regInfo) - /* set min/max/step in microvolts */ - regInfo->minV = 750000U; - regInfo->maxV = 3300000U; -- regInfo->stepV = 100000U; -+ regInfo->stepV = 50000U; - } - break; - case PF09_REG_LDO2: -@@ -537,7 +537,7 @@ bool PF09_RegulatorInfoGet(uint8_t regulator, PF09_RegInfo *regInfo) - /* set min/max/step in microvolts */ - regInfo->minV = 650000U; - regInfo->maxV = 3300000U; -- regInfo->stepV = 100000U; -+ regInfo->stepV = 50000U; - } - break; - default: diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0012-ccimx95dvk-remove-access-to-VDD_3V3-and-VDD_1V8-from.patch b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0012-ccimx95dvk-remove-access-to-VDD_3V3-and-VDD_1V8-from.patch deleted file mode 100644 index a7fc79342..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager/0012-ccimx95dvk-remove-access-to-VDD_3V3-and-VDD_1V8-from.patch +++ /dev/null @@ -1,58 +0,0 @@ -From: Hector Palacios -Date: Wed, 29 Oct 2025 16:54:45 +0100 -Subject: [PATCH] ccimx95dvk: remove access to VDD_3V3 and VDD_1V8 from - non-secure world -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -There doesn't seem to be a clear registered handler for reboot or shutdown -path from Linux to SM. -When a 'reboot' is requested, Linux falls back to run the global -device_shutdown() path. -The SM will turn these regulators off in their shutdown path or via a -global “disable regulators on reboot” policy. The current SM firmware -doesn't get to know if Linux has marked these regulators as "always-on". - -Powering these regulators off removes power to the SOM who is then not -able to continue the reset (it is not powered). - -By removing access to Linux, we fully rely on SM managing these regulators, -though apparently support is incomplete (for instance they are not powered -off on the poweroff path from Linux), so this may need to be revisited in -future BSP upgrades. - -Signed-off-by: Hector Palacios - -https://onedigi.atlassian.net/browse/DEL-9804 ---- - configs/ccimx95dvk.cfg | 2 -- - configs/ccimx95dvk/config_scmi.h | 2 -- - 2 files changed, 4 deletions(-) - -diff --git a/configs/ccimx95dvk.cfg b/configs/ccimx95dvk.cfg -index b7c33f8d7e9a..19d3b0ab27b4 100755 ---- a/configs/ccimx95dvk.cfg -+++ b/configs/ccimx95dvk.cfg -@@ -532,8 +532,6 @@ AUDIO_PLL2 ALL - BRD_SM_SENSOR_TEMP_PF09 ALL - BRD_SM_SENSOR_TEMP_PF5301 SET - BRD_SM_SENSOR_TEMP_PF5302 SET --BRD_SM_VOLT_SW1_VDD_3V3 ALL --BRD_SM_VOLT_SW3_VDD_1V8 ALL - BRD_SM_VOLT_LDO1_VDD_LDO1 ALL - BRD_SM_VOLT_LDO2_VDD_SDIO2 ALL - BUTTON ALL, test -diff --git a/configs/ccimx95dvk/config_scmi.h b/configs/ccimx95dvk/config_scmi.h -index 18a4e5ef6360..8094e9a9ef77 100644 ---- a/configs/ccimx95dvk/config_scmi.h -+++ b/configs/ccimx95dvk/config_scmi.h -@@ -612,8 +612,6 @@ - .sysPerms = SM_SCMI_PERM_NOTIFY, \ - .voltPerms[BRD_SM_VOLT_LDO1_VDD_LDO1] = SM_SCMI_PERM_ALL, \ - .voltPerms[BRD_SM_VOLT_LDO2_VDD_SDIO2] = SM_SCMI_PERM_ALL, \ -- .voltPerms[BRD_SM_VOLT_SW1_VDD_3V3] = SM_SCMI_PERM_ALL, \ -- .voltPerms[BRD_SM_VOLT_SW3_VDD_1V8] = SM_SCMI_PERM_ALL, \ - } - - /*! Config for SCMI channel 5 */ diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_1.0.0.bbappend b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_1.0.0.bbappend deleted file mode 100644 index 7cca3cd6f..000000000 --- a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_1.0.0.bbappend +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (C) 2025, Digi International Inc. - -FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" - -SRC_URI:append:dey = " \ - file://0001-ccimx95dvk-add-new-platform-config-and-board.patch \ - file://0002-ccimx95dvk-configure-board-and-switch-debug-UART-to-.patch \ - file://0003-ccimx95dvk-disable-PCAL6408A-expander-and-move-GPIO1.patch \ - file://0004-ccimx95dvk-move-resources-from-M7-to-A55.patch \ - file://0005-ccimx95dvk-move-pads-to-non-secure-A55.patch \ - file://0006-ccimx95dvk-move-CAN1-to-be-used-by-A55.patch \ - file://0007-ccimx95dvk-remove-PCAL6408A-IO-expander-from-EVK.patch \ - file://0008-ccimx95dvk-remove-PCA2123-RTC-from-EVK.patch \ - file://0009-ccimx95-change-names-of-voltage-regulators.patch \ - file://0010-ccimx95dvk-enable-full-access-to-certain-regulators-.patch \ - file://0011-components-pf09-reduce-LDOs-step-to-50mV.patch \ - file://0012-ccimx95dvk-remove-access-to-VDD_3V3-and-VDD_1V8-from.patch \ -" - -# Disable debug monitor by default -PACKAGECONFIG ??= "m0" diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_2025q3.bb b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_2025q3.bb new file mode 100644 index 000000000..0168e2b43 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_2025q3.bb @@ -0,0 +1,23 @@ +SUMMARY = "i.MX System Manager Firmware" +DESCRIPTION = "\ +The System Manager (SM) is a firmware that runs on a Cortex-M processor on \ +many NXP i.MX processors. The Cortex-M is the boot core, runs the boot ROM \ +which loads the SM (and other boot code), and then branches to the SM. The \ +SM then configures some aspects of the hardware such as isolation mechanisms \ +and then starts other cores in the system. After starting these cores, it \ +enters a service mode where it provides access to clocking, power, sensor, \ +and pin control via a client RPC API based on ARM's System Control and \ +Management Interface (SCMI)." +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f2a70813bc08547f509361c08b718861" + +SRC_URI = "${IMX_SYSTEM_MANAGER_SRC};branch=${SRCBRANCH}" +IMX_SYSTEM_MANAGER_SRC ?= "git://github.com/nxp-imx/imx-sm.git;protocol=https" +SRCBRANCH = "master" +SRCREV = "af1e37026c6ba19cdca98fd6e91494efd3e7b5ec" + +S = "${WORKDIR}/git" + +require imx-system-manager.inc + +PACKAGECONFIG ??= "m2" diff --git a/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_2025q3.bbappend b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_2025q3.bbappend new file mode 100644 index 000000000..b4c30bc65 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/arm-toolchain/recipes-bsp/imx-system-manager/imx-system-manager_2025q3.bbappend @@ -0,0 +1,13 @@ +# Copyright (C) 2025, 2026, Digi International Inc. + +# Select internal or Github imx-system-manager repo +IMX_SYSTEM_MANAGER_URI_STASH = "${DIGI_MTK_GIT}/emp/imx-sm.git;protocol=ssh" +IMX_SYSTEM_MANAGER_URI_GITHUB = "${DIGI_GITHUB_GIT}/imx-sm.git;protocol=https" +IMX_SYSTEM_MANAGER_SRC:dey = "${@oe.utils.conditional('DIGI_INTERNAL_GIT', '1', '${IMX_SYSTEM_MANAGER_URI_STASH}', '${IMX_SYSTEM_MANAGER_URI_GITHUB}', d)}" + +SRCBRANCH:dey = "dey/scarthgap/lf-6.6.52-2.2.2" +# NXP's 'lf-6.6.52_2.2.2' release + patches +SRCREV:dey = "ecd89d0bc35687c7e1e19b47cf6bcdefc3a3fe68" + +# Disable debug monitor by default +PACKAGECONFIG ??= "m0" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/firmware-imx/firmware-ele-imx_2.0.3.1.bb b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/firmware-imx/firmware-ele-imx_2.0.3.1.bb new file mode 100644 index 000000000..a7c9b9953 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/firmware-imx/firmware-ele-imx_2.0.3.1.bb @@ -0,0 +1,36 @@ +# Copyright 2021-2025 NXP +SUMMARY = "NXP i.MX ELE firmware" +DESCRIPTION = "EdgeLock Secure Enclave firmware for i.MX series SoCs" +SECTION = "base" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac" + +inherit fsl-eula-unpack use-imx-security-controller-firmware deploy + +SRC_URI = "${FSL_MIRROR}/${BP}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true" +IMX_SRCREV_ABBREV = "52f7740" +SRC_URI[sha256sum] = "93ae9b84ca2b718730f4d7e60b6099624a02c54630c8c9719beceaa0a5987cd1" + +S = "${WORKDIR}/${BP}-${IMX_SRCREV_ABBREV}" + +do_compile[noexec] = "1" + +do_install() { + install -d ${D}${nonarch_base_libdir}/firmware/imx/ele + for fw in ${SECO_FIRMWARE_NAME} ${SECOEXT_FIRMWARE_NAME}; do + install -m 0644 ${S}/$fw ${D}${nonarch_base_libdir}/firmware/imx/ele + done +} + +do_deploy () { + # Deploy the related firmware to be packaged by imx-boot + install -m 0644 ${S}/${SECO_FIRMWARE_NAME} ${DEPLOYDIR} +} +addtask deploy after do_install before do_build + +FILES:${PN} = "${nonarch_base_libdir}/firmware" + +RREPLACES:${PN} = "firmware-sentinel" +RPROVIDES:${PN} = "firmware-sentinel" + +COMPATIBLE_MACHINE = "(mx8ulp-generic-bsp|mx9-generic-bsp)" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/firmware-imx/firmware-imx_%.bbappend b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/firmware-imx/firmware-imx_%.bbappend deleted file mode 100644 index 9d4bb94b9..000000000 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/firmware-imx/firmware-imx_%.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (C) 2023, Digi International Inc. - -do_install:append() { - # meta-freescale deletes the SDMA firmware provided by the firmware-imx package, - # in favor of the generic one provided by the linux-firmware package. The one - # provided by NXP is more up-to-date, so we want it back. - install -m 0644 ${S}/firmware/sdma/* ${D}${nonarch_base_libdir}/firmware/imx/sdma -} diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0007-imx93-bring-back-ELE-clock-workaround-for-soc-revisi.patch b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0007-imx93-bring-back-ELE-clock-workaround-for-soc-revisi.patch index 7035af526..a2362570e 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0007-imx93-bring-back-ELE-clock-workaround-for-soc-revisi.patch +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0007-imx93-bring-back-ELE-clock-workaround-for-soc-revisi.patch @@ -14,10 +14,10 @@ Signed-off-by: Javier Viguera 2 files changed, 14 insertions(+) diff --git a/plat/imx/imx93/imx93_psci.c b/plat/imx/imx93/imx93_psci.c -index ccd82d1d2bdc..325fcf75911a 100644 +index 526c876e7333..33d9cb6daf07 100644 --- a/plat/imx/imx93/imx93_psci.c +++ b/plat/imx/imx93/imx93_psci.c -@@ -747,6 +747,11 @@ void imx_pwr_domain_suspend(const psci_power_state_t *target_state) +@@ -755,6 +755,11 @@ void imx_pwr_domain_suspend(const psci_power_state_t *target_state) if (is_local_state_retn(CLUSTER_PWR_STATE(target_state))) { write_clusterpwrdn(DSU_CLUSTER_PWR_OFF | BIT(1)); } @@ -29,7 +29,7 @@ index ccd82d1d2bdc..325fcf75911a 100644 } if (is_local_state_retn(SYSTEM_PWR_STATE(target_state))) { -@@ -878,6 +883,11 @@ void imx_pwr_domain_suspend_finish(const psci_power_state_t *target_state) +@@ -888,6 +893,11 @@ void imx_pwr_domain_suspend_finish(const psci_power_state_t *target_state) if (!is_local_state_run(CLUSTER_PWR_STATE(target_state))) { /* set the cluster's target mode to RUN */ gpc_set_cpu_mode(CPU_A55_PLAT, CM_MODE_RUN); diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0010-ccimx95-enable-non-secure-non-privilege-access-to-GP.patch b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0010-ccimx95-enable-non-secure-non-privilege-access-to-GP.patch index 4559040de..bc6cd0f97 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0010-ccimx95-enable-non-secure-non-privilege-access-to-GP.patch +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0010-ccimx95-enable-non-secure-non-privilege-access-to-GP.patch @@ -5,6 +5,8 @@ Subject: [PATCH] ccimx95: enable non-secure, non-privilege access to GPIO1 GPIO1 port is reserved on NXP EVK but we want to enable full access to the port from the non-secure world. +Upstream-Status: Inappropriate [DEY specific] + Signed-off-by: Hector Palacios https://onedigi.atlassian.net/browse/DEL-9839 diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0011-Revert-ccimx95-set-DVK-console-to-LPUART6.patch b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0011-Revert-ccimx95-set-DVK-console-to-LPUART6.patch new file mode 100644 index 000000000..b51b8a1c1 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf/0011-Revert-ccimx95-set-DVK-console-to-LPUART6.patch @@ -0,0 +1,29 @@ +From: Hector Palacios +Date: Wed, 14 Jan 2026 17:47:38 +0100 +Subject: [PATCH] Revert "ccimx95: set DVK console to LPUART6" + +On v2 of the SOM, the console has been changed to LPUART1. +This reverts commit 3c0e275d1b1286505dd57591dcf0cd34bd2d1849. + +Upstream-Status: Inappropriate [DEY specific] + +Signed-off-by: Hector Palacios + +https://onedigi.atlassian.net/browse/DEL-9915 +--- + plat/imx/imx95/include/platform_def.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plat/imx/imx95/include/platform_def.h b/plat/imx/imx95/include/platform_def.h +index 3f0a43e49694..d2eff001f548 100644 +--- a/plat/imx/imx95/include/platform_def.h ++++ b/plat/imx/imx95/include/platform_def.h +@@ -55,7 +55,7 @@ + #ifdef IMX_EMU + #define IMX_LPUART_BASE 0x42570000 + #else +-#define IMX_LPUART_BASE 0x425A0000 /* LPUART6 */ ++#define IMX_LPUART_BASE 0x44380000 + #endif + + #define IMX_BOOT_UART_CLK_IN_HZ 24000000 /* Select 24MHz oscillator */ diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf_%.bbappend b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf_%.bbappend index 7522fda59..e892b0c47 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf_%.bbappend +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-atf/imx-atf_%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2022-2025, Digi International Inc. +# Copyright (C) 2022-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" @@ -13,8 +13,11 @@ SRC_URI:append:dey = " \ file://0008-ccimx91-use-UART6-for-the-default-console.patch \ file://0009-ccimx95-set-DVK-console-to-LPUART6.patch \ file://0010-ccimx95-enable-non-secure-non-privilege-access-to-GP.patch \ + file://0011-Revert-ccimx95-set-DVK-console-to-LPUART6.patch \ " +SRCREV = "8ec7e38031f8c022a9760a8da77bdc6e1938db8c" + BOOT_TOOLS = "imx-boot-tools" EXTRA_OEMAKE += "${@oe.utils.conditional('TRUSTFENCE_CONSOLE_DISABLE', '1', 'LOG_LEVEL=0', '', d)}" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-secure-enclave/imx-secure-enclave-seco_git.bb b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-secure-enclave/imx-secure-enclave-seco_git.bb index 867d7d55e..52150dff7 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-secure-enclave/imx-secure-enclave-seco_git.bb +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-secure-enclave/imx-secure-enclave-seco_git.bb @@ -14,6 +14,7 @@ do_install:append:mx95-nxp-bsp() { done rm ${D}${datadir}/se/README rm ${D}${bindir}/nvmd_conf_setup.sh + rm ${D}${bindir}/se_tools } COMPATIBLE_MACHINE = "(mx8x-nxp-bsp|mx95-nxp-bsp)" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-secure-enclave/imx-secure-enclave.inc b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-secure-enclave/imx-secure-enclave.inc index 01cc21ac6..6bb04aa7e 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-secure-enclave/imx-secure-enclave.inc +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-bsp/imx-secure-enclave/imx-secure-enclave.inc @@ -10,11 +10,11 @@ DEPENDS = " mbedtls openssl" SRC_URI = "${SECURE_ENCLAVE_LIB_SRC};branch=${SRCBRANCH}" SECURE_ENCLAVE_LIB_SRC ?= "git://github.com/NXP/imx-secure-enclave.git;protocol=https" -SRCBRANCH = "lf-6.6.52_2.2.1" -SRCREV = "4f0340fb4cf6b16a64c7d65281b4880c5d1cd453" +SRCBRANCH = "lf-6.6.52_2.2.2" +SRCREV = "8855a24d1220c88c6e2bcc4b36391a7bce6d0755" # Set package version to the release, so it overrides the recipe in meta-freescale -PV = "lf-6.6.52_2.2.1" +PV = "lf-6.6.52_2.2.2" S = "${WORKDIR}/git" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bb b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bb index b35897613..51102fe1b 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bb +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bb @@ -12,4 +12,4 @@ require recipes-graphics/wayland/weston_12.0.4.imx.bb FILESEXTRAPATHS:prepend := "${COREBASE}/../meta-freescale/recipes-graphics/wayland/weston:" SRCBRANCH = "weston-imx-12.0.5" -SRCREV = "fce3595b96eab0b2b432ceae070a65db7d16d866" +SRCREV = "a29bbd0f65e68b9beda47a94144bd9b2801c42cb" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os/0006-ccimx95-configure-console-on-LPUART1.patch b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os/0006-ccimx95-configure-console-on-LPUART1.patch new file mode 100644 index 000000000..bae807180 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os/0006-ccimx95-configure-console-on-LPUART1.patch @@ -0,0 +1,29 @@ +From: Hector Palacios +Date: Wed, 14 Jan 2026 17:15:53 +0100 +Subject: [PATCH] ccimx95: configure console on LPUART1 + +On version 2 of the SOM, the console has been changed +to LPUART1. + +Upstream-Status: Inappropriate [DEY specific] + +Signed-off-by: Hector Palacios + +https://onedigi.atlassian.net/browse/DEL-9915 +--- + core/arch/arm/plat-imx/conf.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/core/arch/arm/plat-imx/conf.mk b/core/arch/arm/plat-imx/conf.mk +index 55f4c21d0321..7c674e6f99a2 100644 +--- a/core/arch/arm/plat-imx/conf.mk ++++ b/core/arch/arm/plat-imx/conf.mk +@@ -528,7 +528,7 @@ endif + + ifneq (,$(filter $(PLATFORM_FLAVOR),ccimx95dvk)) + CFG_DDR_SIZE ?= 0x80000000 +-CFG_UART_BASE ?= UART6_BASE ++CFG_UART_BASE ?= UART1_BASE + CFG_NSEC_DDR_1_BASE ?= 0x100000000UL + CFG_NSEC_DDR_1_SIZE ?= 0x180000000UL + CFG_CORE_ARM64_PA_BITS ?= 40 diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os_4.4.0.imx.bbappend b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os_4.4.0.imx.bbappend index 49463446c..2b4fa8922 100644 --- a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os_4.4.0.imx.bbappend +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/optee-imx/optee-os_4.4.0.imx.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024, 2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" SRC_URI += "file://environment.d-optee-sdk.sh" @@ -9,6 +9,7 @@ SRC_URI:append:dey = " \ file://0003-core-imx-support-ccimx93-dvk.patch \ file://0004-core-ccimx93-enable-AES_HUK-trusted-application.patch \ file://0005-core-imx-support-ccimx95-dvk.patch \ + file://0006-ccimx95-configure-console-on-LPUART1.patch \ " OPTEEMACHINE:ccimx8mm = "imx-ccimx8mmdvk" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/smw/itest_git.bb b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/smw/itest_git.bb new file mode 100644 index 000000000..211b8c571 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/smw/itest_git.bb @@ -0,0 +1,33 @@ +# Copyright 2023-2024 NXP +SUMMARY = "NXP i.MX Itest" +DESCRIPTION = "NXP i.MX Itest" +SECTION = "base" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8636bd68fc00cc6a3809b7b58b45f982" + +SRC_URI = "${ITEST_SRC};branch=${SRCBRANCH}" +ITEST_SRC ?= "git://github.com/nxp-imx/itest.git;protocol=https" +SRCBRANCH = "lf-6.6.52_2.2.0" +SRCREV = "6087762a69fe51bea508b1383d54ff28a10eef9f" + +S = "${WORKDIR}/git" + +inherit cmake + +PACKAGECONFIG:mx8dxl-nxp-bsp ??= "ele-seco" +PACKAGECONFIG:mx8ulp-nxp-bsp ??= "ele" +PACKAGECONFIG:mx91-nxp-bsp ??= "ele" +PACKAGECONFIG:mx93-nxp-bsp ??= "ele" +PACKAGECONFIG:mx95-nxp-bsp ??= "ele ele-seco" + +PACKAGECONFIG[ele] = "-DELE=1,,imx-secure-enclave" +PACKAGECONFIG[ele-seco] = "-DV2X=1,,imx-secure-enclave-seco" + +EXTRA_OECMAKE = " \ + -DOPENSSL_PATH="${STAGING_DIR_HOST}/usr" \ + -DELE_LIB_PATH="${STAGING_DIR_HOST}/usr" \ + -DLIB_PATH="${STAGING_DIR_HOST}${libdir}"" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(mx8dxl-nxp-bsp|mx8ulp-nxp-bsp|mx91-nxp-bsp|mx93-nxp-bsp|mx95-nxp-bsp)" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/smw/smw_git.bb b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/smw/smw_git.bb new file mode 100644 index 000000000..0447600ae --- /dev/null +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-security/smw/smw_git.bb @@ -0,0 +1,86 @@ +# Copyright 2020-24 NXP + +SUMMARY = "NXP i.MX Security Middleware Library" +DESCRIPTION = "NXP i.MX Security Middleware Library" +SECTION = "base" +LICENSE = "BSD-3-Clause" +LICENSE = "Apache-2.0 & BSD-3-Clause & Zlib" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6087d19da5441648e33f85ae64cf2a7d \ + file://../psa-arch-tests/LICENSE.md;md5=2a944942e1496af1886903d274dedb13" + +DEPENDS = " \ + python3-cryptography-native \ + json-c \ + optee-client \ + optee-os-tadevkit \ + sqlite3 \ +" + +SRC_URI = "${SMW_LIB_SRC};branch=${SRCBRANCH_smw};name=smw;destsuffix=git/smw \ + ${PSA_LIB_SRC};branch=${SRCBRANCH_psa};name=psa;destsuffix=git/${PSA_ARCH_TESTS_SRC_PATH} \ + " +SMW_LIB_SRC ?= "git://github.com/nxp-imx/imx-smw.git;protocol=https" +PSA_LIB_SRC ?= "git://github.com/ARM-software/psa-arch-tests.git;protocol=https" +PSA_ARCH_TESTS_SRC_PATH = "psa-arch-tests" +SRCBRANCH_smw = "release/release_5.x_LF6.6" +SRCBRANCH_psa = "main" +SRCREV_smw = "7007a5b3619325a1e87306b0f27761b24418c325" +SRCREV_psa = "463cb95ada820bc6f758d50066cf8c0ed5cc3a02" +SRCREV_FORMAT = "smw_psa" +S = "${WORKDIR}/git/smw" + +inherit cmake python3native + +PACKAGECONFIG ??= "${PACKAGECONFIG_DRIVERS} ${PACKAGECONFIG_FEATURES}" +PACKAGECONFIG_DRIVERS = "" +PACKAGECONFIG_DRIVERS:mx8qxp-nxp-bsp = "ele-seco" +PACKAGECONFIG_DRIVERS:mx8dx-nxp-bsp = "ele-seco" +PACKAGECONFIG_DRIVERS:mx8ulp-nxp-bsp = "ele" +PACKAGECONFIG_DRIVERS:mx91-nxp-bsp = "ele" +PACKAGECONFIG_DRIVERS:mx93-nxp-bsp = "ele" +PACKAGECONFIG_DRIVERS:mx95-nxp-bsp = "ele" + +PACKAGECONFIG_FEATURES = "" +PACKAGECONFIG_FEATURES:mx91-nxp-bsp = "tls" +PACKAGECONFIG_FEATURES:mx93-nxp-bsp = "tls" +PACKAGECONFIG_FEATURES:mx95-nxp-bsp = "tls" + +PACKAGECONFIG[ele] = "-DELE_ROOT=${STAGING_DIR_HOST},,imx-secure-enclave,,,ele-seco" +PACKAGECONFIG[ele-seco] = "-DSECO_ROOT=${STAGING_DIR_HOST},,imx-secure-enclave-seco,,,ele" +PACKAGECONFIG[tls] = "-DENABLE_TLS=ON,-DENABLE_TLS=OFF,openssl" + +CFLAGS[unexport] = "1" +CPPFLAGS[unexport] = "1" +AS[unexport] = "1" +LD[unexport] = "1" + +# setting the linker options +TARGET_LDFLAGS:remove = "${DEBUG_PREFIX_MAP}" + +# DEY: from meta-arm's optee.inc +TA_DEV_KIT_DIR = "${STAGING_INCDIR}/optee/export-user_ta" +export OPENSSL_MODULES="${STAGING_LIBDIR_NATIVE}/ossl-modules" + +EXTRA_OECMAKE = " \ + -DYOCTO_BUILD=ON \ + -DTA_DEV_KIT_ROOT=${TA_DEV_KIT_DIR} \ + -DTEEC_ROOT=${STAGING_DIR_HOST} \ + -DJSONC_ROOT="${COMPONENTS_DIR}/${TARGET_ARCH}/json-c/usr" \ + -DPSA_ARCH_TESTS_SRC_PATH=../${PSA_ARCH_TESTS_SRC_PATH} \ + -DTEE_TA_DESTDIR=${nonarch_base_libdir} \ +" + +OECMAKE_TARGET_COMPILE += "build_tests" +OECMAKE_TARGET_INSTALL += "install_tests" + +PACKAGES =+ "${PN}-tests" + +FILES:${PN} += "${nonarch_base_libdir}/optee_armtz/*" + +FILES:${PN}-tests = "${bindir}/* ${datadir}/${BPN}/*" + +RDEPENDS:${PN}-tests += "cmake" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" + +COMPATIBLE_MACHINE = "(imx-nxp-bsp)" diff --git a/meta-digi-arm/dynamic-layers/freescale-layer/recipes-support/pkcs11-provider/pkcs11-provider_1.0.imx.bb b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-support/pkcs11-provider/pkcs11-provider_1.0.imx.bb new file mode 100644 index 000000000..10e28083e --- /dev/null +++ b/meta-digi-arm/dynamic-layers/freescale-layer/recipes-support/pkcs11-provider/pkcs11-provider_1.0.imx.bb @@ -0,0 +1,30 @@ +SUMMARY = "An OpenSSL provider that allows direct interfacing with pkcs11 drivers" +DESCRIPTION = "\ +This is an Openssl 3.x provider to access Hardware or Software Tokens using \ +the PKCS#11 Cryptographic Token Interface\ +\ +This code targets version 3.1 of the interface but should be backwards \ +compatible to previous versions as well.\ +" +HOMEPAGE = "https://github.com/latchset/pkcs11-provider" +SECTION = "libs" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://COPYING;md5=b53b787444a60266932bd270d1cf2d45" +DEPENDS = "\ + openssl \ + p11-kit \ +" + +SRC_URI = "${PKCS11_PROVIDER_SRC};branch=${SRCBRANCH}" +PKCS11_PROVIDER_SRC ?= "git://github.com/nxp-imx/${BPN}.git;branch=main;protocol=https" +SRCBRANCH = "lf-6.6.52_2.2.2" +SRCREV = "ededfa20fe2430f33a5e8ea8971af708a2eb65eb" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig + +# Overwrite default pkcs11 module path +#EXTRA_OEMESON += "-Ddefault_pkcs11_module=/path/to/mymodule.so" + +FILES:${PN} += "${libdir}/ossl-modules/pkcs11.so" diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-m/tf-m-stm32mp-scripts_2.1.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-m/tf-m-stm32mp-scripts_2.1.bbappend new file mode 100644 index 000000000..bdfe2836c --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-m/tf-m-stm32mp-scripts_2.1.bbappend @@ -0,0 +1,27 @@ +# +# Copyright (C) 2026, Digi International Inc. +# + +do_install() { + # Install assemble and signing firmware script + install -d ${D}${bindir} + install -m 755 ${WORKDIR}/scripts/create_st_m33fw_binary.sh ${D}${bindir} + install -m 755 ${WORKDIR}/scripts/st_m33td_firmware_signature.sh ${D}${bindir} + # Update version + sed 's/^SIGN_VERSION=.*$/SIGN_VERSION='"${TF_M_VERSION}"'/' -i ${D}${bindir}/st_m33td_firmware_signature.sh + # Install default MCUBOOT keys + install -d ${D}${datadir}/tf-m/keys + install -m 0644 ${S}/bl2/ext/mcuboot/root-EC-P256.pem ${D}${datadir}/tf-m/keys/root-ec-p256.pem + install -m 0644 ${S}/bl2/ext/mcuboot/root-EC-P256_1.pem ${D}${datadir}/tf-m/keys/root-ec-p256_1.pem + # Install all python scripts needed for assemble and sign + install -d ${D}${datadir}/tf-m/scripts + install -m 0755 ${S}/bl2/ext/mcuboot/scripts/assemble.py ${D}${datadir}/tf-m/scripts + install -m 0755 ${S}/bl2/ext/mcuboot/scripts/macro_parser.py ${D}${datadir}/tf-m/scripts + install -d ${D}${datadir}/tf-m/scripts/wrapper + install -m 0755 ${S}/bl2/ext/mcuboot/scripts/wrapper/wrapper.py ${D}${datadir}/tf-m/scripts/wrapper + # Install imgtool suite + install -m 0755 ${WORKDIR}/${TF_M_EXTERNAL_SOURCES_ROOTDIR}/${TF_M_PATH_MCUBOOT}/scripts/imgtool.py ${D}${datadir}/tf-m/scripts/wrapper + install -d ${D}${datadir}/tf-m/scripts/wrapper/imgtool + cp -rf ${WORKDIR}/${TF_M_EXTERNAL_SOURCES_ROOTDIR}/${TF_M_PATH_MCUBOOT}/scripts/imgtool/* ${D}${datadir}/tf-m/scripts/wrapper/imgtool/ +} + diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-m/tf-m-stm32mp_2.1.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-m/tf-m-stm32mp_2.1.bbappend new file mode 100644 index 000000000..bdc2b1650 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-bsp/trusted-firmware-m/tf-m-stm32mp_2.1.bbappend @@ -0,0 +1,6 @@ +# +# Copyright (C) 2026, Digi International Inc. +# + +# Inherit custom DIGI sign class to skip signing tool and key parsing restrictions +inherit sign-stm32mp-digi diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-extended/stm32mp2projects/m33fw-stm32mp2.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-extended/stm32mp2projects/m33fw-stm32mp2.bbappend new file mode 100644 index 000000000..bdc2b1650 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-extended/stm32mp2projects/m33fw-stm32mp2.bbappend @@ -0,0 +1,6 @@ +# +# Copyright (C) 2026, Digi International Inc. +# + +# Inherit custom DIGI sign class to skip signing tool and key parsing restrictions +inherit sign-stm32mp-digi diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init.bbappend index 66d559b92..a03080fa4 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init.bbappend +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init.bbappend @@ -1,10 +1,13 @@ +# Copyright (C) 2026, Digi International Inc. + FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" +WESTON_BACKGROUND_PNG ?= "${WORKDIR}/background.png" DEPENDS += "${@oe.utils.conditional('DISTRO_FEATURES', 'pulseaudio', 'pulseaudio', '', d)}" SRC_URI += " \ file://weston.ini \ - file://digi_background.png \ + file://background.png \ file://weston-launch.service \ file://weston-checkgpu.service \ file://weston_profile.sh \ @@ -42,7 +45,7 @@ do_install() { install -m 0644 ${WORKDIR}/weston.ini ${D}${sysconfdir}/xdg/weston - install -m 0644 ${WORKDIR}/digi_background.png ${D}${datadir}/weston/backgrounds/digi_background.png + install -m 0644 "${WESTON_BACKGROUND_PNG}" ${D}${datadir}/weston/backgrounds/background.png printf "\n[launcher]\nicon=${datadir}/weston/terminal.png\npath=${bindir}/weston-terminal\n" >> ${D}${sysconfdir}/xdg/weston/weston.ini install -d ${D}${systemd_system_unitdir} ${D}${sbindir} diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init/digi_background.png b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init/background.png similarity index 100% rename from meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init/digi_background.png rename to meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init/background.png diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init/weston.ini b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init/weston.ini index 09906118e..fd763963f 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init/weston.ini +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston-init/weston.ini @@ -13,7 +13,7 @@ remoting=remoting-plugin.so keymap_layout=us [shell] -background-image=/usr/share/weston/backgrounds/digi_background.png +background-image=/usr/share/weston/backgrounds/background.png background-type=scale-crop # HDMI connector diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston/0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston/0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch new file mode 100644 index 000000000..756dbd546 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston/0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch @@ -0,0 +1,92 @@ +From: Haihua Hu +Date: Wed, 3 Aug 2022 16:34:47 +0800 +Subject: [PATCH] Revert "libweston/libinput-device: Enable/Set pointer + capabilities only on pointer movement" + +This reverts commit e825fe389ebd63470028abd828019840c1170a03. + +This commit will cause waylandsink cannot register pointer seat. +As a result, mouse cannot move waylandsink window + +(cherry picked from commit 3f8f336b5d2cf7ea7aa4e047d669d093fc46dfe6) + +Upstream-Status: Inappropriate [DEY specific] +--- + libweston/libinput-device.c | 29 +++++------------------------ + 1 file changed, 5 insertions(+), 24 deletions(-) + +diff --git a/libweston/libinput-device.c b/libweston/libinput-device.c +index 4ea89de0..2d7a7d5f 100644 +--- a/libweston/libinput-device.c ++++ b/libweston/libinput-device.c +@@ -60,21 +60,6 @@ evdev_led_update(struct evdev_device *device, enum weston_led weston_leds) + libinput_device_led_update(device->device, leds); + } + +-static void +-ensure_pointer_capability(struct libinput_device *libinput_device) +-{ +- struct evdev_device *device = libinput_device_get_user_data(libinput_device); +- struct weston_seat *seat = device->seat; +- +- if (!libinput_device_has_capability(libinput_device, LIBINPUT_DEVICE_CAP_POINTER)) +- return; +- +- if (!(device->seat_caps & EVDEV_SEAT_POINTER)) { +- weston_seat_init_pointer(seat); +- device->seat_caps |= EVDEV_SEAT_POINTER; +- } +-} +- + static void + handle_keyboard_key(struct libinput_device *libinput_device, + struct libinput_event_keyboard *keyboard_event) +@@ -112,8 +97,6 @@ handle_pointer_motion(struct libinput_device *libinput_device, + struct timespec time; + double dx_unaccel, dy_unaccel; + +- ensure_pointer_capability(libinput_device); +- + timespec_from_usec(&time, + libinput_event_pointer_get_time_usec(pointer_event)); + dx_unaccel = libinput_event_pointer_get_dx_unaccelerated(pointer_event); +@@ -146,8 +129,6 @@ handle_pointer_motion_absolute( + double x, y; + uint32_t width, height; + +- ensure_pointer_capability(libinput_device); +- + if (!output) + return false; + +@@ -179,8 +160,6 @@ handle_pointer_button(struct libinput_device *libinput_device, + libinput_event_pointer_get_seat_button_count(pointer_event); + struct timespec time; + +- ensure_pointer_capability(libinput_device); +- + /* Ignore button events that are not seat wide state changes. */ + if ((button_state == LIBINPUT_BUTTON_STATE_PRESSED && + seat_button_count != 1) || +@@ -260,8 +239,6 @@ handle_pointer_axis(struct libinput_device *libinput_device, + bool has_vert, has_horiz; + struct timespec time; + +- ensure_pointer_capability(libinput_device); +- + has_vert = libinput_event_pointer_has_axis(pointer_event, + LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL); + has_horiz = libinput_event_pointer_has_axis(pointer_event, +@@ -738,7 +715,11 @@ evdev_device_create(struct libinput_device *libinput_device, + + device->seat_caps |= EVDEV_SEAT_KEYBOARD; + } +- ++ if (libinput_device_has_capability(libinput_device, ++ LIBINPUT_DEVICE_CAP_POINTER)) { ++ weston_seat_init_pointer(seat); ++ device->seat_caps |= EVDEV_SEAT_POINTER; ++ } + if (libinput_device_has_capability(libinput_device, + LIBINPUT_DEVICE_CAP_TOUCH)) { + if (weston_seat_init_touch(seat) < 0) { diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston_13.0.1.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston_13.0.1.bbappend index 0c1369353..f5416c492 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston_13.0.1.bbappend +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston_13.0.1.bbappend @@ -5,6 +5,7 @@ SRC_URI:append:stm32mpcommon = " \ file://0002-Disable-request-to-EGL_DRM_RENDER_NODE_FILE_EXT.patch \ file://0003-Revert-compositor-improve-opacity-handling-for-scale.patch \ file://0004-Revert-compositor-set-transform.opaque-for-surfaces-.patch \ + file://0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \ " SIMPLECLIENTS="egl,touch,dmabuf-v4l,dmabuf-egl" diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/evision-libs_1.0.7.bb b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/evision-libs_1.0.7.bb new file mode 100644 index 000000000..4aace0fd6 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/evision-libs_1.0.7.bb @@ -0,0 +1,61 @@ +# Copyright (C) 2024, STMicroelectronics - All Rights Reserved +SUMMARY = "evision package to install AE an AWB algorithm libraries" +LICENSE = "SLA0044" +LIC_FILES_CHKSUM = "file://evision-libs/LICENSE;md5=91fc08c2e8dfcd4229b69819ef52827c" + +NO_GENERIC_LICENSE[SLA0044] = "evision-libs/LICENSE" +LICENSE:${PN} = "SLA0044" + +SRC_URI = "file://evision-libs/;subdir=${BPN}-${PV} \ +" + +COMPATIBLE_MACHINE = "^(aarch64)" + +# Configure evision output library dir +ST_SPECIFIC_OUTPUT_LIBDIR ??= "${libdir}" + +EVISION_LDCONF ?= "evision.conf" + +S = "${WORKDIR}/${BPN}-${PV}" + +do_configure[noexec] = "1" + +do_compile() { + # Generate specific conf file if required + if [ "${ST_SPECIFIC_OUTPUT_LIBDIR}" = "${libdir}" ]; then + bbnote "evision output libdir is default one (${libdir})" + echo "" > ${B}/${EVISION_LDCONF} + else + bbnote "evision output libdir set to ${ST_SPECIFIC_OUTPUT_LIBDIR}: generate specific conf file for ldconfig" + echo ${ST_SPECIFIC_OUTPUT_LIBDIR} > ${B}/${EVISION_LDCONF} + fi +} + +do_install() { + # includes + install -m 0755 -d ${D}${includedir}/evision + install -m 0644 ${S}/evision-libs/*.h ${D}${includedir}/evision + install -m 0644 ${S}/evision-libs/LICENSE ${D}${includedir}/evision + + # libraries + install -m 0755 -d ${D}${ST_SPECIFIC_OUTPUT_LIBDIR} + install -m 0755 ${S}/evision-libs/*.so.* ${D}${ST_SPECIFIC_OUTPUT_LIBDIR}/ + + # ldconfig file + if [ -s "${B}/${EVISION_LDCONF}" ]; then + install -d ${D}${sysconfdir}/ld.so.conf.d/ + install -m 0644 "${B}/${EVISION_LDCONF}" ${D}${sysconfdir}/ld.so.conf.d/ + fi +} + + +PACKAGES += "\ + evision-ldconf \ + " +FILES:${PN} = "${ST_SPECIFIC_OUTPUT_LIBDIR}/*.so.*" +FILES:evision-ldconf = "${sysconfdir}/ld.so.conf.d/*" +ALLOW_EMPTY:${evision-ldconf} = "1" + +RDEPENDS:${PN} += "\ + evision-ldconf \ + " diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/LICENSE b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/LICENSE new file mode 100644 index 000000000..8e9a4be2d --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/LICENSE @@ -0,0 +1,81 @@ +SLA0044 Rev5/February 2018 + +Software license agreement + +ULTIMATE LIBERTY SOFTWARE LICENSE AGREEMENT + +BY INSTALLING, COPYING, DOWNLOADING, ACCESSING OR OTHERWISE USING THIS SOFTWARE +OR ANY PART THEREOF (AND THE RELATED DOCUMENTATION) FROM STMICROELECTRONICS +INTERNATIONAL N.V, SWISS BRANCH AND/OR ITS AFFILIATED COMPANIES +(STMICROELECTRONICS), THE RECIPIENT, ON BEHALF OF HIMSELF OR HERSELF, OR ON +BEHALF OF ANY ENTITY BY WHICH SUCH RECIPIENT IS EMPLOYED AND/OR ENGAGED AGREES +TO BE BOUND BY THIS SOFTWARE LICENSE AGREEMENT. + +Under STMicroelectronics’ intellectual property rights, the redistribution, +reproduction and use in source and binary forms of the software or any part +thereof, with or without modification, are permitted provided that the following +conditions are met: + +1. Redistribution of source code (modified or not) must retain any copyright +notice, this list of conditions and the disclaimer set forth below as items 10 +and 11. + +2. Redistributions in binary form, except as embedded into microcontroller or +microprocessor device manufactured by or for STMicroelectronics or a software +update for such device, must reproduce any copyright notice provided with the +binary code, this list of conditions, and the disclaimer set forth below as +items 10 and 11, in documentation and/or other materials provided with the +distribution. + +3. Neither the name of STMicroelectronics nor the names of other contributors to +this software may be used to endorse or promote products derived from this +software or part thereof without specific written permission. + +4. This software or any part thereof, including modifications and/or derivative +works of this software, must be used and execute solely and exclusively on or in +combination with a microcontroller or microprocessor device manufactured by or +for STMicroelectronics. + +5. No use, reproduction or redistribution of this software partially or totally +may be done in any manner that would subject this software to any Open Source +Terms. “Open Source Terms” shall mean any open source license which requires as +part of distribution of software that the source code of such software is +distributed therewith or otherwise made available, or open source license that +substantially complies with the Open Source definition specified at +www.opensource.org and any other comparable open source license such as for +example GNU General Public License (GPL), Eclipse Public License (EPL), Apache +Software License, BSD license or MIT license. + +6. STMicroelectronics has no obligation to provide any maintenance, support or +updates for the software. + +7. The software is and will remain the exclusive property of STMicroelectronics +and its licensors. The recipient will not take any action that jeopardizes +STMicroelectronics and its licensors' proprietary rights or acquire any rights +in the software, except the limited rights specified hereunder. + +8. The recipient shall comply with all applicable laws and regulations affecting +the use of the software or any part thereof including any applicable export +control law or regulation. + +9. Redistribution and use of this software or any part thereof other than as +permitted under this license is void and will automatically terminate your +rights under this license. + +10. THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS, WHICH ARE +DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT SHALL +STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +11. EXCEPT AS EXPRESSLY PERMITTED HEREUNDER, NO LICENSE OR OTHER RIGHTS, WHETHER +EXPRESS OR IMPLIED, ARE GRANTED UNDER ANY PATENT OR OTHER INTELLECTUAL PROPERTY +RIGHTS OF STMICROELECTRONICS OR ANY THIRD PARTY. + diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-awb.h b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-awb.h new file mode 100644 index 000000000..2fb028069 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-awb.h @@ -0,0 +1,548 @@ +/** + ****************************************************************************** + * @file evision-api-awb.h + * @author LACROIX - Impulse + * @brief eVision Auto White Balance algorithm public header. + ****************************************************************************** + * @attention + * + * Copyright (c) 2023 LACROIX - Impulse. + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +#ifndef EVISION_API_AWB_H_ +#define EVISION_API_AWB_H_ + +/************************************************************************ + * Includes + ************************************************************************/ + +#include +#include + +#include "evision-api-utils.h" + +/************************************************************************ + * Public Defines + ************************************************************************/ + +/*! @brief Maximum number of supported sensor configurations. */ +#define EVISION_AWB_MAX_SENSOR_CONFIGS (2u) +/*! @brief Default sensor configuration index. */ +#define EVISION_AWB_DEFAULT_SENSOR_CONFIG_INDEX (0u) +/*! @brief Default number of ROIs for AWB. */ +#define EVISION_AWB_DEFAULT_NB_ROI (1u) +/*! @brief Maximum number of AWB profiles. */ +#define EVISION_AWB_MAX_PROFILE_COUNT (5u) + +/*! @brief Number of CFA digital gains for AWB */ +#define EVISION_AWB_NB_DG_CFA_GAINS (4u) +/*! @brief Number of rows / columns of CCM for AWB */ +#define EVISION_AWB_CCM_SIZE (3u) +/*! @brief Size of estimated color temperatures history. Restrictions: >= 3. */ +#define EVISION_AWB_HIST_SIZE (3u) +/*! @brief Number of components for external measurements */ +#define EVISION_AWB_EXT_MEAS_SIZE (3u) + +/*! @brief Flag value to indicate the use of profile selection based AWB operation mode. */ +#define EVISION_AWB_USE_PROFILE_SELECTION_AWB (1u) + +/************************************************************************ + * Public Structures + ************************************************************************/ + +/** + * @typedef evision_awb_priv_param_runtime_t + * @brief AWB algorithm private run-time parameters, member of #evision_awb_estimator_t. + * + * @struct evision_awb_priv_param_runtime + * @brief AWB algorithm private run-time parameters, member of #evision_awb_estimator_t. + */ +typedef struct evision_awb_priv_param_runtime { + /*! @brief + * Current convergence speed.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Default value: 1.0 + */ + double speed_p_value; + /*! @brief + * Flag to indicate change in estimated AWB color temperature.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Default value: 0 + */ + uint8_t temp_changed; + /*! @brief + * AWB internal color temperature.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Default value: -1.0 + */ + double int_temp; + /*! @brief + * T value parameter.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Default value: 0.1 */ + double t_value; + + /*! @brief + * Flag to indicate the estimator has entered an oscillatory state.
+ * Restrictions: >=0 AND < #EVISION_AWB_HIST_SIZE + */ + uint8_t oscillation; + /*! @brief + * History of selected profile color temperatures.
+ */ + double hist_temp_current[EVISION_AWB_HIST_SIZE]; + /*! @brief + * History of computed color temperatures.
+ */ + double hist_temp_estim[EVISION_AWB_HIST_SIZE]; + /*! @brief + * History of computed chromaticity stats.
+ */ + double hist_stats[EVISION_AWB_HIST_SIZE][2u]; + /*! @brief + * Counter for the current number of items in history.
+ * Restrictions: >=0 AND < #EVISION_AWB_HIST_SIZE + */ + uint16_t cnt_hist; + +} evision_awb_priv_param_runtime_t; + +/** + * @typedef evision_awb_profile_t + * @brief AWB algorithm profile definition. + * + * @struct evision_awb_profile + * @brief AWB algorithm profile definition. + */ +typedef struct evision_awb_profile { + /*! @brief + * The color temperature of the illumination for which the profile is defined. + * Positive value, typical range of values is between 2000 and 10000 °Kelvin.
+ * Restrictions: Internal algorithm parameter set during initialization, must not be changed during run-time.
+ */ + float color_temperature; + /*! @brief + * The sensor/ISP channel gains.
+ * Note: The individual gain values are stored using the float type. + * The gains can be stored as ratios or as floating point representations of integer values. + * It is up to the user to convert the values to the format expected by the sensor/ISP. + */ + float gain_values[EVISION_AWB_NB_DG_CFA_GAINS]; + /*! @brief + * The ISP color correction matrix coefficients.
+ * Note: The individual color correction matrix coefficients are stored using the float type. + * The coefficients can be stored as ratios or as a floating point representation of integer values. + * It is up to the user to convert the values to the format expected by the sensor/ISP. + */ + float ccm_coefficients[EVISION_AWB_CCM_SIZE][EVISION_AWB_CCM_SIZE]; + /*! @brief + * The ISP color correction matrix offset coefficients.
+ * Note: The individual color correction matrix offset coefficients are stored using the float type. + * The coefficients can be stored as ratios or as a floating point representation of integer values. + * It is up to the user to convert the values to the format expected by the sensor/ISP. + */ + float ccm_offsets[EVISION_AWB_CCM_SIZE]; +} evision_awb_profile_t; + +/** + * @typedef evision_awb_calib_data_t + * @brief Sensor specific AWB calibration data, member of #evision_awb_estimator_t. + * + * @struct evision_awb_calib_data + * @brief Sensor specific AWB calibration data, member of #evision_awb_estimator_t. + * + * Contains sensor specific AWB calibration data for accurate color rendering. + * Support for both continious AWB and profile selection based AWB. + * + */ +typedef struct evision_awb_calib_data { + /*! @brief + * Minimum supported color temperature.
+ * Restrictions: Internal algorithm parameter, positive valued. Set during estimator initialization. + */ + double min_temp; + /*! @brief + * Maximum supported color temperature.
+ * Restrictions: Internal algorithm parameter, positive valued and > #min_temp. Set during estimator initialization. + */ + double max_temp; + + /* ############################## + Parameters for continuous AWB + */ + + /* ################################# + Parameters for profile based AWB + */ + + /*! @brief + * Counter for the actual number of specified profiles.
+ * Restrictions: Internal algorithm parameter set during initialization. Must not be changed during runtime. + * Range of possible values: > 0 and < #EVISION_AWB_MAX_PROFILE_COUNT + */ + uint16_t profiles_count; + + /*! @brief + * Array containing the color temperatures of the defined profiles.
+ * Restrictions: Internal algorithm parameter set during initialization. Must not be changed during runtime. + */ + float temperatures[EVISION_AWB_MAX_PROFILE_COUNT]; + + /*! @brief + * Array containing the decision thresholds between the different profiles for profile selection.
+ * Restrictions: Internal algorithm parameter set during initialization. Must not be changed during runtime. + */ + float decision_thresholds[EVISION_AWB_MAX_PROFILE_COUNT - 1]; + + /*! @brief + * Array containing the different AWB profiles.
+ * Restrictions: Internal algorithm parameter set during initialization. Must not be changed during runtime. + */ + evision_awb_profile_t profiles[EVISION_AWB_MAX_PROFILE_COUNT]; + + /*! @brief + * Pointer to the active profile.
+ * Restrictions: Internal algorithm parameter updated during runtime. Code outside of the library must not alter its value. + */ + evision_awb_profile_t* active_profile; + +} evision_awb_calib_data_t; + +/** + * @typedef evision_awb_hyper_param_t + * @brief AWB algorithm hyper-parameters, member of #evision_awb_estimator_t. + * + * @struct evision_awb_hyper_param + * @brief AWB algorithm hyper-parameters, member of #evision_awb_estimator_t. + * + */ +typedef struct evision_awb_hyper_param { + /*! @brief + * Ratio of pixels to be processed for AWB when using the SW statistics extraction block, direct impact on processing time. + * (Ex. A value of 2 will process 1 pixel every 2*2 pixel block in the entire ROI).
+ * Restrictions: >= 1 AND < image_size.
+ * Default value: 1 */ + uint16_t awb_process_ratio; + + /*! @brief + * AWB low luminance threshold value when using the SW statistics extraction block. + * Skip pixel from AWB stats if luminance value below the threshold.
+ * Restrictions: >= 0 AND < #y_thresh_high.
+ * Default value: 0 */ + double y_thresh_low; + /*! @brief + * AWB high luminance threshold value when using the SW statistics extraction block. + * Skip pixel from AWB stats if luminance value above the threshold.
+ * Restrictions: > #y_thresh_low AND <= 255.
+ * Default value: 0 */ + double y_thresh_high; + + /*! @brief + * Convergence speed increment.
+ * Restrictions: > 0 AND < #speed_p_max.
+ * Default value: 0.1 */ + double speed_p_increment; + /*! @brief + * Minimum convergence speed.
+ * Restrictions: > 0 AND < #speed_p_max.
+ * Default value: 1.0 */ + double speed_p_min; + /*! @brief + * Maximum convergence speed.
+ * Restrictions: > #speed_p_min.
+ * Default value: 3.0 */ + double speed_p_max; + + /*! @brief + * AWB color temperature estimation precision.
+ * Default value: 1 °K */ + double precision_temp; + + /*! @brief + * Offset around the decision threshold for hysteresis based decision for profile selection.
+ * Default value: 50 °K */ + float hysteresis_offset; + + /*! @brief + * Threshold of acceptable chromatic deviation around neutrality for convergence.
+ * Restrictions: > 0.
+ * Default value: 1.0. */ + float conv_criterion; + + /*! @brief + * Threshold of acceptable chromatic deviation along the green-magenta axis. + * Inhibit profile switch if the green or magenta component is higher than this threshold.
+ * Restrictions: > 0.
+ * Default value: 0.5. */ + float gm_tolerance; + + /*! @brief + * Tolerance parameter to assess color temperature similarity: assume same colour temperature if absolute difference smaller than this value. + * Parameter of the profile selection oscillation detection logic.
+ * Restrictions: > 0 and >= 2 * #hysteresis_offset
+ * Default value: 175 K. */ + float ct_tolerance; + + /*! @brief + * Tolerance parameter to assess similarity of AWB statistics: assume identical statistics if euclidean norm smaller than this value. + * Parameter of the profile selection oscillation detection logic.
+ * Restrictions: > 0.
+ * Default value: 1.5. */ + float stats_tolerance; + +} evision_awb_hyper_param_t; + +/** + * @typedef evision_awb_estimator_t + * @brief AWB estimator structure. + * + * @struct evision_awb_estimator + * @brief AWB estimator structure. + * + * Set of all data structures required for the functioning of the AWB algorithm. + */ +typedef struct evision_awb_estimator { + /*! @brief + * Indicates the state of the AWB algorithm.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Possible values: see #evision_state_t */ + evision_state_t state; + + /*! @brief + * Computed sensor/ISP gain values stored as float values. + * To be applied to the sensor/ISP after conversion to the format expected by the sensor/ISP.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Note: Storing values as floats provides the required flexibility to support different sensors and ISPs. + * Converting the float value to the specific sensor/ISP format is to be performed at application level. + */ + float dg_cf[EVISION_AWB_NB_DG_CFA_GAINS]; + /*! @brief + * Computed ISP CCM coefficients stored as float values. + * To be applied to the sensor/ISP after conversion to the format expected by the sensor/ISP.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Note: Storing values as floats provides the required flexibility to support different sensors and ISPs. + * Converting the float value to the specific sensor/ISP format is to be performed at application level. + */ + float ccm[EVISION_AWB_CCM_SIZE][EVISION_AWB_CCM_SIZE]; + /*! @brief + * Computed ISP CCM offset coefficients stored as float values. + * To be applied to the sensor/ISP after conversion to the format expected by the sensor/ISP.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Note: Storing values as floats provides the required flexibility to support different sensors and ISPs. + * Converting the float value to the specific sensor/ISP format is to be performed at application level. + */ + float ccm_offsets[EVISION_AWB_CCM_SIZE]; + + /*! @brief + * Estimated color temperature.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Default value: 5000 °K + */ + double out_temp; + + /*! @brief + * Select the AWB operating mode.
+ * Restrictions: Only profile selection AWB is currently supported. + */ + uint8_t awb_mode; + + /*! @brief + * The set of run-time variables.
+ * Restrictions: Internal algorithm parameters. + * Must not be changed! */ + evision_awb_priv_param_runtime_t runtime_vars; + + /*! @brief + * AWB calibration data.
+ * Restrictions: Internal algorithm parameter. + * Must be set during initialization using the provided functions! + * Must not be changed during runtime! */ + evision_awb_calib_data_t calib_data; + + /*! @brief + * The set of AWB algorithm hyper-parameters. Set to default values during initialization!
+ * As a general note, the hyper-parameters can be updated from their default values. + * Care must be taken as in such a case there is no guarantee of proper functioning of the estimator!
+ * Restrictions: Must not be updated during runtime! + */ + evision_awb_hyper_param_t hyper_params; + + /*! @brief + * Handler to output logs.
*/ + evision_api_log_callback log_cb; + +} evision_awb_estimator_t; + +/************************************************************************ + * Public Variables + ************************************************************************/ + +/************************************************************************ + * Public Function Prototypes + ************************************************************************/ + +/************************************************************************ + * Public Function Definitions + ************************************************************************/ + +/** + * @fn evision_awb_estimator_t* evision_api_awb_new(void); + * @brief Create a new #evision_awb_estimator_t instance. + * + * @param[in] log_cb Callback to output logs. + * @return The address of the created instance. NULL if it failed. + * + * This function performs dynamic memory allocations for the AWB estimator. + * If the process fails, NULL is returned. + * + * @warning Allocates memory. Free memory with evision_api_awb_delete(). + */ +evision_awb_estimator_t* evision_api_awb_new(evision_api_log_callback log_cb); + +/** + * @fn evision_return_t evision_api_awb_delete(evision_awb_estimator_t* self); + * @brief Releases the memory allocated for the #evision_awb_estimator_t estimator instance. + * + * @param[in, out] self Concerned estimator instance address. + * @return + * - EVISION_RET_SUCCESS + * - EVISION_RET_PARAM_ERR + * + * This function releases the memory allocated for an AWB estimator. + * To be called when the estimator is no longer required. + */ +evision_return_t evision_api_awb_delete(evision_awb_estimator_t* self); + +/** + * @brief Set the parameters of the input AWB profile structure. + * + * @param[in, out] awb_profile AWB profile structure. + * @param[in] color_temperature Color temperature of the illumination used to derive the profile parameters. + * @param[in] cfa_gains Array containing the sensor/ISP channel gains. + * @param[in] ccm_coefficients Matrix containing the color correction matrix coefficients. + * @param[in] ccm_offsets Array containing the color correction matrix offsets. + * + */ +void evision_api_awb_set_profile(evision_awb_profile_t* awb_profile, + float color_temperature, const float cfa_gains[EVISION_AWB_NB_DG_CFA_GAINS], + const float ccm_coefficients[EVISION_AWB_CCM_SIZE][EVISION_AWB_CCM_SIZE], + const float ccm_offsets[EVISION_AWB_CCM_SIZE]); + +/** + * @brief Initialize the AWB profiles from user supplied data. + * The library supports a variable number of profiles from a minimum of 1 up to a max number of #EVISION_AWB_MAX_PROFILE_COUNT. + * + * @param[in, out] self AWB estimator to be initialized. + * @param[in] min_temp Minimum supported color temperature, positive value. + * @param[in] max_temp Maximum supported color temperature, positive value and greater than min_temp. + * @param[in] nb_profiles The number of defined profiles, between 1 and #EVISION_AWB_MAX_PROFILE_COUNT. + * @param[in] decision_thresholds The decision thresholds between profiles in degrees Kelvin. A total of nb_profiles - 1 decision thresholds must be provided. + * @param[in] awb_profiles Array of profile data, a total of nb_profiles must be provided. + * @return + * - EVISION_RET_SUCCESS + * - EVISION_RET_PARAM_ERR + * - EVISION_RET_FAILURE + * + * The min_temp parameter must be at most equal to the smallest color temperature of the defined profiles. + * The max_temp parameter must be at least equal to the highest color temperature of the defined profiles. + * + * The profiles must be unique with respect to the color temperature of the illumination and must be specified in ascending order. + * The choice of the actual number of profiles and the color temperature of the illumination for each profile is + * generally dependent on the intended application and/or the available hardware equipement for generating the calibration data. + * They must be complete in the sense that they must contain all the required fields (channel gains and color correction coefficients). + * It is the user's responsibility to ensure that this is indeed the case. + * + * The decision thresholds must be unique and specified in ascending order. + * Between each pair of adjacent profiles there must be exactly one decision threshold. + * The exact strategy for choosing the decision thresholds between adjacent thresholds (e.g. halfway, 1/3 - 2/3, etc.) + * is a tuning strategy which generally depends on the intended application and the choice of the profiles. + * + */ +evision_return_t evision_api_awb_init_profiles(evision_awb_estimator_t* const self, + double min_temp, double max_temp, + uint16_t nb_profiles, float decision_thresholds[EVISION_AWB_MAX_PROFILE_COUNT - 1], + evision_awb_profile_t awb_profiles[EVISION_AWB_MAX_PROFILE_COUNT]); + +/** + * @brief Run the AWB estimator on the full frame data. + * + * @param[in] self Concerned estimator instance address. + * @param[in] image Current frame. + * @param[in] use_ext_meas Flag to indicate the use of external AWB measurement: 0 - use internal AWB measurement, > 0 - use external measurement. + * @param[in] ext_meas External measurement vector, contains average R, G, B values. + * @return + * - EVISION_RET_INVALID_VALUE + * - EVISION_RET_SUCCESS + * - EVISION_RET_PARAM_ERROR + * - EVISION_RET_FAILURE + * + * Run an execution of the control loop on the current camera setup and frame. + * The parameters #evision_awb_estimator_t.ccm and #evision_awb_estimator_t.dg_cf are updated to reflect the new CCMs and channel gains to apply. + * + * The software statistics extraction block, if used, will consider the entire data frame in the extraction of the AWB statistics. + * The parameter #evision_awb_hyper_param_t.awb_process_ratio defines a ratio of pixels to check PER row and PER column. + * It serves to reduce the computational requirements for AWB statistics extraction. + * For example: a process_ratio of 4 means that for every 4 pixels per row and per column, (block of 16 pixels) only 1 is considered. + * For small to moderate values, the loss in accuracy is mostly negligeable with non-negligeable improvements in computational time. + * + * The average R, G, and B values provided by the external \[hardware\] measurement block must be in the range \[0, 255\]. + * If the data is in a different range, the average values must be converted to this range before being passed as parameters to the function. + * + * The switch at run-time between using the internal software measurements and the external \[hardware\] measurements is not supported. + * + * Raises: + * - EVISION_LOGSEV_INFO + * - EVISION_LOGSEV_WARNING + * - EVISION_LOGSEV_ERROR + */ +evision_return_t evision_api_awb_run_average(evision_awb_estimator_t* const self, const evision_image_t* const image, + uint8_t use_ext_meas, double ext_meas[EVISION_AWB_EXT_MEAS_SIZE]); + +#ifdef ALGO_SW_STATISTICS +/** + * @brief Run the AWB estimator on the selected ROIs. + * + * @param[in] self Concerned estimator instance address. + * @param[in] image Current frame. + * @param[in] roi_array Set of ROIs where the process will be applied, other regions will not be considered. + * @param[in] use_ext_meas Flag to indicate the use of external AWB measurement: 0 - use internal AWB measurement, > 0 - use external measurement. + * @param[in] ext_meas External measurement vector, contains average R, G, B values. + * @return + * - EVISION_RET_INVALID_VALUE + * - EVISION_RET_SUCCESS + * - EVISION_RET_PARAM_ERROR + * - EVISION_RET_FAILURE + * + * Run an execution of the control loop on the current camera setup and frame. + * The parameters #evision_awb_estimator_t.ccm and #evision_awb_estimator_t.dg_cf are updated to reflect the new CCMs and channel gains to apply. + * + * The software statistics extraction block, if used, will only considered the pixels within the specified ROIs. + * The parameter #evision_awb_hyper_param_t.awb_process_ratio defines, within the ROI to check, a portion of pixels to check PER row and PER column. + * It serves to reduce the computational requirements for AWB statistics extraction. + * For example: a process_ratio of 4 means that for every 4 pixels per row and per column, (block of 16 pixels) only 1 is considered. + * For small to moderate values, the loss in accuracy is mostly negligeable with non-negligeable improvements in computational time. + * + * The average R, G, and B values provided by the external \[hardware\] measurement block must be in the range \[0, 255\]. + * If the data is in a different range, the average values must be converted to this range before being passed as parameters to the function. + * + * The switch at run-time between using the internal software measurements and the external \[hardware\] measurements is not supported. + * + * Raises: + * - EVISION_LOGSEV_INFO + * - EVISION_LOGSEV_WARNING + * - EVISION_LOGSEV_ERROR + */ +evision_return_t evision_api_awb_run_roi(evision_awb_estimator_t* const self, + const evision_image_t* const image, const evision_roi_array_t* const roi_array, + uint8_t use_ext_meas, double ext_meas[EVISION_AWB_EXT_MEAS_SIZE]); +#endif + +#endif /* EVISION_API_AWB_H_ */ diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-st-ae.h b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-st-ae.h new file mode 100644 index 000000000..3d34f2268 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-st-ae.h @@ -0,0 +1,228 @@ +/** + ****************************************************************************** + * @file evision-api-st-ae.h + * @author STMicroelectronics / LACROIX - Impulse + * @brief ST eVision Auto Exposure algorithm public header. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * Copyright (c) 2023 LACROIX - Impulse. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef EVISION_API_ST_AE_H_ +#define EVISION_API_ST_AE_H_ + +/* Includes ------------------------------------------------------------------*/ +#include +#include +#include "evision-api-utils.h" + +/* Exported types ------------------------------------------------------------*/ +typedef struct evision_st_ae_hyper_param { + /*! @brief + * Target exposure to reach.
+ * Restrictions: >= 0 AND < 256.
+ * Default value: 56 */ + uint32_t target; + /*! @brief + * Max delta between lum stat and target in convergence region
+ * Restrictions: >= 0 AND < 256.
+ * Default value: 10 */ + uint32_t tolerance; + /*! @brief + * Factor applied to increment gain update
+ * Restrictions: >= 0 AND < 1000.
+ * Default value: 100 */ + uint32_t gain_increment_coeff; + /*! @brief + * Max delta value between lum stat and target in low delta region
+ * Restrictions: >= 0 AND < 256.
+ * Default value: 45 */ + uint32_t gain_low_delta; + /*! @brief + * Min delta value between lum stat and target in high delta region
+ * Restrictions: >= 0 AND < 256.
+ * Default value: 120 */ + uint32_t gain_high_delta; + /*! @brief + * Maximum gain update value in luminance low delta region
+ * Restrictions: >= #gain_min AND < #gain_max.
+ * Default value: 1500 */ + uint32_t gain_low_increment_max; + /*! @brief + * Maximum gain update value in luminance medium delta region
+ * Restrictions: >= #gain_min AND < #gain_max.
+ * Default value: 6000 */ + uint32_t gain_medium_increment_max; + /*! @brief + * Maximum gain update value in luminance high delta region
+ * Restrictions: >= #gain_min AND < #gain_max.
+ * Default value: 12000 */ + uint32_t gain_high_increment_max; + /*! @brief + * Factor applied to increment exposure
+ * Restrictions: >= 0.0 AND < 1.
+ * Default value: 0.020*/ + double exposure_up_ratio; + /*! @brief + * Minimum value accepted for exposure time.
+ * Restrictions: >= 0.0 AND < 1.
+ * Default value: 0.004*/ + double exposure_down_ratio; + /*! @brief + * Minimum value accepted for exposure time.
+ * Restrictions: >= 0.0 AND < #exposure_max.
+ * Default value: 0.0*/ + uint32_t exposure_min; + /*! @brief + * Maximum value accepted for exposure time.
+ * Restrictions: > 0.0 AND >= #exposure_min.
+ * Default value: 1.0 */ + uint32_t exposure_max; + /*! @brief + * Minimum possible gain value.
+ * Restrictions: > 1 AND < #gain_max.
+ * Default value: 1 */ + uint32_t gain_min; + /*! @brief + * Maximum possible gain value.
+ * Restrictions: >= 1 AND > #gain_min.
+ * Default value: 1 */ + uint32_t gain_max; + /*! @brief + * Luminance limit where we consider the frame as dark.
+ * Restrictions: >= 0 AND < 256.
+ * Default value: 5 */ + uint32_t dark_zone_lum_limit; + /*! @brief + * Compatible light frequency in Hz to avoid flickering effect.
+ * Restrictions: >= 0 (None) AND < 256.
+ * Default value: 0 (None) */ + uint32_t compat_freq; + +} evision_st_ae_hyper_param_t; + +/** + * @typedef evision_ae_estimator_t + * @brief AE estimator structure. + * + * @struct evision_ae_estimator + * @brief AE estimator structure. + * + * Set of all data structures required for the functioning of the AE algorithm. + */ +typedef struct evision_st_ae_process_t { + /*! @brief + * Indicates the state of the AE algorithm.
+ * Restrictions: Internal algorithm parameter. Must not be changed!
+ * Possible values: see #evision_state_t */ + evision_state_t state; + /*! @brief + * Computed exposure time to apply to sensor.
+ * Restrictions: Internal algorithm parameter. Must not be changed! */ + uint32_t new_exposure; + + /*! @brief + * Computed gain value to apply to sensor.
+ * Restrictions: Internal algorithm parameter. Must not be changed! */ + uint32_t new_gain; + + /*! @brief + * The set of AE algorithm hyper-parameters. Set to default values at creation!
+ * #evision_ae_hyper_param_t.exposure_min, #evision_ae_hyper_param_t.exposure_max, + * #evision_ae_hyper_param_t.gain_min and #evision_ae_hyper_param_t.gain_max hyper-parameters + * must be updated before running the ae process with respect to the sensor in use.
+ * As a general note, the hyper-parameters can be updated from their default values. + * Care must be taken as in such a case there is no guarantee of proper functioning of the process!
+ * Restrictions: Must not be updated during runtime! + */ + evision_st_ae_hyper_param_t hyper_params; + + /*! @brief + * Handler to output logs.
*/ + evision_api_log_callback log_cb; + +} evision_st_ae_process_t; + +/* Exported constants --------------------------------------------------------*/ +#define EVISION_ST_AEC_LUM_TARGET 56 /* Default luminance value targeted by the AE algorithm */ +#define EVISION_ST_AEC_TOLERANCE 10 /* Max delta between lum stat and target in convergence region */ +#define EVISION_ST_AEC_GAIN_INCREMENT_COEFF 100 /* Factor applied to increment gain update */ +#define EVISION_ST_AEC_GAIN_LOW_DELTA 45 /* Max delta value between lum stat and target in low delta region */ +#define EVISION_ST_AEC_GAIN_HIGH_DELTA 120 /* Min delta value between lum stat and target in high delta region */ +#define EVISION_ST_AEC_GAIN_LOW_INC_MAX 1500 /* Maximum gain update value in luminance low delta region */ +#define EVISION_ST_AEC_GAIN_MEDIUM_INC_MAX 6000 /* Maximum gain update value in luminance medium delta region */ +#define EVISION_ST_AEC_GAIN_HIGH_INC_MAX 12000 /* Maximum gain update value in luminance high delta region */ +#define EVISION_ST_AEC_EXPOSURE_UP_RATIO 0.020F /* Factor applied to increment exposure */ +#define EVISION_ST_AEC_EXPOSURE_DOWN_RATIO 0.004F /* Factor applied to decrement exposure */ +#define EVISION_ST_AEC_DARKZONE_LUM_LIMIT 5 /* Default value for dark zone luminance limit */ +#define EVISION_ST_DEFAULT_EXPOSURE_MIN 0 /* Default value for exposure min */ +#define EVISION_ST_DEFAULT_EXPOSURE_MAX 33000 /* Default value for expsoure max */ +#define EVISION_ST_DEFAULT_GAIN_MIN 1 /* Default value for gain min */ +#define EVISION_ST_DEFAULT_GAIN_MAX 100 /* Default value for gain max */ +#define EVISION_ST_DEFAULT_COMPAT_FREQ 0 /* Default value for compatible frequency */ + + +/* Exported macro ------------------------------------------------------------*/ +/* Exported functions ------------------------------------------------------- */ +/** + * @fn evision_st_ae_process_t* evision_api_st_ae_new(void); + * @brief Create a new #evision_st_ae_process_t instance. + * + * @param[in] log_cb Callback to output logs. + * @return The address of the created instance. NULL if it failed. + */ +evision_st_ae_process_t* evision_api_st_ae_new(evision_api_log_callback log_cb); + +/** + * @fn evision_return_t evision_api_st_ae_delete(evision_st_ae_process_t* self); + * @brief Releases the memory allocated for the #evision_st_ae_process_t ae process instance. + * + * @param[in, out] ae process instance address. + * @return + * - EVISION_RET_SUCCESS + * - EVISION_RET_PARAM_ERR + + */ +evision_return_t evision_api_st_ae_delete(evision_st_ae_process_t* self); + +/** + * @fn evision_return_t evision_api_st_ae_init(evision_st_ae_process_t* const self) + * @brief Initialize the AE process structure. + * + * @param[in, out] self AE process to be initialized. + * @return + * - EVISION_RET_SUCCESS + * - EVISION_RET_PARAM_ERROR + * + * Initializes the AE process structure. Hyper params can later be modified. + */ +evision_return_t evision_api_st_ae_init(evision_st_ae_process_t* const self); + +/** + * @fn evision_return_t evision_api_st_ae_process(evision_st_ae_process_t* const self, uint32t_t current_gain, uint32_t current_exposure, uint8_t average_lum) + * @brief Run the ae process to calculate new gain and expsoure + * + * @param[in, out] self Concerned process instance address. + * @param[in] current_gain Current sensor gain in mdB. + * @param[in] current_exposure Current sensor exposure microsecond. + * @param[in] average_lum Average luminance measurement value. Range should normally be between 0 (completely dark image) and 255 (completely white image). + * + * @return + * - EVISION_RET_SUCCESS + * - EVISION_RET_FAILURE + */ +evision_return_t evision_api_st_ae_process(evision_st_ae_process_t* const self, uint32_t current_gain, uint32_t current_exposure, uint8_t average_lum); + +/* Exported variables --------------------------------------------------------*/ + +#endif /* EVISION_API_ST_AE_H_ */ diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-utils.h b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-utils.h new file mode 100644 index 000000000..4a4d9f121 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/evision-api-utils.h @@ -0,0 +1,326 @@ +/** + ****************************************************************************** + * @file evision-api-utils.h + * @author LACROIX - Impulse + * @brief eVision utilitary public header. + ****************************************************************************** + * @attention + * + * Copyright (c) 2023 LACROIX - Impulse. + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ + +#ifndef EVISION_API_UTILS_H_ +#define EVISION_API_UTILS_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +/************************************************************************ + * Includes + ************************************************************************/ + +#include + +/************************************************************************ + * Public Defines + ************************************************************************/ + +/** + * @def EVISION_MIN + * @brief Determine the lowest value between a and b + */ +#define EVISION_MIN(a, b) ((a) < (b) ? (a) : (b)) + +/** + * @def EVISION_MAX + * @brief Determine the greatest value between a and b + */ +#define EVISION_MAX(a, b) ((a) > (b) ? (a) : (b)) + +/** + * @def EVISION_SIGN + * @brief Determine the sign of a number. + */ +#define EVISION_SIGN(x) ((x) > 0.0f ? 1.0f : -1.0f) + +#ifdef ALGO_SW_STATISTICS +/* YUV parameters */ +/*! @brief Minimum of Y value due to ISP RGB 2 YUV conversion formula */ +#define EVISION_YUV_MIN_Y_VAL (16.0) +/*! @brief Maximum of Y value due to ISP RGB 2 YUV conversion formula */ +#define EVISION_YUV_MAX_Y_VAL (235.140625) +/*! @brief YUV factor value due to ISP RGB 2 YUV conversion formula */ +#define EVISION_YUV_FACTOR (256) +/*! @brief YUV maximum value due to ISP RGB 2 YUV conversion formula */ +#define EVISION_YUV_MAX_VAL (255) +/*! @brief range of Y value due to ISP RGB 2 YUV conversion formula */ +#define EVISION_YUV_RANGE_Y_VAL (EVISION_YUV_MAX_Y_VAL - EVISION_YUV_MIN_Y_VAL) +#endif + +/** + * @typedef evision_return_t + * @brief Return type for functions. + * + * @enum evision_return + * @brief Return type for functions. + * + * Return code that must be checked to be sure the output of the function is valid. + */ +typedef enum evision_return { + EVISION_RET_INVALID_VALUE = 2, /*!< The process succeeded but the output value is invalid and should not be used.*/ + EVISION_RET_SUCCESS = 1, /*!< the process succeeded. */ + EVISION_RET_FAILURE = 0, /*!< Error: There was a failure. */ + EVISION_RET_PARAM_ERR = -1, /*!< Error: A parameter is invalid. */ + EVISION_RET_DIMENSION_ERR = -2, /*!< Error: A dimension is incompatible with the process. */ + EVISION_RET_MEMORY_ERR = -3, /*!< Error: Could not allocate memory. */ + EVISION_RET_FILE_ERR = -4, /*!< Error: A file could not be opened */ + EVISION_RET_FORMAT_ERR = -5, /*!< Error: the specified format is invalid. */ +} evision_return_t; + +/** + * @typedef evision_state_t + * @brief Describes the state of the estimator. + * + * @enum evision_state + * @brief Describes the state of the estimator. + */ +typedef enum evision_state { + /*! @brief + * The estimator exists. + */ + EVISION_STATE_NONE = 0u, + /*! @brief + * The estimator was initialized and is ready to run. + */ + EVISION_STATE_INIT = 1u, + /*! @brief + * The estimator is running. + */ + EVISION_STATE_RUN = 2u, +} evision_state_t; + +/** + * @typedef evision_image_format_t + * @brief Specify the format under which the image is stored. + * + * @enum evision_image_format + * @brief Specify the format under which the image is stored. + * + * Those formats are as the ones defined by V4L2. + */ +typedef enum evision_image_format { + /*! @brief + * 8 bit gray-level. + */ + EVISION_IMAGE_FORMAT_GRAY8 = 0u, + /*! @brief + * 8 bit gray-level. + */ + EVISION_IMAGE_FORMAT_GREY8 = 1u, + /*! @brief + * RGB interleaved, 8 bit per channel, 24 bit per pixel.. + */ + EVISION_IMAGE_FORMAT_RGB8 = 2u, + /*! @brief + * BGR interleaved, 8 bit per channel, 24 bit per pixel.. + */ + EVISION_IMAGE_FORMAT_BGR8 = 3u, + /*! @brief + * 8 bit YUV 422 SP format. + */ + EVISION_IMAGE_FORMAT_YUV422SP = 4u, + /*! @brief + * RGGB Bayer format, 8 bit per channel, Red compound first. + */ + EVISION_IMAGE_FORMAT_RGGB8 = 5u, + /*! @brief + * BGGR Bayer format, 8 bit per channel, Blue compound first. + */ + EVISION_IMAGE_FORMAT_BGGR8 = 6u, + /*! @brief + * GRBG Bayer format, 16 bit per channel, each coded on 16 bits inverted (0xFF, 0x0F). + */ + EVISION_IMAGE_FORMAT_GRBG12 = 7u, + /*! @brief + * RGGB Bayer format, 16 bit per channel, each coded on 16 bits inverted (0xFF, 0x0F). + */ + EVISION_IMAGE_FORMAT_RGGB12 = 8u +} evision_image_format_t; + +/************************************************************************ + * Public Functions Signatures + ************************************************************************/ + +/** + * @brief Callback function to output logs. + * + * @param[in] msg Received message. + * + * If the user wants to handle the log and messages yielded by the estimator, + * a function with this signature must be specified. + * + */ +typedef void (*evision_api_log_callback)(const char* const msg); + +/************************************************************************ + * Public Structures + ************************************************************************/ + +/** + * @typedef evision_image_t + * @brief Structure to hold frame data and metadata for eVision AE and AWB algorithms. + * + * @struct evision_image + * @brief Structure to hold frame data and metadata for eVision AE and AWB algorithms. + * + */ +typedef struct evision_image { + /*! @brief + * Frame data. + */ + uint8_t* pdata; + /*! @brief + * Number of pixels columns in the image. + */ + uint16_t width; + /*! @brief + * Number of pixels rows in the image. + */ + uint16_t height; + /*! @brief + * The format of the image. + */ + evision_image_format_t format; +} evision_image_t; + +#ifdef ALGO_SW_STATISTICS +/** + * @typedef evision_roi_t + * @brief Represents a Region Of Interest (aka a rectangle of pixels in an image). + * + * @struct evision_roi + * @brief Represents a Region Of Interest (aka a rectangle of pixels in an image). + * + * A ROI serves to limit the statistics extraction to a specific zone inside the frame. + * Several ROIs can be defined and for each ROI a weight must be defined. + * The aggregated statistic is the weighted average of individual ROI statistics. + * Setting all weights equal results in the aggregated statistic to be the arithmetic average of the individual statistics. + * + */ +typedef struct evision_roi { + /*! @brief + * Horizontal pixel coordinate of the Top-Left corner of the ROI. + */ + uint16_t x0; + /*! @brief + * Vertical pixel coordinate of the Top-Left corner of the ROI. + */ + uint16_t y0; + /*! @brief + * Horizontal pixel coordinate of the Bottom-Right corner of the ROI. + */ + uint16_t x1; + /*! @brief + * Vertical pixel coordinate of the Bottom-Right corner of the ROI. + */ + uint16_t y1; + /*! @brief + * Weight associated to the ROI. + */ + double weight; +} evision_roi_t; + +/** + * @typedef evision_roi_array_t + * @brief Represents an array of evision_roi. + * + * @struct evision_roi_array + * @brief Represents an array of evision_roi. + * + * Represents the collection of all the defined ROIs for the estimator. Must contain at least one ROI. + * + */ +typedef struct evision_roi_array { + /*! @brief + * Pointer to the beginning of the array. + */ + evision_roi_t* parray; + /*! @brief + * Number of elements in the array. + */ + uint16_t len; +} evision_roi_array_t; +#endif + + +/************************************************************************ + * Private Structure Declaration + ************************************************************************/ + +/************************************************************************ + * Public Variables + ************************************************************************/ + +/************************************************************************ + * Public Function Prototypes + ************************************************************************/ + +/* Library management functions */ +#ifdef ALGO_SW_STATISTICS +/* ROI array management */ + +/** + * @fn evision_roi_array_t* evision_api_roi_array_new(const uint16_t length) + * @brief Create and allocate the memory for a new array of #evision_roi_array_t elements. + * + * @param[in] length Size of the array to create + * @return Address of the created #evision_roi_array_t. NULL if something went wrong. + */ +evision_roi_array_t* evision_api_roi_array_new(const uint16_t length); + +/** + * @fn evision_roi_array_t* evision_api_roi_array_new_grid(const uint16_t frame_width, const uint16_t frame_height, const uint16_t roi_width, const uint16_t roi_height, const uint16_t nb_roi_col, const uint16_t nb_roi_row) + * @brief Create and allocate the memory for a new array of #evision_roi_array_t with pre filled ROIs positioned as a grid. + * + * In the end, the number of ROIs will be nb_roi_col * nb_roi_row + * + * @param[in] frame_width Number of pixels column in the frame where the ROIs will be placed. + * @param[in] frame_height Number of pixels rows in the frame where the ROIs will be placed. + * @param[in] roi_width Size (columns) of each ROI. + * @param[in] roi_height Size (rows) of each ROI. + * @param[in] nb_roi_col Number of ROIs to be placed in the horizontal dimension. + * @param[in] nb_roi_row Number of ROIs to be placed in the vertical dimension. + * @return Address of the created #evision_roi_array_t. NULL if something went wrong. + */ +evision_roi_array_t* evision_api_roi_array_new_grid(const uint16_t frame_width, const uint16_t frame_height, const uint16_t roi_width, const uint16_t roi_height, const uint16_t nb_roi_col, const uint16_t nb_roi_row); + +/** + * @fn evision_return_t evision_api_roi_array_delete(evision_roi_array_t* self) + * @brief Free the memory allocated to an #evision_roi_array_t. + * + * @param[in, out] self Address of the concerned ROI array instance to be deleted, cannot be used after. + * @return + * - EVISION_RET_SUCCESS + * - EVISION_RET_PARAM_ERR + */ +evision_return_t evision_api_roi_array_delete(evision_roi_array_t* self); +#endif + +/************************************************************************ + * Public Function Definitions + ************************************************************************/ + +#ifdef __cplusplus +} +#endif + +#endif /* EVISION_API_UTILS_H_ */ diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/libevision-awb.so.1.0.7 b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/libevision-awb.so.1.0.7 new file mode 100755 index 000000000..6b64a3aea Binary files /dev/null and b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/libevision-awb.so.1.0.7 differ diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/libevision-st-ae.so.1.0.7 b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/libevision-st-ae.so.1.0.7 new file mode 100755 index 000000000..d9ab248b2 Binary files /dev/null and b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/evision/files/evision-libs/libevision-st-ae.so.1.0.7 differ diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0001-0.3.0-stm32mp-add-dcmipp-ipa.patch b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0001-v0.3.0-stm32mp.patch similarity index 91% rename from meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0001-0.3.0-stm32mp-add-dcmipp-ipa.patch rename to meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0001-v0.3.0-stm32mp.patch index d40f145a3..90c35d652 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0001-0.3.0-stm32mp-add-dcmipp-ipa.patch +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0001-v0.3.0-stm32mp.patch @@ -1,9 +1,11 @@ -From 3a1b1068ecae127ab97cf4b3f6fd638893a8380a Mon Sep 17 00:00:00 2001 +From 41822aa9dd25f85c99d6027642dbc029e7cc1c64 Mon Sep 17 00:00:00 2001 From: Christophe Priouzeau -Date: Wed, 4 Jun 2025 13:47:46 +0200 -Subject: [PATCH] 0.3.0-stm32mp-add-dcmipp-ipa +Date: Wed, 4 Feb 2026 11:45:17 +0100 +Subject: [PATCH] v0.3.0-stm32mp --- +Upstream-Status: Pending + README.rst | 16 + include/libcamera/internal/media_device.h | 2 +- include/libcamera/ipa/dcmipp.mojom | 36 + @@ -12,48 +14,54 @@ Subject: [PATCH] 0.3.0-stm32mp-add-dcmipp-ipa include/linux/v4l2-controls.h | 41 + include/linux/videodev2.h | 5 + meson.build | 1 + - meson_options.txt | 10 +- + meson_options.txt | 15 +- src/apps/cam/camera_session.cpp | 11 +- src/apps/common/options.cpp | 12 +- src/gstreamer/gstlibcamera-utils.cpp | 16 + src/gstreamer/gstlibcamerapad.cpp | 4 + - src/gstreamer/gstlibcamerasrc.cpp | 1124 +++++++++++++- - src/ipa/dcmipp/algorithms/aec.cpp | 704 +++++++++ - src/ipa/dcmipp/algorithms/aec.h | 68 + + src/gstreamer/gstlibcamerasrc.cpp | 1170 +++++++++++++- + src/ipa/dcmipp/algorithms/aec.cpp | 718 +++++++++ + src/ipa/dcmipp/algorithms/aec.h | 69 + src/ipa/dcmipp/algorithms/algorithm.h | 35 + - src/ipa/dcmipp/algorithms/awb.cpp | 948 ++++++++++++ + src/ipa/dcmipp/algorithms/awb.cpp | 979 +++++++++++ src/ipa/dcmipp/algorithms/awb.h | 65 + src/ipa/dcmipp/algorithms/badpixel.cpp | 185 +++ src/ipa/dcmipp/algorithms/badpixel.h | 50 + - src/ipa/dcmipp/algorithms/blc.cpp | 145 ++ + src/ipa/dcmipp/algorithms/blc.cpp | 144 ++ src/ipa/dcmipp/algorithms/blc.h | 44 + src/ipa/dcmipp/algorithms/contrast.cpp | 141 ++ src/ipa/dcmipp/algorithms/contrast.h | 44 + - src/ipa/dcmipp/algorithms/demosaicing.cpp | 146 ++ + src/ipa/dcmipp/algorithms/demosaicing.cpp | 152 ++ src/ipa/dcmipp/algorithms/demosaicing.h | 44 + src/ipa/dcmipp/algorithms/gamma.cpp | 91 ++ src/ipa/dcmipp/algorithms/gamma.h | 44 + - src/ipa/dcmipp/algorithms/meson.build | 12 + - src/ipa/dcmipp/algorithms/statistic.cpp | 215 +++ - src/ipa/dcmipp/algorithms/statistic.h | 44 + - src/ipa/dcmipp/data/imx335.yaml | 57 + - .../dcmipp/data/imx335_judge2_light_box.yaml | 54 + + src/ipa/dcmipp/algorithms/luminance_utils.cpp | 26 + + src/ipa/dcmipp/algorithms/luminance_utils.h | 21 + + src/ipa/dcmipp/algorithms/meson.build | 13 + + src/ipa/dcmipp/algorithms/statistic.cpp | 216 +++ + src/ipa/dcmipp/algorithms/statistic.h | 45 + + src/ipa/dcmipp/data/imx335.yaml | 56 + .../dcmipp/data/imx335_mini_light_box.yaml | 54 + - src/ipa/dcmipp/data/meson.build | 9 + - src/ipa/dcmipp/dcmipp.cpp | 567 +++++++ - src/ipa/dcmipp/ipa_context.h | 132 ++ - src/ipa/dcmipp/meson.build | 39 + + src/ipa/dcmipp/data/meson.build | 12 + + src/ipa/dcmipp/data/uncalibrated.yaml | 21 + + src/ipa/dcmipp/data/vd56g3.yaml | 54 + + src/ipa/dcmipp/data/vd56g3_mono.yaml | 54 + + src/ipa/dcmipp/dcmipp.cpp | 578 +++++++ + src/ipa/dcmipp/ipa_context.h | 133 ++ + src/ipa/dcmipp/meson.build | 51 + src/ipa/dcmipp/module.h | 27 + + src/ipa/libipa/camera_sensor_helper.cpp | 11 + src/ipa/rpi/controller/rpi/alsc.cpp | 7 +- - src/libcamera/control_ids_draft.yaml | 244 +++ + src/libcamera/control_ids_draft.yaml | 256 +++ src/libcamera/ipc_unixsocket.cpp | 13 +- src/libcamera/media_device.cpp | 6 +- - src/libcamera/pipeline/dcmipp/dcmipp.cpp | 1363 +++++++++++++++++ - src/libcamera/pipeline/dcmipp/dcmipp.h | 120 ++ - src/libcamera/pipeline/dcmipp/dcmipp_path.cpp | 496 ++++++ + src/libcamera/pipeline/dcmipp/dcmipp.cpp | 1436 +++++++++++++++++ + src/libcamera/pipeline/dcmipp/dcmipp.h | 128 ++ + src/libcamera/pipeline/dcmipp/dcmipp_path.cpp | 488 ++++++ src/libcamera/pipeline/dcmipp/meson.build | 5 + + .../sensor/camera_sensor_properties.cpp | 4 + src/libcamera/v4l2_device.cpp | 20 +- - 49 files changed, 7674 insertions(+), 39 deletions(-) + 55 files changed, 8027 insertions(+), 39 deletions(-) create mode 100644 include/libcamera/ipa/dcmipp.mojom create mode 100644 include/linux/stm32-dcmipp-config.h create mode 100644 src/ipa/dcmipp/algorithms/aec.cpp @@ -71,13 +79,17 @@ Subject: [PATCH] 0.3.0-stm32mp-add-dcmipp-ipa create mode 100644 src/ipa/dcmipp/algorithms/demosaicing.h create mode 100644 src/ipa/dcmipp/algorithms/gamma.cpp create mode 100644 src/ipa/dcmipp/algorithms/gamma.h + create mode 100644 src/ipa/dcmipp/algorithms/luminance_utils.cpp + create mode 100644 src/ipa/dcmipp/algorithms/luminance_utils.h create mode 100644 src/ipa/dcmipp/algorithms/meson.build create mode 100644 src/ipa/dcmipp/algorithms/statistic.cpp create mode 100644 src/ipa/dcmipp/algorithms/statistic.h create mode 100644 src/ipa/dcmipp/data/imx335.yaml - create mode 100644 src/ipa/dcmipp/data/imx335_judge2_light_box.yaml create mode 100644 src/ipa/dcmipp/data/imx335_mini_light_box.yaml create mode 100644 src/ipa/dcmipp/data/meson.build + create mode 100644 src/ipa/dcmipp/data/uncalibrated.yaml + create mode 100644 src/ipa/dcmipp/data/vd56g3.yaml + create mode 100644 src/ipa/dcmipp/data/vd56g3_mono.yaml create mode 100644 src/ipa/dcmipp/dcmipp.cpp create mode 100644 src/ipa/dcmipp/ipa_context.h create mode 100644 src/ipa/dcmipp/meson.build @@ -471,7 +483,7 @@ index 1902ea2f..c0f49810 100644 'vimc': ['test'], } diff --git a/meson_options.txt b/meson_options.txt -index 7aa41249..0674d2b2 100644 +index 7aa41249..d13ddbb4 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -32,7 +32,7 @@ option('gstreamer', @@ -493,7 +505,7 @@ index 7aa41249..0674d2b2 100644 ], description : 'Select which pipeline handlers to build. If this is set to "auto", all the pipelines applicable to the target architecture will be built. If this is set to "all", all the pipelines will be built. If both are selected then "all" will take precedence.') -@@ -86,3 +87,8 @@ option('v4l2', +@@ -86,3 +87,13 @@ option('v4l2', type : 'boolean', value : false, description : 'Compile the V4L2 compatibility layer') @@ -502,6 +514,11 @@ index 7aa41249..0674d2b2 100644 + type : 'boolean', + value : false, + description : 'Compile dcmipp with algorithms from evision libraries') ++ ++option('evision_algo_inc_dir', ++ type: 'string', ++ value: '', ++ description: 'Path to the evision algorithms header files') diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp index f13355ba..35e2451a 100644 --- a/src/apps/cam/camera_session.cpp @@ -614,7 +631,7 @@ index 7b22aebe..af0fe477 100644 { 0, NULL, NULL } }; diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp -index 6a95b6af..164092bc 100644 +index 6a95b6af..5aa3dee1 100644 --- a/src/gstreamer/gstlibcamerasrc.cpp +++ b/src/gstreamer/gstlibcamerasrc.cpp @@ -30,6 +30,7 @@ @@ -684,7 +701,7 @@ index 6a95b6af..164092bc 100644 std::atomic pending_eos; GstLibcameraSrcState *state; -@@ -155,9 +201,53 @@ enum { +@@ -155,9 +201,54 @@ enum { PROP_0, PROP_CAMERA_NAME, PROP_AUTO_FOCUS_MODE, @@ -727,6 +744,7 @@ index 6a95b6af..164092bc 100644 + PROP_STATISTIC_GET_HISTOGRAM_UP, + PROP_STATISTIC_GET_HISTOGRAM_DOWN, + PROP_GAMMA_ENABLE, ++ PROP_SCALER_CROPS, }; +static void gst_libcamera_src_child_proxy_init(gpointer g_iface, @@ -738,7 +756,7 @@ index 6a95b6af..164092bc 100644 GST_DEBUG_CATEGORY_INIT(source_debug, "libcamerasrc", 0, "libcamera Source")) -@@ -203,7 +293,19 @@ int GstLibcameraSrcState::queueRequest() +@@ -203,7 +294,19 @@ int GstLibcameraSrcState::queueRequest() } GST_TRACE_OBJECT(src_, "Requesting buffers"); @@ -759,7 +777,7 @@ index 6a95b6af..164092bc 100644 { GLibLocker locker(&lock_); -@@ -234,6 +336,176 @@ GstLibcameraSrcState::requestCompleted(Request *request) +@@ -234,6 +337,179 @@ GstLibcameraSrcState::requestCompleted(Request *request) return; } @@ -871,6 +889,9 @@ index 6a95b6af..164092bc 100644 + } + const auto AwbAlgoProfileNames = request->metadata().get(controls::draft::AwbProfileName); + if (AwbAlgoProfileNames) { ++ /* The below "".fill()"" prevents a memory crash happening when we set a profile_name to "" */ ++ /* Do not ask me why this workaround fixes the issue : I have no idea and I do not want to know */ ++ src_->ctrl.awb_algo_profile_names.fill("X"); + /* The Controls class does not support array of string. So, split the concatenated string */ + std::string token; + std::stringstream ss(*AwbAlgoProfileNames); @@ -936,7 +957,7 @@ index 6a95b6af..164092bc 100644 if (GST_ELEMENT_CLOCK(src_)) { int64_t timestamp = request->metadata().get(controls::SensorTimestamp).value_or(0); -@@ -669,6 +941,7 @@ gst_libcamera_src_task_enter(GstTask *task, [[maybe_unused]] GThread *thread, +@@ -669,6 +945,7 @@ gst_libcamera_src_task_enter(GstTask *task, [[maybe_unused]] GThread *thread, } } @@ -944,7 +965,7 @@ index 6a95b6af..164092bc 100644 ret = state->cam_->start(&state->initControls_); if (ret) { GST_ELEMENT_ERROR(self, RESOURCE, SETTINGS, -@@ -730,6 +1003,7 @@ gst_libcamera_src_set_property(GObject *object, guint prop_id, +@@ -730,6 +1007,7 @@ gst_libcamera_src_set_property(GObject *object, guint prop_id, { GLibLocker lock(GST_OBJECT(object)); GstLibcameraSrc *self = GST_LIBCAMERA_SRC(object); @@ -952,7 +973,7 @@ index 6a95b6af..164092bc 100644 switch (prop_id) { case PROP_CAMERA_NAME: -@@ -739,6 +1013,252 @@ gst_libcamera_src_set_property(GObject *object, guint prop_id, +@@ -739,6 +1017,289 @@ gst_libcamera_src_set_property(GObject *object, guint prop_id, case PROP_AUTO_FOCUS_MODE: self->auto_focus_mode = static_cast(g_value_get_enum(value)); break; @@ -1201,11 +1222,48 @@ index 6a95b6af..164092bc 100644 + GLibLocker locker(&state->controlsLock_); + state->pendingControls_.set(controls::draft::GammaCorrectionEnable, enable); + break; ++ } ++ case PROP_SCALER_CROPS: ++ { ++ std::vector crops; ++ ++ const char *str = g_value_get_string(value); ++ if (str && *str) { ++ std::istringstream ss(str); ++ std::string rect_str; ++ ++ /* Parse up to 3 rectangles */ ++ while (std::getline(ss, rect_str, ';') && crops.size() < 3) { ++ rect_str.erase(0, rect_str.find_first_not_of(" \t")); ++ rect_str.erase(rect_str.find_last_not_of(" \t") + 1); ++ ++ int x, y, w, h; ++ int matched = sscanf(rect_str.c_str(), "%d,%d,%d,%d", &x, &y, &w, &h); ++ if (matched != 4) { ++ GST_ERROR_OBJECT(self, "Malformed rectangle: '%s'", rect_str.c_str()); ++ break; ++ } ++ libcamera::Rectangle rect; ++ rect.x = x; ++ rect.y = y; ++ rect.width = w; ++ rect.height = h; ++ GST_INFO_OBJECT(self, "Got a rectangle: %d %d %d %d", rect.x, rect.y, rect.width, rect.height); ++ crops.push_back(rect); ++ } ++ } ++ ++ if (!crops.size()) ++ break; ++ ++ GLibLocker locker(&state->controlsLock_); ++ state->initControls_.set(controls::draft::ScalerCrops, crops); ++ break; + } default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; -@@ -759,6 +1279,262 @@ gst_libcamera_src_get_property(GObject *object, guint prop_id, GValue *value, +@@ -759,6 +1320,262 @@ gst_libcamera_src_get_property(GObject *object, guint prop_id, GValue *value, case PROP_AUTO_FOCUS_MODE: g_value_set_enum(value, static_cast(self->auto_focus_mode)); break; @@ -1468,7 +1526,7 @@ index 6a95b6af..164092bc 100644 default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; -@@ -844,6 +1620,7 @@ gst_libcamera_src_finalize(GObject *object) +@@ -844,6 +1661,7 @@ gst_libcamera_src_finalize(GObject *object) g_rec_mutex_clear(&self->stream_lock); g_clear_object(&self->task); g_mutex_clear(&self->state->lock_); @@ -1476,7 +1534,7 @@ index 6a95b6af..164092bc 100644 g_free(self->camera_name); delete self->state; -@@ -863,9 +1640,12 @@ gst_libcamera_src_init(GstLibcameraSrc *self) +@@ -863,9 +1681,12 @@ gst_libcamera_src_init(GstLibcameraSrc *self) gst_task_set_lock(self->task, &self->stream_lock); g_mutex_init(&state->lock_); @@ -1491,7 +1549,7 @@ index 6a95b6af..164092bc 100644 GST_OBJECT_FLAG_SET(self, GST_ELEMENT_FLAG_SOURCE); -@@ -896,6 +1676,8 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ, +@@ -896,6 +1717,8 @@ gst_libcamera_src_request_new_pad(GstElement *element, GstPadTemplate *templ, return NULL; } @@ -1500,7 +1558,7 @@ index 6a95b6af..164092bc 100644 return reinterpret_cast(g_steal_pointer(&pad)); } -@@ -904,6 +1686,8 @@ gst_libcamera_src_release_pad(GstElement *element, GstPad *pad) +@@ -904,6 +1727,8 @@ gst_libcamera_src_release_pad(GstElement *element, GstPad *pad) { GstLibcameraSrc *self = GST_LIBCAMERA_SRC(element); @@ -1509,7 +1567,7 @@ index 6a95b6af..164092bc 100644 GST_DEBUG_OBJECT(self, "Pad %" GST_PTR_FORMAT " being released", pad); { -@@ -963,4 +1747,338 @@ gst_libcamera_src_class_init(GstLibcameraSrcClass *klass) +@@ -963,4 +1788,343 @@ gst_libcamera_src_class_init(GstLibcameraSrcClass *klass) static_cast(controls::AfModeManual), G_PARAM_WRITABLE); g_object_class_install_property(object_class, PROP_AUTO_FOCUS_MODE, spec); @@ -1817,6 +1875,11 @@ index 6a95b6af..164092bc 100644 + false, + G_PARAM_READWRITE); + g_object_class_install_property(object_class, PROP_GAMMA_ENABLE, spec); ++ /* Scaler Crops property */ ++ spec = g_param_spec_string("scaler-crops", "Scaler Crops", ++ "Array of crop rectangles x1,y1,w1,h1;x2,y2,w2,h2;x3,y3,w3,h3", NULL, ++ G_PARAM_WRITABLE); ++ g_object_class_install_property(object_class, PROP_SCALER_CROPS, spec); +} + +/* GstChildProxy implementation */ @@ -1850,10 +1913,10 @@ index 6a95b6af..164092bc 100644 } diff --git a/src/ipa/dcmipp/algorithms/aec.cpp b/src/ipa/dcmipp/algorithms/aec.cpp new file mode 100644 -index 00000000..546cd672 +index 00000000..6cdae318 --- /dev/null +++ b/src/ipa/dcmipp/algorithms/aec.cpp -@@ -0,0 +1,704 @@ +@@ -0,0 +1,718 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -1869,6 +1932,9 @@ index 00000000..546cd672 +#include + +#include ++#include ++ ++#include "luminance_utils.h" + +#ifdef EVISION_ALGO_ENABLED +#include @@ -1941,11 +2007,9 @@ index 00000000..546cd672 +#ifdef EVISION_ALGO_ENABLED +static bool initializeLibrary() +{ -+ const char *lib_dir = "/usr/lib/"; + const char *lib_name = "libevision-st-ae.so.1"; -+ std::string lib_path = std::string(lib_dir) + lib_name; + -+ plib_handle = dlopen(lib_path.c_str(), RTLD_LAZY); ++ plib_handle = dlopen(lib_name, RTLD_LAZY); + if (!plib_handle) { + LOG(DcmippAec, Warning) << "Cannot open library: " << dlerror(); + LOG(DcmippAec, Warning) << "Fall back to simple AEC algorithm processing"; @@ -2082,12 +2146,12 @@ index 00000000..546cd672 + params_.algoTarget = kAlgoIdealExposureTarget * pow(2, params_.algoExposureValue); + + /* Check for sensor static config (exposure time in microseconds, gain in dB) */ -+ params_.sensorStatic.exposure = tuningData["ExposureTime"].get(10000); ++ params_.sensorStatic.exposure = tuningData["ExposureTime"].get(context.info.sensorExposureMax); + if (!isExposureTimeValid(params_.sensorStatic.exposure, context)) { + LOG(DcmippAec, Error) << "Invalid Exposure time: " << params_.sensorStatic.exposure; + return -EINVAL; + } -+ params_.sensorStatic.gain = tuningData["AnalogueGain_dB"].get(1); ++ params_.sensorStatic.gain = tuningData["AnalogueGain_dB"].get(context.info.sensorGainMin); + if (!isGainValid(params_.sensorStatic.gain, context)) { + LOG(DcmippAec, Error) << "Invalid Gain: " << params_.sensorStatic.gain; + return -EINVAL; @@ -2190,7 +2254,11 @@ index 00000000..546cd672 + config_.sensor = params_.sensorStatic; + } + ++ /* Set monoSensor flag in config_ */ ++ config_.monoSensor = configInfo.cfaPattern == properties::draft::ColorFilterArrangementEnum::MONO; ++ + /* Update context immediately, so IPA can apply the sensor settings at start up */ ++ context.info.AECEnable = params_.algoEnable; + context.sensor = config_.sensor; + config_.pending = true; + @@ -2318,6 +2386,7 @@ index 00000000..546cd672 + sensorControls.set(controls::ExposureTime, config_.sensor.exposure); + + /* Update context */ ++ context.info.AECEnable = params_.algoEnable; + context.sensor = config_.sensor; + + /* Start the invalid stats counter from this update. Consider both ISP and sensor */ @@ -2349,7 +2418,7 @@ index 00000000..546cd672 + } +} + -+void Aec::processSensorDelayMeasure(const stm32_dcmipp_stat_buf *stats) ++void Aec::processSensorDelayMeasure(const stm32_dcmipp_stat_buf *stats, IPAContext &context) +{ + int32_t avgL; + @@ -2360,7 +2429,10 @@ index 00000000..546cd672 + if (internal_.invalidStats) + return; + -+ avgL = (3 * stats->post.average_RGB[0] + 6 * stats->post.average_RGB[1] + 1 * stats->post.average_RGB[2]) / 10; ++ if (config_.monoSensor || !context.isp.demosaicing.enable) ++ avgL = luminanceFromRgbMono(stats->post.average_RGB); ++ else ++ avgL = luminanceFromRgb(stats->post.average_RGB); + + if (internal_.measure.testConfigId > 0) { + /* New stat available, check if Luminance has changed */ @@ -2391,15 +2463,26 @@ index 00000000..546cd672 + internal_.invalidStats = 1; + } else { + /* All the configurations have been tested, finalize the test procedure */ -+ int32_t sum = 0; -+ int n_valid = 0; -+ /* Find the average delay among the valid (!= kAecSensorDelayMax) values */ -+ for (int i = 0; i < kAecNbTestConfig - 1; i++) -+ if (internal_.measure.delays[i] != kAecSensorDelayMax) { -+ sum += internal_.measure.delays[i]; ++ int32_t delay, min, max, sum = 0, n_valid = 0; ++ min = kAecSensorDelayMax; ++ max = 0; ++ /* Find the average delay among the valid (!= kAecSensorDelayMax) values and also exclude the min and max value */ ++ for (int i = 0; i < kAecNbTestConfig - 1; i++) { ++ delay = internal_.measure.delays[i]; ++ if (delay != kAecSensorDelayMax) { ++ sum += delay; + n_valid++; ++ max = (delay > max) ? delay : max; ++ min = (delay < min) ? delay : min; + } ++ } + if (n_valid) { ++ if (n_valid >= 4) { ++ /* Exclude min and max */ ++ sum -= min; ++ sum -= max; ++ n_valid -= 2; ++ } + internal_.measure.sensorDelayMeasure = round((float)sum / n_valid); + /* Apply the measure internally */ + params_.sensorDelay = internal_.measure.sensorDelayMeasure; @@ -2423,7 +2506,7 @@ index 00000000..546cd672 + /* Compute a new pending config from stats */ + if (internal_.measure.doSensorDelayMeasure) { + /* Special case: prosess sensor delay measure */ -+ processSensorDelayMeasure(stats); ++ processSensorDelayMeasure(stats, context); + } else if (params_.algoEnable) { + /* Check if stats can be considered as valid */ + if (internal_.invalidStats) @@ -2438,10 +2521,7 @@ index 00000000..546cd672 + double gain = context.sensor.gain; + int32_t exposure = context.sensor.exposure; + int32_t target = (int32_t)params_.algoTarget; -+ int32_t avgL = (3 * stats->post.average_RGB[0] + -+ 6 * stats->post.average_RGB[1] + -+ 1 * stats->post.average_RGB[2]) / -+ 10; ++ int32_t avgL = (config_.monoSensor || !context.isp.demosaicing.enable) ? luminanceFromRgbMono(stats->post.average_RGB) : luminanceFromRgb(stats->post.average_RGB); + + LOG(DcmippAec, Debug) << "Status: L = " << avgL << " - " + << "Gain = " << gain << " db - " @@ -2508,10 +2588,7 @@ index 00000000..546cd672 + else { + double gain = context.sensor.gain; + int32_t exposure = context.sensor.exposure; -+ int32_t avgL = (3 * stats->post.average_RGB[0] + -+ 6 * stats->post.average_RGB[1] + -+ 1 * stats->post.average_RGB[2]) / -+ 10; ++ int32_t avgL = (config_.monoSensor || !context.isp.demosaicing.enable) ? luminanceFromRgbMono(stats->post.average_RGB) : luminanceFromRgb(stats->post.average_RGB); + + LOG(DcmippAec, Debug) << "Status: L = " << avgL << " - " + << "Gain = " << gain << " db - " @@ -2560,10 +2637,10 @@ index 00000000..546cd672 +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/algorithms/aec.h b/src/ipa/dcmipp/algorithms/aec.h new file mode 100644 -index 00000000..27cc5735 +index 00000000..222a5afa --- /dev/null +++ b/src/ipa/dcmipp/algorithms/aec.h -@@ -0,0 +1,68 @@ +@@ -0,0 +1,69 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -2624,9 +2701,10 @@ index 00000000..27cc5735 + struct algoConfig { + bool pending; + struct IPASensor sensor; ++ bool monoSensor; + } config_; + -+ void processSensorDelayMeasure(const stm32_dcmipp_stat_buf *stats); ++ void processSensorDelayMeasure(const stm32_dcmipp_stat_buf *stats, IPAContext &context); +}; + +} /* namespace ipa::dcmipp::algorithms */ @@ -2675,10 +2753,10 @@ index 00000000..8c59ceb0 +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/algorithms/awb.cpp b/src/ipa/dcmipp/algorithms/awb.cpp new file mode 100644 -index 00000000..006ad4b8 +index 00000000..cdbc0159 --- /dev/null +++ b/src/ipa/dcmipp/algorithms/awb.cpp -@@ -0,0 +1,948 @@ +@@ -0,0 +1,979 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -2751,7 +2829,7 @@ index 00000000..006ad4b8 +static evision_api_awb_run_average_t evision_api_awb_run_average = nullptr; + +static constexpr uint8_t kIspStatCheckSkipAfterInit = 10; -+static constexpr uint8_t kIspStatCheckSkipAfterCTEstimation = 4; ++static constexpr uint8_t kIspStatCheckSkipAfterCTEstimation = 6; +static constexpr int32_t kIspStatDeltaMax = 2; + +static int32_t stats_history[3][3] = { 0 }; @@ -2912,11 +2990,9 @@ index 00000000..006ad4b8 + +static bool initializeLibrary() +{ -+ const char *lib_dir = "/usr/lib/"; + const char *lib_name = "libevision-awb.so.1"; -+ std::string lib_path = std::string(lib_dir) + lib_name; + -+ plib_handle = dlopen(lib_path.c_str(), RTLD_LAZY); ++ plib_handle = dlopen(lib_name, RTLD_LAZY); + if (!plib_handle) { + LOG(DcmippAwb, Warning) << "Cannot open library: " << dlerror(); + LOG(DcmippAwb, Warning) << "Fall back to simple AWB algorithm processing"; @@ -3150,6 +3226,27 @@ index 00000000..006ad4b8 + return -EINVAL; + } + ++ /* Check for Custom mode */ ++ int32_t awbMode = tuningData["Mode"].get(controls::AwbAuto); ++ int32_t customColorTemp = tuningData["CustomColorTemperature"].get(kColTemperatureMax); ++ if (awbMode == controls::AwbCustom) { ++ /* Search for the corresponding profile */ ++ int profId; ++ for (profId = 0; profId < kAwbNbRef; profId++) ++ if (params_.referenceColorTemp[profId] == customColorTemp) ++ break; ++ ++ if (profId >= kAwbNbRef) { ++ LOG(DcmippAwb, Error) << "Invalid Custom Colour Temp: " << customColorTemp; ++ return -EINVAL; ++ } ++ /* Disable auto mode and set customColorTemp */ ++ params_.algoEnable = false; ++ internal_.customColorTemp = customColorTemp; ++ LOG(DcmippAwb, Debug) << "Using custom mode for AWB profile " << params_.profileName[profId] ++ << " (" << customColorTemp << ")"; ++ } ++ + /* Check for ISP Gain / ColorConv static config */ + params_.gainStatic.gainR = tuningData["FixedGainR"].get(0); + params_.gainStatic.gainG = tuningData["FixedGainG"].get(0); @@ -3225,13 +3322,23 @@ index 00000000..006ad4b8 +int Awb::configure([[maybe_unused]] IPAContext &context, + [[maybe_unused]] const IPACameraSensorInfo &configInfo) +{ ++ int profId; + /* Set the initial ISP values in the pending config */ + if (!params_.algoEnable) { -+ /* Apply static ISP Gain / ColorConv config */ -+ config_.gain = params_.gainStatic; -+ config_.cconv = params_.cconvStatic; ++ if (internal_.customColorTemp) { ++ /* Get and apply the profile of the Custom Color temperature */ ++ for (profId = 0; profId < kAwbNbRef; profId++) ++ if (params_.referenceColorTemp[profId] == internal_.customColorTemp) ++ break; ++ profId = profId >= kAwbNbRef ? 0 : profId; ++ applyProfile(profId); ++ } else { ++ /* Apply static ISP Gain / ColorConv config */ ++ config_.gain = params_.gainStatic; ++ config_.cconv = params_.cconvStatic; ++ } + } else { -+ int i, profId; ++ int i; + /* Apply the first profile with color temp above minimum value before first processing of the algorithm */ + profId = 0; + for (i = 0; i < kAwbNbRef; i++) { @@ -3333,10 +3440,12 @@ index 00000000..006ad4b8 + LOG(DcmippAwb, Debug) << "Updating AwbColourConv to " << (*cconv)[0] << "..."; + } + ++#ifdef EVISION_ALGO_ENABLED + if (internal_.profileDirty && !configureAwbAlgo()) { + LOG(DcmippAwb, Error) << "Cannot reconfigure awb algorithm"; + return; + } ++#endif /* EVISION_ALGO_ENABLED */ + + /* Static config: update params_ and if applicable force config_ update now */ + const auto &customColorTemp = controls.get(controls::draft::AwbCustomColorTemperature); @@ -3534,8 +3643,8 @@ index 00000000..006ad4b8 + /* Run algo to estimate gain and color conversion to apply */ + e_ret = evision_api_awb_run_average(pIspAWBestimator, NULL, 1, meas); + if (e_ret == EVISION_RET_SUCCESS) { -+ if (pIspAWBestimator->out_temp != internal_.colorTemp) { -+ if (pIspAWBestimator->out_temp == color_temperature_history[1]) { ++ if ((pIspAWBestimator->out_temp != internal_.colorTemp) || internal_.profileDirty) { ++ if ((pIspAWBestimator->out_temp == color_temperature_history[1]) && !internal_.profileDirty) { + skip_stat_check_count = 0; //oscillation detected + LOG(DcmippAwb, Debug) << "Oscillation detected"; + } else { @@ -3947,10 +4056,10 @@ index 00000000..0db7645a +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/algorithms/blc.cpp b/src/ipa/dcmipp/algorithms/blc.cpp new file mode 100644 -index 00000000..9b40dd5f +index 00000000..c633d12b --- /dev/null +++ b/src/ipa/dcmipp/algorithms/blc.cpp -@@ -0,0 +1,145 @@ +@@ -0,0 +1,144 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -3996,7 +4105,6 @@ index 00000000..9b40dd5f + params_.blackLevel.blcR = level[0]; + params_.blackLevel.blcG = level[1]; + params_.blackLevel.blcB = level[2]; -+ params_.blackLevel.enable = false; + params_.blackLevel.enable = tuningData["Enable"].get(true); + } else { + LOG(DcmippBlc, Error) << "Invalid nubmer of black levels"; @@ -4345,10 +4453,10 @@ index 00000000..51dc85e7 +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/algorithms/demosaicing.cpp b/src/ipa/dcmipp/algorithms/demosaicing.cpp new file mode 100644 -index 00000000..b0c7915a +index 00000000..e86ec86d --- /dev/null +++ b/src/ipa/dcmipp/algorithms/demosaicing.cpp -@@ -0,0 +1,146 @@ +@@ -0,0 +1,152 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -4380,10 +4488,15 @@ index 00000000..b0c7915a +int Demosaicing::init([[maybe_unused]] IPAContext &context, const YamlObject &tuningData) +{ + /* Parse Tuning Data to get algo parameters */ -+ params_.demosaicing.enable = tuningData["Enable"].get(true); + /* ISP Demosaicing Filter */ + std::vector filter = tuningData["Filter"].getList().value_or(std::vector(kNbFilters, kFilterDef)); -+ if (filter.size() != kNbFilters) { ++ if (!filter.size()) { ++ params_.demosaicing.peak = kFilterDef; ++ params_.demosaicing.linev = kFilterDef; ++ params_.demosaicing.lineh = kFilterDef; ++ params_.demosaicing.edge = kFilterDef; ++ params_.demosaicing.enable = false; ++ } else if (filter.size() != kNbFilters) { + LOG(DcmippDemosaicing, Error) << "Invalid number of filters"; + return -EINVAL; + } @@ -4397,6 +4510,7 @@ index 00000000..b0c7915a + params_.demosaicing.linev = filter[1]; + params_.demosaicing.lineh = filter[2]; + params_.demosaicing.edge = filter[3]; ++ params_.demosaicing.enable = tuningData["Enable"].get(true); + + /* Configure exposed controls */ + context.dcmippControls[&controls::draft::DemosaicingEnable] = ControlInfo(false, true); @@ -4547,7 +4661,7 @@ index 00000000..9b407485 +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/algorithms/gamma.cpp b/src/ipa/dcmipp/algorithms/gamma.cpp new file mode 100644 -index 00000000..fd595479 +index 00000000..34c013f6 --- /dev/null +++ b/src/ipa/dcmipp/algorithms/gamma.cpp @@ -0,0 +1,91 @@ @@ -4573,7 +4687,7 @@ index 00000000..fd595479 +{ + /* Parse Tuning Data to get algo parameters */ + /* ISP Gamma Correction config */ -+ params_.gamma.enable = tuningData["Enable"].get(true); ++ params_.gamma.enable = tuningData["Enable"].get(false); + + /* Configure exposed controls */ + context.dcmippControls[&controls::draft::GammaCorrectionEnable] = ControlInfo(false, true); @@ -4692,12 +4806,71 @@ index 00000000..04449bd0 +} /* namespace ipa::dcmipp::algorithms */ + +} /* namespace libcamera */ +diff --git a/src/ipa/dcmipp/algorithms/luminance_utils.cpp b/src/ipa/dcmipp/algorithms/luminance_utils.cpp +new file mode 100644 +index 00000000..05c90832 +--- /dev/null ++++ b/src/ipa/dcmipp/algorithms/luminance_utils.cpp +@@ -0,0 +1,26 @@ ++/* SPDX-License-Identifier: LGPL-2.1-or-later */ ++/* ++ * Copyright (C) 2025 ST Microelectronics ++ * ++ * luminance_utils.cpp - Luminance computation helpers ++ */ ++ ++#include "luminance_utils.h" ++ ++namespace libcamera { ++ ++namespace ipa::dcmipp::algorithms { ++ ++int32_t luminanceFromRgb(const uint32_t RGB[3]) ++{ ++ return static_cast((3 * RGB[0] + 6 * RGB[1] + RGB[2]) / 10); ++} ++ ++int32_t luminanceFromRgbMono(const uint32_t RGB[3]) ++{ ++ return static_cast(RGB[0] + RGB[1] + RGB[2]); ++} ++ ++} /* namespace ipa::dcmipp::algorithms */ ++ ++} /* namespace libcamera */ +diff --git a/src/ipa/dcmipp/algorithms/luminance_utils.h b/src/ipa/dcmipp/algorithms/luminance_utils.h +new file mode 100644 +index 00000000..08465103 +--- /dev/null ++++ b/src/ipa/dcmipp/algorithms/luminance_utils.h +@@ -0,0 +1,21 @@ ++/* SPDX-License-Identifier: LGPL-2.1-or-later */ ++/* ++ * Copyright (C) 2025 ST Microelectronics ++ * ++ * luminance_utils.h - Luminance computation helpers ++ */ ++ ++#pragma once ++ ++#include ++ ++namespace libcamera { ++ ++namespace ipa::dcmipp::algorithms { ++ ++int32_t luminanceFromRgb(const uint32_t RGB[3]); ++int32_t luminanceFromRgbMono(const uint32_t RGB[3]); ++ ++} /* namespace ipa::dcmipp::algorithms */ ++ ++} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/algorithms/meson.build b/src/ipa/dcmipp/algorithms/meson.build new file mode 100644 -index 00000000..55c62894 +index 00000000..7c45998e --- /dev/null +++ b/src/ipa/dcmipp/algorithms/meson.build -@@ -0,0 +1,12 @@ +@@ -0,0 +1,13 @@ +# SPDX-License-Identifier: CC0-1.0 + +dcmipp_ipa_algorithms = files([ @@ -4709,13 +4882,14 @@ index 00000000..55c62894 + 'aec.cpp', + 'awb.cpp', + 'gamma.cpp', ++ 'luminance_utils.cpp' +]) diff --git a/src/ipa/dcmipp/algorithms/statistic.cpp b/src/ipa/dcmipp/algorithms/statistic.cpp new file mode 100644 -index 00000000..9cba1960 +index 00000000..3e7ca91a --- /dev/null +++ b/src/ipa/dcmipp/algorithms/statistic.cpp -@@ -0,0 +1,215 @@ +@@ -0,0 +1,216 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -4723,10 +4897,15 @@ index 00000000..9cba1960 + * statistic.cpp - STM32 DCMIPP Statistic configuration + */ + ++ +#include "statistic.h" + +#include ++ +#include ++#include ++ ++#include "luminance_utils.h" + +namespace libcamera { + @@ -4776,11 +4955,6 @@ index 00000000..9cba1960 + return duration; +} + -+static int32_t luminanceFromRgb(const __u32 RGB[3]) -+{ -+ return (int32_t)((3 * RGB[0] + 6 * RGB[1] + RGB[2]) / 10); -+} -+ +int Statistic::init([[maybe_unused]] IPAContext &context, const YamlObject &tuningData) +{ + /* Parse Tuning Data to get algo parameters */ @@ -4822,6 +4996,7 @@ index 00000000..9cba1960 + /* Set the initial ISP values in the pending config */ + config_.statistic = params_.statistic; + config_.pending = true; ++ config_.monoSensor = configInfo.cfaPattern == properties::draft::ColorFilterArrangementEnum::MONO; + + return 0; +} @@ -4913,7 +5088,7 @@ index 00000000..9cba1960 + { static_cast(stats->post.average_RGB[0]), + static_cast(stats->post.average_RGB[1]), + static_cast(stats->post.average_RGB[2]), -+ luminanceFromRgb(stats->post.average_RGB) }); ++ (config_.monoSensor || !context.isp.demosaicing.enable) ? luminanceFromRgbMono(stats->post.average_RGB) : luminanceFromRgb(stats->post.average_RGB) }); + } + if (config_.statistic.profile == ProfileFull) { + std::array bins; @@ -4933,10 +5108,10 @@ index 00000000..9cba1960 +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/algorithms/statistic.h b/src/ipa/dcmipp/algorithms/statistic.h new file mode 100644 -index 00000000..1185b1a6 +index 00000000..91c0701a --- /dev/null +++ b/src/ipa/dcmipp/algorithms/statistic.h -@@ -0,0 +1,44 @@ +@@ -0,0 +1,45 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -4975,6 +5150,7 @@ index 00000000..1185b1a6 + struct algoConfig { + bool pending; + struct IPAIspStatistic statistic; ++ bool monoSensor; + } config_; +}; + @@ -4983,19 +5159,18 @@ index 00000000..1185b1a6 +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/data/imx335.yaml b/src/ipa/dcmipp/data/imx335.yaml new file mode 100644 -index 00000000..3de5a11b +index 00000000..6e780d10 --- /dev/null +++ b/src/ipa/dcmipp/data/imx335.yaml -@@ -0,0 +1,57 @@ -+# Copyright (c) 2024 STMicroelectronics. +@@ -0,0 +1,56 @@ ++# Copyright (c) 2025 STMicroelectronics. +# All rights reserved. +# +# This software is licensed under SLA0044 terms that can be found here: +# https://www.st.com/resource/en/license_agreement/SLA0044.txt +# +# imx335 configuration file for the STM32 dcmipp IPA. -+# -+# THIS FILE WAS GENERATED BY THE STM32 ISP IQTune ON 2024-10-09 12:13:15 ++# Tuned with the JudgeII Light Box +# + +%YAML 1.1 @@ -5011,73 +5186,13 @@ index 00000000..3de5a11b + SensorDelay: 3 + - Awb: + FixedGainEnable: true -+ FixedGainR: 220000000 ++ FixedGainR: 182000000 + FixedGainG: 100000000 -+ FixedGainB: 180000000 ++ FixedGainB: 212000000 + FixedCconvEnable: true -+ FixedCconv: [180080000, -64840000, -15230000, -35550000, 169920000, -34380000, 9770000, -95700000, 185940000] ++ FixedCconv: [164670000, -20970000, -43700000, -51330000, 178670000, -27339999, -12490000, -48170000, 160670000] + AwbEnable: true -+ ProfileName: ["IMX335-A", "IMX335-TL84", "IMX335-D50", "IMX335-D65", "Free Slot"] -+ RefColorTemp: [2856, 4000, 5000, 6500, 0] -+ GainR: [140000000, 177000000, 220000000, 245000000, 0] -+ GainG: [100000000, 100000000, 100000000, 100000000, 0] -+ GainB: [275000000, 235000000, 180000000, 155000000, 0] -+ Cconv: [151460000, -102340000, 50892000, -85991000, 210980000, -24984000, 25000000, -261000000, 341000000, 155134500, -69370000, 13106000, -38671000, 167689800, -33936000, 5546200, -66769999, 159944200, 180080000, -64840000, -15230000, -35550000, 169920000, -34380000, 9770000, -95700000, 185940000, 180080000, -64840000, -15230000, -35550000, 169920000, -34380000, 9770000, -95700000, 185940000, 0, 0, 0, 0, 0, 0, 0, 0, 0] -+ - BadPixel: -+ Enable: false -+ Strength: 0 -+ Threhsold: 0 -+ - BlackLevelCorrection: -+ Enable: true -+ Level: [12, 12, 12] -+ - Contrast: -+ Enable: false -+ LuminanceFactor: [100, 100, 100, 100, 100, 100, 100, 100, 100] -+ - Demosaicing: -+ Enable: true -+ Filter: [2, 4, 4, 6] -+ - Statistic: -+ Area: [648, 486, 1296, 972] -+ Profile: 2 -+ - GammaCorrection: -+ Enable: true -+# NOTE : parameters of 'statRemoval' are not handled in libcamera -+# NOTE : parameters of 'decimation' are not handled in libcamera -+# NOTE : parameter 'demosaicing.type' is not handled in libcamera -diff --git a/src/ipa/dcmipp/data/imx335_judge2_light_box.yaml b/src/ipa/dcmipp/data/imx335_judge2_light_box.yaml -new file mode 100644 -index 00000000..6e72e38c ---- /dev/null -+++ b/src/ipa/dcmipp/data/imx335_judge2_light_box.yaml -@@ -0,0 +1,54 @@ -+# Copyright (c) 2025 STMicroelectronics. -+# All rights reserved. -+# -+# This software is licensed under SLA0044 terms that can be found here: -+# https://www.st.com/resource/en/license_agreement/SLA0044.txt -+# -+# imx335 configuration file for the STM32 dcmipp IPA. -+# Tuned with the Mini Light Box -+# -+ -+%YAML 1.1 -+--- -+version: 1 -+algorithms: -+ - Aec: -+ AeEnable: true -+ AntiFlickerFreq: 0 -+ ExposureValue: 0.0 -+ SensorDelay: 3 -+ - Awb: -+ FixedGainEnable: true -+ FixedGainR: 1.77 -+ FixedGainG: 1.0 -+ FixedGainB: 2.35 -+ FixedCconvEnable: true -+ FixedCconv: [155134500, -69370000, 13106000, -38671000, 167689800, -33936000, 5546200, -66769999, 159944200] -+ AwbEnable: true -+ ProfileName: ["JudegeII-A", "JudegeII-TL84", "JudgeII-D65", "Free slot", "Free slot"] ++ ProfileName: ["JudgeII-A", "JudgeII-TL84", "JudgeII-D65", "Free slot", "Free slot"] + RefColorTemp: [2810, 4015, 6650, 0, 0] + GainR: [137000000, 182000000, 244000000, 0, 0] + GainG: [100000000, 100000000, 100000000, 0, 0] @@ -5106,7 +5221,7 @@ index 00000000..6e72e38c +# NOTE : parameter 'demosaicing.type' is not handled in libcamera diff --git a/src/ipa/dcmipp/data/imx335_mini_light_box.yaml b/src/ipa/dcmipp/data/imx335_mini_light_box.yaml new file mode 100644 -index 00000000..11f1949d +index 00000000..3303cab9 --- /dev/null +++ b/src/ipa/dcmipp/data/imx335_mini_light_box.yaml @@ -0,0 +1,54 @@ @@ -5131,9 +5246,9 @@ index 00000000..11f1949d + SensorDelay: 3 + - Awb: + FixedGainEnable: true -+ FixedGainR: 1.77 -+ FixedGainG: 1.0 -+ FixedGainB: 2.35 ++ FixedGainR: 177000000 ++ FixedGainG: 100000000 ++ FixedGainB: 235000000 + FixedCconvEnable: true + FixedCconv: [155134500, -69370000, 13106000, -38671000, 167689800, -33936000, 5546200, -66769999, 159944200] + AwbEnable: true @@ -5166,25 +5281,175 @@ index 00000000..11f1949d +# NOTE : parameter 'demosaicing.type' is not handled in libcamera diff --git a/src/ipa/dcmipp/data/meson.build b/src/ipa/dcmipp/data/meson.build new file mode 100644 -index 00000000..2a4f455c +index 00000000..d2dde358 --- /dev/null +++ b/src/ipa/dcmipp/data/meson.build -@@ -0,0 +1,9 @@ +@@ -0,0 +1,12 @@ +# SPDX-License-Identifier: CC0-1.0 + +conf_files = files([ ++ 'uncalibrated.yaml', + 'imx335.yaml', ++ 'vd56g3.yaml', ++ 'vd56g3_mono.yaml', +]) + +install_data(conf_files, + install_dir : ipa_data_dir / 'dcmipp', + install_tag : 'runtime') +diff --git a/src/ipa/dcmipp/data/uncalibrated.yaml b/src/ipa/dcmipp/data/uncalibrated.yaml +new file mode 100644 +index 00000000..d15cbc6f +--- /dev/null ++++ b/src/ipa/dcmipp/data/uncalibrated.yaml +@@ -0,0 +1,21 @@ ++# Copyright (c) 2025 STMicroelectronics. ++# All rights reserved. ++# ++# This software is licensed under SLA0044 terms that can be found here: ++# https://www.st.com/resource/en/license_agreement/SLA0044.txt ++# ++# Empty configuration file for the STM32 dcmipp IPA. ++# ++ ++%YAML 1.1 ++--- ++version: 1 ++algorithms: ++ - Aec: ++ - Awb: ++ - BadPixel: ++ - BlackLevelCorrection: ++ - Contrast: ++ - Demosaicing: ++ - Statistic: ++ - GammaCorrection: +diff --git a/src/ipa/dcmipp/data/vd56g3.yaml b/src/ipa/dcmipp/data/vd56g3.yaml +new file mode 100644 +index 00000000..62c43323 +--- /dev/null ++++ b/src/ipa/dcmipp/data/vd56g3.yaml +@@ -0,0 +1,54 @@ ++# Copyright (c) 2024 STMicroelectronics. ++# All rights reserved. ++# ++# This software is licensed under SLA0044 terms that can be found here: ++# https://www.st.com/resource/en/license_agreement/SLA0044.txt ++# ++# vd56g3 configuration file for the STM32 dcmipp IPA. ++# ++# THIS FILE WAS GENERATED BY THE STM32 ISP IQTune ON 2025-05-19 09:42:55 ++# ++ ++%YAML 1.1 ++--- ++version: 1 ++algorithms: ++ - Aec: ++ AnalogueGain_dB: 0.0 ++ ExposureTime: 9308 ++ AeEnable: true ++ ExposureValue: 0.0 ++ AntiFlickerFreq: 0 ++ SensorDelay: 4 ++ - Awb: ++ FixedGainEnable: true ++ FixedGainR: 156000000 ++ FixedGainG: 100000000 ++ FixedGainB: 150000000 ++ FixedCconvEnable: true ++ FixedCconv: [146010000, -39280000, -14060000, -26750000, 152490000, -42520000, 1160000, -55410000, 143910000] ++ AwbEnable: true ++ ProfileName: ["JudgeII-A", "JudgeII-TL84", "JudgeII-DAY", "Free Slot", "Free Slot"] ++ RefColorTemp: [2750, 4150, 6750, 0, 0] ++ GainR: [95000000, 117000000, 156000000, 0, 0] ++ GainG: [100000000, 100000000, 100000000, 0, 0] ++ GainB: [238000000, 189000000, 150000000, 0, 0] ++ Cconv: [133939999, -20660000, -31280000, -37890000, 149680000, -26179999, 2040000, -89240000, 221830000, 147680000, -38330000, -29360000, -40320000, 146010000, -31400000, 1100000, -61240000, 174790000, 146010000, -39280000, -14060000, -26750000, 152490000, -42520000, 1160000, -55410000, 143910000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ++ - BadPixel: ++ Enable: false ++ Strength: 0 ++ Threhsold: 0 ++ - BlackLevelCorrection: ++ Enable: true ++ Level: [16, 16, 16] ++ - Contrast: ++ Enable: false ++ LuminanceFactor: [0, 0, 0, 0, 0, 0, 0, 0, 0] ++ - Demosaicing: ++ Enable: true ++ Filter: [2, 4, 4, 6] ++ - Statistic: ++ Area: [140, 341, 840, 682] ++ Profile: 2 ++ - GammaCorrection: ++ Enable: true +diff --git a/src/ipa/dcmipp/data/vd56g3_mono.yaml b/src/ipa/dcmipp/data/vd56g3_mono.yaml +new file mode 100644 +index 00000000..927715d7 +--- /dev/null ++++ b/src/ipa/dcmipp/data/vd56g3_mono.yaml +@@ -0,0 +1,54 @@ ++# Copyright (c) 2024 STMicroelectronics. ++# All rights reserved. ++# ++# This software is licensed under SLA0044 terms that can be found here: ++# https://www.st.com/resource/en/license_agreement/SLA0044.txt ++# ++# vd56g3 configuration file for the STM32 dcmipp IPA. ++# ++# THIS FILE WAS GENERATED BY THE STM32 ISP IQTune ON 2025-05-19 09:42:55 ++# ++ ++%YAML 1.1 ++--- ++version: 1 ++algorithms: ++ - Aec: ++ AnalogueGain_dB: 0.0 ++ ExposureTime: 9308 ++ AeEnable: true ++ ExposureValue: 0.0 ++ AntiFlickerFreq: 0 ++ SensorDelay: 4 ++ - Awb: ++ FixedGainEnable: false ++ FixedGainR: 0 ++ FixedGainG: 0 ++ FixedGainB: 0 ++ FixedCconvEnable: false ++ FixedCconv: [0, 0, 0, 0, 0, 0, 0, 0, 0] ++ AwbEnable: false ++ ProfileName: ["Free Slot", "Free Slot", "Free Slot", "Free Slot", "Free Slot"] ++ RefColorTemp: [0, 0, 0, 0, 0] ++ GainR: [0, 0, 0, 0, 0] ++ GainG: [0, 0, 0, 0, 0] ++ GainB: [0, 0, 0, 0, 0] ++ Cconv: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ++ - BadPixel: ++ Enable: false ++ Strength: 0 ++ Threhsold: 0 ++ - BlackLevelCorrection: ++ Enable: true ++ Level: [16, 16, 16] ++ - Contrast: ++ Enable: false ++ LuminanceFactor: [0, 0, 0, 0, 0, 0, 0, 0, 0] ++ - Demosaicing: ++ Enable: false ++ Filter: [2, 4, 4, 6] ++ - Statistic: ++ Area: [140, 341, 840, 682] ++ Profile: 2 ++ - GammaCorrection: ++ Enable: true diff --git a/src/ipa/dcmipp/dcmipp.cpp b/src/ipa/dcmipp/dcmipp.cpp new file mode 100644 -index 00000000..9aa30cd1 +index 00000000..eea008f7 --- /dev/null +++ b/src/ipa/dcmipp/dcmipp.cpp -@@ -0,0 +1,567 @@ +@@ -0,0 +1,578 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -5299,7 +5564,8 @@ index 00000000..9aa30cd1 + sensorControls_ = sensorControls; + camHelper_ = CameraSensorHelperFactoryBase::create(settings.sensorModel); + if (!camHelper_) -+ LOG(IPADcmipp, Warning) << "No camera sensor helper for " << settings.sensorModel; ++ LOG(IPADcmipp, Error) << "No camera sensor helper for " << settings.sensorModel ++ << ". AEC will be disabled"; + + /* Get sensor exposure/time properties */ + setSensorProperties(sensorInfo, sensorControls); @@ -5337,6 +5603,11 @@ index 00000000..9aa30cd1 + ControlList v4l2SensorControls(sensorControls_), sensorControls; + sensorControls.set(controls::draft::AnalogueGain_dB, context_.sensor.gain); + sensorControls.set(controls::ExposureTime, context_.sensor.exposure); ++ ++ /* If needed, disable sensor Auto Exposure */ ++ if (context_.info.doDisableSensorAE) ++ v4l2SensorControls.set(V4L2_CID_EXPOSURE_AUTO, (int32_t)V4L2_EXPOSURE_MANUAL); ++ + convertControls(sensorControls, v4l2SensorControls); + setSensorControls.emit(0, v4l2SensorControls); + @@ -5373,6 +5644,9 @@ index 00000000..9aa30cd1 + /* Update the camera controls using the new sensor settings. */ + updateControls(ipaControls); + ++ /* Define whether the sensor auto exposure (if supported) shall be disabled */ ++ context_.info.doDisableSensorAE = context_.info.AECEnable && sensorControls.find(V4L2_CID_EXPOSURE_AUTO) != sensorControls.end(); ++ + return 0; +} + @@ -5516,16 +5790,18 @@ index 00000000..9aa30cd1 + +void IPADcmipp::convertControls(ControlList &controls, ControlList &v4l2Controls) +{ -+ /* Converts exposure to V4L2 control unit (number of lines) */ -+ const auto &exposure = controls.get(controls::ExposureTime); -+ if (exposure) -+ v4l2Controls.set(V4L2_CID_EXPOSURE, (int32_t)(*exposure / context_.info.sensorLineDuration_us)); ++ if (camHelper_) { ++ /* Converts exposure to V4L2 control unit (number of lines) */ ++ const auto &exposure = controls.get(controls::ExposureTime); ++ if (exposure) ++ v4l2Controls.set(V4L2_CID_EXPOSURE, (int32_t)(*exposure / context_.info.sensorLineDuration_us)); + -+ /* Converts gain to V4L2 control unit (eg 0.3 dB step for IMX335 sensor) */ -+ const auto &gain = controls.get(controls::draft::AnalogueGain_dB); -+ if (gain && camHelper_) { -+ float gainLinear = dBToLinear(*gain); -+ v4l2Controls.set(V4L2_CID_ANALOGUE_GAIN, (int32_t)(camHelper_->gainCode(gainLinear))); ++ /* Converts gain to V4L2 control unit (eg 0.3 dB step for IMX335 sensor) */ ++ const auto &gain = controls.get(controls::draft::AnalogueGain_dB); ++ if (gain) { ++ float gainLinear = dBToLinear(*gain); ++ v4l2Controls.set(V4L2_CID_ANALOGUE_GAIN, (int32_t)(camHelper_->gainCode(gainLinear))); ++ } + } + + /* Converts statistic area */ @@ -5754,10 +6030,10 @@ index 00000000..9aa30cd1 +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/ipa_context.h b/src/ipa/dcmipp/ipa_context.h new file mode 100644 -index 00000000..3a826f1c +index 00000000..dacc38e4 --- /dev/null +++ b/src/ipa/dcmipp/ipa_context.h -@@ -0,0 +1,132 @@ +@@ -0,0 +1,133 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024 ST Microelectronics @@ -5877,6 +6153,7 @@ index 00000000..3a826f1c + int64_t frameDurationsMin; /* Min frame duration in microseconds */ + int64_t frameDurationsMax; /* Max frame duration in microseconds */ + int64_t frameDurationsDef; /* Default frame duration in microseconds */ ++ bool doDisableSensorAE; /* Whether the sensor AE shall be disabled or not */ + } info; + + /* Supported controls */ @@ -5892,10 +6169,10 @@ index 00000000..3a826f1c +} /* namespace libcamera */ diff --git a/src/ipa/dcmipp/meson.build b/src/ipa/dcmipp/meson.build new file mode 100644 -index 00000000..911372d0 +index 00000000..7d3bda66 --- /dev/null +++ b/src/ipa/dcmipp/meson.build -@@ -0,0 +1,39 @@ +@@ -0,0 +1,51 @@ +# SPDX-License-Identifier: CC0-1.0 + +subdir('algorithms') @@ -5913,13 +6190,25 @@ index 00000000..911372d0 + +if get_option('evision_algo') + dcmipp_cpp_arguments += ['-DEVISION_ALGO_ENABLED'] ++ ++ evision_includes_dir = get_option('evision_algo_inc_dir') ++ ++ if evision_includes_dir == '' ++ error('Option evision_algo is activated. Please set evision_algo_inc_dir.') ++ endif ++ ++ evision_algo_deps = declare_dependency( ++ include_directories: include_directories(evision_includes_dir) ++ ) ++else ++ evision_algo_deps = dependency('', required: false) +endif + +mod = shared_module(ipa_name, + [dcmipp_ipa_sources, libcamera_generated_ipa_headers], + name_prefix : '', + include_directories : [ipa_includes, libipa_includes], -+ dependencies : libcamera_private, ++ dependencies : [libcamera_private, evision_algo_deps], + cpp_args : dcmipp_cpp_arguments, + link_with : libipa, + install : true, @@ -5968,6 +6257,28 @@ index 00000000..2faecf85 +} /* namespace ipa::dcmipp */ + +} /* namespace libcamera*/ +diff --git a/src/ipa/libipa/camera_sensor_helper.cpp b/src/ipa/libipa/camera_sensor_helper.cpp +index 2cd61fcc..6785e272 100644 +--- a/src/ipa/libipa/camera_sensor_helper.cpp ++++ b/src/ipa/libipa/camera_sensor_helper.cpp +@@ -631,6 +631,17 @@ public: + }; + REGISTER_CAMERA_SENSOR_HELPER("ov13858", CameraSensorHelperOv13858) + ++class CameraSensorHelperVd56g3 : public CameraSensorHelper ++{ ++public: ++ CameraSensorHelperVd56g3() ++ { ++ gainType_ = AnalogueGainLinear; ++ gainConstants_.linear = { 0, 32, -1, 32 }; ++ } ++}; ++REGISTER_CAMERA_SENSOR_HELPER("vd56g3", CameraSensorHelperVd56g3) ++ + #endif /* __DOXYGEN__ */ + + } /* namespace ipa */ diff --git a/src/ipa/rpi/controller/rpi/alsc.cpp b/src/ipa/rpi/controller/rpi/alsc.cpp index 961209ea..67029fc3 100644 --- a/src/ipa/rpi/controller/rpi/alsc.cpp @@ -5994,10 +6305,10 @@ index 961209ea..67029fc3 100644 /* Calculate chrominance statistics (R/G and B/G) for each region. */ diff --git a/src/libcamera/control_ids_draft.yaml b/src/libcamera/control_ids_draft.yaml -index 9bef5bf1..f2993fcd 100644 +index 9bef5bf1..0fdc5e63 100644 --- a/src/libcamera/control_ids_draft.yaml +++ b/src/libcamera/control_ids_draft.yaml -@@ -227,4 +227,248 @@ controls: +@@ -227,4 +227,260 @@ controls: value. All of the custom test patterns will be static (that is the raw image must not vary from frame to frame). @@ -6244,6 +6555,18 @@ index 9bef5bf1..f2993fcd 100644 + type: bool + description: | + GammaCorrection feature enable status. ++ ++ - ScalerCrops: ++ type: Rectangle ++ size: [n] ++ description: | ++ An array of rectangles, where each singular value has identical ++ functionality to the ScalerCrop control. This control allows the ++ STM32 DCMIPP pipeline handler to control individual crop per ++ output stream. ++ ++ The order of rectangles passed into the control must match the order of ++ streams configured by the application. + ... diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp @@ -6329,10 +6652,10 @@ index 04f40132..bd054552 100644 /** diff --git a/src/libcamera/pipeline/dcmipp/dcmipp.cpp b/src/libcamera/pipeline/dcmipp/dcmipp.cpp new file mode 100644 -index 00000000..a7353fe2 +index 00000000..15bf65a2 --- /dev/null +++ b/src/libcamera/pipeline/dcmipp/dcmipp.cpp -@@ -0,0 +1,1363 @@ +@@ -0,0 +1,1436 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024, ST Microelectronics @@ -6357,6 +6680,7 @@ index 00000000..a7353fe2 +#include +#include +#include ++#include +#include +#include + @@ -6464,6 +6788,7 @@ index 00000000..a7353fe2 + +private: + bool fitsAllPaths(const StreamConfiguration &cfg); ++ std::vector extractUniqueMediaBusCodes(const std::map &inputFmt); + + DcmippCameraData *data_; + V4L2SubdeviceFormat sensorFormat_; @@ -6527,30 +6852,50 @@ index 00000000..a7353fe2 + Camera *activeCamera_; + + unsigned int ipaBufferCount_; ++ ++ DcmippPath *stream_paths_[DCMIPP_MAX_PATH_NB]; +}; + -+namespace { ++namespace dcmipp { + -+static const std::map rawFormatToMediaBus{ -+ { formats::SBGGR8, MEDIA_BUS_FMT_SBGGR8_1X8 }, -+ { formats::SGBRG8, MEDIA_BUS_FMT_SGBRG8_1X8 }, -+ { formats::SGRBG8, MEDIA_BUS_FMT_SGRBG8_1X8 }, -+ { formats::SRGGB8, MEDIA_BUS_FMT_SRGGB8_1X8 }, -+ { formats::SBGGR10, MEDIA_BUS_FMT_SBGGR10_1X10 }, -+ { formats::SGBRG10, MEDIA_BUS_FMT_SGBRG10_1X10 }, -+ { formats::SGRBG10, MEDIA_BUS_FMT_SGRBG10_1X10 }, -+ { formats::SRGGB10, MEDIA_BUS_FMT_SRGGB10_1X10 }, -+ { formats::SBGGR12, MEDIA_BUS_FMT_SBGGR12_1X12 }, -+ { formats::SGBRG12, MEDIA_BUS_FMT_SGBRG12_1X12 }, -+ { formats::SGRBG12, MEDIA_BUS_FMT_SGRBG12_1X12 }, -+ { formats::SRGGB12, MEDIA_BUS_FMT_SRGGB12_1X12 }, ++/* List of format supported as input by the DCMIPP */ ++const std::map inputFormatToMediaBus{ ++ /* Bayer formats */ + { formats::SBGGR14, MEDIA_BUS_FMT_SBGGR14_1X14 }, + { formats::SGBRG14, MEDIA_BUS_FMT_SGBRG14_1X14 }, + { formats::SGRBG14, MEDIA_BUS_FMT_SGRBG14_1X14 }, + { formats::SRGGB14, MEDIA_BUS_FMT_SRGGB14_1X14 }, ++ { formats::SBGGR12, MEDIA_BUS_FMT_SBGGR12_1X12 }, ++ { formats::SGBRG12, MEDIA_BUS_FMT_SGBRG12_1X12 }, ++ { formats::SGRBG12, MEDIA_BUS_FMT_SGRBG12_1X12 }, ++ { formats::SRGGB12, MEDIA_BUS_FMT_SRGGB12_1X12 }, ++ { formats::SBGGR10, MEDIA_BUS_FMT_SBGGR10_1X10 }, ++ { formats::SGBRG10, MEDIA_BUS_FMT_SGBRG10_1X10 }, ++ { formats::SGRBG10, MEDIA_BUS_FMT_SGRBG10_1X10 }, ++ { formats::SRGGB10, MEDIA_BUS_FMT_SRGGB10_1X10 }, ++ { formats::SBGGR8, MEDIA_BUS_FMT_SBGGR8_1X8 }, ++ { formats::SGBRG8, MEDIA_BUS_FMT_SGBRG8_1X8 }, ++ { formats::SGRBG8, MEDIA_BUS_FMT_SGRBG8_1X8 }, ++ { formats::SRGGB8, MEDIA_BUS_FMT_SRGGB8_1X8 }, ++ /* RGB */ ++ { formats::RGB565, MEDIA_BUS_FMT_RGB565_1X16 }, ++ { formats::BGR888, MEDIA_BUS_FMT_RGB888_1X24 }, ++ /* YUV */ ++ { formats::YUYV, MEDIA_BUS_FMT_YUYV8_1X16 }, ++ { formats::UYVY, MEDIA_BUS_FMT_UYVY8_1X16 }, ++ { formats::YVYU, MEDIA_BUS_FMT_YVYU8_1X16 }, ++ { formats::VYUY, MEDIA_BUS_FMT_VYUY8_1X16 }, ++ /* Monochrome */ ++ { formats::R8, MEDIA_BUS_FMT_Y8_1X8 }, ++ { formats::R10, MEDIA_BUS_FMT_Y10_1X10 }, ++ { formats::R12, MEDIA_BUS_FMT_Y12_1X12 }, ++ /* R14 is not available in libcamera formats */ ++ /* { formats::R14, MEDIA_BUS_FMT_Y14_1X14 }, */ ++ /* Compressed */ ++ { formats::MJPEG, MEDIA_BUS_FMT_JPEG_1X8 }, +}; + -+} /* namespace */ ++} /* namespace dcmipp */ + +DcmippFrames::DcmippFrames(PipelineHandler *pipe) + : pipe_(static_cast(pipe)) @@ -6684,50 +7029,37 @@ index 00000000..a7353fe2 + return true; +} + ++std::vector DcmippCameraConfiguration::extractUniqueMediaBusCodes(const std::map &inputFmt) ++{ ++ std::set uniqueCodes; ++ for (const auto &entry : inputFmt) { ++ uniqueCodes.insert(entry.second); ++ } ++ ++ return std::vector(uniqueCodes.begin(), uniqueCodes.end()); ++} ++ +CameraConfiguration::Status DcmippCameraConfiguration::validate() +{ + const CameraSensor *sensor = data_->sensor_.get(); + PipelineHandlerDcmipp *pipe = + static_cast(data_->pipe()); -+ V4L2SubdeviceFormat sensorFormat; + Status status = Valid; + -+ /* -+ * List of RAW formats supported by the input subdevice -+ * sorted from the best quality to the lowest quality so -+ * that the pipeline handler will pick up the best quality -+ * possible by both sensor & dcmipp -+ */ -+ const std::vector mbusRAWInputCodes = { -+ MEDIA_BUS_FMT_SRGGB14_1X14, -+ MEDIA_BUS_FMT_SGRBG14_1X14, -+ MEDIA_BUS_FMT_SGBRG14_1X14, -+ MEDIA_BUS_FMT_SBGGR14_1X14, -+ MEDIA_BUS_FMT_SRGGB12_1X12, -+ MEDIA_BUS_FMT_SGRBG12_1X12, -+ MEDIA_BUS_FMT_SGBRG12_1X12, -+ MEDIA_BUS_FMT_SBGGR12_1X12, -+ MEDIA_BUS_FMT_SRGGB10_1X10, -+ MEDIA_BUS_FMT_SGRBG10_1X10, -+ MEDIA_BUS_FMT_SGBRG10_1X10, -+ MEDIA_BUS_FMT_SBGGR10_1X10, -+ MEDIA_BUS_FMT_SRGGB8_1X8, -+ MEDIA_BUS_FMT_SGRBG8_1X8, -+ MEDIA_BUS_FMT_SGBRG8_1X8, -+ MEDIA_BUS_FMT_SBGGR8_1X8, -+ }; -+ + LOG(DCMIPP, Debug) << "validate"; + + if (config_.empty()) + return Invalid; + + /* Cap the number of entries to the available streams. */ -+ if (config_.size() > 3) { -+ config_.resize(3); ++ if (config_.size() > DCMIPP_MAX_PATH_NB) { ++ config_.resize(DCMIPP_MAX_PATH_NB); + status = Adjusted; + } + ++ for (int i = 0; i < DCMIPP_MAX_PATH_NB; i++) ++ pipe->stream_paths_[i] = nullptr; ++ + /* + * Reorder the list of streams based on compatibility with pipes. Evaluate first + * streams that cannot work on all pipes. Create an order list, and push at the @@ -6781,11 +7113,37 @@ index 00000000..a7353fe2 + DcmippPath *path; + Stream *stream; + ++ LOG(DCMIPP, Debug) << "Searching for format: " << cfg.pixelFormat << " resolution: " << sensor->resolution(); ++ ++ /* ++ * Select the dumpPath if: ++ * - RAW format ++ * - supported as part of the input format ++ * - requested format is supported by the sensor ++ * - dumpPath is not yet allocated ++ * In such case this will also become the sensor format ++ */ + if (PixelFormatInfo::info(cfg.pixelFormat).colourEncoding == PixelFormatInfo::ColourEncodingRAW) { ++ uint32_t input_mbus; ++ ++ if (libcamera::dcmipp::inputFormatToMediaBus.find(cfg.pixelFormat) == ++ libcamera::dcmipp::inputFormatToMediaBus.end()) { ++ LOG(DCMIPP, Error) << "Format " << cfg.pixelFormat << " not supported by DCMIPP."; ++ return Invalid; ++ } ++ ++ input_mbus = libcamera::dcmipp::inputFormatToMediaBus.find(cfg.pixelFormat)->second; ++ sensorFormat_ = sensor->getFormat(std::vector{ input_mbus }, sensor->resolution()); ++ if (sensorFormat_.size.isNull()) { ++ LOG(DCMIPP, Error) << "Format:" << cfg.pixelFormat << "size:" << cfg.size << " not available from sensor."; ++ return Invalid; ++ } ++ + if (dumpAllocated) { + LOG(DCMIPP, Error) << "Cannot perform RAW capture since Dump pipe already allocated"; + return Invalid; + } ++ + LOG(DCMIPP, Debug) << "Select Dump pipe for config: pixelformat: " << cfg.pixelFormat << " size: " << cfg.size; + path = &pipe->dumpPath_; + stream = &data_->Dumpstream_; @@ -6814,31 +7172,18 @@ index 00000000..a7353fe2 + cfg = std::move(tryCfg); + cfg.setStream(stream); + -+ /* If we have validate a RAW format, this should be the sensor format */ -+ if (PixelFormatInfo::info(cfg.pixelFormat).colourEncoding == PixelFormatInfo::ColourEncodingRAW) { -+ /* Check that the format is supported */ -+ if (rawFormatToMediaBus.find(cfg.pixelFormat) == rawFormatToMediaBus.end()) { -+ LOG(DCMIPP, Debug) << "Format " << cfg.pixelFormat << " not supported"; -+ return Invalid; -+ } -+ -+ sensorFormat.code = rawFormatToMediaBus.find(cfg.pixelFormat)->second; -+ sensorFormat.size = sensor->resolution(); -+ } ++ pipe->stream_paths_[index] = path; + } + -+ /* If we haven't got yet a sensorFormat, then pick the best one for us */ -+ if (sensorFormat.size.isNull()) { -+ sensorFormat = sensor->getFormat(mbusRAWInputCodes, sensor->resolution()); -+ if (sensorFormat.size.isNull()) { -+ LOG(DCMIPP, Debug) << __func__ << "Failed to get compatible RAW format"; ++ /* If we haven't got yet a sensorFormat_, then pick the best one for us */ ++ if (sensorFormat_.size.isNull()) { ++ sensorFormat_ = sensor->getFormat(extractUniqueMediaBusCodes(libcamera::dcmipp::inputFormatToMediaBus), sensor->resolution()); ++ if (sensorFormat_.size.isNull()) { ++ LOG(DCMIPP, Debug) << "Failed to get compatible input format"; + return Invalid; + } + } + -+ LOG(DCMIPP, Debug) << __func__ << " sensor MBUS format is " << sensorFormat.code << "/" << sensorFormat.size; -+ sensorFormat_ = sensorFormat; -+ + return status; +} + @@ -6863,8 +7208,8 @@ index 00000000..a7353fe2 + if (roles.empty()) + return config; + -+ /* DCMIPP can handle a maximum of 3 streams */ -+ if (roles.size() > 3) { ++ /* DCMIPP can handle a maximum of DCMIPP_MAX_PATH_NB streams */ ++ if (roles.size() > DCMIPP_MAX_PATH_NB) { + LOG(DCMIPP, Error) << "More streams requested than supported"; + return nullptr; + } @@ -6887,14 +7232,18 @@ index 00000000..a7353fe2 + * Raw: targetting RawBayer extraction of the image from a sensor. Format depends on + * the format of the sensor. This is only done by the Dump pipe. + */ ++ Size sizeSensor = data->sensor_->resolution(); ++ Size maxSizeVideoRecording(1920, 1080); ++ Size maxSizeViewfinder(1024, 600); + for (const StreamRole role : roles) { + DcmippPath *path; + Size maxSize; + PixelFormat pixelFormat; + ++ + switch (role) { + case StreamRole::StillCapture: -+ maxSize = data->sensor_->resolution(); ++ maxSize = sizeSensor; + pixelFormat = formats::YUV420; + if (mainAllocated) { + LOG(DCMIPP, Error) << "Main pipe already allocated, ABORT"; @@ -6904,7 +7253,7 @@ index 00000000..a7353fe2 + mainAllocated = true; + break; + case StreamRole::Viewfinder: -+ maxSize = { 1024, 600 }; ++ maxSize = maxSizeViewfinder.boundedTo(sizeSensor); + pixelFormat = formats::RGB888; + if (auxAllocated) { + LOG(DCMIPP, Error) << "Aux pipe already allocated, ABORT"; @@ -6914,7 +7263,7 @@ index 00000000..a7353fe2 + auxAllocated = true; + break; + case StreamRole::VideoRecording: -+ maxSize = { 1920, 1080 }; ++ maxSize = maxSizeVideoRecording.boundedTo(sizeSensor); + pixelFormat = formats::NV12; + if (mainAllocated) { + LOG(DCMIPP, Error) << "Main pipe already allocated, ABORT"; @@ -6924,7 +7273,7 @@ index 00000000..a7353fe2 + mainAllocated = true; + break; + case StreamRole::Raw: -+ maxSize = data->sensor_->resolution(); ++ maxSize = sizeSensor; + /* + * In case of Raw role, the pixelFormat is actually given by the + * dcmipp_path generateConfiguration since it depends on sensor format @@ -7024,12 +7373,28 @@ index 00000000..a7353fe2 + return ret; + + /* ++ * Determine order into which apply configuration. Since the AUX pipe is ++ * plugged at the tail of the ISP, we want to have MAIN pipe configured ++ * first. ++ */ ++ std::vector order; ++ order.reserve((*config).size()); ++ for (unsigned int index = 0; index < (*config).size(); index++) { ++ StreamConfiguration &cfg = (*config)[index]; ++ if (cfg.stream() == &data->Auxstream_) ++ order.emplace(order.end(), index); ++ else ++ order.emplace(order.begin(), index); ++ } ++ ++ /* + * Configuration of each path + * If main and/or aux are used, store the number of necessary ipa buffers + * this is set to the number of path buffer + 1 + */ + ipaBufferCount_ = 0; -+ for (const StreamConfiguration &cfg : *config) { ++ for (unsigned int index : order) { ++ StreamConfiguration &cfg = (*config)[index]; + if (cfg.stream() == &data->Dumpstream_) + ret = dumpPath_.configure(cfg, subformat, 0); + else if (cfg.stream() == &data->Mainstream_) { @@ -7175,13 +7540,36 @@ index 00000000..a7353fe2 + return 0; +} + -+int PipelineHandlerDcmipp::start(Camera *camera, [[maybe_unused]] const ControlList *controls) ++int PipelineHandlerDcmipp::start(Camera *camera, const ControlList *controls) +{ + DcmippCameraData *data = cameraData(camera); + int ret; + + LOG(DCMIPP, Debug) << "start"; + ++ /* Check if a ScalerCrops control was specified. */ ++ if (controls) { ++ const auto &scalerCropsDraft = controls->get>(controls::draft::ScalerCrops); ++ ++ for (unsigned int i = 0; i < DCMIPP_MAX_PATH_NB; i++) { ++ if (scalerCropsDraft && i < scalerCropsDraft->size()) { ++ const Rectangle &rect = scalerCropsDraft->data()[i]; ++ ++ if (!stream_paths_[i]) { ++ LOG(DCMIPP, Error) << "Trying to set ScalerCrops on unused stream #" << i; ++ return -EIO; ++ } ++ ++ LOG(DCMIPP, Debug) << "Apply crop " << scalerCropsDraft->data()[i] << " for stream " << i; ++ ret = stream_paths_[i]->setScalerCrop(rect); ++ if (ret) { ++ LOG(DCMIPP, Error) << "Failed to set Crop for stream #" << i; ++ return ret; ++ } ++ } ++ } ++ } ++ + activeCamera_ = camera; + + if (data->dumpPath_->isEnabled()) { @@ -7414,13 +7802,21 @@ index 00000000..a7353fe2 + return false; + } + ++ /* Check is the sensor is a monochrome sensor. If yes, load the _mono.yaml file */ ++ bool monoSensor = sensorInfo.cfaPattern == properties::draft::ColorFilterArrangementEnum::MONO; ++ + /* Tuning file made from sensor name or from environment variable */ + std::string ipaTuningFile; + char const *configFromEnv = utils::secure_getenv("LIBCAMERA_DCMIPP_TUNING_FILE"); + if (configFromEnv && *configFromEnv != '\0') { + ipaTuningFile = std::string(configFromEnv); + } else { -+ ipaTuningFile = data->ipa_->configurationFile(data->sensor_->model() + ".yaml"); ++ if (monoSensor) ++ ipaTuningFile = data->ipa_->configurationFile(data->sensor_->model() + "_mono.yaml"); ++ else ++ ipaTuningFile = data->ipa_->configurationFile(data->sensor_->model() + ".yaml"); ++ if (ipaTuningFile.empty()) ++ ipaTuningFile = data->ipa_->configurationFile("uncalibrated.yaml"); + } + + if (data->ipa_->init(IPASettings{ ipaTuningFile, data->sensor_->model() }, @@ -7698,10 +8094,10 @@ index 00000000..a7353fe2 +} /* namespace libcamera */ diff --git a/src/libcamera/pipeline/dcmipp/dcmipp.h b/src/libcamera/pipeline/dcmipp/dcmipp.h new file mode 100644 -index 00000000..eaa668f3 +index 00000000..b1564070 --- /dev/null +++ b/src/libcamera/pipeline/dcmipp/dcmipp.h -@@ -0,0 +1,120 @@ +@@ -0,0 +1,128 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024, ST Microelectronics @@ -7762,6 +8158,8 @@ index 00000000..eaa668f3 + return video_->exportBuffers(bufferCount, buffers); + } + ++ int setScalerCrop(const Rectangle &window); ++ + int start(); + void stop(); + @@ -7808,8 +8206,14 @@ index 00000000..eaa668f3 + DcmippAuxPath(); +}; + ++namespace dcmipp { ++extern const std::map inputFormatToMediaBus; ++} ++ +} /* namespace libcamera */ + ++#define DCMIPP_MAX_PATH_NB 3 ++ +#define DCMIPP_V4L2_BUFFER_NB 4 + +#define DCMIPP_RAW_MAX_WIDTH 2688 @@ -7824,10 +8228,10 @@ index 00000000..eaa668f3 +#define DCMIPP_STATS_FRAME_DELAY 10 diff --git a/src/libcamera/pipeline/dcmipp/dcmipp_path.cpp b/src/libcamera/pipeline/dcmipp/dcmipp_path.cpp new file mode 100644 -index 00000000..7f053792 +index 00000000..0f07485a --- /dev/null +++ b/src/libcamera/pipeline/dcmipp/dcmipp_path.cpp -@@ -0,0 +1,496 @@ +@@ -0,0 +1,488 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2024, ST Microelectronics @@ -7854,7 +8258,7 @@ index 00000000..7f053792 + +namespace { + -+constexpr std::array pixelformats_dump{ ++constexpr std::array pixelformats_dump{ + formats::RGB565, + formats::YUYV, + formats::YVYU, @@ -7877,10 +8281,6 @@ index 00000000..7f053792 + formats::SGBRG14, + formats::SGRBG14, + formats::SRGGB14, -+ formats::SBGGR16, -+ formats::SGBRG16, -+ formats::SGRBG16, -+ formats::SRGGB16, + formats::MJPEG, +}; + @@ -7912,46 +8312,6 @@ index 00000000..7f053792 + formats::BGR888, +}; + -+const std::map formatToMediaBus = { -+ { formats::RGB565, MEDIA_BUS_FMT_RGB888_1X24 }, -+ { formats::YUYV, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::YVYU, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::UYVY, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::VYUY, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::R8, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::RGB888, MEDIA_BUS_FMT_RGB888_1X24 }, -+ { formats::BGR888, MEDIA_BUS_FMT_RGB888_1X24 }, -+ { formats::ARGB8888, MEDIA_BUS_FMT_RGB888_1X24 }, -+ { formats::AVUY8888, MEDIA_BUS_FMT_RGB888_1X24 }, -+ { formats::NV12, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::NV21, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::NV16, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::NV61, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::YUV420, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::YVU420, MEDIA_BUS_FMT_YUV8_1X24 }, -+ { formats::SBGGR8, MEDIA_BUS_FMT_SBGGR8_1X8 }, -+ { formats::SGBRG8, MEDIA_BUS_FMT_SGBRG8_1X8 }, -+ { formats::SGRBG8, MEDIA_BUS_FMT_SGRBG8_1X8 }, -+ { formats::SRGGB8, MEDIA_BUS_FMT_SRGGB8_1X8 }, -+ { formats::SBGGR10, MEDIA_BUS_FMT_SBGGR10_1X10 }, -+ { formats::SGBRG10, MEDIA_BUS_FMT_SGBRG10_1X10 }, -+ { formats::SGRBG10, MEDIA_BUS_FMT_SGRBG10_1X10 }, -+ { formats::SRGGB10, MEDIA_BUS_FMT_SRGGB10_1X10 }, -+ { formats::SBGGR12, MEDIA_BUS_FMT_SBGGR12_1X12 }, -+ { formats::SGBRG12, MEDIA_BUS_FMT_SGBRG12_1X12 }, -+ { formats::SGRBG12, MEDIA_BUS_FMT_SGRBG12_1X12 }, -+ { formats::SRGGB12, MEDIA_BUS_FMT_SRGGB12_1X12 }, -+ { formats::SBGGR14, MEDIA_BUS_FMT_SBGGR14_1X14 }, -+ { formats::SGBRG14, MEDIA_BUS_FMT_SGBRG14_1X14 }, -+ { formats::SGRBG14, MEDIA_BUS_FMT_SGRBG14_1X14 }, -+ { formats::SRGGB14, MEDIA_BUS_FMT_SRGGB14_1X14 }, -+ { formats::SBGGR16, MEDIA_BUS_FMT_SBGGR16_1X16 }, -+ { formats::SGBRG16, MEDIA_BUS_FMT_SGBRG16_1X16 }, -+ { formats::SGRBG16, MEDIA_BUS_FMT_SGRBG16_1X16 }, -+ { formats::SRGGB16, MEDIA_BUS_FMT_SRGGB16_1X16 }, -+ { formats::MJPEG, MEDIA_BUS_FMT_JPEG_1X8 }, -+}; -+ +} /* namespace */ + +DcmippPath::DcmippPath(const char *name) @@ -8007,6 +8367,9 @@ index 00000000..7f053792 + return false; + input_source_pad_ = 2; + } else if (name_ == std::string("aux")) { ++ isp_ = V4L2Subdevice::fromEntityName(media, "dcmipp_main_isp"); ++ if (isp_->open() < 0) ++ return false; + link_ = media->link("dcmipp_main_isp", 1, "dcmipp_aux_postproc", 0); + if (!link_) + return false; @@ -8069,7 +8432,7 @@ index 00000000..7f053792 + } else if (name_ == std::string("dump") && + info.colourEncoding == PixelFormatInfo::ColourEncodingRAW) { + /* Handling of Byte pipe (Dump) exclusively for RAW formats */ -+ uint32_t mbusCode = formatToMediaBus.at(format); ++ uint32_t mbusCode = libcamera::dcmipp::inputFormatToMediaBus.at(format); + if (std::find(mbusCodes.begin(), mbusCodes.end(), mbusCode) == + mbusCodes.end()) + /* Skip formats not supported by sensor. */ @@ -8154,6 +8517,7 @@ index 00000000..7f053792 +{ + int ret; + V4L2SubdeviceFormat subformat = inputFormat; ++ const PixelFormatInfo &config_format_info = PixelFormatInfo::info(config.pixelFormat); + + LOG(DCMIPP, Debug) << "DcmippPath::configure " << name_; + LOG(DCMIPP, Debug) << "Configuration: Size: " << config.size << " pixelFormat: " << config.pixelFormat << " bufferCount: " << config.bufferCount; @@ -8163,13 +8527,11 @@ index 00000000..7f053792 + return ret; + + if (name_ == std::string("dump")) { -+ /* Configuration of the postproc block */ ++ /* Dump postproc will automatically replicate input to output */ + ret = postproc_->setFormat(0, &subformat); + if (ret) + return ret; -+ ret = postproc_->setFormat(1, &subformat); -+ if (ret) -+ return ret; ++ + LOG(DCMIPP, Debug) + << "Configured pipe " << name_ << " with format " << subformat; + } else if (name_ == std::string("main")) { @@ -8178,13 +8540,15 @@ index 00000000..7f053792 + if (ret) + return ret; + -+ subformat.code = MEDIA_BUS_FMT_RGB888_1X24; -+ subformat.size /= isp_decimation_ratio; -+ Rectangle compose_isp{ 0, 0, subformat.size }; ++ Rectangle compose_isp{ 0, 0, subformat.size / isp_decimation_ratio }; + ret = isp_->setSelection(0, V4L2_SEL_TGT_COMPOSE, &compose_isp); + if (ret) + return ret; + ++ ret = isp_->getFormat(1, &subformat); ++ if (ret) ++ return ret; ++ + LOG(DCMIPP, Debug) + << "Configured pipe " << name_ << " with ISP output format " + << subformat; @@ -8194,11 +8558,12 @@ index 00000000..7f053792 + if (ret) + return ret; + -+ /* This should not happen since config.pixelFormat has already been validated */ -+ if (formatToMediaBus.find(config.pixelFormat) == formatToMediaBus.end()) -+ return -EINVAL; ++ /* Set the postproc src pad format based on the output format */ ++ if (config_format_info.colourEncoding == PixelFormatInfo::ColourEncodingRGB) ++ subformat.code = MEDIA_BUS_FMT_RGB888_1X24; ++ else ++ subformat.code = MEDIA_BUS_FMT_YUV8_1X24; + -+ subformat.code = formatToMediaBus.find(config.pixelFormat)->second; + ret = postproc_->setFormat(1, &subformat); + if (ret) + return ret; @@ -8208,28 +8573,30 @@ index 00000000..7f053792 + if (ret) + return ret; + ++ ret = postproc_->getFormat(1, &subformat); ++ if (ret) ++ return ret; ++ + LOG(DCMIPP, Debug) + << "Configured pipe " << name_ << " with format input format " + << inputFormat << " and output format " << subformat; + } else if (name_ == std::string("aux")) { -+ subformat.code = MEDIA_BUS_FMT_RGB888_1X24; -+ subformat.size /= isp_decimation_ratio; ++ /* Apply ISP output format to AUX postproc input */ ++ ret = isp_->getFormat(1, &subformat); ++ if (ret) ++ return ret; + + /* Configuration of the postproc block */ + ret = postproc_->setFormat(0, &subformat); + if (ret) + return ret; ++ + Rectangle compose{ 0, 0, config.size }; + ret = postproc_->setSelection(0, V4L2_SEL_TGT_COMPOSE, &compose); + if (ret) + return ret; + -+ /* This should not happen since config.pixelFormat has already been validated */ -+ if (formatToMediaBus.find(config.pixelFormat) == formatToMediaBus.end()) -+ return -EINVAL; -+ -+ subformat.code = formatToMediaBus.find(config.pixelFormat)->second; -+ ret = postproc_->setFormat(1, &subformat); ++ ret = postproc_->getFormat(1, &subformat); + if (ret) + return ret; + @@ -8238,11 +8605,10 @@ index 00000000..7f053792 + << subformat; + } + -+ const PixelFormatInfo &info = PixelFormatInfo::info(config.pixelFormat); + V4L2DeviceFormat outputFormat; + outputFormat.fourcc = video_->toV4L2PixelFormat(config.pixelFormat); + outputFormat.size = config.size; -+ outputFormat.planesCount = info.numPlanes(); ++ outputFormat.planesCount = config_format_info.numPlanes(); + + ret = video_->setFormat(&outputFormat); + if (ret) @@ -8266,6 +8632,36 @@ index 00000000..7f053792 + return ret; +} + ++int DcmippPath::setScalerCrop(const Rectangle &window) ++{ ++ LOG(DCMIPP, Debug) << "Function: " << __func__; ++ Rectangle compose; ++ Rectangle crop = window; ++ int ret; ++ ++ /* Backup original compose */ ++ ret = postproc_->getSelection(0, V4L2_SEL_TGT_COMPOSE, &compose); ++ if (ret < 0) ++ return ret; ++ ++ /* ++ * Guard from crop being smaller than compose since this ++ * would lead to change in the output frame ++ */ ++ if (crop.width < compose.width || crop.height < compose.height) { ++ LOG(DCMIPP, Error) << "DcmippPath::setScalerCrop " << name_ << ":crop smaller than compose"; ++ return -EINVAL; ++ } ++ ++ /* Set the new crop window */ ++ ret = postproc_->setSelection(0, V4L2_SEL_TGT_CROP, &crop); ++ if (ret < 0) ++ return ret; ++ ++ /* Set back the original compose */ ++ return postproc_->setSelection(0, V4L2_SEL_TGT_COMPOSE, &compose); ++} ++ +int DcmippPath::start() +{ + int ret; @@ -8335,6 +8731,21 @@ index 00000000..4f1555d9 +libcamera_sources += files([ + 'dcmipp.cpp', 'dcmipp_path.cpp' +]) +diff --git a/src/libcamera/sensor/camera_sensor_properties.cpp b/src/libcamera/sensor/camera_sensor_properties.cpp +index b18524d8..1b2a29ae 100644 +--- a/src/libcamera/sensor/camera_sensor_properties.cpp ++++ b/src/libcamera/sensor/camera_sensor_properties.cpp +@@ -267,6 +267,10 @@ const CameraSensorProperties *CameraSensorProperties::get(const std::string &sen + { controls::draft::TestPatternModeColorBars, 1 }, + }, + } }, ++ { "vd56g3", { ++ .unitCellSize = { 2610, 2610 }, ++ .testPatternModes = {}, ++ } }, + }; + + const auto it = sensorProps.find(sensor); diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp index 4a2048cf..3131243a 100644 --- a/src/libcamera/v4l2_device.cpp diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0002-dcmipp-Fix-configureAwbAlgo-encapsulation-under-EVIS.patch b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0002-dcmipp-Fix-configureAwbAlgo-encapsulation-under-EVIS.patch deleted file mode 100644 index c454b1d49..000000000 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/files/0002-dcmipp-Fix-configureAwbAlgo-encapsulation-under-EVIS.patch +++ /dev/null @@ -1,33 +0,0 @@ -From: Arturo Buzarra -Date: Wed, 19 Nov 2025 11:58:43 +0100 -Subject: [PATCH] dcmipp: Fix configureAwbAlgo() encapsulation under - EVISION_ALGO_ENABLED - -Awb::queueRequest() unconditionally calls configureAwbAlgo(), but it is -compiled only when EVISION_ALGO_ENABLED is defined. With EVISION_ALGO_ENABLED -disabled, this leads to an undefined symbol at runtime when loading the DCMIPP -IPA. This commit guards the call under EVISION_ALGO_ENABLED so that non-EVISION -builds no longer reference the helper. - -Signed-off-by: Arturo Buzarra ---- - src/ipa/dcmipp/algorithms/awb.cpp | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/src/ipa/dcmipp/algorithms/awb.cpp b/src/ipa/dcmipp/algorithms/awb.cpp -index 006ad4b8..4444ac98 100644 ---- a/src/ipa/dcmipp/algorithms/awb.cpp -+++ b/src/ipa/dcmipp/algorithms/awb.cpp -@@ -652,10 +652,12 @@ void Awb::queueRequest([[maybe_unused]] IPAContext &context, - LOG(DcmippAwb, Debug) << "Updating AwbColourConv to " << (*cconv)[0] << "..."; - } - -+#ifdef EVISION_ALGO_ENABLED - if (internal_.profileDirty && !configureAwbAlgo()) { - LOG(DcmippAwb, Error) << "Cannot reconfigure awb algorithm"; - return; - } -+#endif /* EVISION_ALGO_ENABLED */ - - /* Static config: update params_ and if applicable force config_ update now */ - const auto &customColorTemp = controls.get(controls::draft::AwbCustomColorTemperature); diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/libcamera-stm32mp.inc b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/libcamera-stm32mp.inc new file mode 100644 index 000000000..57c9d5b12 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/libcamera-stm32mp.inc @@ -0,0 +1,74 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/libcamera-stm32mp:" + +PROVIDES += "libcamera" + +PE = "1" + +S = "${WORKDIR}/git" + +DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls chrpath-native libevent libyaml" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}" +DEPENDS:append:aarch64 = " evision-libs " + +PACKAGES =+ "${PN}-gst" + +PACKAGECONFIG ??= "gst python" +PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[python] = "-Dpycamera=enabled,-Dpycamera=disabled,python3-pybind11" + +LIBCAMERA_PIPELINES ??= "dcmipp" +LIBCAMERA_IPAS = "dcmipp" + +EXTRA_OEMESON = " \ + -Dpipelines=${LIBCAMERA_PIPELINES} \ + -Dv4l2=true \ + -Dcam=enabled \ + -Dlc-compliance=disabled \ + -Dtest=false \ + -Ddocumentation=disabled \ +" +EXTRA_OEMESON += " \ + -Dipas=${LIBCAMERA_IPAS} \ +" +EXTRA_OEMESON:append:aarch64 = " \ + -Devision_algo=true \ + -Devision_algo_inc_dir=${RECIPE_SYSROOT}/usr/include/evision \ +" + +RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}" +RDEPENDS:${PN}:append:aarch64 = " evision-libs " + +inherit meson pkgconfig python3native python3-dir + +do_configure:prepend() { + sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py +} + +do_install:append() { + chrpath -d ${D}${libdir}/libcamera.so + chrpath -d ${D}${libexecdir}/libcamera/v4l2-compat.so +} + +do_package:append() { + bb.build.exec_func("do_package_recalculate_ipa_signatures", d) +} + +do_package_recalculate_ipa_signatures() { + local modules + for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do + module="${module%.sign}" + if [ -f "${module}" ] ; then + modules="${modules} ${module}" + fi + done + + ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}" +} + +FILES:${PN} += " ${libexecdir}/libcamera/v4l2-compat.so" +FILES:${PN} += "${datadir} ${libdir} ${PYTHON_SITEPACKAGES_DIR}" +FILES:${PN}-gst = "${libdir}/gstreamer-1.0" + +# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to +# both 32 and 64 bit file APIs. +GLIBC_64BIT_TIME_FLAGS = "" diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/libcamera-stm32mp_0.3.0.bb b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/libcamera-stm32mp_0.3.0.bb index 086788731..439c1a7ec 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/libcamera-stm32mp_0.3.0.bb +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/libcamera/libcamera-stm32mp_0.3.0.bb @@ -8,85 +8,18 @@ LIC_FILES_CHKSUM = "\ file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \ " +include libcamera-stm32mp.inc + # 0.3.0 -SRC_URI = " \ - git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \ - file://0001-media_device-Add-bool-return-type-to-unlock.patch \ - file://0002-options-Replace-use-of-VLAs-in-C.patch \ - file://0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch \ -" +SRC_URI = "git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master" SRCREV = "aee16c06913422a0ac84ee3217f87a9795e3c2d9" SRC_URI += " \ - file://0001-0.3.0-stm32mp-add-dcmipp-ipa.patch \ - file://0002-dcmipp-Fix-configureAwbAlgo-encapsulation-under-EVIS.patch \ -" -PV = "v0.3.0-stm32mp" + file://0001-media_device-Add-bool-return-type-to-unlock.patch \ + file://0002-options-Replace-use-of-VLAs-in-C.patch \ + file://0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch \ + \ + file://0001-v0.3.0-stm32mp.patch \ + " -PROVIDES += "libcamera" - -PE = "1" - -S = "${WORKDIR}/git" - -DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls chrpath-native libevent libyaml" -DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}" - -PACKAGES =+ "${PN}-gst" - -PACKAGECONFIG ??= "gst python" -PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[python] = "-Dpycamera=enabled,-Dpycamera=disabled,python3-pybind11" - -LIBCAMERA_PIPELINES ??= "dcmipp" -LIBCAMERA_IPAS = "dcmipp" - -EXTRA_OEMESON = " \ - -Dpipelines=${LIBCAMERA_PIPELINES} \ - -Dv4l2=true \ - -Dcam=enabled \ - -Dlc-compliance=disabled \ - -Dtest=false \ - -Ddocumentation=disabled \ -" -EXTRA_OEMESON += " \ - -Dipas=${LIBCAMERA_IPAS} \ -" - - -RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}" - -inherit meson pkgconfig python3native python3-dir - -do_configure:prepend() { - sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py -} - -do_install:append() { - chrpath -d ${D}${libdir}/libcamera.so - chrpath -d ${D}${libexecdir}/libcamera/v4l2-compat.so -} - -do_package:append() { - bb.build.exec_func("do_package_recalculate_ipa_signatures", d) -} - -do_package_recalculate_ipa_signatures() { - local modules - for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do - module="${module%.sign}" - if [ -f "${module}" ] ; then - modules="${modules} ${module}" - fi - done - - ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}" -} - -FILES:${PN} += " ${libexecdir}/libcamera/v4l2-compat.so" -FILES:${PN} += "${datadir} ${libdir} ${PYTHON_SITEPACKAGES_DIR}" -FILES:${PN}-gst = "${libdir}/gstreamer-1.0" - -# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to -# both 32 and 64 bit file APIs. -GLIBC_64BIT_TIME_FLAGS = "" +PV = "0.3.0" diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-client/tee-supplicant b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-client/tee-supplicant new file mode 100644 index 000000000..80c817279 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-client/tee-supplicant @@ -0,0 +1 @@ +OPTARGS="--fs-parent-path=/mnt/data/tee" diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-client_4.0.bb b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-client_4.0.bb index 56cd5d197..682613298 100755 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-client_4.0.bb +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-client_4.0.bb @@ -10,6 +10,7 @@ SRC_URI = "git://github.com/OP-TEE/optee_client.git;protocol=https;branch=master file://tee-supplicant.service \ file://create-tee-supplicant-env \ file://optee-udev.rules \ + ${@oe.utils.vartrue('TRUSTFENCE_FILE_BASED_ENCRYPT', 'file://tee-supplicant', '', d)} \ " SRCREV = "acb0885c117e73cb6c5c9b1dd9054cb3f93507ee" @@ -43,6 +44,10 @@ do_install:append() { install -D -p -m0644 ${WORKDIR}/tee-supplicant.service ${D}${systemd_system_unitdir}/tee-supplicant.service install -D -p -m0755 ${WORKDIR}/create-tee-supplicant-env ${D}${sbindir}/ + if ${@oe.utils.vartrue('TRUSTFENCE_FILE_BASED_ENCRYPT', 'true', 'false',d)}; then + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/tee-supplicant ${D}${sysconfdir}/default/tee-supplicant + fi fi install -d ${D}${sysconfdir}/udev/rules.d install -m 0644 ${WORKDIR}/optee-udev.rules ${D}${sysconfdir}/udev/rules.d/optee.rules diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-os-stm32mp/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-os-stm32mp/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch new file mode 100644 index 000000000..e2cd795a0 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-os-stm32mp/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch @@ -0,0 +1,27 @@ +From: Arturo Buzarra +Date: Wed, 18 Mar 2026 22:07:56 +0100 +Subject: [PATCH] ARM: dts: ccmp15: add signed firmware support for RPROC + +Enable the Cortex-M4 inter-processor communication node so remoteproc can +load and authenticate signed firmware binaries. + +https://onedigi.atlassian.net/browse/DEL-9920 + +Signed-off-by: Arturo Buzarra +--- + core/arch/arm/dts/ccmp15-dvk.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/core/arch/arm/dts/ccmp15-dvk.dtsi b/core/arch/arm/dts/ccmp15-dvk.dtsi +index ff7ee6504..ea88e3e1e 100644 +--- a/core/arch/arm/dts/ccmp15-dvk.dtsi ++++ b/core/arch/arm/dts/ccmp15-dvk.dtsi +@@ -259,7 +259,7 @@ + + &m4_rproc { + memory-region = <&retram>, <&mcusram1>, <&mcusram2>, <&mcusram3>; +- status = "disabled"; ++ status = "okay"; + }; + + &mcusram1 { diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-os-stm32mp_4.0.0.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-os-stm32mp_4.0.0.bbappend index 32e0ec3c3..d84818a0d 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-os-stm32mp_4.0.0.bbappend +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-security/optee/optee-os-stm32mp_4.0.0.bbappend @@ -20,9 +20,16 @@ SRC_URI = " \ file://fonts.tar.gz;subdir=git;name=fonts \ " +SRC_URI:append:ccmp15 = " \ + ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'file://0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch', '', d)} \ +" + SRC_URI:append:ccmp25 = " \ ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'file://0001-ARM-dts-ccmp25-add-signed-firmware-support-for-RPROC.patch', '', d)} \ " # Enable remoteproc OTP public key verification for signed firmware support EXTRA_OEMAKE:append:ccmp25 = " ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1', 'CFG_REMOTEPROC_PUB_KEY_VERIFY=y', '', d)}" +# Enable remoteproc custom public key verification for signed firmware support +EXTRA_OEMAKE:append:ccmp15 = " ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'CFG_STM32MP_REMOTEPROC=y RPROC_SIGN_KEY=%s' % (d.getVar('TRUSTFENCE_COPRO_SIGN_KEY') or ''), '', d)}" +EXTRA_OEMAKE:remove:ccmp15 = " ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'CFG_REMOTEPROC_PUB_KEY_VERIFY=y', '', d)}" diff --git a/meta-digi-arm/recipes-bsp/firmware-murata-infineon/firmware-murata-infineon.bb b/meta-digi-arm/recipes-bsp/firmware-murata-infineon/firmware-murata-infineon.bb index 39582ebc1..45341773e 100644 --- a/meta-digi-arm/recipes-bsp/firmware-murata-infineon/firmware-murata-infineon.bb +++ b/meta-digi-arm/recipes-bsp/firmware-murata-infineon/firmware-murata-infineon.bb @@ -1,4 +1,4 @@ -# Copyright (C) 2022-2025, Digi International Inc. +# Copyright (C) 2022-2026, Digi International Inc. SUMMARY = "Murata Infineon firmware binaries" SECTION = "base" @@ -6,9 +6,9 @@ LICENSE = "CYPRESS-EULA" LIC_FILES_CHKSUM = "file://${S}/cyw-bt-patch/LICENCE.cypress;md5=cbc5f665d04f741f1e006d2096236ba7" SRC_URI = " \ - https://github.com/Infineon/ifx-linux-firmware/archive/refs/tags/release-v6.1.97-2025_0219.tar.gz;destsuffix=cyw-fmac-fw-ifx;name=cyw-fmac-fw-ifx \ - git://github.com/murata-wireless/cyw-fmac-fw;protocol=http;branch=jaculus;destsuffix=cyw-fmac-fw;name=cyw-fmac-fw \ - git://github.com/murata-wireless/cyw-fmac-nvram;protocol=http;branch=jaculus;destsuffix=cyw-fmac-nvram;name=cyw-fmac-nvram \ + git://github.com/Infineon/ifx-linux-firmware;protocol=http;branch=master;destsuffix=ifx-linux-firmware-longma;name=ifx-linux-firmware-longma \ + git://github.com/murata-wireless/cyw-fmac-fw;protocol=http;branch=longma;destsuffix=cyw-fmac-fw;name=cyw-fmac-fw \ + git://github.com/murata-wireless/cyw-fmac-nvram;protocol=http;branch=longma;destsuffix=cyw-fmac-nvram;name=cyw-fmac-nvram \ git://github.com/murata-wireless/cyw-bt-patch;protocol=http;branch=master;destsuffix=cyw-bt-patch;name=cyw-bt-patch \ git://github.com/murata-wireless/cyw-fmac-utils-imx32;protocol=http;branch=master;destsuffix=cyw-fmac-utils-imx32;name=cyw-fmac-utils-imx32 \ git://github.com/murata-wireless/cyw-fmac-utils-imx64;protocol=http;branch=master;destsuffix=cyw-fmac-utils-imx64;name=cyw-fmac-utils-imx64 \ @@ -22,14 +22,13 @@ SRC_URI:append:ccmp1 = " \ " SRC_URI:append:ccmp2 = " \ - file://cyfmac55500-sdio.txt \ file://mbt \ " -SRC_URI[cyw-fmac-fw-ifx.sha256sum]="1ff021a1b3ef1608f5c0ad4b39fec8e0f5cb8c204d178f1de0f8215d06abc8d9" -SRCREV_cyw-fmac-fw="a5cb86a5d11192ba6e7738f82b4d2dc9eeeca679" -SRCREV_cyw-fmac-nvram="146d1438372b6c4857f92b8769b91c1801d3ede2" -SRCREV_cyw-bt-patch="23de75a4e5384d16e8478f668b769b0d24ede0de" +SRCREV_ifx-linux-firmware-longma="f24790e6fa2f05a0f974236bed7da7fa493b9ad2" +SRCREV_cyw-fmac-fw="8cdb1886852e0b5f9876654619a8371b952bf248" +SRCREV_cyw-fmac-nvram="411c87d4cf924a1a5415273265fd54d7d7d4044f" +SRCREV_cyw-bt-patch="64ac86708253e12d7089cf75ef8dcc9b30594958" SRCREV_cyw-fmac-utils-imx32="dad9ed86bf6691910197bc91d42a45ea8175180c" SRCREV_cyw-fmac-utils-imx64="368bd9a4163e115468d79c238192b41f6266c523" @@ -73,12 +72,15 @@ do_install:append:ccmp1 () { # Install Bluetooth patch *.HCD file # For Murata 2AE (LBEE5PK2AE-564) - install -m 444 ${S}/cyw-bt-patch/BCM4373A0_001.001.025.0103.0155.FCC.CE.2AE.hcd ${D}${base_libdir}/firmware/brcm/BCM4373A0_FCC.CE.hcd - install -m 444 ${S}/cyw-bt-patch/BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd ${D}${base_libdir}/firmware/brcm/BCM4373A0_JRL.hcd + install -m 444 ${S}/cyw-bt-patch/BCM4373A0_001.001.025.0103.0155.FCC.CE.2AE.hcd ${D}${base_libdir}/firmware/brcm/ + install -m 444 ${S}/cyw-bt-patch/BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd ${D}${base_libdir}/firmware/brcm/ + ln -sf BCM4373A0_001.001.025.0103.0155.FCC.CE.2AE.hcd ${D}${base_libdir}/firmware/brcm/BCM4373A0_FCC.hcd + ln -sf BCM4373A0_001.001.025.0103.0155.FCC.CE.2AE.hcd ${D}${base_libdir}/firmware/brcm/BCM4373A0_CE.hcd + ln -sf BCM4373A0_001.001.025.0103.0156.JRL.2AE.hcd ${D}${base_libdir}/firmware/brcm/BCM4373A0_JRL.hcd # Install WLAN firmware file (*.bin) and Regulatory binary file (*.clm_blob) # For Murata 2AE (LBEE5PK2AE-564) - install -m 444 ${S}/ifx-linux-firmware-release-v6.1.97-2025_0219/firmware/cyfmac4373-sdio.industrial.bin ${D}${base_libdir}/firmware/cypress/cyfmac4373-sdio.bin + install -m 444 ${S}/ifx-linux-firmware-longma/firmware/cyfmac4373-sdio.industrial.bin ${D}${base_libdir}/firmware/cypress/cyfmac4373-sdio.bin install -m 444 cyfmac4373-sdio_US.clm_blob ${D}${base_libdir}/firmware/cypress/cyfmac4373-sdio_US.clm_blob install -m 444 cyfmac4373-sdio_World.clm_blob ${D}${base_libdir}/firmware/cypress/cyfmac4373-sdio_World.clm_blob @@ -92,22 +94,50 @@ do_install:append:ccmp2 () { install -d ${D}${base_libdir}/firmware/brcm # Install Bluetooth patch *.HCD file - # For Murata 2GY (LBEE5HY2GY) and Murata 2FY (LBEE5HY2FY) - install -m 444 ${S}/cyw-bt-patch/CYW55500A1_001.002.032.0040.0033.2FY.hcd ${D}${base_libdir}/firmware/brcm/CYW55500A1.hcd + # For Murata 2FY (LBEE5HY2FY) + install -m 444 ${S}/cyw-bt-patch/CYW55500A1_001.002.032.0040.0033.FCC.2FY.2GY.hcd ${D}${base_libdir}/firmware/brcm/ + install -m 444 ${S}/cyw-bt-patch/CYW55500A1_001.002.032.0040.0032.CE.JP.2FY.2GY.hcd ${D}${base_libdir}/firmware/brcm/ + ln -sf CYW55500A1_001.002.032.0040.0033.FCC.2FY.2GY.hcd ${D}${base_libdir}/firmware/brcm/CYW55500A1_FCC.hcd + ln -sf CYW55500A1_001.002.032.0040.0032.CE.JP.2FY.2GY.hcd ${D}${base_libdir}/firmware/brcm/CYW55500A1_CE.hcd + ln -sf CYW55500A1_001.002.032.0040.0032.CE.JP.2FY.2GY.hcd ${D}${base_libdir}/firmware/brcm/CYW55500A1_JP.hcd # Install WLAN firmware file (*.bin) and Regulatory binary file (*.clm_blob) - # For Murata 2GY (LBEE5HY2GY) and Murata 2FY (LBEE5HY2FY) - install -m 444 ${S}/ifx-linux-firmware-release-v6.1.97-2025_0219/firmware/cyfmac55500-sdio.trxse ${D}${base_libdir}/firmware/cypress/cyfmac55500-sdio.trxse - install -m 444 ${S}/cyw-fmac-fw/cyfmac55500-sdio.2FY.clm_blob ${D}${base_libdir}/firmware/cypress/cyfmac55500-sdio_US.clm_blob + # For Murata 2FY (LBEE5HY2FY) + install -m 444 ${S}/ifx-linux-firmware-longma/firmware/cyfmac55500-sdio.trxse ${D}${base_libdir}/firmware/cypress/cyfmac55500-sdio.trxse + install -m 444 ${S}/cyw-fmac-fw/cyfmac55500-sdio.2FY.STAIndoor.clm_blob ${D}/${base_libdir}/firmware/cypress/ + ln -sf cyfmac55500-sdio.2FY.STAIndoor.clm_blob ${D}/${base_libdir}/firmware/cypress/cyfmac55500-sdio_US.clm_blob # Install NVRAM files (*.txt) - # For Murata 2GY (LBEE5HY2GY) and Murata 2FY (LBEE5HY2FY) - install -m 444 ${S}/cyfmac55500-sdio.txt ${D}${base_libdir}/firmware/cypress/cyfmac55500-sdio.txt + # For Murata 2FY (LBEE5HY2FY) + install -m 444 ${S}/cyw-fmac-nvram/cyfmac55500-sdio.2FY.txt ${D}${base_libdir}/firmware/cypress/cyfmac55500-sdio.txt # Install Manufacturing Bluetooth Test tool (MBT) install -m 755 mbt ${D}${sbindir} } +do_install:append:ccimx95 () { + install -d ${D}${base_libdir}/firmware/cypress + install -d ${D}${base_libdir}/firmware/brcm + + # Install Bluetooth patch *.HCD file + # For Murata 2EC (LBEE5XV2EC) + install -m 444 ${S}/cyw-bt-patch/CYW55560A1_001.002.087.0269.0100.FCC.2EA.sAnt.hcd ${D}${base_libdir}/firmware/brcm/ + install -m 444 ${S}/cyw-bt-patch/CYW55560A1_001.002.087.0269.0106.EU.JP.2EA.sAnt.hcd ${D}${base_libdir}/firmware/brcm/ + ln -sf CYW55560A1_001.002.087.0269.0100.FCC.2EA.sAnt.hcd ${D}${base_libdir}/firmware/brcm/CYW55560A1_FCC.hcd + ln -sf CYW55560A1_001.002.087.0269.0106.EU.JP.2EA.sAnt.hcd ${D}${base_libdir}/firmware/brcm/CYW55560A1_CE.hcd + ln -sf CYW55560A1_001.002.087.0269.0106.EU.JP.2EA.sAnt.hcd ${D}${base_libdir}/firmware/brcm/CYW55560A1_JP.hcd + + # Install WLAN firmware file (*.bin) and Regulatory binary file (*.clm_blob) + # For Murata 2EC (LBEE5XV2EC) + install -m 444 ${S}/ifx-linux-firmware-longma/firmware/cyfmac55572-sdio.trxse ${D}${base_libdir}/firmware/cypress/cyfmac55572-sdio.trxse + install -m 444 ${S}/cyw-fmac-fw/cyfmac55572-sdio.2EA.clm_blob_STAIndoor ${D}/${base_libdir}/firmware/cypress/ + ln -sf cyfmac55572-sdio.2EA.clm_blob_STAIndoor ${D}/${base_libdir}/firmware/cypress/cyfmac55572-sdio_US.clm_blob + + # Install NVRAM files (*.txt) + # For Murata 2EC (LBEE5XV2EC) + install -m 444 ${S}/cyw-fmac-nvram/cyfmac5557x-pcie_sdio.sant.2EA_2EC.txt ${D}${base_libdir}/firmware/cypress/cyfmac55572-sdio.txt +} + inherit update-rc.d systemd INITSCRIPT_PACKAGES += "${PN}-autocountry" @@ -147,4 +177,4 @@ INSANE_SKIP:${PN} += "build-deps" INSANE_SKIP:${PN} += "file-rdeps" PACKAGE_ARCH = "${MACHINE_ARCH}" -COMPATIBLE_MACHINE = "(ccmp1|ccmp2)" +COMPATIBLE_MACHINE = "(ccmp1|ccmp2|ccimx95)" diff --git a/meta-digi-arm/recipes-bsp/firmware-murata-infineon/firmware-murata-infineon/cyfmac55500-sdio.txt b/meta-digi-arm/recipes-bsp/firmware-murata-infineon/firmware-murata-infineon/cyfmac55500-sdio.txt deleted file mode 100644 index 328591405..000000000 --- a/meta-digi-arm/recipes-bsp/firmware-murata-infineon/firmware-murata-infineon/cyfmac55500-sdio.txt +++ /dev/null @@ -1,471 +0,0 @@ -#CYW955513SDM2WLIPA_TAG215 -#802.11ax 1x1 Tri-Band HE20 WiFi 6/6e + BT/BLE 5.2 Combo with SDIO/SPI interface -#Type2FY -NVRAMRev=$Rev: 5062 $ -sromrev=11 -boardrev=0x1530 -boardtype=0x0904 -boardflags=0x00400001 -boardflags2=0x00800000 -boardflags3=0x40000100 -#boardnum=57410 -macaddr=00:90:4c:2e:c3:05 - -#Regulatory specific -ccode=0 -regrev=0 - -# Board specific -vendid=0x12be -devid=0xbd3e -manfid=0x2d0 -antswitch=0 -pdgain5g=0 -pdgain2g=0 -aa2g=1 -aa5g=1 -agbg0=2 -aga0=2 -extpagain5g=2 -extpagain2g=2 -rxgains2gelnagaina0=0 -rxgains2gtrisoa0=13 -rxgains2gtrelnabypa0=0 -rxgains5gelnagaina0=0 -rxgains5gtrisoa0=7 -rxgains5gtrelnabypa0=0 -rxgains5gmelnagaina0=0 -rxgains5gmtrisoa0=7 -rxgains5gmtrelnabypa0=0 -rxgains5ghelnagaina0=0 -rxgains5ghtrisoa0=7 -rxgains5ghtrelnabypa0=0 - -# ==== RSSI related parametes start ============================================================== -# 2G-Core0 [20MHz, 40Mhz] -rssicorrnorm_c0=-5,0 -# =================================== -# 5G-Core0 [20MHz(l), 40MHz(l), 80Mhz(l), 20MHz(ml), 40MHz(ml), 80Mhz(ml), 20MHz(mu), 40MHz(mu), 80Mhz(mu), 20MHz(h), 40MHz(h), 80Mhz(h)] -# 5170 to below 5500(ch36 to ch96) - l -# 5500 to below 5620(ch100 to ch120) - ml -# 5620 to below 5745(ch124 to ch144) - mu -# 5745 to below 5835(ch149 to ch165) - h -# =================================== -rssicorrnorm5g_c0=7,0,0,6,0,0,3,0,0,4,0,0 -# 6G-Core0 [20MHz(u5), 40MHz(u5), 80Mhz(u5), 20MHz(u6), 40MHz(u6), 80Mhz(u6), 20MHz(u7), 40MHz(u7), 80Mhz(u7), 20MHz(u8), 40MHz(u8), 80Mhz(u8)] -rssicorrnorm6g_c0=1,0,0,-4,0,0,-2,0,0,0,0,0 - -# These parameter are not required (seems obsolete), valid for fast AGC -#rssi_delta_5gl=-6 4 -8 -8 -6 4 -8 -8 -6 4 -8 -8 -3 6 -3 -4 -3 6 -3 -4 -3 6 -3 -4 -#rssi_delta_5gml=-1 3 -1 -3 -1 3 -1 -3 -1 3 -1 -3 -1 2 0 -2 -1 2 0 -2 -1 2 0 -2 -#rssi_delta_5gmu=0 3 -1 -2 0 3 -1 -2 0 3 -1 -2 0 2 0 -2 0 2 0 -2 0 2 0 -2 -#rssi_delta_5gh=2 4 2 -1 2 4 2 -1 2 4 2 -1 0 0 2 -2 0 0 2 -2 0 0 2 -2 -#rssi_delta_6gunii5=-6 4 -8 -8 -6 4 -8 -8 -6 4 -8 -8 -3 6 -3 -4 -3 6 -3 -4 -3 6 -3 -4 -#rssi_delta_6gunii6=-1 3 -1 -3 -1 3 -1 -3 -1 3 -1 -3 -1 2 0 -2 -1 2 0 -2 -1 2 0 -2 -#rssi_delta_6gunii7=0 3 -1 -2 0 3 -1 -2 0 3 -1 -2 0 2 0 -2 0 2 0 -2 0 2 0 -2 -#rssi_delta_6gunii8=2 4 2 -1 2 4 2 -1 2 4 2 -1 0 0 2 -2 0 0 2 -2 0 0 2 -2 -rssi_cal_rev=1 -rxgaincal_rssical=1 - -# Correction for low rssi region -low_pwr_rssi_thresh_qdBm_5g=-334 -low_pwr_rssi_bias_5g_c0=-2,0,0,-8,0,0,-6,0,0,-8,0,0 - -# Setting this to 255 to disable temp based compensation -gain_cal_temp=25 -rxgain_tempcoeff2g_sub=32,32,32,32,32,32,32,32,32,32 -rxgain_tempcoeff5gl=28 -rxgain_tempcoeff5gml=24 -rxgain_tempcoeff5gmu=24 -rxgain_tempcoeff5gh=24 -rxgain_tempcoeff2g_sub_elnaoff=32,32,32,32,32,32,32,32,32,32 -rxgain_tempcoeff5gl_elnaoff=28 -rxgain_tempcoeff5gml_elnaoff=22 -rxgain_tempcoeff5gmu_elnaoff=22 -rxgain_tempcoeff5gh_elnaoff=22 -rxgain_tempcoeff6g_unii5=24 -rxgain_tempcoeff6g_unii6=24 -rxgain_tempcoeff6g_unii7=28 -rxgain_tempcoeff6g_unii8=34 - -# Each nibble represent 2G channel from 1 to 14. LSB 3 bits specify group number (i.e. 0 to 4), MSB specify if ch used for calibration -rssi_cal_freq_grp_2g= 0x08,0x01,0x91,0x2a,0x23,0xb3,0xc4 -rssi_delta_2gb0=0,0,0,0 -rssi_delta_2gb1=0,0,0,0 -rssi_delta_2gb2=0,0,0,0 -rssi_delta_2gb3=0,0,0,0 -rssi_delta_2gb4=0,0,0,0 -# ==== RSSI related parametes end ============================================================== - -#Two range TSSI -tworangetssi2g=0 -tworangetssi5g=0 -# NOTE :================================================================================ -# To run TPC with Two Range TSSI ,set tworangetssi2g = 1 and lowpowerrange2g = 0 -# To run TPC with Single Range TSSI, set tworangetssi2g = 0 -# To run TPC please READ instructions near pa2ga0 and pa2ga1 as well -# To generate PA params for Low Range set tworangetssi2g = 0 and lowpowerrange2g to 1 -# To generate PA params for High Range set tworangetssi2g = 1 and lowpowerrange2g to 1 -# ====================================================================================== -#lowpowerrange2g=0 -#lowpowerrange5g=0 - -#Related to FW Download. Host may use this -nocrc=1 -#FIXME:4369 otpimagesize? Check with Rama -otpimagesize=502 - -xtalfreq=37400 - -txchain=1 -rxchain=1 - -cckdigfilttype=3 -cck_txgain_offsetval=0x18 - -#bit mask for slice capability bit 0:2G bit 1:5G -bandcap=2 - - -#FDSS Related -fdss_level_5g=9 -fdss_interp_en=0 -fdss_level_2g=4 - -#FIXME: fdss level for 6G made same as 5G for now -fdss_level_6g=9 - -#LPB related : FIXME Enable later -leg_preamble_boost=12,12,0 -lpb_comp=10 - -#PAPRR Related -paprdis=0 -paprrmcsgain2g=130,130,130,129,128,0,0,0,0,0,0,0 -paprrmcsgamma2g=550,550,550,650,700,-1,-1,-1,-1,-1,-1,-1 -paprrmcsgain5g20=130,130,130,129,128,0,0,0,0,0,0,0 -paprrmcsgamma5g20=500,500,550,650,700,-1,-1,-1,-1,-1,-1,-1 - -#PAPR params for 6G -#FIXME: papr params 6G made same as 5G for now -paprrmcsgain6g20=130,130,130,129,128,0,0,0,0,0,0,0 -paprrmcsgamma6g20=500,500,550,650,700,-1,-1,-1,-1,-1,-1,-1 - -#Tempsense Related -tempthresh=255 -tempoffset=255 -rawtempsense=0x1ff -phycal_tempdelta=15 -temps_period=15 -temps_hysteresis=15 - -#------------- TSSI Related ------------- -tssipos2g=1 -tssipos5g=1 - -AvVmid_c0=6,75,5,93,5,93,5,93,5,93,5,90,5,90,5,90,5,90 - -low_adc_rate_en=1 -#limit Tx gain index -txidxcap2g=10 -txidxcap5g=10 -txidxcap6g=10 - -# Single RANGE TPC/TSSI -#2G OFDM -#pa2ga0=0,8015,-676 -pa2ga0=-156,6167,-696 -#2G CCK -#pa2gccka0=0,8015,-676 -pa2gccka0=-110,7093,-749 -#5G channels:36 to 48,52 to 64,100 to 144,149 to 165 -#pa5ga0=-94,7015,-664,-88,7081,-659,-135,6774,-703,-110,7005,-685 -pa5ga0=-198,5370,-617,-211,5672,-695,-191,6112,-720,-170,5778,-646 -#PA Params 6G UNII-5,6,7,8 -#pa6ga0=-157,6659,-714,-156,6675,-721,-145,6830,-731,-162,6499,-716 -pa6ga0=-137,6057,-650,-147,6141,-680,-119,6556,-698,-136,6816,-749 - - -# Max power and offsets -maxp2ga0=86 -maxp5ga0=70,70,70,70 -#Max Power on 6G UNII-5/6 and UNII-7/8 -maxp6ga0=70,70 - -subband5gver=0x4 -paparambwver=3 -cckpwroffset0=0 - -# PD offsets for 2G,5G,6G -# 2G power offset per channel -powoffs2gtna0=0,0,0,0,0,0,0,0,0,0,0,0,0,0 -# 5G power offset per channel for band edge channel -powoffs5g20mtna0=0,0,0,0,0,0,0 -pdoffset20ma0=0x0000 -pdoffset6g20ma0=0x0000 -pdoffset6g20ma0_group1=0x0000 - -cckbw202gpo=0x2220 -cckbw20ul2gpo=0x2220 -mcsbw202gpo=0xaa886666 - -dot11agofdmhrbw202gpo=0x6666 -ofdmlrbw202gpo=0x0066 -mcsbw205glpo=0x66400000 -mcsbw205gmpo=0x66400000 -mcsbw205ghpo=0x66400000 - -# ppr offsets for UNII-5/6 of 6GHz band -mcsbw206glpo=0x66400000 - -# ppr offsets for UNII-7/8 of 6GHz band -mcsbw206gmpo=0x66400000 - -mcs1024qam2gpo=0xffcc -mcs1024qam5glpo=0xffffcc -mcs1024qam5gmpo=0xffffcc -mcs1024qam5ghpo=0xffffcc -mcs1024qam5gx1po=0xffffcc -mcs1024qam5gx2po=0xffffcc -mcs8poexp=0 -mcs9poexp=0 -mcs10poexp=0 -mcs11poexp=0 -# 1024QAM rates' offset for 6GHz UNII-5/6 -mcs1024qam6glpo=0xffffcc -# 1024QAM rates' offset for 6GHz UNII-7/8 -mcs1024qam6gmpo=0xffffcc - -#UL-OFDMA PPR's accros RU's -#currently programmed same PPR accross RU's -#across QAM's the PPR are same b/w SU and RU -#each RU PPR is grouped with 5 bits -ruppr2g20bpska0=0x10842 -ruppr2g20qpska0=0x10842 -ruppr2g20qam16a0=0x10842 -ruppr2g20qam64a0=0x294A5 -ruppr2g20qam256a0=0x42108 -ruppr2g20qam1024a0=0x5294A -ruppr5g20bpska0=0x0 -ruppr5g20qpska0=0x0 -ruppr5g20qam16a0=0x10842 -ruppr5g20qam64a0=0x10842 -ruppr5g20qam256a0=0x18c63 -ruppr5g20qam1024a0=0x294A5 - -# OLPC Related -disable_olpc=0 -olpc_thresh5g=60 -olpc_anchor5g=64 -disable_olpc_2g=0 -olpc_thresh2g=56 -olpc_anchor2g=60 -#FIXME: olpc params 6G made same as 5G for now -olpc_thresh6g=60 -olpc_anchor6g=64 - -#LTE Coex Related -ltecxmux=0 -ltecxpadnum=0x0504 -ltecxfnsel=0x44 -ltecxgcigpio=0x04 -#OOB params -#device_wake_opt=1 -#host_wake_opt=0 - -# SWCTRL Related -swctrlmap_5g=0x08080808,0x02020202,0x08080808,0x010008,0x00f -swctrlmapext_5g=0x00000000,0x00000000,0x00000000,0x000000,0x000 -fem_table_init_val=0x06060606,0x08080808 -fem_table_init_val_ext=0x00000000,0x00000000 - -swctrlmap_2g=0x06060606,0x08080808,0x06060606,0x010008,0x10f -swctrlmapext_2g=0x00000000,0x00000000,0x00000000,0x000000,0x000 - -clb2gslice0core0=0xd -clb5gslice0core0=0x2 -#For TDM coex use the following -btc_prisel_ant_mask=0x0 -clb_swctrl_smask_ant0=0x3ff -# 2 Ant hyb/par following comment above -#btc_prisel_ant_mask=0x3 -#clb_swctrl_smask_ant0=0x34f -muxenab=0x10 - -#BT Coex 1:TDM -btc_mode=1 - -# --- PAPD Cal related params ---- -# 0:NBPAPD 1:WBPAPD -txwbpapden=1 -# NB PAPD Cal params -# 0x5Gc02Gc0 -nb_eps_offset=0x01dd01e3 -nb_bbmult=0x5550 -nb_papdcalidx=0x050a -nb_txattn=0x0000 -nb_rxattn=0x0000 -papdgainctrl2g=0 -papdgainctrl5g=0 -pacalshift2g=5 -pacalshift5g=4 -eps_stopidx=63 -# two-core specific variables for each of UNII-5/6/7/8 bands -# u5c0,u6c0,u7c0,u8c0 -nb_txattn_6g=0,0,0,0 -nb_rxattn_6g=0,0,0,0 -nb_papdcalidx_6g=10,10,10,10 -nb_bbmult_6g=80,80,80,80 -nb_eps_offset_6g=475,475,475,475 -papdgainctrl6g=0 -pacalshift6g20=3,4,4,4 - -# WB papd cal params -# c02g,c05g20 -wb_txattn=0,1 -wb_rxattn=0,0 -wb_tia_gain_mode=2,2 -wb_eps_offset=474,462 -wb_papdcalidx=10,5 -wb_bbmult=64,90 -wb_calref_db=23,24 -wb_txbuf_offset=33,32 -wb_frac_del=255,255 -wb_g_frac_bits=10,10 - -# WB 6G cal params -# u5c0,u6c0,u7c0,u8c0 -wb_txattn_6g20=1,1,1,1 -wb_rxattn_6g20=0,0,0,0 -wb_tia_gain_mode_6g20=4,4,2,5 -wb_papdcalidx_6g20=10,10,5,30 -wb_bbmult_6g20=70,80,80,86 -wb_eps_offset_6g20=470,468,463,471 -wb_calref_db_6g20=24,24,24,28 - - -#2nd LUT parameters -wb_multipapd_en=0 -wb_PapdLutSel_idx_6g20=42,42,42,42 -wb_eps_index_offset_6g20=5,5,5,5 -wb_papdcalidx_6g20_lut1=10,10,10,10 -wb_bbmult_6g20_lut1=66,70,74,74 -wb_calref_db_6g20_lut1=26,26,26,26 - -# WBPAPD gain control params -wb_gainctrl_nvram_en=1 -wb_target_tssi_2g20=200 -wb_target_tssi_5g20=210,210,210,150 -wb_target_tssi_6g20=75,71,100,-45 -wb_fudge_factor_2g5g=1,0,-1,-1,-1 - -# 2g/5G 2nd PAPD LUT parameters applicable for -40degc -wb_eps_offset_lut1=22,10 -wb_calref_db_lut1=23,19 -wb_papdcalidx_lut1=10,10 -wb_bbmult_lut1=25,40 -wb_PapdLutSel_idx_2g5g=53,52 - -# energy detect threshold -ed_thresh2g=-65 -ed_thresh5g=-68 -ed_thresh6g=-78 -# energy detect threshold for EU -eu_edthresh2g=-65 -eu_edthresh5g=-68 -eu_edthresh6g=-78 - -btldopu=0 - -#rpcal coef for imptxbf -rpcal2g=0 -rpcal5gb0=238 -rpcal5gb1=228 -rpcal5gb2=222 -rpcal5gb3=229 - -#Enable LHL PS mode -lhl_ps_mode=3 - -#SR related params -#The min resource state during sleep -rmin=0x1 -#disable sr topoff -lpflags=0 -#disable fastlpo setting -fastlpo_pcie_dis=0 -fastlpo_dis=0 - -#PALDO settings 0=3.3 1=3.35 2=3.41 3=3.46 4=2.86, 5=2.97 6=3.08, 7=3.19 -#paldo3p3_voltage=0 - -#2G lowpwr settings 0=TOT 1=setting1 2=setting2 3=settingHE(lowpwr) -#ipa2glowpwr=3 - -#temperature throttling -# Currently tvpm is not part of H1 build, disable for initial BU -tvpm=1 -tvpm_txc_txdc=105,15 -tvpm_txc_txdc_lowlimit=1 -tvpm_txc_txdc_insert=0,0 -tvpm_monitor_period=3 -#temperature throttling, aggressive setting -tvpm_txc_txdc_burst=110,20,5 - -##Dynamic Desense Params for 2 ant hybrid coex -#btcdyn_flags=3 -#btcdyn_dflt_dsns_level=0 -#btcdyn_low_dsns_level=1 -#btcdyn_mid_dsns_level=2 -#btcdyn_high_dsns_level=4 -#btcdyn_default_btc_mode=5 -#btcdyn_dsns_rows=2 -#btcdyn_dsns_row1=5,-4,0,-50,-70 -#btcdyn_dsns_row0=5,12,0,-50,-65 - -ppr_hitemp_offset=70,10 -# idx 0: PPR temp thresh, default 150 -# idx 1: PPR temp thresh hysteresis, default 15 -cckbw202gpo_ht=0x6666 -# CCK high temp offset, 0.5dBm/step, rate(11,5.5,2,1Mbps) -ofdmbw202gpo_ht=0x66666666 -# 2G OFDM temp offset, 0.5dBm/step, rate(54,48,36,24,18,12,9,6Mbps) -mcsbw202gpo_ht=0x66666666 -# 2G BW20 VHT/HT temp offset, 0.5dBm/step, rate(C9,C8,M7,M6,M5,M4,M3,M2-0) -mcsbw202gpo_1024qam_ht=0x66 -# 2G BW20 HE/VHT temp offset, 0.5dBm/step, rate(C11,C10) -ofdmbw205gpo_ht=0x66666666 -# 5G OFDM temp offset, 0.5dBm/step, rate(54,48,36,24,18,12,9,6Mbps) -mcsbw205gpo_ht=0x66666666 -# 5G BW20 HE/VHT/HT temp offset, 0.5dBm/step, rate(C9,C8,M7,M6,M5,M4,M3,M2-0) -mcsbw205gpo_1024qam_ht=0x66 -# 5G BW20 HE/VHT temp offset, 0.5dBm/step, rate(C11,C10) -ofdmbw206gpo_ht=0x66666666 -# 6G OFDM temp offset, 0.5dBm/step, rate(54,48,36,24,18,12,9,6Mbps) -mcsbw206gpo_ht=0x66666666 -# 6G BW20 HE/VHT/HT temp offset, 0.5dBm/step, rate(C9,C8,M7,M6,M5,M4,M3,M2-0) -mcsbw206gpo_1024qam_ht=0x66 -# 6G BW20 HE/VHT temp offset, 0.5dBm/step, rate(C11,C10) - -# SWDIV related -swdiv_en=0 #To enable SW-DIV feature -swdiv_gpio=0 -swdiv_swctrl_en=2 -swdiv_swctrl_ant0=0 -swdiv_swctrl_ant1=1 -swdiv_antmap2g_main=1 -swdiv_antmap5g_main=1 - -swdiv_snrlim=290 #Only enable sw_div if the snr on present antenna is less than 290/8=36.25 -swdiv_thresh=2000 #No.of rxpkts threshold -swdiv_snrthresh=24 #Difference between antenna's snr is greater than 24/8=3dB, then shift the antennas -swdiv_timeon=10 -swdiv_timeoff=1 -swdiv_snr2g20=232 -swdiv_snr2g40=257 -swdiv_snr5g20=232 -swdiv_snr5g40=312 -swdiv_snr5g80=296 - -swdiv_ap_dead_check=0 #Enable sending of null frames at a periodicity of 1 sec to check whether the present antenna is dead -swdiv_ap_div=0 #Enabling ap_diversity diff --git a/meta-digi-arm/recipes-bsp/libubootenv/libubootenv/0003-Implement-support-for-environment-encryption-by-CAAM.patch b/meta-digi-arm/recipes-bsp/libubootenv/libubootenv/0003-Implement-support-for-environment-encryption-by-CAAM.patch index 28969db1a..f2d2d415a 100644 --- a/meta-digi-arm/recipes-bsp/libubootenv/libubootenv/0003-Implement-support-for-environment-encryption-by-CAAM.patch +++ b/meta-digi-arm/recipes-bsp/libubootenv/libubootenv/0003-Implement-support-for-environment-encryption-by-CAAM.patch @@ -49,15 +49,35 @@ Generalize the code to make room for Optee-based encryption. Optee) implementation. Signed-off-by: Javier Viguera + + # This is the commit message #4: + +crypt: read HWID from 'digi,hwid_fuse_n' dt properties + +Now that U-Boot supports overriding the HWID, it inserts the local, +variable HWID into the 'digi,hwid_n' properties and the fused, +stable HWID into the 'digi,hwid_fuse_n' properties. + +Read the HWID to compute the key modifier from 'digi,hwid_fuse_n' +as a preferred method. If those properties do not exist, fall back +to the previous method, 'digi,hwid_n'. + +An outdated U-Boot that does not create the 'digi,hwid_fuse_n' +properties does not support HWID overriding either, so we can trust +'digi,hwid_n' to have the contents from the fuses. + +https://onedigi.atlassian.net/browse/DEL-9123 + +Signed-off-by: Gonzalo Ruiz --- src/CMakeLists.txt | 4 + src/caam_keyblob.h | 42 +++++++ - src/crypt.c | 179 +++++++++++++++++++++++++++++ + src/crypt.c | 194 ++++++++++++++++++++++++++++++++ src/crypt.h | 10 ++ src/md5.c | 275 +++++++++++++++++++++++++++++++++++++++++++++ src/md5.h | 24 ++++ src/uboot_env.c | 18 +++ - 7 files changed, 552 insertions(+) + 7 files changed, 567 insertions(+) create mode 100644 src/caam_keyblob.h create mode 100644 src/crypt.c create mode 100644 src/crypt.h @@ -129,10 +149,10 @@ index 0000000..e313e87 +#endif /* CAAM_KEYBLOB_H */ diff --git a/src/crypt.c b/src/crypt.c new file mode 100644 -index 0000000..213cffd +index 0000000..565d13d --- /dev/null +++ b/src/crypt.c -@@ -0,0 +1,179 @@ +@@ -0,0 +1,194 @@ +/* + * Copyright 2024 Digi International Inc + * @@ -192,10 +212,25 @@ index 0000000..213cffd + int len; + int fd; + uint32_t ocotp_hwid[MAX_HWID_WORDS]; -+ char dt_prop[32]; ++ char dt_prop[40]; + char buf[sizeof(uint32_t)]; + + for (i = 0; i < MAX_HWID_WORDS; i++) { ++ sprintf(dt_prop, "/proc/device-tree/digi,hwid_fuse_%d", i); ++ if (access(dt_prop, F_OK) != -1) { ++ fd = open(dt_prop, O_RDONLY); ++ if (fd < 0) ++ return fd; ++ len = read(fd, buf, sizeof(uint32_t)); ++ if (len < 0) { ++ close(fd); ++ return -1; ++ } ++ ocotp_hwid[i] = ntohl(*(uint32_t *) buf); ++ close(fd); ++ continue; ++ } ++ + sprintf(dt_prop, "/proc/device-tree/digi,hwid_%d", i); + if (access(dt_prop, F_OK) != -1) { + fd = open(dt_prop, O_RDONLY); diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey.inc b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey.inc index c325cceb8..d32fba4d5 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey.inc +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey.inc @@ -1,4 +1,4 @@ -# Copyright (C) 2018-2025, Digi International Inc. +# Copyright (C) 2018-2026, Digi International Inc. require recipes-bsp/u-boot/u-boot.inc @@ -31,13 +31,17 @@ SRC_URI = " \ file://boot.txt \ file://install_linux_fw_media.txt \ file://install_linux_fw_uuu.sh \ + file://fit-install-template.its \ " BUILD_UBOOT_SCRIPTS ?= "true" +UBOOT_LOGO_BMP ?= "" LOCALVERSION ?= "" inherit ${@oe.utils.conditional('DEY_SOC_VENDOR', 'NXP', 'fsl-u-boot-localversion uuu_bootloader_tag', '', d)} +EXTRA_OEMAKE:append = "${@' LOGO_BMP=%s' % d.getVar('UBOOT_LOGO_BMP') if d.getVar('UBOOT_LOGO_BMP') else ''}" + # Disable u-boot tagging for imx8/9, as the boot image is imx-boot UUU_BOOTLOADER:mx8-generic-bsp = "" UUU_BOOTLOADER:mx9-generic-bsp = "" @@ -117,11 +121,34 @@ build_uboot_scripts() { else sed -i -e 's,-##SIGNED##,,g' -e 's,##SIGNED##,,g' ${TMP_INSTALL_SCR} fi + if [ "${f_ext}" = "txt" ]; then mkimage -T script -n "DEY firmware install script" -C none -d ${TMP_INSTALL_SCR} ${DEPLOYDIR}/${f%.*}.scr else install -m 775 ${TMP_INSTALL_SCR} ${DEPLOYDIR}/${f} fi + + # Create FIT image installer when Trustfence is enabled + if [ "${TRUSTFENCE_SIGN_FIT_STM}" = "1" ] || [ "${TRUSTFENCE_SIGN_FIT_NXP}" = "1" ]; then + # We only need the txt scripts + if [ "${f_ext}" = "txt" ]; then + cp ${TMP_INSTALL_SCR} ${WORKDIR}/${f%.*}.fit + INSTALL_LINUX_FW="${f%.*}" + INSTALL_LINUX_FW_DEV="${INSTALL_LINUX_FW##*_}" + TMP_FIT_ITS="$(mktemp ${WORKDIR}/fit-install-template.its.XXXXXX)" + sed -e 's,##INSTALL_LINUX_FW##,'${INSTALL_LINUX_FW}',g' \ + -e 's,##INSTALL_LINUX_FW_DEV##,'${INSTALL_LINUX_FW_DEV}',g' \ + -e 's,##INSTALL_LINUX_FW_FILE##,'${f%.*}',g' \ + ${WORKDIR}/fit-install-template.its > ${TMP_FIT_ITS} + + # Generate the signed FIT image + mkimage -f ${TMP_FIT_ITS} ${DEPLOYDIR}/install_linux_fw.scr + mkimage -F -k ${TRUSTFENCE_SIGN_KEYS_PATH}/fit -r ${DEPLOYDIR}/install_linux_fw.scr + # copy FIT image installer using the same names we use for the normal script + cp ${DEPLOYDIR}/install_linux_fw.scr ${DEPLOYDIR}/${f%.*}.scr + rm -f ${TMP_FIT_ITS} + fi + fi rm -f ${TMP_INSTALL_SCR} done @@ -142,6 +169,16 @@ build_uboot_scripts() { TMP_SIGNED_BOOTSCR="$(mktemp ${WORKDIR}/bootscr-signed.XXXXXX)" trustfence-sign-artifact.sh -p "${DIGI_SOM}" -b "${DEPLOYDIR}/boot.scr" "${TMP_SIGNED_BOOTSCR}" mv "${TMP_SIGNED_BOOTSCR}" "${DEPLOYDIR}/boot.scr" + + # Sign USB installer script + TMP_SIGN_INSTALLSCR="$(mktemp ${WORKDIR}/install_linux_fw_usb-signed.XXXXXX)" + trustfence-sign-artifact.sh -p "${DIGI_SOM}" -b "${DEPLOYDIR}/install_linux_fw_usb.scr" "${TMP_SIGN_INSTALLSCR}" + mv "${TMP_SIGN_INSTALLSCR}" "${DEPLOYDIR}/install_linux_fw_usb.scr" + + # Sign uSD installer script + TMP_SIGN_INSTALLSCR="$(mktemp ${WORKDIR}/install_linux_fw_sd-signed.XXXXXX)" + trustfence-sign-artifact.sh -p "${DIGI_SOM}" -b "${DEPLOYDIR}/install_linux_fw_sd.scr" "${TMP_SIGN_INSTALLSCR}" + mv "${TMP_SIGN_INSTALLSCR}" "${DEPLOYDIR}/install_linux_fw_sd.scr" fi } diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/boot.txt index cef688b71..692f34a39 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6qpsbc/boot.txt @@ -12,8 +12,8 @@ if test "${bootlimit}" -gt 0 && test "${bootcount}" -gt 0; then bootattempt="(boot attempt ${bootcount}/${bootlimit})" fi -# Dual boot update verification -if test "${dualboot}" = "yes"; then +# Dual boot update verification (only on EMMC) +if test "${mmcbootdev}" = "${emmc_dev}" && test "${dualboot}" = "yes"; then if test "${upgrade_available}" = "1"; then echo "Update detected; Booting new system in ${active_system} ${bootattempt}" else @@ -52,7 +52,7 @@ else setenv boot_initrd true setenv initrd_file uramdisk-recovery.img else - # We are booting from the SD card. + # SD boot (MBR partition table) setenv mmcroot /dev/mmcblk${mmcbootdev}p2 fi if test "${upgrade_available}" = "1"; then diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/boot.txt index 4248d9327..bf7bb57f6 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx6sbc/boot.txt @@ -12,8 +12,8 @@ if test "${bootlimit}" -gt 0 && test "${bootcount}" -gt 0; then bootattempt="(boot attempt ${bootcount}/${bootlimit})" fi -# Dual boot update verification -if test "${dualboot}" = "yes"; then +# Dual boot update verification (only on EMMC) +if test "${mmcbootdev}" = "${emmc_dev}" && test "${dualboot}" = "yes"; then if test "${upgrade_available}" = "1"; then echo "Update detected; Booting new system in ${active_system} ${bootattempt}" else @@ -52,7 +52,7 @@ else setenv boot_initrd true setenv initrd_file uramdisk-recovery.img else - # We are booting from the SD card. + # SD boot (MBR partition table) setenv mmcroot /dev/mmcblk${mmcbootdev}p2 fi if test "${upgrade_available}" = "1"; then diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mm-dvk/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mm-dvk/boot.txt index 06bcbf94e..6f3869eb3 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mm-dvk/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mm-dvk/boot.txt @@ -11,8 +11,8 @@ if test "${bootlimit}" -gt 0 && test "${bootcount}" -gt 0; then bootattempt="(boot attempt ${bootcount}/${bootlimit})" fi -# Dual boot verification -if test "${dualboot}" = "yes"; then +# Dual boot (only on EMMC) +if test "${mmcbootdev}" = "${emmc_dev}" && test "${dualboot}" = "yes"; then if test "${active_system}" = "linux_a"; then echo "Booting from system A ${bootattempt}" part number mmc ${mmcbootdev} linux_a tmp_mmcpart @@ -48,12 +48,11 @@ else setenv boot_initrd true setenv initrd_file uramdisk-recovery.img else - # We are booting from the SD card. - setenv mmcroot /dev/mmcblk${mmcbootdev}p2 + # SD boot (use SD specific rootfs partition uuid) + setenv mmcroot PARTUUID=b74d3700-a3c2-4806-8cb6-4e0fed784c7f fi fi - # Back up environment variables setenv ORIG_overlays ${overlays} setenv ORIG_extra_bootargs ${extra_bootargs} diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mn-dvk/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mn-dvk/boot.txt index a4ec3f14f..dc0d7b966 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mn-dvk/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8mn-dvk/boot.txt @@ -11,8 +11,8 @@ if test "${bootlimit}" -gt 0 && test "${bootcount}" -gt 0; then bootattempt="(boot attempt ${bootcount}/${bootlimit})" fi -# Dual boot verification -if test "${dualboot}" = "yes"; then +# Dual boot (only on EMMC) +if test "${mmcbootdev}" = "${emmc_dev}" && test "${dualboot}" = "yes"; then if test "${active_system}" = "linux_a"; then echo "Booting from system A ${bootattempt}" part number mmc ${mmcbootdev} linux_a tmp_mmcpart @@ -48,8 +48,8 @@ else setenv boot_initrd true setenv initrd_file uramdisk-recovery.img else - # We are booting from the SD card. - setenv mmcroot /dev/mmcblk${mmcbootdev}p2 + # SD boot (use SD specific rootfs partition uuid) + setenv mmcroot PARTUUID=b74d3700-a3c2-4806-8cb6-4e0fed784c7f fi fi diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/boot.txt index 6ee083228..fa1720903 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-express/boot.txt @@ -11,8 +11,8 @@ if test "${bootlimit}" -gt 0 && test "${bootcount}" -gt 0; then bootattempt="(boot attempt ${bootcount}/${bootlimit})" fi -# Dual boot verification -if test "${dualboot}" = "yes"; then +# Dual boot (only on EMMC) +if test "${mmcbootdev}" = "${emmc_dev}" && test "${dualboot}" = "yes"; then if test "${active_system}" = "linux_a"; then echo "Booting from system A ${bootattempt}" part number mmc ${mmcbootdev} linux_a tmp_mmcpart @@ -48,8 +48,8 @@ else setenv boot_initrd true setenv initrd_file uramdisk-recovery.img else - # We are booting from the SD card. - setenv mmcroot /dev/mmcblk${mmcbootdev}p2 + # SD boot (use SD specific rootfs partition uuid) + setenv mmcroot PARTUUID=b74d3700-a3c2-4806-8cb6-4e0fed784c7f fi fi diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/boot.txt index fcfd3c7eb..ce3e2553f 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx8x-sbc-pro/boot.txt @@ -11,8 +11,8 @@ if test "${bootlimit}" -gt 0 && test "${bootcount}" -gt 0; then bootattempt="(boot attempt ${bootcount}/${bootlimit})" fi -# Dual boot verification -if test "${dualboot}" = "yes"; then +# Dual boot (only on EMMC) +if test "${mmcbootdev}" = "${emmc_dev}" && test "${dualboot}" = "yes"; then if test "${active_system}" = "linux_a"; then echo "Booting from system A ${bootattempt}" part number mmc ${mmcbootdev} linux_a tmp_mmcpart @@ -48,8 +48,8 @@ else setenv boot_initrd true setenv initrd_file uramdisk-recovery.img else - # We are booting from the SD card. - setenv mmcroot /dev/mmcblk${mmcbootdev}p2 + # SD boot (use SD specific rootfs partition uuid) + setenv mmcroot PARTUUID=b74d3700-a3c2-4806-8cb6-4e0fed784c7f fi fi diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx9/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx9/boot.txt index 8040238d9..b15cbe7f4 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx9/boot.txt +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx9/boot.txt @@ -11,11 +11,8 @@ if test "${bootlimit}" -gt 0 && test "${bootcount}" -gt 0; then bootattempt="(boot attempt ${bootcount}/${bootlimit})" fi -# Pre step: check if we boot from uSD. -if test "${mmcbootdev}" = "1"; then - # We are booting from the SD card. - setenv mmcroot /dev/mmcblk${mmcbootdev}p2 -elif test "${dualboot}" = "yes"; then +# Dual boot (only on EMMC) +if test "${mmcbootdev}" = "${emmc_dev}" && test "${dualboot}" = "yes"; then if test "${active_system}" = "linux_a"; then echo "Booting from system A ${bootattempt}" part number mmc ${mmcbootdev} linux_a tmp_mmcpart @@ -50,6 +47,9 @@ else # We are booting from the eMMC using 'recovery'. setenv boot_initrd true setenv initrd_file uramdisk-recovery.img + else + # SD boot (use SD specific rootfs partition uuid) + setenv mmcroot PARTUUID=b74d3700-a3c2-4806-8cb6-4e0fed784c7f fi fi diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx95/boot.txt b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx95/boot.txt new file mode 100644 index 000000000..500a7849a --- /dev/null +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccimx95/boot.txt @@ -0,0 +1,92 @@ +# +# U-Boot bootscript for EMMC/SD images created by Yocto. +# + +# As the first step in the boot script, check if we are using DualBoot. This +# requires the script to change some variables and save them, while the rest +# of the script changes variables only temporarily without saving them. + +# Build boot attempt message string +if test "${bootlimit}" -gt 0 && test "${bootcount}" -gt 0; then + bootattempt="(boot attempt ${bootcount}/${bootlimit})" +fi + +# Dual boot (only on EMMC) +if test "${mmcbootdev}" = "${emmc_dev}" && test "${dualboot}" = "yes"; then + if test "${active_system}" = "linux_a"; then + echo "Booting from system A ${bootattempt}" + part number mmc ${mmcbootdev} linux_a tmp_mmcpart + part number mmc ${mmcbootdev} rootfs_a tmp_rootfs_index + else + echo "Booting from system B ${bootattempt}" + part number mmc ${mmcbootdev} linux_b tmp_mmcpart + part number mmc ${mmcbootdev} rootfs_b tmp_rootfs_index + fi + part uuid mmc ${mmcbootdev}:${tmp_rootfs_index} tmp_mmcroot + if test "${mmcpart}" -ne "${tmp_mmcpart}"; then + setexpr mmcpart ${tmp_mmcpart} + env_save_needed="1" + fi + if test "${mmcroot}" != "PARTUUID=${tmp_mmcroot}"; then + setenv mmcroot PARTUUID=${tmp_mmcroot} + env_save_needed="1" + fi + if test "${env_save_needed}" = "1"; then + env delete tmp_mmcpart tmp_rootfs_index tmp_mmcroot + env save + fi +else + echo "Booting system ${bootattempt}" + # Get the UUID of the configured boot partition. + part uuid mmc ${mmcbootdev}:${mmcpart} bootpart + # Check the boot source. + if test "${bootpart}" = "${part1_uuid}"; then + # We are booting from the eMMC using 'linux'. + true + elif test "${bootpart}" = "${part2_uuid}"; then + # We are booting from the eMMC using 'recovery'. + setenv boot_initrd true + setenv initrd_file uramdisk-recovery.img + else + # SD boot (use SD specific rootfs partition uuid) + setenv mmcroot PARTUUID=b74d3700-a3c2-4806-8cb6-4e0fed784c7f + fi +fi + +# Back up environment variables +setenv ORIG_overlays ${overlays} + +# +# Determine overlays to apply depending on the hardware capabilities +# described by the HWID, SOM version, and carrier board version. +# +setexpr module_has_wifi ${hwid_2} \& 20000 +setexpr module_has_wifi ${module_has_wifi} / 20000 +setexpr module_has_bt ${hwid_2} \& 40000 +setexpr module_has_bt ${module_has_bt} / 40000 + +if test "${module_has_bt}" = "1" && test -z "${disable_bt}"; then + setenv overlays ccimx95_bt.dtbo,${overlays} +fi + +if test "${module_has_wifi}" = "1" && test -z "${disable_wifi}"; then + setenv overlays ccimx95_wifi.dtbo,${overlays} +fi + +if test -z "${disable_npu}"; then + setenv overlays ccimx95_npu.dtbo,${overlays} +fi + +if test "${dboot_kernel_var}" = "fitimage" && test -z "${temp-fitimg-loaded}"; then + # Set temp var to avoid re-loading fitimage + setenv temp-fitimg-loaded yes +fi +dboot linux mmc ${mmcbootdev}:${mmcpart} + +# +# Undo changes to environment variables +# +# (we only get here in case of an error on the dboot command) +# +setenv overlays ${ORIG_overlays} +setenv ORIG_overlays diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp15-dvk/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp15-dvk/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch new file mode 100644 index 000000000..11fbc359d --- /dev/null +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp15-dvk/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch @@ -0,0 +1,30 @@ +From: Arturo Buzarra +Date: Tue, 4 Nov 2025 11:10:24 +0100 +Subject: [PATCH] ARM: dts: ccmp15: add signed firmware support for RPROC + +Declare only the shared memory used for inter-processor communication +(including the resource table) to allow remoteproc to load/authenticate signed +Cortex-M4 firmware. + +https://onedigi.atlassian.net/browse/DEL-9920 + +Signed-off-by: Arturo Buzarra +--- + arch/arm/dts/ccmp15.dtsi | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/arm/dts/ccmp15.dtsi b/arch/arm/dts/ccmp15.dtsi +index 2e2e7788933..f0bdf3d6ed8 100644 +--- a/arch/arm/dts/ccmp15.dtsi ++++ b/arch/arm/dts/ccmp15.dtsi +@@ -373,8 +373,8 @@ + }; + + &m4_rproc { +- memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, +- <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; ++ compatible = "st,stm32mp1-m4-tee"; ++ memory-region = <&vdev0vring0>, <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; + mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>; + mbox-names = "vq0", "vq1", "shutdown"; + interrupt-parent = <&exti>; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp25-dvk/0001-ARM-dts-ccmp25-add-signed-firmware-support-for-RPROC.patch b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp25-dvk/0001-ARM-dts-ccmp25-add-signed-firmware-support-for-RPROC.patch index d910e2096..4c16813a5 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp25-dvk/0001-ARM-dts-ccmp25-add-signed-firmware-support-for-RPROC.patch +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/ccmp25-dvk/0001-ARM-dts-ccmp25-add-signed-firmware-support-for-RPROC.patch @@ -1,5 +1,5 @@ From: Arturo Buzarra -Date: Thu, 30 Oct 2025 14:35:29 +0100 +Date: Wed, 18 Mar 2026 15:26:07 +0100 Subject: [PATCH] ARM: dts: ccmp25: add signed firmware support for RPROC Declare only the shared memory used for inter-processor communication @@ -14,7 +14,7 @@ Signed-off-by: Arturo Buzarra 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/arm/dts/ccmp25.dtsi b/arch/arm/dts/ccmp25.dtsi -index 913eac366b9..51b65f2408a 100644 +index cdbc26efabc..b0a91cb0180 100644 --- a/arch/arm/dts/ccmp25.dtsi +++ b/arch/arm/dts/ccmp25.dtsi @@ -246,11 +246,8 @@ @@ -25,7 +25,7 @@ index 913eac366b9..51b65f2408a 100644 - <&ipc_shmem_1>, <&vdev0vring0>, - <&vdev0vring1>, <&vdev0buffer>, - <&cm33_sram2>; -- st,syscfg-nsvtor = <&a35ss_syscfg 0xa8 0xffffff80>; +- st,syscfg-nsvtor = <&a35ss_syscfg 0x20a8 0xffffff80>; + compatible = "st,stm32mp2-m33-tee"; + memory-region = <&vdev0vring0>, <&vdev0vring1>, <&vdev0buffer>, <&ipc_shmem_1>; status = "okay"; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/fit-install-template.its b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/fit-install-template.its new file mode 100644 index 000000000..d3bdce381 --- /dev/null +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey/fit-install-template.its @@ -0,0 +1,42 @@ +/dts-v1/; + +/ { + description = "Installer fitImage for Digi Embedded Yocto"; + #address-cells = <1>; + + images { + ##INSTALL_LINUX_FW## { + description = "U-boot ##INSTALL_LINUX_FW_DEV## installer script"; + data = /incbin/("##INSTALL_LINUX_FW_FILE##.fit"); + type = "script"; + arch = "arm"; + compression = "none"; + hash-1 { + algo = "sha256"; + }; + signature-1 { + algo = "sha256,rsa2048"; + key-name-hint = "fitimg"; + }; + }; + }; + + configurations { + default = "conf-##INSTALL_LINUX_FW##"; + conf-##INSTALL_LINUX_FW## { + description = "u-boot ##INSTALL_LINUX_FW_DEV## installer script"; + + bootscr = "##INSTALL_LINUX_FW##"; + + hash-1 { + algo = "sha256"; + }; + signature-1 { + algo = "sha256,rsa2048"; + key-name-hint = "fitcfg"; + padding = "pkcs-1.5"; + sign-images = "bootscr"; + }; + }; + }; +}; diff --git a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2023.10.bb b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2023.10.bb index 028217fb6..bcc5351b1 100644 --- a/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2023.10.bb +++ b/meta-digi-arm/recipes-bsp/u-boot/u-boot-dey_2023.10.bb @@ -13,6 +13,10 @@ SRC_URI += " \ ${@oe.utils.conditional('TRUSTFENCE_SIGN_FIT_STM', '1', 'file://fit_signature.cfg', '', d)} \ " +SRC_URI:append:ccmp15 = " \ + ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'file://0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch', '', d)} \ +" + SRC_URI:append:ccmp25 = " \ ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'file://0001-ARM-dts-ccmp25-add-signed-firmware-support-for-RPROC.patch', '', d)} \ " diff --git a/meta-digi-arm/recipes-digi/mca/mca-tool_1.25.bb b/meta-digi-arm/recipes-digi/mca/mca-tool_1.25.bb deleted file mode 100644 index cad5a6bfa..000000000 --- a/meta-digi-arm/recipes-digi/mca/mca-tool_1.25.bb +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2016-2024, Digi International Inc. - -SUMMARY = "MCA firmware management tool" -SECTION = "console/tools" -LICENSE = "CLOSED" - -PKGNAME = "mca_tool" - -# ARM tarball -SRC_URI:arm = "${DIGI_PKG_SRC}/${PKGNAME}-${PV}-${TUNE_ARCH}.tar.gz;name=arm" -SRC_URI[arm.md5sum] = "ffa8967cb9b684f3846b641a5d57b8f6" -SRC_URI[arm.sha256sum] = "057c289990d79f0b749e9d0d7af2570332e9215e697de75dc6851d89bdd61dff" - -# AARCH64 tarball -SRC_URI:aarch64 = "${DIGI_PKG_SRC}/${PKGNAME}-${PV}-${TUNE_ARCH}.tar.gz;name=aarch64" -SRC_URI[aarch64.md5sum] = "12033830965f2861628461c612a7604e" -SRC_URI[aarch64.sha256sum] = "2467e426c6a4e6b89f4aaced846c1f52787e130f16ffb62e6f046bea7bc4f21f" - -S = "${WORKDIR}/${PKGNAME}-${PV}" - -inherit bin_package - -HAS_USRMERGE = "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '1', '0', d)}" - -do_install:append() { - # Move binaries from /sbin to /usr/sbin to avoid usrmerge QA error. - if [ "${HAS_USRMERGE}" = "1" ]; then - install -d ${D}${base_sbindir} - mv ${D}/sbin/* ${D}${base_sbindir} && rmdir ${D}/sbin - fi -} - -INSANE_SKIP:${PN} = "already-stripped" - -COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8m|ccimx8x|ccmp1)" diff --git a/meta-digi-arm/recipes-digi/mca/mca-tool_1.26.bb b/meta-digi-arm/recipes-digi/mca/mca-tool_1.26.bb new file mode 100644 index 000000000..b755c59f8 --- /dev/null +++ b/meta-digi-arm/recipes-digi/mca/mca-tool_1.26.bb @@ -0,0 +1,25 @@ +# Copyright (C) 2016-2026, Digi International Inc. + +SUMMARY = "MCA firmware management tool" +SECTION = "console/tools" +LICENSE = "CLOSED" + +PKGNAME = "mca_tool" + +# ARM tarball +SRC_URI:arm = "${DIGI_PKG_SRC}/${PKGNAME}-${PV}-${TUNE_ARCH}.tar.gz;name=arm" +SRC_URI[arm.md5sum] = "478d700bf9e48e91dfe5901a4dfee840" +SRC_URI[arm.sha256sum] = "9d8ca0ef22c0bcfef74868f3a973615c3071259e7820ab77afa6a29f6d7b2461" + +# AARCH64 tarball +SRC_URI:aarch64 = "${DIGI_PKG_SRC}/${PKGNAME}-${PV}-${TUNE_ARCH}.tar.gz;name=aarch64" +SRC_URI[aarch64.md5sum] = "a46925c03dc26b6f6337d96497d4880f" +SRC_URI[aarch64.sha256sum] = "dd20ae19dc15ca602c2951d62516c68415c9a81f9577fd893c54268a45acea3a" + +S = "${WORKDIR}/${PKGNAME}-${PV}" + +inherit bin_package + +INSANE_SKIP:${PN} = "already-stripped" + +COMPATIBLE_MACHINE = "(ccimx6ul|ccimx8m|ccimx8x|ccmp1|ccimx95)" diff --git a/meta-digi-arm/recipes-digi/trustfence/trustfence-sign-tools/trustfence-gen-pki-stm.sh b/meta-digi-arm/recipes-digi/trustfence/trustfence-sign-tools/trustfence-gen-pki-stm.sh index e6c6e1d19..87ff83768 100755 --- a/meta-digi-arm/recipes-digi/trustfence/trustfence-sign-tools/trustfence-gen-pki-stm.sh +++ b/meta-digi-arm/recipes-digi/trustfence/trustfence-sign-tools/trustfence-gen-pki-stm.sh @@ -112,41 +112,89 @@ fi RPROC_KEY_PASS_FILE="${CONFIG_SIGN_KEYS_PATH}/rproc-keys/key_pass.txt" # Generate random keys for Cortex-M coprocessor if they don't exist -if [ "${PLATFORM}" = "ccmp25" ]; then +if [ "${PLATFORM}" = "ccmp15" ] || [ "${PLATFORM}" = "ccmp25" ]; then N_PUBK="$(ls -l ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/publicKey*.pem 2>/dev/null | wc -l)" N_PRVK="$(ls -l ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/privateKey*.pem 2>/dev/null | wc -l)" N_DERK="$(ls -l ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/publicKey*.der 2>/dev/null | wc -l)" install -d "${CONFIG_SIGN_KEYS_PATH}/rproc-keys/" - if [ "${N_PUBK}" = "1" ] && [ "${N_PRVK}" = "1" ] && [ "${N_DERK}" = "1" ] && [ -f "${RPROC_KEY_PASS_FILE}" ]; then - # PKI tree already exists. - echo "Using existing PKI tree for Cortex-M coprocessor" - elif [ "${N_PUBK}" != "1" ] && [ "${N_PRVK}" != 1 ] && [ "${N_DERK}" != "1" ] && [ ! -f "${RPROC_KEY_PASS_FILE}" ]; then - # Random password - password="$(openssl rand -base64 32)" - echo "Generating random key" - if ! STM32MP_KeyGen_CLI -abs "${CONFIG_SIGN_KEYS_PATH}/rproc-keys/" -pwd ${password}; then - echo "[ERROR] Could not generate PKI tree for Cortex-M coprocessor" - exit 1 - fi - echo "${password}" > "${RPROC_KEY_PASS_FILE}" - chmod 400 "${RPROC_KEY_PASS_FILE}" - # Generate DER version of public key - if ! openssl ec -pubin -in ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/publicKey.pem \ - -outform DER -pubout \ - -out ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/publicKey.der; then - echo "[ERROR] Could not generate DER public key for Cortex-M coprocessor" + + if [ "${PLATFORM}" = "ccmp15" ]; then + if [ "${N_PUBK}" = "1" ] && [ "${N_PRVK}" = "1" ]; then + # PKI tree already exists. + echo "Using existing PKI tree for Cortex-M coprocessor" + elif [ "${N_PUBK}" = "0" ] && [ "${N_PRVK}" = "0" ]; then + echo "Generating random key" + if ! openssl genrsa -out "${CONFIG_SIGN_KEYS_PATH}/rproc-keys/privateKey.pem" 2048; then + echo "[ERROR] Could not generate private key for Cortex-M coprocessor" + exit 1 + fi + chmod 444 "${CONFIG_SIGN_KEYS_PATH}/rproc-keys/privateKey.pem" + # Generate public key + if ! openssl rsa -pubout -in ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/privateKey.pem \ + -out ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/publicKey.pem; then + echo "[ERROR] Could not generate public key for Cortex-M coprocessor" + exit 1 + fi + chmod 400 "${CONFIG_SIGN_KEYS_PATH}/rproc-keys/publicKey.pem" + else + echo "[ERROR] Could not generate PKI tree for Cortex-M coprocessor. An incomplete PKI tree may already exist." exit 1 fi else - echo "[ERROR] Could not generate PKI tree for Cortex-M coprocessor. An incomplete PKI tree may already exist." - exit 1 + if [ "${N_PUBK}" = "1" ] && [ "${N_PRVK}" = "1" ] && [ "${N_DERK}" = "1" ] && [ -f "${RPROC_KEY_PASS_FILE}" ]; then + # PKI tree already exists. + echo "Using existing PKI tree for Cortex-M coprocessor" + elif [ "${N_PUBK}" = "0" ] && [ "${N_PRVK}" = "0" ] && [ "${N_DERK}" = "0" ] && [ ! -f "${RPROC_KEY_PASS_FILE}" ]; then + # Random password + password="$(openssl rand -base64 32)" + echo "Generating random key" + if ! STM32MP_KeyGen_CLI -abs "${CONFIG_SIGN_KEYS_PATH}/rproc-keys/" -pwd ${password}; then + echo "[ERROR] Could not generate PKI tree for Cortex-M coprocessor" + exit 1 + fi + echo "${password}" > "${RPROC_KEY_PASS_FILE}" + chmod 400 "${RPROC_KEY_PASS_FILE}" + # Generate DER version of public key + if ! openssl ec -pubin -in ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/publicKey.pem \ + -outform DER -pubout \ + -out ${CONFIG_SIGN_KEYS_PATH}/rproc-keys/publicKey.der; then + echo "[ERROR] Could not generate DER public key for Cortex-M coprocessor" + exit 1 + fi + else + echo "[ERROR] Could not generate PKI tree for Cortex-M coprocessor. An incomplete PKI tree may already exist." + exit 1 + fi fi fi -if [ -n "${CONFIG_FSBL_ENCRYPT_KEYNAME}" ] && [ -n "${CONFIG_FIP_ENCRYPT_KEYNAME}" ] && [ -n "${CONFIG_RPROC_ENCRYPT_KEYNAME}" ]; then - - # Generate random keys if they don't exist - if [ "${PLATFORM}" = "ccmp25" ]; then +# Generate random keys if they don't exist +if [ "${PLATFORM}" = "ccmp13" ]; then + if [ -n "${CONFIG_FSBL_ENCRYPT_KEYNAME}" ] && [ -n "${CONFIG_FIP_ENCRYPT_KEYNAME}" ]; then + if [ ! -f "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FSBL_ENCRYPT_KEYNAME}" ]; then + echo "Generating random encryption key for FSBL" + if ! STM32MP_KeyGen_CLI -rand 16 "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FSBL_ENCRYPT_KEYNAME}"; then + echo "[ERROR] Failed to generate 16-byte FSBL encryption key" + exit 1 + fi + chmod 444 "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FSBL_ENCRYPT_KEYNAME}" + fi + if [ ! -f "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FIP_ENCRYPT_KEYNAME}" ]; then + echo "Generating encryption key for FIP" + if ! hexdump -e '/1 "%02x"' "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FSBL_ENCRYPT_KEYNAME}" > "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FIP_ENCRYPT_KEYNAME}"; then + echo "[ERROR] Failed to generate 32-byte FIP encryption key" + exit 1 + fi + if ! hexdump -e '/1 "%02x"' "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FSBL_ENCRYPT_KEYNAME}" >> "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FIP_ENCRYPT_KEYNAME}"; then + echo "[ERROR] Failed to generate 32-byte FIP encryption key" + exit 1 + fi + printf "\n" >> "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FIP_ENCRYPT_KEYNAME}" + chmod 444 "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FIP_ENCRYPT_KEYNAME}" + fi + fi +elif [ "${PLATFORM}" = "ccmp25" ]; then + if [ -n "${CONFIG_FSBL_ENCRYPT_KEYNAME}" ] && [ -n "${CONFIG_FIP_ENCRYPT_KEYNAME}" ] && [ -n "${CONFIG_RPROC_ENCRYPT_KEYNAME}" ]; then if [ ! -f "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FSBL_ENCRYPT_KEYNAME}" ]; then echo "Generating random encryption key for FSBL" if ! STM32MP_KeyGen_CLI -rand 16 "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_FSBL_ENCRYPT_KEYNAME}"; then @@ -171,8 +219,5 @@ if [ -n "${CONFIG_FSBL_ENCRYPT_KEYNAME}" ] && [ -n "${CONFIG_FIP_ENCRYPT_KEYNAME fi chmod 444 "${CONFIG_SIGN_KEYS_PATH}/${CONFIG_RPROC_ENCRYPT_KEYNAME}" fi - else - echo "[ERROR] Could not generate encryption keys. Platform not supported." - exit 1 fi fi diff --git a/meta-digi-arm/recipes-kernel/linux-firmware/linux-firmware_%.bbappend b/meta-digi-arm/recipes-kernel/linux-firmware/linux-firmware_%.bbappend deleted file mode 100644 index bf4f143f5..000000000 --- a/meta-digi-arm/recipes-kernel/linux-firmware/linux-firmware_%.bbappend +++ /dev/null @@ -1,8 +0,0 @@ -# Copyright (C) 2022, Digi International Inc. - -# This is an excerpt from the *.bbappend in meta-imx, containing only the -# minimum necessary changes for bitbake to use the SDMA firmware from the -# firmware-imx recipe instead of this one - -# Use the latest version of sdma firmware in firmware-imx -PACKAGES:remove = "${PN}-imx-sdma-license ${PN}-imx-sdma-imx6q ${PN}-imx-sdma-imx7d" diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey/ccimx95/0001-CC95-early-prototypes-enable-wireless-interfaces.patch b/meta-digi-arm/recipes-kernel/linux/linux-dey/ccimx95/0001-CC95-early-prototypes-enable-wireless-interfaces.patch deleted file mode 100644 index 07658e875..000000000 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey/ccimx95/0001-CC95-early-prototypes-enable-wireless-interfaces.patch +++ /dev/null @@ -1,48 +0,0 @@ -From: Isaac Hermida -Date: Fri, 21 Nov 2025 10:12:53 +0100 -Subject: [PATCH] CC95: early prototypes: enable wireless interfaces - -As the HWID is not completed yet, is needed to fill that info manually. -This is just temporal for the initial prototypes. -Additionally, in U-Boot, is needed to set the overlays as: - setenv overlays ccimx9_wifi.dtbo,ccimx9_bt.dtbo - -Signed-off-by: Isaac Hermida ---- - arch/arm64/boot/dts/digi/ccimx9_bt.dtso | 1 + - arch/arm64/boot/dts/digi/ccimx9_wifi.dtso | 3 +++ - 2 files changed, 4 insertions(+) - -diff --git a/arch/arm64/boot/dts/digi/ccimx9_bt.dtso b/arch/arm64/boot/dts/digi/ccimx9_bt.dtso -index 6b4ca6229706..e073fe328dea 100644 ---- a/arch/arm64/boot/dts/digi/ccimx9_bt.dtso -+++ b/arch/arm64/boot/dts/digi/ccimx9_bt.dtso -@@ -23,6 +23,7 @@ __overlay__ { - overlay-description = "SOM: Bluetooth"; - bluetooth { - /* U-Boot will fill in the MAC address here */ -+ mac-address = [00 04 f3 ff ff fc]; - }; - }; - }; -diff --git a/arch/arm64/boot/dts/digi/ccimx9_wifi.dtso b/arch/arm64/boot/dts/digi/ccimx9_wifi.dtso -index 7d73c4c7764d..80d766215ee0 100644 ---- a/arch/arm64/boot/dts/digi/ccimx9_wifi.dtso -+++ b/arch/arm64/boot/dts/digi/ccimx9_wifi.dtso -@@ -25,6 +25,7 @@ __overlay__ { - overlay-description = "SOM: Wi-Fi"; - wireless { - /* U-Boot will fill in the MAC address here */ -+ mac-address = [00 04 f3 ff ff fb]; - }; - }; - }; -@@ -42,6 +43,8 @@ __overlay__ { - bus-width = <4>; - non-removable; - wakeup-source; -+ // Workaround: limit max freq to 100MHz -+ max-frequency = <100000000>; - status = "okay"; - }; - }; diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey/ccmp1/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch b/meta-digi-arm/recipes-kernel/linux/linux-dey/ccmp1/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch new file mode 100644 index 000000000..1b40be7ec --- /dev/null +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey/ccmp1/0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch @@ -0,0 +1,38 @@ +From: Arturo Buzarra +Date: Tue, 4 Nov 2025 09:03:31 +0100 +Subject: [PATCH] ARM: dts: ccmp15: add signed firmware support for RPROC + +Declare only the shared memory used for inter-processor communication +(including the resource table) to allow remoteproc to load/authenticate signed +Cortex-M4 firmware. + +https://onedigi.atlassian.net/browse/DEL-9920 + +Signed-off-by: Arturo Buzarra +--- + arch/arm/boot/dts/digi/ccmp15.dtsi | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/arch/arm/boot/dts/digi/ccmp15.dtsi b/arch/arm/boot/dts/digi/ccmp15.dtsi +index 6f636dbf6ece..dd26d6d3d420 100644 +--- a/arch/arm/boot/dts/digi/ccmp15.dtsi ++++ b/arch/arm/boot/dts/digi/ccmp15.dtsi +@@ -414,14 +414,13 @@ &ipcc { + }; + + &m4_rproc { +- memory-region = <&retram>, <&mcuram>, <&mcuram2>, <&vdev0vring0>, +- <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; ++ compatible = "st,stm32mp1-m4-tee"; ++ memory-region = <&vdev0vring0>, <&vdev0vring1>, <&vdev0buffer>, <&mcu_rsc_table>; + mboxes = <&ipcc 0>, <&ipcc 1>, <&ipcc 2>, <&ipcc 3>; + mbox-names = "vq0", "vq1", "shutdown", "detach"; +- resets = <&scmi_reset RST_SCMI_MCU>, +- <&scmi_reset RST_SCMI_MCU_HOLD_BOOT>; +- reset-names = "mcu_rst", "hold_boot"; + /delete-property/ st,syscfg-holdboot; ++ /delete-property/ resets; ++ /delete-property/ reset-names; + interrupt-parent = <&exti>; + interrupts = <68 1>; + wakeup-source; diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey/ccmp2/0001-ARM64-dts-ccmp25-add-signed-firmware-support-for-RPR.patch b/meta-digi-arm/recipes-kernel/linux/linux-dey/ccmp2/0001-ARM64-dts-ccmp25-add-signed-firmware-support-for-RPR.patch index 33862daaa..6ba1fd68a 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey/ccmp2/0001-ARM64-dts-ccmp25-add-signed-firmware-support-for-RPR.patch +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey/ccmp2/0001-ARM64-dts-ccmp25-add-signed-firmware-support-for-RPR.patch @@ -1,5 +1,5 @@ From: Arturo Buzarra -Date: Thu, 30 Oct 2025 14:15:14 +0100 +Date: Wed, 18 Mar 2026 15:30:31 +0100 Subject: [PATCH] ARM64: dts: ccmp25: add signed firmware support for RPROC Declare only the shared memory used for inter-processor communication @@ -14,7 +14,7 @@ Signed-off-by: Arturo Buzarra 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/arm64/boot/dts/digi/ccmp25.dtsi b/arch/arm64/boot/dts/digi/ccmp25.dtsi -index 153726203533..89f5bf75fd9f 100644 +index 0940797f47fa..444ebc920187 100644 --- a/arch/arm64/boot/dts/digi/ccmp25.dtsi +++ b/arch/arm64/boot/dts/digi/ccmp25.dtsi @@ -346,11 +346,8 @@ &m0_rproc { @@ -25,7 +25,7 @@ index 153726203533..89f5bf75fd9f 100644 - <&ipc_shmem_1>, <&vdev0vring0>, - <&vdev0vring1>, <&vdev0buffer>, - <&cm33_sram2>; -- st,syscfg-nsvtor = <&a35ss_syscfg 0xa8 0xffffff80>; +- st,syscfg-nsvtor = <&a35ss_syscfg 0x20a8 0xffffff80>; + compatible = "st,stm32mp2-m33-tee"; + memory-region = <&vdev0vring0>, <&vdev0vring1>, <&vdev0buffer>, <&ipc_shmem_1>; status = "okay"; diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey/docker_conf.cfg b/meta-digi-arm/recipes-kernel/linux/linux-dey/docker_conf.cfg index 008a84266..7bf5f839e 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey/docker_conf.cfg +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey/docker_conf.cfg @@ -26,6 +26,7 @@ CONFIG_NETFILTER_XT_TARGET_MASQUERADE=y CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_IP_NF_IPTABLES=y CONFIG_IP6_NF_IPTABLES=y CONFIG_IP_NF_NAT=y @@ -51,6 +52,7 @@ CONFIG_CGROUP_NET_CLASSID=y CONFIG_IP_NF_FILTER=m CONFIG_BLK_CGROUP=y CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=m CONFIG_BRIDGE=m CONFIG_BRIDGE_VLAN_FILTERING=y @@ -60,8 +62,6 @@ CONFIG_UNIX_DIAG=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETLINK_DIAG=m CONFIG_MACVLAN=y -CONFIG_BTRFS_FS=y -CONFIG_BTRFS_FS_POSIX_ACL=y CONFIG_BPF_SYSCALL=y CONFIG_CGROUP_BPF=y CONFIG_CFS_BANDWIDTH=y diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey/stm32mpcommon/0011-v6.6-stm32mp-rt-r2.patch b/meta-digi-arm/recipes-kernel/linux/linux-dey/stm32mpcommon/0011-v6.6-stm32mp-rt-r2.patch index 9e703edf1..84f8923a8 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey/stm32mpcommon/0011-v6.6-stm32mp-rt-r2.patch +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey/stm32mpcommon/0011-v6.6-stm32mp-rt-r2.patch @@ -442,7 +442,7 @@ index 1c949774f..b56d3b77c 100644 if (stm32_usart_rx_dma_started(stm32_port) && !stm32_port->throttled) { - spin_lock(&port->lock); + uart_port_lock(port); - size = stm32_usart_receive_chars(port, (sr & USART_SR_RTOF)); + size = stm32_usart_receive_chars(port, false); uart_unlock_and_check_sysrq(port); if (size) @@ -1319,7 +1309,7 @@ static void stm32_usart_unthrottle(struct uart_port *port) diff --git a/meta-digi-arm/recipes-kernel/linux/linux-dey_6.6.bb b/meta-digi-arm/recipes-kernel/linux/linux-dey_6.6.bb index eaf594b4e..5838821cd 100644 --- a/meta-digi-arm/recipes-kernel/linux/linux-dey_6.6.bb +++ b/meta-digi-arm/recipes-kernel/linux/linux-dey_6.6.bb @@ -1,7 +1,15 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. require recipes-kernel/linux/linux-dey.inc +KERNEL_LOGO_PPM ?= "" + +do_compile[prefuncs] += "${@'kernel_prepare_logo' if d.getVar('KERNEL_LOGO_PPM') else ''}" + +kernel_prepare_logo() { + install -m 0644 "${KERNEL_LOGO_PPM}" "${S}/drivers/video/logo/logo_custom_clut224.ppm" +} + SRCBRANCH = "v6.6/nxp/dey-5.0/maint" SRCBRANCH:stm32mpcommon = "v6.6/stm/dey-5.0/maint" SRCREV = "${AUTOREV}" @@ -22,29 +30,40 @@ SRC_URI:append = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'rt', '${RT_FILES}', '', d)} \ " -SRC_URI:append:ccmp25 = " \ - ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'file://0001-ARM64-dts-ccmp25-add-signed-firmware-support-for-RPR.patch', '', d)} \ +SRC_URI:append:ccmp15 = " \ + ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'file://0001-ARM-dts-ccmp15-add-signed-firmware-support-for-RPROC.patch', '', d)} \ " -SRC_URI:append:ccimx95 = " \ - file://0001-CC95-early-prototypes-enable-wireless-interfaces.patch \ +SRC_URI:append:ccmp25 = " \ + ${@oe.utils.conditional('TRUSTFENCE_COPRO_ENABLED', '1' , 'file://0001-ARM64-dts-ccmp25-add-signed-firmware-support-for-RPR.patch', '', d)} \ " # Define RT config fragments per machine RT_CONFIG_FRAGS:use-nxp-bsp = " ${WORKDIR}/fragment-nxp-rt.config" RT_CONFIG_FRAGS:stm32mpcommon = " \ ${S}/arch/arm64/configs/fragment-07-rt.config \ - ${S}/arch/arm64/configs/fragment-07-rt-sysvinit.config \ ${WORKDIR}/fragment-08-deactivate-rng.config \ ${WORKDIR}/fragment-10-network-improvment.config \ " +RT_CONFIG_FRAGS:stm32mpcommon:append = " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', \ + '${S}/arch/arm64/configs/fragment-07-rt-sysvinit.config', \ + '', d)} \ +" + KERNEL_CONFIG_FRAGMENTS:append = " \ ${@bb.utils.contains('DISTRO_FEATURES', 'rt', '${RT_CONFIG_FRAGS}', '', d)} \ " -# Blacklist btnxpuart module. It will be managed by the bluetooth-init script -KERNEL_MODULE_PROBECONF:ccimx9 += "btnxpuart" -module_conf_btnxpuart:ccimx9 = "blacklist btnxpuart" +# Blacklist BT driver (as module). They will be managed by the bluetooth-init script +KERNEL_MODULE_PROBECONF:ccimx91 += "btnxpuart" +KERNEL_MODULE_PROBECONF:ccimx93 += "btnxpuart" +KERNEL_MODULE_PROBECONF:ccimx95 += "hci_uart" +KERNEL_MODULE_PROBECONF:ccmp1 += "hci_uart" +module_conf_btnxpuart:ccimx91 = "blacklist btnxpuart" +module_conf_btnxpuart:ccimx93 = "blacklist btnxpuart" +module_conf_hci_uart:ccimx95 = "blacklist hci_uart" +module_conf_hci_uart:ccmp1 = "blacklist hci_uart" # --------------------------------------------------------------------- # stub for devicetree which are located on digi directory @@ -56,10 +75,6 @@ do_compile:append:stm32mpcommon() { fi } -# Blacklist hci_uart module. It will be managed by the bluetooth-init script -KERNEL_MODULE_PROBECONF:ccmp1 += "hci_uart" -module_conf_hci_uart:ccmp1 = "blacklist hci_uart" - do_install:append:stm32mpcommon() { if ${@bb.utils.contains('MACHINE_FEATURES','gpu','true','false',d)}; then # when ACCEPT_EULA are filled diff --git a/meta-digi-arm/wic/imx-imx-boot-bootpart-uboot-env.wks.in b/meta-digi-arm/wic/imx-imx-boot-bootpart-uboot-env.wks.in new file mode 100644 index 000000000..466fd5137 --- /dev/null +++ b/meta-digi-arm/wic/imx-imx-boot-bootpart-uboot-env.wks.in @@ -0,0 +1,19 @@ +# short-description: Create a bootable SD card image +# long-description: Create a bootable SD card image with bootloader, +# environment partition, and boot and rootfs partitions. +# +# The disk layout used is: +# - ---------- ------------ -------------- -------------- +# | | imx-boot | u-boot-env | boot | rootfs | +# - ---------- ------------ -------------- -------------- +# ^ ^ ^ ^ ^ +# | | | | | +# 0 | 8MiB - 32kiB 8MiB 264MiB +# ${IMX_BOOT_SEEK} 32 or 33kiB, see reference manual +# +part imxboot --source rawcopy --sourceparams="file=imx-boot.tagged" --ondisk mmcblk --no-table --align ${IMX_BOOT_SEEK} +part u-boot-env --source empty --ondisk mmcblk --size 32k --offset 8160k --part-name u-boot-env --part-type 3DE21764-95BD-54BD-A5C3-4ABE786F38A8 +part /boot --source bootimg-partition --ondisk mmcblk --fstype=vfat --label boot --active --align 8192 --fixed-size 256 +part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 8192 --uuid b74d3700-a3c2-4806-8cb6-4e0fed784c7f + +bootloader --ptable gpt diff --git a/meta-digi-containers/README.md b/meta-digi-containers/README.md new file mode 100644 index 000000000..77e61e541 --- /dev/null +++ b/meta-digi-containers/README.md @@ -0,0 +1,388 @@ +# meta-digi-containers + +Yocto layer for Digi container-focused image generation and packaging. + +This layer provides: + +- `dey-image-container` to generate container artifacts +- `dey-image-container-manager` to run and manage Podman/LXC containers on target + +`dey-image-container-manager` installs dedicated `lxc-trimmed` and `podman-trimmed` +recipes, so it does not require `DISTROOVERRIDES` changes in `local.conf` +and does not affect other DEY images built in the same environment. + +The layer explicitly depends on `meta-virtualization`, and +`dey-image-container-manager` +requires `DISTRO_FEATURES:append = " virtualization"` in `local.conf`. + +The `dey-image-container` workflow produces: + +- A base rootfs (`tar.xz`) +- An OCI image output +- A Podman archive (`*.tar`) +- An LXC bundle (`*.tar.gz`) +- Final container artifacts (`*.tar.gz`) with: + - `manifest.json` + - `payload/` + - `checksums/sha256sums.txt` + - optional `metadata/` + +Note: Podman archive generation requires an OCI image output as intermediate input. +The recipe keeps `oci` in `IMAGE_FSTYPES` because `do_image_podman_archive` converts +that OCI artifact into a `docker-archive` tar using `skopeo`. + +## External Digi Container Package (DCP) generation + +Use the following Python script to generate a DCP out of Yocto workspace: + +- `meta-digi-containers/scripts/generate-dcp.py` + +This script requires: + +- `manifest.json` +- payload artifact, which may be one of: + - Podman: `image.tar` + - LXC: a Yocto-style LXC bundle (`.tar.gz`) containing `rootfs/` and `config` + +Usage: + +```bash +python3 meta-digi-containers/scripts/generate-dcp.py \ + --manifest /path/to/manifest.json \ + --payload /path/to/payload \ + [--output-dir /path/to/outdir] \ + [--readme /path/to/README.txt] \ + [--changelog /path/to/changelog.txt] +``` + +and generates a final DCP bundle with the same layout used today by the Yocto recipe: + +- `manifest.json` +- `payload/` +- `checksums/sha256sums.txt` +- `metadata/README.txt` +- `metadata/changelog.txt` + +The script generates exactly one runtime artifact per execution. + +Notes: + +- `--output-dir` is optional. If omitted, the script writes the DCP to the current directory. +- If the input manifest omits `package_id`, the generator derives the final + `package_id` from `name` and appends a unique suffix using the `created_at` + timestamp encoded in base36 milliseconds. +- If the input manifest provides `package_id`, that value is kept unchanged. +- The output file name is always derived from the generated package ID and + manifest fields as: + - `_artifact__.tar.gz` +- For Podman payloads, the final internal payload name is always `payload/image.tar` +- For LXC payloads, the generator requires a Yocto-style `.tar.gz` bundle, validates its layout, + and stores it inside the DCP using the original file name and format without re-packaging it. + +Example manifests are provided at: + +- `meta-digi-containers/examples/manifest-lxc.json` +- `meta-digi-containers/examples/manifest-podman.json` + +Example: + +```bash +python3 meta-digi-containers/scripts/generate-dcp.py \ + --manifest meta-digi-containers/examples/manifest-podman.json \ + --payload /tmp/image.tar +``` + +This generates a bundle named like: + +- `./flutter-demo-_artifact_podman_ccmp25-dvk.tar.gz` + +In those manifests: + +- `name` is the stable logical container name stored on the target. +- `friendly_name` is the user-facing label shown by DRM and the manager output when available. +- the final `package_id` is generated automatically from `name` unless the + input manifest provides an explicit `package_id` + +## Digi Remote Manager metrics support + +`dey-image-container-manager` includes `cc-container-mng` that has the capability to +publish container statistics through the local CCCS Python API. +For generated DCPs, DRM behavior is controlled through `registration_defaults.drm` +in the artifact manifest. +Those manifest defaults establish the initial runtime policy on the target. +After installation, mutable policy such as `autostart`, `monitor`, `restart`, and +`drm` can be inspected or updated through the container manager `config` +`get` and `set` operations without regenerating the DCP. +The image recipe generates the DCP automatically from the following variables: + +- `CONTAINER_DRM_ENABLED` +- `CONTAINER_DRM_STATS_SAMPLE_INTERVAL` +- `CONTAINER_DRM_STATS_LIST_OF_METRICS` + +Example: + +```conf +CONTAINER_DRM_ENABLED = "true" +CONTAINER_DRM_STATS_SAMPLE_INTERVAL = "30" +CONTAINER_DRM_STATS_LIST_OF_METRICS = "[\"cpu\", \"mem\"]" +``` + +`CONTAINER_DRM_STATS_LIST_OF_METRICS` follows the same semantics as the target +manager: + +- `["all"]` is accepted as a shorthand input for all periodic metrics. +- `[]` publishes no periodic metrics. +- any other list publishes only the selected metrics. + +Generated manifests and target-side effective configuration use the explicit +metric list. + +`dey-image-container-manager` also overrides the manager persistent base path +through `CC_CONTAINER_PATH`, which defaults to `${ROOT_HOME}/cc-container` in +the Digi platform defaults. This makes the effective target paths live under +`/root/cc-container` in DEY images, while the upstream `cc-container-mng` +project keeps `/opt/cc-container` as its built-in default. + +## Layer Scope + +Main recipes: + +- `recipes-core/images/dey-image-container.bb` +- `recipes-core/images/dey-image-container-manager.bb` + +Recipe includes: + +- `dey-image-container-fragments.inc` +- `dey-image-container-lxc.inc` +- `dey-image-container-podman.inc` +- `dey-image-container-artifact.inc` + +Container support files: + +- `containers//configs_lxc/` (profile LXC config fragments) +- `containers//rootfs_files/` (profile rootfs overlays) +- `containers//artifact/` (optional artifact metadata template) + +Container runtime recipes: + +- `recipes-containers/lxc/lxc-trimmed_git.bb` +- `recipes-containers/podman/podman-trimmed_git.bb` + +## Add The Layer + +In your build environment: + +```bash +bitbake-layers add-layer /path/to/sources/meta-digi/meta-digi-containers +bitbake-layers add-layer /path/to/sources/meta-virtualization +bitbake-layers add-layer /path/to/sources/meta-openembedded/meta-filesystems +``` + +Or add it manually to `conf/bblayers.conf`. + +## Basic Usage + +Set profile and naming in `conf/local.conf`: + +```conf +DISTRO_FEATURES:append = " virtualization" +CONTAINER_TYPE = "webkit" # or: lvgl, flutter, base, custom profile +CONTAINER_NAME = "webkit-example" +# PODMAN_TAG defaults to "${CONTAINER_NAME}-tag" +``` + +Build: + +```bash +bitbake dey-image-container +``` + +Outputs are generated in: + +- `tmp/deploy/images/${MACHINE}/` + +Final outputs: + +- `${CONTAINER_NAME}-_artifact_podman_.tar.gz` +- `${CONTAINER_NAME}-_artifact_lxc_.tar.gz` + +Notes: + +- The generator script derives `package_id` from the input `name` only when the + manifest does not provide one explicitly. In that default case it appends a + base36-encoded millisecond timestamp suffix, stores the generated `package_id` + in the final `manifest.json`, and uses it in the DCP file name. +- In Yocto builds, `dey-image-container` does not set `package_id`, so the + generated value always starts from `${CONTAINER_NAME}` before the generator + adds the unique suffix. + +Intermediate outputs generated during the build (LXC bundle, Podman archive, OCI/rootfs files) +are removed automatically at the end of artifact creation. + +## Profiles + +Profile-specific behavior is controlled with: + +- `CONTAINER_TYPE` +- `OVERRIDES:append = ":container-${CONTAINER_TYPE}"` (handled in recipe) + +Current built-in profile examples: + +- `container-lvgl` +- `container-flutter` +- `container-webkit` + +You can add new profiles by appending variables with `:container-` overrides. + +For customer-defined profiles, use: + +```conf +CONTAINER_TYPE = "myprofile" +CONTAINER_NAME = "myprofile-demo" +PODMAN_TAG = "myprofile-demo-tag" + +IMAGE_INSTALL:append:container-myprofile = " package-a package-b" +CONTAINER_INIT_MANAGER:container-myprofile = "/usr/bin/docker-init" +CONTAINER_INIT_SCRIPT:container-myprofile = "/usr/bin/my-app --foreground" + +# Manifest-related overrides can also be profile-specific: +CONTAINER_ARTIFACT_VERSION:container-myprofile = "1.2.0" +CONTAINER_FIRMWARE_VERSIONS:container-myprofile = ">=25.01" +CONTAINER_DEVICE_TYPES_JSON:container-myprofile = "[\"ccmp25-dvk\"]" +CONTAINER_ARTIFACT_DESCRIPTION:container-myprofile = "My profile demo container" +CONTAINER_ARTIFACT_LABELS_JSON:container-myprofile = "{\"vendor\":\"digi\",\"component\":\"demo\"}" + +``` + +## Rootfs Overlay + +Use the following variables to inject directories into the container rootfs: + +```conf +CONTAINER_ROOTFS_OVERLAY_DIRS = "/absolute/path/to/overlay" +CONTAINER_ROOTFS_OVERLAY_TARBALLS = "/absolute/path/to/overlay.tar.gz" +``` + +Notes: + +- Multiple entries are supported (space-separated). +- `*.sh` files copied from overlay directories are marked executable automatically. +- If `CONTAINER_ROOTFS_OVERLAY_DIRS` is not set + and `containers/${CONTAINER_TYPE}/rootfs_files` exists, + it is used automatically. + +## LXC Fragment Configuration + +LXC fragments are loaded from: + +- `containers/${CONTAINER_TYPE}/configs_lxc/` + +Config file naming: + +- `config_lxc_` + +Example: + +- `config_lxc_ccmp25-dvk` + +`` matches the full `MACHINE` value. + +Supported placeholders in LXC config fragments: + +- `@LXC_ARCH@` +- `@LXC_FOLDER@` +- `@CONTAINER_NAME@` +- `@CONTAINER_INIT_MANAGER@` +- `@CONTAINER_INIT_SCRIPT@` + +## Artifact Manifest Fields + +The artifact manifest is generated automatically and includes: + +- `package_id` +- `name` [stable logical container name] +- `friendly_name` [optional user-facing display name] +- `version` +- `runtime` +- `artifact_type` +- `create_args` [optional] for Podman artifacts (only when non-empty) +- `created_at` +- `digest` +- `device_types` +- `firmware_versions` +- `size_bytes` +- `build_id` +- `description` +- `labels` + +`build_id` behavior: + +- Uses `CONTAINER_ARTIFACT_BUILD_ID` if explicitly set. +- Otherwise uses the current `meta-digi` git commit SHA (`git rev-parse HEAD`). + +Relevant variables: + +- `CONTAINER_NAME` +- `CONTAINER_FRIENDLY_NAME` +- `CONTAINER_ARTIFACT_VERSION` +- `CONTAINER_CREATE_ARGS_PODMAN` +- `CONTAINER_DRM_ENABLED` +- `CONTAINER_DRM_STATS_SAMPLE_INTERVAL` +- `CONTAINER_DRM_STATS_LIST_OF_METRICS` +- `CONTAINER_FIRMWARE_VERSIONS` +- `CONTAINER_DEVICE_TYPES_JSON` +- `CONTAINER_ARTIFACT_DESCRIPTION` +- `CONTAINER_ARTIFACT_BUILD_ID` +- `CONTAINER_ARTIFACT_LABELS_JSON` + +## Optional Artifact Metadata Template + +If you set: + +```conf +CONTAINER_ARTIFACT_TEMPLATE_DIR = "/path/to/artifact-template" +``` + +and the template contains `metadata/`, it is copied into final artifact bundles. + +`manifest.json`, `payload/*`, and `checksums/sha256sums.txt` are always generated during +build time and should not be pre-created in the template. + +If `CONTAINER_ARTIFACT_TEMPLATE_DIR` is not set and `containers/${CONTAINER_TYPE}/artifact` exists, +it is used automatically. + +## Container Folder Layout + +Each profile is self-contained under `containers/`: + +```text +containers/ + lvgl/ + rootfs_files/ + configs_lxc/ + artifact/ + flutter/ + rootfs_files/ + configs_lxc/ + artifact/ + webkit/ + rootfs_files/ + configs_lxc/ + artifact/ + custom/ + rootfs_files/ + configs_lxc/ + artifact/ +``` + +To create a new profile: + +1. Create `containers//configs_lxc/config_lxc_`. +2. Optionally add `containers//rootfs_files/` for rootfs content. +3. Set `CONTAINER_TYPE = ""` in `local.conf`. +4. Add profile packages with `IMAGE_INSTALL:append:container- = " ... "`. + +## Notes + +- Intermediate container artifacts from the current build are removed at the end of the artifact task. +- If `dey-image-container` is not found, verify the layer is present in `BBLAYERS`. diff --git a/meta-digi-containers/conf/layer.conf b/meta-digi-containers/conf/layer.conf new file mode 100644 index 000000000..94b94bb9b --- /dev/null +++ b/meta-digi-containers/conf/layer.conf @@ -0,0 +1,13 @@ +# We have a conf and classes directory, add to BBPATH +BBPATH .= ":${LAYERDIR}" + +# Container recipes and bbappends +BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" + +BBFILE_COLLECTIONS += "digi-containers" +BBFILE_PATTERN_digi-containers := "^${LAYERDIR}/" +BBFILE_PRIORITY_digi-containers = "7" + +LAYERDEPENDS_digi-containers = "digi-dey virtualization-layer" +LAYERSERIES_COMPAT_digi-containers = "scarthgap" diff --git a/meta-digi-containers/containers/chromium/artifact/metadata/README.txt b/meta-digi-containers/containers/chromium/artifact/metadata/README.txt new file mode 100644 index 000000000..f1249931f --- /dev/null +++ b/meta-digi-containers/containers/chromium/artifact/metadata/README.txt @@ -0,0 +1 @@ +Placeholder metadata for chromium container artifacts. diff --git a/meta-digi-containers/containers/chromium/artifact/metadata/changelog.txt b/meta-digi-containers/containers/chromium/artifact/metadata/changelog.txt new file mode 100644 index 000000000..a8a8e9675 --- /dev/null +++ b/meta-digi-containers/containers/chromium/artifact/metadata/changelog.txt @@ -0,0 +1 @@ +Placeholder changelog for webkit container artifacts. diff --git a/meta-digi-containers/containers/chromium/configs_lxc/config_lxc_ccimx95-dvk b/meta-digi-containers/containers/chromium/configs_lxc/config_lxc_ccimx95-dvk new file mode 100644 index 000000000..314d07f95 --- /dev/null +++ b/meta-digi-containers/containers/chromium/configs_lxc/config_lxc_ccimx95-dvk @@ -0,0 +1,57 @@ +# LXC config for Chromium on CCIMX95. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# use host network +lxc.net.0.type = none + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ +lxc.console.logfile = @LXC_FOLDER@/@CONTAINER_NAME@/console.log +lxc.environment = 'PS1=chromium-ccimx95:\w$ ' +lxc.mount.entry = tmpfs dev/shm tmpfs rw,nosuid,nodev,mode=1777,create=dir +lxc.mount.entry = /etc/resolv.conf etc/resolv.conf none bind,ro,create=file + +# audio +lxc.mount.entry = /dev/snd dev/snd none bind,create=dir +lxc.mount.entry = /etc/asound.conf etc/asound.conf none bind,create=file +lxc.mount.entry = /run/pulse run/pulse none bind,create=dir +lxc.environment = PULSE_SERVER=unix:/run/pulse/native + +# bluetooth +lxc.mount.entry = /run/dbus/system_bus_socket run/dbus/system_bus_socket none bind,create=file + +# python logging +lxc.mount.entry = /dev/log dev/log none bind,create=file +lxc.mount.entry = /run/systemd/journal run/systemd/journal none bind,create=dir + +# fw_printenv +lxc.mount.entry = /etc/fw_env.config etc/fw_env.config none bind,create=file +lxc.mount.entry = /dev/mmcblk0boot0 dev/mmcblk0boot0 none bind,optional,create=file +lxc.mount.entry = /dev/mmcblk0boot1 dev/mmcblk0boot1 none bind,optional,create=file + +# gpu for ccimx95 +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/mali0 dev/mali0 none bind,create=file +lxc.mount.entry = /dev/dma_heap dev/dma_heap none bind,create=dir +lxc.mount.entry = /dev/fb0 dev/fb0 none bind,create=file +lxc.mount.entry = /dev/input dev/input none bind,create=dir + +# tty +lxc.mount.entry = /dev/tty dev/tty none bind,create=file +lxc.mount.entry = /dev/tty0 dev/tty0 none bind,create=file +lxc.mount.entry = /dev/tty1 dev/tty1 none bind,create=file +lxc.mount.entry = /dev/tty7 dev/tty7 none bind,create=file + +# udev + pty +lxc.mount.entry = /run/udev run/udev none bind,ro,create=dir +lxc.pty.max = 1024 +lxc.mount.entry = devpts dev/pts devpts rw,nosuid,noexec,relatime,mode=0620,ptmxmode=0666,newinstance 0 0 + +# gpiochip access for chromium demo +lxc.mount.entry = /dev/gpiochip5 dev/gpiochip5 none bind,create=file diff --git a/meta-digi-containers/containers/chromium/rootfs_files/start-chromium-demo.sh b/meta-digi-containers/containers/chromium/rootfs_files/start-chromium-demo.sh new file mode 100644 index 000000000..193a99597 --- /dev/null +++ b/meta-digi-containers/containers/chromium/rootfs_files/start-chromium-demo.sh @@ -0,0 +1,62 @@ +#!/bin/sh +export XDG_RUNTIME_DIR="/run/user/0" +export WAYLAND_DISPLAY="wayland-0" +export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/dbus/system_bus_socket" + +COMPATIBLE="$(tr '\0' ' ' /dev/null || true)" + +case "${COMPATIBLE}" in + *digi,ccmp15*|*digi,ccmp25*) + export WL_EGL_GBM_FENCE=0 + ;; +esac + +[ -f /etc/default/weston ] && . /etc/default/weston + +rm -rf "$XDG_RUNTIME_DIR" +mkdir -p "$XDG_RUNTIME_DIR" +chmod 0700 "$XDG_RUNTIME_DIR" +chown root:root "$XDG_RUNTIME_DIR" + +rm -rf /tmp/.X11-unix +mkdir -p /tmp/.X11-unix +chmod 1777 /tmp/.X11-unix + +mkdir -p /dev/shm +chmod 1777 /dev/shm + +rm -f /tmp/weston.log + +weston \ + --backend=drm-backend.so \ + --modules=systemd-notify.so \ + --socket="${WAYLAND_DISPLAY}" \ + --idle-time=0 \ + --log=/tmp/weston.log \ + ${OPTARGS} & + +while :; do + if [ -S "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}" ]; then + break + fi + sleep 0.1 +done +sleep 0.1 + +/etc/connectcore-demo-server start + +# wait for server to be ready +until nc -w 1 localhost 9090 /dev/null 2>&1; do + sleep 0.1 +done + +exec /usr/bin/chromium \ + --allow-file-access-from-files \ + --enable-features=UseOzonePlatform \ + --enable-wayland-ime \ + --in-process-gpu \ + --incognito \ + --kiosk \ + --no-sandbox \ + --ozone-platform=wayland \ + file:///srv/www/index.html diff --git a/meta-digi-containers/containers/custom/artifact/metadata/README.txt b/meta-digi-containers/containers/custom/artifact/metadata/README.txt new file mode 100644 index 000000000..fe3b4711a --- /dev/null +++ b/meta-digi-containers/containers/custom/artifact/metadata/README.txt @@ -0,0 +1 @@ +Placeholder metadata for custom container artifacts. diff --git a/meta-digi-containers/containers/custom/artifact/metadata/changelog.txt b/meta-digi-containers/containers/custom/artifact/metadata/changelog.txt new file mode 100644 index 000000000..8ddbf0080 --- /dev/null +++ b/meta-digi-containers/containers/custom/artifact/metadata/changelog.txt @@ -0,0 +1 @@ +Placeholder changelog for custom container artifacts. diff --git a/meta-digi-containers/containers/custom/configs_lxc/config_lxc_ccimx95-dvk b/meta-digi-containers/containers/custom/configs_lxc/config_lxc_ccimx95-dvk new file mode 100644 index 000000000..b526c0df3 --- /dev/null +++ b/meta-digi-containers/containers/custom/configs_lxc/config_lxc_ccimx95-dvk @@ -0,0 +1,17 @@ +# LXC base config for custom profile on CCIMX95. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# custom prompt +lxc.environment = 'PS1=\h:\w$ ' + +# no network +lxc.net.0.type = empty + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ diff --git a/meta-digi-containers/containers/custom/configs_lxc/config_lxc_ccmp25-dvk b/meta-digi-containers/containers/custom/configs_lxc/config_lxc_ccmp25-dvk new file mode 100644 index 000000000..3d513c330 --- /dev/null +++ b/meta-digi-containers/containers/custom/configs_lxc/config_lxc_ccmp25-dvk @@ -0,0 +1,17 @@ +# LXC base config for custom profile on CCMP25. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# custom prompt +lxc.environment = 'PS1=\h:\w$ ' + +# no network +lxc.net.0.type = empty + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ diff --git a/meta-digi-containers/containers/custom/rootfs_files/.keep b/meta-digi-containers/containers/custom/rootfs_files/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/meta-digi-containers/containers/flutter/artifact/metadata/README.txt b/meta-digi-containers/containers/flutter/artifact/metadata/README.txt new file mode 100644 index 000000000..9375355a2 --- /dev/null +++ b/meta-digi-containers/containers/flutter/artifact/metadata/README.txt @@ -0,0 +1 @@ +Placeholder metadata for flutter container artifacts. diff --git a/meta-digi-containers/containers/flutter/artifact/metadata/changelog.txt b/meta-digi-containers/containers/flutter/artifact/metadata/changelog.txt new file mode 100644 index 000000000..2dc50fb7c --- /dev/null +++ b/meta-digi-containers/containers/flutter/artifact/metadata/changelog.txt @@ -0,0 +1 @@ +Placeholder changelog for flutter container artifacts. diff --git a/meta-digi-containers/containers/flutter/configs_lxc/config_lxc_ccimx95-dvk b/meta-digi-containers/containers/flutter/configs_lxc/config_lxc_ccimx95-dvk new file mode 100644 index 000000000..737867503 --- /dev/null +++ b/meta-digi-containers/containers/flutter/configs_lxc/config_lxc_ccimx95-dvk @@ -0,0 +1,30 @@ +# LXC config for Flutter on CCIMX95. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# custom prompt +lxc.environment = 'PS1=flutter-ccimx95:\w$ ' + +# no network +lxc.net.0.type = empty + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ +lxc.console.logfile = @LXC_FOLDER@/@CONTAINER_NAME@/console.log +lxc.mount.entry = tmpfs dev/shm tmpfs rw,nosuid,nodev,mode=1777,create=dir +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/input dev/input none bind,create=dir +lxc.mount.entry = /dev/mali0 dev/mali0 none bind,create=file +lxc.mount.entry = /dev/dma_heap dev/dma_heap none bind,create=dir +lxc.mount.entry = /dev/tty dev/tty none bind,create=file +lxc.mount.entry = /dev/tty0 dev/tty0 none bind,create=file +lxc.mount.entry = /dev/tty1 dev/tty1 none bind,create=file +lxc.mount.entry = /dev/tty7 dev/tty7 none bind,create=file +lxc.mount.entry = /run/udev run/udev none bind,ro,create=dir +lxc.pty.max = 1024 +lxc.mount.entry = devpts dev/pts devpts rw,nosuid,noexec,relatime,mode=0620,ptmxmode=0666,newinstance 0 0 diff --git a/meta-digi-containers/containers/flutter/configs_lxc/config_lxc_ccmp25-dvk b/meta-digi-containers/containers/flutter/configs_lxc/config_lxc_ccmp25-dvk new file mode 100644 index 000000000..7695502ce --- /dev/null +++ b/meta-digi-containers/containers/flutter/configs_lxc/config_lxc_ccmp25-dvk @@ -0,0 +1,29 @@ +# LXC config for Flutter on CCMP25. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# custom prompt +lxc.environment = 'PS1=flutter-ccmp25:\w$ ' + +# no network +lxc.net.0.type = empty + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ +lxc.console.logfile = @LXC_FOLDER@/@CONTAINER_NAME@/console.log +lxc.mount.entry = tmpfs dev/shm tmpfs rw,nosuid,nodev,mode=1777,create=dir +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/input dev/input none bind,create=dir +lxc.mount.entry = /dev/galcore dev/galcore none bind,create=file +lxc.mount.entry = /dev/tty dev/tty none bind,create=file +lxc.mount.entry = /dev/tty0 dev/tty0 none bind,create=file +lxc.mount.entry = /dev/tty1 dev/tty1 none bind,create=file +lxc.mount.entry = /dev/tty7 dev/tty7 none bind,create=file +lxc.mount.entry = /run/udev run/udev none bind,ro,create=dir +lxc.pty.max = 1024 +lxc.mount.entry = devpts dev/pts devpts rw,nosuid,noexec,relatime,mode=0620,ptmxmode=0666,newinstance 0 0 diff --git a/meta-digi-containers/containers/flutter/rootfs_files/start-flutter-demo.sh b/meta-digi-containers/containers/flutter/rootfs_files/start-flutter-demo.sh new file mode 100644 index 000000000..6ef4d7b43 --- /dev/null +++ b/meta-digi-containers/containers/flutter/rootfs_files/start-flutter-demo.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +/etc/flutter-demo-init start + +# Keep one foreground process alive; the demo wrapper backgrounds flutter-pi. +exec sleep infinity diff --git a/meta-digi-containers/containers/lvgl/artifact/metadata/README.txt b/meta-digi-containers/containers/lvgl/artifact/metadata/README.txt new file mode 100644 index 000000000..c7ffcb2c8 --- /dev/null +++ b/meta-digi-containers/containers/lvgl/artifact/metadata/README.txt @@ -0,0 +1 @@ +Placeholder metadata for lvgl container artifacts. diff --git a/meta-digi-containers/containers/lvgl/artifact/metadata/changelog.txt b/meta-digi-containers/containers/lvgl/artifact/metadata/changelog.txt new file mode 100644 index 000000000..4bd4b9671 --- /dev/null +++ b/meta-digi-containers/containers/lvgl/artifact/metadata/changelog.txt @@ -0,0 +1 @@ +Placeholder changelog for lvgl container artifacts. diff --git a/meta-digi-containers/containers/lvgl/configs_lxc/config_lxc_ccimx95-dvk b/meta-digi-containers/containers/lvgl/configs_lxc/config_lxc_ccimx95-dvk new file mode 100644 index 000000000..f36448943 --- /dev/null +++ b/meta-digi-containers/containers/lvgl/configs_lxc/config_lxc_ccimx95-dvk @@ -0,0 +1,32 @@ +# LXC config for LVGL on CCIMX95. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# custom prompt +lxc.environment = 'PS1=\h:\w$ ' + +# no network +lxc.net.0.type = empty + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ +lxc.console.logfile = @LXC_FOLDER@/@CONTAINER_NAME@/console.log +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/input dev/input none bind,create=dir +lxc.mount.entry = tmpfs dev/shm tmpfs rw,nosuid,nodev,mode=1777,create=dir +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/mali0 dev/mali0 none bind,create=file +lxc.mount.entry = /dev/dma_heap dev/dma_heap none bind,create=dir +lxc.mount.entry = /dev/input dev/input none bind,create=dir +lxc.mount.entry = /dev/tty dev/tty none bind,create=file +lxc.mount.entry = /dev/tty0 dev/tty0 none bind,create=file +lxc.mount.entry = /dev/tty1 dev/tty1 none bind,create=file +lxc.mount.entry = /dev/tty7 dev/tty7 none bind,create=file +lxc.mount.entry = /run/udev run/udev none bind,ro,create=dir +lxc.pty.max = 1024 +lxc.mount.entry = devpts dev/pts devpts rw,nosuid,noexec,relatime,mode=0620,ptmxmod diff --git a/meta-digi-containers/containers/lvgl/configs_lxc/config_lxc_ccmp25-dvk b/meta-digi-containers/containers/lvgl/configs_lxc/config_lxc_ccmp25-dvk new file mode 100644 index 000000000..32c66659e --- /dev/null +++ b/meta-digi-containers/containers/lvgl/configs_lxc/config_lxc_ccmp25-dvk @@ -0,0 +1,31 @@ +# LXC config for LVGL on CCMP25. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# custom prompt +lxc.environment = 'PS1=\h:\w$ ' + +# no network +lxc.net.0.type = empty + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ +lxc.console.logfile = @LXC_FOLDER@/@CONTAINER_NAME@/console.log +lxc.mount.entry = tmpfs dev/shm tmpfs rw,nosuid,nodev,mode=1777,create=dir +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/input dev/input none bind,create=dir +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/galcore dev/galcore none bind,create=file +lxc.mount.entry = /dev/input dev/input none bind,create=dir +lxc.mount.entry = /dev/tty dev/tty none bind,create=file +lxc.mount.entry = /dev/tty0 dev/tty0 none bind,create=file +lxc.mount.entry = /dev/tty1 dev/tty1 none bind,create=file +lxc.mount.entry = /dev/tty7 dev/tty7 none bind,create=file +lxc.mount.entry = /run/udev run/udev none bind,ro,create=dir +lxc.pty.max = 1024 +lxc.mount.entry = devpts dev/pts devpts rw,nosuid,noexec,relatime,mode=0620,ptmxmod diff --git a/meta-digi-containers/containers/lvgl/rootfs_files/.keep b/meta-digi-containers/containers/lvgl/rootfs_files/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/meta-digi-containers/containers/lvgl/rootfs_files/start-lvgl-demo.sh b/meta-digi-containers/containers/lvgl/rootfs_files/start-lvgl-demo.sh new file mode 100644 index 000000000..734b49749 --- /dev/null +++ b/meta-digi-containers/containers/lvgl/rootfs_files/start-lvgl-demo.sh @@ -0,0 +1,41 @@ +#!/bin/sh +export XDG_RUNTIME_DIR="/run/user/0" +export WAYLAND_DISPLAY="@WAYLAND_DISPLAY@" + +COMPATIBLE="$(tr '\0' ' ' /dev/null || true)" + +case "${COMPATIBLE}" in + *digi,ccmp15*|*digi,ccmp25*) + export WL_EGL_GBM_FENCE=0 + ;; +esac + +[ -f /etc/default/weston ] && . /etc/default/weston + +rm -rf "$XDG_RUNTIME_DIR" +mkdir -p "$XDG_RUNTIME_DIR" +chmod 0700 "$XDG_RUNTIME_DIR" +chown root:root "$XDG_RUNTIME_DIR" + +rm -rf /tmp/.X11-unix +mkdir -p /tmp/.X11-unix +chmod 1777 /tmp/.X11-unix + +rm -f /tmp/weston.log + +weston \ + --backend=drm-backend.so \ + --modules=systemd-notify.so \ + --idle-time=0 \ + --log=/tmp/weston.log \ + ${OPTARGS} & + +while :; do + if [ -S "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}" ]; then + break + fi + sleep 0.1 +done +sleep 0.1 + +exec /usr/bin/lvgl-demo diff --git a/meta-digi-containers/containers/webkit/artifact/metadata/README.txt b/meta-digi-containers/containers/webkit/artifact/metadata/README.txt new file mode 100644 index 000000000..66dfb3828 --- /dev/null +++ b/meta-digi-containers/containers/webkit/artifact/metadata/README.txt @@ -0,0 +1 @@ +Placeholder metadata for webkit container artifacts. diff --git a/meta-digi-containers/containers/webkit/artifact/metadata/changelog.txt b/meta-digi-containers/containers/webkit/artifact/metadata/changelog.txt new file mode 100644 index 000000000..a8a8e9675 --- /dev/null +++ b/meta-digi-containers/containers/webkit/artifact/metadata/changelog.txt @@ -0,0 +1 @@ +Placeholder changelog for webkit container artifacts. diff --git a/meta-digi-containers/containers/webkit/configs_lxc/config_lxc_ccimx95-dvk b/meta-digi-containers/containers/webkit/configs_lxc/config_lxc_ccimx95-dvk new file mode 100644 index 000000000..1f52d8d6b --- /dev/null +++ b/meta-digi-containers/containers/webkit/configs_lxc/config_lxc_ccimx95-dvk @@ -0,0 +1,56 @@ +# LXC config for WebKit on CCIMX95. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# use host network +lxc.net.0.type = none + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ +lxc.console.logfile = @LXC_FOLDER@/@CONTAINER_NAME@/console.log +lxc.environment = 'PS1=webkit-ccimx95:\w$ ' + +# audio +lxc.mount.entry = /dev/snd dev/snd none bind,create=dir +lxc.mount.entry = /etc/asound.conf etc/asound.conf none bind,create=file +lxc.mount.entry = /run/pulse run/pulse none bind,create=dir +lxc.environment = PULSE_SERVER=unix:/run/pulse/native + +# bluetooth +lxc.mount.entry = /run/dbus/system_bus_socket run/dbus/system_bus_socket none bind,create=file + +# python logging +lxc.mount.entry = /dev/log dev/log none bind,create=file +lxc.mount.entry = /run/systemd/journal run/systemd/journal none bind,create=dir + +# fw_printenv +lxc.mount.entry = /etc/fw_env.config etc/fw_env.config none bind,create=file +lxc.mount.entry = /dev/mmcblk0boot0 dev/mmcblk0boot0 none bind,optional,create=file +lxc.mount.entry = /dev/mmcblk0boot1 dev/mmcblk0boot1 none bind,optional,create=file + +# gpu for ccimx95 +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/galcore dev/galcore none bind,create=file +lxc.mount.entry = /dev/fb0 dev/fb0 none bind,create=file +lxc.mount.entry = /dev/input dev/input none bind,create=dir + +# tty +lxc.mount.entry = /dev/tty dev/tty none bind,create=file +lxc.mount.entry = /dev/tty0 dev/tty0 none bind,create=file +lxc.mount.entry = /dev/tty1 dev/tty1 none bind,create=file +lxc.mount.entry = /dev/tty7 dev/tty7 none bind,create=file + +# udev + pty +lxc.mount.entry = /run/udev run/udev none bind,ro,create=dir +lxc.pty.max = 1024 +lxc.mount.entry = devpts dev/pts devpts rw,nosuid,noexec,relatime,mode=0620,ptmxmode=0666,newinstance 0 0 + +# gpiochip access for webkit demo +# NEED TO BE UPDATED +lxc.mount.entry = /dev/gpiochip5 dev/gpiochip5 none bind,create=file +lxc.mount.entry = /dev/gpiochip5 dev/gpiochip5 none bind,create=file diff --git a/meta-digi-containers/containers/webkit/configs_lxc/config_lxc_ccmp25-dvk b/meta-digi-containers/containers/webkit/configs_lxc/config_lxc_ccmp25-dvk new file mode 100644 index 000000000..66a96acf9 --- /dev/null +++ b/meta-digi-containers/containers/webkit/configs_lxc/config_lxc_ccmp25-dvk @@ -0,0 +1,74 @@ +# LXC config for WebKit on CCMP25. +# Placeholders are replaced by the image recipe. +lxc.arch = @LXC_ARCH@ +lxc.rootfs.path = dir:@LXC_FOLDER@/@CONTAINER_NAME@/rootfs +lxc.uts.name = @CONTAINER_NAME@ + +lxc.mount.auto = cgroup:mixed proc:mixed +lxc.mount.entry = /sys sys none bind,create=dir +lxc.mount.entry = tmpfs run tmpfs rw,nosuid,nodev,mode=0755,create=dir + +# use host network +lxc.net.0.type = none + +lxc.init.cmd = @CONTAINER_INIT_MANAGER@ @CONTAINER_INIT_SCRIPT@ +lxc.console.logfile = @LXC_FOLDER@/@CONTAINER_NAME@/console.log +lxc.environment = 'PS1=webkit-ccmp25:\w$ ' + +# audio +lxc.mount.entry = /dev/snd dev/snd none bind,create=dir +lxc.mount.entry = /etc/asound.conf etc/asound.conf none bind,create=file +lxc.mount.entry = /run/pulse run/pulse none bind,create=dir +lxc.environment = PULSE_SERVER=unix:/run/pulse/native + +# bluetooth +lxc.mount.entry = /run/dbus/system_bus_socket run/dbus/system_bus_socket none bind,create=file + +# python logging +lxc.mount.entry = /dev/log dev/log none bind,create=file +lxc.mount.entry = /run/systemd/journal run/systemd/journal none bind,create=dir + +# fw_printenv +lxc.mount.entry = /etc/fw_env.config etc/fw_env.config none bind,create=file +lxc.mount.entry = /dev/mmcblk0boot0 dev/mmcblk0boot0 none bind,create=file +lxc.mount.entry = /dev/mmcblk0boot1 dev/mmcblk0boot1 none bind,create=file + +# gpu for ccmp25 +lxc.mount.entry = /dev/dri dev/dri none bind,create=dir +lxc.mount.entry = /dev/galcore dev/galcore none bind,create=file +lxc.mount.entry = /dev/fb0 dev/fb0 none bind,create=file +lxc.mount.entry = /dev/input dev/input none bind,create=dir + +# tty +lxc.mount.entry = /dev/tty dev/tty none bind,create=file +lxc.mount.entry = /dev/tty0 dev/tty0 none bind,create=file +lxc.mount.entry = /dev/tty1 dev/tty1 none bind,create=file +lxc.mount.entry = /dev/tty7 dev/tty7 none bind,create=file + +# udev + pty +lxc.mount.entry = /run/udev run/udev none bind,ro,create=dir +lxc.pty.max = 1024 +lxc.mount.entry = devpts dev/pts devpts rw,nosuid,noexec,relatime,mode=0620,ptmxmode=0666,newinstance 0 0 + +# gpiochip access for webkit demo +lxc.mount.entry = /dev/gpiochip5 dev/gpiochip5 none bind,create=file + +# Video nodes (camera) +lxc.mount.entry = /dev/video0 dev/video0 none bind,optional,create=file +lxc.mount.entry = /dev/video1 dev/video1 none bind,optional,create=file +lxc.mount.entry = /dev/video2 dev/video2 none bind,optional,create=file +lxc.mount.entry = /dev/video3 dev/video3 none bind,optional,create=file +lxc.mount.entry = /dev/video4 dev/video4 none bind,optional,create=file +lxc.mount.entry = /dev/video5 dev/video5 none bind,optional,create=file +lxc.mount.entry = /dev/video6 dev/video6 none bind,optional,create=file +lxc.mount.entry = /dev/media0 dev/media0 none bind,optional,create=file +lxc.mount.entry = /dev/media1 dev/media1 none bind,optional,create=file +lxc.mount.entry = /dev/media2 dev/media2 none bind,optional,create=file +lxc.mount.entry = /dev/v4l-subdev0 dev/v4l-subdev0 none bind,optional,create=file +lxc.mount.entry = /dev/v4l-subdev1 dev/v4l-subdev1 none bind,optional,create=file +lxc.mount.entry = /dev/v4l-subdev2 dev/v4l-subdev2 none bind,optional,create=file +lxc.mount.entry = /dev/v4l-subdev3 dev/v4l-subdev3 none bind,optional,create=file +lxc.mount.entry = /dev/v4l-subdev4 dev/v4l-subdev4 none bind,optional,create=file +lxc.mount.entry = /dev/v4l-subdev5 dev/v4l-subdev5 none bind,optional,create=file +lxc.mount.entry = /dev/v4l-subdev6 dev/v4l-subdev6 none bind,optional,create=file +lxc.mount.entry = /dev/v4l-subdev7 dev/v4l-subdev7 none bind,optional,create=file diff --git a/meta-digi-containers/containers/webkit/rootfs_files/start-webkit-demo.sh b/meta-digi-containers/containers/webkit/rootfs_files/start-webkit-demo.sh new file mode 100644 index 000000000..2b638c5c9 --- /dev/null +++ b/meta-digi-containers/containers/webkit/rootfs_files/start-webkit-demo.sh @@ -0,0 +1,51 @@ +#!/bin/sh +export XDG_RUNTIME_DIR="/run/user/0" +export WAYLAND_DISPLAY="@WAYLAND_DISPLAY@" + +COMPATIBLE="$(tr '\0' ' ' /dev/null || true)" + +case "${COMPATIBLE}" in + *digi,ccmp15*|*digi,ccmp25*) + export WL_EGL_GBM_FENCE=0 + ;; +esac + +[ -f /etc/default/weston ] && . /etc/default/weston + +rm -rf "$XDG_RUNTIME_DIR" +mkdir -p "$XDG_RUNTIME_DIR" +chmod 0700 "$XDG_RUNTIME_DIR" +chown root:root "$XDG_RUNTIME_DIR" + +rm -rf /tmp/.X11-unix +mkdir -p /tmp/.X11-unix +chmod 1777 /tmp/.X11-unix + +rm -f /tmp/weston.log + +weston \ + --backend=drm-backend.so \ + --modules=systemd-notify.so \ + --idle-time=0 \ + --log=/tmp/weston.log \ + ${OPTARGS} & + +while :; do + if [ -S "${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}" ]; then + break + fi + sleep 0.1 +done +sleep 0.1 + +/etc/connectcore-demo-server start + +# wait for server to be ready +until nc -w 1 localhost 9090 /dev/null 2>&1; do + sleep 0.1 +done + +/etc/connectcore-demo-example-webkit start +# Keep one foreground process alive; the container entrypoint already runs +# docker-init, so there is no need to chain a second instance here. +exec sleep infinity diff --git a/meta-digi-containers/examples/manifest-lxc.json b/meta-digi-containers/examples/manifest-lxc.json new file mode 100644 index 000000000..7dc3493eb --- /dev/null +++ b/meta-digi-containers/examples/manifest-lxc.json @@ -0,0 +1,34 @@ +{ + "name": "flutter-demo", + "friendly_name": "Flutter Demo", + "version": "1.0", + "runtime": "lxc", + "registration_defaults": { + "autostart": true, + "monitor": true, + "drm": { + "enabled": true, + "stats_sample_interval_s": 30, + "stats_list_of_metrics": [ + "uptime", + "cpu", + "mem", + "net/rx", + "net/tx", + "disk/read", + "disk/write" + ] + }, + "restart": { + "enabled": true, + "max_retries": 3, + "window": 60, + "retry_delay": 3 + } + }, + "device_types": ["ccmp25-dvk"], + "firmware_versions": "", + "build_id": "", + "description": "", + "labels": {} +} diff --git a/meta-digi-containers/examples/manifest-podman.json b/meta-digi-containers/examples/manifest-podman.json new file mode 100644 index 000000000..e5a0b68c9 --- /dev/null +++ b/meta-digi-containers/examples/manifest-podman.json @@ -0,0 +1,35 @@ +{ + "name": "flutter-demo", + "friendly_name": "Flutter Demo", + "version": "1.0", + "runtime": "podman", + "create_args": "--privileged --network none --tmpfs /dev/shm:rw,nosuid,nodev,mode=1777 --device /dev/dri --device /dev/input --device /dev/galcore --device /dev/tty --device /dev/tty0 --device /dev/tty1 --device /dev/tty7 --volume /run/udev:/run/udev:ro --tty --entrypoint '[\"/usr/bin/docker-init\",\"/start-flutter-demo.sh\"]'", + "registration_defaults": { + "autostart": true, + "monitor": true, + "drm": { + "enabled": true, + "stats_sample_interval_s": 30, + "stats_list_of_metrics": [ + "uptime", + "cpu", + "mem", + "net/rx", + "net/tx", + "disk/read", + "disk/write" + ] + }, + "restart": { + "enabled": true, + "max_retries": 3, + "window": 60, + "retry_delay": 3 + } + }, + "device_types": ["ccmp25-dvk"], + "firmware_versions": "", + "build_id": "", + "description": "", + "labels": {} +} diff --git a/meta-digi-containers/recipes-containers/cc-container-mng/cc-container-mng_git.bb b/meta-digi-containers/recipes-containers/cc-container-mng/cc-container-mng_git.bb new file mode 100644 index 000000000..1fb45faef --- /dev/null +++ b/meta-digi-containers/recipes-containers/cc-container-mng/cc-container-mng_git.bb @@ -0,0 +1,58 @@ +# Copyright (C) 2026, Digi International Inc. + +SUMMARY = "Digi ConnectCore Container Manager daemon and CLI" +DESCRIPTION = "Local daemon and CLI to manage Podman/LXC container lifecycle on ConnectCore devices." +HOMEPAGE = "https://github.com/digi-embedded/cc-container-mng" +SECTION = "base" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=b9f6fb44826f22358130c433cdf487a0" + +SRCBRANCH ?= "master" +SRCREV = "${AUTOREV}" +PV = "0.1.0+git${SRCPV}" + +CC_CONTAINER_MNG_URI_STASH = "${DIGI_MTK_GIT}/dey/cc-container-mng.git;protocol=ssh" +CC_CONTAINER_MNG_URI_GITHUB = "${DIGI_GITHUB_GIT}/cc-container-mng.git;protocol=https" +CC_CONTAINER_MNG_GIT_URI ?= "${@oe.utils.conditional('DIGI_INTERNAL_GIT', '1', '${CC_CONTAINER_MNG_URI_STASH}', '${CC_CONTAINER_MNG_URI_GITHUB}', d)}" + +SRC_URI = " \ + ${CC_CONTAINER_MNG_GIT_URI};branch=${SRCBRANCH} \ + file://cc-containerd.service \ + file://cc-containerd-shutdown.service \ +" + +S = "${WORKDIR}/git" + +inherit python_setuptools_build_meta systemd + +SYSTEMD_SERVICE:${PN} = "cc-containerd.service cc-containerd-shutdown.service" +SYSTEMD_AUTO_ENABLE ?= "enable" + +RDEPENDS:${PN} += " \ + python3-core \ + python3-asyncio \ + python3-json \ + python3-logging \ +" + +do_install:append() { + install -d ${D}${systemd_system_unitdir} + install -m 0644 ${WORKDIR}/cc-containerd.service ${D}${systemd_system_unitdir}/cc-containerd.service + install -m 0644 ${WORKDIR}/cc-containerd-shutdown.service ${D}${systemd_system_unitdir}/cc-containerd-shutdown.service + + install -d ${D}${sysconfdir} + install -m 0644 ${S}/cc-container-mng.conf ${D}${sysconfdir}/cc-container-mng.conf + + sed -i \ + -e "s|\"/opt/cc-container|\"${CC_CONTAINER_PATH}|g" \ + ${D}${sysconfdir}/cc-container-mng.conf +} + +FILES:${PN}:append = " \ + ${systemd_system_unitdir}/cc-containerd.service \ + ${systemd_system_unitdir}/cc-containerd-shutdown.service \ + ${sysconfdir}/cc-container-mng.conf \ +" + +CONFFILES:${PN} += "${sysconfdir}/cc-container-mng.conf" diff --git a/meta-digi-containers/recipes-containers/cc-container-mng/files/cc-containerd-shutdown.service b/meta-digi-containers/recipes-containers/cc-container-mng/files/cc-containerd-shutdown.service new file mode 100644 index 000000000..88964ecab --- /dev/null +++ b/meta-digi-containers/recipes-containers/cc-container-mng/files/cc-containerd-shutdown.service @@ -0,0 +1,16 @@ +[Unit] +Description=Stop managed containers during system shutdown +DefaultDependencies=no +After=cc-containerd.service network.target cccsd.service +Before=shutdown.target +Conflicts=shutdown.target + +[Service] +Type=oneshot +ExecStart=/bin/true +ExecStop=/usr/bin/cc-containerd --config-file /etc/cc-container-mng.conf --stop-managed-containers +RemainAfterExit=yes +TimeoutStopSec=30 + +[Install] +WantedBy=multi-user.target diff --git a/meta-digi-containers/recipes-containers/cc-container-mng/files/cc-containerd.service b/meta-digi-containers/recipes-containers/cc-container-mng/files/cc-containerd.service new file mode 100644 index 000000000..d2d29f5b9 --- /dev/null +++ b/meta-digi-containers/recipes-containers/cc-container-mng/files/cc-containerd.service @@ -0,0 +1,15 @@ +[Unit] +Description=Digi ConnectCore Container Manager daemon +After=network.target cccsd.service +Wants=network.target cccsd.service + +[Service] +Type=simple +ExecStart=/usr/bin/cc-containerd --config-file /etc/cc-container-mng.conf +# Stop only the daemon process; keep managed containers running. +KillMode=process +Restart=on-failure +RestartSec=2 + +[Install] +WantedBy=multi-user.target diff --git a/meta-digi-containers/recipes-containers/container-host-config/container-host-config.bbappend b/meta-digi-containers/recipes-containers/container-host-config/container-host-config.bbappend new file mode 100644 index 000000000..bf8586cb3 --- /dev/null +++ b/meta-digi-containers/recipes-containers/container-host-config/container-host-config.bbappend @@ -0,0 +1,6 @@ +do_install:append() { + if [ -f ${D}${sysconfdir}/containers/storage.conf ]; then + sed -i 's|^graphroot = ".*"|graphroot = "${CC_CONTAINER_PATH}/storage"|' \ + ${D}${sysconfdir}/containers/storage.conf + fi +} diff --git a/meta-digi-containers/recipes-containers/lxc/lxc-trimmed_git.bb b/meta-digi-containers/recipes-containers/lxc/lxc-trimmed_git.bb new file mode 100644 index 000000000..f4d8aa587 --- /dev/null +++ b/meta-digi-containers/recipes-containers/lxc/lxc-trimmed_git.bb @@ -0,0 +1,74 @@ +# Copyright (C) 2026, Digi International Inc. + +FILESEXTRAPATHS:prepend := "${COREBASE}/../meta-virtualization/recipes-containers/lxc/files:" + +require recipes-containers/lxc/lxc_git.bb + +DESCRIPTION = "Trimmed LXC runtime for dey-image-container-manager" + +FILES:${PN} += "${libdir}/lxc/rootfs" + +RDEPENDS:${PN}:remove = " \ + rsync curl gzip xz tar \ + bridge-utils dnsmasq \ + gmp libidn gnutls nettle \ + perl-module-strict perl-module-getopt-long perl-module-vars \ + perl-module-exporter perl-module-constant perl-module-overload \ + perl-module-exporter-heavy \ +" + +PACKAGECONFIG:remove = "templates systemd selinux" + +RCONFLICTS:${PN}:append = " lxc" + +SYSTEMD_PACKAGES = "" +SYSTEMD_SERVICE:${PN} = "" +SYSTEMD_SERVICE:${PN}-networking = "" + +do_install:append() { + for bin in \ + lxc-autostart \ + lxc-cgroup \ + lxc-checkconfig \ + lxc-checkpoint \ + lxc-config \ + lxc-console \ + lxc-copy \ + lxc-create \ + lxc-device \ + lxc-execute \ + lxc-freeze \ + lxc-monitor \ + lxc-snapshot \ + lxc-top \ + lxc-unfreeze \ + lxc-unshare \ + lxc-update-config \ + lxc-usernsexec \ + lxc-wait \ + ; do + rm -f ${D}${bindir}/$bin + done + + rm -f ${D}${datadir}/lxc/lxc-patch.py + rm -f ${D}${datadir}/lxc/lxc.functions + rm -f ${D}${libexecdir}/lxc/lxc-apparmor-load + rm -f ${D}${libexecdir}/lxc/lxc-containers + rm -f ${D}${libexecdir}/lxc/lxc-net + rm -f ${D}${libexecdir}/lxc/lxc-user-nic + rm -f ${D}${sbindir}/init.lxc + rm -f ${D}${sbindir}/init.lxc.static + rm -f ${D}${sysconfdir}/default/lxc + rm -f ${D}${sysconfdir}/default/volatiles/99_lxc + rm -f ${D}${sysconfdir}/init.d/lxc-containers + rm -f ${D}${sysconfdir}/lxc/default.conf + + rm -rf ${D}${datadir}/bash-completion + rm -rf ${D}${datadir}/doc + rm -rf ${D}${datadir}/lxc/config + rm -rf ${D}${datadir}/lxc/hooks + rm -rf ${D}${libexecdir}/lxc/hooks + rm -rf ${D}${sysconfdir}/dnsmasq.d + + rmdir ${D}${sbindir} 2>/dev/null || true +} diff --git a/meta-digi-containers/recipes-containers/podman/podman-trimmed_git.bb b/meta-digi-containers/recipes-containers/podman/podman-trimmed_git.bb new file mode 100644 index 000000000..2333383b2 --- /dev/null +++ b/meta-digi-containers/recipes-containers/podman/podman-trimmed_git.bb @@ -0,0 +1,47 @@ +# Copyright (C) 2026, Digi International Inc. + +FILESEXTRAPATHS:prepend := "${COREBASE}/../meta-virtualization/recipes-containers/podman/podman:" + +require recipes-containers/podman/podman_git.bb + +DESCRIPTION = "Trimmed Podman runtime for dey-image-container-manager" + +# Enable Podman bridge networking with netavark +VIRTUAL-RUNTIME_container_networking = "netavark" + +RDEPENDS:${PN}:append = " \ + netavark \ + aardvark-dns \ + iptables-modules \ +" + +RDEPENDS:${PN}:remove = " \ + libdevmapper \ +" + +PACKAGECONFIG:remove = "rootless docker" + +RCONFLICTS:${PN}:append = " podman" + +do_install:append() { + rm -f ${D}${bindir}/docker + rm -f ${D}${bindir}/docker-runc + rm -f ${D}${bindir}/podman-remote + rm -f ${D}${bindir}/podmansh + rm -f ${D}${libexecdir}/podman/quadlet + rm -f ${D}${libexecdir}/podman/rootlessport + rm -f ${D}${sysconfdir}/profile.d/podman-docker.csh + rm -f ${D}${sysconfdir}/profile.d/podman-docker.sh + rm -rf ${D}${systemd_system_unitdir} + rm -rf ${D}${systemd_user_unitdir} + rm -rf ${D}${nonarch_libdir} + rm -rf ${D}${datadir}/user-tmpfiles.d +} + +SYSTEMD_SERVICE:${PN} = "" + +FILES:${PN}:remove = " \ + ${systemd_system_unitdir} \ + ${systemd_user_unitdir} \ + ${nonarch_libdir} \ +" diff --git a/meta-digi-containers/recipes-containers/podman/podman_git.bbappend b/meta-digi-containers/recipes-containers/podman/podman_git.bbappend new file mode 100644 index 000000000..d94b84097 --- /dev/null +++ b/meta-digi-containers/recipes-containers/podman/podman_git.bbappend @@ -0,0 +1,11 @@ +# Copyright (C) 2026, Digi International Inc. + +PODMAN_NETWORK_BACKEND ?= "${@('netavark' if d.getVar('VIRTUAL-RUNTIME_container_networking') == 'netavark' else 'cni')}" + +do_install:append() { + install -d ${D}${sysconfdir}/containers + cat > ${D}${sysconfdir}/containers/containers.conf </dev/null)" + + if [ "${runtime}" = "podman" ]; then + create_args="$(compose_podman_create_args "${create_args}")" + fi + + if [ -z "${primary_device_type}" ]; then + bbfatal "Unable to determine primary device type from CONTAINER_DEVICE_TYPES_JSON=${CONTAINER_DEVICE_TYPES_JSON}" + fi + + build_id="${CONTAINER_ARTIFACT_BUILD_ID}" + if [ -z "${build_id}" ]; then + if command -v git >/dev/null 2>&1; then + build_id="$(git -C "${META_DIGI_REPO_DIR}" rev-parse HEAD 2>/dev/null || true)" + fi + fi + + write_input_manifest "${runtime}" "${manifest_path}" "${create_args}" "${build_id}" + + if [ -n "${template_dir}" ] && [ ! -d "${template_dir}" ]; then + bbfatal "CONTAINER_ARTIFACT_TEMPLATE_DIR does not exist: ${template_dir}" + fi + if [ -f "${template_dir}/metadata/README.txt" ]; then + readme_arg="--readme ${template_dir}/metadata/README.txt" + fi + if [ -f "${template_dir}/metadata/changelog.txt" ]; then + changelog_arg="--changelog ${template_dir}/metadata/changelog.txt" + fi + + generated_output="$(python3 "${generator_script}" \ + --manifest "${manifest_path}" \ + --payload "${src_payload}" \ + --output-dir "${DEPLOY_DIR_IMAGE}" \ + ${readme_arg} \ + ${changelog_arg})" + + generated_output="$(printf '%s' "${generated_output}" | tail -n 1)" + if [ ! -s "${generated_output}" ]; then + bbfatal "Container artifact bundle not generated correctly: ${generated_output}" + fi + + bbnote "Container ${runtime} artifact ready: ${generated_output}" + } + + if [ ! -f "${generator_script}" ]; then + bbfatal "Expected DCP generator script not found: ${generator_script}" + fi + + create_artifact_bundle "lxc" "${lxc_bundle}" "" + create_artifact_bundle "podman" "${podman_archive}" "${CONTAINER_CREATE_ARGS_PODMAN}" + + bbnote "Removing intermediate container artifacts from this build..." + rm -f "${lxc_bundle}" "${podman_archive}" + rm -f "${image_prefix}.tar.xz" "${image_prefix}.rootfs-oci.tar" "${image_prefix}.rootfs-oci-dir.tar" + rm -rf "${image_prefix}.rootfs-oci" +} + +addtask image_container_artifacts after do_image_lxc_bundle do_image_podman_archive before do_build diff --git a/meta-digi-containers/recipes-core/images/dey-image-container-fragments.inc b/meta-digi-containers/recipes-core/images/dey-image-container-fragments.inc new file mode 100644 index 000000000..dc9a4d844 --- /dev/null +++ b/meta-digi-containers/recipes-core/images/dey-image-container-fragments.inc @@ -0,0 +1,57 @@ +# +# Copyright (C) 2026, Digi International Inc. +# +######################## +# Rootfs postprocess +######################## +ROOTFS_POSTPROCESS_COMMAND += "apply_container_rootfs_overlays; " +apply_container_rootfs_overlays() { + overlay_dirs="${CONTAINER_ROOTFS_OVERLAY_DIRS}" + overlay_tarballs="${CONTAINER_ROOTFS_OVERLAY_TARBALLS}" + default_overlay_dir="${CONTAINER_DEFAULT_ROOTFS_DIR}" + + if [ -z "${overlay_dirs}" ] && [ -d "${default_overlay_dir}" ]; then + overlay_dirs="${default_overlay_dir}" + bbnote "Using default profile rootfs overlay: ${default_overlay_dir}" + fi + + for overlay_dir in ${overlay_dirs}; do + if [ ! -d "${overlay_dir}" ]; then + bbfatal "CONTAINER_ROOTFS_OVERLAY_DIRS entry does not exist or is not a directory: ${overlay_dir}" + fi + bbnote "Applying rootfs overlay directory: ${overlay_dir}" + ( + cd "${overlay_dir}" || exit 1 + tar -cf - --exclude='.keep' --exclude='*/.keep' . + ) | tar -xf - -C "${IMAGE_ROOTFS}" + + # Ensure copied shell scripts are executable inside the container rootfs. + ( + cd "${overlay_dir}" || exit 1 + find . -type f -name '*.sh' + ) | while IFS= read -r relpath; do + relpath="${relpath#./}" + chmod 0755 "${IMAGE_ROOTFS}/${relpath}" + done + done + + for overlay_tarball in ${overlay_tarballs}; do + if [ ! -f "${overlay_tarball}" ]; then + bbfatal "CONTAINER_ROOTFS_OVERLAY_TARBALLS entry does not exist: ${overlay_tarball}" + fi + bbnote "Extracting rootfs overlay tarball: ${overlay_tarball}" + tar -xzf "${overlay_tarball}" -C "${IMAGE_ROOTFS}" + done +} + +ROOTFS_POSTPROCESS_COMMAND += "apply_container_rootfs_runtime_defaults; " +apply_container_rootfs_runtime_defaults() { + if [ -n "${CONTAINER_INIT_SCRIPT}" ] && \ + [ -f "${IMAGE_ROOTFS}${CONTAINER_INIT_SCRIPT}" ] && \ + grep -q "@WAYLAND_DISPLAY@" "${IMAGE_ROOTFS}${CONTAINER_INIT_SCRIPT}"; then + sed -i \ + -e "s|@WAYLAND_DISPLAY@|${WAYLAND_DISPLAY}|g" \ + "${IMAGE_ROOTFS}${CONTAINER_INIT_SCRIPT}" + bbnote "Applied WAYLAND_DISPLAY='${WAYLAND_DISPLAY}' to ${IMAGE_ROOTFS}${CONTAINER_INIT_SCRIPT}" + fi +} \ No newline at end of file diff --git a/meta-digi-containers/recipes-core/images/dey-image-container-lxc.inc b/meta-digi-containers/recipes-core/images/dey-image-container-lxc.inc new file mode 100644 index 000000000..5228163be --- /dev/null +++ b/meta-digi-containers/recipes-core/images/dey-image-container-lxc.inc @@ -0,0 +1,53 @@ +# +# Copyright (C) 2026, Digi International Inc. +# +######################## +# LXC artifact +######################## +do_image_lxc_bundle() { + rootfs_tar="${DEPLOY_DIR_IMAGE}/${IMAGE_LINK_NAME}.tar.xz" + if [ ! -f "${rootfs_tar}" ]; then + rootfs_tar="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.tar.xz" + fi + lxc_tar="${DEPLOY_DIR_IMAGE}/${LXC_OUTPUT_NAME}" + mkdir -p "${T}" + export TMPDIR="${T}" + workdir="$(mktemp -d "${T}/dey-image-container-lxc.XXXXXX")" + cleanup_workdir() { + rm -rf "${workdir}" + } + trap cleanup_workdir EXIT HUP INT TERM + + if [ ! -f "${rootfs_tar}" ]; then + bbfatal "Expected rootfs tarball not found: ${rootfs_tar}" + fi + + lxc_dir="${workdir}/${CONTAINER_NAME}" + mkdir -p "${lxc_dir}/rootfs" + + bbnote "Extracting rootfs for LXC bundle..." + tar -xf "${rootfs_tar}" -C "${lxc_dir}/rootfs" + + config_in="${LXC_CONFIG_FILE}" + if [ ! -f "${config_in}" ]; then + bbfatal "LXC config file not found for CONTAINER_TYPE='${CONTAINER_TYPE}' and MACHINE='${MACHINE}': ${config_in}" + fi + + sed \ + -e "s|@LXC_ARCH@|${TARGET_ARCH}|g" \ + -e "s|@LXC_FOLDER@|${LXC_FOLDER}|g" \ + -e "s|@CONTAINER_NAME@|${CONTAINER_NAME}|g" \ + -e "s|@CONTAINER_INIT_MANAGER@|${CONTAINER_INIT_MANAGER}|g" \ + -e "s|@CONTAINER_INIT_SCRIPT@|${CONTAINER_INIT_SCRIPT}|g" \ + "${config_in}" > "${lxc_dir}/config" + + tar -C "${workdir}" -czf "${lxc_tar}" "${CONTAINER_NAME}" + + if [ ! -s "${lxc_tar}" ]; then + bbfatal "LXC bundle was not generated correctly: ${lxc_tar}" + fi + + bbnote "LXC bundle ready: ${lxc_tar}" +} + +addtask image_lxc_bundle after do_image_complete before do_build diff --git a/meta-digi-containers/recipes-core/images/dey-image-container-manager.bb b/meta-digi-containers/recipes-core/images/dey-image-container-manager.bb new file mode 100644 index 000000000..682df75fd --- /dev/null +++ b/meta-digi-containers/recipes-core/images/dey-image-container-manager.bb @@ -0,0 +1,102 @@ +# +# Copyright (C) 2026, Digi International Inc. +# +DESCRIPTION = "Minimal DEY container manager image" + +LICENSE = "MIT" + +IMAGE_LINGUAS = "" + +inherit image +inherit dey-image +inherit features_check + +REQUIRED_DISTRO_FEATURES = "virtualization" + +# Keep machine recommendations in sync with the BSP. +CONTAINER_MANAGER_MACHINE_EXTRA_RRECOMMENDS_EXCLUDE = " \ + ${MACHINE_FIRMWARE} \ + ${UDEV_EXTRA_RULES} \ +" + +# Remove kernel-image-* from the list, as adding them +# explicitly breaks STM rootfs generation. +CONTAINER_MANAGER_MACHINE_EXTRA_RRECOMMENDS = "${@' '.join( \ + dict.fromkeys( \ + pkg for pkg in d.getVar('MACHINE_EXTRA_RRECOMMENDS').split() \ + if not pkg.startswith('kernel-image-') \ + and pkg not in d.getVar( \ + 'CONTAINER_MANAGER_MACHINE_EXTRA_RRECOMMENDS_EXCLUDE').split()))}" + +# Device core support +CORE_ESSENTIALS = " \ + base-files \ + base-passwd \ + bluez5-init \ + busybox \ + ca-certificates \ + cryptodev-module \ + firmwared \ + libubootenv-bin \ + udev \ + ${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \ + ${MACHINE_EXTRA_RDEPENDS} \ + ${CONTAINER_MANAGER_MACHINE_EXTRA_RRECOMMENDS} \ + ${MACHINE_FIRMWARE} \ + ${UDEV_EXTRA_RULES} \ + ${VIRTUAL-RUNTIME_init_manager} \ +" + +# Tools and libraries +CORE_TOOLS = " \ + bluez5 \ + cccs-daemon \ + curl \ + dropbear \ + dualboot \ + ethtool \ + init-ifupdown \ + iproute2 \ + iw \ + libdigiapix \ + libdigiapix-python3 \ + libgpiod \ + libgpiod-tools \ + ncurses-terminfo-base \ + netbase \ + networkmanager \ + networkmanager-nmcli \ + networkmanager-wifi \ + os-release \ + openssl \ + packagegroup-dey-audio \ + sysinfo \ + vsftpd \ +" + +# Tools to manage containers +CONTAINER_MANAGEMENT = " \ + cc-container-mng \ + lxc-trimmed \ + podman-trimmed \ +" + +# Keep the systemd/udev hotplug support packages that are otherwise +# dropped when recommendations are disabled. +HOTPLUG_SUPPORT = " \ + systemd-conf \ + systemd-extra-utils \ + udev-hwdb \ +" + +NO_RECOMMENDATIONS = "1" + +IMAGE_INSTALL = " \ + ${CORE_ESSENTIALS} \ + ${CORE_TOOLS} \ + ${CONTAINER_MANAGEMENT} \ + ${HOTPLUG_SUPPORT} \ +" + +# GPU firmware for ccimx95, it needs to be located in the image +IMAGE_INSTALL:append:ccimx95-dvk = " mali-imx" diff --git a/meta-digi-containers/recipes-core/images/dey-image-container-podman.inc b/meta-digi-containers/recipes-core/images/dey-image-container-podman.inc new file mode 100644 index 000000000..a4766dcd1 --- /dev/null +++ b/meta-digi-containers/recipes-core/images/dey-image-container-podman.inc @@ -0,0 +1,36 @@ +# +# Copyright (C) 2026, Digi International Inc. +# +######################## +# Podman artifact +######################## +do_image_podman_archive[depends] += "skopeo-native:do_populate_sysroot" +do_image_podman_archive() { + src_tar="${DEPLOY_DIR_IMAGE}/${IMAGE_BASENAME}-${OCI_IMAGE_TAG_SAFE}-oci.tar" + if [ ! -f "${src_tar}" ]; then + src_tar="${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs-oci.tar" + fi + dst_tar="${DEPLOY_DIR_IMAGE}/${PODMAN_OUTPUT_NAME}" + image_ref="${CONTAINER_NAME}:${PODMAN_TAG}" + + if [ ! -f "${src_tar}" ]; then + bbfatal "Expected OCI tarball not found: ${src_tar}" + fi + + # skopeo docker-archive destination must not already exist. + rm -f "${dst_tar}" + + bbnote "Converting OCI archive to docker-archive (${image_ref})..." + PATH="${STAGING_BINDIR_NATIVE}:${PATH}" \ + skopeo --insecure-policy copy \ + "oci-archive:${src_tar}" \ + "docker-archive:${dst_tar}:${image_ref}" + + if [ ! -s "${dst_tar}" ]; then + bbfatal "Podman archive not generated correctly: ${dst_tar}" + fi + + bbnote "Podman archive ready: ${dst_tar} (${image_ref})" +} + +addtask image_podman_archive after do_image_complete before do_build diff --git a/meta-digi-containers/recipes-core/images/dey-image-container.bb b/meta-digi-containers/recipes-core/images/dey-image-container.bb new file mode 100644 index 000000000..1b83e59cd --- /dev/null +++ b/meta-digi-containers/recipes-core/images/dey-image-container.bb @@ -0,0 +1,344 @@ +# Copyright (C) 2026, Digi International Inc. + +SUMMARY = "Minimal LXC container image" +LICENSE = "MIT" + +require dey-image-container-artifact.inc +require dey-image-container-fragments.inc +require dey-image-container-lxc.inc +require dey-image-container-podman.inc + +inherit core-image image-container image-oci + +######################## +# Image base settings +######################## +IMAGE_FEATURES = "" +IMAGE_FSTYPES = "tar.xz oci" +IMAGE_LINGUAS = "en-us" +NO_RECOMMENDATIONS = "1" + +######################## +# Container profile +######################## +# Select profile in local.conf (e.g. CONTAINER_TYPE = "lvgl", "webkit" or "flutter"). +CONTAINER_TYPE ?= "base" +OVERRIDES:append = ":container-${CONTAINER_TYPE}" + +######################## +# Container runtime knobs +######################## +CONTAINER_INIT_MANAGER ?= "/usr/bin/docker-init" +CONTAINER_INIT_SCRIPT ?= "sleep infinity" +CONTAINER_NAME ?= "${CONTAINER_TYPE}-container" +CONTAINER_PROFILE_DIR ?= "${CONTAINERS_DIR}/${CONTAINER_TYPE}" +CONTAINER_ROOTFS_OVERLAY_DIRS ?= "" +CONTAINER_DEFAULT_ROOTFS_DIR ?= "${CONTAINER_PROFILE_DIR}/rootfs_files" +CONTAINER_ROOTFS_OVERLAY_TARBALLS ?= "" + +######################## +# Podman output knobs +######################## +PODMAN_TAG ?= "${CONTAINER_NAME}-tag" +PODMAN_OUTPUT_NAME ?= "${CONTAINER_NAME}_podman_${MACHINE}.tar" + +######################## +# LXC output knobs +######################## +CONTAINERS_DIR ?= "${THISDIR}/../../containers" +LXC_FOLDER ?= "/var/lib/lxc" +LXC_OUTPUT_NAME ?= "${CONTAINER_NAME}_lxc_${MACHINE}.tar.gz" +LXC_CONFIG_DIR ?= "${CONTAINER_PROFILE_DIR}/configs_lxc" +LXC_CONFIG_FILE ?= "${LXC_CONFIG_DIR}/config_lxc_${MACHINE}" + +######################## +# Artifact layout knobs +######################## +CONTAINER_ARTIFACT_TEMPLATE_DIR ?= "" +CONTAINER_DEFAULT_ARTIFACT_TEMPLATE_DIR ?= "${CONTAINER_PROFILE_DIR}/artifact" +META_DIGI_REPO_DIR ?= "${THISDIR}/../../.." +CONTAINER_FRIENDLY_NAME ?= "${CONTAINER_NAME}" +CONTAINER_ARTIFACT_VERSION ?= "${PV}" +CONTAINER_CREATE_ARGS ?= "" +CONTAINER_CREATE_ARGS_PODMAN ?= "${CONTAINER_CREATE_ARGS}" +CONTAINER_FIRMWARE_VERSIONS ?= "" +CONTAINER_DEVICE_TYPES_JSON ?= "[\"${MACHINE}\"]" +CONTAINER_ARTIFACT_DESCRIPTION ?= "" +CONTAINER_ARTIFACT_BUILD_ID ?= "" +CONTAINER_ARTIFACT_LABELS_JSON ?= "{}" +# monitor and (auto/re)start configuration +CONTAINER_AUTOSTART ?= "true" +CONTAINER_MONITOR ?= "true" +CONTAINER_DRM_ENABLED ?= "true" +CONTAINER_DRM_STATS_SAMPLE_INTERVAL ?= "30" +CONTAINER_DRM_STATS_LIST_OF_METRICS ?= "[\"uptime\", \"cpu\", \"mem\", \"net/rx\", \"net/tx\", \"disk/read\", \"disk/write\"]" +CONTAINER_RESTART_ENABLED ?= "true" +CONTAINER_RESTART_MAX_RETRIES ?= "3" +CONTAINER_RESTART_WINDOW ?= "60" +CONTAINER_RESTART_RETRY_DELAY ?= "3" + +######################## +# Container image behavior +######################## +VIRTUAL-RUNTIME_init_manager = "" +VIRTUAL-RUNTIME_initscripts = "" +IMAGE_CONTAINER_NO_DUMMY = "1" + +######################## +# OCI metadata mapping +######################## +OCI_IMAGE_TAG ?= "${PODMAN_TAG}" +OCI_IMAGE_TAG_SAFE = "${@d.getVar('OCI_IMAGE_TAG').replace(':', '_')}" +OCI_IMAGE_ENTRYPOINT = "${CONTAINER_INIT_MANAGER}" +OCI_IMAGE_ENTRYPOINT_ARGS = "${CONTAINER_INIT_SCRIPT}" + +######################## +# Base packages +######################## +IMAGE_INSTALL = " \ + base-files \ + base-passwd \ + busybox \ + netbase \ + tini \ +" + +######################## +# Container type customizations LVGL +######################## +CONTAINER_INIT_SCRIPT:container-lvgl = "/start-lvgl-demo.sh" +CONTAINER_FRIENDLY_NAME:container-lvgl = "LVGL Demo" +CONTAINER_CREATE_ARGS_PODMAN:container-lvgl:ccmp25 = " \ + --privileged \ + --network none \ + --tmpfs /dev/shm:rw,nosuid,nodev,mode=1777 \ + --device /dev/dri \ + --device /dev/input \ + --device /dev/galcore \ + --device /dev/tty \ + --device /dev/tty0 \ + --device /dev/tty1 \ + --device /dev/tty7 \ + --volume /run/udev:/run/udev:ro \ + --tty \ +" +CONTAINER_CREATE_ARGS_PODMAN:container-lvgl:ccimx95 = " \ + --privileged \ + --network none \ + --tmpfs /dev/shm:rw,nosuid,nodev,mode=1777 \ + --device /dev/dri \ + --device /dev/input \ + --device /dev/mali0 \ + --device /dev/dma_heap \ + --device /dev/tty \ + --device /dev/tty0 \ + --device /dev/tty1 \ + --device /dev/tty7 \ + --volume /run/udev:/run/udev:ro \ + --tty \ +" +IMAGE_INSTALL:append:container-lvgl = " \ + lvgl-demo \ + weston \ + weston-init \ +" + +DISTRO_FEATURES:remove:container-lvgl = " wayland" + +######################## +# Container type customizations webkit +######################## +CONTAINER_INIT_SCRIPT:container-webkit = "/start-webkit-demo.sh" +CONTAINER_FRIENDLY_NAME:container-webkit = "WebKit Demo" +CONTAINER_CREATE_ARGS_PODMAN:container-webkit:ccmp25 = " \ + --privileged \ + --network host \ + --tmpfs /dev/shm:rw,nosuid,nodev,mode=1777 \ + --device /dev/dri \ + --device /dev/input \ + --device /dev/galcore \ + --device /dev/fb0 \ + --device /dev/snd \ + --device /dev/tty \ + --device /dev/tty0 \ + --device /dev/tty1 \ + --device /dev/tty7 \ + --device /dev/gpiochip5 \ + --device /dev/mmcblk0boot0 \ + --device /dev/mmcblk0boot1 \ + --device /dev/mailbox0 \ + --device /dev/video0 \ + --device /dev/video1 \ + --device /dev/video2 \ + --device /dev/video3 \ + --device /dev/video4 \ + --device /dev/video5 \ + --device /dev/video6 \ + --device /dev/media0 \ + --device /dev/media1 \ + --device /dev/media2 \ + --device /dev/v4l-subdev0 \ + --device /dev/v4l-subdev1 \ + --device /dev/v4l-subdev2 \ + --device /dev/v4l-subdev3 \ + --device /dev/v4l-subdev4 \ + --device /dev/v4l-subdev5 \ + --device /dev/v4l-subdev6 \ + --device /dev/v4l-subdev7 \ + --volume /run/udev:/run/udev:ro \ + --volume /etc/asound.conf:/etc/asound.conf:ro \ + --volume /run/pulse:/run/pulse \ + --volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket \ + --volume /dev/log:/dev/log \ + --volume /run/systemd/journal:/run/systemd/journal \ + --volume /etc/fw_env.config:/etc/fw_env.config:ro \ + --env PULSE_SERVER=unix:/run/pulse/native \ + --tty \ +" +IMAGE_INSTALL:append:container-webkit = " \ + adwaita-icon-theme-symbolic \ + alsa-utils \ + bluez5 \ + connectcore-demo-example \ + dbus \ + fontconfig-utils \ + hicolor-icon-theme \ + libdrm \ + liberation-fonts \ + libgpiod-tools \ + libinput \ + libubootenv-bin \ + networkmanager-nmcli \ + packagegroup-dey-gstreamer \ + packagegroup-dey-webkit \ + packagegroup-core-weston \ + pulseaudio-server \ + python3-dbus \ + ttf-dejavu-sans \ + ttf-dejavu-sans-mono \ + ttf-dejavu-serif \ + wayland \ + wayland-protocols \ + weston \ + weston-init \ +" + +IMAGE_INSTALL:append:container-webkit:ccmp25 = " \ + gcnano-userland-multi-binary-stm32mp \ + libgles1-gcnano \ + libopenvg-gcnano \ + libvulkan-driver-gcnano \ + packagegroup-dey-x-linux-ai \ +" + +######################## +# Container type customizations chromium +######################## +CONTAINER_INIT_SCRIPT:container-chromium = "/start-chromium-demo.sh" +CONTAINER_CREATE_ARGS_PODMAN:container-chromium = " \ + --privileged \ + --network host \ + --tmpfs /dev/shm:rw,nosuid,nodev,mode=1777 \ + --volume /etc/resolv.conf:/etc/resolv.conf:ro \ + --device /dev/dri \ + --device /dev/input \ + --device /dev/mali0 \ + --device /dev/dma_heap \ + --device /dev/fb0 \ + --device /dev/snd \ + --device /dev/tty \ + --device /dev/tty0 \ + --device /dev/tty1 \ + --device /dev/tty7 \ + --device /dev/gpiochip5 \ + --device /dev/mmcblk0boot0 \ + --device /dev/mmcblk0boot1 \ + --device /dev/mailbox0 \ + --device /dev/video0 \ + --device /dev/video1 \ + --device /dev/video2 \ + --device /dev/video3 \ + --device /dev/video4 \ + --device /dev/media0 \ + --volume /run/udev:/run/udev:ro \ + --volume /etc/asound.conf:/etc/asound.conf:ro \ + --volume /run/pulse:/run/pulse \ + --volume /run/dbus/system_bus_socket:/run/dbus/system_bus_socket \ + --volume /dev/log:/dev/log \ + --volume /run/systemd/journal:/run/systemd/journal \ + --volume /etc/fw_env.config:/etc/fw_env.config:ro \ + --env PULSE_SERVER=unix:/run/pulse/native \ + --tty \ +" +IMAGE_INSTALL:append:container-chromium = " \ + adwaita-icon-theme-symbolic \ + alsa-utils \ + bluez5 \ + connectcore-demo-example \ + dbus \ + fontconfig-utils \ + hicolor-icon-theme \ + libdrm \ + liberation-fonts \ + libgpiod-tools \ + libinput \ + libubootenv-bin \ + networkmanager-nmcli \ + packagegroup-dey-gstreamer \ + packagegroup-core-weston \ + packagegroup-dey-chromium \ + pulseaudio-server \ + python3-dbus \ + qtvirtualkeyboard \ + ttf-dejavu-sans \ + ttf-dejavu-sans-mono \ + ttf-dejavu-serif \ + wayland \ + wayland-protocols \ + weston \ + weston-init \ +" + +######################## +# Container type customizations flutter +######################## +CONTAINER_INIT_SCRIPT:container-flutter = "/start-flutter-demo.sh" +CONTAINER_FRIENDLY_NAME:container-flutter = "Flutter Demo" +CONTAINER_CREATE_ARGS_PODMAN:container-flutter:ccmp25 = " \ + --privileged \ + --network none \ + --tmpfs /dev/shm:rw,nosuid,nodev,mode=1777 \ + --device /dev/dri \ + --device /dev/input \ + --device /dev/galcore \ + --device /dev/tty \ + --device /dev/tty0 \ + --device /dev/tty1 \ + --device /dev/tty7 \ + --volume /run/udev:/run/udev:ro \ + --tty \ +" +CONTAINER_CREATE_ARGS_PODMAN:container-flutter:ccimx95 = " \ + --privileged \ + --network none \ + --tmpfs /dev/shm:rw,nosuid,nodev,mode=1777 \ + --device /dev/dri \ + --device /dev/input \ + --device /dev/mali0 \ + --device /dev/dma_heap \ + --device /dev/tty \ + --device /dev/tty0 \ + --device /dev/tty1 \ + --device /dev/tty7 \ + --volume /run/udev:/run/udev:ro \ + --tty \ +" +IMAGE_INSTALL:append:container-flutter = " \ + liberation-fonts \ + packagegroup-dey-flutter \ +" +IMAGE_INSTALL:append:container-flutter:ccmp25 = " \ + gcnano-userland-multi-binary-stm32mp \ + libgles2-gcnano \ +" +DISTRO_FEATURES:remove:container-flutter = " wayland" diff --git a/meta-digi-containers/scripts/generate-dcp.py b/meta-digi-containers/scripts/generate-dcp.py new file mode 100755 index 000000000..4868db40d --- /dev/null +++ b/meta-digi-containers/scripts/generate-dcp.py @@ -0,0 +1,471 @@ +#!/usr/bin/env python3 +# +# Copyright (C) 2026, Digi International Inc. +# +from __future__ import annotations + +import argparse +import hashlib +import json +from datetime import datetime, timezone +import os +from pathlib import Path +import shutil +import sys +import tarfile +import tempfile + +BASE36_ALPHABET = "0123456789abcdefghijklmnopqrstuvwxyz" +SUPPORTED_STATS_METRICS = ( + "uptime", + "cpu", + "mem", + "net/rx", + "net/tx", + "disk/read", + "disk/write", +) +SUPPORTED_STATS_METRICS_SET = set(SUPPORTED_STATS_METRICS) + + +def fail(message: str) -> "NoReturn": + raise SystemExit(f"error: {message}") + + +def to_base36(value: int) -> str: + if value < 0: + fail("cannot convert negative values to base36") + if value == 0: + return "0" + result: list[str] = [] + while value: + value, remainder = divmod(value, 36) + result.append(BASE36_ALPHABET[remainder]) + return "".join(reversed(result)) + + +def format_created_at(timestamp: datetime) -> str: + return timestamp.astimezone(timezone.utc).isoformat(timespec="milliseconds").replace("+00:00", "Z") + + +def build_generated_package_id(base_name: str, *, created_at_ms: int) -> str: + return f"{base_name}-{to_base36(created_at_ms)}" + + +def load_manifest(path: Path) -> dict: + try: + data = json.loads(path.read_text(encoding="utf-8")) + except FileNotFoundError: + fail(f"manifest file not found: {path}") + except json.JSONDecodeError as exc: + fail(f"invalid manifest JSON: {exc}") + except OSError as exc: + fail(f"cannot read manifest file {path}: {exc}") + if not isinstance(data, dict): + fail("manifest must be a JSON object") + return data + + +def validate_bool(container: dict, key: str, *, path: str) -> bool: + value = container.get(key) + if not isinstance(value, bool): + fail(f"invalid manifest: {path}.{key} must be boolean") + return value + + +def validate_int(container: dict, key: str, *, path: str, minimum: int) -> int: + value = container.get(key) + if isinstance(value, bool) or not isinstance(value, int): + fail(f"invalid manifest: {path}.{key} must be integer") + if value < minimum: + fail(f"invalid manifest: {path}.{key} must be >= {minimum}") + return value + + +def validate_string(container: dict, key: str, *, path: str, required: bool = True) -> str: + value = container.get(key) + if value is None and not required: + return "" + if not isinstance(value, str) or not value.strip(): + fail(f"invalid manifest: {path}.{key} must be a non-empty string") + return value.strip() + + +def validate_device_types(value: object) -> list[str]: + if not isinstance(value, list) or not value: + fail("invalid manifest: device_types must be a non-empty list") + result: list[str] = [] + for item in value: + if not isinstance(item, str) or not item.strip(): + fail("invalid manifest: device_types entries must be non-empty strings") + result.append(item.strip()) + return result + + +def validate_labels(value: object) -> dict: + if value is None: + return {} + if not isinstance(value, dict): + fail("invalid manifest: labels must be a JSON object") + return value + + +def validate_string_list(value: object, *, path: str, allowed: set[str]) -> list[str]: + if value is None: + return [] + if not isinstance(value, list): + fail(f"invalid manifest: {path} must be an array") + result: list[str] = [] + seen: set[str] = set() + for item in value: + if not isinstance(item, str) or not item.strip(): + fail(f"invalid manifest: {path} entries must be non-empty strings") + metric = item.strip() + if metric not in allowed: + fail(f"invalid manifest: {path} contains unsupported metric {metric}") + if metric in seen: + continue + seen.add(metric) + result.append(metric) + if "all" in result and len(result) > 1: + fail(f"invalid manifest: {path} cannot combine all with specific metrics") + return result + + +def normalize_drm_stats_metrics(metrics: list[str]) -> list[str]: + if "all" in metrics: + return list(SUPPORTED_STATS_METRICS) + return metrics + + +def validate_manifest(data: dict) -> dict: + package_id = data.get("package_id") + if package_id is not None: + if not isinstance(package_id, str) or not package_id.strip(): + fail("invalid manifest: package_id must be a non-empty string") + package_id = package_id.strip() + version = validate_string(data, "version", path="manifest") + runtime = validate_string(data, "runtime", path="manifest") + if runtime not in {"lxc", "podman"}: + fail("invalid manifest: runtime must be one of: lxc, podman") + device_types = validate_device_types(data.get("device_types")) + + registration_defaults = data.get("registration_defaults") + if not isinstance(registration_defaults, dict): + fail("invalid manifest: registration_defaults must be an object") + restart = registration_defaults.get("restart") + if not isinstance(restart, dict): + fail("invalid manifest: registration_defaults.restart must be an object") + drm = registration_defaults.get("drm", {}) + if not isinstance(drm, dict): + fail("invalid manifest: registration_defaults.drm must be an object") + + create_args = data.get("create_args") + if runtime == "podman": + if not isinstance(create_args, str) or not create_args.strip(): + fail("invalid manifest: create_args is required for podman") + create_args = create_args.strip() + elif create_args is not None: + fail("invalid manifest: create_args is not allowed for lxc") + + firmware_versions = data.get("firmware_versions", "") + if firmware_versions is not None and not isinstance(firmware_versions, str): + fail("invalid manifest: firmware_versions must be a string") + + build_id = data.get("build_id", "") + if build_id is not None and not isinstance(build_id, str): + fail("invalid manifest: build_id must be a string") + + description = data.get("description", "") + if description is not None and not isinstance(description, str): + fail("invalid manifest: description must be a string") + name = validate_string(data, "name", path="manifest") + friendly_name = data.get("friendly_name") + if friendly_name is not None: + if not isinstance(friendly_name, str) or not friendly_name.strip(): + fail("invalid manifest: friendly_name must be a non-empty string") + friendly_name = friendly_name.strip() + + validated = { + "package_id": package_id, + "name": name, + "friendly_name": friendly_name, + "version": version, + "runtime": runtime, + "create_args": create_args, + "registration_defaults": { + "autostart": validate_bool(registration_defaults, "autostart", path="registration_defaults"), + "monitor": validate_bool(registration_defaults, "monitor", path="registration_defaults"), + "drm": { + "enabled": validate_bool(drm, "enabled", path="registration_defaults.drm"), + "stats_sample_interval_s": validate_int( + drm, + "stats_sample_interval_s", + path="registration_defaults.drm", + minimum=1, + ), + "stats_list_of_metrics": validate_string_list( + drm.get("stats_list_of_metrics"), + path="registration_defaults.drm.stats_list_of_metrics", + allowed=SUPPORTED_STATS_METRICS_SET | {"all"}, + ), + }, + "restart": { + "enabled": validate_bool(restart, "enabled", path="registration_defaults.restart"), + "max_retries": validate_int(restart, "max_retries", path="registration_defaults.restart", minimum=0), + "window": validate_int(restart, "window", path="registration_defaults.restart", minimum=1), + "retry_delay": validate_int(restart, "retry_delay", path="registration_defaults.restart", minimum=0), + }, + }, + "device_types": device_types, + "firmware_versions": firmware_versions or "", + "build_id": build_id or "", + "description": description or "", + "labels": validate_labels(data.get("labels")), + } + validated["registration_defaults"]["drm"]["stats_list_of_metrics"] = normalize_drm_stats_metrics( + validated["registration_defaults"]["drm"]["stats_list_of_metrics"] + ) + return validated + + +def validate_payload(path: Path, runtime: str) -> None: + if not path.exists(): + fail(f"payload file not found: {path}") + if not path.is_file(): + fail(f"payload path is not a file: {path}") + lowered = path.name.lower() + if runtime == "podman": + if not lowered.endswith(".tar"): + fail("invalid payload: runtime podman requires a .tar file") + return + if not lowered.endswith(".tar.gz"): + fail("invalid payload: runtime lxc requires a .tar.gz file") + + +def tar_mode_for_path(path: Path, *, writing: bool = False) -> str: + lowered = path.name.lower() + if lowered.endswith((".tgz", ".tar.gz")): + return "w:gz" if writing else "r:gz" + if lowered.endswith(".tar.xz"): + return "w:xz" if writing else "r:xz" + return "w:" if writing else "r:" + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as handle: + for chunk in iter(lambda: handle.read(1024 * 1024), b""): + digest.update(chunk) + return digest.hexdigest() + + +def build_output_name(*, package_id: str, runtime: str, device_type: str) -> str: + return f"{package_id}_artifact_{runtime}_{device_type}.tar.gz" + + +def ensure_lxc_layout(payload: Path) -> tuple[str, str]: + with tempfile.TemporaryDirectory(prefix="dcp-lxc-validate-") as tmpdir: + root = Path(tmpdir) + try: + with tarfile.open(payload, tar_mode_for_path(payload)) as tar: + tar.extractall(root) + except (tarfile.TarError, OSError) as exc: + fail(f"invalid payload: cannot unpack LXC archive {payload}: {exc}") + + if (root / "rootfs").is_dir() and (root / "config").is_file(): + return "", "" + + dirs = [item for item in root.iterdir() if item.is_dir()] + if len(dirs) == 1 and (dirs[0] / "rootfs").is_dir() and (dirs[0] / "config").is_file(): + return dirs[0].name, dirs[0].name + + fail("invalid payload: LXC archive must contain rootfs/ and config") +def write_default_readme( + path: Path, + manifest: dict, + *, + package_id: str, + created_at: str, + payload_name: str, +) -> None: + content = ( + f"Package: {package_id}\n" + f"Version: {manifest['version']}\n" + f"Runtime: {manifest['runtime']}\n" + f"Platform: {manifest['device_types'][0]}\n" + f"Payload: {payload_name}\n" + f"Generated: {created_at}\n" + ) + path.write_text(content, encoding="utf-8") + + +def write_default_changelog(path: Path) -> None: + path.write_text("Initial package generated with external DCP tool.\n", encoding="utf-8") + + +def stage_metadata(src: Path | None, dst: Path, default_writer) -> None: + if src is not None: + try: + shutil.copy2(src, dst) + except OSError as exc: + fail(f"cannot copy metadata file {src} to {dst}: {exc}") + else: + default_writer(dst) + + +def write_manifest(path: Path, manifest: dict) -> None: + path.write_text(json.dumps(manifest, indent=2) + "\n", encoding="utf-8") + + +def build_final_manifest( + base: dict, + *, + package_id: str, + artifact_type: str, + digest: str, + size_bytes: int, + created_at: str, +) -> dict: + output = { + "package_id": package_id, + "name": base["name"], + "friendly_name": base["friendly_name"], + "version": base["version"], + "runtime": base["runtime"], + "artifact_type": artifact_type, + "registration_defaults": base["registration_defaults"], + "created_at": created_at, + "digest": f"sha256:{digest}", + "device_types": base["device_types"], + "firmware_versions": base["firmware_versions"], + "size_bytes": size_bytes, + "build_id": base["build_id"], + "description": base["description"], + "labels": base["labels"], + } + if base["runtime"] == "podman": + output["create_args"] = base["create_args"] + return output + + +def pack_output(staging_root: Path, output_path: Path) -> None: + try: + with tarfile.open(output_path, "w:gz") as tar: + for item in sorted(staging_root.iterdir()): + tar.add(item, arcname=item.name) + except OSError as exc: + fail(f"cannot create output archive {output_path}: {exc}") + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser( + description="Generate a Digi container DCP bundle from a manifest and a single payload artifact." + ) + parser.add_argument("--manifest", required=True, help="Path to input manifest.json") + parser.add_argument("--payload", required=True, help="Path to input payload file") + parser.add_argument( + "--output-dir", + default=".", + help="Optional output directory. Defaults to the current working directory.", + ) + parser.add_argument("--readme", help="Optional README.txt to include under metadata/") + parser.add_argument("--changelog", help="Optional changelog.txt to include under metadata/") + return parser.parse_args() + + +def main() -> int: + args = parse_args() + + manifest_path = Path(args.manifest) + payload_path = Path(args.payload) + output_dir = Path(args.output_dir) + readme_path = Path(args.readme) if args.readme else None + changelog_path = Path(args.changelog) if args.changelog else None + + manifest = validate_manifest(load_manifest(manifest_path)) + validate_payload(payload_path, manifest["runtime"]) + + try: + output_dir.mkdir(parents=True, exist_ok=True) + except OSError as exc: + fail(f"cannot create output directory {output_dir}: {exc}") + + created_at_dt = datetime.now(timezone.utc) + created_at_ms = int(created_at_dt.timestamp() * 1000) + created_at = format_created_at(created_at_dt) + generated_package_id = ( + manifest["package_id"] + if manifest["package_id"] + else build_generated_package_id( + manifest["name"], + created_at_ms=created_at_ms, + ) + ) + output_name = build_output_name( + package_id=generated_package_id, + runtime=manifest["runtime"], + device_type=manifest["device_types"][0], + ) + output_path = output_dir / output_name + + with tempfile.TemporaryDirectory(prefix="dcp-bundle-") as tmpdir: + staging_root = Path(tmpdir) + payload_dir = staging_root / "payload" + checksums_dir = staging_root / "checksums" + metadata_dir = staging_root / "metadata" + payload_dir.mkdir(parents=True, exist_ok=True) + checksums_dir.mkdir(parents=True, exist_ok=True) + metadata_dir.mkdir(parents=True, exist_ok=True) + + if manifest["runtime"] == "podman": + payload_name = "image.tar" + artifact_type = "podman-image-tar" + staged_payload = payload_dir / payload_name + shutil.copy2(payload_path, staged_payload) + else: + ensure_lxc_layout(payload_path) + payload_name = payload_path.name + staged_payload = payload_dir / payload_name + artifact_type = "lxc-bundle" + shutil.copy2(payload_path, staged_payload) + + digest = sha256(staged_payload) + size_bytes = staged_payload.stat().st_size + + final_manifest = build_final_manifest( + manifest, + package_id=generated_package_id, + artifact_type=artifact_type, + digest=digest, + size_bytes=size_bytes, + created_at=created_at, + ) + write_manifest(staging_root / "manifest.json", final_manifest) + + stage_metadata( + readme_path, + metadata_dir / "README.txt", + lambda dst: write_default_readme( + dst, + manifest, + package_id=generated_package_id, + created_at=created_at, + payload_name=payload_name, + ), + ) + stage_metadata(changelog_path, metadata_dir / "changelog.txt", write_default_changelog) + + (checksums_dir / "sha256sums.txt").write_text( + f"{digest} payload/{payload_name}\n", + encoding="utf-8", + ) + + pack_output(staging_root, output_path) + + print(output_path.resolve()) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/meta-digi-dey/classes/trustfence.bbclass b/meta-digi-dey/classes/trustfence.bbclass index f0ceb372d..2cdbbcc2b 100644 --- a/meta-digi-dey/classes/trustfence.bbclass +++ b/meta-digi-dey/classes/trustfence.bbclass @@ -21,7 +21,7 @@ TRUSTFENCE_KEYS_PATH ?= "${TOPDIR}/trustfence" # NXP keys TRUSTFENCE_DEK_ENCRYPT_KEYNAME ?= "dek.bin" # STM keys -TRUSTFENCE_FIP_ENCRYPT_KEYNAME ?= "encryption_key_fip.bin" +TRUSTFENCE_FIP_ENCRYPT_KEYNAME ?= "${TF_FIP_ENCRYPT_KEYNAME}" TRUSTFENCE_FSBL_ENCRYPT_KEYNAME ?= "encryption_key_fsbl.bin" TRUSTFENCE_RPROC_ENCRYPT_KEYNAME ?= "encryption_key_rproc.bin" @@ -44,6 +44,7 @@ TRUSTFENCE_ENCRYPT_ROOTFS:ccimx9 ?= "0" TRUSTFENCE_ENCRYPT_ROOTFS:ccmp1 ?= "0" TRUSTFENCE_ENCRYPT_ROOTFS:ccmp2 ?= "0" TRUSTFENCE_FILE_BASED_ENCRYPT ?= "${TF_FILE_BASED_ENCRYPT}" +TRUSTFENCE_FILE_BASED_ENCRYPT_DIR ?= "/mnt/data/private" # Co-processor settings TRUSTFENCE_COPRO_ENABLED ?= "1" @@ -58,7 +59,9 @@ TRUSTFENCE_READ_ONLY_ROOTFS ?= "${@bb.utils.contains("IMAGE_FEATURES", "read-onl # Platform specific defaults TF_ENCRYPT = "1" TF_ENCRYPT:ccimx9 = "0" -TF_ENCRYPT:ccmp1 = "0" +TF_ENCRYPT:ccmp15 = "0" +TF_FIP_ENCRYPT_KEYNAME = "encryption_key_fip.bin" +TF_FIP_ENCRYPT_KEYNAME:ccmp13 = "encryption_key_fip.txt" TF_FILE_BASED_ENCRYPT = "0" TF_FILE_BASED_ENCRYPT:ccimx9 = "1" TF_FILE_BASED_ENCRYPT:ccmp1 = "1" @@ -90,7 +93,9 @@ gen_pki_tree() { if [ "${TRUSTFENCE_ENCRYPT}" = "1" ]; then export CONFIG_FIP_ENCRYPT_KEYNAME="${TRUSTFENCE_FIP_ENCRYPT_KEYNAME}" export CONFIG_FSBL_ENCRYPT_KEYNAME="${TRUSTFENCE_FSBL_ENCRYPT_KEYNAME}" - export CONFIG_RPROC_ENCRYPT_KEYNAME="${TRUSTFENCE_RPROC_ENCRYPT_KEYNAME}" + if [ "${DIGI_SOM}" = "ccmp25" ]; then + export CONFIG_RPROC_ENCRYPT_KEYNAME="${TRUSTFENCE_RPROC_ENCRYPT_KEYNAME}" + fi fi trustfence-gen-pki.sh -p ${DIGI_SOM} fi @@ -204,6 +209,7 @@ python () { if (d.getVar("DIGI_SOM") == "ccmp15" ): d.setVar("SIGN_KEY", d.getVar("TRUSTFENCE_KEYS_PATH") + "/keys/privateKey.pem"); d.setVar("TRUSTFENCE_PASSWORD_FILE", d.getVar("TRUSTFENCE_KEYS_PATH") + "/keys/key_pass.txt") + d.setVar("TRUSTFENCE_COPRO_SIGN_KEY", d.getVar("TRUSTFENCE_KEYS_PATH") + "/rproc-keys/publicKey.pem") else: d.setVar("SIGN_KEY", d.getVar("TRUSTFENCE_KEYS_PATH") + "/keys/privateKey0%s.pem" % d.getVar("TRUSTFENCE_KEY_INDEX")); d.setVar("TRUSTFENCE_PASSWORD_FILE", d.getVar("TRUSTFENCE_KEYS_PATH") + "/keys/key_pass0%s.txt" % d.getVar("TRUSTFENCE_KEY_INDEX")) @@ -215,6 +221,13 @@ python () { d.setVar("TRUSTFENCE_COPRO_PASSWORD_FILE", d.getVar("TRUSTFENCE_KEYS_PATH") + "/rproc-keys/key_pass.txt") d.setVar("SIGN_COPRO_ECC_PASS_%s" % (d.getVar("STM32MP_SOC_NAME").strip()), "UNDEFINED"); d.setVar("SIGN_KEY_%s" % (d.getVar("STM32MP_SOC_NAME").strip()), d.getVar("SIGN_KEY")); + # Set a dummy value to avoid a build issue in ST sign-stm32mp class + d.setVar('SIGN_KEY_PASS', "UNDEFINED") + d.setVar("SIGN_KEY_PUB_%s" % (d.getVar("STM32MP_SOC_NAME").strip()), "UNDEFINED"); + d.setVar("SIGN_M33DDR_KEY_%s" % (d.getVar("STM32MP_SOC_NAME").strip()), "UNDEFINED"); + d.setVar("SIGN_M33FW_KEY_%s" % (d.getVar("STM32MP_SOC_NAME").strip()), "UNDEFINED"); + d.setVar("SIGN_M33DDR_KEY_PASS_%s" % (d.getVar("STM32MP_SOC_NAME").strip()), "UNDEFINED"); + d.setVar("SIGN_M33FW_KEY_PASS_%s" % (d.getVar("STM32MP_SOC_NAME").strip()), "UNDEFINED"); d.appendVar("UBOOT_TF_CONF", "CONFIG_SIGN_IMAGE=y ") if (d.getVar("TRUSTFENCE_SIGN_ARTIFACTS") == "1"): diff --git a/meta-digi-dey/conf/distro/dey.conf b/meta-digi-dey/conf/distro/dey.conf index 403207b6a..c36b09f86 100644 --- a/meta-digi-dey/conf/distro/dey.conf +++ b/meta-digi-dey/conf/distro/dey.conf @@ -3,7 +3,7 @@ require conf/distro/poky.conf # Discrete version values. YOCTO_MAJOR = "5" YOCTO_MINOR = "0" -DEY_RELEASE = "3" +DEY_RELEASE = "4" DEY_BUILD = "1" # Firmware version of the system. diff --git a/meta-digi-dey/conf/layer.conf b/meta-digi-dey/conf/layer.conf index efea6a2c0..46720e991 100644 --- a/meta-digi-dey/conf/layer.conf +++ b/meta-digi-dey/conf/layer.conf @@ -22,6 +22,10 @@ BBFILES_DYNAMIC += " \ x-linux-ai:${LAYERDIR}/dynamic-layers/x-linux-ai/*/*/*.bbappend \ x-linux-ai:${LAYERDIR}/dynamic-layers/x-linux-ai/*/*/*/*.bb \ x-linux-ai:${LAYERDIR}/dynamic-layers/x-linux-ai/*/*/*/*.bbappend \ + x-linux-isp:${LAYERDIR}/dynamic-layers/x-linux-isp/*/*.bb \ + x-linux-isp:${LAYERDIR}/dynamic-layers/x-linux-isp/*/*.bbappend \ + x-linux-isp:${LAYERDIR}/dynamic-layers/x-linux-isp/*/*/*.bb \ + x-linux-isp:${LAYERDIR}/dynamic-layers/x-linux-isp/*/*/*.bbappend \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bb \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/*/*/*.bbappend \ qt5-layer:${LAYERDIR}/dynamic-layers/qt5-layer/${DEY_SOC_VENDOR}/*/*/*.bb \ diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-fsl/mcore-demos/imx-m7-demos_25.09.00.bb b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-fsl/mcore-demos/imx-m7-demos_25.09.00.bb new file mode 100644 index 000000000..82cf07e91 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-fsl/mcore-demos/imx-m7-demos_25.09.00.bb @@ -0,0 +1,11 @@ +# Copyright 2023-2025 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +require imx-mcore-demos.inc + +LIC_FILES_CHKSUM:mx95-nxp-bsp = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac" + +SRC_URI[imx95.sha256sum] = "de703aba46ba58fb571f969985a68a1ca44cd2d274a711d074f12ea4d89cd4ab" + +COMPATIBLE_MACHINE = "(mx95-nxp-bsp)" + diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-fsl/mcore-demos/imx-mcore-demos.inc b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-fsl/mcore-demos/imx-mcore-demos.inc new file mode 100644 index 000000000..86a5317a0 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-fsl/mcore-demos/imx-mcore-demos.inc @@ -0,0 +1,57 @@ +# Copyright 2017-2021 NXP +# Released under the MIT license (see COPYING.MIT for the terms) + +SUMMARY = "i.MX M4/M7/M33 core Demo images" +SECTION = "app" +LICENSE = "Proprietary" + +inherit deploy fsl-eula2-unpack2 + +SOC ?= "INVALID" +SOC:mx7ulp-nxp-bsp = "imx7ulp" +SOC:mx8dxl-nxp-bsp = "imx8dxl" +SOC:mx8mm-nxp-bsp = "imx8mm" +SOC:mx8mn-nxp-bsp = "imx8mn" +SOC:mx8mnul-nxp-bsp = "imx8mnddr3l" +SOC:mx8mp-nxp-bsp = "imx8mp" +SOC:mx8mpul-nxp-bsp = "imx8mp" +SOC:mx8mq-nxp-bsp = "imx8mq" +SOC:mx8qm-nxp-bsp = "imx8qm" +SOC:mx8qxp-nxp-bsp = "imx8qx" +SOC:mx8dx-nxp-bsp = "imx8qx" +SOC:mx8ulp-nxp-bsp = "imx8ulp" +SOC:mx93-nxp-bsp = "imx93" +SOC:mx95-nxp-bsp = "imx95" + +MCORE_TYPE ?= "m4" +MCORE_TYPE:mx8mn-nxp-bsp = "m7" +MCORE_TYPE:mx8mnul-nxp-bsp = "m7" +MCORE_TYPE:mx8mp-nxp-bsp = "m7" +MCORE_TYPE:mx8mpul-nxp-bsp = "m7" +MCORE_TYPE:mx8ulp-nxp-bsp = "m33" +MCORE_TYPE:mx93-nxp-bsp = "m33" +MCORE_TYPE:mx95-nxp-bsp = "m7" + +IMX_PACKAGE_NAME = "${SOC}-${MCORE_TYPE}-demo-${PV}" +SRC_URI:append = ";name=${SOC}" + +SCR = "SCR-${SOC}-${MCORE_TYPE}-demo.txt" + +do_install () { + # install elf format binary to /lib/firmware + install -d ${D}${nonarch_base_libdir}/firmware + install -m 0644 ${S}/*.elf ${D}${nonarch_base_libdir}/firmware +} + +DEPLOY_FILE_EXT ?= "bin" +DEPLOY_FILE_EXT:mx7ulp-nxp-bsp = "img" + +do_deploy () { + # Install the demo binaries + install -d ${DEPLOYDIR}/mcore-demos + install -m 0644 ${S}/*.${DEPLOY_FILE_EXT} ${DEPLOYDIR}/mcore-demos/ +} + +addtask deploy after do_install + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p2.14.bb b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p2.14.bb new file mode 100644 index 000000000..0beb8fc54 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-g2d/imx-gpu-g2d_6.4.11.p2.14.bb @@ -0,0 +1,42 @@ +# Copyright (C) 2016 Freescale Semiconductor +# Copyright 2017-2022 NXP +# Copyright 2018 (C) O.S. Systems Software LTDA. +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "G2D library using i.MX GPU" +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac" +DEPENDS = "libgal-imx" +PROVIDES = "virtual/libg2d" + +SRC_URI = "${FSL_MIRROR}/${IMX_BIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true" +IMX_BIN_NAME = "${BP}-${TARGET_ARCH}-${IMX_SRCREV_ABBREV}" +IMX_SRCREV_ABBREV = "cb782f4" +SRC_URI[aarch64.sha256sum] = "0a94f66e0f6883009ee32b95277c4bf38a5dd916fc561eedf9eed09ca09b4a4c" +SRC_URI[arm.sha256sum] = "e0451c26f150c14fbdb320a845199e85ace5df73b7d1d8d015093ec77513d44d" + +S = "${WORKDIR}/${IMX_BIN_NAME}" + +inherit fsl-eula-unpack + +SOC_INSTALL_DIR = "SOC_INSTALL_DIR_NOT_SET" +SOC_INSTALL_DIR:mx8mm-nxp-bsp = "mx8mm" + +do_install () { + install -d ${D}${libdir} + install -d ${D}${includedir} + cp -d ${S}/g2d/usr/lib/*.so* ${D}${libdir} + if [ -d ${S}/g2d/usr/lib/${SOC_INSTALL_DIR} ]; then + cp -d ${S}/g2d/usr/lib/${SOC_INSTALL_DIR}/*.so* ${D}${libdir} + fi + cp -Pr ${S}/g2d/usr/include/* ${D}${includedir} +} + +# The packaged binaries have been stripped of debug info, so disable +# operations accordingly. +INHIBIT_PACKAGE_DEBUG_SPLIT = "1" +INHIBIT_PACKAGE_STRIP = "1" +INHIBIT_SYSROOT_STRIP = "1" + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" +COMPATIBLE_MACHINE = "(imxgpu2d)" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6-overrides.inc b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6-overrides.inc new file mode 100644 index 000000000..07f05eb77 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv-6-overrides.inc @@ -0,0 +1,27 @@ +require recipes-graphics/imx-gpu-viv/imx-gpu-viv-6.inc + +### Section 1: Changes to be upstreamed ### + +LIBVULKAN_API_VERSION = "1.3.204" + +# FIXME: Update tensorflow-lite so it doesn't depend on this +RPROVIDES:${PN}:append = " ${RPROVIDES_OPENCL}" +RPROVIDES_OPENCL = "opencl-icd-loader-dev" +RPROVIDES_OPENCL:mx7-nxp-bsp = "" +RPROVIDES_OPENCL:mx8mm-nxp-bsp = "" + +### Section 2: Changes to be kept in meta-imx ### + +PACKAGECONFIG ?= "valgrind" + +RDEPENDS:libopenvg-imx += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-gpuconfig', '', d)}" + +# FIXME: Don't add .so to main package +FILES:libvulkan-imx += "${libdir}/libvulkan_VSI${SOLIBS}" +INSANE_SKIP:libvulkan-imx += "dev-so" +FILES:libopenvx-imx += "${libdir}/libOpenVX${SOLIBS}" +INSANE_SKIP:libopenvx-imx += "dev-so dev-deps" +FILES:libopencl-imx += "${libdir}/libOpenCL${SOLIBS}" +INSANE_SKIP:libopencl-imx += "dev-so dev-deps" +FILES:libvdk-imx += "${libdir}/libVDK*${SOLIBS}" +INSANE_SKIP:libvdk-imx += "dev-so" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch32.bb b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch32.bb new file mode 100644 index 000000000..8e0fcece0 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch32.bb @@ -0,0 +1,9 @@ +require imx-gpu-viv-6-overrides.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac" + +IMX_SRCREV_ABBREV = "cb782f4" + +SRC_URI[sha256sum] = "ea48770e27f4e2525d131d37b29f119ebf29c87c0b84bec98842025dc232a42f" + +COMPATIBLE_MACHINE = "(mx6q-nxp-bsp|mx6dl-nxp-bsp|mx6sx-nxp-bsp|mx6sl-nxp-bsp|mx7ulp-nxp-bsp)" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.12-aarch32.bbappend b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch32.bbappend similarity index 100% rename from meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.12-aarch32.bbappend rename to meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch32.bbappend diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch64.bb b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch64.bb new file mode 100644 index 000000000..26587eca5 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch64.bb @@ -0,0 +1,9 @@ +require imx-gpu-viv-6-overrides.inc + +LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac" + +IMX_SRCREV_ABBREV = "cb782f4" + +SRC_URI[sha256sum] = "c45d6bb2c7df1601af5b7a2877042e45d6456d285e3506aa6429e0b234e46708" + +COMPATIBLE_MACHINE = "(mx8-nxp-bsp)" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.12-aarch64.bbappend b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch64.bbappend similarity index 100% rename from meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.12-aarch64.bbappend rename to meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/imx-gpu-viv/imx-gpu-viv_6.4.11.p2.14-aarch64.bbappend diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/libgpuperfcnt/gputop_git.bb b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/libgpuperfcnt/gputop_git.bb index 17281b09c..52161bc3b 100644 --- a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/libgpuperfcnt/gputop_git.bb +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/libgpuperfcnt/gputop_git.bb @@ -9,7 +9,7 @@ DEPENDS = "libgpuperfcnt" GPUTOP_SRC ?= "git://github.com/nxp-imx/imx-gputop.git;protocol=https" SRCBRANCH = "release" SRC_URI = "${GPUTOP_SRC};branch=${SRCBRANCH} " -SRCREV = "10a5ca8f383ac1df9e4cd87c979d7e1db531acf2" +SRCREV = "ee449b4f4d5293e971693b7865972f8387f8d171" S = "${WORKDIR}/git" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/mali/mali-imx_r50.6.bb b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/mali/mali-imx_r50.6.bb new file mode 100644 index 000000000..57a483a48 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/mali/mali-imx_r50.6.bb @@ -0,0 +1,21 @@ +require recipes-graphics/mali/mali-imx.inc + +LICENSE = "Proprietary" +LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac" + +SRC_URI[sha256sum] = "208cc3e2b36cbd4804267a95513823a2a4f3404b6865b4e8992a7985e96693c9" +IMX_SRCREV_ABBREV = "a43c3df" + +S = "${WORKDIR}/git" + +inherit fsl-eula2-unpack2 fsl-eula-recent + +do_install:append() { + # Move firmware to nonarch_base_libdir + if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then + install -d ${D}${nonarch_base_libdir} + mv ${D}${base_libdir}/firmware ${D}${nonarch_base_libdir} + fi +} + +PACKAGE_ARCH = "${MACHINE_SOCARCH}" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-10.0.5.imx/0001-libweston-g2d-renderer-try-re-adjusting-fb-if-the-FB.patch b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-10.0.5.imx/0001-libweston-g2d-renderer-try-re-adjusting-fb-if-the-FB.patch new file mode 100644 index 000000000..87efbf772 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-10.0.5.imx/0001-libweston-g2d-renderer-try-re-adjusting-fb-if-the-FB.patch @@ -0,0 +1,88 @@ +From: Gabriel Valcazar +Date: Thu, 17 Sep 2020 13:16:04 +0200 +Subject: [PATCH] libweston: g2d-renderer: try re-adjusting fb if the + FBIOPAN_DISPLAY ioctl fails + +By default, the g2d renderer works with 3 buffers, and uses the FBIOPAN_DISPLAY +ioctl to have the kernel switch between them every time the output has to be +shown. Because of this, when the renderer is initialized, it will increase the +framebuffer's yres_virtual parameter so it is 3 times the size of yres +(vertical resolution). + +However, when the system goes through a suspend/resume iteration, the +framebuffer's yres_virtual parameter will change back to its original value, +causing the FBIOPAN_DISPLAY ioctl to fail when using the 2nd and 3rd buffers, +which is 2 out of 3 times whenever something changes in the output. This has +three direct effects: + +* Constant "FBIOPAN_DISPLAY failed" messages in the weston log +* Choppy framerate (due to the renderer only being able to show 1/3 of the + total output frames) +* A 2/3 chance that the desktop will not show after resuming from suspend until + there's movement on the screen + +To avoid this, whenever a FBIOPAN_DISPLAY ioctl fails, check if the +yres_virtual attribute read from the kernel is different from the one saved in +the renderer and, if so, update it once again and retry the ioctl. This adds +some additional overhead in case of a FBIOPAN_DISPLAY failure, but these have +only been observed in the specific suspend/resume scenario, not in an average +use case. + +The only drawback to this workaround is that there's a 1/3 chance that the +display will go blank for a very small period of time when resuming from +suspend. This is due to the framebuffer being reconfigured and, although +undesireable, is much less bothersome than the original issue. + +NOTE FOR DEY 5.0: although this patch's description was accurate back when it +was first introduced in DEY 3.0-r2.1, the reproducibility in DEY 5.0 is much +smaller, but the workaround remains the same. + +Upstream-Status: Inappropriate [DEY specific] + +https://jira.digi.com/browse/DEL-7236 + +Signed-off-by: Gabriel Valcazar +--- + libweston/renderer-g2d/g2d-renderer.c | 23 ++++++++++++++++++++++- + 1 file changed, 22 insertions(+), 1 deletion(-) + +diff --git a/libweston/renderer-g2d/g2d-renderer.c b/libweston/renderer-g2d/g2d-renderer.c +index 3e2d0791..d390ea17 100644 +--- a/libweston/renderer-g2d/g2d-renderer.c ++++ b/libweston/renderer-g2d/g2d-renderer.c +@@ -456,13 +456,34 @@ g2d_flip_surface(struct weston_output *output) + { + int i; + struct g2d_output_state *go = get_output_state(output); ++ struct fb_var_screeninfo aux_varinfo; + go->fb_info.varinfo.yoffset = go->activebuffer * go->fb_info.y_resolution; + + if(ioctl(go->fb_info.fb_fd, FBIOPAN_DISPLAY, &(go->fb_info.varinfo)) < 0) + { +- weston_log("FBIOPAN_DISPLAY Failed\n"); ++ /* Check if yres_virtual has changed (it happens on suspend/resume) */ ++ if (ioctl(go->fb_info.fb_fd, FBIOGET_VSCREENINFO, &aux_varinfo) < 0) { ++ weston_log("FBIOGET_VSCREENINFO Failed\n"); ++ goto out; ++ } ++ ++ /* If yres_virtual has changed, adjust it and try flipping the surface again */ ++ if (aux_varinfo.yres_virtual != go->fb_info.varinfo.yres_virtual) { ++ aux_varinfo.yres_virtual = aux_varinfo.yres * go->nNumBuffers; ++ if (ioctl(go->fb_info.fb_fd, FBIOPUT_VSCREENINFO, &aux_varinfo) < 0) { ++ weston_log("FBIOPUT_VSCREENINFO Failed\n"); ++ goto out; ++ } ++ ++ if(ioctl(go->fb_info.fb_fd, FBIOPAN_DISPLAY, &(go->fb_info.varinfo)) < 0) { ++ weston_log("FBIOPAN_DISPLAY Failed\n"); ++ } ++ } else { ++ weston_log("FBIOPAN_DISPLAY Failed\n"); ++ } + } + ++out: + for (i = 0; i < go->clone_display_num; i++) + { + go->mirror_fb_info[i].varinfo.yoffset = go->activebuffer * go->mirror_fb_info[i].y_resolution; diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-12.0.5.imx/0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-12.0.5.imx/0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch new file mode 100644 index 000000000..eb6e80c6e --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-12.0.5.imx/0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch @@ -0,0 +1,92 @@ +From: Haihua Hu +Date: Wed, 3 Aug 2022 16:34:47 +0800 +Subject: [PATCH] Revert "libweston/libinput-device: Enable/Set pointer + capabilities only on pointer movement" + +This reverts commit e825fe389ebd63470028abd828019840c1170a03. + +This commit will cause waylandsink cannot register pointer seat. +As a result, mouse cannot move waylandsink window + +Upstream-Status: Inappropriate [DEY specific] + +(cherry picked from commit 3f8f336b5d2cf7ea7aa4e047d669d093fc46dfe6) +--- + libweston/libinput-device.c | 29 +++++------------------------ + 1 file changed, 5 insertions(+), 24 deletions(-) + +diff --git a/libweston/libinput-device.c b/libweston/libinput-device.c +index 31b88ac43c3a..207d0075ebb7 100644 +--- a/libweston/libinput-device.c ++++ b/libweston/libinput-device.c +@@ -67,21 +67,6 @@ evdev_led_update(struct evdev_device *device, enum weston_led weston_leds) + libinput_device_led_update(device->device, leds); + } + +-static void +-ensure_pointer_capability(struct libinput_device *libinput_device) +-{ +- struct evdev_device *device = libinput_device_get_user_data(libinput_device); +- struct weston_seat *seat = device->seat; +- +- if (!libinput_device_has_capability(libinput_device, LIBINPUT_DEVICE_CAP_POINTER)) +- return; +- +- if (!(device->seat_caps & EVDEV_SEAT_POINTER)) { +- weston_seat_init_pointer(seat); +- device->seat_caps |= EVDEV_SEAT_POINTER; +- } +-} +- + static void + handle_keyboard_key(struct libinput_device *libinput_device, + struct libinput_event_keyboard *keyboard_event) +@@ -119,8 +104,6 @@ handle_pointer_motion(struct libinput_device *libinput_device, + struct timespec time; + double dx_unaccel, dy_unaccel; + +- ensure_pointer_capability(libinput_device); +- + timespec_from_usec(&time, + libinput_event_pointer_get_time_usec(pointer_event)); + dx_unaccel = libinput_event_pointer_get_dx_unaccelerated(pointer_event); +@@ -152,8 +135,6 @@ handle_pointer_motion_absolute( + double x, y; + uint32_t width, height; + +- ensure_pointer_capability(libinput_device); +- + if (!output) + return false; + +@@ -184,8 +165,6 @@ handle_pointer_button(struct libinput_device *libinput_device, + libinput_event_pointer_get_seat_button_count(pointer_event); + struct timespec time; + +- ensure_pointer_capability(libinput_device); +- + /* Ignore button events that are not seat wide state changes. */ + if ((button_state == LIBINPUT_BUTTON_STATE_PRESSED && + seat_button_count != 1) || +@@ -264,8 +243,6 @@ handle_pointer_axis(struct libinput_device *libinput_device, + bool has_vert, has_horiz; + struct timespec time; + +- ensure_pointer_capability(libinput_device); +- + has_vert = libinput_event_pointer_has_axis(pointer_event, + LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL); + has_horiz = libinput_event_pointer_has_axis(pointer_event, +@@ -1025,7 +1002,11 @@ evdev_device_create(struct libinput_device *libinput_device, + + device->seat_caps |= EVDEV_SEAT_KEYBOARD; + } +- ++ if (libinput_device_has_capability(libinput_device, ++ LIBINPUT_DEVICE_CAP_POINTER)) { ++ weston_seat_init_pointer(seat); ++ device->seat_caps |= EVDEV_SEAT_POINTER; ++ } + if (libinput_device_has_capability(libinput_device, + LIBINPUT_DEVICE_CAP_TOUCH)) { + if (weston_seat_init_touch(seat) < 0) { diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init.bbappend b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init.bbappend index 3a0c2b6ad..9613af937 100644 --- a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init.bbappend +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init.bbappend @@ -1,9 +1,10 @@ -# Copyright (C) 2019-2024, Digi International Inc. +# Copyright (C) 2019-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" +WESTON_BACKGROUND_PNG ?= "${WORKDIR}/background.png" SRC_URI += " \ - file://digi_background.png \ + file://background.png \ file://profile \ " @@ -30,8 +31,9 @@ do_install:append() { # DEY customizations do_install:append() { + install -d ${D}${datadir}/weston/backgrounds install -Dm0755 ${WORKDIR}/profile ${D}${sysconfdir}/profile.d/weston.sh - install -Dm0644 ${WORKDIR}/digi_background.png ${D}${datadir}/weston/digi_background.png + install -Dm0644 "${WESTON_BACKGROUND_PNG}" ${D}${datadir}/weston/backgrounds/background.png printf "\n[launcher]\nicon=${datadir}/weston/terminal.png\npath=${bindir}/weston-terminal\n" >> ${D}${sysconfdir}/xdg/weston/weston.ini } @@ -41,4 +43,4 @@ do_install:append:ccimx93() { echo "QMLSCENE_DEVICE=softwarecontext" >> ${D}${sysconfdir}/default/weston } -FILES:${PN} += "${datadir}/weston/digi_background.png" +FILES:${PN} += "${datadir}/weston/backgrounds/background.png" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init/digi_background.png b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init/background.png similarity index 100% rename from meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init/digi_background.png rename to meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init/background.png diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init/imx-nxp-bsp/weston.ini b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init/imx-nxp-bsp/weston.ini index 53c84697e..db40e9c06 100644 --- a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init/imx-nxp-bsp/weston.ini +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-init/imx-nxp-bsp/weston.ini @@ -28,5 +28,5 @@ command=@bindir@/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --n # Digi: Set custom background [shell] -background-image=/usr/share/weston/digi_background.png +background-image=/usr/share/weston/backgrounds/background.png background-type=scale-crop diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_10.0.5.imx.bbappend b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_10.0.5.imx.bbappend new file mode 100644 index 000000000..161939804 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_10.0.5.imx.bbappend @@ -0,0 +1,8 @@ +# Copyright (C) 2026, Digi International Inc. +FILESEXTRAPATHS:prepend := "${THISDIR}/${BP}:" + +SRCREV = "5223a3c86177709d25f86a96622c0829da955a0e" + +SRC_URI += " \ + file://0001-libweston-g2d-renderer-try-re-adjusting-fb-if-the-FB.patch \ +" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bbappend b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bbappend index 89dca484d..38149e8a8 100644 --- a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bbappend +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bbappend @@ -1,7 +1,8 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/${BP}:" SRC_URI += " \ + file://0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \ file://0003-Revert-g2d-renderer-Support-solid-colour-weston_buff.patch \ " diff --git a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/0003-check-vela-return-code.patch b/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/0003-check-vela-return-code.patch index b4172821d..7823d7ac0 100644 --- a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/0003-check-vela-return-code.patch +++ b/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/0003-check-vela-return-code.patch @@ -8,10 +8,10 @@ Signed-off-by: Isaac Hermida 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/download_models.py b/download_models.py -index 462f7b755eea..fc5ab234ae47 100644 +index 30c660fe4477..2e60f42c17a2 100644 --- a/download_models.py +++ b/download_models.py -@@ -103,7 +103,11 @@ def convert_model(model_dir, vela_dir): +@@ -96,7 +96,11 @@ def convert_model(model_dir, vela_dir): if name.endswith(".tflite"): print('Converting', name) model = os.path.join(model_dir, name) diff --git a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/0004-use-local-copy-of-ssd_mobilenet_v1_quant-model.patch b/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/0004-use-local-copy-of-ssd_mobilenet_v1_quant-model.patch deleted file mode 100644 index 136eaa26a..000000000 --- a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/0004-use-local-copy-of-ssd_mobilenet_v1_quant-model.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Isaac Hermida -Date: Tue, 25 Feb 2025 12:32:45 +0000 -Subject: [PATCH] use local copy of ssd_mobilenet_v1_quant model - -This model is broken, and the Vela conversion is failing. -Until it is fixed, use a locally working copy. - -Signed-off-by: Isaac Hermida ---- - download_models.py | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/download_models.py b/download_models.py -index ba1cce726e25..411538a19662 100644 ---- a/download_models.py -+++ b/download_models.py -@@ -67,9 +67,9 @@ def download_all_models(model_dir, vela_dir): - - #Download object detection model - #https://www.tensorflow.org/ -- url = 'https://storage.googleapis.com/tfhub-lite-models/tensorflow/lite-model/ssd_mobilenet_v1/1/metadata/2.tflite' -- path = os.path.join(model_dir, 'ssd_mobilenet_v1_quant.tflite') -- download_file('object detection', url, path) -+ # url = 'https://storage.googleapis.com/tfhub-lite-models/tensorflow/lite-model/ssd_mobilenet_v1/1/metadata/2.tflite' -+ # path = os.path.join(model_dir, 'ssd_mobilenet_v1_quant.tflite') -+ # download_file('object detection', url, path) - - #Download image classification model - #https://www.tensorflow.org/ diff --git a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/ssd_mobilenet_v1_quant.tflite b/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/ssd_mobilenet_v1_quant.tflite deleted file mode 100644 index be3b96b7c..000000000 Binary files a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/ssd_mobilenet_v1_quant.tflite and /dev/null differ diff --git a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/ssd_mobilenet_v1_quant_vela.tflite b/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/ssd_mobilenet_v1_quant_vela.tflite deleted file mode 100644 index f3c42c618..000000000 Binary files a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples/ssd_mobilenet_v1_quant_vela.tflite and /dev/null differ diff --git a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples_git.bbappend b/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples_git.bbappend index c6964f1fb..e851d0636 100644 --- a/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples_git.bbappend +++ b/meta-digi-dey/dynamic-layers/imx-machine-learning/recipes-libraries/eiq-examples/eiq-examples_git.bbappend @@ -12,9 +12,6 @@ SRC_URI += " \ file://0001-Customize-EiQ-demos.patch \ file://0002-improvements-capture-x-windows-and-increase-resoluti.patch \ file://0003-check-vela-return-code.patch \ - file://0004-use-local-copy-of-ssd_mobilenet_v1_quant-model.patch \ - file://ssd_mobilenet_v1_quant.tflite \ - file://ssd_mobilenet_v1_quant_vela.tflite \ file://scripts/launch_eiq_demo.sh \ file://service/eiqdemo.service \ " @@ -46,14 +43,12 @@ do_install () { for archive in "${S}/${MODELS_DIR}"/*.tflite; do cp "${archive}" "${D}${bindir}/${PN}-${PV}/${MODELS_DIR}" done - cp ${WORKDIR}/ssd_mobilenet_v1_quant.tflite "${D}${bindir}/${PN}-${PV}/${MODELS_DIR}" # Install the transformed Vela models. install -d "${D}${bindir}/${PN}-${PV}/${VELA_MODELS_DIR}" for archive in "${S}/${VELA_MODELS_DIR}"/*.tflite; do cp "${archive}" "${D}${bindir}/${PN}-${PV}/${VELA_MODELS_DIR}" done - cp ${WORKDIR}/ssd_mobilenet_v1_quant_vela.tflite "${D}${bindir}/${PN}-${PV}/${VELA_MODELS_DIR}" # Install the launch script. install -d ${D}${sysconfdir}/demos/scripts diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-frameworks/stai-mpu/stai-mpu_6.1.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-frameworks/stai-mpu/stai-mpu_6.2.%.bbappend similarity index 100% rename from meta-digi-dey/dynamic-layers/x-linux-ai/recipes-frameworks/stai-mpu/stai-mpu_6.1.%.bbappend rename to meta-digi-dey/dynamic-layers/x-linux-ai/recipes-frameworks/stai-mpu/stai-mpu_6.2.%.bbappend diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/dcmipp-isp-ctrl/dcmipp-isp-ctrl_git.bb b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/dcmipp-isp-ctrl/dcmipp-isp-ctrl_git.bb index d393a3f6f..558d0617c 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/dcmipp-isp-ctrl/dcmipp-isp-ctrl_git.bb +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/dcmipp-isp-ctrl/dcmipp-isp-ctrl_git.bb @@ -5,8 +5,8 @@ LIC_FILES_CHKSUM = "file://dcmipp-isp-ctrl/COPYING;md5=f8001cce2bab8ab39ddcb1268 SRC_URI = "git://github.com/STMicroelectronics/st-openstlinux-application.git;protocol=https;branch=main" # Modify these as desired -PV = "6.1+git-${@d.getVar("SRCREV")[0:8]}" -SRCREV = "1ab21d8400036235771d70becdcf6f92b665025d" +PV = "5.1+git-${@d.getVar("SRCREV")[0:8]}" +SRCREV = "f5ca3ac8a4ce2dedf337e69dcaea197f7567bb69" S = "${WORKDIR}/git" diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/files/patches/0004-image-classification-fix-initialization-issue-with-x.patch b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/files/patches/0004-image-classification-fix-initialization-issue-with-x.patch new file mode 100644 index 000000000..b5d556881 --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/files/patches/0004-image-classification-fix-initialization-issue-with-x.patch @@ -0,0 +1,42 @@ +From: Arturo Buzarra +Date: Tue, 13 Jan 2026 15:43:26 +0100 +Subject: [PATCH] image-classification: fix initialization issue with + x-linux-isp support + +This commit fixes the following runtime error: + + Traceback (most recent call last): + File "/usr/local/x-linux-ai/image-classification/stai_mpu_image_classification.py", line 60, in _on_realize + self.camera_dual_pipeline_creation() + File "/usr/local/x-linux-ai/image-classification/stai_mpu_image_classification.py", line 266, in camera_dual_pipeline_creation + src_pad.link(queue_sink_pad) + File "/usr/lib/python3.12/site-packages/gi/overrides/Gst.py", line 204, in link + raise LinkError(ret) + gi.overrides.Gst.LinkError: + +https://onedigi.atlassian.net/browse/DEL-9890 + +Signed-off-by: Arturo Buzarra +--- + .../files/stai-mpu/stai_mpu_image_classification.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/stai-mpu/stai_mpu_image_classification.py b/stai-mpu/stai_mpu_image_classification.py +index 257e2b4..6c980e5 100644 +--- a/stai-mpu/stai_mpu_image_classification.py ++++ b/stai-mpu/stai_mpu_image_classification.py +@@ -261,12 +261,12 @@ class GstWidget(Gtk.Box): + src_pad = self.libcamerasrc.get_static_pad("src") + src_pad.set_property("stream-role", 3) + # still-capture + src_request_pad0.set_property("stream-role", 1) + +- src_pad.link(queue_sink_pad) +- src_request_pad0.link(queue0_sink_pad) ++ #src_pad.link(queue_sink_pad) ++ #src_request_pad0.link(queue0_sink_pad) + + # getting pipeline bus + self.bus_pipeline = self.pipeline_preview.get_bus() + self.bus_pipeline.add_signal_watch() + self.bus_pipeline.connect('message::error', self.msg_error_cb) diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/stai-mpu-image-classification-python_6.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/stai-mpu-image-classification-python_6.%.bbappend index bef39bbb8..c54dc2e8a 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/stai-mpu-image-classification-python_6.%.bbappend +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/image-classification/stai-mpu-image-classification-python_6.%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/../common:${THISDIR}/files:" @@ -7,6 +7,7 @@ SRC_URI += " \ file://patches/0001-image-classification-remove-weston-user-check-from-l.patch \ file://patches/0002-image-classification-reduce-font-size-for-big-screen.patch \ file://patches/0003-image-classification-set-camera-preview-to-640x480.patch \ + ${@bb.utils.contains("BBFILE_COLLECTIONS", "x-linux-isp", "file://patches/0004-image-classification-fix-initialization-issue-with-x.patch", "", d)} \ " do_install:append () { @@ -25,6 +26,3 @@ RDEPENDS:${PN} += " \ FILES:${PN} += " \ ${systemd_unitdir}/demos/scripts/* \ " - -# Make this recipe available only for the CCMP25 platform. -COMPATIBLE_MACHINE = "(ccmp25)" diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/files/patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/files/patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch new file mode 100644 index 000000000..ec2bd589d --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/files/patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch @@ -0,0 +1,42 @@ +From: Arturo Buzarra +Date: Tue, 13 Jan 2026 15:57:33 +0100 +Subject: [PATCH] object-detection: fix initialization issue with x-linux-isp + support + +This commit fixes the following runtime error: + +Traceback (most recent call last): + File "/usr/local/x-linux-ai/object-detection/stai_mpu_object_detection.py", line 61, in _on_realize + self.camera_dual_pipeline_creation() + File "/usr/local/x-linux-ai/object-detection/stai_mpu_object_detection.py", line 267, in camera_dual_pipeline_creation + src_pad.link(queue_sink_pad) + File "/usr/lib/python3.12/site-packages/gi/overrides/Gst.py", line 204, in link + raise LinkError(ret) +gi.overrides.Gst.LinkError: + +https://onedigi.atlassian.net/browse/DEL-9890 + +Signed-off-by: Arturo Buzarra +--- + .../files/stai-mpu/stai_mpu_object_detection.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/stai-mpu/stai_mpu_object_detection.py b/stai-mpu/stai_mpu_object_detection.py +index 6a40ad4..53a7576 100644 +--- a/stai-mpu/stai_mpu_object_detection.py ++++ b/stai-mpu/stai_mpu_object_detection.py +@@ -262,12 +262,12 @@ class GstWidget(Gtk.Box): + src_pad = self.libcamerasrc.get_static_pad("src") + src_pad.set_property("stream-role", 3) + # still-capture + src_request_pad0.set_property("stream-role", 1) + +- src_pad.link(queue_sink_pad) +- src_request_pad0.link(queue0_sink_pad) ++ #src_pad.link(queue_sink_pad) ++ #src_request_pad0.link(queue0_sink_pad) + + # getting pipeline bus + self.bus_pipeline = self.pipeline_preview.get_bus() + self.bus_pipeline.add_signal_watch() + self.bus_pipeline.connect('message::error', self.msg_error_cb) diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/stai-mpu-object-detection-python_6.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/stai-mpu-object-detection-python_6.%.bbappend index a4e61d90b..1e0a581a3 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/stai-mpu-object-detection-python_6.%.bbappend +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/object-detection/stai-mpu-object-detection-python_6.%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/../common:${THISDIR}/files:" @@ -7,6 +7,7 @@ SRC_URI += " \ file://patches/0001-object-detection-remove-weston-user-check-from-launc.patch \ file://patches/0002-object-detection-reduce-font-size-for-big-screens.patch \ file://patches/0003-object-detection-set-camera-preview-to-640x480.patch \ + ${@bb.utils.contains("BBFILE_COLLECTIONS", "x-linux-isp", "file://patches/0004-object-detection-fix-initialization-issue-with-x-lin.patch", "", d)} \ " do_install:append () { @@ -25,6 +26,3 @@ RDEPENDS:${PN} += " \ FILES:${PN} += " \ ${systemd_unitdir}/demos/scripts/* \ " - -# Make this recipe available only for the CCMP25 platform. -COMPATIBLE_MACHINE = "(ccmp25)" diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/files/patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/files/patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch new file mode 100644 index 000000000..428de433e --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/files/patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch @@ -0,0 +1,42 @@ +From: Arturo Buzarra +Date: Tue, 13 Jan 2026 15:31:33 +0100 +Subject: [PATCH] pose-estimation: fix initialization issue with x-linux-isp + support + +This commit fixes the following runtime error: + + Traceback (most recent call last): + File "/usr/local/x-linux-ai/pose-estimation/stai_mpu_pose_estimation.py", line 60, in _on_realize + self.camera_dual_pipeline_creation() + File "/usr/local/x-linux-ai/pose-estimation/stai_mpu_pose_estimation.py", line 164, in camera_dual_pipeline_creation + src_pad.link(queue_sink_pad) + File "/usr/lib/python3.12/site-packages/gi/overrides/Gst.py", line 204, in link + raise LinkError(ret) + gi.overrides.Gst.LinkError: + +https://onedigi.atlassian.net/browse/DEL-9890 + +Signed-off-by: Arturo Buzarra +--- + .../files/stai-mpu/stai_mpu_pose_estimation.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/stai-mpu/stai_mpu_pose_estimation.py b/stai-mpu/stai_mpu_pose_estimation.py +index 266bb49..a2be8f1 100644 +--- a/stai-mpu/stai_mpu_pose_estimation.py ++++ b/stai-mpu/stai_mpu_pose_estimation.py +@@ -159,12 +159,12 @@ class GstWidget(Gtk.Box): + src_pad = self.libcamerasrc.get_static_pad("src") + src_pad.set_property("stream-role", 3) + # still-capture + src_request_pad0.set_property("stream-role", 1) + +- src_pad.link(queue_sink_pad) +- src_request_pad0.link(queue0_sink_pad) ++ #src_pad.link(queue_sink_pad) ++ #src_request_pad0.link(queue0_sink_pad) + + # getting pipeline bus + self.bus_pipeline = self.pipeline_preview.get_bus() + self.bus_pipeline.add_signal_watch() + self.bus_pipeline.connect('message::error', self.msg_error_cb) diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/stai-mpu-pose-estimation-python_6.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/stai-mpu-pose-estimation-python_6.%.bbappend index 8f73c25ca..3e461900c 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/stai-mpu-pose-estimation-python_6.%.bbappend +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/pose-estimation/stai-mpu-pose-estimation-python_6.%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/../common:${THISDIR}/files:" @@ -7,6 +7,7 @@ SRC_URI += " \ file://patches/0001-pose-estimation-remove-weston-user-check-from-launch.patch \ file://patches/0002-pose-estimation-reduce-font-size-for-big-screens.patch \ file://patches/0003-pose-estimation-set-camera-preview-to-640x480.patch \ + ${@bb.utils.contains("BBFILE_COLLECTIONS", "x-linux-isp", "file://patches/0004-pose-estimation-fix-initialization-issue-with-x-linu.patch", "", d)} \ " do_install:append () { @@ -25,6 +26,3 @@ RDEPENDS:${PN} += " \ FILES:${PN} += " \ ${systemd_unitdir}/demos/scripts/* \ " - -# Make this recipe available only for the CCMP25 platform. -COMPATIBLE_MACHINE = "(ccmp25)" diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/files/patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/files/patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch new file mode 100644 index 000000000..27727e4ba --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/files/patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch @@ -0,0 +1,42 @@ +From: Arturo Buzarra +Date: Tue, 13 Jan 2026 16:03:19 +0100 +Subject: [PATCH] semantic-segmentation: fix initialization issue with + x-linux-isp support + +This commit fixes the following runtime error: + + Traceback (most recent call last): + File "/usr/local/x-linux-ai/semantic-segmentation/stai_mpu_semantic_segmentation.py", line 65, in _on_realize + self.camera_dual_pipeline_creation() + File "/usr/local/x-linux-ai/semantic-segmentation/stai_mpu_semantic_segmentation.py", line 169, in camera_dual_pipeline_creation + src_pad.link(queue_sink_pad) + File "/usr/lib/python3.12/site-packages/gi/overrides/Gst.py", line 204, in link + raise LinkError(ret) + gi.overrides.Gst.LinkError: + +https://onedigi.atlassian.net/browse/DEL-9890 + +Signed-off-by: Arturo Buzarra +--- + .../files/stai-mpu/stai_mpu_semantic_segmentation.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/stai-mpu/stai_mpu_semantic_segmentation.py b/stai-mpu/stai_mpu_semantic_segmentation.py +index d0ee636..45351d6 100644 +--- a/stai-mpu/stai_mpu_semantic_segmentation.py ++++ b/stai-mpu/stai_mpu_semantic_segmentation.py +@@ -164,12 +164,12 @@ class GstWidget(Gtk.Box): + src_pad = self.libcamerasrc.get_static_pad("src") + src_pad.set_property("stream-role", 3) + # still-capture + src_request_pad0.set_property("stream-role", 1) + +- src_pad.link(queue_sink_pad) +- src_request_pad0.link(queue0_sink_pad) ++ #src_pad.link(queue_sink_pad) ++ #src_request_pad0.link(queue0_sink_pad) + + # getting pipeline bus + self.bus_pipeline = self.pipeline_preview.get_bus() + self.bus_pipeline.add_signal_watch() + self.bus_pipeline.connect('message::error', self.msg_error_cb) diff --git a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/stai-mpu-semantic-segmentation-python_6.%.bbappend b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/stai-mpu-semantic-segmentation-python_6.%.bbappend index 16a4c6594..a343cccd5 100644 --- a/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/stai-mpu-semantic-segmentation-python_6.%.bbappend +++ b/meta-digi-dey/dynamic-layers/x-linux-ai/recipes-samples/semantic-segmentation/stai-mpu-semantic-segmentation-python_6.%.bbappend @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025, Digi International Inc. +# Copyright (C) 2024-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/../common:${THISDIR}/files:" @@ -8,6 +8,7 @@ SRC_URI += " \ file://patches/0002-semantic-segmentation-reduce-font-size-for-big-scree.patch \ file://patches/0003-semantic-segmentation-adapt-sample-for-root-user.patch \ file://patches/0004-semantic-segmentation-set-camera-preview-to-640x480.patch \ + ${@bb.utils.contains("BBFILE_COLLECTIONS", "x-linux-isp", "file://patches/0005-semantic-segmentation-fix-initialization-issue-with-.patch", "", d)} \ " do_install:append () { @@ -26,6 +27,3 @@ RDEPENDS:${PN} += " \ FILES:${PN} += " \ ${systemd_unitdir}/demos/scripts/* \ " - -# Make this recipe available only for the CCMP25 platform. -COMPATIBLE_MACHINE = "(ccmp25)" diff --git a/meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/files/patches/0001-stm32_isp_iqtune-add-support-to-ConnectCore-MP2.patch b/meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/files/patches/0001-stm32_isp_iqtune-add-support-to-ConnectCore-MP2.patch new file mode 100644 index 000000000..55c3ab1cc --- /dev/null +++ b/meta-digi-dey/dynamic-layers/x-linux-isp/recipes-iqtune/files/patches/0001-stm32_isp_iqtune-add-support-to-ConnectCore-MP2.patch @@ -0,0 +1,49 @@ +From: Arturo Buzarra +Date: Mon, 12 Jan 2026 21:44:34 +0100 +Subject: [PATCH] stm32_isp_iqtune: add support to ConnectCore MP2 + +Signed-off-by: Arturo Buzarra +--- + .../stm32-isp-iqtune-application/stm32_isp_iqtune_app.py | 5 ++--- + .../stm32-isp-iqtune-application/stm32_isp_iqtune_com.py | 2 +- + 2 files changed, 3 insertions(+), 4 deletions(-) + +diff --git a/stm32-isp-iqtune-application/stm32_isp_iqtune_app.py b/stm32-isp-iqtune-application/stm32_isp_iqtune_app.py +index d9b6564..0a5501d 100644 +--- a/stm32-isp-iqtune-application/stm32_isp_iqtune_app.py ++++ b/stm32-isp-iqtune-application/stm32_isp_iqtune_app.py +@@ -666,15 +666,14 @@ class Application: + version = subprocess.run(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,text=True) + if version.returncode == 0: + self.ostl_version = version.stdout.strip() + else: + print("Fail to get OSTL version") +- print("The application cannot start") +- os._exit(1) ++ self.ostl_version = 6.1 + + #Get device(machine) (eg "STM32MP257F-EV1") +- command = r"cat /sys/firmware/devicetree/base/model | awk '{print $2}'" ++ command = r"cat /sys/firmware/devicetree/base/digi,machine,name" + device = subprocess.run(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE,text=True) + if device.returncode == 0: + self.device = device.stdout.strip() + else: + print("Fail to get device") +diff --git a/stm32-isp-iqtune-application/stm32_isp_iqtune_com.py b/stm32-isp-iqtune-application/stm32_isp_iqtune_com.py +index cfe132b..fe8ed17 100644 +--- a/stm32-isp-iqtune-application/stm32_isp_iqtune_com.py ++++ b/stm32-isp-iqtune-application/stm32_isp_iqtune_com.py +@@ -666,11 +666,11 @@ class IQTuneCom(): + # 03 - HasGamma. Not supported. + read_values = read_values + pack('' /proc/device-tree/compatible; then - # CCMP13 - BT_REG_EN - GPIO PD13 - GPIO_CHIP="GPIOD" - GPIO_NUMBER="13" -else - # CCMP15 - BT_REG_EN - GPIO PZ6 - GPIO_CHIP="GPIOZ" - GPIO_NUMBER="6" -fi - log() { if type "systemd-cat" >/dev/null 2>/dev/null; then systemd-cat -p "${1}" -t "${SCRIPTNAME}" printf "%s" "${2}" @@ -36,20 +26,16 @@ log() { fi } -bt_power() { - gpioset "${GPIO_CHIP}" "${GPIO_NUMBER}"="${1}" -} - set_btaddr() { - hciconfig hci0 up + hciconfig ${HCI_IFACE} up sleep 0.2 bt_addr=$(hexdump -v -e '1/1 "%02X "' /proc/device-tree/bluetooth/mac-address \ | awk '{ for(i=NF; i>0; i--) printf "0x%s ", $i }' \ | sed 's/ $//') - hcitool -i hci0 cmd 0x3f 0x0001 ${bt_addr} - hciconfig hci0 down + hcitool -i ${HCI_IFACE} cmd 0x3f 0x0001 ${bt_addr} + hciconfig ${HCI_IFACE} down sleep 0.2 - hciconfig hci0 up + hciconfig ${HCI_IFACE} up } is_kernel_module_loaded() { @@ -61,18 +47,16 @@ bt_init() { is_kernel_module_loaded && log info "kernel module already present, skipping" && return 1 for i in $(seq ${RETRIES}); do - # Perform a power cycle - bt_power 0 - sleep 0.5 - bt_power 1 - # Load manually the kernel module modprobe "${MODULE_NAME}" sleep 1 # Reconfigure the HCI interface with the expected MAC address is_kernel_module_loaded && set_btaddr && log info "Bluetooth activated" && return 0 + bt_stop - log err "Cannot initialize Bluetooth, retrying..." + if [ "$i" -lt "$RETRIES" ]; then + log err "Cannot initialize Bluetooth, retrying..." + fi done log err "Failed to initialize Bluetooth interface" @@ -82,10 +66,9 @@ bt_init() { bt_stop() { hciconfig ${HCI_IFACE} down # Unload HCI driver instance - rmmod hci_uart + rmmod "${MODULE_NAME}" rmmod btbcm - # Disable Bluetooth chip - bt_power 0 && log info "Bluetooth disabled" && return 0 + log info "Bluetooth disabled" } case "$1" in diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8m/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/bluetooth-init_btdigi_qca65x4 similarity index 100% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8m/bluetooth-init rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/bluetooth-init_btdigi_qca65x4 diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx9/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/bluetooth-init_btnxpuart similarity index 100% rename from meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx9/bluetooth-init rename to meta-digi-dey/recipes-connectivity/bluez/bluez5-init/bluetooth-init_btnxpuart diff --git a/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8x/bluetooth-init b/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8x/bluetooth-init deleted file mode 100644 index 01f57c95f..000000000 --- a/meta-digi-dey/recipes-connectivity/bluez/bluez5-init/ccimx8x/bluetooth-init +++ /dev/null @@ -1,69 +0,0 @@ -#!/bin/sh -#=============================================================================== -# -# Copyright (C) 2018,2019 by Digi International Inc. -# All rights reserved. -# -# This program is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License version 2 as published by -# the Free Software Foundation. -# -# -# !Description: Initialize bluetooth hardware -# -#=============================================================================== - -bluetooth_init() { - # Get MAC address from the device tree. Use a default value if it has not been set. - BT_MACADDR="$(hexdump -ve '1/1 "%02X" ":"' /proc/device-tree/bluetooth/mac-address 2>/dev/null | sed 's/:$//g')" - if [ -z "${BT_MACADDR}" ] || [ "${BT_MACADDR}" = "00:00:00:00:00:00" ]; then - BT_MACADDR="00:04:F3:FF:FF:BB" - fi - - # Start the Bluetooth driver and bring up the interface - HCIATTACH_LOG="/var/log/hciattach.log" - - for RETRY in $(seq 1 5) - do - killproc hciattach - modprobe btdigi - if hciattach ttyBt qca ${BT_RATE:-3000000} -t30 ${BT_FLOW:-flow} unused ${BT_MACADDR} >${HCIATTACH_LOG} 2>&1; then - return - fi - rmmod btdigi - sleep 1 - done - BT_ERROR="FAIL (hciattach)" -} - -# Source function library -. /etc/init.d/functions - -case "$1" in - start) - if [ -d "/proc/device-tree/bluetooth" ]; then - if [ "$(tr -d '\0' 2>/dev/null -p [-n] [-v] +# +#=============================================================================== + +set -eu + +UPDATE_BIN="glinswup_PLSx3" +MM_SERVICE_SYSTEMD=${MM_SERVICE_SYSTEMD:-ModemManager} + +# On sysvinit-based platforms, NetworkManager respawns ModemManager automatically. +# Therefore we must stop NetworkManager to ensure ModemManager remains stopped +# during the firmware update process. +NM_SERVICE_VINIT=${NM_SERVICE_VINIT:-networkmanager} + +FW_FILE="" +PORT="" +VERBOSE=0 +RECOVERY=0 + +exit_error() +{ + ERROR_MESSAGE="$1" + ERROR_CODE="${2:-1}" + + echo "## ERROR: ${ERROR_MESSAGE}" >&2 + exit "${ERROR_CODE}" +} + +log_info() +{ + echo "## INFO: $*" +} + +stop_services() +{ + if command -v systemctl >/dev/null 2>&1; then + log_info "Stopping ${MM_SERVICE_SYSTEMD}..." + systemctl stop "${MM_SERVICE_SYSTEMD}" >/dev/null 2>&1 || true + return 0 + fi + + if [ -x "/etc/init.d/${NM_SERVICE_VINIT}" ]; then + log_info "Stopping ${NM_SERVICE_VINIT}..." + "/etc/init.d/${NM_SERVICE_VINIT}" stop >/dev/null 2>&1 || true + return 0 + fi + + log_info "No service manager found; skipping stop/start" + return 0 +} + +start_services() +{ + if command -v systemctl >/dev/null 2>&1; then + systemctl start "${MM_SERVICE_SYSTEMD}" >/dev/null 2>&1 || true + return 0 + fi + + if [ -x "/etc/init.d/${NM_SERVICE_VINIT}" ]; then + "/etc/init.d/${NM_SERVICE_VINIT}" start >/dev/null 2>&1 || true + return 0 + fi + + return 0 +} + +usage() +{ + cat <<'EOF' +Usage: + pls3_fw_update.sh -f -p [-n] [-v] + +Options: + -f, --firmware Path to firmware file (.usf) + -p, --port Serial port used by the updater tool (e.g. /dev/ttyACM0) + -n Recovery mode (pass -n to updater) + -v Verbose (pass -v to updater and show output) + +Environment: + MM_SERVICE_SYSTEMD=ModemManager + NM_SERVICE_VINIT=networkmanager +EOF +} + +parse_args() +{ + while [ $# -gt 0 ]; do + case "$1" in + -f|--firmware) + [ $# -ge 2 ] || exit_error "Missing value for $1" 2 + FW_FILE="${2:-}"; shift 2;; + -p|--port) + [ $# -ge 2 ] || exit_error "Missing value for $1" 2 + PORT="${2:-}"; shift 2;; + -n) + RECOVERY=1; shift;; + -v) + VERBOSE=1; shift;; + -h|--help) + usage; exit 0;; + *) + exit_error "Unknown argument: $1" 2;; + esac + done +} + +require_prereqs() +{ + [ -n "${FW_FILE}" ] || exit_error "Missing -f/--firmware" 2 + [ -n "${PORT}" ] || exit_error "Missing -p/--port" 2 + + [ -r "${FW_FILE}" ] || exit_error "Firmware file not readable: ${FW_FILE}" 2 + command -v "${UPDATE_BIN}" >/dev/null 2>&1 || exit_error "Update tool not found in PATH: ${UPDATE_BIN}" 2 + [ -e "${PORT}" ] || exit_error "Port does not exist: ${PORT}" 2 +} + +run_update() +{ + RC=0 + VERBOSE_ARG="" + RECOVERY_ARG="" + + [ "${VERBOSE}" -eq 1 ] && VERBOSE_ARG="-v" + [ "${RECOVERY}" -eq 1 ] && RECOVERY_ARG="-n" + + log_info "Running: ${UPDATE_BIN} -f '${FW_FILE}' -p '${PORT}' -u 1 ${RECOVERY_ARG} ${VERBOSE_ARG}" + + if [ "${VERBOSE}" -eq 1 ]; then + "${UPDATE_BIN}" -f "${FW_FILE}" -p "${PORT}" -u 1 ${RECOVERY_ARG} ${VERBOSE_ARG} || RC=$? + else + "${UPDATE_BIN}" -f "${FW_FILE}" -p "${PORT}" -u 1 ${RECOVERY_ARG} >/dev/null 2>&1 || RC=$? + fi + + if [ "${RC}" -ne 0 ]; then + exit_error "Firmware update FAILED (exit code: ${RC})" "${RC}" + fi + + log_info "Firmware update SUCCESS" +} + +parse_args "$@" +require_prereqs + +stop_services + +# Always try to restore services even if the update fails. +trap 'start_services' EXIT +run_update diff --git a/meta-digi-dey/recipes-connectivity/glinswup/glinswup-plsx3_1.0.5.bb b/meta-digi-dey/recipes-connectivity/glinswup/glinswup-plsx3_1.0.5.bb new file mode 100644 index 000000000..18fade71b --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/glinswup/glinswup-plsx3_1.0.5.bb @@ -0,0 +1,30 @@ +# Copyright (C) 2026, Digi International Inc. + +SUMMARY = "Cinterion PLSx3 firmware update tool (glinswup) + helper script" +SECTION = "console/tools" +LICENSE = "CLOSED" + +PKGNAME = "glinswup_PLSx3" + +# ARM tarball +SRC_URI:arm += "${DIGI_PKG_SRC}/${PKGNAME}-${PV}-arm.tar.gz;name=arm" +SRC_URI[arm.md5sum] = "e89f7e3e9cc97f4df51366d4a93e7542" +SRC_URI[arm.sha256sum] = "ca274365c244c3b43ce3e2e3b7b13c70a4104645673c7324a4cbc18132e28a86" + +# AARCH64 tarball +SRC_URI:aarch64 += "${DIGI_PKG_SRC}/${PKGNAME}-${PV}-aarch64.tar.gz;name=aarch64" +SRC_URI[aarch64.md5sum] = "4e44cd327ce7fe430e1d60d66ae7528e" +SRC_URI[aarch64.sha256sum] = "3f70500a4c6c280c3c42259fa51abc565fb76c97d4cea64aed36a3539b168c38" + +SRC_URI += " file://pls3_fw_update.sh" + +S = "${WORKDIR}/${PKGNAME}_${PV}" + +do_install:append() { + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/pls3_fw_update.sh ${D}${sbindir}/pls3_fw_update.sh +} + +inherit bin_package + +INSANE_SKIP:${PN} = "already-stripped" diff --git a/meta-digi-dey/recipes-connectivity/hostapd/hostapd/stm32mpcommon/defconfig b/meta-digi-dey/recipes-connectivity/hostapd/hostapd/stm32mpcommon/defconfig index 8bc9c7f9f..1639db625 100644 --- a/meta-digi-dey/recipes-connectivity/hostapd/hostapd/stm32mpcommon/defconfig +++ b/meta-digi-dey/recipes-connectivity/hostapd/hostapd/stm32mpcommon/defconfig @@ -161,7 +161,7 @@ CONFIG_IEEE80211AC=y # Note: This is experimental and work in progress. The definitions are still # subject to change and this should not be expected to interoperate with the # final IEEE 802.11ax version. -#CONFIG_IEEE80211AX=y +CONFIG_IEEE80211AX=y # Remove debugging code that is printing out debug messages to stdout. # This can be used to reduce the size of the hostapd considerably if debugging diff --git a/meta-digi-dey/recipes-connectivity/openssl/openssl/0001-e_devcrypto-add-func-ptr-for-init-do-ctrl.patch b/meta-digi-dey/recipes-connectivity/openssl/openssl/0001-e_devcrypto-add-func-ptr-for-init-do-ctrl.patch new file mode 100644 index 000000000..5720886d0 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/openssl/openssl/0001-e_devcrypto-add-func-ptr-for-init-do-ctrl.patch @@ -0,0 +1,97 @@ +From: Pankaj Gupta +Date: Tue, 18 Jan 2022 17:37:37 +0530 +Subject: [PATCH] e_devcrypto: add func ptr for init, do, ctrl + +In engine "devcrypto", as part prepare_cipher_methods() +- Added function pointer for init, do, ctrl and + variable "flags" such that: +- New cipher can override them to support offloads + to h/w via devcrypto. + +Upstream-Status: Pending [i.MX, Layerscape specific] +Signed-off-by: Pankaj Gupta +--- + engines/e_devcrypto.c | 31 ++++++++++++++++++++++++------- + 1 file changed, 24 insertions(+), 7 deletions(-) + +diff --git a/engines/e_devcrypto.c b/engines/e_devcrypto.c +index f66c7f1c1cf4..a46196b9f4aa 100644 +--- a/engines/e_devcrypto.c ++++ b/engines/e_devcrypto.c +@@ -403,6 +403,11 @@ static EVP_CIPHER *known_cipher_methods[OSSL_NELEM(cipher_data)] = { + }; + static int selected_ciphers[OSSL_NELEM(cipher_data)]; + static struct driver_info_st cipher_driver_info[OSSL_NELEM(cipher_data)]; ++int (*init)(EVP_CIPHER_CTX *ctx, const unsigned char *key, ++ const unsigned char *iv, int enc); ++int (*do_cipher)(EVP_CIPHER_CTX *ctx, unsigned char *out, ++ const unsigned char *in, size_t inl); ++int (*ctrl)(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); + + static int devcrypto_test_cipher(size_t cipher_data_index) + { +@@ -421,6 +426,7 @@ static void prepare_cipher_methods(void) + size_t i; + session_op_t sess; + unsigned long cipher_mode; ++ unsigned long flags; + #ifdef CIOCGSESSION2 + struct crypt_find_op fop; + enum devcrypto_accelerated_t accelerated; +@@ -432,16 +438,26 @@ static void prepare_cipher_methods(void) + + memset(&sess, 0, sizeof(sess)); + sess.key = (void *)"01234567890123456789012345678901234567890123456789"; ++ sess.mackey = (void *)"123456789ABCDEFGHIJKLMNO"; + + for (i = 0, known_cipher_nids_amount = 0; + i < OSSL_NELEM(cipher_data); i++) { + + selected_ciphers[i] = 1; ++ ++ init = cipher_init; ++ ctrl = cipher_ctrl; ++ flags = cipher_data[i].flags ++ | EVP_CIPH_CUSTOM_COPY ++ | EVP_CIPH_CTRL_INIT ++ | EVP_CIPH_FLAG_DEFAULT_ASN1; ++ + /* + * Check that the cipher is usable + */ + sess.cipher = cipher_data[i].devcryptoid; + sess.keylen = cipher_data[i].keylen; ++ + #ifdef CIOCGSESSION2 + /* + * When using CIOCGSESSION2, first try to allocate a hardware +@@ -468,6 +484,10 @@ static void prepare_cipher_methods(void) + + cipher_mode = cipher_data[i].flags & EVP_CIPH_MODE; + ++ do_cipher = (cipher_mode == EVP_CIPH_CTR_MODE ? ++ ctr_do_cipher : ++ cipher_do_cipher); ++ + if ((known_cipher_methods[i] = EVP_CIPHER_meth_new(cipher_data[i].nid, + cipher_mode == EVP_CIPH_CTR_MODE ? 1 : cipher_data[i].blocksize, + cipher_data[i].keylen)) +@@ -475,14 +495,11 @@ static void prepare_cipher_methods(void) + || !EVP_CIPHER_meth_set_iv_length(known_cipher_methods[i], + cipher_data[i].ivlen) + || !EVP_CIPHER_meth_set_flags(known_cipher_methods[i], +- cipher_data[i].flags +- | EVP_CIPH_CUSTOM_COPY +- | EVP_CIPH_CTRL_INIT +- | EVP_CIPH_FLAG_DEFAULT_ASN1) +- || !EVP_CIPHER_meth_set_init(known_cipher_methods[i], cipher_init) ++ flags) ++ || !EVP_CIPHER_meth_set_init(known_cipher_methods[i], init) + || !EVP_CIPHER_meth_set_do_cipher(known_cipher_methods[i], +- cipher_mode == EVP_CIPH_CTR_MODE ? ctr_do_cipher : cipher_do_cipher) +- || !EVP_CIPHER_meth_set_ctrl(known_cipher_methods[i], cipher_ctrl) ++ do_cipher) ++ || !EVP_CIPHER_meth_set_ctrl(known_cipher_methods[i], ctrl) + || !EVP_CIPHER_meth_set_cleanup(known_cipher_methods[i], + cipher_cleanup) + || !EVP_CIPHER_meth_set_impl_ctx_size(known_cipher_methods[i], diff --git a/meta-digi-dey/recipes-connectivity/openssl/openssl/0002-e_devcrypto-add-support-for-TLS1.2-algorithms-offloa.patch b/meta-digi-dey/recipes-connectivity/openssl/openssl/0002-e_devcrypto-add-support-for-TLS1.2-algorithms-offloa.patch new file mode 100644 index 000000000..0f579790b --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/openssl/openssl/0002-e_devcrypto-add-support-for-TLS1.2-algorithms-offloa.patch @@ -0,0 +1,375 @@ +From: Pankaj Gupta +Date: Tue, 18 Jan 2022 17:38:11 +0530 +Subject: [PATCH] e_devcrypto: add support for TLS1.2 algorithms offload + + - aes-128-cbc-hmac-sha256 + - aes-256-cbc-hmac-sha256 + +Enabled the support of TLS1.1 algorithms offload + + - aes-128-cbc-hmac-sha1 + - aes-256-cbc-hmac-sha1 + +TLS algorithm support in CAAM Linux kernel driver. + +Fix: Remove the support for TLS1.0. + +Upstream-Status: Pending [i.MX, Layerscape specific] +Signed-off-by: Pankaj Gupta +--- + engines/e_devcrypto.c | 273 ++++++++++++++++++++++++++++++++++++++---- + 1 file changed, 249 insertions(+), 24 deletions(-) + +diff --git a/engines/e_devcrypto.c b/engines/e_devcrypto.c +index a46196b9f4aa..1d21dffabfbf 100644 +--- a/engines/e_devcrypto.c ++++ b/engines/e_devcrypto.c +@@ -28,6 +28,7 @@ + #include "internal/nelem.h" + + /* #define ENGINE_DEVCRYPTO_DEBUG */ ++#define TLS1_1_VERSION 0x0302 + + #if CRYPTO_ALGORITHM_MIN < CRYPTO_ALGORITHM_MAX + #define CHECK_BSD_STYLE_MACROS +@@ -108,10 +109,14 @@ struct cipher_ctx { + session_op_t sess; + int op; /* COP_ENCRYPT or COP_DECRYPT */ + unsigned long mode; /* EVP_CIPH_*_MODE */ ++ unsigned char *aad; ++ unsigned int aad_len; ++ unsigned int len; + + /* to handle ctr mode being a stream cipher */ + unsigned char partial[EVP_MAX_BLOCK_LENGTH]; + unsigned int blocksize, num; ++ unsigned int tls_ver; + }; + + static const struct cipher_data_st { +@@ -121,49 +126,66 @@ static const struct cipher_data_st { + int ivlen; + int flags; + int devcryptoid; ++ int mackeylen; + } cipher_data[] = { + #ifndef OPENSSL_NO_DES +- { NID_des_cbc, 8, 8, 8, EVP_CIPH_CBC_MODE, CRYPTO_DES_CBC }, +- { NID_des_ede3_cbc, 8, 24, 8, EVP_CIPH_CBC_MODE, CRYPTO_3DES_CBC }, ++ { NID_des_cbc, 8, 8, 8, EVP_CIPH_CBC_MODE, CRYPTO_DES_CBC, 0 }, ++ { NID_des_ede3_cbc, 8, 24, 8, EVP_CIPH_CBC_MODE, CRYPTO_3DES_CBC, 0 }, + #endif + #ifndef OPENSSL_NO_BF +- { NID_bf_cbc, 8, 16, 8, EVP_CIPH_CBC_MODE, CRYPTO_BLF_CBC }, ++ { NID_bf_cbc, 8, 16, 8, EVP_CIPH_CBC_MODE, CRYPTO_BLF_CBC, 0 }, + #endif + #ifndef OPENSSL_NO_CAST +- { NID_cast5_cbc, 8, 16, 8, EVP_CIPH_CBC_MODE, CRYPTO_CAST_CBC }, ++ { NID_cast5_cbc, 8, 16, 8, EVP_CIPH_CBC_MODE, CRYPTO_CAST_CBC, 0 }, + #endif +- { NID_aes_128_cbc, 16, 128 / 8, 16, EVP_CIPH_CBC_MODE, CRYPTO_AES_CBC }, +- { NID_aes_192_cbc, 16, 192 / 8, 16, EVP_CIPH_CBC_MODE, CRYPTO_AES_CBC }, +- { NID_aes_256_cbc, 16, 256 / 8, 16, EVP_CIPH_CBC_MODE, CRYPTO_AES_CBC }, ++ { NID_aes_128_cbc, 16, 128 / 8, 16, EVP_CIPH_CBC_MODE, CRYPTO_AES_CBC, 0 }, ++ { NID_aes_192_cbc, 16, 192 / 8, 16, EVP_CIPH_CBC_MODE, CRYPTO_AES_CBC, 0 }, ++ { NID_aes_256_cbc, 16, 256 / 8, 16, EVP_CIPH_CBC_MODE, CRYPTO_AES_CBC, 0 }, ++ { NID_aes_128_cbc_hmac_sha1, 16, 16, 16, ++ EVP_CIPH_CBC_MODE | EVP_CIPH_FLAG_AEAD_CIPHER, ++ CRYPTO_TLS11_AES_CBC_HMAC_SHA1, 20 }, ++ { NID_aes_256_cbc_hmac_sha1, 16, 32, 16, ++ EVP_CIPH_CBC_MODE | EVP_CIPH_FLAG_AEAD_CIPHER, ++ CRYPTO_TLS11_AES_CBC_HMAC_SHA1, 20 }, ++ { NID_aes_128_cbc_hmac_sha256, 16, 16, 16, ++ EVP_CIPH_CBC_MODE | EVP_CIPH_FLAG_AEAD_CIPHER, ++ CRYPTO_TLS12_AES_CBC_HMAC_SHA256, 32 }, ++ { NID_aes_256_cbc_hmac_sha256, 16, 32, 16, ++ EVP_CIPH_CBC_MODE | EVP_CIPH_FLAG_AEAD_CIPHER, ++ CRYPTO_TLS12_AES_CBC_HMAC_SHA256, 32 }, + #ifndef OPENSSL_NO_RC4 +- { NID_rc4, 1, 16, 0, EVP_CIPH_STREAM_CIPHER, CRYPTO_ARC4 }, ++ { NID_rc4, 1, 16, 0, EVP_CIPH_STREAM_CIPHER, CRYPTO_ARC4, 0 }, + #endif + #if !defined(CHECK_BSD_STYLE_MACROS) || defined(CRYPTO_AES_CTR) +- { NID_aes_128_ctr, 16, 128 / 8, 16, EVP_CIPH_CTR_MODE, CRYPTO_AES_CTR }, +- { NID_aes_192_ctr, 16, 192 / 8, 16, EVP_CIPH_CTR_MODE, CRYPTO_AES_CTR }, +- { NID_aes_256_ctr, 16, 256 / 8, 16, EVP_CIPH_CTR_MODE, CRYPTO_AES_CTR }, ++ { NID_aes_128_ctr, 16, 128 / 8, 16, EVP_CIPH_CTR_MODE, CRYPTO_AES_CTR, 0 }, ++ { NID_aes_192_ctr, 16, 192 / 8, 16, EVP_CIPH_CTR_MODE, CRYPTO_AES_CTR, 0 }, ++ { NID_aes_256_ctr, 16, 256 / 8, 16, EVP_CIPH_CTR_MODE, CRYPTO_AES_CTR, 0 }, + #endif + #if 0 /* Not yet supported */ +- { NID_aes_128_xts, 16, 128 / 8 * 2, 16, EVP_CIPH_XTS_MODE, CRYPTO_AES_XTS }, +- { NID_aes_256_xts, 16, 256 / 8 * 2, 16, EVP_CIPH_XTS_MODE, CRYPTO_AES_XTS }, ++ { NID_aes_128_xts, 16, 128 / 8 * 2, 16, EVP_CIPH_XTS_MODE, CRYPTO_AES_XTS, 0 }, ++ { NID_aes_256_xts, 16, 256 / 8 * 2, 16, EVP_CIPH_XTS_MODE, CRYPTO_AES_XTS, 0 }, + #endif + #if !defined(CHECK_BSD_STYLE_MACROS) || defined(CRYPTO_AES_ECB) +- { NID_aes_128_ecb, 16, 128 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, +- { NID_aes_192_ecb, 16, 192 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, +- { NID_aes_256_ecb, 16, 256 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB }, ++ { NID_aes_128_ecb, 16, 128 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB, 0 }, ++ { NID_aes_192_ecb, 16, 192 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB, 0 }, ++ { NID_aes_256_ecb, 16, 256 / 8, 0, EVP_CIPH_ECB_MODE, CRYPTO_AES_ECB, 0 }, + #endif + #if 0 /* Not yet supported */ +- { NID_aes_128_gcm, 16, 128 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM }, +- { NID_aes_192_gcm, 16, 192 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM }, +- { NID_aes_256_gcm, 16, 256 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM }, ++ { NID_aes_128_gcm, 16, 128 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM, 0 }, ++ { NID_aes_192_gcm, 16, 192 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM, 0 }, ++ { NID_aes_256_gcm, 16, 256 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM, 0 }, ++#endif ++#ifdef OPENSSL_NXP_CAAM ++ { NID_aes_128_gcm, 16, 128 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM, 0 }, ++ { NID_aes_192_gcm, 16, 192 / 8, 16, EVP_CIPH_GCM_MODE, CRYPTO_AES_GCM, 0 }, + #endif + #ifndef OPENSSL_NO_CAMELLIA + { NID_camellia_128_cbc, 16, 128 / 8, 16, EVP_CIPH_CBC_MODE, +- CRYPTO_CAMELLIA_CBC }, ++ CRYPTO_CAMELLIA_CBC, 0 }, + { NID_camellia_192_cbc, 16, 192 / 8, 16, EVP_CIPH_CBC_MODE, +- CRYPTO_CAMELLIA_CBC }, ++ CRYPTO_CAMELLIA_CBC, 0 }, + { NID_camellia_256_cbc, 16, 256 / 8, 16, EVP_CIPH_CBC_MODE, +- CRYPTO_CAMELLIA_CBC }, ++ CRYPTO_CAMELLIA_CBC, 0 }, + #endif + }; + +@@ -198,6 +220,193 @@ static const struct cipher_data_st *get_cipher_data(int nid) + return &cipher_data[get_cipher_data_index(nid)]; + } + ++/* ++ * Save the encryption key provided by upper layers. This function is called ++ * by EVP_CipherInit_ex to initialize the algorithm's extra data. We can't do ++ * much here because the mac key is not available. The next call should/will ++ * be to cryptodev_cbc_hmac_sha1_ctrl with parameter ++ * EVP_CTRL_AEAD_SET_MAC_KEY, to set the hmac key. There we call CIOCGSESSION ++ * with both the crypto and hmac keys. ++ */ ++static int cryptodev_init_aead_key(EVP_CIPHER_CTX *ctx, ++ const unsigned char *key, const unsigned char *iv, int enc) ++{ ++ struct cipher_ctx *state = EVP_CIPHER_CTX_get_cipher_data(ctx); ++ struct session_op *sess = &state->sess; ++ int cipher = -1, i; ++ ++ for (i = 0; cipher_data[i].devcryptoid; i++) { ++ if (EVP_CIPHER_CTX_nid(ctx) == cipher_data[i].nid && ++ EVP_CIPHER_CTX_iv_length(ctx) <= cipher_data[i].ivlen && ++ EVP_CIPHER_CTX_key_length(ctx) == cipher_data[i].keylen) { ++ cipher = cipher_data[i].devcryptoid; ++ break; ++ } ++ } ++ ++ if (!cipher_data[i].devcryptoid) ++ return (0); ++ ++ memset(sess, 0, sizeof(*sess)); ++ ++ sess->key = (void *) key; ++ sess->keylen = EVP_CIPHER_CTX_key_length(ctx); ++ sess->cipher = cipher; ++ ++ /* for whatever reason, (1) means success */ ++ return 1; ++} ++ ++static int cryptodev_aead_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, ++ const unsigned char *in, size_t len) ++{ ++ struct crypt_auth_op cryp; ++ struct cipher_ctx *state = EVP_CIPHER_CTX_get_cipher_data(ctx); ++ struct session_op *sess = &state->sess; ++ const void *iiv; ++ unsigned char save_iv[EVP_MAX_IV_LENGTH]; ++ ++ if (cfd < 0) ++ return (0); ++ if (!len) ++ return (1); ++ if ((len % EVP_CIPHER_CTX_block_size(ctx)) != 0) ++ return (0); ++ ++ memset(&cryp, 0, sizeof(cryp)); ++ ++ if (EVP_CIPHER_CTX_iv_length(ctx) > 0) { ++ if (!EVP_CIPHER_CTX_encrypting(ctx)) { ++ iiv = in + len - EVP_CIPHER_CTX_iv_length(ctx); ++ memcpy(save_iv, iiv, EVP_CIPHER_CTX_iv_length(ctx)); ++ ++ if (state->tls_ver >= TLS1_1_VERSION) { ++ memcpy(EVP_CIPHER_CTX_iv_noconst(ctx), in, ++ EVP_CIPHER_CTX_iv_length(ctx)); ++ in += EVP_CIPHER_CTX_iv_length(ctx); ++ out += EVP_CIPHER_CTX_iv_length(ctx); ++ len -= EVP_CIPHER_CTX_iv_length(ctx); ++ } ++ } ++ cryp.iv = (void *) EVP_CIPHER_CTX_iv(ctx); ++ } else ++ cryp.iv = NULL; ++ ++ /* TODO: make a seamless integration with cryptodev flags */ ++ switch (EVP_CIPHER_CTX_nid(ctx)) { ++ case NID_aes_128_cbc_hmac_sha1: ++ case NID_aes_256_cbc_hmac_sha1: ++ case NID_aes_128_cbc_hmac_sha256: ++ case NID_aes_256_cbc_hmac_sha256: ++ cryp.flags = COP_FLAG_AEAD_TLS_TYPE; ++ } ++ cryp.ses = sess->ses; ++ cryp.len = state->len; ++ cryp.src = (void *) in; ++ cryp.dst = (void *) out; ++ cryp.auth_src = state->aad; ++ cryp.auth_len = state->aad_len; ++ ++ cryp.op = EVP_CIPHER_CTX_encrypting(ctx) ? COP_ENCRYPT : COP_DECRYPT; ++ ++ if (ioctl(cfd, CIOCAUTHCRYPT, &cryp) == -1) { ++ /* ++ * XXX need better errror handling this can fail for a number of ++ * different reasons. ++ */ ++ return 0; ++ } ++ ++ if (EVP_CIPHER_CTX_iv_length(ctx) > 0) { ++ if (EVP_CIPHER_CTX_encrypting(ctx)) ++ iiv = out + len - EVP_CIPHER_CTX_iv_length(ctx); ++ else ++ iiv = save_iv; ++ ++ memcpy(EVP_CIPHER_CTX_iv_noconst(ctx), iiv, ++ EVP_CIPHER_CTX_iv_length(ctx)); ++ } ++ return 1; ++} ++ ++static int cryptodev_cbc_hmac_sha1_ctrl(EVP_CIPHER_CTX *ctx, int type, ++ int arg, void *ptr) ++{ ++ switch (type) { ++ case EVP_CTRL_AEAD_SET_MAC_KEY: ++ { ++ /* TODO: what happens with hmac keys larger than 64 bytes? */ ++ struct cipher_ctx *state = ++ EVP_CIPHER_CTX_get_cipher_data(ctx); ++ struct session_op *sess = &state->sess; ++ ++ /* the rest should have been set in cryptodev_init_aead_key */ ++ sess->mackey = ptr; ++ sess->mackeylen = arg; ++ if (ioctl(cfd, CIOCGSESSION, sess) == -1) ++ return 0; ++ ++ return 1; ++ } ++ case EVP_CTRL_AEAD_TLS1_AAD: ++ { ++ /* ptr points to the associated data buffer of 13 bytes */ ++ struct cipher_ctx *state = ++ EVP_CIPHER_CTX_get_cipher_data(ctx); ++ unsigned char *p = ptr; ++ unsigned int cryptlen = p[arg - 2] << 8 | p[arg - 1]; ++ unsigned int maclen; ++ unsigned int blocksize = EVP_CIPHER_CTX_block_size(ctx); ++ int ret; ++ ++ state->tls_ver = p[arg - 4] << 8 | p[arg - 3]; ++ state->aad = ptr; ++ state->aad_len = arg; ++ ++ /* TODO: this should be an extension of EVP_CIPHER struct */ ++ switch (EVP_CIPHER_CTX_nid(ctx)) { ++ case NID_aes_128_cbc_hmac_sha1: ++ case NID_aes_256_cbc_hmac_sha1: ++ maclen = SHA_DIGEST_LENGTH; ++ break; ++ case NID_aes_128_cbc_hmac_sha256: ++ case NID_aes_256_cbc_hmac_sha256: ++ maclen = SHA256_DIGEST_LENGTH; ++ break; ++ default: ++ /* ++ * Only above 4 supported NIDs are used to enter to this ++ * function. If any other NID reaches this function, ++ * there's a grave coding error further down. ++ */ ++ assert("Code that never should be reached" == NULL); ++ return -1; ++ } ++ ++ /* space required for encryption (not only TLS padding) */ ++ if (EVP_CIPHER_CTX_encrypting(ctx)) { ++ if (state->tls_ver >= TLS1_1_VERSION) { ++ p[arg - 2] = (cryptlen - blocksize) >> 8; ++ p[arg - 1] = (cryptlen - blocksize); ++ } ++ ret = (int)(((cryptlen + maclen + ++ blocksize) & -blocksize) - cryptlen); ++ } else { ++ if (state->tls_ver >= TLS1_1_VERSION) { ++ cryptlen -= blocksize; ++ p[arg - 2] = cryptlen >> 8; ++ p[arg - 1] = cryptlen; ++ } ++ ret = maclen; ++ } ++ state->len = cryptlen; ++ return ret; ++ } ++ default: ++ return -1; ++ } ++} ++ + /* + * Following are the three necessary functions to map OpenSSL functionality + * with cryptodev. +@@ -457,6 +666,7 @@ static void prepare_cipher_methods(void) + */ + sess.cipher = cipher_data[i].devcryptoid; + sess.keylen = cipher_data[i].keylen; ++ sess.mackeylen = cipher_data[i].mackeylen; + + #ifdef CIOCGSESSION2 + /* +@@ -488,6 +698,15 @@ static void prepare_cipher_methods(void) + ctr_do_cipher : + cipher_do_cipher); + ++ if (cipher_data[i].nid == NID_aes_128_cbc_hmac_sha1 ++ || cipher_data[i].nid == NID_aes_256_cbc_hmac_sha1 ++ || cipher_data[i].nid == NID_aes_128_cbc_hmac_sha256 ++ || cipher_data[i].nid == NID_aes_256_cbc_hmac_sha256) { ++ init = cryptodev_init_aead_key; ++ do_cipher = cryptodev_aead_cipher; ++ ctrl = cryptodev_cbc_hmac_sha1_ctrl; ++ flags = cipher_data[i].flags; ++ } + if ((known_cipher_methods[i] = EVP_CIPHER_meth_new(cipher_data[i].nid, + cipher_mode == EVP_CIPH_CTR_MODE ? 1 : cipher_data[i].blocksize, + cipher_data[i].keylen)) +@@ -529,10 +748,16 @@ static void prepare_cipher_methods(void) + } + #endif /* CIOCGSESSINFO */ + } ++ ++ if (cipher_data[i].nid == NID_aes_128_cbc_hmac_sha1 ++ || cipher_data[i].nid == NID_aes_256_cbc_hmac_sha1 ++ || cipher_data[i].nid == NID_aes_128_cbc_hmac_sha256 ++ || cipher_data[i].nid == NID_aes_256_cbc_hmac_sha256) ++ EVP_add_cipher(known_cipher_methods[i]); ++ + ioctl(cfd, CIOCFSESSION, &sess.ses); +- if (devcrypto_test_cipher(i)) { ++ if (devcrypto_test_cipher(i)) + known_cipher_nids[known_cipher_nids_amount++] = cipher_data[i].nid; +- } + } + } + diff --git a/meta-digi-dey/recipes-connectivity/openssl/openssl/0003-Set-algorithm-id-before-generating-the-EC-key.patch b/meta-digi-dey/recipes-connectivity/openssl/openssl/0003-Set-algorithm-id-before-generating-the-EC-key.patch new file mode 100644 index 000000000..b1bd5bd70 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/openssl/openssl/0003-Set-algorithm-id-before-generating-the-EC-key.patch @@ -0,0 +1,65 @@ +From: Ilie Halip +Date: Wed, 12 Mar 2025 20:57:10 +0200 +Subject: [PATCH] Set "algorithm-id" before generating the EC key. + +Upstream-Status: Pending +Signed-off-by: Ilie Halip +--- + ssl/s3_lib.c | 30 ++++++++++++++++++++++++++++++ + 1 file changed, 30 insertions(+) + +diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c +index 0e1445b38fb7..62f7409cb2aa 100644 +--- a/ssl/s3_lib.c ++++ b/ssl/s3_lib.c +@@ -5274,6 +5274,30 @@ err: + return ret; + } + ++void ssl_generate_set_pkey_alg(SSL_CONNECTION *s, EVP_PKEY_CTX *pctx) ++{ ++ const char *alg = NULL; ++ OSSL_PARAM algparams[2] = { 0 }; ++ ++ switch (s->version) { ++ case TLS1_2_VERSION: ++ alg = "tls1.2"; ++ break; ++ case TLS1_3_VERSION: ++ alg = "tls1.3"; ++ break; ++ } ++ ++ if (alg) { ++ algparams[0] = OSSL_PARAM_construct_utf8_string(OSSL_PKEY_PARAM_ALGORITHM_ID, ++ (char *)alg, 0); ++ algparams[1] = OSSL_PARAM_construct_end(); ++ ++ /* intentionally ignore the result */ ++ EVP_PKEY_CTX_set_params(pctx, algparams); ++ } ++} ++ + /* Generate a private key from parameters */ + EVP_PKEY *ssl_generate_pkey(SSL_CONNECTION *s, EVP_PKEY *pm) + { +@@ -5288,6 +5312,9 @@ EVP_PKEY *ssl_generate_pkey(SSL_CONNECTION *s, EVP_PKEY *pm) + goto err; + if (EVP_PKEY_keygen_init(pctx) <= 0) + goto err; ++ ++ ssl_generate_set_pkey_alg(s, pctx); ++ + if (EVP_PKEY_keygen(pctx, &pkey) <= 0) { + EVP_PKEY_free(pkey); + pkey = NULL; +@@ -5326,6 +5353,9 @@ EVP_PKEY *ssl_generate_pkey_group(SSL_CONNECTION *s, uint16_t id) + SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_EVP_LIB); + goto err; + } ++ ++ ssl_generate_set_pkey_alg(s, pctx); ++ + if (EVP_PKEY_keygen(pctx, &pkey) <= 0) { + SSLfatal(s, SSL_AD_INTERNAL_ERROR, ERR_R_EVP_LIB); + EVP_PKEY_free(pkey); diff --git a/meta-digi-dey/recipes-connectivity/openssl/openssl/openssl-3.0-add-Kernel-TLS-configuration.patch b/meta-digi-dey/recipes-connectivity/openssl/openssl/openssl-3.0-add-Kernel-TLS-configuration.patch new file mode 100644 index 000000000..decdda2cb --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/openssl/openssl/openssl-3.0-add-Kernel-TLS-configuration.patch @@ -0,0 +1,30 @@ +From: Gaurav Jain +Date: Wed, 19 Jan 2022 15:45:29 +0530 +Subject: [PATCH] openssl 3.0: add Kernel TLS configuration + +Upstream-Status: Inappropriate [i.MX, Layerscape specific] +Signed-off-by: Gaurav Jain +--- + apps/openssl.cnf | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/apps/openssl.cnf b/apps/openssl.cnf +index abace0ea7f1c..f4d5ec19de27 100644 +--- a/apps/openssl.cnf ++++ b/apps/openssl.cnf +@@ -30,6 +30,15 @@ oid_section = new_oids + # (Alternatively, use a configuration file that has only + # X.509v3 extensions in its main [= default] section.) + ++[ openssl_init ] ++ssl_conf = ssl_configuration ++ ++[ ssl_configuration ] ++ktls = ktls_conf ++ ++[ ktls_conf ] ++Options = KTLS ++ + [ new_oids ] + # We can add new OIDs in here for use by 'ca', 'req' and 'ts'. + # Add a simple OID like this: diff --git a/meta-digi-dey/recipes-connectivity/openssl/openssl_%.bbappend b/meta-digi-dey/recipes-connectivity/openssl/openssl_%.bbappend deleted file mode 100644 index 78a05fbf6..000000000 --- a/meta-digi-dey/recipes-connectivity/openssl/openssl_%.bbappend +++ /dev/null @@ -1,3 +0,0 @@ -# Copyright (C) 2022, Digi International Inc. - -EXTRA_OECONF:append = " enable-weak-ssl-ciphers" diff --git a/meta-digi-dey/recipes-connectivity/openssl/openssl_3.5.%.bbappend b/meta-digi-dey/recipes-connectivity/openssl/openssl_3.5.%.bbappend new file mode 100644 index 000000000..23474a0a8 --- /dev/null +++ b/meta-digi-dey/recipes-connectivity/openssl/openssl_3.5.%.bbappend @@ -0,0 +1,14 @@ +# Copyright (C) 2022-2026 Digi International Inc. + +FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:" + +SRC_URI += "file://openssl-3.0-add-Kernel-TLS-configuration.patch \ + file://0001-e_devcrypto-add-func-ptr-for-init-do-ctrl.patch \ + file://0002-e_devcrypto-add-support-for-TLS1.2-algorithms-offloa.patch \ + file://0003-Set-algorithm-id-before-generating-the-EC-key.patch \ + " + +PACKAGECONFIG:append:imx-nxp-bsp = " cryptodev-linux" + +EXTRA_OECONF:append = " enable-ktls" +EXTRA_OECONF:append = " enable-weak-ssl-ciphers" diff --git a/meta-digi-dey/recipes-connectivity/packagegroups/packagegroup-dey-wireless.bb b/meta-digi-dey/recipes-connectivity/packagegroups/packagegroup-dey-wireless.bb index 3da334aa4..5a4f7bc4b 100644 --- a/meta-digi-dey/recipes-connectivity/packagegroups/packagegroup-dey-wireless.bb +++ b/meta-digi-dey/recipes-connectivity/packagegroups/packagegroup-dey-wireless.bb @@ -1,5 +1,5 @@ # -# Copyright (C) 2012-2025, Digi International Inc. +# Copyright (C) 2012-2026, Digi International Inc. # SUMMARY = "Wireless packagegroup for DEY image" @@ -16,4 +16,5 @@ RDEPENDS:${PN} = "\ " RDEPENDS:${PN}:append:ccimx6sbc = " ath-prop-tools" -RDEPENDS:${PN}:append:ccimx9 = " nxp-wlan-utils" +RDEPENDS:${PN}:append:ccimx91 = " nxp-wlan-utils" +RDEPENDS:${PN}:append:ccimx93 = " nxp-wlan-utils" diff --git a/meta-digi-dey/recipes-core/images/core-image-base.bbappend b/meta-digi-dey/recipes-core/images/core-image-base.bbappend index cf4960ebd..34a8f48ec 100644 --- a/meta-digi-dey/recipes-core/images/core-image-base.bbappend +++ b/meta-digi-dey/recipes-core/images/core-image-base.bbappend @@ -1,5 +1,5 @@ # -# Copyright (C) 2016-2024, Digi International Inc. +# Copyright (C) 2016-2026, Digi International Inc. # IMAGE_FEATURES += " \ @@ -12,8 +12,8 @@ IMAGE_FEATURES += " \ ${@bb.utils.contains('MACHINE_FEATURES', 'wifi', 'dey-wireless', '', d)} \ " -# Remove graphical packages for non-graphical platforms -IMAGE_FEATURES:remove = "${@oe.utils.conditional('IS_HEADLESS', 'true', ' splash ', '', d)}" +# Remove splash from poky core-image-base +IMAGE_FEATURES:remove = "splash" CORE_IMAGE_BASE_INSTALL += "dey-examples-digiapix" diff --git a/meta-digi-dey/recipes-core/images/dey-image-lvgl.bb b/meta-digi-dey/recipes-core/images/dey-image-lvgl.bb index 7f680feaa..0aa80f919 100644 --- a/meta-digi-dey/recipes-core/images/dey-image-lvgl.bb +++ b/meta-digi-dey/recipes-core/images/dey-image-lvgl.bb @@ -1,5 +1,5 @@ # -# Copyright (C) 2023-2025, Digi International Inc. +# Copyright (C) 2023-2026, Digi International Inc. # require dey-image-graphical.inc @@ -9,8 +9,7 @@ GRAPHICAL_CORE = "lvgl" # On the ccimx6ul, the only supported LVGL backend is fbdev, so there is no # need for a X11 desktop environment. -IMAGE_FEATURES:remove:ccimx6ul = " x11-base x11-sato " -IMAGE_FEATURES:remove = " weston " +IMAGE_FEATURES:remove:ccimx6ul = "x11-base x11-sato " # Remove GRAPHICAL_BACKEND suffix (-x11) from ccimx6ul image names DEFAULT_IMAGE_BASENAME:ccimx6ul = "dey-image-${GRAPHICAL_CORE}" diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.br0.atheros.example b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.br0.atheros.example deleted file mode 100644 index c2b671a6e..000000000 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.br0.atheros.example +++ /dev/null @@ -1,8 +0,0 @@ - -## Example bridge between eth0 and wlan0 (Atheros AR6233) -#auto br0 -#iface br0 inet dhcp -# bridge_ports eth0 wlan0 -# bridge_wpa_driver nl80211 -# bridge_wpa_conf /etc/wpa_supplicant.conf -# pre-up [ $(find /sys/devices -name modalias -print0 | xargs -0 sort -u -z | grep sdio:c00v0271d0301) ] diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.br0.example b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.br0.example deleted file mode 100644 index ac9023c04..000000000 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.br0.example +++ /dev/null @@ -1,6 +0,0 @@ - -## Example bridge between eth0 and wlan1 (Qualcomm QCA65x4) -#auto br0 -#iface br0 inet dhcp -# bridge_ports eth0 wlan1 -# pre-up [ $(find /sys/devices -name modalias -print0 | xargs -0 sort -u -z | grep sdio:c00v0271d050A) ] diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.atheros.dhcp b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.atheros.dhcp deleted file mode 100644 index e6f114131..000000000 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.atheros.dhcp +++ /dev/null @@ -1,8 +0,0 @@ - -# Wi-Fi AP interface (Atheros AR6233) -#auto wlan1 -iface wlan1 inet dhcp - udhcpc_opts -S -b >/dev/null & - pre-up [ $(find /sys/devices -name modalias -print0 | xargs -0 sort -u -z | grep sdio:c00v0271d0301) ] - wpa-driver nl80211 - wpa-conf /etc/wpa_supplicant.conf diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.atheros.static b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.atheros.static deleted file mode 100644 index eb8af110e..000000000 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.atheros.static +++ /dev/null @@ -1,11 +0,0 @@ - -# Wi-Fi AP interface (Atheros AR6233) -#auto wlan1 -iface wlan1 inet static - address ##WLAN1_STATIC_IP## - netmask ##WLAN1_STATIC_NETMASK## - gateway ##WLAN1_STATIC_GATEWAY## - dns-nameservers ##WLAN1_STATIC_DNS## - pre-up [ $(find /sys/devices -name modalias -print0 | xargs -0 sort -u -z | grep sdio:c00v0271d0301) ] - wpa-driver nl80211 - wpa-conf /etc/wpa_supplicant.conf diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.dhcp b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.dhcp deleted file mode 100644 index 3f35e5aa4..000000000 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.dhcp +++ /dev/null @@ -1,8 +0,0 @@ - -# Wi-Fi AP interface (Qualcomm QCA65x4) -#auto wlan1 -iface wlan1 inet dhcp - udhcpc_opts -S -b >/dev/null & - pre-up [ $(find /sys/devices -name modalias -print0 | xargs -0 sort -u -z | grep sdio:c00v0271d050A) ] - post-up ##WLAN1_POST_UP_ACTION## - pre-down ##WLAN1_PRE_DOWN_ACTION## diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.static b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.static deleted file mode 100644 index aa6bd09ea..000000000 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ccimx6sbc/interfaces.wlan1.static +++ /dev/null @@ -1,11 +0,0 @@ - -# Wi-Fi AP interface (Qualcomm QCA65x4) -#auto wlan1 -iface wlan1 inet static - address ##WLAN1_STATIC_IP## - netmask ##WLAN1_STATIC_NETMASK## - gateway ##WLAN1_STATIC_GATEWAY## - dns-nameservers ##WLAN1_STATIC_DNS## - pre-up [ $(find /sys/devices -name modalias -print0 | xargs -0 sort -u -z | grep sdio:c00v0271d050A) ] - post-up ##WLAN1_POST_UP_ACTION## - pre-down ##WLAN1_PRE_DOWN_ACTION## diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ifupdown.service b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ifupdown.service index 2672544f5..8438e4c96 100644 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ifupdown.service +++ b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown-1.0/ifupdown.service @@ -1,7 +1,7 @@ [Unit] Description=Interface initialization via ifupdown -After=systemd-udev-settle.service -Requires=systemd-udev-settle.service +After=systemd-udevd.service +Wants=systemd-udevd.service [Service] Type=oneshot diff --git a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend index b36a7c6fc..c26137940 100644 --- a/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend +++ b/meta-digi-dey/recipes-core/init-ifupdown/init-ifupdown_1.0.bbappend @@ -22,12 +22,6 @@ SRC_URI:append = " \ ${@oe.utils.conditional('HAS_WIFI_VIRTWLANS', 'true', '${WIFI_VIRTWLANS_FILES}', '', d)} \ " -SRC_URI:append:ccimx6sbc = " \ - file://interfaces.wlan1.atheros.static \ - file://interfaces.wlan1.atheros.dhcp \ - file://interfaces.br0.atheros.example \ -" - SYSTEMD_SERVICE:${PN} = "ifupdown.service" WPA_DRIVER ?= "nl80211" @@ -71,11 +65,6 @@ do_install:append() { fi cat ${WORKDIR}/interfaces.br0.example >> ${D}${sysconfdir}/network/interfaces - if [ "${MACHINE}" = "ccimx6sbc" ]; then - # On ccimx6, append also the Atheros fragments so the user can - # decide which one to use depending on the wireless MAC used on the SOM. - cat ${WORKDIR}/interfaces.br0.atheros.example >> ${D}${sysconfdir}/network/interfaces - fi } install_virtwlans() { @@ -97,9 +86,7 @@ WLAN1_PRE_DOWN_ACTION:ccimx9 = "systemctl stop hostapd@uap0.service" install_wlan1() { cat ${WORKDIR}/interfaces.wlan1.${WLAN1_MODE} >> ${D}${sysconfdir}/network/interfaces - if [ "${MACHINE}" = "ccimx6sbc" ]; then - cat ${WORKDIR}/interfaces.wlan1.atheros.${WLAN1_MODE} >> ${D}${sysconfdir}/network/interfaces - fi + [ -n "${WLAN1_AUTO}" ] && sed -i -e 's/^#auto wlan1/auto wlan1/g' ${D}${sysconfdir}/network/interfaces # Remove config entries if corresponding variable is not defined diff --git a/meta-digi-dey/recipes-core/psplash/psplash_git.bbappend b/meta-digi-dey/recipes-core/psplash/psplash_git.bbappend index 3be9e3bca..1b179e3c6 100644 --- a/meta-digi-dey/recipes-core/psplash/psplash_git.bbappend +++ b/meta-digi-dey/recipes-core/psplash/psplash_git.bbappend @@ -1,6 +1,9 @@ -# Copyright (C) 2016-2024, Digi International Inc. +# Copyright (C) 2016-2026, Digi International Inc. FILESEXTRAPATHS:prepend:dey := "${THISDIR}/files:" +SPLASH_LOGO_PNG ?= "${WORKDIR}/digi_logo.png" + +SPLASH_IMAGES = "file://logo.png;outsuffix=default" SRC_URI:append:dey = " \ file://0001-colors-modify-psplash-colors-to-match-Digi-scheme.patch \ @@ -9,6 +12,7 @@ SRC_URI:append:dey = " \ do_configure:prepend:dey() { \cp --remove-destination ${WORKDIR}/psplash-digi-bar.png ${S}/base-images/psplash-bar.png -} - -SPLASH_IMAGES = "file://logo.png;outsuffix=default" + if [ "${SPLASH_LOGO_PNG}" != "${WORKDIR}/digi_logo.png" ]; then + \cp --remove-destination "${SPLASH_LOGO_PNG}" "${WORKDIR}/logo.png" + fi +} \ No newline at end of file diff --git a/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init b/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init index 51798585e..7372ae590 100644 --- a/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init +++ b/meta-digi-dey/recipes-core/recovery/recovery-initramfs/recovery-initramfs-init @@ -3,7 +3,7 @@ # # recovery-initramfs-init # -# Copyright (C) 2016, 2017 by Digi International Inc. +# Copyright (C) 2016, 2026 by Digi International Inc. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it @@ -364,19 +364,23 @@ swu_package_path() { # Check whether the package is local and get the absolute path. if echo "${1}" | grep -qs '^file://'; then local pkg_name="$(basename ${1})" + local MAX_RETRIES="10" - for i in ${UPDATE_MOUNT_DIR} $(echo ${USB_MOUNT_DIR}/*); do - echo $i | grep -qs "${USB_MOUNT_DIR}/\*" && continue - if [ -f "${i}/${pkg_name}" ]; then - swu_abspath="${i}/${pkg_name}" - break - fi + for _ in $(seq ${MAX_RETRIES}); do + for i in ${UPDATE_MOUNT_DIR} $(echo ${USB_MOUNT_DIR}/*); do + echo $i | grep -qs "${USB_MOUNT_DIR}/\*" && continue + if [ -f "${i}/${pkg_name}" ]; then + swu_abspath="${i}/${pkg_name}" + break 2 + fi + done + sleep 1 done if [ -n "${swu_abspath}" ]; then echo "${swu_abspath}" else - quit_with_error "Unable to find update package '${pkg_name}'" + quit_with_error "Unable to find update package '${pkg_name}' after ${MAX_RETRIES} retries" fi else echo "${1}" @@ -513,9 +517,6 @@ echo > /dev/mdev.seq echo > /dev/mdev.log mdev -d -# Give some time for the devices to settle down so mdev can mount all of them -sleep 2 - # Run all shell scripts in postinstall folder run-parts /etc/*-postinsts diff --git a/meta-digi-dey/recipes-core/systemd/systemd-conf/logind.conf-digi b/meta-digi-dey/recipes-core/systemd/systemd-conf/logind.conf-digi index 407116850..2bef4a0d3 100644 --- a/meta-digi-dey/recipes-core/systemd/systemd-conf/logind.conf-digi +++ b/meta-digi-dey/recipes-core/systemd/systemd-conf/logind.conf-digi @@ -1,3 +1,3 @@ [Login] -HandlePowerKey=suspend -HandlePowerKeyLongPress=poweroff +HandlePowerKey=##HANDLEPOWERKEY## +HandlePowerKeyLongPress=##HANDLEPOWERKEYLONGPRESS## diff --git a/meta-digi-dey/recipes-core/systemd/systemd-conf_%.bbappend b/meta-digi-dey/recipes-core/systemd/systemd-conf_%.bbappend index 9bb8e5ec1..b1bf0203b 100644 --- a/meta-digi-dey/recipes-core/systemd/systemd-conf_%.bbappend +++ b/meta-digi-dey/recipes-core/systemd/systemd-conf_%.bbappend @@ -20,8 +20,12 @@ do_install:append() { do_install:append:stm32mpcommon() { install -D -m0644 ${WORKDIR}/logind.conf-digi ${D}${systemd_unitdir}/logind.conf.d/01-${PN}.conf + sed -i -e 's,##HANDLEPOWERKEY##,${LOGIND_HANDLE_POWER_KEY},g' \ + -e 's,##HANDLEPOWERKEYLONGPRESS##,${LOGIND_HANDLE_POWER_KEY_LONGPRESS},g' ${D}${systemd_unitdir}/logind.conf.d/01-${PN}.conf } do_install:append:ccimx9() { install -D -m0644 ${WORKDIR}/logind.conf-digi ${D}${systemd_unitdir}/logind.conf.d/01-${PN}.conf + sed -i -e 's,##HANDLEPOWERKEY##,${LOGIND_HANDLE_POWER_KEY},g' \ + -e 's,##HANDLEPOWERKEYLONGPRESS##,${LOGIND_HANDLE_POWER_KEY_LONGPRESS},g' ${D}${systemd_unitdir}/logind.conf.d/01-${PN}.conf } diff --git a/meta-digi-dey/recipes-core/trustfence/files/secure-storage b/meta-digi-dey/recipes-core/trustfence/files/secure-storage new file mode 100644 index 000000000..8f6d3af6f --- /dev/null +++ b/meta-digi-dey/recipes-core/trustfence/files/secure-storage @@ -0,0 +1 @@ +SECURE_DIR=@TRUSTFENCE_SECURE_STORAGE_DIR@ diff --git a/meta-digi-dey/recipes-core/trustfence/files/secure-storage-init.service b/meta-digi-dey/recipes-core/trustfence/files/secure-storage-init.service new file mode 100755 index 000000000..88e700891 --- /dev/null +++ b/meta-digi-dey/recipes-core/trustfence/files/secure-storage-init.service @@ -0,0 +1,21 @@ +[Unit] +Description=Secure storage init (fscrypt) +After=local-fs.target +Before=multi-user.target +Before=shutdown.target +Conflicts=shutdown.target + +[Service] +Type=oneshot +RuntimeDirectory=secure-storage +RuntimeDirectoryMode=0700 +EnvironmentFile=/etc/default/secure-storage +ExecStart=/usr/sbin/secure-storage-init.sh start +ExecStop=/usr/sbin/secure-storage-init.sh stop +RemainAfterExit=yes + +# Make shutdown not wait forever +TimeoutStopSec=2s + +[Install] +WantedBy=multi-user.target diff --git a/meta-digi-dey/recipes-core/trustfence/files/secure-storage-init.sh b/meta-digi-dey/recipes-core/trustfence/files/secure-storage-init.sh new file mode 100755 index 000000000..b05c77b59 --- /dev/null +++ b/meta-digi-dey/recipes-core/trustfence/files/secure-storage-init.sh @@ -0,0 +1,67 @@ +#!/bin/sh + +# Get the Key storage location from tee-supplicant config file +KEYDIR="$(cat /etc/default/tee-supplicant | tr -d \" | awk -F =/ '{ print $2 }')" + +log() { echo "[secure-storage] $*"; } + +# Configure encryption for the EXT4 filesystem if detected +enable_ext4_encrypt() { + set -- $(df -T -P "${SECURE_DIR}" 2>/dev/null | awk 'NR==2 { print $1, $2 }') + [ "${2:-}" = "ext4" ] || return 0 + if [ "${1#/dev/}" != "${1}" ]; then + tune2fs -O encrypt "${1}" >/dev/null 2>&1 + tune2fs -l "${1}" 2>/dev/null | grep -qs 'Filesystem features:.*encrypt' || \ + { log "Cannot enable file system encryption on ${1}"; exit 1; } + fi +} + +secure_dir_is_empty() { + [ -z "$(find "${SECURE_DIR}" -mindepth 1 -print -quit 2>/dev/null)" ] +} + +# Ensure prerequisites +command -v trustfence-fscrypt >/dev/null 2>&1 || { log "trustfence-fscrypt tool not found"; exit 1; } + +start () { + log "create $SECURE_DIR" + # Ensure secure directory exists + mkdir -p "$SECURE_DIR" + log "verifiy if we are on EXT4" + # verify if we are on EXT4 and enable encryption + enable_ext4_encrypt + + log "Check if $KEYDIR exists" + # check if we already have a KEYDIR + if [ ! -d "$KEYDIR" ]; then + log "Generating master key directory at $KEYDIR" + install -d -m770 -o root -g tee $KEYDIR + fi + + log "check if we already have a key" + # check if we already have a key + if ! trustfence-fscrypt --start-session=$SECURE_DIR >/dev/null 2>&1; then + # check if directory is empty + if secure_dir_is_empty; then + log "Generating new random key" + # start fscrypt session with random key + trustfence-fscrypt --new-key --start-session=$SECURE_DIR >/dev/null 2>&1 + else + log "ERROR: ${SECURE_DIR} not empty, but must be empty for initial policy setup" + exit 1 + fi + fi + + log "Secure storage ready at $SECURE_DIR" +} + +stop() { + log "Remove session key and lock secure storage" + trustfence-fscrypt --end-session=$SECURE_DIR >/dev/null 2>&1 +} + +case "$1" in + start) start ;; + stop) stop ;; + *) ;; +esac diff --git a/meta-digi-dey/recipes-core/trustfence/trustfence-fscrypt_0.2.bb b/meta-digi-dey/recipes-core/trustfence/trustfence-fscrypt_0.2.bb index 61003c2b9..6fe4874be 100644 --- a/meta-digi-dey/recipes-core/trustfence/trustfence-fscrypt_0.2.bb +++ b/meta-digi-dey/recipes-core/trustfence/trustfence-fscrypt_0.2.bb @@ -1,4 +1,4 @@ -# Copyright (C) 2024,2025 Digi International Inc. +# Copyright (C) 2024-2026 Digi International Inc. SUMMARY = "Trustfence fscrypt command line tool" SECTION = "console/tools" @@ -20,9 +20,37 @@ SRC_URI[aarch64-libteecv1.sha256sum] = "43c2e900ca8d0aaac15963ffb5a7c57e3dd07613 SRC_URI[arm-libteecv1.md5sum] = "6b153a51a4c3b77d8172ce37c6542c59" SRC_URI[arm-libteecv1.sha256sum] = "bc65a13d234da8d4a9c0cfd6d0a8672e8fe1c1c884180f47121d41bd7dcefafe" +SRC_URI:append = " \ + file://secure-storage-init.service \ + file://secure-storage-init.sh \ + file://secure-storage \ +" + +# Install secure storage service and script +do_install:append() { + # systemd unit + install -d ${D}${systemd_unitdir}/system + install -m 0644 ${WORKDIR}/secure-storage-init.service \ + ${D}${systemd_unitdir}/system/secure-storage-init.service + + # script + install -d ${D}${sbindir} + install -m 0755 ${WORKDIR}/secure-storage-init.sh \ + ${D}${sbindir}/secure-storage-init.sh + + # environment + install -d ${D}${sysconfdir}/default/ + install -m 0644 ${WORKDIR}/secure-storage \ + ${D}${sysconfdir}/default/secure-storage + sed -i -e 's,@TRUSTFENCE_SECURE_STORAGE_DIR@,${TRUSTFENCE_FILE_BASED_ENCRYPT_DIR},g' ${D}${sysconfdir}/default/secure-storage +} + +SYSTEMD_SERVICE:${PN} = "secure-storage-init.service" +SYSTEMD_AUTO_ENABLE:${PN} = "${@oe.utils.vartrue('TRUSTFENCE_FILE_BASED_ENCRYPT', 'enable', 'disable', d)}" + # Needed to resolve dependencies to libteec RDEPENDS:${PN} += "optee-client" -inherit bin_package +inherit bin_package systemd INSANE_SKIP:${PN} = "already-stripped" diff --git a/meta-digi-dey/recipes-digi/nxp-wlan-utils/nxp-wlan-utils.bb b/meta-digi-dey/recipes-digi/nxp-wlan-utils/nxp-wlan-utils.bb index 1b5d03397..6a5d5a715 100644 --- a/meta-digi-dey/recipes-digi/nxp-wlan-utils/nxp-wlan-utils.bb +++ b/meta-digi-dey/recipes-digi/nxp-wlan-utils/nxp-wlan-utils.bb @@ -1,4 +1,4 @@ -# Copyright (C) 2025, Digi International Inc. +# Copyright (C) 2025-2026, Digi International Inc. DESCRIPTION = "Prebuilt Wi-Fi tools for NXP IW61x chip" SECTION = "Binaries" @@ -20,4 +20,4 @@ do_install() { install -m 0755 ${WORKDIR}/nanapp ${D}${bindir} } -COMPATIBLE_MACHINE = "(ccimx9)" +COMPATIBLE_MACHINE = "(ccimx91|ccimx93)" diff --git a/meta-digi-dey/recipes-digi/packagegroups/packagegroup-dey-examples.bb b/meta-digi-dey/recipes-digi/packagegroups/packagegroup-dey-examples.bb index b0503067b..f29464a0a 100644 --- a/meta-digi-dey/recipes-digi/packagegroups/packagegroup-dey-examples.bb +++ b/meta-digi-dey/recipes-digi/packagegroups/packagegroup-dey-examples.bb @@ -4,6 +4,9 @@ SUMMARY = "DEY examples packagegroup" DEPENDS = "virtual/kernel" +DEY_EXAMPLES_MCA = "dey-examples-adc-cmp dey-examples-tamper" +DEY_EXAMPLES_MCA:ccimx95 = "" + PACKAGE_ARCH = "${MACHINE_ARCH}" inherit packagegroup @@ -13,8 +16,7 @@ RDEPENDS:${PN} = "\ ${@bb.utils.contains("MACHINE_FEATURES", "bluetooth", "dey-examples-bt-gatt-server", "", d)} \ ${@bb.utils.contains("MACHINE_FEATURES", "bluetooth", "dey-examples-hdp", "", d)} \ ${@bb.utils.contains("MACHINE_FEATURES", "cryptochip", "dey-examples-cryptochip", "", d)} \ - ${@bb.utils.contains("MACHINE_FEATURES", "mca", "dey-examples-adc-cmp \ - dey-examples-tamper", "", d)} \ + ${@bb.utils.contains("MACHINE_FEATURES", "mca", "${DEY_EXAMPLES_MCA}", "", d)} \ dey-examples-caamblob \ dey-examples-cccs \ dey-examples-digiapix \ diff --git a/meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb b/meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb index bc089b009..75c2b9e52 100644 --- a/meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb +++ b/meta-digi-dey/recipes-digi/sysinfo/sysinfo.bb @@ -1,4 +1,4 @@ -# Copyright (C) 2016-2022, Digi International Inc. +# Copyright (C) 2016-2026, Digi International Inc. SUMMARY = "Digi's system info utility" SECTION = "base" @@ -9,6 +9,8 @@ SRC_URI = "file://sysinfo" S = "${WORKDIR}" +RDEPENDS:${PN} += "qrencode" + do_install() { install -d ${D}${bindir} install -m 0755 sysinfo ${D}${bindir} diff --git a/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo b/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo index 54e7df828..1a4de05cd 100755 --- a/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo +++ b/meta-digi-dey/recipes-digi/sysinfo/sysinfo/sysinfo @@ -3,7 +3,7 @@ # # sysinfo # -# Copyright (C) 2016-2024 by Digi International Inc. +# Copyright (C) 2016-2026 by Digi International Inc. # All rights reserved. # # This program is free software; you can redistribute it and/or modify it @@ -16,6 +16,253 @@ #=============================================================================== FW_PRINTENV="$(which fw_printenv)" +QRENCODE="$(which qrencode)" +WESTON_IMAGE="$(which weston-image)" +FBSPLASH="$(which fbsplash)" +QR_PREFIX="50000000-01;A" +QR_TEMP_FILES="" +QR_VIEWER_PID="" + +usage() { + echo "Usage:" + echo " sysinfo" + echo " sysinfo --qr_display" +} + +add_temp_file() { + QR_TEMP_FILES="${QR_TEMP_FILES} $1" +} + +cleanup_temp_files() { + for f in ${QR_TEMP_FILES}; do + [ -n "${f}" ] && rm -f "${f}" + done +} + +# Compose the compact payload encoded in the QR from U-Boot environment data. +get_qr_payload() { + if [ -x "${FW_PRINTENV}" ]; then + QR_SERIAL="$("${FW_PRINTENV}" -n "serial#" 2>/dev/null)" + QR_MACADDR="$("${FW_PRINTENV}" -n "ethaddr" 2>/dev/null)" + fi + + if [ -z "${QR_SERIAL}" ]; then + echo "Error: unable to read 'serial#' from fw_printenv" >&2 + return 1 + fi + + if [ -z "${QR_MACADDR}" ]; then + echo "Error: unable to read 'ethaddr' from fw_printenv" >&2 + return 1 + fi + + printf "%s;%s;MAC%s\n" "${QR_PREFIX}" "${QR_SERIAL}" "$(echo "${QR_MACADDR}" | tr -d ':')" +} + +get_framebuffer_device() { + if [ -e "/dev/fb0" ]; then + echo "/dev/fb0" + return 0 + fi + + ls /dev/fb* 2>/dev/null | grep -m 1 '^/dev/fb' +} + +get_framebuffer_size() { + FB_DEVICE="$1" + FB_NAME="$(basename "${FB_DEVICE}")" + FB_SIZE_PATH="/sys/class/graphics/${FB_NAME}/virtual_size" + + if [ -r "${FB_SIZE_PATH}" ]; then + tr ',' ' ' < "${FB_SIZE_PATH}" + return 0 + fi + + return 1 +} + +is_weston_running() { + pidof weston >/dev/null 2>&1 +} + +wait_for_keypress() { + if [ ! -t 0 ]; then + return 0 + fi + + echo "Press any key to close the QR code" + old_stty="$(stty -g 2>/dev/null)" || return 0 + stty -echo -icanon min 1 time 0 2>/dev/null || return 0 + dd bs=1 count=1 >/dev/null 2>&1 + stty "${old_stty}" 2>/dev/null || true +} + +print_qr() { + if [ ! -x "${QRENCODE}" ]; then + echo "Error: qrencode is not installed" >&2 + return 1 + fi + + QR_PAYLOAD="$(get_qr_payload)" || return 1 + echo "Payload: ${QR_PAYLOAD}" + printf "%s" "${QR_PAYLOAD}" | "${QRENCODE}" -t ANSIUTF8 + echo "" + echo "This QR code is used to provision the device in Digi Device Cloud." +} + +# PNG output is used by the Wayland/Weston path. +generate_qr_png() { + QR_PAYLOAD="$(get_qr_payload)" || return 1 + QR_PNG_PATH="/tmp/sysinfo-qr.png" + + "${QRENCODE}" -o "${QR_PNG_PATH}" -s 8 -m 2 "${QR_PAYLOAD}" || return 1 + echo "${QR_PNG_PATH}" +} + +# fbsplash only accepts raw PPM images, so convert qrencode ASCII output into +# a binary P6 image and generate a small ini file to center it on screen. +generate_qr_ppm() { + FB_DEVICE="$1" + QR_PAYLOAD="$(get_qr_payload)" || return 1 + QR_ASCII_PATH="/tmp/sysinfo-qr.txt" + QR_MATRIX_PATH="/tmp/sysinfo-qr.matrix" + QR_PPM_PATH="/tmp/sysinfo-qr.ppm" + QR_INI_PATH="/tmp/sysinfo-qr.ini" + FB_SIZE="$(get_framebuffer_size "${FB_DEVICE}")" + add_temp_file "${QR_ASCII_PATH}" + add_temp_file "${QR_MATRIX_PATH}" + add_temp_file "${QR_PPM_PATH}" + add_temp_file "${QR_INI_PATH}" + + if [ -n "${FB_SIZE}" ]; then + FB_WIDTH="$(echo "${FB_SIZE}" | awk '{print $1}')" + FB_HEIGHT="$(echo "${FB_SIZE}" | awk '{print $2}')" + fi + + "${QRENCODE}" -t ASCII -o "${QR_ASCII_PATH}" "${QR_PAYLOAD}" || return 1 + + awk ' + BEGIN { + height = 0 + width = 0 + } + { + line = $0 + if (length(line) > width) { + width = length(line) + } + lines[++height] = line + } + END { + if (height == 0) { + exit 1 + } + # qrencode ASCII uses double-width horizontal cells. Collapse each pair + # into a single logical QR module encoded as 1/0. + module_width = int((width + 1) / 2) + print module_width, height + for (y = 1; y <= height; y++) { + line = lines[y] + while (length(line) < module_width * 2) { + line = line " " + } + row = "" + for (x = 1; x <= module_width * 2; x += 2) { + pair = substr(line, x, 2) + row = row (index(pair, "#") ? "1" : "0") + } + print row + } + } + ' "${QR_ASCII_PATH}" > "${QR_MATRIX_PATH}" || return 1 + + IFS=' ' read -r QR_WIDTH QR_HEIGHT < "${QR_MATRIX_PATH}" || return 1 + QR_SCALE=4 + IMG_WIDTH=$((QR_WIDTH * QR_SCALE)) + IMG_HEIGHT=$((QR_HEIGHT * QR_SCALE)) + + IMG_LEFT=0 + IMG_TOP=0 + if [ -n "${FB_WIDTH}" ] && [ "${FB_WIDTH}" -gt "${IMG_WIDTH}" ] 2>/dev/null; then + IMG_LEFT=$(((FB_WIDTH - IMG_WIDTH) / 2)) + fi + if [ -n "${FB_HEIGHT}" ] && [ "${FB_HEIGHT}" -gt "${IMG_HEIGHT}" ] 2>/dev/null; then + IMG_TOP=$(((FB_HEIGHT - IMG_HEIGHT) / 2)) + fi + + { + echo "BAR_LEFT=0" + echo "BAR_TOP=0" + echo "BAR_WIDTH=0" + echo "BAR_HEIGHT=0" + echo "BAR_R=0" + echo "BAR_G=0" + echo "BAR_B=0" + echo "IMG_LEFT=${IMG_LEFT}" + echo "IMG_TOP=${IMG_TOP}" + } > "${QR_INI_PATH}" || return 1 + + printf 'P6\n%s %s\n255\n' "${IMG_WIDTH}" "${IMG_HEIGHT}" > "${QR_PPM_PATH}" || return 1 + + awk -v scale="${QR_SCALE}" -v width="${QR_WIDTH}" ' + NR == 1 { next } + { + row = $0 + # Expand each logical QR module into a scale x scale pixel block. + for (repeat_y = 0; repeat_y < scale; repeat_y++) { + for (i = 1; i <= width; i++) { + pixel = substr(row, i, 1) + color = (pixel == "1") ? 0 : 255 + for (repeat_x = 0; repeat_x < scale; repeat_x++) { + printf "%c%c%c", color, color, color + } + } + } + } + ' "${QR_MATRIX_PATH}" >> "${QR_PPM_PATH}" || return 1 + + echo "${QR_PPM_PATH}" +} + +# On graphical images, rely on Weston to render the PNG in a proper window. +display_qr_wayland() { + if [ -x "${WESTON_IMAGE}" ] && [ -n "${WAYLAND_DISPLAY}" ] && is_weston_running; then + QR_PNG_PATH="$(generate_qr_png)" || return 1 + "${WESTON_IMAGE}" "${QR_PNG_PATH}" >/dev/null 2>/dev/null & + QR_VIEWER_PID=$! + return 0 + fi + + return 1 +} + +# Select the most suitable display backend for the current runtime. +display_qr() { + FB_DEVICE="$(get_framebuffer_device)" + + if [ -n "${SYSINFO_QR_DISPLAY_HOOK}" ] && [ -x "${SYSINFO_QR_DISPLAY_HOOK}" ]; then + QR_PNG_PATH="$(generate_qr_png)" || return 1 + "${SYSINFO_QR_DISPLAY_HOOK}" "${QR_PNG_PATH}" + return $? + fi + + display_qr_wayland && return 0 + + if [ -x "${FBSPLASH}" ] && [ -n "${FB_DEVICE}" ]; then + QR_PPM_PATH="$(generate_qr_ppm "${FB_DEVICE}")" || return 1 + QR_INI_PATH="/tmp/sysinfo-qr.ini" + echo "Framebuffer device: ${FB_DEVICE}" + "${FBSPLASH}" -s "${QR_PPM_PATH}" -d "${FB_DEVICE}" -i "${QR_INI_PATH}" -c + return $? + fi + + echo "Error: no display backend available" >&2 + echo "Detected framebuffer: ${FB_DEVICE:-[NONE]}" >&2 + echo "Set SYSINFO_QR_DISPLAY_HOOK or use Weston/fbsplash-capable images" >&2 + return 1 +} + +trap cleanup_temp_files EXIT INT TERM make_report(){ echo "--------------------------------------" @@ -317,6 +564,8 @@ if grep -qs '\' /proc/device-tree/compatible; then MCA_NODE="/sys/bus/i2c/devices/0-007e" elif grep -qs '\' /proc/device-tree/compatible; then MCA_NODE="/sys/bus/i2c/devices/0-0063" +elif grep -qs '\' /proc/device-tree/compatible; then + MCA_NODE="/sys/bus/i2c/devices/7-0020" fi if [ -d "$MCA_NODE" ]; then MCA_HW_VERSION=$(cat ${MCA_NODE}/hw_version 2>/dev/null | tr -d '\0') || MCA_HW_VERSION="??" @@ -334,6 +583,28 @@ fi DATE="$(date "+%Y%m%d%H%M%S")" REPORT_PATH="/tmp/sysinfo-${DEY_VERSION}-${BOARD_SN}-${DATE}" +DISPLAY_QR="0" + +while [ $# -gt 0 ]; do + case "$1" in + --qr_display) + DISPLAY_QR="1" + shift + ;; + -h|--help) + usage + exit 0 + ;; + *) + echo "Error: unknown argument '$1'" >&2 + usage >&2 + exit 1 + ;; + esac +done + +print_qr || exit $? + ( echo "-------------------------------------" echo "- -" @@ -366,3 +637,12 @@ tar -zhcf "${REPORT_PATH}.tar.gz" -C $(dirname ${REPORT_PATH}) $(basename "${REP echo "Report generated in ${REPORT_PATH}.tar.gz" rm -rf "${REPORT_PATH}.txt" + +if [ "${DISPLAY_QR}" = "1" ]; then + display_qr || exit $? + wait_for_keypress + if [ -n "${QR_VIEWER_PID}" ]; then + kill "${QR_VIEWER_PID}" >/dev/null 2>&1 || true + wait "${QR_VIEWER_PID}" 2>/dev/null || true + fi +fi diff --git a/meta-digi-dey/recipes-extended/socketcan/libsocketcan/0001-libsocketcan-Get-and-set-CAN-FD-data-bitrate.patch b/meta-digi-dey/recipes-extended/socketcan/libsocketcan/0001-libsocketcan-Get-and-set-CAN-FD-data-bitrate.patch index 94f626914..2a2934fd8 100644 --- a/meta-digi-dey/recipes-extended/socketcan/libsocketcan/0001-libsocketcan-Get-and-set-CAN-FD-data-bitrate.patch +++ b/meta-digi-dey/recipes-extended/socketcan/libsocketcan/0001-libsocketcan-Get-and-set-CAN-FD-data-bitrate.patch @@ -12,12 +12,12 @@ https://www.spinics.net/lists/linux-can/msg00388.html Signed-off-by: Mike Engel --- - include/libsocketcan.h | 5 ++ - src/libsocketcan.c | 235 +++++++++++++++++++++++++++++++++++++++++++++++-- + include/libsocketcan.h | 5 + + src/libsocketcan.c | 235 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 235 insertions(+), 5 deletions(-) diff --git a/include/libsocketcan.h b/include/libsocketcan.h -index 1603a7b..f503ebc 100644 +index 1603a7b7e89b..f503ebc1e148 100644 --- a/include/libsocketcan.h +++ b/include/libsocketcan.h @@ -43,6 +43,9 @@ int can_set_bittiming(const char *name, struct can_bittiming *bt); @@ -40,7 +40,7 @@ index 1603a7b..f503ebc 100644 int can_get_link_stats(const char *name, struct rtnl_link_stats64 *rls); diff --git a/src/libsocketcan.c b/src/libsocketcan.c -index c802849..648b9cf 100644 +index 60142ccf6713..1f5be864a8e4 100644 --- a/src/libsocketcan.c +++ b/src/libsocketcan.c @@ -66,6 +66,8 @@ @@ -100,10 +100,11 @@ index c802849..648b9cf 100644 if (req_info->ctrlmode != NULL) { addattr_l(&req.n, 1024, IFLA_CAN_CTRLMODE, req_info->ctrlmode, -@@ -870,6 +899,73 @@ int can_set_ctrlmode(const char *name, struct can_ctrlmode *cm) +@@ -869,6 +898,73 @@ int can_set_ctrlmode(const char *name, struct can_ctrlmode *cm) + return set_link(name, 0, &req_info); } - /** ++/** + * @internal + * set_bittiming - common helper function to setup the bittiming for + * can_set_bittiming() and can_set_data_bittiming(). @@ -170,10 +171,9 @@ index c802849..648b9cf 100644 + return set_link(name, 0, &req_info); +} + -+/** + /** * @ingroup extern * can_set_bittiming - setup the bittiming. - * @@ -909,11 +1005,7 @@ int can_set_ctrlmode(const char *name, struct can_ctrlmode *cm) int can_set_bittiming(const char *name, struct can_bittiming *bt) @@ -187,10 +187,12 @@ index c802849..648b9cf 100644 } /** -@@ -976,6 +1068,81 @@ int can_set_bitrate_samplepoint(const char *name, __u32 bitrate, +@@ -974,6 +1066,81 @@ int can_set_bitrate_samplepoint(const char *name, __u32 bitrate, + return can_set_bittiming(name, &bt); + } - /** - * @ingroup extern ++/** ++ * @ingroup extern + * can_set_data_bittiming - setup the data bittiming. + * + * @param name name of the can device. This is the netdev name, as ifconfig -a shows @@ -264,11 +266,9 @@ index c802849..648b9cf 100644 + return can_set_data_bittiming(name, &bt); +} + -+/** -+ * @ingroup extern + /** + * @ingroup extern * can_get_state - get the current state of the device - * - * @param name name of the can device. This is the netdev name, as ifconfig -a shows @@ -1205,3 +1372,61 @@ int can_get_link_stats(const char *name, struct rtnl_link_stats64 *rls) { return get_link(name, GET_LINK_STATS, rls); diff --git a/meta-digi-dey/recipes-extended/socketcan/libsocketcan_%.bbappend b/meta-digi-dey/recipes-extended/socketcan/libsocketcan_%.bbappend index 370498973..1db1daa6d 100644 --- a/meta-digi-dey/recipes-extended/socketcan/libsocketcan_%.bbappend +++ b/meta-digi-dey/recipes-extended/socketcan/libsocketcan_%.bbappend @@ -1,9 +1,7 @@ -# Copyright (C) 2019, Digi International Inc. +# Copyright (C) 2019-2026, Digi International Inc. FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" -SRCREV = "df01f01354d7c44a07370ae27a3d20b52255830b" - SRC_URI += " \ file://0001-libsocketcan-Get-and-set-CAN-FD-data-bitrate.patch \ " diff --git a/meta-digi-dey/recipes-graphics/lvgl/files/0001-lvgl-demo-remove-demo-slideshow.patch b/meta-digi-dey/recipes-graphics/lvgl/files/0001-lvgl-demo-remove-demo-slideshow.patch deleted file mode 100644 index cd1cb4036..000000000 --- a/meta-digi-dey/recipes-graphics/lvgl/files/0001-lvgl-demo-remove-demo-slideshow.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 1ffdfa2d0d36c566006b5b1f24d2a9e68888a5c1 Mon Sep 17 00:00:00 2001 -From: Mike Engel -Date: Tue, 2 Sep 2025 10:21:07 +0200 -Subject: [PATCH] lvgl-demo: remove demo slideshow - -This commit removes the demo slideshow function to -avoid the application changes automatically between -the different taps. - -Signed-off-by: Mike Engel ---- - main.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/main.c b/main.c -index e02cef9..7ec513c 100644 ---- a/main.c -+++ b/main.c -@@ -48,7 +48,6 @@ int main(void) - - /*Create a Demo*/ - lv_demo_widgets(); -- lv_demo_widgets_start_slideshow(); - - /*Handle LVGL tasks*/ - while(1) { --- -2.51.0 - diff --git a/meta-digi-dey/recipes-graphics/lvgl/files/0003-CMakefile-remove-libdrm-dependency-when-building-fbd.patch b/meta-digi-dey/recipes-graphics/lvgl/files/0003-CMakefile-remove-libdrm-dependency-when-building-fbd.patch deleted file mode 100644 index e1f2bc469..000000000 --- a/meta-digi-dey/recipes-graphics/lvgl/files/0003-CMakefile-remove-libdrm-dependency-when-building-fbd.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 49f99a403e36bb3bb54943d7a351d4aadffe3447 Mon Sep 17 00:00:00 2001 -From: Mike Engel -Date: Wed, 6 Aug 2025 16:59:28 +0200 -Subject: [PATCH] CMakefile: remove libdrm dependency when building fbdev demo - -Signed-off-by: Mike Engel ---- - CMakeLists.txt | 3 --- - 1 file changed, 3 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 658193f..c6a2b85 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -12,9 +12,6 @@ target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR}) - - add_executable(main main.c mouse_cursor_icon.c) - --include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake) --include_directories(${Libdrm_INCLUDE_DIRS}) -- - find_package(SDL2) - find_package(SDL2_image) - include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS}) --- -2.34.1 - diff --git a/meta-digi-dey/recipes-graphics/lvgl/files/0004-lvgl-demo-add-input-device-discovery-support-to-LVGL.patch b/meta-digi-dey/recipes-graphics/lvgl/files/0004-lvgl-demo-add-input-device-discovery-support-to-LVGL.patch deleted file mode 100644 index 1fcfa2d77..000000000 --- a/meta-digi-dey/recipes-graphics/lvgl/files/0004-lvgl-demo-add-input-device-discovery-support-to-LVGL.patch +++ /dev/null @@ -1,76 +0,0 @@ -From d7696f869a014d6fa15e25cf7818e43f3c110acb Mon Sep 17 00:00:00 2001 -From: Mike Engel -Date: Tue, 2 Sep 2025 11:49:32 +0200 -Subject: [PATCH] lvgl-demo: add input device discovery support to LVGL-demo - -This commit adds input device discovery support to the demo. -When input device is a mouse it will create the cursor. - -Signed-off-by: Mike Engel ---- - main.c | 29 +++++++++++++++++++++++++++++ - 1 file changed, 29 insertions(+) - -diff --git a/main.c b/main.c -index ba03f23..f821936 100644 ---- a/main.c -+++ b/main.c -@@ -1,5 +1,6 @@ - #include "lvgl/lvgl.h" - #include "lvgl/demos/lv_demos.h" -+#include "lvgl/src/core/lv_global.h" - #include - #include - #include -@@ -11,6 +12,30 @@ static const char *getenv_default(const char *name, const char *dflt) - return getenv(name) ? : dflt; - } - -+static void indev_deleted_cb(lv_event_t * e) -+{ -+ if(LV_GLOBAL_DEFAULT()->deinit_in_progress) -+ return; -+ lv_obj_t * cursor_obj = lv_event_get_user_data(e); -+ lv_obj_delete(cursor_obj); -+} -+ -+static void discovery_cb(lv_indev_t * indev, lv_evdev_type_t type, void * user_data) -+{ -+ LV_LOG_USER("new '%s' device discovered", type == LV_EVDEV_TYPE_REL ? "REL" : -+ type == LV_EVDEV_TYPE_ABS ? "ABS" : -+ type == LV_EVDEV_TYPE_KEY ? "KEY" : -+ "unknown"); -+ /* if input device is mouse add cursor */ -+ if(type == LV_EVDEV_TYPE_REL) { -+ LV_IMAGE_DECLARE(mouse_cursor_icon); -+ lv_obj_t * cursor_obj = lv_image_create(lv_screen_active()); -+ lv_image_set_src(cursor_obj, &mouse_cursor_icon); -+ lv_indev_set_cursor(indev, cursor_obj); -+ lv_indev_add_event_cb(indev, indev_deleted_cb, LV_EVENT_DELETE, cursor_obj); -+ } -+} -+ - #if LV_USE_LINUX_FBDEV - static void lv_linux_disp_init(void) - { -@@ -18,6 +43,8 @@ static void lv_linux_disp_init(void) - lv_display_t * disp = lv_linux_fbdev_create(); - - lv_linux_fbdev_set_file(disp, device); -+ /* search for input devices */ -+ lv_evdev_discovery_start(discovery_cb, NULL); - } - #elif LV_USE_LINUX_DRM - static void lv_linux_disp_init(void) -@@ -26,6 +53,8 @@ static void lv_linux_disp_init(void) - lv_display_t * disp = lv_linux_drm_create(); - - lv_linux_drm_set_file(disp, device, -1); -+ /* search for input devices */ -+ lv_evdev_discovery_start(discovery_cb, NULL); - } - #elif LV_USE_SDL - static void lv_linux_disp_init(void) --- -2.51.0 - diff --git a/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_drm b/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_drm new file mode 100644 index 000000000..dd068a0b5 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_drm @@ -0,0 +1,20 @@ +cmake_minimum_required(VERSION 3.10) +project(lvgl) + +set(CMAKE_C_STANDARD 99)#C99 # lvgl officially support C99 and above +set(CMAKE_CXX_STANDARD 17)#C17 +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) + +add_subdirectory(lvgl) +target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR}) + +add_executable(main main.c mouse_cursor_icon.c) + +include(${CMAKE_CURRENT_LIST_DIR}/lvgl/tests/FindLibDRM.cmake) +include_directories(${Libdrm_INCLUDE_DIRS}) + +target_link_libraries(main lvgl lvgl::examples lvgl::demos ${Libdrm_LIBRARIES} m pthread) +add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main) + diff --git a/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_fbdev b/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_fbdev new file mode 100644 index 000000000..1fcb1e036 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_fbdev @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.10) +project(lvgl) + +set(CMAKE_C_STANDARD 99)#C99 # lvgl officially support C99 and above +set(CMAKE_CXX_STANDARD 17)#C17 +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) + +add_subdirectory(lvgl) +target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR}) + +add_executable(main main.c mouse_cursor_icon.c) + +target_link_libraries(main lvgl lvgl::examples lvgl::demos m pthread) +add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main) + diff --git a/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_wayland b/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_wayland new file mode 100644 index 000000000..920a79304 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/lvgl/files/CMakeLists.txt_wayland @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.10) +project(lvgl) + +set(CMAKE_C_STANDARD 99)#C99 # lvgl officially support C99 and above +set(CMAKE_CXX_STANDARD 17)#C17 +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +set(EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) + +find_package(PkgConfig) +pkg_check_modules(PKG_WAYLAND wayland-client wayland-cursor xkbcommon) + +# Wayland protocols +find_program(WAYLAND_SCANNER_EXECUTABLE NAMES wayland-scanner) +pkg_check_modules(WAYLAND_PROTOCOLS REQUIRED wayland-protocols>=1.25) +pkg_get_variable(WAYLAND_PROTOCOLS_BASE wayland-protocols pkgdatadir) + +macro(wayland_generate protocol_xml_file output_dir output_name target) + set(output_file_noext "${output_dir}/${output_name}") + add_custom_command(OUTPUT "${output_file_noext}.h" + COMMAND "${WAYLAND_SCANNER_EXECUTABLE}" client-header "${protocol_xml_file}" "${output_file_noext}.h" + DEPENDS "${protocol_xml_file}" + VERBATIM) + + add_custom_command(OUTPUT "${output_file_noext}.c" + COMMAND "${WAYLAND_SCANNER_EXECUTABLE}" private-code "${protocol_xml_file}" "${output_file_noext}.c" + DEPENDS "${protocol_xml_file}" + VERBATIM) + + if(NOT EXISTS ${protocol_xml_file}) + message("Protocol XML file not found: " ${protocol_xml_file}) + else() + set_property(TARGET ${target} APPEND PROPERTY SOURCES "${output_file_noext}.h" "${output_file_noext}.c") + endif() +endmacro() + +set(WAYLAND_PROTOCOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/wl_protocols") +file(MAKE_DIRECTORY ${WAYLAND_PROTOCOLS_DIR}) + +add_custom_target(generate_xdg_shell_protocol ALL) +wayland_generate("${WAYLAND_PROTOCOLS_BASE}/stable/xdg-shell/xdg-shell.xml" "${WAYLAND_PROTOCOLS_DIR}" "wayland_xdg_shell" generate_xdg_shell_protocol) + +add_subdirectory(lvgl) +target_include_directories(lvgl PRIVATE ${WAYLAND_PROTOCOLS_DIR}) +target_include_directories(lvgl PUBLIC ${PROJECT_SOURCE_DIR}) + +add_executable(main main.c mouse_cursor_icon.c ${WAYLAND_PROTOCOLS_DIR}/wayland_xdg_shell.c) + +target_link_libraries(main lvgl lvgl::examples lvgl::demos ${PKG_WAYLAND_LIBRARIES} m pthread) +add_custom_target (run COMMAND ${EXECUTABLE_OUTPUT_PATH}/main DEPENDS main) + diff --git a/meta-digi-dey/recipes-graphics/lvgl/files/digi_main.c b/meta-digi-dey/recipes-graphics/lvgl/files/digi_main.c new file mode 100644 index 000000000..3256c862d --- /dev/null +++ b/meta-digi-dey/recipes-graphics/lvgl/files/digi_main.c @@ -0,0 +1,109 @@ +#include "lvgl/lvgl.h" +#include "lvgl/demos/lv_demos.h" +#include "lvgl/src/core/lv_global.h" +#include +#include +#include +#include +#include + +static const char *getenv_default(const char *name, const char *dflt) +{ + return getenv(name) ? : dflt; +} + +#if LV_USE_LINUX_FBDEV || LV_USE_LINUX_DRM +static void indev_deleted_cb(lv_event_t * e) +{ + if(LV_GLOBAL_DEFAULT()->deinit_in_progress) + return; + lv_obj_t * cursor_obj = lv_event_get_user_data(e); + lv_obj_delete(cursor_obj); +} + +static void discovery_cb(lv_indev_t * indev, lv_evdev_type_t type, void * user_data) +{ + LV_LOG_USER("new '%s' device discovered", type == LV_EVDEV_TYPE_REL ? "REL" : + type == LV_EVDEV_TYPE_ABS ? "ABS" : + type == LV_EVDEV_TYPE_KEY ? "KEY" : + "unknown"); + /* if input device is mouse add cursor */ + if(type == LV_EVDEV_TYPE_REL) { + LV_IMAGE_DECLARE(mouse_cursor_icon); + lv_obj_t * cursor_obj = lv_image_create(lv_screen_active()); + lv_image_set_src(cursor_obj, &mouse_cursor_icon); + lv_indev_set_cursor(indev, cursor_obj); + lv_indev_add_event_cb(indev, indev_deleted_cb, LV_EVENT_DELETE, cursor_obj); + } +} +#endif + +#if LV_USE_LINUX_FBDEV +static void lv_linux_disp_init(void) +{ + const char *device = getenv_default("LV_LINUX_FBDEV_DEVICE", "/dev/fb0"); + lv_display_t * disp = lv_linux_fbdev_create(); + + lv_linux_fbdev_set_file(disp, device); + /* search for input devices */ + lv_evdev_discovery_start(discovery_cb, NULL); +} +#elif LV_USE_LINUX_DRM +static void lv_linux_disp_init(void) +{ + const char *device = getenv_default("LV_LINUX_DRM_CARD", "/dev/dri/card0"); + lv_display_t * disp = lv_linux_drm_create(); + + lv_linux_drm_set_file(disp, device, -1); + /* search for input devices */ + lv_evdev_discovery_start(discovery_cb, NULL); +} +#elif LV_USE_WAYLAND +static void lv_linux_disp_init(void) +{ + /* + * Initial resolution doesn't really matter if we're changing to fullscreen + * immediately after. It should be fine as long as it's big enough to + * display all widgets correctly. + */ + lv_display_t * disp = lv_wayland_window_create(1280, 800, "LVGL Demo", NULL); + lv_wayland_window_set_fullscreen(disp, true); + if(LV_COLOR_DEPTH == 32) { + lv_display_set_color_format(disp, LV_COLOR_FORMAT_ARGB8888); + } +} +#else +#error Unsupported configuration +#endif + +int main(void) +{ + lv_init(); + + /*Linux display device init*/ + lv_linux_disp_init(); + + /*Create a Demo*/ + lv_demo_widgets(); + +#if LV_USE_WAYLAND + while (1) { + lv_wayland_timer_handler(); + + usleep(5000); + + /* Run until the last window closes */ + if (!lv_wayland_window_is_open(NULL)) { + break; + } + } +#else + /*Handle LVGL tasks*/ + while(1) { + lv_timer_handler(); + usleep(5000); + } +#endif + + return 0; +} diff --git a/meta-digi-dey/recipes-graphics/lvgl/files/lvgl-demo-init b/meta-digi-dey/recipes-graphics/lvgl/files/lvgl-demo-init index 063ea537a..e1ac75dd8 100644 --- a/meta-digi-dey/recipes-graphics/lvgl/files/lvgl-demo-init +++ b/meta-digi-dey/recipes-graphics/lvgl/files/lvgl-demo-init @@ -16,6 +16,8 @@ readonly DEMO_NAME="lvgl-demo" readonly DEMO_PATH="/usr/bin/${DEMO_NAME}" readonly DEMO_TITLE="LVGL Demo Application" +readonly DEMO_DISPLAY="##LVGL_DEMO_DISPLAY##" +readonly DEMO_ENV="##LVGL_DEMO_ENV##" readonly PID_FILE="/run/${DEMO_NAME}.pid" log() { @@ -52,6 +54,21 @@ check_is_running() { return 1 } +wait_for_wayland() { + local count=20 + local wayland_socket="/run/user/0/${DEMO_DISPLAY}" + + while [ ! -S "${wayland_socket}" ]; do + sleep 1 + count=$((count-1)) + if [ "${count}" = 0 ]; then + return 1 + fi + done + sleep 1 + return 0 +} + stop() { check_is_running || return @@ -72,11 +89,15 @@ stop() { start() { check_is_running && { log warning "start: ${DEMO_NAME} ALREADY running"; exit 0; } - # Disable the cursor when displaying at full screen on fbdev - echo "0" > /sys/class/graphics/fbcon/cursor_blink + if [ -d "/usr/share/wayland" ]; then + wait_for_wayland + else + # Disable the cursor when displaying at full screen on fbdev + echo "0" > /sys/class/graphics/fbcon/cursor_blink + fi # Launch demo - env ${DEMO_PATH} >/dev/null 2>&1 & + env ${DEMO_ENV} ${DEMO_PATH} >/dev/null 2>&1 & if [ $? -eq 0 ]; then echo $! > ${PID_FILE} diff --git a/meta-digi-dey/recipes-graphics/lvgl/lv-conf.inc b/meta-digi-dey/recipes-graphics/lvgl/lv-conf.inc index e2d90864e..b3bf02709 100644 --- a/meta-digi-dey/recipes-graphics/lvgl/lv-conf.inc +++ b/meta-digi-dey/recipes-graphics/lvgl/lv-conf.inc @@ -1,14 +1,17 @@ -# By default, use drm backend if possible. +# By default, use wayland backend if possible. # If unavailable, fall back to a secondary backend -PACKAGECONFIG ?= "drm" -PACKAGECONFIG:ccimx6ul = "fbdev" -PACKAGECONFIG:ccimx6 = "fbdev" +MINIMAL_LVGL_BACKEND ?= "drm" +MINIMAL_LVGL_BACKEND:ccimx6 = "fbdev" +MINIMAL_LVGL_BACKEND:ccimx6ul = "fbdev" +LVGL_BACKEND ?= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '${MINIMAL_LVGL_BACKEND}', d)}" + +PACKAGECONFIG ?= "${LVGL_BACKEND}" PACKAGECONFIG[drm] = ",,libdrm" PACKAGECONFIG[fbdev] = ",," PACKAGECONFIG[gridnav] = ",," PACKAGECONFIG[thorvg] = ",," -PACKAGECONFIG[sdl] = ",,virtual/libsdl2 libsdl2-image" +PACKAGECONFIG[wayland] = ",,libxkbcommon wayland wayland-native,weston weston-init" # Add libdrm include if drm is selected in PACKAGECONFIG TARGET_CFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'drm', '-I${STAGING_INCDIR}/libdrm', '', d)}" @@ -19,19 +22,18 @@ LVGL_CONFIG_USE_EVDEV = "${@bb.utils.contains_any('PACKAGECONFIG', 'drm fbdev', LVGL_CONFIG_USE_FBDEV = "${@bb.utils.contains('PACKAGECONFIG', 'fbdev', '1', '0', d)}" -LVGL_CONFIG_USE_SDL = "${@bb.utils.contains('PACKAGECONFIG', 'sdl', '1', '0', d)}" +LVGL_CONFIG_USE_WAYLAND = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', '1', '0', d)}" -LVGL_CONFIG_SDL_FULLSCREEN ?= "0" +LVGL_CONFIG_USE_GESTURE_RECOGNITION = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', '1', '0', d)}" -LVGL_CONFIG_LV_MEM_CUSTOM ?= "0" -LVGL_CONFIG_LV_MEM_SIZE ?= "(64 * 1024U)" +LVGL_CONFIG_LV_MEM_SIZE ?= "(2 * 1024U * 1024U)" LVGL_CONFIG_LV_COLOR_DEPTH ?= "32" -LVGL_CONFIG_LV_USE_LOG ?= "0" +LVGL_CONFIG_LV_USE_LOG ?= "1" LVGL_CONFIG_LV_LOG_LEVEL ?= "LV_LOG_LEVEL_WARN" -LVGL_CONFIG_LV_LOG_PRINTF ?= "0" +LVGL_CONFIG_LV_LOG_PRINTF ?= "1" -LVGL_CONFIG_LV_USE_FONT_COMPRESSED ?= "0" +LVGL_CONFIG_LV_USE_FONT_COMPRESSED ?= "1" LVGL_CONFIG_LV_USE_GRIDNAV = "${@bb.utils.contains('PACKAGECONFIG', 'gridnav', '1', '0', d)}" @@ -45,7 +47,7 @@ LVGL_CONFIG_USE_THORVG_INTERNAL = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg LVGL_CONFIG_USE_MATRIX = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg', '1', '0', d)}" -LVGL_CONFIG_USE_FLOAT = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg', '1', '0', d)}" +LVGL_CONFIG_USE_FLOAT = "${@bb.utils.contains('PACKAGECONFIG', 'thorvg', '1', '${LVGL_CONFIG_USE_GESTURE_RECOGNITION}', d)}" DEBUG_BUILD ??= "0" @@ -63,19 +65,12 @@ do_configure:append() { \ -e "s|^([[:space:]]*#define LV_USE_LINUX_FBDEV[[:space:]]).*|\1${LVGL_CONFIG_USE_FBDEV}|" \ \ - -e "s|^([[:space:]]*#define LV_USE_SDL[[:space:]]).*|\1${LVGL_CONFIG_USE_SDL}|" \ - -e "s|^([[:space:]]*#define LV_USE_DRAW_SDL[[:space:]]).*|\1${LVGL_CONFIG_USE_SDL}|" \ - -e "s|^([[:space:]]*#define LV_SDL_BUF_COUNT[[:space:]]).*|\1 2|" \ - -e "s|^([[:space:]]*#define LV_SDL_FULLSCREEN[[:space:]]).*|\1${LVGL_CONFIG_SDL_FULLSCREEN}|" \ + -e "s|^([[:space:]]*#define LV_USE_WAYLAND[[:space:]]).*|\1${LVGL_CONFIG_USE_WAYLAND}|" \ + -e "s|^([[:space:]]*#define LV_USE_GESTURE_RECOGNITION[[:space:]]).*|\1${LVGL_CONFIG_USE_GESTURE_RECOGNITION}|" \ \ -e "s|^([[:space:]]*#define LV_COLOR_DEPTH[[:space:]]).*|\1${LVGL_CONFIG_LV_COLOR_DEPTH}|" \ - -e "s|^([[:space:]]*#define LV_MEM_CUSTOM[[:space:]]).*|\1${LVGL_CONFIG_LV_MEM_CUSTOM}|" \ -e "s|^([[:space:]]*#define LV_MEM_SIZE[[:space:]]).*|\1${LVGL_CONFIG_LV_MEM_SIZE}|" \ \ - -e "s|^([[:space:]]*#define LV_TICK_CUSTOM[[:space:]]).*|\1 1|" \ - -e "s|^([[:space:]]*#define LV_TICK_CUSTOM_INCLUDE[[:space:]]).*|\1 |" \ - -e "s|^([[:space:]]*#define LV_TICK_CUSTOM_SYS_TIME_EXPR[[:space:]]).*|extern uint32_t custom_tick_get(void);\n\1 (custom_tick_get())|" \ - \ -e "s|^([[:space:]]*#define LV_USE_EVDEV[[:space:]]).*|\1${LVGL_CONFIG_USE_EVDEV}|" \ \ -e "s|^([[:space:]]*#define LV_USE_ASSERT_NULL[[:space:]]).*|\1${DEBUG_BUILD}|" \ diff --git a/meta-digi-dey/recipes-graphics/lvgl/lvgl-demo_9.3.0.bb b/meta-digi-dey/recipes-graphics/lvgl/lvgl-demo_9.3.0.bb index 6cb730fb7..372b8c8c9 100644 --- a/meta-digi-dey/recipes-graphics/lvgl/lvgl-demo_9.3.0.bb +++ b/meta-digi-dey/recipes-graphics/lvgl/lvgl-demo_9.3.0.bb @@ -7,18 +7,21 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=802d3d83ae80ef5f343050bf96cce3a4 \ SRC_URI = "\ git://github.com/lvgl/lv_port_linux_frame_buffer.git;protocol=https;branch=release/v9.3;name=demo \ git://github.com/lvgl/lvgl;protocol=https;branch=release/v9.3;name=lvgl;subdir=git/lvgl \ - file://0001-lvgl-demo-remove-demo-slideshow.patch \ - file://0004-lvgl-demo-add-input-device-discovery-support-to-LVGL.patch \ + file://digi_main.c \ + file://CMakeLists.txt_fbdev \ + file://CMakeLists.txt_drm \ + file://CMakeLists.txt_wayland \ file://lvgl-demo-init \ file://lvgl-demo-init.service \ " -SRC_URI:append:ccimx6ul = "\ - file://0003-CMakefile-remove-libdrm-dependency-when-building-fbd.patch \ +SRC_URI:remove:ccimx6 = "\ + file://CMakeLists.txt_drm \ " -SRC_URI:append:ccimx6 = "\ - file://0003-CMakefile-remove-libdrm-dependency-when-building-fbd.patch \ +SRC_URI:remove:ccimx6ul = "\ + file://CMakeLists.txt_drm \ + file://CMakeLists.txt_wayland \ " SRCREV_demo = "d07de027a8eb220f4e20f0e1b8be28729332e9ea" @@ -33,21 +36,22 @@ LVGL_CONFIG_DRM_CARD:mx8-generic-bsp = "/dev/dri/card1" LVGL_CONFIG_FBDEV_DEVICE ?= "/dev/fb0" # Change framebuffer used for the ccimx6/ccimx6qp (HDMI display) LVGL_CONFIG_FBDEV_DEVICE:ccimx6 = "/dev/fb3" -LVGL_CONFIG_LV_USE_LOG = "1" -LVGL_CONFIG_LV_LOG_PRINTF = "1" -LVGL_CONFIG_LV_MEM_SIZE = "(256 * 1024U)" -LVGL_CONFIG_LV_USE_FONT_COMPRESSED = "1" require lv-conf.inc -inherit cmake systemd update-rc.d +inherit cmake systemd update-rc.d pkgconfig S = "${WORKDIR}/git" +LVGL_DEMO_ENV ?= "DISPLAY=:0.0 XDG_RUNTIME_DIR=/run/user/0 WAYLAND_DISPLAY=\$\{DEMO_DISPLAY\}" +LVGL_DEMO_ENV:ccimx6ul ?= "" + do_configure:prepend() { - if [ "${LVGL_CONFIG_USE_SDL}" -eq 1 ] ; then - # Add libsdl build dependency, SDL2_image has no cmake file - sed -i '/^target_link_libraries/ s@pthread@& SDL2_image@' "${S}/CMakeLists.txt" + cp ${WORKDIR}/digi_main.c ${S}/main.c + if [ -f "${WORKDIR}/CMakeLists.txt_${LVGL_BACKEND}" ] ; then + cp ${WORKDIR}/CMakeLists.txt_${LVGL_BACKEND} ${S}/CMakeLists.txt + else + bbfatal "Unsupported LVGL demo backend '${LVGL_BACKEND}'" fi } @@ -68,6 +72,9 @@ do_install:append() { sed -i -e 's,##LVGL_CONFIG_DRM_CARD##,${LVGL_CONFIG_DRM_CARD},g' \ -i -e 's,##LVGL_CONFIG_FBDEV_DEVICE##,${LVGL_CONFIG_FBDEV_DEVICE},g' \ -i ${D}${sysconfdir}/lvgl-demo-init + sed -i -e "s@##LVGL_DEMO_DISPLAY##@${WAYLAND_DISPLAY}@g" \ + -e "s@##LVGL_DEMO_ENV##@${LVGL_DEMO_ENV}@g" \ + "${D}${sysconfdir}/lvgl-demo-init" ln -sf ${sysconfdir}/lvgl-demo-init ${D}${sysconfdir}/init.d/lvgl-demo-init } diff --git a/meta-digi-dey/recipes-graphics/qrencode/qrencode_%.bbappend b/meta-digi-dey/recipes-graphics/qrencode/qrencode_%.bbappend new file mode 100644 index 000000000..fac03e315 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/qrencode/qrencode_%.bbappend @@ -0,0 +1,3 @@ +# Copyright (C) 2026, Digi International Inc. + +PACKAGECONFIG += "tools" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_git.bb b/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_git.bb index 139753caa..ef0078b2b 100644 --- a/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_git.bb +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_git.bb @@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=dcf473723faabf17baa9b5f2207599d0 \ DEPENDS = "assimp vulkan-loader zlib" SRC_URI = "gitsm://github.com/SaschaWillems/Vulkan.git;protocol=https;branch=master \ - git://github.com/KhronosGroup/KTX-Software;destsuffix=git/external/ktx;name=ktx;lfs=0;protocol=https;branch=master \ + git://github.com/KhronosGroup/KTX-Software;destsuffix=git/external/ktx;name=ktx;lfs=0;protocol=https;branch=main \ file://0001-Don-t-build-demos-with-questionably-licensed-data.patch \ file://0002-Modify-parameter-in-vulkan-demo-computenbody.patch \ " diff --git a/meta-digi-dey/recipes-support/swupdate/swupdate/0001-Makefile-change-Makefile-to-build-swupdate-library-s.patch b/meta-digi-dey/recipes-support/swupdate/swupdate/0001-Makefile-change-Makefile-to-build-swupdate-library-s.patch index 11cbdf334..6b9339737 100644 --- a/meta-digi-dey/recipes-support/swupdate/swupdate/0001-Makefile-change-Makefile-to-build-swupdate-library-s.patch +++ b/meta-digi-dey/recipes-support/swupdate/swupdate/0001-Makefile-change-Makefile-to-build-swupdate-library-s.patch @@ -22,15 +22,15 @@ diff --git a/Makefile b/Makefile index cdcab69..9065a40 100644 --- a/Makefile +++ b/Makefile -@@ -364,6 +364,7 @@ include $(srctree)/Makefile.flags +@@ -371,6 +371,7 @@ include $(srctree)/Makefile.flags - objs-y := core handlers bootloader suricatta + objs-y := core handlers crypto bootloader suricatta libs-y := corelib mongoose parser fs containers +libs-y += ipc-static bindings-y := bindings tools-y := tools -@@ -479,6 +480,7 @@ install: all +@@ -486,6 +487,7 @@ install: all install -m 0644 $(srctree)/include/progress_ipc.h ${DESTDIR}/${INCLUDEDIR} install -m 0755 $(objtree)/${swupdate-ipc-lib} ${DESTDIR}/${LIBDIR} ln -sfr ${DESTDIR}/${LIBDIR}/${swupdate-ipc-lib} ${DESTDIR}/${LIBDIR}/libswupdate.so diff --git a/meta-digi-dey/recipes-support/swupdate/swupdate/0003-handlers-rdiff-handler-for-applying-librsync-s-rdiff.patch b/meta-digi-dey/recipes-support/swupdate/swupdate/0003-handlers-rdiff-handler-for-applying-librsync-s-rdiff.patch index 38c516b98..21617e53f 100644 --- a/meta-digi-dey/recipes-support/swupdate/swupdate/0003-handlers-rdiff-handler-for-applying-librsync-s-rdiff.patch +++ b/meta-digi-dey/recipes-support/swupdate/swupdate/0003-handlers-rdiff-handler-for-applying-librsync-s-rdiff.patch @@ -24,7 +24,7 @@ diff --git a/Makefile.flags b/Makefile.flags index 95c785c..5bdf520 100644 --- a/Makefile.flags +++ b/Makefile.flags -@@ -207,6 +207,10 @@ ifeq ($(CONFIG_RDIFFHANDLER),y) +@@ -227,6 +227,10 @@ ifeq ($(CONFIG_RDIFFHANDLER),y) LDLIBS += rsync endif @@ -39,7 +39,7 @@ diff --git a/configs/all_handlers_defconfig b/configs/all_handlers_defconfig index da4b28f..5da2d0d 100644 --- a/configs/all_handlers_defconfig +++ b/configs/all_handlers_defconfig -@@ -29,5 +29,6 @@ CONFIG_SHELLSCRIPTHANDLER=y +@@ -30,5 +30,6 @@ CONFIG_SHELLSCRIPTHANDLER=y CONFIG_SWUFORWARDER_HANDLER=y CONFIG_SSBLSWITCH=y CONFIG_UBIVOL=y diff --git a/meta-digi-dey/recipes-support/swupdate/swupdate/signed_images.cfg b/meta-digi-dey/recipes-support/swupdate/swupdate/signed_images.cfg index a6f0b2c59..be5a05f1d 100644 --- a/meta-digi-dey/recipes-support/swupdate/swupdate/signed_images.cfg +++ b/meta-digi-dey/recipes-support/swupdate/swupdate/signed_images.cfg @@ -1,2 +1,3 @@ # Add SIGNED_IMAGES support CONFIG_SIGNED_IMAGES=y +CONFIG_SIGALG_RAWRSA=y diff --git a/sdk/build.sh b/sdk/build.sh index b34dff420..f777b2b91 100755 --- a/sdk/build.sh +++ b/sdk/build.sh @@ -78,31 +78,36 @@ error() { # Copy buildresults (images, licenses, packages) # # $1: destination directoy +# $2: action (full or partial) # copy_images() { + local action="$2" + # Copy individual packages only for 'release' builds, not for 'daily'. # For 'daily' builds just copy the firmware images (the buildserver # cannot afford such amount of disk space) if [ "${DY_BUILD_RELEASE}" = "true" ]; then - cp -r tmp/deploy/* "${1}"/ + cp -u -r tmp/deploy/* "${1}"/ else - cp -r tmp/deploy/images "${1}"/ + cp -u -r tmp/deploy/images "${1}"/ if [ "${DY_BUILD_TCHAIN}" = "true" ]; then if [ -d tmp/deploy/sdk ]; then - cp -r tmp/deploy/sdk "${1}"/ + cp -u -r tmp/deploy/sdk "${1}"/ fi fi fi - # Images directory post-processing - # - Jenkins artifact archiver does not copy symlinks, so remove them - # beforehand to avoid ending up with several duplicates of the same - # files. - # - Remove 'README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt' files - # - Create MD5SUMS file - find "${1}" -type l -delete - find "${1}" -type f -name 'README_-_DO_NOT_DELETE*' -delete - find "${1}" -type f -not -name MD5SUMS -print0 | xargs -r -0 md5sum | sed -e "s,${1}/,,g" | sort -k2,2 > "${1}"/MD5SUMS + if [ "${action}" = "full" ]; then + # Images directory post-processing + # - Jenkins artifact archiver does not copy symlinks, so remove them + # beforehand to avoid ending up with several duplicates of the same + # files. + # - Remove 'README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt' files + # - Create MD5SUMS file + find "${1}" -type l -delete + find "${1}" -type f -name 'README_-_DO_NOT_DELETE*' -delete + find "${1}" -type f -not -name MD5SUMS -print0 | xargs -r -0 md5sum | sed -e "s,${1}/,,g" | sort -k2,2 > "${1}"/MD5SUMS + fi } # @@ -116,6 +121,114 @@ swu_recipe_name() { fi } +# +# For a given image recipe add/remove additional Yocto local.conf configuration +# +# $1: image recipe +# $2: action (add or remove) +# $3: path to conf file +# +handle_extra_yocto_conf() { + local target="$1" + local action="$2" + local conf_file="$3" + local conf_string + local start_marker + local end_marker + + if [[ ! -v EXTRA_YOCTO_CONF["$target"] ]]; then + return 0 + fi + + conf_string="${EXTRA_YOCTO_CONF[$target]}" + + start_marker="# BEGIN extra config for ${target}" + end_marker="# END extra config for ${target}" + + case "$action" in + add) + printf "\n[INFO] Adding extra local.conf configuration for target '%s'\n" "$target" + + { + printf "\n%s\n" "$start_marker" + printf "%s\n" "$conf_string" + printf "%s\n" "$end_marker" + } >> "$conf_file" + ;; + + remove) + printf "\n[INFO] Removing extra local.conf configuration for target '%s'\n" "$target" + + if grep -Fq "$start_marker" "$conf_file"; then + sed -i "\|${start_marker}|,\|${end_marker}|d" "$conf_file" + else + printf "\n[INFO] No extra local.conf configuration found for target '%s'\n" "$target" + fi + ;; + + *) + printf "\n[ERROR] Invalid Yocto conf action: %s\n" "$action" + return 1 + ;; + esac +} + +# +# For a given image recipe add/remove additional yocto layers required +# +# $1: image recipe +# $2: action (add or remove) +# +handle_extra_yocto_layers() { + local target="$1" + local action="$2" + local items_string + local item + local layer_path + + if [[ ! -v EXTRA_YOCTO_LAYERS["$target"] ]]; then + return 0 + fi + + items_string="${EXTRA_YOCTO_LAYERS[$target]}" + + if [[ "$action" == "remove" ]]; then + reversed="" + + # Convert string to array using spaces as separator + items=($items_string) + + for (( i=${#items[@]} - 1; i >= 0; i-- )); do + reversed+="${items[$i]} " + done + + items_string="$reversed" + fi + + printf "\n[INFO] '%s' requires manage additional Yocto layers\n" "$target" + + for item in $items_string; do + layer_path="${YOCTO_INST_DIR}/sources/${item}" + + case "$action" in + add) + printf "\n[INFO] Adding layer '%s' for '%s'\n" "$item" "$target" + bitbake-layers add-layer "$layer_path" + ;; + + remove) + printf "\n[INFO] Removing layer: '%s' for '%s'\n" "$item" "$target" + bitbake-layers remove-layer "$layer_path" + ;; + + *) + printf "\n[ERROR] Invalid Yocto layer action: %s\n" "$action" + return 1 + ;; + esac + done +} + # Sanity check (Jenkins environment) [ -z "${DY_REVISION}" ] && error "DY_REVISION not specified" [ -z "${DY_RM_WORK}" ] && error "DY_RM_WORK not specified" @@ -162,12 +275,25 @@ done<<-_EOF_ ccimx6ulrftest dey-image-mft-module-rf ccmp15-dvk dey-image-qt,dey-image-webkit,dey-image-lvgl,dey-image-flutter ccmp13-dvk core-image-base - ccmp25-dvk dey-image-qt,dey-image-webkit,dey-image-lvgl,dey-image-flutter + ccmp25-dvk dey-image-qt,dey-image-webkit,dey-image-lvgl,dey-image-flutter,dey-image-container-manager ccimx91-dvk core-image-base ccimx93-dvk dey-image-qt,dey-image-lvgl - ccimx95-dvk dey-image-qt,dey-image-chromium,dey-image-lvgl,dey-image-flutter + ccimx95-dvk dey-image-qt,dey-image-chromium,dey-image-lvgl,dey-image-flutter,dey-image-container-manager _EOF_ +# Set additional layers required for yocto images +declare -A EXTRA_YOCTO_LAYERS +EXTRA_YOCTO_LAYERS["dey-image-container-manager"]="\ + meta-openembedded/meta-filesystems \ + meta-virtualization \ + meta-digi/meta-digi-containers" + +# Set additional configurations required for yocto images +declare -A EXTRA_YOCTO_CONF +EXTRA_YOCTO_CONF["dey-image-container-manager"]="\ +DISTRO_FEATURES:append = \" virtualization\" \ +" + # Set default values if not provided by Jenkins DY_PLATFORMS="${DY_PLATFORMS:-${AVAILABLE_PLATFORMS}}" @@ -284,17 +410,32 @@ for platform in ${DY_PLATFORMS}; do cat conf/local.conf for target in ${platform_targets:?}; do + # Add additional layers and configs required by this image + handle_extra_yocto_layers "$target" add + handle_extra_yocto_conf "$target" add "conf/local.conf" + printf "\n[INFO] Building the %s target.\n" "${target}" # shellcheck disable=SC2046 time bitbake "${target}" $(swu_recipe_name "${target}") + printf "\n[INFO] Building the %s target was finished.\n" "${target}" + + # Remove additional layers and configs after the build + handle_extra_yocto_conf "$target" remove "conf/local.conf" + handle_extra_yocto_layers "$target" remove + + # Partial build artifacts copy to destination path + copy_images "${_this_img_dir}" partial done + # Build the toolchain for DEY images if [ "${DY_BUILD_TCHAIN}" = "true" ]; then printf "\n[INFO] Building the toolchain for %s.\n" "${platform}" time bitbake -c populate_sdk dey-toolchain fi ) - copy_images "${_this_img_dir}" + + # Full build artifacts copy to destination path + copy_images "${_this_img_dir}" full popd fi done