-
Notifications
You must be signed in to change notification settings - Fork 1
/
zlib-data.js
2409 lines (2400 loc) · 188 KB
/
zlib-data.js
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
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// This file is generated by the Python script below. It contains code from
// https://github.com/dvander/arewefastyet/blob/master/benchmarks/asmjs-apps/zlib.js
// which is basically a trivial driver in C from
// https://github.com/kripken/emscripten/blob/master/tests/zlib/benchmark.c
// plus the zlib library from
// http://www.zlib.net/
// (which is Copyright (C) 1995-2013 Jean-loup Gailly and Mark Adler) compiled
// via Emscripten.
// The script applies a few changes to avoid any output and to not start
// the benchmark directly.
/*
# ---------------------- BEGIN GENERATOR SCRIPT --------------------
#!/usr/bin/env python
import urllib2
url = "https://github.com/dvander/arewefastyet/raw/master/benchmarks/asmjs-apps/zlib.js"
def do_replacements(data):
# Update the *_original patterns if generated identifier names change:
printf_original = "_printf:function(a,b){return Cb(L[W>> 2],a,b)}"
printf_neutered = "_printf:function(a,b){}"
puts_original = ("_puts:function(a){var b=L[W>>2],a=Gb(a,b);" +
"return 0>a?a:0>Hb(10,b)?-1:a+1}")
puts_neutered = "_puts:function(a){}"
runner_original = "Ya([].concat(Module.arguments));"
runner_neutered = ""
assert printf_original in data
assert puts_original in data
assert runner_original in data
data = data.replace("\\", "\\\\").replace("\'", "\\\'")
data = data.replace(printf_original, printf_neutered)
data = data.replace(puts_original, puts_neutered)
data = data.replace(runner_original, runner_neutered)
def format_80col(data):
while len(data) > 0:
cutoff = min(79, len(data))
while data[cutoff-1] == '\\':
cutoff -= 1
line = data[0:cutoff]
data = data[cutoff:]
if len(data) > 0:
line += '\\'
print line
download = urllib2.urlopen(url)
data = ""
for line in download:
line = line.strip()
if line.startswith("//"): continue
data += line + " "
data = do_replacements(data)
format_80col("function InitializeZlibBenchmark() {" +
"zlibEval('" +
data +
"');" +
"}")
# ----------------------- END GENERATOR SCRIPT ---------------------
*/
function InitializeZlibBenchmark() {zlibEval('function j(a){throw a;}var k=\
void 0,n=!0,r=null,t=!1;function u(){return function(){}}try{this.Module=Module\
,Module.test}catch(aa){this.Module=Module={}}var ba="object"===typeof process&&\
"function"===typeof require,ca="object"===typeof window,v="function"===typeof i\
mportScripts,da=!ca&&!ba&&!v;"object"===typeof module&&(module.T=Module); if(ba\
){Module.print=function(a){process.stdout.write(a+"\\n")};Module.printErr=funct\
ion(a){process.stderr.write(a+"\\n")};var ea=require("fs"),fa=require("path");M\
odule.read=function(a,b){var a=fa.normalize(a),c=ea.readFileSync(a);!c&&a!=fa.r\
esolve(a)&&(a=path.join(__dirname,"..","src",a),c=ea.readFileSync(a));c&&!b&&(c\
=c.toString());return c};Module.readBinary=function(a){return Module.read(a,n)}\
;Module.load=function(a){ga(read(a))};Module.arguments||(Module.arguments=proce\
ss.argv.slice(2))} da&&(Module.print=print,"undefined"!=typeof printErr&&(Modul\
e.printErr=printErr),Module.read=read,Module.readBinary=function(a){return read\
(a,"binary")},Module.arguments||("undefined"!=typeof scriptArgs?Module.argument\
s=scriptArgs:"undefined"!=typeof arguments&&(Module.arguments=arguments)));ca&&\
!v&&(Module.print||(Module.print=function(a){console.log(a)}),Module.printErr||\
(Module.printErr=function(a){console.log(a)})); if(ca||v)Module.read=function(a\
){var b=new XMLHttpRequest;b.open("GET",a,t);b.send(r);return b.responseText},M\
odule.arguments||"undefined"!=typeof arguments&&(Module.arguments=arguments);v&\
&(Module.print||(Module.print=u()),Module.load=importScripts);!v&&(!ca&&!ba&&!d\
a)&&j("Unknown runtime environment. Where are we?");function ga(a){eval.call(r,\
a)}"undefined"==!Module.load&&Module.read&&(Module.load=function(a){ga(Module.r\
ead(a))});Module.print||(Module.print=u()); Module.printErr||(Module.printErr=M\
odule.print);Module.arguments||(Module.arguments=[]);Module.print=Module.print;\
Module.g=Module.printErr;Module.preRun||(Module.preRun=[]);Module.postRun||(Mod\
ule.postRun=[]);function ha(){return w}function ia(a){w=a}function ja(a){if(1==\
x)return 1;var b={"%i1":1,"%i8":1,"%i16":2,"%i32":4,"%i64":8,"%float":4,"%doubl\
e":8}["%"+a];b||("*"==a.charAt(a.length-1)?b=x:"i"==a[0]&&(a=parseInt(a.substr(\
1)),z(0==a%8),b=a/8));return b} function ka(a,b,c){c&&c.length?(c.splice||(c=Ar\
ray.prototype.slice.call(c)),c.splice(0,0,b),Module["dynCall_"+a].apply(r,c)):M\
odule["dynCall_"+a].call(r,b)}var la; function ma(){var a=[],b=0;this.B=functio\
n(c){c&=255;b&&(a.push(c),b--);if(0==a.length){if(128>c)return String.fromCharC\
ode(c);a.push(c);b=191<c&&224>c?1:2;return""}if(0<b)return"";var c=a[0],d=a[1],\
e=a[2],c=191<c&&224>c?String.fromCharCode((c&31)<<6|d&63):String.fromCharCode((\
c&15)<<12|(d&63)<<6|e&63);a.length=0;return c};this.O=function(a){for(var a=une\
scape(encodeURIComponent(a)),b=[],e=0;e<a.length;e++)b.push(a.charCodeAt(e));re\
turn b}}function na(a){var b=w;w=w+a|0;w=w+7>>3<<3;return b} function oa(a){var\
b=C;C=C+a|0;C=C+7>>3<<3;return b}function pa(a){var b=D;D=D+a|0;D=D+7>>3<<3;D>\
=qa&&F("Cannot enlarge memory arrays in asm.js. Either (1) compile with -s TOTA\
L_MEMORY=X with X higher than the current value, or (2) set Module.TOTAL_MEMORY\
before the program runs.");return b}function ra(a,b){return Math.ceil(a/(b?b:8\
))*(b?b:8)}var x=4,sa={},G=t,ta;function F(a){Module.print(a+":\\n"+Error().sta\
ck);G=n;j("Assertion: "+a)}function z(a,b){a||F("Assertion failed: "+b)}var ua=\
this; Module.ccall=function(a,b,c,d){return va(wa(a),b,c,d)};function wa(a){try\
{var b=ua.Module["_"+a];b||(b=eval("_"+a))}catch(c){}z(b,"Cannot call unknown f\
unction "+a+" (perhaps LLVM optimizations or closure removed it?)");return b} f\
unction va(a,b,c,d){function e(a,b){if("string"==b){if(a===r||a===k||0===a)retu\
rn 0;f||(f=ha());var c=na(a.length+1);xa(a,c);return c}return"array"==b?(f||(f=\
ha()),c=na(a.length),ya(a,c),c):a}var f=0,g=0,d=d?d.map(function(a){return e(a,\
c[g++])}):[];a=a.apply(r,d);"string"==b?b=I(a):(z("array"!=b),b=a);f&&ia(f);ret\
urn b}Module.cwrap=function(a,b,c){var d=wa(a);return function(){return va(d,b,\
c,Array.prototype.slice.call(arguments))}}; function za(a,b,c){c=c||"i8";"*"===\
c.charAt(c.length-1)&&(c="i32");switch(c){case "i1":J[a]=b;break;case "i8":J[a]\
=b;break;case "i16":Aa[a>>1]=b;break;case "i32":L[a>>2]=b;break;case "i64":ta=[\
b>>>0,(Math.min(+Math.floor(b/4294967296),4294967295)|0)>>>0];L[a>>2]=ta[0];L[a\
+4>>2]=ta[1];break;case "float":Ba[a>>2]=b;break;case "double":N[a>>3]=b;break;\
default:F("invalid type for setValue: "+c)}}Module.setValue=za; Module.getValue\
=function(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "\
i1":return J[a];case "i8":return J[a];case "i16":return Aa[a>>1];case "i32":ret\
urn L[a>>2];case "i64":return L[a>>2];case "float":return Ba[a>>2];case "double\
":return N[a>>3];default:F("invalid type for setValue: "+b)}return r};var Ca=1,\
O=2,Da=4;Module.ALLOC_NORMAL=0;Module.ALLOC_STACK=Ca;Module.ALLOC_STATIC=O;Modu\
le.ALLOC_DYNAMIC=3;Module.ALLOC_NONE=Da; function P(a,b,c,d){var e,f;"number"==\
=typeof a?(e=n,f=a):(e=t,f=a.length);var g="string"===typeof b?b:r,c=c==Da?d:[E\
a,na,oa,pa][c===k?O:c](Math.max(f,g?1:b.length));if(e){d=c;z(0==(c&3));for(a=c+\
(f&-4);d<a;d+=4)L[d>>2]=0;for(a=c+f;d<a;)J[d++|0]=0;return c}if("i8"===g)return\
a.subarray||a.slice?Q.set(a,c):Q.set(new Uint8Array(a),c),c;for(var d=0,i,l;d<\
f;){var y=a[d];"function"===typeof y&&(y=sa.U(y));e=g||b[d];0===e?d++:("i64"==e\
&&(e="i32"),za(c+d,y,e),l!==e&&(i=ja(e),l=e),d+=i)}return c} Module.allocate=P;\
function I(a,b){for(var c=t,d,e=0;;){d=Q[a+e|0];if(128<=d)c=n;else if(0==d&&!b)\
break;e++;if(b&&e==b)break}b||(b=e);var f="";if(!c){for(;0<b;)d=String.fromChar\
Code.apply(String,Q.subarray(a,a+Math.min(b,1024))),f=f?f+d:d,a+=1024,b-=1024;r\
eturn f}c=new ma;for(e=0;e<b;e++)d=Q[a+e|0],f+=c.B(d);return f}Module.Pointer_s\
tringify=I;var J,Q,Aa,Fa,L,Ga,Ba,N,Ha=0,C=0,Ia=0,w=0,Ja=0,Ka=0,D=0,qa=Module.TO\
TAL_MEMORY||134217728; z(!!Int32Array&&!!Float64Array&&!!(new Int32Array(1)).su\
barray&&!!(new Int32Array(1)).set,"Cannot fallback to non-typed array case: Cod\
e is too specialized");var R=new ArrayBuffer(qa);J=new Int8Array(R);Aa=new Int1\
6Array(R);L=new Int32Array(R);Q=new Uint8Array(R);Fa=new Uint16Array(R);Ga=new \
Uint32Array(R);Ba=new Float32Array(R);N=new Float64Array(R);L[0]=255;z(255===Q[\
0]&&0===Q[3],"Typed arrays 2 must be run on a little-endian system");Module.HEA\
P=k;Module.HEAP8=J;Module.HEAP16=Aa; Module.HEAP32=L;Module.HEAPU8=Q;Module.HEA\
PU16=Fa;Module.HEAPU32=Ga;Module.HEAPF32=Ba;Module.HEAPF64=N;function La(a){for\
(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.l;"numb\
er"===typeof c?b.i===k?ka("v",c):ka("vi",c,[b.i]):c(b.i===k?r:b.i)}}}var Ma=[],\
Na=[],Oa=[],Pa=t;function S(a,b,c){a=(new ma).O(a);c&&(a.length=c);b||a.push(0)\
;return a}Module.intArrayFromString=S;Module.intArrayToString=function(a){for(v\
ar b=[],c=0;c<a.length;c++){var d=a[c];255<d&&(d&=255);b.push(String.fromCharCo\
de(d))}return b.join("")}; function xa(a,b,c){a=S(a,c);for(c=0;c<a.length;)J[b+\
c|0]=a[c],c+=1}Module.writeStringToMemory=xa;function ya(a,b){for(var c=0;c<a.l\
ength;c++)J[b+c|0]=a[c]}Module.writeArrayToMemory=ya;function Qa(a,b){return 0<\
=a?a:32>=b?2*Math.abs(1<<b-1)+a:Math.pow(2,b)+a}function Ra(a,b){if(0>=a)return\
a;var c=32>=b?Math.abs(1<<b-1):Math.pow(2,b-1);if(a>=c&&(32>=b||a>c))a=-2*c+a;\
return a}Math.imul||(Math.imul=function(a,b){var c=a&65535,d=b&65535;return c*d\
+((a>>>16)*d+c*(b>>>16)<<16)|0}); var T=0,Sa={},Ta=t,Ua=r;function Va(a){T++;Mo\
dule.monitorRunDependencies&&Module.monitorRunDependencies(T);a?(z(!Sa[a]),Sa[a\
]=1):Module.g("warning: run dependency added without ID")}Module.addRunDependen\
cy=Va;function Wa(a){T--;Module.monitorRunDependencies&&Module.monitorRunDepend\
encies(T);a?(z(Sa[a]),delete Sa[a]):Module.g("warning: run dependency removed w\
ithout ID");0==T&&(Ua!==r&&(clearInterval(Ua),Ua=r),!Ta&&Xa&&Ya([].concat(Modul\
e.arguments)))}Module.removeRunDependency=Wa; Module.preloadedImages={};Module.\
preloadedAudios={};Ha=8;C=Ha+14192; P([111,107,46,0,0,0,0,0,12,0,8,0,140,0,8,0,\
76,0,8,0,204,0,8,0,44,0,8,0,172,0,8,0,108,0,8,0,236,0,8,0,28,0,8,0,156,0,8,0,92\
,0,8,0,220,0,8,0,60,0,8,0,188,0,8,0,124,0,8,0,252,0,8,0,2,0,8,0,130,0,8,0,66,0,\
8,0,194,0,8,0,34,0,8,0,162,0,8,0,98,0,8,0,226,0,8,0,18,0,8,0,146,0,8,0,82,0,8,0\
,210,0,8,0,50,0,8,0,178,0,8,0,114,0,8,0,242,0,8,0,10,0,8,0,138,0,8,0,74,0,8,0,2\
02,0,8,0,42,0,8,0,170,0,8,0,106,0,8,0,234,0,8,0,26,0,8,0,154,0,8,0,90,0,8,0,218\
,0,8,0,58,0,8,0,186,0,8,0,122,0,8,0,250,0,8,0,6,0,8,0,134,0,8,0, 70,0,8,0,198,0\
,8,0,38,0,8,0,166,0,8,0,102,0,8,0,230,0,8,0,22,0,8,0,150,0,8,0,86,0,8,0,214,0,8\
,0,54,0,8,0,182,0,8,0,118,0,8,0,246,0,8,0,14,0,8,0,142,0,8,0,78,0,8,0,206,0,8,0\
,46,0,8,0,174,0,8,0,110,0,8,0,238,0,8,0,30,0,8,0,158,0,8,0,94,0,8,0,222,0,8,0,6\
2,0,8,0,190,0,8,0,126,0,8,0,254,0,8,0,1,0,8,0,129,0,8,0,65,0,8,0,193,0,8,0,33,0\
,8,0,161,0,8,0,97,0,8,0,225,0,8,0,17,0,8,0,145,0,8,0,81,0,8,0,209,0,8,0,49,0,8,\
0,177,0,8,0,113,0,8,0,241,0,8,0,9,0,8,0,137,0,8,0,73,0,8,0,201,0,8,0,41,0,8,0,1\
69,0,8,0,105, 0,8,0,233,0,8,0,25,0,8,0,153,0,8,0,89,0,8,0,217,0,8,0,57,0,8,0,18\
5,0,8,0,121,0,8,0,249,0,8,0,5,0,8,0,133,0,8,0,69,0,8,0,197,0,8,0,37,0,8,0,165,0\
,8,0,101,0,8,0,229,0,8,0,21,0,8,0,149,0,8,0,85,0,8,0,213,0,8,0,53,0,8,0,181,0,8\
,0,117,0,8,0,245,0,8,0,13,0,8,0,141,0,8,0,77,0,8,0,205,0,8,0,45,0,8,0,173,0,8,0\
,109,0,8,0,237,0,8,0,29,0,8,0,157,0,8,0,93,0,8,0,221,0,8,0,61,0,8,0,189,0,8,0,1\
25,0,8,0,253,0,8,0,19,0,9,0,19,1,9,0,147,0,9,0,147,1,9,0,83,0,9,0,83,1,9,0,211,\
0,9,0,211,1,9,0,51,0,9,0,51,1,9,0,179,0,9, 0,179,1,9,0,115,0,9,0,115,1,9,0,243,\
0,9,0,243,1,9,0,11,0,9,0,11,1,9,0,139,0,9,0,139,1,9,0,75,0,9,0,75,1,9,0,203,0,9\
,0,203,1,9,0,43,0,9,0,43,1,9,0,171,0,9,0,171,1,9,0,107,0,9,0,107,1,9,0,235,0,9,\
0,235,1,9,0,27,0,9,0,27,1,9,0,155,0,9,0,155,1,9,0,91,0,9,0,91,1,9,0,219,0,9,0,2\
19,1,9,0,59,0,9,0,59,1,9,0,187,0,9,0,187,1,9,0,123,0,9,0,123,1,9,0,251,0,9,0,25\
1,1,9,0,7,0,9,0,7,1,9,0,135,0,9,0,135,1,9,0,71,0,9,0,71,1,9,0,199,0,9,0,199,1,9\
,0,39,0,9,0,39,1,9,0,167,0,9,0,167,1,9,0,103,0,9,0,103,1,9,0,231,0,9,0, 231,1,9\
,0,23,0,9,0,23,1,9,0,151,0,9,0,151,1,9,0,87,0,9,0,87,1,9,0,215,0,9,0,215,1,9,0,\
55,0,9,0,55,1,9,0,183,0,9,0,183,1,9,0,119,0,9,0,119,1,9,0,247,0,9,0,247,1,9,0,1\
5,0,9,0,15,1,9,0,143,0,9,0,143,1,9,0,79,0,9,0,79,1,9,0,207,0,9,0,207,1,9,0,47,0\
,9,0,47,1,9,0,175,0,9,0,175,1,9,0,111,0,9,0,111,1,9,0,239,0,9,0,239,1,9,0,31,0,\
9,0,31,1,9,0,159,0,9,0,159,1,9,0,95,0,9,0,95,1,9,0,223,0,9,0,223,1,9,0,63,0,9,0\
,63,1,9,0,191,0,9,0,191,1,9,0,127,0,9,0,127,1,9,0,255,0,9,0,255,1,9,0,0,0,7,0,6\
4,0,7,0,32,0,7,0,96, 0,7,0,16,0,7,0,80,0,7,0,48,0,7,0,112,0,7,0,8,0,7,0,72,0,7,\
0,40,0,7,0,104,0,7,0,24,0,7,0,88,0,7,0,56,0,7,0,120,0,7,0,4,0,7,0,68,0,7,0,36,0\
,7,0,100,0,7,0,20,0,7,0,84,0,7,0,52,0,7,0,116,0,7,0,3,0,8,0,131,0,8,0,67,0,8,0,\
195,0,8,0,35,0,8,0,163,0,8,0,99,0,8,0,227,0,8,0,16,0,0,0,16,15,0,0,1,1,0,0,30,1\
,0,0,15,0,0,0,0,0,0,0,0,0,5,0,16,0,5,0,8,0,5,0,24,0,5,0,4,0,5,0,20,0,5,0,12,0,5\
,0,28,0,5,0,2,0,5,0,18,0,5,0,10,0,5,0,26,0,5,0,6,0,5,0,22,0,5,0,14,0,5,0,30,0,5\
,0,1,0,5,0,17,0,5,0,9,0,5,0,25,0,5,0,5,0,5,0,21, 0,5,0,13,0,5,0,29,0,5,0,3,0,5,\
0,19,0,5,0,11,0,5,0,27,0,5,0,7,0,5,0,23,0,5,0,168,4,0,0,136,15,0,0,0,0,0,0,30,0\
,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,19,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0\
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,16,0,16,0,16,0,16,0,16,0,16,0,16,\
0,17,0,17,0,17,0,17,0,18,0,18,0,18,0,18,0,19,0,19,0,19,0,19,0,20,0,20,0,20,0,20\
,0,21,0,21,0,21,0,21,0,16,0,73,0,195,0,0,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,\
0,13,0,15,0,17,0,19,0,23,0,27,0,31,0,35,0,43,0,51,0,59,0,67,0,83,0,99,0,115, 0,\
131,0,163,0,195,0,227,0,2,1,0,0,0,0,0,0,16,0,16,0,16,0,16,0,17,0,17,0,18,0,18,0\
,19,0,19,0,20,0,20,0,21,0,21,0,22,0,22,0,23,0,23,0,24,0,24,0,25,0,25,0,26,0,26,\
0,27,0,27,0,28,0,28,0,29,0,29,0,64,0,64,0,1,0,2,0,3,0,4,0,5,0,7,0,9,0,13,0,17,0\
,25,0,33,0,49,0,65,0,97,0,129,0,193,0,1,1,129,1,1,2,1,3,1,4,1,6,1,8,1,12,1,16,1\
,24,1,32,1,48,1,64,1,96,0,0,0,0,16,0,17,0,18,0,0,0,8,0,7,0,9,0,6,0,10,0,5,0,11,\
0,4,0,12,0,3,0,13,0,2,0,14,0,1,0,15,0,0,0,96,7,0,0,0,8,80,0,0,8,16,0,20,8,115,0\
,18,7,31,0,0,8,112,0,0,8, 48,0,0,9,192,0,16,7,10,0,0,8,96,0,0,8,32,0,0,9,160,0,\
0,8,0,0,0,8,128,0,0,8,64,0,0,9,224,0,16,7,6,0,0,8,88,0,0,8,24,0,0,9,144,0,19,7,\
59,0,0,8,120,0,0,8,56,0,0,9,208,0,17,7,17,0,0,8,104,0,0,8,40,0,0,9,176,0,0,8,8,\
0,0,8,136,0,0,8,72,0,0,9,240,0,16,7,4,0,0,8,84,0,0,8,20,0,21,8,227,0,19,7,43,0,\
0,8,116,0,0,8,52,0,0,9,200,0,17,7,13,0,0,8,100,0,0,8,36,0,0,9,168,0,0,8,4,0,0,8\
,132,0,0,8,68,0,0,9,232,0,16,7,8,0,0,8,92,0,0,8,28,0,0,9,152,0,20,7,83,0,0,8,12\
4,0,0,8,60,0,0,9,216,0,18,7,23,0,0,8,108,0,0,8,44,0,0, 9,184,0,0,8,12,0,0,8,140\
,0,0,8,76,0,0,9,248,0,16,7,3,0,0,8,82,0,0,8,18,0,21,8,163,0,19,7,35,0,0,8,114,0\
,0,8,50,0,0,9,196,0,17,7,11,0,0,8,98,0,0,8,34,0,0,9,164,0,0,8,2,0,0,8,130,0,0,8\
,66,0,0,9,228,0,16,7,7,0,0,8,90,0,0,8,26,0,0,9,148,0,20,7,67,0,0,8,122,0,0,8,58\
,0,0,9,212,0,18,7,19,0,0,8,106,0,0,8,42,0,0,9,180,0,0,8,10,0,0,8,138,0,0,8,74,0\
,0,9,244,0,16,7,5,0,0,8,86,0,0,8,22,0,64,8,0,0,19,7,51,0,0,8,118,0,0,8,54,0,0,9\
,204,0,17,7,15,0,0,8,102,0,0,8,38,0,0,9,172,0,0,8,6,0,0,8,134,0,0,8,70,0,0,9,23\
6,0, 16,7,9,0,0,8,94,0,0,8,30,0,0,9,156,0,20,7,99,0,0,8,126,0,0,8,62,0,0,9,220,\
0,18,7,27,0,0,8,110,0,0,8,46,0,0,9,188,0,0,8,14,0,0,8,142,0,0,8,78,0,0,9,252,0,\
96,7,0,0,0,8,81,0,0,8,17,0,21,8,131,0,18,7,31,0,0,8,113,0,0,8,49,0,0,9,194,0,16\
,7,10,0,0,8,97,0,0,8,33,0,0,9,162,0,0,8,1,0,0,8,129,0,0,8,65,0,0,9,226,0,16,7,6\
,0,0,8,89,0,0,8,25,0,0,9,146,0,19,7,59,0,0,8,121,0,0,8,57,0,0,9,210,0,17,7,17,0\
,0,8,105,0,0,8,41,0,0,9,178,0,0,8,9,0,0,8,137,0,0,8,73,0,0,9,242,0,16,7,4,0,0,8\
,85,0,0,8,21,0,16,8,2,1,19,7,43, 0,0,8,117,0,0,8,53,0,0,9,202,0,17,7,13,0,0,8,1\
01,0,0,8,37,0,0,9,170,0,0,8,5,0,0,8,133,0,0,8,69,0,0,9,234,0,16,7,8,0,0,8,93,0,\
0,8,29,0,0,9,154,0,20,7,83,0,0,8,125,0,0,8,61,0,0,9,218,0,18,7,23,0,0,8,109,0,0\
,8,45,0,0,9,186,0,0,8,13,0,0,8,141,0,0,8,77,0,0,9,250,0,16,7,3,0,0,8,83,0,0,8,1\
9,0,21,8,195,0,19,7,35,0,0,8,115,0,0,8,51,0,0,9,198,0,17,7,11,0,0,8,99,0,0,8,35\
,0,0,9,166,0,0,8,3,0,0,8,131,0,0,8,67,0,0,9,230,0,16,7,7,0,0,8,91,0,0,8,27,0,0,\
9,150,0,20,7,67,0,0,8,123,0,0,8,59,0,0,9,214,0,18,7,19,0,0,8, 107,0,0,8,43,0,0,\
9,182,0,0,8,11,0,0,8,139,0,0,8,75,0,0,9,246,0,16,7,5,0,0,8,87,0,0,8,23,0,64,8,0\
,0,19,7,51,0,0,8,119,0,0,8,55,0,0,9,206,0,17,7,15,0,0,8,103,0,0,8,39,0,0,9,174,\
0,0,8,7,0,0,8,135,0,0,8,71,0,0,9,238,0,16,7,9,0,0,8,95,0,0,8,31,0,0,9,158,0,20,\
7,99,0,0,8,127,0,0,8,63,0,0,9,222,0,18,7,27,0,0,8,111,0,0,8,47,0,0,9,190,0,0,8,\
15,0,0,8,143,0,0,8,79,0,0,9,254,0,96,7,0,0,0,8,80,0,0,8,16,0,20,8,115,0,18,7,31\
,0,0,8,112,0,0,8,48,0,0,9,193,0,16,7,10,0,0,8,96,0,0,8,32,0,0,9,161,0,0,8,0,0,0\
,8,128,0,0, 8,64,0,0,9,225,0,16,7,6,0,0,8,88,0,0,8,24,0,0,9,145,0,19,7,59,0,0,8\
,120,0,0,8,56,0,0,9,209,0,17,7,17,0,0,8,104,0,0,8,40,0,0,9,177,0,0,8,8,0,0,8,13\
6,0,0,8,72,0,0,9,241,0,16,7,4,0,0,8,84,0,0,8,20,0,21,8,227,0,19,7,43,0,0,8,116,\
0,0,8,52,0,0,9,201,0,17,7,13,0,0,8,100,0,0,8,36,0,0,9,169,0,0,8,4,0,0,8,132,0,0\
,8,68,0,0,9,233,0,16,7,8,0,0,8,92,0,0,8,28,0,0,9,153,0,20,7,83,0,0,8,124,0,0,8,\
60,0,0,9,217,0,18,7,23,0,0,8,108,0,0,8,44,0,0,9,185,0,0,8,12,0,0,8,140,0,0,8,76\
,0,0,9,249,0,16,7,3,0,0,8,82,0,0,8,18,0, 21,8,163,0,19,7,35,0,0,8,114,0,0,8,50,\
0,0,9,197,0,17,7,11,0,0,8,98,0,0,8,34,0,0,9,165,0,0,8,2,0,0,8,130,0,0,8,66,0,0,\
9,229,0,16,7,7,0,0,8,90,0,0,8,26,0,0,9,149,0,20,7,67,0,0,8,122,0,0,8,58,0,0,9,2\
13,0,18,7,19,0,0,8,106,0,0,8,42,0,0,9,181,0,0,8,10,0,0,8,138,0,0,8,74,0,0,9,245\
,0,16,7,5,0,0,8,86,0,0,8,22,0,64,8,0,0,19,7,51,0,0,8,118,0,0,8,54,0,0,9,205,0,1\
7,7,15,0,0,8,102,0,0,8,38,0,0,9,173,0,0,8,6,0,0,8,134,0,0,8,70,0,0,9,237,0,16,7\
,9,0,0,8,94,0,0,8,30,0,0,9,157,0,20,7,99,0,0,8,126,0,0,8,62,0,0,9,221, 0,18,7,2\
7,0,0,8,110,0,0,8,46,0,0,9,189,0,0,8,14,0,0,8,142,0,0,8,78,0,0,9,253,0,96,7,0,0\
,0,8,81,0,0,8,17,0,21,8,131,0,18,7,31,0,0,8,113,0,0,8,49,0,0,9,195,0,16,7,10,0,\
0,8,97,0,0,8,33,0,0,9,163,0,0,8,1,0,0,8,129,0,0,8,65,0,0,9,227,0,16,7,6,0,0,8,8\
9,0,0,8,25,0,0,9,147,0,19,7,59,0,0,8,121,0,0,8,57,0,0,9,211,0,17,7,17,0,0,8,105\
,0,0,8,41,0,0,9,179,0,0,8,9,0,0,8,137,0,0,8,73,0,0,9,243,0,16,7,4,0,0,8,85,0,0,\
8,21,0,16,8,2,1,19,7,43,0,0,8,117,0,0,8,53,0,0,9,203,0,17,7,13,0,0,8,101,0,0,8,\
37,0,0,9,171,0,0,8, 5,0,0,8,133,0,0,8,69,0,0,9,235,0,16,7,8,0,0,8,93,0,0,8,29,0\
,0,9,155,0,20,7,83,0,0,8,125,0,0,8,61,0,0,9,219,0,18,7,23,0,0,8,109,0,0,8,45,0,\
0,9,187,0,0,8,13,0,0,8,141,0,0,8,77,0,0,9,251,0,16,7,3,0,0,8,83,0,0,8,19,0,21,8\
,195,0,19,7,35,0,0,8,115,0,0,8,51,0,0,9,199,0,17,7,11,0,0,8,99,0,0,8,35,0,0,9,1\
67,0,0,8,3,0,0,8,131,0,0,8,67,0,0,9,231,0,16,7,7,0,0,8,91,0,0,8,27,0,0,9,151,0,\
20,7,67,0,0,8,123,0,0,8,59,0,0,9,215,0,18,7,19,0,0,8,107,0,0,8,43,0,0,9,183,0,0\
,8,11,0,0,8,139,0,0,8,75,0,0,9,247,0,16,7,5,0,0, 8,87,0,0,8,23,0,64,8,0,0,19,7,\
51,0,0,8,119,0,0,8,55,0,0,9,207,0,17,7,15,0,0,8,103,0,0,8,39,0,0,9,175,0,0,8,7,\
0,0,8,135,0,0,8,71,0,0,9,239,0,16,7,9,0,0,8,95,0,0,8,31,0,0,9,159,0,20,7,99,0,0\
,8,127,0,0,8,63,0,0,9,223,0,18,7,27,0,0,8,111,0,0,8,47,0,0,9,191,0,0,8,15,0,0,8\
,143,0,0,8,79,0,0,9,255,0,16,5,1,0,23,5,1,1,19,5,17,0,27,5,1,16,17,5,5,0,25,5,1\
,4,21,5,65,0,29,5,1,64,16,5,3,0,24,5,1,2,20,5,33,0,28,5,1,32,18,5,9,0,26,5,1,8,\
22,5,129,0,64,5,0,0,16,5,2,0,23,5,129,1,19,5,25,0,27,5,1,24,17,5,7,0,25,5,1, 6,\
21,5,97,0,29,5,1,96,16,5,4,0,24,5,1,3,20,5,49,0,28,5,1,48,18,5,13,0,26,5,1,12,2\
2,5,193,0,64,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,3,0,0,0,3,0\
,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,5,0,0,0,5,\
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,2,0,0,0,2\
,0,0,0,3,0,0,0,3,0,0,0,4,0,0,0,4,0,0,0,5,0,0,0,5,0,0,0,6,0,0,0,6,0,0,0,7,0,0,0,\
7,0,0,0,8,0,0,0,8,0,0,0,9, 0,0,0,9,0,0,0,10,0,0,0,10,0,0,0,11,0,0,0,11,0,0,0,12\
,0,0,0,12,0,0,0,13,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,2,0,0,0,3,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,150\
,48,7,119,44,97,14,238,186,81,9,153,25,196,109,7,143,244,106,112,53,165,99,233,\
163,149,100,158,50,136,219,14,164,184,220,121,30,233,213,224,136,217,210,151,43\
,76,182,9,189,124,177,126,7,45,184,231,145,29,191,144, 100,16,183,29,242,32,176\
,106,72,113,185,243,222,65,190,132,125,212,218,26,235,228,221,109,81,181,212,24\
4,199,133,211,131,86,152,108,19,192,168,107,100,122,249,98,253,236,201,101,138,\
79,92,1,20,217,108,6,99,99,61,15,250,245,13,8,141,200,32,110,59,94,16,105,76,22\
8,65,96,213,114,113,103,162,209,228,3,60,71,212,4,75,253,133,13,210,107,181,10,\
165,250,168,181,53,108,152,178,66,214,201,187,219,64,249,188,172,227,108,216,50\
,117,92,223,69,207,13,214,220,89,61,209,171,172,48,217,38,58,0,222,81,128,81,21\
5,200, 22,97,208,191,181,244,180,33,35,196,179,86,153,149,186,207,15,165,189,18\
4,158,184,2,40,8,136,5,95,178,217,12,198,36,233,11,177,135,124,111,47,17,76,104\
,88,171,29,97,193,61,45,102,182,144,65,220,118,6,113,219,1,188,32,210,152,42,16\
,213,239,137,133,177,113,31,181,182,6,165,228,191,159,51,212,184,232,162,201,7,\
120,52,249,0,15,142,168,9,150,24,152,14,225,187,13,106,127,45,61,109,8,151,108,\
100,145,1,92,99,230,244,81,107,107,98,97,108,28,216,48,101,133,78,0,98,242,237,\
149,6,108,123,165,1,27,193,244,8,130, 87,196,15,245,198,217,176,101,80,233,183,\
18,234,184,190,139,124,136,185,252,223,29,221,98,73,45,218,21,243,124,211,140,1\
01,76,212,251,88,97,178,77,206,81,181,58,116,0,188,163,226,48,187,212,65,165,22\
3,74,215,149,216,61,109,196,209,164,251,244,214,211,106,233,105,67,252,217,110,\
52,70,136,103,173,208,184,96,218,115,45,4,68,229,29,3,51,95,76,10,170,201,124,1\
3,221,60,113,5,80,170,65,2,39,16,16,11,190,134,32,12,201,37,181,104,87,179,133,\
111,32,9,212,102,185,159,228,97,206,14,249,222,94,152,201,217,41, 34,152,208,17\
6,180,168,215,199,23,61,179,89,129,13,180,46,59,92,189,183,173,108,186,192,32,1\
31,184,237,182,179,191,154,12,226,182,3,154,210,177,116,57,71,213,234,175,119,2\
10,157,21,38,219,4,131,22,220,115,18,11,99,227,132,59,100,148,62,106,109,13,168\
,90,106,122,11,207,14,228,157,255,9,147,39,174,0,10,177,158,7,125,68,147,15,240\
,210,163,8,135,104,242,1,30,254,194,6,105,93,87,98,247,203,103,101,128,113,54,1\
08,25,231,6,107,110,118,27,212,254,224,43,211,137,90,122,218,16,204,74,221,103,\
111,223,185,249, 249,239,190,142,67,190,183,23,213,142,176,96,232,163,214,214,1\
26,147,209,161,196,194,216,56,82,242,223,79,241,103,187,209,103,87,188,166,221,\
6,181,63,75,54,178,72,218,43,13,216,76,27,10,175,246,74,3,54,96,122,4,65,195,23\
9,96,223,85,223,103,168,239,142,110,49,121,190,105,70,140,179,97,203,26,131,102\
,188,160,210,111,37,54,226,104,82,149,119,12,204,3,71,11,187,185,22,2,34,47,38,\
5,85,190,59,186,197,40,11,189,178,146,90,180,43,4,106,179,92,167,255,215,194,49\
,207,208,181,139,158,217,44,29,174,222,91,176, 194,100,155,38,242,99,236,156,16\
3,106,117,10,147,109,2,169,6,9,156,63,54,14,235,133,103,7,114,19,87,0,5,130,74,\
191,149,20,122,184,226,174,43,177,123,56,27,182,12,155,142,210,146,13,190,213,2\
29,183,239,220,124,33,223,219,11,212,210,211,134,66,226,212,241,248,179,221,104\
,110,131,218,31,205,22,190,129,91,38,185,246,225,119,176,111,119,71,183,24,230,\
90,8,136,112,106,15,255,202,59,6,102,92,11,1,17,255,158,101,143,105,174,98,248,\
211,255,107,97,69,207,108,22,120,226,10,160,238,210,13,215,84,131,4,78,194, 179\
,3,57,97,38,103,167,247,22,96,208,77,71,105,73,219,119,110,62,74,106,209,174,22\
0,90,214,217,102,11,223,64,240,59,216,55,83,174,188,169,197,158,187,222,127,207\
,178,71,233,255,181,48,28,242,189,189,138,194,186,202,48,147,179,83,166,163,180\
,36,5,54,208,186,147,6,215,205,41,87,222,84,191,103,217,35,46,122,102,179,184,7\
4,97,196,2,27,104,93,148,43,111,42,55,190,11,180,161,142,12,195,27,223,5,90,141\
,239,2,45,0,0,0,0,65,49,27,25,130,98,54,50,195,83,45,43,4,197,108,100,69,244,11\
9,125,134,167,90,86,199, 150,65,79,8,138,217,200,73,187,194,209,138,232,239,250\
,203,217,244,227,12,79,181,172,77,126,174,181,142,45,131,158,207,28,152,135,81,\
18,194,74,16,35,217,83,211,112,244,120,146,65,239,97,85,215,174,46,20,230,181,5\
5,215,181,152,28,150,132,131,5,89,152,27,130,24,169,0,155,219,250,45,176,154,20\
3,54,169,93,93,119,230,28,108,108,255,223,63,65,212,158,14,90,205,162,36,132,14\
9,227,21,159,140,32,70,178,167,97,119,169,190,166,225,232,241,231,208,243,232,3\
6,131,222,195,101,178,197,218,170,174,93,93,235,159, 70,68,40,204,107,111,105,2\
53,112,118,174,107,49,57,239,90,42,32,44,9,7,11,109,56,28,18,243,54,70,223,178,\
7,93,198,113,84,112,237,48,101,107,244,247,243,42,187,182,194,49,162,117,145,28\
,137,52,160,7,144,251,188,159,23,186,141,132,14,121,222,169,37,56,239,178,60,25\
5,121,243,115,190,72,232,106,125,27,197,65,60,42,222,88,5,79,121,240,68,126,98,\
233,135,45,79,194,198,28,84,219,1,138,21,148,64,187,14,141,131,232,35,166,194,2\
17,56,191,13,197,160,56,76,244,187,33,143,167,150,10,206,150,141,19,9,0,204,92,\
72, 49,215,69,139,98,250,110,202,83,225,119,84,93,187,186,21,108,160,163,214,63\
,141,136,151,14,150,145,80,152,215,222,17,169,204,199,210,250,225,236,147,203,2\
50,245,92,215,98,114,29,230,121,107,222,181,84,64,159,132,79,89,88,18,14,22,25,\
35,21,15,218,112,56,36,155,65,35,61,167,107,253,101,230,90,230,124,37,9,203,87,\
100,56,208,78,163,174,145,1,226,159,138,24,33,204,167,51,96,253,188,42,175,225,\
36,173,238,208,63,180,45,131,18,159,108,178,9,134,171,36,72,201,234,21,83,208,4\
1,70,126,251,104,119,101,226,246, 121,63,47,183,72,36,54,116,27,9,29,53,42,18,4\
,242,188,83,75,179,141,72,82,112,222,101,121,49,239,126,96,254,243,230,231,191,\
194,253,254,124,145,208,213,61,160,203,204,250,54,138,131,187,7,145,154,120,84,\
188,177,57,101,167,168,75,152,131,59,10,169,152,34,201,250,181,9,136,203,174,16\
,79,93,239,95,14,108,244,70,205,63,217,109,140,14,194,116,67,18,90,243,2,35,65,\
234,193,112,108,193,128,65,119,216,71,215,54,151,6,230,45,142,197,181,0,165,132\
,132,27,188,26,138,65,113,91,187,90,104,152,232,119,67,217,217, 108,90,30,79,45\
,21,95,126,54,12,156,45,27,39,221,28,0,62,18,0,152,185,83,49,131,160,144,98,174\
,139,209,83,181,146,22,197,244,221,87,244,239,196,148,167,194,239,213,150,217,2\
46,233,188,7,174,168,141,28,183,107,222,49,156,42,239,42,133,237,121,107,202,17\
2,72,112,211,111,27,93,248,46,42,70,225,225,54,222,102,160,7,197,127,99,84,232,\
84,34,101,243,77,229,243,178,2,164,194,169,27,103,145,132,48,38,160,159,41,184,\
174,197,228,249,159,222,253,58,204,243,214,123,253,232,207,188,107,169,128,253,\
90,178,153,62, 9,159,178,127,56,132,171,176,36,28,44,241,21,7,53,50,70,42,30,11\
5,119,49,7,180,225,112,72,245,208,107,81,54,131,70,122,119,178,93,99,78,215,250\
,203,15,230,225,210,204,181,204,249,141,132,215,224,74,18,150,175,11,35,141,182\
,200,112,160,157,137,65,187,132,70,93,35,3,7,108,56,26,196,63,21,49,133,14,14,4\
0,66,152,79,103,3,169,84,126,192,250,121,85,129,203,98,76,31,197,56,129,94,244,\
35,152,157,167,14,179,220,150,21,170,27,0,84,229,90,49,79,252,153,98,98,215,216\
,83,121,206,23,79,225,73,86,126,250,80,149, 45,215,123,212,28,204,98,19,138,141\
,45,82,187,150,52,145,232,187,31,208,217,160,6,236,243,126,94,173,194,101,71,11\
0,145,72,108,47,160,83,117,232,54,18,58,169,7,9,35,106,84,36,8,43,101,63,17,228\
,121,167,150,165,72,188,143,102,27,145,164,39,42,138,189,224,188,203,242,161,14\
1,208,235,98,222,253,192,35,239,230,217,189,225,188,20,252,208,167,13,63,131,13\
8,38,126,178,145,63,185,36,208,112,248,21,203,105,59,70,230,66,122,119,253,91,1\
81,107,101,220,244,90,126,197,55,9,83,238,118,56,72,247,177,174,9,184,240, 159,\
18,161,51,204,63,138,114,253,36,147,0,0,0,0,55,106,194,1,110,212,132,3,89,190,7\
0,2,220,168,9,7,235,194,203,6,178,124,141,4,133,22,79,5,184,81,19,14,143,59,209\
,15,214,133,151,13,225,239,85,12,100,249,26,9,83,147,216,8,10,45,158,10,61,71,9\
2,11,112,163,38,28,71,201,228,29,30,119,162,31,41,29,96,30,172,11,47,27,155,97,\
237,26,194,223,171,24,245,181,105,25,200,242,53,18,255,152,247,19,166,38,177,17\
,145,76,115,16,20,90,60,21,35,48,254,20,122,142,184,22,77,228,122,23,224,70,77,\
56,215,44,143,57,142,146, 201,59,185,248,11,58,60,238,68,63,11,132,134,62,82,58\
,192,60,101,80,2,61,88,23,94,54,111,125,156,55,54,195,218,53,1,169,24,52,132,19\
1,87,49,179,213,149,48,234,107,211,50,221,1,17,51,144,229,107,36,167,143,169,37\
,254,49,239,39,201,91,45,38,76,77,98,35,123,39,160,34,34,153,230,32,21,243,36,3\
3,40,180,120,42,31,222,186,43,70,96,252,41,113,10,62,40,244,28,113,45,195,118,1\
79,44,154,200,245,46,173,162,55,47,192,141,154,112,247,231,88,113,174,89,30,115\
,153,51,220,114,28,37,147,119,43,79,81,118,114,241,23, 116,69,155,213,117,120,2\
20,137,126,79,182,75,127,22,8,13,125,33,98,207,124,164,116,128,121,147,30,66,12\
0,202,160,4,122,253,202,198,123,176,46,188,108,135,68,126,109,222,250,56,111,23\
3,144,250,110,108,134,181,107,91,236,119,106,2,82,49,104,53,56,243,105,8,127,17\
5,98,63,21,109,99,102,171,43,97,81,193,233,96,212,215,166,101,227,189,100,100,1\
86,3,34,102,141,105,224,103,32,203,215,72,23,161,21,73,78,31,83,75,121,117,145,\
74,252,99,222,79,203,9,28,78,146,183,90,76,165,221,152,77,152,154,196,70,175,24\
0,6, 71,246,78,64,69,193,36,130,68,68,50,205,65,115,88,15,64,42,230,73,66,29,14\
0,139,67,80,104,241,84,103,2,51,85,62,188,117,87,9,214,183,86,140,192,248,83,18\
7,170,58,82,226,20,124,80,213,126,190,81,232,57,226,90,223,83,32,91,134,237,102\
,89,177,135,164,88,52,145,235,93,3,251,41,92,90,69,111,94,109,47,173,95,128,27,\
53,225,183,113,247,224,238,207,177,226,217,165,115,227,92,179,60,230,107,217,25\
4,231,50,103,184,229,5,13,122,228,56,74,38,239,15,32,228,238,86,158,162,236,97,\
244,96,237,228,226,47,232,211,136, 237,233,138,54,171,235,189,92,105,234,240,18\
4,19,253,199,210,209,252,158,108,151,254,169,6,85,255,44,16,26,250,27,122,216,2\
51,66,196,158,249,117,174,92,248,72,233,0,243,127,131,194,242,38,61,132,240,17,\
87,70,241,148,65,9,244,163,43,203,245,250,149,141,247,205,255,79,246,96,93,120,\
217,87,55,186,216,14,137,252,218,57,227,62,219,188,245,113,222,139,159,179,223,\
210,33,245,221,229,75,55,220,216,12,107,215,239,102,169,214,182,216,239,212,129\
,178,45,213,4,164,98,208,51,206,160,209,106,112,230,211,93,26, 36,210,16,254,94\
,197,39,148,156,196,126,42,218,198,73,64,24,199,204,86,87,194,251,60,149,195,16\
2,130,211,193,149,232,17,192,168,175,77,203,159,197,143,202,198,123,201,200,241\
,17,11,201,116,7,68,204,67,109,134,205,26,211,192,207,45,185,2,206,64,150,175,1\
45,119,252,109,144,46,66,43,146,25,40,233,147,156,62,166,150,171,84,100,151,242\
,234,34,149,197,128,224,148,248,199,188,159,207,173,126,158,150,19,56,156,161,1\
21,250,157,36,111,181,152,19,5,119,153,74,187,49,155,125,209,243,154,48,53,137,\
141,7,95,75, 140,94,225,13,142,105,139,207,143,236,157,128,138,219,247,66,139,1\
30,73,4,137,181,35,198,136,136,100,154,131,191,14,88,130,230,176,30,128,209,218\
,220,129,84,204,147,132,99,166,81,133,58,24,23,135,13,114,213,134,160,208,226,1\
69,151,186,32,168,206,4,102,170,249,110,164,171,124,120,235,174,75,18,41,175,18\
,172,111,173,37,198,173,172,24,129,241,167,47,235,51,166,118,85,117,164,65,63,1\
83,165,196,41,248,160,243,67,58,161,170,253,124,163,157,151,190,162,208,115,196\
,181,231,25,6,180,190,167,64,182,137,205, 130,183,12,219,205,178,59,177,15,179,\
98,15,73,177,85,101,139,176,104,34,215,187,95,72,21,186,6,246,83,184,49,156,145\
,185,180,138,222,188,131,224,28,189,218,94,90,191,237,52,152,190,0,0,0,0,101,10\
3,188,184,139,200,9,170,238,175,181,18,87,151,98,143,50,240,222,55,220,95,107,3\
7,185,56,215,157,239,40,180,197,138,79,8,125,100,224,189,111,1,135,1,215,184,19\
1,214,74,221,216,106,242,51,119,223,224,86,16,99,88,159,87,25,80,250,48,165,232\
,20,159,16,250,113,248,172,66,200,192,123,223,173,167,199,103,67,8,114, 117,38,\
111,206,205,112,127,173,149,21,24,17,45,251,183,164,63,158,208,24,135,39,232,20\
7,26,66,143,115,162,172,32,198,176,201,71,122,8,62,175,50,160,91,200,142,24,181\
,103,59,10,208,0,135,178,105,56,80,47,12,95,236,151,226,240,89,133,135,151,229,\
61,209,135,134,101,180,224,58,221,90,79,143,207,63,40,51,119,134,16,228,234,227\
,119,88,82,13,216,237,64,104,191,81,248,161,248,43,240,196,159,151,72,42,48,34,\
90,79,87,158,226,246,111,73,127,147,8,245,199,125,167,64,213,24,192,252,109,78,\
208,159,53,43,183,35, 141,197,24,150,159,160,127,42,39,25,71,253,186,124,32,65,\
2,146,143,244,16,247,232,72,168,61,88,20,155,88,63,168,35,182,144,29,49,211,247\
,161,137,106,207,118,20,15,168,202,172,225,7,127,190,132,96,195,6,210,112,160,9\
4,183,23,28,230,89,184,169,244,60,223,21,76,133,231,194,209,224,128,126,105,14,\
47,203,123,107,72,119,195,162,15,13,203,199,104,177,115,41,199,4,97,76,160,184,\
217,245,152,111,68,144,255,211,252,126,80,102,238,27,55,218,86,77,39,185,14,40,\
64,5,182,198,239,176,164,163,136,12,28,26,176,219, 129,127,215,103,57,145,120,2\
10,43,244,31,110,147,3,247,38,59,102,144,154,131,136,63,47,145,237,88,147,41,84\
,96,68,180,49,7,248,12,223,168,77,30,186,207,241,166,236,223,146,254,137,184,46\
,70,103,23,155,84,2,112,39,236,187,72,240,113,222,47,76,201,48,128,249,219,85,2\
31,69,99,156,160,63,107,249,199,131,211,23,104,54,193,114,15,138,121,203,55,93,\
228,174,80,225,92,64,255,84,78,37,152,232,246,115,136,139,174,22,239,55,22,248,\
64,130,4,157,39,62,188,36,31,233,33,65,120,85,153,175,215,224,139,202,176,92,51\
, 59,182,89,237,94,209,229,85,176,126,80,71,213,25,236,255,108,33,59,98,9,70,13\
5,218,231,233,50,200,130,142,142,112,212,158,237,40,177,249,81,144,95,86,228,13\
0,58,49,88,58,131,9,143,167,230,110,51,31,8,193,134,13,109,166,58,181,164,225,6\
4,189,193,134,252,5,47,41,73,23,74,78,245,175,243,118,34,50,150,17,158,138,120,\
190,43,152,29,217,151,32,75,201,244,120,46,174,72,192,192,1,253,210,165,102,65,\
106,28,94,150,247,121,57,42,79,151,150,159,93,242,241,35,229,5,25,107,77,96,126\
,215,245,142,209,98,231,235,182, 222,95,82,142,9,194,55,233,181,122,217,70,0,10\
4,188,33,188,208,234,49,223,136,143,86,99,48,97,249,214,34,4,158,106,154,189,16\
6,189,7,216,193,1,191,54,110,180,173,83,9,8,21,154,78,114,29,255,41,206,165,17,\
134,123,183,116,225,199,15,205,217,16,146,168,190,172,42,70,17,25,56,35,118,165\
,128,117,102,198,216,16,1,122,96,254,174,207,114,155,201,115,202,34,241,164,87,\
71,150,24,239,169,57,173,253,204,94,17,69,6,238,77,118,99,137,241,206,141,38,68\
,220,232,65,248,100,81,121,47,249,52,30,147,65,218,177,38,83, 191,214,154,235,2\
33,198,249,179,140,161,69,11,98,14,240,25,7,105,76,161,190,81,155,60,219,54,39,\
132,53,153,146,150,80,254,46,46,153,185,84,38,252,222,232,158,18,113,93,140,119\
,22,225,52,206,46,54,169,171,73,138,17,69,230,63,3,32,129,131,187,118,145,224,2\
27,19,246,92,91,253,89,233,73,152,62,85,241,33,6,130,108,68,97,62,212,170,206,1\
39,198,207,169,55,126,56,65,127,214,93,38,195,110,179,137,118,124,214,238,202,1\
96,111,214,29,89,10,177,161,225,228,30,20,243,129,121,168,75,215,105,203,19,178\
,14,119,171, 92,161,194,185,57,198,126,1,128,254,169,156,229,153,21,36,11,54,16\
0,54,110,81,28,142,167,22,102,134,194,113,218,62,44,222,111,44,73,185,211,148,2\
40,129,4,9,149,230,184,177,123,73,13,163,30,46,177,27,72,62,210,67,45,89,110,25\
1,195,246,219,233,166,145,103,81,31,169,176,204,122,206,12,116,148,97,185,102,2\
41,6,5,222,0,0,0,0,119,7,48,150,238,14,97,44,153,9,81,186,7,109,196,25,112,106,\
244,143,233,99,165,53,158,100,149,163,14,219,136,50,121,220,184,164,224,213,233\
,30,151,210,217,136,9,182,76,43,126,177, 124,189,231,184,45,7,144,191,29,145,29\
,183,16,100,106,176,32,242,243,185,113,72,132,190,65,222,26,218,212,125,109,221\
,228,235,244,212,181,81,131,211,133,199,19,108,152,86,100,107,168,192,253,98,24\
9,122,138,101,201,236,20,1,92,79,99,6,108,217,250,15,61,99,141,8,13,245,59,110,\
32,200,76,105,16,94,213,96,65,228,162,103,113,114,60,3,228,209,75,4,212,71,210,\
13,133,253,165,10,181,107,53,181,168,250,66,178,152,108,219,187,201,214,172,188\
,249,64,50,216,108,227,69,223,92,117,220,214,13,207,171,209,61,89,38, 217,48,17\
2,81,222,0,58,200,215,81,128,191,208,97,22,33,180,244,181,86,179,196,35,207,186\
,149,153,184,189,165,15,40,2,184,158,95,5,136,8,198,12,217,178,177,11,233,36,47\
,111,124,135,88,104,76,17,193,97,29,171,182,102,45,61,118,220,65,144,1,219,113,\
6,152,210,32,188,239,213,16,42,113,177,133,137,6,182,181,31,159,191,228,165,232\
,184,212,51,120,7,201,162,15,0,249,52,150,9,168,142,225,14,152,24,127,106,13,18\
7,8,109,61,45,145,100,108,151,230,99,92,1,107,107,81,244,28,108,97,98,133,101,4\
8,216,242,98,0,78, 108,6,149,237,27,1,165,123,130,8,244,193,245,15,196,87,101,1\
76,217,198,18,183,233,80,139,190,184,234,252,185,136,124,98,221,29,223,21,218,4\
5,73,140,211,124,243,251,212,76,101,77,178,97,88,58,181,81,206,163,188,0,116,21\
2,187,48,226,74,223,165,65,61,216,149,215,164,209,196,109,211,214,244,251,67,10\
5,233,106,52,110,217,252,173,103,136,70,218,96,184,208,68,4,45,115,51,3,29,229,\
170,10,76,95,221,13,124,201,80,5,113,60,39,2,65,170,190,11,16,16,201,12,32,134,\
87,104,181,37,32,111,133,179,185,102,212,9,206, 97,228,159,94,222,249,14,41,217\
,201,152,176,208,152,34,199,215,168,180,89,179,61,23,46,180,13,129,183,189,92,5\
9,192,186,108,173,237,184,131,32,154,191,179,182,3,182,226,12,116,177,210,154,2\
34,213,71,57,157,210,119,175,4,219,38,21,115,220,22,131,227,99,11,18,148,100,59\
,132,13,109,106,62,122,106,90,168,228,14,207,11,147,9,255,157,10,0,174,39,125,7\
,158,177,240,15,147,68,135,8,163,210,30,1,242,104,105,6,194,254,247,98,87,93,12\
8,101,103,203,25,108,54,113,110,107,6,231,254,212,27,118,137,211,43,224,16, 218\
,122,90,103,221,74,204,249,185,223,111,142,190,239,249,23,183,190,67,96,176,142\
,213,214,214,163,232,161,209,147,126,56,216,194,196,79,223,242,82,209,187,103,2\
41,166,188,87,103,63,181,6,221,72,178,54,75,216,13,43,218,175,10,27,76,54,3,74,\
246,65,4,122,96,223,96,239,195,168,103,223,85,49,110,142,239,70,105,190,121,203\
,97,179,140,188,102,131,26,37,111,210,160,82,104,226,54,204,12,119,149,187,11,7\
1,3,34,2,22,185,85,5,38,47,197,186,59,190,178,189,11,40,43,180,90,146,92,179,10\
6,4,194,215,255,167,181, 208,207,49,44,217,158,139,91,222,174,29,155,100,194,17\
6,236,99,242,38,117,106,163,156,2,109,147,10,156,9,6,169,235,14,54,63,114,7,103\
,133,5,0,87,19,149,191,74,130,226,184,122,20,123,177,43,174,12,182,27,56,146,21\
0,142,155,229,213,190,13,124,220,239,183,11,219,223,33,134,211,210,212,241,212,\
226,66,104,221,179,248,31,218,131,110,129,190,22,205,246,185,38,91,111,176,119,\
225,24,183,71,119,136,8,90,230,255,15,106,112,102,6,59,202,17,1,11,92,143,101,1\
58,255,248,98,174,105,97,107,255,211,22,108,207,69,160, 10,226,120,215,13,210,2\
38,78,4,131,84,57,3,179,194,167,103,38,97,208,96,22,247,73,105,71,77,62,110,119\
,219,174,209,106,74,217,214,90,220,64,223,11,102,55,216,59,240,169,188,174,83,2\
22,187,158,197,71,178,207,127,48,181,255,233,189,189,242,28,202,186,194,138,83,\
179,147,48,36,180,163,166,186,208,54,5,205,215,6,147,84,222,87,41,35,217,103,19\
1,179,102,122,46,196,97,74,184,93,104,27,2,42,111,43,148,180,11,190,55,195,12,1\
42,161,90,5,223,27,45,2,239,141,0,0,0,0,25,27,49,65,50,54,98,130,43,45,83,195,1\
00,108, 197,4,125,119,244,69,86,90,167,134,79,65,150,199,200,217,138,8,209,194,\
187,73,250,239,232,138,227,244,217,203,172,181,79,12,181,174,126,77,158,131,45,\
142,135,152,28,207,74,194,18,81,83,217,35,16,120,244,112,211,97,239,65,146,46,1\
74,215,85,55,181,230,20,28,152,181,215,5,131,132,150,130,27,152,89,155,0,169,24\
,176,45,250,219,169,54,203,154,230,119,93,93,255,108,108,28,212,65,63,223,205,9\
0,14,158,149,132,36,162,140,159,21,227,167,178,70,32,190,169,119,97,241,232,225\
,166,232,243,208,231,195,222,131,36, 218,197,178,101,93,93,174,170,68,70,159,23\
5,111,107,204,40,118,112,253,105,57,49,107,174,32,42,90,239,11,7,9,44,18,28,56,\
109,223,70,54,243,198,93,7,178,237,112,84,113,244,107,101,48,187,42,243,247,162\
,49,194,182,137,28,145,117,144,7,160,52,23,159,188,251,14,132,141,186,37,169,22\
2,121,60,178,239,56,115,243,121,255,106,232,72,190,65,197,27,125,88,222,42,60,2\
40,121,79,5,233,98,126,68,194,79,45,135,219,84,28,198,148,21,138,1,141,14,187,6\
4,166,35,232,131,191,56,217,194,56,160,197,13,33,187,244,76,10,150, 167,143,19,\
141,150,206,92,204,0,9,69,215,49,72,110,250,98,139,119,225,83,202,186,187,93,84\
,163,160,108,21,136,141,63,214,145,150,14,151,222,215,152,80,199,204,169,17,236\
,225,250,210,245,250,203,147,114,98,215,92,107,121,230,29,64,84,181,222,89,79,1\
32,159,22,14,18,88,15,21,35,25,36,56,112,218,61,35,65,155,101,253,107,167,124,2\
30,90,230,87,203,9,37,78,208,56,100,1,145,174,163,24,138,159,226,51,167,204,33,\
42,188,253,96,173,36,225,175,180,63,208,238,159,18,131,45,134,9,178,108,201,72,\
36,171,208,83,21, 234,251,126,70,41,226,101,119,104,47,63,121,246,54,36,72,183,\
29,9,27,116,4,18,42,53,75,83,188,242,82,72,141,179,121,101,222,112,96,126,239,4\
9,231,230,243,254,254,253,194,191,213,208,145,124,204,203,160,61,131,138,54,250\
,154,145,7,187,177,188,84,120,168,167,101,57,59,131,152,75,34,152,169,10,9,181,\
250,201,16,174,203,136,95,239,93,79,70,244,108,14,109,217,63,205,116,194,14,140\
,243,90,18,67,234,65,35,2,193,108,112,193,216,119,65,128,151,54,215,71,142,45,2\
30,6,165,0,181,197,188,27,132,132,113,65,138, 26,104,90,187,91,67,119,232,152,9\
0,108,217,217,21,45,79,30,12,54,126,95,39,27,45,156,62,0,28,221,185,152,0,18,16\
0,131,49,83,139,174,98,144,146,181,83,209,221,244,197,22,196,239,244,87,239,194\
,167,148,246,217,150,213,174,7,188,233,183,28,141,168,156,49,222,107,133,42,239\
,42,202,107,121,237,211,112,72,172,248,93,27,111,225,70,42,46,102,222,54,225,12\
7,197,7,160,84,232,84,99,77,243,101,34,2,178,243,229,27,169,194,164,48,132,145,\
103,41,159,160,38,228,197,174,184,253,222,159,249,214,243,204,58,207,232, 253,1\
23,128,169,107,188,153,178,90,253,178,159,9,62,171,132,56,127,44,28,36,176,53,7\
,21,241,30,42,70,50,7,49,119,115,72,112,225,180,81,107,208,245,122,70,131,54,99\
,93,178,119,203,250,215,78,210,225,230,15,249,204,181,204,224,215,132,141,175,1\
50,18,74,182,141,35,11,157,160,112,200,132,187,65,137,3,35,93,70,26,56,108,7,49\
,21,63,196,40,14,14,133,103,79,152,66,126,84,169,3,85,121,250,192,76,98,203,129\
,129,56,197,31,152,35,244,94,179,14,167,157,170,21,150,220,229,84,0,27,252,79,4\
9,90,215,98,98,153,206, 121,83,216,73,225,79,23,80,250,126,86,123,215,45,149,98\
,204,28,212,45,141,138,19,52,150,187,82,31,187,232,145,6,160,217,208,94,126,243\
,236,71,101,194,173,108,72,145,110,117,83,160,47,58,18,54,232,35,9,7,169,8,36,8\
4,106,17,63,101,43,150,167,121,228,143,188,72,165].concat([164,145,27,102,189,1\
38,42,39,242,203,188,224,235,208,141,161,192,253,222,98,217,230,239,35,20,188,2\
25,189,13,167,208,252,38,138,131,63,63,145,178,126,112,208,36,185,105,203,21,24\
8,66,230,70,59,91,253,119,122,220,101,107,181,197,126, 90,244,238,83,9,55,247,7\
2,56,118,184,9,174,177,161,18,159,240,138,63,204,51,147,36,253,114,0,0,0,0,1,19\
4,106,55,3,132,212,110,2,70,190,89,7,9,168,220,6,203,194,235,4,141,124,178,5,79\
,22,133,14,19,81,184,15,209,59,143,13,151,133,214,12,85,239,225,9,26,249,100,8,\
216,147,83,10,158,45,10,11,92,71,61,28,38,163,112,29,228,201,71,31,162,119,30,3\
0,96,29,41,27,47,11,172,26,237,97,155,24,171,223,194,25,105,181,245,18,53,242,2\
00,19,247,152,255,17,177,38,166,16,115,76,145,21,60,90,20,20,254,48,35,22,184,1\
42, 122,23,122,228,77,56,77,70,224,57,143,44,215,59,201,146,142,58,11,248,185,6\
3,68,238,60,62,134,132,11,60,192,58,82,61,2,80,101,54,94,23,88,55,156,125,111,5\
3,218,195,54,52,24,169,1,49,87,191,132,48,149,213,179,50,211,107,234,51,17,1,22\
1,36,107,229,144,37,169,143,167,39,239,49,254,38,45,91,201,35,98,77,76,34,160,3\
9,123,32,230,153,34,33,36,243,21,42,120,180,40,43,186,222,31,41,252,96,70,40,62\
,10,113,45,113,28,244,44,179,118,195,46,245,200,154,47,55,162,173,112,154,141,1\
92,113,88,231,247,115,30,89,174, 114,220,51,153,119,147,37,28,118,81,79,43,116,\
23,241,114,117,213,155,69,126,137,220,120,127,75,182,79,125,13,8,22,124,207,98,\
33,121,128,116,164,120,66,30,147,122,4,160,202,123,198,202,253,108,188,46,176,1\
09,126,68,135,111,56,250,222,110,250,144,233,107,181,134,108,106,119,236,91,104\
,49,82,2,105,243,56,53,98,175,127,8,99,109,21,63,97,43,171,102,96,233,193,81,10\
1,166,215,212,100,100,189,227,102,34,3,186,103,224,105,141,72,215,203,32,73,21,\
161,23,75,83,31,78,74,145,117,121,79,222,99,252,78,28,9,203, 76,90,183,146,77,1\
52,221,165,70,196,154,152,71,6,240,175,69,64,78,246,68,130,36,193,65,205,50,68,\
64,15,88,115,66,73,230,42,67,139,140,29,84,241,104,80,85,51,2,103,87,117,188,62\
,86,183,214,9,83,248,192,140,82,58,170,187,80,124,20,226,81,190,126,213,90,226,\
57,232,91,32,83,223,89,102,237,134,88,164,135,177,93,235,145,52,92,41,251,3,94,\
111,69,90,95,173,47,109,225,53,27,128,224,247,113,183,226,177,207,238,227,115,1\
65,217,230,60,179,92,231,254,217,107,229,184,103,50,228,122,13,5,239,38,74,56,2\
38,228,32, 15,236,162,158,86,237,96,244,97,232,47,226,228,233,237,136,211,235,1\
71,54,138,234,105,92,189,253,19,184,240,252,209,210,199,254,151,108,158,255,85,\
6,169,250,26,16,44,251,216,122,27,249,158,196,66,248,92,174,117,243,0,233,72,24\
2,194,131,127,240,132,61,38,241,70,87,17,244,9,65,148,245,203,43,163,247,141,14\
9,250,246,79,255,205,217,120,93,96,216,186,55,87,218,252,137,14,219,62,227,57,2\
22,113,245,188,223,179,159,139,221,245,33,210,220,55,75,229,215,107,12,216,214,\
169,102,239,212,239,216,182,213,45,178, 129,208,98,164,4,209,160,206,51,211,230\
,112,106,210,36,26,93,197,94,254,16,196,156,148,39,198,218,42,126,199,24,64,73,\
194,87,86,204,195,149,60,251,193,211,130,162,192,17,232,149,203,77,175,168,202,\
143,197,159,200,201,123,198,201,11,17,241,204,68,7,116,205,134,109,67,207,192,2\
11,26,206,2,185,45,145,175,150,64,144,109,252,119,146,43,66,46,147,233,40,25,15\
0,166,62,156,151,100,84,171,149,34,234,242,148,224,128,197,159,188,199,248,158,\
126,173,207,156,56,19,150,157,250,121,161,152,181,111,36,153,119,5, 19,155,49,1\
87,74,154,243,209,125,141,137,53,48,140,75,95,7,142,13,225,94,143,207,139,105,1\
38,128,157,236,139,66,247,219,137,4,73,130,136,198,35,181,131,154,100,136,130,8\
8,14,191,128,30,176,230,129,220,218,209,132,147,204,84,133,81,166,99,135,23,24,\
58,134,213,114,13,169,226,208,160,168,32,186,151,170,102,4,206,171,164,110,249,\
174,235,120,124,175,41,18,75,173,111,172,18,172,173,198,37,167,241,129,24,166,5\
1,235,47,164,117,85,118,165,183,63,65,160,248,41,196,161,58,67,243,163,124,253,\
170,162,190,151, 157,181,196,115,208,180,6,25,231,182,64,167,190,183,130,205,13\
7,178,205,219,12,179,15,177,59,177,73,15,98,176,139,101,85,187,215,34,104,186,2\
1,72,95,184,83,246,6,185,145,156,49,188,222,138,180,189,28,224,131,191,90,94,21\
8,190,152,52,237,0,0,0,0,184,188,103,101,170,9,200,139,18,181,175,238,143,98,15\
1,87,55,222,240,50,37,107,95,220,157,215,56,185,197,180,40,239,125,8,79,138,111\
,189,224,100,215,1,135,1,74,214,191,184,242,106,216,221,224,223,119,51,88,99,16\
,86,80,25,87,159,232,165,48,250,250,16,159,20, 66,172,248,113,223,123,192,200,1\
03,199,167,173,117,114,8,67,205,206,111,38,149,173,127,112,45,17,24,21,63,164,1\
83,251,135,24,208,158,26,207,232,39,162,115,143,66,176,198,32,172,8,122,71,201,\
160,50,175,62,24,142,200,91,10,59,103,181,178,135,0,208,47,80,56,105,151,236,95\
,12,133,89,240,226,61,229,151,135,101,134,135,209,221,58,224,180,207,143,79,90,\
119,51,40,63,234,228,16,134,82,88,119,227,64,237,216,13,248,81,191,104,240,43,2\
48,161,72,151,159,196,90,34,48,42,226,158,87,79,127,73,111,246,199,245,8,147, 2\
13,64,167,125,109,252,192,24,53,159,208,78,141,35,183,43,159,150,24,197,39,42,1\
27,160,186,253,71,25,2,65,32,124,16,244,143,146,168,72,232,247,155,20,88,61,35,\
168,63,88,49,29,144,182,137,161,247,211,20,118,207,106,172,202,168,15,190,127,7\
,225,6,195,96,132,94,160,112,210,230,28,23,183,244,169,184,89,76,21,223,60,209,\
194,231,133,105,126,128,224,123,203,47,14,195,119,72,107,203,13,15,162,115,177,\
104,199,97,4,199,41,217,184,160,76,68,111,152,245,252,211,255,144,238,102,80,12\
6,86,218,55,27,14,185,39,77, 182,5,64,40,164,176,239,198,28,12,136,163,129,219,\
176,26,57,103,215,127,43,210,120,145,147,110,31,244,59,38,247,3,131,154,144,102\
,145,47,63,136,41,147,88,237,180,68,96,84,12,248,7,49,30,77,168,223,166,241,207\
,186,254,146,223,236,70,46,184,137,84,155,23,103,236,39,112,2,113,240,72,187,20\
1,76,47,222,219,249,128,48,99,69,231,85,107,63,160,156,211,131,199,249,193,54,1\
04,23,121,138,15,114,228,93,55,203,92,225,80,174,78,84,255,64,246,232,152,37,17\
4,139,136,115,22,55,239,22,4,130,64,248,188,62,39,157,33, 233,31,36,153,85,120,\
65,139,224,215,175,51,92,176,202,237,89,182,59,85,229,209,94,71,80,126,176,255,\
236,25,213,98,59,33,108,218,135,70,9,200,50,233,231,112,142,142,130,40,237,158,\
212,144,81,249,177,130,228,86,95,58,88,49,58,167,143,9,131,31,51,110,230,13,134\
,193,8,181,58,166,109,189,64,225,164,5,252,134,193,23,73,41,47,175,245,78,74,50\
,34,118,243,138,158,17,150,152,43,190,120,32,151,217,29,120,244,201,75,192,72,1\
74,46,210,253,1,192,106,65,102,165,247,150,94,28,79,42,57,121,93,159,150,151,22\
9,35,241, 242,77,107,25,5,245,215,126,96,231,98,209,142,95,222,182,235,194,9,14\
2,82,122,181,233,55,104,0,70,217,208,188,33,188,136,223,49,234,48,99,86,143,34,\
214,249,97,154,106,158,4,7,189,166,189,191,1,193,216,173,180,110,54,21,8,9,83,2\
9,114,78,154,165,206,41,255,183,123,134,17,15,199,225,116,146,16,217,205,42,172\
,190,168,56,25,17,70,128,165,118,35,216,198,102,117,96,122,1,16,114,207,174,254\
,202,115,201,155,87,164,241,34,239,24,150,71,253,173,57,169,69,17,94,204,118,77\
,238,6,206,241,137,99,220,68,38,141,100, 248,65,232,249,47,121,81,65,147,30,52,\
83,38,177,218,235,154,214,191,179,249,198,233,11,69,161,140,25,240,14,98,161,76\
,105,7,60,155,81,190,132,39,54,219,150,146,153,53,46,46,254,80,38,84,185,153,15\
8,232,222,252,140,93,113,18,52,225,22,119,169,54,46,206,17,138,73,171,3,63,230,\
69,187,131,129,32,227,224,145,118,91,92,246,19,73,233,89,253,241,85,62,152,108,\
130,6,33,212,62,97,68,198,139,206,170,126,55,169,207,214,127,65,56,110,195,38,9\
3,124,118,137,179,196,202,238,214,89,29,214,111,225,161,177,10,243,20, 30,228,7\
5,168,121,129,19,203,105,215,171,119,14,178,185,194,161,92,1,126,198,57,156,169\
,254,128,36,21,153,229,54,160,54,11,142,28,81,110,134,102,22,167,62,218,113,194\
,44,111,222,44,148,211,185,73,9,4,129,240,177,184,230,149,163,13,73,123,27,177,\
46,30,67,210,62,72,251,110,89,45,233,219,246,195,81,103,145,166,204,176,169,31,\
116,12,206,122,102,185,97,148,222,5,6,241,0,0,0,0,0,0,0,0,6,0,0,0,4,0,4,0,8,0,4\
,0,2,0,0,0,4,0,5,0,16,0,8,0,2,0,0,0,4,0,6,0,32,0,32,0,2,0,0,0,4,0,4,0,16,0,16,0\
,4,0,0,0,8,0,16,0,32, 0,32,0,4,0,0,0,8,0,16,0,128,0,128,0,4,0,0,0,8,0,32,0,128,\
0,0,1,4,0,0,0,32,0,128,0,2,1,0,4,4,0,0,0,32,0,2,1,2,1,0,16,4,0,0,0,16,17,18,0,8\
,7,9,6,10,5,11,4,12,3,13,2,14,1,15,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,\
0,0,0,5,0,0,0,6,0,0,0,7,0,0,0,8,0,0,0,10,0,0,0,12,0,0,0,14,0,0,0,16,0,0,0,20,0,\
0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,\
0,0,0,112,0,0,0,128,0,0,0,160,0,0,0,192,0,0,0,224,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\
,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0, 12,0,0,0,16,0,0,0,24,0,0,0,32\
,0,0,0,48,0,0,0,64,0,0,0,96,0,0,0,128,0,0,0,192,0,0,0,0,1,0,0,128,1,0,0,0,2,0,0\
,0,3,0,0,0,4,0,0,0,6,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,24,0,0,0,32,0,0,0,48,0,0,0\
,64,0,0,0,96,0,0,98,117,102,102,101,114,32,101,114,114,111,114,0,0,0,0,105,110,\
115,117,102,102,105,99,105,101,110,116,32,109,101,109,111,114,121,0,0,0,0,0,115\
,116,114,101,97,109,32,101,114,114,111,114,0,0,0,0,101,114,114,111,114,58,32,37\
,100,92,110,0,0,0,0,0,115,116,114,99,109,112,40,98,117,102,102,101,114,44,32, 9\
8,117,102,102,101,114,51,41,32,61,61,32,48,0,0,0,0,100,101,99,111,109,112,114,1\
01,115,115,101,100,83,105,122,101,32,61,61,32,115,105,122,101,0,0,0,0,0,0,0,0,4\
7,116,109,112,47,101,109,115,99,114,105,112,116,101,110,95,116,101,109,112,47,1\
22,108,105,98,46,99,0,0,0,0,0,115,105,122,101,115,58,32,37,100,44,37,100,10,0,0\
,0,0,1,2,3,4,5,6,7,8,8,9,9,10,10,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,1\
5,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18\
,19,19,19,19,19,19,19,19,20, 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21\
,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,\
22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,2\
4,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25\
,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,\
25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,2\
6,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27, 27,27,27,27,27,27,27,2\
7,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\
,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7\
,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,1\
0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12\
,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,\
13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,1\
3,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14\
,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, 14,14,14,14,14\
,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,\
15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,1\
5,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,1\
6,17,18,18,19,19,20,20,20,20,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23\
,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,\
25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,2\
6,26,26,26,26, 26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,2\
7,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28\
,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,\
28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,2\
8,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29\
,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,\
29,29,29,29,29,29,29,29,29,29,29,29,29,29, 29,29,29,100,111,105,116,0,0,0,0]),"\
i8",Da,8);var Za=ra(P(12,"i8",O),8);z(0==Za%8);var $a=5,ab=6,bb=9,U=13,cb=21,db\
=22,eb=0;function V(a){return L[eb>>2]=a}var fb=P(1,"i32*",O),W=P(1,"i32*",O),g\
b=P(1,"i32*",O),hb=P(1,"i32*",O),ib=2,X=[r],jb=n;function kb(a,b){if("string"!=\
=typeof a)return r;b===k&&(b="/");a&&"/"==a[0]&&(b="");for(var c=(b+"/"+a).spli\
t("/").reverse(),d=[""];c.length;){var e=c.pop();""==e||"."==e||(".."==e?1<d.le\
ngth&&d.pop():d.push(e))}return 1==d.length?"/":d.join("/")} function lb(a,b,c)\
{var d={N:t,k:t,error:0,name:r,path:r,object:r,w:t,A:r,z:r},a=kb(a);if("/"==a)d\
.N=n,d.k=d.w=n,d.name="/",d.path=d.A="/",d.object=d.z=mb;else if(a!==r)for(var \
c=c||0,a=a.slice(1).split("/"),e=mb,f=[""];a.length;){1==a.length&&e.c&&(d.w=n,\
d.A=1==f.length?"/":f.join("/"),d.z=e,d.name=a[0]);var g=a.shift();if(e.c)if(e.\
C){if(!e.a.hasOwnProperty(g)){d.error=2;break}}else{d.error=U;break}else{d.erro\
r=20;break}e=e.a[g];if(e.link&&!(b&&0==a.length)){if(40<c){d.error=92;break}d=k\
b(e.link, f.join("/"));d=lb([d].concat(a).join("/"),b,c+1);break}f.push(g);0==a\
.length&&(d.k=n,d.path=f.join("/"),d.object=e)}return d}function nb(a){ob();a=l\
b(a,k);if(a.k)return a.object;V(a.error);return r} function pb(a,b,c,d,e){a||(a\
="/");"string"===typeof a&&(a=nb(a));a||(V(U),j(Error("Parent path must exist."\
)));a.c||(V(20),j(Error("Parent must be a folder.")));!a.write&&!jb&&(V(U),j(Er\
ror("Parent folder must be writeable.")));if(!b||"."==b||".."==b)V(2),j(Error("\
Name must not be empty."));a.a.hasOwnProperty(b)&&(V(17),j(Error("Can\'t overwr\
ite object.")));a.a[b]={C:d===k?n:d,write:e===k?t:e,timestamp:Date.now(),M:ib++\
};for(var f in c)c.hasOwnProperty(f)&&(a.a[b][f]=c[f]);return a.a[b]} function \
qb(a,b,c,d){return pb(a,b,{c:n,b:t,a:{}},c,d)}function rb(a,b,c,d){a=nb(a);a===\
r&&j(Error("Invalid parent."));for(b=b.split("/").reverse();b.length;){var e=b.\
pop();e&&(a.a.hasOwnProperty(e)||qb(a,e,c,d),a=a.a[e])}return a}function sb(a,b\
,c,d,e){c.c=t;return pb(a,b,c,d,e)}function tb(a,b,c,d,e){if("string"===typeof \
c){for(var f=Array(c.length),g=0,i=c.length;g<i;++g)f[g]=c.charCodeAt(g);c=f}c=\
{b:t,a:c.subarray?c.subarray(0):c};return sb(a,b,c,d,e)} function Y(a,b,c,d){!c\
&&!d&&j(Error("A device must have at least one callback defined."));return sb(a\
,b,{b:n,input:c,d:d},Boolean(c),Boolean(d))}function ob(){mb||(mb={C:n,write:n,\
c:n,b:t,timestamp:Date.now(),M:1,a:{}})}var ub,mb;function vb(a,b,c){a=X[a];if(\
!a)return-1;a.sender(Q.subarray(b,b+c));return c} function wb(a,b,c,d){a=X[a];i\
f(!a||a.object.b)return V(bb),-1;if(a.f){if(a.object.c)return V(cb),-1;if(0>c||\
0>d)return V(db),-1;for(var e=a.object.a;e.length<d;)e.push(0);for(var f=0;f<c;\
f++)e[d+f]=Q[b+f|0];a.object.timestamp=Date.now();return f}V(U);return-1} funct\
ion xb(a,b,c){var d=X[a];if(d&&"socket"in d)return vb(a,b,c);if(d){if(d.f){if(0\
>c)return V(db),-1;if(d.object.b){if(d.object.d){for(a=0;a<c;a++)try{d.object.d\
(J[b+a|0])}catch(e){return V($a),-1}d.object.timestamp=Date.now();return a}V(ab\
);return-1}b=wb(a,b,c,d.position);-1!=b&&(d.position+=b);return b}V(U);return-1\
}V(bb);return-1}function yb(a,b,c,d){c*=b;if(0==c)return 0;a=xb(d,a,c);return-1\
==a?(X[d]&&(X[d].error=n),0):Math.floor(a/b)}Module._strlen=zb; function Ab(a){\
return 0>a||0===a&&-Infinity===1/a} function Bb(a,b){function c(a){var c;"doubl\
e"===a?c=N[b+e>>3]:"i64"==a?(c=[L[b+e>>2],L[b+(e+8)>>2]],e+=8):(a="i32",c=L[b+e\
>>2]);e+=Math.max(Math.max(ja(a),x),8);return c}for(var d=a,e=0,f=[],g,i;;){var\
l=d;g=J[d];if(0===g)break;i=J[d+1|0];if(37==g){var y=t,E=t,A=t,q=t;a:for(;;){s\
witch(i){case 43:y=n;break;case 45:E=n;break;case 35:A=n;break;case 48:if(q)bre\
ak a;else{q=n;break}default:break a}d++;i=J[d+1|0]}var B=0;if(42==i)B=c("i32"),\
d++,i=J[d+1|0];else for(;48<=i&&57>=i;)B=10*B+(i-48),d++,i=J[d+ 1|0];var K=t;if\
(46==i){var m=0,K=n;d++;i=J[d+1|0];if(42==i)m=c("i32"),d++;else for(;;){i=J[d+1\
|0];if(48>i||57<i)break;m=10*m+(i-48);d++}i=J[d+1|0]}else m=6;var p;switch(Stri\
ng.fromCharCode(i)){case "h":i=J[d+2|0];104==i?(d++,p=1):p=2;break;case "l":i=J\
[d+2|0];108==i?(d++,p=8):p=4;break;case "L":case "q":case "j":p=8;break;case "z\
":case "t":case "I":p=4;break;default:p=r}p&&d++;i=J[d+1|0];switch(String.fromC\
harCode(i)){case "d":case "i":case "u":case "o":case "x":case "X":case "p":l=10\
0==i||105==i; p=p||4;g=c("i"+8*p);var h;8==p&&(g=117==i?+(g[0]>>>0)+4294967296*\
+(g[1]>>>0):+(g[0]>>>0)+4294967296*+(g[1]|0));4>=p&&(g=(l?Ra:Qa)(g&Math.pow(256\
,p)-1,8*p));var H=Math.abs(g),l="";if(100==i||105==i)h=Ra(g,8*p).toString(10);e\
lse if(117==i)h=Qa(g,8*p).toString(10),g=Math.abs(g);else if(111==i)h=(A?"0":""\
)+H.toString(8);else if(120==i||88==i){l=A&&0!=g?"0x":"";if(0>g){g=-g;h=(H-1).t\
oString(16);H=[];for(A=0;A<h.length;A++)H.push((15-parseInt(h[A],16)).toString(\
16));for(h=H.join("");h.length<2*p;)h="f"+ h}else h=H.toString(16);88==i&&(l=l.\
toUpperCase(),h=h.toUpperCase())}else 112==i&&(0===H?h="(nil)":(l="0x",h=H.toSt\
ring(16)));if(K)for(;h.length<m;)h="0"+h;for(y&&(l=0>g?"-"+l:"+"+l);l.length+h.\
length<B;)E?h+=" ":q?h="0"+h:l=" "+l;h=l+h;h.split("").forEach(function(a){f.pu\
sh(a.charCodeAt(0))});break;case "f":case "F":case "e":case "E":case "g":case "\
G":g=c("double");if(isNaN(g))h="nan",q=t;else if(isFinite(g)){K=t;p=Math.min(m,\
20);if(103==i||71==i)K=n,m=m||1,p=parseInt(g.toExponential(p).split("e")[1], 10\
),m>p&&-4<=p?(i=(103==i?"f":"F").charCodeAt(0),m-=p+1):(i=(103==i?"e":"E").char\
CodeAt(0),m--),p=Math.min(m,20);if(101==i||69==i)h=g.toExponential(p),/[eE][-+]\
\\d$/.test(h)&&(h=h.slice(0,-1)+"0"+h.slice(-1));else if(102==i||70==i)h=g.toFi\
xed(p),0===g&&Ab(g)&&(h="-"+h);l=h.split("e");if(K&&!A)for(;1<l[0].length&&-1!=\
l[0].indexOf(".")&&("0"==l[0].slice(-1)||"."==l[0].slice(-1));)l[0]=l[0].slice(\
0,-1);else for(A&&-1==h.indexOf(".")&&(l[0]+=".");m>p++;)l[0]+="0";h=l[0]+(1<l.\
length?"e"+l[1]:"");69==i&& (h=h.toUpperCase());y&&0<=g&&(h="+"+h)}else h=(0>g?\
"-":"")+"inf",q=t;for(;h.length<B;)h=E?h+" ":q&&("-"==h[0]||"+"==h[0])?h[0]+"0"\
+h.slice(1):(q?"0":" ")+h;97>i&&(h=h.toUpperCase());h.split("").forEach(functio\
n(a){f.push(a.charCodeAt(0))});break;case "s":q=(y=c("i8*"))?zb(y):6;K&&(q=Math\
.min(q,m));if(!E)for(;q<B--;)f.push(32);if(y)for(A=0;A<q;A++)f.push(Q[y++|0]);e\
lse f=f.concat(S("(null)".substr(0,q),n));if(E)for(;q<B--;)f.push(32);break;cas\
e "c":for(E&&f.push(c("i8"));0<--B;)f.push(32);E||f.push(c("i8")); break;case "\
n":E=c("i32*");L[E>>2]=f.length;break;case "%":f.push(g);break;default:for(A=l;\
A<d+2;A++)f.push(J[A])}d+=2}else f.push(g),d+=1}return f}function Cb(a,b,c){c=B\
b(b,c);b=ha();a=yb(P(c,"i8",Ca),1,c.length,a);ia(b);return a}function Db(a,b,c)\
{for(var d=0;d<c;){var e=Q[a+d|0],f=Q[b+d|0];if(e==f&&0==e)break;if(0==e)return\
-1;if(0==f)return 1;if(e==f)d++;else return e>f?1:-1}return 0}Module._memset=Eb\
;Module._memcpy=Fb; function Z(a){Z.J||(D=D+4095>>12<<12,Z.J=n,z(pa),Z.I=pa,pa=\
function(){F("cannot dynamically allocate, sbrk now has control")});var b=D;0!=\
a&&Z.I(a);return b}function Gb(a,b){return xb(b,a,zb(a))}function Hb(a,b){var c\
=Qa(a&255);J[Hb.D|0]=c;return-1==xb(b,Hb.D,1)?(X[b]&&(X[b].error=n),-1):c}var I\
b=t,Jb=t,Kb=t,Lb=t,Mb=k,Nb=k,Ob=[];function Pb(){var a=Module.canvas;Ob.forEach\
(function(b){b(a.width,a.height)})} function Qb(){var a=Module.canvas;this.S=a.\
width;this.R=a.height;a.width=screen.width;a.height=screen.height;a=Ga[SDL.scre\
en+0*x>>2];L[SDL.screen+0*x>>2]=a|8388608;Pb()}function Rb(){var a=Module.canva\
s;a.width=this.S;a.height=this.R;a=Ga[SDL.screen+0*x>>2];L[SDL.screen+0*x>>2]=a\
&-8388609;Pb()}var Sb,Tb,Ub,Vb; Ma.unshift({l:function(){if(!Module.noFSInit&&!\
ub){var a,b,c,d=function(a){a===r||10===a?(b.h(b.buffer.join("")),b.buffer=[]):\
b.buffer.push(i.B(a))};z(!ub,"FS.init was previously called. If you want to ini\
tialize later with custom parameters, remove any earlier calls (note that one i\
s automatically added to the generated code)");ub=n;ob();a=a||Module.stdin;b=b|\
|Module.stdout;c=c||Module.stderr;var e=n,f=n,g=n;a||(e=t,a=function(){if(!a.j|\
|!a.j.length){var b;"undefined"!=typeof window&&"function"== typeof window.prom\
pt?(b=window.prompt("Input: "),b===r&&(b=String.fromCharCode(0))):"function"==t\
ypeof readline&&(b=readline());b||(b="");a.j=S(b+"\\n",n)}return a.j.shift()});\
var i=new ma;b||(f=t,b=d);b.h||(b.h=Module.print);b.buffer||(b.buffer=[]);c||(g\
=t,c=d);c.h||(c.h=Module.print);c.buffer||(c.buffer=[]);try{qb("/","tmp",n,n)}c\
atch(l){}var d=qb("/","dev",n,n),y=Y(d,"stdin",a),E=Y(d,"stdout",r,b);c=Y(d,"st\
derr",r,c);Y(d,"tty",a,b);Y(d,"null",u(),u());X[1]={path:"/dev/stdin",object:y,\
position:0, u:n,f:t,t:t,v:!e,error:t,q:t,F:[]};X[2]={path:"/dev/stdout",object:\
E,position:0,u:t,f:n,t:t,v:!f,error:t,q:t,F:[]};X[3]={path:"/dev/stderr",object\
:c,position:0,u:t,f:n,t:t,v:!g,error:t,q:t,F:[]};L[fb>>2]=1;L[W>>2]=2;L[gb>>2]=\
3;rb("/","dev/shm/tmp",n,n);for(e=X.length;e<Math.max(fb,W,gb)+4;e++)X[e]=r;X[f\
b]=X[1];X[W]=X[2];X[gb]=X[3];P([P([0,0,0,0,fb,0,0,0,W,0,0,0,gb,0,0,0],"void*",0\
)],"void*",Da,hb)}}});Na.push({l:function(){jb=t}}); Oa.push({l:function(){ub&&\
(X[2]&&0<X[2].object.d.buffer.length&&X[2].object.d(10),X[3]&&0<X[3].object.d.b\
uffer.length&&X[3].object.d(10))}});Module.FS_createFolder=qb;Module.FS_createP\
ath=rb;Module.FS_createDataFile=tb; Module.FS_createPreloadedFile=function(a,b,\
c,d,e,f,g,i){function l(){Kb=document.pointerLockElement===q||document.mozPoint\
erLockElement===q||document.webkitPointerLockElement===q}function y(a){return{j\
pg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/og\
g",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]}function E\
(c){function h(c){i||tb(a,b,c,d,e);f&&f();Wa("cp "+B)}var l=t;Module.preloadPlu\
gins.forEach(function(a){!l&&a.canHandle(B)&&(a.handle(c,B,h,function(){g&& g()\
;Wa("cp "+B)}),l=n)});l||h(c)}Module.preloadPlugins||(Module.preloadPlugins=[])\
;if(!Sb&&!v){Sb=n;try{new Blob,Tb=n}catch(A){Tb=t,console.log("warning: no blob\
constructor, cannot create blobs with mimetypes")}Ub="undefined"!=typeof MozBl\
obBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilde\
r:!Tb?console.log("warning: no BlobBuilder"):r;Vb="undefined"!=typeof window?wi\
ndow.URL?window.URL:window.webkitURL:console.log("warning: cannot create object\
URLs");Module.preloadPlugins.push({canHandle:function(a){return!Module.W&& /\
\\.(jpg|jpeg|png|bmp)$/.exec(a)},handle:function(a,b,c,d){var e=r;if(Tb)try{e=n\
ew Blob([a],{type:y(b)})}catch(f){var g="Blob constructor present but fails: "+\
f+"; falling back to blob builder";la||(la={});la[g]||(la[g]=1,Module.g(g))}e||\
(e=new Ub,e.append((new Uint8Array(a)).buffer),e=e.getBlob());var i=Vb.createOb\
jectURL(e),h=new Image;h.onload=function(){z(h.complete,"Image "+b+" could not \
be decoded");var d=document.createElement("canvas");d.width=h.width;d.height=h.\
height;d.getContext("2d").drawImage(h, 0,0);Module.preloadedImages[b]=d;Vb.revo\
keObjectURL(i);c&&c(a)};h.onerror=function(){console.log("Image "+i+" could not\
be decoded");d&&d()};h.src=i}});Module.preloadPlugins.push({canHandle:function\
(a){return!Module.V&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:functio\
n(a,b,c,d){function e(d){g||(g=n,Module.preloadedAudios[b]=d,c&&c(a))}function \
f(){g||(g=n,Module.preloadedAudios[b]=new Audio,d&&d())}var g=t;if(Tb){try{var \
i=new Blob([a],{type:y(b)})}catch(h){return f()}var i=Vb.createObjectURL(i), l=\
new Audio;l.addEventListener("canplaythrough",function(){e(l)},t);l.onerror=fun\
ction(){if(!g){console.log("warning: browser could not fully decode audio "+b+"\
, trying slower base64 approach");for(var c="",d=0,f=0,i=0;i<a.length;i++){d=d<\
<8|a[i];for(f+=8;6<=f;)var h=d>>f-6&63,f=f-6,c=c+"ABCDEFGHIJKLMNOPQRSTUVWXYZabc\
defghijklmnopqrstuvwxyz0123456789+/"[h]}2==f?(c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabc\
defghijklmnopqrstuvwxyz0123456789+/"[(d&3)<<4],c+="=="):4==f&&(c+="ABCDEFGHIJKL\
MNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(d& 15)<<2],c+="=");l.src\
="data:audio/x-"+b.substr(-3)+";base64,"+c;e(l)}};l.src=i;setTimeout(function()\
{G||e(l)},1E4)}else return f()}});var q=Module.canvas;q.n=q.requestPointerLock|\
|q.mozRequestPointerLock||q.webkitRequestPointerLock;q.r=document.exitPointerLo\
ck||document.mozExitPointerLock||document.webkitExitPointerLock||u();q.r=q.r.bi\
nd(document);document.addEventListener("pointerlockchange",l,t);document.addEve\
ntListener("mozpointerlockchange",l,t);document.addEventListener("webkitpointer\
lockchange", l,t);Module.elementPointerLock&&q.addEventListener("click",functio\
n(a){!Kb&&q.n&&(q.n(),a.preventDefault())},t)}for(var B,K=[a,b],m=K[0],p=1;p<K.\
length;p++)"/"!=m[m.length-1]&&(m+="/"),m+=K[p];"/"==m[0]&&(m=m.substr(1));B=m;\
Va("cp "+B);if("string"==typeof c){var h=g,H=function(){h?h():j(\'Loading data \
file "\'+c+\'" failed.\')},M=new XMLHttpRequest;M.open("GET",c,n);M.responseTyp\
e="arraybuffer";M.onload=function(){if(200==M.status||0==M.status&&M.response){\
var a=M.response;z(a,\'Loading data file "\'+c+ \'" failed (no arrayBuffer).\')\
;a=new Uint8Array(a);E(a);Wa("al "+c)}else H()};M.onerror=H;M.send(r);Va("al "+\
c)}else E(c)}; Module.FS_createLazyFile=function(a,b,c,d,e){if("undefined"!==ty\
peof XMLHttpRequest){v||j("Cannot do synchronous binary XHRs outside webworkers\
in modern browsers. Use --embed-file or --preload-file in emcc");var f=functio\
n(){this.m=t;this.e=[]};f.prototype.get=function(a){if(!(a>this.length-1||0>a))\
{var b=a%this.K;return this.L(Math.floor(a/this.K))[b]}};f.prototype.Q=function\
(a){this.L=a};f.prototype.o=function(){var a=new XMLHttpRequest;a.open("HEAD",c\
,t);a.send(r);200<=a.status&&300>a.status|| 304===a.status||j(Error("Couldn\'t \
load "+c+". Status: "+a.status));var b=Number(a.getResponseHeader("Content-leng\
th")),d,e=1048576;if(!((d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d))e\
=b;var f=this;f.Q(function(a){var d=a*e,g=(a+1)*e-1,g=Math.min(g,b-1);if("undef\
ined"===typeof f.e[a]){var l=f.e;d>g&&j(Error("invalid range ("+d+", "+g+") or \
no bytes requested!"));g>b-1&&j(Error("only "+b+" bytes available! programmer e\
rror!"));var m=new XMLHttpRequest;m.open("GET",c,t);b!==e&&m.setRequestHeader("\
Range", "bytes="+d+"-"+g);"undefined"!=typeof Uint8Array&&(m.responseType="arra\
ybuffer");m.overrideMimeType&&m.overrideMimeType("text/plain; charset=x-user-de\
fined");m.send(r);200<=m.status&&300>m.status||304===m.status||j(Error("Couldn\
\'t load "+c+". Status: "+m.status));d=m.response!==k?new Uint8Array(m.response\
||[]):S(m.responseText||"",n);l[a]=d}"undefined"===typeof f.e[a]&&j(Error("doXH\
R failed!"));return f.e[a]});this.H=b;this.G=e;this.m=n};f=new f;Object.defineP\
roperty(f,"length",{get:function(){this.m|| this.o();return this.H}});Object.de\
fineProperty(f,"chunkSize",{get:function(){this.m||this.o();return this.G}});f=\
{b:t,a:f}}else f={b:t,url:c};return sb(a,b,f,d,e)};Module.FS_createLink=functio\
n(a,b,c,d,e){return sb(a,b,{b:t,link:c},d,e)};Module.FS_createDevice=Y;eb=oa(4)\
;L[eb>>2]=0;Hb.D=P([0],"i8",O); Module.requestFullScreen=function(a,b){function\
c(){Jb=t;(document.webkitFullScreenElement||document.webkitFullscreenElement||\
document.mozFullScreenElement||document.mozFullscreenElement||document.fullScre\
enElement||document.fullscreenElement)===d?(d.p=document.cancelFullScreen||docu\
ment.mozCancelFullScreen||document.webkitCancelFullScreen,d.p=d.p.bind(document\
),Mb&&d.n(),Jb=n,Nb&&Qb()):Nb&&Rb();if(Module.onFullScreen)Module.onFullScreen(\
Jb)}Mb=a;Nb=b;"undefined"===typeof Mb&&(Mb=n);"undefined"=== typeof Nb&&(Nb=t);\
var d=Module.canvas;Lb||(Lb=n,document.addEventListener("fullscreenchange",c,t)\
,document.addEventListener("mozfullscreenchange",c,t),document.addEventListener\
("webkitfullscreenchange",c,t));d.P=d.requestFullScreen||d.mozRequestFullScreen\
||(d.webkitRequestFullScreen?function(){d.webkitRequestFullScreen(Element.ALLOW\
_KEYBOARD_INPUT)}:r);d.P()}; Module.requestAnimationFrame=function(a){window.re\
questAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame\
||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.m\
sRequestAnimationFrame||window.oRequestAnimationFrame||window.setTimeout);windo\
w.requestAnimationFrame(a)};Module.pauseMainLoop=u();Module.resumeMainLoop=func\
tion(){Ib&&(Ib=t,r())};Module.getUserMedia=function(){window.s||(window.s=navig\
ator.getUserMedia||navigator.mozGetUserMedia);window.s(k)}; Ia=w=ra(C);Ja=Ia+52\
42880;Ka=D=ra(Ja);z(Ka<qa);var Wb=Math.min; var $=(function(global,env,buffer) \
{ "use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buff\
er);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var\
e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=ne\
w global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.S\
TACKTOP|0;var j=env.STACK_MAX|0;var k=env.tempDoublePtr|0;var l=env.ABORT|0;var\
m=+env.NaN;var n=+env.Infinity;var o=0;var p=0;var q=0;var r=0;var s=0,t=0,u=0\
,v=0,w=0.0,x=0,y=0,z=0,A=0.0;var B=0;var C=0;var D=0;var E=0;var F=0;var G=0;va\
r H=0;var I=0;var J=0;var K=0;var L=global.Math.floor;var M=global.Math.abs;var\
N=global.Math.sqrt;var O=global.Math.pow;var P=global.Math.cos;var Q=global.Ma\
th.sin;var R=global.Math.tan;var S=global.Math.acos;var T=global.Math.asin;var \
U=global.Math.atan;var V=global.Math.atan2;var W=global.Math.exp;var X=global.M\
ath.log;var Y=global.Math.ceil;var Z=global.Math.imul;var _=env.abort;var $=env\
.assert;var aa=env.asmPrintInt;var ab=env.asmPrintFloat;var ac=env.min;var ad=e\
nv.invoke_ii;var ae=env.invoke_vi;var af=env.invoke_vii;var ag=env.invoke_iiii;\
var ah=env.invoke_v;var ai=env.invoke_iii;var aj=env._strncmp;var ak=env._llvm_\
lifetime_end;var al=env._sysconf;var am=env._abort;var an=env._fprintf;var ao=e\
nv._printf;var ap=env.__reallyNegative;var aq=env._fputc;var ar=env._puts;var a\
s=env.___setErrNo;var at=env._fwrite;var au=env._send;var av=env._write;var aw=\
env._fputs;var ax=env.__formatString;var ay=env._free;var az=env.___assert_func\
;var aA=env._pwrite;var aB=env._sbrk;var aC=env.___errno_location;var aD=env._l\
lvm_lifetime_start;var aE=env._llvm_bswap_i32;var aF=env._time;var aG=env._strc\
mp; function aN(a){a=a|0;var b=0;b=i;i=i+a|0;i=i+7>>3<<3;return b|0}function aO\
(){return i|0}function aP(a){a=a|0;i=a}function aQ(a,b){a=a|0;b=b|0;if((o|0)==0\
){o=a;p=b}}function aR(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+2|0];a\
[k+3|0]=a[b+3|0]}function aS(b){b=b|0;a[k]=a[b];a[k+1|0]=a[b+1|0];a[k+2|0]=a[b+\
2|0];a[k+3|0]=a[b+3|0];a[k+4|0]=a[b+4|0];a[k+5|0]=a[b+5|0];a[k+6|0]=a[b+6|0];a[\
k+7|0]=a[b+7|0]}function aT(a){a=a|0;B=a}function aU(a){a=a|0;C=a}function aV(a\
){a=a|0;D=a}function aW(a){a=a|0;E=a}function aX(a){a=a|0;F=a}function aY(a){a=\
a|0;G=a}function aZ(a){a=a|0;H=a}function a_(a){a=a|0;I=a}function a$(a){a=a|0;\
J=a}function a0(a){a=a|0;K=a}function a1(f,g){f=f|0;g=g|0;var h=0,j=0,k=0,l=0,m\
=0,n=0,o=0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,\
H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0\
,$=0,aa=0,ab=0,ac=0,ad=0,ae=0,af=0,ag=0,ah=0,ai=0,aj=0,ak=0,al=0,am=0,an=0,ap=0\
,aq=0,ar=0,as=0,at=0,au=0,av=0,aw=0,ax=0,ay=0,aA=0,aB=0,aC=0,aD=0,aF=0,aH=0,aI=\
0,aL=0,aN=0,aO=0,aP=0,aQ=0,aR=0,aS=0,aT=0,aU=0,aV=0,aW=0,aX=0,aY=0,aZ=0,a_=0,a$\
=0,a0=0,a1=0,a2=0,a4=0,a5=0,a6=0,a8=0,bb=0,bc=0,bd=0,be=0,bl=0,bo=0,bp=0,bq=0,b\
r=0,bs=0,bt=0,bu=0,bv=0,bw=0,bx=0,by=0,bz=0,bA=0,bB=0,bC=0,bD=0,bE=0,bF=0,bG=0,\
bH=0,bI=0,bJ=0,bK=0,bL=0,bM=0,bN=0,bO=0,bP=0,bQ=0,bR=0,bS=0,bT=0,bU=0,bV=0,bW=0\
,bX=0,bY=0,bZ=0,b_=0,b$=0,b0=0,b1=0,b2=0,b3=0,b4=0,b5=0,b6=0,b7=0,b8=0,b9=0,ca=\
0,cb=0,cc=0,cd=0,ce=0,cf=0,cg=0,ch=0,ci=0,cj=0,ck=0,cl=0,cm=0,cn=0,co=0,cp=0,cq\
=0,cr=0,cs=0,ct=0,cu=0,cv=0,cw=0,cx=0,cy=0,cz=0,cA=0,cB=0,cC=0,cD=0,cE=0,cF=0,c\
G=0,cH=0,cI=0,cJ=0,cK=0,cL=0,cM=0,cN=0,cO=0,cP=0,cQ=0,cR=0,cS=0,cT=0,cU=0,cV=0,\
cW=0,cX=0,cY=0,cZ=0,c_=0,c$=0,c0=0,c1=0,c2=0,c3=0,c4=0,c5=0,c6=0,c7=0,c8=0,c9=0\
,da=0,db=0,dc=0,dd=0,de=0,df=0,dg=0,dh=0,di=0,dj=0,dk=0,dl=0,dm=0,dn=0,dp=0,dq=\
0,dr=0,ds=0,dt=0,du=0,dv=0,dw=0,dx=0,dy=0,dz=0,dA=0,dB=0,dC=0,dD=0,dE=0,dF=0,dG\
=0,dH=0,dI=0,dJ=0,dK=0,dL=0,dM=0,dN=0,dO=0,dP=0,dQ=0,dR=0,dS=0,dT=0,dU=0,dV=0,d\
W=0,dX=0,dY=0,dZ=0,d_=0,d$=0,d0=0,d1=0,d2=0,d3=0,d4=0,d5=0,d6=0,d7=0,d8=0,d9=0,\
ea=0,eb=0,ec=0,ed=0,ee=0,ef=0,eg=0,eh=0,ei=0,ej=0,ek=0,el=0,em=0,en=0,eo=0,ep=0\
,eq=0,er=0,es=0,et=0,eu=0,ev=0,ew=0,ex=0,ey=0,ez=0,eA=0,eB=0,eC=0,eD=0,eE=0,eF=\
0,eG=0,eH=0,eI=0,eJ=0,eK=0,eL=0,eM=0,eN=0,eO=0,eP=0,eQ=0,eR=0,eS=0,eT=0,eU=0,eV\
=0,eW=0,eX=0,eY=0,eZ=0,e_=0,e$=0,e0=0,e1=0,e2=0,e3=0,e4=0,e5=0,e6=0,e7=0,e8=0,e\
9=0,fa=0,fb=0,fc=0,fd=0,fe=0,ff=0,fg=0,fh=0,fi=0,fj=0,fk=0,fl=0,fm=0,fn=0,fo=0,\
fp=0,fq=0,fr=0,fs=0,ft=0,fu=0,fv=0,fw=0,fx=0,fy=0,fz=0,fA=0,fB=0,fC=0,fD=0,fE=0\
,fF=0,fG=0,fH=0,fI=0,fJ=0,fK=0,fL=0,fM=0,fN=0,fO=0,fP=0,fQ=0,fR=0,fS=0,fT=0,fU=\
0,fV=0,fW=0,fX=0,fY=0,fZ=0,f_=0,f$=0,f0=0,f1=0,f2=0,f3=0,f4=0,f5=0,f6=0,f7=0,f8\
=0,f9=0,ga=0,gb=0,gc=0,gd=0,ge=0,gf=0,gg=0,gh=0,gi=0,gj=0,gk=0,gl=0,gm=0,gn=0,g\
o=0,gp=0,gq=0,gr=0,gs=0,gt=0,gu=0,gv=0,gw=0,gx=0,gy=0,gz=0,gA=0,gB=0,gC=0,gD=0,\
gE=0,gF=0,gG=0,gH=0,gI=0,gJ=0,gK=0,gL=0,gM=0,gN=0,gO=0,gP=0,gQ=0,gR=0,gS=0,gT=0\
,gU=0,gV=0,gW=0,gX=0,gY=0,gZ=0,g_=0,g$=0,g0=0,g1=0,g2=0,g3=0,g4=0,g5=0,g6=0,g7=\
0,g8=0,g9=0,ha=0;h=i;i=i+64|0;j=h|0;k=h+8|0;l=c[1046]|0;if((l|0)==0){m=bk(10004\
3)|0;c[1046]=m;n=m}else{n=l}if((c[1044]|0)==0){c[1044]=bk(1e5)|0;o=c[1046]|0}el\
se{o=n}n=k|0;c[n>>2]=f;l=k+4|0;c[l>>2]=1e5;m=k+12|0;c[m>>2]=o;o=k+16|0;c[o>>2]=\
100043;p=k+32|0;c[p>>2]=0;q=k+36|0;c[q>>2]=0;r=k+40|0;c[r>>2]=0;t=k+24|0;c[t>>2\
]=0;c[p>>2]=2;c[r>>2]=0;c[q>>2]=2;u=bf(0,1,5828)|0;L7:do{if((u|0)==0){v=100043}\
else{w=k+28|0;c[w>>2]=u;c[u>>2]=k;c[u+24>>2]=1;c[u+28>>2]=0;c[u+48>>2]=15;x=u+4\
4|0;c[x>>2]=32768;c[u+52>>2]=32767;c[u+80>>2]=15;y=u+76|0;c[y>>2]=32768;c[u+84>\
>2]=32767;c[u+88>>2]=5;z=u+56|0;c[z>>2]=aK[c[p>>2]&3](c[r>>2]|0,32768,2)|0;A=aK\
[c[p>>2]&3](c[r>>2]|0,c[x>>2]|0,2)|0;B=u+64|0;c[B>>2]=A;bm(A|0,0,c[x>>2]<<1|0);\
x=u+68|0;c[x>>2]=aK[c[p>>2]&3](c[r>>2]|0,c[y>>2]|0,2)|0;c[u+5824>>2]=0;y=u+5788\
|0;c[y>>2]=16384;A=aK[c[p>>2]&3](c[r>>2]|0,16384,4)|0;C=A;c[u+8>>2]=A;D=c[y>>2]\
|0;c[u+12>>2]=D<<2;do{if((c[z>>2]|0)!=0){if((c[B>>2]|0)==0){break}if((c[x>>2]|0\
)==0|(A|0)==0){break}c[u+5796>>2]=C+(D>>>1<<1);c[u+5784>>2]=A+(D*3&-1);c[u+132>\
>2]=6;c[u+136>>2]=0;a[u+36|0]=8;y=c[w>>2]|0;if((y|0)==0){v=100043;break L7}if((\
c[p>>2]|0)==0){v=100043;break L7}if((c[q>>2]|0)==0){v=100043;break L7}E=k+20|0;\
c[E>>2]=0;F=k+8|0;c[F>>2]=0;c[t>>2]=0;c[k+44>>2]=2;c[y+20>>2]=0;c[y+16>>2]=c[y+\
8>>2];G=y+24|0;H=c[G>>2]|0;if((H|0)<0){I=-H|0;c[G>>2]=I;J=I}else{J=H}c[y+4>>2]=\
(J|0)!=0?42:113;H=k+48|0;c[H>>2]=(J|0)!=2&1;c[y+40>>2]=0;c[y+2840>>2]=y+148;c[y\