haswell: Add initial support for Haswell platforms

The Haswell parts use a PCH code named Lynx Point (Series 8). Therefore,
the southbridge support is included as well. The basis for this code is
the Sandybridge code. Management Engine, IRQ routing, and ACPI still requires
more attention, but this is a good starting point.

This code partially gets up through the romstage just before training
memory on a Haswell reference board.

Change-Id: If572d6c21ca051b486b82a924ca0ffe05c4d0ad4
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/2616
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
Aaron Durbin
2012-10-30 09:03:43 -05:00
committed by Ronald G. Minnich
parent cc86e63e83
commit 76c3700f02
88 changed files with 20113 additions and 0 deletions

View File

@ -16,6 +16,7 @@ source src/cpu/intel/model_f2x/Kconfig
source src/cpu/intel/model_f3x/Kconfig
source src/cpu/intel/model_f4x/Kconfig
source src/cpu/intel/ep80579/Kconfig
source src/cpu/intel/haswell/Kconfig
# Sockets/Slots
source src/cpu/intel/slot_2/Kconfig
source src/cpu/intel/slot_1/Kconfig

View File

@ -17,6 +17,7 @@ subdirs-$(CONFIG_CPU_INTEL_SOCKET_PGA370) += socket_PGA370
subdirs-$(CONFIG_CPU_INTEL_SOCKET_RPGA989) += socket_rPGA989
subdirs-$(CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE) += model_206ax
subdirs-$(CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE) += model_206ax
subdirs-$(CONFIG_NORTHBRIDGE_INTEL_HASWELL) += haswell
subdirs-$(CONFIG_CPU_INTEL_SLOT_2) += slot_2
subdirs-$(CONFIG_CPU_INTEL_SLOT_1) += slot_1
subdirs-$(CONFIG_CPU_INTEL_SOCKET_LGA771) += socket_LGA771

View File

@ -0,0 +1,33 @@
config CPU_INTEL_HASWELL
bool
if CPU_INTEL_HASWELL
config CPU_SPECIFIC_OPTIONS
def_bool y
select SMP
select SSE2
select UDELAY_LAPIC
select SMM_TSEG
select CPU_MICROCODE_IN_CBFS
#select AP_IN_SIPI_WAIT
select TSC_SYNC_MFENCE
config BOOTBLOCK_CPU_INIT
string
default "cpu/intel/haswell/bootblock.c"
config SERIAL_CPU_INIT
bool
default n
config SMM_TSEG_SIZE
hex
default 0x800000
config MICROCODE_INCLUDE_PATH
string
default "src/cpu/intel/haswell"
endif

View File

@ -0,0 +1,10 @@
ramstage-y += haswell_init.c
subdirs-y += ../../x86/name
ramstage-$(CONFIG_GENERATE_ACPI_TABLES) += acpi.c
cpu_microcode-$(CONFIG_CPU_MICROCODE_CBFS_GENERATE) += microcode_blob.c
smm-$(CONFIG_HAVE_SMI_HANDLER) += finalize.c
cpu_incs += $(src)/cpu/intel/haswell/cache_as_ram.inc

View File

@ -0,0 +1,364 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2009 coresystems GmbH
* Copyright (C) 2011 The Chromium OS Authors. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License 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 <types.h>
#include <console/console.h>
#include <arch/acpi.h>
#include <arch/acpigen.h>
#include <arch/cpu.h>
#include <cpu/x86/msr.h>
#include <cpu/intel/speedstep.h>
#include <cpu/intel/turbo.h>
#include <device/device.h>
#include <device/pci.h>
#include "haswell.h"
#include "chip.h"
static int get_cores_per_package(void)
{
struct cpuinfo_x86 c;
struct cpuid_result result;
int cores = 1;
get_fms(&c, cpuid_eax(1));
if (c.x86 != 6)
return 1;
result = cpuid_ext(0xb, 1);
cores = result.ebx & 0xff;
return cores;
}
static int generate_cstate_entries(acpi_cstate_t *cstates,
int c1, int c2, int c3)
{
int length, cstate_count = 0;
/* Count number of active C-states */
if (c1 > 0)
++cstate_count;
if (c2 > 0)
++cstate_count;
if (c3 > 0)
++cstate_count;
if (!cstate_count)
return 0;
length = acpigen_write_package(cstate_count + 1);
length += acpigen_write_byte(cstate_count);
/* Add an entry if the level is enabled */
if (c1 > 0) {
cstates[c1].ctype = 1;
length += acpigen_write_CST_package_entry(&cstates[c1]);
}
if (c2 > 0) {
cstates[c2].ctype = 2;
length += acpigen_write_CST_package_entry(&cstates[c2]);
}
if (c3 > 0) {
cstates[c3].ctype = 3;
length += acpigen_write_CST_package_entry(&cstates[c3]);
}
acpigen_patch_len(length - 1);
return length;
}
static int generate_C_state_entries(void)
{
struct cpu_info *info;
struct cpu_driver *cpu;
int len, lenif;
device_t lapic;
struct cpu_intel_haswell_config *conf = NULL;
/* Find the SpeedStep CPU in the device tree using magic APIC ID */
lapic = dev_find_lapic(SPEEDSTEP_APIC_MAGIC);
if (!lapic)
return 0;
conf = lapic->chip_info;
if (!conf)
return 0;
/* Find CPU map of supported C-states */
info = cpu_info();
if (!info)
return 0;
cpu = find_cpu_driver(info->cpu);
if (!cpu || !cpu->cstates)
return 0;
len = acpigen_emit_byte(0x14); /* MethodOp */
len += acpigen_write_len_f(); /* PkgLength */
len += acpigen_emit_namestring("_CST");
len += acpigen_emit_byte(0x00); /* No Arguments */
/* If running on AC power */
len += acpigen_emit_byte(0xa0); /* IfOp */
lenif = acpigen_write_len_f(); /* PkgLength */
lenif += acpigen_emit_namestring("PWRS");
lenif += acpigen_emit_byte(0xa4); /* ReturnOp */
lenif += generate_cstate_entries(cpu->cstates, conf->c1_acpower,
conf->c2_acpower, conf->c3_acpower);
acpigen_patch_len(lenif - 1);
len += lenif;
/* Else on battery power */
len += acpigen_emit_byte(0xa4); /* ReturnOp */
len += generate_cstate_entries(cpu->cstates, conf->c1_battery,
conf->c2_battery, conf->c3_battery);
acpigen_patch_len(len - 1);
return len;
}
static acpi_tstate_t tss_table_fine[] = {
{ 100, 1000, 0, 0x00, 0 },
{ 94, 940, 0, 0x1f, 0 },
{ 88, 880, 0, 0x1e, 0 },
{ 82, 820, 0, 0x1d, 0 },
{ 75, 760, 0, 0x1c, 0 },
{ 69, 700, 0, 0x1b, 0 },
{ 63, 640, 0, 0x1a, 0 },
{ 57, 580, 0, 0x19, 0 },
{ 50, 520, 0, 0x18, 0 },
{ 44, 460, 0, 0x17, 0 },
{ 38, 400, 0, 0x16, 0 },
{ 32, 340, 0, 0x15, 0 },
{ 25, 280, 0, 0x14, 0 },
{ 19, 220, 0, 0x13, 0 },
{ 13, 160, 0, 0x12, 0 },
};
static acpi_tstate_t tss_table_coarse[] = {
{ 100, 1000, 0, 0x00, 0 },
{ 88, 875, 0, 0x1f, 0 },
{ 75, 750, 0, 0x1e, 0 },
{ 63, 625, 0, 0x1d, 0 },
{ 50, 500, 0, 0x1c, 0 },
{ 38, 375, 0, 0x1b, 0 },
{ 25, 250, 0, 0x1a, 0 },
{ 13, 125, 0, 0x19, 0 },
};
static int generate_T_state_entries(int core, int cores_per_package)
{
int len;
/* Indicate SW_ALL coordination for T-states */
len = acpigen_write_TSD_package(core, cores_per_package, SW_ALL);
/* Indicate FFixedHW so OS will use MSR */
len += acpigen_write_empty_PTC();
/* Set a T-state limit that can be modified in NVS */
len += acpigen_write_TPC("\\TLVL");
/*
* CPUID.(EAX=6):EAX[5] indicates support
* for extended throttle levels.
*/
if (cpuid_eax(6) & (1 << 5))
len += acpigen_write_TSS_package(
ARRAY_SIZE(tss_table_fine), tss_table_fine);
else
len += acpigen_write_TSS_package(
ARRAY_SIZE(tss_table_coarse), tss_table_coarse);
return len;
}
static int calculate_power(int tdp, int p1_ratio, int ratio)
{
u32 m;
u32 power;
/*
* M = ((1.1 - ((p1_ratio - ratio) * 0.00625)) / 1.1) ^ 2
*
* Power = (ratio / p1_ratio) * m * tdp
*/
m = (110000 - ((p1_ratio - ratio) * 625)) / 11;
m = (m * m) / 1000;
power = ((ratio * 100000 / p1_ratio) / 100);
power *= (m / 100) * (tdp / 1000);
power /= 1000;
return (int)power;
}
static int generate_P_state_entries(int core, int cores_per_package)
{
int len, len_pss;
int ratio_min, ratio_max, ratio_turbo, ratio_step;
int coord_type, power_max, power_unit, num_entries;
int ratio, power, clock, clock_max;
msr_t msr;
/* Determine P-state coordination type from MISC_PWR_MGMT[0] */
msr = rdmsr(MSR_MISC_PWR_MGMT);
if (msr.lo & MISC_PWR_MGMT_EIST_HW_DIS)
coord_type = SW_ANY;
else
coord_type = HW_ALL;
/* Get bus ratio limits and calculate clock speeds */
msr = rdmsr(MSR_PLATFORM_INFO);
ratio_min = (msr.hi >> (40-32)) & 0xff; /* Max Efficiency Ratio */
/* Determine if this CPU has configurable TDP */
if (cpu_config_tdp_levels()) {
/* Set max ratio to nominal TDP ratio */
msr = rdmsr(MSR_CONFIG_TDP_NOMINAL);
ratio_max = msr.lo & 0xff;
} else {
/* Max Non-Turbo Ratio */
ratio_max = (msr.lo >> 8) & 0xff;
}
clock_max = ratio_max * HASWELL_BCLK;
/* Calculate CPU TDP in mW */
msr = rdmsr(MSR_PKG_POWER_SKU_UNIT);
power_unit = 2 << ((msr.lo & 0xf) - 1);
msr = rdmsr(MSR_PKG_POWER_SKU);
power_max = ((msr.lo & 0x7fff) / power_unit) * 1000;
/* Write _PCT indicating use of FFixedHW */
len = acpigen_write_empty_PCT();
/* Write _PPC with no limit on supported P-state */
len += acpigen_write_PPC_NVS();
/* Write PSD indicating configured coordination type */
len += acpigen_write_PSD_package(core, cores_per_package, coord_type);
/* Add P-state entries in _PSS table */
len += acpigen_write_name("_PSS");
/* Determine ratio points */
ratio_step = PSS_RATIO_STEP;
num_entries = (ratio_max - ratio_min) / ratio_step;
while (num_entries > PSS_MAX_ENTRIES-1) {
ratio_step <<= 1;
num_entries >>= 1;
}
/* P[T] is Turbo state if enabled */
if (get_turbo_state() == TURBO_ENABLED) {
/* _PSS package count including Turbo */
len_pss = acpigen_write_package(num_entries + 2);
msr = rdmsr(MSR_TURBO_RATIO_LIMIT);
ratio_turbo = msr.lo & 0xff;
/* Add entry for Turbo ratio */
len_pss += acpigen_write_PSS_package(
clock_max + 1, /*MHz*/
power_max, /*mW*/
PSS_LATENCY_TRANSITION, /*lat1*/
PSS_LATENCY_BUSMASTER, /*lat2*/
ratio_turbo << 8, /*control*/
ratio_turbo << 8); /*status*/
} else {
/* _PSS package count without Turbo */
len_pss = acpigen_write_package(num_entries + 1);
}
/* First regular entry is max non-turbo ratio */
len_pss += acpigen_write_PSS_package(
clock_max, /*MHz*/
power_max, /*mW*/
PSS_LATENCY_TRANSITION, /*lat1*/
PSS_LATENCY_BUSMASTER, /*lat2*/
ratio_max << 8, /*control*/
ratio_max << 8); /*status*/
/* Generate the remaining entries */
for (ratio = ratio_min + ((num_entries - 1) * ratio_step);
ratio >= ratio_min; ratio -= ratio_step) {
/* Calculate power at this ratio */
power = calculate_power(power_max, ratio_max, ratio);
clock = ratio * HASWELL_BCLK;
len_pss += acpigen_write_PSS_package(
clock, /*MHz*/
power, /*mW*/
PSS_LATENCY_TRANSITION, /*lat1*/
PSS_LATENCY_BUSMASTER, /*lat2*/
ratio << 8, /*control*/
ratio << 8); /*status*/
}
/* Fix package length */
len_pss--;
acpigen_patch_len(len_pss);
return len + len_pss;
}
void generate_cpu_entries(void)
{
int len_pr;
int coreID, cpuID, pcontrol_blk = PMB0_BASE, plen = 6;
int totalcores = dev_count_cpu();
int cores_per_package = get_cores_per_package();
int numcpus = totalcores/cores_per_package;
printk(BIOS_DEBUG, "Found %d CPU(s) with %d core(s) each.\n",
numcpus, cores_per_package);
for (cpuID=1; cpuID <=numcpus; cpuID++) {
for (coreID=1; coreID<=cores_per_package; coreID++) {
if (coreID>1) {
pcontrol_blk = 0;
plen = 0;
}
/* Generate processor \_PR.CPUx */
len_pr = acpigen_write_processor(
(cpuID-1)*cores_per_package+coreID-1,
pcontrol_blk, plen);
/* Generate P-state tables */
len_pr += generate_P_state_entries(
cpuID-1, cores_per_package);
/* Generate C-state tables */
len_pr += generate_C_state_entries();
/* Generate T-state tables */
len_pr += generate_T_state_entries(
cpuID-1, cores_per_package);
len_pr--;
acpigen_patch_len(len_pr);
}
}
}
struct chip_operations cpu_intel_haswell_ops = {
CHIP_NAME("Intel Haswell CPU")
};

View File

@ -0,0 +1,102 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2011 The ChromiumOS Authors. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License 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
*/
/* These devices are created at runtime */
External (\_PR.CPU0, DeviceObj)
External (\_PR.CPU1, DeviceObj)
External (\_PR.CPU2, DeviceObj)
External (\_PR.CPU3, DeviceObj)
External (\_PR.CPU4, DeviceObj)
External (\_PR.CPU5, DeviceObj)
External (\_PR.CPU6, DeviceObj)
External (\_PR.CPU7, DeviceObj)
/* Notify OS to re-read CPU tables, assuming ^2 CPU count */
Method (PNOT)
{
If (LGreaterEqual (\PCNT, 2)) {
Notify (\_PR.CPU0, 0x81) // _CST
Notify (\_PR.CPU1, 0x81) // _CST
}
If (LGreaterEqual (\PCNT, 4)) {
Notify (\_PR.CPU2, 0x81) // _CST
Notify (\_PR.CPU3, 0x81) // _CST
}
If (LGreaterEqual (\PCNT, 8)) {
Notify (\_PR.CPU4, 0x81) // _CST
Notify (\_PR.CPU5, 0x81) // _CST
Notify (\_PR.CPU6, 0x81) // _CST
Notify (\_PR.CPU7, 0x81) // _CST
}
}
/* Notify OS to re-read CPU _PPC limit, assuming ^2 CPU count */
Method (PPCN)
{
If (LGreaterEqual (\PCNT, 2)) {
Notify (\_PR.CPU0, 0x80) // _PPC
Notify (\_PR.CPU1, 0x80) // _PPC
}
If (LGreaterEqual (\PCNT, 4)) {
Notify (\_PR.CPU2, 0x80) // _PPC
Notify (\_PR.CPU3, 0x80) // _PPC
}
If (LGreaterEqual (\PCNT, 8)) {
Notify (\_PR.CPU4, 0x80) // _PPC
Notify (\_PR.CPU5, 0x80) // _PPC
Notify (\_PR.CPU6, 0x80) // _PPC
Notify (\_PR.CPU7, 0x80) // _PPC
}
}
/* Notify OS to re-read Throttle Limit tables, assuming ^2 CPU count */
Method (TNOT)
{
If (LGreaterEqual (\PCNT, 2)) {
Notify (\_PR.CPU0, 0x82) // _TPC
Notify (\_PR.CPU1, 0x82) // _TPC
}
If (LGreaterEqual (\PCNT, 4)) {
Notify (\_PR.CPU2, 0x82) // _TPC
Notify (\_PR.CPU3, 0x82) // _TPC
}
If (LGreaterEqual (\PCNT, 8)) {
Notify (\_PR.CPU4, 0x82) // _TPC
Notify (\_PR.CPU5, 0x82) // _TPC
Notify (\_PR.CPU6, 0x82) // _TPC
Notify (\_PR.CPU7, 0x82) // _TPC
}
}
/* Return a package containing enabled processor entries */
Method (PPKG)
{
If (LGreaterEqual (\PCNT, 8)) {
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3,
\_PR.CPU4, \_PR.CPU5, \_PR.CPU6, \_PR.CPU7})
} ElseIf (LGreaterEqual (\PCNT, 4)) {
Return (Package() {\_PR.CPU0, \_PR.CPU1, \_PR.CPU2, \_PR.CPU3})
} ElseIf (LGreaterEqual (\PCNT, 2)) {
Return (Package() {\_PR.CPU0, \_PR.CPU1})
} Else {
Return (Package() {\_PR.CPU0})
}
}

View File

@ -0,0 +1,122 @@
/*
* This file is part of the coreboot project.
*
* 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 <stdint.h>
#include <arch/cpu.h>
#include <cpu/x86/cache.h>
#include <cpu/x86/msr.h>
#include <cpu/x86/mtrr.h>
#include <arch/io.h>
#include <arch/romcc_io.h>
#include <cpu/intel/microcode/microcode.c>
#include "haswell.h"
#if CONFIG_SOUTHBRIDGE_INTEL_LYNXPOINT
/* Needed for RCBA access to set Soft Reset Data register */
#include <southbridge/intel/lynxpoint/pch.h>
#else
#error "CPU must be paired with Intel LynxPoint southbridge"
#endif
static void set_var_mtrr(
unsigned reg, unsigned base, unsigned size, unsigned type)
{
/* Bit Bit 32-35 of MTRRphysMask should be set to 1 */
/* FIXME: It only support 4G less range */
msr_t basem, maskm;
basem.lo = base | type;
basem.hi = 0;
wrmsr(MTRRphysBase_MSR(reg), basem);
maskm.lo = ~(size - 1) | MTRRphysMaskValid;
maskm.hi = (1 << (CONFIG_CPU_ADDR_BITS - 32)) - 1;
wrmsr(MTRRphysMask_MSR(reg), maskm);
}
static void enable_rom_caching(void)
{
msr_t msr;
disable_cache();
/* Why only top 4MiB ? */
set_var_mtrr(1, 0xffc00000, 4*1024*1024, MTRR_TYPE_WRPROT);
enable_cache();
/* Enable Variable MTRRs */
msr.hi = 0x00000000;
msr.lo = 0x00000800;
wrmsr(MTRRdefType_MSR, msr);
}
static void set_flex_ratio_to_tdp_nominal(void)
{
msr_t flex_ratio, msr;
u32 soft_reset;
u8 nominal_ratio;
/* Check for Flex Ratio support */
flex_ratio = rdmsr(MSR_FLEX_RATIO);
if (!(flex_ratio.lo & FLEX_RATIO_EN))
return;
/* Check for >0 configurable TDPs */
msr = rdmsr(MSR_PLATFORM_INFO);
if (((msr.hi >> 1) & 3) == 0)
return;
/* Use nominal TDP ratio for flex ratio */
msr = rdmsr(MSR_CONFIG_TDP_NOMINAL);
nominal_ratio = msr.lo & 0xff;
/* See if flex ratio is already set to nominal TDP ratio */
if (((flex_ratio.lo >> 8) & 0xff) == nominal_ratio)
return;
/* Set flex ratio to nominal TDP ratio */
flex_ratio.lo &= ~0xff00;
flex_ratio.lo |= nominal_ratio << 8;
flex_ratio.lo |= FLEX_RATIO_LOCK;
wrmsr(MSR_FLEX_RATIO, flex_ratio);
/* Set flex ratio in soft reset data register bits 11:6.
* RCBA region is enabled in southbridge bootblock */
soft_reset = RCBA32(SOFT_RESET_DATA);
soft_reset &= ~(0x3f << 6);
soft_reset |= (nominal_ratio & 0x3f) << 6;
RCBA32(SOFT_RESET_DATA) = soft_reset;
/* Set soft reset control to use register value */
RCBA32_OR(SOFT_RESET_CTRL, 1);
/* Issue warm reset, will be "CPU only" due to soft reset data */
outb(0x0, 0xcf9);
outb(0x6, 0xcf9);
while (1) {
asm("hlt");
}
}
static void bootblock_cpu_init(void)
{
/* Set flex ratio and reset if needed */
set_flex_ratio_to_tdp_nominal();
enable_rom_caching();
intel_update_microcode_from_cbfs();
}

View File

@ -0,0 +1,349 @@
/*
* 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>
#define CACHE_AS_RAM_SIZE CONFIG_DCACHE_RAM_SIZE
#define CACHE_AS_RAM_BASE CONFIG_DCACHE_RAM_BASE
/* Cache 4GB - MRC_SIZE_KB for MRC */
#define CACHE_MRC_BYTES ((CONFIG_CACHE_MRC_SIZE_KB << 10) - 1)
#define CACHE_MRC_BASE (0xFFFFFFFF - CACHE_MRC_BYTES)
#define CACHE_MRC_MASK (~CACHE_MRC_BYTES)
#define CPU_MAXPHYSADDR CONFIG_CPU_ADDR_BITS
#define CPU_PHYSMASK_HI (1 << (CPU_MAXPHYSADDR - 32) - 1)
#define NoEvictMod_MSR 0x2e0
/* 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)
/* Zero out all fixed range and variable range MTRRs. */
movl $mtrr_table, %esi
movl $((mtrr_table_end - mtrr_table) / 2), %edi
xorl %eax, %eax
xorl %edx, %edx
clear_mtrrs:
movw (%esi), %bx
movzx %bx, %ecx
wrmsr
add $2, %esi
dec %edi
jnz clear_mtrrs
post_code(0x22)
/* Configure the default memory type to uncacheable. */
movl $MTRRdefType_MSR, %ecx
rdmsr
andl $(~0x00000cff), %eax
wrmsr
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)
/* Enable MTRR. */
movl $MTRRdefType_MSR, %ecx
rdmsr
orl $MTRRdefTypeEn, %eax
wrmsr
/* 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
andl $~2, %eax
wrmsr
/* 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
// movl $0x23322332, %eax
xorl %eax, %eax
rep stosl
/* enable the 'no eviction run' state */
movl $NoEvictMod_MSR, %ecx
rdmsr
orl $3, %eax
wrmsr
post_code(0x26)
/* Enable Cache-as-RAM mode by disabling cache. */
movl %cr0, %eax
orl $CR0_CacheDisable, %eax
movl %eax, %cr0
/* Enable cache for our code in Flash because we do XIP here */
movl $MTRRphysBase_MSR(1), %ecx
xorl %edx, %edx
/*
* IMPORTANT: The following calculation _must_ be done at runtime. See
* http://www.coreboot.org/pipermail/coreboot/2010-October/060855.html
*/
movl $copy_and_run, %eax
andl $(~(CONFIG_XIP_ROM_SIZE - 1)), %eax
orl $MTRR_TYPE_WRPROT, %eax
wrmsr
movl $MTRRphysMask_MSR(1), %ecx
movl $CPU_PHYSMASK_HI, %edx
movl $(~(CONFIG_XIP_ROM_SIZE - 1) | MTRRphysMaskValid), %eax
wrmsr
post_code(0x27)
#if CONFIG_CACHE_MRC_BIN
/* Enable caching for ram init code to run faster */
movl $MTRRphysBase_MSR(2), %ecx
movl $(CACHE_MRC_BASE | MTRR_TYPE_WRPROT), %eax
xorl %edx, %edx
wrmsr
movl $MTRRphysMask_MSR(2), %ecx
movl $(CACHE_MRC_MASK | MTRRphysMaskValid), %eax
movl $CPU_PHYSMASK_HI, %edx
wrmsr
#endif
post_code(0x28)
/* Enable cache. */
movl %cr0, %eax
andl $(~(CR0_CacheDisable | CR0_NoWriteThrough)), %eax
movl %eax, %cr0
/* Set up the stack pointer below MRC variable space. */
movl $(CACHE_AS_RAM_SIZE + CACHE_AS_RAM_BASE - \
CONFIG_DCACHE_RAM_MRC_VAR_SIZE - 4), %eax
movl %eax, %esp
/* Restore the BIST result. */
movl %ebp, %eax
movl %esp, %ebp
pushl %eax
before_romstage:
post_code(0x29)
/* Call romstage.c main function. */
call main
post_code(0x2f)
/* Copy global variable space (for USBDEBUG) to memory */
#if CONFIG_USBDEBUG
cld
movl $(CONFIG_DCACHE_RAM_BASE + CONFIG_DCACHE_RAM_SIZE - 24), %esi
movl $(CONFIG_RAMTOP - 24), %edi
movl $24, %ecx
rep movsb
#endif
post_code(0x30)
/* Disable cache. */
movl %cr0, %eax
orl $CR0_CacheDisable, %eax
movl %eax, %cr0
post_code(0x31)
/* Disable MTRR. */
movl $MTRRdefType_MSR, %ecx
rdmsr
andl $(~MTRRdefTypeEn), %eax
wrmsr
post_code(0x31)
/* Disable the no eviction run state */
movl $NoEvictMod_MSR, %ecx
rdmsr
andl $~2, %eax
wrmsr
invd
/* Disable the no eviction mode */
rdmsr
andl $~1, %eax
wrmsr
#if CONFIG_CACHE_MRC_BIN
/* Clear MTRR that was used to cache MRC */
xorl %eax, %eax
xorl %edx, %edx
movl $MTRRphysBase_MSR(2), %ecx
wrmsr
movl $MTRRphysMask_MSR(2), %ecx
wrmsr
#endif
post_code(0x33)
/* Enable cache. */
movl %cr0, %eax
andl $~(CR0_CacheDisable | CR0_NoWriteThrough), %eax
movl %eax, %cr0
post_code(0x36)
/* Disable cache. */
movl %cr0, %eax
orl $CR0_CacheDisable, %eax
movl %eax, %cr0
post_code(0x38)
/* Enable Write Back and Speculative Reads for the first MB
* and coreboot_ram.
*/
movl $MTRRphysBase_MSR(0), %ecx
movl $(0x00000000 | MTRR_TYPE_WRBACK), %eax
xorl %edx, %edx
wrmsr
movl $MTRRphysMask_MSR(0), %ecx
movl $(~(CONFIG_RAMTOP - 1) | MTRRphysMaskValid), %eax
movl $CPU_PHYSMASK_HI, %edx // 36bit address space
wrmsr
/* Enable Caching and speculative Reads for the
* complete ROM now that we actually have RAM.
*/
movl $MTRRphysBase_MSR(1), %ecx
movl $(0xffc00000 | MTRR_TYPE_WRPROT), %eax
xorl %edx, %edx
wrmsr
movl $MTRRphysMask_MSR(1), %ecx
movl $(~(4*1024*1024 - 1) | MTRRphysMaskValid), %eax
movl $CPU_PHYSMASK_HI, %edx
wrmsr
post_code(0x39)
/* And enable cache again after setting MTRRs. */
movl %cr0, %eax
andl $~(CR0_CacheDisable | CR0_NoWriteThrough), %eax
movl %eax, %cr0
post_code(0x3a)
/* Enable MTRR. */
movl $MTRRdefType_MSR, %ecx
rdmsr
orl $MTRRdefTypeEn, %eax
wrmsr
post_code(0x3b)
/* Invalidate the cache again. */
invd
post_code(0x3c)
#if CONFIG_HAVE_ACPI_RESUME
movl CBMEM_BOOT_MODE, %eax
cmpl $0x2, %eax // Resume?
jne __acpi_resume_backup_done
/* copy 1MB - 64K to high tables ram_base to prevent memory corruption
* through stage 2. We could keep stuff like stack and heap in high
* tables memory completely, but that's a wonderful clean up task for
* another day.
*/
cld
movl $CONFIG_RAMBASE, %esi
movl CBMEM_RESUME_BACKUP, %edi
movl $HIGH_MEMORY_SAVE / 4, %ecx
rep movsl
__acpi_resume_backup_done:
#endif
post_code(0x3d)
/* Clear boot_complete flag. */
xorl %ebp, %ebp
__main:
post_code(POST_PREPARE_RAMSTAGE)
cld /* Clear direction flag. */
movl %ebp, %esi
movl $ROMSTAGE_STACK, %esp
movl %esp, %ebp
pushl %esi
call copy_and_run
.Lhlt:
post_code(POST_DEAD_CODE)
hlt
jmp .Lhlt
mtrr_table:
/* Fixed MTRRs */
.word 0x250, 0x258, 0x259
.word 0x268, 0x269, 0x26A
.word 0x26B, 0x26C, 0x26D
.word 0x26E, 0x26F
/* Variable MTRRs */
.word 0x200, 0x201, 0x202, 0x203
.word 0x204, 0x205, 0x206, 0x207
.word 0x208, 0x209, 0x20A, 0x20B
.word 0x20C, 0x20D, 0x20E, 0x20F
.word 0x210, 0x211, 0x212, 0x213
mtrr_table_end:

