Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

emi62: use request_firmware()

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
  • Loading branch information...
commit b8e24bfabb03527d1c876fcaf24cccb05e1cbc65 1 parent ae93a55
dwmw2 authored David Woodhouse committed
130  drivers/usb/misc/emi62.c
@@ -16,15 +16,8 @@
16 16
 #include <linux/module.h>
17 17
 #include <linux/usb.h>
18 18
 #include <linux/delay.h>
19  
-
20  
-#define MAX_INTEL_HEX_RECORD_LENGTH 16
21  
-typedef struct _INTEL_HEX_RECORD
22  
-{
23  
-	__u32	length;
24  
-	__u32	address;
25  
-	__u32	type;
26  
-	__u8	data[MAX_INTEL_HEX_RECORD_LENGTH];
27  
-} INTEL_HEX_RECORD, *PINTEL_HEX_RECORD;
  19
+#include <linux/firmware.h>
  20
+#include <linux/ihex.h>
28 21
 
29 22
 /* include firmware (variables)*/
30 23
 
@@ -33,9 +26,9 @@ typedef struct _INTEL_HEX_RECORD
33 26
 //#undef SPDIF	/* if you want MIDI uncomment this line */ 
34 27
 
35 28
 #ifdef SPDIF
36  
-#  include "emi62_fw_s.h" /* spdif fw */
  29
+#define FIRMWARE_FW "emi62/spdif.fw"
37 30
 #else
38  
-#  include "emi62_fw_m.h" /* midi fw */
  31
+#define FIRMWARE_FW "emi62/midi.fw"
39 32
 #endif
40 33
 
41 34
 #define EMI62_VENDOR_ID 		0x086a  /* Emagic Soft-und Hardware GmBH */
@@ -48,7 +41,9 @@ typedef struct _INTEL_HEX_RECORD
48 41
 #define CPUCS_REG		0x7F92  /* EZ-USB Control and Status Register.  Bit 0 controls 8051 reset */ 
49 42
 #define INTERNAL_RAM(address)   (address <= MAX_INTERNAL_ADDRESS)
50 43
 
51  
-static int emi62_writememory( struct usb_device *dev, int address, unsigned char *data, int length, __u8 bRequest);
  44
+static int emi62_writememory(struct usb_device *dev, int address,
  45
+			     const unsigned char *data, int length,
  46
+			     __u8 bRequest);
52 47
 static int emi62_set_reset(struct usb_device *dev, unsigned char reset_bit);
53 48
 static int emi62_load_firmware (struct usb_device *dev);
54 49
 static int emi62_probe(struct usb_interface *intf, const struct usb_device_id *id);
@@ -58,7 +53,9 @@ static void __exit emi62_exit (void);
58 53
 
59 54
 
60 55
 /* thanks to drivers/usb/serial/keyspan_pda.c code */
61  
-static int emi62_writememory (struct usb_device *dev, int address, unsigned char *data, int length, __u8 request)
  56
