Coverage Report

Created: 2025-10-10 08:04

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/xpdf-4.05/xpdf/PDF417Barcode.cc
Line
Count
Source
1
//========================================================================
2
//
3
// PDF417Barcode.cc
4
//
5
// Copyright 2018 Glyph & Cog, LLC
6
//
7
//========================================================================
8
9
#include <aconf.h>
10
11
#include <math.h>
12
#include "gtypes.h"
13
#include "GString.h"
14
#include "GList.h"
15
#include "Error.h"
16
#include "PDF417Barcode.h"
17
18
//------------------------------------------------------------------------
19
20
0
#define maxDataCodewords 928
21
#define maxErrorCorrectionLevel 8
22
#define maxErrorCorrectionCodewords (1 << (maxErrorCorrectionLevel + 1))
23
24
// mode latches
25
0
#define textModeLatch         900
26
0
#define byteModeLatchMult6    924
27
0
#define byteModeLatchNonMult6 901
28
#define byteModeShift         913
29
0
#define numericModeLatch      902
30
31
// text submode latches and shifts
32
0
#define textAlphaLowerLatch 27
33
0
#define textAlphaMixedLatch 28
34
0
#define textAlphaPuncShift  29
35
0
#define textLowerAlphaShift 27
36
0
#define textLowerMixedLatch 28
37
0
#define textLowerPuncShift  29
38
0
#define textMixedPuncLatch  25
39
0
#define textMixedLowerLatch 27
40
0
#define textMixedAlphaLatch 28
41
0
#define textMixedPuncShift  29
42
0
#define textPuncAlphaLatch  29
43
44
0
#define textSubmodeAlpha      0
45
0
#define textSubmodeLower      1
46
0
#define textSubmodeMixed      2
47
0
#define textSubmodePunc       3
48
0
#define textSubmodeAlphaShift 4
49
0
#define textSubmodePuncShift  5
50
51
// textCompaction[char][submode] = base-30 value
52
//                                 or 30 if char isn't available
53
static char textCompaction[128][4] = {
54
  { 30, 30, 30, 30 },  //   0
55
  { 30, 30, 30, 30 },  //   1
56
  { 30, 30, 30, 30 },  //   2
57
  { 30, 30, 30, 30 },  //   3
58
  { 30, 30, 30, 30 },  //   4
59
  { 30, 30, 30, 30 },  //   5
60
  { 30, 30, 30, 30 },  //   6
61
  { 30, 30, 30, 30 },  //   7
62
  { 30, 30, 30, 30 },  //   8
63
  { 30, 30, 12, 12 },  //   9
64
  { 30, 30, 30, 15 },  //  10
65
  { 30, 30, 30, 30 },  //  11
66
  { 30, 30, 30, 30 },  //  12
67
  { 30, 30, 11, 11 },  //  13
68
  { 30, 30, 30, 30 },  //  14
69
  { 30, 30, 30, 30 },  //  15
70
  { 30, 30, 30, 30 },  //  16
71
  { 30, 30, 30, 30 },  //  17
72
  { 30, 30, 30, 30 },  //  18
73
  { 30, 30, 30, 30 },  //  19
74
  { 30, 30, 30, 30 },  //  20
75
  { 30, 30, 30, 30 },  //  21
76
  { 30, 30, 30, 30 },  //  22
77
  { 30, 30, 30, 30 },  //  23
78
  { 30, 30, 30, 30 },  //  24
79
  { 30, 30, 30, 30 },  //  25
80
  { 30, 30, 30, 30 },  //  26
81
  { 30, 30, 30, 30 },  //  27
82
  { 30, 30, 30, 30 },  //  28
83
  { 30, 30, 30, 30 },  //  29
84
  { 30, 30, 30, 30 },  //  30
85
  { 30, 30, 30, 30 },  //  31
86
  { 26, 26, 26, 30 },  //  32
87
  { 30, 30, 30, 10 },  //  33
88
  { 30, 30, 30, 20 },  //  34
89
  { 30, 30, 15, 30 },  //  35
90
  { 30, 30, 18, 18 },  //  36
91
  { 30, 30, 21, 30 },  //  37
92
  { 30, 30, 10, 30 },  //  38
93
  { 30, 30, 30, 28 },  //  39
94
  { 30, 30, 30, 23 },  //  40
95
  { 30, 30, 30, 24 },  //  41
96
  { 30, 30, 22, 22 },  //  42
97
  { 30, 30, 20, 30 },  //  43
98
  { 30, 30, 13, 13 },  //  44
99
  { 30, 30, 16, 16 },  //  45
100
  { 30, 30, 17, 17 },  //  46
101
  { 30, 30, 19, 19 },  //  47
102
  { 30, 30,  0, 30 },  //  48
103
  { 30, 30,  1, 30 },  //  49
104
  { 30, 30,  2, 30 },  //  50
105
  { 30, 30,  3, 30 },  //  51
106
  { 30, 30,  4, 30 },  //  52
107
  { 30, 30,  5, 30 },  //  53
108
  { 30, 30,  6, 30 },  //  54
109
  { 30, 30,  7, 30 },  //  55
110
  { 30, 30,  8, 30 },  //  56
111
  { 30, 30,  9, 30 },  //  57
112
  { 30, 30, 14, 14 },  //  58
113
  { 30, 30, 30,  0 },  //  59
114
  { 30, 30, 30,  1 },  //  60
115
  { 30, 30, 23, 30 },  //  61
116
  { 30, 30, 30,  2 },  //  62
117
  { 30, 30, 30, 25 },  //  63
118
  { 30, 30, 30,  3 },  //  64
119
  {  0, 30, 30, 30 },  //  65
120
  {  1, 30, 30, 30 },  //  66
121
  {  2, 30, 30, 30 },  //  67
122
  {  3, 30, 30, 30 },  //  68
123
  {  4, 30, 30, 30 },  //  69
124
  {  5, 30, 30, 30 },  //  70
125
  {  6, 30, 30, 30 },  //  71
126
  {  7, 30, 30, 30 },  //  72
127
  {  8, 30, 30, 30 },  //  73
128
  {  9, 30, 30, 30 },  //  74
129
  { 10, 30, 30, 30 },  //  75
130
  { 11, 30, 30, 30 },  //  76
131
  { 12, 30, 30, 30 },  //  77
132
  { 13, 30, 30, 30 },  //  78
133
  { 14, 30, 30, 30 },  //  79
134
  { 15, 30, 30, 30 },  //  80
135
  { 16, 30, 30, 30 },  //  81
136
  { 17, 30, 30, 30 },  //  82
137
  { 18, 30, 30, 30 },  //  83
138
  { 19, 30, 30, 30 },  //  84
139
  { 20, 30, 30, 30 },  //  85
140
  { 21, 30, 30, 30 },  //  86
141
  { 22, 30, 30, 30 },  //  87
142
  { 23, 30, 30, 30 },  //  88
143
  { 24, 30, 30, 30 },  //  89
144
  { 25, 30, 30, 30 },  //  90
145
  { 30, 30, 30,  4 },  //  91
146
  { 30, 30, 30,  5 },  //  92
147
  { 30, 30, 30,  6 },  //  93
148
  { 30, 30, 24, 30 },  //  94
149
  { 30, 30, 30,  7 },  //  95
150
  { 30, 30, 30,  8 },  //  96
151
  { 30,  0, 30, 30 },  //  97
152
  { 30,  1, 30, 30 },  //  98
153
  { 30,  2, 30, 30 },  //  30
154
  { 30,  3, 30, 30 },  // 100
155
  { 30,  4, 30, 30 },  // 101
156
  { 30,  5, 30, 30 },  // 102
157
  { 30,  6, 30, 30 },  // 103
158
  { 30,  7, 30, 30 },  // 104
159
  { 30,  8, 30, 30 },  // 105
160
  { 30,  9, 30, 30 },  // 106
161
  { 30, 10, 30, 30 },  // 107
162
  { 30, 11, 30, 30 },  // 108
163
  { 30, 12, 30, 30 },  // 109
164
  { 30, 13, 30, 30 },  // 110
165
  { 30, 14, 30, 30 },  // 111
166
  { 30, 15, 30, 30 },  // 112
167
  { 30, 16, 30, 30 },  // 113
168
  { 30, 17, 30, 30 },  // 114
169
  { 30, 18, 30, 30 },  // 115
170
  { 30, 19, 30, 30 },  // 116
171
  { 30, 20, 30, 30 },  // 117
172
  { 30, 21, 30, 30 },  // 118
173
  { 30, 22, 30, 30 },  // 119
174
  { 30, 23, 30, 30 },  // 120
175
  { 30, 24, 30, 30 },  // 121
176
  { 30, 25, 30, 30 },  // 122
177
  { 30, 30, 30, 26 },  // 123
178
  { 30, 30, 30, 21 },  // 124
179
  { 30, 30, 30, 27 },  // 125
180
  { 30, 30, 30,  9 },  // 126
181
  { 30, 30, 30, 30 }   // 127
182
};
183
184
static int errorCorrectionCoeffLevel0[2] = {
185
  27, 917
186
};
187
188
static int errorCorrectionCoeffLevel1[4] = {
189
  522, 568, 723, 809
190
};
191
192
static int errorCorrectionCoeffLevel2[8] = {
193
  237, 308, 436, 284, 646, 653, 428, 379
194
};
195
196
static int errorCorrectionCoeffLevel3[16] = {
197
  274, 562, 232, 755, 599, 524, 801, 132,
198
  295, 116, 442, 428, 295,  42, 176,  65
199
};
200
201
static int errorCorrectionCoeffLevel4[32] = {
202
  361, 575, 922, 525, 176, 586, 640, 321,
203
  536, 742, 677, 742, 687, 284, 193, 517,
204
  273, 494, 263, 147, 593, 800, 571, 320,
205
  803, 133, 231, 390, 685, 330,  63, 410
206
};
207
208
static int errorCorrectionCoeffLevel5[64] = {
209
  539, 422,   6,  93, 862, 771, 453, 106,
210
  610, 287, 107, 505, 733, 877, 381, 612,
211
  723, 476, 462, 172, 430, 609, 858, 822,
212
  543, 376, 511, 400, 672, 762, 283, 184,
213
  440,  35, 519,  31, 460, 594, 225, 535,
214
  517, 352, 605, 158, 651, 201, 488, 502,
215
  648, 733, 717,  83, 404,  97, 280, 771,
216
  840, 629,   4, 381, 843, 623, 264, 543
217
};
218
219
static int errorCorrectionCoeffLevel6[128] = {
220
  521, 310, 864, 547, 858, 580, 296, 379,
221
   53, 779, 897, 444, 400, 925, 749, 415,
222
  822,  93, 217, 208, 928, 244, 583, 620,
223
  246, 148, 447, 631, 292, 908, 490, 704,
224
  516, 258, 457, 907, 594, 723, 674, 292,
225
  272,  96, 684, 432, 686, 606, 860, 569,
226
  193, 219, 129, 186, 236, 287, 192, 775,
227
  278, 173,  40, 379, 712, 463, 646, 776,
228
  171, 491, 297, 763, 156, 732,  95, 270,
229
  447,  90, 507,  48, 228, 821, 808, 898,
230
  784, 663, 627, 378, 382, 262, 380, 602,
231
  754, 336,  89, 614,  87, 432, 670, 616,
232
  157, 374, 242, 726, 600, 269, 375, 898,
233
  845, 454, 354, 130, 814, 587, 804,  34,
234
  211, 330, 539, 297, 827, 865,  37, 517,
235
  834, 315, 550,  86, 801,   4, 108, 539
236
};
237
238
static int errorCorrectionCoeffLevel7[256] = {
239
  524, 894,  75, 766, 882, 857,  74, 204,
240
   82, 586, 708, 250, 905, 786, 138, 720,
241
  858, 194, 311, 913, 275, 190, 375, 850,
242
  438, 733, 194, 280, 201, 280, 828, 757,
243
  710, 814, 919,  89,  68, 569,  11, 204,
244
  796, 605, 540, 913, 801, 700, 799, 137,
245
  439, 418, 592, 668, 353, 859, 370, 694,
246
  325, 240, 216, 257, 284, 549, 209, 884,
247
  315,  70, 329, 793, 490, 274, 877, 162,
248
  749, 812, 684, 461, 334, 376, 849, 521,
249
  307, 291, 803, 712,  19, 358, 399, 908,
250
  103, 511,  51,   8, 517, 225, 289, 470,
251
  637, 731,  66, 255, 917, 269, 463, 830,
252
  730, 433, 848, 585, 136, 538, 906,  90,
253
    2, 290, 743, 199, 655, 903, 329,  49,
254
  802, 580, 355, 588, 188, 462,  10, 134,
255
  628, 320, 479, 130, 739,  71, 263, 318,
256
  374, 601, 192, 605, 142, 673, 687, 234,
257
  722, 384, 177, 752, 607, 640, 455, 193,
258
  689, 707, 805, 641,  48,  60, 732, 621,
259
  895, 544, 261, 852, 655, 309, 697, 755,
260
  756,  60, 231, 773, 434, 421, 726, 528,
261
  503, 118,  49, 795,  32, 144, 500, 238,
262
  836, 394, 280, 566, 319,   9, 647, 550,
263
   73, 914, 342, 126,  32, 681, 331, 792,
264
  620,  60, 609, 441, 180, 791, 893, 754,
265
  605, 383, 228, 749, 760, 213,  54, 297,
266
  134,  54, 834, 299, 922, 191, 910, 532,
267
  609, 829, 189,  20, 167,  29, 872, 449,
268
   83, 402,  41, 656, 505, 579, 481, 173,
269
  404, 251, 688,  95, 497, 555, 642, 543,
270
  307, 159, 924, 558, 648,  55, 497,  10
271
};
272
273
static int errorCorrectionCoeffLevel8[512] = {
274
  352,  77, 373, 504,  35, 599, 428, 207,
275
  409, 574, 118, 498, 285, 380, 350, 492,
276
  197, 265, 920, 155, 914, 299, 229, 643,
277
  294, 871, 306,  88,  87, 193, 352, 781,
278
  846,  75, 327, 520, 435, 543, 203, 666,
279
  249, 346, 781, 621, 640, 268, 794, 534,
280
  539, 781, 408, 390, 644, 102, 476, 499,
281
  290, 632, 545,  37, 858, 916, 552,  41,
282
  542, 289, 122, 272, 383, 800, 485,  98,
283
  752, 472, 761, 107, 784, 860, 658, 741,
284
  290, 204, 681, 407, 855,  85,  99,  62,
285
  482, 180,  20, 297, 451, 593, 913, 142,
286
  808, 684, 287, 536, 561,  76, 653, 899,
287
  729, 567, 744, 390, 513, 192, 516, 258,
288
  240, 518, 794, 395, 768, 848,  51, 610,
289
  384, 168, 190, 826, 328, 596, 786, 303,
290
  570, 381, 415, 641, 156, 237, 151, 429,
291
  531, 207, 676, 710,  89, 168, 304, 402,
292
   40, 708, 575, 162, 864, 229,  65, 861,
293
  841, 512, 164, 477, 221,  92, 358, 785,
294
  288, 357, 850, 836, 827, 736, 707,  94,
295
    8, 494, 114, 521,   2, 499, 851, 543,
296
  152, 729, 771,  95, 248, 361, 578, 323,
297
  856, 797, 289,  51, 684, 466, 533, 820,
298
  669,  45, 902, 452, 167, 342, 244, 173,
299
   35, 463, 651,  51, 699, 591, 452, 578,
300
   37, 124, 298, 332, 552,  43, 427, 119,
301
  662, 777, 475, 850, 764, 364, 578, 911,
302
  283, 711, 472, 420, 245, 288, 594, 394,
303
  511, 327, 589, 777, 699, 688,  43, 408,
304
  842, 383, 721, 521, 560, 644, 714, 559,
305
   62, 145, 873, 663, 713, 159, 672, 729,
306
  624,  59, 193, 417, 158, 209, 563, 564,
307
  343, 693, 109, 608, 563, 365, 181, 772,
308
  677, 310, 248, 353, 708, 410, 579, 870,
309
  617, 841, 632, 860, 289, 536,  35, 777,
310
  618, 586, 424, 833,  77, 597, 346, 269,
311
  757, 632, 695, 751, 331, 247, 184,  45,
312
  787, 680,  18,  66, 407, 369,  54, 492,
313
  228, 613, 830, 922, 437, 519, 644, 905,
314
  789, 420, 305, 441, 207, 300, 892, 827,
315
  141, 537, 381, 662, 513,  56, 252, 341,
316
  242, 797, 838, 837, 720, 224, 307, 631,
317
   61,  87, 560, 310, 756, 665, 397, 808,
318
  851, 309, 473, 795, 378,  31, 647, 915,
319
  459, 806, 590, 731, 425, 216, 548, 249,
320
  321, 881, 699, 535, 673, 782, 210, 815,
321
  905, 303, 843, 922, 281,  73, 469, 791,
322
  660, 162, 498, 308, 155, 422, 907, 817,
323
  187,  62,  16, 425, 535, 336, 286, 437,
324
  375, 273, 610, 296, 183, 923, 116, 667,
325
  751, 353,  62, 366, 691, 379, 687, 842,
326
   37, 357, 720, 742, 330,   5,  39, 923,
327
  311, 424, 242, 749, 321,  54, 669, 316,
328
  342, 299, 534, 105, 667, 488, 640, 672,
329
  576, 540, 316, 486, 721, 610,  46, 656,
330
  447, 171, 616, 464, 190, 531, 297, 321,
331
  762, 752, 533, 175, 134,  14, 381, 433,
332
  717,  45, 111,  20, 596, 284, 736, 138,
333
  646, 411, 877, 669, 141, 919,  45, 780,
334
  407, 164, 332, 899, 165, 726, 600, 325,
335
  498, 655, 357, 752, 768, 223, 849, 647,
336
   63, 310, 863, 251, 366, 304, 282, 738,
337
  675, 410, 389, 244,  31, 121, 303, 263
338
};
339
340
static int *errorCorrectionCoeff[maxErrorCorrectionLevel + 1] = {
341
  errorCorrectionCoeffLevel0,
342
  errorCorrectionCoeffLevel1,
343
  errorCorrectionCoeffLevel2,
344
  errorCorrectionCoeffLevel3,
345
  errorCorrectionCoeffLevel4,
346
  errorCorrectionCoeffLevel5,
347
  errorCorrectionCoeffLevel6,
348
  errorCorrectionCoeffLevel7,
349
  errorCorrectionCoeffLevel8
350
};
351
352
0
#define startPatternLength 8
353
static char startPattern[startPatternLength] = {8,1,1,1,1,1,1,3};
354
355
0
#define stopPatternLength 9
356
static char stopPattern[stopPatternLength] = {7,1,1,3,1,1,1,2,1};
357
358
0
#define patternLength 8
359
360
// patterns[codeword][cluster][element] = element (bar or space) width
361
static char patterns[929][3][patternLength] = {
362
  {{3,1,1,1,1,1,3,6}, {5,1,1,1,1,1,2,5}, {2,1,1,1,1,1,5,5}},
363
  {{4,1,1,1,1,1,4,4}, {6,1,1,1,1,1,3,3}, {3,1,1,1,1,1,6,3}},
364
  {{5,1,1,1,1,1,5,2}, {4,1,1,1,1,2,1,6}, {1,1,1,1,1,2,4,6}},
365
  {{3,1,1,1,1,2,3,5}, {5,1,1,1,1,2,2,4}, {2,1,1,1,1,2,5,4}},
366
  {{4,1,1,1,1,2,4,3}, {6,1,1,1,1,2,3,2}, {3,1,1,1,1,2,6,2}},
367
  {{5,1,1,1,1,2,5,1}, {4,1,1,1,1,3,1,5}, {1,1,1,1,1,3,4,5}},
368
  {{2,1,1,1,1,3,2,6}, {5,1,1,1,1,3,2,3}, {2,1,1,1,1,3,5,3}},
369
  {{3,1,1,1,1,3,3,4}, {6,1,1,1,1,3,3,1}, {3,1,1,1,1,3,6,1}},
370
  {{2,1,1,1,1,4,2,5}, {4,1,1,1,1,4,1,4}, {1,1,1,1,1,4,4,4}},
371
  {{1,1,1,1,1,5,1,6}, {5,1,1,1,1,4,2,2}, {2,1,1,1,1,4,5,2}},
372
  {{2,1,1,1,1,5,2,4}, {4,1,1,1,1,5,1,3}, {1,1,1,1,1,5,4,3}},
373
  {{1,1,1,1,1,6,1,5}, {5,1,1,1,1,5,2,1}, {6,1,1,1,2,1,1,4}},
374
  {{2,1,1,1,2,1,3,6}, {4,1,1,1,1,6,1,2}, {1,1,1,1,2,1,5,5}},
375
  {{3,1,1,1,2,1,4,4}, {4,1,1,1,2,1,2,5}, {2,1,1,1,2,1,6,3}},
376
  {{4,1,1,1,2,1,5,2}, {5,1,1,1,2,1,3,3}, {6,1,1,1,2,2,1,3}},
377
  {{2,1,1,1,2,2,3,5}, {6,1,1,1,2,1,4,1}, {1,1,1,1,2,2,5,4}},
378
  {{3,1,1,1,2,2,4,3}, {3,1,1,1,2,2,1,6}, {2,1,1,1,2,2,6,2}},
379
  {{4,1,1,1,2,2,5,1}, {4,1,1,1,2,2,2,4}, {6,1,1,1,2,3,1,2}},
380
  {{1,1,1,1,2,3,2,6}, {5,1,1,1,2,2,3,2}, {1,1,1,1,2,3,5,3}},
381
  {{2,1,1,1,2,3,3,4}, {3,1,1,1,2,3,1,5}, {2,1,1,1,2,3,6,1}},
382
  {{1,1,1,1,2,4,2,5}, {4,1,1,1,2,3,2,3}, {6,1,1,1,2,4,1,1}},
383
  {{1,1,1,1,3,1,3,6}, {5,1,1,1,2,3,3,1}, {1,1,1,1,2,4,5,2}},
384
  {{2,1,1,1,3,1,4,4}, {3,1,1,1,2,4,1,4}, {5,1,1,1,3,1,1,4}},
385
  {{3,1,1,1,3,1,5,2}, {4,1,1,1,2,4,2,2}, {6,1,1,1,3,1,2,2}},
386
  {{1,1,1,1,3,2,3,5}, {3,1,1,1,2,5,1,3}, {1,1,1,1,3,1,6,3}},
387
  {{2,1,1,1,3,2,4,3}, {4,1,1,1,2,5,2,1}, {5,1,1,1,3,2,1,3}},
388
  {{3,1,1,1,3,2,5,1}, {3,1,1,1,2,6,1,2}, {6,1,1,1,3,2,2,1}},
389
  {{1,1,1,1,3,3,3,4}, {3,1,1,1,3,1,2,5}, {1,1,1,1,3,2,6,2}},
390
  {{2,1,1,1,3,3,4,2}, {4,1,1,1,3,1,3,3}, {5,1,1,1,3,3,1,2}},
391
  {{1,1,1,1,4,1,4,4}, {5,1,1,1,3,1,4,1}, {1,1,1,1,3,3,6,1}},
392
  {{2,1,1,1,4,1,5,2}, {2,1,1,1,3,2,1,6}, {5,1,1,1,3,4,1,1}},
393
  {{1,1,1,1,4,2,4,3}, {3,1,1,1,3,2,2,4}, {4,1,1,1,4,1,1,4}},
394
  {{2,1,1,1,4,2,5,1}, {4,1,1,1,3,2,3,2}, {5,1,1,1,4,1,2,2}},
395
  {{1,1,1,1,5,1,5,2}, {2,1,1,1,3,3,1,5}, {4,1,1,1,4,2,1,3}},
396
  {{5,1,1,1,6,1,1,1}, {3,1,1,1,3,3,2,3}, {5,1,1,1,4,2,2,1}},
397
  {{3,1,1,2,1,1,3,5}, {4,1,1,1,3,3,3,1}, {4,1,1,1,4,3,1,2}},
398
  {{4,1,1,2,1,1,4,3}, {2,1,1,1,3,4,1,4}, {4,1,1,1,4,4,1,1}},
399
  {{5,1,1,2,1,1,5,1}, {3,1,1,1,3,4,2,2}, {3,1,1,1,5,1,1,4}},
400
  {{2,1,1,2,1,2,2,6}, {2,1,1,1,3,5,1,3}, {4,1,1,1,5,1,2,2}},
401
  {{3,1,1,2,1,2,3,4}, {3,1,1,1,3,5,2,1}, {3,1,1,1,5,2,1,3}},
402
  {{4,1,1,2,1,2,4,2}, {2,1,1,1,3,6,1,2}, {4,1,1,1,5,2,2,1}},
403
  {{2,1,1,2,1,3,2,5}, {2,1,1,1,4,1,2,5}, {3,1,1,1,5,3,1,2}},
404
  {{3,1,1,2,1,3,3,3}, {3,1,1,1,4,1,3,3}, {3,1,1,1,5,4,1,1}},
405
  {{1,1,1,2,1,4,1,6}, {4,1,1,1,4,1,4,1}, {2,1,1,1,6,1,1,4}},
406
  {{2,1,1,2,1,4,2,4}, {1,1,1,1,4,2,1,6}, {3,1,1,1,6,1,2,2}},
407
  {{3,1,1,2,1,4,3,2}, {2,1,1,1,4,2,2,4}, {2,1,1,1,6,2,1,3}},
408
  {{1,1,1,2,1,5,1,5}, {3,1,1,1,4,2,3,2}, {3,1,1,1,6,2,2,1}},
409
  {{2,1,1,2,1,5,2,3}, {1,1,1,1,4,3,1,5}, {2,1,1,1,6,3,1,2}},
410
  {{1,1,1,2,1,6,1,4}, {2,1,1,1,4,3,2,3}, {1,1,1,2,1,1,4,6}},
411
  {{2,1,1,2,2,1,3,5}, {3,1,1,1,4,3,3,1}, {2,1,1,2,1,1,5,4}},
412
  {{3,1,1,2,2,1,4,3}, {1,1,1,1,4,4,1,4}, {3,1,1,2,1,1,6,2}},
413
  {{4,1,1,2,2,1,5,1}, {2,1,1,1,4,4,2,2}, {1,1,1,2,1,2,4,5}},
414
  {{1,1,1,2,2,2,2,6}, {1,1,1,1,4,5,1,3}, {2,1,1,2,1,2,5,3}},
415
  {{2,1,1,2,2,2,3,4}, {2,1,1,1,4,5,2,1}, {3,1,1,2,1,2,6,1}},
416
  {{3,1,1,2,2,2,4,2}, {1,1,1,1,5,1,2,5}, {1,1,1,2,1,3,4,4}},
417
  {{1,1,1,2,2,3,2,5}, {2,1,1,1,5,1,3,3}, {2,1,1,2,1,3,5,2}},
418
  {{2,1,1,2,2,3,3,3}, {3,1,1,1,5,1,4,1}, {1,1,1,2,1,4,4,3}},
419
  {{3,1,1,2,2,3,4,1}, {1,1,1,1,5,2,2,4}, {2,1,1,2,1,4,5,1}},
420
  {{1,1,1,2,2,4,2,4}, {2,1,1,1,5,2,3,2}, {1,1,1,2,1,5,4,2}},
421
  {{2,1,1,2,2,4,3,2}, {1,1,1,1,5,3,2,3}, {6,1,1,2,2,1,1,3}},
422
  {{1,1,1,2,3,1,3,5}, {2,1,1,1,5,3,3,1}, {1,1,1,2,2,1,5,4}},
423
  {{2,1,1,2,3,1,4,3}, {1,1,1,1,5,4,2,2}, {2,1,1,2,2,1,6,2}},
424
  {{3,1,1,2,3,1,5,1}, {1,1,1,1,6,1,3,3}, {6,1,1,2,2,2,1,2}},
425
  {{1,1,1,2,3,2,3,4}, {2,1,1,1,6,1,4,1}, {1,1,1,2,2,2,5,3}},
426
  {{2,1,1,2,3,2,4,2}, {1,1,1,1,6,2,3,2}, {2,1,1,2,2,2,6,1}},
427
  {{1,1,1,2,3,3,3,3}, {1,1,1,1,6,3,3,1}, {6,1,1,2,2,3,1,1}},
428
  {{2,1,1,2,3,3,4,1}, {4,1,1,2,1,1,1,6}, {1,1,1,2,2,3,5,2}},
429
  {{1,1,1,2,4,1,4,3}, {5,1,1,2,1,1,2,4}, {1,1,1,2,2,4,5,1}},
430
  {{2,1,1,2,4,1,5,1}, {6,1,1,2,1,1,3,2}, {5,1,1,2,3,1,1,3}},
431
  {{1,1,1,2,4,2,4,2}, {4,1,1,2,1,2,1,5}, {6,1,1,2,3,1,2,1}},
432
  {{1,1,1,2,4,3,4,1}, {5,1,1,2,1,2,2,3}, {1,1,1,2,3,1,6,2}},
433
  {{2,1,1,3,1,1,2,6}, {6,1,1,2,1,2,3,1}, {5,1,1,2,3,2,1,2}},
434
  {{3,1,1,3,1,1,3,4}, {4,1,1,2,1,3,1,4}, {1,1,1,2,3,2,6,1}},
435
  {{4,1,1,3,1,1,4,2}, {5,1,1,2,1,3,2,2}, {5,1,1,2,3,3,1,1}},
436
  {{2,1,1,3,1,2,2,5}, {4,1,1,2,1,4,1,3}, {4,1,1,2,4,1,1,3}},
437
  {{3,1,1,3,1,2,3,3}, {5,1,1,2,1,4,2,1}, {5,1,1,2,4,1,2,1}},
438
  {{4,1,1,3,1,2,4,1}, {4,1,1,2,1,5,1,2}, {4,1,1,2,4,2,1,2}},
439
  {{1,1,1,3,1,3,1,6}, {4,1,1,2,1,6,1,1}, {4,1,1,2,4,3,1,1}},
440
  {{2,1,1,3,1,3,2,4}, {3,1,1,2,2,1,1,6}, {3,1,1,2,5,1,1,3}},
441
  {{3,1,1,3,1,3,3,2}, {4,1,1,2,2,1,2,4}, {4,1,1,2,5,1,2,1}},
442
  {{1,1,1,3,1,4,1,5}, {5,1,1,2,2,1,3,2}, {3,1,1,2,5,2,1,2}},
443
  {{2,1,1,3,1,4,2,3}, {3,1,1,2,2,2,1,5}, {3,1,1,2,5,3,1,1}},
444
  {{1,1,1,3,1,5,1,4}, {4,1,1,2,2,2,2,3}, {2,1,1,2,6,1,1,3}},
445
  {{1,1,1,3,1,6,1,3}, {5,1,1,2,2,2,3,1}, {3,1,1,2,6,1,2,1}},
446
  {{1,1,1,3,2,1,2,6}, {3,1,1,2,2,3,1,4}, {2,1,1,2,6,2,1,2}},
447
  {{2,1,1,3,2,1,3,4}, {4,1,1,2,2,3,2,2}, {2,1,1,2,6,3,1,1}},
448
  {{3,1,1,3,2,1,4,2}, {3,1,1,2,2,4,1,3}, {1,1,1,3,1,1,4,5}},
449
  {{1,1,1,3,2,2,2,5}, {4,1,1,2,2,4,2,1}, {2,1,1,3,1,1,5,3}},
450
  {{2,1,1,3,2,2,3,3}, {3,1,1,2,2,5,1,2}, {3,1,1,3,1,1,6,1}},
451
  {{3,1,1,3,2,2,4,1}, {3,1,1,2,2,6,1,1}, {1,1,1,3,1,2,4,4}},
452
  {{1,1,1,3,2,3,2,4}, {2,1,1,2,3,1,1,6}, {2,1,1,3,1,2,5,2}},
453
  {{2,1,1,3,2,3,3,2}, {3,1,1,2,3,1,2,4}, {1,1,1,3,1,3,4,3}},
454
  {{1,1,1,3,2,4,2,3}, {4,1,1,2,3,1,3,2}, {2,1,1,3,1,3,5,1}},
455
  {{1,1,1,3,2,5,2,2}, {2,1,1,2,3,2,1,5}, {1,1,1,3,1,4,4,2}},
456
  {{1,1,1,3,3,1,3,4}, {3,1,1,2,3,2,2,3}, {1,1,1,3,1,5,4,1}},
457
  {{2,1,1,3,3,1,4,2}, {4,1,1,2,3,2,3,1}, {6,1,1,3,2,1,1,2}},
458
  {{1,1,1,3,3,2,3,3}, {2,1,1,2,3,3,1,4}, {1,1,1,3,2,1,5,3}},
459
  {{2,1,1,3,3,2,4,1}, {3,1,1,2,3,3,2,2}, {2,1,1,3,2,1,6,1}},
460
  {{1,1,1,3,3,3,3,2}, {2,1,1,2,3,4,1,3}, {6,1,1,3,2,2,1,1}},
461
  {{1,1,1,3,4,1,4,2}, {3,1,1,2,3,4,2,1}, {1,1,1,3,2,2,5,2}},
462
  {{2,1,1,4,1,1,2,5}, {2,1,1,2,3,5,1,2}, {1,1,1,3,2,3,5,1}},
463
  {{3,1,1,4,1,1,3,3}, {2,1,1,2,3,6,1,1}, {5,1,1,3,3,1,1,2}},
464
  {{4,1,1,4,1,1,4,1}, {1,1,1,2,4,1,1,6}, {1,1,1,3,3,1,6,1}},
465
  {{1,1,1,4,1,2,1,6}, {2,1,1,2,4,1,2,4}, {5,1,1,3,3,2,1,1}},
466
  {{2,1,1,4,1,2,2,4}, {3,1,1,2,4,1,3,2}, {4,1,1,3,4,1,1,2}},
467
  {{3,1,1,4,1,2,3,2}, {1,1,1,2,4,2,1,5}, {4,1,1,3,4,2,1,1}},
468
  {{1,1,1,4,1,3,1,5}, {2,1,1,2,4,2,2,3}, {3,1,1,3,5,1,1,2}},
469
  {{2,1,1,4,1,3,2,3}, {3,1,1,2,4,2,3,1}, {3,1,1,3,5,2,1,1}},
470
  {{3,1,1,4,1,3,3,1}, {1,1,1,2,4,3,1,4}, {2,1,1,3,6,1,1,2}},
471
  {{1,1,1,4,1,4,1,4}, {2,1,1,2,4,3,2,2}, {2,1,1,3,6,2,1,1}},
472
  {{2,1,1,4,1,4,2,2}, {1,1,1,2,4,4,1,3}, {1,1,1,4,1,1,4,4}},
473
  {{1,1,1,4,1,5,1,3}, {2,1,1,2,4,4,2,1}, {2,1,1,4,1,1,5,2}},
474
  {{2,1,1,4,1,5,2,1}, {1,1,1,2,4,5,1,2}, {1,1,1,4,1,2,4,3}},
475
  {{1,1,1,4,2,1,2,5}, {1,1,1,2,5,1,2,4}, {2,1,1,4,1,2,5,1}},
476
  {{2,1,1,4,2,1,3,3}, {2,1,1,2,5,1,3,2}, {1,1,1,4,1,3,4,2}},
477
  {{3,1,1,4,2,1,4,1}, {1,1,1,2,5,2,2,3}, {1,1,1,4,1,4,4,1}},
478
  {{1,1,1,4,2,2,2,4}, {2,1,1,2,5,2,3,1}, {6,1,1,4,2,1,1,1}},
479
  {{2,1,1,4,2,2,3,2}, {1,1,1,2,5,3,2,2}, {1,1,1,4,2,1,5,2}},
480
  {{1,1,1,4,2,3,2,3}, {1,1,1,2,5,4,2,1}, {1,1,1,4,2,2,5,1}},
481
  {{2,1,1,4,2,3,3,1}, {1,1,1,2,6,1,3,2}, {5,1,1,4,3,1,1,1}},
482
  {{1,1,1,4,2,4,2,2}, {1,1,1,2,6,2,3,1}, {4,1,1,4,4,1,1,1}},
483
  {{1,1,1,4,2,5,2,1}, {4,1,1,3,1,1,1,5}, {3,1,1,4,5,1,1,1}},
484
  {{2,1,1,4,3,1,4,1}, {5,1,1,3,1,1,2,3}, {1,1,1,5,1,1,4,3}},
485
  {{1,1,1,4,3,3,3,1}, {6,1,1,3,1,1,3,1}, {2,1,1,5,1,1,5,1}},
486
  {{1,1,1,5,1,1,1,6}, {4,1,1,3,1,2,1,4}, {1,1,1,5,1,2,4,2}},
487
  {{2,1,1,5,1,1,2,4}, {5,1,1,3,1,2,2,2}, {1,1,1,5,1,3,4,1}},
488
  {{3,1,1,5,1,1,3,2}, {4,1,1,3,1,3,1,3}, {1,1,1,5,2,1,5,1}},
489
  {{1,1,1,5,1,2,1,5}, {5,1,1,3,1,3,2,1}, {1,1,1,6,1,1,4,2}},
490
  {{2,1,1,5,1,2,2,3}, {4,1,1,3,1,4,1,2}, {1,1,1,6,1,2,4,1}},
491
  {{3,1,1,5,1,2,3,1}, {4,1,1,3,1,5,1,1}, {1,2,1,1,1,1,4,6}},
492
  {{1,1,1,5,1,3,1,4}, {3,1,1,3,2,1,1,5}, {2,2,1,1,1,1,5,4}},
493
  {{2,1,1,5,1,3,2,2}, {4,1,1,3,2,1,2,3}, {3,2,1,1,1,1,6,2}},
494
  {{1,1,1,5,1,4,1,3}, {5,1,1,3,2,1,3,1}, {1,2,1,1,1,2,4,5}},
495
  {{2,1,1,5,1,4,2,1}, {3,1,1,3,2,2,1,4}, {2,2,1,1,1,2,5,3}},
496
  {{1,1,1,5,1,5,1,2}, {4,1,1,3,2,2,2,2}, {3,2,1,1,1,2,6,1}},
497
  {{1,1,1,5,2,1,2,4}, {3,1,1,3,2,3,1,3}, {1,2,1,1,1,3,4,4}},
498
  {{1,1,1,5,2,2,2,3}, {4,1,1,3,2,3,2,1}, {2,2,1,1,1,3,5,2}},
499
  {{1,1,1,5,2,3,2,2}, {3,1,1,3,2,4,1,2}, {1,2,1,1,1,4,4,3}},
500
  {{1,1,1,6,1,1,1,5}, {3,1,1,3,2,5,1,1}, {2,2,1,1,1,4,5,1}},
501
  {{3,1,1,6,1,1,3,1}, {2,1,1,3,3,1,1,5}, {1,2,1,1,1,5,4,2}},
502
  {{2,1,1,6,1,2,2,2}, {3,1,1,3,3,1,2,3}, {6,2,1,1,2,1,1,3}},
503
  {{2,1,1,6,1,3,2,1}, {4,1,1,3,3,1,3,1}, {1,2,1,1,2,1,5,4}},
504
  {{1,1,1,6,1,5,1,1}, {2,1,1,3,3,2,1,4}, {2,2,1,1,2,1,6,2}},
505
  {{3,2,1,1,1,1,3,5}, {3,1,1,3,3,2,2,2}, {6,2,1,1,2,2,1,2}},
506
  {{4,2,1,1,1,1,4,3}, {2,1,1,3,3,3,1,3}, {1,2,1,1,2,2,5,3}},
507
  {{5,2,1,1,1,1,5,1}, {3,1,1,3,3,3,2,1}, {2,2,1,1,2,2,6,1}},
508
  {{2,2,1,1,1,2,2,6}, {2,1,1,3,3,4,1,2}, {6,2,1,1,2,3,1,1}},
509
  {{3,2,1,1,1,2,3,4}, {2,1,1,3,3,5,1,1}, {1,2,1,1,2,3,5,2}},
510
  {{4,2,1,1,1,2,4,2}, {1,1,1,3,4,1,1,5}, {1,2,1,1,2,4,5,1}},
511
  {{2,2,1,1,1,3,2,5}, {2,1,1,3,4,1,2,3}, {5,2,1,1,3,1,1,3}},
512
  {{3,2,1,1,1,3,3,3}, {3,1,1,3,4,1,3,1}, {6,2,1,1,3,1,2,1}},
513
  {{4,2,1,1,1,3,4,1}, {1,1,1,3,4,2,1,4}, {1,2,1,1,3,1,6,2}},
514
  {{1,2,1,1,1,4,1,6}, {2,1,1,3,4,2,2,2}, {5,2,1,1,3,2,1,2}},
515
  {{2,2,1,1,1,4,2,4}, {1,1,1,3,4,3,1,3}, {1,2,1,1,3,2,6,1}},
516
  {{1,2,1,1,1,5,1,5}, {2,1,1,3,4,3,2,1}, {5,2,1,1,3,3,1,1}},
517
  {{2,2,1,1,2,1,3,5}, {1,1,1,3,4,4,1,2}, {4,2,1,1,4,1,1,3}},
518
  {{3,2,1,1,2,1,4,3}, {1,1,1,3,4,5,1,1}, {5,2,1,1,4,1,2,1}},
519
  {{4,2,1,1,2,1,5,1}, {1,1,1,3,5,1,2,3}, {4,2,1,1,4,2,1,2}},
520
  {{1,2,1,1,2,2,2,6}, {2,1,1,3,5,1,3,1}, {4,2,1,1,4,3,1,1}},
521
  {{2,2,1,1,2,2,3,4}, {1,1,1,3,5,2,2,2}, {3,2,1,1,5,1,1,3}},
522
  {{3,2,1,1,2,2,4,2}, {1,1,1,3,5,3,2,1}, {4,2,1,1,5,1,2,1}},
523
  {{1,2,1,1,2,3,2,5}, {1,1,1,3,6,1,3,1}, {3,2,1,1,5,2,1,2}},
524
  {{2,2,1,1,2,3,3,3}, {4,1,1,4,1,1,1,4}, {3,2,1,1,5,3,1,1}},
525
  {{1,2,1,1,2,4,2,4}, {5,1,1,4,1,1,2,2}, {2,2,1,1,6,1,1,3}},
526
  {{1,2,1,1,2,5,2,3}, {4,1,1,4,1,2,1,3}, {3,2,1,1,6,1,2,1}},
527
  {{1,2,1,1,3,1,3,5}, {5,1,1,4,1,2,2,1}, {2,2,1,1,6,2,1,2}},
528
  {{2,2,1,1,3,1,4,3}, {4,1,1,4,1,3,1,2}, {2,2,1,1,6,3,1,1}},
529
  {{3,2,1,1,3,1,5,1}, {4,1,1,4,1,4,1,1}, {2,1,2,1,1,1,4,5}},
530
  {{1,2,1,1,3,2,3,4}, {3,1,1,4,2,1,1,4}, {3,1,2,1,1,1,5,3}},
531
  {{2,2,1,1,3,2,4,2}, {4,1,1,4,2,1,2,2}, {4,1,2,1,1,1,6,1}},
532
  {{1,2,1,1,3,3,3,3}, {3,1,1,4,2,2,1,3}, {1,1,2,1,1,2,3,6}},
533
  {{1,2,1,1,3,4,3,2}, {4,1,1,4,2,2,2,1}, {2,1,2,1,1,2,4,4}},
534
  {{1,2,1,1,4,1,4,3}, {3,1,1,4,2,3,1,2}, {3,1,2,1,1,2,5,2}},
535
  {{2,2,1,1,4,1,5,1}, {3,1,1,4,2,4,1,1}, {1,1,2,1,1,3,3,5}},
536
  {{1,2,1,1,4,2,4,2}, {2,1,1,4,3,1,1,4}, {2,1,2,1,1,3,4,3}},
537
  {{1,2,1,1,5,1,5,1}, {3,1,1,4,3,1,2,2}, {3,1,2,1,1,3,5,1}},
538
  {{3,1,2,1,1,1,2,6}, {2,1,1,4,3,2,1,3}, {1,1,2,1,1,4,3,4}},
539
  {{4,1,2,1,1,1,3,4}, {3,1,1,4,3,2,2,1}, {2,1,2,1,1,4,4,2}},
540
  {{5,1,2,1,1,1,4,2}, {2,1,1,4,3,3,1,2}, {1,1,2,1,1,5,3,3}},
541
  {{3,1,2,1,1,2,2,5}, {2,1,1,4,3,4,1,1}, {2,1,2,1,1,5,4,1}},
542
  {{4,1,2,1,1,2,3,3}, {1,1,1,4,4,1,1,4}, {1,1,2,1,1,6,3,2}},
543
  {{5,1,2,1,1,2,4,1}, {2,1,1,4,4,1,2,2}, {1,2,1,2,1,1,4,5}},
544
  {{2,1,2,1,1,3,1,6}, {1,1,1,4,4,2,1,3}, {2,2,1,2,1,1,5,3}},
545
  {{3,1,2,1,1,3,2,4}, {2,1,1,4,4,2,2,1}, {3,2,1,2,1,1,6,1}},
546
  {{4,1,2,1,1,3,3,2}, {1,1,1,4,4,3,1,2}, {1,1,2,1,2,1,4,5}},
547
  {{2,1,2,1,1,4,1,5}, {1,1,1,4,4,4,1,1}, {1,2,1,2,1,2,4,4}},
548
  {{3,1,2,1,1,4,2,3}, {1,1,1,4,5,1,2,2}, {2,2,1,2,1,2,5,2}},
549
  {{4,1,2,1,1,4,3,1}, {1,1,1,4,5,2,2,1}, {1,1,2,1,2,2,4,4}},
550
  {{2,1,2,1,1,5,1,4}, {4,1,1,5,1,1,1,3}, {2,1,2,1,2,2,5,2}},
551
  {{3,1,2,1,1,5,2,2}, {5,1,1,5,1,1,2,1}, {2,2,1,2,1,3,5,1}},
552
  {{2,2,1,2,1,1,2,6}, {4,1,1,5,1,2,1,2}, {1,1,2,1,2,3,4,3}},
553
  {{3,2,1,2,1,1,3,4}, {4,1,1,5,1,3,1,1}, {1,2,1,2,1,4,4,2}},
554
  {{4,2,1,2,1,1,4,2}, {3,1,1,5,2,1,1,3}, {1,1,2,1,2,4,4,2}},
555
  {{2,1,2,1,2,1,2,6}, {4,1,1,5,2,1,2,1}, {1,2,1,2,1,5,4,1}},
556
  {{2,2,1,2,1,2,2,5}, {3,1,1,5,2,2,1,2}, {1,1,2,1,2,5,4,1}},
557
  {{3,2,1,2,1,2,3,3}, {3,1,1,5,2,3,1,1}, {6,2,1,2,2,1,1,2}},
558
  {{4,2,1,2,1,2,4,1}, {2,1,1,5,3,1,1,3}, {1,2,1,2,2,1,5,3}},
559
  {{2,1,2,1,2,2,2,5}, {3,1,1,5,3,1,2,1}, {2,2,1,2,2,1,6,1}},
560
  {{3,1,2,1,2,2,3,3}, {2,1,1,5,3,2,1,2}, {6,1,2,1,3,1,1,2}},
561
  {{4,1,2,1,2,2,4,1}, {2,1,1,5,3,3,1,1}, {6,2,1,2,2,2,1,1}},
562
  {{1,1,2,1,2,3,1,6}, {1,1,1,5,4,1,1,3}, {1,1,2,1,3,1,5,3}},
563
  {{1,2,1,2,1,4,1,5}, {2,1,1,5,4,1,2,1}, {1,2,1,2,2,2,5,2}},
564
  {{2,2,1,2,1,4,2,3}, {1,1,1,5,4,2,1,2}, {6,1,2,1,3,2,1,1}},
565
  {{3,2,1,2,1,4,3,1}, {1,1,1,5,4,3,1,1}, {1,1,2,1,3,2,5,2}},
566
  {{1,1,2,1,2,4,1,5}, {4,1,1,6,1,1,1,2}, {1,2,1,2,2,3,5,1}},
567
  {{2,1,2,1,2,4,2,3}, {4,1,1,6,1,2,1,1}, {1,1,2,1,3,3,5,1}},
568
  {{1,1,2,1,2,5,1,4}, {3,1,1,6,2,1,1,2}, {5,2,1,2,3,1,1,2}},
569
  {{1,2,1,2,2,1,2,6}, {3,1,1,6,2,2,1,1}, {1,2,1,2,3,1,6,1}},
570
  {{2,2,1,2,2,1,3,4}, {2,1,1,6,3,1,1,2}, {5,1,2,1,4,1,1,2}},
571
  {{3,2,1,2,2,1,4,2}, {2,1,1,6,3,2,1,1}, {5,2,1,2,3,2,1,1}},
572
  {{1,1,2,1,3,1,2,6}, {4,2,1,1,1,1,1,6}, {1,1,2,1,4,1,6,1}},
573
  {{1,2,1,2,2,2,2,5}, {5,2,1,1,1,1,2,4}, {5,1,2,1,4,2,1,1}},
574
  {{2,2,1,2,2,2,3,3}, {6,2,1,1,1,1,3,2}, {4,2,1,2,4,1,1,2}},
575
  {{3,2,1,2,2,2,4,1}, {4,2,1,1,1,2,1,5}, {4,1,2,1,5,1,1,2}},
576
  {{1,1,2,1,3,2,2,5}, {5,2,1,1,1,2,2,3}, {4,2,1,2,4,2,1,1}},
577
  {{2,1,2,1,3,2,3,3}, {6,2,1,1,1,2,3,1}, {4,1,2,1,5,2,1,1}},
578
  {{3,1,2,1,3,2,4,1}, {4,2,1,1,1,3,1,4}, {3,2,1,2,5,1,1,2}},
579
  {{1,1,2,1,3,3,2,4}, {5,2,1,1,1,3,2,2}, {3,1,2,1,6,1,1,2}},
580
  {{1,2,1,2,2,4,2,3}, {4,2,1,1,1,4,1,3}, {3,2,1,2,5,2,1,1}},
581
  {{1,1,2,1,3,4,2,3}, {5,2,1,1,1,4,2,1}, {3,1,2,1,6,2,1,1}},
582
  {{1,2,1,2,3,1,3,4}, {4,2,1,1,1,5,1,2}, {2,2,1,2,6,1,1,2}},
583
  {{2,2,1,2,3,1,4,2}, {4,2,1,1,1,6,1,1}, {2,2,1,2,6,2,1,1}},
584
  {{1,1,2,1,4,1,3,4}, {3,2,1,1,2,1,1,6}, {1,1,2,2,1,1,3,6}},
585
  {{1,2,1,2,3,2,3,3}, {4,2,1,1,2,1,2,4}, {2,1,2,2,1,1,4,4}},
586
  {{2,2,1,2,3,2,4,1}, {5,2,1,1,2,1,3,2}, {3,1,2,2,1,1,5,2}},
587
  {{1,1,2,1,4,2,3,3}, {3,2,1,1,2,2,1,5}, {1,1,2,2,1,2,3,5}},
588
  {{2,1,2,1,4,2,4,1}, {4,2,1,1,2,2,2,3}, {2,1,2,2,1,2,4,3}},
589
  {{1,1,2,1,4,3,3,2}, {5,2,1,1,2,2,3,1}, {3,1,2,2,1,2,5,1}},
590
  {{1,2,1,2,4,1,4,2}, {3,2,1,1,2,3,1,4}, {1,1,2,2,1,3,3,4}},
591
  {{1,1,2,1,5,1,4,2}, {4,2,1,1,2,3,2,2}, {2,1,2,2,1,3,4,2}},
592
  {{1,2,1,2,4,2,4,1}, {3,2,1,1,2,4,1,3}, {1,1,2,2,1,4,3,3}},
593
  {{1,1,2,1,5,2,4,1}, {4,2,1,1,2,4,2,1}, {2,1,2,2,1,4,4,1}},
594
  {{3,1,2,2,1,1,2,5}, {3,2,1,1,2,5,1,2}, {1,1,2,2,1,5,3,2}},
595
  {{4,1,2,2,1,1,3,3}, {3,2,1,1,2,6,1,1}, {1,1,2,2,1,6,3,1}},
596
  {{5,1,2,2,1,1,4,1}, {2,2,1,1,3,1,1,6}, {1,2,1,3,1,1,4,4}},
597
  {{2,1,2,2,1,2,1,6}, {3,2,1,1,3,1,2,4}, {2,2,1,3,1,1,5,2}},
598
  {{3,1,2,2,1,2,2,4}, {4,2,1,1,3,1,3,2}, {1,1,2,2,2,1,4,4}},
599
  {{4,1,2,2,1,2,3,2}, {2,2,1,1,3,2,1,5}, {1,2,1,3,1,2,4,3}},
600
  {{2,1,2,2,1,3,1,5}, {3,2,1,1,3,2,2,3}, {2,2,1,3,1,2,5,1}},
601
  {{3,1,2,2,1,3,2,3}, {4,2,1,1,3,2,3,1}, {1,1,2,2,2,2,4,3}},
602
  {{4,1,2,2,1,3,3,1}, {2,2,1,1,3,3,1,4}, {2,1,2,2,2,2,5,1}},
603
  {{2,1,2,2,1,4,1,4}, {3,2,1,1,3,3,2,2}, {1,1,2,2,2,3,4,2}},
604
  {{3,1,2,2,1,4,2,2}, {2,2,1,1,3,4,1,3}, {1,2,1,3,1,4,4,1}},
605
  {{2,1,2,2,1,5,1,3}, {3,2,1,1,3,4,2,1}, {1,1,2,2,2,4,4,1}},
606
  {{2,1,2,2,1,6,1,2}, {2,2,1,1,3,5,1,2}, {6,2,1,3,2,1,1,1}},
607
  {{2,2,1,3,1,1,2,5}, {2,2,1,1,3,6,1,1}, {1,2,1,3,2,1,5,2}},
608
  {{3,2,1,3,1,1,3,3}, {1,2,1,1,4,1,1,6}, {6,1,2,2,3,1,1,1}},
609
  {{4,2,1,3,1,1,4,1}, {2,2,1,1,4,1,2,4}, {1,1,2,2,3,1,5,2}},
610
  {{2,1,2,2,2,1,2,5}, {3,2,1,1,4,1,3,2}, {1,2,1,3,2,2,5,1}},
611
  {{2,2,1,3,1,2,2,4}, {1,2,1,1,4,2,1,5}, {1,1,2,2,3,2,5,1}},
612
  {{3,2,1,3,1,2,3,2}, {2,2,1,1,4,2,2,3}, {5,2,1,3,3,1,1,1}},
613
  {{1,1,2,2,2,2,1,6}, {3,2,1,1,4,2,3,1}, {5,1,2,2,4,1,1,1}},
614
  {{1,2,1,3,1,3,1,5}, {1,2,1,1,4,3,1,4}, {4,2,1,3,4,1,1,1}},
615
  {{3,1,2,2,2,2,3,2}, {2,2,1,1,4,3,2,2}, {4,1,2,2,5,1,1,1}},
616
  {{3,2,1,3,1,3,3,1}, {1,2,1,1,4,4,1,3}, {3,2,1,3,5,1,1,1}},
617
  {{1,1,2,2,2,3,1,5}, {2,2,1,1,4,4,2,1}, {3,1,2,2,6,1,1,1}},
618
  {{1,2,1,3,1,4,1,4}, {1,2,1,1,4,5,1,2}, {2,2,1,3,6,1,1,1}},
619
  {{2,2,1,3,1,4,2,2}, {1,2,1,1,5,1,2,4}, {1,1,2,3,1,1,3,5}},
620
  {{1,1,2,2,2,4,1,4}, {2,2,1,1,5,1,3,2}, {2,1,2,3,1,1,4,3}},
621
  {{2,1,2,2,2,4,2,2}, {1,2,1,1,5,2,2,3}, {3,1,2,3,1,1,5,1}},
622
  {{2,2,1,3,1,5,2,1}, {2,2,1,1,5,2,3,1}, {1,1,2,3,1,2,3,4}},
623
  {{1,2,1,3,1,6,1,2}, {1,2,1,1,5,3,2,2}, {2,1,2,3,1,2,4,2}},
624
  {{1,2,1,3,2,1,2,5}, {1,2,1,1,5,4,2,1}, {1,1,2,3,1,3,3,3}},
625
  {{2,2,1,3,2,1,3,3}, {1,2,1,1,6,1,3,2}, {2,1,2,3,1,3,4,1}},
626
  {{3,2,1,3,2,1,4,1}, {1,2,1,1,6,2,3,1}, {1,1,2,3,1,4,3,2}},
627
  {{1,1,2,2,3,1,2,5}, {5,1,2,1,1,1,1,5}, {1,1,2,3,1,5,3,1}},
628
  {{1,2,1,3,2,2,2,4}, {6,1,2,1,1,1,2,3}, {1,2,1,4,1,1,4,3}},
629
  {{2,2,1,3,2,2,3,2}, {1,1,2,1,1,1,6,4}, {2,2,1,4,1,1,5,1}},
630
  {{1,1,2,2,3,2,2,4}, {5,1,2,1,1,2,1,4}, {1,1,2,3,2,1,4,3}},
631
  {{2,1,2,2,3,2,3,2}, {6,1,2,1,1,2,2,2}, {1,2,1,4,1,2,4,2}},
632
  {{2,2,1,3,2,3,3,1}, {1,1,2,1,1,2,6,3}, {1,1,2,3,2,2,4,2}},
633
  {{1,1,2,2,3,3,2,3}, {5,1,2,1,1,3,1,3}, {1,2,1,4,1,3,4,1}},
634
  {{1,2,1,3,2,4,2,2}, {6,1,2,1,1,3,2,1}, {1,1,2,3,2,3,4,1}},
635
  {{1,2,1,3,2,5,2,1}, {1,1,2,1,1,3,6,2}, {1,2,1,4,2,1,5,1}},
636
  {{1,2,1,3,3,1,3,3}, {5,1,2,1,1,4,1,2}, {1,1,2,3,3,1,5,1}},
637
  {{2,2,1,3,3,1,4,1}, {5,1,2,1,1,5,1,1}, {1,1,2,4,1,1,3,4}},
638
  {{1,1,2,2,4,1,3,3}, {4,2,1,2,1,1,1,5}, {2,1,2,4,1,1,4,2}},
639
  {{1,2,1,3,3,2,3,2}, {5,2,1,2,1,1,2,3}, {1,1,2,4,1,2,3,3}},
640
  {{1,1,2,2,4,2,3,2}, {6,2,1,2,1,1,3,1}, {2,1,2,4,1,2,4,1}},
641
  {{1,2,1,3,3,3,3,1}, {4,1,2,1,2,1,1,5}, {1,1,2,4,1,3,3,2}},
642
  {{1,1,2,2,4,3,3,1}, {4,2,1,2,1,2,1,4}, {1,1,2,4,1,4,3,1}},
643
  {{1,1,2,2,5,1,4,1}, {6,1,2,1,2,1,3,1}, {1,2,1,5,1,1,4,2}},
644
  {{2,1,2,3,1,1,1,6}, {4,1,2,1,2,2,1,4}, {1,1,2,4,2,1,4,2}},
645
  {{3,1,2,3,1,1,2,4}, {5,1,2,1,2,2,2,2}, {1,2,1,5,1,2,4,1}},
646
  {{4,1,2,3,1,1,3,2}, {5,2,1,2,1,3,2,1}, {1,1,2,4,2,2,4,1}},
647
  {{2,1,2,3,1,2,1,5}, {4,1,2,1,2,3,1,3}, {1,1,2,5,1,1,3,3}},
648
  {{3,1,2,3,1,2,2,3}, {4,2,1,2,1,4,1,2}, {2,1,2,5,1,1,4,1}},
649
  {{4,1,2,3,1,2,3,1}, {4,1,2,1,2,4,1,2}, {1,1,2,5,1,2,3,2}},
650
  {{2,1,2,3,1,3,1,4}, {4,2,1,2,1,5,1,1}, {1,1,2,5,1,3,3,1}},
651
  {{3,1,2,3,1,3,2,2}, {4,1,2,1,2,5,1,1}, {1,2,1,6,1,1,4,1}},
652
  {{2,1,2,3,1,4,1,3}, {3,2,1,2,2,1,1,5}, {1,1,2,5,2,1,4,1}},
653
  {{3,1,2,3,1,4,2,1}, {4,2,1,2,2,1,2,3}, {1,1,2,6,1,1,3,2}},
654
  {{2,1,2,3,1,5,1,2}, {5,2,1,2,2,1,3,1}, {1,1,2,6,1,2,3,1}},
655
  {{2,1,2,3,1,6,1,1}, {3,1,2,1,3,1,1,5}, {1,3,1,1,1,1,4,5}},
656
  {{1,2,1,4,1,1,1,6}, {3,2,1,2,2,2,1,4}, {2,3,1,1,1,1,5,3}},
657
  {{2,2,1,4,1,1,2,4}, {4,2,1,2,2,2,2,2}, {3,3,1,1,1,1,6,1}},
658
  {{3,2,1,4,1,1,3,2}, {3,1,2,1,3,2,1,4}, {1,3,1,1,1,2,4,4}},
659
  {{1,1,2,3,2,1,1,6}, {4,1,2,1,3,2,2,2}, {2,3,1,1,1,2,5,2}},
660
  {{1,2,1,4,1,2,1,5}, {4,2,1,2,2,3,2,1}, {1,3,1,1,1,3,4,3}},
661
  {{2,2,1,4,1,2,2,3}, {3,1,2,1,3,3,1,3}, {2,3,1,1,1,3,5,1}},
662
  {{3,2,1,4,1,2,3,1}, {3,2,1,2,2,4,1,2}, {1,3,1,1,1,4,4,2}},
663
  {{1,1,2,3,2,2,1,5}, {3,1,2,1,3,4,1,2}, {1,3,1,1,1,5,4,1}},
664
  {{2,1,2,3,2,2,2,3}, {3,2,1,2,2,5,1,1}, {6,3,1,1,2,1,1,2}},
665
  {{3,1,2,3,2,2,3,1}, {3,1,2,1,3,5,1,1}, {1,3,1,1,2,1,5,3}},
666
  {{1,1,2,3,2,3,1,4}, {2,2,1,2,3,1,1,5}, {2,3,1,1,2,1,6,1}},
667
  {{1,2,1,4,1,4,1,3}, {3,2,1,2,3,1,2,3}, {6,3,1,1,2,2,1,1}},
668
  {{2,2,1,4,1,4,2,1}, {4,2,1,2,3,1,3,1}, {1,3,1,1,2,2,5,2}},
669
  {{1,1,2,3,2,4,1,3}, {2,1,2,1,4,1,1,5}, {1,3,1,1,2,3,5,1}},
670
  {{2,1,2,3,2,4,2,1}, {2,2,1,2,3,2,1,4}, {5,3,1,1,3,1,1,2}},
671
  {{1,1,2,3,2,5,1,2}, {3,2,1,2,3,2,2,2}, {1,3,1,1,3,1,6,1}},
672
  {{1,2,1,4,2,1,2,4}, {2,1,2,1,4,2,1,4}, {5,3,1,1,3,2,1,1}},
673
  {{2,2,1,4,2,1,3,2}, {3,1,2,1,4,2,2,2}, {4,3,1,1,4,1,1,2}},
674
  {{1,1,2,3,3,1,2,4}, {3,2,1,2,3,3,2,1}, {4,3,1,1,4,2,1,1}},
675
  {{1,2,1,4,2,2,2,3}, {2,1,2,1,4,3,1,3}, {3,3,1,1,5,1,1,2}},
676
  {{2,2,1,4,2,2,3,1}, {2,2,1,2,3,4,1,2}, {3,3,1,1,5,2,1,1}},
677
  {{1,1,2,3,3,2,2,3}, {2,1,2,1,4,4,1,2}, {2,3,1,1,6,1,1,2}},
678
  {{2,1,2,3,3,2,3,1}, {2,2,1,2,3,5,1,1}, {2,3,1,1,6,2,1,1}},
679
  {{1,1,2,3,3,3,2,2}, {2,1,2,1,4,5,1,1}, {1,2,2,1,1,1,3,6}},
680
  {{1,2,1,4,2,4,2,1}, {1,2,1,2,4,1,1,5}, {2,2,2,1,1,1,4,4}},
681
  {{1,1,2,3,3,4,2,1}, {2,2,1,2,4,1,2,3}, {3,2,2,1,1,1,5,2}},
682
  {{1,1,2,3,4,1,3,2}, {3,2,1,2,4,1,3,1}, {1,2,2,1,1,2,3,5}},
683
  {{1,1,2,3,4,2,3,1}, {1,1,2,1,5,1,1,5}, {2,2,2,1,1,2,4,3}},
684
  {{2,1,2,4,1,1,1,5}, {1,2,1,2,4,2,1,4}, {3,2,2,1,1,2,5,1}},
685
  {{3,1,2,4,1,1,2,3}, {2,2,1,2,4,2,2,2}, {1,2,2,1,1,3,3,4}},
686
  {{4,1,2,4,1,1,3,1}, {1,1,2,1,5,2,1,4}, {2,2,2,1,1,3,4,2}},
687
  {{2,1,2,4,1,2,1,4}, {2,1,2,1,5,2,2,2}, {1,2,2,1,1,4,3,3}},
688
  {{3,1,2,4,1,2,2,2}, {2,2,1,2,4,3,2,1}, {2,2,2,1,1,4,4,1}},
689
  {{2,1,2,4,1,3,1,3}, {1,1,2,1,5,3,1,3}, {1,2,2,1,1,5,3,2}},
690
  {{3,1,2,4,1,3,2,1}, {1,2,1,2,4,4,1,2}, {1,2,2,1,1,6,3,1}},
691
  {{2,1,2,4,1,4,1,2}, {1,1,2,1,5,4,1,2}, {1,3,1,2,1,1,4,4}},
692
  {{2,1,2,4,1,5,1,1}, {1,2,1,2,4,5,1,1}, {2,3,1,2,1,1,5,2}},
693
  {{1,2,1,5,1,1,1,5}, {1,2,1,2,5,1,2,3}, {1,2,2,1,2,1,4,4}},
694
  {{2,2,1,5,1,1,2,3}, {2,2,1,2,5,1,3,1}, {1,3,1,2,1,2,4,3}},
695
  {{3,2,1,5,1,1,3,1}, {1,1,2,1,6,1,2,3}, {2,3,1,2,1,2,5,1}},
696
  {{1,1,2,4,2,1,1,5}, {1,2,1,2,5,2,2,2}, {1,2,2,1,2,2,4,3}},
697
  {{1,2,1,5,1,2,1,4}, {1,1,2,1,6,2,2,2}, {2,2,2,1,2,2,5,1}},
698
  {{2,2,1,5,1,2,2,2}, {1,2,1,2,5,3,2,1}, {1,2,2,1,2,3,4,2}},
699
  {{1,1,2,4,2,2,1,4}, {1,1,2,1,6,3,2,1}, {1,3,1,2,1,4,4,1}},
700
  {{2,1,2,4,2,2,2,2}, {1,2,1,2,6,1,3,1}, {1,2,2,1,2,4,4,1}},
701
  {{2,2,1,5,1,3,2,1}, {5,1,2,2,1,1,1,4}, {6,3,1,2,2,1,1,1}},
702
  {{1,1,2,4,2,3,1,3}, {6,1,2,2,1,1,2,2}, {1,3,1,2,2,1,5,2}},
703
  {{1,2,1,5,1,4,1,2}, {1,1,2,2,1,1,6,3}, {6,2,2,1,3,1,1,1}},
704
  {{1,1,2,4,2,4,1,2}, {5,1,2,2,1,2,1,3}, {1,2,2,1,3,1,5,2}},
705
  {{1,2,1,5,1,5,1,1}, {6,1,2,2,1,2,2,1}, {1,3,1,2,2,2,5,1}},
706
  {{1,2,1,5,2,1,2,3}, {1,1,2,2,1,2,6,2}, {1,2,2,1,3,2,5,1}},
707
  {{1,1,2,4,3,1,2,3}, {5,1,2,2,1,3,1,2}, {5,3,1,2,3,1,1,1}},
708
  {{1,1,2,4,3,2,2,2}, {1,1,2,2,1,3,6,1}, {5,2,2,1,4,1,1,1}},
709
  {{1,1,2,4,3,3,2,1}, {5,1,2,2,1,4,1,1}, {4,3,1,2,4,1,1,1}},
710
  {{3,1,2,5,1,1,2,2}, {4,2,1,3,1,1,1,4}, {4,2,2,1,5,1,1,1}},
711
  {{3,1,2,5,1,2,2,1}, {5,2,1,3,1,1,2,2}, {3,3,1,2,5,1,1,1}},
712
  {{2,1,2,5,1,4,1,1}, {4,1,2,2,2,1,1,4}, {3,2,2,1,6,1,1,1}},
713
  {{2,2,1,6,1,1,2,2}, {4,2,1,3,1,2,1,3}, {2,3,1,2,6,1,1,1}},
714
  {{1,2,1,6,1,2,1,3}, {5,2,1,3,1,2,2,1}, {2,1,3,1,1,1,3,5}},
715
  {{1,1,2,5,2,2,1,3}, {4,1,2,2,2,2,1,3}, {3,1,3,1,1,1,4,3}},
716
  {{1,1,2,5,2,3,1,2}, {5,1,2,2,2,2,2,1}, {4,1,3,1,1,1,5,1}},
717
  {{1,1,2,5,2,4,1,1}, {4,1,2,2,2,3,1,2}, {1,1,3,1,1,2,2,6}},
718
  {{2,3,1,1,1,1,2,6}, {4,2,1,3,1,4,1,1}, {2,1,3,1,1,2,3,4}},
719
  {{3,3,1,1,1,1,3,4}, {4,1,2,2,2,4,1,1}, {3,1,3,1,1,2,4,2}},
720
  {{4,3,1,1,1,1,4,2}, {3,2,1,3,2,1,1,4}, {1,1,3,1,1,3,2,5}},
721
  {{2,3,1,1,1,2,2,5}, {4,2,1,3,2,1,2,2}, {2,1,3,1,1,3,3,3}},
722
  {{3,3,1,1,1,2,3,3}, {3,1,2,2,3,1,1,4}, {3,1,3,1,1,3,4,1}},
723
  {{1,3,1,1,1,3,1,6}, {3,2,1,3,2,2,1,3}, {1,1,3,1,1,4,2,4}},
724
  {{2,3,1,1,1,3,2,4}, {4,2,1,3,2,2,2,1}, {2,1,3,1,1,4,3,2}},
725
  {{3,3,1,1,1,3,3,2}, {3,1,2,2,3,2,1,3}, {1,1,3,1,1,5,2,3}},
726
  {{1,3,1,1,1,4,1,5}, {4,1,2,2,3,2,2,1}, {2,1,3,1,1,5,3,1}},
727
  {{2,3,1,1,1,4,2,3}, {3,1,2,2,3,3,1,2}, {1,1,3,1,1,6,2,2}},
728
  {{1,3,1,1,1,5,1,4}, {3,2,1,3,2,4,1,1}, {1,2,2,2,1,1,3,5}},
729
  {{1,3,1,1,1,6,1,3}, {3,1,2,2,3,4,1,1}, {2,2,2,2,1,1,4,3}},
730
  {{1,3,1,1,2,1,2,6}, {2,2,1,3,3,1,1,4}, {3,2,2,2,1,1,5,1}},
731
  {{2,3,1,1,2,1,3,4}, {3,2,1,3,3,1,2,2}, {1,1,3,1,2,1,3,5}},
732
  {{3,3,1,1,2,1,4,2}, {2,1,2,2,4,1,1,4}, {1,2,2,2,1,2,3,4}},
733
  {{1,3,1,1,2,2,2,5}, {2,2,1,3,3,2,1,3}, {2,2,2,2,1,2,4,2}},
734
  {{2,3,1,1,2,2,3,3}, {3,2,1,3,3,2,2,1}, {1,1,3,1,2,2,3,4}},
735
  {{3,3,1,1,2,2,4,1}, {2,1,2,2,4,2,1,3}, {2,1,3,1,2,2,4,2}},
736
  {{1,3,1,1,2,3,2,4}, {3,1,2,2,4,2,2,1}, {2,2,2,2,1,3,4,1}},
737
  {{2,3,1,1,2,3,3,2}, {2,1,2,2,4,3,1,2}, {1,1,3,1,2,3,3,3}},
738
  {{1,3,1,1,2,4,2,3}, {2,2,1,3,3,4,1,1}, {1,2,2,2,1,4,3,2}},
739
  {{1,3,1,1,2,5,2,2}, {2,1,2,2,4,4,1,1}, {1,1,3,1,2,4,3,2}},
740
  {{1,3,1,1,3,1,3,4}, {1,2,1,3,4,1,1,4}, {1,2,2,2,1,5,3,1}},
741
  {{2,3,1,1,3,1,4,2}, {2,2,1,3,4,1,2,2}, {1,1,3,1,2,5,3,1}},
742
  {{1,3,1,1,3,2,3,3}, {1,1,2,2,5,1,1,4}, {1,3,1,3,1,1,4,3}},
743
  {{2,3,1,1,3,2,4,1}, {1,2,1,3,4,2,1,3}, {2,3,1,3,1,1,5,1}},
744
  {{1,3,1,1,3,3,3,2}, {2,2,1,3,4,2,2,1}, {1,2,2,2,2,1,4,3}},
745
  {{1,3,1,1,4,1,4,2}, {1,1,2,2,5,2,1,3}, {1,3,1,3,1,2,4,2}},
746
  {{1,3,1,1,4,2,4,1}, {2,1,2,2,5,2,2,1}, {1,1,3,1,3,1,4,3}},
747
  {{3,2,2,1,1,1,2,5}, {1,1,2,2,5,3,1,2}, {1,2,2,2,2,2,4,2}},
748
  {{4,2,2,1,1,1,3,3}, {1,2,1,3,4,4,1,1}, {1,3,1,3,1,3,4,1}},
749
  {{5,2,2,1,1,1,4,1}, {1,1,2,2,5,4,1,1}, {1,1,3,1,3,2,4,2}},
750
  {{2,2,2,1,1,2,1,6}, {1,2,1,3,5,1,2,2}, {1,2,2,2,2,3,4,1}},
751
  {{3,2,2,1,1,2,2,4}, {1,1,2,2,6,1,2,2}, {1,1,3,1,3,3,4,1}},
752
  {{4,2,2,1,1,2,3,2}, {1,2,1,3,5,2,2,1}, {1,3,1,3,2,1,5,1}},
753
  {{2,2,2,1,1,3,1,5}, {1,1,2,2,6,2,2,1}, {1,2,2,2,3,1,5,1}},
754
  {{3,2,2,1,1,3,2,3}, {5,1,2,3,1,1,1,3}, {1,1,3,1,4,1,5,1}},
755
  {{4,2,2,1,1,3,3,1}, {6,1,2,3,1,1,2,1}, {1,1,3,2,1,1,2,6}},
756
  {{2,2,2,1,1,4,1,4}, {1,1,2,3,1,1,6,2}, {2,1,3,2,1,1,3,4}},
757
  {{3,2,2,1,1,4,2,2}, {5,1,2,3,1,2,1,2}, {3,1,3,2,1,1,4,2}},
758
  {{2,2,2,1,1,5,1,3}, {1,1,2,3,1,2,6,1}, {1,1,3,2,1,2,2,5}},
759
  {{3,2,2,1,1,5,2,1}, {5,1,2,3,1,3,1,1}, {2,1,3,2,1,2,3,3}},
760
  {{2,3,1,2,1,1,2,5}, {4,2,1,4,1,1,1,3}, {3,1,3,2,1,2,4,1}},
761
  {{3,3,1,2,1,1,3,3}, {5,2,1,4,1,1,2,1}, {1,1,3,2,1,3,2,4}},
762
  {{4,3,1,2,1,1,4,1}, {4,1,2,3,2,1,1,3}, {2,1,3,2,1,3,3,2}},
763
  {{2,2,2,1,2,1,2,5}, {5,1,2,3,2,1,2,1}, {1,1,3,2,1,4,2,3}},
764
  {{2,3,1,2,1,2,2,4}, {4,1,2,3,2,2,1,2}, {2,1,3,2,1,4,3,1}},
765
  {{3,3,1,2,1,2,3,2}, {4,2,1,4,1,3,1,1}, {1,1,3,2,1,5,2,2}},
766
  {{1,2,2,1,2,2,1,6}, {4,1,2,3,2,3,1,1}, {1,1,3,2,1,6,2,1}},
767
  {{1,3,1,2,1,3,1,5}, {3,2,1,4,2,1,1,3}, {1,2,2,3,1,1,3,4}},
768
  {{3,2,2,1,2,2,3,2}, {4,2,1,4,2,1,2,1}, {2,2,2,3,1,1,4,2}},
769
  {{3,3,1,2,1,3,3,1}, {3,1,2,3,3,1,1,3}, {1,1,3,2,2,1,3,4}},
770
  {{1,2,2,1,2,3,1,5}, {3,2,1,4,2,2,1,2}, {1,2,2,3,1,2,3,3}},
771
  {{2,2,2,1,2,3,2,3}, {3,1,2,3,3,2,1,2}, {2,2,2,3,1,2,4,1}},
772
  {{2,3,1,2,1,4,2,2}, {3,2,1,4,2,3,1,1}, {1,1,3,2,2,2,3,3}},
773
  {{1,2,2,1,2,4,1,4}, {3,1,2,3,3,3,1,1}, {2,1,3,2,2,2,4,1}},
774
  {{1,3,1,2,1,5,1,3}, {2,2,1,4,3,1,1,3}, {1,1,3,2,2,3,3,2}},
775
  {{1,2,2,1,2,5,1,3}, {3,2,1,4,3,1,2,1}, {1,2,2,3,1,4,3,1}},
776
  {{1,3,1,2,2,1,2,5}, {2,1,2,3,4,1,1,3}, {1,1,3,2,2,4,3,1}},
777
  {{2,3,1,2,2,1,3,3}, {3,1,2,3,4,1,2,1}, {1,3,1,4,1,1,4,2}},
778
  {{3,3,1,2,2,1,4,1}, {2,1,2,3,4,2,1,2}, {1,2,2,3,2,1,4,2}},
779
  {{1,2,2,1,3,1,2,5}, {2,2,1,4,3,3,1,1}, {1,3,1,4,1,2,4,1}},
780
  {{1,3,1,2,2,2,2,4}, {2,1,2,3,4,3,1,1}, {1,1,3,2,3,1,4,2}},
781
  {{3,2,2,1,3,1,4,1}, {1,2,1,4,4,1,1,3}, {1,2,2,3,2,2,4,1}},
782
  {{1,2,2,1,3,2,2,4}, {2,2,1,4,4,1,2,1}, {1,1,3,2,3,2,4,1}},
783
  {{2,2,2,1,3,2,3,2}, {1,1,2,3,5,1,1,3}, {1,1,3,3,1,1,2,5}},
784
  {{2,3,1,2,2,3,3,1}, {1,2,1,4,4,2,1,2}, {2,1,3,3,1,1,3,3}},
785
  {{1,2,2,1,3,3,2,3}, {1,1,2,3,5,2,1,2}, {3,1,3,3,1,1,4,1}},
786
  {{1,3,1,2,2,4,2,2}, {1,2,1,4,4,3,1,1}, {1,1,3,3,1,2,2,4}},
787
  {{1,2,2,1,3,4,2,2}, {1,1,2,3,5,3,1,1}, {2,1,3,3,1,2,3,2}},
788
  {{1,3,1,2,3,1,3,3}, {1,2,1,4,5,1,2,1}, {1,1,3,3,1,3,2,3}},
789
  {{2,3,1,2,3,1,4,1}, {1,1,2,3,6,1,2,1}, {2,1,3,3,1,3,3,1}},
790
  {{1,2,2,1,4,1,3,3}, {5,1,2,4,1,1,1,2}, {1,1,3,3,1,4,2,2}},
791
  {{1,3,1,2,3,2,3,2}, {1,1,2,4,1,1,6,1}, {1,1,3,3,1,5,2,1}},
792
  {{1,2,2,1,4,2,3,2}, {5,1,2,4,1,2,1,1}, {1,2,2,4,1,1,3,3}},
793
  {{1,3,1,2,3,3,3,1}, {4,2,1,5,1,1,1,2}, {2,2,2,4,1,1,4,1}},
794
  {{1,3,1,2,4,1,4,1}, {4,1,2,4,2,1,1,2}, {1,1,3,3,2,1,3,3}},
795
  {{1,2,2,1,5,1,4,1}, {4,2,1,5,1,2,1,1}, {1,2,2,4,1,2,3,2}},
796
  {{3,1,3,1,1,1,1,6}, {4,1,2,4,2,2,1,1}, {1,1,3,3,2,2,3,2}},
797
  {{4,1,3,1,1,1,2,4}, {3,2,1,5,2,1,1,2}, {1,2,2,4,1,3,3,1}},
798
  {{5,1,3,1,1,1,3,2}, {3,1,2,4,3,1,1,2}, {1,1,3,3,2,3,3,1}},
799
  {{3,1,3,1,1,2,1,5}, {3,2,1,5,2,2,1,1}, {1,3,1,5,1,1,4,1}},
800
  {{4,1,3,1,1,2,2,3}, {3,1,2,4,3,2,1,1}, {1,2,2,4,2,1,4,1}},
801
  {{5,1,3,1,1,2,3,1}, {2,2,1,5,3,1,1,2}, {1,1,3,3,3,1,4,1}},
802
  {{3,1,3,1,1,3,1,4}, {2,1,2,4,4,1,1,2}, {1,1,3,4,1,1,2,4}},
803
  {{4,1,3,1,1,3,2,2}, {2,2,1,5,3,2,1,1}, {2,1,3,4,1,1,3,2}},
804
  {{3,1,3,1,1,4,1,3}, {2,1,2,4,4,2,1,1}, {1,1,3,4,1,2,2,3}},
805
  {{4,1,3,1,1,4,2,1}, {1,2,1,5,4,1,1,2}, {2,1,3,4,1,2,3,1}},
806
  {{3,1,3,1,1,5,1,2}, {1,1,2,4,5,1,1,2}, {1,1,3,4,1,3,2,2}},
807
  {{2,2,2,2,1,1,1,6}, {1,2,1,5,4,2,1,1}, {1,1,3,4,1,4,2,1}},
808
  {{3,2,2,2,1,1,2,4}, {1,1,2,4,5,2,1,1}, {1,2,2,5,1,1,3,2}},
809
  {{4,2,2,2,1,1,3,2}, {5,1,2,5,1,1,1,1}, {1,1,3,4,2,1,3,2}},
810
  {{2,1,3,1,2,1,1,6}, {4,2,1,6,1,1,1,1}, {1,2,2,5,1,2,3,1}},
811
  {{2,2,2,2,1,2,1,5}, {4,1,2,5,2,1,1,1}, {1,1,3,4,2,2,3,1}},
812
  {{4,1,3,1,2,1,3,2}, {3,2,1,6,2,1,1,1}, {1,1,3,5,1,1,2,3}},
813
  {{4,2,2,2,1,2,3,1}, {3,1,2,5,3,1,1,1}, {2,1,3,5,1,1,3,1}},
814
  {{2,1,3,1,2,2,1,5}, {2,2,1,6,3,1,1,1}, {1,1,3,5,1,2,2,2}},
815
  {{3,1,3,1,2,2,2,3}, {2,1,2,5,4,1,1,1}, {1,1,3,5,1,3,2,1}},
816
  {{4,1,3,1,2,2,3,1}, {4,3,1,1,1,1,1,5}, {1,2,2,6,1,1,3,1}},
817
  {{2,1,3,1,2,3,1,4}, {5,3,1,1,1,1,2,3}, {1,1,3,5,2,1,3,1}},
818
  {{2,2,2,2,1,4,1,3}, {6,3,1,1,1,1,3,1}, {1,1,3,6,1,1,2,2}},
819
  {{3,2,2,2,1,4,2,1}, {4,3,1,1,1,2,1,4}, {1,1,3,6,1,2,2,1}},
820
  {{2,1,3,1,2,4,1,3}, {5,3,1,1,1,2,2,2}, {1,4,1,1,1,1,4,4}},
821
  {{3,1,3,1,2,4,2,1}, {4,3,1,1,1,3,1,3}, {2,4,1,1,1,1,5,2}},
822
  {{2,2,2,2,1,6,1,1}, {5,3,1,1,1,3,2,1}, {1,4,1,1,1,2,4,3}},
823
  {{1,3,1,3,1,1,1,6}, {4,3,1,1,1,4,1,2}, {2,4,1,1,1,2,5,1}},
824
  {{2,3,1,3,1,1,2,4}, {4,3,1,1,1,5,1,1}, {1,4,1,1,1,3,4,2}},
825
  {{3,3,1,3,1,1,3,2}, {3,3,1,1,2,1,1,5}, {1,4,1,1,1,4,4,1}},
826
  {{1,2,2,2,2,1,1,6}, {4,3,1,1,2,1,2,3}, {1,4,1,1,2,1,5,2}},
827
  {{1,3,1,3,1,2,1,5}, {5,3,1,1,2,1,3,1}, {1,4,1,1,2,2,5,1}},
828
  {{2,3,1,3,1,2,2,3}, {3,3,1,1,2,2,1,4}, {5,4,1,1,3,1,1,1}},
829
  {{3,3,1,3,1,2,3,1}, {4,3,1,1,2,2,2,2}, {4,4,1,1,4,1,1,1}},
830
  {{1,1,3,1,3,1,1,6}, {3,3,1,1,2,3,1,3}, {3,4,1,1,5,1,1,1}},
831
  {{1,2,2,2,2,2,1,5}, {4,3,1,1,2,3,2,1}, {2,4,1,1,6,1,1,1}},
832
  {{2,2,2,2,2,2,2,3}, {3,3,1,1,2,4,1,2}, {1,3,2,1,1,1,3,5}},
833
  {{3,2,2,2,2,2,3,1}, {3,3,1,1,2,5,1,1}, {2,3,2,1,1,1,4,3}},
834
  {{1,1,3,1,3,2,1,5}, {2,3,1,1,3,1,1,5}, {3,3,2,1,1,1,5,1}},
835
  {{2,1,3,1,3,2,2,3}, {3,3,1,1,3,1,2,3}, {1,3,2,1,1,2,3,4}},
836
  {{3,1,3,1,3,2,3,1}, {4,3,1,1,3,1,3,1}, {2,3,2,1,1,2,4,2}},
837
  {{2,3,1,3,1,4,2,1}, {2,3,1,1,3,2,1,4}, {1,3,2,1,1,3,3,3}},
838
  {{1,1,3,1,3,3,1,4}, {3,3,1,1,3,2,2,2}, {2,3,2,1,1,3,4,1}},
839
  {{1,2,2,2,2,4,1,3}, {2,3,1,1,3,3,1,3}, {1,3,2,1,1,4,3,2}},
840
  {{2,2,2,2,2,4,2,1}, {3,3,1,1,3,3,2,1}, {1,3,2,1,1,5,3,1}},
841
  {{1,1,3,1,3,4,1,3}, {2,3,1,1,3,4,1,2}, {1,4,1,2,1,1,4,3}},
842
  {{1,3,1,3,1,6,1,1}, {2,3,1,1,3,5,1,1}, {2,4,1,2,1,1,5,1}},
843
  {{1,3,1,3,2,1,2,4}, {1,3,1,1,4,1,1,5}, {1,3,2,1,2,1,4,3}},
844
  {{2,3,1,3,2,1,3,2}, {2,3,1,1,4,1,2,3}, {1,4,1,2,1,2,4,2}},
845
  {{1,2,2,2,3,1,2,4}, {3,3,1,1,4,1,3,1}, {1,3,2,1,2,2,4,2}},
846
  {{1,3,1,3,2,2,2,3}, {1,3,1,1,4,2,1,4}, {1,4,1,2,1,3,4,1}},
847
  {{2,3,1,3,2,2,3,1}, {2,3,1,1,4,2,2,2}, {1,3,2,1,2,3,4,1}},
848
  {{1,1,3,1,4,1,2,4}, {1,3,1,1,4,3,1,3}, {1,4,1,2,2,1,5,1}},
849
  {{1,2,2,2,3,2,2,3}, {2,3,1,1,4,3,2,1}, {1,3,2,1,3,1,5,1}},
850
  {{2,2,2,2,3,2,3,1}, {1,3,1,1,4,4,1,2}, {1,2,3,1,1,1,2,6}},
851
  {{1,1,3,1,4,2,2,3}, {1,3,1,1,4,5,1,1}, {2,2,3,1,1,1,3,4}},
852
  {{2,1,3,1,4,2,3,1}, {1,3,1,1,5,1,2,3}, {3,2,3,1,1,1,4,2}},
853
  {{1,3,1,3,2,4,2,1}, {2,3,1,1,5,1,3,1}, {1,2,3,1,1,2,2,5}},
854
  {{1,2,2,2,3,4,2,1}, {1,3,1,1,5,2,2,2}, {2,2,3,1,1,2,3,3}},
855
  {{1,3,1,3,3,1,3,2}, {1,3,1,1,5,3,2,1}, {3,2,3,1,1,2,4,1}},
856
  {{1,2,2,2,4,1,3,2}, {1,3,1,1,6,1,3,1}, {1,2,3,1,1,3,2,4}},
857
  {{1,3,1,3,3,2,3,1}, {5,2,2,1,1,1,1,4}, {2,2,3,1,1,3,3,2}},
858
  {{1,1,3,1,5,1,3,2}, {6,2,2,1,1,1,2,2}, {1,2,3,1,1,4,2,3}},
859
  {{1,2,2,2,4,2,3,1}, {1,2,2,1,1,1,6,3}, {2,2,3,1,1,4,3,1}},
860
  {{3,1,3,2,1,1,1,5}, {5,2,2,1,1,2,1,3}, {1,2,3,1,1,5,2,2}},
861
  {{4,1,3,2,1,1,2,3}, {6,2,2,1,1,2,2,1}, {1,2,3,1,1,6,2,1}},
862
  {{5,1,3,2,1,1,3,1}, {1,2,2,1,1,2,6,2}, {1,3,2,2,1,1,3,4}},
863
  {{3,1,3,2,1,2,1,4}, {5,2,2,1,1,3,1,2}, {2,3,2,2,1,1,4,2}},
864
  {{4,1,3,2,1,2,2,2}, {1,2,2,1,1,3,6,1}, {1,2,3,1,2,1,3,4}},
865
  {{3,1,3,2,1,3,1,3}, {5,2,2,1,1,4,1,1}, {1,3,2,2,1,2,3,3}},
866
  {{4,1,3,2,1,3,2,1}, {4,3,1,2,1,1,1,4}, {2,3,2,2,1,2,4,1}},
867
  {{3,1,3,2,1,4,1,2}, {5,3,1,2,1,1,2,2}, {1,2,3,1,2,2,3,3}},
868
  {{3,1,3,2,1,5,1,1}, {4,2,2,1,2,1,1,4}, {1,3,2,2,1,3,3,2}},
869
  {{2,2,2,3,1,1,1,5}, {4,3,1,2,1,2,1,3}, {1,2,3,1,2,3,3,2}},
870
  {{3,2,2,3,1,1,2,3}, {5,3,1,2,1,2,2,1}, {1,3,2,2,1,4,3,1}},
871
  {{4,2,2,3,1,1,3,1}, {4,2,2,1,2,2,1,3}, {1,2,3,1,2,4,3,1}},
872
  {{2,1,3,2,2,1,1,5}, {5,2,2,1,2,2,2,1}, {1,4,1,3,1,1,4,2}},
873
  {{2,2,2,3,1,2,1,4}, {4,2,2,1,2,3,1,2}, {1,3,2,2,2,1,4,2}},
874
  {{4,1,3,2,2,1,3,1}, {4,3,1,2,1,4,1,1}, {1,4,1,3,1,2,4,1}},
875
  {{2,1,3,2,2,2,1,4}, {4,2,2,1,2,4,1,1}, {1,2,3,1,3,1,4,2}},
876
  {{3,1,3,2,2,2,2,2}, {3,3,1,2,2,1,1,4}, {1,3,2,2,2,2,4,1}},
877
  {{3,2,2,3,1,3,2,1}, {4,3,1,2,2,1,2,2}, {1,2,3,1,3,2,4,1}},
878
  {{2,1,3,2,2,3,1,3}, {3,2,2,1,3,1,1,4}, {2,1,4,1,1,1,2,5}},
879
  {{2,2,2,3,1,4,1,2}, {3,3,1,2,2,2,1,3}, {3,1,4,1,1,1,3,3}},
880
  {{2,1,3,2,2,4,1,2}, {4,3,1,2,2,2,2,1}, {4,1,4,1,1,1,4,1}},
881
  {{2,2,2,3,1,5,1,1}, {3,2,2,1,3,2,1,3}, {1,1,4,1,1,2,1,6}},
882
  {{2,1,3,2,2,5,1,1}, {4,2,2,1,3,2,2,1}, {2,1,4,1,1,2,2,4}},
883
  {{1,3,1,4,1,1,1,5}, {3,2,2,1,3,3,1,2}, {3,1,4,1,1,2,3,2}},
884
  {{2,3,1,4,1,1,2,3}, {3,3,1,2,2,4,1,1}, {1,1,4,1,1,3,1,5}},
885
  {{3,3,1,4,1,1,3,1}, {3,2,2,1,3,4,1,1}, {2,1,4,1,1,3,2,3}},
886
  {{1,2,2,3,2,1,1,5}, {2,3,1,2,3,1,1,4}, {3,1,4,1,1,3,3,1}},
887
  {{1,3,1,4,1,2,1,4}, {3,3,1,2,3,1,2,2}, {1,1,4,1,1,4,1,4}},
888
  {{2,3,1,4,1,2,2,2}, {2,2,2,1,4,1,1,4}, {2,1,4,1,1,4,2,2}},
889
  {{1,1,3,2,3,1,1,5}, {2,3,1,2,3,2,1,3}, {1,1,4,1,1,5,1,3}},
890
  {{1,2,2,3,2,2,1,4}, {3,3,1,2,3,2,2,1}, {2,1,4,1,1,5,2,1}},
891
  {{2,2,2,3,2,2,2,2}, {2,2,2,1,4,2,1,3}, {1,1,4,1,1,6,1,2}},
892
  {{2,3,1,4,1,3,2,1}, {3,2,2,1,4,2,2,1}, {1,2,3,2,1,1,2,5}},
893
  {{1,1,3,2,3,2,1,4}, {2,2,2,1,4,3,1,2}, {2,2,3,2,1,1,3,3}},
894
  {{2,1,3,2,3,2,2,2}, {2,3,1,2,3,4,1,1}, {3,2,3,2,1,1,4,1}},
895
  {{1,3,1,4,1,4,1,2}, {2,2,2,1,4,4,1,1}, {1,1,4,1,2,1,2,5}},
896
  {{1,1,3,2,3,3,1,3}, {1,3,1,2,4,1,1,4}, {1,2,3,2,1,2,2,4}},
897
  {{1,2,2,3,2,4,1,2}, {2,3,1,2,4,1,2,2}, {2,2,3,2,1,2,3,2}},
898
  {{1,3,1,4,1,5,1,1}, {1,2,2,1,5,1,1,4}, {1,1,4,1,2,2,2,4}},
899
  {{1,2,2,3,2,5,1,1}, {1,3,1,2,4,2,1,3}, {2,1,4,1,2,2,3,2}},
900
  {{1,3,1,4,2,1,2,3}, {2,3,1,2,4,2,2,1}, {2,2,3,2,1,3,3,1}},
901
  {{2,3,1,4,2,1,3,1}, {1,2,2,1,5,2,1,3}, {1,1,4,1,2,3,2,3}},
902
  {{1,2,2,3,3,1,2,3}, {2,2,2,1,5,2,2,1}, {1,2,3,2,1,4,2,2}},
903
  {{1,3,1,4,2,2,2,2}, {1,2,2,1,5,3,1,2}, {1,1,4,1,2,4,2,2}},
904
  {{1,1,3,2,4,1,2,3}, {1,3,1,2,4,4,1,1}, {1,2,3,2,1,5,2,1}},
905
  {{1,2,2,3,3,2,2,2}, {1,2,2,1,5,4,1,1}, {1,1,4,1,2,5,2,1}},
906
  {{1,3,1,4,2,3,2,1}, {1,3,1,2,5,1,2,2}, {1,3,2,3,1,1,3,3}},
907
  {{1,1,3,2,4,2,2,2}, {1,2,2,1,6,1,2,2}, {2,3,2,3,1,1,4,1}},
908
  {{1,2,2,3,3,3,2,1}, {1,3,1,2,5,2,2,1}, {1,2,3,2,2,1,3,3}},
909
  {{1,3,1,4,3,1,3,1}, {1,2,2,1,6,2,2,1}, {1,3,2,3,1,2,3,2}},
910
  {{1,1,3,2,5,1,3,1}, {6,1,3,1,1,1,1,3}, {1,1,4,1,3,1,3,3}},
911
  {{3,1,3,3,1,1,1,4}, {1,1,3,1,1,1,5,4}, {1,2,3,2,2,2,3,2}},
912
  {{4,1,3,3,1,1,2,2}, {2,1,3,1,1,1,6,2}, {1,3,2,3,1,3,3,1}},
913
  {{3,1,3,3,1,2,1,3}, {6,1,3,1,1,2,1,2}, {1,1,4,1,3,2,3,2}},
914
  {{4,1,3,3,1,2,2,1}, {1,1,3,1,1,2,5,3}, {1,2,3,2,2,3,3,1}},
915
  {{3,1,3,3,1,3,1,2}, {2,1,3,1,1,2,6,1}, {1,1,4,1,3,3,3,1}},
916
  {{3,1,3,3,1,4,1,1}, {6,1,3,1,1,3,1,1}, {1,4,1,4,1,1,4,1}},
917
  {{2,2,2,4,1,1,1,4}, {1,1,3,1,1,3,5,2}, {1,3,2,3,2,1,4,1}},
918
  {{3,2,2,4,1,1,2,2}, {1,1,3,1,1,4,5,1}, {1,2,3,2,3,1,4,1}},
919
  {{2,1,3,3,2,1,1,4}, {5,2,2,2,1,1,1,3}, {1,1,4,1,4,1,4,1}},
920
  {{2,2,2,4,1,2,1,3}, {6,2,2,2,1,1,2,1}, {1,1,4,2,1,1,1,6}},
921
  {{3,2,2,4,1,2,2,1}, {1,2,2,2,1,1,6,2}, {2,1,4,2,1,1,2,4}},
922
  {{2,1,3,3,2,2,1,3}, {5,1,3,1,2,1,1,3}, {3,1,4,2,1,1,3,2}},
923
  {{3,1,3,3,2,2,2,1}, {6,1,3,1,2,1,2,1}, {1,1,4,2,1,2,1,5}},
924
  {{2,1,3,3,2,3,1,2}, {1,1,3,1,2,1,6,2}, {2,1,4,2,1,2,2,3}},
925
  {{2,2,2,4,1,4,1,1}, {1,2,2,2,1,2,6,1}, {3,1,4,2,1,2,3,1}},
926
  {{2,1,3,3,2,4,1,1}, {5,1,3,1,2,2,1,2}, {1,1,4,2,1,3,1,4}},
927
  {{1,3,1,5,1,1,1,4}, {5,2,2,2,1,3,1,1}, {2,1,4,2,1,3,2,2}},
928
  {{2,3,1,5,1,1,2,2}, {1,1,3,1,2,2,6,1}, {1,1,4,2,1,4,1,3}},
929
  {{1,2,2,4,2,1,1,4}, {5,1,3,1,2,3,1,1}, {2,1,4,2,1,4,2,1}},
930
  {{1,3,1,5,1,2,1,3}, {4,3,1,3,1,1,1,3}, {1,1,4,2,1,5,1,2}},
931
  {{2,3,1,5,1,2,2,1}, {5,3,1,3,1,1,2,1}, {1,1,4,2,1,6,1,1}},
932
  {{1,1,3,3,3,1,1,4}, {4,2,2,2,2,1,1,3}, {1,2,3,3,1,1,2,4}},
933
  {{1,2,2,4,2,2,1,3}, {4,3,1,3,1,2,1,2}, {2,2,3,3,1,1,3,2}},
934
  {{2,2,2,4,2,2,2,1}, {4,1,3,1,3,1,1,3}, {1,1,4,2,2,1,2,4}},
935
  {{1,1,3,3,3,2,1,3}, {5,1,3,1,3,1,2,1}, {1,2,3,3,1,2,2,3}},
936
  {{2,1,3,3,3,2,2,1}, {4,3,1,3,1,3,1,1}, {2,2,3,3,1,2,3,1}},
937
  {{1,3,1,5,1,4,1,1}, {4,1,3,1,3,2,1,2}, {1,1,4,2,2,2,2,3}},
938
  {{1,1,3,3,3,3,1,2}, {4,2,2,2,2,3,1,1}, {2,1,4,2,2,2,3,1}},
939
  {{1,2,2,4,2,4,1,1}, {4,1,3,1,3,3,1,1}, {1,1,4,2,2,3,2,2}},
940
  {{1,1,3,3,3,4,1,1}, {3,3,1,3,2,1,1,3}, {1,2,3,3,1,4,2,1}},
941
  {{1,2,2,4,3,1,2,2}, {4,3,1,3,2,1,2,1}, {1,1,4,2,2,4,2,1}},
942
  {{1,1,3,3,4,1,2,2}, {3,2,2,2,3,1,1,3}, {1,3,2,4,1,1,3,2}},
943
  {{1,1,3,3,4,2,2,1}, {3,3,1,3,2,2,1,2}, {1,2,3,3,2,1,3,2}},
944
  {{4,1,3,4,1,1,2,1}, {3,1,3,1,4,1,1,3}, {1,3,2,4,1,2,3,1}},
945
  {{3,1,3,4,1,3,1,1}, {3,2,2,2,3,2,1,2}, {1,1,4,2,3,1,3,2}},
946
  {{3,2,2,5,1,1,2,1}, {3,3,1,3,2,3,1,1}, {1,2,3,3,2,2,3,1}},
947
  {{2,2,2,5,1,2,1,2}, {3,1,3,1,4,2,1,2}, {1,1,4,2,3,2,3,1}},
948
  {{2,2,2,5,1,3,1,1}, {3,2,2,2,3,3,1,1}, {1,1,4,3,1,1,1,5}},
949
  {{1,3,1,6,1,1,1,3}, {3,1,3,1,4,3,1,1}, {2,1,4,3,1,1,2,3}},
950
  {{1,2,2,5,2,1,1,3}, {2,3,1,3,3,1,1,3}, {3,1,4,3,1,1,3,1}},
951
  {{1,1,3,4,3,1,1,3}, {3,3,1,3,3,1,2,1}, {1,1,4,3,1,2,1,4}},
952
  {{1,3,1,6,1,3,1,1}, {2,2,2,2,4,1,1,3}, {2,1,4,3,1,2,2,2}},
953
  {{1,2,2,5,2,3,1,1}, {2,3,1,3,3,2,1,2}, {1,1,4,3,1,3,1,3}},
954
  {{2,4,1,1,1,1,2,5}, {2,1,3,1,5,1,1,3}, {2,1,4,3,1,3,2,1}},
955
  {{1,4,1,1,1,2,1,6}, {2,2,2,2,4,2,1,2}, {1,1,4,3,1,4,1,2}},
956
  {{2,4,1,1,1,2,2,4}, {2,3,1,3,3,3,1,1}, {1,1,4,3,1,5,1,1}},
957
  {{1,4,1,1,1,3,1,5}, {2,1,3,1,5,2,1,2}, {1,2,3,4,1,1,2,3}},
958
  {{2,4,1,1,1,3,2,3}, {2,2,2,2,4,3,1,1}, {2,2,3,4,1,1,3,1}},
959
  {{3,4,1,1,1,3,3,1}, {2,1,3,1,5,3,1,1}, {1,1,4,3,2,1,2,3}},
960
  {{1,4,1,1,1,4,1,4}, {1,3,1,3,4,1,1,3}, {1,2,3,4,1,2,2,2}},
961
  {{2,4,1,1,1,4,2,2}, {2,3,1,3,4,1,2,1}, {1,1,4,3,2,2,2,2}},
962
  {{1,4,1,1,1,5,1,3}, {1,2,2,2,5,1,1,3}, {1,2,3,4,1,3,2,1}},
963
  {{2,4,1,1,1,5,2,1}, {1,3,1,3,4,2,1,2}, {1,1,4,3,2,3,2,1}},
964
  {{1,4,1,1,2,1,2,5}, {1,1,3,1,6,1,1,3}, {1,3,2,5,1,1,3,1}},
965
  {{2,4,1,1,2,1,3,3}, {1,2,2,2,5,2,1,2}, {1,2,3,4,2,1,3,1}},
966
  {{3,4,1,1,2,1,4,1}, {1,3,1,3,4,3,1,1}, {1,1,4,3,3,1,3,1}},
967
  {{1,4,1,1,2,2,2,4}, {1,1,3,1,6,2,1,2}, {1,1,4,4,1,1,1,4}},
968
  {{2,4,1,1,2,2,3,2}, {1,2,2,2,5,3,1,1}, {2,1,4,4,1,1,2,2}},
969
  {{1,4,1,1,2,3,2,3}, {1,1,3,1,6,3,1,1}, {1,1,4,4,1,2,1,3}},
970
  {{2,4,1,1,2,3,3,1}, {1,3,1,3,5,1,2,1}, {2,1,4,4,1,2,2,1}},
971
  {{1,4,1,1,2,4,2,2}, {1,2,2,2,6,1,2,1}, {1,1,4,4,1,3,1,2}},
972
  {{1,4,1,1,2,5,2,1}, {6,1,3,2,1,1,1,2}, {1,1,4,4,1,4,1,1}},
973
  {{1,4,1,1,3,1,3,3}, {1,1,3,2,1,1,5,3}, {1,2,3,5,1,1,2,2}},
974
  {{2,4,1,1,3,1,4,1}, {2,1,3,2,1,1,6,1}, {1,1,4,4,2,1,2,2}},
975
  {{1,4,1,1,3,2,3,2}, {6,1,3,2,1,2,1,1}, {1,2,3,5,1,2,2,1}},
976
  {{1,4,1,1,3,3,3,1}, {1,1,3,2,1,2,5,2}, {1,1,4,4,2,2,2,1}},
977
  {{1,4,1,1,4,1,4,1}, {1,1,3,2,1,3,5,1}, {1,1,4,5,1,1,1,3}},
978
  {{2,3,2,1,1,1,1,6}, {5,2,2,3,1,1,1,2}, {2,1,4,5,1,1,2,1}},
979
  {{3,3,2,1,1,1,2,4}, {1,2,2,3,1,1,6,1}, {1,1,4,5,1,2,1,2}},
980
  {{4,3,2,1,1,1,3,2}, {5,1,3,2,2,1,1,2}, {1,1,4,5,1,3,1,1}},
981
  {{2,3,2,1,1,2,1,5}, {5,2,2,3,1,2,1,1}, {1,2,3,6,1,1,2,1}},
982
  {{3,3,2,1,1,2,2,3}, {1,1,3,2,2,1,6,1}, {1,1,4,5,2,1,2,1}},
983
  {{2,3,2,1,1,3,1,4}, {5,1,3,2,2,2,1,1}, {1,5,1,1,1,1,4,3}},
984
  {{3,3,2,1,1,3,2,2}, {4,3,1,4,1,1,1,2}, {2,5,1,1,1,1,5,1}},
985
  {{2,3,2,1,1,4,1,3}, {4,2,2,3,2,1,1,2}, {1,5,1,1,1,2,4,2}},
986
  {{3,3,2,1,1,4,2,1}, {4,3,1,4,1,2,1,1}, {1,5,1,1,1,3,4,1}},
987
  {{2,3,2,1,1,5,1,2}, {4,1,3,2,3,1,1,2}, {1,5,1,1,2,1,5,1}},
988
  {{1,4,1,2,1,1,1,6}, {4,2,2,3,2,2,1,1}, {1,4,2,1,1,1,3,4}},
989
  {{2,4,1,2,1,1,2,4}, {4,1,3,2,3,2,1,1}, {2,4,2,1,1,1,4,2}},
990
  {{3,4,1,2,1,1,3,2}, {3,3,1,4,2,1,1,2}, {1,4,2,1,1,2,3,3}},
991
  {{1,3,2,1,2,1,1,6}, {3,2,2,3,3,1,1,2}, {2,4,2,1,1,2,4,1}},
992
  {{1,4,1,2,1,2,1,5}, {3,3,1,4,2,2,1,1}, {1,4,2,1,1,3,3,2}},
993
  {{3,3,2,1,2,1,3,2}, {3,1,3,2,4,1,1,2}, {1,4,2,1,1,4,3,1}},
994
  {{3,4,1,2,1,2,3,1}, {3,2,2,3,3,2,1,1}, {1,5,1,2,1,1,4,2}},
995
  {{1,3,2,1,2,2,1,5}, {3,1,3,2,4,2,1,1}, {1,4,2,1,2,1,4,2}},
996
  {{2,3,2,1,2,2,2,3}, {2,3,1,4,3,1,1,2}, {1,5,1,2,1,2,4,1}},
997
  {{3,3,2,1,2,2,3,1}, {2,2,2,3,4,1,1,2}, {1,4,2,1,2,2,4,1}},
998
  {{1,3,2,1,2,3,1,4}, {2,3,1,4,3,2,1,1}, {1,3,3,1,1,1,2,5}},
999
  {{1,4,1,2,1,4,1,3}, {2,1,3,2,5,1,1,2}, {2,3,3,1,1,1,3,3}},
1000
  {{2,4,1,2,1,4,2,1}, {2,2,2,3,4,2,1,1}, {3,3,3,1,1,1,4,1}},
1001
  {{1,3,2,1,2,4,1,3}, {2,1,3,2,5,2,1,1}, {1,3,3,1,1,2,2,4}},
1002
  {{2,3,2,1,2,4,2,1}, {1,3,1,4,4,1,1,2}, {2,3,3,1,1,2,3,2}},
1003
  {{1,4,1,2,1,6,1,1}, {1,2,2,3,5,1,1,2}, {1,3,3,1,1,3,2,3}},
1004
  {{1,4,1,2,2,1,2,4}, {1,3,1,4,4,2,1,1}, {2,3,3,1,1,3,3,1}},
1005
  {{2,4,1,2,2,1,3,2}, {1,1,3,2,6,1,1,2}, {1,3,3,1,1,4,2,2}},
1006
  {{1,3,2,1,3,1,2,4}, {1,2,2,3,5,2,1,1}, {1,3,3,1,1,5,2,1}},
1007
  {{1,4,1,2,2,2,2,3}, {1,1,3,2,6,2,1,1}, {1,4,2,2,1,1,3,3}},
1008
  {{2,4,1,2,2,2,3,1}, {6,1,3,3,1,1,1,1}, {2,4,2,2,1,1,4,1}},
1009
  {{1,3,2,1,3,2,2,3}, {1,1,3,3,1,1,5,2}, {1,3,3,1,2,1,3,3}},
1010
  {{2,3,2,1,3,2,3,1}, {1,1,3,3,1,2,5,1}, {1,4,2,2,1,2,3,2}},
1011
  {{1,3,2,1,3,3,2,2}, {5,2,2,4,1,1,1,1}, {1,3,3,1,2,2,3,2}},
1012
  {{1,4,1,2,2,4,2,1}, {5,1,3,3,2,1,1,1}, {1,4,2,2,1,3,3,1}},
1013
  {{1,4,1,2,3,1,3,2}, {4,3,1,5,1,1,1,1}, {1,3,3,1,2,3,3,1}},
1014
  {{1,3,2,1,4,1,3,2}, {4,2,2,4,2,1,1,1}, {1,5,1,3,1,1,4,1}},
1015
  {{1,4,1,2,3,2,3,1}, {4,1,3,3,3,1,1,1}, {1,4,2,2,2,1,4,1}},
1016
  {{1,3,2,1,4,2,3,1}, {3,3,1,5,2,1,1,1}, {1,3,3,1,3,1,4,1}},
1017
  {{3,2,3,1,1,1,1,5}, {3,2,2,4,3,1,1,1}, {1,2,4,1,1,1,1,6}},
1018
  {{4,2,3,1,1,1,2,3}, {3,1,3,3,4,1,1,1}, {2,2,4,1,1,1,2,4}},
1019
  {{5,2,3,1,1,1,3,1}, {2,3,1,5,3,1,1,1}, {3,2,4,1,1,1,3,2}},
1020
  {{3,2,3,1,1,2,1,4}, {2,2,2,4,4,1,1,1}, {1,2,4,1,1,2,1,5}},
1021
  {{4,2,3,1,1,2,2,2}, {2,1,3,3,5,1,1,1}, {2,2,4,1,1,2,2,3}},
1022
  {{3,2,3,1,1,3,1,3}, {1,3,1,5,4,1,1,1}, {3,2,4,1,1,2,3,1}},
1023
  {{4,2,3,1,1,3,2,1}, {1,2,2,4,5,1,1,1}, {1,2,4,1,1,3,1,4}},
1024
  {{3,2,3,1,1,4,1,2}, {1,1,3,3,6,1,1,1}, {2,2,4,1,1,3,2,2}},
1025
  {{3,2,3,1,1,5,1,1}, {1,1,3,4,1,1,5,1}, {1,2,4,1,1,4,1,3}},
1026
  {{2,3,2,2,1,1,1,5}, {4,4,1,1,1,1,1,4}, {2,2,4,1,1,4,2,1}},
1027
  {{3,3,2,2,1,1,2,3}, {5,4,1,1,1,1,2,2}, {1,2,4,1,1,5,1,2}},
1028
  {{2,2,3,1,2,1,1,5}, {4,4,1,1,1,2,1,3}, {1,2,4,1,1,6,1,1}},
1029
  {{2,3,2,2,1,2,1,4}, {5,4,1,1,1,2,2,1}, {1,3,3,2,1,1,2,4}},
1030
  {{3,3,2,2,1,2,2,2}, {4,4,1,1,1,3,1,2}, {2,3,3,2,1,1,3,2}},
1031
  {{2,2,3,1,2,2,1,4}, {4,4,1,1,1,4,1,1}, {1,2,4,1,2,1,2,4}},
1032
  {{3,2,3,1,2,2,2,2}, {3,4,1,1,2,1,1,4}, {1,3,3,2,1,2,2,3}},
1033
  {{3,3,2,2,1,3,2,1}, {4,4,1,1,2,1,2,2}, {2,3,3,2,1,2,3,1}},
1034
  {{2,2,3,1,2,3,1,3}, {3,4,1,1,2,2,1,3}, {1,2,4,1,2,2,2,3}},
1035
  {{2,3,2,2,1,4,1,2}, {4,4,1,1,2,2,2,1}, {2,2,4,1,2,2,3,1}},
1036
  {{2,2,3,1,2,4,1,2}, {3,4,1,1,2,3,1,2}, {1,2,4,1,2,3,2,2}},
1037
  {{2,3,2,2,1,5,1,1}, {3,4,1,1,2,4,1,1}, {1,3,3,2,1,4,2,1}},
1038
  {{2,2,3,1,2,5,1,1}, {2,4,1,1,3,1,1,4}, {1,2,4,1,2,4,2,1}},
1039
  {{1,4,1,3,1,1,1,5}, {3,4,1,1,3,1,2,2}, {1,4,2,3,1,1,3,2}},
1040
  {{2,4,1,3,1,1,2,3}, {2,4,1,1,3,2,1,3}, {1,3,3,2,2,1,3,2}},
1041
  {{1,3,2,2,2,1,1,5}, {3,4,1,1,3,2,2,1}, {1,4,2,3,1,2,3,1}},
1042
  {{1,4,1,3,1,2,1,4}, {2,4,1,1,3,3,1,2}, {1,2,4,1,3,1,3,2}},
1043
  {{3,3,2,2,2,1,3,1}, {2,4,1,1,3,4,1,1}, {1,3,3,2,2,2,3,1}},
1044
  {{1,2,3,1,3,1,1,5}, {1,4,1,1,4,1,1,4}, {1,2,4,1,3,2,3,1}},
1045
  {{1,3,2,2,2,2,1,4}, {2,4,1,1,4,1,2,2}, {2,1,5,1,1,1,1,5}},
1046
  {{2,3,2,2,2,2,2,2}, {1,4,1,1,4,2,1,3}, {3,1,5,1,1,1,2,3}},
1047
  {{2,4,1,3,1,3,2,1}, {2,4,1,1,4,2,2,1}, {4,1,5,1,1,1,3,1}},
1048
  {{1,2,3,1,3,2,1,4}, {1,4,1,1,4,3,1,2}, {2,1,5,1,1,2,1,4}},
1049
  {{2,2,3,1,3,2,2,2}, {1,4,1,1,4,4,1,1}, {3,1,5,1,1,2,2,2}},
1050
  {{1,4,1,3,1,4,1,2}, {1,4,1,1,5,1,2,2}, {2,1,5,1,1,3,1,3}},
1051
  {{1,2,3,1,3,3,1,3}, {1,4,1,1,5,2,2,1}, {3,1,5,1,1,3,2,1}},
1052
  {{1,3,2,2,2,4,1,2}, {5,3,2,1,1,1,1,3}, {2,1,5,1,1,4,1,2}},
1053
  {{1,4,1,3,1,5,1,1}, {6,3,2,1,1,1,2,1}, {2,1,5,1,1,5,1,1}},
1054
  {{1,3,2,2,2,5,1,1}, {1,3,2,1,1,1,6,2}, {1,2,4,2,1,1,1,5}},
1055
  {{1,4,1,3,2,1,2,3}, {5,3,2,1,1,2,1,2}, {2,2,4,2,1,1,2,3}},
1056
  {{2,4,1,3,2,1,3,1}, {1,3,2,1,1,2,6,1}, {3,2,4,2,1,1,3,1}},
1057
  {{1,3,2,2,3,1,2,3}, {5,3,2,1,1,3,1,1}, {1,1,5,1,2,1,1,5}},
1058
  {{1,4,1,3,2,2,2,2}, {4,4,1,2,1,1,1,3}, {1,2,4,2,1,2,1,4}},
1059
  {{1,2,3,1,4,1,2,3}, {5,4,1,2,1,1,2,1}, {2,2,4,2,1,2,2,2}},
1060
  {{1,3,2,2,3,2,2,2}, {4,3,2,1,2,1,1,3}, {1,1,5,1,2,2,1,4}},
1061
  {{1,4,1,3,2,3,2,1}, {4,4,1,2,1,2,1,2}, {2,1,5,1,2,2,2,2}},
1062
  {{1,2,3,1,4,2,2,2}, {4,3,2,1,2,2,1,2}, {2,2,4,2,1,3,2,1}},
1063
  {{1,3,2,2,3,3,2,1}, {4,4,1,2,1,3,1,1}, {1,1,5,1,2,3,1,3}},
1064
  {{1,4,1,3,3,1,3,1}, {4,3,2,1,2,3,1,1}, {1,2,4,2,1,4,1,2}},
1065
  {{1,3,2,2,4,1,3,1}, {3,4,1,2,2,1,1,3}, {1,1,5,1,2,4,1,2}},
1066
  {{1,2,3,1,5,1,3,1}, {4,4,1,2,2,1,2,1}, {1,2,4,2,1,5,1,1}},
1067
  {{4,1,4,1,1,1,1,4}, {3,3,2,1,3,1,1,3}, {1,1,5,1,2,5,1,1}},
1068
  {{5,1,4,1,1,1,2,2}, {3,4,1,2,2,2,1,2}, {1,3,3,3,1,1,2,3}},
1069
  {{4,1,4,1,1,2,1,3}, {3,3,2,1,3,2,1,2}, {2,3,3,3,1,1,3,1}},
1070
  {{5,1,4,1,1,2,2,1}, {3,4,1,2,2,3,1,1}, {1,2,4,2,2,1,2,3}},
1071
  {{4,1,4,1,1,3,1,2}, {3,3,2,1,3,3,1,1}, {1,3,3,3,1,2,2,2}},
1072
  {{4,1,4,1,1,4,1,1}, {2,4,1,2,3,1,1,3}, {1,1,5,1,3,1,2,3}},
1073
  {{3,2,3,2,1,1,1,4}, {3,4,1,2,3,1,2,1}, {1,2,4,2,2,2,2,2}},
1074
  {{4,2,3,2,1,1,2,2}, {2,3,2,1,4,1,1,3}, {1,3,3,3,1,3,2,1}},
1075
  {{3,1,4,1,2,1,1,4}, {2,4,1,2,3,2,1,2}, {1,1,5,1,3,2,2,2}},
1076
  {{4,1,4,1,2,1,2,2}, {2,3,2,1,4,2,1,2}, {1,2,4,2,2,3,2,1}},
1077
  {{4,2,3,2,1,2,2,1}, {2,4,1,2,3,3,1,1}, {1,1,5,1,3,3,2,1}},
1078
  {{3,1,4,1,2,2,1,3}, {2,3,2,1,4,3,1,1}, {1,4,2,4,1,1,3,1}},
1079
  {{4,1,4,1,2,2,2,1}, {1,4,1,2,4,1,1,3}, {1,3,3,3,2,1,3,1}},
1080
  {{3,1,4,1,2,3,1,2}, {2,4,1,2,4,1,2,1}, {1,2,4,2,3,1,3,1}},
1081
  {{3,2,3,2,1,4,1,1}, {1,3,2,1,5,1,1,3}, {1,1,5,1,4,1,3,1}},
1082
  {{3,1,4,1,2,4,1,1}, {1,4,1,2,4,2,1,2}, {2,1,5,2,1,1,1,4}},
1083
  {{2,3,2,3,1,1,1,4}, {1,3,2,1,5,2,1,2}, {3,1,5,2,1,1,2,2}},
1084
  {{3,3,2,3,1,1,2,2}, {1,4,1,2,4,3,1,1}, {2,1,5,2,1,2,1,3}},
1085
  {{2,2,3,2,2,1,1,4}, {1,3,2,1,5,3,1,1}, {3,1,5,2,1,2,2,1}},
1086
  {{2,3,2,3,1,2,1,3}, {1,4,1,2,5,1,2,1}, {2,1,5,2,1,3,1,2}},
1087
  {{3,3,2,3,1,2,2,1}, {1,3,2,1,6,1,2,1}, {2,1,5,2,1,4,1,1}},
1088
  {{2,1,4,1,3,1,1,4}, {6,2,3,1,1,1,1,2}, {1,2,4,3,1,1,1,4}},
1089
  {{2,2,3,2,2,2,1,3}, {1,2,3,1,1,1,5,3}, {2,2,4,3,1,1,2,2}},
1090
  {{3,2,3,2,2,2,2,1}, {2,2,3,1,1,1,6,1}, {1,1,5,2,2,1,1,4}},
1091
  {{2,1,4,1,3,2,1,3}, {6,2,3,1,1,2,1,1}, {1,2,4,3,1,2,1,3}},
1092
  {{3,1,4,1,3,2,2,1}, {1,2,3,1,1,2,5,2}, {2,2,4,3,1,2,2,1}},
1093
  {{2,3,2,3,1,4,1,1}, {1,2,3,1,1,3,5,1}, {1,1,5,2,2,2,1,3}},
1094
  {{2,1,4,1,3,3,1,2}, {5,3,2,2,1,1,1,2}, {2,1,5,2,2,2,2,1}},
1095
  {{2,2,3,2,2,4,1,1}, {1,3,2,2,1,1,6,1}, {1,1,5,2,2,3,1,2}},
1096
  {{2,1,4,1,3,4,1,1}, {5,2,3,1,2,1,1,2}, {1,2,4,3,1,4,1,1}},
1097
  {{1,4,1,4,1,1,1,4}, {5,3,2,2,1,2,1,1}, {1,1,5,2,2,4,1,1}},
1098
  {{2,4,1,4,1,1,2,2}, {1,2,3,1,2,1,6,1}, {1,3,3,4,1,1,2,2}},
1099
  {{1,3,2,3,2,1,1,4}, {5,2,3,1,2,2,1,1}, {1,2,4,3,2,1,2,2}},
1100
  {{1,4,1,4,1,2,1,3}, {4,4,1,3,1,1,1,2}, {1,3,3,4,1,2,2,1}},
1101
  {{2,4,1,4,1,2,2,1}, {4,3,2,2,2,1,1,2}, {1,1,5,2,3,1,2,2}},
1102
  {{1,2,3,2,3,1,1,4}, {4,4,1,3,1,2,1,1}, {1,2,4,3,2,2,2,1}},
1103
  {{1,3,2,3,2,2,1,3}, {4,2,3,1,3,1,1,2}, {1,1,5,2,3,2,2,1}},
1104
  {{2,3,2,3,2,2,2,1}, {4,3,2,2,2,2,1,1}, {2,1,5,3,1,1,1,3}},
1105
  {{1,1,4,1,4,1,1,4}, {4,2,3,1,3,2,1,1}, {3,1,5,3,1,1,2,1}},
1106
  {{1,2,3,2,3,2,1,3}, {3,4,1,3,2,1,1,2}, {2,1,5,3,1,2,1,2}},
1107
  {{2,2,3,2,3,2,2,1}, {3,3,2,2,3,1,1,2}, {2,1,5,3,1,3,1,1}},
1108
  {{1,4,1,4,1,4,1,1}, {3,4,1,3,2,2,1,1}, {1,2,4,4,1,1,1,3}},
1109
  {{1,1,4,1,4,2,1,3}, {3,2,3,1,4,1,1,2}, {2,2,4,4,1,1,2,1}},
1110
  {{2,1,4,1,4,2,2,1}, {3,3,2,2,3,2,1,1}, {1,1,5,3,2,1,1,3}},
1111
  {{1,3,2,3,2,4,1,1}, {3,2,3,1,4,2,1,1}, {1,2,4,4,1,2,1,2}},
1112
  {{1,1,4,1,4,3,1,2}, {2,4,1,3,3,1,1,2}, {1,1,5,3,2,2,1,2}},
1113
  {{1,4,1,4,2,1,2,2}, {2,3,2,2,4,1,1,2}, {1,2,4,4,1,3,1,1}},
1114
  {{1,3,2,3,3,1,2,2}, {2,4,1,3,3,2,1,1}, {1,1,5,3,2,3,1,1}},
1115
  {{1,4,1,4,2,2,2,1}, {2,2,3,1,5,1,1,2}, {1,3,3,5,1,1,2,1}},
1116
  {{1,2,3,2,4,1,2,2}, {2,3,2,2,4,2,1,1}, {1,2,4,4,2,1,2,1}},
1117
  {{1,3,2,3,3,2,2,1}, {2,2,3,1,5,2,1,1}, {1,1,5,3,3,1,2,1}},
1118
  {{1,1,4,1,5,1,2,2}, {1,4,1,3,4,1,1,2}, {2,1,5,4,1,1,1,2}},
1119
  {{1,2,3,2,4,2,2,1}, {1,3,2,2,5,1,1,2}, {2,1,5,4,1,2,1,1}},
1120
  {{1,1,4,1,5,2,2,1}, {1,4,1,3,4,2,1,1}, {1,2,4,5,1,1,1,2}},
1121
  {{4,1,4,2,1,1,1,3}, {1,2,3,1,6,1,1,2}, {1,1,5,4,2,1,1,2}},
1122
  {{5,1,4,2,1,1,2,1}, {1,3,2,2,5,2,1,1}, {1,2,4,5,1,2,1,1}},
1123
  {{4,1,4,2,1,2,1,2}, {1,2,3,1,6,2,1,1}, {1,1,5,4,2,2,1,1}},
1124
  {{4,1,4,2,1,3,1,1}, {1,1,4,1,1,1,4,4}, {1,6,1,1,1,1,4,2}},
1125
  {{3,2,3,3,1,1,1,3}, {2,1,4,1,1,1,5,2}, {1,6,1,1,1,2,4,1}},
1126
  {{4,2,3,3,1,1,2,1}, {1,1,4,1,1,2,4,3}, {1,5,2,1,1,1,3,3}},
1127
  {{3,1,4,2,2,1,1,3}, {2,1,4,1,1,2,5,1}, {2,5,2,1,1,1,4,1}},
1128
  {{4,1,4,2,2,1,2,1}, {1,1,4,1,1,3,4,2}, {1,5,2,1,1,2,3,2}},
1129
  {{3,1,4,2,2,2,1,2}, {1,1,4,1,1,4,4,1}, {1,5,2,1,1,3,3,1}},
1130
  {{3,2,3,3,1,3,1,1}, {6,2,3,2,1,1,1,1}, {1,6,1,2,1,1,4,1}},
1131
  {{3,1,4,2,2,3,1,1}, {1,2,3,2,1,1,5,2}, {1,5,2,1,2,1,4,1}},
1132
  {{2,3,2,4,1,1,1,3}, {6,1,4,1,2,1,1,1}, {1,4,3,1,1,1,2,4}},
1133
  {{3,3,2,4,1,1,2,1}, {1,1,4,1,2,1,5,2}, {2,4,3,1,1,1,3,2}},
1134
  {{2,2,3,3,2,1,1,3}, {1,2,3,2,1,2,5,1}, {1,4,3,1,1,2,2,3}},
1135
  {{2,3,2,4,1,2,1,2}, {1,1,4,1,2,2,5,1}, {2,4,3,1,1,2,3,1}},
1136
  {{2,1,4,2,3,1,1,3}, {5,3,2,3,1,1,1,1}, {1,4,3,1,1,3,2,2}},
1137
  {{2,2,3,3,2,2,1,2}, {5,2,3,2,2,1,1,1}, {1,4,3,1,1,4,2,1}},
1138
  {{2,3,2,4,1,3,1,1}, {5,1,4,1,3,1,1,1}, {1,5,2,2,1,1,3,2}},
1139
  {{2,1,4,2,3,2,1,2}, {4,4,1,4,1,1,1,1}, {1,4,3,1,2,1,3,2}},
1140
  {{2,2,3,3,2,3,1,1}, {4,3,2,3,2,1,1,1}, {1,5,2,2,1,2,3,1}},
1141
  {{2,1,4,2,3,3,1,1}, {4,2,3,2,3,1,1,1}, {1,4,3,1,2,2,3,1}},
1142
  {{1,4,1,5,1,1,1,3}, {4,1,4,1,4,1,1,1}, {1,3,4,1,1,1,1,5}},
1143
  {{2,4,1,5,1,1,2,1}, {3,4,1,4,2,1,1,1}, {2,3,4,1,1,1,2,3}},
1144
  {{1,3,2,4,2,1,1,3}, {3,3,2,3,3,1,1,1}, {3,3,4,1,1,1,3,1}},
1145
  {{2,3,2,4,2,1,2,1}, {3,2,3,2,4,1,1,1}, {1,3,4,1,1,2,1,4}},
1146
  {{1,2,3,3,3,1,1,3}, {3,1,4,1,5,1,1,1}, {2,3,4,1,1,2,2,2}},
1147
  {{1,3,2,4,2,2,1,2}, {2,4,1,4,3,1,1,1}, {1,3,4,1,1,3,1,3}},
1148
  {{1,4,1,5,1,3,1,1}, {2,3,2,3,4,1,1,1}, {2,3,4,1,1,3,2,1}},
1149
  {{1,1,4,2,4,1,1,3}, {2,2,3,2,5,1,1,1}, {1,3,4,1,1,4,1,2}},
1150
  {{1,2,3,3,3,2,1,2}, {2,1,4,1,6,1,1,1}, {1,3,4,1,1,5,1,1}},
1151
  {{1,3,2,4,2,3,1,1}, {1,4,1,4,4,1,1,1}, {1,4,3,2,1,1,2,3}},
1152
  {{1,1,4,2,4,2,1,2}, {1,3,2,3,5,1,1,1}, {2,4,3,2,1,1,3,1}},
1153
  {{1,2,3,3,3,3,1,1}, {1,2,3,2,6,1,1,1}, {1,3,4,1,2,1,2,3}},
1154
  {{1,1,4,2,4,3,1,1}, {1,1,4,2,1,1,4,3}, {2,3,4,1,2,1,3,1}},
1155
  {{1,3,2,4,3,1,2,1}, {2,1,4,2,1,1,5,1}, {1,3,4,1,2,2,2,2}},
1156
  {{1,1,4,2,5,1,2,1}, {1,1,4,2,1,2,4,2}, {1,4,3,2,1,3,2,1}},
1157
  {{4,1,4,3,1,2,1,1}, {1,1,4,2,1,3,4,1}, {1,3,4,1,2,3,2,1}},
1158
  {{3,1,4,3,2,1,1,2}, {1,2,3,3,1,1,5,1}, {1,5,2,3,1,1,3,1}},
1159
  {{3,1,4,3,2,2,1,1}, {1,1,4,2,2,1,5,1}, {1,4,3,2,2,1,3,1}},
1160
  {{2,2,3,4,2,1,1,2}, {1,1,4,3,1,1,4,2}, {1,3,4,1,3,1,3,1}},
1161
  {{2,1,4,3,3,1,1,2}, {1,1,4,3,1,2,4,1}, {2,2,5,1,1,1,1,4}},
1162
  {{2,1,4,3,3,2,1,1}, {1,1,4,4,1,1,4,1}, {3,2,5,1,1,1,2,2}},
1163
  {{1,3,2,5,2,1,1,2}, {4,5,1,1,1,1,1,3}, {2,2,5,1,1,2,1,3}},
1164
  {{1,2,3,4,3,1,1,2}, {4,5,1,1,1,2,1,2}, {3,2,5,1,1,2,2,1}},
1165
  {{1,1,4,3,4,1,1,2}, {4,5,1,1,1,3,1,1}, {2,2,5,1,1,3,1,2}},
1166
  {{1,1,4,3,4,2,1,1}, {3,5,1,1,2,1,1,3}, {2,2,5,1,1,4,1,1}},
1167
  {{1,5,1,1,1,1,1,6}, {4,5,1,1,2,1,2,1}, {1,3,4,2,1,1,1,4}},
1168
  {{1,5,1,1,1,2,1,5}, {3,5,1,1,2,2,1,2}, {2,3,4,2,1,1,2,2}},
1169
  {{2,5,1,1,1,2,2,3}, {3,5,1,1,2,3,1,1}, {1,2,5,1,2,1,1,4}},
1170
  {{1,5,1,1,1,3,1,4}, {2,5,1,1,3,1,1,3}, {2,2,5,1,2,1,2,2}},
1171
  {{1,5,1,1,1,4,1,3}, {3,5,1,1,3,1,2,1}, {2,3,4,2,1,2,2,1}},
1172
  {{1,5,1,1,1,5,1,2}, {2,5,1,1,3,2,1,2}, {1,2,5,1,2,2,1,3}},
1173
  {{1,5,1,1,2,1,2,4}, {2,5,1,1,3,3,1,1}, {1,3,4,2,1,3,1,2}},
1174
  {{1,5,1,1,2,2,2,3}, {1,5,1,1,4,1,1,3}, {1,2,5,1,2,3,1,2}},
1175
  {{1,5,1,1,2,3,2,2}, {2,5,1,1,4,1,2,1}, {1,3,4,2,1,4,1,1}},
1176
  {{1,5,1,1,2,4,2,1}, {1,5,1,1,4,2,1,2}, {1,2,5,1,2,4,1,1}},
1177
  {{1,5,1,1,3,1,3,2}, {1,5,1,1,4,3,1,1}, {1,4,3,3,1,1,2,2}},
1178
  {{1,5,1,1,3,2,3,1}, {1,5,1,1,5,1,2,1}, {1,3,4,2,2,1,2,2}},
1179
  {{2,4,2,1,1,1,1,5}, {5,4,2,1,1,1,1,2}, {1,4,3,3,1,2,2,1}},
1180
  {{2,4,2,1,1,2,1,4}, {1,4,2,1,1,1,6,1}, {1,2,5,1,3,1,2,2}},
1181
  {{3,4,2,1,1,2,2,2}, {5,4,2,1,1,2,1,1}, {1,3,4,2,2,2,2,1}},
1182
  {{2,4,2,1,1,3,1,3}, {4,5,1,2,1,1,1,2}, {1,2,5,1,3,2,2,1}},
1183
  {{3,4,2,1,1,3,2,1}, {4,4,2,1,2,1,1,2}, {3,1,6,1,1,1,1,3}},
1184
  {{2,4,2,1,1,4,1,2}, {4,5,1,2,1,2,1,1}, {4,1,6,1,1,1,2,1}},
1185
  {{2,4,2,1,1,5,1,1}, {4,4,2,1,2,2,1,1}, {3,1,6,1,1,2,1,2}},
1186
  {{1,5,1,2,1,1,1,5}, {3,5,1,2,2,1,1,2}, {3,1,6,1,1,3,1,1}},
1187
  {{2,5,1,2,1,1,2,3}, {3,4,2,1,3,1,1,2}, {2,2,5,2,1,1,1,3}},
1188
  {{1,4,2,1,2,1,1,5}, {3,5,1,2,2,2,1,1}, {3,2,5,2,1,1,2,1}},
1189
  {{2,4,2,1,2,1,2,3}, {3,4,2,1,3,2,1,1}, {2,1,6,1,2,1,1,3}},
1190
  {{2,5,1,2,1,2,2,2}, {2,5,1,2,3,1,1,2}, {2,2,5,2,1,2,1,2}},
1191
  {{1,4,2,1,2,2,1,4}, {2,4,2,1,4,1,1,2}, {2,1,6,1,2,2,1,2}},
1192
  {{2,4,2,1,2,2,2,2}, {2,5,1,2,3,2,1,1}, {2,2,5,2,1,3,1,1}},
1193
  {{1,4,2,1,2,3,1,3}, {2,4,2,1,4,2,1,1}, {2,1,6,1,2,3,1,1}},
1194
  {{2,4,2,1,2,3,2,1}, {1,5,1,2,4,1,1,2}, {1,3,4,3,1,1,1,3}},
1195
  {{1,4,2,1,2,4,1,2}, {1,4,2,1,5,1,1,2}, {2,3,4,3,1,1,2,1}},
1196
  {{1,5,1,2,1,5,1,1}, {1,5,1,2,4,2,1,1}, {1,2,5,2,2,1,1,3}},
1197
  {{1,4,2,1,2,5,1,1}, {1,4,2,1,5,2,1,1}, {1,3,4,3,1,2,1,2}},
1198
  {{1,5,1,2,2,1,2,3}, {6,3,3,1,1,1,1,1}, {1,1,6,1,3,1,1,3}},
1199
  {{2,5,1,2,2,1,3,1}, {1,3,3,1,1,1,5,2}, {1,2,5,2,2,2,1,2}},
1200
  {{1,4,2,1,3,1,2,3}, {1,3,3,1,1,2,5,1}, {1,3,4,3,1,3,1,1}},
1201
  {{2,4,2,1,3,1,3,1}, {5,4,2,2,1,1,1,1}, {1,1,6,1,3,2,1,2}},
1202
  {{1,4,2,1,3,2,2,2}, {5,3,3,1,2,1,1,1}, {1,2,5,2,2,3,1,1}},
1203
  {{1,5,1,2,2,3,2,1}, {4,5,1,3,1,1,1,1}, {1,1,6,1,3,3,1,1}},
1204
  {{1,4,2,1,3,3,2,1}, {4,4,2,2,2,1,1,1}, {1,4,3,4,1,1,2,1}},
1205
  {{1,5,1,2,3,1,3,1}, {4,3,3,1,3,1,1,1}, {1,3,4,3,2,1,2,1}},
1206
  {{1,4,2,1,4,1,3,1}, {3,5,1,3,2,1,1,1}, {1,2,5,2,3,1,2,1}},
1207
  {{3,3,3,1,1,1,1,4}, {3,4,2,2,3,1,1,1}, {1,1,6,1,4,1,2,1}},
1208
  {{3,3,3,1,1,2,1,3}, {3,3,3,1,4,1,1,1}, {3,1,6,2,1,1,1,2}},
1209
  {{3,3,3,1,1,3,1,2}, {2,5,1,3,3,1,1,1}, {3,1,6,2,1,2,1,1}},
1210
  {{3,3,3,1,1,4,1,1}, {2,4,2,2,4,1,1,1}, {2,2,5,3,1,1,1,2}},
1211
  {{2,4,2,2,1,1,1,4}, {2,3,3,1,5,1,1,1}, {2,1,6,2,2,1,1,2}},
1212
  {{2,3,3,1,2,1,1,4}, {1,5,1,3,4,1,1,1}, {2,2,5,3,1,2,1,1}},
1213
  {{3,3,3,1,2,1,2,2}, {1,4,2,2,5,1,1,1}, {2,1,6,2,2,2,1,1}},
1214
  {{3,4,2,2,1,2,2,1}, {1,3,3,1,6,1,1,1}, {1,3,4,4,1,1,1,2}},
1215
  {{2,3,3,1,2,2,1,3}, {1,2,4,1,1,1,4,3}, {1,2,5,3,2,1,1,2}},
1216
  {{3,3,3,1,2,2,2,1}, {2,2,4,1,1,1,5,1}, {1,3,4,4,1,2,1,1}},
1217
  {{2,3,3,1,2,3,1,2}, {1,2,4,1,1,2,4,2}, {1,1,6,2,3,1,1,2}},
1218
  {{2,4,2,2,1,4,1,1}, {1,2,4,1,1,3,4,1}, {1,2,5,3,2,2,1,1}},
1219
  {{2,3,3,1,2,4,1,1}, {1,3,3,2,1,1,5,1}, {1,1,6,2,3,2,1,1}},
1220
  {{1,5,1,3,1,1,1,4}, {1,2,4,1,2,1,5,1}, {3,1,6,3,1,1,1,1}},
1221
  {{1,4,2,2,2,1,1,4}, {1,1,5,1,1,1,3,4}, {2,2,5,4,1,1,1,1}},
1222
  {{1,5,1,3,1,2,1,3}, {2,1,5,1,1,1,4,2}, {2,1,6,3,2,1,1,1}},
1223
  {{2,5,1,3,1,2,2,1}, {1,1,5,1,1,2,3,3}, {1,3,4,5,1,1,1,1}},
1224
  {{1,3,3,1,3,1,1,4}, {2,1,5,1,1,2,4,1}, {1,2,5,4,2,1,1,1}},
1225
  {{1,4,2,2,2,2,1,3}, {1,1,5,1,1,3,3,2}, {1,1,6,3,3,1,1,1}},
1226
  {{1,5,1,3,1,3,1,2}, {1,1,5,1,1,4,3,1}, {1,6,2,1,1,1,3,2}},
1227
  {{1,3,3,1,3,2,1,3}, {1,2,4,2,1,1,4,2}, {1,6,2,1,1,2,3,1}},
1228
  {{1,4,2,2,2,3,1,2}, {1,1,5,1,2,1,4,2}, {1,5,3,1,1,1,2,3}},
1229
  {{1,5,1,3,1,4,1,1}, {1,2,4,2,1,2,4,1}, {2,5,3,1,1,1,3,1}},
1230
  {{1,3,3,1,3,3,1,2}, {1,1,5,1,2,2,4,1}, {1,5,3,1,1,2,2,2}},
1231
  {{1,4,2,2,2,4,1,1}, {1,1,5,2,1,1,3,3}, {1,5,3,1,1,3,2,1}},
1232
  {{1,5,1,3,2,1,2,2}, {2,1,5,2,1,1,4,1}, {1,6,2,2,1,1,3,1}},
1233
  {{1,4,2,2,3,1,2,2}, {1,1,5,2,1,2,3,2}, {1,5,3,1,2,1,3,1}},
1234
  {{1,5,1,3,2,2,2,1}, {1,1,5,2,1,3,3,1}, {1,4,4,1,1,1,1,4}},
1235
  {{1,3,3,1,4,1,2,2}, {1,2,4,3,1,1,4,1}, {2,4,4,1,1,1,2,2}},
1236
  {{1,4,2,2,3,2,2,1}, {1,1,5,2,2,1,4,1}, {1,4,4,1,1,2,1,3}},
1237
  {{1,3,3,1,4,2,2,1}, {1,1,5,3,1,1,3,2}, {2,4,4,1,1,2,2,1}},
1238
  {{4,2,4,1,1,1,1,3}, {1,1,5,3,1,2,3,1}, {1,4,4,1,1,3,1,2}},
1239
  {{4,2,4,1,1,2,1,2}, {1,1,5,4,1,1,3,1}, {1,4,4,1,1,4,1,1}},
1240
  {{4,2,4,1,1,3,1,1}, {3,6,1,1,2,1,1,2}, {1,5,3,2,1,1,2,2}},
1241
  {{3,3,3,2,1,1,1,3}, {3,6,1,1,2,2,1,1}, {1,4,4,1,2,1,2,2}},
1242
  {{3,2,4,1,2,1,1,3}, {2,6,1,1,3,1,1,2}, {1,5,3,2,1,2,2,1}},
1243
  {{4,2,4,1,2,1,2,1}, {2,6,1,1,3,2,1,1}, {1,4,4,1,2,2,2,1}},
1244
  {{3,2,4,1,2,2,1,2}, {1,6,1,1,4,1,1,2}, {2,3,5,1,1,1,1,3}},
1245
  {{3,3,3,2,1,3,1,1}, {1,6,1,1,4,2,1,1}, {3,3,5,1,1,1,2,1}},
1246
  {{3,2,4,1,2,3,1,1}, {4,5,2,1,2,1,1,1}, {2,3,5,1,1,2,1,2}},
1247
  {{2,4,2,3,1,1,1,3}, {3,6,1,2,2,1,1,1}, {2,3,5,1,1,3,1,1}},
1248
  {{3,4,2,3,1,1,2,1}, {3,5,2,1,3,1,1,1}, {1,4,4,2,1,1,1,3}},
1249
  {{2,3,3,2,2,1,1,3}, {2,6,1,2,3,1,1,1}, {2,4,4,2,1,1,2,1}},
1250
  {{3,3,3,2,2,1,2,1}, {2,5,2,1,4,1,1,1}, {1,3,5,1,2,1,1,3}},
1251
  {{2,2,4,1,3,1,1,3}, {1,6,1,2,4,1,1,1}, {2,3,5,1,2,1,2,1}},
1252
  {{2,3,3,2,2,2,1,2}, {1,5,2,1,5,1,1,1}, {1,3,5,1,2,2,1,2}},
1253
  {{2,4,2,3,1,3,1,1}, {1,4,3,1,1,1,5,1}, {1,4,4,2,1,3,1,1}},
1254
  {{2,2,4,1,3,2,1,2}, {1,3,4,1,1,1,4,2}, {1,3,5,1,2,3,1,1}},
1255
  {{2,3,3,2,2,3,1,1}, {1,3,4,1,1,2,4,1}, {1,5,3,3,1,1,2,1}},
1256
  {{2,2,4,1,3,3,1,1}, {1,2,5,1,1,1,3,3}, {1,4,4,2,2,1,2,1}},
1257
  {{1,5,1,4,1,1,1,3}, {2,2,5,1,1,1,4,1}, {1,3,5,1,3,1,2,1}},
1258
  {{2,5,1,4,1,1,2,1}, {1,2,5,1,1,2,3,2}, {3,2,6,1,1,1,1,2}},
1259
  {{1,4,2,3,2,1,1,3}, {1,2,5,1,1,3,3,1}, {3,2,6,1,1,2,1,1}},
1260
  {{2,4,2,3,2,1,2,1}, {1,3,4,2,1,1,4,1}, {2,3,5,2,1,1,1,2}},
1261
  {{1,3,3,2,3,1,1,3}, {1,2,5,1,2,1,4,1}, {2,2,6,1,2,1,1,2}},
1262
  {{1,4,2,3,2,2,1,2}, {1,1,6,1,1,1,2,4}, {2,3,5,2,1,2,1,1}},
1263
  {{1,5,1,4,1,3,1,1}, {2,1,6,1,1,1,3,2}, {2,2,6,1,2,2,1,1}},
1264
  {{1,2,4,1,4,1,1,3}, {1,1,6,1,1,2,2,3}, {1,4,4,3,1,1,1,2}},
1265
  {{1,3,3,2,3,2,1,2}, {2,1,6,1,1,2,3,1}, {1,3,5,2,2,1,1,2}},
1266
  {{1,4,2,3,2,3,1,1}, {1,1,6,1,1,3,2,2}, {1,4,4,3,1,2,1,1}},
1267
  {{1,2,4,1,4,2,1,2}, {1,1,6,1,1,4,2,1}, {1,2,6,1,3,1,1,2}},
1268
  {{1,3,3,2,3,3,1,1}, {1,2,5,2,1,1,3,2}, {1,3,5,2,2,2,1,1}},
1269
  {{1,5,1,4,2,1,2,1}, {1,1,6,1,2,1,3,2}, {1,2,6,1,3,2,1,1}},
1270
  {{1,4,2,3,3,1,2,1}, {1,2,5,2,1,2,3,1}, {3,2,6,2,1,1,1,1}},
1271
  {{1,3,3,2,4,1,2,1}, {1,1,6,1,2,2,3,1}, {2,3,5,3,1,1,1,1}},
1272
  {{1,2,4,1,5,1,2,1}, {1,1,6,2,1,1,2,3}, {2,2,6,2,2,1,1,1}},
1273
  {{5,1,5,1,1,1,1,2}, {2,1,6,2,1,1,3,1}, {1,4,4,4,1,1,1,1}},
1274
  {{5,1,5,1,1,2,1,1}, {1,1,6,2,1,2,2,2}, {1,3,5,3,2,1,1,1}},
1275
  {{4,2,4,2,1,1,1,2}, {1,1,6,2,1,3,2,1}, {1,2,6,2,3,1,1,1}},
1276
  {{4,1,5,1,2,1,1,2}, {1,2,5,3,1,1,3,1}, {1,6,3,1,1,1,2,2}},
1277
  {{4,2,4,2,1,2,1,1}, {1,1,6,2,2,1,3,1}, {1,6,3,1,1,2,2,1}},
1278
  {{4,1,5,1,2,2,1,1}, {1,1,6,3,1,1,2,2}, {1,5,4,1,1,1,1,3}},
1279
  {{3,3,3,3,1,1,1,2}, {1,1,6,3,1,2,2,1}, {2,5,4,1,1,1,2,1}},
1280
  {{3,2,4,2,2,1,1,2}, {1,4,4,1,1,1,4,1}, {1,5,4,1,1,2,1,2}},
1281
  {{3,3,3,3,1,2,1,1}, {1,3,5,1,1,1,3,2}, {1,5,4,1,1,3,1,1}},
1282
  {{3,1,5,1,3,1,1,2}, {1,3,5,1,1,2,3,1}, {1,6,3,2,1,1,2,1}},
1283
  {{3,2,4,2,2,2,1,1}, {1,2,6,1,1,1,2,3}, {1,5,4,1,2,1,2,1}},
1284
  {{3,1,5,1,3,2,1,1}, {2,2,6,1,1,1,3,1}, {2,4,5,1,1,1,1,2}},
1285
  {{2,4,2,4,1,1,1,2}, {1,2,6,1,1,2,2,2}, {2,4,5,1,1,2,1,1}},
1286
  {{2,3,3,3,2,1,1,2}, {1,2,6,1,1,3,2,1}, {1,5,4,2,1,1,1,2}},
1287
  {{2,4,2,4,1,2,1,1}, {1,3,5,2,1,1,3,1}, {1,4,5,1,2,1,1,2}},
1288
  {{2,2,4,2,3,1,1,2}, {1,2,6,1,2,1,3,1}, {1,5,4,2,1,2,1,1}},
1289
  {{2,3,3,3,2,2,1,1}, {1,2,6,2,1,1,2,2}, {1,4,5,1,2,2,1,1}},
1290
  {{2,1,5,1,4,1,1,2}, {1,2,6,2,1,2,2,1}, {3,3,6,1,1,1,1,1}}
1291
};
1292
1293
//------------------------------------------------------------------------
1294
1295
static int makeDataCodewords(GString *value, int *codewords);
1296
static int countNumeric(GString *value, int start);
1297
static int countText(GString *value, int start);
1298
static int countBinary(GString *value, int start);
1299
static GBool makeNumericCodewords(GString *value, int start, int n,
1300
          int *codewords, int &codewordIdx);
