aboutsummaryrefslogtreecommitdiff
path: root/src/HRAb_396_504.c
blob: 9541fb46065a043e25a3af5c53fa1196a3ac1c5b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
/*
  FILE....: HRAb_396_504.c

  Static arrays for LDPC codec HRAb_396_504, generated by ldpc_gen_c_h_file.m.
*/

#include "HRAb_396_504.h"

#include <stdint.h>

const uint16_t HRAb_396_504_H_rows[] = {
    10,  53,  56,  11,  21,  4,   12,  33,  41,  2,   19,  10,  20,  14,  61,
    31,  7,   24,  37,  5,   34,  13,  27,  59,  8,   26,  21,  5,   3,   26,
    1,   28,  4,   18,  16,  6,   15,  7,   24,  30,  17,  25,  10,  35,  61,
    6,   9,   64,  14,  2,   13,  28,  84,  1,   15,  20,  8,   64,  12,  27,
    11,  18,  22,  33,  5,   29,  19,  4,   3,   31,  23,  21,  35,  9,   34,
    6,   16,  28,  23,  14,  26,  10,  20,  8,   7,   17,  12,  24,  15,  18,
    33,  36,  21,  31,  29,  3,   25,  32,  5,   2,   13,  1,   19,  30,  4,
    27,  22,  11,  38,  129, 63,  46,  62,  19,  13,  44,  76,  117, 25,  75,
    63,  29,  65,  54,  23,  47,  144, 15,  39,  41,  42,  82,  36,  70,  67,
    58,  53,  89,  22,  72,  17,  45,  50,  9,   34,  41,  63,  40,  47,  55,
    48,  44,  64,  72,  19,  67,  57,  66,  54,  42,  143, 36,  43,  46,  52,
    108, 71,  49,  16,  39,  32,  38,  70,  62,  69,  26,  37,  55,  56,  50,
    58,  65,  56,  61,  67,  52,  53,  50,  48,  39,  59,  37,  47,  51,  63,
    70,  46,  60,  40,  71,  57,  72,  54,  68,  44,  42,  49,  45,  38,  64,
    43,  62,  66,  69,  55,  41,  64,  138, 115, 107, 81,  30,  39,  55,  91,
    155, 48,  87,  90,  49,  84,  98,  68,  64,  180, 32,  88,  108, 71,  111,
    86,  112, 73,  126, 90,  114, 57,  134, 52,  51,  73,  40,  59,  87,  86,
    90,  101, 68,  51,  102, 89,  85,  37,  124, 99,  75,  76,  95,  205, 48,
    77,  97,  73,  114, 98,  94,  45,  53,  58,  92,  80,  103, 100, 65,  93,
    105, 79,  91,  80,  79,  102, 75,  91,  96,  78,  90,  82,  97,  83,  108,
    89,  119, 85,  95,  105, 99,  103, 100, 93,  92,  86,  88,  76,  81,  104,
    94,  101, 87,  73,  106, 84,  74,  98,  77,  141, 149, 123, 214, 87,  64,
    45,  60,  114, 173, 103, 115, 102, 95,  88,  101, 93,  71,  188, 66,  175,
    136, 77,  170, 127, 126, 140, 135, 97,  117, 119, 149, 80,  96,  85,  110,
    78,  122, 105, 111, 121, 160, 81,  125, 131, 107, 60,  170, 151, 120, 109,
    133, 220, 96,  142, 98,  112, 123, 129, 157, 74,  85,  82,  113, 121, 144,
    139, 83,  139, 130, 117, 141, 133, 120, 136, 141, 132, 114, 143, 107, 123,
    131, 138, 122, 128, 147, 113, 111, 125, 126, 135, 134, 144, 140, 112, 109,
    142, 124, 137, 139, 130, 127, 115, 118, 121, 129, 110, 117, 215, 185, 179,
    261, 105, 94,  69,  158, 130, 210, 113, 132, 183, 148, 107, 133, 112, 74,
    280, 67,  176, 172, 78,  193, 141, 153, 146, 160, 156, 147, 132, 150, 100,
    168, 138, 161, 99,  176, 138, 192, 136, 186, 85,  167, 168, 118, 104, 200,
    215, 147, 161, 177, 244, 116, 165, 119, 210, 156, 132, 191, 106, 135, 115,
    180, 155, 163, 146, 178, 153, 166, 149, 175, 153, 155, 145, 169, 150, 179,
    165, 116, 158, 167, 176, 168, 146, 158, 178, 149, 154, 138, 166, 145, 152,
    161, 175, 148, 172, 156, 162, 177, 171, 157, 159, 164, 173, 203, 151, 180,
    257, 191, 231, 262, 139, 130, 124, 178, 165, 234, 170, 185, 237, 164, 114,
    143, 171, 80,  291, 122, 182, 204, 104, 242, 147, 154, 166, 183, 265, 187,
    159, 212, 152, 175, 189, 164, 158, 187, 143, 223, 142, 217, 140, 208, 209,
    154, 134, 252, 230, 196, 216, 182, 256, 150, 198, 137, 251, 166, 162, 197,
    113, 174, 128, 196, 212, 193, 189, 185, 190, 201, 181, 203, 215, 184, 205,
    189, 207, 196, 214, 174, 190, 199, 211, 201, 192, 181, 186, 210, 187, 163,
    213, 200, 216, 198, 185, 212, 188, 191, 204, 206, 183, 193, 209, 197, 195,
    224, 202, 208, 273, 218, 274, 294, 213, 163, 187, 248, 194, 235, 260, 200,
    248, 224, 137, 254, 222, 85,  292, 145, 190, 212, 131, 245, 159, 199, 181,
    258, 277, 206, 178, 219, 202, 184, 241, 205, 239, 260, 148, 271, 159, 263,
    152, 242, 250, 183, 151, 259, 246, 214, 225, 237, 272, 206, 213, 145, 255,
    199, 196, 228, 127, 188, 172, 222, 232, 226, 207, 238, 227, 224, 248, 233,
    247, 223, 245, 239, 250, 232, 252, 194, 233, 249, 219, 225, 242, 238, 240,
    226, 234, 170, 238, 210, 237, 230, 228, 243, 236, 231, 248, 221, 246, 218,
    229, 227, 217, 235, 222, 251, 277, 262, 299, 338, 246, 208, 220, 289, 291,
    276, 267, 233, 333, 307, 264, 288, 324, 92,  325, 169, 209, 233, 192, 275,
    160, 257, 247, 317, 359, 308, 194, 228, 244, 236, 272, 248, 273, 295, 184,
    315, 182, 339, 195, 268, 282, 243, 169, 300, 283, 265, 240, 258, 289, 245,
    218, 173, 297, 240, 236, 257, 171, 219, 230, 288, 254, 264, 231, 281, 287,
    277, 279, 303, 259, 286, 277, 279, 269, 261, 255, 220, 265, 283, 278, 276,
    281, 285, 268, 266, 282, 182, 244, 241, 254, 274, 256, 258, 264, 253, 287,
    270, 260, 267, 273, 262, 257, 288, 284, 275, 278, 276, 323, 347, 249, 266,
    232, 331, 366, 332, 304, 280, 347, 355, 268, 297, 327, 311, 345, 186, 221,
    279, 226, 283, 223, 310, 296, 348, 379, 316, 252, 229, 277, 273, 286, 319,
    305, 329, 235, 343, 307, 376, 251, 306, 323, 276, 275, 358, 318, 328, 269,
    319, 338, 274, 286, 280, 333, 262, 278, 314, 194, 256, 311, 302, 312, 327,
    261, 293, 322, 308, 284, 325, 292, 322, 302, 297, 299, 306, 290, 263, 312,
    311, 315, 317, 318, 304, 305, 289, 309, 280, 316, 271, 314, 313, 296, 303,
    320, 307, 298, 300, 319, 294, 308, 321, 323, 301, 291, 324, 328, 337, 362,
    385, 320, 310, 346, 344, 380, 349, 322, 369, 350, 367, 302, 358, 356, 316,
    368, 211, 301, 282, 302, 309, 284, 341, 306, 365, 382, 325, 253, 285, 313,
    281, 287, 351, 330, 364, 313, 368, 330, 377, 270, 334, 372, 331, 296, 365,
    346, 345, 309, 324, 341, 317, 298, 320, 342, 345, 310, 336, 249, 304, 333,
    352, 367, 349, 354, 294, 363, 335, 301, 340, 339, 327, 332, 350, 342, 344,
    329, 310, 338, 331, 354, 328, 351, 364, 325, 348, 353, 293, 340, 295, 343,
    355, 360, 326, 337, 341, 346, 352, 359, 335, 356, 357, 358, 334, 349, 330,
    347, 372, 381, 0,   336, 326, 383, 367, 392, 374, 386, 376, 353, 387, 378,
    0,   392, 342, 389, 255, 394, 314, 371, 361, 312, 377, 373, 384, 390, 339,
    315, 290, 352, 324, 321, 360, 396, 371, 344, 388, 347, 378, 356, 392, 384,
    389, 348, 390, 353, 387, 374, 337, 381, 350, 359, 362, 385, 375, 355, 361,
    382, 351, 360, 383, 391, 379, 369, 375, 370, 395, 357, 386, 379, 333, 387,
    390, 389, 377, 391, 365, 388, 386, 385, 396, 370, 382, 372, 376, 368, 336,
    371, 345, 362, 361, 395, 366, 393, 378, 392, 384, 394, 363, 380, 369, 383,
    381, 373, 375, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   389, 0,
    393, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   391,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   366, 0,
    366, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0};