+static int emi62_writememory(struct usb_device *dev, int address,
  57
+			     const unsigned char *data, int length,
  58
+			     __u8 request)
62 59
 {
63 60
 	int result;
64 61
 	unsigned char *buffer =  kmemdup(data, length, GFP_KERNEL);
@@ -91,9 +88,12 @@ static int emi62_set_reset (struct usb_device *dev, unsigned char reset_bit)
91 88
 
92 89
 static int emi62_load_firmware (struct usb_device *dev)
93 90
 {
  91
+	const struct firmware *loader_fw = NULL;
  92
+	const struct firmware *bitstream_fw = NULL;
  93
+	const struct firmware *firmware_fw = NULL;
  94
+	const struct ihex_binrec *rec;
94 95
 	int err;
95 96
 	int i;
96  
-	int pos = 0;	/* Position in hex record */
97 97
 	__u32 addr;	/* Address to write */
98 98
 	__u8 *buf;
99 99
 
@@ -105,6 +105,22 @@ static int emi62_load_firmware (struct usb_device *dev)
105 105
 		goto wraperr;
106 106
 	}
107 107
 
  108
+	err = request_ihex_firmware(&loader_fw, "emi62/loader.fw", &dev->dev);
  109
+	if (err)
  110
+		goto nofw;
  111
+
  112
+	err = request_ihex_firmware(&bitstream_fw, "emi62/bitstream.fw",
  113
+				    &dev->dev);
  114
+	if (err)
  115
+		goto nofw;
  116
+
  117
+	err = request_ihex_firmware(&firmware_fw, FIRMWARE_FW, &dev->dev);
  118
+	if (err) {
  119
+	nofw:
  120
+		err( "%s - request_firmware() failed", __func__);
  121
+		goto wraperr;
  122
+	}
  123
+
108 124
 	/* Assert reset (stop the CPU in the EMI) */
109 125
 	err = emi62_set_reset(dev,1);
110 126
 	if (err < 0) {
@@ -112,13 +128,18 @@ static int emi62_load_firmware (struct usb_device *dev)
112 128
 		goto wraperr;
113 129
 	}
114 130
 
  131
+	rec = (const struct ihex_binrec *)loader_fw->data;
  132
+
115 133
 	/* 1. We need to put the loader for the FPGA into the EZ-USB */
116  
-	for (i=0; g_emi62_loader[i].type == 0; i++) {
117  
-		err = emi62_writememory(dev, g_emi62_loader[i].address, g_emi62_loader[i].data, g_emi62_loader[i].length, ANCHOR_LOAD_INTERNAL);
  134
+	while (rec) {
  135
+		err = emi62_writememory(dev, be32_to_cpu(rec->addr),
  136
+					rec->data, be16_to_cpu(rec->len),
  137
+					ANCHOR_LOAD_INTERNAL);
118 138
 		if (err < 0) {
119 139
 			err("%s - error loading firmware: error = %d", __func__, err);
120 140
 			goto wraperr;
121 141
 		}
  142
+		rec = ihex_next_binrec(rec);
122 143
 	}
123 144
 
124 145
 	/* De-assert reset (let the CPU run) */
@@ -132,15 +153,16 @@ static int emi62_load_firmware (struct usb_device *dev)
132 153
 	/* 2. We upload the FPGA firmware into the EMI
133 154
 	 * Note: collect up to 1023 (yes!) bytes and send them with
134 155
 	 * a single request. This is _much_ faster! */
  156
+	rec = (const struct ihex_binrec *)bitstream_fw->data;
135 157
 	do {
136 158
 		i = 0;
137  
-		addr = g_emi62bs[pos].address;
  159
+		addr = be32_to_cpu(rec->addr);
138 160
 
139 161
 		/* intel hex records are terminated with type 0 element */
140  
-		while ((g_emi62bs[pos].type == 0) && (i + g_emi62bs[pos].length < FW_LOAD_SIZE)) {
141  
-			memcpy(buf + i, g_emi62bs[pos].data, g_emi62bs[pos].length);
142  
-			i += g_emi62bs[pos].length;
143  
-			pos++;
  162
+		while (rec && (i + be16_to_cpu(rec->len) < FW_LOAD_SIZE)) {
  163
+			memcpy(buf + i, rec->data, be16_to_cpu(rec->len));
  164
+			i += be16_to_cpu(rec->len);
  165
+			rec = ihex_next_binrec(rec);
144 166
 		}
145 167
 		err = emi62_writememory(dev, addr, buf, i, ANCHOR_LOAD_FPGA);
146 168
 		if (err < 0) {
@@ -157,8 +179,11 @@ static int emi62_load_firmware (struct usb_device *dev)
157 179
 	}
158 180
 
159 181
 	/* 3. We need to put the loader for the firmware into the EZ-USB (again...) */
160  
-	for (i=0; g_emi62_loader[i].type == 0; i++) {
161  
-		err = emi62_writememory(dev, g_emi62_loader[i].address, g_emi62_loader[i].data, g_emi62_loader[i].length, ANCHOR_LOAD_INTERNAL);
  182
+	for (rec = (const struct ihex_binrec *)loader_fw->data;
  183
+	     rec; rec = ihex_next_binrec(rec)) {
  184
+		err = emi62_writememory(dev, be32_to_cpu(rec->addr),
  185
+					rec->data, be16_to_cpu(rec->len),
  186
+					ANCHOR_LOAD_INTERNAL);
162 187
 		if (err < 0) {
163 188
 			err("%s - error loading firmware: error = %d", __func__, err);
164 189
 			goto wraperr;
@@ -175,29 +200,19 @@ static int emi62_load_firmware (struct usb_device *dev)
175 200
 
176 201
 	/* 4. We put the part of the firmware that lies in the external RAM into the EZ-USB */
177 202
 
178  
-/* FIXME: quick and dirty ifdefs */
179  
-#ifdef SPDIF
180  
-	for (i=0; g_HexSpdifFw62[i].type == 0; i++) {
181  
-		if (!INTERNAL_RAM(g_HexSpdifFw62[i].address)) {
182  
-			err = emi62_writememory(dev, g_HexSpdifFw62[i].address, g_HexSpdifFw62[i].data, g_HexSpdifFw62[i].length, ANCHOR_LOAD_EXTERNAL);
  203
+	for (rec = (const struct ihex_binrec *)firmware_fw->data;
  204
+	     rec; rec = ihex_next_binrec(rec)) {
  205
+		if (!INTERNAL_RAM(be32_to_cpu(rec->addr))) {
  206
+			err = emi62_writememory(dev, be32_to_cpu(rec->addr),
  207
+						rec->data, be16_to_cpu(rec->len),
  208
+						ANCHOR_LOAD_EXTERNAL);
183 209
 			if (err < 0) {
184 210
 				err("%s - error loading firmware: error = %d", __func__, err);
185 211
 				goto wraperr;
186 212
 			}
187 213
 		}
188 214
 	}
189  
-#else /* MIDI */
190  
-	for (i=0; g_HexMidiFw62[i].type == 0; i++) {
191  
-		if (!INTERNAL_RAM(g_HexMidiFw62[i].address)) {
192  
-			err = emi62_writememory(dev, g_HexMidiFw62[i].address, g_HexMidiFw62[i].data, g_HexMidiFw62[i].length, ANCHOR_LOAD_EXTERNAL);
193  
-			if (err < 0) {
194  
-				err("%s - error loading firmware: error = %d\n", __func__, err);
195  
-				goto wraperr;
196  
-				return err;
197  
-			}
198  
-		}
199  
-	}
200  
-#endif	
  215
+
201 216
 	/* Assert reset (stop the CPU in the EMI) */
202 217
 	err = emi62_set_reset(dev,1);
203 218
 	if (err < 0) {
@@ -205,29 +220,19 @@ static int emi62_load_firmware (struct usb_device *dev)
205 220
 		goto wraperr;
206 221
 	}
207 222
 
208  
-/* FIXME: quick and dirty ifdefs */
209  
-#ifdef SPDIF
210  
-	for (i=0; g_HexSpdifFw62[i].type == 0; i++) {
211  
-		if (INTERNAL_RAM(g_HexSpdifFw62[i].address)) {
212  
-			err = emi62_writememory(dev, g_HexSpdifFw62[i].address, g_HexSpdifFw62[i].data, g_HexSpdifFw62[i].length, ANCHOR_LOAD_INTERNAL);
  223
+	for (rec = (const struct ihex_binrec *)firmware_fw->data;
  224
+	     rec; rec = ihex_next_binrec(rec)) {
  225
+		if (INTERNAL_RAM(be32_to_cpu(rec->addr))) {
  226
+			err = emi62_writememory(dev, be32_to_cpu(rec->addr),
  227
+						rec->data, be16_to_cpu(rec->len),
  228
+						ANCHOR_LOAD_EXTERNAL);
213 229
 			if (err < 0) {
214 230
 				err("%s - error loading firmware: error = %d", __func__, err);
215 231
 				goto wraperr;
216 232
 			}
217 233
 		}
218 234
 	}
219  
-#else /* MIDI */
220  
-	for (i=0; g_HexMidiFw62[i].type == 0; i++) {
221  
-		if (INTERNAL_RAM(g_HexMidiFw62[i].address)) {
222  
-			err = emi62_writememory(dev, g_HexMidiFw62[i].address, g_HexMidiFw62[i].data, g_HexMidiFw62[i].length, ANCHOR_LOAD_INTERNAL);
223  
-			if (err < 0) {
224  
-				err("%s - error loading firmware: error = %d\n", __func__, err);
225  
-				goto wraperr;
226  
-			}
227  
-		}
228  
-	}
229  
-#endif
230  
-	
  235
+
231 236
 	/* De-assert reset (let the CPU run) */
232 237
 	err = emi62_set_reset(dev,0);
233 238
 	if (err < 0) {
@@ -236,6 +241,10 @@ static int emi62_load_firmware (struct usb_device *dev)
236 241
 	}
237 242
 	msleep(250);	/* let device settle */
238 243
 
  244
+	release_firmware(loader_fw);
  245
+	release_firmware(bitstream_fw);
  246
+	release_firmware(firmware_fw);
  247
+
239 248
 	kfree(buf);
240 249
 
241 250
 	/* return 1 to fail the driver inialization
@@ -243,6 +252,10 @@ static int emi62_load_firmware (struct usb_device *dev)
243 252
 	return 1;
244 253
 
245 254
 wraperr:
  255
+	release_firmware(loader_fw);
  256
+	release_firmware(bitstream_fw);
  257
+	release_firmware(firmware_fw);
  258
+
246 259
 	kfree(buf);
247 260
 	dev_err(&dev->dev, "Error\n");
248 261
 	return err;
@@ -300,5 +313,8 @@ MODULE_AUTHOR("Tapio Laxström");
300 313
 MODULE_DESCRIPTION("Emagic EMI 6|2m firmware loader.");
301 314
 MODULE_LICENSE("GPL");
302 315
 
  316
+MODULE_FIRMWARE("emi62/loader.fw");
  317
+MODULE_FIRMWARE("emi62/bitstream.fw");
  318
+MODULE_FIRMWARE(FIRMWARE_FW);
303 319
 /* vi:ai:syntax=c:sw=8:ts=8:tw=80
304 320
  */
8,853  drivers/usb/misc/emi62_fw_m.h
0 additions, 8853 deletions not shown
8,837  drivers/usb/misc/emi62_fw_s.h
0 additions, 8837 deletions not shown
2  firmware/Makefile
@@ -29,6 +29,8 @@ fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \
29 29
 				   yamaha/ds1e_ctrl.fw
30 30
 fw-shipped-$(CONFIG_USB_EMI26) += emi26/loader.fw emi26/firmware.fw \
31 31
 				  emi26/bitstream.fw
  32
+fw-shipped-$(CONFIG_USB_EMI62) += emi62/loader.fw emi62/bitstream.fw \
  33
+				  emi62/spdif.fw emi62/midi.fw
32 34
 fw-shipped-$(CONFIG_USB_KAWETH) += kaweth/new_code.bin kaweth/trigger_code.bin \
33 35
 				   kaweth/new_code_fix.bin \
34 36
 				   kaweth/trigger_code_fix.bin
23  firmware/WHENCE
@@ -167,3 +167,26 @@ Original licence information:
167 167
  */
168 168
 
169 169
 --------------------------------------------------------------------------
  170
+
  171
+Driver: emi62 -- EMI 6|2m USB Audio interface
  172
+
  173
+File: emi62/bitstream.fw
  174
+Info: VERSION=1.0.0.191 DATE= 2002oct28
  175
+
  176
+File: emi62/loader.fw
  177
+Source: EMILOAD.HEX
  178
+Info: VERSION=1.0.2.002 DATE=10.01.2002
  179
+
  180
+File: emi62/midi.fw
  181
+Source: EMI62MFW.HEX
  182
+Info: VERSION=1.04.062 DATE=16.10.2002
  183
+
  184
+File: emi62/spdif.fw
  185
+Source: EMI62SFW.HEX
  186
+Info: VERSION=1.04.062 DATE=16.10.2002
  187
+
  188
+Converted from Intel HEX files, used in our binary representation of ihex.
  189
+
  190
+Original licence information: None
  191
+
  192
+--------------------------------------------------------------------------
4,372  firmware/emi62/bitstream.HEX
4372 additions, 0 deletions not shown
107  firmware/emi62/loader.HEX
... ...
@@ -0,0 +1,107 @@
  1
+:0300000002028772
  2
+:03004300020400B4
  3
+:10010000E4FFFEC220D2E843D820907FAB74FFF01A
  4
+:10011000907FA9F0907FAAF05391EF907F9574C0E3
  5
+:10012000F0907F9EF0907F98F0E4907F94F0907F25
  6
+:100130009D74FFF0907F9774A0F0907F93E054FC43
  7
+:10014000F0907F9C7403F0E4907F96F0907FAFE096
  8
+:100150004401F0907FAEE0440DF0D2AF0FBF00013C
  9
+:100160000EBE07F8BF08F520204275140075130075
  10
+:100170007512007511007F487E927D007C00AB14E3
  11
+:10018000AA13A912A811C31203ED50DB2020D87ABC
  12
+:100190000079007800E5142401F514EA3513F5130D
  13
+:1001A000E93512F512E83511F51180CA3020FD123B
  14
+:1001B00001C75007907FB4E04401F0907FB4E04461
  15
+:0601C00002F0C22080E6FF
  16
+:0101C6002216
  17
+:1001C700907FE9E0245B606024026003020285906F
  18
+:1001D7007FEAE0750A00F50BA3E0FEE4EE420A9021
  19
+:1001E7007FEEE0751500F516A3E0FEE4EE4215E597
  20
+:1001F7001645157003020285E4907FC5F0907FB421
  21
+:10020700E020E3F9907FC5E0F50C120313AF0C7EF5
  22
+:1002170000EF250BF50BEE350AF50AC3E5169FF53A
  23
+:1002270016E5159EF51580C7907FEAE0750A00F57B
  24
+:100237000BA3E0FEE4EE420A907FEEE0751500F5B1
  25
+:1002470016A3E0FEE4EE4215E51645156030E4908E
  26
+:100257007FC5F0907FB4E020E3F9907FC5E0F50C0F
  27
+:1002670012032BAF0C7E00EF250BF50BEE350AF5CD
  28
+:0F0277000AC3E5169FF516E5159EF51580CAC357
  29
+:010286002255
  30
+:0C028700787FE4F6D8FD7581290202CED4
  31
+:10029300020100E493A3F8E493A34003F68001F280
  32
+:1002A30008DFF48029E493A3F85407240CC8C3336C
  33
+:1002B300C4540F4420C8834004F456800146F6DF3B
  34
+:1002C300E4800B010204081020408090046EE47E59
  35
+:1002D300019360BCA3FF543F30E509541FFEE49330
  36
+:1002E300A360010ECF54C025E060A840B8E493A3F7
  37
+:1002F300FAE493A3F8E493A3C8C582C8CAC583CA22
  38
+:10030300F0A3C8C582C8CAC583CADFE9DEE780BED9
  39
+:10031300E50CFFE50BF582E50AF58375927E74C063
  40
+:08032300F8E208F0A3DFFA2262
  41
+:10032B00907F96858392A8827902900000E0B400BA
  42
+:10033B000D7401F0907F97E0547FF04480F0E50C52
  43
+:10034B00FF907EC0E0F528E4A24733F269F2E4A205
  44
+:10035B004633F269F2E4A24533F269F2E4A2443384
  45
+:10036B00F269F2E4A24333F269F2E4A24233F26996
  46
+:10037B00F2E4A24133F269F2E4A24033F269F2A350
  47
+:03038B00DFC222AC
  48
+:10038E00C0E0C083C082907FC4E4F05391EF907FB1
  49
+:0B039E00AB7404F0D082D083D0E032BA
  50
+:1003A900C0E0C083C082D2205391EF907FAB74012B
  51
+:0803B900F0D082D083D0E032C5
  52
+:1003C100C0E0C083C0825391EF907FAB7402F0D044
  53
+:0603D10082D083D0E0326F
  54
+:1003D700C0E0C083C0825391EF907FAB7410F0D020
  55
+:0603E70082D083D0E03259
  56
+:1003ED00EB9FF5F0EA9E42F0E99D42F0E89C45F066
  57
+:0103FD0022DD
  58
+:0103FE0032CC
  59
+:0103FF0032CB
  60
+:100400000203A9000203C10002038E000204580087
  61
+:100410000203D7000203FE000203FF00020484006F
  62
+:10042000020485000204860002048700020488009A
  63
+:100430000204890002048A0002048B0002048C007A
  64
+:1004400002048D0002048E0002048F00020490005A
  65
+:08045000020491000204920075
  66
+:10045800C0E0C083C0825391EF907FAB7408F0D0A6
  67
+:0604680082D083D0E032D7
  68
+:10046E00020A000F010C11040D00000000410000F3
  69
+:01047E00007D
  70
+:04047F000217000060
  71
+:010483000078
  72
+:010484003245
  73
+:010485003244
  74
+:010486003243
  75
+:010487003242
  76
+:010488003241
  77
+:010489003240
  78
+:01048A00323F
  79
+:01048B00323E
  80
+:01048C00323D
  81
+:01048D00323C
  82
+:01048E00323B
  83
+:01048F00323A
  84
+:010490003239
  85
+:010491003238
  86
+:010492003237
  87
+:1011000012011001000000406A0801010001010203
  88
+:10111000000109022000010103A0000904000002EF
  89
+:10112000FF0000040705820240000007050202409C
  90
+:10113000000004030904260341006E0063006800F8
  91
+:101140006F007200200043006800690070007300A7
  92
+:101150002C00200049006E0063002E00280346008A
  93
+:10116000690072006D007700610072006500200068
  94
+:101170004600720061006D00650057006F0072004C
  95
+:101180006B0073002A0343006F006E006600690065
  96
+:101190006700750072006100740069006F006E00E6
  97
+:1011A000200053007400720069006E006700220383
  98
+:1011B00049006E0074006500720066006100630003
  99
+:1011C0006500200053007400720069006E00670023
  100
+:0211D00000001D
  101
+:00000001FF
  102
+/*
  103
+Source: EMILOAD.HEX
  104
+VERSION=1.0.2.002
  105
+DATE=10.01.2002
  106
+EMI26_62
  107
+*/
1,266  firmware/emi62/midi.HEX
... ...
@@ -0,0 +1,1266 @@
  1
+:030000000246B9FC
  2
+:03000300020FFDEC
  3
+:03000B00024E0F93
  4
+:030013000217FDD4
  5
+:03001B00024E1280
  6
+:03002300024DEF9C
  7
+:03002B0002480088
  8
+:03003300024DE695
  9
+:03003B00024DF67D
  10
+:030043000249006F
  11
+:03004B00024E035F
  12
+:030053000248FA66
  13
+:03005B00024DFD56
  14
+:03006300024E0743
  15
+:1005000012011001000000406A08110100010102FF
  16
+:100510000001090208020501008032090400000000
  17
+:10052000010100000A2401000156000201020C240E
  18
+:10053000020101010002000000000D240605010275
  19
+:10054000030000000000000924030204030005006A
  20
+:100550000C24020305020006000000001524060614
  21
+:100560000302000003000300030003000300030074
  22
+:100570000009240304010100060009040100000130
  23
+:100580000200000904010102010200000724010128
  24
+:10059000000100112402010202100344AC0080BBE0
  25
+:1005A0000000770109050A05840101008F07250174
  26
+:1005B0000100000009058F01030001050009040185
  27
+:1005C00002020102000007240101000100112402BF
  28
+:1005D000010203180344AC0080BB00007701090549
  29
+:1005E0000A05460201008F072501010000000905E8
  30
+:1005F0008F01030001050009040200000102000050
  31
+:1006000009040201010102000007240104000100A5
  32
+:100610000E2402010602100244AC0080BB00090552
  33
+:100620008C054C02010000072501000200000904AE
  34
+:1006300002020101020000072401040001000E244F
  35
+:1006400002010603180244AC0080BB0009058C05BA
  36
+:1006500072030100000725010002000009040203E3
  37
+:10066000010102000007240104000100112402011D
  38
+:100670000202100344AC0080BB0000770109058C26
  39
+:1006800005840101000007250100020000090402A1
  40
+:1006900004010102000007240104000100112402EA
  41
+:1006A000010203180344AC0080BB00007701090578
  42
+:1006B0008C05460201000007250100020000090424
  43
+:1006C00003000001010000092401000109000104E8
  44
+:1006D00009040400020103000007240100012400B2
  45
+:1006E000062402010700092403020801070100068D
  46
+:1006F0002402020900092403010A01090100090575
  47
+:10070000010204000000000525010107090581021E
  48
+:100710000400000000052501010A04030904180370
  49
+:1007200045006D006100670069006300200047001C
  50
+:100730006D0062004800220345006D006100670003
  51
+:1007400069006300200045004D004900200036008C
  52
+:100750007C00320020006D002A0343006F006E0011
  53
+:10076000660069006700750072006100740069002E
  54
+:100770006F006E00200053007400720069006E006C
  55
+:100780006700220349006E00740065007200660075
  56
+:10079000610063006500200053007400720069006E
  57
+:0607A0006E00670000007E
  58
+:1007A600E4907666F01244AD202613907666E0C398
  59
+:1007B6009402500AE004F0D242124B7F80EA3026BF
  60
+:1007C60005122801C22630252B907696E054FCF0BF
  61
+:1007D600908003F0121496907696E04403F0908091
  62
+:1007E60003F0E4907667F0907667E004F0E0B44BAF
  63
+:0A07F600F61247FA12411B80C522DB
  64
+:10080000E4907631F0907631E0FF75F003A4240F88
  65
+:10081000F582E43475F583E0FE907FEDE0FDEE6D4A
  66
+:10082000600EEFC3940B5008907631E004F080D551
  67
+:10083000EFB40B08907FB4E04401F022EF75F003B1
  68
+:10084000A4240EF582E43475F583E0907633F02429
  69
+:10085000F0600A240E60028187124BC722907FED60
  70
+:10086000E0640570519076187405F0907637740145
  71
+:10087000F09076397403F0907621F0E4907620F0D1
  72
+:10088000907FEAE0F4602F907620E0FF75F00AA4F4
  73
+:1008900024AAF582E43475F583E0FE907FEAE0FD5A
  74
+:1008A000EE6D6012907621E0FEEFC39E50089076C8
  75
+:1008B00020E004F080D1907FEDE0640670529076E5
  76
+:1008C000187406F09076377404F0907639740AF054
  77
+:1008D000907621F09076207403F0907FEAE0F46047
  78
+:1008E0002F907620E0FF75F00AA424AAF582E43464
  79
+:1008F00075F583E0FE907FEAE0FDEE6D6012907684
  80
+:1009000021E0FEEFC39E5008907620E004F080D1F5
  81
+:10091000907620E0FF75F00AA424AAF582E43475ED
  82
+:10092000F583E0907229F0E490763BF0907621E038
  83
+:10093000FEEF6E7008907FB4E04401F022907FEBF0
  84
+:10094000E014601314700221E224026002817F909F
  85
+:100950007FB4E04401F022907FE9E014707C907F46
  86
+:10096000EAE0F47048907637E0907620F09076399F
  87
+:10097000E0FE907620E0FDC39E502B90763BE0FE9B
  88
+:1009800004F074C02EF582E4347EF583E0FEED754C
  89
+:10099000F00AA424ABF582E43475F583EEF090768A
  90
+:1009A00020E004F080C790763F7401F022907EC072
  91
+:1009B000E0FEEF75F00AA424ABF582E43475F5830C
  92
+:1009C000EEF0E0B4010890763E7401F08005E4900A
  93
+:1009D000763EF090763F7401F022907FB4E04401BF
  94
+:1009E000F022907FE9E024FE700241A314700261BE
  95
+:1009F0003F14700261DB240360028177907FEAE09C
  96
+:100A0000F4706B907637E0907620F0907639E0FFC6
  97
+:100A1000907620E0FEC39F504E90763BE0FF04F0BE
  98
+:100A200074C02FF582E4347EF583E0FFEE75F00AA2
  99
+:100A3000A424ACF582E43475F583EFF090763BE0C6
  100
+:100A4000FF04F074C02FF582E4347EF583E0FFEEFE
  101
+:100A500075F00AA424ADF582E43475F583EFF090C7
  102
+:100A60007620E004F080A49076407401F022907E1D
  103
+:100A7000C0E0FF907620E0FE75F00AA424ACF58279
  104
+:100A8000E43475F583EFF0907EC1E0FFEE75F00A77
  105
+:100A9000A424ADF582E43475F583EFF090764174CB
  106
+:100AA00001F022907FEAE0F47066907637E090766D
  107
+:100AB00020F0907639E0FF907620E0FEC39F400260
  108
+:100AC000818E90763BE0FF04F074C02FF582E43411
  109
+:100AD0007EF583E0FFEE75F00AA424AEF582E434DF
  110
+:100AE00075F583EFF090763BE0FF04F074C02FF5CE
  111
+:100AF00082E4347EF583E0FFEE75F00AA424AFF5BE
  112
+:100B000082E43475F583EFF0907620E004F080A263
  113
+:100B1000907EC0E0FF907620E0FE75F00AA424AE3F
  114
+:100B2000F582E43475F583EFF0907EC1E0FFEE7559
  115
+:100B3000F00AA424AFF582E43475F583EFF0229037
  116
+:100B40007FEAE0F47066907637E0907620F0907659
  117
+:100B500039E0FF907620E0FEC39F4002818E9076C0
  118
+:100B60003BE0FF04F074C02FF582E4347EF583E0AF
  119
+:100B7000FFEE75F00AA424B0F582E43475F583EF36
  120
+:100B8000F090763BE0FF04F074C02FF582E4347EF1
  121
+:100B9000F583E0FFEE75F00AA424B1F582E4347524
  122
+:100BA000F583EFF0907620E004F080A2907EC0E024
  123
+:100BB000FF907620E0FE75F00AA424B0F582E434BC
  124
+:100BC00075F583EFF0907EC1E0FFEE75F00AA42486
  125
+:100BD000B1F582E43475F583EFF022907FEAE0F41A
  126
+:100BE0007066907637E0907620F0907639E0FF904E
  127
+:100BF0007620E0FEC39F4002818E90763BE0FF04AA
  128
+:100C0000F074C02FF582E4347EF583E0FFEE75F0DA
  129
+:100C10000AA424B2F582E43475F583EFF090763BB4
  130
+:100C2000E0FF04F074C02FF582E4347EF583E0FF2A
  131
+:100C3000EE75F00AA424B3F582E43475F583EFF081
  132
+:100C4000907620E004F080A2907EC0E0FF907620B5
  133
+:100C5000E0FE75F00AA424B2F582E43475F583EF62
  134
+:100C6000F0907EC1E0FFEE75F00AA424B3F582E4B3
  135
+:100C70003475F583EFF022907FB4E04401F02290C8
  136
+:0F0C80007FB4E04401F022907FB4E04401F02201
  137
+:100C8F004176680141766A0241766B0AC120C12123
  138
+:020C9F00C12F63
  139
+:040CA1004176230075
  140
+:100CA500417201014572050002C9000045720A0042
  141
+:100CB500010203044D720FD100D1000000000000B5
  142
+:100CC500282809004D721C010001020304050607CE
  143
+:100CD50008090A0B41722E2241722F2341723020DE
  144
+:100CE5004172312162D2723A00000000000000001A
  145
+:100CF50000000000000000000000000000000000EF
  146
+:100D050000000000000000000000000000000000DE
  147
+:100D150000000000000000000000000000000000CE
  148
+:100D250000000000000000000000000000000000BE
  149
+:100D350000000000000000000000000000000000AE
  150
+:100D4500000000000000000000000000000000009E
  151
+:100D5500000000000000000000000000000000008E
  152
+:100D6500000000000000000000000000000000007E
  153
+:100D75000000000000000000000001010101010168
  154
+:100D8500010101010101010101010101010101014E
  155
+:100D9500010101010101010101010101010101013E
  156
+:100DA500010101010101010101010101010101012E
  157
+:100DB5000101010101010101020202020202020216
  158
+:100DC50002020202020202020202020202020202FE
  159
+:100DD50002020202020202020202020202020202EE
  160
+:100DE50002020202020202020202020202020202DE
  161
+:100DF50002020202020303030303030303030303C3
  162
+:100E050003030303030303030303030303030303AD
  163
+:100E1500030303030303030303030303030303039D
  164
+:100E2500030303030303030303030303030303038D
  165
+:100E3500030304040404040404040404040404046F
  166
+:100E4500040404040404040404040404040404045D
  167
+:100E5500040404040404040404040404040404044D
  168
+:100E6500040404040404040404040404040404043D
  169
+:100E7500050505050505050505050505050505051D
  170
+:100E8500050505050505050505050505050505050D
  171
+:100E950005050505050505050505050505050505FD
  172
+:100EA50005050505050505050505050505050606EB
  173
+:100EB50006060606060606060606060606060606CD
  174
+:100EC50006060606060606060606060606060606BD
  175
+:100ED50006060606060606060606060606060606AD
  176
+:100EE5000606060606060606060606070707080896
  177
+:100EF500080909090A0A0A0B0B0B0C0C0C0D0D0D40
  178
+:100F05000E0E0E0F0F0F10101011111112121213D9
  179
+:100F15001313141414151515161616171717181874
  180
+:100F250018191919191A1A1A1A1B1B1B1B1C1C1C18
  181
+:100F35001C1D1D1D1D1E1E1E1E1F1F1F1F202020C8
  182
+:100F45002121212222222323242425252626272761
  183
+:100F5500282829292A2A2B2B2C2C2D2D2E2E2F2FD4
  184
+:100F65003030313132323333343435353636373744
  185
+:100F7500383839393A3A3B3C3D3E3F40414243449B
  186
+:100F85004546474849494A4B4B4C4D4E4F505152A7
  187
+:100F95005354555556565757585A5B5D5E5F6162B7
  188
+:100FA500636465666768696A6B6C6D6F717273748B
  189
+:100FB50075767778797A7B7C7E80013701013800F8
  190
+:010FC500002B
  191
+:100FC600E4FF74462FF582E43476F583E0FE742060
  192
+:100FD6002FF582E43480F583EEF0744E2FF582E42B
  193
+:100FE6003476F583E0FE74302FF582E43480F583A1
  194
+:060FF600EEF00FBF08CC75
  195
+:010FFC0022D2
  196
+:030FFD00C2893274
  197
+:10100000E490762CF090762CE0FF75F003A4240F8A
  198
+:10101000F582E43475F583E0FE907FEDE0FDEE6D42
  199
+:10102000600EEFC3940B500890762CE004F080D54E
  200
+:10103000EFB40B08907FB4E04401F022EF75F003A9
  201
+:10104000A4240EF582E43475F583E090762EF02426
  202
+:10105000F0600A240F6002817D124BA422907FED84
  203
+:10106000E0640570519076187405F090763874013C
  204
+:10107000F090763A7403F090761CF0E490761BF0D2
  205
+:10108000907FEAE0F4602F90761BE0FF75F00AA4F1
  206
+:1010900024AAF582E43475F583E0FE907FEAE0FD52
  207
+:1010A000EE6D601290761CE0FEEFC39E50089076C5
  208
+:1010B0001BE004F080D1907FEDE0640670529076E2
  209
+:1010C000187406F09076387404F090763A740AF04A
  210
+:1010D00090761CF090761B7403F0907FEAE0F46049
  211
+:1010E0002F90761BE0FF75F00AA424AAF582E43461
  212
+:1010F00075F583E0FE907FEAE0FDEE6D601290767C
  213
+:101100001CE0FEEFC39E500890761BE004F080D1F7
  214
+:10111000E490761EF090761CE0FF90761BE0FE6F68
  215
+:101120007008907FB4E04401F022907FEBE01460FF
  216
+:101130001314700221BF240260028175907FB4E015
  217
+:101140004401F022907FE9E0247F706B907FEAE019
  218
+:10115000F4704A907638E090761BF090763AE0FF93
  219
+:1011600090761BE0FDC39F502BED75F00AA424ABD5
  220
+:10117000F582E43475F583E0FF90761EE0FD04F01F
  221
+:1011800074002DF582E4347FF583EFF090761BE058
  222
+:1011900004F080C790761EE0907FB5F022EE75F0E7
  223
+:1011A0000AA424ABF582E43475F583E0907F00F067
  224
+:1011B000907FB57401F022907FB4E04401F022905A
  225
+:1011C0007FE9E0247E7002417E1470026123147076
  226
+:1011D0000261C824036002816D907FEAE0F4706DC3
  227
+:1011E000907638E090761BF090763AE0FF90761B90
  228
+:1011F000E0C39F504FE0FF75F00AA424ACF582E4F1
  229
+:101200003475F583E0FE90761EE0FD04F074002D49
  230
+:10121000F582E4347FF583EEF0EF75F00AA424AD97
  231
+:10122000F582E43475F583E0FF90761EE0FE04F06D
  232
+:1012300074002EF582E4347FF583EFF090761BE0A6
  233
+:1012400004F080A490761EE0907FB5F02290761B8B
  234
+:10125000E0FF75F00AA424ACF582E43475F583E070
  235
+:10126000907F00F0EF75F00AA424ADF582E43475A8
  236
+:10127000F583E0907F01F0907FB57402F022907FBB
  237
+:10128000EAE0F4706D907638E090761BF090763A54
  238
+:10129000E0FF90761BE0C39F504FE0FF75F00AA47B
  239
+:1012A00024AEF582E43475F583E0FE90761EE0FD11
  240
+:1012B00004F074002DF582E4347FF583EEF0EF75D1
  241
+:1012C000F00AA424AFF582E43475F583E0FF90764C
  242
+:1012D0001EE0FE04F074002EF582E4347FF583EF07
  243
+:1012E000F090761BE004F080A490761EE0907FB52D
  244
+:1012F000F02290761BE0FF75F00AA424AEF582E49C
  245
+:101300003475F583E0907F00F0EF75F00AA424AF08
  246
+:10131000F582E43475F583E0907F01F0907FB57439
  247
+:1013200002F022907FEAE0F4706D907638E09076DB
  248
+:101330001BF090763AE0FF90761BE0C39F504FE0A1
  249
+:10134000FF75F00AA424B0F582E43475F583E0FE5D
  250
+:1013500090761EE0FD04F074002DF582E4347FF5F4
  251
+:1013600083EEF0EF75F00AA424B1F582E43475F54C
  252
+:1013700083E0FF90761EE0FE04F074002EF582E418
  253
+:10138000347FF583EFF090761BE004F080A4907634
  254
+:101390001EE0907FB5F02290761BE0FF75F00AA466
  255
+:1013A00024B0F582E43475F583E0907F00F0EF75AA
  256
+:1013B000F00AA424B1F582E43475F583E0907F014E
  257
+:1013C000F0907FB57402F022907FEAE0F4706D90A7
  258
+:1013D0007638E090761BF090763AE0FF90761BE04E
  259
+:1013E000C39F504FE0FF75F00AA424B2F582E434A5
  260
+:1013F00075F583E0FE90761EE0FD04F074002DF597
  261
+:1014000082E4347FF583EEF0EF75F00AA424B3F59F
  262
+:1014100082E43475F583E0FF90761EE0FE04F074FC
  263
+:10142000002EF582E4347FF583EFF090761BE00424
  264
+:10143000F080A490761EE0907FB5F02290761BE0BD
  265
+:10144000FF75F00AA424B2F582E43475F583E090C8
  266
+:101450007F00F0EF75F00AA424B3F582E43475F54B
  267
+:1014600083E0907F01F0907FB57402F022907FB40A
  268
+:10147000E04401F022907FB4E04401F022907FB478
  269
+:05148000E04401F02230
  270
+:101485007400F58690FDA57C05A3E582458370F97A
  271
+:011495002234
  272
+:10149600907FD6E04480F0438701000000000022E0
  273
+:1014A600C0D0C0E08FE0C0E08EE0C0E08DE0C0E0DC
  274
+:1014B6008CE0C0E0C082C0830586C084C0857D0004
  275
+:1014C600907FE3747BF0A37480F07C11907F99E0A9
  276
+:1014D6005440DC030214F3B40013907FE27440F02E
  277
+:1014E600907FE5F0907FE27400F00214D29076903F
  278
+:1014F600E0B4011290768FE02DFD907FE27480F0CB
  279
+:10150600907F6C021557B4021290768FE02DFD90F5
  280
+:101516007FE27480F0907F6C021596B40312907689
  281
+:101526008FE02DFD907FE27480F0907F6C0215E1D4
  282
+:10153600B4041290768FE02DFD907FE27480F090D7
  283
+:101546007F6C021610907FE27480F0907F6C02161A
  284
+:1015560040F0F0F0F0F0F0F0F0F0F0F0F0DDF27DB9
  285
+:10156600020586907FE27400F0907F9BE05404B4FD
  286
+:1015760000050586021640907FE27480F00586F02D
  287
+:10158600F0F0F0F0F0F0F0F0F0F0F0DDD4021640FC
  288
+:10159600F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0F045
  289
+:1015A600F0F0DDEC7D020586907FE27400F0907F1E
  290
+:1015B6009BE05404B400050586021640907FE27451
  291
+:1015C60080F00586F0F0F0F0F0F0F0F0F0F0F0F0DA
  292
+:0615D600F0F0F0F0F0F06F
  293
+:1015DC00DDCE021640F0F0F0F0DDFA7D02058690CB
  294
+:1015EC007FE27400F0907F9BE05404B40005058604
  295
+:1015FC00021640907FE27480F00586F0F0F0F0DD8A
  296
+:10160C00DC021640F0F0F0F0F0F0DDF87D0205861B
  297
+:10161C00907FE27400F0907F9BE05404B4000505C9
  298
+:10162C0086021640907FE27480F00586F0F0F0F0B0
  299
+:10163C00F0F0DDDA907FE27400F0D085D08405867E
  300
+:10164C00D083D082D0E0FCD0E0FDD0E0FED0E0FF33
  301
+:05165C00D0E0D0D02217
  302
+:10166100C0D0C0E0C082C08390767CE0907F6FF0F4
  303
+:1016710090767DE0907F6FF090767EE0907F6FF0C6
  304
+:09168100D083D082D0E0D0D02249
  305
+:10168A00C0D0C0E08FE0C0E08EE0C0E0C082C0837E
  306
+:10169A000586C084C085907687E0FFBF00030217E5
  307
+:1016AA0001907F96E04480F0907FE27480F0907F12
  308
+:1016BA0062E00586907FE27400F0907F96E0547FA6
  309
+:1016CA00F0907FE27480F090768EE0B40105058692
  310
+:1016DA000216F6B4020505860216EB05860216FB0B
  311
+:1016EA00E0E0E0E0E0E0DFF80216FBE0E0E0E0DF67
  312
+:1016FA00FA907FE27400F0D085D0840586D083D03A
  313
+:0C170A0082D0E0FED0E0FFD0E0D0D02282
  314
+:10171600C082C083C0E0E8C0E078D1E814F870FB6E
  315
+:0A172600D0E0F8D0E0D083D082229A
  316
+:10173000C082C083C0E0E8C0E07878E814F870FBAD
  317
+:0A174000D0E0F8D0E0D083D0822280
  318
+:07174A00907FC57402F0223C
  319
+:10175100907EC0E0907645F0907EC1E0907644F0B6
  320
+:10176100907EC2E0907643F0B40003021778907641
  321
+:10177100197403F002178E907644E0B4BB09907699
  322
+:10178100197402F002178E9076197401F090764266
  323
+:03179100E4F0225F
  324
+:041794008D298B2AE6
  325
+:10179800124A55EA4960571236927E0029FFEE3AFE
  326
+:1017A800C9EFC9752BFFF52C892DAB2BAA2CA92DB8
  327
+:1017B8009000011236ABFF64046005EF6405702EDB
  328
+:1017C800EFB404159000021236AB6529700B900037
  329
+:1017D800031236AB652A7001221236927E0029FF69
  330
+:1017E800EE3AC9EFC9752BFFF52C892D80BC7B001B
  331
+:0417F8007A007900FA
  332
+:0117FC0022CA
  333
+:0317FD00C28B326A
  334
+:10180000907690E014603714700201D814700221B1
  335
+:1018100072147002413B240460026103907FFC74E7
  336
+:10182000CCF0907FFF74FCF0907695E04401F0548A
  337
+:1018300005F0908001F0E490761AF0C22E229076A6
  338
+:1018400095E04401F04402F0303E06E04404F080AC
  339
+:1018500007907695E054FBF090761AE0B40108907A
  340
+:101860007695E0908001F0907619E0FFB401229027
  341
+:101870007FFC7474F0907FFF74FCF090768F742B73
  342
+:10188000F0907697E054FDF0E4907681F0907680C9
  343
+:10189000F0EFB40222907FFC7468F0907FFF74FC3C
  344
+:1018A000F090768F742FF0907697E04402F0E490F9
  345
+:1018B0007681F0907680F0303F09907697E054FE84
  346
+:1018C000F08007907697E04401F0907697E054FB23
  347
+:1018D000F0908002F0D22E22907695E054FEF044F3
  348
+:1018E00002F0303E06E04404F08007907695E05424
  349
+:1018F000FBF090761AE0B40108907695E0908001B4
  350
+:10190000F0907619E0FFB40122907FFC7430F090E3
  351
+:101910007FFF74FCF090768F742BF0907697E054F4
  352
+:10192000FDF0E4907681F0907680F0EFB4022290A2
  353
+:101930007FFC741CF0907FFF74FCF090768F742F06
  354
+:10194000F0907697E04402F0E4907681F090768013
  355
+:10195000F0303F09907697E054FEF080079076973C
  356
+:10196000E04401F0907697E054FBF0908002F0D2D2
  357
+:101970002E22907695E04401F04402F04408F030C5
  358
+:101980003E06E04404F08007907695E054FBF0902A
  359
+:10199000761AE0B40108907695E0908001F0907698
  360
+:1019A00019E0FFB40125907FFC74CCF0907FFF74A8
  361
+:1019B000FCF090768F742BF0907697E054FDF05405
  362
+:1019C000FBF0E4907681F0907680F0EFB402259001
  363
+:1019D0007FFC74C8F0907FFF74FCF090768F742FBA
  364
+:1019E000F0907697E04402F054FBF0E4907681F0BA
  365
+:1019F000907680F0EFB40325907FFC7498F0907F90
  366
+:101A0000FF74FCF090768F745FF0907697E054FD51
  367
+:101A1000F04404F0E4907681F0907680F0303F0955
  368
+:101A2000907697E054FEF08007907697E04401F0BE
  369
+:101A3000907697E0908002F0D22E22907695E05436
  370
+:101A4000FEF04402F04408F0303E06E04404F0802A
  371
+:101A500007907695E054FBF090761AE0B401089078
  372
+:101A60007695E0908001F0907619E0FFB401259022
  373
+:101A70007FFC74B4F0907FFF74FCF090768F742B31
  374
+:101A8000F0907697E054FDF054FBF0E4907681F00E
  375
+:101A9000907680F0EFB40225907FFC74B0F0907FD8
  376
+:101AA000FF74FCF090768F742FF0907697E04402EC
  377
+:101AB000F054FBF0E4907681F0907680F0EFB40380
  378
+:101AC00025907FFC7468F0907FFF74FCF090768F17
  379
+:101AD000745FF0907697E054FDF04404F0E4907663
  380
+:101AE00081F0907680F0303F09907697E054FEF0D8
  381
+:101AF0008007907697E04401F0907697E09080021E
  382
+:041B0000F0D22E22CF
  383
+:101B0400302C38C22C907619E0FFB4010E90767C0C
  384
+:101B140074C0F0A37414F0A3740BF0EFB4020DE4DA
  385
+:101B240090767CF0A37410F0A3740CF0EFB4030B64
  386
+:0C1B3400E490767CF0A37418F0A3F0227B
  387
+:101B40000000000000000000000000000000000095
  388
+:101B50000000000000000000000000000000000085
  389
+:101B60000000000000000000000000000000000075
  390
+:101B70000000000000000000000000000000000065
  391
+:101B80000000000000000000000000000000000055
  392
+:101B90000000000000000000000000000000000045
  393
+:101BA0000000000000000000000000000000000035
  394
+:101BB0000000000000000000000000000000000025
  395
+:101BC0000000000000000000000000000000000015
  396
+:101BD0000000000000000000000000000000000005
  397
+:101BE00000000000000000000000000000000000F5
  398
+:101BF00000000000000000000000000000000000E5
  399
+:101C000000000000000000000000000000000000D4
  400
+:101C100000000000000000000000000000000000C4
  401
+:101C200000000000000000000000000000000000B4
  402
+:101C300000000000000000000000000000000000A4
  403
+:101C40000000000000000000000000000000000094
  404
+:101C50000000000000000000000000000000000084
  405
+:101C60000000000000000000000000000000000074
  406
+:101C70000000000000000000000000000000000064
  407
+:101C80000000000000000000000000000000000054
  408
+:101C90000000000000000000000000000000000044
  409
+:101CA0000000000000000000000000000000000034
  410
+:101CB0000000000000000000000000000000000024
  411
+:101CC0000000000000000000000000000000000014
  412
+:101CD0000000000000000000000000000000000004
  413
+:101CE00000000000000000000000000000000000F4
  414
+:101CF00000000000000000000000000000000000E4
  415
+:101D000000000000000000000000000000000000D3
  416
+:101D100000000000000000000000000000000000C3
  417
+:101D200000000000000000000000000000000000B3
  418
+:101D300000000000000000000000000000000000A3
  419
+:101D40000000000000000000000000000000000093
  420
+:101D50000000000000000000000000000000000083
  421
+:101D60000000000000000000000000000000000073
  422
+:101D70000000000000000000000000000000000063
  423
+:101D80000000000000000000000000000000000053
  424
+:101D90000000000000000000000000000000000043
  425
+:101DA0000000000000000000000000000000000033
  426
+:101DB0000000000000000000000000000000000023
  427
+:101DC0000000000000000000000000000000000013
  428
+:101DD0000000000000000000000000000000000003
  429
+:101DE00000000000000000000000000000000000F3
  430
+:101DF00000000000000000000000000000000000E3
  431
+:101E000000000000000000000000000000000000D2
  432
+:101E100000000000000000000000000000000000C2
  433
+:101E200000000000000000000000000000000000B2
  434
+:101E300000000000000000000000000000000000A2
  435
+:101E40000000000000000000000000000000000092
  436
+:101E50000000000000000000000000000000000082
  437
+:101E60000000000000000000000000000000000072
  438
+:101E70000000000000000000000000000000000062
  439
+:101E80000000000000000000000000000000000052
  440
+:101E90000000000000000000000000000000000042
  441
+:101EA0000000000000000000000000000000000032
  442
+:0E1EB000000000000000000000000000000024
  443
+:101EBE000000000000000000000000000000000014
  444
+:101ECE000000000000000000000000000000000004
  445
+:101EDE0000000000000000000000000000000000F4
  446
+:101EEE0000000000000000000000000000000000E4
  447
+:101EFE0000000000000000000000000000000000D4
  448
+:101F0E0000000000000000000000000000000000C3
  449
+:101F1E0000000000000000000000000000000000B3
  450
+:101F2E0000000000000000000000000000000000A3
  451
+:021F3E000000A1
  452
+:101F40000000000000000000000000000000000091
  453
+:101F50000000000000000000000000000000000081
  454
+:101F60000000000000000000000000000000000071
  455
+:101F70000000000000000000000000000000000061
  456
+:101F80000000000000000000000000000000000051
  457
+:101F90000000000000000000000000000000000041
  458
+:101FA0000000000000000000000000000000000031
  459
+:101FB0000000000000000000000000000000000021
  460
+:101FC0000000000000000000000000000000000011
  461
+:101FD0000000000000000000000000000000000001
  462
+:101FE00000000000000000000000000000000000F1
  463
+:101FF00000000000000000000000000000000000E1
  464
+:1020000000000000000000000000000000000000D0
  465
+:1020100000000000000000000000000000000000C0
  466
+:1020200000000000000000000000000000000000B0
  467
+:1020300000000000000000000000000000000000A0
  468
+:102040000000000000000000000000000000000090
  469
+:102050000000000000000000000000000000000080
  470
+:102060000000000000000000000000000000000070
  471
+:102070000000000000000000000000000000000060
  472
+:102080000000000000000000000000000000000050
  473
+:102090000000000000000000000000000000000040
  474
+:1020A0000000000000000000000000000000000030
  475
+:1020B0000000000000000000000000000000000020
  476
+:1020C0000000000000000000000000000000000010
  477
+:1020D0000000000000000000000000000000000000
  478
+:1020E00000000000000000000000000000000000F0
  479
+:1020F00000000000000000000000000000000000E0
  480
+:1021000000000000000000000000000000000000CF
  481
+:1021100000000000000000000000000000000000BF
  482
+:1021200000000000000000000000000000000000AF
  483
+:10213000000000000000000000000000000000009F
  484
+:10214000000000000000000000000000000000008F
  485
+:10215000000000000000000000000000000000007F
  486
+:10216000000000000000000000000000000000006F
  487
+:10217000000000000000000000000000000000005F
  488
+:10218000000000000000000000000000000000004F
  489
+:10219000000000000000000000000000000000003F
  490
+:1021A000000000000000000000000000000000002F
  491
+:1021B000000000000000000000000000000000001F
  492
+:1021C000000000000000000000000000000000000F
  493
+:1021D00000000000000000000000000000000000FF
  494
+:1021E00000000000000000000000000000000000EF
  495
+:1021F00000000000000000000000000000000000DF
  496
+:1022000000000000000000000000000000000000CE
  497
+:1022100000000000000000000000000000000000BE
  498
+:1022200000000000000000000000000000000000AE
  499
+:10223000000000000000000000000000000000009E
  500
+:10224000000000000000000000000000000000008E
  501
+:10225000000000000000000000000000000000007E
  502
+:10226000000000000000000000000000000000006E
  503
+:10227000000000000000000000000000000000005E
  504
+:10228000000000000000000000000000000000004E
  505
+:10229000000000000000000000000000000000003E
  506
+:1022A000000000000000000000000000000000002E
  507
+:1022B000000000000000000000000000000000001E
  508
+:1022C000000000000000000000000000000000000E
  509
+:1022D00000000000000000000000000000000000FE
  510
+:1022E00000000000000000000000000000000000EE
  511
+:1022F00000000000000000000000000000000000DE
  512
+:1023000000000000000000000000000000000000CD
  513
+:1023100000000000000000000000000000000000BD
  514
+:1023200000000000000000000000000000000000AD
  515
+:10233000000000000000000000000000000000009D
  516
+:10234000000000000000000000000000000000008D
  517
+:10235000000000000000000000000000000000007D
  518
+:10236000000000000000000000000000000000006D
  519
+:0E23700000000000000000000000000000005F
  520
+:10237E00000000000000000000000000000000004F
  521
+:10238E00000000000000000000000000000000003F
  522
+:10239E00000000000000000000000000000000002F
  523
+:1023AE00000000000000000000000000000000001F
  524
+:1023BE00000000000000000000000000000000000F
  525
+:1023CE0000000000000000000000000000000000FF
  526
+:1023DE0000000000000000000000000000000000EF
  527
+:1023EE0000000000000000000000000000000000DF
  528
+:1023FE0000000000000000000000000000000000CF
  529
+:10240E0000000000000000000000000000000000BE
  530
+:10241E0000000000000000000000000000000000AE
  531
+:10242E00000000000000000000000000000000009E
  532
+:10243E00000000000000000000000000000000008E
  533
+:10244E00000000000000000000000000000000007E
  534
+:10245E00000000000000000000000000000000006E
  535
+:10246E00000000000000000000000000000000005E
  536
+:10247E00000000000000000000000000000000004E
  537
+:10248E00000000000000000000000000000000003E
  538
+:10249E00000000000000000000000000000000002E
  539
+:1024AE00000000000000000000000000000000001E
  540
+:1024BE00000000000000000000000000000000000E
  541
+:1024CE0000000000000000000000000000000000FE
  542
+:1024DE0000000000000000000000000000000000EE
  543
+:1024EE0000000000000000000000000000000000DE
  544
+:1024FE0000000000000000000000000000000000CE
  545
+:10250E0000000000000000000000000000000000BD
  546
+:10251E0000000000000000000000000000000000AD
  547
+:10252E00000000000000000000000000000000009D
  548
+:10253E00000000000000000000000000000000008D
  549
+:10254E00000000000000000000000000000000007D
  550
+:10255E00000000000000000000000000000000006D
  551
+:10256E00000000000000000000000000000000005D
  552
+:10257E00000000000000000000000000000000004D
  553
+:10258E00000000000000000000000000000000003D
  554
+:10259E00000000000000000000000000000000002D
  555
+:1025AE00000000000000000000000000000000001D
  556
+:1025BE00000000000000000000000000000000000D
  557
+:1025CE0000000000000000000000000000000000FD
  558
+:1025DE0000000000000000000000000000000000ED
  559
+:1025EE0000000000000000000000000000000000DD
  560
+:1025FE0000000000000000000000000000000000CD
  561
+:10260E0000000000000000000000000000000000BC
  562
+:10261E0000000000000000000000000000000000AC
  563
+:10262E00000000000000000000000000000000009C
  564
+:10263E00000000000000000000000000000000008C
  565
+:10264E00000000000000000000000000000000007C
  566
+:10265E00000000000000000000000000000000006C
  567
+:10266E00000000000000000000000000000000005C
  568
+:10267E00000000000000000000000000000000004C
  569
+:10268E00000000000000000000000000000000003C
  570
+:10269E00000000000000000000000000000000002C
  571
+:1026AE00000000000000000000000000000000001C
  572
+:1026BE00000000000000000000000000000000000C
  573
+:1026CE0000000000000000000000000000000000FC
  574
+:1026DE0000000000000000000000000000000000EC
  575
+:0E26EE000000000000000000000000000000DE
  576
+:1026FC0000000000000000000000000000000000CE
  577
+:10270C0000000000000000000000000000000000BD
  578
+:10271C0000000000000000000000000000000000AD
  579
+:10272C00000000000000000000000000000000009D
  580
+:10273C00000000000000000000000000000000008D
  581
+:10274C00000000000000000000000000000000007D
  582
+:10275C00000000000000000000000000000000006D
  583
+:10276C00000000000000000000000000000000005D
  584
+:10277C00000000000000000000000000000000004D
  585
+:10278C00000000000000000000000000000000003D
  586
+:10279C00000000000000000000000000000000002D
  587
+:1027AC00000000000000000000000000000000001D
  588
+:1027BC00000000000000000000000000000000000D
  589
+:1027CC0000000000000000000000000000000000FD
  590
+:1027DC0000000000000000000000000000000000ED
  591
+:1027EC0000000000000000000000000000000000DD
  592
+:0527FC000000000022B6
  593
+:10280100C220C221C22A907FE8E01237F9283000A5
  594
+:10281100288C0128A2022A1F212A6A22293D802907
  595
+:102821007D8129D1822A84A12ABAA200002ABF90DF
  596
+:102831007FE9E014601124FE602824FE603B24FC43
  597
+:102841007040123FE541CB124E1D400241CB907FBB
  598
+:10285100EAE0B40104C22241CB907FB4E04401F02C
  599
+:1028610041CB124E1F907FEAE0B40104D22241CB4A
  600
+:10287100907FB4E04401F041CB907FB4E04401F09B
  601
+:1028810041CB907FB4E04401F041CB907FE9E0245B
  602
+:10289100F5700512486341CB907FB4E04401F041EB
  603
+:1028A100CB907FE9E024FD605424026002213412C0
  604
+:1028B1004E1D400241CB907FEAE07038907FECE002
  605
+:1028C100F45480FFC4540FFFE054072F25E024B4D3
  606
+:1028D100F582E4347FF583E4F0907FECE05480FFEF
  607
+:1028E100131313541FFFE054072F907FD7F0E044D8
  608
+:1028F10020F041CB907FB4E04401F041CB124E1F58
  609
+:10290100400241CB907FEAE07020907FECE0F454EC
  610
+:1029110080FFC4540FFFE054072F25E024B4F58253
  611
+:10292100E4347FF5837401F041CB907FB4E044013E
  612
+:10293100F041CB907FB4E04401F041CB907FE9E0DE
  613
+:10294100601224F86009240270291243E741CB1276
  614
+:102951004DCA41CB124E1BA222E433FF25E0FFA258
  615
+:1029610023E4334F907F00F0E4A3F0907FB574022D
  616
+:10297100F041CB907FB4E04401F041CB907FE9E09E
  617
+:10298100603324F6602A2404703D907FEBE024DE5E
  618
+:10299100600C047012907FB4E04401F041CB907F51
  619
+:1029A100B4E04401F041CB907FB4E04401F041CB6D
  620
+:1029B10012474541CB124E1BE4907F00F0A3F090EB
  621
+:1029C1007FB57402F041CB907FB4E04401F041CB7C
  622
+:1029D100907FE9E024F46034240C7039124E1B908E
  623
+:1029E1007FECE0F45480FFC4540FFFE054072F251F
  624
+:1029F100E024B4F582E4347FF583E054FD907F0058
  625
+:102A0100F0E4A3F0907FB57402F041CB907FB4E085
  626
+:102A11004401F041CB907FB4E04401F041CB907F81
  627
+:102A2100E9E024F6601214601A2402701DD220908D
  628
+:102A31007FB4E04401F08012D220907FB4E04401E1
  629
+:102A4100F08007907FB4E04401F0202018907FEEE1
  630
+:102A5100E07004A3E0600BD229D22712174AD22AD0
  631
+:102A61008003120800C2208061907FEEE07004A311
  632
+:102A7100E0600BD229D22812174AD22A804C123890
  633
+:102A8100748047907FE9E024FE601214601A2402EA
  634
+:102A9100701DD221907FB4E04401F08012D22190C8
  635
+:102AA1007FB4E04401F08007907FB4E04401F0205E
  636
+:102AB1002103121000C2218011122AD6800C124E5D
  637
+:102AC100215007907FB4E04401F0202A07907FB4A1
  638
+:052AD100E04402F022C8
  639
+:102AD600E4907627F0907627E0FF75F00FA4244265
  640
+:102AE600F582E43475F583E0FE907FECE0FDEE6D53
  641
+:102AF600600EEFC394065008907627E004F080D568
  642
+:102B0600EFB40608907FB4E04401F022EF75F00FB1
  643
+:102B1600A42441F582E43475F583E0907628F02408
  644
+:102B26009F7002A17424216002A1A1907FE9E02494
  645
+:102B36007E700261FC14700281B524026002A16CF1
  646
+:102B4600EF75F00FA42443F582E43475F583E0FCB9
  647
+:102B5600A3E0FDA3E0FEA3E0FF7B447AAC79007816
  648
+:102B660000C31237AB7013907F007444F0A374ACAB
  649
+:102B7600F0E4A3F0907FB57403F0907627E075F04B
  650
+:102B86000FA42443F582E43475F583E0FCA3E0FD4D
  651
+:102B9600A3E0FEA3E0FF7B807ABB79007800C31236
  652
+:102BA60037AB7013907F007480F0A374BBF0E4A37E
  653
+:102BB600F0907FB57403F0907627E075F00FA424AB
  654
+:102BC60043F582E43475F583E0FCA3E0FDA3E0FE63
  655
+:102BD600A3E0FF7B007A7779017800C31237AB60F8
  656
+:102BE60002A1A8907F00F0A37477F0A37401F0907F
  657
+:102BF6007FB57403F022907627E075F00FA4244782
  658
+:102C0600F582E43475F583E0FCA3E0FDA3E0FEA3C2
  659
+:102C1600E0FF7B447AAC79007800C31237AB7013BF
  660
+:102C2600907F007444F0A374ACF0E4A3F0907FB5F9
  661
+:102C36007403F0907627E075F00FA42447F582E43C
  662
+:102C46003475F583E0FCA3E0FDA3E0FEA3E0FF7B83
  663
+:102C5600807ABB79007800C31237AB7013907F007F
  664
+:102C66007480F0A374BBF0E4A3F0907FB57403F016
  665
+:102C7600907627E075F00FA42447F582E43475F5C5
  666
+:102C860083E0FCA3E0FDA3E0FEA3E0FF7B007A77F0
  667
+:102C960079017800C31237AB6002A1A8907F00F0DB
  668
+:102CA600A37477F0A37401F0907FB57403F02290BB
  669
+:102CB6007627E075F00FA4244BF582E43475F5838E
  670
+:102CC600E0FCA3E0FDA3E0FEA3E0FF7B447AAC7941
  671
+:102CD600007800C31237AB7013907F007444F0A3E2
  672
+:102CE60074ACF0E4A3F0907FB57403F0907627E01F
  673
+:102CF60075F00FA4244BF582E43475F583E0FCA34C
  674
+:102D0600E0FDA3E0FEA3E0FF7B807ABB79007800BC
  675
+:102D1600C31237AB7013907F007480F0A374BBF0BE
  676
+:102D2600E4A3F0907FB57403F0907627E075F00F7A
  677
+:102D3600A4244BF582E43475F583E0FCA3E0FDA3FF
  678
+:102D4600E0FEA3E0FF7B007A7779017800C31237B3
  679
+:102D5600AB704F907F00F0A37477F0A37401F090EE
  680
+:102D66007FB57403F022907FB4E04401F022907F97
  681
+:102D7600E9E0247F701E907627E075F00FA4244FBB
  682
+:102D8600F582E43475F583E0907F00F0907FB574AA
  683
+:102D960001F08007907FB4E04401F0907FB4E044F6
  684
+:032DA60001F02217
  685
+:102DA900E4907636F0E0FF75F003A4240EF582E492
  686
+:102DB9003475F5837401F0EF75F003A4240FF582DF
  687
+:102DC900E43475F5837401F0EF75F003A42410F56C
  688
+:102DD90082E43475F583E4F0907636E004F0E0FFA0
  689
+:102DE90075F003A4240EF582E43475F5837410F0AC
  690
+:102DF900EF75F003A4240FF582E43475F5837405A7
  691
+:102E0900F0EF75F003A42410F582E43475F583E43A
  692
+:102E1900F0907636E004F0E0FF75F003A4240EF597
  693
+:102E290082E43475F5837402F0EF75F003A4240F7E
  694
+:102E3900F582E43475F5837402F0EF75F003A42488
  695
+:102E490010F582E43475F583E4F0907636E004F009
  696
+:102E5900E0FF75F003A4240EF582E43475F583745C
  697
+:102E690001F0EF75F003A4240FF582E43475F583BE
  698
+:102E79007403F0EF75F003A42410F582E43475F5BA
  699
+:102E890083E4F0907636E004F0E0FF75F003A424C3
  700
+:102E99000EF582E43475F5837410F0EF75F003A430
  701
+:102EA900240FF582E43475F5837406F0EF75F003A9
  702
+:102EB900A42410F582E43475F583E4F0907636E0C5
  703
+:102EC90004F0E0FF75F003A4240EF582E43475F5EF
  704
+:102ED900837402F0EF75F003A4240FF582E43475CE
  705
+:102EE900F5837404F0EF75F003A42410F582E4343B
  706
+:102EF90075F583E4F0907636E004F0E0FF75F003B1
  707
+:102F0900A4240EF582E43475F5837402F0EF75F0AC
  708
+:102F190003A4240FF582E43475F5837408F0EF7582
  709
+:102F2900F003A42410F582E43475F5837404F09059
  710
+:102F39007636E004F0E0FF75F003A4240EF582E490
  711
+:102F49003475F5837402F0EF75F003A4240FF5824C
  712
+:102F5900E43475F583740AF0EF75F003A42410F5D1
  713
+:102F690082E43475F5837404F0907636E004F0E079
  714
+:102F7900FF75F003A4240EF582E43475F583740219
  715
+:102F8900F0EF75F003A4240FF582E43475F583742A
  716
+:102F990009F0EF75F003A42410F582E43475F58384
  717
+:102FA9007404F0907636E004F0E0FF75F003A42491
  718
+:102FB9000EF582E43475F5837402F0EF75F003A41D
  719
+:102FC900240FF582E43475F5837407F0EF75F00387
  720
+:0E2FD900A42410F582E43475F5837404F0220C
  721
+:102FE700C0E0C083C082D2265391EF907FAB7401BB
  722
+:082FF700F0D082D083D0E0325B
  723
+:012FFF00329F
  724
+:10300000907FB6E020E102C23DD236203602416E0A
  725
+:10301000303D02416E908007E06004D2368002C2EB
  726
+:1030200036203602412ED235E4F51A908004E0F5C0
  727
+:10303000197408250EF8A619851918E51820E70453
  728
+:10304000D2388002C23830380221D4E4F516E519AE
  729
+:10305000B4F00CD2397508047509F0050E8002052C
  730
+:1030600016E51964F7703DC239E50E24FE601714A9
  731
+:103070006022240370297508057509F7E4F50AF53F
  732
+:103080000B750E048020750806750AF7E4F50B75BC
  733
+:103090000E048012750807750BF7750E0480071271
  734
+:1030A0004DDA80020516E51954F864F8703BC23514
  735
+:1030B000E5192407600C24FC6008240524F8500658
  736
+:1030C0008008D23A8006C23A8002D23A751A0120AC
  737
+:1030D0003A19907E80740FF0A3E519F0E4A3F0A3F1
  738
+:1030E000F0907FB77404F08002051620396DE51961
  739
+:1030F00064F76067E51A7063E51854F064F070597E
  740
+:10310000851819F50EE519240F601B24FE6017249D
  741
+:10311000FD602214601F2405702F750803050E85BD
  742
+:103120001809D2378028750802050E85180975140C
  743
+:1031300001D2378019750805050E851809E4F50ACE
  744
+:10314000F50B750E03D2378005124DDAC2353035D6
  745
+:103150000A85081385181280020516851819E516C8
  746
+:1031600064047062F50EE51954F0F519F51585182B
  747
+:1031700019E5152470601824F0601424F060102400
  748
+:10318000F0601E24F0601A24F0600424607027E5CB
  749
+:1031900015C4540FF519F508050E851809D23780A6
  750
+:1031A0001AE515C4540FF519F508050E85180975AB
  751
+:1031B0001401D2378005124DDAC23530350A85192F
  752
+:1031C0001385181280020516E516D3940540571290
  753
+:1031D0004DDA8052303917E50E700A8508097508F6
  754
+:1031E00004050E80417408250EF8A6198038203792
  755
+:1031F0002AE50EB4010F85080A85090B8513088599
  756
+:103200001209750E04E514B4011C85080AE4F50BD7
  757
+:10321000851308851209750E04800BE514B40106A8
  758
+:10322000E4F50B750E04E4F51A303502050EE50ED3
  759
+:10323000D394035002010BC237E4F50EF510C236E9
  760
+:10324000D23DF51474082510F8E6FF74802510F5BA
  761
+:1032500082E4347EF583EFF074082510F8E4F60577
  762
+:0F32600010E510B404DE907FB77404F0010B2268
  763
+:10326F00907618E0FF640570429075ABE0B40119D9
  764
+:10327F009072377401F0E4908020F0908031F090DC
  765
+:10328F008028F0908039F08022E4907237F09075AA
  766
+:10329F00ADE090722BF0E02480F0E0908020F09071