1301
static int divMod900(int *d, int n);
1302
static GBool makeByteCodewords(GString *value, int start, int n,
1303
             int *codewords, int &codewordIdx);
1304
static GBool makeTextCodewords(GString *value, int start, int n,
1305
             int *codewords, int &codewordIdx);
1306
static GBool appendTextHalfSymbol(int *codewords, int &codewordIdx,
1307
          int halfSymbol, int &prevHalfSymbol);
1308
static GBool appendDataCodeword(int *codewords, int &codewordIdx,
1309
        int codeword);
1310
static void makeErrorCorrectionCodewords(int errorCorrectionLevel,
1311
           int *codewords, int length);
1312
static void drawBarcode(int *codewords, int totalLength,
1313
      int nRows, int nCols,
1314
      int errorCorrectionLevel,
1315
      double moduleWidth, double moduleHeight,
1316
      double fieldWidth, double fieldHeight,
1317
      GString *appearBuf);
1318
static void drawPattern(int &x, int y, char *pattern, int length,
1319
      GString *appearBuf);
1320
1321
//------------------------------------------------------------------------
1322
1323
GBool drawPDF417Barcode(double fieldWidth, double fieldHeight,
1324
      double moduleWidth, double moduleHeight,
1325
      int errorCorrectionLevel, GString *value,
1326
0
      GString *appearBuf) {
1327
0
  int codewords[maxDataCodewords + maxErrorCorrectionCodewords];
1328
1329
0
  if (moduleWidth <= 0 || moduleHeight <= 0) {
1330
0
    error(errSyntaxError, -1, "Invalid module size in PDF417 barcode");
1331
0
    return gFalse;
1332
0
  }
1333
1334
  // each row contains:
1335
  // - left quiet zone (2 modules, minimum)
1336
  // - start code (17 modules)
1337
  // - left row indicator (17 modules)
1338
  // - nCols codewords (17 modules each)
1339
  // - right row indicator (17 modules)
1340
  // - stop code (18 modules)
1341
  // - right quiet zone (2 modules, minimum)
1342
  // total = 73 + nCols * 17
1343
0
  int nCols = (int)floor((fieldWidth / moduleWidth - 73) / 17);
1344
0
  if (nCols < 1) {
1345
0
    error(errSyntaxError, -1, "Invalid field size for PDF417 barcode");
1346
0
    return gFalse;
1347
0
  }
1348
0
  if (nCols > 30) {
1349
0
    nCols = 30;
1350
0
  }
1351
1352
0
  int nDataCodewords = makeDataCodewords(value, codewords);
1353
0
  if (nDataCodewords == maxDataCodewords) {
1354
0
    error(errSyntaxError, -1, "Too many codewords in PDF417 barcode");
1355
0
    return gFalse;
1356
0
  }
1357
1358
0
  int nErrorCorrectionCodewords = 1 << (errorCorrectionLevel + 1);
1359
1360
  // total codewords = 1 + nDataCodewords + nPadCodewords
1361
  //                   + nErrorCorrectionCodewords
1362
0
  int nRows = (1 + nDataCodewords + nErrorCorrectionCodewords + (nCols - 1))
1363
0
              / nCols;
1364
0
  if (nRows < 3) {
1365
0
    nRows = 3;
1366
0
  }
1367
0
  if (nRows > 90) {
1368
0
    error(errSyntaxError, -1, "Too many rows in PDF417 barcode");
1369
0
    return gFalse;
1370
0
  }
1371
0
  int nPadCodewords = nRows * nCols
1372
0
                      - (1 + nDataCodewords + nErrorCorrectionCodewords);
1373
0
  int length = 1 + nDataCodewords + nPadCodewords;
1374
0
  if (length > maxDataCodewords) {
1375
0
    error(errSyntaxError, -1, "Too many codewords in PDF417 barcode");
1376
0
    return gFalse;
1377
0
  }
1378
0
  codewords[0] = length;
1379
0
  for (int i = 1 + nDataCodewords; i < length; ++i) {
1380
0
    codewords[i] = 900;
1381
0
  }
1382
1383
0
  makeErrorCorrectionCodewords(errorCorrectionLevel, codewords, length);
1384
1385
  // we need at least 3 modules of vertical quiet space above and below
1386
  // (the spec says 2, but Adobe seems to use 3)
1387
0
  if (nRows * moduleHeight + 6 * moduleWidth > fieldHeight) {
1388
0
    error(errSyntaxError, -1, "Too many rows in PDF417 barcode");
1389
0
    return gFalse;
1390
0
  }
1391
1392
  // Adobe adjusts the module height to fill the available space
1393
0
  double moduleHeight2 = (fieldHeight - 6 * moduleWidth) / nRows;
1394
1395
0
  drawBarcode(codewords, length + nErrorCorrectionCodewords,
1396
0
        nRows, nCols, errorCorrectionLevel,
1397
0
        moduleWidth, moduleHeight2, fieldWidth, fieldHeight,
1398
0
        appearBuf);
1399
1400
0
  return gTrue;
1401
0
}
1402
1403
// Generate up to maxDataCodewords-1 codewords in codewords[1 .. m],
1404
// leaving codewords[0] unused.  Returns the number of generated
1405
// codewords (m), or maxDataCodewords if there are too many to fit.
1406
0
static int makeDataCodewords(GString *value, int *codewords) {
1407
0
  GBool textMode = gTrue;
1408
0
  int codewordIdx = 1;
1409
0
  int valueIdx = 0;
1410
0
  while (valueIdx < value->getLength()) {
1411
1412
0
    int nNumeric = countNumeric(value, valueIdx);
1413
0
    if (nNumeric >= 13) {
1414
0
      if (!appendDataCodeword(codewords, codewordIdx, numericModeLatch) ||
1415
0
    !makeNumericCodewords(value, valueIdx, nNumeric,
1416
0
        codewords, codewordIdx)) {
1417
0
  return maxDataCodewords;
1418
0
      }
1419
0
      valueIdx += nNumeric;
1420
0
      textMode = gFalse;
1421
1422
0
    } else {
1423
0
      int nText = countText(value, valueIdx);
1424
0
      if (nText >= 5) {
1425
0
  if (!textMode) {
1426
0
    if (!appendDataCodeword(codewords, codewordIdx, textModeLatch)) {
1427
0
      return maxDataCodewords;
1428
0
    }
1429
0
  }
1430
0
  if (!makeTextCodewords(value, valueIdx, nText,
1431
0
             codewords, codewordIdx)) {
1432
0
    return maxDataCodewords;
1433
0
  }
1434
0
  valueIdx += nText;
1435
0
  textMode = gTrue;
1436
1437
0
      } else {
1438
0
  int nBinary = countBinary(value, valueIdx);
1439
  //~ this doesn't currently use byte mode shift when nBinary==1
1440
  //~   because we don't track the text submode (which is needed
1441
  //~   because we'll return to that submode after the byte shift)
1442
0
  int code = (nBinary % 6 == 0) ? byteModeLatchMult6
1443
0
                                : byteModeLatchNonMult6;
1444
0
  if (!appendDataCodeword(codewords, codewordIdx, code) ||
1445
0
      !makeByteCodewords(value, valueIdx, nBinary,
1446
0
             codewords, codewordIdx)) {
1447
0
    return maxDataCodewords;
1448
0
  }
1449
0
  valueIdx += nBinary;
1450
0
  textMode = gFalse;
1451
0
      }
1452
0
    }
1453
0
  }
1454
1455
0
  return codewordIdx - 1;
1456
0
}
1457
1458
0
static int countNumeric(GString *value, int start) {
1459
0
  int n = 0;
1460
0
  for (int i = start; i < value->getLength(); ++i) {
1461
0
    char c = value->getChar(i);
1462
0
    if (!(c >= '0' && c <= '9')) {
1463
0
      break;
1464
0
    }
1465
0
    ++n;
1466
0
  }
1467
0
  return n;
1468
0
}
1469
1470
0
static int countText(GString *value, int start) {
1471
0
  int n = 0;
1472
0
  for (int i = start; i < value->getLength(); ++i) {
1473
0
    char c = value->getChar(i);
1474
0
    if ((c & 0x80) ||
1475
0
  (textCompaction[(int)c][0] == 30 &&
1476
0
   textCompaction[(int)c][1] == 30 &&
1477
0
   textCompaction[(int)c][2] == 30 &&
1478
0
   textCompaction[(int)c][3] == 30) ||
1479
0
  countNumeric(value, i) >= 13) {
1480
0
      break;
1481
0
    }
1482
0
    ++n;
1483
0
  }
1484
0
  return n;
1485
0
}
1486
1487
0
static int countBinary(GString *value, int start) {
1488
0
  int n = 0;
1489
0
  for (int i = start; i < value->getLength(); ++i) {
1490
0
    if (countNumeric(value, i) >= 13 ||
1491
0
  countText(value, i) >= 5) {
1492
0
      break;
1493
0
    }
1494
0
    ++n;
1495
0
  }
1496
0
  return n;
1497
0
}
1498
1499
static GBool makeNumericCodewords(GString *value, int start, int n,
1500
0
          int *codewords, int &codewordIdx) {
1501
0
  for (int i = 0; i < n; i += 44) {
1502
0
    int nInDigits = n - i;
1503
0
    if (nInDigits > 44) {
1504
0
      nInDigits = 44;
1505
0
    }
1506
0
    int inDigits[45];
1507
0
    inDigits[0] = 1;
1508
0
    for (int j = 0; j < nInDigits; ++j) {
1509
0
      inDigits[j+1] = value->getChar(start + i + j) - '0';
1510
0
    }
1511
0
    int nOutDigits = 1 + nInDigits / 3;
1512
0
    int outDigits[15];
1513
0
    for (int j = 0; j < nOutDigits; ++j) {
1514
0
      outDigits[nOutDigits - 1 - j] = divMod900(inDigits, nInDigits + 1);
1515
0
    }
1516
0
    for (int j = 0; j < nOutDigits; ++j) {
1517
0
      if (!appendDataCodeword(codewords, codewordIdx, outDigits[j])) {
1518
0
  return gFalse;
1519
0
      }
1520
0
    }
1521
0
  }
1522
0
  return gTrue;
1523
0
}
1524
1525
// Given x = sum(i = 0..n-1, d[i] * 10^(n-1-i))
1526
// Compute x' = x / 900 and return x % 900.
1527
0
static int divMod900(int *d, int n) {
1528
0
  int r = 0;
1529
0
  for (int i = 0; i < n; ++i) {
1530
0
    int dd = r * 10 + d[i];
1531
0
    d[i] = dd / 900;
1532
0
    r = dd % 900;
1533
0
  }
1534
0
  return r;
1535
0
}
1536
1537
static GBool makeByteCodewords(GString *value, int start, int n,
1538
0
             int *codewords, int &codewordIdx) {
1539
0
  int i;
1540
0
  for (i = 0; i <= n - 6; i += 6) {
1541
0
    long long in = 0;
1542
0
    for (int j = 0; j < 6; ++j) {
1543
0
      in = (in << 8) | (value->getChar(start + i + j) & 0xff);
1544
0
    }
1545
0
    int outCodes[5];
1546
0
    for (int j = 4; j >= 0; --j) {
1547
0
      outCodes[j] = (int)(in % 900);
1548
0
      in /= 900;
1549
0
    }
1550
0
    for (int j = 0; j < 4; ++j) {
1551
0
      if (!appendDataCodeword(codewords, codewordIdx, outCodes[j])) {
1552
0
  return gFalse;
1553
0
      }
1554
0
    }
1555
0
  }
1556
0
  for (; i < n; ++i) {
1557
0
    if (!appendDataCodeword(codewords, codewordIdx,
1558
0
          value->getChar(start + i) & 0xff)) {
1559
0
      return gFalse;
1560
0
    }
1561
0
  }
1562
0
  return gTrue;
1563
0
}
1564
1565
static GBool makeTextCodewords(GString *value, int start, int n,
1566
0
             int *codewords, int &codewordIdx) {
1567
0
  int submode = textSubmodeAlpha;
1568
0
  int prevSubmode = textSubmodeAlpha;
1569
0
  int nextSubmode;
1570
0
  int prevHalfSymbol = 30;
1571
0
  int valueIdx = start;
1572
0
  while (valueIdx < start + n) {
1573
0
    int c = value->getChar(valueIdx) & 0x7f;
1574
0
    nextSubmode = submode;
1575
0
    switch (submode) {
1576
0
    case textSubmodeAlpha:
1577
0
      if (textCompaction[c][textSubmodeAlpha] < 30) {
1578
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1579
0
          textCompaction[c][textSubmodeAlpha],
1580
0
          prevHalfSymbol)) {
1581
0
    return gFalse;
1582
0
  }
1583
0
  ++valueIdx;
1584
0
      } else if (textCompaction[c][textSubmodeLower] < 30) {
1585
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1586
0
          textAlphaLowerLatch, prevHalfSymbol)) {
1587
0
    return gFalse;
1588
0
  }
