summaryrefslogtreecommitdiff
path: root/src/soc/intel
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel')
-rw-r--r--src/soc/intel/Kconfig1
-rw-r--r--src/soc/intel/Makefile.inc1
-rw-r--r--src/soc/intel/baytrail/Kconfig236
-rw-r--r--src/soc/intel/baytrail/Makefile.inc65
-rw-r--r--src/soc/intel/baytrail/acpi/globalnvs.asl284
-rw-r--r--src/soc/intel/baytrail/acpi/sleepstates.asl27
-rw-r--r--src/soc/intel/baytrail/acpi/southcluster.asl32
-rw-r--r--src/soc/intel/baytrail/baytrail/acpi.h29
-rw-r--r--src/soc/intel/baytrail/baytrail/gpio.h70
-rw-r--r--src/soc/intel/baytrail/baytrail/iomap.h38
-rw-r--r--src/soc/intel/baytrail/baytrail/iosf.h111
-rw-r--r--src/soc/intel/baytrail/baytrail/lpc.h34
-rw-r--r--src/soc/intel/baytrail/baytrail/mrc_cache.h40
-rw-r--r--src/soc/intel/baytrail/baytrail/mrc_wrapper.h88
-rw-r--r--src/soc/intel/baytrail/baytrail/msr.h25
-rw-r--r--src/soc/intel/baytrail/baytrail/nvm.h34
-rw-r--r--src/soc/intel/baytrail/baytrail/nvs.h136
-rw-r--r--src/soc/intel/baytrail/baytrail/pci_devs.h149
-rw-r--r--src/soc/intel/baytrail/baytrail/pmc.h30
-rw-r--r--src/soc/intel/baytrail/baytrail/romstage.h46
-rw-r--r--src/soc/intel/baytrail/bootblock/bootblock.c39
-rw-r--r--src/soc/intel/baytrail/chip.c74
-rw-r--r--src/soc/intel/baytrail/chip.h29
-rw-r--r--src/soc/intel/baytrail/iosf.c61
-rw-r--r--src/soc/intel/baytrail/memmap.c27
-rw-r--r--src/soc/intel/baytrail/microcode/M0C3067_0000030f.h13056
-rw-r--r--src/soc/intel/baytrail/microcode/Makefile.inc1
-rw-r--r--src/soc/intel/baytrail/microcode/microcode_blob.c3
-rw-r--r--src/soc/intel/baytrail/mrc_cache.c294
-rw-r--r--src/soc/intel/baytrail/nvm.c83
-rw-r--r--src/soc/intel/baytrail/placeholders.c21
-rw-r--r--src/soc/intel/baytrail/romstage/Makefile.inc4
-rw-r--r--src/soc/intel/baytrail/romstage/cache_as_ram.inc280
-rw-r--r--src/soc/intel/baytrail/romstage/raminit.c93
-rw-r--r--src/soc/intel/baytrail/romstage/romstage.c218
-rw-r--r--src/soc/intel/baytrail/romstage/uart.c39
-rw-r--r--src/soc/intel/baytrail/spi.c654
-rw-r--r--src/soc/intel/baytrail/tsc_freq.c32
38 files changed, 16484 insertions, 0 deletions
diff --git a/src/soc/intel/Kconfig b/src/soc/intel/Kconfig
new file mode 100644
index 0000000000..07099b32b6
--- /dev/null
+++ b/src/soc/intel/Kconfig
@@ -0,0 +1 @@
+source src/soc/intel/baytrail/Kconfig
diff --git a/src/soc/intel/Makefile.inc b/src/soc/intel/Makefile.inc
new file mode 100644
index 0000000000..ad798174be
--- /dev/null
+++ b/src/soc/intel/Makefile.inc
@@ -0,0 +1 @@
+subdirs-$(CONFIG_SOC_INTEL_BAYTRAIL) += baytrail
diff --git a/src/soc/intel/baytrail/Kconfig b/src/soc/intel/baytrail/Kconfig
new file mode 100644
index 0000000000..deee31a708
--- /dev/null
+++ b/src/soc/intel/baytrail/Kconfig
@@ -0,0 +1,236 @@
+
+config SOC_INTEL_BAYTRAIL
+ bool
+ help
+ Bay Trail M/D part support.
+
+if SOC_INTEL_BAYTRAIL
+
+config CPU_SPECIFIC_OPTIONS
+ def_bool y
+ select SMP
+ select SSE2
+ select UDELAY_TSC
+ select TSC_CONSTANT_RATE
+ select SMM_TSEG
+ select SMM_MODULES
+ select RELOCATABLE_MODULES
+ select DYNAMIC_CBMEM
+ select SUPPORT_CPU_UCODE_IN_CBFS
+ select TSC_SYNC_MFENCE
+ select CAR_MIGRATION
+ select MMCONF_SUPPORT
+ select MMCONF_SUPPORT_DEFAULT
+ select HAVE_SMI_HANDLER
+ select CACHE_MRC_SETTINGS
+ select CACHE_ROM
+ select SPI_FLASH
+
+config BOOTBLOCK_CPU_INIT
+ string
+ default "soc/intel/baytrail/bootblock/bootblock.c"
+
+config MMCONF_BASE_ADDRESS
+ hex
+ default 0xe0000000
+
+config MAX_CPUS
+ int
+ default 4
+
+config CPU_ADDR_BITS
+ int
+ default 36
+
+config SMM_TSEG_SIZE
+ hex
+ default 0x800000
+
+config SMM_RESERVED_SIZE
+ hex
+ default 0x100000
+
+config HAVE_MRC
+ bool "Add a Memory Reference Code binary"
+ default y
+ help
+ Select this option to add a blob containing
+ memory reference code.
+ Note: Without this binary coreboot will not work
+
+if HAVE_MRC
+
+config MRC_FILE
+ string "Intel memory refeference code path and filename"
+ default "3rdparty/northbridge/intel/sandybridge/systemagent-r6.bin"
+ help
+ The path and filename of the file to use as System Agent
+ binary. Note that this points to the sandybridge binary file
+ which is will not work, but it serves its purpose to do builds.
+
+config MRC_BIN_ADDRESS
+ hex
+ default 0xfffa0000
+
+config CACHE_MRC_SETTINGS
+ bool "Save cached MRC settings"
+ default n
+
+if CACHE_MRC_SETTINGS
+
+config MRC_SETTINGS_CACHE_BASE
+ hex
+ default 0xffb00000
+
+config MRC_SETTINGS_CACHE_SIZE
+ hex
+ default 0x10000
+
+endif # CACHE_MRC_SETTINGS
+
+endif # HAVE_MRC
+
+config CAR_TILE_SIZE
+ hex
+ default 0x8000
+ help
+ The tile size is the limit that can be assigned to cache-as-ram
+ region as well as the amount of code cache used during cache-as-ram.
+ Also note that (DCACHE_RAM_BASE ^ MRC_BIN_ADDRESS) & CAR_TILE_SIZE ==
+ CAR_TILE_SIZE.
+
+# Cache As RAM region layout:
+#
+# +-------------+ DCACHE_RAM_BASE + DCACHE_RAM_SIZE + DCACHE_RAM_MRC_VAR_SIZE
+# | MRC usage |
+# | |
+# +-------------+ DCACHE_RAM_BASE + DCACHE_RAM_SIZE
+# | Stack |\
+# | | | * DCACHE_RAM_ROMSTAGE_STACK_SIZE
+# | v |/
+# +-------------+
+# | ^ |
+# | | |
+# | CAR Globals |
+# +-------------+ DCACHE_RAM_BASE
+#
+# Note that the MRC binary is linked to assume the region marked as "MRC usage"
+# starts at DCACHE_RAM_BASE + DCACHE_RAM_SIZE. If those values change then
+# a new MRC binary needs to be produced with the updated start and size
+# information.
+
+config DCACHE_RAM_BASE
+ hex
+ default 0xff7f8000
+
+config DCACHE_RAM_SIZE
+ hex
+ default 0x1000
+ help
+ The size of the cache-as-ram region required during bootblock
+ and/or romstage. Note DCACHE_RAM_SIZE and DCACHE_RAM_MRC_VAR_SIZE
+ must add up to a power of 2.
+
+config DCACHE_RAM_MRC_VAR_SIZE
+ hex
+ default 0x7000
+ help
+ The amount of cache-as-ram region required by the reference code.
+
+config DCACHE_RAM_ROMSTAGE_STACK_SIZE
+ hex
+ default 0x800
+ help
+ The amount of anticipated stack usage from the data cache
+ during pre-ram rom stage execution.
+
+config RESET_ON_INVALID_RAMSTAGE_CACHE
+ bool "Reset the system on S3 wake when ramstage cache invalid."
+ default n
+ depends on RELOCATABLE_RAMSTAGE
+ help
+ The baytrail romstage code caches the loaded ramstage program
+ in SMM space. On S3 wake the romstage will copy over a fresh
+ ramstage that was cached in the SMM space. This option determines
+ the action to take when the ramstage cache is invalid. If selected
+ the system will reset otherwise the ramstage will be reloaded from
+ cbfs.
+
+config CBFS_SIZE
+ hex "Size of CBFS filesystem in ROM"
+ default 0x100000
+ help
+ On Bay Trail systems the firmware image has to store a lot more
+ than just coreboot, including:
+ - a firmware descriptor
+ - Intel Management Engine firmware
+ - MRC cache information
+ This option allows to limit the size of the CBFS portion in the
+ firmware image.
+
+config ENABLE_BUILTIN_COM1
+ bool "Enable builtin COM1 Serial Port"
+ default n
+ help
+ The PMC has a legacy COM1 serial port. Choose this option to
+ configure the pads and enable it. This serial port can be used for
+ the debug console.
+
+config HAVE_ME_BIN
+ bool "Add Intel Management Engine firmware"
+ default y
+ help
+ The Intel processor in the selected system requires a special firmware
+ for an integrated controller called Management Engine (ME). The ME
+ firmware might be provided in coreboot's 3rdparty repository. If
+ not and if you don't have the firmware elsewhere, you can still
+ build coreboot without it. In this case however, you'll have to make
+ sure that you don't overwrite your ME firmware on your flash ROM.
+
+config ME_BIN_PATH
+ string "Path to management engine firmware"
+ depends on HAVE_ME_BIN
+ default "3rdparty/mainboard/$(MAINBOARDDIR)/me.bin"
+
+config HAVE_IFD_BIN
+ bool
+ default y
+
+config BUILD_WITH_FAKE_IFD
+ bool "Build with a fake IFD"
+ default y if !HAVE_IFD_BIN
+ help
+ If you don't have an Intel Firmware Descriptor (ifd.bin) for your
+ board, you can select this option and coreboot will build without it.
+ Though, the resulting coreboot.rom will not contain all parts required
+ to get coreboot running on your board. You can however write only the
+ BIOS section to your board's flash ROM and keep the other sections
+ untouched. Unfortunately the current version of flashrom doesn't
+ support this yet. But there is a patch pending [1].
+
+ WARNING: Never write a complete coreboot.rom to your flash ROM if it
+ was built with a fake IFD. It just won't work.
+
+ [1] http://www.flashrom.org/pipermail/flashrom/2013-June/011083.html
+
+config IFD_BIOS_SECTION
+ depends on BUILD_WITH_FAKE_IFD
+ string
+ default ""
+
+config IFD_ME_SECTION
+ depends on BUILD_WITH_FAKE_IFD
+ string
+ default ""
+
+config IFD_PLATFORM_SECTION
+ depends on BUILD_WITH_FAKE_IFD
+ string
+ default ""
+
+config IFD_BIN_PATH
+ string "Path to intel firmware descriptor"
+ depends on !BUILD_WITH_FAKE_IFD
+ default "3rdparty/mainboard/$(MAINBOARDDIR)/descriptor.bin"
+
+endif
diff --git a/src/soc/intel/baytrail/Makefile.inc b/src/soc/intel/baytrail/Makefile.inc
new file mode 100644
index 0000000000..90b39ebba4
--- /dev/null
+++ b/src/soc/intel/baytrail/Makefile.inc
@@ -0,0 +1,65 @@
+subdirs-y += microcode
+subdirs-y += romstage
+subdirs-y += ../../../cpu/x86/lapic
+subdirs-y += ../../../cpu/x86/mtrr
+subdirs-y += ../../../cpu/x86/tsc
+
+ramstage-y += memmap.c
+romstage-y += memmap.c
+ramstage-y += tsc_freq.c
+romstage-y += tsc_freq.c
+ramstage-$(CONFIG_CACHE_MRC_SETTINGS) += nvm.c
+ramstage-$(CONFIG_CACHE_MRC_SETTINGS) += mrc_cache.c
+romstage-$(CONFIG_CACHE_MRC_SETTINGS) += mrc_cache.c
+ramstage-y += spi.c
+ramstage-y += chip.c
+ramstage-y += iosf.c
+romstage-y += iosf.c
+
+
+# Remove as ramstage gets fleshed out
+ramstage-y += placeholders.c
+
+INCLUDES += -Isrc/soc/intel/baytrail/
+
+# Run an intermediate step when producing coreboot.rom
+# that adds additional components to the final firmware
+# image outside of CBFS
+INTERMEDIATE:=baytrail_add_me
+
+ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)
+IFD_BIN_PATH := $(objgenerated)/ifdfake.bin
+IFD_SECTIONS := $(addprefix -b ,$(CONFIG_IFD_BIOS_SECTION:"%"=%)) \
+ $(addprefix -m ,$(CONFIG_IFD_ME_SECTION:"%"=%)) \
+ $(addprefix -p ,$(CONFIG_IFD_PLATFORM_SECTION:"%"=%))
+else
+IFD_BIN_PATH := $(CONFIG_IFD_BIN_PATH)
+endif
+
+baytrail_add_me: $(obj)/coreboot.pre $(IFDTOOL) $(IFDFAKE)
+ifeq ($(CONFIG_BUILD_WITH_FAKE_IFD),y)
+ printf "\n** WARNING **\n"
+ printf "Coreboot will be built with a fake Intel Firmware Descriptor (IFD).\n"
+ printf "Never write a complete coreboot.rom with a fake IFD to your board's\n"
+ printf "flash ROM! Make sure that you only write valid flash regions.\n\n"
+ printf " IFDFAKE Building a fake Intel Firmware Descriptor\n"
+ $(IFDFAKE) $(IFD_SECTIONS) $(IFD_BIN_PATH)
+endif
+ printf " DD Adding Intel Firmware Descriptor\n"
+ dd if=$(IFD_BIN_PATH) \
+ of=$(obj)/coreboot.pre conv=notrunc >/dev/null 2>&1
+ifeq ($(CONFIG_HAVE_ME_BIN),y)
+ printf " IFDTOOL me.bin -> coreboot.pre\n"
+ $(objutil)/ifdtool/ifdtool \
+ -i ME:$(CONFIG_ME_BIN_PATH) \
+ $(obj)/coreboot.pre
+ mv $(obj)/coreboot.pre.new $(obj)/coreboot.pre
+endif
+
+# Add memory reference code blob.
+cbfs-files-$(CONFIG_HAVE_MRC) += mrc.bin
+mrc.bin-file := $(call strip_quotes,$(CONFIG_MRC_FILE))
+mrc.bin-position := $(CONFIG_MRC_BIN_ADDRESS)
+mrc.bin-type := 0xab
+
+PHONY += baytrail_add_me
diff --git a/src/soc/intel/baytrail/acpi/globalnvs.asl b/src/soc/intel/baytrail/acpi/globalnvs.asl
new file mode 100644
index 0000000000..5b000930d1
--- /dev/null
+++ b/src/soc/intel/baytrail/acpi/globalnvs.asl
@@ -0,0 +1,284 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+/* Global Variables */
+
+Name(\PICM, 0) // IOAPIC/8259
+Name(\DSEN, 1) // Display Output Switching Enable
+
+/* Global ACPI memory region. This region is used for passing information
+ * between coreboot (aka "the system bios"), ACPI, and the SMI handler.
+ * Since we don't know where this will end up in memory at ACPI compile time,
+ * we have to fix it up in coreboot's ACPI creation phase.
+ */
+
+
+OperationRegion (GNVS, SystemMemory, 0xC0DEBABE, 0xf00)
+Field (GNVS, ByteAcc, NoLock, Preserve)
+{
+ /* Miscellaneous */
+ Offset (0x00),
+ OSYS, 16, // 0x00 - Operating System
+ SMIF, 8, // 0x02 - SMI function
+ PRM0, 8, // 0x03 - SMI function parameter
+ PRM1, 8, // 0x04 - SMI function parameter
+ SCIF, 8, // 0x05 - SCI function
+ PRM2, 8, // 0x06 - SCI function parameter
+ PRM3, 8, // 0x07 - SCI function parameter
+ LCKF, 8, // 0x08 - Global Lock function for EC
+ PRM4, 8, // 0x09 - Lock function parameter
+ PRM5, 8, // 0x0a - Lock function parameter
+ P80D, 32, // 0x0b - Debug port (IO 0x80) value
+ LIDS, 8, // 0x0f - LID state (open = 1)
+ PWRS, 8, // 0x10 - Power State (AC = 1)
+ /* Thermal policy */
+ Offset (0x11),
+ TLVL, 8, // 0x11 - Throttle Level Limit
+ FLVL, 8, // 0x12 - Current FAN Level
+ TCRT, 8, // 0x13 - Critical Threshold
+ TPSV, 8, // 0x14 - Passive Threshold
+ TMAX, 8, // 0x15 - CPU Tj_max
+ F0OF, 8, // 0x16 - FAN 0 OFF Threshold
+ F0ON, 8, // 0x17 - FAN 0 ON Threshold
+ F0PW, 8, // 0x18 - FAN 0 PWM value
+ F1OF, 8, // 0x19 - FAN 1 OFF Threshold
+ F1ON, 8, // 0x1a - FAN 1 ON Threshold
+ F1PW, 8, // 0x1b - FAN 1 PWM value
+ F2OF, 8, // 0x1c - FAN 2 OFF Threshold
+ F2ON, 8, // 0x1d - FAN 2 ON Threshold
+ F2PW, 8, // 0x1e - FAN 2 PWM value
+ F3OF, 8, // 0x1f - FAN 3 OFF Threshold
+ F3ON, 8, // 0x20 - FAN 3 ON Threshold
+ F3PW, 8, // 0x21 - FAN 3 PWM value
+ F4OF, 8, // 0x22 - FAN 4 OFF Threshold
+ F4ON, 8, // 0x23 - FAN 4 ON Threshold
+ F4PW, 8, // 0x24 - FAN 4 PWM value
+ TMPS, 8, // 0x25 - Temperature Sensor ID
+ /* Processor Identification */
+ Offset (0x28),
+ APIC, 8, // 0x28 - APIC Enabled by coreboot
+ MPEN, 8, // 0x29 - Multi Processor Enable
+ PCP0, 8, // 0x2a - PDC CPU/CORE 0
+ PCP1, 8, // 0x2b - PDC CPU/CORE 1
+ PPCM, 8, // 0x2c - Max. PPC state
+ PCNT, 8, // 0x2d - Processor count
+ /* Super I/O & CMOS config */
+ Offset (0x32),
+ NATP, 8, // 0x32 -
+ S5U0, 8, // 0x33 - Enable USB0 in S5
+ S5U1, 8, // 0x34 - Enable USB1 in S5
+ S3U0, 8, // 0x35 - Enable USB0 in S3
+ S3U1, 8, // 0x36 - Enable USB1 in S3
+ S33G, 8, // 0x37 - Enable 3G in S3
+ CMEM, 32, // 0x38 - CBMEM TOC
+ /* Integrated Graphics Device */
+ Offset (0x3c),
+ IGDS, 8, // 0x3c - IGD state (primary = 1)
+ TLST, 8, // 0x3d - Display Toggle List pointer
+ CADL, 8, // 0x3e - Currently Attached Devices List
+ PADL, 8, // 0x3f - Previously Attached Devices List
+ CSTE, 16, // 0x40 - Current display state
+ NSTE, 16, // 0x42 - Next display state
+ SSTE, 16, // 0x44 - Set display state
+ Offset (0x46),
+ NDID, 8, // 0x46 - Number of Device IDs
+ DID1, 32, // 0x47 - Device ID 1
+ DID2, 32, // 0x4b - Device ID 2
+ DID3, 32, // 0x4f - Device ID 3
+ DID4, 32, // 0x53 - Device ID 4
+ DID5, 32, // 0x57 - Device ID 5
+
+ /* TPM support */
+ Offset (0x5b),
+ TPMP, 8, // 0x5b - TPM Present
+ TPME, 8, // 0x5c - TPM Enable
+
+ /* LynxPoint Serial IO device BARs */
+ Offset (0x60),
+ S0B0, 32, // 0x60 - D21:F0 Serial IO SDMA BAR0
+ S1B0, 32, // 0x64 - D21:F1 Serial IO I2C0 BAR0
+ S2B0, 32, // 0x68 - D21:F2 Serial IO I2C1 BAR0
+ S3B0, 32, // 0x6c - D21:F3 Serial IO SPI0 BAR0
+ S4B0, 32, // 0x70 - D21:F4 Serial IO SPI1 BAR0
+ S5B0, 32, // 0x74 - D21:F5 Serial IO UAR0 BAR0
+ S6B0, 32, // 0x78 - D21:F6 Serial IO UAR1 BAR0
+ S7B0, 32, // 0x7c - D23:F0 Serial IO SDIO BAR0
+ S0B1, 32, // 0x80 - D21:F0 Serial IO SDMA BAR1
+ S1B1, 32, // 0x84 - D21:F1 Serial IO I2C0 BAR1
+ S2B1, 32, // 0x88 - D21:F2 Serial IO I2C1 BAR1
+ S3B1, 32, // 0x8c - D21:F3 Serial IO SPI0 BAR1
+ S4B1, 32, // 0x90 - D21:F4 Serial IO SPI1 BAR1
+ S5B1, 32, // 0x94 - D21:F5 Serial IO UAR0 BAR1
+ S6B1, 32, // 0x98 - D21:F6 Serial IO UAR1 BAR1
+ S7B1, 32, // 0x9c - D23:F0 Serial IO SDIO BAR1
+
+ Offset (0xa0),
+ CBMC, 32, // 0xa0 - coreboot mem console pointer
+
+ /* IGD OpRegion */
+ Offset (0xb4),
+ ASLB, 32, // 0xb4 - IGD OpRegion Base Address
+ IBTT, 8, // 0xb8 - IGD boot panel device
+ IPAT, 8, // 0xb9 - IGD panel type cmos option
+ ITVF, 8, // 0xba - IGD TV format cmos option
+ ITVM, 8, // 0xbb - IGD TV minor format option
+ IPSC, 8, // 0xbc - IGD panel scaling
+ IBLC, 8, // 0xbd - IGD BLC config
+ IBIA, 8, // 0xbe - IGD BIA config
+ ISSC, 8, // 0xbf - IGD SSC config
+ I409, 8, // 0xc0 - IGD 0409 modified settings
+ I509, 8, // 0xc1 - IGD 0509 modified settings
+ I609, 8, // 0xc2 - IGD 0609 modified settings
+ I709, 8, // 0xc3 - IGD 0709 modified settings
+ IDMM, 8, // 0xc4 - IGD Power conservation feature
+ IDMS, 8, // 0xc5 - IGD DVMT memory size
+ IF1E, 8, // 0xc6 - IGD function 1 enable
+ HVCO, 8, // 0xc7 - IGD HPLL VCO
+ NXD1, 32, // 0xc8 - IGD _DGS next DID1
+ NXD2, 32, // 0xcc - IGD _DGS next DID2
+ NXD3, 32, // 0xd0 - IGD _DGS next DID3
+ NXD4, 32, // 0xd4 - IGD _DGS next DID4
+ NXD5, 32, // 0xd8 - IGD _DGS next DID5
+ NXD6, 32, // 0xdc - IGD _DGS next DID6
+ NXD7, 32, // 0xe0 - IGD _DGS next DID7
+ NXD8, 32, // 0xe4 - IGD _DGS next DID8
+
+ ISCI, 8, // 0xe8 - IGD SMI/SCI mode (0: SCI)
+ PAVP, 8, // 0xe9 - IGD PAVP data
+ Offset (0xeb),
+ OSCC, 8, // 0xeb - PCIe OSC control
+ NPCE, 8, // 0xec - native pcie support
+ PLFL, 8, // 0xed - platform flavor
+ BREV, 8, // 0xee - board revision
+ DPBM, 8, // 0xef - digital port b mode
+ DPCM, 8, // 0xf0 - digital port c mode
+ DPDM, 8, // 0xf1 - digital port d mode
+ ALFP, 8, // 0xf2 - active lfp
+ IMON, 8, // 0xf3 - current graphics turbo imon value
+ MMIO, 8, // 0xf4 - 64bit mmio support
+
+ /* ChromeOS specific */
+ Offset (0x100),
+ #include <vendorcode/google/chromeos/acpi/gnvs.asl>
+}
+
+/* Set flag to enable USB charging in S3 */
+Method (S3UE)
+{
+ Store (One, \S3U0)
+ Store (One, \S3U1)
+}
+
+/* Set flag to disable USB charging in S3 */
+Method (S3UD)
+{
+ Store (Zero, \S3U0)
+ Store (Zero, \S3U1)
+}
+
+/* Set flag to enable USB charging in S5 */
+Method (S5UE)
+{
+ Store (One, \S5U0)
+ Store (One, \S5U1)
+}
+
+/* Set flag to disable USB charging in S5 */
+Method (S5UD)
+{
+ Store (Zero, \S5U0)
+ Store (Zero, \S5U1)
+}
+
+/* Set flag to enable 3G module in S3 */
+Method (S3GE)
+{
+ Store (One, \S33G)
+}
+
+/* Set flag to disable 3G module in S3 */
+Method (S3GD)
+{
+ Store (Zero, \S33G)
+}
+
+External (\_TZ.THRM)
+External (\_TZ.SKIN)
+
+Method (TZUP)
+{
+ /* Update Primary Thermal Zone */
+ If (CondRefOf (\_TZ.THRM, Local0)) {
+ Notify (\_TZ.THRM, 0x81)
+ }
+
+ /* Update Secondary Thermal Zone */
+ If (CondRefOf (\_TZ.SKIN, Local0)) {
+ Notify (\_TZ.SKIN, 0x81)
+ }
+}
+
+/* Update Fan 0 thresholds */
+Method (F0UT, 2)
+{
+ Store (Arg0, \F0OF)
+ Store (Arg1, \F0ON)
+ TZUP ()
+}
+
+/* Update Fan 1 thresholds */
+Method (F1UT, 2)
+{
+ Store (Arg0, \F1OF)
+ Store (Arg1, \F1ON)
+ TZUP ()
+}
+
+/* Update Fan 2 thresholds */
+Method (F2UT, 2)
+{
+ Store (Arg0, \F2OF)
+ Store (Arg1, \F2ON)
+ TZUP ()
+}
+
+/* Update Fan 3 thresholds */
+Method (F3UT, 2)
+{
+ Store (Arg0, \F3OF)
+ Store (Arg1, \F3ON)
+ TZUP ()
+}
+
+/* Update Fan 4 thresholds */
+Method (F4UT, 2)
+{
+ Store (Arg0, \F4OF)
+ Store (Arg1, \F4ON)
+ TZUP ()
+}
+
+/* Update Temperature Sensor ID */
+Method (TMPU, 1)
+{
+ Store (Arg0, \TMPS)
+ TZUP ()
+}
diff --git a/src/soc/intel/baytrail/acpi/sleepstates.asl b/src/soc/intel/baytrail/acpi/sleepstates.asl
new file mode 100644
index 0000000000..06bfcb6a58
--- /dev/null
+++ b/src/soc/intel/baytrail/acpi/sleepstates.asl
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2007-2009 coresystems GmbH
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+Name(\_S0, Package(){0x0,0x0,0x0,0x0})
+// Name(\_S1, Package(){0x1,0x1,0x0,0x0})
+Name(\_S3, Package(){0x5,0x5,0x0,0x0})
+Name(\_S4, Package(){0x6,0x6,0x0,0x0})
+Name(\_S5, Package(){0x7,0x7,0x0,0x0})
+
diff --git a/src/soc/intel/baytrail/acpi/southcluster.asl b/src/soc/intel/baytrail/acpi/southcluster.asl
new file mode 100644
index 0000000000..307841b368
--- /dev/null
+++ b/src/soc/intel/baytrail/acpi/southcluster.asl
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; version 2 of
+ * the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ */
+
+Scope(\)
+{
+ // IO-Trap at 0x800. This is the ACPI->SMI communication interface.
+
+ OperationRegion(IO_T, SystemIO, 0x800, 0x10)
+ Field(IO_T, ByteAcc, NoLock, Preserve)
+ {
+ Offset(0x8),
+ TRP0, 8 // IO-Trap at 0x808
+ }
+}
diff --git a/src/soc/intel/baytrail/baytrail/acpi.h b/src/soc/intel/baytrail/baytrail/acpi.h
new file mode 100644
index 0000000000..917eb26d06
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/acpi.h
@@ -0,0 +1,29 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied wacbmem_entryanty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_ACPI_H_
+#define _BAYTRAIL_ACPI_H_
+
+#include <arch/acpi.h>
+
+void acpi_create_intel_hpet(acpi_hpet_t * hpet);
+void acpi_create_serialio_ssdt(acpi_header_t *ssdt);
+
+#endif /* _BAYTRAIL_ACPI_H_ */
+
diff --git a/src/soc/intel/baytrail/baytrail/gpio.h b/src/soc/intel/baytrail/baytrail/gpio.h
new file mode 100644
index 0000000000..68e32416fc
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/gpio.h
@@ -0,0 +1,70 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_GPIO_H_
+#define _BAYTRAIL_GPIO_H_
+
+#include <stdint.h>
+#include <arch/io.h>
+#include <baytrail/iomap.h>
+
+/* Registers sitting behind the IO_BASE_ADDRESS */
+
+#define SCORE_PCONF_OFFSET 0x0000
+#define SSUS_PCONF_OFFSET 0x2000
+
+static inline unsigned int score_pconf0(int pad_num)
+{
+ return IO_BASE_ADDRESS + SCORE_PCONF_OFFSET + pad_num * 16;
+}
+
+
+static inline unsigned int ssus_pconf0(int pad_num)
+{
+ return IO_BASE_ADDRESS + SSUS_PCONF_OFFSET + pad_num * 16;
+}
+
+static inline void score_select_func(int pad, int func)
+{
+ uint32_t reg;
+ uint32_t pconf0_addr = score_pconf0(pad);
+
+ reg = read32(pconf0_addr);
+ reg &= ~0x7;
+ reg |= func & 0x7;
+ write32(pconf0_addr, reg);
+}
+
+static inline void ssus_select_func(int pad, int func)
+{
+ uint32_t reg;
+ uint32_t pconf0_addr = ssus_pconf0(pad);
+
+ reg = read32(pconf0_addr);
+ reg &= ~0x7;
+ reg |= func & 0x7;
+ write32(pconf0_addr, reg);
+}
+
+/* SCORE Pad definitions. */
+#define PCU_SMB_CLK_PAD 88
+#define PCU_SMB_DATA_PAD 90
+#define PCU_SMB_ALERT_PAD 92
+
+#endif /* _BAYTRAIL_GPIO_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/iomap.h b/src/soc/intel/baytrail/baytrail/iomap.h
new file mode 100644
index 0000000000..ea2d648e36
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/iomap.h
@@ -0,0 +1,38 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_IOMAP_H_
+#define _BAYTRAIL_IOMAP_H_
+
+
+/* Memory Mapped IO bases. */
+
+#define PMC_BASE_ADDRESS 0xfed03000
+#define IO_BASE_ADDRESS 0xfed0c000
+#define ILB_BASE_ADDRESS 0xfed08000
+#define SPI_BASE_ADDRESS 0xfed01000
+#define MPHY_BASE_ADDRESS 0xfef00000
+#define RCBA_BASE_ADDRESS 0xfed1c000
+
+/* IO Port base */
+#define ACPI_BASE_ADDRESS 0x0400
+#define GPIO_BASE_ADDRESS 0x0500
+#define SMBUS_BASE_ADDRESS 0xefa0
+
+#endif /* _BAYTRAIL_IOMAP_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/iosf.h b/src/soc/intel/baytrail/baytrail/iosf.h
new file mode 100644
index 0000000000..6ff087bdb6
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/iosf.h
@@ -0,0 +1,111 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied wacbmem_entryanty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_IOSF_H_
+#define _BAYTRAIL_IOSF_H_
+
+#include <stdint.h>
+#include <baytrail/pci_devs.h>
+
+/*
+ * The Bay Trail SoC has a message network called IOSF Sideband. The access
+ * routines are through 3 registers in PCI config space of 00:00.0:
+ * MCR - control register
+ * MDR - data register
+ * MCRX - control register extension
+ * The extension regist is only used for addresses that don't fit into the
+ * 8 bit register address.
+ */
+
+#ifndef PCI_DEV
+#define PCI_DEV(SEGBUS, DEV, FN) ( \
+ (((SEGBUS) & 0xFFF) << 20) | \
+ (((DEV) & 0x1F) << 15) | \
+ (((FN) & 0x07) << 12))
+#endif
+#define IOSF_PCI_DEV PCI_DEV(0,SOC_DEV,SOC_FUNC)
+
+#define MCR_REG 0xd0
+#define IOSF_OPCODE(x) ((x) << 24)
+#define IOSF_PORT(x) ((0xff & (x)) << 16)
+#define IOSF_REG(x) ((0xff & (x)) << 8)
+#define IOSF_BYTE_EN 0xf0
+#define MDR_REG 0xd4
+#define MCRX_REG 0xd8
+
+uint32_t iosf_bunit_read(int reg);
+void iosf_bunit_write(int reg, uint32_t val);
+
+/* IOSF ports. */
+#define IOSF_PORT_AUNIT 0x00 /* IO Arbiter unit */
+#define IOSF_PORT_SYSMEMC 0x01 /* System Memory Controller */
+#define IOSF_PORT_CPU_BUS 0x02 /* CPU Bus Interface Controller */
+#define IOSF_PORT_BUNIT 0x03 /* System Memroy Arbiter/Bunit */
+#define IOSF_PORT_PMC 0x04 /* Power Management Controller */
+#define IOSF_PORT_GFX 0x06 /* Graphics Adapter */
+#define IOSF_PORT_SYSMEMIO 0x0c /* System Memory IO */
+#define IOSF_PORT_USBPHY 0x43 /* USB PHY */
+#define IOSF_PORT_SATAPHY 0xa3 /* SATA PHY */
+#define IOSF_PORT_PCIEPHY 0xa3 /* PCIE PHY */
+
+/* Read and write opcodes differ per port. */
+#define IOSF_OP_READ_AUNIT 0x10
+#define IOSF_OP_WRITE_AUNIT (IOSF_OP_READ_AUNIT | 1)
+#define IOSF_OP_READ_SYSMEMC 0x10
+#define IOSF_OP_WRITE_SYSMEMC (IOSF_OP_READ_SYSMEMC | 1)
+#define IOSF_OP_READ_CPU_BUS 0x10
+#define IOSF_OP_WRITE_CPU_BUS (IOSF_OP_READ_CPU_BUS | 1)
+#define IOSF_OP_READ_BUNIT 0x10
+#define IOSF_OP_WRITE_BUNIT (IOSF_OP_READ_BUNIT | 1)
+#define IOSF_OP_READ_PMC 0x06
+#define IOSF_OP_WRITE_PMC (IOSF_OP_READ_PMC | 1)
+#define IOSF_OP_READ_GFX 0x00
+#define IOSF_OP_WRITE_GFX (IOSF_OP_READ_GFX | 1)
+#define IOSF_OP_READ_SYSMEMIO 0x06
+#define IOSF_OP_WRITE_SYSMEMIO (IOSF_OP_READ_SYSMEMIO | 1)
+#define IOSF_OP_READ_USBPHY 0x06
+#define IOSF_OP_WRITE_USBPHY (IOSF_OP_READ_USBPHY | 1)
+#define IOSF_OP_READ_SATAPHY 0x00
+#define IOSF_OP_WRITE_SATAPHY (IOSF_OP_READ_SATAPHY | 1)
+#define IOSF_OP_READ_PCIEPHY 0x00
+#define IOSF_OP_WRITE_PCIEPHY (IOSF_OP_READ_PCIEPHY | 1)
+
+
+/*
+ * BUNIT Registers.
+ */
+
+#define BNOCACHE 0x23
+/* BMBOUND has a 128MiB granularity. Highest address is 0xf8000000. */
+#define BUNIT_BMBOUND 0x25
+/* BMBOUND_HI describes the available ram above 4GiB. It has a
+ * 256MiB granularity. Physical address bits 35:28 are compared with 31:24
+ * bits in the BMBOUND_HI register. Also note that since BMBOUND has 128MiB
+ * granularity care needs to be taken with the e820 map to account for a hole
+ * in the ram. */
+#define BUNIT_BMBOUND_HI 0x26
+#define BUNIT_MMCONF_REG 0x27
+/* The SMMRR registers define the SMM region in MiB granularity. */
+#define BUNIT_SMRRL 0x2e
+#define BUNIT_SMRRH 0x2f
+# define BUNIT_SMRR_ENABLE (1 << 31)
+
+
+
+#endif /* _BAYTRAIL_IOSF_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/lpc.h b/src/soc/intel/baytrail/baytrail/lpc.h
new file mode 100644
index 0000000000..17dc4b533c
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/lpc.h
@@ -0,0 +1,34 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_LPC_H_
+#define _BAYTRAIL_LPC_H_
+
+/* PCI config registers in LPC bridge. */
+#define ABASE 0x40
+#define PBASE 0x44
+#define GBASE 0x48
+#define IOBASE 0x4c
+#define IBASE 0x50
+#define SBASE 0x54
+#define MPBASE 0x58
+#define UART_CONT 0x80
+#define RCBA 0xf0
+
+#endif /* _BAYTRAIL_LPC_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/mrc_cache.h b/src/soc/intel/baytrail/baytrail/mrc_cache.h
new file mode 100644
index 0000000000..6791ec4a82
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/mrc_cache.h
@@ -0,0 +1,40 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _MRC_CACHE_H_
+#define _MRC_CACHE_H_
+
+#include <stddef.h>
+#include <stdint.h>
+
+/* Wrapper object to save MRC information. */
+struct mrc_saved_data {
+ uint32_t signature;
+ uint32_t size;
+ uint32_t checksum;
+ uint32_t reserved;
+ uint8_t data[0];
+} __attribute__((packed));
+
+/* Locate the most recently saved MRC data. */
+int mrc_cache_get_current(const struct mrc_saved_data **cache);
+
+/* Stash the resulting MRC data to be saved in non-volatile storage later. */
+int mrc_cache_stash_data(void *data, size_t size);
+#endif /* _MRC_CACHE_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/mrc_wrapper.h b/src/soc/intel/baytrail/baytrail/mrc_wrapper.h
new file mode 100644
index 0000000000..556746bb53
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/mrc_wrapper.h
@@ -0,0 +1,88 @@
+/*
+ * MRC wrapper definitions
+ *
+ * Copyright 2013 Google Inc.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Google Inc. 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 GOOGLE INC 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 _MRC_WRAPPER_H_
+#define _MRC_WRAPPER_H_
+
+#define MRC_PARAMS_VER 1
+
+#define NUM_CHANNELS 2
+
+enum {
+ DRAM_INFO_SPD_SMBUS, /* Use the typical SPD smbus access. */
+ DRAM_INFO_SPD_MEM, /* SPD info in memory. */
+ DRAM_INFO_DETAILED, /* Timing info not in SPD format. */
+};
+
+enum dram_type {
+ DRAM_DDR3,
+ DRAM_DDR3L,
+ DRAM_LPDDR3,
+};
+
+/* Errors returned by the MRC wrapper. */
+enum mrc_wrapper_error {
+ INVALID_VER = -1,
+ INVALID_DRAM_TYPE = -2,
+ INVALID_SLEEP_MODE = -3,
+ PLATFORM_SETTINGS_FAIL = -4,
+ DIMM_DETECTION_FAILURE = -5,
+ MEMORY_CONFIG_FAILURE = -6,
+};
+
+struct mrc_mainboard_params {
+ int dram_type;
+ int dram_info_location; /* DRAM_INFO_* */
+ int spd_addrs[NUM_CHANNELS];
+ void *dram_data[NUM_CHANNELS]; /* SPD or Timing specific data. */
+} __attribute__((packed));
+
+struct mrc_params {
+ /* Mainboard Inputs */
+ int version;
+
+ struct mrc_mainboard_params mainboard;
+
+ void (*console_out)(unsigned char byte);
+
+ int prev_sleep_state;
+
+ int saved_data_size;
+ const void *saved_data;
+
+ int txe_size_mb; /* TXE memory size in megabytes. */
+
+ /* Outputs */
+ void *txe_base_address;
+ int data_to_save_size;
+ void *data_to_save;
+} __attribute__((packed));
+
+/* Call into wrapper. */
+typedef int (*mrc_wrapper_entry_t)(struct mrc_params *);
+
+#endif /* _MRC_WRAPPER_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/msr.h b/src/soc/intel/baytrail/baytrail/msr.h
new file mode 100644
index 0000000000..1934a31354
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/msr.h
@@ -0,0 +1,25 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied wacbmem_entryanty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_MSR_H_
+#define _BAYTRAIL_MSR_H_
+
+#define MSR_PLATFORM_INFO 0xce
+
+#endif /* _BAYTRAIL_IOSF_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/nvm.h b/src/soc/intel/baytrail/baytrail/nvm.h
new file mode 100644
index 0000000000..d0cbf7b0e6
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/nvm.h
@@ -0,0 +1,34 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _NVM_H_
+#define _NVM_H_
+
+#include <stddef.h>
+
+/* Determine if area is erased. returns 1 if erased. 0 otherwise. */
+int nvm_is_erased(const void *start, size_t size);
+
+/* Erase region according to start and size. Returns < 0 on error else 0. */
+int nvm_erase(void *start, size_t size);
+
+/* Write data to NVM. Returns 0 on success < 0 on error. */
+int nvm_write(void *start, const void *data, size_t size);
+
+#endif /* _NVM_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/nvs.h b/src/soc/intel/baytrail/baytrail/nvs.h
new file mode 100644
index 0000000000..4283ca13d5
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/nvs.h
@@ -0,0 +1,136 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2008-2009 coresystems GmbH
+ * Copyright (C) 2011 Google Inc
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "vendorcode/google/chromeos/gnvs.h"
+typedef struct {
+ /* Miscellaneous */
+ u16 osys; /* 0x00 - Operating System */
+ u8 smif; /* 0x02 - SMI function call ("TRAP") */
+ u8 prm0; /* 0x03 - SMI function call parameter */
+ u8 prm1; /* 0x04 - SMI function call parameter */
+ u8 scif; /* 0x05 - SCI function call (via _L00) */
+ u8 prm2; /* 0x06 - SCI function call parameter */
+ u8 prm3; /* 0x07 - SCI function call parameter */
+ u8 lckf; /* 0x08 - Global Lock function for EC */
+ u8 prm4; /* 0x09 - Lock function parameter */
+ u8 prm5; /* 0x0a - Lock function parameter */
+ u32 p80d; /* 0x0b - Debug port (IO 0x80) value */
+ u8 lids; /* 0x0f - LID state (open = 1) */
+ u8 pwrs; /* 0x10 - Power state (AC = 1) */
+ /* Thermal policy */
+ u8 tlvl; /* 0x11 - Throttle Level Limit */
+ u8 flvl; /* 0x12 - Current FAN Level */
+ u8 tcrt; /* 0x13 - Critical Threshold */
+ u8 tpsv; /* 0x14 - Passive Threshold */
+ u8 tmax; /* 0x15 - CPU Tj_max */
+ u8 f0of; /* 0x16 - FAN 0 OFF Threshold */
+ u8 f0on; /* 0x17 - FAN 0 ON Threshold */
+ u8 f0pw; /* 0x18 - FAN 0 PWM value */
+ u8 f1of; /* 0x19 - FAN 1 OFF Threshold */
+ u8 f1on; /* 0x1a - FAN 1 ON Threshold */
+ u8 f1pw; /* 0x1b - FAN 1 PWM value */
+ u8 f2of; /* 0x1c - FAN 2 OFF Threshold */
+ u8 f2on; /* 0x1d - FAN 2 ON Threshold */
+ u8 f2pw; /* 0x1e - FAN 2 PWM value */
+ u8 f3of; /* 0x1f - FAN 3 OFF Threshold */
+ u8 f3on; /* 0x20 - FAN 3 ON Threshold */
+ u8 f3pw; /* 0x21 - FAN 3 PWM value */
+ u8 f4of; /* 0x22 - FAN 4 OFF Threshold */
+ u8 f4on; /* 0x23 - FAN 4 ON Threshold */
+ u8 f4pw; /* 0x24 - FAN 4 PWM value */
+ u8 tmps; /* 0x25 - Temperature Sensor ID */
+ u8 rsvd3[2];
+ /* Processor Identification */
+ u8 apic; /* 0x28 - APIC enabled */
+ u8 mpen; /* 0x29 - MP capable/enabled */
+ u8 pcp0; /* 0x2a - PDC CPU/CORE 0 */
+ u8 pcp1; /* 0x2b - PDC CPU/CORE 1 */
+ u8 ppcm; /* 0x2c - Max. PPC state */
+ u8 pcnt; /* 0x2d - Processor Count */
+ u8 rsvd4[4];
+ /* Super I/O & CMOS config */
+ u8 natp; /* 0x32 - SIO type */
+ u8 s5u0; /* 0x33 - Enable USB0 in S5 */
+ u8 s5u1; /* 0x34 - Enable USB1 in S5 */
+ u8 s3u0; /* 0x35 - Enable USB0 in S3 */
+ u8 s3u1; /* 0x36 - Enable USB1 in S3 */
+ u8 s33g; /* 0x37 - Enable S3 in 3G */
+ u32 cmem; /* 0x38 - CBMEM TOC */
+ /* Integrated Graphics Device */
+ u8 igds; /* 0x3c - IGD state */
+ u8 tlst; /* 0x3d - Display Toggle List Pointer */
+ u8 cadl; /* 0x3e - currently attached devices */
+ u8 padl; /* 0x3f - previously attached devices */
+ u16 cste; /* 0x40 - current display state */
+ u16 nste; /* 0x42 - next display state */
+ u16 sste; /* 0x44 - set display state */
+ u8 ndid; /* 0x46 - number of device ids */
+ u32 did[5]; /* 0x47 - 5b device id 1..5 */
+ /* TPM support */
+ u8 tpmp; /* 0x5b - TPM Present */
+ u8 tpme; /* 0x5c - TPM Enable */
+ u8 rsvd5[3];
+ /* LynxPoint Serial IO device BARs */
+ u32 s0b[8]; /* 0x60 - 0x7f - BAR0 */
+ u32 s1b[8]; /* 0x80 - 0x9f - BAR1 */
+ u32 cbmc; /* 0xa0 - 0xa3 - coreboot memconsole */
+ u8 rsvd6[16];
+ /* IGD OpRegion (not implemented yet) */
+ u32 aslb; /* 0xb4 - IGD OpRegion Base Address */
+ u8 ibtt; /* 0xb8 - IGD boot type */
+ u8 ipat; /* 0xb9 - IGD panel type */
+ u8 itvf; /* 0xba - IGD TV format */
+ u8 itvm; /* 0xbb - IGD TV minor format */
+ u8 ipsc; /* 0xbc - IGD Panel Scaling */
+ u8 iblc; /* 0xbd - IGD BLC configuration */
+ u8 ibia; /* 0xbe - IGD BIA configuration */
+ u8 issc; /* 0xbf - IGD SSC configuration */
+ u8 i409; /* 0xc0 - IGD 0409 modified settings */
+ u8 i509; /* 0xc1 - IGD 0509 modified settings */
+ u8 i609; /* 0xc2 - IGD 0609 modified settings */
+ u8 i709; /* 0xc3 - IGD 0709 modified settings */
+ u8 idmm; /* 0xc4 - IGD Power Conservation */
+ u8 idms; /* 0xc5 - IGD DVMT memory size */
+ u8 if1e; /* 0xc6 - IGD Function 1 Enable */
+ u8 hvco; /* 0xc7 - IGD HPLL VCO */
+ u32 nxd[8]; /* 0xc8 - IGD next state DIDx for _DGS */
+ u8 isci; /* 0xe8 - IGD SMI/SCI mode (0: SCI) */
+ u8 pavp; /* 0xe9 - IGD PAVP data */
+ u8 rsvd12; /* 0xea - rsvd */
+ u8 oscc; /* 0xeb - PCIe OSC control */
+ u8 npce; /* 0xec - native pcie support */
+ u8 plfl; /* 0xed - platform flavor */
+ u8 brev; /* 0xee - board revision */
+ u8 dpbm; /* 0xef - digital port b mode */
+ u8 dpcm; /* 0xf0 - digital port c mode */
+ u8 dpdm; /* 0xf1 - digital port c mode */
+ u8 alfp; /* 0xf2 - active lfp */
+ u8 imon; /* 0xf3 - current graphics turbo imon value */
+ u8 mmio; /* 0xf4 - 64bit mmio support */
+ u8 rsvd13[11]; /* 0xf5 - rsvd */
+
+ /* ChromeOS specific (starts at 0x100)*/
+ chromeos_acpi_t chromeos;
+} __attribute__((packed)) global_nvs_t;
+
+#ifdef __SMM__
+/* Used in SMM to find the ACPI GNVS address */
+global_nvs_t *smm_get_gnvs(void);
+#endif
diff --git a/src/soc/intel/baytrail/baytrail/pci_devs.h b/src/soc/intel/baytrail/baytrail/pci_devs.h
new file mode 100644
index 0000000000..46c6ea6f41
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/pci_devs.h
@@ -0,0 +1,149 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_PCI_DEVS_H_
+#define _BAYTRAIL_PCI_DEVS_H_
+
+/* All these devices live on bus 0 with the associated device and function */
+
+/* SoC transaction router */
+#define SOC_DEV 0
+#define SOC_FUNC 0
+# define SOC_DEVID 0x0f00
+
+/* Graphics and Display */
+#define GFX_DEV 2
+#define GFX_FUNC 0
+# define GFX_DEVID 0x0f31
+
+/* MMC Port */
+#define MMC_DEV 16
+#define MMC_FUNC 0
+# define MMC_DEVID 0x0f14
+
+/* SDIO Port */
+#define SDIO_DEV 17
+#define SDIO_FUNC 0
+# define SDIO_DEVID 0x0f15
+
+/* SD Port */
+#define SD_DEV 18
+#define SD_FUNC 0
+# define SD_DEVID 0x0f16
+
+/* SATA */
+#define SATA_DEV 19
+#define SATA_FUNC 0
+# define ACHI1_DEVID 0x0f22
+# define ACHI2_DEVID 0x0f23
+
+/* xHCI */
+#define XHCI_DEV 20
+#define XHCI_FUNC 0
+# define XCHI_DEVID 0x0f35
+
+/* LPE Audio */
+#define LPE_DEV 21
+#define LPE_FUNC 0
+# define LPE_DEVID 0x0f28
+
+/* Serial IO 1 */
+#define SIO1_DEV 24
+# define SIO_DMA1_DEV SIO1_DEV
+# define SIO_DMA1_FUNC 0
+# define SIO_DMA1_DEVID 0x0f40
+# define I2C1_DEV SIO1_DEV
+# define I2C1_FUNC 1
+# define I2C1_DEVID 0x0f41
+# define I2C2_DEV SIO1_DEV
+# define I2C2_FUNC 2
+# define I2C2_DEVID 0x0f42
+# define I2C3_DEV SIO1_DEV
+# define I2C3_FUNC 3
+# define I2C3_DEVID 0x0f43
+# define I2C4_DEV SIO1_DEV
+# define I2C4_FUNC 4
+# define I2C4_DEVID 0x0f44
+# define I2C5_DEV SIO1_DEV
+# define I2C5_FUNC 5
+# define I2C5_DEVID 0x0f45
+# define I2C6_DEV SIO1_DEV
+# define I2C6_FUNC 6
+# define I2C6_DEVID 0x0f46
+# define I2C7_DEV SIO1_DEV
+# define I2C7_FUNC 7
+# define I2C7_DEVID 0x0f47
+
+/* Trusted Execution Engine */
+#define TXE_DEV 26
+#define TXE_FUNC 0
+# define TXE_DEVID 0x0f18
+
+/* HD Audio */
+#define HDA_DEV 27
+#define HDA_FUNC 0
+# define HDA_DEVID 0x0f04
+
+/* PCIe Ports */
+#define PCIE_DEV 28
+# define PCIE_PORT1_FUNC 0
+# define PCIE_PORT1_DEVID 0x0f48
+# define PCIE_PORT2_FUNC 1
+# define PCIE_PORT2_DEVID 0x0f4a
+# define PCIE_PORT3_FUNC 2
+# define PCIE_PORT3_DEVID 0x0f4c
+# define PCIE_PORT4_FUNC 3
+# define PCIE_PORT4_DEVID 0x0f4e
+
+/* EHCI */
+#define EHCI_DEV 29
+#define EHCI_FUNC 29
+# define EHCI_DEVID 0x0f34
+
+/* Serial IO 2 */
+#define SIO2_DEV 30
+# define SIO_DMA2_DEV SIO2_DEV
+# define SIO_DMA2_FUNC 0
+# define SIO_DMA2_DEVID 0x0f06
+# define PWM1_DEV SIO2_DEV
+# define PWM1_FUNC 1
+# define PWM1_DEVID 0x0f08
+# define PWM2_DEV SIO2_DEV
+# define PWM2_FUNC 2
+# define PWM2_DEVID 0x0f09
+# define HSUART1_DEV SIO2_DEV
+# define HSUART1_FUNC 3
+# define HSUART1_DEVID 0x0f0a
+# define HSUART2_DEV SIO2_DEV
+# define HSUART2_FUNC 4
+# define HSUART2_DEVID 0x0f0c
+# define SPI_DEV SIO2_DEV
+# define SPI_FUNC 5
+# define SPI_DEVID 0xf0e
+
+/* Platform Controller Unit */
+#define PCU_DEV 31
+# define LPC_DEV PCU_DEV
+# define LPC_FUNC 0
+# define LPC_DEVID 0x0f1c
+# define SMBUS_DEV PCU_DEV
+# define SMBUS_FUNC 3
+# define SMBUS_DEVID 0x0f12
+
+#endif /* _BAYTRAIL_PCI_DEVS_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/pmc.h b/src/soc/intel/baytrail/baytrail/pmc.h
new file mode 100644
index 0000000000..64de97ade1
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/pmc.h
@@ -0,0 +1,30 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_PMC_H_
+#define _BAYTRAIL_PMC_H_
+
+
+#define IOCOM1 0x3f8
+
+/* Memory mapped IO registers behind PMC_BASE_ADDRESS */
+#define GEN_PMCONF1 0x20
+# define UART_EN (1 << 24)
+
+#endif /* _BAYTRAIL_PMC_H_ */
diff --git a/src/soc/intel/baytrail/baytrail/romstage.h b/src/soc/intel/baytrail/baytrail/romstage.h
new file mode 100644
index 0000000000..b0755e5e6d
--- /dev/null
+++ b/src/soc/intel/baytrail/baytrail/romstage.h
@@ -0,0 +1,46 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_ROMSTAGE_H_
+#define _BAYTRAIL_ROMSTAGE_H_
+
+#if !defined(__PRE_RAM__)
+#error "Don't include romstage.h from a ramstage compilation unit!"
+#endif
+
+#include <arch/cpu.h>
+#include <baytrail/mrc_wrapper.h>
+
+struct romstage_params {
+ struct mrc_params *mrc_params;
+};
+
+void mainboard_romstage_entry(unsigned long bist);
+void romstage_common(const struct romstage_params *params);
+void * asmlinkage romstage_main(unsigned long bist);
+void asmlinkage romstage_after_car(void);
+void raminit(struct mrc_params *mp, int prev_sleep_state);
+
+#if CONFIG_ENABLE_BUILTIN_COM1
+void byt_config_com1_and_enable(void);
+#else
+static inline void byt_config_com1_and_enable(void) { }
+#endif
+
+#endif /* _BAYTRAIL_ROMSTAGE_H_ */
diff --git a/src/soc/intel/baytrail/bootblock/bootblock.c b/src/soc/intel/baytrail/bootblock/bootblock.c
new file mode 100644
index 0000000000..66120d9125
--- /dev/null
+++ b/src/soc/intel/baytrail/bootblock/bootblock.c
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied wacbmem_entryanty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <arch/io.h>
+#include <baytrail/iosf.h>
+
+static void bootblock_cpu_init(void)
+{
+ uint32_t reg;
+
+ /* Set up the MMCONF range. The register lives in the BUNIT. The
+ * IO variant of the config access needs to be used initially to
+ * properly configure as the IOSF access registers live in PCI
+ * config space. */
+ reg = 0;
+ /* Clear the extended register. */
+ pci_io_write_config32(IOSF_PCI_DEV, MCRX_REG, reg);
+ reg = CONFIG_MMCONF_BASE_ADDRESS | 1;
+ pci_io_write_config32(IOSF_PCI_DEV, MDR_REG, reg);
+ reg = IOSF_OPCODE(IOSF_OP_WRITE_BUNIT) | IOSF_PORT(IOSF_PORT_BUNIT) |
+ IOSF_REG(BUNIT_MMCONF_REG) | IOSF_BYTE_EN;
+ pci_io_write_config32(IOSF_PCI_DEV, MCR_REG, reg);
+}
diff --git a/src/soc/intel/baytrail/chip.c b/src/soc/intel/baytrail/chip.c
new file mode 100644
index 0000000000..5a5c364f5f
--- /dev/null
+++ b/src/soc/intel/baytrail/chip.c
@@ -0,0 +1,74 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <console/console.h>
+#include <device/device.h>
+#include <device/pci.h>
+#include <arch/pci_ops.h>
+
+#include <baytrail/pci_devs.h>
+#include <baytrail/ramstage.h>
+#include "chip.h"
+
+static void pci_domain_set_resources(device_t dev)
+{
+ assign_resources(dev->link_list);
+}
+
+static struct device_operations pci_domain_ops = {
+ .read_resources = pci_domain_read_resources,
+ .set_resources = pci_domain_set_resources,
+ .enable_resources = NULL,
+ .init = NULL,
+ .scan_bus = pci_domain_scan_bus,
+ .ops_pci_bus = pci_bus_default_ops,
+};
+
+static void cpu_bus_init(device_t dev)
+{
+ printk(BIOS_DEBUG, "cpu_bus_init()\n");
+}
+
+static void cpu_bus_noop(device_t dev) { }
+
+static struct device_operations cpu_bus_ops = {
+ .read_resources = cpu_bus_noop,
+ .set_resources = cpu_bus_noop,
+ .enable_resources = cpu_bus_noop,
+ .init = cpu_bus_init,
+ .scan_bus = 0,
+};
+
+
+static void enable_dev(device_t dev)
+{
+ printk(BIOS_DEBUG, "enable_dev(%s, %d)\n",
+ dev_name(dev), dev->path.type);
+ /* Set the operations if it is a special bus type */
+ if (dev->path.type == DEVICE_PATH_DOMAIN) {
+ dev->ops = &pci_domain_ops;
+ } else if (dev->path.type == DEVICE_PATH_CPU_CLUSTER) {
+ dev->ops = &cpu_bus_ops;
+ }
+}
+
+struct chip_operations soc_intel_baytrail_ops = {
+ CHIP_NAME("Intel BayTrail SoC")
+ .enable_dev = enable_dev,
+};
diff --git a/src/soc/intel/baytrail/chip.h b/src/soc/intel/baytrail/chip.h
new file mode 100644
index 0000000000..b6d3f840d3
--- /dev/null
+++ b/src/soc/intel/baytrail/chip.h
@@ -0,0 +1,29 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _BAYTRAIL_CHIP_H_
+#define _BAYTRAIL_CHIP_H_
+/* The devicetree parser expects chip.h to reside directly in the path
+ * specified by the devicetree. */
+
+struct soc_intel_baytrail_config {
+};
+
+extern struct chip_operations soc_intel_baytrail_ops;
+#endif /* _BAYTRAIL_CHIP_H_ */
diff --git a/src/soc/intel/baytrail/iosf.c b/src/soc/intel/baytrail/iosf.c
new file mode 100644
index 0000000000..6d4cba9bb6
--- /dev/null
+++ b/src/soc/intel/baytrail/iosf.c
@@ -0,0 +1,61 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied wacbmem_entryanty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <arch/io.h>
+#include <baytrail/iosf.h>
+
+#if !defined(__PRE_RAM__)
+#define IOSF_PCI_BASE (CONFIG_MMCONF_BASE_ADDRESS + (IOSF_PCI_DEV << 12))
+
+static inline void write_iosf_reg(int reg, uint32_t value)
+{
+ write32(IOSF_PCI_BASE + reg, value);
+}
+static inline uint32_t read_iosf_reg(int reg)
+{
+ return read32(IOSF_PCI_BASE + reg);
+}
+#else
+static inline void write_iosf_reg(int reg, uint32_t value)
+{
+ pci_write_config32(IOSF_PCI_DEV, reg, value);
+}
+static inline uint32_t read_iosf_reg(int reg)
+{
+ return pci_read_config32(IOSF_PCI_DEV, reg);
+}
+#endif
+
+uint32_t iosf_bunit_read(int reg)
+{
+ uint32_t cr = IOSF_OPCODE(IOSF_OP_READ_BUNIT) |
+ IOSF_PORT(IOSF_PORT_BUNIT) | IOSF_REG(reg) | IOSF_BYTE_EN;
+
+ write_iosf_reg(MCR_REG, cr);
+ return read_iosf_reg(MDR_REG);
+}
+
+void iosf_bunit_write(int reg, uint32_t val)
+{
+ uint32_t cr = IOSF_OPCODE(IOSF_OP_WRITE_BUNIT) |
+ IOSF_PORT(IOSF_PORT_BUNIT) | IOSF_REG(reg) | IOSF_BYTE_EN;
+
+ write_iosf_reg(MCR_REG, cr);
+ write_iosf_reg(MDR_REG, val);
+}
diff --git a/src/soc/intel/baytrail/memmap.c b/src/soc/intel/baytrail/memmap.c
new file mode 100644
index 0000000000..f958bae830
--- /dev/null
+++ b/src/soc/intel/baytrail/memmap.c
@@ -0,0 +1,27 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google, Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied wacbmem_entryanty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <arch/io.h>
+#include <cbmem.h>
+#include <baytrail/iosf.h>
+
+unsigned long get_top_of_ram(void)
+{
+ return (unsigned long)(iosf_bunit_read(BUNIT_SMRRL) << 20);
+}
diff --git a/src/soc/intel/baytrail/microcode/M0C3067_0000030f.h b/src/soc/intel/baytrail/microcode/M0C3067_0000030f.h
new file mode 100644
index 0000000000..aa39049a12
--- /dev/null
+++ b/src/soc/intel/baytrail/microcode/M0C3067_0000030f.h
@@ -0,0 +1,13056 @@
+0x000000001,
+0x00000030f,
+0x008132013,
+0x000030673,
+0x08692d626,
+0x000000001,
+0x00000000c,
+0x00000cbd0,
+0x00000cc00,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x0000000a1,
+0x000020001,
+0x00000030f,
+0x000000000,
+0x000000000,
+0x020130813,
+0x000003201,
+0x000000001,
+0x000030673,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x0000032f4,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x000000000,
+0x0636d269e,
+0x0801be255,
+0x01393389a,
+0x0c4069453,
+0x0cb5ad229,
+0x0e27ef1ff,
+0x0cd5ba4e5,
+0x0fab049c6,
+0x0156866db,
+0x0c4bf175a,
+0x09d00ca4f,
+0x0b3e89a09,
+0x07d2c8e19,
+0x0bf5b667c,
+0x07a1a7ac0,
+0x026eebc7d,
+0x0b2967286,
+0x0ceb685c8,
+0x0ffba02e6,
+0x0144b5468,
+0x000c428c9,
+0x06d15dd3a,
+0x0f9461953,
+0x01632a092,
+0x0222335da,
+0x01fee67d9,
+0x0a770513c,
+0x04e83def6,
+0x0b3d82e5a,
+0x050f0b89f,
+0x07fe10d45,
+0x070f05efd,
+0x05f575449,
+0x0ab71a0a3,
+0x0fb2a6eb5,
+0x00283b4e2,
+0x058a95566,
+0x038a4c957,
+0x08a682f1b,
+0x0c49b3009,
+0x01256e90b,
+0x033169c52,
+0x0d91585c4,
+0x0df78eb29,
+0x09f403399,
+0x0a9de58da,
+0x0fd05c858,
+0x05a0f11bc,
+0x0c00e7840,
+0x0b39bd56a,
+0x0b87f38c7,
+0x090141c59,
+0x0325933f9,
+0x00b0e1332,
+0x0963c4bef,
+0x0f203d9ac,
+0x03925365b,
+0x02955f8e7,
+0x01fc417cb,
+0x0d840e4e7,
+0x025e9f7fa,
+0x0fb769b96,
+0x0c7b8da5e,
+0x0e81200f0,
+0x071291c12,
+0x05989b1e5,
+0x0c007fdad,
+0x0d7c9091f,
+0x06a008197,
+0x073005539,
+0x06d8b436c,
+0x0bc606f43,
+0x000000011,
+0x0ddd911cd,
+0x04e9e269c,
+0x0eff9a59c,
+0x0a5bdfa52,
+0x02f97e4b3,
+0x03b04dc8e,
+0x0a84efce6,
+0x0dac6c212,
+0x06e780d34,
+0x05e294f31,
+0x0578699e9,
+0x07c58e316,
+0x02a434716,
+0x01c2e9bc5,
+0x0a16d98ae,
+0x08f9a1aba,
+0x0d8e68cb1,
+0x0e731ab03,
+0x0d2deec57,
+0x051b34f93,
+0x0b793d2c9,
+0x0eb746864,
+0x0f2bf767a,
+0x0b13661dc,
+0x0e25b4f7c,
+0x00006f3ba,
+0x0e1f266eb,
+0x06fd6c3e0,
+0x098e261cc,
+0x072467fc8,
+0x09ef2f190,
+0x0827c05b6,
+0x0693d071e,
+0x0faddc7c6,
+0x0397b286d,
+0x0f5deeaab,
+0x03e49a3ee,
+0x02f4a9685,
+0x041ba1713,
+0x02a128067,
+0x053315d91,
+0x0f6b402c7,
+0x080380bd3,
+0x0de19b741,
+0x0cc3fb55e,
+0x090ea41be,
+0x06519b57a,
+0x0e3a35dd0,
+0x0cb55fdde,
+0x014f1ee93,
+0x052f10099,
+0x0343df1c4,
+0x039b38eb0,
+0x0c80191dc,
+0x03619ed54,
+0x06dec1231,
+0x0bfd4940e,
+0x0b00713ab,
+0x077b82e9b,
+0x0a69b529e,
+0x059d83ae1,
+0x05d829628,
+0x08c5a1114,
+0x03a3b60a6,
+0x0a51111fa,
+0x0b30eb375,
+0x018b832a5,
+0x077ced5c8,
+0x0a2e9f499,
+0x097c51352,
+0x0c674c154,
+0x0abc1ad35,
+0x061050ae9,
+0x06587bcd0,
+0x05e16c3ca,
+0x0aacb6c10,
+0x00b497993,
+0x0f73f1f61,
+0x01a75e33a,
+0x07b8baa99,
+0x0a7947a94,
+0x07a622440,
+0x0647e2dc6,
+0x03e9ddd56,
+0x0666c867f,
+0x04cd51395,
+0x0bff3f91b,
+0x0e2d3defc,
+0x0dd560b47,
+0x03d082039,
+0x01e8edce0,
+0x0da991aa7,
+0x0b05bac31,
+0x0aa820133,
+0x0716d0f2d,
+0x0fe9ccdde,
+0x029abd185,
+0x01ab2fc65,
+0x08fe67c6e,
+0x0000902dd,
+0x036a4a7ce,
+0x04a2f8fb1,
+0x0a5584548,
+0x0874399a8,
+0x008c7d8f7,
+0x09e68e23f,
+0x0387c4fc0,
+0x088bca285,
+0x03ab8e01c,
+0x05fddca0b,
+0x0fc5b96e2,
+0x063b7f40d,
+0x09fb6a7d6,
+0x054b64bfb,
+0x0cd113319,
+0x0be9c5bed,
+0x0770aabd2,
+0x010abbe11,
+0x0539cf509,
+0x01e75fc18,
+0x08cb757e4,
+0x092f10761,
+0x06cea98c7,
+0x090f0c990,
+0x0eb81c54c,
+0x0ccc760f8,
+0x0d212a59b,
+0x08928e76d,
+0x03e114fcd,
+0x08ff21ceb,
+0x02342cb9d,
+0x0605bd832,
+0x067a072a4,
+0x03b50d070,
+0x007d5efd1,
+0x02474ddb5,
+0x0ed547dad,
+0x0c450321b,
+0x0d4f6df2e,
+0x0447d5a38,
+0x0b63242a8,
+0x008bb8d8b,
+0x0ab634896,
+0x0ce67bd60,
+0x0b36a5f17,
+0x0102d8ad6,
+0x05e7b3c2a,
+0x089df7c9d,
+0x03aa3529b,
+0x04ced92b7,
+0x01a524ca8,
+0x0965f361d,
+0x03d9dc2f0,
+0x073aec282,
+0x03a9e2ccd,
+0x0c56fbc4a,
+0x00cb91681,
+0x02bfc7672,
+0x0060779e1,
+0x09cae9df7,
+0x02e00e4e6,
+0x0c5a63f00,
+0x0e00da22e,
+0x045cae0d5,
+0x07b8b87a8,
+0x0505356c7,
+0x0b4a2440f,
+0x02524cd6b,
+0x0f79915aa,
+0x00b27f2da,
+0x01172a644,
+0x0afa894bd,
+0x089479390,
+0x019c3f27c,
+0x0a7918a33,
+0x06bcf275d,
+0x05724525a,
+0x022897aee,
+0x0ae3584a2,
+0x07ae594bc,
+0x0c14c3376,
+0x0cfd8462d,
+0x0d760a973,
+0x05717d480,
+0x0a7c3dde3,
+0x0e287fd0c,
+0x06853e36b,
+0x0a35d3db9,
+0x09dc454b1,
+0x022276852,
+0x03f07416b,
+0x0e96ab9cf,
+0x0091844c8,
+0x076a7deb2,
+0x01f36f300,
+0x0242840eb,
+0x01d309647,
+0x0165b78fa,
+0x039f308fc,
+0x06da7566a,
+0x0a6baf114,
+0x015fd3845,
+0x0db3f480b,
+0x01ee46c7c,
+0x0d6d7149d,
+0x0c9b70a66,
+0x0b63eb61c,
+0x047780382,
+0x0210416c9,
+0x0760de074,
+0x08a2642ff,
+0x019b62f83,
+0x0760cd445,
+0x0c216b517,
+0x057713221,
+0x09673be60,
+0x0934e7ea2,
+0x02a5bdb27,
+0x0a2faa7f7,
+0x05348cc51,
+0x0eacd0a4b,
+0x016bac11c,
+0x026f8d595,
+0x0f49bed81,
+0x05ba6e7cf,
+0x069b53b65,
+0x09cbee693,
+0x0fce3b0dc,
+0x04a3f3b66,
+0x06f33f8aa,
+0x0397adc2b,
+0x074f0b683,
+0x0bd0a2023,
+0x0993b8723,
+0x09547b43f,
+0x0a67266f6,
+0x06c8aa901,
+0x040ea6c7b,
+0x0cacadb91,
+0x0979014c2,
+0x0854b580b,
+0x0586e712e,
+0x0abcfbbbb,
+0x0d93584f9,
+0x0e266445f,
+0x026dc1fa4,
+0x08a9ac39c,
+0x04036ed1a,
+0x077d61142,
+0x0cc9c763f,
+0x0bb203269,
+0x01321ee90,
+0x05fd510f8,
+0x086607efd,
+0x00701019f,
+0x05ae87519,
+0x0249746a8,
+0x0719e77f1,
+0x0354173c3,
+0x00a435e60,
+0x084dcfdc9,
+0x0164ccec4,
+0x016149c8c,
+0x05c6a9f64,
+0x02642536b,
+0x01d15f4c7,
+0x04df9df1d,
+0x08750adeb,
+0x0638a69fe,
+0x021e67f23,
+0x082560ecd,
+0x0391e7b5a,
+0x0b335a047,
+0x064b4aedb,
+0x0ba6c4c8c,
+0x08d83ca2e,
+0x013cceab5,
+0x077f1536b,
+0x04cbeeb59,
+0x04292f245,
+0x0f0cdbb74,
+0x00985ffad,
+0x0cc5c463a,
+0x023ac28a8,
+0x044fe6eed,
+0x0c9475892,
+0x08d94ecaf,
+0x02231e3ba,
+0x0031cc0a6,
+0x04e751f46,
+0x0cb962420,
+0x066fbeb86,
+0x04d6e8d2e,
+0x0487d7df2,
+0x0f7e58bdb,
+0x08a533b4c,
+0x0d4f63c71,
+0x0dce582aa,
+0x06ae33205,
+0x004008f13,
+0x00bfb3b3e,
+0x06c777d50,
+0x0fb1f46a1,
+0x0be0792d1,
+0x0f5bfc238,
+0x07d065201,
+0x0b0e6e400,
+0x0062b38db,
+0x0d842ae5d,
+0x0b56987cc,
+0x0c5764bca,
+0x0e5259c34,
+0x072cb2d5b,
+0x0998a2c92,
+0x00efdf213,
+0x03a5091ff,
+0x04fb5a107,
+0x09f4e3506,
+0x04ec50bb0,
+0x0598e9a3c,
+0x0ca81d167,
+0x0ecd44804,
+0x0d351eb1d,
+0x0beedc0d5,
+0x0b6fc6e2c,
+0x065818119,
+0x0d97e32d1,
+0x0078e9d97,
+0x0122248e5,
+0x07bec600c,
+0x03cf3beb2,
+0x0721c95f5,
+0x08d080016,
+0x0e76f1711,
+0x013726e67,
+0x0d7b9e0d2,
+0x06d2a5d16,
+0x08503bba9,
+0x0348ff573,
+0x0024fbc66,
+0x00cd4cbf4,
+0x04efeb77b,
+0x0d1178ee4,
+0x057f68d05,
+0x04c5935bb,
+0x013381536,
+0x0cdbd0442,
+0x0b49cb8fd,
+0x09e23cbe7,
+0x031683136,
+0x0c062af86,
+0x03ba2a19b,
+0x07f481991,
+0x03da8d7b6,
+0x0dc3036b0,
+0x0da9c3289,
+0x09444a2cf,
+0x0aab3ee66,
+0x0925f9f33,
+0x0cb79285c,
+0x0de7f908b,
+0x0f5c87d21,
+0x0848836d7,
+0x01706c28d,
+0x00acfa65e,
+0x0a72adfcb,
+0x06d11a116,
+0x00b9816bc,
+0x0c07532c7,
+0x0f6d1be15,
+0x0df5eff56,
+0x0794316fa,
+0x0716a5357,
+0x0b8f7868d,
+0x04b500131,
+0x0d2298943,
+0x09948e8e6,
+0x00a2f4866,
+0x046e0016c,
+0x0ab16cd59,
+0x07cdef3f3,
+0x03fed90bc,
+0x0ae2c1bd4,
+0x0256e406f,
+0x05f22e5eb,
+0x092d1a1a1,
+0x0adf2dba7,
+0x0bdad0d7c,
+0x0ad0d29c0,
+0x0e3dbabbd,
+0x0128e5148,
+0x0e5544db0,
+0x0dfc4bfb3,
+0x0c47a0bcb,
+0x0aa30811c,
+0x05cfcf7b5,
+0x0ad83080f,
+0x027632012,
+0x088d3d13a,
+0x0aabfab43,
+0x01dda8092,
+0x07a496a36,
+0x069032622,
+0x08b71da3b,
+0x06874deac,
+0x07eeb2fac,
+0x05fcf9dbd,
+0x01eb55996,
+0x024d0d3ea,
+0x0f1fc9ff2,
+0x014153522,
+0x01b3b44e8,
+0x09e9d61ff,
+0x0b19f6bce,
+0x0e294b888,
+0x010e68279,
+0x022d368d2,
+0x076be520a,
+0x0a5973ec7,
+0x0732edb73,
+0x07628b85e,
+0x05c805117,
+0x00f1c7a81,
+0x03811e9a1,
+0x0538814c4,
+0x092843ed2,
+0x0b9807e0a,
+0x046f8f479,
+0x0b0162f1b,
+0x0b426d08b,
+0x09ac00f73,
+0x09b934325,
+0x0a691d6e7,
+0x01cfb747d,
+0x0035a0473,
+0x0d3abf8f5,
+0x0410456ea,
+0x04e33405a,
+0x034f73e47,
+0x02dd5a42f,
+0x0d4079806,
+0x066018697,
+0x00b89233a,
+0x0bcae3dc7,
+0x08a82b3a5,
+0x0bd8595a2,
+0x0854e64a0,
+0x0c4105b11,
+0x0bca4999f,
+0x06ad6de22,
+0x0f2047e50,
+0x046a881a2,
+0x027f62297,
+0x072cda692,
+0x0b1dd6700,
+0x0d569e7c8,
+0x0f315deaf,
+0x0312b30f2,
+0x07e3d364c,
+0x06dbed41e,
+0x0f9bfa27f,
+0x03705536b,
+0x01ecc8e8c,
+0x01a0a1b89,
+0x0a93be1f4,
+0x066d7a4dd,
+0x0e9dfbace,
+0x03e622d78,
+0x0e3363994,
+0x0cf48166c,
+0x0ee2c0357,
+0x02852baf2,
+0x0f1006ddb,
+0x0bfd237e1,
+0x00a6ae120,
+0x0ceef2f37,
+0x0b6856d62,
+0x0b3b31cc7,
+0x07304d72f,
+0x06d540010,
+0x03d48978b,
+0x06b36b08c,
+0x0e7536a93,
+0x0b33390f1,
+0x01823d4f7,
+0x074b8b6e0,
+0x062c7fb45,
+0x047c1a1ae,
+0x020ab9c77,
+0x015bae1be,
+0x07251c351,
+0x0735fcaa6,
+0x06c07e6a2,
+0x0eaf90777,
+0x069d75ff3,
+0x0b2398290,
+0x0028c2928,
+0x0e3cf7273,
+0x07edfc1f8,
+0x07bc495b8,
+0x0088e150a,
+0x0c18102d2,
+0x0e8cf3cf7,
+0x059d8cc69,
+0x0b0094f5e,
+0x05835f955,
+0x0348e0629,
+0x0e19a85d6,
+0x0855ca3ed,
+0x00aebc7d0,
+0x0182e8ccc,
+0x0d49c2ee6,
+0x066aac9f9,
+0x093d9d400,
+0x0b0098069,
+0x04c94f3e8,
+0x02cc04660,
+0x07dd8b343,
+0x090f77eb5,
+0x09a2416cd,
+0x07d4021cf,
+0x0947e21f9,
+0x0ed2ff09e,
+0x0b728b391,
+0x027afc17d,
+0x02c0b0c31,
+0x0208130fe,
+0x06c518286,
+0x0c813486d,
+0x070e4de4b,
+0x06ee43eb9,
+0x0b3532f5f,
+0x068774802,
+0x06061b744,
+0x059092514,
+0x0dbd94eca,
+0x01f32f383,
+0x0a829d84f,
+0x00d4a93dd,
+0x04d67c070,
+0x0d0ce67cf,
+0x0cabad5b3,
+0x0d1b2c647,
+0x0a3933b8c,
+0x0ce1e4c32,
+0x0af58a75c,
+0x0a4e1fee9,
+0x013eceaf2,
+0x053513af0,
+0x03be42eb7,
+0x08462d564,
+0x089cab8b8,
+0x071f58230,
+0x0835ed132,
+0x0a8f4b66e,
+0x086fc1d00,
+0x085028daa,
+0x06b35350c,
+0x06e894768,
+0x05a670e67,
+0x07165de3a,
+0x0524bde2b,
+0x054e81434,
+0x0a7203b5f,
+0x0a8212af6,
+0x07dd3c461,
+0x0a94c449b,
+0x0469a6f6b,
+0x04583659b,
+0x0df7750d7,
+0x0229525ad,
+0x07419a044,
+0x069eb6b87,
+0x039efd904,
+0x05732bf50,
+0x08e8728bc,
+0x033bae3c5,
+0x0b861f8d0,
+0x07f7b3fea,
+0x0045d8810,
+0x0c55a1a11,
+0x051fdee02,
+0x0215bfa90,
+0x0afaa81a9,
+0x0a2701375,
+0x0041fcde7,
+0x0e5c7b1dc,
+0x0b4344977,
+0x0c4ed9033,
+0x03eae9004,
+0x07be7ebd9,
+0x06d070aba,
+0x003861443,
+0x02d616e6d,
+0x0c11a6d7f,
+0x0c04aed84,
+0x022f72e09,
+0x010345745,
+0x06e71bf9a,
+0x0800672e9,
+0x01b07e70c,
+0x088bc3093,
+0x0bfbf10bd,
+0x067cad4fc,
+0x06e1ace1d,
+0x01b317e18,
+0x0b30410cd,
+0x0e00077be,
+0x0902ac678,
+0x0570b21d8,
+0x08e0fb430,
+0x0984206a0,
+0x0641918a8,
+0x0513c2189,
+0x0ecc8d862,
+0x074bab12d,
+0x058c7a592,
+0x0ecbc0384,
+0x03be2b9ac,
+0x06a5407cd,
+0x0f9fc56eb,
+0x0159eebdd,
+0x0155581ee,
+0x078d1a25d,
+0x0449ba798,
+0x01ddc52b5,
+0x0a03daf31,
+0x07c1b1a96,
+0x01c2f7de4,
+0x09c79951a,
+0x0c8a030e0,
+0x0bc03cd62,
+0x0cad4159b,
+0x0d5651149,
+0x03d79b9e2,
+0x0e5fd9f3b,
+0x09d493142,
+0x097191ba9,
+0x01625e4ce,
+0x073e9b1ff,
+0x05d8d23e3,
+0x08730e743,
+0x02cd982fb,
+0x06072e5d9,
+0x048bbe478,
+0x04968f5df,
+0x08448f163,
+0x049700a68,
+0x0ddb102de,
+0x0fea46a6d,
+0x077b829b1,
+0x0483a883b,
+0x0085e8119,
+0x0d43c58f5,
+0x09a1fbdd6,
+0x0eb0bd2eb,
+0x03c0dc25d,
+0x0582ee139,
+0x0c2e5c78a,
+0x021cad086,
+0x064e32172,
+0x0977a960e,
+0x07442387b,
+0x0a39a84ac,
+0x0356e8107,
+0x02373af1c,
+0x0eed55841,
+0x065219da5,
+0x0b3646eeb,
+0x005135a7a,
+0x09923dc82,
+0x007e1ee99,
+0x0186893a2,
+0x05d643f7d,
+0x03c9757fa,
+0x07a9b27fd,
+0x0ea74ef55,
+0x007d0354d,
+0x004f60854,
+0x09237d803,
+0x068240d5b,
+0x0e2f49821,
+0x09e7c8881,
+0x0d7e9090b,
+0x04956a701,
+0x0e02b8bba,
+0x016bc7582,
+0x03428023e,
+0x0d7da5c26,
+0x0d7c1779c,
+0x0f7436b14,
+0x0291ba75b,
+0x0cc409b2e,
+0x0be3cbc54,
+0x08fa6954f,
+0x0a44e9012,
+0x002cbbb6b,
+0x0b6e38b12,
+0x0c644f9af,
+0x0cc75bd7b,
+0x08d034c03,
+0x017ac32dc,
+0x040b6e88a,
+0x0a4fae293,
+0x021fababe,
+0x0380b9197,
+0x0696c56c3,
+0x065ae2b6b,
+0x0eb0c96f6,
+0x015b6c72d,
+0x039b13e90,
+0x08cde218e,
+0x051129150,
+0x0548a4dd3,
+0x0c7c6008f,
+0x0d86b4197,
+0x0b1ba5edb,
+0x093d30207,
+0x026f8beba,
+0x06723eaa5,
+0x0c0e37bbd,
+0x033ae90e2,
+0x07e075bd5,
+0x02bdf18fc,
+0x02d6f794a,
+0x0ad1098cc,
+0x0e6ac641f,
+0x0f65c23c8,
+0x08b11344f,
+0x0805a3e53,
+0x0ed7c87af,
+0x0f1ef6344,
+0x0edaec081,
+0x0b9241540,
+0x0eaa120ae,
+0x03c7c6854,
+0x079401ca4,
+0x0a75a961d,
+0x005ec1adb,
+0x0e7f4d302,
+0x0c31c252c,
+0x0ff4ad652,
+0x0f2f027c5,
+0x0b55f71b9,
+0x08f328be1,
+0x0dae31a1a,
+0x08d9bf7d4,
+0x0d0100325,
+0x00699e8f8,
+0x0d7616ca5,
+0x0775c000e,
+0x08610c84f,
+0x00e72ed49,
+0x084ebe6de,
+0x06a1847b7,
+0x0dfe713c1,
+0x01a1d728b,
+0x0c62cdd6b,
+0x0a5a85af9,
+0x003e9422d,
+0x0bef665cd,
+0x078671a55,
+0x07ad2b216,
+0x0e60cdb99,
+0x0eeefdace,
+0x05a80a31b,
+0x0532b9cd5,
+0x0dd8e1cea,
+0x097e8983e,
+0x0f9b9c6b1,
+0x031a94796,
+0x03c1137b9,
+0x034ab30cb,
+0x089781687,
+0x046eab43b,
+0x0138772ad,
+0x024795ee2,
+0x0376ff630,
+0x0a28dcca1,
+0x0415b8443,
+0x0067dd2c4,
+0x0dbc2ec65,
+0x0d9fa6d45,
+0x0cbc92b9c,
+0x0233e201f,
+0x0d6858307,
+0x00d2660b9,
+0x0d183ae9d,
+0x0221a58a7,
+0x02436b0bd,
+0x0488c3e90,
+0x0175eff0c,
+0x036f911c1,
+0x0d2ceef1a,
+0x056cdd32e,
+0x025ebe036,
+0x0fe49568f,
+0x073aa5fa8,
+0x0782a461a,
+0x0ba6af225,
+0x0e0c49bbc,
+0x01894684a,
+0x0f2db5bc5,
+0x0586a2052,
+0x02f895c56,
+0x04565bf6d,
+0x02c3e4855,
+0x04c0a7cc2,
+0x0213b13d7,
+0x0f2230f04,
+0x0037d3081,
+0x03d5ca242,
+0x0c49c2f16,
+0x06baca7ef,
+0x00c411c76,
+0x029607436,
+0x07cfb7c19,
+0x04c920034,
+0x0c6e86c13,
+0x080bf6f79,
+0x008aefe25,
+0x01797a272,
+0x037e9bbf0,
+0x0f01f45b5,
+0x004517a3f,
+0x0208b2128,
+0x044255527,
+0x0b67ff59d,
+0x0fdf3d10e,
+0x0a449683f,
+0x0e7796c5b,
+0x003e64bb2,
+0x0e4cb3a15,
+0x06187a3ef,
+0x0217235d3,
+0x087bea99f,
+0x0f9148e5e,
+0x0eb985731,
+0x05dcdeab7,
+0x06ffa440e,
+0x005b11348,
+0x0f5c5c633,
+0x0e9b5d5f0,
+0x07289b052,
+0x0fd6aa430,
+0x0ada1bd45,
+0x03586f8f6,
+0x0c59cef26,
+0x05c6fb4f1,
+0x060a0a418,
+0x09bea6008,
+0x0ae7e6fe3,
+0x0e5684ae6,
+0x02ea86f6c,
+0x0b52471ba,
+0x068c54ece,
+0x0d180dec9,
+0x09eb0f093,
+0x0995b66b0,
+0x0f522791c,
+0x07a83ae6d,
+0x03e73392b,
+0x03fb3947e,
+0x09ac143da,
+0x0f48534f0,
+0x064bd5119,
+0x084416580,
+0x070d668c1,
+0x001173251,
+0x0ff472d38,
+0x03e72533d,
+0x0164f6402,
+0x02ddc0228,
+0x013b970a4,
+0x0043b0c12,
+0x053f952a0,
+0x0fca52869,
+0x0fbde8835,
+0x0dee8994a,
+0x0ed69c1be,
+0x06f1031f6,
+0x06e97bf0d,
+0x0b87f07b2,
+0x0c5109fd1,
+0x0bf270748,
+0x02a92b2ea,
+0x061406018,
+0x00909d2ed,
+0x0dce1c028,
+0x005db4629,
+0x0b3f89e98,
+0x08cabcefe,
+0x0dc7af5c5,
+0x096450b3f,
+0x01c9fa171,
+0x0df265919,
+0x09ebf8420,
+0x0b2e50bdf,
+0x0dfc644f8,
+0x04257e689,
+0x0a0b54fc6,
+0x0a0996a5e,
+0x0dab29c95,
+0x0ceb1a1ee,
+0x0cfa34552,
+0x0ed249ff1,
+0x041589dc3,
+0x03da19ce4,
+0x08fb3467b,
+0x0f21b4cbc,
+0x0b90e44e2,
+0x0fd878c41,
+0x05d53aa23,
+0x08d69e872,
+0x04c27585d,
+0x08c094557,
+0x003b0d638,
+0x0f7f4f34d,
+0x0c9b4ec4f,
+0x0835128bf,
+0x04cddd57a,
+0x0fc9a8181,
+0x083ec67e5,
+0x03a387329,
+0x05b1e1ed1,
+0x019a9a068,
+0x085dc609a,
+0x007e9bbd8,
+0x0bdbc1409,
+0x01e3c9b5a,
+0x0283c7502,
+0x034218d6d,
+0x0f3b00805,
+0x04c72bb3e,
+0x0e08ec1b6,
+0x0af81a209,
+0x08482f0a2,
+0x026753a9a,
+0x0260d2e3e,
+0x026e48b15,
+0x0230c42ec,
+0x0ca0da123,
+0x08e6c46ed,
+0x04930b8ff,
+0x0904503b1,
+0x09a5aa100,
+0x0005e26bf,
+0x0a2f22a4c,
+0x0978cbd95,
+0x0774f3d58,
+0x00d4e3481,
+0x03367f0ef,
+0x038592e4b,
+0x0a14b2676,
+0x0d0a8cf96,
+0x05228adc7,
+0x031aaa111,
+0x02cf9586a,
+0x005ec35a2,
+0x0ab7fee97,
+0x051b00144,
+0x08aa0d672,
+0x0c6d3d351,
+0x0ffea4806,
+0x0e9a3575f,
+0x0257b5ba5,
+0x0e69cfd2c,
+0x0afd477c2,
+0x06bcf3cea,
+0x03dd56b06,
+0x04b00004e,
+0x081339fdf,
+0x068ebba89,
+0x0d4e8c957,
+0x007246efd,
+0x0da13c334,
+0x050508628,
+0x038f349e7,
+0x066a8f959,
+0x045659bd2,
+0x0b12439ae,
+0x01130d84a,
+0x014cfa8e0,
+0x013edaebf,
+0x09061e932,
+0x0e88177ea,
+0x0758149c1,
+0x014e5aca7,
+0x07da5eb5b,
+0x0764b0110,
+0x0a4a0148c,
+0x00c9e41b7,
+0x0130d07c9,
+0x014e3883c,
+0x0c1e47dee,
+0x0a07839cb,
+0x0e4e92d4a,
+0x00c2b65c4,
+0x084473451,
+0x0382e1db2,
+0x0fa5ac56a,
+0x04c21f072,
+0x0d3cce0fa,
+0x0d76da7ac,
+0x08abf0d87,
+0x095ece61c,
+0x05b2e8efe,
+0x0d86aed10,
+0x0d88e1e16,
+0x086e0104b,
+0x0cabd5659,
+0x0ebc6d108,
+0x0dfcd4826,
+0x0351fa725,
+0x04f1991c2,
+0x043b17423,
+0x01af3fa88,
+0x07a73e092,
+0x0fc1cb100,
+0x00a32244a,
+0x0ffdebe89,
+0x002da1fd9,
+0x03ccf70bd,
+0x0067e5699,
+0x0dd910b87,
+0x012d8c95d,
+0x06ba6aa23,
+0x0dc61fe0d,
+0x09f3b66b8,
+0x08e17cdaa,
+0x0edc1c605,
+0x09e323dcf,
+0x0fea280f1,
+0x060298e92,
+0x07cd7c6e9,
+0x038f05793,
+0x0081486b7,
+0x0e5a4c776,
+0x0932fd436,
+0x02a7bcb50,
+0x034e0b956,
+0x0ef22d04f,
+0x00e4f1a25,
+0x001a93a52,
+0x0d60c0ebb,
+0x0fdacab03,
+0x06dcc649a,
+0x05ed0aa31,
+0x0524d73bf,
+0x030247911,
+0x0ed58e905,
+0x0c71ddbd0,
+0x0fe7d54a7,
+0x02c86e1ce,
+0x0c2c7ccef,
+0x0066e18c8,
+0x04f13cc22,
+0x0d1c04d9e,
+0x0599ef93a,
+0x0a88beed5,
+0x01d5ae6fb,
+0x0ffba31b1,
+0x0d08528ad,
+0x08ced053a,
+0x07ec4e595,
+0x00604444e,
+0x0dbef573e,
+0x08f9a5080,
+0x06f6ede07,
+0x00bf0d25f,
+0x0db16cabb,
+0x05ee2ef2f,
+0x00580eadd,
+0x0308d3c78,
+0x0757f8d88,
+0x023b606aa,
+0x093f26a05,
+0x0b8c42bb4,
+0x01abb8209,
+0x060222316,
+0x0a34703ac,
+0x07a72469d,
+0x066da20d6,
+0x006ef764b,
+0x04813ecaf,
+0x05377910c,
+0x03f3ec268,
+0x0edfc0d53,
+0x05097b7a0,
+0x0677d1896,
+0x086725f90,
+0x0cbb53be8,
+0x0ff5afcf0,
+0x02d3df492,
+0x0195464dd,
+0x0c4e6a437,
+0x0a0cc9e8b,
+0x0043e8bba,
+0x08842b5ee,
+0x0b484dd74,
+0x06dc208f4,
+0x003a505ce,
+0x0a2bd456b,
+0x004a7e2c2,
+0x0f8452b4d,
+0x0c74b8ea2,
+0x0ae6f2aaf,
+0x0da604672,
+0x0fd370647,
+0x02bd68f66,
+0x05154e90d,
+0x09265460c,
+0x0490561b5,
+0x0ee101ff6,
+0x0c0f63e05,
+0x0a065e401,
+0x08d4b734d,
+0x0b43615e2,
+0x0d25b0950,
+0x040c9c6f8,
+0x0ecdd2190,
+0x08e5f935e,
+0x0a0608168,
+0x029286fc5,
+0x086657dd8,
+0x0ecc641f0,
+0x0426d9cbf,
+0x0a8d1bd3c,
+0x09cc211d0,
+0x0fc27cbe4,
+0x0cfe89c6b,
+0x021f2c405,
+0x0f5d8804a,
+0x0b7c49c67,
+0x0fde6d60c,
+0x046484660,
+0x065a3d3ac,
+0x00d3c900a,
+0x062a7d196,
+0x08db7cecf,
+0x06de84e4d,
+0x01add807b,
+0x02d68b5e9,
+0x0df356cca,
+0x0c360e074,
+0x0fcec5116,
+0x06bdfa7bd,
+0x010957088,
+0x04d2486ed,
+0x0d40c4ddc,
+0x0757469eb,
+0x035227aab,
+0x0a8176946,
+0x0ce96e48e,
+0x06dc61188,
+0x006790d8a,
+0x03d57f416,
+0x008ca5e27,
+0x0c97ff894,
+0x01f45beb9,
+0x0782e55b2,
+0x017281cc1,
+0x031e4496d,
+0x065979ab1,
+0x034df6016,
+0x07ef438d9,
+0x038d69c88,
+0x0d90947e6,
+0x0a9984e87,
+0x0b23ed7dc,
+0x0840b550a,
+0x0d8ba6a14,
+0x038eafb33,
+0x055290f85,
+0x0dd611dd6,
+0x0d062d1b1,
+0x086057670,
+0x059f8e23a,
+0x07961f520,
+0x085868da3,
+0x0a6a29d2c,
+0x060409f7f,
+0x085b1d53c,
+0x0ef359664,
+0x056082bd0,
+0x0d4da3c77,
+0x02bb47ab2,
+0x09fe01a83,
+0x0778f2b74,
+0x010725b45,
+0x0f0f31809,
+0x0c431722c,
+0x03e7a2e69,
+0x0d3a57fff,
+0x0c720e025,
+0x0c9802bc5,
+0x05ba52e78,
+0x0315a32aa,
+0x0d1107e42,
+0x0dfe7a7eb,
+0x0b3aa1d12,
+0x0aec14181,
+0x0266dbae8,
+0x092e98209,
+0x0fd597e6c,
+0x0ca79e2c3,
+0x0b4f445ae,
+0x0d5adf258,
+0x05d016150,
+0x0b39e414f,
+0x0d1e7e5eb,
+0x054acc87e,
+0x0e7608351,
+0x01a8616dd,
+0x0a7b1544c,
+0x0798df1d1,
+0x0ed477645,
+0x0211d4cea,
+0x070656d0d,
+0x0df6a274f,
+0x02c064fd4,
+0x0e772df37,
+0x0d658e948,
+0x0ae932efb,
+0x03db6a103,
+0x07e50d3d3,
+0x0e5627819,
+0x0229f0ca7,
+0x086562d75,
+0x0f2c932fa,
+0x04251caea,
+0x0e1484866,
+0x0a9602f21,
+0x0bf965750,
+0x05535ecc9,
+0x0840bf96b,
+0x0cffedc0f,
+0x07b97fbbf,
+0x07754361c,
+0x0a48f5a28,
+0x05e8d23b6,
+0x0bcb36d0a,
+0x08b1c13af,
+0x07ab47856,
+0x0eecd0423,
+0x05852bb77,
+0x01570789b,
+0x0f539e443,
+0x0334ab815,
+0x0cde63b91,
+0x03d07151f,
+0x09317abb7,
+0x0b19aa4f4,
+0x0b415c907,
+0x02f674f0b,
+0x08da46772,
+0x0e56933fe,
+0x0c8370918,
+0x0725f3115,
+0x0bc3fa3f4,
+0x07364729f,
+0x020be6be0,
+0x094ab1ab2,
+0x041c6a08b,
+0x04dcb26fd,
+0x07526f745,
+0x0461bba09,
+0x027479756,
+0x007a38efc,
+0x07860f080,
+0x023124882,
+0x056ed40bc,
+0x0284b7d9e,
+0x04b345e11,
+0x0d33fbd30,
+0x01a80d50d,
+0x092e5dda5,
+0x02a3b508d,
+0x09806c2ff,
+0x0fe602e72,
+0x0850ab15a,
+0x01714b068,
+0x0547d4789,
+0x01b86ab5b,
+0x07d862abd,
+0x059406619,
+0x02bd82c93,
+0x073a8f0af,
+0x0264ecbcd,
+0x0aa423806,
+0x053135459,
+0x01cde8563,
+0x0750efff5,
+0x0edcf43c9,
+0x06c0a1ecf,
+0x04d6d14b4,
+0x0d2cf3c9e,
+0x0f823882b,
+0x0d1d58dc9,
+0x079395f52,
+0x0ab45e6b2,
+0x00321e54a,
+0x0967e6ff4,
+0x039380313,
+0x0620733d4,
+0x0c248945c,
+0x0f1bfa3b4,
+0x0f5f98512,
+0x04df1ad2e,
+0x0de85ec86,
+0x0258deb96,
+0x0e463ed21,
+0x0c7803f7d,
+0x06aa58beb,
+0x0dec7a5df,
+0x0195e244a,
+0x0abe257f6,
+0x0d77247b8,
+0x08b5053f0,
+0x07a3001da,
+0x07c5fa608,
+0x01c7e4247,
+0x024aa520b,
+0x02913956d,
+0x06d0dc98b,
+0x004a1753f,
+0x02574fcb1,
+0x089952fa9,
+0x0873eacb9,
+0x05801531c,
+0x0a6376965,
+0x07facbf54,
+0x079d4b938,
+0x001c077bf,
+0x09aa2c99b,
+0x0bd56dc56,
+0x05adcccf6,
+0x0d337d9db,
+0x0daefe43d,
+0x0541381c9,
+0x046868a2b,
+0x0114e9733,
+0x09f1e3db7,
+0x074c2481c,
+0x066e9aacc,
+0x08816c06d,
+0x0d8287d6e,
+0x0f6ca7a49,
+0x0269ac196,
+0x0777c8f6c,
+0x0678c8794,
+0x01a72f9f0,
+0x098a82033,
+0x0db5ff119,
+0x0088b8cce,
+0x0cbf0e0f2,
+0x091e872e7,
+0x0d47759c7,
+0x0e35161ca,
+0x087d6e78b,
+0x0086320e8,
+0x02e55c505,
+0x0ca282405,
+0x030eb8db3,
+0x0c9a0ae66,
+0x07b57e013,
+0x06d25d3ea,
+0x01fdcef75,
+0x0bd6d455a,
+0x0f4a4826b,
+0x0ce375e5f,
+0x07975f05a,
+0x0dd9ce4ed,
+0x0eef3f0d8,
+0x09c24ced3,
+0x0d5195d19,
+0x0f3144ee4,
+0x021b49695,
+0x0a86017fe,
+0x0420b27bc,
+0x05f79bc8b,
+0x0f5443910,
+0x0801e84e8,
+0x0d339576b,
+0x07d16bbc3,
+0x0a68e63c3,
+0x0ef23596b,
+0x07c8857d1,
+0x00754f393,
+0x0fb26b6fe,
+0x0eb8d5dfe,
+0x0275c7fdb,
+0x0af676d09,
+0x0dc81b5a1,
+0x04fe0c1de,
+0x02fb553a8,
+0x038eb552a,
+0x03d7ed438,
+0x0135cdf60,
+0x02bc55986,
+0x0a6b7d576,
+0x0f3d95554,
+0x054c927ac,
+0x0de4122e8,
+0x0da650899,
+0x0f585589d,
+0x017f3c9f2,
+0x010e1ce60,
+0x0f71c7f88,
+0x0519be92e,
+0x0a844092d,
+0x009d76d21,
+0x0ac171275,
+0x0b53e4db7,
+0x0c0c74c4f,
+0x0ebe4c296,
+0x0e015452c,
+0x0b3dffe4c,
+0x060e3a96c,
+0x0df86c0ce,
+0x0c13e9637,
+0x01501fb72,
+0x0e753e2f7,
+0x070c64325,
+0x0e8c6062c,
+0x0eb0eda39,
+0x0850eed72,
+0x02ebc11e4,
+0x04da1d894,
+0x09667c756,
+0x08c2a1dfd,
+0x00cdbcb10,
+0x05139277a,
+0x0e0016a17,
+0x02010f894,
+0x072646af5,
+0x021c812da,
+0x0227ec3da,
+0x01de4acae,
+0x0dbb119f9,
+0x02b15c462,
+0x0c173d212,
+0x0fde2a8d0,
+0x056515891,
+0x0b1dd835d,
+0x04a4cefb3,
+0x0c9c7e445,
+0x0b17b47be,
+0x0038d496f,
+0x013bcc6fe,
+0x0d4569b3c,
+0x08fbf8f24,
+0x01e0ba2da,
+0x0e9426c6c,
+0x07dc6bcac,
+0x085562aba,
+0x089a2026f,
+0x035579f21,
+0x0c6d734a5,
+0x0944c2d56,
+0x0aef83956,
+0x0bd679725,
+0x0f4323ffa,
+0x0821750be,
+0x09b5f9e78,
+0x0ddce3ec5,
+0x0d7be656b,
+0x0e1471e9a,
+0x0dac523d6,
+0x0a07e60c7,
+0x0f65bd171,
+0x023fe9f89,
+0x083bb3a85,
+0x00c4af673,
+0x061c3d560,
+0x0d40d0cc4,
+0x0057c59da,
+0x049d65f4c,
+0x0461af175,
+0x0a98d099a,
+0x039e5b9bc,
+0x0a8d2cad5,
+0x03e537d97,
+0x08221c935,
+0x0e5c16415,
+0x0248bb488,
+0x025e09dad,
+0x0232f1e2e,
+0x0c50e97fb,
+0x0c6e5fdf1,
+0x0aefbea90,
+0x0577d17f0,
+0x08f18a95f,
+0x0d4675f9e,
+0x0431fc45e,
+0x0b20d6df1,
+0x049b9f75b,
+0x0aa19b267,
+0x00c6bfcd3,
+0x0d2f745dc,
+0x0959c9813,
+0x0097130a5,
+0x03112a97c,
+0x035104038,
+0x05fbe8f71,
+0x0d074d665,
+0x06d5c9e32,
+0x0a3203aa8,
+0x00c3c7a83,
+0x0e7283f17,
+0x02942f305,
+0x08d264a52,
+0x0525254ae,
+0x0a092c939,
+0x0e8657700,
+0x0be0f29a7,
+0x06020e281,
+0x09e444d53,
+0x0dc623b66,
+0x0b3b66315,
+0x00c244ec6,
+0x060967930,
+0x0fd368a48,
+0x0237a4869,
+0x0f135f0e2,
+0x080c8fe00,
+0x058f11c76,
+0x0b8f38abc,
+0x0d668c37d,
+0x0740b61bc,
+0x079f52c3c,
+0x08ee12b47,
+0x023fb4ffd,
+0x06e944d02,
+0x0f25910c1,
+0x0e331bd93,
+0x0f62ab4c1,
+0x01d3107d8,
+0x0f398ea7e,
+0x0416fc29f,
+0x010d656b7,
+0x0290c29c5,
+0x03d969d08,
+0x020ba15f9,
+0x044195622,
+0x0f79205b4,
+0x0a80f59ec,
+0x050c66c4c,
+0x01e84f61c,
+0x0f23f9831,
+0x0ad98194d,
+0x0c246bea4,
+0x00de8d5ef,
+0x0039f38c9,
+0x029e68ab2,
+0x07944bb3c,
+0x0bface3f2,
+0x0b7b4ac01,
+0x094f6a295,
+0x00953ea77,
+0x058d5dd40,
+0x08b45f6f5,
+0x08fc543b9,
+0x06c5d6ff1,
+0x0ca4801ea,
+0x033f40caf,
+0x0ec60c484,
+0x0e3c337e9,
+0x07fc79fb5,
+0x0a8a9acdc,
+0x0f00e8953,
+0x0d427004b,
+0x0ecf19707,
+0x0c098aed0,
+0x08aa7d970,
+0x005c2d629,
+0x0be9ee49d,
+0x0f3428ad7,
+0x0a6f847df,
+0x04cb99253,
+0x09b61b470,
+0x0dd60ec56,
+0x0f727103b,
+0x0fb5c4c80,
+0x0ee2c6070,
+0x07afe0dde,
+0x0bdba7bae,
+0x0e043a378,
+0x0b02c456c,
+0x079e4d681,
+0x0c10962ea,
+0x0d080b790,
+0x09d0f7bad,
+0x0e89a7eab,
+0x07d235687,
+0x0ba2a9c4c,
+0x0da70bd3f,
+0x031c5057d,
+0x0eecf2a71,
+0x0e557fdda,
+0x0e81eb661,
+0x0f99cb9e1,
+0x0aced17eb,
+0x0a241eace,
+0x0661e43d9,
+0x09a97e649,
+0x0937d7287,
+0x01ca10db1,
+0x00f308446,
+0x058186f52,
+0x09a0bf935,
+0x0e07a5c3b,
+0x029237a6c,
+0x06dd850d1,
+0x0cdd88d3e,
+0x0c81275ed,
+0x057721735,
+0x0cc9ee89a,
+0x09729c053,
+0x0fa531764,
+0x0f9828dcf,
+0x00a40f3aa,
+0x0e35c5967,
+0x00abed85d,
+0x075d5f714,
+0x04aa6da85,
+0x0b05d945b,
+0x0c36ac0b4,
+0x0d142ca07,
+0x09c336579,
+0x03addb22d,
+0x0a276c983,
+0x0708e5a27,
+0x071a49a1d,
+0x03bd187e8,
+0x0e2666f6d,
+0x075aac5c8,
+0x0761c7c2e,
+0x0251632a7,
+0x0a81371fd,
+0x067361946,
+0x0232f168d,
+0x02e9af0f7,
+0x0427de8fc,
+0x047f13497,
+0x0770abbb8,
+0x038ef952e,
+0x06cf47b02,
+0x06069ac43,
+0x021766166,
+0x0843f8e47,
+0x06e7d89cb,
+0x030f9b9f5,
+0x0c438756a,
+0x0956fbfe6,
+0x02447e9f2,
+0x011f5adac,
+0x0a9881470,
+0x023278bce,
+0x0e0fac15e,
+0x0cd8696f5,
+0x021de9ac3,
+0x0bd2db0cd,
+0x08cc3da36,
+0x0b28c0891,
+0x0a2fbab19,
+0x036c313ae,
+0x01858dab7,
+0x070e87937,
+0x03cd7d737,
+0x0babf6b82,
+0x09d550890,
+0x065196e53,
+0x058b92a7b,
+0x0ac5391c8,
+0x055ad2e7c,
+0x01ec746ff,
+0x033fdcaaa,
+0x00012e6e7,
+0x07fc102cf,
+0x0803f557a,
+0x096f95d90,
+0x04c194356,
+0x0ca532064,
+0x01553aa7a,
+0x0412fe8c5,
+0x0b64bde3d,
+0x0b3e8ed70,
+0x026fb418d,
+0x05e47e25b,
+0x00c58195d,
+0x000c5f3ed,
+0x0acb84351,
+0x014f05466,
+0x02114fc66,
+0x0610f14d3,
+0x0fcf37188,
+0x0eb3621a4,
+0x040b798ce,
+0x07c376b7e,
+0x02dec07f3,
+0x0baf993c3,
+0x09091ad4c,
+0x09b4dba73,
+0x06305f85c,
+0x0e0cdcfd0,
+0x06c548e10,
+0x03b2d8eb1,
+0x08ed5e24f,
+0x0562f536b,
+0x0ac2089e1,
+0x07d60b981,
+0x019de7ec5,
+0x026bb631b,
+0x096ab13f8,
+0x0cd7a5145,
+0x0e503c2b5,
+0x08e06f05f,
+0x00770cd40,
+0x031faaaf7,
+0x05f29b86d,
+0x0cdc42580,
+0x07da3b5df,
+0x0c36683a7,
+0x084d8fdef,
+0x0ac933a26,
+0x058eff9a9,
+0x0b69af4d2,
+0x0e94c7459,
+0x068324c76,
+0x0e22fa3fe,
+0x0663ffdee,
+0x03d3db418,
+0x0a79dfeb9,
+0x0d8f4ab6b,
+0x056d3ed9a,
+0x0424d5035,
+0x01b4cdf64,
+0x01a22fdf6,
+0x0c4b86e9a,
+0x0cfd3afd5,
+0x025dc510a,
+0x092f5a5b7,
+0x0300486d9,
+0x03dd9bf71,
+0x048cb352b,
+0x0f8af0886,
+0x05030c2ed,
+0x07b798cff,
+0x0c2c788c5,
+0x01150da0f,
+0x0411a77ef,
+0x08dabdb1f,
+0x0925562ff,
+0x0abbc075f,
+0x002c642a4,
+0x0bf124967,
+0x06b04b014,
+0x0da9ede0c,
+0x03dd96b13,
+0x0e4825d1f,
+0x08b29ccef,
+0x0314ba0a2,
+0x0b500ad64,
+0x0b3398d7d,
+0x0f29b7736,
+0x0e851a831,
+0x08509aac8,
+0x00e9f1043,
+0x053b5af99,
+0x0ecb4e38e,
+0x01de406de,
+0x0983a73f2,
+0x00c53e528,
+0x0526d0f6b,
+0x0f1ccbe55,
+0x0d8f0b1ea,
+0x0d38657d6,
+0x0f745ea6b,
+0x03520d73d,
+0x0c6ff3249,
+0x05cded7bc,
+0x0a839742c,
+0x0258f5a04,
+0x0785a438c,
+0x09e92834f,
+0x0f49d95f7,
+0x00cdf2fb6,
+0x052159f0c,
+0x015a66da8,
+0x094a21cba,
+0x067a3518e,
+0x03fb81688,
+0x096694e05,
+0x071076d53,
+0x08859b5bd,
+0x0e12155b9,
+0x06a59040b,
+0x057e3dac8,
+0x078e1e9d9,
+0x0ca69ccc0,
+0x0ad4e0f38,
+0x0e5bf28cd,
+0x03d2cb07f,
+0x04692634d,
+0x01a4c72f8,
+0x0f1f91c94,
+0x0202d6b59,
+0x0c84b883e,
+0x02e38f047,
+0x04d058fb9,
+0x046e7a835,
+0x0c73407e3,
+0x0ab50287a,
+0x09c548183,
+0x000582731,
+0x0c0be10a3,
+0x0b252750f,
+0x063216274,
+0x0101e0bce,
+0x09948edac,
+0x0b89e0e57,
+0x0c298cbeb,
+0x03304c28d,
+0x0fe73856b,
+0x037541696,
+0x0e0fdafa3,
+0x07e74ad9e,
+0x09c98518c,
+0x0786cb470,
+0x0be8e94d6,
+0x042e7b139,
+0x0ee63dc2c,
+0x0a336a187,
+0x058f8c647,
+0x0391888bd,
+0x09dc0ee49,
+0x0aab78030,
+0x085a31c58,
+0x054c8674b,
+0x0f523ef27,
+0x0f946ed5b,
+0x047981167,
+0x091ea3421,
+0x050acaf57,
+0x0abade8fd,
+0x0cecf185a,
+0x07b68c502,
+0x04dc2fbdf,
+0x0a8388b95,
+0x044d0f4a9,
+0x0c27343cb,
+0x09726a51a,
+0x0670c821d,
+0x097980b6e,
+0x01b21b080,
+0x05b0c0c3d,
+0x0fc97f7ce,
+0x054676df2,
+0x0858cf894,
+0x09e2b4e38,
+0x0f46da94e,
+0x0a1089dc8,
+0x0af707a4a,
+0x015744b86,
+0x015879b38,
+0x0e4836564,
+0x080341648,
+0x01252edc4,
+0x0c1f9f40e,
+0x0ce500d94,
+0x0d93621a2,
+0x0e1a3a71c,
+0x0b31c78bf,
+0x0ea73331a,
+0x0449420d3,
+0x00318f9a2,
+0x061f16b41,
+0x05d1bc9a9,
+0x0cc95b4df,
+0x02882504c,
+0x0c9beec78,
+0x0cfefc640,
+0x05c2a598f,
+0x07690888b,
+0x010ea4165,
+0x029246768,
+0x0767be2e1,
+0x061f92b50,
+0x099da3fa2,
+0x01cfe9347,
+0x07c4e106c,
+0x0525562f8,
+0x02eb0ca9a,
+0x04b0453ca,
+0x064c48896,
+0x0fc48d13e,
+0x02e2eb5f2,
+0x079dd70aa,
+0x0f2335863,
+0x058e66886,
+0x062252d83,
+0x09b1fb766,
+0x048d9e45a,
+0x07dc4a242,
+0x067da1887,
+0x03109ef07,
+0x0677151f4,
+0x0d9ca6d34,
+0x0b21e697c,
+0x0974353d6,
+0x06be4add8,
+0x043abdfc1,
+0x09aed82ca,
+0x0580f6546,
+0x087f2d920,
+0x002282745,
+0x0c6bdd73a,
+0x0e8f19021,
+0x0a9e948bc,
+0x06e5cea85,
+0x08eb20168,
+0x0b9cf2a9a,
+0x015cddfad,
+0x058a1eb60,
+0x0663e4abb,
+0x03b1f00df,
+0x0095f9e54,
+0x018600f71,
+0x07ce1e9a2,
+0x0aa3f6af8,
+0x0e3ef34f6,
+0x0a3e63761,
+0x0d395f5a4,
+0x06a78a61e,
+0x0d978abf0,
+0x0bc9cdba4,
+0x0670766d6,
+0x068cd414d,
+0x0ca0d0760,
+0x08bd7a9e4,
+0x0fd97d5d3,
+0x09d679da1,
+0x042b4e151,
+0x0e1dc786e,
+0x03a735f63,
+0x0a5571f56,
+0x0489a51f6,
+0x008f2145d,
+0x000571b31,
+0x0afe1a990,
+0x091b7cf3b,
+0x0ec938b35,
+0x088124e1f,
+0x01a2b8a13,
+0x005b47363,
+0x0bd63f129,
+0x0802dcb0a,
+0x00549c12f,
+0x03bd18b72,
+0x06bdc80e5,
+0x02fcfdd77,
+0x098d8ea0b,
+0x0823e2b58,
+0x07da424a5,
+0x0db7c27e1,
+0x05695a41c,
+0x07f9ca3eb,
+0x09a0d902e,
+0x055b36f91,
+0x0044e10d8,
+0x0a36623b9,
+0x03e4ccdb8,
+0x05562c79f,
+0x0232abddb,
+0x0e4051422,
+0x001be0624,
+0x0277b61f9,
+0x0e2ff44de,
+0x00e7e32e5,
+0x094c6aa8f,
+0x016dd7285,
+0x0be7c43d6,
+0x0c58ff8f9,
+0x0283b38e1,
+0x01a9a7055,
+0x0faca5883,
+0x069f44205,
+0x0798c7394,
+0x035590ef9,
+0x000f01c82,
+0x0524ee473,
+0x0d80b12bb,
+0x0150678df,
+0x0ee0ddedc,
+0x08064a348,
+0x0c6ba4a05,
+0x0bd97796f,
+0x040987f57,
+0x00eee2606,
+0x0a301e6d2,
+0x059eb5b6c,
+0x038ff7251,
+0x0a62ff5e7,
+0x01ae87f0b,
+0x0c9a93a10,
+0x08180b32c,
+0x07cf36d47,
+0x00f7a08bb,
+0x0a80c09d4,
+0x02d1ad8f3,
+0x018b88663,
+0x0baf00ed9,
+0x0041b5aef,
+0x0c1f968f6,
+0x0078fe15f,
+0x03554c82e,
+0x0e38cb89b,
+0x0f60038de,
+0x08aefb575,
+0x013ae7182,
+0x091e23955,
+0x029723478,
+0x009a186e0,
+0x028d43c3b,
+0x0236dec22,
+0x0439fdb2d,
+0x06cbe5792,
+0x0cbf35180,
+0x0159a8696,
+0x02109758c,
+0x0805b8463,
+0x084e56b5d,
+0x0b264f69f,
+0x0ca3793b8,
+0x09b801178,
+0x08967772f,
+0x018fc1b28,
+0x0c43df173,
+0x05c4c5fe0,
+0x0c4036909,
+0x09ee48aea,
+0x0f8fb471b,
+0x01d404413,
+0x0a49fb05b,
+0x080518683,
+0x013fdd52e,
+0x0f24ce4c3,
+0x05e0e420c,
+0x0b5b52f99,
+0x0b11cbbe2,
+0x0a4fca33f,
+0x05a85f46d,
+0x075002fe6,
+0x0760c578a,
+0x0d1541f1b,
+0x08b77f94d,
+0x0966f1ada,
+0x052f88875,
+0x0ecb1a888,
+0x0217b04f5,
+0x0917499e5,
+0x0e1ddf22d,
+0x0d661a411,
+0x04d192234,
+0x0c3b59c9a,
+0x09eae01ac,
+0x0dba9dbdb,
+0x01d929b1f,
+0x0e1fa2127,
+0x0d5b0234b,
+0x081ce41f2,
+0x07d440fe6,
+0x0cc6e6f99,
+0x0cd3e4467,
+0x04bd388f0,
+0x06d0fa4ae,
+0x0fec276ce,
+0x08431d5cb,
+0x0b003e107,
+0x06683b80b,
+0x099c02c71,
+0x0418732f0,
+0x071807db0,
+0x02cf6cb40,
+0x0cf0d0970,
+0x0e666feb1,
+0x0555eeebf,
+0x0f1577170,
+0x08b2928a9,
+0x0478c7a16,
+0x069fefa62,
+0x04a8bbc60,
+0x0e61e9fc6,
+0x044fc5c47,
+0x0e5394882,
+0x07cf8554e,
+0x0f26d0e00,
+0x04a8a2da9,
+0x09f9d2386,
+0x00f85c722,
+0x0fecf7184,
+0x01c68396c,
+0x0712321bb,
+0x072f36605,
+0x05ed57bfb,
+0x04893595d,
+0x09a8455be,
+0x0a2c8eb1e,
+0x06184499e,
+0x0ac285ec7,
+0x01f590ae9,
+0x0d07dc4e7,
+0x098232a33,
+0x0a8633194,
+0x0d6ded0c6,
+0x0de4ce750,
+0x021d889f2,
+0x03557c630,
+0x0124944be,
+0x00d98ffc9,
+0x08c1cd5d0,
+0x0b0a18deb,
+0x03c540569,
+0x0da7e84e2,
+0x029c03441,
+0x0f91457c1,
+0x038f7240b,
+0x0f1600e6e,
+0x05b29544a,
+0x0b11633be,
+0x07bceb29e,
+0x002bb19fe,
+0x0fd239a8a,
+0x0105300dd,
+0x06a73c7e0,
+0x0be27a1b4,
+0x0cde4a695,
+0x0acde24f8,
+0x0d2e65faa,
+0x00f082d68,
+0x0bbea2cbf,
+0x0ad67b256,
+0x05180cff0,
+0x0e87bd426,
+0x0d2d0fe68,
+0x0eacc5ffb,
+0x053f6deea,
+0x0879e5a8e,
+0x0273732d5,
+0x033d8a0f1,
+0x0590f2907,
+0x0663bbac9,
+0x08537c38c,
+0x043f2e69d,
+0x0bd8818e8,
+0x05436c82c,
+0x0943c7887,
+0x0a65e69a4,
+0x0e5377db6,
+0x08b97d64e,
+0x0e6809cef,
+0x0d9a078c5,
+0x04ce906b8,
+0x0059e7a30,
+0x0701209bc,
+0x0700c22f7,
+0x0051ef389,
+0x05d12084f,
+0x08640d7ab,
+0x0f5a9e069,
+0x0a1e2ecf2,
+0x00db0ffdb,
+0x028f6b0f4,
+0x038659160,
+0x0ae477614,
+0x06c779217,
+0x0f7071bc5,
+0x0c9205b6d,
+0x0f07915a9,
+0x014b8c583,
+0x01c9a92b3,
+0x0b3806403,
+0x0fa3c2892,
+0x0408a8d11,
+0x0dbd11034,
+0x01ec37a40,
+0x0ff98fd02,
+0x0b71fa461,
+0x0bbeb028b,
+0x06a437990,
+0x0ab00a698,
+0x0304e3a1c,
+0x0a910f759,
+0x053432167,
+0x0ed945eb1,
+0x0d403140a,
+0x086a98c46,
+0x01adfd863,
+0x06fabd4ab,
+0x0c57d5fe9,
+0x06fbadcb3,
+0x089f56ba8,
+0x0cad6e95c,
+0x0b4980ea0,
+0x0b86d96d8,
+0x07fbc66f3,
+0x00d918e9c,
+0x0b658e1e3,
+0x084483e99,
+0x0830bc911,
+0x0e7eb8bb9,
+0x052c73ae9,
+0x09ef7db3e,
+0x0d324e7ff,
+0x0d0b86b69,
+0x0f7f76255,
+0x07820944f,
+0x05c13247a,
+0x018b2054e,
+0x00f77cd93,
+0x050c16aba,
+0x0dcb1167d,
+0x0c0383d92,
+0x0fab27e6b,
+0x01ff11b3c,
+0x01d232c0d,
+0x0c7e2e218,
+0x09b09e071,
+0x0d48d38e4,
+0x0c8cb0afd,
+0x0a9e27ab3,
+0x0eecece41,
+0x0d89ec306,
+0x033630226,
+0x0c2201288,
+0x0f25a3f9f,
+0x075608fde,
+0x0aaabb6cc,
+0x0d344f975,
+0x0ba1479a5,
+0x058f4f036,
+0x0809cfb0e,
+0x0607cca3a,
+0x0cb8cdcc4,
+0x0b792efcc,
+0x07745ab3b,
+0x08b427b55,
+0x09da6a809,
+0x0775e2688,
+0x0c8cf3601,
+0x03aa93920,
+0x0853c54e1,
+0x0cf605460,
+0x06d8d8474,
+0x017f760cf,
+0x0dc1f625c,
+0x01119414c,
+0x076eed608,
+0x090b9a3f8,
+0x0518934da,
+0x03edddfd8,
+0x06f3f8e55,
+0x0914f6ac8,
+0x0c21a75b2,
+0x02138ab0e,
+0x00934ef95,
+0x0d73799ce,
+0x0d9984baf,
+0x0b464d270,
+0x095c3546f,
+0x08257db51,
+0x00e804072,
+0x03980b4d9,
+0x069ecd773,
+0x0a6930631,
+0x0e3225fa3,
+0x0bbd69ffa,
+0x078c97d06,
+0x0a17377a8,
+0x0e6c490fc,
+0x043283515,
+0x01a0dd570,
+0x0d853843c,
+0x0e7e3c689,
+0x0cc9f308e,
+0x02a2bde32,
+0x01c89f6a1,
+0x00e107c42,
+0x0cd8b7b70,
+0x0205ed9f3,
+0x00c94cf8a,
+0x08026b1b7,
+0x0405dcfb2,
+0x072ea707a,
+0x0de23e029,
+0x0edcbf2a4,
+0x0d196263c,
+0x00390e3a2,
+0x0aac26bd9,
+0x090cba045,
+0x09c0c675d,
+0x08a10e0a1,
+0x05957afae,
+0x0b945fe85,
+0x03ce4d650,
+0x00193fd7b,
+0x0e9a23a23,
+0x09efd3142,
+0x0d553b9a6,
+0x0748c446a,
+0x02ceaa2cb,
+0x06f79b097,
+0x0059a8d2b,
+0x0cfb77e06,
+0x0e8bb7ca7,
+0x0a70c7a1d,
+0x09ce06800,
+0x07e04305e,
+0x06935ec31,
+0x0addebdc7,
+0x00da95365,
+0x0939a5711,
+0x0038a8a4b,
+0x0429e89e2,
+0x095639a56,
+0x0673b137e,
+0x025e7251f,
+0x0613367c1,
+0x0cc65db85,
+0x034dfe21b,
+0x08f8de665,
+0x01fd97715,
+0x0832ed23c,
+0x0431a8660,
+0x085eb91dc,
+0x02e5950c5,
+0x06a96d6aa,
+0x089a6aaa0,
+0x026e4bc52,
+0x00f407884,
+0x0c85fb5a7,
+0x05150434e,
+0x02b324850,
+0x0d1d43d36,
+0x024e56870,
+0x0c76bbb03,
+0x0b6b26f0e,
+0x0407f54a8,
+0x0e35b36e4,
+0x04d012058,
+0x00b69f40c,
+0x00b2a301f,
+0x0c6c8078d,
+0x075560712,
+0x08b63bc2b,
+0x0c9cd0836,
+0x08912af84,
+0x082d7febd,
+0x015b410bd,
+0x07b5ffbfc,
+0x012fdf733,
+0x0030c3c33,
+0x0238d0ceb,
+0x07d5a05bf,
+0x0e63ade55,
+0x0de742d52,
+0x0de05f37b,
+0x02e3fa2f1,
+0x0c8f32f28,
+0x005c300ca,
+0x0d878d681,
+0x044e335df,
+0x06b7829ea,
+0x0e3e513e5,
+0x01397b2e1,
+0x0f8b3baa1,
+0x0e46455bd,
+0x0e195d92e,
+0x0a40f5ca6,
+0x05a589ea9,
+0x0a04bd5ae,
+0x047677038,
+0x0464c407d,
+0x05aac69bc,
+0x09de1a62e,
+0x0dfe552b6,
+0x093601c5c,
+0x09fe4845c,
+0x00b55d4bc,
+0x0a311ed4b,
+0x061fc7b2e,
+0x0c68b64bb,
+0x0c1e999c2,
+0x09b9e6273,
+0x01c001f82,
+0x005f83cc3,
+0x06fd95930,
+0x0ae9c189e,
+0x0f0a4a440,
+0x04ce8f87f,
+0x03f764a5e,
+0x02469b51c,
+0x0f589c525,
+0x060837d2c,
+0x065078ca2,
+0x04419e8e8,
+0x09dd1c14a,
+0x0482ec7a1,
+0x04a0c179a,
+0x01895b364,
+0x066e0b4d5,
+0x0805008ee,
+0x0f385b9d8,
+0x0c713ca23,
+0x0699e916f,
+0x025b80eb2,
+0x0e88f3344,
+0x09161fac8,
+0x09fc4fd49,
+0x040f89c31,
+0x0d0183bed,
+0x00cc39ce4,
+0x0ffd90c51,
+0x0b4425257,
+0x081db500d,
+0x0f15dd954,
+0x0617bcf8a,
+0x08964b76e,
+0x0b703e6dd,
+0x05c137cbb,
+0x096c78e72,
+0x0b6d81af3,
+0x0e6529685,
+0x03217e186,
+0x0bbd3bb39,
+0x04f31ed8f,
+0x041b5faee,
+0x04605b0a4,
+0x0fa106b9e,
+0x0546039bd,
+0x05158bf7f,
+0x0d900edbf,
+0x055a6686c,
+0x072f5e754,
+0x0c111a816,
+0x0a01c6b86,
+0x0643d2cb9,
+0x0336336ba,
+0x094ec5c78,
+0x03ea765c6,
+0x0c8eb4700,
+0x0fe842124,
+0x0fb4f09cb,
+0x077cc2b36,
+0x08104627e,
+0x064a5a977,
+0x04b56fbc0,
+0x002835a05,
+0x0f7c28f3c,
+0x08531ea7f,
+0x0e9eca586,
+0x09094d55d,
+0x00aefc5ae,
+0x0e09ef5e4,
+0x0368f6cf7,
+0x038d19817,
+0x09d8f6295,
+0x007fc97fa,
+0x00548c607,
+0x0a457e894,
+0x0694c31b2,
+0x042b64b2f,
+0x069ec89ef,
+0x084a31593,
+0x08989dce6,
+0x0367f2abc,
+0x005e1f879,
+0x078385eea,
+0x0066d774e,
+0x0533be6fa,
+0x0ea8469a0,
+0x05f497dd8,
+0x081998860,
+0x08d2b2f38,
+0x0697f0e45,
+0x04077252f,
+0x0464dd9eb,
+0x0342755d7,
+0x004fdea4d,
+0x0bed52f30,
+0x08ff2535e,
+0x0e22056db,
+0x025ed51ce,
+0x004ed4b6a,
+0x0488f798a,
+0x03bbb372a,
+0x03b65f55c,
+0x008b21713,
+0x01a569ea5,
+0x0c8b2a518,
+0x00c4c5397,
+0x0e44d559f,
+0x0b8140ef0,
+0x09a33d0b9,
+0x0bb804e38,
+0x086a2601b,
+0x0aff1c6b9,
+0x0e52a0d74,
+0x06825879e,
+0x07f9703ac,
+0x0745489db,
+0x09e466bfa,
+0x06ffa1d96,
+0x00863eba9,
+0x09d61eed4,
+0x0fa5dca71,
+0x0a429e56a,
+0x0e6d1e05a,
+0x0f0f7f175,
+0x08bb909d1,
+0x04e87eac4,
+0x018577021,
+0x0c9845dab,
+0x0ac726ed4,
+0x0869726af,
+0x01eb0cfe7,
+0x013427adb,
+0x0eec23366,
+0x05bc3238c,
+0x03ea8ff97,
+0x09bc3ba27,
+0x0c4e8cd94,
+0x0ec962db2,
+0x04b2218a6,
+0x0e4598fb8,
+0x069a50c6c,
+0x03ba86eff,
+0x07afab231,
+0x089f3b720,
+0x0cc020cd1,
+0x0e6b85406,
+0x009db0b3b,
+0x0fdd4b188,
+0x0fa852129,
+0x07ebc377b,
+0x0713fab5d,
+0x01c803fc9,
+0x0c3683dcb,
+0x0944163bd,
+0x043dfd297,
+0x0698cd1ef,
+0x059859802,
+0x0420ce2df,
+0x0dba936e4,
+0x025d422d0,
+0x057f7a7f1,
+0x0e72cb433,
+0x002c6d872,
+0x08f1c5618,
+0x0b5a94d44,
+0x0134fd017,
+0x0f8792683,
+0x0eaecb2d7,
+0x0f13ee8c9,
+0x02ba9eb05,
+0x0e64a88d5,
+0x00861d500,
+0x0cd0a4631,
+0x0ca1efb50,
+0x08df22b5e,
+0x0c6bf733b,
+0x01066a1f1,
+0x0f39aabba,
+0x0c1545d28,
+0x0a4ed0455,
+0x01d721b61,
+0x0ee92f6c5,
+0x072264552,
+0x09d90c46a,
+0x0fd0681fd,
+0x0b12f2bba,
+0x018cdda71,
+0x071961801,
+0x0ab88417e,
+0x00975f356,
+0x03480c79b,
+0x005be8db6,
+0x002778e88,
+0x0fc734697,
+0x0e1f15697,
+0x06639f4ee,
+0x054f9f870,
+0x0a8afd83f,
+0x048a037e3,
+0x001189d7e,
+0x07ed66920,
+0x03c120f30,
+0x0d8cf3a1c,
+0x0f002f33a,
+0x065a26b3d,
+0x0797decf8,
+0x04d6c462a,
+0x0cf15f43c,
+0x04b88cde0,
+0x00288e344,
+0x0b838a59f,
+0x056d9e2f2,
+0x03d629981,
+0x05f583def,
+0x022d3abdb,
+0x06bb2efa3,
+0x0d30b8ce5,
+0x0f87a6c8c,
+0x0f9b068ef,
+0x011ac6eba,
+0x0ac1a9fc1,
+0x06beab7a2,
+0x08f0c80dc,
+0x0f947cace,
+0x0ad0b9a64,
+0x0ea748714,
+0x0b7d1c933,
+0x09a186660,
+0x0e347bbb2,
+0x0ce80cada,
+0x02122ded3,
+0x03c064c3d,
+0x0c5dd82af,
+0x0e7442e87,
+0x015a16299,
+0x089296f7d,
+0x08bcb8876,
+0x000093d7a,
+0x03c2eeceb,
+0x06a012214,
+0x0847ed28d,
+0x03425a492,
+0x05f81cd86,
+0x083597e7f,
+0x01cfb5725,
+0x0e2eae680,
+0x095975efd,
+0x0a068cc9a,
+0x04cb89352,
+0x0f544d522,
+0x08c8fac5d,
+0x0f62c10a2,
+0x0e42d548c,
+0x06b6cec20,
+0x0cdf9f9ec,
+0x031d8ac12,
+0x026fe2bc5,
+0x0e7c54a2f,
+0x03d34f436,
+0x0bd91c66c,
+0x0e30ae97a,
+0x0b8ccc087,
+0x0ff59b1a9,
+0x0840c7e05,
+0x0fff9b4db,
+0x054ee254e,
+0x05e6f439b,
+0x0a4fd4df6,
+0x023d2e228,
+0x0ae717944,
+0x07430951a,
+0x03bdcb277,
+0x049a90763,
+0x08155271a,
+0x0edca13e8,
+0x08c9d1f4d,
+0x0182b4ee3,
+0x0b06d2bcb,
+0x06df0065d,
+0x0ec12e18a,
+0x095c65073,
+0x00a48435f,
+0x0f460bf95,
+0x0397ea607,
+0x025589a26,
+0x02911f2aa,
+0x0355ff541,
+0x02fef9916,
+0x0064c15bb,
+0x05be2f23e,
+0x01ab89dd1,
+0x005359da7,
+0x0f5800ce3,
+0x0cb270121,
+0x0fe08c8b1,
+0x036735932,
+0x021a5f9f0,
+0x0bade3d91,
+0x094cb8f91,
+0x045573025,
+0x01505a15a,
+0x0a70f78f9,
+0x07c6d2cc1,
+0x08fb5bb0d,
+0x0a69a0093,
+0x03c41c3c1,
+0x02a44b98c,
+0x093c2d251,
+0x06bbf77ac,
+0x0ec2ea0cf,
+0x05a0da05f,
+0x000d03c0d,
+0x0e5e4e109,
+0x03d853cd2,
+0x08ccd3650,
+0x07ef2924f,
+0x0a3048884,
+0x0d213d0a9,
+0x0a763a62c,
+0x056c75a0e,
+0x09844c232,
+0x08e6f8730,
+0x0ddb56a38,
+0x090634f07,
+0x0b70bdc17,
+0x0066779f5,
+0x0a95a9fb0,
+0x0f36aba1b,
+0x0554084f4,
+0x0c16c2b41,
+0x089a0f0e1,
+0x06e8b1b48,
+0x02642f0b6,
+0x093b261bf,
+0x065f2a694,
+0x01906057e,
+0x05f8a9b21,
+0x0712c52f5,
+0x0704c03d1,
+0x02083417c,
+0x0f7bce098,
+0x03973f4c7,
+0x0a02dde96,
+0x02343503a,
+0x0a3fdba7a,
+0x0a5ac6e99,
+0x0a65f927a,
+0x0092d85a2,
+0x0cd818099,
+0x0e452d1d5,
+0x033cceac5,
+0x098893c0f,
+0x015623827,
+0x0d4c7ce17,
+0x02808c337,
+0x0ddb559a5,
+0x048ca4b7e,
+0x0448ca7c8,
+0x0902e3a7e,
+0x0637a3b18,
+0x0c3433afe,
+0x00e49a4d8,
+0x0aa6c238c,
+0x039043acd,
+0x09e10bcf7,
+0x0cf1523d7,
+0x0d0915c95,
+0x061d8fd7d,
+0x0543edd9d,
+0x0f00a39af,
+0x036214bfc,
+0x0e8b9510a,
+0x0ab69c53e,
+0x098170a05,
+0x090859021,
+0x0002662cd,
+0x09f2a6c10,
+0x0a79fdc61,
+0x061bfabb9,
+0x0a0166265,
+0x0eb0ced3b,
+0x0ccafa76d,
+0x0a6abc811,
+0x082415b30,
+0x0fb37d28d,
+0x05f9db829,
+0x0374b3b5f,
+0x03a7dda87,
+0x084732cf7,
+0x0c0aaee39,
+0x017681ad8,
+0x08f1364f2,
+0x041df8256,
+0x00d4c55d1,
+0x0e11cd5b0,
+0x0028b3850,
+0x06494117a,
+0x07dbdce75,
+0x0cff5e2e0,
+0x0cd5792d4,
+0x0d214649b,
+0x0a06835e2,
+0x0258490f0,
+0x018219108,
+0x0b9a3955f,
+0x070025e19,
+0x0e262796a,
+0x08fd609be,
+0x0042416f8,
+0x0f97637bc,
+0x05c01bf44,
+0x0c3c759ae,
+0x0638904fa,
+0x0f19dca48,
+0x0884125fc,
+0x0b8a52bcb,
+0x0886b380a,
+0x0dc5294b7,
+0x0cd65e1b5,
+0x0374c1b82,
+0x03017cfae,
+0x052a2cc0a,
+0x06c29669e,
+0x0c6ecf4e7,
+0x0b5cbb7fa,
+0x0aa73c664,
+0x0f817b54a,
+0x06aa6c8f7,
+0x0a0ea86e6,
+0x0bc976215,
+0x0d1dfd660,
+0x017d8e808,
+0x056f6cbfe,
+0x06557b9e8,
+0x04d54e7cf,
+0x097fd9e76,
+0x0c8be48dd,
+0x01947d8c7,
+0x051240825,
+0x0163fe06d,
+0x0b4b44182,
+0x0093de4a9,
+0x064e34035,
+0x09e71daff,
+0x00e9d57e2,
+0x0496067f8,
+0x0de2b5d3b,
+0x06213c078,
+0x0ac648c2c,
+0x06cd447df,
+0x061ca1855,
+0x063e96c36,
+0x0ae3d4741,
+0x04dcf4a59,
+0x048919dc6,
+0x054d5f193,
+0x00ba48844,
+0x03d6f38e8,
+0x031866c27,
+0x073898caa,
+0x0aa050e84,
+0x06c09b907,
+0x04562e8a3,
+0x0a95a1c77,
+0x0bed9ab38,
+0x0445b7d76,
+0x0a2acff77,
+0x046528554,
+0x014f9ec77,
+0x05bdbc4d5,
+0x080a5ad5d,
+0x085a197ed,
+0x093331cb7,
+0x0b5f52598,
+0x0511a8af3,
+0x09318ca46,
+0x004b71f64,
+0x0b61663e5,
+0x0f178bda8,
+0x021524ce1,
+0x0bb96978d,
+0x096455b02,
+0x02b47da5f,
+0x0fd7c0ceb,
+0x0cb2788c6,
+0x0ab023e3d,
+0x049d8928d,
+0x05625d11d,
+0x0832733d6,
+0x02f68d225,
+0x018e02765,
+0x0eea41bd4,
+0x05503d185,
+0x0a28a11bb,
+0x0846957ab,
+0x051e2af66,
+0x02fed9cf9,
+0x05eee329d,
+0x036d47537,
+0x086fc5bbf,
+0x0bb0341a3,
+0x020e637be,
+0x0d29eee59,
+0x09c0a3ad6,
+0x041c2eb94,
+0x0b550a0dd,
+0x030265a48,
+0x0fc9588e4,
+0x0b3b21b27,
+0x03d58eef7,
+0x068c27089,
+0x064298a42,
+0x001f4dc18,
+0x0c809cc53,
+0x0faca4de0,
+0x01649eed6,
+0x04ca2c04c,
+0x0300161fb,
+0x06c75c6f3,
+0x02f97ae94,
+0x0206de178,
+0x0eb5c3c91,
+0x0e708d5ab,
+0x0959e9a8e,
+0x043050dc2,
+0x0498aeb08,
+0x0ebf1a2cb,
+0x0cab927bb,
+0x09e618965,
+0x01150762a,
+0x03e3a508a,
+0x091f67ca5,
+0x00e386d1c,
+0x0a5fc9042,
+0x04a15ea9c,
+0x096b0e5d6,
+0x0fd9ddae8,
+0x05b40f8db,
+0x0a28071f1,
+0x054d06f45,
+0x014f6c122,
+0x03774bc50,
+0x06090c040,
+0x0e4cd09a6,
+0x0c2d3f373,
+0x0c4a0182c,
+0x0cd10ac30,
+0x094eecf91,
+0x0b8f349a3,
+0x0b94771d8,
+0x0fbfde663,
+0x012574a50,
+0x0348b8a1f,
+0x052457b0c,
+0x02b07bd97,
+0x07301a1d5,
+0x0e03a28a7,
+0x095107bb9,
+0x077ab6043,
+0x06fe15f22,
+0x0e0bc898d,
+0x05e8b25e3,
+0x088443c46,
+0x01c11d5e7,
+0x0634d23a2,
+0x055a0f037,
+0x0f37b7ed1,
+0x0c3588a89,
+0x0cd34b14a,
+0x09f57d424,
+0x07068cc94,
+0x0aa514e9b,
+0x05697bbfc,
+0x09bd07381,
+0x037c2b0ff,
+0x0d284c5f6,
+0x01f65a3e2,
+0x0db6be88c,
+0x04f7fdb01,
+0x065043295,
+0x008e98723,
+0x03b254e3d,
+0x0435b47cb,
+0x08f2cd3f1,
+0x0f0e5e8ad,
+0x02aa9b3a4,
+0x005d6374a,
+0x0990084fc,
+0x0c762a4af,
+0x0ea3d92e0,
+0x039a34d87,
+0x08e676c4e,
+0x0ba2bee3c,
+0x06e4fca99,
+0x059382b72,
+0x03a75b19c,
+0x02a3cf3ba,
+0x0dc8b476a,
+0x0a90b11bf,
+0x017652ac8,
+0x05c3f644d,
+0x09c01c1d3,
+0x0235d4820,
+0x053ab8721,
+0x0be2bda51,
+0x0b69e9ecd,
+0x023af3688,
+0x088e22255,
+0x033b65942,
+0x011bfab30,
+0x09fe22949,
+0x0f3b75c6d,
+0x0c3b97147,
+0x06a78e68b,
+0x0b7e06750,
+0x0743d656b,
+0x0e7421726,
+0x0b97e50e1,
+0x0bacdc1bd,
+0x0e964cf09,
+0x0f8c7e190,
+0x0c10b4f47,
+0x0d6de32c6,
+0x0a7719885,
+0x0ea8a0a5b,
+0x051e5e50f,
+0x092ec03f8,
+0x069f0b98f,
+0x0c8353d43,
+0x07574c6a2,
+0x0f58e5b7d,
+0x04fc71b3a,
+0x08b15d15a,
+0x0b12607b1,
+0x061782970,
+0x0780f900e,
+0x0b53bd76a,
+0x000e88d59,
+0x0efaa3690,
+0x0a3d2fb4f,
+0x06c228459,
+0x0866635a1,
+0x0a61aa9aa,
+0x0edcc0393,
+0x016ffee80,
+0x0227b6384,
+0x0825605cf,
+0x067d074d4,
+0x0d6f49798,
+0x098cf6000,
+0x0bcaba9d8,
+0x075657167,
+0x0c7a894bc,
+0x0d9ec3b82,
+0x0fc88788f,
+0x07f73ac1f,
+0x0a6dc6aa1,
+0x0762fb5c4,
+0x006d8ab3a,
+0x08e71eb94,
+0x0424686a0,
+0x06558bd73,
+0x0e45c955f,
+0x08e414941,
+0x0ed7f9408,
+0x0b136c992,
+0x0e8e0ed3d,
+0x020d3397b,
+0x09d84abac,
+0x078a96b7e,
+0x0e52f7864,
+0x02d47989e,
+0x0cb754e39,
+0x0bbaf322a,
+0x06f3ad305,
+0x0ae47e263,
+0x0debd0b6e,
+0x0421adcd5,
+0x0bd553a5c,
+0x02156f37e,
+0x06a4ec34f,
+0x0d787f44e,
+0x0d6632c1f,
+0x0b0bad429,
+0x0b016242f,
+0x0621a7140,
+0x00fe933db,
+0x0dbb9ee21,
+0x08a053b9c,
+0x06b73cd09,
+0x06da05fab,
+0x07dc5afba,
+0x0458fe5d6,
+0x065bd7a6d,
+0x047ddfda4,
+0x0542b14f9,
+0x05107658e,
+0x04f0280ba,
+0x059a50692,
+0x0af0ec724,
+0x0f862e744,
+0x0d0c23b4d,
+0x04f819816,
+0x0b1ca7b1f,
+0x09cdd8014,
+0x07adf7cd1,
+0x0d69e6b29,
+0x0733746ea,
+0x03e11fa60,
+0x020a0664b,
+0x0f495ca76,
+0x0a2b2c470,
+0x05251b1fb,
+0x072eba1ff,
+0x0e36111e5,
+0x0c6118dd4,
+0x0126da6bd,
+0x056faf3a3,
+0x0144cd2c2,
+0x0cd3d475b,
+0x06d83b12d,
+0x03d34e0dd,
+0x0b12658d9,
+0x0def9b331,
+0x0af72a8e5,
+0x0f251851c,
+0x07b53846f,
+0x0578bf056,
+0x0e43e72d4,
+0x03aea92b8,
+0x0ab38aa10,
+0x053a5f32a,
+0x07d21c558,
+0x0b3b0d2d4,
+0x0874fb122,
+0x034e0750b,
+0x00858cc33,
+0x0fb19eed1,
+0x0beb3d8c9,
+0x0d7414638,
+0x0db64df79,
+0x06ec183cf,
+0x00cd4b199,
+0x091e87b2b,
+0x0566450d2,
+0x0c92800ee,
+0x0fc139f99,
+0x0a9639692,
+0x0b67e023d,
+0x07a3c5278,
+0x03f4e8376,
+0x019a621bb,
+0x024eb4285,
+0x0d5edc4a4,
+0x00c9dd119,
+0x01bf7f8e2,
+0x090e03803,
+0x0e471eea4,
+0x092a64420,
+0x0a6f62449,
+0x075e01fc1,
+0x0dd6f729a,
+0x067c90de6,
+0x0924f43e4,
+0x0d2fb85a3,
+0x0d62b961d,
+0x006f24553,
+0x099bfc747,
+0x0bcab05af,
+0x035feabec,
+0x0d3001914,
+0x043fdfb53,
+0x09f386ecf,
+0x08d00e564,
+0x0ff4d4be7,
+0x00ff3c53f,
+0x0c5bb6a78,
+0x0c1ade827,
+0x0c4943891,
+0x025499f74,
+0x0df25b330,
+0x08a037684,
+0x0d24627d8,
+0x0d6bdd144,
+0x0e0386304,
+0x09bcbf728,
+0x043d42eda,
+0x0174f5e32,
+0x09c3244c1,
+0x06a6afb45,
+0x0feff5c0c,
+0x0cb2982f9,
+0x099437726,
+0x083d8d6d2,
+0x02f6fa614,
+0x08f527fe8,
+0x070ec9956,
+0x086ae3fdf,
+0x0f192bbec,
+0x03529c804,
+0x0b9ab9172,
+0x0bed7d969,
+0x026b9b2e2,
+0x08ecd33c9,
+0x0640ba726,
+0x0389dd7ac,
+0x0a7f0b6ba,
+0x0f66008d1,
+0x0d3d4b08e,
+0x0e833bffa,
+0x0c0de7f3c,
+0x00251542a,
+0x0a913d7b4,
+0x0bcdb3dc4,
+0x00d651d8c,
+0x033fae049,
+0x025e4ae96,
+0x0e096e2e1,
+0x079ffce7b,
+0x02b752d13,
+0x0596de4a6,
+0x023b36c95,
+0x0edc52665,
+0x06c1ab812,
+0x0062a4e7f,
+0x002ea81f9,
+0x0484fcb75,
+0x05a3b9189,
+0x019b8bcbe,
+0x0c384ca31,
+0x09046e000,
+0x05bc8aa5f,
+0x049a58f7a,
+0x0cb6a7095,
+0x0d4ce391a,
+0x0cb676672,
+0x0b6446614,
+0x04fe767b2,
+0x0c0de00c3,
+0x05bccbce2,
+0x02c7382f4,
+0x074dd6fb3,
+0x040295b7c,
+0x088219ee3,
+0x01511d88c,
+0x0bd98d685,
+0x0a61e8067,
+0x02655e076,
+0x0d3cd4532,
+0x0dba1bea8,
+0x0b7e3e798,
+0x047377f67,
+0x0fa4f2d48,
+0x0b88cfa73,
+0x05cbcad97,
+0x0347e7dbb,
+0x0c8e5d24f,
+0x0dd3020da,
+0x058142c32,
+0x0547fdda9,
+0x0ae332516,
+0x03f797820,
+0x02ecbc4a8,
+0x0e1fca3dc,
+0x0c119c441,
+0x06a234e6f,
+0x060c02d41,
+0x0a2dbb36f,
+0x09624320f,
+0x006d8212b,
+0x0deaa489e,
+0x047536e78,
+0x062e1af09,
+0x0f7fe93f0,
+0x0646ce13f,
+0x046c0a4c0,
+0x07867ab01,
+0x0d0e01752,
+0x0643545f5,
+0x0d424150b,
+0x086dc09b8,
+0x02d353645,
+0x0c20f8b07,
+0x0c3c0504b,
+0x007bc152c,
+0x09b24b95c,
+0x04f9a4e07,
+0x02643c223,
+0x063e46ccf,
+0x0bdf9b07f,
+0x0200df3cf,
+0x07ea1aa23,
+0x032eb1dc2,
+0x060267b84,
+0x01cf931d0,
+0x0f8754102,
+0x04358bce3,
+0x062865dd3,
+0x0e3fb37a5,
+0x025f3f1b1,
+0x0db5d6d0c,
+0x0829d71c0,
+0x0717c5f9c,
+0x0974d8d5d,
+0x07d673be2,
+0x01c273667,
+0x085164d07,
+0x0be68e102,
+0x067c9887e,
+0x0cf616182,
+0x03d28b94a,
+0x0a024a01c,
+0x005c6563c,
+0x08b9f1340,
+0x0bd7d9442,
+0x00cc856a2,
+0x0e1925606,
+0x002042e8f,
+0x008c1dd9b,
+0x0321fea53,
+0x02333221d,
+0x095d66459,
+0x022646c15,
+0x07b3a59f5,
+0x023d8d730,
+0x0ddc9f474,
+0x06e6ef1e1,
+0x058b3f6af,
+0x026e78956,
+0x0e7a92e1f,
+0x0a1a4455d,
+0x0d352d9fc,
+0x06b5b3473,
+0x065bebb6c,
+0x0643804ef,
+0x06f28984d,
+0x02bb06dc9,
+0x04e2d67a2,
+0x0656252c9,
+0x0782dd020,
+0x0e8be9f23,
+0x023b73f06,
+0x081f17d83,
+0x09df56674,
+0x09d99e9c9,
+0x0cbf9ef2f,
+0x0c26b6307,
+0x025747dc8,
+0x0ca32d52e,
+0x0ab950eb1,
+0x064d4a0a2,
+0x018c829b5,
+0x021c44227,
+0x0bee755ee,
+0x0369617fe,
+0x0ff62d731,
+0x0c9567256,
+0x04580123a,
+0x01e01a677,
+0x0ab506704,
+0x0d857d31f,
+0x0045f651e,
+0x0b2b490b6,
+0x04c5b11b6,
+0x0fc9540f5,
+0x0de3f7144,
+0x084cb314e,
+0x00a58753c,
+0x0cf83bc70,
+0x00031cb41,
+0x072c5c806,
+0x02798489c,
+0x05dd160e0,
+0x0c52a033f,
+0x04c80b387,
+0x0b225f07c,
+0x0e011dbc6,
+0x0a03b5d4f,
+0x0b3e09aec,
+0x04d9375e8,
+0x0e7b87ecf,
+0x0716243f3,
+0x0ba481f23,
+0x0a216b581,
+0x0e3fc0fd1,
+0x0ee38346a,
+0x0b4db1bca,
+0x04f5589f2,
+0x061a3f2ea,
+0x0a230cd68,
+0x0303faa5e,
+0x03ccce92c,
+0x07e727fda,
+0x03996c38e,
+0x0914a8bce,
+0x01932768e,
+0x0b54fb352,
+0x06ff6510f,
+0x02e53fdc9,
+0x04ef33e9b,
+0x03125d97a,
+0x064ac7200,
+0x00254dd04,
+0x0b7cb6fb7,
+0x0d9a83158,
+0x0dbab1c3d,
+0x0d37f5d11,
+0x0d9638d20,
+0x0a607bb23,
+0x0408340a5,
+0x079191d9d,
+0x04d49f12e,
+0x01df1f016,
+0x062e7b429,
+0x0b2b25dc7,
+0x00c775635,
+0x0b330a404,
+0x09994486c,
+0x0adff7abf,
+0x0f59eb266,
+0x02817832e,
+0x01544a8a3,
+0x06e768fb7,
+0x0273a6ca0,
+0x00ef0570a,
+0x02209c170,
+0x0fea8ed91,
+0x0dee35ef6,
+0x04c18b0c7,
+0x096034ed3,
+0x0e15abaf5,
+0x0941470b9,
+0x03b4e2810,
+0x0328ddf66,
+0x0ffde257f,
+0x008708a43,
+0x0638c66c5,
+0x0e90bcfda,
+0x0e1a09c7b,
+0x00aab1e0c,
+0x01563a9a0,
+0x0017e5dc8,
+0x0e5703846,
+0x044ffa5e6,
+0x01f1c5d96,
+0x0b1d41e4a,
+0x0cc2a0603,
+0x046cafb2f,
+0x0c66ddf6d,
+0x007b50197,
+0x070ec9251,
+0x0c77c3d7a,
+0x041c7d563,
+0x0266fdc86,
+0x04475ba07,
+0x0d543368a,
+0x0bddde05f,
+0x0680e40e7,
+0x070626a6c,
+0x006ed85d8,
+0x02af21acc,
+0x068659da1,
+0x0029b21b1,
+0x0c50c6519,
+0x011a0bc95,
+0x07e42edee,
+0x098858474,
+0x0f6a037b3,
+0x059b721bc,
+0x0b8f05703,
+0x0a06b5f43,
+0x0543f0143,
+0x0e5c73e1e,
+0x0f7a62fe5,
+0x05f442220,
+0x0ef87d33b,
+0x0b3bb6824,
+0x033c08533,
+0x005da3b47,
+0x062454cda,
+0x091cb61e8,
+0x0a1fdd9d7,
+0x07a679acf,
+0x070fdc78e,
+0x0097d85f5,
+0x009e8ff33,
+0x016f5d41e,
+0x0b38951c6,
+0x06b62d962,
+0x0cfbdd1fa,
+0x02052e863,
+0x0cb6347de,
+0x092efb094,
+0x0a7128d2a,
+0x029177d87,
+0x068a98041,
+0x032a44d3f,
+0x0c6ac30d2,
+0x075f154dc,
+0x099c798ed,
+0x0c53e6ae8,
+0x0f69a6168,
+0x0c5480b0d,
+0x00ce98fdb,
+0x0226ebbde,
+0x086564bc2,
+0x03f06c09e,
+0x03d9910f3,
+0x0174379e1,
+0x0c2281aa2,
+0x0af89e8bc,
+0x0e7dbd0da,
+0x0d558a1a6,
+0x0f4074c56,
+0x0c2b9b97c,
+0x0acd2fcfa,
+0x01cf48100,
+0x09ed07100,
+0x015437a53,
+0x00af77a3e,
+0x0daab612e,
+0x01a9c899b,
+0x07194d75c,
+0x007acf256,
+0x0f1921804,
+0x0e559e17b,
+0x018adc6cd,
+0x020bf21c7,
+0x0e94bc0c6,
+0x063efcc13,
+0x0d32641b1,
+0x04fee7af3,
+0x07c720f09,
+0x062e9b6db,
+0x0a657ade3,
+0x0b06a20ed,
+0x074c0c321,
+0x0fd1cb21b,
+0x0b20d07d2,
+0x0006fba21,
+0x0e0ae1584,
+0x0ff2fa60c,
+0x0204d3d2a,
+0x0ebd8cc8c,
+0x03229bcfd,
+0x04ea57e81,
+0x05ce5f513,
+0x0e2280e9a,
+0x0ab805547,
+0x06ab1fc53,
+0x0435c1e90,
+0x05c3bc563,
+0x08d09d3eb,
+0x09485891c,
+0x0abe51ec6,
+0x05a3a27ab,
+0x05c2c4a96,
+0x063b01174,
+0x065a0e704,
+0x048e3b64c,
+0x0a3a79efa,
+0x0ea447b4c,
+0x0481646e6,
+0x098633b16,
+0x0616dfdf1,
+0x0f926a4f3,
+0x015f3daeb,
+0x0877b5b23,
+0x0a1f4427a,
+0x0267e9161,
+0x0347a7589,
+0x01c275a49,
+0x08cdcda02,
+0x087104924,
+0x0cb96bde7,
+0x0d793b96b,
+0x03078040a,
+0x01d639b7b,
+0x07cc25ac9,
+0x0637d36f7,
+0x03e8522a4,
+0x00e4162d2,
+0x0b49bb899,
+0x09844f848,
+0x06a0a5481,
+0x0b774eb3d,
+0x02f37ec76,
+0x0c196cb2e,
+0x0043746d6,
+0x0d14335ed,
+0x0e64a1084,
+0x01f5f2f5f,
+0x00a309231,
+0x055d46b93,
+0x063415301,
+0x0d9fa2a14,
+0x0efed5236,
+0x0ca58b79b,
+0x0d6226dae,
+0x09ca23897,
+0x0e5f0de62,
+0x00b276a7d,
+0x038bc0c3e,
+0x06bf35f1e,
+0x07a136263,
+0x0f6ccf0f8,
+0x0b54ddf4d,
+0x0138e2f6a,
+0x06e4ea912,
+0x0bfa0dd1f,
+0x0ef03814a,
+0x057693cfe,
+0x0172f3ca2,
+0x072c525aa,
+0x07cea4b44,
+0x022f110de,
+0x0340e0d0d,
+0x035e6d7b3,
+0x0a2916b34,
+0x05b8f330c,
+0x02fd9f08f,
+0x0e1cfdf78,
+0x08a7fd5d0,
+0x00c66fd8e,
+0x0c89f6f08,
+0x01eaba7cd,
+0x0627706ab,
+0x0cfa35751,
+0x0f7270e23,
+0x06f23257b,
+0x00c7ba3ec,
+0x019263167,
+0x090bcb192,
+0x0f24618f3,
+0x0dba89d24,
+0x0daccb5bf,
+0x0678d24ab,
+0x074dad78c,
+0x010b7690d,
+0x0d13384d6,
+0x013cebfe4,
+0x097018964,
+0x0f39369e9,
+0x076238743,
+0x019dee861,
+0x0094e04ad,
+0x02264bb67,
+0x0998f84fb,
+0x0a8c582a1,
+0x02763b097,
+0x04d653dcf,
+0x02cab433c,
+0x0b665f398,
+0x0decb5ec5,
+0x01e2e4396,
+0x0a05e532e,
+0x053a7b2d9,
+0x015688393,
+0x0f0322f35,
+0x08a12fff0,
+0x03a016ead,
+0x0f3c97224,
+0x01346b5cc,
+0x062ad7512,
+0x048b205d0,
+0x02e5a8740,
+0x0b8f0d853,
+0x0f0998db9,
+0x0c5a66eb3,
+0x0f6cd2006,
+0x0ea60eb2a,
+0x0a1c4e1a4,
+0x0606f9719,
+0x0f8c7ec86,
+0x035c2098a,
+0x017d44b2f,
+0x0cd0de9e3,
+0x0632209b8,
+0x08a9c5ef6,
+0x07b210fc5,
+0x03588e3dd,
+0x0a7f61f25,
+0x0b59b194e,
+0x0c4911978,
+0x04417ddae,
+0x01058e8d6,
+0x06ffef633,
+0x0a8cace15,
+0x06cf8267a,
+0x0b3e06b69,
+0x03b701fb4,
+0x0621802cb,
+0x095f19f75,
+0x0fd4bf10d,
+0x0bc779846,
+0x029eba128,
+0x0f462af99,
+0x0f308f29f,
+0x0020e713d,
+0x09b4d6624,
+0x0c74cbf1f,
+0x0d1c14280,
+0x05b5bc511,
+0x032e4aa4f,
+0x065a5bdf1,
+0x06072c258,
+0x07c22ed27,
+0x034e58f09,
+0x0a87f5bc2,
+0x0f0174d86,
+0x065192769,
+0x052140151,
+0x0154d2d28,
+0x0f8de075b,
+0x0b2a6626d,
+0x0c2ef823d,
+0x0eaa1d834,
+0x015aa5a91,
+0x00731942c,
+0x0f44166b4,
+0x0134df0af,
+0x065f03e58,
+0x003baa2d0,
+0x05efc5562,
+0x07f7bc54b,
+0x0bd21e597,
+0x0d573c9a6,
+0x0071b5d2b,
+0x0a2f0331a,
+0x06ad54429,
+0x042bca1ff,
+0x0cdec277c,
+0x0938b4bb2,
+0x0a6ffa1c8,
+0x044236d40,
+0x05251c7d9,
+0x05dc1abf1,
+0x00d67a97b,
+0x0e222f8da,
+0x0ce9ba1bf,
+0x0023fdfef,
+0x0e1b059ce,
+0x0bbe2363b,
+0x00fc44882,
+0x02cd58513,
+0x0b5e62f45,
+0x0bb5fca0e,
+0x053ae9efe,
+0x081647aac,
+0x04a18e4d7,
+0x088529d94,
+0x021789b9d,
+0x06049f2c4,
+0x0b5a40a9c,
+0x08efb9cd2,
+0x0449b9a37,
+0x04430358a,
+0x0cb01ad29,
+0x00d3f2767,
+0x0273e9aab,
+0x055cd1307,
+0x0fa39c427,
+0x0243a6669,
+0x03f01a714,
+0x01d41575e,
+0x01749bb15,
+0x074ab0954,
+0x0d3d6d68a,
+0x0e717a55d,
+0x05b39b157,
+0x0b32e327e,
+0x034f45318,
+0x0db40cb1d,
+0x0b071e83f,
+0x00b85ed23,
+0x0753fe00f,
+0x07d62fc16,
+0x0912c292d,
+0x05e8737a4,
+0x0de996612,
+0x01c55eb4f,
+0x0302112af,
+0x0255fdae4,
+0x03af29b3b,
+0x05bb339ba,
+0x09ba0d044,
+0x0e0b08eef,
+0x097b578d9,
+0x090592824,
+0x02b955693,
+0x0f3398869,
+0x0a52f8755,
+0x05fa25992,
+0x00be41bf7,
+0x06671e8db,
+0x0c9ec16c4,
+0x05ac0c274,
+0x04a7c55be,
+0x02dd51d95,
+0x0b2329d66,
+0x03ed35bf0,
+0x023955c23,
+0x0a4eba4a3,
+0x0ed687341,
+0x0eda16648,
+0x02cfa2254,
+0x0bcdc27c1,
+0x0d188d014,
+0x066e987ec,
+0x030496cf8,
+0x040e62b01,
+0x06c278635,
+0x0edfef458,
+0x0448d9b07,
+0x06ec487cd,
+0x072f0b04a,
+0x0c2f487b1,
+0x0d032fb20,
+0x0f54dc9f2,
+0x0563000db,
+0x0c384e4bc,
+0x02d55205b,
+0x0b3b3b7b0,
+0x007abf16e,
+0x068ec381f,
+0x07468eb0d,
+0x05115cdb6,
+0x0bd7ed294,
+0x018991ee8,
+0x0b5a0c8a8,
+0x092f8a45d,
+0x01b2cd9a3,
+0x01344ce79,
+0x0705ac58e,
+0x0870f112e,
+0x0f93b406c,
+0x0f4c69ae3,
+0x0a41974ab,
+0x092711713,
+0x0bcdc82ca,
+0x0406b0bd8,
+0x075cf5c79,
+0x022645dc3,
+0x0129123d0,
+0x013a3c4c8,
+0x0d58a8380,
+0x08a86478e,
+0x06b46361e,
+0x06ef98760,
+0x0466905e0,
+0x097745201,
+0x01a03c67f,
+0x021bd2d71,
+0x0bd2be792,
+0x005e65039,
+0x08474ce0b,
+0x070fd3f46,
+0x02ae1e3dc,
+0x03a9c1e56,
+0x03c6c22d3,
+0x0e93877bd,
+0x02d1d8455,
+0x0e7b0b9ba,
+0x009625611,
+0x04129bbb2,
+0x086bea60d,
+0x0448e63f9,
+0x0106d967d,
+0x0c4eff542,
+0x077ccb8ba,
+0x07f400395,
+0x0fcc0535f,
+0x0e6f46370,
+0x0aa64b51e,
+0x016f5260c,
+0x02def6e15,
+0x08d63322b,
+0x0dbce5da3,
+0x0db7f01d0,
+0x0d5cd7e9f,
+0x0ae1c1252,
+0x099b43d2b,
+0x01815e1c2,
+0x0ac64b21c,
+0x033dca636,
+0x0cba70005,
+0x02fbf96cb,
+0x064e66b9a,
+0x0738eee5c,
+0x0ec559735,
+0x044b9bfb1,
+0x079c4cf9b,
+0x0e5fa3f9a,
+0x0ce4ee7c0,
+0x029252435,
+0x07756e50b,
+0x0370df515,
+0x044039174,
+0x07ec5afbb,
+0x0ca69c2df,
+0x04ab68c85,
+0x069e5075e,
+0x07ba21a26,
+0x0796a7b6b,
+0x06b9df83c,
+0x09a2a012b,
+0x0cf9de6b8,
+0x0c78109b6,
+0x0d736aa31,
+0x027499d6f,
+0x07a52f60c,
+0x0d93088de,
+0x06d6d9dc8,
+0x0333c93d1,
+0x0864c4747,
+0x086feaab8,
+0x074e76501,
+0x0c6420081,
+0x09bcf5d77,
+0x0f55e0b7c,
+0x0a7c5286c,
+0x0a7d4659c,
+0x0d6d1c20d,
+0x093673571,
+0x09e5273a8,
+0x02e669c9a,
+0x0a0f6bec4,
+0x0495a4fe4,
+0x001467b87,
+0x02680bb9f,
+0x07f30555c,
+0x0ccf78e5c,
+0x0b916340a,
+0x09741c16a,
+0x0a8b0fbb5,
+0x0cd846b70,
+0x0a41c0a55,
+0x05ec91585,
+0x09020deac,
+0x07d105913,
+0x0907c32e2,
+0x02f205cbf,
+0x035182df0,
+0x0d0b7862c,
+0x0a45a04cc,
+0x05db18ff7,
+0x0b07940ea,
+0x00574aa89,
+0x0ea25bab5,
+0x028a7604c,
+0x06f7ed190,
+0x0ffb3d50a,
+0x03f503922,
+0x0e5b3af47,
+0x05900f130,
+0x0db3eeef7,
+0x03fbc90a1,
+0x0fbfdd569,
+0x004f1ea38,
+0x0a3b6ea5f,
+0x064bd18ca,
+0x08231a891,
+0x02dffd319,
+0x09d058818,
+0x078e7586a,
+0x044f33d38,
+0x02a0ca7d4,
+0x0c5b4a844,
+0x0ab2987c9,
+0x02821b39e,
+0x06f0e1571,
+0x0809c3124,
+0x064b02bd8,
+0x0cfd27f97,
+0x006709f26,
+0x0d963ca69,
+0x0e9c0370a,
+0x0461867ed,
+0x0941442dd,
+0x0192bf3f7,
+0x0610878ad,
+0x03fdd235f,
+0x0317aea8d,
+0x01b4a315a,
+0x02692a8ba,
+0x00c2688bb,
+0x000efa32b,
+0x0f750eb88,
+0x0f2751780,
+0x09c0f957f,
+0x07db7e7a1,
+0x05501e1ff,
+0x069a10f0a,
+0x0fac771fc,
+0x0cf016c57,
+0x07cda97be,
+0x0838945a7,
+0x04f4f1cec,
+0x063b86e21,
+0x0b656ed57,
+0x06b611551,
+0x0ea42d5e8,
+0x002875b63,
+0x0655d95f2,
+0x0acc9ec74,
+0x06f2ba84a,
+0x082b2a451,
+0x04442c9bf,
+0x05f2305b5,
+0x0e22d49ce,
+0x06bed7443,
+0x09a6fce09,
+0x0d6a8a728,
+0x0cdd3899c,
+0x0997f8814,
+0x097a69fd4,
+0x03be58588,
+0x0991b1615,
+0x065b0ff8c,
+0x0b6ea0d99,
+0x09eb15982,
+0x00efca604,
+0x08d0acb0f,
+0x0103ee7c7,
+0x0be488625,
+0x01f8cc764,
+0x02ae19c0b,
+0x08be99469,
+0x014f692f5,
+0x00ab6bb7d,
+0x0a78efdf5,
+0x06181c1cf,
+0x0d0bcc72d,
+0x015ffab3c,
+0x0573cb372,
+0x0de295f16,
+0x049cfc41a,
+0x0612dc65b,
+0x0ec204129,
+0x0e23741e0,
+0x027ce9394,
+0x09dd9d6ab,
+0x0cebfa646,
+0x088a7663e,
+0x0de885df1,
+0x055678908,
+0x05c104cfe,
+0x0c05a5c38,
+0x096c1a4ea,
+0x0214f5335,
+0x0b185b65e,
+0x0f78213fc,
+0x09eaa3804,
+0x0e53db037,
+0x00fc863c0,
+0x05c5ea45f,
+0x0ba6ead97,
+0x075e93d99,
+0x0ddc34300,
+0x04d51254b,
+0x031431cec,
+0x0ae2a22c1,
+0x08d0b85dc,
+0x084fbe26b,
+0x00fa0c186,
+0x0064168b0,
+0x086f1b93f,
+0x03b7d1707,
+0x094fd18ff,
+0x011c3e41b,
+0x0225a6234,
+0x066643e1d,
+0x076a82e2a,
+0x002f58852,
+0x00484283d,
+0x08a60a003,
+0x0746c1490,
+0x0b731274b,
+0x00ff80841,
+0x0016674e0,
+0x09932da89,
+0x0f346e100,
+0x0002dc117,
+0x0f23ecaff,
+0x01590b984,
+0x06165fdf5,
+0x0bdafebae,
+0x0c332785a,
+0x02500ec53,
+0x04dee5b3a,
+0x0414b55f2,
+0x01f0576f3,
+0x0689e8f91,
+0x05106d55c,
+0x001e94293,
+0x0a35d1dea,
+0x0de6e0f6d,
+0x0ea34926d,
+0x052599d4c,
+0x0deca7385,
+0x0bc03cdee,
+0x05799e387,
+0x0db382c11,
+0x06ad90d7c,
+0x0049925fe,
+0x0246bdb23,
+0x0ed8a52ab,
+0x09763770e,
+0x0fc5d4e4f,
+0x0b4452106,
+0x0126166d8,
+0x0cdd3514f,
+0x0cf6f7218,
+0x0c868d411,
+0x006e88286,
+0x0478cf0e5,
+0x04c3b7cb2,
+0x089d69e4d,
+0x0d3fb82bb,
+0x05f7a70ac,
+0x0342f6f4a,
+0x05c980d85,
+0x04daf1539,
+0x0bc6e8376,
+0x090868790,
+0x071db8184,
+0x08b0964b2,
+0x077b0a383,
+0x07a8df65d,
+0x095eff8f6,
+0x07961fffd,
+0x0b2476e21,
+0x005b3cfbd,
+0x0cd632440,
+0x0dc962ed7,
+0x00d9b567c,
+0x0cd22a7c9,
+0x05374de0f,
+0x051a8a74e,
+0x07c1b2ad0,
+0x045309d03,
+0x0c98a15e5,
+0x0fb5b8a8a,
+0x0c57dc5c9,
+0x0a642d413,
+0x067173fa2,
+0x0ff53b9a0,
+0x0712c8435,
+0x06ef411a3,
+0x0dda3a1ed,
+0x08188d2b0,
+0x0bc0bb4b5,
+0x049ae60c3,
+0x06472aa4f,
+0x01965292c,
+0x03d40a462,
+0x0c88c61aa,
+0x0e2b3b6ea,
+0x0fd52d4c6,
+0x00cd8626a,
+0x04d0f2c8a,
+0x000198755,
+0x0250d8695,
+0x0676f4c51,
+0x0a6f5587f,
+0x0d4f5bc81,
+0x0694b15f6,
+0x0f80dc351,
+0x02c1d879a,
+0x049d1da17,
+0x069c9b63b,
+0x00e9c38de,
+0x07d6d33ff,
+0x0d0101b73,
+0x098fdac41,
+0x0f8f49c11,
+0x0658d1cfa,
+0x0af00dd6d,
+0x08dc4f13b,
+0x0923b2cc6,
+0x03e9af443,
+0x01619fa47,
+0x0025bb0a2,
+0x02eb98cdd,
+0x01bd8474b,
+0x0754074a2,
+0x06c104589,
+0x02ea6943f,
+0x0fce1d081,
+0x0644119e8,
+0x0d1881d41,
+0x0a510505e,
+0x0c1f1df87,
+0x0814c9547,
+0x07bbd222e,
+0x06bf57b18,
+0x06965cf12,
+0x0f2494b04,
+0x063464471,
+0x09e478dab,
+0x01c6999af,
+0x03e16f976,
+0x083447ec5,
+0x0eea46803,
+0x017ea6e03,
+0x0eb44bf3a,
+0x06d2b8f07,
+0x0c409bea2,
+0x0affdb9fa,
+0x06b90849c,
+0x0037eb7b1,
+0x038884f46,
+0x0dba65ddb,
+0x08275d6a8,
+0x0d914d383,
+0x0959590e5,
+0x015d3bd68,
+0x01de32f57,
+0x042c3f36e,
+0x025d07540,
+0x0aa9c1424,
+0x007914ce3,
+0x02d1f519f,
+0x0a1cde2d9,
+0x0331e82b3,
+0x0618bab78,
+0x0d6b171c4,
+0x0ea96987d,
+0x014d7e3c0,
+0x0c6d866b3,
+0x096d441f4,
+0x07ff957b4,
+0x0fa3ff2b2,
+0x003960abf,
+0x06275c3f2,
+0x013fd2a68,
+0x06da01e4d,
+0x0641aff82,
+0x00458f84b,
+0x0881d0cf5,
+0x0c4e28f95,
+0x04d596070,
+0x06daa59fd,
+0x045c1690e,
+0x07599f014,
+0x0b22197cf,
+0x01a213931,
+0x0d3d53990,
+0x0494396b1,
+0x0d2847860,
+0x0c0d95a6d,
+0x02a5842d7,
+0x0e4edf57e,
+0x0d1e5c9b1,
+0x0ce771753,
+0x0842bca9c,
+0x092a276d6,
+0x0b5442999,
+0x0ac0b9b8f,
+0x04284adde,
+0x03bb95c1e,
+0x016407f24,
+0x076695141,
+0x0f5e2abf5,
+0x076eed52b,
+0x04ee45e36,
+0x028eef565,
+0x0ecf6714e,
+0x0dce23746,
+0x05f1c249f,
+0x038828ee0,
+0x036d6a3e2,
+0x0eeabd260,
+0x0164c4665,
+0x0d0e467bd,
+0x0ae2f2ea8,
+0x0d2118979,
+0x0011c78ce,
+0x0dbf8efb4,
+0x0ec703462,
+0x02b653a6d,
+0x02a17984a,
+0x0c5904175,
+0x0b3e83ad9,
+0x07ccc2127,
+0x0308c961f,
+0x0815d1722,
+0x0d728e13b,
+0x0024ed1f6,
+0x0f2a12632,
+0x04782d6c2,
+0x02d77d093,
+0x080d6608f,
+0x04e4ed62f,
+0x0657875d8,
+0x0687a98ec,
+0x08f19138b,
+0x040113071,
+0x05c48fd70,
+0x0ed449e41,
+0x09e0d6635,
+0x0b67bea2a,
+0x0bbf68adf,
+0x0ff7bbe98,
+0x0e7e12062,
+0x000fd33a2,
+0x02473a973,
+0x001f9775e,
+0x015fec31e,
+0x05774edbf,
+0x0e1ef8cbf,
+0x071ec60e8,
+0x0436a2f8c,
+0x0ee82f87d,
+0x0515bceeb,
+0x0435cf4eb,
+0x0b5d33ef6,
+0x0113136de,
+0x0576201eb,
+0x0b0a1aa5e,
+0x0fbcaea94,
+0x082dab632,
+0x08feadf71,
+0x003690ec4,
+0x06b2760f5,
+0x06d111fbd,
+0x0be7fe31d,
+0x0d7190030,
+0x00de003b3,
+0x038bf585f,
+0x0d31144cf,
+0x019e62005,
+0x06e3927fb,
+0x0f75057f6,
+0x04164f354,
+0x0d94a2606,
+0x062987771,
+0x0b8fa5e52,
+0x0dcd7c6b8,
+0x04442eeeb,
+0x019069295,
+0x0b97676ed,
+0x0dfe421f2,
+0x0109361d3,
+0x0435931c0,
+0x02d04ffec,
+0x01f9058c2,
+0x0659bd184,
+0x01c0fe2cf,
+0x081b07528,
+0x0b2cf5414,
+0x0e6375da8,
+0x08935ef98,
+0x0400f208f,
+0x07aab862b,
+0x0d14fa164,
+0x08203df24,
+0x0af492f96,
+0x0caed0728,
+0x078832333,
+0x00ba51e3d,
+0x0198f8bb7,
+0x01253d375,
+0x070589546,
+0x0b6bb29f4,
+0x00c8773cf,
+0x020b266cd,
+0x002ccfa80,
+0x0d306498b,
+0x0eafc752d,
+0x0c7d02374,
+0x0f8642f23,
+0x0733f69f5,
+0x0bb6f5dc0,
+0x09f311632,
+0x0c466c87e,
+0x08c83318c,
+0x0c9b57b7c,
+0x088ae0e12,
+0x07ee24cf2,
+0x002350eab,
+0x0cc67796a,
+0x08c3dbc29,
+0x0838a45d8,
+0x0fe8ad858,
+0x0612732ba,
+0x0179f1a06,
+0x08931663d,
+0x08080c70b,
+0x0a0046a67,
+0x07116e337,
+0x06c7ae318,
+0x004378f05,
+0x0108b80a8,
+0x044afcd7a,
+0x0e72fae9e,
+0x09d6afe6d,
+0x00dfe0e11,
+0x09cc4665d,
+0x09153ff83,
+0x0d6e7f6bf,
+0x05d2f6c88,
+0x06ba27e3c,
+0x001dc6b7c,
+0x084497e07,
+0x03a667742,
+0x0b28d8ca6,
+0x00657bf3d,
+0x0e71fc714,
+0x0c36fa018,
+0x0edf11ad5,
+0x0384b117d,
+0x09cbf2832,
+0x0356fd288,
+0x0b1db545e,
+0x0976e9f5f,
+0x08380761d,
+0x06b6c0902,
+0x0c1c33bb6,
+0x064712509,
+0x08b39fc26,
+0x06c6c736e,
+0x0b903b7b0,
+0x0fc7106a4,
+0x07978674d,
+0x0dbb5b41f,
+0x090c03ae6,
+0x01b9ee8e4,
+0x0881b55a3,
+0x05052ecb5,
+0x093f08f5f,
+0x0cfc07949,
+0x0e9e6c34b,
+0x0160d4ce6,
+0x067b85950,
+0x042df8547,
+0x0be323890,
+0x0faafe3fe,
+0x03c9de148,
+0x0ac3156cb,
+0x0cf24ab3b,
+0x040328a45,
+0x01c261e2d,
+0x08b9e5893,
+0x0fd61109d,
+0x0eba09da8,
+0x0cd3ed1c8,
+0x08e2d5df8,
+0x089171c8f,
+0x0fc602fb7,
+0x062db8d54,
+0x081e48680,
+0x0ccb065ab,
+0x038f9dd9a,
+0x05ae6f73f,
+0x0da93f64b,
+0x0da58db62,
+0x028fd04a5,
+0x0894cec1f,
+0x087bf02e9,
+0x0162e0312,
+0x05c94cb15,
+0x0e8bba3db,
+0x0cc3528b3,
+0x05b74a856,
+0x0572d0754,
+0x0ff2d946f,
+0x00e2a2bc5,
+0x0c687b13d,
+0x08d83b9df,
+0x09106ea98,
+0x02294502e,
+0x0b7c0deb0,
+0x0478d87f3,
+0x075cc4796,
+0x0737e617b,
+0x0cb566748,
+0x05d07d064,
+0x0c0c301d1,
+0x07f831b35,
+0x001c01511,
+0x013f23273,
+0x0c7b82d1e,
+0x09144fb8e,
+0x0637fbef3,
+0x0a7fc5717,
+0x0eb37cdf0,
+0x022fb0d02,
+0x0297516d6,
+0x061966ebd,
+0x05b9caffc,
+0x043e11d44,
+0x0311c9e6e,
+0x0e857d468,
+0x05efdb00c,
+0x08be86402,
+0x0e12457db,
+0x0143490c0,
+0x01f2c29a7,
+0x007ede2b6,
+0x0ec0fb664,
+0x0824cfeed,
+0x09da4ba9d,
+0x04bd8f73b,
+0x09f0d6a34,
+0x03e29812c,
+0x02226faba,
+0x084c5e0aa,
+0x0f24c28b8,
+0x0d1ddbe76,
+0x03092cd2d,
+0x08f170960,
+0x05daf09bb,
+0x077fac755,
+0x01eec7696,
+0x0290bd9ea,
+0x0f80210e9,
+0x00d996304,
+0x0b8690a5e,
+0x010ce2ed5,
+0x0c394434d,
+0x068a26471,
+0x08e940fe9,
+0x0065fe814,
+0x07686a8da,
+0x0973d6676,
+0x0ceca6e1a,
+0x013ddf214,
+0x05b734b65,
+0x0a3c80550,
+0x0fb890201,
+0x052b78543,
+0x0f2c5887a,
+0x057101c62,
+0x0ffb59f94,
+0x0e69e7770,
+0x0c1a34b81,
+0x09ff898a7,
+0x03192fc1d,
+0x0f7c965aa,
+0x032a2ab2e,
+0x01ef377d8,
+0x0e752d76d,
+0x066490cfe,
+0x0426a95c8,
+0x0854a5738,
+0x006db830a,
+0x0de5393ef,
+0x00a6c7bbe,
+0x0de8dbb3d,
+0x0acf5bc7f,
+0x0edc14c00,
+0x06da29111,
+0x0a35871ee,
+0x033c22524,
+0x0a50ce475,
+0x056008f6a,
+0x079f22774,
+0x0529cd770,
+0x0a80d4537,
+0x016c812f4,
+0x04a025e5b,
+0x064c94da6,
+0x05640ce28,
+0x08179107c,
+0x039ba9049,
+0x069ca33ea,
+0x03a5b2df2,
+0x085af992c,
+0x0bbf0c98d,
+0x0fc51dc4d,
+0x016fce145,
+0x02ca6060c,
+0x0ae8d02de,
+0x0c425d0ce,
+0x0fdd0fe51,
+0x0ba052d90,
+0x0bd374ca5,
+0x09afbbf87,
+0x05ef9a435,
+0x063b37d1c,
+0x0e99d8d6a,
+0x097fbd865,
+0x0c8bdca19,
+0x0b883042d,
+0x099fad61a,
+0x08eba42fb,
+0x0c680851e,
+0x06cd19510,
+0x08026e652,
+0x00dfe98ee,
+0x095eec86f,
+0x016fa16f5,
+0x04b21a78a,
+0x09855ca47,
+0x01bf92546,
+0x030bc2bd7,
+0x026891d0f,
+0x0368ccf98,
+0x0a6577f74,
+0x09e9ffeeb,
+0x05aca3e64,
+0x02d77ef92,
+0x05a782407,
+0x07864020b,
+0x01629913f,
+0x01b61de31,
+0x0bf621ba1,
+0x066660645,
+0x0fc0be267,
+0x0a7c1f2d2,
+0x080777ef1,
+0x0f9637b1c,
+0x067c9475a,
+0x0403e38a4,
+0x034c679b7,
+0x08cdfa3b5,
+0x0577fc140,
+0x0a6752b11,
+0x01563a184,
+0x04f37882d,
+0x02a9a6cae,
+0x0d9ab298a,
+0x008d9a7a4,
+0x0baca9f36,
+0x040cd7823,
+0x05ed52ffd,
+0x0b752c6aa,
+0x01ee73415,
+0x09bc7c399,
+0x0144a6305,
+0x0850698e8,
+0x0b4d3eca3,
+0x0daa3f80d,
+0x050937400,
+0x0e6b29d0d,
+0x0cddf2df0,
+0x0686efb87,
+0x07ebfd73b,
+0x0ac11e56a,
+0x0a0493435,
+0x04bdf48d1,
+0x03d898115,
+0x03717b80d,
+0x0bcbd2a77,
+0x0e4732839,
+0x0b5211c79,
+0x000b02fc6,
+0x0b2716cb6,
+0x08139b5bd,
+0x0ee4ccab7,
+0x0ff99969c,
+0x00e221ef9,
+0x08217f65a,
+0x010dcd816,
+0x05d072344,
+0x071debdff,
+0x06ba1cdc9,
+0x04f9a5826,
+0x078b02e15,
+0x0ce3814b5,
+0x0cb4fc728,
+0x02d3d25c8,
+0x0fb23c2ab,
+0x0ec528451,
+0x0fa520852,
+0x0b56d8a9f,
+0x04895a4ab,
+0x01639776e,
+0x0f4e79a05,
+0x0b6bf8737,
+0x0e56eec67,
+0x04ef012af,
+0x0d0c3fc7d,
+0x0440d876f,
+0x071bf55b6,
+0x03e5ae0fa,
+0x0760f800d,
+0x0dcea531d,
+0x0a57289b9,
+0x0e8e5cfec,
+0x0df7cd464,
+0x0a974bb9a,
+0x03f955608,
+0x0a1b49162,
+0x0fdde69b6,
+0x0c75e92af,
+0x0e3b5cc42,
+0x01ac36e47,
+0x07d1894a4,
+0x0adccaefd,
+0x0ae14cd0b,
+0x090f9d25b,
+0x0049138ee,
+0x0659612c9,
+0x044405fe9,
+0x0957ab0fa,
+0x0e9e2f6b1,
+0x01806b633,
+0x04fff0e5a,
+0x05d20accc,
+0x00f06bf39,
+0x0e8cef970,
+0x051af3653,
+0x0ed24eb87,
+0x0aa579692,
+0x084512891,
+0x02a75d1c6,
+0x01413648b,
+0x031842f0d,
+0x0962453cf,
+0x02354fb5a,
+0x001f36019,
+0x0a28383b1,
+0x00e2c13d2,
+0x0fb1cae19,
+0x0dcad1f25,
+0x08c952af5,
+0x0cc13b91c,
+0x0ce8d4f30,
+0x026ffe5d1,
+0x0fd8ac322,
+0x0384cca6d,
+0x0c595b28d,
+0x04a11c9f4,
+0x041cc257f,
+0x0ffe7543f,
+0x0b798cd02,
+0x0029604f6,
+0x045e34bb7,
+0x0bf0776af,
+0x03a8e8f71,
+0x037ca1dff,
+0x0b4b41263,
+0x0d7422640,
+0x0788ab72e,
+0x0379338ef,
+0x02396e6ab,
+0x09f249b6c,
+0x0aaea75aa,
+0x03a1eece5,
+0x0448ea5d4,
+0x0f75974f7,
+0x0711d2a5d,
+0x0d5ccb220,
+0x0d5968ca7,
+0x0508c1a2f,
+0x0d3b45655,
+0x04ee3b71a,
+0x045adbb72,
+0x0f016f935,
+0x0ffa6e3f9,
+0x0fcd95316,
+0x0422f67f2,
+0x0f2ce0b4c,
+0x0c532c835,
+0x06eaa3b51,
+0x0e2f1b887,
+0x043b1d79f,
+0x0b029f65d,
+0x0b5ec797e,
+0x04c9bd067,
+0x0fdcd8d32,
+0x01da01c6d,
+0x025447856,
+0x0135f76ef,
+0x065ceeb82,
+0x0bef99e87,
+0x0698e0e7d,
+0x0214ea490,
+0x0095b6e72,
+0x0f6b0a5b6,
+0x0b91bcb37,
+0x0272c2226,
+0x04a26ea44,
+0x09729b712,
+0x09f7e10ba,
+0x049004661,
+0x08c0264f8,
+0x074038353,
+0x0be05359e,
+0x0d46b468e,
+0x09978255c,
+0x0f1bda06c,
+0x0a8c61b1f,
+0x02f51e308,
+0x07e2a8563,
+0x02971ed94,
+0x0eb2a9287,
+0x04c2b773a,
+0x06a3b2d01,
+0x0fa4708d4,
+0x0cd9a54ff,
+0x07935518a,
+0x0d64d83c8,
+0x07c1340f0,
+0x083f27b74,
+0x0a4dee594,
+0x07d170e72,
+0x0f24657d1,
+0x009994788,
+0x09b14bcce,
+0x08bdf72f3,
+0x03a664536,
+0x081580eaf,
+0x0a9aee1ab,
+0x039268d2f,
+0x0f2d9a53b,
+0x0de46e3b6,
+0x0b3b89530,
+0x08f28a5b8,
+0x0ce17eab7,
+0x0f37ceb60,
+0x0dabeb2b1,
+0x0fb0f67fb,
+0x03125cdd3,
+0x07064f93f,
+0x0c11e2348,
+0x0d4f4694a,
+0x02bcd3e49,
+0x0753daa66,
+0x0eef0df57,
+0x0d8fb00bd,
+0x08ec8f8b1,
+0x020a2e84e,
+0x0b688387a,
+0x0b2434fbf,
+0x081ad1ebb,
+0x0148165c0,
+0x0596e5756,
+0x01e3acc08,
+0x05936d07f,
+0x0fe72e589,
+0x0e5fc7882,
+0x06827b9b6,
+0x0e1e0ac33,
+0x0f496e669,
+0x002ab7d7e,
+0x0325c2e8b,
+0x00c2e0a90,
+0x02c78a79f,
+0x0f162d44b,
+0x094f10d7d,
+0x0bff5db6d,
+0x02eb5aa7a,
+0x0ebb43bcb,
+0x0f192f50b,
+0x047f44772,
+0x0e772c676,
+0x00864172d,
+0x008774f1a,
+0x0995fd6e5,
+0x0ebc91600,
+0x005119427,
+0x0849c58a2,
+0x00ba0f0b4,
+0x081fc7f3c,
+0x0087000d6,
+0x02cb94183,
+0x0649ce1da,
+0x096e22c75,
+0x01e596bb2,
+0x0ef86788a,
+0x0ff63d7d3,
+0x05d44056c,
+0x0bb64bbde,
+0x037e97c33,
+0x0029d84c9,
+0x037b90730,
+0x0a5d59c32,
+0x0d407d714,
+0x0e9090c9f,
+0x04b21a508,
+0x0cc9c5cdf,
+0x05248e2a2,
+0x08477970b,
+0x04c65c823,
+0x02c7da831,
+0x0677d6545,
+0x046e1e158,
+0x0f5735c0e,
+0x09c9def8d,
+0x0d22d0a65,
+0x052cc4a5b,
+0x09e02b7ad,
+0x0405ef256,
+0x09ce90c70,
+0x005f32385,
+0x0bcd1cab9,
+0x015847d6e,
+0x0a284d987,
+0x03bcad855,
+0x0b86e6e09,
+0x0e850b170,
+0x0da79c14e,
+0x01b9c0162,
+0x04ed342a0,
+0x0a5db6a72,
+0x03d135bcd,
+0x04a33654f,
+0x03a5d7e3e,
+0x0fc7d8831,
+0x09055b641,
+0x044c3a147,
+0x0b629d9be,
+0x078ba8072,
+0x0c606f583,
+0x02c966473,
+0x06b9c719f,
+0x025bef16f,
+0x058bb05c4,
+0x02b36e718,
+0x044761e24,
+0x00a4d7f22,
+0x0eaae5587,
+0x02759b7b8,
+0x09f789931,
+0x0492aa4df,
+0x0b915ee5a,
+0x05d1fc87f,
+0x08bd1c40e,
+0x0e8ef18c5,
+0x0553c6718,
+0x0ff091ca4,
+0x0bf04b02a,
+0x0bd367ef3,
+0x0003c3c92,
+0x08ac16a1c,
+0x0a96501dd,
+0x063285c95,
+0x01446537a,
+0x038d1c3bf,
+0x04629f5e9,
+0x0236e1d55,
+0x0d4e8a73d,
+0x05a812c3f,
+0x094e72f54,
+0x033183347,
+0x03a8db9a6,
+0x05090a79f,
+0x08d8785ca,
+0x027994fb7,
+0x094a7aa99,
+0x0f47adcbc,
+0x0a387ffcd,
+0x0bb7ad45d,
+0x0e6dc3976,
+0x0ac997499,
+0x072325978,
+0x07b19d9e1,
+0x079f7070e,
+0x025a2dc04,
+0x04f65d227,
+0x08c65b90e,
+0x0f60b5717,
+0x01a8c09aa,
+0x01213a9ad,
+0x0d18dbc01,
+0x00417af31,
+0x07886f7f9,
+0x0bfe936a6,
+0x0b005cc53,
+0x00aedd367,
+0x04f445026,
+0x0473261ad,
+0x0e725453c,
+0x0fc853072,
+0x0eda2517e,
+0x0aa07c3dc,
+0x0b6c49d45,
+0x0b9281a84,
+0x08e96e6c9,
+0x004ea3569,
+0x08be99996,
+0x0ddb9cdf0,
+0x06f1b85fe,
+0x09de20941,
+0x0f0dd6aa4,
+0x07510994c,
+0x025d251fb,
+0x08d5e01bd,
+0x08edafaf0,
+0x0823947b5,
+0x024380630,
+0x0efe3248b,
+0x02bb21f60,
+0x0d4300c32,
+0x03fcbd0cc,
+0x089e86d66,
+0x0c2238f4e,
+0x092986446,
+0x0fbcdb466,
+0x0fe25118f,
+0x08449946c,
+0x09dc1d9cc,
+0x03e195f93,
+0x09bd2fc17,
+0x0ddc0fbc3,
+0x050b79946,
+0x0bcc6f6e6,
+0x0a75fda1c,
+0x02d4e6214,
+0x04384e541,
+0x0795a515a,
+0x0a0e9edb8,
+0x0b3fe2e58,
+0x023eae84f,
+0x0beab0a7f,
+0x0834a5518,
+0x065fdf406,
+0x0d99602aa,
+0x06098c0f3,
+0x0178353d1,
+0x0ae55ac36,
+0x07f7d84b9,
+0x00f932358,
+0x0e2c6c03e,
+0x011b94099,
+0x07cc1a005,
+0x03e0106ab,
+0x08e63e3ff,
+0x0e663861b,
+0x0c7603bd6,
+0x09d29215c,
+0x0590ed27f,
+0x041db3bc9,
+0x08fabb3d0,
+0x0ded14819,
+0x09440d548,
+0x0614e7556,
+0x0ce166604,
+0x0fc72b91f,
+0x0a97c4a51,
+0x0ef4aaaee,
+0x05b9768c9,
+0x02cc5997d,
+0x05e0288bd,
+0x0d2580236,
+0x04e3c9bf9,
+0x05b040a0c,
+0x0a5752ed1,
+0x0a4676a03,
+0x01c9a6141,
+0x0cf837546,
+0x0add00d14,
+0x062eb9b59,
+0x0301c9b24,
+0x0c6bbb256,
+0x085025396,
+0x0c5b9b2e2,
+0x038c8f5ff,
+0x07266961b,
+0x049507b9d,
+0x020771c12,
+0x093a2436e,
+0x0b1df06da,
+0x0220fde8a,
+0x003e2bc54,
+0x070d0def8,
+0x010c168b0,
+0x0a0edf0ce,
+0x088121901,
+0x01ec45568,
+0x0cfa8d7d6,
+0x00c82041f,
+0x0e881bf9b,
+0x07bd74902,
+0x0a5cbee07,
+0x08765916c,
+0x0e60d0478,
+0x03af446b2,
+0x08387edc2,
+0x0329c0870,
+0x0e71ee997,
+0x0f6b77f59,
+0x07619b419,
+0x07b9a2e6b,
+0x0d3be2789,
+0x0d8209288,
+0x0ea19d678,
+0x0abca5390,
+0x0b6a62c8f,
+0x05870efa4,
+0x094847c3a,
+0x012a97027,
+0x029adc3b5,
+0x0dcbf5a89,
+0x0a2b3bbdc,
+0x0671435b8,
+0x05c8c6d5f,
+0x044081e41,
+0x082586bbc,
+0x0888747b8,
+0x028a5da97,
+0x01629f2c4,
+0x0705cec52,
+0x0ab8d97cc,
+0x0050f2f8e,
+0x0f4497dfd,
+0x0f37f01b4,
+0x070d265d7,
+0x05789c750,
+0x04208e303,
+0x08c18269e,
+0x0fc9c1005,
+0x0f3332b83,
+0x099acdd12,
+0x0d935a329,
+0x0615eef1f,
+0x0a46808bc,
+0x053fbd7c1,
+0x018d3a1ee,
+0x04819aeac,
+0x02d7e6fa6,
+0x0dfc49ed2,
+0x0f8f61c10,
+0x0caa3179b,
+0x01175b294,
+0x0a093fe91,
+0x0a9d96d72,
+0x0ab4833e2,
+0x0453f352b,
+0x0eb234703,
+0x0a4eaf3de,
+0x0d440a743,
+0x020d4bd58,
+0x0d684ada1,
+0x01f88d122,
+0x09fb85aa5,
+0x02e560186,
+0x0b85cde4d,
+0x00fdde376,
+0x02102028e,
+0x0b79687a5,
+0x073c171f2,
+0x07b6cf2fa,
+0x0f2ce7296,
+0x0557aca8e,
+0x0b5e378d0,
+0x0d917e385,
+0x07941d2b3,
+0x00b57d25f,
+0x0e418721b,
+0x0e7e75dae,
+0x029a51336,
+0x050cd9911,
+0x0cc11b3d5,
+0x03575738b,
+0x04efdefef,
+0x08815b748,
+0x048e5701e,
+0x0befb3088,
+0x0b1df011f,
+0x0a25f2004,
+0x0b8b2dceb,
+0x0bd8c36a7,
+0x0bb455d90,
+0x051cc0d18,
+0x082afea8e,
+0x0eceb0e77,
+0x0820b9ee4,
+0x0b1e5eb36,
+0x066f3460d,
+0x0ff35c96c,
+0x0abef2ef8,
+0x008002865,
+0x086983368,
+0x0e1a54777,
+0x03659947d,
+0x0b998e19c,
+0x039b8ec18,
+0x00c029f88,
+0x08c137265,
+0x02d4319fb,
+0x0b3c665d2,
+0x0c9d4b09f,
+0x057e1bd27,
+0x01e4793ec,
+0x0b75f3aa5,
+0x0fd09cd3a,
+0x0579ed7f8,
+0x0920675ba,
+0x0389437d6,
+0x02e6ee773,
+0x038763b48,
+0x08eca3b56,
+0x07de9d8db,
+0x0085b0d08,
+0x0d4b19ffb,
+0x0a71baf5f,
+0x0d3f45366,
+0x08e7a49ac,
+0x007d35d40,
+0x0adda49ee,
+0x0aaee932c,
+0x0faef0e58,
+0x03a7c0e79,
+0x00bca447c,
+0x0dfbf63f4,
+0x0150b5bee,
+0x0413dbb7f,
+0x01b1bcd4d,
+0x047d690b6,
+0x01df8bef4,
+0x00795853a,
+0x00550df11,
+0x066abf45e,
+0x059fa97c0,
+0x00a312492,
+0x04f87391f,
+0x08975065a,
+0x0534fa497,
+0x06b63a021,
+0x029aa1066,
+0x060e23c4a,
+0x0a7f0d89b,
+0x0b90fcf6d,
+0x0d5d39809,
+0x0c0e9dfd1,
+0x0e3bc9df1,
+0x062829cdd,
+0x063278cce,
+0x0fd58848c,
+0x0d2b08436,
+0x0dadd96ea,
+0x0ed4f5d37,
+0x0a2e85dc2,
+0x070d291ec,
+0x0c84ea23c,
+0x01384f584,
+0x0102141e6,
+0x08b6664d1,
+0x04bcc9a42,
+0x0ee11f7a9,
+0x0097ad1d2,
+0x0ae7a0498,
+0x0c7c8a11c,
+0x0bb436d45,
+0x08b5411e5,
+0x045cfe65c,
+0x0736868e9,
+0x0939b1df1,
+0x0ac3ffce5,
+0x089442521,
+0x00736fb86,
+0x0d0fb22d1,
+0x0bd9ae5b6,
+0x097919729,
+0x05dd35703,
+0x0151d3174,
+0x06a64bc41,
+0x02adc832c,
+0x0e8be6c33,
+0x0bc3b091c,
+0x07891cf45,
+0x03461556c,
+0x0d0cec8ce,
+0x01ac043bd,
+0x02e2c2c3a,
+0x0e686572f,
+0x0e7911340,
+0x0a7d9fb2b,
+0x0a9abdba7,
+0x0674da9e9,
+0x0283aedda,
+0x0d4a85d5c,
+0x031b6244f,
+0x0d2a9d97a,
+0x0e240e651,
+0x0d788cf89,
+0x0a672e920,
+0x022711017,
+0x03be87af0,
+0x08afa1c6c,
+0x0a1283702,
+0x0b8561956,
+0x0fe1b5805,
+0x0c3d0caaf,
+0x056d16011,
+0x0f540d24e,
+0x022c0accb,
+0x06a6d7a94,
+0x0596d7d0c,
+0x0266892ba,
+0x0554b86c4,
+0x0ce706b0d,
+0x02945887f,
+0x07cdd2ba4,
+0x0cf9403a0,
+0x09797cf37,
+0x0572916b3,
+0x0377cb1d3,
+0x0a5418938,
+0x0ae3a81d2,
+0x0cab1b51a,
+0x0365f8e59,
+0x00af0ead9,
+0x0e3a8e44e,
+0x023935aef,
+0x0472aa028,
+0x0e563ff5b,
+0x0a517cb98,
+0x03f5512a6,
+0x037f384d8,
+0x03ac4ab5a,
+0x0175f94b2,
+0x0f90e5af2,
+0x02747b7f4,
+0x03d94abdc,
+0x0617eac7f,
+0x09782b9ba,
+0x099865421,
+0x0c2fcbefd,
+0x089835bf6,
+0x065319688,
+0x0d308f2b6,
+0x0e5153c4d,
+0x03d343a8e,
+0x042d0eaba,
+0x09bdee04b,
+0x05593a175,
+0x0c7d34e64,
+0x0d087c12b,
+0x067fccebe,
+0x0b9b22726,
+0x06fca01ed,
+0x062d9f6b7,
+0x09bba00f2,
+0x06d4b023b,
+0x01bb7c88d,
+0x0dc644d9b,
+0x028c2335a,
+0x0f4457a56,
+0x0dafe17ca,
+0x0d59392f0,
+0x0cf530fe5,
+0x0ce8604e5,
+0x0a169b8bc,
+0x0d9d02040,
+0x0771f620f,
+0x0139ec980,
+0x0a4248740,
+0x0849551f8,
+0x0731292df,
+0x093714f7b,
+0x0d3fa68e4,
+0x06bf069ea,
+0x0f1cfbaa9,
+0x0ea132022,
+0x0a116eff2,
+0x0c133d169,
+0x0cc206b7c,
+0x0717e4f61,
+0x05872efcd,
+0x009facadc,
+0x06a08b735,
+0x0007c492d,
+0x05ec9b776,
+0x04459010d,
+0x007729924,
+0x087bc613d,
+0x0bc10886a,
+0x0274693c7,
+0x0200c2c6a,
+0x0de70c7c6,
+0x06bf33c9b,
+0x0bff97dfe,
+0x01958dbc5,
+0x0958d198f,
+0x0f1e8a222,
+0x0f870d120,
+0x040a9c32e,
+0x073203d5b,
+0x049fc2373,
+0x0292e60aa,
+0x0a83dc2b3,
+0x0373999c5,
+0x05d5b2df7,
+0x095910da9,
+0x000e9c76e,
+0x04547130c,
+0x0d4a2ecbf,
+0x03b2cedd3,
+0x08c143747,
+0x08b8bf54d,
+0x0b6838764,
+0x0a737cc3a,
+0x03cbe6464,
+0x0c141fdb1,
+0x0cca3695b,
+0x0eb5e837b,
+0x06a052921,
+0x0dbccede3,
+0x022ce1071,
+0x047e3bf83,
+0x0a1800cd3,
+0x09ee00e03,
+0x08cba816b,
+0x016524e69,
+0x0dce86fa3,
+0x0769a67aa,
+0x03dca4bf1,
+0x07d891f4e,
+0x0aa79ab07,
+0x03f531a46,
+0x0bdc89dff,
+0x0ce7d6870,
+0x01bd8cd4f,
+0x05a6d5d54,
+0x05f63fdfb,
+0x00db79827,
+0x09b90e1a6,
+0x0c1e534b3,
+0x01e498782,
+0x0b4070c46,
+0x0a86fc014,
+0x07c15e53c,
+0x00eff6667,
+0x080d50ede,
+0x0f189c46f,
+0x012833de3,
+0x04d4b95fc,
+0x06f90eac9,
+0x0f4f957f9,
+0x0ec322dad,
+0x0057a32cf,
+0x0b0fc898a,
+0x0c9d7f862,
+0x050392ff6,
+0x0bd79fbda,
+0x013f7fb6b,
+0x06aaabdd4,
+0x0c33fe436,
+0x0c88905e4,
+0x087f458e9,
+0x0cef99773,
+0x0ed104fe8,
+0x0ffce9a42,
+0x036191607,
+0x0274c0ef5,
+0x0e90ec69c,
+0x0c877c54e,
+0x0c6329202,
+0x03f6cca3a,
+0x07756e7fc,
+0x0ba965b3f,
+0x0174f53e6,
+0x0cf29325f,
+0x0a1cfc3d7,
+0x0df6f3c1b,
+0x01a6ae902,
+0x0c5f9a7b0,
+0x05c57f158,
+0x068b99cee,
+0x03aaec50a,
+0x0534b68e0,
+0x087553109,
+0x03abd7cef,
+0x0aa1726f8,
+0x071bab01a,
+0x0d197197d,
+0x0ec6b59b6,
+0x045228269,
+0x004642329,
+0x09cb53c11,
+0x0cbada70a,
+0x07d0bd414,
+0x0aab8f38a,
+0x043849255,
+0x0c0513dfa,
+0x086a73872,
+0x020372b8d,
+0x043a9f871,
+0x001eaee76,
+0x09714bb56,
+0x08c905fef,
+0x0596efe7e,
+0x080bfc9d7,
+0x0d3cf9620,
+0x0daec6987,
+0x0ec5987dc,
+0x0daf0f14b,
+0x0ade5de61,
+0x0e6c400c4,
+0x0e4fe8267,
+0x076f527d5,
+0x0076a500d,
+0x0e822b9ba,
+0x0358b513d,
+0x0dc7090d3,
+0x059dd01c5,
+0x042ffd60b,
+0x0a355033e,
+0x0541dfe21,
+0x0e76c35a7,
+0x0e315c9da,
+0x08b41841f,
+0x0569b306e,
+0x0915a11fb,
+0x062999d6d,
+0x0440898b6,
+0x09a4333b9,
+0x04b090761,
+0x01cabe711,
+0x0e7c73c9a,
+0x086fae33d,
+0x041c38471,
+0x06e1ad5e2,
+0x0a6adda55,
+0x04588fa22,
+0x0606c8434,
+0x059a01a5c,
+0x04e167814,
+0x0f615d33a,
+0x008c3937e,
+0x0eb0aeceb,
+0x0953117eb,
+0x055d66265,
+0x018a4c60a,
+0x0c6bb7c0f,
+0x0bcde6834,
+0x05635bfdb,
+0x0fa34dab6,
+0x0f20e0a01,
+0x05a88d07b,
+0x0561d503f,
+0x01fb5fd75,
+0x0d9b6123d,
+0x0788b973a,
+0x09270c167,
+0x006ffa311,
+0x0ae67782d,
+0x0996391fa,
+0x0105bf236,
+0x0c362032d,
+0x01b496335,
+0x03368b034,
+0x0c91ad18a,
+0x072ee875f,
+0x0d1e075da,
+0x0594549c7,
+0x091e8ce74,
+0x050510083,
+0x0be95f446,
+0x09efed3b5,
+0x0af3f7ca4,
+0x00420c8c7,
+0x04433207e,
+0x09bf88bd0,
+0x0909513ed,
+0x06641ff6c,
+0x0522a84af,
+0x0319b0b10,
+0x0365a1827,
+0x026c0d8d4,
+0x043d39dba,
+0x09e2c0624,
+0x0c76c10e9,
+0x09e054db7,
+0x079a95fde,
+0x0faee8955,
+0x0509b9ce5,
+0x00a460a16,
+0x0a8a7293a,
+0x062e5afc1,
+0x0e55658c0,
+0x0be79bfd0,
+0x00e000940,
+0x08e3224c1,
+0x02c22d942,
+0x014325f09,
+0x02422b3b1,
+0x05f35deba,
+0x076e06bb4,
+0x0e63f06cd,
+0x0e5987660,
+0x03a30dde9,
+0x0627b5782,
+0x0c9e7e953,
+0x01019537c,
+0x0be07df22,
+0x0ed9498b0,
+0x0d81a065c,
+0x0398c954f,
+0x0362f5ec5,
+0x006d80260,
+0x0611eca01,
+0x010849659,
+0x0ef4063c2,
+0x0b04d4468,
+0x05e7e87e6,
+0x03c263c6a,
+0x08a2cf204,
+0x0edab6793,
+0x081391588,
+0x00ecf4ddd,
+0x006d12d98,
+0x049ea395c,
+0x0615ed428,
+0x0da7fb76b,
+0x04dbec572,
+0x0b03a9bc9,
+0x0c3bdc0df,
+0x009d0c6df,
+0x0f002a3f9,
+0x024122eb7,
+0x00db94ba5,
+0x08893adde,
+0x0a9b50be8,
+0x029b757e6,
+0x0a692ad36,
+0x0282270ff,
+0x06b0d8936,
+0x07c82e775,
+0x0b609e552,
+0x03bf6677e,
+0x03a23e488,
+0x05746135d,
+0x0907b99fd,
+0x0cdf8d6bc,
+0x05b742bbf,
+0x08fa17428,
+0x08ff3039b,
+0x0278eef4f,
+0x01732f668,
+0x0cf30c226,
+0x0bdf9457a,
+0x0cba7df92,
+0x0548c5c4c,
+0x091a2dbdc,
+0x035698ad2,
+0x00ccec9c2,
+0x0f48f525f,
+0x0b8f8929d,
+0x079a75ab8,
+0x0d63b3881,
+0x0a7296ecb,
+0x01568dae6,
+0x0ae698061,
+0x0ee94b5a1,
+0x0f2fecdcf,
+0x04745e5d1,
+0x0350c2e6a,
+0x071b880d6,
+0x0eee6a136,
+0x01d0ad7b7,
+0x0680d1485,
+0x0dae0ec44,
+0x06e5b370e,
+0x00031cece,
+0x01a43a9aa,
+0x01e1adfd7,
+0x0fe4bba80,
+0x00c83f3d3,
+0x03b4ea496,
+0x0c4a476de,
+0x0632d7ddf,
+0x062923699,
+0x06f281a74,
+0x004f1d8e6,
+0x09c068ba9,
+0x08cac6d00,
+0x086332ed6,
+0x058bc5fe1,
+0x062c2d238,
+0x0b09a0714,
+0x0349c6cdb,
+0x0291d79ce,
+0x068d1d3fc,
+0x053421a8e,
+0x0f8b29b5f,
+0x0886459ef,
+0x0bc9be1c0,
+0x07c971ae9,
+0x033b4b449,
+0x0ef0dfe0a,
+0x076540885,
+0x08f104a80,
+0x0610c7d03,
+0x0284dcb3e,
+0x04cb62ab9,
+0x037f37853,
+0x04a7072a7,
+0x0ccc3303b,
+0x091ee67b8,
+0x041a3fe19,
+0x07cd01408,
+0x04ac27a7b,
+0x0da499c9a,
+0x0fdda0bbc,
+0x03837a891,
+0x0a53e5437,
+0x0e197a6e0,
+0x0078b0a8d,
+0x0a5340a36,
+0x061f390c2,
+0x04d2e4c09,
+0x01b504e57,
+0x0f9dae747,
+0x0e7c74514,
+0x02e74cceb,
+0x0b7029f8c,
+0x0e7bc50f9,
+0x0d3f4c2cc,
+0x0c9590c3c,
+0x08e44abab,
+0x0745293fb,
+0x04cf40653,
+0x0d351a4d0,
+0x04e0fb246,
+0x03621f248,
+0x07664e9af,
+0x0b41bc5e1,
+0x0aa8a079f,
+0x03876d188,
+0x0a509f2d5,
+0x08b4a9b0b,
+0x048924179,
+0x058da0b36,
+0x03866f290,
+0x05a11f7c6,
+0x0b6607cb9,
+0x012430480,
+0x05a1b4c2d,
+0x0269c620a,
+0x058cd0768,
+0x01a36e7d8,
+0x0d126d6a0,
+0x0813ba4a7,
+0x0ead7e629,
+0x0ad55ba65,
+0x018352166,
+0x0b907d3cc,
+0x0f2bae794,
+0x0870d8d6d,
+0x03646c42d,
+0x05af9cb80,
+0x090950f4e,
+0x082658238,
+0x0a0f06725,
+0x04ea4d88b,
+0x090a6eeb3,
+0x0c25ebf1d,
+0x0cfa57865,
+0x0921eed26,
+0x07156984b,
+0x039d67b96,
+0x0aa57b64a,
+0x0ed27eb12,
+0x07946b0d8,
+0x026b08d66,
+0x019cc8b7f,
+0x0b64f1bc7,
+0x05172e68c,
+0x0dab3a547,
+0x0381e0547,
+0x02f0bc08c,
+0x043d8e76a,
+0x0afd02e0c,
+0x0d7b48ec7,
+0x00e47f9a1,
+0x0397a5b34,
+0x09b7286ae,
+0x036199337,
+0x0fc9d5ccb,
+0x09abb39ba,
+0x0e586b143,
+0x0977da17d,
+0x0703f5ba3,
+0x090deabc4,
+0x0b0cf5773,
+0x0f71bad78,
+0x030384138,
+0x0b363cc9e,
+0x051211c45,
+0x00731aa4e,
+0x0911712e7,
+0x00ffe8067,
+0x039d36ffb,
+0x00b9b547f,
+0x08f8c8097,
+0x0ca76e0be,
+0x04005a33d,
+0x0a59b9fa3,
+0x014c37006,
+0x04f606d7b,
+0x0a5c28ecc,
+0x0c29ca1aa,
+0x0cae4682e,
+0x079c243c3,
+0x0448c805a,
+0x004fca925,
+0x05efbf8d9,
+0x05117a2ff,
+0x001826bcf,
+0x03bc89cd9,
+0x0ca82e6ae,
+0x0768ad2cb,
+0x09e44e690,
+0x0716ec17a,
+0x0459efed8,
+0x0fdbc215e,
+0x0c00f0304,
+0x0c5f556e7,
+0x05e4fdc5e,
+0x0b6faad27,
+0x028414cad,
+0x0c0c8c0d4,
+0x05abe1e78,
+0x0fe753a46,
+0x056502057,
+0x0937c7a2a,
+0x0414a881a,
+0x0243ee5b2,
+0x0e1ba8782,
+0x081942ceb,
+0x0652b7b27,
+0x0e8e27207,
+0x0cc368142,
+0x05935443a,
+0x0c3b61797,
+0x027fad2bd,
+0x072755244,
+0x0ea72e00d,
+0x0a89bf0a2,
+0x0319d5584,
+0x02cbf5da0,
+0x0e78f225a,
+0x054740049,
+0x0fc4ece4b,
+0x0a733f174,
+0x07cf66768,
+0x019b4175d,
+0x0726e7b49,
+0x00e156dc6,
+0x02fd8c03c,
+0x00c333296,
+0x0ea6d9fc5,
+0x00962e5ab,
+0x0092168d0,
+0x0770da787,
+0x0b51ff6ba,
+0x0005f9c6e,
+0x04d54dcbf,
+0x020123459,
+0x07a009b26,
+0x019e9a47d,
+0x0e46a6409,
+0x0ecb5f6ec,
+0x0e55d8791,
+0x06192e606,
+0x05e081885,
+0x039923d37,
+0x01bc37c81,
+0x0798bf0e9,
+0x0dd097fb0,
+0x045463549,
+0x07979cbcb,
+0x0a365a479,
+0x0abf93d4f,
+0x0b678480b,
+0x0235ca428,
+0x003f8d6c5,
+0x0fa60fb3e,
+0x061501749,
+0x0ec9c20f3,
+0x03e91dd20,
+0x02d195fac,
+0x093ba26da,
+0x00795ef95,
+0x07d004074,
+0x01fb2179f,
+0x033a20f39,
+0x01930b031,
+0x0700724eb,
+0x0f1ce3d10,
+0x0bef18f06,
+0x0834d058a,
+0x057495652,
+0x05698c783,
+0x0171e3d94,
+0x0da258033,
+0x0646ab70d,
+0x08847e1f8,
+0x0c20d9be2,
+0x09f210e97,
+0x025052408,
+0x049480903,
+0x01a1fa4fd,
+0x091636b69,
+0x08abf2f5f,
+0x08544c55f,
+0x0f0f57d2b,
+0x0ddc01314,
+0x0dbfd2422,
+0x02c3139f9,
+0x0646f7b05,
+0x089e16c00,
+0x0cbe8b391,
+0x0bd38281c,
+0x0aab9f12b,
+0x0ab652503,
+0x01e6f983a,
+0x058f260d9,
+0x058664e12,
+0x0309a22d6,
+0x038a45b9e,
+0x007a86311,
+0x0e3b6681d,
+0x0755f7161,
+0x0a3100737,
+0x01e16fa8c,
+0x0bfdf8dd2,
+0x0aca734ba,
+0x0862dac42,
+0x058d4d1b4,
+0x0d8537ab4,
+0x0db037ebd,
+0x0a8eba846,
+0x074fe15d1,
+0x0e4dcb475,
+0x0371281de,
+0x07c6de27f,
+0x0822750c6,
+0x09a40bed1,
+0x0e63c8a62,
+0x0b175be6a,
+0x0824151e8,
+0x03292c6ce,
+0x069f45a87,
+0x06990f25d,
+0x00e46a987,
+0x040333963,
+0x0132ab223,
+0x05eb568e0,
+0x0d598d126,
+0x06f21ef9b,
+0x0aaf3d615,
+0x062fbf5e4,
+0x0aea4fe59,
+0x0ee82b8ce,
+0x084460f5d,
+0x057ede139,
+0x062f495e6,
+0x0990a9253,
+0x07def180b,
+0x0c162d524,
+0x0eb677abb,
+0x0559256d6,
+0x0122e0c2d,
+0x03c1f2c28,
+0x06077bf51,
+0x06e3bdc6e,
+0x0e8d94426,
+0x069e214d8,
+0x028c15f57,
+0x05cfe2d34,
+0x02d4f59ea,
+0x0d5311e66,
+0x032cc13ed,
+0x0242c47fe,
+0x0ab260ca4,
+0x07974ae35,
+0x09e015cb0,
+0x097880f98,
+0x028590c03,
+0x015c55276,
+0x0d1559147,
+0x012a06120,
+0x0f9e3a5de,
+0x095fe2b7f,
+0x03e32793d,
+0x0b964723a,
+0x0a360505d,
+0x0369e3cd4,
+0x066c5d5e6,
+0x0863c2b44,
+0x088d3106b,
+0x0c5f1c826,
+0x003d9005f,
+0x08ce9aac5,
+0x008d606ee,
+0x064764803,
+0x05ca0e738,
+0x0f912aafc,
+0x0e8ca3c1f,
+0x05914487e,
+0x0a61f663b,
+0x0c045ac69,
+0x044f76ff7,
+0x04bcfe25a,
+0x069e075aa,
+0x0baef5082,
+0x0f87029eb,
+0x0e66bea06,
+0x0df7f9a43,
+0x007821e1f,
+0x08c2314a7,
+0x0b8bcb1d7,
+0x054f67465,
+0x0155e6a4a,
+0x044faf31c,
+0x0c778fbb5,
+0x01485425e,
+0x07e772bce,
+0x07438ec75,
+0x08fe6bcac,
+0x048f1ab2e,
+0x0af3d47cc,
+0x0476c1b37,
+0x026d0b5aa,
+0x07814f67a,
+0x0f702daf6,
+0x02b559a4f,
+0x03eb07d45,
+0x07de3857a,
+0x0addf5503,
+0x0ecba76fe,
+0x03c8a1018,
+0x0265b9252,
+0x00ef00984,
+0x03d467633,
+0x0cc96e48f,
+0x0ded2b019,
+0x099c3293b,
+0x04a30c717,
+0x08adb6903,
+0x085c48d82,
+0x049a2dd67,
+0x07cb2914b,
+0x09a9033f7,
+0x0e472d2b8,
+0x0511ea3df,
+0x072044f0e,
+0x0efe969c4,
+0x021207790,
+0x001703d17,
+0x046dc1534,
+0x0a245c87f,
+0x0c05df1dc,
+0x0e3fc20d4,
+0x06eed9e80,
+0x09fd0479a,
+0x0a3773184,
+0x0425fe121,
+0x046c8e111,
+0x0098a47dd,
+0x0b269e2d3,
+0x080faccc3,
+0x0d7c1eceb,
+0x0995e8703,
+0x023f35ed6,
+0x04e2eacab,
+0x09d637c84,
+0x01fb3686f,
+0x08df0855e,
+0x00e6c22e2,
+0x0cdc5fcc7,
+0x092fcaf71,
+0x0c096fb9e,
+0x0120bf80c,
+0x013c7595a,
+0x0dd7df268,
+0x0e14793a7,
+0x0d71107ca,
+0x0cccc0936,
+0x033bc08eb,
+0x0e0cf4660,
+0x02efa53ff,
+0x078b8d160,
+0x0bfc40591,
+0x0098b8c6c,
+0x07fe7149d,
+0x0a3b3afc9,
+0x04c89ea75,
+0x0545c3d8a,
+0x0ec8c6c90,
+0x01aa02e6f,
+0x087e9c744,
+0x0228f65be,
+0x060858fe3,
+0x0a1f691f9,
+0x08a04bba0,
+0x0332e3e0a,
+0x06715f3c1,
+0x0d5d909ec,
+0x06bf2fb5e,
+0x0b80abb9e,
+0x08e481abc,
+0x011fc2d01,
+0x03b041960,
+0x00c65f22d,
+0x0d3fd5693,
+0x0ff1ef2ae,
+0x018145e7f,
+0x0bc6d8805,
+0x007347681,
+0x01733933a,
+0x081d043fb,
+0x07618badb,
+0x0bec0f77b,
+0x0325dba03,
+0x047b1bbb9,
+0x02d97c596,
+0x05a636a64,
+0x0bb4bc220,
+0x01ca0b921,
+0x09f9bf548,
+0x0ea2edded,
+0x0bf2f6ee8,
+0x06a53dcee,
+0x085f91812,
+0x06afc2c9a,
+0x016d8dd3c,
+0x0f1a00123,
+0x0038a08be,
+0x0b62ec7d5,
+0x0f93395a3,
+0x0bb1e8b7c,
+0x056432fa2,
+0x09bede8d6,
+0x06bc05b37,
+0x0fc0834cb,
+0x0682167fe,
+0x0efb36168,
+0x019fa5eea,
+0x0cbb0e6ac,
+0x0fff41eb4,
+0x0d49761d1,
+0x0e15ba408,
+0x0b3845642,
+0x0d0db3ebc,
+0x094e3d5f3,
+0x03fd091d7,
+0x0d9b6e1e3,
+0x0d6cfc5d4,
+0x0f0712f94,
+0x093129e3c,
+0x0d48b32a3,
+0x017f30e5c,
+0x0f6916712,
+0x0588593e2,
+0x0899b12f8,
+0x0cee57049,
+0x0409a2a95,
+0x0046b80b8,
+0x01af8c4e7,
+0x0ef2a509f,
+0x08c8b990e,
+0x00a16043d,
+0x0e830f134,
+0x05257bc80,
+0x0e3df9a06,
+0x0f79f74b9,
+0x035c812cc,
+0x0d95274f2,
+0x09073aa2c,
+0x02af5b4d8,
+0x01c9791f2,
+0x01f3dc865,
+0x034ffee0a,
+0x08beefc0a,
+0x0903cbe79,
+0x0dfaca298,
+0x0d0383923,
+0x0cdf1d74a,
+0x04f6558e4,
+0x08f1bc12c,
+0x093e13d52,
+0x062cd7cde,
+0x0366a4497,
+0x0bfeb90b7,
+0x01e1b08ab,
+0x08c94dadd,
+0x0e9276f1f,
+0x070f93d69,
+0x0d332bf79,
+0x0c6c3ce66,
+0x02c26311a,
+0x0f84f1b27,
+0x0d6c59ffa,
+0x090bc5754,
+0x01f98e481,
+0x02414c6b0,
+0x0238b563a,
+0x051c716c1,
+0x04224196f,
+0x0cd6e0f84,
+0x04696e701,
+0x00178b339,
+0x03cee7be6,
+0x024b5d319,
+0x0906e952f,
+0x08cb92245,
+0x0cddf5ab3,
+0x058aaa310,
+0x0c9d48de4,
+0x018c6b789,
+0x0f820df8d,
+0x0eb8fc2b1,
+0x0f0c7361d,
+0x0d4d7f62c,
+0x0999046b1,
+0x048570099,
+0x07faf2f4a,
+0x012c77bbb,
+0x09369f90d,
+0x0691c2293,
+0x0bb9d6cfd,
+0x0266030b7,
+0x0cdc30036,
+0x051e1de9d,
+0x065910637,
+0x01f2524d8,
+0x0445bbd1c,
+0x0d49183e2,
+0x0349e808e,
+0x00b454696,
+0x0a93ed6a0,
+0x0b68f06c3,
+0x00337c951,
+0x01df92f0c,
+0x04cfa47bd,
+0x00c5024ee,
+0x0b1ee0c8e,
+0x0f3ca099b,
+0x0a9887991,
+0x07404e5cd,
+0x022c72aa9,
+0x080271e35,
+0x0928ab0ee,
+0x0379e5c76,
+0x0d66d021f,
+0x00b5f1627,
+0x0160f4f68,
+0x013e13710,
+0x0fbdd8927,
+0x0d69b9818,
+0x0ec0764d8,
+0x00bbbca12,
+0x04af5538f,
+0x0c349c42c,
+0x01b9cbb59,
+0x02fc4c340,
+0x0960542c8,
+0x0231606d0,
+0x0272ce00a,
+0x00e95c0fc,
+0x06355bc25,
+0x0b6ba3523,
+0x0349118a3,
+0x0f3c9d2a6,
+0x0ed1dabc6,
+0x009b14b73,
+0x026afbbaf,
+0x08696bd40,
+0x02d517018,
+0x0b61b831b,
+0x03e2d5d44,
+0x01a41a0bb,
+0x08a9b2fbb,
+0x092dda197,
+0x02c3d8f82,
+0x02ab0604b,
+0x0ac83d757,
+0x0376a3127,
+0x042acc8bd,
+0x0ace3003c,
+0x038b31b27,
+0x0a867dca3,
+0x09bb24dfa,
+0x0e8837c05,
+0x088e4e68c,
+0x0b54c36ca,
+0x00007d83a,
+0x099f137bb,
+0x0370a80cf,
+0x0b0568121,
+0x0ead29e54,
+0x0f17c0ac8,
+0x09cd97852,
+0x015823264,
+0x0faf8cf2a,
+0x0262a9d93,
+0x0e89c746b,
+0x0b0e3ddf6,
+0x06ca29869,
+0x00207af03,
+0x0c540fa0b,
+0x03db6b20e,
+0x02bf1b353,
+0x00d86df2f,
+0x08d788531,
+0x0513cf456,
+0x0d89931a1,
+0x0bf3b3e5c,
+0x06b1a2781,
+0x09415fa2a,
+0x03c02a6b2,
+0x06205fe4a,
+0x07b10e7cb,
+0x0dc7e851d,
+0x04cec3868,
+0x0fc636315,
+0x0c81e2339,
+0x0b24666fe,
+0x01eac7a8c,
+0x0f0ca4cbc,
+0x0e66dbc99,
+0x09b0031cb,
+0x0b88e4621,
+0x0a1f121ad,
+0x0752121d1,
+0x08809f237,
+0x028ea3a77,
+0x06591606f,
+0x05aefd9f7,
+0x003f48da5,
+0x068b82746,
+0x0e69f6779,
+0x0aae9d884,
+0x03b17b714,
+0x01445e25f,
+0x0b427c6be,
+0x081d09adb,
+0x0118f6996,
+0x0ce55aae8,
+0x0cfe4dea9,
+0x02baf2e31,
+0x06261696c,
+0x03a8a0b0a,
+0x0c64b91f6,
+0x0c861e514,
+0x065ff8cdc,
+0x012ec49bf,
+0x04b9f78a3,
+0x088c74041,
+0x0c542cd4a,
+0x0824f3dc7,
+0x0438b7c7c,
+0x01561da46,
+0x0137a3e94,
+0x007e77e86,
+0x097421dbe,
+0x050a2c445,
+0x0839ac8e5,
+0x02694b69c,
+0x00604c37e,
+0x0c2c1dcbb,
+0x0ca82518c,
+0x0867e9a1a,
+0x0e3e9f46f,
+0x036841cbb,
+0x0041ac211,
+0x0fd87f329,
+0x0f3227222,
+0x0e6adb266,
+0x08301a4d5,
+0x045447b08,
+0x07b510ab0,
+0x0722a3be3,
+0x0e685731c,
+0x04f2ebb01,
+0x03d20c2a1,
+0x00f9925d8,
+0x0e905d8d1,
+0x0dc64d43d,
+0x0442d59b2,
+0x07c7fe99f,
+0x03d40ba9c,
+0x0ffd55cb0,
+0x0b13d2cba,
+0x094e2092c,
+0x06deb2d1e,
+0x0256c3a0a,
+0x01cdda65e,
+0x039ef4947,
+0x0aef511d3,
+0x07860b4d5,
+0x04e1b7581,
+0x06295bc3b,
+0x08bde56eb,
+0x0860620ab,
+0x03876f625,
+0x0cc3c6a2c,
+0x0c5bb118e,
+0x0db715521,
+0x062262bef,
+0x0278dea5e,
+0x0fa2c12eb,
+0x0fc5a7974,
+0x0ce2b804c,
+0x0cfd8c571,
+0x0781774a1,
+0x0d5213ae9,
+0x09628e9c4,
+0x03f4e0c99,
+0x09fc42657,
+0x0b3a1275e,
+0x03f270605,
+0x01a5dfc2c,
+0x049f1ebb7,
+0x099511a2c,
+0x091866bc0,
+0x087a7880e,
+0x03e977e4c,
+0x02df8a287,
+0x0d167e75d,
+0x0ef9fd748,
+0x0ccbfccf5,
+0x0a6340f6f,
+0x03bfb1382,
+0x0fd29f4cd,
+0x0944e7aa1,
+0x0f037a29d,
+0x0a665ba47,
+0x08c6c68ca,
+0x09c21a987,
+0x0b787e9ea,
+0x048b33033,
+0x0f9e3a84d,
+0x0e90fe184,
+0x0dcc1b7b1,
+0x04d26914b,
+0x0cd500124,
+0x05caabb46,
+0x06cb6e01c,
+0x06784e309,
+0x0e5f015ed,
+0x0567f72c5,
+0x0e1059aaa,
+0x007a34dee,
+0x0d5068916,
+0x026aa2553,
+0x03348cace,
+0x0a46e5831,
+0x0c485f8b3,
+0x014bb3b3c,
+0x07368538d,
+0x0de1d2085,
+0x01cb318d2,
+0x039bb763a,
+0x0a6e0852d,
+0x08ec0ca10,
+0x0c29a1580,
+0x04c4b9021,
+0x05359c1ec,
+0x0bddc34c2,
+0x0108fb074,
+0x03a488313,
+0x004b81a99,
+0x0c2234694,
+0x021d0293b,
+0x0efb49c70,
+0x093feb123,
+0x0c2b68609,
+0x0eb5d1c40,
+0x0681370e6,
+0x034766910,
+0x02b9b462a,
+0x076a2d177,
+0x031dea291,
+0x084b06b3a,
+0x027e947b9,
+0x028979e59,
+0x0f9cf004a,
+0x00e926ade,
+0x0b5231b49,
+0x0636bab96,
+0x01984dce2,
+0x037a27733,
+0x0034590a2,
+0x064878e13,
+0x0b0905861,
+0x0a7403729,
+0x0ecd1fd05,
+0x0d01cffb2,
+0x0430ddace,
+0x023d7d458,
+0x0e89f0832,
+0x0cdd170d8,
+0x0c877f33c,
+0x005a19ecf,
+0x0c1730789,
+0x05c82c696,
+0x0e1946cd9,
+0x0ede3d973,
+0x0b0f1f15f,
+0x0f59fb63f,
+0x0da5765a3,
+0x0dd3317a8,
+0x099f0eb45,
+0x0bc976bea,
+0x06c0d3a19,
+0x04059e482,
+0x027916a56,
+0x021b7eba7,
+0x0461bc9e9,
+0x0d278efad,
+0x03159fe4d,
+0x0cfe61f72,
+0x048718e4c,
+0x00f0d3496,
+0x0dc8f1757,
+0x08c0208df,
+0x0c02538ea,
+0x04b625433,
+0x0de6fed5a,
+0x068523b4c,
+0x0a3e5bbcc,
+0x0155e6aba,
+0x0edc7cdd5,
+0x0b093bf54,
+0x06386530a,
+0x066f72ad1,
+0x0ad04649b,
+0x0649973c7,
+0x0d4e5b118,
+0x0ee9a8469,
+0x0b9713bd1,
+0x0c44c9844,
+0x062bbe94e,
+0x0d20707f7,
+0x0c17a0364,
+0x09bd3ef70,
+0x02e99a6fb,
+0x055de442d,
+0x057c6048d,
+0x0988e5979,
+0x043de27f1,
+0x0cb65bf99,
+0x05a9467d8,
+0x05d487298,
+0x09e7bfc1e,
+0x068d2a00f,
+0x03a643441,
+0x06da23fd6,
+0x007c7fb9a,
+0x0fa851d2e,
+0x0da64ce2b,
+0x0716e5f0f,
+0x0b3bce144,
+0x0dd245b5d,
+0x02656ab20,
+0x0c3cdfed7,
+0x09cbedb63,
+0x02bdc1386,
+0x0b193c0ed,
+0x0ecb98b29,
+0x0d276276e,
+0x062a109a8,
+0x0c8b06ca3,
+0x00354e59a,
+0x0de1ab95b,
+0x060fb4dc9,
+0x0324ad2f3,
+0x0f2486c3c,
+0x0972ce44f,
+0x06b011224,
+0x0bf27f8b3,
+0x07a8f0bf9,
+0x0f6012ad8,
+0x083e017a3,
+0x0349d2c23,
+0x012a2b6d2,
+0x091a0fed5,
+0x08ea65fa5,
+0x0640bfbc7,
+0x0e110536b,
+0x0a1bf9612,
+0x00d337693,
+0x0d5809f08,
+0x08c0516ab,
+0x0463ee0c0,
+0x0a4fed5c1,
+0x02bda6e62,
+0x0ee322eec,
+0x014f78a8d,
+0x0564feed6,
+0x0cd55ad37,
+0x06ea63b7e,
+0x0837eae6d,
+0x0dc92d46e,
+0x0f464b83c,
+0x019cc7edb,
+0x02b90558a,
+0x01ec5cf5e,
+0x0e46762ca,
+0x01392d45c,
+0x04e5344a5,
+0x0ec8e7d9e,
+0x083060f1c,
+0x03ec08cc6,
+0x0abc161ea,
+0x06dee055d,
+0x0011276c6,
+0x0e217b7aa,
+0x0e3d858aa,
+0x0f82e4d1b,
+0x055503d9d,
+0x0e4f5527d,
+0x019c5968f,
+0x0a4f7d2e5,
+0x019aa7308,
+0x0bca749d5,
+0x0d582e2ef,
+0x0e023b1eb,
+0x04a2aa219,
+0x03fca3525,
+0x0a060abe3,
+0x08491f0ad,
+0x0eedc8429,
+0x0fa3ec8d4,
+0x042221826,
+0x053d1b647,
+0x0cc41b547,
+0x03bfcc793,
+0x0dc5481b9,
+0x0c643b68e,
+0x0b96a00f6,
+0x0ebe39d99,
+0x07cf37f20,
+0x017c6c68a,
+0x08b035d27,
+0x02825f6c6,
+0x019c41b23,
+0x0327753c0,
+0x00048326d,
+0x04a236dab,
+0x0fcef379c,
+0x01b187bd2,
+0x0624e0413,
+0x04ee11385,
+0x021f0248f,
+0x0c538d568,
+0x06ad421c3,
+0x0784bffd5,
+0x0420eb580,
+0x0265ba85b,
+0x09eab4435,
+0x0a75ebad4,
+0x032972823,
+0x03d7b3bc6,
+0x067cf5945,
+0x0fe7c6cea,
+0x03564d52a,
+0x09f84f0f5,
+0x01db540fc,
+0x032dcc570,
+0x0f9c2453a,
+0x0a169bcfd,
+0x075435bf9,
+0x06c004eab,
+0x062249887,
+0x0c2fc0fc7,
+0x07b59fd5c,
+0x05c101e96,
+0x0ae929cb6,
+0x02888439f,
+0x0e1dd18cd,
+0x015a89a71,
+0x017b15c64,
+0x0d39f8662,
+0x0f6ce8480,
+0x09b697b1f,
+0x070913b7d,
+0x01209d382,
+0x014a2b522,
+0x0afeefc39,
+0x0ef2f7c8e,
+0x02d9baf10,
+0x06345de6b,
+0x0062f66e8,
+0x0370d00ab,
+0x06543cfce,
+0x06a870583,
+0x08ea63a55,
+0x01e9c781c,
+0x0fe9f4f8a,
+0x0dcc352be,
+0x01e152c0b,
+0x01d6605eb,
+0x08175b57a,
+0x09ae65766,
+0x035a10358,
+0x07426e25b,
+0x0ead33aa9,
+0x01b3d31c2,
+0x0a6eb3ca9,
+0x0d9339779,
+0x0a72baef3,
+0x083cd1325,
+0x075cf3a3f,
+0x0c2a36b1a,
+0x0f254526f,
+0x08fb490f9,
+0x042e9c451,
+0x09dea69b0,
+0x07a46d1f2,
+0x05766b3d4,
+0x0b3a9fe51,
+0x0480603c8,
+0x0c58b81f2,
+0x09454bb81,
+0x0a98e5a67,
+0x07b33c3f7,
+0x0ad91d4cd,
+0x097284d53,
+0x05384d971,
+0x05c516d60,
+0x0ba630f1c,
+0x0b170e034,
+0x099dced07,
+0x068840dde,
+0x088343c32,
+0x06486f13f,
+0x04026f9fc,
+0x09bdcee24,
+0x026871ddc,
+0x072e579da,
+0x0636b2657,
+0x07bdfa2f2,
+0x08dfe18f7,
+0x0bcdb9854,
+0x039442a4c,
+0x01c549acd,
+0x0599e3987,
+0x0ad727df6,
+0x0e07355a1,
+0x0099f5a0f,
+0x0f068b476,
+0x075ad4ea7,
+0x076253729,
+0x092fbe44a,
+0x01722f24d,
+0x0d877f68e,
+0x08972985b,
+0x0e416f715,
+0x00d118075,
+0x04536a085,
+0x067ce4a03,
+0x0a93a81df,
+0x076bc6f4b,
+0x0e9df8255,
+0x0b90fff69,
+0x0c01e05b5,
+0x05252e07d,
+0x047020bb4,
+0x0ab1fad19,
+0x0a2ba48fd,
+0x0b82c4ebe,
+0x0445fae67,
+0x0cbe88418,
+0x0720eb961,
+0x0647284cf,
+0x0112e78e6,
+0x014f98071,
+0x004d2f454,
+0x0e9cd686a,
+0x0f1381dab,
+0x05883778d,
+0x07fc6792f,
+0x0a60631db,
+0x0287ed778,
+0x0ca22e566,
+0x01b4bee18,
+0x00abeb9c8,
+0x0ed04963c,
+0x08705e0a6,
+0x05c769801,
+0x0aee7b4f7,
+0x025d36e59,
+0x0e0492426,
+0x0f7df0aaa,
+0x07b7ffead,
+0x080562667,
+0x08cbecdd8,
+0x050b0e373,
+0x082057bd7,
+0x0270e31d7,
+0x008a99e46,
+0x0809ea0d0,
+0x08768473a,
+0x06003bc0f,
+0x0658bf275,
+0x09ed449b4,
+0x06f75eaf2,
+0x0725c420d,
+0x023ba89c7,
+0x02f2d6455,
+0x033d87eaa,
+0x025672c31,
+0x0e57fae44,
+0x0cc613678,
+0x0ffb7e938,
+0x0083c852b,
+0x03ac25dc2,
+0x08a174c2b,
+0x00697b789,
+0x062992bc9,
+0x046999b5b,
+0x0c930d749,
+0x057fedc6b,
+0x00c95058d,
+0x06c0106e1,
+0x00d6e46ef,
+0x07f463d90,
+0x010e4379c,
+0x0cc7d3ae4,
+0x0c23d18fc,
+0x0cc2205bd,
+0x0bc2fa8d8,
+0x0b7b4e2e8,
+0x0068d3103,
+0x07c4c7f54,
+0x095e32fc7,
+0x006d01fcd,
+0x06f31835b,
+0x0675185af,
+0x010fcd982,
+0x00bdde8d3,
+0x03779d3d7,
+0x0e7953e73,
+0x023007787,
+0x0a84a2c6c,
+0x0b9ee0329,
+0x09da2096a,
+0x045bcefe0,
+0x09911df89,
+0x0bb1d370a,
+0x067e27650,
+0x029493976,
+0x08612db37,
+0x046bffdba,
+0x0a6386ed4,
+0x04b807cde,
+0x0015ee71c,
+0x05eaec53c,
+0x09bd0b7bf,
+0x044e062c6,
+0x0a309ec20,
+0x0c02ce306,
+0x01db95a29,
+0x0abdb582e,
+0x0ca473f91,
+0x0c0be6419,
+0x0f40ecd12,
+0x0acda0ef5,
+0x0007e56b5,
+0x0216d9f48,
+0x0cfd4dfcb,
+0x00c9d3711,
+0x071b0c4a4,
+0x0f137298e,
+0x0c996bc73,
+0x0c1796b4e,
+0x0d3991f15,
+0x05567e816,
+0x04cef83ac,
+0x08cfbac1e,
+0x00b11a685,
+0x0c31fc32c,
+0x080cd871b,
+0x0afe86193,
+0x09908fb8a,
+0x03c67081d,
+0x050874be8,
+0x0d734d891,
+0x0c8a78da9,
+0x03529beed,
+0x0521c522d,
+0x069d1f6e7,
+0x0bdc13061,
+0x010baaaca,
+0x0d9bfa7df,
+0x02b8c3385,
+0x07d52e6c3,
+0x04b3c5364,
+0x08b41ae90,
+0x0d0e691f3,
+0x034c95baf,
+0x067668b2a,
+0x0ada21337,
+0x0e98b0f4b,
+0x0f1bbb8eb,
+0x0536b2550,
+0x066719212,
+0x063bc4e25,
+0x005fe01bb,
+0x0fe804676,
+0x0b3f14fb2,
+0x08fa490d2,
+0x06eb5c3e4,
+0x0f55665b0,
+0x0ac439874,
+0x02231a8a1,
+0x032309008,
+0x038faaab5,
+0x04b4bfeb5,
+0x00ccf8437,
+0x03da9fb10,
+0x0248c5e90,
+0x0def2c94a,
+0x0c61b88e4,
+0x0cb4d1a3c,
+0x06d46294b,
+0x08d43d55a,
+0x082336107,
+0x06b9eea19,
+0x0ca4eb227,
+0x0351e737e,
+0x0d15aeb9a,
+0x0bb842bab,
+0x0c5e16656,
+0x0fe0fd230,
+0x02cb22a48,
+0x0a026c29b,
+0x0236575e9,
+0x063a4fbde,
+0x02e537204,
+0x0f2f6276b,
+0x0965cf94a,
+0x05a88f61e,
+0x0e51a1fd0,
+0x0b0632ac2,
+0x087c535fc,
+0x05feb3ec3,
+0x0644e906a,
+0x009c44abb,
+0x0f7d9a8d3,
+0x062fffd1d,
+0x01ed86af9,
+0x09c93bfb5,
+0x05d7e8cb1,
+0x051478a2d,
+0x003c0a6dc,
+0x083785ade,
+0x02a77549e,
+0x02fe9b2ab,
+0x0914c4abe,
+0x02ca2e7f6,
+0x057637ecf,
+0x0e1ccff47,
+0x0051b9f7a,
+0x0512ddc8c,
+0x086bb6ddc,
+0x09a0cfb14,
+0x003fb30fd,
+0x0404d5d88,
+0x062dd0690,
+0x024d3c66a,
+0x02116d989,
+0x0575e060b,
+0x0e18f2739,
+0x0d1e3b20f,
+0x01d1a94c3,
+0x0c89ec1da,
+0x040032b81,
+0x0e8bf2c8b,
+0x092a900b5,
+0x08c9b869d,
+0x05de4ce2d,
+0x02c4e35ff,
+0x059c93b57,
+0x01a7fa3ab,
+0x073e7be83,
+0x0a0bc2104,
+0x0d7ce518f,
+0x02a81c568,
+0x02d27148f,
+0x036e734b0,
+0x0ec0cf13a,
+0x0026b09a2,
+0x038eeb380,
+0x0be6031b0,
+0x03bcdcce1,
+0x0a8e5b8b3,
+0x0ab1d71dc,
+0x0dcd11374,
+0x046af5e57,
+0x016590d30,
+0x0a3bbc809,
+0x0932c1bbe,
+0x01c73b905,
+0x0444dbf01,
+0x0741a57c4,
+0x00214d6b6,
+0x07b1a7cb2,
+0x05fc8bcd6,
+0x0abd22b8f,
+0x08a32b456,
+0x0c9d1ddf3,
+0x070af2772,
+0x03bb755af,
+0x0374fb62b,
+0x04146382e,
+0x067b84bde,
+0x04af8ee50,
+0x07bc7d76c,
+0x0b5a1827f,
+0x0ee5f14dd,
+0x0337268b9,
+0x0206cea23,
+0x030e9447b,
+0x058248153,
+0x0f36c9c01,
+0x018b18bd3,
+0x02e8f70ef,
+0x0c56c2530,
+0x01e67310c,
+0x093a05303,
+0x0de3f2074,
+0x01dadf5fb,
+0x0da2b13b1,
+0x00361f0f7,
+0x00d7242c0,
+0x0b7dc4d55,
+0x0168a6fed,
+0x085881e1b,
+0x0b715b609,
+0x09e240fbc,
+0x052515eaa,
+0x0ef165a9a,
+0x082bc0dbb,
+0x0de54339f,
+0x052ea9e44,
+0x0d47f2c6e,
+0x01f91a0b8,
+0x03c9bf617,
+0x00aea49ab,
+0x0768637b0,
+0x0148e082f,
+0x03784aee5,
+0x057132931,
+0x0606fcd71,
+0x01c44b715,
+0x08ce38bc8,
+0x04234887b,
+0x09b6998ab,
+0x07a776c45,
+0x09ee3cbac,
+0x047be6c12,
+0x0b3259590,
+0x08c4b0a37,
+0x0dccc9ab1,
+0x0730c92b1,
+0x04c40e705,
+0x08e447dcb,
+0x07faf14fc,
+0x00a50d1d1,
+0x07e5beaef,
+0x0a15aa0c0,
+0x003f8072e,
+0x0c2d3938e,
+0x09458bdac,
+0x01f05a4ea,
+0x0e60401c3,
+0x00fba0b6e,
+0x051963f2a,
+0x02d883158,
+0x0feaa328f,
+0x030a6ec88,
+0x029293b12,
+0x048015dde,
+0x010964f80,
+0x018807f06,
+0x0d9acfff1,
+0x071fe6228,
+0x0c776e7fa,
+0x0fa9ba4be,
+0x0a1106954,
+0x040b8a182,
+0x08be57f9c,
+0x0a4585d40,
+0x0b71704ad,
+0x046937c44,
+0x05a4e5b00,
+0x0833bf1de,
+0x09d14d7da,
+0x035b01a80,
+0x0c3cc5190,
+0x0ee44a78f,
+0x064b96481,
+0x0aa105d2b,
+0x03cfbf22a,
+0x0ae3ccde4,
+0x0dd381261,
+0x0157dad7e,
+0x0eb75929e,
+0x030ba1956,
+0x0185e1e05,
+0x01d0b4d3b,
+0x0261a784f,
+0x05b43a9f7,
+0x0addbeb1a,
+0x0fc98713e,
+0x0f37d1ecd,
+0x0caad1f95,
+0x0f3d71101,
+0x09e71e7f5,
+0x063b9e940,
+0x09f8d7ece,
+0x0354f5d31,
+0x0d6592a90,
+0x0e4cd1c90,
+0x094e8030a,
+0x0f30562b6,
+0x019a426b7,
+0x098b8588b,
+0x0c2ee25c4,
+0x0ee6d0293,
+0x08a9e0808,
+0x0d3b11c71,
+0x044381a24,
+0x050432146,
+0x065b9a9b9,
+0x041e9d44c,
+0x0925a3fe5,
+0x0a5f69afb,
+0x0a0c5d5d3,
+0x04d4afa41,
+0x0b1c942cb,
+0x0f607c219,
+0x0cb6b2754,
+0x06e46886f,
+0x0158c8ea1,
+0x088993d80,
+0x00ab81838,
+0x0d085e12a,
+0x01ef1f9b8,
+0x041e0690d,
+0x012979e2a,
+0x09ae7c8e3,
+0x058b2cdf9,
+0x0d13ba3b9,
+0x0a602918a,
+0x0eb4442dd,
+0x09dd33ebe,
+0x086e20103,
+0x0d4c8e12f,
+0x0541c9a79,
+0x02396f5e2,
+0x0d47e25b4,
+0x08b9c8174,
+0x0aa653a18,
+0x048838901,
+0x0194792e5,
+0x089fc2df1,
+0x05cac2d9e,
+0x03fedfcdd,
+0x0098c905e,
+0x09ddae100,
+0x059d903ee,
+0x0afc23b55,
+0x0bd313bb7,
+0x0aa89fe91,
+0x0b900435e,
+0x0f3533fe5,
+0x0e94e81bf,
+0x0f3b42bec,
+0x0f727a5fc,
+0x088ed7cf4,
+0x016b3f150,
+0x0f5da5aab,
+0x0037c7081,
+0x0821e70f7,
+0x08357afc0,
+0x01ca0c5a8,
+0x0ec1923b9,
+0x07855cc16,
+0x0c7482dbf,
+0x029a34715,
+0x03a1eb92f,
+0x098b2fda5,
+0x0a31d928e,
+0x01e8016f3,
+0x0a90fb5b1,
+0x02917d0a9,
+0x0411298ba,
+0x02ead3c5e,
+0x066076868,
+0x012f6f1b7,
+0x08ec6e8d6,
+0x0d52b6254,
+0x06f9f04c2,
+0x0c59c2913,
+0x0ef3cc150,
+0x0a34be8b1,
+0x0a874fc2d,
+0x012c0a95f,
+0x01ba1bde4,
+0x0fe71cf92,
+0x09c4cdba8,
+0x060ad9848,
+0x0283d73dd,
+0x067e9cb05,
+0x03595d4df,
+0x063c4a52c,
+0x04130a3e7,
+0x055bd7327,
+0x0657176ac,
+0x034201aeb,
+0x073385f9d,
+0x0363f99dd,
+0x0b1bab063,
+0x09d905762,
+0x003f3caff,
+0x039f5041f,
+0x079fb93d3,
+0x0d0bf6435,
+0x03bfee698,
+0x00c4173b3,
+0x0a693b2a7,
+0x00a16a07f,
+0x0a22ea958,
+0x033ec0864,
+0x001c9789f,
+0x03f056743,
+0x0aacdb13e,
+0x0bd3c8b76,
+0x081251c78,
+0x02adc2a4d,
+0x028822dd0,
+0x0ad222404,
+0x083e35b07,
+0x0ffdfdf6e,
+0x025ea16be,
+0x00f17de5d,
+0x0c6759069,
+0x064f52c44,
+0x0596a1207,
+0x0ce95bf10,
+0x0a2b26b1d,
+0x0245970be,
+0x0f2d3d2e1,
+0x08afa6be5,
+0x0e60ed8b9,
+0x0909bc2df,
+0x0c11d9017,
+0x0c1cf7b30,
+0x096f796c8,
+0x0976ca8ed,
+0x0f2e63af8,
+0x073a6414e,
+0x0cf2cef6e,
+0x0af31583c,
+0x0d216e568,
+0x007d11c21,
+0x0db1436c7,
+0x0fe589c4c,
+0x0b39c0aed,
+0x0504f5909,
+0x0664e998a,
+0x0250e2ca1,
+0x05475ae74,
+0x051543a64,
+0x0c1d79d6a,
+0x02562f68f,
+0x059ec22fe,
+0x0453c6608,
+0x0a6de30ea,
+0x054f50b5b,
+0x05ca3e32e,
+0x02c9a73e1,
+0x04130ecfb,
+0x0da1505ce,
+0x0ef22f8e5,
+0x05f6b35d6,
+0x0018348d4,
+0x0948f175b,
+0x09b2ad362,
+0x04695d083,
+0x076e1c60a,
+0x051e26c77,
+0x04bd5dfe6,
+0x0c703a9f1,
+0x0eb707bd2,
+0x00843166e,
+0x0e732d136,
+0x02eb16131,
+0x0f88d0572,
+0x0c6054f54,
+0x0dbc3e9e1,
+0x07c51d166,
+0x025f2e4c9,
+0x087798e5b,
+0x0bfdc8f90,
+0x03a92fb56,
+0x0243f216b,
+0x02f506c72,
+0x02c09b2c1,
+0x0627ea913,
+0x031499574,
+0x0b67456be,
+0x07d792afc,
+0x032ac8635,
+0x0e44ca2ea,
+0x0219aa052,
+0x0c0b22f4f,
+0x08bdd7ede,
+0x0a7ef79ba,
+0x074236f81,
+0x032309c9c,
+0x011c9fbae,
+0x039d5a92c,
+0x03fa1110c,
+0x0c17e33a9,
+0x057081f2c,
+0x0460f65e0,
+0x005a42f69,
+0x024d2e020,
+0x0a8583a48,
+0x09398d3a7,
+0x09f9e5147,
+0x002652215,
+0x0582dfa25,
+0x03689b203,
+0x0352ba83a,
+0x0a23bc86d,
+0x02720514d,
+0x0e6959e9f,
+0x0dc4f45ab,
+0x0393e2699,
+0x017c09441,
+0x0ec4acfec,
+0x0118461f7,
+0x0d6dc76e6,
+0x0854f35d6,
+0x02fbd6ba3,
+0x071382044,
+0x03f4d4ee1,
+0x01f813a77,
+0x06d1678f3,
+0x0a408e461,
+0x0aa40a397,
+0x07e116fb2,
+0x0c3324b8a,
+0x0f2535db8,
+0x06b9efabb,
+0x0b0560468,
+0x04cc6f21a,
+0x0ae979d3b,
+0x0c32cdead,
+0x09a31fe77,
+0x0d1d00c11,
+0x0870cbf97,
+0x0b5ab2de1,
+0x05595d7a7,
+0x0fe72836e,
+0x0e9efe3b0,
+0x053335f4b,
+0x01cd01e31,
+0x081339669,
+0x0349f76b5,
+0x02872c0f0,
+0x04da20839,
+0x024e73f28,
+0x0b9faa2dc,
+0x0f849fc78,
+0x0edef2ad2,
+0x003b50d16,
+0x0f7699b33,
+0x0d388755a,
+0x01698b430,
+0x089009c4b,
+0x0b37cd64c,
+0x047740ede,
+0x0a00df612,
+0x075410129,
+0x0f760221a,
+0x0250b1854,
+0x04cb1a96b,
+0x03401f52c,
+0x09412d230,
+0x0520096ba,
+0x0a6cd8e3b,
+0x0b7235c39,
+0x09a47a271,
+0x07cca3c52,
+0x0b117389c,
+0x038d63b34,
+0x06ea65f5d,
+0x0ef9ecab8,
+0x0696736da,
+0x075bd3ccd,
+0x05b52b809,
+0x0de95047a,
+0x03b301f74,
+0x064a0f082,
+0x041931a17,
+0x0bb105685,
+0x0ce1ce0bc,
+0x0e574e04f,
+0x05d635658,
+0x0854704c7,
+0x028de49ab,
+0x0d35cd641,
+0x0d7200931,
+0x04b74ae5c,
+0x087a6a776,
+0x0f69c8d9f,
+0x0d5ddcd71,
+0x06e6a739e,
+0x0e84f3c62,
+0x03fad74a9,
+0x052cd2cad,
+0x08af38b4e,
+0x00bbc7670,
+0x0229124e3,
+0x0c95012ec,
+0x06c19045f,
+0x0363eba58,
+0x09d97d5d5,
+0x0b04c1ed7,
+0x01830d473,
+0x05f9eaa6b,
+0x03cf5b503,
+0x023cef2da,
+0x0d6fe57ca,
+0x0423a4e70,
+0x0fd75a9c3,
+0x03d594999,
+0x0f528d6d9,
+0x0b14521d1,
+0x05bd679bb,
+0x0e4a23805,
+0x035923d22,
+0x0862a744e,
+0x0b60f4d73,
+0x071484622,
+0x0a8c8b5ff,
+0x082c74def,
+0x0710c7b35,
+0x0012f58c7,
+0x03c2ca897,
+0x06ac9c8ec,
+0x0e36ca074,
+0x0ef8167fa,
+0x09f9ead14,
+0x08553b797,
+0x06774078a,
+0x09080d99b,
+0x01d2434d7,
+0x0cb91c1db,
+0x0ab7d6e62,
+0x068ee2ec0,
+0x0dc557a6e,
+0x0df985f15,
+0x0820c165c,
+0x0eab66281,
+0x07e80fc33,
+0x0694d3288,
+0x031a9d7db,
+0x0ab806a85,
+0x0667ac60d,
+0x0cd9637e4,
+0x036af5da5,
+0x093facf50,
+0x06fa0884f,
+0x0d2bd85b9,
+0x03304e871,
+0x0311b1596,
+0x0d3f68d0d,
+0x0dc43a97c,
+0x0a97cf004,
+0x05809449c,
+0x090d4cd62,
+0x02aa57d98,
+0x0dacca92e,
+0x03f9a75d3,
+0x05cf78459,
+0x01399856f,
+0x0781120f0,
+0x04085f365,
+0x069c05d66,
+0x095078781,
+0x0e403aa3a,
+0x008e804e3,
+0x0dc441579,
+0x0393c99a7,
+0x0ff703817,
+0x0ff058c24,
+0x068517d78,
+0x0524098bf,
+0x00df41959,
+0x01bb22b8c,
+0x0d6950cf6,
+0x019117b8a,
+0x0fbe25bed,
+0x08ce338c3,
+0x0fbb3d867,
+0x04ead4d6f,
+0x034c5f2ed,
+0x0406c55dd,
+0x0fb055356,
+0x0c0dccf62,
+0x043790ae2,
+0x05ddc693a,
+0x04b9fbcee,
+0x02ed73d0b,
+0x0d9098498,
+0x0bf312a10,
+0x02acffb22,
+0x004714b1c,
+0x0120a7fb8,
+0x00d06afee,
+0x03dde190a,
+0x039476ff4,
+0x0d4871eef,
+0x03d2c5f73,
+0x0035bd315,
+0x0557a464e,
+0x03d7c2126,
+0x027012205,
+0x049aec13f,
+0x0d509d079,
+0x08eebd582,
+0x03b4d7ed2,
+0x06addb1ab,
+0x020d877e0,
+0x0012f4b5c,
+0x0f604cdfa,
+0x0c009e3ec,
+0x0154a8ac4,
+0x0222c0e11,
+0x004669143,
+0x0d57b9a1e,
+0x07e9f4028,
+0x0890cbf77,
+0x0aa009745,
+0x09d93daa2,
+0x0c72fff6f,
+0x0276d66e8,
+0x09ec797f9,
+0x0bc7e999d,
+0x094f1f167,
+0x089c0977c,
+0x0fe352ba1,
+0x0d161b88a,
+0x0ef9cc11d,
+0x09153f2cd,
+0x046ac0a1c,
+0x06fbe8def,
+0x00a599934,
+0x01f47e80c,
+0x0319de0ff,
+0x02128b95f,
+0x074803bb4,
+0x00da80fc8,
+0x0ac371436,
+0x0707cb14b,
+0x00f837317,
+0x07d5f6df8,
+0x0caf61432,
+0x0329a06c5,
+0x0d5ad6d3b,
+0x0a941d09d,
+0x022f898b0,
+0x050ac6ee8,
+0x0858e7ecb,
+0x0820bfa2f,
+0x094f3c391,
+0x0834c033f,
+0x097e543ea,
+0x0b8a1b6b9,
+0x053daacb8,
+0x03fcf98c4,
+0x0b268d51e,
+0x0f1611ae9,
+0x09315a206,
+0x0cdbed566,
+0x0d7dc0408,
+0x053749b54,
+0x0552e094e,
+0x0f485cef7,
+0x0be62cc0d,
+0x051da1472,
+0x0f04f8964,
+0x0c71027e7,
+0x0e2fc53d9,
+0x077544d89,
+0x05d2cff23,
+0x0e96f3972,
+0x0ee5ed5a6,
+0x02c0425d7,
+0x004a0bd2e,
+0x0514f60d2,
+0x042e4e295,
+0x02919b2ca,
+0x052a439df,
+0x0e1b4c377,
+0x093686cb4,
+0x047bc59fc,
+0x0c9123426,
+0x0cdd5a1e1,
+0x0d4ce41e0,
+0x0448921e8,
+0x011b34ca8,
+0x093d16d6e,
+0x0b80d2e20,
+0x0bc6c3971,
+0x0c4f51b01,
+0x0682d3a70,
+0x05fdb3982,
+0x0d9b867bf,
+0x00d4b8bbd,
+0x07cad30e9,
+0x07c388342,
+0x050bbcead,
+0x0306c7387,
+0x02e7fe9fa,
+0x02318fc81,
+0x0e9185b21,
+0x0f39f1c59,
+0x01c65af33,
+0x0ef0d15fa,
+0x097e0da22,
+0x0bec34712,
+0x0aa073e2d,
+0x0935e583a,
+0x0d7d43504,
+0x08a1199bc,
+0x09191f741,
+0x0ab605554,
+0x06f920b95,
+0x0646ce32d,
+0x06dce1192,
+0x044f1db90,
+0x0f9dc773b,
+0x0b7e71cf4,
+0x044f349ee,
+0x00710757b,
+0x00d9f64b9,
+0x0bcf4a345,
+0x0b4251659,
+0x0cae580f7,
+0x056a5c2bd,
+0x0494a0d91,
+0x0b0d06545,
+0x029616ee3,
+0x0a97dc501,
+0x01f0112fe,
+0x0533c04d7,
+0x0130daefa,
+0x0d5c61fe2,
+0x0e223c3d8,
+0x0337596b3,
+0x0a26b0b42,
+0x00182228f,
+0x02043c4ba,
+0x03bb2d76f,
+0x060f54b7f,
+0x0e5d13be4,
+0x0986bb839,
+0x03be8396d,
+0x0f3fb846b,
+0x0f23716de,
+0x00273ed6d,
+0x0faae4dcc,
+0x0faef2c38,
+0x08ac5c335,
+0x06c418455,
+0x0dcead9d1,
+0x0cd08f3d5,
+0x0dea38069,
+0x08d069af4,
+0x003b0c42c,
+0x07256709d,
+0x08038eaf5,
+0x09212b5e6,
+0x07f622c64,
+0x0a9151165,
+0x0625594d8,
+0x08e2b697d,
+0x073daab1e,
+0x0b39ed983,
+0x095cc95ba,
+0x0b93cd7eb,
+0x0be39e88d,
+0x09100122e,
+0x0c4303747,
+0x01447eb10,
+0x0168d80fd,
+0x04d6c456f,
+0x0d84d3404,
+0x0affc1e13,
+0x0a1f13475,
+0x02ac6961b,
+0x065140760,
+0x0b0ea57dc,
+0x0ad7d911c,
+0x054c25d4a,
+0x0feff7479,
+0x069749ec9,
+0x059180d58,
+0x060359cc5,
+0x0056bae73,
+0x0720a2246,
+0x07cea568c,
+0x0e0a40884,
+0x098599fd3,
+0x0bc98286f,
+0x062cc10c2,
+0x07869205f,
+0x07161bd37,
+0x00b7fd8e7,
+0x0d0cbb249,
+0x0786651e0,
+0x02883bd57,
+0x060f49f92,
+0x0d03d5b52,
+0x00b33da0e,
+0x02b7e90f8,
+0x082b95b33,
+0x0c64871df,
+0x084306b4b,
+0x057270108,
+0x03fb1f75c,
+0x00273ea69,
+0x05d90f957,
+0x06e1c3574,
+0x0bd649d3a,
+0x009e92569,
+0x013eddf74,
+0x04c8ba028,
+0x0a12b27ce,
+0x0dbdfe27b,
+0x01533007a,
+0x0873f44f1,
+0x00084a540,
+0x0d415aabe,
+0x0b5fc8110,
+0x0a0299f83,
+0x077b8702d,
+0x0b3372059,
+0x0616d9a17,
+0x054f493b2,
+0x039ddbac2,
+0x057ce95ea,
+0x0f917d9d3,
+0x004abbbb1,
+0x074d5dccd,
+0x0d1f45b96,
+0x087f60133,
+0x09a0f02c4,
+0x0e3158762,
+0x095de06f8,
+0x07bb4e650,
+0x0ab7ca8c8,
+0x0ec9f3d46,
+0x03c658403,
+0x06f2ad2d6,
+0x0c9a91711,
+0x06633aa59,
+0x000e11881,
+0x0fae622e5,
+0x01999882b,
+0x043bffdd0,
+0x0c21d3a1f,
+0x067072b72,
+0x0bda819e0,
+0x07c61aa51,
+0x0abe86c13,
+0x06fe82672,
+0x06ec11706,
+0x099af3387,
+0x027f584e4,
+0x00a331125,
+0x073b12b53,
+0x09e0b3526,
+0x04136e435,
+0x04f0d2de8,
+0x001fd22e5,
+0x001befe3d,
+0x02020d425,
+0x0583dec3e,
+0x0aa25e7c3,
+0x0e96a2451,
+0x07f40183f,
+0x02c4f343d,
+0x0df7d0b30,
+0x0a90225eb,
+0x0cb8eb2c1,
+0x09b2df171,
+0x002b54b0e,
+0x0c7ac914c,
+0x0cdffb879,
+0x058fbd10f,
+0x09ba1e9c1,
+0x0e926d032,
+0x00a134e83,
+0x0b347ab09,
+0x027483c9a,
+0x0e8ae99bc,
+0x0b4009dc0,
+0x0cdfce3d3,
+0x0189ffffc,
+0x049994960,
+0x02ce51645,
+0x0c43576a6,
+0x0da718231,
+0x0e0794be2,
+0x08cf7881e,
+0x0c6ef633b,
+0x0327af2f1,
+0x01c012c1d,
+0x0442ee411,
+0x07fe18f82,
+0x0457aabce,
+0x0115b9354,
+0x012a5e913,
+0x036923e53,
+0x01f21d23d,
+0x0343d2643,
+0x0de42e298,
+0x00cb755a0,
+0x0df0e661c,
+0x0fbe95502,
+0x0cc8d0880,
+0x058b5f1f2,
+0x0f424241b,
+0x0858ce51d,
+0x01a00127f,
+0x0b3b45970,
+0x0cbf533bb,
+0x039f9c8c7,
+0x0232b30c3,
+0x037c75823,
+0x019cd8685,
+0x0ef0c651e,
+0x0cc7025a4,
+0x0bacfd6bd,
+0x0d24982bd,
+0x0ebfddaa8,
+0x09a387ca3,
+0x09c5f95d0,
+0x0637e7530,
+0x0d7c92b4b,
+0x0cab54e65,
+0x0bf5f8dca,
+0x0bc2785e0,
+0x038e8cf98,
+0x0b1406dd5,
+0x05237310a,
+0x0b07239d9,
+0x033d2726f,
+0x08dc49876,
+0x0cabff0f3,
+0x01c30d7ac,
+0x04f948555,
+0x0ca40c9b7,
+0x036af7a46,
+0x095ca2dd3,
+0x0ec725f3c,
+0x0dd41cc7f,
+0x02f211d7e,
+0x048010050,
+0x01bbb8399,
+0x0a0bf881c,
+0x0d0d9e2e1,
+0x04d24cdab,
+0x03b826a85,
+0x0c73a6db5,
+0x0c21cf387,
+0x0b7744e81,
+0x0c40cc779,
+0x06aa03a55,
+0x06d6b4b05,
+0x00bfd8611,
+0x08a5737aa,
+0x0e9135c71,
+0x0eecb3ddf,
+0x0e9d192f2,
+0x04aa04eb0,
+0x0718fe356,
+0x007cb1ef4,
+0x07bb9097b,
+0x06318999f,
+0x006bb80e7,
+0x01bc016fa,
+0x0b45a3a62,
+0x0513ae02a,
+0x0d3b923fb,
+0x0141902bc,
+0x04186ff05,
+0x05443eefa,
+0x02fd3ac91,
+0x09ea4cf32,
+0x085ac1331,
+0x028d329e4,
+0x00a831275,
+0x070a2a921,
+0x0adf528ea,
+0x0e84d3cc4,
+0x0ebc04021,
+0x0ea3c4cc2,
+0x0c967b6b9,
+0x079a79392,
+0x031ed8269,
+0x0d1c1d8fd,
+0x06951439d,
+0x03cc01dbc,
+0x0306370b4,
+0x0cb6115c7,
+0x059770c9d,
+0x0007057f5,
+0x0375b7f8b,
+0x0025f06f1,
+0x0f554008d,
+0x0277051fd,
+0x05454dcf6,
+0x0a5359016,
+0x0f18a83a5,
+0x0b7803629,
+0x073c0b2c2,
+0x0511b81ba,
+0x0f40a3fac,
+0x0e0168052,
+0x0b8f200ae,
+0x056e59912,
+0x053da4bf6,
+0x0811622ee,
+0x072a7f3f2,
+0x01bf8036a,
+0x04f0ad76e,
+0x07786f7d9,
+0x07c1796c1,
+0x0e4e9a8e5,
+0x09a240c33,
+0x0a97746cc,
+0x04c36738a,
+0x09019b71f,
+0x0cbde9f16,
+0x0998a6e50,
+0x0a5c8ae39,
+0x0a39e8114,
+0x079ff26d5,
+0x0d918a689,
+0x0148100ee,
+0x075074392,
+0x0c0b88d92,
+0x0df2dd49e,
+0x0ef690760,
+0x044336d81,
+0x0fd6eaaca,
+0x079c1f937,
+0x00868419a,
+0x044d101d9,
+0x0617b00bd,
+0x04f3caed3,
+0x02748acea,
+0x0814c1a1c,
+0x0992dc564,
+0x01badc121,
+0x0b02b2a25,
+0x049a7a7f3,
+0x0c5970de1,
+0x0c24c5d86,
+0x0a396f3c2,
+0x0fcce2e17,
+0x080c99b44,
+0x07f90cc66,
+0x078df5427,
+0x0a6460305,
+0x0a6de3ccc,
+0x053d3bb16,
+0x0684fc52d,
+0x01e1fe00a,
+0x01360a7da,
+0x0d0b77210,
+0x04df456e1,
+0x024f66589,
+0x0063e61ba,
+0x0387eac9f,
+0x0e38d8c7e,
+0x0af6f9165,
+0x07171a3de,
+0x021ce4463,
+0x00dc1d179,
+0x052db8677,
+0x0371e379b,
+0x07a146c2b,
+0x0b461401b,
+0x005948e57,
+0x039430433,
+0x0d68b48d0,
+0x0d11245b2,
+0x0fb7795f2,
+0x0090f570b,
+0x0d7ac8920,
+0x00761056c,
+0x02b38f7b1,
+0x08b7d0d8d,
+0x037d1a04e,
+0x06f7418d1,
+0x0903f8486,
+0x0a34fc705,
+0x0e199cd6a,
+0x099738ade,
+0x089d9d9de,
+0x0a1176455,
+0x012162a2f,
+0x0940517a0,
+0x0949307d4,
+0x0da995fa9,
+0x06b212de2,
+0x0df402083,
+0x006291828,
+0x0b0c52ae1,
+0x0eb2fd095,
+0x0a20ad8c8,
+0x079ce9a51,
+0x051e738c8,
+0x09d691164,
+0x08ddfd415,
+0x0fca02d98,
+0x0097e91ed,
+0x001b01b03,
+0x0a58c3c8f,
+0x082a349f6,
+0x0772a6c03,
+0x0d97b0bd4,
+0x03e90d584,
+0x04581e71e,
+0x0ac377fb7,
+0x01fc10582,
+0x01f0b43ee,
+0x0b784dd20,
+0x0df85729d,
+0x0c0cab967,
+0x07b4fa968,
+0x0430ad206,
+0x0da773270,
+0x0738b3c7e,
+0x0c436bdd0,
+0x02da6e444,
+0x0736eae64,
+0x07267ad1f,
+0x0ae159838,
+0x0598ca319,
+0x01b700043,
+0x042c90663,
+0x01d5fbc7c,
+0x0944dd516,
+0x03f844187,
+0x0869f8288,
+0x0b5b0b722,
+0x0229072af,
+0x06a440e85,
+0x0436452ae,
+0x0f4725e7a,
+0x0839b138a,
+0x0ac332103,
+0x02279cdd8,
+0x0ed7de765,
+0x071849c32,
+0x06a8141db,
+0x0b2bcead0,
+0x0ee1bd03c,
+0x0481be8f7,
+0x0a3c6663a,
+0x067305c5a,
+0x04fe9850f,
+0x01d09b09f,
+0x0f57c17ba,
+0x0c6733076,
+0x0bf6b6cff,
+0x020205edb,
+0x088573f0f,
+0x0555e2dbe,
+0x0360245eb,
+0x0f4301075,
+0x0c9247636,
+0x04be1c798,
+0x0885e8eae,
+0x09ef7f1d9,
+0x0d85d8161,
+0x054074b55,
+0x0ace63d67,
+0x0f9271669,
+0x05e657b8e,
+0x00cac8074,
+0x06fe9e014,
+0x091deb412,
+0x0170dd572,
+0x0f47a6ed2,
+0x01a2d4d60,
+0x088424b3d,
+0x007a8ca44,
+0x0e64f773b,
+0x01b8d6d39,
+0x01a2546e9,
+0x00a7b184e,
+0x084a4f9d3,
+0x0f74f4d72,
+0x027dc9d5e,
+0x0acb307c4,
+0x00933d2a8,
+0x07c3812b4,
+0x063982ff8,
+0x0e44e8e4a,
+0x06081a7cd,
+0x03d66a5df,
+0x0dcf1504f,
+0x0bcb4931e,
+0x05c11eb42,
+0x045d63fc7,
+0x01802c2a7,
+0x0dabf0aec,
+0x0c6bc9729,
+0x005713aeb,
+0x093ba667c,
+0x08acccf8f,
+0x03cfa645e,
+0x01f2197bc,
+0x09385427c,
+0x04b40953b,
+0x081ae6171,
+0x065e8e280,
+0x09097b651,
+0x048f35e02,
+0x05bc60bd3,
+0x08fbe2c74,
+0x07b1fca00,
+0x05c785354,
+0x047136cd3,
+0x025ae0516,
+0x020b5cc0d,
+0x0ad8d0cad,
+0x0cb6699a0,
+0x0792a569b,
+0x0ff9029d9,
+0x02db0d1e4,
+0x015c604a5,
+0x0709ad7ff,
+0x0c0b02818,
+0x053d161fa,
+0x0cfdbe6de,
+0x064b12829,
+0x01e58a029,
+0x06770b13c,
+0x01bfceb60,
+0x0ff961e49,
+0x0b1e379b1,
+0x0ff47679c,
+0x08425f71c,
+0x00f40cfe1,
+0x0fa362223,
+0x061dc8c0e,
+0x02c792e66,
+0x013b8e7de,
+0x06fc96e90,
+0x019ad5bdd,
+0x0839e4ca7,
+0x0b519e116,
+0x067460c81,
+0x01a374d0b,
+0x099ec2868,
+0x0cc3f782f,
+0x09a84437e,
+0x0227c10c3,
+0x0b34bcb04,
+0x0d0254119,
+0x0cdd2efcb,
+0x06ef15d13,
+0x0caba92d3,
+0x04304b59c,
+0x0bc35b0b3,
+0x028e14140,
+0x0f1898db9,
+0x01b2b1404,
+0x0696dd3d2,
+0x07e354f50,
+0x0ba622d58,
+0x05accc9f1,
+0x00ce11d52,
+0x02cc36cee,
+0x0d5899567,
+0x023a15168,
+0x0af7566c5,
+0x003b8ed06,
+0x06bc00100,
+0x08f8f4111,
+0x023fb02aa,
+0x08e3b33e4,
+0x0bf735a31,
+0x02974d5f7,
+0x06859496b,
+0x06bf74fc7,
+0x0a8b2a569,
+0x06375933b,
+0x09763da64,
+0x02af6126d,
+0x0524df007,
+0x08f299824,
+0x01f45febc,
+0x0aa480bb0,
+0x07ff1ee93,
+0x07458f49a,
+0x04b51fd28,
+0x07f72da7e,
+0x0821e0853,
+0x023879a51,
+0x0d089b54a,
+0x0577a15af,
+0x059b0f3ab,
+0x087d59486,
+0x0f6a4aa3f,
+0x0bcfe3b70,
+0x055dbacd1,
+0x05f908fc6,
+0x03ba52c2a,
+0x005fd5617,
+0x0bdd4b7c2,
+0x01285ff07,
+0x0a13ff3d1,
+0x08912807d,
+0x00e7c2710,
+0x002a073ca,
+0x089ade413,
+0x072c7d70c,
+0x072e9fe79,
+0x05fb0d605,
+0x0145b9a5e,
+0x0fc090b06,
+0x0e9ae01de,
+0x01afb8e94,
+0x0826e20a5,
+0x0a9459fc3,
+0x0f47e2194,
+0x0f68522af,
+0x0835e2639,
+0x0546a0aa9,
+0x0413ddee1,
+0x0a485d119,
+0x086cbcb31,
+0x0c0ab06a1,
+0x0727150a6,
+0x06739486d,
+0x05b5a2e52,
+0x0301272ac,
+0x026e7dd8b,
+0x0f6b657cd,
+0x0539f465b,
+0x0a030d3cd,
+0x0db111f8b,
+0x0d1d064cf,
+0x01a303fc2,
+0x07339cf0a,
+0x07bfb3283,
+0x0e09fc45c,
+0x035f788f2,
+0x033d29556,
+0x0b4cb6a5e,
+0x085591ba5,
+0x0d46aeeed,
+0x077ec0e03,
+0x0291aa731,
+0x0eaaa1303,
+0x0eed2c77f,
+0x07f518f7a,
+0x0feb9c473,
+0x0f07799b6,
+0x0bf96a324,
+0x0a757b580,
+0x06f0cc394,
+0x0145075da,
+0x0081811e4,
+0x0ce93a5c2,
+0x0d9b7412d,
+0x0b3cc02e8,
+0x0a42dd3a5,
+0x080b86989,
+0x05c5f9bde,
+0x0a9ffb84d,
+0x0318cd4ee,
+0x0deb96c94,
+0x0047fb4bb,
+0x0ab820009,
+0x04eee4427,
+0x024a8398d,
+0x09ca80764,
+0x097b3a3c4,
+0x0edb82cc0,
+0x05bdaca8e,
+0x018c7ed2d,
+0x065634e3f,
+0x06bf3281f,
+0x05c820418,
+0x0c7f5af07,
+0x0af39180a,
+0x0c3725060,
+0x0cf5d429b,
+0x0b732a927,
+0x0677405bd,
+0x03da67bef,
+0x09212e532,
+0x0f27299f2,
+0x03126eb89,
+0x0d303c551,
+0x0a56e551c,
+0x0d865a3f0,
+0x07009be33,
+0x0fa716db9,
+0x0fa8a997a,
+0x086809518,
+0x0dafc66dc,
+0x05613ef99,
+0x0fee92b10,
+0x0bca7a45d,
+0x04343aff4,
+0x0b3b346ff,
+0x08ed82a1b,
+0x0ac626a6b,
+0x0c17b0f0c,
+0x03aa020a8,
+0x06130c5f9,
+0x0c0166841,
+0x0802414db,
+0x0acdc66da,
+0x0a70ff7d1,
+0x0d00cce95,
+0x0397dc3ad,
+0x023fab591,
+0x0e7fb959f,
+0x07fda7adc,
+0x096245bce,
+0x0b0f269b4,
+0x075e78e95,
+0x0782fb615,
+0x0a6ca0f1b,
+0x0bfb4e028,
+0x062c26803,
+0x0fd3a8d9a,
+0x0f27ee268,
+0x0dda9850a,
+0x04a40101f,
+0x092676e9c,
+0x03129249b,
+0x0c0b4fe77,
+0x0653e32f5,
+0x0e8356584,
+0x024fdb369,
+0x0ed89025c,
+0x0d75b067b,
+0x022e188c7,
+0x051928af9,
+0x02363fb1b,
+0x0b1ef966a,
+0x036e6cde2,
+0x03f54dd58,
+0x0a34a37c1,
+0x0aec245ab,
+0x06184a35c,
+0x0a6235451,
+0x0d215d068,
+0x0a648137f,
+0x0547ab213,
+0x09619c00e,
+0x02c9096bd,
+0x0a986b95c,
+0x08741fa26,
+0x01389200a,
+0x0a7ce72bc,
+0x0230a444a,
+0x0ff268d4a,
+0x0c5490726,
+0x02d4733ee,
+0x07d9806ba,
+0x016aeab18,
+0x083a03ce4,
+0x00d43b57b,
+0x0b625c61f,
+0x0cf7cebb9,
+0x0aea15c33,
+0x008ba5317,
+0x047c7eed2,
+0x0a0d8d16b,
+0x0ae1a2799,
+0x08ea45c3e,
+0x085afebe5,
+0x066c5273b,
+0x00bea5479,
+0x064234417,
+0x0f6744b9a,
+0x09fb05ca0,
+0x0e1c4ba53,
+0x0f5e168a7,
+0x011d37491,
+0x082bd56ef,
+0x01bf99a04,
+0x0e3a83d61,
+0x0678ceea2,
+0x08f94994d,
+0x0e29c5149,
+0x047b41929,
+0x0e8e1d3dc,
+0x039ed3e0e,
+0x0977702cf,
+0x046fddc59,
+0x088a71d78,
+0x0ffb895f1,
+0x0fe101f13,
+0x0a78ec2b1,
+0x0ff828bc4,
+0x02ea5ec5a,
+0x061c2618b,
+0x06946b55e,
+0x00dda21ff,
+0x0b17f9617,
+0x0c370f826,
+0x04318da25,
+0x0bca38d81,
+0x0e8a5d01f,
+0x06d86fcac,
+0x04cc9eae3,
+0x01eefb8d0,
+0x026354752,
+0x065d9c942,
+0x09050aa50,
+0x0459ded48,
+0x002fa50c3,
+0x08872d505,
+0x0fa12a35d,
+0x042dc4938,
+0x084ea8334,
+0x0caac7b64,
+0x0a99865a1,
+0x02a62d48a,
+0x0a26b29cb,
+0x03cfeea25,
+0x0d8ad951e,
+0x06add074a,
+0x086dceabe,
+0x07a4b9e11,
+0x0ee0694ba,
+0x0501a0eae,
+0x03eeabc9d,
+0x002943ff9,
+0x0d2e820b9,
+0x081e76b87,
+0x0e4cae57f,
+0x0bd2348c1,
+0x0b46285ea,
+0x03718b3de,
+0x0a38a6600,
+0x00e238331,
+0x0744e245d,
+0x01bac619c,
+0x05b472e44,
+0x0028ca977,
+0x0b573a43d,
+0x0701a3a1b,
+0x0f191dcc2,
+0x0a892bb13,
+0x0be66582c,
+0x0836f44ba,
+0x065cb4cb6,
+0x0459bafa0,
+0x01d250872,
+0x0178039ba,
+0x0dd8ba3ed,
+0x065766b8f,
+0x052eecc3e,
+0x075b48ace,
+0x01e85855c,
+0x09f698782,
+0x0586fe893,
+0x0816443f8,
+0x03145087d,
+0x0d0e24239,
+0x0c5846c7c,
+0x085429e07,
+0x0b20a1c2d,
+0x0d7709c9d,
+0x0808ed40c,
+0x09c6966b1,
+0x0e99f2bc6,
+0x0448fa9da,
+0x04e135676,
+0x0b81e7230,
+0x0838aa297,
+0x0d5422656,
+0x03e6fd993,
+0x0ec73b89e,
+0x094416e14,
+0x0b1909628,
+0x02864d050,
+0x00f31757a,
+0x0cf1d83a2,
+0x043c19729,
+0x02a24ab06,
+0x096c553b9,
+0x036fbb8c9,
+0x0abea3271,
+0x0bd540f67,
+0x068a37931,
+0x0d6e53cad,
+0x0b09f44aa,
+0x01e1cb8a5,
+0x0212f8a38,
+0x070dce487,
+0x046bb4eb8,
+0x0dcf68e58,
+0x0ec4065a7,
+0x0324730e9,
+0x0721c83ab,
+0x00b618802,
+0x0e12ccd17,
+0x028c06d64,
+0x02ed71cbf,
+0x0469642f0,
+0x093f53f8a,
+0x0b7fe98d1,
+0x071d3a914,
+0x0727958a2,
+0x054ea5bf4,
+0x0cd274331,
+0x04abd9df8,
+0x02fcf269c,
+0x090d74b39,
+0x04aeecf17,
+0x07de78966,
+0x0d7b25508,
+0x01f4009fc,
+0x0a29953d2,
+0x08e94044d,
+0x0a999eb05,
+0x0da53fa38,
+0x0d3fad67b,
+0x0755ac6e9,
+0x0ffe810f3,
+0x0a7ed5320,
+0x06eea3f8c,
+0x0a099c4fe,
+0x036cd1bd3,
+0x0b18464f6,
+0x02b8dd21a,
+0x079c533e6,
+0x0d7c1838e,
+0x0cf9b265b,
+0x015c4fbf2,
+0x099025728,
+0x059779efe,
+0x0034f835c,
+0x042bd53aa,
+0x09ecfdd69,
+0x0015ede64,
+0x0ea775e5c,
+0x0d6c354c2,
+0x07f1fe5e1,
+0x0983c0c56,
+0x08e08c4e7,
+0x07307a8cd,
+0x02973a9e0,
+0x0bfc97ed9,
+0x07371be3d,
+0x01c7ca481,
+0x0e2533258,
+0x0798bf9ea,
+0x0bed7ad6c,
+0x0ffd25031,
+0x0625fc6f6,
+0x0f88c1111,
+0x08e7273c2,
+0x0ad94106e,
+0x06ce9218b,
+0x0b5faa890,
+0x0c3d7251f,
+0x014d44c11,
+0x07c5d8e57,
+0x03239cd47,
+0x0e01b921c,
+0x0214607f1,
+0x05c79faf1,
+0x0a1d4bfc5,
+0x03a5547d4,
+0x020d1a568,
+0x01794ed4c,
+0x03cb2a7c4,
+0x01aa02e2d,
+0x0b6ca8e1f,
+0x0d59e2c90,
+0x08989f648,
+0x096f85230,
+0x00a5f5b55,
+0x07956c10c,
+0x05967547e,
+0x051307ce2,
+0x020396fa6,
+0x071efd640,
+0x01258c1c3,
+0x0d8a7ec27,
+0x071e7ac77,
+0x01608a00f,
+0x0a3590efe,
+0x0ea559c76,
+0x0b1ef675a,
+0x0c434929d,
+0x0ceac0248,
+0x057d72a2d,
+0x0f03a6755,
+0x0148fa3d3,
+0x0cc33d0d2,
+0x07950948e,
+0x0dae21c1b,
+0x0b2f04b27,
+0x0a20b8f28,
+0x0bed18a12,
+0x09b4efdf8,
+0x0f36f117a,
+0x0f3630ad3,
+0x0fbc6becf,
+0x0a3d9bedf,
+0x0bcf3b738,
+0x092a544fc,
+0x0e921d578,
+0x0e2f4b4f1,
+0x0d42f2e4a,
+0x071028514,
+0x075e1bf4a,
+0x0ee086695,
+0x0acb9180e,
+0x06643aa0e,
+0x057e86095,
+0x060f6b05c,
+0x0d29527ce,
+0x0c09cabbb,
+0x04b61fc59,
+0x076a14207,
+0x011f2d522,
+0x08882543e,
+0x063e218ef,
+0x05cfa9236,
+0x0d626dca4,
+0x0dbb3736c,
+0x0e8f2efc1,
+0x01eea6cf0,
+0x0df844ee4,
+0x04128ecd5,
+0x002c7588a,
+0x0e99b0e82,
+0x017284445,
+0x0546f7e97,
+0x0fd605eef,
+0x0c648f31c,
+0x0ca0cb0bb,
+0x0c1c7929a,
+0x097a76cf0,
+0x05e9e8040,
+0x05baace03,
+0x003524eba,
+0x06b71c2a7,
+0x0fbf06914,
+0x02096448e,
+0x0844ee661,
+0x060739023,
+0x0c81fef95,
+0x0c2d83ee3,
+0x02ed2d94e,
+0x0d88b3871,
+0x0729746f8,
+0x0fbb05953,
+0x007230694,
+0x08e796122,
+0x01b114e49,
+0x0cfcfae36,
+0x0670e4269,
+0x08655b32b,
+0x057c07f51,
+0x072fbeda2,
+0x0f363fdd7,
+0x00d2bd114,
+0x03caf5fd7,
+0x0086f3a2d,
+0x09c16930e,
+0x0240b13e8,
+0x016fcb95b,
+0x0b303641e,
+0x04019242e,
+0x024816f77,
+0x08b7b61f5,
+0x049979294,
+0x0e50cc437,
+0x0147bd945,
+0x05b5a81c3,
+0x0cb3e95ab,
+0x0b6e4ddf1,
+0x0820613fe,
+0x00a30f7bf,
+0x0c19b3398,
+0x06f9cb6ba,
+0x07bc15b9a,
+0x0685e7463,
+0x0d74c1910,
+0x08257b908,
+0x0cc27bc38,
+0x0d30512af,
+0x0f9366c29,
+0x0645f1902,
+0x0e497ae2f,
+0x00df2755d,
+0x07fbb82cd,
+0x04d123dc4,
+0x00019cff4,
+0x0fd84dca8,
+0x0af75f67e,
+0x055b9bc90,
+0x033e54769,
+0x0867457d7,
+0x059e27d98,
+0x00cbbc76f,
+0x0204310bc,
+0x0d37a26b1,
+0x04c1f9ece,
+0x0662f1aec,
+0x081a89ad7,
+0x0d3f955eb,
+0x0ce7e4884,
+0x0eb89029f,
+0x0ebad60ae,
+0x0e75f58f9,
+0x03723bf1b,
+0x09771f50d,
+0x01135be4e,
+0x01b769908,
+0x0f541d092,
+0x0099d0622,
+0x093a4db12,
+0x077b782b9,
+0x03e3b68f2,
+0x0d8f657c0,
+0x058fc71b0,
+0x049abb73d,
+0x0b13d4212,
+0x0700fa21e,
+0x057e1dd70,
+0x0bc92cbaf,
+0x0945faebe,
+0x0e5d731d1,
+0x0907783eb,
+0x0a402b18a,
+0x0e275d353,
+0x070dc48dc,
+0x00f5ee0b9,
+0x099215e0a,
+0x05866de38,
+0x0977b8ee2,
+0x0bcd705c4,
+0x03599e2ec,
+0x08872ce01,
+0x002d04cbb,
+0x04e168f07,
+0x01aaeef95,
+0x07823ac23,
+0x0475b7a7d,
+0x0439e436c,
+0x01b240d6b,
+0x08342b95e,
+0x06337ef35,
+0x0edb7475d,
+0x02510ea8b,
+0x04a2aac87,
+0x0cd8f0ed9,
+0x0484a1daa,
+0x088754296,
+0x059960fe8,
+0x074829468,
+0x0dd7fda06,
+0x01ffb6375,
+0x024542af2,
+0x0ae5a9366,
+0x017c6088e,
+0x02c0a1b3c,
+0x0d82690bb,
+0x096118497,
+0x008325c20,
+0x0b15819d8,
+0x0eb182d94,
+0x031607425,
+0x0565772a0,
+0x0c1de64b3,
+0x0f9a2ee47,
+0x068679f02,
+0x02ed75427,
+0x030717ae7,
+0x09c73bf51,
+0x09ffa62e5,
+0x0574a5dd3,
+0x01f0d7e48,
+0x05b325cc1,
+0x0868cd449,
+0x027272045,
+0x04263984a,
+0x0a5bae202,
+0x06c024187,
+0x05060ccb3,
+0x0001b9d14,
+0x0884e8bc1,
+0x0fde549e0,
+0x0338818b4,
+0x0af1aad93,
+0x08612f1cc,
+0x0ebef6f96,
+0x06bce15ff,
+0x0c09200e8,
+0x0397b8698,
+0x03837405e,
+0x0520a55d7,
+0x08316cc86,
+0x0715d7350,
+0x0665c43d5,
+0x0b50a19fa,
+0x097745ca0,
+0x0ba024940,
+0x07f6e8630,
+0x0b8eb813f,
+0x0463a0f79,
+0x076391506,
+0x0cc53d2d9,
+0x091e5eef4,
+0x01061380c,
+0x05c76b6a0,
+0x0fd16a1d6,
+0x0f43c4bd2,
+0x02bd7bc4a,
+0x0ac282e6c,
+0x010b2a052,
+0x0e53c9cbc,
+0x0c8592bf6,
+0x08f66ffbb,
+0x06d41e9c2,
+0x042a345d4,
+0x053c02799,
+0x0aa49fc7e,
+0x03ae83c23,
+0x013d651fd,
+0x0ebee792d,
+0x05d8be4a1,
+0x055583d23,
+0x09d53df59,
+0x0ed6629c6,
+0x021da62d9,
+0x0c65040c7,
+0x02d4bc391,
+0x0147097e4,
+0x0a2aabfc7,
+0x06926fd20,
+0x0f1edb36e,
+0x0f2c5d08e,
+0x0d11808cd,
+0x0bfd49eeb,
+0x0d59bf53a,
+0x07db8d5ce,
+0x03e38ba7c,
+0x0eebeb80a,
+0x01dc2324f,
+0x04755308d,
+0x01185505e,
+0x09be76937,
+0x065b2fc32,
+0x09cbad219,
+0x0bfb935a0,
+0x04420e682,
+0x0354f63de,
+0x0c248055b,
+0x07248738b,
+0x0c45f1371,
+0x0f177bc48,
+0x04e248679,
+0x0cc9de602,
+0x001fbc3ff,
+0x0bdd0bbc9,
+0x08bc04186,
+0x0dcaf1ddf,
+0x006795f38,
+0x06807d08f,
+0x06066ce41,
+0x0332bb0ce,
+0x0422654f0,
+0x059127c33,
+0x023edd30b,
+0x0e1e9e1e8,
+0x08c5a5657,
+0x0a1f4af1a,
+0x0996af2fb,
+0x05ece0a8d,
+0x02071f572,
+0x099da00f6,
+0x0462fda3a,
+0x0b6b86752,
+0x0e72664d4,
+0x0e9f84ad3,
+0x0a6e0a924,
+0x03c8b8edc,
+0x0df0875fd,
+0x0fd1e05fa,
+0x09af72d98,
+0x00d8cace4,
+0x06c9356b9,
+0x0dd1c03a4,
+0x0b3b8d8de,
+0x095353572,
+0x004a059ae,
+0x0688f1481,
+0x0648226f5,
+0x0b336beee,
+0x0ad8f60df,
+0x0cc3cb177,
+0x0dd0e1840,
+0x031f6dc38,
+0x065d0e565,
+0x0f7d425e8,
+0x07175eef4,
+0x0a9a9ec59,
+0x02f15c654,
+0x051f6947b,
+0x0316489e5,
+0x08ab907d9,
+0x0eb5629a9,
+0x057bb860b,
+0x0cd434d37,
+0x0a27c480a,
+0x0af70e785,
+0x0b0a608cd,
+0x0e200dcb8,
+0x0b3699507,
+0x082cf78b6,
+0x00dcb66c6,
+0x0102683ee,
+0x0176078d7,
+0x03c0f5566,
+0x015db4bb0,
+0x02efa86e1,
+0x00d10b540,
+0x0ac238389,
+0x09f2e5abb,
+0x08fe00395,
+0x06af5713a,
+0x0b676a74f,
+0x0ae70d3ea,
+0x0e70ec60f,
+0x047e40a1c,
+0x0dba89fa5,
+0x0884f7693,
+0x0972111ba,
+0x00a6f2079,
+0x0f7df0371,
+0x0065ea034,
+0x0dbf50a07,
+0x0ffe148f8,
+0x0e9a4b6c2,
+0x0f0f4a5a5,
+0x0ba760070,
+0x02782648a,
+0x0a274b996,
+0x08d2cc42c,
+0x01d6eeff7,
+0x0431d92e2,
+0x088f957e1,
+0x0d958f36c,
+0x05ac02243,
+0x0f7fd3adf,
+0x0c877d4df,
+0x0b356343e,
+0x02fec4630,
+0x06016efdd,
+0x0b52bf6e5,
+0x025845224,
+0x0b40ff2b5,
+0x0231c7ab7,
+0x009fb08a5,
+0x05c69bf3f,
+0x06f58c635,
+0x0c02bb690,
+0x0e8d96350,
+0x06f2bb16f,
+0x040c3fc0d,
+0x059002fec,
+0x04902bc82,
+0x048caa812,
+0x060fefa31,
+0x0f09bf0e3,
+0x095ca25ca,
+0x09c5da048,
+0x01b9bbc1f,
+0x0c1d07ec1,
+0x0e621ecdc,
+0x0b3229862,
+0x0f88f9530,
+0x0b755456f,
+0x02cfb2a1e,
+0x07023a789,
+0x0f80e7ea0,
+0x097352b6b,
+0x0e18b5d0e,
+0x0fdb21dad,
+0x062ddc2e9,
+0x030ac8fd3,
+0x0ee63ea2a,
+0x08b1221f3,
+0x02fc18628,
+0x07d3c0d20,
+0x07c65a42e,
+0x092c95bc8,
+0x0d315600f,
+0x0677cac3e,
+0x0249d35ea,
+0x08a8f21cf,
+0x09744e0ee,
+0x0d9130836,
+0x016cd09b5,
+0x0bacfbbb1,
+0x07fb6f523,
+0x0bd1f8a61,
+0x03ded18c4,
+0x0851dbcd6,
+0x0779a3188,
+0x05ef6c050,
+0x062d88c67,
+0x0088b8581,
+0x04e0eda82,
+0x0fa563d17,
+0x0d63b7f0b,
+0x0a3a1eae1,
+0x0f7b5a538,
+0x0999c6837,
+0x076b6e37e,
+0x01b7b290e,
+0x05327526f,
+0x0c7dea8be,
+0x052bcbbcf,
+0x09792dfe8,
+0x0655f873a,
+0x097ea1e7c,
+0x0933ebdf2,
+0x02d52509c,
+0x0d99f0e80,
+0x01c222aea,
+0x0072f092c,
+0x0e86d9385,
+0x0e4a939f1,
+0x02fd4a80a,
+0x0a767bb1a,
+0x028e6dc15,
+0x072627c8e,
+0x0d890f211,
+0x08eea7f87,
+0x004f2b524,
+0x0ebc272a5,
+0x0cbe26ec1,
+0x0fbb38688,
+0x051f060ac,
+0x055ee6291,
+0x0f457ecbb,
+0x0841a4615,
+0x06b11bcec,
+0x026182001,
+0x0e8e6ee6f,
+0x0454dcc1b,
+0x0b0a00569,
+0x04c776c8d,
+0x083ca730b,
+0x0c370e1f1,
+0x084c0cfb1,
+0x07f639782,
+0x05bd2fd7b,
+0x01028ee76,
+0x092023673,
+0x066c431c3,
+0x078a82ff5,
+0x0b18338d6,
+0x018e9fdb1,
+0x06fbd468d,
+0x0a37b526c,
+0x05cbe62d0,
+0x0c53545bb,
+0x0cfe1aae7,
+0x08be7acc6,
+0x0b8f0c715,
+0x02ba987f9,
+0x0c66d6cf4,
+0x0c9174361,
+0x0f12ff58f,
+0x0ab44953e,
+0x0b62e0518,
+0x043230fb4,
+0x04502ef93,
+0x0ce5d30c1,
+0x0633e952a,
+0x0f561b996,
+0x05dc11180,
+0x07ba617f0,
+0x0b71d682b,
+0x0ad02e3af,
+0x03aa802f8,
+0x043396c35,
+0x0337a6c13,
+0x0c9aec342,
+0x01c117b45,
+0x026da0188,
+0x05a3ff359,
+0x0e3e636a2,
+0x0159bb43b,
+0x01434bc99,
+0x031c0362c,
+0x050238402,
+0x0c9c44096,
+0x0a399d26d,
+0x025dd446c,
+0x003ed0928,
+0x0ce77e6e1,
+0x092e9ff6a,
+0x04db1b641,
+0x09aa564c7,
+0x096ba84e5,
+0x0bddedddf,
+0x0cf004368,
+0x000d0a28e,
+0x0b1693eea,
+0x0f59fb333,
+0x0beb3ecdd,
+0x05f7eac2b,
+0x0e62bd282,
+0x033f40897,
+0x00c4d3495,
+0x0ad24bcfc,
+0x0cfe36aad,
+0x0fa89f2f8,
+0x0bc9be7b1,
+0x020a21415,
+0x0fee904a6,
+0x0ea84ba5e,
+0x08a968d3d,
+0x06192003b,
+0x04b17935d,
+0x0581d12a1,
+0x0485d00da,
+0x02cf580fb,
+0x0c98e75df,
+0x078b83ab4,
+0x0fdf98e28,
+0x0359cf118,
+0x0d07ccd8b,
+0x0f91c71f8,
+0x089c07cea,
+0x0173d6577,
+0x0fc486250,
+0x05738ff27,
+0x0ada28b1c,
+0x0614d7564,
+0x00046c4e7,
+0x0ae1df67c,
+0x0f1c1c78d,
+0x09e5cf524,
+0x0a5a95ad0,
+0x0e1dd2ba2,
+0x09b0fcc5d,
+0x04e82f094,
+0x07769d934,
+0x00a1653be,
+0x0b1e86d3c,
+0x0474ee24f,
+0x082ab972f,
+0x06c814919,
+0x064cc087b,
+0x0ab3a6019,
+0x05df03e15,
+0x0c4e1979b,
+0x0e734c3f6,
+0x05b2d3d7f,
+0x04c6e8691,
+0x06adaa2af,
+0x06579daa0,
+0x058e6147f,
+0x0622e93b9,
+0x089f95803,
+0x0c3a501b6,
+0x04a7243ef,
+0x04d2ca8d7,
+0x0b937234a,
+0x0055b2021,
+0x04cc06495,
+0x06e831a68,
+0x0d376a6f2,
+0x0ad637dda,
+0x00f5ae01c,
+0x0edfce529,
+0x083076e34,
+0x04b1720d3,
+0x0432f52cf,
+0x0c2c08038,
+0x01e3c6838,
+0x0a3b37636,
+0x064334134,
+0x058d55d3c,
+0x07de88857,
+0x03fea7ea2,
+0x0b1ca6562,
+0x05bccb67a,
+0x0f9c3a952,
+0x09563bc26,
+0x0e2ae0b89,
+0x0e2d21ef6,
+0x0a3e04d35,
+0x0eb81bfbb,
+0x02eceb803,
+0x084948e92,
+0x081e67f48,
+0x0d573a126,
+0x0911ebffc,
+0x05b65c916,
+0x031de39e8,
+0x086c0a00b,
+0x04e17c0db,
+0x03e85530d,
+0x0b8a21d41,
+0x052e6d617,
+0x04884fe95,
+0x04694ba1c,
+0x0f00e04b0,
+0x0c416d862,
+0x0024cecaa,
+0x054f5be28,
+0x0dacff449,
+0x050bfeca4,
+0x0d44fd375,
+0x09a2db4d7,
+0x02f01ff6a,
+0x0d20e1c1c,
+0x061fa93c3,
+0x068820623,
+0x044f4bffb,
+0x0a55b6404,
+0x0c1192511,
+0x00204f115,
+0x01996eb03,
+0x0e7d1e22c,
+0x00f7fcd77,
+0x0d3bfd265,
+0x097f78966,
+0x0c5d291c1,
+0x0a3ee10ef,
+0x0c3e821f6,
+0x08dcc4065,
+0x0ce02c0e2,
+0x043f8bd21,
+0x0e5af121b,
+0x0d14cc79f,
+0x0c8878a30,
+0x015dba316,
+0x0e1725583,
+0x0a866c209,
+0x060e8afcb,
+0x0f335cc58,
+0x009ba81d7,
+0x0e83e8187,
+0x044eadb58,
+0x03a7d7bc0,
+0x0ffd42a84,
+0x08802faae,
+0x01d4afc83,
+0x08b3639f8,
+0x04af0bc42,
+0x0b077684a,
+0x05c1059c2,
+0x0156787f3,
+0x03498966b,
+0x0d426296d,
+0x0fdfb7c01,
+0x0d6122609,
+0x044bc1937,
+0x02f4473dd,
+0x0a9972ab4,
+0x046a15a0a,
+0x0105b545a,
+0x08b19a92e,
+0x0592e3977,
+0x044e48c62,
+0x0a75a4a3d,
+0x0d2dcb213,
+0x0d6e911da,
+0x0db506864,
+0x0348f8e7f,
+0x05f3d2501,
+0x001793c21,
+0x07c7155c2,
+0x04f44c348,
+0x020f44ce5,
+0x0f02ea54f,
+0x0684e44f1,
+0x066951962,
+0x0b0baa438,
+0x0d39c70b8,
+0x04a77444b,
+0x0d6dff31e,
+0x04fc4ed3f,
+0x02e5fdb48,
+0x0a2f19726,
+0x02cada4f6,
+0x00d16f812,
+0x05719f53e,
+0x05857cc92,
+0x0c614c143,
+0x096cc0545,
+0x0f6a267c0,
+0x05379c8ec,
+0x0c04c66c0,
+0x0c5b30f9e,
+0x05764f411,
+0x0f64f099c,
+0x0a060b65c,
+0x0ef6caf62,
+0x0ba2733f9,
+0x08237366d,
+0x031024ee6,
+0x0b06ef1d5,
+0x03d3d4912,
+0x098f64498,
+0x01d67435d,
+0x0f17df671,
+0x0de96c2c5,
+0x0622fe24e,
+0x0d1d03b64,
+0x07665d551,
+0x012c1a6c6,
+0x0656b4f1b,
+0x060ddb4a9,
+0x0ad0e4b19,
+0x01fe571a0,
+0x09a160722,
+0x02b894a09,
+0x0f3615ff4,
+0x02651c3a9,
+0x0a1e9839d,
+0x0c46d1c39,
+0x0267d31fc,
+0x07e4480ff,
+0x03b78d3cf,
+0x0eaa4e082,
+0x0142c92ec,
+0x0f1b80ee6,
+0x0c0981177,
+0x0d997d07f,
+0x0a7cb292e,
+0x0152b3944,
+0x09d941190,
+0x0de1508c0,
+0x038498f28,
+0x0e5839721,
+0x0072fdb69,
+0x09130f44c,
+0x03658171d,
+0x0173f7be3,
+0x0f90824d8,
+0x0b0b8197e,
+0x04fd47a31,
+0x033f627c0,
+0x09c855b88,
+0x0fb550445,
+0x03d1abd01,
+0x0f925d1a6,
+0x03ab60326,
+0x0ae0f3e68,
+0x0f0c6f9ab,
+0x04b961b37,
+0x08851f5fc,
+0x09cb96709,
+0x010793294,
+0x0ef87489b,
+0x0f2f13862,
+0x0ecbfe7ab,
+0x00b6710a0,
+0x0c338439e,
+0x03dbb181e,
+0x0d3f1ab0d,
+0x0cca39d2b,
+0x076771496,
+0x0e09eeab5,
+0x0efc337de,
+0x0e3995493,
+0x0922d9ce5,
+0x0e3e6d163,
+0x00e4220ce,
+0x0d9f274d6,
+0x0d8dd5cd1,
+0x06a4d0dd3,
+0x0040edfca,
+0x02a3057c3,
+0x0149189b6,
+0x0826c25c5,
+0x0d9947ce7,
+0x00f478bfb,
+0x08c134922,
+0x01f72a82b,
+0x0d92f8e5e,
+0x0aaa9aa3c,
+0x0a1e65bef,
+0x0dafd6994,
+0x035fb0c32,
+0x0b514893f,
+0x067bd3452,
+0x022f31e97,
+0x0c109a348,
+0x0466d13d9,
+0x04e89e6d8,
+0x02e8f45ad,
+0x02d19c1ce,
+0x051881124,
+0x0f513d7be,
+0x04e5efae7,
+0x05153348a,
+0x0f19b7744,
+0x0dcd290a4,
+0x0b04505b7,
+0x02ebff1c2,
+0x0787f4ee3,
+0x0bcaa802c,
+0x0787c9412,
+0x0865a7f5d,
+0x062756fca,
+0x063d3dee5,
+0x04b53e1c4,
+0x086a2b1c4,
+0x049e6dc58,
+0x00d3b9167,
+0x013143324,
+0x010b09878,
+0x054b58363,
+0x049ecd0c4,
+0x0180eb361,
+0x011db31f9,
+0x05b26a24a,
+0x0f9f95656,
+0x0ae76f650,
+0x0be05df89,
+0x04b64fa46,
+0x079dab1a4,
+0x034901409,
+0x082b030ea,
+0x0cc91b065,
+0x04e2b7d32,
+0x050a9d818,
+0x00ebbb941,
+0x048f7b4f7,
+0x02e298a98,
+0x098b8e30f,
+0x07588e360,
+0x0a8111b84,
+0x08771c651,
+0x084db08d0,
+0x0a28aba03,
+0x000807e10,
+0x041759a39,
+0x0ae50e94f,
+0x0a0c735db,
+0x05e582276,
+0x09df9ef2e,
+0x0e05d261c,
+0x0a4e2e68d,
+0x016f4946c,
+0x015cffcf2,
+0x05da5d728,
+0x06b10a3c6,
+0x0ac625747,
+0x05cc6ef8f,
+0x09100ef19,
+0x03c8b3b53,
+0x03dc33c31,
+0x03287da37,
+0x02faa4b5b,
+0x07e03b6cc,
+0x09abafc96,
+0x062ca2722,
+0x063525a54,
+0x04006c809,
+0x0a9dd80fc,
+0x041386734,
+0x0ff35250c,
+0x07d727696,
+0x0de0d8ee2,
+0x07a979fdf,
+0x027a4c7c3,
+0x0170a185b,
+0x06cfc9ca9,
+0x09d81900d,
+0x0ac242ea8,
+0x07d6c0ade,
+0x037c72552,
+0x0021d0c0f,
+0x0f8b18b37,
+0x04ec3966c,
+0x0a8ab2510,
+0x084a5c88b,
+0x00a9e4bbe,
+0x01ced3068,
+0x0d6a0bec0,
+0x00a454b47,
+0x0cb1632e6,
+0x0f7f9bb17,
+0x0539d927a,
+0x044e433cc,
+0x09c95b7ba,
+0x09954864c,
+0x0b55ce500,
+0x07b30b4df,
+0x07c1e2308,
+0x00a689dbe,
+0x06b1fbcaf,
+0x02bf73c26,
+0x04bcbf6f3,
+0x03de6b035,
+0x066481ce3,
+0x02f1ec5b4,
+0x01ef744ef,
+0x045a0fe7f,
+0x0bad86ab7,
+0x0d7c93d83,
+0x00d44d518,
+0x06c7fd64b,
+0x0b653f33f,
+0x0af2a56e9,
+0x06beccb54,
+0x02767d232,
+0x05d14b801,
+0x037df0166,
+0x06236004c,
+0x015851861,
+0x04a4f22e9,
+0x05ac7dd8c,
+0x00761142b,
+0x072f8bab3,
+0x0d9cd5b14,
+0x081f3ee67,
+0x013f2e121,
+0x0dbd14c21,
+0x0deba5c0e,
+0x034d61f56,
+0x00003c9b3,
+0x06890fd20,
+0x0d8b02474,
+0x08bca569d,
+0x05c60e3cc,
+0x00d4ec16c,
+0x0a1dec842,
+0x071333438,
+0x01f2dd55a,
+0x0e19d95c1,
+0x0308b92ca,
+0x01fac2e77,
+0x05b72bbb1,
+0x07b1cc420,
+0x0ec8080e5,
+0x072e3f1b9,
+0x03a6a04a2,
+0x0b31ce048,
+0x0e2db2078,
+0x09e5332bb,
+0x0de036c2c,
+0x024d1d60f,
+0x094f286cd,
+0x0918ce883,
+0x0e6ca89f6,
+0x03e1731be,
+0x0d331de1a,
+0x0e91db7c2,
+0x00b495f93,
+0x0a72959eb,
+0x0e2756d49,
+0x030e3df89,
+0x084c7050a,
+0x0cb6ea174,
+0x0e7ca4b35,
+0x0844ca288,
+0x035fe2b22,
+0x0abefeb5b,
+0x08a0a69c6,
+0x06c2ea036,
+0x0030296ab,
+0x00d242209,
+0x0d79e077c,
+0x094980863,
+0x057274ca3,
+0x07e15af94,
+0x0142a3c04,
+0x052a72ddc,
+0x027b6920d,
+0x046baf2ca,
+0x0a9358d08,
+0x095a06790,
+0x0f941a732,
+0x0f8a59477,
+0x04bf91d6e,
+0x0678f35e6,
+0x01c9d60f9,
+0x0510ed180,
+0x0eefffd41,
+0x0cdf2dc3d,
+0x04909055f,
+0x06321b830,
+0x04b83deb4,
+0x0621b1d9d,
+0x011d8de44,
+0x06e4093ec,
+0x0ace90349,
+0x0709a9dd1,
+0x039374009,
+0x08a59b1cd,
+0x09c75f359,
+0x09353e0c5,
+0x07d778454,
+0x0819dc15a,
+0x0fa512a98,
+0x036a8b2a4,
+0x02efb09e7,
+0x0a4249c2f,
+0x00ddb4111,
+0x0860f8609,
+0x0a03437b4,
+0x0ffa2c4ba,
+0x09fe35f5f,
+0x04b4c02bb,
+0x0122c466e,
+0x0d5efa500,
+0x0ad3a9af3,
+0x05335a4e3,
+0x01bd92c96,
+0x0abe49e18,
+0x084fd7e0d,
+0x0b5f6a64d,
+0x0959ed3f6,
+0x045621feb,
+0x08e876c5d,
+0x00d2e4f7b,
+0x0039a9aa3,
+0x05b2e65d2,
+0x0d29c83fe,
+0x05876c698,
+0x0b0e26e6a,
+0x080a42c14,
+0x061dd394b,
+0x02411bc8d,
+0x0f468d092,
+0x047ac48f0,
+0x096cbbe6e,
+0x0d1bfbe2c,
+0x073d623de,
+0x0e5f88c75,
+0x08b556b9b,
+0x0b84ef8c2,
+0x058446a98,
+0x0740cc902,
+0x0660623ca,
+0x01a7b82f7,
+0x01cd245b3,
+0x01c7de7f3,
+0x039ac97ba,
+0x07ae6464f,
+0x0c9310da6,
+0x0b3b8df22,
+0x03e3d24b4,
+0x0c2435f18,
+0x0919776fd,
+0x067ff5dad,
+0x010ceab50,
+0x0e526dfdd,
+0x0dfccb947,
+0x04e3198a4,
+0x08d93281e,
+0x04a58ce7c,
+0x06586e587,
+0x01ad58b19,
+0x0e3d053b0,
+0x0defdd430,
+0x0fd3d1f01,
+0x09828271a,
+0x014fad6d1,
+0x0bafa6471,
+0x0f49e9d8f,
+0x058c34aef,
+0x0de9758b6,
+0x04de203d1,
+0x008c080b3,
+0x0b8ae625c,
+0x0faa48b5f,
+0x068496f8a,
+0x0e7d027b1,
+0x0fc54b32b,
+0x0554fd9b7,
+0x0ce09bdc8,
+0x0487c289b,
+0x0506210fd,
+0x0ec139c93,
+0x018934f1e,
+0x044791ed6,
+0x0d8fb9160,
+0x025f78aaf,
+0x06d6ff1ef,
+0x0729f52a1,
+0x00bc04c0b,
+0x0d1cb35c0,
+0x083d31989,
+0x01a8176a5,
+0x090d9943a,
+0x03e75ad2f,
+0x0f6fe7fa8,
+0x00e66d4a5,
+0x0b68877ca,
+0x0c7d37615,
+0x0ceff9958,
+0x03142a253,
+0x0fae53940,
+0x0b44e660f,
+0x0df24bf51,
+0x0411287cd,
+0x0ef32547a,
+0x0bdd35c95,
+0x0f7f84a49,
+0x069f4a735,
+0x09299365a,
+0x0641d45da,
+0x0d8725191,
+0x0492b2dab,
+0x0e7965002,
+0x0ac0ca092,
+0x08809e345,
+0x0b539724d,
+0x0fa4ad0a5,
+0x05f12accd,
+0x04bc40a6b,
+0x07c407361,
+0x0fba21b90,
+0x0d910ff35,
+0x0ec9092f8,
+0x0be6551bb,
+0x06e46810f,
+0x0e13b6981,
+0x07476d530,
+0x0c0b6c823,
+0x0a9f2ece8,
+0x0a4447ce5,
+0x0edf0d6a1,
+0x0fdecc6ff,
+0x0d69f99fb,
+0x0dde7dce2,
+0x08f9ea1cd,
+0x0d5867612,
+0x069b944ca,
+0x0ef32bb74,
+0x0953e9ada,
+0x0b05c6d88,
+0x047514317,
+0x0939fb43a,
+0x098a93393,
+0x0faaf19a6,
+0x02858774d,
+0x065847639,
+0x09701a22d,
+0x0db64fbd1,
+0x07ceeb72b,
+0x0af77580e,
+0x09f65be61,
+0x06511d6b2,
+0x0c6a8ba3a,
+0x04b0448aa,
+0x0248ca2c3,
+0x0bf5a1fd7,
+0x016d2aa9d,
+0x0230f44b0,
+0x0fb214e83,
+0x0d867d418,
+0x0c367112d,
+0x0a77be7dc,
+0x00b4a48ed,
+0x0855f1656,
+0x00af390d5,
+0x0efa45d80,
+0x088e8bd89,
+0x0d2583745,
+0x08a7f7005,
+0x0d6dbb07f,
+0x08366e096,
+0x02bf2ba7b,
+0x0810d50c6,
+0x00037c321,
+0x01a8b6ad8,
+0x0c5028f77,
+0x05fe3ba54,
+0x071185f6b,
+0x09859a8bd,
+0x04c60384b,
+0x0e8bb3e7f,
+0x0ca99b1de,
+0x048be7922,
+0x001ffa313,
+0x0c618c3cb,
+0x01d559fb3,
+0x000764664,
+0x083568bf2,
+0x0104a4d02,
+0x046044c33,
+0x02a25f618,
+0x0a4926cd0,
+0x086cc15fb,
+0x0f142a360,
+0x067778c0a,
+0x0fe0a2b84,
+0x0dee109fe,
+0x0af76c4eb,
+0x01f741b7d,
+0x03698c9a8,
+0x0eb166568,
+0x0a8e893f9,
+0x08409e49c,
+0x07ed3a145,
+0x0a151322d,
+0x0aa9fcbec,
+0x057765b0e,
+0x0bac4cfe4,
+0x0c52dc267,
+0x0f4557c81,
+0x0a48fe7ff,
+0x02b1d1782,
+0x03c3647ee,
+0x09c7c8a8c,
+0x0be2999eb,
+0x00d526c68,
+0x0b4baa1a8,
+0x07d2880fb,
+0x0f40c06b7,
+0x0af905388,
+0x0c1ec6247,
+0x03475690f,
+0x02725a66e,
+0x08b148537,
+0x06d1d54a9,
+0x0f57411bc,
+0x0d04cdb66,
+0x0250d8355,
+0x01960218d,
+0x0cf781e79,
+0x07667b776,
+0x009f28503,
+0x0dee7ec74,
+0x0832589bc,
+0x02a18055d,
+0x058dfec93,
+0x09685afc7,
+0x0c0c80300,
+0x070433fc1,
+0x0e2d186d2,
+0x0072cc787,
+0x05d8e2952,
+0x07bed4694,
+0x01f0f6fa9,
+0x0ce8c3041,
+0x00ca92391,
+0x0f4e02060,
+0x0a083298c,
+0x08864da34,
+0x0c3d22a63,
+0x0b6311664,
+0x0a55884af,
+0x0060cc37f,
+0x0b4912e7b,
+0x05840732d,
+0x053ee1586,
+0x0e383441d,
+0x0493e5a02,
+0x057ecbe87,
+0x0505dd026,
+0x0dbadb439,
+0x01bc2aae9,
+0x06b848a2d,
+0x061edc1d8,
+0x02382015f,
+0x04ed84963,
+0x047711046,
+0x00e6830d0,
+0x059985d74,
+0x073525673,
+0x0f4fecddd,
+0x078309b28,
+0x058b91cd2,
+0x025db8ec0,
+0x03be80215,
+0x0473b7fd1,
+0x004cb921a,
+0x0b067d071,
+0x0431ac652,
+0x082c74323,
+0x040fb61ac,
+0x0f50b37a1,
+0x00a438ae2,
+0x0019319bc,
+0x0a46656c0,
+0x063111ef5,
+0x0a7b9f7a6,
+0x0097e22c6,
+0x036470576,
+0x05d057098,
+0x0b6de485c,
+0x05e10ada0,
+0x0d34a41d3,
+0x0ca7c7241,
+0x0ad3668f1,
+0x0c5826133,
+0x04a721395,
+0x05e89aed5,
+0x07dc46b48,
+0x0763ae774,
+0x017223e54,
+0x01d6cb8c9,
+0x04ef9b3ec,
+0x0750db47a,
+0x078090dc7,
+0x0258c53e7,
+0x0aaf6cde0,
+0x03aa0ca5b,
+0x07e62065b,
+0x0a9dbd44a,
+0x08256b2f0,
+0x0192370fc,
+0x097a03c8c,
+0x06acb222c,
+0x0ee15fe71,
+0x0101a644b,
+0x0a1fc60ac,
+0x0f9be349b,
+0x068b5e2bd,
+0x05950938d,
+0x03ece0275,
+0x027476182,
+0x0ab7feec6,
+0x09f7bcc5c,
+0x01af68080,
+0x0ed4c4893,
+0x0910c1e76,
+0x012215542,
+0x04910f0fe,
+0x0e8a865c5,
+0x0d959fb33,
+0x016457ac7,
+0x05de9f40e,
+0x009e9a124,
+0x07578ba9a,
+0x0fe05d820,
+0x0a7b47c4a,
+0x02c257cab,
+0x02f17febe,
+0x0195623ff,
+0x000442d94,
+0x0afda5117,
+0x0dafc9063,
+0x0e53dcf9a,
+0x0ffa75073,
+0x03e5aac87,
+0x0194843e8,
+0x01c7f4811,
+0x0ef615ddf,
+0x0226d55ab,
+0x0ac482c58,
+0x0e717c92c,
+0x027ce06ed,
+0x04f4522fd,
+0x03b169f3c,
+0x0adcfe494,
+0x05b28c1c4,
+0x0f2d82506,
+0x0587a2c85,
+0x06695db58,
+0x0890a9661,
+0x0a952aef8,
+0x04bf64677,
+0x0c6164c57,
+0x0651953e2,
+0x0797cd8bb,
+0x013a4b350,
+0x09d2430b5,
+0x0014cff8f,
+0x0ab43d9d8,
+0x0e6dde601,
+0x07fa536a2,
+0x0d9bd3a96,
+0x0cbe1ab80,
+0x000c275d0,
+0x08b6115c9,
+0x031006dfe,
+0x05c33d993,
+0x0f453722c,
+0x0c121cede,
+0x08cb91e62,
+0x013de65cf,
+0x0dbf1ea10,
+0x0179e0a76,
+0x014a71b2d,
+0x00e433f15,
+0x0161fc033,
+0x0f376ced4,
+0x03f83c48a,
+0x0713a7943,
+0x04e7ac505,
+0x0a4371a2e,
+0x0341fc1fd,
+0x00b8e1b23,
+0x0dd1256c8,
+0x0ac876d85,
+0x0f7645522,
+0x069da0e7d,
+0x00276b805,
+0x0b453fe67,
+0x077d3f0ad,
+0x0948b0af2,
+0x027b0c06e,
+0x0d942976b,
+0x0507b5566,
+0x002a5509f,
+0x08a531ba7,
+0x0b9e234d8,
+0x0fb6f5656,
+0x0e7e60a7b,
+0x0bbd77034,
+0x08ba39df8,
+0x0b2314c44,
+0x0162e06fd,
+0x0d427f659,
+0x0c26be5b6,
+0x09a113c0a,
+0x08f07c9e8,
+0x01c86e013,
+0x00341ba4f,
+0x07422577e,
+0x09f18604a,
+0x001e1e531,
+0x054e6ffec,
+0x0bc0912fb,
+0x041c5d9e0,
+0x0ed9164c0,
+0x04ac20176,
+0x001307cd5,
+0x0425548fd,
+0x0f869efdc,
+0x06ac5ebb6,
+0x0e949dbee,
+0x0c85b2a8a,
+0x0f9876002,
+0x0bdc3c58c,
+0x08af7865b,
+0x0d04d5089,
+0x068d3f690,
+0x095a2bf4a,
+0x01c9ee6d2,
+0x09ff5f4b7,
+0x03416e590,
+0x028a16c01,
+0x09a4e9d90,
+0x0104a6007,
+0x0097c15ba,
+0x0cbe2df96,
+0x09fff8b01,
+0x08bac9be7,
+0x0c216b54a,
+0x034d49afc,
+0x0fa0daf86,
+0x04034e186,
+0x0a8685480,
+0x0ef5764f6,
+0x03de501a3,
+0x020e05040,
+0x0df9e3e07,
+0x0afcf944d,
+0x0c43a2b9d,
+0x0cc4b02e4,
+0x09a55f08d,
+0x0786c1c59,
+0x0647ccd65,
+0x0eb6bd7dd,
+0x0b867242c,
+0x019eba375,
+0x065559dda,
+0x061697048,
+0x00b255544,
+0x032e2a335,
+0x00aac436c,
+0x09cf3d9da,
+0x0b1d4f0c4,
+0x011646086,
+0x02896c057,
+0x0e5f2c4c1,
+0x02a588fac,
+0x070175742,
+0x054827a35,
+0x055671346,
+0x04000f11a,
+0x02dc714b4,
+0x036b1218d,
+0x070c27228,
+0x0bdbf0ab1,
+0x0ee64dbaa,
+0x04def9365,
+0x054d49b51,
+0x093c568f5,
+0x045ee7038,
+0x0b7d4b970,
+0x0115e9cd4,
+0x0c04d5d62,
+0x078b5153b,
+0x06c346080,
+0x0b87473b9,
+0x0dfecfc0c,
+0x06e6116d5,
+0x0ab3661fd,
+0x06ee303a4,
+0x09f2523cc,
+0x046023426,
+0x0f538e5a7,
+0x0f80b96bd,
+0x0e172c0d4,
+0x0f9d5e5c6,
+0x0ebf6bc08,
+0x0a2e6280a,
+0x0685c0f8c,
+0x0c704fc75,
+0x01542ec6a,
+0x036171fd5,
+0x07169f701,
+0x04be63835,
+0x0fdbe59e6,
+0x0a6845147,
+0x0c3cae667,
+0x017226d0a,
+0x0ee74a53d,
+0x0c8eb32fc,
+0x03080b6c2,
+0x0f85a1088,
+0x0e7ac1693,
+0x046d9bfc1,
+0x01cf82337,
+0x0a7ba7549,
+0x0cdd0d244,
+0x030b52c0e,
+0x0e750830f,
+0x07734db84,
+0x04e1c2cae,
+0x026cc0247,
+0x009109dfd,
+0x0911e1e5a,
+0x016191e05,
+0x04e83a52c,
+0x09be622cd,
+0x087e1aedf,
+0x08b3da8b0,
+0x0bfff6f59,
+0x09a69d979,
+0x0c257d075,
+0x021fecc59,
+0x0d0b12f24,
+0x000ae0655,
+0x0d1698fce,
+0x096693806,
+0x029b1eead,
+0x054892ec6,
+0x0bff23ad4,
+0x09ad02297,
+0x0bff84ece,
+0x01f15aebe,
+0x0c22c2d36,
+0x06421367d,
+0x0dc3e2d44,
+0x02514aa25,
+0x049e1ae18,
+0x061752fd9,
+0x0c5ec52ad,
+0x0cd97819f,
+0x07ce27ece,
+0x08264a250,
+0x02eb92b01,
+0x088445a6d,
+0x05f758a89,
+0x081821329,
+0x0f364c8db,
+0x03ccfe879,
+0x005cc219f,
+0x06c2dc0b5,
+0x08359be69,
+0x0e9b20497,
+0x0bf9db6b3,
+0x0d6069ab0,
+0x005685fa0,
+0x070e011df,
+0x04ac982a0,
+0x0fac6660a,
+0x0ca205cb3,
+0x0476850f8,
+0x07f483f88,
+0x0aac46ee0,
+0x0c4e782c4,
+0x082077dbe,
+0x024897a54,
+0x04980aad1,
+0x037a70186,
+0x051ebc8c4,
+0x05c9683e4,
+0x0c68acb55,
+0x074fcfcfd,
+0x0dccd8dbe,
+0x0ead42f7c,
+0x03aa42cee,
+0x0947518c6,
+0x0ed7289e4,
+0x03e38f16b,
+0x0a47ebcaa,
+0x0e3bbf41d,
+0x0f8a7d461,
+0x0459096bd,
+0x038212863,
+0x061436654,
+0x0d89661c9,
+0x019a58696,
+0x046f40be0,
+0x05fc751f7,
+0x0e5258f51,
+0x05d1417e8,
+0x0f161f60e,
+0x04fc4b183,
+0x0cc3fed21,
+0x037d2530a,
+0x04745d091,
+0x061a14e41,
+0x0d55ea304,
+0x09f0787bb,
+0x0d19dfa2c,
+0x0e24598af,
+0x06378d36c,
+0x05cf078eb,
+0x0cdc39042,
+0x0ebcfc320,
+0x0f3b2923b,
+0x0603c335b,
+0x046cd6eb3,
+0x0a9050d62,
+0x010901257,
+0x06d1cc524,
+0x0e390be2a,
+0x0d910902a,
+0x0c0a2a275,
+0x036f2b99e,
+0x00f6e7b85,
+0x0805a5c3d,
+0x0c4a53b1a,
+0x0a86f5521,
+0x0f6c809b0,
+0x016038261,
+0x08a520a9c,
+0x05414c12f,
+0x08640c55b,
+0x0c59d441d,
+0x02cf8e7f8,
+0x0c13fff7d,
+0x0daa9c91b,
+0x060a0b25a,
+0x0d4397d0f,
+0x0df78e1b6,
+0x0d9867f0b,
+0x0a97b619b,
+0x022a74ba6,
+0x0aa7634db,
+0x002f87c3b,
+0x067e105e1,
+0x0d35ae4ed,
+0x0f1b6ccf1,
+0x044f14500,
+0x0c5225e0f,
+0x047aede90,
+0x0126c34f7,
+0x08a033982,
+0x00bbae420,
+0x0b4e69476,
+0x0801543b7,
+0x008fd5976,
+0x0ff8ce0eb,
+0x00f7eb12b,
+0x0e93b7c40,
+0x0a117b4fc,
+0x0424e5828,
+0x0a054d8e4,
+0x04b5239e7,
+0x0f0073aa1,
+0x0e862f03a,
+0x040fb561c,
+0x0526c7413,
+0x019271004,
+0x0c62644a5,
+0x0da7e15eb,
+0x0fe350b6d,
+0x01f57cdd1,
+0x0eacc4913,
+0x0610cda50,
+0x0ed35057a,
+0x0177b569f,
+0x0389c8b60,
+0x0f81df26d,
+0x0d8be4c19,
+0x0ededec25,
+0x040a7a2b7,
+0x0d55831b8,
+0x0d4d07d25,
+0x05bcee1d6,
+0x0fc4c03b8,
+0x07c7a10b7,
+0x015242379,
+0x02196c472,
+0x0b8bf713f,
+0x03880879e,
+0x06a82a64e,
+0x0687ab9bd,
+0x094afc5ce,
+0x00a571d4f,
+0x0eead5626,
+0x016bcf987,
+0x0e7a4d54b,
+0x0a023392d,
+0x0077b70c2,
+0x052236976,
+0x0e136995e,
+0x0fa1f8378,
+0x084ec55cc,
+0x0e29eb2ff,
+0x00a5106d7,
+0x021643084,
+0x076f79f1e,
+0x0c8d96efd,
+0x080c1d53a,
+0x06f0dbb5e,
+0x05c46bd56,
+0x090c4d1c3,
+0x0a7c190a6,
+0x058a83f9e,
+0x07b58988d,
+0x0995863da,
+0x0e1d50477,
+0x02d664701,
+0x095f0245e,
+0x019467cad,
+0x05a73aaf1,
+0x085e87266,
+0x0fe47996b,
+0x03a14597a,
+0x0eb43a93e,
+0x03d99d5f5,
+0x065494b0a,
+0x0ec51e891,
+0x02859ffad,
+0x02473fc4a,
+0x043471a73,
+0x0b9b81343,
+0x0776c8e4b,
+0x05e6b5b5d,
+0x025d39ff0,
+0x079224e53,
+0x0f220c739,
+0x040e57d65,
+0x0ef64a014,
+0x0df83fcd8,
+0x065ee66f8,
+0x0ed0c7ea7,
+0x07c1141f1,
+0x0c1c704b4,
+0x05dbb3a2a,
+0x0b20f0755,
+0x0479dcd3f,
+0x03baa94d1,
+0x0ccb56ac0,
+0x02a2409d5,
+0x06974363b,
+0x0aa16f06a,
+0x0557361fb,
+0x0186720e7,
+0x0ebea3b7f,
+0x09a877469,
+0x068f531c0,
+0x0d2143ac7,
+0x04d25ef5f,
+0x06a037068,
+0x0213ad541,
+0x05215819f,
+0x08a7dd915,
+0x089d6f68f,
+0x038cd0690,
+0x075225203,
+0x03d2e42c3,
+0x08fbbfbaf,
+0x082b8e882,
+0x0949d2bb3,
+0x0f2edbd48,
+0x063fd7c8f,
+0x047ab649b,
+0x04e2ed79c,
+0x0564c5286,
+0x03b4fa6dd,
+0x0698ca66e,
+0x002ca7e14,
+0x078c90212,
+0x0054d50d4,
+0x05eef484d,
+0x03348c3a6,
+0x037a14842,
+0x0ed484156,
+0x03309158a,
+0x0a8d1d22a,
+0x0da3c3e2a,
+0x08f667214,
+0x026add79c,
+0x040995771,
+0x05e01b167,
+0x0e8db0f5f,
+0x0c09d4f94,
+0x06fb1de49,
+0x0ccbaa3df,
+0x0e7840799,
+0x0a65c2579,
+0x0cedb5319,
+0x0a65106c1,
+0x0bfdc7b45,
+0x0d3bbf149,
+0x0a32cda0b,
+0x0717e8a8f,
+0x02493a459,
+0x094a14b6d,
+0x06c786b1d,
+0x0891afc30,
+0x08bd4d4c3,
+0x0287bc30d,
+0x05e95339b,
+0x0c8676f72,
+0x0f4ae210c,
+0x0d4abe726,
+0x07865a980,
+0x086fb7669,
+0x02bec3c18,
+0x06046734c,
+0x089e0b977,
+0x05d26849c,
+0x05d457640,
+0x02b271b88,
+0x02fcbac01,
+0x0b1194511,
+0x037189a45,
+0x0207b1a05,
+0x0a1e0f2f0,
+0x066288d61,
+0x09a453234,
+0x06463219d,
+0x07188020c,
+0x0e1b78005,
+0x0a259a776,
+0x0b61f702d,
+0x09fdf7baa,
+0x033df7968,
+0x0ceb4aedc,
+0x053cb806a,
+0x094b4845e,
+0x08632d2eb,
+0x0c2af1fe7,
+0x097134695,
+0x05cdc5230,
+0x0ea86811e,
+0x0fbc2307e,
+0x05c70f4df,
+0x008f0fe06,
+0x039ff47ab,
+0x000dfeada,
+0x039b318d1,
+0x0a3bde6a2,
+0x01b9970d0,
+0x0474ffa68,
+0x0f5ce22c8,
+0x0dedb250f,
+0x0d2bd56e6,
+0x0c509c783,
+0x06045a82a,
+0x099c25718,
+0x08f94196c,
+0x05d388787,
+0x06ab7a09e,
+0x04b656877,
+0x06b3fca6a,
+0x02a12b583,
+0x0557618ce,
+0x05822ead5,
+0x0c09b77de,
+0x0aee2d317,
+0x02e3f6986,
+0x0896ad527,
+0x0fed819c8,
+0x0b7b28cfb,
+0x0957eee5c,
+0x039088b97,
+0x065499aac,
+0x04b798c1e,
+0x045461c52,
+0x014f8b139,
+0x094e94a31,
+0x070f96e68,
+0x0d0db0651,
+0x0ee267b44,
+0x0132e5eda,
+0x030d348af,
+0x043a02faf,
+0x0532f910d,
+0x0478c76a8,
+0x04314ca43,
+0x085e44453,
+0x0f57ae6bd,
+0x01be77173,
+0x0a9c9fbea,
+0x0c01d6623,
+0x0249de52d,
+0x097bf4bd2,
+0x009c38956,
+0x01c0df2d5,
+0x0ec501312,
+0x00a22e0c7,
+0x0e26ae85d,
+0x0c9cee4f7,
+0x028d1cbe2,
+0x02e290086,
+0x05893bb16,
+0x0cf86e7ad,
+0x0d4dc2cf0,
+0x04af27c7d,
+0x0033b9125,
+0x0ce60bace,
+0x02853a55b,
+0x0ab8e24a7,
+0x058d35693,
+0x06e85008a,
+0x06734731f,
+0x04c95e814,
+0x0a4924856,
+0x0b04766b1,
+0x080448fd7,
+0x0a1ae61a8,
+0x0a513bb63,
+0x02bbb9ee2,
+0x0d6188645,
+0x0ddc0e03c,
+0x007a510ed,
+0x0d0526944,
+0x0361e58f6,
+0x0dc05efe7,
+0x0337c05f7,
+0x04dbc2532,
+0x0e3fc78f7,
+0x05effd42f,
+0x0ab327feb,
+0x0bbb25cb5,
+0x0f7ad6fef,
+0x0991fe8f8,
+0x04a03e280,
+0x0db8d3b76,
+0x0c4c43e6a,
+0x0c5096bfd,
+0x0af04a215,
+0x0b2bbfde8,
+0x036852f0b,
+0x013901bda,
+0x03aa0036a,
+0x0ff60e011,
+0x0b89b6af1,
+0x06b2df4de,
+0x0223bb617,
+0x0792b4895,
+0x016d63035,
+0x0c16a0463,
+0x0ac61c02d,
+0x03f40b64f,
+0x0c9ff6a54,
+0x0378d58cf,
+0x01ccdcc34,
+0x04fd28da8,
+0x0d33684e2,
+0x079ba00f3,
+0x0e066c544,
+0x0fd27291d,
+0x0fee84293,
+0x02d00bec9,
+0x0789674b2,
+0x055673e9c,
+0x0c2029bce,
+0x09ddf636e,
+0x058d4d0e8,
+0x01e418eff,
+0x09f56449d,
+0x0b60b6482,
+0x0d245ca2c,
+0x0fd10c101,
+0x09733b5a3,
+0x0d052a8c7,
+0x05506114d,
+0x071bb15ac,
+0x054b6a6e1,
+0x0844cba18,
+0x03df0f12f,
+0x0bddb6fa9,
+0x0a2b79aea,
+0x03d2b5648,
+0x00b5be2ab,
+0x02b17cfc9,
+0x0cb39e076,
+0x076f3b0d3,
+0x05c54ce7d,
+0x07330c45c,
+0x0b3e803ee,
+0x029b134ec,
+0x0e2759573,
+0x0187bb07a,
+0x054adead6,
+0x0fb9aa81b,
+0x007ef8dec,
+0x0b2a36bf6,
+0x07f70f24b,
+0x0f8d7e839,
+0x074e51069,
+0x06fdb1ddc,
+0x0c663d329,
+0x0816cfedd,
+0x009bbd798,
+0x0336237c4,
+0x068f28b8b,
+0x070451b46,
+0x05f1da0d0,
+0x0716016f0,
+0x0726c66cc,
+0x0411f67ed,
+0x0df662039,
+0x014487261,
+0x02ccf9236,
+0x0e0be115e,
+0x0320fa0c5,
+0x03fb501ea,
+0x0669fd2b5,
+0x076d56145,
+0x0845c6089,
+0x02ee8dc38,
+0x0426905cd,
+0x08b6d2279,
+0x0e66517d7,
+0x08f570609,
+0x0fab205df,
+0x0afb48353,
+0x0a9134428,
+0x0465e30ec,
+0x0b7cb66af,
+0x0f56b21e3,
+0x0bd44d143,
+0x080ed6f97,
+0x0f2ddc0a8,
+0x0b7d045ba,
+0x06b6146e2,
+0x0cacadbd6,
+0x0bdf3ef07,
+0x04ee2edd8,
+0x0dee63e48,
+0x01affec5d,
+0x0084ba350,
+0x0f612a371,
+0x00ec7dc2b,
+0x03b398dca,
+0x04667ce18,
+0x0b5f81922,
+0x0d424b69c,
+0x0617d8308,
+0x0c9458c53,
+0x04d0072aa,
+0x0935e377c,
+0x0b20a0976,
+0x0751e39be,
+0x0e9f5ba2c,
+0x0a327771c,
+0x033e14043,
+0x0645daa4b,
+0x072b203f8,
+0x0030915aa,
+0x0ed061068,
+0x0d2ad60d2,
+0x0623445b2,
+0x0249a54d5,
+0x0dea79d54,
+0x08181f4e8,
+0x0c48a4fdf,
+0x0aeef299e,
+0x077c47666,
+0x0d0c679fc,
+0x0e796d743,
+0x03c05941c,
+0x0f4395c87,
+0x06ebb17da,
+0x0e9ae320b,
+0x016860fb3,
+0x04a543110,
+0x089d77b03,
+0x074ad3e36,
+0x070ceb592,
+0x07c08cd99,
+0x08d601773,
+0x04e8365cf,
+0x0947fa6a3,
+0x0907ff5a8,
+0x0e49058b4,
+0x07855d7a1,
+0x0d6d0ceba,
+0x062271a1b,
+0x0f6e37699,
+0x04e578ac5,
+0x0349040f6,
+0x076f60177,
+0x08e7fa81b,
+0x000e094c4,
+0x0a6e3d23d,
+0x062bff74c,
+0x00fe4ca63,
+0x08a59a351,
+0x07e3293ad,
+0x08139f506,
+0x09443ff51,
+0x0d230ffa0,
+0x0bfcfe61e,
+0x0da6f2be2,
+0x04b15ed25,
+0x0c0783de3,
+0x02340ecd9,
+0x09d24b356,
+0x0f46e01d8,
+0x06d9b253b,
+0x0108d7ebf,
+0x0e33f04d6,
+0x034468e65,
+0x0d1b4c59b,
+0x0a288f97b,
+0x0ab530ee7,
+0x042bc2cb2,
+0x0c8c0198f,
+0x028230d83,
+0x00d5910b1,
+0x02b3962d5,
+0x037b0affb,
+0x01278135d,
+0x04df95b3a,
+0x0d1691bf8,
+0x081dec22b,
+0x02f3b6993,
+0x0e1c93f4b,
+0x0fde5a137,
+0x04032ba7c,
+0x0beadc5d9,
+0x0caf81b71,
+0x0ed358eae,
+0x0e2db5f2c,
+0x0e15b8714,
+0x0093d5663,
+0x06e24d8bc,
+0x0f9683fd2,
+0x001dd3d74,
+0x0d83dc7af,
+0x0eff9e15f,
+0x05a47b05a,
+0x0c3441204,
+0x0d6639428,
+0x0ced7aa53,
+0x0750cec09,
+0x0c434febe,
+0x090ac4bf7,
+0x0f905749a,
+0x06390f457,
+0x0f2eef159,
+0x0c2572d83,
+0x0eb8b5723,
+0x07e52b08a,
+0x0fa1bdfe6,
+0x0a2e57763,
+0x026cc5815,
+0x0cbed1472,
+0x0e6c88e04,
+0x01e9c372a,
+0x02960aecc,
+0x0f689de3c,
+0x04229561a,
+0x05086ee02,
+0x0c7c5fe34,
+0x084f3352b,
+0x0feeed011,
+0x06bb671d2,
+0x055c09bd6,
+0x0aefd0ac4,
+0x0a110ad48,
+0x0ec9351fe,
+0x0f7de5bb5,
+0x01b27283f,
+0x06a14f978,
+0x09aaa61cf,
+0x004794858,
+0x054608b3c,
+0x03928dc0e,
+0x0e81a6ea2,
+0x0a0cff283,
+0x0068114a2,
+0x0e1882df1,
+0x0a7e1aed9,
+0x0d5152b76,
+0x0c2d5bc15,
+0x00a61fd28,
+0x05d429ab3,
+0x0d6671f06,
+0x00ff06dc7,
+0x0dbb63abf,
+0x0b33577a6,
+0x0e60ccd6d,
+0x0c3f0a74b,
+0x0357c4889,
+0x096354e6a,
+0x075bab990,
+0x089eb3dc4,
+0x01ed8d2d8,
+0x08872d583,
+0x0cf9ed8e0,
+0x070171fee,
+0x0c4e149a9,
+0x06c991a86,
+0x0a6554e78,
+0x0a83000e4,
+0x0010fd4c5,
+0x0d9eeb109,
+0x0b47524a5,
+0x0da9a8ac9,
+0x0c5c78d3b,
+0x0206d38cd,
+0x00d15fc81,
+0x0fdd72a57,
+0x0c7d7ecb4,
+0x029ed2b80,
+0x0a5f7933c,
+0x064fc6487,
+0x0d3c0d8db,
+0x038df2a31,
+0x01598b315,
+0x025b5e209,
+0x0245f917b,
+0x0dca40fdb,
+0x03aa3cb2d,
+0x0e215df84,
+0x0d260a8e9,
+0x0a9243f46,
+0x028b29fae,
+0x06c744308,
+0x033babc1c,
+0x0259ea720,
+0x0a042b8da,
+0x0c1d45fbf,
+0x015e8162c,
+0x046fe743a,
+0x041cb24f3,
+0x0ba9b5ded,
+0x0102a8d0a,
+0x0ffede1ad,
+0x03c5cc5f6,
+0x02f1afecf,
+0x09616ca97,
+0x06261f051,
+0x0be5f6332,
+0x0431e24a9,
+0x0c2d906a1,
+0x0aed15e13,
+0x036395b7f,
+0x00dcb8298,
+0x0e8deb31c,
+0x09aab061f,
+0x0809cf02c,
+0x0c9557485,
+0x06a44515a,
+0x0979f9127,
+0x0407ea8b1,
+0x063403c2c,
+0x0b4d1255a,
+0x0d4f6d011,
+0x0196aa960,
+0x006cd4f9c,
+0x00990c343,
+0x045f48efb,
+0x0b724a2b5,
+0x0af0be7ce,
+0x066f7ae91,
+0x04a896c85,
+0x0a110d8da,
+0x0e6919350,
+0x03704cdbb,
+0x0eee6d3f2,
+0x09432f861,
+0x064fd3f66,
+0x0ab6ad7c7,
+0x07975f859,
+0x03fdf7245,
+0x0f9b39bb8,
+0x020121894,
+0x07fcd74c4,
+0x05fbaa1f9,
+0x059381e3e,
+0x04f448d78,
+0x0dbaccc0d,
+0x0aa1496a6,
+0x0cdcf2eed,
+0x0fca88327,
+0x0083544f8,
+0x0b461c92b,
+0x0b3605ba7,
+0x03c2d6846,
+0x0c656cc32,
+0x0334e14b7,
+0x0904e7ff7,
+0x094e1c9ed,
+0x01ca12adc,
+0x007f87e6b,
+0x0c8b17c9c,
+0x0f1a65c45,
+0x071996d54,
+0x0347ee6c3,
+0x0fdd97564,
+0x083e35ca0,
+0x026b1ea5c,
+0x0ace45bb4,
+0x03174d2be,
+0x0460d5054,
+0x0ab7fbd05,
+0x0656ea80c,
+0x0af7ec57c,
+0x0c4f81f48,
+0x0e9381047,
+0x09e7bc825,
+0x0b43022b8,
+0x0b90b5ef5,
+0x0c4d0c114,
+0x09d859d05,
+0x0d0410a4c,
+0x07d498d77,
+0x0a475aa4e,
+0x05026e314,
+0x09f04514c,
+0x01e40cf0a,
+0x008033d2c,
+0x088880b8e,
+0x0a92f643e,
+0x0411661c7,
+0x02cba15a0,
+0x08145dad1,
+0x01f6afb13,
+0x07de6ac50,
+0x0664cfb73,
+0x02c82daa5,
+0x042213eff,
+0x08e8533cd,
+0x098afbaf9,
+0x0f4d74a0d,
+0x012eb0771,
+0x04c9b1568,
+0x0e52b1997,
+0x080fa0c38,
+0x06659f531,
+0x017576d58,
+0x045d5398a,
+0x095e466f6,
+0x0ebdd5d2b,
+0x0ab94786c,
+0x043cc367e,
+0x0dafa79f4,
+0x045a0e7ea,
+0x011cc621a,
+0x0441e6b47,
+0x099e520a4,
+0x030baf67a,
+0x02287ab7d,
+0x07e5a2378,
+0x0ca917d0a,
+0x0f38edddb,
+0x051945a05,
+0x0fe85dbb4,
+0x0c9fa1ac5,
+0x055412110,
+0x0f2dcec9f,
+0x0c50dc2d5,
+0x0005d415d,
+0x0aa116755,
+0x0ca4e7350,
+0x069726289,
+0x077a9f05e,
+0x0d735e410,
+0x03b25c8ff,
+0x0ee838ecd,
+0x08629812b,
+0x020b42191,
+0x014fc2706,
+0x0aa548191,
+0x0912fed86,
+0x0a4364e3e,
+0x080e0fbe2,
+0x0abb20682,
+0x078e108ad,
+0x0e0ec01f4,
+0x0021552e1,
+0x063d3b877,
+0x0d9b5a7c3,
+0x05c4f6336,
+0x0cca2c506,
+0x0501e8863,
+0x060676c61,
+0x09ac383d4,
+0x037c8d223,
+0x0080ca4a9,
+0x052bf1093,
+0x054dccdb9,
+0x0d9d9b4f5,
+0x055964b56,
+0x06d5cd921,
+0x0469c9832,
+0x09107587f,
+0x0fdb04e52,
+0x068efb95c,
+0x0ec58bba4,
+0x0dd32b308,
+0x050dedffd,
+0x0c137ce2d,
+0x0282acad1,
+0x001e7b632,
+0x07071601b,
+0x08357486b,
+0x0dcd937f1,
+0x01d64e735,
+0x026811e5b,
+0x077366736,
+0x032807e1c,
+0x0d36b6a86,
+0x052707747,
+0x0814ed06d,
+0x0aa58e37e,
+0x07688b300,
+0x0d3a6ce3e,
+0x0de3a4ff9,
+0x0cd6e88d9,
+0x03fc10993,
+0x0c5956504,
+0x07f289634,
+0x0b998d636,
+0x03bcb173a,
+0x067d5c93d,
+0x006e94e68,
+0x0e04609b3,
+0x0a84908ae,
+0x0d6c1af8d,
+0x0276a8f9a,
+0x08d2c5dd1,
+0x06f5e07a8,
+0x02ca9011a,
+0x0eb5034ab,
+0x003719c92,
+0x0d01ba561,
+0x01cfbf2b5,
+0x0a9de8153,
+0x049b2656f,
+0x05703d4ef,
+0x0cf60bcfb,
+0x0f07fa58d,
+0x0f7289414,
+0x0cac86db6,
+0x0427e9de7,
+0x0f02b2183,
+0x0e15872ba,
+0x06cadaf71,
+0x0f5c1ea33,
+0x0642bc520,
+0x0240410b5,
+0x0acfe31c8,
+0x0616cf8c0,
+0x06ba3df58,
+0x0053b3bb7,
+0x0ddc892b0,
+0x0283326bb,
+0x0812345a7,
+0x0956b9f67,
+0x0a473fb62,
+0x033b59dcb,
+0x03e436d02,
+0x0afb8cad6,
+0x0103b12a4,
+0x072e151ed,
+0x04dea7bac,
+0x0bddd1e55,
+0x049841830,
+0x0149fb319,
+0x048bc3c96,
+0x0dd62af0e,
+0x073ec16c4,
+0x021a1be6e,
+0x038ea6f4e,
+0x09376dbb3,
+0x0f50dd111,
+0x082798925,
+0x0ab674ff6,
+0x08ff78da1,
+0x027f0ff73,
+0x076928354,
+0x0e1ebdab1,
+0x041024af7,
+0x00b57fc66,
+0x029993374,
+0x014fa8ca8,
+0x0bfdfbbdf,
+0x09133fd92,
+0x0cee6e83d,
+0x0e92ec7f9,
+0x0fd8a4d8f,
+0x022fa7460,
+0x05294f7a0,
+0x01bce1043,
+0x0d047cd3d,
+0x0d05c0868,
+0x06da87963,
+0x0c992c2bc,
+0x0d64de907,
+0x068156ede,
+0x0d0b2cd02,
+0x03dd39d27,
+0x0745b5731,
+0x0b4c590ad,
+0x017929f7d,
+0x086fa7128,
+0x015c35553,
+0x06578cddf,
+0x0c262a03a,
+0x08f132a70,
+0x0d4336c74,
+0x02dd2450f,
+0x080da7b14,
+0x0411686ef,
+0x074345c95,
+0x0f573e999,
+0x0fb96147f,
+0x03709feab,
+0x0a4fb69a9,
+0x00eadf848,
+0x0d3ff6587,
+0x06a92f41f,
+0x0b76c8759,
+0x098bd3750,
+0x003189110,
+0x091e75f92,
+0x012d2ac4e,
+0x0b227b4fd,
+0x08aa005bf,
+0x055915c6b,
+0x0315ba0ed,
+0x097d98fdb,
+0x0d0aea151,
+0x016ee1fcb,
+0x038af91c0,
+0x03b908982,
+0x06b9002a8,
+0x0168c4fd7,
+0x0802b623a,
+0x0cc53c561,
+0x028025e6f,
+0x0a19de056,
+0x011893e31,
+0x03e2ee04b,
+0x09c57a333,
+0x0a28b6606,
+0x0502fba93,
+0x0beab30bd,
+0x0f4e6bddb,
+0x09662e5ee,
+0x0b9d5a693,
+0x06f86ec02,
+0x0291cd97b,
+0x05b4a658a,
+0x0fa4db305,
+0x0c95119df,
+0x04c1b42f2,
+0x0338ffd29,
+0x0cb6d5579,
+0x0007f50e1,
+0x0249ff54f,
+0x0356cecde,
+0x082d9c87d,
+0x0dc833d39,
+0x0e79fbca2,
+0x0f7e5954b,
+0x0db8ebc71,
+0x04ca899b0,
+0x04bcbe969,
+0x030252e05,
+0x0a7dc9fa7,
+0x03b6258fc,
+0x09937e6c0,
+0x0a9d21fb4,
+0x00dfedeb2,
+0x02a2ee4ea,
+0x0660f7747,
+0x0d498d8e9,
+0x040aabf44,
+0x02555e47d,
+0x0f682dab1,
+0x0150e9436,
+0x0a7d6f27e,
+0x061079b68,
+0x07fec9f16,
+0x052bc7462,
+0x05dc27211,
+0x01f72ecdc,
+0x0b4987cb9,
+0x03047e546,
+0x08bd35d8f,
+0x01ce65655,
+0x029ea963c,
+0x0d2ea1685,
+0x0ef2d5cb9,
+0x021927cd5,
+0x0e43e5a20,
+0x08ecca97a,
+0x03d9b247d,
+0x011575704,
+0x0b107464a,
+0x0dc8aafdd,
+0x039eecafc,
+0x0804bec6c,
+0x0dfa3ab79,
+0x08c83b97f,
+0x0737dfd34,
+0x003cf8d6c,
+0x04bf48258,
+0x04b4c5b4b,
+0x0e1db8f0f,
+0x0b4c952b5,
+0x050c8abc3,
+0x01492fa2d,
+0x0542b860d,
+0x0e863491e,
+0x04944ef30,
+0x0236dcb64,
+0x02e4392ce,
+0x00d4675cb,
+0x024c12721,
+0x0577ffda5,
+0x0fa59b473,
+0x088ed3e7b,
+0x04f640cc2,
+0x026057726,
+0x0442566d4,
+0x0eec59f96,
+0x06cf310c0,
+0x03257959d,
+0x03d0fb407,
+0x0603389f2,
+0x0c72c1c59,
+0x04fc26d2f,
+0x0e1ce2001,
+0x0f739afb5,
+0x0addcd474,
+0x0e2a6c8de,
+0x03b2a91f5,
+0x07fd50aab,
+0x0c92ab093,
+0x02cde2a16,
+0x09c99158d,
+0x01a857a75,
+0x0638d6bbb,
+0x0d5abd793,
+0x009d6f435,
+0x09fcea37e,
+0x0952c85ff,
+0x0dbaf9fab,
+0x0f4c31503,
+0x01ad8e01e,
+0x01d3f3eb8,
+0x06c9e11b1,
+0x0451165c9,
+0x0a67a58b3,
+0x0421eacfe,
+0x0d17bc63f,
+0x0d5dc0ed5,
+0x07a288adc,
+0x0713ecc25,
+0x02b3cd459,
+0x05450515a,
+0x0fe553e1d,
+0x0961209f8,
+0x01ee7723d,
+0x0d3990b7b,
+0x0c9b905b0,
+0x03b602648,
+0x049d00052,
+0x0e0a595a2,
+0x0be84a7fe,
+0x03ea0bd71,
+0x0f53071b0,
+0x050699451,
+0x0c27ac194,
+0x0ec2c7924,
+0x0b71f15dc,
+0x0c0d28995,
+0x0f2c018b6,
+0x0705e3a62,
+0x070580d07,
+0x0dac18ead,
+0x00d4abc33,
+0x06d73547c,
+0x06e4127fc,
+0x0e609734e,
+0x0524510cd,
+0x0683dc01c,
+0x0ecc3210f,
+0x0d6c601f4,
+0x00d7317ef,
+0x03eda10a7,
+0x0443baab7,
+0x088836ebe,
+0x0c43755c6,
+0x0f51644a1,
+0x06b6b8c39,
+0x02e6ab7e4,
+0x0226f49a0,
+0x0b06e2997,
+0x0459a27c3,
+0x0f023bc5b,
+0x0527d684e,
+0x05c7bad9d,
+0x0c2dddeac,
+0x0499b0ffd,
+0x048fefe5e,
+0x0eee06e42,
+0x0060d0410,
+0x00aa760bd,
+0x084c0fcfa,
+0x0beb91c6f,
+0x01201338c,
+0x022dea0eb,
+0x0f845d920,
+0x0485365f7,
+0x085495372,
+0x074f9eb85,
+0x01f44810f,
+0x0bea78afa,
+0x02279d34d,
+0x08565fd59,
+0x04c1bdd8c,
+0x093c64fa1,
+0x03e04ec80,
+0x06435db77,
+0x0ee60397d,
+0x0f2a10d52,
+0x0e28915b7,
+0x0af0dc2f3,
+0x00e61ff3f,
+0x08e054859,
+0x025abaa3d,
+0x0de7b040d,
+0x0ba60e9fb,
+0x07a1043ec,
+0x02ded3c66,
+0x0481ffdfb,
+0x059e65f66,
+0x0af7eb968,
+0x0c8b0bc64,
+0x073a52c9c,
+0x03aa634d8,
+0x02559f7b9,
+0x0ff9cb31b,
+0x0689c82bd,
+0x0e1f26eb6,
+0x03ce88a36,
+0x03d7d1a41,
+0x038675fc0,
+0x002873f75,
+0x00ca0c00d,
+0x09d79e003,
+0x06475fc2d,
+0x0576b1516,
+0x0606d4341,
+0x0eab4b627,
+0x0feea7347,
+0x07a14d60d,
+0x0a8880ce3,
+0x09975fdfd,
+0x08732b0b4,
+0x04a357dc8,
+0x001f6d806,
+0x0f2214eb2,
+0x0512b1b50,
+0x0e19da8c0,
+0x008c30766,
+0x03692cc4b,
+0x0c9006601,
+0x09320a162,
+0x0302f981f,
+0x0297bb751,
+0x0c4d0b22e,
+0x0a5ac6888,
+0x082e313ba,
+0x0d31d5aa7,
+0x032a677e4,
+0x002327fc1,
+0x0c0d07fc3,
+0x0e5b4792d,
+0x0067d7b67,
+0x0a35de6d5,
+0x0afefeaa2,
+0x00244674f,
+0x03de86f9f,
+0x02d139791,
+0x0bca4fbaf,
+0x07439f84d,
+0x0a26650ba,
+0x08d28ff33,
+0x09e5a3ad7,
+0x0ceb6297b,
+0x063bdc7da,
+0x0a35bae90,
+0x041b469ca,
+0x0b0c7cd90,
+0x0602718ad,
+0x003bdab4f,
+0x020e05d83,
+0x0a563bc81,
+0x05627da94,
+0x04aead830,
+0x02b75683c,
+0x02636c048,
+0x05f6b3f8d,
+0x0ac5d7b4d,
+0x0d1bc77e3,
+0x0823e814d,
+0x0da45a1dd,
+0x0a1ffd935,
+0x0ac0de00e,
+0x09c934ef7,
+0x0ff31eacd,
+0x0a90f5ad8,
+0x09aa1e577,
+0x0c03d0f62,
+0x0d71dce5e,
+0x0b48a02d7,
+0x01b964156,
+0x0cc912e1e,
+0x09047c433,
+0x03deeaa0b,
+0x04f433c0b,
+0x01ab2fc95,
+0x07a93cf4b,
+0x09d893b0f,
+0x08d01f19c,
+0x03f10fd75,
+0x055442344,
+0x04b244554,
+0x0d0774d16,
+0x0ba87c7c0,
+0x05b64121d,
+0x073af3d33,
+0x09079fe7e,
+0x0872e02f9,
+0x011071087,
+0x0665d6260,
+0x0b1e55556,
+0x02037f683,
+0x0456bb90c,
+0x08ec49a02,
+0x01f926010,
+0x0f766d0a8,
+0x0724ee6c7,
+0x009009338,
+0x059097917,
+0x062abd785,
+0x06c08cb1b,
+0x016627fe5,
+0x045e07377,
+0x0eaa01c80,
+0x05c0b3ed0,
+0x0c3427595,
+0x0c196641a,
+0x0214222cc,
+0x029012e3d,
+0x0245a25ea,
+0x0a9bc3674,
+0x0309dee73,
+0x03bc9f8a6,
+0x0110afdee,
+0x052bc0333,
+0x02bfcd620,
+0x0fa4e9eb9,
+0x0cb798a11,
+0x0a4a65e16,
+0x0cad68ba6,
+0x0ae9fd67e,
+0x04c78df5b,
+0x03b30ddb5,
+0x022d1f2bc,
+0x0e39fae51,
+0x0adca68a9,
+0x0d0a52867,
+0x0d37daa26,
+0x08023fc73,
+0x0ada2f491,
+0x00829c758,
+0x063c1bf6f,
+0x00b490b89,
+0x060647814,
+0x089be6d1a,
+0x0e2638e57,
+0x0cb8e6aa7,
+0x01aca9847,
+0x02266dad2,
+0x089faa8f2,
+0x08eb5588b,
+0x066feb9a8,
+0x03f0c33f9,
+0x0fcb28f3a,
+0x0d87b1d8c,
+0x0ce0d7631,
+0x01f39e93a,
+0x09854c58b,
+0x0fd4a2abe,
+0x02ea21d85,
+0x01c35ddee,
+0x057d3fa59,
+0x020bcbb9b,
+0x07a3af491,
+0x00b16d0aa,
+0x0926f32c4,
+0x02ecd5d03,
+0x08fe8956e,
+0x0fece00c0,
+0x022402db5,
+0x00f17ce22,
+0x0f369d104,
+0x03ae91cf3,
+0x063b5cb2d,
+0x09555fbee,
+0x04f049faf,
+0x05e91b461,
+0x0f746c9c7,
+0x01aa2c5d4,
+0x048753c7e,
+0x061a84e39,
+0x034168ca7,
+0x02d2d98d5,
+0x0ef65b7eb,
+0x0809801ce,
+0x0b1ffb716,
+0x0679d06de,
+0x0117b2749,
+0x003e4283a,
+0x03e8eb0e8,
+0x0a332c242,
+0x01009038f,
+0x074f2fa22,
+0x080798c2f,
+0x045402c0f,
+0x00716141a,
+0x02393c425,
+0x053eb1360,
+0x02e14a2a6,
+0x0d8d86993,
+0x0e499adc5,
+0x0272af842,
+0x08951f305,
+0x04d94ec9c,
+0x04bb5dca4,
+0x07653bb86,
+0x0669f7f5e,
+0x01fb6db46,
+0x016b8a32b,
+0x003e22235,
+0x0c2429f55,
+0x00d6ca5b2,
+0x0af407392,
+0x0680cfb3e,
+0x02d0008da,
+0x0f3936cb8,
+0x0ca4f9a24,
+0x07a1c4c41,
+0x0d085f053,
+0x03b9574ff,
+0x034d2d87c,
+0x034ec92ee,
+0x07bac0790,
+0x088aa7a06,
+0x0ea8d4001,
+0x055483770,
+0x0775ed331,
+0x0deb106de,
+0x0113f3b98,
+0x012c01007,
+0x04e254b05,
+0x0c1ac9da6,
+0x0279290ad,
+0x08ef58d05,
+0x0572ac5f6,
+0x02ee354d8,
+0x029f97ce6,
+0x0e4553a6c,
+0x0919d9d94,
+0x0e38f6d31,
+0x003c9b324,
+0x026abdb39,
+0x0a5f108a7,
+0x000f6bb9e,
+0x0755ddfd6,
+0x00cdb1852,
+0x0388d86c4,
+0x0e12bfe4b,
+0x01ad05b4c,
+0x0aa502943,
+0x0c2591447,
+0x05ce45da9,
+0x0ad7767e5,
+0x01d814c48,
+0x01cb68278,
+0x0d2ee9eb7,
+0x02dfd1856,
+0x033b45a85,
+0x0cf4e394c,
+0x0ad3b113c,
+0x0437f4f10,
+0x045b36041,
+0x0fd803733,
+0x064d34485,
+0x002242b99,
+0x008945ea1,
+0x0996ebbc0,
+0x0546fad1a,
+0x0f8191637,
+0x04362a6a3,
+0x0e993d011,
+0x0acd4b736,
+0x05499e5e3,
+0x0d27a77c2,
+0x0a4d38bbe,
+0x0d7d8c419,
+0x0505a5d06,
+0x006453f7c,
+0x094fe3836,
+0x0e9f08eba,
+0x0ea42abb4,
+0x0f11bbf9d,
+0x0a0ffe2ef,
+0x0b9994cd7,
+0x00ce29f41,
+0x09d8a3f21,
+0x0a7799e42,
+0x0f2b3e9a6,
+0x09fa50271,
+0x07fd8e4a3,
+0x0c5f05b3d,
+0x0e8936ee3,
+0x08de47634,
+0x094be85a3,
+0x09de23497,
+0x08d17a2b6,
+0x016861079,
+0x0add413e0,
+0x0740b4f52,
+0x03966b556,
+0x0ce430269,
+0x007d751b8,
+0x0bbb9cf58,
+0x038a13954,
+0x0ac23cfef,
+0x079b6469c,
+0x04ec411c5,
+0x067a1de46,
+0x053fa3d26,
+0x06908e1eb,
+0x01ffc8800,
+0x02e070e97,
+0x010316129,
+0x093693628,
+0x07beacca1,
+0x04eb7fc53,
+0x0a1b3114f,
+0x0252e4db9,
+0x044a72e62,
+0x0c173864b,
+0x051ab39a6,
+0x0807f07b6,
+0x05dbe0e63,
+0x08878fbb6,
+0x0d769897d,
+0x0fce95c68,
+0x02d3247f3,
+0x0e1986018,
+0x0a3416e5b,
+0x0836ffded,
+0x0095f8455,
+0x053a40596,
+0x0cf9cd8c8,
+0x0f5e16749,
+0x006db92d8,
+0x0e3ff32f2,
+0x084bd15a7,
+0x07344cdd0,
+0x06923d08b,
+0x076db1c73,
+0x04ce6a6bc,
+0x0630216fb,
+0x071877824,
+0x05000978d,
+0x040f4890d,
+0x043851e30,
+0x055e459bc,
+0x07fe7a9d3,
+0x0d00323ae,
+0x094d91d96,
+0x0cdd4bf5a,
+0x028c14d3b,
+0x0f7ae2ff2,
+0x00015ac2d,
+0x0e594a568,
+0x0e70b68d6,
+0x0aee9902e,
+0x0a851023b,
+0x020ece141,
+0x07803622c,
+0x0b96161d3,
+0x09638b2aa,
+0x084b2ce5c,
+0x013ffc276,
+0x0bc884abe,
+0x0646e1c38,
+0x0198de0ac,
+0x033b18fe0,
+0x0eaa9ad8a,
+0x009b2c06d,
+0x05cc9f6ce,
+0x094f52a62,
+0x0f4a8e53d,
+0x0c66ab329,
+0x0f854dbcf,
+0x0b2ba7058,
+0x0c247a57f,
+0x0f8b034bd,
+0x00cd5caae,
+0x0bb7c9cc3,
+0x0c9ae9ebc,
+0x0e43f562f,
+0x05c3db9f3,
+0x0bc180c33,
+0x09af89d57,
+0x064d91b6f,
+0x08da77111,
+0x0fcef32fa,
+0x04dc8b688,
+0x070ecc280,
+0x0d5576311,
+0x0fd973360,
+0x06e6cb60e,
+0x0cd254c70,
+0x02883dcec,
+0x06e6fadf2,
+0x06d64a1ca,
+0x036c2397f,
+0x0ea64fbf4,
+0x077e1c21c,
+0x06c6f2f64,
+0x01c864e8c,
+0x05da64af1,
+0x08bcd0e1e,
+0x0a71551f5,
+0x0fb817bb8,
+0x0443406e8,
+0x060e596d3,
+0x0053b5d19,
+0x07387e152,
+0x0846ba9ca,
+0x0a249b4e3,
+0x00ece144b,
+0x07268b857,
+0x000d3013e,
+0x043562bde,
+0x01d960611,
+0x066c492ff,
+0x00bf781ed,
+0x06ff6c3e6,
+0x0b07c7c3e,
+0x0071e003c,
+0x0d98beca1,
+0x069849148,
+0x00d99596b,
+0x097f0ac72,
+0x07de6774c,
+0x0bd7ab32f,
+0x08a367072,
+0x00d2b8a88,
+0x0c344c9d8,
+0x0a60830d5,
+0x05f963a49,
+0x006d5ef3d,
+0x011055f8b,
+0x01c3f3e74,
+0x0b9a0f917,
+0x01f2cac8f,
+0x025b8c3e0,
+0x0bfa52447,
+0x040efa618,
+0x0a72c6148,
+0x01a916da3,
+0x09f066261,
+0x028312bf8,
+0x08f69c27e,
+0x06308b97a,
+0x0a4b8361e,
+0x000ef8685,
+0x0eb29d794,
+0x0bcac277f,
+0x0d3ed44e6,
+0x0a8d3f8cd,
+0x0c42d110e,
+0x01176b1b0,
+0x0654bf26d,
+0x0ed18b24b,
+0x07ca3b295,
+0x0f76b9092,
+0x065b3e943,
+0x0035faff6,
+0x0dcbbb8c8,
+0x05b0d995e,
+0x00b36b82f,
+0x0aee3b0c4,
+0x0269effa7,
+0x0f6b1658b,
+0x0fe065d91,
+0x068b0cfae,
+0x02d1662d0,
+0x0ffa34800,
+0x0f4098fd7,
+0x0bd7a069b,
+0x0d2229939,
+0x0dd9b77a0,
+0x0cc0f46d2,
+0x08f184b19,
+0x029676687,
+0x05f7c0537,
+0x0eb61145b,
+0x01582df06,
+0x0a9887929,
+0x0476c5da2,
+0x048b071cc,
+0x0027c3618,
+0x0c06866e4,
+0x0c013a9dd,
+0x01c59b4de,
+0x05b54c60e,
+0x0f114bf8e,
+0x0f63d582e,
+0x088248405,
+0x085e70e88,
+0x069312654,
+0x04f579d8d,
+0x06f72694c,
+0x01567d8a7,
+0x07deb05a1,
+0x0f99d79eb,
+0x07e607ba7,
+0x013016c9c,
+0x00ae526eb,
+0x02f26fed6,
+0x0e2b9c2ae,
+0x05741b0bd,
+0x0751f374e,
+0x0e35c58e1,
+0x0673995ea,
+0x06d5a0e5d,
+0x0b4ddd0bb,
+0x02c253734,
+0x0f2ef315d,
+0x073231ce2,
+0x060435dd7,
+0x0c45b1256,
+0x00cf3767e,
+0x0ad532d58,
+0x00c5d8d1d,
+0x0e433a48c,
+0x0a3ed3b1b,
+0x09ac0abef,
+0x03044c259,
+0x0627d3758,
+0x0f0813055,
+0x005ff2770,
+0x028f0052c,
+0x0a20428b1,
+0x0e5bf5ea4,
+0x06e507f6d,
+0x0744bb78b,
+0x007ee4cdc,
+0x0c1cbbf8b,
+0x0ae7e3367,
+0x098bba8b4,
+0x02f4a9b8f,
+0x0e79a69f6,
+0x0b23b1c7b,
+0x04a4f7c03,
+0x088c15962,
+0x01c2e959f,
+0x05f4eba41,
+0x01bb71edb,
+0x01aabff50,
+0x0fc875519,
+0x06442ba35,
+0x09c2b1439,
+0x0c4d327a4,
+0x0b61a51e0,
+0x038163215,
+0x0475c8392,
+0x0c223e000,
+0x04124a897,
+0x0775413cf,
+0x0fc457a3d,
+0x0b7e38b96,
+0x0a97693ab,
+0x0e8d7f77c,
+0x0d6988b48,
+0x03d3bd796,
+0x0073a0e13,
+0x0861845d5,
+0x084fbdba0,
+0x0a4a6b7f5,
+0x09fd039c6,
+0x0290c2bcc,
+0x04e05d98e,
+0x0a2628c0e,
+0x09e28e8e4,
+0x090b6b9ea,
+0x0e4e87114,
+0x0aee3f47d,
+0x018fdeda8,
+0x0d63f6120,
+0x04ef7e15d,
+0x006a69742,
+0x078fa33d3,
+0x009856f02,
+0x0cef631dd,
+0x0ece3201b,
+0x08f833dad,
+0x05fc3306a,
+0x0df0b7ba1,
+0x09ffaef66,
+0x023036932,
+0x09c0d7044,
+0x012e3f76b,
+0x0b5d0983c,
+0x091306f29,
+0x0ec130182,
+0x01db64117,
+0x0dda2de65,
+0x0d189a9f3,
+0x0c7d5a7c5,
+0x0df68f582,
+0x0c88bf3cc,
+0x01e137687,
+0x0b67cc43b,
+0x017635cbf,
+0x00a9d5300,
+0x0222bc430,
+0x0946b35b0,
+0x03534733f,
+0x0a0061344,
+0x02789760d,
+0x0d0e66ec4,
+0x0277a7d8a,
+0x093b1d5f9,
+0x0ed470821,
+0x0ea3d494f,
+0x041a17949,
+0x0d9ccf290,
+0x0a5815869,
+0x061371b14,
+0x09248d890,
+0x081301467,
+0x073e8ac85,
+0x018b482e3,
+0x0d334a6aa,
+0x05a72f3d5,
+0x01dbd8264,
+0x090116492,
+0x02940f235,
+0x03b0e1bef,
+0x0fd45af74,
+0x0da8f9cd2,
+0x0d9c362d7,
+0x0aa4ac591,
+0x0beb897c3,
+0x0f372e990,
+0x0bb511cce,
+0x06931e339,
+0x0a5446964,
+0x05bdb953a,
+0x06890cd5d,
+0x01795e058,
+0x0e0ccb37f,
+0x05e7ab18e,
+0x001c6397f,
+0x0098dee7e,
+0x0de34f9ff,
+0x0b2c6bca4,
+0x073a564c6,
+0x0724a2d53,
+0x008619268,
+0x0333ea7ee,
+0x0e857ed91,
+0x0540e853c,
+0x0ffde252b,
+0x0d37933f9,
+0x045e196d1,
+0x0f2a060ca,
+0x0d8b28a8b,
+0x0b97f67bd,
+0x092330534,
+0x0f1298cdc,
+0x0f36853b6,
+0x077395faa,
+0x0303c93c9,
+0x04f6fed00,
+0x049f00f5b,
+0x0d73445ac,
+0x0797a6d49,
+0x06b973efd,
+0x0c4859e90,
+0x061cabdae,
+0x06a83b911,
+0x0c4943c37,
+0x0a5425d66,
+0x01a5b8165,
+0x07eb4a087,
+0x057ef42b3,
+0x0f73cdd84,
+0x07a889979,
+0x071442b44,
+0x019cdc63e,
+0x0196e6a08,
+0x08186f672,
+0x038ccdca9,
+0x0c414deb5,
+0x028d01fd1,
+0x0676ecdad,
+0x08ad36dae,
+0x0c84fb836,
+0x0c1d2c106,
+0x061e084f8,
+0x0e85a09f3,
+0x0e536c66a,
+0x0f7d608a4,
+0x05f06dcc0,
+0x0f218202b,
+0x04fd26a81,
+0x0c6c77a94,
+0x0f8995a52,
+0x0ea5a1f9c,
+0x0da51ca05,
+0x01fd4f273,
+0x0574ffa8e,
+0x0c92b5a59,
+0x0cfb22dac,
+0x07b22ed78,
+0x0e7208abf,
+0x0c4cdd412,
+0x0baabed8d,
+0x06c401962,
+0x0e40ca8ac,
+0x0e8beb01b,
+0x09b2862de,
+0x04511d857,
+0x0e344b4e7,
+0x0e49c6b6d,
+0x0c8a5e8f3,
+0x01d63ff9e,
+0x0050ca77d,
+0x0155483b7,
+0x00dd1c476,
+0x01d1fd726,
+0x06821838b,
+0x036873249,
+0x042a4ea68,
+0x0c34dbd2c,
+0x0808b4a27,
+0x08c1b8f1c,
+0x07283bb13,
+0x05fda50b3,
+0x0609cf352,
+0x0d2cdb96e,
+0x02c27b26f,
+0x035374e13,
+0x0f96a9340,
+0x05b438a43,
+0x01d20d663,
+0x0738d799d,
+0x0d1a22c38,
+0x07cf0e7c5,
+0x0310776cc,
+0x0f461a9d5,
+0x02e491ee9,
+0x0169584c0,
+0x09ef56627,
+0x05eb25a0d,
+0x09559c096,
+0x0fdaa5be2,
+0x08bef6eb3,
+0x0f37c714e,
+0x04fc5da3b,
+0x02097017a,
+0x03515743d,
+0x08e1aa519,
+0x0b7edd0a4,
+0x00f88ab26,
+0x0308b04b8,
+0x0c88f0d32,
+0x0497116d8,
+0x091204df1,
+0x009f3feae,
+0x011daff68,
+0x091e3939c,
+0x0aab3e5d3,
+0x027848ff9,
+0x0b822d2a2,
+0x05973ed68,
+0x0b71ce716,
+0x04d3765c5,
+0x049b92e6e,
+0x0c278cd35,
+0x01e2bf90a,
+0x0df08842a,
+0x001cb7855,
+0x0a8d123f7,
+0x01c5ed051,
+0x038a12bbe,
+0x0485764a4,
+0x09e79814d,
+0x07913f20c,
+0x07f267f98,
+0x0897b6db0,
+0x08291a6c0,
+0x0411bfa76,
+0x057825231,
+0x0d095fa80,
+0x0c339acaa,
+0x03084d180,
+0x0754d1a4d,
+0x06ea964a0,
+0x05b119e10,
+0x08fd31ce4,
+0x0710d5ae4,
+0x005e506d2,
+0x02345ad4f,
+0x0643bc94e,
+0x09c58fb72,
+0x0298a3aa1,
+0x08d34afac,
+0x021d9e0a4,
+0x0cd3520cb,
+0x00ec13bda,
+0x0573836c9,
+0x0a1b1f7dd,
+0x068d5e266,
+0x0d2cbb7c8,
+0x01bbddcd6,
+0x08e88b69b,
+0x0052ca641,
+0x064fbbcc5,
+0x0a0f3c7a4,
+0x00b80fc3b,
+0x010de41cc,
+0x014647832,
+0x0ae997c4d,
+0x0def599c3,
+0x05744c6fe,
+0x020aed792,
+0x01ddf4b6e,
+0x0bcd7ddc2,
+0x0412b5ff8,
+0x0c7b5168e,
+0x0526c2210,
+0x0319b1ddc,
+0x0e3b67a04,
+0x0b51eb9f8,
+0x03b8b5c96,
+0x0af381b12,
+0x0b0a3cb3a,
+0x0e74c7ef0,
+0x0befaed5c,
+0x01c263c61,
+0x053fec7be,
+0x07b2cbf05,
+0x03daea18a,
+0x0e51f505b,
+0x0cdbef924,
+0x028b57743,
+0x09b051893,
+0x007505bcc,
+0x016ce0654,
+0x08b6d9330,
+0x09deac02d,
+0x01c8ef6e9,
+0x0053f7d2b,
+0x04cc6fe45,
+0x0e18ef626,
+0x03263f070,
+0x045f8436b,
+0x0cc741b80,
+0x0e55cab1a,
+0x0f99cb1fd,
+0x02a6ae76b,
+0x028641341,
+0x05c21f5c7,
+0x06dfc746a,
+0x03730e3f8,
+0x0715fae24,
+0x0da2c48fb,
+0x03d352154,
+0x0e04c163c,
+0x05986beff,
+0x0eca7ff63,
+0x0125846aa,
+0x0443d53d0,
+0x0ecd8c011,
+0x0a8e89f54,
+0x0b8766455,
+0x0b803b4c0,
+0x095a0b4e2,
+0x0b286714d,
+0x082ada272,
+0x032e8c747,
+0x044786922,
+0x021e793f7,
+0x01409ef01,
+0x03c872f5e,
+0x0342722ab,
+0x016a884d1,
+0x0b600ebc7,
+0x0c92a57fa,
+0x04b83dfa5,
+0x03a1936a7,
+0x02bba6dca,
+0x0674c5a74,
+0x080a41054,
+0x0aa81eb6f,
+0x07f60286b,
+0x05b63d91c,
+0x05d165ce4,
+0x01ecdd0e4,
+0x0cd9e91f2,
+0x0a9326a9c,
+0x07c4dbf68,
+0x07e53eede,
+0x05d936751,
+0x0ea99d29a,
+0x0691a314a,
+0x09950d4c3,
+0x0ac07f029,
+0x0105b9e27,
+0x0ee3e43b4,
+0x07f2fe4e2,
+0x0306e6c83,
+0x0e7c949fe,
+0x0483c364e,
+0x0cc031d49,
+0x0601fd827,
+0x074bb406c,
+0x0ffff01f7,
+0x03cf28662,
+0x082a1ec63,
+0x00ab57d17,
+0x0e55de78a,
+0x015d9ff7a,
+0x05b8b43a4,
+0x09ad240c6,
+0x05b22023a,
+0x00235aa40,
+0x0656b0982,
+0x0b0bdb165,
+0x080a527c8,
+0x00e7758ad,
+0x059da81db,
+0x0d02223cf,
+0x0966b4fb7,
+0x01fd55261,
+0x0a86c5ad1,
+0x00935981b,
+0x0cd7be678,
+0x0a7fcf2d5,
+0x036ae610b,
+0x0d9fe61d8,
+0x0c6e65946,
+0x0c052c95b,
+0x0db228633,
+0x0cc405535,
+0x06995af68,
+0x0d240b2fc,
+0x0ff23358f,
+0x0df3371b1,
+0x0603ae075,
+0x087d799d8,
+0x0e640771e,
+0x0c728a132,
+0x094e88830,
+0x006f2af59,
+0x080df526b,
+0x041425855,
+0x0dbf10f93,
+0x007c5f942,
+0x073fcf3c1,
+0x080057eb6,
+0x07020b021,
+0x0e3f28436,
+0x0df151805,
+0x0892517e2,
+0x08eeb19b5,
+0x06d1cc620,
+0x02171ec2b,
+0x09b1a7a4f,
+0x03f3630cf,
+0x0c0f01526,
+0x0f133bf2e,
+0x07cd2939a,
+0x0b769aae7,
+0x0ad2ca975,
+0x07f33b08f,
+0x0a1f63b24,
+0x09469c17a,
+0x0acc931c3,
+0x032e9cf08,
+0x0ac4bc0b1,
+0x0b4fab989,
+0x0771ae514,
+0x0f61c7985,
+0x0d790aa74,
+0x0301b37c3,
+0x0828d3ef9,
+0x0a4d48b50,
+0x010c6d636,
+0x06a7a6738,
+0x03c659d9e,
+0x028afa7a7,
+0x025b1f272,
+0x07b754a1a,
+0x040df6f60,
+0x0efdbc9ff,
+0x0fc2c56fe,
+0x05f379741,
+0x01b9ce546,
+0x09575c30c,
+0x0b28dcf2b,
+0x012cd47b5,
+0x08d6fda91,
+0x065e438f7,
+0x0ccc5fa73,
+0x035d8dc18,
+0x0360601c8,
+0x02e4f1b8f,
+0x0ceda2d5e,
+0x0eab424d0,
+0x04ba637f3,
+0x03dc5ee37,
+0x00fdb7f89,
+0x0ff2bd9e8,
+0x0a860ebcb,
+0x090bb9ac1,
+0x06b4a600b,
+0x0683d0171,
+0x0caad25ce,
+0x004a3c7b6,
+0x06430e1f3,
+0x0ac23a5ec,
+0x0db79bafc,
+0x07f802a4c,
+0x053d1dbbe,
+0x025db29c6,
+0x0a2c88bbf,
+0x0c541923b,
+0x071e94816,
+0x0586d2d00,
+0x0d33713a9,
+0x0b33f9825,
+0x071675748,
+0x0261f5922,
+0x01fe4e393,
+0x024040c72,
+0x0ef87d102,
+0x087cb75a7,
+0x06ba0448f,
+0x04b8063c9,
+0x01b97f973,
+0x0c0a83b58,
+0x0ff59953c,
+0x03eb355b7,
+0x02c8d1714,
+0x009492ada,
+0x097829f25,
+0x05b22bf4b,
+0x09f10f310,
+0x01ef78f60,
+0x042b3eada,
+0x073c60df8,
+0x07a3b3078,
+0x09bf18098,
+0x0c4654264,
+0x0d6159c71,
+0x0b77b1452,
+0x0d8617af8,
+0x05e14871d,
+0x096d02138,
+0x0e4a94026,
+0x03af6e818,
+0x0497bac1e,
+0x00a0551e3,
+0x084251a6b,
+0x0031c53aa,
+0x0a8634a8b,
+0x04e73bfc1,
+0x034ab2c20,
+0x0b161831b,
+0x04d12953c,
+0x0d1f9a9df,
+0x08142ba0d,
+0x0a0713d9e,
+0x06939a499,
+0x0aa58a2e3,
+0x05536a867,
+0x06c2cfeed,
+0x0adc3706f,
+0x0f3372314,
+0x01ea6a986,
+0x093f4025f,
+0x04e3ef4d5,
+0x02b5f8749,
+0x0217d196e,
+0x0a4483f39,
+0x02adce5a6,
+0x0ce3ad9a0,
+0x0b1026212,
+0x00eff470d,
+0x0cc04f5ee,
+0x0fa9db235,
+0x00f5208bd,
+0x0c941240d,
+0x0812b23c5,
+0x0a234396e,
+0x0774ad6dc,
+0x0636e4f63,
+0x030673a3a,
+0x055b00e0c,
+0x08c9314bc,
+0x05dfad64b,
+0x04fbe70eb,
+0x0b70c226f,
+0x0a69472e3,
+0x03ad39383,
+0x0ae2fcd80,
+0x0cab45994,
+0x0ff27d4ec,
+0x059e023ff,
+0x0181f6c0b,
+0x085399ada,
+0x095663faf,
+0x0e95c0a17,
+0x06515bf8b,
+0x0d4a6d189,
+0x0a626cae9,
+0x033bf87b4,
+0x0805dc01e,
+0x0869af6a7,
+0x0ef11d8c7,
+0x06714e120,
+0x0611ca874,
+0x0f3032c53,
+0x0fb471123,
+0x076adac06,
+0x09bcd67f8,
+0x031df7feb,
+0x01f3cc5a5,
+0x07090c9db,
+0x0ec302e9c,
+0x08b6cdb15,
+0x0906b53a7,
+0x06769b8d7,
+0x05d0b488b,
+0x040c7d1ca,
+0x0229e62b5,
+0x0ee6006be,
+0x005cfd40a,
+0x0075e0f75,
+0x08ffa19af,
+0x07bbbfc2e,
+0x0b67fee4b,
+0x048b8152b,
+0x0c3fda6c2,
+0x0e78643c4,
+0x0b37783cc,
+0x096ecee34,
+0x0ce5f456b,
+0x0ee5d55cc,
+0x0322b6233,
+0x01d6e76cd,
+0x081976b69,
+0x0b67bd9f6,
+0x06e9ccf4f,
+0x062f9131c,
+0x098b3f6dd,
+0x07e34d0ec,
+0x0d4c560a7,
+0x04f1296d0,
+0x0ac7b44f5,
+0x061478e66,
+0x0ef0a0fa2,
+0x051f27da1,
+0x0ec218fd1,
+0x0a876f66b,
+0x03ac24284,
+0x0186dd28a,
+0x08558e08e,
+0x0a636c577,
+0x0d01ade2f,
+0x04b712fc3,
+0x0a1baf428,
+0x035ab28c5,
+0x06c699438,
+0x031513055,
+0x03d93aea9,
+0x08c2ed7d9,
+0x0025c4f19,
+0x06ff5f6cd,
+0x077b002a3,
+0x0bcd56ddb,
+0x06cb1bfb7,
+0x022fab9b4,
+0x0c3afc79f,
+0x01f43c9a7,
+0x051c6d655,
+0x0b5a2e9b3,
+0x0ae834627,
+0x08da1f511,
+0x0a7927f72,
+0x0b05de8fb,
+0x0d37a0c18,
+0x0ea5cb97d,
+0x0fe589453,
+0x0985081b7,
+0x005bbd298,
+0x0bf0903f9,
+0x0e12bbc72,
+0x0c21bde02,
+0x08bde2e5b,
+0x005aafe42,
+0x0e6f37539,
+0x0a7dc461a,
+0x03ad9aab3,
+0x0bf3bd09c,
+0x056b1edfc,
+0x0dffa44d8,
+0x0f9f40104,
+0x0231ea4af,
+0x0c9ba691c,
+0x0e71c0508,
+0x0d8692078,
+0x021e85e13,
+0x0019c158b,
+0x048a93dbe,
+0x04a88483c,
+0x0c191b5b4,
+0x0bb657c24,
+0x04f5ee7d6,
+0x075992124,
+0x0b6d99be1,
+0x05bf8bdf4,
+0x00869e554,
+0x09ebf2ffe,
+0x08d1af645,
+0x0e53c3d5b,
+0x037e25dd3,
+0x082166c1f,
+0x09d292a3f,
+0x036e4e0c1,
+0x06df347c7,
+0x0cc52691b,
+0x07a356d28,
+0x08b56a5d4,
+0x05b1ce71b,
+0x063469a2c,
+0x0b071e353,
+0x058d4600f,
+0x0e97ce5c9,
+0x0269b6472,
+0x0acbd00a3,
+0x060d0592b,
+0x073cb1326,
+0x0bef80858,
+0x0d37a6406,
+0x0787d1f48,
+0x0207d811b,
+0x000fafda1,
+0x029c23577,
+0x02bdf4a68,
+0x0d80dbcbe,
+0x0fbe0cff4,
+0x017575a93,
+0x0fd3ede14,
+0x08a2c4e02,
+0x04096892a,
+0x0ff3732b6,
+0x07e59e199,
+0x0b7bd5eb2,
+0x075ed78bc,
+0x0625e7637,
+0x0edf36e43,
+0x0943f7829,
+0x048739ce7,
+0x0ec043eb4,
+0x0033cb066,
+0x02d72860f,
+0x0dcd92a6f,
+0x00c844aeb,
+0x0d3888318,
+0x0f4768162,
+0x04deaa8ae,
+0x0276f0469,
+0x0fa75d51b,
+0x0bb369812,
+0x00ab26b53,
+0x0b402894a,
+0x0ea1474d3,
+0x0e2bc645e,
+0x0d78fe703,
+0x08e1f244c,
+0x0512394e9,
+0x066fa7003,
+0x00de0afb3,
+0x035e91932,
+0x0345df084,
+0x0511068b5,
+0x0c4bc1f35,
+0x0555cb208,
+0x058f7f221,
+0x02d37f2eb,
+0x0fa701a98,
+0x09f715513,
+0x050805d04,
+0x074d9265d,
+0x0c162122e,
+0x02c822100,
+0x002551bac,
+0x0ed270be9,
+0x08433e26b,
+0x09136f069,
+0x00b697c0d,
+0x08c70e36e,
+0x020d41cd6,
+0x089b7fea6,
+0x0c0022ee9,
+0x05a210986,
+0x09e5eb167,
+0x0ff00f84e,
+0x01e8f0c37,
+0x09d98f1c8,
+0x0185d15f2,
+0x05390de55,
+0x0688d63c4,
+0x03d0124ca,
+0x0891da731,
+0x063b6e2ec,
+0x05b6d69d4,
+0x0f0dee368,
+0x060e2f0ae,
+0x0f0fc7673,
+0x0ac80d8cb,
+0x04b85f1e7,
+0x061b11b8a,
+0x09bb5b657,
+0x09c5c391a,
+0x0f6dfc703,
+0x038b805d4,
+0x03c236ac9,
+0x0833951ba,
+0x01c8952bc,
+0x009e2a84d,
+0x085e59abf,
+0x063a59587,
+0x02d1fb388,
+0x09773277a,
+0x0bd5623a4,
+0x03da3d04c,
+0x091f59f17,
+0x0be6eff7b,
+0x06f687710,
+0x0176a7817,
+0x02d7544d0,
+0x088b122d0,
+0x00d842c6e,
+0x0c343bce5,
+0x0e600e7bf,
+0x044c9e45b,
+0x03139ab7a,
+0x00393a996,
+0x0676507c0,
+0x06fc79bd7,
+0x0a5742204,
+0x0178c7caf,
+0x09757cdd4,
+0x08873a091,
+0x0e467d47f,
+0x0a6aed7e5,
+0x0aff6629b,
+0x0206a6006,
+0x0874bb732,
+0x083d7f0cd,
+0x0147d996f,
+0x0ab378154,
+0x03226a585,
+0x0607752bf,
+0x015f906fb,
+0x05b258ca4,
+0x032503459,
+0x0dd60a172,
+0x0f1204571,
+0x0786cf4a0,
+0x0aecb28cf,
+0x074f3ef68,
+0x0d138bcee,
+0x01f0259eb,
+0x0a1f90621,
+0x0bf70656d,
+0x0c8acb0e7,
+0x0655dbf8b,
+0x0306609bc,
+0x027821cae,
+0x086febcea,
+0x027ea314b,
+0x0d2e62b64,
+0x02a29c3d1,
+0x03acbf9cd,
+0x0cded83f0,
+0x0a563b61a,
+0x0aa8b3e9a,
+0x05deaf3aa,
+0x05e0ade61,
+0x02f0ded5d,
+0x0b751e689,
+0x0210367b8,
+0x021aba18e,
+0x023c5f1b8,
+0x05cb069d8,
+0x0cb0a7055,
+0x0e7f70c3d,
+0x0f20eb618,
+0x0c3237d7a,
+0x0a88a5473,
+0x0b2319e8d,
+0x06bc656d3,
+0x0e88aad72,
+0x015aa9e8f,
+0x0348dc839,
+0x07b7281ec,
+0x0b6388dfe,
+0x0c54c6e87,
+0x01fddd392,
+0x0a2f4df7c,
+0x01402671c,
+0x0a6ce2874,
+0x099b74628,
+0x0f3df87cd,
+0x0dd872ad8,
+0x0b324b1b8,
+0x0a1db171a,
+0x04cc693f6,
+0x04c2e1dd5,
+0x079705c95,
+0x0650621ff,
+0x0ea43b4a7,
+0x07d79109a,
+0x07a4b7168,
+0x0a6832468,
+0x0c59579ee,
+0x03ad75f09,
+0x0405df3d1,
+0x07b135af0,
+0x0cdf39590,
+0x00d06227c,
+0x0abf9d0f7,
+0x0890c79cf,
+0x0c51de0c1,
+0x0f2881a14,
+0x016dc132a,
+0x0e2c143ef,
+0x06ab74cfc,
+0x0c5f9c396,
+0x0cc410609,
+0x059966a71,
+0x0ad642694,
+0x07e2af650,
+0x0d0f56583,
+0x0d94da5a9,
+0x0cbd32ed9,
+0x0f73c089f,
+0x01e12c0c3,
+0x0f47f1f72,
+0x0ab18126f,
+0x0e1461f68,
+0x0407e295e,
+0x04c324df0,
+0x02b039f9e,
+0x0c631be0a,
+0x0c67c15f2,
+0x0e6174495,
+0x0ec64df46,
+0x0d5c80448,
+0x003cc0e6b,
+0x0d5df488d,
+0x0d060d246,
+0x04c343e9b,
+0x07c234725,
+0x0d7a01c4f,
+0x0733c13ea,
+0x0d465845e,
+0x0b321bf28,
+0x09a4bfd8c,
+0x0084e0141,
+0x03d1c1669,
+0x037e0c4b8,
+0x082a6b740,
+0x0480c43ef,
+0x0348c075d,
+0x081d2f260,
+0x0a04f70f3,
+0x09440be4f,
+0x083da6e59,
+0x09b9fc5cd,
+0x067ab0b2b,
+0x011f4d585,
+0x070eafb5f,
+0x0a814e096,
+0x084dddfe9,
+0x03b95f550,
+0x082333bf7,
+0x0046fd237,
+0x0c51fa550,
+0x05966e83b,
+0x0dd943588,
+0x02a89f971,
+0x0a50bf74b,
+0x061453dff,
+0x0e07931d4,
+0x07cbc9a51,
+0x08bbfb441,
+0x0fa3d78b5,
+0x05ca3b116,
+0x0d476b505,
+0x01beedfbc,
+0x0c39918a6,
+0x01a706c42,
+0x003d378ca,
+0x04d322519,
+0x08a47dd58,
+0x0de8628cf,
+0x079be5d1b,
+0x031485b12,
+0x0cad3b1b1,
+0x03632d68d,
+0x0df7bfa60,
+0x062029038,
+0x0b94ab7cf,
+0x0bad606fa,
+0x0d57baa5d,
+0x016122f47,
+0x00bc4c848,
+0x0523d4499,
+0x0ece7c785,
+0x0c3f7b155,
+0x0ef7077a5,
+0x02ec127b2,
+0x09a61117e,
+0x00bd11acb,
+0x0e35753c0,
+0x0f77b3cfd,
+0x025ba4bfe,
+0x059b0271c,
+0x0af3389b1,
+0x08e06e9b7,
+0x089be9c46,
+0x053c68e4d,
+0x050178418,
+0x05c766f84,
+0x0ce4b7869,
+0x0b0983620,
+0x07fb95077,
+0x0f39509a9,
+0x0a6462a99,
+0x082ec67f6,
+0x06ea2b946,
+0x00692d41b,
+0x00231f9ba,
+0x0623b4b56,
+0x0649e0188,
+0x07ea7c3b2,
+0x0d780f763,
+0x017ceec0d,
+0x03e130d93,
+0x0765f6e3c,
+0x093de429f,
+0x0a1daf9eb,
+0x0283c83c2,
+0x06987b7a1,
+0x092f53d7e,
+0x06f30370e,
+0x0915d0ece,
+0x0cbfeb0c1,
+0x0748dc2e1,
+0x0af6630a1,
+0x0fd626a83,
+0x086da0b78,
+0x06001d884,
+0x0748a6537,
+0x052a04283,
+0x0909e7e26,
+0x01953a8ab,
+0x02cc1627e,
+0x03d8129d9,
+0x0f2844866,
+0x04b6fbd8e,
+0x0ab5cab78,
+0x07d6e1110,
+0x01205c13a,
+0x0926b87c2,
+0x0925b5f08,
+0x048429f8a,
+0x003246e39,
+0x09fba27e5,
+0x06e519de5,
+0x074feb3bb,
+0x0fd359a46,
+0x049b642af,
+0x0402495e2,
+0x0c9a50d25,
+0x0c91ab92b,
+0x076fe55ab,
+0x08135df83,
+0x09b64c1a9,
+0x025261ca3,
+0x09d6a91da,
+0x0e7c881d8,
diff --git a/src/soc/intel/baytrail/microcode/Makefile.inc b/src/soc/intel/baytrail/microcode/Makefile.inc
new file mode 100644
index 0000000000..09bd454ce0
--- /dev/null
+++ b/src/soc/intel/baytrail/microcode/Makefile.inc
@@ -0,0 +1 @@
+cpu_microcode-$(CONFIG_CPU_MICROCODE_CBFS_GENERATE) += microcode_blob.c
diff --git a/src/soc/intel/baytrail/microcode/microcode_blob.c b/src/soc/intel/baytrail/microcode/microcode_blob.c
new file mode 100644
index 0000000000..36f2de2333
--- /dev/null
+++ b/src/soc/intel/baytrail/microcode/microcode_blob.c
@@ -0,0 +1,3 @@
+unsigned microcode[] = {
+#include "M0C3067_0000030f.h"
+};
diff --git a/src/soc/intel/baytrail/mrc_cache.c b/src/soc/intel/baytrail/mrc_cache.c
new file mode 100644
index 0000000000..5613761ce5
--- /dev/null
+++ b/src/soc/intel/baytrail/mrc_cache.c
@@ -0,0 +1,294 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <string.h>
+#include <console/console.h>
+#include <cbmem.h>
+#include <ip_checksum.h>
+#if CONFIG_CHROMEOS
+#include <vendorcode/google/chromeos/fmap.h>
+#endif
+#include <baytrail/mrc_cache.h>
+
+#define MRC_DATA_ALIGN 0x1000
+#define MRC_DATA_SIGNATURE (('M'<<0)|('R'<<8)|('C'<<16)|('D'<<24))
+
+/* The mrc_data_region describes the larger non-volatile area to store
+ * mrc_saved_data objects.*/
+struct mrc_data_region {
+ void *base;
+ uint32_t size;
+};
+
+/* common code */
+static int mrc_cache_get_region(struct mrc_data_region *region)
+{
+#if CONFIG_CHROMEOS
+ int ret;
+ ret = find_fmap_entry("RW_MRC_CACHE", &region->base);
+ if (ret >= 0) {
+ region->size = ret;
+ return 0;
+ }
+#endif
+ region->base = (void *)CONFIG_MRC_SETTINGS_CACHE_BASE;
+ region->size = CONFIG_MRC_SETTINGS_CACHE_SIZE;
+ return 0;
+}
+
+static int mrc_cache_in_region(const struct mrc_data_region *region,
+ const struct mrc_saved_data *cache)
+{
+ uintptr_t region_end;
+ uintptr_t cache_end;
+
+ if ((uintptr_t)cache < (uintptr_t)region->base)
+ return 0;
+
+ region_end = (uintptr_t)region->base;
+ region_end += region->size;
+
+ if ((uintptr_t)cache >= region_end)
+ return 0;
+
+ if ((sizeof(*cache) + (uintptr_t)cache) >= region_end)
+ return 0;
+
+ cache_end = (uintptr_t)cache;
+ cache_end += cache->size + sizeof(*cache);
+
+ if (cache_end > region_end)
+ return 0;
+
+ return 1;
+}
+
+static int mrc_cache_valid(const struct mrc_data_region *region,
+ const struct mrc_saved_data *cache)
+{
+ uint32_t checksum;
+
+ if (cache->signature != MRC_DATA_SIGNATURE)
+ return 0;
+
+ if (cache->size > region->size)
+ return 0;
+
+ if (cache->reserved != 0)
+ return 0;
+
+ checksum = compute_ip_checksum((void *)&cache->data[0], cache->size);
+
+ if (cache->checksum != checksum)
+ return 0;
+
+ return 1;
+}
+
+static const struct mrc_saved_data *
+next_cache_block(const struct mrc_saved_data *cache)
+{
+ uintptr_t next = (uintptr_t)cache;
+
+ next += ALIGN(cache->size + sizeof(*cache), MRC_DATA_ALIGN);
+
+ return (const struct mrc_saved_data *)next;
+}
+
+/* Locate the most recently saved MRC data. */
+static int __mrc_cache_get_current(const struct mrc_data_region *region,
+ const struct mrc_saved_data **cache)
+{
+ const struct mrc_saved_data *msd;
+ const struct mrc_saved_data *verified_cache;
+
+ msd = region->base;
+
+ verified_cache = NULL;
+
+ while (mrc_cache_in_region(region, msd) &&
+ mrc_cache_valid(region, msd)) {
+ verified_cache = msd;
+ msd = next_cache_block(msd);
+ }
+
+ if (verified_cache == NULL)
+ return -1;
+
+ *cache = verified_cache;
+ return 0;
+}
+
+int mrc_cache_get_current(const struct mrc_saved_data **cache)
+{
+ struct mrc_data_region region;
+
+ if (mrc_cache_get_region(&region) < 0)
+ return -1;
+
+ return __mrc_cache_get_current(&region, cache);
+}
+
+#if defined(__PRE_RAM__)
+/* romstage code */
+
+/* Fill in mrc_saved_data structure with payload. */
+static void mrc_cache_fill(struct mrc_saved_data *cache, void *data,
+ size_t size)
+{
+ cache->signature = MRC_DATA_SIGNATURE;
+ cache->size = size;
+ cache->reserved = 0;
+ memcpy(&cache->data[0], data, size);
+ cache->checksum = compute_ip_checksum((void *)&cache->data[0],
+ cache->size);
+}
+
+int mrc_cache_stash_data(void *data, size_t size)
+{
+ int cbmem_size;
+ struct mrc_saved_data *cache;
+
+ cbmem_size = sizeof(*cache) + ALIGN(size, 16);
+
+ cache = cbmem_add(CBMEM_ID_MRCDATA, cbmem_size);
+
+ if (cache == NULL) {
+ printk(BIOS_ERR, "No space in cbmem for MRC data.\n");
+ return -1;
+ }
+
+ /* Clear alignment padding bytes. */
+ memset(&cache->data[size], 0, cbmem_size - size);
+
+ printk(BIOS_DEBUG, "Relocate MRC DATA from %p to %p (%zu bytes)\n",
+ data, cache, size);
+
+ mrc_cache_fill(cache, data, size);
+
+ return 0;
+}
+
+#else
+/* ramstage code */
+#include <bootstate.h>
+#include <baytrail/nvm.h>
+
+static int mrc_slot_valid(const struct mrc_data_region *region,
+ const struct mrc_saved_data *slot,
+ const struct mrc_saved_data *to_save)
+{
+ uintptr_t region_begin;
+ uintptr_t region_end;
+ uintptr_t slot_end;
+ uintptr_t slot_begin;
+ uint32_t size;
+
+ region_begin = (uintptr_t)region->base;
+ region_end = region_begin + region->size;
+ slot_begin = (uintptr_t)slot;
+ size = to_save->size + sizeof(*to_save);
+ slot_end = slot_begin + size;
+
+ if (slot_begin < region_begin || slot_begin > region_end)
+ return 0;
+
+ if (size > region->size)
+ return 0;
+
+ if (slot_end > region_end || slot_end < region_begin)
+ return 0;
+
+ if (!nvm_is_erased(slot, size))
+ return 0;
+
+ return 1;
+}
+
+static const struct mrc_saved_data *
+mrc_cache_next_slot(const struct mrc_data_region *region,
+ const struct mrc_saved_data *current_slot)
+{
+ const struct mrc_saved_data *next_slot;
+
+ if (current_slot == NULL) {
+ next_slot = region->base;
+ } else {
+ next_slot = next_cache_block(current_slot);
+ }
+
+ return next_slot;
+}
+
+static void update_mrc_cache(void *unused)
+{
+ const struct mrc_saved_data *current_boot;
+ const struct mrc_saved_data *current_saved;
+ const struct mrc_saved_data *next_slot;
+ struct mrc_data_region region;
+
+ printk(BIOS_DEBUG, "Updating MRC cache data.\n");
+
+ current_boot = cbmem_find(CBMEM_ID_MRCDATA);
+ if (!current_boot) {
+ printk(BIOS_ERR, "No MRC cache in cbmem.\n");
+ return;
+ }
+
+ if (mrc_cache_get_region(&region)) {
+ printk(BIOS_ERR, "Could not obtain MRC cache region.\n");
+ return;
+ }
+
+ if (!mrc_cache_valid(&region, current_boot)) {
+ printk(BIOS_ERR, "MRC cache data in cbmem invalid.\n");
+ return;
+ }
+
+ current_saved = NULL;
+
+ if (!__mrc_cache_get_current(&region, &current_saved)) {
+ if (current_saved->size == current_boot->size &&
+ !memcmp(&current_saved->data[0], &current_boot->data[0],
+ current_saved->size)) {
+ printk(BIOS_DEBUG, "MRC cache up to date.\n");
+ return;
+ }
+ }
+
+ next_slot = mrc_cache_next_slot(&region, current_saved);
+
+ if (!mrc_slot_valid(&region, next_slot, current_boot)) {
+ if (nvm_erase(region.base, region.size) < 0) {
+ printk(BIOS_DEBUG, "Could not erase MRC region.\n");
+ return;
+ }
+ next_slot = region.base;
+ }
+
+ nvm_write((void *)next_slot, current_boot,
+ current_boot->size + sizeof(*current_boot));
+}
+
+BOOT_STATE_INIT_ENTRIES(mrc_cache_update) = {
+ BOOT_STATE_INIT_ENTRY(BS_WRITE_TABLES, BS_ON_ENTRY,
+ update_mrc_cache, NULL),
+};
+
+#endif /* defined(__PRE_RAM__) */
diff --git a/src/soc/intel/baytrail/nvm.c b/src/soc/intel/baytrail/nvm.c
new file mode 100644
index 0000000000..dccc8014dc
--- /dev/null
+++ b/src/soc/intel/baytrail/nvm.c
@@ -0,0 +1,83 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdint.h>
+#include <stddef.h>
+#include <console/console.h>
+#include <string.h>
+#include <spi-generic.h>
+#include <spi_flash.h>
+#include <baytrail/nvm.h>
+
+/* This module assumes the flash is memory mapped just below 4GiB in the
+ * address space for reading. Also this module assumes an area it erased
+ * when all bytes read as all 0xff's. */
+
+static struct spi_flash *flash;
+
+static int nvm_init(void)
+{
+ if (flash != NULL)
+ return 0;
+
+ spi_init();
+ flash = spi_flash_probe(0, 0, 1000000, SPI_MODE_3);
+ if (!flash) {
+ printk(BIOS_DEBUG, "Could not find SPI device\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+/* Convert memory mapped pointer to flash offset. */
+static inline uint32_t to_flash_offset(void *p)
+{
+ return CONFIG_ROM_SIZE + (uintptr_t)p;
+}
+
+int nvm_is_erased(const void *start, size_t size)
+{
+ const char *cur = start;
+
+ while (size > 0) {
+ if (*cur != 0xff)
+ return 0;
+ cur++;
+ size--;
+ }
+ return 1;
+}
+
+int nvm_erase(void *start, size_t size)
+{
+ if (nvm_init() < 0)
+ return -1;
+ flash->erase(flash, to_flash_offset(start), size);
+ return 0;
+}
+
+/* Write data to NVM. Returns 0 on success < 0 on error. */
+int nvm_write(void *start, const void *data, size_t size)
+{
+ if (nvm_init() < 0)
+ return -1;
+ flash->write(flash, to_flash_offset(start), size, data);
+ return 0;
+}
diff --git a/src/soc/intel/baytrail/placeholders.c b/src/soc/intel/baytrail/placeholders.c
new file mode 100644
index 0000000000..8f2342adc0
--- /dev/null
+++ b/src/soc/intel/baytrail/placeholders.c
@@ -0,0 +1,21 @@
+
+#include <arch/acpi.h>
+#include <cpu/cpu.h>
+#include <device/pci_rom.h>
+#include <baytrail/acpi.h>
+
+
+void generate_cpu_entries(void) {}
+
+void acpi_create_intel_hpet(acpi_hpet_t * hpet) {}
+
+void acpi_create_serialio_ssdt(acpi_header_t *ssdt) {}
+
+unsigned long acpi_fill_mcfg(unsigned long current) { return current; }
+
+void smm_setup_structures(void *gnvs, void *tcg, void *smi1) {}
+
+void smm_init(void) {}
+
+/* Rmodules don't like weak symbols. */
+u32 map_oprom_vendev(u32 vendev) { return vendev; }
diff --git a/src/soc/intel/baytrail/romstage/Makefile.inc b/src/soc/intel/baytrail/romstage/Makefile.inc
new file mode 100644
index 0000000000..188ce44ecd
--- /dev/null
+++ b/src/soc/intel/baytrail/romstage/Makefile.inc
@@ -0,0 +1,4 @@
+cpu_incs += $(src)/soc/intel/baytrail/romstage/cache_as_ram.inc
+romstage-y += romstage.c
+romstage-y += raminit.c
+romstage-$(CONFIG_ENABLE_BUILTIN_COM1) += uart.c
diff --git a/src/soc/intel/baytrail/romstage/cache_as_ram.inc b/src/soc/intel/baytrail/romstage/cache_as_ram.inc
new file mode 100644
index 0000000000..920fbe4b09
--- /dev/null
+++ b/src/soc/intel/baytrail/romstage/cache_as_ram.inc
@@ -0,0 +1,280 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2000,2007 Ronald G. Minnich <rminnich@gmail.com>
+ * Copyright (C) 2007-2008 coresystems GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <cpu/x86/stack.h>
+#include <cpu/x86/mtrr.h>
+#include <cpu/x86/cache.h>
+#include <cpu/x86/post_code.h>
+#include <cbmem.h>
+
+/* The full cache-as-ram size includes the cache-as-ram portion from coreboot
+ * and the space used by the reference code. These 2 values combined should
+ * be a power of 2 because the MTRR setup assumes that. */
+#define CACHE_AS_RAM_SIZE \
+ (CONFIG_DCACHE_RAM_SIZE + CONFIG_DCACHE_RAM_MRC_VAR_SIZE)
+#define CACHE_AS_RAM_BASE CONFIG_DCACHE_RAM_BASE
+
+/* Enough room to cache CAR_TILE_SIZE starting at MRC_BIN_ADDRESS */
+#define CACHE_MRC_BASE (CONFIG_MRC_BIN_ADDRESS)
+#define CACHE_MRC_MASK (~(CONFIG_CAR_TILE_SIZE - 1))
+
+#define CPU_PHYSMASK_HI ((1 << (CONFIG_CPU_ADDR_BITS - 32)) - 1)
+
+#define NoEvictMod_MSR 0x2e0
+#define BBL_CR_CTL3_MSR 0x11e
+#define MCG_CAP_MSR 0x179
+
+ /* Save the BIST result. */
+ movl %eax, %ebp
+
+cache_as_ram:
+ post_code(0x20)
+
+ /* Send INIT IPI to all excluding ourself. */
+ movl $0x000C4500, %eax
+ movl $0xFEE00300, %esi
+ movl %eax, (%esi)
+
+ /* All CPUs need to be in Wait for SIPI state */
+wait_for_sipi:
+ movl (%esi), %eax
+ bt $12, %eax
+ jc wait_for_sipi
+
+ post_code(0x21)
+ /* Configure the default memory type to uncacheable as well as disable
+ * fixed and variable range mtrrs. */
+ movl $MTRRdefType_MSR, %ecx
+ rdmsr
+ andl $(~0x00000cff), %eax
+ wrmsr
+
+ post_code(0x22)
+ /* Zero the variable MTRRs. */
+ movl $MCG_CAP_MSR, %ecx
+ rdmsr
+ movzx %al, %ebx
+ /* First variable MTRR. */
+ movl $0x200, %ecx
+ xorl %eax, %eax
+ xorl %edx, %edx
+ 1:
+ wrmsr
+ inc %ecx
+ dec %ebx
+ jnz 1b
+
+ /* Zero out all fixed range and variable range MTRRs. */
+ movl $fixed_mtrr_table, %esi
+ movl $((fixed_mtrr_table_end - fixed_mtrr_table) / 2), %edi
+ xorl %eax, %eax
+ xorl %edx, %edx
+ 1:
+ movw (%esi), %bx
+ movzx %bx, %ecx
+ wrmsr
+ add $2, %esi
+ dec %edi
+ jnz 1b
+
+ post_code(0x23)
+ /* Set Cache-as-RAM base address. */
+ movl $(MTRRphysBase_MSR(0)), %ecx
+ movl $(CACHE_AS_RAM_BASE | MTRR_TYPE_WRBACK), %eax
+ xorl %edx, %edx
+ wrmsr
+
+ post_code(0x24)
+ /* Set Cache-as-RAM mask. */
+ movl $(MTRRphysMask_MSR(0)), %ecx
+ movl $(~(CACHE_AS_RAM_SIZE - 1) | MTRRphysMaskValid), %eax
+ movl $CPU_PHYSMASK_HI, %edx
+ wrmsr
+
+ post_code(0x25)
+ /* Set Cache-as-RAM base address. */
+ movl $(MTRRphysBase_MSR(1)), %ecx
+ movl $(CACHE_MRC_BASE | MTRR_TYPE_WRPROT), %eax
+ xorl %edx, %edx
+ wrmsr
+
+ movl $(MTRRphysMask_MSR(1)), %ecx
+ movl $(CACHE_MRC_MASK | MTRRphysMaskValid), %eax
+ movl $CPU_PHYSMASK_HI, %edx
+ wrmsr
+
+ /* Enable MTRR. */
+ movl $MTRRdefType_MSR, %ecx
+ rdmsr
+ orl $MTRRdefTypeEn, %eax
+ wrmsr
+
+ post_code(0x26)
+
+ /* Enable the L2 cache. */
+ movl $BBL_CR_CTL3_MSR, %ecx
+ rdmsr
+ orl $0x100, %eax
+ wrmsr
+
+ post_code(0x27)
+
+ /* Enable cache (CR0.CD = 0, CR0.NW = 0). */
+ movl %cr0, %eax
+ andl $(~(CR0_CacheDisable | CR0_NoWriteThrough)), %eax
+ invd
+ movl %eax, %cr0
+
+ /* enable the 'no eviction' mode */
+ movl $NoEvictMod_MSR, %ecx
+ rdmsr
+ orl $1, %eax
+ wrmsr
+
+ post_code(0x28)
+
+ /* Clear the cache memory region. This will also fill up the cache */
+ movl $CACHE_AS_RAM_BASE, %esi
+ movl %esi, %edi
+ movl $(CACHE_AS_RAM_SIZE / 4), %ecx
+ xorl %eax, %eax
+ rep stosl
+
+ /* enable no evict mode */
+ movl $NoEvictMod_MSR, %ecx
+ rdmsr
+ orl $2, %eax
+ wrmsr
+
+ post_code(0x29)
+
+ /* Setup the stack. */
+ movl $(CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE), %eax
+ movl %eax, %esp
+
+ /* Restore the BIST result. */
+ movl %ebp, %eax
+ movl %esp, %ebp
+ pushl %eax
+
+before_romstage:
+ post_code(0x2a)
+ /* Call romstage.c main function. */
+ call romstage_main
+ /* Save return value from romstage_main. It contains the stack to use
+ * after cache-as-ram is torn down. It also contains the information
+ * for setting up MTRRs. */
+ movl %eax, %ebx
+
+ post_code(0x2b)
+
+ /* Disable cache. */
+ movl %cr0, %eax
+ orl $CR0_CacheDisable, %eax
+ movl %eax, %cr0
+
+ post_code(0x2c)
+
+ /* Disable MTRR. */
+ movl $MTRRdefType_MSR, %ecx
+ rdmsr
+ andl $(~MTRRdefTypeEn), %eax
+ wrmsr
+
+ invd
+
+ post_code(0x2d)
+
+ /* Disable the no eviction run state */
+ movl $NoEvictMod_MSR, %ecx
+ rdmsr
+ andl $~2, %eax
+ wrmsr
+
+ /* Disable the no eviction mode */
+ rdmsr
+ andl $~1, %eax
+ wrmsr
+
+ post_code(0x2e)
+
+ /* Setup stack as indicated by return value from ramstage_main(). */
+ movl %ebx, %esp
+
+ /* Get number of MTRRs. */
+ popl %ebx
+ movl $MTRRphysBase_MSR(0), %ecx
+1:
+ testl %ebx, %ebx
+ jz 1f
+
+ /* Low 32 bits of MTRR base. */
+ popl %eax
+ /* Upper 32 bits of MTRR base. */
+ popl %edx
+ /* Write MTRR base. */
+ wrmsr
+ inc %ecx
+ /* Low 32 bits of MTRR mask. */
+ popl %eax
+ /* Upper 32 bits of MTRR mask. */
+ popl %edx
+ /* Write MTRR mask. */
+ wrmsr
+ inc %ecx
+
+ dec %ebx
+ jmp 1b
+1:
+ post_code(0x2f)
+
+ /* And enable cache again after setting MTRRs. */
+ movl %cr0, %eax
+ andl $~(CR0_CacheDisable | CR0_NoWriteThrough), %eax
+ movl %eax, %cr0
+
+ post_code(0x30)
+
+ /* Enable MTRR. */
+ movl $MTRRdefType_MSR, %ecx
+ rdmsr
+ orl $MTRRdefTypeEn, %eax
+ wrmsr
+
+ post_code(0x31)
+
+__main:
+ post_code(POST_PREPARE_RAMSTAGE)
+ cld /* Clear direction flag. */
+ call romstage_after_car
+
+.Lhlt:
+ post_code(POST_DEAD_CODE)
+ hlt
+ jmp .Lhlt
+
+/* Fixed MTRRs */
+fixed_mtrr_table:
+ .word 0x250, 0x258, 0x259
+ .word 0x268, 0x269, 0x26A
+ .word 0x26B, 0x26C, 0x26D
+ .word 0x26E, 0x26F
+fixed_mtrr_table_end:
+
diff --git a/src/soc/intel/baytrail/romstage/raminit.c b/src/soc/intel/baytrail/romstage/raminit.c
new file mode 100644
index 0000000000..68836d3ada
--- /dev/null
+++ b/src/soc/intel/baytrail/romstage/raminit.c
@@ -0,0 +1,93 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stddef.h>
+#include <arch/io.h>
+#include <cbfs.h>
+#include <cbmem.h>
+#include <console/console.h>
+#include <device/pci_def.h>
+#include <baytrail/gpio.h>
+#include <baytrail/mrc_cache.h>
+#include <baytrail/iomap.h>
+#include <baytrail/pci_devs.h>
+#include <baytrail/romstage.h>
+
+
+static void enable_smbus(void)
+{
+ uint32_t reg;
+ const uint32_t smbus_dev = PCI_DEV(0, SMBUS_DEV, SMBUS_FUNC);
+
+ /* SMBus I/O BAR */
+ reg = SMBUS_BASE_ADDRESS | 2;
+ pci_write_config32(smbus_dev, PCI_BASE_ADDRESS_4, reg);
+ /* Enable decode of I/O space. */
+ reg = pci_read_config16(smbus_dev, PCI_COMMAND);
+ reg |= 0x1;
+ pci_write_config16(smbus_dev, PCI_COMMAND, reg);
+ /* Enable Host Controller */
+ reg = pci_read_config8(smbus_dev, 0x40);
+ reg |= 1;
+ pci_write_config8(smbus_dev, 0x40, reg);
+
+ /* Configure pads to be used for SMBus */
+ score_select_func(PCU_SMB_CLK_PAD, 1);
+ score_select_func(PCU_SMB_DATA_PAD, 1);
+}
+
+void raminit(struct mrc_params *mp, int prev_sleep_state)
+{
+ int ret;
+ mrc_wrapper_entry_t mrc_entry;
+ const struct mrc_saved_data *cache;
+
+ /* Fill in default entries. */
+ mp->version = MRC_PARAMS_VER;
+ mp->console_out = &console_tx_byte;
+ mp->prev_sleep_state = prev_sleep_state;
+
+ if (!mrc_cache_get_current(&cache)) {
+ mp->saved_data_size = cache->size;
+ mp->saved_data = &cache->data[0];
+ } else {
+ printk(BIOS_DEBUG, "No MRC cache found.\n");
+ }
+
+ mrc_entry = cbfs_get_file_content(CBFS_DEFAULT_MEDIA, "mrc.bin", 0xab,
+ NULL);
+
+ if (mrc_entry == NULL) {
+ printk(BIOS_DEBUG, "Couldn't find mrc.bin\n");
+ return;
+ }
+ if (mp->mainboard.dram_info_location == DRAM_INFO_SPD_SMBUS)
+ enable_smbus();
+
+ ret = mrc_entry(mp);
+
+ cbmem_initialize_empty();
+
+ printk(BIOS_DEBUG, "MRC Wrapper returned %d\n", ret);
+ printk(BIOS_DEBUG, "MRC data at %p %d bytes\n", mp->data_to_save,
+ mp->data_to_save_size);
+
+ if (mp->data_to_save != NULL && mp->data_to_save_size > 0)
+ mrc_cache_stash_data(mp->data_to_save, mp->data_to_save_size);
+}
diff --git a/src/soc/intel/baytrail/romstage/romstage.c b/src/soc/intel/baytrail/romstage/romstage.c
new file mode 100644
index 0000000000..d3538991bb
--- /dev/null
+++ b/src/soc/intel/baytrail/romstage/romstage.c
@@ -0,0 +1,218 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stddef.h>
+#include <arch/cpu.h>
+#include <arch/io.h>
+#include <arch/cbfs.h>
+#include <arch/stages.h>
+#include <console/console.h>
+#include <cbmem.h>
+#include <cpu/x86/mtrr.h>
+#include <romstage_handoff.h>
+#include <baytrail/gpio.h>
+#include <baytrail/iomap.h>
+#include <baytrail/iosf.h>
+#include <baytrail/lpc.h>
+#include <baytrail/pci_devs.h>
+#include <baytrail/romstage.h>
+
+/* The cache-as-ram assembly file calls romstage_main() after setting up
+ * cache-as-ram. romstage_main() will then call the mainboards's
+ * mainboard_romstage_entry() function. That function then calls
+ * romstage_common() below. The reason for the back and forth is to provide
+ * common entry point from cache-as-ram while still allowing for code sharing.
+ * Because we can't use global variables the stack is used for allocations --
+ * thus the need to call back and forth. */
+
+static void *setup_stack_and_mttrs(void);
+
+static void program_base_addresses(void)
+{
+ uint32_t reg;
+ const uint32_t lpc_dev = PCI_DEV(0, LPC_DEV, LPC_FUNC);
+
+ /* Memory Mapped IO registers. */
+ reg = PMC_BASE_ADDRESS | 2;
+ pci_write_config32(lpc_dev, PBASE, reg);
+ reg = IO_BASE_ADDRESS | 2;
+ pci_write_config32(lpc_dev, IOBASE, reg);
+ reg = ILB_BASE_ADDRESS | 2;
+ pci_write_config32(lpc_dev, IBASE, reg);
+ reg = SPI_BASE_ADDRESS | 2;
+ pci_write_config32(lpc_dev, SBASE, reg);
+ reg = MPHY_BASE_ADDRESS | 2;
+ pci_write_config32(lpc_dev, MPBASE, reg);
+ reg = RCBA_BASE_ADDRESS | 1;
+ pci_write_config32(lpc_dev, RCBA, reg);
+
+ /* IO Port Registers. */
+ reg = ACPI_BASE_ADDRESS | 2;
+ pci_write_config32(lpc_dev, ABASE, reg);
+ reg = GPIO_BASE_ADDRESS | 2;
+ pci_write_config32(lpc_dev, GBASE, reg);
+}
+
+/* Entry from cache-as-ram.inc. */
+void * asmlinkage romstage_main(unsigned long bist)
+{
+ /* Call into mainboard. */
+ mainboard_romstage_entry(bist);
+
+ return setup_stack_and_mttrs();
+}
+
+/* Entry from the mainboard. */
+void romstage_common(const struct romstage_params *params)
+{
+ struct romstage_handoff *handoff;
+
+ program_base_addresses();
+
+ byt_config_com1_and_enable();
+
+ console_init();
+
+ /* Initialize RAM */
+ raminit(params->mrc_params, 5);
+
+ handoff = romstage_handoff_find_or_add();
+ if (handoff != NULL)
+ handoff->s3_resume = 0;
+ else
+ printk(BIOS_DEBUG, "Romstage handoff structure not added!\n");
+
+}
+
+static void open_up_spi(void)
+{
+ const uintptr_t sbase = SPI_BASE_ADDRESS;
+
+ /* Disable generating SMI when setting WPD bit. */
+ write32(sbase + 0xf8, read32(sbase + 0xf8) & ~(1 << 7));
+ /* Disable the SMM-only BIOS write and set WPD bit. */
+ write32(sbase + 0xfc, 1 | (read32(sbase + 0xfc) & ~(1 << 5)));
+}
+
+void asmlinkage romstage_after_car(void)
+{
+ /* Allow BIOS to program SPI part. */
+ open_up_spi();
+
+ /* Load the ramstage. */
+ copy_and_run();
+ while (1);
+}
+
+static inline uint32_t *stack_push(u32 *stack, u32 value)
+{
+ stack = &stack[-1];
+ *stack = value;
+ return stack;
+}
+
+/* Romstage needs quite a bit of stack for decompressing images since the lzma
+ * lib keeps its state on the stack during romstage. */
+static unsigned long choose_top_of_stack(void)
+{
+ unsigned long stack_top;
+ const unsigned long romstage_ram_stack_size = 0x5000;
+
+ /* cbmem_add() does a find() before add(). */
+ stack_top = (unsigned long)cbmem_add(CBMEM_ID_ROMSTAGE_RAM_STACK,
+ romstage_ram_stack_size);
+ stack_top += romstage_ram_stack_size;
+ return stack_top;
+}
+
+/* setup_stack_and_mttrs() determines the stack to use after
+ * cache-as-ram is torn down as well as the MTRR settings to use. */
+static void *setup_stack_and_mttrs(void)
+{
+ unsigned long top_of_stack;
+ int num_mtrrs;
+ uint32_t *slot;
+ uint32_t mtrr_mask_upper;
+ uint32_t top_of_ram;
+
+ /* Top of stack needs to be aligned to a 4-byte boundary. */
+ top_of_stack = choose_top_of_stack() & ~3;
+ slot = (void *)top_of_stack;
+ num_mtrrs = 0;
+
+ /* The upper bits of the MTRR mask need to set according to the number
+ * of physical address bits. */
+ mtrr_mask_upper = (1 << ((cpuid_eax(0x80000008) & 0xff) - 32)) - 1;
+
+ /* The order for each MTRR is value then base with upper 32-bits of
+ * each value coming before the lower 32-bits. The reasoning for
+ * this ordering is to create a stack layout like the following:
+ * +0: Number of MTRRs
+ * +4: MTRR base 0 31:0
+ * +8: MTRR base 0 63:32
+ * +12: MTRR mask 0 31:0
+ * +16: MTRR mask 0 63:32
+ * +20: MTRR base 1 31:0
+ * +24: MTRR base 1 63:32
+ * +28: MTRR mask 1 31:0
+ * +32: MTRR mask 1 63:32
+ */
+
+ /* Cache the ROM as WP just below 4GiB. */
+ slot = stack_push(slot, mtrr_mask_upper); /* upper mask */
+ slot = stack_push(slot, ~(CONFIG_ROM_SIZE - 1) | MTRRphysMaskValid);
+ slot = stack_push(slot, 0); /* upper base */
+ slot = stack_push(slot, ~(CONFIG_ROM_SIZE - 1) | MTRR_TYPE_WRPROT);
+ num_mtrrs++;
+
+ /* Cache RAM as WB from 0 -> CONFIG_RAMTOP. */
+ slot = stack_push(slot, mtrr_mask_upper); /* upper mask */
+ slot = stack_push(slot, ~(CONFIG_RAMTOP - 1) | MTRRphysMaskValid);
+ slot = stack_push(slot, 0); /* upper base */
+ slot = stack_push(slot, 0 | MTRR_TYPE_WRBACK);
+ num_mtrrs++;
+
+ top_of_ram = (uint32_t)cbmem_top();
+ /* Cache 8MiB below the top of ram. The top of ram under 4GiB is the
+ * start of the TSEG region. It is required to be 8MiB aligned. Set
+ * this area as cacheable so it can be used later for ramstage before
+ * setting up the entire RAM as cacheable. */
+ slot = stack_push(slot, mtrr_mask_upper); /* upper mask */
+ slot = stack_push(slot, ~((8 << 20) - 1) | MTRRphysMaskValid);
+ slot = stack_push(slot, 0); /* upper base */
+ slot = stack_push(slot, (top_of_ram - (8 << 20)) | MTRR_TYPE_WRBACK);
+ num_mtrrs++;
+
+ /* Cache 8MiB at the top of ram. Top of ram is where the TSEG
+ * region resides. However, it is not restricted to SMM mode until
+ * SMM has been relocated. By setting the region to cacheable it
+ * provides faster access when relocating the SMM handler as well
+ * as using the TSEG region for other purposes. */
+ slot = stack_push(slot, mtrr_mask_upper); /* upper mask */
+ slot = stack_push(slot, ~((8 << 20) - 1) | MTRRphysMaskValid);
+ slot = stack_push(slot, 0); /* upper base */
+ slot = stack_push(slot, top_of_ram | MTRR_TYPE_WRBACK);
+ num_mtrrs++;
+
+ /* Save the number of MTRRs to setup. Return the stack location
+ * pointing to the number of MTRRs. */
+ slot = stack_push(slot, num_mtrrs);
+
+ return slot;
+}
diff --git a/src/soc/intel/baytrail/romstage/uart.c b/src/soc/intel/baytrail/romstage/uart.c
new file mode 100644
index 0000000000..dee3be95c3
--- /dev/null
+++ b/src/soc/intel/baytrail/romstage/uart.c
@@ -0,0 +1,39 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <arch/io.h>
+#include <baytrail/gpio.h>
+#include <baytrail/iomap.h>
+#include <baytrail/lpc.h>
+#include <baytrail/pci_devs.h>
+#include <baytrail/romstage.h>
+
+void byt_config_com1_and_enable(void)
+{
+ uint32_t reg;
+
+ /* Enable the UART hardware for COM1. */
+ reg = 1;
+ pci_write_config32(PCI_DEV(0, LPC_DEV, 0), UART_CONT, reg);
+
+ /* Set up the pads to select the UART function. RXD and TXD are
+ * 0x520 and 0x530, respectively. */
+ write32(IO_BASE_ADDRESS + 0x520, read32(IO_BASE_ADDRESS + 0x520) | 1);
+ write32(IO_BASE_ADDRESS + 0x530, read32(IO_BASE_ADDRESS + 0x530) | 1);
+}
diff --git a/src/soc/intel/baytrail/spi.c b/src/soc/intel/baytrail/spi.c
new file mode 100644
index 0000000000..5ac42c2dd4
--- /dev/null
+++ b/src/soc/intel/baytrail/spi.c
@@ -0,0 +1,654 @@
+/*
+ * Copyright (c) 2013 Google Inc.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but without any warranty; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/* This file is derived from the flashrom project. */
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <delay.h>
+#include <arch/io.h>
+#include <console/console.h>
+#include <device/pci_ids.h>
+#include <spi_flash.h>
+
+#include <baytrail/lpc.h>
+#include <baytrail/pci_devs.h>
+
+#ifdef __SMM__
+#define pci_read_config_byte(dev, reg, targ)\
+ *(targ) = pci_read_config8(dev, reg)
+#define pci_read_config_word(dev, reg, targ)\
+ *(targ) = pci_read_config16(dev, reg)
+#define pci_read_config_dword(dev, reg, targ)\
+ *(targ) = pci_read_config32(dev, reg)
+#define pci_write_config_byte(dev, reg, val)\
+ pci_write_config8(dev, reg, val)
+#define pci_write_config_word(dev, reg, val)\
+ pci_write_config16(dev, reg, val)
+#define pci_write_config_dword(dev, reg, val)\
+ pci_write_config32(dev, reg, val)
+#else /* !__SMM__ */
+#include <device/device.h>
+#include <device/pci.h>
+#define pci_read_config_byte(dev, reg, targ)\
+ *(targ) = pci_read_config8(dev, reg)
+#define pci_read_config_word(dev, reg, targ)\
+ *(targ) = pci_read_config16(dev, reg)
+#define pci_read_config_dword(dev, reg, targ)\
+ *(targ) = pci_read_config32(dev, reg)
+#define pci_write_config_byte(dev, reg, val)\
+ pci_write_config8(dev, reg, val)
+#define pci_write_config_word(dev, reg, val)\
+ pci_write_config16(dev, reg, val)
+#define pci_write_config_dword(dev, reg, val)\
+ pci_write_config32(dev, reg, val)
+#endif /* !__SMM__ */
+
+typedef struct spi_slave ich_spi_slave;
+
+static int ichspi_lock = 0;
+
+typedef struct ich9_spi_regs {
+ uint32_t bfpr;
+ uint16_t hsfs;
+ uint16_t hsfc;
+ uint32_t faddr;
+ uint32_t _reserved0;
+ uint32_t fdata[16];
+ uint32_t frap;
+ uint32_t freg[5];
+ uint32_t _reserved1[3];
+ uint32_t pr[5];
+ uint32_t _reserved2[2];
+ uint8_t ssfs;
+ uint8_t ssfc[3];
+ uint16_t preop;
+ uint16_t optype;
+ uint8_t opmenu[8];
+ uint32_t bbar;
+ uint8_t _reserved3[12];
+ uint32_t fdoc;
+ uint32_t fdod;
+ uint8_t _reserved4[8];
+ uint32_t afc;
+ uint32_t lvscc;
+ uint32_t uvscc;
+ uint8_t _reserved5[4];
+ uint32_t fpb;
+ uint8_t _reserved6[28];
+ uint32_t srdl;
+ uint32_t srdc;
+ uint32_t srd;
+} __attribute__((packed)) ich9_spi_regs;
+
+typedef struct ich_spi_controller {
+ int locked;
+
+ uint8_t *opmenu;
+ int menubytes;
+ uint16_t *preop;
+ uint16_t *optype;
+ uint32_t *addr;
+ uint8_t *data;
+ unsigned databytes;
+ uint8_t *status;
+ uint16_t *control;
+ uint32_t *bbar;
+} ich_spi_controller;
+
+static ich_spi_controller cntlr;
+
+enum {
+ SPIS_SCIP = 0x0001,
+ SPIS_GRANT = 0x0002,
+ SPIS_CDS = 0x0004,
+ SPIS_FCERR = 0x0008,
+ SSFS_AEL = 0x0010,
+ SPIS_LOCK = 0x8000,
+ SPIS_RESERVED_MASK = 0x7ff0,
+ SSFS_RESERVED_MASK = 0x7fe2
+};
+
+enum {
+ SPIC_SCGO = 0x000002,
+ SPIC_ACS = 0x000004,
+ SPIC_SPOP = 0x000008,
+ SPIC_DBC = 0x003f00,
+ SPIC_DS = 0x004000,
+ SPIC_SME = 0x008000,
+ SSFC_SCF_MASK = 0x070000,
+ SSFC_RESERVED = 0xf80000
+};
+
+enum {
+ HSFS_FDONE = 0x0001,
+ HSFS_FCERR = 0x0002,
+ HSFS_AEL = 0x0004,
+ HSFS_BERASE_MASK = 0x0018,
+ HSFS_BERASE_SHIFT = 3,
+ HSFS_SCIP = 0x0020,
+ HSFS_FDOPSS = 0x2000,
+ HSFS_FDV = 0x4000,
+ HSFS_FLOCKDN = 0x8000
+};
+
+enum {
+ HSFC_FGO = 0x0001,
+ HSFC_FCYCLE_MASK = 0x0006,
+ HSFC_FCYCLE_SHIFT = 1,
+ HSFC_FDBC_MASK = 0x3f00,
+ HSFC_FDBC_SHIFT = 8,
+ HSFC_FSMIE = 0x8000
+};
+
+enum {
+ SPI_OPCODE_TYPE_READ_NO_ADDRESS = 0,
+ SPI_OPCODE_TYPE_WRITE_NO_ADDRESS = 1,
+ SPI_OPCODE_TYPE_READ_WITH_ADDRESS = 2,
+ SPI_OPCODE_TYPE_WRITE_WITH_ADDRESS = 3
+};
+
+#if CONFIG_DEBUG_SPI_FLASH
+
+static u8 readb_(const void *addr)
+{
+ u8 v = read8((unsigned long)addr);
+ printk(BIOS_DEBUG, "read %2.2x from %4.4x\n",
+ v, ((unsigned) addr & 0xffff) - 0xf020);
+ return v;
+}
+
+static u16 readw_(const void *addr)
+{
+ u16 v = read16((unsigned long)addr);
+ printk(BIOS_DEBUG, "read %4.4x from %4.4x\n",
+ v, ((unsigned) addr & 0xffff) - 0xf020);
+ return v;
+}
+
+static u32 readl_(const void *addr)
+{
+ u32 v = read32((unsigned long)addr);
+ printk(BIOS_DEBUG, "read %8.8x from %4.4x\n",
+ v, ((unsigned) addr & 0xffff) - 0xf020);
+ return v;
+}
+
+static void writeb_(u8 b, const void *addr)
+{
+ write8((unsigned long)addr, b);
+ printk(BIOS_DEBUG, "wrote %2.2x to %4.4x\n",
+ b, ((unsigned) addr & 0xffff) - 0xf020);
+}
+
+static void writew_(u16 b, const void *addr)
+{
+ write16((unsigned long)addr, b);
+ printk(BIOS_DEBUG, "wrote %4.4x to %4.4x\n",
+ b, ((unsigned) addr & 0xffff) - 0xf020);
+}
+
+static void writel_(u32 b, const void *addr)
+{
+ write32((unsigned long)addr, b);
+ printk(BIOS_DEBUG, "wrote %8.8x to %4.4x\n",
+ b, ((unsigned) addr & 0xffff) - 0xf020);
+}
+
+#else /* CONFIG_DEBUG_SPI_FLASH ^^^ enabled vvv NOT enabled */
+
+#define readb_(a) read8((uint32_t)a)
+#define readw_(a) read16((uint32_t)a)
+#define readl_(a) read32((uint32_t)a)
+#define writeb_(val, addr) write8((uint32_t)addr, val)
+#define writew_(val, addr) write16((uint32_t)addr, val)
+#define writel_(val, addr) write32((uint32_t)addr, val)
+
+#endif /* CONFIG_DEBUG_SPI_FLASH ^^^ NOT enabled */
+
+static void write_reg(const void *value, void *dest, uint32_t size)
+{
+ const uint8_t *bvalue = value;
+ uint8_t *bdest = dest;
+
+ while (size >= 4) {
+ writel_(*(const uint32_t *)bvalue, bdest);
+ bdest += 4; bvalue += 4; size -= 4;
+ }
+ while (size) {
+ writeb_(*bvalue, bdest);
+ bdest++; bvalue++; size--;
+ }
+}
+
+static void read_reg(const void *src, void *value, uint32_t size)
+{
+ const uint8_t *bsrc = src;
+ uint8_t *bvalue = value;
+
+ while (size >= 4) {
+ *(uint32_t *)bvalue = readl_(bsrc);
+ bsrc += 4; bvalue += 4; size -= 4;
+ }
+ while (size) {
+ *bvalue = readb_(bsrc);
+ bsrc++; bvalue++; size--;
+ }
+}
+
+static void ich_set_bbar(uint32_t minaddr)
+{
+ const uint32_t bbar_mask = 0x00ffff00;
+ uint32_t ichspi_bbar;
+
+ minaddr &= bbar_mask;
+ ichspi_bbar = readl_(cntlr.bbar) & ~bbar_mask;
+ ichspi_bbar |= minaddr;
+ writel_(ichspi_bbar, cntlr.bbar);
+}
+
+int spi_cs_is_valid(unsigned int bus, unsigned int cs)
+{
+ printk(BIOS_DEBUG, "spi_cs_is_valid used but not implemented\n");
+ return 0;
+}
+
+struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
+ unsigned int max_hz, unsigned int mode)
+{
+ ich_spi_slave *slave = malloc(sizeof(*slave));
+
+ if (!slave) {
+ printk(BIOS_DEBUG, "ICH SPI: Bad allocation\n");
+ return NULL;
+ }
+
+ memset(slave, 0, sizeof(*slave));
+
+ slave->bus = bus;
+ slave->cs = cs;
+ return slave;
+}
+
+static ich9_spi_regs *spi_regs(void)
+{
+ device_t dev;
+ uint32_t sbase;
+
+#ifdef __SMM__
+ dev = PCI_DEV(0, LPC_DEV, LPC_FUNC);
+#else
+ dev = dev_find_slot(0, PCI_DEVFN(LPC_DEV, LPC_FUNC));
+#endif
+ pci_read_config_dword(dev, SBASE, &sbase);
+ sbase &= ~0x1ff;
+
+ return (void *)sbase;
+}
+
+void spi_init(void)
+{
+ ich9_spi_regs *ich9_spi = spi_regs();
+
+ ichspi_lock = readw_(&ich9_spi->hsfs) & HSFS_FLOCKDN;
+ cntlr.opmenu = ich9_spi->opmenu;
+ cntlr.menubytes = sizeof(ich9_spi->opmenu);
+ cntlr.optype = &ich9_spi->optype;
+ cntlr.addr = &ich9_spi->faddr;
+ cntlr.data = (uint8_t *)ich9_spi->fdata;
+ cntlr.databytes = sizeof(ich9_spi->fdata);
+ cntlr.status = &ich9_spi->ssfs;
+ cntlr.control = (uint16_t *)ich9_spi->ssfc;
+ cntlr.bbar = &ich9_spi->bbar;
+ cntlr.preop = &ich9_spi->preop;
+ ich_set_bbar(0);
+}
+
+int spi_claim_bus(struct spi_slave *slave)
+{
+ /* Handled by ICH automatically. */
+ return 0;
+}
+
+void spi_release_bus(struct spi_slave *slave)
+{
+ /* Handled by ICH automatically. */
+}
+
+void spi_cs_activate(struct spi_slave *slave)
+{
+ /* Handled by ICH automatically. */
+}
+
+void spi_cs_deactivate(struct spi_slave *slave)
+{
+ /* Handled by ICH automatically. */
+}
+
+typedef struct spi_transaction {
+ const uint8_t *out;
+ uint32_t bytesout;
+ uint8_t *in;
+ uint32_t bytesin;
+ uint8_t type;
+ uint8_t opcode;
+ uint32_t offset;
+} spi_transaction;
+
+static inline void spi_use_out(spi_transaction *trans, unsigned bytes)
+{
+ trans->out += bytes;
+ trans->bytesout -= bytes;
+}
+
+static inline void spi_use_in(spi_transaction *trans, unsigned bytes)
+{
+ trans->in += bytes;
+ trans->bytesin -= bytes;
+}
+
+static void spi_setup_type(spi_transaction *trans)
+{
+ trans->type = 0xFF;
+
+ /* Try to guess spi type from read/write sizes. */
+ if (trans->bytesin == 0) {
+ if (trans->bytesout > 4)
+ /*
+ * If bytesin = 0 and bytesout > 4, we presume this is
+ * a write data operation, which is accompanied by an
+ * address.
+ */
+ trans->type = SPI_OPCODE_TYPE_WRITE_WITH_ADDRESS;
+ else
+ trans->type = SPI_OPCODE_TYPE_WRITE_NO_ADDRESS;
+ return;
+ }
+
+ if (trans->bytesout == 1) { /* and bytesin is > 0 */
+ trans->type = SPI_OPCODE_TYPE_READ_NO_ADDRESS;
+ return;
+ }
+
+ if (trans->bytesout == 4) { /* and bytesin is > 0 */
+ trans->type = SPI_OPCODE_TYPE_READ_WITH_ADDRESS;
+ }
+
+ /* Fast read command is called with 5 bytes instead of 4 */
+ if (trans->out[0] == SPI_OPCODE_FAST_READ && trans->bytesout == 5) {
+ trans->type = SPI_OPCODE_TYPE_READ_WITH_ADDRESS;
+ --trans->bytesout;
+ }
+}
+
+static int spi_setup_opcode(spi_transaction *trans)
+{
+ uint16_t optypes;
+ uint8_t opmenu[cntlr.menubytes];
+
+ trans->opcode = trans->out[0];
+ spi_use_out(trans, 1);
+ if (!ichspi_lock) {
+ /* The lock is off, so just use index 0. */
+ writeb_(trans->opcode, cntlr.opmenu);
+ optypes = readw_(cntlr.optype);
+ optypes = (optypes & 0xfffc) | (trans->type & 0x3);
+ writew_(optypes, cntlr.optype);
+ return 0;
+ } else {
+ /* The lock is on. See if what we need is on the menu. */
+ uint8_t optype;
+ uint16_t opcode_index;
+
+ /* Write Enable is handled as atomic prefix */
+ if (trans->opcode == SPI_OPCODE_WREN)
+ return 0;
+
+ read_reg(cntlr.opmenu, opmenu, sizeof(opmenu));
+ for (opcode_index = 0; opcode_index < cntlr.menubytes;
+ opcode_index++) {
+ if (opmenu[opcode_index] == trans->opcode)
+ break;
+ }
+
+ if (opcode_index == cntlr.menubytes) {
+ printk(BIOS_DEBUG, "ICH SPI: Opcode %x not found\n",
+ trans->opcode);
+ return -1;
+ }
+
+ optypes = readw_(cntlr.optype);
+ optype = (optypes >> (opcode_index * 2)) & 0x3;
+ if (trans->type == SPI_OPCODE_TYPE_WRITE_NO_ADDRESS &&
+ optype == SPI_OPCODE_TYPE_WRITE_WITH_ADDRESS &&
+ trans->bytesout >= 3) {
+ /* We guessed wrong earlier. Fix it up. */
+ trans->type = optype;
+ }
+ if (optype != trans->type) {
+ printk(BIOS_DEBUG, "ICH SPI: Transaction doesn't fit type %d\n",
+ optype);
+ return -1;
+ }
+ return opcode_index;
+ }
+}
+
+static int spi_setup_offset(spi_transaction *trans)
+{
+ /* Separate the SPI address and data. */
+ switch (trans->type) {
+ case SPI_OPCODE_TYPE_READ_NO_ADDRESS:
+ case SPI_OPCODE_TYPE_WRITE_NO_ADDRESS:
+ return 0;
+ case SPI_OPCODE_TYPE_READ_WITH_ADDRESS:
+ case SPI_OPCODE_TYPE_WRITE_WITH_ADDRESS:
+ trans->offset = ((uint32_t)trans->out[0] << 16) |
+ ((uint32_t)trans->out[1] << 8) |
+ ((uint32_t)trans->out[2] << 0);
+ spi_use_out(trans, 3);
+ return 1;
+ default:
+ printk(BIOS_DEBUG, "Unrecognized SPI transaction type %#x\n", trans->type);
+ return -1;
+ }
+}
+
+/*
+ * Wait for up to 60ms til status register bit(s) turn 1 (in case wait_til_set
+ * below is True) or 0. In case the wait was for the bit(s) to set - write
+ * those bits back, which would cause resetting them.
+ *
+ * Return the last read status value on success or -1 on failure.
+ */
+static int ich_status_poll(u16 bitmask, int wait_til_set)
+{
+ int timeout = 6000; /* This will result in 60 ms */
+ u16 status = 0;
+
+ while (timeout--) {
+ status = readw_(cntlr.status);
+ if (wait_til_set ^ ((status & bitmask) == 0)) {
+ if (wait_til_set)
+ writew_((status & bitmask), cntlr.status);
+ return status;
+ }
+ udelay(10);
+ }
+
+ printk(BIOS_DEBUG, "ICH SPI: SCIP timeout, read %x, expected %x\n",
+ status, bitmask);
+ return -1;
+}
+
+int spi_xfer(struct spi_slave *slave, const void *dout,
+ unsigned int bitsout, void *din, unsigned int bitsin)
+{
+ uint16_t control;
+ int16_t opcode_index;
+ int with_address;
+ int status;
+
+ spi_transaction trans = {
+ dout, bitsout / 8,
+ din, bitsin / 8,
+ 0xff, 0xff, 0
+ };
+
+ /* There has to always at least be an opcode. */
+ if (!bitsout || !dout) {
+ printk(BIOS_DEBUG, "ICH SPI: No opcode for transfer\n");
+ return -1;
+ }
+ /* Make sure if we read something we have a place to put it. */
+ if (bitsin != 0 && !din) {
+ printk(BIOS_DEBUG, "ICH SPI: Read but no target buffer\n");
+ return -1;
+ }
+ /* Right now we don't support writing partial bytes. */
+ if (bitsout % 8 || bitsin % 8) {
+ printk(BIOS_DEBUG, "ICH SPI: Accessing partial bytes not supported\n");
+ return -1;
+ }
+
+ if (ich_status_poll(SPIS_SCIP, 0) == -1)
+ return -1;
+
+ writew_(SPIS_CDS | SPIS_FCERR, cntlr.status);
+
+ spi_setup_type(&trans);
+ if ((opcode_index = spi_setup_opcode(&trans)) < 0)
+ return -1;
+ if ((with_address = spi_setup_offset(&trans)) < 0)
+ return -1;
+
+ if (trans.opcode == SPI_OPCODE_WREN) {
+ /*
+ * Treat Write Enable as Atomic Pre-Op if possible
+ * in order to prevent the Management Engine from
+ * issuing a transaction between WREN and DATA.
+ */
+ if (!ichspi_lock)
+ writew_(trans.opcode, cntlr.preop);
+ return 0;
+ }
+
+ /* Preset control fields */
+ control = SPIC_SCGO | ((opcode_index & 0x07) << 4);
+
+ /* Issue atomic preop cycle if needed */
+ if (readw_(cntlr.preop))
+ control |= SPIC_ACS;
+
+ if (!trans.bytesout && !trans.bytesin) {
+ /* SPI addresses are 24 bit only */
+ if (with_address)
+ writel_(trans.offset & 0x00FFFFFF, cntlr.addr);
+
+ /*
+ * This is a 'no data' command (like Write Enable), its
+ * bitesout size was 1, decremented to zero while executing
+ * spi_setup_opcode() above. Tell the chip to send the
+ * command.
+ */
+ writew_(control, cntlr.control);
+
+ /* wait for the result */
+ status = ich_status_poll(SPIS_CDS | SPIS_FCERR, 1);
+ if (status == -1)
+ return -1;
+
+ if (status & SPIS_FCERR) {
+ printk(BIOS_DEBUG, "ICH SPI: Command transaction error\n");
+ return -1;
+ }
+
+ return 0;
+ }
+
+ /*
+ * Check if this is a write command atempting to transfer more bytes
+ * than the controller can handle. Iterations for writes are not
+ * supported here because each SPI write command needs to be preceded
+ * and followed by other SPI commands, and this sequence is controlled
+ * by the SPI chip driver.
+ */
+ if (trans.bytesout > cntlr.databytes) {
+ printk(BIOS_DEBUG, "ICH SPI: Too much to write. Does your SPI chip driver use"
+ " CONTROLLER_PAGE_LIMIT?\n");
+ return -1;
+ }
+
+ /*
+ * Read or write up to databytes bytes at a time until everything has
+ * been sent.
+ */
+ while (trans.bytesout || trans.bytesin) {
+ uint32_t data_length;
+
+ /* SPI addresses are 24 bit only */
+ writel_(trans.offset & 0x00FFFFFF, cntlr.addr);
+
+ if (trans.bytesout)
+ data_length = min(trans.bytesout, cntlr.databytes);
+ else
+ data_length = min(trans.bytesin, cntlr.databytes);
+
+ /* Program data into FDATA0 to N */
+ if (trans.bytesout) {
+ write_reg(trans.out, cntlr.data, data_length);
+ spi_use_out(&trans, data_length);
+ if (with_address)
+ trans.offset += data_length;
+ }
+
+ /* Add proper control fields' values */
+ control &= ~((cntlr.databytes - 1) << 8);
+ control |= SPIC_DS;
+ control |= (data_length - 1) << 8;
+
+ /* write it */
+ writew_(control, cntlr.control);
+
+ /* Wait for Cycle Done Status or Flash Cycle Error. */
+ status = ich_status_poll(SPIS_CDS | SPIS_FCERR, 1);
+ if (status == -1)
+ return -1;
+
+ if (status & SPIS_FCERR) {
+ printk(BIOS_DEBUG, "ICH SPI: Data transaction error\n");
+ return -1;
+ }
+
+ if (trans.bytesin) {
+ read_reg(cntlr.data, trans.in, data_length);
+ spi_use_in(&trans, data_length);
+ if (with_address)
+ trans.offset += data_length;
+ }
+ }
+
+ /* Clear atomic preop now that xfer is done */
+ writew_(0, cntlr.preop);
+
+ return 0;
+}
diff --git a/src/soc/intel/baytrail/tsc_freq.c b/src/soc/intel/baytrail/tsc_freq.c
new file mode 100644
index 0000000000..e0b2b7e908
--- /dev/null
+++ b/src/soc/intel/baytrail/tsc_freq.c
@@ -0,0 +1,32 @@
+/*
+ * This file is part of the coreboot project.
+ *
+ * Copyright (C) 2013 Google Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdint.h>
+#include <cpu/x86/msr.h>
+#include <cpu/x86/tsc.h>
+#include <baytrail/msr.h>
+
+#define BCLK 100 /* 100 MHz */
+unsigned long tsc_freq_mhz(void)
+{
+ msr_t platform_info;
+
+ platform_info = rdmsr(MSR_PLATFORM_INFO);
+ return BCLK * ((platform_info.lo >> 8) & 0xff);
+}