const uint16_t HRAb_396_504_H_cols[] = {
    31,  10,  29,  6,   20,  36,  17,  25,  36,  1,   4,   7,   7,   14,  20,
    35,  33,  34,  6,   13,  5,   31,  17,  18,  11,  26,  23,  32,  14,  6,
    16,  20,  8,   21,  44,  25,  19,  1,   7,   36,  9,   23,  55,  8,   7,
    4,   18,  11,  14,  35,  34,  33,  2,   16,  8,   3,   31,  28,  24,  8,
    15,  5,   3,   1,   15,  20,  20,  17,  7,   26,  18,  32,  27,  18,  12,
    9,   23,  23,  71,  18,  5,   24,  68,  15,  18,  25,  5,   15,  30,  13,
    9,   18,  17,  6,   14,  34,  29,  16,  37,  33,  16,  13,  11,  23,  5,
    61,  4,   22,  51,  36,  24,  17,  11,  9,   3,   54,  10,  46,  31,  50,
    41,  20,  3,   7,   44,  26,  25,  63,  2,   6,   23,  12,  16,  32,  28,
    22,  15,  2,   5,   27,  1,   41,  16,  19,  20,  27,  25,  14,  2,   32,
    47,  33,  26,  26,  10,  29,  60,  8,   25,  25,  36,  59,  6,   14,  9,
    27,  44,  34,  20,  11,  17,  22,  10,  62,  21,  21,  52,  8,   3,   19,
    27,  21,  13,  34,  2,   20,  7,   19,  35,  21,  2,   23,  24,  9,   43,
    50,  60,  55,  26,  12,  70,  33,  72,  22,  36,  30,  67,  6,   21,  10,
    20,  22,  5,   4,   1,   51,  42,  2,   32,  7,   21,  17,  25,  14,  51,
    23,  69,  32,  32,  49,  3,   7,   12,  10,  10,  34,  13,  68,  37,  51,
    35,  24,  46,  33,  24,  5,   27,  8,   5,   45,  43,  31,  31,  16,  20,
    53,  1,   28,  48,  11,  4,   2,   42,  15,  29,  6,   11,  15,  51,  43,
    40,  35,  1,   3,   24,  2,   1,   1,   22,  12,  34,  22,  24,  25,  32,
    35,  35,  16,  8,   32,  9,   19,  68,  4,   38,  27,  16,  55,  3,   48,
    21,  15,  72,  11,  37,  27,  14,  30,  24,  6,   18,  25,  33,  22,  31,
    18,  28,  49,  36,  5,   35,  11,  3,   17,  19,  6,   17,  1,   38,  37,
    8,   10,  13,  44,  70,  5,   2,   4,   30,  72,  26,  18,  40,  8,   19,
    7,   1,   28,  10,  13,  36,  33,  13,  67,  14,  17,  71,  16,  29,  36,
    24,  3,   69,  38,  28,  9,   8,   19,  12,  69,  23,  2,   27,  10,  58,
    12,  26,  15,  29,  9,   3,   29,  7,   28,  4,   11,  14,  40,  11,  29,
    27,  9,   13,  21,  70,  37,  54,  50,  69,  33,  28,  46,  38,  57,  47,
    12,  61,  59,  22,  49,  37,  61,  41,  62,  11,  56,  27,  63,  71,  39,
    42,  30,  60,  52,  66,  40,  70,  63,  64,  37,  73,  54,  47,  64,  21,
    40,  22,  52,  103, 44,  34,  56,  41,  43,  60,  72,  43,  57,  29,  51,
    42,  71,  49,  63,  37,  47,  45,  66,  13,  6,   68,  50,  27,  42,  67,
    65,  23,  46,  35,  61,  50,  51,  55,  37,  74,  33,  43,  63,  83,  53,
    35,  39,  12,  21,  45,  29,  72,  64,  69,  60,  52,  54,  56,  56,  49,
    67,  41,  44,  66,  47,  39,  104, 15,  58,  96,  107, 40,  26,  61,  15,
    12,  80,  30,  104, 56,  74,  65,  38,  58,  48,  89,  28,  61,  85,  59,
    9,   45,  31,  52,  47,  62,  41,  56,  35,  67,  43,  25,  55,  39,  66,
    56,  67,  30,  39,  32,  54,  49,  43,  69,  46,  65,  58,  102, 37,  31,
    28,  51,  99,  66,  36,  55,  58,  82,  45,  47,  24,  61,  63,  56,  80,
    34,  38,  100, 31,  78,  64,  71,  41,  28,  39,  12,  42,  30,  62,  67,
    69,  60,  40,  66,  31,  105, 59,  104, 94,  58,  48,  84,  107, 106, 99,
    53,  54,  77,  44,  45,  57,  83,  32,  55,  50,  49,  93,  105, 55,  62,
    53,  100, 64,  40,  70,  84,  66,  104, 60,  103, 63,  67,  65,  22,  89,
    39,  59,  52,  86,  76,  58,  92,  44,  96,  53,  54,  49,  73,  13,  61,
    77,  57,  48,  98,  65,  57,  62,  26,  52,  73,  38,  67,  4,   80,  66,
    50,  88,  102, 44,  77,  100, 92,  53,  34,  54,  47,  10,  29,  59,  71,
    19,  68,  45,  49,  71,  86,  55,  69,  64,  53,  79,  19,  73,  90,  68,
    92,  47,  57,  99,  77,  100, 71,  23,  96,  62,  87,  44,  41,  70,  51,
    26,  63,  65,  39,  60,  40,  30,  54,  85,  52,  56,  104, 69,  45,  34,
    30,  96,  66,  50,  79,  41,  46,  75,  57,  106, 102, 60,  52,  53,  42,
    91,  53,  57,  93,  39,  50,  49,  4,   47,  66,  54,  62,  64,  49,  83,
    59,  43,  104, 48,  55,  63,  60,  56,  102, 86,  48,  41,  14,  40,  67,
    85,  38,  45,  107, 51,  68,  42,  42,  42,  66,  103, 53,  61,  64,  45,
    57,  72,  50,  81,  19,  48,  65,  17,  97,  101, 95,  84,  102, 100, 96,
    68,  65,  76,  85,  84,  74,  43,  108, 87,  51,  80,  55,  77,  86,  90,
    47,  83,  72,  107, 79,  88,  97,  68,  106, 78,  95,  104, 94,  98,  91,
    75,  0,   92,  69,  101, 62,  91,  38,  98,  0,   97,  61,  89,  85,  54,
    99,  80,  86,  78,  62,  95,  70,  75,  93,  73,  83,  90,  76,  104, 39,
    18,  74,  105, 48,  96,  106, 88,  59,  94,  57,  106, 76,  97,  108, 79,
    0,   65,  98,  81,  0,   105, 43,  95,  38,  96,  85,  40,  77,  94,  93,
    100, 88,  78,  82,  59,  90,  92,  101, 75,  91,  99,  70,  0,   46,  84,
    0,   0,   88,  57,  64,  30,  63,  0,   71,  0,   86,  0,   105, 84,  81,
    98,  0,   90,  102, 0,   106, 70,  82,  59,  73,  92,  91,  75,  99,  39,
    69,  94,  72,  97,  53,  93,  75,  85,  50,  96,  71,  77,  107, 93,  73,
    89,  74,  98,  0,   81,  41,  42,  94,  0,   90,  104, 79,  70,  0,   84,
    76,  48,  101, 97,  105, 0,   72,  83,  0,   68,  0,   108, 86,  52,  46,
    74,  68,  87,  38,  97,  76,  81,  98,  85,  102, 61,  0,   64,  0,   0,
    82,  92,  0,   0,   0,   0,   75,  100, 0,   108, 103, 88,  0,   65,  91,
    79,  73,  0,   0,   102, 83,  80,  0,   107, 74,  106, 0,   88,  0,   95,
    0,   94,  98,  78,  72,  0,   106, 97,  93,  91,  0,   87,  0,   85,  0,
    91,  75,  101, 0,   36,  82,  0,   108, 79,  0,   93,  79,  95,  60,  96,
    0,   101, 78,  58,  0,   97,  81,  0,   0,   87,  0,   0,   0,   0,   37,
    94,  108, 46,  33,  83,  76,  56,  85,  89,  82,  107, 0,   74,  99,  106,
    88,  0,   107, 0,   0,   102, 0,   95,  76,  0,   0,   0,   106, 64,  0,
    86,  0,   78,  98,  103, 89,  59,  82,  81,  94,  93,  83,  91,  84,  0,
    101, 97,  0,   74,  105, 52,  72,  0,   74,  84,  0,   108, 82,  0,   63,
    0,   0,   90,  97,  81,  73,  0,   98,  77,  0,   78,  58,  99,  13,  88,
    107, 76,  85,  100, 89,  0,   94,  103, 0,   105, 101, 95,  94,  93,  0,
    0,   80,  43,  65,  89,  104, 0,   91,  87,  0,   0,   108, 88,  78,  98,
    73,  0,   106, 86,  105, 100, 83,  82,  75,  0,   46,  76,  79,  44,  0,
    0,   0,   0,   0,   0,   0,   105, 99,  0,   0,   0,   0,   82,  0,   0,
    101, 0,   89,  0,   0,   0,   67,  0,   93,  0,   0,   0,   0,   81,  0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   84,  0,   82,  0,   108, 0,
    0,   0,   100, 0,   0,   81,  0,   0,   0,   0,   79,  0,   107, 0,   0,
    0,   0,   0,   0,   0,   87,  45,  0,   0,   77,  0,   0,   0,   92,  0,
    103, 0,   0,   0,   0,   0,   0,   73,  0,   0,   0,   0,   46,  0,   102,
    0,   0,   80,  0,   0,   0,   0,   0,   0,   0,   107, 0,   0,   0,   0,
    0,   0,   89,  0,   80,  0,   0,   0,   0,   95,  87,  58,  103, 0,   108,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   101, 0,   77,
    0,   0,   0,   0,   0,   83,  100, 0,   76,  0,   79,  0,   92,  0,   86,
    0,   88,  0,   0,   0,   0,   0,   0,   0,   0,   86,  103, 0,   0,   0,
    0,   0,   0,   91,  0,   0,   0,   90,  0,   0,   0,   0,   95,  0,   0,
    87,  0,   0,   0,   90,  101, 0,   95,  0,   89,  0,   0,   0,   0,   0,
    0,   80,  0,   78,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   92,  0,   96,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   81,  0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   71,  0,   0,   0,   0,
    0,   0,   0,   0,   105, 0,   0,   0,   0,   104, 0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   103, 0,   0,   84,  70,  0,   0,   90,  0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   75,  0,   0,   0,   0,   0,   0,   0,   80,  0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   108, 87,  0,   0,
    0,   0,   0,   0,   0,   74,  0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   92,  0,   41,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   96,  0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   77,  0,   0,   99,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   103, 0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   48,  0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   62,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   78,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   90,  0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   99,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    75,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   58,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   87,  0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   102, 0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
    0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0};