1589
0
  nextSubmode = textSubmodeLower;
1590
0
      } else if (textCompaction[c][textSubmodeMixed] < 30) {
1591
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1592
0
          textAlphaMixedLatch, prevHalfSymbol)) {
1593
0
    return gFalse;
1594
0
  }
1595
0
  nextSubmode = textSubmodeMixed;
1596
0
      } else if (textCompaction[c][textSubmodePunc] < 30) {
1597
0
  if (valueIdx < start + n - 2 &&
1598
0
      textCompaction[value->getChar(valueIdx + 1) & 0x7f]
1599
0
                    [textSubmodePunc] < 30 &&
1600
0
      textCompaction[value->getChar(valueIdx + 2) & 0x7f]
1601
0
                    [textSubmodePunc] < 30) {
1602
0
    if (!appendTextHalfSymbol(codewords, codewordIdx,
1603
0
            textAlphaMixedLatch, prevHalfSymbol) ||
1604
0
        !appendTextHalfSymbol(codewords, codewordIdx,
1605
0
            textMixedPuncLatch, prevHalfSymbol)) {
1606
0
      return gFalse;
1607
0
    }
1608
0
    nextSubmode = textSubmodePunc;
1609
0
  } else {
1610
0
    if (!appendTextHalfSymbol(codewords, codewordIdx,
1611
0
            textAlphaPuncShift, prevHalfSymbol)) {
1612
0
      return gFalse;
1613
0
    }
1614
0
    nextSubmode = textSubmodePuncShift;
1615
0
  }
1616
0
      } else {
1617
  // this shouldn't happen
1618
0
  ++valueIdx;
1619
0
      }