View File

@ -0,0 +1,39 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2011 The Chromium OS Authors. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License 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
*/
extern struct chip_operations cpu_intel_haswell_ops;
/* Magic value used to locate this chip in the device tree */
#define SPEEDSTEP_APIC_MAGIC 0xACAC
struct cpu_intel_haswell_config {
u8 disable_acpi; /* Do not generate CPU ACPI tables */
u8 pstate_coord_type; /* Processor Coordination Type */
int c1_battery; /* ACPI C1 on Battery Power */
int c2_battery; /* ACPI C2 on Battery Power */
int c3_battery; /* ACPI C3 on Battery Power */
int c1_acpower; /* ACPI C1 on AC Power */
int c2_acpower; /* ACPI C2 on AC Power */
int c3_acpower; /* ACPI C3 on AC Power */
int tcc_offset; /* TCC Activation Offset */
};

View File

@ -0,0 +1,76 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2012 The Chromium OS Authors. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License 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 <stdlib.h>
#include <cpu/cpu.h>
#include <cpu/x86/msr.h>
#include "haswell.h"
#if 0
static void msr_set_bit(unsigned reg, unsigned bit)
{
msr_t msr = rdmsr(reg);
if (bit < 32) {
if (msr.lo & (1 << bit))
return;
msr.lo |= 1 << bit;
} else {
if (msr.hi & (1 << (bit - 32)))
return;
msr.hi |= 1 << (bit - 32);
}
wrmsr(reg, msr);
}
#endif
void intel_cpu_haswell_finalize_smm(void)
{
#if 0
msr_set_bit(MSR_PMG_CST_CONFIG_CONTROL, 15);
/* Lock AES-NI only if supported */
if (cpuid_ecx(1) & (1 << 25))
msr_set_bit(MSR_FEATURE_CONFIG, 0);
#ifdef LOCK_POWER_CONTROL_REGISTERS
/*
* Lock the power control registers.
*
* These registers can be left unlocked if modifying power
* limits from the OS is desirable. Modifying power limits
* from the OS can be especially useful for experimentation
* during early phases of system bringup while the thermal
* power envelope is being proven.
*/
msr_set_bit(MSR_PP0_CURRENT_CONFIG, 31);
msr_set_bit(MSR_PP1_CURRENT_CONFIG, 31);
msr_set_bit(MSR_PKG_POWER_LIMIT, 63);
msr_set_bit(MSR_PP0_POWER_LIMIT, 31);
msr_set_bit(MSR_PP1_POWER_LIMIT, 31);
#endif
msr_set_bit(MSR_MISC_PWR_MGMT, 22);
msr_set_bit(MSR_LT_LOCK_MEMORY, 0);
#endif
}

View File

@ -0,0 +1,113 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2011 The ChromiumOS Authors. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License 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 _CPU_INTEL_HASWELL_H
#define _CPU_INTEL_HASWELL_H
/* Haswell bus clock is fixed at 100MHz */
#define HASWELL_BCLK 100
#define IA32_FEATURE_CONTROL 0x3a
#define CPUID_VMX (1 << 5)
#define CPUID_SMX (1 << 6)
#define MSR_FEATURE_CONFIG 0x13c
#define MSR_FLEX_RATIO 0x194
#define FLEX_RATIO_LOCK (1 << 20)
#define FLEX_RATIO_EN (1 << 16)
#define IA32_PLATFORM_DCA_CAP 0x1f8
#define IA32_MISC_ENABLE 0x1a0
#define MSR_TEMPERATURE_TARGET 0x1a2
#define IA32_PERF_CTL 0x199
#define IA32_THERM_INTERRUPT 0x19b
#define IA32_ENERGY_PERFORMANCE_BIAS 0x1b0
#define ENERGY_POLICY_PERFORMANCE 0
#define ENERGY_POLICY_NORMAL 6
#define ENERGY_POLICY_POWERSAVE 15
#define IA32_PACKAGE_THERM_INTERRUPT 0x1b2
#define MSR_LT_LOCK_MEMORY 0x2e7
#define IA32_MC0_STATUS 0x401
#define MSR_PIC_MSG_CONTROL 0x2e
#define MSR_PLATFORM_INFO 0xce
#define PLATFORM_INFO_SET_TDP (1 << 29)
#define MSR_PMG_CST_CONFIG_CONTROL 0xe2
#define MSR_PMG_IO_CAPTURE_BASE 0xe4
#define MSR_MISC_PWR_MGMT 0x1aa
#define MISC_PWR_MGMT_EIST_HW_DIS (1 << 0)
#define MSR_TURBO_RATIO_LIMIT 0x1ad
#define MSR_POWER_CTL 0x1fc
#define MSR_PKGC3_IRTL 0x60a
#define MSR_PKGC6_IRTL 0x60b
#define MSR_PKGC7_IRTL 0x60c
#define IRTL_VALID (1 << 15)
#define IRTL_1_NS (0 << 10)
#define IRTL_32_NS (1 << 10)
#define IRTL_1024_NS (2 << 10)
#define IRTL_32768_NS (3 << 10)
#define IRTL_1048576_NS (4 << 10)
#define IRTL_33554432_NS (5 << 10)
#define IRTL_RESPONSE_MASK (0x3ff)
/* long duration in low dword, short duration in high dword */
#define MSR_PKG_POWER_LIMIT 0x610
#define PKG_POWER_LIMIT_MASK 0x7fff
#define PKG_POWER_LIMIT_EN (1 << 15)
#define PKG_POWER_LIMIT_CLAMP (1 << 16)
#define PKG_POWER_LIMIT_TIME_SHIFT 17
#define PKG_POWER_LIMIT_TIME_MASK 0x7f
#define MSR_PP0_CURRENT_CONFIG 0x601
#define MSR_VR_CURRENT_CONFIG 0x601
#define PP0_CURRENT_LIMIT (112 << 3) /* 112 A */
#define MSR_PP1_CURRENT_CONFIG 0x602
#define PP1_CURRENT_LIMIT_SNB (35 << 3) /* 35 A */
#define PP1_CURRENT_LIMIT_IVB (50 << 3) /* 50 A */
#define MSR_PKG_POWER_SKU_UNIT 0x606
#define MSR_PKG_POWER_SKU 0x614
#define MSR_PP0_POWER_LIMIT 0x638
#define MSR_PP1_POWER_LIMIT 0x640
#define MSR_CONFIG_TDP_NOMINAL 0x648
#define MSR_CONFIG_TDP_LEVEL1 0x649
#define MSR_CONFIG_TDP_LEVEL2 0x64a
#define MSR_CONFIG_TDP_CONTROL 0x64b
#define MSR_TURBO_ACTIVATION_RATIO 0x64c
/* P-state configuration */
#define PSS_MAX_ENTRIES 8
#define PSS_RATIO_STEP 2
#define PSS_LATENCY_TRANSITION 10
#define PSS_LATENCY_BUSMASTER 10
#ifndef __ROMCC__
#ifdef __SMM__
/* Lock MSRs */
void intel_cpu_haswell_finalize_smm(void);
#else
/* Configure power limits for turbo mode */
void set_power_limits(u8 power_limit_1_time);
int cpu_config_tdp_levels(void);
#endif
#endif
#endif

View File

