-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.go
782 lines (766 loc) · 138 KB
/
main.go
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
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
package main
import (
"fmt"
"github.com/nfnt/resize"
"image"
"image/color"
"image/draw"
"image/jpeg"
_ "image/png"
"net/http"
"os"
"strconv"
"strings"
"time"
)
// 指纹识别库
var numSign = [][]string{
{"J", "0000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000001111000000000001111100000001111111110000001111111111000111111111111011111111111111101111111111111100111111111110000011111110000000001111111000000000"},
{"j", "0000000000000011000000000000001100000000001111110000001111111111000011111111111111001111111111101100111111100010110011000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000"},
{"f", "0000011100000011000001110000001100000111011111110000011111111111000011111111111100111110111111110111111111111110011111111111110001111111100000001111111110000000111101110000000011110111000000001111011100000000111101110000000011110000000000001111000000000000"},
{"b", "0000000000000011000010000111111100001111111111111111111111111111111111111111111111111111111111101111111111100111111100011000001100000011000000110000001100000111000001110000011100001111000001110000111100001111000011111111111100001111111111100000001111111100"},
{"P", "0000000000000011000000000111111100001111111111110000111111111111111111111111111111111111111111001111111111000000111100011100000011100000110000001110000011000000111000011100000011100001110000001111111111000000111111111000000011111111100000001111111100000000"},
{"s", "0000000000000111000000000000011100011111000001110111111110000111111111111110011111111111111001111111001111110111111100011111111111110001111111111111000011111111111100001111110001110000000110000000000000000000000000000000000000000000000000000000000000000000"},
{"3", "0000000000000011000000000000001100000000100000110000000110000011011000011000001101100001100000111111000110000011111100011000001111100011110000111110001111000111111000111100111111111111111111111111111001111111111111100111111101111110001111100111111000111000"},
{"Y", "1110000000000000111110000000000011111110000011011111111000001111111111111111111000111111111111100000111111111110000001111111000000000111111100000000011110000000000011100000000000111110000000000011100000000000011100000000000011110000000000001110000000000000"},
{"C", "0000001000000000000111111000000000111111110000000011111111000000011111011100000001100001111000000110000001100000110000000110000011000000011000001100000001100000110000000110000011000000011000001100000001000000110000001100000011000000000000000100000000000000"},
{"r", "0000000000000111000000100000011100000111111111111111111111111111111111111111111111111111111111111111111111111100111111111111100011111111000000001011111100000000000110000000000000111000000000000111100000000000111100000000000011110000000000001111000000000000"},
{"4", "0000000110000000000000111000000000000011100000000000010110000000000011011000000000011001100000000001000110000000001100011111100001001111111110000111111111111000111111111110000011111111110000001110000110000000000000000000000000000000000000010000000000000001"},
{"M", "0000000000000011000000000111111100001111111111110111111111111100111111111000000011111100000000000111111111110000011111111111111101000101111111110000000000111111000000000011111100000000111111000000001111111000000001111100000000001111000000110011110001111111"},
{"X", "0000000110000000000000000001100000000000000110000000000000111000011100001111101101111100111100000111111111100000011111111110000001111111111100000111111111111000000011111111100000011111111111000011110011111100111110000111110011111000001111000111000000000000"},
{"a", "0000000001111111000000000111111100000000111111110111100011111111011110011111111101110001111111111111000110000111111100011000011111110001100001111111000110011110111111111111111111111111111111111111111111111111111111111111111111111111111111110111111111111111"},
{"6", "0000000011111000000000111111111000001111111111110001111111111111001111111111111100111111110001110111100110000011011110010000001111110011000000111110001100000111111000111000111111100011111111111110011111111111111001111111111011100001111111001111000011111000"},
{"8", "0000000000011110000000000011111100000000011111110000111011111111001111100111111101111111111001110111111111000111011111111000001111110111110000111110011111000011111000111110001111100001111001111111111111111111111111111111111111111111111111111111111011111110"},
{"3", "0000000000110000000000000011000000000000001100000000000000111000010001100011100001000110001110001100011000111000110001100011100011000110001110001100011000111000110001110011000011001111001100001111111111110000111111111111000011111001111100010111100111100001"},
{"V", "1100000000000000111111000010000011111111111000001111111111111100011111111111111100110111111111110011000001111111000000000000111100010000001111110001000011111000000000111111000000001111111000000001111100000000011111100000000011110000000000001111000000000000"},
{"H", "0000000001000000000000000000000000000000011100110000100111111111111111111101111111111110110111001111100111000000111100011100000000000001110000000000000111000000000000011000000000000001110000110000001111111111111111111111111111111111110111001111011111000000"},
{"c", "0000000111111000000011111111111100001111111111110001111111111111001111111111111101111111111111110111111000001111111111000000111111111000000011111111000000000111111100000000011111110000000001111111000000000111111100000000011111111000000000111111100000000000"},
{"N", "0000000000011101000000011111110000011111111111001111111111100000111111100000000011111000000000001111111000000000011111111000000000111111111000000000011111111100000000011111110000000000111111000000000111111100000111111111110011111111111100001111111000000000"},
{"G", "0000000000111000000000111111110000000111111111100000111111111110000111111001111000011100000111110011100000000111101110000000001101110000000000110111000000000011011100000000011100110000011111110011000001111110001100000111111000110000011111000011100000000000"},
{"4", "0000000011110000000000001111000000000001111100000000000111110000000000010111000000000111011100000000011001110000000011100111000000011100011100000001100001110011001110001111111101111111111111111111111111111111111111111111111111111111111111001111111101110000"},
{"9", "0000000000110000000011100011000000111111001100000011111110111000011111111011100001111111101110000110001110111000111000110011100011000011011110001100001101110000110000100111000111100010111000011110011111100001111111111100000001111111110000000111111100000001"},
{"A", "0000000000000011000000000000111100000000000111110000000000111111000000011111101100000111111110110001111101110000001111100111011001111000011101001111000001110100111110000111010011111111111111001111111111111110000011111111111000000000111111100000000000000110"},
{"c", "0000000000111100000000000111111100000000111111110000000011111111000000111111111100000011111111110000000111000111000001111100001100000111100000110000001100000011100000110000001110000011000000111000001100000011000000110000001100000011100000010000001110000100"},
{"h", "0000000000000011000001000111111100001111111111110000111111111111111111111111111111111111111111101111111111011110111110011000111011110001100001100000001100000000000000110000001100000111111111110000011111111111000001111111111100000111111111110000001111111011"},
{"7", "0000000000000011111000000000111111100000000011111110000000001111111000000001111011100000011011001110000011101000011000011110000011100001110000000110001110000000011000110000000011101010000000001011010000000000111010000000000011101000000000001111000000000000"},
{"m", "0000000000000011000000000111111100000011111111110000001111111111000000111111100000000011100000001000000110000000000000110000010001000011111111110100001111111111000000111111111100000011111111000000001111000000001100011000000000110011000000000000001100000011"},
{"S", "0000000011000000000000001100000000010000010000000011000001100000011110000110000001111000011000000111110001100000111111000110000011011110011000001100111001100000110011101100000011001111110000001100011111000000110001111100000011000111100000000100001100000000"},
{"E", "0000000000000011000000000111111100001111111111110000111111111111111111111111111111111111111111111111111111000011111100111000001111100001100000111110000110000011111000011000001111100001100000111110000110000011111000011000001111100001000000111110000000000000"},
{"V", "1000000000000000111110000000000011111111000000001111111111110000011111111111100000001111111110000000000111111000000000000111110000000000111100000000000111100000000011111100000000001111000000000011111000010000011110000000000011110000000000011100000000000001"},
{"9", "0000000000000011000001111000001100011111110000110011111111100011011111111110001101111111111000110111100011100011111100001110001111100000111001111110000011001111111000001101111111100000110111101111000111111110111111111111100001111111111110000011111111100000"},
{"k", "0000000000001100000000001111111000001111111111101111111111111100111111111111000011111110000000001111000011100000000000011111100000000011111111000000001100111110000001100001110000000110000011010000010000000000000000000000000000000000000000110000000000000011"},
{"n", "0000001110000000000011111111111100001111111111111111111111111111111111111111111111111111111110111111111000000001101111000000000100110000000000010111000000000011011100000000111111111011111111111111111111111111111111111111111101111101111100000011100000000000"},
{"W", "1111111111111110111111111111111011111111111111101111111111111110000000000001111000000000011111000000000101111000000001110110000000011111000000000011111000000000111110000000000011111111111000001111111111111110111111111111111000011111111111100000000000011110"},
{"t", "0000001111111100000001111111110000000111111100000011111111000000001111111100000011111110011111111111111111111111111111111111111111111111111111111111111111111111001111111111111100110111100000110011011100000011001101110000001100100111000000000000011100000000"},
{"H", "0000000000011100000000111111110000011111111111001111111111111101111111111110000011111110000000001110011000000000000001100000000000000110000000000000011000000000000001100001100000000111111110000001111111111000111111111111100111111111111000011111111000000001"},
{"g", "0000000000000011000000000000000000000111110000110001111111100011001111111111001101111111111100111111100001110011111100000111001111100000011100111110000001100111111000001100011101100001111111110011111111111111111111111111111011111111111111001111111110000000"},
{"U", "0000000010101111000011011101111111101111111111111111111111111111111111111000011011111111000000110000000000000011000000000000001100000000000000110000000000000011000000000000011100000000000011100000000000111100000011110111110000011111101110001011111100000000"},
{"7", "0000000111110000000001111100000000000111000000000000010000000000000000000000000000000000000000111110000000011111111000000001111111100000011110101110000011110000111000011110000011100111100000001111111100000000111111100000000011111000000000001111000000000000"},
{"a", "0000000000011110000000000001111100000000001111110000001100111111000000110011111100000011001111110000001100110010000000110010001000000011001000100000001100100110000000110011111000000011001111100000001010111001000000110111111100000011011111110000001110111011"},
{"D", "0000100000000000000000000000011100000000111111110001111111111111111111111111111111111111100000111111000000001111111000000000111111100000000000111110000000000011111000000000011111100000000111111111100001111110011111111111110001111111111110000011111111110000"},
{"A", "0000000001100000000000001110000000000011110000000000011111000000000001110000000000001111000000000011111100000000011110110000000001110011000000001110001100000000111100110000000011111111000000001111111111000000111111111110000000011111111000000000001111100000"},
{"g", "0000111100010000001111111001100001111111100110000111111110011000111100011001100011100001100110001100000110111000110000010011100001000011111100000111111111110000111111111111000011111111110000001111111000000000111000000000000000000000000000000000000000000000"},
{"5", "0000000000000011000000000000001100001111100000110000111110000011111111111000001111110011100000111110001110000011111000111000011111100011110001111110001111101111111000011111111111100001111111101110000111111100111000001111110011100000011110001110000000000000"},
{"T", "0000010000000000000001000000000011100000000000001110000000000000111000000011000011100000001100111110000011111111111111111111111111111111111111101111111111000000111100000000000011100000000000001110000000000000111000000000000011100000000000001110000000000000"},
{"q", "0000011111000000000111111110000000111111111100000111111111110000011111111111000001111000011100001111000001110000111000000111000011100000011000001110000001000001011100001111111100111111111111110011111111111111011111111111111111111111111111101111111110000000"},
{"d", "0000000000111110000000001111111100000001111111110000001111111111000000111100011100000011100000110000011100000011000001110000001100000111000000110000011100000110000000111000111100000011111111110000111111111111111111111111111111111111111111001111111110000000"},
{"9", "0000000000000111000111111000011100011111110001110011111111110111011111111111011101110001111101111110000011110111111000001111111111100001100111101110000111111110111111111111110001111111111110000011111111110000000111110111000000000000001100000000000000110000"},
{"6", "0000000011110000000011111111110000011111111111100011111111111110011111111000111001111001000011101111111100001110111001110000111111100111000111101110001111111110111001111111111111100111111110001110000111110011011000000000001100000000000000110000000000000001"},
{"g", "0000111100010000001111111001100000111111100110000111111110011000011111111001100011110001100110001110000110011000111000011011100011100001001110001110001100111000011000111111000001111111111100001111111111110000111111111110000011111111110000001111111000000000"},
{"x", "1000000000000000100000000000000010000000000000010000001100000011000000111100011100000011111111100000001111111100000000011111111100000000111111110000000111001111000000111000001100000011000000000000001000000000001000000000000000100000000000000010000000000000"},
{"k", "0110000000000000011000000000000001100000000000110100000001111111010001111111111111111111111111111111111111111110011111111000010011111111100000001011000001111000000000000111110000000000111111100000000111011111000000111000111100000111000001110000011100000011"},
{"x", "0000000010000000000000011000000011000011100000001111001110000000111111110000000011111100000000000111111000000000001111011000000001110001100000001110000010000000110000000000000011000000000000000000000000000000000000000000000000000000000110000000000000011000"},
{"g", "0000011111000011000111111110001100111111111100110011111111110011011111111111001111111000011100111111000001110011111000000111011111100000011001111110000011000111011000011111111100111111111111111111111111111110111111111111111011111111111110001111111111000000"},
{"i", "0000000000000111000000001111111100000111111111111110011111111111111001111111110011100111000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"Q", "0000001100000000000111111100000000111111110000000011111111100000011111011111000001110000011100000110000000110011110000000011000111000000001100001100000000110000110000000111100011000000111110001100000011111001011100111100100101111111110111010111111110001101"},
{"F", "0001100000000010000000000000001000000010111000000001111111100000111111111110000011111111100000001111110000000000110011000000000011001100000000001100110000000000110011000000000011001000000000001100000000000000100000000000000000000000000000000000000000000000"},
{"u", "0000011111111111111111111111111111111111111111111111111111111111111111111111111111111100000001111111100000000111000000000000011100000000000011100000000000011111000000000011111100000111111111111111111111111111111111111111111111111111111111111111111111111000"},
{"F", "0000000000000011000000000111111100001111111111110000111111111111111111111111111111111111111111001111111111000000111100111000000011100001100000001110000110000000111000011000000011100001100000001111000110000000111100011110000011110001001000001110000000000000"},
{"k", "0000000000000011000000000111111100000111011111111011111111111111111111111111111101111111111111001111111100000000111100000011000000000000011111000000000011111110000000011101111100000001100111110000001110001111000001110000011100000111000000110000111000000000"},
{"n", "0000000000000111000001111111111111111111111111111111111111111111111111111111100011111100000000000011100000000000011100000000010011111111111111111111111111111111111111111111111101111111111111100011110000000000000000000000000000000000000001110000000000000111"},
{"5", "0000000000000010000000000000001110000111100000111011111110000011101110111000001110110011100000110011001111000111011100111100111101110001111011110110000111111111011100011111110001110000111110000011000001111000001100000000000000110000000000000000000000000001"},
{"u", "0000000000000001000000000000000000000000011100000000011111111111111111111111111111111111111111111111111111111111111111010010011111111000000001110000000000000111000000000000111000000000001111110000011111111111111111111111111111111111111111111111111111111000"},
{"i", "0000011001000000000001000100000000000000000000000000000000000001000000000000001100000000011111110000000011111111000011111111111100001111111111111110111111111111111011111111111111110111111111001111011111010100111101111000000011111000000000001111100000000000"},
{"D", "0000000000000011000000011111111100000111111111111101111111111111111101010011100111001001000000110000000000000001000000000000001100000000000000110100000000000111001000000000111101010000000111110110110001111110001111111111110000101111111110000001111111100000"},
{"R", "0000000011100000000001111110000000111111111000001111111111100000111111111000000011111110000000001100011000000000110001100000000011001111000000001100111111000000111111111110000011111001111000001111100011100000111100000000000001000000000000000100000000000000"},
{"3", "0000011000000000000001000100000000000000010000000000011001100000010011100110000011001110011000001100111001100000110011101110000011011110110000001111111111000000111110111100000001110011100000000000000000000000000000000000000000000000000000000000000000000000"},
{"K", "0000000000000001000000000000000100000010111000010011111111100001111111111110000111111111110000011111110000000001110001100000000000001111000000000001111110000000001100111100000000110001111000000010000011100000011000000110000011000000000000001000000000000001"},
{"M", "0000000000000001000000000000000100000011011100010001111111110001111111111100000011111100000000001110000000000000111111110000000011111111111000000000111111100000000000001110000000000001111000000000011110000000000011110000000000111000001000000111001111110000"},
{"K", "0000000000111000000000111111100000011111111110001111111111111000111111111101100011111100000001001110011000000110000001110000001000001111100000010001101111000000000110011110000000010000111000000010000011110000011000000111000001100000001100001100000000010000"},
{"s", "0000000000001111000000000000111100000000000011110001001100000111001101110000011101110111100001110111111111110111011111111111011111111111111001101111111111100110111100011111011111110001111111111111000111111111111100001111111111110000011111101111000001111110"},
{"g", "0000011010000011000111111100001100111111111100110111111111110011111110000111001111110000011100111110000001100111111000000110011100111111111111111111111111111110111111111111100011111111110000001111000000000000000000000000000000000000000000000000000000000000"},
{"J", "0000000000011000000000000001100000000000000110000000000000011000000000000001100000000000011110000000000001111000000000111111000000111111111100001111111111100000111111111110000011111111110000001111100000000000111000000000000011000000000000000000000000001100"},
{"N", "0000000000000011000000001111111100001111111111111111111111111100111111110000000011111110000000001111111110000000011111111111000000010111111111110000000011111111000000000111111100000000011111110000111111111111111111111111110011111111100011001111000000001100"},
{"2", "0000000000011000000000100011100000000000011110000100000001111000010000001111100011000000110110001100000110011000110000110001100011111111000110001111111000011000111111000000000001111000000000000000000000000000000000000000000000000000000000010000000000000001"},
{"Y", "0000000000110000000000000000000000000000000000000000000000000000111000000000000011111100000000001111111100000011111111111111111100111111111111110000011111111111000000111111110000000111110000000001111100000000001111000000000011111000000000001111000000000000"},
{"5", "0001100000000000000000000000000000000000000000000000000001000000000110000110000011111000011000001100100001100000110010000110000011001000110000001100110011000000110011111100000011001111110000001100011110000000110000000000000011000000000000000000000000000000"},
{"e", "0000000111111000000011111111110000001111111111100001111111111111011111111111111101111111111011110111111111101111111111111110011111110111111001111111101111100111111110011100011111111001100001111111111110000111111111111000011111111111100001110111111110001111"},
{"B", "0000000000000011000000000111111100000000111111110000111111111111111111111111111111111111111111111111111111111111111111111000001111110001100000111110000110000011111000111100001111100011110011111111111111111111111111100111111111111110011111111111111001111110"},
{"m", "0000111111111111111111111111111111111111111111111111111100000000000110000000000001110000000000001111000000000111111111111111111111111111111111111111111111111100011111100000000000111000000000000111000000000000111111111111111111111111111111111111111111111111"},
{"3", "0000011100001110000000000000011101100011100001111110001110000111111000111000011111100111110011111110111111111110111111101111111011111110011111100111110000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"F", "0000000000000011000000000111111100001111111111110000111111111111111111111111111111111111111111001111111111000000111100111000000011100001100000001110000110000000111000011000000011100001100000001110000110000000111000011000000011100001000000001110000000000000"},
{"v", "1111111110000000111111111111111111111111111111110000000011111111000000000000111100000000011111110000001111111110000011111111000011111110000000001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"K", "0000000011111111000011111111111111111111111111111111111110000000111100011100000000000011111000000000011111110000000011100111111000001100010111110001100000001111001100000000011101110000000000011110000000000000100000000000000000000000000000000000011000000000"},
{"q", "0011011111110000000111111111100000111111111110000011111001111000001111000011100000111000001110000011100000111000001110000011000000111000011000010001110001111111010011111111111101001111111111110001111111111111001111111111111000111111110000001111110000000000"},
{"H", "0000000000000011000000001111111111111100111111111111111011011100111110011100000011111001100000000000000110000000000000011000000000000101100000000000001110000011000001111111111111111111111111111111111111111100111111110000000000000000000000000000000000000000"},
{"t", "0001111111111000001111111111110011111111111111001111111000011100110110000000110100011000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000"},
{"k", "0000000001111111000001111111111100000111111111110111111111111111111111111111110011111111110000001111111111000000111110000111100000000000111111100000000011111110000000001111111000000001110111110000000110001111000000111000011100000011000000110000001100000011"},
{"8", "0000000000011110000000000011111100000000011111110000110011111111001111100111111101111111111001110111111111000111011111111000001111110111110000111111011111000011111000111110001111100001111001111111111111111111111111111111111111111111111111111111111011111110"},
{"5", "0000000000010000000000000011100010111110000110001110111001011000110011100001100011001110001110011100111101110001110001111111000111000111111000011100001111000000110000000000000011000000000000000000000000000000000000000000000100000000000000010000000000000001"},
{"F", "0000000011111111000011111111111111111111111111111111111111000000111100111000000011100001100000001110000110000000111000011000000011100001100000001110000000000000111000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000"},
{"r", "0000011111111111111111111111111111111111111111111111111100000000000110000000000001111000000000001111000000000000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"6", "0000001111111110000011111111111100011111111111110001111111111111001111111110011101111101110000110111100110000011111100110000001111110011000000111110001110000111111000111000111111100011111111111110001111111110111000111111111011100001011111001111000011111000"},
{"W", "1110000000000000111111111111111011111111111111110111111111111111000000000001111100000000111111110000011111111000001111100100000011111110010000001111111111111111111111111111111100011111111111110000000000111111000000111111110100011111111000001111111110000000"},
{"V", "0100110000000000011111010000000001111111101100000111111111111000000001111111100000000000111110000000000000111000000000001111000000000011110000000000111110000000001111110000000001111000000000001111000000000001110000000000000100000000000000011000000000000011"},
{"j", "0000000111111111000001111111111101100111111111100110011100000000011100000000000000000000000000000000000000000000000000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000"},
{"H", "0000000011011111000010111111111110111111111010110111111110010100111111111000000001110001100000000000000110000000000000011000000000000001100000000000000110000000000000000000000100000000110111110000111110111111111111111111111111111111111111000111111010000000"},
{"n", "0000000000000010000001111111101111111111111111111111111111110000111111000000000000111000000000000111000000000111111111111111111111111111111111111111111111111111001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"X", "0000000000001100000000000001110011100000011111001111100001110000111111101111000011111111111100000011111111100000000011111111110000011111111111000001110001111100011110000001110011100000010000011110000001000001110000000100000000000000110000000000000011000000"},
{"7", "0000000001000000000000000000000011000000000001111110000000001111111000000011111111100000111110001110000111100000111000111100000011101111000000001111111000000000111110000000000011110000000000001110000000000000000000000000000000000000000000000000000000000000"},
{"E", "0000000011111111000011111111111100011111111111111111111111111111111111111111111111111111110000111111111110000011111100011000001111100001100000111110000110000011111000011000001111100001100000111110000010000011111000011000001111100001000000111110000000000000"},
{"Q", "0000000110000000000011111110000000111111111100000011111011110000011100000011100001100000000110001100000000011000110000000001100011000000000111001100000000111110111000000111111101110001111101110111111111100111001111111110001100011110000000000000000000000000"},
{"Q", "0000111110110000000111111111000000111111111110000011100000111100011100000001110001100000000111001100000000011100110000000001110011000000000111101100000000111110111000000111101101110011111100110111111111100011001111111000001100001111000000000000000000000000"},
{"M", "0000000011111111000011111111111111111111111111001111100000000000111111111110000011111111111111111111111111111111000000011110111100000000000111110000000001111100000000011111000000000111100000000001111000000011111111001111111111111111111111111111111111111100"},
{"9", "1111011110000011000111111100001100111111111000110011111111100011011111111110001101111001111000111111000011100011111000001110011111100000111001111110000011001111111000001001111111110000111111101111111111111100111111111111110001111111111110000011111111100000"},
{"c", "0000011111000000001111111110000001111111111100000111100011110000111100000111000011100000011100001110000001110000111000000110000011110000000000000111000100000000000000000000000000000000000000000000000000000111000000000000011100000000000000110000000000001111"},
{"j", "0000001011111111000011111111111111001111111110001100111000000000110000000000000000000000000011000000000000000000000000000000110000000000000011000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"q", "0001111111100000001111111111000001111111111100001111000001110000111000000111000011100000011000001110000011000001011100011111111101111111111111111111111111111110111111111000000011110000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"2", "0000000000000111000000000000011100000000000011110110000000011111011000000011111101100000011111111110000001111011111000000111101111100000011100111110000011100011111000011110001111100011110000111111111110000011111111111000001111111111000000110111111100000000"},
{"A", "0000000001100000000000011100000000000011110000000000011100000000000111110000000001111011000000000111001100000000111000010000000011111111000000001111111110000000111111111110000000000111111000000000000001100000000000000000000000000000000000000000000000000000"},
{"m", "0000011111111111111111111111111111111111111111111111111000000000000111000000000001111000000000001111110000000111111111111111111111111111111111111111111111111100011111100000000000111000000000000111000000000000111111111111111111111111111111111111111111111111"},
{"T", "1110001100000000111000000000000011100000000000011110000001111111111011111111111111111111111111111111111111111100111111110000000011100000000000001110000000000000111000000000000011100000000000001110000000000000110000000000000000000000000000000000000000000000"},
{"d", "0000000011111111000000011111111100000011111111110000001111000111000000111000001100000111100000110000011100000011000001110000001100000111000001100000001110001111000000011111111100000101111111110000111111111111111111111111111111111111111111001111111110000000"},
{"R", "0000000000000011000000000111111100001100111111111111111111111111111111111111111111111111111111001111111111000000111100001100000011100000110000001110000011100000111000011111110011100001111111111110001111111111111111110011111111111111000111111111111100000111"},
{"Y", "1111000000000000111111000000000011111111100000111111111111111111001111111111111100000111111111110000001111111100000001111100000000011111000000000011110000000000111110000000000011110000000000001100000000000000000000000000000000000000000000000000000000000000"},
{"c", "0000111111000000000111111100000000011111111000000001100011100000001110000110000000111000011000000011000001100000001100000110000000110000010000000011000001000000001110000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"7", "0000000000000011111000000000111111100000000011111110000000011111111000000011111011100000011111001110000011111100111000011110000011100001110000001110001110000000111001110000000011101111000000001111111000000000111110000000000011110000000000001111000000000000"},
{"s", "0000000000000111000000000000011100111111100001111111111111100111111111111110011111110001111101111111000111111111111100000111111001110000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"F", "0000000011111111000011111111111111111111111111111110101111000000111100011000000011100001100000001110000110000000111000011000000011100001100000001110000000000000111000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000"},
{"c", "0000011111111111000111111111111100111111111111110011110000000111011110000000001111111000000000111111100000000011011111000000001101111100000000000000000000000000000000000000000000000000000000000000001000000000010001100000000000000000000000000000000000000000"},
{"c", "0000111111111111000111111111111100011111111111110011111111111111011111111111111101111110000111111111110000011111111110000000111111110000000011111111000000001111111100000000011111110000000001111111000000000111111100000000011111111000000000101111100000000000"},
{"q", "0000011111100000000111111111000000111111111100000011100001110000011100000011000001110000001100000111000001100001001100001111111100111111111111110111111111111111011111111100000011111000000000000000000000000000001000000000000000100000000000000001000000000000"},
{"s", "0000111000000111000111100000011100011111000001110011111110000111011111111100011111111111111001111111111111100111111111111110011111110001111101111111000111110111111100011111111111110000111111111111000011111111111100000111111001110000001111000111000000011000"},
{"U", "0000000011111100000011111111111111111111111111111111111111111111111111111100011111110000000000110011000000000011001100000000001100100000000000110000000000000011000000000000011100000000000011110000001111111110000011111111110011111111111110001111111100000000"},
{"u", "0000001111111111011111111111111101111111111111110111111111111111111111111111111111111100000001111111110000000011000000000000011100000000000011100000000000011111000000000001111100000011111111110111111111111111011111111111111101111111111111110111111111111100"},
{"k", "0000000000000011000000000111111111111111111111111111111111111100111111111000000011110000011110000000000011111110000000011101111100000011100011110000011100000011000001100000000000000000000000000000000000001010000000010000000000000000000000000000000000000000"},
{"H", "0000000001111111000011111111111111011111111111111111111111100000111110011000000000000011000000000000001100000011000001111111111100000111111111110000001111111100000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000011"},
{"A", "0000000000011110000000000111111000000001111110000000001111110000000001111111000000011111101100000011111000110000011110000011000011110000001100001111100000110000111111111111000011111111111111001111111111111110111111111111111100001111111111110000000001111111"},
{"V", "1100000000000000111111100000000011111111110000001111111111111110011111111111111100110111111111110000000001111111000000000000111100000000000011110000000000111111000000001111110000000011111100000000011111000000000111110000000001111110000000001111100000000000"},
{"p", "0000000000011000000111011111100011111111111110001111111111110001111111110000000101100001110000010100000111000001110000011100000111000011110000001111111110000000111111110000000001111110000000000000000000000000000000000000000000000000000000000000000000001000"},
{"p", "0000111111111111111111111111111111111111111111101111100011100000001100000111000001100000011100000110000001110000111000001111100011111111111100001111111111100000011111111100000000111111100000000000000000000000000000000000000000000000000000000000000001000000"},
{"y", "1111100000000111111111111100111111111111111111110000111111111100000000011111101100000011111000110000111110000110001111110000001011111000000000001110000000000000000001100000000000000110000000000000001000000000000000000000000000000000000000000000000000000000"},
{"Q", "0000011111100000000111111111000000111111111110000111111111111000011110001101110001110000000111000110000000011100110000001001110011000000100111001100000000011110110000000001111011000000001111101110000001111011011110011111001101111111111000110111111111100011"},
{"p", "0000000000000001000010110111111111111111111111111111111111111110111111111110000000110000011100000110000001110000011000000111000011110000111100001111111111100000111111111100000001111111100000000000000000000000000000000000000000000000000000000000000001110000"},
{"A", "0000000011110000000000011110000000000111110000000001111111000000001111011100000001110001110000001111000111000000111110111100000011111111111000001111111111111000000011111111100000000011111110000000010000111001000000000000000100000000000000010000000000000011"},
{"j", "0000000011111111000000001111111100000001111111110000111111111111000011111111111100001111111111110011111111111111011101111111111001110111111111100111011111111110011101111111000001110111111100000111011111110000011101110000000001100111000000000110011100000000"},
{"Y", "1111100000000011111111000000001111111111000000111111111111111111111111111111111100111111111111110000011111111111000000011111111100000011110000110000011110000011000111110000001100111100000000110111100000000011111110000000001111110000000000111100000000000011"},
{"k", "0000000000000011000000001111111111111111111111111111111111111100111111111000000011110001111000000000011111110000000001111111110000001111001111100001110000011111001100010000011101110001100000111110000010000000110000000000000000000000111100000000000011110000"},
{"e", "0001111111111110011111111111111101111111111111111111111111110111111100011000011111110001100111111111001110001111111111111000111101111111100011110011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"m", "0000011111111111111111111111111111111111111111111111111000000000011110000000000001110000000000001111000000001111111111111111111111111111111111111111111111111000011111000000000001111000000000000111000000000000111111111111111111111111111111111111111111111111"},
{"L", "0000011111111111000011111111111100011111111111111111111111111111111111111111111111111111111111111111111000000111111100000000011111100000000001110000000000000111000000000000011100000000000001110000000000000111000000000000011100000000000001110000000000000111"},
{"K", "0000000000000011000000001111111111111111111111111111111111111100111111111000000011110001111000000000001111110000000011111111110000001110011111100001110000001111001100000000011101110000000000011110000000000000110000010000000000000001000000000000000000000000"},
{"X", "0000000000000011000000000000011100111100001111110011111101111100001111111111100000011111111110000000001111111110000000111111111100001111000111110001111000001111001110000000010000110000000001000010000000000100000000000000000010000000000000001000000000000000"},
{"6", "1000001011111110100001111111111110001111111111111001110011000111101111010000011110111010100001111011000100001111101100011100111010110011111111101011000111111100101110001111100010111000000000000000000000000000000000000000000000000000000000000000000000000110"},
{"S", "0000111000000111000111110000001100011111000000110011111110000011001111111100001100111111110000111111011111100011111100111110001111110011111000111111000111110111111100011111111111110001111111111111000011111111111100000111111011110000011111100011000000111000"},
{"G", "0000001000000000000111111000000000111111110000000011111111000000011101011100000001100000111000000110000001100000110000000110000011000000011000001100000001100000110000000110000011000001111000001100011111000000110001111100000111000111100000000100000000001100"},
{"W", "1111111111111000111111111111100011111111111110000000000001111000000000011111000100000111110000010000111100000000001111100000000011110000000000011111111110000001111111111111100111111111111110010001111111111000000000000111100000000111111000000000111110000000"},
{"Y", "1111100000000000111000000000000011000000000010001100000111111100110111111111110011111111111111001111111111100000111111100000000011100000000000001100000000000000110000000000000011000000000000001100000000000000010000000000000000000000000000000000000000000000"},
{"g", "0001111111100011001111111111001100111111111100110111111111110011111110000111001111110000011100111111000001110011111000000110011111100000010001110111000011111111011100011111111100111111111111111111111111111110111111111111100011111111111110001111111110000000"},
{"Q", "0000000110000000000011111111000000011111111111000011111111111000011110000001110001110000000111001110000000011100110000000001110011000000000111101100000000111110111000000111111101111001111100110111111111100011001111111100001100011110000000000000000000000000"},
{"n", "0000011111111111111111111111111111111111111111111111111110000000001101000000000001110000000000000111011100001111111111111111111111111111111111110111111111111000001111000000000000001100000000000000110000000000000000000000000000011000000000010011100000001111"},
{"A", "0000000000011111000000000111111100000011111110000000111111111100001111110011110001111110001110001111110000111000111111000011100011111111111111101111111111111111000011111111111100000000011111110000000000000011000000000000000000000000000000000000000000000000"},
{"r", "0000011111111111000001111111111111111111111111111111111111111111111111111111111111111111111111001111111111111000111111110000000011111111000000000001100000000000001110000000000001111000000000001111100000000000111100000000000011110000000000001111000000000000"},
{"8", "0000000000011000000000000011100000011100111110110011110111001111010111111000011100001111110001111110011111000111000010111010111111111001111111101111100011101100011110000010100000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"Q", "0000111111110000000111111111000000111111111110000111100000111100011100000001110001100000000111001100000000011100110000000001110011000000000111101100000000111010111100000111001101111011111100110111111111100011001111111100001100001110000000000000000000000000"},
{"F", "0000000011111111000011111111111111111111111111111111111111000000111100111000000011100001100000001110000110000000111000011000000011100001100000001110000000000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"R", "0000000011111111000011111111111111111111111111111111111111111111111111111111110011111111110000001111000111000000111000001100000011100000111000001110000111100000111000011111110011100001111111111111111111111111111111110011111111111111000111111111111100000111"},
{"V", "1100000000000000111111100000000011111111111011100111111111111111000000111111111100000000011111110000000000001111000000000011111100000001111110000000011111100000000111111000000001111110000000001111100000000000010000000000000000000000000000000000000000000000"},
{"q", "0001111111100000001111111111000001111111111100001111000011110000111000001111000011100000111000001110000011000001011100011111111101111111111111111111111111111110111111111100000011110000000000000000000000000000000000001000000000000000100000000000000010000000"},
{"L", "0000000011111111000011111111111111111111111111111111111110011011111100000000001100000000000000110000000000000011000000000000001100000000011000110000000000000011000000000001100000000000000110000000000010000000000000000000000000000000000000000000000000000000"},
{"G", "0000001111111100000011111111111000011111111111110011111110111111001111000000111101111100000001110111000000000011111100000000001111100000000000111110000000000011111000000000001111100000111111111110000011111111111000001111111111100000111111000111000000000000"},
{"n", "0000000000000111000011111111111111111111111111111111111111111111111111111111111111111111111110001111111000000000001111000000000000111000000000000111100000000000011110000000011111111111111111111111111111111111111111111111111111111111111111110111111111111000"},
{"8", "0000000000011100000000000111111000001000111111110011111011111111011111111100111101111111100001111111111110000111111001111100011111100011110001111110001111001111111111111011111011111111111111101111111011111110011110000011011000000000000000000000000000001100"},
{"f", "0000111000001100000011111111110000111111111111000111111111110000011111101000000011111110000000001100111000000000110001110000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"g", "0001111111100011001111111111001100111111111100110111111111110011111110000111001111110000011100111111000001110011111000000110011111100000010001110110000011111111011000011111111100111111111111111111111111111110111111111111100011111111111110001111111110000000"},
{"t", "0001110000000000000111111111111111111111111111111111111111111111111111100000000111011100000001010001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"N", "0000000111111000000111011111100011111100111000001110100000000000111110000000000101110111100000010010011110000000000001111111100000000000111110000000000111111000000011111111110011111111101000001110110000000000110000000000000000000000000000000000000000000000"},
{"e", "0000111111111110001111111111111101111111111111111111111111100111111100011100011111110001100011111111001110001111111111111000011101111111110011110011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"L", "0000000011111111000011111111111100001111111111111111111111111111111111111111111111111111111111111111111110000011111100000000001111110000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011"},
{"L", "0000000000001111000000001111111111111111111111111111111111111111111111110000001111110000000000110000000000000011000000000000001100000000000000110000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"H", "0000001111111000000111111111100011111111111110001111111100000000111011100000000000001110000000000000011000000000000001100000000000000110000010000000011101111000000111111111100011111111111010001111111111100001111001000000000100000000000000010000000000000001"},
{"j", "0000000111110111000011111111111111001111111101001100111000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"N", "0000000011011111000000101111111111101101110110001111101010000000111110011000000011111111100000000111111100000000001111111000000000011111110000100000001111110111000000000111011100000000001111110000000011111111000011111111111111111111111111001111111100000000"},
{"V", "1100000000000000111111100000000011111111111011100111111111111111000000111111111100000000011111110000000000011111000000000011111100000001111110000000011111100000001111111000000001111110000000001111000000000000011000000000000000000000000000000000000000000000"},
{"Q", "0000111111110000000111111111001000111111111111100111100000111100011100000001111001100000000111001100000000011100110000100001110011000000000111101110000000111110111000000111101111111001111110110111111111100011001111111100001100001110000000000000000000000000"},
{"m", "0000011111111111111111111111111111111111111111111111111000000000000111000000000001110000000000001111000000000111111111111111111111111111111111111111111111111100011111100000000000111000000000000111000000000000111111111111111111111111111111111111111111111111"},
{"8", "0000001110011110000000000011111100000000011111110000110011111111001111100111111101111111111001110111111111000111011111111000001111110111110000111110011111000011111000111110001111100001111001111111111111111111111111111111111111111111111111111111111011111110"},
{"3", "0000000000000011000000000000001101100001100000110110000110000011111000011000001111100001110000111110001111000111111111111111111111111110011111110111110000111110000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000"},
{"Q", "0000111111110000000111111111000000111111111110000111100000111100011110000001110001100000000111001100000000011100110010000001110011000000000111101100000000111110111000000111101101111001111100110111111111100011001111111100001100001110000000000000000000000000"},
{"N", "0000000111111100000111111111110011111111111000011111110000000000111111100000000001111111100000000011111111100000000001111111100000000000111111000000001111111110000111111111110011111111111000001111111000000000111000000000000000000000000000000000000000000000"},
{"e", "0000111111111110000111111111111100111111111111110111111111111111011111111111111101111111100111111111111110000111111100111100011111110001111001111111000111100111111100011110011111110011110001111111111110000111111111111000011111111111100001110111111110001111"},
{"W", "0011111111111111001111111111111100111111111111110000000000001111000000000001111100000000111111000000000111110000000001111100000000111110000000000011111111111000001111111111111100111111111111110000011111111111000000000001111100000000111111101000001111111000"},
{"2", "1111111000000111111100000000111111110000000111110111000000011111011100000011101101110000011100110111000111100011011111111000001101111111000000000011111000000000000000100000000000011000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"E", "0000000011111111000011111111111100011111111111111111111111111111111111111111111111111111110000111111111110000011111100011000001111100001100000111110000110000011111000011000001111100001100000111110000110000011111000011000001111100001000000111110000000000000"},
{"5", "0000000000000011000000000000001100001111000000110000111100000011111111110000001111110011100000111110001100000011111000111000011111100011100001111110001111001111111000011111111111100001111111101110000111111100111000001111110011100000011110001110000000000000"},
{"v", "1111111000000000111111111111000011111111111100000000011111110000000000001111000000000001111000000000011111000000011111110000000011111000000000001110000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"s", "0000000110000000001100011000000001111001100001001111100110000110111111111000011011111111100000001100111110000000110011111000000011001111100000001100111110000000110001110000000001000010000000000000000000000000000000000000000000000000000000000000000000000000"},
{"V", "1100000000000000111111100000000011111111111011100111111111111111000000111111111100000000011111110000000000001111000000000011111000000001111110110000011111100000000111111000000001111110000000001111100000000000010000000000011000000000000001100000000000000110"},
{"C", "0000001111111110000011111111111000011111111111110011111110111111001111000001111101111000000001110111000000000011111100000000001111100000000000111110000000000011111000000000001111100000000000111110000000000011111000000000011111100000000000000111000000000000"},
{"W", "1111111111111000111111111111100011111111111110000000000001111000000000001111000000000011110000000001111100000000001111100000000011111000000000001111111110000000111111111111100011111111111110000011111111111000000000000111100000000111111000000000111110000000"},
{"y", "1111111100000011111011111111001110001111111111110000000111111110000000000111110000000000011100000000000111100000000001111000000000001111000000000000110000000000000000000000000000000000000000000000000000000000000000000000001000000000000000100000000000000000"},
{"h", "0000000011111111000011111111111111111111111111111111111111000000111100011000001100000011000000000000001100001111000001111111111100000111111111110000001111111100000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"s", "0000000000001111000000000000111100011111000011110011111110001111011111111000111111111111110011111111111111101111111111111111011111111111111101111111000111110111111100011111011111110001111111111111000111111111111100001111111111110000011111101111000001111110"},
{"3", "0000000001000000000000000100000001001100011000001100110001100000110011000110000011001100011000001100111011000100111111111100010011111111110000000111001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000010"},
{"N", "0000001111110001001111111111000111111111110000001111100000000000111111000000000001111111000010000011111111001000000011111111100000000001111100010000001111111001000111111111100111111111110010011111110000001001010000000000011000000000000001100000000000000110"},
{"C", "0000001101010100000011111010111100111111101011110011110000101111011110000000011101110000000000111111000000000011111000000000001110100000000000110100000000000011111000000000001111100000000001110100000000000000011100000000000000000000000000000000000000000000"},
{"C", "0000001111111100000011111111111000011111111111110011111110111111001111000000111101111000000001110111000000000011111100000000001111100000000000111110000000000011111000000000001111100000000000111110000000000011111000000000011111100000000000000111000000000000"},
{"R", "0000000000000011000000001111111111111111111111111111111111111100111111111100000011100000110000001110000011100000111000011111110011100011111111111111111111111111111111110000011101111110000000000000000000000000000000000000000000000000000000000000000000000000"},
{"m", "0000011111111000001111111111100000111111111100000011111000000000000111000000000000011000000000000011100000111000001111111111100000111111111110000011111111100000001111000000000000001100000000000101100000000000011111111111100001111111111100000111111111111001"},
{"p", "1101111111111111111111111111111111111111111111100011111001110000000011000011100000011000001110000001100000111000001110000111100000111111111100000011111111110000000111111111000000001111110000000000000100000000000000000000000000000000000000000000000000000000"},
{"7", "0100000000000011010000000000000000000000000000110111000000001111011100000000111110110000000111111011000000111100101100000111100000110000111000000011000111100000001100011000000000110111000000000011111100000000001111100000000000111100000000000011100000000000"},
{"L", "0000000001000000000001111100000010011111111000001111110011100000111111000110000011000000011000000000000001100000000000000110000000000000011000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011000000"},
{"S", "0011000011100000011110000110000001111100011000001111111001100000110111100110000011001111110000001100111111000000110001111100000011000011100000000100000000000000000000000000000000000000000000000000001000001100000000100000110000000010000011000000000000011100"},
{"j", "0000000111111111000011111111111111001111111111101100111000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000110000000000000011"},
{"J", "0000000000000011000000000000001100000000000011110000000000011111000000010101111100000001111111110000000111111111000111111111111000011111111111101111111111111110111111111111110011111111111101001111111111100000111111111110000011111110000000001111111000000000"},
{"T", "1110000000000000111000000000000011100000000000011110000001111111111011111111111111111111111111111111111111111100111111110000000011100000000000001110000000000000111000000000000011100000000000001110000000000000110000000000000000000000000000000000000000000000"},
{"b", "0000000001111111000011111111111111111111111111111111111111111110111111111100011111110001100000110000001100000011000000110000001100000111000011110000011111111111000001111111111000000011111111000000000111111100000000000000000000000000000000000000000000000000"},
{"8", "0000000100011110000000011111111100011110111111110111111111101111011111111100001111110111111000111110001111100011111000111111111111111111111111111111111011111110011111000011110000000000000000000000000000000000000000000000000100000000000000000000000000001100"},
{"u", "0000011111111111111111111111111111111111111111111111111111111111111111111111111111111110000001111111110000000111000000000000111100000000000011100000000000011111000000000011111100000111111111111111111111111111111111111111111111111111111111111111111111111000"},
{"c", "0000000111111100000111111111111100111111111111110111111000001111111110000000011111110000000001111111000000000111111100000000011111111000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"k", "0000001111100000001111111110000011111111110000001111110000000000111000110000000000000011100000000000011111000000000011011110001100001000111000000001100001100000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"Q", "0000111111100000000111111111000100111111111100000111111111111000011100000011100001110000000110001110000000011000110000000001100111000000000110011100000000111111110000000011111011100000011111100111000111110110011111111110011101111111111000110011111110000010"},
{"5", "0000000000000011000000000000001100001111100000110000111110000011111111111000001111110011100000111110001100000011111000111000011111100011100001111110001111001111111000011111111111100001111111101110000111111100111000001111110011100000011110001110000000000000"},
{"A", "0000000000000011000000000000111100000000001111100000000111111000000001111111100000111111001110000111110000111000111110000011100011111111111110001111111111111110111111111111111100000000011111110000000000000011000000000000000000000000000000000000000000000000"},
{"M", "0000000011111111000011111111111111111111111111111111100000000000111111111110000011111111111111111111111111111111000000011110111100000000000111110000000001111111000000011111000000000111100000010001111000000011111111001111111111111111111111111111111111111100"},
{"V", "1111000000000001111111000000000111111111110000011111111111111101011111111111111100000111111111110000000001111111000000000101111100000000000111110000000001111110000000001111100000000011111000000000111111000000000111110000000001111100000000001111000000000000"},
{"v", "1111111110000000111111111111110011111111111111101111111111111111111111111111111111111111111111110000000111111111000000000001111100000000000111110000000001111111000000111111110000000011111110000000111111100000011111111000000001111111000000001111110000000000"},
{"U", "0000001111100000000111111111100011111111111110001111111000111000111000000001100000000000000110000000000000011000000000000001100000000000001100000000000111110000000111111110000011111111110000011111110000000000110000000000000000000000000000000000000000000000"},
{"r", "0000011111111111111111111111111111111111111111111111111100000000001110000000000001111000000000001111000000000000111100000001100000000000001100000000000000110000000000000000000000000000000000000000000001000000000000000110000000000000100000000000000111000000"},
{"N", "0000000001111111000001111111111100111111111111000011111111000000001111110000000000111111100000000011111111110000001011111111100000000111111111010000000111111111000000000011111100000000000111110000000001111111000001111111111101111111111111000111111110000000"},
{"5", "1000000000000010100000000000001110000111110000111000011111000011001111111100001100111001110000110111000110000011011100011100001100110001110001110011000111001111001000001111111100110000111111100011000011111100001100001111110000110000011110000011000000000000"},
{"N", "0000000000001100000011011111110011111111111100001111111000000000111111000000000011111111000000010011111111100000000001111111110000000001111111000000000001111100000111111111110011111111111100001111111000000000111000000000000000000000000000000000000000000000"},
{"D", "0000000111111100000111111111110011111111111111001111110000011100111000000001110011000000000111001100000000011100110000000001110011000000001110001110000011110000111110011111000001111111111000000111111111000000001111100000000000000000000000000000000000000000"},
{"L", "0000000011111111000011111111111100001111111111111111111111111111111111111111111111111111111111111111111110000011111100000000001111110000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011"},
{"7", "0000000000000011111000000000111111100000000011111110000000011111111000000011111011100000011110001110000011111000111000011110000011100001110000001110001110000000111001110000000011101111000000001111111000000000111110000000000011110000000000001111000000000000"},
{"V", "1100000000000000111111100000000011111111110000001111111111111110011111111111111100000111111111110000000001111111000000000000111100000000000011110000000000111111000000001111110000000011111100000000011111000000000111110000000001111110000000001111100000000000"},
{"V", "1100000000000000111110000000000011111111101011001111111111111100000011111111110000000001111111000000000001111100000000011111000000000111110000000000111100000000001111100000000001111000000001001110000000000000010000000000000000000000000000000000000000000001"},
{"p", "0000111111111111111111111111111111111111111111101111100111100000001100000111100001110000011110000110000001111000111000001111100011111111111100001111111111100000011111111000000000111111000000000000000000000000000000000000000000000000000000000000000000000000"},
{"N", "0000000011111111000011111111111111111111111111001111111110000000111111100000000011111111000000000111111111100000001111111111100000011111111111000000001111111111000000000111111100000000001111110000000011111111000011111111111111111111111111001111111100000000"},
{"J", "0000000000000001000000000000000100000000000000110000000000000011000000000000001100000000000000110000000000000111000000000000010100000001101111010000000111111111000110111100111010011111111011101011111111101100101111101100000000111100000000000001110000000000"},
{"W", "0111111111111111011111111111111111111111111111110000000000001111000000000001111100000000111111000000001111100000000011111100000001111100000000000111111111110000011111111111111101111111111111110000011111111111000000000010111100000001111111000000011111111000"},
{"8", "1111111000011110111100000111111111111110111111110111111111100111011111111100011111110111110000111111001111100011111000111111011111111111111111111111111011111111011111000011100000000000000000000000000000000000000000000000000000000000000000000000000000100000"},
{"C", "0000001111111100000011111111111000011111111111110011111110001111001111000001111101111000000001110111000000000011111100000000001111100000000000111110000000000011111000000000001111100000000000111110000000000011111000000000011111100000000000000111000000000000"},
{"C", "0000000001100000000001111111110000011111111111110011111110111111001111000000111101110000000001111111000000000011111000000000001111100000000000111110000000000011111000000000001111100000000001111110000000000000011100000000000000000000000000000000000000000000"},
{"e", "0000111101111110001111111111111000001111110111110011000010000111111000000000011011110001000001110111000010000011111111110000011100111110100011110000011110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"G", "0000011111111000000111111111110000111111111111100011110000011111011110000000111101110000000001111110000000000111111000000000011111100000000001111110000011111111111000001111111111100000111111101110000011111110011100000000011000000000000001110000000000000011"},
{"5", "0000000000000011000000000000001100001111000000110000111100000011111111110000001111110011100000111110001100000011111000111000011111100011100001111110001111001111111000011111111111100001111111101110000111111000111000001111100011100000011110001110000000000000"},
{"4", "0000000001110000000000001111000000000011011100000000011001110000000011000111000000011000011100000011000011111111011011111111111111111111111111111111111111111000111100000111000000000000000000000000000000000000000000000000000000000000110000000000000011000000"},
{"D", "0000000111111100000111111111110011111110111111001111111011011100111000000001110011000000000110001100000000011110110000000001111011000000001110001110000001111000111110011111000001111111111000000111111111000000001111101100000000000000000000000000001000000000"},
{"g", "0011111111100011011111111111001111111111111100111111000001110011111000000111011111100000110001110110000111111111001111111111111111111111111111001111111111000000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"r", "0000011111111110000001111111111011111111111111101111111111111110111111111111111011111111111111001111111111111000111111110000000011111111000000000001100000000000001110000000000001111000000000001111100000000000111100000000000011110000000000001111000000000000"},
{"d", "0000000000111110000000001111111100000011111111110000001111000111000001111000001100000111000000110000011100000010000000111000011100000001111111110000111111111111111111111111111011111111100000001111000000000000000000000000000000000000000000000000000000000000"},
{"d", "0000011111000000000011111110000000011110111000000001110001100000000110000110000000011000110000000001100011000000000011101110000000011111111000001111111111100000111111111000000011111100000000001110000000000000000000100000000000000010000000000000001000000000"},
{"a", "0000011101111111000000011111111101111001111111111111000111000111111100011100011111110001111011101111111111111111111111111111111111111111111111110011110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"L", "0000000011111111000011111111111100001111111111111111111111111111111111111111111111111111111111111111111110000011111100000000001111110000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011"},
{"n", "0000000000000011000000001111111100000111111111110000011111111100000001111000000000000011000000000000001100000011000001111111111100000111111111111000011111111111110000111000000000000000000000000110000000000000011000000000000000000000000000000000000000000000"},
{"b", "0000000111111000000111111111100011111111111110001111111100111000111101110001100000000100000110000000010000011000000011000011100000001111111110000000111111110000000001111110000000000011110000000000000000000001000000000000000100000000000000010000000000000111"},
{"j", "0000000111111111000011111111111111001111111111101100111000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"x", "0000000000000111111100000000011111110000000011111110111000011111111001111111111011110111111111001111111111111000011111111111110001111111111111100000111111111111000111111111111100111111111111110111111000011111100111000000011111011000000000111110000000000000"},
{"S", "0000000000000011000011000000001101111110000000110111111110000011011111111100001111100111110000111110001111100111111000011111111111100000111111100111000001111000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"9", "0000011111000011000111111110001101111111111000110111100111100011111110001110001111100000111001111110000011001111111000001101111111111111111111100111111111111000001111111110000000001111000000000000000000000000000000000000000000000000000000000000000000000000"},
{"3", "0000000000000011000000000000001111100011100000111110001110000111111000111000011111100011110001111110011111100111111111100111111101111111011111100111110000111000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000"},
{"q", "0001111111100000001111111111000001111111111100000111111111110000011110000111000011111000011100001110000001110000111000000111000011100000011000001110000011000001011100011111111100111111111111110111111111111111111111111111111111111111111111101111111110000000"},
{"w", "1111111111111111111111111111111111111111111111110000000000001111000000000011111100000001111111000000011111100000000111111000000011111100000000001111111111110000111111111111111111111111111111110000111111111111000000000010111100000001111111000000011111110000"},
{"n", "1111111011111111111101111111111111000111111111010000011111111100000001111100000000000001100000000000001100000000000000110000001100000011000100110000011110111111000001111111111100000111111111110000001110011100000000010000000000000000000110000000000110011000"},
{"7", "0000000000011100110000000011110011000000011111001100000011110000110000011110000011000011100000001100011100000000110011100000000011111100000000001111000000000000111000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"y", "1110100000000001111011100000111111101111000011111111111101101111011111111111001100001111101111000000011110111100000000011111110000000011111000000000011111000000000011111000000000011111000000000111100000000000111110000000000011111000000000001110000000000000"},
{"u", "0000000111111000000111111111110011111111111111101111111100011110111100000000011000000000000001100000000000000110000000000000111000000000000111000001000011111100000111111111100011111111111100001111111100000000101000000000000000000000000000000000000000000010"},
{"i", "0000000011111111000001111111111111100111111111111110011110000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"9", "0000011111001011000111111110001101111111111000110111100111100111111100001110011111100000111001111110000011001111111000001101111111111111111111100111111111111000001111111110000000001111000000000000000000000000000000000000000000000000000000000000000000000000"},
{"4", "0000000011110000000000011111000000000001111100000000000101110000000000110111000000000110011100000000110001110000000011001111000000011000111100110011000011111111001000001111111101101111111111111111111111111111111111111111110011111111111111001111111101110000"},
{"e", "0000001111110000000111111111110000111111111111110111111111011111111110111100111111110011110011111111000110001111111111111000111111111111100011110011111110011111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"k", "0000000011111111000011111111111111111111111111111111111111111110111111110000000011110001110000000000000111110000000000111111000000000110011111000000111001111110000011000001111100011100000011110011000000000111011100000000000111100000000000001100000000000000"},
{"w", "1111111111111111111111111111111111111111111111110000000000111111000000000011111000000001111110000000011111100000000111111000000011111100000000001111111111100000111111111111111101111111111111110000111111111111000000000001111100000011111111000000111111110000"},
{"m", "1111111011111111111111111111111111111111111111001111111100000000111110000000000011111111111000001111111111111111111111111111111100000011111111110000000000001111000000000011111100000000111111000000000111110000000001111000000000011111000000110111110011111111"},
{"l", "0000000000000011000000000111111100000000111111110000111111111111111111111111111111111111111111111111111111111111111111110000001111110000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000011"},
{"7", "0000000000011000011000000011100001100000011110000110000011110000011000011100000001100011100000001110011100000000111101100000000011111100000000000111100000000000011100000000000001100000000000010001000000000001000000000000000100001000000000010000000000000001"},
{"j", "0000110111110111000011111111101111001111111100001100110000000000110000000000000000000000000000000000000000000000000000000000000000000010000000000100000000000000000000000000000000000000000000000000000000000001000000000000000100000000000000010000000000000011"},
{"j", "0000000111111111000000011111111100000001111111110000111111111111000011111111111100001111111111111100111111111111110011111111111011001111111111101100111111111110110011111111000011001111111000001100111111100000110011100000000011001110000000001100111000000000"},
{"9", "0000000000000011000000111100001100011111111100110001111111110011101111001111001111111000011100110111000001100111001100000100111100111000111111100011111111111100001111111111000000000111100000000000000000000000000000000000000000000000000000000000000000000000"},
{"q", "0001111111100000001111111111000001111111111100000111100001110000111000000111000011100000011100001111011001000001011101101111111100111111111111110111111111111111111111111111111011111101100000000000001000000000000000110000000000000000000000000000000100000000"},
{"u", "0000000111110000000111111111100011111111111110001111111000111100111000000001110000000000000111000000000000011100000000000001110000000000001110000000000111110000000111111110000011111111111000001111111000000000111000000000000100000000000000110000000000000011"},
{"j", "0000000000000111000000000000011100000000000111110000000000011111000000010011111100000001111111100000001111111110000111111111111000011111111111001111111111111100111111111111110011111111111010001111111111100000111111111110000011111110000000001111111000000000"},
{"5", "0000000000000011000000000000001111011111000000111111011100000011111000110000001111100011100001111110001111001111111000011111111111100001111111101110000011111000111100000000000011110000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"s", "0000000000000111001111110000011101111111111001111111111111100111111100111111011111110001111111111111000011111111111100000011110000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"k", "0000000011111111000111111111111111111111111111111111111100000000111100011100000000000011111000000000011111110000000011111111110000001100001111100001100000011111001100000000111101100000000000111100000000000000100000000000000000000000000000000000000000000000"},
{"i", "0000000011111111000000001111111100000000111111110000011111111111000001111111111100000111111111111110011111111111111001111111111111100111111111111110011111111111111001111111110011100111111111001110011111111100111001111000000011100111000000001110011100000000"},
{"m", "0000000000000111000001111111111111111111111111111111111111111000111111100000000000111000000000001111000000000011111111111111111111111111111111111111111111111111011111100000000000111100000000000111000000000000011100000000011111111111111111111111111111111111"},
{"b", "0000001111111111000011111111111111111111111111111111111111111111111100111100001111100001110000111110001111000111111111111111111111111111111111111111111001111110011111000001110000100000000000000000000000000000000000000000000000000000000000000011000000000000"},
{"y", "0110000000000000010000000000000011010000000000001011110000000000111111010001110100000111110111110000011111101101000000111000000000000111000000000001111100000000000011000000000011111000000000001111100000000000100000000000000000000000000000000000000000000000"},
{"b", "0000000001111111000001111111111111111111111111111111111111111111111111111111111011111111110001111111100110000011000000011000001100000011100000110000001110000011000001110000011100000111000011110000011111111111000001111111111100000111111111100000001111111100"},
{"h", "0000000000000110000000000001111011111111111111101111101110111000111111110000000011100011000000000000001100000000000000110000000000000011000000000000001100000110000011111111111001111111111111101111111101111000111111000000000010000000000000000000000000000001"},
{"d", "0000011111000000000001111110000000001111111000000000111011100000000011000110000000011100011000000001100001100000000110000100000000011000110000000000110011100000000011111110000000011111111000000011111111100000111111111110000011111111100000001111110000000000"},
{"7", "0000000000000011111000000000111111100000000111111110000000111110111000001111100011100001111000001110001111000000111101110000000011111110000000001111100000000000111100000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"f", "0000000011111111000001001111111100001110111111111111111111111111111111111111110011111111110000001111111110000000111100011000000011100001100000000100000110000000010000011000000000000001100000000000000110000000000000011000000000000001000000000100000000000000"},
{"n", "0000000000000011000000001111111100001111111111111111111111111100111111110000000011111110000000001111111100000000011111111110000000011111111110000000001111111111000000001111111100000000001111110000000011111111000011111111111111111111111111001111111100000000"},
{"5", "0000000000000011000000000000001111011111000000111111011110000011111000110000001111100011100001111110001111001111111000011111111111100001111111101110000011111000111000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"l", "0000001111111000000111111111100011111111111110001111111000011000111000000001101000000000000110100000000000011100000000000001110000000000000110000000000000011000000000000000000100000000000000010000000000000000000000000000000100000000000000000000000000000000"},
{"t", "1100000000000000110000000000000011000000000000001100000000010000110000111111100011011111111110001111111111111000111111111111000011111111111000001111110000000000111000000000000011000000000000001100000000000000110000000000000011000000000000001100000000000000"},
{"i", "0000000000000011000000001111111111100111111111111111011111111100111101110000000011110000000000000000000000000000011000000000000001100000000000000000000000000000001100000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"q", "0011111111100000001111111111000001111111111100001111100001110000111000000111000011100000011000001110000011000001011101111111111101111111111111111111111111111110111111111000000011110000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"h", "0000000011111110111111111111111011111111111110110111111110011011111100111000001000000010000000000000011000000110000001111111111000000111111111100000011111111000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"d", "0000000111111111000000011111111100000011111111110000001111000111000000111000001100000111100000110000011100000011000001110000001100000111000001100000001110000111000000111111111100000111111111110000111111111111111111111111111111111111111111001111111110000000"},
{"c", "0000000001100000000001111111110000011111111111110011111111011111001111000000111101110000000001111111000000000011111000000000001111100000000000111110000000000011111000000000001111100000100001110100000000000000011100000000000000000000000000000000000000000000"},
{"s", "0000000000000111000111110000011100111111110001111111111111100111111100011110011101100001100111111111000111110110111100000001100000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"r", "0000000011111111000011111111111111111111111111111111111111110000111100011110000011100000111000001110000111100000111000011111111011111111111111111111111100011111111111110000011101111110000000000000000000000000000000000000000000000000000000000000000000000000"},
{"b", "0000000001111111000001111111111111111111111111111111111111111111111111111111111011111111110001111111100110000011000000010000001100000011000000110000001100000011000001110000011100000111000011110000011111111111000001111111111100000111111111100000001111111100"},
{"u", "0000000001111111000000111111111100000011111111110000001111000011000000000000001100000000000001100000000000001111000000000111111100000011111111110000001111111110101000111111110010000000000000000000000000000000000000000000000000000000000000000010000000000000"},
{"f", "1100000011111111110011111111111111111111111111111111111111000000111100111000000011100001100000001110000110000000111000011000000011100001100000001111000000000000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"6", "0000001111111110000011111111111100111111111111110111110111000011011110011000001111110011000000111110001110000111111000111100111111100011111111101110001111111100111100011111100001110000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"2", "0000000000000111000000000000011100000000000011110110000000011111011000000001111101100000001111111110000000111011111000000011101111100000011100111110000011100011111000011110001111100011110000111111111110000011111111111000001111111111000000110111111100000000"},
{"j", "0000000000000011000000000000001100000000000000110000000000011111000111111111111111111111111111001111111111100000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"i", "0000000111111110000011111111111011101111111111101110111100000000111000000000000100000000000000000000000000000001000000000000000100000000000000110000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000100"},
{"e", "0000111111111111001111111111111101111111111111111111111110000111111100011110011111110001111001111111001111001111111111111000111101111111100011110011111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"k", "0000000011111111000011111111111111111111111111111111111111111100111111111000000011110001110000000000000111100000000000111111000000000111111110000001111001111100000111000011111000011100000111110011100000001111001100000000011101110000000000011110000000000000"},
{"h", "0000000000000011000000000111111100000111111111110000111111111111111111111111111111111111111111001111111111000000111110011000000011110001100000000000001100000000000000110000001100000111111111110000011111111111000001111111111100000111111111110000001111111100"},
{"w", "1111111111111111111111111111111111111111111111110000000000011111000000000011111000000001111110000000011111100000000111111000000011111110000000001111111111100000111111111111111111111111111111110000111111111111000000000001111100000011111111000000111111110000"},
{"x", "1111111000000110111011100000111010001111101111000000111111111000000001111111100000000001111111100000001111111110000001110001111000001111000000000000111100000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"k", "0000000001111111000011111111111100011111111111111111111111111111111111111111110011111111110000001111111111000000111100000111100000000000011111000000000011111110000000001111111000000001111111110000001110011111000000110000011100000111000000110000011100000011"},
{"y", "0000000000000011111110000000001111111100000001111111111111001111111111111111111111111111111111101111111111111110000001111111100000000001111110000000000111100000000000111100000000001111100000000001111000000000011111100000000001111100000000001111000000000000"},
{"a", "0000000011111111000000001111111101110001111111111111000111000111111100111000011111110111100011111111111111111111111111111111111101111111111111110011110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"3", "0000000000000011000000000000001100011000110000110011100011000011001110001100001100110000110000110011000011000011001100001110011100110001111001110011111101111111001111110111111100111111001111110011111000111110001111100001100000000000000000000000000000000000"},
{"v", "1111111110000000111111111111111111111111111111111111111111111111111111111111111111111111111111110000000011111111000000000000111100000000000011110000000001111111000000011111111000000011111111000000111111110000011111111000000001111111100000001111111000000000"},
{"9", "0000000000000011000011111100001100011111111000110001111111100011011110001110001111100000111000111110000011100111111000001101111111110001111111101111111111111100001111111111000000001111100000000000000000000000000000000000000000000000000000000000000000000000"},
{"d", "0000000011111101000011111111111111111111111111111111111111111111111111111000011111110000000101111110000000000111111000000000011111100000000001111110000000001111111000000000111111110000000111111111100011111110011111111111110001111111110100000011111111100000"},
{"v", "1100000000000000111111100000000011111111111101100111111111111111000000111111111100000000111111110000000000001111000000001011111100000001111110000000011111100000000111111000000001111110000000001111001000000000011000000000000000000000000000000000000000000000"},
{"h", "0000000011111111000011111111111111111111111111111111111111111100111111111000000011110011100000000000001110000000000000111000000000000001100000000000000110000000000000011000001100000001111111110000111111111111111111111111111111111111111111001111111100000000"},
{"k", "0000000000000011000000001111111111111111111111111111111111111100111111111000000011110001111000000000001111110000000001111111110000001110111111100001100000001111001100000000011101110000000000011110000000000000110000000000000000000000000010000000000000000000"},
{"d", "0000000011111111000110111111111111111111111111110111111000000111101100000000011101110000000001111110000000000111110000000000011100000000000011110010000000111110010110001111110001111111111110000111111111110000000111111100000000000000000000000000000000000000"},
{"x", "0000000000000111111111000000111111111110001111111111111111111100011111111111110000001111111111110011111111111111011111110001111111111000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"q", "0000011111100000000111111111000000111111111110000111111111111000011110000001110001110000000111000110000000011100110000000001110011000000000111001100000000011110110000000001111011000000001111101110000001111111011110011111011101111111111000110111111111100011"},
{"v", "0000000000000000000000000000000011111100000000001111111111100000111111111111011000000111111100000000000011110000000001111100000000111111100000001111100000000000111000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000001"},
{"a", "0000001111100001000001111111000101100111111100011110110001100001111011000110000111101110110000011111111111110001111111111111000111111111111100010011000000000001000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"r", "0000000011111111000011111111111111111111111111111111111111100000111100011100000011100000110000001110000111100000111000011111111011111111111111111111111100011111111111110000011101111110000000000000000000000000000000000000000000000000000000000000000000000000"},
{"9", "0000010111000011000010101100001100010100111000110011010111100011011110001110001101111000111000111111000011100011111000001110011111100000111001111110000011001111111000001001111111110000111111101111111101111100111111111111110001111111111110000011111101100000"},
{"v", "1100000000000000111111100000000011111111110000001111111111111110011111111111111100001111111111110000000001111111000000000000111100000000000011110000001000111111000000111111110000000111111100000000011111000000000111110000000001111110000000001111100000000000"},
{"f", "0000011110000011000001111111111100101111111111110111111111111110011111111100000011110111000000001110011100010000111000110100000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"p", "0000000011111111000111111111111111111111111111111111111111000000111100011100000011100001110000001110000111000000111000111000000011111111100000001111111100000000011111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"c", "0000001111111100000011111111111000011111111111110011111110111111001111000000111101111000000001110111000000000011111100000000001111100000000000111110000000000011111000000000001111100000000000111110000000000011111000000000011111100000000000000111000000000000"},
{"m", "0000000000000011000000001111111111111111111111001111111110000000111110000000000011111111111100001111111111111111000000111111111100000000100011110000000001111111000000011111110000000111100000100001111000000011011111001111111111111111111111111111111111111100"},
{"f", "0110110000011000000011111111100000111111111110000111111111100000011111100000000011101100000000001100110000000000110011000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},
{"p", "0000111111111111111111111111111111111111111011101111100011110000001100000111000001100000011100000110000001110000111000001111100011111111111110001111111111100000011111111000001000111111000000000000000000000000000000000000000000000000000000000000000001100000"},
{"s", "0000111000000111001111100000001100111111000000110111111100000011011111111000001101111111110000111111011111000011111001111100001111100011111000111110001111100111111000111111111111100011111111111110000011111111111000001111111011100000011111100111000001111000"},
{"c", "0000111110000000001111111100000001111111111000000111000111100000111000001110000011100000111000001110000011100000111000001100000011100000000000000110000000000000000000000000000000000000000000000000000000000000000000000001000000000000001000000000000000110000"},
{"n", "0000000011111111000011111111111111111111111110011111111000000010111111110000011001111111111011000001111111111100000000111111111100000000001111110000000001111111000011111111111111111111111111001111111110000000101000000000000000000000000000000000000000000000"},
{"i", "0000001111110000000111111111000011011111111100001111111000000000111000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"n", "0000001111111111011111111111111101111111111111111111111111111111111111111111110011111111000000001111111000000000000011000000000000011000000000000011100000000011001110000000011101111111111111110111111111111111011111111111111100111111111111110011111111111100"},
{"v", "1111111000000000111111111000000011111111110000001111111111000000111111111110000011111111111000000000011111100000000000011110000000000001111000000000001111000000000011111000000000001111100000000011111000000000011111000000000011111000000000001111000000000000"},
{"t", "1111000000000000111100000000000011110000000000001111000111111111111111111111111111111111111111111111111111111000111111100000000011100000000000001110000000000000111000000000000011100000000000001110000000000000010000000000000000000000000000000000000000000111"},
{"a", "0000000000011111000000000111111000000010111110000000111111000000001111110000000011111100000100001111100000111000111111000011100011111111111111101111111111111111000001111111111100000000011111110000000000000011000000000000000000000000000000000000000000000000"},
{"4", "1000000001111000100000000111100010000000111110001000000010111000100000011011100000000011001110000000001000111000000001100011100000001100001110110000100001111111000110000111111100110111111111110011111111111111001111111111111000111111111111000011111110111000"},
{"b", "0000000000000011000000001111111111111111111111111111111111111111111111111000001111100001100000111110001111000111111011111111111111111110011111111111110000111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"p", "0000000011111111000011111111111111111111111111111111111111100000111100011100000011100000110000001110000111000000111000111100000011111111100000001111111110000000011111100000000000000010000000000000000000000000000000000000000000000000000000000000100000000000"},
{"d", "0000000011110110000011011111111010001011011111101000111100100110110000000000011011010000000001000011000000001110111000000000111011100000000111000110000000110000001010001111100001110111111010000011111111010000001110110000000000000000000000000000000000000000"},
{"t", "0001110011111111000111011111111101111111111111110111111111111111011111111111111101111111111111110111111111111111111111111111111111111111111111111111111100000011111111100000001111111110000000111101110000000011110111000000001100011100000000000001110000000000"},
{"l", "0000000000000011000000000111111100001111111111110000111111111111111111111111111111111111111111111111111111000011111100000000001111100000000000110110000000000011000000000000001100000000000000110000000000000011000000000000001100000000010000110000000001000011"},
{"a", "0000000111111110000000011111111101110001111111111111001110001110111100111100111011110011110111001111111111111111111111111111111101111111111111110011100000000000000000000110000000000000011000000000000000000000000000000000000000000000000000000000000000001110"},
{"s", "0000111000000011001111110000011101111111100001111111011111000111111001111100011111100001111001111110000111111111111000001111111101100000011111000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"i", "0000000011111111000000001111111100000000111111110000011111111111000001111111111100000111111111111110011111111111111001111111111111100111111111111110011111111111111001111111110011100111111111001110011111111100111001110000000011100111000000001110011100000000"},
{"v", "1100000000000000111111100000000011111111110111100111111111111111000000111111111100000000011111110000000000001111000000000011111100000001111110000000011111100000000111111000000001111110000000001111000000000000010000000000000000000000000000000000000000000000"},
{"c", "0000111111111111001111111111111101111111111111111111110000000111111100000000011111110000000001111111000000000111111110000000001101111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"6", "0000001111111110000011111111111100111111111111110111110111000111011110011000011111110011000001111110001110000111111000111100111111100011111111101110001111111100111100011111110001110000000000000000000000000000000000000000000000000000000001100000000000000000"},
{"x", "0000000000000011000000000000111111100000000111111111100000011110111111000011110011111111111110001111111111111000001111111111100000000111111111100000011111111111000011111111111100011110001111110011110000011111011111000000011111110000000000001110000000000000"},
{"x", "0000000000110000000000000111000011110000111100001111111111000000111111111100000001111111111000000011111111110000011110011111010011110000011100001100000000001000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"y", "0111110000000011011111111110011101111111111111110000011111111110000000001111100000000001111100000000011111000000000111110000000011111100000000001111000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"e", "0000000111111100000111111111110011111111111111001111111100111100111001110001110011000111000111011100011100011100110001110001110011000110000111011100000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"2", "0000000000000111000000000000111110000000000111111011000000111111101100000011111110110000001111110011000000111011001100000011001100110000011100110011000001100011001100011110001100110001110000110011111111000011001111111000001100111111000000110011111100000000"},
{"t", "0000000000000000001101001000000001111111110000001111111111000000111111111100000011111000110000000011000000000000001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"s", "0000000011000000011110001100000011111100110000001111110011000000110011101100000011001111100000001100011110000000110000110000000001000000000000010000000000000001000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000011"},
{"i", "0000001111110000000111111111000011011111111100001101111111100000110111000000000011000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000000100000000000000000000000000000001000000000000000100000000000000010000000000000001"},
{"u", "0000011111111111111111111111111111111111111111111111111111111111111111111111111111111100000011111111100000001111000000000000111100000000000111100000000000011111000000000011111100000111111111111111111111111111111111111111111111111111111111111111111111111000"},
{"q", "0000011111000000001111111111000001111111111100000111100011110000111100000111000011100000011100001110000001100001011100001111111100111111111111110111111111111111111111111100000011110000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"y", "1111110000000011111111111110011111111111111111110000111111111100000000011111110000000001111000000000011110000000001111100000000011111000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},
{"p", "0000111111111111111111111111111111111111111111101111100011100000001100000111000001100000011100000110000001110000111000001111000011111111111100001111111111100000011111111000000000111111000000000000000000000000000000000000000000000000000000000000000000000001"},
{"p", "0000111111111111111111111111111111111111111111111111111111111110111111111100000011111000111000000011000001110000011100000111000001110000011100000110000001110000111000001111000011100000111100001111111111110000111111111110000011111111110000000111111110000000"},
{"p", "0000000001100000000001111110000010111111111000001111111110000000111111100000000011000110000000001100011000000000110011100000000011111100000000001111110000000000111111000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"v", "1100000000000000111110000000000011111111101000001111111111111000000011111111100000000001111110000000000001111000000000011111000000000111110000000000111100000000001111100000000001111100000000001111000000000000010000000000000000000000000000000000000000000001"},
{"p", "1100111111111111111111111111111111111111111111101111100011100000111100000111000011100000011110001110000001111000111000001111100011111111111100001111111111100000111111111000000000111111000000000000000000000000000000000000000000000000000000000000000000000000"},
{"6", "0000011111111110000011111111111100011111111111110001111111111111001111111000011101111100100001110111110110000011111110110000001111110011100000111110001110000111111000111100111111100011111111111110001111111110111000111111111011100001111111001111000011111000"},
{"t", "0001110000000000000111111111111111111111111111111111111111111111111111100000001111011100000000110001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"4", "0000001110000000000000111000000000000101100000000000100110000000000110011000000000110001110110000110001111111000111111111111100011111111111000001111111111000000111000011000000000000000000000010000000000000000000000000000011000000000000001110000000000000111"},
{"j", "0000000000000011000000000001111100001011111111111111111111111110111111111111000011111110000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000"},
{"e", "0000000011111111000011111111111100011111111111111111111111111111111111111111111111111111101110111111111111010011111100011100001111100001110000111110000111000011111000011000001111100001100000111110000110000011111000011000001111100001000000111110000000000000"},
{"6", "0000001110000000000111111110000000111101111000000111110001100000011101000011000011101100011100001100110001110000000011001110000011001011111000001100101111000000111001011000000001100000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"h", "0000000001111111000011111111111111111111111111111111111111000000111110011000000000000111000000000000011100000011000001111111111100000111111111110000011111111100000000011000000000000000000000000000000000000000000000000000000000000100000000000000010000000000"},
{"c", "0000111111110000000111111111110000111111111111000011100000111100011110000001110001100000000011001110000000001100110000000000110011000000000011001100000000001100110000000000110011000000000111001110000000000000011000000000000000000000000000000000000000000000"},
{"2", "0000000000000111000000000000011100000000000011110110000000011111011000000001111101100000001111111110000000111011111000000011101111100000011100111110000011100011111000011110001111100011110000111111111110000011111111111000001111111111000000110111111100000000"},
{"b", "0000000000000011000000001111111111111111111111111111111111111111111111111000001111110001100000111110001111000111111111111111111111111110011111111111110000111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001"},
{"r", "0000011111111111000001111111111111111111111111111111111111111111111111111111111111111111111111001111111111111000111111110000000011111111000000000001100000000000001110000000000001111000000000001111100000000000111100000000000011110000000000001111000000000000"},
{"u", "1000000010111110100001111111111000000111111111100000011110000110000000000000011000000000000000000000000000000110000000001111111000000111111111000000011111111000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"d", "0000000011111111000011111111111111111111111111111111111111111111111111110000011111110000000001111110000000000111111000000000011111100000000001111110000000001111111000000000111111110000000111111111100011111100011111111111100001111111111100000011111111100000"},
{"l", "0000000000000011000000001111111111111111111111111111111111111111111111110000001111110000000000110000000000000111000000000000011100000000000001110000000000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"b", "0000000001111111000011111111111111111111111111111111111111000111111110011000001100000011000000110000001100000011000001110000011100000111111111110000011111111110000000111111110000000001111110000000000000000000000000000000000000000000000000000000000000000000"},
{"q", "0000111111110000000111111111000000111111111110000111100000111100011100000001110001100000000111001110000000011100111000000001110011100000000111101100000000111110111100000111101101111001111100110111111111100011001111111100001100001110000000000000000000000000"},
{"h", "0000000001111111000001111111111100001111111111111111111111111111111111111111110011111111110000001111111111000000111100011100000000000011000000000000001100000001000000110000000100000111111110010000011111111001000001111111110100000011111101010000001111101000"},
{"u", "0000000011111100000011111111111111111111111111111111111110000111111100000000001100000000000000110000000000000011000000000000001100000000000001110000000001111110000011111111110011111111111110001111111100000000101000000000000000000000000000000000000000000000"},
{"s", "0000000000000011000000011110001100000011111100110000001111111011000000111011101110000011001111111000001100011111000000110000111000000001000001000000000000000000000000000000000000010000000000000001000000000000000100000000000000000000000000000000000000000000"},
{"d", "0000000111111110000000111111111100000011111111110000011110000111000001110000011100000111000001110000011100001100000000111001111100001111111111111111111111111111111111111111110011111111000000001111000000000000000000000000000000000000000000000000000000000000"},
{"r", "0001100011111111000011111111111111111111111111111111111111111111111111111111110011111111111101001111000111001100111000011100000111100001110000011110000111100001111000111111100011100011111111111111111101111111111111110111111111111111000111111111111000001111"},
{"q", "0000000110000000000011111111000000011111111110000011111111111000011110000001110001110000000111001110000000011100110000000001110011000000000111101100000000111110111000000111111101111001111100110111111111100011001111111100001100011110000000000000000000000000"},
{"q", "0000111111100000000111111111000000111111111100000111100011111000011100000011100001100000000111001100000000011100110000000001110011000000001111001100000000111110111000000111111001111011111001100111111111100111001111111000001100011110000000110000000000010000"},
{"5", "0000000000000011000011000000011111011111000001111111011100000111111000110000011111100011100011111110001111001111111000011111111111100001111111101110000011111000111000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"s", "0000000000000111000000000000011100011111000001110011111110000111011111111000011111111111110001111111111111100111111111111110011111111111111001111111100111110111111110011111011111111001111111111111100111111111111110001111111111111000011111111111100001111111"},
{"v", "1111111110000000111111111111111111111111111111110000000011111111000000000000111100000000011111110000001111111110000011111111000011111110000000001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"n", "0000011111111111111111111111111111111111111111111111111000000111000111000000011101110000000001110111000000000111111111111111111111111111111111110111111111111110000110000000000000000000000000000000000000000000000000000000000000000000000001100000000111100000"},
{"g", "0000011111111100000111111111110000011111111111110011111110111111001111000000111100111000000001110011000000000111011100000000011101100000000001110110000000000111011000000000011101100000111111110110000011111110111000001111111011100000111111000111000000000000"},
{"5", "0000000000000111000000000000011100011111000001110001111100000111111111110000011111111011100001111110011100000111111001111000011111100111100001111110001111001111111000111111111111100011111111101110000111111100111000011111110011100000111110001110000000000000"},
{"r", "0000000000000111000000100000011100000111111111111111111111111111111111111111111111111111111111111111111111111100111111111111100011111000000000001011100000000000000110000000000000111000000000000111100000000000111100000000000011110000000000001111000000000000"},
{"y", "1100000000000000111100000000000011111100000000001111111110000011011111111111111100001111111111110000001111111100000000111100000000000111000000000001111000000000001110000000000011111000000000001101000000000000000000000000000000000000000000000000000000000000"},
{"m", "0000000011111111000111111111111111111111101111001111100000000000111111111110000011111111111111110111111111111111000000111111111100000000000011110000000001111100000000110111000000000111100000000001110110000111111111011111111111111111111111111111111111101100"},
{"9", "1111011110001011000111111100001100111111111000110011111111100011011111111110001101111001111000111111000011100011111000001110011111100000111001111110000011001111111000001001111111110000111111101111111111111100111111111111110001111111111110000011111111100000"},
{"p", "0000000000000011000000001111111111111111111111111111111111111100111111111100000011100000110000001110000011000000111000011100000011111111100000001111111110000000011111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"p", "0000000011111111000011111111111100011111111111111111111111111111111111111111110011111111111000001111111111000000111100001100000011100000110000001110000011000000111000011100000011100001110000001111111110000000111111111000000011111111100000001111111100000000"},
{"t", "1110000000000000111000000000000011100000000000011110000001111111111011111111111111111111111111111111111111111100111111110000000011100000000000001110000000000000111000000000000011100000000000001110000000000000110000000000000000000000000000000000000000000000"},
{"x", "0000000000000111111100000000011111110000000011111111111000011111111111111111111011111111111111001111111111111000011111111111110001111111111111100000111111111111000111111111111100111111111111110111111001111111111111000000011111111000000000111111000000000000"},
{"G", "0000000001110000000001111111110000011111111111110011111110111111001111000000111101110000000001111111000000000011111000000000001111100000000000111110000000000011111000001111111111100000111111111110000001111100011100000000000011000000000000000110000000000000"},
{"3", "0011000000000110001100000000011101110011100001111110001110000111111000111000011111100011110011111110111111001110111111101111111011111110011111100111110000111000000000110000000000000011000000000000000110000000000000001000000000000000110000000000000000000000"},
{"P", "0000001111111000000111111111100011111111111110001111111100000000111000110000000011000011000000001100001100000000111001110000000011111110000000001111111000000000011110000000000000000000000000000000000000000000000000000000000000000000000000010000000000000001"},
{"y", "1111000000011000111111110011100011111111001110001111111111111000111111111111000000011111111000000000111111100000000000111100000000000111100000000000111100000000000111100000000000111100000000000111100000000000111100000000000011100000000000001100000000000000"},
{"d", "0000000000111110000000001111111100000011111111110000001111000111000001111000001100000111000000110000011100000010000000111000011100000001111111110000111111111111111111111111111011111111100011001111000000000000000000000000000000000000000000000000000000000011"},
{"a", "0000000000011111000000000111111000000011111110000000111111111000001111110011100001111100001110001111100000111000111111000011100011111111111111101111111111111111000011111111111100000000011111110000000000000011000000000000000000000000000000000000000000000000"},
{"x", "0000000000001111111100000001111111111110001111111111111111111100011111111111110000001111111111110011111111111111011111000001111111111000000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"p", "0000000011111111000011111111111100011111111111111111111111111111111111111111110011111111111000001111111111000000111100001100000011100000110000001110000011000000111000011100000011100001110000001111111110000000111111111000000011111111100000001111111100000000"},
{"n", "0000000000000111000001111111111111111111111111111111111111111000111111100000000000111000000000000111000000000011111111111111111111111111111111111111111111111111001111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"6", "0000111111110000000111111111000000111111111110000111101100011100011101100001110011101110000110001100111000111000110011110111000011001111111101001100011111100000111000111100000001100000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"m", "0000001111111001000111111111000111111111110000011111000000000000111111110000000011111111111100001111111111110000000001111111000100000000111100000000001111100000000001111000000000011110000000000011100000111000111110111111100011111111111110001111111111100000"},
{"v", "1110011111100000001011111111111000001111111111100000111111111111000011111111111100000111111111110000000000111111000000000000111100000000000011110000000000011111000000000111110000000000011111000000000111110000000001111110000000000111110000000000111110000000"},
{"q", "0000000110000000000011111111000000011111111110000011111111111000011110000001110001110000000111001110000000011100110000000001110011000000000111101100000000111110111000000111111101111001111100110111111111100011001111111100001100011111000000000000000000000000"},
{"h", "0000000001111111000011111111111101111111111111110111111111000000011110011100000000000001110000000000000111000000000000111100000000000011110000110000001111111111000011111111111111111111111111111111111111111100111110110000000000000000000000000000000000000000"},
{"3", "0000000000000011000000011000001101100001100000111110000110000011111000011000001111100001110001111110011111100111111111100111111111111110111111101111110000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"m", "0000011110011111111111111111111111111111111111111111111111111000111111101110000000011000000000000111000000000000111100000000011111110111111111111111111111111111111111111111111111111111111110000111111000000000000110000000000001110000000000000111000000000111"},
{"6", "0000000000000111000000000000011100111111100001111111111111100111111111111110011111110001111101111111000111111111111100000111111001110000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"6", "0001111110000000001111111100000001111110110000000111010000000000011010000110000011001000011000001100100001100000110011001100000010001111110000001100111110000000110001110000000001000000000000000000000000000000000000000000100000000000000110000000000000011000"},
{"j", "0000000000000011000000000001111100011011111111111111111111111110111111111111000011111110000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"t", "0000111011111111000011101111111100011111111111110001111111111111100111111111111111111111111111111111111111111111011111111111111101111111111111110111111100000011011111110000001101101110000000110110111000000011011011100000001100001110000000000000111000000000"},
{"6", "0000000011111000000000111111111000001111111111110001111111111111001111111111111100111111110001110111110110000011011110010000001111110011000000111110001100000111111000111000111111100011111111111110001111111111111000111111111011100001111111001111000011111000"},
{"u", "0000000011111000000111111111111011111111111111111111111100001111111100000000011100000000000001110000000000000111000000000000011100000000000011100000000011111100000011111111110011111111111110001111111100000000101000000000110000000000000000000000000000000110"},
{"s", "0111100000111000011111001011100001111100101110000111111000111100111111110011100011001111001110001100011100110000110001111111001011000111111100101100001111110010110000111110000011100011110000000110000011000001000000000000000000000000000000000000000000000001"},
{"v", "1100000000000000111111100000000011111111110000001111111111111110011111111111111100000111111111110000000001111111000000000000111100000000000011110000000000111111000000001111110000000011111100000000011111000000000111110000000001111110000000001111100000000000"},
{"w", "0011111111111111001111111111111110111111111111110000000000001111000000000001111100000000111111000000000111110000000001111100000000111110000000000011111111111000001111111111111100111111111111110000111111111111000000000000111100000000111111100000001111111000"},
{"t", "1011111000000000111100000000000001000000000000011110000001101111111001111111101111000111111111011110011111111000111000110000000001000000000000001110000000000000111000000000000011100000000000001110000000000000110000000000000000000000000000000000000000000000"},
{"6", "0000011111111110000001111111111100001111111111110001111111111111000111111110011100111100110000110011100110000011011110111000001101110011100000110111001110000111011100111100111101110011111111110111001111111110011100011111111001110001111111001111000011111000"},
{"w", "1111111111111111111111111111111111111111111111111111111111111111000000000000111100000000001111110000000011111100000000111110000000001111100000000011111100000000111111000000000011111111111100001111111111111111111111111111111100001111111111110000000000001111"},
{"9", "0000000000000011000001111000001100011111110000110011111111100011011111111110001101111111111000110111100011100011111100001110001111100000111001111110000011001111111000001101111111100000110111101111000111111110111111111111110001111111111110000111111111100000"},
{"y", "1100000000000000111101000000000011101011100000111111111111111111001101111111111100000011111010110000001111010100000001111100000000011111000000000011110000000000111100000000000011100000000000001100000000000000000000000000000000000000000000000000000000000000"},
{"q", "0001111111100000001111111111000001111111111100001111000001110000111000000111100011100000011000001110000111000111011100111111111101111111111111111111111111111111111111111000000011111000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"b", "0000000011111111000011111111111100001111111111111111111111111111111111111111111111111111111111111111111110000011111100111000001111110001100000111110000110000011111000111100011111100111111001111111111001111111111111100111111111111110011111111111111001111110"},
{"9", "0000000000000011000011111100001100111111111000110111111111100011011110001110001111100000111001111110000011100111111000001101111111110001111111101111111111111100001111111111000000001111110000000000000000000000000000010000000000000000000000000000000110000000"},
{"b", "0000011111100000000111111110000011111111111000001111110011000000111010000110000000001100011000000000110011100000000110001110000000011111111000000001111111000000000011111000000000000111000000000000000000000000000000000000000000000000000000000000000000000000"},
{"p", "0000011111100000001111111110000011111111110000001111111000000000111001100000000011000110000000001100011000000000110011000000000011111100000000001111110000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"b", "0000000011111111000011111111111100001111111111111111111111111111111111111111111111111111111111111111111110000011111100111000001111110001100000111110000110000011111000111100011111100111111001111111111001111111111111100111111111111110011111111111111001111110"},
{"e", "0000000000000011000000000111111100001111111111110000111111111111111111111111111111111111111111111111111111000011111100111000001111100001100000111110000110000011111000011000001111100001100000111110000110000011111000011000001111100001000000111110000000000000"},
{"a", "0000001111000000000011111110000101001111111000010100111111100000110111111110000011011100110000001101110011000011110111001000000011111111111000001111111111100000111111111110001011111111111001100111111111100110001000000000001000000000000000000000000000000100"},
{"m", "0000000000011010000011111111100111111111100100001111000000000000110110010100010001001010011110001010001111110110000000011111111000000000000111100000000010111100000000001101000000010000000000000001100000000110110011001111111100111111111111111101111011111001"},
{"x", "1010000000000011000010100000011100001010000001110000011110001111000011111111111000001111111111100000111111111100000001111111111000000111111111100000000111101111000000111011111100000011101111110000011110001111000011110000001100001111000000110000111000000000"},
{"c", "0000000001100000000001111111110000111111111111110011111110111111001111000000111101111000000001111111100000000011111000000000001111100000000000111110000000000011111000000000001111100000000001111110000000000000011100001000000000000000000000000000000000000000"},
{"c", "0000001111111100000011111111111000111110111111110011110000001111011100000000111101110000000000111111000000000011111000000000001111100000000000111110000000000011111000000000001111100000000011111110000000001100011100000000000000000000000000000000000000000000"},
{"m", "0000000011111111000011111111101111111111111111001111100000000000111111111110000011111111111111111111111111111111000000011110111000000000000111110000000001111110000000011111000000000111100000000001111000000011111111001111111111111111111111111111111111111100"},
{"g", "1111001111111100000000101111111000001001111111110011110010101111001111000000111101111000000001110111000000000011111100000000001111100000000000111110000000000011111000000000001111100000111111111110000011111110111000001111110111100000111111000111000000000000"},
{"6", "0000000011111000000000111111111000001111111111110001111111111111001111111111111100111111110001110111110110000011011110010000001111110011000000111110001100000111111000111000111111100011111111111110001111111111111000111111111111100001111111101111000011111000"},
{"t", "1110000000000000111000000000000011100000000000101110000011111111111111111111111111111111011111111011111111111000111101110000000011100000000000001110000000000000111000001100000011100000110000001110000000000000010000000000000000000000000000000000000000000000"},
{"t", "1110000000000000111000000000000011100000000001011110000011111111111011111111111111111111111111111111111111111100111111110000000011100000000000101110000000000110111000000000011011100000000001101110000000000000010000000000011000000000000001100000000000000000"},
{"n", "0000000011111111000011111111111111111111111111001111111110000000111111100000000011111111000000000111111111100000001111111111100000011111111111000000001111111111000000000111111100000000001111110000000011111111000011111111111111111111111111001111111100000000"},
{"g", "0000011111100011001111111111001101111111111100111111100001110011111100000111001111100000011001110110000011111111001111111111111111111111111111101111111111111000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"g", "0000011101110011000011110011101100011110001110110001110000011011000111000001001100011100000100110000110000111111000011111111111111011111110111000001111110110000000111000000000000000000000000000000000000000000000000000000001100000000000000110000000000000011"},
{"j", "0000000000000011000000000000001100000000000011110000000000011111000000010101111100000001111111110000000111111111001111111111111000111111111111101111111111111110111111111111111011111111111111101111111111111110111111111111110011111110000000001111111000000000"},
{"w", "1110000000000000111111111111111011111111111111111111111111111111111111111111111100000000000111110000000011111111000001111111100000011111111000001111111000000000111111111110000011111111111111111111111111111111011111111111111100000000000111110000000011111111"},
{"g", "0000011111100011000111111111001100111111111100110111100000110011011100000011001101110000011001110111000111111111001111111111111101111111111111100111111111111000111110000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000"},
{"c", "0000000111111111000000111111111100000111111111110000011111111111000001111000011100001111000000110000111000000011000011100000001100001110000000110000111000000011000011100000001110001111000001000000011100000100000001110000010010000000000000000000000000000000"},
{"y", "0011100000000000011111100000000001111111100000110111111111111111000111111111111100000011111111110000000111111100000000111110000010000111100000001000111000000000101111000000000001111000000000000111000000000000000000000000000000000000000000000000000000000000"},
{"2", "0000000000000111000000000000011100000000000011110110000000011111011000000001111101100000001111111110000000111011111000000011101111100000011100111110000011100011111000011110001111100011110000111111111110000011111111111000001111111111000000110111111100000000"},
{"m", "0000000001110000000111111111000011111111111100001111111111000000111110000000000100100000000000011110000000110000111111111111001111111111111100001111111111110100011110000000000000110000000011000110000000001100011000000111100011111111111110001111111111111000"},
{"3", "0000001100001111000000000000001101100001100000111110000110000011111000011000001111100001110011111110011111101110111111100111111101111110011111100111110000111100000000000000110000000000000011000000000000001100000000000000110000000000000011000000000000001100"},
{"5", "0000000000011111000000000001111111011111000000111111011100000011111000110000001111100011101101111110001110111111111000011111111111100001111111101110000011111000111000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"k", "0000000001111111000001111111111100001111111111111111111111111111111111111011110011111111100000001111111110000000111100000011100000000000011111000000000011111110000000001111111000000001110111110000001110011111000000110000011100000111000000110000011100000011"},
{"e", "0000000000000011000000001111111111111111111111111111111111111111111111111000001111100001100000111110000110000011111000011000001111100001100000111110000100000011111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"3", "0000000000000011000000000000001101100011100000111110000110000111111000011000001111100001110011111110011111100111111111100111111001111111011111110111110001111000000000000110000000000000001000000000000000000000000000000000000000000000000000000000000000000000"},
{"6", "0000111111100000000111111111000000111111111100000111101100111000011101100001100001100110000110001110011000111000111001110111000011100111111100001110011111100000111100111100000010100000000000000000000000000000000000000000000000000000000000000000000000000001"},
{"p", "0001111111111111111111111111111111111111111111111111111111111110111111111100000011111000111000000011000001110000011000000111000001100000011100000110000001110000111000001111000011100000111100001111111111110000111111111110000011111111110000000111111110000000"},
{"q", "0000011111100000001111111111000001111111111100000111100011111000111100000111100011100000011100001110000001110001011100001111111100111111111111110111111111111111111111111100000011110000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"g", "0000001111111100000011111111111100111111111111110011110000111111011110000000011101110011000001111111001000000011111000000000001111100000000000111110000001111111111000001111111111100000111111111111000001111100011100000000000000000000000000000000000000000000"},
{"e", "0000000111111111000011111111111111111111111111111111111111000011111101111000001111100011100000111110000110000011111000011000001111100001100000111110000000000000111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"h", "0000000011111111000011111111111111111111111111111111111111111100111111111000000011110001100000000000000110000000000000011000000000000001100000000000000110000000000000011000001100000001111111110000111111111111111111111111111111111111111111001111111100000000"},
{"3", "0000000000100000000000000010000001000100001100000100110000110000110011000011000011001110011100001100111001100000111111111110000011111011111000000111000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000"},
{"l", "0000001111110000001111111111000011111111111100001111110001110000111000000011000000000000001100000000000000110000000000000011000000000000001100000000000000110000000000000000000000000000000000000000000000000000000000000000010000000000000011000000000000001100"},
{"j", "0000000000000011000000000001111100001011111111111111111111111110111111111111000011111110000000001110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"d", "0000000011111111000000011111111100000011111111110000001111000111000000111000001100000111100000110000011100000011000001110000001100000111000001100000001110000111000000011111111100000101111111110000111111111111111111111111111111111111111111001111111110000000"},
{"7", "0000000000011000110000000111100011000000011110001100000011110000110000111100000011000011100000001100011100000000110011000000000011111000000000001111000000000000111000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000001"},
{"p", "0000111111111111111111111111111111111111111111101111100011100000001100000111000001100000011100000110000001110000111000001111000011111111111100001111111111100000011111111000000000111111000000000000000000000000000000000000000000000000000000000000000000000000"},
{"2", "0000000000000111000000000000111101100000000111111110000000111011111000000011001111100000111000111110001111000011111111111000001101111111000000000111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"h", "0000000011111111000011111111111111111111111111111111111111111110111111111000000011110001100000000000000110000000000000011000000000000001100000000000000110000000000000011000001100000001111111110000111111111111111111111111111111111111111111001111111100000000"},
{"d", "0000000011111000000000011111110000000011111111100000011110011100000001110000111000000110000011000000011000001000000001110001110000000011111111100001111111111110111111111111100011111111000000001111000000000000000000000000000000000000000000000000000000000001"},
{"e", "0000000011111111000011111111111101111111111111110111111111000111011100011000011101100001100001110110000110000111011000011000011101100001100001110110000000000000111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"c", "0000111111111000000111111111100000111111111110000011100000111000001101100011100000110110001110000011011000110000001110000011000000111000000000000000000000000000100000000000000000100000000000000010000000000011001000000000001101100000000000110110000000000011"},
{"j", "0000001111111111000111111111111100011111111111111110111111111110111011111111000011101111111000001100111011000000110000001100000011000000010000000000000000000000000000000000000000000000010000000000000001100000000000000000000000000000000000000000000000100000"},
{"b", "0000000000000011000000000111111100000000111111110000111111111111111111111111111111111111111111111111111111111111111111111000001111110001100000111111000110000011111000111100001111100011110001111111111111111111111111100111111111111110011111111111111001111110"},
{"y", "1111000000000000111111000000000011111111100000111111111111111111001111111111111100000111111111110000001111101100000001111100000000011111000000000011110000010000111110000000001011110000000000001100000000000010000000000000000000000000000000000000000000000000"},
{"q", "0001111111100000001111111111000001111111111100001111100011110000111000001111000011100000111000001110000011000001011100011111111101111111111111111111111111111110111111111000000011110000000000000000000000000000001000000000000000000000000000000000000000000001"},
{"p", "0000111111111111011111111111111101111111111111110111111111111110011111111110000001111000011100000001100000110000011100000011000001110000001100000011000000110000111100000111000011110000111100001111111111110000111111111110000011111111111000000011111111000000"},
{"7", "0000000000000011111000000000111111100000000011111110000000011111111000000011111011100000011110001110000011111000111000011110000011100001110000001110001110000000111001110000000011101111000000001111111000000000111110000000000011110000000000001111000000000000"},
{"w", "0111111111111111011111111111111101111111111111110000000000011111000000000001111100000000111111000000001111100000000011111100000001111100000000000111111111110000111111111111111111111111111111110000011111111111000000000010111100000001111111000000011111111011"},
{"a", "1111000111000000110000111000000010001111000000000001111100000000011110010000000001110011000000001110000100000000111100110000000011111111100000001111111111100000000111111110000000000011111000000000000001000000000000000000000000000000000000000000000000000000"},
{"i", "0000000011111111000000001111111100000000111111110000011111111111000001111111111100000111111111111110011111111111111001111111111111100111111111111110011111111111111001111111110011100111111111001110011111111100111001111000000011100111000000001110011100000000"},
{"q", "0000011011000000001111000000000001111000000100000111100001110000111100000111000011100000011100001110000001100001011100001111111100111001111111110011111111111111010001111100000010000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{"k", "0000000011111111000011111111111111111111111111111111111110110000111100000111000000000000111111000000000111111110000000111011111100000111000111110000011100001111000001100000000000000000000000000000000000000100000000000000000000000000000000000000000000000010"},
{"s", "0000111000000111001111100000011100111110000001110111111100000111011111111000011101111111100001111111111111000111111001111100011111100011110001111110001111101110111000111111111011100011111111101110000111111110111000001111110011100000111111000111000001110000"},
{"v", "1100000000000000111111100000000011111111110000001111111111111110011111111111111100000111111111110000000001111111000000000000111100000000000011110000000000111101000000001111110000000011111100000000011111000000000111110000000001111110000000001111100000000000"},
{"d", "0000000000111110000000001111111100000011111111110000001111000111000001111000001100000111000000110000011100000010000000111000011100000001111111110000111111111111111111111111111011111111100000001111000000000000000100000000000000000000000000000000000000000000"},
{"m", "0000000011111111000011111111111111111111111111001111100000000000111111111110000011111111111111111111111111111111000000011110111100000000000111110000000001111100000000011111000000000111100000000001111000000011111111001111111111111111111111111111111111111100"},
{"u", "1100011110000000001111111100000011111111111000001111110011100000111000000110000000000000011000000000000001100000000000000100000000000000110000000000011111000000001111111000000011111111000000001111100000000000110000000000000000000000000000000000000000000000"},
{"d", "0000000000011111000000000011111100000011101111010000001111010001000000111100001100000111100000110000011100000011000001110000001100000111000001100000001100000111000000001100111100000111101011110000111110111111010111111111111111111111111111001111111110000000"},
}
/*
1. 读取验证码
2. 将验证码图片二值化
3. 将二值化后的图片进行近似等分切割(可能有更好的方法,对于精度不高要求不高的话等分即可)
4. 将切割后的图片进行识别(调用train()函数,手动标注验证码,生成指纹数组,也可以写入到一个文件中,然后读取)
5. 将识别后的结果进行拼接
*/
// 判断r四周是否有任意两个连通白块,如果没有,则认为是噪点
func imgConnect(ru, rd, rl, rr uint32) bool {
if (ru < 0x7788 && (rl < 0x7788 || rr < 0x7788)) || (rd < 0x7788 && (rl < 0x7788 || rr < 0x7788)) || (rl < 0x7788 && (ru < 0x7788 || rd < 0x7788)) || (rr < 0x7788 && (ru < 0x7788 || rd < 0x7788)) {
return true
}
return false
}
// 二值化
func imgBarbarization(img image.Image) image.Image {
binImg := image.NewGray16(img.Bounds())
draw.Draw(binImg, binImg.Bounds(), img, img.Bounds().Min, draw.Over)
rect := binImg.Bounds()
// 遍历点像素点
for x := 0; x < rect.Dx(); x++ {
for y := 0; y < rect.Dy(); y++ {
// 获取颜色
r, _, _, _ := binImg.At(x, y).RGBA()
ru, _, _, _ := img.At(x, y+1).RGBA()
rd, _, _, _ := img.At(x, y-1).RGBA()
rl, _, _, _ := img.At(x-1, y).RGBA()
rr, _, _, _ := img.At(x+1, y).RGBA()
if r < 0x7788 && imgConnect(ru, rd, rl, rr) {
binImg.Set(x, y, color.White)
} else {
binImg.Set(x, y, color.Black)
}
}
}
return binImg
}
// 删除图片无用外部轮廓
func imgCutSide(img image.Image) image.Image {
rect := img.Bounds()
// 开始x坐标
leftStartX := 0
for x := 0; x < rect.Dx(); x++ {
lxflag := false
for y := 0; y < rect.Dy(); y++ {
// 获取颜色
r, _, _, _ := img.At(x, y).RGBA()
if r == 0xFFFF {
lxflag = true
break
}
}
if lxflag {
leftStartX = x
break
}
}
// 开始y坐标
leftStartY := 0
for y := 0; y < rect.Dy(); y++ {
lyflag := false
for x := 0; x < rect.Dx(); x++ {
// 获取颜色
r, _, _, _ := img.At(x, y).RGBA()
if r == 0xFFFF {
lyflag = true
break
}
}
if lyflag {
leftStartY = y
break
}
}
// 结束x坐标
rightEndX := 0
for x := rect.Dx(); x > 0; x-- {
rxflag := false
for y := rect.Dy(); y > 0; y-- {
// 获取颜色
r, _, _, _ := img.At(x, y).RGBA()
if r == 0xFFFF {
rxflag = true
break
}
}
if rxflag {
rightEndX = x
break
}
}
// 结束y坐标
rightEndY := 0
for y := rect.Dy(); y > 0; y-- {
ryflag := false
for x := rect.Dy(); x > 0; x-- {
// 获取颜色
r, _, _, _ := img.At(x, y).RGBA()
if r == 0xFFFF {
ryflag = true
break
}
}
if ryflag {
rightEndY = y
break
}
}
// 创建新的图片
rectangle := image.Rectangle{
Min: image.Point{X: 0, Y: 0},
Max: image.Point{X: rightEndX - leftStartX, Y: rightEndY - leftStartY},
}
newSideImg := image.NewGray16(rectangle)
draw.Draw(newSideImg, newSideImg.Bounds(), img, image.Point{X: leftStartX, Y: leftStartY}, draw.Over)
return newSideImg
}
func cutImage(img image.Image) []image.Image {
rect := img.Bounds()
imgs := make([]image.Image, 0)
// 记录当前x的位置
nowCutStartX := 0
for x := 0; x <= rect.Dx(); x++ {
every := rect.Dx() / 4
if x%every == 0 && x != 0 {
// 创建新的图片
rectangle := image.Rectangle{
Min: image.Point{X: 0, Y: 0},
Max: image.Point{X: x + 3 - nowCutStartX, Y: rect.Dy()},
}
newImg := image.NewGray16(rectangle)
draw.Draw(newImg, newImg.Bounds(), img, image.Point{X: nowCutStartX, Y: 0}, draw.Over)
newResizeImg := imgCutSide(newImg)
newResizeImg = resize.Resize(16, 16, newResizeImg, resize.Lanczos3)
newResizeImg = imgCutSide(newImg)
newResizeImg = resize.Resize(16, 16, newResizeImg, resize.Lanczos3)
imgs = append(imgs, newResizeImg)
nowCutStartX = x + 3
}
}
return imgs
}
// 指纹验证
func imgSign(imgBinary string) string {
if imgBinary == "" {
return imgBinary
}
imgBinarySign := strings.Split(imgBinary, "")
// 相似度
maxSimilarity := 0
num := ""
for _, sign := range numSign {
tmpSimilarity := 0
signArr := strings.Split(sign[1], "")
for k, s := range imgBinarySign {
if s == signArr[k] {
tmpSimilarity++
}
}
if maxSimilarity < tmpSimilarity {
maxSimilarity = tmpSimilarity
num = sign[0]
}
}
return num
}
// 将切割后的字符图片转换为二进制, 与指纹库进行比对
func recognition(imgs []image.Image) (string, []string) {
signNum := make([]string, 0)
for _, img := range imgs {
tmpSignNum := make([]string, 0)
rect := img.Bounds()
for x := 0; x < rect.Dx(); x++ {
for y := 0; y < rect.Dy(); y++ {
// 获取颜色
r, _, _, _ := img.At(x, y).RGBA()
if r > 0x7788 {
tmpSignNum = append(tmpSignNum, "1")
} else {
tmpSignNum = append(tmpSignNum, "0")
}
}
}
signNum = append(signNum, strings.Join(tmpSignNum, ""))
}
res := make([]string, 0)
for _, v := range signNum {
res = append(res, imgSign(v))
}
return strings.Join(res, ""), signNum
}
func train() {
stringgen := ""
f, err := os.Create("train.txt")
if err != nil {
fmt.Println(err)
}
for {
resp, err := http.Get("https://ca.csu.edu.cn/authserver/getCaptcha.htl?" + strconv.FormatInt(time.Now().UnixNano()/1e6, 10))
if err != nil {
panic(fmt.Sprintf("打开图片失败:%+v", err))
}
fmt.Println(time.Now().UnixNano() / 1e6)
defer resp.Body.Close()
img, err := jpeg.Decode(resp.Body)
if err != nil {
panic(fmt.Sprintf("解析图片失败:%+v", err))
}
dts, err := os.Create("./view/01.原始图片.jpeg")
jpeg.Encode(dts, img, nil)
// 图片二值化
binImg := imgBarbarization(img)
dts1, err := os.Create("./view/02.二值化后的图片.jpeg")
jpeg.Encode(dts1, binImg, nil)
// 图片切割
imgCutSilce := cutImage(binImg)
// 输出切割后的四张图片
dts3, err := os.Create("./view/03.第一个字符.jpeg")
jpeg.Encode(dts3, imgCutSilce[0], nil)
dts4, err := os.Create("./view/04.第二个字符.jpeg")
jpeg.Encode(dts4, imgCutSilce[1], nil)
dts5, err := os.Create("./view/05.第三个字符.jpeg")
jpeg.Encode(dts5, imgCutSilce[2], nil)
dts6, err := os.Create("./view/06.第四个字符.jpeg")
jpeg.Encode(dts6, imgCutSilce[3], nil)
// 验证码识别
result, resu := recognition(imgCutSilce)
fmt.Println("程序识别结果: ", result)
x := ""
fmt.Print("请输入./view/01.原始图片正确结果: ")
n, _ := fmt.Scan(&x)
if n == 0 {
break
}
inputs := strings.Split(x, "")
stringgen = fmt.Sprintf("{\"%s\", \"%s\"},\n{\"%s\", \"%s\"},\n{\"%s\", \"%s\"},\n{\"%s\", \"%s\"},\n", inputs[0], resu[0], inputs[1], resu[1], inputs[2], resu[2], inputs[3], resu[3])
_, err = f.Write([]byte(stringgen))
if err != nil {
fmt.Println(err)
}
}
}
func main() {
train()
}