1620
0
      break;
1621
0
    case textSubmodeAlphaShift:
1622
0
      if (textCompaction[c][textSubmodeAlpha] < 30) {
1623
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1624
0
          textCompaction[c][textSubmodeAlpha],
1625
0
          prevHalfSymbol)) {
1626
0
    return gFalse;
1627
0
  }
1628
0
  ++valueIdx;
1629
0
      } else {
1630
  // this shouldn't happen
1631
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1632
0
          0, prevHalfSymbol)) {
1633
0
    return gFalse;
1634
0
  }
1635
0
      }
1636
0
      nextSubmode = prevSubmode;
1637
0
      break;
1638
0
    case textSubmodeLower:
1639
0
      if (textCompaction[c][textSubmodeAlpha] < 30) {
1640
0
  if (valueIdx < start + n - 2 &&
1641
0
      textCompaction[value->getChar(valueIdx + 1) & 0x7f]
1642
0
                    [textSubmodeAlpha] < 30 &&
1643
0
      textCompaction[value->getChar(valueIdx + 2) & 0x7f]
1644
0
                    [textSubmodeAlpha] < 30) {
1645
0
    if (!appendTextHalfSymbol(codewords, codewordIdx,
1646
0
            textLowerMixedLatch, prevHalfSymbol) ||
1647
0
        !appendTextHalfSymbol(codewords, codewordIdx,
1648
0
            textMixedAlphaLatch, prevHalfSymbol)) {
1649
0
      return gFalse;
1650
0
    }
1651
0
    nextSubmode = textSubmodeAlpha;
1652
0
  } else {
1653
0
    if (!appendTextHalfSymbol(codewords, codewordIdx,
1654
0
            textLowerAlphaShift, prevHalfSymbol)) {
1655
0
      return gFalse;
1656
0
    }
1657
0
    nextSubmode = textSubmodeAlphaShift;
1658
0
  }
1659
0
      } else if (textCompaction[c][textSubmodeLower] < 30) {
1660
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1661
0
          textCompaction[c][textSubmodeLower],
1662
0
          prevHalfSymbol)) {
1663
0
    return gFalse;
1664
0
  }