@ -0,0 +1,572 @@
/*
* This file is part of the coreboot project.
*
* Copyright (C) 2007-2009 coresystems GmbH
* Copyright (C) 2011 The ChromiumOS Authors. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License 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 <string.h>
#include <arch/acpi.h>
#include <cpu/cpu.h>
#include <cpu/x86/mtrr.h>
#include <cpu/x86/msr.h>
#include <cpu/x86/lapic.h>
#include <cpu/intel/microcode.h>
#include <cpu/intel/speedstep.h>
#include <cpu/intel/turbo.h>
#include <cpu/x86/cache.h>
#include <cpu/x86/name.h>
#include <pc80/mc146818rtc.h>
#include <usbdebug.h>
#include "haswell.h"
#include "chip.h"
/*
* List of suported C-states in this processor
*
* Latencies are typical worst-case package exit time in uS
* taken from the SandyBridge BIOS specification.
*/
#if 0
static acpi_cstate_t cstate_map[] = {
{ /* 0: C0 */
},{ /* 1: C1 */
.latency = 1,
.power = 1000,
.resource = {
.addrl = 0x00, /* MWAIT State 0 */
.space_id = ACPI_ADDRESS_SPACE_FIXED,
.bit_width = ACPI_FFIXEDHW_VENDOR_INTEL,
.bit_offset = ACPI_FFIXEDHW_CLASS_MWAIT,
.resv = ACPI_FFIXEDHW_FLAG_HW_COORD,
}
},
{ /* 2: C1E */
.latency = 1,
.power = 1000,
.resource = {
.addrl = 0x01, /* MWAIT State 0 Sub-state 1 */
.space_id = ACPI_ADDRESS_SPACE_FIXED,
.bit_width = ACPI_FFIXEDHW_VENDOR_INTEL,
.bit_offset = ACPI_FFIXEDHW_CLASS_MWAIT,
.resv = ACPI_FFIXEDHW_FLAG_HW_COORD,
}
},
{ /* 3: C3 */
.latency = 63,
.power = 500,
.resource = {
.addrl = 0x10, /* MWAIT State 1 */
.space_id = ACPI_ADDRESS_SPACE_FIXED,
.bit_width = ACPI_FFIXEDHW_VENDOR_INTEL,
.bit_offset = ACPI_FFIXEDHW_CLASS_MWAIT,
.resv = ACPI_FFIXEDHW_FLAG_HW_COORD,
}
},
{ /* 4: C6 */
.latency = 87,
.power = 350,
.resource = {
.addrl = 0x20, /* MWAIT State 2 */
.space_id = ACPI_ADDRESS_SPACE_FIXED,
.bit_width = ACPI_FFIXEDHW_VENDOR_INTEL,
.bit_offset = ACPI_FFIXEDHW_CLASS_MWAIT,
.resv = ACPI_FFIXEDHW_FLAG_HW_COORD,
}
},
{ /* 5: C7 */
.latency = 90,
.power = 200,
.resource = {
.addrl = 0x30, /* MWAIT State 3 */
.space_id = ACPI_ADDRESS_SPACE_FIXED,
.bit_width = ACPI_FFIXEDHW_VENDOR_INTEL,
.bit_offset = ACPI_FFIXEDHW_CLASS_MWAIT,
.resv = ACPI_FFIXEDHW_FLAG_HW_COORD,
}
},
{ /* 6: C7S */
.latency = 90,
.power = 200,
.resource = {
.addrl = 0x31, /* MWAIT State 3 Sub-state 1 */
.space_id = ACPI_ADDRESS_SPACE_FIXED,
.bit_width = ACPI_FFIXEDHW_VENDOR_INTEL,
.bit_offset = ACPI_FFIXEDHW_CLASS_MWAIT,
.resv = ACPI_FFIXEDHW_FLAG_HW_COORD,
}
},
{ 0 }
};
#endif
/* Convert time in seconds to POWER_LIMIT_1_TIME MSR value */
static const u8 power_limit_time_sec_to_msr[] = {
[0] = 0x00,
[1] = 0x0a,
[2] = 0x0b,
[3] = 0x4b,
[4] = 0x0c,
[5] = 0x2c,
[6] = 0x4c,
[7] = 0x6c,
[8] = 0x0d,
[10] = 0x2d,
[12] = 0x4d,
[14] = 0x6d,
[16] = 0x0e,
[20] = 0x2e,
[24] = 0x4e,
[28] = 0x6e,
[32] = 0x0f,
[40] = 0x2f,
[48] = 0x4f,
[56] = 0x6f,
[64] = 0x10,
[80] = 0x30,
[96] = 0x50,
[112] = 0x70,
[128] = 0x11,
};
/* Convert POWER_LIMIT_1_TIME MSR value to seconds */
static const u8 power_limit_time_msr_to_sec[] = {
[0x00] = 0,
[0x0a] = 1,
[0x0b] = 2,
[0x4b] = 3,
[0x0c] = 4,
[0x2c] = 5,
[0x4c] = 6,
[0x6c] = 7,
[0x0d] = 8,
[0x2d] = 10,
[0x4d] = 12,
[0x6d] = 14,
[0x0e] = 16,
[0x2e] = 20,
[0x4e] = 24,
[0x6e] = 28,
[0x0f] = 32,
[0x2f] = 40,
[0x4f] = 48,
[0x6f] = 56,
[0x10] = 64,
[0x30] = 80,
[0x50] = 96,
[0x70] = 112,
[0x11] = 128,
};
int cpu_config_tdp_levels(void)
{
msr_t platform_info;
/* Bits 34:33 indicate how many levels supported */
platform_info = rdmsr(MSR_PLATFORM_INFO);
return (platform_info.hi >> 1) & 3;
}
/*
* Configure processor power limits if possible
* This must be done AFTER set of BIOS_RESET_CPL
*/
void set_power_limits(u8 power_limit_1_time)
{
msr_t msr = rdmsr(MSR_PLATFORM_INFO);
msr_t limit;
unsigned power_unit;
unsigned tdp, min_power, max_power, max_time;
u8 power_limit_1_val;
if (power_limit_1_time > ARRAY_SIZE(power_limit_time_sec_to_msr))
return;
if (!(msr.lo & PLATFORM_INFO_SET_TDP))
return;
/* Get units */
msr = rdmsr(MSR_PKG_POWER_SKU_UNIT);
power_unit = 2 << ((msr.lo & 0xf) - 1);
/* Get power defaults for this SKU */
msr = rdmsr(MSR_PKG_POWER_SKU);
tdp = msr.lo & 0x7fff;
min_power = (msr.lo >> 16) & 0x7fff;
max_power = msr.hi & 0x7fff;
max_time = (msr.hi >> 16) & 0x7f;
printk(BIOS_DEBUG, "CPU TDP: %u Watts\n", tdp / power_unit);
if (power_limit_time_msr_to_sec[max_time] > power_limit_1_time)
power_limit_1_time = power_limit_time_msr_to_sec[max_time];
if (min_power > 0 && tdp < min_power)
tdp = min_power;
if (max_power > 0 && tdp > max_power)
tdp = max_power;
power_limit_1_val = power_limit_time_sec_to_msr[power_limit_1_time];
/* Set long term power limit to TDP */
limit.lo = 0;
limit.lo |= tdp & PKG_POWER_LIMIT_MASK;
limit.lo |= PKG_POWER_LIMIT_EN;
limit.lo |= (power_limit_1_val & PKG_POWER_LIMIT_TIME_MASK) <<
PKG_POWER_LIMIT_TIME_SHIFT;
/* Set short term power limit to 1.25 * TDP */
limit.hi = 0;
limit.hi |= ((tdp * 125) / 100) & PKG_POWER_LIMIT_MASK;
limit.hi |= PKG_POWER_LIMIT_EN;
/* Power limit 2 time is only programmable on SNB EP/EX */
wrmsr(MSR_PKG_POWER_LIMIT, limit);
/* Use nominal TDP values for CPUs with configurable TDP */
if (cpu_config_tdp_levels()) {
msr = rdmsr(MSR_CONFIG_TDP_NOMINAL);
limit.hi = 0;
limit.lo = msr.lo & 0xff;
wrmsr(MSR_TURBO_ACTIVATION_RATIO, limit);
}
}
#if 0
static void configure_c_states(void)
{
msr_t msr;
msr = rdmsr(MSR_PMG_CST_CONFIG_CONTROL);
msr.lo |= (1 << 28); // C1 Auto Undemotion Enable
msr.lo |= (1 << 27); // C3 Auto Undemotion Enable
msr.lo |= (1 << 26); // C1 Auto Demotion Enable
msr.lo |= (1 << 25); // C3 Auto Demotion Enable
msr.lo &= ~(1 << 10); // Disable IO MWAIT redirection
msr.lo |= 7; // No package C-state limit
wrmsr(MSR_PMG_CST_CONFIG_CONTROL, msr);
msr = rdmsr(MSR_PMG_IO_CAPTURE_BASE);
msr.lo &= ~0x7ffff;
msr.lo |= (PMB0_BASE + 4); // LVL_2 base address
msr.lo |= (2 << 16); // CST Range: C7 is max C-state
wrmsr(MSR_PMG_IO_CAPTURE_BASE, msr);
msr = rdmsr(MSR_MISC_PWR_MGMT);
msr.lo &= ~(1 << 0); // Enable P-state HW_ALL coordination
wrmsr(MSR_MISC_PWR_MGMT, msr);
msr = rdmsr(MSR_POWER_CTL);
msr.lo |= (1 << 18); // Enable Energy Perf Bias MSR 0x1b0
msr.lo |= (1 << 1); // C1E Enable
msr.lo |= (1 << 0); // Bi-directional PROCHOT#
wrmsr(MSR_POWER_CTL, msr);
/* C3 Interrupt Response Time Limit */
msr.hi = 0;
msr.lo = IRTL_VALID | IRTL_1024_NS | 0x50;
wrmsr(MSR_PKGC3_IRTL, msr);
/* C6 Interrupt Response Time Limit */
msr.hi = 0;
msr.lo = IRTL_VALID | IRTL_1024_NS | 0x68;
wrmsr(MSR_PKGC6_IRTL, msr);
/* C7 Interrupt Response Time Limit */
msr.hi = 0;
msr.lo = IRTL_VALID | IRTL_1024_NS | 0x6D;
wrmsr(MSR_PKGC7_IRTL, msr);
/* Primary Plane Current Limit */
msr = rdmsr(MSR_PP0_CURRENT_CONFIG);
msr.lo &= ~0x1fff;
msr.lo |= PP0_CURRENT_LIMIT;
wrmsr(MSR_PP0_CURRENT_CONFIG, msr);
/* Secondary Plane Current Limit */
msr = rdmsr(MSR_PP1_CURRENT_CONFIG);
msr.lo &= ~0x1fff;
if (cpuid_eax(1) >= 0x30600)
msr.lo |= PP1_CURRENT_LIMIT_IVB;
else
msr.lo |= PP1_CURRENT_LIMIT_SNB;
wrmsr(MSR_PP1_CURRENT_CONFIG, msr);
}
#endif
static void configure_thermal_target(void)
{
struct cpu_intel_haswell_config *conf;
device_t lapic;
msr_t msr;
/* Find pointer to CPU configuration */
lapic = dev_find_lapic(SPEEDSTEP_APIC_MAGIC);
if (!lapic || !lapic->chip_info)
return;
conf = lapic->chip_info;
/* Set TCC activaiton offset if supported */
msr = rdmsr(MSR_PLATFORM_INFO);
if ((msr.lo & (1 << 30)) && conf->tcc_offset) {
msr = rdmsr(MSR_TEMPERATURE_TARGET);
msr.lo &= ~(0xf << 24); /* Bits 27:24 */
msr.lo |= (conf->tcc_offset & 0xf) << 24;
wrmsr(MSR_TEMPERATURE_TARGET, msr);
}
}
static void configure_misc(void)
{
msr_t msr;
msr = rdmsr(IA32_MISC_ENABLE);
msr.lo |= (1 << 0); /* Fast String enable */
msr.lo |= (1 << 3); /* TM1/TM2/EMTTM enable */
msr.lo |= (1 << 16); /* Enhanced SpeedStep Enable */
wrmsr(IA32_MISC_ENABLE, msr);
/* Disable Thermal interrupts */
msr.lo = 0;
msr.hi = 0;
wrmsr(IA32_THERM_INTERRUPT, msr);
/* Enable package critical interrupt only */
msr.lo = 1 << 4;
msr.hi = 0;
wrmsr(IA32_PACKAGE_THERM_INTERRUPT, msr);
}
static void enable_lapic_tpr(void)
{
msr_t msr;
msr = rdmsr(MSR_PIC_MSG_CONTROL);
msr.lo &= ~(1 << 10); /* Enable APIC TPR updates */
wrmsr(MSR_PIC_MSG_CONTROL, msr);
}
static void configure_dca_cap(void)
{
struct cpuid_result cpuid_regs;
msr_t msr;
/* Check feature flag in CPUID.(EAX=1):ECX[18]==1 */
cpuid_regs = cpuid(1);
if (cpuid_regs.ecx & (1 << 18)) {
msr = rdmsr(IA32_PLATFORM_DCA_CAP);
msr.lo |= 1;
wrmsr(IA32_PLATFORM_DCA_CAP, msr);
}
}
static void set_max_ratio(void)
{
msr_t msr, perf_ctl;
perf_ctl.hi = 0;
/* Check for configurable TDP option */
if (cpu_config_tdp_levels()) {
/* Set to nominal TDP ratio */
msr = rdmsr(MSR_CONFIG_TDP_NOMINAL);
perf_ctl.lo = (msr.lo & 0xff) << 8;
} else {
/* Platform Info bits 15:8 give max ratio */
msr = rdmsr(MSR_PLATFORM_INFO);
perf_ctl.lo = msr.lo & 0xff00;
}
wrmsr(IA32_PERF_CTL, perf_ctl);
printk(BIOS_DEBUG, "haswell: frequency set to %d\n",
((perf_ctl.lo >> 8) & 0xff) * HASWELL_BCLK);
}
static void set_energy_perf_bias(u8 policy)
{
msr_t msr;
/* Energy Policy is bits 3:0 */
msr = rdmsr(IA32_ENERGY_PERFORMANCE_BIAS);
msr.lo &= ~0xf;
msr.lo |= policy & 0xf;
wrmsr(IA32_ENERGY_PERFORMANCE_BIAS, msr);
printk(BIOS_DEBUG, "haswell: energy policy set to %u\n",
policy);
}
static void configure_mca(void)
{
msr_t msr;
int i;
msr.lo = msr.hi = 0;
/* This should only be done on a cold boot */
for (i = 0; i < 7; i++)
wrmsr(IA32_MC0_STATUS + (i * 4), msr);
}
#if CONFIG_USBDEBUG
static unsigned ehci_debug_addr;
#endif
/*
* Initialize any extra cores/threads in this package.
*/
static void intel_cores_init(device_t cpu)
{
struct cpuid_result result;
unsigned threads_per_package, threads_per_core, i;
/* Logical processors (threads) per core */
result = cpuid_ext(0xb, 0);
threads_per_core = result.ebx & 0xffff;
/* Logical processors (threads) per package */
result = cpuid_ext(0xb, 1);
threads_per_package = result.ebx & 0xffff;
/* Only initialize extra cores from BSP */
if (cpu->path.apic.apic_id)
return;
printk(BIOS_DEBUG, "CPU: %u has %u cores, %u threads per core\n",
cpu->path.apic.apic_id, threads_per_package/threads_per_core,
threads_per_core);
for (i = 1; i < threads_per_package; ++i) {
struct device_path cpu_path;
device_t new;
/* Build the cpu device path */
cpu_path.type = DEVICE_PATH_APIC;
cpu_path.apic.apic_id =
cpu->path.apic.apic_id + i;
/* Update APIC ID if no hyperthreading */
if (threads_per_core == 1)
cpu_path.apic.apic_id <<= 1;
/* Allocate the new cpu device structure */
new = alloc_dev(cpu->bus, &cpu_path);
if (!new)
continue;
printk(BIOS_DEBUG, "CPU: %u has core %u\n",
cpu->path.apic.apic_id,
new->path.apic.apic_id);
#if CONFIG_SMP && CONFIG_MAX_CPUS > 1
/* Start the new cpu */
if (!start_cpu(new)) {
/* Record the error in cpu? */
printk(BIOS_ERR, "CPU %u would not start!\n",
new->path.apic.apic_id);
}
#endif
}
}
static void haswell_init(device_t cpu)
{
char processor_name[49];
struct cpuid_result cpuid_regs;
intel_update_microcode_from_cbfs();
/* Turn on caching if we haven't already */
x86_enable_cache();
/* Clear out pending MCEs */
configure_mca();
/* Print processor name */
fill_processor_name(processor_name);
printk(BIOS_INFO, "CPU: %s.\n", processor_name);
#if CONFIG_USBDEBUG
// Is this caution really needed?
if(!ehci_debug_addr)
ehci_debug_addr = get_ehci_debug();
set_ehci_debug(0);
#endif
/* Setup MTRRs based on physical address size */
cpuid_regs = cpuid(0x80000008);
x86_setup_fixed_mtrrs();
x86_setup_var_mtrrs(cpuid_regs.eax & 0xff, 2);
x86_mtrr_check();
/* Setup Page Attribute Tables (PAT) */
// TODO set up PAT
#if CONFIG_USBDEBUG
set_ehci_debug(ehci_debug_addr);
#endif
/* Enable the local cpu apics */
enable_lapic_tpr();
setup_lapic();
/* Configure C States */
//configure_c_states();
/* Configure Enhanced SpeedStep and Thermal Sensors */
configure_misc();
/* Thermal throttle activation offset */
configure_thermal_target();
/* Enable Direct Cache Access */
configure_dca_cap();
/* Set energy policy */
set_energy_perf_bias(ENERGY_POLICY_NORMAL);
/* Set Max Ratio */
set_max_ratio();
/* Enable Turbo */
enable_turbo();
/* Start up extra cores */
intel_cores_init(cpu);
}
static struct device_operations cpu_dev_ops = {
.init = haswell_init,
};
static struct cpu_device_id cpu_table[] = {
{ X86_VENDOR_INTEL, 0x306c1 }, /* Intel Haswell 4+2 A0 */
{ X86_VENDOR_INTEL, 0x306c2 }, /* Intel Haswell 4+2 B0 */
{ X86_VENDOR_INTEL, 0x40660 }, /* Intel Haswell 4+3 B0 */
{ 0, 0 },
};
static const struct cpu_driver driver __cpu_driver = {
.ops = &cpu_dev_ops,
.id_table = cpu_table,
/* .cstates = cstate_map, */
};

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,833 @@
/* 0x306c2 built on 07102012 */
0x00000001, 0xffff0003, 0x07102012, 0x000306c2,
0xaf97f1f8, 0x00000001, 0x00000032, 0x000033d0,
0x00003400, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x000000a1, 0x00020001, 0xffff0003,
0x00000000, 0x00000cf1, 0x20120710, 0x00000cf1,
0x00000001, 0x000306c2, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0xd3ad173b, 0x3a858e7c, 0xbd2a6573, 0x33af95ab,
0xac27ec24, 0x043a80dd, 0x78c629bc, 0xd3b160e0,
0xa19308a3, 0x5b19c4b7, 0x4a1b425b, 0x7d6a74f6,
0x81624193, 0x3a559605, 0x5475280b, 0xe7319d58,
0x48624ca7, 0x507af030, 0x3b32d96a, 0x30164068,
0x5284d2f5, 0x725b2915, 0xf63c9280, 0x44b7c142,
0xe67ca7b3, 0xd6f163e7, 0xcdf51f3c, 0x41d180a1,
0xcc3931b1, 0xf7a544a9, 0x7f6bf77d, 0xfc45a45f,
0xf0985836, 0x652d7e2e, 0x0324b1f3, 0x24b9548c,
0x7bcae7a5, 0xdcdebf79, 0x27015922, 0x0c83c606,
0x3d2ceeb7, 0x61c5eec8, 0x6b6899c6, 0x3e500531,
0xf08bfa44, 0xb304a8f4, 0xcee8f713, 0x2912c786,
0xfae6c34c, 0xa5292960, 0x7d63e389, 0xaa257a01,
0x1fb25054, 0x963fc676, 0x5bcb9fd3, 0x58f369a4,
0xf6e3beb2, 0xa58b5eb0, 0x33c7eba4, 0x37fe8b66,
0x00714403, 0xf0fd0c4e, 0xaa122996, 0x9a55b184,
0x00201507, 0xc9fb6e3a, 0x11ab60c8, 0x80ff6e84,
0xc37aabdd, 0x0fc23175, 0xb0b18c34, 0xf1ec806c,
0x00000011, 0xd7ac04bd, 0x43c47748, 0x8b4d3b0e,
0x37292b60, 0x88f69665, 0xe29ecca3, 0xea58d4ff,
0xc510039d, 0xcf90334c, 0x72613f09, 0x068fb362,
0xba19d1a8, 0xba0b5f4f, 0xf98ea81f, 0x5a149d3d,
0x46b8569a, 0xb1a7bf13, 0x20264bae, 0xd0254070,
0xfbf03ebe, 0x4d257a4c, 0xc6b129cb, 0xe94b010f,
0x1a1bc256, 0xb0627b4d, 0x5d884902, 0x8992f09a,
0xa248ba5d, 0x774ce24e, 0xd18a8e9f, 0x308c2101,
0x654f9f54, 0x48860d0b, 0x20d42d6b, 0xcb21b8af,
0xdae28e34, 0x9eadb1ef, 0x0f63d558, 0x65852c08,
0x2fc9d718, 0x4a7b327e, 0x25da4117, 0xbc9f1a1a,
0x330b88fa, 0x4e88ca00, 0x93a206cf, 0xf1108fa5,
0xb4f994bd, 0xa2788822, 0xf3bd71b9, 0x7a095358,
0xe9ee1f78, 0xdedfb10f, 0xfd805db4, 0x0ad7ecfd,
0x73f6c7f9, 0x05ea6af9, 0x92d19d64, 0x325b6143,
0x65446f10, 0x9d82d963, 0x4e9968d4, 0x9e7f5375,
0x3e4a36df, 0x73c4f910, 0x6042ebab, 0xdaf76fed,
0xda4fa82e, 0xf15de75e, 0x40ddfb97, 0x9bc1c7ca,
0xfd58d90a, 0x4b37269e, 0xf534da12, 0xc9ffbb4d,
0x05d71f15, 0xba506b7a, 0xfb90e223, 0xf46faf4b,
0x0ad694ba, 0x0dc0b857, 0x5b8df4c2, 0x5d6f7f13,
0x32eecd90, 0x7f7f272b, 0x271f0bdb, 0x25bd7819,
0x25f19df4, 0x2a435865, 0x1a28201b, 0x26d186fe,
0x6abad792, 0x3b902d01, 0xf4dbf9c6, 0xe883fb9f,
0xce6233f7, 0xcf34fdc2, 0x8ed7096c, 0x05ad22a6,
0x20ead5b2, 0x9af8e44b, 0x9cbbeb21, 0x1970c013,
0x61089e83, 0x41eb77a3, 0xd05867ab, 0xf6409d11,
0xac007c25, 0x97d78d4b, 0x5af38c3f, 0xed5a972c,
0x3561d959, 0x824b8761, 0x9fc69de4, 0x3094e8b8,
0xcfb81787, 0x35832e8f, 0xa320931f, 0x2b044e78,
0x2ba04a27, 0x87ada1c7, 0xd61b0f91, 0x86f2c5dd,
0xd4a2caa3, 0x6e71cdeb, 0xef8b87fb, 0x329fc815,
0xcd69b570, 0x25c92597, 0xb81139a6, 0x84b35f2c,
0x960bbbb2, 0xd4a1b46f, 0xaa9bd40e, 0x129f9cfc,
0xf2775921, 0xf69c866a, 0x8927ae0c, 0xc297d25f,
0x22eaecba, 0x9289f366, 0xda25f880, 0xaefaf3c2,
0x231fa1c3, 0x022230dc, 0xe4e7f071, 0xf9b77e6b,
0x48cf1fde, 0x1b82d4f9, 0xcf7d150a, 0x5ef46aa1,
0x41ef98b5, 0x45bc0d43, 0xbd2c471b, 0xf227d6ed,
0xfa8070d6, 0xba48ef91, 0x709e2371, 0x0648d521,
0xecb6313b, 0x1823d7e0, 0x88e88325, 0x668f220a,
0x407f5f89, 0xcb3bc4b3, 0xec901d63, 0x1120b657,
0x49b14178, 0xf467509b, 0xe6d035e0, 0xdee2b2ec,
0xfd4b20a2, 0x69866d1f, 0x1bcfeebf, 0x7b76df63,
0x24f86a8b, 0xd2a928e4, 0xab66fc07, 0xb52b4147,
0x35d8ce1a, 0x6c12eece, 0xbc51eda2, 0x1083aaf6,
0x554048f0, 0x3a610276, 0x162dbf03, 0x9eed4230,
0x0c08f581, 0x0a8dddd8, 0x163bce27, 0x221ca5a7,
0x81a234d9, 0x0d7dfce6, 0xd8482f38, 0xe4b508b6,
0x90a2a481, 0x8abad862, 0x2f5c6a32, 0xb84ea6b9,
0x2612f2cf, 0xb77ee692, 0x74fb73ee, 0x1dc96a95,
0xde9cc598, 0x7a61f258, 0xb28245cc, 0xe53e10d0,
0xc11f2f27, 0xaa3e29a6, 0x99fc2781, 0xc8bc6ec7,
0x180ed465, 0xac96f71c, 0xd8bdfa23, 0x184fddc0,
0x53d9d8d0, 0x1511bfbe, 0x13bd1595, 0x5fd6ec7d,
0x015d6a44, 0x6a4c044f, 0xb438479e, 0xf73bba7f,
0xf54f86a3, 0x3d362052, 0x657f0dcf, 0xdf143c5b,
0x4af3bdd1, 0x1e65b6cb, 0xb1fd068d, 0xa97392b5,
0x1605a33f, 0x70c55aeb, 0x84bf9c4c, 0xe995b96d,
0xdfa9e176, 0x97ed1fdb, 0xcc43ff0a, 0x3b315d79,
0xa402aeef, 0x993393cd, 0x50f2d688, 0x480809e9,
0x909b1aba, 0xdb274eae, 0x4e400e34, 0x19f3f7ca,
0x7564b3b7, 0xc3d804b3, 0x35ca3679, 0xc2e81a5c,
0xbd6c617c, 0x2af290e7, 0xa8412361, 0x7b01655e,
0x17bbd80c, 0x487f81a7, 0xd13ca9e9, 0x8bd67724,
0x0b2cb9c3, 0x48308624, 0x09583853, 0xa18b721d,
0x545e982d, 0x01762447, 0x8da01954, 0xc0c41c76,
0xfdbd404f, 0x4b545bf2, 0x3f2dad44, 0x5ee26f3b,
0x785bf016, 0x7c9307d1, 0x24240a70, 0xf7dd20bc,
0x36988994, 0x209bfad5, 0xb71d3f3c, 0xe283c374,
0xc5b2cb67, 0x3b302474, 0xe68684b8, 0x51a90ec5,
0x7aeb6d5f, 0xbfe5da15, 0x0d65ccb8, 0x7f4c99c5,
0x31ee65e3, 0x9487dec1, 0x4f068026, 0xab51e2da,
0x9b732d6c, 0x93299ced, 0x15b3f839, 0x32b05593,
0xe1688aec, 0xdcd09a64, 0xce4eb64e, 0x8e049a34,
0x9b9bf8a6, 0xb0d4764f, 0x00b53355, 0x524f8beb,
0x70e777cd, 0x598fe135, 0x6f525c00, 0x78dda8b5,
0x8d4e92bb, 0xe442880e, 0x911adfe2, 0x43cb5caa,
0x57cc9fad, 0x2eb52866, 0x0186a0ce, 0x45ed00ad,
0xc63d6db6, 0xe73e3dfd, 0xd9e74321, 0x0d64c543,
0x1ec0f665, 0x08a0af93, 0xd31a55fe, 0xb9e04ade,
0x31bb0ba5, 0x395714a3, 0x21107d85, 0x26e23a76,
0x05c54ef3, 0xc6998821, 0x8fd2bdc4, 0xafe6c624,
0x34e26076, 0x5c910540, 0x7b7f781d, 0x1ef22d39,
0x7022d48f, 0x48dfed04, 0x6c2e77cd, 0xdc2aee6a,
0x23d9bbab, 0x11f22581, 0x3eb2111a, 0x88e0bff3,
0xab706776, 0x8a89d9a9, 0xb2df0707, 0xed4d3529,
0x04b8e9fa, 0x1f8fea04, 0x4cc5203e, 0xeb6edd78,
0xbb50848b, 0x983c0557, 0x26143e58, 0xb7e16746,
0xe3cea7a4, 0xfdbbcc0e, 0x0dc480fb, 0x8f7712f3,
0x54e4657d, 0x422fb382, 0xffd64810, 0xfc659d69,
0xfe88fe52, 0x8d3b850d, 0x0a680629, 0xee59771e,
0x3d34f1e0, 0x021501cb, 0xf103673d, 0x99013830,
0xa6bbfd02, 0x724e4d50, 0xb7ae0e47, 0xea4d3701,
0x6a7932cf, 0xf2b1ba1e, 0xd5a44d49, 0x3685d2f6,
0x9870089d, 0x74ea78f6, 0xd61112e0, 0x616eb512,
0xb8775ffe, 0x957934f1, 0x3204598c, 0xe9df2246,
0xcd4abbc4, 0x912a84e5, 0x40be7165, 0xac9754f8,
0x84d3d1f5, 0x4779da25, 0x7ba68cd4, 0x451defa2,
0x87b7cdd8, 0x67dfba93, 0xd2c2b4c3, 0x76084909,
0x138b6516, 0x01c1683f, 0x7e364744, 0x826c0ee6,
0x36ab715c, 0xd29bf0b8, 0xf63e67ff, 0x912887b2,
0xf91e60ca, 0xdae4e24c, 0x9fd92fe4, 0x9897f7a0,
0x56756c58, 0xc7f01eae, 0xaa59f086, 0xebdc5f10,
0xba58f9b2, 0xcaa6322e, 0x5861655f, 0xd99cdabe,
0xe2b6c759, 0xb369dc65, 0xcee7008c, 0x4621a5db,
0x2f2ea3bb, 0xe4537616, 0xcf1814d3, 0xbeb3dcd2,
0xb3545c2c, 0x1b94cf88, 0x85b70493, 0xc10f17e9,
0x55c69d5a, 0x456d0841, 0x8429ff62, 0x628d4444,
0x73b93123, 0x79494923, 0xda158af0, 0x6dbcbc29,
0x20d3c76b, 0x4dd69e35, 0xc6ad2790, 0x05e7563f,
0xd26e07c9, 0x55b5d517, 0x975c3601, 0x3478e0f2,
0xc27a1e75, 0x5038699e, 0x3208b15b, 0x02a266b5,
0xae36852b, 0x7604390d, 0xa5759807, 0x88c30928,
0xe77747d0, 0x11101245, 0x693a6778, 0xaf3bf9d6,
0x34abac1b, 0x1a370639, 0x81b01ea6, 0x09a72d9c,
0xb20cbed4, 0x2bae7772, 0xfe00d576, 0x442e5cf8,
0xeba0278e, 0x4c8d721a, 0x9570e322, 0x241b783d,
0x7b238de1, 0xce269ddb, 0x0867929e, 0x988b1dd3,
0x25942985, 0x5130e3f5, 0x713e37ba, 0x0d8bbb66,
0xf36e6f15, 0xd519ee7e, 0xb8934246, 0xd880d874,
0x020db7e5, 0x736c6c18, 0xdc36a969, 0x8430ff55,
0x4d4e92bf, 0x7643fd2e, 0x70228380, 0xf6554132,
0xe088ee76, 0x45e2dab8, 0x70320758, 0xe6c02af5,
0x2b6db81d, 0x9376f8a4, 0xd75ad499, 0xe764dea6,
0x28867f86, 0x35aa6da1, 0x26fcc15e, 0x62312f4c,
0xb3af9227, 0xbcf2f6bd, 0xf92ba037, 0xbff3eb5b,
0x51560099, 0x6996c080, 0x0df6bc7b, 0x2e7761ac,
0x23c96da7, 0xfbddee75, 0x4dd5590e, 0xa5c9bdce,
0x5e9394d9, 0x5072b1e4, 0x42cd7f66, 0xaa62ea89,
0x7faa4164, 0xa2c95ec7, 0x16f506ac, 0x518512a2,
0xe8e11f8c, 0xf77972c0, 0xfaccf28a, 0x2a03e569,
0xa07fc98d, 0x5cd27cc9, 0x6ff8c67b, 0xe9e976a8,
0x846839d7, 0x0c12dc37, 0x5420940b, 0xea939d23,
0xe40b4812, 0xca4a9bc6, 0x57c994f5, 0x36d0e7fc,
0x38740e1a, 0x8a5644f3, 0xd9017e85, 0xd9cd30f7,
0x69a079d6, 0x5c749841, 0x056de8e6, 0x9b5b2a0b,
0x990c9993, 0xb1c92e35, 0x841ebf2d, 0xfd149e04,
0x195e9d0f, 0x60ffaeb0, 0x71b68c0c, 0xe30de8a3,
0x32972a04, 0x15402d7e, 0x0aa24953, 0xd563748d,
0x672d71ef, 0xa2891354, 0x2d9406b3, 0x622fa5aa,
0x80f63833, 0xe0ff5cea, 0x32d3a493, 0x8d28b4f9,
0x88f5a69e, 0x71f8afc8, 0x77d89011, 0xd2ad4edf,
0xcf279567, 0x0b46c67e, 0xce45a822, 0xedeb1074,
0xb873196d, 0xe4ea5d56, 0x2cde6c71, 0x8b8bc8a9,
0x5edc84b3, 0x4917aefd, 0xeca520d3, 0x7fe0f36a,
0xa511be53, 0x48289ec5, 0x297797f5, 0x1607b7aa,
0x369d13e5, 0x5dd829d1, 0x48470d6f, 0xe41a208b,
0x21521695, 0x25eac644, 0x1bb06c8f, 0x0a58401c,
0xa60dc40e, 0x805ae3c4, 0x1db978c7, 0xda25a394,
0x893bbb3b, 0xacdd222c, 0x0e7d1ed1, 0xb3909e3c,
0x679f78f2, 0xe311bb1b, 0x9e683f43, 0x5296cb02,
0x64ec64e1, 0xa28c5125, 0x92b65a1b, 0x555844fb,
0x5193e3fc, 0x14ab89da, 0x48808c10, 0x233f84c6,
0x188ae123, 0x4263c040, 0xc6ca07cb, 0xef3e3871,
0x29b56cdd, 0x726e8cd2, 0x683814ed, 0x96f3f3e6,
0xe32393c8, 0x6f3af473, 0x4b7cd60a, 0x131cd731,
0xb108f665, 0x7b8c4d97, 0x663b6d0b, 0xc74d8a8f,
0xc0175639, 0x1fe56c43, 0x67524206, 0x799eab33,
0x915cf2e3, 0xb17d6f2b, 0x43e52ee9, 0x5ec3d285,
0x15a3317e, 0x97759add, 0xba4d0415, 0xa7fac8a0,
0xfb6b0328, 0xdd5df817, 0x8a914956, 0x6c2f556d,
0x25233371, 0xa57db457, 0xae9cf773, 0x8bb6a7de,
0xb65ef28b, 0xde25141d, 0x68d748af, 0x0e6b82e7,
0xa1e917eb, 0x5b2868a2, 0xa8c9bb1f, 0x4cef038f,
0xfbb7b5c4, 0x19b7e97e, 0xda0a84ac, 0x0715d256,
0xab1cf391, 0x83e7de23, 0x0c1e354d, 0x87d7ebab,
0x4acf63a9, 0x4c43df27, 0x86b127f8, 0xbf57f0db,
0x8d264119, 0xd3a98e47, 0xc434cb9e, 0x4b07e662,
0xa6fe0cf4, 0xe7bc1370, 0x9d0906f7, 0xb47fe53b,
0x9bc8acab, 0xd16a938f, 0x853ba91c, 0x7f7f8f89,
0xf8eec6f3, 0x3bd26744, 0xa3a9da0f, 0xfec308f3,
0x3c5fd8a2, 0x085ae764, 0x532c1de3, 0x2a7edfb4,
0x668a8b33, 0x2e25f455, 0x1e861e6f, 0x39893759,
0x0b6ec5ab, 0x2fdaa6c3, 0x3684b11b, 0xd6d41e99,
0x947e3a0f, 0x2db7db5a, 0x5ccc0d9e, 0x5ebc6cd2,
0xcf17e9a9, 0x328a0581, 0x76381716, 0xd7aca540,
0xff763393, 0x98aa01f5, 0xa884d961, 0xd9800dd9,
0xcc85c498, 0x14736e19, 0xccd62a03, 0x8c5c409b,
0xc9294b28, 0xc34404b0, 0x394ee46f, 0x47b7a4be,
0x0e49bed5, 0x24715d34, 0x535524a9, 0x478e7dbf,
0xca9aba60, 0x81a79425, 0x01127689, 0xea9a0d72,
0xb22691a0, 0xda0a22a4, 0xd9fbfe7e, 0x09af89e7,
0x1c9ec0c3, 0x2aba2ef0, 0xfe049c48, 0x2d79aee0,
0x9a47a7c2, 0x75574ae4, 0xa2f20379, 0x86b71378,
0x1c00b1cd, 0x5a4dc889, 0x1498aa32, 0x4684d831,
0x8d20bb85, 0xe451e88b, 0xb1b13962, 0x380f90a3,
0x48add03d, 0xe215474d, 0x9f649c93, 0x438b6223,
0x9cb220a4, 0x65de3f9e, 0xfe2d9c84, 0xa4df9ee0,
0x408e6eb8, 0xaa0c012c, 0xb3a520a9, 0xa1f02a65,
0xd9d6da35, 0x9fad7ed1, 0x4a7fdf3c, 0xf25556c7,
0x324f1c48, 0x9ea088bf, 0x36e6dcae, 0x9b35b1b3,
0x9196471d, 0xc712a5e5, 0x76c3d21f, 0x095dca88,
0x5870dd14, 0x58496a3d, 0x59afc05c, 0x4182c37e,
0xd1b26985, 0x498959f7, 0x6b1667b2, 0x11e56e40,
0x457c9af6, 0xe2cd22f6, 0x3a7c85d5, 0xec48f56c,
0x76b469b2, 0xad6fd747, 0x46187900, 0xb431e2fb,
0x797108ac, 0x682f5a37, 0xe6ff6dc9, 0xa032b44b,
0xedd94225, 0x539523bb, 0x014e3485, 0xd80603b2,
0xbb3c8e17, 0x22336bbc, 0xdeb9db84, 0xdd85e385,
0xed525dc7, 0x3cdfdd79, 0x4a141ad9, 0xfb0a9342,
0x79a76d55, 0x1d4daf24, 0xddf62a9c, 0x41b7496e,
0xa251f1f9, 0x77461c1a, 0x811e489a, 0x0e05448b,
0xf3dcc476, 0x965a09c2, 0xd7990d5a, 0xb55b28a7,
0x1da84808, 0x78a742ba, 0x161be658, 0x2b55bd4a,
0x7a8af153, 0x20c141d8, 0x332a03fd, 0x75fa5a93,
0xd5090f31, 0x034cc7e3, 0xaac798bb, 0x4d0cfcc9,
0x4202075b, 0x661996f7, 0xd36c30ad, 0x0fde48ad,
0xa350f0a6, 0x8cc32896, 0x81f969aa, 0xe93c7a2e,
0x168b7344, 0x5b859061, 0x308071bf, 0x476b94fd,
0xafea0602, 0xe955c337, 0x40927e51, 0x12271667,
0xc2ee147b, 0x7f03f946, 0x096d1f1e, 0x41283646,
0x3d11fb73, 0x5c45cf4a, 0x7d8638e6, 0x3064ebf4,
0x2b4a9324, 0x6ce275f6, 0x0488b39d, 0x19aa36a4,
0xa49cea96, 0x28c46cd9, 0x7bea4cd3, 0xdbe580fa,
0x27f79d79, 0xd7da526d, 0x0299a9f0, 0x4ad6bbdf,
0xbc76ea39, 0x5cc79e20, 0x2b78e482, 0xd34cb7f4,
0x38cc1d9b, 0x83d2a644, 0x346c382a, 0x60e5ad0c,
0xdf5f9328, 0x4dc8cabe, 0x53ae3e72, 0x20b116d7,
0x4fa975a7, 0x8d4b38a1, 0x20dae57c, 0x9571d158,
0x0e1756e5, 0x11f34e0c, 0xbd0a0fcf, 0xd0ab0b04,
0x8b9e2b4f, 0x94ca4409, 0x5723ff3b, 0xdede7c31,
0xffce4e48, 0x1ae2d457, 0x74614f6e, 0x9fa7e9d1,
0x01d8b806, 0xed811297, 0x8b54c1b2, 0x2c2ecdfd,
0xe0765947, 0xf602aa5a, 0x9f943dd8, 0xee08e149,
0xefb3a022, 0xa4c7651b, 0x15c3d1a7, 0x0295c27b,
0x190e50d0, 0x8773c5c9, 0x7d712087, 0xe64749ae,
0x2f4ffd61, 0xc48f2ae5, 0x05e0b7ce, 0x23649bb1,
0x7b3ff227, 0x333ce889, 0x5efd604c, 0x7023ca3f,
0x0b1797dc, 0xe38fc37b, 0xed8705f4, 0x49b7a689,
0x403e75dc, 0x280d9ab5, 0x2947481c, 0x5dc61b43,
0x44434998, 0x5061c901, 0xc5b9c69c, 0x3c5a3224,
0x564be2c6, 0x4e6d34db, 0x4707f4ed, 0x7defbac2,
0xf02ea03f, 0xaf2cfb61, 0xe368509b, 0xa625f72f,
0xa016f98a, 0x12ef2ae0, 0x811eb709, 0x0942f83f,
0xf4de8eab, 0x75ebbfe6, 0x27bc1128, 0xd2746703,
0x8f8bbf28, 0x5f6c71b2, 0x963fbabc, 0x85c87248,
0x0cd7a7f1, 0x27917d2c, 0x17891395, 0x01fb88ba,
0x1da89563, 0xee9cb107, 0x4b99cdf0, 0xd390aac0,
0x861bae4d, 0x8f87b5cd, 0x7b566255, 0x70ceda60,
0x3402bf9f, 0xe8e25b59, 0x6331cc86, 0xaeae6b42,
0xbf06ed27, 0x9ed14c98, 0x74bac954, 0xb2168693,
0x5c93d238, 0xc6401825, 0x052d55d4, 0xf3e7f167,
0x55ce1f0b, 0xab8f473e, 0xc45fba37, 0xcaeeb339,
0x89bd98ec, 0x98418c39, 0x4d758dbb, 0x063f29dd,
0x2daf808e, 0x2682f909, 0x745413e8, 0xb5739bff,
0xc99d52f7, 0xe9324c98, 0x75681eca, 0x621d2d86,
0x73d436d5, 0xee94a7a5, 0x13ab7c84, 0x6bd7f43d,
0xf19fadca, 0x18c6811f, 0x3a5e8895, 0x062cebaf,
0xc640ca22, 0xcf6816c9, 0x3850f7cc, 0x4cc7a50f,
0x9db2d4ef, 0x28ffec55, 0x6a3af4e6, 0x3e2cd38a,
0x750c58bb, 0xc555f77c, 0xdf74dedb, 0x2dffee77,
0xa69548d8, 0x873bcae4, 0x612ef74f, 0x1f679443,
0x910228c1, 0xbd9fa6e6, 0x8961adb9, 0xebb22b40,
0xfea01159, 0xbf1be6a8, 0x6c2d1a71, 0x51299aab,
0x7f7c8721, 0xbd75362b, 0xe522c5ec, 0x2bb19c66,
0xff5a1659, 0x56cedfb4, 0x86096b85, 0x324c72e8,
0xa967edb0, 0xbcfb65f9, 0x6a54ad6f, 0x3141e57d,
0x7848fde0, 0x403ffaab, 0x49ad2d9c, 0x0936ef6f,
0x245b47df, 0xbea34eb0, 0x9efc0f92, 0xe275afa1,
0x59d6eec1, 0x8a112018, 0x8410d724, 0xef56a0f7,
0xbde3a486, 0x1d299ae1, 0x48d2fb15, 0xa087d9b0,
0xcc565832, 0x7ba49d19, 0xcf8921d8, 0x8ec34b17,
0xd49a4d1f, 0x08e493ca, 0x072538f9, 0xef05e8d5,
0x44c626b2, 0xd2a142b4, 0xaccd7880, 0x4abe1777,
0x080bb4bc, 0x1324852a, 0x8997350c, 0x9c9ced40,
0x8c8948cd, 0xe3f896b8, 0x7bbb13f7, 0x957abdaf,
0x78143d0a, 0x117cfae4, 0x11c59fe7, 0xfbe3f1db,
0xdc7b7b78, 0x137f1645, 0x98d68a60, 0xc57aaa6d,
0x85ac8534, 0x6d2764f2, 0x10b00643, 0x7d88b02d,
0x614acd50, 0x8b35b369, 0x15582aa6, 0x37f1ea20,
0x6d7395ae, 0x113d8f51, 0x24cfe401, 0x0e9ba567,
0x26ee60d8, 0xc2cbf841, 0x956401dc, 0x0e01171b,
0xe42ea13b, 0x04bc0061, 0x0f557178, 0xe1262888,
0x61e38aa7, 0xe70d77d0, 0xb591ea53, 0xdce69e60,
0x1208176a, 0x4bf75845, 0xacb16e8c, 0x570a361a,
0x388bad28, 0x76cc69e4, 0x639aac4f, 0xa04e718f,
0xfe5ce723, 0xd91f9c4b, 0x1b5e22f1, 0x8ba1d331,
0x0c9de453, 0xe751aa14, 0x1600e58b, 0xe43d1d44,
0xee3b20c9, 0x6c80b888, 0x67719eeb, 0x40542ae8,
0xcb19edaa, 0xb3436ecc, 0x1ebe0404, 0xe1ad40e5,
0xf6bc6d31, 0x8a1b875f, 0x9a659646, 0x4d4e7d50,
0x7cda4f24, 0x9944ab63, 0x19ff1ea4, 0x61bf55f1,
0xae2d9778, 0x002d75c6, 0x9c1eb236, 0x1b36b9a2,
0x0978fedc, 0x1caf0360, 0xf01c1bc3, 0x8e0d9611,
0x5ac927a1, 0xbe743f19, 0x56bc3d7d, 0x83597785,
0x9d4c50df, 0x036d7f0c, 0x1f6a50a8, 0x6ef45810,
0xa73d0c0c, 0x9a76be39, 0x02126b3b, 0xd7cfd3b2,
0x3e16fdf0, 0x967fe547, 0xb6162f4b, 0x365f5433,
0xd63e9b13, 0xc0c0b3f0, 0xae8e63b4, 0x770b1233,
0x7b3f7338, 0x14787761, 0xafe1cc2e, 0x264d868d,
0x2fab30dd, 0x3f6e6e7b, 0x007a2690, 0x73e6f990,
0x36b7144f, 0x04e7bd65, 0x2e19c263, 0x93412869,
0x577aafd6, 0xe386b7f7, 0xfd903bbf, 0x79277407,
0xd83a709c, 0x219b79e3, 0xa84e0f68, 0xaa78cc80,
0x72365c53, 0x287033d6, 0x7cc587e6, 0x966a4abb,
0x55e76904, 0xb77cb8ac, 0x2ee981cd, 0x8edd9387,
0x45ab946a, 0x397b12b8, 0x002855cd, 0xf689102d,
0x707381f2, 0xd127dcf4, 0xa3e4342e, 0x8324d0d1,
0xadb58687, 0x1baf9f0a, 0x5bb7b0f6, 0x34d9f5cb,
0xe58bc4eb, 0x0227a3c0, 0x4c9cc28d, 0xc042a772,
0xcabfac8c, 0xacf7a792, 0x38cb7359, 0x9cec3845,
0xc7c46407, 0x0ab0f97f, 0xd6cc4f7b, 0xe66429c9,
0x6ad90743, 0xc4a2931b, 0x4e327ffe, 0xebb55de7,
0xb926e9c1, 0xcb259448, 0xbaa42dd1, 0xe614da1b,
0xef9e2176, 0x00759245, 0x5c994c7a, 0x7e0a645c,
0x694e743a, 0x36956fd8, 0x010b7c5c, 0xfce78911,
0x73670095, 0x97489b8c, 0x8676257f, 0x52e147a9,
0x14966859, 0x6f91dff7, 0xa0584fdf, 0x9a3de7c9,
0xb8e953ad, 0x41c694c9, 0x831eff3f, 0x6b252a18,
0xb16d088e, 0x0e8a30ba, 0x5137b7eb, 0x1d237547,
0xe5fb36fd, 0xc39d4a3b, 0x0b7e2380, 0xf377cd43,
0x7a5c7e25, 0x3fc7e69f, 0x2efb1984, 0x047bd40b,
0x3ad64bee, 0x90577a2a, 0xd82cee06, 0x3b4490bc,
0xdc492aa1, 0xa25b45c7, 0xa986718e, 0x8007dea8,
0xca0afdad, 0xa9f6c41a, 0x42e5da6c, 0xa5941097,
0xf4b8c827, 0x9f76d9d8, 0xe7896df5, 0x7cf58fc0,
0x4b01befe, 0x1d628634, 0x0e96e0f8, 0x924a1d5f,
0x256036ef, 0xf8e107db, 0xa5ada937, 0x39f3ed3b,
0x208328ca, 0xbccc3570, 0xfbde42d1, 0x64e77252,
0x3f1bc2fc, 0x1575b867, 0xd860cf01, 0xbcb98edf,
0xed3c293e, 0x800394d5, 0xc4bc714a, 0x4efe4c0d,
0x9ee1d7ef, 0xd5e062ab, 0x0843c881, 0xdf019ae4,
0x4af46a6f, 0x8c9fe5c3, 0xdc6c6e77, 0xd75c0cec,
0xcec35564, 0x71334ac2, 0xdf363581, 0x2dfd9830,
0xf84ccf64, 0x1c4aec4a, 0xbeafb14c, 0xdaef481d,
0x2a772efc, 0x93c549f2, 0x4f733c18, 0xd8d82509,
0x0771fe19, 0x11f7c437, 0x3f3cb501, 0x903b6bbf,
0x5021734b, 0x50f80d33, 0x00359bfb, 0x17a80d07,
0x6f536827, 0x3abae18a, 0x553f7174, 0x97bc1306,
0xe455e7c9, 0xab604d4c, 0xa9e03f7e, 0x552f3ce6,
0xaa60b2f9, 0x0745bbc9, 0xc7c81338, 0xbf23308a,
0xeea52e08, 0x9514d445, 0x6e6a66fe, 0x024fad21,
0x060abdf0, 0x20f0ef94, 0xee4ea797, 0xb0383565,
0xf2f070cb, 0x23217be6, 0xab9fdce3, 0xbd228aff,
0x5d62594d, 0x385ace27, 0x855207d3, 0xbaed127c,
0xaf2f3f66, 0xd65d597c, 0x675bd5b1, 0x6f1fa07e,
0x09f907e7, 0x0c491249, 0x52c62ae5, 0x4e6dbdeb,
0xf1c3fd02, 0x7354de5f, 0xce88f882, 0x105c63cb,
0x2f3f2f8c, 0xb6e7751d, 0xdbe8b19e, 0xfa95cb3d,
0xb69fee40, 0x8641913a, 0x526faf61, 0xa4111e19,
0xffdd2674, 0x765cda90, 0xae047dd9, 0x4c7aca5d,
0xf9c19216, 0x78b23edc, 0xc4666945, 0xa383ac51,
0x45768e39, 0xef201541, 0x46800ac1, 0x346bb330,
0xcbf522b4, 0x152100c8, 0xb1af161c, 0x6f4e1fbe,
0x1e1b6e7c, 0xfedb92df, 0xefb672c2, 0x3cb24d1e,
0xf83ddd81, 0x548f9ce4, 0x0fdbf9f5, 0xf3c4815c,
0x4f0d8c68, 0x409d40ac, 0xdfc1bbf0, 0x247e94be,
0x54ab6bf0, 0x91976546, 0x8863afdb, 0x554a959e,
0x41b29a17, 0x8d0cde10, 0xd9dc9fc1, 0x7831dd09,
0xa1a67af5, 0x66285679, 0x8f7f1a69, 0x9609f5c2,
0x8e179d1c, 0x7b47dcc4, 0x158b6591, 0x318f3dbb,
0x06540d35, 0x67781cd8, 0x43170f88, 0x875198bb,
0xb591d790, 0xcc679cb6, 0x64a4dac1, 0xdab79d2a,
0x3f5893f2, 0x19fe090d, 0xaca409f5, 0xd2cf8a6a,
0x01ee9e08, 0x3055ecd6, 0x0ae8b0d8, 0x7ffec46a,
0x997e5778, 0xe3bad2ac, 0x97ce3272, 0x976e3d5b,
0x2fb0e27b, 0x278251e1, 0x29742561, 0x15f05e86,
0x14cbac05, 0xa6642d59, 0x8c528bdd, 0x73cda57b,
0xeb2ff50b, 0xf098bb41, 0x5134d8c6, 0xa3636786,
0x601a6bf6, 0xc0595be4, 0x99b03e85, 0x17c274a5,
0x7145dec3, 0x38654382, 0xdd987f55, 0x6727d497,
0x93b2026f, 0xa2cf1a92, 0xf6f28ad3, 0x86fa6ed0,
0x8667d1d0, 0xdb421974, 0x0459bed0, 0x64b32507,
0x7e340503, 0x0cb9d0b1, 0x04e49074, 0xe35509a3,
0xaf36efef, 0x2bcab7c7, 0x0f1f1258, 0x0c094f1d,
0x3e3272e0, 0x12a64a9c, 0xe0d543de, 0x6161582e,
0xe3fe247a, 0x8c89e84e, 0xbb101ed1, 0x1630a7b0,
0xe2a55f37, 0xf17b9cbb, 0x1ce9907d, 0x45c44178,
0x45f5f19e, 0x89c7240c, 0x94b30494, 0x655fa184,
0xd44c4d6a, 0xb979e586, 0x15f03c34, 0x59d6d976,
0x499d32de, 0x34f1db38, 0xeb1cbeef, 0x62724eb3,
0xad9eaa67, 0x1a2c5ad2, 0x426feeb2, 0xdfb8e03f,
0x986eeede, 0x9530745c, 0x8048c985, 0x072c7a24,
0x3a39a895, 0xa897f332, 0xe02b6525, 0x1740e46f,
0x36c34914, 0xd166b96e, 0xca2afc44, 0xee32043e,
0x0415ae14, 0x85b6eae5, 0x4c32265b, 0xba0e2be5,
0x0f06d460, 0x79ea7c65, 0xc210065f, 0x1d6e24e4,
0xaeff9ea3, 0x84f333c9, 0x0b30efa4, 0x9cc34011,
0x402eb9e3, 0xbaaeb052, 0xcd53cad3, 0xbab26aa3,
0x5712b1af, 0x96ca09ae, 0x6ca8c803, 0x9d1f1829,
0x5b5ee6a0, 0x2e90a3a6, 0xd18dbe03, 0x1e346c59,
0x6dfb82a0, 0xeed26c81, 0x3ca27910, 0xa4bdfce1,
0x12912b2f, 0x3c696487, 0x0b8446f6, 0x78f2346b,
0x0a662cb9, 0x24cb92db, 0xa76cf8c7, 0xe05cc463,
0x58a4ed64, 0x871a8cf7, 0x578154ed, 0xaebb8eaf,
0x43f2aae4, 0xe0ebb4ef, 0xba0436b7, 0xa1f8660a,
0xcdb35e97, 0x9fb8b72e, 0xd0527599, 0xda39a87a,
0xd0924eae, 0x68a7f7da, 0x37522dcb, 0xc781f106,
0x3e1c880d, 0xeed88686, 0x2e40ce6f, 0x77a1a722,
0xd9dec668, 0xf915cc91, 0x828d59ae, 0x4fe1b8a7,
0xd5784888, 0xaaca55d6, 0x3d1f66d8, 0xf9701aa7,
0xffaeac74, 0x5d0f61e4, 0xfb93391e, 0xcca93201,
0xc956ff62, 0xf0130bef, 0x011bc191, 0x22d0e455,
0x85cf6aea, 0xecb52b06, 0xdc158d4f, 0x9c5ca3b1,
0x15e02d07, 0xbcae34f5, 0x12189bab, 0x74c3006b,
0xa1bb6dfc, 0xcf6ffe58, 0x0ef6a615, 0xd6d77e3a,
0x932af360, 0xec75ed24, 0x02b42899, 0x85749119,
0x5afcc6e8, 0x0738bbd2, 0x74abf75c, 0x396e70d1,
0x3d5c08f4, 0x85360c20, 0xbd9fdd00, 0xd691d252,
0x69e8f428, 0x2df1b405, 0x3e26d0a0, 0x2170c376,
0xee5adc06, 0x278135b4, 0x6f985120, 0x8095e749,
0x15083809, 0x32744190, 0xa654721d, 0x0399da46,
0x6bbcdfe1, 0xf2e393bc, 0x79f44da6, 0x331122ee,
0xa7079298, 0x5957bf7d, 0x819c14f9, 0x27cd8fec,
0xce4a2505, 0x0081a803, 0x247f91f9, 0x65707628,
0x666d03f0, 0x2c552c70, 0x1299eb14, 0x4aeb2f5d,
0x91c6788f, 0x3e7eb8b7, 0x8cf87faa, 0xd6ad91d7,
0x09001cb8, 0xbb0e0e9c, 0x69e34cb6, 0x8c327667,
0xb131e466, 0x6cedd8db, 0x6b69897b, 0x912ab8b2,
0x279135c8, 0x47fb76f7, 0xe2d848dd, 0x35eca5c1,
0x36b03a9f, 0x4a78f3e2, 0xb2e7a499, 0x7b8ee42c,
0x92f81ae4, 0xf6211333, 0xddfad07d, 0xd5a29420,
0x975ba3c3, 0x8b45bdde, 0xf87ad6a1, 0x0f6066d0,
0xb4824a98, 0x34302669, 0xd743a21d, 0x75147919,
0x23c3a0a1, 0x2f752dd3, 0xe0a481b1, 0x2ba678a7,
0x0c30c7c8, 0xc1ec3260, 0xac7e1e8f, 0x738818aa,
0xf5296aed, 0x9f18f56b, 0xe45cc378, 0xe246eca2,
0xcd972e4e, 0x130d9f58, 0xe15bed18, 0xe7ac378c,
0xcbb3d474, 0xb8388d61, 0x5eb363c8, 0x5457c619,
0xa9898da8, 0x409d9fdd, 0xbce87977, 0xeaacb859,
0x4b9d9d15, 0x2be4cc15, 0xe551dd92, 0xe746cfc6,
0x7f60048e, 0xcae0aafb, 0xf5f76ca6, 0x1d33b579,
0xc0b76c58, 0xdf8c7b26, 0x04dc16e2, 0xe1d00d31,
0x3af698a4, 0x1af8cda9, 0x396c3a4a, 0x7a8bd6a7,
0x93210650, 0x702d49a9, 0x2407b8e8, 0x7930eaa9,
0xad13dd0f, 0x7b1d18e8, 0x08c47061, 0x1ae4732e,
0xb8d46a2a, 0x0dea5023, 0x367f47b7, 0x9adc07d8,
0x8983aeba, 0x614e7aa7, 0xbe8cbe73, 0x74060785,
0xa4f79b3d, 0xcaf925c3, 0x1a6bba98, 0xfdf5e06d,
0xe6647f81, 0x1b2a587d, 0x38e4d0a6, 0x6f480736,
0x306135ae, 0x35902f8d, 0x46d165db, 0xb6556e05,
0xe2a6e2c4, 0xd792c8b7, 0xa7fbd2ea, 0x70c887d8,
0x41ce31f6, 0xbc25cdcb, 0xc6c38d7c, 0xe423cc5f,
0xff65d1f5, 0x7ba0ed5d, 0x987ca409, 0x2efe6c08,
0x584612ba, 0xecee13fd, 0xc8ff094c, 0x3c515694,
0xb6da8495, 0x8728e5cb, 0x0bb7791c, 0x01423d67,
0xe70065f8, 0x47bf1ea0, 0xf9fa9a2b, 0x0c39dbec,
0x6e868093, 0x34693665, 0x5a72a358, 0x9b5aaf57,
0xe282cb10, 0x3a976445, 0x6310f592, 0xfdcbc3a5,
0x1efce5da, 0x9d7adf5d, 0x8a22bebf, 0x8c74e51d,
0xbb757b08, 0x5e60ebec, 0x8c061c12, 0x1a98bd42,
0x98235386, 0x5b9979e6, 0xa9a1c1d3, 0x74da81b7,
0x26159b04, 0x968f8f3f, 0x5dc721af, 0x38983da1,
0x3081b703, 0xf74afd45, 0xe0d0fdf8, 0x4ca4a5ec,
0xa77f4e5f, 0xbff6e1f9, 0x0d70f10b, 0x2e4d5d65,
0x2c225e52, 0x19cd05b2, 0xab5b9529, 0xa1807897,
0x919b46be, 0xe0af3fb5, 0x677cc373, 0xfd9e8a31,
0x77ca0d01, 0xa6bb4e31, 0xae6ee008, 0x566613a0,
0x868c88d5, 0x86e3b52b, 0xd195e8e2, 0x7ef8442b,
0xe5b38248, 0xc2708612, 0x8866bcf7, 0xc9b33039,
0xccd1d850, 0xa7132d8d, 0x92373757, 0x05850eb6,
0x1f3df27a, 0x1beccda4, 0x5c7ede4e, 0xa7913287,
0xf408ab93, 0xe0ae9332, 0x017640de, 0x59cc83c9,
0x82138281, 0x0f097ee9, 0x3a43f7c1, 0x46d35062,
0x640e440c, 0x4508fcaf, 0x2cb8c0a7, 0xb3c9d9dd,
0x3da51ff0, 0x8d563673, 0xdd827c80, 0x6708ad51,
0x6f5b4e82, 0xcadfcb93, 0xced6d301, 0xe80985a7,
0xafe67077, 0xfb442e94, 0x09f2a88a, 0x29faf1c9,
0x5e8a3aa3, 0xaf44fcc6, 0x2fded4ad, 0x62929f80,
0xd88bf250, 0x7d44fdb6, 0xd36d6d1e, 0xb0e2d07c,
0xe5ad8bb6, 0x14743306, 0x1e57a83c, 0xb1fb5d18,
0xca026cac, 0x2ab941f7, 0x44aa4f4c, 0x392d4f27,
0x7cc7fcc2, 0xed036430, 0x1da2780a, 0xa2a01b7c,
0x16549f66, 0x16e2a3a2, 0x2f3b8d3a, 0x12208183,
0x94d2633c, 0x7a7d1fb5, 0x6e178a39, 0xd683e3bb,
0xb37647b4, 0x789ba594, 0x3abef7e8, 0xa69f6381,
0xb78ac595, 0xd3900aa0, 0xb3dc867c, 0x6723cb3d,
0x5a4b12e1, 0x0d735efd, 0x9e142ca8, 0xde584595,
0x11634809, 0xbc2e720c, 0x15efe632, 0x6291ecad,
0xf7f99dff, 0xebc7f76e, 0xde3c9508, 0xd381cbf3,
0xd0744570, 0x0e10ab17, 0xe4fe8d27, 0xaffe05dc,
0x4c15370d, 0x886c8c2b, 0x78cefe55, 0xfe325ac9,
0x01d2195f, 0x765f26b1, 0x2ef0d1cf, 0xcf200828,
0x0244cfbd, 0x10c10237, 0x79eb25f8, 0xf5264d83,
0xb05b67f4, 0xe6792eb5, 0xb0256f42, 0x2af0ca05,
0xa2e5e041, 0x887fdabf, 0xecc25c92, 0x613f6601,
0xf118f26a, 0xbcd54fd2, 0x9acf5ea1, 0xbc7d6817,
0x9f88abdd, 0xeaa0e4b8, 0x75847573, 0xaacb87f4,
0x06b7acac, 0x1bdebb7e, 0x20515fbc, 0xc819d085,
0x56fa34ec, 0xb0b76726, 0x0eb9d1b5, 0x921f78ea,
0x7635cf33, 0x22d25167, 0x987c51c6, 0xbfe37ace,
0x5ac0a9ce, 0xc8cac00c, 0xbddb09ac, 0xec77e5bd,
0xa103c690, 0x4661a597, 0x96df82fa, 0xf9fa873c,
0xf24ce7a8, 0x102b8383, 0x474aeb90, 0xb8b592aa,
0xae2da94b, 0xf1fc9969, 0x82a0de9f, 0xb3234612,
0x111aa0f1, 0x4b05c3e8, 0x10a6eee0, 0x083d60de,
0x433d293a, 0x973f33eb, 0xb8b7f162, 0x6a786072,
0xa63ba303, 0x27edc82d, 0x577de011, 0x5e6e8be8,
0x27bca55a, 0xff903277, 0xc0495432, 0x2a6780f1,
0x2a70c68b, 0x98c8173e, 0x37235e67, 0xe229c198,
0xc9f86bb0, 0x38c1c747, 0x741118ca, 0x34235cc8,
0x348df0e5, 0x75be60a8, 0xacabc892, 0xf05a762f,
0x451d8c5e, 0x1235810e, 0xa5e0d7da, 0xe8f27cdb,
0x75a6edff, 0x7bff497e, 0x5601e61b, 0xb2fc6d4e,
0x784e35b0, 0xd7efd609, 0xf55b488d, 0xfda1aba7,
0xb926a7e9, 0x236b1409, 0x2a9d4105, 0x86a8df4d,
0x7fc4b36d, 0xcd9f6793, 0x2e15226c, 0x725675f7,
0x483a4e5e, 0xc6fd8b44, 0x7f42a1ac, 0x711e0128,
0x47e8ab80, 0x0f9361e6, 0xfa38a508, 0xd2e7d1c7,
0x91b81a95, 0x1cdf5f80, 0xef86cd65, 0x318a6275,
0xa84585d2, 0xa27c4541, 0xb26d8c5b, 0xf79b336b,
0xb51c2cc1, 0x3422c895, 0x953bf7d8, 0x71466705,
0x4f90f392, 0x402b5a42, 0xce5215c7, 0x5395c520,
0x453427a4, 0x436cf6c2, 0x34c5600c, 0x6899e759,
0x8ad6b901, 0xc31a8122, 0x29e1bc90, 0xd11bf630,
0xcf671862, 0xec095de2, 0x044bba82, 0x67b9abf6,
0xad843a1b, 0xafe02438, 0x4e82a2fd, 0x85e84ed7,
0xd2ba6e66, 0xb5edcfe7, 0x476938fc, 0xa510493f,
0xe2d5c2a8, 0xea169701, 0x13d137dd, 0xe1c4a90b,
0xbe6e83cc, 0x86c7755a, 0x2747766f, 0xbd7e696a,
0xd8f8d213, 0x9d9c88c1, 0xcd516628, 0x173dbc33,
0x0dc00cc1, 0xa763983a, 0x6b63adc9, 0x3ce03a57,
0xa1eb02c0, 0x6ad649c9, 0xcdbf6697, 0x9d46ac43,
0x8032b000, 0x84da2dd1, 0xace559be, 0x64ab986e,
0xedc73cba, 0x47bcb0d6, 0x443f3438, 0x2af218e7,
0xc6d2fab5, 0x02258ebc, 0x9eec17f5, 0xd9a63661,
0x17d027fb, 0x282b006b, 0xbaff339e, 0xe18d91b5,
0x0c57056f, 0xbf10bab6, 0x9fa42084, 0x0e8cb3e0,
0xb93d1786, 0x25b72ab8, 0xa114fe9c, 0x2aa7b034,
0x72b537b9, 0xa63e4832, 0x8ff076d4, 0x7fb2d4ea,
0x87179a17, 0xea0f0d46, 0xf1e110e8, 0x5c93fe68,
0x75e43201, 0x5c2d3a36, 0xc8416b4b, 0x396db131,
0x500817f7, 0x4c427e44, 0x35736e80, 0xd1d85ace,
0x2ba3bf2b, 0x4a80d8d6, 0x425073e2, 0xa10ca5c9,
0xfb6c8f7e, 0xae267a9c, 0xf54920c4, 0xfbfe16ae,
0xb0196135, 0x2888b4b1, 0xc86af3fa, 0x74726fed,
0xb8a1bbcf, 0xe539699f, 0x4946dd3b, 0xb1fab1e9,
0x96424854, 0xf77ee09c, 0x9c42d795, 0x65012123,
0x879a8230, 0xdc0c2308, 0x7636fe4d, 0xf8cd3d9b,
0x24a5e298, 0x0614ac66, 0x8b18098e, 0x6e318b0d,
0xd3fc4440, 0xea11bb94, 0x5e3194b6, 0x74993558,
0xa2bd17da, 0xac24544c, 0x1a24c0bc, 0xf9d81e85,
0xeb0286b3, 0x689ec98f, 0xe94be40e, 0xbc793302,
0x3a202c6e, 0x51c8b8a7, 0x1c817c13, 0xe2afac8a,
0x847e915c, 0x0101fecd, 0x70df24f3, 0x212bb797,
0xdf622044, 0x814605a4, 0x970174f9, 0x4a8a5c8b,
0x9e053110, 0x49edb90b, 0xdba3994d, 0xfbebdd18,
0xc61e9767, 0x4e3ceb12, 0x756d9ff9, 0x3db2631e,
0x4313407f, 0xba3b4043, 0xdee1b661, 0xc273073e,
0x00cfe6e4, 0x369e525b, 0x80feb8d9, 0x29b7fcd3,
0xc084be62, 0xf2e7f774, 0x20522620, 0x5d320b10,
0xe7a6b785, 0xa250e4bb, 0xbe71bfe3, 0x0af7a207,
0x0791dc09, 0x0e76c202, 0xb8cb2a4d, 0x9cd57d0f,
0x4d393bb0, 0x3790c583, 0x91831c50, 0x5812d115,
0x7d592a9e, 0xf305e0ff, 0x96371d40, 0x12c2faae,
0x0e0f1afd, 0x8c8490a2, 0xd5db6db1, 0x00b7c6dd,
0x6f732b4d, 0xcdae2411, 0x54c634be, 0x207446bb,
0x0a7dde92, 0xf2d85bfb, 0x428090de, 0xd1139bf5,
0xa50b8b5a, 0xa4d2c005, 0x9f9224be, 0x33416798,
0xa14404c0, 0x40aa594a, 0xa5c448d3, 0x59bfb22e,
0x74de9761, 0xd45f3c5d, 0x9aed0fa3, 0x9dd057d8,
0x18da8aa6, 0xe36b0c80, 0x992dbe37, 0xeb4a96d1,
0x25c9db94, 0xed264076, 0xb23eab66, 0xc4d983d1,
0x39f11da4, 0x72f5cf3a, 0xa7c4f7ca, 0x43e528b4,
0x9ee87987, 0x68106620, 0x31f52433, 0xcdfbd59d,
0x4c1ec259, 0x510570e6, 0xd3f24f0b, 0x45fc7278,
0xd1dc6833, 0x5769b2af, 0xf8794f53, 0xec5a1b07,
0x839d0fc7, 0x738db681, 0x8d30cfd3, 0x23cbf11c,
0x573e5a15, 0x69a2a49a, 0x5ae58c3a, 0x74005593,
0x051c214a, 0x181f1d1e, 0x4e2cd168, 0xbd176479,
0x3b90eb85, 0x5e82ab25, 0x30f09649, 0xe4a4a736,
0xbbd5c968, 0xb9cf54e3, 0xcadc7c1e, 0x207b64b9,
0xe3a6057b, 0xe7d1f08c, 0x2787e3a2, 0x798629f5,
0x051f5a81, 0x59b89f76, 0x49491246, 0xc23df6d0,
0xe4c785f2, 0x28327e00, 0x248a2099, 0xf8f44d9e,
0x395d82f8, 0x67e93299, 0xb5b0067e, 0xa581fb2c,
0x4578ba11, 0x06422b83, 0xc68e78c1, 0x983cda60,
0xb9f057ec, 0x346d7f8a, 0xd90a1e05, 0x772e1e2e,
0xbf8c507b, 0x06a46ab7, 0x950d09c7, 0xd29b864a,
0x2db02cc1, 0x65c9be52, 0x666a9150, 0x0f31d6d6,
0x7412eedd, 0xb83b1fda, 0xa2b7868a, 0x587c7ad0,
0x12f9b8bb, 0xb846b1a7, 0xba130be2, 0x25c26984,
0x7f91bdda, 0x6d9c1253, 0x5c0062b7, 0x0ae55f41,
0xb5ad74c6, 0xd62de79a, 0x61d10f4d, 0xfeb15e78,
0xcd6622ae, 0xfbd92752, 0x34b07a10, 0x4429304f,
0x96c9efc6, 0x27ddbc89, 0xc1480f76, 0xc2e2398b,
0xd8500033, 0xbfe47bdc, 0x2a55d97d, 0xc12aaa7a,
0xa920363c, 0xda44cd1f, 0x6456c07d, 0xde15b202,
0x984586c6, 0x707d1245, 0x642066a1, 0xc7bed748,
0xae485977, 0x3d6e39d8, 0x12e7454a, 0x7239eca1,
0x10ceabb7, 0x9488eb97, 0xb85787a2, 0xc9ec5005,
0x770cf88e, 0xc20f23eb, 0x2b8a860a, 0x46c87f94,
0x38f436a8, 0x468da8fa, 0x61a329dc, 0xe270b956,
0x0563d46a, 0xdc6863d9, 0x3fcfc28f, 0xa9cfb41b,
0x91a9d820, 0xe1806611, 0xe5cea0d8, 0xe6fd17d9,
0x83a2fc17, 0xf2a23d2f, 0xf274f594, 0x3d584116,
0x5bfca4b1, 0x77349ce9, 0x94665a44, 0x9638147c,
0xefe4666a, 0xd47ccca0, 0x7b6c584a, 0xf90d4861,
0x8cb13847, 0xe3606457, 0x84b2d081, 0xcf77d329,
0x944c6110, 0x0febc362, 0xf435e48e, 0x27248040,
0x41c60da1, 0x55a37a00, 0x3f2035b7, 0x021f31e6,
0xec337da2, 0x4bcb9401, 0xb63f929a, 0xd51260a3,
0x537f8522, 0x1300fb82, 0x7097b8a1, 0x0e08ca19,
0x69f82279, 0x7cd2e9cf, 0x1a0c7ad4, 0x0d1a9210,
0xb4615124, 0x2c1f49c6, 0xeda3bb44, 0xf7b3f356,
0x67bb41ac, 0x70c257e2, 0xad945132, 0x877aedb1,
0x8b0edcf1, 0x2fa629f2, 0x7ac13867, 0x3f80eac6,
0xe2c1875e, 0x29efa006, 0x94355cc5, 0x3b76abd5,
0xf613ab16, 0x4aae5a63, 0xc121c603, 0x44a2fce6,
0x987ec0cb, 0x9bc141ff, 0x3121cd62, 0xce68d88a,
0xa82d3d23, 0x49fe352d, 0x68e08c2a, 0x7024f429,
0x04b95c37, 0x8be76b1b, 0xdd311d8b, 0x4282bc4b,
0xc9738740, 0x6ef42ebd, 0x37091496, 0xc87444d5,
0xf6bd5d31, 0xc0980bed, 0x507d72a4, 0x1f74919a,
0x7dc03f3a, 0xbb3222ca, 0x2d6d7a86, 0x7af0a2f8,
0x1e66e7a8, 0x6b4b8285, 0x881846ea, 0xa246df49,
0x63e13055, 0xb7db2365, 0x21ecd938, 0x0a3ac6f0,
0x9f2ee17d, 0x088c0d47, 0xf9b04b0d, 0x98683310,
0xb902354b, 0xfd9cf22a, 0x8db050ba, 0x8bbee905,
0x441c2b2d, 0x384b0bd7, 0x4a00c41a, 0xe304f920,
0x892c3175, 0x19086e6b, 0x6de06cac, 0xdfc8169e,
0x12ed296d, 0x2d9039ab, 0x9394c630, 0x658b5abf,
0x9f783824, 0x21587a65, 0x25891e90, 0xfb9bed90,
0xd0d6ffb1, 0x2c1e66bd, 0x0f112a57, 0x34337dcd,
0xa30068cb, 0x93c138bf, 0xdc7f7c6c, 0x4362a6a3,
0xb936ceac, 0x8a0c1028, 0xaea2a81e, 0xee0fb25d,
0x16712ac9, 0xf89b6d12, 0x9e5e5d28, 0xbc98707e,
0x0ea6e826, 0x2bd120af, 0x7577aed0, 0x62d13a29,
0xf9c3640a, 0x7199d567, 0x37c30f6b, 0x1db335ea,
0xbbaef1e7, 0xc740c8ca, 0xcfaf939e, 0xa7849807,
0xd36254fa, 0x5bb5b031, 0xfc4e699c, 0x188bf6d9,
0xc9f9e87e, 0xc0125523, 0xcce9222c, 0xfd43e507,
0xa130299f, 0xbf19f542, 0x43a3692c, 0x2cb9a85f,
0x7f747fac, 0x83771d34, 0x87585e97, 0xce99ffed,
0x4a4506cf, 0x5ef49718, 0x36730699, 0x4ec1e2ce,
0x0250bc82, 0xf895d5b5, 0x5eab0bb8, 0x997fc9fd,
0x1d6f614f, 0xdcde28b6, 0x2e29e5b1, 0xc77aa311,
0x3e6aa824, 0xb7a3a3f5, 0xbfb32083, 0x60719177,
0x32fdcf21, 0x7e29c945, 0x61c85e49, 0xe2c04ad3,
0xe456afd4, 0x52d55c02, 0xb85d4a41, 0xe55fe2fd,
0xa395c95d, 0xfb1a728d, 0x094f69e7, 0x20250767,
0xaea6889f, 0x650ffa54, 0x5b51466b, 0x478a3454,
0xbd2ceed9, 0x39ab495e, 0x8f092245, 0xb4722d1e,
0x506c2c3f, 0x67aa7bf4, 0xc2c2cabe, 0x1e188ad0,
0xd2751073, 0x505b7e44, 0xfee01a5d, 0xe0ffb131,
0x1311d587, 0xb3ab6154, 0x4d9756f0, 0x3f367bcc,
0xe546a792, 0x36cffe51, 0xc4d2a996, 0x31794370,
0x9f0cb5c2, 0xca39776e, 0x5c2d32dd, 0x1fca0248,
0xc035fb0d, 0x6aee0bc9, 0xa3d93ba6, 0xdb0ff506,
0x08d63ff1, 0x71133d67, 0x10a4c033, 0x8d2116c6,
0x66fee4c3, 0xfa7a631f, 0xd345d297, 0xefb87306,
0x11557df0, 0x84114e7e, 0xbd816431, 0x69ad949c,
0xb5aafac9, 0x495b2d0d, 0x2b2b0279, 0x4539b4ff,
0x67fe5b60, 0x8c8f1174, 0x7f8f9e9f, 0xd920e38e,
0xe4ae1ac8, 0xadbbd9e3, 0x9aacc619, 0xd156a7a0,
0x14ceea22, 0x6a0eeabc, 0x023be4a2, 0x078f4352,
0xfeda77e1, 0x744e6276, 0xdc146546, 0x3e4be543,
0xb044cc13, 0x7bfc7991, 0x03491235, 0x22b923fa,
0xe2b0b718, 0x4cb87f02, 0x482bb8b1, 0xf807a4e2,
0xc658e36d, 0x3b11eef7, 0x7afe4edb, 0x383c0151,
0x14e47de2, 0xc51a08af, 0x2bc9f8ec, 0x17f852ba,
0x356a6c78, 0xbdd76bf0, 0xa19502a3, 0x9a09afd9,
0x5b1a33b4, 0x445f1ce5, 0x79a81361, 0xf5544d2f,
0xd251f0d7, 0x1a758140, 0x0bb6a973, 0x3f5fb7bf,
0x5baba285, 0x677ef139, 0x8001d2dd, 0x99606495,
0x50ec0e0b, 0x775e796d, 0x0868e5cd, 0x1b60f492,
0x7d4f6260, 0x7a67447d, 0x87c930b6, 0xfcaf741c,
0xff11ff55, 0x1c622538, 0x164f6ce9, 0x6e856371,
0xb2d7b6c4, 0xa0f80375, 0x6b7d49e9, 0xaa9e488c,
0xc3850469, 0x80b448c6, 0xa6e89784, 0x5c5a4e96,
0x9358ebef, 0x394decd4, 0x08e15478, 0xe8581029,
0x4319141d, 0xfd593c25, 0xdc347fa4, 0x71f6e7c2,
0x48828849, 0xb46dcf38, 0xe4339ec5, 0xae14e971,
0x0f8832bc, 0x9cb40b4f, 0xdc9ba687, 0x01ff7574,
0xaf0b2160, 0xfd107997, 0xf1d78414, 0xdb6a7d1e,
0xf59ffc0c, 0x0505b95c, 0x780b725e, 0x6e8e043d,
0x1bdf20ee, 0x7124994a, 0xe3eca6d9, 0x9692aca2,
0xe387d8eb, 0xdc79d557, 0xc5d047cc, 0x1a653c91,
0xa1be4b91, 0xbe192611, 0x67182ca0, 0xf075f297,
0x9c81f763, 0xf7c60f4b, 0xf53ec9da, 0x61ae6d4e,
0x2495a2d8, 0x2fc64a6c, 0x4e1d3b35, 0x5757f5c7,
0x1b0ba2ca, 0xafaa9188, 0xd83f9066, 0xcbc71040,
0x957e50fa, 0xd36b97d9, 0x4057273a, 0xbb389e17,
0x113ffd1e, 0x974aef19, 0x6e0e5989, 0xdf07e637,
0xfa194967, 0x8cc93def, 0xbdd797c1, 0x1e0fc44a,
0xf16113b8, 0x158103be, 0x08778b23, 0x9f1d21cd,
0x2d330d5a, 0x929dbc14, 0x63184ec2, 0x605f5936,
0xe466dbac, 0xd46e1d61, 0xe437b8bb, 0xaa92df5e,
0x3dd9f782, 0xfdea8da2, 0xd70bf2b7, 0xd4df55b6,
0xffb8f224, 0x5bbadb98, 0x94d290d3, 0xda31abff,
0x1d45ad9d, 0x4442fe4c, 0xdbd6aa5a, 0x9c9e0a83,
0xd44a86c9, 0x943ccf0b, 0xc2b91627, 0x03ce9f3c,
0x784649b3, 0x96c092d8, 0x2bb28f75, 0x71f1f877,
0x39fd54ef, 0xa9ca6ae5, 0xe19691e8, 0x18be9fd8,
0xe2dab935, 0xf0918e5a, 0x50d31846, 0x001100c3,
0xd38394aa, 0x862eaaf3, 0x11791dae, 0x543ce194,
0xca12f29b, 0xf449a023, 0xfcba36ff, 0x52c5c796,
0xf34f7c8c, 0x7c8bc949, 0x5b0183b2, 0x06ae31d7,
0x4a22e622, 0x8e76c12a, 0x86c703e3, 0x1e766429,
0x3da80a33, 0x68196ec1, 0x2dbc46a8, 0x49089d68,
0x82965f07, 0x60ade759, 0x5298cd93, 0xdcd961b6,
0x052501f6, 0x8ab4097e, 0x637e12b5, 0xb35173fa,
0x6efc7fb6, 0x1110b4d9, 0xa4638335, 0xffaea7b2,
0xf927f7e6, 0x39df8af6, 0x548e0b32, 0x9f742dd1,
0xf878d3cc, 0xfd3ac505, 0x0525836e, 0xd33de1d5,
0x650297ef, 0x92f5438a, 0xe6cb0953, 0xf3f2b63f,
0x8f54bf00, 0x4011059d, 0x79b9d9a2, 0xa73033d4,
0x11e55055, 0xc72be11c, 0x695d4134, 0xf0953898,
0x25fafaf5, 0x1ca858ab, 0x7235937f, 0xcb61dd9d,
0x79657366, 0x1a731d6f, 0xa10aa30f, 0x52dfcc7b,
0x8d5ad5db, 0xb598c2df, 0xd704213d, 0xaf866a49,
0xe63b0ec4, 0x8326de25, 0x8bdcded7, 0x75a40ea0,
0x2602666c, 0xd464368a, 0xe07f9caf, 0x24460db3,
0xee90dcc7, 0xfc643caf, 0x3c3508be, 0x5f09faed,
0x70855c22, 0xb9a134d2, 0xb25b04b2, 0x8e40af02,
0x4609b329, 0x6ef2f55e, 0xa09e8b58, 0xb13ff72f,
0xbe4e17eb, 0x3e3ab3b9, 0x919b38f0, 0x8b2b703c,
0xca31f456, 0x5d021ebe, 0x9b6a256e, 0x8ef6e0c5,
0xb35b563a, 0x80de5527, 0xe4b5615e, 0x8ed5e6c9,
0x62a09dd0, 0x59baca33, 0xaac7d22a, 0x6568d483,
0xef95b521, 0x96a0640a, 0xf1089bf1, 0xc1ef473b,
0x691ba720, 0x49130c01, 0x0ad790da, 0xe81af68c,
0xfcb52b4e, 0x837a143b, 0x72760eb3, 0xbf31fc9e,
0xd07dfbf8, 0x3c031232, 0x9af5c387, 0xe8255312,
0x2ad84e64, 0x6ef96801, 0xcd2ab3d6, 0x5196fed7,
0x707b3541, 0x9df09da6, 0x32fcb747, 0x5f1d5f3d,
0x56560f0e, 0x2034f476, 0x2e81f398, 0x53112255,
0x45747d57, 0xfe07e507, 0x4bda5881, 0x4a0ce217,
0xb76215a1, 0x6be986a5, 0x92b4859a, 0xf943db06,
0xc9879688, 0xb9d3481a, 0x1af20c9a, 0xbc3f0df8,
0xb5a94516, 0x7fd18e3c, 0xda8e9bbd, 0x8096a507,
0x904c3c2b, 0x1ce388c3, 0x4632c363, 0x5892a25d,
0x0c3b22fd, 0x7a9bee3b, 0xfbcbd4f8, 0xa581b6d0,
0x4987b2d9, 0xa5080ade, 0xcf3f2e7b, 0x464c0bda,
0x32fdc9c4, 0xc2640c5c, 0xeceecc63, 0x7b9bd5c4,
0xedb62743, 0x871da12a, 0x34b3ff91, 0x90772f2d,
0x8f98a6cf, 0x97320213, 0x6be5883f, 0xbca8e8da,
0x0155cdb4, 0xd94cbb20, 0x3189a5ad, 0xd65783e3,
0x80746164, 0x3424bb87, 0xf501c3ad, 0x2a98fb51,
0x3d5f7200, 0xfcbb8aee, 0x6f75d81b, 0xd442025a,
0x06ee6bb4, 0x45eef6ea, 0xedf3d8db, 0x0f1fba17,
0xa7ee72ea, 0x65afbb50, 0x3c7eb38e, 0x68109922,
0x13cca9d5, 0x38c1dc42, 0x5faec1e2, 0xfd91caa6,
0x745fee6e, 0xdc00379a, 0x05e685c3, 0x6859c7e7,
0xe6d534b7, 0xc7cccc7b, 0xb342c1a6, 0x3de96804,
0xabbd6568, 0x21eb6241, 0xc3358305, 0x7012c615,
0x92aa7da0, 0x7d7e2e09, 0xe2404fd5, 0xe39852b4,
0xdb74ab99, 0x26d964e1, 0xb42f1577, 0x3cabb45a,
0x5b9154d7, 0xb8d8850a, 0x97543536, 0xceadb214,
0xb0f33889, 0xde131507, 0xe306de2e, 0xf51c22c5,
0xa4663640, 0xa8932ebb, 0xe1a86c2e, 0x2a4f906c,
0x2e9e9d19, 0x5731d12a, 0x237df77f, 0x46daf350,
0xd4d35764, 0xb5ac8148, 0xa28f00c5, 0xf69ce318,
0x1c8ad0fa, 0x6d533ce1, 0xe01443a4, 0x68ae95ec,
0xa122d1a3, 0xc410de4d, 0xf5d2a74f, 0x81266910,
0x0ac4b751, 0x518b6e30, 0x34761379, 0x5f767d78,
0x9cda2ff4, 0x6aee40f0, 0xbad692f2, 0xd017dc48,
0xe9c5b5b5, 0x19b15b0b, 0xe100d3cb, 0x7c35bacf,
0xa56d3863, 0x26c024f9, 0x71fa158e, 0x6b8fb054,
0xc227b3bb, 0x8ab6772c, 0x9d6a06a4, 0x331294b3,
0x4749bd96, 0x8fa8424c, 0x282a4182, 0x8dd77fdb,
0x9b2c1be2, 0xeee3f207, 0xbd4e91e1, 0x2b5d5939,
0x04e2e376, 0xa291ee1e, 0x471e90e8, 0x9e8375c4,
0x3d03076f, 0x93d1a30d, 0xd37c89a6, 0x39a5544d,
0x2853435f, 0x1e1c99fd, 0xf566b487, 0x6893d339,
0xa88ba5d2, 0xb0e44038, 0xdec733df, 0xc7928a06,
0xcc2a373f, 0x165f38c4, 0x02b8add5, 0x61e47815,
0x116c57d2, 0x6b67c50f, 0xdd8ae800, 0xc1f6a03c,
0x8309af5e, 0x0f2c5b63, 0x779d5019, 0xb616b270,
0xc1a1a1b7, 0x1b1b2661, 0x9927b0fd, 0x07f5f1d1,
0xba22b9fa, 0xa54d7eec, 0xe05cc15f, 0xba960b08,
0x2ff8a219, 0x5dd09b73, 0xd86605e7, 0xcaeeacb2,
0x85a31962, 0x3b921d1f, 0xb2826458, 0x0a1aaef5,
0x2c5ff654, 0xa33d31b0, 0x4ccda15b, 0xcb319e52,
0x1122a597, 0xb843bfe7, 0x458a32ad, 0xa48e3501,
0x6ce0492c, 0xac6df16a, 0x6d1161ef, 0xaebf8bad,
0x161e6c19, 0x7b7d7409, 0xed09d861, 0x7f6b3ff7,
0xceb74158, 0xf4af4d98, 0x243cbfa2, 0x431ac884,
0xa250d7e8, 0x45ba8c96, 0xcbb8328c, 0x3e0025c6,
0x2212bd7f, 0x0b8645d7, 0x982bb115, 0xbb16d79e,
0x6d017fb3, 0xf19eda38, 0x96fa13a3, 0x50c9c6c4,
0x0cde0a16, 0x7d0231e3, 0x50e520fc, 0x068841c0,
0x79c5b7e3, 0xd05c7287, 0x9d24268c, 0xd6c86529,
0x74dd5f2d, 0x5875e945, 0x20a2f564, 0x2e33fce9,
0xa30b53ec, 0x3de3269c, 0xd90773fc, 0x3fe0fd4e,
0x0372211b, 0x759889b9, 0xc11357b0, 0x53ba3a32,
0xbd5b3f61, 0x6f0d8aba, 0x0a1ce4e0, 0x83a2f819,
0x5fee403b, 0xe56905e0, 0x4c3ecbc2, 0xf4942d75,
0xcc765225, 0xff18d629, 0xeedbb175, 0xef0be9c1,
0x3811969b, 0xfa2708be, 0xa06bd4f8, 0x097a718c,
0xcadf6135, 0x41990cf1, 0x5198f34c, 0x88529cb7,
0xe4791ed1, 0x744ad621, 0xd015a1b1, 0x91a1d8eb,
0x5e6ef569, 0x9ebfe89d, 0xc50425e9, 0x27d6f47d,
0x0b0f3360, 0x84ed39bf, 0x49f4a559, 0xd6270a6a,
0x0da209bc, 0x99ca1cc2, 0xa58d1182, 0xae3b8885,
0xef5e7449, 0xe4f73901, 0x4e4117bd, 0x5375cfca,
0x4769238c, 0x2ada151b, 0x5aa7626e, 0x408d6d79,
0x5c820b16, 0xdf021ef9, 0x24e41301, 0xa483c2c8,
0x35cba219, 0x299f9c47, 0x394b6fbf, 0x1c1e4ee1,
0x7ed4a725, 0xa5198ec8, 0x88aa866c, 0x53679e79,
0x1d059636, 0x73deea61, 0xab88d018, 0xf205a6e8,
0x2713f775, 0x0b1ed394, 0x4059b42d, 0x0213ac4a,
0x39085cb6, 0x5600cfe8, 0x52093101, 0x649fbd0e,
0x74c0702a, 0xe7629810, 0xa681aacd, 0x60eaa0a8,
0x72cc508e, 0x9e1d776c, 0x5e408e10, 0xa838335a,
0x2fd49374, 0x8b7b2d59, 0x2f316ab4, 0x75a1e5d9,
0x8f2c0096, 0x79403937, 0x011c00ab, 0x1f2117be,
0x18b9f030, 0x2c1e9b35, 0x4e637614, 0x1087e918,
0x6a880f50, 0xdab80288, 0xfb368f0f, 0x81e49f3f,
0x6d80b329, 0xc8b5bf26, 0x80a78d17, 0xc361dc54,
0xc2868734, 0x7378c8be, 0xb7e6b6de, 0x1f0d7ea3,
0x64f0dca1, 0x0b05acfb, 0x1b2558be, 0x7887ea9a,
0xfd8e6536, 0x60a59aaf, 0x41cbb807, 0xd5aa6d97,
0xd5f292b9, 0x9d881fc1, 0xa9469e79, 0x86032d6d,

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,897 @@
/* 0x40650 built on 08132012 */
0x00000001, 0xffff0007, 0x08132012, 0x00040650,
0xbaeb63c8, 0x00000001, 0x00000072, 0x000037d0,
0x00003800, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x000000a1, 0x00020001, 0xffff0007,
0x00000000, 0x00000dd1, 0x20120813, 0x00000dd1,
0x00000001, 0x00040650, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
0xde429059, 0x5e47e5f9, 0x4178c7e5, 0xc173f907,
0x7d1b18cc, 0x14d707f5, 0x7cd90b57, 0xb13efbdb,
0xa19308a3, 0x5b19c4b7, 0x4a1b425b, 0x7d6a74f6,
0x81624193, 0x3a559605, 0x5475280b, 0xe7319d58,
0x48624ca7, 0x507af030, 0x3b32d96a, 0x30164068,
0x5284d2f5, 0x725b2915, 0xf63c9280, 0x44b7c142,
0xe67ca7b3, 0xd6f163e7, 0xcdf51f3c, 0x41d180a1,
0xcc3931b1, 0xf7a544a9, 0x7f6bf77d, 0xfc45a45f,
0xf0985836, 0x652d7e2e, 0x0324b1f3, 0x24b9548c,
0x7bcae7a5, 0xdcdebf79, 0x27015922, 0x0c83c606,
0x3d2ceeb7, 0x61c5eec8, 0x6b6899c6, 0x3e500531,
0xf08bfa44, 0xb304a8f4, 0xcee8f713, 0x2912c786,
0xfae6c34c, 0xa5292960, 0x7d63e389, 0xaa257a01,
0x1fb25054, 0x963fc676, 0x5bcb9fd3, 0x58f369a4,
0xf6e3beb2, 0xa58b5eb0, 0x33c7eba4, 0x37fe8b66,
0x00714403, 0xf0fd0c4e, 0xaa122996, 0x9a55b184,
0x00201507, 0xc9fb6e3a, 0x11ab60c8, 0x80ff6e84,
0xc37aabdd, 0x0fc23175, 0xb0b18c34, 0xf1ec806c,
0x00000011, 0xa5f6213d, 0x4c3e7f1f, 0x13a90e88,
0x47b7d6ec, 0xf571bf23, 0x50ddfe65, 0x479fdaf5,
0xcd75485d, 0xbe558d1d, 0x2df5284a, 0x4c97c566,
0x154ba1be, 0xf77aa9e8, 0xc9ca22cd, 0xb83e0b19,
0x7f2153d7, 0x552930e0, 0xf4477e59, 0x75eec500,
0x8d9c0b08, 0xe1c173bb, 0x33569053, 0xff2f1473,
0x71de2e2f, 0xa8f86c8c, 0xde68ce7d, 0x7d2940d6,
0xcfe8c5f0, 0x978e28e8, 0xd23ab801, 0x4acfc2c7,
0xeeaa8b75, 0xf4817f5a, 0xea1664b4, 0x76374ace,
0x3c50dd90, 0x7368b116, 0xd0a10979, 0x428f0221,
0x18ba6453, 0xfafec8b7, 0xb48db289, 0x506e23d6,
0xaabeea21, 0x0c9289a6, 0x14aee813, 0x4a1e6f14,
0xdc2f70b9, 0x7f579faa, 0x1639a925, 0x2afd96e9,
0x38c5bf51, 0x832e7063, 0x973d9697, 0x5fe400f5,
0x46032c71, 0x9e335517, 0x12ee90f6, 0x3b3391ea,
0xdc9cdfe7, 0x804a36f5, 0x5e271bd8, 0x756af6d9,
0x0a17677f, 0x134ebb47, 0xcfc9965d, 0x2594bc24,
0xaa26ea5a, 0xb8ab648e, 0xfa47d751, 0x1ab2e541,
0x536be73e, 0x5e0dff9a, 0xdf0e8762, 0xf1ea6de0,
0x718e58c2, 0x4e566bb8, 0xafe8103f, 0x1bc8fd5d,
0x4a035c53, 0xacba0dc7, 0x45bd0e74, 0xa9b82f72,
0xc52ff600, 0xb8f3ed00, 0x83901bc8, 0xc724165f,
0x37be294c, 0x21458e90, 0xe9e06f27, 0x428aa4ed,
0xdbe671d7, 0xc9e4da8e, 0xa1d035b5, 0xab3cd5f1,
0x321fb426, 0x1504431d, 0x21ce98bb, 0xc36472ca,
0xe48c143b, 0xed0d0dd1, 0x8e902cd1, 0xc8b08e45,
0x438949de, 0xf9cad1f0, 0x85f2e250, 0xf435da99,
0x0227bd81, 0x6b02307a, 0xb2a6167f, 0xe9897016,
0x58c9c43d, 0x58b458e2, 0xadc5d080, 0x3d699203,
0x4742176d, 0xef29c1ab, 0x52a0f932, 0x3e1b23af,
0xab6a31d6, 0xab9ced6d, 0x61340822, 0xc33ba5bc,
0x1bc40c4d, 0xab33fa59, 0xd08d9ddc, 0x484049bf,
0x7a572f4e, 0x3225d01b, 0xaceda13d, 0x1ec90bc3,
0x9f402965, 0x4894c12a, 0x72a120e9, 0x7aadb73f,
0xcba5e444, 0x88d94908, 0x57e241e7, 0xead7fa13,
0x9257d68f, 0x816fd674, 0x1820fa2c, 0xc31e4d24,
0xfe1d36c3, 0xd65dda50, 0xd31fd7ee, 0xb9ca8e69,
0xd3e04c42, 0x6b8bb35c, 0x874c68e0, 0x08e4e24c,
0x612586d4, 0x417952cc, 0xc6351b8a, 0x8682cfbf,
0x5418993b, 0xc85089d9, 0x3e547bad, 0xc904a3ed,
0x679e3bf1, 0xc5e8cf6b, 0x4370a103, 0xba4dab8a,
0x25d0ae4a, 0x79a5cae0, 0x1ade6919, 0x3c915dbb,
0xb1d56d12, 0x94c186d5, 0x6d68313a, 0x0abf1aaf,
0xa937dd41, 0x9eafe75b, 0x54c831d8, 0xcb69c354,
0x3bf4f413, 0xa408f4ad, 0xe669d950, 0xebae6c75,
0x58d289e4, 0x932ed8ac, 0x24fbb89f, 0x09b85d96,
0x0488f4c4, 0x23e706f9, 0xa509821f, 0xc4f728e4,
0x10159886, 0x8ad9abb2, 0x8d60b096, 0x104f9407,
0x0563e5fa, 0x9f2a185c, 0x6b0d5ee9, 0x917f0833,
0x132f62b0, 0x9c9de1af, 0xfb35fecb, 0xa2955743,
0x13556f40, 0x3088c822, 0x2308e4f4, 0x5ea61fed,
0x50cadcf5, 0x0d3fc6f8, 0xd3ec64a6, 0xf31b9b87,
0xc5c15f6f, 0xc28dcdb5, 0xe7ee3298, 0x16059909,
0x8e4137e4, 0xbdd66612, 0xc3e1c984, 0x19b02c18,
0xdf3f56aa, 0xb59509dd, 0x23c0c479, 0xbbcce51c,
0x7817299c, 0x38fa17e0, 0xc065556a, 0x8c7fcce3,
0xf5974dd7, 0xc46f375c, 0x4843d245, 0x766d6bc1,
0xc6a6c95f, 0xeeb43f14, 0xba692967, 0x03d65aef,
0x48d40627, 0x8b5207f6, 0x209a3620, 0x0534affd,
0x73675d8f, 0x6e7da0b3, 0x683dbbd9, 0x258ff122,
0x76fec635, 0x38adb43e, 0x13865990, 0xc63f0be3,
0x8e0faf6c, 0xf4c9bc52, 0x8ba3eec1, 0xbb83ae51,
0x0bcfe7ff, 0x6b0c87e9, 0x62fd054d, 0x58ec7fb7,
0x7ee720af, 0xbe752edc, 0x34a6b393, 0x900beaff,
0x129bca50, 0xf138ec56, 0x19a9c071, 0x509da2e8,
0xb1e93845, 0xa9fada7c, 0xb1ac79c4, 0x89f43cab,
0x41a6ce12, 0xa41e3592, 0xca1a315b, 0xe48953fb,
0x020f5a5b, 0x8429118b, 0xc541b1e5, 0x74699f42,
0x6fb8ba4d, 0xe3bbba41, 0x5978a354, 0x6a0cb98a,
0x1cda611e, 0x712b4dbd, 0xa509df61, 0x170d7f17,
0x4ebc3033, 0xac2fad83, 0x35b30875, 0x373b9ba6,
0xed269abc, 0xed6c6f2d, 0x33d374c3, 0xe270b1d4,
0x98fa18d6, 0x3729a2f8, 0x45d47a16, 0x218ada10,
0x4f3fd842, 0x07b06600, 0x861e257a, 0xbe14066a,
0x2bed0580, 0x6f862fff, 0x4c40cee8, 0x247b9501,
0xfa49656d, 0x32671541, 0x92b1468b, 0x5910423b,
0xb8fa9dc4, 0x2f97339a, 0x1d32034d, 0x569ea757,
0xbbc3a3a7, 0xecb1803a, 0xddbea4d7, 0xde2e65c0,
0x3e3b9cdb, 0x79d50365, 0x445bec79, 0x6d6e9525,
0xdd6cac48, 0x94ec33f0, 0x5c78943d, 0xb87565f2,
0xd149928a, 0xad39bbd8, 0x8a49aaf1, 0x8c503427,
0xb699c8ec, 0xfbef7198, 0xcae17d67, 0x415c8594,
0x089c2f7e, 0xe2b4a22d, 0x17788281, 0x506c50a6,
0xe65e6ff4, 0x0f007e17, 0x3d611dd5, 0xdbdf436b,
0x6224ff7c, 0xfd37b4a1, 0x20fdca9b, 0x93bbe39f,
0x05b6625d, 0x27392f71, 0xc1b29aa5, 0x5af4fc64,
0x98b39b82, 0xfaa95459, 0xd746ece5, 0x07edfe4b,
0x8d376fff, 0x6b6f2676, 0xb8606790, 0x2d97d392,
0x2e2c0cab, 0x8b5e19c6, 0x4e201e48, 0xfffc0942,
0x1623e57e, 0x364f160b, 0x231732b0, 0xbc35e1d2,
0x7a9bac6a, 0x87682488, 0x863ba638, 0x89507dc0,
0x5df119bb, 0x84aededa, 0x38d0bde4, 0x30447148,
0xde21bfb1, 0x637fd2ed, 0x504950d8, 0x28a11edf,
0x601022d2, 0xd5055454, 0x7aa6f597, 0x45076dba,
0xb4144de7, 0x071c3c3f, 0x3ec7dfc2, 0x94dda8ff,
0xcbf010ac, 0xf1756cc9, 0xa1cdf230, 0xd5dcdad0,
0x7b389ccf, 0x5aeca312, 0xea12b3f3, 0x4df41c14,
0xa7a62abe, 0x664aca2b, 0x77c44afc, 0x582360c3,
0x18068ac3, 0x57a8b000, 0xf3d97ae3, 0x65026c78,
0x323bc374, 0xdcc6c805, 0x3132fc2e, 0x3a5fc067,
0x811ae1af, 0xac3eaf2f, 0x906a5019, 0x5d68cd4e,
0xa99f3669, 0x585b5912, 0x3e8f438e, 0xe09a385a,
0x327d27f2, 0xa1f57a36, 0x439b5798, 0xddb57964,
0x9c49c90d, 0xdfb51ced, 0x373d5771, 0xb06368e7,
0x4023e0d8, 0x96541876, 0x00812d9d, 0x9453b8ea,
0x8edce7f8, 0x5f6a3153, 0x6e326bf6, 0x12bdbc11,
0xf6a3ff4a, 0xf9e9895a, 0xf337cb7e, 0x55f63f3f,
0xb286f188, 0x8e66d63d, 0x0c677aae, 0x1ce018bb,
0x794f4210, 0x771ee72b, 0x5230d96a, 0xa61e6308,
0x98c1b0d1, 0xb946302c, 0xbf061220, 0xd906821c,
0xddde4d5e, 0xf0a365d8, 0xe48b38cc, 0x070521e7,
0xa95e1bbf, 0x6960834e, 0x458ff508, 0xae06010f,
0x5bfc3a8c, 0x543464be, 0xd0aa32e0, 0x8e56415d,
0x91ec7ca0, 0x9a45b1e4, 0xf3d4efc3, 0x12f469ae,
0x26a186d8, 0xeafee135, 0xef773153, 0xb8aed6f1,
0x1b8673dc, 0xd797accd, 0x3e53a7f0, 0x22b11fe1,
0x7527e0fe, 0xfa19cc41, 0x8ab0d9a2, 0x8e35bf24,
0x7858c291, 0xe792110c, 0x14108460, 0x96bf4ef2,
0xd45a928e, 0x7ea7c1fa, 0x75ba21c0, 0x7f989da0,
0xc8065224, 0x949a5efd, 0x36f956c5, 0x08507305,
0xf5e33b5a, 0xcf1ef444, 0x9792b9d1, 0x9352e48d,
0xeaf81317, 0xb787a480, 0x2d4b8f78, 0xc3336174,
0x37940cf0, 0x19e0969c, 0x951cdcbd, 0x5ac58c49,
0x75835178, 0x09b9aa85, 0xfff9fe36, 0x8ccdf3de,
0xf7961b8d, 0x3b3c0b54, 0xfdaca8b0, 0xfaf7412a,
0x6af0d993, 0xe52b2d6f, 0xe7020726, 0xca2182a5,
0xa99d1628, 0xd98c538a, 0x209c0503, 0x0f6a9e33,
0xa84394e7, 0x509962ee, 0x9c3b3003, 0x4e9ac79c,
0x8be469e1, 0x64111a88, 0x265d7b21, 0xde93f751,
0x4e2050a4, 0xa7d79c08, 0xeccd6553, 0x75619d71,
0xfe982494, 0x4fa2f243, 0x166f7015, 0x7db76a2c,
0x0832a935, 0xbd967ff7, 0xa908724a, 0x392fbeaa,
0x64108b97, 0x0539c65e, 0x3b6f26a2, 0x92eb0d48,
0x720914cd, 0x4ca6486e, 0xb274acd7, 0xfe19bd38,
0xa40ae91f, 0x2aba2b01, 0xdf2fada7, 0x5960bba7,
0x06473cf5, 0x55a3a150, 0x06fb5eb7, 0x72901380,
0xf868eab5, 0xf9324b56, 0x0df3d887, 0xcd94a107,
0x773b7545, 0x3675fb0e, 0xba884359, 0xbfe0250e,
0x8ddc125e, 0x1f177467, 0x73fd4a4c, 0x3bb2d4ea,
0x9101fc78, 0x35477604, 0x61141387, 0x79e44cb4,
0x0272093d, 0x45e916f4, 0x9d06f5f6, 0x20682b26,
0x60f877b4, 0xc3fa25cf, 0x9db61d8d, 0x1b49af8a,
0xd623c4ed, 0x55623ff0, 0x6ef4d78e, 0xe482ddc0,
0xd3500f1f, 0xfa7ed79d, 0x9aed7258, 0x6f856c74,
0xfa4c7b62, 0x15f7c113, 0x8948fe2a, 0x40c4745b,
0x38ef9301, 0xe9a0d7db, 0x38abc988, 0xee8e94f9,
0x6df8453c, 0x2f095383, 0x9c102a51, 0xb1faa962,
0x7f09fd6d, 0x3ae0a020, 0xa7a30c8c, 0x28c58339,
0x6550ae39, 0xd65ce5f2, 0x7f618152, 0x32d91963,
0xb694b890, 0xc7d54821, 0xc4a32cea, 0xbcf6df28,
0x0e84e7b6, 0x80d37757, 0xa87d4a39, 0x2a136845,
0x6b4fc380, 0x534fe27d, 0x79b69696, 0xdbffccc0,
0xb32e908a, 0xc87e4e4b, 0x325c2d76, 0x4e18cc11,
0x3daed957, 0xd568461d, 0xf605d1be, 0xeb96b221,
0xdc8efe67, 0x35039b61, 0x92d9e355, 0x6b6c6e96,
0x1eeb4a41, 0x0bed14ce, 0x4107eed0, 0xc4dd9c9f,
0x72b1bf6c, 0xfea4c4aa, 0xc02b4421, 0x63a41c17,
0x4abaaab6, 0xb4808bc2, 0xd3b5e7e0, 0xd5bfa9c9,
0x66f141b7, 0x5f84191f, 0x1f67c563, 0xa30ec409,
0xf506b5c8, 0xbda560e2, 0xf2b94ce1, 0x85211dc3,
0x54b1cc32, 0x6657ada1, 0xff0c3ee0, 0x5c0746ea,
0x33bc2add, 0xc39a7f7e, 0xd985aab2, 0x9a433594,
0x8973cb53, 0xc21a12f8, 0x63ab735e, 0x15a535d7,
0xf664efdf, 0xb5c30af2, 0x9b076c42, 0x72cc8ed5,
0x2d9c35f2, 0xfcc2dfeb, 0x98686cad, 0x5a072110,
0xdadd31c5, 0xe4bbff27, 0x6471c3e7, 0xbb98bedd,
0x61787352, 0x47f104db, 0x92acbe47, 0xddeaca48,
0xb1baa422, 0xd2003f0c, 0x934c8332, 0xa13bd139,
0x0a53f050, 0x28b9e29a, 0xf2805626, 0xff72ceca,
0x2a9fff32, 0x64a1c61d, 0x15b46d88, 0x7d691a3a,
0x207eab86, 0xc6135eff, 0x75492f20, 0xd3b52545,
0x0c2e9fe8, 0x5485d9ef, 0x1e8ab4be, 0x27d05867,
0x131c267c, 0xe8cd4671, 0x401948f4, 0x5b0828ba,
0x4ccc4bba, 0x4b4700c6, 0xcf3b8644, 0x9a918fbf,
0xdb98e32d, 0x97596448, 0x0099a549, 0xce39add0,
0x75389738, 0xf3bcd5d8, 0x248d5d98, 0x303e6e02,
0x67babb7a, 0xe56329f1, 0xdf357cdc, 0xbdb7d37c,
0x12b7e3f6, 0x93e53741, 0xe5cc9521, 0x6babe88c,
0x91ad446a, 0xf18086cc, 0x07f8e7ac, 0x50ecd2a6,
0x99e61646, 0x4d4e38c6, 0x261c631c, 0x2c400ebb,
0x30557dac, 0x39d4f0be, 0x382ef33b, 0x24a6ebba,
0x2598dd33, 0x6e845989, 0x048e7903, 0x54a89db7,
0xd9f152cf, 0x36ca3c0e, 0xac795a57, 0x54f2f4e5,
0x84c0c8a9, 0x383fc1c5, 0x854dc524, 0x38f965c4,
0xaf0e677d, 0x1815b8ca, 0x3453f1a6, 0x8b64b707,
0x01c98d2f, 0x96c23c92, 0x869e3c9b, 0x1143a985,
0xc842d306, 0xada14f62, 0xce22a7ec, 0xbc33513a,
0x5d0d789c, 0xe7937c9e, 0x447b7527, 0xba9ba3c8,
0x3352712b, 0x8ff63bae, 0xdc56f11e, 0x5e2496c1,
0xd92fa227, 0xb8c69ba0, 0x74433f43, 0x2cfeab35,
0xe49b3e9e, 0xc544b469, 0xaf18996f, 0x026908ca,
0x60344cc4, 0x73e4b024, 0x73437e57, 0x7132f5e1,
0x5724337f, 0x677506e6, 0x0950399d, 0x4ece3b52,
0x32add7e1, 0x055d8162, 0xa39f67e6, 0x3348899f,
0x7278f636, 0x675ffd16, 0x9d2d33b8, 0x5d9c515f,
0x19daf00e, 0xcf66b1ff, 0x30f1727a, 0xc7df633a,
0x83eba3a8, 0x8910fc86, 0xc6d76ba4, 0x826041a6,
0xda6b8432, 0x51ffaf2b, 0xc07d915c, 0xb6f95bc0,
0x9cdbb6d6, 0x8e6ebeab, 0x333ff03d, 0x79f2c99d,
0x18a4c0a8, 0xfbd34b9f, 0xab5fa858, 0xabb1d966,
0xd472f56c, 0x847faedf, 0x22a91bec, 0xb1045a74,
0xd09a6fe4, 0x23a4e880, 0x741ea413, 0x9ddde4a7,
0x81663975, 0xeea1250d, 0x48f55c5c, 0x2fa3f17b,
0x572bd3cb, 0xcc83348b, 0xf99bcc06, 0xa59ea87f,
0xd7d6d37a, 0xdf746837, 0x654f2a82, 0x451e5ca6,
0x408ffca5, 0xd2a3434b, 0xe120e977, 0x1080f88c,
0x8811bec9, 0xf8baec4f, 0x6de14a7a, 0x81d98d10,
0x1ef5b3da, 0x82b84aaf, 0x9ff60b97, 0xfa308331,
0x287daf66, 0x73818874, 0x5fc72450, 0x46b3288a,
0x469c6728, 0xe3f856d9, 0x7b7d15c3, 0x3a3db8de,
0x53caa8ee, 0x39796010, 0x1282d8bc, 0x26a6faae,
0xe5eb7bfc, 0xba970e07, 0x5ce7222d, 0x836fcc6f,
0x47552daf, 0xe6b96c1a, 0xbce8c8bf, 0x41d5c842,
0x27b549c6, 0xf275da2e, 0x17f0a253, 0x82a19aac,
0xcd9bd725, 0x35dc5f28, 0x32848ecf, 0xf9253975,
0x4510ff5d, 0xc204cae5, 0xb5ace948, 0x58f70df8,
0xe3ccf2dd, 0x15de06f3, 0x210518f8, 0x416cd1f5,
0xc2265501, 0xcfe45c4d, 0x46a4adf2, 0xfe3366c5,
0xc38df9ca, 0x8f7cf525, 0xa5befbb0, 0x9a1cc142,
0x3c3213af, 0x357c661c, 0x688ffc94, 0x5e255280,
0x81b832dc, 0x6a929938, 0x2843a2ef, 0x2738d966,
0xbe7d4e68, 0x0ea0da50, 0x9e367677, 0x15869b6d,
0x6a8bf8f0, 0x8cb5ab04, 0x178a3bb4, 0x6a489016,
0x5641e16c, 0xefd83a04, 0x0254ab14, 0x793d023b,
0x21bf097d, 0xe5dafa58, 0x0120d4ef, 0x254985cb,
0xa2cee1bd, 0xdf76a90a, 0xe8b575da, 0x28f7ce7d,
0xd9a69ee5, 0xce14ea48, 0xb3eacfd4, 0x483fb10c,
0xecf0cc45, 0x76f5497e, 0x612ff242, 0x0f4ce06c,
0x05f7a80a, 0x3ea82992, 0x271498c8, 0xd487bdda,
0x4e7145a3, 0x43c3c48b, 0x394e6842, 0x9f238f96,
0x78b48d77, 0xa58db9e7, 0x7f15a293, 0xfe6e09f4,
0xd78219b4, 0x79009bb8, 0x9b5d6a24, 0x6581ec99,
0xa6362565, 0x059abf42, 0x807f1b28, 0xc9502be6,
0xec335b9a, 0xb6780ec3, 0x8774b89f, 0x51385d66,
0xbd3b2ef7, 0xc2855f62, 0x6b7e2c2f, 0x61462296,
0x842b32ed, 0xf3a9e021, 0xa243fb0b, 0x562ee25b,
0x1541d636, 0x6392c8d7, 0xb78ebae5, 0x5af7f6ac,
0xccb007aa, 0xb5d5d133, 0xe4ae76b0, 0xbae67706,
0x0609ae4d, 0xd06d1d82, 0x8954cae7, 0x683b54a4,
0x775db847, 0xb6161b3e, 0x2248aa92, 0x730eb89f,
0x30584613, 0xd5d586c9, 0x66263b92, 0xa90de2ef,
0x62e7bf9d, 0xc5a3d9a8, 0x4fff043a, 0xb6d68f63,
0xd3c0ead3, 0x8ee93ff7, 0x6a5742f9, 0xa05f2192,
0xbea5c212, 0x81464c92, 0x4e06369d, 0x39ef7135,
0xa0d37406, 0xcf637a52, 0x07635149, 0x6c19041c,
0x1561428a, 0x5ef6162f, 0x1f619a76, 0xaaf7eaf8,
0x68e8891f, 0xd67d5bb2, 0x612d521c, 0x2831d562,
0x322a194a, 0xc6e1b8f7, 0xc989a3c3, 0xec4a0d93,
0x31c8d0ea, 0x7e7ee329, 0xa5669eb6, 0xe4ef524e,
0xedf044cc, 0x224acd19, 0xd092f9ac, 0x25ca9a14,
0xdfb6590b, 0xec5c6975, 0xbd5af94a, 0x21b903ab,
0x2f5eeede, 0x39cea920, 0x33859ef0, 0xcd741a38,
0x83c1e9fe, 0x5b1ebe88, 0xe41b0ff4, 0xc959c601,
0x83ccde42, 0xd2c068d8, 0xcb982dd0, 0x16c75cce,
0xd4c872a5, 0xa0614d0b, 0x144c89cd, 0x9893b7f9,
0xa6a55d1b, 0x8c0004c7, 0x07bba402, 0x0b227a73,
0xfa1f8b32, 0xfdf455e4, 0x7d01ceb2, 0x62365188,
0x001e8e8f, 0x8e438632, 0x01c776b1, 0x80e1fb9e,
0xcaf6a34a, 0xe5c0bb3a, 0x954a4da2, 0xe42c9fb3,
0x8149e997, 0x4dba6722, 0xd49ba02d, 0x8a3f7ff6,
0xb26bcdf8, 0x16232861, 0x90ce9c28, 0x4b6b1988,
0xf45fde12, 0x58bf7536, 0x15915f4d, 0x2424f729,
0x483d43ce, 0x7a593f58, 0xa475394f, 0x04aa58c6,
0xb954bb35, 0x2e628cc5, 0x79b9d726, 0xea5f2966,
0x04ff5455, 0x3dcafdda, 0xbb05013f, 0x719d1824,
0x07c7f7d3, 0xa5a0400d, 0x41dbf191, 0x180c91f6,
0xc7f35e99, 0xdc27a8d8, 0x9414543b, 0x1766a6c1,
0xc1316646, 0x8a691aaa, 0xa9e3101c, 0x3a58eaf4,
0x7127666b, 0xa75be8c4, 0xd897eb0e, 0xbe4e9230,
0xc673ba94, 0xaa6d7148, 0x305696f2, 0x9972c910,
0x047056d3, 0x7a639f8a, 0xae975f0f, 0xeda19d94,
0x6288593f, 0x532a32ce, 0x1d30cd3c, 0x0ef67e86,
0x9891753e, 0x61e98495, 0x010318d0, 0xc198df9e,
0x9892182a, 0x4340af0e, 0x0994054b, 0x42dde903,
0x89b68aab, 0x90903eef, 0xb4b39356, 0x81c18df6,
0xaaa21941, 0x1f284ff0, 0x70fd0f7e, 0x56e12ade,
0x490801a2, 0xae7e79f0, 0x6da55d5b, 0x21d13d46,
0x76a68958, 0xf73a3696, 0x0aca6ecc, 0x1e88b6dc,
0x0de13a13, 0xf0331c37, 0xd3d4928f, 0xc0f3071d,
0x7ccf6011, 0xbcfef9c2, 0x879cbb61, 0x24dd21c1,
0x85bfd290, 0x71d2a010, 0x3d3eb664, 0x8b32fb07,
0xd52d3ac1, 0x79ee96f8, 0x1baa91a0, 0xc8dd006b,
0x13182ca0, 0x629e5d1c, 0x8405125c, 0xe387f699,
0xf6bd5726, 0xa3f50303, 0xa5ebb79d, 0x22ff0c16,
0x9ca73285, 0x647626b2, 0xecc1bc1a, 0x18d56873,
0xfed64203, 0xcd4c59ad, 0xdfe54c72, 0x3ad0a41e,
0x4103c18a, 0xc60516a2, 0x6fe48e36, 0xb00e12c3,
0x17370419, 0x1c04c263, 0xa8836a1a, 0x902e1df0,
0x35569071, 0x3fcbbd86, 0x0a6c9399, 0x3025e41f,
0xe045368b, 0x8981a2f8, 0xa13d0cb7, 0x0ce370a5,
0x7551d6cc, 0x6b7eaca0, 0x5c4786a5, 0x8d40c59f,
0x07b4136c, 0x16335de6, 0xcada5818, 0x0f6eb289,
0x3d848d4f, 0x38164081, 0xd10a5866, 0x26f29393,
0x028bce88, 0xc6f366cf, 0x01c02a2a, 0x4f76e408,
0xc50f4622, 0xf49e7654, 0xb77fc4d0, 0xaa2daa09,
0x7a9389e4, 0xa5e8cdc6, 0x308b79b2, 0x4bf07f85,
0xb569588c, 0x6923ee1f, 0x406f0f20, 0x22ddab96,
0x432ff769, 0x4ed474fd, 0x1e9f4d48, 0x0b197342,
0x83aa1aa8, 0x291f1a1a, 0x42c1b562, 0xec317cab,
0x5a7eb2d2, 0x9987ef90, 0x4c5319c6, 0x362e1289,
0x1abb4113, 0x423a4199, 0x0dc84a78, 0x28cef4ae,
0x43f68a34, 0x023dd600, 0xa9ccb767, 0xf7fc5d21,
0x2f4f170c, 0x0309eba5, 0x4a7b373b, 0xcc77d81d,
0x9e19ad6d, 0x2a9142d8, 0x03c68597, 0xce9eb30a,
0x605b306b, 0x3cea5d2d, 0x227ae687, 0x00bd0cea,
0xeb770bc6, 0xf214831b, 0x061676ea, 0x2c705f57,
0x32f58afc, 0x00033b1a, 0x42707052, 0xb962a3e4,
0x45ba3b11, 0xd170d334, 0x0f4bf100, 0x6299f494,
0xc0ec4cab, 0x8d66e82d, 0x9d0aa5f7, 0x3b9fd00f,
0x29e402bd, 0x70a4c1af, 0xe335f520, 0x0be0b62e,
0x30910f74, 0x871f1ca6, 0xc6acd99e, 0xc48e0c48,
0x8b516259, 0xa3ac0873, 0x40e30c20, 0x47638905,
0x0f503663, 0xc0cc4802, 0x1ad733df, 0xe97326e2,
0xf97e21ed, 0x14335882, 0x7a8aee61, 0x19044349,
0xfe18cfc3, 0xf2ec13a9, 0x556d3e7c, 0x06877d77,
0x120f11d3, 0x18548953, 0xc2148652, 0x81163e83,
0xe39e58fd, 0xf91ec6e5, 0x1754a075, 0x05908f4c,
0x4bb5dbb5, 0x6fc30543, 0x61410f76, 0x24821ef4,
0xf03a53b2, 0xcb92c41f, 0x32780356, 0x51194075,
0x5e58c002, 0x66c3adbe, 0xe6364f0c, 0x6a7774a6,
0x0eb7eefa, 0xcc0a77db, 0xc3c03dc3, 0x115ce8a2,
0x9f8cdf6d, 0x1cfc1006, 0x34328bd9, 0xb92487c5,
0xec1b9935, 0x400e17c7, 0x2d523a5a, 0x2d0516a8,
0xff0dc7bf, 0x73394159, 0x9a0e3975, 0x579732d1,
0x945d2362, 0x95774278, 0xd9dff40a, 0x70b0a41c,
0xf435d6ca, 0xeebb8f92, 0xa40f3178, 0xb1bd4095,
0xbd4514cf, 0x308177e4, 0x7de10f90, 0x74579a52,
0xc818ce0f, 0x8a08dc3b, 0xb083bcac, 0x017b42e3,
0x7bae8d34, 0x3ed00cf3, 0xd1eb6af3, 0x98262788,
0xcfe4de05, 0xdc9b5136, 0x349a90d0, 0xc7db3fc5,
0xcddd9963, 0x763fad40, 0xbd1c92d2, 0x63375307,
0xc4e3d446, 0x84a2777a, 0x9849c7fd, 0xc1f5b8ba,
0xc464dff7, 0x6161c7a9, 0x2ffde421, 0xace1bc52,
0xdcf593f9, 0x82dd587b, 0x3d4d48e9, 0xc5fbe7d7,
0x9ad637ac, 0x2981e689, 0xd76d6681, 0x0cc6bf8a,
0x342155be, 0xe0e75291, 0xad67d025, 0xe6b79f76,
0x21ea40f6, 0xd80481ce, 0xb4cddbb1, 0xda982803,
0xef8d225f, 0xc50d523b, 0xbd0c2e63, 0xa47f3062,
0xaea8f322, 0xc9d7a3f9, 0x08d3b183, 0x7e18521c,
0x665cc414, 0x41c6fad0, 0xbd42a791, 0x81c217a5,
0x8c5251c1, 0x11f1f4d9, 0xd2a56761, 0x435c95ef,
0xd060a3c2, 0xc2dcfe06, 0xe43afb4a, 0x51e18104,
0x33a8ed25, 0xb109f7d0, 0xbe1f97b1, 0x6032481c,
0x881c03a5, 0x9f5c74e2, 0xe28ea4b1, 0x2689f794,
0x5c7ddee1, 0xed6b8e8c, 0x7d3d7aee, 0xfd26dc8a,
0xd84f7472, 0xeb5542dc, 0xf2b9eee3, 0xa284df1c,
0xfdb24726, 0x887514f8, 0x31145808, 0x1b41ca73,
0x20b56128, 0x504675a1, 0x45590f66, 0x69054020,
0x4356b18f, 0xff63e1b4, 0xa5abe700, 0xc9415f64,
0x6fc4baa5, 0xc40faceb, 0xeeb98799, 0xe62fac67,
0xbda750bc, 0x98a273b8, 0xd71703ca, 0xe6bff735,
0x4ef25298, 0x9a87ff54, 0xfef63549, 0x02d83509,
0x84b38ef8, 0xc89cd191, 0xb0b2dce7, 0xd0370709,
0xa2bacc1a, 0x3acecdb0, 0x97731182, 0x46294a67,
0x73b077c5, 0x5c0a160e, 0xb2aa90c4, 0x13d3c40b,
0x95007a16, 0x9d80951a, 0xd90953c7, 0x5e0a7367,
0x5df90d83, 0xc9e1ffb6, 0xfa7a85eb, 0x32539875,
0x91f6b9e6, 0x70cd44b8, 0xafca3f0b, 0x4744d208,
0xfc9e8bd7, 0xdb5e594c, 0x73f04f32, 0x95a6ea64,
0xc0bfa7f7, 0x8aed70f5, 0xa8100034, 0xd981e0f5,
0x9756ac3f, 0xef58f2aa, 0x512427cf, 0xeffecf63,
0x366beff0, 0xad8e72ed, 0xb9250a8b, 0xa3236370,
0x1eab4a6e, 0x8cbfb5e1, 0x48d0fee4, 0xa6275b54,
0x386a6a3d, 0xdb38c45a, 0x25c58ca5, 0x43083e40,
0xb798accd, 0x336137d5, 0x6993f8b0, 0x1acab41f,
0xb14f512d, 0xd2ea59cc, 0xf24c4f55, 0x7997b69f,
0xd9b57dd1, 0x0c97cc4e, 0x4a788660, 0x32d00a83,
0x684726d9, 0xd9023bd3, 0x68dc8057, 0xbda21dfb,
0x2bb86b86, 0xc117ede9, 0x635d49e0, 0x2b24d2eb,
0xa863992f, 0x5f7e2758, 0x2c2ffc6e, 0x12484b9b,
0x9c32666f, 0x0cf8ad95, 0x4b4315cf, 0xed87fd6e,
0x936396a1, 0x94000934, 0xf11f81ab, 0xeed90980,
0xae8bfe3b, 0x4c533652, 0xe7bd7fae, 0x16f4af50,
0xec13f599, 0x967a6b9b, 0xdba2bd75, 0xe1ab178a,
0x418a33d6, 0x6d46b5e4, 0x81a42881, 0x7f8fc36b,
0x9285c321, 0x4777c7c7, 0x0339a171, 0x03e2e45f,
0x53c2b510, 0xb7535822, 0xed2feb7e, 0x0ee29371,
0x16763bcd, 0x134720b0, 0x4d28f3a2, 0xe8c02570,
0xfa5a7ca9, 0x9d3270d9, 0xa0e243bb, 0x155fc54a,
0x1ff416d3, 0x867082d6, 0x54976c7c, 0x89c8368e,
0xf37c863a, 0xa3a10cf3, 0x1b1bce3f, 0x3927ddcc,
0x942cc944, 0x75b80a24, 0x3275fce0, 0xd21a37b8,
0x628ea322, 0x119f2c54, 0xa186425c, 0xf929709b,
0x3fc6cb82, 0x60adf7ef, 0x3650a4f9, 0x40cbf952,
0x98216739, 0x93536880, 0x67a3b014, 0xed3937a5,
0xfac0d506, 0x907ea90a, 0xba708e0c, 0xd97bca19,
0x963a9aee, 0xaf16ed8d, 0xd92aa44d, 0x7dd65ba4,
0xfc0ec940, 0x8bb7a1ae, 0xe31f55ad, 0xa849cef9,
0xd3322e20, 0x9ea8abb4, 0x7d54a2a5, 0xb16a7d31,
0x825fb59f, 0x78990926, 0xa942c46f, 0xc2c52a3d,
0xef6d6428, 0x3a176364, 0x912a2b02, 0x71d64c9e,
0x9f239fdf, 0x900557fe, 0x6a40aa63, 0x4765ade4,
0xfb5783ee, 0xf0ec9eac, 0xf872503f, 0xfe39e539,
0x7646a63f, 0xb97d5016, 0xe1ea549c, 0x54165ceb,
0x37120967, 0x607e7e9f, 0x6237c0d2, 0x91904eef,
0xf4609089, 0xbc92bd36, 0x4d5321f9, 0x65530cb7,
0xa1a82019, 0xc0261dec, 0xeda45298, 0x4983de02,
0xd6fc24ef, 0x05695092, 0x76da24a6, 0x48c0dc47,
0xe1dbee6b, 0x37d89c68, 0x5fcedb9e, 0xd02070e4,
0x5a958218, 0xb558c7ab, 0xaaef15e5, 0x8b66ce25,
0x41633dad, 0xae48db67, 0x10577481, 0x35a659ca,
0x34586a37, 0x64159b97, 0xe51ff4cf, 0xde9f25d2,
0x0f9b9fae, 0x949bb1e1, 0xdffa73d0, 0x4cf46cea,
0x758aafe0, 0x9f967973, 0xf7bc14a2, 0x36b4b278,
0x725c4ac2, 0x2a2f7ca5, 0x7877f212, 0xc9e31e08,
0x5a50cdca, 0xb5a8c0e4, 0x72e9a76e, 0x0877aa5a,
0x247d44fc, 0xb4a24225, 0xfac33e36, 0xeeb3bcf8,
0x5087f5db, 0xc3d3d6f7, 0x71fbf2e7, 0x53713e6c,
0xa8c549d8, 0xa0144279, 0x18bee63b, 0x158c6a42,
0xdb356d9e, 0xb85d8648, 0x138e100b, 0x914dfa59,
0x0e8c2982, 0x528cc080, 0x75805354, 0x614c8069,
0x6857079c, 0x24041b9d, 0xd1eca8b6, 0xda897ca0,
0x658fedb6, 0x6332f11a, 0x13b759f8, 0xc6b27dc2,
0x6238ae5f, 0xc83c8116, 0x70cbbd45, 0x98263fbb,
0x83d7329a, 0x336011d2, 0xb311739b, 0xb26c4d37,
0x68d1ca46, 0xb1190f09, 0xc516c148, 0xf0a39f50,
0xdb0fa4b4, 0x37a78b45, 0xc3672e4e, 0x87e88921,
0x7300fd6c, 0xf5c61a27, 0x1600cdec, 0x57667530,
0xb5f715ea, 0x2b015743, 0x9461541d, 0x77df5559,
0x998f7e4d, 0x9f38916b, 0x07facc62, 0xf0b72c54,
0x731f6271, 0x236716ed, 0xb2df24a7, 0x3ba8bd0f,
0x42112bc6, 0x842f52c4, 0xb5b19e2f, 0x05032b47,
0x4115f355, 0x4d6478c2, 0x42642b41, 0x3362accf,
0xb029b6d3, 0x18a32fc6, 0xe6958269, 0xe32b913e,
0xa03f39ba, 0xece0bd2f, 0xd112f93b, 0x3dd500b2,
0xfe40601e, 0xdb17b7ee, 0xb0998d30, 0x41207210,
0x019cc506, 0x8028f18a, 0x0b76393f, 0xb2c6d9b6,
0x501e155f, 0x25e7c843, 0x1ff71529, 0x626272fd,
0xd6c562d4, 0xe8972e26, 0x2dbe5865, 0xd4717a81,
0x2020a1a5, 0x6609d3d5, 0x395c2f83, 0x1adc33e8,
0x10aefe54, 0x2a60f6f5, 0x3c939a05, 0xa5a498a2,
0x4f194d1c, 0x5f1f2f20, 0x846794f8, 0x420746f9,
0xe8203cde, 0x3b97a39c, 0x3b37b0b4, 0x61b76676,
0xdee8f0e7, 0x99d3d3ce, 0xee56e0ac, 0xa463614b,
0x8f79e3a6, 0x313aca85, 0xa9690fed, 0x0fbc3325,
0x1d532abc, 0x4c2a3d4b, 0x8f112e0b, 0x68805f2a,
0x7d30188c, 0x0599fcd4, 0x6a8fc726, 0xe364d20d,
0x0cefd583, 0x9bbd6029, 0x5dbab7f9, 0x9998d816,
0x31cd57f2, 0x78a358b2, 0x6598fae5, 0xa83330e9,
0x0659f9f8, 0x2a7aa7ca, 0x150120f3, 0x04de1735,
0x7c522690, 0x6725b323, 0x0b400f97, 0x05b2d775,
0xc6455634, 0xb16c897d, 0xd754a2f1, 0x48dc0ca3,
0x16c899a8, 0x49835895, 0x93d26917, 0x28b99551,
0x258523f2, 0x0805da3f, 0xa72bd53c, 0x40352553,
0x1cc9f556, 0xf7d9ab2f, 0xbb9ebfc6, 0x00edf6e7,
0x1a6b078c, 0xccb55605, 0x58205939, 0x68040bfc,
0x06606f63, 0xb7d303a7, 0xd2b14e96, 0x625b29c0,
0x4350002b, 0x004729c9, 0xdbd9db42, 0x909087e3,
0x0987de20, 0x2aab688c, 0x30e1ab12, 0x78df8856,
0x43adec5d, 0xd17d6090, 0x40e74112, 0x2fa63a2a,
0xa5f64f08, 0x2bcc13db, 0x265e3552, 0x7f7c3134,
0x7a90de85, 0xe7e7380f, 0x0040f327, 0x631e7df8,
0xbece702b, 0x838327b4, 0xd17455c1, 0x39b3f4ad,
0xccda2ebf, 0x24cde995, 0xe4c8167d, 0xd4e75936,
0x89ec4fbd, 0x7453092d, 0x3caf28f1, 0x24933ea8,
0xbb4e8492, 0xb5cc1965, 0xbbbfbcf8, 0xd5b25a90,
0xb9004799, 0x89f0c0a0, 0xa94a5f84, 0xa1b3cff9,
0x7546662c, 0xe7762da4, 0x0da2edcb, 0x99dcadc3,
0x465c5203, 0x7524fe88, 0x1481e000, 0xf24f4ac3,
0x11d006c0, 0x1330c08c, 0x90628008, 0x3635ebe8,
0x19d334fd, 0xfc2db733, 0x380860c2, 0x1a4f00ca,
0x15431a3f, 0x9d022bcc, 0x1bf54400, 0x661875c1,
0xebbfc9d8, 0x8c6afc42, 0xf904e97f, 0x804cc692,
0x4e31bdee, 0xc7b2b02d, 0x5a0eb761, 0x1b2e733b,
0xc76f51db, 0x7580f529, 0x8b7c2186, 0x897285fa,
0xc38df5e3, 0x7b887fd4, 0x4b6f05b5, 0x11c4ef7c,
0x5571eae3, 0x7f9217b6, 0x7eefd80f, 0x74b3566e,
0x63e60fdb, 0x446e17ea, 0xf0af2a36, 0x9e80b268,
0x03c6178b, 0xa68e2d4c, 0x05dcc3e1, 0x7c3dcb02,
0x685d680c, 0xae925e6f, 0x88e0127b, 0x8609203a,
0x71490ccc, 0xe6d814aa, 0x9f9c82e6, 0xf030e9bb,
0x8d562484, 0x6d671daf, 0xe5ce8565, 0x5ba3902f,
0x8242b602, 0xf85cb369, 0x44df5676, 0xfc5825e8,
0x8bd23407, 0x38ab1fe1, 0x67aee59f, 0x0ea9d0c4,
0x6585259a, 0x2eae7533, 0x529e05b6, 0x536f530e,
0x0d25f730, 0x67861bc2, 0x7600c586, 0xb619059f,
0x64fcb6cf, 0xe6ca49c2, 0x1b436767, 0x8a175973,
0x433b329e, 0x2548cb6b, 0x01e66227, 0x94a3a8f0,
0x5dbd70e7, 0xbc92aac1, 0xc434e06c, 0x8a22e875,
0x50b3ea7f, 0x1e45a5ec, 0x0b6e247a, 0xa00cbfea,
0xf51053d7, 0xf5018c5d, 0x39131147, 0xfd255ab1,
0x047b5580, 0xfbb69159, 0x2f2880ed, 0xcbc56105,
0xb9f260a2, 0xdb024de4, 0xb6a5b66a, 0xde7f0ab3,
0x11946311, 0xabc3b4b9, 0x90c412a1, 0xc10be39b,
0xc78700d7, 0x507b6829, 0x82033056, 0x9cd4805b,
0xe3a9e178, 0x88384d4a, 0x47189250, 0x7eb2fc9b,
0xca24f83a, 0x512d9252, 0xd7fb70bd, 0x2e17a9ce,
0xc11413db, 0x78291023, 0x8a7c2fcb, 0xe93477f9,
0xe7af44e4, 0xf67bb16e, 0x1c47d11c, 0x5b78b3fe,
0xc7cebed6, 0x986755de, 0x195b828e, 0xbaba25bc,
0x7c2fa0f3, 0x59d437c3, 0x4ad6e0ab, 0xd08e4342,
0x342e7258, 0x247db19d, 0x73e468e9, 0xd54ad7fd,
0x6a7d9b43, 0x4d6283c6, 0x82a04531, 0xb4101cf5,
0xbd38f543, 0x790508ef, 0xf7d5d0f2, 0xc07b3f7c,
0xeebe70a9, 0x6d772fcd, 0xe0d53be9, 0x9f9a795f,
0xa2371c3a, 0x04a89ce8, 0xcb8f94cd, 0x9f91fec0,
0x0cbe830a, 0xeb5b6a17, 0xe966fb53, 0xca8d48e8,
0x36de5e12, 0x5e8e2db5, 0x686c0816, 0x1a28b54f,
0x1f3468d1, 0x138f6fa0, 0x66b95a5e, 0xef3dfc2d,
0xe635a0a9, 0x843d4a5a, 0x52d8aad7, 0xa059cbf8,
0x380bb651, 0x4b5a9561, 0x5195d65d, 0x91c59a57,
0xdf043c36, 0x092b1547, 0x67ba8504, 0xda451e4f,
0x1047614c, 0x4a5c9ff9, 0x7361c7c5, 0xb588dd39,
0x401bad18, 0x77938dee, 0x5303a303, 0xbfd6024f,
0xff6c5735, 0xb183a3f5, 0x5dda5aae, 0x4bf647b9,
0xd6dc95f1, 0x062d7822, 0x81c5628c, 0x0d6b4dbf,
0xb1ff1bea, 0x925d7cfc, 0xe614a16e, 0xcf788541,
0x38a2850d, 0x4527db66, 0xd022188b, 0xbc3b69d4,
0x9e3a4a98, 0x7914b1ee, 0xc4c4176b, 0x6657a55d,
0x060af607, 0xf9faa697, 0xc4445785, 0x75832309,
0x55e7c659, 0xf1fdaebc, 0x2d9d9672, 0x368e2550,
0xa6311fe7, 0x7241bc3f, 0x13a6467c, 0xd74ba65c,
0x6c3bbcf3, 0x6211c9d0, 0x67236e6e, 0xf316c3dd,
0xe0d2ff08, 0x17b82387, 0x9cd864ac, 0x8b6b11eb,
0xb7a46782, 0x862bcc69, 0x1b2e466b, 0x16d04fae,
0x4c0e5023, 0x1c2a280b, 0xdfa53d3d, 0x0a4c734c,
0x4640bd52, 0xc4761876, 0xc15b8adb, 0x43b643ce,
0x6e3f9f0b, 0x9c27d71b, 0x73f7159f, 0xc9690ea9,
0x5cd1b43f, 0x4a05f7b9, 0x142002ee, 0x991ae1fe,
0xa3e010d1, 0x8376e41d, 0x9cb6725d, 0xee0039af,
0xa88fc591, 0x7b29e4b0, 0x25c5bcd1, 0x586b09f7,
0x160d783f, 0xc8490b6e, 0xaeefab1f, 0x153579e6,
0x9b6bbc71, 0xdf74c783, 0x4d89d74f, 0xfa980d8b,
0x51e84a88, 0xfb1f4f2e, 0x26cbc6ac, 0x94516296,
0x03ed186d, 0x2626ad8e, 0xc2425a4c, 0xfd1a95f0,
0xb76329e5, 0x10f29dfd, 0xce9be355, 0xb726398c,
0x5c2cc790, 0xccc5dde6, 0xcde701de, 0xb11cfb99,
0xb6be1a0d, 0x117e3eec, 0x01724d68, 0xbbdda00a,
0x5cb034e7, 0x2fe2be86, 0x4180056d, 0xd4fc8a3d,
0xdce7dfdb, 0x892689b8, 0xbd04765a, 0x018633f9,
0x8f86af7d, 0xb05fe5b4, 0x4f32bdab, 0x593d9017,
0x473764c2, 0x9b55d650, 0xbc41d13a, 0x77ad0741,
0xd41100c2, 0xd6ae019f, 0x7dbde64e, 0x0fc6ed4c,
0xd3959711, 0x8013c424, 0x500f6866, 0x27191553,
0x5eabb9bf, 0xde9bd1a8, 0xe9d60721, 0xe4bd75ff,
0x13245d30, 0x4c47a02d, 0x38f874f7, 0xc031b82b,
0x8a458911, 0x645df7f7, 0xe99ce120, 0x922786c3,
0x979ec430, 0x2ed277bd, 0xd457d07e, 0x4f7ee3df,
0x30bedae7, 0x5422d610, 0x12be1925, 0xe1a03275,
0x4c10b26e, 0x9a4a7ea4, 0x57280c4b, 0xe92d4552,
0xd9045f17, 0xe2599e31, 0x974dfcd0, 0x8027af83,
0x2402877e, 0x62ba0998, 0x855da60f, 0x6f542e2a,
0x4ba0c13e, 0x69765738, 0x1059b21b, 0xdd0554cb,
0x53450161, 0x04daf9c5, 0x32c3cb87, 0x80b4494d,
0x9b2c798f, 0x4fb2f985, 0xa4482140, 0x9fffe6e2,
0x5ee069c0, 0x390d30ec, 0x7ea565bc, 0x8b3d2707,
0x3d5e5339, 0x1a4bed1a, 0x0bd8707c, 0xc9999b2e,
0xa33c9468, 0x525dfae7, 0xad6b7f35, 0xc042f1e2,
0xa471df59, 0xa8c814d3, 0xba988b4d, 0x2b07a004,
0xef693382, 0xff762ccf, 0xbf036828, 0xacbe12d1,
0x43a5ba1e, 0xd1e38691, 0x93e40465, 0xebd7e040,
0xb9227607, 0xddf2bf09, 0x17a12949, 0x1df3e013,
0xa1806c20, 0xf25d351b, 0x531b16e8, 0x5c0d43e6,
0x938d2f85, 0x870c6118, 0x91ae0793, 0x70f3404c,
0x5a47d175, 0xbba2a70c, 0xf47ade7f, 0x1df31acf,
0x6bfa5e3c, 0x4a6494cb, 0x33662533, 0x0f534dcd,
0x48a4f041, 0x3bd62a97, 0xadae0bb5, 0x3902b989,
0x964a0658, 0x24ea3b47, 0xee1b90c5, 0x66ba709b,
0xd07bda6b, 0x06072b03, 0xe8f7e5f0, 0x886a7284,
0x2c1c5d22, 0xdc98055e, 0x44981941, 0x0a9dcaef,
0x9ede1b66, 0x7ee2e22b, 0x77330d3e, 0x8a9af5b9,
0x6e59ad42, 0x3198d990, 0xb9c165c3, 0xc0a1fcb8,
0x82a11acd, 0x9d2d6a5d, 0x7c3d4a6d, 0x59714d40,
0x3cbf3cc2, 0x9959cac8, 0x9d188b8a, 0x31e9142f,
0x08b2a6f8, 0x83bfa230, 0x18ac5f64, 0x0f29429e,
0xa6409870, 0x642b5fc0, 0x37cf4e14, 0x7a55495c,
0x8bde7b3e, 0xefcd1a01, 0xa440abde, 0xd73dc0b3,
0xaf9904fb, 0x505a7f8d, 0x59d358ea, 0xe42e482f,
0x4d36ec2e, 0xd09d55da, 0x3c560a61, 0x36c1de88,
0x70dda8ea, 0x64bd395c, 0x2e2b5bd3, 0x4c92749b,
0xbdaa5e18, 0xff686092, 0x055b1b7d, 0x2bcc7b7a,
0x060da053, 0x9a94d74b, 0x57f113ce, 0x028d68bb,
0x25a0cfac, 0xb0c43a30, 0xdce50b8e, 0x644039f5,
0xdfa2001c, 0xc5fa886c, 0x93258a3f, 0xe47327e4,
0xf722d52d, 0xf01cc963, 0x12be313b, 0x3f4e9a4f,
0x39c45b14, 0xd8da3cf6, 0x8e0b2eff, 0x0ad22cdc,
0x28754b66, 0x854bb92a, 0xcbbc4794, 0xe25db296,
0xc75d9409, 0xb69a2a96, 0x72c2172e, 0x8b0b2fac,
0xd00bdc0c, 0x78d0178c, 0xf00f16ff, 0xc0adbfc4,
0x4ac9cbbc, 0x776a44da, 0x9bc7acee, 0x4d1a0386,
0xfc3eb646, 0x1db91afe, 0xc26dd902, 0xa4441cca,
0x6b8df5a3, 0x3974f5a0, 0x7bea8f21, 0xe998f6f5,
0x9540b5fa, 0xb46c2aa9, 0x0e52fd0f, 0x25658d9f,
0xe4259d80, 0xc85388e5, 0x6bafa3e0, 0x6d93efd7,
0x273fff0c, 0x3989abbd, 0x1834e29b, 0xda629800,
0xe7af0baf, 0x48a3c4f7, 0xdbff8f99, 0xde15e2df,
0x33fa391a, 0x3ffa0ec8, 0x59700d7b, 0x6554fbb2,
0xc5f714e0, 0xeedec712, 0x3fc293c2, 0x569cfc12,
0xa542e13e, 0x9d44d26e, 0x324f965a, 0x9b90be99,
0x397db3d7, 0xa68d4050, 0x31c87852, 0xa7fc5395,
0x142815fd, 0x1b63c4b5, 0x677e4476, 0x10c7230c,
0xfa000265, 0xee37cb0c, 0xa8284b59, 0x66dcbaf9,
0x9b7099ca, 0x943f64d3, 0xb70784fc, 0x0f967a90,
0x0d6a9b74, 0x7fdda54b, 0x02365e7a, 0xaa94a1ce,
0x49f72ae1, 0x8bff97c4, 0xe9b0aa6a, 0x020a49a6,
0x6f0da33f, 0x6934d3b8, 0xbc3ed0d6, 0x3a4ffb86,
0xbf3d1940, 0x57f95e04, 0x038724b4, 0x6bf27689,
0x64484e60, 0x2074b88f, 0x8e2d81e9, 0x856891ca,
0xa3bc4164, 0x9543cc29, 0x0f55642e, 0xfad08b0f,
0x4711feb4, 0xcf588f9f, 0x4042e4e2, 0x27a9dc5c,
0x454d23a0, 0xbb124b4e, 0x7796d298, 0x7c39957b,
0xc3afd1d1, 0xbf3b1453, 0xb1109b67, 0x3f0ca0e5,
0x070ddea6, 0x0cb826f3, 0x99f62e56, 0x7ea0c3fc,
0xe2d81008, 0x15b58116, 0xd9451593, 0x6164d51e,
0xa4024db2, 0x54d77bd4, 0xeae87660, 0xd4a1aefd,
0x0650060a, 0xbbef7780, 0x58cd0acd, 0x26524f84,
0x2e29f7ab, 0xef932b19, 0x4eb2c213, 0x03711037,
0x2a5907f7, 0x8b804b07, 0x13e0bc06, 0xcb14adf2,
0x3e4a94c2, 0x9233205f, 0xc1dd05f2, 0xa4698dc8,
0x41e0e9b3, 0xd3cfea50, 0x7fb55e6f, 0x110edb7a,
0x08793b1e, 0xead0d257, 0xfc316b2a, 0xd4733a1f,
0x7ee6cf3e, 0x8fddd004, 0x98d3d8a4, 0x66e825bb,
0x944afbc1, 0xb9b1ce6f, 0xfeefcb2c, 0xc6d87773,
0x95954f12, 0xa36d819f, 0xd306e8a8, 0x84e7cdef,
0x95fe1c44, 0x96f90ca6, 0x344e1fb5, 0x3b140b85,
0x346ab3a3, 0x42d992a7, 0x6b9f803c, 0x68bd9593,
0x1f7f2e08, 0xe72c5a7d, 0xe507065d, 0xf770db6b,
0x1d4460f9, 0x268d67f5, 0x51a91f56, 0x1ae70686,
0x012e58d5, 0x9f67bfb4, 0xcadb77bf, 0xa4b65aa8,
0x5dd9d491, 0xf2a2ef89, 0xa47dd233, 0x9c3e47f4,
0x8a50bdb9, 0x113366b9, 0x20d28ee4, 0x1cb48c48,
0xcedcd9f8, 0x403ff288, 0x9c505492, 0xfa5b2412,
0x4a2d3d26, 0xefcc1a93, 0x72255fb1, 0x8672cd28,
0xa81bc984, 0x2d0b5cb8, 0x3840f74c, 0xafd455b3,
0xf3f5a4ba, 0x6521cf5f, 0xb65c72d9, 0xb2f81028,
0x936f2d6f, 0xe5c05b13, 0xfed6fc52, 0x4e054aa5,
0x6589e56b, 0x04df2091, 0xb58f6d85, 0x7a92a219,
0x827fc956, 0x5d376e32, 0x0aa885b0, 0x7eb8e9d2,
0xe40d61ea, 0xef3f1bf2, 0x0baa32c7, 0x00564df5,
0xbe61a0df, 0x3f255f31, 0x7ff8e827, 0x7cabd9cd,
0xcbf39620, 0xed07d2fc, 0xb0169c13, 0x1a2a8c23,
0x81e34ce0, 0x9c2c83de, 0x58100df8, 0xb47ac5c2,
0x1e2c1d7b, 0x64e6010d, 0x0802a90b, 0x7db678f4,
0x20e59a23, 0x2240686c, 0x203e3a34, 0x93a22374,
0x93b8f94a, 0x3ad0aec4, 0x397fd6db, 0x7a8007c6,
0x08589020, 0x1cbd45bb, 0x3f4ff79d, 0xf73785f1,
0x901219fc, 0x73a7d54f, 0x42d667de, 0x9cdb3ead,
0xaa3bb34a, 0x753e68b0, 0x642d56c9, 0x0f78c76f,
0x073276c7, 0x0a444a35, 0x23c22810, 0x7bd21532,
0x4c7285e6, 0xd507d459, 0x709bee38, 0x5a025ec2,
0xd42ab81d, 0xf10055bb, 0xb1358b89, 0xad6ab028,
0xcaec73b5, 0x97990be7, 0x00424df3, 0x095f60a8,
0xd14e86ef, 0xe92eba3d, 0x16c56546, 0x037b14f9,
0x25397409, 0x58b43fc7, 0xf5bfdf9c, 0x983e7a5e,
0xa8ff339c, 0x08538aaf, 0x539d6a07, 0x08a5fa17,
0x73ca62a6, 0xb27b2034, 0x857884d8, 0x7c642a5c,
0x31efadb9, 0xcfa3002c, 0x4f85a151, 0x26b0966c,
0x4cbfb2e3, 0xdf82ca61, 0xb86f8ca3, 0xdf63bf93,
0xf04ea187, 0xef06da9e, 0xea26a703, 0xee9fb1ab,
0x6f489763, 0x40a15dac, 0x262fd446, 0x03a2ad1d,
0xabf459cc, 0x3f2f6228, 0xb4b21829, 0xe25c4aee,
0x83974d6c, 0x26b6f1fe, 0xc480925d, 0x1891de28,
0x052035f1, 0x3eaa0c16, 0xda384f6d, 0x94cedefd,
0xc790b48f, 0xf7031c49, 0xe5e89992, 0xb4b02a77,
0x0858d424, 0x2af44294, 0xf4383ec3, 0x96fc2444,
0x148dd54d, 0xe7ea8d88, 0x454db8c2, 0xdaca5f37,
0xbce4c9ab, 0x830cbb2d, 0x0f3989ac, 0x950179fc,
0x2b722a1a, 0xdb192982, 0x809c9ddb, 0x1246a8c4,
0xe4987614, 0x68cb1c29, 0xe9404b43, 0x9f371dc0,
0x31de6186, 0x51b29667, 0xaabea8a6, 0xd4a80b4a,
0x7a45bc2b, 0xfb3c75e1, 0x7e97adfe, 0x3bfdee13,
0xc1e585ce, 0x7d90e87b, 0x6c54a62f, 0x79da0a67,
0xf6d1ac7b, 0xe8481d04, 0x6343d429, 0x56ce7a88,
0x5e94c626, 0x29223681, 0xbc553a44, 0x77487cd8,
0x20c5c0f1, 0xc5787605, 0xc3c0a263, 0x1606cae8,
0x39b95a82, 0xaef75774, 0x3d03fb0b, 0x41749340,
0xebd110b4, 0x52d4c116, 0x63056470, 0x0dd8a579,
0x7b72155b, 0x5e3d3a95, 0x45463e06, 0xb1a294de,
0x2313630d, 0xd8068ed4, 0xeff53cab, 0x7343c1ba,
0x6e11423e, 0xcc1bcc57, 0x56b4a28e, 0x54bc2205,
0x63e05b80, 0xd484b9f5, 0xd560d321, 0x6d0faf20,
0xaafe2e80, 0x189fdffd, 0x31019301, 0xff85372a,
0xce2b9e3b, 0x5bc8e2fc, 0xf26a32c8, 0x698c9ae4,
0x864d9d6d, 0x960894e1, 0x33e07c43, 0x98314169,
0x04f39233, 0x158d72cc, 0x1d139d93, 0x0c714623,
0xc57fa08f, 0xdac380d6, 0xcb0ab156, 0x72e0bfc4,
0x8a475c4a, 0x17210b91, 0xdb23bab9, 0xf43fef3f,
0x4b8f0e27, 0x14f5e8e2, 0x332141f3, 0xca55692c,
0x4aa0a4d6, 0xbfe77269, 0xf2e29b1c, 0xb19a4a9c,
0xd038369d, 0xabfede96, 0x97b9c5c9, 0x02a9d7fc,
0xa22d55ae, 0x27ac7a0f, 0x9d6413ec, 0x93c1b264,
0xf494a81e, 0x9c5aeda1, 0x1f105e88, 0x0a70ab8d,
0x13b030d9, 0x3b823dc7, 0x6b2c7321, 0xab690df7,
0x5f8ceb18, 0x17aaf6d1, 0x19f4c149, 0xfdf4944b,
0xf75b1f98, 0x7a32d1b1, 0x4b8c630b, 0x235d2e49,
0x3288c818, 0x27060736, 0x1be821c8, 0x19484ae3,
0x4d9f0c10, 0x848a6608, 0x3cd837ec, 0x500e1b84,
0xb10df9bb, 0x0ffa6102, 0x3e1ced10, 0x547c808d,
0xd4b8f680, 0x0338e62d, 0x2cf62440, 0xe2039f98,
0xb683f06b, 0x447e034f, 0x6a4a9be7, 0x12800b62,
0x4dbb8610, 0x960c5f26, 0xcc3cdf67, 0xeac8aa44,
0x29147e44, 0xe52489fa, 0x154266b7, 0xdd16d7e2,
0xf5293238, 0x2ec7f232, 0x41f55f3b, 0x08b6dd7d,
0xd5a519e1, 0x9c2d6ac7, 0xbd38dc40, 0xbbf773e1,
0x6c44c8ad, 0x4909704e, 0xcf9c835e, 0xac9f0cf6,
0x02e74db5, 0xa7f9f2f4, 0x9bf17e81, 0xbdd5a357,
0xe4632011, 0xfae2b887, 0x8e671441, 0x28e62ec7,
0xf0600919, 0xc7e8dcbc, 0x84aeb74d, 0x8ad38661,
0x58f15269, 0x1d608461, 0xeddb3ffb, 0x0fe66af5,
0x7b07ddbf, 0xa662ff0f, 0x68dcc083, 0x848d3fbb,
0x99af2ee7, 0x2ddb0548, 0xc493b0aa, 0xf9940ee8,
0x20a5d4db, 0x8ed57bf5, 0x435948ab, 0x97f583e9,
0xdd5dcd4e, 0x30ccecad, 0xdcc95881, 0x23bcfe47,
0xe541ab84, 0xf20d9e5a, 0x670521c8, 0x1546cef5,
0xf29b9947, 0x26c713ec, 0x0deec8c9, 0xc9f7e5bd,
0x9f519c48, 0x5782ad14, 0xec347973, 0x1bd165ea,
0x3f54767d, 0x8db25803, 0x3f1847c1, 0x46c1c17c,
0xae825459, 0x77a00d3e, 0x3838565c, 0x52ca36c4,
0xe956fb60, 0x80b2c01b, 0xdd0f77cb, 0x825b118e,
0xae4bf433, 0x716cda7b, 0x6d69e7f6, 0xc016524c,
0x9a5bb9c4, 0x88720186, 0x5aec39f4, 0x2929f0b6,
0xb4caf654, 0x445b25f2, 0x215c25d3, 0x16137904,
0xfb8b7dcc, 0xf11ddde5, 0x9a6cd8dd, 0xbffd8ae5,
0x6e82a727, 0x3c7b679f, 0x97eaa37c, 0x2693a0fd,
0xb258524e, 0xbc28c52d, 0x13d1915b, 0x37e62bb3,
0xa2421c6d, 0x6eeca6cd, 0xa4c61052, 0x1c0681af,
0xa002f7f4, 0x7e1af034, 0x9870400d, 0xa7aeacdc,
0xdc93b83c, 0x0ea7c1a8, 0xb0b2d5f8, 0x987b2d64,
0x8029bbfa, 0x6dd494cb, 0x5adf2f0e, 0x19f05959,
0x848f6720, 0x85895c26, 0xab1e58b0, 0x520aecd3,
0x53968185, 0x6db5372b, 0xb0c7081c, 0x73f3068e,
0xb69ff767, 0xa1599bd8, 0xd840b629, 0x9e05d61a,
0x98afddcf, 0x2f5c9908, 0xfbb8dab7, 0x7fda7b18,
0xa07c07a1, 0x275bfd1f, 0xf1a8e940, 0xd0e1efa0,
0x1588f564, 0xae172c90, 0x3cf19e63, 0xf66ac7ac,
0x1a082983, 0xeb29faa7, 0xe3ce0951, 0x01a1b56a,
0xb2901c78, 0xb27e27fd, 0x4fd52832, 0x4188d745,
0xe925318d, 0x6ebc66c0, 0x0c0c1573, 0x7d26cd04,
0xbb095fef, 0x1ed71a2c, 0xa6931049, 0x71e91145,
0xc7601147, 0xa19e02ab, 0x95fa4702, 0xfac784d3,
0x6ac76420, 0xe8e1e30f, 0x848a7f96, 0xe5ac2116,
0x624f0147, 0xea992fbe, 0x0b750c31, 0x0e3c210e,
0x8a73688e, 0xa396aa9e, 0x8eece177, 0x649883f8,
0x843b98cd, 0x50fe4476, 0x3dcb97f4, 0x54cbee59,
0x7fa93dc8, 0x54338c09, 0xf5036e89, 0xc6fbe6d3,
0x659b8de0, 0xa5ea7df3, 0x83d01cc3, 0x83276f3b,
0x93c09401, 0xa83f8874, 0x44c29328, 0x48260c03,
0x5f315d0c, 0x7899debd, 0xaaa5b400, 0xc39ae3c2,
0x1e072918, 0xcf53f8ce, 0xcd7a257e, 0x2d70b59c,
0x8a41fa13, 0xfccb706b, 0x214aab96, 0xb675e33b,
0x769eb58d, 0x4fec7b6f, 0xfd880d51, 0xb10e6a07,
0x0cec1401, 0x81bda3af, 0xe6314ee9, 0xdf7dd5ab,
0x690e88e5, 0xc64f7835, 0xe0d4b3d7, 0xdd9af7ba,
0x51dccee8, 0x21cc8429, 0x0602ace7, 0xbb611627,
0xd80cd042, 0x8ce42d08, 0x9bff2200, 0xca318a07,
0xbec576c1, 0xaeed80b9, 0x131a7a07, 0xec17fd04,
0x9a8c78d1, 0x130a0e10, 0xb7c19b6f, 0xfb285ad2,
0xe901a213, 0x242bd250, 0xee2910d0, 0xd482528d,
0x0f8c198b, 0x53233b3b, 0xacd3a847, 0x4ed9bd76,
0xdfff18c7, 0xf3ea0160, 0xd259fe1c, 0x1206c799,
0xc202fb96, 0xd3afe4fb, 0xa65aefe3, 0xd6cbe7ba,
0x3c902f88, 0xa2e9e272, 0x0668ec72, 0xd43ccf92,
0x162fe3e5, 0x110a128e, 0x9e8ce5e6, 0x3602702d,
0x3367e096, 0x5b6929ba, 0x4aa22359, 0x6a9c5cec,
0xa0e37b04, 0x98449956, 0xc334045d, 0x86ba286e,
0x9ff57b22, 0x475c91f2, 0x77bb0b35, 0xea00d5a1,
0x225126b2, 0x6f40458c, 0x6a8e803f, 0x68536c58,
0xc7f132b9, 0x384cbd95, 0x397b85dc, 0xd0c0c04f,
0xa7676ee8, 0xef1f4b17, 0x97cbcd0d, 0x000d34a9,
0x821bf9cd, 0xbfcd1dcf, 0x75769ad7, 0xe5a07180,
0x6ebaeac8, 0xf98b5734, 0xa7e21853, 0x6b0adbcf,
0x7ce7227d, 0xdbfb4e26, 0x7258b1d4, 0x33485f8f,
0x39c3f013, 0xf3a75342, 0xca99f689, 0xdac1a6b1,
0x060d7a22, 0x8dec26b4, 0x7340e3c8, 0xb6efbaa8,
0xabed9bb3, 0x565200ff, 0x46cb2b57, 0xabea0635,
0x6d3a9072, 0x8f036549, 0x0e0ca034, 0x0936d4eb,
0xbf26ab33, 0x95630b18, 0x43d7add1, 0xcbcb6047,
0xdf21f1b2, 0x0dc8bd6f, 0x9ab49f62, 0xeb0505cc,
0x3abe8b84, 0xb0952016, 0x39dd57dd, 0x6fc0d392,
0x5c0f9218, 0x0bda02b3, 0xdc6b4d4b, 0x6c843ff1,
0xabc628d8, 0x6c82823f, 0xf324370d, 0x3fae5261,
0x9c3988e5, 0x82227173, 0x5631e8a3, 0x8ffe2941,
0x0a9d8e07, 0x35cec1ad, 0x2086a0c0, 0xb67b505a,
0x6607a079, 0x4829e991, 0x5e7622f3, 0x87018e34,
0x8184dd45, 0x6694f40c, 0x9129f8af, 0xc1150659,
0xc845ad79, 0x0dbe10f8, 0xe3c01bfc, 0x4727e946,
0x9007f7d7, 0xe858cabb, 0x0a77f5ae, 0xed94e1db,
0x29f62b6e, 0xae17cad6, 0x5e95456b, 0xb8ff6d0e,
0xb1fe6f18, 0x221b734d, 0x4168d5f7, 0x926aeaa7,
0xebfed78e, 0x8130ef84, 0x196586e9, 0xa419723d,
0x5ac0aadf, 0xe2dc8fa1, 0xa962fc99, 0xde71a0a0,
0x0e16c3b1, 0x9b0b8305, 0x53cc3587, 0xb48cac6d,
0xd230a47f, 0xc052bf9b, 0x8c8a3cbe, 0x48b5881f,
0x3f4b9e2f, 0x18abb452, 0x2dee35f9, 0x79c9a085,
0x0e3740d9, 0x95be5a93, 0xa46e0a24, 0xa19228db,
0xf9a6d8d5, 0x260158f3, 0x43742638, 0x86f3e7b1,
0x53a873c7, 0x4c3bbde4, 0x3a125a19, 0x183be282,
0xd5d472eb, 0x4a9c635d, 0xe49e80c9, 0xa2c6661d,
0x4967c618, 0xac9daf4b, 0x4919131a, 0x369f78eb,
0x9bde7c9c, 0x553d5d0b, 0xc59a73d1, 0xff837337,
0xe5ec7273, 0x1c8599b4, 0x696dc179, 0x9815ee07,
0xe4df1239, 0x38e1c469, 0x6b794569, 0xa032785e,
0x1acc0925, 0xf536cdd6, 0xebc5c6c2, 0x2a5d11d3,
0x04a03d39, 0x633bced1, 0xa2001784, 0xf78c6b48,
0xe072c5a1, 0xb1eaa433, 0xd7ced3b6, 0xf2c07440,
0x4ffd6e7b, 0xaf2b878b, 0x60d7bc8e, 0x2b89dc5c,
0xe117be9e, 0xc8ea7f6a, 0x865bbc9c, 0x304e977a,
0x25a5d74b, 0x49a6fbec, 0xc0470ff4, 0xd83890fa,
0x58f22c45, 0x077790b4, 0xd6402b4e, 0x719eaf0a,
0x8ab72534, 0xec1a1894, 0x81f797c3, 0x1ecf65ab,
0x37fe8f9e, 0x9481c873, 0x744d691b, 0xd9a6d1d4,
0x6ee7a90e, 0x5bdc7a57, 0xc560c85f, 0x75124495,
0x134501fe, 0x2fbdea57, 0xc1fe407f, 0x36828ba0,
0x3da4c8d7, 0xa0006170, 0x81a4577d, 0xdc8e8a44,
0xfc94a762, 0xe9b6be77, 0x7d7c04f7, 0x29c8276b,
0xaa12fb03, 0xa6d27825, 0x9922dd69, 0x0e178d6e,
0x449c8109, 0x4c827048, 0x35d3f205, 0x538eafc3,
0x8bf248f1, 0x3130b9ec, 0x27a6b08d, 0xfef0100b,
0xbcc85298, 0x2080ecdc, 0x39fdfb05, 0x62f7c480,
0x19de60a6, 0xe2204f0f, 0x39ca59ea, 0xabdc7f01,
0x81f5067b, 0x215857e5, 0x1b9b044f, 0x55db132d,
0x716b8212, 0x81c3acbe, 0xdff0c9a1, 0xc60ad938,
0xc8facc32, 0xaf6a82c0, 0x8018ee73, 0x0f722d8d,
0x7ab0bbab, 0x06f44c6d, 0xc9bce017, 0xef88fba0,
0xc65c84ec, 0xaec583f2, 0x9d2aca45, 0xd9836e2b,
0xa4cb385c, 0xf59cd694, 0x409f5465, 0x37ce2de9,
0x5366f8ab, 0x460fe096, 0x476cbd07, 0xf42481db,
0xddba009f, 0xc679613a, 0x7165e0ed, 0x212ba7bb,
0xaeea5527, 0x75397d7d, 0x368e0b80, 0xf0a1c5d4,
0xe2e7a01f, 0x223b6d47, 0x0b006f6f, 0x5f42f904,
0x76cb0e41, 0x4ff6b0ab, 0x90683eee, 0xc5f01511,
0x11b563f0, 0x13a0b7f4, 0x247e667e, 0xd11bf6ea,
0x285d4466, 0xd2dbfde5, 0x7b73744e, 0x8234b88d,
0xd9c2a4a5, 0xf6efab9f, 0x2808dde0, 0x7655864b,
0xa1b20c4f, 0x1d6ba18a, 0xc79a70c0, 0x7bf27476,
0x9083f611, 0x8d9c7045, 0x6c0a8ca2, 0x1860df39,
0xeb8e513b, 0x9adf5af9, 0x3a39fd75, 0x2c2d578f,
0x0040c101, 0xf24719c2, 0xf7438575, 0xc642fa2d,
0x195d6265, 0xb0f5f6d7, 0x9baed4fe, 0x496e9348,
0x12f8158c, 0x20840886, 0xcb0d9354, 0xa2f7e0e8,
0xfa4b7005, 0xc919bf15, 0xe8b19712, 0x5223fa2b,
0x0a1435d4, 0xbd9daf74, 0x998a2d38, 0xa90eceb8,
0x2796c980, 0x9ff72c53, 0x052fc633, 0x67165b0c,
0x98f4291d, 0x4ccfa97c, 0xc0911676, 0x5d7233ad,
0x57efc358, 0xe82361f5, 0x6cdcb7d8, 0x20288c6f,
0x4bf05857, 0x59cc64ec, 0x984f354a, 0xdd1fa6d4,
0x6fecf3ae, 0x6b22cbf5, 0x4aa15f77, 0xf306d041,
0xed945e46, 0xcd9fe0b9, 0x234f4ae8, 0xc6fd791e,
0xecd580cd, 0xe3de77ac, 0xa1031368, 0x15774eb8,
0xa89a83a5, 0x67066915, 0xd73f2dee, 0xeeed86fe,
0x714221a8, 0x48fa6cc3, 0x98f9e936, 0xc362fc00,
0xc0d792c2, 0x751cc992, 0x4ee2902c, 0xb6f3648b,
0xc766b9c2, 0xcc146335, 0x7870d73e, 0xc2e331e9,
0x3a06414e, 0x43fec1c1, 0x8a69cc7c, 0x241be529,
0x6697c6a9, 0x50bdb278, 0x2bd31bc9, 0x284d0b68,
0x4c4f6fd7, 0x3d309a3c, 0x3f44ae0d, 0x3d5f323e,
0x1018208b, 0x64eeebd4, 0xbf940e84, 0x1bdeb048,
0x8959ce21, 0xb3e30da5, 0x086d9c68, 0x6e554b51,
0xf4796046, 0x6a194705, 0x77d86ae8, 0xb23fe0cd,
0xdfc1e29b, 0x53e92324, 0xbe41b2bd, 0xfaa02c03,
0xe0362c1e, 0x7dbc10ba, 0x491d2567, 0xa44c023e,
0x47c5f3f8, 0xdaa509f7, 0x1ee4214c, 0x40297c03,
0x8cd29257, 0x8100c5ce, 0x481a3303, 0x93c360da,
0xae1b0e83, 0x00eb3656, 0x5ff0fa97, 0xddcf7a1d,
0x7c8c47fc, 0xbe3e8645, 0x450a395e, 0x18686d02,
0xbfc53cdf, 0xaf084ade, 0xfc288cd9, 0xbb285f9f,
0xddaf6201, 0xa40183d6, 0x41500319, 0x7e9e2a92,
0xa5332190, 0xfda7abf6, 0x98be91ad, 0x76b15b7f,
0x2db9446f, 0x1a60d2e2, 0x193e376c, 0x4932c9ac,
0xeb87058a, 0x17a19742, 0x021df546, 0xde353932,
0x795d5cf4, 0x86d450fb, 0xf660d67f, 0x6493b35a,
0x174fc138, 0x3e98a209, 0x3b7d5903, 0x21684400,
0x426ec5a9, 0xbebf63dc, 0xaab0f029, 0xc22dddae,
0x4f306545, 0x4759cf34, 0x356b6f0c, 0x349884c1,
0xaca3058a, 0x5e76e9dd, 0x806b7e27, 0x9cef8c14,
0x451f90d5, 0xee50a4c5, 0x3a994015, 0x87d3cbc2,
0x0bf9ef61, 0x3da7d552, 0xe9a5e121, 0x050a61da,
0x6853fbb8, 0xd8420180, 0xf3f7036e, 0xe6ecb9ab,
0xf336fe6d, 0x82deb26b, 0x56afafb0, 0x7b4cd669,

