diff --git a/ip/i2c_opencores/HAL/inc/i2c_opencores.h b/ip/i2c_opencores/HAL/inc/i2c_opencores.h
index c772b67..d6817f1 100644
--- a/ip/i2c_opencores/HAL/inc/i2c_opencores.h
+++ b/ip/i2c_opencores/HAL/inc/i2c_opencores.h
@@ -9,15 +9,15 @@ extern "C"
{
#endif /* __cplusplus */
-
+#define SCL_MIN_CLKDIV 10
void I2C_init(alt_u32 base,alt_u32 clk,alt_u32 speed);
int I2C_start(alt_u32 base, alt_u32 add, alt_u32 read);
alt_u32 I2C_read(alt_u32 base,alt_u32 last);
alt_u32 I2C_write(alt_u32 base,alt_u8 data, alt_u32 last);
-alt_u32 SPI_read(alt_u32 base);
-void SPI_write(alt_u32 base,alt_u8 data);
+void SPI_read(alt_u32 base, alt_u8 *rdata, int len);
+void SPI_write(alt_u32 base, alt_u8 *wdata, int len);
#define I2C_OK (0)
#define I2C_ACK (0)
#define I2C_NOACK (1)
diff --git a/ip/i2c_opencores/HAL/src/i2c_opencores.c b/ip/i2c_opencores/HAL/src/i2c_opencores.c
index fafa66b..aa8e81b 100644
--- a/ip/i2c_opencores/HAL/src/i2c_opencores.c
+++ b/ip/i2c_opencores/HAL/src/i2c_opencores.c
@@ -182,25 +182,31 @@ alt_u32 I2C_write(alt_u32 base,alt_u8 data, alt_u32 last)
}
-alt_u32 SPI_read(alt_u32 base)
+void SPI_read(alt_u32 base, alt_u8 *rdata, int len)
{
- /* start read*/
- IOWR_I2C_OPENCORES_CR(base, I2C_OPENCORES_CR_RD_MSK|I2C_OPENCORES_CR_NACK_MSK|I2C_OPENCORES_CR_SPIM_MSK );
+ int i;
- /* wait for the trnasaction to be over.*/
- while( IORD_I2C_OPENCORES_SR(base) & I2C_OPENCORES_SR_TIP_MSK);
-
- /* now read the data */
- return (IORD_I2C_OPENCORES_RXR(base));
+ for (i=0; i
+
@@ -279,6 +280,7 @@
+ nios2-bsp-editor
make clean
nios2-bsp-generate-files --bsp-dir . --settings settings.bsp
@@ -306,6 +308,7 @@
+
@@ -317,6 +320,7 @@
+ nios2-bsp-editor
make clean
nios2-bsp-generate-files --bsp-dir ./ --settings settings.bsp
diff --git a/rtl/ossc.v b/rtl/ossc.v
index e7bc936..398e18e 100644
--- a/rtl/ossc.v
+++ b/rtl/ossc.v
@@ -79,8 +79,6 @@ wire VSYNC_out_videogen;
wire PCLK_out_videogen;
wire DATA_enable_videogen;
-wire [7:0] lcd_ctrl;
-
reg [3:0] reset_n_ctr;
reg reset_n_reg = 1'b1;
@@ -107,15 +105,16 @@ assign LED_R = videogen_sel ? 1'b0 : ((pll_lock_lost != 3'b000)|h_unstable);
assign LED_G = (ir_code == 0);
`endif
-assign LCD_CS_N = lcd_ctrl[0];
-assign LCD_RS = lcd_ctrl[1];
-assign LCD_BL = sys_ctrl[1]; //reset_n in v1.2 PCB
+assign SD_DAT[3] = sys_ctrl[7]; //SD_SPI_SS_N
+assign LCD_CS_N = sys_ctrl[6];
+assign LCD_RS = sys_ctrl[5];
+assign LCD_BL = sys_ctrl[4]; //reset_n in v1.2 PCB
assign reset_n = sys_ctrl[0]; //HDMI_TX_RST_N in v1.2 PCB
`ifdef VIDEOGEN
wire videogen_sel;
-assign videogen_sel = ~sys_ctrl[2];
+assign videogen_sel = ~sys_ctrl[1];
assign HDMI_TX_RD = videogen_sel ? R_out_videogen : R_out;
assign HDMI_TX_GD = videogen_sel ? G_out_videogen : G_out;
assign HDMI_TX_BD = videogen_sel ? B_out_videogen : B_out;
@@ -147,20 +146,19 @@ end
assign cpu_reset_n = reset_n_reg;
sys sys_inst(
- .clk_clk (clk27),
- .reset_reset_n (cpu_reset_n),
- .i2c_opencores_0_export_scl_pad_io (scl),
- .i2c_opencores_0_export_sda_pad_io (sda),
- .spi_0_external_MISO (SD_DAT[0]),
- .spi_0_external_MOSI (SD_CMD),
- .spi_0_external_SCLK (SD_CLK),
- .spi_0_external_SS_n (SD_DAT[3]),
- .pio_0_sys_ctrl_out_export (sys_ctrl),
- .pio_1_controls_in_export ({ir_code_cnt, 5'b00000, HDMI_TX_MODE, btn, ir_code}),
- .pio_2_horizontal_info_out_export (h_info),
- .pio_3_vertical_info_out_export (v_info),
- .pio_4_linecount_in_export ({VSYNC_out, 13'h0000, fpga_vsyncgen, 5'h00, lines_out}),
- .pio_5_lcd_ctrl_out_export (lcd_ctrl)
+ .clk_clk (clk27),
+ .reset_reset_n (cpu_reset_n),
+ .i2c_opencores_0_export_scl_pad_io (scl),
+ .i2c_opencores_0_export_sda_pad_io (sda),
+ .i2c_opencores_0_export_spi_miso_pad_i (1'b0),
+ .i2c_opencores_1_export_scl_pad_io (SD_CLK),
+ .i2c_opencores_1_export_sda_pad_io (SD_CMD),
+ .i2c_opencores_1_export_spi_miso_pad_i (SD_DAT[0]),
+ .pio_0_sys_ctrl_out_export (sys_ctrl),
+ .pio_1_controls_in_export ({ir_code_cnt, 5'b00000, HDMI_TX_MODE, btn, ir_code}),
+ .pio_2_horizontal_info_out_export (h_info),
+ .pio_3_vertical_info_out_export (v_info),
+ .pio_4_linecount_in_export ({VSYNC_out, 13'h0000, fpga_vsyncgen, 5'h00, lines_out})
);
scanconverter scanconverter_inst (
diff --git a/software/sys_controller/Makefile b/software/sys_controller/Makefile
index 35af6a7..b27c0a6 100644
--- a/software/sys_controller/Makefile
+++ b/software/sys_controller/Makefile
@@ -160,6 +160,8 @@ C_SRCS += ossc/controls.c
C_SRCS += ossc/firmware.c
C_SRCS += ossc/menu.c
C_SRCS += ossc/userdata.c
+C_SRCS += ulibSD/sd_io.c
+C_SRCS += ulibSD/spi_io.c
CXX_SRCS :=
ASM_SRCS :=
@@ -202,6 +204,7 @@ APP_INCLUDE_DIRS += tvp7002
APP_INCLUDE_DIRS += ths7353
APP_INCLUDE_DIRS += spi_charlcd
APP_INCLUDE_DIRS += memory
+APP_INCLUDE_DIRS += ulibSD
APP_INCLUDE_DIRS += ossc
APP_LIBRARY_DIRS :=
APP_LIBRARY_NAMES :=
diff --git a/software/sys_controller/it6613/it6613.c b/software/sys_controller/it6613/it6613.c
index 804b0ea..44640ce 100644
--- a/software/sys_controller/it6613/it6613.c
+++ b/software/sys_controller/it6613/it6613.c
@@ -1,6 +1,5 @@
#include
#include
-#include "sysconfig.h"
#include "system.h"
#include "i2c_opencores.h"
#include "it6613.h"
diff --git a/software/sys_controller/it6613/it6613.h b/software/sys_controller/it6613/it6613.h
index 89b5286..69e522f 100644
--- a/software/sys_controller/it6613/it6613.h
+++ b/software/sys_controller/it6613/it6613.h
@@ -1,9 +1,7 @@
#ifndef IT6613_H_
#define IT6613_H_
-//#define I2C_DEBUG
-//#define I2CA_HDMI_BASE I2C_OPENCORES_1_BASE
-#define I2CA_BASE I2C_OPENCORES_0_BASE
+#include "sysconfig.h"
#define IT6613_VENDORID 0xCA
#define IT6613_DEVICEID 0x13
diff --git a/software/sys_controller/mem_init/sys_onchip_memory2_0.hex b/software/sys_controller/mem_init/sys_onchip_memory2_0.hex
index 9cb9583..19690cb 100644
--- a/software/sys_controller/mem_init/sys_onchip_memory2_0.hex
+++ b/software/sys_controller/mem_init/sys_onchip_memory2_0.hex
@@ -1,29 +1,29 @@
:020000020000FC
:2000000000402074084008140800683A0000000000000000000000000000000000000000FE
-:2000080006C02074DEE4001406802074D6BCC41400802074109F151400C0207418E01214C6
-:2000100010C00326100000151080010410FFFD360814DE000814ED80003FFF06DEFFFB0438
+:2000080006C02074DEE8001406802074D6BE12140080207410A0581400C0207418E14D14F2
+:2000100010C00326100000151080010410FFFD3608154640081555C0003FFF06DEFFFB04E6
:2000180000BFE084D880000500800084D880004500800344D8800085DFC0041529403FCCD7
:200020000080004428800426008000842880041E008014040000030600800C040000010624
:2000280000800404D88000C5D88000C331803FCC10800094D88000C5300002260080080417
:20003000000001060080040439C03FCC10C002143800022600BFE004000001060080100499
:200038001884B03AD8800105D90001850080020401000044D80B883AD8800145D80001C5B9
:20004000D8000205D8000245D8000285D80002C5D8000305D8000345D8000385D80003C5A4
-:2000480008104640DFC00417DEC00504F800283ADEFFFC04DC000015040020B48405080404
+:2000480008104640DFC00417DEC00504F800283ADEFFFC04DC000015040020B484041804F5
:20005000DC80021504801304DC400115900B883A2023883A000D883A8009883ADFC003151D
-:20005800081588408009883A89403FCC000D883A08158E80044000448009883A900B883A5A
-:20006000880D883A081588408009883A880B883ADFC00317DC800217DC400117DC0000174F
-:20006800DEC0040408158BC1DEFFFC04DC000015040020B484050804DC800215DC40011589
-:200070002025883A2823883A8009883A01401304000D883ADFC00315081588408009883A03
-:2000780091403FCC000D883A08158E808009883A89403FCC01800044DFC00317DC80021780
-:20008000DC400117DC000017DEC0040408158E81DEFFFF0421003FCCDFC00015081013007C
+:200058000815DE408009883A89403FCC000D883A0815E480044000448009883A900B883AAE
+:20006000880D883A0815DE408009883A880B883ADFC00317DC800217DC400117DC000017F9
+:20006800DEC004040815E1C1DEFFFC04DC000015040020B484041804DC800215DC40011524
+:200070002025883A2823883A8009883A01401304000D883ADFC003150815DE408009883AAD
+:2000780091403FCC000D883A0815E4808009883A89403FCC01800044DFC00317DC8002172A
+:20008000DC400117DC000017DEC004040815E481DEFFFF0421003FCCDFC000150810130026
:20008800DFC00017DEC00104F800283ADEFFFF0421003FCC29403FCCDFC0001508101A80BF
:200090000005883ADFC00017DEC00104F800283ADEFFFB04DCC00315DC800215DC400115A1
:20009800DC000015DFC004152827883A3023883A2025883A0021883A8440070E9C05883A53
:2000A000114000038489883A21003FCC08101A8084000044003FF8060005883ADFC00417B9
:2000A800DCC00317DC800217DC400117DC000017DEC00504F800283ADEFFFF040140FA04C6
-:2000B000DFC00015081450401009883ADFC00017DEC001040814F181DEFFFF04010003C466
+:2000B000DFC000150814B8801009883ADFC00017DEC00104081559C1DEFFFF04010003C415
:2000B800000B883ADFC00015081022C001001844000B883ADFC00017DEC00104081022C12F
-:2000C000DEFFFD04DC00001504002074841F34048140008301000144DFC00215DC4001156C
+:2000C000DEFFFD04DC000015040020B484206C048140008301000144DFC00215DC400115F3
:2000C800081022C0808000838100030300FFFEC41004D1FA20C6703A044001041085883A44
:2000D0001085883A1884B03A8809883A01400F4480800305081022C00100004408102B8042
:2000D8008809883A01400744081022C00100184401400C04081022C00100024401402C844F
@@ -47,7 +47,7 @@
:200168002021883A010003C4DFC00215DC400115081022C0044030448809883A0810210086
:2001700084003FCC800AC03A10803F8C8809883A114AB03A081022C001003184014000C4B4
:20017800DFC00217DC400117DC000017DEC00304081022C1DEFFF904DCC00315DC800215E7
-:20018000DC4001152025883A2823883A010001040140074404C020749CDF3404DD00041586
+:20018000DC4001152025883A2823883A010001040140074404C020B49CE06C04DD0004150D
:20018800DC000015DFC006153821883ADD4005153029883A081022C098C0030381C0004C5A
:2001900000BFFF441884703A39CF883A11CEB03A99C00305988003171080008C100002268D
:20019800010000440810594001001C049C0000C308102100108000CC8D4000CC010000445E
@@ -66,11 +66,11 @@
:200200000100010408102100010001041140054C081022C00400190401000384081021001B
:200208001080040C1000321E0100004408102B8080BFFFC41021883A10BFFFCC103FF61EDC
:2002100000002B06053FE8048C400C0C008008048880081E01001CC4D16000C4018000C4B4
-:20021800081025000140207401001D84295AC6840000090600800C0488800B1E01001CC494
-:20022000D16000C4018000C4081025000140207401001D84295ABD840180048408102500C6
+:20021800081025000140207401001D84295C1F840000090600800C0488800B1E01001CC439
+:20022000D16000C4018000C4081025000140207401001D84295C168401800484081025006B
:2002280004000084003FA306008004048880081E01001CC4D1600004018000C408102500F8
-:200230000140207401001D84295AB904003FF20601001CC4D1600004018000C40810250028
-:200238000140207401001D84295AC204003FEA0601000304000B883A081022C001000344A0
+:200230000140207401001D84295C1204003FF20601001CC4D1600004018000C408102500CD
+:200238000140207401001D84295C1B04003FEA0601000304000B883A081022C00100034445
:2002400001401004081022C00100038401400044081022C001000384000B883A081022C0F9
:2002480008102D8000800044DFC00617DD400517DD000417DCC00317DC800217DC400117C1
:20025000DC000017DEC00704F800283ADEFFFD04DC0000152021883A01001644DC40011539
@@ -78,826 +78,826 @@
:20026000081022C0010003C401400044081022C001001704800B883A00000A06802091BAD9
:200268000100164481400414114AB03A081022C0010003C401400044081022C001001704A0
:20027000000B883A081022C0010003C4000B883ADFC00217DC400117DC000017DEC003048E
-:20027800081022C100802074109C180410C03217D0A2521518000426108035171080401897
-:200280000085C83AF800283A00BFFFC4F800283ADEFFFD042005883AD1225217DC4001154E
-:200288002823883A880F883A100B883ADC000015DFC002153021883A08155DC010000B1EE6
+:20027800081022C100802074109D660410C03217D0A2471518000426108035171080401853
+:200280000085C83AF800283A00BFFFC4F800283ADEFFFD042005883AD1224717DC40011559
+:200288002823883A880F883A100B883ADC000015DFC002153021883A0815B3C010000B1E90
:20029000800D883A8463883A34400626308000031005C2721005D63A3180004430BFFFC5ED
:20029800003FF9060005883A0000010600BFFFC4DFC00217DC400117DC000017DEC0030434
:2002A000F800283ADEFFFA04DC800315DC400215DC000115DFC00515DCC0041530803FCC47
-:2002A8002023883A2825883A3021883A100003268805883A8C89883A00001706D122521737
-:2002B000300A923A08152E001027883A103FF8260100207401402074211F38042957D70436
-:2002B80001800444081468000100207401802074211F3804014004443197DA04980F883A1B
-:2002C0000814584000802074109F40841000000500FFCE0400001D061100062610C00003CA
-:2002C8001807C2721807D63A1080004410FFFFC5003FF906800AD23AD1225217800C923A65
-:2002D000280A943ADC800015880F883A081537400007883A10000D2601002074014020743A
-:2002D800211F38042957DD0401800444081468000100207401402074211F40842957E0040A
-:2002E000018004440814680000FFCDC41805883ADFC00517DCC00417DC800317DC40021725
+:2002A8002023883A2825883A3021883A100003268805883A8C89883A00001706D122471742
+:2002B000300A923A081584001027883A103FF826010020B4014020742120730429593D04FC
+:2002B800018004440814D040010020B401802074212073040140044431994004980F883A8F
+:2002C0000814C080008020B410A07B841000000500FFCE0400001D061100062610C00003A6
+:2002C8001807C2721807D63A1080004410FFFFC5003FF906800AD23AD1224717800C923A70
+:2002D000280A943ADC800015880F883A08158D400007883A10000D26010020B401402074A4
+:2002D8002120730429594304018004440814D040010020B40140207421207B8429594604DA
+:2002E000018004440814D04000FFCDC41805883ADFC00517DCC00417DC800317DC4002177D
:2002E800DC000117DEC00604F800283ADEFFF904DD400515DD000415DCC00315DC800215D2
:2002F000DC000015DFC00615DC4001152825883A3029883A3827883A0021883A0007883A1A
:2002F8000540400484800F2E9423C83AAC40012E044040048009883A880B883A980D883AB9
-:200300000810A1001000141E800D003A9809883A880B883A081579C01007883A840040046C
-:20030800003FF0060005883A1D000C260100207401802074211F3804014004443197E2042D
-:200310000814584000802074109F40841000000500BFCD440000010600BFCD84DFC00617DA
+:200300000810A1001000141E800D003A9809883A880B883A0815CFC01007883A8400400416
+:20030800003FF0060005883A1D000C26010020B40180207421207304014004443199480449
+:200310000814C080008020B410A07B841000000500BFCD440000010600BFCD84DFC00617B6
:20031800DD400517DD000417DCC00317DC800217DC400117DC000017DEC00704F800283A3F
-:20032000DEFFFD04DFC00215DC400115DC00001520807FCC1000031E008080042821883ADB
-:2003280011400B2E0100207401802074211F3804014004443197E704081458400080207401
-:20033000109F40841000000500BFFFC400001C062008D27A000B883A3023883A08150B8083
-:2003380010803FCC0007883A10000B1E0100207401802074211F3804014004443197EC04A1
-:200340000814584000802074109F40841000000500BFFF8400000A061C00082ED0A25317CD
-:2003480010800A171885883A1100003788C5883A1100001518C00104003FF7060005883A28
-:20035000DFC00217DC400117DC000017DEC00304F800283ADEFFFE04DC0000152021883ADC
-:20035800010020742117F004DFC001150814F880D0A2531510000A260814FE4010803FCC6C
-:20036000100007260009883A01408004800D883ADFC00117DC000017DEC002040810C80132
-:200368000100207401802074211F3804014004443197FB040814584000802074109F4084C4
-:200370001000000500800044DFC00117DC000017DEC00204F800283A010020740140207482
-:20037800211F3804295F408408134C410100207401402074211F3C44295F500408134C4147
-:20038000DEFFFE04DC0000152021883A01000044DFC0011508105940081042400009883A7A
-:20038800000B883A84003FCC081046408021003A01000044000B883A000D883A800F883A4E
-:2003900008105F408000052601000084000B883A000D883A000F883A081005C00009883A51
-:20039800DFC00117DC000017DEC0020408105941DEFFFC0400802074DC800215DC400115AF
-:2003A000DC000015109F4504DFC003152021883A110002870140070414800117081450405C
-:2003A80000C0207418DF5F8410C5883A84003FCC1440000B80001E1ED0A2554300C00204F6
-:2003B00010C0142600C0040410C0062600C0010410C0131E0009883A0813DA800100004414
-:2003B8000000250601006734213F3004900B883A08144F401009883A897FFFCC0814504068
-:2003C00000C072B418F0DFC418800236010003C4000001060009883A0813DA800000150692
-:2003C8000009883A0813DA800009883A0000120600802074109F544410C0040304400084F8
-:2003D0001021883A1C4002260009883A00000106010003C40813DA808100040320803FCC54
-:2003D8008880042E008001441109C83A21003FCC00000106010000C4DFC00317DC800217C4
-:2003E000DC400117DC000017DEC0040408137801DEFFF70400C020B4DFC00815DDC00715BB
-:2003E800DD800615DD400515DD000415DCC00315DC800215DC400115DC0000150089C404B5
-:2003F00018C514041980003704C020B49CC514043000020E10BFFFC4103FFA1E21003FCCB2
-:2003F80029403FCC0400207408142840841F45041025883A808002C3100003269C40003761
-:200400008822D43A000001060023883A01000DC40813870001000E041029883A0813870014
-:20040800110003CC1007883A2008923A1004D1BA2528B03A1080004C8080024598800037DF
-:20041000010000848C403FCC89000E2601002074211F4504210002C32000021E010063C447
-:200418002500082E010000448900041EA108983A10BFFFCC213FFF842080053618C0080CBA
-:2004200018000426A4C0322805C00044000003061029883AA4C06428002F883A80C002C3C9
-:2004280090803FCC1800101E10001E2698001D26D0A254030100008410C03FCC18C0201CE7
-:2004300018FFE00420C0060E0080207400C00044109F4504D022540510C002C500000C06B9
-:200438001080004400000D061000012698000D1ED0A2540300FFFF0411003FCC2100201C7F
-:20044000213FE00420C0040ED0225405800002C5044001040000050610BFFFC4D0A2540523
-:2004480000000106D02254050023883A01000E440813870001000E8404802074102D883ABE
-:20045000949F5444081387009800662610C003CC1806923A808000171DACB03A00C0207454
-:2004580018DF4504A080051E18800117B080031E18C00203B8803FCC10C00226D02257851A
-:2004600000000C06D0A2578300C0004411003FCC20C0082610C5883AD0A2578510803FCC70
-:2004680010C0041E88C03FCC008000841880012E1023883A90C00103808004831880071ED7
-:2004700000802074109F544410C0014300802074109F4504108004C31880042688C03FCC85
-:20047800008000841880012E1023883A90C00243808005C318800F2600802074109F45046E
-:2004800011000287014007040814504000C0207418DF618410C5883A1080008B1080600CEC
-:200488001000042688C03FCC008000841880012E1023883AD0A258C31000272684C0028750
-:2004900001400704054020749809883A08145040AD5F5B84A885883A10C0068B9809883A7A
-:200498000140070418C0100C1800052608145040A885883A14C0040B9CE7883A00000306F5
-:2004A00008145040A885883A14C0040B9CFFFFCC980A913A0100008429403C0C08138F000B
-:2004A800980AD13A0100004429403FCC08138F00810002870140070408145040A885883A33
-:2004B00011400583010001C408138F0088803FCC1000011E04400044850000158580011564
-:2004B80085C00205914000038100038300C020740080207418DF5444109F45042900151EB2
-:2004C00019400043110003C32900121E194000831100040329000F1E194000C31100044392
-:2004C80029000C1E19400183110005032900091E194001C3110005432900061E194004C398
-:2004D000110008432900031E18C00503108008831880032688803FCC1000011E04400044E0
-:2004D8009100028380800603208001260813E4409100030380800683208001260813F100EC
-:2004E00091000343808006C3208001260813A6409100038380800703208001260813A700EA
-:2004E80091000443808007C32080071E00802074109F544410C0048300802074109F4504CF
-:2004F0001080080318800226914004830813A300910002C3808006432080062601400604C5
-:2004F80008145040010020742119E7042089883A0813C90091000403808007832080012646
-:200500000810E700910003C380800743208001260813DF000100207401402074211F59C4B3
-:20050800295F4E0401800184081452C01000031E01002074211F4E040813A7C00100207456
-:2005100001402074211F4884295F544401800704081455C08805883AD02258C5DFC00817F1
-:20051800DDC00717DD800617DD400517DD000417DCC00317DC800217DC400117DC0000170B
-:20052000DEC00904F800283ADEFFF804DC00001504002074DCC00315DFC00715DD8006156D
-:20052800DD400515DD000415DC800215DC400115841F4504858002870140070404C02074C3
-:20053000B009883A081450409CDF5B84108006049885883A10C0008B190003CC200009261F
-:2005380080800443048000848480030510001226808003C3010000441100101E1025883ABF
-:2005400000000E061900040C2000051E8100084320000626108000031080010C100003269A
-:200548000080004480800305000001068000030584800443000001060025883A8080038379
-:20055000010000841100051E00802074109F4504144003C38C40004400000A060100004447
-:200558001100051E1880080C1000051E1C4007CC8822C03A000003060023883A00000106A8
-:20056000044000C4808008831000062618C0080C1800042600802074109F4504100003055A
-:200568000023883A85000303808004C3B009883AA02897BA1004973A01400704054020749E
-:20057000A0A8B03A0814504080C005039885883A10800503180695BAB009883AA0A8B03AB4
-:2005780001400704A0E8B03A081450409885883A1080028B00C020B4AD5F4504100492BAB4
-:2005800018C51C04A084B03A1880003580C0040380800543858002871806963A100494BA16
-:20058800B009883A0140070418A0B03A081450401029883A9885883A10C00543B009883AD1
-:200590000140070480E0B03A081450409885883A10C0030B9024973A882297BA180691FA23
-:20059800008020B41085180480C6B03A1CA4B03A9462B03A144000359D27883A9880060354
-:2005A0001080010C10000226A900084300000E06B009883A014007040814504000C0207497
-:2005A80018DF5B841885883A1080068B1080080C10000426A9400583A9000883280B003AED
-:2005B000000002060009883A000B883ADFC00717DD800617DD400517DD000417DCC003176D
-:2005B800DC800217DC400117DC000017DEC00804081094C1DEFFF404DC000415040020740E
-:2005C000841F4504DC4005158440011700800044DFC00B15DD800A15DD400915DD000815E9
-:2005C800DCC00715DC800615D0A257858800152684C000179800132601006734213F300477
-:2005D000880B883A08144F401025883A8080020301283BF4212EC004980B883A1000032606
-:2005D80008144F401009883A0000020608144F401089883A880B883A08144F401023883A7A
-:2005E000000002060445DC04048F550401000EC40813870001000F041027883A08138700BA
-:2005E80080C00343008020741098370418C7883A18C7883A10C7883A8080020319C00017A6
-:2005F00080C000171000021E00801A440000010600801C040100207401802074D8C0001588
-:2005F8003197FF04211F3C4401400444D8800115081458408809883A0140190408144F4051
-:200600009009883A0140FA041029883A08144F409009883A0140FA04102B883A08144FC0D8
-:200608001009883A0140028408144F408809883A01401904D8800015DD00011508144FC049
-:200610000100207401802074D8800215211F50040140044431980104A80F883A0814584099
-:2006180000802074109F2284108000031000011E0810DEC0808004838100001781400203FC
-:20062000D8800015808004C3D1E25883A00D883AD8800115808005C3044020748C5F450447
-:20062800D880021508142F4011003FCC2100201C213FE00400FFFFC420C0011E00800104B5
-:2006300088800285848002830140070405802074D4A2550594803FCC9480201C94BFE004B7
-:200638009009883A08145040B59F5B84B087883A1C400603D0E25883B085883A99003FCCE2
-:2006400088E2703AD46255451140040B05402074AD5F450408145040814001171009883AC8
-:2006480008144F4080C0020389403FCCA98000171800011E300CD07A10803FCCD8800015C9
-:20065000808007C39009883AA1C03FCCD880011580800803D880021580800703D880031597
-:200658000813FD80810007830810E700DFC00B17DD800A17DD400917DD000817DCC00717AE
-:20066000DC800617DC400517DC000417DEC00C040811488121003FCC008003C420802A26DF
-:200668000080040420802D26DEFFFD04DC000015DFC0021504002074DC400115008002C462
-:20067000841F5B8420802F1ED462550301400704D46257458C403FCC8809883A0814504079
-:200678008087883A18C0040B01400704D0E2568D10C0050480C7883A19000083D122590DFA
-:200680008089883A2100028B8085883AD122560D1080030B8809883AD0A2558D18800003E4
-:20068800D0A2548D081450408085883A10800543D0A2580DDFC00217DC400117DC000017FE
-:20069000DEC00304F800283AD0A2550310C03FCC18000A2610BFFFC40000080600C020746A
-:2006980018DCDD04D0A2550318C0000311003FCC18FFFFC420C0010E10800044D0A2550543
-:2006A000F800283AD1225503014007040814504001002074211F4084808B883A018004446E
-:2006A800DFC00217DC400117DC000017DEC0030408146801DEFFFA0400802074DD00041544
-:2006B000DCC00315DC800215DC400115DC000015DFC00515109F450410C002C30400207402
-:2006B8002027883AD4625743841F5B84D522548BD4A2580B18002226108002871440201E0D
-:2006C0008809883A01400704081450408087883A1900040BD0E2568B20C0171E10C005045D
-:2006C80080C7883A19400083D122590B2900121E8089883A2140028BD122560B29000E1E1B
-:2006D0008085883A1100030BD0A2558B20800A1E18C00003A0803FCC1880071E8809883AF4
-:2006D80001400704081450408085883A10C0054390803FCC1880022600800044D0A258C5FD
-:2006E0008809883A0140070408145040D122568B8087883A1900040DD122590B10C00504B8
-:2006E80080C7883A19000085D162560B8089883A2005883A2140028DD122558B01400704F6
-:2006F0001100030D1D0000058809883A0814504001002074018020748085883A211F408433
-:2006F800014004443198D00499FFFFCC14800545DFC00517DD000417DCC00317DC8002179D
-:20070000DC400117DC000017DEC0060408145841DEFFFD04DC000015040020B4DC4001157C
-:20070800DFC00215044000C4840524048440003580000035008020B410851C041000003566
-:20071000008020B410851804100000350109C4040814F18084400035010000F421035004BA
-:200718000814F180010020B401406734018001B421050804297F30043186A0040815810046
-:200720000813394008137080100019260009883A0813870000C03FC410C017260813E9008A
-:20072800010000840810210010803FCC00C004C410C0131E0810300008109E401021883A9E
-:200730001000111E08121BC008132480008020B41085200410800037108000AC1000011E77
-:20073800081225400009883A0810E00000000706043FFF8400000506043FFF4400000306F2
-:20074000043FFF0400000106043FFFC48005883ADFC00217DC400117DC000017DEC003047B
-:20074800F800283ADEFFFF04DFC0001508116F4008139E4000802074109F54441100020371
-:20075000DFC00017DEC001040810E001DEFFF404DFC00B15DF000A15DDC00915DD80081570
-:20075800DD400715DD000615DCC00515DC800415DC400315DC0002150811C10010001D16E1
-:20076000008012440100207401802074000F883A211F3C440140044431980704D88000159E
-:20076800081458400100207401402074211F50042958130401800444081455C00810DEC077
-:2007700000802074109F544410C0054305C0207407002074D0E257050027883A0021883A28
-:200778000023883A0025883ABDDF2104E71F2204000047060100207401802074211F3C44F1
-:200780000140044431980C04100F883A081458400100207401402074211F50042958DF0400
-:2007880001800444081468000810DEC0003FFF0610FFFF8418C03FCC010000C420C0432E7F
-:20079000A8C0000310C041260500207408123940A51F2284A0800003100002260009883AEB
-:200798000812CC8005802074B59F4504D1225703B08003432080011ED0225705D122570308
-:2007A0000140020420BFFFC410803FCC2880332E20803FCC10006A1E00C0207418DF544486
-:2007A80019000203B140058300802074109F450421400826D88001150810E0000100207404
-:2007B000211F5444D880011721000203100001151100058598803FCC1000811E0080207414
-:2007B800109F210410C0001700802074109F1E0410C0001500802074109F22041080000320
-:2007C00001004B04D0225705A88000050814F18000C020B418C520041880003701002074C8
-:2007C80010FFFFCC211F200420C000150086303A1004D63A18C000EC05402074B8C00015A0
-:2007D000E0800005AD5F1F04103FB91E00802074109F200410000015003FBB06100490BAE5
-:2007D800014020742947DD041145883A108000171000683A00811F9800811FA800811FC08A
-:2007E00000811FD000811FE000811FF400812004008120140081202C008003C4D0A25885B8
-:2007E8000021883A00000306008003C4D0A2588504000084044000440025883A0000200652
-:2007F000008003C4D0A25885040000C4003FF906008003C4D0A25885040000C400000306E6
-:2007F800008003C4D0A25885040000840023883A003FF10600800404D0A258850400004489
-:2008000000000D06008003C4D0A258850021883A0000090604000084008003C4D0A258851F
-:200808008023883A8025883A00000506008003C4D0A25885040000C4044000848825883A64
-:20081000B1400783B1000345B00002C528803FCC0180004489003FCC3080042E008001442A
-:20081800114BC83A29403FCC00000106014000C408137F400813958091003FCC81403FCC70
-:20082000081414C0B080034301002074211837041085883A1085883A2085883A11400017CC
-:2008280001002074211F3C4401800444B0000115081468000100207401402074211F50044A
-:20083000295810040180044408146800A08000031000011E0810DEC004C00044003F6E0603
-:2008380091003FCC81403FCC0810F90010803FCC0100008411002926010001041100032667
-:2008400001000044113F751E00002806B0C002C300802074109F45041800072600C020B428
-:2008480018C524041880003710800114188000350811D240003F690610000115D8800115DD
-:2008500008139580D880011700C0207418D837041080034301002074211F3C441085883AE7
-:200858001085883A1885883A1140001701800444081468000100207401402074211F500417
-:20086000295810040180044408146800A0800003103F521E0810DEC0003F5006B08002C374
-:20086800103F4E2608116F40003F4C06B08002C3103F4A2608114880003F4806DEFFFE0453
-:2008700000C02074DC00001518DF544404000704014020741809883A29584104800D883AB8
-:20087800DFC00115081455C01007883A008020B410852004108000371004D4BA800B883ADE
-:200880001080004C1880020500802074109CDD041100000308145040010020740140207412
-:20088800211F5B842959F304100D883A081455C00080207400C00044109F1CC410C000052C
-:200890000005883ADFC00117DC000017DEC00204F800283ADEFFF804DD400515DD000415D3
-:20089800DCC00315050020B404C0207405402074DC800215DC000015DFC00715DD800615EB
-:2008A000DC4001150021883A0025883A9CD88604A5052004AD5ACB04010020740140207430
-:2008A800211F38042958480401800444081468008405883A14C5883A1140001701002074B7
-:2008B000211F408401800444081468000810DD800023883A856D883AA080003710BFFFCCD8
-:2008B800D0A25C15100018261480172688000A1E0100207401402074211F380429584A04B9
-:2008C00001800444B080000D081468000810DD800440004400000C06B0C0000B10C0092605
-:2008C8000100207401402074211F380429584C0401800444081468000810DD800023883AB2
-:2008D000000001060440008400800084D4A25C17888003260109C4040814F180003FDE0699
-:2008D8008400008400800C0480BFCB1EDFC00717DD800617DD400517DD000417DCC0031722
-:2008E000DC800217DC400117DC000017DEC00804F800283AD1225C17DEFFFE04014020743E
-:2008E800DFC001150005883A295ACB04018005C41087883A1947883A18C0000B20C0032671
-:2008F0001180942610800044003FF90600C005C418809036100490BA00C0207418C8FB0413
-:2008F80010C5883A108000171000683A0081244C00812470008124800081245400812478AF
-:200900000081248800812468008126140081249000812498008124A00081261400812614B5
-:2009080000812614008126140081261400812614008124CC008125440081255C0081258858
-:20091000008125D4008125B40081260000C000440000010600C0008400802074109F1B041B
-:2009180010C0000500006B0600C000C4003FFA0600C00104003FF80600C00144003FF60674
-:2009200000C00184003FF40600C001C4003FF20600C00204003FF00600C00244003FEE0649
-:2009280000C0207418DF2284188000031005003A1880000510000326010000440812CC8053
-:20093000000054060810DEC00000520600802074109F4504110002870140070408145040A1
-:2009380001C02074010020740180207439DF5B84211F38040140044431985004388F883AFE
-:2009400008145840008020B41085140411C0003710800037010020741005D43A0180207446
-:20094800211F4084108000CC014004443198530439FFFFCCD8800015081458400810DD80ED
-:200950000000340600C020B418C52404188000371080009C1880003500002E0600C0207464
-:2009580018DF5444188000030140004411003FCC290002361145883A000001060005883A6D
-:20096000188000050000230600C0207418DF5444188000430140004411003FCC29000236F1
-:200968001145883A000001060005883A188000450000180600802074109F544410C00083E0
-:2009700019003FCC2000012618FFFFC410C000850000100600C0207418DF544418800083B9
-:200978000140038411003FCC290002361080004400000106008003C41880008500000506D0
-:2009800000C0207418DF5444188001031005003A18800105D0A25A1710001B1ED0E25D1799
-:200988001880006C10000C2600802074109F4504108003430100024411403FCC2900022633
-:2009900010800044000001060080004401002074211F1B042080000518C000AC18000A2643
-:2009980000C0207418DF5444188000030140004411003FCC290002361145883A00000106A0
-:2009A0000005883A18800005DFC00117DEC00204F800283ADEFF6C04D9000304DC008C1574
-:2009A800DFC09315DD809215DD409115DD009015DCC08F15DC808E15DC408D150810D54075
-:2009B0001021883A1000821ED9008304D9400304018001040814680001402074D9008304C5
-:2009B80029589E0401800104081463C010000B260100207401802074211F38040140044447
-:2009C0003198A0040814584000802074109F4084100000050400004400006D06D880040340
-:2009C800DC808484D9400484D8808405D88004439009883A01800204D88084450814680003
-:2009D000D880068BD8008645D8808B0DD880070BD8808B8DD9408B17280BC232D880078BE5
-:2009D800D9408715D8808B0DD880080BD8808B8DD8808B171005C232D8808815D880088B9C
-:2009E000D8808B0DD880090BD8808B8DD8808B171005C232D8808915D8808217D8808B1549
-:2009E8001005C232D8808A1500C0788428BFF98418800B2E0100207401802074211F3804D8
-:2009F000014004443198A4040814584000802074109F408410000005043FFFC400003C0655
-:2009F800D900030401800044081579C0D8C08A1701002074211F38040140044410C0072614
-:200A0000018020743198A8040814584000802074109F40841000000500002C0601802074B5
-:200A08003198AC0408145840D9C088170100207401802074211F4084014004443198B004B5
-:200A1000081458400810DD80DCC08817DD4089170021883A0005883A0580800484C00F2E71
-:200A18009C23C83AB440012E0440800485008004A009883A880B883AD98003040810C80009
-:200A20001000121E800D003AD9000304880B883A081579C0A021883A003FF00615405D2694
-:200A28000100207401802074211F3804014004443198B3040814584000802074109F408444
-:200A300010000005043FFF4400000106043FFF8404C000C40810DD80010003F42110900484
-:200A38000814F18000BFCE448080480E04C0470E0100207401802074211F38040140044422
-:200A40003198C604081458409CFFFFC40100207401402074211F40842958BE040180044477
-:200A4800081468000810DD800021883A0580800405004004DC40881784401C2E8C23C83AE6
-:200A5000B440012E0440800485408004A809883A880B883AD98003040810C8001000291EF3
-:200A58008025D23A880B883AA440012E01404004D9000304900D883A0810A8401021883AAE
-:200A6000103FD41EA4400236A821883A003FE906D9004304897FC004918000440810A8401F
-:200A68001021883A103FF826003FCA060100207401402074211F38042958C2040180044409
-:200A7000081468000100207401402074211F40842958BE0401800444081468000810DD806F
-:200A7800D9408817D98089170009883AD9C003040810BAC01021883A103FB61E0005883AD3
-:200A800000003B0600BFCE040000390600BFFFC400003706D8808487D9C08403D8C08443A4
-:200A880010000326008020741098810400000206008020741098DF04010020740180207483
-:200A9000D8C00015211F3804014004443198B804D8800115DC8002150814584001002074E5
-:200A980001402074211F40842958CA0401800444081455C0044020B4040020740810DD80F7
-:200AA0008C452004841ACB048880003780C0000B10BFFFCC10C0052680C0008B10C01326E1
-:200AA8000109C4040814F180003FF7060813958000C020B418C52404188000371080011456
-:200AB000188000350109C4040814F1800100207401402074211F38042958BB04018004440B
-:200AB8000814680004C000C4003F880600800044DFC09317DD809217DD409117DD009017E9
-:200AC000DCC08F17DC808E17DC408D17DC008C17DEC09404F800283A21C03FCC0180207403
-:200AC80001002074211F4084014004443198CF0408145841DEFFFF0421003FCC01411944F0
-:200AD000DFC00015081450401009883A01401904081444400100207401802074211F40841F
-:200AD800014004443198D104100F883ADFC00017DEC001040814584121C03FCC01802074E7
-:200AE00001002074211F4084014004443198D30408145841014003F4DEFFFC0421003FCC3E
-:200AE80029509004DFC00315DC400215DC000115081450401009883A0146590408144F402F
-:200AF0001009883A0140FA041021883A08144F408009883A0140FA041023883A08144FC084
-:200AF8001009883A0140028408144F400100207401802074D8800015211F408401400444ED
-:200B00003198D604880F883A08145840DFC00317DC400217DC000117DEC00404F800283A43
-:200B0800DEFFFF0421003FCC014119C4DFC00015081450401009883A014019040814444069
-:200B10000100207401802074211F4084014004443198D904100F883ADFC00017DEC00104AE
-:200B18000814584121C03FCC0180207401002074211F4084014004443198DB040814584188
-:200B200021003FCCDEFFFF042100004401409C44DFC00015081450401009883A014019048A
-:200B2800081444400100207401802074211F4084014004443198DE04100F883ADFC0001794
-:200B3000DEC001040814584100802074109F200411400017DEFFFA0401802074DC0000151D
-:200B3800DFC00515DD000415DCC00315DC800215DC400115040002C4319ACB0400C0044429
-:200B40008405883A1185883A1080000B2880101E80BFFD0410803FCC050001048025883A35
-:200B4800A0803A36100490BA00C0207418CB4F0410C5883A108000171000683A00812DD0A7
-:200B500000812D5C00812D9800812ED000812ED08400004480FFEA1E0000F806D0E25E4397
-:200B580001002074211AD704180490FA2087883A18C0010319403FCC2800031E2087883AD1
-:200B600018C0001718C0000318FFFFC42085883A10C0010500009406D0E25E4301402074D2
-:200B6800295AD704180490FA140001042885883A108000172C21883A810000031140000353
-:200B700021000044081449808080000500008606D0A25E4310C03FCC1800032610BFFFC4C9
-:200B7800D0A25E4500008006D0225E85DFC00517DD000417DCC00317DC800217DC400117DB
-:200B8000DC000017DEC006040810DEC1D4225E43044020748C5AD704802490FA014005045B
-:200B88008C85883A1100010314C000170814504098C00117010000C41885883A10C0010366
-:200B9000190006261D00671E10800217048002C4103EE83A1021883A0000640684000044D6
-:200B9800802090FA108002178C07883A18C00017188002268C05883A100001058C85883A2A
-:200BA00011000103014005048C21883A0814504098C001178CA3883A1887883A18C0021708
-:200BA80080C0001588C0001718C001171885883A1080031710000226010002C4103EE83A11
-:200BB000D0A25E4310800044D0A25E4500004506D0E25E4301002074211AD704180490FA3A
-:200BB800014005042087883A190001031C4000170814504088C00117010000841885883AEA
-:200BC00010C001031900202619000336010000C419002F26000034061180021782003FCCEC
-:200BC80001C003C41100030310C00343314000031080038341C00A1E29C03FCC1A003FCC8C
-:200BD00041C0022E28BFFFC40000030621003FCC2000011E1805883A3080000500002206FA
-:200BD80029C03FCC12003FCC3A00022E288000440000030621003FCC200001261805883A3B
-:200BE00030800005000010061100021781803FCC014003C420C0000B3140061E1080030BCE
-:200BE800197FFFCC1140012E18FFFFC420C0000D00000D061080038B197FFFCC2880012ED8
-:200BF00018C0004420C0000D048004040000060610800317100004268009883A103EE83AA5
-:200BF80000000106048002C40021883AD0E25E4301002074211AD704180490FA01400504BB
-:200C00002087883A190001031CC00017081450401023883A9880011701002074211F380479
-:200C08001445883A11400017018004440814680098800117010001041445883A10C00103D7
-:200C100020C03636180690BA01002074210C17041907883A18C000171800683A0081307087
-:200C1800008130A0008130B0008130C0008130D410C00217110004170180044418C000035B
-:200C200018C5883A1085883A2085883A1140001701002074211F40840814680000001F06AD
-:200C280010C0021710800417190000030000070610C00217108004171900000B000003062E
-:200C300010800317100006260009883A103EE83A0000120694803FCC00C002C490C004264C
-:200C380000802074109F40841000000500000B068000021E11C003170000020601C0207407
-:200C400039D8E0040100207401802074211F4084014004443198E20408145840DFC005174A
-:200C4800DD000417DCC00317DC800217DC400117DC000017DEC006040810DD8121003FCCF8
-:200C5000200002260025883A003FA706DFC00517DD000417DCC00317DC800217DC40011757
-:200C5800DC000017DEC00604F800283A009114B4DEFFBF041094D544D88000150080107460
-:200C600010951044D880011500801244D8800245D809883A00800084014002C40184000461
-:200C6800DFC04015D8000205D88002850810A8401000022600BFFFC4000020060140207405
-:200C700000800D04D9000104295ACB0401800C04D8000005D8800045D80000C5D80000859E
-:200C7800081455C0D809883A01400D04018400440810A840103FEF1E008000440140207478
-:200C8000D8800005D900010400800804295F544401800704D8800045D80000C5D80000854A
-:200C8800081455C0D809883A01400804018400840810A8401004C03A0085C83ADFC0401797
-:200C9000DEC04104F800283ADEFFB50401000434014002C4D80D883ADFC04A15DD804915D1
-:200C9800DD404815DD004715DCC04615DC804515DC404415DC0043150810A1001000022642
-:200CA000043FFFC400003806D9004004D80B883A018002040814680001402074D900400431
-:200CA8002959E40401800204081463C01021883A10002C1ED8800203DD4002830023883ACB
-:200CB000D8804205D8800243DD40428505800D04D8804245A8803FCC8880230E8CC400448F
-:200CB8009826923A01400084D80D883A9809883A0810A100103FE21EDD0000439809883A38
-:200CC000D80D883AA00B883ADC8000030810A100103FDB1E90803FCC1000032600C0004448
-:200CC80010C0072600000D06A5800C1E01002074211ACB04D940010401800C040000060653
-:200CD00000800804A080051E01002074211F5444D940010401800704081455C08C400044DD
-:200CD800003FDC06040000448005883ADFC04A17DD804917DD404817DD004717DCC04617DF
-:200CE000DC804517DC404417DC004317DEC04B04F800283ADEFFFA04DC800215048020B4A2
-:200CE800DFC00515DD000415DCC00315DC400115DC00001594851004900000350440050427
-:200CF0008809883A040020B4840508040814F1808009883A01400E04081594408809883AB5
-:200CF8000814F1808009883A01400E44081594408809883A0814F180880B883A8009883A00
-:200D0000081594408809883A0814F1808009883A01401C44081594408809883A0814F18045
-:200D08008009883A01401784081594408809883A0814F1808009883A01401B4408159440F7
-:200D10008809883A0814F1808009883A01400304081594408809883A0814F18004C0004477
-:200D1800980B883A8009883A081594400500C804A009883A0814F1808009883A0140018440
-:200D2000081594408809883A0814F1808009883A0140008408159440A009883A0814F180E9
-:200D280094C00035DFC00517DD000417DCC00317DC800217DC400117DC000017DEC0060475
-:200D3000F800283ADEFFFA04DC000015040020B4DCC00315DC800215DFC00515DD000415CF
-:200D3800DC4001152027883A2825883A8405100480000035010020B4014000442105080473
-:200D4000081594400100C8040814F18000800084808000359809883A0140040408146CC01B
-:200D48001007883A10803FCC1000061E014020749809883A2959E6040180044408146800F2
-:200D500000C000449829883A1C403FCCA1400003010020B4210508040815944001000504AF
-:200D58000814F180A5000044A4C5C83A10803FCC147FF63680000035010020B40140300441
-:200D60002105080408159440010005040814F18000800084808000359009883A01400404DC
-:200D680008146CC01007883A10803FCC1000061E014020749009883A2959E6040180044416
-:200D70000814680000C000449027883A1C403FCC99400003010020B4210508040815944027
-:200D7800010005040814F1809CC000449C85C83A10803FCC147FF636008000C4808000352E
-:200D8000DFC00517DD000417DCC00317DC800217DC400117DC000017DEC00604F800283A4C
-:200D8800DEFFFB04DC000015040020B484050804DC80021504800B04DCC00315900B883AFA
-:200D90002027883A000D883A8009883ADFC00415DC40011508158840044000448009883A7E
-:200D980099403FCC880D883A08158E808009883A900B883A880D883A081588408009883AA6
-:200DA000880B883ADFC00417DCC00317DC800217DC400117DC000017DEC0050408158BC1C2
-:200DA800DEFFFC04DC000015040020B484050804DC800215DC4001152025883A2823883A37
-:200DB0008009883A01400B04000D883ADFC00315081588408009883A91403FCC000D883A27
-:200DB80008158E808009883A89403FCC01800044DFC00317DC800217DC400117DC000017B7
-:200DC000DEC0040408158E81010020B4DEFFFD04000D883A000B883A21050804DFC002150A
-:200DC800DC400115DC00001508158E80010002840814F18004000604044000448809883AC0
-:200DD000800B883A08136A00800B883A0100008408136A00800B883A010000C408136A0043
-:200DD8008809883A081362001405003ADFC00217DC400117DC000017DEC00304F800283AFA
-:200DE000DEFFFC04DC4001152023883ADC8002158C403FCC048000449009883A882290FA3E
-:200DE800DFC00315DC00001508136200043FF9C41404703A1460B03A84003FCC9009883ABC
-:200DF000800B883A08136A00800B883A0100008408136A00010000C4800B883ADFC00317EF
-:200DF800DC800217DC400117DC000017DEC0040408136A01DEFFFD04DC4001152023883AFE
-:200E000001000044DC000015DFC00215043FF604081362001420703A89003FCC00800084B6
-:200E08002080021E84000054000003062008917A2080011480A0B03A84003FCC800B883A5B
-:200E10000100004408136A00800B883A0100008408136A00010000C4800B883ADFC00217D7
-:200E1800DC400117DC000017DEC0030408136A01DEFFFB04DC000015040020B4840508042E
-:200E2000DC80021504801704DCC00315900B883A2027883A000D883A8009883ADFC00415B4
-:200E2800DC40011508158840044000448009883A99403FCC880D883A08158E808009883A0F
-:200E3000900B883A880D883A081588408009883A880B883ADFC00417DCC00317DC80021784
-:200E3800DC400117DC000017DEC0050408158BC1DEFFFC04DC000015040020B48405080428
-:200E4000DC800215DC4001152025883A2823883A8009883A01401704000D883ADFC00315AC
-:200E4800081588408009883A91403FCC000D883A08158E808009883A89403FCC01800044A0
-:200E5000DFC00317DC800217DC400117DC000017DEC0040408158E81DEFFFC04DC0000158D
-:200E5800040008848009883ADFC00315DC800215DC40011508138700014004C4010005840E
-:200E60001023883A0489C40408138F009009883A0814F180014000C4010005C408138F001D
-:200E68009009883A0814F18000FFE00488CAB03A8009883A29403FCC08138F000100FA04FB
-:200E70000814F1808009883A89401FCCDFC00317DC800217DC400117DC000017DEC00404DB
-:200E780008138F01DEFFFE04DC0000150409C4048009883ADFC001150814F18001400444F4
-:200E80000100058408138F008009883A0814F180010005C40140008408138F008009883AC2
-:200E8800DFC00117DC000017DEC002040814F181DEFFFE04DC0000152821883A21403FCC27
-:200E900001000484DFC0011508138F00010004C481403FCCDFC00117DC000017DEC0020477
-:200E980008138F0121403FCC01000F4408138F0121403FCC0100044408138F01DEFFFE04E5
-:200EA000DC0000152021883A814000C301000284DFC0011508138F008140010301000244C8
-:200EA80008138F00814001430100020408138F00814000030100034408138F008140004310
-:200EB0000100030408138F0081400083010002C4DFC00117DC000017DEC0020408138F016C
-:200EB800DEFFFA04DC0000152021883A01000104DD000415DCC00315DC8002153829883A05
-:200EC000DFC00515DC4001152827883A3025883A0813870000FFFE04A5003FCC10C4703A2E
-:200EC800A00006261080005411403FCC0100010408138F008423883A0000040611403FCC7F
-:200ED000010001048023883A08138F008C7FFFCC880AD13A0100004429403FCC08138F0017
-:200ED800880A913A0100008429403C0C08138F00993FFFCC91403FCC081450401009883AB7
-:200EE000880B883A081450401009883A0140FA0408144F4000E327D41880092E00C000744B
-:200EE80018C45BC41880082E00C000B418C3D5C41885403A00C000C41885C83A00000306F6
-:200EF0000005883A000001060080004414003FCCD0A018041405883A1100000301400A0467
-:200EF800081450408808D07A880B883A1109883A08144440100B883A00C001C410803FCC86
-:200F00001880012E180B883A29403FCC800491BA280A90FA010000C4288AB03A29403FCC51
-:200F0800DFC00517DD000417DCC00317DC800217DC400117DC000017DEC0060408138F0171
-:200F1000DEFFFE04DC0000152021883A01000684DFC0011508138700017FFE8484003FCC7B
-:200F180000C000441144703A80C0021E10800094000001061080029411403FCC010006841E
-:200F2000DFC00117DC000017DEC0020408138F012140028BDEFFFE04DC000015280AD23ABC
-:200F28002021883A010012C4DFC0011508138F00814002830100128408138F008140030B1A
-:200F300001001344280AD23A08138F00814003030100130408138F008140038B010013C4B1
-:200F3800280AD23A08138F00814003830100138408138F008140010B01001444280AD23AC4
-:200F400008138F00814001030100140408138F008140018B010014C4280AD23A08138F0051
-:200F4800814001830100148408138F008140020B01001544280AD23A08138F00814002032B
-:200F50000100150408138F008140040B010015C4280AD23A08138F008140040301001584C9
-:200F580008138F008140048B01001644280AD23A08138F00814004830100160408138F002F
-:200F60008140050B010016C4280AD23A08138F008140050301001684DFC00117DC000017CF
-:200F6800DEC0020408138F01DEFFFD04DC00001504000FC4DC4001152023883A8009883AF2
-:200F7000DFC002150813870000FFFC0410C4703A888AB03A8009883A29403FCCDFC0021719
-:200F7800DC400117DC000017DEC0030408138F01DEFFFD04DC40011504400684DC00001513
-:200F80002021883A8809883ADFC002150813870081403FCC00C000C4194BC83A280A91BA70
-:200F880010800FCC8809883A114AB03A29403FCCDFC00217DC400117DC000017DEC003044E
-:200F900008138F01DEFFFD04DC0000152021883ADC40011584003FCC044001048809883A67
-:200F9800802090FADFC0021508138700108001CC140AB03A8809883A29403FCCDFC00217D3
-:200FA000DC400117DC000017DEC0030408138F01DEFFFF04DFC00015081395800009883A2B
-:200FA8000813C400000B883A01000D4408138F00010020742119E7040813C90001000404DA
-:200FB0000813E4400009883A0813DA800009883A0813DF00010001840813A640014000C451
-:200FB80001000D0408138F00010011040813A700010006C40140220408138F00010007049D
-:200FC00001400204DFC00017DEC0010408138F01DEFFFD04DC0000152021883ADC400115C2
-:200FC80084003FCC044004048809883A802090FADFC0021508138700108001CC140AB03AF4
-:200FD0008809883A29403FCCDFC00217DC400117DC000017DEC0030408138F0121003FCCDF
-:200FD80020001A26DEFFFD04DC400115010009842823883A01402004DC000015DFC00215E2
-:200FE0003021883A08138F0089403FCC0080004428800426008002042880041E814016841F
-:200FE8000000030681400244000001068140060401000C4429403FCCDFC00217DC40011756
-:200FF000DC000017DEC003040000020601000984000B883A08138F01DEFFF704D8800917EB
-:200FF800DDC00715DD800615DD400515DD000415DCC00315DC800215DC400115DC00001531
-:20100000DFC008152C403FCC00C000442021883A302B883A3829883ADCC00A17DC800B171B
-:20100800DD800C1715C03FCC88C0092600C0020488C00E1E11400C840100014429403FCC1C
-:2010100008138F00010001840140080400000D06114000840100014429403FCC08138F00F7
-:2010180001000184200B883A00000606114001840100014429403FCC08138F000100018479
-:201020000140040408138F0001000044880B883AB80D883A0813F5C0B1003FCC0813A7004E
-:2010280000800404010008848880021E01400304000001060140020484003FCC8400201C86
-:2010300008138F00843FE0048009883A0140070404402074081450408C5F5B848887883A99
-:2010380019C0068B1900040BA1803FCC39C0100C380EC03AA97FFFCC0813AE0099003FCC25
-:2010400091403FCC0813A3008009883A01400704081450408885883A11400583010001C445
-:20104800DFC00817DDC00717DD800617DD400517DD000417DCC00317DC800217DC40011705
-:20105000DC000017DEC0090408138F01DEFFFD0429BFFF84DC400115DC000015DFC0021515
-:2010580031803FCC0080004424403FCC2C003FCC11800436008000848880071E8805883A07
-:20106000000008068800061E8005003A00C000841885C83A000003060005883A000001063D
-:2010680000800084880A913A8C47883A10803FCC100491BA18CD883A2986B03A20CAB03A64
-:20107000288AB03A0100064429403FCC08138F00008000C4010004048080031E0140174451
-:2010780008138F00000011060140160408138F000080008488800D1E0080004414000B3642
-:20108000010003848080021E0140148400000106014014C408138F000100FA040814F18079
-:20108800010005040813870000000C06014016C40100038408138F000100FA040814F180B1
-:201090000100050408138700008000C48080031E01000604014004040000020601000604C8
-:20109800000B883A08138F0001000D84000B883ADFC00217DC400117DC000017DEC00304DE
-:2010A00008138F01DEFFFD04DC4001152023883A01000504DC000015DFC002152821883AB4
-:2010A800081387008C403FCC00C0008488C00A1E81403FCC00C0004428C0031E1080240C62
-:2010B00010802420000006062800031E1080220C10802220000002061004D07A1080004C25
-:2010B800DFC00217DC400117DC000017DEC00304F800283ADEFFFE04DAC0030302800044F5
-:2010C000DC00001552D6983ADA400403DC00020302002074DC400115421F61840005883A4E
-:2010C800037FFEC40380008403FFFBC429403FCC030006844180008B40C000033440200C0C
-:2010D000880005264800021E78C6703A000009064B80081E000006063440400C880005267E
-:2010D8004800021E68C6703A000002064A80011E0007883A19C6703A18C03FCC18000C2648
-:2010E00030C0080C1807003A28C0091E40FFFE8B18C0078419000636318003CC80000326DB
-:2010E80030FFFFCC180001261AC007263000062610C000441805883A18C03FCC4200070429
-:2010F0001B3FDC1E00BFFFC4DC400117DC000017DEC00204F800283A2900182E2800171621
-:2010F8000080080400C00044000002061000112628000516294B883A10BFFFC418C7883A4D
-:20110000293FFA3618000B260005883A214002362149C83A10C4B03A1806D07A280AD07A80
-:20110800183FFA1E3000011EF800283A2005883AF800283A0005883A003FFA0600C0004464
-:20111000003FF106DEFFFE04DFC00115DC00001520000B160021883A28000C16000D883AC7
-:2011180008143D800407C83A1884F03A1405883ADFC00117DC000017DEC00204F800283A88
-:201120000109C83A04000044283FF40E014BC83A8400005C003FF106DEFFFD04DFC00215FA
-:20112800DC400115DC00001520000C160023883A0021883A28000D160180004408143D8091
-:201130001404F03A8885883ADFC00217DC400117DC000017DEC00304F800283A0109C83AA4
-:2011380004400044043FFFC4283FF30E014BC83A003FF106000D883A08143D8101800044AF
-:2011400008143D810005883A2000072620C0004C2008D07A180001261145883A294B883A76
-:20114800203FFA1EF800283AF800283A218D883A218008262080000328C0000310C0022697
-:2011500010C5C83AF800283A2100004429400044003FF7060005883AF800283A2005883AF8
-:201158000007883A1980062628C9883A21C0000310C9883A18C0004421C00005003FF90677
-:20116000F800283ADEFFF504DFC00915DC400815DC000715D9C00A1500802074109CDE04F7
-:20116800144000172800040E008022C48880001500BFFFC400001C0600C08204D8C0000DB0
-:20117000D9000415D90002152800022628FFFFC4000001060007883AD8C00515D8C0031511
-:201178001100001700FFFFC4D8C0008D00C0207418D332042821883AD9C00A04D80B883A7C
-:20118000D8C00115D8000615081475C000FFFFC410C0020E00C022C488C000158000022610
-:20118800D8C0041718000005DFC00917DC400817DC000717DEC00B04F800283A30000E2618
-:2011900031BFFFC4218D883A2080000728C0000710C0011E2180041E2080000328C0000346
-:2011980010C5C83AF800283A103FFB262100004429400044003FF4060005883AF800283A2A
-:2011A0002005883A2007883A1809883A3000092629C0000331BFFFC418C0004421C000057C
-:2011A80039C03FCC39C0201C39FFE00429400044383FF51E198D883A198003261800000554
-:2011B00018C00044003FFC06F800283A214B883A2005883A1140021E1105C83AF800283A70
-:2011B80010C00007183FFC2610800044003FF906DEFFFB04DC800315DC400215DC00011540
-:2011C000DFC004152025883A2823883AD98000053821883A04000A0E888001179009883A33
-:2011C800880B883AD80D883A01C00044103EE83A843FFFC4103FF72600BFFFC4000001061B
-:2011D0000005883ADFC00417DC800317DC400217DC000117DEC00504F800283ADEFFE3041A
-:2011D800D8C00804DF001B15DDC01A15DD801915DD401815DD001715DCC01615DC8015154D
-:2011E000DC401415DC001315DFC01C152029883A2823883A3839883AD9800F150021883A2B
-:2011E800D8000E15002F883A002B883A0027883A0025883AD8000C15D8000B15002D883A5E
-:2011F000D8C00915D8C00F171900000320803FCC1080201C10BFE00410012E26014000443B
-:2011F800B14014262D800216B00006260001250601400084B1401D26014000C4B1402B269F
-:20120000000120060140094411410D2688800117D9000005880B883AA009883AD80D883A2F
-:2012080001C00044103EE83A1000E81E840000440001140601400C0411410A2601400944F7
-:2012100011400A1ED880000588800117A009883A880B883AD80D883AB00F883A103EE83A70
-:201218001000DA1E840000440001050625BFF404B5803FCC00C002441D80093600BFFFC45A
-:20122000908004269009883A0140028408145040000001060005883A15A5883A0000F20664
-:2012280001400B841140F42605800084213FF40420C03FCC0100024420C00B3600BFFFC435
-:20123000988006269809883A01400284D8C0111508145040D8C01117000001060005883A38
-:2012380010E7883A0000E70601401B041140E026013FFFC499000226D8000B150000010676
-:2012400004C0004401001A441100162620800916010018C41100962601001904110011260B
-:20124800010016041100D61E00C00044D8C00E150000140601001CC41100A6262080041615
-:2012500001001BC41100CE1E0540020400000E0601001D4411000C2601001E04110009263A
-:201258000000C706E0800104B8000726D8800D15E7000017E000080E0739C83A0200004469
-:201260000000060605400404E0C00104D8C00D15E7000017002F883A0011883A002D883A05
-:20126800DD87883AE0001A26E009883AA80B883AD8C01115DA00121508144F40A809883A23
-:20127000100B883AD880101508145040E085C83A01000244D8C01117D9801017DA00121767
-:201278002080021617000C0400000506D9400E172800022617000DC400000106170015C4FF
-:201280001F000005B58000443039883A003FE4061EC5C83AD8800A159885C83A1839883ACF
-:2012880000800E0E182D883A1885883A01000C04D9400917B007883AB140052EB5800044E4
-:2012900019000005B039883AB0BFF91E00000106B039883AB6EDC83ADD800A15D8800A17A3
-:201298001207883A90EDC83AD8C00B171800172640000A2600800B44D88008058880011709
-:2012A000A009883A880B883AD980080401C00044103EE83A10004D1E840000440580070EB7
-:2012A800A009883A880B883A01800C04B00F883A08146F001000451E85A1883AD9000A1774
-:2012B000E007883A272DC83A000022060580090EA009883A880B883A01800804B00F883A8D
-:2012B800DA00121508146F00DA0012171000371E85A1883A403FF12600800B44D880080570
-:2012C00088800117A009883A880B883AD980080401C00044103EE83A10002C1E8400004432
-:2012C800003FE60618FFFFC418800003A009883AD8C01115D880080588800117880B883A63
-:2012D000D980080401C00044103EE83AD8C0111710001E1E80C5C83A1D89883AE085883A42
-:2012D800013FF0161021883ADF000D1700004406010000442480080E95BFFFC4A009883AEF
-:2012E000880B883A01800804B00F883A08146F0010000E1E85A1883AE0800017A009883AFA
-:2012E800880B883AD880000588800117D80D883A01C00044E5800104103EE83A1000031E5D
-:2012F00084000044B039883A00002D0600BFFFC400003106E5800017E0C00104D8C00A15A7
-:2012F800B009883A0814DC409091C83A1039883A0200090E400F883AA009883A880B883A0B
-:2013000001800804DA00121508146F00DA001217103FEE1E8221883A88800117A009883A66
-:20130800880B883AB00D883AE00F883A103EE83A103FE61E8721883ADF000A1700001006FD
-:2013100005C0004404FFFFC4D8000E15054002849825883AD8000C15D8000B15B82D883A11
-:2013180000000806DD800B15058000840000050600C00044D8C00C15058000C40000010609
-:20132000002D883AD8C00F1718C00044D8C00F15003ECC068005883ADFC01C17DF001B17EE
-:20132800DDC01A17DD801917DD401817DD001717DCC01617DC801517DC401417DC00131755
-:20133000DEC01D04F800283A2880000BDEFFFD04DC000015DFC00215DC40011510C0020C3C
-:201338002821883A1800192628C0008F1800150E10C0800C180013262C40051789C0030EF2
-:2013400010C0200C1800032600000E063C40010E3823883A81000417300B883A880D883AA4
-:201348000814D640808005171445C83A80800515808004171463883A844004150005883ACA
-:2013500000000306108010148080000D00BFFFC4DFC00217DC400117DC000017DEC00304AD
-:20135800F800283A2005883A29000D2E298F883A21C00B2E3007883A017FFFC418FFFFC426
-:20136000194006261989C83A3909883A2200000310C9883A22000005003FF806F800283AC2
-:201368000007883A1980062628C9883A21C0000310C9883A18C0004421C00005003FF90665
-:20137000F800283A2005883A10C000071800022610800044003FFC061105C83AF800283A7E
-:20137800DEFFFF040100207401402074DFC00015211AB904295CE7042140061E01002074D5
-:201380000140207421000804294008042140141E00000D0600C0207418DCE70400BFFF043B
-:201388001907C83A1886703A0005883A10FFF326114F883A39C00017110D883A1080010445
-:2013900031C00015003FF90601002074014020742117D7042957D7042140121E00000D067D
-:2013980000C0207418C0080400BFFF041907C83A1886703A0005883A10FFF326114F883AC0
-:2013A00039C00017110D883A1080010431C00015003FF90608159E80DFC00017DEC00104D0
-:2013A8000815AE0100C0207418DAB90400BFFF041907C83A1886703A0005883A10FFF52639
-:2013B000114F883A39C00017110D883A1080010431C00015003FF906DEFFFF040009883A87
-:2013B800DFC000150814F1C00814F3C001002074211AA904200B883A200D883A0815B84057
-:2013C000D1226117D1626017D1A25F17DFC00017DEC001040811D4C108159681DEFFFF04F4
-:2013C800DFC000150815E1C0008000441001703ADFC00017DEC00104F800283ADEFFFE0482
-:2013D000DC00001504002074841CE00401002074800B883A211C4F04DFC0011508159F40CD
-:2013D80001002074211C18040815628001002074211C0D04800B883ADFC00117DC0000172E
-:2013E000DEC0020408159F4101402074DEFFFF04295CE004DFC000150815A6C010000E26B3
-:2013E80010C00A17D0A26415D0226E1519008D04D1226C1519008904D1226B1519008404BC
-:2013F000D1226A1519008C04D122691519008B04D1226815D0E26715DFC00017DEC00104B2
-:2013F800F800283AD0E26417008000441800041ED0E26E171880071ED0226E1500000506DC
-:20140000D0E26C1718C0002B18C0008C183FF826F800283A0005883AF800283ADEFFFD0462
-:20140800DC400115DC000015DFC002152023883A2821883A0814FE401000021E0005883A8A
-:20141000000011068C09883A2006927AD0A2681710C00035D0A2691700C0060410C0002D6D
-:20141800D0A26C171080002B10BFFFCC10C0010C183FFB1E1080040C103FF01ED0226315B6
-:20142000D122621500800044DFC00217DC400117DC000017DEC00304F800283AD0A26317B4
-:2014280010000326D1226217000B883A081501C100800044F800283ADEFFFD04DC40011525
-:20143000DC000015DFC002152023883A2821883A0814FE401000021E0005883A0000190675
-:20143800D0A263171000081E8C09883A2006927AD0A2681710C00035D0A2691700C00444F9
-:2014400010C0002D00000506D1226217000B883A081501C0103FF41E003FEF06D0A26C17E3
-:201448001080002B10BFFFCC10C0010C183FFB1E1080040C103FE81ED0226315D122621519
-:2014500000800044DFC00217DC400117DC000017DEC00304F800283A2005883A21000017BB
-:2014580011C0021721000A04081518012005883A2100001711C0021721000A0408151DC1F2
-:2014600021000017298D883A2805883A3A10000C11800B2E20C000371A60000C480003269F
-:2014680010C0000510800044003FF906114002261145C83AF800283A403FF52600000106B1
-:20147000117FFB1E39D0000C3800021E00BFFEC4F800283A00BFFD44F800283A21000017D9
-:201478003005883A298D883A21C001042980072E38C0003718FFFFEC183FFC2628C0000788
-:2014800020C0003529400044003FF806F800283A20001D262804923A20C03017DEFFFD0493
-:20148800DC400115DC000015DFC002152823883A2021883A108000D41880033580C03017A0
-:20149000188000371080004C100003260100004408159680003FF90618C000371809D0FAA8
-:201498002140020C1809D0BA1807D07A210001CC2908B03A18C0040C20C6B03A1C4004266A
-:2014A00000BFF4840000020600BFFA84F800283ADFC00217DC400117DC000017DEC00304D2
-:2014A800F800283A20000A26280009263000082620800C173080001520800C17100006263E
-:2014B00021000D04290000150005883AF800283A00BFFA84F800283A00BFFEC4F800283A19
-:2014B8002005883A20001D262809883A28001B1610C0311728C0192E1140341728FFFFC4B1
-:2014C00020C6703A1800151EDEFFFE04DC000015DFC001151021883A08144F401004923A2E
-:2014C80000C0403418FFC00410C4703A80C03017108000941880033580C0301718C0040495
-:2014D000188000371080004C10000626008000441880003500BFFEC40000020600BFFA84BE
-:2014D800F800283ADFC00117DC000017DEC00204F800283ADEFFF504DC000115DFC00A156C
-:2014E000DF000915DDC00815DD800715DD400615DD000515DCC00415DC800315DC40021531
-:2014E800DC000B17280039163023883A300037162027883A20003526382B883A38003326A3
-:2014F000208031173080312E2880302E208034172987C83A1887883A1C002C3680002B16A2
-:2014F80010BFFFC4288A703A2800281E0029883A05BFFFC405C000C40700010480002126AA
-:20150000DD800015890000CC20000526E125C83A8480012E8025883A8923C83A000004065F
-:20150800BC0002368025883A0000010604800104AD0B883AD909883A900D883A081455C02A
-:2015100098802E17D8C00017A4A9883A84A1C83A8885883A10C000359880301710800404AE
-:2015180010C0003718C0008C1800042600C0008410C0003500BFFEC4000005068C40010460
-:20152000003FDE060005883A0000010600BFFA84DFC00A17DF000917DDC00817DD80071787
-:20152800DD400617DD000517DCC00417DC800317DC400217DC000117DEC00B04F800283A13
-:20153000DEFFF604DC000115DFC00915DDC00815DD800715DD400615DD000515DCC00415FE
-:20153800DC800315DC4002152021883A20000A263029883A3000082620802E1780C02F17B5
-:201540002823883A2885883A382B883A11C9883A10C0012E20C0023600BFFA8400002406D0
-:201548002809883A81403417002D883A08144F40102F883A80803317B8801C2EA8001B2634
-:2015500084C0341704E7C83A8CE6703A9C4002268CE5C83A000001060025883A8009883A33
-:20155800980B883A08152E001000111E80C034171CA5C83AAC80012EA825883ADC800015DB
-:201560008009883A980B883A880D883AA58F883A081537401000061EACABC83AB4AD883A2A
-:201568008CA3883ABDC00044003FE2060005883ADFC00917DDC00817DD800717DD40061793
-:20157000DD000517DCC00417DC800317DC400217DC000117DEC00A04F800283A20000726B9
-:201578003000062620802E17288B883A20802F1729C7883A2880012E1880023600BFFA8421
-:20158000F800283ADEFFFF043009883A380D883ADFC00015081455C00005883ADFC00017AD
-:20158800DEC00104F800283A20005026208030171000502620C03217DEFFFB04DFC0041586
-:20159000DCC00315DC800215DC400115DC00001518001E1E1480023700C0030494803FCCEA
-:2015980090BFFAC418804536100490BA00C0207418D5A00410C5883A108000171000683AE0
-:2015A000008156EC008156FC00815704008156F4008156B40081577C0081577C0081577C67
-:2015A8000081577C0081577C0081577C008156BC008156C4044080040000130604410004CF
-:2015B000000011060442000400000F06148001370080058494803FCC90800A2600800604E7
-:2015B80090800426008005049080241E0440080400000506044040040000030604401004BA
-:2015C000000001060440200424C034172021883A8809883A980B883A0814504080C031177E
-:2015C80010C0021E80C0331788C0022680000C150000120600C00044014020748480361538
-:2015D0008440331580C00C1580000D1580800E1584400F1584C010158009883A295CE504BF
-:2015D80008159F400005883A0000050600BFFA84F800283A00BFFB44F800283A00BFFB4438
-:2015E000DFC00417DCC00317DC800217DC400117DC000017DEC00504F800283A3000012687
-:2015E8000005C03200FFFF042005883A28C6703A110DC83A30C0042E11800017300DC0F292
-:2015F00010800104003FFA06294000CC00C000C428C0041E10C0000B1807C0B210800083C5
-:2015F8000000080600C0008428C0031E1080000B1005C0B20000040600C0004428C0021E40
-:20160000108000031005C0720005C132F800283ADEFFFD04DC400115DC0000152823883A90
-:201608002021883A014001443009883ADFC00215081450408809883A100B883A08144F4001
-:2016100010BFFFC480C0020418000035010000448100043511003FCC810000351004D23AA4
-:2016180010803FCC808001350080200418800035DFC00217DC400117DC000017DEC00304EC
-:20162000F800283A3180004C294B883A298B883A2140033521000404008024042080003568
-:20162800208000371080008C103FFD1E208000371004D1FA1080004CF800283A20C0040471
-:201630002800022600801A04000001060080080418800035188000371080008C103FFD1EF7
-:2016380020800337F800283A29403FCC214003352100040430000226008014040000010631
-:201640000080040420800035208000371080008C103FFD1E208000371004D1FA1080004C3E
-:20164800F800283A20C0040400800B0418800035188000371080008C103FFD1E20800337B5
-:20165000F800283A29403FCC21400335210004040080070420800035208000371080008C97
-:20165800103FFD1EF800283A014AAAF4DEFFFE04296AAA84DC000015DFC001152021883A7C
-:2016600008144F4010000F2601600034013555740007883A297FFFC421155584297FFFC438
-:20166800283FFE1E18C000448121883A18BFFB168405883A1421883A843FFFC4803FFE1ED4
-:20167000000004068405883A1421883A843FFFC4043FFE160005883ADFC00117DC000017C0
-:20167800DEC00204F800283AF800283A3005883AF800283A20000226208002171000131E67
-:2016800000802074109CE4041080001710000926DEFFFF04DFC00015103EE83A00C005846F
-:2016880010C0001500BFFA84DFC00017DEC00104F800283A00802074109F330400C005842A
-:2016900010C0001500BFFA84F800283A2880001721400115208000152880001711000115ED
-:20169800290000150005883AF800283ADEFFFB04DCC00315DC800215DC400115DC000015AD
-:2016A000DFC004152027883A2823883A2C0000170814DC401480004484400726810002177E
-:2016A800980B883A900D883A081452C01000042684000017003FF8060005883A0000010650
-:2016B0008005883ADFC00417DCC00317DC800217DC400117DC000017DEC00504F800283AC6
-:2016B800F800283ADEFFFC04DC4001152023883A2809883A300B883A01807FC4DC000015FF
-:2016C000DFC00315DC8002150815BFC01021883A100016161009883A0140030404802074DA
-:2016C80008145040949C5A041007883A9085883A108000178009883A8880001590C5883AF2
-:2016D0001080011790C7883A888001151880021788800215DFC00317DC800217DC400117E9
-:2016D800DC000017DEC004040815DC01DFC00317DC800217DC400117DC000017DEC0040464
-:2016E000F800283ADEFFFB04DC000015040020742005883A841C5D04DC4001150440004489
-:2016E800DCC00315DC8002152827883A3025883A100B883A8009883A880D883ADFC004155C
-:2016F0000815AE40813FFD04980B883A000D883A0815AE4081000304900B883A880D883A93
-:2016F800DFC00417DCC00317DC800217DC400117DC000017DEC005040815AE41DEFFF5043D
-:20170000DC4002152823883A01402074295CE004DD400615DD000515DCC00415DC800315F3
-:20170800DFC00A15DF000915DDC00815DD800715DC0001152025883A3027883A0815A6C03E
-:20171000102B883A0029883A1000051E9009883A0815E240102B883A100046260500004442
-:20171800A809883A0815ED001021883A100044161009883A01400304081450401007883A2F
-:201720000210003400802074109C5A04423FFFC418B9883A8A10703A102F883A18C002044B
-:20172800A000062610C7883A1A000015A880031710001A1E8005883A0000350610C7883A68
-:201730000080207442100034109CDF041A00001510C00017B829883A002D883A8009883A7D
-:2017380001400304D8C0001508145040B885883AA100001710800017D8C000172080031E22
-:20174000A08002171000010EA7001F1EB5800044A50003041DBFF12E003FE406880D883AAD
-:20174800E009883A900B883A980F883A103EE83A1023883A8005883A8800150E8009883A6E
-:201750000815DC0000802074109CE4041080001710000226103EE83A00000206008020746D
-:20175800109F33040463C83A1440001500BFFFC400000706047FFB44043FFFC4003FEF062E
-:201760001023883A003FED06047FFCC4003FEB06DFC00A17DF000917DDC00817DD800717D9
-:20176800DD400617DD000517DCC00417DC800317DC400217DC000117DEC00B04F800283AD1
-:2017700000C000841900140EDEFFFD04DC0000150140030404002074DFC00215DC40011543
-:20177800841C5A042023883A081450408085883A8809883A0140030410000215081450406D
-:201780008085883A10000015DFC00217DC400117DC000017DEC00304F800283A000170FA14
-:20178800F800283A00802074DEFFFA04109CE204DC00001514000017DD000415DCC00315A0
-:20179000DC800215DFC00515DC4001152027883A1025883A05000BC48480122684400217EE
-:201798008809883A0814DC408887883A18FFFFC71D00011E10BFFFC49887883A18C000076A
-:2017A0001D0001261800051E8809883A980B883A100D883A081452C0100004268400001710
-:2017A800003FED060005883A000001068005883ADFC00517DD000417DCC00317DC800217FC
-:2017B000DC400117DC000017DEC00604F800283ADEFFFB04DCC0031504C02074DC80021595
-:2017B800DC400115DC000015DFC004152025883A0021883A9CDC5A04044008048009883ADB
-:2017C00001400304081450409887883A188000171000081E1C80001500C0207418DCDF0473
-:2017C800190000178005883A2400050E1C0000150000030684000044847FF01E00BFFA0483
-:2017D000DFC00417DCC00317DC800217DC400117DC000017DEC00504F800283A73616C4666
-:2017D80072652068006573616F727265642520720000000073616C4672772068006574694D
-:2017E0006F7272650000007273616C4665762068206669726C6961660000000061766E494B
-:2017E8002064696C64616572646D63200000000072204453206461656C696166006572753D
-:2017F0007665642F746C412F5F617265535F505561435F44415F64726F6C61766E495F6E3A
-:2017F800667265745F6563610000003053206F4E6163204464206472002E746525207325D2
-:2018000000632575252E75256B75322E25207A482E252E757A487532000000004353534F00
-:20180800776620207525202E322E252E0000007574696E49727265202020726F00006425EC
-:201810002020202053204F4E00434E59343130323130322D6D20203673717261000000001D
-:2018180074736554746170206E726574000000003A31564142475220000000533A315641A0
-:2018200073475220000000423A31564162505920000072503A32564162505920000072505B
-:201828003A32564173475220000000423A33564142475220000056483A3356414247522093
-:20183000000000533A33564173475220000000423A335641625059200000725000816060A1
-:20183800008160700081607C0081608800816094008160A0008160AC008160B8008160C4B8
-:20184000008160D00000000000000000001000000044060B00000100808000001A1A1A80A3
-:201848007365725000000073666E6F43006D72696D73694D686374616572202C00797274ED
-:20185000646F4D567325203A00000000203A4F4C56207525203A4D53000075250000003146
-:201858000000003200000033000000340000003500000036000000370000003800000039C4
-:20186000554E454D0000000000004B4F4B43414200000000000050554E574F4400000000AB
-:201868005446454C0000000048474952000000544F464E49000000005F44434C4B43414248
-:201870004847494C000000544E414353454E494C444F4D5F000000454E414353454E494CC2
-:201878005059545F000000454E414353454E494C544E495F0000002B4E414353454E494CA0
-:20188000544E495F0000002D454E494C544C554D444F4D5F000000450081615C0081616063
-:2018880000816164008161680081616C0081617000816174008161780081617C00815FE83A
-:2018900000816180008161880081618C0081619400816198008161A0008161A8008161B070
-:20189800008161B8008161C8008161D8008161E8008161F8008162084353534F000000006B
-:2018A00061766E492064696C67616D690000006561766E492064696C6461656800007265EE
-:2018A80061766E492064696C2072646800435243696C6156697461646420676E0061746146
-:2018B00062207525736574790000000061766E492064696C617461644352432000000000BE
-:2018B800252E75252575322E0073257361647055676E69740057462061656C707720657314
-:2018C0002E74696100002E2E697265566E6979666C6620670068736172746552676E69790B
-:2018C800647075200065746161647055203F65742C593D314E3D322000000000202020204B
-:2018D0000000752564206425000067656C20752573656E6900000000252E75252075322ECE
-:2018D800000073756D20642500000056702075256C65786900000073252575250000000069
-:2018E0006C6961660000646500007325656469566E69206F6F7270203E20206300000000AB
-:2018E800706D6153676E696C74706F203E20202E00000000636E795374706F202020202EE8
-:2018F0003E202020000000007074754F6F207475202E74703E2020200000000074736F50A4
-:2018F8006F72702D20202E633E202020000000002E77463C64707520206574613E2020205B
-:20190000000000002D204B4F736C70207365722074726174000000007365523C732074657A
-:20190800697474653E73676E00000000657365526F6420740000656E7661533C65732065F7
-:201910006E6974743E2073670000000065766153000000646E616353656E696C000000732D
-:201918006E616353656E696C727473200000002E6E616353656E696C7079742000000065CC
-:201920006E616353656E696C696C61202E6D6E670000000069726F48746E6F7A6D206C61FD
-:20192800006B7361747265566C61636973616D200000006B703034323838322F696C20701E
-:201930003358656E00000000656E694C706972746D20656C0065646F703038343637352F7F
-:20193800696C20703258656E00000000693038343637352F617020697274737300000000D1
-:201940006D2058540065646F74696E49206C616975706E69000000746C616E417320676F17
-:2019480020636E790046504C6C616E417320676F20636E79006874566E7973486F742063AA
-:201950006172656C0065636E6E797356687420636873657200646C6F4C502D487250204C5E
-:201958006F432D65007473614C502D486F50204C432D74737473616F00000000706D615308
-:20196000676E696C616870200000657370303834206E6920706D61730072656C7664413C1E
-:201968006974202E676E696D3E2020200000000065646956504C206F000000465062505997
-:201970006E6920726C6F43200061705372502F5266666F200074657320592F477366666F05
-:201978000000746562502F4266666F200074657372502F52696167200000006E20592F47BB
-:201980006E6961670000000062502F42696167200000006E73202E486C706D617461726567
-:201988000000006573202E486C636E7900006E6561202E48766974630000006561202E5631
-:20199000766974630000006562202E48706B63616863726F0000000062202E56706B636134
-:201998006863726F0000000000706F5474746F4200006D6F69726F48746E6F7A00006C61B1
-:2019A000747265566C6163690000000065746C4174616E7200676E690066664F6F747541C0
-:2019A80000000000756E614D00006C61494D44480000000000495644656E654720636972DF
-:2019B000393A363100000000656E65472063697200333A3478303233203034326974706F40
-:2019B80000002E6D78363532203034326974706F00002E6D484D33336D28207A00296E6928
-:2019C000484D30316D28207A002964654D352E3228207A482978616D000000002056544487
-:2019C8007030383400000000415345563034362030383478003036402E6365523130362051
-:2019D000000000002E6365523930372000000000484D35394828207A205654440029494919
-:2019D800484D35334828207A2056544400002949484D36314528207A29565444000000004E
-:2019E0007A484D39445328200029565400006E4F44525355004154410000002000816738DC
-:2019E8000000200020002CE5E926F4FD38BC20000000000000816744000020002000323E9E
-:2019F000F113FA043B61200000000000703034324D334C5F05000030177000F00106061817
-:2019F800034810AA00410012703034324D334C5F03C00031177000F0010604920336108075
-:201A000000420012703034324D334C5F01400032177000F0010601AA031F103100440011ED
-:201A0800703034324D334C5F01000033177000F001060155031910270048001170303432D3
-:201A10000000000002D00000177000F00106035A033C104100500012703838324D334C5FDA
-:201A1800050000301388012001380618034810AA00410012703838324D334C5F03C00031DD
-:201A200013880120013804920336108000420012703838324D334C5F01400032138800F0C3
-:201A2800013801AA031F293100440011703838324D334C5F01000033138800F0013801555E
-:201A30000319292700480011703838320000000002D000001388012001380360033C104105
-:201A380000500012703438330000000001F000001686018001A70280033E1D320050000401
-:201A4000783034360034383302800000157C018001EC032002603F3000100010693038343B
-:201A48000000000002D00000176A00F0020D035A033C1041007000127030383400000000B1
-:201A500002D00000176A01E0020D035A063E1E3C0080001478303436003038340280000074
-:201A5800177001E0020D032002602130010000147830343600323135028000001770020057
-:201A60000238032002601C3000000010693637350000000002D000001388012002710360DC
-:201A6800033C104100700012703637350000000002D000001388024002710360063C204112
-:201A700000000004783030380030303603200000177002580274042004801758000000100B
-:201A7800703032370000000005000000176A02D002EE0672052814FF000000083038323172
-:201A80003032377805000000177002D002EE0672052814DC0000001034323031383637785E
-:201A880004000000177003000326054006881DA000000010303832313230317805000034D8
-:201A900017700400042A0698037026F800000010303830310000006907800000176A0438C8
-:201A980004650898052C109400200008303830310000007007800000176A043804650898A2
-:201AA000052C24BC000000083032393138303178078000301770043804650898052C2494C4
-:201AA800000000107665642F61746A2F61755F67305F7472000000007665642F6370652F4C
-:201AB0006F635F716F72746E72656C6C615F305F6D5F6C7600006D657665642F6C756E2F47
-:201AB8000000006C00000000000000000000000000000000000000000000000000000000A2
-:201AC000000000000000000000000000000000000000000000000000000000000000000006
-:201AC8000000000000000000000000000000000000000000000000000000000000000000FE
-:201AD0000000000000000000000000000000000000000000000000000000000000000000F6
-:201AD8000000000000000000000000000000000000000000000000000000000000000000EE
-:201AE0000000000000000000000000000000000000000000000000000000000000000000E6
-:201AE8000000000000000000000000000000000000000000000000000000000000000000DE
-:201AF0000000000000000000000000000000000000000000000000000000000000000000D6
-:201AF8000000000000000000000000000000000000000000000000000000000000000000CE
-:201B00000000000000000000000000000000000000000000000000000000000000000000C5
-:201B08000000000000000000000000000000000000000000000000000000000000000000BD
-:201B10000000000000000000000000000000000000000000000000000000000000000000B5
-:201B18000000000000000000000000000000000000000000000000000000000000000000AD
-:201B20000000000000000000000000000000000000000000000000000000000000000000A5
-:201B280000000000000000000000000000000000000000000000000000000000000000009D
-:201B3000000000000000000000000000000000000000000000000000000000000000000095
-:201B380000000000000000000000000000000000000000000000000000000000000000008D
-:201B4000000000000000000000000000000000000000000000000000000000000000000085
-:201B480000000000000000000000000000000000000000000000000000000000000000007D
-:201B5000000000000000000000000000000000000000000000000000000000000000000075
-:201B580000000000000000000000000000000000000000000000000000000000000000006D
-:201B6000000000000000000000000000000000000000000000000000000000000000000065
-:201B680000000000000000000000000000000000000000000000000000000000000000005D
-:201B7000000000000000000000000000000000000000000000000000000000000000000055
-:201B780000000000000000000000000000000000000000000000000000000000000000004D
-:201B8000000000000000000000000000000000000000000000000000000000000000000045
-:201B880000000000000000000000000000000000000000000000000000000000000000003D
-:201B9000000000000000000000000000000000000000000000000000000000000000000035
-:201B980000000000000000000000000000000000000000000000000000000000000000002D
-:201BA000000000000000000000000000000000000000000000000000000000000000000025
-:201BA80000000000000000000000000000000000000000000000000000000000000000001D
-:201BB000000000000000000000000000000000000000000000000000000000000000000015
-:201BB80000000000000000000000000000000000000000000000000000000000000000000D
-:201BC000000000000000000000000000000000000000000000000000000000000000000005
-:201BC8000000000000000000000000000000000000000000000000000000000000000000FD
-:201BD0000000000000000000000000000000000000000000000000000000000000000000F5
-:201BD8000000000000000000000000000000000000000000000000000000000000000000ED
-:201BE0000000000000000000000000000000000000000000000000000000000000000000E5
-:201BE8000000000000000000000000000000000000000000000000000000000000000000DD
-:201BF0000000000000000000000000000000000000000000000000000000000000000000D5
-:201BF8000000000000000000000000000000000000000000000000000000000000000000CD
-:201C00000000000000000000000000000000000000000000000000000000000000000000C4
-:201C08000000000000000000000000000000000000000000000000000000000000000000BC
-:201C10000000000000000000000000000000000000000000000000000000000000000000B4
+:20032000DEFFFD04DC0001152021883A010020B421207004DFC0021508145F4010803FCC54
+:2003280010000B26010020B401802074212073040140044431994D040814C080008020B47E
+:2003300010A07B8410000005008000440000090600808004010020B4D8800015212070041B
+:20033800800B883A000D883A000F883A0814824010803FCCDFC00217DC000117DEC00304EE
+:20034000F800283A010020B4014020B42120730429607B8408134681010020B4014020B44D
+:200348002120774429608B0408134681DEFFFE04DC0000152021883A01000044DFC00115D2
+:2003500008105940081042400009883A000B883A84003FCC081046408021003A010000445D
+:20035800000B883A000D883A800F883A08105F408000052601000084000B883A000D883A15
+:20036000000F883A081005C00009883ADFC00117DC000017DEC0020408105941DEFFFC0427
+:20036800008020B4DC800215DC400115DC00001510A08004DFC003152021883A1100028703
+:2003700001400704148001170814B88000C020B418E09A8410C5883A84003FCC1440000BF2
+:2003780080001E1ED0A2494300C0020410C0142600C0040410C0062600C0010410C0131E51
+:200380000009883A0813D780010000440000250601006734213F3004900B883A0814B780D0
+:200388001009883A897FFFCC0814B88000C072B418F0DFC418800236010003C40000010623
+:200390000009883A0813D780000015060009883A0813D7800009883A00001206008020B481
+:2003980010A08F4410C00403044000841021883A1C4002260009883A00000106010003C412
+:2003A0000813D7808100040320803FCC8880042E008001441109C83A21003FCC000001064A
+:2003A800010000C4DFC00317DC800217DC400117DC000017DEC0040408137501DEFFF7040C
+:2003B00000C020B4DFC00815DDC00715DD800615DD400515DD000415DCC00315DC80021558
+:2003B800DC400115DC0000150089C40418C420041980003704C020B49CC420043000020E85
+:2003C00010BFFFC4103FFA1E21003FCC29403FCC040020B408142540842080041025883A0C
+:2003C800808002C3100003269C4000378822D43A000001060023883A01000DC408138400EF
+:2003D00001000E041029883A08138400110003CC1007883A2008923A1004D1BA2528B03ADD
+:2003D8001080004C8080024598800037010000848C403FCC89000E26010020B421208004E0
+:2003E000210002C32000021E010063C42500082E010000448900041EA108983A10BFFFCC4F
+:2003E800213FFF842080053618C0080C18000426A4C0322805C00044000003061029883A3E
+:2003F000A4C06428002F883A80C002C390803FCC1800101E10001E2698001D26D0A24803BA
+:2003F8000100008410C03FCC18C0201C18FFE00420C0060E008020B400C0004410A08004F6
+:20040000D022480510C002C500000C061080004400000D061000012698000D1ED0A2480356
+:2004080000FFFF0411003FCC2100201C213FE00420C0040ED0224805800002C50440010454
+:200410000000050610BFFFC4D0A2480500000106D02248050023883A01000E440813840053
+:2004180001000E84048020B4102D883A94A08F44081384009800662610C003CC1806923A87
+:20042000808000171DACB03A00C020B418E08004A080051E18800117B080031E18C00203C1
+:20042800B8803FCC10C00226D0224C0500000C06D0A24C0300C0004411003FCC20C0082635
+:2004300010C5883AD0A24C0510803FCC10C0041E88C03FCC008000841880012E1023883AB2
+:2004380090C00103808004831880071E008020B410A08F4410C00143008020B410A0800499
+:20044000108004C31880042688C03FCC008000841880012E1023883A90C00243808005C313
+:2004480018800F26008020B410A0800411000287014007040814B88000C020B418E09C8459
+:2004500010C5883A1080008B1080600C1000042688C03FCC008000841880012E1023883A91
+:20045800D0A24D431000272684C0028701400704054020B49809883A0814B880AD60968415
+:20046000A885883A10C0068B9809883A0140070418C0100C180005260814B880A885883A03
+:2004680014C0040B9CE7883A000003060814B880A885883A14C0040B9CFFFFCC980A913A4A
+:200470000100008429403C0C08138C00980AD13A0100004429403FCC08138C008100028778
+:20047800014007040814B880A885883A11400583010001C408138C0088803FCC1000011E4D
+:2004800004400044850000158580011585C00205914000038100038300C020B4008020B410
+:2004880018E08F4410A080042900151E19400043110003C32900121E194000831100040339
+:2004900029000F1E194000C31100044329000C1E19400183110005032900091E194001C3CC
+:20049800110005432900061E194004C3110008432900031E18C0050310800883188003261C
+:2004A00088803FCC1000011E044000449100028380800603208001260813E14091000303B9
+:2004A80080800683208001260813EE0091000343808006C3208001260813A340910003835F
+:2004B00080800703208001260813A40091000443808007C32080071E008020B410A08F445E
+:2004B80010C00483008020B410A080041080080318800226914004830813A000910002C381
+:2004C0008080064320800626014006040814B88001002074211B3D042089883A0813C6000A
+:2004C8009100040380800783208001260810D9C0910003C380800743208001260813DC001B
+:2004D000010020B4014020B4212094C429608904018001840814BB001000031E010020B490
+:2004D800212089040813A4C0010020B4014020B42120838429608F44018007040814BE00C3
+:2004E0008805883AD0224D45DFC00817DDC00717DD800617DD400517DD000417DCC003174F
+:2004E800DC800217DC400117DC000017DEC00904F800283ADEFFF804DC000015040020B4B1
+:2004F000DCC00315DFC00715DD800615DD400515DD000415DC800215DC400115842080040B
+:2004F800858002870140070404C020B4B009883A0814B8809CE09684108006049885883A94
+:2005000010C0008B190003CC2000092680800443048000848480030510001226808003C3E0
+:20050800010000441100101E1025883A00000E061900040C2000051E8100084320000626C0
+:20051000108000031080010C100003260080004480800305000001068000030584800443BC
+:20051800000001060025883A80800383010000841100051E008020B410A08004144003C3F4
+:200520008C40004400000A06010000441100051E1880080C1000051E1C4007CC8822C03A70
+:20052800000003060023883A00000106044000C4808008831000062618C0080C18000426C1
+:20053000008020B410A08004100003050023883A85000303808004C3B009883AA02897BA40
+:200538001004973A01400704054020B4A0A8B03A0814B88080C005039885883A1080050314
+:20054000180695BAB009883AA0A8B03A01400704A0E8B03A0814B8809885883A1080028B73
+:2005480000C020B4AD608004100492BA18C42804A084B03A1880003580C00403808005439C
+:20055000858002871806963A100494BAB009883A0140070418A0B03A0814B8801029883AF5
+:200558009885883A10C00543B009883A0140070480E0B03A0814B8809885883A10C0030B6A
+:200560009024973A882297BA180691FA008020B41084240480C6B03A1CA4B03A9462B03A88
+:20056800144000359D27883A988006031080010C10000226A900084300000E06B009883AEB
+:20057000014007040814B88000C020B418E096841885883A1080068B1080080C10000426C7
+:20057800A9400583A9000883280B003A000002060009883A000B883ADFC00717DD8006177A
+:20058000DD400517DD000417DCC00317DC800217DC400117DC000017DEC00804081094C1C1
+:20058800DEFFF404DC000415040020B484208004DC4005158440011700800044DFC00B15F4
+:20059000DD800A15DD400915DD000815DCC00715DC800615D0A24C058800152684C000178A
+:200598009800132601006734213F3004880B883A0814B7801025883A8080020301283BF446
+:2005A000212EC004980B883A100003260814B7801009883A000002060814B7801089883AA6
+:2005A800880B883A0814B7801023883A000002060445DC04048F550401000EC40813840007
+:2005B00001000F041027883A0813840080C00343008020741099890418C7883A18C7883A6D
+:2005B80010C7883A8080020319C0001780C000171000021E00801A440000010600801C0489
+:2005C000010020B401802074D8C00015319951042120774401400444D88001150814C08016
+:2005C8008809883A014019040814B7809009883A0140FA041029883A0814B7809009883ACC
+:2005D0000140FA04102B883A0814B8001009883A014002840814B7808809883A0140190455
+:2005D800D8800015DD0001150814B800010020B401802074D880021521208B04014004441D
+:2005E00031995304A80F883A0814C080008020B410A06484108000031000011E0810D180EE
+:2005E800808004838100001781400203D8800015808004C3D1E24D03A00D883AD8800115FA
+:2005F000808005C3044020B48C608004D880021508142C4011003FCC2100201C213FE004E7
+:2005F80000FFFFC420C0011E00800104888002858480028301400704058020B4D4A249051C
+:2006000094803FCC9480201C94BFE0049009883A0814B880B5A09684B087883A1C400603B8
+:20060800D0E24D03B085883A99003FCC88E2703AD46249451140040B054020B4AD60800453
+:200610000814B880814001171009883A0814B78080C0020389403FCCA98000171800011EDF
+:20061800300CD07A10803FCCD8800015808007C39009883AA1C03FCCD8800115808008032A
+:20062000D880021580800703D88003150813FA80810007830810D9C0DFC00B17DD800A1741
+:20062800DD400917DD000817DCC00717DC800617DC400517DC000417DEC00C0408113B41D4
+:2006300021003FCC008003C420802A260080040420802D26DEFFFD04DC000015DFC0021547
+:20063800040020B4DC400115008002C48420968420802F1ED462490301400704D4624BC593
+:200640008C403FCC8809883A0814B8808087883A18C0040B01400704D0E24B0D10C005043D
+:2006480080C7883A19000083D1224D8D8089883A2100028B8085883AD1224A8D1080030B78
+:200650008809883AD0A24A0D18800003D0A2488D0814B8808085883A10800543D0A24C8D4E
+:20065800DFC00217DC400117DC000017DEC00304F800283AD0A2490310C03FCC18000A26C3
+:2006600010BFFFC40000080600C0207418DE2B04D0A2490318C0000311003FCC18FFFFC4D2
+:2006680020C0010E10800044D0A24905F800283AD1224903014007040814B880010020B4E1
+:2006700021207B84808B883A01800444DFC00217DC400117DC000017DEC003040814D041E3
+:20067800DEFFFA04008020B4DD000415DCC00315DC800215DC400115DC000015DFC005153A
+:2006800010A0800410C002C3040020B42027883AD4624BC384209684D522488BD4A24C8B97
+:2006880018002226108002871440201E8809883A014007040814B8808087883A1900040B63
+:20069000D0E24B0B20C0171E10C0050480C7883A19400083D1224D8B2900121E8089883A80
+:200698002140028BD1224A8B29000E1E8085883A1100030BD0A24A0B20800A1E18C00003E7
+:2006A000A0803FCC1880071E8809883A014007040814B8808085883A10C0054390803FCC65
+:2006A8001880022600800044D0A24D458809883A014007040814B880D1224B0B8087883AA5
+:2006B0001900040DD1224D8B10C0050480C7883A19000085D1624A8B8089883A2005883AFB
+:2006B8002140028DD1224A0B014007041100030D1D0000058809883A0814B880010020B4DF
+:2006C000018020748085883A21207B8401400444319A260499FFFFCC14800545DFC0051784
+:2006C800DD000417DCC00317DC800217DC400117DC000017DEC006040814C081DEFFFE04E4
+:2006D000DC000015040020B4DFC0011584043004008004448080003580000035008020B4CA
+:2006D8001084280410000035008020B410842404100000350109C404081559C000BFF444A9
+:2006E000D0A249850080344480800035010000F421035004081559C0010020B40140673439
+:2006E800018001B421041804297F30043186A0040815D7000813370008136D8010001926A7
+:2006F0000009883A0813840000C03FC410C017260813E600010000840810210010803FCC56
+:2006F80000C004C410C0131E0810300008109E401021883A1000111E08120F4008131E4007
+:20070000008020B410842C0410800037108000AC1000011E081218C00009883A0810D2C028
+:2007080000000706043FFF8400000506043FFF4400000306043FFF0400000106043FFFC411
+:200710008005883ADFC00117DC000017DEC00204F800283ADEFFFF04DFC0001508116200CB
+:2007180008139B40008020B410A08F4411000203DFC00017DEC001040810D2C1DEFFF40405
+:20072000DFC00B15DF000A15DDC00915DD800815DD400715DD000615DCC00515DC8004156B
+:20072800DC400315DC0002150811B3C010001D1600801284010020B401802074000F883AEA
+:20073000212077440140044431995904D88000150814C080010020B40140207421208B04BA
+:2007380029596504018004440814BE000810D180008020B410A08F4410C0054305C020B422
+:20074000070020B4D0E24B850027883A0021883A0023883A0025883ABDE06304E720640431
+:2007480000004706010020B401802074212077440140044431995E04100F883A0814C0806C
+:20075000010020B40140207421208B04295A3504018004440814D0400810D180003FFF06B1
+:2007580010FFFF8418C03FCC010000C420C0432EA8C0000310C04126050020B408122CC075
+:20076000A5206484A0800003100002260009883A0812C680058020B4B5A08004D1224B8353
+:20076800B08003432080011ED0224B85D1224B830140020420BFFFC410803FCC2880332E2C
+:2007700020803FCC10006A1E00C020B418E08F4419000203B1400583008020B410A08004A8
+:2007780021400826D88001150810D2C0010020B421208F44D8800117210002031000011515
+:200780001100058598803FCC1000811E008020B410A0630410C00017008020B410A0600432
+:2007880010C00015008020B410A064041080000301004B04D0224B85A8800005081559C0F8
+:2007900000C020B418C42C0418800037010020B410FFFFCC2120620420C000150086303A9F
+:200798001004D63A18C000EC054020B4B8C00015E0800005AD606104103FB91E008020B462
+:2007A00010A0620410000015003FBB06100490BA014020742947A9041145883A10800017EF
+:2007A8001000683A00811EC800811ED800811EF000811F0000811F1000811F2400811F342A
+:2007B00000811F4400811F5C008003C4D0A24D050021883A00000306008003C4D0A24D0547
+:2007B80004000084044000440025883A00002006008003C4D0A24D05040000C4003FF906F3
+:2007C000008003C4D0A24D05040000C400000306008003C4D0A24D05040000840023883AC5
+:2007C800003FF10600800404D0A24D050400004400000D06008003C4D0A24D050021883A46
+:2007D0000000090604000084008003C4D0A24D058023883A8025883A00000506008003C449
+:2007D800D0A24D05040000C4044000848825883AB1400783B1000345B00002C528803FCCA0
+:2007E0000180004489003FCC3080042E00800144114BC83A29403FCC00000106014000C41B
+:2007E80008137C400813928091003FCC81403FCC081411C0B08003430100207421198904C6
+:2007F0001085883A1085883A2085883A11400017010020B42120774401800444B00001150C
+:2007F8000814D040010020B40140207421208B0429596204018004440814D040A08000033B
+:200800001000011E0810D18004C00044003F6E0691003FCC81403FCC0810EBC010803FCCBF
+:200808000100008411002B26010001041100032601000044113F751E00002A06B0C002C31C
+:20081000008020B410A0800418000926D0A2498300C020B418C4300410800094D0A24985B3
+:2008180010803FCC188000350811C540003F670610000115D880011508139280D88001175D
+:2008200000C0207418D9890410800343010020B4212077441085883A1085883A1885883A32
+:2008280011400017018004440814D040010020B40140207421208B04295962040180044428
+:200830000814D040A0800003103F501E0810D180003F4E06B08002C3103F4C26081162006F
+:20083800003F4A06B08002C3103F482608113B40003F4606DEFFFE0400C020B4DC000015DC
+:2008400018E08F4404000704014020741809883A29599304800D883ADFC001150814BE000F
+:200848001007883A008020B410842C04108000371004D4BA800B883A1080004C188002056E
+:2008500000802074109E2B04110000030814B880010020B40140207421209684295B490459
+:20085800100D883A0814BE00008020B400C0004410A05F4410C000050005883ADFC00117C9
+:20086000DC000017DEC00204F800283ADEFFF804DD400515DD000415DCC00315050020B4F4
+:2008680004C0207405402074DC800215DC000015DFC00715DD800615DC4001150021883A93
+:200870000025883A9CD9D904A5042C04AD5C2404010020B4014020742120730429599A04A3
+:20087800018004440814D0408405883A14C5883A11400017010020B421207B84018004443F
+:200880000814D0400810D0400023883A856D883AA080003710BFFFCCD0A250151000182655
+:200888001480172688000A1E010020B4014020742120730429599C0401800444B080000D45
+:200890000814D0400810D0400440004400000C06B0C0000B10C00926010020B40140207436
+:200898002120730429599E04018004440814D0400810D0400023883A000001060440008493
+:2008A00000800084D4A25017888003260109C404081559C0003FDE068400008400800C0463
+:2008A80080BFCB1EDFC00717DD800617DD400517DD000417DCC00317DC800217DC40011741
+:2008B000DC000017DEC00804F800283AD1225017DEFFFE0401402074DFC001150005883AA7
+:2008B800295C2404018005C41087883A1947883A18C0000B20C0032611809826108000449F
+:2008C000003FF90600C005C418809436100490BA00C0207418C8C90410C5883A1080001752
+:2008C8001000683A00812384008123A8008123B80081238C008123B0008123C0008123A062
+:2008D0000081255C008123C8008123D0008123D80081255C0081255C0081255C0081255CA2
+:2008D8000081255C0081255C008124040081247C008124A4008124D00081251C008124FC11
+:2008E0000081254800C000440000010600C00084008020B410A05D8410C0000500006F068C
+:2008E80000C000C4003FFA0600C00104003FF80600C00144003FF60600C00184003FF4066D
+:2008F00000C001C4003FF20600C00204003FF00600C00244003FEE0600C020B418E0648484
+:2008F800188000031005003A1880000510000326010000440812C680000058060810D180B4
+:2009000000005606008020B410A0800411000287014007040814B88001C020B4010020B44F
+:200908000180207439E0968421207304014004443199A204388F883A0814C080008020B49D
+:200910001084200411C0003710800037010020B41005D43A0180207421207B84108000CC97
+:20091800014004443199A50439FFFFCCD88000150814C0800810D0400000380600C020B4FD
+:2009200018E05B84188000031080041C1880000500C020B410803FCC18C4300418800035EC
+:2009280000002E0600C020B418E08F44188000030140004411003FCC290002361145883A67
+:20093000000001060005883A188000050000230600C020B418E08F44188000430140004454
+:2009380011003FCC290002361145883A000001060005883A1880004500001806008020B4ED
+:2009400010A08F4410C0008319003FCC2000012618FFFFC410C000850000100600C020B47D
+:2009480018E08F44188000830140038411003FCC290002361080004400000106008003C442
+:20095000188000850000050600C020B418E08F44188001031005003A18800105D0A24E17A0
+:2009580010001B1ED0E251171880006C10000C26008020B410A08004108003430100024431
+:2009600011403FCC29000226108000440000010600800044010020B421205D84208000058F
+:2009680018C000AC18000A2600C020B418E08F44188000030140004411003FCC29000236A7
+:200970001145883A000001060005883A18800005DFC00117DEC00204F800283ADEFF6C04E2
+:20097800D9000304DC008C15DFC09315DD809215DD409115DD009015DCC08F15DC808E1533
+:20098000DC408D150810C8001021883A08149B008000861ED9008304D940030401800104E5
+:200988000814D04001402074D90083042959F104018001040814CC0010000B26010020B4F3
+:200990000180207421207304014004443199F3040814C080008020B410A07B8410000005BC
+:200998000400004400007106D8800403DC808484D9400484D8808405D88004439009883A41
+:2009A00001800204D88084450814D040D880068BD8008645D8808B0DD880070BD8808B8D0D
+:2009A800D9408B17280BC232D880078BD9408715D8808B0DD880080BD8808B8DD8808B17E9
+:2009B0001005C232D8808815D880088BD8808B0DD880090BD8808B8DD8808B171005C2326F
+:2009B800D8808915D8808217D8808B151005C232D8808A1500C0788428BFF98418800B2E4F
+:2009C000010020B40180207421207304014004443199F7040814C080008020B410A07B84C8
+:2009C80010000005043FFFC400004006D9000304018000440815CFC0D8C08A17010020B44F
+:2009D000212073040140044410C00726018020743199FB040814C080008020B410A07B848C
+:2009D8001000000500003006018020743199FF040814C080D9C08817010020B40180207454
+:2009E00021207B8401400444319A03040814C0800810D040DCC08817DD4089170021883AFD
+:2009E8000005883A0580800484C0132E9C23C83AB440012E0440800485008004A00CD27AED
+:2009F000010020B4DC40001521207004D9400304000F883A0814824010803FCC1000121E82
+:2009F800800D003AD9000304880B883A0815CFC0A021883A003FEC0615406126010020B4D2
+:200A0000018020742120730401400444319A06040814C080008020B410A07B841000000537
+:200A0800043FFF4400000106043FFF8404C000C408149B000810D040010003F42110900457
+:200A1000081559C000BFCE4480804B0E98004A26010020B401802074212073040140044433
+:200A1800319A1C040814C0809CFFFFC4010020B40140207421207B84295A140401800444CB
+:200A20000814D0400810D0400025883A0580800405004004DC4088179440202E8CA3C83A1B
+:200A2800B440012E0440800495408004A80DD27A010020B4DC40001521207004D94003048E
+:200A3000000F883A0814824014003FCC803FD81E9025D23A880B883AA440012E0140400475
+:200A3800D9000304900D883A0810A8401021883A103FCF1EA4400236A825883A003FE5065B
+:200A4000D9004304897FC004918000440810A8401021883A103FF826003FC506010020B416
+:200A48000140207421207304295A1804018004440814D040010020B40140207421207B8483
+:200A5000295A1404018004440814D0400810D040D9408817D98089170009883AD9C00304B2
+:200A58000810BAC01021883A103FB11E08149B000005883A0000450600BFFFC40000430647
+:200A6000D8808487D9C08403D8C0844310000326008020741099D4040000020600802074AA
+:200A6800109A3504010020B401802074D8C000152120730401400444319A0B04D88001156B
+:200A7000DC8002150814C080010020B40140207421207B84295A2004018004440814BE0063
+:200A7800044020B4040020740810D0408C442C04841C24048880003780C0000B10BFFFCC9A
+:200A800010C00E2680C0008B10C0091E010020B40140207421207304295A0E0401800444D0
+:200A88000814D04004C000C404000084003F80060109C404081559C0003FEE0608139280E5
+:200A900000C020B418E05B8418800003108000941880000500C020B410803FCC18C4300440
+:200A9800188000350109C404081559C0010020B40140207421207304295A110401800444A6
+:200AA0000814D04004C000C4003F7806DFC09317DD809217DD409117DD009017DCC08F17EB
+:200AA800DC808E17DC408D17DC008C17DEC09404F800283A21C03FCC01802074010020B488
+:200AB00021207B8401400444319A25040814C081DEFFFF0421003FCC01411944DFC00015AD
+:200AB8000814B8801009883A014019040814AC80010020B40180207421207B840140044496
+:200AC000319A2704100F883ADFC00017DEC001040814C08121C03FCC01802074010020B4B3
+:200AC80021207B8401400444319A29040814C081014003F4DEFFFC0421003FCC29509004A2
+:200AD000DFC00315DC400215DC0001150814B880014018F41009883A294BA8041021883A9B
+:200AD8000814B7808009883A014659041023883A0814B7801009883A0140FA040814B80086
+:200AE0001009883A014002840814B780010020B401802074D880001521207B8401400444E1
+:200AE800319A2C04880F883A0814C080DFC00317DC400217DC000117DEC00404F800283A5C
+:200AF000DEFFFF0421003FCC014119C4DFC000150814B8801009883A014019040814AC8032
+:200AF800010020B40180207421207B8401400444319A2F04100F883ADFC00017DEC00104F3
+:200B00000814C08121C03FCC01802074010020B421207B8401400444319A31040814C0817C
+:200B080021003FCCDEFFFF042100004401409C44DFC000150814B8801009883A01401904FA
+:200B10000814AC80010020B40180207421207B8401400444319A3404100F883ADFC0001730
+:200B1800DEC001040814C081008020B410A0620411400017DEFFFA0401802074DC0000150A
+:200B2000DFC00515DD000415DCC00315DC800215DC400115040002C4319C240400C00444E6
+:200B28008405883A1185883A1080000B2880101E80BFFD0410803FCC050001048025883A4D
+:200B3000A0803A36100490BA00C0207418CB370410C5883A108000171000683A00812D7037
+:200B380000812CFC00812D3800812E7000812E708400004480FFEA1E0000F706D0E252433D
+:200B400001002074211C3004180490FA2087883A18C0010319403FCC2800031E2087883A8E
+:200B480018C0001718C0000318FFFFC42085883A10C0010500009406D0E2524301402074F6
+:200B5000295C3004180490FA140001042885883A108000172C21883A810000031140000310
+:200B5800210000440814B1C08080000500008606D0A2524310C03FCC1800032610BFFFC445
+:200B6000D0A2524500008006D0225285DFC00517DD000417DCC00317DC800217DC4001170B
+:200B6800DC000017DEC006040810D181D4225243044020748C5C3004802490FA0140050471
+:200B70008C85883A1100010314C000170814B88098C00117010000C41885883A10C00103D6
+:200B7800190006261D00671E10800217048002C4103EE83A1021883A0000640684000044EE
+:200B8000802090FA108002178C07883A18C00017188002268C05883A100001058C85883A42
+:200B880011000103014005048C21883A0814B88098C001178CA3883A1887883A18C0021778
+:200B900080C0001588C0001718C001171885883A1080031710000226010002C4103EE83A29
+:200B9800D0A2524310800044D0A2524500004506D0E2524301002074211C3004180490FA1B
+:200BA000014005042087883A190001031C4000170814B88088C00117010000841885883A5A
+:200BA80010C001031900202619000336010000C419002F26000034061180021782003FCC04
+:200BB00001C003C41100030310C00343314000031080038341C00A1E29C03FCC1A003FCCA4
+:200BB80041C0022E28BFFFC40000030621003FCC2000011E1805883A308000050000220612
+:200BC00029C03FCC12003FCC3A00022E288000440000030621003FCC200001261805883A53
+:200BC80030800005000010061100021781803FCC014003C420C0000B3140061E1080030BE6
+:200BD000197FFFCC1140012E18FFFFC420C0000D00000D061080038B197FFFCC2880012EF0
+:200BD80018C0004420C0000D048004040000060610800317100004268009883A103EE83ABD
+:200BE00000000106048002C40021883AD0E2524301002074211C3004180490FA0140050484
+:200BE8002087883A190001031CC000170814B8801023883A98800117010020B4212073046E
+:200BF0001445883A11400017018004440814D04098800117010001041445883A10C0010348
+:200BF80020C03536180690BA01002074210BFF041907883A18C000171800683A008130101A
+:200C00000081304000813050008130600081307410C00217110004170180044418C00003F3
+:200C080018C5883A1085883A2085883A11400017010020B421207B840814D04000001E06A2
+:200C100010C0021710800417190000030000070610C00217108004171900000B0000030646
+:200C180010800317100006260009883A103EE83A0000110694803FCC00C002C490C0042665
+:200C2000008020B410A07B841000000500000A068000021E11C003170000010611C004170E
+:200C2800010020B40180207421207B8401400444319A36040814C080DFC00517DD000417E5
+:200C3000DCC00317DC800217DC400117DC000017DEC006040810D04121003FCC200002260D
+:200C38000025883A003FA806DFC00517DD000417DCC00317DC800217DC400117DC000017C3
+:200C4000DEC00604F800283A009114B4DEFFBF041094D544D8800015008010741095104472
+:200C4800D880011500801284D8800245D809883A00800084014002C401840004DFC040153E
+:200C5000D8000205D88002850810A8401000022600BFFFC4000020060140207400800D0480
+:200C5800D9000104295C240401800C04D8000005D8800045D80000C5D80000850814BE0012
+:200C6000D809883A01400D04018400440810A840103FEF1E00800044014020B4D880000524
+:200C6800D90001040080080429608F4401800704D8800045D80000C5D80000850814BE00A9
+:200C7000D809883A01400804018400840810A8401004C03A0085C83ADFC04017DEC04104FD
+:200C7800F800283ADEFFB50401000434014002C4D80D883ADFC04A15DD804915DD40481552
+:200C8000DD004715DCC04615DC804515DC404415DC0043150810A10010000226043FFFC4CE
+:200C880000003806D9004004D80B883A018002040814D04001402074D9004004295B3A04E5
+:200C9000018002040814CC001021883A10002C1ED8800203DD4002830023883AD880420505
+:200C9800D8800243DD40428505800D04D8804245A8803FCC8880230E8CC400449826923ABC
+:200CA00001400084D80D883A9809883A0810A100103FE21EDD0000439809883AD80D883A33
+:200CA800A00B883ADC8000030810A100103FDB1E90803FCC1000032600C0004410C007260A
+:200CB00000000D06A5800C1E01002074211C2404D940010401800C04000006060080080481
+:200CB800A080051E010020B421208F44D9400104018007040814BE008C400044003FDC063B
+:200CC000040000448005883ADFC04A17DD804917DD404817DD004717DCC04617DC80451760
+:200CC800DC404417DC004317DEC04B04F800283ADEFFFD04D9000005010020B4DC00011595
+:200CD000018000442821883A21041804D80B883ADFC002150815EC408009883A081559C0CE
+:200CD800DFC00217DC000117DEC00304F800283ADEFFFB04DC400115044020B48C605B8460
+:200CE00088C0000300BFE7C4DC8002151884703A048020B488800005DFC00415DCC00315B5
+:200CE800DC00001510803FCC9484300490800035040005048009883A081559C0800B883AF4
+:200CF00001000E0408133300800B883A01000E44081333008009883A800B883A08133300AF
+:200CF800800B883A01001C4408133300800B883A0100178408133300800B883A01001B44FC
+:200D000008133300800B883A010003040813330004C0C804980B883A01000044081333005A
+:200D0800800B883A010001840813330001000084980B883A081333008880000310801014B3
+:200D10008880000510803FCC90800035DFC00417DCC00317DC800217DC400117DC000017CA
+:200D1800DEC00504F800283ADEFFF904DC000015040020B484205B8480C0000300BFE7C4E7
+:200D2000DC4001151884703A044020B4DCC00315DC80021580800005DFC00615DD40051506
+:200D2800DD0004152027883A2825883A10803FCC8C44300488800035010000440140C8046F
+:200D30000813330080800003108008148080000510803FCC888000359809883A014004041D
+:200D38000814D5001007883A10803FCC1000061E014020749809883A295B3C04018004443D
+:200D40000814D04000C00044982B883A1D003FCCA900000301400504AD4000440813330041
+:200D4800ACC5C83A10803FCC153FF93680C0000300BFF7C41884703A8080000510803FCC57
+:200D50008880003501003004014005040813330080800003108008148080000510803FCC2A
+:200D5800888000359009883A014004040814D5001007883A10803FCC1000061E014020742C
+:200D60009009883A295B3C04018004440814D04000C000449029883A1CC03FCCA100000355
+:200D680001400504A500004408133300A485C83A10803FCC14FFF93680800003108010142B
+:200D70008080000510803FCC88800035DFC00617DD400517DD000417DCC00317DC8002176E
+:200D7800DC400117DC000017DEC00704F800283ADEFFFB04DC000015040020B484041804E8
+:200D8000DC80021504800B04DCC00315900B883A2027883A000D883A8009883ADFC0041561
+:200D8800DC4001150815DE40044000448009883A99403FCC880D883A0815E4808009883A04
+:200D9000900B883A880D883A0815DE408009883A880B883ADFC00417DCC00317DC800217CF
+:200D9800DC400117DC000017DEC005040815E1C1DEFFFC04DC000015040020B48404180464
+:200DA000DC800215DC4001152025883A2823883A8009883A01400B04000D883ADFC0031559
+:200DA8000815DE408009883A91403FCC000D883A0815E4808009883A89403FCC0180004495
+:200DB000DFC00317DC800217DC400117DC000017DEC004040815E481010020B4DEFFFD04F3
+:200DB800000D883A000B883A21041804DFC00215DC400115DC0000150815E480010002845D
+:200DC000081559C004000604044000448809883A800B883A08136700800B883A0100008453
+:200DC80008136700800B883A010000C4081367008809883A08135F001405003ADFC002171D
+:200DD000DC400117DC000017DEC00304F800283ADEFFFC04DC4001152023883ADC80021556
+:200DD8008C403FCC048000449009883A882290FADFC00315DC00001508135F00043FF9C4AB
+:200DE0001404703A1460B03A84003FCC9009883A800B883A08136700800B883A0100008448
+:200DE80008136700010000C4800B883ADFC00317DC800217DC400117DC000017DEC004045C
+:200DF00008136701DEFFFD04DC4001152023883A01000044DC000015DFC00215043FF60422
+:200DF80008135F001420703A89003FCC008000842080021E84000054000003062008917A17
+:200E00002080011480A0B03A84003FCC800B883A0100004408136700800B883A010000849E
+:200E080008136700010000C4800B883ADFC00217DC400117DC000017DEC00304081367012F
+:200E1000DEFFFB04DC000015040020B484041804DC80021504801704DCC00315900B883A56
+:200E18002027883A000D883A8009883ADFC00415DC4001150815DE40044000448009883A9F
+:200E200099403FCC880D883A0815E4808009883A900B883A880D883A0815DE408009883A71
+:200E2800880B883ADFC00417DCC00317DC800217DC400117DC000017DEC005040815E1C1E3
+:200E3000DEFFFC04DC000015040020B484041804DC800215DC4001152025883A2823883A9F
+:200E38008009883A01401704000D883ADFC003150815DE408009883A91403FCC000D883A3C
+:200E40000815E4808009883A89403FCC01800044DFC00317DC800217DC400117DC000017D8
+:200E4800DEC004040815E481DEFFFC04DC000015040008848009883ADFC00315DC8002158F
+:200E5000DC40011508138400014004C4010005841023883A0489C40408138C009009883AD2
+:200E5800081559C0014000C4010005C408138C009009883A081559C000FFE00488CAB03A1E
+:200E60008009883A29403FCC08138C000100FA04081559C08009883A89401FCCDFC003171F
+:200E6800DC800217DC400117DC000017DEC0040408138C01DEFFFE04DC0000150409C404DB
+:200E70008009883ADFC00115081559C0014004440100058408138C008009883A081559C0F1
+:200E7800010005C40140008408138C008009883ADFC00117DC000017DEC00204081559C154
+:200E8000DEFFFE04DC0000152821883A21403FCC01000484DFC0011508138C00010004C45D
+:200E880081403FCCDFC00117DC000017DEC0020408138C0121403FCC01000F4408138C0120
+:200E900021403FCC0100044408138C01DEFFFE04DC0000152021883A814000C30100028407
+:200E9800DFC0011508138C00814001030100024408138C00814001430100020408138C0078
+:200EA000814000030100034408138C00814000430100030408138C0081400083010002C4C1
+:200EA800DFC00117DC000017DEC0020408138C01DEFFFA04DC0000152021883A010001045F
+:200EB000DD000415DCC00315DC8002153829883ADFC00515DC4001152827883A3025883ACF
+:200EB8000813840000FFFE04A5003FCC10C4703AA00006261080005411403FCC010001043A
+:200EC00008138C008423883A0000040611403FCC010001048023883A08138C008C7FFFCCB4
+:200EC800880AD13A0100004429403FCC08138C00880A913A0100008429403C0C08138C00D3
+:200ED000993FFFCC91403FCC0814B8801009883A880B883A0814B8801009883A0140FA0491
+:200ED8000814B78000E327D41880092E00C0007418C45BC41880082E00C000B418C3D5C415
+:200EE0001885403A00C000C41885C83A000003060005883A000001060080004414003FCCFE
+:200EE800D0A018041405883A1100000301400A040814B8808808D07A880B883A1109883AC1
+:200EF0000814AC80100B883A00C001C410803FCC1880012E180B883A29403FCC800491BAAE
+:200EF800280A90FA010000C4288AB03A29403FCCDFC00517DD000417DCC00317DC8002176B
+:200F0000DC400117DC000017DEC0060408138C01DEFFFE04DC0000152021883A01000684FC
+:200F0800DFC0011508138400017FFE8484003FCC00C000441144703A80C0021E108000945D
+:200F1000000001061080029411403FCC01000684DFC00117DC000017DEC0020408138C01B7
+:200F18002140028BDEFFFE04DC000015280AD23A2021883A010012C4DFC0011508138C0087
+:200F2000814002830100128408138C008140030B01001344280AD23A08138C00814003035A
+:200F28000100130408138C008140038B010013C4280AD23A08138C008140038301001384FF
+:200F300008138C008140010B01001444280AD23A08138C00814001030100140408138C006A
+:200F38008140018B010014C4280AD23A08138C00814001830100148408138C008140020B3B
+:200F400001001544280AD23A08138C00814002030100150408138C008140040B010015C421
+:200F4800280AD23A08138C00814004030100158408138C008140048B01001644280AD23AB2
+:200F500008138C00814004830100160408138C008140050B010016C4280AD23A08138C003F
+:200F58008140050301001684DFC00117DC000017DEC0020408138C01DEFFFD04DC00001550
+:200F600004000FC4DC4001152023883A8009883ADFC002150813840000FFFC0410C4703A46
+:200F6800888AB03A8009883A29403FCCDFC00217DC400117DC000017DEC0030408138C0182
+:200F7000DEFFFD04DC40011504400684DC0000152021883A8809883ADFC0021508138400E7
+:200F780081403FCC00C000C4194BC83A280A91BA10800FCC8809883A114AB03A29403FCCAF
+:200F8000DFC00217DC400117DC000017DEC0030408138C01DEFFFD04DC0000152021883A53
+:200F8800DC40011584003FCC044001048809883A802090FADFC0021508138400108001CC10
+:200F9000140AB03A8809883A29403FCCDFC00217DC400117DC000017DEC0030408138C0146
+:200F9800DEFFFF04DFC00015081392800009883A0813C100000B883A01000D4408138C000B
+:200FA00001002074211B3D040813C600010004040813E1400009883A0813D7800009883AF1
+:200FA8000813DC00010001840813A340014000C401000D0408138C00010011040813A4001B
+:200FB000010006C40140220408138C000100070401400204DFC00017DEC0010408138C01F4
+:200FB800DEFFFD04DC0000152021883ADC40011584003FCC044004048809883A802090FABD
+:200FC000DFC0021508138400108001CC140AB03A8809883A29403FCCDFC00217DC400117A4
+:200FC800DC000017DEC0030408138C0121003FCC20001A26DEFFFD04DC400115010009849F
+:200FD0002823883A01402004DC000015DFC002153021883A08138C0089403FCC0080004496
+:200FD80028800426008002042880041E81401684000003068140024400000106814006049A
+:200FE00001000C4429403FCCDFC00217DC400117DC000017DEC00304000002060100098412
+:200FE800000B883A08138C01DEFFF704D8800917DDC00715DD800615DD400515DD000415C6
+:200FF000DCC00315DC800215DC400115DC000015DFC008152C403FCC00C000442021883A5D
+:200FF800302B883A3829883ADCC00A17DC800B17DD800C1715C03FCC88C0092600C00204C1
+:2010000088C00E1E11400C840100014429403FCC08138C00010001840140080400000D0634
+:20100800114000840100014429403FCC08138C0001000184200B883A00000606114001843D
+:201010000100014429403FCC08138C00010001840140040408138C0001000044880B883A4F
+:20101800B80D883A0813F2C0B1003FCC0813A40000800404010008848880021E0140030464
+:20102000000001060140020484003FCC8400201C08138C00843FE0048009883A014007042E
+:20102800044020B40814B8808C6096848887883A19C0068B1900040BA1803FCC39C0100C92
+:20103000380EC03AA97FFFCC0813AB0099003FCC91403FCC0813A0008009883A01400704D5
+:201038000814B8808885883A11400583010001C4DFC00817DDC00717DD800617DD400517AA
+:20104000DD000417DCC00317DC800217DC400117DC000017DEC0090408138C01DEFFFD0415
+:2010480029BFFF84DC400115DC000015DFC0021531803FCC0080004424403FCC2C003FCC1E
+:2010500011800436008000848880071E8805883A000008068800061E8005003A00C0008478
+:201058001885C83A000003060005883A0000010600800084880A913A8C47883A10803FCC71
+:20106000100491BA18CD883A2986B03A20CAB03A288AB03A0100064429403FCC08138C00FB
+:20106800008000C4010004048080031E0140174408138C00000011060140160408138C009E
+:201070000080008488800D1E0080004414000B36010003848080021E014014840000010688
+:20107800014014C408138C000100FA04081559C0010005040813840000000C06014016C48D
+:201080000100038408138C000100FA04081559C00100050408138400008000C48080031EDE
+:2010880001000604014004040000020601000604000B883A08138C0001000D84000B883A0E
+:20109000DFC00217DC400117DC000017DEC0030408138C01DEFFFD04DC4001152023883AFF
+:2010980001000504DC000015DFC002152821883A081384008C403FCC00C0008488C00A1E52
+:2010A00081403FCC00C0004428C0031E1080240C10802420000006062800031E1080220CB0
+:2010A80010802220000002061004D07A1080004CDFC00217DC400117DC000017DEC0030490
+:2010B000F800283ADEFFFE04DAC0030302800044DC00001552D6983ADA400403DC00020394
+:2010B800020020B4DC40011542209C840005883A037FFEC40380008403FFFBC429403FCC47
+:2010C000030006844180008B40C000033440200C880005264800021E78C6703A0000090682
+:2010C8004B80081E000006063440400C880005264800021E68C6703A000002064A80011E67
+:2010D0000007883A19C6703A18C03FCC18000C2630C0080C1807003A28C0091E40FFFE8B4D
+:2010D80018C0078419000636318003CC8000032630FFFFCC180001261AC00726300006267B
+:2010E00010C000441805883A18C03FCC420007041B3FDC1E00BFFFC4DC400117DC000017D0
+:2010E800DEC00204F800283A20803FCCDEFFF9041080201CDC800515DC400415DC000315FA
+:2010F000DFC0061510BFE0042025883A2823883A2021883A1000080E01001DC4000B883A87
+:2010F80008143A80D880028510C03FCC0100004420C0263694001FCC081498C08804D63A38
+:20110000DC000005DC400105D88000458804D43A84003FCCD88000858804D23AD88000C574
+:201108000080100480800426008012048080041E00BFE1C40000030600BFE54400000106F5
+:2011100000800044D809883A01400184D880014508149580010001440814A1400400004438
+:20111800D90002840140004408149700D8800287100003160814A580D880028300000306EF
+:201120000814A380143FF626003FFA06DFC00617DC800517DC400417DC000317DEC00704B8
+:20112800F800283ADEFFF704DC000515000B883A2021883A01001244DFC00815DC80071524
+:20113000DC40061508143A8010803FCC100002260005883A00004106010001440814A1406E
+:201138000440004404803FC4D90004840140004408149700D8800483148005260814A58010
+:20114000D8C0048300803F8418BFF11E000003060814A380147FF426003FF806D809883A72
+:2011480001400484081497008080010310C0008C18001326D8800183D8C001C3D9400243C4
+:20115000108000CC1004923AD9000143294000CC10C4B03AD8C002031085883A1085883AE8
+:201158001806D1BA294B883A210003CC10C4B03AD8C002831806D1FA28CAB03A00001006F2
+:201160001080010C10000B26D88001C3D90002030140044410800FCC1004923A1104B03AC4
+:201168001006923AD88002430009883A1884B03A000003060009883A000B883A0005883A2F
+:2011700010BFFFCC10C0004421003FCC28803FCC1105883A10BFFE441884983ADFC00817BD
+:20117800DC800717DC400617DC000517DEC00904F800283ADEFFF60401402074DCC0071543
+:20118000295BFF042027883A01800284D809883ADD000815DC400515DFC00915DC800615B1
+:20118800DC000415050000C40814BE0004400044081493C008149B0008149F80D809883A23
+:20119000014002840814958001007D04980000150814A14001001004000B883A08143A8063
+:2011980010803FCC1440071E0814A5800100120401406A8408143A8010803FCC1440271E92
+:2011A000000003060814A380147FF226003FF606D90002840140010408149700D88003034B
+:2011A8001440431ED8C0034300802A841880401E0100FA040814A1400814A38014400426B7
+:2011B0000814A5800814A3801440391E0000060601003A440150003408143A8010803FCC73
+:2011B800103FF51E003FF60601001E84000B883A08143A8010803FCC10002D1ED9000284DF
+:2011C0000140010408149700D88002831080100C1000291E040001040000280601003A4480
+:2011C800000B883A08143A8010803FCC8880032E04000044048010440000020604000084E0
+:2011D00004BFFA4401003E840814A14094803FCC0814A380144005260814A5800814A380E1
+:2011D8001000081E0021883A000006069009883A000B883A08143A8010803FCC103FF41ED8
+:2011E000003FF50601001EC4000B883A08143A8010803FCC100001260021883A0100140461
+:2011E8000140800408143A8010803FCC100003260021883A0000010604000304A0BFFFC461
+:2011F0001029883A10803FCC84803FCC10000A26903F9726008000449C00010598800015DB
+:2011F8009809883A08144A4010BFFFC49880021508149DC000000106903FF61E0814988076
+:201200009005003ADFC00917DD000817DCC00717DC800617DC400517DC000417DEC00A0436
+:20120800F800283A20800217DEFFF804DC000115DFC00715DD400615DD000515DCC0041549
+:20121000DC800315DC400215DC0008171180313684BFFFCC90002F26208001032827883A7C
+:201218003823883A1080020C1000011E300C927A01001444300B883A08143A8010803FCCBD
+:20122000100002260400008400001F06010019040814A1400500004405403FC4D809883A7A
+:201228000140004408149700D8800003154005260814A580D8C0000300803F8418BFF11E8E
+:20123000000003060814A380153FF426003FF806008080841445C83A897FFFCC1421C83AC2
+:20123800280002260009883A081497009809883A900B883A08149700817FFFCC0009883ABF
+:20124000081497000021883A081498808005883A00000106008000C4DFC00717DD4006173B
+:20124800DD000517DCC00417DC800317DC400217DC000117DEC00804F800283A010020B45E
+:2012500001406734018001B421040004297F30043186A0040815D7012005883A010020B45B
+:20125800280D883A21040004100B883A0815EC412005883A010020B4280D883A2104000453
+:20126000100B883A0815E841F800283A00C020B418E05B841880000310801FCC18800005D3
+:2012680000C020B418C4300418800035F800283A00C020B418E05B841900000300BFE00471
+:201270002084B03A1880000500C020B410803FCC18C4300418800035F800283A010020B4F8
+:201278000140673401800A7421040004297F3004318CB8040815D701010020B40140673457
+:20128000018001B421040004297F30043186A0040815D701DEFFFF04213FFFCC015A5E04FB
+:20128800DFC000150814B880D0A25315DFC00017DEC0010408156D01DEFFFF04DFC00015EC
+:20129000081571C0D0E2531710C5803ADFC00017DEC00104F800283AF800283A2900182EC9
+:20129800280017160080080400C00044000002061000112628000516294B883A10BFFFC4F7
+:2012A00018C7883A293FFA3618000B260005883A214002362149C83A10C4B03A1806D07ABA
+:2012A800280AD07A183FFA1E3000011EF800283A2005883AF800283A0005883A003FFA064B
+:2012B00000C00044003FF106DEFFFE04DFC00115DC00001520000B160021883A28000C16F1
+:2012B800000D883A0814A5C00407C83A1884F03A1405883ADFC00117DC000017DEC00204CA
+:2012C000F800283A0109C83A04000044283FF40E014BC83A8400005C003FF106DEFFFD04B5
+:2012C800DFC00215DC400115DC00001520000C160023883A0021883A28000D160180004413
+:2012D0000814A5C01404F03A8885883ADFC00217DC400117DC000017DEC00304F800283A8E
+:2012D8000109C83A04400044043FFFC4283FF30E014BC83A003FF106000D883A0814A5C11F
+:2012E000018000440814A5C10005883A2000072620C0004C2008D07A180001261145883A9E
+:2012E800294B883A203FFA1EF800283AF800283A218D883A218008262080000328C00003B8
+:2012F00010C0022610C5C83AF800283A2100004429400044003FF7060005883AF800283A46
+:2012F8002005883A0007883A1980062628C9883A21C0000310C9883A18C0004421C000052D
+:20130000003FF906F800283ADEFFF504DFC00915DC400815DC000715D9C00A1500802074A5
+:20130800109E2C04144000172800040E008022C48880001500BFFFC400001C0600C08204D5
+:20131000D8C0000DD9000415D90002152800022628FFFFC4000001060007883AD8C005157A
+:20131800D8C003151100001700FFFFC4D8C0008D00C0207418D4D3042821883AD9C00A042D
+:20132000D80B883AD8C00115D80006150814DE0000FFFFC410C0020E00C022C488C00015C8
+:2013280080000226D8C0041718000005DFC00917DC400817DC000717DEC00B04F800283A32
+:2013300030000E2631BFFFC4218D883A2080000728C0000710C0011E2180041E208000032B
+:2013380028C0000310C5C83AF800283A103FFB262100004429400044003FF4060005883AF7
+:20134000F800283A2005883A2007883A1809883A3000092629C0000331BFFFC418C0004466
+:2013480021C0000539C03FCC39C0201C39FFE00429400044383FF51E198D883A19800326E9
+:201350001800000518C00044003FFC06F800283A214B883A2005883A1140021E1105C83A0B
+:20135800F800283A10C00007183FFC2610800044003FF906DEFFFB04DC800315DC40021536
+:20136000DC000115DFC004152025883A2823883AD98000053821883A04000A0E88800117FA
+:201368009009883A880B883AD80D883A01C00044103EE83A843FFFC4103FF72600BFFFC425
+:20137000000001060005883ADFC00417DC800317DC400217DC000117DEC00504F800283A35
+:20137800DEFFE304D8C00804DF001B15DDC01A15DD801915DD401815DD001715DCC016156D
+:20138000DC801515DC401415DC001315DFC01C152029883A2823883A3839883AD9800F15E6
+:201388000021883AD8000E15002F883A002B883A0027883A0025883AD8000C15D8000B15C8
+:20139000002D883AD8C00915D8C00F171900000320803FCC1080201C10BFE00410012E262F
+:2013980001400044B14014262D800216B00006260001250601400084B1401D26014000C4BA
+:2013A000B1402B26000120060140094411410D2688800117D9000005880B883AA009883AF3
+:2013A800D80D883A01C00044103EE83A1000E81E840000440001140601400C0411410A263D
+:2013B0000140094411400A1ED880000588800117A009883A880B883AD80D883AB00F883AB1
+:2013B800103EE83A1000DA1E840000440001050625BFF404B5803FCC00C002441D800936CB
+:2013C00000BFFFC4908004269009883A014002840814B880000001060005883A15A5883A91
+:2013C8000000F20601400B841140F42605800084213FF40420C03FCC0100024420C00B361E
+:2013D00000BFFFC4988006269809883A01400284D8C011150814B880D8C011170000010634
+:2013D8000005883A10E7883A0000E70601401B041140E026013FFFC499000226D8000B1515
+:2013E0000000010604C0004401001A441100162620800916010018C41100962601001904AB
+:2013E80011001126010016041100D61E00C00044D8C00E150000140601001CC41100A626E6
+:2013F0002080041601001BC41100CE1E0540020400000E0601001D4411000C2601001E041F
+:2013F800110009260000C706E0800104B8000726D8800D15E7000017E000080E0739C83ACE
+:20140000020000440000060605400404E0C00104D8C00D15E7000017002F883A0011883A0C
+:20140800002D883ADD87883AE0001A26E009883AA80B883AD8C01115DA0012150814B7805D
+:20141000A809883A100B883AD88010150814B880E085C83A01000244D8C01117D9801017AD
+:20141800DA0012172080021617000C0400000506D9400E172800022617000DC4000001064A
+:20142000170015C41F000005B58000443039883A003FE4061EC5C83AD8800A159885C83A50
+:201428001839883A00800E0E182D883A1885883A01000C04D9400917B007883AB140052EA8
+:20143000B580004419000005B039883AB0BFF91E00000106B039883AB6EDC83ADD800A1501
+:20143800D8800A171207883A90EDC83AD8C00B171800172640000A2600800B44D88008050E
+:2014400088800117A009883A880B883AD980080401C00044103EE83A10004D1E840000448F
+:201448000580070EA009883A880B883A01800C04B00F883A0814D7401000451E85A1883A8A
+:20145000D9000A17E007883A272DC83A000022060580090EA009883A880B883A0180080472
+:20145800B00F883ADA0012150814D740DA0012171000371E85A1883A403FF12600800B440A
+:20146000D880080588800117A009883A880B883AD980080401C00044103EE83A10002C1EF3
+:2014680084000044003FE60618FFFFC418800003A009883AD8C01115D8800805888001174E
+:20147000880B883AD980080401C00044103EE83AD8C0111710001E1E80C5C83A1D89883A72
+:20147800E085883A013FF0161021883ADF000D1700004406010000442480080E95BFFFC491
+:20148000A009883A880B883A01800804B00F883A0814D74010000E1E85A1883AE0800017B0
+:20148800A009883A880B883AD880000588800117D80D883A01C00044E5800104103EE83A81
+:201490001000031E84000044B039883A00002D0600BFFFC400003106E5800017E0C001048B
+:20149800D8C00A15B009883A081544809091C83A1039883A0200090E400F883AA009883A5E
+:2014A000880B883A01800804DA0012150814D740DA001217103FEE1E8221883A8880011733
+:2014A800A009883A880B883AB00D883AE00F883A103EE83A103FE61E8721883ADF000A1707
+:2014B0000000100605C0004404FFFFC4D8000E15054002849825883AD8000C15D8000B1501
+:2014B800B82D883A00000806DD800B15058000840000050600C00044D8C00C15058000C4C8
+:2014C00000000106002D883AD8C00F1718C00044D8C00F15003ECC068005883ADFC01C1757
+:2014C800DF001B17DDC01A17DD801917DD401817DD001717DCC01617DC801517DC401417A9
+:2014D000DC001317DEC01D04F800283A2880000BDEFFFD04DC000015DFC00215DC40011573
+:2014D80010C0020C2821883A1800192628C0008F1800150E10C0800C180013262C400517CD
+:2014E00089C0030E10C0200C1800032600000E063C40010E3823883A81000417300B883A00
+:2014E800880D883A08153E80808005171445C83A80800515808004171463883A84400415F0
+:2014F0000005883A00000306108010148080000D00BFFFC4DFC00217DC400117DC000017EA
+:2014F800DEC00304F800283A2005883A29000D2E298F883A21C00B2E3007883A017FFFC4BA
+:2015000018FFFFC4194006261989C83A3909883A2200000310C9883A22000005003FF806A0
+:20150800F800283A0007883A1980062628C9883A21C0000310C9883A18C0004421C00005A7
+:20151000003FF906F800283A2005883A10C000071800022610800044003FFC061105C83AF8
+:20151800F800283ADEFFFF040100207401402074DFC00015211C1204295E35042140061EC3
+:20152000010020740140207421000804294008042140141E00000D0600C0207418DE350476
+:2015280000BFFF041907C83A1886703A0005883A10FFF326114F883A39C00017110D883A76
+:201530001080010431C00015003FF906010020740140207421193D0429593D042140121E89
+:2015380000000D0600C0207418C0080400BFFF041907C83A1886703A0005883A10FFF3262D
+:20154000114F883A39C00017110D883A1080010431C00015003FF9060815F800DFC00017D5
+:20154800DEC001040816004100C0207418DC120400BFFF041907C83A1886703A0005883A30
+:2015500010FFF526114F883A39C00017110D883A1080010431C00015003FF906DEFFFF0486
+:201558000009883ADFC0001508155A0008155C0001002074211C0204200B883A200D883A50
+:2015600008160A80D1225617D1625517D1A25417DFC00017DEC001040811C7C10815F001DE
+:20156800DEFFFF04DFC0001508163400008000441001703ADFC00017DEC00104F800283A4B
+:20157000DEFFFF0400C020B4008020B4DFC0001518C4080410A06A0410C00015010020745F
+:2015780000C06734008020B40140207418FF300410A06904211D9D04295E2E0410C00015EA
+:201580000815F8C001002074211D6604DFC00017DEC001040815B8812005883A210000176B
+:2015880011C0021721000A04081564012005883A2100001711C0021721000A04081569C129
+:2015900021000017298D883A2805883A3A10000C11800B2E20C000371A60000C480003266E
+:2015980010C0000510800044003FF906114002261145C83AF800283A403FF5260000010680
+:2015A000117FFB1E39D0000C3800021E00BFFEC4F800283A00BFFD44F800283A21000017A8
+:2015A8003005883A298D883A21C001042980072E38C0003718FFFFEC183FFC2628C0000757
+:2015B00020C0003529400044003FF806F800283A00C020B418E0690418C00017008020B486
+:2015B80010A06A041080001718000A2610C001040100020419000035013FFFD41100023581
+:2015C0001100033500800104188000350005883AF800283A00BFFFC4F800283A008020B41F
+:2015C80010A06A0410C00017008020B410A0690410800017100008261880040410000035C3
+:2015D0001080003718C005371806943A10BFFFCC1884303AF800283A00BFFFC4F800283A5E
+:2015D800008020B410A0690410800017F800283A20001D262804923A20C03017DEFFFD0421
+:2015E000DC400115DC000015DFC002152823883A2021883A108000D41880033580C0301747
+:2015E800188000371080004C10000326010000440815F000003FF90618C000371809D0FA75
+:2015F0002140020C1809D0BA1807D07A210001CC2908B03A18C0040C20C6B03A1C40042611
+:2015F80000BFF4840000020600BFFA84F800283ADFC00217DC400117DC000017DEC0030479
+:20160000F800283A20000A26280009263000082620800C173080001520800C1710000626E4
+:2016080021000D04290000150005883AF800283A00BFFA84F800283A00BFFEC4F800283ABF
+:201610002005883A20001D262809883A28001B1610C0311728C0192E1140341728FFFFC457
+:2016180020C6703A1800151EDEFFFE04DC000015DFC001151021883A0814B7801004923A2C
+:2016200000C0403418FFC00410C4703A80C03017108000941880033580C0301718C004043B
+:20162800188000371080004C10000626008000441880003500BFFEC40000020600BFFA8464
+:20163000F800283ADFC00117DC000017DEC00204F800283ADEFFF504DC000115DFC00A1512
+:20163800DF000915DDC00815DD800715DD400615DD000515DCC00415DC800315DC400215D7
+:20164000DC000B17280039163023883A300037162027883A20003526382B883A3800332649
+:20164800208031173080312E2880302E208034172987C83A1887883A1C002C3680002B1648
+:2016500010BFFFC4288A703A2800281E0029883A05BFFFC405C000C4070001048000212650
+:20165800DD800015890000CC20000526E125C83A8480012E8025883A8923C83A0000040606
+:20166000BC0002368025883A0000010604800104AD0B883AD909883A900D883A0814BE0028
+:2016680098802E17D8C00017A4A9883A84A1C83A8885883A10C00035988030171080040455
+:2016700010C0003718C0008C1800042600C0008410C0003500BFFEC4000005068C40010407
+:20167800003FDE060005883A0000010600BFFA84DFC00A17DF000917DDC00817DD8007172E
+:20168000DD400617DD000517DCC00417DC800317DC400217DC000117DEC00B04F800283ABA
+:20168800DEFFF604DC000115DFC00915DDC00815DD800715DD400615DD000515DCC00415A5
+:20169000DC800315DC4002152021883A20000A263029883A3000082620802E1780C02F175C
+:201698002823883A2885883A382B883A11C9883A10C0012E20C0023600BFFA840000240677
+:2016A0002809883A81403417002D883A0814B780102F883A80803317B8801C2EA8001B2633
+:2016A80084C0341704E7C83A8CE6703A9C4002268CE5C83A000001060025883A8009883ADA
+:2016B000980B883A081584001000111E80C034171CA5C83AAC80012EA825883ADC8000152C
+:2016B8008009883A980B883A880D883AA58F883A08158D401000061EACABC83AB4AD883A7B
+:2016C0008CA3883ABDC00044003FE2060005883ADFC00917DDC00817DD800717DD4006173A
+:2016C800DD000517DCC00417DC800317DC400217DC000117DEC00A04F800283A2000072660
+:2016D0003000062620802E17288B883A20802F1729C7883A2880012E1880023600BFFA84C8
+:2016D800F800283ADEFFFF043009883A380D883ADFC000150814BE000005883ADFC00017AB
+:2016E000DEC00104F800283A20005026208030171000502620C03217DEFFFB04DFC004152D
+:2016E800DCC00315DC800215DC400115DC00001518001E1E1480023700C0030494803FCC91
+:2016F00090BFFAC418804536100490BA00C0207418D6F80410C5883A108000171000683A2E
+:2016F80000815C4C00815C5C00815C6400815C5400815C1400815CDC00815CDC00815CDCE2
+:2017000000815CDC00815CDC00815CDC00815C1C00815C240440800400001306044100047A
+:20170800000011060442000400000F06148001370080058494803FCC90800A26008006048D
+:2017100090800426008005049080241E044008040000050604404004000003060440100460
+:20171800000001060440200424C034172021883A8809883A980B883A0814B88080C031177C
+:2017200010C0021E80C0331788C0022680000C150000120600C000440140207484803615DE
+:201728008440331580C00C1580000D1580800E1584400F1584C010158009883A295E330415
+:201730000815F8C00005883A0000050600BFFA84F800283A00BFFB44F800283A00BFFB4405
+:20173800DFC00417DCC00317DC800217DC400117DC000017DEC00504F800283A300001262D
+:201740000005C03200FFFF042005883A28C6703A110DC83A30C0042E11800017300DC0F238
+:2017480010800104003FFA06294000CC00C000C428C0041E10C0000B1807C0B2108000836B
+:201750000000080600C0008428C0031E1080000B1005C0B20000040600C0004428C0021EE6
+:20175800108000031005C0720005C132F800283ADEFFFD04DC400115DC0000152823883A37
+:201760002021883A014001443009883ADFC002150814B8808809883A100B883A0814B78058
+:2017680010BFFFC480C0020418000035010000448100043511003FCC810000351004D23A4B
+:2017700010803FCC808001350080200418800035DFC00217DC400117DC000017DEC0030493
+:20177800F800283A3180004C294B883A298B883A214003352100040400802404208000350F
+:20178000208000371080008C103FFD1E208000371004D1FA1080004CF800283A20C0040418
+:201788002800022600801A04000001060080080418800035188000371080008C103FFD1E9E
+:2017900020800337F800283A29403FCC2140033521000404300002260080140400000106D8
+:201798000080040420800035208000371080008C103FFD1E208000371004D1FA1080004CE5
+:2017A000F800283A21C004042805883A02000B04210003041147C83A1980090E3A00003545
+:2017A80038C0003718C0008C183FFD1E2800022620C0003710C0000510800044003FF506D2
+:2017B000F800283A21C003042805883A21000404020007041147C83A1980080E10C00003D6
+:2017B80038C000352200003520C0003718C0008C183FFD1E10800044003FF606F800283A37
+:2017C000014AAAF4DEFFFE04296AAA84DC000015DFC001152021883A0814B78010000F263F
+:2017C80001600034013555740007883A297FFFC421155584297FFFC4283FFE1E18C0004420
+:2017D0008121883A18BFFB168405883A1421883A843FFFC4803FFE1E000004068405883AB5
+:2017D8001421883A843FFFC4043FFE160005883ADFC00117DC000017DEC00204F800283AAE
+:2017E000F800283A3005883AF800283A20000226208002171000131E00802074109E320404
+:2017E8001080001710000926DEFFFF04DFC00015103EE83A00C0058410C0001500BFFA848C
+:2017F000DFC00017DEC00104F800283A008020B410A06B0400C0058410C0001500BFFA8448
+:2017F800F800283A2880001721400115208000152880001711000115290000150005883AA1
+:20180000F800283AF800283ADEFFFC04DC4001152023883A2809883A300B883A01807FC44C
+:20180800DC000015DFC00315DC800215081612001021883A100016161009883A0140030423
+:20181000048020740814B880949DA8041007883A9085883A108000178009883A88800015B0
+:2018180090C5883A1080011790C7883A888001151880021788800215DFC00317DC800217BC
+:20182000DC400117DC000017DEC0040408162E41DFC00317DC800217DC400117DC000017F9
+:20182800DEC00404F800283ADEFFFB04DC000015040020742005883A841DAB04DC400115D2
+:2018300004400044DCC00315DC8002152827883A3025883A100B883A8009883A880D883A42
+:20183800DFC0041508160080813FFD04980B883A000D883A0816008081000304900B883AC2
+:20184000880D883ADFC00417DCC00317DC800217DC400117DC000017DEC0050408160081DF
+:20184800DEFFF504DC4002152823883A01402074295E2E04DD400615DD000515DCC00415F8
+:20185000DC800315DFC00A15DF000915DDC00815DD800715DC0001152025883A3027883A04
+:2018580008163480102B883A0029883A1000051E9009883A08163BC0102B883A1000462696
+:2018600005000044A809883A081646801021883A100044161009883A014003040814B880F4
+:201868001007883A0210003400802074109DA804423FFFC418B9883A8A10703A102F883AB8
+:2018700018C00204A000062610C7883A1A000015A880031710001A1E8005883A00003506DA
+:2018780010C7883A0080207442100034109E2D041A00001510C00017B829883A002D883A96
+:201880008009883A01400304D8C000150814B880B885883AA100001710800017D8C00017A7
+:201888002080031EA08002171000010EA7001F1EB5800044A50003041DBFF12E003FE406FA
+:20189000880D883AE009883A900B883A980F883A103EE83A1023883A8005883A8800150E19
+:201898008009883A08162E4000802074109E32041080001710000226103EE83A000002060A
+:2018A000008020B410A06B040463C83A1440001500BFFFC400000706047FFB44043FFFC48C
+:2018A800003FEF061023883A003FED06047FFCC4003FEB06DFC00A17DF000917DDC00817D7
+:2018B000DD800717DD400617DD000517DCC00417DC800317DC400217DC000117DEC00B0467
+:2018B800F800283A00C000841900140EDEFFFD04DC0000150140030404002074DFC00215D2
+:2018C000DC400115841DA8042023883A0814B8808085883A8809883A0140030410000215A7
+:2018C8000814B8808085883A10000015DFC00217DC400117DC000017DEC00304F800283AE2
+:2018D000000170FAF800283ADEFFFB04DCC00315DC800215DC400115DC000015DFC0041555
+:2018D8002027883A2823883A2C00001708154480148000448440072681000217980B883AEE
+:2018E000900D883A0814BB001000042684000017003FF8060005883A000001068005883A8B
+:2018E800DFC00417DCC00317DC800217DC400117DC000017DEC00504F800283A00802074BF
+:2018F000DEFFFA04109E3004DC00001514000017DD000415DCC00315DC800215DFC0051529
+:2018F800DC4001152027883A1025883A05000BC484801226844002178809883A081544807D
+:201900008887883A18FFFFC71D00011E10BFFFC49887883A18C000071D0001261800051E0C
+:201908008809883A980B883A100D883A0814BB001000042684000017003FED060005883A83
+:20191000000001068005883ADFC00517DD000417DCC00317DC800217DC400117DC00001764
+:20191800DEC00604F800283ADEFFFB04DCC0031504C02074DC800215DC400115DC0000152F
+:20192000DFC004152025883A0021883A9CDDA804044008048009883A014003040814B880A9
+:201928009887883A188000171000081E1C80001500C0207418DE2D04190000178005883A36
+:201930002400050E1C0000150000030684000044847FF01E00BFFA04DFC00417DCC0031720
+:20193800DC800217DC400117DC000017DEC00504F800283A73616C467265206800657361D4
+:201940006F727265642520720000000073616C4672772068006574696F7272650000007251
+:2019480073616C4665762068206669726C6961660000000053206F4E6163204464206472E7
+:20195000002E74652520732500632575252E75256B75322E25207A482E252E757A48753203
+:20195800000000004353534F776620207525202E322E252E0000007574696E49727265200D
+:201960002020726F000064252020202053204F4E00434E59343130323130322D6D202036D9
+:20196800737172610000000074736554746170206E726574000000003A31564142475220ED
+:20197000000000533A31564173475220000000423A31564162505920000072503A325641A2
+:2019780062505920000072503A32564173475220000000423A335641424752200000564854
+:201980003A33564142475220000000533A33564173475220000000423A3356416250592054
+:2019880000007250008165A8008165B8008165C4008165D0008165DC008165E8008165F487
+:20199000008166000081660C008166180000000000000000001000000044060B00000100F8
+:20199800808000001A1A1A807365725000000073666E6F43006D72696D73694D6863746150
+:2019A0006572202C00797274646F4D567325203A00000000203A4F4C56207525203A4D533E
+:2019A800000075250000003100000032000000330000003400000035000000360000003719
+:2019B000000000380000003900000030554E454D0000000000004B4F4B4341420000000096
+:2019B800000050554E574F44000000005446454C0000000048474952000000544F464E495D
+:2019C000000000005F44434C4B4341424847494C000000544E414353454E494C444F4D5FC0
+:2019C800000000454E414353454E494C5059545F000000454E414353454E494C544E495F35
+:2019D0000000002B4E414353454E494C544E495F0000002D454E494C544C554D444F4D5F5F
+:2019D80000000045008166A4008166A8008166AC008166B0008166B4008166B8008166BC89
+:2019E000008166C0008166C4008166C8008166CC008166D4008166D8008166E0008166E427
+:2019E800008166EC008166F4008166FC008167040081671400816724008167340081674412
+:2019F000008167544353534F0000000061766E492064696C67616D690000006561766E49EB
+:2019F8002064696C646165680000726561766E492064696C2072646800435243696C615664
+:201A0000697461646420676E0061746162207525736574790000000061766E492064696CCD
+:201A0800617461644352432000000000252E75252575322E00732573636E6143656C6C6523
+:201A10000000006461647055676E69740057462061656C70772065732E74696100002E2E80
+:201A1800697265566E6979666C6620670068736172746552676E69796470752000657461D6
+:201A200061647055203F65742C593D314E3D322000000000202020200000752564206425ED
+:201A2800000067656C20752573656E6900000000252E75252075322E000073756D2064251D
+:201A300000000056702075256C6578690000007325257525000000000000732565646956ED
+:201A38006E69206F6F7270203E20206300000000706D6153676E696C74706F203E20202E7C
+:201A400000000000636E795374706F202020202E3E202020000000007074754F6F2074752A
+:201A4800202E74703E2020200000000074736F506F72702D20202E633E202020000000001B
+:201A50002E77463C64707520206574613E202020000000002D204B4F736C7020736572202E
+:201A580074726174000000006C696166000064657365523C73207465697474653E73676E40
+:201A600000000000657365526F6420740000656E7661533C657320656E6974743E207367E3
+:201A68000000000065766153000000646E616353656E696C000000736E616353656E696C9E
+:201A7000727473200000002E6E616353656E696C70797420000000656E616353656E696C73
+:201A7800696C61202E6D6E670000000069726F48746E6F7A6D206C61006B736174726556F1
+:201A80006C61636973616D200000006B703034323838322F696C20703358656E0000000047
+:201A8800656E694C706972746D20656C0065646F703038343637352F696C20703258656EC2
+:201A900000000000693038343637352F6170206972747373000000006D2058540065646FC9
+:201A980074696E49206C616975706E69000000746C616E417320676F20636E790046504CE3
+:201AA0006C616E417320676F20636E79006874566E7973486F7420636172656C0065636EC3
+:201AA8006E797356687420636873657200646C6F4C502D487250204C6F432D650074736153
+:201AB0004C502D486F50204C432D74737473616F00000000706D6153676E696C6168702038
+:201AB8000000657370303834206E6920706D61730072656C7664413C6974202E676E696DF2
+:201AC0003E2020200000000065646956504C206F00000046506250596E6920726C6F43206D
+:201AC8000061705372502F5266666F200074657320592F477366666F0000746562502F4257
+:201AD00066666F200074657372502F52696167200000006E20592F476E69616700000000BF
+:201AD80062502F42696167200000006E73202E486C706D61746172650000006573202E483F
+:201AE0006C636E7900006E6561202E48766974630000006561202E5676697463000000652B
+:201AE80062202E48706B63616863726F0000000062202E56706B63616863726F000000004A
+:201AF00000706F5474746F4200006D6F69726F48746E6F7A00006C61747265566C616369CA
+:201AF8000000000065746C4174616E7200676E690066664F6F74754100000000756E614D10
+:201B000000006C61494D44480000000000495644656E654720636972393A3631000000003C
+:201B0800656E65472063697200333A3478303233203034326974706F00002E6D7836353210
+:201B1000203034326974706F00002E6D484D33336D28207A00296E69484D30316D28207A59
+:201B1800002964654D352E3228207A482978616D0000000020565444703038340000000046
+:201B2000415345563034362030383478003036402E63655231303620000000002E636552BB
+:201B28003930372000000000484D35394828207A2056544400294949484D35334828207A00
+:201B30002056544400002949484D36314528207A29565444000000007A484D3944532820D4
+:201B38000029565400006E4F44525355004154410000002000816C900000200020002CE5FB
+:201B4000E926F4FD38BC20000000000000816C9C000020002000323EF113FA043B6120007A
+:201B480000000000703034324D334C5F05000030177000F001060618034810AA0041001223
+:201B5000703034324D334C5F03C00031177000F00106049203361080004200127030343219
+:201B58004D334C5F01400032177000F0010601AA031F103100440011703034324D334C5FBD
+:201B600001000033177000F0010601550319102700480011703034320000000002D00000D9
+:201B6800177000F00106035A033C104100500012703838324D334C5F050000301388012062
+:201B700001380618034810AA00410012703838324D334C5F03C000311388012001380492EA
+:201B78000336108000420012703838324D334C5F01400032138800F0013801AA031F293195
+:201B800000440011703838324D334C5F01000033138800F0013801550319292700480011A0
+:201B8800703838320000000002D000001388012001380360033C1041005000127034383300
+:201B90000000000001F000001686018001A70280033E1D3200500004783034360034383368
+:201B980002800000157C018001EC032002603F3000100010693038340000000002D00000C1
+:201BA000176A00F0020D035A033C104100700012703038340000000002D00000176A01E0F6
+:201BA800020D035A063E1E3C00800014783034360030383402800000177001E0020D0320B5
+:201BB0000260213001000014783034360032313502800000177002000238032002601C308D
+:201BB80000000010693637350000000002D000001388012002710360033C1041007000127C
+:201BC000703637350000000002D000001388024002710360063C20410000000478303038B7
+:201BC8000030303603200000177002580274042004801758000000107030323700000000BD
+:201BD00005000000176A02D002EE0672052814FF000000083038323130323778050000000C
+:201BD800177002D002EE0672052814DC00000010343230313836377804000000177003008D
+:201BE0000326054006881DA00000001030383231323031780500003417700400042A0698B6
+:201BE800037026F800000010303830310000006907800000176A043804650898052C1094E8
+:201BF00000200008303830310000007007800000176A043804650898052C24BC000000080E
+:201BF8003032393138303178078000301770043804650898052C249400000010FFFFFFFF78
+:201C0000FFFFFFFF0000FFFF7665642F61746A2F61755F67305F7472000000007665642F6F
+:201C08006370652F6F635F716F72746E72656C6C615F305F6D5F6C7600006D657665642F04
+:201C10006C756E2F0000006C000000000000000000000000000000000000000000000000CA
:201C18000000000000000000000000000000000000000000000000000000000000000000AC
:201C20000000000000000000000000000000000000000000000000000000000000000000A4
:201C280000000000000000000000000000000000000000000000000000000000000000009C
@@ -923,101 +923,101 @@
:201CC8000000000000000000000000000000000000000000000000000000000000000000FC
:201CD0000000000000000000000000000000000000000000000000000000000000000000F4
:201CD8000000000000000000000000000000000000000000000000000000000000000000EC
-:201CE00000000000000000000000000000000000000000000000000000000000017804E582
-:201CE8003CCE00813FAE03833F333D4905B80383009301B404163C493CD93F9F04163F1060
-:201CF000020E04093D0E00C83F6E03833ED03DAC04B2038300E9026404163C933D493F56EB
-:201CF80004163E9F3EA93E293EE93E693E993E193ED93E593EC93E393E1D3E4D3E2D3EEDE3
-:201D00003EAD3ECD3E653E6D1C483E011C501C181CC81CD000817318000000000000000060
-:201D08000000000000000000000000000081638C0000000300817340000000000000000014
-:201D1000008163A000000003008173380000000000000000008163B4000000030081733041
-:201D18000000000000000000008163C800000003008173280000000000000000008163DC20
-:201D200000000003008173200000000000000000008163F000000004008126940081640490
-:201D2800000000000081641800000004008121BC0081642C0000000000816438000000040A
-:201D30000081316C0081644C00000000008164540000000000817D510002000100816EDCEE
-:201D3800008164600000000100817D53000F000000812C80008164700000000000817D5213
-:201D40000002000100816ED0008164800000000000817D540001000100817350008164944B
-:201D48000000000100817D57003F000000812C64008164A40000000100817D58003F0000B6
-:201D500000812C64008164B40000000000817D550001000100817368008164C8000000006B
-:201D580000817D560003000100816EE8008164D80000000000817D640001000100817368BF
-:201D6000008164EC0000000000817D650001000100817368008165000000000000817D5994
-:201D68000001000100817358008165080000000000817D660009000100816F2C0081651897
-:201D70000000000000817D600003000100816EF8008165280000000100817D5D001F000081
-:201D780000812C20008165380000000100817D5E00FF000000812B94008165480000000195
-:201D800000817D5F00C80A0000812B94008165580000000100817D620005000000812B780C
-:201D8800008165680000000100817D630005000000812B780081657C0000000100817D5BA6
-:201D9000001F000000812B340081658C0000000000817D5A0002000100816F080081659CED
-:201D980000000003008173480081199400000000008165B00000000000817D6100050001C3
-:201DA00000816F14008165BC0000000000817D5C0001000100817360008165CC000000011A
-:201DA80000817D6700FF000000812B18008165D80000000100817D6800FF000000812B180B
-:201DB000008165E40000000100817D6900FF000000812B18008165F00000000100817D6ADF
-:201DB80000FF000000812B18008165FC0000000100817D6B00FF000000812B18008166084A
-:201DC0000000000100817D6C00FF000000812B18008166140000000200817C6A08FC012C40
-:201DC80000811AB4008166240000000200817C7400C8000A00811AB40081663000000002F4
-:201DD00000817C68078000C800811AB40081663C0000000200817C6604B000C800811AB49D
-:201DD800008166480000000200817C6200FF000100811AB4008166580000000200817C705E
-:201DE00000FF000100811AB400816674008166800081668C008166980081669C008166A4D2
-:201DE800008166B8008166C8008166D4008166E400816698008166F4008167000081670CD1
-:201DF0000081669C0081671C008167280081669C0081669800816750008167600081677062
-:201DF8000081678000816060008160700081607C0081608800816094008160A0008160AC88
-:201E0000008160B8008160C4008160D000000000008170140081701C0081702400000000AC
+:201CE0000000000000000000000000000000000000000000000000000000000000000000E4
+:201CE8000000000000000000000000000000000000000000000000000000000000000000DC
+:201CF0000000000000000000000000000000000000000000000000000000000000000000D4
+:201CF8000000000000000000000000000000000000000000000000000000000000000000CC
+:201D00000000000000000000000000000000000000000000000000000000000000000000C3
+:201D08000000000000000000000000000000000000000000000000000000000000000000BB
+:201D10000000000000000000000000000000000000000000000000000000000000000000B3
+:201D18000000000000000000000000000000000000000000000000000000000000000000AB
+:201D20000000000000000000000000000000000000000000000000000000000000000000A3
+:201D280000000000000000000000000000000000000000000000000000000000000000009B
+:201D3000000000000000000000000000000000000000000000000000000000000000000093
+:201D380000000000000000000000000000000000000000000000000000000000000000008B
+:201D4000000000000000000000000000000000000000000000000000000000000000000083
+:201D480000000000000000000000000000000000000000000000000000000000000000007B
+:201D5000000000000000000000000000000000000000000000000000000000000000000073
+:201D580000000000000000000000000000000000000000000000000000000000000000006B
+:201D6000000000000000000000000000000000000000000000000000000000000000000063
+:201D680000000000000000000000000000000000000000000000000000000000000000005B
+:201D7000000000000000000000000000000000000000000000000000000000000000000053
+:201D780000000000000000000000000000000000000000000000000000000000000000004B
+:201D8000000000000000000000000000000000000000000000000000000000000000000043
+:201D880000000000000000000000000000000000000000000000000000000000000000003B
+:201D9000000000000000000000000000000000000000000000000000000000000000000033
+:201D980000000000000000000000000000000000000000000000000000000000000000002B
+:201DA000000000000000000000000000000000000000000000000000000000000000000023
+:201DA80000000000000000000000000000000000000000000000000000000000000000001B
+:201DB000000000000000000000000000000000000000000000000000000000000000000013
+:201DB80000000000000000000000000000000000000000000000000000000000000000000B
+:201DC000000000000000000000000000000000000000000000000000000000000000000003
+:201DC8000000000000000000000000000000000000000000000000000000000000000000FB
+:201DD0000000000000000000000000000000000000000000000000000000000000000000F3
+:201DD8000000000000000000000000000000000000000000000000000000000000000000EB
+:201DE0000000000000000000000000000000000000000000000000000000000000000000E3
+:201DE8000000000000000000000000000000000000000000000000000000000000000000DB
+:201DF0000000000000000000000000000000000000000000000000000000000000000000D3
+:201DF8000000000000000000000000000000000000000000000000000000000000000000CB
+:201E00000000000000000000000000000000000000000000000000000000000000000000C2
:201E08000000000000000000000000000000000000000000000000000000000000000000BA
:201E10000000000000000000000000000000000000000000000000000000000000000000B2
:201E18000000000000000000000000000000000000000000000000000000000000000000AA
:201E20000000000000000000000000000000000000000000000000000000000000000000A2
:201E280000000000000000000000000000000000000000000000000000000000000000009A
-:201E300000000000000000000000000000000004000000000001000A000000000002000A77
-:201E3800000000000000000000000000000000000000000000815FC00000000000000000EA
-:201E40000000000000000000000000000000000000000000008210000000000000000000F0
-:201E480000816AB80000000000000000008154C0008155DC008152A4008152E0008153741E
-:201E50000000000000800000000000000000000000000000000000000000000000000000F2
-:201E580000000000000000000000000000000000000000000000000000000000000000006A
-:201E6000000000000000000000000000000000000000000000000000000000000000000062
-:201E680000000000000000000000000000000000000000000000000000000000000000005A
-:201E70000000000000000000000000000081521000000000008000000082140000800000D9
-:201E78000000000100000080000100000000010000000000000000000000000000816AA438
-:201E80000000000000000000008151580081516C000000000000000000000000008214A0A4
-:201E8800008172E80000000000000000008172E80000000000000000008172E800000000A9
-:201E9000000000000000000000000000000000000000000000000000000000000000000032
-:201E980000000000000000000000000000000000000000000000000000000000000000002A
-:201EA000000000000000000000000000000000000000000000000000000000000000000022
-:201EA80000000000000000000000000000000000000000000000000000000000000000001A
-:201EB000000000000000000000000000000000000000000000000000000000000000000012
-:201EB80000000000000000000000000000000000000000000000000000000000000000000A
-:201EC000000000000000000000000000000000000000000000000000000000000000000002
-:201EC8000000000000000000000000000000000000000000000000000000000000000000FA
-:201ED0000000000000000000000000000000000000000000000000000000000000000000F2
-:201ED8000000000000000000000000000000000000000000000000000000000000000000EA
-:201EE0000000000000000000000000000000000000000000000000000000000000000000E2
-:201EE800008173800081738000816AD8000000000000000000000000008159EC0000000069
-:201EF000000000000000000000108010000000800000000800816B740000000600816C1443
-:201EF8000000000600816C8C0000000600816D040000000300816D7C0000000800816DB838
-:201F00000000000600816E58008166680081666C008166AC008166B4008167380081674458
-:201F0800008166980081678CC896554B0000001A00816F54FFFFFFFF008172E8008172E8B8
-:201F10000081738800817388000000000081739400817394000000000000000000000000A9
-:201F18000000000000000000000000000000000000000000000000000000000000000000A9
-:201F20000000000000000000000000000000000000000000000000000000000000000000A1
-:201F2800000000000000000000000000000000000000000000000000000000000000000099
-:201F3000000000000000000000000000000000000000000000000000000000000000000091
-:201F3800000000000000000000000000000000000000000000000000000000000000000089
-:201F4000000000000000000000000000000000000000000000000000000000000000000081
-:201F4800000000000000000000000000000000000000000000000000000000000000000079
-:201F5000000000000000000000000000000000000000000000000000000000000000000071
+:201E30000000000000000000000000000000000000000000017804E53CCE00813FAE038332
+:201E38003F333D4905B80383009301B404163C493CD93F9F04163F10020E04093D0E00C8DC
+:201E40003F6E03833ED03DAC04B2038300E9026404163C933D493F5604163E9F3EA93E2984
+:201E48003EE93E693E993E193ED93E593EC93E393E1D3E4D3E2D3EED3EAD3ECD3E653E6D92
+:201E50001C483E011C501C181CC81CD0008178500000000000000000000000000000000016
+:201E580000000000008168DC00000003008178780000000000000000008168F00000000355
+:201E60000081787000000000000000000081690400000003008178680000000000000000A7
+:201E680000816918000000030081786000000000000000000081692C000000030081785892
+:201E700000000000000000000081694000000004008125DC008169540081696800816970B8
+:201E780000000004008120F400816984008168D4008169900000000400813108008169A4C0
+:201E800000816968008169AC000000000081823D0002000100817440008169B8000000013F
+:201E88000081823F000F000000812C20008169C8000000000081823E0002000100817434FD
+:201E9000008169D800000000008182400001000100817888008169EC00000001008182438D
+:201E9800003F000000812C04008169FC0000000100818244003F000000812C0400816A0C25
+:201EA000000000000081824100010001008178A000816A20000000000081824200030001EF
+:201EA8000081744C00816A30000000000081825000010001008178A000816A4400000000A1
+:201EB0000081825100010001008178A000816A58000000000081824500010001008178900D
+:201EB80000816A600000000000818252000900010081749000816A70000000000081824C31
+:201EC000000300010081745C00816A800000000100818249001F000000812BC000816A90EF
+:201EC800000000010081824A00FF000000812B3000816AA0000000010081824B00C80A0025
+:201ED00000812B3000816AB0000000010081824E0005000000812B1400816AC000000001B8
+:201ED8000081824F0005000000812B1400816AD40000000100818247001F000000812AD02F
+:201EE00000816AE40000000000818246000200010081746C00816AF400000003008178800B
+:201EE800008118C00000000000816B08000000000081824D000500010081747800816B14CA
+:201EF0000000000000818248000100010081789800816B24000000010081825300FF00008E
+:201EF80000812AB400816B30000000010081825400FF000000812AB400816B3C0000000170
+:201F00000081825500FF000000812AB400816B48000000010081825600FF000000812AB41F
+:201F080000816B54000000010081825700FF000000812AB400816B60000000010081825818
+:201F100000FF000000812AB400816B6C000000020081817408FC012C008119E000816B7C70
+:201F1800000000020081817E00C8000A008119E000816B880000000200818172078000C8A2
+:201F2000008119E000816B94000000020081817004B000C8008119E000816BA000000002AF
+:201F28000081816A00FF0001008119E000816BB0000000020081817A00FF0001008119E01F
+:201F300000816BCC00816BD800816BE400816BF000816BF400816BFC00816C1000816C2097
+:201F380000816C2C00816C3C00816BF000816C4C00816C5800816C6400816BF400816C745B
+:201F400000816C8000816BF400816BF000816CA800816CB800816CC800816CD8008165A816
+:201F4800008165B8008165C4008165D0008165DC008165E8008165F4008166000081660C37
+:201F5000008166180000000000817578008175800081758800000000000000000000000010
:201F5800000000000000000000000000000000000000000000000000000000000000000069
:201F6000000000000000000000000000000000000000000000000000000000000000000061
:201F6800000000000000000000000000000000000000000000000000000000000000000059
:201F7000000000000000000000000000000000000000000000000000000000000000000051
:201F7800000000000000000000000000000000000000000000000000000000000000000049
-:201F8000000000000000000000000000000000000000000000000000000000000000000041
-:201F8800000000000000000000000000000000000000000000000000000000000000000039
-:201F9000000000000000000000000000000000000000000000000000000000000000000031
+:201F80000000000000000004000000000001000A000000000002000A000000000000000026
+:201F88000000000000000000000000000081701C000000000000000000815A2000815B3C19
+:201F90000081580400815840008158D400000000008000000000000000000000000000000E
:201F9800000000000000000000000000000000000000000000000000000000000000000029
:201FA000000000000000000000000000000000000000000000000000000000000000000021
:201FA800000000000000000000000000000000000000000000000000000000000000000019
-:201FB000000000000000000000000000000000000000000000000000000000000000000011
-:201FB800000000000000000000000000000000000000000000000000000000000000000009
-:201FC000000000000000000000000000000000000000000000000000000000000000000001
-:201FC8000000000000000000000000000000000000000000000000000000000000000000F9
-:201FD0000000000000000000000000000000000000000000000000000000000000000000F1
+:201FB0000000000000000000000000000000000000000000000000000081577000000000C9
+:201FB8000080000000821040008000000000000100000080000100000000010000000000B4
+:201FC0000000000000000000008170080000000000000000008156180081562C0000000016
+:201FC8000000000000000000008210D0008178200000000000000000008178200000000065
+:201FD0000000000000817820000000000000000000000000000000000000000000000000D8
:201FD8000000000000000000000000000000000000000000000000000000000000000000E9
:201FE0000000000000000000000000000000000000000000000000000000000000000000E1
:201FE8000000000000000000000000000000000000000000000000000000000000000000D9
@@ -1028,12 +1028,12 @@
:202010000000000000000000000000000000000000000000000000000000000000000000B0
:202018000000000000000000000000000000000000000000000000000000000000000000A8
:202020000000000000000000000000000000000000000000000000000000000000000000A0
-:20202800000000000000000000000000000000000000000000000000000000000000000098
-:20203000000000000000000000000000000000000000000000000000000000000000000090
-:20203800000000000000000000000000000000000000000000000000000000000000000088
-:20204000000000000000000000000000000000000000000000000000000000000000000080
-:20204800000000000000000000000000000000000000000000000000000000000000000078
-:20205000000000000000000000000000000000000000000000000000000000000000000070
+:20202800000000000000000000000000008178B8008178B80081703C000000000000000009
+:202030000000000000815F8400000000000000000000000000108010000000800000000804
+:20203800008170D8000000060081717800000006008171F000000006008172680000000303
+:20204000008172E0000000080081731C00000006008173BC00816BC000816BC400816C0492
+:2020480000816C0C00816C9000816C9C00816BF000816CE4C896554B0000001A008174B807
+:20205000FFFFFFFF0081782000817820008178C0008178C000000000008178CC008178CC46
:20205800000000000000000000000000000000000000000000000000000000000000000068
:20206000000000000000000000000000000000000000000000000000000000000000000060
:20206800000000000000000000000000000000000000000000000000000000000000000058
@@ -1151,4 +1151,132 @@
:2023E8000000000000000000000000000000000000000000000000000000000000000000D5
:2023F0000000000000000000000000000000000000000000000000000000000000000000CD
:2023F8000000000000000000000000000000000000000000000000000000000000000000C5
+:202400000000000000000000000000000000000000000000000000000000000000000000BC
+:202408000000000000000000000000000000000000000000000000000000000000000000B4
+:202410000000000000000000000000000000000000000000000000000000000000000000AC
+:202418000000000000000000000000000000000000000000000000000000000000000000A4
+:2024200000000000000000000000000000000000000000000000000000000000000000009C
+:20242800000000000000000000000000000000000000000000000000000000000000000094
+:2024300000000000000000000000000000000000000000000000000000000000000000008C
+:20243800000000000000000000000000000000000000000000000000000000000000000084
+:2024400000000000000000000000000000000000000000000000000000000000000000007C
+:20244800000000000000000000000000000000000000000000000000000000000000000074
+:2024500000000000000000000000000000000000000000000000000000000000000000006C
+:20245800000000000000000000000000000000000000000000000000000000000000000064
+:2024600000000000000000000000000000000000000000000000000000000000000000005C
+:20246800000000000000000000000000000000000000000000000000000000000000000054
+:2024700000000000000000000000000000000000000000000000000000000000000000004C
+:20247800000000000000000000000000000000000000000000000000000000000000000044
+:2024800000000000000000000000000000000000000000000000000000000000000000003C
+:20248800000000000000000000000000000000000000000000000000000000000000000034
+:2024900000000000000000000000000000000000000000000000000000000000000000002C
+:20249800000000000000000000000000000000000000000000000000000000000000000024
+:2024A00000000000000000000000000000000000000000000000000000000000000000001C
+:2024A800000000000000000000000000000000000000000000000000000000000000000014
+:2024B00000000000000000000000000000000000000000000000000000000000000000000C
+:2024B800000000000000000000000000000000000000000000000000000000000000000004
+:2024C0000000000000000000000000000000000000000000000000000000000000000000FC
+:2024C8000000000000000000000000000000000000000000000000000000000000000000F4
+:2024D0000000000000000000000000000000000000000000000000000000000000000000EC
+:2024D8000000000000000000000000000000000000000000000000000000000000000000E4
+:2024E0000000000000000000000000000000000000000000000000000000000000000000DC
+:2024E8000000000000000000000000000000000000000000000000000000000000000000D4
+:2024F0000000000000000000000000000000000000000000000000000000000000000000CC
+:2024F8000000000000000000000000000000000000000000000000000000000000000000C4
+:202500000000000000000000000000000000000000000000000000000000000000000000BB
+:202508000000000000000000000000000000000000000000000000000000000000000000B3
+:202510000000000000000000000000000000000000000000000000000000000000000000AB
+:202518000000000000000000000000000000000000000000000000000000000000000000A3
+:2025200000000000000000000000000000000000000000000000000000000000000000009B
+:20252800000000000000000000000000000000000000000000000000000000000000000093
+:2025300000000000000000000000000000000000000000000000000000000000000000008B
+:20253800000000000000000000000000000000000000000000000000000000000000000083
+:2025400000000000000000000000000000000000000000000000000000000000000000007B
+:20254800000000000000000000000000000000000000000000000000000000000000000073
+:2025500000000000000000000000000000000000000000000000000000000000000000006B
+:20255800000000000000000000000000000000000000000000000000000000000000000063
+:2025600000000000000000000000000000000000000000000000000000000000000000005B
+:20256800000000000000000000000000000000000000000000000000000000000000000053
+:2025700000000000000000000000000000000000000000000000000000000000000000004B
+:20257800000000000000000000000000000000000000000000000000000000000000000043
+:2025800000000000000000000000000000000000000000000000000000000000000000003B
+:20258800000000000000000000000000000000000000000000000000000000000000000033
+:2025900000000000000000000000000000000000000000000000000000000000000000002B
+:20259800000000000000000000000000000000000000000000000000000000000000000023
+:2025A00000000000000000000000000000000000000000000000000000000000000000001B
+:2025A800000000000000000000000000000000000000000000000000000000000000000013
+:2025B00000000000000000000000000000000000000000000000000000000000000000000B
+:2025B800000000000000000000000000000000000000000000000000000000000000000003
+:2025C0000000000000000000000000000000000000000000000000000000000000000000FB
+:2025C8000000000000000000000000000000000000000000000000000000000000000000F3
+:2025D0000000000000000000000000000000000000000000000000000000000000000000EB
+:2025D8000000000000000000000000000000000000000000000000000000000000000000E3
+:2025E0000000000000000000000000000000000000000000000000000000000000000000DB
+:2025E8000000000000000000000000000000000000000000000000000000000000000000D3
+:2025F0000000000000000000000000000000000000000000000000000000000000000000CB
+:2025F8000000000000000000000000000000000000000000000000000000000000000000C3
+:202600000000000000000000000000000000000000000000000000000000000000000000BA
+:202608000000000000000000000000000000000000000000000000000000000000000000B2
+:202610000000000000000000000000000000000000000000000000000000000000000000AA
+:202618000000000000000000000000000000000000000000000000000000000000000000A2
+:2026200000000000000000000000000000000000000000000000000000000000000000009A
+:20262800000000000000000000000000000000000000000000000000000000000000000092
+:2026300000000000000000000000000000000000000000000000000000000000000000008A
+:20263800000000000000000000000000000000000000000000000000000000000000000082
+:2026400000000000000000000000000000000000000000000000000000000000000000007A
+:20264800000000000000000000000000000000000000000000000000000000000000000072
+:2026500000000000000000000000000000000000000000000000000000000000000000006A
+:20265800000000000000000000000000000000000000000000000000000000000000000062
+:2026600000000000000000000000000000000000000000000000000000000000000000005A
+:20266800000000000000000000000000000000000000000000000000000000000000000052
+:2026700000000000000000000000000000000000000000000000000000000000000000004A
+:20267800000000000000000000000000000000000000000000000000000000000000000042
+:2026800000000000000000000000000000000000000000000000000000000000000000003A
+:20268800000000000000000000000000000000000000000000000000000000000000000032
+:2026900000000000000000000000000000000000000000000000000000000000000000002A
+:20269800000000000000000000000000000000000000000000000000000000000000000022
+:2026A00000000000000000000000000000000000000000000000000000000000000000001A
+:2026A800000000000000000000000000000000000000000000000000000000000000000012
+:2026B00000000000000000000000000000000000000000000000000000000000000000000A
+:2026B800000000000000000000000000000000000000000000000000000000000000000002
+:2026C0000000000000000000000000000000000000000000000000000000000000000000FA
+:2026C8000000000000000000000000000000000000000000000000000000000000000000F2
+:2026D0000000000000000000000000000000000000000000000000000000000000000000EA
+:2026D8000000000000000000000000000000000000000000000000000000000000000000E2
+:2026E0000000000000000000000000000000000000000000000000000000000000000000DA
+:2026E8000000000000000000000000000000000000000000000000000000000000000000D2
+:2026F0000000000000000000000000000000000000000000000000000000000000000000CA
+:2026F8000000000000000000000000000000000000000000000000000000000000000000C2
+:202700000000000000000000000000000000000000000000000000000000000000000000B9
+:202708000000000000000000000000000000000000000000000000000000000000000000B1
+:202710000000000000000000000000000000000000000000000000000000000000000000A9
+:202718000000000000000000000000000000000000000000000000000000000000000000A1
+:20272000000000000000000000000000000000000000000000000000000000000000000099
+:20272800000000000000000000000000000000000000000000000000000000000000000091
+:20273000000000000000000000000000000000000000000000000000000000000000000089
+:20273800000000000000000000000000000000000000000000000000000000000000000081
+:20274000000000000000000000000000000000000000000000000000000000000000000079
+:20274800000000000000000000000000000000000000000000000000000000000000000071
+:20275000000000000000000000000000000000000000000000000000000000000000000069
+:20275800000000000000000000000000000000000000000000000000000000000000000061
+:20276000000000000000000000000000000000000000000000000000000000000000000059
+:20276800000000000000000000000000000000000000000000000000000000000000000051
+:20277000000000000000000000000000000000000000000000000000000000000000000049
+:20277800000000000000000000000000000000000000000000000000000000000000000041
+:20278000000000000000000000000000000000000000000000000000000000000000000039
+:20278800000000000000000000000000000000000000000000000000000000000000000031
+:20279000000000000000000000000000000000000000000000000000000000000000000029
+:20279800000000000000000000000000000000000000000000000000000000000000000021
+:2027A000000000000000000000000000000000000000000000000000000000000000000019
+:2027A800000000000000000000000000000000000000000000000000000000000000000011
+:2027B000000000000000000000000000000000000000000000000000000000000000000009
+:2027B800000000000000000000000000000000000000000000000000000000000000000001
+:2027C0000000000000000000000000000000000000000000000000000000000000000000F9
+:2027C8000000000000000000000000000000000000000000000000000000000000000000F1
+:2027D0000000000000000000000000000000000000000000000000000000000000000000E9
+:2027D8000000000000000000000000000000000000000000000000000000000000000000E1
+:2027E0000000000000000000000000000000000000000000000000000000000000000000D9
+:2027E8000000000000000000000000000000000000000000000000000000000000000000D1
+:2027F0000000000000000000000000000000000000000000000000000000000000000000C9
+:2027F8000000000000000000000000000000000000000000000000000000000000000000C1
:00000001FF
diff --git a/software/sys_controller/memory/flash.c b/software/sys_controller/memory/flash.c
index e5876a9..8cbfa54 100644
--- a/software/sys_controller/memory/flash.c
+++ b/software/sys_controller/memory/flash.c
@@ -36,7 +36,8 @@ int check_flash()
if ((epcq_controller_dev == NULL) || !(epcq_controller_dev->is_epcs && (epcq_controller_dev->page_size == PAGESIZE)))
return -1;
- //printf("Flash size in bytes: %d\nSector size: %d (%d pages)\nPage size: %d\n", epcq_controller_dev->size_in_bytes, epcq_controller_dev->sector_size, epcq_controller_dev->sector_size/epcq_controller_dev->page_size, epcq_controller_dev->page_size);
+ printf("Flash size in bytes: %d\nSector size: %d (%d pages)\nPage size: %d\n",
+ epcq_controller_dev->size_in_bytes, epcq_controller_dev->sector_size, epcq_controller_dev->sector_size/epcq_controller_dev->page_size, epcq_controller_dev->page_size);
return 0;
}
diff --git a/software/sys_controller/memory/sdcard.c b/software/sys_controller/memory/sdcard.c
index c998b64..c5c613e 100644
--- a/software/sys_controller/memory/sdcard.c
+++ b/software/sys_controller/memory/sdcard.c
@@ -23,45 +23,19 @@
extern char menu_row1[LCD_ROW_LEN+1], menu_row2[LCD_ROW_LEN+1];
-alt_up_sd_card_dev *sdcard_dev;
-
-
-int read_sd_block(alt_u32 offset, alt_u32 size, alt_u8 *dstbuf)
-{
- /*int i;
- alt_u32 tmp;
-
- if ((offset % SD_BUFFER_SIZE) || (size > 512)) {
- sniprintf(menu_row1, LCD_ROW_LEN+1, "Invalid read cmd");
- menu_row2[0] = '\0';
- return -1;
- }
-
- if (!Read_Sector_Data((offset/SD_BUFFER_SIZE), 0)) {
- sniprintf(menu_row1, LCD_ROW_LEN+1, "SD read failure");
- menu_row2[0] = '\0';
- return -2;
- }
-
- // Copy buffer to SW
- for (i=0; ibase, i);
- *((alt_u32*)(dstbuf+i)) = tmp;
- }
-*/
- return 0;
-}
+SD_DEV sdcard_dev;
int check_sdcard(alt_u8 *databuf)
{
- /* sdcard_dev = alt_up_sd_card_open_dev(ALTERA_UP_SD_CARD_AVALON_INTERFACE_0_NAME);
+ SDRESULTS res;
- if ((sdcard_dev == NULL) || !alt_up_sd_card_is_Present()) {
+ res = SD_Init(&sdcard_dev);
+ printf("SD det status: %u\n", res);
+ if (res) {
sniprintf(menu_row1, LCD_ROW_LEN+1, "No SD card det.");
menu_row2[0] = '\0';
return 1;
}
- return read_sd_block(0, 512, databuf);*/
- return 0;
+ return SD_Read(&sdcard_dev, databuf, 0, 0, 512);
}
diff --git a/software/sys_controller/memory/sdcard.h b/software/sys_controller/memory/sdcard.h
index 708732c..5f4a78e 100644
--- a/software/sys_controller/memory/sdcard.h
+++ b/software/sys_controller/memory/sdcard.h
@@ -22,12 +22,7 @@
#include "alt_types.h"
#include "sysconfig.h"
-#include "Altera_UP_SD_Card_Avalon_Interface_mod.h"
-
-// SD controller uses 512-byte chunks
-#define SD_BUFFER_SIZE 512
-
-int read_sd_block(alt_u32 offset, alt_u32 size, alt_u8 *dstbuf);
+#include "sd_io.h"
int check_sdcard(alt_u8 *databuf);
diff --git a/software/sys_controller/ossc/av_controller.c b/software/sys_controller/ossc/av_controller.c
index 24e8468..e74479a 100644
--- a/software/sys_controller/ossc/av_controller.c
+++ b/software/sys_controller/ossc/av_controller.c
@@ -32,13 +32,13 @@
#include "sdcard.h"
#include "menu.h"
#include "avconfig.h"
-#include "sysconfig.h"
#include "firmware.h"
#include "userdata.h"
#include "it6613.h"
#include "it6613_sys.h"
#include "HDMI_TX.h"
#include "hdmitx.h"
+#include "sd_io.h"
#define STABLE_THOLD 1
#define MIN_LINES_PROGRESSIVE 200
@@ -47,6 +47,8 @@
#define SYNC_LOSS_THOLD -5
#define STATUS_TIMEOUT 10000
+alt_u8 sys_ctrl;
+
// Current mode
avmode_t cm;
@@ -101,7 +103,7 @@ inline void TX_enable(tx_mode_t mode)
void set_lpf(alt_u8 lpf)
{
alt_u32 pclk;
- pclk = (clkrate[REFCLK_EXT27]/cm.clkcnt)*video_modes[cm.id].h_total;
+ pclk = (TVP_EXTCLK_HZ/cm.clkcnt)*video_modes[cm.id].h_total;
printf("PCLK_in: %luHz\n", pclk);
//Auto
@@ -353,8 +355,8 @@ void program_mode()
stable_frames = STABLE_THOLD;
if ((cm.clkcnt != 0) && (cm.totlines != 0)) { //prevent div by 0
- h_hz = clkrate[REFCLK_EXT27]/cm.clkcnt;
- v_hz_x100 = cm.progressive ? ((100*clkrate[REFCLK_EXT27])/cm.totlines)/cm.clkcnt : (2*((100*clkrate[REFCLK_EXT27])/cm.totlines))/cm.clkcnt;
+ h_hz = TVP_EXTCLK_HZ/cm.clkcnt;
+ v_hz_x100 = cm.progressive ? ((100*TVP_EXTCLK_HZ)/cm.totlines)/cm.clkcnt : (2*((100*TVP_EXTCLK_HZ)/cm.totlines))/cm.clkcnt;
} else {
h_hz = 15700;
v_hz_x100 = 6000;
@@ -440,15 +442,16 @@ int init_hw()
{
alt_u32 chiprev;
- // Reset error vector and scan converter
- IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, 0x03);
+ // Reset hardware
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, AV_RESET_N|LCD_BL);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, 0x00);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_2_BASE, 0x00000000);
IOWR_ALTERA_AVALON_PIO_DATA(PIO_3_BASE, 0x00000000);
usleep(10000);
// unreset hw
- IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, 0x03);
+ sys_ctrl = AV_RESET_N|LCD_BL|SD_SPI_SS_N|LCD_CS_N;
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
//wait >500ms for SD card interface to be stable
//over 200ms and LCD may be buggy?
@@ -456,6 +459,7 @@ int init_hw()
// IT6613 officially supports only 100kHz, but 400kHz seems to work
I2C_init(I2CA_BASE,ALT_CPU_FREQ,400000);
+ //I2C_init(I2C_OPENCORES_1_BASE,ALT_CPU_FREQ,400000);
/* Initialize the character display */
lcd_init();
@@ -657,7 +661,8 @@ int main()
case ACTIVITY_CHANGE:
if (cm.sync_active) {
printf("Sync up\n");
- IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, (IORD_ALTERA_AVALON_PIO_DATA(PIO_0_BASE) | (1<<2))); //disable videogen
+ sys_ctrl |= VIDGEN_OFF;
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
enable_outputs();
} else {
printf("Sync lost\n");
diff --git a/software/sys_controller/ossc/av_controller.h b/software/sys_controller/ossc/av_controller.h
index 7f88514..63813e8 100644
--- a/software/sys_controller/ossc/av_controller.h
+++ b/software/sys_controller/ossc/av_controller.h
@@ -21,9 +21,18 @@
#define AV_CONTROLLER_H_
#include "avconfig.h"
+#include "sysconfig.h"
#define HDMITX_MODE_MASK 0x00040000
+//sys_ctrl bits
+#define SD_SPI_SS_N (1<<7)
+#define LCD_CS_N (1<<6)
+#define LCD_RS (1<<5)
+#define LCD_BL (1<<4)
+#define VIDGEN_OFF (1<<1)
+#define AV_RESET_N (1<<0)
+
static const char *avinput_str[] = { "Test pattern", "AV1: RGBS", "AV1: RGsB", "AV1: YPbPr", "AV2: YPbPr", "AV2: RGsB", "AV3: RGBHV", "AV3: RGBS", "AV3: RGsB", "AV3: YPbPr" };
typedef enum {
diff --git a/software/sys_controller/ossc/controls.c b/software/sys_controller/ossc/controls.c
index 9e3e615..ab6fe5e 100644
--- a/software/sys_controller/ossc/controls.c
+++ b/software/sys_controller/ossc/controls.c
@@ -20,7 +20,6 @@
#include
#include
#include "alt_types.h"
-#include "sysconfig.h"
#include "controls.h"
#include "menu.h"
#include "av_controller.h"
@@ -37,6 +36,7 @@ extern avmode_t cm;
extern avconfig_t tc;
extern avinput_t target_mode;
extern alt_u8 menu_active;
+extern alt_u8 sys_ctrl;
alt_u32 remote_code;
alt_u8 remote_rpt, remote_rpt_prev;
@@ -71,7 +71,6 @@ void setup_rc()
confirm = 0;
}
}
-
}
remote_code_prev = remote_code;
@@ -128,7 +127,8 @@ void parse_control()
printf("Lines: %u M: %u\n", IORD_ALTERA_AVALON_PIO_DATA(PIO_4_BASE) & 0xffff, cm.macrovis);
break;
case RC_LCDBL:
- IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, (IORD_ALTERA_AVALON_PIO_DATA(PIO_0_BASE) ^ (1<<1)));
+ sys_ctrl ^= LCD_BL;
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
break;
case RC_SL_MODE: tc.sl_mode = (tc.sl_mode < SL_MODE_MAX) ? (tc.sl_mode + 1) : 0; break;
case RC_SL_TYPE: tc.sl_type = (tc.sl_type < SL_TYPE_MAX) ? (tc.sl_type + 1) : 0; break;
diff --git a/software/sys_controller/ossc/controls.h b/software/sys_controller/ossc/controls.h
index 0516617..e6a81d9 100644
--- a/software/sys_controller/ossc/controls.h
+++ b/software/sys_controller/ossc/controls.h
@@ -20,6 +20,8 @@
#ifndef CONTROLS_H_
#define CONTROLS_H_
+#include "sysconfig.h"
+
#define RC_MASK 0x0000ffff
#define PB_MASK 0x00030000
#define PB0_BIT 0x00010000
diff --git a/software/sys_controller/ossc/firmware.c b/software/sys_controller/ossc/firmware.c
index b56f073..276343e 100644
--- a/software/sys_controller/ossc/firmware.c
+++ b/software/sys_controller/ossc/firmware.c
@@ -22,7 +22,6 @@
#include "firmware.h"
#include "sdcard.h"
#include "flash.h"
-#include "sysconfig.h"
#include "controls.h"
#include "tvp7002.h"
#include "av_controller.h"
@@ -32,6 +31,8 @@
extern char menu_row1[LCD_ROW_LEN+1], menu_row2[LCD_ROW_LEN+1];
extern alt_u16 rc_keymap[REMOTE_MAX_KEYS];
+extern SD_DEV sdcard_dev;
+extern alt_u8 sys_ctrl;
static int check_fw_header(alt_u8 *databuf, fw_hdr *hdr)
{
@@ -81,9 +82,11 @@ static int check_fw_image(alt_u32 offset, alt_u32 size, alt_u32 golden_crc, alt_
alt_u32 crcval=0, i, bytes_to_read;
int retval;
- for (i=0; i", OPT_SUBMENU, { .sub = { &menu_sync, NULL } } },
{ "Output opt. >", OPT_SUBMENU, { .sub = { &menu_output, NULL } } },
{ "Post-proc. >", OPT_SUBMENU, { .sub = { &menu_postproc, NULL } } },
- { "", OPT_FUNC_CALL, { .fun = { fw_update, "OK - pls restart" } } },
- { "", OPT_FUNC_CALL, { .fun = { set_default_avconfig, "Reset done" } } },
- { "", OPT_FUNC_CALL, { .fun = { write_userdata, "Saved" } } },
+ { "", OPT_FUNC_CALL, { .fun = { fw_update, "OK - pls restart", "failed" } } },
+ { "", OPT_FUNC_CALL, { .fun = { set_default_avconfig, "Reset done", "" } } },
+ { "", OPT_FUNC_CALL, { .fun = { write_userdata, "Saved", "failed" } } },
}))
// Max 3 levels currently
@@ -237,9 +237,9 @@ void display_menu(alt_u8 forcedisp)
break;
case OPT_FUNC_CALL:
if (code == OPT_SELECT)
- sniprintf(menu_row2, LCD_ROW_LEN+1, "%s", (retval==0) ? navi[navlvl].m->items[navi[navlvl].mp].fun.text_success : "failed");
+ sniprintf(menu_row2, LCD_ROW_LEN+1, "%s", (retval==0) ? navi[navlvl].m->items[navi[navlvl].mp].fun.text_success : navi[navlvl].m->items[navi[navlvl].mp].fun.text_failure);
else
- menu_row2[0] = 0;
+ menu_row2[0] = 0;
break;
default:
break;
diff --git a/software/sys_controller/ossc/menu.h b/software/sys_controller/ossc/menu.h
index d6db82c..3df8ff3 100644
--- a/software/sys_controller/ossc/menu.h
+++ b/software/sys_controller/ossc/menu.h
@@ -62,6 +62,7 @@ typedef struct {
typedef struct {
func_call f;
char *text_success;
+ char *text_failure;
} opt_func_call;
typedef struct menustruct menu_t;
diff --git a/software/sys_controller/ossc/sysconfig.h b/software/sys_controller/ossc/sysconfig.h
index 418f1be..9195574 100644
--- a/software/sys_controller/ossc/sysconfig.h
+++ b/software/sys_controller/ossc/sysconfig.h
@@ -20,6 +20,10 @@
#ifndef SYSCONFIG_H_
#define SYSCONFIG_H_
+//#define I2C_DEBUG
+#define I2CA_BASE I2C_OPENCORES_0_BASE
+#define SD_SPI_BASE I2C_OPENCORES_1_BASE
+
#ifndef DEBUG
#define OS_PRINTF(...)
#define ErrorF(...)
diff --git a/software/sys_controller/ossc/userdata.c b/software/sys_controller/ossc/userdata.c
index 04bf5e1..7eb99dd 100644
--- a/software/sys_controller/ossc/userdata.c
+++ b/software/sys_controller/ossc/userdata.c
@@ -19,7 +19,6 @@
#include
#include "userdata.h"
-#include "sysconfig.h"
#include "flash.h"
#include "firmware.h"
#include "controls.h"
diff --git a/software/sys_controller/ossc/userdata.h b/software/sys_controller/ossc/userdata.h
index 1778853..b6d437f 100644
--- a/software/sys_controller/ossc/userdata.h
+++ b/software/sys_controller/ossc/userdata.h
@@ -21,6 +21,7 @@
#define USERDATA_H_
#include "alt_types.h"
+#include "sysconfig.h"
#define USERDATA_HDR_SIZE 11
typedef struct {
diff --git a/software/sys_controller/spi_charlcd/lcd.c b/software/sys_controller/spi_charlcd/lcd.c
index 7ba12ee..ddfc4ea 100644
--- a/software/sys_controller/spi_charlcd/lcd.c
+++ b/software/sys_controller/spi_charlcd/lcd.c
@@ -23,6 +23,7 @@
#include "alt_types.h"
#include "altera_avalon_pio_regs.h"
#include "i2c_opencores.h"
+#include "av_controller.h"
#define LCD_CMD 0x00
#define LCD_DATA 0x40
@@ -30,50 +31,46 @@
#define WRDELAY 20
#define CLEARDELAY 800
+extern alt_u8 sys_ctrl;
+
+static void lcd_cmd(alt_u8 cmd, alt_u16 postdelay) {
+ SPI_write(I2CA_BASE, &cmd, 1);
+ usleep(postdelay);
+}
+
void lcd_init()
{
- alt_u8 lcd_ctrl = 0x00;
- IOWR_ALTERA_AVALON_PIO_DATA(PIO_5_BASE, lcd_ctrl);
+ sys_ctrl &= ~(LCD_CS_N|LCD_RS);
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x38); // function set
- usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x39); // function set, select extended table (IS=1)
- usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x14); // osc freq
- usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x71); // contrast set
- usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x5E); // power/icon/cont
- usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x6D); // follower control
- usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x0C); // display on
- usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x01); // clear display
- usleep(CLEARDELAY);
- SPI_write(I2CA_BASE, 0x06); // entry mode set
- usleep(WRDELAY);
- SPI_write(I2CA_BASE, 0x02); // return home
- usleep(CLEARDELAY);
+ lcd_cmd(0x38,WRDELAY); // function set
+ lcd_cmd(0x39,WRDELAY); // function set, select extended table (IS=1)
+ lcd_cmd(0x14,WRDELAY); // osc freq
+ lcd_cmd(0x71,WRDELAY); // contrast set
+ lcd_cmd(0x5E,WRDELAY); // power/icon/cont
+ lcd_cmd(0x6D,WRDELAY); // follower control
+ lcd_cmd(0x0C,WRDELAY); // display on
+ lcd_cmd(0x01,CLEARDELAY); // clear display
+ lcd_cmd(0x06,WRDELAY); // entry mode set
+ lcd_cmd(0x02,CLEARDELAY); // return home
- lcd_ctrl |= LCD_CS_N;
- IOWR_ALTERA_AVALON_PIO_DATA(PIO_5_BASE, lcd_ctrl);
+ sys_ctrl |= LCD_CS_N;
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
}
void lcd_write(char *row1, char *row2)
{
alt_u8 i, rowlen;
- alt_u8 lcd_ctrl = 0x00;
- IOWR_ALTERA_AVALON_PIO_DATA(PIO_5_BASE, lcd_ctrl);
+ sys_ctrl &= ~(LCD_CS_N|LCD_RS);
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
- SPI_write(I2CA_BASE, 0x01); // clear display
- usleep(CLEARDELAY);
+ lcd_cmd(0x01,CLEARDELAY); // clear display
// Set RS to enter data write mode
- lcd_ctrl |= LCD_RS;
- IOWR_ALTERA_AVALON_PIO_DATA(PIO_5_BASE, lcd_ctrl);
+ sys_ctrl |= LCD_RS;
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
//ensure no empty row
rowlen = strnlen(row1, LCD_ROW_LEN);
@@ -82,19 +79,16 @@ void lcd_write(char *row1, char *row2)
rowlen++;
}
- for (i=0; i
-
+#include
+#if 0
/* 16-bit, 32-bit or larger integer */
typedef int16_t INT;
typedef uint16_t UINT;
@@ -37,8 +38,8 @@ typedef uint32_t DWORD;
/* Boolean type */
typedef enum { FALSE = 0, TRUE } BOOLEAN;
+#endif
typedef enum { LOW = 0, HIGH } THROTTLE;
-
#endif
// «integer.h» is part of:
diff --git a/software/sys_controller/ulibSD/sd_io.c b/software/sys_controller/ulibSD/sd_io.c
index aab56c1..dc5bca2 100644
--- a/software/sys_controller/ulibSD/sd_io.c
+++ b/software/sys_controller/ulibSD/sd_io.c
@@ -109,6 +109,7 @@ void __SD_Speed_Transfer(BYTE throttle) {
BYTE __SD_Send_Cmd(BYTE cmd, DWORD arg)
{
+ BYTE wiredata[10];
BYTE crc, res;
// ACMD«n» is the command sequense of CMD55-CMD«n»
if(cmd & 0x80) {
@@ -118,29 +119,29 @@ BYTE __SD_Send_Cmd(BYTE cmd, DWORD arg)
}
// Select the card
- __SD_Deassert();
- SPI_RW(0xFF);
__SD_Assert();
- SPI_RW(0xFF);
+
// Send complete command set
- SPI_RW(cmd); // Start and command index
- SPI_RW((BYTE)(arg >> 24)); // Arg[31-24]
- SPI_RW((BYTE)(arg >> 16)); // Arg[23-16]
- SPI_RW((BYTE)(arg >> 8 )); // Arg[15-08]
- SPI_RW((BYTE)(arg >> 0 )); // Arg[07-00]
+ wiredata[0] = cmd; // Start and command index
+ wiredata[1] = (arg >> 24); // Arg[31-24]
+ wiredata[2] = (arg >> 16); // Arg[23-16]
+ wiredata[3] = (arg >> 8 ); // Arg[15-08]
+ wiredata[4] = (arg >> 0 ); // Arg[07-00]
// CRC?
crc = 0x01; // Dummy CRC and stop
if(cmd == CMD0) crc = 0x95; // Valid CRC for CMD0(0)
if(cmd == CMD8) crc = 0x87; // Valid CRC for CMD8(0x1AA)
- SPI_RW(crc);
+ wiredata[5] = crc;
+
+ SPI_W(wiredata, 6);
// Receive command response
// Wait for a valid response in timeout of 5 milliseconds
SPI_Timer_On(5);
do {
- res = SPI_RW(0xFF);
+ SPI_R(&res, 1);
} while((res & 0x80)&&(SPI_Timer_Status()==TRUE));
SPI_Timer_Off();
// Return with the response value
@@ -185,8 +186,8 @@ SDRESULTS __SD_Write_Block(SD_DEV *dev, void *dat, BYTE token)
DWORD __SD_Sectors (SD_DEV *dev)
{
- BYTE csd[16];
- BYTE idx;
+ BYTE csd[18];
+ BYTE tkn;
DWORD ss = 0;
WORD C_SIZE = 0;
BYTE C_SIZE_MULT = 0;
@@ -194,12 +195,18 @@ DWORD __SD_Sectors (SD_DEV *dev)
if(__SD_Send_Cmd(CMD9, 0)==0)
{
// Wait for response
- while (SPI_RW(0xFF) == 0xFF);
- for (idx=0; idx!=16; idx++) csd[idx] = SPI_RW(0xFF);
- // Dummy CRC
- SPI_RW(0xFF);
- SPI_RW(0xFF);
- SPI_Release();
+ SPI_Timer_On(5); // Wait for data packet (timeout of 5ms)
+ do {
+ SPI_R(&tkn, 1);
+ } while((tkn==0xFF)&&(SPI_Timer_Status()==TRUE));
+ SPI_Timer_Off();
+
+ if(tkn!=0xFE)
+ return 0;
+
+ // TODO: CRC check
+ SPI_R(csd, 18);
+
if(dev->cardtype & SDCT_SD1)
{
ss = csd[0];
@@ -225,12 +232,15 @@ DWORD __SD_Sectors (SD_DEV *dev)
C_SIZE <<= 8;
C_SIZE |= (csd[9] & 0xFF);
// C_SIZE_MULT [--]. don't exits
- C_SIZE_MULT = 0;
+ C_SIZE_MULT = 17; //C_SIZE_MULT+2 = 19
+ printf("csize: %u\n", C_SIZE);
}
ss = (C_SIZE + 1);
- ss *= __SD_Power_Of_Two(C_SIZE_MULT + 2);
- ss *= __SD_Power_Of_Two(READ_BL_LEN);
- ss /= SD_BLK_SIZE;
+ // SD_BLK_SIZE = 2^9
+ //ss *= __SD_Power_Of_Two(C_SIZE_MULT + 2 + READ_BL_LEN - 9);
+ ss *= 1 << (C_SIZE_MULT + 2 + READ_BL_LEN - 9);
+ //ss /= SD_BLK_SIZE;
+ printf("ss: %u\n", ss);
return (ss);
} else return (0); // Error
}
@@ -242,6 +252,7 @@ DWORD __SD_Sectors (SD_DEV *dev)
SDRESULTS SD_Init(SD_DEV *dev)
{
+ BYTE initdata[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
#if defined(_M_IX86) // x86
dev->fp = fopen(dev->fn, "r+");
if (dev->fp == NULL)
@@ -265,67 +276,68 @@ SDRESULTS SD_Init(SD_DEV *dev)
// Initialize SPI for use with the memory card
SPI_Init();
- SPI_CS_High();
+ __SD_Deassert();
SPI_Freq_Low();
// 80 dummy clocks
- for(idx = 0; idx != 10; idx++) SPI_RW(0xFF);
+ //for(idx = 0; idx != 10; idx++) SPI_RW(0xFF);
+ SPI_W(initdata, sizeof(initdata));
- SPI_Timer_On(500);
+ /*SPI_Timer_On(500);
while(SPI_Timer_Status()==TRUE);
- SPI_Timer_Off();
+ SPI_Timer_Off();*/
dev->mount = FALSE;
SPI_Timer_On(500);
while ((__SD_Send_Cmd(CMD0, 0) != 1)&&(SPI_Timer_Status()==TRUE));
SPI_Timer_Off();
// Idle state
- if (__SD_Send_Cmd(CMD0, 0) == 1) {
- // SD version 2?
- if (__SD_Send_Cmd(CMD8, 0x1AA) == 1) {
- // Get trailing return value of R7 resp
- for (n = 0; n < 4; n++) ocr[n] = SPI_RW(0xFF);
- // VDD range of 2.7-3.6V is OK?
- if ((ocr[2] == 0x01)&&(ocr[3] == 0xAA))
- {
- // Wait for leaving idle state (ACMD41 with HCS bit)...
- SPI_Timer_On(1000);
- while ((SPI_Timer_Status()==TRUE)&&(__SD_Send_Cmd(ACMD41, 1UL << 30)));
- SPI_Timer_Off();
- // CCS in the OCR?
- if ((SPI_Timer_Status()==TRUE)&&(__SD_Send_Cmd(CMD58, 0) == 0))
- {
- for (n = 0; n < 4; n++) ocr[n] = SPI_RW(0xFF);
- // SD version 2?
- ct = (ocr[0] & 0x40) ? SDCT_SD2 | SDCT_BLOCK : SDCT_SD2;
- }
- }
- } else {
- // SD version 1 or MMC?
- if (__SD_Send_Cmd(ACMD41, 0) <= 1)
- {
- // SD version 1
- ct = SDCT_SD1;
- cmd = ACMD41;
- } else {
- // MMC version 3
- ct = SDCT_MMC;
- cmd = CMD1;
- }
- // Wait for leaving idle state
- SPI_Timer_On(250);
- while((SPI_Timer_Status()==TRUE)&&(__SD_Send_Cmd(cmd, 0)));
+
+ // SD version 2?
+ if (__SD_Send_Cmd(CMD8, 0x1AA) == 1) {
+ // Get trailing return value of R7 resp
+ SPI_R(ocr, 4);
+ // VDD range of 2.7-3.6V is OK?
+ if ((ocr[2] == 0x01)&&(ocr[3] == 0xAA))
+ {
+ // Wait for leaving idle state (ACMD41 with HCS bit)...
+ SPI_Timer_On(1000);
+ while ((SPI_Timer_Status()==TRUE)&&(__SD_Send_Cmd(ACMD41, 1UL << 30)));
SPI_Timer_Off();
- if(SPI_Timer_Status()==FALSE) ct = 0;
- if(__SD_Send_Cmd(CMD59, 0)) ct = 0; // Deactivate CRC check (default)
- if(__SD_Send_Cmd(CMD16, 512)) ct = 0; // Set R/W block length to 512 bytes
+ // CCS in the OCR?
+ if ((SPI_Timer_Status()==TRUE)&&(__SD_Send_Cmd(CMD58, 0) == 0))
+ {
+ SPI_R(ocr, 4);
+ // SD version 2?
+ ct = (ocr[0] & 0x40) ? SDCT_SD2 | SDCT_BLOCK : SDCT_SD2;
+ }
}
+ } else {
+ // SD version 1 or MMC?
+ if (__SD_Send_Cmd(ACMD41, 0) <= 1)
+ {
+ // SD version 1
+ ct = SDCT_SD1;
+ cmd = ACMD41;
+ } else {
+ // MMC version 3
+ ct = SDCT_MMC;
+ cmd = CMD1;
+ }
+ // Wait for leaving idle state
+ SPI_Timer_On(250);
+ while((SPI_Timer_Status()==TRUE)&&(__SD_Send_Cmd(cmd, 0)));
+ SPI_Timer_Off();
+ if(SPI_Timer_Status()==FALSE) ct = 0;
+ if(__SD_Send_Cmd(CMD59, 0)) ct = 0; // Deactivate CRC check (default)
+ if(__SD_Send_Cmd(CMD16, 512)) ct = 0; // Set R/W block length to 512 bytes
}
}
if(ct) {
dev->cardtype = ct;
dev->mount = TRUE;
dev->last_sector = __SD_Sectors(dev) - 1;
+ printf("lastsec %u\n", dev->last_sector);
#ifdef SD_IO_DBG_COUNT
dev->debug.read = 0;
dev->debug.write = 0;
@@ -365,11 +377,14 @@ SDRESULTS SD_Read(SD_DEV *dev, void *dat, DWORD sector, WORD ofs, WORD cnt)
WORD remaining;
res = SD_ERROR;
if ((sector > dev->last_sector)||(cnt == 0)) return(SD_PARERR);
- // Convert sector number to byte address (sector * SD_BLK_SIZE)
- if (__SD_Send_Cmd(CMD17, sector * SD_BLK_SIZE) == 0) {
+ // Convert sector number to byte address (sector * SD_BLK_SIZE) for SDC1
+ if (!(dev->cardtype & SDCT_BLOCK))
+ sector *= SD_BLK_SIZE;
+
+ if (__SD_Send_Cmd(CMD17, sector) == 0) {
SPI_Timer_On(100); // Wait for data packet (timeout of 100ms)
do {
- tkn = SPI_RW(0xFF);
+ SPI_R(&tkn, 1);
} while((tkn==0xFF)&&(SPI_Timer_Status()==TRUE));
SPI_Timer_Off();
// Token of single block?
@@ -377,20 +392,14 @@ SDRESULTS SD_Read(SD_DEV *dev, void *dat, DWORD sector, WORD ofs, WORD cnt)
// Size block (512 bytes) + CRC (2 bytes) - offset - bytes to count
remaining = SD_BLK_SIZE + 2 - ofs - cnt;
// Skip offset
- if(ofs) {
- do {
- SPI_RW(0xFF);
- } while(--ofs);
+ if(ofs) {
+ SPI_R(NULL, ofs);
}
// I receive the data and I write in user's buffer
- do {
- *(BYTE*)dat = SPI_RW(0xFF);
- dat++;
- } while(--cnt);
+ SPI_R((BYTE*)dat, cnt);
// Skip remaining
- do {
- SPI_RW(0xFF);
- } while (--remaining);
+ // TODO: CRC
+ SPI_R(NULL, remaining);
res = SD_OK;
}
}
diff --git a/software/sys_controller/ulibSD/sd_io.h b/software/sys_controller/ulibSD/sd_io.h
index 3bbb38c..23f7ae3 100644
--- a/software/sys_controller/ulibSD/sd_io.h
+++ b/software/sys_controller/ulibSD/sd_io.h
@@ -56,6 +56,8 @@ typedef struct _SD_DEV {
#else // For use with uControllers
+#include "sysconfig.h"
+#include "stddef.h"
#include "spi_io.h" /* Provide the low-level functions */
/* Definitions of SD commands */
diff --git a/software/sys_controller/ulibSD/spi_io.c b/software/sys_controller/ulibSD/spi_io.c
index c27e0b0..f2f4228 100644
--- a/software/sys_controller/ulibSD/spi_io.c
+++ b/software/sys_controller/ulibSD/spi_io.c
@@ -1,16 +1,35 @@
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include "i2c_opencores.h"
#include "spi_io.h"
+#include "av_controller.h"
-#define SD_SLAVE_ID 0
+extern alt_u8 sys_ctrl;
+
+alt_u32 sd_timer_ts;
void SPI_Init (void) {
- return;
+ I2C_init(SD_SPI_BASE,ALT_CPU_FREQ,400000);
+}
+
+void SPI_W(BYTE *wd, int len) {
+ SPI_write(SD_SPI_BASE, wd, len);
+}
+
+void SPI_R(BYTE *rd, int len) {
+ SPI_read(SD_SPI_BASE, rd, len);
}
BYTE SPI_RW (BYTE d) {
- BYTE rdata;
+ BYTE w;
+ SPI_R(&w, 1);
- alt_avalon_spi_command(SPI_0_BASE, SD_SLAVE_ID, 1, &d, 1, &rdata, 0);
- return rdata;
+ return w;
}
void SPI_Release (void) {
@@ -18,29 +37,32 @@ void SPI_Release (void) {
}
inline void SPI_CS_Low (void) {
- return;
+ sys_ctrl &= ~SD_SPI_SS_N;
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
}
inline void SPI_CS_High (void){
- return;
+ sys_ctrl |= SD_SPI_SS_N;
+ IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE, sys_ctrl);
}
inline void SPI_Freq_High (void) {
- return;
+ I2C_init(SD_SPI_BASE,ALT_CPU_FREQ,ALT_CPU_FREQ/SCL_MIN_CLKDIV);
}
inline void SPI_Freq_Low (void) {
- return;
+ I2C_init(SD_SPI_BASE,ALT_CPU_FREQ,400000);
}
void SPI_Timer_On (WORD ms) {
-
+ sd_timer_ts = ms*(ALT_CPU_FREQ/1000);
+ alt_timestamp_start();
}
inline BOOL SPI_Timer_Status (void) {
-
+ return alt_timestamp() < sd_timer_ts;
}
inline void SPI_Timer_Off (void) {
-
+ return;
}
diff --git a/software/sys_controller/ulibSD/spi_io.h b/software/sys_controller/ulibSD/spi_io.h
index cd36813..2400e2a 100644
--- a/software/sys_controller/ulibSD/spi_io.h
+++ b/software/sys_controller/ulibSD/spi_io.h
@@ -8,6 +8,7 @@
#ifndef _SPI_IO_H_
#define _SPI_IO_H_
+#include "sysconfig.h"
#include "integer.h" /* Type redefinition for portability */
@@ -20,6 +21,20 @@
*/
void SPI_Init (void);
+/**
+ \brief Read sequence of bytes
+ \param *rd Pointer to array where read bytes are written.
+ \param len Length of the array.
+ */
+void SPI_R (BYTE *rd, int len);
+
+/**
+ \brief Write sequence of bytes
+ \param *wd Pointer to array which holds the bytes.
+ \param len Length of the array.
+ */
+void SPI_W (BYTE *wd, int len);
+
/**
\brief Read/Write a single byte.
\param d Byte to send.
diff --git a/software/sys_controller_bsp/Makefile b/software/sys_controller_bsp/Makefile
index 8802349..1379e50 100644
--- a/software/sys_controller_bsp/Makefile
+++ b/software/sys_controller_bsp/Makefile
@@ -217,13 +217,6 @@ altera_avalon_jtag_uart_driver_C_LIB_SRCS := \
altera_avalon_pio_driver_SRCS_ROOT := drivers
# altera_avalon_pio_driver sources
-# altera_avalon_spi_driver sources root
-altera_avalon_spi_driver_SRCS_ROOT := drivers
-
-# altera_avalon_spi_driver sources
-altera_avalon_spi_driver_C_LIB_SRCS := \
- $(altera_avalon_spi_driver_SRCS_ROOT)/src/altera_avalon_spi.c
-
# altera_avalon_timer_driver sources root
altera_avalon_timer_driver_SRCS_ROOT := drivers
@@ -355,7 +348,6 @@ nios2_hw_crc32_driver_C_LIB_SRCS := \
# Assemble all component C source files
COMPONENT_C_LIB_SRCS += \
$(altera_avalon_jtag_uart_driver_C_LIB_SRCS) \
- $(altera_avalon_spi_driver_C_LIB_SRCS) \
$(altera_avalon_timer_driver_C_LIB_SRCS) \
$(altera_epcq_controller_mod_driver_C_LIB_SRCS) \
$(altera_nios2_gen2_hal_driver_C_LIB_SRCS) \
diff --git a/software/sys_controller_bsp/alt_sys_init.c b/software/sys_controller_bsp/alt_sys_init.c
index 50c29f4..562b9ae 100644
--- a/software/sys_controller_bsp/alt_sys_init.c
+++ b/software/sys_controller_bsp/alt_sys_init.c
@@ -4,7 +4,7 @@
* Machine generated for CPU 'nios2_qsys_0' in SOPC Builder design 'sys'
* SOPC Builder design path: ../../sys.sopcinfo
*
- * Generated: Sun Oct 16 12:18:06 EEST 2016
+ * Generated: Thu Oct 20 01:24:13 EEST 2016
*/
/*
@@ -60,7 +60,6 @@
#include "altera_nios2_gen2_irq.h"
#include "altera_avalon_jtag_uart.h"
-#include "altera_avalon_spi.h"
#include "altera_avalon_timer.h"
#include "altera_epcq_controller_mod.h"
#include "i2c_opencores.h"
@@ -71,10 +70,10 @@
ALTERA_NIOS2_GEN2_IRQ_INSTANCE ( NIOS2_QSYS_0, nios2_qsys_0);
ALTERA_AVALON_JTAG_UART_INSTANCE ( JTAG_UART_0, jtag_uart_0);
-ALTERA_AVALON_SPI_INSTANCE ( SPI_0, spi_0);
ALTERA_AVALON_TIMER_INSTANCE ( TIMER_0, timer_0);
ALTERA_EPCQ_CONTROLLER_MOD_AVL_MEM_AVL_CSR_INSTANCE ( EPCQ_CONTROLLER_0, EPCQ_CONTROLLER_0_AVL_MEM, EPCQ_CONTROLLER_0_AVL_CSR, epcq_controller_0);
I2C_OPENCORES_INSTANCE ( I2C_OPENCORES_0, i2c_opencores_0);
+I2C_OPENCORES_INSTANCE ( I2C_OPENCORES_1, i2c_opencores_1);
/*
* Initialize the interrupt controller devices
@@ -99,7 +98,7 @@ void alt_sys_init( void )
{
ALTERA_AVALON_TIMER_INIT ( TIMER_0, timer_0);
ALTERA_AVALON_JTAG_UART_INIT ( JTAG_UART_0, jtag_uart_0);
- ALTERA_AVALON_SPI_INIT ( SPI_0, spi_0);
ALTERA_EPCQ_CONTROLLER_MOD_INIT ( EPCQ_CONTROLLER_0, epcq_controller_0);
I2C_OPENCORES_INIT ( I2C_OPENCORES_0, i2c_opencores_0);
+ I2C_OPENCORES_INIT ( I2C_OPENCORES_1, i2c_opencores_1);
}
diff --git a/software/sys_controller_bsp/drivers/inc/i2c_opencores.h b/software/sys_controller_bsp/drivers/inc/i2c_opencores.h
index c772b67..d6817f1 100644
--- a/software/sys_controller_bsp/drivers/inc/i2c_opencores.h
+++ b/software/sys_controller_bsp/drivers/inc/i2c_opencores.h
@@ -9,15 +9,15 @@ extern "C"
{
#endif /* __cplusplus */
-
+#define SCL_MIN_CLKDIV 10
void I2C_init(alt_u32 base,alt_u32 clk,alt_u32 speed);
int I2C_start(alt_u32 base, alt_u32 add, alt_u32 read);
alt_u32 I2C_read(alt_u32 base,alt_u32 last);
alt_u32 I2C_write(alt_u32 base,alt_u8 data, alt_u32 last);
-alt_u32 SPI_read(alt_u32 base);
-void SPI_write(alt_u32 base,alt_u8 data);
+void SPI_read(alt_u32 base, alt_u8 *rdata, int len);
+void SPI_write(alt_u32 base, alt_u8 *wdata, int len);
#define I2C_OK (0)
#define I2C_ACK (0)
#define I2C_NOACK (1)
diff --git a/software/sys_controller_bsp/drivers/src/i2c_opencores.c b/software/sys_controller_bsp/drivers/src/i2c_opencores.c
index fafa66b..aa8e81b 100644
--- a/software/sys_controller_bsp/drivers/src/i2c_opencores.c
+++ b/software/sys_controller_bsp/drivers/src/i2c_opencores.c
@@ -182,25 +182,31 @@ alt_u32 I2C_write(alt_u32 base,alt_u8 data, alt_u32 last)
}
-alt_u32 SPI_read(alt_u32 base)
+void SPI_read(alt_u32 base, alt_u8 *rdata, int len)
{
- /* start read*/
- IOWR_I2C_OPENCORES_CR(base, I2C_OPENCORES_CR_RD_MSK|I2C_OPENCORES_CR_NACK_MSK|I2C_OPENCORES_CR_SPIM_MSK );
+ int i;
- /* wait for the trnasaction to be over.*/
- while( IORD_I2C_OPENCORES_SR(base) & I2C_OPENCORES_SR_TIP_MSK);
-
- /* now read the data */
- return (IORD_I2C_OPENCORES_RXR(base));
+ for (i=0; i
hal
default
- Oct 16, 2016 12:18:06 PM
- 1476609486611
- /home/markus/Code/ossc/software/sys_controller_bsp
+ Oct 21, 2016 1:18:01 AM
+ 1477001881487
+ ./
settings.bsp
../../sys.sopcinfo
default
@@ -26,7 +26,7 @@
hal.timestamp_timer
ALT_TIMESTAMP_CLK
UnquotedString
- none
+ timer_0
none
system_h_define
Slave descriptor of timestamp timer device. This device is used by Altera HAL timestamp drivers for high-resolution time measurement. This setting defines the value of ALT_TIMESTAMP_CLK in system.h.
@@ -899,7 +899,7 @@
memory
- spi_0
+ i2c_opencores_1
0x00821000 - 0x0082101F
32
@@ -923,44 +923,38 @@
- pio_5
+ pio_4
0x00821080 - 0x0082108F
16
- pio_4
+ pio_3
0x00821090 - 0x0082109F
16
- pio_3
+ pio_2
0x008210A0 - 0x008210AF
16
- pio_2
+ pio_1
0x008210B0 - 0x008210BF
16
- pio_1
+ pio_0
0x008210C0 - 0x008210CF
16
-
- pio_0
- 0x008210D0 - 0x008210DF
- 16
-
-
jtag_uart_0
- 0x008210E0 - 0x008210E7
+ 0x008210D0 - 0x008210D7
8
printable
diff --git a/software/sys_controller_bsp/system.h b/software/sys_controller_bsp/system.h
index c9356df..7ea0fcf 100644
--- a/software/sys_controller_bsp/system.h
+++ b/software/sys_controller_bsp/system.h
@@ -4,7 +4,7 @@
* Machine generated for CPU 'nios2_qsys_0' in SOPC Builder design 'sys'
* SOPC Builder design path: ../../sys.sopcinfo
*
- * Generated: Sun Oct 16 12:18:06 EEST 2016
+ * Generated: Thu Oct 20 01:24:13 EEST 2016
*/
/*
@@ -150,7 +150,6 @@
#define __ALTERA_AVALON_JTAG_UART
#define __ALTERA_AVALON_ONCHIP_MEMORY2
#define __ALTERA_AVALON_PIO
-#define __ALTERA_AVALON_SPI
#define __ALTERA_AVALON_TIMER
#define __ALTERA_EPCQ_CONTROLLER_MOD
#define __ALTERA_NIOS2_GEN2
@@ -176,19 +175,19 @@
#define ALT_NUM_INTERNAL_INTERRUPT_CONTROLLERS 1
#define ALT_NUM_INTERRUPT_CONTROLLERS 1
#define ALT_STDERR "/dev/jtag_uart_0"
-#define ALT_STDERR_BASE 0x8210e0
+#define ALT_STDERR_BASE 0x8210d0
#define ALT_STDERR_DEV jtag_uart_0
#define ALT_STDERR_IS_JTAG_UART
#define ALT_STDERR_PRESENT
#define ALT_STDERR_TYPE "altera_avalon_jtag_uart"
#define ALT_STDIN "/dev/jtag_uart_0"
-#define ALT_STDIN_BASE 0x8210e0
+#define ALT_STDIN_BASE 0x8210d0
#define ALT_STDIN_DEV jtag_uart_0
#define ALT_STDIN_IS_JTAG_UART
#define ALT_STDIN_PRESENT
#define ALT_STDIN_TYPE "altera_avalon_jtag_uart"
#define ALT_STDOUT "/dev/jtag_uart_0"
-#define ALT_STDOUT_BASE 0x8210e0
+#define ALT_STDOUT_BASE 0x8210d0
#define ALT_STDOUT_DEV jtag_uart_0
#define ALT_STDOUT_IS_JTAG_UART
#define ALT_STDOUT_PRESENT
@@ -243,7 +242,7 @@
#define ALT_MAX_FD 32
#define ALT_SYS_CLK none
-#define ALT_TIMESTAMP_CLK none
+#define ALT_TIMESTAMP_CLK TIMER_0
/*
@@ -260,13 +259,27 @@
#define I2C_OPENCORES_0_TYPE "i2c_opencores"
+/*
+ * i2c_opencores_1 configuration
+ *
+ */
+
+#define ALT_MODULE_CLASS_i2c_opencores_1 i2c_opencores
+#define I2C_OPENCORES_1_BASE 0x821000
+#define I2C_OPENCORES_1_IRQ 4
+#define I2C_OPENCORES_1_IRQ_INTERRUPT_CONTROLLER_ID 0
+#define I2C_OPENCORES_1_NAME "/dev/i2c_opencores_1"
+#define I2C_OPENCORES_1_SPAN 32
+#define I2C_OPENCORES_1_TYPE "i2c_opencores"
+
+
/*
* jtag_uart_0 configuration
*
*/
#define ALT_MODULE_CLASS_jtag_uart_0 altera_avalon_jtag_uart
-#define JTAG_UART_0_BASE 0x8210e0
+#define JTAG_UART_0_BASE 0x8210d0
#define JTAG_UART_0_IRQ 1
#define JTAG_UART_0_IRQ_INTERRUPT_CONTROLLER_ID 0
#define JTAG_UART_0_NAME "/dev/jtag_uart_0"
@@ -313,7 +326,7 @@
*/
#define ALT_MODULE_CLASS_pio_0 altera_avalon_pio
-#define PIO_0_BASE 0x8210d0
+#define PIO_0_BASE 0x8210c0
#define PIO_0_BIT_CLEARING_EDGE_REGISTER 0
#define PIO_0_BIT_MODIFYING_OUTPUT_REGISTER 0
#define PIO_0_CAPTURE 0
@@ -340,7 +353,7 @@
*/
#define ALT_MODULE_CLASS_pio_1 altera_avalon_pio
-#define PIO_1_BASE 0x8210c0
+#define PIO_1_BASE 0x8210b0
#define PIO_1_BIT_CLEARING_EDGE_REGISTER 0
#define PIO_1_BIT_MODIFYING_OUTPUT_REGISTER 0
#define PIO_1_CAPTURE 0
@@ -367,7 +380,7 @@
*/
#define ALT_MODULE_CLASS_pio_2 altera_avalon_pio
-#define PIO_2_BASE 0x8210b0
+#define PIO_2_BASE 0x8210a0
#define PIO_2_BIT_CLEARING_EDGE_REGISTER 0
#define PIO_2_BIT_MODIFYING_OUTPUT_REGISTER 0
#define PIO_2_CAPTURE 0
@@ -394,7 +407,7 @@
*/
#define ALT_MODULE_CLASS_pio_3 altera_avalon_pio
-#define PIO_3_BASE 0x8210a0
+#define PIO_3_BASE 0x821090
#define PIO_3_BIT_CLEARING_EDGE_REGISTER 0
#define PIO_3_BIT_MODIFYING_OUTPUT_REGISTER 0
#define PIO_3_CAPTURE 0
@@ -421,7 +434,7 @@
*/
#define ALT_MODULE_CLASS_pio_4 altera_avalon_pio
-#define PIO_4_BASE 0x821090
+#define PIO_4_BASE 0x821080
#define PIO_4_BIT_CLEARING_EDGE_REGISTER 0
#define PIO_4_BIT_MODIFYING_OUTPUT_REGISTER 0
#define PIO_4_CAPTURE 0
@@ -442,64 +455,6 @@
#define PIO_4_TYPE "altera_avalon_pio"
-/*
- * pio_5 configuration
- *
- */
-
-#define ALT_MODULE_CLASS_pio_5 altera_avalon_pio
-#define PIO_5_BASE 0x821080
-#define PIO_5_BIT_CLEARING_EDGE_REGISTER 0
-#define PIO_5_BIT_MODIFYING_OUTPUT_REGISTER 0
-#define PIO_5_CAPTURE 0
-#define PIO_5_DATA_WIDTH 8
-#define PIO_5_DO_TEST_BENCH_WIRING 0
-#define PIO_5_DRIVEN_SIM_VALUE 0
-#define PIO_5_EDGE_TYPE "NONE"
-#define PIO_5_FREQ 27000000
-#define PIO_5_HAS_IN 0
-#define PIO_5_HAS_OUT 1
-#define PIO_5_HAS_TRI 0
-#define PIO_5_IRQ -1
-#define PIO_5_IRQ_INTERRUPT_CONTROLLER_ID -1
-#define PIO_5_IRQ_TYPE "NONE"
-#define PIO_5_NAME "/dev/pio_5"
-#define PIO_5_RESET_VALUE 0
-#define PIO_5_SPAN 16
-#define PIO_5_TYPE "altera_avalon_pio"
-
-
-/*
- * spi_0 configuration
- *
- */
-
-#define ALT_MODULE_CLASS_spi_0 altera_avalon_spi
-#define SPI_0_BASE 0x821000
-#define SPI_0_CLOCKMULT 1
-#define SPI_0_CLOCKPHASE 0
-#define SPI_0_CLOCKPOLARITY 0
-#define SPI_0_CLOCKUNITS "Hz"
-#define SPI_0_DATABITS 8
-#define SPI_0_DATAWIDTH 16
-#define SPI_0_DELAYMULT "1.0E-9"
-#define SPI_0_DELAYUNITS "ns"
-#define SPI_0_EXTRADELAY 0
-#define SPI_0_INSERT_SYNC 0
-#define SPI_0_IRQ 4
-#define SPI_0_IRQ_INTERRUPT_CONTROLLER_ID 0
-#define SPI_0_ISMASTER 1
-#define SPI_0_LSBFIRST 0
-#define SPI_0_NAME "/dev/spi_0"
-#define SPI_0_NUMSLAVES 1
-#define SPI_0_PREFIX "spi_"
-#define SPI_0_SPAN 32
-#define SPI_0_SYNC_REG_DEPTH 2
-#define SPI_0_TARGETCLOCK 13500000u
-#define SPI_0_TARGETSSDELAY "0.0"
-#define SPI_0_TYPE "altera_avalon_spi"
-
-
/*
* timer_0 configuration
*
diff --git a/sys.qsys b/sys.qsys
index eac50d1..096ecbd 100644
--- a/sys.qsys
+++ b/sys.qsys
@@ -57,6 +57,22 @@
type = "String";
}
}
+ element i2c_opencores_1
+ {
+ datum _sortIndex
+ {
+ value = "10";
+ type = "int";
+ }
+ }
+ element i2c_opencores_1.avalon_slave_0
+ {
+ datum baseAddress
+ {
+ value = "8523776";
+ type = "String";
+ }
+ }
element jtag_uart_0
{
datum _sortIndex
@@ -69,7 +85,7 @@
{
datum baseAddress
{
- value = "8524000";
+ value = "8523984";
type = "String";
}
}
@@ -141,7 +157,7 @@
{
datum baseAddress
{
- value = "8523984";
+ value = "8523968";
type = "String";
}
}
@@ -157,7 +173,7 @@
{
datum baseAddress
{
- value = "8523968";
+ value = "8523952";
type = "String";
}
}
@@ -173,7 +189,7 @@
{
datum baseAddress
{
- value = "8523952";
+ value = "8523936";
type = "String";
}
}
@@ -189,7 +205,7 @@
{
datum baseAddress
{
- value = "8523936";
+ value = "8523920";
type = "String";
}
}
@@ -202,22 +218,6 @@
}
}
element pio_4.s1
- {
- datum baseAddress
- {
- value = "8523920";
- type = "String";
- }
- }
- element pio_5
- {
- datum _sortIndex
- {
- value = "16";
- type = "int";
- }
- }
- element pio_5.s1
{
datum baseAddress
{
@@ -225,22 +225,6 @@
type = "String";
}
}
- element spi_0
- {
- datum _sortIndex
- {
- value = "10";
- type = "int";
- }
- }
- element spi_0.spi_control_port
- {
- datum baseAddress
- {
- value = "8523776";
- type = "String";
- }
- }
element timer_0
{
datum _sortIndex
@@ -284,6 +268,11 @@
internal="i2c_opencores_0.export"
type="conduit"
dir="end" />
+
-
-
@@ -343,7 +322,16 @@
name="i2c_opencores_0"
kind="i2c_opencores"
version="13.0"
- enabled="1" />
+ enabled="1">
+
+
+
+
+
- ]]>
+ ]]>
@@ -668,36 +656,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -716,7 +674,7 @@
start="nios2_qsys_0.data_master"
end="jtag_uart_0.avalon_jtag_slave">
-
+
+
+
+
+
+
-
+
-
+
-
+
-
-
-
-
-
@@ -813,7 +771,7 @@
kind="avalon"
version="15.1"
start="nios2_qsys_0.data_master"
- end="pio_5.s1">
+ end="pio_4.s1">
@@ -827,15 +785,6 @@
-
-
-
-
-
-
-
+
+
+
+
-
-
-
+
-
-
-
+
java.lang.Integer
- 1476609301
+ 1477001042
false
true
false
@@ -372,24 +372,12 @@ parameters are a RESULT of the module parameters. -->
clk
pio_4.clk
-
- false
- pio_5
- clk
- pio_5.clk
-
false
timer_0
clk
timer_0.clk
-
- false
- spi_0
- clk
- spi_0.clk
-
false
onchip_memory2_0
@@ -402,6 +390,12 @@ parameters are a RESULT of the module parameters. -->
clock
i2c_opencores_0.clock
+
+ false
+ i2c_opencores_1
+ clock
+ i2c_opencores_1.clock
+
false
epcq_controller_0
@@ -1619,6 +1613,14 @@ parameters are a RESULT of the module parameters. -->
path="i2c_opencores_0">
+
+ int
+ 0
+ false
+ true
+ true
+ true
+
java.lang.String
UNKNOWN
@@ -1775,6 +1777,12 @@ parameters are a RESULT of the module parameters. -->
1
export
+
+ spi_miso_pad_i
+ Input
+ 1
+ export
+
+
+
+
+ int
+ 1
+ false
+ true
+ true
+ true
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ java.lang.String
+
+ false
+ true
+ false
+ true
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ clock
+ false
+
+ wb_clk_i
+ Input
+ 1
+ clk
+
+
+
+
+
+ java.lang.String
+ clock
+ false
+ true
+ true
+ true
+
+
+ com.altera.sopcmodel.reset.Reset$Edges
+ DEASSERT
+ false
+ true
+ true
+ true
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ reset
+ false
+
+ wb_rst_i
+ Input
+ 1
+ reset
+
+
+
+
+
+ java.lang.String
+
+ false
+ true
+ true
+ true
+
+
+ java.lang.String
+
+ false
+ true
+ true
+ true
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ conduit
+ false
+
+ scl_pad_io
+ Bidir
+ 1
+ export
+
+
+ sda_pad_io
+ Bidir
+ 1
+ export
+
+
+ spi_miso_pad_i
+ Input
+ 1
+ export
+
+
+
+
+
+ embeddedsw.configuration.isFlash
+ 0
+
+
+ embeddedsw.configuration.isMemoryDevice
+ 0
+
+
+ embeddedsw.configuration.isNonVolatileStorage
+ 0
+
+
+ embeddedsw.configuration.isPrintableDevice
+ 0
+
+
+ com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment
+ NATIVE
+ false
+ true
+ false
+ true
+
+
+ int
+ 0
+ false
+ true
+ false
+ true
+
+
+ java.math.BigInteger
+ 8
+ true
+ true
+ false
+ true
+
+
+ com.altera.sopcmodel.avalon.EAddrBurstUnits
+ WORDS
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ java.lang.String
+ clock
+ false
+ true
+ true
+ true
+
+
+ java.lang.String
+ clock_reset
+ false
+ true
+ true
+ true
+
+
+ int
+ 8
+ false
+ true
+ true
+ true
+
+
+ java.math.BigInteger
+
+ false
+ true
+ false
+ true
+
+
+ com.altera.entityinterfaces.IConnectionPoint
+
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+
+ com.altera.sopcmodel.avalon.EAddrBurstUnits
+ WORDS
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ java.math.BigInteger
+ 0
+ false
+ true
+ true
+ true
+
+
+ int
+ 0
+ false
+ false
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+
+ int
+ 0
+ false
+ false
+ true
+ true
+
+
+ int
+ 0
+ false
+ false
+ true
+ true
+
+
+ int
+ 1
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ int
+ 0
+ false
+ true
+ true
+ true
+
+
+ int
+ 1
+ false
+ true
+ false
+ true
+
+
+ int
+ 1
+ false
+ false
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ int
+ 0
+ false
+ false
+ true
+ true
+
+
+ com.altera.sopcmodel.avalon.TimingUnits
+ Cycles
+ false
+ false
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ boolean
+ false
+ false
+ true
+ false
+ true
+
+
+ int
+ 0
+ false
+ true
+ false
+ true
+
+
+ int
+ 0
+ false
+ true
+ false
+ true
+
+
+ int
+ 0
+ false
+ false
+ true
+ true
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ avalon
+ false
+
+ wb_adr_i
+ Input
+ 3
+ address
+
+
+ wb_dat_i
+ Input
+ 8
+ writedata
+
+
+ wb_dat_o
+ Output
+ 8
+ readdata
+
+
+ wb_we_i
+ Input
+ 1
+ write
+
+
+ wb_stb_i
+ Input
+ 1
+ chipselect
+
+
+ wb_ack_o
+ Output
+ 1
+ waitrequest_n
+
+
+
+
+
+ com.altera.entityinterfaces.IConnectionPoint
+ i2c_opencores_1.avalon_slave_0
+ false
+ true
+ true
+ true
+
+
+ java.lang.String
+ clock
+ false
+ true
+ false
+ true
+
+
+ java.lang.String
+ clock_reset
+ false
+ true
+ false
+ true
+
+
+ java.lang.Integer
+
+ false
+ true
+ true
+ true
+
+
+ com.altera.entityinterfaces.IConnectionPoint
+
+ false
+ true
+ true
+ true
+
+
+ com.altera.sopcmodel.interrupt.InterruptConnectionPoint$EIrqScheme
+ NONE
+ false
+ true
+ false
+ true
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ interrupt
+ false
+
+ wb_inta_o
+ Output
+ 1
+ irq
+
+
+
java.lang.String
- ]]>
+ ]]>
false
true
false
@@ -5452,7 +6087,7 @@ parameters are a RESULT of the module parameters. -->
jtag_uart_0
avalon_jtag_slave
jtag_uart_0.avalon_jtag_slave
- 8524000
+ 8523984
8
@@ -5463,6 +6098,14 @@ parameters are a RESULT of the module parameters. -->
8523872
32
+
+ false
+ i2c_opencores_1
+ avalon_slave_0
+ i2c_opencores_1.avalon_slave_0
+ 8523776
+ 32
+
false
epcq_controller_0
@@ -5500,7 +6143,7 @@ parameters are a RESULT of the module parameters. -->
pio_0
s1
pio_0.s1
- 8523984
+ 8523968
16
@@ -5508,7 +6151,7 @@ parameters are a RESULT of the module parameters. -->
pio_1
s1
pio_1.s1
- 8523968
+ 8523952
16
@@ -5516,7 +6159,7 @@ parameters are a RESULT of the module parameters. -->
pio_2
s1
pio_2.s1
- 8523952
+ 8523936
16
@@ -5524,7 +6167,7 @@ parameters are a RESULT of the module parameters. -->
pio_3
s1
pio_3.s1
- 8523936
+ 8523920
16
@@ -5532,14 +6175,6 @@ parameters are a RESULT of the module parameters. -->
pio_4
s1
pio_4.s1
- 8523920
- 16
-
-
- false
- pio_5
- s1
- pio_5.s1
8523904
16
@@ -5551,14 +6186,6 @@ parameters are a RESULT of the module parameters. -->
8523808
32
-
- false
- spi_0
- spi_control_port
- spi_0.spi_control_port
- 8523776
- 32
-
epcq_controller_0.interrupt_sender
2
+
+ false
+ i2c_opencores_1
+ interrupt_sender
+ i2c_opencores_1.interrupt_sender
+ 4
+
false
jtag_uart_0
@@ -5959,13 +6593,6 @@ parameters are a RESULT of the module parameters. -->
timer_0.irq
0
-
- false
- spi_0
- irq
- spi_0.irq
- 4
-
-
-
-
- embeddedsw.CMacro.BIT_CLEARING_EDGE_REGISTER
- 0
-
-
- embeddedsw.CMacro.BIT_MODIFYING_OUTPUT_REGISTER
- 0
-
-
- embeddedsw.CMacro.CAPTURE
- 0
-
-
- embeddedsw.CMacro.DATA_WIDTH
- 8
-
-
- embeddedsw.CMacro.DO_TEST_BENCH_WIRING
- 0
-
-
- embeddedsw.CMacro.DRIVEN_SIM_VALUE
- 0
-
-
- embeddedsw.CMacro.EDGE_TYPE
- NONE
-
-
- embeddedsw.CMacro.FREQ
- 27000000
-
-
- embeddedsw.CMacro.HAS_IN
- 0
-
-
- embeddedsw.CMacro.HAS_OUT
- 1
-
-
- embeddedsw.CMacro.HAS_TRI
- 0
-
-
- embeddedsw.CMacro.IRQ_TYPE
- NONE
-
-
- embeddedsw.CMacro.RESET_VALUE
- 0
-
-
- embeddedsw.dts.compatible
- altr,pio-1.0
-
-
- embeddedsw.dts.group
- gpio
-
-
- embeddedsw.dts.name
- pio
-
-
- embeddedsw.dts.params.altr,gpio-bank-width
- 8
-
-
- embeddedsw.dts.params.resetvalue
- 0
-
-
- embeddedsw.dts.vendor
- altr
-
-
- boolean
- false
- false
- false
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- boolean
- false
- false
- false
- true
- true
-
-
- java.lang.String
- Output
- false
- true
- true
- true
-
-
- java.lang.String
- RISING
- false
- false
- true
- true
-
-
- boolean
- false
- false
- false
- true
- true
-
-
- java.lang.String
- LEVEL
- false
- false
- true
- true
-
-
- long
- 0
- false
- true
- true
- true
-
-
- boolean
- false
- false
- false
- true
- true
-
-
- long
- 0
- false
- false
- true
- true
-
-
- int
- 8
- false
- true
- true
- true
-
-
- long
- 27000000
- false
- true
- false
- true
- CLOCK_RATE
- clk
-
-
- boolean
- false
- true
- true
- false
- true
-
-
- boolean
- true
- true
- true
- false
- true
-
-
- boolean
- false
- true
- true
- false
- true
-
-
- boolean
- false
- true
- true
- false
- true
-
-
- boolean
- false
- true
- true
- false
- true
-
-
- java.lang.String
- NONE
- true
- true
- false
- true
-
-
- java.lang.String
- NONE
- true
- true
- false
- true
-
-
- boolean
- false
- true
- true
- false
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- java.lang.String
-
- false
- true
- false
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- java.lang.Boolean
- true
- true
- true
- false
- true
-
-
- java.lang.Long
- 27000000
- true
- true
- false
- true
-
- clock
- false
-
- clk
- Input
- 1
- clk
-
-
-
-
-
- java.lang.String
- clk
- false
- true
- true
- true
-
-
- com.altera.sopcmodel.reset.Reset$Edges
- DEASSERT
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- reset
- false
-
- reset_n
- Input
- 1
- reset_n
-
-
-
-
-
- embeddedsw.configuration.isFlash
- 0
-
-
- embeddedsw.configuration.isMemoryDevice
- 0
-
-
- embeddedsw.configuration.isNonVolatileStorage
- 0
-
-
- embeddedsw.configuration.isPrintableDevice
- 0
-
-
- com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment
- NATIVE
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- false
- true
-
-
- java.math.BigInteger
- 4
- true
- true
- false
- true
-
-
- com.altera.sopcmodel.avalon.EAddrBurstUnits
- WORDS
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- java.lang.String
- clk
- false
- true
- true
- true
-
-
- java.lang.String
- reset
- false
- true
- true
- true
-
-
- int
- 8
- false
- true
- true
- true
-
-
- java.math.BigInteger
-
- false
- true
- false
- true
-
-
- com.altera.entityinterfaces.IConnectionPoint
-
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- com.altera.sopcmodel.avalon.EAddrBurstUnits
- WORDS
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- java.math.BigInteger
- 0
- false
- true
- true
- true
-
-
- int
- 0
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- int
- 0
- false
- false
- true
- true
-
-
- int
- 0
- false
- false
- true
- true
-
-
- int
- 1
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- true
- true
-
-
- int
- 1
- false
- true
- false
- true
-
-
- int
- 1
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- true
- true
-
-
- com.altera.sopcmodel.avalon.TimingUnits
- Cycles
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- avalon
- false
-
- address
- Input
- 2
- address
-
-
- write_n
- Input
- 1
- write_n
-
-
- writedata
- Input
- 32
- writedata
-
-
- chipselect
- Input
- 1
- chipselect
-
-
- readdata
- Output
- 32
- readdata
-
-
-
-
-
- java.lang.String
-
- false
- true
- true
- true
-
-
- java.lang.String
-
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- conduit
- false
-
- out_port
- Output
- 8
- export
-
-
-
-
-
-
- embeddedsw.CMacro.CLOCKMULT
- 1
-
-
- embeddedsw.CMacro.CLOCKPHASE
- 0
-
-
- embeddedsw.CMacro.CLOCKPOLARITY
- 0
-
-
- embeddedsw.CMacro.CLOCKUNITS
- "Hz"
-
-
- embeddedsw.CMacro.DATABITS
- 8
-
-
- embeddedsw.CMacro.DATAWIDTH
- 16
-
-
- embeddedsw.CMacro.DELAYMULT
- "1.0E-9"
-
-
- embeddedsw.CMacro.DELAYUNITS
- "ns"
-
-
- embeddedsw.CMacro.EXTRADELAY
- 0
-
-
- embeddedsw.CMacro.INSERT_SYNC
- 0
-
-
- embeddedsw.CMacro.ISMASTER
- 1
-
-
- embeddedsw.CMacro.LSBFIRST
- 0
-
-
- embeddedsw.CMacro.NUMSLAVES
- 1
-
-
- embeddedsw.CMacro.PREFIX
- "spi_"
-
-
- embeddedsw.CMacro.SYNC_REG_DEPTH
- 2
-
-
- embeddedsw.CMacro.TARGETCLOCK
- 13500000u
-
-
- embeddedsw.CMacro.TARGETSSDELAY
- "0.0"
-
-
- embeddedsw.dts.compatible
- altr,spi-1.0
-
-
- embeddedsw.dts.group
- spi
-
-
- embeddedsw.dts.name
- spi
-
-
- embeddedsw.dts.vendor
- altr
-
-
- int
- 0
- false
- true
- true
- true
-
-
- int
- 0
- false
- true
- true
- true
-
-
- int
- 8
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- boolean
- true
- false
- true
- true
- true
-
-
- int
- 1
- false
- true
- true
- true
-
-
- int
- 2
- false
- false
- true
- true
-
-
- long
- 13500000
- false
- true
- true
- true
-
-
- double
- 0.0
- false
- false
- true
- true
-
-
- java.lang.String
- 2.0
- false
- true
- false
- true
- AVALON_SPEC
-
-
- long
- 27000000
- false
- true
- false
- true
- CLOCK_RATE
- clk
-
-
- double
- 1.35E7
- true
- true
- true
- true
-
-
- double
- 0.0
- true
- false
- true
- true
-
-
- boolean
- false
- true
- true
- false
- true
-
-
- int
- 16
- true
- true
- false
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- java.lang.String
-
- false
- true
- false
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- java.lang.Boolean
- true
- true
- true
- false
- true
-
-
- java.lang.Long
- 27000000
- true
- true
- false
- true
-
- clock
- false
-
- clk
- Input
- 1
- clk
-
-
-
-
-
- java.lang.String
- clk
- false
- true
- true
- true
-
-
- com.altera.sopcmodel.reset.Reset$Edges
- DEASSERT
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- reset
- false
-
- reset_n
- Input
- 1
- reset_n
-
-
-
-
-
- embeddedsw.configuration.isFlash
- 0
-
-
- embeddedsw.configuration.isMemoryDevice
- 0
-
-
- embeddedsw.configuration.isNonVolatileStorage
- 0
-
-
- embeddedsw.configuration.isPrintableDevice
- 0
-
-
- com.altera.sopcmodel.avalon.AvalonConnectionPoint$AddressAlignment
- NATIVE
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- false
- true
-
-
- java.math.BigInteger
- 8
- true
- true
- false
- true
-
-
- com.altera.sopcmodel.avalon.EAddrBurstUnits
- WORDS
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- java.lang.String
- clk
- false
- true
- true
- true
-
-
- java.lang.String
- reset
- false
- true
- true
- true
-
-
- int
- 8
- false
- true
- true
- true
-
-
- java.math.BigInteger
-
- false
- true
- false
- true
-
-
- com.altera.entityinterfaces.IConnectionPoint
-
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- com.altera.sopcmodel.avalon.EAddrBurstUnits
- WORDS
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- java.math.BigInteger
- 0
- false
- true
- true
- true
-
-
- int
- 0
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- int
- 0
- false
- false
- true
- true
-
-
- int
- 0
- false
- false
- true
- true
-
-
- int
- 1
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- true
- true
-
-
- int
- 1
- false
- true
- false
- true
-
-
- int
- 1
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- true
- true
-
-
- com.altera.sopcmodel.avalon.TimingUnits
- Cycles
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- boolean
- false
- false
- true
- false
- true
-
-
- int
- 0
- false
- true
- false
- true
-
-
- int
- 1
- false
- true
- false
- true
-
-
- int
- 1
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- avalon
- false
-
- data_from_cpu
- Input
- 16
- writedata
-
-
- data_to_cpu
- Output
- 16
- readdata
-
-
- mem_addr
- Input
- 3
- address
-
-
- read_n
- Input
- 1
- read_n
-
-
- spi_select
- Input
- 1
- chipselect
-
-
- write_n
- Input
- 1
- write_n
-
-
-
-
-
- com.altera.entityinterfaces.IConnectionPoint
- spi_0.spi_control_port
- false
- true
- true
- true
-
-
- java.lang.String
- clk
- false
- true
- false
- true
-
-
- java.lang.String
- reset
- false
- true
- false
- true
-
-
- java.lang.Integer
-
- false
- true
- true
- true
-
-
- com.altera.entityinterfaces.IConnectionPoint
-
- false
- true
- true
- true
-
-
- com.altera.sopcmodel.interrupt.InterruptConnectionPoint$EIrqScheme
- NONE
- false
- true
- false
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- interrupt
- false
-
- irq
- Output
- 1
- irq
-
-
-
-
-
- java.lang.String
-
- false
- true
- true
- true
-
-
- java.lang.String
-
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- conduit
- false
-
- MISO
- Input
- 1
- export
-
-
- MOSI
- Output
- 1
- export
-
-
- SCLK
- Output
- 1
- export
-
-
- SS_n
- Output
- 1
- export
-
-
-
java.math.BigInteger
- 0x008210e0
+ 0x008210d0
false
true
true
@@ -14084,6 +13069,57 @@ parameters are a RESULT of the module parameters. -->
i2c_opencores_0
avalon_slave_0
+
+
+ int
+ 1
+ false
+ true
+ true
+ true
+
+
+ java.math.BigInteger
+ 0x00821000
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ nios2_qsys_0
+ data_master
+ i2c_opencores_1
+ avalon_slave_0
+
java.math.BigInteger
- 0x008210d0
+ 0x008210c0
false
true
true
@@ -14355,7 +13391,7 @@ parameters are a RESULT of the module parameters. -->
java.math.BigInteger
- 0x008210c0
+ 0x008210b0
false
true
true
@@ -14406,7 +13442,7 @@ parameters are a RESULT of the module parameters. -->
java.math.BigInteger
- 0x008210b0
+ 0x008210a0
false
true
true
@@ -14457,7 +13493,7 @@ parameters are a RESULT of the module parameters. -->
java.math.BigInteger
- 0x008210a0
+ 0x00821090
false
true
true
@@ -14506,57 +13542,6 @@ parameters are a RESULT of the module parameters. -->
true
true
-
- java.math.BigInteger
- 0x00821090
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- nios2_qsys_0
- data_master
- pio_4
- s1
-
-
-
- int
- 1
- false
- true
- true
- true
-
java.math.BigInteger
0x00821080
@@ -14591,7 +13576,7 @@ parameters are a RESULT of the module parameters. -->
nios2_qsys_0
data_master
- pio_5
+ pio_4
s1
timer_0
s1
-
-
- int
- 1
- false
- true
- true
- true
-
-
- java.math.BigInteger
- 0x00821000
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- nios2_qsys_0
- data_master
- spi_0
- spi_control_port
-
pio_4
clk
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- clk_27
- clk
- pio_5
- clk
-
timer_0
clk
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- clk_27
- clk
- spi_0
- clk
-
i2c_opencores_0
clock
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ clk_27
+ clk
+ i2c_opencores_1
+ clock
+
epcq_controller_0
interrupt_sender
+
+
+ int
+ 4
+ false
+ true
+ true
+ true
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ nios2_qsys_0
+ irq
+ i2c_opencores_1
+ interrupt_sender
+
timer_0
irq
-
-
- int
- 4
- false
- true
- true
- true
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- nios2_qsys_0
- irq
- spi_0
- irq
-
i2c_opencores_0
clock_reset
+
+
+ java.lang.String
+ UNKNOWN
+ false
+ true
+ true
+ true
+
+
+ boolean
+ false
+ false
+ true
+ true
+ true
+
+ clk_27
+ clk_reset
+ i2c_opencores_1
+ clock_reset
+
epcq_controller_0
reset
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- clk_27
- clk_reset
- pio_5
- reset
-
timer_0
reset
-
-
- java.lang.String
- UNKNOWN
- false
- true
- true
- true
-
-
- boolean
- false
- false
- true
- true
- true
-
- clk_27
- clk_reset
- spi_0
- reset
-
15.1
- 13
+ 12
clock_sink
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IMutableConnectionPoint
@@ -15933,7 +14813,7 @@ parameters are a RESULT of the module parameters. -->
15.1
- 13
+ 12
reset_sink
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IMutableConnectionPoint
@@ -15941,7 +14821,7 @@ parameters are a RESULT of the module parameters. -->
15.1
- 14
+ 13
avalon_slave
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IMutableConnectionPoint
@@ -15957,7 +14837,7 @@ parameters are a RESULT of the module parameters. -->
15.1
- 1
+ 2
i2c_opencores
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IModule
@@ -15965,7 +14845,7 @@ parameters are a RESULT of the module parameters. -->
13.0
- 8
+ 7
conduit_end
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IMutableConnectionPoint
@@ -16061,21 +14941,13 @@ parameters are a RESULT of the module parameters. -->
15.1
- 6
+ 5
altera_avalon_pio
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IModule
PIO (Parallel I/O)
15.1
-
- 1
- altera_avalon_spi
- com.altera.entityinterfaces.IElementClass
- com.altera.entityinterfaces.IModule
- SPI (3 Wire Serial)
- 15.1
-
1
altera_avalon_timer
@@ -16085,7 +14957,7 @@ parameters are a RESULT of the module parameters. -->
15.1
- 16
+ 15
avalon
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IConnection
@@ -16093,7 +14965,7 @@ parameters are a RESULT of the module parameters. -->
15.1
- 13
+ 12
clock
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IConnection
@@ -16117,7 +14989,7 @@ parameters are a RESULT of the module parameters. -->
15.1
- 13
+ 12
reset
com.altera.entityinterfaces.IElementClass
com.altera.entityinterfaces.IConnection