1665
0
  ++valueIdx;
1666
0
      } else if (textCompaction[c][textSubmodeMixed] < 30) {
1667
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1668
0
          textLowerMixedLatch, prevHalfSymbol)) {
1669
0
    return gFalse;
1670
0
  }
1671
0
  nextSubmode = textSubmodeMixed;
1672
0
      } else if (textCompaction[c][textSubmodePunc] < 30) {
1673
0
  if (valueIdx < start + n - 2 &&
1674
0
      textCompaction[value->getChar(valueIdx + 1) & 0x7f]
1675
0
                    [textSubmodePunc] < 30 &&
1676
0
      textCompaction[value->getChar(valueIdx + 2) & 0x7f]
1677
0
                    [textSubmodePunc] < 30) {
1678
0
    if (!appendTextHalfSymbol(codewords, codewordIdx,
1679
0
            textLowerMixedLatch, prevHalfSymbol) ||
1680
0
        !appendTextHalfSymbol(codewords, codewordIdx,
1681
0
            textMixedPuncLatch, prevHalfSymbol)) {
1682
0
      return gFalse;
1683
0
    }
1684
0
    nextSubmode = textSubmodePunc;
1685
0
  } else {
1686
0
    if (!appendTextHalfSymbol(codewords, codewordIdx,
1687
0
            textLowerPuncShift, prevHalfSymbol)) {
1688
0
      return gFalse;
1689
0
    }
1690
0
    nextSubmode = textSubmodePuncShift;
1691
0
  }
1692
0
      } else {
1693
  // this shouldn't happen
1694
0
  ++valueIdx;
1695
0
      }