View File

@ -0,0 +1,23 @@
/*
* This file is part of the coreboot project.
*
* 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
*/
unsigned microcode[] = {
#include "microcode_blob.h"
};

View File

@ -0,0 +1,28 @@
/*
* This file is part of the coreboot project.
*
* 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 "microcode-M32306c1_ffff000d.h"
#include "microcode-M32306c2_ffff0003.h"
#include "microcode-M3240660_ffff000b.h"
#include "microcode-M7240650_ffff0007.h"
/* Dummy terminator */
0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0, 0x0,

View File

@ -60,6 +60,9 @@
#if CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE || CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE
#include <northbridge/intel/sandybridge/sandybridge.h>
#define TSEG_BAR (DEFAULT_PCIEXBAR | TSEG)
#elif CONFIG_NORTHBRIDGE_INTEL_HASWELL
#include <northbridge/intel/haswell/haswell.h>
#define TSEG_BAR (DEFAULT_PCIEXBAR | TSEG)
#else
#error "Northbridge must define TSEG_BAR."
#endif

View File

@ -39,6 +39,8 @@
#include "../../../southbridge/intel/bd82x6x/pch.h"
#elif CONFIG_SOUTHBRIDGE_INTEL_I82801IX
#include "../../../southbridge/intel/i82801ix/i82801ix.h"
#elif CONFIG_SOUTHBRIDGE_INTEL_LYNXPOINT
#include "../../../southbridge/intel/lynxpoint/pch.h"
#else
#error "Southbridge needs SMM handler support."
#endif
@ -48,6 +50,9 @@
#if CONFIG_NORTHBRIDGE_INTEL_SANDYBRIDGE || CONFIG_NORTHBRIDGE_INTEL_IVYBRIDGE
#include <northbridge/intel/sandybridge/sandybridge.h>
#define TSEG_BAR (DEFAULT_PCIEXBAR | TSEG)
#elif CONFIG_SOUTHBRIDGE_INTEL_LYNXPOINT
#include <northbridge/intel/haswell/haswell.h>
#define TSEG_BAR (DEFAULT_PCIEXBAR | TSEG)
#else
#error "Northbridge must define TSEG_BAR."
#endif