summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorshubing guo <guo.shubing@zte.com.cn>2018-08-10 13:59:50 +0800
committerDamjan Marion <dmarion@me.com>2018-08-11 22:32:19 +0000
commit060c3a7e5a2d23189a8c6348e767cd2018a58dd6 (patch)
treeefcacda6f0b47b923726f67b7a0296db236b8c15
parentdd8e7d0e512425ec05de652a3c71028561e0f40a (diff)
VPP-1381: Fix the incorrect if condition when delete session for static mapping
-- The session should not be deleted when either ip address or port doesn't same with static mapping. Change-Id: I09ab7379947654d2780a8c40c5340ce430541b12 Signed-off-by: shubing guo <guo.shubing@zte.com.cn>
-rwxr-xr-xsrc/plugins/nat/nat.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/plugins/nat/nat.c b/src/plugins/nat/nat.c
index 79d11136240..c30e2eacd6a 100755
--- a/src/plugins/nat/nat.c
+++ b/src/plugins/nat/nat.c
@@ -1180,7 +1180,7 @@ int snat_add_static_mapping(ip4_address_t l_addr, ip4_address_t e_addr,
if (!addr_only)
{
- if ((s->out2in.addr.as_u32 != e_addr.as_u32) &&
+ if ((s->out2in.addr.as_u32 != e_addr.as_u32) ||
(clib_net_to_host_u16 (s->out2in.port) != e_port))
continue;
}
@@ -1465,7 +1465,7 @@ int nat44_add_del_lb_static_mapping (ip4_address_t e_addr, u16 e_port,
if (!(is_lb_session (s)))
continue;
- if ((s->in2out.addr.as_u32 != local->addr.as_u32) &&
+ if ((s->in2out.addr.as_u32 != local->addr.as_u32) ||
(clib_net_to_host_u16 (s->in2out.port) != local->port))
continue;
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
$ANSIBLE_VAULT;1.1;AES256
39626435383866646264643632343836383132616162323536323732396265373539616464373932
6237636263373339366163363739613139383330626437310a343862363835633663633164393464
34653061656331363864323363663932306637613937383534343963316364636635313663343664
3539373536313461350a626264363866306630656464646439303338383535323863393537346262
61346533323162653766343763363934313937653237663437393133666463363962346331343836
33393533313737626636356466623566393232303037636266353565653130646434323338376136
32306537653134633062313732623830393166336135666263343933323138616436313632623533
38646539623837626132346631393964663062386631313236353563393131376130316666343562
35346632316461336564393264323632643232663136323334336336626339633365643565306436
35333365356637316631666661356431396635636431383032643566373666363936363462616337
62316234363963306338366638663064396365373264326635376134356333626130303834383534
63356363373035623031666330626463613563313066303365303430643262346561633633666466
63666661616139366431313832376665383638393835376261326465353938333963333264653236
35613664656363643438316232306630353361343030353963386666656166373061666236326664
63383033633733633361383061316232306566353062616163623563663032393734353963303361
34323330336561323734373430323435393731323931343335613935396330663533323137323234
39333132326364646336613362363365323331366430396535383138386261356534613832393863
61363133356435303964353637346436613633366336386465326336313935323538643636313331
39663832373337643865386164343764613764346331633261653039613136386636366431376565
36373431303631323730343831363837303665353461303130326430636161623431613730356134
66396632306139373732636165313834366339366363666566306461366266356338346566316363
38386564313665306239646436386635396664643333383736396131353535336334383765653961
31643833663361343036623634326662333935343332333066353732396132373561396631633265
37643733393433336364353630666136616235656638343032333632373366616634343130313536
64643834643236363731353664396636613266656263363664376539306539346639313838663738
36623634396638313861636438306136613433313062306537653738316563613631363566623134
62323161646464636131326661646535313436396534356335366564373165653662613536663561
32366666356339326264326539393239666234633663366261623933366636636161343233383932
34336638363864346436613164613161326363316431303963656233306663376332373731623437
66353636336462663730316161313236393264633633363965653433306639643938383933373062
30323331323735613139323963643335373335633265383235343835376363666132643431366665
32396465313434343534343433633432396131323635356265663939616436343137393561633734
36383961363964306431343939313837663166376133616365663939633161326338306561356666
34663938613865383739376534306333653135383431316464613432366566623362393065306635
64313737363065336234393463316138313864386163633966336662313366396431353632363365
62313036656434616136626331333139343235333930363166313833306438616364393065333963
36396137656634393066646330613365316562306164326133663365313938333337386137383864
61376333346336396537613933323261663536353161643431383636316235393035313861326230
31623566363138663866326231376561336534366435626134306463323032613630646361343165
38663662653334316139313866346163623461656335616232353636636431636339313239346661
33396133306132643732366232353166613263356165663866626465343936326461626336376462
34376431643730616461376261356633356166313131623837343839323935343531356263336230
62323236633339303031316165326362306535653064363862663330393034303964353437363565
61616565656164313664306664663932333261333162383832326666393366353730306531343639
64323530333466653534306130636161383463376632616232353361656661353831643966633639
66336631396164663864653933623662343061316539306634393334653630393462376636346165
33646635646633353263333838343534373838333836656536373639646636303033626537313464
38323462396231653233333463313263313233353932356633366630623138376432383566363538
38346336343765353830656139333564633533323538616166333865323439343361386135343130
63343363303332313834313764356637643230386536613338623937393436613732383833366235
64343862663234633232656333666438633464663463663737363431626361643532396664326661
33383261643231313836326162373532626234383362653162656435366535643863316235656536
62306334316566623732303834313864663636636334663130653230383365623031316164373161
64326638636339303065386435303332333230666634323163393134613032326335313961306236
37343666376235653637636136636133373966636136626137356331336234646366316364623134
37633832386237346266376533663839343938623664653030636265303465643835666234383763
36373439346566623739343361386562623962633539383134663237656662653939313938663938
30653438306666613731326462633334313730363763666538666538356638633261353363393930
37626261316565633162366636343539626238323861656565393162333662353563393139626261
64663436336233636438326633303164333939633435373765333731666135366637653532396238
61346538626662626463303965363061646261343232356639336366333065623765646335353638
66616430343562366262333235323234383334343538633037643661623661306330343839333034
62626533353238323064633862613736663666303666373262633533643539643962383333346264
38346134363236633031393138313538666533643561373766613836636461393166306138333231
63613735313636376538346230303662646633346363353535333232663033373036336564623766
62316464363930366665663530626564346130316231313033323130323531396366303030616363
36356431653435346561656132616632373834393833633865323762343037656439373331623664
39633635306334646334386635356362346431366430326364303931336562333735613033346437
37613636656261383034663633666138653537326364326430666632323633386636376635343232
37643965663564376337616432623336326238626530333736313530386537383633653437356436
66613230366666373734396538363362626531666331656362356364393230343132363033333061
39396237316432663832343261393366306232363166313034383033313565373265353436666263
38356564656331393733393333346164313233313937343330363662316431353233633063646438
63386162363034363039663864636365666638343665386334383436353336313333653166343937
35626138326333623362623639336461343737633730306630303963613465396464386534663763
63383733643761613136386430646361363731343433656533653938366138373162313335373038
63626639643634663962643130343566323730646432366136393335623134336238383761333733
31633330343962316134333536376464663166316365386265393061316162363161376333393561
31646361386332613837663634303134626133376630643730636466643961343462366566363737
65373236323861343238343434316637663333346161633835306663313537383631303136323832
30353862663462386262663461623432373034333631633133633563636336343831653934303033
36303162323164663632393937643665643961313464623033383130663565333034636164643136
62316639333662316133393533623561633435653036376637323739326339346632653837633637
37663332386663396363653237353031343065366334333836343830363562383733653661323664
61333633306531323639343931663061383031303937323261616165633163636133323130666133
31353366386530323465646133343766663966663561616337313330353436303234346136326365
64343561656532366538336662656261396337623763343966366136646638643739373037336361
65336538373161396533613262326633343233653036656364636536636338623930316365353365
61663435663333633435376535353963646566303130616364396539643366306635646538363464
36623433663437363761313038666665306536353332633361316339666263306665636566393531
66356565363839666130663866643134343632623837323630376638313131383036376464613331
65366262663936623238303863303761313466656538343962326662646139363166616230323938
35303265343132643938616330343833386261666432376666356532363933656461396633343831
66623735623233363833656137626161643265633335396162626261633334613232363435613266
39356663333532306662353538396565663666393063313630663133646365626461376363633735
66343030306232396332313731313531333235636363383130373532633137383536316639626537
33306330393737343563626234633531643334313363313466326564343530383337316238383362
31306430313637613639356365343034393766313362613430646566643131646530313861383037
31353636323963646236343866383166646633613539386333316164316532653036663236663039
36306364613033616338643366303264343462393532393638316235303565333634396537353334
36666361646237356430396636663032666264346561316533343438303238313537326263333766
64313231303563626364663232363462643735346639373463376464383466636638663036353437
64356338653862393637366233613366393635623637663332613961623733653362353234656130
39383533626133313066646331343361303261376364356463383261356462333138643636306432
34326135333137366339366561646337323134633033333365376666313763666630306261666263
38386530356361633062663964333631393665343539366532316161616331383831396537323539
66343138373463343434356465316662356233633861396337343762396366663361373161363838
30363633313634623333383135623738343738396230343839316137633663396635643865373735
64306238393833353065333731626131666134303264346662363433316161626632626430363861
36656263313032643132383162386439613763333033396434613631656233653034353263386138
35396465316664646339333630666432353064646461323463633237616338316362626538323234
34343531633766396662306234356361646432393663303764323633333831636631323938396261
65623064303234353861363261346139646633363965316337363962643430633864633061663462
33393531613032386134303765373132306662633161383133376231636631643464393536636430
32373238653166313231333733313865663862653537313736353338336634653032326465616565
35626536386132363139303939623864613463633432643538383036616530323765376435643237
65656463306533336661326462386636326630346664333838636332376530333432393235666332
35663836313765363934313236333765386130623064653463323039666536646531646333633334
32356439303333353536663638333138343965653663623465653938326565353535666662376364
65613933323566313363366266343630396331366165306164663065343361666366616237316134
31323236316163663030666265356531363266343337623561616163386336386266626634346436
30303738626335313935303463363166313438663430363035336466346164373738306565653133
30313134303563613835633739303137626562646533636263623336396233626266353130633262
30396637613934616636643333316539653431323563616338343637303139373334386435626333
37616265663435303130376137346361653463313934323837313331653662623261613962663833
64386165343661663463643136643736333232346231396666383239313830386132356238343233
65376535356238653663613336343632646234663633373238316363663162633535623962376135
63396661373130383331623733343664653434336264343763303266303339626434316331336433
32313066626262313438373631303337663232636538643863613939353266666463313733653830
38666334663864373830313762346339653230393036653336663030346631333365613062633361
36616538636336613930303065663637373433643937356461373030613733333434663736323864
33376365323235333938353261653766663134313733393666623038646362666239373338336464
38633433383938623463366335373439336331386336373631353232663662616261383831663339
33663830653737306364633935393334306466383634326430326361613461316639393136373065
34663234613434376430613365316438306162396239326531306638303132666266616238336538
65393965646139383263366263376338396238393730643231616664323432653535613833363465
38626166356463333938626131343638333635643661343162663931303937653835646364306164
63663232653234383465353464616364656336653438313664313339313231633739303930316536
32633037643561626362633231626634306335376333616562663039326466353165313962343434
62613638313439663032366161666665663562623535643037646331323934616562623432323565
35383939393134393931383030326237336535333862633637373730336339636239366439643863
31626364306365303063346265343465623735346639386239616262393931643835393562326535
62376536393965613035626664613034393533363961353864626666373639386133303634363034
35323939323465366638386631656561636564303430643533323864333734386531376337353632
38323161333865333663363239376133323063643931313464653464316161633637353165346233
65373431663462656365326136346130663830313566313038303265366233626261356535633731
65353666393935616634366335306363383831663462623034303434646431666138636231373336
64366137336231376562313762343136646136353233326139346131336238343262623738336231
35353031666632393237303834633536636161636561643463346339343164623732313537353433
33343439373736336330383336303038393831386130323438633865623765623734316365313333
33303265373562663734353938343762633230366564336137303134383661393638626465326561
32633862393539316633616165666262623563333966353736363536656536343235303366633964
61623434386335356435386464363035663162333761336361313263373138343965613538376435
62646266346162363334363963653937353164653563343834346162323166386335383565353434
30396434343465303538616463663532343938636135313739366632656332333733613737343536
33323336356533663962386237333566323030306133666334366365373535333265333132353437
35626435356234613539336232613335653662303365376163626535343163343036663631323031
62393263396233316332373663613435356465616265363336393732666235373466306632383635
64613962633435303834343231616264326666316366653433313232323835626238656439306361
38326435363066366261363931333336613164353166353236373834316437303735623931613536
31666335303330313664333566363063313337653163396531353137613562643039336338656164
66663763313432386638323766323032386135643666313765313132393632323035643538313736
38656439626261663636393034366466363437326561396261303636636265616237633537316139
34353165303564343039656631313130316535336361393166656439623538313563343033373366
63643862386464353330643537326331393133323765353436313136313435633261626534303736
31346435343865396665663333323737333635343335346134343061613033393061343532623131
66633864333838363937626135336231366434363634376635633566363536353461313866373836
35356463313437313134323339366531633439353961346164626663613232656635666237363461
62633832356433313934613763663433396666396435653433303733346639613762303534613939
38343338663162346637633231626435333963376262353661313436623233616534373333313631
34336433313964326339633466616533303031343935336266326663343937366331656539623535
66383261303462346634626261363737386232633231616239633335303238383766643665663639
35333731666432346665663736313435356231343132376532616439653963393934633037363366
37363632333362333438646339336462396665373361616536306466306663623733626238646135
37663863343339376162373065393130616538313939376137386566353361623937666330303538
64653531653634636133353433353463323738316664666636643933646661353339326238316666
64316137663236396234396130646533316438366337633437326539363130343765656639363334
30663362393937393863633262323931336336343362646264656331343733386332356237653134
62383966636130636231333539336465303838343365383135356464336139656637623233353236
31643731326430313563613130626431353562383036373461353663363031663232353366393765
64636261376666346132373161653430633934366165656139323232363463646461346336613964
66313130636132323931316438613137356162313062343431393035303339306237343461326336
38313261653231633836623739306438616439613730303332353434313934356431396565316238
32306132646239336466663232386266656134633563646431613332393062633439646562303665
65306665373532376362653737343061383036323535333330373831393635333663376237346565
34646666633864363836626666623838333263633036656337656431616635353662613262336336
62643965666364633865666432326137653864366435323332623536303465386661363162653064
65393362336362313438366536613038316461376139376662356437343631636239633066306162
38373638363233643531366338313434373034656635373731666230623663633430656266343933
35663030316335646532393766306638346365396533326433646530313630636239356231646337
62336163633162613862356138613863653432303064356638656135646264306363323664336263
62323963333432376237626134323062626563623165386335313533356366333437353838363363
64626230353262313138373535306538313765323435363732396437616134643931323232316463
63396161653032653837613366346138366166313730656665623563333834653836656162393466
65666436363465393934383732393963616236616263393366623130646134623730376462346532
37373662306262366331323539323365356232323739333466383865653461313635356339633338
61666330666338363533313462613739393863666439623033376336396364666365303432643137
32663365376231333230663665326536333638303234663365303935626331626665663239323166
64303966653566616630366432336264333639646236613038383134363336376363353961366435
34313133346339306133303839313631663831353465376664656138616131653437626337343539
33623834626263633939366238373232323165653236616361346533316463613063353064383633
31366534303736316532306563366663363035636462323737633436326138306464313134323066
33626538616536333338636664666334353832613135333832303862313061343363303362343461
39316438396564613662356432346363336266356239303632323664393864343233633664636261
35323831623133363937343639656637663133383637386635383137343165353932333665316434
34393839633233396237643062623536393231373864396236613162323364663732666265633632
32666134366137363463656131376630353130363538356334313239323939663263613863333161
61386434306532313263326334623362623465336461326564313735333732333539653162343165
34363861643532633137356466336430323961666133613031626631636631373464633832313035
33343935643531383339326330303538333133666265313230373734303562366336363863353936
33386566656633626239356334323765323435663233363265666231616363343537363438633766
33613336366163653134333039333535303962366162613337356166393335366131643163316339
31383132663331363762633662366462343663393062653866663766623830376135616263393839
66326638316339633435306438663534356662336232303032376330383065336432623266383739
64303866393235333561633434313763366333626631346563323662326537653339353834363961
38393236333462343234663761336562383564613530323762626465643933386239396266313139
31363138383138383236363464346163633166393232626634376533373862633039373964303331
34323132636535663732646463656632333039333063356533663263633035666664343165623061
64653637333637363632366562326431323932303233343433356431396564626632353334656631
37623866633330313337653466353139393831373531656333313932376232363961663630353265
31323864653664643030323531393736336165616632343766653032376665666263616438363064
65646630613136343033343466643765656236393061613238356435383264383866363632333332
61616437623065636135656330376262376130316336643263373362666336343331303534353965
61316263633534396435373336363638326536363366383165353565373736353032633632646234
31623233663333303232643163646630366432303933393131613461306264303932663038343435
64376533363134343338643364626135386334316337373636653735373330386631336362623030
32633562376164316637373639333230643065336436363163353263393630623065656263306231
38366235366335326563323733303539383330383630613937326331303731396361653537373436
62366333336131626138393839343463626436613664653137393731653332646661333136666232
39383433643331383736356137663830396265336264316336393731343461356239393534313432
37303838366264623034373538316234333536646436643661343363393161656633313530373465
65313361656637623432393233326332373537383632316361333735663935363835646634396431
36323335356637333530353366363661323762393131623737656238623036353937393730636333
30613337386564383632333063396430306166396333346533333834343538356130353436323765
38363664633330323163316233633864363262343732306363656237303534656466323231383130
34636264343735316362643961386639353733336135613261303736313537333165323739343032
65353363363161616531633462303539363734646661366464383334613734313137623731323939
63323065366132623362333335663735306361393630326538613037383632663830356431373261
33393063626436663933353864346264633535336532643136666363663237353030663761653933
39623331366663373363356333373263643338653336343463333032646630323132636265333130
64623765336336613161626336313361643265633735636436363037303432643265316465386335
63316331363836626433393165356131396461333931646665613363313737613337333638306432
33623063323065313865323732353362363333333331373766376465613638656465653035326531
32366333363935666230666334653962623835303435336466663032623531616361643339666130
31376265656165303864316239356339396665616461626362333862616364633432363135373332
39313430303363623433623161643432643261613364393630633334303431366235393765653730
38323639306161633434666161653564393436353031363131626336643664613232313463636431
35633935393666376462656639363431333031363534383064333934663265396133373433616363
39366461333034643631356264646362373439386161346337366165633639613939373930353562
33643634646331376433373530623438373734353661623766623263616232376365656335636534
35626665393636643830613466393061666338323464333230336666366135633661316537643764
30653130356232646430653365303966303266336366373132636237623332363133323632646230
33626361353464306566393438616465326266386262633566646134613166396635343733326635
37363266386363633030356531643166333530313561303638346436376235623033363834316266
36323363303636383334653533346335653939386237646436336437313161653932656331343064
32646161623563303462386433356334306239646332383137613162363237613062323265616230
38636334333762373138393833323231613062616535356664376239356433313264336163313138
36353432613033333237353531656162616363353835376138666131306361623365323237353333
64316364383866356338656237313539303434383064323831333832633063653264666261333032
31336135613032366666613566303539626163313364303662356165643931353938356663636366
38303063323337323661333464336339653833316163643235666133336438303930393766623931
35386331323430333630616131663831653265396165323430333866626263356138323161303763
37373233386562326462613364633138326535653238353662613864343835313031303362633131
37373166363261313930316639646663396163646334623931313466663632393835633161393038
39316363316330393266396564356338353037636632376133373231653864636365373638653438
35326334386465623536343038336336643162616633343565383334373830656435363138636435
36303764306235653534353161363162313764336138373332313338396134653134306338343561
33346339646662636562333834313535316439303265306534353366353662623066363139663933
39663165313666376362303838343765666162636337326565353761353132613737626539306163
35383065336430396132663635663631393466663236653564366139663031326136383437383838
32353239366232396235636132646531663563323661393332336361313738626437626335623463
38316133646566653830633963613161303637333533363338663130663661656631646263323262
64623032633866636237623665356436356165366165653666656161393865643931643730613664
35663832363037653931313635313638343764316635633031616439626230323337303335623234
32646330326632373738663465666236666565396162613361326464313965393830643237643865
61653538333330613835623461353366633433336138653535336239343933643563633363656638
38343966336630643030303665333563353661373064363934633566353363663334653939326263
66623034633564383833653366323532386664633730376131656366613637363433376131356430
64376337313930633030343230323662633762363538623331373035373166393432653836663836
38303834313663383465376432656661343432373139653066323637643061323231383064356131
32653065646636383534653462353534643931353035346432663266623431363066303064623435
37613264616430386438616538643035623632336237656535343936376363616431633264303933
34663465393337376539303431623666626339353237346338376637666331623762373132613866
39353065653630373635383535316539303530353433376433653932636331623739633862616265
63636163363765613730343061323930653735336364343239353633383461636133333065616632
63396562333733306538353533646332353966396330616334636639373163323539353231623766
35396261393066326232346330616133626634313964626531633234663637376238326666323561
65383366373963323734366332633865623536623064643239366561623262633162353461326137
38633862303932316362356366393861303366363335356134363638313533343434306161386261
34323733666662313962613835613537393432623836633730306535366361336265646534353834
64346461386630646130616663313035346232383533663863613364653461656564313834303961
32346337346165313464326332393435356434653138343130363263396238343034646635343937
30353361316435313634613930316237626162623562653036353966393362666438303637303333
32383130323630336461323835373863396137343231306536613038393437623937636566376639
36626634393035356136643831316664306662653061616464633237616566323437376634303634
32633462383332663635623334353263313464613535323861313863343036653338343033303238
39356239623163663330663131393334633961313066663266646631333464643366663637383434
65323264376166666162346336383736666133666163356131326633336464613961653562663462
63313935366166303061663066396532313830373936663865383132343466353233343165343961
61343330616666323939643238636462353531343664343938366135323961366661323066663466
35313635616637646336613830346165646664316464643266393665656465666263306662623062
34306465636337633733643434373536393335363862316166373062353432626161353830336133
37663531386463313334366634623533376131316138323337303738643238656661396633323838
66663633306134353864643163363735303532373866323534333132373438383738366535353136
66366262626636316435623436356263313037626431626133326339396164656535326563373932
39373232306661356338333139313335323634636565303631356163383935663432303133346465
37356234633362376633393265363736333132386432653961653536383136616236333263333263
33356131396439393164633466303366343563643735343333336165636335616639663862656437
37396262343131356665376638623236383634366532623064636636376638643133306666623733
62343936653937663639646661353933306562643530393938313835313563343635333738303461
38623534616363313862313366623762646531373262326666313736616461616232336537333037
39643030333737643831333866656435663430313864656261333233336530326363653532376336
63653532396539643966663230333435353533363239656561336531343231636362376538313037
36633666316464376139643563313664343738373064393562633262393439393366393564666231
34323731303839393266303465323766613864396461386465653739366634383461656537653732
33313136366439623636636438363566333939303263346637353163613834396162303331663561
35343237613031373065333636366336613732326662303463323461623839353439613132666563
36646631393632613237663464373835636333366434356265363537653265383163653833663461
31396665383334343966653166393762323837303735323366393335356230303033666232313361
64383962636636643630326533393331313064346165313833333937303538343062653266303334
66303063376265666538633565343166636562653639363533376637666631393764613438363333
38636537363664643863613333633236663435323537303934613433386437666366333334363964
34383738323339643836626562666566376336666262623736346535343639323737353163623439
62633732353236373032646533633665313361653538396232616234623663663365396536633237
61626366353062313665613836346233346631633131363061656662363864333065363234316230
30613364343131366532356263313863333130653266623130636235303961353630376663396131
32613633346434373630653663653536383933356133643666343966383532326236333537336135
61633636653936303662646362333463653139366138373734356134326534656633316533393535
66306337323164363334346663626663346535656137353534333731396537393835366261323233
36633033613938386437386665366462323235656531656461313064333064393264366239346462
38313737323962363465386435636539656432303162323665346531643139643438363630653538
35636430336366353263396232316333396434616438613463313634633138616336306633643061
63386335306261633739303532626261323566653762636262363430386134643735383937313136
34643938356136623133623665363963623530363535353139653733393232333736383337383662
35316237343935616538633861646238343438396131623061396232393331333038373432643465
35643835396235323735636332383261303530653733613935646466626330333731323065303930
33653061373765363439306464323761303464393136613864616665323837336664383238666634
30396336303538313232633236326431313065663234323161653062363836323633363735366135
35643562303534343832373632633962636636653562333666333563626166326435383732306332
30383362393135646337616131633330393632613237333037353531323830363237643330643161
66626563636635623464363533346466646133383538313730363538336637626538333830393164
36343063346433633439313733303865383530336663636663643733396230333837353237313062
30626330616234303039633736393161303863343234396262623436306136316366306432663930
61346530633865396365396139613639326530353639333036313437383063633235366537626235
62616365653761663566616133366536313338376162356662656432643532636633363838633637
37643364643061656136323436626564363135636534383862613765616335323931643233393863
61396463316564656136626365313065353038343936366134616136396461616265623331333633
31613261656639333930653132633933336630663066613331386535373335333339313230616361
33386535623363646631646262386463343031643138616464633961616137636633356238333864
66633338343166323034333936396162663366373765353233393762373335656465656261343663
63346330393161343236376665313639386136353265393431383563646665393462323336646263
32616234376239386263613034626661383962656637363236323831633531313933386666313435
39336539656530373137616138303361653331643637393066323665373132326162613461346434
32616130386131663631396633353135323164333931393939386637356637303763663638376466
35616230343862323037646139353838623031313361616265396136626561636338383063336238
30393536373261396233373439633132303238323636396131386137306237643936636330353133
38626135356238663536353733623337393061333465626531626232376430636231373162333463
31666163316637303462663262313039663666383431373264323163663134636430663233346664
36326636633038616531386334613762613736643038626335623835343864356366316266343131
66383939636332613766363565346336386134306566616365336234383331383466356539306433
64346138653536316336343931343538353235303565343663383866653139333132363035623465
62363835303765643132643239376233386330383530373530386461663565613030303665396339
39656262643563313064633832646565373236353235393032616532353733353630623566336265
65653664303465393139303232636439663231326430393435336438633931303332633731393639
30623430656465326136653361613734373835376661313135623032356562363830303139366337
65636231323866366235313933643733313630376533343438643863386166656239336635393736
34376232613362323839653139336261623034613334396234623432326563383737393562373939
31653764393061656535663862333936643264613865366565386166663866666232366538373838
65376534653866653864623237653337346431373730626335386630616137323164353464613463
30336532386265376234663562306334313432623539336366653361653565643032643531633939
30626165666134653264616639373830333130653263313534326337366466333032333939653263
38636331653937353531646635653937376132313732313836353131343632353034663832383639
36636338343563366566396166343734396636313866393938373266633832343832396664616266
64613339616539303333656635636465313964383239376138643834393232323666386563303265
64386437663539333234353461303763353930643861613461393865386638386633623633623937
63663734306332313033646536616561316638643765623566616139653031336563383365636138
65303930343461623535663834323132353533653333366630356431653733636566376336353464
38376162636565323335343737376633653165396632323235663463323730326162316635346366
39353736623262666462396338363765306264663232366463353966623239313666613839373530
66613062633436333734383139323964326663323634373635636365663832303230636366333636
65323737383633636338363066356135373166363936646262303236356166316533326437393735
32363639303137623335643632323566373032656233363063313264396436626633313433636133
35646464373665356136316536356530653966313935333931643639376537373735373331386537
38646336356631623731653439613164303835643039346430353364653561626337333666616137
33636434323938316661643939383937396533323661363365643164356538393765396134396433
33343031633764643239643531373663633734646232656466643362383838393037363636323466
31613433393132306364326430666639666561616664333035613863393335383034353039343265
31633730363161646439373637643938356462343639383666636437623639653066323536653463
39626239363130346539363961326331613764386531386436316564386135626335333439333539
38353638653531353132323866663665663831353063623764346438323935643431326538336534
30643934626236663762333062646363316635323735633336386339336366323861323438313137
30356665663032653261356663373033326634623639396666396664363430303437303163376637
61363866316434663433316565393363343938363131363635373934623233626463303731633662
62663437616333363438366239323934656138663362376363353063633461333532356265336663
66633366316433653038353734373566633330653737366363303164393536353232326465623063
65333136306264326430393935306431646134383036626466663032643931633862323066363863
32353231326334633031656562333266363436386535303465343437666431393234623662346137
32626636656336653738333934383339646335316137326630373062663831636139383232343437
66356138373465316431643937623432643965616130373239346661396330363433373834303932
37363932623564303661323234376336323939646361636665386663653761353033666339303439
66303261376263306566323135643835373365626463376262376666643331626236656139363134
39373833393930363630663833633832613063333139326564633161346366326239623735376461
34663063663232313138376336663836333136363639646539623661373635366264653965396431
30633430333136656139613033353939653433393038323438313363346264333462653464346437
37666532336136373762306533326633323135376538393932633165653932396334343530653166
32323337623731366261376534616164613836333237323466323830313830396662633837313533
32373238626339353031303136306139613639343437336566303936656435636531626464613366
30636235356363306663366334396631613832613062363134313934646366303766636438653762
64313931616563313939326365643635643730633562323834326433343238646362333631656630
61643639316631303861633130326261613061353635333065656363653862366562663830366637
33613938363538663736663934626464323538623831336664643935633866383562316637323132
39393934656263633466636565316161376537343962383334323336643730323634326461303666
33396364666339646135313039393538356436656338366536613934306431306664383532326331
64623231363366313637613161316234336136613862633466363837653133343339376238393437
36363638613635663564316138303365373165336239363935313631336533303562363165306366
30363138666435653364633439303561626637333037663134633837303131376638613437643363
39666139656636353630373631653631613664313965303335303138316634663139656337343064
34653061333934326234336132303965303338383566613032396433393838333439656565633130
63306564623635633835616264316138326630656532373235316538356230663966323730386164
34623137626665613935646330383530326163316637306334323933643462623133363463626434
38633730626432323732303361336462383361306433336335396162353838666233393364333932
36626437613131303136633739386263363331646130346264333838646330326532646437353035
32376231663466373439653531386230383565626465623938366637393866343566346135383935
36623431636138383063333265636332633265646463353565636335363830616563356236343030
64623365396237313138613163336239663765313831383765313538326539646437663732333031
66343464646538633830326235643837366437313161666635643539393830656139356138343431
61303734306161333235383532653935653133613333333531353265303136356362373932376135
61623738336566363761316164353563376431623864623465343065663966616533333130623032
30613661616232323430646564383466616630356461653866626666303165326364613861336639
38333865663237343530643432613439626166633232303164663263323961643739363164343932
39343330336530636364656336333539623732353431616334616333653665336361306431653535
66393162653865383365313833373462356135343238623661333735393466396563316462306165
31656136616539373834663430663266313564336639656137636538646538653735633761373534
39303365303364326461653763333164353563613961396331653032363165316437356566646335
30313262666230633533383966313437633235383232656133366165373434663264363266373466
36333766366434343633656361326530383065616531363435313165343037353736653830373235
36633534663738616436363330393136333066653935346466663234393563656266666362346564
63396435303332626461643161646632623561313530396634336264633334313133636666323835
66323634613864646566396562306661303438316135366138386662616361373432316237363166
33656638316338373064656130613635653865636433383664663431393731376332656330613466
64663636316166383663313861383136376234373863363135353733663166333638373364613435
61366438346265643230623663303538623732623761376666383038656533343632303162633433
37613238346237613666626430623262653764393664313633336536316535383765333562393362
62326162343161623866386466633933613436383564666664346439333937623036656530666661
37323331373464626637643065666230653165353735303634643966636630613335376162373231
32306531333664653230613737363334656261326631633339383662636530316264353139343663
63623662333336373563656236393034316263323438363361633835396238316362313561623236
62353533383630333962323966663236316463633461366166333230356664646466363061633263
61646666643735353230346433633765303931353466633837316161396336363161613664623861
32663930373664376638386663343466663033626535643661303561353836346136333166613737
39383164346463656137353237383662646263396366323838326165623037363736366664636462
35663764333137656139376330353463363965626237366530663263656536336661613062646232
32396131383436386539663935653061663263363161303765663966383035366137653265363463
38383530383738306465396232336337646366666664666338663164363562626463326539393539
30623838656238666639356239353535333637343439393233643136366337616431343165396563
30633632653962623033306162633439643565333332626237663032383338396435633832383933
39663336363934666638333839666463623763313638313735653137353734663432303963616232
37386238353337356565633933383733373631356466616666613132633934626435643163346165
31306234353866656430333566623761353531333930363431343233366362313032353365636163
37623330356632626262373838376365626465373566666231663537666332356232313536613532
66343265643536313436636563623933626232323431356164636265343464373536363837333837
66663839393431653061396331303734353962373565653636366564396539303265393136356435
65623138363463653330376431316330303334656538366461666364323137396265383663303262
32393439343139386633643031666535623531316365653735323336353464383434643739356363
63623364336364666535333134356535346136353461373839613639313964616131313235393736
35613337326263633464383665333062356639626263306238306664396162343636316564616539
65303730356266303361633939336637363930303865663632346535396238633934643332306434
39383961653933376533383632653566343730613939393738393435663565633536363836376161
61616466653662643963613765656336626535326166303962326133313562306134656266613863
62356166353336333961313731363166396437663734353535663035663764356366396438326133
39326264626235653132326363616165653835303731626630613166313361643364306466666463
63363039343164636166626633326330656339623136653432333464376131663363636238343638
63333433633861376131303136346335653033383361383963343839346137393538656364336134
30386337306432313332626132383236333963366431333736363836326565336564353834373361
35626535643266613334633736343061636365316539346330366431353134653264306162613332
62323131316531333366303163373265653634396537613935326436343961633735323835356362
64646137333065643830343131343565386566396238626461343165383363363430333737643635
32666439633330303663653933633261333030626166643932613634653636323034386665613465
65326461636265333563333730393730303238633666646463343531363131396234653134306531
63633837313639336137663437353730356132313932666337643463383862376261356266656462
31353936666331346463653363393036363032306566366562306138636234316265323538313364
35303638663262613164313765306638306434333338626266663765306562366363376238666162
31313964326431633736666466313066393736313662353436353665353136353136373038393162
37333537336664616231323865666330336162383535373135613536656534666664663734336434
34386365326133326165646563386366343264343435623461336434393962626330303065383732
61323664336431303962313531303366616539616131363766656564313063303234386466633165
62323337373664356138343236396361376137336564653930616263666236666233393531633563
39653264626238636430373963643831643663363337373161376437653630323562313765373933
35303165396132666134333832366264303164376536383065666431363039643336396332326233
64373833303830313734616132666564653464656330323866346538623231303335363839613334
34333236363866363039373238336431333666313536653433626435623337306364663939366261
65383865653634316339643330626236376435623366633331343839643339333166353036653432
31613161303339613531313536313539643430653666303432623933663637373734313366633930
38393031313863343136326261316236373966373966356130643164313361396139343739356230
36323465633262626430373531386164313365663233396332343965393934653135643832383230
33653232366632373366366363636331316338386462333634666630393463333165653336323335
65613361303663306430346630663762383134653130373134306338303038333365643064383765
36636438663033643431616630346631393532626437626235306430306234326432353064663139
64636662356630383138333935326165333235313764326436323864383938356638303331386666
39326338343339633636623432343537633636626362616339656539326431306266636232613436
34336534323363373331393962343730303161323538346335636463666635636461633234323465
63343661343464336137343138343564616135333035636161646263326363363034383535303131
64343062666635363133336135326565633738396332653663623432383134633265323739626438
66313565333736306335653166306432326435346536323461313539393733653432366264666437
31646438353361346166663733613835363338333032653261623830626532633665303631356134
39613135373562663435303666363339346439386330636463313164383666313264656233313139
63643639323964396130363637316230613734303035353165386661343737636363366137646539
65306133393763323566343933663731363763313730376664326334613234666634643038636665
36623636343566333666623963383365353231353137626236306636356631663433396238386364
32316533343563616635393930396463353938346633633565356630353838303064346239346533
31613231643039346339373032396163323161313133653237333966316665613132646662313935
35316436616162373937383465363763663239366565323432393563326534646363646466316266
30623166343636393331393232616335663862363264373038663035316261313938626334663964
33326139613738346133663231356138653232633263643936393835396436383534326663303335
62303537313730373536633334666130633765633339626631623966316661663538363437643430
65363338653739623335313336626330666164613636366166356332363633343961643065646561
65383466356463363566356230333939366535333335326333393838313331333862353030366364
37383236663932323361653230373038366135383533633038613664353763373363393031616334
30396138373163393262326238393363396364356533306166623432373165643938653561336664
66383832383537356238653664323864616666623931396564656237333637376662346435663032
32323261313561393662636139353438313036643135626634323465336139336162383066343765
35633234623432366637323334616361333931306139323162343064643030393162303165633163
64356235643037323365303836353634356336333635383031663438663536656233626465393361
66633566336363333666613465613630623539316263613836386433303138333331396462333264
65313362353736666234333563383039653832636165306264633966343266356239393761343934
62363035373037396361303336356461303563323966663764643336393539623564373434383732
65386631636137643636386430343165633837366333613038376135646637323031383533313937
31376336313930376531643438323636323934303065643161653233616564376464313466643931
31653433363233373731366261393066316531373365316166313531623230393062313832343438
34643031613830653037643464393437636538663062376139386534343566393130643338346663
32613134356134656333643434626163343938616234333861666234623233343732656165646161
37316530323065356231376635656437346138666436313334303638653731643932643661656465
63646263633035363066633561353134653336636464643231666233386339343232653239333864
64663162653035353364656538336664356136333737373761333462376365626634333736306135
36306337396131333564633438383963663036333935356262653533663031323066306164326366
33666432353932393038316133636238633433303461323361666633386530326465633630383131
62623035376232616639303864393566646630393063326463356666653535656438663538613066
30343632303835336262396665356439343362626431303134313562663165323934303034386663
30623530383936353965306563623161666535316231336232323031396239363764663635613231
30306232646166393562626139363139356366383065626337663365633134386137343132636232
64633139646130396364363037346262316635613461323763663163656435633165353131623436
36363734383335353736346232326436623434626263323736356365653966333135663836623261
38313461663838353165343563653361613735643435653638383265386536376266343534313636
62663130613833306533386637333230363332386665633831643037393461386535323261396231
31303733333938666634356633663734353432333764353136653730353565366638336538343938
39326639346435313863663265633166393638343665393333353832353234316534356435363233
38613035323861333662623662313462323762326533643632613866643633626632643039633234
38346233333564343737363633366365383666633039323033373261303135613035373239343133
38343961326661393838616165303438353832316334353966346666393233386631666163373662
37373637613335616665623963323863343532666266383331393562383233336436373234396265
66353766363631393366373563343034336266323164616262343863306136363766646430643263
30323838393665333361636632313366323064376637626261616263616139613565656333353661
63343263363930366565663537343538613130323537343462313365633763346635343935313964
38356636643335666663373461306435636539396638336331653761323864373432303961396562
31376131386363653366336331333232373833346331633536356632306638613036643834373833
32333737353435633430663364383331383737623263303361356462303831623130343138643731
65653439643839653263343632363837333337643732333165656438616563633030366334353965
38386364393837363163306232323434646330323933323639313666636233326366313530653739
37313964396161326336613238636133303136663434393336363963616265386436313835643234
65343364663464356439363833383966383133613538333638303762366261353036323564623863
65313030363138363362653538336235643832646262373163306634346164393634366261633964
32353564396265303336323432353438656431643261663432323662376136326239376439393536
39653833336662386364353161396539386534636464316433656662373836366534313136333430
35303730353865333439316462366136663834626563323866663234313734666434393262333633
61393636663062303337333432363931653761626632626336346462313863613931386536656435
34666366616332366130343539383135613538366664343130333634316461636337633938383033
65346234613863663561343234663535393930346634353530643231316536663834646266346338
61353233356364336333646362336664366465646466363537396338343934383031666265666535
38623163636135656562613666663166393866636364346366343733356339316465613330646538
33646337633034343665656630316334366339626538373662616432323337313362333634643466
63666235646432366535303438636662373830313864646639306362633463626437613932303161
66393463346464666638333166326233613934303465386666633634633863363836616265383130
65633334666330613363303039613562303739343961333863383763313938623337386634386238
62656335663366303530346563353530656662303030356230383630386236393536346339643332
35393766616534303934373136356461613461666332393632376537333864656666633835356463
38616330383636313433653666396134343963663465393732363532613062656433663339353634
65666530316434386165363535336637376266616662336431396533323838356534616536343732
30326261323964636339356639356232383331666466323134333531346262363661663735656533
34626162643834353862613731356130376132613063633830633135663238666231326338323365
62363865616535623131383066653164336565333733336233613333613030313936363465393962
30336331336336386564613564656639653037313238346137666234393431346563303434333638
30366232386530386434613932333836316166653238313134356535393035663633393033613266
64326566303565656438386532393665656338303832346133333031613761663838613864336565
34353737363737366638653938346166356630373539353238316366363861313637623938326638
30313432633532323539303936313462616635656232323832366561373331353331366630376663
61343138363862613336303866373030333334306235626363616565623039373364656137666332
34333735623964353464656131303533653031636339393335663739363234313134383865616365
32313331323534383532663135353232643038373532626564373563383434303436636433366165
34326465353737633336613038336534373166363636303165323035366533323939376238306235
36386233356562356166303565366535376137636661313666623766393861666132363332333435
33316234363137656564643639393739323736376434663132633864656161323261316534653063
39666462343766623537336137373730636562313161666263613532333132316238643836323661
39363562643039363562366663383737373737653439663930643466383938376664336436623337
30376431633561656439393634633635636334363366383739613238636262316266313334373766
39376133316331333937323131656230313734636532653437356634373935653365356339396236
37613036666139623532656538393066313163303135396535356536303565616236646236366264
62323233376235356462633034323639356465346136303138393234663164373834393565323062
39383030613634396332643733313834366365313762636235306161313435313262616430633236
34386332366262336231623732656431616630623235396538376663646262323761306663303539
33366161303066653932333137326366363130373534306630626135313830326138343764373365
66633462666666393461303265643239653531656631643930343730626336643037393232336163
39376634326165623531633765666636383264613532323235663236353532336638313138666566
63333632343161303630663431383037666265343564613636623238336564376239316665326461
62613665353735633361383730663132356463336461653932313565306630323863663431336562
34306537613530653934373434613463346636613465663761643065633235646365356266383761
31303036613261376562333233623537333064313639636136306530393337373639663862356638
30323365653136323535386134376335356531653133316530353061326666626536326239363366
66623165623734386563316361313535393462633230646664626631396234303030376262616566
33366234643065636633623338656331373761613432396530653839643836643537363863653139
61643233393564393537356364613334633038633036343463383338653461623136383436353665
34663136623332356434313664613434663032393737623039336631643133306661323432313663
63316263353730613437393230633738346334653530663531306134316535663334316566623261
66663539386363366335353265623939316636303938393131346434343565623266616637636332
33616233636137613339343231386631636235346631386138356234386266326630346164343164
37393063316633663863343830346466383636366234376466326366663239316438646366643635
63326566616131333532353932643434386632616332333364613634376162323239633963303234
33616132643031393039313933646434376232343862313736326639373436383466343336616535
30323161343335646235663935636563336663306566316563356361386464373334313063656134
35343866386234626565363866373534376364633431383062353439373566323266326662616263
37376362366438353636636530353965646365316138303936373631623064666236616438373463
65303431333738333236636336323037383739633839653663353463653638646635626265613430
37616261386637643230636336303861616336646532306535326537623434383532623637666536
37366566646466356432316461356538633834306364396338333931306231373530303462393465
61326264616530636464343335623132376139653737636561313039353264376131636161633830
39333737613433643962633862653434303165343232633765626335626338666232396264316530
33373135633639366531366632643439306339393064343530666431336333643132623061306162
30613438633232626163656134353739636463326538376338633164343166363631383336316266
62653732643030353032353936646162626163636233616531646231636334323366626534636536
65373033616139376466366662306566663363393164356638383431653437663366643866333263
39306533306661363138303566656161633365386436623565376235313433356236636638633134
63353233353030393833653363626663336561326437383161316531373364663666306330343063
31323663636136396566643831633666323639303230636664393162366638626437343562643464
39316239373338316136613839326663626462356138313839656239613835396638663037656232
33393138363364353166663430663031383330356234376632333938353965376337346563393531
63633065663332306535306466383165646663313938623434373831616431656237386363643637
62313861643636353734626136366330376230636235663234303764656662373539333830653535
31663030313334376531366631636636306265643235313635363736333334393239353262323238
38326662363538636634303730303437336237666335666661366332333639663662383334313661
30323836646630343062353562336334396235326235616536643835373163306235653562626532
39373337333939666336333736366337653736633934343866393836316565373965613865386339
35313762313436666162316534383462333961653932643666663866633961613961353962653962
39326434646236393164383832613336386239663836396334653534616334346238343363393364
66656330623839323134623939653761323561643632663234306333643662346364643834646362
36346338656564633231303337333832663061303961396631653432346439623130623866356561
34666465336362383833336262303637303964383636643231656565616361306666613732333734
39303439336163383037663762316531343533343562383664626463623632626334303931626231
35643665333161303564373662313462393732623663343530666430393636356166383636343761
30613633383438613262646430623562363864363935353764613064636530616537613339616538
65386262663236356237353834393331353633653462353034306164643334646364383533646632
31636538376462303532633762373164383431613538663234396236313761323666613238646132
62313832663335633430666632616466313930383236653231343035623233373538616562373834
32323566353235613430643630313161353830623263313931323135633134393833376661353037
36306234376532653232316133336434396463616536393738633439313036646364326133396633
61393538636137376436636431356162366435626665326239646664363233383030353635333865
31396161613062626561376337653262643861353061633863616633623737323134653334636663
66376465386662656362313466356264323062366130336632323333373935626535303533633766
65336636646338623039363764306634366438656137303238646361666132636464313338363262
35613936386534656134633266356437663733346533653831386336343061336365373330363164
39313038356163656233343834346632643435393764326166376639383563633637626464353131
33653865326262626461653664616532343436376466666566313961343462666633653736626235
30336135613338333166323339316363623339346566353132313165353436353465643438353238
65646262666135616638323065316630646538383038663635646561343235366264643739373038
33376361653438306137373632306130303733363535386664613332666662663565626266346239
65333461653632343364323039613461336130383831376437363066656461386566363366316236
31326630313339333732356634363162316261336666633766636665643463613061313263386261
37376434616431383132633161633130306638643833366434323339353838303933363234663137
62663666306534623731366333383963656638653836323864326431303334646535313532656137
30636266353332626461636639353235303638656431653361366633356361623330393136643539
33366635646438313432396235386630386537336235383637326632303463333664656634613661
64323361666430343735623565623532353161653763313965666338636462313463346233666462
65656161646531353134323832633936636533363761376131636536636661316433383837663065
34653766636466636336643231636463623638373131633838343538383961383334613631303936
37353734363132306534633531346261623239616338613034656335363033333164393938633430
61663239316233643462333739626634303664353531656165303432353061306136333764373832
63343438633063386464663734643064666330393036303333663764663736303664653239336237
65353534633731366232333232613133633661653764303036363063323966353965343365366639
39396161383966343264646362636632303235376165663137343436346134333930656161623632
34636565306666376433353532396663383339333534343766333363303232343530663431386635
30346637656665396163613232316365353537633062316532656661326362336230323331313230
61633563353064333965636437643162613665316230633438666133663465663566373266353639
36376264303666663431643963323731356531343234313337363533663862386366636565646231
31346165663236336335623661356432373431366332633933313536633238353435376631396433
31383835323934323434383965383531626366653437316135643036336339316635323534393137
65366465346666313838383137346238646666383033346237386333626562313238333730323130
65316530326639663661346362663862303862316161623463376536356265643462306466653138
66306361353536386662343162353930383865666433623030313830623735353731363562623162
39643463646237336638653136383663346131626264653861326164646336656363343639383064
64313965636434663762646261386336626533643739343063323339343333313739343634613937
34383839336338383736386561616166386634333533616530383635346262643239386161643136
38323437643839323832623162636532376338346636666266663538653863633735613632386431
65363462313538396335633033633966396339626632396430353461343864323463653162393666
39643566613836616135323439636165626338333439373738313130666138343430386431353636
33646134623134363462383765643365626435366433363830653836653731333731343161643166
39653838373632636131656333306162633233313765316138613136336235343137343037656435
62363065326330343663343766666165356662613133373634633036316435626562366165643035
65636463356430666266343264396531636266363065303137636332626435616264353232383633
61666635356531336632623338633230336166626261623635613439366162383035653437383130
62386635653864306334613861383433353562363562306633653866633531663266356561363930
35323163616162353163323330636330623865633636343264353939356137336531323964346261
32363133613232656661653863306138393730386265353366393633373231323835303736306332
62353039313539663936393530643063633936643162373933303665346337643133343866323831
31386131646632323433613931623331316236353866363062343632613163363366383633393736
35633830656366373030623431336138346237663336333733336136363735643962333261323135
37356633653331343166323534393465316465383731633536343836653362663839376439343861
39373661326336323535373534306362326533663464306462303533306137623434