1696
0
      break;
1697
0
    case textSubmodeMixed:
1698
0
      if (textCompaction[c][textSubmodeAlpha] < 30) {
1699
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1700
0
          textMixedAlphaLatch, prevHalfSymbol)) {
1701
0
    return gFalse;
1702
0
  }
1703
0
  nextSubmode = textSubmodeAlpha;
1704
0
      } else if (textCompaction[c][textSubmodeLower] < 30) {
1705
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1706
0
          textMixedLowerLatch, prevHalfSymbol)) {
1707
0
    return gFalse;
1708
0
  }
1709
0
  nextSubmode = textSubmodeLower;
1710
0
      } else if (textCompaction[c][textSubmodeMixed] < 30) {
1711
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1712
0
          textCompaction[c][textSubmodeMixed],
1713
0
          prevHalfSymbol)) {
1714
0
    return gFalse;
1715
0
  }
1716
0
  ++valueIdx;
1717
0
      } else if (textCompaction[c][textSubmodePunc] < 30) {
1718
0
  if (valueIdx < start + n - 1 &&
1719
0
      textCompaction[value->getChar(valueIdx + 1) & 0x7f]
1720
0
                    [textSubmodePunc] < 30) {
1721
0
    if (!appendTextHalfSymbol(codewords, codewordIdx,
1722
0
            textMixedPuncLatch, prevHalfSymbol)) {
1723
0
      return gFalse;
1724
0
    }
1725
0
    nextSubmode = textSubmodePunc;
1726
0
  } else {
1727
0
    if (!appendTextHalfSymbol(codewords, codewordIdx,
1728
0
            textMixedPuncShift, prevHalfSymbol)) {
1729
0
      return gFalse;
1730
0
    }
1731
0
    nextSubmode = textSubmodePuncShift;
1732
0
  }
1733
0
      } else {
1734
  // this shouldn't happen
1735
0
  ++valueIdx;
1736
0
      }
