aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--basys3/basys3.srcs/.gitignore1
-rw-r--r--basys3/basys3.srcs/io.xdc2
-rw-r--r--basys3/basys3.srcs/makefile5
-rw-r--r--basys3/basys3.srcs/ppu_tb.vhd.m454
-rw-r--r--basys3/basys3.xpr49
-rw-r--r--src/ppu/internals.c2
-rw-r--r--test/ppu-stm-integration-demo/.gitignore1
-rwxr-xr-xtest/ppu-stm-integration-demo/data2vhdltb.awk16
-rw-r--r--test/ppu-stm-integration-demo/makefile12
-rw-r--r--test/ppu-stm-integration-demo/test-image.txt1200
10 files changed, 115 insertions, 1227 deletions
diff --git a/basys3/basys3.srcs/.gitignore b/basys3/basys3.srcs/.gitignore
new file mode 100644
index 0000000..dd85c9b
--- /dev/null
+++ b/basys3/basys3.srcs/.gitignore
@@ -0,0 +1 @@
+ppu_tb.vhd
diff --git a/basys3/basys3.srcs/io.xdc b/basys3/basys3.srcs/io.xdc
index 85d4fc2..8243f1e 100644
--- a/basys3/basys3.srcs/io.xdc
+++ b/basys3/basys3.srcs/io.xdc
@@ -1,9 +1,7 @@
set_property IOSTANDARD LVCMOS33 [get_ports SPI_MOSI]
-set_property IOSTANDARD LVCMOS33 [get_ports SPI_CS]
set_property IOSTANDARD LVCMOS33 [get_ports SPI_CLK]
set_property PACKAGE_PIN J2 [get_ports SPI_CLK]
-set_property PACKAGE_PIN C15 [get_ports SPI_CS]
set_property PACKAGE_PIN L2 [get_ports SPI_MOSI]
set_property IOSTANDARD LVCMOS33 [get_ports SYSCLK]
diff --git a/basys3/basys3.srcs/makefile b/basys3/basys3.srcs/makefile
new file mode 100644
index 0000000..61fab40
--- /dev/null
+++ b/basys3/basys3.srcs/makefile
@@ -0,0 +1,5 @@
+ppu_tb.vhd: ppu_tb.vhd.m4 ../../test/ppu-stm-integration-demo/test-image.tb.vhd
+
+%.vhd: %.vhd.m4
+ m4 -I../../test/ppu-stm-integration-demo/ $< > $@
+
diff --git a/basys3/basys3.srcs/ppu_tb.vhd.m4 b/basys3/basys3.srcs/ppu_tb.vhd.m4
new file mode 100644
index 0000000..0797c9f
--- /dev/null
+++ b/basys3/basys3.srcs/ppu_tb.vhd.m4
@@ -0,0 +1,54 @@
+library ieee;
+library unisim;
+use ieee.std_logic_1164.all;
+use work.ppu_consts.all;
+use unisim.vcomponents.all;
+
+entity ppu_tb is
+end ppu_tb;
+
+architecture behavioral of ppu_tb is
+ component ppu port(
+ CLK100 : in std_logic; -- system clock
+ RESET : in std_logic; -- global (async) system reset
+ WEN : in std_logic; -- PPU VRAM write enable
+ ADDR : in std_logic_vector(PPU_RAM_BUS_ADDR_WIDTH-1 downto 0); -- PPU VRAM ADDR
+ DATA : in std_logic_vector(PPU_RAM_BUS_DATA_WIDTH-1 downto 0);
+ R,G,B : out std_logic_vector(PPU_COLOR_OUTPUT_DEPTH-1 downto 0);
+ VSYNC, HSYNC : out std_logic; -- VGA sync out
+ VBLANK : out std_logic); -- vblank for synchronization
+ end component;
+ signal CLK100, RESET, WEN : std_logic := '0';
+ signal ADDR : std_logic_vector(PPU_RAM_BUS_ADDR_WIDTH-1 downto 0);
+ signal DATA : std_logic_vector(PPU_RAM_BUS_DATA_WIDTH-1 downto 0);
+begin
+ uut : ppu port map (
+ CLK100 => CLK100,
+ RESET => RESET,
+ WEN => WEN,
+ ADDR => ADDR,
+ DATA => DATA,
+ R => open,
+ G => open,
+ B => open,
+ VSYNC => open,
+ HSYNC => open,
+ VBLANK => open);
+
+ process
+ begin
+ for i in 0 to 3200000 loop
+ wait for 5 ns;
+ CLK100 <= '1';
+ wait for 5 ns;
+ CLK100 <= '0';
+ end loop;
+ wait; -- stop for simulator
+ end process;
+
+ process
+ begin
+ -- undivert(`test-image.tb.vhd') -- m4 macro expansion (see makefile)
+ wait; -- stop after one loop (process loops in simulator)
+ end process;
+end Behavioral;
diff --git a/basys3/basys3.xpr b/basys3/basys3.xpr
index 82d7be5..acb43b0 100644
--- a/basys3/basys3.xpr
+++ b/basys3/basys3.xpr
@@ -44,6 +44,7 @@
<Option Name="SimulatorGccVersionActiveHdl" Val="9.3.0"/>
<Option Name="BoardPart" Val="digilentinc.com:basys3:part0:1.2"/>
<Option Name="BoardPartRepoPaths" Val="$PPRDIR/../../../../.Xilinx/Vivado/2022.2/xhub/board_store/xilinx_board_store"/>
+ <Option Name="SourceMgmtMode" Val="DisplayOnly"/>
<Option Name="ActiveSimSet" Val="sim_1"/>
<Option Name="DefaultLib" Val="xil_defaultlib"/>
<Option Name="ProjectType" Val="Default"/>
@@ -59,20 +60,20 @@
<Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/>
<Option Name="EnableBDX" Val="FALSE"/>
<Option Name="DSABoardId" Val="basys3"/>
- <Option Name="WTXSimLaunchSim" Val="19"/>
+ <Option Name="WTXSimLaunchSim" Val="33"/>
<Option Name="WTModelSimLaunchSim" Val="0"/>
<Option Name="WTQuestaLaunchSim" Val="0"/>
<Option Name="WTIesLaunchSim" Val="0"/>
<Option Name="WTVcsLaunchSim" Val="0"/>
<Option Name="WTRivieraLaunchSim" Val="0"/>
<Option Name="WTActivehdlLaunchSim" Val="0"/>
- <Option Name="WTXSimExportSim" Val="1"/>
- <Option Name="WTModelSimExportSim" Val="1"/>
- <Option Name="WTQuestaExportSim" Val="1"/>
+ <Option Name="WTXSimExportSim" Val="4"/>
+ <Option Name="WTModelSimExportSim" Val="4"/>
+ <Option Name="WTQuestaExportSim" Val="4"/>
<Option Name="WTIesExportSim" Val="0"/>
- <Option Name="WTVcsExportSim" Val="1"/>
- <Option Name="WTRivieraExportSim" Val="1"/>
- <Option Name="WTActivehdlExportSim" Val="1"/>
+ <Option Name="WTVcsExportSim" Val="4"/>
+ <Option Name="WTRivieraExportSim" Val="4"/>
+ <Option Name="WTActivehdlExportSim" Val="4"/>
<Option Name="GenerateIPUpgradeLog" Val="TRUE"/>
<Option Name="XSimRadix" Val="hex"/>
<Option Name="XSimTimeUnit" Val="ns"/>
@@ -203,22 +204,27 @@
</FileSet>
<FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1" RelGenDir="$PGENDIR/sim_1">
<Filter Type="Srcs"/>
+ <File Path="$PSRCDIR/ppu_comp_tb.vhd">
+ <FileInfo SFType="VHDL2008">
+ <Attr Name="UsedIn" Val="synthesis"/>
+ <Attr Name="UsedIn" Val="simulation"/>
+ </FileInfo>
+ </File>
<File Path="$PSRCDIR/spi_tb.vhd">
<FileInfo>
<Attr Name="UsedIn" Val="synthesis"/>
<Attr Name="UsedIn" Val="simulation"/>
</FileInfo>
</File>
- <File Path="$PSRCDIR/ppu_comp_tb.vhd">
+ <File Path="$PSRCDIR/ppu_tb.vhd">
<FileInfo SFType="VHDL2008">
- <Attr Name="AutoDisabled" Val="1"/>
<Attr Name="UsedIn" Val="synthesis"/>
<Attr Name="UsedIn" Val="simulation"/>
</FileInfo>
</File>
<Config>
<Option Name="DesignMode" Val="RTL"/>
- <Option Name="TopModule" Val="spi_tb"/>
+ <Option Name="TopModule" Val="ppu_tb"/>
<Option Name="TopLib" Val="xil_defaultlib"/>
<Option Name="TransportPathDelay" Val="0"/>
<Option Name="TransportIntDelay" Val="0"/>
@@ -234,18 +240,11 @@
</FileSet>
<FileSet Name="utils_1" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1">
<Filter Type="Utils"/>
- <File Path="$PSRCDIR/utils_1/imports/synth_1/top.dcp">
+ <File Path="$PSRCDIR/utils_1/imports/synth_3/top.dcp">
<FileInfo>
<Attr Name="UsedIn" Val="synthesis"/>
<Attr Name="UsedIn" Val="implementation"/>
- <Attr Name="AutoDcp" Val="1"/>
- </FileInfo>
- </File>
- <File Path="$PSRCDIR/utils_1/imports/synth_2/top.dcp">
- <FileInfo>
- <Attr Name="UsedIn" Val="synthesis"/>
- <Attr Name="UsedIn" Val="implementation"/>
- <Attr Name="UsedInSteps" Val="synth_2"/>
+ <Attr Name="UsedInSteps" Val="synth_3"/>
<Attr Name="AutoDcp" Val="1"/>
</FileInfo>
</File>
@@ -372,9 +371,11 @@
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
<RQSFiles/>
</Run>
- <Run Id="synth_2" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="true" IncrementalCheckpoint="$PSRCDIR/utils_1/imports/synth_2/top.dcp" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_2" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_2" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_2">
+ <Run Id="synth_3" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Vivado Synthesis Defaults" AutoIncrementalCheckpoint="true" IncrementalCheckpoint="$PSRCDIR/utils_1/imports/synth_3/top.dcp" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/synth_3" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_3" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_3">
<Strategy Version="1" Minor="2">
- <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022"/>
+ <StratHandle Name="Vivado Synthesis Defaults" Flow="Vivado Synthesis 2022">
+ <Desc>Vivado Synthesis Defaults</Desc>
+ </StratHandle>
<Step Id="synth_design"/>
</Strategy>
<GeneratedRun Dir="$PRUNDIR" File="gen_run.xml"/>
@@ -450,9 +451,11 @@
<Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/>
<RQSFiles/>
</Run>
- <Run Id="impl_2" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/impl_2" SynthRun="synth_2" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_2" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_2">
+ <Run Id="impl_3" Type="Ft2:EntireDesign" Part="xc7a35tcpg236-1" ConstrsSet="constrs_1" Description="Default settings for Implementation." AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" Dir="$PRUNDIR/impl_3" SynthRun="synth_3" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_3" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_3">
<Strategy Version="1" Minor="2">
- <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022"/>
+ <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2022">
+ <Desc>Default settings for Implementation.</Desc>
+ </StratHandle>
<Step Id="init_design"/>
<Step Id="opt_design"/>
<Step Id="power_opt_design"/>
diff --git a/src/ppu/internals.c b/src/ppu/internals.c
index b8d3e27..66c0ac1 100644
--- a/src/ppu/internals.c
+++ b/src/ppu/internals.c
@@ -25,7 +25,7 @@ hh_s_ppu_vram_data hh_ppu_2nat_bam(hh_s_ppu_loc_bam_entry e) {
data[0] = HH_RESIZE(e.tilemap_index, 9, 0) << 0 | HH_RESIZE(e.palette_index, 2, 0) << 10 | e.vertical_flip << 13 | e.horizontal_flip << 14;
- hh_s_ppu_vram_data out = {.data = data, .size = HH_PPU_VRAM_FAM_ENTRY_SIZE};
+ hh_s_ppu_vram_data out = {.data = data, .size = HH_PPU_VRAM_BAM_ENTRY_SIZE};
return out;
}
diff --git a/test/ppu-stm-integration-demo/.gitignore b/test/ppu-stm-integration-demo/.gitignore
index 8301053..e84341d 100644
--- a/test/ppu-stm-integration-demo/.gitignore
+++ b/test/ppu-stm-integration-demo/.gitignore
@@ -1 +1,2 @@
test-*.h
+test-*.vhd
diff --git a/test/ppu-stm-integration-demo/data2vhdltb.awk b/test/ppu-stm-integration-demo/data2vhdltb.awk
new file mode 100755
index 0000000..db4b53f
--- /dev/null
+++ b/test/ppu-stm-integration-demo/data2vhdltb.awk
@@ -0,0 +1,16 @@
+#!/bin/awk -f
+BEGIN {
+ printf "\n"
+ printf "\t\tWEN <= '1';\n"
+ printf "\n"
+}
+1 {
+ printf "\t\tADDR <= x\""$1"\";\n"
+ printf "\t\tDATA <= x\""$2"\";\n"
+ printf "\t\twait for 10 ns;\n"
+ printf "\n"
+}
+END {
+ printf "\t\tWEN <= '0';\n"
+ printf "\n"
+}
diff --git a/test/ppu-stm-integration-demo/makefile b/test/ppu-stm-integration-demo/makefile
index 0eeada5..7d7a7c8 100644
--- a/test/ppu-stm-integration-demo/makefile
+++ b/test/ppu-stm-integration-demo/makefile
@@ -1,4 +1,8 @@
-all: test-background-color.h test-image.h
+.PHONY: all clean
+
+TARGETS := test-background-color.h test-image.h test-image.tb.vhd
+
+all: $(TARGETS)
%.h: %.txt
echo "#pragma once" > $@
@@ -6,3 +10,9 @@ all: test-background-color.h test-image.h
(printf "#define HH_PPUINTDEMO_LENGTH "; wc -l < $<) >> $@
tr -d ':' < $< | awk 'BEGIN { printf "const uint16_t HH_PPUINTDEMO_ADDR[] = { " } 1 { printf "0x"$$1", " } END { print "};" }' >> $@
tr -d ':' < $< | awk 'BEGIN { printf "const uint16_t HH_PPUINTDEMO_DATA[] = { " } 1 { printf "0x"$$2", " } END { print "};" }' >> $@
+
+test-%.tb.vhd: test-%.txt ./data2vhdltb.awk
+ tr -d ':' < $< | ./data2vhdltb.awk > $@
+
+clean:
+ $(RM) $(TARGETS)
diff --git a/test/ppu-stm-integration-demo/test-image.txt b/test/ppu-stm-integration-demo/test-image.txt
index 48817a1..4384a33 100644
--- a/test/ppu-stm-integration-demo/test-image.txt
+++ b/test/ppu-stm-integration-demo/test-image.txt
@@ -103,2405 +103,1205 @@
0066: 0200
0067: 0000
dc01: 0444
-d000: 0001
d001: 5f5a
-d001: 0001
d002: 5f5a
-d002: 0001
d003: 5f5a
-d003: 0001
d004: 5f5a
-d004: 0001
d005: 5f5a
-d005: 0001
d006: 5f5a
-d006: 0001
d007: 5f5a
-d007: 0001
d008: 5f5a
-d008: 0001
d009: 5f5a
-d009: 0001
d00a: 5f5a
-d00a: 0001
d00b: 5f5a
-d00b: 0001
d00c: 5f5a
-d00c: 0001
d00d: 5f5a
-d00d: 0001
d00e: 5f5a
-d00e: 0001
d00f: 5f5a
-d00f: 0001
d010: 5f5a
-d010: 0001
d011: 5f5a
-d011: 0001
d012: 5f5a
-d012: 0001
d013: 5f5a
-d013: 0001
d014: 5f5a
-d014: 0001
d015: 5f5a
-d015: 0001
d016: 5f5a
-d016: 0001
d017: 5f5a
-d017: 0001
d018: 5f5a
-d018: 0001
d019: 5f5a
-d019: 0001
d01a: 5f5a
-d01a: 0001
d01b: 5f5a
-d01b: 0001
d01c: 5f5a
-d01c: 0001
d01d: 5f5a
-d01d: 0001
d01e: 5f5a
-d01e: 0001
d01f: 5f5a
-d01f: 0001
d020: 5f5a
-d020: 0001
d021: 5f5a
-d021: 0001
d022: 5f5a
-d022: 0001
d023: 5f5a
-d023: 0001
d024: 5f5a
-d024: 0001
d025: 5f5a
-d025: 0001
d026: 5f5a
-d026: 0001
d027: 5f5a
-d027: 0001
d028: 5f5a
-d028: 0001
d029: 5f5a
-d029: 0001
d02a: 5f5a
-d02a: 0001
d02b: 5f5a
-d02b: 0001
d02c: 5f5a
-d02c: 0001
d02d: 5f5a
-d02d: 0001
d02e: 5f5a
-d02e: 0001
d02f: 5f5a
-d02f: 0001
d030: 5f5a
-d030: 0001
d031: 5f5a
-d031: 0001
d032: 5f5a
-d032: 0001
d033: 5f5a
-d033: 0001
d034: 5f5a
-d034: 0001
d035: 5f5a
-d035: 0001
d036: 5f5a
-d036: 0001
d037: 5f5a
-d037: 0001
d038: 5f5a
-d038: 0001
d039: 5f5a
-d039: 0001
d03a: 5f5a
-d03a: 0001
d03b: 5f5a
-d03b: 0001
d03c: 5f5a
-d03c: 0001
d03d: 5f5a
-d03d: 0001
d03e: 5f5a
-d03e: 0001
d03f: 5f5a
-d03f: 0001
d040: 5f5a
-d040: 0001
d041: 5f5a
-d041: 0001
d042: 5f5a
-d042: 0001
d043: 5f5a
-d043: 0001
d044: 5f5a
-d044: 0001
d045: 5f5a
-d045: 0001
d046: 5f5a
-d046: 0001
d047: 5f5a
-d047: 0001
d048: 5f5a
-d048: 0001
d049: 5f5a
-d049: 0001
d04a: 5f5a
-d04a: 0001
d04b: 5f5a
-d04b: 0001
d04c: 5f5a
-d04c: 0001
d04d: 5f5a
-d04d: 0001
d04e: 5f5a
-d04e: 0001
d04f: 5f5a
-d04f: 0001
d050: 5f5a
-d050: 0001
d051: 5f5a
-d051: 0001
d052: 5f5a
-d052: 0001
d053: 5f5a
-d053: 0001
d054: 5f5a
-d054: 0001
d055: 5f5a
-d055: 0001
d056: 5f5a
-d056: 0001
d057: 5f5a
-d057: 0001
d058: 5f5a
-d058: 0001
d059: 5f5a
-d059: 0001
d05a: 5f5a
-d05a: 0001
d05b: 5f5a
-d05b: 0001
d05c: 5f5a
-d05c: 0001
d05d: 5f5a
-d05d: 0001
d05e: 5f5a
-d05e: 0001
d05f: 5f5a
-d05f: 0001
d060: 5f5a
-d060: 0001
d061: 5f5a
-d061: 0001
d062: 5f5a
-d062: 0001
d063: 5f5a
-d063: 0001
d064: 5f5a
-d064: 0001
d065: 5f5a
-d065: 0001
d066: 5f5a
-d066: 0001
d067: 5f5a
-d067: 0001
d068: 5f5a
-d068: 0001
d069: 5f5a
-d069: 0001
d06a: 5f5a
-d06a: 0001
d06b: 5f5a
-d06b: 0001
d06c: 5f5a
-d06c: 0001
d06d: 5f5a
-d06d: 0001
d06e: 5f5a
-d06e: 0001
d06f: 5f5a
-d06f: 0001
d070: 5f5a
-d070: 0001
d071: 5f5a
-d071: 0001
d072: 5f5a
-d072: 0001
d073: 5f5a
-d073: 0001
d074: 5f5a
-d074: 0001
d075: 5f5a
-d075: 0001
d076: 5f5a
-d076: 0001
d077: 5f5a
-d077: 0001
d078: 5f5a
-d078: 0001
d079: 5f5a
-d079: 0001
d07a: 5f5a
-d07a: 0001
d07b: 5f5a
-d07b: 0001
d07c: 5f5a
-d07c: 0001
d07d: 5f5a
-d07d: 0001
d07e: 5f5a
-d07e: 0001
d07f: 5f5a
-d07f: 0001
d080: 5f5a
-d080: 0001
d081: 5f5a
-d081: 0001
d082: 5f5a
-d082: 0001
d083: 5f5a
-d083: 0001
d084: 5f5a
-d084: 0001
d085: 5f5a
-d085: 0001
d086: 5f5a
-d086: 0001
d087: 5f5a
-d087: 0001
d088: 5f5a
-d088: 0001
d089: 5f5a
-d089: 0001
d08a: 5f5a
-d08a: 0001
d08b: 5f5a
-d08b: 0001
d08c: 5f5a
-d08c: 0001
d08d: 5f5a
-d08d: 0001
d08e: 5f5a
-d08e: 0001
d08f: 5f5a
-d08f: 0001
d090: 5f5a
-d090: 0001
d091: 5f5a
-d091: 0001
d092: 5f5a
-d092: 0001
d093: 5f5a
-d093: 0001
d094: 5f5a
-d094: 0001
d095: 5f5a
-d095: 0001
d096: 5f5a
-d096: 0001
d097: 5f5a
-d097: 0001
d098: 5f5a
-d098: 0001
d099: 5f5a
-d099: 0001
d09a: 5f5a
-d09a: 0001
d09b: 5f5a
-d09b: 0001
d09c: 5f5a
-d09c: 0001
d09d: 5f5a
-d09d: 0001
d09e: 5f5a
-d09e: 0001
d09f: 5f5a
-d09f: 0001
d0a0: 5f5a
-d0a0: 0001
d0a1: 5f5a
-d0a1: 0001
d0a2: 5f5a
-d0a2: 0001
d0a3: 5f5a
-d0a3: 0001
d0a4: 5f5a
-d0a4: 0001
d0a5: 5f5a
-d0a5: 0001
d0a6: 5f5a
-d0a6: 0001
d0a7: 5f5a
-d0a7: 0001
d0a8: 5f5a
-d0a8: 0001
d0a9: 5f5a
-d0a9: 0001
d0aa: 5f5a
-d0aa: 0001
d0ab: 5f5a
-d0ab: 0001
d0ac: 5f5a
-d0ac: 0001
d0ad: 5f5a
-d0ad: 0001
d0ae: 5f5a
-d0ae: 0001
d0af: 5f5a
-d0af: 0001
d0b0: 5f5a
-d0b0: 0001
d0b1: 5f5a
-d0b1: 0001
d0b2: 5f5a
-d0b2: 0001
d0b3: 5f5a
-d0b3: 0001
d0b4: 5f5a
-d0b4: 0001
d0b5: 5f5a
-d0b5: 0001
d0b6: 5f5a
-d0b6: 0001
d0b7: 5f5a
-d0b7: 0001
d0b8: 5f5a
-d0b8: 0001
d0b9: 5f5a
-d0b9: 0001
d0ba: 5f5a
-d0ba: 0001
d0bb: 5f5a
-d0bb: 0001
d0bc: 5f5a
-d0bc: 0001
d0bd: 5f5a
-d0bd: 0001
d0be: 5f5a
-d0be: 0001
d0bf: 5f5a
-d0bf: 0001
d0c0: 5f5a
-d0c0: 0001
d0c1: 5f5a
-d0c1: 0001
d0c2: 5f5a
-d0c2: 0001
d0c3: 5f5a
-d0c3: 0001
d0c4: 5f5a
-d0c4: 0001
d0c5: 5f5a
-d0c5: 0001
d0c6: 5f5a
-d0c6: 0001
d0c7: 5f5a
-d0c7: 0001
d0c8: 5f5a
-d0c8: 0001
d0c9: 5f5a
-d0c9: 0001
d0ca: 5f5a
-d0ca: 0001
d0cb: 5f5a
-d0cb: 0001
d0cc: 5f5a
-d0cc: 0001
d0cd: 5f5a
-d0cd: 0001
d0ce: 5f5a
-d0ce: 0001
d0cf: 5f5a
-d0cf: 0001
d0d0: 5f5a
-d0d0: 0001
d0d1: 5f5a
-d0d1: 0001
d0d2: 5f5a
-d0d2: 0001
d0d3: 5f5a
-d0d3: 0001
d0d4: 5f5a
-d0d4: 0001
d0d5: 5f5a
-d0d5: 0001
d0d6: 5f5a
-d0d6: 0001
d0d7: 5f5a
-d0d7: 0001
d0d8: 5f5a
-d0d8: 0001
d0d9: 5f5a
-d0d9: 0001
d0da: 5f5a
-d0da: 0001
d0db: 5f5a
-d0db: 0001
d0dc: 5f5a
-d0dc: 0001
d0dd: 5f5a
-d0dd: 0001
d0de: 5f5a
-d0de: 0001
d0df: 5f5a
-d0df: 0001
d0e0: 5f5a
-d0e0: 0001
d0e1: 5f5a
-d0e1: 0001
d0e2: 5f5a
-d0e2: 0001
d0e3: 5f5a
-d0e3: 0001
d0e4: 5f5a
-d0e4: 0001
d0e5: 5f5a
-d0e5: 0001
d0e6: 5f5a
-d0e6: 0001
d0e7: 5f5a
-d0e7: 0001
d0e8: 5f5a
-d0e8: 0001
d0e9: 5f5a
-d0e9: 0001
d0ea: 5f5a
-d0ea: 0001
d0eb: 5f5a
-d0eb: 0001
d0ec: 5f5a
-d0ec: 0001
d0ed: 5f5a
-d0ed: 0001
d0ee: 5f5a
-d0ee: 0001
d0ef: 5f5a
-d0ef: 0001
d0f0: 5f5a
-d0f0: 0001
d0f1: 5f5a
-d0f1: 0001
d0f2: 5f5a
-d0f2: 0001
d0f3: 5f5a
-d0f3: 0001
d0f4: 5f5a
-d0f4: 0001
d0f5: 5f5a
-d0f5: 0001
d0f6: 5f5a
-d0f6: 0001
d0f7: 5f5a
-d0f7: 0001
d0f8: 5f5a
-d0f8: 0001
d0f9: 5f5a
-d0f9: 0001
d0fa: 5f5a
-d0fa: 0001
d0fb: 5f5a
-d0fb: 0001
d0fc: 5f5a
-d0fc: 0001
d0fd: 5f5a
-d0fd: 0001
d0fe: 5f5a
-d0fe: 0001
d0ff: 5f5a
-d0ff: 0001
d100: 5f5a
-d100: 0001
d101: 5f5a
-d101: 0001
d102: 5f5a
-d102: 0001
d103: 5f5a
-d103: 0001
d104: 5f5a
-d104: 0001
d105: 5f5a
-d105: 0001
d106: 5f5a
-d106: 0001
d107: 5f5a
-d107: 0001
d108: 5f5a
-d108: 0001
d109: 5f5a
-d109: 0001
d10a: 5f5a
-d10a: 0001
d10b: 5f5a
-d10b: 0001
d10c: 5f5a
-d10c: 0001
d10d: 5f5a
-d10d: 0001
d10e: 5f5a
-d10e: 0001
d10f: 5f5a
-d10f: 0001
d110: 5f5a
-d110: 0001
d111: 5f5a
-d111: 0001
d112: 5f5a
-d112: 0001
d113: 5f5a
-d113: 0001
d114: 5f5a
-d114: 0001
d115: 5f5a
-d115: 0001
d116: 5f5a
-d116: 0001
d117: 5f5a
-d117: 0001
d118: 5f5a
-d118: 0001
d119: 5f5a
-d119: 0001
d11a: 5f5a
-d11a: 0001
d11b: 5f5a
-d11b: 0001
d11c: 5f5a
-d11c: 0001
d11d: 5f5a
-d11d: 0001
d11e: 5f5a
-d11e: 0001
d11f: 5f5a
-d11f: 0001
d120: 5f5a
-d120: 0001
d121: 5f5a
-d121: 0001
d122: 5f5a
-d122: 0001
d123: 5f5a
-d123: 0001
d124: 5f5a
-d124: 0001
d125: 5f5a
-d125: 0001
d126: 5f5a
-d126: 0001
d127: 5f5a
-d127: 0001
d128: 5f5a
-d128: 0001
d129: 5f5a
-d129: 0001
d12a: 5f5a
-d12a: 0001
d12b: 5f5a
-d12b: 0001
d12c: 5f5a
-d12c: 0001
d12d: 5f5a
-d12d: 0001
d12e: 5f5a
-d12e: 0001
d12f: 5f5a
-d12f: 0001
d130: 5f5a
-d130: 0001
d131: 5f5a
-d131: 0001
d132: 5f5a
-d132: 0001
d133: 5f5a
-d133: 0001
d134: 5f5a
-d134: 0001
d135: 5f5a
-d135: 0001
d136: 5f5a
-d136: 0001
d137: 5f5a
-d137: 0001
d138: 5f5a
-d138: 0001
d139: 5f5a
-d139: 0001
d13a: 5f5a
-d13a: 0001
d13b: 5f5a
-d13b: 0001
d13c: 5f5a
-d13c: 0001
d13d: 5f5a
-d13d: 0001
d13e: 5f5a
-d13e: 0001
d13f: 5f5a
-d13f: 0001
d140: 5f5a
-d140: 0001
d141: 5f5a
-d141: 0001
d142: 5f5a
-d142: 0001
d143: 5f5a
-d143: 0001
d144: 5f5a
-d144: 0001
d145: 5f5a
-d145: 0001
d146: 5f5a
-d146: 0001
d147: 5f5a
-d147: 0001
d148: 5f5a
-d148: 0001
d149: 5f5a
-d149: 0001
d14a: 5f5a
-d14a: 0001
d14b: 5f5a
-d14b: 0001
d14c: 5f5a
-d14c: 0001
d14d: 5f5a
-d14d: 0001
d14e: 5f5a
-d14e: 0001
d14f: 5f5a
-d14f: 0001
d150: 5f5a
-d150: 0001
d151: 5f5a
-d151: 0001
d152: 5f5a
-d152: 0001
d153: 5f5a
-d153: 0001
d154: 5f5a
-d154: 0001
d155: 5f5a
-d155: 0001
d156: 5f5a
-d156: 0001
d157: 5f5a
-d157: 0001
d158: 5f5a
-d158: 0001
d159: 5f5a
-d159: 0001
d15a: 5f5a
-d15a: 0001
d15b: 5f5a
-d15b: 0001
d15c: 5f5a
-d15c: 0001
d15d: 5f5a
-d15d: 0001
d15e: 5f5a
-d15e: 0001
d15f: 5f5a
-d15f: 0001
d160: 5f5a
-d160: 0001
d161: 5f5a
-d161: 0001
d162: 5f5a
-d162: 0001
d163: 5f5a
-d163: 0001
d164: 5f5a
-d164: 0001
d165: 5f5a
-d165: 0001
d166: 5f5a
-d166: 0001
d167: 5f5a
-d167: 0001
d168: 5f5a
-d168: 0001
d169: 5f5a
-d169: 0001
d16a: 5f5a
-d16a: 0001
d16b: 5f5a
-d16b: 0001
d16c: 5f5a
-d16c: 0001
d16d: 5f5a
-d16d: 0001
d16e: 5f5a
-d16e: 0001
d16f: 5f5a
-d16f: 0001
d170: 5f5a
-d170: 0001
d171: 5f5a
-d171: 0001
d172: 5f5a
-d172: 0001
d173: 5f5a
-d173: 0001
d174: 5f5a
-d174: 0001
d175: 5f5a
-d175: 0001
d176: 5f5a
-d176: 0001
d177: 5f5a
-d177: 0001
d178: 5f5a
-d178: 0001
d179: 5f5a
-d179: 0001
d17a: 5f5a
-d17a: 0001
d17b: 5f5a
-d17b: 0001
d17c: 5f5a
-d17c: 0001
d17d: 5f5a
-d17d: 0001
d17e: 5f5a
-d17e: 0001
d17f: 5f5a
-d17f: 0001
d180: 5f5a
-d180: 0001
d181: 5f5a
-d181: 0001
d182: 5f5a
-d182: 0001
d183: 5f5a
-d183: 0001
d184: 5f5a
-d184: 0001
d185: 5f5a
-d185: 0001
d186: 5f5a
-d186: 0001
d187: 5f5a
-d187: 0001
d188: 5f5a
-d188: 0001
d189: 5f5a
-d189: 0001
d18a: 5f5a
-d18a: 0001
d18b: 5f5a
-d18b: 0001
d18c: 5f5a
-d18c: 0001
d18d: 5f5a
-d18d: 0001
d18e: 5f5a
-d18e: 0001
d18f: 5f5a
-d18f: 0001
d190: 5f5a
-d190: 0001
d191: 5f5a
-d191: 0001
d192: 5f5a
-d192: 0001
d193: 5f5a
-d193: 0001
d194: 5f5a
-d194: 0001
d195: 5f5a
-d195: 0001
d196: 5f5a
-d196: 0001
d197: 5f5a
-d197: 0001
d198: 5f5a
-d198: 0001
d199: 5f5a
-d199: 0001
d19a: 5f5a
-d19a: 0001
d19b: 5f5a
-d19b: 0001
d19c: 5f5a
-d19c: 0001
d19d: 5f5a
-d19d: 0001
d19e: 5f5a
-d19e: 0001
d19f: 5f5a
-d19f: 0001
d1a0: 5f5a
-d1a0: 0001
d1a1: 5f5a
-d1a1: 0001
d1a2: 5f5a
-d1a2: 0001
d1a3: 5f5a
-d1a3: 0001
d1a4: 5f5a
-d1a4: 0001
d1a5: 5f5a
-d1a5: 0001
d1a6: 5f5a
-d1a6: 0001
d1a7: 5f5a
-d1a7: 0001
d1a8: 5f5a
-d1a8: 0001
d1a9: 5f5a
-d1a9: 0001
d1aa: 5f5a
-d1aa: 0001
d1ab: 5f5a
-d1ab: 0001
d1ac: 5f5a
-d1ac: 0001
d1ad: 5f5a
-d1ad: 0001
d1ae: 5f5a
-d1ae: 0001
d1af: 5f5a
-d1af: 0001
d1b0: 5f5a
-d1b0: 0001
d1b1: 5f5a
-d1b1: 0001
d1b2: 5f5a
-d1b2: 0001
d1b3: 5f5a
-d1b3: 0001
d1b4: 5f5a
-d1b4: 0001
d1b5: 5f5a
-d1b5: 0001
d1b6: 5f5a
-d1b6: 0001
d1b7: 5f5a
-d1b7: 0001
d1b8: 5f5a
-d1b8: 0001
d1b9: 5f5a
-d1b9: 0001
d1ba: 5f5a
-d1ba: 0001
d1bb: 5f5a
-d1bb: 0001
d1bc: 5f5a
-d1bc: 0001
d1bd: 5f5a
-d1bd: 0001
d1be: 5f5a
-d1be: 0001
d1bf: 5f5a
-d1bf: 0001
d1c0: 5f5a
-d1c0: 0001
d1c1: 5f5a
-d1c1: 0001
d1c2: 5f5a
-d1c2: 0001
d1c3: 5f5a
-d1c3: 0001
d1c4: 5f5a
-d1c4: 0001
d1c5: 5f5a
-d1c5: 0001
d1c6: 5f5a
-d1c6: 0001
d1c7: 5f5a
-d1c7: 0001
d1c8: 5f5a
-d1c8: 0001
d1c9: 5f5a
-d1c9: 0001
d1ca: 5f5a
-d1ca: 0001
d1cb: 5f5a
-d1cb: 0001
d1cc: 5f5a
-d1cc: 0001
d1cd: 5f5a
-d1cd: 0001
d1ce: 5f5a
-d1ce: 0001
d1cf: 5f5a
-d1cf: 0001
d1d0: 5f5a
-d1d0: 0001
d1d1: 5f5a
-d1d1: 0001
d1d2: 5f5a
-d1d2: 0001
d1d3: 5f5a
-d1d3: 0001
d1d4: 5f5a
-d1d4: 0001
d1d5: 5f5a
-d1d5: 0001
d1d6: 5f5a
-d1d6: 0001
d1d7: 5f5a
-d1d7: 0001
d1d8: 5f5a
-d1d8: 0001
d1d9: 5f5a
-d1d9: 0001
d1da: 5f5a
-d1da: 0001
d1db: 5f5a
-d1db: 0001
d1dc: 5f5a
-d1dc: 0001
d1dd: 5f5a
-d1dd: 0001
d1de: 5f5a
-d1de: 0001
d1df: 5f5a
-d1df: 0001
d1e0: 5f5a
-d1e0: 0001
d1e1: 5f5a
-d1e1: 0001
d1e2: 5f5a
-d1e2: 0001
d1e3: 5f5a
-d1e3: 0001
d1e4: 5f5a
-d1e4: 0001
d1e5: 5f5a
-d1e5: 0001
d1e6: 5f5a
-d1e6: 0001
d1e7: 5f5a
-d1e7: 0001
d1e8: 5f5a
-d1e8: 0001
d1e9: 5f5a
-d1e9: 0001
d1ea: 5f5a
-d1ea: 0001
d1eb: 5f5a
-d1eb: 0001
d1ec: 5f5a
-d1ec: 0001
d1ed: 5f5a
-d1ed: 0001
d1ee: 5f5a
-d1ee: 0001
d1ef: 5f5a
-d1ef: 0001
d1f0: 5f5a
-d1f0: 0001
d1f1: 5f5a
-d1f1: 0001
d1f2: 5f5a
-d1f2: 0001
d1f3: 5f5a
-d1f3: 0001
d1f4: 5f5a
-d1f4: 0001
d1f5: 5f5a
-d1f5: 0001
d1f6: 5f5a
-d1f6: 0001
d1f7: 5f5a
-d1f7: 0001
d1f8: 5f5a
-d1f8: 0001
d1f9: 5f5a
-d1f9: 0001
d1fa: 5f5a
-d1fa: 0001
d1fb: 5f5a
-d1fb: 0001
d1fc: 5f5a
-d1fc: 0001
d1fd: 5f5a
-d1fd: 0001
d1fe: 5f5a
-d1fe: 0001
d1ff: 5f5a
-d1ff: 0001
d200: 5f5a
-d200: 0001
d201: 5f5a
-d201: 0001
d202: 5f5a
-d202: 0001
d203: 5f5a
-d203: 0001
d204: 5f5a
-d204: 0001
d205: 5f5a
-d205: 0001
d206: 5f5a
-d206: 0001
d207: 5f5a
-d207: 0001
d208: 5f5a
-d208: 0001
d209: 5f5a
-d209: 0001
d20a: 5f5a
-d20a: 0001
d20b: 5f5a
-d20b: 0001
d20c: 5f5a
-d20c: 0001
d20d: 5f5a
-d20d: 0001
d20e: 5f5a
-d20e: 0001
d20f: 5f5a
-d20f: 0001
d210: 5f5a
-d210: 0001
d211: 5f5a
-d211: 0001
d212: 5f5a
-d212: 0001
d213: 5f5a
-d213: 0001
d214: 5f5a
-d214: 0001
d215: 5f5a
-d215: 0001
d216: 5f5a
-d216: 0001
d217: 5f5a
-d217: 0001
d218: 5f5a
-d218: 0001
d219: 5f5a
-d219: 0001
d21a: 5f5a
-d21a: 0001
d21b: 5f5a
-d21b: 0001
d21c: 5f5a
-d21c: 0001
d21d: 5f5a
-d21d: 0001
d21e: 5f5a
-d21e: 0001
d21f: 5f5a
-d21f: 0001
d220: 5f5a
-d220: 0001
d221: 5f5a
-d221: 0001
d222: 5f5a
-d222: 0001
d223: 5f5a
-d223: 0001
d224: 5f5a
-d224: 0001
d225: 5f5a
-d225: 0001
d226: 5f5a
-d226: 0001
d227: 5f5a
-d227: 0001
d228: 5f5a
-d228: 0001
d229: 5f5a
-d229: 0001
d22a: 5f5a
-d22a: 0001
d22b: 5f5a
-d22b: 0001
d22c: 5f5a
-d22c: 0001
d22d: 5f5a
-d22d: 0001
d22e: 5f5a
-d22e: 0001
d22f: 5f5a
-d22f: 0001
d230: 5f5a
-d230: 0001
d231: 5f5a
-d231: 0001
d232: 5f5a
-d232: 0001
d233: 5f5a
-d233: 0001
d234: 5f5a
-d234: 0001
d235: 5f5a
-d235: 0001
d236: 5f5a
-d236: 0001
d237: 5f5a
-d237: 0001
d238: 5f5a
-d238: 0001
d239: 5f5a
-d239: 0001
d23a: 5f5a
-d23a: 0001
d23b: 5f5a
-d23b: 0001
d23c: 5f5a
-d23c: 0001
d23d: 5f5a
-d23d: 0001
d23e: 5f5a
-d23e: 0001
d23f: 5f5a
-d23f: 0001
d240: 5f5a
-d240: 0001
d241: 5f5a
-d241: 0001
d242: 5f5a
-d242: 0001
d243: 5f5a
-d243: 0001
d244: 5f5a
-d244: 0001
d245: 5f5a
-d245: 0001
d246: 5f5a
-d246: 0001
d247: 5f5a
-d247: 0001
d248: 5f5a
-d248: 0001
d249: 5f5a
-d249: 0001
d24a: 5f5a
-d24a: 0001
d24b: 5f5a
-d24b: 0001
d24c: 5f5a
-d24c: 0001
d24d: 5f5a
-d24d: 0001
d24e: 5f5a
-d24e: 0001
d24f: 5f5a
-d24f: 0001
d250: 5f5a
-d250: 0001
d251: 5f5a
-d251: 0001
d252: 5f5a
-d252: 0001
d253: 5f5a
-d253: 0001
d254: 5f5a
-d254: 0001
d255: 5f5a
-d255: 0001
d256: 5f5a
-d256: 0001
d257: 5f5a
-d257: 0001
d258: 5f5a
-d258: 0001
d259: 5f5a
-d259: 0001
d25a: 5f5a
-d25a: 0001
d25b: 5f5a
-d25b: 0001
d25c: 5f5a
-d25c: 0001
d25d: 5f5a
-d25d: 0001
d25e: 5f5a
-d25e: 0001
d25f: 5f5a
-d25f: 0001
d260: 5f5a
-d260: 0001
d261: 5f5a
-d261: 0001
d262: 5f5a
-d262: 0001
d263: 5f5a
-d263: 0001
d264: 5f5a
-d264: 0001
d265: 5f5a
-d265: 0001
d266: 5f5a
-d266: 0001
d267: 5f5a
-d267: 0001
d268: 5f5a
-d268: 0001
d269: 5f5a
-d269: 0001
d26a: 5f5a
-d26a: 0001
d26b: 5f5a
-d26b: 0001
d26c: 5f5a
-d26c: 0001
d26d: 5f5a
-d26d: 0001
d26e: 5f5a
-d26e: 0001
d26f: 5f5a
-d26f: 0001
d270: 5f5a
-d270: 0001
d271: 5f5a
-d271: 0001
d272: 5f5a
-d272: 0001
d273: 5f5a
-d273: 0001
d274: 5f5a
-d274: 0001
d275: 5f5a
-d275: 0001
d276: 5f5a
-d276: 0001
d277: 5f5a
-d277: 0001
d278: 5f5a
-d278: 0001
d279: 5f5a
-d279: 0001
d27a: 5f5a
-d27a: 0001
d27b: 5f5a
-d27b: 0001
d27c: 5f5a
-d27c: 0001
d27d: 5f5a
-d27d: 0001
d27e: 5f5a
-d27e: 0001
d27f: 5f5a
-d27f: 0001
d280: 5f5a
-d280: 0001
d281: 5f5a
-d281: 0001
d282: 5f5a
-d282: 0001
d283: 5f5a
-d283: 0001
d284: 5f5a
-d284: 0001
d285: 5f5a
-d285: 0001
d286: 5f5a
-d286: 0001
d287: 5f5a
-d287: 0001
d288: 5f5a
-d288: 0001
d289: 5f5a
-d289: 0001
d28a: 5f5a
-d28a: 0001
d28b: 5f5a
-d28b: 0001
d28c: 5f5a
-d28c: 0001
d28d: 5f5a
-d28d: 0001
d28e: 5f5a
-d28e: 0001
d28f: 5f5a
-d28f: 0001
d290: 5f5a
-d290: 0001
d291: 5f5a
-d291: 0001
d292: 5f5a
-d292: 0001
d293: 5f5a
-d293: 0001
d294: 5f5a
-d294: 0001
d295: 5f5a
-d295: 0001
d296: 5f5a
-d296: 0001
d297: 5f5a
-d297: 0001
d298: 5f5a
-d298: 0001
d299: 5f5a
-d299: 0001
d29a: 5f5a
-d29a: 0001
d29b: 5f5a
-d29b: 0001
d29c: 5f5a
-d29c: 0001
d29d: 5f5a
-d29d: 0001
d29e: 5f5a
-d29e: 0001
d29f: 5f5a
-d29f: 0001
d2a0: 5f5a
-d2a0: 0001
d2a1: 5f5a
-d2a1: 0001
d2a2: 5f5a
-d2a2: 0001
d2a3: 5f5a
-d2a3: 0001
d2a4: 5f5a
-d2a4: 0001
d2a5: 5f5a
-d2a5: 0001
d2a6: 5f5a
-d2a6: 0001
d2a7: 5f5a
-d2a7: 0001
d2a8: 5f5a
-d2a8: 0001
d2a9: 5f5a
-d2a9: 0001
d2aa: 5f5a
-d2aa: 0001
d2ab: 5f5a
-d2ab: 0001
d2ac: 5f5a
-d2ac: 0001
d2ad: 5f5a
-d2ad: 0001
d2ae: 5f5a
-d2ae: 0001
d2af: 5f5a
-d2af: 0001
d2b0: 5f5a
-d2b0: 0001
d2b1: 5f5a
-d2b1: 0001
d2b2: 5f5a
-d2b2: 0001
d2b3: 5f5a
-d2b3: 0001
d2b4: 5f5a
-d2b4: 0001
d2b5: 5f5a
-d2b5: 0001
d2b6: 5f5a
-d2b6: 0001
d2b7: 5f5a
-d2b7: 0001
d2b8: 5f5a
-d2b8: 0001
d2b9: 5f5a
-d2b9: 0001
d2ba: 5f5a
-d2ba: 0001
d2bb: 5f5a
-d2bb: 0001
d2bc: 5f5a
-d2bc: 0001
d2bd: 5f5a
-d2bd: 0001
d2be: 5f5a
-d2be: 0001
d2bf: 5f5a
-d2bf: 0001
d2c0: 5f5a
-d2c0: 0001
d2c1: 5f5a
-d2c1: 0001
d2c2: 5f5a
-d2c2: 0001
d2c3: 5f5a
-d2c3: 0001
d2c4: 5f5a
-d2c4: 0001
d2c5: 5f5a
-d2c5: 0001
d2c6: 5f5a
-d2c6: 0001
d2c7: 5f5a
-d2c7: 0001
d2c8: 5f5a
-d2c8: 0001
d2c9: 5f5a
-d2c9: 0001
d2ca: 5f5a
-d2ca: 0001
d2cb: 5f5a
-d2cb: 0001
d2cc: 5f5a
-d2cc: 0001
d2cd: 5f5a
-d2cd: 0001
d2ce: 5f5a
-d2ce: 0001
d2cf: 5f5a
-d2cf: 0001
d2d0: 5f5a
-d2d0: 0001
d2d1: 5f5a
-d2d1: 0001
d2d2: 5f5a
-d2d2: 0001
d2d3: 5f5a
-d2d3: 0001
d2d4: 5f5a
-d2d4: 0001
d2d5: 5f5a
-d2d5: 0001
d2d6: 5f5a
-d2d6: 0001
d2d7: 5f5a
-d2d7: 0001
d2d8: 5f5a
-d2d8: 0001
d2d9: 5f5a
-d2d9: 0001
d2da: 5f5a
-d2da: 0001
d2db: 5f5a
-d2db: 0001
d2dc: 5f5a
-d2dc: 0001
d2dd: 5f5a
-d2dd: 0001
d2de: 5f5a
-d2de: 0001
d2df: 5f5a
-d2df: 0001
d2e0: 5f5a
-d2e0: 0001
d2e1: 5f5a
-d2e1: 0001
d2e2: 5f5a
-d2e2: 0001
d2e3: 5f5a
-d2e3: 0001
d2e4: 5f5a
-d2e4: 0001
d2e5: 5f5a
-d2e5: 0001
d2e6: 5f5a
-d2e6: 0001
d2e7: 5f5a
-d2e7: 0001
d2e8: 5f5a
-d2e8: 0001
d2e9: 5f5a
-d2e9: 0001
d2ea: 5f5a
-d2ea: 0001
d2eb: 5f5a
-d2eb: 0001
d2ec: 5f5a
-d2ec: 0001
d2ed: 5f5a
-d2ed: 0001
d2ee: 5f5a
-d2ee: 0001
d2ef: 5f5a
-d2ef: 0001
d2f0: 5f5a
-d2f0: 0001
d2f1: 5f5a
-d2f1: 0001
d2f2: 5f5a
-d2f2: 0001
d2f3: 5f5a
-d2f3: 0001
d2f4: 5f5a
-d2f4: 0001
d2f5: 5f5a
-d2f5: 0001
d2f6: 5f5a
-d2f6: 0001
d2f7: 5f5a
-d2f7: 0001
d2f8: 5f5a
-d2f8: 0001
d2f9: 5f5a
-d2f9: 0001
d2fa: 5f5a
-d2fa: 0001
d2fb: 5f5a
-d2fb: 0001
d2fc: 5f5a
-d2fc: 0001
d2fd: 5f5a
-d2fd: 0001
d2fe: 5f5a
-d2fe: 0001
d2ff: 5f5a
-d2ff: 0001
d300: 5f5a
-d300: 0001
d301: 5f5a
-d301: 0001
d302: 5f5a
-d302: 0001
d303: 5f5a
-d303: 0001
d304: 5f5a
-d304: 0001
d305: 5f5a
-d305: 0001
d306: 5f5a
-d306: 0001
d307: 5f5a
-d307: 0001
d308: 5f5a
-d308: 0001
d309: 5f5a
-d309: 0001
d30a: 5f5a
-d30a: 0001
d30b: 5f5a
-d30b: 0001
d30c: 5f5a
-d30c: 0001
d30d: 5f5a
-d30d: 0001
d30e: 5f5a
-d30e: 0001
d30f: 5f5a
-d30f: 0001
d310: 5f5a
-d310: 0001
d311: 5f5a
-d311: 0001
d312: 5f5a
-d312: 0001
d313: 5f5a
-d313: 0001
d314: 5f5a
-d314: 0001
d315: 5f5a
-d315: 0001
d316: 5f5a
-d316: 0001
d317: 5f5a
-d317: 0001
d318: 5f5a
-d318: 0001
d319: 5f5a
-d319: 0001
d31a: 5f5a
-d31a: 0001
d31b: 5f5a
-d31b: 0001
d31c: 5f5a
-d31c: 0001
d31d: 5f5a
-d31d: 0001
d31e: 5f5a
-d31e: 0001
d31f: 5f5a
-d31f: 0001
d320: 5f5a
-d320: 0001
d321: 5f5a
-d321: 0001
d322: 5f5a
-d322: 0001
d323: 5f5a
-d323: 0001
d324: 5f5a
-d324: 0001
d325: 5f5a
-d325: 0001
d326: 5f5a
-d326: 0001
d327: 5f5a
-d327: 0001
d328: 5f5a
-d328: 0001
d329: 5f5a
-d329: 0001
d32a: 5f5a
-d32a: 0001
d32b: 5f5a
-d32b: 0001
d32c: 5f5a
-d32c: 0001
d32d: 5f5a
-d32d: 0001
d32e: 5f5a
-d32e: 0001
d32f: 5f5a
-d32f: 0001
d330: 5f5a
-d330: 0001
d331: 5f5a
-d331: 0001
d332: 5f5a
-d332: 0001
d333: 5f5a
-d333: 0001
d334: 5f5a
-d334: 0001
d335: 5f5a
-d335: 0001
d336: 5f5a
-d336: 0001
d337: 5f5a
-d337: 0001
d338: 5f5a
-d338: 0001
d339: 5f5a
-d339: 0001
d33a: 5f5a
-d33a: 0001
d33b: 5f5a
-d33b: 0001
d33c: 5f5a
-d33c: 0001
d33d: 5f5a
-d33d: 0001
d33e: 5f5a
-d33e: 0001
d33f: 5f5a
-d33f: 0001
d340: 5f5a
-d340: 0001
d341: 5f5a
-d341: 0001
d342: 5f5a
-d342: 0001
d343: 5f5a
-d343: 0001
d344: 5f5a
-d344: 0001
d345: 5f5a
-d345: 0001
d346: 5f5a
-d346: 0001
d347: 5f5a
-d347: 0001
d348: 5f5a
-d348: 0001
d349: 5f5a
-d349: 0001
d34a: 5f5a
-d34a: 0001
d34b: 5f5a
-d34b: 0001
d34c: 5f5a
-d34c: 0001
d34d: 5f5a
-d34d: 0001
d34e: 5f5a
-d34e: 0001
d34f: 5f5a
-d34f: 0001
d350: 5f5a
-d350: 0001
d351: 5f5a
-d351: 0001
d352: 5f5a
-d352: 0001
d353: 5f5a
-d353: 0001
d354: 5f5a
-d354: 0001
d355: 5f5a
-d355: 0001
d356: 5f5a
-d356: 0001
d357: 5f5a
-d357: 0001
d358: 5f5a
-d358: 0001
d359: 5f5a
-d359: 0001
d35a: 5f5a
-d35a: 0001
d35b: 5f5a
-d35b: 0001
d35c: 5f5a
-d35c: 0001
d35d: 5f5a
-d35d: 0001
d35e: 5f5a
-d35e: 0001
d35f: 5f5a
-d35f: 0001
d360: 5f5a
-d360: 0001
d361: 5f5a
-d361: 0001
d362: 5f5a
-d362: 0001
d363: 5f5a
-d363: 0001
d364: 5f5a
-d364: 0001
d365: 5f5a
-d365: 0001
d366: 5f5a
-d366: 0001
d367: 5f5a
-d367: 0001
d368: 5f5a
-d368: 0001
d369: 5f5a
-d369: 0001
d36a: 5f5a
-d36a: 0001
d36b: 5f5a
-d36b: 0001
d36c: 5f5a
-d36c: 0001
d36d: 5f5a
-d36d: 0001
d36e: 5f5a
-d36e: 0001
d36f: 5f5a
-d36f: 0001
d370: 5f5a
-d370: 0001
d371: 5f5a
-d371: 0001
d372: 5f5a
-d372: 0001
d373: 5f5a
-d373: 0001
d374: 5f5a
-d374: 0001
d375: 5f5a
-d375: 0001
d376: 5f5a
-d376: 0001
d377: 5f5a
-d377: 0001
d378: 5f5a
-d378: 0001
d379: 5f5a
-d379: 0001
d37a: 5f5a
-d37a: 0001
d37b: 5f5a
-d37b: 0001
d37c: 5f5a
-d37c: 0001
d37d: 5f5a
-d37d: 0001
d37e: 5f5a
-d37e: 0001
d37f: 5f5a
-d37f: 0001
d380: 5f5a
-d380: 0001
d381: 5f5a
-d381: 0001
d382: 5f5a
-d382: 0001
d383: 5f5a
-d383: 0001
d384: 5f5a
-d384: 0001
d385: 5f5a
-d385: 0001
d386: 5f5a
-d386: 0001
d387: 5f5a
-d387: 0001
d388: 5f5a
-d388: 0001
d389: 5f5a
-d389: 0001
d38a: 5f5a
-d38a: 0001
d38b: 5f5a
-d38b: 0001
d38c: 5f5a
-d38c: 0001
d38d: 5f5a
-d38d: 0001
d38e: 5f5a
-d38e: 0001
d38f: 5f5a
-d38f: 0001
d390: 5f5a
-d390: 0001
d391: 5f5a
-d391: 0001
d392: 5f5a
-d392: 0001
d393: 5f5a
-d393: 0001
d394: 5f5a
-d394: 0001
d395: 5f5a
-d395: 0001
d396: 5f5a
-d396: 0001
d397: 5f5a
-d397: 0001
d398: 5f5a
-d398: 0001
d399: 5f5a
-d399: 0001
d39a: 5f5a
-d39a: 0001
d39b: 5f5a
-d39b: 0001
d39c: 5f5a
-d39c: 0001
d39d: 5f5a
-d39d: 0001
d39e: 5f5a
-d39e: 0001
d39f: 5f5a
-d39f: 0001
d3a0: 5f5a
-d3a0: 0001
d3a1: 5f5a
-d3a1: 0001
d3a2: 5f5a
-d3a2: 0001
d3a3: 5f5a
-d3a3: 0001
d3a4: 5f5a
-d3a4: 0001
d3a5: 5f5a
-d3a5: 0001
d3a6: 5f5a
-d3a6: 0001
d3a7: 5f5a
-d3a7: 0001
d3a8: 5f5a
-d3a8: 0001
d3a9: 5f5a
-d3a9: 0001
d3aa: 5f5a
-d3aa: 0001
d3ab: 5f5a
-d3ab: 0001
d3ac: 5f5a
-d3ac: 0001
d3ad: 5f5a
-d3ad: 0001
d3ae: 5f5a
-d3ae: 0001
d3af: 5f5a
-d3af: 0001
d3b0: 5f5a
-d3b0: 0001
d3b1: 5f5a
-d3b1: 0001
d3b2: 5f5a
-d3b2: 0001
d3b3: 5f5a
-d3b3: 0001
d3b4: 5f5a
-d3b4: 0001
d3b5: 5f5a
-d3b5: 0001
d3b6: 5f5a
-d3b6: 0001
d3b7: 5f5a
-d3b7: 0001
d3b8: 5f5a
-d3b8: 0001
d3b9: 5f5a
-d3b9: 0001
d3ba: 5f5a
-d3ba: 0001
d3bb: 5f5a
-d3bb: 0001
d3bc: 5f5a
-d3bc: 0001
d3bd: 5f5a
-d3bd: 0001
d3be: 5f5a
-d3be: 0001
d3bf: 5f5a
-d3bf: 0001
d3c0: 5f5a
-d3c0: 0001
d3c1: 5f5a
-d3c1: 0001
d3c2: 5f5a
-d3c2: 0001
d3c3: 5f5a
-d3c3: 0001
d3c4: 5f5a
-d3c4: 0001
d3c5: 5f5a
-d3c5: 0001
d3c6: 5f5a
-d3c6: 0001
d3c7: 5f5a
-d3c7: 0001
d3c8: 5f5a
-d3c8: 0001
d3c9: 5f5a
-d3c9: 0001
d3ca: 5f5a
-d3ca: 0001
d3cb: 5f5a
-d3cb: 0001
d3cc: 5f5a
-d3cc: 0001
d3cd: 5f5a
-d3cd: 0001
d3ce: 5f5a
-d3ce: 0001
d3cf: 5f5a
-d3cf: 0001
d3d0: 5f5a
-d3d0: 0001
d3d1: 5f5a
-d3d1: 0001
d3d2: 5f5a
-d3d2: 0001
d3d3: 5f5a
-d3d3: 0001
d3d4: 5f5a
-d3d4: 0001
d3d5: 5f5a
-d3d5: 0001
d3d6: 5f5a
-d3d6: 0001
d3d7: 5f5a
-d3d7: 0001
d3d8: 5f5a
-d3d8: 0001
d3d9: 5f5a
-d3d9: 0001
d3da: 5f5a
-d3da: 0001
d3db: 5f5a
-d3db: 0001
d3dc: 5f5a
-d3dc: 0001
d3dd: 5f5a
-d3dd: 0001
d3de: 5f5a
-d3de: 0001
d3df: 5f5a
-d3df: 0001
d3e0: 5f5a
-d3e0: 0001
d3e1: 5f5a
-d3e1: 0001
d3e2: 5f5a
-d3e2: 0001
d3e3: 5f5a
-d3e3: 0001
d3e4: 5f5a
-d3e4: 0001
d3e5: 5f5a
-d3e5: 0001
d3e6: 5f5a
-d3e6: 0001
d3e7: 5f5a
-d3e7: 0001
d3e8: 5f5a
-d3e8: 0001
d3e9: 5f5a
-d3e9: 0001
d3ea: 5f5a
-d3ea: 0001
d3eb: 5f5a
-d3eb: 0001
d3ec: 5f5a
-d3ec: 0001
d3ed: 5f5a
-d3ed: 0001
d3ee: 5f5a
-d3ee: 0001
d3ef: 5f5a
-d3ef: 0001
d3f0: 5f5a
-d3f0: 0001
d3f1: 5f5a
-d3f1: 0001
d3f2: 5f5a
-d3f2: 0001
d3f3: 5f5a
-d3f3: 0001
d3f4: 5f5a
-d3f4: 0001
d3f5: 5f5a
-d3f5: 0001
d3f6: 5f5a
-d3f6: 0001
d3f7: 5f5a
-d3f7: 0001
d3f8: 5f5a
-d3f8: 0001
d3f9: 5f5a
-d3f9: 0001
d3fa: 5f5a
-d3fa: 0001
d3fb: 5f5a
-d3fb: 0001
d3fc: 5f5a
-d3fc: 0001
d3fd: 5f5a
-d3fd: 0001
d3fe: 5f5a
-d3fe: 0001
d3ff: 5f5a
-d3ff: 0001
d400: 5f5a
-d400: 0001
d401: 5f5a
-d401: 0001
d402: 5f5a
-d402: 0001
d403: 5f5a
-d403: 0001
d404: 5f5a
-d404: 0001
d405: 5f5a
-d405: 0001
d406: 5f5a
-d406: 0001
d407: 5f5a
-d407: 0001
d408: 5f5a
-d408: 0001
d409: 5f5a
-d409: 0001
d40a: 5f5a
-d40a: 0001
d40b: 5f5a
-d40b: 0001
d40c: 5f5a
-d40c: 0001
d40d: 5f5a
-d40d: 0001
d40e: 5f5a
-d40e: 0001
d40f: 5f5a
-d40f: 0001
d410: 5f5a
-d410: 0001
d411: 5f5a
-d411: 0001
d412: 5f5a
-d412: 0001
d413: 5f5a
-d413: 0001
d414: 5f5a
-d414: 0001
d415: 5f5a
-d415: 0001
d416: 5f5a
-d416: 0001
d417: 5f5a
-d417: 0001
d418: 5f5a
-d418: 0001
d419: 5f5a
-d419: 0001
d41a: 5f5a
-d41a: 0001
d41b: 5f5a
-d41b: 0001
d41c: 5f5a
-d41c: 0001
d41d: 5f5a
-d41d: 0001
d41e: 5f5a
-d41e: 0001
d41f: 5f5a
-d41f: 0001
d420: 5f5a
-d420: 0001
d421: 5f5a
-d421: 0001
d422: 5f5a
-d422: 0001
d423: 5f5a
-d423: 0001
d424: 5f5a
-d424: 0001
d425: 5f5a
-d425: 0001
d426: 5f5a
-d426: 0001
d427: 5f5a
-d427: 0001
d428: 5f5a
-d428: 0001
d429: 5f5a
-d429: 0001
d42a: 5f5a
-d42a: 0001
d42b: 5f5a
-d42b: 0001
d42c: 5f5a
-d42c: 0001
d42d: 5f5a
-d42d: 0001
d42e: 5f5a
-d42e: 0001
d42f: 5f5a
-d42f: 0001
d430: 5f5a
-d430: 0001
d431: 5f5a
-d431: 0001
d432: 5f5a
-d432: 0001
d433: 5f5a
-d433: 0001
d434: 5f5a
-d434: 0001
d435: 5f5a
-d435: 0001
d436: 5f5a
-d436: 0001
d437: 5f5a
-d437: 0001
d438: 5f5a
-d438: 0001
d439: 5f5a
-d439: 0001
d43a: 5f5a
-d43a: 0001
d43b: 5f5a
-d43b: 0001
d43c: 5f5a
-d43c: 0001
d43d: 5f5a
-d43d: 0001
d43e: 5f5a
-d43e: 0001
d43f: 5f5a
-d43f: 0001
d440: 5f5a
-d440: 0001
d441: 5f5a
-d441: 0001
d442: 5f5a
-d442: 0001
d443: 5f5a
-d443: 0001
d444: 5f5a
-d444: 0001
d445: 5f5a
-d445: 0001
d446: 5f5a
-d446: 0001
d447: 5f5a
-d447: 0001
d448: 5f5a
-d448: 0001
d449: 5f5a
-d449: 0001
d44a: 5f5a
-d44a: 0001
d44b: 5f5a
-d44b: 0001
d44c: 5f5a
-d44c: 0001
d44d: 5f5a
-d44d: 0001
d44e: 5f5a
-d44e: 0001
d44f: 5f5a
-d44f: 0001
d450: 5f5a
-d450: 0001
d451: 5f5a
-d451: 0001
d452: 5f5a
-d452: 0001
d453: 5f5a
-d453: 0001
d454: 5f5a
-d454: 0001
d455: 5f5a
-d455: 0001
d456: 5f5a
-d456: 0001
d457: 5f5a
-d457: 0001
d458: 5f5a
-d458: 0001
d459: 5f5a
-d459: 0001
d45a: 5f5a
-d45a: 0001
d45b: 5f5a
-d45b: 0001
d45c: 5f5a
-d45c: 0001
d45d: 5f5a
-d45d: 0001
d45e: 5f5a
-d45e: 0001
d45f: 5f5a
-d45f: 0001
d460: 5f5a
-d460: 0001
d461: 5f5a
-d461: 0001
d462: 5f5a
-d462: 0001
d463: 5f5a
-d463: 0001
d464: 5f5a
-d464: 0001
d465: 5f5a
-d465: 0001
d466: 5f5a
-d466: 0001
d467: 5f5a
-d467: 0001
d468: 5f5a
-d468: 0001
d469: 5f5a
-d469: 0001
d46a: 5f5a
-d46a: 0001
d46b: 5f5a
-d46b: 0001
d46c: 5f5a
-d46c: 0001
d46d: 5f5a
-d46d: 0001
d46e: 5f5a
-d46e: 0001
d46f: 5f5a
-d46f: 0001
d470: 5f5a
-d470: 0001
d471: 5f5a
-d471: 0001
d472: 5f5a
-d472: 0001
d473: 5f5a
-d473: 0001
d474: 5f5a
-d474: 0001
d475: 5f5a
-d475: 0001
d476: 5f5a
-d476: 0001
d477: 5f5a
-d477: 0001
d478: 5f5a
-d478: 0001
d479: 5f5a
-d479: 0001
d47a: 5f5a
-d47a: 0001
d47b: 5f5a
-d47b: 0001
d47c: 5f5a
-d47c: 0001
d47d: 5f5a
-d47d: 0001
d47e: 5f5a
-d47e: 0001
d47f: 5f5a
-d47f: 0001
d480: 5f5a
-d480: 0001
d481: 5f5a
-d481: 0001
d482: 5f5a
-d482: 0001
d483: 5f5a
-d483: 0001
d484: 5f5a
-d484: 0001
d485: 5f5a
-d485: 0001
d486: 5f5a
-d486: 0001
d487: 5f5a
-d487: 0001
d488: 5f5a
-d488: 0001
d489: 5f5a
-d489: 0001
d48a: 5f5a
-d48a: 0001
d48b: 5f5a
-d48b: 0001
d48c: 5f5a
-d48c: 0001
d48d: 5f5a
-d48d: 0001
d48e: 5f5a
-d48e: 0001
d48f: 5f5a
-d48f: 0001
d490: 5f5a
-d490: 0001
d491: 5f5a
-d491: 0001
d492: 5f5a
-d492: 0001
d493: 5f5a
-d493: 0001
d494: 5f5a
-d494: 0001
d495: 5f5a
-d495: 0001
d496: 5f5a
-d496: 0001
d497: 5f5a
-d497: 0001
d498: 5f5a
-d498: 0001
d499: 5f5a
-d499: 0001
d49a: 5f5a
-d49a: 0001
d49b: 5f5a
-d49b: 0001
d49c: 5f5a
-d49c: 0001
d49d: 5f5a
-d49d: 0001
d49e: 5f5a
-d49e: 0001
d49f: 5f5a
-d49f: 0001
d4a0: 5f5a
-d4a0: 0001
d4a1: 5f5a
-d4a1: 0001
d4a2: 5f5a
-d4a2: 0001
d4a3: 5f5a
-d4a3: 0001
d4a4: 5f5a
-d4a4: 0001
d4a5: 5f5a
-d4a5: 0001
d4a6: 5f5a
-d4a6: 0001
d4a7: 5f5a
-d4a7: 0001
d4a8: 5f5a
-d4a8: 0001
d4a9: 5f5a
-d4a9: 0001
d4aa: 5f5a
-d4aa: 0001
d4ab: 5f5a
-d4ab: 0001
d4ac: 5f5a
-d4ac: 0001
d4ad: 5f5a
-d4ad: 0001
d4ae: 5f5a
-d4ae: 0001
d4af: 5f5a
-d4af: 0001
dc09: 0f0f
dc11: 0fff
dc19: 0f00