const float HRAb_396_504_input[] = {
    -12.781911708775533, 7.551155800725204,   -11.899607043049681,
    17.477156604046595,  -13.803361319809902, 6.2002990057867589,
    -15.169569280110601, -17.341522766496183, 9.7107774319996505,
    16.641703452581407,  8.4284168541090221,  -11.930717934789106,
    -4.4208828355542424, -1.139969227664315,  17.673081687318597,
    16.121750517979301,  3.6219051813553182,  -20.05687038213798,
    -6.5018436610168866, 10.791743071707945,  -8.0445304197245111,
    -8.3324911789627567, 11.41120852689847,   -11.282456703274443,
    -9.2866085578109647, 9.9469665371993603,  15.140667602380192,
    3.4450775767841488,  0.64231692247845451, 8.0801244936842966,
    5.4636814535382374,  -5.0107553707349375, 7.864699294226007,
    -10.386130310145816, -12.37983397229897,  -14.572379771221275,
    -16.054735647120321, -11.263149256634462, 14.219711467898444,
    -9.2719771070008434, 8.3099403015379476,  -10.148895658714522,
    14.726350071572289,  -6.8215748913296936, -7.3601951789355757,
    -15.40290283113702,  -11.244311800452268, -7.9961343172040795,
    5.1368563973467962,  9.5164063035654909,  8.4155629108106549,
    16.014525967886211,  1.699070391185594,   9.954286029615325,
    7.6585573567939873,  7.9223054149290961,  7.9198517179714161,
    10.631081381345467,  3.2596035260666651,  -4.6015483371596497,
    -9.3597887942885531, 7.6740974245989673,  -16.604278204111164,
    -9.8303898312522513, 1.1205811253439053,  8.119179250191868,
    9.5880695910130243,  8.2874878418366773,  6.0797980497495772,
    -12.937113562007257, -3.1974528849557156, 13.246273287806673,
    11.66494172835136,   -12.103215889657571, 16.688894677207085,
    2.257955028557403,   -8.5424956390175151, 12.497318796297906,
    -9.0900910972806521, 8.2209514183928061,  5.7402258284777101,
    -20.747034176270887, 3.5631050854868058,  10.395770683064073,
    -9.868223944850401,  -8.6550086233418142, 3.8407639306907768,
    11.327546861735177,  13.015569340310336,  25.712163835177048,
    13.268816328384831,  4.6584774592149962,  -13.317349857427834,
    9.5406654991490569,  17.049953586489877,  -4.0111152401055641,
    -11.693122827989608, 7.5370223906338998,  11.277949854414416,
    -11.498659185019621, 9.549753443463084,   -12.055250773523783,
    -10.739286977821905, 14.136269830595458,  -7.782253905067039,
    4.9092522955317381,  -10.465638951656203, -8.0435611797655167,
    -6.8433147729593813, -9.0439724403972992, 4.3359408282633236,
    11.715689661715617,  19.611494165878462,  7.9190285414926178,
    -3.4982694249277611, -12.338256249127136, 9.8421320440049662,
    4.1138225682471781,  6.4942182289542236,  5.2066961739124622,
    -9.7070041876701811, -9.1496153713901478, -11.724529081464583,
    -9.3603341476943687, -5.2966983729936237, -13.015748591796211,
    -3.8567718830575424, 10.135559234020649,  8.7124846719285305,
    15.56420640265349,   11.252060195029108,  -5.0089167203318068,
    4.8507161178807445,  18.024720595741002,  17.065315044907795,
    -7.1935844977610666, 4.4815982827009275,  -11.880975891281834,
    -12.172241984932276, 1.5152035384857121,  17.946629562223141,
    5.5052899404780824,  -13.120278899383999, 10.648236401527056,
    -14.506377227430642, -10.143170277861179, 14.044470462529238,
    -9.2254356225576046, -8.8348967562869412, -4.9590358444858067,
    9.0535343466316753,  10.897394405658892,  14.0281876034117,
    11.255519350361872,  -13.859106646040908, 6.4504642887424621,
    11.777861578819222,  -11.639709904108361, -14.642162922529135,
    -14.4258126604062,   13.682206617896547,  11.95057687459364,
    -8.3091459570180035, 10.93961990916042,   -11.907964651381601,
    12.516150502079761,  -13.04991156095979,  14.145576472835312,
    10.632785447350683,  12.081094158208353,  -6.8485025555270633,
    -7.6927274273100101, 9.6552183508541098,  -8.5591832251882316,
    15.638135027982772,  11.926988474833571,  -14.987130306515169,
    14.812479105542307,  -11.914804743109391, 15.824256001061817,
    -8.5851098252378435, -13.901610955497368, 14.188963140600226,
    6.811888787586982,   1.6003053019945943,  19.325203560888092,
    -13.704678587213907, 0.31402694199929804, 15.989943699374408,
    6.0088299172857802,  -16.886144255198669, 10.998325725589428,
    -8.2882779267894371, 2.6453088627011274,  10.412577554382436,
    -14.426316461418969, 8.1138928008495217,  -1.3343532339748365,
    -20.340051195431247, -8.147129300539568,  -2.9761356060569728,
    -10.375141176280817, -3.492207168269704,  7.9187407777624479,
    13.120922417727103,  -13.038589243192815, -5.2220329986414589,
    -15.490400289338059, 17.189589889777995,  -7.0721481714310892,
    12.581795403076717,  13.235922100360186,  -14.068623066472972,
    10.590824537759135,  -15.881395141726383, -10.457045553712261,
    -9.8661324776225801, 4.734922703000958,   15.360039696456523,
    -3.6427404709897195, 12.283954090395133,  -10.580773927999571,
    0.82767864919701561, -19.322191171106951, -2.4440165020607636,
    7.3561450067817269,  8.734912251555226,   -10.1437777971503,
    11.586163919375755,  -15.408234206400728, -13.870410556862536,
    -16.459582947709787, -6.3237526923701468, 11.608212905773328,
    5.6613158220955073,  -11.774245858420727, 3.9445738850991399,
    11.580625563882155,  4.8206111058017749,  9.1501633745566071,
    -7.8619603245069358, -10.01135725687336,  13.093956991526415,
    -16.457925498763061, 8.7995448079979344,  -6.8693123471950814,
    2.7230849761708642,  14.798365672787927,  5.3137203364492533,
    12.867351465034174,  15.542257577290705,  10.701888362195504,
    -12.387250136917784, -7.2295230408544304, 9.6964847959436913,
    -9.0249610457078298, -6.1083927724817624, 10.739040854096423,
    10.841475540702188,  -11.378611500586242, 15.703248605756047,
    3.4356087856986508,  9.107640628528733,   -10.389742419200251,
    -13.652754262528372, -8.7325864940958979, -4.1006685083845982,
    12.419068901103934,  18.740969634501024,  -7.2686574148980894,
    15.57081866775636,   7.8740814697714061,  -5.3846084718512941,
    10.477115100800031,  -18.872361222343329, 6.1039069136118798,
    17.308178559392783,  -7.4815794858402631, -8.6125141656077062,
    8.9583151933398391,  15.414391681552324,  11.050241874455013,
    -12.807870031579375, 9.0363612736996224,  15.816822937315944,
    7.8444181915777751,  9.1766300505397727,  14.827248874904317,
    10.059358980544847,  8.1004443450218631,  -9.9138353480289823,
    -12.69584064620971,  -1.2480517929964754, 4.9462685565954452,
    -11.001361577099411, -14.645415102047146, -8.290528664203066,
    -6.5125802605593295, -9.2390284023464098, -9.6219279810207716,
    -2.4663308852408137, 7.9284843220778702,  -10.739866570047806,
    6.0027860732461509,  6.1871445421636109,  -7.2396227218981295,
    -16.909239064069116, 8.0605318273056952,  -13.18199180405694,
    11.423481528527208,  6.103394660237238,   11.02891865005909,
    -9.0418767418601025, -12.498971584987439, 20.946414970644234,
    24.362523031251186,  4.928071385179801,   -9.8370658808205729,
    14.539073682029368,  1.2645116781629737,  14.426946417515435,
    10.026504861776269,  10.448998607938103,  10.006313240241793,
    11.891150094820924,  8.8375576186697344,  8.5771389584190558,
    -15.536407780091233, 13.349864120336063,  -11.927556110752052,
    16.068268030243942,  18.193338642202377,  -11.869068102320544,
    13.808406661021646,  11.216260613445977,  -15.515968362285809,
    -14.909791180531339, -10.071410710917538, -5.5399590746720264,
    -14.934775635718978, 14.30539374658337,   7.3819695117708113,
    7.7868368821638674,  15.432743081832081,  -2.5950994414982973,
    -12.476581448977271, -1.6564415840602271, -10.295779594978484,
    4.7085935460142574,  12.24789018308865,   16.925819961116584,
    -18.384663719107415, -14.057276635303813, -5.8146990314358709,
    6.5631719088139118,  12.127149794502795,  -15.739169438478982,
    7.8271230641312846,  -5.9606533200021854, 9.8721062001112347,
    10.486834679901543,  6.3494439660436246,  9.9429692254989686,
    19.542594690444115,  4.5180797153308676,  -19.1566652225201,
    15.006372860965323,  -15.300035248621157, 9.7589319143789801,
    -4.7363679865964263, 5.3999824517855961,  8.0578934432355496,
    -19.385015013376869, -14.161802280526608, -12.881654979775632,
    -12.049094820078055, -5.3829315859449007, -7.3537414475927241,
    6.844714008315254,   -10.931623197527411, -10.939763582880817,
    -13.62500540625687,  20.49307277175809,   10.365734953239752,
    4.0663542658207543,  15.929076113588478,  -10.288951069929114,
    7.8742158721474977,  -1.422979120612724,  -14.104879669064141,
    -4.55280623980281,   -8.1653075636365458, 14.147963542838651,
    -13.933332225643916, 14.226165096278136,  -13.375191283046002,
    9.2088912804672614,  10.933675274282887,  -9.9392697991816448,
    -16.955582876153894, -11.85793097786863,  5.8569767257292948,
    6.6660744272807806,  -4.6888969930553994, 20.646624453011015,
    -1.2485466035357267, 6.7572930222337293,  -11.830468070632643,
    12.387424895419418,  -18.508514302306494, -15.324824129201243,
    5.0862404533417127,  -5.2707864200417625, -14.224777968048254,
    7.6291208613793344,  5.0046921384732324,  7.9969106436802599,
    -14.577995568165489, 8.1080228274897834,  12.603861058845251,
    11.220434316666585,  -5.7247050938128154, 11.912056122344682,
    0.10886944478234604, 9.3619646262630898,  -7.7302663627879742,
    14.530248266518536,  -15.658478259515816, -1.2907403171529221,
    -6.3207955318188116, 15.484693780278064,  12.036254202990973,
    4.6560888684896602,  7.678255286975908,   9.4289524624102352,
    11.319695981517606,  -5.4092744871032599, 6.6896098743454493,
    2.1792109184280051,  -11.081376849744698, -10.411817839842012,
    11.057139193661996,  10.674844657971892,  -7.611917928843007,
    -7.7114315734656405, -10.25566388330579,  -9.5816821583841509,
    -3.8229805246413409, -9.4360724513005252, 8.5081398584333474,
    12.93470424207193,   -12.400231194882618, -9.4258414862069788,
    21.836201624323113,  9.6722027120607468,  -11.684243881860825,
    11.18326004371732,   9.8228033099036569,  -1.6298761838573241,
    -14.006557406509664, 3.2619201008452663,  3.9694393534038981,
    -8.8928237386570181, 6.2844903665726015,  -4.7494171442219395,
    5.9437023484394249,  13.979025508842865,  -14.044878091079713,
    -4.9661838171055548, 7.6707889728317591,  -4.2457033821315688,
    -1.3421305197348499, 4.9933591178833261,  1.5425117319878872,
    -17.930315353239411, 12.197719685382262,  -5.947358941151732,
    -12.904626563212007, 6.1763577253014788,  16.076852398625185,
    8.2709163525181015,  -15.422610935202506, 10.890948687642558,
    -9.9461592598413802, 6.34551493463914,    -15.578427358705113,
    15.918090853090177,  9.9516599357932982,  -3.9346680898413688,
    5.3410774271588748,  11.920077938590593,  -2.4538357241090294,
    -11.163446342656663, -10.488287129167166, -12.749714598521885,
    5.4035140611182522,  -7.3998902697733975, 8.1911994226222173,
    -6.178143732667059,  7.1909081188653348,  -16.467787621055525,
    7.5865191569782464,  15.269036731801625,  -8.469922589870114};
const char HRAb_396_504_detected_data[] = {
    1, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1,
    1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1,
    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 1, 1, 0,
    0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1,
    1, 0, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0,
    1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 0, 0, 0, 1, 0,
    1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0,
    0, 0, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0,
    1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1,
    1, 0, 0, 1, 0, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0,
    1, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 1,
    1, 1, 1, 0, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0,
    0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 0, 1, 0, 0, 0,
    1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1,
    1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0,
    0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0,
    0, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1,
    0, 1, 1, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0,
    1, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1,
    0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0,
    0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1};