1737
0
      break;
1738
0
    case textSubmodePunc:
1739
0
      if (textCompaction[c][textSubmodeAlpha] < 30) {
1740
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1741
0
          textPuncAlphaLatch, prevHalfSymbol)) {
1742
0
    return gFalse;
1743
0
  }
1744
0
  nextSubmode = textSubmodeAlpha;
1745
0
      } else if (textCompaction[c][textSubmodeLower] < 30) {
1746
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1747
0
          textPuncAlphaLatch, prevHalfSymbol) ||
1748
0
      !appendTextHalfSymbol(codewords, codewordIdx,
1749
0
          textAlphaLowerLatch, prevHalfSymbol)) {
1750
0
    return gFalse;
1751
0
  }
1752
0
  nextSubmode = textSubmodeLower;
1753
0
      } else if (textCompaction[c][textSubmodeMixed] < 30) {
1754
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1755
0
          textPuncAlphaLatch, prevHalfSymbol) ||
1756
0
      !appendTextHalfSymbol(codewords, codewordIdx,
1757
0
          textAlphaMixedLatch, prevHalfSymbol)) {
1758
0
    return gFalse;
1759
0
  }
1760
0
  nextSubmode = textSubmodeMixed;
1761
0
      } else if (textCompaction[c][textSubmodePunc] < 30) {
1762
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1763
0
          textCompaction[c][textSubmodePunc],
1764
0
          prevHalfSymbol)) {
1765
0
    return gFalse;
1766
0
  }
