summaryrefslogtreecommitdiff
path: root/firmware/target/arm/tms320dm320
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/tms320dm320')
-rw-r--r--firmware/target/arm/tms320dm320/dsp-dm320.c6
-rw-r--r--firmware/target/arm/tms320dm320/dsp/arm.c24
-rw-r--r--firmware/target/arm/tms320dm320/dsp/arm.h3
-rw-r--r--firmware/target/arm/tms320dm320/dsp/dma.c267
-rw-r--r--firmware/target/arm/tms320dm320/dsp/dma.h5
-rw-r--r--firmware/target/arm/tms320dm320/dsp/dsp-image.h106
-rw-r--r--firmware/target/arm/tms320dm320/dsp/ipc.h6
-rw-r--r--firmware/target/arm/tms320dm320/dsp/linker.cmd36
-rw-r--r--firmware/target/arm/tms320dm320/dsp/main.c10
-rw-r--r--firmware/target/arm/tms320dm320/dsp/tsc2100.c10
-rw-r--r--firmware/target/arm/tms320dm320/dsp/vectors.asm8
-rw-r--r--firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c2
12 files changed, 241 insertions, 242 deletions
diff --git a/firmware/target/arm/tms320dm320/dsp-dm320.c b/firmware/target/arm/tms320dm320/dsp-dm320.c
index f729cc4e90..5f0c997bd2 100644
--- a/firmware/target/arm/tms320dm320/dsp-dm320.c
+++ b/firmware/target/arm/tms320dm320/dsp-dm320.c
@@ -37,10 +37,8 @@ static void dsp_status(void)
37 DEBUGF("dsp_status(): clkc_hpib=%u clkc_dsp=%u", 37 DEBUGF("dsp_status(): clkc_hpib=%u clkc_dsp=%u",
38 !!(IO_CLK_MOD0 & (1 << 11)), !!(IO_CLK_MOD0 & (1 << 10))); 38 !!(IO_CLK_MOD0 & (1 << 11)), !!(IO_CLK_MOD0 & (1 << 10)));
39 39
40 DEBUGF("dsp_status(): irq_dsphint=%u 7fff=%04x scratch_status=%04x" 40 DEBUGF("dsp_status(): irq_dsphint=%u 7fff=%04x scratch_status=%04x",
41 " acked=%04x", 41 (IO_INTC_IRQ0 >> IRQ_DSPHINT) & 1, DSP_(0x7fff), DSP_(_status));
42 (IO_INTC_IRQ0 >> IRQ_DSPHINT) & 1, DSP_(0x7fff), DSP_(_status),
43 DSP_(_acked));
44#define B(f,w,b,m) if ((w & (1 << b)) == 0) \ 42#define B(f,w,b,m) if ((w & (1 << b)) == 0) \
45 strcat(f, "!"); \ 43 strcat(f, "!"); \
46 strcat(f, #m "|"); 44 strcat(f, #m "|");
diff --git a/firmware/target/arm/tms320dm320/dsp/arm.c b/firmware/target/arm/tms320dm320/dsp/arm.c
index a2c19c7f62..e0df31c7a1 100644
--- a/firmware/target/arm/tms320dm320/dsp/arm.c
+++ b/firmware/target/arm/tms320dm320/dsp/arm.c
@@ -28,17 +28,27 @@
28 28
29volatile struct ipc_message status; 29volatile struct ipc_message status;
30 30
31extern int waiting; 31#if defined(HAVE_DEBUG)
32volatile int acked; 32static int acked;
33#endif
34
33interrupt void handle_int0(void) { 35interrupt void handle_int0(void) {
34 IFR = 1; 36 IFR = 1;
37
38#if defined(HAVE_DEBUG)
35 acked = 1; 39 acked = 1;
40#endif
41
36 waiting = 0; 42 waiting = 0;
37 43
38 if(dma0_stopped==0) 44 if(dma0_stopped==0)
39 { 45 {
40 if(!(DMPREC&0x01)) 46 if(!(DMPREC&0x01))
41 { 47 {
48 /* Give the HPIB access to refill first */
49 rebuffer();
50
51 /* Start the MCBSP DMA */
42 DMPREC |= 1; 52 DMPREC |= 1;
43 audiohw_start(); 53 audiohw_start();
44 } 54 }
@@ -47,15 +57,20 @@ interrupt void handle_int0(void) {
47 rebuffer(); 57 rebuffer();
48 } 58 }
49 } 59 }
60 else
61 {
62 rebuffer();
63 }
50} 64}
51 65
52void startack(void) 66#if defined(HAVE_DEBUG)
67static void startack(void)
53{ 68{
54 acked = 0; 69 acked = 0;
55 int_arm(); 70 int_arm();
56} 71}
57 72
58void waitack(void) 73static void waitack(void)
59{ 74{
60 /* Wait until ARM has picked up data. */ 75 /* Wait until ARM has picked up data. */
61 while (!acked) 76 while (!acked)
@@ -78,3 +93,4 @@ void debugf(const char *fmt, ...) {
78 93
79 acked = 2; 94 acked = 2;
80} 95}
96#endif
diff --git a/firmware/target/arm/tms320dm320/dsp/arm.h b/firmware/target/arm/tms320dm320/dsp/arm.h
index 88b552c2ef..ff4a9a1c51 100644
--- a/firmware/target/arm/tms320dm320/dsp/arm.h
+++ b/firmware/target/arm/tms320dm320/dsp/arm.h
@@ -26,9 +26,6 @@
26 26
27extern volatile struct ipc_message status; 27extern volatile struct ipc_message status;
28 28
29void startack(void);
30void waitack(void);
31
32void debugf(const char *fmt, ...); 29void debugf(const char *fmt, ...);
33 30
34inline void int_arm(void) { 31inline void int_arm(void) {
diff --git a/firmware/target/arm/tms320dm320/dsp/dma.c b/firmware/target/arm/tms320dm320/dsp/dma.c
index 430cc909f7..590b35de80 100644
--- a/firmware/target/arm/tms320dm320/dsp/dma.c
+++ b/firmware/target/arm/tms320dm320/dsp/dma.c
@@ -23,185 +23,208 @@
23 23
24#include "registers.h" 24#include "registers.h"
25#include "arm.h" 25#include "arm.h"
26#include "dma.h" 26#include "ipc.h"
27
28/* Size of data buffer in words (16 bit) */
29#define DSP_BUFFER_SIZE (0x1000)
27 30
28/* This is placed at the right (aligned) address using linker.cmd. */ 31/* Put the "data" buffer in it's own .dma section so that it can
32 * be handled in the linker.cmd. */
29#pragma DATA_SECTION (data, ".dma") 33#pragma DATA_SECTION (data, ".dma")
30 34
31#define DSP_BUFFER_SIZE PCM_SIZE/2 35/* This is the "data" buffer on the DSP side used for SARAM to McBSP (IIS) */
32 36static signed short data[DSP_BUFFER_SIZE];
33/* This is the buffer on the DSP side used for SARAM to McBSP (IIS) */
34signed short data[DSP_BUFFER_SIZE];
35 37
36/* These two describe the location of the buffer on the ARM (set in DSPHINT 38/* These two describe the location of the buffer on the ARM (set in DSPHINT) */
37 * and dspinit)
38 */
39volatile unsigned short sdem_addrh; 39volatile unsigned short sdem_addrh;
40volatile unsigned short sdem_addrl; 40volatile unsigned short sdem_addrl;
41 41
42/* This is the size of the ARM buffer (set in DSPHINT and dspinit) */ 42/* This is the size of the ARM buffer (set in DSPHINT) */
43volatile unsigned short sdem_dsp_size; 43volatile unsigned short sdem_dsp_size;
44 44
45/* These two variables keep track of the buffer level in the DSP, dsp_level, 45/* These two variables keep track of the buffer level in the DSP, dsp_level,
46 * (SARAM to McBSP) and the level on the ARM buffer (sdem_level). 46 * (SARAM to McBSP) and the level on the ARM buffer (sdem_level).
47 */ 47 * sdem_level is used in the main firmware to keep track of the current
48unsigned short dsp_level=0; 48 * playback status. dsp_level is only used in this function. */
49unsigned short sdem_level=0; 49static unsigned short dsp_level;
50volatile unsigned short sdem_level;
50 51
51/* This is used to keep track of the last SDRAM to SARAM transfer */ 52/* This is used to keep track of the last SDRAM to SARAM transfer */
52unsigned short last_size; 53static unsigned short last_size;
53 54
54/* This tells us which half of the DSP buffer (data) is free */ 55/* This tells us which half of the DSP buffer (data) is free */
55unsigned short dma0_unlocked; 56static unsigned short dma0_unlocked;
56 57
57volatile unsigned short dma0_stopped=1; 58/* This is used by the ARM to flag playback status and start/stop the DMA
59 * transfers. */
60volatile unsigned short dma0_stopped;
58 61
59short waiting=0; 62/* This is used to effectively flag whether the ARM has new data ready or not */
60/* rebuffer sets up the next SDRAM to SARAM transfer and tells the ARM when it 63short waiting;
61 * is done with a buffer. 64
62 */ 65
63 66/* rebuffer sets up the next SDRAM to SARAM transfer and tells the ARM when DMA
64/* Notes: The upper limit on larger buffers is the size of a short. If larger 67 * needs a new buffer.
68 *
69 * Note: The upper limit on larger buffers is the size of a short. If larger
65 * buffer sizes are needed the code on the ARM side needs to be changed to 70 * buffer sizes are needed the code on the ARM side needs to be changed to
66 * update a full long. 71 * update a full long.
67 */ 72 */
68void rebuffer(void) 73void rebuffer(void)
69{ 74{
70 unsigned long sdem_addr; 75 unsigned long sdem_addr;
71 76
72 if(dma0_stopped==1) /* Stop */ 77 if(dma0_stopped==1 || dma0_stopped==2) /* Stop / Pause */
73 { 78 {
74 DMPREC&=0xFFFE; /* Stop MCBSP DMA0 */ 79 /* Stop MCBSP DMA0 */
75 audiohw_stop(); 80 DMPREC &= 0xFFFE;
76 DMSFC0 = 2 << 12 | 1 << 11; 81 /* Shut the transmitter down */
77 sdem_level=0; 82 audiohw_stop();
78 return; 83
79 } 84 /* Stop the HPIB transfer if it is running */
80 85 DMA_TRG = 0;
81 if(dsp_level==DSP_BUFFER_SIZE || sdem_level==sdem_dsp_size) 86
82 { 87 /* Reset the following variables for DMA restart */
83 if(dma0_stopped==2) /* Pause */ 88 sdem_level = 0;
84 { 89 dsp_level = 0;
85 DMPREC&=0xFFFE; /* Stop MCBSP DMA0 */ 90 last_size = 0;
86 audiohw_stop(); 91
87 return; 92 return;
88 } 93 }
89 }
90
91 /* If the sdem_level is equal to the buffer size the ARM code gave
92 * (sdem_dsp_size) then reset the size and ask the arm for another buffer
93 */
94 if(sdem_level==sdem_dsp_size)
95 {
96 sdem_level=0;
97
98 /* Get a new buffer (location and size) from ARM */
99 status.msg = MSG_REFILL;
100 waiting=1;
101
102 startack();
103 }
104
105 if(!waiting)
106 {
107 /* Size is in bytes (but forced 32 bit transfers */
108 if( (dsp_level + (sdem_dsp_size - sdem_level) ) > DSP_BUFFER_SIZE)
109 {
110 last_size = DSP_BUFFER_SIZE-dsp_level;
111 }
112 else
113 {
114 last_size = sdem_dsp_size-sdem_level;
115 }
116
117 /* DSP addresses are 16 bit (word) */
118 DSP_ADDRL = (unsigned short)data + (dma0_unlocked >> 1) + (dsp_level>>1);
119 DSP_ADDRH = 0;
120
121 /* SDRAM addresses are 8 bit (byte)
122 * Warning: These addresses are forced to 32 bit alignment!
123 */
124 sdem_addr = ((unsigned long)sdem_addrh << 16 | sdem_addrl) + sdem_level;
125 SDEM_ADDRL = sdem_addr & 0xffff;
126 SDEM_ADDRH = sdem_addr >> 16;
127 94
128 /* Set the size of the SDRAM to SARAM transfer (demac transfer) */ 95 /* If the sdem_level is equal to the buffer size the ARM code gave
129 DMA_SIZE = last_size; 96 * (sdem_dsp_size) then reset the size and ask the arm for another buffer
97 */
98 if(sdem_level == sdem_dsp_size)
99 {
100 sdem_level=0;
101
102 /* Get a new buffer (location and size) from ARM */
103 status.msg = MSG_REFILL;
104 waiting=1;
105
106 /* trigger DSPHINT on the ARM */
107 int_arm();
108 }
109
110 if(!waiting)
111 {
112 /* Size is in bytes (but forced 32 bit transfers). Comparison is
113 * against DSP_BUFFER_SIZE because it is in words and this needs to
114 * compare against half the total size in bytes. */
115 if( dsp_level + sdem_dsp_size - sdem_level > DSP_BUFFER_SIZE)
116 {
117 last_size = DSP_BUFFER_SIZE - dsp_level;
118 }
119 else
120 {
121 last_size = sdem_dsp_size - sdem_level;
122 }
123
124 /* DSP addresses are 16 bit (word). dsp_level is in bytes so it needs to
125 * be converted to words. */
126 DSP_ADDRL = (unsigned short)data + dma0_unlocked + (dsp_level >> 1);
127 DSP_ADDRH = 0;
128
129 /* SDRAM addresses are 8 bit (byte)
130 * Warning: These addresses are forced to 32 bit alignment!
131 */
132 sdem_addr = ((unsigned long)sdem_addrh << 16 | sdem_addrl) + sdem_level;
133 SDEM_ADDRL = sdem_addr & 0xffff;
134 SDEM_ADDRH = sdem_addr >> 16;
135
136 /* Set the size of the SDRAM to SARAM transfer (demac transfer) */
137 DMA_SIZE = last_size;
130 138
131 DMA_CTRL = 0; 139 DMA_CTRL = 0;
132 140
133 /* These are just debug signals that are not used/needed right now */ 141 /* These are just debug signals that are not used/needed right now */
134 status.payload.refill._DMA_TRG = DMA_TRG; 142 status.payload.refill._DMA_TRG = DMA_TRG;
135 status.payload.refill._SDEM_ADDRH = SDEM_ADDRH; 143 status.payload.refill._SDEM_ADDRH = SDEM_ADDRH;
136 status.payload.refill._SDEM_ADDRL = SDEM_ADDRL; 144 status.payload.refill._SDEM_ADDRL = SDEM_ADDRL;
137 status.payload.refill._DSP_ADDRH = DSP_ADDRH; 145 status.payload.refill._DSP_ADDRH = DSP_ADDRH;
138 status.payload.refill._DSP_ADDRL = DSP_ADDRL; 146 status.payload.refill._DSP_ADDRL = DSP_ADDRL;
139 147
140 /* Start the demac transfer */ 148 /* Start the demac transfer */
141 DMA_TRG = 1; 149 DMA_TRG = 1;
142 } 150 }
143} 151}
144 152
145/* This interupt handler is for the SARAM (on DSP) to McBSP IIS DMA transfer. 153/* This interupt handler is for the SARAM (on DSP) to McBSP IIS DMA transfer.
146 * It interupts at 1/2 empty and empty so that we can start filling a new buffer 154 * It interupts at 1/2 empty and empty so that we can start filling a new buffer
147 * from SDRAM when a half is free. dsp_level should always be full when this 155 * from SDRAM when a half is free. dsp_level should always be full when this
148 * interupt occurs except for the initial start. 156 * interupt occurs except for the initial start. */
149 */
150interrupt void handle_dma0(void) 157interrupt void handle_dma0(void)
151{ 158{
152 /* Byte offset to half-buffer locked by DMA0. 159 /* Byte offset to half-buffer locked by DMA0.
153 0 for top, PCM_SIZE/2 for bottom */ 160 0 for top, DSP_BUFFER_SIZE/2 for bottom */
154 unsigned short dma0_locked; 161 unsigned short dma0_locked;
155 162
156 IFR = 1 << 6; 163 IFR = 1 << 6;
157 164
158 /* DMSRC0 is the beginning of the DMA0-locked SARAM half-buffer. */ 165 /* DMSRC0 is the beginning of the DMA0-locked SARAM half-buffer. */
159 DMSA = 0x00 /* DMSRC0 */; 166 DMSA = 0x00 /* DMSRC0 (banked register, see page 133 of SPRU302B */;
160 dma0_locked = (DMSDN << 1) & (DSP_BUFFER_SIZE);
161 dma0_unlocked = dma0_locked ^ (DSP_BUFFER_SIZE);
162 167
163 dsp_level = 0; 168 /* Note that these address offsets (dma0_locked and dma0_unlocked are in
169 * words. */
170 dma0_locked = DMSDN & (DSP_BUFFER_SIZE>>1);
171 dma0_unlocked = dma0_locked ^ (DSP_BUFFER_SIZE>>1);
172
173 dsp_level = 0;
164 174
165 /* Start the SDRAM to SARAM copy */ 175 /* Start the SDRAM to SARAM copy */
166 rebuffer(); 176 rebuffer();
167} 177}
168 178
169/* This interupt handler runs every time a DMA transfer is complete from SDRAM 179/* This interupt handler runs every time a DMA transfer is complete from SDRAM
170 * to the SARAM buffer. It is used to update the SARAM buffer level 180 * to the SARAM buffer. It is used to update the SARAM buffer level
171 * (dsp_level), the SDRAM buffer level (sdem_level) and to rebuffer if the dsp 181 * (dsp_level), the SDRAM buffer level (sdem_level) and to rebuffer if the dsp
172 * buffer is not full. 182 * buffer is not full. */
173 */
174interrupt void handle_dmac(void) { 183interrupt void handle_dmac(void) {
175 IFR = 1 << 11; 184 IFR = 1 << 11; /* Clear interrupt */
176 185
177 dsp_level+=last_size; 186 /* dsp_level and sdem_level are in bytes */
178 sdem_level+=last_size; 187 dsp_level += last_size;
179 188 sdem_level += last_size;
180 if(dsp_level<DSP_BUFFER_SIZE) 189
190 /* compare to DSP_BUFFER_SIZE without a divide because it is in words and
191 * we want half the total size in bytes. */
192 if(dsp_level < DSP_BUFFER_SIZE)
181 { 193 {
182 rebuffer(); 194 rebuffer();
183 } 195 }
184} 196}
185 197
186void dma_init(void) { 198void dma_init(void) {
187 /* Configure SARAM to McBSP DMA */ 199 /* Initialize some of the global variables to known values avoiding the
200 * .cinit section. */
201 dsp_level = 0;
202 sdem_level = 0;
203
204 last_size = 0;
205 dma0_unlocked = 0;
206 dma0_stopped = 1;
188 207
208 waiting = 0;
209
210 /* Configure SARAM to McBSP DMA */
211
189 /* Event XEVT0, 32-bit transfers, 0 frame count */ 212 /* Event XEVT0, 32-bit transfers, 0 frame count */
190 DMSFC0 = 2 << 12 | 1 << 11; 213 DMSFC0 = 2 << 12 | 1 << 11;
191 214
192 /* Interrupts generated, Half and full buffer. 215 /* Interrupts generated, Half and full buffer.
193 * ABU mode, From data space with postincrement, to data space with no 216 * ABU mode, From data space with postincrement, to data space with no
194 * change 217 * change
195 */ 218 */
196 DMMCR0 = 1 << 14 | 1 << 13 | 219 DMMCR0 = 1 << 14 | 1 << 13 |
197 1 << 12 | 1 << 8 | 1 << 6 | 1; 220 1 << 12 | 1 << 8 | 1 << 6 | 1;
198 221
199 /* Set the source (incrementing) location */ 222 /* Set the source (incrementing) location */
200 DMSRC0 = (unsigned short)&data; 223 DMSRC0 = (unsigned short)&data;
201 224
202 /* Set the destination (static) location to the McBSP IIS interface */ 225 /* Set the destination (static) location to the McBSP IIS interface */
203 DMDST0 = (unsigned short)&DXR20; 226 DMDST0 = (unsigned short)&DXR20;
204 227
205 /* Set the size of the buffer */ 228 /* Set the size of the buffer */
206 DMCTR0 = sizeof(data); 229 DMCTR0 = sizeof(data);
207 230
diff --git a/firmware/target/arm/tms320dm320/dsp/dma.h b/firmware/target/arm/tms320dm320/dsp/dma.h
index 5c483a503e..c55fc1507b 100644
--- a/firmware/target/arm/tms320dm320/dsp/dma.h
+++ b/firmware/target/arm/tms320dm320/dsp/dma.h
@@ -22,9 +22,10 @@
22#ifndef DMA_H 22#ifndef DMA_H
23#define DMA_H 23#define DMA_H
24 24
25#include "ipc.h"
26
27void dma_init(void); 25void dma_init(void);
26void rebuffer(void);
27
28extern int waiting;
28 29
29extern volatile unsigned short dma0_stopped; 30extern volatile unsigned short dma0_stopped;
30 31
diff --git a/firmware/target/arm/tms320dm320/dsp/dsp-image.h b/firmware/target/arm/tms320dm320/dsp/dsp-image.h
index 80f582d238..f7ec449a33 100644
--- a/firmware/target/arm/tms320dm320/dsp/dsp-image.h
+++ b/firmware/target/arm/tms320dm320/dsp/dsp-image.h
@@ -20,94 +20,46 @@
20 * 20 *
21 */ 21 */
22static const unsigned short _section_text[] = { 22static const unsigned short _section_text[] = {
23 0xe808, 0x75f8, 0x0008, 0x0280, 0xfc00, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0001, 0x76f8, 0x28de, 0x0001, 0x10f8, 0x28e6, 0x76f8, 0x28e7, 0x0000, 0xfa44, 0x00ca, 0xf495, 0xeeff, 0x7712, 0x0054, 0x960f, 0xf830, 0x00c8, 0x7711, 0x0054, 0x6981, 0x0001, 0xf074, 0x02e4, 0xf073, 0x00ca, 0xf074, 0x0130, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0xeeff, 0x76f8, 0x28de, 0x0000, 0xf074, 0x0080, 0xee01, 0xfc00, 0x10f8, 0x28de, 0xf844, 0x00f7, 0xf4e1, 0xf495, 0x10f8, 0x28de, 0xf845, 0x00f1, 0xfc00, 0xeefb, 0x4818, 0xf000, 0x0006, 0x76f8, 0x288d, 0x0002, 0x8004, 0x7600, 0x0051, 0x1006, 0x8001, 0x1004, 0x8002, 0xf274, 0x0396, 0xf020, 0x288e, 0xf074, 0x00e5, 0xf074, 0x00ed, 0xee05, 0x76f8, 0x28de, 0x0002, 0xfc00, 0x4a11, 0x7711, 0x0026, 0x7712, 0x0001, 0x7681, 0x0010, 0x7713, 0x0001, 0x7711, 0x0000, 0xeefe, 0x7681, 0xffff, 0xe501, 0xf495, 0xf6bb, 0xf074, 0x02b9, 0xf074, 0x028a, 0x7600, 0x2cad, 0xf074, 0x00f8, 0xf4e1, 0xf495, 0xf073, 0x012c, 0x4a11, 0x60f8, 0x28e2, 0x4000, 0xfa30, 0x013e, 0xf495, 0xeefe, 0x10f8, 0x28e3, 0x08f8, 0x28e1, 0xf844, 0x014b, 0x60f8, 0x28e6, 0x0002, 0xf820, 0x014b, 0x7711, 0x0054, 0x6881, 0xfffe, 0xf074, 0x02ef, 0xf073, 0x01b9, 0x10f8, 0x28e3, 0x08f8, 0x28e1, 0xf844, 0x015c, 0x76f8, 0x28e3, 0x0000, 0x76f8, 0x288d, 0x0003, 0x76f8, 0x28e7, 0x0001, 0xf074, 0x00e5, 0x10f8, 0x28e7, 0xf844, 0x01b9, 0x10f8, 0x28e1, 0x00f8, 0x28e2, 0x08f8, 0x28e3, 0x8811, 0xf495, 0x7710, 0x4000, 0xf6a9, 0xf820, 0x0173, 0xf020, 0x4000, 0xf273, 0x0177, 0x08f8, 0x28e2, 0x10f8, 0x28e1, 0x08f8, 0x28e3, 0x80f8, 0x28e4, 0xf6b8, 0xf020, 0x8000, 0x6ff8, 0x28e5, 0x0c1f, 0x6ff8, 0x28e2, 0x0c1f, 0x75f8, 0x0008, 0x8002, 0xe800, 0x75f8, 0x0008, 0x8003, 0x10f8, 0x28df, 0xf1ef, 0xf3e1, 0x10f8, 0x28e0, 0xf2a0, 0x00f8, 0x28e3, 0x4e00, 0xf020, 0xffff, 0x5700, 0xf280, 0x75f8, 0x0008, 0x8000, 0x5600, 0xf0f0, 0x75f8, 0x0008, 0x8001, 0xe800, 0x75f8, 0x28e4, 0x8004, 0x75f8, 0x0008, 0x8005, 0x74f8, 0x288f, 0x8006, 0x74f8, 0x2890, 0x8001, 0x74f8, 0x2891, 0x8000, 0x74f8, 0x2892, 0x8003, 0xe801, 0x74f8, 0x2893, 0x8002, 0x75f8, 0x0008, 0x8006, 0xee02, 0x8a11, 0xfc00, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0040, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057, 0x6f81, 0x0c41, 0xeeff, 0xf030, 0x4000, 0x8000, 0xf020, 0x4000, 0x60f8, 0x28e6, 0x0001, 0x1c00, 0x76f8, 0x28e2, 0x0000, 0xfa20, 0x0212, 0x80f8, 0x28e5, 0x7711, 0x0054, 0x6881, 0xfffe, 0xf074, 0x02ef, 0x7711, 0x0055, 0x7681, 0x0003, 0x7711, 0x0057, 0x7681, 0x2800, 0x76f8, 0x28e3, 0x0000, 0xf073, 0x0214, 0xf074, 0x0130, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0800, 0x10f8, 0x28e4, 0x00f8, 0x28e2, 0x80f8, 0x28e2, 0x7710, 0x4000, 0x7211, 0x28e2, 0x10f8, 0x28e4, 0xf5a9, 0xeeff, 0x00f8, 0x28e3, 0xfa20, 0x026f, 0x80f8, 0x28e3, 0xf074, 0x0130, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x7711, 0x0055, 0x7681, 0x0003, 0x7711, 0x0057, 0x7681, 0x2800, 0x7711, 0x0055, 0x7681, 0x0004, 0x7711, 0x0057, 0x7681, 0x7141, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057, 0x7681, 0x8000, 0x7711, 0x0055, 0x7681, 0x0001, 0x7711, 0x0057, 0x7681, 0x0022, 0x7711, 0x0055, 0x7681, 0x0002, 0x7711, 0x0057, 0x7681, 0x4000, 0x7711, 0x0054, 0x7681, 0x0080, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0000, 0x7711, 0x0039, 0x7681, 0x0000, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x7681, 0x0030, 0x7711, 0x0038, 0x7681, 0x000e, 0x7711, 0x0039, 0x7681, 0x0002, 0x7711, 0x0038, 0x7681, 0x0004, 0x7711, 0x0039, 0x7681, 0x00a0, 0x7711, 0x0038, 0x7681, 0x0005, 0x7711, 0x0039, 0x7681, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6981, 0x0001, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6881, 0xfffe, 0x8a11, 0xfc00, 0xf7be, 0xf6b9, 0xf4a0, 0xf6b7, 0xf6b5, 0xf6b6, 0xf7b8, 0x7718, 0x188d, 0x6bf8, 0x0018, 0x0fff, 0x68f8, 0x0018, 0xfffe, 0xf020, 0x2dbb, 0xf100, 0x0001, 0xf84d, 0x0326, 0xf6b8, 0xf495, 0xf020, 0x2dbb, 0xf073, 0x0320, 0x7ef8, 0x0012, 0xf000, 0x0001, 0x47f8, 0x0011, 0x7e92, 0x00f8, 0x0011, 0xf000, 0x0001, 0x7ef8, 0x0011, 0xf000, 0x0001, 0x6c89, 0x0315, 0xf7b8, 0xeefc, 0xf020, 0xffff, 0xf100, 0x0001, 0xf84d, 0x033e, 0xf6b8, 0xf495, 0xf020, 0xffff, 0xf273, 0x0338, 0x4e02, 0xf495, 0xf5e3, 0x5602, 0x7e00, 0x1100, 0xfa4c, 0x0336, 0x6b03, 0x0001, 0xf6b8, 0xee04, 0xf074, 0x0f88, 0xf074, 0x0344, 0x4a11, 0x4a16, 0xeeff, 0x10f8, 0x290b, 0xf4e3, 0x7211, 0x28e8, 0x10f8, 0x0011, 0xf845, 0x035c, 0x4811, 0xf000, 0x28e9, 0x8816, 0xf495, 0xf495, 0x10ee, 0xffff, 0xf4e3, 0x6ce9, 0xffff, 0x0356, 0x10f8, 0x290a, 0xf845, 0x0363, 0x10f8, 0x290a, 0xf4e3, 0x10f8, 0x2909, 0xf845, 0x036a, 0x10f8, 0x2909, 0xf4e3, 0x10f8, 0x290c, 0xf4e3, 0xf074, 0x0393, 0xf073, 0x036f, 0x4a11, 0x8811, 0x10f8, 0x290b, 0xf4e3, 0xf7b8, 0x10f8, 0x28e8, 0xf468, 0xf478, 0xf010, 0x0020, 0xf843, 0x0385, 0x10f8, 0x290c, 0xf4e3, 0xe801, 0xf073, 0x0391, 0x7212, 0x28e8, 0x10f8, 0x290c, 0x6bf8, 0x28e8, 0x0001, 0x70e2, 0x28e9, 0x0011, 0xf4e3, 0xe800, 0x8a11, 0xfc00, 0xf495, 0xf073, 0x0394, 0x4a11, 0xeef8, 0xf495, 0x710b, 0x0012, 0x110c, 0x710a, 0x0011, 0x7004, 0x0012, 0x8005, 0x7006, 0x0011, 0x4818, 0x7607, 0x0000, 0xf000, 0x0005, 0x8100, 0x8001, 0x7602, 0x03bd, 0x4818, 0x7603, 0x03d4, 0xf274, 0x0419, 0xf000, 0x0004, 0x4911, 0xf84d, 0x03ba, 0x7105, 0x0011, 0x7681, 0x0000, 0xee08, 0x8a11, 0xfc00, 0x4a11, 0xf495, 0x7102, 0x0011, 0x71e1, 0x0001, 0x0010, 0x71e1, 0x0002, 0x0012, 0xf5aa, 0xf820, 0x03cf, 0x7181, 0x0012, 0x8082, 0x6b81, 0x0001, 0x6be1, 0x0002, 0x0001, 0x8a11, 0xfc00, 0x4a11, 0xf110, 0x0001, 0x4a16, 0x8812, 0x4a17, 0x8913, 0xeefe, 0x7716, 0xffff, 0x7106, 0x0011, 0x11eb, 0x0001, 0xfa4c, 0x03e0, 0xf495, 0x6d96, 0x11e1, 0x0001, 0x8910, 0xf495, 0x71e1, 0x0002, 0x0013, 0xf5ab, 0xf820, 0x0407, 0x4813, 0xf520, 0x8910, 0xf495, 0xf495, 0xf6ae, 0xf820, 0x03fc, 0xf273, 0x03fd, 0xf495, 0x8917, 0xe767, 0x7000, 0x0012, 0x7001, 0x0017, 0x1081, 0xf074, 0x152d, 0x4817, 0x0081, 0x8081, 0x4816, 0x00e1, 0x0002, 0xee02, 0x80e1, 0x0002, 0x8a17, 0x4816, 0x8a16, 0x8a11, 0xfc00, 0xfc00, 0x80f8, 0x290b, 0xfc00, 0x80f8, 0x290c, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef4, 0x8816, 0x1013, 0x8009, 0x1186, 0xf210, 0x0001, 0x8813, 0xf495, 0x7712, 0xffff, 0x7111, 0x0017, 0x7112, 0x0011, 0x10eb, 0x0001, 0xfa44, 0x042b, 0xf495, 0x6d92, 0x6ff8, 0x0012, 0x0e00, 0x800a, 0x4812, 0xfa45, 0x0513, 0x7604, 0x0000, 0x7605, 0x0000, 0x7606, 0x0000, 0x7607, 0xffff, 0xe925, 0x7608, 0x0000, 0x7186, 0x0012, 0x7182, 0x0012, 0x10f8, 0x0012, 0x08f8, 0x000b, 0xf845, 0x0465, 0x10f8, 0x0012, 0xf845, 0x0513, 0x1086, 0xf000, 0x0001, 0x4911, 0x8086, 0x8812, 0x7000, 0x0017, 0x10e2, 0xffff, 0xf5e3, 0x6b04, 0x0001, 0x7186, 0x0012, 0x7182, 0x0012, 0x6ce2, 0xffdb, 0x044d, 0x6b86, 0x0001, 0x4818, 0x7000, 0x0016, 0xf274, 0x0519, 0xf000, 0x0005, 0x4818, 0x7000, 0x0016, 0xf000, 0x0010, 0x8001, 0x4818, 0xf274, 0x056b, 0xf000, 0x0005, 0x7186, 0x0012, 0x1182, 0x7713, 0x004c, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x04aa, 0x7713, 0x0068, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x04a6, 0x7713, 0x006c, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf844, 0x04b3, 0x4812, 0xf000, 0x0001, 0x8812, 0x7086, 0x0012, 0x6082, 0x006c, 0xf830, 0x04a2, 0xf273, 0x04b2, 0x6905, 0x0040, 0xf273, 0x04ac, 0x6905, 0x0100, 0xf273, 0x04ac, 0x6905, 0x0020, 0x6905, 0x0080, 0x1086, 0xf000, 0x0001, 0x8812, 0xf495, 0x8086, 0x1182, 0x7712, 0x006e, 0x10f8, 0x000b, 0x8108, 0x08f8, 0x0012, 0xfa45, 0x04f0, 0x6b86, 0x0001, 0x7712, 0x0073, 0x10f8, 0x000b, 0x08f8, 0x0012, 0xf845, 0x04dd, 0x10f8, 0x290b, 0xf4e3, 0x4818, 0xf000, 0x0010, 0x8000, 0x4818, 0xf274, 0x073a, 0xf000, 0x0005, 0x7000, 0x0017, 0x1109, 0xf5e3, 0x0004, 0x8004, 0x10f8, 0x290c, 0xf4e3, 0xf073, 0x050c, 0x4818, 0x7000, 0x0017, 0xf000, 0x0010, 0x8001, 0x4818, 0xf000, 0x0004, 0x8002, 0x1009, 0x8003, 0x4818, 0xf274, 0x0632, 0xf000, 0x0005, 0xf073, 0x050c, 0xf020, 0x0160, 0x1805, 0x8812, 0xf495, 0xf495, 0x6ce2, 0xffc0, 0x0504, 0x6b10, 0x0001, 0x7110, 0x0012, 0xf7b8, 0x7182, 0x0012, 0xf273, 0x050c, 0x1004, 0x4e82, 0x6b10, 0x0001, 0x7110, 0x0012, 0x1004, 0x7182, 0x0012, 0x8082, 0x710a, 0x0010, 0x7186, 0x0012, 0xf5aa, 0xf830, 0x043a, 0x1004, 0xee0c, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x8812, 0xf273, 0x0533, 0x7102, 0x0011, 0xf273, 0x0531, 0x6982, 0x0010, 0xf273, 0x0531, 0x6982, 0x0001, 0xf273, 0x0531, 0x6982, 0x0002, 0xf273, 0x0531, 0x6982, 0x0008, 0x6982, 0x0004, 0x6b81, 0x0001, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x002b, 0xf846, 0x0559, 0x7713, 0x002b, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x0527, 0x7713, 0x0020, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x052f, 0x7713, 0x0023, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x052b, 0xf073, 0x0569, 0x7713, 0x002d, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x0523, 0x7713, 0x0030, 0x10f8, 0x000b, 0x08f8, 0x0013, 0xf845, 0x051f, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef6, 0xf495, 0x710e, 0x0011, 0x7181, 0x0012, 0x8816, 0x6082, 0x002a, 0xfa20, 0x0599, 0x710f, 0x0017, 0x1087, 0xf000, 0x0001, 0x8812, 0xf7b8, 0x8087, 0x1082, 0x80e6, 0x0001, 0x10e6, 0x0001, 0xf842, 0x058d, 0xf484, 0x80e6, 0x0001, 0x6986, 0x0001, 0x1081, 0xf000, 0x0001, 0x8812, 0xf495, 0x8081, 0x6082, 0x002e, 0xf830, 0x05de, 0xf073, 0x062d, 0xe782, 0x4812, 0xf010, 0x0001, 0x8813, 0xf495, 0xec09, 0x769b, 0x0000, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf843, 0x05c6, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x05c6, 0x8192, 0x1081, 0xf000, 0x0001, 0x8813, 0xf495, 0x8081, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf842, 0x05ae, 0x1000, 0xf844, 0x05d3, 0x7712, 0x002e, 0x10f8, 0x000b, 0x08f8, 0x0012, 0xf845, 0x05de, 0xf073, 0x062d, 0x4818, 0xf074, 0x0f9f, 0x80e6, 0x0001, 0x7181, 0x0012, 0x6082, 0x002e, 0xf820, 0x062d, 0x1081, 0xf000, 0x0001, 0x8812, 0xf495, 0x8081, 0x6082, 0x002a, 0xf830, 0x0622, 0xe782, 0x4812, 0xf010, 0x0001, 0x8813, 0xf495, 0xec09, 0x769b, 0x0000, 0x7181, 0x0013, 0xf7b8, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf843, 0x0615, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x0615, 0x8192, 0x1081, 0xf000, 0x0001, 0x8813, 0xf495, 0x8081, 0x1183, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0030, 0xf842, 0x05fd, 0x1000, 0xf845, 0x061d, 0x4818, 0xf074, 0x0f9f, 0xf073, 0x061e, 0xe800, 0xf273, 0x062d, 0x80e6, 0x0002, 0x1087, 0xf000, 0x0001, 0x8812, 0xf495, 0x8087, 0x1082, 0x80e6, 0x0002, 0x6b81, 0x0001, 0xee0a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf495, 0x8002, 0x100d, 0x710b, 0x0011, 0x8003, 0x710c, 0x0012, 0x1081, 0x710a, 0x0017, 0xf000, 0x0001, 0x8081, 0x8811, 0xf495, 0xf495, 0x1281, 0x8004, 0xf845, 0x072f, 0x7102, 0x0011, 0xf7b8, 0x71e1, 0x0002, 0x0011, 0x10f8, 0x0011, 0xf843, 0x0677, 0x1004, 0xf010, 0x0001, 0x8813, 0xf495, 0x7710, 0xffff, 0x10eb, 0x0001, 0xfa44, 0x065c, 0xf495, 0x6d90, 0xf5a9, 0xf820, 0x0677, 0x7005, 0x0011, 0x7102, 0x0011, 0x11e1, 0x0001, 0x10f8, 0x000b, 0xf468, 0x7105, 0x0011, 0xf478, 0x08f8, 0x0011, 0xf847, 0x0692, 0xf073, 0x0696, 0x1004, 0xf010, 0x0001, 0x8811, 0xf495, 0x7713, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x067e, 0xf495, 0x6d93, 0x7102, 0x0011, 0x7005, 0x0013, 0x11e1, 0x0001, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0013, 0xf846, 0x0696, 0xf273, 0x0698, 0x7105, 0x0011, 0x8911, 0xf495, 0x4811, 0x0082, 0x8082, 0x4811, 0xf274, 0x15cd, 0xf000, 0x0001, 0x8816, 0x4808, 0xf845, 0x0735, 0xf7b8, 0xf495, 0x1105, 0xf768, 0xf778, 0x09f8, 0x0011, 0xe762, 0xf84a, 0x06cb, 0x7102, 0x0013, 0x961f, 0xf830, 0x06cb, 0x7105, 0x0010, 0x4916, 0xf4a9, 0xf310, 0x0001, 0x8913, 0xf830, 0x06c6, 0x4911, 0x0905, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x06c5, 0x769b, 0x0020, 0x4911, 0x4812, 0x0905, 0xf600, 0x8812, 0x1105, 0xf640, 0x10f8, 0x0008, 0xf845, 0x06fa, 0x4812, 0xf010, 0x0001, 0x8813, 0x1004, 0xf010, 0x0001, 0x8814, 0xf640, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x06e8, 0x10ec, 0x0001, 0x809b, 0x10f8, 0x0008, 0xf845, 0x06e9, 0xf310, 0x0001, 0x8914, 0xf495, 0x7710, 0x0001, 0xf6ac, 0xfa20, 0x06fa, 0xf310, 0x0001, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x06f9, 0x769b, 0x0000, 0x1105, 0x4812, 0xf600, 0xf768, 0xf778, 0x09f8, 0x0011, 0xf84a, 0x071b, 0x7102, 0x0013, 0x961f, 0xf820, 0x071b, 0x7105, 0x0010, 0xf4a9, 0xf010, 0x0001, 0x8812, 0xf830, 0x071b, 0x4910, 0x4811, 0xf620, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x071a, 0x769a, 0x0020, 0x4911, 0x4816, 0xf600, 0x8811, 0xf495, 0xf495, 0x7681, 0x0000, 0x7000, 0x0017, 0x1103, 0xf7e3, 0xf495, 0x4816, 0xf274, 0x1728, 0xf495, 0x4816, 0xf073, 0x0735, 0x7000, 0x0017, 0x1103, 0xf7e3, 0xf020, 0x2b68, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf120, 0x290d, 0x8811, 0x4a16, 0x4a17, 0x6fe1, 0x0001, 0x0e00, 0xeef6, 0x8817, 0xf495, 0x710e, 0x0013, 0xf200, 0x018f, 0x8004, 0xf210, 0x0001, 0x8812, 0x7605, 0x0000, 0x8006, 0xf070, 0x018f, 0x769a, 0x0020, 0x7104, 0x0012, 0x7682, 0x0000, 0xf120, 0x290d, 0x1004, 0xf7b8, 0xf010, 0x0001, 0x8107, 0x8004, 0x71e1, 0x0003, 0x0014, 0x11f8, 0x0014, 0xf768, 0xf778, 0xf310, 0x0064, 0x8812, 0xf84e, 0x07a7, 0xf495, 0x7715, 0x0064, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x07ea, 0x11f8, 0x0014, 0xf768, 0xf778, 0xf310, 0x0047, 0xf84e, 0x0795, 0xe947, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07fa, 0xe925, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07d8, 0xe945, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07fa, 0xf073, 0x0815, 0x7715, 0x0058, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x07ea, 0x7715, 0x0063, 0x11f8, 0x0014, 0x09f8, 0x0015, 0xf84d, 0x080a, 0xf073, 0x0815, 0x10f8, 0x0014, 0xf468, 0xf478, 0xf010, 0x0070, 0xf846, 0x07c8, 0x10f8, 0x0014, 0xf468, 0xf478, 0xf010, 0x006f, 0xf842, 0x07ea, 0xe742, 0x7710, 0x0002, 0x6dea, 0xff9b, 0xf6aa, 0xf820, 0x07fa, 0xe969, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07ea, 0xf073, 0x0815, 0xe975, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07ea, 0xe978, 0x10f8, 0x0014, 0x08f8, 0x000b, 0xf845, 0x07ea, 0xf073, 0x0815, 0x7713, 0x2b6f, 0x7107, 0x0012, 0xe510, 0x1183, 0x4812, 0xf84d, 0x08f2, 0x71eb, 0x0001, 0x0011, 0x6e81, 0x07e1, 0x709a, 0x0011, 0xf073, 0x08f2, 0x4818, 0xf000, 0x0005, 0x8000, 0x4818, 0xf000, 0x0004, 0x8001, 0x7002, 0x0013, 0xf274, 0x0d3e, 0xf495, 0x4811, 0xf073, 0x0815, 0x4818, 0xf000, 0x0005, 0x8000, 0x4818, 0xf000, 0x0004, 0x8001, 0x7002, 0x0013, 0xf274, 0x08f7, 0xf495, 0x4811, 0xf073, 0x0815, 0x1183, 0xf300, 0x0001, 0x8183, 0x8913, 0xf010, 0x0001, 0xe510, 0x8004, 0x6881, 0xfffd, 0x7181, 0x0012, 0x61f8, 0x0012, 0x0002, 0xfa20, 0x0842, 0x7716, 0x0000, 0x10e1, 0x0003, 0x7713, 0x0075, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x0842, 0x7713, 0x006f, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x0842, 0x7713, 0x0078, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x0842, 0x7713, 0x0058, 0x11f8, 0x0008, 0x09f8, 0x0013, 0xf84d, 0x0842, 0x7716, 0x0001, 0x1005, 0xf844, 0x0853, 0x10f8, 0x0016, 0xf845, 0x085b, 0x7104, 0x0012, 0x7682, 0x002b, 0x6b04, 0xffff, 0xf273, 0x085e, 0x7181, 0x0012, 0x7104, 0x0012, 0x7682, 0x002d, 0x6b04, 0xffff, 0x7181, 0x0012, 0x1005, 0xf844, 0x086d, 0x6c86, 0x086d, 0x61f8, 0x0012, 0x0004, 0xf820, 0x086d, 0x7104, 0x0012, 0x7682, 0x0020, 0x6b04, 0xffff, 0x7181, 0x0012, 0x61f8, 0x0012, 0x0001, 0xf830, 0x0885, 0x1007, 0x0804, 0xf7b8, 0xf000, 0x018f, 0x11f8, 0x0008, 0xf768, 0xf778, 0x09e1, 0x0001, 0xf84e, 0x0885, 0x4917, 0xf520, 0xf273, 0x0886, 0xf200, 0x0001, 0x1007, 0x8008, 0x1004, 0xf000, 0x0001, 0x8000, 0x7601, 0x0000, 0x7602, 0x0190, 0x1008, 0xf074, 0x150d, 0x8812, 0xf495, 0xe770, 0xf6aa, 0x8004, 0xf830, 0x08ad, 0xf010, 0x0002, 0x8812, 0x4817, 0x0804, 0xf000, 0x0001, 0x4808, 0xf845, 0x08ab, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x08aa, 0x769a, 0x0020, 0x7687, 0x0000, 0xe712, 0x960b, 0xf830, 0x08c7, 0x1107, 0x1008, 0xf620, 0xf010, 0x0001, 0x8812, 0xf495, 0x7710, 0xffff, 0xf4aa, 0xfa30, 0x08f1, 0x7106, 0x0011, 0x7312, 0x001a, 0xf072, 0x08c4, 0x7699, 0x0020, 0xf073, 0x08f1, 0x7107, 0x0010, 0x7108, 0x0013, 0xf4ab, 0xfa30, 0x08db, 0x7106, 0x0012, 0x4910, 0x4813, 0xf620, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x08da, 0x769a, 0x0030, 0x4816, 0x1a05, 0x8816, 0xf495, 0xf495, 0x6c86, 0x08e6, 0xe712, 0x960d, 0xf820, 0x08f1, 0xe731, 0xf4a9, 0xf830, 0x08f1, 0x7712, 0x290d, 0xe510, 0x7681, 0x0030, 0x7007, 0x0012, 0x1007, 0xee0a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x8812, 0xeefe, 0xf495, 0x7106, 0x0014, 0x1184, 0xf693, 0xf030, 0x0001, 0x7105, 0x0015, 0xf600, 0x7104, 0x0013, 0xf000, 0x0001, 0x8811, 0x7084, 0x0011, 0xf000, 0x0001, 0x5781, 0x8084, 0x56f8, 0x2b92, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xfa42, 0x091f, 0x7711, 0x0000, 0x7711, 0x0001, 0x10f8, 0x0011, 0xfa45, 0x092a, 0x7083, 0x0011, 0xf274, 0x12ea, 0xf495, 0xf640, 0xf540, 0xf7b8, 0x71e2, 0x0003, 0x0011, 0x10f8, 0x0011, 0xf468, 0xf478, 0xf010, 0x0065, 0xf846, 0x0950, 0x7713, 0x0065, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0974, 0x7713, 0x0045, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0974, 0x7713, 0x0047, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x0960, 0xf073, 0x097c, 0x7713, 0x0066, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf845, 0x096a, 0x7713, 0x0067, 0x10f8, 0x0011, 0x08f8, 0x0013, 0xf844, 0x097c, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x0ae5, 0xf495, 0xf640, 0xf073, 0x097c, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x097f, 0xf495, 0xf640, 0xf073, 0x097c, 0x7000, 0x0012, 0x7001, 0x0015, 0xf274, 0x09e7, 0xf495, 0xf640, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0x6bf8, 0x0018, 0xfe68, 0xf495, 0xf7b8, 0xe787, 0x11e7, 0x019c, 0x8912, 0x81e7, 0x0196, 0x11e2, 0x0002, 0x71e7, 0x019d, 0x0011, 0xf84a, 0x0998, 0x76e2, 0x0002, 0x0006, 0xe906, 0x8100, 0x4918, 0xf300, 0x0004, 0x8101, 0x4918, 0xf300, 0x0005, 0x8102, 0xf074, 0x12f8, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x09b4, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x09ad, 0x709b, 0x0012, 0x1004, 0x7181, 0x0016, 0x8000, 0x7601, 0x0001, 0x71e7, 0x0196, 0x0012, 0x10e2, 0x0002, 0x8002, 0x4818, 0x7003, 0x0011, 0xf274, 0x0b96, 0xf000, 0x0006, 0x7181, 0x0010, 0xf7ae, 0xe801, 0xf830, 0x09d4, 0x71e7, 0x0196, 0x0012, 0x960c, 0xf830, 0x09d4, 0xe800, 0x1104, 0x8100, 0x8001, 0x4818, 0x7002, 0x0011, 0xf274, 0x0cc3, 0xf000, 0x0006, 0x6bf8, 0x0018, 0x0198, 0xf495, 0xf495, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0xf7b8, 0x4a17, 0xee96, 0xf540, 0x716e, 0x0011, 0x71e1, 0x0002, 0x0012, 0x10f8, 0x0012, 0xfa42, 0x09fd, 0x716f, 0x0017, 0x7712, 0x0006, 0x76e1, 0x0002, 0x0006, 0x56f8, 0x2b94, 0x7716, 0x0000, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0a55, 0x56f8, 0x2b96, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0a31, 0x56f8, 0x2b92, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x0a6b, 0x56f8, 0x2b98, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x0a33, 0xf073, 0x0a47, 0x57f8, 0x2b96, 0x56f8, 0x2b9a, 0x4e00, 0xf274, 0x1277, 0x6d8e, 0xf640, 0xf540, 0x56f8, 0x2b98, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x0a33, 0x56f8, 0x2b9a, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0a57, 0xf073, 0x0a6b, 0x57f8, 0x2b94, 0x56f8, 0x2b9a, 0x4e00, 0xf274, 0x112b, 0x6d96, 0xf640, 0xf540, 0x56f8, 0x2b9a, 0x4e00, 0xf274, 0x110b, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x0a57, 0x4818, 0x7000, 0x0012, 0xf000, 0x0004, 0x8001, 0x4818, 0xf000, 0x0005, 0x8002, 0xf274, 0x12f8, 0xf495, 0xf640, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x0a8a, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x0a83, 0x709b, 0x0012, 0x6004, 0x0002, 0xf820, 0x0aa5, 0xe782, 0xf6b8, 0x6b04, 0xffff, 0x6dea, 0x0005, 0xf120, 0xffff, 0x10ea, 0x0001, 0xfa44, 0x0a96, 0xf300, 0x0001, 0x4818, 0xf000, 0x0005, 0xf600, 0x8812, 0xf495, 0x6d96, 0x7682, 0x0000, 0x10e1, 0x0003, 0x8000, 0x7001, 0x0017, 0xf274, 0x0c6f, 0xf495, 0x4816, 0x1004, 0x8000, 0x7601, 0x0001, 0x10e1, 0x0002, 0x8002, 0x4818, 0x7003, 0x0017, 0xf274, 0x0b96, 0xf000, 0x0006, 0xe782, 0xf6b8, 0x6dea, 0x0005, 0xf120, 0xffff, 0x10ea, 0x0001, 0xfa44, 0x0ac2, 0xf300, 0x0001, 0x1004, 0x08f8, 0x000b, 0xfa44, 0x0ad5, 0x7713, 0x0001, 0xe712, 0x960c, 0xf830, 0x0ad5, 0x7713, 0x0000, 0x1004, 0x8000, 0x7001, 0x0013, 0x4818, 0x7002, 0x0017, 0xf274, 0x0cc3, 0xf000, 0x0006, 0xee6a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xee96, 0x7711, 0x0000, 0x716e, 0x0016, 0x71e6, 0x0002, 0x0012, 0x11f8, 0x0012, 0xfa4d, 0x0b02, 0x716f, 0x0017, 0xf7b8, 0x11f8, 0x0012, 0xf84a, 0x0b07, 0x76e6, 0x0002, 0x0006, 0xf273, 0x0b07, 0x7712, 0x0006, 0x7712, 0x0001, 0x76e6, 0x0002, 0x0001, 0x4918, 0x7000, 0x0012, 0xf300, 0x0005, 0x8101, 0x4918, 0xf300, 0x0004, 0x8102, 0xf074, 0x0ff6, 0xe783, 0x8814, 0x6deb, 0x0006, 0x1084, 0x8083, 0x10f8, 0x0008, 0xf845, 0x0b24, 0x71ec, 0x0001, 0x0012, 0x6e82, 0x0b1d, 0x709b, 0x0012, 0xf7b8, 0xf495, 0x1005, 0xf468, 0xf478, 0xf010, 0xfffd, 0xf843, 0x0b4a, 0x11e6, 0x0002, 0x10f8, 0x000b, 0xf468, 0xf478, 0x0805, 0xf842, 0x0b63, 0x1005, 0xf468, 0xf478, 0xf010, 0x0002, 0xf843, 0x0b4a, 0x1005, 0xf010, 0x0001, 0x8005, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0x6d91, 0xf842, 0x0b3d, 0x1005, 0xf846, 0x0b56, 0x1005, 0xf000, 0x0001, 0x8005, 0x10f8, 0x0008, 0x6d89, 0xf847, 0x0b4d, 0x10e6, 0x0003, 0xf000, 0xfffe, 0x8000, 0x7001, 0x0017, 0xf274, 0x0c6f, 0xf495, 0x4811, 0x11e6, 0x0002, 0x1005, 0x7187, 0x0011, 0x8000, 0x1286, 0xf47d, 0xf030, 0x0001, 0x8001, 0x8102, 0x4818, 0x7003, 0x0017, 0xf274, 0x0b96, 0xf000, 0x0006, 0x1005, 0x8000, 0x7187, 0x0010, 0xf4a9, 0x7712, 0x0000, 0xe900, 0xf830, 0x0b7f, 0xe901, 0xe808, 0x1886, 0xf2a0, 0x10f8, 0x0008, 0xf845, 0x0b88, 0x7712, 0x0001, 0x7001, 0x0012, 0x4818, 0x7002, 0x0017, 0xf274, 0x0cc3, 0xf000, 0x0006, 0xee6a, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xeeff, 0xf495, 0x1103, 0x8100, 0xf110, 0x0001, 0x8913, 0xf495, 0x7711, 0xffff, 0x7104, 0x0015, 0x7105, 0x0014, 0x7106, 0x0010, 0xe732, 0x11ea, 0x0001, 0xfa4c, 0x0ba8, 0xf495, 0x6d91, 0x4911, 0xf500, 0xf7b8, 0xf210, 0x0001, 0x8812, 0x4814, 0x10f8, 0x0008, 0xf847, 0x0bdd, 0x4814, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0bdc, 0xf6b8, 0xe731, 0xf120, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x0bc4, 0xf300, 0x0001, 0xf7b8, 0xf495, 0x1000, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf847, 0x0bdd, 0x10f8, 0x0015, 0xf845, 0x0bdd, 0x7180, 0x0011, 0x7681, 0x0030, 0x6b80, 0xffff, 0xf6b8, 0xe731, 0xf120, 0xffff, 0x10e9, 0x0001, 0xfa44, 0x0be1, 0xf300, 0x0001, 0xf7b8, 0xf495, 0x1000, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf842, 0x0c25, 0x1000, 0xf843, 0x0c25, 0xf6b8, 0xe731, 0xf020, 0xffff, 0x11e9, 0x0001, 0xfa4c, 0x0bf7, 0xf000, 0x0001, 0x6e85, 0x0c15, 0xf495, 0x0800, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0c15, 0x6082, 0x0030, 0xf820, 0x0c15, 0xf010, 0x0001, 0x10f8, 0x0008, 0x6d8a, 0xf847, 0x0c25, 0x6082, 0x0030, 0xf830, 0x0c0a, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0c25, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0c24, 0x7180, 0x0015, 0xe543, 0x6b80, 0xffff, 0x1000, 0xf842, 0x0c6a, 0x1000, 0xf484, 0x8811, 0x10f8, 0x0008, 0xf468, 0xf478, 0x08f8, 0x0014, 0xf842, 0x0c4d, 0xf6b8, 0xf495, 0xf020, 0xffff, 0x11eb, 0x0001, 0xfa4c, 0x0c37, 0xf000, 0x0001, 0xf7b8, 0x10f8, 0x0008, 0xf847, 0x0c4d, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0c4c, 0x7180, 0x0013, 0xe541, 0x6b80, 0xffff, 0x4811, 0x10f8, 0x0008, 0xf468, 0xf478, 0x08f8, 0x0014, 0xf847, 0x0c5a, 0x4814, 0xe741, 0xf484, 0x8000, 0x1000, 0xf842, 0x0c6a, 0x4811, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x0c69, 0x7180, 0x0011, 0x7681, 0x0030, 0x6b80, 0xffff, 0xee01, 0x8a11, 0xfe00, 0xf495, 0x1080, 0x4a11, 0xf7b8, 0x4a16, 0x4a17, 0x8816, 0xeefc, 0x10f8, 0x0008, 0x7108, 0x0017, 0xfa47, 0x0c81, 0x7109, 0x0011, 0xf273, 0x0c83, 0xf495, 0x4816, 0x4816, 0xf484, 0x7600, 0x000a, 0x7601, 0x0064, 0x7002, 0x0011, 0xf274, 0x0f04, 0x10f8, 0x0008, 0xf7b8, 0x4816, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x000a, 0xf842, 0x0caf, 0x4816, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0xfff6, 0xf847, 0x0ca6, 0x7181, 0x0012, 0x7682, 0x0030, 0x6b81, 0xffff, 0x4816, 0x10f8, 0x0008, 0xf842, 0x0caf, 0xf273, 0x0cb0, 0xf495, 0xe82d, 0xe82b, 0x7181, 0x0012, 0x8082, 0x1081, 0xee04, 0xf010, 0x0001, 0x8812, 0x8081, 0x7082, 0x0017, 0x1081, 0xf010, 0x0001, 0x8081, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf7b8, 0x4a16, 0x7714, 0x0000, 0x7103, 0x0013, 0x11f8, 0x0013, 0x3004, 0xfa4f, 0x0cea, 0x7105, 0x0016, 0xf110, 0x0001, 0x8912, 0xf495, 0x7711, 0xffff, 0x11ea, 0x0001, 0xfa4c, 0x0cd7, 0xf495, 0x6d91, 0x11f8, 0x0013, 0xf768, 0xf778, 0x09f8, 0x0011, 0xf84e, 0x0cea, 0x4913, 0xf500, 0xf310, 0x0001, 0x8914, 0xf110, 0x0001, 0x8915, 0x11f8, 0x000e, 0xf84d, 0x0cf7, 0x7186, 0x0011, 0x7681, 0x002e, 0x6b86, 0xffff, 0x7712, 0xffff, 0xe751, 0x11e9, 0x0001, 0xfa4c, 0x0cfa, 0xf495, 0x6d92, 0x11f8, 0x0013, 0xf768, 0xf778, 0x09f8, 0x0012, 0xf84f, 0x0d20, 0x7186, 0x0011, 0x7681, 0x0030, 0xe752, 0x7711, 0xffff, 0x6b86, 0xffff, 0x11ea, 0x0001, 0xfa4c, 0x0d11, 0xf495, 0x6d91, 0x11f8, 0x0011, 0x6d8b, 0xf768, 0xf778, 0x09f8, 0x0013, 0xf84b, 0x0d08, 0x11f8, 0x0013, 0xf84f, 0x0d34, 0x8810, 0xf495, 0xf495, 0xf5ac, 0xf830, 0x0d3a, 0x7186, 0x0012, 0xe560, 0xf5ac, 0xfa20, 0x0d2a, 0x6b86, 0xffff, 0xf073, 0x0d3a, 0x7186, 0x0011, 0x7681, 0x0030, 0x6b86, 0xffff, 0x1086, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x8812, 0x4a17, 0xeefa, 0xf7b8, 0x8004, 0x10e2, 0x0002, 0x110c, 0x710a, 0x0017, 0xfa43, 0x0d52, 0x710b, 0x0011, 0xf273, 0x0d55, 0x6882, 0xffef, 0x76e2, 0x0002, 0x0001, 0x71e2, 0x0003, 0x0012, 0x7713, 0x0058, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0d7c, 0x7713, 0x006f, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0d80, 0x7713, 0x0070, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0d7c, 0x7713, 0x0078, 0x10f8, 0x0012, 0x08f8, 0x0013, 0xf845, 0x0d7c, 0xf273, 0x0d82, 0x7716, 0x000a, 0xf273, 0x0d82, 0x7716, 0x0010, 0x7716, 0x0008, 0x8100, 0x1004, 0xf074, 0x0e0c, 0x7104, 0x0012, 0x11e2, 0x0002, 0xf84c, 0x0d94, 0xf540, 0xf3e0, 0xf84c, 0x0d94, 0xf273, 0x0e07, 0xf495, 0xe801, 0x71e2, 0x0003, 0x0012, 0x7713, 0x0064, 0x11f8, 0x0012, 0x09f8, 0x0013, 0xf84d, 0x0da2, 0x6ce2, 0xff97, 0x0db0, 0xf540, 0xf7b8, 0xf768, 0xf778, 0xf84a, 0x0db0, 0x7687, 0x0001, 0x7104, 0x0012, 0xf484, 0x71e2, 0x0003, 0x0012, 0x7000, 0x0016, 0x7001, 0x0012, 0x7002, 0x0011, 0xf074, 0x0f04, 0xf7b8, 0xf000, 0x0001, 0x11f8, 0x0008, 0xf768, 0x7104, 0x0012, 0xf778, 0x09e2, 0x0002, 0xf84e, 0x0dd7, 0x7181, 0x0012, 0xf000, 0x0001, 0x7682, 0x0030, 0x11f8, 0x0008, 0x6b81, 0xffff, 0xf768, 0x7104, 0x0012, 0xf778, 0x09e2, 0x0002, 0xf84f, 0x0dc5, 0x71e2, 0x0003, 0x0013, 0xe978, 0x10f8, 0x0013, 0x08f8, 0x000b, 0xf845, 0x0de4, 0x6ce3, 0xffa8, 0x0dfa, 0x960c, 0xf820, 0x0dfa, 0x7181, 0x0012, 0x7082, 0x0013, 0x1081, 0xf010, 0x0001, 0x8812, 0xf495, 0x8081, 0x7682, 0x0030, 0x6b81, 0xffff, 0x7104, 0x0012, 0x71e2, 0x0003, 0x0013, 0x6ce3, 0xff91, 0x0e06, 0x960c, 0xf820, 0x0e06, 0x7181, 0x0012, 0x7682, 0x0030, 0x6b81, 0xffff, 0xe800, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x8813, 0x4a11, 0xe970, 0x71e3, 0x0003, 0x0011, 0x10f8, 0x0011, 0x08f8, 0x000b, 0xfa45, 0x0efb, 0x7102, 0x0012, 0x1183, 0xf330, 0x0160, 0x8913, 0xf495, 0x7710, 0x0020, 0xf4ab, 0xe800, 0xf830, 0x0eb6, 0x7710, 0x0040, 0xf4ab, 0xf830, 0x0e67, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0e55, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ef3, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ef3, 0xf073, 0x0f02, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0xf073, 0x0f02, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0e92, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0xf073, 0x0f02, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ea4, 0xf073, 0x0f02, 0x1182, 0xf693, 0xf030, 0x0001, 0xf600, 0xf000, 0x0001, 0x8811, 0xf495, 0x4911, 0x7082, 0x0011, 0xf300, 0x0001, 0xf273, 0x0f02, 0x5681, 0x8182, 0xf7b8, 0x11f8, 0x0011, 0xf768, 0xf778, 0xf310, 0x006f, 0xf84e, 0x0ee1, 0x7713, 0x006f, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0058, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0064, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ef3, 0x7713, 0x0069, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0ef3, 0xf073, 0x0f02, 0x7713, 0x0075, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0x7713, 0x0078, 0x11f8, 0x0011, 0x09f8, 0x0013, 0xf84d, 0x0efb, 0xf073, 0x0f02, 0x1082, 0xf000, 0x0001, 0x8811, 0xf273, 0x0f02, 0x8082, 0x1081, 0x1082, 0xf000, 0x0001, 0x8811, 0xf495, 0x8082, 0x1281, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf495, 0x4e02, 0xf0e0, 0x710a, 0x0016, 0x710b, 0x0017, 0xfa44, 0x0f1b, 0x710c, 0x0011, 0x7181, 0x0012, 0x7682, 0x0030, 0xf273, 0x0f3e, 0x6b81, 0xffff, 0xf7b8, 0x7000, 0x0016, 0x5602, 0xf074, 0x0f52, 0x4e04, 0x4e00, 0xf7b8, 0xf274, 0x14ab, 0x10f8, 0x0016, 0xf7b8, 0x6ee7, 0xffa8, 0x0f30, 0x5702, 0xf520, 0xf300, 0x0010, 0x8912, 0xf495, 0x7181, 0x0013, 0xf6b8, 0x6dea, 0x2b71, 0xe501, 0x6b81, 0xffff, 0x5604, 0x4e02, 0xf844, 0x0f1b, 0x1081, 0xf6b8, 0xf010, 0x0001, 0x8811, 0xf020, 0xffff, 0x11e9, 0x0001, 0xfa4c, 0x0f45, 0xf000, 0x0001, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfe00, 0xf010, 0x0001, 0x4a11, 0xeefe, 0x7712, 0x0008, 0x7104, 0x0011, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xf84d, 0x0f68, 0x7712, 0x0010, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xf84d, 0x0f6c, 0xf073, 0x0f70, 0xf273, 0x0f85, 0xf495, 0xf0fd, 0xf273, 0x0f85, 0xf495, 0xf0fc, 0xf540, 0xf6b8, 0xf3e0, 0xf310, 0xffff, 0xf84a, 0x0f7f, 0x7000, 0x0011, 0xf074, 0x17b8, 0xf273, 0x0f85, 0xf495, 0x4808, 0xf7b8, 0x11f8, 0x0011, 0x4f00, 0xf074, 0x1456, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0xffff, 0xeefe, 0x6ce1, 0x0001, 0x0f93, 0xf273, 0x0f99, 0xe800, 0xe900, 0xf120, 0xffff, 0x10f8, 0xffff, 0xf300, 0x0001, 0x8100, 0xf074, 0x0113, 0xee02, 0x8a11, 0xfc00, 0x8813, 0x4a11, 0xf020, 0x2bac, 0xeefe, 0x1183, 0x8000, 0xf600, 0x8812, 0xf495, 0xf495, 0x6d92, 0x960c, 0xf820, 0x0fb9, 0x11eb, 0x0001, 0x1000, 0xf600, 0x8812, 0xf495, 0xf495, 0x6d92, 0x960c, 0xf830, 0x0fae, 0x8911, 0xf495, 0x7712, 0x002d, 0x11f8, 0x0011, 0x09f8, 0x0012, 0xe800, 0xf84d, 0x0fcb, 0x6ee1, 0xffd5, 0x0fd0, 0x7714, 0x0000, 0xf073, 0x0fcd, 0x7714, 0x0001, 0x71eb, 0x0001, 0x0011, 0x4911, 0x0100, 0x8912, 0xf495, 0xf495, 0x6d92, 0x960d, 0xf820, 0x0fee, 0x4911, 0x880e, 0x71eb, 0x0001, 0x0011, 0xf066, 0x000a, 0xf600, 0x7001, 0x0011, 0x1100, 0x0101, 0x8912, 0xf495, 0xf495, 0x6d92, 0x960d, 0xfa30, 0x0fd9, 0xf010, 0x0030, 0x11f8, 0x0014, 0xf84d, 0x0ff3, 0xf484, 0xee02, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x4a17, 0xeef8, 0xf7b8, 0x4e02, 0x710e, 0x0011, 0x710d, 0x0017, 0x710c, 0x0016, 0x56f8, 0x2b9c, 0x76f8, 0x2a9d, 0x0030, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xe900, 0xf842, 0x1012, 0xe901, 0x56f8, 0x2b9c, 0x8181, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x1022, 0x5602, 0xf074, 0x12ea, 0x4e02, 0x56f8, 0x2b9e, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xfa47, 0x1042, 0x7711, 0x0000, 0x56f8, 0x2ba0, 0x4e00, 0x5602, 0xf074, 0x112b, 0x57f8, 0x2b9e, 0x4e02, 0x4f00, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0x6d91, 0xf846, 0x1030, 0xf020, 0x2a9d, 0x8004, 0x56f8, 0x2b9c, 0x4e00, 0x5602, 0xf274, 0x110b, 0xf495, 0x6d96, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x107c, 0x56f8, 0x2ba2, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x107c, 0x56f8, 0x2ba0, 0x4e00, 0x5602, 0xf074, 0x1277, 0x4e02, 0xf7b8, 0x56f8, 0x2b9c, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0x6d89, 0xf845, 0x107c, 0x56f8, 0x2ba2, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x105d, 0x1004, 0xf000, 0x0001, 0x8005, 0x5602, 0xf074, 0x1202, 0x1105, 0x8100, 0xf074, 0x14bf, 0xf540, 0x8006, 0x1004, 0xf500, 0xf300, 0x0001, 0x8912, 0x4811, 0x1106, 0xf500, 0xf7b8, 0x8187, 0x1106, 0xf768, 0xf778, 0x09f8, 0x0016, 0xf84a, 0x10c6, 0x4916, 0x0906, 0x8916, 0xf495, 0x4816, 0x10f8, 0x0008, 0xf847, 0x10cd, 0x4816, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x10c3, 0xf7b8, 0xf495, 0x5602, 0xf074, 0x1202, 0xf074, 0x124d, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x12ef, 0x4e02, 0x56f8, 0x2ba0, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x1277, 0x4e02, 0xf074, 0x11c6, 0xf000, 0x0030, 0x8092, 0xf073, 0x10cd, 0x1104, 0x4816, 0xf600, 0xf000, 0x0001, 0x8812, 0xf495, 0xf7b8, 0x10ea, 0xffff, 0xf468, 0xf478, 0xf010, 0x0035, 0xf843, 0x1103, 0x4812, 0xf010, 0x0001, 0x8811, 0xf495, 0xf495, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf843, 0x10f6, 0x7689, 0x0030, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x10e8, 0x7104, 0x0010, 0xf7a9, 0xf830, 0x1103, 0x76ea, 0xffff, 0x0000, 0x4810, 0xf273, 0x1106, 0x6b87, 0x0001, 0x7682, 0x0000, 0x1005, 0xee08, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xf7b8, 0xf468, 0xf478, 0x5704, 0xf842, 0x1118, 0xff4b, 0xf484, 0xf784, 0xf586, 0xf808, 0x1123, 0xf587, 0xf808, 0x1127, 0xf420, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x111f, 0xe801, 0xf495, 0xf273, 0x111f, 0xf020, 0xffff, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x1198, 0x6f05, 0x0c79, 0x800b, 0xf063, 0x007f, 0xf060, 0x0080, 0x820a, 0x5612, 0xf845, 0x11b6, 0x6f06, 0x0c79, 0x8009, 0xf063, 0x007f, 0xf060, 0x0080, 0x8208, 0x1005, 0x1c06, 0xf030, 0x0100, 0x8004, 0x1005, 0xf030, 0x00ff, 0x1106, 0xf330, 0x00ff, 0xf000, 0x007f, 0xf620, 0x8001, 0xf843, 0x11ae, 0xf010, 0x00ff, 0xf846, 0x119e, 0x560a, 0xf0e6, 0x5708, 0xf3e7, 0x4f08, 0xec0e, 0x1e08, 0x8002, 0x0a02, 0xec0a, 0x1e08, 0x6f03, 0x0c85, 0x3002, 0x2409, 0xf0ff, 0xec0b, 0x1e08, 0xf0e4, 0xf030, 0xffff, 0xf0e1, 0xf484, 0x0203, 0x3c02, 0x1101, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0x0901, 0xf0ff, 0xf300, 0x0001, 0xf000, 0x0020, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0x0901, 0x8101, 0xf84f, 0x11ae, 0xf310, 0x00ff, 0xf84a, 0x119e, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x4404, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0x7600, 0x0002, 0xf074, 0x11c5, 0xf483, 0xf061, 0x0081, 0x4504, 0xf84c, 0x1198, 0xf162, 0x8000, 0xf273, 0x1198, 0xf2c0, 0xf495, 0x7600, 0x0001, 0xf074, 0x11c5, 0xf273, 0x1198, 0xf420, 0xf495, 0x7600, 0x0003, 0xf074, 0x11c5, 0x4505, 0xf363, 0x0100, 0xf061, 0x0081, 0xf065, 0x8000, 0xf273, 0x1198, 0xf2a7, 0xf495, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b8, 0xeefd, 0xf845, 0x11e8, 0x6f01, 0x0c79, 0xf0e9, 0xf0f7, 0xf060, 0x0080, 0x6f02, 0x0c67, 0x1101, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf84b, 0x11ee, 0xf310, 0x000e, 0xf84e, 0x11f2, 0x890e, 0x6101, 0x0100, 0x1402, 0xfd30, 0xf484, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x11e8, 0xf420, 0xf495, 0x7600, 0x0002, 0xf074, 0x11c5, 0x6101, 0x0100, 0xf020, 0x7fff, 0xf820, 0x11e8, 0xf000, 0x0001, 0xf273, 0x11e8, 0xf484, 0xf495, 0xf845, 0x1235, 0x4a0e, 0x4a0d, 0x4a0b, 0x4a0c, 0xf6b8, 0xeefd, 0x6f01, 0x0c79, 0xf0e9, 0xf0f7, 0xf060, 0x0080, 0xf447, 0x1101, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf84b, 0x1236, 0xf310, 0x001e, 0xf84e, 0x123a, 0xf84d, 0x122b, 0xf300, 0x0010, 0xf84a, 0x1226, 0xf273, 0x1228, 0xf0f0, 0xf495, 0xf310, 0x0010, 0x890e, 0xf495, 0xf48f, 0x6101, 0x0100, 0xf495, 0xfd30, 0xf484, 0xee03, 0x8a0c, 0x8a0b, 0x8a0d, 0x8a0e, 0xfc00, 0xf273, 0x1230, 0xf420, 0xf495, 0x7600, 0x0002, 0xf074, 0x11c5, 0x6101, 0x0100, 0xf062, 0x7fff, 0xf040, 0xffff, 0xf483, 0xf820, 0x1230, 0xf000, 0x0001, 0xf273, 0x1230, 0xf484, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf7b8, 0xeefd, 0xf468, 0xf478, 0xf845, 0x126d, 0x8201, 0xf4ba, 0xf485, 0xf870, 0x1273, 0xf48e, 0xe99d, 0x8c00, 0x0900, 0xf48f, 0xf0e2, 0xf0fe, 0xf459, 0x6101, 0x8000, 0xf3ef, 0xf2a8, 0xf820, 0x126d, 0xf064, 0x8000, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x126d, 0xf062, 0xcf00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x12d0, 0x6f05, 0x0c79, 0x800b, 0xf063, 0x007f, 0xf060, 0x0080, 0x820a, 0x5612, 0xf845, 0x12d0, 0x6f06, 0x0c79, 0x8009, 0xf063, 0x007f, 0xf060, 0x0080, 0x8208, 0x1005, 0x1c06, 0xf030, 0x0100, 0x8004, 0x1005, 0xf030, 0x00ff, 0x1106, 0xf330, 0x00ff, 0xf310, 0x007f, 0xf600, 0x8001, 0xf843, 0x12e2, 0xf010, 0x00ff, 0xf846, 0x12d6, 0x300b, 0x2409, 0x2508, 0xf510, 0x300a, 0x2409, 0xf600, 0x2508, 0x8102, 0x3c02, 0xf000, 0x0040, 0xf468, 0xf478, 0xf6b8, 0x1101, 0xf842, 0x12c1, 0xf0ff, 0xf300, 0x0001, 0x8101, 0xf84f, 0x12e2, 0xf310, 0x00ff, 0xf84a, 0x12d6, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x4404, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0x7600, 0x0002, 0xf074, 0x11c5, 0x4504, 0xf020, 0xffff, 0xf2a7, 0xf273, 0x12d0, 0xf060, 0x7f7f, 0x7600, 0x0001, 0xf074, 0x11c5, 0xf273, 0x12d0, 0xf420, 0xf495, 0xf495, 0xff44, 0xf065, 0x8000, 0xfc00, 0xf495, 0x6001, 0x0000, 0xf495, 0xff20, 0x6a01, 0x8000, 0xf073, 0x17c4, 0x4a11, 0x4a16, 0x4a17, 0xeefa, 0xf7b8, 0x4e02, 0x710c, 0x0011, 0x710b, 0x0017, 0x710a, 0x0016, 0x56f8, 0x2ba4, 0x76f8, 0x2b01, 0x0030, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xe900, 0xf842, 0x1314, 0xe901, 0x56f8, 0x2ba4, 0x8181, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x1324, 0x5602, 0xf074, 0x12ea, 0x4e02, 0x56f8, 0x2ba6, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xfa47, 0x1344, 0x7711, 0x0000, 0x56f8, 0x2ba8, 0x4e00, 0x5602, 0xf074, 0x112b, 0x57f8, 0x2ba6, 0x4e02, 0x4f00, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0x6d91, 0xf846, 0x1332, 0xf020, 0x2b01, 0x8004, 0x56f8, 0x2ba4, 0x4e00, 0x5602, 0xf274, 0x110b, 0xf495, 0x6d96, 0xf7b8, 0x10f8, 0x0008, 0xf845, 0x137e, 0x56f8, 0x2baa, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf842, 0x137e, 0x56f8, 0x2ba8, 0x4e00, 0x5602, 0xf074, 0x1277, 0x4e02, 0xf7b8, 0x56f8, 0x2ba4, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0x6d89, 0xf845, 0x137e, 0x56f8, 0x2baa, 0x4e00, 0x5602, 0xf074, 0x110b, 0xf7b8, 0x10f8, 0x0008, 0xf843, 0x135f, 0x1004, 0xf000, 0x0001, 0x8005, 0x5602, 0xf074, 0x1202, 0x1105, 0x8100, 0xf074, 0x14bf, 0x8812, 0x1104, 0xf600, 0xf100, 0x0001, 0x8913, 0x4911, 0x4812, 0xf600, 0x8087, 0x4816, 0xf600, 0xf7b8, 0x8816, 0x10f8, 0x0008, 0xf847, 0x13bc, 0x4816, 0xf010, 0x0001, 0x881a, 0xf495, 0xf072, 0x13bb, 0xf7b8, 0xf495, 0x5602, 0xf074, 0x1202, 0xf074, 0x124d, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x12ef, 0x4e02, 0x56f8, 0x2ba8, 0xf7b8, 0x4e00, 0x5602, 0xf074, 0x1277, 0x4e02, 0xf074, 0x11c6, 0xf000, 0x0030, 0x8093, 0xf7b8, 0x10eb, 0xffff, 0xf468, 0xf478, 0xf010, 0x0035, 0xf843, 0x13ea, 0x4813, 0xf010, 0x0001, 0x8811, 0xf495, 0xf495, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf843, 0x13e5, 0x7689, 0x0030, 0x1081, 0xf000, 0x0001, 0x8081, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x003a, 0xf842, 0x13d7, 0x7104, 0x0010, 0xf4a9, 0xf830, 0x13f0, 0x7683, 0x0000, 0xf273, 0x1401, 0xf495, 0x1005, 0xf6ab, 0xf830, 0x13fc, 0x7711, 0x2b01, 0x76e1, 0x0001, 0x0000, 0xf273, 0x13fe, 0x7004, 0x0011, 0x7683, 0x0000, 0x6b87, 0x0001, 0x1004, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf7b8, 0xf468, 0xf478, 0x4506, 0xf1c0, 0x8300, 0xf485, 0x5706, 0xf785, 0x4f06, 0xf520, 0xf84d, 0x1426, 0xf84e, 0x142a, 0xf074, 0x148b, 0x6100, 0x8000, 0xf820, 0x1421, 0xf484, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x141c, 0xe801, 0xf495, 0xf273, 0x1421, 0xf420, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf7b8, 0x8200, 0xf468, 0xf478, 0xf485, 0x5706, 0xf785, 0x4f06, 0xf520, 0xf84d, 0x144e, 0xf84e, 0x1452, 0xf074, 0x148b, 0x6100, 0x8000, 0xfa20, 0x1449, 0xf640, 0xf495, 0xf484, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1449, 0xf420, 0xf495, 0xf273, 0x1442, 0xf540, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf6b8, 0xf0e0, 0x5706, 0xf520, 0xf84d, 0x146a, 0xf84e, 0x146e, 0xf074, 0x148b, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1465, 0xe801, 0xf495, 0xf273, 0x1465, 0xf420, 0xf495, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0xeefe, 0xf6b8, 0xf0e0, 0x5706, 0xf520, 0xf84d, 0x1487, 0xf84e, 0x1482, 0xf074, 0x148b, 0xf640, 0xee02, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf273, 0x1482, 0xf420, 0xf495, 0xf495, 0x4a11, 0xf6b8, 0xf273, 0x1493, 0x7711, 0x001f, 0x6d89, 0xf0e1, 0xf808, 0x1492, 0xe901, 0x5508, 0xf84b, 0x149e, 0xf273, 0x149f, 0xf040, 0x0001, 0x5308, 0x6c89, 0x14a3, 0x8a11, 0xfc00, 0xf3e1, 0xf0e1, 0xf808, 0x1497, 0xf273, 0x1497, 0xf340, 0x0001, 0xf495, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a0e, 0xeefd, 0xf495, 0x4e00, 0x3109, 0x4408, 0x3501, 0x2409, 0xf76f, 0xf601, 0xee03, 0x8a0e, 0x8a0d, 0x8a0c, 0x8a0b, 0xfc00, 0xf540, 0x4a11, 0xf7b8, 0xf768, 0x7711, 0x0000, 0xeee8, 0xf778, 0xfa4a, 0x14cd, 0x711a, 0x0013, 0x7711, 0x0001, 0xe782, 0x6dea, 0x0015, 0xf540, 0x7682, 0x0000, 0xe80a, 0x4e00, 0xf274, 0x142e, 0xf495, 0xf640, 0xf7b8, 0x10f8, 0x0008, 0xf485, 0xf000, 0x0030, 0x80ea, 0xffff, 0xe80a, 0x4e00, 0xf274, 0x1406, 0xf495, 0xf640, 0xf7b8, 0xf540, 0xf468, 0xf478, 0xf844, 0x14d3, 0x10f8, 0x0011, 0xf845, 0x14f4, 0x76ea, 0xffff, 0x002d, 0x4818, 0x4912, 0xf000, 0x0002, 0xf620, 0x7000, 0x0012, 0xf000, 0x0014, 0x10f8, 0x0008, 0x4e16, 0x8001, 0xf274, 0x152d, 0xf495, 0x4813, 0xf7b8, 0xf495, 0x5616, 0xee18, 0x8a11, 0xfe00, 0xf010, 0x0001, 0xf7b8, 0x4a11, 0x8812, 0x1004, 0x1103, 0xfa47, 0x152a, 0x7102, 0x0011, 0xf010, 0x0001, 0x881a, 0x6d89, 0xf072, 0x1529, 0x10e9, 0x0001, 0x8092, 0x10f8, 0x0008, 0x08f8, 0x000b, 0xf844, 0x1529, 0xf273, 0x152b, 0xf495, 0x4812, 0xf495, 0xe800, 0x8a11, 0xfc00, 0x1302, 0x7101, 0x0012, 0x8813, 0xf84d, 0x153a, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x1539, 0xe589, 0xfc00, 0x4a11, 0x7211, 0x2b65, 0xf495, 0x8813, 0x6c81, 0x1546, 0xf273, 0x1571, 0x7313, 0x2b65, 0xf495, 0x7712, 0x0000, 0x1183, 0xf7b8, 0x10f8, 0x000b, 0xf468, 0xf478, 0x0881, 0xf842, 0x155a, 0xe712, 0x71e2, 0x0001, 0x0011, 0x6c81, 0x154a, 0xf073, 0x156e, 0x4811, 0xf845, 0x156e, 0x6c82, 0x1566, 0x70e3, 0x0001, 0x2b65, 0xf273, 0x1574, 0x7313, 0x2b65, 0x70e3, 0x0001, 0x0011, 0x70e2, 0x0001, 0x0013, 0xf073, 0x1574, 0x70e2, 0x0001, 0x0013, 0x76e3, 0x0001, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x8813, 0x7211, 0x2b65, 0x4811, 0xf845, 0x1599, 0xe730, 0xf4a9, 0xf830, 0x1594, 0xe712, 0x71e2, 0x0001, 0x0011, 0x4811, 0xf845, 0x1599, 0xf7a9, 0xf830, 0x1581, 0x4812, 0xf845, 0x1594, 0x10e3, 0x0001, 0xf273, 0x159c, 0x80e2, 0x0001, 0x71e3, 0x0001, 0x2b65, 0xf073, 0x159c, 0x76f8, 0x2b65, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x10f8, 0x290b, 0xf4e3, 0x7711, 0x2cbb, 0x61f8, 0x0011, 0x0001, 0xf830, 0x15b9, 0x4811, 0x7681, 0x0000, 0xf000, 0x0001, 0x80f8, 0x2b65, 0xf020, 0x00fe, 0x80f8, 0x2b66, 0xf484, 0xf273, 0x15c2, 0x80e1, 0x0001, 0xf020, 0x00ff, 0x80f8, 0x2b66, 0x7311, 0x2b65, 0xf484, 0x80f8, 0x2cbb, 0x7211, 0x2b65, 0xf495, 0x76e1, 0x0001, 0x0000, 0x10f8, 0x290c, 0xf4e3, 0x8a11, 0xfc00, 0x4a11, 0x8811, 0x4a16, 0xeeff, 0x10f8, 0x290b, 0xf4e3, 0x10f8, 0x2b67, 0xf845, 0x15dd, 0xf074, 0x159e, 0x76f8, 0x2b67, 0x0000, 0xf7b8, 0x4811, 0x10f8, 0x0008, 0xfa43, 0x15ff, 0x7216, 0x2b65, 0x61f8, 0x0011, 0x0001, 0xf830, 0x15eb, 0x6d91, 0x4811, 0xf484, 0x8811, 0x4816, 0xf845, 0x15ff, 0x1186, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0011, 0xf847, 0x160e, 0x71e6, 0x0001, 0x0016, 0x6c86, 0x1605, 0x10f8, 0x290c, 0xf4e3, 0xe800, 0xf073, 0x163a, 0x1186, 0x10f8, 0x000b, 0xf468, 0xf478, 0x08f8, 0x0011, 0xf846, 0x15fa, 0x8100, 0xf274, 0x1576, 0xf495, 0x4816, 0xf7b8, 0x4811, 0x0800, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0xf842, 0x1622, 0xf273, 0x1632, 0xf495, 0xf640, 0x4911, 0x4816, 0xf620, 0xf000, 0x0001, 0x8812, 0x1000, 0xf620, 0xf000, 0x0001, 0x8082, 0xf274, 0x153b, 0xf495, 0x4812, 0x4811, 0xf484, 0x8086, 0x10f8, 0x290c, 0xf4e3, 0x4816, 0xf000, 0x0001, 0xee01, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0xf495, 0x3002, 0x20f8, 0x0008, 0xf274, 0x15cd, 0x8811, 0xf495, 0x8812, 0xf495, 0xf495, 0x6c82, 0x1650, 0xf273, 0x165e, 0xf495, 0xe800, 0x4911, 0xf495, 0x490b, 0xf84d, 0x165e, 0x4911, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x165d, 0x7692, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0xf7b8, 0x4a17, 0x8817, 0xf010, 0x0001, 0xeefa, 0x8816, 0x110a, 0x10f8, 0x000b, 0x76f8, 0x2b66, 0x0100, 0x8911, 0xf843, 0x16db, 0x6c87, 0x167a, 0xf274, 0x15cd, 0xf495, 0xf640, 0xf073, 0x1723, 0x6c81, 0x1682, 0xf274, 0x1728, 0xf495, 0x4817, 0xf073, 0x16db, 0x1086, 0xfa47, 0x16db, 0xf495, 0x8002, 0x61f8, 0x0011, 0x0001, 0xf830, 0x168d, 0x6d91, 0x10f8, 0x0011, 0x1102, 0xf468, 0xf478, 0x08f8, 0x000b, 0xf847, 0x1706, 0xf640, 0x4916, 0xf600, 0xf000, 0x0001, 0x8003, 0x8004, 0x10f8, 0x290b, 0xf4e3, 0x6bf8, 0x2b66, 0xfffe, 0x7210, 0x2b66, 0x7103, 0x0012, 0x6de8, 0x2cbb, 0xf5aa, 0xf820, 0x16bb, 0xf7b8, 0xf495, 0x1182, 0xf84a, 0x16bb, 0x1002, 0xf620, 0x4911, 0xf620, 0xf100, 0x0001, 0x11f8, 0x000b, 0xf84a, 0x16df, 0xf274, 0x15cd, 0xf495, 0x4811, 0x8811, 0xf495, 0x4811, 0xf845, 0x16d8, 0x4816, 0xf000, 0x0001, 0x8000, 0x1002, 0x8001, 0xf274, 0x1863, 0xf495, 0x4811, 0xf274, 0x1728, 0xf495, 0x4817, 0x10f8, 0x290c, 0xf4e3, 0x4811, 0xf073, 0x1723, 0x10f8, 0x290c, 0xf4e3, 0xf273, 0x1723, 0xf495, 0xe800, 0xf274, 0x1576, 0xf495, 0x4812, 0xf7b8, 0x10f8, 0x000b, 0xf468, 0xf478, 0xf010, 0x0002, 0xf842, 0x16f1, 0x4811, 0xf273, 0x1701, 0xf500, 0x8186, 0x7086, 0x0011, 0x4816, 0x7002, 0x0011, 0x0002, 0xf000, 0x0001, 0x8816, 0xe801, 0xf620, 0x8086, 0xf274, 0x153b, 0xf495, 0x4816, 0x10f8, 0x290c, 0xf4e3, 0xf073, 0x1722, 0xf640, 0x4911, 0xf620, 0x8812, 0x10f8, 0x0008, 0xf468, 0xf478, 0xf010, 0x0002, 0xf843, 0x1722, 0x4816, 0xf600, 0x7086, 0x0011, 0xf000, 0x0001, 0x8816, 0x4812, 0xf010, 0x0001, 0x8086, 0x4816, 0xf274, 0x1728, 0xf000, 0x0001, 0x4817, 0xee06, 0x8a17, 0x8a16, 0x8a11, 0xfc00, 0x4a11, 0x4a16, 0x8816, 0x4808, 0xeeff, 0xf845, 0x17b4, 0x10f8, 0x290b, 0xf4e3, 0xf020, 0x0100, 0x6d8e, 0x80f8, 0x2b66, 0x8000, 0x4816, 0x8810, 0xf495, 0x7712, 0x2cbb, 0xe721, 0xf5a9, 0xf830, 0x1748, 0xf7a9, 0xf830, 0x17b1, 0xf273, 0x175c, 0x7714, 0x0000, 0xf7b8, 0xf495, 0x1081, 0xe714, 0xf842, 0x174f, 0xf484, 0x4911, 0xf600, 0xf000, 0x0001, 0x8811, 0xf495, 0xf495, 0xf5a9, 0xf830, 0x1748, 0xf7a9, 0xf830, 0x17b1, 0xf7b8, 0xf495, 0x1081, 0xf843, 0x17b1, 0xf484, 0x8081, 0x4811, 0x0881, 0xf000, 0x0001, 0x8815, 0x1000, 0xf010, 0x0001, 0x80f8, 0x2b66, 0x4812, 0x0000, 0x8810, 0xf495, 0xf495, 0x6d88, 0xf6ad, 0xf820, 0x1778, 0x7715, 0x0000, 0x4814, 0xf845, 0x179f, 0x1084, 0xf842, 0x179f, 0x4815, 0xf845, 0x1795, 0x1085, 0xf842, 0x1795, 0xf274, 0x1576, 0xf495, 0x4814, 0xf274, 0x1576, 0xf495, 0x4815, 0x1085, 0x0084, 0x0081, 0xf010, 0x0002, 0xf273, 0x17af, 0x8084, 0x4814, 0xf274, 0x1576, 0xf495, 0x4814, 0x1081, 0x0084, 0xf273, 0x1791, 0xf010, 0x0001, 0x4815, 0xf845, 0x17ae, 0x1085, 0xf842, 0x17ae, 0xf274, 0x1576, 0xf495, 0x4815, 0x1085, 0x0081, 0xf010, 0x0001, 0x8081, 0x4811, 0xf074, 0x153b, 0x10f8, 0x290c, 0xf4e3, 0xee01, 0x8a16, 0x8a11, 0xfc00, 0xf6b8, 0x4808, 0xec0f, 0x1e01, 0xfc00, 0xf6b8, 0x4808, 0xec0f, 0x1e01, 0xfe00, 0xf0f0, 0xf495, 0xf495, 0x4a0e, 0x4a0b, 0x4a0c, 0x4a0d, 0xf6b7, 0xeef3, 0xf7b8, 0xf468, 0xf478, 0xf845, 0x183d, 0xf540, 0xf6b8, 0xf0e1, 0x6f05, 0x0c78, 0xf0e8, 0xf0f7, 0xf060, 0x0080, 0xfd4b, 0xf484, 0xf7b8, 0x4e0a, 0x5612, 0xf845, 0x1841, 0xf540, 0xf0e1, 0x6f06, 0x0c78, 0xf6b8, 0xf0e8, 0xf0f7, 0xf060, 0x0080, 0xfd4b, 0xf484, 0xf7b8, 0x4e08, 0x1005, 0x1106, 0xf520, 0xf84b, 0x181c, 0xf84e, 0x182d, 0x560a, 0x5008, 0xf845, 0x185f, 0x1105, 0x8204, 0xf485, 0xf0e6, 0xf48e, 0xf495, 0xf48f, 0x8c01, 0xf300, 0x0001, 0x0901, 0x8101, 0xf84f, 0x185b, 0xf310, 0x00ff, 0xf84a, 0x184e, 0xf0f9, 0x8003, 0xf038, 0x7f00, 0x8202, 0x6f04, 0x0c49, 0xf063, 0x0100, 0x3c01, 0xf0e7, 0x5002, 0xee0d, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0e, 0xfc00, 0xf785, 0xf310, 0x0018, 0xf84a, 0x1841, 0xf300, 0x0017, 0x8104, 0x5608, 0x4704, 0xf47f, 0x1105, 0x500a, 0xf844, 0x17f9, 0xf073, 0x1816, 0xf310, 0x0018, 0xf84a, 0x183d, 0xf300, 0x0017, 0x8104, 0x560a, 0x4704, 0xf47f, 0x1106, 0x5008, 0xf844, 0x17f9, 0xf073, 0x1816, 0xf273, 0x1816, 0x5612, 0xf495, 0x560a, 0xf846, 0x1847, 0xf484, 0x6b05, 0x0100, 0xf061, 0x0080, 0x4505, 0xf273, 0x1816, 0xf3e7, 0xf600, 0x7600, 0x0002, 0xf074, 0x11c5, 0x4404, 0xf063, 0x1f40, 0xf040, 0xffff, 0xf273, 0x1816, 0xf060, 0x7f7f, 0x7600, 0x0001, 0xf074, 0x11c5, 0xf273, 0x1816, 0xf420, 0xf495, 0x4a11, 0x8811, 0xf495, 0xeefe, 0xe710, 0x7104, 0x0012, 0xf6aa, 0x1105, 0xf820, 0x1875, 0x7000, 0x0012, 0x8101, 0xf074, 0x152d, 0xf073, 0x188a, 0x00f8, 0x000b, 0x8813, 0x4812, 0x00f8, 0x000b, 0x490b, 0x8812, 0xf84d, 0x1889, 0xf310, 0x0001, 0x891a, 0xf495, 0xf072, 0x1888, 0x10ea, 0xffff, 0x80eb, 0xffff, 0x4811, 0xee02, 0x8a11, 0xfc00, 23 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0001, 0x10f8, 0x031d, 0x76f8, 0x031e, 0x0000, 0xfa44, 0x00c2, 0xf495, 0xeeff, 0x7712, 0x0054, 0x960f, 0xf830, 0x00c2, 0xf074, 0x00fc, 0x7711, 0x0054, 0x6981, 0x0001, 0xf074, 0x02af, 0xf073, 0x00c4, 0xf074, 0x00fc, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x7711, 0x0026, 0x7712, 0x0001, 0x7713, 0x0001, 0x7681, 0x0010, 0x7711, 0x0000, 0x7681, 0xffff, 0xe501, 0xf495, 0xf6bb, 0xf074, 0x0284, 0xf074, 0x0243, 0xf4e1, 0xf495, 0xf073, 0x00f3, 0xe808, 0x75f8, 0x0008, 0x0280, 0xfc00, 0x4a11, 0x60f8, 0x031d, 0x0001, 0xfa30, 0x0109, 0xf495, 0xeefe, 0x60f8, 0x031d, 0x0002, 0xf820, 0x011e, 0x7711, 0x0054, 0x6881, 0xfffe, 0xf074, 0x02ba, 0xe800, 0x75f8, 0x0008, 0x8006, 0x76f8, 0x031b, 0x0000, 0x76f8, 0x0319, 0x0000, 0x76f8, 0x031a, 0x0000, 0xf073, 0x018b, 0x10f8, 0x031a, 0x08f8, 0x0318, 0xf844, 0x012f, 0x76f8, 0x031a, 0x0000, 0x76f8, 0x031e, 0x0001, 0x76f8, 0x02c5, 0x0003, 0xf074, 0x00f7, 0x10f8, 0x031e, 0xf844, 0x018b, 0x10f8, 0x0318, 0x00f8, 0x0319, 0x08f8, 0x031a, 0x8811, 0xf495, 0x7710, 0x1000, 0xf6a9, 0xf820, 0x0146, 0xf020, 0x1000, 0xf273, 0x014a, 0x08f8, 0x0319, 0x10f8, 0x0318, 0x08f8, 0x031a, 0x80f8, 0x031b, 0x10f8, 0x031c, 0xf6b8, 0xf000, 0x8000, 0x6ff8, 0x0319, 0x0c1f, 0x75f8, 0x0008, 0x8002, 0xe800, 0x75f8, 0x0008, 0x8003, 0x10f8, 0x0316, 0xf1ef, 0xf3e1, 0x10f8, 0x0317, 0xf2a0, 0x00f8, 0x031a, 0x4e00, 0xf020, 0xffff, 0x5700, 0xf280, 0x75f8, 0x0008, 0x8000, 0x5600, 0xf0f0, 0x75f8, 0x0008, 0x8001, 0xe800, 0x75f8, 0x031b, 0x8004, 0x75f8, 0x0008, 0x8005, 0x74f8, 0x02c7, 0x8006, 0x74f8, 0x02c8, 0x8001, 0x74f8, 0x02c9, 0x8000, 0x74f8, 0x02ca, 0x8003, 0xe801, 0x74f8, 0x02cb, 0x8002, 0x75f8, 0x0008, 0x8006, 0xee02, 0x8a11, 0xfc00, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0040, 0x7711, 0x0055, 0x7681, 0x0000, 0xf020, 0x0800, 0x7711, 0x0057, 0xeeff, 0x1881, 0x8000, 0xf020, 0x0800, 0x1c00, 0x76f8, 0x0319, 0x0000, 0x80f8, 0x031c, 0xf074, 0x00fc, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0xf495, 0x4a08, 0x4a09, 0x4a0a, 0x4a0b, 0x4a0c, 0x4a0d, 0x4a10, 0x4a11, 0x4a12, 0x4a13, 0x4a14, 0x4a15, 0x4a16, 0x4a17, 0x4a17, 0x4a19, 0x4a0e, 0x4a06, 0x4a07, 0x4a1a, 0x4a1d, 0x4a1b, 0x4a1c, 0x68f8, 0x0007, 0x7d3f, 0x69f8, 0x0007, 0x4000, 0x68f8, 0x001d, 0xfffc, 0x4818, 0x68f8, 0x0018, 0xfffe, 0x7711, 0x0001, 0x4a08, 0x7681, 0x0800, 0x10f8, 0x031b, 0x00f8, 0x0319, 0x80f8, 0x0319, 0x7710, 0x1000, 0x7211, 0x0319, 0x10f8, 0x031b, 0xf5a9, 0xeeff, 0x00f8, 0x031a, 0xfa20, 0x0228, 0x80f8, 0x031a, 0xf074, 0x00fc, 0xee01, 0x8a18, 0xf495, 0x8a1c, 0x8a1b, 0x8a1d, 0x8a1a, 0x8a07, 0x8a06, 0x8a0e, 0x8a19, 0x8a17, 0x8a17, 0x8a16, 0x8a15, 0x8a14, 0x8a13, 0x8a12, 0x8a11, 0x8a10, 0x8a0d, 0x8a0c, 0x8a0b, 0x8a0a, 0x8a09, 0x8a08, 0xf4eb, 0x4a11, 0x7711, 0x0055, 0x76f8, 0x031a, 0x0000, 0x76f8, 0x0319, 0x0000, 0x76f8, 0x031b, 0x0000, 0x76f8, 0x031c, 0x0000, 0x76f8, 0x031e, 0x0000, 0x76f8, 0x031d, 0x0001, 0x7681, 0x0003, 0x7711, 0x0057, 0x7681, 0x2800, 0x7711, 0x0055, 0x7681, 0x0004, 0x7711, 0x0057, 0x7681, 0x7141, 0x7711, 0x0055, 0x7681, 0x0000, 0x7711, 0x0057, 0x7681, 0x8000, 0x7711, 0x0055, 0x7681, 0x0001, 0x7711, 0x0057, 0x7681, 0x0022, 0x7711, 0x0055, 0x7681, 0x0002, 0x7711, 0x0057, 0x7681, 0x1000, 0x7711, 0x0054, 0x7681, 0x0080, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0000, 0x7711, 0x0039, 0x7681, 0x0000, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x7681, 0x0030, 0x7711, 0x0038, 0x7681, 0x000e, 0x7711, 0x0039, 0x7681, 0x0002, 0x7711, 0x0038, 0x7681, 0x0004, 0x7711, 0x0039, 0x7681, 0x00a0, 0x7711, 0x0038, 0x7681, 0x0005, 0x7711, 0x0039, 0x7681, 0x0000, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6981, 0x0001, 0x8a11, 0xfc00, 0x4a11, 0x7711, 0x0038, 0x7681, 0x0001, 0x7711, 0x0039, 0x6881, 0xfffe, 0x8a11, 0xfc00,
24};
25static const unsigned short _section_cinit[] = {
26 0x0001, 0x28e2, 0x0000, 0x0001, 0x28e3, 0x0000, 0x0001, 0x28e6, 0x0001, 0x0001, 0x28e7, 0x0000, 0x0001, 0x28e8, 0x0000, 0x0001, 0x2909, 0x0000, 0x0001, 0x290a, 0x0000, 0x0001, 0x290b, 0x0412, 0x0001, 0x290c, 0x0412, 0x0001, 0x2b67, 0x0001, 0x0000,
27};
28static const unsigned short _section_const[] = {
29 0x0028, 0x006e, 0x0075, 0x006c, 0x006c, 0x0029, 0x0000, 0x0025, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0000, 0x0000, 0x0000, 0x7f7f, 0xffff, 0xff7f, 0xffff, 0x3f80, 0x0000, 0x4120, 0x0000, 0x0000, 0x0000, 0x4f00, 0x0000, 0x4120, 0x0000, 0x3f80, 0x0000, 0x0000, 0x0000, 0x4f00, 0x0000, 0x4120, 0x0000, 0x3f80, 0x0000, 0x0000, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0028, 0x0028, 0x0028, 0x0028, 0x0028, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0020, 0x0088, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0044, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0041, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0001, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0010, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0042, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0010, 0x0010, 0x0010, 0x0010, 0x0020, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0044, 0x0053, 0x0050, 0x0020, 0x0069, 0x006e, 0x0069, 0x0074, 0x0065, 0x0064, 0x002e, 0x002e, 0x002e, 0x0000,
30}; 24};
31static const unsigned short _section_vectors[] = { 25static const unsigned short _section_vectors[] = {
32 0xf273, 0x02fa, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf273, 0x0085, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x01bc, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x022f, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 26 0xf273, 0x00df, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0xf273, 0x0080, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x018e, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495, 0xf273, 0x01e8, 0xf495, 0xf495, 0xf4eb, 0xf495, 0xf495, 0xf495,
33}; 27};
34 28
35 29
36static const struct dsp_section dsp_image[] = { 30static const struct dsp_section dsp_image[] = {
37 {_section_text, 0x0080, 0x180d}, 31 {_section_text, 0x0080, 0x0245},
38 {_section_cinit, 0x2dbb, 0x001f}, 32 {NULL /* .bss */, 0x02c5, 0x005a},
39 {NULL /* .bss */, 0x288d, 0x02db},
40 {_section_const, 0x2b68, 0x0153},
41 {NULL /* .sysmem */, 0x2cbb, 0x0100},
42 {NULL /* .stack */, 0x188d, 0x1000},
43 {_section_vectors, 0x7f80, 0x0080}, 33 {_section_vectors, 0x7f80, 0x0080},
44 {NULL /* .dma */, 0x8000, 0x4000}, 34 {NULL /* .dma */, 0x8000, 0x1000},
45 {NULL, 0, 0} 35 {NULL, 0, 0}
46}; 36};
47 37
48/* Symbol table, usable with the DSP_() macro (see dsp-target.h). */ 38/* Symbol table, usable with the DSP_() macro (see dsp-target.h). */
49#define _waitack 0x00ed 39#define _handle_int0 0x0080
50#define _acked 0x28de 40#define _status 0x02c5
51#define _startack 0x00e5 41#define _audiohw_start 0x02af
52#define _debugf 0x00f8 42#define _dma0_stopped 0x031d
53#define _handle_int0 0x0085 43#define _waiting 0x031e
54#define _status 0x288d 44#define _rebuffer 0x00fc
55#define _audiohw_start 0x02e4 45#define _main 0x00df
56#define _dma0_stopped 0x28e6 46#define _dma_init 0x0243
57#define _waiting 0x28e7 47#define _audiohw_init 0x0284
58#define _vsnprintf 0x0396 48#define _handle_dma0 0x018e
59#define _rebuffer 0x0130 49#define _handle_dmac 0x01e8
60#define _main 0x0113 50#define _sdem_addrh 0x0316
61#define _dma_init 0x028a 51#define _sdem_addrl 0x0317
62#define _audiohw_init 0x02b9 52#define _sdem_level 0x031a
63#define _c_int00 0x02fa 53#define _sdem_dsp_size 0x0318
64#define _handle_dma0 0x01bc 54#define _audiohw_stop 0x02ba
65#define _handle_dmac 0x022f
66#define _last_size 0x28e4
67#define _dsp_level 0x28e2
68#define _dma0_unlocked 0x28e5
69#define _data 0x8000
70#define _sdem_addrh 0x28df
71#define _sdem_addrl 0x28e0
72#define _sdem_level 0x28e3
73#define _sdem_dsp_size 0x28e1
74#define _audiohw_stop 0x02ef
75#define cinit 0x2dbb
76#define __args_main 0x0f88
77#define _exit 0x0344
78#define _atexit 0x0371
79#define __dtors_ptr 0x290a
80#define __cleanup_ptr 0x2909
81#define _abort 0x0393
82#define __lock 0x290b
83#define __unlock 0x290c
84#define __printfi 0x0419
85#define _memcpy 0x152d
86#define __register_lock 0x0413
87#define __register_unlock 0x0416
88#define __nop 0x0412
89#define _malloc 0x15cd
90#define _memccpy 0x150d
91#define _ecvt 0x0ff6
92#define _fcvt 0x12f8
93#define _atoi 0x0f9f
94#define _free 0x1728
95#define __ctypes_ 0x2bac
96#define _ltoa 0x14bf
97#define __sys_memory 0x2cbb
98#define _minit 0x159e
99#define _realloc 0x1660
100#define _calloc 0x163e
101#define _memmove 0x1863
102#define ___text__ 0x0080 55#define ___text__ 0x0080
103#define etext 0x188d 56#define etext 0x02c5
104#define ___etext__ 0x188d 57#define ___etext__ 0x02c5
105#define ___cinit__ 0x2dbb 58#define ___data__ 0x0080
106#define ___bss__ 0x288d 59#define edata 0x0080
107#define end 0x2b68 60#define ___edata__ 0x0080
108#define ___end__ 0x2b68 61#define ___bss__ 0x02c5
109#define ___data__ 0x0000 62#define end 0x031f
110#define edata 0x0000 63#define ___end__ 0x031f
111#define ___edata__ 0x0000
112 64
113#endif 65#endif
diff --git a/firmware/target/arm/tms320dm320/dsp/ipc.h b/firmware/target/arm/tms320dm320/dsp/ipc.h
index b307753c0f..030febd021 100644
--- a/firmware/target/arm/tms320dm320/dsp/ipc.h
+++ b/firmware/target/arm/tms320dm320/dsp/ipc.h
@@ -34,15 +34,15 @@
34#define PACKED 34#define PACKED
35#endif 35#endif
36 36
37#define PCM_SIZE 0x8000 /* bytes */ 37/* Define this if you want to use debugf on the DSP. This consumes quite a bit
38 * of space so it is disabled by default. */
39/* #define HAVE_DEBUG */
38 40
39struct sdram_buffer { 41struct sdram_buffer {
40 unsigned long addr; 42 unsigned long addr;
41 unsigned short bytes; 43 unsigned short bytes;
42} PACKED; 44} PACKED;
43 45
44#define SDRAM_BUFFERS 4
45
46struct ipc_message { 46struct ipc_message {
47 unsigned short msg; 47 unsigned short msg;
48 union { 48 union {
diff --git a/firmware/target/arm/tms320dm320/dsp/linker.cmd b/firmware/target/arm/tms320dm320/dsp/linker.cmd
index 844fe25903..c2ae5f0c6b 100644
--- a/firmware/target/arm/tms320dm320/dsp/linker.cmd
+++ b/firmware/target/arm/tms320dm320/dsp/linker.cmd
@@ -1,29 +1,39 @@
1-c 1-c
2-x 2-x
3-stack 0x1000 3-stack 0x1000
4-heap 0x100 4-heap 0x100
5-l rts500.lib 5
6/* The rtx500.lib should be included if you want proper initialization,
7 * currently the program is setup so that it is not necessary to save space.
8 * reset vector should jump to _c_int00 if initialization is needed.
9 *
10 * -l rts500.lib*/
6 11
7MEMORY 12MEMORY
8{ 13{
9PAGE 0: 14PAGE 0:
10 DARAM: origin = 80h, length = 7F80h 15 DARAM (RWIX): origin = 80h, length = 7F00h
11 SARAM: origin = 8000h, length = 4000h 16 VECS (RIX) : origin = 7F80h, length = 80h
17
18 /* SARAM can be read and written to, but it cannot execute and does not need
19 * to be initialized. */
20 SARAM (RW) : origin = 8000h, length = 4000h
12} 21}
13 22
14SECTIONS 23SECTIONS
15{ 24{
16 .text PAGE 0 25 .text > DARAM PAGE 0
17 .cinit PAGE 0 26 .cinit > DARAM PAGE 0
18 .switch PAGE 0 27 .switch > DARAM PAGE 0
28 .data > DARAM PAGE 0
19 29
20 .bss PAGE 0 30 .bss > DARAM PAGE 0
21 .const PAGE 0 31 .const > DARAM PAGE 0
22 .sysmem PAGE 0 32 .sysmem > DARAM PAGE 0
23 .stack PAGE 0 33 .stack > DARAM PAGE 0
24 34
25 .vectors : PAGE 0 load = 7F80h 35 .vectors > VECS PAGE 0
26 36
27 /* DMA buffers for ABU mode must start on a 2*size boundary. */ 37 /* DMA buffers for ABU mode must start on a 2*size boundary. */
28 .dma : PAGE 0 load = 0x8000 38 .dma > SARAM PAGE 0
29} 39}
diff --git a/firmware/target/arm/tms320dm320/dsp/main.c b/firmware/target/arm/tms320dm320/dsp/main.c
index 8c36e6a88b..a62bb50ba2 100644
--- a/firmware/target/arm/tms320dm320/dsp/main.c
+++ b/firmware/target/arm/tms320dm320/dsp/main.c
@@ -24,7 +24,6 @@
24#include "ipc.h" 24#include "ipc.h"
25#include "dma.h" 25#include "dma.h"
26#include "audio.h" 26#include "audio.h"
27#include <math.h>
28 27
29void main(void) { 28void main(void) {
30 TCR = 1 << 4; /* Stop the timer. */ 29 TCR = 1 << 4; /* Stop the timer. */
@@ -36,7 +35,9 @@ void main(void) {
36 35
37 dma_init(); 36 dma_init();
38 37
38#if defined(HAVE_DEBUG)
39 debugf("DSP inited..."); 39 debugf("DSP inited...");
40#endif
40 41
41 for (;;) { 42 for (;;) {
42 asm(" IDLE 1"); 43 asm(" IDLE 1");
@@ -45,13 +46,6 @@ void main(void) {
45} 46}
46 47
47/* Obsoleted/testing snippets: */ 48/* Obsoleted/testing snippets: */
48#ifdef REMAP_VECTORS
49 /* Remap vectors to 0x3F80 (set in linker.cmd). */
50 PMST = (PMST & 0x7f) | 0x3F80;
51
52 /* Make sure working interrupts aren't a fluke. */
53 memset((unsigned short *)0x7f80, 0, 0x80);
54#endif
55 49
56#ifdef DATA_32_SINE 50#ifdef DATA_32_SINE
57 for (i = 0; i < 32; i++) { 51 for (i = 0; i < 32; i++) {
diff --git a/firmware/target/arm/tms320dm320/dsp/tsc2100.c b/firmware/target/arm/tms320dm320/dsp/tsc2100.c
index 5127681269..3a02eb92b4 100644
--- a/firmware/target/arm/tms320dm320/dsp/tsc2100.c
+++ b/firmware/target/arm/tms320dm320/dsp/tsc2100.c
@@ -39,9 +39,11 @@ void audiohw_start(void)
39{ 39{
40 /* Trigger first XEVT0 */ 40 /* Trigger first XEVT0 */
41 SPCR20 |= 1; 41 SPCR20 |= 1;
42} 42}
43audiohw_stop(void) 43
44void audiohw_stop(void)
44{ 45{
45 /* Reset the transmitter */ 46 /* Reset the transmitter */
46 SPCR20&=0xFFFE; 47 SPCR20&=0xFFFE;
47} 48}
49
diff --git a/firmware/target/arm/tms320dm320/dsp/vectors.asm b/firmware/target/arm/tms320dm320/dsp/vectors.asm
index 1551d996fc..98d1409cb3 100644
--- a/firmware/target/arm/tms320dm320/dsp/vectors.asm
+++ b/firmware/target/arm/tms320dm320/dsp/vectors.asm
@@ -27,13 +27,17 @@
27 27
28 ; External Functions 28 ; External Functions
29 .global _handle_int0 29 .global _handle_int0
30 .global _c_int00 30 .global _main
31 .global _handle_dma0 31 .global _handle_dma0
32 .global _handle_dmac 32 .global _handle_dmac
33 33
34 .sect ".vectors" 34 .sect ".vectors"
35; Reset Interrupt 35; Reset Interrupt
36RS_V: BD _c_int00 36; The rtx500.lib should be included if you want proper initialization,
37; currently the program is setup so that it is not necessary to save space.
38; reset vector should jump to _c_int00 instead of main if initialization is
39; needed.
40RS_V: BD _main
37 NOP 41 NOP
38 NOP 42 NOP
39 43
diff --git a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
index 3f15bd6dd0..cdec2ab77c 100644
--- a/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
+++ b/firmware/target/arm/tms320dm320/mrobe-500/pcm-mr500.c
@@ -91,6 +91,7 @@ void pcm_play_dma_start(const void *addr, size_t size)
91void pcm_play_dma_stop(void) 91void pcm_play_dma_stop(void)
92{ 92{
93 DSP_(_dma0_stopped)=1; 93 DSP_(_dma0_stopped)=1;
94 dsp_wake();
94} 95}
95 96
96void pcm_play_lock(void) 97void pcm_play_lock(void)
@@ -108,6 +109,7 @@ void pcm_play_dma_pause(bool pause)
108 if (pause) 109 if (pause)
109 { 110 {
110 DSP_(_dma0_stopped)=2; 111 DSP_(_dma0_stopped)=2;
112 dsp_wake();
111 } 113 }
112 else 114 else
113 { 115 {