-
Notifications
You must be signed in to change notification settings - Fork 17
/
CHALLENGE.NB
623 lines (585 loc) · 37.7 KB
/
CHALLENGE.NB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
In[1]:= m = {x1, x2, x3, x4, x5, x6, x7, x8, x9, x10, x11, x12, x13,
x14, x15, x16, x17, x18, x19, x20, x21, x22, x23, x24, x25, x26,
x27, x28, x29, x30, x31, x32, x33, x34, x35, x36, x37, x38, x39,
x40, x41, x42, x43, x44, x45, x46, x47, x48, x49, x50, x51, x52,
x53, x54, x55, x56, x57, x58, x59, x60, x61, x62, x63, x64, x65,
x66, x67, x68, x69, x70, x71, x72, x73, x74, x75, x76, x77, x78,
x79, x80, x81, x82, x83, x84, x85, x86, x87, x88, x89, x90, x91,
x92, x93, x94, x95, x96, x97, x98, x99, x100, x101, x102, x103,
x104, x105, x106, x107, x108, x109, x110, x111, x112, x113, x114,
x115, x116, x117, x118, x119, x120, x121, x122, x123, x124, x125,
x126, x127, x128};
In[2]:= r = {r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, r13,
r14, r15, r16, r17, r18, r19, r20, r21, r22, r23, r24, r25, r26,
r27, r28, r29, r30, r31, r32, r33, r34, r35, r36, r37, r38, r39,
r40, r41, r42, r43, r44, r45, r46, r47, r48, r49, r50, r51, r52,
r53, r54, r55, r56, r57, r58, r59, r60, r61, r62, r63, r64, r65,
r66, r67, r68, r69, r70, r71, r72, r73, r74, r75, r76, r77, r78,
r79, r80, r81, r82, r83, r84, r85, r86, r87, r88, r89, r90, r91,
r92, r93, r94, r95, r96, r97, r98, r99, r100, r101, r102, r103,
r104, r105, r106, r107, r108, r109, r110, r111, r112, r113, r114,
r115, r116, r117, r118, r119, r120, r121, r122, r123, r124, r125,
r126, r127, r128};
In[3]:= MO = 3;
In[4]:= G[t_] :=
Table[PolynomialMod[
Sum[Product[
t[[RandomInteger[{1, 64}]]], {i, RandomInteger[{1, MO}]}], {j,
10}], 2], {row, 64}]
In[5]:= Rvec[t_] :=
Table[PolynomialMod[
Sum[Product[
t[[RandomInteger[{64, 128}]]], {i, RandomInteger[{1, 2}]}], {j,
5}], 2], {row, 64}]
In[6]:= CT = Table[RandomInteger[{0, 1}], {i, 64}, {j, 2081}];
In[7]:= F[x_] := {1, x[[31]]*x[[64]], x[[63]]*x[[32]],
x[[33]]*x[[62]], x[[34]]*x[[61]], x[[35]]*x[[60]], x[[45]]*x[[50]],
x[[51]]*x[[44]], x[[52]]*x[[43]], x[[42]]*x[[53]], x[[41]]*x[[54]],
x[[40]]*x[[55]], x[[49]], x[[59]]*x[[39]], x[[5]]*x[[64]],
x[[63]]*x[[6]], x[[62]]*x[[7]], x[[8]]*x[[61]], x[[60]]*x[[9]],
x[[1]]*x[[64]], x[[2]]*x[[63]], x[[62]]*x[[3]], x[[4]]*x[[61]],
x[[5]]*x[[60]], x[[40]], x[[5]]*x[[39]], x[[6]]*x[[38]],
x[[37]]*x[[7]], x[[36]]*x[[8]], x[[35]]*x[[9]], x[[20]]*x[[60]],
x[[50]]*x[[30]], x[[29]]*x[[64]], x[[59]]*x[[34]], x[[35]]*x[[58]],
x[[36]]*x[[57]], x[[56]]*x[[37]], x[[46]]*x[[47]], x[[45]]*x[[48]],
x[[49]]*x[[44]], x[[54]]*x[[39]], x[[38]]*x[[55]], x[[64]]*x[[9]],
x[[5]]*x[[10]], x[[11]]*x[[4]], x[[12]]*x[[3]], x[[2]]*x[[13]],
x[[1]]*x[[14]], x[[20]]*x[[64]], x[[63]]*x[[21]], x[[62]]*x[[22]],
x[[23]]*x[[61]], x[[24]]*x[[60]], x[[41]]*x[[43]], x[[40]]*x[[44]],
x[[50]]*x[[34]], x[[33]]*x[[51]], x[[32]]*x[[52]], x[[53]]*x[[31]],
x[[54]]*x[[30]], x[[25]]*x[[64]], x[[63]]*x[[26]], x[[62]]*x[[27]],
x[[28]]*x[[61]], x[[29]]*x[[60]], x[[59]]*x[[30]], x[[31]]*x[[58]],
x[[32]]*x[[57]], x[[33]]*x[[56]], x[[45]]*x[[44]], x[[46]]*x[[43]],
x[[42]]*x[[47]], x[[41]]*x[[48]], x[[49]]*x[[40]], x[[50]]*x[[39]],
x[[51]]*x[[38]], x[[37]]*x[[52]], x[[36]]*x[[53]], x[[35]]*x[[54]],
x[[34]]*x[[55]], x[[60]]*x[[30]], x[[50]]*x[[40]], x[[12]]*x[[19]],
x[[13]]*x[[18]], x[[14]]*x[[17]], x[[15]]*x[[16]], x[[20]]*x[[14]],
x[[21]]*x[[13]], x[[12]]*x[[22]], x[[11]]*x[[23]], x[[10]]*x[[24]],
x[[64]]*x[[19]], x[[59]]*x[[24]], x[[25]]*x[[58]], x[[57]]*x[[26]],
x[[56]]*x[[27]], x[[44]]*x[[39]], x[[45]]*x[[38]], x[[46]]*x[[37]],
x[[36]]*x[[47]], x[[35]]*x[[48]], x[[49]]*x[[34]], x[[29]]*x[[54]],
x[[28]]*x[[55]], x[[63]]*x[[10]], x[[62]]*x[[11]], x[[12]]*x[[61]],
x[[60]]*x[[13]], x[[33]]*x[[40]], x[[41]]*x[[32]], x[[42]]*x[[31]],
x[[43]]*x[[30]], x[[50]]*x[[23]], x[[51]]*x[[22]], x[[52]]*x[[21]],
x[[20]]*x[[53]], x[[10]]*x[[17]], x[[16]]*x[[11]], x[[15]]*x[[12]],
x[[14]]*x[[13]], x[[4]]*x[[19]], x[[5]]*x[[18]], x[[6]]*x[[17]],
x[[16]]*x[[7]], x[[15]]*x[[8]], x[[14]]*x[[9]], x[[29]]*x[[13]],
x[[28]]*x[[14]], x[[23]]*x[[19]], x[[24]]*x[[18]], x[[25]]*x[[17]],
x[[16]]*x[[26]], x[[15]]*x[[27]], x[[12]]*x[[11]], x[[10]]*x[[13]],
x[[62]], x[[57]], x[[32]]*x[[30]], x[[40]]*x[[22]], x[[41]]*x[[21]],
x[[42]]*x[[20]], x[[12]]*x[[50]], x[[51]]*x[[11]], x[[10]]*x[[52]],
x[[59]]*x[[13]], x[[14]]*x[[58]], x[[15]]*x[[57]], x[[56]]*x[[16]],
x[[33]]*x[[39]], x[[38]]*x[[34]], x[[37]]*x[[35]], x[[29]]*x[[43]],
x[[28]]*x[[44]], x[[45]]*x[[27]], x[[46]]*x[[26]], x[[25]]*x[[47]],
x[[24]]*x[[48]], x[[49]]*x[[23]], x[[53]]*x[[19]], x[[54]]*x[[18]],
x[[17]]*x[[55]], x[[63]]*x[[50]], x[[51]]*x[[62]], x[[52]]*x[[61]],
x[[53]]*x[[60]], x[[32]]*x[[10]], x[[11]]*x[[31]], x[[12]]*x[[30]],
x[[29]]*x[[5]], x[[28]]*x[[6]], x[[20]]*x[[22]], x[[25]]*x[[9]],
x[[8]]*x[[26]], x[[27]]*x[[7]], x[[16]]*x[[19]], x[[17]]*x[[18]],
x[[36]]*x[[64]], x[[63]]*x[[37]], x[[62]]*x[[38]], x[[61]]*x[[39]],
x[[59]]*x[[41]], x[[42]]*x[[58]], x[[57]]*x[[43]], x[[56]]*x[[44]],
x[[49]]*x[[51]], x[[52]]*x[[48]], x[[53]]*x[[47]], x[[46]]*x[[54]],
x[[45]]*x[[55]], x[[50]]*x[[4]], x[[51]]*x[[3]], x[[2]]*x[[52]],
x[[1]]*x[[53]], x[[59]]*x[[45]], x[[46]]*x[[58]], x[[57]]*x[[47]],
x[[56]]*x[[48]], x[[49]]*x[[55]], x[[39]]*x[[19]], x[[56]]*x[[64]],
x[[63]]*x[[57]], x[[62]]*x[[58]], x[[59]]*x[[61]], x[[1]]*x[[57]],
x[[2]]*x[[56]], x[[50]]*x[[8]], x[[51]]*x[[7]], x[[6]]*x[[52]],
x[[5]]*x[[53]], x[[4]]*x[[54]], x[[3]]*x[[55]], x[[38]],
x[[41]]*x[[64]], x[[63]]*x[[42]], x[[62]]*x[[43]], x[[44]]*x[[61]],
x[[45]]*x[[60]], x[[52]]*x[[53]], x[[51]]*x[[54]], x[[50]]*x[[55]],
x[[40]]*x[[61]], x[[41]]*x[[60]], x[[51]]*x[[50]], x[[59]]*x[[7]],
x[[8]]*x[[58]], x[[57]]*x[[9]], x[[6]]*x[[20]], x[[5]]*x[[21]],
x[[4]]*x[[22]], x[[23]]*x[[3]], x[[2]]*x[[24]], x[[25]]*x[[1]],
x[[59]]*x[[3]], x[[4]]*x[[58]], x[[5]]*x[[57]], x[[6]]*x[[56]],
x[[53]]*x[[9]], x[[8]]*x[[54]], x[[55]]*x[[7]], x[[60]]*x[[64]],
x[[63]]*x[[61]], x[[7]], x[[46]]*x[[9]], x[[8]]*x[[47]],
x[[48]]*x[[7]], x[[49]]*x[[6]], x[[59]]*x[[55]], x[[56]]*x[[58]],
x[[45]]*x[[64]], x[[46]]*x[[63]], x[[62]]*x[[47]], x[[61]]*x[[48]],
x[[49]]*x[[60]], x[[59]]*x[[50]], x[[51]]*x[[58]], x[[52]]*x[[57]],
x[[56]]*x[[53]], x[[54]]*x[[55]], x[[10]]*x[[35]], x[[11]]*x[[34]],
x[[33]]*x[[12]], x[[32]]*x[[13]], x[[31]]*x[[14]], x[[15]]*x[[30]],
x[[23]]*x[[22]], x[[24]]*x[[21]], x[[25]]*x[[20]], x[[47]]*x[[9]],
x[[8]]*x[[48]], x[[49]]*x[[7]], x[[61]]*x[[30]], x[[31]]*x[[60]],
x[[41]]*x[[50]], x[[51]]*x[[40]], x[[19]], x[[11]]*x[[38]],
x[[12]]*x[[37]], x[[36]]*x[[13]], x[[35]]*x[[14]], x[[15]]*x[[34]],
x[[33]]*x[[16]], x[[32]]*x[[17]], x[[31]]*x[[18]], x[[30]]*x[[19]],
x[[29]]*x[[20]], x[[28]]*x[[21]], x[[25]]*x[[24]], x[[23]]*x[[26]],
x[[22]]*x[[27]], x[[10]]*x[[39]], x[[16]], x[[39]]*x[[18]],
x[[38]]*x[[19]], x[[28]]*x[[29]], x[[1]]*x[[4]], x[[2]]*x[[3]],
x[[14]]*x[[39]], x[[15]]*x[[38]], x[[37]]*x[[16]], x[[36]]*x[[17]],
x[[35]]*x[[18]], x[[34]]*x[[19]], x[[29]]*x[[24]], x[[28]]*x[[25]],
x[[26]]*x[[27]], x[[35]]*x[[64]], x[[63]]*x[[36]], x[[62]]*x[[37]],
x[[38]]*x[[61]], x[[60]]*x[[39]], x[[59]]*x[[40]], x[[41]]*x[[58]],
x[[42]]*x[[57]], x[[56]]*x[[43]], x[[49]]*x[[50]], x[[51]]*x[[48]],
x[[52]]*x[[47]], x[[46]]*x[[53]], x[[45]]*x[[54]], x[[44]]*x[[55]],
x[[12]], x[[10]]*x[[1]], x[[45]], x[[15]]*x[[19]], x[[16]]*x[[18]],
x[[10]]*x[[31]], x[[11]]*x[[30]], x[[20]]*x[[21]], x[[8]]*x[[19]],
x[[9]]*x[[18]], x[[28]]*x[[59]], x[[29]]*x[[58]], x[[48]]*x[[39]],
x[[49]]*x[[38]], x[[43]]*x[[9]], x[[8]]*x[[44]], x[[45]]*x[[7]],
x[[46]]*x[[6]], x[[5]]*x[[47]], x[[4]]*x[[48]], x[[49]]*x[[3]],
x[[1]]*x[[17]], x[[2]]*x[[16]], x[[15]]*x[[3]], x[[4]]*x[[14]],
x[[10]]*x[[8]], x[[11]]*x[[7]], x[[12]]*x[[6]], x[[5]]*x[[13]],
x[[52]], x[[8]]*x[[40]], x[[41]]*x[[7]], x[[42]]*x[[6]],
x[[5]]*x[[43]], x[[4]]*x[[44]], x[[45]]*x[[3]], x[[46]]*x[[2]],
x[[1]]*x[[47]], x[[1]]*x[[9]], x[[2]]*x[[8]], x[[3]]*x[[7]],
x[[6]]*x[[4]], x[[63]]*x[[1]], x[[2]]*x[[62]], x[[3]]*x[[61]],
x[[4]]*x[[60]], x[[14]]*x[[64]], x[[15]]*x[[63]], x[[62]]*x[[16]],
x[[17]]*x[[61]], x[[60]]*x[[18]], x[[20]]*x[[58]], x[[57]]*x[[21]],
x[[56]]*x[[22]], x[[38]]*x[[40]], x[[41]]*x[[37]], x[[42]]*x[[36]],
x[[35]]*x[[43]], x[[44]]*x[[34]], x[[33]]*x[[45]], x[[46]]*x[[32]],
x[[31]]*x[[47]], x[[48]]*x[[30]], x[[28]]*x[[50]], x[[51]]*x[[27]],
x[[52]]*x[[26]], x[[25]]*x[[53]], x[[24]]*x[[54]], x[[23]]*x[[55]],
x[[28]]*x[[10]], x[[20]]*x[[18]], x[[21]]*x[[17]], x[[16]]*x[[22]],
x[[15]]*x[[23]], x[[24]]*x[[14]], x[[25]]*x[[13]], x[[12]]*x[[26]],
x[[11]]*x[[27]], x[[5]]*x[[9]], x[[6]]*x[[8]], x[[40]]*x[[4]],
x[[41]]*x[[3]], x[[2]]*x[[42]], x[[1]]*x[[43]], x[[36]]*x[[1]],
x[[2]]*x[[35]], x[[3]]*x[[34]], x[[33]]*x[[4]], x[[32]]*x[[5]],
x[[6]]*x[[31]], x[[30]]*x[[7]], x[[28]]*x[[1]], x[[20]]*x[[9]],
x[[8]]*x[[21]], x[[22]]*x[[7]], x[[6]]*x[[23]], x[[5]]*x[[24]],
x[[25]]*x[[4]], x[[26]]*x[[3]], x[[2]]*x[[27]], x[[38]]*x[[3]],
x[[37]]*x[[4]], x[[5]]*x[[36]], x[[6]]*x[[35]], x[[34]]*x[[7]],
x[[33]]*x[[8]], x[[32]]*x[[9]], x[[2]]*x[[39]], x[[32]]*x[[1]],
x[[2]]*x[[31]], x[[3]]*x[[30]], x[[59]]*x[[17]], x[[58]]*x[[18]],
x[[57]]*x[[19]], x[[37]]*x[[39]], x[[29]]*x[[47]], x[[28]]*x[[48]],
x[[49]]*x[[27]], x[[29]]*x[[9]], x[[32]]*x[[20]], x[[31]]*x[[21]],
x[[22]]*x[[30]], x[[12]]*x[[40]], x[[41]]*x[[11]], x[[42]]*x[[10]],
x[[10]]*x[[57]], x[[56]]*x[[11]], x[[25]]*x[[39]], x[[38]]*x[[26]],
x[[37]]*x[[30]], x[[37]]*x[[27]], x[[36]]*x[[31]], x[[28]]*x[[36]],
x[[32]]*x[[35]], x[[29]]*x[[35]], x[[33]]*x[[34]], x[[40]]*x[[27]],
x[[41]]*x[[26]], x[[25]]*x[[42]], x[[24]]*x[[43]], x[[23]]*x[[44]],
x[[45]]*x[[22]], x[[45]]*x[[19]], x[[46]]*x[[18]], x[[46]]*x[[21]],
x[[47]]*x[[17]], x[[20]]*x[[47]], x[[16]]*x[[48]], x[[15]]*x[[49]],
x[[50]]*x[[17]], x[[51]]*x[[16]], x[[15]]*x[[52]], x[[53]]*x[[14]],
x[[54]]*x[[13]], x[[12]]*x[[55]], x[[29]]*x[[39]], x[[49]]*x[[19]],
x[[38]]*x[[7]], x[[37]]*x[[8]], x[[36]]*x[[9]], x[[6]]*x[[39]],
x[[23]], x[[2]]*x[[20]], x[[1]]*x[[21]], x[[21]]*x[[39]],
x[[38]]*x[[22]], x[[37]]*x[[23]], x[[36]]*x[[24]], x[[25]]*x[[35]],
x[[34]], x[[26]]*x[[34]], x[[33]]*x[[27]], x[[28]]*x[[32]],
x[[29]]*x[[31]], x[[41]]*x[[19]], x[[42]]*x[[18]], x[[17]]*x[[43]],
x[[16]]*x[[44]], x[[15]]*x[[45]], x[[46]]*x[[14]], x[[47]]*x[[13]],
x[[12]]*x[[48]], x[[49]]*x[[11]], x[[36]]*x[[20]], x[[35]]*x[[21]],
x[[22]]*x[[34]], x[[33]]*x[[23]], x[[32]]*x[[24]], x[[25]]*x[[31]],
x[[26]]*x[[30]], x[[16]]*x[[40]], x[[15]]*x[[41]], x[[42]]*x[[14]],
x[[13]]*x[[43]], x[[12]]*x[[44]], x[[11]]*x[[45]], x[[46]]*x[[10]],
x[[3]], x[[27]], x[[6]]*x[[64]], x[[63]]*x[[7]], x[[62]]*x[[8]],
x[[9]]*x[[61]], x[[48]], x[[64]]*x[[18]], x[[63]]*x[[19]],
x[[59]]*x[[23]], x[[24]]*x[[58]], x[[25]]*x[[57]], x[[56]]*x[[26]],
x[[43]]*x[[39]], x[[38]]*x[[44]], x[[37]]*x[[45]], x[[46]]*x[[36]],
x[[35]]*x[[47]], x[[34]]*x[[48]], x[[33]]*x[[49]], x[[29]]*x[[53]],
x[[28]]*x[[54]], x[[55]]*x[[27]], x[[2]]*x[[64]], x[[63]]*x[[3]],
x[[62]]*x[[4]], x[[5]]*x[[61]], x[[6]]*x[[60]], x[[32]],
x[[5]]*x[[19]], x[[6]]*x[[18]], x[[17]]*x[[7]], x[[16]]*x[[8]],
x[[15]]*x[[9]], x[[20]]*x[[61]], x[[60]]*x[[21]], x[[41]]*x[[40]],
x[[50]]*x[[31]], x[[51]]*x[[30]], x[[21]]*x[[64]], x[[63]]*x[[22]],
x[[62]]*x[[23]], x[[24]]*x[[61]], x[[25]]*x[[60]], x[[42]]*x[[43]],
x[[41]]*x[[44]], x[[45]]*x[[40]], x[[50]]*x[[35]], x[[51]]*x[[34]],
x[[33]]*x[[52]], x[[32]]*x[[53]], x[[31]]*x[[54]], x[[55]]*x[[30]],
x[[10]]*x[[4]], x[[11]]*x[[3]], x[[2]]*x[[12]], x[[1]]*x[[13]],
x[[58]], x[[59]]*x[[38]], x[[58]]*x[[39]], x[[49]]*x[[48]],
x[[13]]*x[[19]], x[[14]]*x[[18]], x[[15]]*x[[17]], x[[1]]*x[[35]],
x[[2]]*x[[34]], x[[33]]*x[[3]], x[[32]]*x[[4]], x[[5]]*x[[31]],
x[[6]]*x[[30]], x[[10]]*x[[64]], x[[63]]*x[[11]], x[[12]]*x[[62]],
x[[13]]*x[[61]], x[[60]]*x[[14]], x[[40]]*x[[34]], x[[33]]*x[[41]],
x[[42]]*x[[32]], x[[31]]*x[[43]], x[[44]]*x[[30]], x[[24]]*x[[50]],
x[[51]]*x[[23]], x[[52]]*x[[22]], x[[53]]*x[[21]], x[[20]]*x[[54]],
x[[10]]*x[[18]], x[[11]]*x[[17]], x[[12]]*x[[16]], x[[15]]*x[[13]],
x[[59]]*x[[35]], x[[36]]*x[[58]], x[[37]]*x[[57]], x[[56]]*x[[38]],
x[[46]]*x[[48]], x[[49]]*x[[45]], x[[55]]*x[[39]], x[[11]]*x[[13]],
x[[10]]*x[[14]], x[[26]]*x[[64]], x[[63]]*x[[27]], x[[28]]*x[[62]],
x[[29]]*x[[61]], x[[59]]*x[[31]], x[[32]]*x[[58]], x[[33]]*x[[57]],
x[[56]]*x[[34]], x[[46]]*x[[44]], x[[47]]*x[[43]], x[[42]]*x[[48]],
x[[49]]*x[[41]], x[[51]]*x[[39]], x[[52]]*x[[38]], x[[37]]*x[[53]],
x[[36]]*x[[54]], x[[35]]*x[[55]], x[[61]], x[[15]]*x[[20]],
x[[14]]*x[[21]], x[[22]]*x[[13]], x[[12]]*x[[23]], x[[11]]*x[[24]],
x[[25]]*x[[10]], x[[40]]*x[[7]], x[[6]]*x[[41]], x[[42]]*x[[5]],
x[[4]]*x[[43]], x[[44]]*x[[3]], x[[2]]*x[[45]], x[[46]]*x[[1]],
x[[1]]*x[[61]], x[[2]]*x[[60]], x[[20]]*x[[11]], x[[10]]*x[[21]],
x[[50]]*x[[60]], x[[29]]*x[[10]], x[[20]]*x[[19]], x[[21]]*x[[18]],
x[[22]]*x[[17]], x[[16]]*x[[23]], x[[15]]*x[[24]], x[[25]]*x[[14]],
x[[26]]*x[[13]], x[[12]]*x[[27]], x[[28]]*x[[11]], x[[40]]*x[[64]],
x[[63]]*x[[41]], x[[42]]*x[[62]], x[[43]]*x[[61]], x[[60]]*x[[44]],
x[[51]]*x[[53]], x[[50]]*x[[54]], x[[40]]*x[[60]], x[[12]]*x[[59]],
x[[13]]*x[[58]], x[[14]]*x[[57]], x[[15]]*x[[56]], x[[32]]*x[[39]],
x[[33]]*x[[38]], x[[37]]*x[[34]], x[[36]]*x[[35]], x[[42]]*x[[29]],
x[[28]]*x[[43]], x[[44]]*x[[27]], x[[45]]*x[[26]], x[[46]]*x[[25]],
x[[24]]*x[[47]], x[[23]]*x[[48]], x[[49]]*x[[22]], x[[52]]*x[[19]],
x[[53]]*x[[18]], x[[54]]*x[[17]], x[[16]]*x[[55]], x[[29]]*x[[14]],
x[[28]]*x[[15]], x[[24]]*x[[19]], x[[25]]*x[[18]], x[[26]]*x[[17]],
x[[16]]*x[[27]], x[[44]]*x[[64]], x[[63]]*x[[45]], x[[46]]*x[[62]],
x[[47]]*x[[61]], x[[60]]*x[[48]], x[[50]]*x[[58]], x[[51]]*x[[57]],
x[[56]]*x[[52]], x[[53]]*x[[55]], x[[49]]*x[[59]], x[[50]]*x[[64]],
x[[63]]*x[[51]], x[[62]]*x[[52]], x[[53]]*x[[61]], x[[60]]*x[[54]],
x[[11]]*x[[39]], x[[12]]*x[[38]], x[[37]]*x[[13]], x[[36]]*x[[14]],
x[[15]]*x[[35]], x[[16]]*x[[34]], x[[33]]*x[[17]], x[[32]]*x[[18]],
x[[31]]*x[[19]], x[[29]]*x[[21]], x[[24]]*x[[26]], x[[23]]*x[[27]],
x[[28]]*x[[22]], x[[5]]*x[[50]], x[[51]]*x[[4]], x[[52]]*x[[3]],
x[[2]]*x[[53]], x[[1]]*x[[54]], x[[43]], x[[32]]*x[[64]],
x[[33]]*x[[63]], x[[62]]*x[[34]], x[[35]]*x[[61]], x[[36]]*x[[60]],
x[[56]]*x[[40]], x[[46]]*x[[50]], x[[51]]*x[[45]], x[[52]]*x[[44]],
x[[53]]*x[[43]], x[[42]]*x[[54]], x[[41]]*x[[55]], x[[37]]*x[[64]],
x[[63]]*x[[38]], x[[62]]*x[[39]], x[[42]]*x[[59]], x[[43]]*x[[58]],
x[[44]]*x[[57]], x[[56]]*x[[45]], x[[49]]*x[[52]], x[[53]]*x[[48]],
x[[54]]*x[[47]], x[[46]]*x[[55]], x[[62]]*x[[30]], x[[31]]*x[[61]],
x[[32]]*x[[60]], x[[42]]*x[[50]], x[[51]]*x[[41]], x[[52]]*x[[40]],
x[[64]]*x[[55]], x[[63]]*x[[56]], x[[62]]*x[[57]], x[[61]]*x[[58]],
x[[59]]*x[[60]], x[[46]]*x[[59]], x[[47]]*x[[58]], x[[57]]*x[[48]],
x[[49]]*x[[56]], x[[37]], x[[1]]*x[[58]], x[[2]]*x[[57]],
x[[56]]*x[[3]], x[[50]]*x[[9]], x[[51]]*x[[8]], x[[52]]*x[[7]],
x[[6]]*x[[53]], x[[5]]*x[[54]], x[[4]]*x[[55]], x[[59]]*x[[58]],
x[[59]]*x[[8]], x[[9]]*x[[58]], x[[5]]*x[[20]], x[[4]]*x[[21]],
x[[22]]*x[[3]], x[[2]]*x[[23]], x[[24]]*x[[1]], x[[33]]*x[[30]],
x[[32]]*x[[31]], x[[23]]*x[[40]], x[[41]]*x[[22]], x[[42]]*x[[21]],
x[[20]]*x[[43]], x[[50]]*x[[13]], x[[12]]*x[[51]], x[[11]]*x[[52]],
x[[10]]*x[[53]], x[[6]], x[[64]]*x[[61]], x[[63]]*x[[62]],
x[[59]]*x[[4]], x[[5]]*x[[58]], x[[6]]*x[[57]], x[[56]]*x[[7]],
x[[54]]*x[[9]], x[[8]]*x[[55]], x[[29]]*x[[6]], x[[28]]*x[[7]],
x[[26]]*x[[9]], x[[8]]*x[[27]], x[[49]]*x[[64]], x[[59]]*x[[54]],
x[[58]]*x[[55]], x[[56]]*x[[57]], x[[9]]*x[[48]], x[[49]]*x[[8]],
x[[9]]*x[[19]], x[[59]]*x[[27]], x[[28]]*x[[58]], x[[29]]*x[[57]],
x[[47]]*x[[39]], x[[38]]*x[[48]], x[[49]]*x[[37]], x[[59]]*x[[9]],
x[[15]]*x[[64]], x[[63]]*x[[16]], x[[62]]*x[[17]], x[[61]]*x[[18]],
x[[60]]*x[[19]], x[[59]]*x[[20]], x[[21]]*x[[58]], x[[57]]*x[[22]],
x[[56]]*x[[23]], x[[40]]*x[[39]], x[[41]]*x[[38]], x[[42]]*x[[37]],
x[[36]]*x[[43]], x[[35]]*x[[44]], x[[45]]*x[[34]], x[[33]]*x[[46]],
x[[32]]*x[[47]], x[[31]]*x[[48]], x[[49]]*x[[30]], x[[29]]*x[[50]],
x[[28]]*x[[51]], x[[52]]*x[[27]], x[[53]]*x[[26]], x[[25]]*x[[54]],
x[[24]]*x[[55]], x[[14]]*x[[19]], x[[15]]*x[[18]], x[[16]]*x[[17]],
x[[44]], x[[10]]*x[[30]], x[[1]]*x[[18]], x[[2]]*x[[17]],
x[[16]]*x[[3]], x[[15]]*x[[4]], x[[5]]*x[[14]], x[[10]]*x[[9]],
x[[11]]*x[[8]], x[[12]]*x[[7]], x[[6]]*x[[13]], x[[53]],
x[[2]]*x[[38]], x[[37]]*x[[3]], x[[36]]*x[[4]], x[[5]]*x[[35]],
x[[6]]*x[[34]], x[[33]]*x[[7]], x[[32]]*x[[8]], x[[31]]*x[[9]],
x[[1]]*x[[39]], x[[15]], x[[2]]*x[[9]], x[[8]]*x[[3]],
x[[4]]*x[[7]], x[[6]]*x[[5]], x[[1]]*x[[31]], x[[2]]*x[[30]],
x[[10]]*x[[20]], x[[62]]*x[[1]], x[[2]]*x[[61]], x[[10]]*x[[60]],
x[[60]]*x[[3]], x[[40]]*x[[30]], x[[20]]*x[[50]], x[[2]]*x[[4]],
x[[5]]*x[[1]], x[[6]]*x[[9]], x[[8]]*x[[7]], x[[11]],
x[[42]]*x[[9]], x[[8]]*x[[43]], x[[44]]*x[[7]], x[[6]]*x[[45]],
x[[46]]*x[[5]], x[[4]]*x[[47]], x[[3]]*x[[48]], x[[2]]*x[[49]],
x[[29]]*x[[1]], x[[28]]*x[[2]], x[[21]]*x[[9]], x[[8]]*x[[22]],
x[[23]]*x[[7]], x[[6]]*x[[24]], x[[25]]*x[[5]], x[[4]]*x[[26]],
x[[3]]*x[[27]], x[[22]], x[[40]]*x[[3]], x[[2]]*x[[41]],
x[[42]]*x[[1]], x[[26]], x[[59]]*x[[16]], x[[17]]*x[[58]],
x[[57]]*x[[18]], x[[56]]*x[[19]], x[[37]]*x[[38]], x[[36]]*x[[39]],
x[[46]]*x[[29]], x[[28]]*x[[47]], x[[48]]*x[[27]], x[[49]]*x[[26]],
x[[36]]*x[[10]], x[[11]]*x[[35]], x[[12]]*x[[34]], x[[33]]*x[[13]],
x[[32]]*x[[14]], x[[15]]*x[[31]], x[[16]]*x[[30]], x[[24]]*x[[22]],
x[[25]]*x[[21]], x[[20]]*x[[26]], x[[60]]*x[[61]], x[[10]]*x[[58]],
x[[11]]*x[[57]], x[[12]]*x[[56]], x[[26]]*x[[39]], x[[38]]*x[[30]],
x[[38]]*x[[27]], x[[37]]*x[[31]], x[[28]]*x[[37]], x[[32]]*x[[36]],
x[[29]]*x[[36]], x[[33]]*x[[35]], x[[28]]*x[[40]], x[[41]]*x[[27]],
x[[42]]*x[[26]], x[[25]]*x[[43]], x[[24]]*x[[44]], x[[45]]*x[[23]],
x[[46]]*x[[22]], x[[46]]*x[[19]], x[[47]]*x[[18]], x[[47]]*x[[21]],
x[[17]]*x[[48]], x[[20]]*x[[48]], x[[49]]*x[[16]], x[[50]]*x[[18]],
x[[51]]*x[[17]], x[[16]]*x[[52]], x[[15]]*x[[53]], x[[14]]*x[[54]],
x[[13]]*x[[55]], x[[38]]*x[[8]], x[[37]]*x[[9]], x[[39]]*x[[7]],
x[[33]], x[[22]]*x[[39]], x[[38]]*x[[23]], x[[37]]*x[[24]],
x[[25]]*x[[36]], x[[35]]*x[[26]], x[[34]]*x[[27]], x[[33]]*x[[28]],
x[[29]]*x[[32]], x[[42]]*x[[19]], x[[43]]*x[[18]], x[[44]]*x[[17]],
x[[16]]*x[[45]], x[[46]]*x[[15]], x[[14]]*x[[47]], x[[13]]*x[[48]],
x[[49]]*x[[12]], x[[20]]*x[[1]], x[[2]], x[[37]]*x[[20]],
x[[36]]*x[[21]], x[[35]]*x[[22]], x[[23]]*x[[34]], x[[33]]*x[[24]],
x[[25]]*x[[32]], x[[31]]*x[[26]], x[[30]]*x[[27]], x[[40]]*x[[17]],
x[[41]]*x[[16]], x[[15]]*x[[42]], x[[14]]*x[[43]], x[[44]]*x[[13]],
x[[12]]*x[[45]], x[[46]]*x[[11]], x[[10]]*x[[47]], x[[20]]*x[[31]],
x[[21]]*x[[30]], x[[11]]*x[[40]], x[[41]]*x[[10]], x[[16]]*x[[38]],
x[[37]]*x[[17]], x[[36]]*x[[18]], x[[35]]*x[[19]], x[[25]]*x[[29]],
x[[28]]*x[[26]], x[[15]]*x[[39]], x[[20]]*x[[35]], x[[21]]*x[[34]],
x[[33]]*x[[22]], x[[32]]*x[[23]], x[[24]]*x[[31]], x[[25]]*x[[30]],
x[[15]]*x[[40]], x[[41]]*x[[14]], x[[42]]*x[[13]], x[[12]]*x[[43]],
x[[11]]*x[[44]], x[[10]]*x[[45]], x[[59]]*x[[37]], x[[38]]*x[[58]],
x[[57]]*x[[39]], x[[49]]*x[[47]], x[[42]], x[[1]]*x[[34]],
x[[33]]*x[[2]], x[[32]]*x[[3]], x[[31]]*x[[4]], x[[5]]*x[[30]],
x[[50]]*x[[61]], x[[51]]*x[[60]], x[[3]]*x[[39]], x[[38]]*x[[4]],
x[[5]]*x[[37]], x[[6]]*x[[36]], x[[35]]*x[[7]], x[[8]]*x[[34]],
x[[33]]*x[[9]], x[[20]]*x[[40]], x[[10]]*x[[50]], x[[34]]*x[[30]],
x[[33]]*x[[31]], x[[24]]*x[[40]], x[[41]]*x[[23]], x[[42]]*x[[22]],
x[[21]]*x[[43]], x[[20]]*x[[44]], x[[50]]*x[[14]], x[[51]]*x[[13]],
x[[12]]*x[[52]], x[[11]]*x[[53]], x[[10]]*x[[54]], x[[64]]*x[[58]],
x[[63]]*x[[59]], x[[54]]*x[[64]], x[[63]]*x[[55]], x[[62]]*x[[56]],
x[[57]]*x[[61]], x[[60]]*x[[58]], x[[31]], x[[36]], x[[11]]*x[[64]],
x[[63]]*x[[12]], x[[62]]*x[[13]], x[[14]]*x[[61]], x[[15]]*x[[60]],
x[[35]]*x[[40]], x[[41]]*x[[34]], x[[33]]*x[[42]], x[[32]]*x[[43]],
x[[31]]*x[[44]], x[[45]]*x[[30]], x[[25]]*x[[50]], x[[51]]*x[[24]],
x[[52]]*x[[23]], x[[53]]*x[[22]], x[[54]]*x[[21]], x[[20]]*x[[55]],
x[[21]], x[[64]]*x[[43]], x[[63]]*x[[44]], x[[62]]*x[[45]],
x[[46]]*x[[61]], x[[60]]*x[[47]], x[[50]]*x[[57]], x[[51]]*x[[56]],
x[[53]]*x[[54]], x[[52]]*x[[55]], x[[29]], x[[23]]*x[[39]],
x[[24]]*x[[38]], x[[25]]*x[[37]], x[[36]]*x[[26]], x[[35]]*x[[27]],
x[[28]]*x[[34]], x[[33]]*x[[29]], x[[43]]*x[[19]], x[[44]]*x[[18]],
x[[45]]*x[[17]], x[[46]]*x[[16]], x[[15]]*x[[47]], x[[14]]*x[[48]],
x[[49]]*x[[13]], x[[59]], x[[59]]*x[[57]], x[[33]]*x[[64]],
x[[63]]*x[[34]], x[[62]]*x[[35]], x[[36]]*x[[61]], x[[37]]*x[[60]],
x[[40]]*x[[57]], x[[41]]*x[[56]], x[[50]]*x[[47]], x[[46]]*x[[51]],
x[[52]]*x[[45]], x[[53]]*x[[44]], x[[54]]*x[[43]], x[[42]]*x[[55]],
x[[59]]*x[[19]], x[[49]]*x[[29]], x[[4]]*x[[3]], x[[2]]*x[[5]],
x[[6]]*x[[1]], x[[3]]*x[[64]], x[[63]]*x[[4]], x[[62]]*x[[5]],
x[[6]]*x[[61]], x[[60]]*x[[7]], x[[17]], x[[63]]*x[[30]],
x[[62]]*x[[31]], x[[32]]*x[[61]], x[[33]]*x[[60]], x[[50]]*x[[43]],
x[[42]]*x[[51]], x[[41]]*x[[52]], x[[53]]*x[[40]], x[[64]]*x[[27]],
x[[28]]*x[[63]], x[[29]]*x[[62]], x[[59]]*x[[32]], x[[33]]*x[[58]],
x[[57]]*x[[34]], x[[56]]*x[[35]], x[[46]]*x[[45]], x[[44]]*x[[47]],
x[[43]]*x[[48]], x[[49]]*x[[42]], x[[52]]*x[[39]], x[[53]]*x[[38]],
x[[37]]*x[[54]], x[[36]]*x[[55]], x[[29]]*x[[7]], x[[28]]*x[[8]],
x[[9]]*x[[27]], x[[62]]*x[[20]], x[[21]]*x[[61]], x[[60]]*x[[22]],
x[[42]]*x[[40]], x[[32]]*x[[50]], x[[51]]*x[[31]], x[[52]]*x[[30]],
x[[59]]*x[[11]], x[[12]]*x[[58]], x[[57]]*x[[13]], x[[56]]*x[[14]],
x[[32]]*x[[38]], x[[33]]*x[[37]], x[[36]]*x[[34]], x[[31]]*x[[39]],
x[[29]]*x[[41]], x[[28]]*x[[42]], x[[43]]*x[[27]], x[[44]]*x[[26]],
x[[25]]*x[[45]], x[[46]]*x[[24]], x[[23]]*x[[47]], x[[22]]*x[[48]],
x[[49]]*x[[21]], x[[51]]*x[[19]], x[[52]]*x[[18]], x[[53]]*x[[17]],
x[[16]]*x[[54]], x[[15]]*x[[55]], x[[10]]*x[[19]], x[[11]]*x[[18]],
x[[12]]*x[[17]], x[[16]]*x[[13]], x[[15]]*x[[14]], x[[2]]*x[[50]],
x[[51]]*x[[1]], x[[16]]*x[[20]], x[[15]]*x[[21]], x[[14]]*x[[22]],
x[[23]]*x[[13]], x[[12]]*x[[24]], x[[25]]*x[[11]], x[[10]]*x[[26]],
x[[38]]*x[[64]], x[[63]]*x[[39]], x[[59]]*x[[43]], x[[44]]*x[[58]],
x[[45]]*x[[57]], x[[46]]*x[[56]], x[[49]]*x[[53]], x[[54]]*x[[48]],
x[[47]]*x[[55]], x[[19]]*x[[18]], x[[12]]*x[[20]], x[[11]]*x[[21]],
x[[10]]*x[[22]], x[[6]]*x[[50]], x[[51]]*x[[5]], x[[52]]*x[[4]],
x[[53]]*x[[3]], x[[2]]*x[[54]], x[[1]]*x[[55]], x[[1]]*x[[60]],
x[[59]]*x[[47]], x[[58]]*x[[48]], x[[49]]*x[[57]], x[[59]]*x[[5]],
x[[6]]*x[[58]], x[[57]]*x[[7]], x[[56]]*x[[8]], x[[20]]*x[[8]],
x[[21]]*x[[7]], x[[6]]*x[[22]], x[[5]]*x[[23]], x[[24]]*x[[4]],
x[[25]]*x[[3]], x[[2]]*x[[26]], x[[1]]*x[[27]], x[[9]]*x[[55]],
x[[60]], x[[29]]*x[[11]], x[[28]]*x[[12]], x[[21]]*x[[19]],
x[[22]]*x[[18]], x[[23]]*x[[17]], x[[16]]*x[[24]], x[[25]]*x[[15]],
x[[14]]*x[[26]], x[[13]]*x[[27]], x[[15]]*x[[29]], x[[28]]*x[[16]],
x[[25]]*x[[19]], x[[26]]*x[[18]], x[[17]]*x[[27]], x[[5]], x[[64]],
x[[62]]*x[[60]], x[[59]]*x[[1]], x[[2]]*x[[58]], x[[57]]*x[[3]],
x[[56]]*x[[4]], x[[5]]*x[[55]], x[[51]]*x[[9]], x[[52]]*x[[8]],
x[[53]]*x[[7]], x[[6]]*x[[54]], x[[10]]*x[[11]], x[[33]]*x[[10]],
x[[32]]*x[[11]], x[[12]]*x[[31]], x[[13]]*x[[30]], x[[22]]*x[[21]],
x[[20]]*x[[23]], x[[49]]*x[[9]], x[[37]]*x[[10]], x[[36]]*x[[11]],
x[[12]]*x[[35]], x[[13]]*x[[34]], x[[33]]*x[[14]], x[[15]]*x[[32]],
x[[16]]*x[[31]], x[[17]]*x[[30]], x[[24]]*x[[23]], x[[25]]*x[[22]],
x[[26]]*x[[21]], x[[20]]*x[[27]], x[[1]]*x[[38]], x[[2]]*x[[37]],
x[[36]]*x[[3]], x[[35]]*x[[4]], x[[5]]*x[[34]], x[[33]]*x[[6]],
x[[32]]*x[[7]], x[[8]]*x[[31]], x[[9]]*x[[30]], x[[20]]*x[[30]],
x[[10]]*x[[40]], x[[16]]*x[[39]], x[[38]]*x[[17]], x[[37]]*x[[18]],
x[[36]]*x[[19]], x[[29]]*x[[26]], x[[28]]*x[[27]], x[[8]]*x[[9]],
x[[1]]*x[[30]], x[[14]], x[[51]]*x[[64]], x[[63]]*x[[52]],
x[[62]]*x[[53]], x[[54]]*x[[61]], x[[60]]*x[[55]], x[[10]], x[[47]],
x[[1]]*x[[50]], x[[38]]*x[[13]], x[[37]]*x[[14]], x[[15]]*x[[36]],
x[[16]]*x[[35]], x[[34]]*x[[17]], x[[33]]*x[[18]], x[[32]]*x[[19]],
x[[29]]*x[[22]], x[[28]]*x[[23]], x[[25]]*x[[26]], x[[24]]*x[[27]],
x[[12]]*x[[39]], x[[64]]*x[[48]], x[[63]]*x[[49]], x[[59]]*x[[53]],
x[[54]]*x[[58]], x[[57]]*x[[55]], x[[45]]*x[[9]], x[[46]]*x[[8]],
x[[47]]*x[[7]], x[[6]]*x[[48]], x[[49]]*x[[5]], x[[8]]*x[[39]],
x[[38]]*x[[9]], x[[39]]*x[[27]], x[[28]]*x[[38]], x[[29]]*x[[37]],
x[[47]]*x[[19]], x[[48]]*x[[18]], x[[49]]*x[[17]], x[[50]],
x[[41]]*x[[9]], x[[42]]*x[[8]], x[[43]]*x[[7]], x[[6]]*x[[44]],
x[[5]]*x[[45]], x[[46]]*x[[4]], x[[47]]*x[[3]], x[[2]]*x[[48]],
x[[49]]*x[[1]], x[[54]], x[[25]], x[[10]]*x[[61]], x[[11]]*x[[60]],
x[[40]]*x[[31]], x[[41]]*x[[30]], x[[50]]*x[[21]], x[[51]]*x[[20]],
x[[2]]*x[[40]], x[[41]]*x[[1]], x[[5]]*x[[3]], x[[2]]*x[[6]],
x[[1]]*x[[7]], x[[3]]*x[[9]], x[[8]]*x[[4]], x[[5]]*x[[7]],
x[[6]]*x[[40]], x[[41]]*x[[5]], x[[42]]*x[[4]], x[[3]]*x[[43]],
x[[2]]*x[[44]], x[[45]]*x[[1]], x[[20]]*x[[38]], x[[37]]*x[[21]],
x[[36]]*x[[22]], x[[35]]*x[[23]], x[[24]]*x[[34]], x[[33]]*x[[25]],
x[[32]]*x[[26]], x[[31]]*x[[27]], x[[28]]*x[[30]], x[[40]]*x[[18]],
x[[41]]*x[[17]], x[[42]]*x[[16]], x[[15]]*x[[43]], x[[44]]*x[[14]],
x[[45]]*x[[13]], x[[46]]*x[[12]], x[[11]]*x[[47]], x[[10]]*x[[48]],
x[[63]]*x[[40]], x[[62]]*x[[41]], x[[42]]*x[[61]], x[[60]]*x[[43]],
x[[51]]*x[[52]], x[[53]]*x[[50]], x[[16]]*x[[64]], x[[63]]*x[[17]],
x[[62]]*x[[18]], x[[61]]*x[[19]], x[[59]]*x[[21]], x[[22]]*x[[58]],
x[[23]]*x[[57]], x[[56]]*x[[24]], x[[25]]*x[[55]], x[[41]]*x[[39]],
x[[42]]*x[[38]], x[[37]]*x[[43]], x[[36]]*x[[44]], x[[45]]*x[[35]],
x[[46]]*x[[34]], x[[33]]*x[[47]], x[[32]]*x[[48]], x[[49]]*x[[31]],
x[[29]]*x[[51]], x[[28]]*x[[52]], x[[53]]*x[[27]], x[[26]]*x[[54]],
x[[29]]*x[[19]], x[[22]]*x[[64]], x[[63]]*x[[23]], x[[62]]*x[[24]],
x[[25]]*x[[61]], x[[60]]*x[[26]], x[[56]]*x[[30]], x[[42]]*x[[44]],
x[[41]]*x[[45]], x[[46]]*x[[40]], x[[36]]*x[[50]], x[[51]]*x[[35]],
x[[52]]*x[[34]], x[[33]]*x[[53]], x[[32]]*x[[54]], x[[31]]*x[[55]],
x[[64]]*x[[7]], x[[63]]*x[[8]], x[[62]]*x[[9]], x[[2]]*x[[29]],
x[[28]]*x[[3]], x[[22]]*x[[9]], x[[23]]*x[[8]], x[[24]]*x[[7]],
x[[25]]*x[[6]], x[[5]]*x[[26]], x[[4]]*x[[27]], x[[20]],
x[[10]]*x[[3]], x[[2]]*x[[11]], x[[12]]*x[[1]], x[[2]]*x[[1]],
x[[15]]*x[[59]], x[[16]]*x[[58]], x[[57]]*x[[17]], x[[56]]*x[[18]],
x[[35]]*x[[39]], x[[36]]*x[[38]], x[[29]]*x[[45]], x[[28]]*x[[46]],
x[[47]]*x[[27]], x[[26]]*x[[48]], x[[25]]*x[[49]], x[[55]]*x[[19]],
x[[59]]*x[[64]], x[[35]]*x[[30]], x[[31]]*x[[34]], x[[33]]*x[[32]],
x[[25]]*x[[40]], x[[41]]*x[[24]], x[[42]]*x[[23]], x[[22]]*x[[43]],
x[[44]]*x[[21]], x[[20]]*x[[45]], x[[15]]*x[[50]], x[[51]]*x[[14]],
x[[52]]*x[[13]], x[[12]]*x[[53]], x[[11]]*x[[54]], x[[10]]*x[[55]],
x[[15]]*x[[1]], x[[15]]*x[[10]], x[[11]]*x[[14]], x[[2]]*x[[14]],
x[[6]]*x[[10]], x[[5]]*x[[11]], x[[12]]*x[[4]], x[[12]]*x[[13]],
x[[13]]*x[[3]], x[[1]]*x[[19]], x[[2]]*x[[18]], x[[3]]*x[[17]],
x[[16]]*x[[4]], x[[15]]*x[[5]], x[[6]]*x[[14]], x[[11]]*x[[9]],
x[[12]]*x[[8]], x[[13]]*x[[7]], x[[59]]*x[[26]], x[[58]]*x[[27]],
x[[28]]*x[[57]], x[[29]]*x[[56]], x[[46]]*x[[39]], x[[38]]*x[[47]],
x[[37]]*x[[48]], x[[49]]*x[[36]], x[[6]]*x[[19]], x[[18]]*x[[7]],
x[[8]]*x[[17]], x[[16]]*x[[9]], x[[20]]*x[[4]], x[[21]]*x[[3]],
x[[2]]*x[[22]], x[[1]]*x[[23]], x[[62]]*x[[64]], x[[1]], x[[9]],
x[[25]]*x[[59]], x[[26]]*x[[58]], x[[57]]*x[[27]], x[[28]]*x[[56]],
x[[45]]*x[[39]], x[[46]]*x[[38]], x[[37]]*x[[47]], x[[36]]*x[[48]],
x[[49]]*x[[35]], x[[29]]*x[[55]], x[[20]]*x[[34]], x[[33]]*x[[21]],
x[[32]]*x[[22]], x[[23]]*x[[31]], x[[24]]*x[[30]], x[[40]]*x[[14]],
x[[41]]*x[[13]], x[[42]]*x[[12]], x[[11]]*x[[43]], x[[10]]*x[[44]],
x[[30]], x[[62]]*x[[50]], x[[51]]*x[[61]], x[[52]]*x[[60]],
x[[3]]*x[[19]], x[[4]]*x[[18]], x[[5]]*x[[17]], x[[6]]*x[[16]],
x[[15]]*x[[7]], x[[8]]*x[[14]], x[[13]]*x[[9]], x[[57]]*x[[64]],
x[[63]]*x[[58]], x[[62]]*x[[59]], x[[39]], x[[53]]*x[[64]],
x[[63]]*x[[54]], x[[62]]*x[[55]], x[[56]]*x[[61]], x[[60]]*x[[57]],
x[[41]], x[[35]], x[[12]]*x[[64]], x[[63]]*x[[13]], x[[62]]*x[[14]],
x[[15]]*x[[61]], x[[16]]*x[[60]], x[[56]]*x[[20]], x[[36]]*x[[40]],
x[[41]]*x[[35]], x[[42]]*x[[34]], x[[33]]*x[[43]], x[[32]]*x[[44]],
x[[45]]*x[[31]], x[[46]]*x[[30]], x[[50]]*x[[26]], x[[25]]*x[[51]],
x[[52]]*x[[24]], x[[53]]*x[[23]], x[[54]]*x[[22]], x[[21]]*x[[55]],
x[[33]]*x[[1]], x[[2]]*x[[32]], x[[31]]*x[[3]], x[[4]]*x[[30]],
x[[29]]*x[[4]], x[[24]]*x[[9]], x[[25]]*x[[8]], x[[26]]*x[[7]],
x[[6]]*x[[27]], x[[28]]*x[[5]], x[[28]]*x[[64]], x[[63]]*x[[29]],
x[[33]]*x[[59]], x[[34]]*x[[58]], x[[35]]*x[[57]], x[[56]]*x[[36]],
x[[45]]*x[[47]], x[[44]]*x[[48]], x[[49]]*x[[43]], x[[53]]*x[[39]],
x[[38]]*x[[54]], x[[37]]*x[[55]], x[[4]]*x[[39]], x[[5]]*x[[38]],
x[[6]]*x[[37]], x[[36]]*x[[7]], x[[35]]*x[[8]], x[[34]]*x[[9]],
x[[24]]*x[[39]], x[[25]]*x[[38]], x[[37]]*x[[26]], x[[36]]*x[[27]],
x[[28]]*x[[35]], x[[29]]*x[[34]], x[[44]]*x[[19]], x[[45]]*x[[18]],
x[[46]]*x[[17]], x[[16]]*x[[47]], x[[15]]*x[[48]], x[[49]]*x[[14]],
x[[59]]*x[[56]], x[[57]]*x[[58]], x[[24]]*x[[64]], x[[25]]*x[[63]],
x[[62]]*x[[26]], x[[61]]*x[[27]], x[[28]]*x[[60]], x[[58]]*x[[30]],
x[[31]]*x[[57]], x[[32]]*x[[56]], x[[45]]*x[[43]], x[[46]]*x[[42]],
x[[41]]*x[[47]], x[[40]]*x[[48]], x[[50]]*x[[38]], x[[51]]*x[[37]],
x[[36]]*x[[52]], x[[53]]*x[[35]], x[[54]]*x[[34]], x[[33]]*x[[55]],
x[[29]]*x[[8]], x[[28]]*x[[9]], x[[20]]*x[[17]], x[[16]]*x[[21]],
x[[15]]*x[[22]], x[[23]]*x[[14]], x[[24]]*x[[13]], x[[25]]*x[[12]],
x[[11]]*x[[26]], x[[10]]*x[[27]], x[[29]]*x[[17]], x[[27]]*x[[19]],
x[[28]]*x[[18]], x[[59]]*x[[18]], x[[58]]*x[[19]], x[[38]]*x[[39]],
x[[29]]*x[[48]], x[[28]]*x[[49]], x[[17]]*x[[19]], x[[20]]*x[[13]],
x[[12]]*x[[21]], x[[11]]*x[[22]], x[[10]]*x[[23]], x[[4]]*x[[64]],
x[[63]]*x[[5]], x[[6]]*x[[62]], x[[61]]*x[[7]], x[[8]]*x[[60]],
x[[56]], x[[62]]*x[[40]], x[[41]]*x[[61]], x[[42]]*x[[60]],
x[[52]]*x[[50]], x[[42]]*x[[64]], x[[63]]*x[[43]], x[[62]]*x[[44]],
x[[45]]*x[[61]], x[[46]]*x[[60]], x[[56]]*x[[50]], x[[52]]*x[[54]],
x[[51]]*x[[55]], x[[29]]*x[[12]], x[[28]]*x[[13]], x[[22]]*x[[19]],
x[[23]]*x[[18]], x[[24]]*x[[17]], x[[25]]*x[[16]], x[[15]]*x[[26]],
x[[14]]*x[[27]], x[[63]]*x[[20]], x[[62]]*x[[21]], x[[22]]*x[[61]],
x[[23]]*x[[60]], x[[42]]*x[[41]], x[[40]]*x[[43]], x[[33]]*x[[50]],
x[[51]]*x[[32]], x[[52]]*x[[31]], x[[53]]*x[[30]], x[[29]]*x[[16]],
x[[28]]*x[[17]], x[[26]]*x[[19]], x[[27]]*x[[18]], x[[59]]*x[[10]],
x[[11]]*x[[58]], x[[12]]*x[[57]], x[[56]]*x[[13]], x[[14]]*x[[55]],
x[[38]]*x[[31]], x[[32]]*x[[37]], x[[33]]*x[[36]], x[[35]]*x[[34]],
x[[39]]*x[[30]], x[[29]]*x[[40]], x[[28]]*x[[41]], x[[42]]*x[[27]],
x[[26]]*x[[43]], x[[25]]*x[[44]], x[[45]]*x[[24]], x[[46]]*x[[23]],
x[[47]]*x[[22]], x[[21]]*x[[48]], x[[49]]*x[[20]], x[[50]]*x[[19]],
x[[51]]*x[[18]], x[[52]]*x[[17]], x[[16]]*x[[53]], x[[15]]*x[[54]],
x[[46]]*x[[64]], x[[63]]*x[[47]], x[[62]]*x[[48]], x[[49]]*x[[61]],
x[[51]]*x[[59]], x[[52]]*x[[58]], x[[53]]*x[[57]], x[[56]]*x[[54]],
x[[11]]*x[[19]], x[[12]]*x[[18]], x[[13]]*x[[17]], x[[16]]*x[[14]],
x[[64]]*x[[39]], x[[59]]*x[[44]], x[[45]]*x[[58]], x[[46]]*x[[57]],
x[[56]]*x[[47]], x[[49]]*x[[54]], x[[55]]*x[[48]], x[[64]]*x[[34]],
x[[63]]*x[[35]], x[[62]]*x[[36]], x[[37]]*x[[61]], x[[38]]*x[[60]],
x[[40]]*x[[58]], x[[41]]*x[[57]], x[[42]]*x[[56]], x[[50]]*x[[48]],
x[[51]]*x[[47]], x[[46]]*x[[52]], x[[45]]*x[[53]], x[[44]]*x[[54]],
x[[43]]*x[[55]], x[[50]]*x[[3]], x[[2]]*x[[51]], x[[52]]*x[[1]],
x[[56]]*x[[1]], x[[50]]*x[[7]], x[[6]]*x[[51]], x[[5]]*x[[52]],
x[[53]]*x[[4]], x[[54]]*x[[3]], x[[2]]*x[[55]], x[[59]]*x[[48]],
x[[49]]*x[[58]], x[[64]]*x[[30]], x[[63]]*x[[31]], x[[62]]*x[[32]],
x[[33]]*x[[61]], x[[60]]*x[[34]], x[[50]]*x[[44]], x[[51]]*x[[43]],
x[[42]]*x[[52]], x[[41]]*x[[53]], x[[40]]*x[[54]], x[[31]]*x[[30]],
x[[40]]*x[[21]], x[[41]]*x[[20]], x[[11]]*x[[50]], x[[51]]*x[[10]],
x[[6]]*x[[59]], x[[58]]*x[[7]], x[[8]]*x[[57]], x[[56]]*x[[9]],
x[[20]]*x[[7]], x[[6]]*x[[21]], x[[5]]*x[[22]], x[[23]]*x[[4]],
x[[24]]*x[[3]], x[[25]]*x[[2]], x[[1]]*x[[26]], x[[12]]*x[[10]],
x[[2]]*x[[59]], x[[3]]*x[[58]], x[[4]]*x[[57]], x[[5]]*x[[56]],
x[[9]]*x[[7]], x[[52]]*x[[9]], x[[53]]*x[[8]], x[[54]]*x[[7]],
x[[6]]*x[[55]], x[[63]], x[[63]]*x[[60]], x[[62]]*x[[61]], x[[4]],
x[[44]]*x[[9]], x[[45]]*x[[8]], x[[46]]*x[[7]], x[[6]]*x[[47]],
x[[5]]*x[[48]], x[[49]]*x[[4]], x[[29]]*x[[59]], x[[49]]*x[[39]],
x[[19]]*x[[7]], x[[8]]*x[[18]], x[[17]]*x[[9]], x[[40]]*x[[9]],
x[[41]]*x[[8]], x[[42]]*x[[7]], x[[6]]*x[[43]], x[[5]]*x[[44]],
x[[45]]*x[[4]], x[[46]]*x[[3]], x[[2]]*x[[47]], x[[1]]*x[[48]],
x[[1]]*x[[40]], x[[52]]*x[[64]], x[[63]]*x[[53]], x[[62]]*x[[54]],
x[[61]]*x[[55]], x[[56]]*x[[60]], x[[46]], x[[5]]*x[[40]],
x[[41]]*x[[4]], x[[42]]*x[[3]], x[[2]]*x[[43]], x[[1]]*x[[44]],
x[[8]], x[[9]]*x[[39]], x[[47]]*x[[64]], x[[63]]*x[[48]],
x[[49]]*x[[62]], x[[59]]*x[[52]], x[[53]]*x[[58]], x[[57]]*x[[54]],
x[[56]]*x[[55]], x[[18]], x[[28]]*x[[39]], x[[29]]*x[[38]],
x[[48]]*x[[19]], x[[49]]*x[[18]], x[[10]]*x[[34]], x[[33]]*x[[11]],
x[[12]]*x[[32]], x[[31]]*x[[13]], x[[14]]*x[[30]], x[[23]]*x[[21]],
x[[20]]*x[[24]], x[[51]], x[[37]]*x[[1]], x[[2]]*x[[36]],
x[[35]]*x[[3]], x[[4]]*x[[34]], x[[33]]*x[[5]], x[[6]]*x[[32]],
x[[31]]*x[[7]], x[[8]]*x[[30]], x[[10]]*x[[38]], x[[37]]*x[[11]],
x[[12]]*x[[36]], x[[35]]*x[[13]], x[[14]]*x[[34]], x[[33]]*x[[15]],
x[[32]]*x[[16]], x[[31]]*x[[17]], x[[30]]*x[[18]], x[[28]]*x[[20]],
x[[25]]*x[[23]], x[[26]]*x[[22]], x[[21]]*x[[27]], x[[55]],
x[[17]]*x[[39]], x[[38]]*x[[18]], x[[37]]*x[[19]], x[[29]]*x[[27]],
x[[1]]*x[[3]], x[[62]]*x[[10]], x[[11]]*x[[61]], x[[12]]*x[[60]],
x[[32]]*x[[40]], x[[41]]*x[[31]], x[[42]]*x[[30]], x[[50]]*x[[22]],
x[[51]]*x[[21]], x[[20]]*x[[52]], x[[1]]*x[[8]], x[[2]]*x[[7]],
x[[5]]*x[[4]], x[[6]]*x[[3]], x[[4]]*x[[9]], x[[5]]*x[[8]],
x[[6]]*x[[7]], x[[29]]*x[[18]], x[[28]]*x[[19]], x[[38]]*x[[14]],
x[[15]]*x[[37]], x[[36]]*x[[16]], x[[35]]*x[[17]], x[[34]]*x[[18]],
x[[33]]*x[[19]], x[[29]]*x[[23]], x[[28]]*x[[24]], x[[25]]*x[[27]],
x[[13]]*x[[39]], x[[38]]*x[[21]], x[[37]]*x[[22]], x[[36]]*x[[23]],
x[[24]]*x[[35]], x[[25]]*x[[34]], x[[33]]*x[[26]], x[[32]]*x[[27]],
x[[28]]*x[[31]], x[[29]]*x[[30]], x[[20]]*x[[39]], x[[40]]*x[[19]],
x[[41]]*x[[18]], x[[42]]*x[[17]], x[[16]]*x[[43]], x[[15]]*x[[44]],
x[[45]]*x[[14]], x[[46]]*x[[13]], x[[12]]*x[[47]], x[[11]]*x[[48]],
x[[49]]*x[[10]], x[[23]]*x[[64]], x[[63]]*x[[24]], x[[25]]*x[[62]],
x[[26]]*x[[61]], x[[60]]*x[[27]], x[[57]]*x[[30]], x[[56]]*x[[31]],
x[[44]]*x[[43]], x[[42]]*x[[45]], x[[46]]*x[[41]], x[[40]]*x[[47]],
x[[37]]*x[[50]], x[[51]]*x[[36]], x[[52]]*x[[35]], x[[53]]*x[[34]],
x[[33]]*x[[54]], x[[32]]*x[[55]], x[[8]]*x[[64]], x[[63]]*x[[9]],
x[[29]]*x[[3]], x[[28]]*x[[4]], x[[23]]*x[[9]], x[[24]]*x[[8]],
x[[25]]*x[[7]], x[[6]]*x[[26]], x[[5]]*x[[27]], x[[2]]*x[[10]],
x[[11]]*x[[1]], x[[24]], x[[13]]*x[[64]], x[[63]]*x[[14]],
x[[15]]*x[[62]], x[[16]]*x[[61]], x[[60]]*x[[17]], x[[20]]*x[[57]],
x[[56]]*x[[21]], x[[37]]*x[[40]], x[[41]]*x[[36]], x[[42]]*x[[35]],
x[[34]]*x[[43]], x[[33]]*x[[44]], x[[32]]*x[[45]], x[[46]]*x[[31]],
x[[47]]*x[[30]], x[[50]]*x[[27]], x[[51]]*x[[26]], x[[25]]*x[[52]],
x[[24]]*x[[53]], x[[23]]*x[[54]], x[[22]]*x[[55]], x[[28]],
x[[64]]*x[[17]], x[[63]]*x[[18]], x[[62]]*x[[19]], x[[59]]*x[[22]],
x[[23]]*x[[58]], x[[24]]*x[[57]], x[[25]]*x[[56]], x[[42]]*x[[39]],
x[[38]]*x[[43]], x[[37]]*x[[44]], x[[36]]*x[[45]], x[[46]]*x[[35]],
x[[47]]*x[[34]], x[[33]]*x[[48]], x[[49]]*x[[32]], x[[29]]*x[[52]],
x[[28]]*x[[53]], x[[54]]*x[[27]], x[[26]]*x[[55]], x[[59]]*x[[14]],
x[[15]]*x[[58]], x[[16]]*x[[57]], x[[56]]*x[[17]], x[[34]]*x[[39]],
x[[38]]*x[[35]], x[[37]]*x[[36]], x[[29]]*x[[44]], x[[28]]*x[[45]],
x[[46]]*x[[27]], x[[26]]*x[[47]], x[[25]]*x[[48]], x[[49]]*x[[24]],
x[[54]]*x[[19]], x[[55]]*x[[18]], x[[56]]*x[[10]], x[[36]]*x[[30]],
x[[35]]*x[[31]], x[[32]]*x[[34]], x[[40]]*x[[26]], x[[25]]*x[[41]],
x[[42]]*x[[24]], x[[23]]*x[[43]], x[[44]]*x[[22]], x[[45]]*x[[21]],
x[[46]]*x[[20]], x[[16]]*x[[50]], x[[15]]*x[[51]], x[[52]]*x[[14]],
x[[53]]*x[[13]], x[[12]]*x[[54]], x[[11]]*x[[55]], x[[16]]*x[[10]],
x[[15]]*x[[11]], x[[12]]*x[[14]], x[[16]]*x[[1]], x[[15]]*x[[2]],
x[[14]]*x[[3]], x[[10]]*x[[7]], x[[6]]*x[[11]], x[[12]]*x[[5]],
x[[4]]*x[[13]], x[[59]]*x[[36]], x[[37]]*x[[58]], x[[38]]*x[[57]],
x[[56]]*x[[39]], x[[47]]*x[[48]], x[[46]]*x[[49]], x[[2]]*x[[19]],
x[[3]]*x[[18]], x[[4]]*x[[17]], x[[5]]*x[[16]], x[[15]]*x[[6]],
x[[12]]*x[[9]], x[[8]]*x[[13]], x[[14]]*x[[7]], x[[13]],
x[[20]]*x[[3]], x[[2]]*x[[21]], x[[1]]*x[[22]], x[[33]]*x[[20]],
x[[32]]*x[[21]], x[[31]]*x[[22]], x[[23]]*x[[30]], x[[40]]*x[[13]],
x[[12]]*x[[41]], x[[42]]*x[[11]], x[[10]]*x[[43]], x[[63]]*x[[64]]}
In[8]:= MQ[x_] := CT.F[x]
In[9]:= MQ[G[m]]
Out[9]= Out[9]
In[10]:= Length[MonomialList[MQ[G[m]]]]
64
Length[G[m]]
64
n = Length[m]/2;
E1 = Table[RandomInteger[{0, 1}], {i, 2*n}, {j, n}];
E2 = Table[RandomInteger[{0, 1}], {i, 2*n}, {j, n}];
D1 = NullSpace[Transpose[E1], Modulus -> 2];
While[Det[Mod[D1.E2, 2], Modulus -> 2] == 0,
E2 = Table[RandomInteger[{0, 1}], {i, 2*n}, {j, n}]]
E1Inv = Table[RandomInteger[{0, 1}], {i, n}, {j, 2*n}];
Dimensions[E1Inv]
{64, 128}
While[Det[Mod[E1Inv.E1, 2], Modulus -> 2] == 0,
E1Inv = Table[RandomInteger[{0, 1}], {i, n}, {j, 2*n}]]
R = Table[RandomInteger[{0, 1}], {i, n}, {j, n}];
Dimensions[R.Take[m, n] + Take[m, -n]]
{64}
P = Rvec[m];
S = PolynomialMod[G[P], 2];
Length[S]
64
P3 =.
P2 = PolynomialMod[E1.(Take[m, n] + S) + E2.P, 2];
Save["MQChallenge.txt", P2]
ML = {}
{}
For[i = 0, i < 128, i++, ML = Union[ML, MonomialList[P2[[i]]]]]
Length[ML]
27521