1767
0
  ++valueIdx;
1768
0
      } else {
1769
  // this shouldn't happen
1770
0
  ++valueIdx;
1771
0
      }
1772
0
      break;
1773
0
    case textSubmodePuncShift:
1774
0
      if (textCompaction[c][textSubmodePunc] < 30) {
1775
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1776
0
          textCompaction[c][textSubmodePunc],
1777
0
          prevHalfSymbol)) {
1778
0
    return gFalse;
1779
0
  }
1780
0
  ++valueIdx;
1781
0
      } else {
1782
  // this shouldn't happen
1783
0
  if (!appendTextHalfSymbol(codewords, codewordIdx,
1784
0
          0, prevHalfSymbol)) {
1785
0
    return gFalse;
1786
0
  }
1787
0
      }
1788
0
      nextSubmode = prevSubmode;
1789
0
      break;
1790
0
    }
1791
0
    prevSubmode = submode;
1792
0
    submode = nextSubmode;
1793
0
  }
1794
1795
  // padding
1796
0
  if (prevHalfSymbol < 30) {
1797
0
    appendTextHalfSymbol(codewords, codewordIdx, 29, prevHalfSymbol);
1798
0
  }
1799
1800
0
  return gTrue;
1801
0
}
1802
1803
static GBool appendTextHalfSymbol(int *codewords, int &codewordIdx,
1804
0
          int halfSymbol, int &prevHalfSymbol) {
1805
0
  if (prevHalfSymbol == 30) {
1806
0
    prevHalfSymbol = halfSymbol;
1807
0
  } else {
1808
0
    int codeword = prevHalfSymbol * 30 + halfSymbol;
1809
0
    if (!appendDataCodeword(codewords, codewordIdx, codeword)) {
1810
0
      return gFalse;
1811
0
    }
1812
0
    prevHalfSymbol = 30;
1813
0
  }
1814
0
  return gTrue;
1815
0
}
1816
1817
static GBool appendDataCodeword(int *codewords, int &codewordIdx,
1818
0
        int codeword) {
1819
0
  if (codewordIdx >= maxDataCodewords) {
1820
0
    return gFalse;
1821
0
  }
1822
0
  codewords[codewordIdx++] = codeword;
1823
0
  return gTrue;
1824
0
}
1825
1826
// Compute the error correction codewords and add to codewords[].
1827
static void makeErrorCorrectionCodewords(int errorCorrectionLevel,
1828
0
           int *codewords, int length) {
1829
0
  int e[1 << (maxErrorCorrectionLevel + 1)];
1830
0
  int k = 1 << (errorCorrectionLevel + 1);
1831
0
  for (int i = 0; i < k; ++i) {
1832
0
    e[i] = 0;
1833
0
  }
1834
0
  for (int i = 0; i < length; ++i) {
1835
0
    int t1 = (codewords[i] + e[k-1]) % 929;
1836
0
    int t2, t3;
1837
0
    for (int j = k-1; j >= 1; --j) {
1838
0
      t2 = (t1 * errorCorrectionCoeff[errorCorrectionLevel][j]) % 929;
1839
0
      t3 = 929 - t2;
1840
0
      e[j] = (e[j-1] + t3) % 929;
1841
0
    }
1842
0
    t2 = (t1 * errorCorrectionCoeff[errorCorrectionLevel][0]) % 929;
1843
0
    t3 = 929 - t2;
1844
0
    e[0] = t3 % 929;
1845
0
  }
1846
0
  int j = length;
1847
0
  for (int i = k-1; i >= 0; --i) {
1848
0
    int ee = e[i] ? (929 - e[i]) : 0;
1849
0
    codewords[j++] = ee;
1850
0
  }
1851
0
}
1852
1853
// Draw the barcode in the rectangle (0, 0, fieldWidth, fieldHeight).
1854
static void drawBarcode(int *codewords, int totalLength,
1855
      int nRows, int nCols,
1856
      int errorCorrectionLevel,
1857
      double moduleWidth, double moduleHeight,
1858
      double fieldWidth, double fieldHeight,
1859
0
      GString *appearBuf) {
1860
0
  double w = (73 + nCols * 17) * moduleWidth;
1861
0
  double h = nRows * moduleHeight;
1862
0
  double x0 = 0.5 * (fieldWidth - w);
1863
0
  double y0 = 0.5 * (fieldHeight - h);
1864
1865
0
  appearBuf->append("0 g q\n");
1866
0
  appearBuf->appendf("{0:.4f} 0 0 {1:.4f} {2:.4f} {3:.4f} cm\n",
1867
0
         moduleWidth, moduleHeight, x0, y0);
1868
1869
0
  int i = 0;
1870
0
  for (int row = 0; row < nRows; ++row) {
1871
0
    int cluster = row % 3;
1872
0
    int y = nRows - 1 - row;
1873
0
    int left = 0;
1874
0
    int right = 0;
1875
0
    switch (cluster) {
1876
0
    case 0:
1877
0
      left = 30 * (row / 3) + (nRows - 1) / 3;
1878
0
      right = 30 * (row / 3) + (nCols - 1);
1879
0
      break;
1880
0
    case 1:
1881
0
      left = 30 * (row / 3) + (errorCorrectionLevel * 3) + (nRows - 1) % 3;
1882
0
      right = 30 * (row / 3) + (nRows - 1) / 3;
1883
0
      break;
1884
0
    case 2:
1885
0
      left = 30 * (row / 3) + (nCols - 1);
1886
0
      right = 30 * (row / 3) + (errorCorrectionLevel * 3) + (nRows - 1) % 3;
1887
0
      break;
1888
0
    }
1889
0
    int x = 0;
1890
0
    drawPattern(x, y, startPattern, startPatternLength, appearBuf);
1891
0
    drawPattern(x, y, patterns[left][cluster], patternLength, appearBuf);
1892
0
    for (int col = 0; col < nCols; ++col) {
1893
0
      drawPattern(x, y, patterns[codewords[i]][cluster], patternLength,
1894
0
      appearBuf);
1895
0
      ++i;
1896
0
    }
1897
0
    drawPattern(x, y, patterns[right][cluster], patternLength, appearBuf);
1898
0
    drawPattern(x, y, stopPattern, stopPatternLength, appearBuf);
1899
0
  }
1900
1901
0
  appearBuf->append("Q\n");
1902
0
}
1903
1904
static void drawPattern(int &x, int y, char *pattern, int length,
1905
0
      GString *appearBuf) {
1906
0
  for (int i = 0; i < length; ++i) {
1907
0
    if (!(i & 1)) {
1908
0
      appearBuf->appendf("{0:d} {1:d} {2:d} 1 re f\n", x, y, pattern[i]);
1909
0
    }
1910
0
    x += pattern[i];
1911
0
  }
1912
0
}