libamr.js
656 KB
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
var opencoreamr=function(){var ma;function Y(a){eval.call(null,a)}function O(a){print(a+":\n"+Error().stack);throw"Assertion: "+a;}function x(a,k){a||O("Assertion failed: "+k)}function W(R,k,e){e=e||"i8";e[e.length-1]==="*"&&(e="i32");switch(e){case "i1":N[R]=k;break;case "i8":N[R]=k;break;case "i16":a[R>>1]=k;break;case "i32":h[R>>2]=k;break;case "i64":h[R>>2]=k;break;case "float":nb[R>>2]=k;break;case "double":ze[0]=k;h[R>>2]=dc[0];h[R+4>>2]=dc[1];break;default:O("invalid type for setValue: "+e)}}
function H(a,k,e){var c,b;typeof a==="number"?(c=true,b=a):(c=false,b=a.length);var d=typeof k==="string"?k:null,e=[va,sa.stackAlloc,sa.staticAlloc][e===void 0?L:e](Math.max(b,d?1:k.length));if(c)return ta(e,0,b),e;c=0;for(var i;c<b;){var g=a[c];typeof g==="function"&&(g=sa.getFunctionIndex(g));i=d||k[c];i===0?c++:(x(i,"Must know what type to store in allocate!"),i=="i64"&&(i="i32"),W(e+c,g,i),c+=sa.getNativeTypeSize(i))}return e}function Va(a,k){for(var e=typeof k=="undefined",c="",b=0,d,i=String.fromCharCode(0);;){d=
String.fromCharCode(M[a+b]);if(e&&d==i)break;c+=d;b+=1;if(!e&&b==k)break}return c}function Wa(a){for(;a.length>0;){var k=a.shift(),e=k.func;typeof e==="number"&&(e=Cb[e]);e(k.arg===void 0?null:k.arg)}}function ob(a,k){return Array.prototype.slice.call(N.subarray(a,a+k))}function Db(a){for(var k=0;N[a+k];)k++;return k}function cb(a,k){for(var e=[],c=0;c<a.length;){var b=a.charCodeAt(c);b>255&&(x(false,"Character code "+b+" ("+a[c]+") at offset "+c+" not in 0x00-0xFF."),b&=255);e.push(b);c+=1}k||e.push(0);
return e}function Ae(a,k,e){for(var c=0;c<a.length;){var b=a.charCodeAt(c);b>255&&(x(false,"Character code "+b+" ("+a[c]+") at offset "+c+" not in 0x00-0xFF."),b&=255);N[k+c]=b;c+=1}e||(N[k+c]=0)}function $(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)+(b<<16>>16)|0;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=5;break;case 2:c=(b|0)<-32768?3:4;break;case 3:h[d>>2]=1;b=-32768;c=4;break;case 4:c=5;break;case 5:return b&65535;default:x(0,"bad label: "+c)}}function Tc(a,
k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Be(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:e=(b<<16>>16|0)<31?2:3;break;case 2:d=
c>>(b<<16>>16|0);e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?5:6;break;case 5:d=c>>31^2147483647;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Uc(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=
1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function Eb(R,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f,j;b=R;d=k;i=e;g=0;j=h[i>>2];f=0;c=1;break;case 1:c=(f<<16>>16|0)<(d<<16>>16|0)?2:4;break;case 2:g=Uc(g,a[(b+(f<<16>>16<<1)|0)>>1],a[(b+(f<<16>>16<<1)|0)>>1],i);c=3;break;case 3:f=f+1&65535;c=1;break;case 4:c=(g|0)!=2147483647?5:6;break;case 5:g>>=4;c=7;break;case 6:h[i>>2]=j;a:{c=b;g=d;for(var n=i,l=void 0,
l=0;;)switch(l){case 0:var q,m,p,o,r;q=c;m=g;p=n;r=o=0;l=1;break;case 1:l=(r<<16>>16|0)<(m<<16>>16|0)?2:4;break;case 2:l=a[(q+(r<<16>>16<<1)|0)>>1]<<16>>16>>2&65535;o=Uc(o,l,l,p);l=3;break;case 3:r=r+1&65535;l=1;break;case 4:g=o;break a;default:x(0,"bad label: "+l)}g=void 0}c=7;break;case 7:return g;default:x(0,"bad label: "+c)}}function Ce(h,k,e,c,b,d){var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r,s,v,t;g=h;f=k;j=e;n=c;l=b;q=d;o=Eb(j,l,q);i=(o|0)==0?1:2;break;case 1:a[(g|0)>>1]=0;i=10;
break;case 2:p=((oa(o)<<16>>16)-1|0)&65535;i=Tc(o,p,q);r=la(i,q);o=Eb(f,l,q);i=(o|0)==0?3:4;break;case 3:s=0;i=5;break;case 4:m=oa(o);i=o<<(m<<16>>16);o=la(i,q);p=((p<<16>>16)-(m<<16>>16)|0)&65535;s=xa(r,o);o=s<<16>>16;o<<=7;o=Be(o,p,q);o=Xa(o,q);i=o<<9;m=(i+32768|0)>>16&65535;s=(32767-(n<<16>>16)|0)&65535;s=((m<<16>>16)*(s<<16>>16)|0)>>15&65535;i=5;break;case 5:v=a[(g|0)>>1];t=j;m=0;i=6;break;case 6:i=(m<<16>>16|0)<(l<<16>>16|0)?7:9;break;case 7:v=((v<<16>>16)*(n<<16>>16)|0)>>15&65535;v=((v<<16>>
16)+(s<<16>>16)|0)&65535;i=((a[t>>1]<<16>>16)*(v<<16>>16)|0)<<1;i=i>>13&65535;var u=t;t=u+2|0;a[u>>1]=i;i=8;break;case 8:m=m+1&65535;i=6;break;case 9:a[(g|0)>>1]=v;i=10;break;case 10:return;default:x(0,"bad label: "+i)}}function De(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p;d=R;i=k;g=e;f=c;l=Eb(i,g,f);b=(l|0)==0?1:2;break;case 1:b=28;break;case 2:n=((oa(l)<<16>>16)-1|0)&65535;p=Tc(l,n,f);q=la(p,f);l=Eb(d,g,f);b=(l|0)==0?3:4;break;case 3:m=0;b=17;break;case 4:j=oa(l);p=Tc(l,
j,f);l=la(p,f);n=((n<<16>>16)-(j<<16>>16)|0)&65535;l=xa(q,l);l=l<<16>>16;b=(l|0)>16777215?5:6;break;case 5:l=2147483647;b=10;break;case 6:b=(l|0)<-16777216?7:8;break;case 7:l=-2147483648;b=9;break;case 8:l<<=7;b=9;break;case 9:b=10;break;case 10:l=Be(l,n,f);l=Xa(l,f);b=(l|0)>4194303?11:12;break;case 11:p=2147483647;b=16;break;case 12:b=(l|0)<-4194304?13:14;break;case 13:p=-2147483648;b=15;break;case 14:p=l<<9;b=15;break;case 15:b=16;break;case 16:m=la(p,f);b=17;break;case 17:j=((g<<16>>16)-1|0)&65535;
b=18;break;case 18:b=(j<<16>>16|0)>=0?19:27;break;case 19:a:{p=a[(i+(j<<16>>16<<1)|0)>>1];b=m;for(var o=f,r=void 0,r=0;;)switch(r){case 0:var s,v;s=p;r=b;v=o;s=(s<<16>>16)*(r<<16>>16)|0;r=(s|0)!=1073741824?1:2;break;case 1:s<<=1;r=3;break;case 2:h[v>>2]=1;s=2147483647;r=3;break;case 3:p=s;break a;default:x(0,"bad label: "+r)}p=void 0}b=(p|0)>268435455?20:21;break;case 20:a[(i+(j<<16>>16<<1)|0)>>1]=32767;b=25;break;case 21:b=(p|0)<-268435456?22:23;break;case 22:a[(i+(j<<16>>16<<1)|0)>>1]=-32768;b=
24;break;case 23:a[(i+(j<<16>>16<<1)|0)>>1]=p>>13&65535;b=24;break;case 24:b=25;break;case 25:b=26;break;case 26:j=j-1&65535;b=18;break;case 27:b=28;break;case 28:return;default:x(0,"bad label: "+b)}}function Ee(R,k,e,c,b){var u;var t;var d=B;B+=488;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r=d,s,v;g=R;f=k;j=e;n=c;l=b;m=0;o=7;v=-1;i=((l|0)==2&1|(l|0)==4&1|0)!=0?1:21;break;case 1:i=(l|0)==2?2:3;break;case 2:Fe(f,j,r|0,(g|0)+1168|
0);v=Ge+(f<<1)|0;t=(ga=M[v]|M[v+1]<<8,ga<<16>>16),v=t;i=4;break;case 3:He(f,j,r|0,(g|0)+1168|0);v=Ie+(f<<1)|0;u=(ga=M[v]|M[v+1]<<8,ga<<16>>16),v=u;i=4;break;case 4:i=f>>>0<=7?5:6;break;case 5:m=f;o=0;i=20;break;case 6:i=(f|0)==8?7:15;break;case 7:s=p=0;i=8;break;case 8:i=(s<<16>>16|0)<3?9:11;break;case 9:i=a[(r+(((s<<16>>16)+36|0)<<1)|0)>>1]<<16>>16<<(s<<16>>16);p|=i;i=10;break;case 10:s=s+1&65535;i=8;break;case 11:m=p;i=(a[(r+70|0)>>1]<<16>>16|0)==0?12:13;break;case 12:o=4;i=14;break;case 13:o=5;
i=14;break;case 14:i=19;break;case 15:i=f>>>0<15?16:17;break;case 16:v=-1;i=18;break;case 17:m=h[(g+1760|0)>>2];o=7;i=18;break;case 18:i=19;break;case 19:i=20;break;case 20:i=32;break;case 21:i=(l|0)==0?22:30;break;case 22:q=j;o=a[q>>1]<<16>>16;q=q+2|0;s=0;i=23;break;case 23:i=(s<<16>>16|0)<244?24:26;break;case 24:a[(r+(s<<16>>16<<1)|0)>>1]=a[q>>1];q=q+2|0;i=25;break;case 25:s=s+1&65535;i=23;break;case 26:i=(o|0)!=7?27:28;break;case 27:m=a[q>>1]<<16>>16;i=29;break;case 28:m=h[(g+1760|0)>>2];i=29;
break;case 29:v=492;i=31;break;case 30:v=-1;i=31;break;case 31:i=32;break;case 32:i=(v<<16>>16|0)!=-1?33:34;break;case 33:Je(g,m,r|0,o,n);h[(g+1760|0)>>2]=m;i=34;break;case 34:return R=v,B=d,R;default:x(0,"bad label: "+i)}}function Ke(R,k,e,c,b,d,i){var A;var z;var y;var g=B;B+=500;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o,r=g,s,v,t,u=g+492,w=g+496;j=R;n=k;l=e;q=c;m=b;p=d;o=i;v=-1;h[w>>2]=0;f=((o<<16>>16|0)==0&1|(o<<16>>16|0)==1&1|
(o<<16>>16|0)==3&1|0)!=0?1:24;break;case 1:Vc(j,l,q,r|0,w);Wc(n,h[w>>2],u);f=(h[u>>2]|0)!=3?2:14;break;case 2:h[p>>2]=h[w>>2];f=(h[p>>2]|0)==8?3:13;break;case 3:f=(h[u>>2]|0)==1?4:5;break;case 4:f=r+70|0;a[f>>1]=a[f>>1]<<16>>16&0;f=8;break;case 5:f=(h[u>>2]|0)==2?6:7;break;case 6:f=r+70|0;a[f>>1]=(a[f>>1]<<16>>16|1)&65535;f=7;break;case 7:f=8;break;case 8:t=0;f=9;break;case 9:f=(t<<16>>16|0)<3?10:12;break;case 10:a[(r+(((t<<16>>16)+36|0)<<1)|0)>>1]=l>>>(t<<16>>16>>>0)&1;f=11;break;case 11:t=t+1&65535;
f=9;break;case 12:f=13;break;case 13:f=15;break;case 14:f=h[p>>2]=15;break;case 15:f=(o<<16>>16|0)==3?16:17;break;case 16:Le(h[p>>2],r|0,m,h[(j+4|0)>>2]+2392|0);v=Xc+((h[p>>2]&65535)<<16>>16<<1)|0;y=(ga=M[v]|M[v+1]<<8,ga<<16>>16),v=y;f=23;break;case 17:f=(o<<16>>16|0)==0?18:19;break;case 18:Me(h[p>>2],r|0,m,h[(j+4|0)>>2]+2392|0);v=Xc+((h[p>>2]&65535)<<16>>16<<1)|0;z=(ga=M[v]|M[v+1]<<8,ga<<16>>16),v=z;f=22;break;case 19:f=(o<<16>>16|0)==1?20:21;break;case 20:Ne(h[p>>2],r|0,m,h[(j+4|0)>>2]+2392|0);
v=Oe+((h[p>>2]&65535)<<16>>16<<1)|0;A=(ga=M[v]|M[v+1]<<8,ga<<16>>16),v=A;f=21;break;case 21:f=22;break;case 22:f=23;break;case 23:f=35;break;case 24:f=(o<<16>>16|0)==2?25:33;break;case 25:Vc(j,l,q,r+2|0,w);h[p>>2]=h[w>>2];Wc(n,h[w>>2],u);a[(r|0)>>1]=h[u>>2]&65535;f=(h[u>>2]|0)!=3?26:27;break;case 26:a[(r+490|0)>>1]=l&65535;f=28;break;case 27:a[(r+490|0)>>1]=-1;f=28;break;case 28:s=r|0;t=0;f=29;break;case 29:f=(t<<16>>16|0)<492?30:32;break;case 30:N[m+(t<<16>>16)|0]=N[s];s=s+1|0;f=31;break;case 31:t=
t+1&65535;f=29;break;case 32:v=492;f=34;break;case 33:v=-1;f=34;break;case 34:f=35;break;case 35:return R=v,B=g,R;default:x(0,"bad label: "+f)}}function Pe(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;
e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Yc(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,"bad label: "+c)}}function Qe(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b-c|0;c=((b^c)>>31|0)!=0?1:4;break;case 1:c=((i^b)&-2147483648|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:
2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function Re(h,k,e){var c=B;B+=40;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n=c,l=c+20,q,m,p;d=h;i=k;g=e;f=0;b=1;break;case 1:b=(f<<16>>16|0)<10?2:4;break;case 2:a[(n+(f<<16>>16<<1)|0)>>1]=a[(d+(f<<16>>16<<1)|0)>>1];b=3;break;case 3:f=f+1&65535;b=1;break;case 4:f=9;b=5;break;case 5:b=(f<<16>>16|0)>=0?6:28;break;case 6:b=a[(n+(f<<16>>16<<1)|0)>>
1];var o=void 0,o=((b<<16>>16)-((b<<16>>16|0)<0&1)|0)&65535,o=(o<<16>>16^o<<16>>16>>15)&65535;b=(o<<16>>16|0)>=4096?7:12;break;case 7:f=0;b=8;break;case 8:b=(f<<16>>16|0)<10?9:11;break;case 9:a[(i+(f<<16>>16<<1)|0)>>1]=0;b=10;break;case 10:f=f+1&65535;b=8;break;case 11:b=28;break;case 12:m=Pe(a[(n+(f<<16>>16<<1)|0)>>1],3,g);a[(i+(f<<16>>16<<1)|0)>>1]=m;p=Yc(a[(i+(f<<16>>16<<1)|0)>>1],a[(i+(f<<16>>16<<1)|0)>>1],g);b=Qe(2147483647,p,g);q=oa(b);m=(15-(q<<16>>16)|0)&65535;a:{j=b;b=void 0;for(b=0;;)switch(b){case 0:var r,
s,v;r=j;s=q;v=0;b=(s<<16>>16|0)>0?1:4;break;case 1:v=r<<(s<<16>>16);b=(v>>(s<<16>>16|0)|0)!=(r|0)?2:3;break;case 2:v=r>>31^2147483647;b=3;break;case 3:b=7;break;case 4:s=(-(s<<16>>16)|0)&65535;b=(s<<16>>16|0)<31?5:6;break;case 5:v=r>>(s<<16>>16|0);b=6;break;case 6:b=7;break;case 7:b=v;break a;default:x(0,"bad label: "+b)}b=void 0}j=la(b,g);q=xa(16384,j);j=0;b=13;break;case 13:b=(j<<16>>16|0)<(f<<16>>16|0)?14:22;break;case 14:p=b=a[(n+(j<<16>>16<<1)|0)>>1]<<16>>16<<16;b=g;o=void 0;o=Yc(a[(i+(f<<16>>
16<<1)|0)>>1],a[(n+((((f<<16>>16)-(j<<16>>16)|0)-1|0)<<1)|0)>>1],b);b=o=Qe(p,o,b);p=la(b,g);p=Yc(q,p,g);p=Se(p,m,g);b=p-((p|0)<0&1)|0;b^=b>>31;b=(b|0)>32767?15:20;break;case 15:f=0;b=16;break;case 16:b=(f<<16>>16|0)<10?17:19;break;case 17:a[(i+(f<<16>>16<<1)|0)>>1]=0;b=18;break;case 18:f=f+1&65535;b=16;break;case 19:b=22;break;case 20:a[(l+(j<<16>>16<<1)|0)>>1]=p&65535;b=21;break;case 21:j=j+1&65535;b=13;break;case 22:j=0;b=23;break;case 23:b=(j<<16>>16|0)<(f<<16>>16|0)?24:26;break;case 24:a[(n+(j<<
16>>16<<1)|0)>>1]=a[(l+(j<<16>>16<<1)|0)>>1];b=25;break;case 25:j=j+1&65535;b=23;break;case 26:b=27;break;case 27:f=f-1&65535;b=5;break;case 28:B=c;return;default:x(0,"bad label: "+b)}}function ec(h,k,e,c,b){var d=B;B+=480;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o=d,r,s,v,t,u,w,y,A,C;g=h;f=k;j=e;n=c;l=b;t=o|0;v=g;C=l;m=r=0;q=240;i=1;break;case 1:i=(q<<16>>16|0)!=0?2:6;break;case 2:i=v;v=i+2|0;i=a[i>>1]<<16>>16;var z=C;C=z+2|0;
var z=i=(16384+(i*(a[z>>1]<<16>>16)|0)|0)>>15&65535,D=t;t=D+2|0;a[D>>1]=z;r=r+(((i<<16>>16)*(i<<16>>16)|0)<<1)|0;i=(r|0)<0?3:4;break;case 3:m=1;i=6;break;case 4:i=5;break;case 5:q=q-1&65535;i=1;break;case 6:i=m<<16>>16!=0?7:12;break;case 7:t=o+((240-(q<<16>>16)|0)<<1)|0;v=g+((240-(q<<16>>16)|0)<<1)|0;C=l+((240-(q<<16>>16)|0)<<1)|0;i=8;break;case 8:i=(q<<16>>16|0)!=0?9:11;break;case 9:i=v;v=i+2|0;i=a[i>>1]<<16>>16;z=C;C=z+2|0;i=(16384+(i*(a[z>>1]<<16>>16)|0)|0)>>15&65535;z=t;t=z+2|0;a[z>>1]=i;i=10;
break;case 10:q=q-1&65535;i=8;break;case 11:i=12;break;case 12:s=0;i=13;break;case 13:i=(m<<16>>16|0)==1?14:21;break;case 14:s=((s<<16>>16)+4|0)&65535;t=o|0;r=0;q=120;i=15;break;case 15:i=(q<<16>>16|0)!=0?16:18;break;case 16:z=i=a[t>>1]<<16>>16>>2&65535;D=t;t=D+2|0;a[D>>1]=z;r=r+(((i<<16>>16)*(i<<16>>16)|0)<<1)|0;z=i=a[t>>1]<<16>>16>>2&65535;D=t;t=D+2|0;a[D>>1]=z;r=r+(((i<<16>>16)*(i<<16>>16)|0)<<1)|0;i=17;break;case 17:q=q-1&65535;i=15;break;case 18:i=(r|0)>0?19:20;break;case 19:m=0;i=20;break;case 20:i=
13;break;case 21:r=r+1|0;p=oa(r);r<<=p<<16>>16;a[(j|0)>>1]=r>>16&65535;a[(n|0)>>1]=((r>>1)-(a[(j|0)>>1]<<16>>16<<15)|0)&65535;w=o+478|0;y=j+(f<<16>>16<<1)|0;A=n+(f<<16>>16<<1)|0;q=f;i=22;break;case 22:i=(q<<16>>16|0)>0?23:31;break;case 23:r=0;t=o+(((240-(q<<16>>16)|0)-1|0)<<1)|0;u=w;m=((240-(q<<16>>16)|0)-1|0)>>1&65535;i=24;break;case 24:i=(m<<16>>16|0)!=0?25:27;break;case 25:i=t;t=i-2|0;i=a[i>>1]<<16>>16;z=u;u=z-2|0;r=r+(i*(a[z>>1]<<16>>16)|0)|0;i=t;t=i-2|0;i=a[i>>1]<<16>>16;z=u;u=z-2|0;r=r+(i*(a[z>>
1]<<16>>16)|0)|0;i=26;break;case 26:m=m-1&65535;i=24;break;case 27:i=t;t=i-2|0;i=a[i>>1]<<16>>16;z=u;u=z-2|0;r=r+(i*(a[z>>1]<<16>>16)|0)|0;i=(((240-(q<<16>>16)|0)-1|0)&1|0)!=0?28:29;break;case 28:i=t;t=i-2|0;i=a[i>>1]<<16>>16;z=u;u=z-2|0;r=r+(i*(a[z>>1]<<16>>16)|0)|0;i=29;break;case 29:r<<=(p<<16>>16)+1|0;a[y>>1]=r>>16&65535;i=r>>1;z=y;y=z-2|0;i=(i-(a[z>>1]<<16>>16<<15)|0)&65535;z=A;A=z-2|0;a[z>>1]=i;i=30;break;case 30:q=q-1&65535;i=22;break;case 31:return h=p=((p<<16>>16)-(s<<16>>16)|0)&65535,B=
d,h;default:x(0,"bad label: "+i)}}function fc(h,k,e,c){var b=B;B+=24;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z=b,D=b+12,E,F;i=h;g=k;f=e;j=c;E=z|0;F=D|0;a[E>>1]=1024;a[F>>1]=1024;n=0;d=1;break;case 1:d=(n<<16>>16|0)<5?2:4;break;case 2:y=a[((i+(n<<16>>16<<1)|0)+2|0)>>1]<<16>>16;d=a[((i+20|0)+((-(n<<16>>16)|0)<<1)|0)>>1]<<16>>16;w=(y+d|0)>>2&65535;y=(y-d|0)>>2&65535;d=E;E=d+2|0;w=((w<<16>>16)-(a[d>>1]<<16>>16)|
0)&65535;a[E>>1]=w;d=F;F=d+2|0;y=((y<<16>>16)+(a[d>>1]<<16>>16)|0)&65535;a[F>>1]=y;d=3;break;case 3:n=n+1&65535;d=1;break;case 4:m=q=0;C=z|0;p=a[(Zc|0)>>1];o=Fb(p,C,5,j);l=0;d=5;break;case 5:if((q<<16>>16|0)<10)d=6;else{var I=0;d=7}break;case 6:I=(l<<16>>16|0)<60;d=7;break;case 7:d=I?8:26;break;case 8:l=l+1&65535;r=p;s=o;p=a[((Zc|0)+(l<<16>>16<<1)|0)>>1];o=Fb(p,C,5,j);d=((o<<16>>16)*(s<<16>>16)|0)<=0?9:25;break;case 9:n=4;d=10;break;case 10:d=(n<<16>>16|0)!=0?11:16;break;case 11:w=p<<16>>16>>1&65535;
y=r<<16>>16>>1&65535;v=((w<<16>>16)+(y<<16>>16)|0)&65535;t=Fb(v,C,5,j);d=((o<<16>>16)*(t<<16>>16)|0)<=0?12:13;break;case 12:s=t;r=v;d=14;break;case 13:o=t;p=v;d=14;break;case 14:d=15;break;case 15:n=n-1&65535;d=10;break;case 16:w=((r<<16>>16)-(p<<16>>16)|0)&65535;y=((s<<16>>16)-(o<<16>>16)|0)&65535;d=(y<<16>>16|0)==0?17:18;break;case 17:u=p;d=21;break;case 18:d=y;A=void 0;A=((y<<16>>16)-((y<<16>>16|0)<0&1)|0)&65535;y=A=(A<<16>>16^A<<16>>16>>15)&65535;A=db(y);y=y<<16>>16<<(A<<16>>16)&65535;y=xa(16383,
y);y=((w<<16>>16)*(y<<16>>16)|0)>>(19-(A<<16>>16)|0)&65535;d=(d<<16>>16|0)<0?19:20;break;case 19:y=(-(y<<16>>16)|0)&65535;d=20;break;case 20:u=((p<<16>>16)-(((o<<16>>16)*(y<<16>>16)|0)>>10)|0)&65535;d=21;break;case 21:p=a[(g+(q<<16>>16<<1)|0)>>1]=u;q=q+1&65535;d=(m<<16>>16|0)==0?22:23;break;case 22:m=1;C=D|0;d=24;break;case 23:m=0;C=z|0;d=24;break;case 24:o=Fb(p,C,5,j);d=25;break;case 25:d=5;break;case 26:d=(q<<16>>16|0)<10?27:32;break;case 27:n=5;d=28;break;case 28:d=(n<<16>>16|0)!=0?29:31;break;
case 29:d=f;f=d+2|0;d=a[d>>1];A=g;g=A+2|0;a[A>>1]=d;d=f;f=d+2|0;d=a[d>>1];A=g;g=A+2|0;a[A>>1]=d;d=30;break;case 30:n=n-1&65535;d=28;break;case 31:d=32;break;case 32:B=b;return;default:x(0,"bad label: "+d)}}function gc(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g;c=a;b=k;g=d=0;e=1;break;case 1:e=(g<<16>>16|0)<(b<<16>>16|0)?2:12;break;case 2:e=(h[c>>2]&1|0)!=0?3:4;break;case 3:i=1;e=5;break;case 4:i=0;e=5;break;case 5:e=(h[c>>2]&268435456|0)!=0?6:7;break;case 6:i=(i<<16>>16^1)&65535;e=8;break;
case 7:i=(i<<16>>16^0)&65535;e=8;break;case 8:d=d<<16>>16<<1&65535;e=h[c>>2]&1;d=(d<<16>>16|e<<16>>16)&65535;h[c>>2]>>=1;e=(i<<16>>16&1|0)!=0?9:10;break;case 9:h[c>>2]|=1073741824;e=10;break;case 10:e=11;break;case 11:g=g+1&65535;e=1;break;case 12:return d;default:x(0,"bad label: "+e)}}function Te(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,
"bad label: "+c)}}function Fb(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f,j,n,l,q;b=h;d=k;i=e;d=d+2|0;q=16777216;g=b<<16>>16<<10;j=d;d=j+2|0;l=g+(a[j>>1]<<16>>16<<14)|0;j=l>>16&65535;n=((l>>1)-(j<<16>>16<<15)|0)&65535;g=2;c=1;break;case 1:c=(g<<16>>16|0)<(i<<16>>16|0)?2:4;break;case 2:l=(j<<16>>16)*(b<<16>>16)|0;l=l+(((n<<16>>16)*(b<<16>>16)|0)>>15)|0;l<<=2;l=l-q|0;q=d;d=q+2|0;l=l+(a[q>>1]<<16>>16<<14)|0;q=(j<<16>>16<<16)+(n<<16>>16<<1)|0;j=l>>16&65535;n=((l>>1)-(j<<16>>16<<15)|0)&65535;
c=3;break;case 3:g=g+1&65535;c=1;break;case 4:l=(j<<16>>16)*(b<<16>>16)|0;l=l+(((n<<16>>16)*(b<<16>>16)|0)>>15)|0;l<<=1;l=l-q|0;l=l+(a[d>>1]<<16>>16<<13)|0;c=(l+33554432|0)>>>0<67108863?5:6;break;case 5:f=l>>10&65535;c=10;break;case 6:c=(l|0)>33554431?7:8;break;case 7:f=32767;c=9;break;case 8:f=-32768;c=9;break;case 9:c=10;break;case 10:return f;default:x(0,"bad label: "+c)}}function Ue(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f;b=h;d=k;i=e;g=0;c=1;break;case 1:c=(g<<16>>16|0)<40?2:4;break;
case 2:a[(d+(g<<16>>16<<1)|0)>>1]=0;c=3;break;case 3:g=g+1&65535;c=1;break;case 4:f=0;c=5;break;case 5:c=(f<<16>>16|0)<10?6:11;break;case 6:g=gc(b,2);g=Te(g,10,i)&65535;g=g<<16>>16>>1&65535;g=$(g,f,i);c=gc(b,1);c=(c<<16>>16|0)>0?7:8;break;case 7:a[(d+(g<<16>>16<<1)|0)>>1]=4096;c=9;break;case 8:a[(d+(g<<16>>16<<1)|0)>>1]=-4096;c=9;break;case 9:c=10;break;case 10:f=f+1&65535;c=5;break;case 11:return;default:x(0,"bad label: "+c)}}function Ve(R,k,e,c,b,d){var i;for(i=0;;)switch(i){case 0:var g,f,j,n,
l,q;g=R;f=k;j=e;n=c;l=b;q=d;i=Te(a[g>>1],31821,q);i>>=1;a:{for(var m=void 0,m=0;;)switch(m){case 0:var p,o,r;p=i;o=q;r=p+13849|0;m=(p^13849|0)>=0?1:4;break;case 1:m=((r^p)>>31|0)!=0?2:3;break;case 2:r=(p>>31|0)!=0?-2147483648:2147483647;h[o>>2]=1;m=3;break;case 3:m=4;break;case 4:i=r;break a;default:x(0,"bad label: "+m)}i=void 0}a[g>>1]=i&65535;l=l+((a[g>>1]<<16>>16&127)<<1)|0;g=0;i=1;break;case 1:i=(g<<16>>16|0)<(f<<16>>16|0)?2:4;break;case 2:i=(65535<<(a[(j+(g<<16>>16<<1)|0)>>1]<<16>>16)^-1)&65535;
q=l;l=q+2|0;a[(n+(g<<16>>16<<1)|0)>>1]=a[q>>1]<<16>>16&i<<16>>16&65535;i=3;break;case 3:g=g+1&65535;i=1;break;case 4:return;default:x(0,"bad label: "+i)}}function We(h){var k;for(k=0;;)switch(k){case 0:var e,c;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:ta(c|0,0,120,1);e=a[(c+120|0)>>1]=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function Xe(R,k,e,c,b){var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y;i=R;g=k;f=e;j=c;n=b;w=0;l=159;d=1;break;case 1:d=(l<<
16>>16|0)>=0?2:7;break;case 2:y=(a[(f+(l<<16>>16<<1)|0)>>1]<<16>>16)*(a[(f+(l<<16>>16<<1)|0)>>1]<<16>>16)|0;d=(y|0)!=1073741824?3:4;break;case 3:y<<=1;d=5;break;case 4:y=2147483647;d=5;break;case 5:a:{d=y;for(var A=n,C=void 0,C=0;;)switch(C){case 0:var z,D,E;z=w;C=d;D=A;E=z+C|0;C=(z^C|0)>=0?1:4;break;case 1:C=((E^z)>>31|0)!=0?2:3;break;case 2:E=(z>>31|0)!=0?-2147483648:2147483647;h[D>>2]=1;C=3;break;case 3:C=4;break;case 4:w=E;break a;default:x(0,"bad label: "+C)}w=void 0}d=6;break;case 6:l=l-1&65535;
d=1;break;case 7:d=(w|0)>536870911?8:9;break;case 8:s=32767;d=10;break;case 9:s=w>>14&65535;d=10;break;case 10:r=32767;l=59;d=11;break;case 11:d=(l<<16>>16|0)>=0?12:16;break;case 12:d=(a[((i|0)+(l<<16>>16<<1)|0)>>1]<<16>>16|0)<(r<<16>>16|0)?13:14;break;case 13:r=a[((i|0)+(l<<16>>16<<1)|0)>>1];d=14;break;case 14:d=15;break;case 15:l=l-1&65535;d=11;break;case 16:y=r<<16>>16<<4;d=(y|0)!=((y&65535)<<16>>16|0)?17:21;break;case 17:d=(y|0)>0?18:19;break;case 18:v=32767;d=20;break;case 19:v=-32768;d=20;break;
case 20:d=22;break;case 21:v=y&65535;d=22;break;case 22:t=a[(i|0)>>1];l=55;d=23;break;case 23:d=(l<<16>>16|0)>=1?24:28;break;case 24:d=(t<<16>>16|0)<(a[((i|0)+(l<<16>>16<<1)|0)>>1]<<16>>16|0)?25:26;break;case 25:t=a[((i|0)+(l<<16>>16<<1)|0)>>1];d=26;break;case 26:d=27;break;case 27:l=l-1&65535;d=23;break;case 28:u=a[((i|0)+80|0)>>1];l=41;d=29;break;case 29:d=(l<<16>>16|0)<60?30:34;break;case 30:d=(u<<16>>16|0)<(a[((i|0)+(l<<16>>16<<1)|0)>>1]<<16>>16|0)?31:32;break;case 31:u=a[((i|0)+(l<<16>>16<<1)|
0)>>1];d=32;break;case 32:d=33;break;case 33:l=l+1&65535;d=29;break;case 34:d=(t<<16>>16|0)>20?35:43;break;case 35:d=(s<<16>>16|0)<17578?36:43;break;case 36:d=(s<<16>>16|0)>20?37:43;break;case 37:d=(s<<16>>16|0)<(v<<16>>16|0)?39:38;break;case 38:d=(u<<16>>16|0)<1953?39:43;break;case 39:d=((a[(i+120|0)>>1]<<16>>16)+1|0)>30?40:41;break;case 40:a[(i+120|0)>>1]=30;d=42;break;case 41:d=i+120|0;a[d>>1]=((a[d>>1]<<16>>16)+1|0)&65535;d=42;break;case 42:d=44;break;case 43:a[(i+120|0)>>1]=0;d=44;break;case 44:d=
(a[(i+120|0)>>1]<<16>>16|0)>1?45:46;break;case 45:m=1;d=47;break;case 46:m=0;d=47;break;case 47:l=0;d=48;break;case 48:d=(l<<16>>16|0)<59?49:51;break;case 49:a[((i|0)+(l<<16>>16<<1)|0)>>1]=a[((i|0)+(((l<<16>>16)+1|0)<<1)|0)>>1];d=50;break;case 50:l=l+1&65535;d=48;break;case 51:a[((i|0)+118|0)>>1]=s;d=(a[(i+120|0)>>1]<<16>>16|0)>15?52:53;break;case 52:o=16383;d=57;break;case 53:d=(a[(i+120|0)>>1]<<16>>16|0)>8?54:55;break;case 54:o=15565;d=56;break;case 55:o=13926;d=56;break;case 56:d=57;break;case 57:q=
0;d=(Ya(g+8|0,5)<<16>>16|0)>(o<<16>>16|0)?58:59;break;case 58:q=1;d=59;break;case 59:d=(a[(i+120|0)>>1]<<16>>16|0)>20?60:64;break;case 60:d=(Ya(g,9)<<16>>16|0)>(o<<16>>16|0)?61:62;break;case 61:q=1;d=63;break;case 62:q=0;d=63;break;case 63:d=64;break;case 64:d=q<<16>>16!=0?65:66;break;case 65:a[j>>1]=0;d=70;break;case 66:p=((a[j>>1]<<16>>16)+1|0)&65535;d=(p<<16>>16|0)>10?67:68;break;case 67:a[j>>1]=10;d=69;break;case 68:a[j>>1]=p;d=69;break;case 69:d=70;break;case 70:return m;default:x(0,"bad label: "+
d)}}function Ye(h,k,e,c,b,d,i,g){var f=B;B+=3412;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s=f,v=f+20,t=f+32,u=f+52,w=f+132,y=f+212;n=h;j=k;l=e;q=c;m=b;p=d;o=i;r=g;pb(l,n,u|0,2,r);$c(u|0,j,w|0,v|0,5,s|0,5,r);eb(l,w|0,y|0,r);ad(10,5,5,u|0,y|0,s|0,v|0,t|0,r);Ze(t|0,w|0,q,l,m,p,r);n=0;j=1;break;case 1:j=(n<<16>>16|0)<10?2:4;break;case 2:a:{j=p+(n<<16>>16<<1)|0;l=n;q=o;m=void 0;for(m=0;;)switch(m){case 0:var A,C,z;A=j;m=l;C=q;z=a[A>>1];
m=(m<<16>>16|0)<5?1:2;break;case 1:a[A>>1]=(z<<16>>16&8|a[(C+((z<<16>>16&7)<<1)|0)>>1]<<16>>16)&65535;m=3;break;case 2:a[A>>1]=a[(C+((z<<16>>16&7)<<1)|0)>>1];m=3;break;case 3:break a;default:x(0,"bad label: "+m)}}j=3;break;case 3:n=n+1&65535;j=1;break;case 4:B=f;return;default:x(0,"bad label: "+j)}}function $e(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+
c)}}function Ze(h,k,e,c,b,d){var i=B;B+=20;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o,r,s,v=i,t,u,w,y,A,C,z,D,E,F,I,K,J;f=h;j=k;n=e;l=c;q=b;m=d;ta(n,0,80,1);o=m;for(K=o+10;o<K;o++)N[o]=255;K=v|0;t=f|0;o=0;g=1;break;case 1:g=(o<<16>>16|0)<10?2:19;break;case 2:r=t;t=r+2|0;p=a[r>>1];s=((p<<16>>16)*6554|0)>>15&65535;r=((p<<16>>16)-((s<<16>>16)+(s<<16>>16<<2)|0)|0)&65535;g=(a[(j+(p<<16>>16<<1)|0)>>1]<<16>>16|0)>0?3:4;break;case 3:g=n+
(p<<16>>16<<1)|0;a[g>>1]=((a[g>>1]<<16>>16)+4096|0)&65535;g=K;K=g+2|0;a[g>>1]=8192;g=5;break;case 4:g=n+(p<<16>>16<<1)|0;a[g>>1]=((a[g>>1]<<16>>16)-4096|0)&65535;g=K;K=g+2|0;a[g>>1]=-8192;s=((s<<16>>16)+8|0)&65535;g=5;break;case 5:u=m+(r<<16>>16<<1)|0;I=a[u>>1];g=(I<<16>>16|0)<0?6:7;break;case 6:a[u>>1]=s;g=17;break;case 7:g=((s<<16>>16^I<<16>>16)&8|0)==0?8:12;break;case 8:g=(I<<16>>16|0)<=(s<<16>>16|0)?9:10;break;case 9:a[(u+10|0)>>1]=s;g=11;break;case 10:a[(u+10|0)>>1]=I;a[u>>1]=s;g=11;break;case 11:g=
16;break;case 12:g=(I<<16>>16&7|0)<=(s<<16>>16&7|0)?13:14;break;case 13:a[(u+10|0)>>1]=I;a[u>>1]=s;g=15;break;case 14:a[(u+10|0)>>1]=s;g=15;break;case 15:g=16;break;case 16:g=17;break;case 17:g=18;break;case 18:o=o+1&65535;g=1;break;case 19:F=f|0;t=l;u=F;F=u+2|0;t=t+((-(a[u>>1]<<16>>16)|0)<<1)|0;u=l;w=F;F=w+2|0;u=u+((-(a[w>>1]<<16>>16)|0)<<1)|0;w=l;y=F;F=y+2|0;w=w+((-(a[y>>1]<<16>>16)|0)<<1)|0;y=l;A=F;F=A+2|0;y=y+((-(a[A>>1]<<16>>16)|0)<<1)|0;A=l;C=F;F=C+2|0;A=A+((-(a[C>>1]<<16>>16)|0)<<1)|0;C=l;
z=F;F=z+2|0;C=C+((-(a[z>>1]<<16>>16)|0)<<1)|0;z=l;D=F;F=D+2|0;z=z+((-(a[D>>1]<<16>>16)|0)<<1)|0;D=l;E=F;F=E+2|0;D=D+((-(a[E>>1]<<16>>16)|0)<<1)|0;E=l;J=F;F=J+2|0;E=E+((-(a[J>>1]<<16>>16)|0)<<1)|0;F=l+((-(a[F>>1]<<16>>16)|0)<<1)|0;J=q;p=40;g=20;break;case 20:g=(p<<16>>16|0)!=0?21:23;break;case 21:K=v|0;g=t;t=g+2|0;g=a[g>>1]<<16>>16;var G=K;K=G+2|0;g=(g*(a[G>>1]<<16>>16)|0)>>7;G=u;u=G+2|0;var G=a[G>>1]<<16>>16,U=K;K=U+2|0;g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;G=w;w=G+2|0;G=a[G>>1]<<16>>16;U=K;K=U+2|0;
g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;G=y;y=G+2|0;G=a[G>>1]<<16>>16;U=K;K=U+2|0;g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;G=A;A=G+2|0;G=a[G>>1]<<16>>16;U=K;K=U+2|0;g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;G=C;C=G+2|0;G=a[G>>1]<<16>>16;U=K;K=U+2|0;g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;G=z;z=G+2|0;G=a[G>>1]<<16>>16;U=K;K=U+2|0;g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;G=D;D=G+2|0;G=a[G>>1]<<16>>16;U=K;K=U+2|0;g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;G=E;E=G+2|0;G=a[G>>1]<<16>>16;U=K;K=U+2|0;g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;G=F;
F=G+2|0;G=a[G>>1]<<16>>16;U=K;K=U+2|0;g=g+((G*(a[U>>1]<<16>>16)|0)>>7)|0;g=(g+128|0)>>8&65535;G=J;J=G+2|0;a[G>>1]=g;g=22;break;case 22:p=p-1&65535;g=20;break;case 23:B=i;return;default:x(0,"bad label: "+g)}}function af(h,k,e,c,b,d,i,g){var f=B;B+=3444;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v=f,t=f+4,u=f+84,w=f+164,y=f+244,A,C;n=h;l=k;q=e;m=c;p=b;o=d;r=i;s=g;m=m<<16>>16<<1&65535;j=(q<<16>>16|0)<40?1:6;break;case 1:A=q;j=2;break;
case 2:j=(A<<16>>16|0)<40?3:5;break;case 3:j=$e(a[(l+(((A<<16>>16)-(q<<16>>16)|0)<<1)|0)>>1],m,s);j=$(a[(l+(A<<16>>16<<1)|0)>>1],j,s);a[(l+(A<<16>>16<<1)|0)>>1]=j;j=4;break;case 4:A=A+1&65535;j=2;break;case 5:j=6;break;case 6:pb(l,n,t|0,1,s);Gb(t|0,w|0,u|0,8);eb(l,w|0,y|0,s);bf(t|0,y|0,v|0,s);C=cf(v|0,w|0,p,l,o,r,s);j=(q<<16>>16|0)<40?7:12;break;case 7:A=q;j=8;break;case 8:j=(A<<16>>16|0)<40?9:11;break;case 9:j=$e(a[(p+(((A<<16>>16)-(q<<16>>16)|0)<<1)|0)>>1],m,s);j=$(a[(p+(A<<16>>16<<1)|0)>>1],j,
s);a[(p+(A<<16>>16<<1)|0)>>1]=j;j=10;break;case 10:A=A+1&65535;j=8;break;case 11:j=12;break;case 12:return h=C,B=f,h;default:x(0,"bad label: "+j)}}function df(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;
e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function bd(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function bf(h,k,e,c){var b=
B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m,p,o=b,r,s,v,t,u,w,y,A,C,z;i=h;g=k;f=e;j=c;q=0;z=f|0;r=-1;u=1;C=0;d=1;break;case 1:d=(C<<16>>16|0)<2?2:4;break;case 2:d=C;var D=z;z=D+2|0;a[D>>1]=d;d=3;break;case 3:C=C+1&65535;d=1;break;case 4:m=0;d=5;break;case 5:d=(m<<16>>16|0)<2?6:24;break;case 6:p=0;d=7;break;case 7:d=(p<<16>>16|0)<4?8:22;break;case 8:a[(o|0)>>1]=a[(ef+(m<<16>>16<<1)|0)>>1];a[(o+2|0)>>1]=a[(ff+(p<<16>>16<<1)|0)>>
1];n=a[(o|0)>>1];d=9;break;case 9:d=(n<<16>>16|0)<40?10:20;break;case 10:s=a[(i+(n<<16>>16<<1)|0)>>1];A=a[((g+(n<<16>>16)*80|0)+(n<<16>>16<<1)|0)>>1]<<16>>16<<14;t=-1;w=1;q=a[(o+2|0)>>1];l=a[(o+2|0)>>1];d=11;break;case 11:d=(l<<16>>16|0)<40?12:16;break;case 12:v=$(s,a[(i+(l<<16>>16<<1)|0)>>1],j);y=A+(a[((g+(l<<16>>16)*80|0)+(l<<16>>16<<1)|0)>>1]<<16>>16<<14)|0;y=y+(a[((g+(n<<16>>16)*80|0)+(l<<16>>16<<1)|0)>>1]<<16>>16<<15)|0;v=((v<<16>>16)*(v<<16>>16)|0)>>15&65535;y=(y+32768|0)>>16&65535;d=((w<<16>>
16)*(v<<16>>16)|0)<<1;d=d-(((t<<16>>16)*(y<<16>>16)|0)<<1)|0;d=(d|0)>0?13:14;break;case 13:t=v;w=y;q=l;d=14;break;case 14:d=15;break;case 15:l=((l<<16>>16)+5|0)&65535;d=11;break;case 16:d=((u<<16>>16)*(t<<16>>16)|0)<<1;d=d-(((r<<16>>16)*(w<<16>>16)|0)<<1)|0;d=(d|0)>0?17:18;break;case 17:r=t;u=w;z=f|0;d=n;D=z;z=D+2|0;a[D>>1]=d;a[z>>1]=q;d=18;break;case 18:d=19;break;case 19:n=((n<<16>>16)+5|0)&65535;d=9;break;case 20:d=21;break;case 21:p=p+1&65535;d=7;break;case 22:d=23;break;case 23:m=m+1&65535;d=
5;break;case 24:B=b;return;default:x(0,"bad label: "+d)}}function cf(h,k,e,c,b,d,i){var g=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o,r,s,v,t,u,w=g,y,A,C,z;j=h;n=k;l=e;q=c;m=b;p=d;o=i;r=0;f=1;break;case 1:f=(r<<16>>16|0)<40?2:4;break;case 2:a[(l+(r<<16>>16<<1)|0)>>1]=0;f=3;break;case 3:r=r+1&65535;f=1;break;case 4:v=A=y=0;f=5;break;case 5:f=(v<<16>>16|0)<2?6:28;break;case 6:r=a[(j+(v<<16>>16<<1)|0)>>1];s=a[(n+(r<<16>>16<<1)|0)>>
1];u=((r<<16>>16)*6554|0)>>15&65535;f=((u<<16>>16<<3)+(u<<16>>16<<1)|0)&65535;f=f<<16>>16>>1&65535;f=t=((r<<16>>16)-(f<<16>>16)|0)&65535;f=(f<<16>>16|0)==0?7:8;break;case 7:t=1;u=u<<16>>16<<6&65535;f=23;break;case 8:f=(t<<16>>16|0)==1?9:13;break;case 9:f=v;f=(f<<16>>16|0)==0?10:11;break;case 10:t=0;u=u<<16>>16<<1&65535;f=12;break;case 11:t=1;f=u<<16>>16<<6&65535;u=((f<<16>>16)+16|0)&65535;f=12;break;case 12:f=22;break;case 13:f=(t<<16>>16|0)==2?14:15;break;case 14:t=1;f=u<<16>>16<<6&65535;u=((f<<
16>>16)+32|0)&65535;f=21;break;case 15:f=(t<<16>>16|0)==3?16:17;break;case 16:t=0;f=u<<16>>16<<1&65535;u=((f<<16>>16)+1|0)&65535;f=20;break;case 17:f=(t<<16>>16|0)==4?18:19;break;case 18:t=1;f=u<<16>>16<<6&65535;u=((f<<16>>16)+48|0)&65535;f=19;break;case 19:f=20;break;case 20:f=21;break;case 21:f=22;break;case 22:f=23;break;case 23:f=(s<<16>>16|0)>0?24:25;break;case 24:a[(l+(r<<16>>16<<1)|0)>>1]=8191;a[(w+(v<<16>>16<<1)|0)>>1]=32767;f=df(1,t,o);A=$(A,f,o);f=26;break;case 25:a[(l+(r<<16>>16<<1)|0)>>
1]=-8192;a[(w+(v<<16>>16<<1)|0)>>1]=-32768;f=26;break;case 26:y=$(y,u,o);f=27;break;case 27:v=v+1&65535;f=5;break;case 28:a[p>>1]=A;C=q+((-(a[(j|0)>>1]<<16>>16)|0)<<1)|0;z=q+((-(a[(j+2|0)>>1]<<16>>16)|0)<<1)|0;r=0;f=29;break;case 29:f=(r<<16>>16|0)<40?30:32;break;case 30:f=0;var D=C;C=D+2|0;f=bd(f,a[D>>1],a[(w|0)>>1],o);D=z;z=D+2|0;f=bd(f,a[D>>1],a[(w+2|0)>>1],o);f=la(f,o);a[(m+(r<<16>>16<<1)|0)>>1]=f;f=31;break;case 31:r=r+1&65535;f=29;break;case 32:return h=y,B=g,h;default:x(0,"bad label: "+f)}}
function gf(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function hf(h,k,e,c,b){var d=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r=d,s,v,t,u,w,y,A,C;g=h;f=k;j=e;n=c;l=b;p=0;i=l|0;s=-1;w=1;o=i;i=o+2|0;a[o>>1]=0;a[i>>1]=1;o=0;i=1;break;case 1:i=(o<<16>>16|0)<2?2:16;
break;case 2:q=((g<<16>>16<<1)+(o<<16>>16<<3)|0)&65535;a[(r|0)>>1]=a[(n+(q<<16>>16<<1)|0)>>1];a[((r|0)+2|0)>>1]=a[((n+(q<<16>>16<<1)|0)+2|0)>>1];q=a[(r|0)>>1];i=3;break;case 3:i=(q<<16>>16|0)<40?4:14;break;case 4:v=a[(f+(q<<16>>16<<1)|0)>>1];C=a[((j+(q<<16>>16)*80|0)+(q<<16>>16<<1)|0)>>1]<<16>>16<<14;u=-1;y=1;p=a[((r|0)+2|0)>>1];m=a[((r|0)+2|0)>>1];i=5;break;case 5:i=(m<<16>>16|0)<40?6:10;break;case 6:t=((v<<16>>16)+(a[(f+(m<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;A=C+(a[((j+(m<<16>>16)*80|0)+(m<<16>>
16<<1)|0)>>1]<<16>>16<<14)|0;A=A+(a[((j+(q<<16>>16)*80|0)+(m<<16>>16<<1)|0)>>1]<<16>>16<<15)|0;t=((t<<16>>16)*(t<<16>>16)|0)>>15&65535;A=(A+32768|0)>>16&65535;i=((y<<16>>16)*(t<<16>>16)|0)<<1;i=i-(((u<<16>>16)*(A<<16>>16)|0)<<1)|0;i=(i|0)>0?7:8;break;case 7:u=t;y=A;p=m;i=8;break;case 8:i=9;break;case 9:m=((m<<16>>16)+5|0)&65535;i=5;break;case 10:i=((w<<16>>16)*(u<<16>>16)|0)<<1;i=i-(((s<<16>>16)*(y<<16>>16)|0)<<1)|0;i=(i|0)>0?11:12;break;case 11:s=u;w=y;i=l|0;var z=q,D=i;i=D+2|0;a[D>>1]=z;a[i>>1]=
p;i=12;break;case 12:i=13;break;case 13:q=((q<<16>>16)+5|0)&65535;i=3;break;case 14:i=15;break;case 15:o=o+1&65535;i=1;break;case 16:B=d;return;default:x(0,"bad label: "+i)}}function jf(R,k,e,c,b,d,i,g,f,j){var n=B;B+=3444;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var l;for(l=0;;)switch(l){case 0:var q,m,p,o,r,s,v,t,u,w,y=n,A=n+4,C=n+84,z=n+164,D=n+244,E,F,I,K;q=R;m=k;p=e;o=c;r=b;s=d;v=i;t=g;u=f;w=j;K=r<<16>>16<<1;l=(K|0)!=((K&65535)<<16>>16|0)?1:2;break;case 1:h[w>>2]=1;I=((r<<16>>
16|0)>0?32767:-32768)&65535;l=3;break;case 2:I=K&65535;l=3;break;case 3:l=(o<<16>>16|0)<40?4:9;break;case 4:E=o;l=5;break;case 5:l=(E<<16>>16|0)<40?6:8;break;case 6:l=gf(a[((p+(E<<16>>16<<1)|0)+((-(o<<16>>16)|0)<<1)|0)>>1],I,w);l=$(a[(p+(E<<16>>16<<1)|0)>>1],l,w);a[(p+(E<<16>>16<<1)|0)>>1]=l;l=7;break;case 7:E=E+1&65535;l=5;break;case 8:l=9;break;case 9:pb(p,m,A|0,1,w);Gb(A|0,z|0,C|0,8);eb(p,z|0,D|0,w);hf(q,A|0,D|0,u,y|0,w);F=kf(q,y|0,z|0,s,p,v,t,w);l=(o<<16>>16|0)<40?10:15;break;case 10:E=o;l=11;
break;case 11:l=(E<<16>>16|0)<40?12:14;break;case 12:l=gf(a[((s+(E<<16>>16<<1)|0)+((-(o<<16>>16)|0)<<1)|0)>>1],I,w);l=$(a[(s+(E<<16>>16<<1)|0)>>1],l,w);a[(s+(E<<16>>16<<1)|0)>>1]=l;l=13;break;case 13:E=E+1&65535;l=11;break;case 14:l=15;break;case 15:return R=F,B=n,R;default:x(0,"bad label: "+l)}}function kf(R,k,e,c,b,d,i,g){var f=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z=f,D,E,F;n=R;l=k;q=e;m=c;p=b;o=d;r=i;
s=g;F=((lf|0)+(n<<16>>16<<1)|0)+(n<<16>>16<<2<<1)|0;n=0;j=1;break;case 1:j=(n<<16>>16|0)<40?2:4;break;case 2:a[(m+(n<<16>>16<<1)|0)>>1]=0;j=3;break;case 3:n=n+1&65535;j=1;break;case 4:t=A=C=0;j=5;break;case 5:j=(t<<16>>16|0)<2?6:16;break;case 6:n=a[(l+(t<<16>>16<<1)|0)>>1];v=a[(q+(n<<16>>16<<1)|0)>>1];j=((n<<16>>16)*6554|0)>>15;y=j&65535;u=((n<<16>>16)-((y<<16>>16)*5|0)|0)&65535;w=a[(F+(u<<16>>16<<1)|0)>>1];j=(t<<16>>16|0)==0?7:10;break;case 7:u=0;j=(w<<16>>16|0)!=0?8:9;break;case 8:y=((y<<16>>16)+
64|0)&65535;j=9;break;case 9:j=11;break;case 10:u=1;y=y<<16>>16<<3&65535;j=11;break;case 11:j=(v<<16>>16|0)>0?12:13;break;case 12:a[(m+(n<<16>>16<<1)|0)>>1]=8191;a[((z|0)+(t<<16>>16<<1)|0)>>1]=32767;A=((A<<16>>16)+(1<<(u<<16>>16))|0)&65535;j=14;break;case 13:a[(m+(n<<16>>16<<1)|0)>>1]=-8192;a[((z|0)+(t<<16>>16<<1)|0)>>1]=-32768;j=14;break;case 14:C=((C<<16>>16)+(y<<16>>16)|0)&65535;j=15;break;case 15:t=t+1&65535;j=5;break;case 16:a[r>>1]=A;D=p+((-(a[l>>1]<<16>>16)|0)<<1)|0;E=p+((-(a[(l+2|0)>>1]<<
16>>16)|0)<<1)|0;n=0;j=17;break;case 17:j=(n<<16>>16|0)<40?18:20;break;case 18:j=D;D=j+2|0;a:{j=a[j>>1];for(var I=a[(z|0)>>1],K=s,J=void 0,J=0;;)switch(J){case 0:var G,U;G=j;J=I;U=K;G=(G<<16>>16)*(J<<16>>16)|0;J=(G|0)!=1073741824?1:2;break;case 1:G<<=1;J=3;break;case 2:h[U>>2]=1;G=2147483647;J=3;break;case 3:j=G;break a;default:x(0,"bad label: "+J)}j=void 0}I=E;E=I+2|0;j=mf(j,a[I>>1],a[((z|0)+2|0)>>1],s);j=la(j,s);a[(o+(n<<16>>16<<1)|0)>>1]=j;j=19;break;case 19:n=n+1&65535;j=17;break;case 20:return R=
C,B=f,R;default:x(0,"bad label: "+j)}}function mf(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function nf(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;
c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function of(h,k,e,c,b,d,i,g){var f=B;B+=3448;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v=f,t=f+8,u=f+88,w=f+168,y=f+248,A,C;n=h;l=k;q=e;m=c;p=b;o=d;r=i;s=g;m=m<<16>>16<<1&65535;j=(q<<16>>16|0)<40?1:6;break;case 1:A=q;j=2;break;case 2:j=(A<<16>>16|0)<40?3:5;break;case 3:j=nf(a[(l+
(((A<<16>>16)-(q<<16>>16)|0)<<1)|0)>>1],m,s);j=$(a[(l+(A<<16>>16<<1)|0)>>1],j,s);a[(l+(A<<16>>16<<1)|0)>>1]=j;j=4;break;case 4:A=A+1&65535;j=2;break;case 5:j=6;break;case 6:pb(l,n,t|0,1,s);Gb(t|0,w|0,u|0,6);eb(l,w|0,y|0,s);pf(t|0,u|0,y|0,v|0,s);C=qf(v|0,w|0,p,l,o,r,s);j=(q<<16>>16|0)<40?7:12;break;case 7:A=q;j=8;break;case 8:j=(A<<16>>16|0)<40?9:11;break;case 9:j=nf(a[(p+(((A<<16>>16)-(q<<16>>16)|0)<<1)|0)>>1],m,s);j=$(a[(p+(A<<16>>16<<1)|0)>>1],j,s);a[(p+(A<<16>>16<<1)|0)>>1]=j;j=10;break;case 10:A=
A+1&65535;j=8;break;case 11:j=12;break;case 12:return h=C,B=f,h;default:x(0,"bad label: "+j)}}function pf(R,k,e,c,b){var d=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r,s,v,t,u=d,w,y,A,C,z,D,E,F,I,K;g=R;f=k;j=e;n=c;l=b;r=o=0;I=n|0;w=-1;D=1;s=0;i=1;break;case 1:i=(s<<16>>16|0)<3?2:4;break;case 2:i=s;var J=I;I=J+2|0;a[J>>1]=i;i=3;break;case 3:s=s+1&65535;i=1;break;case 4:v=1;i=5;break;case 5:i=(v<<16>>16|0)<4?6:36;break;case 6:t=
2;i=7;break;case 7:i=(t<<16>>16|0)<5?8:34;break;case 8:a[(u|0)>>1]=0;a[(u+2|0)>>1]=v;a[(u+4|0)>>1]=t;s=0;i=9;break;case 9:i=(s<<16>>16|0)<3?10:32;break;case 10:q=a[(u|0)>>1];i=11;break;case 11:i=(q<<16>>16|0)<40?12:30;break;case 12:i=(a[(f+(q<<16>>16<<1)|0)>>1]<<16>>16|0)>=0?13:28;break;case 13:y=a[(g+(q<<16>>16<<1)|0)>>1];K=a[((j+(q<<16>>16)*80|0)+(q<<16>>16<<1)|0)>>1]<<16>>16<<14;C=-1;E=1;r=0;o=a[(u+2|0)>>1];m=a[(u+2|0)>>1];i=14;break;case 14:i=(m<<16>>16|0)<40?15:19;break;case 15:A=((y<<16>>16)+
(a[(g+(m<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;F=K+(a[((j+(m<<16>>16)*80|0)+(m<<16>>16<<1)|0)>>1]<<16>>16<<14)|0;F=F+(a[((j+(q<<16>>16)*80|0)+(m<<16>>16<<1)|0)>>1]<<16>>16<<15)|0;z=((A<<16>>16)*(A<<16>>16)|0)>>15&65535;F=(F+32768|0)>>16&65535;i=((E<<16>>16)*(z<<16>>16)|0)<<1;i=i-(((C<<16>>16)*(F<<16>>16)|0)<<1)|0;i=(i|0)>0?16:17;break;case 16:C=z;r=A;E=F;o=m;i=17;break;case 17:i=18;break;case 18:m=((m<<16>>16)+5|0)&65535;i=14;break;case 19:m=o;y=r;K=E<<16>>16<<14;C=-1;E=1;r=0;o=a[(u+4|0)>>1];p=a[(u+
4|0)>>1];i=20;break;case 20:i=(p<<16>>16|0)<40?21:25;break;case 21:A=((y<<16>>16)+(a[(g+(p<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;F=K+(a[((j+(p<<16>>16)*80|0)+(p<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;F=F+(a[((j+(m<<16>>16)*80|0)+(p<<16>>16<<1)|0)>>1]<<16>>16<<13)|0;F=F+(a[((j+(q<<16>>16)*80|0)+(p<<16>>16<<1)|0)>>1]<<16>>16<<13)|0;z=((A<<16>>16)*(A<<16>>16)|0)>>15&65535;F=(F+32768|0)>>16&65535;i=((E<<16>>16)*(z<<16>>16)|0)<<1;i=i-(((C<<16>>16)*(F<<16>>16)|0)<<1)|0;i=(i|0)>0?22:23;break;case 22:C=z;r=A;E=
F;o=p;i=23;break;case 23:i=24;break;case 24:p=((p<<16>>16)+5|0)&65535;i=20;break;case 25:p=o;i=rf(D,C,l);var G=l,J=void 0,J=rf(w,E,G);a:{for(var U=void 0,U=0;;)switch(U){case 0:var fa,ja,pa;fa=i;U=J;ja=G;pa=fa-U|0;U=((fa^U)>>31|0)!=0?1:4;break;case 1:U=((pa^fa)&-2147483648|0)!=0?2:3;break;case 2:pa=(fa>>31|0)!=0?-2147483648:2147483647;h[ja>>2]=1;U=3;break;case 3:U=4;break;case 4:J=pa;break a;default:x(0,"bad label: "+U)}J=void 0}i=J;i=(i|0)>0?26:27;break;case 26:w=C;D=E;I=n|0;i=q;J=I;I=J+2|0;a[J>>
1]=i;i=m;J=I;I=J+2|0;a[J>>1]=i;a[I>>1]=p;i=27;break;case 27:i=28;break;case 28:i=29;break;case 29:q=((q<<16>>16)+5|0)&65535;i=11;break;case 30:i=a[(u+4|0)>>1];a[(u+4|0)>>1]=a[(u+2|0)>>1];a[(u+2|0)>>1]=a[(u|0)>>1];a[(u|0)>>1]=i;i=31;break;case 31:s=s+1&65535;i=9;break;case 32:i=33;break;case 33:t=((t<<16>>16)+2|0)&65535;i=7;break;case 34:i=35;break;case 35:v=((v<<16>>16)+2|0)&65535;i=5;break;case 36:B=d;return;default:x(0,"bad label: "+i)}}function hc(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,
i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function rf(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>
2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,"bad label: "+c)}}function sf(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function qf(h,k,e,c,b,d,i){var g=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o,r,s,v,t,u,w=g,y,A,C,z,D;j=h;n=k;l=e;q=c;m=b;p=d;o=i;r=0;f=1;break;
case 1:f=(r<<16>>16|0)<40?2:4;break;case 2:a[(l+(r<<16>>16<<1)|0)>>1]=0;f=3;break;case 3:r=r+1&65535;f=1;break;case 4:v=A=y=0;f=5;break;case 5:f=(v<<16>>16|0)<3?6:22;break;case 6:r=a[(j+(v<<16>>16<<1)|0)>>1];s=a[(n+(r<<16>>16<<1)|0)>>1];u=((r<<16>>16)*6554|0)>>15&65535;f=((u<<16>>16)*5|0)<<1;f>>=1;t=((r<<16>>16)-((f&65535)<<16>>16)|0)&65535;f=(t<<16>>16|0)==1?7:8;break;case 7:u=u<<16>>16<<4&65535;f=17;break;case 8:f=(t<<16>>16|0)==2?9:10;break;case 9:t=2;u=u<<16>>16<<8&65535;f=16;break;case 10:f=
(t<<16>>16|0)==3?11:12;break;case 11:t=1;u=u<<16>>16<<4&65535;u=((u<<16>>16)+8|0)&65535;f=15;break;case 12:f=(t<<16>>16|0)==4?13:14;break;case 13:t=2;u=u<<16>>16<<8&65535;u=((u<<16>>16)+128|0)&65535;f=14;break;case 14:f=15;break;case 15:f=16;break;case 16:f=17;break;case 17:f=(s<<16>>16|0)>0?18:19;break;case 18:a[(l+(r<<16>>16<<1)|0)>>1]=8191;a[(w+(v<<16>>16<<1)|0)>>1]=32767;t=1<<(t<<16>>16)&65535;A=((A<<16>>16)+(t<<16>>16)|0)&65535;f=20;break;case 19:a[(l+(r<<16>>16<<1)|0)>>1]=-8192;a[(w+(v<<16>>
16<<1)|0)>>1]=-32768;f=20;break;case 20:y=((y<<16>>16)+(u<<16>>16)|0)&65535;f=21;break;case 21:v=v+1&65535;f=5;break;case 22:a[p>>1]=A;C=q+((-(a[(j|0)>>1]<<16>>16)|0)<<1)|0;z=q+((-(a[(j+2|0)>>1]<<16>>16)|0)<<1)|0;D=q+((-(a[(j+4|0)>>1]<<16>>16)|0)<<1)|0;r=0;f=23;break;case 23:f=(r<<16>>16|0)<40?24:26;break;case 24:f=0;var E=C;C=E+2|0;f=hc(f,a[E>>1],a[(w|0)>>1],o);E=z;z=E+2|0;f=hc(f,a[E>>1],a[(w+2|0)>>1],o);E=D;D=E+2|0;f=hc(f,a[E>>1],a[(w+4|0)>>1],o);f=la(f,o);a[(m+(r<<16>>16<<1)|0)>>1]=f;f=25;break;
case 25:r=r+1&65535;f=23;break;case 26:return h=y,B=g,h;default:x(0,"bad label: "+f)}}function tf(h,k,e,c,b,d,i,g,f){var j=B;B+=3448;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var n;for(n=0;;)switch(n){case 0:var l,q,m,p,o,r,s,v,t,u=j,w=j+8,y=j+88,A=j+168,C=j+248,z,D;l=h;q=k;m=e;p=c;o=b;r=d;s=i;v=g;t=f;p=p<<16>>16<<1&65535;n=(m<<16>>16|0)<40?1:6;break;case 1:z=m;n=2;break;case 2:n=(z<<16>>16|0)<40?3:5;break;case 3:n=sf(a[(q+(((z<<16>>16)-(m<<16>>16)|0)<<1)|0)>>1],p,t);n=$(a[(q+(z<<
16>>16<<1)|0)>>1],n,t);a[(q+(z<<16>>16<<1)|0)>>1]=n;n=4;break;case 4:z=z+1&65535;n=2;break;case 5:n=6;break;case 6:pb(q,l,w|0,1,t);Gb(w|0,A|0,y|0,4);eb(q,A|0,C|0,t);uf(w|0,y|0,C|0,u|0,t);D=vf(u|0,A|0,o,q,r,s,v,t);n=((m<<16>>16)-40|0)&65535;n=(n<<16>>16|0)<0?7:12;break;case 7:z=m;n=8;break;case 8:n=(z<<16>>16|0)<40?9:11;break;case 9:n=sf(a[(o+(((z<<16>>16)-(m<<16>>16)|0)<<1)|0)>>1],p,t);n=$(a[(o+(z<<16>>16<<1)|0)>>1],n,t);a[(o+(z<<16>>16<<1)|0)>>1]=n;n=10;break;case 10:z=z+1&65535;n=8;break;case 11:n=
12;break;case 12:return h=D,B=j,h;default:x(0,"bad label: "+n)}}function uf(h,k,e,c){var b=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m,p,o,r,s,v=b,t,u,w,y,A,C,z,D,E,F;i=h;g=k;f=e;j=c;o=p=0;E=j|0;t=-1;C=1;r=0;d=1;break;case 1:d=(r<<16>>16|0)<4?2:4;break;case 2:d=r;var I=E;E=I+2|0;a[I>>1]=d;d=3;break;case 3:r=r+1&65535;d=1;break;case 4:s=3;d=5;break;case 5:d=(s<<16>>16|0)<5?6:38;break;case 6:a[(v|0)>>1]=0;a[(v+2|0)>>1]=1;a[(v+
4|0)>>1]=2;a[(v+6|0)>>1]=s;r=0;d=7;break;case 7:d=(r<<16>>16|0)<4?8:36;break;case 8:n=a[(v|0)>>1];d=9;break;case 9:d=(n<<16>>16|0)<40?10:34;break;case 10:d=(a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16|0)>=0?11:32;break;case 11:u=a[(i+(n<<16>>16<<1)|0)>>1];F=a[((f+(n<<16>>16)*80|0)+(n<<16>>16<<1)|0)>>1]<<16>>16<<14;y=-1;z=1;o=0;p=a[(v+2|0)>>1];l=a[(v+2|0)>>1];d=12;break;case 12:d=(l<<16>>16|0)<40?13:17;break;case 13:w=((u<<16>>16)+(a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;D=F+(a[((f+(l<<16>>16)*80|0)+(l<<
16>>16<<1)|0)>>1]<<16>>16<<14)|0;D=D+(a[((f+(n<<16>>16)*80|0)+(l<<16>>16<<1)|0)>>1]<<16>>16<<15)|0;A=((w<<16>>16)*(w<<16>>16)|0)>>15&65535;D=(D+32768|0)>>16&65535;d=((z<<16>>16)*(A<<16>>16)|0)<<1;d=d-(((y<<16>>16)*(D<<16>>16)|0)<<1)|0;d=(d|0)>0?14:15;break;case 14:y=A;o=w;z=D;p=l;d=15;break;case 15:d=16;break;case 16:l=((l<<16>>16)+5|0)&65535;d=12;break;case 17:l=p;u=o;F=z<<16>>16<<14;y=-1;z=1;o=0;p=a[(v+4|0)>>1];q=a[(v+4|0)>>1];d=18;break;case 18:d=(q<<16>>16|0)<40?19:23;break;case 19:w=((u<<16>>
16)+(a[(i+(q<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;D=F+(a[((f+(q<<16>>16)*80|0)+(q<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;D=D+(a[((f+(l<<16>>16)*80|0)+(q<<16>>16<<1)|0)>>1]<<16>>16<<13)|0;D=D+(a[((f+(n<<16>>16)*80|0)+(q<<16>>16<<1)|0)>>1]<<16>>16<<13)|0;A=((w<<16>>16)*(w<<16>>16)|0)>>15&65535;D=(D+32768|0)>>16&65535;d=((z<<16>>16)*(A<<16>>16)|0)<<1;d=d-(((y<<16>>16)*(D<<16>>16)|0)<<1)|0;d=(d|0)>0?20:21;break;case 20:y=A;o=w;z=D;p=q;d=21;break;case 21:d=22;break;case 22:q=((q<<16>>16)+5|0)&65535;d=18;break;
case 23:q=p;u=o;F=z<<16>>16<<16;y=-1;z=1;o=0;p=a[(v+6|0)>>1];m=a[(v+6|0)>>1];d=24;break;case 24:d=(m<<16>>16|0)<40?25:29;break;case 25:w=((u<<16>>16)+(a[(i+(m<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;D=F+(a[((f+(m<<16>>16)*80|0)+(m<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;D=D+(a[((f+(q<<16>>16)*80|0)+(m<<16>>16<<1)|0)>>1]<<16>>16<<13)|0;D=D+(a[((f+(l<<16>>16)*80|0)+(m<<16>>16<<1)|0)>>1]<<16>>16<<13)|0;D=D+(a[((f+(n<<16>>16)*80|0)+(m<<16>>16<<1)|0)>>1]<<16>>16<<13)|0;A=((w<<16>>16)*(w<<16>>16)|0)>>15&65535;D=
(D+32768|0)>>16&65535;d=((z<<16>>16)*(A<<16>>16)|0)<<1;d=d-(((y<<16>>16)*(D<<16>>16)|0)<<1)|0;d=(d|0)>0?26:27;break;case 26:y=A;o=w;z=D;p=m;d=27;break;case 27:d=28;break;case 28:m=((m<<16>>16)+5|0)&65535;d=24;break;case 29:d=((C<<16>>16)*(y<<16>>16)|0)<<1;d=d-(((t<<16>>16)*(z<<16>>16)|0)<<1)|0;d=(d|0)>0?30:31;break;case 30:t=y;C=z;E=j|0;d=n;I=E;E=I+2|0;a[I>>1]=d;d=l;I=E;E=I+2|0;a[I>>1]=d;d=q;I=E;E=I+2|0;a[I>>1]=d;a[E>>1]=p;d=31;break;case 31:d=32;break;case 32:d=33;break;case 33:n=((n<<16>>16)+5|
0)&65535;d=9;break;case 34:d=a[(v+6|0)>>1];a[(v+6|0)>>1]=a[(v+4|0)>>1];a[(v+4|0)>>1]=a[(v+2|0)>>1];a[(v+2|0)>>1]=a[(v|0)>>1];a[(v|0)>>1]=d;d=35;break;case 35:r=r+1&65535;d=7;break;case 36:d=37;break;case 37:s=s+1&65535;d=5;break;case 38:B=b;return;default:x(0,"bad label: "+d)}}function Hb(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=
(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function vf(h,k,e,c,b,d,i,g){var f=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v,t,u,w,y,A=f,C,z,D,E,F,I,K;n=h;l=k;q=e;m=c;p=b;o=d;r=i;s=g;K=q|0;v=0;j=1;break;case 1:j=(v<<16>>16|0)<40?2:4;break;case 2:j=K;K=j+2|0;a[j>>1]=0;j=3;break;case 3:v=v+1&65535;
j=1;break;case 4:u=z=C=0;j=5;break;case 5:j=(u<<16>>16|0)<4?6:22;break;case 6:v=a[(n+(u<<16>>16<<1)|0)>>1];t=a[(l+(v<<16>>16<<1)|0)>>1];y=((v<<16>>16)*6554|0)>>15&65535;j=((y<<16>>16)*5|0)<<1;j>>=1;w=((v<<16>>16)-((j&65535)<<16>>16)|0)&65535;y=a[(r+(y<<16>>16<<1)|0)>>1];j=(w<<16>>16|0)==1?7:8;break;case 7:y=y<<16>>16<<3&65535;j=17;break;case 8:j=(w<<16>>16|0)==2?9:10;break;case 9:y=y<<16>>16<<6&65535;j=16;break;case 10:j=(w<<16>>16|0)==3?11:12;break;case 11:y=y<<16>>16<<10&65535;j=15;break;case 12:j=
(w<<16>>16|0)==4?13:14;break;case 13:w=3;y=y<<16>>16<<10&65535;y=((y<<16>>16)+512|0)&65535;j=14;break;case 14:j=15;break;case 15:j=16;break;case 16:j=17;break;case 17:j=(t<<16>>16|0)>0?18:19;break;case 18:a[(q+(v<<16>>16<<1)|0)>>1]=8191;a[(A+(u<<16>>16<<1)|0)>>1]=32767;w=1<<(w<<16>>16)&65535;z=((z<<16>>16)+(w<<16>>16)|0)&65535;j=20;break;case 19:a[(q+(v<<16>>16<<1)|0)>>1]=-8192;a[(A+(u<<16>>16<<1)|0)>>1]=-32768;j=20;break;case 20:C=((C<<16>>16)+(y<<16>>16)|0)&65535;j=21;break;case 21:u=u+1&65535;
j=5;break;case 22:a[o>>1]=z;D=m+((-(a[(n|0)>>1]<<16>>16)|0)<<1)|0;E=m+((-(a[(n+2|0)>>1]<<16>>16)|0)<<1)|0;F=m+((-(a[(n+4|0)>>1]<<16>>16)|0)<<1)|0;I=m+((-(a[(n+6|0)>>1]<<16>>16)|0)<<1)|0;v=0;j=23;break;case 23:j=(v<<16>>16|0)<40?24:26;break;case 24:j=0;var J=D;D=J+2|0;j=Hb(j,a[J>>1],a[(A|0)>>1],s);J=E;E=J+2|0;j=Hb(j,a[J>>1],a[(A+2|0)>>1],s);J=F;F=J+2|0;j=Hb(j,a[J>>1],a[(A+4|0)>>1],s);J=I;I=J+2|0;j=Hb(j,a[J>>1],a[(A+6|0)>>1],s);j=la(j,s);a[(p+(v<<16>>16<<1)|0)>>1]=j;j=25;break;case 25:v=v+1&65535;j=
23;break;case 26:return h=C,B=f,h;default:x(0,"bad label: "+j)}}function wf(a,k,e,c,b,d,i){var g=B;B+=3424;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f=g+16,j=g+24,h=g+40,l=g+120,q=g+200,m=g+3400,p=g+3408;xf(e,a,h|0,2,4,4,i);$c(h|0,k,l|0,f|0,4,g|0,4,i);eb(e,l|0,q|0,i);ad(8,4,4,h|0,q|0,g|0,f|0,j|0,i);yf(j|0,l|0,c,e,b,m|0,p|0,i);zf(m|0,p|0,d,i);B=g}function cd(a,k,e){var c,b;b=(((k<<16>>16>>1&65535)<<16>>16)*5|0)<<1;b>>=1;c=b&65535;b=(((e<<16>>16>>1&65535)<<16>>16)*25|0)<<1;b>>=1;
c=((((((c<<16>>16)+((b&65535)<<16>>16)|0)&65535)<<16>>16)+((a<<16>>16>>1&65535)<<16>>16)|0)&65535)<<16>>16<<3&65535;return((c<<16>>16)+(((((((((k<<16>>16&1)<<16>>16<<1&65535)<<16>>16)+(((e<<16>>16&1)<<16>>16<<2&65535)<<16>>16)|0)&65535)<<16>>16)+((a<<16>>16&1)<<16>>16)|0)&65535)<<16>>16)|0)&65535}function Sa(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=
0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function yf(h,k,e,c,b,d,i,g){var f=B;B+=16;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v,t,u,w,y,A=f,C,z,D,E,F,I,K,J,G,U;n=h;l=k;q=e;m=c;p=b;o=d;r=i;s=g;G=q|0;U=n|0;v=0;j=1;break;case 1:j=(v<<16>>16|0)<40?2:4;break;case 2:j=G;G=j+2|0;a[j>>
1]=0;j=3;break;case 3:v=v+1&65535;j=1;break;case 4:v=0;j=5;break;case 5:j=(v<<16>>16|0)<4?6:8;break;case 6:a[(r+(v<<16>>16<<1)|0)>>1]=-1;a[(o+(v<<16>>16<<1)|0)>>1]=-1;j=7;break;case 7:v=v+1&65535;j=5;break;case 8:t=0;j=9;break;case 9:j=(t<<16>>16|0)<8?10:27;break;case 10:v=a[(n+(t<<16>>16<<1)|0)>>1];j=a[(l+(v<<16>>16<<1)|0)>>1];y=v<<16>>16>>2&65535;u=v<<16>>16&3;j=(j<<16>>16|0)>0?11:12;break;case 11:a[(q+(v<<16>>16<<1)|0)>>1]=((a[(q+(v<<16>>16<<1)|0)>>1]<<16>>16)+8191|0)&65535;a[(A+(t<<16>>16<<1)|
0)>>1]=32767;w=0;j=13;break;case 12:a[(q+(v<<16>>16<<1)|0)>>1]=((a[(q+(v<<16>>16<<1)|0)>>1]<<16>>16)-8191|0)&65535;a[(A+(t<<16>>16<<1)|0)>>1]=-32768;w=1;j=13;break;case 13:j=(a[(r+(u<<16>>16<<1)|0)>>1]<<16>>16|0)<0?14:15;break;case 14:a[(r+(u<<16>>16<<1)|0)>>1]=y;a[(o+(u<<16>>16<<1)|0)>>1]=w;j=25;break;case 15:j=((w<<16>>16^a[(o+(u<<16>>16<<1)|0)>>1]<<16>>16)&1|0)==0?16:20;break;case 16:j=(a[(r+(u<<16>>16<<1)|0)>>1]<<16>>16|0)<=(y<<16>>16|0)?17:18;break;case 17:a[(r+(((u<<16>>16)+4|0)<<1)|0)>>1]=
y;j=19;break;case 18:a[(r+(((u<<16>>16)+4|0)<<1)|0)>>1]=a[(r+(u<<16>>16<<1)|0)>>1];a[(r+(u<<16>>16<<1)|0)>>1]=y;a[(o+(u<<16>>16<<1)|0)>>1]=w;j=19;break;case 19:j=24;break;case 20:j=(a[(r+(u<<16>>16<<1)|0)>>1]<<16>>16|0)<=(y<<16>>16|0)?21:22;break;case 21:a[(r+(((u<<16>>16)+4|0)<<1)|0)>>1]=a[(r+(u<<16>>16<<1)|0)>>1];a[(r+(u<<16>>16<<1)|0)>>1]=y;a[(o+(u<<16>>16<<1)|0)>>1]=w;j=23;break;case 22:a[(r+(((u<<16>>16)+4|0)<<1)|0)>>1]=y;j=23;break;case 23:j=24;break;case 24:j=25;break;case 25:j=26;break;case 26:t=
t+1&65535;j=9;break;case 27:C=m;z=U;U=z+2|0;C=C+((-(a[z>>1]<<16>>16)|0)<<1)|0;z=m;D=U;U=D+2|0;z=z+((-(a[D>>1]<<16>>16)|0)<<1)|0;D=m;E=U;U=E+2|0;D=D+((-(a[E>>1]<<16>>16)|0)<<1)|0;E=m;F=U;U=F+2|0;E=E+((-(a[F>>1]<<16>>16)|0)<<1)|0;F=m;I=U;U=I+2|0;F=F+((-(a[I>>1]<<16>>16)|0)<<1)|0;I=m;v=U;U=v+2|0;I=I+((-(a[v>>1]<<16>>16)|0)<<1)|0;v=m;K=U;U=K+2|0;K=v+((-(a[K>>1]<<16>>16)|0)<<1)|0;J=m+((-(a[U>>1]<<16>>16)|0)<<1)|0;v=0;j=28;break;case 28:j=(v<<16>>16|0)<40?29:31;break;case 29:j=0;var fa=C;C=fa+2|0;j=Sa(j,
a[fa>>1],a[(A|0)>>1],s);fa=z;z=fa+2|0;j=Sa(j,a[fa>>1],a[(A+2|0)>>1],s);fa=D;D=fa+2|0;j=Sa(j,a[fa>>1],a[(A+4|0)>>1],s);fa=E;E=fa+2|0;j=Sa(j,a[fa>>1],a[(A+6|0)>>1],s);fa=F;F=fa+2|0;j=Sa(j,a[fa>>1],a[(A+8|0)>>1],s);fa=I;I=fa+2|0;j=Sa(j,a[fa>>1],a[(A+10|0)>>1],s);fa=K;K=fa+2|0;j=Sa(j,a[fa>>1],a[(A+12|0)>>1],s);fa=J;J=fa+2|0;j=Sa(j,a[fa>>1],a[(A+14|0)>>1],s);j=la(j,s);a[(p+(v<<16>>16<<1)|0)>>1]=j;j=30;break;case 30:v=v+1&65535;j=28;break;case 31:B=f;return;default:x(0,"bad label: "+j)}}function zf(h,k,
e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l;d=h;i=k;g=e;f=c;n=g|0;l=d|0;d=0;b=1;break;case 1:b=(d<<16>>16|0)<4?2:4;break;case 2:b=l;l=b+2|0;b=a[b>>1];var q=n;n=q+2|0;a[q>>1]=b;b=3;break;case 3:d=d+1&65535;b=1;break;case 4:j=cd(a[(i|0)>>1],a[(i+8|0)>>1],a[(i+2|0)>>1],f);a[(g+8|0)>>1]=j;j=cd(a[(i+4|0)>>1],a[(i+12|0)>>1],a[(i+10|0)>>1],f);a[(g+10|0)>>1]=j;b=a[(i+14|0)>>1]<<16>>16>>1&65535;b=b<<16>>16&1;j=a[(i+6|0)>>1]<<16>>16>>1&65535;b=(b<<16>>16|0)==1?5:6;break;case 5:j=(4-(j<<16>>16)|
0)&65535;b=6;break;case 6:b=a[(i+14|0)>>1]<<16>>16>>1&65535;h=((b<<16>>16)*5|0)<<1;h>>=1;b=h&65535;b=((b<<16>>16)+(j<<16>>16)|0)&65535;b=b<<16>>16<<5&65535;b=((b<<16>>16)+12|0)&65535;h=((b<<16>>16)*1311|0)>>15&65535;h=h<<16>>16<<2&65535;j=a[(i+6|0)>>1]<<16>>16&1;b=(a[(i+14|0)>>1]<<16>>16&1)<<16>>16<<1&65535;b=((b<<16>>16)+(h<<16>>16)|0)&65535;b=((b<<16>>16)+(j<<16>>16)|0)&65535;a[(g+12|0)>>1]=b;return;default:x(0,"bad label: "+b)}}function Ia(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=
k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Ib(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=
((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function dd(R,k,e,c,b){var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m,p,o,r,s,v;i=R;g=k;f=e;d=c;j=b;j=j+((-(f<<16>>16)|0)<<2)|0;p=i+((-(f<<16>>16)|0)<<1)|0;f=((((f<<16>>16)-(d<<16>>16)|0)>>2)+1|0)&65535;d=1;break;case 1:d=(f<<16>>16|0)>0?2:8;break;case 2:v=s=r=o=0;l=i|0;q=p;p=q+2|0;
n=p=p+2|0;p=n+2|0;m=n;p=p+2|0;n=g<<16>>16>>1&65535;d=3;break;case 3:d=(n<<16>>16|0)!=0?4:6;break;case 4:d=a[l>>1]<<16>>16;var t=q;q=t+2|0;o=o+(d*(a[t>>1]<<16>>16)|0)|0;r=r+((a[l>>1]<<16>>16)*(a[q>>1]<<16>>16)|0)|0;d=a[l>>1]<<16>>16;t=m;m=t+2|0;s=s+(d*(a[t>>1]<<16>>16)|0)|0;d=l;l=d+2|0;v=v+((a[d>>1]<<16>>16)*(a[m>>1]<<16>>16)|0)|0;d=a[l>>1]<<16>>16;t=q;q=t+2|0;o=o+(d*(a[t>>1]<<16>>16)|0)|0;r=r+((a[l>>1]<<16>>16)*(a[q>>1]<<16>>16)|0)|0;d=a[l>>1]<<16>>16;t=m;m=t+2|0;s=s+(d*(a[t>>1]<<16>>16)|0)|0;d=l;
l=d+2|0;v=v+((a[d>>1]<<16>>16)*(a[m>>1]<<16>>16)|0)|0;d=5;break;case 5:n=n-1&65535;d=3;break;case 6:d=o<<1;t=j;j=t+4|0;h[t>>2]=d;d=r<<1;t=j;j=t+4|0;h[t>>2]=d;d=s<<1;t=j;j=t+4|0;h[t>>2]=d;d=v<<1;t=j;j=t+4|0;h[t>>2]=d;d=7;break;case 7:f=f-1&65535;d=1;break;case 8:return;default:x(0,"bad label: "+d)}}function Af(R,k,e,c,b,d,i,g,f){var j=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var n;for(n=0;;)switch(n){case 0:var l,q,m,p,o,r,s,v,t,u,w,y,A,C,z,D,E,F=j,I=j+4;l=R;q=k;m=e;p=c;o=b;
r=d;s=i;v=g;t=f;z=A=y=w=u=0;n=1;break;case 1:n=(z<<16>>16|0)<(o<<16>>16|0)?2:4;break;case 2:n=a[(l+(z<<16>>16<<1)|0)>>1];C=a[(q+(z<<16>>16<<1)|0)>>1];u=u+((n<<16>>16)*(n<<16>>16)|0)|0;w=w+((C<<16>>16)*(C<<16>>16)|0)|0;y=y+((C<<16>>16)*(a[(m+(z<<16>>16<<1)|0)>>1]<<16>>16)|0)|0;a:{for(var K=p,J=t,G=void 0,G=0;;)switch(G){case 0:var U,fa;U=C;G=K;fa=J;U=(U<<16>>16)*(G<<16>>16)|0;G=(U|0)!=1073741824?1:2;break;case 1:U<<=1;G=3;break;case 2:h[fa>>2]=1;U=2147483647;G=3;break;case 3:C=U;break a;default:x(0,
"bad label: "+G)}C=void 0}C=Ia(C,1,t);C=la(C,t);C=ha(n,C,t);A=Ib(A,C,C,t);n=3;break;case 3:z=z+1&65535;n=1;break;case 4:u<<=1;w<<=1;y<<=1;n=(u&-2147483648|0)!=0?5:6;break;case 5:u=2147483647;h[t>>2]=1;n=6;break;case 6:n=(u|0)<400?7:8;break;case 7:a[(r|0)>>1]=0;a[(s|0)>>1]=-15;n=9;break;case 8:D=oa(u);n=Ia(u,D,t)>>16&65535;a[(r|0)>>1]=n;a[(s|0)>>1]=(15-(D<<16>>16)|0)&65535;n=9;break;case 9:n=(w&-2147483648|0)!=0?10:11;break;case 10:w=2147483647;h[t>>2]=1;n=11;break;case 11:D=oa(w);E=Ia(w,D,t)>>16&
65535;a[(r+2|0)>>1]=E;a[(s+2|0)>>1]=(15-(D<<16>>16)|0)&65535;D=oa(y);E=Ia(y,D,t)>>16&65535;a[(r+4|0)>>1]=E;a[(s+4|0)>>1]=(2-(D<<16>>16)|0)&65535;D=oa(A);E=Ia(A,D,t)>>16&65535;D=(15-(D<<16>>16)|0)&65535;a[(r+6|0)>>1]=E;a[(s+6|0)>>1]=D;n=(E<<16>>16|0)>0?12:14;break;case 12:n=(a[(r|0)>>1]<<16>>16|0)!=0?13:14;break;case 13:n=ra(a[(r|0)>>1],1,t);n=xa(n,E);D=ha(D,a[(s|0)>>1],t);C=n<<16>>16<<16;a:{n=C;C=((D<<16>>16)+3|0)&65535;K=void 0;for(K=0;;)switch(K){case 0:var ja,pa,H;ja=n;pa=C;H=0;K=(pa<<16>>16|0)>
0?1:4;break;case 1:K=(pa<<16>>16|0)<31?2:3;break;case 2:H=ja>>(pa<<16>>16|0);K=3;break;case 3:K=7;break;case 4:pa=(-(pa<<16>>16)|0)&65535;H=ja<<(pa<<16>>16);K=(H>>(pa<<16>>16|0)|0)!=(ja|0)?5:6;break;case 5:H=ja>>31^2147483647;K=6;break;case 6:K=7;break;case 7:C=H;break a;default:x(0,"bad label: "+K)}C=void 0}Za(C,F,I,t);C=Bf((((a[F>>1]<<16>>16)-27|0)&65535)<<16>>16<<16,a[I>>1],1,t);n=Ia(C,13,t);n=la(n,t);a[v>>1]=n;n=15;break;case 14:a[v>>1]=0;n=15;break;case 15:B=j;return;default:x(0,"bad label: "+
n)}}function Cf(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e<<16>>16|0)==-32768?1:2;break;case 1:var c=32767;k=3;break;case 2:c=-(e<<16>>16)|0;k=3;break;case 3:return c&65535;default:x(0,"bad label: "+k)}}function ed(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|
0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function fd(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function ic(h,k,e,c,b,d,i,g,f,j,n){var l=B;B+=80;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var q;for(q=0;;)switch(q){case 0:var m,
p,o,r,s,v,t,u,w,y,A,C,z,D,E,F,I=l;m=h;p=k;o=e;r=c;s=b;q=d;v=i;t=g;u=f;w=j;y=n;a[(v|0)>>1]=a[(q|0)>>1];a[(t|0)>>1]=a[(q+2|0)>>1];var K=Cf(a[(q+4|0)>>1]);a[(v+2|0)>>1]=K;a[(t+2|0)>>1]=((a[(q+6|0)>>1]<<16>>16)+1|0)&65535;q=(m|0)==5?2:1;break;case 1:q=(m|0)==0?2:3;break;case 2:z=C=A=0;q=4;break;case 3:z=C=A=1;q=4;break;case 4:D=0;q=5;break;case 5:q=(D<<16>>16|0)<40?6:8;break;case 6:q=a[(s+(D<<16>>16<<1)|0)>>1]<<16>>16>>3&65535;a[(I+(D<<16>>16<<1)|0)>>1]=q;A=Ib(A,q,q,y);C=Ib(C,a[(p+(D<<16>>16<<1)|0)>>
1],q,y);z=Ib(z,a[(r+(D<<16>>16<<1)|0)>>1],q,y);q=7;break;case 7:D=D+1&65535;q=5;break;case 8:E=oa(A);q=Ia(A,E,y)>>16&65535;a[(v+4|0)>>1]=q;a[(t+4|0)>>1]=(-3-(E<<16>>16)|0)&65535;E=oa(C);q=Ia(C,E,y)>>16&65535;q=Cf(q);a[(v+6|0)>>1]=q;a[(t+6|0)>>1]=(7-(E<<16>>16)|0)&65535;E=oa(z);q=Ia(z,E,y)>>16&65535;a[(v+8|0)>>1]=q;a[(t+8|0)>>1]=(7-(E<<16>>16)|0)&65535;q=(m|0)==5?10:9;break;case 9:q=(m|0)==0?10:18;break;case 10:D=A=0;q=11;break;case 11:q=(D<<16>>16|0)<40?12:14;break;case 12:A=A+((a[(o+(D<<16>>16<<
1)|0)>>1]<<16>>16)*(a[(I+(D<<16>>16<<1)|0)>>1]<<16>>16)|0)|0;q=13;break;case 13:D=D+1&65535;q=11;break;case 14:A<<=1;E=oa(A);F=Ia(A,E,y)>>16&65535;E=(6-(E<<16>>16)|0)&65535;q=(F<<16>>16|0)<=0?15:16;break;case 15:a[u>>1]=0;a[w>>1]=0;q=17;break;case 16:q=ra(F,1,y);q=xa(q,a[(v+4|0)>>1]);a[u>>1]=q;a[w>>1]=(((E<<16>>16)-(a[(t+4|0)>>1]<<16>>16)|0)-14|0)&65535;q=17;break;case 17:q=18;break;case 18:B=l;return;default:x(0,"bad label: "+q)}}function gd(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,
j,n;d=R;i=k;g=e;f=c;n=j=0;b=1;break;case 1:b=(n<<16>>16|0)<40?2:4;break;case 2:j=j+((a[(d+(n<<16>>16<<1)|0)>>1]<<16>>16)*(a[(d+(n<<16>>16<<1)|0)>>1]<<16>>16)|0)|0;b=3;break;case 3:n=n+1&65535;b=1;break;case 4:b=(j|0)<0?5:6;break;case 5:h[f>>2]=1;j=2147483647;b=6;break;case 6:R=oa(j);f=Ia(j,R,f)>>16&65535;a[g>>1]=f;a[i>>1]=(16-(R<<16>>16)|0)&65535;return;default:x(0,"bad label: "+b)}}function Df(R,k,e,c,b,d,i,g,f,j,n,l,q){var m=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var p;
for(p=0;;)switch(p){case 0:var o,r,s,v,t,u,w,y,A,C,z,D,E,F=m,I,K;o=R;r=k;s=e;v=c;t=b;u=d;w=i;y=g;A=f;C=j;z=n;D=l;E=q;p=(C|0)==0?2:1;break;case 1:p=(C|0)==1?2:3;break;case 2:p=jf(z,o,r,s,v,w,y,F,h[(D+76|0)>>2],E);var J=A,G=h[J>>2];h[J>>2]=G+2|0;a[G>>1]=p;p=a[F>>1];J=A;G=h[J>>2];h[J>>2]=G+2|0;a[G>>1]=p;p=33;break;case 3:p=(C|0)==2?4:5;break;case 4:p=af(o,r,s,v,w,y,F,E);J=A;G=h[J>>2];h[J>>2]=G+2|0;a[G>>1]=p;p=a[F>>1];J=A;G=h[J>>2];h[J>>2]=G+2|0;a[G>>1]=p;p=32;break;case 5:p=(C|0)==3?6:7;break;case 6:p=
of(o,r,s,v,w,y,F,E);J=A;G=h[J>>2];h[J>>2]=G+2|0;a[G>>1]=p;p=a[F>>1];J=A;G=h[J>>2];h[J>>2]=G+2|0;a[G>>1]=p;p=31;break;case 7:p=(C|0)==4?9:8;break;case 8:p=(C|0)==5?9:10;break;case 9:p=tf(o,r,s,v,w,y,F,h[(D+36|0)>>2],E);J=A;G=h[J>>2];h[J>>2]=G+2|0;a[G>>1]=p;p=a[F>>1];J=A;G=h[J>>2];h[J>>2]=G+2|0;a[G>>1]=p;p=30;break;case 10:p=(C|0)==6?11:20;break;case 11:K=ed(v,1,E);I=s;p=12;break;case 12:p=(I<<16>>16|0)<40?13:15;break;case 13:p=fd(a[(r+(((I<<16>>16)-(s<<16>>16)|0)<<1)|0)>>1],K,E);p=$(a[(r+(I<<16>>16<<
1)|0)>>1],p,E);a[(r+(I<<16>>16<<1)|0)>>1]=p;p=14;break;case 14:I=I+1&65535;p=12;break;case 15:wf(o,u,r,w,y,h[A>>2],E);I=A;h[I>>2]=h[I>>2]+14|0;I=s;p=16;break;case 16:p=(I<<16>>16|0)<40?17:19;break;case 17:p=fd(a[(w+(((I<<16>>16)-(s<<16>>16)|0)<<1)|0)>>1],K,E);p=$(a[(w+(I<<16>>16<<1)|0)>>1],p,E);a[(w+(I<<16>>16<<1)|0)>>1]=p;p=18;break;case 18:I=I+1&65535;p=16;break;case 19:p=29;break;case 20:K=ed(t,1,E);I=s;p=21;break;case 21:p=(I<<16>>16|0)<40?22:24;break;case 22:p=((a[(r+(((I<<16>>16)-(s<<16>>16)|
0)<<1)|0)>>1]<<16>>16)*(K<<16>>16)|0)>>15&65535;p=$(a[(r+(I<<16>>16<<1)|0)>>1],p,E);a[(r+(I<<16>>16<<1)|0)>>1]=p;p=23;break;case 23:I=I+1&65535;p=21;break;case 24:Ye(o,u,r,w,y,h[A>>2],h[(D+36|0)>>2],E);I=A;h[I>>2]=h[I>>2]+20|0;I=s;p=25;break;case 25:p=(I<<16>>16|0)<40?26:28;break;case 26:p=fd(a[(w+(((I<<16>>16)-(s<<16>>16)|0)<<1)|0)>>1],K,E);p=$(a[(w+(I<<16>>16<<1)|0)>>1],p,E);a[(w+(I<<16>>16<<1)|0)>>1]=p;p=27;break;case 27:I=I+1&65535;p=25;break;case 28:p=29;break;case 29:p=30;break;case 30:p=31;
break;case 31:p=32;break;case 32:p=33;break;case 33:B=m;return;default:x(0,"bad label: "+p)}}function Ef(h){var k;for(k=0;;)switch(k){case 0:var e,c;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:k=c|0;for(e=k+14;k<e;k++)N[k]=0;a[(c+14|0)>>1]=0;e=a[(c+16|0)>>1]=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function Jb(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>
16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function jc(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,"bad label: "+c)}}function kc(a,
k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function Ff(R,k,e,c,b,d,i,g,f,j,n,l){var q=B;B+=20;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var m;
for(m=0;;)switch(m){case 0:var p,o,r,s,v,t,u,w,y,A,C,z,D,E,F,I,K,J,G,U=q,fa,ja,pa;p=R;o=k;r=e;s=c;v=b;t=d;u=i;w=g;y=f;A=j;C=n;z=l;E=r;D=0;m=1;break;case 1:m=(D<<16>>16|0)<6?2:4;break;case 2:a[((p|0)+(D<<16>>16<<1)|0)>>1]=a[((p|0)+(((D<<16>>16)+1|0)<<1)|0)>>1];m=3;break;case 3:D=D+1&65535;m=1;break;case 4:a[((p|0)+12|0)>>1]=r;D=F=0;m=5;break;case 5:m=(D<<16>>16|0)<10?6:11;break;case 6:fa=ha(a[(v+(D<<16>>16<<1)|0)>>1],a[(s+(D<<16>>16<<1)|0)>>1],z);pa=void 0;pa=((fa<<16>>16)-((fa<<16>>16|0)<0&1)|0)&
65535;fa=pa=(pa<<16>>16^pa<<16>>16>>15)&65535;pa=((db(fa)<<16>>16)-1|0)&65535;fa=Jb(fa,pa,z);m=db(a[(v+(D<<16>>16<<1)|0)>>1]);ja=Jb(a[(v+(D<<16>>16<<1)|0)>>1],m,z);ja=xa(fa,ja);a[(U+(D<<16>>16<<1)|0)>>1]=ja;pa=(((pa<<16>>16)+2|0)-(m<<16>>16)|0)&65535;m=(pa<<16>>16|0)>=0?7:8;break;case 7:m=ra(a[((U|0)+(D<<16>>16<<1)|0)>>1],pa,z);a[((U|0)+(D<<16>>16<<1)|0)>>1]=m;m=9;break;case 8:m=a[((U|0)+(D<<16>>16<<1)|0)>>1];a:{ja=pa;for(var H=void 0,H=0;;)switch(H){case 0:var Z;Z=ja;H=(Z<<16>>16|0)==-32768?1:2;
break;case 1:var ka=32767,H=3;break;case 2:ka=-(Z<<16>>16)|0;H=3;break;case 3:ja=ka&65535;break a;default:x(0,"bad label: "+H)}ja=void 0}m=Jb(m,ja,z);a[((U|0)+(D<<16>>16<<1)|0)>>1]=m;m=9;break;case 9:F=$(F,a[((U|0)+(D<<16>>16<<1)|0)>>1],z);m=10;break;case 10:D=D+1&65535;m=5;break;case 11:m=(F<<16>>16|0)>5325?12:13;break;case 12:m=p+14|0;a[m>>1]=((a[m>>1]<<16>>16)+1|0)&65535;m=14;break;case 13:a[(p+14|0)>>1]=0;m=14;break;case 14:m=(a[(p+14|0)>>1]<<16>>16|0)>10?15:16;break;case 15:a[(p+16|0)>>1]=0;
m=16;break;case 16:K=8192;m=o>>>0<=3?18:17;break;case 17:m=(o|0)==6?18:54;break;case 18:m=(w<<16>>16|0)!=0?19:20;break;case 19:m=(y<<16>>16|0)!=0?22:20;break;case 20:m=(t<<16>>16|0)!=0?22:21;break;case 21:m=(u<<16>>16|0)!=0?22:28;break;case 22:m=(C<<16>>16|0)>1?23:28;break;case 23:m=(A<<16>>16|0)!=0?24:28;break;case 24:m=(o|0)==0?27:25;break;case 25:m=(o|0)==1?27:26;break;case 26:m=(o|0)==2?27:28;break;case 27:I=((F<<16>>16)-4506|0)&65535;m=29;break;case 28:I=((F<<16>>16)-3277|0)&65535;m=29;break;
case 29:m=(I<<16>>16|0)>0?30:31;break;case 30:fa=I;m=32;break;case 31:fa=0;m=32;break;case 32:m=2048<(fa<<16>>16|0)?33:34;break;case 33:K=8192;m=35;break;case 34:K=Jb(fa,2,z);m=35;break;case 35:m=(a[(p+16|0)>>1]<<16>>16|0)<40?37:36;break;case 36:m=(F<<16>>16|0)>5325?37:38;break;case 37:K=8192;m=38;break;case 38:G=jc(6554,a[((p|0)+4|0)>>1],z);D=3;m=39;break;case 39:m=(D<<16>>16|0)<7?40:42;break;case 40:G=kc(G,6554,a[((p|0)+(D<<16>>16<<1)|0)>>1],z);m=41;break;case 41:D=D+1&65535;m=39;break;case 42:J=
la(G,z);m=(t<<16>>16|0)!=0?44:43;break;case 43:m=(u<<16>>16|0)!=0?44:53;break;case 44:m=(A<<16>>16|0)!=0?45:53;break;case 45:m=(o|0)==0?48:46;break;case 46:m=(o|0)==1?48:47;break;case 47:m=(o|0)==2?48:53;break;case 48:G=jc(4681,a[(p|0)>>1],z);D=1;m=49;break;case 49:m=(D<<16>>16|0)<7?50:52;break;case 50:G=kc(G,4681,a[((p|0)+(D<<16>>16<<1)|0)>>1],z);m=51;break;case 51:D=D+1&65535;m=49;break;case 52:J=la(G,z);m=53;break;case 53:G=jc(K,E,z);G=kc(G,8192,J,z);m=z;E=void 0;E=jc(K,J,m);a:{ja=void 0;for(ja=
0;;)switch(ja){case 0:var Q,T,X;Q=G;ja=E;T=m;X=Q-ja|0;ja=((Q^ja)>>31|0)!=0?1:4;break;case 1:ja=((X^Q)&-2147483648|0)!=0?2:3;break;case 2:X=(Q>>31|0)!=0?-2147483648:2147483647;h[T>>2]=1;ja=3;break;case 3:ja=4;break;case 4:E=X;break a;default:x(0,"bad label: "+ja)}E=void 0}G=E;a:{E=G;m=void 0;for(m=0;;)switch(m){case 0:var N,L,Aa;N=E;L=2;Aa=0;m=(L<<16>>16|0)>0?1:4;break;case 1:Aa=N<<(L<<16>>16);m=(Aa>>(L<<16>>16|0)|0)!=(N|0)?2:3;break;case 2:Aa=N>>31^2147483647;m=3;break;case 3:m=7;break;case 4:L=(-(L<<
16>>16)|0)&65535;m=(L<<16>>16|0)<31?5:6;break;case 5:Aa=N>>(L<<16>>16|0);m=6;break;case 6:m=7;break;case 7:E=Aa;break a;default:x(0,"bad label: "+m)}E=void 0}E=la(E,z);m=54;break;case 54:return R=p+16|0,a[R>>1]=((a[R>>1]<<16>>16)+1|0)&65535,R=E,B=q,R;default:x(0,"bad label: "+m)}}function Gf(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e|0)==0?2:1;break;case 1:k=(h[e>>2]|0)==0?2:3;break;case 2:k=4;break;case 3:a:{k=h[e>>2]|0;for(var c=void 0,c=0;;)switch(c){case 0:var b;b=k;c=(b|0)==0?2:1;break;
case 1:c=(h[b>>2]|0)==0?2:3;break;case 2:c=4;break;case 3:wa(h[b>>2]);h[b>>2]=0;c=4;break;case 4:break a;default:x(0,"bad label: "+c)}}wa(h[e>>2]);h[e>>2]=0;k=4;break;case 4:return;default:x(0,"bad label: "+k)}}function hd(a){var k;for(k=0;;)switch(k){case 0:var e,c;c=a;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:Hf(h[(c|0)>>2]);e=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function If(R,k,e,c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t){var u=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,
"Ran out of stack");var w;for(w=0;;)switch(w){case 0:var y,A,C,z,D,E,F,I,K,J,G,U,fa,ja,pa,H,Z,ka,Q,T,X=u,N=u+4,L,Aa,Ja,ca,P;y=R;A=k;C=e;z=c;D=b;E=d;F=i;I=g;K=f;w=j;J=n;G=l;U=q;fa=m;ja=p;pa=o;H=r;Z=s;ka=v;Q=t;y=Jf(h[(y|0)>>2],C,D,F,K,E,40,z,fa,N,X,Q);a[U>>1]=y;X=a[X>>1];y=H;z=h[y>>2];h[y>>2]=z+2|0;a[z>>1]=X;qb(F,a[U>>1],a[fa>>1],40,a[N>>1],Q);Kb(F,E,G,40);E=Kf(C,K,G,pa,40,Q);a[ja>>1]=E;E=0;a[Z>>1]=32767;w=(w<<16>>16|0)!=0?1:3;break;case 1:w=(a[ja>>1]<<16>>16|0)>15565?2:3;break;case 2:a:{w=A;E=a[ja>>
1];U=Q;fa=void 0;for(fa=0;;)switch(fa){case 0:var aa,da,M,S,O;da=w;M=E;S=U;O=ra(M,3,S);M=0;fa=1;break;case 1:fa=(M<<16>>16|0)<7?2:4;break;case 2:O=$(O,a[((da+2|0)+(M<<16>>16<<1)|0)>>1],S);fa=3;break;case 3:M=M+1&65535;fa=1;break;case 4:fa=(O<<16>>16|0)>15565?5:6;break;case 5:aa=1;fa=7;break;case 6:aa=0;fa=7;break;case 7:E=aa;break a;default:x(0,"bad label: "+fa)}E=void 0}w=3;break;case 3:w=(C|0)==0?5:4;break;case 4:w=(C|0)==1?5:11;break;case 5:w=(a[ja>>1]<<16>>16|0)>13926?6:7;break;case 6:var Y=13926;
w=8;break;case 7:Y=a[ja>>1]<<16>>16;w=8;break;case 8:a[ja>>1]=Y&65535;w=(E<<16>>16|0)!=0?9:10;break;case 9:a[Z>>1]=15565;w=10;break;case 10:w=16;break;case 11:w=(E<<16>>16|0)!=0?12:13;break;case 12:a[Z>>1]=15565;a[ja>>1]=15565;w=13;break;case 13:w=(C|0)==7?14:15;break;case 14:w=id(7,a[Z>>1],ja,0,0,ka,Q);U=H;fa=h[U>>2];h[U>>2]=fa+2|0;a[fa>>1]=w;w=15;break;case 15:w=16;break;case 16:Aa=F|0;Ja=K|0;ca=J|0;P=G|0;L=a[ja>>1];T=0;w=17;break;case 17:w=(T<<16>>16|0)<40?18:20;break;case 18:w=P;P=w+2|0;w=((a[w>>
1]<<16>>16)*(L<<16>>16)|0)>>14;U=Ja;Ja=U+2|0;w=((a[U>>1]<<16>>16)-((w&65535)<<16>>16)|0)&65535;U=ca;ca=U+2|0;a[U>>1]=w;w=Aa;Aa=w+2|0;w=((a[w>>1]<<16>>16)*(L<<16>>16)|0)>>14;U=I+(T<<16>>16<<1)|0;a[U>>1]=((a[U>>1]<<16>>16)-((w&65535)<<16>>16)|0)&65535;w=19;break;case 19:T=T+1&65535;w=17;break;case 20:B=u;return;default:x(0,"bad label: "+w)}}function Lf(a,k){var e=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var c;for(c=0;;)switch(c){case 0:var b,d,i,g=e;d=a;i=k;c=(d|0)==0?1:2;break;
case 1:b=-1;c=14;break;case 2:h[d>>2]=0;c=va(2532);h[g>>2]=c;c=(c|0)==0?3:4;break;case 3:b=-1;c=14;break;case 4:jd(h[g>>2]+2392|0);h[(h[g>>2]+2188|0)>>2]=0;h[(h[g>>2]+2192|0)>>2]=0;h[(h[g>>2]+2196|0)>>2]=0;h[(h[g>>2]+2200|0)>>2]=0;h[(h[g>>2]+2204|0)>>2]=0;h[(h[g>>2]+2208|0)>>2]=0;h[(h[g>>2]+2212|0)>>2]=0;h[(h[g>>2]+2220|0)>>2]=0;h[(h[g>>2]+2216|0)>>2]=i;h[(h[g>>2]+2528|0)>>2]=0;a:{var f=h[g>>2]+2196|0;c=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");for(var j=void 0,j=0;;)switch(j){case 0:var n,
l,q=c;l=f;j=(l|0)==0?1:2;break;case 1:n=-1;j=7;break;case 2:h[l>>2]=0;j=va(4);h[q>>2]=j;j=(j|0)==0?3:4;break;case 3:n=-1;j=7;break;case 4:b:{for(var j=h[q>>2]|0,m=void 0,m=0;;)switch(m){case 0:var p,o,r;o=j;m=(o|0)==0?1:2;break;case 1:p=-1;m=5;break;case 2:h[o>>2]=0;r=m=va(2);m=(m|0)==0?3:4;break;case 3:p=-1;m=5;break;case 4:Hf(r);h[o>>2]=r;p=0;m=5;break;case 5:j=p;break b;default:x(0,"bad label: "+m)}j=void 0}j=j<<16>>16!=0?5:6;break;case 5:Gf(q);n=-1;j=7;break;case 6:hd(h[q>>2]);h[l>>2]=h[q>>2];
n=0;j=7;break;case 7:f=n;B=c;c=f;break a;default:x(0,"bad label: "+j)}c=void 0}c=(c<<16>>16|0)!=0?12:5;break;case 5:a:{c=h[g>>2]+2192|0;f=void 0;for(f=0;;)switch(f){case 0:var s,v,t;v=c;f=(v|0)==0?1:2;break;case 1:s=-1;f=9;break;case 2:h[v>>2]=0;t=f=va(44);f=(f|0)==0?3:4;break;case 3:s=-1;f=9;break;case 4:b:{f=t+40|0;j=void 0;for(j=0;;)switch(j){case 0:var u,w,y;w=f;j=(w|0)==0?1:2;break;case 1:u=-1;j=5;break;case 2:h[w>>2]=0;y=j=va(20);j=(j|0)==0?3:4;break;case 3:u=-1;j=5;break;case 4:Mf(y);h[w>>
2]=y;u=0;j=5;break;case 5:f=u;break b;default:x(0,"bad label: "+j)}f=void 0}f=0!=(f<<16>>16|0)?5:6;break;case 5:s=-1;f=9;break;case 6:f=0!=(kd(t)<<16>>16|0)?7:8;break;case 7:s=-1;f=9;break;case 8:h[v>>2]=t;s=0;f=9;break;case 9:c=s;break a;default:x(0,"bad label: "+f)}c=void 0}c=(c<<16>>16|0)!=0?12:6;break;case 6:c=(Nf(h[g>>2]+2200|0)<<16>>16|0)!=0?12:7;break;case 7:a:{c=h[g>>2]+2204|0;f=void 0;for(f=0;;)switch(f){case 0:var A,C,z;C=c;f=(C|0)==0?1:2;break;case 1:A=-1;f=5;break;case 2:h[C>>2]=0;z=f=
va(6);f=(f|0)==0?3:4;break;case 3:A=-1;f=5;break;case 4:Of(z);h[C>>2]=z;A=0;f=5;break;case 5:c=A;break a;default:x(0,"bad label: "+f)}c=void 0}c=(c<<16>>16|0)!=0?12:8;break;case 8:a:{c=h[g>>2]+2208|0;f=void 0;for(f=0;;)switch(f){case 0:var D,E,F;E=c;f=(E|0)==0?1:2;break;case 1:D=-1;f=5;break;case 2:h[E>>2]=0;F=f=va(16);f=(f|0)==0?3:4;break;case 3:D=-1;f=5;break;case 4:Pf(F);h[E>>2]=F;D=0;f=5;break;case 5:c=D;break a;default:x(0,"bad label: "+f)}c=void 0}c=(c<<16>>16|0)!=0?12:9;break;case 9:a:{c=h[g>>
2]+2212|0;f=void 0;for(f=0;;)switch(f){case 0:var I,K,J;K=c;f=(K|0)==0?1:2;break;case 1:I=-1;f=5;break;case 2:h[K>>2]=0;J=f=va(128);f=(f|0)==0?3:4;break;case 3:I=-1;f=5;break;case 4:ld(J);h[K>>2]=J;I=0;f=5;break;case 5:c=I;break a;default:x(0,"bad label: "+f)}c=void 0}c=(c<<16>>16|0)!=0?12:10;break;case 10:a:{c=h[g>>2]+2220|0;f=h[((h[g>>2]+2392|0)+40|0)>>2];j=void 0;for(j=0;;)switch(j){case 0:var G,U,fa,ja;U=c;fa=f;j=(U|0)==0?1:2;break;case 1:G=-1;j=5;break;case 2:h[U>>2]=0;ja=j=va(192);j=(j|0)==
0?3:4;break;case 3:G=-1;j=5;break;case 4:md(ja,fa);h[U>>2]=ja;G=0;j=5;break;case 5:c=G;break a;default:x(0,"bad label: "+j)}c=void 0}c=(c<<16>>16|0)!=0?12:11;break;case 11:a:{f=h[g>>2]+2188|0;c=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");j=void 0;for(j=0;;)switch(j){case 0:var H,N,Z=c;N=f;j=(N|0)==0?1:2;break;case 1:H=-1;j=7;break;case 2:h[N>>2]=0;j=va(4);h[Z>>2]=j;j=(j|0)==0?3:4;break;case 3:H=-1;j=7;break;case 4:h[(h[Z>>2]|0)>>2]=0;b:{j=h[Z>>2]|0;m=void 0;for(m=0;;)switch(m){case 0:var ka,
Q,T;Q=j;m=(Q|0)==0?1:2;break;case 1:ka=-1;m=5;break;case 2:h[Q>>2]=0;T=m=va(22);m=(m|0)==0?3:4;break;case 3:ka=-1;m=5;break;case 4:Qf(T);h[Q>>2]=T;ka=0;m=5;break;case 5:j=ka;break b;default:x(0,"bad label: "+m)}j=void 0}j=j<<16>>16!=0?5:6;break;case 5:Rf(Z);H=-1;j=7;break;case 6:Sf(h[Z>>2]);h[N>>2]=h[Z>>2];H=0;j=7;break;case 7:f=H;B=c;c=f;break a;default:x(0,"bad label: "+j)}c=void 0}c=(c<<16>>16|0)!=0?12:13;break;case 12:nd(g);b=-1;c=14;break;case 13:od(h[g>>2]);h[d>>2]=h[g>>2];b=0;c=14;break;case 14:return B=
e,b;default:x(0,"bad label: "+c)}}function nd(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e|0)==0?2:1;break;case 1:k=(h[e>>2]|0)==0?2:3;break;case 2:k=4;break;case 3:Rf(h[e>>2]+2188|0);a:{k=h[e>>2]+2192|0;for(var c=void 0,c=0;;)switch(c){case 0:var b;b=k;c=(b|0)==0?2:1;break;case 1:c=(h[b>>2]|0)==0?2:3;break;case 2:c=4;break;case 3:b:for(var c=h[b>>2]+40|0,d=void 0,d=0;;)switch(d){case 0:var i;i=c;d=(i|0)==0?2:1;break;case 1:d=(h[i>>2]|0)==0?2:3;break;case 2:d=4;break;case 3:wa(h[i>>2]);h[i>>
2]=0;d=4;break;case 4:break b;default:x(0,"bad label: "+d)}wa(h[b>>2]);h[b>>2]=0;c=4;break;case 4:break a;default:x(0,"bad label: "+c)}}Tf(h[e>>2]+2200|0);Gf(h[e>>2]+2196|0);a:{k=h[e>>2]+2204|0;c=void 0;for(c=0;;)switch(c){case 0:var g;g=k;c=(g|0)==0?2:1;break;case 1:c=(h[g>>2]|0)==0?2:3;break;case 2:c=4;break;case 3:wa(h[g>>2]);h[g>>2]=0;c=4;break;case 4:break a;default:x(0,"bad label: "+c)}}a:{k=h[e>>2]+2208|0;c=void 0;for(c=0;;)switch(c){case 0:var f;f=k;c=(f|0)==0?2:1;break;case 1:c=(h[f>>2]|
0)==0?2:3;break;case 2:c=4;break;case 3:wa(h[f>>2]);h[f>>2]=0;c=4;break;case 4:break a;default:x(0,"bad label: "+c)}}a:{k=h[e>>2]+2212|0;c=void 0;for(c=0;;)switch(c){case 0:var j;j=k;c=(j|0)==0?2:1;break;case 1:c=(h[j>>2]|0)==0?2:3;break;case 2:c=4;break;case 3:wa(h[j>>2]);h[j>>2]=0;c=4;break;case 4:break a;default:x(0,"bad label: "+c)}}a:{k=h[e>>2]+2220|0;c=void 0;for(c=0;;)switch(c){case 0:var n;n=k;c=(n|0)==0?2:1;break;case 1:c=(h[n>>2]|0)==0?2:3;break;case 2:c=4;break;case 3:wa(h[n>>2]);h[n>>
2]=0;c=4;break;case 4:break a;default:x(0,"bad label: "+c)}}wa(h[e>>2]);h[e>>2]=0;k=4;break;case 4:return;default:x(0,"bad label: "+k)}}function od(R){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=R;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:h[(c+652|0)>>2]=((c|0)+640|0)-320|0;h[(c+640|0)>>2]=h[(c+652|0)>>2]-80|0;h[(c+644|0)>>2]=((c|0)+640|0)-480|0;h[(c+648|0)>>2]=h[(c+644|0)>>2]-80|0;h[(c+1264|0)>>2]=(c+656|0)+286|0;h[(c+1912|0)>>2]=((c+1282|0)+286|0)+22|0;h[(c+2020|0)>>2]=(c+1916|0)+22|0;
h[(c+2384|0)>>2]=(c+2284|0)+20|0;h[(c+2024|0)>>2]=(c+2028|0)+80|0;h[(c+2528|0)>>2]=0;ta(c|0,0,640,1);ta(c+1282|0,0,308,1);ta(c+656|0,0,286,1);ta(c+2224|0,0,20,1);ta(c+2264|0,0,20,1);ta(c+2244|0,0,20,1);ta(c+2284|0,0,20,1);ta(h[(c+2020|0)>>2],0,80,1);ta(c+2028|0,0,80,1);b=0;k=3;break;case 3:k=(b<<16>>16|0)<5?4:6;break;case 4:a[((c+1268|0)+(b<<16>>16<<1)|0)>>1]=40;k=5;break;case 5:b=b+1&65535;k=3;break;case 6:Sf(h[(c+2188|0)>>2]);kd(h[(c+2192|0)>>2]);hd(h[(c+2196|0)>>2]);Uf(h[(c+2200|0)>>2]);Of(h[(c+
2204|0)>>2]);Pf(h[(c+2208|0)>>2]);ld(h[(c+2212|0)>>2]);md(h[(c+2220|0)>>2],h[((c+2392|0)+40|0)>>2]);e=a[(c+2388|0)>>1]=0;k=7;break;case 7:return e;default:x(0,"bad label: "+k)}}function Vf(R,k,e,c,b,d){var i=B;B+=1188;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var g;for(g=0;;)switch(g){case 0:var f,j,n,l=i,q,m,p=i+4,o=i+92,r,s,v=i+180,t=i+200,u=i+280,w=i+360,y=i+440,A=i+520,C=i+600,z=i+612,D=i+692,E=i+772,F=i+852,I=i+932,K=i+1012,J=i+1092,G=i+1112,U=i+1132,fa=i+1152,ja,H,N,Z,ka=i+1156,
Q=i+1160,T,X,L=i+1164,P=i+1168,Aa=i+1172,Ja=i+1176,ca=i+1180,M,aa=i+1184,da,S;f=R;j=k;n=e;h[l>>2]=c;q=b;m=d;M=Z=N=H=0;S=f+2528|0;g=h[(f+652|0)>>2];x(true,"memcpy given 320 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,n,320,1);h[q>>2]=j;g=(h[(f+2216|0)>>2]|0)!=0?1:2;break;case 1:da=Wf(h[(f+2212|0)>>2],h[(f+652|0)>>2],S);da=Xf(h[(f+2220|0)>>2],da,q,S);g=3;break;case 2:da=0;g=3;break;case 3:Yf(h[(f+2188|0)>>2],j,h[(f+644|0)>>2],h[(f+648|0)>>2],p|0,f+2392|0,S);Zf(h[(f+2192|0)>>2],
j,h[q>>2],p|0,o|0,v|0,l,S);$f(h[(f+2220|0)>>2],v|0,h[(f+652|0)>>2],S);g=(h[q>>2]|0)==8?4:5;break;case 4:ag(h[(f+2220|0)>>2],da,h[(h[(f+2192|0)>>2]+40|0)>>2],h[(f+2200|0)>>2]+32|0,l,S);ta(f+1282|0,0,308,1);ta(f+2244|0,0,20,1);ta(f+2284|0,0,20,1);ta(h[(f+2020|0)>>2],0,80,1);ta(f+2028|0,0,80,1);kd(h[(f+2192|0)>>2]);g=h[(f+2192|0)>>2]|0;n=v|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,n,20,1);g=h[(f+2192|0)>>2]+20|0;n=v|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");
na(g,n,20,1);hd(h[(f+2196|0)>>2]);a[(f+2388|0)>>1]=0;g=6;break;case 5:M=bg(h[(f+2208|0)>>2],h[(f+2192|0)>>2]|0,S);g=6;break;case 6:T=X=0;g=7;break;case 7:g=(X<<16>>16|0)<2?8:13;break;case 8:cg(j,Lb|0,Mb|0,Nb|0,p|0,T,h[(f+640|0)>>2],f+2264|0,h[(f+1264|0)>>2],S);g=(j|0)!=0?9:11;break;case 9:g=(j|0)!=1?10:11;break;case 10:pd(h[(f+2204|0)>>2],h[(f+2212|0)>>2],j,h[(f+1264|0)>>2]+(T<<16>>16<<1)|0,L+(X<<16>>16<<1)|0,f+1268|0,f+1278|0,X,h[(f+2216|0)>>2],S);g=11;break;case 11:g=12;break;case 12:X=X+1&65535;
T=((T<<16>>16)+80|0)&65535;g=7;break;case 13:g=(j|0)==0?15:14;break;case 14:g=(j|0)==1?15:16;break;case 15:pd(h[(f+2204|0)>>2],h[(f+2212|0)>>2],j,h[(f+1264|0)>>2]|0,L|0,f+1268|0,f+1278|0,1,h[(f+2216|0)>>2],S);a[(L+2|0)>>1]=a[(L|0)>>1];g=16;break;case 16:g=(h[(f+2216|0)>>2]|0)!=0?17:18;break;case 17:dg(h[(f+2212|0)>>2],L|0,S);g=18;break;case 18:g=(h[q>>2]|0)==8?19:20;break;case 19:g=45;break;case 20:r=p|0;s=o|0;ja=0;X=-1;T=0;g=21;break;case 21:g=(T<<16>>16|0)<160?22:44;break;case 22:X=X+1&65535;ja=
(1-(ja<<16>>16)|0)&65535;g=(ja<<16>>16|0)!=0?23:25;break;case 23:g=(h[q>>2]|0)==0?24:25;break;case 24:g=J|0;n=f+2224|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,n,20,1);g=G|0;n=f+2244|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,n,20,1);g=U|0;n=f+2284|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,n,20,1);a[fa>>1]=a[(f+2388|0)>>1];g=25;break;case 25:g=(h[q>>2]|
0)!=0?26:27;break;case 26:lc(h[q>>2],Lb|0,Mb|0,Nb|0,r,s,h[(f+640|0)>>2]+(T<<16>>16<<1)|0,f+2284|0,f+2244|0,h[(f+2020|0)>>2],f+1916|0,h[(f+1912|0)>>2]+(T<<16>>16<<1)|0,h[(f+2024|0)>>2],t|0,z|0,h[(f+2384|0)>>2]);g=30;break;case 27:lc(h[q>>2],Lb|0,Mb|0,Nb|0,r,s,h[(f+640|0)>>2]+(T<<16>>16<<1)|0,f+2284|0,G|0,h[(f+2020|0)>>2],f+1916|0,h[(f+1912|0)>>2]+(T<<16>>16<<1)|0,h[(f+2024|0)>>2],t|0,z|0,h[(f+2384|0)>>2]);g=(ja<<16>>16|0)!=0?28:29;break;case 28:g=K|0;n=h[(f+2024|0)>>2];x(true,"memcpy given 80 bytes to copy. Problem with quantum=1 corrections perhaps?");
na(g,n,80,1);g=29;break;case 29:g=30;break;case 30:g=D|0;n=z|0;x(true,"memcpy given 80 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,n,80,1);If(h[(f+2196|0)>>2],h[(f+2208|0)>>2],h[q>>2],T,L|0,h[(f+2024|0)>>2],h[(f+1912|0)>>2]+(T<<16>>16<<1)|0,D|0,t|0,M,u|0,y|0,P,Aa,Ja,C|0,l,aa,h[((f+2392|0)+72|0)>>2],S);g=(X<<16>>16|0)==0?31:33;break;case 31:g=(a[(f+1278|0)>>1]<<16>>16|0)>0?32:33;break;case 32:a[((f+1268|0)+2|0)>>1]=a[P>>1];g=33;break;case 33:g=(X<<16>>16|0)==3?34:36;break;case 34:g=
(a[((f+1278|0)+2|0)>>1]<<16>>16|0)>0?35:36;break;case 35:a[(f+1268|0)>>1]=a[P>>1];g=36;break;case 36:Df(u|0,h[(f+2024|0)>>2],a[P>>1],a[(f+2388|0)>>1],a[Ja>>1],D|0,w|0,A|0,l,h[q>>2],X,f+2392|0,S);eg(h[(f+2200|0)>>2],h[q>>2],z|0,h[(f+1912|0)>>2]+(T<<16>>16<<1)|0,w|0,t|0,u|0,y|0,A|0,C|0,ja,a[aa>>1],ka,Q,Ja,ca,l,f+2392|0,S);a:{g=h[(f+2208|0)>>2];n=a[Ja>>1];for(var $=void 0,$=0;;)switch($){case 0:var O,Y,V;O=g;Y=n;V=0;$=1;break;case 1:$=(V|0)<6?2:4;break;case 2:a[((O+2|0)+(V<<1)|0)>>1]=a[((O+2|0)+((V+
1|0)<<1)|0)>>1];$=3;break;case 3:V=V+1|0;$=1;break;case 4:a[((O+2|0)+12|0)>>1]=Y<<16>>16>>3&65535;break a;default:x(0,"bad label: "+$)}}g=(h[q>>2]|0)!=0?37:38;break;case 37:Ob(h[(f+640|0)>>2],h[q>>2],T,a[Ja>>1],a[ca>>1],s,m,t|0,w|0,y|0,A|0,f+2224|0,f+2284|0,f+2244|0,h[(f+1912|0)>>2],f+2388|0,S);g=42;break;case 38:g=(ja<<16>>16|0)!=0?39:40;break;case 39:Z=T;H=E|0;N=t|0;x(true,"memcpy given 80 bytes to copy. Problem with quantum=1 corrections perhaps?");na(H,N,80,1);H=F|0;N=A|0;x(true,"memcpy given 80 bytes to copy. Problem with quantum=1 corrections perhaps?");
na(H,N,80,1);H=I|0;N=w|0;x(true,"memcpy given 80 bytes to copy. Problem with quantum=1 corrections perhaps?");na(H,N,80,1);H=a[P>>1];N=a[Aa>>1];Ob(h[(f+640|0)>>2],h[q>>2],T,a[Ja>>1],a[ca>>1],s,m,t|0,w|0,y|0,A|0,J|0,f+2284|0,G|0,h[(f+1912|0)>>2],f+2388|0,S);a[(f+2388|0)>>1]=a[fa>>1];g=41;break;case 40:g=f+2284|0;n=U|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,n,20,1);qb(h[(f+1912|0)>>2]+(Z<<16>>16<<1)|0,H,N,40,1,S);Kb(h[(f+1912|0)>>2]+(Z<<16>>16<<1)|
0,K|0,y|0,40);s=s-22|0;Ob(h[(f+640|0)>>2],h[q>>2],Z,a[ka>>1],a[Q>>1],s,m,E|0,I|0,y|0,F|0,f+2224|0,f+2284|0,f+2244|0,h[(f+1912|0)>>2],fa,S);s=s+22|0;lc(h[q>>2],Lb|0,Mb|0,Nb|0,r,s,h[(f+640|0)>>2]+(T<<16>>16<<1)|0,f+2284|0,f+2244|0,h[(f+2020|0)>>2],f+1916|0,h[(f+1912|0)>>2]+(T<<16>>16<<1)|0,h[(f+2024|0)>>2],t|0,z|0,h[(f+2384|0)>>2]);qb(h[(f+1912|0)>>2]+(T<<16>>16<<1)|0,a[P>>1],a[Aa>>1],40,1,S);Kb(h[(f+1912|0)>>2]+(T<<16>>16<<1)|0,h[(f+2024|0)>>2],y|0,40);Ob(h[(f+640|0)>>2],h[q>>2],T,a[Ja>>1],a[ca>>1],
s,m,t|0,w|0,y|0,A|0,f+2224|0,f+2284|0,f+2244|0,h[(f+1912|0)>>2],f+2388|0,S);g=41;break;case 41:g=42;break;case 42:r=r+22|0;s=s+22|0;g=43;break;case 43:T=((T<<16>>16)+40|0)&65535;g=21;break;case 44:g=f+1282|0;n=(f+1282|0)+320|0;x(true,"memcpy given 308 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,n,308,1);g=45;break;case 45:return R=f+656|0,k=(f+656|0)+320|0,x(true,"memcpy given 286 bytes to copy. Problem with quantum=1 corrections perhaps?"),na(R,k,286,1),R=f|0,f=(f|0)+320|0,
x(true,"memcpy given 320 bytes to copy. Problem with quantum=1 corrections perhaps?"),na(R,f,320,1),B=i,0;default:x(0,"bad label: "+g)}}function Kb(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q;d=h;i=k;g=e;f=c;b=n=1;break;case 1:b=(n<<16>>16|0)<(f<<16>>16|0)?2:8;break;case 2:i=i+(n<<16>>16<<1)|0;q=a[d>>1]<<16>>16;j=i;i=j-2|0;q=q*(a[j>>1]<<16>>16)|0;j=d;d=j+2|0;l=(a[j>>1]<<16>>16)*(a[i>>1]<<16>>16)|0;j=((n<<16>>16)-1|0)>>1&65535;b=3;break;case 3:b=(j<<16>>16|0)!=0?4:6;break;case 4:b=
a[d>>1]<<16>>16;var m=i;i=m-2|0;q=q+(b*(a[m>>1]<<16>>16)|0)|0;b=d;d=b+2|0;l=l+((a[b>>1]<<16>>16)*(a[i>>1]<<16>>16)|0)|0;b=a[d>>1]<<16>>16;m=i;i=m-2|0;q=q+(b*(a[m>>1]<<16>>16)|0)|0;b=d;d=b+2|0;l=l+((a[b>>1]<<16>>16)*(a[i>>1]<<16>>16)|0)|0;b=5;break;case 5:j=j-1&65535;b=3;break;case 6:q=q+((a[d>>1]<<16>>16)*(a[i>>1]<<16>>16)|0)|0;b=l>>12&65535;m=g;g=m+2|0;a[m>>1]=b;b=q>>12&65535;m=g;g=m+2|0;a[m>>1]=b;d=d+((-(n<<16>>16)|0)<<1)|0;b=7;break;case 7:n=((n<<16>>16)+2|0)&65535;b=1;break;case 8:return;default:x(0,
"bad label: "+b)}}function eb(h,k,e,c){var b=B;B+=80;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q=b,m,p,o,r,s,v,t,u,w,y,A,C,z;i=h;g=k;f=e;j=c;m=1;v=i;n=20;d=1;break;case 1:d=(n<<16>>16|0)!=0?2:4;break;case 2:d=v;v=d+2|0;o=a[d>>1];m=m+((o<<16>>16)*(o<<16>>16)|0)|0;d=v;v=d+2|0;o=a[d>>1];m=m+((o<<16>>16)*(o<<16>>16)|0)|0;d=3;break;case 3:n=n-1&65535;d=1;break;case 4:m<<=1;d=(m&-2147483648|0)!=0?5:10;break;case 5:t=q|0;v=i;n=20;d=6;break;
case 6:d=(n<<16>>16|0)!=0?7:9;break;case 7:d=v;v=d+2|0;d=a[d>>1]<<16>>16>>1&65535;o=t;t=o+2|0;a[o>>1]=d;d=v;v=d+2|0;d=a[d>>1]<<16>>16>>1&65535;o=t;t=o+2|0;a[o>>1]=d;d=8;break;case 8:n=n-1&65535;d=6;break;case 9:d=18;break;case 10:m>>=1;m=Xa(m,j);d=(m|0)<16777215?11:12;break;case 11:l=((m>>9)*32440|0)>>15&65535;d=13;break;case 12:l=32440;d=13;break;case 13:v=i;t=q|0;n=20;d=14;break;case 14:d=(n<<16>>16|0)!=0?15:17;break;case 15:d=v;v=d+2|0;d=(32+((a[d>>1]<<16>>16)*(l<<16>>16)|0)|0)>>6&65535;o=t;t=
o+2|0;a[o>>1]=d;d=v;v=d+2|0;d=(32+((a[d>>1]<<16>>16)*(l<<16>>16)|0)|0)>>6&65535;o=t;t=o+2|0;a[o>>1]=d;d=16;break;case 16:n=n-1&65535;d=14;break;case 17:d=18;break;case 18:m=0;t=q|0;u=(f+3120|0)+78|0;n=20;d=19;break;case 19:d=(n<<16>>16|0)!=0?20:22;break;case 20:d=t;t=d+2|0;o=a[d>>1];m=m+((o<<16>>16)*(o<<16>>16)|0)|0;a[u>>1]=(m+16384|0)>>15&65535;u=u-82|0;d=t;t=d+2|0;o=a[d>>1];m=m+((o<<16>>16)*(o<<16>>16)|0)|0;a[u>>1]=(m+16384|0)>>15&65535;u=u-82|0;d=21;break;case 21:n=n-1&65535;d=19;break;case 22:A=
f+3120|0;l=1;d=23;break;case 23:d=(l<<16>>16|0)<40?24:30;break;case 24:u=A+((39-(l<<16>>16)|0)<<1)|0;w=(f+(39-(l<<16>>16)|0)*80|0)+78|0;y=(f+(39-((l<<16>>16)+1|0)|0)*80|0)+78|0;p=m=0;C=g+78|0;z=g+((39-(l<<16>>16)|0)<<1)|0;t=q|0;v=q+(l<<16>>16<<1)|0;n=((40-(l<<16>>16)|0)-1|0)&65535;d=25;break;case 25:d=(n<<16>>16|0)!=0?26:28;break;case 26:d=a[t>>1]<<16>>16;o=v;v=o+2|0;m=m+(d*(a[o>>1]<<16>>16)|0)|0;d=t;t=d+2|0;p=p+((a[d>>1]<<16>>16)*(a[v>>1]<<16>>16)|0)|0;o=(m+16384|0)>>15&65535;d=(p+16384|0)>>15&65535;
s=a[C>>1]<<16>>16;r=z;z=r-2|0;r=(s*(a[r>>1]<<16>>16)|0)>>15&65535;s=C;C=s-2|0;s=((a[s>>1]<<16>>16)*(a[z>>1]<<16>>16)|0)>>15&65535;a[w>>1]=((o<<16>>16)*(r<<16>>16)|0)>>15&65535;o=a[w>>1];r=u;u=r-2|0;a[r>>1]=o;a[u>>1]=((d<<16>>16)*(s<<16>>16)|0)>>15&65535;a[y>>1]=a[u>>1];u=u-80|0;w=w-82|0;y=y-82|0;d=27;break;case 27:n=n-1&65535;d=25;break;case 28:m=m+((a[t>>1]<<16>>16)*(a[v>>1]<<16>>16)|0)|0;o=(m+16384|0)>>15&65535;r=((a[C>>1]<<16>>16)*(a[z>>1]<<16>>16)|0)>>15&65535;a[u>>1]=((o<<16>>16)*(r<<16>>16)|
0)>>15&65535;a[w>>1]=a[u>>1];u=u-82|0;w=w-82|0;d=29;break;case 29:l=((l<<16>>16)+2|0)&65535;d=23;break;case 30:B=b;return;default:x(0,"bad label: "+d)}}function xf(R,k,e,c,b,d,i){var g=B;B+=160;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o,r,s,v,t,u=g,w,y;j=R;n=k;l=e;q=c;m=b;p=d;o=i;y=5;v=0;f=1;break;case 1:f=(v<<16>>16|0)<(m<<16>>16|0)?2:14;break;case 2:w=0;r=v;f=3;break;case 3:f=(r<<16>>16|0)<40?4:12;break;case 4:t=0;s=r;f=5;break;case 5:f=
(s<<16>>16|0)<40?6:8;break;case 6:t=t+((a[(n+(s<<16>>16<<1)|0)>>1]<<16>>16)*(a[(j+(((s<<16>>16)-(r<<16>>16)|0)<<1)|0)>>1]<<16>>16)|0)|0;f=7;break;case 7:s=s+1&65535;f=5;break;case 8:t<<=1;h[(u+(r<<16>>16<<2)|0)>>2]=t;t=fb(t);f=(t|0)>(w|0)?9:10;break;case 9:w=t;f=10;break;case 10:f=11;break;case 11:r=((r<<16>>16)+(p<<16>>16)|0)&65535;f=3;break;case 12:y=y+(w>>1)|0;f=13;break;case 13:v=v+1&65535;f=1;break;case 14:s=((oa(y)<<16>>16)-(q<<16>>16)|0)&65535;r=0;f=15;break;case 15:f=(r<<16>>16|0)<40?16:18;
break;case 16:a:{f=h[(u+(r<<16>>16<<2)|0)>>2];for(var A=s,C=void 0,C=0;;)switch(C){case 0:var z,D,E;z=f;D=A;E=0;C=(D<<16>>16|0)>0?1:4;break;case 1:E=z<<(D<<16>>16);C=(E>>(D<<16>>16|0)|0)!=(z|0)?2:3;break;case 2:E=z>>31^2147483647;C=3;break;case 3:C=7;break;case 4:D=(-(D<<16>>16)|0)&65535;C=(D<<16>>16|0)<31?5:6;break;case 5:E=z>>(D<<16>>16|0);C=6;break;case 6:C=7;break;case 7:f=E;break a;default:x(0,"bad label: "+C)}f=void 0}f=la(f,o);a[(l+(r<<16>>16<<1)|0)>>1]=f;f=17;break;case 17:r=r+1&65535;f=15;
break;case 18:B=g;return;default:x(0,"bad label: "+f)}}function fg(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function gg(h,k,e){var c=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,
"Ran out of stack");var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j=c;d=h;b=k;i=e;f=b<<16>>16&1;b=b<<16>>16>>1&65535;g=b<<16>>16&7;a[(j|0)>>1]=((((g<<16>>16)*5|0)+(f<<16>>16<<1|0)|0)+1|0)&65535;b=b<<16>>16>>3&65535;f=b<<16>>16&3;b=b<<16>>16>>2&65535;g=b<<16>>16&7;b=(f<<16>>16|0)==3?1:2;break;case 1:a[(j+2|0)>>1]=(((g<<16>>16)*5|0)+4|0)&65535;b=3;break;case 2:a[(j+2|0)>>1]=(((g<<16>>16)*5|0)+(f<<16>>16)|0)&65535;b=3;break;case 3:g=0;b=4;break;case 4:b=(g<<16>>16|0)<40?5:7;break;case 5:a[(i+(g<<16>>
16<<1)|0)>>1]=0;b=6;break;case 6:g=g+1&65535;b=4;break;case 7:f=0;b=8;break;case 8:b=(f<<16>>16|0)<2?9:11;break;case 9:g=d<<16>>16&1;a[(i+(a[(j+(f<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]=(((g<<16>>16)*16383|0)-8192|0)&65535;d=d<<16>>16>>1&65535;b=10;break;case 10:f=f+1&65535;b=8;break;case 11:B=c;return;default:x(0,"bad label: "+b)}}function pb(R,k,e,c,b){var d=B;B+=160;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r=d,s,v,t,u,w;g=R;
f=k;j=e;n=c;l=b;v=5;p=0;i=1;break;case 1:i=(p<<16>>16|0)<5?2:18;break;case 2:s=0;q=p;i=3;break;case 3:i=(q<<16>>16|0)<40?4:16;break;case 4:o=0;t=f+(q<<16>>16<<1)|0;u=g;m=((40-(q<<16>>16)|0)-1|0)>>1&65535;i=5;break;case 5:i=(m<<16>>16|0)!=0?6:8;break;case 6:i=t;t=i+2|0;i=a[i>>1]<<16>>16;var y=u;u=y+2|0;o=o+((i*(a[y>>1]<<16>>16)|0)<<1)|0;i=t;t=i+2|0;i=a[i>>1]<<16>>16;y=u;u=y+2|0;o=o+((i*(a[y>>1]<<16>>16)|0)<<1)|0;i=7;break;case 7:m=m-1&65535;i=5;break;case 8:i=t;t=i+2|0;i=a[i>>1]<<16>>16;y=u;u=y+2|
0;o=o+((i*(a[y>>1]<<16>>16)|0)<<1)|0;i=((40-(q<<16>>16)|0)&1|0)!=0?10:9;break;case 9:i=t;t=i+2|0;i=a[i>>1]<<16>>16;y=u;u=y+2|0;o=o+((i*(a[y>>1]<<16>>16)|0)<<1)|0;i=10;break;case 10:h[(r+(q<<16>>16<<2)|0)>>2]=o;i=(o|0)<0?11:12;break;case 11:o=-o|0;i=12;break;case 12:i=(o|0)>(s|0)?13:14;break;case 13:s=o;i=14;break;case 14:i=15;break;case 15:q=((q<<16>>16)+5|0)&65535;i=3;break;case 16:v=v+(s>>1)|0;i=17;break;case 17:p=p+1&65535;i=1;break;case 18:m=((oa(v)<<16>>16)-(n<<16>>16)|0)&65535;u=j;w=r|0;q=20;
i=19;break;case 19:i=(q<<16>>16|0)!=0?20:22;break;case 20:o=w;w=o+4|0;o=fg(h[o>>2],m,l);o=(o+32768|0)>>16&65535;i=u;u=i+2|0;a[i>>1]=o;o=w;w=o+4|0;o=fg(h[o>>2],m,l);i=(o+32768|0)>>16&65535;y=u;u=y+2|0;a[y>>1]=i;i=21;break;case 21:q=q-1&65535;i=19;break;case 22:B=d;return;default:x(0,"bad label: "+i)}}function hg(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f,j,n,l;b=h;d=k;i=e;g=0;c=1;break;case 1:c=(g<<16>>16|0)<40?2:4;break;case 2:a[(d+(g<<16>>16<<1)|0)>>1]=0;c=3;break;case 3:g=g+1&65535;c=
1;break;case 4:f=0;c=5;break;case 5:c=(f<<16>>16|0)<5?6:13;break;case 6:c=a[(b+(f<<16>>16<<1)|0)>>1];g=c<<16>>16&7;g=a[(i+(g<<16>>16<<1)|0)>>1];g=((g<<16>>16)*5|0)&65535;j=((g<<16>>16)+(f<<16>>16)|0)&65535;g=c<<16>>16>>3&1;c=(g<<16>>16|0)==0?7:8;break;case 7:l=4096;c=9;break;case 8:l=-4096;c=9;break;case 9:a[(d+(j<<16>>16<<1)|0)>>1]=l;g=a[((b+(f<<16>>16<<1)|0)+10|0)>>1]<<16>>16&7;g=a[(i+(g<<16>>16<<1)|0)>>1];g=((g<<16>>16)*5|0)&65535;n=((g<<16>>16)+(f<<16>>16)|0)&65535;c=(n<<16>>16|0)<(j<<16>>16|
0)?10:11;break;case 10:a:{c=void 0;for(c=0;;)switch(c){case 0:var q;q=l;c=(q<<16>>16|0)==-32768?1:2;break;case 1:var m=32767;c=3;break;case 2:m=-(q<<16>>16)|0;c=3;break;case 3:l=m&65535;break a;default:x(0,"bad label: "+c)}l=void 0}c=11;break;case 11:c=d+(n<<16>>16<<1)|0;a[c>>1]=((a[c>>1]<<16>>16)+(l<<16>>16)|0)&65535;c=12;break;case 12:f=f+1&65535;c=5;break;case 13:return;default:x(0,"bad label: "+c)}}function ig(h,k,e,c,b,d){var i=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");
var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o=i;f=h;j=k;g=e;n=c;l=b;q=d;p=g<<16>>16&64;p=p<<16>>16>>3&65535;m=g<<16>>16&7;f=jg(f,1,q);f=((f<<16>>16)+(p<<16>>16)|0)&65535;m=(m<<16>>16)*5|0;q=f;f=q+1&65535;a[(o|0)>>1]=(m+(a[(n+(q<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;g=g<<16>>16>>3&65535;m=g<<16>>16&7;a[(o+2|0)>>1]=(((m<<16>>16)*5|0)+(a[(n+(f<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;m=39;g=1;break;case 1:g=(m<<16>>16|0)>=0?2:4;break;case 2:a[(l+(m<<16>>16<<1)|0)>>1]=0;g=3;break;case 3:m=m-1&65535;
g=1;break;case 4:p=0;g=5;break;case 5:g=(p<<16>>16|0)<2?6:8;break;case 6:m=j<<16>>16&1;a[(l+(a[(o+(p<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]=(((m<<16>>16)*16383|0)-8192|0)&65535;j=j<<16>>16>>1&65535;g=7;break;case 7:p=p+1&65535;g=5;break;case 8:B=i;return;default:x(0,"bad label: "+g)}}function jg(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=
7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function mc(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,"bad label: "+c)}}function kg(h,k,e){var c=B;B+=8;x(B%4==0,"Stack is unaligned");
x(B<ea,"Ran out of stack");var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j=c;d=h;b=k;i=e;g=b<<16>>16&7;a[(j|0)>>1]=((g<<16>>16)*5|0)&65535;b=b<<16>>16>>3&65535;f=b<<16>>16&1;b=b<<16>>16>>1&65535;g=b<<16>>16&7;a[(j+2|0)>>1]=((((g<<16>>16)*5|0)+(f<<16>>16<<1|0)|0)+1|0)&65535;b=b<<16>>16>>3&65535;f=b<<16>>16&1;b=b<<16>>16>>1&65535;g=b<<16>>16&7;a[(j+4|0)>>1]=((((g<<16>>16)*5|0)+(f<<16>>16<<1|0)|0)+2|0)&65535;g=0;b=1;break;case 1:b=(g<<16>>16|0)<40?2:4;break;case 2:a[(i+(g<<16>>16<<1)|0)>>1]=0;b=3;break;
case 3:g=g+1&65535;b=1;break;case 4:f=0;b=5;break;case 5:b=(f<<16>>16|0)<3?6:8;break;case 6:g=d<<16>>16&1;a[(i+(a[(j+(f<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]=(((g<<16>>16)*16383|0)-8192|0)&65535;d=d<<16>>16>>1&65535;b=7;break;case 7:f=f+1&65535;b=5;break;case 8:B=c;return;default:x(0,"bad label: "+b)}}function lg(h,k,e,c){var b=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l=b;i=h;d=k;g=e;f=c;j=d<<16>>16&7;j=a[(g+(j<<16>>16<<1)|0)>>
1];a[(l|0)>>1]=((j<<16>>16)*5|0)&65535;d=d<<16>>16>>3&65535;j=d<<16>>16&7;j=a[(g+(j<<16>>16<<1)|0)>>1];a[(l+2|0)>>1]=(((j<<16>>16)*5|0)+1|0)&65535;d=d<<16>>16>>3&65535;j=d<<16>>16&7;j=a[(g+(j<<16>>16<<1)|0)>>1];a[(l+4|0)>>1]=(((j<<16>>16)*5|0)+2|0)&65535;d=d<<16>>16>>3&65535;n=d<<16>>16&1;d=d<<16>>16>>1&65535;j=d<<16>>16&7;j=a[(g+(j<<16>>16<<1)|0)>>1];a[(l+6|0)>>1]=((((j<<16>>16)*5|0)+3|0)+(n<<16>>16)|0)&65535;j=0;d=1;break;case 1:d=(j<<16>>16|0)<40?2:4;break;case 2:a[(f+(j<<16>>16<<1)|0)>>1]=0;d=
3;break;case 3:j=j+1&65535;d=1;break;case 4:n=0;d=5;break;case 5:d=(n<<16>>16|0)<4?6:8;break;case 6:j=i<<16>>16&1;a[(f+(a[(l+(n<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]=(((j<<16>>16)*16383|0)-8192|0)&65535;i=i<<16>>16>>1&65535;d=7;break;case 7:n=n+1&65535;d=5;break;case 8:B=b;return;default:x(0,"bad label: "+d)}}function mg(h,k,e){var c=B;B+=24;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m=c,p=c+8;d=h;i=k;g=e;f=0;b=1;break;case 1:b=(f<<
16>>16|0)<40?2:4;break;case 2:a[(i+(f<<16>>16<<1)|0)>>1]=0;b=3;break;case 3:f=f+1&65535;b=1;break;case 4:ng(d,m|0,p|0,g);j=0;b=5;break;case 5:b=(j<<16>>16|0)<4?6:17;break;case 6:n=((a[(p+(j<<16>>16<<1)|0)>>1]<<16>>16<<2)+(j<<16>>16)|0)&65535;b=(a[(m+(j<<16>>16<<1)|0)>>1]<<16>>16|0)==0?7:8;break;case 7:q=8191;b=9;break;case 8:q=-8191;b=9;break;case 9:b=(n<<16>>16|0)<40?10:11;break;case 10:a[(i+(n<<16>>16<<1)|0)>>1]=q;b=11;break;case 11:l=((a[(p+(((j<<16>>16)+4|0)<<1)|0)>>1]<<16>>16<<2)+(j<<16>>16)|
0)&65535;b=(l<<16>>16|0)<(n<<16>>16|0)?12:13;break;case 12:a:{b=void 0;for(b=0;;)switch(b){case 0:var o;o=q;b=(o<<16>>16|0)==-32768?1:2;break;case 1:var r=32767;b=3;break;case 2:r=-(o<<16>>16)|0;b=3;break;case 3:q=r&65535;break a;default:x(0,"bad label: "+b)}q=void 0}b=13;break;case 13:b=(l<<16>>16|0)<40?14:15;break;case 14:b=i+(l<<16>>16<<1)|0;a[b>>1]=((a[b>>1]<<16>>16)+(q<<16>>16)|0)&65535;b=15;break;case 15:b=16;break;case 16:j=j+1&65535;b=5;break;case 17:B=c;return;default:x(0,"bad label: "+b)}}
function ng(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q;d=h;i=k;g=e;f=c;j=0;b=1;break;case 1:b=(j<<16>>16|0)<4?2:4;break;case 2:a[(i+(j<<16>>16<<1)|0)>>1]=a[(d+(j<<16>>16<<1)|0)>>1];b=3;break;case 3:j=j+1&65535;b=1;break;case 4:l=a[(d+8|0)>>1]<<16>>16>>3&65535;q=a[(d+8|0)>>1]<<16>>16&7;qd(l,q,0,4,1,g,f);l=a[(d+10|0)>>1]<<16>>16>>3&65535;q=a[(d+10|0)>>1]<<16>>16&7;qd(l,q,2,6,5,g,f);l=a[(d+12|0)>>1]<<16>>16>>2&65535;q=a[(d+12|0)>>1]<<16>>16&3;n=mc(l,25,f);a:{l=n;b=void 0;for(b=0;;)switch(b){case 0:var m,
p,o;m=l;p=1;o=0;b=(p<<16>>16|0)>0?1:4;break;case 1:b=(p<<16>>16|0)<31?2:3;break;case 2:o=m>>(p<<16>>16|0);b=3;break;case 3:b=7;break;case 4:p=(-(p<<16>>16)|0)&65535;o=m<<(p<<16>>16);b=(o>>(p<<16>>16|0)|0)!=(m|0)?5:6;break;case 5:o=m>>31^2147483647;b=6;break;case 6:b=7;break;case 7:l=o;break a;default:x(0,"bad label: "+b)}l=void 0}b=l&65535;b=((b<<16>>16)+12|0)&65535;l=b<<16>>16>>5&65535;b=gb(l,6554,f);b=b<<16>>16&1;n=gb(l,6554,f);n=mc(n,5,f);n=((l<<16>>16)-((n>>1&65535)<<16>>16)|0)&65535;b=(b<<16>>
16|0)==1?5:6;break;case 5:n=(4-(n<<16>>16)|0)&65535;b=6;break;case 6:n=rb(n,1,f);b=q<<16>>16&1;h=$(n,b,f);a[(g+6|0)>>1]=h;b=gb(l,6554,f);b=rb(b,1,f);a[(g+14|0)>>1]=((b<<16>>16)+(q<<16>>16>>1)|0)&65535;return;default:x(0,"bad label: "+b)}}function qd(h,k,e,c,b,d,i){var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p;f=h;j=k;n=e;l=c;q=b;m=d;p=i;g=(f<<16>>16|0)>124?1:2;break;case 1:f=124;g=2;break;case 2:h=gb(f,1311,p);k=mc(h,25,p);h=((f<<16>>16)-(k>>1)|0)&65535;k=gb(h,6554,p);k=mc(k,5,p);k=((h<<16>>
16)-((k>>1&65535)<<16>>16)|0)&65535;k=rb(k,1,p);e=((j<<16>>16)-(j<<16>>16>>2<<2)|0)&65535;a[(m+(n<<16>>16<<1)|0)>>1]=((k<<16>>16)+(e<<16>>16&1)|0)&65535;k=gb(h,6554,p);k=rb(k,1,p);a[(m+(l<<16>>16<<1)|0)>>1]=((k<<16>>16)+(e<<16>>16>>1)|0)&65535;k=j<<16>>16>>2&65535;e=gb(f,1311,p);e=rb(e,1,p);f=$(k,e,p);a[(m+(q<<16>>16<<1)|0)>>1]=f;return;default:x(0,"bad label: "+g)}}function gb(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>
2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function rb(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+
e)}}function og(R){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=R;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:jd(c+1168|0);a[(c+460|0)>>1]=40;a[(c+462|0)>>1]=0;a[(c+464|0)>>1]=0;b=h[(c+1164|0)>>2]=0;k=3;break;case 3:k=(b<<16>>16|0)<9?4:6;break;case 4:a[((c+466|0)+(b<<16>>16<<1)|0)>>1]=0;k=5;break;case 5:b=b+1&65535;k=3;break;case 6:pg(c+646|0,h[((c+1168|0)+48|0)>>2]);qg(c+686|0);rg(c+700|0);Ef(c+608|0);sg(c+626|0,h[((c+1168|0)+48|0)>>2]);We(c+484|0);tg(c+730|0);rd(c+748|0);sb(c+714|0);nc(c,
0);e=0;k=7;break;case 7:return e;default:x(0,"bad label: "+k)}}function nc(R,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i;b=R;d=k;e=(b|0)==0?1:2;break;case 1:c=-1;e=23;break;case 2:h[(b+388|0)>>2]=((b|0)+286|0)+22|0;ta(b|0,0,308,1);e=(d|0)!=8?3:4;break;case 3:ta(b+412|0,0,20,1);e=4;break;case 4:a[(b+432|0)>>1]=0;a[(b+434|0)>>1]=40;h[(b+1164|0)>>2]=0;e=(d|0)!=8?5:6;break;case 5:a[(b+392|0)>>1]=3E4;a[((b+392|0)+2|0)>>1]=26E3;a[((b+392|0)+4|0)>>1]=21E3;a[((b+392|0)+6|0)>>1]=15E3;a[((b+392|0)+8|0)>>
1]=8E3;a[((b+392|0)+10|0)>>1]=0;a[((b+392|0)+12|0)>>1]=-8E3;a[((b+392|0)+14|0)>>1]=-15E3;a[((b+392|0)+16|0)>>1]=-21E3;a[((b+392|0)+18|0)>>1]=-26E3;e=6;break;case 6:a[(b+436|0)>>1]=0;a[(b+438|0)>>1]=0;a[(b+440|0)>>1]=0;a[(b+460|0)>>1]=40;a[(b+462|0)>>1]=0;a[(b+464|0)>>1]=0;e=(d|0)!=8?7:12;break;case 7:i=0;e=8;break;case 8:e=(i<<16>>16|0)<9?9:11;break;case 9:a[((b+442|0)+(i<<16>>16<<1)|0)>>1]=0;e=10;break;case 10:i=i+1&65535;e=8;break;case 11:e=12;break;case 12:i=0;e=13;break;case 13:e=(i<<16>>16|0)<
9?14:16;break;case 14:a[((b+466|0)+(i<<16>>16<<1)|0)>>1]=0;e=15;break;case 15:i=i+1&65535;e=13;break;case 16:Ef(b+608|0);e=(d|0)!=8?17:18;break;case 17:sg(b+626|0,h[((b+1168|0)+48|0)>>2]);e=18;break;case 18:pg(b+646|0,h[((b+1168|0)+48|0)>>2]);qg(b+686|0);rg(b+700|0);e=(d|0)!=8?19:20;break;case 19:sb(b+714|0);e=20;break;case 20:We(b+484|0);a[(b+606|0)>>1]=21845;tg(b+730|0);e=(d|0)!=8?21:22;break;case 21:rd(b+748|0);e=22;break;case 22:c=0;e=23;break;case 23:return c;default:x(0,"bad label: "+e)}}function ug(R,
k,e,c,b,d){var i=B;B+=340;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o=i,r=i+20,s=i+40,v=i+60,t=i+80,u=i+160,w=i+240,y,A,C=i+320,z=i+324,D,E,F=i+328,I=i+332,K,J,G,U,fa,ja,H,N,Z,ka=i+336,Q,T,X,L,S,P,M,ca,O,aa;f=R;j=k;n=e;l=c;q=b;m=d;ca=M=P=E=0;aa=f+1164|0;O=vg(f+748|0,l,aa);g=(O|0)!=0?1:2;break;case 1:nc(f,8);wg(f+748|0,f+412|0,f+646|0,f+714|0,f+608|0,O,j,n,f+1168|0,q,m,aa);Fa((f+646|0)+20|0,f+392|0,10,aa);sd(f+626|0,(f+646|0)+20|0,
aa);g=261;break;case 2:g=(l|0)==3?5:3;break;case 3:g=(l|0)==7?5:4;break;case 4:g=(l|0)==2?5:9;break;case 5:M=1;g=(l|0)==7?7:6;break;case 6:g=(l|0)==2?7:8;break;case 7:Ve(f+606|0,a[(h[((f+1168|0)+88|0)>>2]+(j<<1)|0)>>1],h[(h[((f+1168|0)+92|0)>>2]+(j<<2)|0)>>2],n,h[((f+1168|0)+108|0)>>2],aa);g=8;break;case 8:g=12;break;case 9:g=(l|0)==1?10:11;break;case 10:ca=1;g=11;break;case 11:g=12;break;case 12:g=(M<<16>>16|0)!=0?13:14;break;case 13:g=f+440|0;a[g>>1]=((a[g>>1]<<16>>16)+1|0)&65535;g=18;break;case 14:g=
(a[(f+440|0)>>1]<<16>>16|0)==6?15:16;break;case 15:a[(f+440|0)>>1]=5;g=17;break;case 16:a[(f+440|0)>>1]=0;g=17;break;case 17:g=18;break;case 18:g=(a[(f+440|0)>>1]<<16>>16|0)>6?19:20;break;case 19:a[(f+440|0)>>1]=6;g=20;break;case 20:g=(h[((f+748|0)+408|0)>>2]|0)==1?21:22;break;case 21:a[(f+440|0)>>1]=5;a[(f+436|0)>>1]=0;g=25;break;case 22:g=(h[((f+748|0)+408|0)>>2]|0)==2?23:24;break;case 23:a[(f+440|0)>>1]=5;a[(f+436|0)>>1]=1;g=24;break;case 24:g=25;break;case 25:ua(s|0,(f+646|0)+20|0,20,1,0);g=(j|
0)!=7?26:27;break;case 26:td(f+646|0,j,M,n,f+1168|0,o|0,aa);n=n+6|0;ud(f+392|0,o|0,m,aa);g=28;break;case 27:xg(f+646|0,M,n,f+1168|0,r|0,o|0,aa);n=n+10|0;vd(f+392|0,r|0,o|0,m,aa);g=28;break;case 28:y=0;g=29;break;case 29:g=(y<<16>>16|0)<10?30:32;break;case 30:a[((f+392|0)+(y<<16>>16<<1)|0)>>1]=a[(o+(y<<16>>16<<1)|0)>>1];g=31;break;case 31:y=y+1&65535;g=29;break;case 32:p=m;P=0;S=-1;A=0;g=33;break;case 33:g=(A<<16>>16|0)<160?34:260;break;case 34:S=((S<<16>>16)+1|0)&65535;P=(1-(P<<16>>16)|0)&65535;G=
A;g=(A<<16>>16|0)==80?35:39;break;case 35:g=(j|0)!=0?36:38;break;case 36:g=(j|0)!=1?37:38;break;case 37:G=0;g=38;break;case 38:g=39;break;case 39:D=n;n=D+2|0;D=a[D>>1];g=(j|0)!=7?40:62;break;case 40:T=0;g=(j|0)==0?44:41;break;case 41:g=(j|0)==1?44:42;break;case 42:g=(j|0)==2?44:43;break;case 43:g=(j|0)==3?44:45;break;case 44:T=1;g=45;break;case 45:H=5;N=9;g=(j|0)==5?46:47;break;case 46:H=10;N=19;g=47;break;case 47:fa=((a[(f+434|0)>>1]<<16>>16)-(H<<16>>16)|0)&65535;g=(fa<<16>>16|0)<20?48:49;break;
case 48:fa=20;g=49;break;case 49:ja=((fa<<16>>16)+(N<<16>>16)|0)&65535;g=(ja<<16>>16|0)>143?50:51;break;case 50:ja=143;fa=((ja<<16>>16)-(N<<16>>16)|0)&65535;g=51;break;case 51:yg(D,fa,ja,G,a[(f+434|0)>>1],C,z,T,aa);a[(f+460|0)>>1]=a[C>>1];g=(M<<16>>16|0)!=0?52:61;break;case 52:g=(a[(f+434|0)>>1]<<16>>16|0)<143?53:54;break;case 53:g=f+434|0;a[g>>1]=((a[g>>1]<<16>>16)+1|0)&65535;g=54;break;case 54:a[C>>1]=a[(f+434|0)>>1];a[z>>1]=0;g=(a[(f+462|0)>>1]<<16>>16|0)!=0?55:60;break;case 55:g=(a[(f+464|0)>>
1]<<16>>16|0)>4?56:60;break;case 56:g=(j|0)==0?59:57;break;case 57:g=(j|0)==1?59:58;break;case 58:g=(j|0)==2?59:60;break;case 59:a[C>>1]=a[(f+460|0)>>1];g=60;break;case 60:g=61;break;case 61:qb(h[(f+388|0)>>2],a[C>>1],a[z>>1],40,1,aa);g=67;break;case 62:zg(D,18,143,G,C,z,aa);g=(M<<16>>16|0)==0?63:65;break;case 63:g=(G<<16>>16|0)==0?66:64;break;case 64:g=(D<<16>>16|0)<61?66:65;break;case 65:a[(f+460|0)>>1]=a[C>>1];a[C>>1]=a[(f+434|0)>>1];a[z>>1]=0;g=66;break;case 66:qb(h[(f+388|0)>>2],a[C>>1],a[z>>
1],40,0,aa);g=67;break;case 67:g=(j|0)==0?69:68;break;case 68:g=(j|0)==1?69:73;break;case 69:y=n;n=y+2|0;D=a[y>>1];y=n;n=y+2|0;y=a[y>>1];ig(S,y,D,h[((f+1168|0)+76|0)>>2],t|0,aa);Q=a[(f+432|0)>>1]<<16>>16<<1;g=(Q|0)!=((Q&65535)<<16>>16|0)?70:71;break;case 70:J=((a[(f+432|0)>>1]<<16>>16|0)>0?32767:-32768)&65535;g=72;break;case 71:J=Q&65535;g=72;break;case 72:g=104;break;case 73:g=(j|0)==2?74:78;break;case 74:y=n;n=y+2|0;D=a[y>>1];y=n;n=y+2|0;y=a[y>>1];gg(y,D,t|0);Q=a[(f+432|0)>>1]<<16>>16<<1;g=(Q|0)!=
((Q&65535)<<16>>16|0)?75:76;break;case 75:J=((a[(f+432|0)>>1]<<16>>16|0)>0?32767:-32768)&65535;g=77;break;case 76:J=Q&65535;g=77;break;case 77:g=103;break;case 78:g=(j|0)==3?79:83;break;case 79:y=n;n=y+2|0;D=a[y>>1];y=n;n=y+2|0;y=a[y>>1];kg(y,D,t|0);Q=a[(f+432|0)>>1]<<16>>16<<1;g=(Q|0)!=((Q&65535)<<16>>16|0)?80:81;break;case 80:J=((a[(f+432|0)>>1]<<16>>16|0)>0?32767:-32768)&65535;g=82;break;case 81:J=Q&65535;g=82;break;case 82:g=102;break;case 83:g=j>>>0<=5?84:88;break;case 84:y=n;n=y+2|0;D=a[y>>
1];y=n;n=y+2|0;y=a[y>>1];lg(y,D,h[(f+1168|0)>>2],t|0);Q=a[(f+432|0)>>1]<<16>>16<<1;g=(Q|0)!=((Q&65535)<<16>>16|0)?85:86;break;case 85:J=((a[(f+432|0)>>1]<<16>>16|0)>0?32767:-32768)&65535;g=87;break;case 86:J=Q&65535;g=87;break;case 87:g=101;break;case 88:g=(j|0)==6?89:93;break;case 89:mg(n,t|0,aa);n=n+14|0;Q=a[(f+432|0)>>1]<<16>>16<<1;g=(Q|0)!=((Q&65535)<<16>>16|0)?90:91;break;case 90:J=((a[(f+432|0)>>1]<<16>>16|0)>0?32767:-32768)&65535;g=92;break;case 91:J=Q&65535;g=92;break;case 92:g=100;break;
case 93:D=n;n=D+2|0;D=a[D>>1];g=(M<<16>>16|0)!=0?94:95;break;case 94:oc(f+686|0,a[(f+440|0)>>1],F,aa);g=96;break;case 95:g=Ag(j,D,h[((f+1168|0)+72|0)>>2]);a[F>>1]=g;g=96;break;case 96:Pb(f+686|0,M,a[(f+436|0)>>1],F,aa);hg(n,t|0,h[(f+1168|0)>>2]);n=n+20|0;Q=a[F>>1]<<16>>16<<1;g=(Q|0)!=((Q&65535)<<16>>16|0)?97:98;break;case 97:J=((a[F>>1]<<16>>16|0)>0?32767:-32768)&65535;g=99;break;case 98:J=Q&65535;g=99;break;case 99:g=100;break;case 100:g=101;break;case 101:g=102;break;case 102:g=103;break;case 103:g=
104;break;case 104:y=a[C>>1];g=105;break;case 105:g=(y<<16>>16|0)<40?106:108;break;case 106:g=Bg(a[(((t|0)+(y<<16>>16<<1)|0)+((-(a[C>>1]<<16>>16)|0)<<1)|0)>>1],J,aa);a[ka>>1]=g;g=$(a[((t|0)+(y<<16>>16<<1)|0)>>1],a[ka>>1],aa);a[((t|0)+(y<<16>>16<<1)|0)>>1]=g;g=107;break;case 107:y=y+1&65535;g=105;break;case 108:g=(j|0)==0?109:117;break;case 109:g=(P<<16>>16|0)!=0?110:111;break;case 110:E=n;n=E+2|0;E=a[E>>1];g=111;break;case 111:g=(M<<16>>16|0)==0?112:113;break;case 112:wd(f+714|0,j,E,t|0,P,F,I,f+1168|
0,aa);g=114;break;case 113:oc(f+686|0,a[(f+440|0)>>1],F,aa);Qb(f+700|0,f+714|0,a[(f+440|0)>>1],I,aa);g=114;break;case 114:Pb(f+686|0,M,a[(f+436|0)>>1],F,aa);Rb(f+700|0,M,a[(f+436|0)>>1],I,aa);J=a[F>>1];g=(J<<16>>16|0)>13017?115:116;break;case 115:J=13017;g=116;break;case 116:g=148;break;case 117:g=j>>>0<=4?119:118;break;case 118:g=(j|0)==6?119:132;break;case 119:D=n;n=D+2|0;D=a[D>>1];g=(M<<16>>16|0)==0?120:121;break;case 120:wd(f+714|0,j,D,t|0,P,F,I,f+1168|0,aa);g=122;break;case 121:oc(f+686|0,a[(f+
440|0)>>1],F,aa);Qb(f+700|0,f+714|0,a[(f+440|0)>>1],I,aa);g=122;break;case 122:Pb(f+686|0,M,a[(f+436|0)>>1],F,aa);Rb(f+700|0,M,a[(f+436|0)>>1],I,aa);J=a[F>>1];g=(J<<16>>16|0)>13017?123:124;break;case 123:J=13017;g=124;break;case 124:g=(j|0)==6?125:131;break;case 125:g=(a[(f+434|0)>>1]<<16>>16|0)>45?126:130;break;case 126:g=(J<<16>>16|0)<0?127:128;break;case 127:J=((J<<16>>16^-1)>>2^-1)&65535;g=129;break;case 128:J=J<<16>>16>>2&65535;g=129;break;case 129:g=130;break;case 130:g=131;break;case 131:g=
147;break;case 132:D=n;n=D+2|0;D=a[D>>1];g=(j|0)==5?133:142;break;case 133:g=(M<<16>>16|0)!=0?134:135;break;case 134:oc(f+686|0,a[(f+440|0)>>1],F,aa);g=136;break;case 135:g=Ag(j,D,h[((f+1168|0)+72|0)>>2]);a[F>>1]=g;g=136;break;case 136:Pb(f+686|0,M,a[(f+436|0)>>1],F,aa);D=n;n=D+2|0;D=a[D>>1];g=(M<<16>>16|0)==0?137:138;break;case 137:xd(f+714|0,j,D,t|0,h[((f+1168|0)+68|0)>>2],I,aa);g=139;break;case 138:Qb(f+700|0,f+714|0,a[(f+440|0)>>1],I,aa);g=139;break;case 139:Rb(f+700|0,M,a[(f+436|0)>>1],I,aa);
J=a[F>>1];g=(J<<16>>16|0)>13017?140:141;break;case 140:J=13017;g=141;break;case 141:g=146;break;case 142:g=(M<<16>>16|0)==0?143:144;break;case 143:xd(f+714|0,j,D,t|0,h[((f+1168|0)+68|0)>>2],I,aa);g=145;break;case 144:Qb(f+700|0,f+714|0,a[(f+440|0)>>1],I,aa);g=145;break;case 145:Rb(f+700|0,M,a[(f+436|0)>>1],I,aa);J=a[F>>1];g=146;break;case 146:g=147;break;case 147:g=148;break;case 148:g=(j|0)!=0?150:149;break;case 149:g=(P<<16>>16|0)==0?150:153;break;case 150:a[(f+432|0)>>1]=a[F>>1];g=(a[(f+432|0)>>
1]<<16>>16|0)>13017?151:152;break;case 151:a[(f+432|0)>>1]=13017;g=152;break;case 152:g=153;break;case 153:J=Cg(J,1,aa);g=(J<<16>>16|0)>16384?154:164;break;case 154:y=0;g=155;break;case 155:g=(y<<16>>16|0)<40?156:163;break;case 156:Q=Bg(a[(h[(f+388|0)>>2]+(y<<16>>16<<1)|0)>>1],J,aa);a[ka>>1]=Q;Q=Dg(a[ka>>1],a[F>>1],aa);g=(j|0)==7?157:161;break;case 157:g=(Q|0)<0?158:159;break;case 158:Q=(Q^-1)>>1^-1;g=160;break;case 159:Q>>=1;g=160;break;case 160:g=161;break;case 161:g=la(Q,aa);a[((u|0)+(y<<16>>16<<
1)|0)>>1]=g;g=162;break;case 162:y=y+1&65535;g=155;break;case 163:g=164;break;case 164:g=(M<<16>>16|0)==0?165:170;break;case 165:y=0;g=166;break;case 166:g=(y<<16>>16|0)<8?167:169;break;case 167:a[((f+466|0)+(y<<16>>16<<1)|0)>>1]=a[((f+466|0)+(((y<<16>>16)+1|0)<<1)|0)>>1];g=168;break;case 168:y=y+1&65535;g=166;break;case 169:a[((f+466|0)+16|0)>>1]=a[F>>1];g=170;break;case 170:g=(a[(f+436|0)>>1]<<16>>16|0)!=0?172:171;break;case 171:g=(M<<16>>16|0)!=0?172:181;break;case 172:g=(a[(f+462|0)>>1]<<16>>
16|0)!=0?173:181;break;case 173:g=(j|0)==0?176:174;break;case 174:g=(j|0)==1?176:175;break;case 175:g=(j|0)==2?176:181;break;case 176:g=(a[F>>1]<<16>>16|0)>12288?177:178;break;case 177:a[F>>1]=((((a[F>>1]<<16>>16)-12288|0)>>1)+12288|0)&65535;g=178;break;case 178:g=(a[F>>1]<<16>>16|0)>14745?179:180;break;case 179:a[F>>1]=14745;g=180;break;case 180:g=181;break;case 181:Eg(s|0,(f+646|0)+20|0,A,v|0,aa);K=Ff(f+608|0,j,a[I>>1],v|0,f+626|0,M,a[(f+436|0)>>1],ca,a[(f+438|0)>>1],a[(f+462|0)>>1],a[(f+464|0)>>
1],aa);g=j>>>0>3?182:184;break;case 182:g=(j|0)!=6?183:184;break;case 183:K=a[I>>1];g=184;break;case 184:g=j>>>0<=6?185:186;break;case 185:U=a[F>>1];Z=1;g=190;break;case 186:g=(a[F>>1]<<16>>16|0)<0?187:188;break;case 187:U=((a[F>>1]<<16>>16^-1)>>1^-1)&65535;g=189;break;case 188:U=a[F>>1]<<16>>16>>1&65535;g=189;break;case 189:Z=2;g=190;break;case 190:y=0;g=191;break;case 191:g=(y<<16>>16|0)<40?192:194;break;case 192:a[(w+(y<<16>>16<<1)|0)>>1]=a[(h[(f+388|0)>>2]+(y<<16>>16<<1)|0)>>1];Q=Dg(a[(h[(f+388|
0)>>2]+(y<<16>>16<<1)|0)>>1],U,aa);Q=yd(Q,a[(t+(y<<16>>16<<1)|0)>>1],a[I>>1],aa);a:{g=Z;for(var da=void 0,da=0;;)switch(da){case 0:var Y,V,ia;Y=Q;V=g;ia=0;da=(V<<16>>16|0)>0?1:4;break;case 1:ia=Y<<(V<<16>>16);da=(ia>>(V<<16>>16|0)|0)!=(Y|0)?2:3;break;case 2:ia=Y>>31^2147483647;da=3;break;case 3:da=7;break;case 4:V=(-(V<<16>>16)|0)&65535;da=(V<<16>>16|0)<31?5:6;break;case 5:ia=Y>>(V<<16>>16|0);da=6;break;case 6:da=7;break;case 7:Q=ia;break a;default:x(0,"bad label: "+da)}Q=void 0}g=la(Q,aa);a[(h[(f+
388|0)>>2]+(y<<16>>16<<1)|0)>>1]=g;g=193;break;case 193:y=y+1&65535;g=191;break;case 194:a[((f+730|0)+14|0)>>1]=0;g=(j|0)==0?197:195;break;case 195:g=(j|0)==1?197:196;break;case 196:g=(j|0)==2?197:201;break;case 197:g=(a[(f+464|0)>>1]<<16>>16|0)>3?198:201;break;case 198:g=(a[(f+462|0)>>1]<<16>>16|0)!=0?199:201;break;case 199:g=(M<<16>>16|0)!=0?200:201;break;case 200:a[((f+730|0)+14|0)>>1]=1;g=201;break;case 201:Fg(f+730|0,j,w|0,K,a[F>>1],t|0,U,Z,f+1168|0,aa);y=Q=0;g=202;break;case 202:g=(y<<16>>16|
0)<40?203:205;break;case 203:Q=yd(Q,a[((w|0)+(y<<16>>16<<1)|0)>>1],a[((w|0)+(y<<16>>16<<1)|0)>>1],aa);g=204;break;case 204:y=y+1&65535;g=202;break;case 205:g=(Q|0)<0?206:207;break;case 206:Q=(Q^-1)>>1^-1;g=208;break;case 207:Q>>=1;g=208;break;case 208:Q=pc(Q,ka,aa);a:{g=((a[ka>>1]<<16>>16>>1)+15|0)&65535;da=void 0;for(da=0;;)switch(da){case 0:var ha,ba,W;ha=Q;ba=g;W=0;da=(ba<<16>>16|0)>0?1:4;break;case 1:da=(ba<<16>>16|0)<31?2:3;break;case 2:W=ha>>(ba<<16>>16|0);da=3;break;case 3:da=7;break;case 4:ba=
(-(ba<<16>>16)|0)&65535;W=ha<<(ba<<16>>16);da=(W>>(ba<<16>>16|0)|0)!=(ha|0)?5:6;break;case 5:W=ha>>31^2147483647;da=6;break;case 6:da=7;break;case 7:Q=W;break a;default:x(0,"bad label: "+da)}Q=void 0}g=(Q|0)<0?209:210;break;case 209:L=((Q^-1)>>2^-1)&65535;g=211;break;case 210:L=Q>>2&65535;g=211;break;case 211:g=(j|0)==0?214:212;break;case 212:g=(j|0)==1?214:213;break;case 213:g=(j|0)==2?214:225;break;case 214:g=(a[(f+464|0)>>1]<<16>>16|0)>5?215:225;break;case 215:g=(a[(f+462|0)>>1]<<16>>16|0)!=0?
216:225;break;case 216:g=(a[(f+440|0)>>1]<<16>>16|0)<4?217:225;break;case 217:g=(ca<<16>>16|0)!=0?218:219;break;case 218:g=(a[(f+438|0)>>1]<<16>>16|0)!=0?221:219;break;case 219:g=(M<<16>>16|0)!=0?221:220;break;case 220:g=(a[(f+436|0)>>1]<<16>>16|0)!=0?221:225;break;case 221:X=0;g=(ca<<16>>16|0)!=0?222:224;break;case 222:g=(M<<16>>16|0)==0?223:224;break;case 223:X=1;g=224;break;case 224:Gg(w|0,L,f+442|0,a[(f+464|0)>>1],a[(f+436|0)>>1],X,aa);g=225;break;case 225:g=(a[(f+462|0)>>1]<<16>>16|0)!=0?226:
229;break;case 226:g=(M<<16>>16|0)!=0?228:227;break;case 227:g=(a[(f+436|0)>>1]<<16>>16|0)!=0?228:229;break;case 228:g=(a[(f+440|0)>>1]<<16>>16|0)<4?234:229;break;case 229:y=0;g=230;break;case 230:g=(y<<16>>16|0)<8?231:233;break;case 231:a[((f+442|0)+(y<<16>>16<<1)|0)>>1]=a[((f+442|0)+(((y<<16>>16)+1|0)<<1)|0)>>1];g=232;break;case 232:y=y+1&65535;g=230;break;case 233:a[((f+442|0)+16|0)>>1]=L;g=234;break;case 234:g=(J<<16>>16|0)>16384?235:240;break;case 235:y=0;g=236;break;case 236:g=(y<<16>>16|0)<
40?237:239;break;case 237:g=$(a[((u|0)+(y<<16>>16<<1)|0)>>1],a[((w|0)+(y<<16>>16<<1)|0)>>1],aa);a[((u|0)+(y<<16>>16<<1)|0)>>1]=g;g=238;break;case 238:y=y+1&65535;g=236;break;case 239:De(w|0,u|0,40,aa);h[aa>>2]=0;Ca(p,u|0,q+(A<<16>>16<<1)|0,40,f+412|0,0);g=241;break;case 240:h[aa>>2]=0;Ca(p,w|0,q+(A<<16>>16<<1)|0,40,f+412|0,0);g=241;break;case 241:g=(h[aa>>2]|0)!=0?242:257;break;case 242:y=193;g=243;break;case 243:g=(y<<16>>16|0)>=0?244:249;break;case 244:g=(a[((f|0)+(y<<16>>16<<1)|0)>>1]<<16>>16|
0)<0?245:246;break;case 245:a[((f|0)+(y<<16>>16<<1)|0)>>1]=((a[((f|0)+(y<<16>>16<<1)|0)>>1]<<16>>16^-1)>>2^-1)&65535;g=247;break;case 246:a[((f|0)+(y<<16>>16<<1)|0)>>1]=a[((f|0)+(y<<16>>16<<1)|0)>>1]<<16>>16>>2&65535;g=247;break;case 247:g=248;break;case 248:y=y-1&65535;g=243;break;case 249:y=39;g=250;break;case 250:g=(y<<16>>16|0)>=0?251:256;break;case 251:g=(a[((w|0)+(y<<16>>16<<1)|0)>>1]<<16>>16|0)<0?252:253;break;case 252:a[((w|0)+(y<<16>>16<<1)|0)>>1]=((a[((w|0)+(y<<16>>16<<1)|0)>>1]<<16>>16^
-1)>>2^-1)&65535;g=254;break;case 253:a[((w|0)+(y<<16>>16<<1)|0)>>1]=a[((w|0)+(y<<16>>16<<1)|0)>>1]<<16>>16>>2&65535;g=254;break;case 254:g=255;break;case 255:y=y-1&65535;g=250;break;case 256:Ca(p,w|0,q+(A<<16>>16<<1)|0,40,f+412|0,1);g=258;break;case 257:ua(f+412|0,q+((((A<<16>>16)+40|0)-10|0)<<1)|0,20,1,0);g=258;break;case 258:ua(f|0,(f|0)+80|0,308,1,0);p=p+22|0;a[(f+434|0)>>1]=a[C>>1];g=259;break;case 259:A=((A<<16>>16)+40|0)&65535;g=33;break;case 260:g=Xe(f+484|0,f+466|0,q|0,f+464|0,aa);a[(f+462|
0)>>1]=g;Hg(f+748|0,(f+646|0)+20|0,q,aa);a[(f+436|0)>>1]=M;a[(f+438|0)>>1]=ca;sd(f+626|0,(f+646|0)+20|0,aa);g=261;break;case 261:h[((f+748|0)+408|0)>>2]=O;B=i;return;default:x(0,"bad label: "+g)}}function Bg(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function Cg(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<
0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Dg(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>
2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,"bad label: "+c)}}function yd(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function zd(a,k){var e;for(e=
0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Ig(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j;d=a;i=k;g=e;f=c;d=(d<<16>>16)*
(g<<16>>16)|0;b=(d|0)!=1073741824?1:2;break;case 1:d<<=1;b=3;break;case 2:h[f>>2]=1;d=2147483647;b=3;break;case 3:b=((i<<16>>16)*(g<<16>>16)|0)>>15;j=d+(b<<1)|0;b=(d^b|0)>0?4:7;break;case 4:b=((j^d)>>31|0)!=0?5:6;break;case 5:j=(d>>31|0)!=0?-2147483648:2147483647;h[f>>2]=1;b=6;break;case 6:b=7;break;case 7:return j;default:x(0,"bad label: "+b)}}function wd(R,k,e,c,b,d,i,g,f){var j=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var n;for(n=0;;)switch(n){case 0:var l,q,m,p,o,r,s,v,
t,u,w=j,y=j+4,A,C,z;l=R;q=k;m=e;p=c;o=b;r=d;s=i;v=g;t=f;m=zd(m,2,t);n=(q|0)==6?3:1;break;case 1:n=(q|0)==4?3:2;break;case 2:n=(q|0)==3?3:4;break;case 3:A=u=h[(v+84|0)>>2]+(m<<16>>16<<1)|0;u=A+2|0;a[r>>1]=a[A>>1];A=u;u=A+2|0;C=a[A>>1];A=u;u=A+2|0;A=a[A>>1];u=a[u>>1];n=10;break;case 4:n=(q|0)==0?5:8;break;case 5:m=((m<<16>>16)+((1^o<<16>>16)<<1)|0)&65535;n=(m<<16>>16|0)>1022?6:7;break;case 6:m=1022;n=7;break;case 7:A=u=Jg+(m<<16>>16<<1)|0;u=A+2|0;a[r>>1]=a[A>>1];n=C=a[u>>1];Za(n<<16>>16,y,w,t);a[y>>
1]=((a[y>>1]<<16>>16)-12|0)&65535;n=Sb(a[w>>1],5,t);A=zd(a[y>>1],10,t);A=$(n,A,t);z=Ig(a[y>>1],a[w>>1],24660,t);a:{u=z;n=void 0;for(n=0;;)switch(n){case 0:var D,E,F;D=u;E=13;F=0;n=(E<<16>>16|0)>0?1:4;break;case 1:F=D<<(E<<16>>16);n=(F>>(E<<16>>16|0)|0)!=(D|0)?2:3;break;case 2:F=D>>31^2147483647;n=3;break;case 3:n=7;break;case 4:E=(-(E<<16>>16)|0)&65535;n=(E<<16>>16|0)<31?5:6;break;case 5:F=D>>(E<<16>>16|0);n=6;break;case 6:n=7;break;case 7:z=F;break a;default:x(0,"bad label: "+n)}z=void 0}u=la(z,
t);n=9;break;case 8:A=u=h[(v+80|0)>>2]+(m<<16>>16<<1)|0;u=A+2|0;a[r>>1]=a[A>>1];A=u;u=A+2|0;C=a[A>>1];A=u;u=A+2|0;A=a[A>>1];u=a[u>>1];n=9;break;case 9:n=10;break;case 10:hb(l,q,p,y,w,0,0,t);k=Ga(14,a[w>>1],t)&65535;a:{R=C;e=void 0;for(e=0;;)switch(e){case 0:var I,K;I=R;e=k;K=t;I=(I<<16>>16)*(e<<16>>16)|0;e=(I|0)!=1073741824?1:2;break;case 1:I<<=1;e=3;break;case 2:h[K>>2]=1;I=2147483647;e=3;break;case 3:z=I;break a;default:x(0,"bad label: "+e)}z=void 0}n=(10-(a[y>>1]<<16>>16)|0)&65535;a:{y=z;K=n;I=
void 0;for(I=0;;)switch(I){case 0:var J,G,U;J=y;G=K;U=0;I=(G<<16>>16|0)>0?1:4;break;case 1:I=(G<<16>>16|0)<31?2:3;break;case 2:U=J>>(G<<16>>16|0);I=3;break;case 3:I=7;break;case 4:G=(-(G<<16>>16)|0)&65535;U=J<<(G<<16>>16);I=(U>>(G<<16>>16|0)|0)!=(J|0)?5:6;break;case 5:U=J>>31^2147483647;I=6;break;case 6:I=7;break;case 7:z=U;break a;default:x(0,"bad label: "+I)}z=void 0}a[s>>1]=z>>16&65535;ib(l,A,u);B=j;return;default:x(0,"bad label: "+n)}}function zg(h,k,e,c,b,d){var i;for(i=0;;)switch(i){case 0:var g,
f,j,n,l,q,m;g=h;f=k;j=e;i=c;n=b;l=d;i=(i<<16>>16|0)==0?1:5;break;case 1:i=(g<<16>>16|0)<463?2:3;break;case 2:i=((g<<16>>16)+5|0)&65535;i=((i<<16>>16)*5462|0)>>15&65535;i=((i<<16>>16)+17|0)&65535;a[n>>1]=i;i=i<<16>>16<<1&65535;i=((i<<16>>16)+(a[n>>1]<<16>>16)|0)&65535;i=i<<16>>16<<1&65535;i=((g<<16>>16)-(i<<16>>16)|0)&65535;a[l>>1]=((i<<16>>16)+105|0)&65535;i=4;break;case 3:a[n>>1]=((g<<16>>16)-368|0)&65535;a[l>>1]=0;i=4;break;case 4:i=10;break;case 5:q=((a[n>>1]<<16>>16)-5|0)&65535;i=(q<<16>>16|0)<
(f<<16>>16|0)?6:7;break;case 6:q=f;i=7;break;case 7:i=((q<<16>>16)+9|0)&65535;i=(i<<16>>16|0)>(j<<16>>16|0)?8:9;break;case 8:i=j;q=((i<<16>>16)-9|0)&65535;i=9;break;case 9:i=((g<<16>>16)+5|0)&65535;i=((i<<16>>16)*5462|0)>>15&65535;i=((i<<16>>16)-1|0)&65535;a[n>>1]=((i<<16>>16)+(q<<16>>16)|0)&65535;i=((i<<16>>16)+(i<<16>>16<<1)|0)&65535;i=i<<16>>16<<1&65535;m=((g<<16>>16)-3|0)&65535;a[l>>1]=((m<<16>>16)-(i<<16>>16)|0)&65535;i=10;break;case 10:return;default:x(0,"bad label: "+i)}}function Ad(a,k){var e;
for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Ag(h,k,e){var c;for(c=0;;)switch(c){case 0:var b;c=h;b=a[(e+(k<<16>>16<<1)|0)>>1];c=
(c|0)==7?1:2;break;case 1:b=b<<16>>16&65532;c=2;break;case 2:return b;default:x(0,"bad label: "+c)}}function yg(R,k,e,c,b,d,i,g,f){var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v;n=R;l=k;q=e;j=c;m=b;p=d;o=i;r=g;s=f;j=(j<<16>>16|0)==0?1:5;break;case 1:j=(n<<16>>16|0)<197?2:3;break;case 2:v=((n<<16>>16)+2|0)&65535;a:{j=s;for(var t=void 0,t=0;;)switch(t){case 0:var u,w;u=v;w=j;u=((u<<16>>16)*10923|0)>>15;t=(u|0)>32767?1:2;break;case 1:h[w>>2]=1;u=32767;t=2;break;case 2:v=u&65535;break a;default:x(0,
"bad label: "+t)}v=void 0}j=((v<<16>>16)+19|0)&65535;a[p>>1]=j;j=j<<16>>16<<1&65535;j=((j<<16>>16)+(a[p>>1]<<16>>16)|0)&65535;v=((n<<16>>16)-(j<<16>>16)|0)&65535;a[o>>1]=((v<<16>>16)+58|0)&65535;j=4;break;case 3:a[p>>1]=((n<<16>>16)-112|0)&65535;a[o>>1]=0;j=4;break;case 4:j=19;break;case 5:j=(r<<16>>16|0)==0?6:7;break;case 6:j=((n<<16>>16)+2|0)&65535;j=((j<<16>>16)*10923|0)>>15&65535;j=((j<<16>>16)-1|0)&65535;a[p>>1]=((j<<16>>16)+(l<<16>>16)|0)&65535;j=((j<<16>>16)+(j<<16>>16<<1)|0)&65535;v=((n<<
16>>16)-2|0)&65535;a[o>>1]=((v<<16>>16)-(j<<16>>16)|0)&65535;j=18;break;case 7:v=m;j=ha(v,l,s);j=(j<<16>>16|0)>5?8:9;break;case 8:v=((l<<16>>16)+5|0)&65535;j=9;break;case 9:j=((q<<16>>16)-(v<<16>>16)|0)&65535;j=(j<<16>>16|0)>4?10:11;break;case 10:v=((q<<16>>16)-4|0)&65535;j=11;break;case 11:j=(n<<16>>16|0)<4?12:13;break;case 12:j=((v<<16>>16)-5|0)&65535;a[p>>1]=((j<<16>>16)+(n<<16>>16)|0)&65535;a[o>>1]=0;j=17;break;case 13:j=(n<<16>>16|0)<12?14:15;break;case 14:j=((n<<16>>16)-5|0)&65535;j=((j<<16>>
16)*10923|0)>>15&65535;j=j-1&65535;a[p>>1]=((j<<16>>16)+(v<<16>>16)|0)&65535;j=((j<<16>>16)+(j<<16>>16<<1)|0)&65535;v=((n<<16>>16)-9|0)&65535;a[o>>1]=((v<<16>>16)-(j<<16>>16)|0)&65535;j=16;break;case 15:j=((n<<16>>16)-12|0)&65535;j=((j<<16>>16)+(v<<16>>16)|0)&65535;a[p>>1]=((j<<16>>16)+1|0)&65535;a[o>>1]=0;j=16;break;case 16:j=17;break;case 17:j=18;break;case 18:j=19;break;case 19:return;default:x(0,"bad label: "+j)}}function xd(R,k,e,c,b,d,i){var g=B;B+=16;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");
var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o=g,r=g+4,s=g+8,v=g+12;j=R;f=k;n=e;l=c;q=b;m=d;p=i;hb(j,f,l,o,r,s,v,p);n=n<<16>>16&31;n=q+((((n<<16>>16)+(n<<16>>16<<1)|0)&65535)<<16>>16<<1)|0;f=(ha(f&65535,7,p)<<16>>16|0)==0?1:2;break;case 1:l=Ga(a[o>>1],a[r>>1],p)&65535;f=l=Ad(l,4,p);l=n;n=l+2|0;a:{l=a[l>>1];q=p;s=void 0;for(s=0;;)switch(s){case 0:var t,u;t=f;s=l;u=q;t=((t<<16>>16)*(s<<16>>16)|0)>>15;s=(t|0)>32767?1:2;break;case 1:h[u>>2]=1;t=32767;s=2;break;case 2:f=t&65535;break a;default:x(0,
"bad label: "+s)}f=void 0}f=Ad(f,1,p);a[m>>1]=f;f=3;break;case 2:l=Ga(14,a[r>>1],p)&65535;f=n;n=f+2|0;a:{f=a[f>>1];q=p;s=void 0;for(s=0;;)switch(s){case 0:var w,y;w=f;s=l;y=q;w=(w<<16>>16)*(s<<16>>16)|0;s=(w|0)!=1073741824?1:2;break;case 1:w<<=1;s=3;break;case 2:h[y>>2]=1;w=2147483647;s=3;break;case 3:f=w;break a;default:x(0,"bad label: "+s)}f=void 0}l=ha(9,a[o>>1],p);a:{q=void 0;for(q=0;;)switch(q){case 0:var A,C,z;A=f;C=l;z=0;q=(C<<16>>16|0)>0?1:4;break;case 1:q=(C<<16>>16|0)<31?2:3;break;case 2:z=
A>>(C<<16>>16|0);q=3;break;case 3:q=7;break;case 4:C=(-(C<<16>>16)|0)&65535;z=A<<(C<<16>>16);q=(z>>(C<<16>>16|0)|0)!=(A|0)?5:6;break;case 5:z=A>>31^2147483647;q=6;break;case 6:q=7;break;case 7:f=z;break a;default:x(0,"bad label: "+q)}f=void 0}a[m>>1]=f>>16&65535;f=3;break;case 3:R=n;n=R+2|0;R=a[R>>1];k=a[n>>1];ib(j,R,k);B=g;return;default:x(0,"bad label: "+f)}}function Bd(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j;d=a;i=k;g=e;f=c;d=(d<<16>>16)*(g<<16>>16)|0;b=(d|0)!=1073741824?1:2;break;
case 1:d<<=1;b=3;break;case 2:h[f>>2]=1;d=2147483647;b=3;break;case 3:b=((i<<16>>16)*(g<<16>>16)|0)>>15;j=d+(b<<1)|0;b=(d^b|0)>0?4:7;break;case 4:b=((j^d)>>31|0)!=0?5:6;break;case 5:j=(d>>31|0)!=0?-2147483648:2147483647;h[f>>2]=1;b=6;break;case 6:b=7;break;case 7:return j;default:x(0,"bad label: "+b)}}function Kg(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,h;d=a;i=k;g=e;f=c;j=(d<<16>>16)*(g<<16>>16)|0;b=(j|0)!=1073741824?1:2;break;case 1:j<<=1;b=3;break;case 2:j=2147483647;b=3;break;case 3:b=
((d<<16>>16)*(f<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?4:7;break;case 4:b=((h^j)>>31|0)!=0?5:6;break;case 5:h=(j>>31|0)!=0?-2147483648:2147483647;b=6;break;case 6:b=7;break;case 7:j=h;b=((i<<16>>16)*(g<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?8:11;break;case 8:b=((h^j)>>31|0)!=0?9:10;break;case 9:h=(j>>31|0)!=0?-2147483648:2147483647;b=10;break;case 10:b=11;break;case 11:return h;default:x(0,"bad label: "+b)}}function xa(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g,f,j,h,l;b=a;d=k;i=0;e=
(b<<16>>16|0)>(d<<16>>16|0)?2:1;break;case 1:e=(b<<16>>16|0)<0?2:3;break;case 2:c=0;e=19;break;case 3:e=b<<16>>16!=0?4:18;break;case 4:e=(b<<16>>16|0)!=(d<<16>>16|0)?5:16;break;case 5:f=b<<16>>16;j=d<<16>>16;h=j<<1;l=j<<2;g=5;e=6;break;case 6:e=(g<<16>>16|0)>0?7:15;break;case 7:i=i<<16>>16<<3&65535;f<<=3;e=(f|0)>=(l|0)?8:9;break;case 8:f=f-l|0;i=(i<<16>>16|4)&65535;e=9;break;case 9:e=(f|0)>=(h|0)?10:11;break;case 10:f=f-h|0;i=(i<<16>>16|2)&65535;e=11;break;case 11:e=(f|0)>=(j|0)?12:13;break;case 12:f=
f-j|0;i=(i<<16>>16|1)&65535;e=13;break;case 13:e=14;break;case 14:g=g-1&65535;e=6;break;case 15:e=17;break;case 16:i=32767;e=17;break;case 17:e=18;break;case 18:c=i;e=19;break;case 19:return c;default:x(0,"bad label: "+e)}}function Cd(a,k,e,c){var b,d;b=xa(16383,k);e=Bd(k,e,b,c);e=2147483647-e|0;k=e>>16&65535;e=Bd(k,((e>>1)-(k<<16>>16<<15)|0)&65535,b,c);k=e>>16&65535;b=a>>16&65535;e=Kg(b,((a>>1)-(b<<16>>16<<15)|0)&65535,k,((e>>1)-(k<<16>>16<<15)|0)&65535,c);a:{a=e;for(c=0;;)switch(c){case 0:var i,
g;d=a;i=2;g=0;c=(i<<16>>16|0)>0?1:4;break;case 1:g=d<<(i<<16>>16);c=(g>>(i<<16>>16|0)|0)!=(d|0)?2:3;break;case 2:g=d>>31^2147483647;c=3;break;case 3:c=7;break;case 4:i=(-(i<<16>>16)|0)&65535;c=(i<<16>>16|0)<31?5:6;break;case 5:g=d>>(i<<16>>16|0);c=6;break;case 6:c=7;break;case 7:e=g;break a;default:x(0,"bad label: "+c)}e=void 0}return e}function qc(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;
case 2:return b&65535;default:x(0,"bad label: "+c)}}function td(R,k,e,c,b,d,i){var g=B;B+=40;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o,r,s,v=g,t=g+20,u,w,y,A,C,z,D,E,F,I,K,J;j=R;n=k;f=e;l=c;q=b;m=d;p=i;u=h[(q+44|0)>>2];w=h[(q+64|0)>>2];y=h[(q+4|0)>>2];A=h[(q+12|0)>>2];C=h[(q+20|0)>>2];z=h[(q+52|0)>>2];q=h[(q+56|0)>>2];f=(f<<16>>16|0)!=0?1:17;break;case 1:o=0;f=2;break;case 2:f=(o<<16>>16|0)<10?3:5;break;case 3:r=qc(a[((j+20|0)+(o<<
16>>16<<1)|0)>>1],29491,p);s=qc(a[(u+(o<<16>>16<<1)|0)>>1],3277,p);f=$(s,r,p);a[(t+(o<<16>>16<<1)|0)>>1]=f;f=4;break;case 4:o=o+1&65535;f=2;break;case 5:f=(n|0)!=8?6:11;break;case 6:o=0;f=7;break;case 7:f=(o<<16>>16|0)<10?8:10;break;case 8:r=qc(a[((j|0)+(o<<16>>16<<1)|0)>>1],a[(w+(o<<16>>16<<1)|0)>>1],p);r=$(a[(u+(o<<16>>16<<1)|0)>>1],r,p);f=ha(a[(t+(o<<16>>16<<1)|0)>>1],r,p);a[((j|0)+(o<<16>>16<<1)|0)>>1]=f;f=9;break;case 9:o=o+1&65535;f=7;break;case 10:f=16;break;case 11:o=0;f=12;break;case 12:f=
(o<<16>>16|0)<10?13:15;break;case 13:r=$(a[(u+(o<<16>>16<<1)|0)>>1],a[((j|0)+(o<<16>>16<<1)|0)>>1],p);f=ha(a[(t+(o<<16>>16<<1)|0)>>1],r,p);a[((j|0)+(o<<16>>16<<1)|0)>>1]=f;f=14;break;case 14:o=o+1&65535;f=12;break;case 15:f=16;break;case 16:f=45;break;case 17:D=0;E=1533;F=0;K=A;f=(n|0)==0?19:18;break;case 18:f=(n|0)==1?19:20;break;case 19:I=y;J=z;D=765;F=508;f=24;break;case 20:f=(n|0)==5?21:22;break;case 21:I=q;J=C;D=1533;F=2044;f=23;break;case 22:I=y;J=C;D=765;F=2044;f=23;break;case 23:f=24;break;
case 24:r=l;l=r+2|0;s=a[r>>1];r=((s<<16>>16)+(s<<16>>16<<1)|0)&65535;f=(r<<16>>16|0)>(D<<16>>16|0)?25:26;break;case 25:r=D;f=26;break;case 26:s=f=I+(r<<16>>16<<1)|0;f=s+2|0;a[(v|0)>>1]=a[s>>1];s=f;f=s+2|0;a[(v+2|0)>>1]=a[s>>1];a[(v+4|0)>>1]=a[f>>1];s=l;l=s+2|0;s=a[s>>1];f=(n|0)==0?28:27;break;case 27:f=(n|0)==1?28:29;break;case 28:s=s<<16>>16<<1&65535;f=29;break;case 29:r=((s<<16>>16)+(s<<16>>16<<1)|0)&65535;f=(r<<16>>16|0)>(E<<16>>16|0)?30:31;break;case 30:r=E;f=31;break;case 31:r=f=K+(r<<16>>16<<
1)|0;f=r+2|0;a[(v+6|0)>>1]=a[r>>1];r=f;f=r+2|0;a[(v+8|0)>>1]=a[r>>1];a[(v+10|0)>>1]=a[f>>1];r=l;l=r+2|0;s=a[r>>1];r=s<<16>>16<<2&65535;f=(r<<16>>16|0)>(F<<16>>16|0)?32:33;break;case 32:r=F;f=33;break;case 33:var G=f=J+(r<<16>>16<<1)|0;f=G+2|0;a[(v+12|0)>>1]=a[G>>1];G=f;f=G+2|0;a[(v+14|0)>>1]=a[G>>1];G=f;f=G+2|0;a[(v+16|0)>>1]=a[G>>1];a[(v+18|0)>>1]=a[f>>1];f=(n|0)!=8?34:39;break;case 34:o=0;f=35;break;case 35:f=(o<<16>>16|0)<10?36:38;break;case 36:r=qc(a[((j|0)+(o<<16>>16<<1)|0)>>1],a[(w+(o<<16>>
16<<1)|0)>>1],p);r=$(a[(u+(o<<16>>16<<1)|0)>>1],r,p);f=$(a[(v+(o<<16>>16<<1)|0)>>1],r,p);a[(t+(o<<16>>16<<1)|0)>>1]=f;a[((j|0)+(o<<16>>16<<1)|0)>>1]=a[(v+(o<<16>>16<<1)|0)>>1];f=37;break;case 37:o=o+1&65535;f=35;break;case 38:f=44;break;case 39:o=0;f=40;break;case 40:f=(o<<16>>16|0)<10?41:43;break;case 41:r=$(a[(u+(o<<16>>16<<1)|0)>>1],a[((j|0)+(o<<16>>16<<1)|0)>>1],p);f=$(a[(v+(o<<16>>16<<1)|0)>>1],r,p);a[(t+(o<<16>>16<<1)|0)>>1]=f;a[((j|0)+(o<<16>>16<<1)|0)>>1]=a[(v+(o<<16>>16<<1)|0)>>1];f=42;break;
case 42:o=o+1&65535;f=40;break;case 43:f=44;break;case 44:f=45;break;case 45:Ma(t|0,205,10,p);ua(j+20|0,t|0,20,1,0);Fa(t|0,m,10,p);B=g;return;default:x(0,"bad label: "+f)}}function tb(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=
(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function rc(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e<<16>>16|0)==-32768?1:2;break;case 1:var c=32767;k=3;break;case 2:c=-(e<<16>>16)|0;k=3;break;case 3:return c&65535;default:x(0,"bad label: "+k)}}function xg(R,k,e,c,b,d,i){var g=B;B+=80;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o,r,s,v=g,t=g+20,u=g+40,w=g+60,y,A,C,z,D;j=R;
f=k;n=e;l=c;q=b;m=d;p=i;y=h[(l+48|0)>>2];A=h[(l+8|0)>>2];C=h[(l+16|0)>>2];z=h[(l+24|0)>>2];D=h[(l+28|0)>>2];l=h[(l+32|0)>>2];f=(f<<16>>16|0)!=0?1:6;break;case 1:o=0;f=2;break;case 2:f=(o<<16>>16|0)<10?3:5;break;case 3:f=((a[((j+20|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)*31128|0)>>15&65535;r=((a[(y+(o<<16>>16<<1)|0)>>1]<<16>>16)*1639|0)>>15&65535;f=$(r,f,p);a[((u|0)+(o<<16>>16<<1)|0)>>1]=f;a[((w|0)+(o<<16>>16<<1)|0)>>1]=a[((u|0)+(o<<16>>16<<1)|0)>>1];f=((a[((j|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)*21299|0)>>
15&65535;f=$(a[(y+(o<<16>>16<<1)|0)>>1],f,p);f=ha(a[((w|0)+(o<<16>>16<<1)|0)>>1],f,p);a[((j|0)+(o<<16>>16<<1)|0)>>1]=f;f=4;break;case 4:o=o+1&65535;f=2;break;case 5:f=17;break;case 6:f=tb(a[n>>1],2,p);r=s=A+(f<<16>>16<<1)|0;s=r+2|0;a[(v|0)>>1]=a[r>>1];r=s;s=r+2|0;a[((v|0)+2|0)>>1]=a[r>>1];r=s;s=r+2|0;a[(t|0)>>1]=a[r>>1];a[((t|0)+2|0)>>1]=a[s>>1];f=tb(a[(n+2|0)>>1],2,p);r=s=C+(f<<16>>16<<1)|0;s=r+2|0;a[((v|0)+4|0)>>1]=a[r>>1];r=s;s=r+2|0;a[((v|0)+6|0)>>1]=a[r>>1];r=s;s=r+2|0;a[((t|0)+4|0)>>1]=a[r>>
1];r=s;s=r+2|0;a[((t|0)+6|0)>>1]=a[r>>1];r=a[(n+4|0)>>1]<<16>>16&1;f=(a[(n+4|0)>>1]<<16>>16|0)<0?7:8;break;case 7:o=((a[(n+4|0)>>1]<<16>>16^-1)>>1^-1)&65535;f=9;break;case 8:o=a[(n+4|0)>>1]<<16>>16>>1&65535;f=9;break;case 9:f=tb(o,2,p);s=z+(f<<16>>16<<1)|0;f=(r<<16>>16|0)==0?10:11;break;case 10:f=s;s=f+2|0;a[((v|0)+8|0)>>1]=a[f>>1];f=s;s=f+2|0;a[((v|0)+10|0)>>1]=a[f>>1];f=s;s=f+2|0;a[((t|0)+8|0)>>1]=a[f>>1];f=s;s=f+2|0;a[((t|0)+10|0)>>1]=a[f>>1];f=12;break;case 11:f=s;s=f+2|0;f=rc(a[f>>1]);a[((v|
0)+8|0)>>1]=f;f=s;s=f+2|0;f=rc(a[f>>1]);a[((v|0)+10|0)>>1]=f;f=s;s=f+2|0;f=rc(a[f>>1]);a[((t|0)+8|0)>>1]=f;f=s;s=f+2|0;f=rc(a[f>>1]);a[((t|0)+10|0)>>1]=f;f=12;break;case 12:f=tb(a[(n+6|0)>>1],2,p);o=s=D+(f<<16>>16<<1)|0;s=o+2|0;a[((v|0)+12|0)>>1]=a[o>>1];o=s;s=o+2|0;a[((v|0)+14|0)>>1]=a[o>>1];o=s;s=o+2|0;a[((t|0)+12|0)>>1]=a[o>>1];a[((t|0)+14|0)>>1]=a[s>>1];f=tb(a[(n+8|0)>>1],2,p);o=s=l+(f<<16>>16<<1)|0;s=o+2|0;a[((v|0)+16|0)>>1]=a[o>>1];o=s;s=o+2|0;a[((v|0)+18|0)>>1]=a[o>>1];o=s;s=o+2|0;a[((t|0)+
16|0)>>1]=a[o>>1];o=s;s=o+2|0;a[((t|0)+18|0)>>1]=a[o>>1];o=0;f=13;break;case 13:f=(o<<16>>16|0)<10?14:16;break;case 14:a:{f=a[((j|0)+(o<<16>>16<<1)|0)>>1];for(var E=p,F=void 0,F=0;;)switch(F){case 0:var I,K;I=f;K=E;I=((I<<16>>16)*21299|0)>>15;F=(I|0)>32767?1:2;break;case 1:h[K>>2]=1;I=32767;F=2;break;case 2:f=I&65535;break a;default:x(0,"bad label: "+F)}f=void 0}f=$(a[(y+(o<<16>>16<<1)|0)>>1],f,p);E=$(a[((v|0)+(o<<16>>16<<1)|0)>>1],f,p);a[((u|0)+(o<<16>>16<<1)|0)>>1]=E;f=$(a[((t|0)+(o<<16>>16<<1)|
0)>>1],f,p);a[((w|0)+(o<<16>>16<<1)|0)>>1]=f;a[((j|0)+(o<<16>>16<<1)|0)>>1]=a[((t|0)+(o<<16>>16<<1)|0)>>1];f=15;break;case 15:o=o+1&65535;f=13;break;case 16:f=17;break;case 17:Ma(u|0,205,10,p);Ma(w|0,205,10,p);ua(j+20|0,w|0,20,1,0);Fa(u|0,q,10,p);Fa(w|0,m,10,p);B=g;return;default:x(0,"bad label: "+f)}}function pg(h,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i;b=h;d=k;e=(b|0)==0?1:2;break;case 1:c=-1;e=7;break;case 2:i=0;e=3;break;case 3:e=(i<<16>>16|0)<10?4:6;break;case 4:a[((b|0)+(i<<16>>16<<
1)|0)>>1]=0;e=5;break;case 5:i=i+1&65535;e=3;break;case 6:ua(b+20|0,d,20,1,0);c=0;e=7;break;case 7:return c;default:x(0,"bad label: "+e)}}function rd(R){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=R;k=(c|0)==0?1:2;break;case 1:e=-1;k=11;break;case 2:a[(c|0)>>1]=0;a[(c+2|0)>>1]=8192;a[(c+4|0)>>1]=3500;a[(c+6|0)>>1]=3500;h[(c+8|0)>>2]=1887529304;a[(c+12|0)>>1]=3E4;a[((c+12|0)+2|0)>>1]=26E3;a[((c+12|0)+4|0)>>1]=21E3;a[((c+12|0)+6|0)>>1]=15E3;a[((c+12|0)+8|0)>>1]=8E3;a[((c+12|0)+10|0)>>1]=0;a[((c+12|
0)+12|0)>>1]=-8E3;a[((c+12|0)+14|0)>>1]=-15E3;a[((c+12|0)+16|0)>>1]=-21E3;a[((c+12|0)+18|0)>>1]=-26E3;a[(c+32|0)>>1]=3E4;a[((c+32|0)+2|0)>>1]=26E3;a[((c+32|0)+4|0)>>1]=21E3;a[((c+32|0)+6|0)>>1]=15E3;a[((c+32|0)+8|0)>>1]=8E3;a[((c+32|0)+10|0)>>1]=0;a[((c+32|0)+12|0)>>1]=-8E3;a[((c+32|0)+14|0)>>1]=-15E3;a[((c+32|0)+16|0)>>1]=-21E3;a[((c+32|0)+18|0)>>1]=-26E3;a[(c+212|0)>>1]=0;a[(c+374|0)>>1]=0;a[(c+392|0)>>1]=0;a[(c+52|0)>>1]=1384;a[((c+52|0)+2|0)>>1]=2077;a[((c+52|0)+4|0)>>1]=3420;a[((c+52|0)+6|0)>>
1]=5108;a[((c+52|0)+8|0)>>1]=6742;a[((c+52|0)+10|0)>>1]=8122;a[((c+52|0)+12|0)>>1]=9863;a[((c+52|0)+14|0)>>1]=11092;a[((c+52|0)+16|0)>>1]=12714;a[((c+52|0)+18|0)>>1]=13701;b=1;k=3;break;case 3:k=(b<<16>>16|0)<8?4:6;break;case 4:ua((c+52|0)+(((b<<16>>16)*10|0)<<1)|0,c+52|0,20,1,0);k=5;break;case 5:b=b+1&65535;k=3;break;case 6:ta(c+214|0,0,160,1);b=0;k=7;break;case 7:k=(b<<16>>16|0)<8?8:10;break;case 8:a[((c+376|0)+(b<<16>>16<<1)|0)>>1]=a[(c+4|0)>>1];k=9;break;case 9:b=b+1&65535;k=7;break;case 10:a[(c+
394|0)>>1]=0;a[(c+396|0)>>1]=7;a[(c+398|0)>>1]=32767;a[(c+400|0)>>1]=0;a[(c+402|0)>>1]=0;a[(c+404|0)>>1]=0;h[(c+408|0)>>2]=1;e=a[(c+412|0)>>1]=0;k=11;break;case 11:return e;default:x(0,"bad label: "+k)}}function wg(R,k,e,c,b,d,i,g,f,j,n,l){var q=B;B+=296;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var m;for(m=0;;)switch(m){case 0:var p,o,r,s,v,t,u,w,y,A,C,z,D,E,F,I,K,J=q,G,U=q+20,fa=q+44,ja,H=q+64,N,Z=q+144,L=q+148,Q,T,X,M,S,P=q+152,O=q+172,ca=q+192,V=q+212,aa=q+236,da=q+256,Y,ba,ia,
W;p=R;o=k;r=e;s=c;v=b;t=d;u=i;w=g;y=f;A=j;C=n;z=l;m=(a[(p+404|0)>>1]<<16>>16|0)!=0?1:53;break;case 1:m=(a[(p+400|0)>>1]<<16>>16|0)!=0?2:53;break;case 2:a[(p+394|0)>>1]=a[(Tb+(u<<1)|0)>>1];Y=((a[(p+212|0)>>1]<<16>>16)+10|0)&65535;m=(Y<<16>>16|0)==80?3:4;break;case 3:Y=0;m=4;break;case 4:ua((p+52|0)+(Y<<16>>16<<1)|0,(p+52|0)+(a[(p+212|0)>>1]<<16>>16<<1)|0,20,1,0);Y=((a[(p+392|0)>>1]<<16>>16)+1|0)&65535;m=(Y<<16>>16|0)==8?5:6;break;case 5:Y=0;m=6;break;case 6:a[((p+376|0)+(Y<<16>>16<<1)|0)>>1]=a[((p+
376|0)+(a[(p+392|0)>>1]<<16>>16<<1)|0)>>1];a[(p+4|0)>>1]=0;E=9;m=7;break;case 7:m=(E<<16>>16|0)>=0?8:10;break;case 8:h[(da+(E<<16>>16<<2)|0)>>2]=0;m=9;break;case 9:E=E-1&65535;m=7;break;case 10:E=7;m=11;break;case 11:m=(E<<16>>16|0)>=0?12:21;break;case 12:m=(a[((p+376|0)+(E<<16>>16<<1)|0)>>1]<<16>>16|0)<0?13:14;break;case 13:W=((a[((p+376|0)+(E<<16>>16<<1)|0)>>1]<<16>>16^-1)>>3^-1)&65535;m=15;break;case 14:W=a[((p+376|0)+(E<<16>>16<<1)|0)>>1]<<16>>16>>3&65535;m=15;break;case 15:F=$(a[(p+4|0)>>1],
W,z);a[(p+4|0)>>1]=F;F=9;m=16;break;case 16:m=(F<<16>>16|0)>=0?17:19;break;case 17:m=Ub(h[(da+(F<<16>>16<<2)|0)>>2],a[((p+52|0)+((((E<<16>>16)*10|0)+(F<<16>>16)|0)<<1)|0)>>1]<<16>>16,z);h[(da+(F<<16>>16<<2)|0)>>2]=m;m=18;break;case 18:F=F-1&65535;m=16;break;case 19:m=20;break;case 20:E=E-1&65535;m=11;break;case 21:F=9;m=22;break;case 22:m=(F<<16>>16|0)>=0?23:28;break;case 23:m=(h[(da+(F<<16>>16<<2)|0)>>2]|0)<0?24:25;break;case 24:a[(aa+(F<<16>>16<<1)|0)>>1]=((h[(da+(F<<16>>16<<2)|0)>>2]^-1)>>3^-1)&
65535;m=26;break;case 25:a[(aa+(F<<16>>16<<1)|0)>>1]=h[(da+(F<<16>>16<<2)|0)>>2]>>3&65535;m=26;break;case 26:m=27;break;case 27:F=F-1&65535;m=22;break;case 28:Fa(aa|0,p+12|0,10,z);E=ha(a[(p+4|0)>>1],a[(p+394|0)>>1],z);a[(p+4|0)>>1]=E;ua(p+214|0,p+52|0,160,1,0);E=9;m=29;break;case 29:m=(E<<16>>16|0)>=0?30:52;break;case 30:X=0;F=7;m=31;break;case 31:m=(F<<16>>16|0)>=0?32:34;break;case 32:X=Ub(X,a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]<<16>>16,z);m=33;break;case 33:F=F-1&65535;m=31;
break;case 34:m=(X|0)<0?35:36;break;case 35:T=((X^-1)>>3^-1)&65535;m=37;break;case 36:T=X>>3&65535;m=37;break;case 37:F=7;m=38;break;case 38:m=(F<<16>>16|0)>=0?39:50;break;case 39:m=ha(a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1],T,z);a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]=m;m=Na(a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1],a[(Lg+(E<<16>>16<<1)|0)>>1],z);a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]=m;m=(a[((p+214|0)+(((E<<16>>16)+((F<<
16>>16)*10|0)|0)<<1)|0)>>1]<<16>>16|0)<0?40:41;break;case 40:Q=1;m=42;break;case 41:Q=0;m=42;break;case 42:m=a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1];var ga=void 0,ga=((m<<16>>16)-((m<<16>>16|0)<0&1)|0)&65535,ga=(ga<<16>>16^ga<<16>>16>>15)&65535;a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]=ga;m=(a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]<<16>>16|0)>655?43:44;break;case 43:a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]=((((a[((p+214|0)+
(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]<<16>>16)-655|0)>>2)+655|0)&65535;m=44;break;case 44:m=(a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]<<16>>16|0)>1310?45:46;break;case 45:a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]=1310;m=46;break;case 46:m=(Q|0)!=0?47:48;break;case 47:a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]=(-(a[((p+214|0)+(((E<<16>>16)+((F<<16>>16)*10|0)|0)<<1)|0)>>1]<<16>>16)|0)&65535;m=48;break;case 48:m=49;break;case 49:F=F-1&65535;
m=38;break;case 50:m=51;break;case 51:E=E-1&65535;m=29;break;case 52:m=53;break;case 53:m=(a[(p+400|0)>>1]<<16>>16|0)!=0?54:81;break;case 54:ua(p+32|0,p+12|0,20,1,0);a[(p+6|0)>>1]=a[(p+4|0)>>1];m=(a[(p+402|0)>>1]<<16>>16|0)!=0?55:72;break;case 55:ba=a[(p|0)>>1];a[(p|0)>>1]=0;m=(ba<<16>>16|0)>=32?56:57;break;case 56:ba=32;m=57;break;case 57:ia=ba<<16>>16<<10;m=(ia|0)!=((ia&65535)<<16>>16|0)?58:59;break;case 58:h[z>>2]=1;ia=(ba<<16>>16|0)>0?32767:-32768;m=59;break;case 59:W=ia&65535;m=(ba<<16>>16|0)>=
2?60:61;break;case 60:m=xa(1024,W);a[(p+2|0)>>1]=m;m=62;break;case 61:a[(p+2|0)>>1]=16384;m=62;break;case 62:ua(r|0,h[(y+60|0)>>2]+(((a[(w|0)>>1]<<16>>16)*10|0)<<1)|0,20,1,0);td(r,8,0,w+2|0,y,p+12|0,z);ta(r|0,0,20,1);D=a[(w+8|0)>>1];m=(D<<16>>16|0)>63?64:63;break;case 63:m=(D<<16>>16|0)<-64?64:65;break;case 64:a[(p+4|0)>>1]=((D<<16>>16|0)>0?32767:-32768)&65535;m=66;break;case 65:a[(p+4|0)>>1]=D<<16>>16<<9&65535;m=66;break;case 66:m=p+4|0;a[m>>1]=((a[m>>1]<<16>>16)-5120|0)&65535;m=(D<<16>>16|0)==0?
67:68;break;case 67:a[(p+4|0)>>1]=-32768;m=68;break;case 68:m=(a[(p+412|0)>>1]<<16>>16|0)==0?70:69;break;case 69:m=(h[(p+408|0)>>2]|0)==0?70:71;break;case 70:ua(p+32|0,p+12|0,20,1,0);a[(p+6|0)>>1]=a[(p+4|0)>>1];m=71;break;case 71:m=72;break;case 72:m=(a[(p+4|0)>>1]<<16>>16|0)<0?73:74;break;case 73:W=((a[(p+4|0)>>1]<<16>>16^-1)>>1^-1)&65535;m=75;break;case 74:W=a[(p+4|0)>>1]<<16>>16>>1&65535;m=75;break;case 75:N=((W<<16>>16)-9E3|0)&65535;m=(N<<16>>16|0)>0?76:77;break;case 76:N=0;m=80;break;case 77:m=
(N<<16>>16|0)<-14436?78:79;break;case 78:N=-14436;m=79;break;case 79:m=80;break;case 80:a[(s|0)>>1]=N;a[((s|0)+2|0)>>1]=N;a[((s|0)+4|0)>>1]=N;a[((s|0)+6|0)>>1]=N;N=((N<<16>>16)*5443|0)>>15&65535;a[(s+8|0)>>1]=N;a[((s+8|0)+2|0)>>1]=N;a[((s+8|0)+4|0)>>1]=N;a[((s+8|0)+6|0)>>1]=N;m=81;break;case 81:m=(a[(Tb+(u<<1)|0)>>1]<<16>>16|0)>1023?82:83;break;case 82:W=32767;m=87;break;case 83:m=(a[(Tb+(u<<1)|0)>>1]<<16>>16|0)<-1024?84:85;break;case 84:W=-32768;m=86;break;case 85:W=((a[(Tb+(u<<1)|0)>>1]<<16>>16<<
5)*3277|0)>>15&65535;m=86;break;case 86:m=87;break;case 87:m=(W<<16>>16|0)<0?88:89;break;case 88:W=((W<<16>>16^-1)>>5^-1)&65535;m=90;break;case 89:W=W<<16>>16>>5&65535;m=90;break;case 90:I=$(((a[(p+394|0)>>1]<<16>>16)*29491|0)>>15&65535,W,z);a[(p+394|0)>>1]=I;I=Dd(((a[(p|0)>>1]<<16>>16)+1|0)&65535,10,z);I=Na(I,a[(p+2|0)>>1],z);m=(I<<16>>16|0)>1024?91:92;break;case 91:I=16384;m=96;break;case 92:m=(I<<16>>16|0)<-2048?93:94;break;case 93:I=-32768;m=95;break;case 94:I=I<<16>>16<<4&65535;m=95;break;case 95:m=
96;break;case 96:a:{K=I;E=a[(p+4|0)>>1];m=z;ga=void 0;for(ga=0;;)switch(ga){case 0:var la,ma;la=K;ga=E;ma=m;la=(la<<16>>16)*(ga<<16>>16)|0;ga=(la|0)!=1073741824?1:2;break;case 1:la<<=1;ga=3;break;case 2:h[ma>>2]=1;la=2147483647;ga=3;break;case 3:K=la;break a;default:x(0,"bad label: "+ga)}K=void 0}E=9;m=97;break;case 97:m=(E<<16>>16|0)>=0?98:100;break;case 98:m=Na(I,a[((p+12|0)+(E<<16>>16<<1)|0)>>1],z);a[(J+(E<<16>>16<<1)|0)>>1]=m;m=99;break;case 99:E=E-1&65535;m=97;break;case 100:I=(16384-(I<<16>>
16)|0)&65535;K=Mg(K,I,a[(p+6|0)>>1],z);E=9;m=101;break;case 101:m=(E<<16>>16|0)>=0?102:106;break;case 102:ia=a[(J+(E<<16>>16<<1)|0)>>1];m=Na(I,a[((p+32|0)+(E<<16>>16<<1)|0)>>1],z);ia=$(ia,m,z);a[(J+(E<<16>>16<<1)|0)>>1]=ia;ia=a[(J+(E<<16>>16<<1)|0)>>1]<<16>>16<<1;m=(ia|0)!=((ia&65535)<<16>>16|0)?103:104;break;case 103:h[z>>2]=1;ia=(a[(J+(E<<16>>16<<1)|0)>>1]<<16>>16|0)>0?32767:-32768;m=104;break;case 104:a[(J+(E<<16>>16<<1)|0)>>1]=ia&65535;m=105;break;case 105:E=E-1&65535;m=101;break;case 106:S=((a[(p+
374|0)>>1]<<16>>16)-2457|0)&65535;S=(4096-(Na(S,9830,z)<<16>>16)|0)&65535;m=(S<<16>>16|0)>4095?107:108;break;case 107:S=32767;m=112;break;case 108:m=(S<<16>>16|0)<0?109:110;break;case 109:S=0;m=111;break;case 110:S=S<<16>>16<<3&65535;m=111;break;case 111:m=112;break;case 112:M=gc(p+8|0,3);ub(J|0,P|0,10,z);ua(O|0,P|0,20,1,0);E=9;m=113;break;case 113:m=(E<<16>>16|0)>=0?114:116;break;case 114:m=a[(O+(E<<16>>16<<1)|0)>>1];ga=Na(S,a[((p+214|0)+(((E<<16>>16)+((M<<16>>16)*10|0)|0)<<1)|0)>>1],z);m=$(m,ga,
z);a[(O+(E<<16>>16<<1)|0)>>1]=m;m=115;break;case 115:E=E-1&65535;m=113;break;case 116:Ma(P|0,205,10,z);Ma(O|0,205,10,z);ua(r+20|0,P|0,20,1,0);Fa(P|0,J|0,10,z);Fa(O|0,ca|0,10,z);ya(J|0,U|0,z);ya(ca|0,V|0,z);ua(C|0,U|0,22,1,0);ua(C+22|0,U|0,22,1,0);ua(C+44|0,U|0,22,1,0);ua(C+66|0,U|0,22,1,0);Re(U+2|0,fa|0,z);ja=32767;E=0;m=117;break;case 117:m=(E<<16>>16|0)<10?118:123;break;case 118:ia=((a[(fa+(E<<16>>16<<1)|0)>>1]<<16>>16)*(a[(fa+(E<<16>>16<<1)|0)>>1]<<16>>16)|0)>>15;m=(ia|0)<=32767?119:120;break;
case 119:W=(32767-((ia&65535)<<16>>16)|0)&65535;m=121;break;case 120:h[z>>2]=1;W=0;m=121;break;case 121:ja=Na(ja,W,z);m=122;break;case 122:E=E+1&65535;m=117;break;case 123:Za(ja<<16>>16,Z,L,z);G=Dd(((a[Z>>1]<<16>>16)-15|0)&65535,12,z);E=ra(a[L>>1],3,z);G=$(G,E,z);G=ha(0,G,z);G=ra(G,1,z);E=Na(29491,a[(p+374|0)>>1],z);m=Na(3277,G,z);E=$(E,m,z);a[(p+374|0)>>1]=E;K=Ng(K,10,z);K=Ub(K,262144,z);G=Og(G<<16>>16,4,z);K=Pg(K,G,z);G=Og(a[(p+394|0)>>1]<<16>>16,5,z);K=Ub(K,G,z);G=K>>16&65535;E=Pg(K,G<<16>>16<<
16,z);E=Ng(E,1,z)&65535;G=Ga(G,E,z)&65535;E=0;m=124;break;case 124:m=(E<<16>>16|0)<4?125:131;break;case 125:Ue(p+8|0,H|0,z);F=39;m=126;break;case 126:m=(F<<16>>16|0)>=0?127:129;break;case 127:m=Na(G,a[(H+(F<<16>>16<<1)|0)>>1],z);a[(H+(F<<16>>16<<1)|0)>>1]=m;m=128;break;case 128:F=F-1&65535;m=126;break;case 129:Ca(V|0,H|0,A+(((E<<16>>16)*40|0)<<1)|0,40,o,1);m=130;break;case 130:E=E+1&65535;m=124;break;case 131:a[(v+14|0)>>1]=20;a[(v+16|0)>>1]=0;m=(t|0)==2?132:140;break;case 132:ba=a[(p|0)>>1];m=(ba<<
16>>16|0)>32?133:134;break;case 133:ba=32;m=137;break;case 134:m=(ba<<16>>16|0)<=0?135:136;break;case 135:ba=8;m=136;break;case 136:m=137;break;case 137:ia=ba<<16>>16<<10;m=(ia|0)!=((ia&65535)<<16>>16|0)?138:139;break;case 138:h[z>>2]=1;ia=(ba<<16>>16|0)>0?32767:-32768;m=139;break;case 139:W=ia&65535;m=xa(1024,W);a[(p+2|0)>>1]=m;a[(p|0)>>1]=0;ua(p+32|0,p+12|0,20,1,0);a[(p+6|0)>>1]=a[(p+4|0)>>1];a[(p+4|0)>>1]=((a[(p+4|0)>>1]<<16>>16)-256|0)&65535;m=140;break;case 140:m=(a[(p+400|0)>>1]<<16>>16|0)!=
0?141:145;break;case 141:m=(a[(p+402|0)>>1]<<16>>16|0)!=0?144:142;break;case 142:m=(a[(p+402|0)>>1]<<16>>16|0)==0?143:145;break;case 143:m=(a[(p+404|0)>>1]<<16>>16|0)!=0?144:145;break;case 144:a[(p|0)>>1]=0;a[(p+412|0)>>1]=1;m=145;break;case 145:B=q;return;default:x(0,"bad label: "+m)}}function Ub(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b+c|0;c=(b^c|0)>=0?1:4;break;case 1:c=((i^b)>>31|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=
4;break;case 4:return i;default:x(0,"bad label: "+c)}}function Na(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function Dd(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=
c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Mg(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=
7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function Ng(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:e=(b<<16>>16|0)<31?2:3;break;case 2:d=c>>(b<<16>>16|0);e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?5:6;break;case 5:d=c>>31^2147483647;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Pg(a,k,e){var c;for(c=
0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b-c|0;c=((b^c)>>31|0)!=0?1:4;break;case 1:c=((i^b)&-2147483648|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function Og(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;
e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Hg(R,k,e,c){var b=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m=b,p=b+4,o;i=R;g=k;f=e;j=c;o=a[p>>1]=0;d=i+212|0;a[d>>1]=((a[d>>1]<<16>>16)+10|0)&65535;d=(a[(i+212|0)>>1]<<16>>16|0)==80?1:2;break;case 1:a[(i+212|0)>>1]=0;d=2;break;case 2:ua((i+52|0)+(a[(i+212|0)>>1]<<16>>16<<1)|0,g,20,1,0);l=
0;n=159;d=3;break;case 3:d=(n<<16>>16|0)>=0?4:9;break;case 4:q=(a[(f+(n<<16>>16<<1)|0)>>1]<<16>>16)*(a[(f+(n<<16>>16<<1)|0)>>1]<<16>>16)|0;d=(q|0)!=1073741824?5:6;break;case 5:q<<=1;d=7;break;case 6:q=2147483647;d=7;break;case 7:l=Ub(l,q,j);d=8;break;case 8:n=n-1&65535;d=3;break;case 9:Za(l,m,p,j);q=a[m>>1]<<16>>16<<10;d=(q|0)!=((q&65535)<<16>>16|0)?10:11;break;case 10:h[j>>2]=1;q=(a[m>>1]<<16>>16|0)>0?32767:-32768;d=11;break;case 11:a[m>>1]=q&65535;d=(a[p>>1]<<16>>16|0)<0?12:13;break;case 12:a[p>>
1]=((a[p>>1]<<16>>16^-1)>>5^-1)&65535;d=14;break;case 13:a[p>>1]=a[p>>1]<<16>>16>>5&65535;d=14;break;case 14:o=((a[m>>1]<<16>>16)+(a[p>>1]<<16>>16)|0)&65535;o=((o<<16>>16)-8521|0)&65535;d=i+392|0;a[d>>1]=((a[d>>1]<<16>>16)+1|0)&65535;d=(a[(i+392|0)>>1]<<16>>16|0)==8?15:16;break;case 15:a[(i+392|0)>>1]=0;d=16;break;case 16:a[((i+376|0)+(a[(i+392|0)>>1]<<16>>16<<1)|0)>>1]=o;B=b;return;default:x(0,"bad label: "+d)}}function vg(R,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f;b=R;d=k;i=e;c=(d|0)==
4?8:1;break;case 1:c=(d|0)==5?8:2;break;case 2:c=(d|0)==6?8:3;break;case 3:c=(h[(b+408|0)>>2]|0)==1?5:4;break;case 4:c=(h[(b+408|0)>>2]|0)==2?5:18;break;case 5:c=(d|0)==7?8:6;break;case 6:c=(d|0)==3?8:7;break;case 7:c=(d|0)==2?8:18;break;case 8:g=1;c=(h[(b+408|0)>>2]|0)==2?9:14;break;case 9:c=(d|0)==6?13:10;break;case 10:c=(d|0)==4?13:11;break;case 11:c=(d|0)==2?13:12;break;case 12:c=(d|0)==7?13:14;break;case 13:g=2;c=14;break;case 14:c=b|0;a[c>>1]=((a[c>>1]<<16>>16)+1|0)&65535;c=(d|0)!=5?15:17;break;
case 15:c=(a[(b|0)>>1]<<16>>16|0)>50?16:17;break;case 16:g=2;c=17;break;case 17:c=19;break;case 18:g=0;a[(b|0)>>1]=0;c=19;break;case 19:c=(a[(b+412|0)>>1]<<16>>16|0)==0?20:22;break;case 20:c=(d|0)==5?21:22;break;case 21:a[(b+398|0)>>1]=0;c=22;break;case 22:c=$(a[(b+398|0)>>1],1,i);a[(b+398|0)>>1]=c;a[(b+404|0)>>1]=0;c=(d|0)==4?27:23;break;case 23:c=(d|0)==5?27:24;break;case 24:c=(d|0)==6?27:25;break;case 25:c=(d|0)==2?27:26;break;case 26:c=(d|0)==7?27:31;break;case 27:f=1;c=(d|0)==7?28:30;break;case 28:c=
(g|0)==0?29:30;break;case 29:f=0;c=30;break;case 30:c=32;break;case 31:f=0;c=32;break;case 32:c=(f|0)==0?33:34;break;case 33:a[(b+396|0)>>1]=7;c=41;break;case 34:c=(a[(b+398|0)>>1]<<16>>16|0)>30?35:36;break;case 35:a[(b+404|0)>>1]=1;a[(b+398|0)>>1]=0;a[(b+396|0)>>1]=0;c=40;break;case 36:c=(a[(b+396|0)>>1]<<16>>16|0)==0?37:38;break;case 37:a[(b+398|0)>>1]=0;c=39;break;case 38:c=b+396|0;a[c>>1]=((a[c>>1]<<16>>16)-1|0)&65535;c=39;break;case 39:c=40;break;case 40:c=41;break;case 41:c=(g|0)!=0?42:51;break;
case 42:a[(b+400|0)>>1]=0;a[(b+402|0)>>1]=0;c=(d|0)==4?43:44;break;case 43:a[(b+400|0)>>1]=1;c=50;break;case 44:c=(d|0)==5?45:46;break;case 45:a[(b+400|0)>>1]=1;a[(b+402|0)>>1]=1;c=49;break;case 46:c=(d|0)==6?47:48;break;case 47:a[(b+400|0)>>1]=1;a[(b+404|0)>>1]=0;c=48;break;case 48:c=49;break;case 49:c=50;break;case 50:c=51;break;case 51:return g;default:x(0,"bad label: "+c)}}function md(h,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i;b=h;d=k;e=(b|0)==0?1:2;break;case 1:c=-1;e=7;break;case 2:a[(b+
176|0)>>1]=0;a[(b+178|0)>>1]=0;a[(b+180|0)>>1]=0;a[(b+182|0)>>1]=0;a[((b+182|0)+2|0)>>1]=0;i=a[((b+182|0)+4|0)>>1]=0;e=3;break;case 3:e=(i<<16>>16|0)<8?4:6;break;case 4:e=(b|0)+(((i<<16>>16)*10|0)<<1)|0;var g=d;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(e,g,20,1);e=5;break;case 5:i=i+1&65535;e=3;break;case 6:ta(b+160|0,0,20,1);a[(b+188|0)>>1]=7;a[(b+190|0)>>1]=32767;c=1;e=7;break;case 7:return c;default:x(0,"bad label: "+e)}}function ag(R,k,e,c,b,d){var i=
B;B+=100;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o,r,s=i,v=i+20,t=i+40,u=i+60;f=R;g=k;j=e;n=c;l=b;q=d;g=(g<<16>>16|0)!=0?2:1;break;case 1:g=(a[(f+178|0)>>1]<<16>>16|0)==0?2:41;break;case 2:r=0;m=9;g=3;break;case 3:g=(m<<16>>16|0)>=0?4:6;break;case 4:h[(u+(m<<16>>16<<2)|0)>>2]=0;g=5;break;case 5:m=m-1&65535;g=3;break;case 6:g=m=7;break;case 7:g=(m<<16>>16|0)>=0?8:17;break;case 8:g=(a[((f+160|0)+(m<<16>>16<<1)|0)>>1]<<16>>16|0)<0?
9:10;break;case 9:o=((a[((f+160|0)+(m<<16>>16<<1)|0)>>1]<<16>>16^-1)>>2^-1)&65535;g=11;break;case 10:o=a[((f+160|0)+(m<<16>>16<<1)|0)>>1]<<16>>16>>2&65535;g=11;break;case 11:r=$(r,o,q);p=9;g=12;break;case 12:g=(p<<16>>16|0)>=0?13:15;break;case 13:a:{g=h[(u+(p<<16>>16<<2)|0)>>2];for(var w=a[((f|0)+((((m<<16>>16)*10|0)+(p<<16>>16)|0)<<1)|0)>>1]<<16>>16,y=q,A=void 0,A=0;;)switch(A){case 0:var C,z,D;C=g;A=w;z=y;D=C+A|0;A=(C^A|0)>=0?1:4;break;case 1:A=((D^C)>>31|0)!=0?2:3;break;case 2:D=(C>>31|0)!=0?-2147483648:
2147483647;h[z>>2]=1;A=3;break;case 3:A=4;break;case 4:g=D;break a;default:x(0,"bad label: "+A)}g=void 0}h[(u+(p<<16>>16<<2)|0)>>2]=g;g=14;break;case 14:p=p-1&65535;g=12;break;case 15:g=16;break;case 16:m=m-1&65535;g=7;break;case 17:g=(r<<16>>16|0)<0?18:19;break;case 18:r=((r<<16>>16^-1)>>1^-1)&65535;g=20;break;case 19:r=r<<16>>16>>1&65535;g=20;break;case 20:p=9;g=21;break;case 21:g=(p<<16>>16|0)>=0?22:27;break;case 22:g=(h[(u+(p<<16>>16<<2)|0)>>2]|0)<0?23:24;break;case 23:a[(v+(p<<16>>16<<1)|0)>>
1]=((h[(u+(p<<16>>16<<2)|0)>>2]^-1)>>3^-1)&65535;g=25;break;case 24:a[(v+(p<<16>>16<<1)|0)>>1]=h[(u+(p<<16>>16<<2)|0)>>2]>>3&65535;g=25;break;case 25:g=26;break;case 26:p=p-1&65535;g=21;break;case 27:a[(f+178|0)>>1]=((r<<16>>16)+2560|0)&65535;g=f+178|0;a[g>>1]=((a[g>>1]<<16>>16)+128|0)&65535;g=(a[(f+178|0)>>1]<<16>>16|0)<0?28:29;break;case 28:a[(f+178|0)>>1]=((a[(f+178|0)>>1]<<16>>16^-1)>>8^-1)&65535;g=30;break;case 29:a[(f+178|0)>>1]=a[(f+178|0)>>1]<<16>>16>>8&65535;g=30;break;case 30:g=(a[(f+178|
0)>>1]<<16>>16|0)>63?31:32;break;case 31:a[(f+178|0)>>1]=63;g=35;break;case 32:g=(a[(f+178|0)>>1]<<16>>16|0)<0?33:34;break;case 33:a[(f+178|0)>>1]=0;g=34;break;case 34:g=35;break;case 35:r=a[(f+178|0)>>1]<<16>>16<<8&65535;r=ha(r,11560,q);g=(r<<16>>16|0)>0?36:37;break;case 36:r=0;g=40;break;case 37:g=(r<<16>>16|0)<-14436?38:39;break;case 38:r=-14436;g=39;break;case 39:g=40;break;case 40:a[(n|0)>>1]=r;a[((n|0)+2|0)>>1]=r;a[((n|0)+4|0)>>1]=r;a[((n|0)+6|0)>>1]=r;r=((r<<16>>16)*5443|0)>>15&65535;a[(n+
8|0)>>1]=r;a[((n+8|0)+2|0)>>1]=r;a[((n+8|0)+4|0)>>1]=r;a[((n+8|0)+6|0)>>1]=r;ub(v|0,s|0,10,q);Ma(s|0,205,10,q);Fa(s|0,v|0,10,q);Ed(j,8,v|0,t|0,f+182|0,f+180|0,q);g=41;break;case 41:R=a[(f+180|0)>>1];k=l;e=h[k>>2];h[k>>2]=e+2|0;a[e>>1]=R;R=a[(f+182|0)>>1];k=l;e=h[k>>2];h[k>>2]=e+2|0;a[e>>1]=R;R=a[((f+182|0)+2|0)>>1];k=l;e=h[k>>2];h[k>>2]=e+2|0;a[e>>1]=R;R=a[((f+182|0)+4|0)>>1];k=l;e=h[k>>2];h[k>>2]=e+2|0;a[e>>1]=R;f=a[(f+178|0)>>1];R=h[l>>2];h[l>>2]=R+2|0;a[R>>1]=f;B=i;return;default:x(0,"bad label: "+
g)}}function Qg(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function rg(h){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:b=0;k=3;break;case 3:k=(b<<16>>16|0)<5?4:6;break;case 4:a[((c|0)+(b<<16>>16<<1)|0)>>1]=1;k=5;break;case 5:b=b+1&65535;k=3;break;case 6:a[(c+10|0)>>1]=0;a[(c+12|0)>>1]=1;
e=0;k=7;break;case 7:return e;default:x(0,"bad label: "+k)}}function qg(h){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:b=0;k=3;break;case 3:k=(b<<16>>16|0)<5?4:6;break;case 4:a[((c|0)+(b<<16>>16<<1)|0)>>1]=1640;k=5;break;case 5:b=b+1&65535;k=3;break;case 6:a[(c+10|0)>>1]=0;a[(c+12|0)>>1]=16384;e=0;k=7;break;case 7:return e;default:x(0,"bad label: "+k)}}function $f(R,k,e,c){var b=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;
for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m=b,p=b+4,o;i=R;g=k;f=e;j=c;f|=0;d=i+176|0;a[d>>1]=((a[d>>1]<<16>>16)+1|0)&65535;d=(a[(i+176|0)>>1]<<16>>16|0)==8?1:2;break;case 1:a[(i+176|0)>>1]=0;d=2;break;case 2:n=(i|0)+(((a[(i+176|0)>>1]<<16>>16)*10|0)<<1)|0;l=g;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(n,l,20,1);l=0;n=160;d=3;break;case 3:d=(n<<16>>16|0)!=0?4:8;break;case 4:l=l+(((a[f>>1]<<16>>16)*(a[f>>1]<<16>>16)|0)<<1)|0;f=f+2|0;d=(l|0)<0?5:6;break;
case 5:l=2147483647;d=8;break;case 6:d=7;break;case 7:n=n-1&65535;d=3;break;case 8:Za(l,m,p,j);q=a[m>>1]<<16>>16<<10;d=(q|0)!=((q&65535)<<16>>16|0)?9:10;break;case 9:h[j>>2]=1;o=((a[m>>1]<<16>>16|0)>0?32767:-32768)&65535;d=11;break;case 10:o=q&65535;d=11;break;case 11:o=((o<<16>>16)+(a[p>>1]<<16>>16>>5)|0)&65535;o=((o<<16>>16)-8521|0)&65535;a[((i+160|0)+(a[(i+176|0)>>1]<<16>>16<<1)|0)>>1]=o<<16>>16>>1&65535;B=b;return;default:x(0,"bad label: "+d)}}function Xf(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,
i,g,f;d=R;b=k;i=e;g=c;f=$(a[(d+190|0)>>1],1,g);a[(d+190|0)>>1]=f;f=0;b=(b<<16>>16|0)!=0?1:2;break;case 1:a[(d+188|0)>>1]=7;b=8;break;case 2:b=(a[(d+188|0)>>1]<<16>>16|0)==0?3:4;break;case 3:a[(d+190|0)>>1]=0;h[i>>2]=8;f=1;b=7;break;case 4:b=d+188|0;a[b>>1]=((a[b>>1]<<16>>16)-1|0)&65535;b=$(a[(d+190|0)>>1],a[(d+188|0)>>1],g);b=(b<<16>>16|0)<30?5:6;break;case 5:h[i>>2]=8;b=6;break;case 6:b=7;break;case 7:b=8;break;case 8:return f;default:x(0,"bad label: "+b)}}function Qb(h,k,e,c,b){var d=B;B+=8;x(B%
4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m=d,p=d+4;g=h;f=k;j=e;n=c;l=b;q=Ya(g|0,5);i=(ha(q,a[(g+10|0)>>1],l)<<16>>16|0)>0?1:2;break;case 1:q=a[(g+10|0)>>1];i=2;break;case 2:q=Qg(q,a[(Rg+(j<<16>>16<<1)|0)>>1],l);a[n>>1]=q;Sg(f,m,p,l);ib(f,a[m>>1],a[p>>1]);B=d;return;default:x(0,"bad label: "+i)}}function Rb(h,k,e,c,b){var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n;i=h;d=k;g=e;f=c;j=b;d=(d<<16>>16|0)==0?1:6;break;case 1:d=(g<<16>>16|0)!=
0?2:5;break;case 2:d=(ha(a[f>>1],a[(i+12|0)>>1],j)<<16>>16|0)>0?3:4;break;case 3:a[f>>1]=a[(i+12|0)>>1];d=4;break;case 4:d=5;break;case 5:a[(i+12|0)>>1]=a[f>>1];d=6;break;case 6:a[(i+10|0)>>1]=a[f>>1];n=1;d=7;break;case 7:d=(n<<16>>16|0)<5?8:10;break;case 8:a[((i|0)+(((n<<16>>16)-1|0)<<1)|0)>>1]=a[((i|0)+(n<<16>>16<<1)|0)>>1];d=9;break;case 9:n=n+1&65535;d=7;break;case 10:a[((i|0)+8|0)>>1]=a[f>>1];return;default:x(0,"bad label: "+d)}}function oc(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,
f,j;d=h;i=k;g=e;f=c;j=Ya(d|0,5);b=(ha(j,a[(d+10|0)>>1],f)<<16>>16|0)>0?1:2;break;case 1:j=a[(d+10|0)>>1];b=2;break;case 2:h=Qg(j,a[(Tg+(i<<16>>16<<1)|0)>>1],f);a[g>>1]=h;return;default:x(0,"bad label: "+b)}}function Pb(h,k,e,c,b){var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n;i=h;d=k;g=e;f=c;j=b;d=(d<<16>>16|0)==0?1:6;break;case 1:d=(g<<16>>16|0)!=0?2:5;break;case 2:d=(ha(a[f>>1],a[(i+12|0)>>1],j)<<16>>16|0)>0?3:4;break;case 3:a[f>>1]=a[(i+12|0)>>1];d=4;break;case 4:d=5;break;case 5:a[(i+12|0)>>1]=
a[f>>1];d=6;break;case 6:a[(i+10|0)>>1]=a[f>>1];d=(ha(a[(i+10|0)>>1],16384,j)<<16>>16|0)>0?7:8;break;case 7:a[(i+10|0)>>1]=16384;d=8;break;case 8:n=1;d=9;break;case 9:d=(n<<16>>16|0)<5?10:12;break;case 10:a[((i|0)+(((n<<16>>16)-1|0)<<1)|0)>>1]=a[((i|0)+(n<<16>>16<<1)|0)>>1];d=11;break;case 11:n=n+1&65535;d=9;break;case 12:a[((i|0)+8|0)>>1]=a[(i+10|0)>>1];return;default:x(0,"bad label: "+d)}}function Ug(a,k,e,c,b,d,i){var g;for(g=0;;)switch(g){case 0:var f,j,h,l,q,m,p,o,r,s;f=a;j=k;h=e;l=c;q=b;g=d;
m=i;g=(g<<16>>16|0)==0?1:5;break;case 1:g=((f<<16>>16)-85|0)&65535;g=(g<<16>>16|0)<=0?2:3;break;case 2:p=((((f<<16>>16<<1)+(f<<16>>16)|0)-58|0)+(j<<16>>16)|0)&65535;g=4;break;case 3:p=((f<<16>>16)+112|0)&65535;g=4;break;case 4:g=19;break;case 5:g=(m<<16>>16|0)==0?6:7;break;case 6:g=((f<<16>>16)-(l<<16>>16)|0)&65535;p=((((g<<16>>16)+(g<<16>>16<<1)|0)+2|0)+(j<<16>>16)|0)&65535;g=18;break;case 7:s=h;g=((s<<16>>16)-(l<<16>>16)|0)&65535;g=((g<<16>>16)-5|0)&65535;g=(g<<16>>16|0)>0?8:9;break;case 8:s=((l<<
16>>16)+5|0)&65535;g=9;break;case 9:g=((q<<16>>16)-(s<<16>>16)|0)&65535;g=((g<<16>>16)-4|0)&65535;g=(g<<16>>16|0)>0?10:11;break;case 10:s=((q<<16>>16)-4|0)&65535;g=11;break;case 11:r=((f<<16>>16)+(f<<16>>16<<1)|0)&65535;r=((r<<16>>16)+(j<<16>>16)|0)&65535;g=((s<<16>>16)-2|0)&65535;o=((g<<16>>16)+(g<<16>>16<<1)|0)&65535;g=((o<<16>>16)-(r<<16>>16)|0)&65535;g=(g<<16>>16|0)>=0?12:13;break;case 12:p=(((f<<16>>16)-(s<<16>>16)|0)+5|0)&65535;g=17;break;case 13:g=((s<<16>>16)+1|0)&65535;g=((g<<16>>16)+(g<<
16>>16<<1)|0)&65535;g=(g<<16>>16|0)>(r<<16>>16|0)?14:15;break;case 14:p=(((r<<16>>16)-(o<<16>>16)|0)+3|0)&65535;g=16;break;case 15:p=(((f<<16>>16)-(s<<16>>16)|0)+11|0)&65535;g=16;break;case 16:g=17;break;case 17:g=18;break;case 18:g=19;break;case 19:return p;default:x(0,"bad label: "+g)}}function Vg(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;i=k;g=e;b=(c<<16>>16|0)==0?1:5;break;case 1:b=(d<<16>>16|0)<=94?2:3;break;case 2:b=(((d<<16>>16<<3)-(d<<16>>16<<1)|0)-105|0)&65535;f=((b<<16>>
16)+(i<<16>>16)|0)&65535;b=4;break;case 3:f=((d<<16>>16)+368|0)&65535;b=4;break;case 4:b=6;break;case 5:b=((d<<16>>16)-(g<<16>>16)|0)&65535;b=((b<<16>>16<<3)-(b<<16>>16<<1)|0)&65535;b=((b<<16>>16)+3|0)&65535;f=((b<<16>>16)+(i<<16>>16)|0)&65535;b=6;break;case 6:return f;default:x(0,"bad label: "+b)}}function Ne(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p;d=R;i=k;g=e;f=c;l=0;p=h[(f+100|0)>>2];f=h[(f+96|0)>>2];b=d>>>0<8?1:11;break;case 1:j=(d&255|a[(i+(a[(h[(p+(d<<2)|0)>>2]|0)>>
1]<<16>>16<<1)|0)>>1]<<16>>16<<4|a[(i+(a[(h[(p+(d<<2)|0)>>2]+2|0)>>1]<<16>>16<<1)|0)>>1]<<16>>16<<5|a[(i+(a[(h[(p+(d<<2)|0)>>2]+4|0)>>1]<<16>>16<<1)|0)>>1]<<16>>16<<6|a[(i+(a[(h[(p+(d<<2)|0)>>2]+6|0)>>1]<<16>>16<<1)|0)>>1]<<16>>16<<7)&255;b=l;l=b+1&65535;N[g+(b<<16>>16)|0]=j;j=4;b=2;break;case 2:b=(j<<16>>16|0)<((a[(f+(d<<1)|0)>>1]<<16>>16)-7|0)?3:4;break;case 3:b=j;j=b+1&65535;N[g+(l<<16>>16)|0]=a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255;b=j;j=b+1&65535;var o=g+(l<<
16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<1)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<2)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<3)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<4)&255;
b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<5)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<6)&255;b=j;j=b+1&65535;b=(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<7;o=l;l=o+1&65535;o=g+(o<<16>>16)|0;N[o]=(M[o]&255|b)&255;b=2;break;case 4:m=(((a[(f+(d<<1)|0)>>1]<<16>>16)+4|0)-(((a[(f+(d<<1)|0)>>1]<<16>>16)+
4|0)&65528)|0)&65535;b=(m<<16>>16|0)!=0?5:10;break;case 5:n=N[g+(l<<16>>16)|0]=0;b=6;break;case 6:b=(n<<16>>16|0)<(m<<16>>16|0)?7:9;break;case 7:b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<(n<<16>>16))&255;b=8;break;case 8:n=n+1&65535;b=6;break;case 9:b=10;break;case 10:b=25;break;case 11:b=(d|0)!=15?12:23;break;case 12:q=(d&255|a[(i|0)>>1]<<16>>16<<4|a[(i+2|0)>>1]<<16>>16<<5|a[(i+4|0)>>1]<<16>>16<<6|a[(i+6|0)>>1]<<16>>
16<<7)&255;m=l;l=m+1&65535;N[g+(m<<16>>16)|0]=q;q=i+8|0;m=((a[(f+(d<<1)|0)>>1]<<16>>16)+4|0)&65528;j=((m<<16>>16)-7|0)>>3&65535;b=13;break;case 13:b=(j<<16>>16|0)>0?14:16;break;case 14:b=q;q=b+2|0;b=a[b>>1]&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<1)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<2)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<3)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<4)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<5)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<6)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<
7)&255;o=l;l=o+1&65535;N[g+(o<<16>>16)|0]=b;b=15;break;case 15:j=j-1&65535;b=13;break;case 16:m=(((a[(f+(d<<1)|0)>>1]<<16>>16)+4|0)-(m<<16>>16)|0)&65535;b=(m<<16>>16|0)!=0?17:22;break;case 17:j=N[g+(l<<16>>16)|0]=0;b=18;break;case 18:b=(j<<16>>16|0)<(m<<16>>16|0)?19:21;break;case 19:b=g+(l<<16>>16)|0;N[b]=(M[b]&255|a[(q+(j<<16>>16<<1)|0)>>1]<<16>>16<<(j<<16>>16))&255;b=20;break;case 20:j=j+1&65535;b=18;break;case 21:b=22;break;case 22:b=24;break;case 23:b=d&255;o=l;l=o+1&65535;N[g+(o<<16>>16)|0]=
b;b=24;break;case 24:b=25;break;case 25:return;default:x(0,"bad label: "+b)}}function Me(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p;d=R;i=k;g=e;f=c;l=n=0;p=h[(f+100|0)>>2];f=h[(f+96|0)>>2];b=d&15;var o=l;l=o+1&65535;N[g+(o<<16>>16)|0]=b;b=d>>>0<8?1:9;break;case 1:j=0;b=2;break;case 2:b=(j<<16>>16|0)<((a[(f+(d<<1)|0)>>1]<<16>>16)-7|0)?3:4;break;case 3:b=j;j=b+1&65535;N[g+(l<<16>>16)|0]=(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<7&255;b=j;j=b+
1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<6)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<5)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<4)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>
1]&255)<<3)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<2)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<1)&255;b=j;j=b+1&65535;b=a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255;o=l;l=o+1&65535;o=g+(o<<16>>16)|0;N[o]=(M[o]&255|b)&255;b=2;break;case 4:m=((a[(f+(d<<1)|0)>>1]<<16>>16)-(a[(f+(d<<1)|0)>>1]<<16>>
16&65528)|0)&65535;n=N[g+(l<<16>>16)|0]=0;b=5;break;case 5:b=(n<<16>>16|0)<(m<<16>>16|0)?6:8;break;case 6:b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<(7-(n<<16>>16)|0))&255;b=7;break;case 7:n=n+1&65535;b=5;break;case 8:b=18;break;case 9:q=i|0;j=((a[(f+(d<<1)|0)>>1]<<16>>16)-7|0)&65535;b=10;break;case 10:b=(j<<16>>16|0)>0?11:13;break;case 11:b=q;q=b+2|0;b=(a[b>>1]&255)<<7&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<6)&255;
o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<5)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<4)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<3)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<2)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<1)&255;o=q;q=o+2|0;b=(b&255|a[o>>1]&255)&255;o=l;l=o+1&65535;N[g+(o<<16>>16)|0]=b;b=12;break;case 12:j=((j<<16>>16)-8|0)&65535;b=10;break;case 13:m=((a[(f+(d<<1)|0)>>1]<<16>>16)-(a[(f+(d<<1)|0)>>1]<<16>>16&65528)|0)&65535;j=N[g+(l<<16>>16)|0]=0;b=14;break;case 14:b=(j<<16>>16|0)<(m<<16>>16|0)?
15:17;break;case 15:b=q;q=b+2|0;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|a[b>>1]<<16>>16<<(7-(j<<16>>16)|0))&255;b=16;break;case 16:j=j+1&65535;b=14;break;case 17:b=18;break;case 18:return;default:x(0,"bad label: "+b)}}function Fd(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|
0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Wg(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,"bad label: "+c)}}function Xg(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:e=(b<<16>>16|0)<
31?2:3;break;case 2:d=c>>(b<<16>>16|0);e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?5:6;break;case 5:d=c>>31^2147483647;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Le(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p;d=R;i=k;g=e;f=c;l=n=0;p=h[(f+100|0)>>2];f=h[(f+96|0)>>2];b=d<<3&255;var o=l;l=o+1&65535;N[g+(o<<16>>16)|0]=b;b=d>>>0<8?1:9;break;case 1:j=0;b=2;break;case 2:b=(j<<16>>16|
0)<((a[(f+(d<<1)|0)>>1]<<16>>16)-7|0)?3:4;break;case 3:b=j;j=b+1&65535;N[g+(l<<16>>16)|0]=(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<7&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<6)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<5)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<
2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<4)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<3)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<2)&255;b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<1)&255;b=j;j=b+1&65535;b=a[(i+(a[(h[(p+(d<<2)|0)>>
2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255;o=l;l=o+1&65535;o=g+(o<<16>>16)|0;N[o]=(M[o]&255|b)&255;b=2;break;case 4:m=((a[(f+(d<<1)|0)>>1]<<16>>16)-(a[(f+(d<<1)|0)>>1]<<16>>16&65528)|0)&65535;n=N[g+(l<<16>>16)|0]=0;b=5;break;case 5:b=(n<<16>>16|0)<(m<<16>>16|0)?6:8;break;case 6:b=j;j=b+1&65535;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|(a[(i+(a[(h[(p+(d<<2)|0)>>2]+(b<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]&255)<<(7-(n<<16>>16)|0))&255;b=7;break;case 7:n=n+1&65535;b=5;break;case 8:b=18;break;case 9:q=i|0;
j=((a[(f+(d<<1)|0)>>1]<<16>>16)-7|0)&65535;b=10;break;case 10:b=(j<<16>>16|0)>0?11:13;break;case 11:b=q;q=b+2|0;b=(a[b>>1]&255)<<7&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<6)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<5)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<4)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<3)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<2)&255;o=q;q=o+2|0;b=(b&255|(a[o>>1]&255)<<1)&255;o=q;q=o+2|0;b=(b&255|a[o>>1]&255)&255;o=l;l=o+1&65535;N[g+(o<<16>>16)|0]=b;b=12;break;case 12:j=((j<<16>>16)-
8|0)&65535;b=10;break;case 13:m=((a[(f+(d<<1)|0)>>1]<<16>>16)-(a[(f+(d<<1)|0)>>1]<<16>>16&65528)|0)&65535;j=N[g+(l<<16>>16)|0]=0;b=14;break;case 14:b=(j<<16>>16|0)<(m<<16>>16|0)?15:17;break;case 15:b=q;q=b+2|0;o=g+(l<<16>>16)|0;N[o]=(M[o]&255|a[b>>1]<<16>>16<<(7-(j<<16>>16)|0))&255;b=16;break;case 16:j=j+1&65535;b=14;break;case 17:b=18;break;case 18:return;default:x(0,"bad label: "+b)}}function Gg(h,k,e,c,b,d,i){var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o,r,s,v,t,u;f=h;j=k;n=e;l=c;q=b;m=
d;p=i;v=Ya(n,9);t=((a[(n+14|0)>>1]<<16>>16)+(a[(n+16|0)>>1]<<16>>16)|0)>>1&65535;g=(a[(n+16|0)>>1]<<16>>16|0)<(t<<16>>16|0)?1:2;break;case 1:t=a[(n+16|0)>>1];g=2;break;case 2:g=(j<<16>>16|0)<(v<<16>>16|0)?3:19;break;case 3:g=(j<<16>>16|0)>5?4:19;break;case 4:r=Fd(t,2,p);g=(l<<16>>16|0)<7?6:5;break;case 5:g=(q<<16>>16|0)!=0?6:7;break;case 6:r=ha(r,t,p);g=7;break;case 7:g=(v<<16>>16|0)>(r<<16>>16|0)?8:9;break;case 8:v=r;g=9;break;case 9:g=db(j);j=Fd(j,g,p);j=xa(16383,j);u=Wg(v,j,p);g=ha(20,g,p);u=Xg(u,
g,p);g=(u|0)>32767?10:11;break;case 10:u=32767;g=11;break;case 11:s=u&65535;g=(m<<16>>16|0)!=0?12:14;break;case 12:g=(s<<16>>16|0)>3072?13:14;break;case 13:s=3072;g=14;break;case 14:o=0;g=15;break;case 15:g=(o<<16>>16|0)<40?16:18;break;case 16:u=Wg(s,a[(f+(o<<16>>16<<1)|0)>>1],p);u=Xg(u,11,p);a[(f+(o<<16>>16<<1)|0)>>1]=u&65535;g=17;break;case 17:o=o+1&65535;g=15;break;case 18:g=19;break;case 19:return 0;default:x(0,"bad label: "+g)}}function Yg(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;
b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Zg(h){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:a[(c|0)>>1]=0;a[(c+2|
0)>>1]=0;b=a[(c+4|0)>>1]=0;k=3;break;case 3:k=(b<<16>>16|0)<5?4:6;break;case 4:a[((c+6|0)+(b<<16>>16<<1)|0)>>1]=0;k=5;break;case 5:b=b+1&65535;k=3;break;case 6:e=0;k=7;break;case 7:return e;default:x(0,"bad label: "+k)}}function $g(R,k,e,c,b){var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m,p;i=R;g=k;f=e;j=c;n=b;d=(g<<16>>16|0)<=2721?1:2;break;case 1:l=0;d=6;break;case 2:d=(g<<16>>16|0)<=5443?3:4;break;case 3:l=1;d=5;break;case 4:l=2;d=5;break;case 5:d=6;break;case 6:d=Sb(f,1,n);d=(d<<16>>16|
0)>(a[(i+4|0)>>1]<<16>>16|0)?7:9;break;case 7:d=(f<<16>>16|0)>200?8:9;break;case 8:a[(i|0)>>1]=8;d=12;break;case 9:d=(a[(i|0)>>1]<<16>>16|0)!=0?10:11;break;case 10:d=i|0;a[d>>1]=a[d>>1]-1&65535;d=11;break;case 11:d=12;break;case 12:d=(a[(i|0)>>1]<<16>>16|0)!=0?13:15;break;case 13:d=(l<<16>>16|0)<2?14:15;break;case 14:l=((l<<16>>16)+1|0)&65535;d=15;break;case 15:a[(i+6|0)>>1]=g;m=Ya(i+6|0,5);d=(l<<16>>16|0)==0?16:23;break;case 16:d=(m<<16>>16|0)>5443?17:18;break;case 17:q=0;d=22;break;case 18:d=(m<<
16>>16|0)<0?19:20;break;case 19:q=16384;d=21;break;case 20:m=Yg(m,2,n);a:{q=m;d=n;for(var o=void 0,o=0;;)switch(o){case 0:var r,s;r=q;s=d;r=(24660*(r<<16>>16)|0)>>15;o=(r|0)>32767?1:2;break;case 1:h[s>>2]=1;r=32767;o=2;break;case 2:q=r&65535;break a;default:x(0,"bad label: "+o)}q=void 0}q=(16384-(q<<16>>16)|0)&65535;d=21;break;case 21:d=22;break;case 22:d=24;break;case 23:q=0;d=24;break;case 24:d=(a[(i+2|0)>>1]<<16>>16|0)==0?25:26;break;case 25:q=ra(q,1,n);d=26;break;case 26:a[j>>1]=q;a[(i+2|0)>>
1]=q;a[(i+4|0)>>1]=f;p=4;d=27;break;case 27:d=(p<<16>>16|0)>0?28:30;break;case 28:a[((i+6|0)+(p<<16>>16<<1)|0)>>1]=a[((i+6|0)+(((p<<16>>16)-1|0)<<1)|0)>>1];d=29;break;case 29:p=p-1&65535;d=27;break;case 30:return;default:x(0,"bad label: "+d)}}function Nf(a){var k=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var e;for(e=0;;)switch(e){case 0:var c,b,d=k;b=a;e=(b|0)==0?1:2;break;case 1:c=-1;e=9;break;case 2:h[b>>2]=0;e=va(68);h[d>>2]=e;e=(e|0)==0?3:4;break;case 3:c=-1;e=9;break;case 4:h[(h[d>>
2]+28|0)>>2]=0;h[(h[d>>2]+64|0)>>2]=0;e=(sb(h[d>>2]+32|0)<<16>>16|0)!=0?7:5;break;case 5:e=(sb(h[d>>2]+48|0)<<16>>16|0)!=0?7:6;break;case 6:a:{e=h[d>>2]+64|0;for(var i=void 0,i=0;;)switch(i){case 0:var g,f,j;f=e;i=(f|0)==0?1:2;break;case 1:g=-1;i=5;break;case 2:h[f>>2]=0;j=i=va(16);i=(i|0)==0?3:4;break;case 3:g=-1;i=5;break;case 4:Zg(j);h[f>>2]=j;g=0;i=5;break;case 5:e=g;break a;default:x(0,"bad label: "+i)}e=void 0}e=(e<<16>>16|0)!=0?7:8;break;case 7:Tf(d);c=-1;e=9;break;case 8:Uf(h[d>>2]);h[b>>
2]=h[d>>2];c=0;e=9;break;case 9:return a=c,B=k,a;default:x(0,"bad label: "+e)}}function Tf(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e|0)==0?2:1;break;case 1:k=(h[e>>2]|0)==0?2:3;break;case 2:k=4;break;case 3:a:{k=h[e>>2]+64|0;for(var c=void 0,c=0;;)switch(c){case 0:var b;b=k;c=(b|0)==0?2:1;break;case 1:c=(h[b>>2]|0)==0?2:3;break;case 2:c=4;break;case 3:wa(h[b>>2]);h[b>>2]=0;c=4;break;case 4:break a;default:x(0,"bad label: "+c)}}wa(h[e>>2]);h[e>>2]=0;k=4;break;case 4:return;default:x(0,"bad label: "+
k)}}function Uf(R){var k;for(k=0;;)switch(k){case 0:var e,c;c=R;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:a[(c|0)>>1]=0;a[(c+2|0)>>1]=0;a[(c+4|0)>>1]=0;a[(c+6|0)>>1]=0;k=c+8|0;for(e=k+10;k<e;k++)N[k]=0;k=c+18|0;for(e=k+10;k<e;k++)N[k]=0;h[(c+28|0)>>2]=0;sb(c+32|0);sb(c+48|0);Zg(h[(c+64|0)>>2]);e=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function eg(R,k,e,c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v){var t=B;B+=56;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var u;for(u=0;;)switch(u){case 0:var w,
y,A,C,z,D,E,F,I,K,J,G,U,fa,H,L,M,Z,ka,Q=t,T=t+4,X=t+8,S=t+12,P=t+16,O=t+28,$=t+40,ca=t+44,Y=t+48,aa=t+52;w=R;y=k;A=e;C=c;z=b;D=d;E=i;F=g;I=f;K=j;J=n;G=l;U=q;fa=m;H=p;L=o;M=r;Z=s;ka=v;u=(y|0)==0?1:5;break;case 1:u=(J<<16>>16|0)!=0?2:3;break;case 2:u=M;var da=h[u>>2];h[u>>2]=da+2|0;h[(w+28|0)>>2]=da;u=w+48|0;da=w+32|0;x(true,"memcpy given 8 bytes to copy. Problem with quantum=1 corrections perhaps?");N[u]=N[da];N[u+1]=N[da+1];N[u+2]=N[da+2];N[u+3]=N[da+3];N[u+4]=N[da+4];N[u+5]=N[da+5];N[u+6]=N[da+6];
N[u+7]=N[da+7];u=(w+48|0)+8|0;da=(w+32|0)+8|0;x(true,"memcpy given 8 bytes to copy. Problem with quantum=1 corrections perhaps?");N[u]=N[da];N[u+1]=N[da+1];N[u+2]=N[da+2];N[u+3]=N[da+3];N[u+4]=N[da+4];N[u+5]=N[da+5];N[u+6]=N[da+6];N[u+7]=N[da+7];hb(w+48|0,y,z,w|0,w+2|0,$,ca,ka);ic(y,D,E,F,I,K,w+18|0,w+8|0,aa,Y,ka);u=((a[Y>>1]<<16>>16)+1|0)&65535;u=ah(a[aa>>1],u,ka);a[L>>1]=u;gd(D,w+4|0,w+6|0,ka);bh(w+48|0,a[(w|0)>>1],a[(w+2|0)>>1],a[Y>>1],a[aa>>1],ka);u=4;break;case 3:hb(w+48|0,y,z,Q,T,$,ca,ka);ic(y,
D,E,F,I,K,P|0,O|0,aa,Y,ka);gd(D,$,ca,ka);u=ch(w+32|0,a[(w|0)>>1],a[(w+2|0)>>1],w+8|0,w+18|0,a[(w+4|0)>>1],a[(w+6|0)>>1],z,a[Q>>1],a[T>>1],O|0,P|0,a[$>>1],a[ca>>1],G,U,fa,H,L,ka);a[h[(w+28|0)>>2]>>1]=u;u=4;break;case 4:u=12;break;case 5:hb(w+32|0,y,z,Q,T,$,ca,ka);u=(y|0)==7?6:7;break;case 6:u=dh(E,I,ka);a[L>>1]=u;u=eh(y,a[Q>>1],a[T>>1],L,X,S,h[(Z+68|0)>>2],ka);var da=M,V=h[da>>2];h[da>>2]=V+2|0;a[V>>1]=u;u=11;break;case 7:ic(y,D,E,F,I,K,P|0,O|0,aa,Y,ka);u=(y|0)==5?8:9;break;case 8:fh(h[(w+64|0)>>2],
A,C,z,P|0,O|0,a[$>>1],a[ca>>1],a[Q>>1],a[T>>1],40,a[aa>>1],a[Y>>1],G,H,L,X,S,M,Z,ka);u=10;break;case 9:u=gh(y,a[Q>>1],a[T>>1],P|0,O|0,G,H,L,X,S,Z,ka);da=M;V=h[da>>2];h[da>>2]=V+2|0;a[V>>1]=u;u=10;break;case 10:u=11;break;case 11:ib(w+32|0,a[X>>1],a[S>>1]);u=12;break;case 12:B=t;return;default:x(0,"bad label: "+u)}}function ah(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<
16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function sb(h){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:b=0;k=3;break;case 3:k=(b<<16>>16|0)<4?4:6;break;case 4:a[((c|0)+(b<<16>>16<<1)|0)>>1]=-14336;a[((c+8|0)+(b<<16>>16<<1)|0)>>1]=-2381;k=5;break;
case 5:b=b+1&65535;k=3;break;case 6:e=0;k=7;break;case 7:return e;default:x(0,"bad label: "+k)}}function dh(h,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g,f,j,n,l,q,m;b=h;d=k;q=b;m=d;l=0;b=10;e=1;break;case 1:e=(b<<16>>16|0)!=0?2:4;break;case 2:e=m;m=e+2|0;e=a[e>>1]<<16>>16>>1;var p=q;q=p+2|0;l=l+((a[p>>1]<<16>>16)*e|0)|0;e=m;m=e+2|0;e=a[e>>1]<<16>>16>>1;p=q;q=p+2|0;l=l+((a[p>>1]<<16>>16)*e|0)|0;e=m;m=e+2|0;e=a[e>>1]<<16>>16>>1;p=q;q=p+2|0;l=l+((a[p>>1]<<16>>16)*e|0)|0;e=m;m=e+2|0;e=a[e>>1]<<
16>>16>>1;p=q;q=p+2|0;l=l+((a[p>>1]<<16>>16)*e|0)|0;e=3;break;case 3:b=b-1&65535;e=1;break;case 4:l<<=1;f=oa(l+1|0);e=(f<<16>>16|0)<17?5:6;break;case 5:i=l>>(17-(f<<16>>16)|0)&65535;e=7;break;case 6:i=l<<((f<<16>>16)-17|0)&65535;e=7;break;case 7:e=(i<<16>>16|0)<=0?8:9;break;case 8:c=0;e=20;break;case 9:l=0;m=d;b=20;e=10;break;case 10:e=(b<<16>>16|0)!=0?11:13;break;case 11:e=m;m=e+2|0;e=a[e>>1]<<16>>16>>1&65535;l=l+(((e<<16>>16)*(e<<16>>16)|0)>>2)|0;e=m;m=e+2|0;e=a[e>>1]<<16>>16>>1&65535;l=l+(((e<<
16>>16)*(e<<16>>16)|0)>>2)|0;e=12;break;case 12:b=b-1&65535;e=10;break;case 13:l<<=3;j=oa(l);e=(j<<16>>16|0)<16?14:15;break;case 14:g=l>>(16-(j<<16>>16)|0)&65535;e=16;break;case 15:g=l<<((j<<16>>16)-16|0)&65535;e=16;break;case 16:n=xa(i,g);b=((f<<16>>16)+5|0)&65535;b=((b<<16>>16)-(j<<16>>16)|0)&65535;e=(b<<16>>16|0)>1?17:18;break;case 17:n=n<<16>>16>>((b<<16>>16)-1|0)&65535;e=19;break;case 18:n=n<<16>>16<<(1-(b<<16>>16)|0)&65535;e=19;break;case 19:c=n;e=20;break;case 20:return c;default:x(0,"bad label: "+
e)}}function hb(R,k,e,c,b,d,i,g){var f=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v,t,u,w,y,A=f,C=f+4,z,D,E;n=R;l=k;q=e;m=c;p=b;o=d;r=i;s=g;E=q|0;w=0;q=10;j=1;break;case 1:j=(q<<16>>16|0)!=0?2:4;break;case 2:j=E;E=j+2|0;j=a[j>>1];w=w+(((j<<16>>16)*(j<<16>>16)|0)>>3)|0;j=E;E=j+2|0;j=a[j>>1];w=w+(((j<<16>>16)*(j<<16>>16)|0)>>3)|0;j=E;E=j+2|0;j=a[j>>1];w=w+(((j<<16>>16)*(j<<16>>16)|0)>>3)|0;j=E;E=j+2|0;j=a[j>>1];w=w+(((j<<16>>
16)*(j<<16>>16)|0)>>3)|0;j=3;break;case 3:q=q-1&65535;j=1;break;case 4:w<<=4;j=(w>>31|0)!=0?5:6;break;case 5:w=2147483647;j=6;break;case 6:j=(l|0)==7?7:12;break;case 7:w=((la(w,s)<<16>>16)*26214|0)<<1;Za(w,A,C,s);v=((a[A>>1]<<16>>16)-30|0)<<16;w=v+(a[C>>1]<<16>>16<<1)|0;y=783741;q=0;j=8;break;case 8:j=(q<<16>>16|0)<4?9:11;break;case 9:v=((a[((n+8|0)+(q<<16>>16<<1)|0)>>1]<<16>>16)*(a[(hh+(q<<16>>16<<1)|0)>>1]<<16>>16)|0)<<1;y=$a(y,v,s);j=10;break;case 10:q=q+1&65535;j=8;break;case 11:v=ih(y,w,s);a[m>>
1]=v>>17&65535;t=a[m>>1]<<16>>16<<15;v>>=2;a[p>>1]=(v-t|0)&65535;j=46;break;case 12:z=oa(w);a:{t=w;u=z;w=void 0;for(w=0;;)switch(w){case 0:var F,I,K;F=t;I=u;K=0;w=(I<<16>>16|0)>0?1:4;break;case 1:K=F<<(I<<16>>16);w=(K>>(I<<16>>16|0)|0)!=(F|0)?2:3;break;case 2:K=F>>31^2147483647;w=3;break;case 3:w=7;break;case 4:I=(-(I<<16>>16)|0)&65535;w=(I<<16>>16|0)<31?5:6;break;case 5:K=F>>(I<<16>>16|0);w=6;break;case 6:w=7;break;case 7:w=K;break a;default:x(0,"bad label: "+w)}w=void 0}Gd(w,z,A,C);t=((a[A>>1]<<
16>>16)*-24660|0)<<1;u=((a[C>>1]<<16>>16)*-24660|0)>>15;j=(u&65536|0)!=0?13:14;break;case 13:u|=-65536;j=14;break;case 14:u<<=1;u=$a(u,t,s);j=(l|0)==6?15:16;break;case 15:t=2134784;u=$a(u,t,s);j=26;break;case 16:j=(l|0)==5?17:18;break;case 17:a[r>>1]=w>>16&65535;a[o>>1]=(-11-(z<<16>>16)|0)&65535;t=2183936;u=$a(u,t,s);j=25;break;case 18:j=(l|0)==4?19:20;break;case 19:t=2085632;u=$a(u,t,s);j=24;break;case 20:j=(l|0)==3?21:22;break;case 21:t=2065152;u=$a(u,t,s);j=23;break;case 22:t=2134784;u=$a(u,t,
s);j=23;break;case 23:j=24;break;case 24:j=25;break;case 25:j=26;break;case 26:j=(u|0)>2097151?27:28;break;case 27:h[s>>2]=1;u=2147483647;j=32;break;case 28:j=(u|0)<-2097152?29:30;break;case 29:h[s>>2]=1;u=-2147483648;j=31;break;case 30:u<<=10;j=31;break;case 31:j=32;break;case 32:q=0;j=33;break;case 33:j=(q<<16>>16|0)<4?34:36;break;case 34:t=((a[(jh+(q<<16>>16<<1)|0)>>1]<<16>>16)*(a[((n|0)+(q<<16>>16<<1)|0)>>1]<<16>>16)|0)<<1;u=$a(u,t,s);j=35;break;case 35:q=q+1&65535;j=33;break;case 36:D=u>>16&
65535;j=(l|0)==4?37:38;break;case 37:u=((D<<16>>16)*5439|0)<<1;j=39;break;case 38:u=((D<<16>>16)*5443|0)<<1;j=39;break;case 39:j=(u|0)<0?40:41;break;case 40:u=(u^-1)>>8^-1;j=42;break;case 41:u>>=8;j=42;break;case 42:a[m>>1]=u>>16&65535;j=(u|0)<0?43:44;break;case 43:v=(u^-1)>>1^-1;j=45;break;case 44:v=u>>1;j=45;break;case 45:t=a[m>>1]<<16>>16<<15;j=ih(v,t,s)&65535;a[p>>1]=j;j=46;break;case 46:B=f;return;default:x(0,"bad label: "+j)}}function $a(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;
c=k;d=e;i=b+c|0;c=(b^c|0)>=0?1:4;break;case 1:c=((i^b)>>31|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function ih(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b-c|0;c=((b^c)>>31|0)!=0?1:4;break;case 1:c=((i^b)&-2147483648|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function ib(h,k,
e){a[((h|0)+6|0)>>1]=a[((h|0)+4|0)>>1];a[((h+8|0)+6|0)>>1]=a[((h+8|0)+4|0)>>1];a[((h|0)+4|0)>>1]=a[((h|0)+2|0)>>1];a[((h+8|0)+4|0)>>1]=a[((h+8|0)+2|0)>>1];a[((h|0)+2|0)>>1]=a[(h|0)>>1];a[((h+8|0)+2|0)>>1]=a[(h+8|0)>>1];a[(h+8|0)>>1]=k;a[(h|0)>>1]=e}function jd(a){h[(a|0)>>2]=kh|0;h[(a+4|0)>>2]=sc|0;h[(a+8|0)>>2]=Hd|0;h[(a+12|0)>>2]=Vb|0;h[(a+16|0)>>2]=Id|0;h[(a+20|0)>>2]=tc|0;h[(a+24|0)>>2]=Jd|0;h[(a+28|0)>>2]=Kd|0;h[(a+32|0)>>2]=Ld|0;h[(a+36|0)>>2]=lh|0;h[(a+40|0)>>2]=Md|0;h[(a+44|0)>>2]=uc|0;h[(a+
48|0)>>2]=Nd|0;h[(a+52|0)>>2]=Od|0;h[(a+56|0)>>2]=Pd|0;h[(a+60|0)>>2]=vc|0;h[(a+64|0)>>2]=Qd|0;h[(a+68|0)>>2]=mh|0;h[(a+72|0)>>2]=nh|0;h[(a+76|0)>>2]=oh|0;h[(a+80|0)>>2]=ph|0;h[(a+84|0)>>2]=qh|0;h[(a+88|0)>>2]=rh|0;h[(a+92|0)>>2]=Ka|0;h[(a+96|0)>>2]=sh|0;h[(a+100|0)>>2]=Oa|0;h[(a+104|0)>>2]=th|0;h[(a+108|0)>>2]=uh|0;h[(a+112|0)>>2]=vh|0;h[(a+116|0)>>2]=wh|0;h[(a+120|0)>>2]=xh|0;h[(a+124|0)>>2]=yh|0;h[(a+128|0)>>2]=zh|0;h[(a+132|0)>>2]=Ah|0}function Sg(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,
i,g,f,j,n;d=h;i=k;g=e;f=c;n=j=0;b=1;break;case 1:b=(n<<16>>16|0)<4?2:4;break;case 2:j=$(j,a[((d+8|0)+(n<<16>>16<<1)|0)>>1],f);b=3;break;case 3:n=n+1&65535;b=1;break;case 4:b=(j<<16>>16|0)<0?5:6;break;case 5:j=(j<<16>>16>>2|49152)&65535;b=7;break;case 6:j=j<<16>>16>>2&65535;b=7;break;case 7:b=(j<<16>>16|0)<-2381?8:9;break;case 8:j=-2381;b=9;break;case 9:a[i>>1]=j;n=j=0;b=10;break;case 10:b=(n<<16>>16|0)<4?11:13;break;case 11:j=$(j,a[((d|0)+(n<<16>>16<<1)|0)>>1],f);b=12;break;case 12:n=n+1&65535;b=
10;break;case 13:b=(j<<16>>16|0)<0?14:15;break;case 14:j=(j<<16>>16>>2|49152)&65535;b=16;break;case 15:j=j<<16>>16>>2&65535;b=16;break;case 16:b=(j<<16>>16|0)<-14336?17:18;break;case 17:j=-14336;b=18;break;case 18:a[g>>1]=j;return;default:x(0,"bad label: "+b)}}function Ya(h,k){var e=B;B+=40;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f,j,n=e,l=e+20;b=h;d=k;f=0;ua(l|0,b,d<<16>>16<<1|0,1,0);i=0;c=1;break;case 1:c=(i<<16>>16|0)<(d<<16>>16|0)?
2:10;break;case 2:j=-32767;g=0;c=3;break;case 3:c=(g<<16>>16|0)<(d<<16>>16|0)?4:8;break;case 4:c=(a[((l|0)+(g<<16>>16<<1)|0)>>1]<<16>>16|0)>=(j<<16>>16|0)?5:6;break;case 5:j=a[((l|0)+(g<<16>>16<<1)|0)>>1];f=g;c=6;break;case 6:c=7;break;case 7:g=g+1&65535;c=3;break;case 8:a[((l|0)+(f<<16>>16<<1)|0)>>1]=-32768;a[((n|0)+(i<<16>>16<<1)|0)>>1]=f;c=9;break;case 9:i=i+1&65535;c=1;break;case 10:return c=a[((n|0)+(d<<16>>16>>1<<1)|0)>>1],b=a[(b+(c<<16>>16<<1)|0)>>1],B=e,b;default:x(0,"bad label: "+c)}}function Wb(a,
k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Rd(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b-c|0;c=((b^c)>>31|0)!=0?1:4;break;case 1:c=((i^b)&-2147483648|
0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function Kf(R,k,e,c,b,d){var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A;f=R;j=k;n=e;l=c;q=b;m=d;y=j|0;A=n|0;u=h[m>>2]=0;p=q<<16>>16>>2&65535;i=1;break;case 1:i=(p<<16>>16|0)!=0?2:4;break;case 2:u=u+((a[A>>1]<<16>>16)*(a[A>>1]<<16>>16)|0)|0;A=A+2|0;u=u+((a[A>>1]<<16>>16)*(a[A>>1]<<16>>16)|0)|0;A=A+2|0;u=u+((a[A>>1]<<16>>16)*(a[A>>1]<<
16>>16)|0)|0;A=A+2|0;u=u+((a[A>>1]<<16>>16)*(a[A>>1]<<16>>16)|0)|0;A=A+2|0;i=3;break;case 3:p=p-1&65535;i=1;break;case 4:i=((u|0)>=0&1&(u|0)<1073741824&1|0)!=0?5:6;break;case 5:u<<=1;u=u+1|0;v=oa(u);i=u<<(v<<16>>16);r=la(i,m);i=11;break;case 6:u=0;A=n|0;p=q<<16>>16>>1&65535;i=7;break;case 7:i=(p<<16>>16|0)!=0?8:10;break;case 8:i=A;A=i+2|0;i=a[i>>1]<<16>>16>>2&65535;u=u+((i<<16>>16)*(i<<16>>16)|0)|0;i=A;A=i+2|0;i=a[i>>1]<<16>>16>>2&65535;u=u+((i<<16>>16)*(i<<16>>16)|0)|0;i=9;break;case 9:p=p-1&65535;
i=7;break;case 10:u<<=1;u=u+1|0;v=oa(u);i=u<<(v<<16>>16);r=la(i,m);v=((v<<16>>16)-4|0)&65535;i=11;break;case 11:u=0;A=n|0;h[m>>2]=0;p=q;i=12;break;case 12:i=(p<<16>>16|0)!=0?13:19;break;case 13:w=y;y=w+2|0;w=a[w>>1]<<16>>16;i=A;A=i+2|0;i=w*(a[i>>1]<<16>>16)|0;w=u;u=w+i|0;i=(w^i|0)>0?14:17;break;case 14:i=(w^u|0)<0?15:16;break;case 15:h[m>>2]=1;i=19;break;case 16:i=17;break;case 17:i=18;break;case 18:p=p-1&65535;i=12;break;case 19:i=(h[m>>2]|0)!=0?21:20;break;case 20:u<<=1;u=u+1|0;s=oa(u);i=u<<(s<<
16>>16);o=la(i,m);i=26;break;case 21:u=0;A=n|0;y=j|0;p=q<<16>>16>>2&65535;i=22;break;case 22:i=(p<<16>>16|0)!=0?23:25;break;case 23:i=A;A=i+2|0;i=a[i>>1]<<16>>16>>2;var C=y;y=C+2|0;u=u+((a[C>>1]<<16>>16)*i|0)|0;i=A;A=i+2|0;i=a[i>>1]<<16>>16>>2;C=y;y=C+2|0;u=u+((a[C>>1]<<16>>16)*i|0)|0;i=A;A=i+2|0;i=a[i>>1]<<16>>16>>2;C=y;y=C+2|0;u=u+((a[C>>1]<<16>>16)*i|0)|0;i=A;A=i+2|0;i=a[i>>1]<<16>>16>>2;C=y;y=C+2|0;u=u+((a[C>>1]<<16>>16)*i|0)|0;i=24;break;case 24:p=p-1&65535;i=22;break;case 25:u<<=1;u=u+1|0;s=
oa(u);i=u<<(s<<16>>16);o=la(i,m);s=((s<<16>>16)-4|0)&65535;i=26;break;case 26:a[(l|0)>>1]=r;a[(l+2|0)>>1]=(15-(v<<16>>16)|0)&65535;a[(l+4|0)>>1]=o;a[(l+6|0)>>1]=(15-(s<<16>>16)|0)&65535;i=(o<<16>>16|0)<4?27:28;break;case 27:g=0;i=33;break;case 28:o=o<<16>>16>>1&65535;t=xa(o,r);p=((s<<16>>16)-(v<<16>>16)|0)&65535;t=ra(t,p,m);i=(t<<16>>16|0)>19661?29:30;break;case 29:t=19661;i=30;break;case 30:i=(f|0)==7?31:32;break;case 31:t=t<<16>>16&65532;i=32;break;case 32:g=t;i=33;break;case 33:return g;default:x(0,
"bad label: "+i)}}function Sd(R,k,e,c,b,d,i){var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z;f=R;j=k;n=e;l=c;q=b;m=d;p=i;s=-2147483648;v=0;l=((l<<16>>16)-1|0)&65535;g=1;break;case 1:g=(l<<16>>16|0)>(q<<16>>16|0)?2:6;break;case 2:v=Wb(h[(f+((-(l<<16>>16)|0)<<2)|0)>>2],1,p);g=Rd(v,h[(f+(((-(l<<16>>16)|0)-1|0)<<2)|0)>>2],p);v=Rd(g,h[(f+(((-(l<<16>>16)|0)+1|0)<<2)|0)>>2],p);v=fb(v);g=(v|0)>=(s|0)?3:4;break;case 3:s=v;g=4;break;case 4:g=5;break;case 5:l=l-1&65535;g=1;break;case 6:o=
j;r=j|0;l=v=0;g=7;break;case 7:g=(l<<16>>16|0)<(n<<16>>16|0)?8:10;break;case 8:v=Td(v,a[o>>1],a[r>>1],p);g=9;break;case 9:l=l+1&65535;o=o+2|0;r=r+2|0;g=7;break;case 10:o=j;r=j-2|0;l=t=0;g=11;break;case 11:g=(l<<16>>16|0)<(n<<16>>16|0)?12:14;break;case 12:t=Td(t,a[o>>1],a[r>>1],p);g=13;break;case 13:l=l+1&65535;o=o+2|0;r=r+2|0;g=11;break;case 14:g=Wb(v,1,p);t=Wb(t,1,p);v=Rd(g,t,p);v=fb(v);w=oa(s);C=((w<<16>>16)-1|0)&65535;g=Wb(s,C,p);u=g>>16&65535;z=oa(v);g=Wb(v,z,p);w=g>>16&65535;g=(w<<16>>16|0)!=
0?15:16;break;case 15:y=xa(u,w);g=17;break;case 16:y=0;g=17;break;case 17:A=((C<<16>>16)-(z<<16>>16)|0)&65535;g=(A<<16>>16|0)>=0?18:19;break;case 18:g=ra(y,A,p);a[m>>1]=g;g=20;break;case 19:g=y;var D;a:{D=A;for(var E=void 0,E=0;;)switch(E){case 0:var B;B=D;E=(B<<16>>16|0)==-32768?1:2;break;case 1:var I=32767,E=3;break;case 2:I=-(B<<16>>16)|0;E=3;break;case 3:D=I&65535;break a;default:x(0,"bad label: "+E)}D=void 0}g=Bh(g,D,p);a[m>>1]=g;g=20;break;case 20:return 0;default:x(0,"bad label: "+g)}}function Td(a,
k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function Bh(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<
16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function He(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m;d=R;i=k;g=e;f=c;l=0;q=h[(f+104|0)>>2];m=h[(f+96|0)>>2];f=h[(f+100|0)>>2];b=d>>>0<8?1:16;break;case 1:n=4;b=2;
break;case 2:b=(n<<16>>16|0)<8?3:5;break;case 3:b=(M[i|0]&255)>>(n<<16>>16|0)&1;var p=l;l=p+1&65535;a[(g+(a[(h[(f+(d<<2)|0)>>2]+(p<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]=b;b=4;break;case 4:n=n+1&65535;b=2;break;case 5:j=1;b=6;break;case 6:b=(j<<16>>16|0)<(a[(q+(d<<1)|0)>>1]<<16>>16|0)?7:15;break;case 7:n=0;b=8;break;case 8:b=(n<<16>>16|0)<8?9:13;break;case 9:b=(l<<16>>16|0)>=(a[(m+(d<<1)|0)>>1]<<16>>16|0)?10:11;break;case 10:b=13;break;case 11:b=(M[i+(j<<16>>16)|0]&255)>>(n<<16>>16|0)&1;p=l;l=p+1&
65535;a[(g+(a[(h[(f+(d<<2)|0)>>2]+(p<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]=b;b=12;break;case 12:n=n+1&65535;b=8;break;case 13:b=14;break;case 14:j=j+1&65535;b=6;break;case 15:b=29;break;case 16:n=4;b=17;break;case 17:b=(n<<16>>16|0)<8?18:20;break;case 18:b=(M[i|0]&255)>>(n<<16>>16|0)&1;p=l;l=p+1&65535;a[(g+(p<<16>>16<<1)|0)>>1]=b;b=19;break;case 19:n=n+1&65535;b=17;break;case 20:j=1;b=21;break;case 21:b=(j<<16>>16|0)<(a[(q+(d<<1)|0)>>1]<<16>>16|0)?22:28;break;case 22:n=0;b=23;break;case 23:b=(n<<
16>>16|0)<8?24:26;break;case 24:b=(M[i+(j<<16>>16)|0]&255)>>(n<<16>>16|0)&1;p=l;l=p+1&65535;a[(g+(p<<16>>16<<1)|0)>>1]=b;b=25;break;case 25:n=n+1&65535;b=23;break;case 26:b=27;break;case 27:j=j+1&65535;b=21;break;case 28:b=29;break;case 29:return;default:x(0,"bad label: "+b)}}function Ud(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f,j,n,l,q;b=h;d=k;c=(e<<16>>16|0)!=0?1:2;break;case 1:d=d<<16>>16<<1&65535;c=2;break;case 2:c=(d<<16>>16|0)<0?3:4;break;case 3:d=((d<<16>>16)+6|0)&65535;b=b-2|0;
c=4;break;case 4:f=b|0;j=b+2|0;n=Vd+(d<<16>>16<<1)|0;i=(6-(d<<16>>16)|0)&65535;l=Vd+(i<<16>>16<<1)|0;q=16384;g=0;i=2;c=5;break;case 5:c=(i<<16>>16|0)!=0?6:8;break;case 6:c=f;f=c-2|0;q=q+((a[c>>1]<<16>>16)*(a[(n+(g<<16>>16<<1)|0)>>1]<<16>>16)|0)|0;c=j;j=c+2|0;q=q+((a[c>>1]<<16>>16)*(a[(l+(g<<16>>16<<1)|0)>>1]<<16>>16)|0)|0;g=((g<<16>>16)+6|0)&65535;c=f;f=c-2|0;q=q+((a[c>>1]<<16>>16)*(a[(n+(g<<16>>16<<1)|0)>>1]<<16>>16)|0)|0;c=j;j=c+2|0;q=q+((a[c>>1]<<16>>16)*(a[(l+(g<<16>>16<<1)|0)>>1]<<16>>16)|0)|
0;g=g<<16>>16<<1&65535;c=7;break;case 7:i=i-1&65535;c=5;break;case 8:return q>>15&65535;default:x(0,"bad label: "+c)}}function vd(h,k,e,c,b){var d=B;B+=20;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q=d,m,p,o,r;g=h;f=k;j=e;n=c;l=b;m=g|0;p=f|0;o=j|0;r=q|0;g=5;i=1;break;case 1:i=(g<<16>>16|0)!=0?2:4;break;case 2:i=m;m=i+2|0;i=a[i>>1]<<16>>16>>1;var s=p;p=s+2|0;i=(i+(a[s>>1]<<16>>16>>1)|0)&65535;s=r;r=s+2|0;a[s>>1]=i;i=m;m=i+2|0;i=a[i>>1]<<
16>>16>>1;s=p;p=s+2|0;i=(i+(a[s>>1]<<16>>16>>1)|0)&65535;s=r;r=s+2|0;a[s>>1]=i;i=3;break;case 3:g=g-1&65535;i=1;break;case 4:ya(q|0,n,l);n=n+22|0;ya(f,n,l);n=n+22|0;p=f|0;r=q|0;i=g=5;break;case 5:i=(g<<16>>16|0)!=0?6:8;break;case 6:i=p;p=i+2|0;i=a[i>>1]<<16>>16>>1;s=o;o=s+2|0;i=(i+(a[s>>1]<<16>>16>>1)|0)&65535;s=r;r=s+2|0;a[s>>1]=i;i=p;p=i+2|0;i=a[i>>1]<<16>>16>>1;s=o;o=s+2|0;i=(i+(a[s>>1]<<16>>16>>1)|0)&65535;s=r;r=s+2|0;a[s>>1]=i;i=7;break;case 7:g=g-1&65535;i=5;break;case 8:ya(q|0,n,l);n=n+22|
0;ya(j,n,l);B=d;return;default:x(0,"bad label: "+i)}}function Ch(h,k,e,c,b){var d=B;B+=20;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q=d,m,p,o;g=h;f=k;j=e;n=c;l=b;g|=0;m=f|0;p=j|0;o=q|0;j=5;i=1;break;case 1:i=(j<<16>>16|0)!=0?2:4;break;case 2:i=g;g=i+2|0;i=a[i>>1]<<16>>16>>1;var r=m;m=r+2|0;i=(i+(a[r>>1]<<16>>16>>1)|0)&65535;r=o;o=r+2|0;a[r>>1]=i;i=g;g=i+2|0;i=a[i>>1]<<16>>16>>1;r=m;m=r+2|0;i=(i+(a[r>>1]<<16>>16>>1)|0)&65535;r=o;o=r+2|
0;a[r>>1]=i;i=3;break;case 3:j=j-1&65535;i=1;break;case 4:ya(q|0,n,l);n=n+44|0;m=f|0;o=q|0;i=j=5;break;case 5:i=(j<<16>>16|0)!=0?6:8;break;case 6:i=m;m=i+2|0;i=a[i>>1]<<16>>16>>1;r=p;p=r+2|0;i=(i+(a[r>>1]<<16>>16>>1)|0)&65535;r=o;o=r+2|0;a[r>>1]=i;i=m;m=i+2|0;i=a[i>>1]<<16>>16>>1;r=p;p=r+2|0;i=(i+(a[r>>1]<<16>>16>>1)|0)&65535;r=o;o=r+2|0;a[r>>1]=i;i=7;break;case 7:j=j-1&65535;i=5;break;case 8:ya(q|0,n,l);B=d;return;default:x(0,"bad label: "+i)}}function fb(a){a=a-((a|0)<0&1)|0;a^=a>>31;return a}function ud(h,
k,e,c){var b=B;B+=20;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l=b;i=h;g=k;f=e;j=c;n=0;d=1;break;case 1:d=(n<<16>>16|0)<10?2:4;break;case 2:d=((a[(i+(n<<16>>16<<1)|0)>>1]<<16>>16)-(a[(i+(n<<16>>16<<1)|0)>>1]<<16>>16>>2)|0)&65535;a[(l+(n<<16>>16<<1)|0)>>1]=((d<<16>>16)+(a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16>>2)|0)&65535;d=3;break;case 3:n=n+1&65535;d=1;break;case 4:ya(l|0,f,j);f=f+22|0;n=0;d=5;break;case 5:d=(n<<16>>16|0)<10?6:8;break;case 6:a[(l+
(n<<16>>16<<1)|0)>>1]=((a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16>>1)+(a[(i+(n<<16>>16<<1)|0)>>1]<<16>>16>>1)|0)&65535;d=7;break;case 7:n=n+1&65535;d=5;break;case 8:ya(l|0,f,j);f=f+22|0;n=0;d=9;break;case 9:d=(n<<16>>16|0)<10?10:12;break;case 10:d=((a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16)-(a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16>>2)|0)&65535;a[(l+(n<<16>>16<<1)|0)>>1]=((d<<16>>16)+(a[(i+(n<<16>>16<<1)|0)>>1]<<16>>16>>2)|0)&65535;d=11;break;case 11:n=n+1&65535;d=9;break;case 12:ya(l|0,f,j);f=f+22|0;ya(g,f,j);B=b;
return;default:x(0,"bad label: "+d)}}function Dh(h,k,e,c){var b=B;B+=20;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l=b;i=h;g=k;f=e;j=c;n=0;d=1;break;case 1:d=(n<<16>>16|0)<10?2:4;break;case 2:d=((a[(i+(n<<16>>16<<1)|0)>>1]<<16>>16)-(a[(i+(n<<16>>16<<1)|0)>>1]<<16>>16>>2)|0)&65535;a[(l+(n<<16>>16<<1)|0)>>1]=((d<<16>>16)+(a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16>>2)|0)&65535;d=3;break;case 3:n=n+1&65535;d=1;break;case 4:ya(l|0,f,j);f=f+22|0;n=
0;d=5;break;case 5:d=(n<<16>>16|0)<10?6:8;break;case 6:a[(l+(n<<16>>16<<1)|0)>>1]=((a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16>>1)+(a[(i+(n<<16>>16<<1)|0)>>1]<<16>>16>>1)|0)&65535;d=7;break;case 7:n=n+1&65535;d=5;break;case 8:ya(l|0,f,j);f=f+22|0;n=0;d=9;break;case 9:d=(n<<16>>16|0)<10?10:12;break;case 10:d=((a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16)-(a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16>>2)|0)&65535;a[(l+(n<<16>>16<<1)|0)>>1]=((d<<16>>16)+(a[(i+(n<<16>>16<<1)|0)>>1]<<16>>16>>2)|0)&65535;d=11;break;case 11:n=n+1&
65535;d=9;break;case 12:ya(l|0,f,j);B=b;return;default:x(0,"bad label: "+d)}}function Eg(h,k,e,c,b){var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m;i=h;g=k;f=e;j=c;n=b;d=(f<<16>>16|0)==0?1:12;break;case 1:l=9;d=2;break;case 2:d=(l<<16>>16|0)>=0?3:11;break;case 3:d=(a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16|0)<0?4:5;break;case 4:q=((a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16^-1)>>2^-1)&65535;d=6;break;case 5:q=a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16>>2&65535;d=6;break;case 6:d=(a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16|
0)<0?7:8;break;case 7:m=((a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16^-1)>>2^-1)&65535;d=9;break;case 8:m=a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16>>2&65535;d=9;break;case 9:d=$(((a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16)-(q<<16>>16)|0)&65535,m,n);a[(j+(l<<16>>16<<1)|0)>>1]=d;d=10;break;case 10:l=l-1&65535;d=2;break;case 11:d=45;break;case 12:d=(f<<16>>16|0)==40?13:24;break;case 13:l=9;d=14;break;case 14:d=(l<<16>>16|0)>=0?15:23;break;case 15:d=(a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16|0)<0?16:17;break;case 16:q=((a[(i+(l<<
16>>16<<1)|0)>>1]<<16>>16^-1)>>1^-1)&65535;d=18;break;case 17:q=a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16>>1&65535;d=18;break;case 18:d=(a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16|0)<0?19:20;break;case 19:m=((a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16^-1)>>1^-1)&65535;d=21;break;case 20:m=a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16>>1&65535;d=21;break;case 21:a[(j+(l<<16>>16<<1)|0)>>1]=((q<<16>>16)+(m<<16>>16)|0)&65535;d=22;break;case 22:l=l-1&65535;d=14;break;case 23:d=44;break;case 24:d=(f<<16>>16|0)==80?25:36;break;case 25:l=
9;d=26;break;case 26:d=(l<<16>>16|0)>=0?27:35;break;case 27:d=(a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16|0)<0?28:29;break;case 28:q=((a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16^-1)>>2^-1)&65535;d=30;break;case 29:q=a[(i+(l<<16>>16<<1)|0)>>1]<<16>>16>>2&65535;d=30;break;case 30:d=(a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16|0)<0?31:32;break;case 31:m=((a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16^-1)>>2^-1)&65535;d=33;break;case 32:m=a[(g+(l<<16>>16<<1)|0)>>1]<<16>>16>>2&65535;d=33;break;case 33:d=$(q,((a[(g+(l<<16>>16<<1)|0)>>1]<<
16>>16)-(m<<16>>16)|0)&65535,n);a[(j+(l<<16>>16<<1)|0)>>1]=d;d=34;break;case 34:l=l-1&65535;d=26;break;case 35:d=43;break;case 36:d=(f<<16>>16|0)==120?37:42;break;case 37:l=9;d=38;break;case 38:d=(l<<16>>16|0)>=0?39:41;break;case 39:a[(j+(l<<16>>16<<1)|0)>>1]=a[(g+(l<<16>>16<<1)|0)>>1];d=40;break;case 40:l=l-1&65535;d=38;break;case 41:d=42;break;case 42:d=43;break;case 43:d=44;break;case 44:d=45;break;case 45:return;default:x(0,"bad label: "+d)}}function Xa(a){var g;var f;var k;for(k=0;;)switch(k){case 0:var e,
c,b,d;c=a;k=(c|0)<=0?1:2;break;case 1:e=1073741823;k=5;break;case 2:b=oa(c);c<<=b<<16>>16;b=(30-(b<<16>>16)|0)&65535;k=(b<<16>>16&1|0)==0?3:4;break;case 3:c>>=1;k=4;break;case 4:b=b<<16>>16>>1&65535;b=((b<<16>>16)+1|0)&65535;c>>=9;d=c>>16&65535;k=c>>1&65535;k=k<<16>>16&32767;d=((d<<16>>16)-16|0)&65535;e=wc+(d<<16>>16<<1)|0;f=(ga=M[e]|M[e+1]<<8,ga<<16>>16)<<16>>16<<16,e=f;var i=wc+(d<<16>>16<<1)|0,i=(ga=M[i]|M[i+1]<<8,ga<<16>>16)<<16>>16;d=wc+(((d<<16>>16)+1|0)<<1)|0;g=(ga=M[d]|M[d+1]<<8,ga<<16>>16)<<
16>>16,d=g;d=(i-d|0)&65535;e=e-(((d<<16>>16)*(k<<16>>16)|0)<<1)|0;e>>=b<<16>>16|0;k=5;break;case 5:return e;default:x(0,"bad label: "+k)}}function Eh(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,h;d=a;i=k;g=e;f=c;j=(d<<16>>16)*(g<<16>>16)|0;b=(j|0)!=1073741824?1:2;break;case 1:j<<=1;b=3;break;case 2:j=2147483647;b=3;break;case 3:b=((d<<16>>16)*(f<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?4:7;break;case 4:b=((h^j)>>31|0)!=0?5:6;break;case 5:h=(j>>31|0)!=0?-2147483648:2147483647;b=6;break;
case 6:b=7;break;case 7:j=h;b=((i<<16>>16)*(g<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?8:11;break;case 8:b=((h^j)>>31|0)!=0?9:10;break;case 9:h=(j>>31|0)!=0?-2147483648:2147483647;b=10;break;case 10:b=11;break;case 11:return h;default:x(0,"bad label: "+b)}}function Bf(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:
2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function Qf(h){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:a[(c|0)>>1]=4096;b=1;k=3;break;case 3:k=(b<<16>>16|0)<11?4:6;break;case 4:a[((c|0)+(b<<16>>16<<1)|0)>>1]=0;k=5;break;case 5:b=b+1&65535;k=3;break;case 6:e=0;k=7;break;case 7:return e;default:x(0,"bad label: "+k)}}function xc(h,k,e,c){var b;
for(b=0;;)switch(b){case 0:var d,i,g,f,j,n;d=h;i=k;g=e;f=c;j=Fh|0;n=Gh|0;i=i+2|0;g=g+2|0;b=1;break;case 1:b=(d<<16>>16|0)!=0?2:4;break;case 2:b=a[i>>1];var l=a[g>>1],q=j;j=q+2|0;var q=a[q>>1],m=n;n=m+2|0;b=Eh(b,l,q,a[m>>1],f);a[i>>1]=b>>16&65535;b>>=1;l=i;i=l+2|0;b=(b-(a[l>>1]<<16>>16<<15)|0)&65535;l=g;g=l+2|0;a[l>>1]=b;b=3;break;case 3:d=d-1&65535;b=1;break;case 4:return;default:x(0,"bad label: "+b)}}function yc(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,h;d=a;i=k;g=e;f=c;j=(d<<16>>
16)*(g<<16>>16)|0;b=(j|0)!=1073741824?1:2;break;case 1:j<<=1;b=3;break;case 2:j=2147483647;b=3;break;case 3:b=((d<<16>>16)*(f<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?4:7;break;case 4:b=((h^j)>>31|0)!=0?5:6;break;case 5:h=(j>>31|0)!=0?-2147483648:2147483647;b=6;break;case 6:b=7;break;case 7:j=h;b=((i<<16>>16)*(g<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?8:11;break;case 8:b=((h^j)>>31|0)!=0?9:10;break;case 9:h=(j>>31|0)!=0?-2147483648:2147483647;b=10;break;case 10:b=11;break;case 11:return h;default:x(0,
"bad label: "+b)}}function Pa(h,k,e){var c;c=h>>16;a[k>>1]=c&65535;a[e>>1]=((h>>1)-(c<<15)|0)&65535}function zc(h,k,e,c,b,d){var i=B;B+=96;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A=i,C=i+24,z=i+48,D=i+72,E,F,I,K,J,G,U,fa;j=h;n=k;l=e;q=c;m=b;p=d;g=a[(n+2|0)>>1]<<16>>16<<16;g=g+(a[(l+2|0)>>1]<<16>>16<<1)|0;E=fb(g);s=Cd(E,a[n>>1],a[l>>1],p);g=(g|0)>0?1:2;break;case 1:s=Hh(s);g=2;break;case 2:v=s>>16&65535;t=((s>>1)-
(v<<16>>16<<15)|0)&65535;u=la(s,p);a[m>>1]=u;s>>=4;a[((A|0)+2|0)>>1]=s>>16&65535;a[((C|0)+2|0)>>1]=((s>>1)-(a[((A|0)+2|0)>>1]<<16>>16<<15)|0)&65535;s=yc(v,t,v,t,p);s=fb(s);s=2147483647-s|0;g=s>>16&65535;s=((s>>1)-(g<<16>>16<<15)|0)&65535;s=yc(a[n>>1],a[l>>1],g,s,p);y=oa(s);s<<=y<<16>>16;u=s>>16&65535;w=((s>>1)-(u<<16>>16<<15)|0)&65535;o=2;g=3;break;case 3:g=(o<<16>>16|0)<=10?4:20;break;case 4:s=0;F=n+2|0;I=l+2|0;K=A+(((o<<16>>16)-1|0)<<1)|0;J=C+(((o<<16>>16)-1|0)<<1)|0;r=1;g=5;break;case 5:g=(r<<
16>>16|0)<(o<<16>>16|0)?6:8;break;case 6:g=a[F>>1]<<16>>16;var H=J;J=H-2|0;s=s+((g*(a[H>>1]<<16>>16)|0)>>15)|0;g=I;I=g+2|0;s=s+(((a[g>>1]<<16>>16)*(a[K>>1]<<16>>16)|0)>>15)|0;g=F;F=g+2|0;g=a[g>>1]<<16>>16;H=K;K=H-2|0;s=s+(g*(a[H>>1]<<16>>16)|0)|0;g=7;break;case 7:r=r+1&65535;g=5;break;case 8:s<<=5;g=(a[(n+(o<<16>>16<<1)|0)>>1]<<16>>16<<16)+(a[(l+(o<<16>>16<<1)|0)>>1]<<16>>16<<1)|0;s=s+g|0;g=fb(s);E=Cd(g,u,w,p);g=(s|0)>0?9:10;break;case 9:E=Hh(E);g=10;break;case 10:a:{v=E;t=y;E=void 0;for(E=0;;)switch(E){case 0:var L,
M,Z;L=v;M=t;Z=0;E=(M<<16>>16|0)>0?1:4;break;case 1:Z=L<<(M<<16>>16);E=(Z>>(M<<16>>16|0)|0)!=(L|0)?2:3;break;case 2:Z=L>>31^2147483647;E=3;break;case 3:E=7;break;case 4:M=(-(M<<16>>16)|0)&65535;E=(M<<16>>16|0)<31?5:6;break;case 5:Z=L>>(M<<16>>16|0);E=6;break;case 6:E=7;break;case 7:E=Z;break a;default:x(0,"bad label: "+E)}E=void 0}v=E>>16&65535;t=((E>>1)-(v<<16>>16<<15)|0)&65535;g=(o<<16>>16|0)<5?11:12;break;case 11:a[((m+(o<<16>>16<<1)|0)-2|0)>>1]=(E+32768|0)>>16&65535;g=12;break;case 12:g=void 0;
g=((v<<16>>16)-((v<<16>>16|0)<0&1)|0)&65535;g=(g<<16>>16^g<<16>>16>>15)&65535;g=(g<<16>>16|0)>32750?13:14;break;case 13:f=q;g=j|0;x(true,"memcpy given 22 bytes to copy. Problem with quantum=1 corrections perhaps?");na(f,g,22,1);f=m;N[f]=0;N[f+1]=0;N[f+2]=0;N[f+3]=0;N[f+4]=0;N[f+5]=0;N[f+6]=0;f=N[f+7]=0;g=25;break;case 14:K=A+(((o<<16>>16)-1|0)<<1)|0;J=C+(((o<<16>>16)-1|0)<<1)|0;G=z+2|0;U=D+2|0;r=1;g=15;break;case 15:g=(r<<16>>16|0)<(o<<16>>16|0)?16:18;break;case 16:s=v<<16>>16;g=J;J=g-2|0;s=(s*(a[g>>
1]<<16>>16)|0)>>15;s=s+(((t<<16>>16)*(a[K>>1]<<16>>16)|0)>>15)|0;g=v<<16>>16;H=K;K=H-2|0;s=s+(g*(a[H>>1]<<16>>16)|0)|0;s=s+((a[(A+(r<<16>>16<<1)|0)>>1]<<16>>16<<15)+(a[(C+(r<<16>>16<<1)|0)>>1]<<16>>16)|0)|0;a[G>>1]=s>>15&65535;g=s;H=G;G=H+2|0;g=(g-(a[H>>1]<<16>>16<<15)|0)&65535;H=U;U=H+2|0;a[H>>1]=g;g=17;break;case 17:r=r+1&65535;g=15;break;case 18:a[G>>1]=E>>20&65535;a[U>>1]=((E>>5)-(a[((z|0)+(o<<16>>16<<1)|0)>>1]<<16>>16<<15)|0)&65535;s=yc(v,t,v,t,p);s=fb(s);s=2147483647-s|0;g=s>>16&65535;s=((s>>
1)-(g<<16>>16<<15)|0)&65535;s=((u<<16>>16)*(s<<16>>16)|0)>>15;s=s+(((w<<16>>16)*(g<<16>>16)|0)>>15)|0;s=s+((u<<16>>16)*(g<<16>>16)|0)|0;s<<=1;r=oa(s);s<<=r<<16>>16;u=s>>16&65535;w=((s>>1)-(u<<16>>16<<15)|0)&65535;y=((y<<16>>16)+(r<<16>>16)|0)&65535;g=A+2|0;var H=z+2|0,ka=o<<16>>16<<1|0;x(ka%1===0,"memcpy given "+ka+" bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,H,ka,1);g=C+2|0;H=D+2|0;ka=o<<16>>16<<1|0;x(ka%1===0,"memcpy given "+ka+" bytes to copy. Problem with quantum=1 corrections perhaps?");
na(g,H,ka,1);g=19;break;case 19:o=o+1&65535;g=3;break;case 20:K=fa=q|0;fa=K+2|0;a[K>>1]=4096;K=A+2|0;J=C+2|0;o=1;g=21;break;case 21:g=(o<<16>>16|0)<=10?22:24;break;case 22:s=K;K=s+2|0;s=a[s>>1]<<16>>16<<15;g=J;J=g+2|0;s=s+(a[g>>1]<<16>>16)|0;g=(s+8192|0)>>14&65535;H=fa;fa=H+2|0;a[H>>1]=g;a[((j|0)+(o<<16>>16<<1)|0)>>1]=g;g=23;break;case 23:o=o+1&65535;g=21;break;case 24:f=0;g=25;break;case 25:return h=f,B=i,h;default:x(0,"bad label: "+g)}}function Hh(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=
(e|0)==-2147483648?1:2;break;case 1:var c=2147483647;k=3;break;case 2:c=-e|0;k=3;break;case 3:return e=c;default:x(0,"bad label: "+k)}}function Gd(h,k,e,c){var o;var m;var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n;d=h;i=k;g=e;f=c;b=(d|0)<=0?1:2;break;case 1:a[g>>1]=0;a[f>>1]=0;b=3;break;case 2:a[g>>1]=(30-(i<<16>>16)|0)&65535;d>>=10;j=d>>15&65535;b=d&32767;j=((j<<16>>16)-32|0)&65535;n=Ac+(j<<16>>16<<1)|0;m=(ga=M[n]|M[n+1]<<8,ga<<16>>16)<<16>>16<<16,n=m;var l=Ac+(j<<16>>16<<1)|0,l=(ga=M[l]|M[l+
1]<<8,ga<<16>>16)<<16>>16;j=Ac+(((j<<16>>16)+1|0)<<1)|0;o=(ga=M[j]|M[j+1]<<8,ga<<16>>16)<<16>>16,j=o;j=(l-j|0)&65535;n=n-(((j<<16>>16)*(b<<16>>16)|0)<<1)|0;a[f>>1]=n>>16&65535;b=3;break;case 3:return;default:x(0,"bad label: "+b)}}function Bc(h,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g,f,j;c=h;f=b=k;j=c|0;g=c=c+2|0;c=g+2|0;g=a[g>>1];e=f;f=e+2|0;a[e>>1]=g;g=4;e=1;break;case 1:e=(g<<16>>16|0)!=0?2:4;break;case 2:e=c;c=e+2|0;e=a[e>>1]<<16>>16;var n=j;j=n+2|0;e=(e-(a[n>>1]<<16>>16)|0)&65535;n=
f;f=n+2|0;a[n>>1]=e;e=c;c=e+2|0;e=a[e>>1]<<16>>16;n=j;j=n+2|0;e=(e-(a[n>>1]<<16>>16)|0)&65535;n=f;f=n+2|0;a[n>>1]=e;e=3;break;case 3:g=g-1&65535;e=1;break;case 4:a[f>>1]=(16384-(a[j>>1]<<16>>16)|0)&65535;f=b;g=10;e=5;break;case 5:e=(g<<16>>16|0)!=0?6:11;break;case 6:i=a[f>>1];d=((i<<16>>16)-1843|0)&65535;e=(d<<16>>16|0)>0?7:8;break;case 7:d=((d<<16>>16)*6242|0)>>15&65535;i=(1843-(d<<16>>16)|0)&65535;e=9;break;case 8:d=((i<<16>>16)*28160|0)>>15&65535;i=(3427-(d<<16>>16)|0)&65535;e=9;break;case 9:e=
i<<16>>16<<3&65535;n=f;f=n+2|0;a[n>>1]=e;e=10;break;case 10:g=g-1&65535;e=5;break;case 11:return;default:x(0,"bad label: "+e)}}function Za(a,k,e){var c;c=oa(a);Gd(a<<(c<<16>>16),c,k,e)}function Rf(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e|0)==0?2:1;break;case 1:k=(h[e>>2]|0)==0?2:3;break;case 2:k=4;break;case 3:a:{k=h[e>>2]|0;for(var c=void 0,c=0;;)switch(c){case 0:var b;b=k;c=(b|0)==0?2:1;break;case 1:c=(h[b>>2]|0)==0?2:3;break;case 2:c=4;break;case 3:wa(h[b>>2]);h[b>>2]=0;c=4;break;case 4:break a;
default:x(0,"bad label: "+c)}}wa(h[e>>2]);h[e>>2]=0;k=4;break;case 4:return;default:x(0,"bad label: "+k)}}function Sf(a){var k;for(k=0;;)switch(k){case 0:var e,c;c=a;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:Qf(h[(c|0)>>2]);e=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function Yf(a,k,e,c,b,d,i){var g=B;B+=56;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o=g,r=g+8,s=g+32,v,t;j=a;f=k;n=e;l=c;q=b;m=d;p=i;v=h[(m+112|0)>>
2];t=h[(m+116|0)>>2];m=h[(m+108|0)>>2];f=(f|0)==7?1:2;break;case 1:ec(l,10,s|0,r|0,v,p);xc(10,s|0,r|0,p);zc(h[(j|0)>>2],s|0,r|0,q+22|0,o|0,p);ec(l,10,s|0,r|0,t,p);xc(10,s|0,r|0,p);zc(h[(j|0)>>2],s|0,r|0,q+66|0,o|0,p);f=3;break;case 2:ec(n,10,s|0,r|0,m,p);xc(10,s|0,r|0,p);zc(h[(j|0)>>2],s|0,r|0,q+66|0,o|0,p);f=3;break;case 3:B=g;return;default:x(0,"bad label: "+f)}}function Se(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;e=(b<<16>>16|0)>31?1:2;break;case 1:d=0;e=7;break;case 2:a:{e=c;d=
b;for(var i=void 0,i=0;;)switch(i){case 0:var g,f,j;g=e;f=d;j=0;i=(f<<16>>16|0)>0?1:4;break;case 1:i=(f<<16>>16|0)<31?2:3;break;case 2:j=g>>(f<<16>>16|0);i=3;break;case 3:i=7;break;case 4:f=(-(f<<16>>16)|0)&65535;j=g<<(f<<16>>16);i=(j>>(f<<16>>16|0)|0)!=(g|0)?5:6;break;case 5:j=g>>31^2147483647;i=6;break;case 6:i=7;break;case 7:d=j;break a;default:x(0,"bad label: "+i)}d=void 0}e=(b<<16>>16|0)>0?3:6;break;case 3:e=(c&1<<((b<<16>>16)-1|0)|0)!=0?4:5;break;case 4:d=d+1|0;e=5;break;case 5:e=6;break;case 6:e=
7;break;case 7:return d;default:x(0,"bad label: "+e)}}function sg(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;b=a;d=k;e=(b|0)==0?1:2;break;case 1:c=-1;e=3;break;case 2:ua(b|0,d,20,1,0);c=0;e=3;break;case 3:return c;default:x(0,"bad label: "+e)}}function sd(R,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g;b=R;d=k;i=e;g=0;c=1;break;case 1:c=(g<<16>>16|0)<10?2:4;break;case 2:var f=c=a[((b|0)+(g<<16>>16<<1)|0)>>1]<<16>>16<<16;c=i;var j=void 0;a:{for(var j=a[((b|0)+(g<<16>>16<<1)|0)>>1],n=c,l=void 0,
l=0;;)switch(l){case 0:var q,m;q=j;m=n;q=5243*(q<<16>>16)|0;l=(q|0)!=1073741824?1:2;break;case 1:q<<=1;l=3;break;case 2:h[m>>2]=1;q=2147483647;l=3;break;case 3:j=q;break a;default:x(0,"bad label: "+l)}j=void 0}a:{n=void 0;for(n=0;;)switch(n){case 0:var p,o,r;p=f;n=j;o=c;r=p-n|0;n=((p^n)>>31|0)!=0?1:4;break;case 1:n=((r^p)&-2147483648|0)!=0?2:3;break;case 2:r=(p>>31|0)!=0?-2147483648:2147483647;h[o>>2]=1;n=3;break;case 3:n=4;break;case 4:j=r;break a;default:x(0,"bad label: "+n)}j=void 0}c=j;c=Ih(c,
5243,a[(d+(g<<16>>16<<1)|0)>>1],i);c=la(c,i);a[((b|0)+(g<<16>>16<<1)|0)>>1]=c;c=3;break;case 3:g=g+1&65535;c=1;break;case 4:return;default:x(0,"bad label: "+c)}}function Ih(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;
b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function Wd(R,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g;c=R;d=b=k;b=d+4|0;h[d>>2]=16777216;d=c;c=d+2|0;d=(-(a[d>>1]<<16>>16)|0)<<10;e=b;b=e+4|0;h[e>>2]=d;c=c+2|0;d=2;e=1;break;case 1:e=(d<<16>>16|0)<=5?2:8;break;case 2:h[b>>2]=h[(b-8|0)>>2];i=1;e=3;break;case 3:e=(i<<16>>16|0)<(d<<16>>16|0)?4:6;break;case 4:g=h[(b-4|0)>>2]>>16&65535;e=((h[(b-4|0)>>2]>>1)-(g<<16>>16<<15)|0)&65535;g=(g<<16>>16)*(a[c>>1]<<16>>16)|0;g=g+(((e<<16>>16)*(a[c>>
1]<<16>>16)|0)>>15)|0;e=b;h[e>>2]=h[e>>2]+h[(b-8|0)>>2]|0;e=g<<2;g=b;b=g-4|0;h[g>>2]=h[g>>2]-e|0;e=5;break;case 5:i=i+1&65535;e=3;break;case 6:e=c;c=e+2|0;g=b;h[g>>2]=h[g>>2]-(a[e>>1]<<16>>16<<10)|0;b=b+(d<<16>>16<<2)|0;c=c+2|0;e=7;break;case 7:d=d+1&65535;e=1;break;case 8:return;default:x(0,"bad label: "+e)}}function Fa(h,k,e){var l;var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f;b=h;d=k;i=e;g=0;c=1;break;case 1:c=(g<<16>>16|0)<(i<<16>>16|0)?2:4;break;case 2:c=a[(b+(g<<16>>16<<1)|0)>>1]<<16>>16>>
8&65535;f=a[(b+(g<<16>>16<<1)|0)>>1]<<16>>16&255;var j=vb+(((c<<16>>16)+1|0)<<1)|0,j=(ga=M[j]|M[j+1]<<8,ga<<16>>16)<<16>>16,n=vb+(c<<16>>16<<1)|0,n=(ga=M[n]|M[n+1]<<8,ga<<16>>16)<<16>>16;f=((j-n|0)*(f<<16>>16)|0)>>8;c=vb+(c<<16>>16<<1)|0;l=(ga=M[c]|M[c+1]<<8,ga<<16>>16)<<16>>16,c=l;a[(d+(g<<16>>16<<1)|0)>>1]=(c+((f&65535)<<16>>16)|0)&65535;c=3;break;case 3:g=g+1&65535;c=1;break;case 4:return;default:x(0,"bad label: "+c)}}function ub(h,k,e){var m;var l;var c;for(c=0;;)switch(c){case 0:var b,d,i,g,
f;b=h;d=k;i=e;b=b+(((i<<16>>16)-1|0)<<1)|0;f=d+(((i<<16>>16)-1|0)<<1)|0;d=63;i=((i<<16>>16)-1|0)&65535;c=1;break;case 1:c=(i<<16>>16|0)>=0?2:7;break;case 2:g=b;b=g-2|0;g=a[g>>1];c=3;break;case 3:c=vb+(d<<16>>16<<1)|0;l=((ga=M[c]|M[c+1]<<8,ga<<16>>16)<<16>>16|0)<(g<<16>>16|0)?4:5,c=l;break;case 4:d=d-1&65535;c=3;break;case 5:c=g<<16>>16;var j=vb+(d<<16>>16<<1)|0,j=(ga=M[j]|M[j+1]<<8,ga<<16>>16)<<16>>16;c=c-j|0;j=Jh+(d<<16>>16<<1)|0;m=(ga=M[j]|M[j+1]<<8,ga<<16>>16)<<16>>16,j=m;c=c*j|0;c=(c+2048|0)>>
12;c=(((c&65535)<<16>>16)+(d<<16>>16<<8)|0)&65535;j=f;f=j-2|0;a[j>>1]=c;c=6;break;case 6:i=i-1&65535;c=1;break;case 7:return;default:x(0,"bad label: "+c)}}function ya(R,k,e){var c=B;B+=48;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j=c,n=c+24,l,q,m;d=R;i=k;g=e;q=i|0;Wd(d|0,j|0,g);Wd(d+2|0,n|0,g);g=j+20|0;m=n+20|0;d=5;b=1;break;case 1:b=(d<<16>>16|0)>0?2:4;break;case 2:b=h[(j+(((d<<16>>16)-1|0)<<2)|0)>>2];l=g;g=l-4|0;h[l>>2]=h[l>>2]+b|0;b=
h[(n+(((d<<16>>16)-1|0)<<2)|0)>>2];l=m;m=l-4|0;h[l>>2]=h[l>>2]-b|0;b=3;break;case 3:d=d-1&65535;b=1;break;case 4:f=q;q=f+2|0;a[f>>1]=4096;g=j+4|0;m=n+4|0;d=1;f=10;b=5;break;case 5:b=(d<<16>>16|0)<=5?6:8;break;case 6:b=h[g>>2]+h[m>>2]|0;l=g;g=l+4|0;l=h[l>>2];var p=m;m=p+4|0;l=l-h[p>>2]|0;b=b+4096|0;l=l+4096|0;b=b>>13&65535;p=q;q=p+2|0;a[p>>1]=b;a[(i+(f<<16>>16<<1)|0)>>1]=l>>13&65535;b=7;break;case 7:d=d+1&65535;f=f-1&65535;b=5;break;case 8:B=c;return;default:x(0,"bad label: "+b)}}function kd(a){var k;
for(k=0;;)switch(k){case 0:var e,c;c=a;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:k=c|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(k,Md,20,1);k=c+20|0;e=c|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(k,e,20,1);Mf(h[(c+40|0)>>2]);e=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function Zf(a,k,e,c,b,d,i,g){var f=B;B+=64;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,
l,q,m,p,o,r,s,v=f,t=f+20,u=f+40,w=f+60;n=a;l=k;q=e;m=c;p=b;o=d;r=i;s=g;j=(l|0)==7?1:4;break;case 1:fc(m+22|0,t|0,n|0,s);fc(m+66|0,o,t|0,s);Ch(n|0,t|0,o,m,s);j=(q|0)!=8?2:3;break;case 2:Kh(h[(n+40|0)>>2],t|0,o,u|0,v|0,h[r>>2],s);vd(n+20|0,u|0,v|0,p,s);j=r;h[j>>2]=h[j>>2]+10|0;j=3;break;case 3:j=7;break;case 4:fc(m+66|0,o,n|0,s);Dh(n|0,o,m,s);j=(q|0)!=8?5:6;break;case 5:Ed(h[(n+40|0)>>2],l,o,v|0,h[r>>2],w,s);ud(n+20|0,v|0,p,s);j=r;h[j>>2]=h[j>>2]+6|0;j=6;break;case 6:j=7;break;case 7:j=n|0;var y=o;
x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(j,y,20,1);j=(q|0)!=8?8:9;break;case 8:j=n+20|0;y=v|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(j,y,20,1);j=9;break;case 9:B=f;return;default:x(0,"bad label: "+j)}}function Xd(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;b=b+16384|0;b>>=15;b|=-(b&65536)|0;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=5;break;case 2:c=(b|
0)<-32768?3:4;break;case 3:h[d>>2]=1;b=-32768;c=4;break;case 4:c=5;break;case 5:return b&65535;default:x(0,"bad label: "+c)}}function oa(a){var k;for(k=0;;)switch(k){case 0:var e,c;e=a;c=0;k=(e|0)!=0?1:11;break;case 1:k=e-((e|0)<0&1)|0;e=k^k>>31;k=2;break;case 2:k=(1073741824&e|0)!=0^1?3:10;break;case 3:c=c+1&65535;k=(536870912&e|0)!=0?4:5;break;case 4:k=10;break;case 5:c=c+1&65535;k=(268435456&e|0)!=0?6:7;break;case 6:k=10;break;case 7:c=c+1&65535;k=(134217728&e|0)!=0?8:9;break;case 8:k=10;break;
case 9:c=c+1&65535;e<<=4;k=2;break;case 10:k=11;break;case 11:return c;default:x(0,"bad label: "+k)}}function db(a){var k;for(k=0;;)switch(k){case 0:var e,c;e=a;c=0;k=e<<16>>16!=0?1:11;break;case 1:k=((e<<16>>16)-((e<<16>>16|0)<0&1)|0)&65535;e=(k<<16>>16^k<<16>>16>>15)&65535;k=2;break;case 2:k=(16384&e<<16>>16|0)!=0^1?3:10;break;case 3:c=c+1&65535;k=(8192&e<<16>>16|0)!=0?4:5;break;case 4:k=10;break;case 5:c=c+1&65535;k=(4096&e<<16>>16|0)!=0?6:7;break;case 6:k=10;break;case 7:c=c+1&65535;k=(2048&e<<
16>>16|0)!=0?8:9;break;case 8:k=10;break;case 9:c=c+1&65535;e=e<<16>>16<<4&65535;k=2;break;case 10:k=11;break;case 11:return c;default:x(0,"bad label: "+k)}}function tg(h){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:b=0;k=3;break;case 3:k=(b<<16>>16|0)<5?4:6;break;case 4:a[((c|0)+(b<<16>>16<<1)|0)>>1]=0;k=5;break;case 5:b=b+1&65535;k=3;break;case 6:a[(c+10|0)>>1]=0;a[(c+12|0)>>1]=0;a[(c+14|0)>>1]=0;e=a[(c+16|0)>>1]=0;k=7;break;case 7:return e;default:x(0,
"bad label: "+k)}}function pd(h,k,e,c,b,d,i,g,f,j){var n;for(n=0;;)switch(n){case 0:var l,q,m,p,o,r,s,v,t,u;l=h;q=k;m=e;p=c;o=b;r=d;s=i;v=g;t=f;u=j;n=(m|0)!=6?1:2;break;case 1:a[(s|0)>>1]=0;a[(s+2|0)>>1]=0;n=2;break;case 2:n=(m|0)==0?4:3;break;case 3:n=(m|0)==1?4:5;break;case 4:n=Cc(q,m,p,20,143,160,v,t,u);a[o>>1]=n;n=12;break;case 5:n=m>>>0<=5?6:7;break;case 6:n=Cc(q,m,p,20,143,80,v,t,u);a[o>>1]=n;n=11;break;case 7:n=(m|0)==6?8:9;break;case 8:n=Lh(l,q,p,20,143,80,r,s,v,t,u);a[o>>1]=n;n=10;break;
case 9:n=Cc(q,m,p,18,143,80,v,t,u);a[o>>1]=n;n=10;break;case 10:n=11;break;case 11:n=12;break;case 12:return;default:x(0,"bad label: "+n)}}function Hf(h){var k;for(k=0;;)switch(k){case 0:var e,c;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:e=a[(c|0)>>1]=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function Fg(R,k,e,c,b,d,i,g,f,j){var n=B;B+=160;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var l;for(l=0;;)switch(l){case 0:var q,m,p,o,r,s,v,t,u,w,y,A,C,z,D=n,E=n+80,
F,I,K,J,G,U,H,N,L,M,Z,ka;q=R;m=k;p=e;o=c;r=b;s=d;v=i;t=g;u=f;w=j;M=h[(u+120|0)>>2];Z=h[(u+124|0)>>2];ka=h[(u+128|0)>>2];u=h[(u+132|0)>>2];a[((q|0)+8|0)>>1]=a[((q|0)+6|0)>>1];a[((q|0)+6|0)>>1]=a[((q|0)+4|0)>>1];a[((q|0)+4|0)>>1]=a[((q|0)+2|0)>>1];a[((q|0)+2|0)>>1]=a[(q|0)>>1];a[(q|0)>>1]=r;l=(r<<16>>16|0)<14746?1:5;break;case 1:l=(r<<16>>16|0)>9830?2:3;break;case 2:z=1;l=4;break;case 3:z=0;l=4;break;case 4:l=6;break;case 5:z=2;l=6;break;case 6:C=(a[(q+12|0)>>1]<<16>>16<<14|0)<<1;l=(C|0)>536870911?
7:8;break;case 7:h[w>>2]=1;C=2147483647;l=12;break;case 8:l=(C|0)<-536870912?9:10;break;case 9:h[w>>2]=1;C=-2147483648;l=11;break;case 10:C<<=2;l=11;break;case 11:l=12;break;case 12:l=la(C,w);l=(o<<16>>16|0)>(l<<16>>16|0)?13:14;break;case 13:a[(q+16|0)>>1]=2;l=17;break;case 14:l=(a[(q+16|0)>>1]<<16>>16|0)>0?15:16;break;case 15:l=q+16|0;a[l>>1]=((a[l>>1]<<16>>16)-1|0)&65535;l=16;break;case 16:l=17;break;case 17:l=(a[(q+16|0)>>1]<<16>>16|0)==0?18:27;break;case 18:y=A=0;l=19;break;case 19:l=(y<<16>>
16|0)<5?20:24;break;case 20:l=(a[((q|0)+(y<<16>>16<<1)|0)>>1]<<16>>16|0)<9830?21:22;break;case 21:A=((A<<16>>16)+1|0)&65535;l=22;break;case 22:l=23;break;case 23:y=y+1&65535;l=19;break;case 24:l=(A<<16>>16|0)>2?25:26;break;case 25:z=0;l=26;break;case 26:l=27;break;case 27:l=(z<<16>>16|0)>((a[(q+10|0)>>1]<<16>>16)+1|0)?28:30;break;case 28:l=(a[(q+16|0)>>1]<<16>>16|0)==0?29:30;break;case 29:z=((z<<16>>16)-1|0)&65535;l=30;break;case 30:l=(z<<16>>16|0)<2?31:33;break;case 31:l=(a[(q+16|0)>>1]<<16>>16|
0)>0?32:33;break;case 32:z=((z<<16>>16)+1|0)&65535;l=33;break;case 33:l=(o<<16>>16|0)<10?34:35;break;case 34:z=2;l=35;break;case 35:l=(a[(q+14|0)>>1]<<16>>16|0)==1?36:37;break;case 36:z=0;l=37;break;case 37:a[(q+10|0)>>1]=z;a[(q+12|0)>>1]=o;l=(m|0)!=7?38:69;break;case 38:l=(m|0)!=6?39:69;break;case 39:l=(m|0)!=4?40:69;break;case 40:l=(z<<16>>16|0)<2?41:69;break;case 41:F=0;G=s|0;U=D|0;y=0;l=42;break;case 42:l=(y<<16>>16|0)<40?43:47;break;case 43:l=(a[G>>1]<<16>>16|0)!=0?44:45;break;case 44:a[(E+(F<<
16>>16<<1)|0)>>1]=y;F=((F<<16>>16)+1|0)&65535;l=45;break;case 45:l=a[G>>1];var Q=U;U=Q+2|0;a[Q>>1]=l;l=G;G=l+2|0;a[l>>1]=0;l=46;break;case 46:y=y+1&65535;l=42;break;case 47:l=(m|0)==5?48:52;break;case 48:l=(z<<16>>16|0)==0?49:50;break;case 49:J=M;l=51;break;case 50:J=Z;l=51;break;case 51:l=56;break;case 52:l=(z<<16>>16|0)==0?53:54;break;case 53:J=ka;l=55;break;case 54:J=u;l=55;break;case 55:l=56;break;case 56:I=0;l=57;break;case 57:l=(I<<16>>16|0)<(F<<16>>16|0)?58:68;break;case 58:K=a[(E+(I<<16>>
16<<1)|0)>>1];L=a[(D+(K<<16>>16<<1)|0)>>1];G=s+(K<<16>>16<<1)|0;N=J;y=K;l=59;break;case 59:l=(y<<16>>16|0)<40?60:62;break;case 60:C=L<<16>>16;l=N;N=l+2|0;C=(C*(a[l>>1]<<16>>16)|0)>>15;l=C&65535;l=$(a[G>>1],l,w);a[G>>1]=l;G=G+2|0;l=61;break;case 61:y=y+1&65535;l=59;break;case 62:G=s|0;y=0;l=63;break;case 63:l=(y<<16>>16|0)<(K<<16>>16|0)?64:66;break;case 64:C=L<<16>>16;l=N;N=l+2|0;C=(C*(a[l>>1]<<16>>16)|0)>>15;l=C&65535;l=$(a[G>>1],l,w);a[G>>1]=l;G=G+2|0;l=65;break;case 65:y=y+1&65535;l=63;break;case 66:l=
67;break;case 67:I=I+1&65535;l=57;break;case 68:l=69;break;case 69:G=s|0;H=p|0;y=0;l=70;break;case 70:l=(y<<16>>16|0)<40?71:73;break;case 71:a:{C=a[(p+(y<<16>>16<<1)|0)>>1];l=v;for(var Q=w,T=void 0,T=0;;)switch(T){case 0:var X,S;X=C;T=l;S=Q;X=(X<<16>>16)*(T<<16>>16)|0;T=(X|0)!=1073741824?1:2;break;case 1:X<<=1;T=3;break;case 2:h[S>>2]=1;X=2147483647;T=3;break;case 3:C=X;break a;default:x(0,"bad label: "+T)}C=void 0}l=G;G=l+2|0;l=((a[l>>1]<<16>>16)*(o<<16>>16)|0)<<1;a:{Q=w;T=void 0;for(T=0;;)switch(T){case 0:var P,
O,Y;P=C;T=l;O=Q;Y=P+T|0;T=(P^T|0)>=0?1:4;break;case 1:T=((Y^P)>>31|0)!=0?2:3;break;case 2:Y=(P>>31|0)!=0?-2147483648:2147483647;h[O>>2]=1;T=3;break;case 3:T=4;break;case 4:C=Y;break a;default:x(0,"bad label: "+T)}C=void 0}a:{l=t;Q=void 0;for(Q=0;;)switch(Q){case 0:var ca,V,aa;ca=C;V=l;aa=0;Q=(V<<16>>16|0)>0?1:4;break;case 1:aa=ca<<(V<<16>>16);Q=(aa>>(V<<16>>16|0)|0)!=(ca|0)?2:3;break;case 2:aa=ca>>31^2147483647;Q=3;break;case 3:Q=7;break;case 4:V=(-(V<<16>>16)|0)&65535;Q=(V<<16>>16|0)<31?5:6;break;
case 5:aa=ca>>(V<<16>>16|0);Q=6;break;case 6:Q=7;break;case 7:C=aa;break a;default:x(0,"bad label: "+Q)}C=void 0}l=la(C,w);Q=H;H=Q+2|0;a[Q>>1]=l;l=72;break;case 72:y=y+1&65535;l=70;break;case 73:B=n;return;default:x(0,"bad label: "+l)}}function Dc(h,k,e,c,b,d,i){var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m;g=h;f=k;j=e;n=c;l=b;q=d;m=i;f=((g<<16>>16)-(f<<16>>16)|0)&65535;g=(f<<16>>16|0)<(n<<16>>16|0)?1:2;break;case 1:f=n;g=2;break;case 2:a[q>>1]=f;f=((f<<16>>16)+(j<<16>>16)|0)&65535;g=(f<<16>>16|
0)>(l<<16>>16|0)?3:4;break;case 3:f=l;a[q>>1]=((l<<16>>16)-(j<<16>>16)|0)&65535;g=4;break;case 4:a[m>>1]=f;return;default:x(0,"bad label: "+g)}}function Jf(h,k,e,c,b,d,i,g,f,j,n,l){var q=B;B+=96;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var m;for(m=0;;)switch(m){case 0:var p,o,r,s,v,t,u,w,y,A,C,z,D,E,F=q,I=q+4,K=q+8,J=q+12,G,U,H=q+16,N,L,M,Z,ka,Q,T,X,S,P,O;p=h;o=k;r=e;s=c;v=b;t=d;u=i;w=g;y=f;A=j;C=n;z=l;a[F>>1]=0;N=a[(Qa+o*18|0)>>1];L=a[((Qa+o*18|0)+2|0)>>1];a[J>>1]=a[((Qa+o*18|0)+
4|0)>>1];Z=a[((Qa+o*18|0)+6|0)>>1];ka=a[((Qa+o*18|0)+8|0)>>1];Q=a[((Qa+o*18|0)+10|0)>>1];T=a[((Qa+o*18|0)+12|0)>>1];X=a[((Qa+o*18|0)+14|0)>>1];S=a[((Qa+o*18|0)+16|0)>>1];O=1;m=(w<<16>>16|0)==0?2:1;break;case 1:m=(w<<16>>16|0)==80?2:10;break;case 2:m=(o|0)!=0?3:4;break;case 3:m=(o|0)!=1?5:4;break;case 4:m=(w<<16>>16|0)!=80?5:8;break;case 5:O=0;P=1;m=(w<<16>>16|0)==0?6:7;break;case 6:P=0;m=7;break;case 7:Dc(a[(r+(P<<16>>16<<1)|0)>>1],ka,Q,S,143,F,I,z);m=9;break;case 8:Dc(a[(p|0)>>1],T,X,S,143,F,I,z);
m=9;break;case 9:m=11;break;case 10:Dc(a[(p|0)>>1],T,X,S,143,F,I,z);m=11;break;case 11:D=((a[F>>1]<<16>>16)-4|0)&65535;E=((a[I>>1]<<16>>16)+4|0)&65535;U=H+((-(D<<16>>16)|0)<<1)|0;Mh(s,v,t,u,D,E,U,z);E=a[(U+(a[F>>1]<<16>>16<<1)|0)>>1];a[K>>1]=a[F>>1];D=((a[F>>1]<<16>>16)+1|0)&65535;m=12;break;case 12:m=(D<<16>>16|0)<=(a[I>>1]<<16>>16|0)?13:17;break;case 13:m=(a[(U+(D<<16>>16<<1)|0)>>1]<<16>>16|0)>=(E<<16>>16|0)?14:15;break;case 14:E=a[(U+(D<<16>>16<<1)|0)>>1];a[K>>1]=D;m=15;break;case 15:m=16;break;
case 16:D=D+1&65535;m=12;break;case 17:m=(O<<16>>16|0)==0?18:20;break;case 18:m=(a[K>>1]<<16>>16|0)>(N<<16>>16|0)?19:20;break;case 19:a[J>>1]=0;m=42;break;case 20:m=(O<<16>>16|0)!=0?21:40;break;case 21:m=(o|0)==0?25:22;break;case 22:m=(o|0)==1?25:23;break;case 23:m=(o|0)==2?25:24;break;case 24:m=(o|0)==3?25:40;break;case 25:G=a[(p|0)>>1];m=((G<<16>>16)-(a[F>>1]<<16>>16)|0)>5?26:27;break;case 26:G=((a[F>>1]<<16>>16)+5|0)&65535;m=27;break;case 27:m=((a[I>>1]<<16>>16)-(G<<16>>16)|0)>4?28:29;break;case 28:G=
((a[I>>1]<<16>>16)-4|0)&65535;m=29;break;case 29:m=(a[K>>1]<<16>>16|0)==(G<<16>>16|0)?31:30;break;case 30:m=(a[K>>1]<<16>>16|0)==((G<<16>>16)-1|0)?31:32;break;case 31:Xb(K,J,Z,U,L,z);m=39;break;case 32:m=(a[K>>1]<<16>>16|0)==((G<<16>>16)-2|0)?33:34;break;case 33:a[J>>1]=0;Xb(K,J,Z,U,L,z);m=38;break;case 34:m=(a[K>>1]<<16>>16|0)==((G<<16>>16)+1|0)?35:36;break;case 35:Z=0;Xb(K,J,Z,U,L,z);m=37;break;case 36:a[J>>1]=0;m=37;break;case 37:m=38;break;case 38:m=39;break;case 39:m=41;break;case 40:Xb(K,J,
Z,U,L,z);m=41;break;case 41:m=42;break;case 42:m=(L<<16>>16|0)!=0?43:49;break;case 43:M=0;m=(o|0)==0?47:44;break;case 44:m=(o|0)==1?47:45;break;case 45:m=(o|0)==2?47:46;break;case 46:m=(o|0)==3?47:48;break;case 47:M=1;m=48;break;case 48:m=Ug(a[K>>1],a[J>>1],a[(p|0)>>1],a[F>>1],a[I>>1],O,M,z);a[C>>1]=m;m=50;break;case 49:m=Vg(a[K>>1],a[J>>1],a[F>>1],O,z);a[C>>1]=m;m=50;break;case 50:return a[(p|0)>>1]=a[K>>1],a[A>>1]=L,a[y>>1]=a[J>>1],h=a[K>>1],B=q,h;default:x(0,"bad label: "+m)}}function Nh(a,k,e,
c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,h;d=a;i=k;g=e;f=c;j=(d<<16>>16)*(g<<16>>16)|0;b=(j|0)!=1073741824?1:2;break;case 1:j<<=1;b=3;break;case 2:j=2147483647;b=3;break;case 3:b=((d<<16>>16)*(f<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?4:7;break;case 4:b=((h^j)>>31|0)!=0?5:6;break;case 5:h=(j>>31|0)!=0?-2147483648:2147483647;b=6;break;case 6:b=7;break;case 7:j=h;b=((i<<16>>16)*(g<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?8:11;break;case 8:b=((h^j)>>31|0)!=0?9:10;break;case 9:h=(j>>31|0)!=
0?-2147483648:2147483647;b=10;break;case 10:b=11;break;case 11:return h;default:x(0,"bad label: "+b)}}function Mh(h,k,e,c,b,d,i,g){var f=B;B+=160;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z=f,D,E,F,I=f+80,K,J,G,U,H;n=h;l=k;q=e;m=c;p=b;o=d;r=i;s=g;u=(-(p<<16>>16)|0)&65535;Kb(n+(u<<16>>16<<1)|0,q,z|0,m);w=0;K=I|0;J=z|0;t=m<<16>>16>>1&65535;j=1;break;case 1:j=(t<<16>>16|0)!=0?2:4;break;case 2:G=J;J=G+2|0;G=a[G>>1];j=G<<
16>>16>>2&65535;y=K;K=y+2|0;a[y>>1]=j;w=w+((G<<16>>16)*(G<<16>>16)|0)|0;G=J;J=G+2|0;G=a[G>>1];j=G<<16>>16>>2&65535;y=K;K=y+2|0;a[y>>1]=j;w=w+((G<<16>>16)*(G<<16>>16)|0)|0;j=3;break;case 3:t=t-1&65535;j=1;break;case 4:j=(w|0)<=33554432?5:6;break;case 5:F=z|0;E=12;D=0;j=7;break;case 6:F=I|0;E=14;D=2;j=7;break;case 7:v=p;j=8;break;case 8:j=(v<<16>>16|0)<=(o<<16>>16|0)?9:20;break;case 9:w=C=0;U=l;K=F;t=m<<16>>16>>1&65535;j=10;break;case 10:j=t;t=j-1&65535;j=j<<16>>16!=0?11:12;break;case 11:j=U;U=j+2|
0;w=w+((a[j>>1]<<16>>16)*(a[K>>1]<<16>>16)|0)|0;C=C+((a[K>>1]<<16>>16)*(a[K>>1]<<16>>16)|0)|0;K=K+2|0;j=U;U=j+2|0;w=w+((a[j>>1]<<16>>16)*(a[K>>1]<<16>>16)|0)|0;C=C+((a[K>>1]<<16>>16)*(a[K>>1]<<16>>16)|0)|0;K=K+2|0;j=10;break;case 12:C<<=1;C=Xa(C,s);y=C>>16&65535;A=((C>>1)-(y<<16>>16<<15)|0)&65535;j=w>>15&65535;w=(w-(j<<16>>16<<15)|0)&65535;w=Nh(j,w,y,A,s);a[(r+(v<<16>>16<<1)|0)>>1]=w&65535;j=(v<<16>>16|0)!=(o<<16>>16|0)?13:18;break;case 13:u=u-1&65535;G=a[(n+(u<<16>>16<<1)|0)>>1];K=F+(((m<<16>>16)-
1|0)<<1)|0;H=q+(((m<<16>>16)-1|0)<<1)|0;J=F+(((m<<16>>16)-2|0)<<1)|0;t=((m<<16>>16)-1|0)>>1&65535;j=14;break;case 14:j=(t<<16>>16|0)!=0?15:17;break;case 15:w=G<<16>>16;j=H;H=j-2|0;w=(w*(a[j>>1]<<16>>16)|0)>>(E<<16>>16|0);w=(w&65535)<<16>>16;j=J;J=j-2|0;w=(w+(a[j>>1]<<16>>16)|0)&65535;j=K;K=j-2|0;a[j>>1]=w;w=G<<16>>16;j=H;H=j-2|0;w=(w*(a[j>>1]<<16>>16)|0)>>(E<<16>>16|0);j=(w&65535)<<16>>16;y=J;J=y-2|0;j=(j+(a[y>>1]<<16>>16)|0)&65535;y=K;K=y-2|0;a[y>>1]=j;j=16;break;case 16:t=t-1&65535;j=14;break;case 17:w=
((G<<16>>16)*(a[H>>1]<<16>>16)|0)>>(E<<16>>16|0);j=(((w&65535)<<16>>16)+(a[J>>1]<<16>>16)|0)&65535;y=K;K=y-2|0;a[y>>1]=j;a[K>>1]=G<<16>>16>>(D<<16>>16|0)&65535;j=18;break;case 18:j=19;break;case 19:v=v+1&65535;j=8;break;case 20:B=f;return;default:x(0,"bad label: "+j)}}function Xb(h,k,e,c,b,d){var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o;g=h;f=k;j=e;n=c;l=b;q=d;p=Ud(n+(a[g>>1]<<16>>16<<1)|0,a[f>>1],l,q);m=((a[f>>1]<<16>>16)+1|0)&65535;i=1;break;case 1:i=(m<<16>>16|0)<=(j<<16>>16|0)?2:6;break;
case 2:o=Ud(n+(a[g>>1]<<16>>16<<1)|0,m,l,q);i=(o<<16>>16|0)>(p<<16>>16|0)?3:4;break;case 3:p=o;a[f>>1]=m;i=4;break;case 4:i=5;break;case 5:m=m+1&65535;i=1;break;case 6:i=(l<<16>>16|0)==0?7:10;break;case 7:i=(a[f>>1]<<16>>16|0)==-3?8:9;break;case 8:a[f>>1]=3;i=g;a[i>>1]=a[i>>1]-1&65535;i=9;break;case 9:i=15;break;case 10:i=(a[f>>1]<<16>>16|0)==-2?11:12;break;case 11:a[f>>1]=1;i=g;a[i>>1]=a[i>>1]-1&65535;i=12;break;case 12:i=(a[f>>1]<<16>>16|0)==2?13:14;break;case 13:a[f>>1]=-1;i=g;a[i>>1]=a[i>>1]+
1&65535;i=14;break;case 14:i=15;break;case 15:return;default:x(0,"bad label: "+i)}}function Oh(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,h;d=a;i=k;g=e;f=c;j=(d<<16>>16)*(g<<16>>16)|0;b=(j|0)!=1073741824?1:2;break;case 1:j<<=1;b=3;break;case 2:j=2147483647;b=3;break;case 3:b=((d<<16>>16)*(f<<16>>16)|0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?4:7;break;case 4:b=((h^j)>>31|0)!=0?5:6;break;case 5:h=(j>>31|0)!=0?-2147483648:2147483647;b=6;break;case 6:b=7;break;case 7:j=h;b=((i<<16>>16)*(g<<16>>16)|
0)>>15;h=j+(b<<1)|0;b=(j^b|0)>0?8:11;break;case 8:b=((h^j)>>31|0)!=0?9:10;break;case 9:h=(j>>31|0)!=0?-2147483648:2147483647;b=10;break;case 10:b=11;break;case 11:return h;default:x(0,"bad label: "+b)}}function Ec(R,k,e,c,b,d,i,g,f,j,n){var l;for(l=0;;)switch(l){case 0:var q,m,p,o,r,s,v,t,u,w,y,A,C,z,D,B,F,I,K;q=R;m=k;p=e;o=c;r=b;s=d;v=i;t=g;u=f;w=j;y=n;m=m+((-(v<<16>>16)|0)<<2)|0;C=-2147483648;F=v;l=1;break;case 1:l=(v<<16>>16|0)>=(t<<16>>16|0)?2:6;break;case 2:l=m;m=l+4|0;l=(h[l>>2]|0)>=(C|0)?3:
4;break;case 3:C=m=m-4|0;m=C+4|0;C=h[C>>2];F=v;l=4;break;case 4:l=5;break;case 5:v=v-1&65535;l=1;break;case 6:z=0;A=p+((-(F<<16>>16)|0)<<1)|0;v=s<<16>>16>>2&65535;l=7;break;case 7:l=(v<<16>>16|0)!=0?8:10;break;case 8:z=z+((a[A>>1]<<16>>16)*(a[A>>1]<<16>>16)|0)|0;A=A+2|0;z=z+((a[A>>1]<<16>>16)*(a[A>>1]<<16>>16)|0)|0;A=A+2|0;z=z+((a[A>>1]<<16>>16)*(a[A>>1]<<16>>16)|0)|0;A=A+2|0;z=z+((a[A>>1]<<16>>16)*(a[A>>1]<<16>>16)|0)|0;A=A+2|0;l=9;break;case 9:v=v-1&65535;l=7;break;case 10:z<<=1;l=(w|0)!=0?11:12;
break;case 11:Ph(q,C,z,y);l=12;break;case 12:z=Xa(z,y);l=r<<16>>16!=0?13:17;break;case 13:l=(z|0)>1073741823?14:15;break;case 14:z=2147483647;l=16;break;case 15:z<<=1;l=16;break;case 16:l=17;break;case 17:l=C>>16&65535;I=C>>1;K=l<<16>>16<<15;I=I-K|0;D=I&65535;B=z>>16&65535;I=z>>1;K=B<<16>>16<<15;I=I-K|0;z=I&65535;z=Oh(l,D,B,z,y);l=r<<16>>16!=0?18:25;break;case 18:a:{l=o;D=void 0;for(D=0;;)switch(D){case 0:var J,G,U;J=z;G=l;U=0;D=(G<<16>>16|0)>0?1:4;break;case 1:D=(G<<16>>16|0)<31?2:3;break;case 2:U=
J>>(G<<16>>16|0);D=3;break;case 3:D=7;break;case 4:G=(-(G<<16>>16)|0)&65535;U=J<<(G<<16>>16);D=(U>>(G<<16>>16|0)|0)!=(J|0)?5:6;break;case 5:U=J>>31^2147483647;D=6;break;case 6:D=7;break;case 7:z=U;break a;default:x(0,"bad label: "+D)}z=void 0}l=(z|0)>65535?19:20;break;case 19:a[u>>1]=32767;l=24;break;case 20:l=(z|0)<-65536?21:22;break;case 21:a[u>>1]=-32768;l=23;break;case 22:a[u>>1]=z>>1&65535;l=23;break;case 23:l=24;break;case 24:l=26;break;case 25:a[u>>1]=z&65535;l=26;break;case 26:return F;default:x(0,
"bad label: "+l)}}function Cc(R,k,e,c,b,d,i,g,f){var j=B;B+=1200;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var n;for(n=0;;)switch(n){case 0:var l,q,m,p,o,r,s,v,t,u,w,y=j,A=j+4,C=j+8,z,D,E,F,I,K=j+12,J=j+16,G,U=j+592,H,N,L,M;l=R;q=k;m=e;p=c;o=b;r=d;s=i;v=g;t=f;F=0;n=(v|0)!=0?1:6;break;case 1:n=(q|0)==0?3:2;break;case 2:n=(q|0)==1?3:4;break;case 3:Yd(l,1,t);n=5;break;case 4:Yd(l,0,t);n=5;break;case 5:n=6;break;case 6:I=0;N=m+((-(o<<16>>16)|0)<<1)|0;u=(-(o<<16>>16)|0)&65535;n=7;break;
case 7:n=(u<<16>>16|0)<(r<<16>>16|0)?8:12;break;case 8:I=I+(((a[N>>1]<<16>>16)*(a[N>>1]<<16>>16)|0)<<1)|0;N=N+2|0;n=(I|0)<0?9:10;break;case 9:I=2147483647;n=12;break;case 10:n=11;break;case 11:u=u+1&65535;n=7;break;case 12:H=U|0;N=m+((-(o<<16>>16)|0)<<1)|0;n=(I|0)==2147483647?13:20;break;case 13:u=((o<<16>>16)+(r<<16>>16)|0)>>1&65535;n=14;break;case 14:n=(u<<16>>16|0)!=0?15:17;break;case 15:n=N;N=n+2|0;n=a[n>>1]<<16>>16>>3&65535;var Z=H;H=Z+2|0;a[Z>>1]=n;n=N;N=n+2|0;n=a[n>>1]<<16>>16>>3&65535;Z=H;
H=Z+2|0;a[Z>>1]=n;n=16;break;case 16:u=u-1&65535;n=14;break;case 17:n=(((o<<16>>16)+(r<<16>>16)|0)&1|0)!=0?18:19;break;case 18:a[H>>1]=a[N>>1]<<16>>16>>3&65535;n=19;break;case 19:L=3;n=30;break;case 20:n=(I|0)<1048576?21:28;break;case 21:u=((o<<16>>16)+(r<<16>>16)|0)>>1&65535;n=22;break;case 22:n=(u<<16>>16|0)!=0?23:25;break;case 23:n=N;N=n+2|0;n=a[n>>1]<<16>>16<<3&65535;Z=H;H=Z+2|0;a[Z>>1]=n;n=N;N=n+2|0;n=a[n>>1]<<16>>16<<3&65535;Z=H;H=Z+2|0;a[Z>>1]=n;n=24;break;case 24:u=u-1&65535;n=22;break;case 25:n=
(((o<<16>>16)+(r<<16>>16)|0)&1|0)!=0?26:27;break;case 26:a[H>>1]=a[N>>1]<<16>>16<<3&65535;n=27;break;case 27:L=-3;n=29;break;case 28:L=H;n=N;Z=((r<<16>>16)+(o<<16>>16)|0)<<1|0;x(Z%1===0,"memcpy given "+Z+" bytes to copy. Problem with quantum=1 corrections perhaps?");na(L,n,Z,1);L=0;n=29;break;case 29:n=30;break;case 30:G=J+(o<<16>>16<<2)|0;H=U+(o<<16>>16<<1)|0;dd(H,r,o,p,G);n=(q|0)==7?31:32;break;case 31:F=1;n=33;break;case 32:F=0;n=33;break;case 33:M=p<<16>>16<<2;n=(M|0)!=((M&65535)<<16>>16|0)?34:
35;break;case 34:h[t>>2]=1;w=((p<<16>>16|0)>0?32767:-32768)&65535;n=36;break;case 35:w=M&65535;n=36;break;case 36:z=Ec(l,G,H,L,F,r,o,w,y,v,t);u=((w<<16>>16)-1|0)&65535;w=p<<16>>16<<1&65535;D=Ec(l,G,H,L,F,r,u,w,A,v,t);u=((w<<16>>16)-1|0)&65535;E=Ec(l,G,H,L,F,r,u,p,C,v,t);n=(v|0)!=0?37:40;break;case 37:n=(s<<16>>16|0)==1?38:39;break;case 38:Sd(G,H,r,o,p,K,t);a[(l+118|0)>>1]=a[K>>1];n=39;break;case 39:n=40;break;case 40:u=((a[y>>1]<<16>>16)*27853|0)>>15&65535;n=(u<<16>>16|0)<(a[A>>1]<<16>>16|0)?41:42;
break;case 41:a[y>>1]=a[A>>1];z=D;n=42;break;case 42:u=((a[y>>1]<<16>>16)*27853|0)>>15&65535;n=(u<<16>>16|0)<(a[C>>1]<<16>>16|0)?43:44;break;case 43:z=E;n=44;break;case 44:return R=z,B=j,R;default:x(0,"bad label: "+n)}}function Fc(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;
case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function Zd(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b-c|0;c=((b^c)>>31|0)!=0?1:4;break;case 1:c=((i^b)&-2147483648|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function Qh(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;
case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Of(h){var k;for(k=0;;)switch(k){case 0:var e,c;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:a[(c|0)>>1]=40;a[(c+2|0)>>1]=0;e=a[(c+4|0)>>1]=0;k=3;break;
case 3:return e;default:x(0,"bad label: "+k)}}function Lh(h,k,e,c,b,d,i,g,f,j,n){var l=B;B+=1192;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var q;for(q=0;;)switch(q){case 0:var m,p,o,r,s,v,t,u,w,y,A,C,z=l,D,E,F=l+4,I=l+8,K;C=l+584;var J;m=h;p=k;o=e;r=c;s=b;v=d;t=i;u=g;w=f;y=j;A=n;J=C+(s<<16>>16<<1)|0;E=0;C=(-(s<<16>>16)|0)&65535;q=1;break;case 1:q=(C<<16>>16|0)<(v<<16>>16|0)?2:4;break;case 2:E=Fc(E,a[(o+(C<<16>>16<<1)|0)>>1],a[(o+(C<<16>>16<<1)|0)>>1],A);q=3;break;case 3:C=C+1&65535;
q=1;break;case 4:q=(Zd(E,2147483647,A)|0)==0?5:10;break;case 5:C=(-(s<<16>>16)|0)&65535;q=6;break;case 6:q=(C<<16>>16|0)<(v<<16>>16|0)?7:9;break;case 7:q=ra(a[(o+(C<<16>>16<<1)|0)>>1],3,A);a[(J+(C<<16>>16<<1)|0)>>1]=q;q=8;break;case 8:C=C+1&65535;q=6;break;case 9:q=22;break;case 10:q=(Zd(E,1048576,A)|0)<0?11:16;break;case 11:C=(-(s<<16>>16)|0)&65535;q=12;break;case 12:q=(C<<16>>16|0)<(v<<16>>16|0)?13:15;break;case 13:q=Qh(a[(o+(C<<16>>16<<1)|0)>>1],3,A);a[(J+(C<<16>>16<<1)|0)>>1]=q;q=14;break;case 14:C=
C+1&65535;q=12;break;case 15:q=21;break;case 16:C=(-(s<<16>>16)|0)&65535;q=17;break;case 17:q=(C<<16>>16|0)<(v<<16>>16|0)?18:20;break;case 18:a[(J+(C<<16>>16<<1)|0)>>1]=a[(o+(C<<16>>16<<1)|0)>>1];q=19;break;case 19:C=C+1&65535;q=17;break;case 20:q=21;break;case 21:q=22;break;case 22:K=I+(s<<16>>16<<2)|0;dd(J,v,s,r,K);D=Rh(p,K,J,v,s,r,a[(m|0)>>1],z,a[(m+4|0)>>1],u+(w<<16>>16<<1)|0,y,A);q=(a[(u+(w<<16>>16<<1)|0)>>1]<<16>>16|0)>0?23:28;break;case 23:C=4;q=24;break;case 24:q=(C<<16>>16|0)>0?25:27;break;
case 25:a[(t+(C<<16>>16<<1)|0)>>1]=a[(t+(((C<<16>>16)-1|0)<<1)|0)>>1];q=26;break;case 26:C=C-1&65535;q=24;break;case 27:a[(t|0)>>1]=D;q=Ya(t,5);a[(m|0)>>1]=q;a[(m+2|0)>>1]=32767;q=29;break;case 28:a[(m|0)>>1]=D;a[(m+2|0)>>1]=((a[(m+2|0)>>1]<<16>>16)*29491|0)>>15&65535;q=29;break;case 29:q=(ha(a[(m+2|0)>>1],9830,A)<<16>>16|0)<0?30:31;break;case 30:a[(m+4|0)>>1]=0;q=32;break;case 31:a[(m+4|0)>>1]=1;q=32;break;case 32:q=(y|0)!=0?33:36;break;case 33:q=(ha(w,1,A)<<16>>16|0)==0?34:35;break;case 34:Sd(K,
J,v,s,r,F,A);a[(p+118|0)>>1]=a[F>>1];q=35;break;case 35:q=36;break;case 36:return h=D,B=l,h;default:x(0,"bad label: "+q)}}function $d(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j;d=a;i=k;g=e;f=c;d=(d<<16>>16)*(g<<16>>16)|0;b=(d|0)!=1073741824?1:2;break;case 1:d<<=1;b=3;break;case 2:h[f>>2]=1;d=2147483647;b=3;break;case 3:b=((i<<16>>16)*(g<<16>>16)|0)>>15;j=d+(b<<1)|0;b=(d^b|0)>0?4:7;break;case 4:b=((j^d)>>31|0)!=0?5:6;break;case 5:j=(d>>31|0)!=0?-2147483648:2147483647;h[f>>2]=1;b=6;break;
case 6:b=7;break;case 7:return j;default:x(0,"bad label: "+b)}}function Sh(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Th(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=
a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,"bad label: "+c)}}function Uh(h){var k;for(k=0;;)switch(k){case 0:var e,c;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:a[(c|0)>>1]=0;a[(c+2|0)>>1]=0;a[(c+4|0)>>1]=0;a[(c+6|0)>>1]=0;a[(c+8|0)>>1]=0;e=a[(c+10|0)>>1]=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function Rh(R,k,e,c,b,d,i,g,f,j,n,l){var q=B;B+=8;x(B%4==0,"Stack is unaligned");
x(B<ea,"Ran out of stack");var m;for(m=0;;)switch(m){case 0:var p,o,r,s,v,t,u,w,y,A,C,z,D,E,F,I,K,J=q,G=q+4,H,N,L;p=R;o=k;r=e;s=c;m=b;v=d;t=i;u=g;w=f;y=j;A=n;C=l;H=ae+500|0;N=ae+((((m<<16>>16)+123|0)-(t<<16>>16)|0)<<1)|0;I=-2147483648;z=t=m;m=1;break;case 1:m=(z<<16>>16|0)>=(v<<16>>16|0)?2:8;break;case 2:Pa(h[(o+((-(z<<16>>16)|0)<<2)|0)>>2],J,G,C);K=$d(a[J>>1],a[G>>1],a[H>>1],C);H=H-2|0;m=(w<<16>>16|0)>0?3:4;break;case 3:Pa(K,J,G,C);K=$d(a[J>>1],a[G>>1],a[N>>1],C);N=N-2|0;m=4;break;case 4:m=(K|0)>=
(I|0)?5:6;break;case 5:I=K;t=z;m=6;break;case 6:m=7;break;case 7:z=z-1&65535;m=1;break;case 8:E=r|0;F=r+((-(t<<16>>16)|0)<<1)|0;D=L=K=0;m=9;break;case 9:m=(D<<16>>16|0)<(s<<16>>16|0)?10:12;break;case 10:K=Fc(K,a[E>>1],a[F>>1],C);L=Fc(L,a[F>>1],a[F>>1],C);m=11;break;case 11:D=D+1&65535;E=E+2|0;F=F+2|0;m=9;break;case 12:m=(A|0)!=0?13:14;break;case 13:Yd(p,0,C);Ph(p,K,L,C);m=14;break;case 14:k=la(L,C);R=C;e=void 0;a:{e=R;c=void 0;for(c=0;;)switch(c){case 0:var M,S;M=k;S=e;M=(M<<16>>16)*13107|0;c=(M|
0)!=1073741824?1:2;break;case 1:M<<=1;c=3;break;case 2:h[S>>2]=1;M=2147483647;c=3;break;case 3:e=M;break a;default:x(0,"bad label: "+c)}e=void 0}L=e=Zd(K,e,R);C=la(L,C);a[y>>1]=C;a[u>>1]=0;u=t;B=q;return u;default:x(0,"bad label: "+m)}}function Vh(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p,o;d=h;i=k;g=e;f=c;l=a[(be+2|0)>>1];q=a[(be+4|0)>>1];m=a[(Gc|0)>>1];p=a[(Gc+2|0)>>1];o=a[(Gc+4|0)>>1];n=i|0;i=0;b=1;break;case 1:b=(i<<16>>16|0)<(g<<16>>16|0)?2:4;break;case 2:j=a[(d+10|0)>>
1];a[(d+10|0)>>1]=a[(d+8|0)>>1];a[(d+8|0)>>1]=a[n>>1];b=(a[(d+4|0)>>1]<<16>>16)*(l<<16>>16)|0;b=b+(((a[(d+6|0)>>1]<<16>>16)*(l<<16>>16)|0)>>15)|0;b=b+((a[(d|0)>>1]<<16>>16)*(q<<16>>16)|0)|0;b=b+(((a[(d+2|0)>>1]<<16>>16)*(q<<16>>16)|0)>>15)|0;b=b+((a[(d+8|0)>>1]<<16>>16)*(m<<16>>16)|0)|0;b=b+((a[(d+10|0)>>1]<<16>>16)*(p<<16>>16)|0)|0;b=b+((j<<16>>16)*(o<<16>>16)|0)|0;b=Sh(b,3,f);j=Sh(b,1,f);j=la(j,f);var r=n;n=r+2|0;a[r>>1]=j;a[(d|0)>>1]=a[(d+4|0)>>1];a[(d+2|0)>>1]=a[(d+6|0)>>1];a[(d+4|0)>>1]=b>>16&
65535;a[(d+6|0)>>1]=((b>>1)-(a[(d+4|0)>>1]<<16>>16<<15)|0)&65535;b=3;break;case 3:i=i+1&65535;b=1;break;case 4:return;default:x(0,"bad label: "+b)}}function Ga(a,k,e){var l;var j;var c,b;b=Th(k,32,e);c=(b>>16&65535)<<16>>16&31;k=b>>1&32767;b=Hc+(c<<16>>16<<1)|0;j=(ga=M[b]|M[b+1]<<8,ga<<16>>16)<<16>>16<<16,b=j;var d=Hc+(c<<16>>16<<1)|0,d=(ga=M[d]|M[d+1]<<8,ga<<16>>16)<<16>>16;c=Hc+(((c<<16>>16)+1|0)<<1)|0;l=(ga=M[c]|M[c+1]<<8,ga<<16>>16)<<16>>16,c=l;k=Th((d-c|0)&65535,k,e);a:{for(d=0;;)switch(d){case 0:var i,
g,f;i=b;d=k;g=e;f=i-d|0;d=((i^d)>>31|0)!=0?1:4;break;case 1:d=((f^i)&-2147483648|0)!=0?2:3;break;case 2:f=(i>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;d=3;break;case 3:d=4;break;case 4:k=f;break a;default:x(0,"bad label: "+d)}k=void 0}return b=Se(k,(30-(a<<16>>16)|0)&65535,e)}function Wh(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function qb(h,
k,e,c,b){var d=B;B+=40;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r,s,v,t,u=d,w,y;g=h;f=k;j=e;n=c;i=b;f=g+((-(f<<16>>16)|0)<<1)|0;j=(-(j<<16>>16)|0)&65535;i=(i<<16>>16|0)!=0?1:2;break;case 1:j=j<<16>>16<<1&65535;i=2;break;case 2:i=(j<<16>>16|0)<0?3:4;break;case 3:j=((j<<16>>16)+6|0)&65535;f=f-2|0;i=4;break;case 4:v=ce+(j<<16>>16<<1)|0;t=ce+((6-(j<<16>>16)|0)<<1)|0;s=u|0;m=0;i=l=5;break;case 5:i=(l<<16>>16|0)>0?6:8;break;case 6:i=
a[(v+(m<<16>>16<<1)|0)>>1];var A=s;s=A+2|0;a[A>>1]=i;i=a[(t+(m<<16>>16<<1)|0)>>1];A=s;s=A+2|0;a[A>>1]=i;m=((m<<16>>16)+6|0)&65535;i=a[(v+(m<<16>>16<<1)|0)>>1];A=s;s=A+2|0;a[A>>1]=i;i=a[(t+(m<<16>>16<<1)|0)>>1];A=s;s=A+2|0;a[A>>1]=i;m=((m<<16>>16)+6|0)&65535;i=7;break;case 7:l=l-1&65535;i=5;break;case 8:r=g;q=n<<16>>16>>1&65535;i=9;break;case 9:i=(q<<16>>16|0)!=0?10:16;break;case 10:l=p=f=f+2|0;f=l+2|0;o=l;s=u|0;y=w=16384;l=5;i=11;break;case 11:i=(l<<16>>16|0)>0?12:14;break;case 12:i=o;o=i-2|0;y=y+
((a[i>>1]<<16>>16)*(a[s>>1]<<16>>16)|0)|0;i=a[o>>1]<<16>>16;A=s;s=A+2|0;w=w+(i*(a[A>>1]<<16>>16)|0)|0;i=p;p=i+2|0;w=w+((a[i>>1]<<16>>16)*(a[s>>1]<<16>>16)|0)|0;i=a[p>>1]<<16>>16;A=s;s=A+2|0;y=y+(i*(a[A>>1]<<16>>16)|0)|0;i=o;o=i-2|0;y=y+((a[i>>1]<<16>>16)*(a[s>>1]<<16>>16)|0)|0;i=a[o>>1]<<16>>16;A=s;s=A+2|0;w=w+(i*(a[A>>1]<<16>>16)|0)|0;i=p;p=i+2|0;w=w+((a[i>>1]<<16>>16)*(a[s>>1]<<16>>16)|0)|0;i=a[p>>1]<<16>>16;A=s;s=A+2|0;y=y+(i*(a[A>>1]<<16>>16)|0)|0;i=13;break;case 13:l=l-1&65535;i=11;break;case 14:i=
w>>15&65535;A=r;r=A+2|0;a[A>>1]=i;i=y>>15&65535;A=r;r=A+2|0;a[A>>1]=i;i=15;break;case 15:q=q-1&65535;i=9;break;case 16:B=d;return;default:x(0,"bad label: "+i)}}function Xh(h){var k;for(k=0;;)switch(k){case 0:var e,c;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:a[(c|0)>>1]=0;a[(c+2|0)>>1]=0;a[(c+4|0)>>1]=0;a[(c+6|0)>>1]=0;a[(c+8|0)>>1]=0;e=a[(c+10|0)>>1]=0;k=3;break;case 3:return e;default:x(0,"bad label: "+k)}}function Yh(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f;b=h;d=k;i=e;
f=d;d=a[(b+10|0)>>1];g=a[(b+8|0)>>1];c=1;break;case 1:c=(i<<16>>16|0)!=0?2:4;break;case 2:c=(a[(b+4|0)>>1]<<16>>16)*7807|0;c=c+(((a[(b+6|0)>>1]<<16>>16)*7807|0)>>15)|0;c=c+((a[(b|0)>>1]<<16>>16)*-3733|0)|0;a[(b|0)>>1]=a[(b+4|0)>>1];c=c+(((a[(b+2|0)>>1]<<16>>16)*-3733|0)>>15)|0;a[(b+2|0)>>1]=a[(b+6|0)>>1];c=c+((d<<16>>16)*1899|0)|0;d=g;c=c+((g<<16>>16)*-3798|0)|0;g=a[f>>1];c=c+((g<<16>>16)*1899|0)|0;var j=(c+2048|0)>>12&65535,n=f;f=n+2|0;a[n>>1]=j;a[(b+4|0)>>1]=c>>12&65535;a[(b+6|0)>>1]=((c<<3)-(a[(b+
4|0)>>1]<<16>>16<<15)|0)&65535;c=3;break;case 3:i=i-1&65535;c=1;break;case 4:a[(b+10|0)>>1]=d;a[(b+8|0)>>1]=g;return;default:x(0,"bad label: "+c)}}function cg(a,k,e,c,b,d,i,g,f){var j=B;B+=48;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var h;for(h=0;;)switch(h){case 0:var l,q,m,p,o,r,s,v,t=j,u=j+24,w,y,A;h=a;l=k;q=e;m=c;p=b;o=d;r=i;s=g;v=f;h=h>>>0<=5?1:2;break;case 1:w=l;h=3;break;case 2:w=q;h=3;break;case 3:h=(o<<16>>16|0)>0?4:5;break;case 4:y=22;h=6;break;case 5:y=0;h=6;break;case 6:A=
0;h=7;break;case 7:h=(A<<16>>16|0)<2?8:10;break;case 8:ab(p+(y<<16>>16<<1)|0,w,t|0);ab(p+(y<<16>>16<<1)|0,m,u|0);Yb(t|0,r+(o<<16>>16<<1)|0,v+(o<<16>>16<<1)|0,40);Ca(u|0,v+(o<<16>>16<<1)|0,v+(o<<16>>16<<1)|0,40,s,1);y=((y<<16>>16)+11|0)&65535;o=((o<<16>>16)+40|0)&65535;h=9;break;case 9:A=A+1&65535;h=7;break;case 10:B=j;return;default:x(0,"bad label: "+h)}}function Zh(h,k,e,c,b){var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m;i=h;g=k;f=e;j=c;n=b;g=(g+(j<<16>>16<<1)|0)-2|0;l=g-2|0;q=a[g>>1];m=0;
d=1;break;case 1:d=(m<<16>>16|0)<=((j<<16>>16)-2|0)?2:4;break;case 2:d=f;var p=l;l=p-2|0;d=Wh(d,a[p>>1],n);d=ha(a[g>>1],d,n);a[g>>1]=d;g=g-2|0;d=3;break;case 3:m=m+1&65535;d=1;break;case 4:d=Wh(f,a[(i|0)>>1],n);h=ha(a[g>>1],d,n);a[g>>1]=h;a[(i|0)>>1]=q;return;default:x(0,"bad label: "+d)}}function $h(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=R;i=k;g=e;f=c;b=h[(f+88|0)>>2];f=h[(h[(f+92|0)>>2]+(d<<2)|0)>>2]|0;i|=0;d=a[(b+(d<<1)|0)>>1];b=1;break;case 1:b=(d<<16>>16|0)!=0?2:4;break;case 2:b=
i;i=b+2|0;a:{b=a[b>>1];for(var j=a[f>>1],n=g,l=void 0,l=0;;)switch(l){case 0:var q,m,p;q=b;m=j;p=n+(((m<<16>>16)-1|0)<<1)|0;l=1;break;case 1:l=(m<<16>>16|0)!=0?2:4;break;case 2:var l=q<<16>>16&1,o=p;p=o-2|0;a[o>>1]=l;q=q<<16>>16>>1&65535;l=3;break;case 3:m=m-1&65535;l=1;break;case 4:break a;default:x(0,"bad label: "+l)}}b=f;f=b+2|0;g=g+(a[b>>1]<<16>>16<<1)|0;b=3;break;case 3:d=d-1&65535;b=1;break;case 4:return;default:x(0,"bad label: "+b)}}function ai(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,
d,i;b=a;c=k;d=e;i=b+c|0;c=(b^c|0)>=0?1:4;break;case 1:c=((i^b)>>31|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function Da(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j;d=a;i=k;g=e;f=c;d=(d<<16>>16)*(g<<16>>16)|0;b=(d|0)!=1073741824?1:2;break;case 1:d<<=1;b=3;break;case 2:h[f>>2]=1;d=2147483647;b=3;break;case 3:b=((i<<16>>16)*(g<<16>>16)|0)>>15;j=d+(b<<1)|0;b=(d^b|0)>0?4:7;break;case 4:b=
((j^d)>>31|0)!=0?5:6;break;case 5:j=(d>>31|0)!=0?-2147483648:2147483647;h[f>>2]=1;b=6;break;case 6:b=7;break;case 7:return j;default:x(0,"bad label: "+b)}}function bi(R,k,e,c,b){var d=B;B+=92;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l=d,q=d+24,m,p,o=d+48,r,s,v,t,u,w;g=R;f=k;j=e;i=c;n=b;w=(g+104|0)+20|0;ua(w,j,320,1,0);m=i;p=0;i=1;break;case 1:i=(p<<16>>16|0)<160?2:27;break;case 2:i=(f|0)==7?4:3;break;case 3:i=(f|0)==6?4:5;break;case 4:ab(m,
ci|0,l|0);ab(m,di|0,q|0);i=6;break;case 5:ab(m,ei|0,l|0);ab(m,fi|0,q|0);i=6;break;case 6:Yb(l|0,w+(p<<16>>16<<1)|0,g|0,40);ua(o|0,l|0,22,1,0);ta(o+22|0,0,22,1);Ca(q|0,o|0,o|0,22,o+22|0,0);t=0;r=21;i=7;break;case 7:i=(r<<16>>16|0)>=0?8:13;break;case 8:u=(a[(o+(r<<16>>16<<1)|0)>>1]<<16>>16)*(a[(o+(r<<16>>16<<1)|0)>>1]<<16>>16)|0;i=(u|0)!=1073741824?9:10;break;case 9:u<<=1;i=11;break;case 10:h[n>>2]=1;u=2147483647;i=13;break;case 11:t=ai(t,u,n);i=12;break;case 12:r=r-1&65535;i=7;break;case 13:s=t>>16&
65535;t=0;r=20;i=14;break;case 14:i=(r<<16>>16|0)>=0?15:20;break;case 15:u=(a[(o+(r<<16>>16<<1)|0)>>1]<<16>>16)*(a[(o+(((r<<16>>16)+1|0)<<1)|0)>>1]<<16>>16)|0;i=(u|0)!=1073741824?16:17;break;case 16:u<<=1;i=18;break;case 17:h[n>>2]=1;u=2147483647;i=20;break;case 18:t=ai(t,u,n);i=19;break;case 19:r=r-1&65535;i=14;break;case 20:v=t>>16&65535;i=(v<<16>>16|0)<=0?21:22;break;case 21:v=0;i=25;break;case 22:t=((v<<16>>16)*26214|0)>>15;i=(t&65536|0)!=0?23:24;break;case 23:t|=-65536;i=24;break;case 24:v=t&
65535;v=xa(v,s);i=25;break;case 25:Zh(g+100|0,g|0,v,40,n);Ca(q|0,g|0,j+(p<<16>>16<<1)|0,40,g+80|0,1);Ce(g+102|0,w+(p<<16>>16<<1)|0,j+(p<<16>>16<<1)|0,29491,40,n);m=m+22|0;i=26;break;case 26:p=((p<<16>>16)+40|0)&65535;i=1;break;case 27:ua(w-20|0,w+300|0,20,1,0);B=d;return;default:x(0,"bad label: "+i)}}function bh(h,k,e,c,b,d){var i=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p=i,o=i+4,r,s;f=h;j=k;n=e;l=c;q=b;m=d;g=(q<<16>>16|0)<=
0?1:2;break;case 1:r=-5443;s=-32768;g=8;break;case 2:n=Ga(14,n,m)&65535;g=(q<<16>>16|0)>=(n<<16>>16|0)?3:4;break;case 3:q=q<<16>>16>>1&65535;l=((l<<16>>16)+1|0)&65535;g=4;break;case 4:s=xa(q,n);a[o>>1]=s;g=((l<<16>>16)-(j<<16>>16)|0)&65535;g=((g<<16>>16)-1|0)&65535;Za(a[o>>1]<<16>>16,p,o,m);a[p>>1]=((a[p>>1]<<16>>16)+(g<<16>>16)|0)&65535;s=Sb(a[o>>1],5,m);g=a[p>>1]<<16>>16<<10&65535;s=((s<<16>>16)+(g<<16>>16)|0)&65535;g=(s<<16>>16|0)>18284?5:6;break;case 5:r=3037;s=18284;g=7;break;case 6:r=Da(a[p>>
1],a[o>>1],24660,m);a:{g=void 0;for(g=0;;)switch(g){case 0:var v,t,u;v=r;t=13;u=0;g=(t<<16>>16|0)>0?1:4;break;case 1:u=v<<(t<<16>>16);g=(u>>(t<<16>>16|0)|0)!=(v|0)?2:3;break;case 2:u=v>>31^2147483647;g=3;break;case 3:g=7;break;case 4:t=(-(t<<16>>16)|0)&65535;g=(t<<16>>16|0)<31?5:6;break;case 5:u=v>>(t<<16>>16|0);g=6;break;case 6:g=7;break;case 7:r=u;break a;default:x(0,"bad label: "+g)}r=void 0}r=la(r,m);g=7;break;case 7:g=8;break;case 8:ib(f,s,r);B=i;return;default:x(0,"bad label: "+g)}}function de(a,
k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:e=(b<<16>>16|0)<31?2:3;break;case 2:d=c>>(b<<16>>16|0);e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?5:6;break;case 5:d=c>>31^2147483647;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function ch(h,k,e,c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t){var u=B;B+=76;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var w;for(w=0;;)switch(w){case 0:var y,
A=u,C,z,D,E,F,I=u+4,K=u+8,J,G,H,N,L,M,S,Z,ka,Q,T,X,P,O=u+12,Y,$,ca,V=u+16,aa=u+36,da=u+56,W,ba;y=h;a[A>>1]=k;C=e;w=c;z=b;D=d;E=i;F=g;a[I>>1]=f;a[K>>1]=j;J=n;G=l;H=q;N=m;L=p;M=o;S=r;Z=s;ka=v;Q=t;P=0;C=Ga(14,C,Q)&65535;a[O>>1]=C;Y=Ga(14,a[K>>1],Q)&65535;C=((a[A>>1]<<16>>16)-11|0)&65535;a[(da|0)>>1]=((a[(w|0)>>1]<<16>>16)-13|0)&65535;a[(da+2|0)>>1]=((a[(w+2|0)>>1]<<16>>16)-14|0)&65535;a[(da+4|0)>>1]=((a[(w+4|0)>>1]<<16>>16)+((C<<16>>16<<1)+15|0)|0)&65535;a[(da+6|0)>>1]=((a[(w+6|0)>>1]<<16>>16)+(C<<16>>
16)|0)&65535;a[(da+8|0)>>1]=((a[(w+8|0)>>1]<<16>>16)+((C<<16>>16)+1|0)|0)&65535;C=((a[I>>1]<<16>>16)-11|0)&65535;a[(da+10|0)>>1]=((a[(J|0)>>1]<<16>>16)-13|0)&65535;a[(da+12|0)>>1]=((a[(J+2|0)>>1]<<16>>16)-14|0)&65535;a[(da+14|0)>>1]=((a[(J+4|0)>>1]<<16>>16)+((C<<16>>16<<1)+15|0)|0)&65535;a[(da+16|0)>>1]=((a[(J+6|0)>>1]<<16>>16)+(C<<16>>16)|0)&65535;a[(da+18|0)>>1]=((a[(J+8|0)>>1]<<16>>16)+((C<<16>>16)+1|0)|0)&65535;C=((D<<16>>16)-(H<<16>>16)|0)&65535;w=(C<<16>>16|0)>0?1:2;break;case 1:N=N<<16>>16>>
(C<<16>>16|0)&65535;w=3;break;case 2:E=E<<16>>16>>(-(C<<16>>16)|0)&65535;w=3;break;case 3:C=0;w=Sb(N,1,Q);w=(w<<16>>16|0)>(E<<16>>16|0)?4:5;break;case 4:C=1;w=8;break;case 5:w=((E<<16>>16)+3|0)>>2&65535;w=(w<<16>>16|0)>(N<<16>>16|0)?6:7;break;case 6:C=-1;w=7;break;case 7:w=8;break;case 8:X=0;w=9;break;case 9:w=(X<<16>>16|0)<5?10:12;break;case 10:w=da+(X<<16>>16<<1)|0;a[w>>1]=((a[w>>1]<<16>>16)+(C<<16>>16)|0)&65535;w=11;break;case 11:X=X+1&65535;w=9;break;case 12:C=a[(da|0)>>1];X=9;w=13;break;case 13:w=
(X<<16>>16|0)>0?14:18;break;case 14:w=(a[(da+(X<<16>>16<<1)|0)>>1]<<16>>16|0)>(C<<16>>16|0)?15:16;break;case 15:C=a[(da+(X<<16>>16<<1)|0)>>1];w=16;break;case 16:w=17;break;case 17:X=X-1&65535;w=13;break;case 18:C=C+1&65535;T=z|0;X=0;w=19;break;case 19:w=(X<<16>>16|0)<5?20:22;break;case 20:w=((C<<16>>16)-(a[(da+(X<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;W=T;T=W+2|0;W=a[W>>1]<<16>>16<<16;W=de(W,w,Q);a[(V+(X<<16>>16<<1)|0)>>1]=W>>16&65535;a[(aa+(X<<16>>16<<1)|0)>>1]=((W>>1)-(W>>16<<15)|0)&65535;w=21;break;
case 21:X=X+1&65535;w=19;break;case 22:T=G|0;w=23;break;case 23:w=(X<<16>>16|0)<10?24:26;break;case 24:w=((C<<16>>16)-(a[(da+(X<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;W=T;T=W+2|0;W=a[W>>1]<<16>>16<<16;W=de(W,w,Q);a[(V+(X<<16>>16<<1)|0)>>1]=W>>16&65535;a[(aa+(X<<16>>16<<1)|0)>>1]=((W>>1)-(W>>16<<15)|0)&65535;w=25;break;case 25:X=X+1&65535;w=23;break;case 26:ba=2147483647;T=Ic|0;X=0;w=27;break;case 27:w=(X<<16>>16|0)<256?28:35;break;case 28:$=T;T=$+2|0;$=a[$>>1];ca=T;T=ca+2|0;ca=a[ca>>1];ca=((ca<<16>>
16)*(a[O>>1]<<16>>16)|0)>>15&65535;J=(($<<16>>16)*($<<16>>16)|0)>>15&65535;D=((ca<<16>>16)*(ca<<16>>16)|0)>>15&65535;w=((ca<<16>>16)*($<<16>>16)|0)>>15&65535;W=Da(a[(V|0)>>1],a[(aa|0)>>1],J,Q);J=Da(a[(V+2|0)>>1],a[(aa+2|0)>>1],$,Q);W=W+J|0;D=Da(a[(V+4|0)>>1],a[(aa+4|0)>>1],D,Q);W=W+D|0;ca=Da(a[(V+6|0)>>1],a[(aa+6|0)>>1],ca,Q);ca=W+ca|0;W=Da(a[(V+8|0)>>1],a[(aa+8|0)>>1],w,Q);W=ca+W|0;w=(($<<16>>16)-(L<<16>>16)|0)&65535;$=T;T=$+2|0;$=a[$>>1];ca=T;T=ca+2|0;ca=a[ca>>1];w=(w<<16>>16|0)<=0?29:33;break;
case 29:w=($<<16>>16|0)<=(L<<16>>16|0)?30:33;break;case 30:ca=((ca<<16>>16)*(Y<<16>>16)|0)>>15&65535;J=(($<<16>>16)*($<<16>>16)|0)>>15&65535;D=((ca<<16>>16)*(ca<<16>>16)|0)>>15&65535;w=((ca<<16>>16)*($<<16>>16)|0)>>15&65535;J=Da(a[(V+10|0)>>1],a[(aa+10|0)>>1],J,Q);H=Da(a[(V+12|0)>>1],a[(aa+12|0)>>1],$,Q);J=J+H|0;D=Da(a[(V+14|0)>>1],a[(aa+14|0)>>1],D,Q);D=J+D|0;J=Da(a[(V+16|0)>>1],a[(aa+16|0)>>1],ca,Q);D=D+J|0;w=Da(a[(V+18|0)>>1],a[(aa+18|0)>>1],w,Q);W=W+(D+w|0)|0;w=(W|0)<(ba|0)?31:32;break;case 31:ba=
W;P=X;w=32;break;case 32:w=33;break;case 33:w=34;break;case 34:X=X+1&65535;w=27;break;case 35:return w=P<<16>>16<<2&65535,ee(y,Ic+(w<<16>>16<<1)|0,a[O>>1],a[A>>1],M,S,Q),hb(y,0,F,I,K,A,O,Q),Y=Ga(14,a[K>>1],Q)&65535,w=((w<<16>>16)+2|0)&65535,ee(y,Ic+(w<<16>>16<<1)|0,Y,a[I>>1],Z,ka,Q),h=P,B=u,h;default:x(0,"bad label: "+w)}}function ee(h,k,e,c,b,d,i){var g=B;B+=8;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f=g+4;a[b>>1]=a[k>>1];b=a[(k+2|0)>>1];e=de(((b<<16>>16)*(e<<16>>16)|0)<<1,(10-
(c<<16>>16)|0)&65535,i);a[d>>1]=e>>16&65535;Za(b<<16>>16,g,f,i);a[g>>1]=((a[g>>1]<<16>>16)-12|0)&65535;e=Sb(a[f>>1],5,i);d=a[g>>1]<<16>>16<<10&65535;d=((e<<16>>16)+(d<<16>>16)|0)&65535;e=Da(a[g>>1],a[f>>1],24660,i);e<<=13;ib(h,d,(e+32768|0)>>16&65535);B=g}function Zb(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<
(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function fh(R,k,e,c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u){var w=B;B+=48;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var y;for(y=0;;)switch(y){case 0:var A,C,z,D,E,F,I,K,J,G,H,N,L,M,S,Z,P,Q,T,X,O=w,$=w+8,W=w+16,V=w+20,ca=w+24,Y=w+32,aa=w+40,da=w+44;y=R;A=k;C=e;z=c;D=b;E=d;F=i;I=g;K=f;J=j;G=n;H=l;N=q;L=m;M=
p;S=o;Z=r;P=s;Q=v;T=t;X=u;L=id(5,L,M,ca|0,Y|0,h[(T+72|0)>>2],X);a[aa>>1]=L;J=Ga(14,J,X)&65535;gi(K,J,ca|0,Y|0,D,E,M,aa,S,da,Z,P,h[(T+68|0)>>2],X);Af(A,C,z,a[M>>1],G,O|0,$|0,W,X);$g(y,a[W>>1],a[S>>1],V,X);y=(a[(O|0)>>1]<<16>>16|0)!=0?1:3;break;case 1:y=(a[V>>1]<<16>>16|0)>0?2:3;break;case 2:a[(O+6|0)>>1]=I;a[($+6|0)>>1]=F;y=((ha(N,K,X)<<16>>16)+10|0)&65535;y=Zb(H,y,X);y=hi(a[M>>1],K,J,O|0,$|0,a[V>>1],y,S,Z,P,h[(T+68|0)>>2],X);a[da>>1]=y;y=3;break;case 3:R=a[aa>>1];k=Q;e=h[k>>2];h[k>>2]=e+2|0;a[e>>
1]=R;da=a[da>>1];R=h[Q>>2];h[Q>>2]=R+2|0;a[R>>1]=da;B=w;return;default:x(0,"bad label: "+y)}}function gi(h,k,e,c,b,d,i,g,f,j,n,l,q,m){var p=B;B+=52;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var o;for(o=0;;)switch(o){case 0:var r,s,v,t,u,w,y,A,C,z,D,E,F,I,K,J,G,H,N,L,M=p,S=p+4,Z=p+8,P=p+12,Q=p+16,T=p+28,X=p+40,O,W,V;r=h;s=k;v=e;t=c;u=b;w=d;y=i;A=g;C=f;z=j;D=n;E=l;F=q;I=m;J=((r<<16>>16)-10|0)&65535;a[(X|0)>>1]=((a[(w|0)>>1]<<16>>16)-13|0)&65535;a[(X+2|0)>>1]=((a[(w+2|0)>>1]<<16>>16)-
14|0)&65535;o=a[(w+4|0)>>1]<<16>>16;var Y=Zb(J,1,I)<<16>>16;a[(X+4|0)>>1]=((o+Y|0)+15|0)&65535;a[(X+6|0)>>1]=((a[(w+6|0)>>1]<<16>>16)+(J<<16>>16)|0)&65535;a[(X+8|0)>>1]=((a[(w+8|0)>>1]<<16>>16)+((J<<16>>16)+1|0)|0)&65535;w=a[(X|0)>>1];o=J=1;break;case 1:o=(J<<16>>16|0)<5?2:6;break;case 2:o=(a[(X+(J<<16>>16<<1)|0)>>1]<<16>>16|0)>(w<<16>>16|0)?3:4;break;case 3:w=a[(X+(J<<16>>16<<1)|0)>>1];o=4;break;case 4:o=5;break;case 5:J=J+1&65535;o=1;break;case 6:w=$(w,1,I);J=0;o=7;break;case 7:o=(J<<16>>16|0)<
5?8:10;break;case 8:G=((w<<16>>16)-(a[(X+(J<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;O=a[(u+(J<<16>>16<<1)|0)>>1]<<16>>16<<16;O=jb(O,G,I);Pa(O,Q+(J<<16>>16<<1)|0,T+(J<<16>>16<<1)|0,I);o=9;break;case 9:J=J+1&65535;o=7;break;case 10:V=2147483647;G=N=H=0;o=11;break;case 11:o=(G<<16>>16|0)<3?12:20;break;case 12:L=a[(v+(G<<16>>16<<1)|0)>>1];K=Ta(L,L,I);W=fe(a[(Q|0)>>1],a[(T|0)>>1],K,I);W=ge(W,a[(Q+2|0)>>1],a[(T+2|0)>>1],L,I);K=F|0;J=0;o=13;break;case 13:o=(J<<16>>16|0)<32?14:18;break;case 14:O=K;K=O+2|0;o=
a[O>>1];K=K+2|0;K=K+2|0;o=Ta(o,s,I);O=Ha(o,o,I);Pa(O,M,S,I);O=Ha(o,L,I);Pa(O,Z,P,I);O=Jc(W,a[(Q+4|0)>>1],a[(T+4|0)>>1],a[M>>1],a[S>>1],I);O=ge(O,a[(Q+6|0)>>1],a[(T+6|0)>>1],o,I);O=Jc(O,a[(Q+8|0)>>1],a[(T+8|0)>>1],a[Z>>1],a[P>>1],I);o=(O|0)<(V|0)?15:16;break;case 15:V=O;H=J;N=G;o=16;break;case 16:o=17;break;case 17:J=J+1&65535;o=13;break;case 18:o=19;break;case 19:G=G+1&65535;o=11;break;case 20:h=K=F+(((H<<16>>16<<2)-(H<<16>>16)|0)<<1)|0;K=h+2|0;o=a[h>>1];h=K;K=h+2|0;a[D>>1]=a[h>>1];a[E>>1]=a[K>>1];
O=Ha(o,s,I);O=jb(O,(9-(r<<16>>16)|0)&65535,I);a[C>>1]=O>>16&65535;a[z>>1]=H;a[y>>1]=a[(v+(N<<16>>16<<1)|0)>>1];a[A>>1]=a[(t+(N<<16>>16<<1)|0)>>1];B=p;return;default:x(0,"bad label: "+o)}}function Ta(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function Ha(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=(c<<16>>16)*(b<<16>>16)|
0;c=(b|0)!=1073741824?1:2;break;case 1:b<<=1;c=3;break;case 2:h[d>>2]=1;b=2147483647;c=3;break;case 3:return b;default:x(0,"bad label: "+c)}}function he(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+
e)}}function jb(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:e=(b<<16>>16|0)<31?2:3;break;case 2:d=c>>(b<<16>>16|0);e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?5:6;break;case 5:d=c>>31^2147483647;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function fe(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j;d=a;i=k;g=e;f=c;d=(d<<16>>16)*(g<<16>>16)|0;b=(d|0)!=
1073741824?1:2;break;case 1:d<<=1;b=3;break;case 2:h[f>>2]=1;d=2147483647;b=3;break;case 3:b=((i<<16>>16)*(g<<16>>16)|0)>>15;j=d+(b<<1)|0;b=(d^b|0)>0?4:7;break;case 4:b=((j^d)>>31|0)!=0?5:6;break;case 5:j=(d>>31|0)!=0?-2147483648:2147483647;h[f>>2]=1;b=6;break;case 6:b=7;break;case 7:return j;default:x(0,"bad label: "+b)}}function hi(R,k,e,c,b,d,i,g,f,j,n,l){var q=B;B+=56;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var m;for(m=0;;)switch(m){case 0:var p,o,r,s,v,t,u,w,y,A,C,z,D,E,F,I=
q,K,J,G=q+4,H=q+8,N=q+12,L=q+16,M=q+20,S=q+32,Z=q+44,P,Q,T;p=R;o=k;r=e;s=c;v=b;t=d;u=i;w=g;y=f;A=j;C=n;z=l;T=Zb(a[w>>1],(10-(o<<16>>16)|0)&65535,z);K=Ta(p,p,z);F=$((32767-(t<<16>>16)|0)&65535,1,z);P=Ha(t,a[(s+2|0)>>1],z);P=he(P,1,z);m=P>>16&65535;P=Ha(m,K,z);a[(Z+2|0)>>1]=((a[(v+2|0)>>1]<<16>>16)-15|0)&65535;m=Ha(t,a[(s+4|0)>>1],z);m=he(m,1,z)>>16&65535;m=Ta(m,p,z);a[(M+4|0)>>1]=m;a[I>>1]=((o<<16>>16)-10|0)&65535;m=$(a[(v+4|0)>>1],a[I>>1],z);a[(Z+4|0)>>1]=m;m=Ha(t,a[(s+6|0)>>1],z);m=he(m,1,z)>>16&
65535;a[(M+6|0)>>1]=m;m=((Zb(o,1,z)<<16>>16)-7|0)&65535;a[I>>1]=m;m=$(a[(v+6|0)>>1],a[I>>1],z);a[(Z+6|0)>>1]=m;F=Ta(F,a[(s+6|0)>>1],z);a[(M+8|0)>>1]=F;F=$(a[(Z+6|0)>>1],1,z);a[(Z+8|0)>>1]=F;F=Ha(t,a[(s|0)>>1],z);t=pc(F,I,z);a[I>>1]=((a[I>>1]<<16>>16)+47|0)&65535;a[(Z|0)>>1]=((a[(v|0)>>1]<<16>>16)-(a[I>>1]<<16>>16)|0)&65535;s=((a[(Z|0)>>1]<<16>>16)+31|0)&65535;m=v=1;break;case 1:m=(v<<16>>16|0)<=4?2:6;break;case 2:m=(a[(Z+(v<<16>>16<<1)|0)>>1]<<16>>16|0)>(s<<16>>16|0)?3:4;break;case 3:s=a[(Z+(v<<16>>
16<<1)|0)>>1];m=4;break;case 4:m=5;break;case 5:v=v+1&65535;m=1;break;case 6:m=((s<<16>>16)-(a[(Z+2|0)>>1]<<16>>16)|0)&65535;P=jb(P,m,z);v=2;m=7;break;case 7:m=(v<<16>>16|0)<=4?8:10;break;case 8:m=((s<<16>>16)-(a[(Z+(v<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;F=a[(M+(v<<16>>16<<1)|0)>>1]<<16>>16<<16;F=jb(F,m,z);Pa(F,M+(v<<16>>16<<1)|0,S+(v<<16>>16<<1)|0,z);m=9;break;case 9:v=v+1&65535;m=7;break;case 10:a[I>>1]=((s<<16>>16)-31|0)&65535;m=((a[I>>1]<<16>>16)-(a[(Z|0)>>1]<<16>>16)|0)&65535;p=ra(m,1,z);t=
jb(t,p,z);m=(m<<16>>16&1|0)!=0?11:12;break;case 11:Pa(t,M|0,S|0,z);t=fe(a[(M|0)>>1],a[(S|0)>>1],23170,z);m=12;break;case 12:Q=2147483647;E=0;D=C|0;v=0;m=13;break;case 13:m=(v<<16>>16|0)<32?14:20;break;case 14:J=D;D=J+2|0;J=a[J>>1];D=D+2|0;D=D+2|0;J=Ta(J,r,z);m=(J<<16>>16|0)>=(T<<16>>16|0)?15:16;break;case 15:m=20;break;case 16:F=Ha(J,J,z);Pa(F,G,H,z);m=ha(J,u,z);F=Ha(m,m,z);Pa(F,N,L,z);F=ge(P,a[(M+4|0)>>1],a[(S+4|0)>>1],J,z);F=Jc(F,a[(M+6|0)>>1],a[(S+6|0)>>1],a[G>>1],a[H>>1],z);F=pc(F,I,z);m=ra(a[I>>
1],1,z);F=jb(F,m,z);a:{m=t;p=z;K=void 0;for(K=0;;)switch(K){case 0:var X,O,W;X=F;K=m;O=p;W=X-K|0;K=((X^K)>>31|0)!=0?1:4;break;case 1:K=((W^X)&-2147483648|0)!=0?2:3;break;case 2:W=(X>>31|0)!=0?-2147483648:2147483647;h[O>>2]=1;K=3;break;case 3:K=4;break;case 4:F=W;break a;default:x(0,"bad label: "+K)}F=void 0}m=la(F,z);F=Ha(m,m,z);F=Jc(F,a[(M+8|0)>>1],a[(S+8|0)>>1],a[N>>1],a[L>>1],z);m=(F|0)<(Q|0)?17:18;break;case 17:Q=F;E=v;m=18;break;case 18:m=19;break;case 19:v=v+1&65535;m=13;break;case 20:return R=
D=C+(((E<<16>>16<<2)-(E<<16>>16)|0)<<1)|0,D=R+2|0,J=a[R>>1],R=D,D=R+2|0,a[y>>1]=a[R>>1],a[A>>1]=a[D>>1],F=Ha(J,r,z),F=jb(F,(9-(o<<16>>16)|0)&65535,z),a[w>>1]=F>>16&65535,o=E,B=q,o;default:x(0,"bad label: "+m)}}function ge(a,k,e,c,b){a=wb(a,k,c,b);e=Ta(e,c,b);return a=wb(a,e,1,b)}function Jc(a,k,e,c,b,d){a=wb(a,k,c,d);k=Ta(k,b,d);a=wb(a,k,1,d);k=Ta(e,c,d);return a=wb(a,k,1,d)}function wb(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?
1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function ie(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;
case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function ii(a){a=((a<<16>>16)-((a<<16>>16|0)<0&1)|0)&65535;return(a<<16>>16^a<<16>>16>>15)&65535}function Kc(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u;d=h;i=k;g=e;f=c;n=0;l=2147483647;j=i;m=a[(d|0)>>1];p=a[(d+2|0)>>1];o=a[(d+4|0)>>1];r=a[(d+6|0)>>1];s=a[(g|0)>>
1];v=a[(g+2|0)>>1];t=a[(g+4|0)>>1];u=a[(g+6|0)>>1];g=0;b=1;break;case 1:b=(g<<16>>16|0)<(f<<16>>16|0)?2:6;break;case 2:q=m<<16>>16;b=j;j=b+2|0;b=(q-(a[b>>1]<<16>>16)|0)&65535;b=((s<<16>>16)*(b<<16>>16)|0)>>15&65535;q=(b<<16>>16)*(b<<16>>16)|0;b=p<<16>>16;var w=j;j=w+2|0;b=(b-(a[w>>1]<<16>>16)|0)&65535;b=((v<<16>>16)*(b<<16>>16)|0)>>15&65535;q=q+((b<<16>>16)*(b<<16>>16)|0)|0;b=o<<16>>16;w=j;j=w+2|0;b=(b-(a[w>>1]<<16>>16)|0)&65535;b=((t<<16>>16)*(b<<16>>16)|0)>>15&65535;q=q+((b<<16>>16)*(b<<16>>16)|
0)|0;b=r<<16>>16;w=j;j=w+2|0;b=(b-(a[w>>1]<<16>>16)|0)&65535;b=((u<<16>>16)*(b<<16>>16)|0)>>15&65535;q=q+((b<<16>>16)*(b<<16>>16)|0)|0;b=(q|0)<(l|0)?3:4;break;case 3:l=q;n=g;b=4;break;case 4:b=5;break;case 5:g=g+1&65535;b=1;break;case 6:return h=j=i+(n<<16>>16<<2<<1)|0,j=h+2|0,h=a[h>>1],k=d,d=k+2|0,a[k>>1]=h,h=j,j=h+2|0,h=a[h>>1],k=d,d=k+2|0,a[k>>1]=h,h=j,j=h+2|0,h=a[h>>1],k=d,d=k+2|0,a[k>>1]=h,a[d>>1]=a[j>>1],n;default:x(0,"bad label: "+b)}}function eh(h,k,e,c,b,d,i,g){var f;for(f=0;;)switch(f){case 0:var j,
n,l,q,m,p,o,r,s,v,t,u,w,y,A,C;j=h;n=k;l=e;q=c;m=b;p=d;o=i;r=g;f=(j|0)==7?1:2;break;case 1:A=a[q>>1]<<16>>16>>1&65535;f=3;break;case 2:A=a[q>>1];f=3;break;case 3:u=Ga(n,l,r)&65535;f=(j|0)==7?4:5;break;case 4:u=ie(u,4,r);f=6;break;case 5:u=ie(u,5,r);f=6;break;case 6:s=o|0;y=u<<16>>16;f=s;s=f+2|0;y=(y*(a[f>>1]<<16>>16)|0)>>15&65535;y=((A<<16>>16)-(y<<16>>16)|0)&65535;f=(y<<16>>16|0)<0?7:8;break;case 7:y=(-(y<<16>>16)|0)&65535;f=8;break;case 8:s=s+4|0;t=0;v=1;f=9;break;case 9:f=(v<<16>>16|0)<32?10:16;
break;case 10:w=u<<16>>16;f=s;s=f+2|0;w=(w*(a[f>>1]<<16>>16)|0)>>15&65535;w=((A<<16>>16)-(w<<16>>16)|0)&65535;f=(w<<16>>16|0)<0?11:12;break;case 11:w=(-(w<<16>>16)|0)&65535;f=12;break;case 12:s=s+4|0;f=(w<<16>>16|0)<(y<<16>>16|0)?13:14;break;case 13:y=w;t=v;f=14;break;case 14:f=15;break;case 15:v=v+1&65535;f=9;break;case 16:C=((t<<16>>16)+(t<<16>>16<<1)|0)&65535;s=o+(C<<16>>16<<1)|0;C=u<<16>>16;f=s;s=f+2|0;C=(C*(a[f>>1]<<16>>16)|0)>>15&65535;f=(j|0)==7?17:18;break;case 17:a[q>>1]=C<<16>>16<<1&65535;
f=19;break;case 18:a[q>>1]=C;f=19;break;case 19:return h=s,s=h+2|0,a[m>>1]=a[h>>1],a[p>>1]=a[s>>1],t;default:x(0,"bad label: "+f)}}function id(h,k,e,c,b,d,i){var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o,r,s,v,t;f=h;j=k;n=e;l=c;q=b;m=d;p=i;v=ha(a[n>>1],a[(m|0)>>1],p);v=ii(v);r=0;g=o=1;break;case 1:g=(o<<16>>16|0)<16?2:8;break;case 2:g=(a[(m+(o<<16>>16<<1)|0)>>1]<<16>>16|0)<=(j<<16>>16|0)?3:6;break;case 3:s=ha(a[n>>1],a[(m+(o<<16>>16<<1)|0)>>1],p);s=ii(s);g=(s<<16>>16|0)<(v<<16>>16|0)?4:5;break;
case 4:v=s;r=o;g=5;break;case 5:g=6;break;case 6:g=7;break;case 7:o=o+1&65535;g=1;break;case 8:g=(f|0)==5?9:21;break;case 9:g=(r<<16>>16|0)==0?10:11;break;case 10:t=r;g=16;break;case 11:g=(r<<16>>16|0)==15?13:12;break;case 12:g=(a[(m+(((r<<16>>16)+1|0)<<1)|0)>>1]<<16>>16|0)>(j<<16>>16|0)?13:14;break;case 13:t=((r<<16>>16)-2|0)&65535;g=15;break;case 14:t=((r<<16>>16)-1|0)&65535;g=15;break;case 15:g=16;break;case 16:o=0;g=17;break;case 17:g=(o<<16>>16|0)<3?18:20;break;case 18:a[(q+(o<<16>>16<<1)|0)>>
1]=t;a[(l+(o<<16>>16<<1)|0)>>1]=a[(m+(t<<16>>16<<1)|0)>>1];t=((t<<16>>16)+1|0)&65535;g=19;break;case 19:o=o+1&65535;g=17;break;case 20:a[n>>1]=a[(m+(r<<16>>16<<1)|0)>>1];g=25;break;case 21:g=(f|0)==7?22:23;break;case 22:a[n>>1]=a[(m+(r<<16>>16<<1)|0)>>1]<<16>>16&65532;g=24;break;case 23:a[n>>1]=a[(m+(r<<16>>16<<1)|0)>>1];g=24;break;case 24:g=25;break;case 25:return r;default:x(0,"bad label: "+g)}}function kb(h,k,e,c,b){var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w;i=h;g=k;f=
e;j=c;n=b;p=m=0;o=2147483647;q=g;s=a[(i|0)>>1];v=a[(i+2|0)>>1];t=a[(i+4|0)>>1];u=a[(f|0)>>1];w=a[(f+2|0)>>1];f=a[(f+4|0)>>1];d=(n|0)!=0?1:2;break;case 1:m=3;d=2;break;case 2:l=0;d=3;break;case 3:d=(l<<16>>16|0)<(j<<16>>16|0)?4:8;break;case 4:r=s<<16>>16;d=q;q=d+2|0;d=(r-(a[d>>1]<<16>>16)|0)&65535;d=((u<<16>>16)*(d<<16>>16)|0)>>15&65535;r=(d<<16>>16)*(d<<16>>16)|0;d=v<<16>>16;var y=q;q=y+2|0;d=(d-(a[y>>1]<<16>>16)|0)&65535;d=((w<<16>>16)*(d<<16>>16)|0)>>15&65535;r=r+((d<<16>>16)*(d<<16>>16)|0)|0;d=
t<<16>>16;y=q;q=y+2|0;d=(d-(a[y>>1]<<16>>16)|0)&65535;d=((f<<16>>16)*(d<<16>>16)|0)>>15&65535;r=r+((d<<16>>16)*(d<<16>>16)|0)|0;d=(r|0)<(o|0)?5:6;break;case 5:o=r;p=l;d=6;break;case 6:q=q+(m<<16>>16<<1)|0;d=7;break;case 7:l=l+1&65535;d=3;break;case 8:q=g+(((p<<16>>16)*3|0)<<1)|0;d=(n|0)!=0?9:10;break;case 9:q=q+(((p<<16>>16)*3|0)<<1)|0;d=10;break;case 10:return h=q,q=h+2|0,h=a[h>>1],k=i,i=k+2|0,a[k>>1]=h,h=q,q=h+2|0,h=a[h>>1],k=i,i=k+2|0,a[k>>1]=h,a[i>>1]=a[q>>1],p;default:x(0,"bad label: "+d)}}function Ed(h,
k,e,c,b,d,i){var g=B;B+=140;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o,r,s=g,v=g+20,t=g+40,u=g+60,w=g+80,y,A,C=g+100,z=g+120;j=h;n=k;f=e;l=c;q=b;m=d;p=i;ub(f,s|0,10,p);Bc(s|0,v|0,p);f=(n|0)!=8?1:6;break;case 1:o=0;f=2;break;case 2:f=(o<<16>>16|0)<10?3:5;break;case 3:f=((a[((j|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)*(a[((Qd|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)|0)>>15&65535;a[((t|0)+(o<<16>>16<<1)|0)>>1]=((a[((uc|0)+(o<<16>>16<<1)|0)>>1]<<16>>
16)+(f<<16>>16)|0)&65535;a[((u|0)+(o<<16>>16<<1)|0)>>1]=((a[((s|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)-(a[((t|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;f=4;break;case 4:o=o+1&65535;f=2;break;case 5:f=17;break;case 6:a[m>>1]=0;A=2147483647;r=0;f=7;break;case 7:f=(r<<16>>16|0)<8?8:16;break;case 8:o=y=0;f=9;break;case 9:f=(o<<16>>16|0)<10?10:12;break;case 10:a[((z|0)+(o<<16>>16<<1)|0)>>1]=((a[((uc|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)+(a[(((vc|0)+(((r<<16>>16)*10|0)<<1)|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)|0)&
65535;a[((C|0)+(o<<16>>16<<1)|0)>>1]=((a[((s|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)-(a[((z|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;f=(a[((C|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)*(a[((C|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)|0;y=y+(f<<1)|0;f=11;break;case 11:o=o+1&65535;f=9;break;case 12:f=(y|0)<(A|0)?13:14;break;case 13:A=y;f=u|0;var D=C|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(f,D,20,1);f=t|0;D=z|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");
na(f,D,20,1);f=j|0;D=vc+(((r<<16>>16)*10|0)<<1)|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(f,D,20,1);a[m>>1]=r;f=14;break;case 14:f=15;break;case 15:r=r+1&65535;f=7;break;case 16:f=17;break;case 17:f=(n|0)==0?19:18;break;case 18:f=(n|0)==1?19:20;break;case 19:f=kb(u|0,sc|0,v|0,256,0,p);a[q>>1]=f;f=kb((u|0)+6|0,Vb|0,(v|0)+6|0,256,1,p);a[(q+2|0)>>1]=f;f=Kc((u|0)+12|0,Od|0,(v|0)+12|0,128,p);a[(q+4|0)>>1]=f;f=24;break;case 20:f=(n|0)==5?21:22;break;case 21:f=
kb(u|0,Pd|0,v|0,512,0,p);a[q>>1]=f;f=kb((u|0)+6|0,Vb|0,(v|0)+6|0,512,0,p);a[(q+2|0)>>1]=f;f=Kc((u|0)+12|0,tc|0,(v|0)+12|0,512,p);a[(q+4|0)>>1]=f;f=23;break;case 22:f=kb(u|0,sc|0,v|0,256,0,p);a[q>>1]=f;f=kb((u|0)+6|0,Vb|0,(v|0)+6|0,512,0,p);a[(q+2|0)>>1]=f;f=Kc((u|0)+12|0,tc|0,(v|0)+12|0,512,p);a[(q+4|0)>>1]=f;f=23;break;case 23:f=24;break;case 24:o=0;f=25;break;case 25:f=(o<<16>>16|0)<10?26:28;break;case 26:a[((w|0)+(o<<16>>16<<1)|0)>>1]=((a[((u|0)+(o<<16>>16<<1)|0)>>1]<<16>>16)+(a[((t|0)+(o<<16>>
16<<1)|0)>>1]<<16>>16)|0)&65535;a[((j|0)+(o<<16>>16<<1)|0)>>1]=a[((u|0)+(o<<16>>16<<1)|0)>>1];f=27;break;case 27:o=o+1&65535;f=25;break;case 28:Ma(w|0,205,10,p);Fa(w|0,l,10,p);B=g;return;default:x(0,"bad label: "+f)}}function Kh(h,k,e,c,b,d,i){var F;var g=B;B+=180;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var f;for(f=0;;)switch(f){case 0:var j,n,l,q,m,p,o,r,s=g;r=g+20;var v=g+40,t=g+60,u=g+80,w=g+100,y=g+120,A=g+140,C=g+160,z,D;j=h;n=k;l=e;q=c;m=b;p=d;o=i;ub(n,s|0,10,o);ub(l,r|0,10,
o);Bc(s|0,v|0,o);Bc(r|0,t|0,o);n=u|0;s|=0;l=r|0;z=w|0;D=y|0;r=0;f=1;break;case 1:f=(r<<16>>16|0)<10?2:4;break;case 2:f=Nd+(r<<16>>16<<1)|0;F=(ga=M[f]|M[f+1]<<8,ga<<16>>16)<<16>>16,f=F;a[n>>1]=(f+(((a[((j|0)+(r<<16>>16<<1)|0)>>1]<<16>>16)*21299|0)>>15)|0)&65535;f=s;s=f+2|0;f=((a[f>>1]<<16>>16)-(a[n>>1]<<16>>16)|0)&65535;var E=z;z=E+2|0;a[E>>1]=f;f=l;l=f+2|0;f=a[f>>1]<<16>>16;E=n;n=E+2|0;f=(f-(a[E>>1]<<16>>16)|0)&65535;E=D;D=E+2|0;a[E>>1]=f;f=3;break;case 3:r=r+1&65535;f=1;break;case 4:n=$b(w|0,y|0,
Hd|0,v|0,t|0,128,o);a[(p|0)>>1]=n;n=$b(w+4|0,y+4|0,Id|0,v+4|0,t+4|0,256,o);a[(p+2|0)>>1]=n;n=ji(w+8|0,y+8|0,Jd|0,v+8|0,t+8|0,256,o);a[(p+4|0)>>1]=n;n=$b(w+12|0,y+12|0,Kd|0,v+12|0,t+12|0,256,o);a[(p+6|0)>>1]=n;n=$b(w+16|0,y+16|0,Ld|0,v+16|0,t+16|0,64,o);a[(p+8|0)>>1]=n;z=w|0;D=y|0;n=u|0;s=A|0;l=C|0;r=0;f=5;break;case 5:f=(r<<16>>16|0)<10?6:8;break;case 6:f=z;z=f+2|0;f=((a[f>>1]<<16>>16)+(a[n>>1]<<16>>16)|0)&65535;E=s;s=E+2|0;a[E>>1]=f;f=a[D>>1]<<16>>16;E=n;n=E+2|0;f=(f+(a[E>>1]<<16>>16)|0)&65535;E=
l;l=E+2|0;a[E>>1]=f;f=D;D=f+2|0;a[((j|0)+(r<<16>>16<<1)|0)>>1]=a[f>>1];f=7;break;case 7:r=r+1&65535;f=5;break;case 8:Ma(A|0,205,10,o);Ma(C|0,205,10,o);Fa(A|0,q,10,o);Fa(C|0,m,10,o);B=g;return;default:x(0,"bad label: "+f)}}function $b(h,k,e,c,b,d){var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A;g=h;f=k;j=e;n=c;l=b;q=d;m=0;o=2147483647;p=j;s=a[(n|0)>>1];n=a[(n+2|0)>>1];v=a[(l|0)>>1];t=a[(l+2|0)>>1];u=(a[(g|0)>>1]<<16>>16)*(s<<16>>16)|0;w=(a[(g+2|0)>>1]<<16>>16)*(n<<16>>16)|0;
y=(a[(f|0)>>1]<<16>>16)*(v<<16>>16)|0;A=(a[(f+2|0)>>1]<<16>>16)*(t<<16>>16)|0;l=0;i=1;break;case 1:i=(l<<16>>16|0)<(q<<16>>16|0)?2:12;break;case 2:r=u;i=s<<16>>16;var C=p;p=C+2|0;i=(r-(i*(a[C>>1]<<16>>16)|0)|0)>>15&65535;r=(i<<16>>16)*(i<<16>>16)|0;i=(r|0)>=(o|0)?3:4;break;case 3:p=p+6|0;i=11;break;case 4:i=w;var C=n<<16>>16,z=p;p=z+2|0;i=(i-(C*(a[z>>1]<<16>>16)|0)|0)>>15&65535;r=r+((i<<16>>16)*(i<<16>>16)|0)|0;i=(r|0)>=(o|0)?5:6;break;case 5:p=p+4|0;i=11;break;case 6:i=y;C=v<<16>>16;z=p;p=z+2|0;
i=(i-(C*(a[z>>1]<<16>>16)|0)|0)>>15&65535;r=r+((i<<16>>16)*(i<<16>>16)|0)|0;i=(r|0)>=(o|0)?7:8;break;case 7:p=p+2|0;i=11;break;case 8:i=A;C=t<<16>>16;z=p;p=z+2|0;i=(i-(C*(a[z>>1]<<16>>16)|0)|0)>>15&65535;r=r+((i<<16>>16)*(i<<16>>16)|0)|0;i=(r|0)<(o|0)?9:10;break;case 9:o=r;m=l;i=10;break;case 10:i=11;break;case 11:l=l+1&65535;i=1;break;case 12:return h=p=j+(m<<16>>16<<2<<1)|0,p=h+2|0,a[(g|0)>>1]=a[h>>1],h=p,p=h+2|0,a[(g+2|0)>>1]=a[h>>1],g=p,p=g+2|0,a[(f|0)>>1]=a[g>>1],a[(f+2|0)>>1]=a[p>>1],m;default:x(0,
"bad label: "+i)}}function ji(h,k,e,c,b,d){var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z,D;g=h;f=k;j=e;n=c;l=b;q=d;p=m=0;s=2147483647;r=j;u=a[(g|0)>>1];w=a[(g+2|0)>>1];y=a[(f|0)>>1];A=a[(f+2|0)>>1];C=a[(n|0)>>1];n=a[(n+2|0)>>1];z=a[(l|0)>>1];D=a[(l+2|0)>>1];l=0;i=1;break;case 1:i=(l<<16>>16|0)<(q<<16>>16|0)?2:11;break;case 2:v=r;r=v+2|0;o=a[v>>1];i=((u<<16>>16)-(o<<16>>16)|0)&65535;o=((u<<16>>16)+(o<<16>>16)|0)&65535;i=((C<<16>>16)*(i<<16>>16)|0)>>15&65535;o=((C<<16>>
16)*(o<<16>>16)|0)>>15&65535;v=(i<<16>>16)*(i<<16>>16)|0;t=(o<<16>>16)*(o<<16>>16)|0;i=r;r=i+2|0;o=a[i>>1];i=((w<<16>>16)-(o<<16>>16)|0)&65535;o=((w<<16>>16)+(o<<16>>16)|0)&65535;i=((n<<16>>16)*(i<<16>>16)|0)>>15&65535;o=((n<<16>>16)*(o<<16>>16)|0)>>15&65535;v=v+((i<<16>>16)*(i<<16>>16)|0)|0;t=t+((o<<16>>16)*(o<<16>>16)|0)|0;i=(v|0)>=(s|0)?3:5;break;case 3:i=(t|0)>=(s|0)?4:5;break;case 4:r=r+4|0;i=10;break;case 5:i=r;r=i+2|0;o=a[i>>1];i=((y<<16>>16)-(o<<16>>16)|0)&65535;o=((y<<16>>16)+(o<<16>>16)|
0)&65535;i=((z<<16>>16)*(i<<16>>16)|0)>>15&65535;o=((z<<16>>16)*(o<<16>>16)|0)>>15&65535;v=v+((i<<16>>16)*(i<<16>>16)|0)|0;t=t+((o<<16>>16)*(o<<16>>16)|0)|0;i=r;r=i+2|0;o=a[i>>1];i=((A<<16>>16)-(o<<16>>16)|0)&65535;o=((A<<16>>16)+(o<<16>>16)|0)&65535;i=((D<<16>>16)*(i<<16>>16)|0)>>15&65535;o=((D<<16>>16)*(o<<16>>16)|0)>>15&65535;v=v+((i<<16>>16)*(i<<16>>16)|0)|0;t=t+((o<<16>>16)*(o<<16>>16)|0)|0;i=(v|0)<(s|0)?6:7;break;case 6:s=v;m=l;p=0;i=7;break;case 7:i=(t|0)<(s|0)?8:9;break;case 8:s=t;m=l;p=1;
i=9;break;case 9:i=10;break;case 10:l=l+1&65535;i=1;break;case 11:r=j+(m<<16>>16<<2<<1)|0;m=m<<16>>16<<1&65535;i=p<<16>>16!=0?12:13;break;case 12:i=r;r=i+2|0;a[(g|0)>>1]=(-(a[i>>1]<<16>>16)|0)&65535;i=r;r=i+2|0;a[(g+2|0)>>1]=(-(a[i>>1]<<16>>16)|0)&65535;i=r;r=i+2|0;a[(f|0)>>1]=(-(a[i>>1]<<16>>16)|0)&65535;a[(f+2|0)>>1]=(-(a[r>>1]<<16>>16)|0)&65535;m=((m<<16>>16)+1|0)&65535;i=14;break;case 13:i=r;r=i+2|0;a[(g|0)>>1]=a[i>>1];i=r;r=i+2|0;a[(g+2|0)>>1]=a[i>>1];i=r;r=i+2|0;a[(f|0)>>1]=a[i>>1];a[(f+2|0)>>
1]=a[r>>1];i=14;break;case 14:return m;default:x(0,"bad label: "+i)}}function Mf(h){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=7;break;case 2:b=0;k=3;break;case 3:k=(b<<16>>16|0)<10?4:6;break;case 4:a[((c|0)+(b<<16>>16<<1)|0)>>1]=0;k=5;break;case 5:b=b+1&65535;k=3;break;case 6:e=0;k=7;break;case 7:return e;default:x(0,"bad label: "+k)}}function je(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&
65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function ki(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:e=(b<<16>>16|0)<31?2:3;break;case 2:d=c>>(b<<16>>16|0);e=3;break;case 3:e=7;break;case 4:b=
(-(b<<16>>16)|0)&65535;d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?5:6;break;case 5:d=c>>31^2147483647;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function Lc(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+c)}}function xb(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j;d=a;i=k;g=e;f=c;d=(d<<16>>16)*(g<<16>>
16)|0;b=(d|0)!=1073741824?1:2;break;case 1:d<<=1;b=3;break;case 2:h[f>>2]=1;d=2147483647;b=3;break;case 3:b=((i<<16>>16)*(g<<16>>16)|0)>>15;j=d+(b<<1)|0;b=(d^b|0)>0?4:7;break;case 4:b=((j^d)>>31|0)!=0?5:6;break;case 5:j=(d>>31|0)!=0?-2147483648:2147483647;h[f>>2]=1;b=6;break;case 6:b=7;break;case 7:return j;default:x(0,"bad label: "+b)}}function Mc(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b+c|0;c=(b^c|0)>=0?1:4;break;case 1:c=((i^b)>>31|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?
-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function Ma(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f;b=h;d=k;i=e;f=b|0;g=d;b=0;c=1;break;case 1:c=(b<<16>>16|0)<(i<<16>>16|0)?2:7;break;case 2:c=(a[f>>1]<<16>>16|0)<(g<<16>>16|0)?3:4;break;case 3:c=g;var j=f;f=j+2|0;a[j>>1]=c;g=((g<<16>>16)+(d<<16>>16)|0)&65535;c=5;break;case 4:g=f;f=g+2|0;g=((a[g>>1]<<16>>16)+(d<<16>>16)|0)&65535;c=5;break;case 5:c=6;break;case 6:b=b+1&65535;c=1;
break;case 7:return;default:x(0,"bad label: "+c)}}function gh(R,k,e,c,b,d,i,g,f,j,n,l){var q=B;B+=36;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var m;for(m=0;;)switch(m){case 0:var p,o,r,s,v,t,u,w,y,A,C,z,D,E,F,I,K,J,G,H,N,L=q,M=q+12,S=q+24,Z,P,Q,T;p=R;o=k;r=e;s=c;v=b;t=d;u=i;w=g;y=f;A=j;C=n;z=l;F=0;m=(p|0)==6?3:1;break;case 1:m=(p|0)==4?3:2;break;case 2:m=(p|0)==3?3:4;break;case 3:T=128;Q=h[(C+84|0)>>2];m=5;break;case 4:T=64;Q=h[(C+80|0)>>2];m=5;break;case 5:I=Ga(14,r,z)&65535;E=((o<<
16>>16)-11|0)&65535;a[(S|0)>>1]=((a[(v|0)>>1]<<16>>16)-13|0)&65535;a[(S+2|0)>>1]=((a[(v+2|0)>>1]<<16>>16)-14|0)&65535;K=je(E,1,z);K=((K<<16>>16)+15|0)&65535;K=$(a[(v+4|0)>>1],K,z);a[(S+4|0)>>1]=K;K=$(a[(v+6|0)>>1],E,z);a[(S+6|0)>>1]=K;K=((E<<16>>16)+1|0)&65535;E=$(a[(v+8|0)>>1],K,z);a[(S+8|0)>>1]=E;K=a[(S|0)>>1];E=1;m=6;break;case 6:m=(E<<16>>16|0)<5?7:11;break;case 7:m=(a[(S+(E<<16>>16<<1)|0)>>1]<<16>>16|0)>(K<<16>>16|0)?8:9;break;case 8:K=a[(S+(E<<16>>16<<1)|0)>>1];m=9;break;case 9:m=10;break;case 10:E=
E+1&65535;m=6;break;case 11:K=K+1&65535;E=0;m=12;break;case 12:m=(E<<16>>16|0)<5?13:15;break;case 13:m=((K<<16>>16)-(a[(S+(E<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;G=a[(s+(E<<16>>16<<1)|0)>>1]<<16>>16<<16;G=ki(G,m,z);Pa(G,L+(E<<16>>16<<1)|0,M+(E<<16>>16<<1)|0,z);m=14;break;case 14:E=E+1&65535;m=12;break;case 15:P=2147483647;D=Q|0;E=0;m=16;break;case 16:m=(E<<16>>16|0)<(T<<16>>16|0)?17:23;break;case 17:J=D;D=J+2|0;J=a[J>>1];H=D;D=H+2|0;H=a[H>>1];D=D+2|0;D=D+2|0;m=(J<<16>>16|0)<=(t<<16>>16|0)?18:21;break;
case 18:H=Lc(H,I,z);G=Lc(J,J,z);m=Lc(H,H,z);N=Lc(H,J,z);G=xb(a[(L|0)>>1],a[(M|0)>>1],G,z);Z=xb(a[(L+2|0)>>1],a[(M+2|0)>>1],J,z);G=Mc(G,Z,z);Z=xb(a[(L+4|0)>>1],a[(M+4|0)>>1],m,z);G=Mc(G,Z,z);Z=xb(a[(L+6|0)>>1],a[(M+6|0)>>1],H,z);G=Mc(G,Z,z);Z=xb(a[(L+8|0)>>1],a[(M+8|0)>>1],N,z);G=Mc(G,Z,z);m=(G|0)<(P|0)?19:20;break;case 19:P=G;F=E;m=20;break;case 20:m=21;break;case 21:m=22;break;case 22:E=E+1&65535;m=16;break;case 23:D=je(F,2,z)<<16>>16;Q=D=Q+(D<<1)|0;D=Q+2|0;a[u>>1]=a[Q>>1];u=D;D=u+2|0;H=a[u>>1];
u=D;D=u+2|0;a[y>>1]=a[u>>1];a[A>>1]=a[D>>1];a:{y=H;A=z;D=void 0;for(D=0;;)switch(D){case 0:var O,W;O=y;D=I;W=A;O=(O<<16>>16)*(D<<16>>16)|0;D=(O|0)!=1073741824?1:2;break;case 1:O<<=1;D=3;break;case 2:h[W>>2]=1;O=2147483647;D=3;break;case 3:G=O;break a;default:x(0,"bad label: "+D)}G=void 0}K=(10-(o<<16>>16)|0)&65535;G=ki(G,K,z);a[w>>1]=G>>16&65535;o=F;B=q;return o;default:x(0,"bad label: "+m)}}function Yb(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p,o,r,s,v;d=h;i=k;g=e;f=c;g=g+
(((f<<16>>16)-1|0)<<1)|0;i=i+((((f<<16>>16)-1|0)-10|0)<<1)|0;f=f<<16>>16>>2&65535;b=1;break;case 1:b=(f<<16>>16|0)!=0?2:8;break;case 2:m=q=l=n=2048;v=d+20|0;p=i;o=i=p-2|0;r=i=o-2|0;j=i=r-2|0;i=j-2|0;s=j;j=5;b=3;break;case 3:b=(j<<16>>16|0)!=0?4:6;break;case 4:b=a[v>>1]<<16>>16;var t=p;p=t+2|0;n=n+(b*(a[t>>1]<<16>>16)|0)|0;b=a[v>>1]<<16>>16;t=o;o=t+2|0;l=l+(b*(a[t>>1]<<16>>16)|0)|0;b=a[v>>1]<<16>>16;t=r;r=t+2|0;q=q+(b*(a[t>>1]<<16>>16)|0)|0;b=v;v=b-2|0;b=a[b>>1]<<16>>16;t=s;s=t+2|0;m=m+(b*(a[t>>1]<<
16>>16)|0)|0;b=a[v>>1]<<16>>16;t=p;p=t+2|0;n=n+(b*(a[t>>1]<<16>>16)|0)|0;b=a[v>>1]<<16>>16;t=o;o=t+2|0;l=l+(b*(a[t>>1]<<16>>16)|0)|0;b=a[v>>1]<<16>>16;t=r;r=t+2|0;q=q+(b*(a[t>>1]<<16>>16)|0)|0;b=v;v=b-2|0;b=a[b>>1]<<16>>16;t=s;s=t+2|0;m=m+(b*(a[t>>1]<<16>>16)|0)|0;b=5;break;case 5:j=j-1&65535;b=3;break;case 6:n=n+((a[v>>1]<<16>>16)*(a[p>>1]<<16>>16)|0)|0;l=l+((a[v>>1]<<16>>16)*(a[o>>1]<<16>>16)|0)|0;q=q+((a[v>>1]<<16>>16)*(a[r>>1]<<16>>16)|0)|0;m=m+((a[v>>1]<<16>>16)*(a[s>>1]<<16>>16)|0)|0;b=n>>12&
65535;t=g;g=t-2|0;a[t>>1]=b;b=l>>12&65535;t=g;g=t-2|0;a[t>>1]=b;b=q>>12&65535;t=g;g=t-2|0;a[t>>1]=b;b=m>>12&65535;t=g;g=t-2|0;a[t>>1]=b;b=7;break;case 7:f=f-1&65535;b=1;break;case 8:return;default:x(0,"bad label: "+b)}}function la(a,k){var e;a:{e=a;var c;for(c=0;;)switch(c){case 0:var b,d,i;b=e;d=k;i=b+32768|0;c=(b^32768|0)>=0?1:4;break;case 1:c=((i^b)>>31|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:e=i;break a;default:x(0,"bad label: "+
c)}e=void 0}return e>>16&65535}function ad(h,k,e,c,b,d,i,g){var f=B;B+=180;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z,D,E,F,I,K,J,G,H,L,M,S,P,Z,O,Q,T,X,W,$,V,Y=f,ca,ba,aa,da,ga,ha=f+160;n=h;l=k;q=e;m=c;p=b;o=d;r=i;$=s=g;j=(n<<16>>16|0)==10?1:2;break;case 1:W=1;j=3;break;case 2:W=0;j=3;break;case 3:v=a[(r+(a[(o|0)>>1]<<16>>16<<1)|0)>>1];a[(ha|0)>>1]=v;H=-1;S=1;E=0;j=4;break;case 4:j=(E<<16>>16|0)<(n<<16>>16|0)?5:7;
break;case 5:j=E;var ia=$;$=ia+2|0;a[ia>>1]=j;j=6;break;case 6:E=E+1&65535;j=4;break;case 7:E=1;j=8;break;case 8:j=(E<<16>>16|0)<(q<<16>>16|0)?9:78;break;case 9:t=a[(r+(a[(o+2|0)>>1]<<16>>16<<1)|0)>>1];a[(ha+2|0)>>1]=t;ga=((a[(m+(v<<16>>16<<1)|0)>>1]<<16>>16)+(a[(m+(t<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;Q=a[((p+(v<<16>>16)*80|0)+(v<<16>>16<<1)|0)>>1]<<16>>16<<12;Q=Q+(a[((p+(t<<16>>16)*80|0)+(t<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;Q=Q+(a[((p+(v<<16>>16)*80|0)+(t<<16>>16<<1)|0)>>1]<<16>>16<<13)|0;Q=Q+
32768|0;ca=Y|0;w=a[(o+6|0)>>1];j=10;break;case 10:j=(w<<16>>16|0)<40?11:13;break;case 11:V=p+(w<<16>>16)*80|0;O=a[(V+(w<<16>>16<<1)|0)>>1]<<16>>16>>1;O=O+(a[(V+(v<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[(V+(t<<16>>16<<1)|0)>>1]<<16>>16)|0;j=((ga<<16>>16)+(a[(m+(w<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;ia=ca;ca=ia+2|0;a[ia>>1]=j;j=(O+2|0)>>2&65535;ia=ca;ca=ia+2|0;a[ia>>1]=j;j=12;break;case 12:w=((w<<16>>16)+(l<<16>>16)|0)&65535;j=10;break;case 13:L=-1;P=1;da=0;J=a[(o+4|0)>>1];G=a[(o+6|0)>>1];O=Q>>12;F=
a[(o+4|0)>>1];j=14;break;case 14:j=(F<<16>>16|0)<40?15:23;break;case 15:V=p+(F<<16>>16)*80|0;T=(O+(a[(V+(F<<16>>16<<1)|0)>>1]<<16>>16)|0)>>1;T=T+(a[(V+(v<<16>>16<<1)|0)>>1]<<16>>16)|0;T=T+(a[(V+(t<<16>>16<<1)|0)>>1]<<16>>16)|0;ca=Y|0;aa=a[(m+(F<<16>>16<<1)|0)>>1];w=a[(o+6|0)>>1];j=16;break;case 16:j=(w<<16>>16|0)<40?17:21;break;case 17:ba=aa<<16>>16;X=ca;ca=X+2|0;ba=(ba+(a[X>>1]<<16>>16)|0)&65535;M=((ba<<16>>16)*(ba<<16>>16)|0)>>15&65535;X=(T+(a[(V+(w<<16>>16<<1)|0)>>1]<<16>>16)|0)>>2;j=ca;ca=j+2|
0;X=(X+(a[j>>1]<<16>>16)|0)>>1;j=((M<<16>>16)*(P<<16>>16)|0)>((L<<16>>16)*X|0)?18:19;break;case 18:L=M;da=ba;P=X&65535;J=F;G=w;j=19;break;case 19:j=20;break;case 20:w=((w<<16>>16)+(l<<16>>16)|0)&65535;j=16;break;case 21:j=22;break;case 22:F=((F<<16>>16)+(l<<16>>16)|0)&65535;j=14;break;case 23:u=J;w=G;a[(ha+4|0)>>1]=J;a[(ha+6|0)>>1]=G;Q=(P<<16>>16<<15)+32768|0;ca=Y|0;A=a[(o+10|0)>>1];j=24;break;case 24:j=(A<<16>>16|0)<40?25:27;break;case 25:V=p+(A<<16>>16)*80|0;O=a[(V+(A<<16>>16<<1)|0)>>1]<<16>>16>>
1;O=O+(a[(V+(v<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[(V+(t<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[(V+(u<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[(V+(w<<16>>16<<1)|0)>>1]<<16>>16)|0;j=((da<<16>>16)+(a[(m+(A<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;ia=ca;ca=ia+2|0;a[ia>>1]=j;j=(O+2|0)>>2&65535;ia=ca;ca=ia+2|0;a[ia>>1]=j;j=26;break;case 26:A=((A<<16>>16)+(l<<16>>16)|0)&65535;j=24;break;case 27:L=-1;P=1;da=0;J=a[(o+8|0)>>1];G=a[(o+10|0)>>1];F=a[(o+8|0)>>1];j=28;break;case 28:j=(F<<16>>16|0)<40?29:37;break;case 29:V=
p+(F<<16>>16)*80|0;T=Q+(a[(V+(F<<16>>16<<1)|0)>>1]<<16>>16<<11)|0;T=T+(a[(V+(v<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;T=T+(a[(V+(t<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;T=T+(a[(V+(u<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;T=T+(a[(V+(w<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;ca=Y|0;aa=a[(m+(F<<16>>16<<1)|0)>>1];A=a[(o+10|0)>>1];j=30;break;case 30:j=(A<<16>>16|0)<40?31:35;break;case 31:ba=aa<<16>>16;X=ca;ca=X+2|0;ba=(ba+(a[X>>1]<<16>>16)|0)&65535;M=X=T+(a[(V+(A<<16>>16<<1)|0)>>1]<<16>>16<<12)|0;Z=ca;ca=Z+2|0;Z=(M+(a[Z>>
1]<<16>>16<<14)|0)>>16&65535;M=((ba<<16>>16)*(ba<<16>>16)|0)>>15&65535;j=((M<<16>>16)*(P<<16>>16)|0)>((L<<16>>16)*(Z<<16>>16)|0)?32:33;break;case 32:L=M;da=ba;P=Z;J=F;G=A;j=33;break;case 33:j=34;break;case 34:A=((A<<16>>16)+(l<<16>>16)|0)&65535;j=30;break;case 35:j=36;break;case 36:F=((F<<16>>16)+(l<<16>>16)|0)&65535;j=28;break;case 37:y=J;A=G;a[(ha+8|0)>>1]=J;a[(ha+10|0)>>1]=G;Q=(P<<16>>16<<15)+32768|0;ca=Y|0;z=a[(o+14|0)>>1];j=38;break;case 38:j=(z<<16>>16|0)<40?39:41;break;case 39:O=a[((p+(z<<
16>>16)*80|0)+(z<<16>>16<<1)|0)>>1]<<16>>16>>1;O=O+(a[((p+(v<<16>>16)*80|0)+(z<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(t<<16>>16)*80|0)+(z<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(u<<16>>16)*80|0)+(z<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(w<<16>>16)*80|0)+(z<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(y<<16>>16)*80|0)+(z<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(A<<16>>16)*80|0)+(z<<16>>16<<1)|0)>>1]<<16>>16)|0;j=((da<<16>>16)+(a[(m+(z<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;ia=ca;ca=ia+2|0;a[ia>>
1]=j;j=(O+4|0)>>3&65535;ia=ca;ca=ia+2|0;a[ia>>1]=j;j=40;break;case 40:z=((z<<16>>16)+(l<<16>>16)|0)&65535;j=38;break;case 41:L=-1;P=1;da=0;J=a[(o+12|0)>>1];G=a[(o+14|0)>>1];F=a[(o+12|0)>>1];j=42;break;case 42:j=(F<<16>>16|0)<40?43:51;break;case 43:V=p+(F<<16>>16)*80|0;T=Q+(a[(V+(F<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;T=T+(a[(V+(v<<16>>16<<1)|0)>>1]<<16>>16<<11)|0;T=T+(a[(V+(t<<16>>16<<1)|0)>>1]<<16>>16<<11)|0;T=T+(a[(V+(u<<16>>16<<1)|0)>>1]<<16>>16<<11)|0;T=T+(a[(V+(w<<16>>16<<1)|0)>>1]<<16>>16<<11)|
0;T=T+(a[(V+(y<<16>>16<<1)|0)>>1]<<16>>16<<11)|0;T=T+(a[(V+(A<<16>>16<<1)|0)>>1]<<16>>16<<11)|0;ca=Y|0;aa=a[(m+(F<<16>>16<<1)|0)>>1];z=a[(o+14|0)>>1];j=44;break;case 44:j=(z<<16>>16|0)<40?45:49;break;case 45:ba=aa<<16>>16;X=ca;ca=X+2|0;ba=(ba+(a[X>>1]<<16>>16)|0)&65535;M=X=T+(a[(V+(z<<16>>16<<1)|0)>>1]<<16>>16<<11)|0;Z=ca;ca=Z+2|0;Z=(M+(a[Z>>1]<<16>>16<<14)|0)>>16&65535;M=((ba<<16>>16)*(ba<<16>>16)|0)>>15&65535;j=((M<<16>>16)*(P<<16>>16)|0)>((L<<16>>16)*(Z<<16>>16)|0)?46:47;break;case 46:L=M;da=ba;
P=Z;J=F;G=z;j=47;break;case 47:j=48;break;case 48:z=((z<<16>>16)+(l<<16>>16)|0)&65535;j=44;break;case 49:j=50;break;case 50:F=((F<<16>>16)+(l<<16>>16)|0)&65535;j=42;break;case 51:C=J;z=G;a[(ha+12|0)>>1]=J;a[(ha+14|0)>>1]=G;j=(W<<16>>16|0)!=0?52:67;break;case 52:Q=(P<<16>>16<<15)+32768|0;ca=Y|0;D=a[(o+18|0)>>1];j=53;break;case 53:j=(D<<16>>16|0)<40?54:56;break;case 54:O=a[((p+(D<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16>>1;O=O+(a[((p+(v<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+
(t<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(u<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(w<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(y<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(A<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(C<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16)|0;O=O+(a[((p+(z<<16>>16)*80|0)+(D<<16>>16<<1)|0)>>1]<<16>>16)|0;j=((da<<16>>16)+(a[(m+(D<<16>>16<<1)|0)>>1]<<16>>16)|0)&65535;ia=ca;ca=ia+2|0;
a[ia>>1]=j;j=(O+4|0)>>3&65535;ia=ca;ca=ia+2|0;a[ia>>1]=j;j=55;break;case 55:D=((D<<16>>16)+(l<<16>>16)|0)&65535;j=53;break;case 56:L=-1;P=1;da=0;J=a[(o+16|0)>>1];G=a[(o+18|0)>>1];F=a[(o+16|0)>>1];j=57;break;case 57:j=(F<<16>>16|0)<40?58:66;break;case 58:V=p+(F<<16>>16)*80|0;T=Q+(a[(V+(F<<16>>16<<1)|0)>>1]<<16>>16<<9)|0;T=T+(a[((p+(v<<16>>16)*80|0)+(F<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;T=T+(a[((p+(t<<16>>16)*80|0)+(F<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;T=T+(a[((p+(u<<16>>16)*80|0)+(F<<16>>16<<1)|0)>>
1]<<16>>16<<10)|0;T=T+(a[((p+(w<<16>>16)*80|0)+(F<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;T=T+(a[((p+(y<<16>>16)*80|0)+(F<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;T=T+(a[((p+(A<<16>>16)*80|0)+(F<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;T=T+(a[((p+(C<<16>>16)*80|0)+(F<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;T=T+(a[((p+(z<<16>>16)*80|0)+(F<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;ca=Y|0;aa=a[(m+(F<<16>>16<<1)|0)>>1];D=a[(o+18|0)>>1];j=59;break;case 59:j=(D<<16>>16|0)<40?60:64;break;case 60:ba=aa<<16>>16;X=ca;ca=X+2|0;ba=(ba+(a[X>>
1]<<16>>16)|0)&65535;M=((ba<<16>>16)*(ba<<16>>16)|0)>>15&65535;Z=X=T+(a[(V+(D<<16>>16<<1)|0)>>1]<<16>>16<<10)|0;j=ca;ca=j+2|0;Z=(Z+(a[j>>1]<<16>>16<<13)|0)>>16&65535;j=((M<<16>>16)*(P<<16>>16)|0)>((L<<16>>16)*(Z<<16>>16)|0)?61:62;break;case 61:L=M;da=ba;P=Z;J=F;G=D;j=62;break;case 62:j=63;break;case 63:D=((D<<16>>16)+(l<<16>>16)|0)&65535;j=59;break;case 64:j=65;break;case 65:F=((F<<16>>16)+(l<<16>>16)|0)&65535;j=57;break;case 66:a[(ha+16|0)>>1]=J;a[(ha+18|0)>>1]=G;j=67;break;case 67:j=((S<<16>>16)*
(L<<16>>16)|0)>((H<<16>>16)*(P<<16>>16)|0)?68:72;break;case 68:H=L;S=P;j=(W<<16>>16|0)!=0?69:70;break;case 69:j=s;ia=ha|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(j,ia,20,1);j=71;break;case 70:ia=s;j=ha|0;x(true,"memcpy given 16 bytes to copy. Problem with quantum=1 corrections perhaps?");for(var la=j+16;j<la;j++,ia++)N[ia]=N[j];j=71;break;case 71:j=72;break;case 72:K=a[(o+2|0)>>1];F=1;I=2;j=73;break;case 73:j=(I<<16>>16|0)<(n<<16>>16|0)?74:76;break;
case 74:a[(o+(F<<16>>16<<1)|0)>>1]=a[(o+(I<<16>>16<<1)|0)>>1];j=75;break;case 75:F=F+1&65535;I=I+1&65535;j=73;break;case 76:a[(o+(((n<<16>>16)-1|0)<<1)|0)>>1]=K;j=77;break;case 77:E=E+1&65535;j=8;break;case 78:B=f;return;default:x(0,"bad label: "+j)}}function ke(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e<<16>>16|0)==-32768?1:2;break;case 1:var c=32767;k=3;break;case 2:c=-(e<<16>>16)|0;k=3;break;case 3:return c&65535;default:x(0,"bad label: "+k)}}function le(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,
i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;case 7:return f;default:x(0,"bad label: "+b)}}function li(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=k;d=0;e=(b<<16>>16|0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;
break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function ra(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g;b=a;d=k;i=e;c=(d<<16>>16|0)!=0?1:11;break;case 1:c=(d<<16>>16|0)>0?2:5;break;case 2:c=(d<<16>>16|0)>15?3:4;break;case 3:d=15;c=4;break;case 4:g=b<<16>>16>>(d<<16>>16|0)&65535;c=10;break;case 5:d=(-(d<<16>>16)|0)&65535;
c=(d<<16>>16|0)>15?6:7;break;case 6:d=15;c=7;break;case 7:g=b<<16>>16<<(d<<16>>16)&65535;c=(g<<16>>16>>(d<<16>>16|0)|0)!=(b<<16>>16|0)?8:9;break;case 8:h[i>>2]=1;g=((b<<16>>16|0)>0?32767:-32768)&65535;c=9;break;case 9:c=10;break;case 10:c=12;break;case 11:g=b;c=12;break;case 12:return g;default:x(0,"bad label: "+c)}}function Gb(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p;d=h;i=k;g=e;f=c;p=0;j=39;b=1;break;case 1:b=(j<<16>>16|0)>=0?2:7;break;case 2:q=a[(d+(j<<16>>16<<1)|0)>>1];
b=(q<<16>>16|0)>=0?3:4;break;case 3:a[(i+(j<<16>>16<<1)|0)>>1]=32767;b=5;break;case 4:a[(i+(j<<16>>16<<1)|0)>>1]=-32767;q=ke(q);a[(d+(j<<16>>16<<1)|0)>>1]=q;b=5;break;case 5:a[(g+(j<<16>>16<<1)|0)>>1]=q;b=6;break;case 6:j=j-1&65535;b=1;break;case 7:j=0;b=8;break;case 8:b=(j<<16>>16|0)<5?9:23;break;case 9:l=0;b=10;break;case 10:b=(l<<16>>16|0)<(8-(f<<16>>16)|0)?11:21;break;case 11:m=32767;n=j;b=12;break;case 12:b=(n<<16>>16|0)<40?13:19;break;case 13:b=(a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16|0)>=0?14:17;
break;case 14:b=(a[(g+(n<<16>>16<<1)|0)>>1]<<16>>16|0)<(m<<16>>16|0)?15:16;break;case 15:m=a[(g+(n<<16>>16<<1)|0)>>1];p=n;b=16;break;case 16:b=17;break;case 17:b=18;break;case 18:n=((n<<16>>16)+5|0)&65535;b=12;break;case 19:a[(g+(p<<16>>16<<1)|0)>>1]=-1;b=20;break;case 20:l=l+1&65535;b=10;break;case 21:b=22;break;case 22:j=j+1&65535;b=8;break;case 23:return;default:x(0,"bad label: "+b)}}function $c(h,k,e,c,b,d,i,g){var f=B;B+=80;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var j;for(j=
0;;)switch(j){case 0:var n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z,D,E=f,F,I,K,J,G,H;n=h;l=k;q=e;m=c;p=b;o=d;r=i;s=g;D=0;I=F=256;K=l;J=n;v=40;j=1;break;case 1:j=(v<<16>>16|0)!=0?2:4;break;case 2:u=K;K=u+2|0;u=a[u>>1];F=le(F,u,u,s);u=J;J=u+2|0;u=a[u>>1];I=I+(((u<<16>>16)*(u<<16>>16)|0)<<1)|0;j=3;break;case 3:v=v-1&65535;j=1;break;case 4:F=Xa(F,s);y=li(F,5,s)>>16&65535;I=Xa(I,s);A=I>>11&65535;K=l+78|0;G=q+78|0;H=E+78|0;v=39;j=5;break;case 5:j=(v<<16>>16|0)>=0?6:11;break;case 6:F=y<<16>>16;w=K;K=w-2|0;w=(F*(a[w>>
1]<<16>>16)|0)<<1;u=a[(n+(v<<16>>16<<1)|0)>>1];F=le(w,A,u,s);w=li(F,10,s);w=la(w,s);j=(w<<16>>16|0)>=0?7:8;break;case 7:j=G;G=j-2|0;a[j>>1]=32767;j=9;break;case 8:j=G;G=j-2|0;a[j>>1]=-32767;w=ke(w);j=ke(u);a[(n+(v<<16>>16<<1)|0)>>1]=j;j=9;break;case 9:j=w;var L=H;H=L-2|0;a[L>>1]=j;j=10;break;case 10:v=v-1&65535;j=5;break;case 11:z=-1;v=0;j=12;break;case 12:j=(v<<16>>16|0)<(p<<16>>16|0)?13:23;break;case 13:C=-1;t=v;j=14;break;case 14:j=(t<<16>>16|0)<40?15:19;break;case 15:w=a[(E+(t<<16>>16<<1)|0)>>
1];j=(w<<16>>16|0)>(C<<16>>16|0)?16:17;break;case 16:C=w;D=t;j=17;break;case 17:j=18;break;case 18:t=((t<<16>>16)+(r<<16>>16)|0)&65535;j=14;break;case 19:a[(m+(v<<16>>16<<1)|0)>>1]=D;j=(C<<16>>16|0)>(z<<16>>16|0)?20:21;break;case 20:z=C;a[(o|0)>>1]=v;j=21;break;case 21:j=22;break;case 22:v=v+1&65535;j=12;break;case 23:D=a[(o|0)>>1];a[(o+(p<<16>>16<<1)|0)>>1]=D;v=1;j=24;break;case 24:j=(v<<16>>16|0)<(p<<16>>16|0)?25:29;break;case 25:D=D+1&65535;j=(D<<16>>16|0)>=(p<<16>>16|0)?26:27;break;case 26:D=
0;j=27;break;case 27:a[(o+(v<<16>>16<<1)|0)>>1]=D;a[(o+(((v<<16>>16)+(p<<16>>16)|0)<<1)|0)>>1]=D;j=28;break;case 28:v=v+1&65535;j=24;break;case 29:B=f;return;default:x(0,"bad label: "+j)}}function Sb(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g;b=a;d=k;i=e;c=(d<<16>>16|0)>15?1:2;break;case 1:g=0;c=7;break;case 2:g=ra(b,d,i);c=(d<<16>>16|0)>0?3:6;break;case 3:c=(b<<16>>16&1<<((d<<16>>16)-1|0)|0)!=0?4:5;break;case 4:g=g+1&65535;c=5;break;case 5:c=6;break;case 6:c=7;break;case 7:return g;default:x(0,
"bad label: "+c)}}function Wc(R,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;b=R;c=k;d=e;c=(c|0)==8?1:12;break;case 1:c=b+2|0;a[c>>1]=a[c>>1]-1&65535;c=(h[(b+8|0)>>2]|0)==0?2:3;break;case 2:h[d>>2]=1;a[(b+2|0)>>1]=3;c=11;break;case 3:c=(a[(b+4|0)>>1]<<16>>16|0)>0?4:6;break;case 4:c=(a[(b+2|0)>>1]<<16>>16|0)>2?5:6;break;case 5:h[d>>2]=2;c=b+4|0;a[c>>1]=a[c>>1]-1&65535;c=10;break;case 6:c=(a[(b+2|0)>>1]<<16>>16|0)==0?7:8;break;case 7:h[d>>2]=2;a[(b+2|0)>>1]=a[(b|0)>>1];c=9;break;case 8:h[d>>2]=3;c=
9;break;case 9:c=10;break;case 10:c=11;break;case 11:c=13;break;case 12:a[(b+2|0)>>1]=a[(b|0)>>1];h[d>>2]=0;c=13;break;case 13:h[(b+8|0)>>2]=h[d>>2];return;default:x(0,"bad label: "+c)}}function me(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n;d=R;i=k;g=e;f=c;j=h[(f+88|0)>>2];n=h[(f+92|0)>>2];f=0;b=1;break;case 1:b=(f<<16>>16|0)<(a[(j+(d<<1)|0)>>1]<<16>>16|0)?2:4;break;case 2:a:{b=a[(h[(n+(d<<2)|0)>>2]+(f<<16>>16<<1)|0)>>1];for(var l=i,q=void 0,q=0;;)switch(q){case 0:var m,p,o,r;m=b;p=
l;r=o=0;q=1;break;case 1:q=(r<<16>>16|0)<(m<<16>>16|0)?2:4;break;case 2:o=o<<16>>16<<1&65535;q=p;p=q+2|0;q=a[q>>1];o=(o<<16>>16|q<<16>>16)&65535;q=3;break;case 3:r=r+1&65535;q=1;break;case 4:b=o;break a;default:x(0,"bad label: "+q)}b=void 0}a[(g+(f<<16>>16<<1)|0)>>1]=b;i=i+(a[(h[(n+(d<<2)|0)>>2]+(f<<16>>16<<1)|0)>>1]<<16>>16<<1)|0;b=3;break;case 3:f=f+1&65535;b=1;break;case 4:return;default:x(0,"bad label: "+b)}}function mi(R){var k;for(k=0;;)switch(k){case 0:var e,c,b;c=R;k=(c|0)==0?1:2;break;case 1:e=
-1;k=8;break;case 2:h[c>>2]=0;b=k=va(1764);k=(k|0)==0?3:4;break;case 3:e=-1;k=8;break;case 4:k=(og(b|0)<<16>>16|0)!=0?6:5;break;case 5:k=(Uh(b+1748|0)<<16>>16|0)!=0?6:7;break;case 6:e=b;ni(e);e=-1;k=8;break;case 7:a:{e=b;k=void 0;for(k=0;;)switch(k){case 0:var d;d=k=e;k=(k|0)==0?1:2;break;case 1:k=3;break;case 2:nc(d|0,0);b:{k=d+1304|0;for(var i=void 0,i=0;;)switch(i){case 0:var g;g=k;i=(g|0)==0?1:2;break;case 1:i=3;break;case 2:ta(g+80|0,0,20,1);ta(g|0,0,80,1);ta(g+104|0,0,340,1);c:for(var i=g+102|
0,f=void 0,f=0;;)switch(f){case 0:var j;j=i;f=(j|0)==0?1:2;break;case 1:f=3;break;case 2:a[(j|0)>>1]=4096;f=3;break;case 3:break c;default:x(0,"bad label: "+f)}c:{i=g+100|0;f=void 0;for(f=0;;)switch(f){case 0:var n;n=i;f=(n|0)==0?1:2;break;case 1:f=3;break;case 2:a[(n|0)>>1]=0;f=3;break;case 3:break c;default:x(0,"bad label: "+f)}}i=3;break;case 3:break b;default:x(0,"bad label: "+i)}}Uh(d+1748|0);h[(d+1760|0)>>2]=0;k=3;break;case 3:break a;default:x(0,"bad label: "+k)}}h[c>>2]=b;e=0;k=8;break;case 8:return e;
default:x(0,"bad label: "+k)}}function ni(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e|0)==0?2:1;break;case 1:k=(h[e>>2]|0)==0?2:3;break;case 2:k=4;break;case 3:wa(h[e>>2]);h[e>>2]=0;k=4;break;case 4:return;default:x(0,"bad label: "+k)}}function Je(h,k,e,c,b){var d=B;B+=204;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q=d,m=d+116,p,o;g=h;f=k;j=e;n=c;l=b;p=(g|0)+1164|0;i=(n|0)==6?2:1;break;case 1:i=(n|0)==5?2:3;break;case 2:me(8,j,q|
0,(g|0)+1168|0);i=4;break;case 3:me(f,j,q|0,(g|0)+1168|0);i=4;break;case 4:ug(g|0,f,q|0,n,l,m|0);bi(g+1304|0,f,l,m|0,p);Vh(g+1748|0,l,160,p);o=0;i=5;break;case 5:i=(o<<16>>16|0)<160?6:8;break;case 6:a[(l+(o<<16>>16<<1)|0)>>1]=a[(l+(o<<16>>16<<1)|0)>>1]<<16>>16&65528;i=7;break;case 7:o=o+1&65535;i=5;break;case 8:B=d;return;default:x(0,"bad label: "+i)}}function oi(a,k){var e=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var c;for(c=0;;)switch(c){case 0:var b,d,i,g=e;d=a;i=k;c=(d|
0)==0?1:2;break;case 1:b=-1;c=8;break;case 2:h[d>>2]=0;c=va(12);h[g>>2]=c;c=(c|0)==0?3:4;break;case 3:b=-1;c=8;break;case 4:h[(h[g>>2]|0)>>2]=0;h[(h[g>>2]+4|0)>>2]=0;h[(h[g>>2]+8|0)>>2]=i;a:{c=h[g>>2]|0;for(var f=void 0,f=0;;)switch(f){case 0:var j,n,l;n=c;f=(n|0)==0?1:2;break;case 1:j=-1;f=5;break;case 2:h[n>>2]=0;l=f=va(12);f=(f|0)==0?3:4;break;case 3:j=-1;f=5;break;case 4:Xh(l);h[n>>2]=l;j=0;f=5;break;case 5:c=j;break a;default:x(0,"bad label: "+f)}c=void 0}c=(c<<16>>16|0)!=0?6:5;break;case 5:c=
(Lf(h[g>>2]+4|0,h[(h[g>>2]+8|0)>>2])<<16>>16|0)!=0?6:7;break;case 6:b=g;pi(b);b=-1;c=8;break;case 7:a:{b=h[g>>2];c=void 0;for(c=0;;)switch(c){case 0:var q;q=c=b;c=(c|0)==0?1:2;break;case 1:c=3;break;case 2:Xh(h[(q|0)>>2]);od(h[(q+4|0)>>2]);c=3;break;case 3:break a;default:x(0,"bad label: "+c)}}h[d>>2]=h[g>>2];b=0;c=8;break;case 8:return d=b,B=e,d;default:x(0,"bad label: "+c)}}function pi(a){var k;for(k=0;;)switch(k){case 0:var e;e=a;k=(e|0)==0?2:1;break;case 1:k=(h[e>>2]|0)==0?2:3;break;case 2:k=
4;break;case 3:a:{k=h[e>>2]|0;for(var c=void 0,c=0;;)switch(c){case 0:var b;b=k;c=(b|0)==0?2:1;break;case 1:c=(h[b>>2]|0)==0?2:3;break;case 2:c=4;break;case 3:wa(h[b>>2]);h[b>>2]=0;c=4;break;case 4:break a;default:x(0,"bad label: "+c)}}nd(h[e>>2]+4|0);wa(h[e>>2]);h[e>>2]=0;k=4;break;case 4:return;default:x(0,"bad label: "+k)}}function Vc(R,k,e,c,b){var d=B;B+=436;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var i;for(i=0;;)switch(i){case 0:var g,f,j,n,l,q=d,m=d+116,p;i=R;g=k;f=e;j=c;
n=b;l=i;p=0;i=1;break;case 1:i=(p<<16>>16|0)<244?2:4;break;case 2:a[(j+(p<<16>>16<<1)|0)>>1]=0;i=3;break;case 3:p=p+1&65535;i=1;break;case 4:p=0;i=5;break;case 5:i=(p<<16>>16|0)<160?6:8;break;case 6:a[(f+(p<<16>>16<<1)|0)>>1]=a[(f+(p<<16>>16<<1)|0)>>1]<<16>>16&65528;i=7;break;case 7:p=p+1&65535;i=5;break;case 8:Yh(h[(l|0)>>2],f,160);Vf(h[(l+4|0)>>2],g,f,q|0,n,m|0);$h(h[n>>2],q|0,j|0,h[(l+4|0)>>2]+2392|0);B=d;return;default:x(0,"bad label: "+i)}}function ha(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,
d;c=a;b=k;d=e;b=(c<<16>>16)-(b<<16>>16)|0;c=(b+32768|0)>>>0>65535?1:5;break;case 1:c=(b|0)>32767?2:3;break;case 2:b=32767;c=4;break;case 3:b=-32768;c=4;break;case 4:h[d>>2]=1;c=5;break;case 5:return b&65535;default:x(0,"bad label: "+c)}}function lc(a,k,e,c,b,d,i,g,f,j,h,l,q,m,p,o){var r=B;B+=48;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var s;for(s=0;;)switch(s){case 0:var v,t,u,w,y,A,C,z,D,E,F,I,K,J,G,H,L=r,N=r+24,M;v=a;t=k;u=e;w=c;y=b;A=d;C=i;z=g;D=f;E=j;F=h;I=l;K=q;J=m;G=p;H=o;s=
(v|0)==7?2:1;break;case 1:s=(v|0)==6?2:3;break;case 2:M=u;s=4;break;case 3:M=t;s=4;break;case 4:ab(y,M,L|0);ab(y,w,N|0);a=F;k=L|0;x(true,"memcpy given 22 bytes to copy. Problem with quantum=1 corrections perhaps?");na(a,k,22,1);Ca(A,F,K,40,E,0);Ca(N|0,K,K,40,E,0);Yb(A,C,G,40);C=I;x(true,"memcpy given 80 bytes to copy. Problem with quantum=1 corrections perhaps?");na(C,G,80,1);Ca(A,I,H,40,z,0);Yb(L|0,H,J,40);Ca(N|0,J,J,40,D,0);B=r;return;default:x(0,"bad label: "+s)}}function Ob(h,k,e,c,b,d,i,g,f,
j,n,l,q,m,p,o){var r;for(r=0;;)switch(r){case 0:var s,v,t,u,w,y,A,C,z,D,B,F,I,K,J,G,H,L,N,M,O,P,S;s=h;r=k;v=e;t=c;u=b;w=d;y=i;A=g;C=f;z=j;D=n;B=l;F=q;I=m;K=p;J=o;r=(r|0)!=7?1:2;break;case 1:N=1;M=13;O=t;r=3;break;case 2:N=2;M=11;O=t<<16>>16>>1&65535;r=3;break;case 3:r=(t<<16>>16|0)<13017?4:5;break;case 4:a[J>>1]=t;r=6;break;case 5:a[J>>1]=13017;r=6;break;case 6:P=K+(v<<16>>16<<1)|0;S=C|0;G=20;r=7;break;case 7:r=(G<<16>>16|0)!=0?8:10;break;case 8:r=P;P=r+2|0;r=((a[r>>1]<<16>>16)*(O<<16>>16)|0)<<1;
L=P;P=L-2|0;L=((a[L>>1]<<16>>16)*(O<<16>>16)|0)<<1;var Q=S;S=Q+2|0;r=r+(((a[Q>>1]<<16>>16)*(u<<16>>16)|0)<<1)|0;Q=S;S=Q+2|0;L=L+(((a[Q>>1]<<16>>16)*(u<<16>>16)|0)<<1)|0;r<<=N<<16>>16;L<<=N<<16>>16;r=(r+32768|0)>>16&65535;Q=P;P=Q+2|0;a[Q>>1]=r;r=(L+32768|0)>>16&65535;L=P;P=L+2|0;a[L>>1]=r;r=9;break;case 9:G=G-1&65535;r=7;break;case 10:Ca(w,K+(v<<16>>16<<1)|0,y+(v<<16>>16<<1)|0,40,B,1);G=30;H=0;r=11;break;case 11:r=(G<<16>>16|0)<40?12:14;break;case 12:a[(F+(H<<16>>16<<1)|0)>>1]=((a[(s+(((v<<16>>16)+
(G<<16>>16)|0)<<1)|0)>>1]<<16>>16)-(a[(y+(((v<<16>>16)+(G<<16>>16)|0)<<1)|0)>>1]<<16>>16)|0)&65535;r=(a[(z+(G<<16>>16<<1)|0)>>1]<<16>>16)*(t<<16>>16)|0;L=r>>14&65535;r=(a[(D+(G<<16>>16<<1)|0)>>1]<<16>>16)*(u<<16>>16)|0;L=((L<<16>>16)+((r>>(M<<16>>16|0)&65535)<<16>>16)|0)&65535;a[(I+(H<<16>>16<<1)|0)>>1]=((a[(A+(G<<16>>16<<1)|0)>>1]<<16>>16)-(L<<16>>16)|0)&65535;r=13;break;case 13:G=G+1&65535;H=H+1&65535;r=11;break;case 14:return;default:x(0,"bad label: "+r)}}function pc(R,k,e){var A;var z;var y;var c;
for(c=0;;)switch(c){case 0:var b,d,i,g,f,j,n;d=R;i=k;g=e;c=(d|0)<=0?1:2;break;case 1:b=a[i>>1]=0;c=5;break;case 2:f=oa(d)<<16>>16&65534;a:{j=f;c=void 0;for(c=0;;)switch(c){case 0:var l,q,m;l=d;q=j;m=0;c=(q<<16>>16|0)>0?1:4;break;case 1:m=l<<(q<<16>>16);c=(m>>(q<<16>>16|0)|0)!=(l|0)?2:3;break;case 2:m=l>>31^2147483647;c=3;break;case 3:c=7;break;case 4:q=(-(q<<16>>16)|0)&65535;c=(q<<16>>16|0)<31?5:6;break;case 5:m=l>>(q<<16>>16|0);c=6;break;case 6:c=7;break;case 7:d=m;break a;default:x(0,"bad label: "+
c)}d=void 0}a[i>>1]=f;d>>=10;f=(d>>15&65535)<<16>>16&63;j=d&65535;j=j<<16>>16&32767;c=(f<<16>>16|0)>15?3:4;break;case 3:f=((f<<16>>16)-16|0)&65535;c=4;break;case 4:b=Nc+(f<<16>>16<<1)|0;y=(ga=M[b]|M[b+1]<<8,ga<<16>>16)<<16>>16<<16,b=y;c=Nc+(f<<16>>16<<1)|0;z=(ga=M[c]|M[c+1]<<8,ga<<16>>16)<<16>>16,c=z;n=Nc+(((f<<16>>16)+1|0)<<1)|0;A=(ga=M[n]|M[n+1]<<8,ga<<16>>16)<<16>>16,n=A;n=(c-n|0)&65535;c=b;b=g;var p=void 0;a:{for(var p=j,o=b,r=void 0,r=0;;)switch(r){case 0:var s,v;s=n;r=p;v=o;s=(s<<16>>16)*(r<<
16>>16)|0;r=(s|0)!=1073741824?1:2;break;case 1:s<<=1;r=3;break;case 2:h[v>>2]=1;s=2147483647;r=3;break;case 3:p=s;break a;default:x(0,"bad label: "+r)}p=void 0}a:{n=p;p=void 0;for(p=0;;)switch(p){case 0:var t,u,w;t=c;p=n;u=b;w=t-p|0;p=((t^p)>>31|0)!=0?1:4;break;case 1:p=((w^t)&-2147483648|0)!=0?2:3;break;case 2:w=(t>>31|0)!=0?-2147483648:2147483647;h[u>>2]=1;p=3;break;case 3:p=4;break;case 4:p=w;break a;default:x(0,"bad label: "+p)}p=void 0}b=p;c=5;break;case 5:return b;default:x(0,"bad label: "+
c)}}function bg(h,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g,f,j,n,l,q;b=h;d=k;l=d+6|0;q=d+8|0;f=32767;i=3;e=1;break;case 1:e=(i<<16>>16|0)<8?2:6;break;case 2:g=l;l=g+2|0;g=a[g>>1]<<16>>16;e=q;q=e+2|0;g=(g-(a[e>>1]<<16>>16)|0)&65535;e=(g<<16>>16|0)<(f<<16>>16|0)?3:4;break;case 3:f=g;e=4;break;case 4:e=5;break;case 5:i=i+1&65535;e=1;break;case 6:j=32767;l=d+2|0;q=d+4|0;i=1;e=7;break;case 7:e=(i<<16>>16|0)<3?8:12;break;case 8:g=l;l=g+2|0;g=a[g>>1]<<16>>16;e=q;q=e+2|0;g=(g-(a[e>>1]<<16>>16)|0)&
65535;e=(g<<16>>16|0)<(j<<16>>16|0)?9:10;break;case 9:j=g;e=10;break;case 10:e=11;break;case 11:i=i+1&65535;e=7;break;case 12:e=(a[(d+2|0)>>1]<<16>>16|0)>32E3?13:14;break;case 13:n=600;e=18;break;case 14:e=(a[(d+2|0)>>1]<<16>>16|0)>30500?15:16;break;case 15:n=800;e=17;break;case 16:n=1100;e=17;break;case 17:e=18;break;case 18:e=(f<<16>>16|0)<1500?20:19;break;case 19:e=(j<<16>>16|0)<(n<<16>>16|0)?20:21;break;case 20:e=b|0;a[e>>1]=a[e>>1]+1&65535;e=22;break;case 21:a[(b|0)>>1]=0;e=22;break;case 22:e=
(a[(b|0)>>1]<<16>>16|0)>=12?23:24;break;case 23:a[(b|0)>>1]=12;c=1;e=25;break;case 24:c=0;e=25;break;case 25:return c;default:x(0,"bad label: "+e)}}function Ca(h,k,e,c,b,d){var i=B;B+=40;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var g;for(g=0;;)switch(g){case 0:var f,j,n,l,q,m,p,o,r,s=i,v,t,u,w,y;f=h;j=k;n=e;l=c;q=b;m=d;s|=0;u=s;w=q;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(u,w,20,1);s=s+20|0;u=n;w=j;t=s-2|0;j=5;g=1;break;case 1:g=(j<<
16>>16|0)!=0?2:20;break;case 2:v=f;o=w;w=o+2|0;o=2048+((a[o>>1]<<16>>16)*(a[v>>1]<<16>>16)|0)|0;r=w;w=r+2|0;r=a[r>>1]<<16>>16;p=v;v=p+2|0;r=2048+(r*(a[p>>1]<<16>>16)|0)|0;p=v;v=p+2|0;o=o-((a[p>>1]<<16>>16)*(a[t>>1]<<16>>16)|0)|0;g=p=3;break;case 3:g=(p<<16>>16|0)!=0?4:6;break;case 4:g=a[v>>1]<<16>>16;var A=t;t=A-2|0;r=r-(g*(a[A>>1]<<16>>16)|0)|0;g=v;v=g+2|0;o=o-((a[g>>1]<<16>>16)*(a[t>>1]<<16>>16)|0)|0;g=a[v>>1]<<16>>16;A=t;t=A-2|0;r=r-(g*(a[A>>1]<<16>>16)|0)|0;g=v;v=g+2|0;o=o-((a[g>>1]<<16>>16)*
(a[t>>1]<<16>>16)|0)|0;g=a[v>>1]<<16>>16;A=t;t=A-2|0;r=r-(g*(a[A>>1]<<16>>16)|0)|0;g=v;v=g+2|0;o=o-((a[g>>1]<<16>>16)*(a[t>>1]<<16>>16)|0)|0;g=5;break;case 5:p=p-1&65535;g=3;break;case 6:g=(o+134217728|0)>>>0<268435455?7:8;break;case 7:y=o>>12&65535;g=12;break;case 8:g=(o|0)>134217727?9:10;break;case 9:y=32767;g=11;break;case 10:y=-32768;g=11;break;case 11:g=12;break;case 12:r=r-((a[(f+2|0)>>1]<<16>>16)*(y<<16>>16)|0)|0;t=y;g=s;s=g+2|0;a[g>>1]=t;t=y;g=u;u=g+2|0;a[g>>1]=t;t=s;g=(r+134217728|0)>>>0<
268435455?13:14;break;case 13:y=r>>12&65535;g=18;break;case 14:g=(r|0)>134217727?15:16;break;case 15:y=32767;g=17;break;case 16:y=-32768;g=17;break;case 17:g=18;break;case 18:g=y;A=s;s=A+2|0;a[A>>1]=g;g=y;A=u;u=A+2|0;a[A>>1]=g;g=19;break;case 19:j=j-1&65535;g=1;break;case 20:t=n+18|0;j=((l<<16>>16)-10|0)>>1&65535;g=21;break;case 21:g=(j<<16>>16|0)!=0?22:40;break;case 22:v=f;o=w;w=o+2|0;o=2048+((a[o>>1]<<16>>16)*(a[v>>1]<<16>>16)|0)|0;r=w;w=r+2|0;r=a[r>>1]<<16>>16;p=v;v=p+2|0;r=2048+(r*(a[p>>1]<<16>>
16)|0)|0;p=v;v=p+2|0;o=o-((a[p>>1]<<16>>16)*(a[t>>1]<<16>>16)|0)|0;p=3;g=23;break;case 23:g=(p<<16>>16|0)!=0?24:26;break;case 24:g=a[v>>1]<<16>>16;A=t;t=A-2|0;r=r-(g*(a[A>>1]<<16>>16)|0)|0;g=v;v=g+2|0;o=o-((a[g>>1]<<16>>16)*(a[t>>1]<<16>>16)|0)|0;g=a[v>>1]<<16>>16;A=t;t=A-2|0;r=r-(g*(a[A>>1]<<16>>16)|0)|0;g=v;v=g+2|0;o=o-((a[g>>1]<<16>>16)*(a[t>>1]<<16>>16)|0)|0;g=a[v>>1]<<16>>16;A=t;t=A-2|0;r=r-(g*(a[A>>1]<<16>>16)|0)|0;g=v;v=g+2|0;o=o-((a[g>>1]<<16>>16)*(a[t>>1]<<16>>16)|0)|0;g=25;break;case 25:p=
p-1&65535;g=23;break;case 26:g=(o+134217728|0)>>>0<268435455?27:28;break;case 27:y=o>>12&65535;g=32;break;case 28:g=(o|0)>134217727?29:30;break;case 29:y=32767;g=31;break;case 30:y=-32768;g=31;break;case 31:g=32;break;case 32:r=r-((a[(f+2|0)>>1]<<16>>16)*(y<<16>>16)|0)|0;t=y;g=u;u=g+2|0;a[g>>1]=t;t=u;g=(r+134217728|0)>>>0<268435455?33:34;break;case 33:g=r>>12&65535;A=u;u=A+2|0;a[A>>1]=g;g=38;break;case 34:g=(r|0)>134217727?35:36;break;case 35:g=u;u=g+2|0;a[g>>1]=32767;g=37;break;case 36:g=u;u=g+2|
0;a[g>>1]=-32768;g=37;break;case 37:g=38;break;case 38:g=39;break;case 39:j=j-1&65535;g=21;break;case 40:g=(m<<16>>16|0)!=0?41:42;break;case 41:g=q;A=n+(((l<<16>>16)-10|0)<<1)|0;x(true,"memcpy given 20 bytes to copy. Problem with quantum=1 corrections perhaps?");na(g,A,20,1);g=42;break;case 42:B=i;return;default:x(0,"bad label: "+g)}}function Pf(h){var k;for(k=0;;)switch(k){case 0:var e,c;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=3;break;case 2:a[(c|0)>>1]=0;k=c+2|0;for(e=k+14;k<e;k++)N[k]=0;e=0;k=3;
break;case 3:return e;default:x(0,"bad label: "+k)}}function ne(a){a=((a<<16>>16)-((a<<16>>16|0)<0&1)|0)&65535;return(a<<16>>16^a<<16>>16>>15)&65535}function yb(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f;d=a;b=k;i=e;g=c;i=(b<<16>>16)*(i<<16>>16)|0;b=(i|0)!=1073741824?1:6;break;case 1:f=(i<<1)+d|0;b=(d^i|0)>0?2:5;break;case 2:b=((f^d)>>31|0)!=0?3:4;break;case 3:f=(d>>31|0)!=0?-2147483648:2147483647;h[g>>2]=1;b=4;break;case 4:b=5;break;case 5:b=7;break;case 6:h[g>>2]=1;f=2147483647;b=7;break;
case 7:return f;default:x(0,"bad label: "+b)}}function Oc(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b-c|0;c=((b^c)>>31|0)!=0?1:4;break;case 1:c=((i^b)&-2147483648|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function ld(h){var k;for(k=0;;)switch(k){case 0:var e,c,b,d;c=h;k=(c|0)==0?1:2;break;case 1:e=-1;k=19;break;case 2:a[(c+110|0)>>1]=0;a[(c+112|0)>>1]=0;a[(c+102|0)>>1]=0;a[(c+
104|0)>>1]=0;a[(c+106|0)>>1]=0;a[(c+108|0)>>1]=0;a[(c+116|0)>>1]=0;a[(c+100|0)>>1]=0;a[(c+98|0)>>1]=0;a[(c+94|0)>>1]=0;a[(c+96|0)>>1]=0;b=a[(c+114|0)>>1]=0;k=3;break;case 3:k=(b<<16>>16|0)<3?4:10;break;case 4:d=0;k=5;break;case 5:k=(d<<16>>16|0)<2?6:8;break;case 6:a[(((c+72|0)+(b<<16>>16<<2)|0)+(d<<16>>16<<1)|0)>>1]=0;k=7;break;case 7:d=d+1&65535;k=5;break;case 8:k=9;break;case 9:b=b+1&65535;k=3;break;case 10:b=0;k=11;break;case 11:k=(b<<16>>16|0)<5?12:14;break;case 12:a[((c+84|0)+(b<<16>>16<<1)|
0)>>1]=0;k=13;break;case 13:b=b+1&65535;k=11;break;case 14:b=0;k=15;break;case 15:k=(b<<16>>16|0)<9?16:18;break;case 16:a[((c|0)+(b<<16>>16<<1)|0)>>1]=150;a[((c+36|0)+(b<<16>>16<<1)|0)>>1]=150;a[((c+18|0)+(b<<16>>16<<1)|0)>>1]=150;a[((c+54|0)+(b<<16>>16<<1)|0)>>1]=0;k=17;break;case 17:b=b+1&65535;k=15;break;case 18:a[(c+118|0)>>1]=13106;a[(c+120|0)>>1]=0;a[(c+122|0)>>1]=0;a[(c+124|0)>>1]=0;a[(c+126|0)>>1]=13106;e=0;k=19;break;case 19:return e;default:x(0,"bad label: "+k)}}function Ph(h,k,e,c){var b;
for(b=0;;)switch(b){case 0:var d,i,g,f;d=h;i=k;g=e;f=c;g=la(g,f);b=(g<<16>>16|0)>0?1:3;break;case 1:b=(qi(i,g,21298,f)|0)>0?2:3;break;case 2:b=d+104|0;a[b>>1]=(a[b>>1]<<16>>16|16384)&65535;b=3;break;case 3:return;default:x(0,"bad label: "+b)}}function qi(a,k,e,c){a:{var b;for(b=0;;)switch(b){case 0:var d,i;b=k;d=e;i=c;d=(b<<16>>16)*(d<<16>>16)|0;b=(d|0)!=1073741824?1:2;break;case 1:d<<=1;b=3;break;case 2:h[i>>2]=1;d=2147483647;b=3;break;case 3:k=d;break a;default:x(0,"bad label: "+b)}k=void 0}return k=
Oc(a,k,c)}function Yd(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;b=h;c=k;d=e;var i=ra(a[(b+104|0)>>1],1,d);a[(b+104|0)>>1]=i;c=(c<<16>>16|0)!=0?1:2;break;case 1:c=ra(a[(b+104|0)>>1],1,d);a[(b+104|0)>>1]=c;c=b+104|0;a[c>>1]=(a[c>>1]<<16>>16|8192)&65535;c=2;break;case 2:return;default:x(0,"bad label: "+c)}}function dg(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f;b=h;d=k;i=e;f=g=0;c=1;break;case 1:c=(f<<16>>16|0)<2?2:6;break;case 2:c=ha(a[(b+112|0)>>1],a[(d+(f<<16>>16<<1)|0)>>1],i);c=ne(c);
c=(c<<16>>16|0)<4?3:4;break;case 3:g=((g<<16>>16)+1|0)&65535;c=4;break;case 4:a[(b+112|0)>>1]=a[(d+(f<<16>>16<<1)|0)>>1];c=5;break;case 5:f=f+1&65535;c=1;break;case 6:c=ra(a[(b+102|0)>>1],1,i);a[(b+102|0)>>1]=c;c=$(a[(b+110|0)>>1],g,i);c=(c<<16>>16|0)>=4?7:8;break;case 7:c=b+102|0;a[c>>1]=(a[c>>1]<<16>>16|16384)&65535;c=8;break;case 8:a[(b+110|0)>>1]=g;return;default:x(0,"bad label: "+c)}}function Wf(h,k,e){var c=B;B+=20;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var b;for(b=0;;)switch(b){case 0:var d,
i,g,f=c,j,n;d=h;i=k;g=e;n=j=0;b=1;break;case 1:b=(n<<16>>16|0)<160?2:4;break;case 2:j=yb(j,a[(i+(((n<<16>>16)-40|0)<<1)|0)>>1],a[(i+(((n<<16>>16)-40|0)<<1)|0)>>1],g);b=3;break;case 3:n=n+1&65535;b=1;break;case 4:b=(Oc(j,343040,g)|0)<0?5:6;break;case 5:a[(d+102|0)>>1]=a[(d+102|0)>>1]<<16>>16&16383;b=6;break;case 6:b=(Oc(j,15E3,g)|0)<0?7:8;break;case 7:a[(d+108|0)>>1]=a[(d+108|0)>>1]<<16>>16&16383;b=8;break;case 8:return ri(d,i,f|0,g),h=si(d,f|0,j,g),B=c,h;default:x(0,"bad label: "+b)}}function Pc(a,
h){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=h;d=0;e=(b<<16>>16|0)<0?1:4;break;case 1:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<15?2:3;break;case 2:d=c<<16>>16>>(b<<16>>16|0)&65535;e=3;break;case 3:e=7;break;case 4:d=c<<16>>16<<(b<<16>>16)&65535;e=(d<<16>>16>>(b<<16>>16|0)|0)!=(c<<16>>16|0)?5:6;break;case 5:d=(c<<16>>16>>15^32767)&65535;e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function ac(a,h){var e;for(e=0;;)switch(e){case 0:var c,b,d;c=a;b=h;d=0;e=(b<<16>>16|
0)>0?1:4;break;case 1:d=c<<(b<<16>>16);e=(d>>(b<<16>>16|0)|0)!=(c|0)?2:3;break;case 2:d=c>>31^2147483647;e=3;break;case 3:e=7;break;case 4:b=(-(b<<16>>16)|0)&65535;e=(b<<16>>16|0)<31?5:6;break;case 5:d=c>>(b<<16>>16|0);e=6;break;case 6:e=7;break;case 7:return d;default:x(0,"bad label: "+e)}}function bb(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;c=a;b=k;d=e;b=((c<<16>>16)*(b<<16>>16)|0)>>15;c=(b|0)>32767?1:2;break;case 1:h[d>>2]=1;b=32767;c=2;break;case 2:return b&65535;default:x(0,"bad label: "+
c)}}function ti(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=a;c=k;d=e;i=b+c|0;c=(b^c|0)>=0?1:4;break;case 1:c=((i^b)>>31|0)!=0?2:3;break;case 2:i=(b>>31|0)!=0?-2147483648:2147483647;h[d>>2]=1;c=3;break;case 3:c=4;break;case 4:return i;default:x(0,"bad label: "+c)}}function ri(h,k,e,c){var b=B;B+=320;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");var d;for(d=0;;)switch(d){case 0:var i,g,f,j,n=b;i=h;d=k;g=e;f=c;ui(d,n|0,i+72|0,f);j=0;d=1;break;case 1:d=(j<<16>>16|0)<40?2:4;break;
case 2:oe(n+((j<<16>>16<<2|0)<<1)|0,n+(((j<<16>>16<<2|0)+2|0)<<1)|0,(i+72|0)+4|0,f);oe(n+(((j<<16>>16<<2|0)+1|0)<<1)|0,n+(((j<<16>>16<<2|0)+3|0)<<1)|0,(i+72|0)+8|0,f);d=3;break;case 3:j=j+1&65535;d=1;break;case 4:j=0;d=5;break;case 5:d=(j<<16>>16|0)<20?6:8;break;case 6:zb(n+((j<<16>>16<<3|0)<<1)|0,n+(((j<<16>>16<<3|0)+4|0)<<1)|0,i+84|0,f);zb(n+(((j<<16>>16<<3|0)+2|0)<<1)|0,n+(((j<<16>>16<<3|0)+6|0)<<1)|0,(i+84|0)+2|0,f);zb(n+(((j<<16>>16<<3|0)+3|0)<<1)|0,n+(((j<<16>>16<<3|0)+7|0)<<1)|0,(i+84|0)+8|
0,f);d=7;break;case 7:j=j+1&65535;d=5;break;case 8:j=0;d=9;break;case 9:d=(j<<16>>16|0)<10?10:12;break;case 10:zb(n+((j<<16>>16<<4|0)<<1)|0,n+(((j<<16>>16<<4|0)+8|0)<<1)|0,(i+84|0)+4|0,f);zb(n+(((j<<16>>16<<4|0)+4|0)<<1)|0,n+(((j<<16>>16<<4|0)+12|0)<<1)|0,(i+84|0)+6|0,f);d=11;break;case 11:j=j+1&65535;d=9;break;case 12:h=Ra(n|0,(i+54|0)+16|0,32,40,4,1,15,f);a[(g+16|0)>>1]=h;h=Ra(n|0,(i+54|0)+14|0,16,20,8,7,16,f);a[(g+14|0)>>1]=h;h=Ra(n|0,(i+54|0)+12|0,16,20,8,3,16,f);a[(g+12|0)>>1]=h;h=Ra(n|0,(i+
54|0)+10|0,16,20,8,2,16,f);a[(g+10|0)>>1]=h;h=Ra(n|0,(i+54|0)+8|0,16,20,8,6,16,f);a[(g+8|0)>>1]=h;h=Ra(n|0,(i+54|0)+6|0,8,10,16,4,16,f);a[(g+6|0)>>1]=h;h=Ra(n|0,(i+54|0)+4|0,8,10,16,12,16,f);a[(g+4|0)>>1]=h;h=Ra(n|0,(i+54|0)+2|0,8,10,16,8,16,f);a[(g+2|0)>>1]=h;i=Ra(n|0,i+54|0,8,10,16,0,16,f);a[(g|0)>>1]=i;B=b;return;default:x(0,"bad label: "+d)}}function si(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p,o;d=h;i=k;g=e;f=c;j=l=0;b=1;break;case 1:b=(j<<16>>16|0)<9?2:4;break;case 2:b=
db(a[((d|0)+(j<<16>>16<<1)|0)>>1]);m=Pc(a[((d|0)+(j<<16>>16<<1)|0)>>1],b,f);var r=ra(a[(i+(j<<16>>16<<1)|0)>>1],1,f);m=xa(r,m);b=ha(b,5,f);m=Pc(m,b,f);l=yb(l,m,m,f);b=3;break;case 3:j=j+1&65535;b=1;break;case 4:n=ac(l,6,f)>>16&65535;n=bb(n,3641,f);j=l=0;b=5;break;case 5:b=(j<<16>>16|0)<9?6:8;break;case 6:l=ti(l,a[((d|0)+(j<<16>>16<<1)|0)>>1]<<16>>16,f);b=7;break;case 7:j=j+1&65535;b=5;break;case 8:p=ac(l,13,f)>>16&65535;q=ha(p,0,f);q=bb(-2808,q,f);q=$(q,1260,f);b=(q<<16>>16|0)<720?9:10;break;case 9:q=
720;b=10;break;case 10:b=ra(a[(d+100|0)>>1],1,f);a[(d+100|0)>>1]=b;b=(n<<16>>16|0)>(q<<16>>16|0)?11:12;break;case 11:b=d+100|0;a[b>>1]=(a[b>>1]<<16>>16|16384)&65535;b=12;break;case 12:b=(Oc(g,15E3,f)|0)<0?13:14;break;case 13:o=1;b=15;break;case 14:o=0;b=15;break;case 15:return vi(d,o,f),h=wi(d,o,f),a[(d+122|0)>>1]=h,xi(d,i,f),i=yi(d,p,o,f),a[(d+120|0)>>1]=i,a[(d+120|0)>>1];default:x(0,"bad label: "+b)}}function vi(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g;b=h;d=k;i=e;c=(a[(b+118|0)>>1]<<
16>>16|0)<(a[(b+126|0)>>1]<<16>>16|0)?1:5;break;case 1:c=(a[(b+126|0)>>1]<<16>>16|0)<19660?2:3;break;case 2:g=2621;c=4;break;case 3:g=6553;c=4;break;case 4:c=9;break;case 5:c=(a[(b+126|0)>>1]<<16>>16|0)<19660?6:7;break;case 6:g=2621;c=8;break;case 7:g=655;c=8;break;case 8:c=9;break;case 9:c=a[(b+126|0)>>1]<<16>>16<<16;c=qi(c,g,a[(b+126|0)>>1],i);c=yb(c,g,a[(b+118|0)>>1],i);c=la(c,i);a[(b+126|0)>>1]=c;c=(a[(b+126|0)>>1]<<16>>16|0)<13106?10:11;break;case 10:a[(b+126|0)>>1]=13106;c=11;break;case 11:c=
(d<<16>>16|0)!=0?12:13;break;case 12:a[(b+126|0)>>1]=13106;c=13;break;case 13:return;default:x(0,"bad label: "+c)}}function wi(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d;b=h;c=k;d=e;var i=ra(a[(b+106|0)>>1],1,d);a[(b+106|0)>>1]=i;i=ra(a[(b+108|0)>>1],1,d);a[(b+108|0)>>1]=i;c=(c<<16>>16|0)==0?1:6;break;case 1:c=(a[(b+126|0)>>1]<<16>>16|0)>19660?2:3;break;case 2:c=b+106|0;a[c>>1]=(a[c>>1]<<16>>16|16384)&65535;c=3;break;case 3:c=(a[(b+126|0)>>1]<<16>>16|0)>16383?4:5;break;case 4:c=b+108|0;a[c>>
1]=(a[c>>1]<<16>>16|16384)&65535;c=5;break;case 5:c=6;break;case 6:c=(a[(b+126|0)>>1]<<16>>16|0)>22936?7:8;break;case 7:c=$(a[(b+116|0)>>1],1,d);a[(b+116|0)>>1]=c;c=9;break;case 8:a[(b+116|0)>>1]=0;c=9;break;case 9:if(((a[(b+106|0)>>1]<<16>>16&32640)<<16>>16|0)==32640){var g=1;c=11}else c=10;break;case 10:g=((a[(b+108|0)>>1]<<16>>16&32767)<<16>>16|0)==32767;c=11;break;case 11:return g&1;default:x(0,"bad label: "+c)}}function xi(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g,f,j,n,l;b=h;d=k;i=
e;zi(b,d,i);n=2;c=(30720&a[(b+100|0)>>1]<<16>>16|0)==0?1:4;break;case 1:c=(a[(b+102|0)>>1]<<16>>16&30720|0)==0?2:4;break;case 2:c=(a[(b+114|0)>>1]<<16>>16|0)==0?3:4;break;case 3:f=1638;j=2097;c=9;break;case 4:c=(a[(b+98|0)>>1]<<16>>16|0)==0?5:7;break;case 5:c=(a[(b+114|0)>>1]<<16>>16|0)==0?6:7;break;case 6:f=491;j=1867;c=8;break;case 7:f=0;j=1638;n=0;c=8;break;case 8:c=9;break;case 9:g=0;c=10;break;case 10:c=(g<<16>>16|0)<9?11:20;break;case 11:l=ha(a[((b+36|0)+(g<<16>>16<<1)|0)>>1],a[((b|0)+(g<<16>>
16<<1)|0)>>1],i);c=(l<<16>>16|0)<0?12:15;break;case 12:l=Xd(j,l,i);l=$(a[((b|0)+(g<<16>>16<<1)|0)>>1],l,i);c=$(-2,l,i);a[((b|0)+(g<<16>>16<<1)|0)>>1]=c;c=(a[((b|0)+(g<<16>>16<<1)|0)>>1]<<16>>16|0)<40?13:14;break;case 13:a[((b|0)+(g<<16>>16<<1)|0)>>1]=40;c=14;break;case 14:c=18;break;case 15:l=Xd(f,l,i);l=$(a[((b|0)+(g<<16>>16<<1)|0)>>1],l,i);c=$(n,l,i);a[((b|0)+(g<<16>>16<<1)|0)>>1]=c;c=(a[((b|0)+(g<<16>>16<<1)|0)>>1]<<16>>16|0)>16E3?16:17;break;case 16:a[((b|0)+(g<<16>>16<<1)|0)>>1]=16E3;c=17;break;
case 17:c=18;break;case 18:c=19;break;case 19:g=g+1&65535;c=10;break;case 20:g=0;c=21;break;case 21:c=(g<<16>>16|0)<9?22:24;break;case 22:a[((b+36|0)+(g<<16>>16<<1)|0)>>1]=a[(d+(g<<16>>16<<1)|0)>>1];c=23;break;case 23:g=g+1&65535;c=21;break;case 24:return;default:x(0,"bad label: "+c)}}function yi(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n;i=h;b=k;g=e;f=c;b=(b<<16>>16|0)>100?1:2;break;case 1:n=4;j=7;b=3;break;case 2:n=5;j=4;b=3;break;case 3:b=(g<<16>>16|0)!=0?4:5;break;case 4:a[(i+94|
0)>>1]=0;a[(i+96|0)>>1]=0;a[(i+114|0)>>1]=0;d=a[(i+116|0)>>1]=0;b=23;break;case 5:b=(a[(i+116|0)>>1]<<16>>16|0)>100?6:9;break;case 6:b=(a[(i+114|0)>>1]<<16>>16|0)<250?7:8;break;case 7:a[(i+114|0)>>1]=250;b=8;break;case 8:b=9;break;case 9:b=(a[(i+114|0)>>1]<<16>>16|0)!=0?10:11;break;case 10:a[(i+94|0)>>1]=4;d=ha(a[(i+114|0)>>1],1,f);a[(i+114|0)>>1]=d;d=1;b=23;break;case 11:b=(a[(i+100|0)>>1]<<16>>16&16368|0)==0?12:14;break;case 12:b=(a[(i+126|0)>>1]<<16>>16|0)>21298?13:14;break;case 13:d=1;b=23;break;
case 14:b=15;break;case 15:b=(a[(i+100|0)>>1]<<16>>16&16384|0)!=0?16:19;break;case 16:b=$(a[(i+94|0)>>1],1,f);a[(i+94|0)>>1]=b;b=(a[(i+94|0)>>1]<<16>>16|0)>=(n<<16>>16|0)?17:18;break;case 17:a[(i+96|0)>>1]=j;b=18;break;case 18:d=1;b=23;break;case 19:a[(i+94|0)>>1]=0;b=(a[(i+96|0)>>1]<<16>>16|0)>0?20:21;break;case 20:d=ha(a[(i+96|0)>>1],1,f);a[(i+96|0)>>1]=d;d=1;b=23;break;case 21:b=22;break;case 22:d=0;b=23;break;case 23:return d;default:x(0,"bad label: "+b)}}function zi(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,
d,i,g,f,j,n,l,q;b=h;d=k;i=e;c=(a[(b+122|0)>>1]<<16>>16|0)!=0?1:4;break;case 1:c=(a[(b+98|0)>>1]<<16>>16|0)<5?2:3;break;case 2:a[(b+98|0)>>1]=5;c=3;break;case 3:c=4;break;case 4:c=((a[(b+102|0)>>1]<<16>>16&24576)<<16>>16|0)==24576?6:5;break;case 5:c=((a[(b+104|0)>>1]<<16>>16&31744)<<16>>16|0)==31744?6:7;break;case 6:a[(b+98|0)>>1]=20;c=29;break;case 7:c=(a[(b+100|0)>>1]<<16>>16&32640|0)==0?8:9;break;case 8:a[(b+98|0)>>1]=20;c=28;break;case 9:g=j=0;c=10;break;case 10:c=(g<<16>>16|0)<9?11:20;break;case 11:c=
(a[(d+(g<<16>>16<<1)|0)>>1]<<16>>16|0)>(a[((b+18|0)+(g<<16>>16<<1)|0)>>1]<<16>>16|0)?12:13;break;case 12:n=a[(d+(g<<16>>16<<1)|0)>>1];l=a[((b+18|0)+(g<<16>>16<<1)|0)>>1];c=14;break;case 13:n=a[((b+18|0)+(g<<16>>16<<1)|0)>>1];l=a[(d+(g<<16>>16<<1)|0)>>1];c=14;break;case 14:c=(n<<16>>16|0)<184?15:16;break;case 15:n=184;c=16;break;case 16:c=(l<<16>>16|0)<184?17:18;break;case 17:l=184;c=18;break;case 18:c=db(l);l=Pc(l,c,i);f=ra(n,1,i);f=xa(f,l);c=ha(8,c,i);c=ra(f,c,i);j=$(j,c,i);c=19;break;case 19:g=
g+1&65535;c=10;break;case 20:c=(j<<16>>16|0)>1E3?21:22;break;case 21:a[(b+98|0)>>1]=20;c=27;break;case 22:c=(a[(b+100|0)>>1]<<16>>16&16384|0)!=0?23:26;break;case 23:c=(a[(b+98|0)>>1]<<16>>16|0)!=0?24:25;break;case 24:c=ha(a[(b+98|0)>>1],1,i);a[(b+98|0)>>1]=c;c=25;break;case 25:c=26;break;case 26:c=27;break;case 27:c=28;break;case 28:c=29;break;case 29:q=3276;c=(a[(b+98|0)>>1]<<16>>16|0)==20?30:31;break;case 30:q=32767;c=34;break;case 31:c=(a[(b+100|0)>>1]<<16>>16&16384|0)==0?32:33;break;case 32:q=
16383;c=33;break;case 33:c=34;break;case 34:g=0;c=35;break;case 35:c=(g<<16>>16|0)<9?36:38;break;case 36:f=ha(a[(d+(g<<16>>16<<1)|0)>>1],a[((b+18|0)+(g<<16>>16<<1)|0)>>1],i);f=Xd(q,f,i);c=$(a[((b+18|0)+(g<<16>>16<<1)|0)>>1],f,i);a[((b+18|0)+(g<<16>>16<<1)|0)>>1]=c;c=37;break;case 37:g=g+1&65535;c=35;break;case 38:return;default:x(0,"bad label: "+c)}}function ab(h,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i,g;b=h;d=k;i=e;a[i>>1]=a[b>>1];g=10;c=1;break;case 1:c=(g<<16>>16|0)>=1?2:4;break;case 2:i=
i+2|0;b=b+2|0;d=d+2|0;a[i>>1]=(((a[b>>1]<<16>>16)*(a[(d-2|0)>>1]<<16>>16)|0)+16384|0)>>15&65535;c=3;break;case 3:g=g-1&65535;c=1;break;case 4:return;default:x(0,"bad label: "+c)}}function Fe(R,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n;d=R;i=k;g=e;b=c;j=h[(b+100|0)>>2];n=h[(b+96|0)>>2];b=d>>>0<8?1:6;break;case 1:f=((a[(n+(d<<1)|0)>>1]<<16>>16)-1|0)&65535;b=2;break;case 2:b=(f<<16>>16|0)>=0?3:5;break;case 3:a[(g+(a[(h[(j+(d<<2)|0)>>2]+(f<<16>>16<<1)|0)>>1]<<16>>16<<1)|0)>>1]=(M[i+(f<<
16>>16>>3)|0]&255)>>((f<<16>>16^-1)&7|0)&1;b=4;break;case 4:f=f-1&65535;b=2;break;case 5:b=11;break;case 6:f=((a[(n+(d<<1)|0)>>1]<<16>>16)-1|0)&65535;b=7;break;case 7:b=(f<<16>>16|0)>=0?8:10;break;case 8:a[(g+(f<<16>>16<<1)|0)>>1]=(M[i+(f<<16>>16>>3)|0]&255)>>((f<<16>>16^-1)&7|0)&1;b=9;break;case 9:f=f-1&65535;b=7;break;case 10:b=11;break;case 11:return;default:x(0,"bad label: "+b)}}function ui(h,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p;d=h;i=k;g=e;f=c;m=a[(g|0)>>1];p=a[(g+
2|0)>>1];q=0;b=1;break;case 1:b=(q<<16>>16|0)<40?2:4;break;case 2:b=((m<<16>>16)*21955|0)>>15&65535;j=a[(d+((q<<16>>16<<2|0)<<1)|0)>>1]<<16>>16>>2&65535;b=ha(j,b,f);j=((b<<16>>16)*21955|0)>>15&65535;j=$(m,j,f);l=((p<<16>>16)*6390|0)>>15&65535;n=a[(d+(((q<<16>>16<<2|0)+1|0)<<1)|0)>>1]<<16>>16>>2&65535;l=ha(n,l,f);n=((l<<16>>16)*6390|0)>>15&65535;n=$(p,n,f);m=$(j,n,f);a[(i+((q<<16>>16<<2|0)<<1)|0)>>1]=m;m=ha(j,n,f);a[(i+(((q<<16>>16<<2|0)+1|0)<<1)|0)>>1]=m;j=((b<<16>>16)*21955|0)>>15&65535;n=a[(d+(((q<<
16>>16<<2|0)+2|0)<<1)|0)>>1]<<16>>16>>2&65535;m=ha(n,j,f);j=((m<<16>>16)*21955|0)>>15&65535;j=$(b,j,f);p=((l<<16>>16)*6390|0)>>15&65535;n=a[(d+(((q<<16>>16<<2|0)+3|0)<<1)|0)>>1]<<16>>16>>2&65535;p=ha(n,p,f);n=((p<<16>>16)*6390|0)>>15&65535;n=$(l,n,f);b=$(j,n,f);a[(i+(((q<<16>>16<<2|0)+2|0)<<1)|0)>>1]=b;b=ha(j,n,f);a[(i+(((q<<16>>16<<2|0)+3|0)<<1)|0)>>1]=b;b=3;break;case 3:q=q+1&65535;b=1;break;case 4:a[(g|0)>>1]=m;a[(g+2|0)>>1]=p;return;default:x(0,"bad label: "+b)}}function oe(h,k,e,c){var b,d,i;
b=bb(21955,a[(e|0)>>1],c);b=ha(a[h>>1],b,c);d=bb(21955,b,c);d=$(a[(e|0)>>1],d,c);a[(e|0)>>1]=b;b=bb(6390,a[(e+2|0)>>1],c);b=ha(a[k>>1],b,c);i=bb(6390,b,c);i=$(a[(e+2|0)>>1],i,c);a[(e+2|0)>>1]=b;b=$(d,i,c);e=ra(b,1,c);a[h>>1]=e;b=ha(d,i,c);h=ra(b,1,c);a[k>>1]=h}function zb(h,k,e,c){var b,d;b=bb(13363,a[e>>1],c);b=ha(a[k>>1],b,c);d=bb(13363,b,c);d=$(a[e>>1],d,c);a[e>>1]=b;b=ha(a[h>>1],d,c);e=ra(b,1,c);a[k>>1]=e;b=$(a[h>>1],d,c);k=ra(b,1,c);a[h>>1]=k}function Ra(h,k,e,c,b,d,i,g){var f;for(f=0;;)switch(f){case 0:var j,
n,l,q,m,p,o,r,s,v,t;j=h;n=k;l=e;q=c;m=b;p=d;o=i;r=g;s=0;t=l;f=1;break;case 1:f=(t<<16>>16|0)<(q<<16>>16|0)?2:4;break;case 2:f=ne(a[(j+((((m<<16>>16)*(t<<16>>16)|0)+(p<<16>>16)|0)<<1)|0)>>1]);s=yb(s,1,f,r);f=3;break;case 3:t=t+1&65535;f=1;break;case 4:t=s;v=a[n>>1]<<16>>16;f=ha(16,o,r);v=ac(v,f,r);v=ti(t,v,r);t=ac(s,o,r)>>16&65535;a[n>>1]=t;t=0;f=5;break;case 5:f=(t<<16>>16|0)<(l<<16>>16|0)?6:8;break;case 6:f=ne(a[(j+((((m<<16>>16)*(t<<16>>16)|0)+(p<<16>>16)|0)<<1)|0)>>1]);v=yb(v,1,f,r);f=7;break;
case 7:t=t+1&65535;f=5;break;case 8:return h=ac(v,o,r)>>16&65535;default:x(0,"bad label: "+f)}}function va(a){var k;for(k=0;;)switch(k){case 0:var e,c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A;e=a;k=e>>>0<=244?1:36;break;case 1:k=e>>>0<11?2:3;break;case 2:var C=16;k=4;break;case 3:C=((e+4|0)+7|0)&-8;k=4;break;case 4:b=C;d=b>>>3;i=S[(P|0)>>2]>>>(d>>>0);k=(i&3|0)!=0?5:12;break;case 5:d=d+((i^-1)&1)|0;g=(P+40|0)+(d<<1<<2)|0;f=h[(g+8|0)>>2];j=h[(f+8|0)>>2];k=(g|0)==(j|0)?6:7;break;case 6:h[(P|0)>>2]&=1<<
d^-1;k=11;break;case 7:k=((j>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?8:9;break;case 8:h[(g+8|0)>>2]=j;h[(j+12|0)>>2]=g;k=10;break;case 9:throw V(),"Reached an unreachable!";case 10:k=11;break;case 11:h[(f+4|0)>>2]=d<<3|3;h[((f+(d<<3)|0)+4|0)>>2]|=1;c=f+8|0;k=52;break;case 12:k=b>>>0>S[(P+8|0)>>2]>>>0?13:34;break;case 13:k=(i|0)!=0?14:29;break;case 14:n=i<<d&(1<<d<<1|-(1<<d<<1)|0);n&=-n|0;n=n-1|0;p=l=n>>>12&16;n>>>=l>>>0;l=o=n>>>5&8;p=p+o|0;n>>>=l>>>0;l=o=n>>>2&4;p=p+o|0;n>>>=l>>>0;l=o=n>>>1&2;p=p+o|0;
n>>>=l>>>0;l=o=n>>>1&1;p=p+o|0;n>>>=l>>>0;p=p+n|0;n=(P+40|0)+(p<<1<<2)|0;l=h[(n+8|0)>>2];o=h[(l+8|0)>>2];k=(n|0)==(o|0)?15:16;break;case 15:h[(P|0)>>2]&=1<<p^-1;k=20;break;case 16:k=((o>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?17:18;break;case 17:h[(n+8|0)>>2]=o;h[(o+12|0)>>2]=n;k=19;break;case 18:throw V(),"Reached an unreachable!";case 19:k=20;break;case 20:m=(p<<3)-b|0;h[(l+4|0)>>2]=b|3;q=l+b|0;h[(q+4|0)>>2]=m|1;h[(q+m|0)>>2]=m;r=h[(P+8|0)>>2];k=(r|0)!=0?21:28;break;case 21:s=h[(P+20|0)>>2];v=r>>>3;
u=t=(P+40|0)+(v<<1<<2)|0;k=(h[(P|0)>>2]&1<<v|0)!=0?23:22;break;case 22:h[(P|0)>>2]|=1<<v;k=27;break;case 23:k=((h[(t+8|0)>>2]>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?24:25;break;case 24:u=h[(t+8|0)>>2];k=26;break;case 25:throw V(),"Reached an unreachable!";case 26:k=27;break;case 27:h[(t+8|0)>>2]=s;h[(u+12|0)>>2]=s;h[(s+8|0)>>2]=u;h[(s+12|0)>>2]=t;k=28;break;case 28:h[(P+8|0)>>2]=m;h[(P+20|0)>>2]=q;c=l+8|0;k=52;break;case 29:k=(h[(P+4|0)>>2]|0)!=0?30:32;break;case 30:c=k=Ai(P,b);k=(k|0)!=0?31:32;break;
case 31:k=52;break;case 32:k=33;break;case 33:k=34;break;case 34:k=35;break;case 35:k=43;break;case 36:k=e>>>0>=4294967232?37:38;break;case 37:b=-1;k=42;break;case 38:b=((e+4|0)+7|0)&-8;k=(h[(P+4|0)>>2]|0)!=0?39:41;break;case 39:c=k=Bi(P,b);k=(k|0)!=0?40:41;break;case 40:k=52;break;case 41:k=42;break;case 42:k=43;break;case 43:k=b>>>0<=S[(P+8|0)>>2]>>>0?44:48;break;case 44:w=h[(P+8|0)>>2]-b|0;y=h[(P+20|0)>>2];k=w>>>0>=16?45:46;break;case 45:k=y+b|0;h[(P+20|0)>>2]=k;h[(P+8|0)>>2]=w;h[(k+4|0)>>2]=w|
1;h[(k+w|0)>>2]=w;h[(y+4|0)>>2]=b|3;k=47;break;case 46:k=h[(P+8|0)>>2];h[(P+8|0)>>2]=0;h[(P+20|0)>>2]=0;h[(y+4|0)>>2]=k|3;h[((y+k|0)+4|0)>>2]|=1;k=47;break;case 47:c=y+8|0;k=52;break;case 48:k=b>>>0<S[(P+12|0)>>2]>>>0?49:50;break;case 49:c=h[(P+12|0)>>2]-b|0;h[(P+12|0)>>2]=c;k=h[(P+24|0)>>2];A=k+b|0;h[(P+24|0)>>2]=A;h[(A+4|0)>>2]=c|1;h[(k+4|0)>>2]=b|3;c=k+8|0;k=52;break;case 50:k=51;break;case 51:c=Ci(P,b);k=52;break;case 52:return c;default:x(0,"bad label: "+k)}}function Ai(a,k){var e;for(e=0;;)switch(e){case 0:var c,
b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y;c=a;b=k;d=(h[(c+4|0)>>2]&(-h[(c+4|0)>>2]|0))-1|0;g=i=d>>>12&16;d>>>=i>>>0;i=e=d>>>5&8;g=g+e|0;d>>>=i>>>0;i=e=d>>>2&4;g=g+e|0;d>>>=i>>>0;i=e=d>>>1&2;g=g+e|0;d>>>=i>>>0;i=e=d>>>1&1;g=g+e|0;d>>>=i>>>0;d=i=h[((c+304|0)+((g+d|0)<<2)|0)>>2];g=(h[(d+4|0)>>2]&-8)-b|0;e=1;break;case 1:e=(h[(d+16|0)>>2]|0)!=0?2:3;break;case 2:var A=h[(d+16|0)>>2];e=4;break;case 3:A=h[((d+16|0)+4|0)>>2];e=4;break;case 4:d=A;e=(A|0)!=0?5:8;break;case 5:f=(h[(d+4|0)>>2]&-8)-b|0;e=f>>>0<g>>>
0?6:7;break;case 6:g=f;i=d;e=7;break;case 7:e=1;break;case 8:e=((i>>>0>=S[(c+16|0)>>2]>>>0&1)==1|0)!=0?9:68;break;case 9:j=i+b|0;e=((i>>>0<j>>>0&1)==1|0)!=0?10:67;break;case 10:n=h[(i+24|0)>>2];e=(h[(i+12|0)>>2]|0)!=(i|0)?11:15;break;case 11:q=h[(i+8|0)>>2];l=h[(i+12|0)>>2];e=((q>>>0>=S[(c+16|0)>>2]>>>0&1)==1|0)!=0?12:13;break;case 12:h[(q+12|0)>>2]=l;h[(l+8|0)>>2]=q;e=14;break;case 13:throw V(),"Reached an unreachable!";case 14:e=27;break;case 15:m=l=(i+16|0)+4|0;l=e=h[l>>2];e=(e|0)!=0?17:16;break;
case 16:m=l=i+16|0;l=e=h[l>>2];e=(e|0)!=0?17:26;break;case 17:e=18;break;case 18:p=e=(l+16|0)+4|0;if((h[e>>2]|0)!=0){var C=1;e=20}else e=19;break;case 19:p=C=l+16|0;C=(h[C>>2]|0)!=0;e=20;break;case 20:e=C?21:22;break;case 21:m=l=p;l=h[l>>2];e=18;break;case 22:e=((m>>>0>=S[(c+16|0)>>2]>>>0&1)==1|0)!=0?23:24;break;case 23:h[m>>2]=0;e=25;break;case 24:throw V(),"Reached an unreachable!";case 25:e=26;break;case 26:e=27;break;case 27:e=(n|0)!=0?28:55;break;case 28:o=(c+304|0)+(h[(i+28|0)>>2]<<2)|0;e=(i|
0)==(h[o>>2]|0)?29:32;break;case 29:e=l;h[o>>2]=e;e=(e|0)==0?30:31;break;case 30:h[(c+4|0)>>2]&=1<<h[(i+28|0)>>2]^-1;e=31;break;case 31:e=39;break;case 32:e=((n>>>0>=S[(c+16|0)>>2]>>>0&1)==1|0)!=0?33:37;break;case 33:e=(h[(n+16|0)>>2]|0)==(i|0)?34:35;break;case 34:h[(n+16|0)>>2]=l;e=36;break;case 35:h[((n+16|0)+4|0)>>2]=l;e=36;break;case 36:e=38;break;case 37:throw V(),"Reached an unreachable!";case 38:e=39;break;case 39:e=(l|0)!=0?40:54;break;case 40:e=((l>>>0>=S[(c+16|0)>>2]>>>0&1)==1|0)!=0?41:
52;break;case 41:h[(l+24|0)>>2]=n;r=e=h[(i+16|0)>>2];e=(e|0)!=0?42:46;break;case 42:e=((r>>>0>=S[(c+16|0)>>2]>>>0&1)==1|0)!=0?43:44;break;case 43:h[(l+16|0)>>2]=r;h[(r+24|0)>>2]=l;e=45;break;case 44:throw V(),"Reached an unreachable!";case 45:e=46;break;case 46:s=e=h[((i+16|0)+4|0)>>2];e=(e|0)!=0?47:51;break;case 47:e=((s>>>0>=S[(c+16|0)>>2]>>>0&1)==1|0)!=0?48:49;break;case 48:h[((l+16|0)+4|0)>>2]=s;h[(s+24|0)>>2]=l;e=50;break;case 49:throw V(),"Reached an unreachable!";case 50:e=51;break;case 51:e=
53;break;case 52:throw V(),"Reached an unreachable!";case 53:e=54;break;case 54:e=55;break;case 55:e=g>>>0<16?56:57;break;case 56:h[(i+4|0)>>2]=g+b|3;h[((i+(g+b|0)|0)+4|0)>>2]|=1;e=66;break;case 57:h[(i+4|0)>>2]=b|3;h[(j+4|0)>>2]=g|1;h[(j+g|0)>>2]=g;v=h[(c+8|0)>>2];e=(v|0)!=0?58:65;break;case 58:t=h[(c+20|0)>>2];u=v>>>3;y=w=(c+40|0)+(u<<1<<2)|0;e=(h[(c|0)>>2]&1<<u|0)!=0?60:59;break;case 59:h[(c|0)>>2]|=1<<u;e=64;break;case 60:e=((h[(w+8|0)>>2]>>>0>=S[(c+16|0)>>2]>>>0&1)==1|0)!=0?61:62;break;case 61:y=
h[(w+8|0)>>2];e=63;break;case 62:throw V(),"Reached an unreachable!";case 63:e=64;break;case 64:h[(w+8|0)>>2]=t;h[(y+12|0)>>2]=t;h[(t+8|0)>>2]=y;h[(t+12|0)>>2]=w;e=65;break;case 65:h[(c+8|0)>>2]=g;h[(c+20|0)>>2]=j;e=66;break;case 66:return i+8|0;case 67:e=68;break;case 68:throw V(),"Reached an unreachable!";default:x(0,"bad label: "+e)}}function Bi(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z,D,B,F,I,K,J,G,H,L,N,M,O;b=a;d=k;i=0;g=-d|0;n=d>>>8;e=(n|0)==0?
1:2;break;case 1:j=0;e=6;break;case 2:e=n>>>0>65535?3:4;break;case 3:j=31;e=5;break;case 4:j=n;e=(j-256|0)>>>16&8;j=l=j<<e;l=(l-4096|0)>>>16&4;e=e+l|0;j=l=j<<l;var P=(l-16384|0)>>>16&2;l=P;e=e+P|0;l=(14-e|0)+(j<<l>>>15)|0;j=(l<<1)+(d>>>((l+7|0)>>>0)&1)|0;e=5;break;case 5:e=6;break;case 6:f=e=h[((b+304|0)+(j<<2)|0)>>2];e=(e|0)!=0?7:22;break;case 7:var W=d;e=(j|0)==31?8:9;break;case 8:var Q=0;e=10;break;case 9:Q=31-(((j>>>1)+8|0)-2|0)|0;e=10;break;case 10:q=W<<Q;m=0;e=11;break;case 11:o=(h[(f+4|0)>>
2]&-8)-d|0;e=o>>>0<g>>>0?12:15;break;case 12:i=f;g=e=o;e=(e|0)==0?13:14;break;case 13:e=21;break;case 14:e=15;break;case 15:p=h[((f+16|0)+4|0)>>2];f=h[((f+16|0)+((q>>>31&1)<<2)|0)>>2];e=(p|0)!=0?16:18;break;case 16:e=(p|0)!=(f|0)?17:18;break;case 17:m=p;e=18;break;case 18:e=(f|0)==0?19:20;break;case 19:f=m;e=21;break;case 20:q<<=1;e=11;break;case 21:e=22;break;case 22:e=(f|0)==0?23:27;break;case 23:e=(i|0)==0?24:27;break;case 24:r=(1<<j<<1|-(1<<j<<1)|0)&h[(b+4|0)>>2];e=(r|0)!=0?25:26;break;case 25:f=
r&(-r|0);f=f-1|0;l=e=f>>>12&16;f>>>=e>>>0;e=P=f>>>5&8;l=l+P|0;f>>>=e>>>0;e=P=f>>>2&4;l=l+P|0;f>>>=e>>>0;e=P=f>>>1&2;l=l+P|0;f>>>=e>>>0;e=P=f>>>1&1;l=l+P|0;f>>>=e>>>0;f=l+f|0;f=h[((b+304|0)+(f<<2)|0)>>2];e=26;break;case 26:e=27;break;case 27:e=28;break;case 28:e=(f|0)!=0?29:35;break;case 29:s=(h[(f+4|0)>>2]&-8)-d|0;e=s>>>0<g>>>0?30:31;break;case 30:g=s;i=f;e=31;break;case 31:e=(h[(f+16|0)>>2]|0)!=0?32:33;break;case 32:var T=h[(f+16|0)>>2];e=34;break;case 33:T=h[((f+16|0)+4|0)>>2];e=34;break;case 34:f=
T;e=28;break;case 35:e=(i|0)!=0?36:125;break;case 36:e=g>>>0<(h[(b+8|0)>>2]-d|0)>>>0?37:125;break;case 37:e=((i>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?38:124;break;case 38:v=i+d|0;e=((i>>>0<v>>>0&1)==1|0)!=0?39:123;break;case 39:t=h[(i+24|0)>>2];e=(h[(i+12|0)>>2]|0)!=(i|0)?40:44;break;case 40:w=h[(i+8|0)>>2];u=h[(i+12|0)>>2];e=((w>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?41:42;break;case 41:h[(w+12|0)>>2]=u;h[(u+8|0)>>2]=w;e=43;break;case 42:throw V(),"Reached an unreachable!";case 43:e=56;break;case 44:y=
u=(i+16|0)+4|0;u=e=h[u>>2];e=(e|0)!=0?46:45;break;case 45:y=u=i+16|0;u=e=h[u>>2];e=(e|0)!=0?46:55;break;case 46:e=47;break;case 47:A=e=(u+16|0)+4|0;if((h[e>>2]|0)!=0){var X=1;e=49}else e=48;break;case 48:A=X=u+16|0;X=(h[X>>2]|0)!=0;e=49;break;case 49:e=X?50:51;break;case 50:y=u=A;u=h[u>>2];e=47;break;case 51:e=((y>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?52:53;break;case 52:h[y>>2]=0;e=54;break;case 53:throw V(),"Reached an unreachable!";case 54:e=55;break;case 55:e=56;break;case 56:e=(t|0)!=0?57:84;break;
case 57:C=(b+304|0)+(h[(i+28|0)>>2]<<2)|0;e=(i|0)==(h[C>>2]|0)?58:61;break;case 58:e=u;h[C>>2]=e;e=(e|0)==0?59:60;break;case 59:h[(b+4|0)>>2]&=1<<h[(i+28|0)>>2]^-1;e=60;break;case 60:e=68;break;case 61:e=((t>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?62:66;break;case 62:e=(h[(t+16|0)>>2]|0)==(i|0)?63:64;break;case 63:h[(t+16|0)>>2]=u;e=65;break;case 64:h[((t+16|0)+4|0)>>2]=u;e=65;break;case 65:e=67;break;case 66:throw V(),"Reached an unreachable!";case 67:e=68;break;case 68:e=(u|0)!=0?69:83;break;case 69:e=
((u>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?70:81;break;case 70:h[(u+24|0)>>2]=t;z=e=h[(i+16|0)>>2];e=(e|0)!=0?71:75;break;case 71:e=((z>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?72:73;break;case 72:h[(u+16|0)>>2]=z;h[(z+24|0)>>2]=u;e=74;break;case 73:throw V(),"Reached an unreachable!";case 74:e=75;break;case 75:D=e=h[((i+16|0)+4|0)>>2];e=(e|0)!=0?76:80;break;case 76:e=((D>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?77:78;break;case 77:h[((u+16|0)+4|0)>>2]=D;h[(D+24|0)>>2]=u;e=79;break;case 78:throw V(),"Reached an unreachable!";
case 79:e=80;break;case 80:e=82;break;case 81:throw V(),"Reached an unreachable!";case 82:e=83;break;case 83:e=84;break;case 84:e=g>>>0<16?85:86;break;case 85:h[(i+4|0)>>2]=g+d|3;h[((i+(g+d|0)|0)+4|0)>>2]|=1;e=122;break;case 86:h[(i+4|0)>>2]=d|3;h[(v+4|0)>>2]=g|1;h[(v+g|0)>>2]=g;e=g>>>3>>>0<32?87:94;break;case 87:B=g>>>3;I=F=(b+40|0)+(B<<1<<2)|0;e=(h[(b|0)>>2]&1<<B|0)!=0?89:88;break;case 88:h[(b|0)>>2]|=1<<B;e=93;break;case 89:e=((h[(F+8|0)>>2]>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?90:91;break;case 90:I=
h[(F+8|0)>>2];e=92;break;case 91:throw V(),"Reached an unreachable!";case 92:e=93;break;case 93:h[(F+8|0)>>2]=v;h[(I+12|0)>>2]=v;h[(v+8|0)>>2]=I;h[(v+12|0)>>2]=F;e=121;break;case 94:K=v;H=g>>>8;e=(H|0)==0?95:96;break;case 95:G=0;e=100;break;case 96:e=H>>>0>65535?97:98;break;case 97:G=31;e=99;break;case 98:G=H;e=(G-256|0)>>>16&8;G=l=G<<e;l=(l-4096|0)>>>16&4;e=e+l|0;G=l=G<<l;l=P=(l-16384|0)>>>16&2;e=e+P|0;l=(14-e|0)+(G<<l>>>15)|0;G=(l<<1)+(g>>>((l+7|0)>>>0)&1)|0;e=99;break;case 99:e=100;break;case 100:J=
(b+304|0)+(G<<2)|0;h[(K+28|0)>>2]=G;h[((K+16|0)+4|0)>>2]=0;h[(K+16|0)>>2]=0;e=(h[(b+4|0)>>2]&1<<G|0)!=0?102:101;break;case 101:h[(b+4|0)>>2]|=1<<G;h[J>>2]=K;h[(K+24|0)>>2]=J;e=K;h[(K+12|0)>>2]=e;h[(K+8|0)>>2]=e;e=120;break;case 102:L=h[J>>2];var $=g;e=(G|0)==31?103:104;break;case 103:var Y=0;e=105;break;case 104:Y=31-(((G>>>1)+8|0)-2|0)|0;e=105;break;case 105:N=$<<Y;e=106;break;case 106:e=(h[(L+4|0)>>2]&-8|0)!=(g|0)?107:113;break;case 107:M=(L+16|0)+((N>>>31&1)<<2)|0;N<<=1;e=(h[M>>2]|0)!=0?108:109;
break;case 108:L=h[M>>2];e=112;break;case 109:e=((M>>>0>=S[(b+16|0)>>2]>>>0&1)==1|0)!=0?110:111;break;case 110:h[M>>2]=K;h[(K+24|0)>>2]=L;e=K;h[(K+12|0)>>2]=e;h[(K+8|0)>>2]=e;e=119;break;case 111:throw V(),"Reached an unreachable!";case 112:e=118;break;case 113:O=h[(L+8|0)>>2];if(L>>>0>=S[(b+16|0)>>2]>>>0)e=114;else{var ba=0;e=115}break;case 114:ba=O>>>0>=S[(b+16|0)>>2]>>>0;e=115;break;case 115:e=((ba&1)==1|0)!=0?116:117;break;case 116:e=K;h[(O+12|0)>>2]=e;h[(L+8|0)>>2]=e;h[(K+8|0)>>2]=O;h[(K+12|
0)>>2]=L;h[(K+24|0)>>2]=0;e=119;break;case 117:throw V(),"Reached an unreachable!";case 118:e=106;break;case 119:e=120;break;case 120:e=121;break;case 121:e=122;break;case 122:c=i+8|0;e=126;break;case 123:e=124;break;case 124:throw V(),"Reached an unreachable!";case 125:c=0;e=126;break;case 126:return c;default:x(0,"bad label: "+e)}}function Ci(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u;b=a;d=k;i=-1;f=g=0;e=(h[(qa|0)>>2]|0)!=0?2:1;break;case 1:Di();e=2;break;case 2:e=
(h[(b+440|0)>>2]&0|0)!=0?3:8;break;case 3:e=d>>>0>=S[(qa+12|0)>>2]>>>0?4:8;break;case 4:e=(h[(b+12|0)>>2]|0)!=0?5:8;break;case 5:j=Ei(b,d);e=(j|0)!=0?6:7;break;case 6:c=j;e=91;break;case 7:e=8;break;case 8:e=(h[(b+440|0)>>2]&4|0)!=0?41:9;break;case 9:n=-1;e=(h[(b+24|0)>>2]|0)==0?10:11;break;case 10:var w=0;e=12;break;case 11:w=pe(b,h[(b+24|0)>>2]);e=12;break;case 12:l=w;q=0;e=(l|0)==0?13:21;break;case 13:m=La(0);e=(m|0)!=-1?14:20;break;case 14:q=((d+48|0)+(h[(qa+8|0)>>2]-1|0)|0)&((h[(qa+8|0)>>2]-
1|0)^-1);e=(m&(h[(qa+4|0)>>2]-1|0)|0)==0?16:15;break;case 15:q=q+(((m+(h[(qa+4|0)>>2]-1|0)|0)&((h[(qa+4|0)>>2]-1|0)^-1))-m|0)|0;e=16;break;case 16:e=q>>>0<2147483647?17:19;break;case 17:n=e=La(q);e=(e|0)==(m|0)?18:19;break;case 18:i=m;g=q;e=19;break;case 19:e=20;break;case 20:e=25;break;case 21:q=(((d-h[(b+12|0)>>2]|0)+48|0)+(h[(qa+8|0)>>2]-1|0)|0)&((h[(qa+8|0)>>2]-1|0)^-1);e=q>>>0<2147483647?22:24;break;case 22:n=e=La(q);e=(e|0)==(h[(l|0)>>2]+h[(l+4|0)>>2]|0)?23:24;break;case 23:i=n;g=q;e=24;break;
case 24:e=25;break;case 25:e=(i|0)==-1?26:40;break;case 26:e=(n|0)!=-1?27:36;break;case 27:e=q>>>0<2147483647?28:35;break;case 28:e=q>>>0<(d+48|0)>>>0?29:35;break;case 29:p=(((d+48|0)-q|0)+(h[(qa+8|0)>>2]-1|0)|0)&((h[(qa+8|0)>>2]-1|0)^-1);e=p>>>0<2147483647?30:34;break;case 30:e=La(p);e=(e|0)!=-1?31:32;break;case 31:q=q+p|0;e=33;break;case 32:La(-q|0);n=-1;e=33;break;case 33:e=34;break;case 34:e=35;break;case 35:e=36;break;case 36:e=(n|0)!=-1?37:38;break;case 37:i=n;g=q;e=39;break;case 38:h[(b+440|
0)>>2]|=4;e=39;break;case 39:e=40;break;case 40:e=41;break;case 41:e=(i|0)==-1?42:51;break;case 42:o=((d+48|0)+(h[(qa+8|0)>>2]-1|0)|0)&((h[(qa+8|0)>>2]-1|0)^-1);e=o>>>0<2147483647?43:50;break;case 43:r=La(o);s=La(0);e=(r|0)!=-1?44:49;break;case 44:e=(s|0)!=-1?45:49;break;case 45:e=r>>>0<s>>>0?46:49;break;case 46:v=s-r|0;e=v>>>0>(d+40|0)>>>0?47:48;break;case 47:i=r;g=v;e=48;break;case 48:e=49;break;case 49:e=50;break;case 50:e=51;break;case 51:e=(i|0)!=-1?52:90;break;case 52:e=b+432|0;u=h[e>>2]+g|
0;h[e>>2]=u;e=u>>>0>S[(b+436|0)>>2]>>>0?53:54;break;case 53:h[(b+436|0)>>2]=h[(b+432|0)>>2];e=54;break;case 54:e=(h[(b+24|0)>>2]|0)!=0?62:55;break;case 55:e=(h[(b+16|0)>>2]|0)==0?57:56;break;case 56:e=i>>>0<S[(b+16|0)>>2]>>>0?57:58;break;case 57:h[(b+16|0)>>2]=i;e=58;break;case 58:h[(b+444|0)>>2]=i;h[((b+444|0)+4|0)>>2]=g;h[((b+444|0)+12|0)>>2]=f;h[(b+36|0)>>2]=h[(qa|0)>>2];h[(b+32|0)>>2]=-1;a:{e=b;u=void 0;for(u=0;;)switch(u){case 0:var y,A;y=e;A=0;u=1;break;case 1:u=A>>>0<32?2:4;break;case 2:var C=
u=(y+40|0)+(A<<1<<2)|0;h[(u+12|0)>>2]=C;h[(u+8|0)>>2]=C;u=3;break;case 3:A=A+1|0;u=1;break;case 4:break a;default:x(0,"bad label: "+u)}}e=(b|0)==(P|0)?59:60;break;case 59:Ab(b,i,g-40|0);e=61;break;case 60:e=(b-8|0)+(h[((b-8|0)+4|0)>>2]&-8)|0;Ab(b,e,((i+g|0)-e|0)-40|0);e=61;break;case 61:e=87;break;case 62:t=b+444|0;e=63;break;case 63:if((t|0)!=0)e=64;else{var z=0;e=65}break;case 64:z=(i|0)!=(h[(t|0)>>2]+h[(t+4|0)>>2]|0);e=65;break;case 65:e=z?66:67;break;case 66:t=h[(t+8|0)>>2];e=63;break;case 67:e=
(t|0)!=0?68:73;break;case 68:e=(h[(t+12|0)>>2]&8|0)!=0?73:69;break;case 69:e=(h[(t+12|0)>>2]&0|0)==(f|0)?70:73;break;case 70:e=h[(b+24|0)>>2]>>>0>=S[(t|0)>>2]>>>0?71:73;break;case 71:e=h[(b+24|0)>>2]>>>0<(h[(t|0)>>2]+h[(t+4|0)>>2]|0)>>>0?72:73;break;case 72:e=t+4|0;h[e>>2]=h[e>>2]+g|0;Ab(b,h[(b+24|0)>>2],h[(b+12|0)>>2]+g|0);e=86;break;case 73:e=i>>>0<S[(b+16|0)>>2]>>>0?74:75;break;case 74:h[(b+16|0)>>2]=i;e=75;break;case 75:t=b+444|0;e=76;break;case 76:if((t|0)!=0)e=77;else{var D=0;e=78}break;case 77:D=
(h[(t|0)>>2]|0)!=(i+g|0);e=78;break;case 78:e=D?79:80;break;case 79:t=h[(t+8|0)>>2];e=76;break;case 80:e=(t|0)!=0?81:84;break;case 81:e=(h[(t+12|0)>>2]&8|0)!=0?84:82;break;case 82:e=(h[(t+12|0)>>2]&0|0)==(f|0)?83:84;break;case 83:c=h[(t|0)>>2];h[(t|0)>>2]=i;e=t+4|0;h[e>>2]=h[e>>2]+g|0;c=Fi(b,i,c,d);e=91;break;case 84:Gi(b,i,g,f);e=85;break;case 85:e=86;break;case 86:e=87;break;case 87:e=d>>>0<S[(b+12|0)>>2]>>>0?88:89;break;case 88:c=b+12|0;e=h[c>>2]-d|0;c=h[c>>2]=e;e=h[(b+24|0)>>2];u=e+d|0;h[(b+24|
0)>>2]=u;h[(u+4|0)>>2]=c|1;h[(e+4|0)>>2]=d|3;c=e+8|0;e=91;break;case 89:e=90;break;case 90:h[Ea.ret>>2]=12;c=0;e=91;break;case 91:return c;default:x(0,"bad label: "+e)}}function wa(a){var k;for(k=0;;)switch(k){case 0:var e,c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z,D,B,F,I,K,J,G,H,L,N,M,O,Z,W,Q,T,X,$,Y;e=a;k=(e|0)!=0?1:195;break;case 1:c=e-8|0;if(c>>>0>=S[(P+16|0)>>2]>>>0)k=2;else{var ba=0;k=3}break;case 2:ba=(h[(c+4|0)>>2]&3|0)!=1;k=3;break;case 3:k=((ba&1)==1|0)!=0?4:192;break;case 4:b=h[(c+
4|0)>>2]&-8;d=c+b|0;k=(h[(c+4|0)>>2]&1|0)!=0?76:5;break;case 5:i=h[(c|0)>>2];k=(h[(c+4|0)>>2]&3|0)==0?6:7;break;case 6:b=b+(i+16|0)|0;k=194;break;case 7:k=c+(-i|0)|0;b=b+i|0;c=k;k=((k>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?8:73;break;case 8:k=(c|0)!=(h[(P+20|0)>>2]|0)?9:69;break;case 9:k=i>>>3>>>0<32?10:22;break;case 10:g=h[(c+8|0)>>2];f=h[(c+12|0)>>2];j=i>>>3;k=(g|0)==(f|0)?11:12;break;case 11:h[(P|0)>>2]&=1<<j^-1;k=21;break;case 12:k=(g|0)==((P+40|0)+(j<<1<<2)|0)?14:13;break;case 13:if(g>>>0>=S[(P+
16|0)>>2]>>>0)k=14;else{var ea=0;k=17}break;case 14:if((f|0)==((P+40|0)+(j<<1<<2)|0)){var ca=1;k=16}else k=15;break;case 15:ca=f>>>0>=S[(P+16|0)>>2]>>>0;k=16;break;case 16:ea=ca;k=17;break;case 17:k=((ea&1)==1|0)!=0?18:19;break;case 18:h[(g+12|0)>>2]=f;h[(f+8|0)>>2]=g;k=20;break;case 19:throw V(),"Reached an unreachable!";case 20:k=21;break;case 21:k=68;break;case 22:n=c;l=h[(n+24|0)>>2];k=(h[(n+12|0)>>2]|0)!=(n|0)?23:27;break;case 23:m=h[(n+8|0)>>2];q=h[(n+12|0)>>2];k=((m>>>0>=S[(P+16|0)>>2]>>>0&
1)==1|0)!=0?24:25;break;case 24:h[(m+12|0)>>2]=q;h[(q+8|0)>>2]=m;k=26;break;case 25:throw V(),"Reached an unreachable!";case 26:k=39;break;case 27:p=q=(n+16|0)+4|0;q=k=h[q>>2];k=(k|0)!=0?29:28;break;case 28:p=q=n+16|0;q=k=h[q>>2];k=(k|0)!=0?29:38;break;case 29:k=30;break;case 30:o=k=(q+16|0)+4|0;if((h[k>>2]|0)!=0){var ga=1;k=32}else k=31;break;case 31:o=ga=q+16|0;ga=(h[ga>>2]|0)!=0;k=32;break;case 32:k=ga?33:34;break;case 33:p=q=o;q=h[q>>2];k=30;break;case 34:k=((p>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=
0?35:36;break;case 35:h[p>>2]=0;k=37;break;case 36:throw V(),"Reached an unreachable!";case 37:k=38;break;case 38:k=39;break;case 39:k=(l|0)!=0?40:67;break;case 40:r=(P+304|0)+(h[(n+28|0)>>2]<<2)|0;k=(n|0)==(h[r>>2]|0)?41:44;break;case 41:k=q;h[r>>2]=k;k=(k|0)==0?42:43;break;case 42:h[(P+4|0)>>2]&=1<<h[(n+28|0)>>2]^-1;k=43;break;case 43:k=51;break;case 44:k=((l>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?45:49;break;case 45:k=(h[(l+16|0)>>2]|0)==(n|0)?46:47;break;case 46:h[(l+16|0)>>2]=q;k=48;break;case 47:h[((l+
16|0)+4|0)>>2]=q;k=48;break;case 48:k=50;break;case 49:throw V(),"Reached an unreachable!";case 50:k=51;break;case 51:k=(q|0)!=0?52:66;break;case 52:k=((q>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?53:64;break;case 53:h[(q+24|0)>>2]=l;s=k=h[(n+16|0)>>2];k=(k|0)!=0?54:58;break;case 54:k=((s>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?55:56;break;case 55:h[(q+16|0)>>2]=s;h[(s+24|0)>>2]=q;k=57;break;case 56:throw V(),"Reached an unreachable!";case 57:k=58;break;case 58:v=k=h[((n+16|0)+4|0)>>2];k=(k|0)!=0?59:63;break;
case 59:k=((v>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?60:61;break;case 60:h[((q+16|0)+4|0)>>2]=v;h[(v+24|0)>>2]=q;k=62;break;case 61:throw V(),"Reached an unreachable!";case 62:k=63;break;case 63:k=65;break;case 64:throw V(),"Reached an unreachable!";case 65:k=66;break;case 66:k=67;break;case 67:k=68;break;case 68:k=72;break;case 69:k=(h[(d+4|0)>>2]&3|0)==3?70:71;break;case 70:h[(P+8|0)>>2]=b;h[(d+4|0)>>2]&=-2;h[(c+4|0)>>2]=b|1;h[(c+b|0)>>2]=b;k=194;break;case 71:k=72;break;case 72:k=74;break;case 73:k=
193;break;case 74:k=75;break;case 75:k=76;break;case 76:if(c>>>0<d>>>0)k=77;else{var aa=0;k=78}break;case 77:aa=(h[(d+4|0)>>2]&1|0)!=0;k=78;break;case 78:k=((aa&1)==1|0)!=0?79:191;break;case 79:k=(h[(d+4|0)>>2]&2|0)!=0?152:80;break;case 80:k=(d|0)==(h[(P+24|0)>>2]|0)?81:86;break;case 81:t=h[(P+12|0)>>2]+b|0;h[(P+12|0)>>2]=t;h[(P+24|0)>>2]=c;h[(c+4|0)>>2]=t|1;k=(c|0)==(h[(P+20|0)>>2]|0)?82:83;break;case 82:h[(P+20|0)>>2]=0;h[(P+8|0)>>2]=0;k=83;break;case 83:k=t>>>0>S[(P+28|0)>>2]>>>0?84:85;break;case 84:Hi(P,
0);k=85;break;case 85:k=194;break;case 86:k=(d|0)==(h[(P+20|0)>>2]|0)?87:88;break;case 87:k=h[(P+8|0)>>2]+b|0;h[(P+8|0)>>2]=k;h[(P+20|0)>>2]=c;h[(c+4|0)>>2]=k|1;h[(c+k|0)>>2]=k;k=194;break;case 88:u=h[(d+4|0)>>2]&-8;b=b+u|0;k=u>>>3>>>0<32?89:101;break;case 89:w=h[(d+8|0)>>2];y=h[(d+12|0)>>2];A=u>>>3;k=(w|0)==(y|0)?90:91;break;case 90:h[(P|0)>>2]&=1<<A^-1;k=100;break;case 91:k=(w|0)==((P+40|0)+(A<<1<<2)|0)?93:92;break;case 92:if(w>>>0>=S[(P+16|0)>>2]>>>0)k=93;else{var da=0;k=96}break;case 93:if((y|
0)==((P+40|0)+(A<<1<<2)|0)){var ha=1;k=95}else k=94;break;case 94:ha=y>>>0>=S[(P+16|0)>>2]>>>0;k=95;break;case 95:da=ha;k=96;break;case 96:k=((da&1)==1|0)!=0?97:98;break;case 97:h[(w+12|0)>>2]=y;h[(y+8|0)>>2]=w;k=99;break;case 98:throw V(),"Reached an unreachable!";case 99:k=100;break;case 100:k=147;break;case 101:C=d;z=h[(C+24|0)>>2];k=(h[(C+12|0)>>2]|0)!=(C|0)?102:106;break;case 102:B=h[(C+8|0)>>2];D=h[(C+12|0)>>2];k=((B>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?103:104;break;case 103:h[(B+12|0)>>2]=
D;h[(D+8|0)>>2]=B;k=105;break;case 104:throw V(),"Reached an unreachable!";case 105:k=118;break;case 106:F=D=(C+16|0)+4|0;D=k=h[D>>2];k=(k|0)!=0?108:107;break;case 107:F=D=C+16|0;D=k=h[D>>2];k=(k|0)!=0?108:117;break;case 108:k=109;break;case 109:I=k=(D+16|0)+4|0;if((h[k>>2]|0)!=0){var la=1;k=111}else k=110;break;case 110:I=la=D+16|0;la=(h[la>>2]|0)!=0;k=111;break;case 111:k=la?112:113;break;case 112:F=D=I;D=h[D>>2];k=109;break;case 113:k=((F>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?114:115;break;case 114:h[F>>
2]=0;k=116;break;case 115:throw V(),"Reached an unreachable!";case 116:k=117;break;case 117:k=118;break;case 118:k=(z|0)!=0?119:146;break;case 119:K=(P+304|0)+(h[(C+28|0)>>2]<<2)|0;k=(C|0)==(h[K>>2]|0)?120:123;break;case 120:k=D;h[K>>2]=k;k=(k|0)==0?121:122;break;case 121:h[(P+4|0)>>2]&=1<<h[(C+28|0)>>2]^-1;k=122;break;case 122:k=130;break;case 123:k=((z>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?124:128;break;case 124:k=(h[(z+16|0)>>2]|0)==(C|0)?125:126;break;case 125:h[(z+16|0)>>2]=D;k=127;break;case 126:h[((z+
16|0)+4|0)>>2]=D;k=127;break;case 127:k=129;break;case 128:throw V(),"Reached an unreachable!";case 129:k=130;break;case 130:k=(D|0)!=0?131:145;break;case 131:k=((D>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?132:143;break;case 132:h[(D+24|0)>>2]=z;J=k=h[(C+16|0)>>2];k=(k|0)!=0?133:137;break;case 133:k=((J>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?134:135;break;case 134:h[(D+16|0)>>2]=J;h[(J+24|0)>>2]=D;k=136;break;case 135:throw V(),"Reached an unreachable!";case 136:k=137;break;case 137:G=k=h[((C+16|0)+4|0)>>
2];k=(k|0)!=0?138:142;break;case 138:k=((G>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?139:140;break;case 139:h[((D+16|0)+4|0)>>2]=G;h[(G+24|0)>>2]=D;k=141;break;case 140:throw V(),"Reached an unreachable!";case 141:k=142;break;case 142:k=144;break;case 143:throw V(),"Reached an unreachable!";case 144:k=145;break;case 145:k=146;break;case 146:k=147;break;case 147:h[(c+4|0)>>2]=b|1;h[(c+b|0)>>2]=b;k=(c|0)==(h[(P+20|0)>>2]|0)?148:149;break;case 148:h[(P+8|0)>>2]=b;k=194;break;case 149:k=150;break;case 150:k=
151;break;case 151:k=153;break;case 152:h[(d+4|0)>>2]&=-2;h[(c+4|0)>>2]=b|1;h[(c+b|0)>>2]=b;k=153;break;case 153:k=b>>>3>>>0<32?154:161;break;case 154:H=b>>>3;N=L=(P+40|0)+(H<<1<<2)|0;k=(h[(P|0)>>2]&1<<H|0)!=0?156:155;break;case 155:h[(P|0)>>2]|=1<<H;k=160;break;case 156:k=((h[(L+8|0)>>2]>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?157:158;break;case 157:N=h[(L+8|0)>>2];k=159;break;case 158:throw V(),"Reached an unreachable!";case 159:k=160;break;case 160:h[(L+8|0)>>2]=c;h[(N+12|0)>>2]=c;h[(c+8|0)>>2]=N;
h[(c+12|0)>>2]=L;k=190;break;case 161:M=c;W=b>>>8;k=(W|0)==0?162:163;break;case 162:Z=0;k=167;break;case 163:k=W>>>0>65535?164:165;break;case 164:Z=31;k=166;break;case 165:Z=W;k=(Z-256|0)>>>16&8;Z=Q=Z<<k;Q=(Q-4096|0)>>>16&4;k=k+Q|0;Z=Q=Z<<Q;var ia=(Q-16384|0)>>>16&2;Q=ia;k=k+ia|0;Q=(14-k|0)+(Z<<Q>>>15)|0;Z=(Q<<1)+(b>>>((Q+7|0)>>>0)&1)|0;k=166;break;case 166:k=167;break;case 167:O=(P+304|0)+(Z<<2)|0;h[(M+28|0)>>2]=Z;h[((M+16|0)+4|0)>>2]=0;h[(M+16|0)>>2]=0;k=(h[(P+4|0)>>2]&1<<Z|0)!=0?169:168;break;
case 168:h[(P+4|0)>>2]|=1<<Z;h[O>>2]=M;h[(M+24|0)>>2]=O;k=M;h[(M+12|0)>>2]=k;h[(M+8|0)>>2]=k;k=187;break;case 169:T=h[O>>2];var ma=b;k=(Z|0)==31?170:171;break;case 170:var na=0;k=172;break;case 171:na=31-(((Z>>>1)+8|0)-2|0)|0;k=172;break;case 172:X=ma<<na;k=173;break;case 173:k=(h[(T+4|0)>>2]&-8|0)!=(b|0)?174:180;break;case 174:$=(T+16|0)+((X>>>31&1)<<2)|0;X<<=1;k=(h[$>>2]|0)!=0?175:176;break;case 175:T=h[$>>2];k=179;break;case 176:k=(($>>>0>=S[(P+16|0)>>2]>>>0&1)==1|0)!=0?177:178;break;case 177:h[$>>
2]=M;h[(M+24|0)>>2]=T;k=M;h[(M+12|0)>>2]=k;h[(M+8|0)>>2]=k;k=186;break;case 178:throw V(),"Reached an unreachable!";case 179:k=185;break;case 180:Y=h[(T+8|0)>>2];if(T>>>0>=S[(P+16|0)>>2]>>>0)k=181;else{var oa=0;k=182}break;case 181:oa=Y>>>0>=S[(P+16|0)>>2]>>>0;k=182;break;case 182:k=((oa&1)==1|0)!=0?183:184;break;case 183:k=M;h[(Y+12|0)>>2]=k;h[(T+8|0)>>2]=k;h[(M+8|0)>>2]=Y;h[(M+12|0)>>2]=T;h[(M+24|0)>>2]=0;k=186;break;case 184:throw V(),"Reached an unreachable!";case 185:k=173;break;case 186:k=187;
break;case 187:k=h[(P+32|0)>>2]-1|0;h[(P+32|0)>>2]=k;k=(k|0)==0?188:189;break;case 188:Ii(P);k=189;break;case 189:k=190;break;case 190:k=194;break;case 191:k=192;break;case 192:k=193;break;case 193:throw V(),"Reached an unreachable!";case 194:k=195;break;case 195:return;default:x(0,"bad label: "+k)}}function Hi(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g,f,j,n;c=a;b=k;d=0;e=(h[(qa|0)>>2]|0)!=0?2:1;break;case 1:Di();e=2;break;case 2:e=b>>>0<4294967232?3:24;break;case 3:e=(h[(c+24|0)>>2]|0)!=
0?4:24;break;case 4:b=b+40|0;e=S[(c+12|0)>>2]>>>0>b>>>0?5:20;break;case 5:i=h[(qa+8|0)>>2];g=(Math.floor((((h[(c+12|0)>>2]-b|0)+(i-1|0)|0)>>>0)/(i>>>0))-1|0)*i|0;f=pe(c,h[(c+24|0)>>2]);e=(h[(f+12|0)>>2]&8|0)!=0?17:6;break;case 6:e=(h[(f+12|0)>>2]&0|0)!=0?7:8;break;case 7:e=16;break;case 8:e=g>>>0>=2147483647?9:10;break;case 9:g=-2147483648-i|0;e=10;break;case 10:j=La(0);e=(j|0)==(h[(f|0)>>2]+h[(f+4|0)>>2]|0)?11:15;break;case 11:e=La(-g|0);n=La(0);e=(e|0)!=-1?12:14;break;case 12:e=n>>>0<j>>>0?13:14;
break;case 13:d=j-n|0;e=14;break;case 14:e=15;break;case 15:e=16;break;case 16:e=17;break;case 17:e=(d|0)!=0?18:19;break;case 18:e=f+4|0;h[e>>2]=h[e>>2]-d|0;e=c+432|0;h[e>>2]=h[e>>2]-d|0;Ab(c,h[(c+24|0)>>2],h[(c+12|0)>>2]-d|0);e=19;break;case 19:e=20;break;case 20:e=(d|0)==0?21:23;break;case 21:e=S[(c+12|0)>>2]>>>0>S[(c+28|0)>>2]>>>0?22:23;break;case 22:h[(c+28|0)>>2]=-1;e=23;break;case 23:e=24;break;case 24:return(d|0)!=0?1:0;default:x(0,"bad label: "+e)}}function Ii(a){var k;for(k=0;;)switch(k){case 0:var e,
c,b,d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z,D,B;e=a;b=c=0;d=h[((e+444|0)+8|0)>>2];k=1;break;case 1:k=(d|0)!=0?2:86;break;case 2:i=h[(d|0)>>2];g=h[(d+4|0)>>2];f=h[(d+8|0)>>2];b=b+1|0;k=(h[(d+12|0)>>2]&0|0)!=0?3:85;break;case 3:k=(h[(d+12|0)>>2]&8|0)!=0?85:4;break;case 4:var F=i;k=((i+8|0)&7|0)==0?5:6;break;case 5:var I=0;k=7;break;case 6:I=(8-((i+8|0)&7)|0)&7;k=7;break;case 7:j=F+I|0;n=h[(j+4|0)>>2]&-8;k=(h[(j+4|0)>>2]&3|0)!=1?84:8;break;case 8:k=(j+n|0)>>>0>=((i+g|0)-40|0)>>>0?9:84;break;case 9:l=
j;k=(j|0)==(h[(e+20|0)>>2]|0)?10:11;break;case 10:h[(e+20|0)>>2]=0;h[(e+8|0)>>2]=0;k=57;break;case 11:q=h[(l+24|0)>>2];k=(h[(l+12|0)>>2]|0)!=(l|0)?12:16;break;case 12:p=h[(l+8|0)>>2];m=h[(l+12|0)>>2];k=((p>>>0>=S[(e+16|0)>>2]>>>0&1)==1|0)!=0?13:14;break;case 13:h[(p+12|0)>>2]=m;h[(m+8|0)>>2]=p;k=15;break;case 14:throw V(),"Reached an unreachable!";case 15:k=28;break;case 16:o=m=(l+16|0)+4|0;m=k=h[m>>2];k=(k|0)!=0?18:17;break;case 17:o=m=l+16|0;m=k=h[m>>2];k=(k|0)!=0?18:27;break;case 18:k=19;break;
case 19:r=k=(m+16|0)+4|0;if((h[k>>2]|0)!=0){var K=1;k=21}else k=20;break;case 20:r=K=m+16|0;K=(h[K>>2]|0)!=0;k=21;break;case 21:k=K?22:23;break;case 22:o=m=r;m=h[m>>2];k=19;break;case 23:k=((o>>>0>=S[(e+16|0)>>2]>>>0&1)==1|0)!=0?24:25;break;case 24:h[o>>2]=0;k=26;break;case 25:throw V(),"Reached an unreachable!";case 26:k=27;break;case 27:k=28;break;case 28:k=(q|0)!=0?29:56;break;case 29:s=(e+304|0)+(h[(l+28|0)>>2]<<2)|0;k=(l|0)==(h[s>>2]|0)?30:33;break;case 30:k=m;h[s>>2]=k;k=(k|0)==0?31:32;break;
case 31:h[(e+4|0)>>2]&=1<<h[(l+28|0)>>2]^-1;k=32;break;case 32:k=40;break;case 33:k=((q>>>0>=S[(e+16|0)>>2]>>>0&1)==1|0)!=0?34:38;break;case 34:k=(h[(q+16|0)>>2]|0)==(l|0)?35:36;break;case 35:h[(q+16|0)>>2]=m;k=37;break;case 36:h[((q+16|0)+4|0)>>2]=m;k=37;break;case 37:k=39;break;case 38:throw V(),"Reached an unreachable!";case 39:k=40;break;case 40:k=(m|0)!=0?41:55;break;case 41:k=((m>>>0>=S[(e+16|0)>>2]>>>0&1)==1|0)!=0?42:53;break;case 42:h[(m+24|0)>>2]=q;v=k=h[(l+16|0)>>2];k=(k|0)!=0?43:47;break;
case 43:k=((v>>>0>=S[(e+16|0)>>2]>>>0&1)==1|0)!=0?44:45;break;case 44:h[(m+16|0)>>2]=v;h[(v+24|0)>>2]=m;k=46;break;case 45:throw V(),"Reached an unreachable!";case 46:k=47;break;case 47:t=k=h[((l+16|0)+4|0)>>2];k=(k|0)!=0?48:52;break;case 48:k=((t>>>0>=S[(e+16|0)>>2]>>>0&1)==1|0)!=0?49:50;break;case 49:h[((m+16|0)+4|0)>>2]=t;h[(t+24|0)>>2]=m;k=51;break;case 50:throw V(),"Reached an unreachable!";case 51:k=52;break;case 52:k=54;break;case 53:throw V(),"Reached an unreachable!";case 54:k=55;break;case 55:k=
56;break;case 56:k=57;break;case 57:y=n>>>8;k=(y|0)==0?58:59;break;case 58:w=0;k=63;break;case 59:k=y>>>0>65535?60:61;break;case 60:w=31;k=62;break;case 61:w=y;k=(w-256|0)>>>16&8;w=A=w<<k;A=(A-4096|0)>>>16&4;k=k+A|0;w=A=w<<A;var J=(A-16384|0)>>>16&2;A=J;k=k+J|0;A=(14-k|0)+(w<<A>>>15)|0;w=(A<<1)+(n>>>((A+7|0)>>>0)&1)|0;k=62;break;case 62:k=63;break;case 63:u=(e+304|0)+(w<<2)|0;h[(l+28|0)>>2]=w;h[((l+16|0)+4|0)>>2]=0;h[(l+16|0)>>2]=0;k=(h[(e+4|0)>>2]&1<<w|0)!=0?65:64;break;case 64:h[(e+4|0)>>2]|=1<<
w;h[u>>2]=l;h[(l+24|0)>>2]=u;k=l;h[(l+12|0)>>2]=k;h[(l+8|0)>>2]=k;k=83;break;case 65:C=h[u>>2];var G=n;k=(w|0)==31?66:67;break;case 66:var H=0;k=68;break;case 67:H=31-(((w>>>1)+8|0)-2|0)|0;k=68;break;case 68:z=G<<H;k=69;break;case 69:k=(h[(C+4|0)>>2]&-8|0)!=(n|0)?70:76;break;case 70:D=(C+16|0)+((z>>>31&1)<<2)|0;z<<=1;k=(h[D>>2]|0)!=0?71:72;break;case 71:C=h[D>>2];k=75;break;case 72:k=((D>>>0>=S[(e+16|0)>>2]>>>0&1)==1|0)!=0?73:74;break;case 73:h[D>>2]=l;h[(l+24|0)>>2]=C;k=l;h[(l+12|0)>>2]=k;h[(l+8|
0)>>2]=k;k=82;break;case 74:throw V(),"Reached an unreachable!";case 75:k=81;break;case 76:B=h[(C+8|0)>>2];if(C>>>0>=S[(e+16|0)>>2]>>>0)k=77;else{var L=0;k=78}break;case 77:L=B>>>0>=S[(e+16|0)>>2]>>>0;k=78;break;case 78:k=((L&1)==1|0)!=0?79:80;break;case 79:k=l;h[(B+12|0)>>2]=k;h[(C+8|0)>>2]=k;h[(l+8|0)>>2]=B;h[(l+12|0)>>2]=C;h[(l+24|0)>>2]=0;k=82;break;case 80:throw V(),"Reached an unreachable!";case 81:k=69;break;case 82:k=83;break;case 83:k=84;break;case 84:k=85;break;case 85:d=f;k=1;break;case 86:k=
b>>>0>4294967295?87:88;break;case 87:var M=b;k=89;break;case 88:M=-1;k=89;break;case 89:return h[(e+32|0)>>2]=M,c;default:x(0,"bad label: "+k)}}function Di(){var a;for(a=0;;)switch(a){case 0:var k,e;a=(h[(qa|0)>>2]|0)==0?1:5;break;case 1:e=k=jj(8);a=(e&(e-1|0)|0)!=0?3:2;break;case 2:a=(k&(k-1|0)|0)!=0?3:4;break;case 3:throw V(),"Reached an unreachable!";case 4:h[(qa+8|0)>>2]=e;h[(qa+4|0)>>2]=k;h[(qa+12|0)>>2]=-1;h[(qa+16|0)>>2]=2097152;h[(qa+20|0)>>2]=0;h[(P+440|0)>>2]=h[(qa+20|0)>>2];a=Math.floor(Date.now()/
1E3)^1431655765;a|=8;a&=-8;h[(qa|0)>>2]=a;a=5;break;case 5:return 1;default:x(0,"bad label: "+a)}}function pe(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d;b=a;d=k;b=b+444|0;e=1;break;case 1:e=d>>>0>=S[(b|0)>>2]>>>0?2:4;break;case 2:e=d>>>0<(h[(b|0)>>2]+h[(b+4|0)>>2]|0)>>>0?3:4;break;case 3:c=b;e=7;break;case 4:b=e=h[(b+8|0)>>2];e=(e|0)==0?5:6;break;case 5:c=0;e=7;break;case 6:e=1;break;case 7:return c;default:x(0,"bad label: "+e)}}function Ab(a,k,e){var c;for(c=0;;)switch(c){case 0:var b,d,i;b=
a;d=k;i=e;c=((d+8|0)&7|0)==0?1:2;break;case 1:var g=0;c=3;break;case 2:g=(8-((d+8|0)&7)|0)&7;c=3;break;case 3:a=g;d=d+a|0;i=i-a|0;h[(b+24|0)>>2]=d;h[(b+12|0)>>2]=i;h[(d+4|0)>>2]=i|1;h[((d+i|0)+4|0)>>2]=40;h[(b+28|0)>>2]=h[(qa+16|0)>>2];return;default:x(0,"bad label: "+c)}}function Ei(a,k){var e;for(e=0;;)switch(e){case 0:var c,b,d,i,g,f;b=a;e=k;d=(((e+24|0)+7|0)+(h[(qa+4|0)>>2]-1|0)|0)&((h[(qa+4|0)>>2]-1|0)^-1);e=d>>>0>e>>>0?1:12;break;case 1:i=-1;e=(i|0)!=-1?2:11;break;case 2:e=((i+8|0)&7|0)==0?
3:4;break;case 3:var j=0;e=5;break;case 4:j=(8-((i+8|0)&7)|0)&7;e=5;break;case 5:e=j;g=(d-e|0)-16|0;f=i+e|0;h[(f|0)>>2]=e;h[(f+4|0)>>2]=g;h[((f+g|0)+4|0)>>2]=7;h[((f+(g+4|0)|0)+4|0)>>2]=0;e=(h[(b+16|0)>>2]|0)==0?7:6;break;case 6:e=i>>>0<S[(b+16|0)>>2]>>>0?7:8;break;case 7:h[(b+16|0)>>2]=i;e=8;break;case 8:e=b+432|0;g=h[e>>2]+d|0;h[e>>2]=g;e=g>>>0>S[(b+436|0)>>2]>>>0?9:10;break;case 9:h[(b+436|0)>>2]=h[(b+432|0)>>2];e=10;break;case 10:c=f+8|0;e=13;break;case 11:e=12;break;case 12:c=0;e=13;break;case 13:return c;
default:x(0,"bad label: "+e)}}function Fi(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A,C,z,B,E,F,I,K,J,G,H,L,M,N,O;d=a;i=k;g=e;f=c;var P=i;b=((i+8|0)&7|0)==0?1:2;break;case 1:var W=0;b=3;break;case 2:W=(8-((i+8|0)&7)|0)&7;b=3;break;case 3:j=P+W|0;var Q=g;b=((g+8|0)&7|0)==0?4:5;break;case 4:var T=0;b=6;break;case 5:T=(8-((g+8|0)&7)|0)&7;b=6;break;case 6:n=Q+T|0;l=n-j|0;q=j+f|0;l=l-f|0;h[(j+4|0)>>2]=f|3;b=(n|0)==(h[(d+24|0)>>2]|0)?7:8;break;case 7:b=d+12|0;H=h[b>>
2]+l|0;b=h[b>>2]=H;h[(d+24|0)>>2]=q;h[(q+4|0)>>2]=b|1;b=108;break;case 8:b=(n|0)==(h[(d+20|0)>>2]|0)?9:10;break;case 9:b=d+8|0;H=h[b>>2]+l|0;b=h[b>>2]=H;h[(d+20|0)>>2]=q;h[(q+4|0)>>2]=b|1;h[(q+b|0)>>2]=b;b=107;break;case 10:b=(h[(n+4|0)>>2]&3|0)!=1?71:11;break;case 11:m=h[(n+4|0)>>2]&-8;b=m>>>3>>>0<32?12:24;break;case 12:p=h[(n+8|0)>>2];o=h[(n+12|0)>>2];r=m>>>3;b=(p|0)==(o|0)?13:14;break;case 13:h[(d|0)>>2]&=1<<r^-1;b=23;break;case 14:b=(p|0)==((d+40|0)+(r<<1<<2)|0)?16:15;break;case 15:if(p>>>0>=
S[(d+16|0)>>2]>>>0)b=16;else{var X=0;b=19}break;case 16:if((o|0)==((d+40|0)+(r<<1<<2)|0)){var $=1;b=18}else b=17;break;case 17:$=o>>>0>=S[(d+16|0)>>2]>>>0;b=18;break;case 18:X=$;b=19;break;case 19:b=((X&1)==1|0)!=0?20:21;break;case 20:h[(p+12|0)>>2]=o;h[(o+8|0)>>2]=p;b=22;break;case 21:throw V(),"Reached an unreachable!";case 22:b=23;break;case 23:b=70;break;case 24:s=n;v=h[(s+24|0)>>2];b=(h[(s+12|0)>>2]|0)!=(s|0)?25:29;break;case 25:u=h[(s+8|0)>>2];t=h[(s+12|0)>>2];b=((u>>>0>=S[(d+16|0)>>2]>>>0&
1)==1|0)!=0?26:27;break;case 26:h[(u+12|0)>>2]=t;h[(t+8|0)>>2]=u;b=28;break;case 27:throw V(),"Reached an unreachable!";case 28:b=41;break;case 29:w=t=(s+16|0)+4|0;t=b=h[t>>2];b=(b|0)!=0?31:30;break;case 30:w=t=s+16|0;t=b=h[t>>2];b=(b|0)!=0?31:40;break;case 31:b=32;break;case 32:y=b=(t+16|0)+4|0;if((h[b>>2]|0)!=0){var Y=1;b=34}else b=33;break;case 33:y=Y=t+16|0;Y=(h[Y>>2]|0)!=0;b=34;break;case 34:b=Y?35:36;break;case 35:w=t=y;t=h[t>>2];b=32;break;case 36:b=((w>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?
37:38;break;case 37:h[w>>2]=0;b=39;break;case 38:throw V(),"Reached an unreachable!";case 39:b=40;break;case 40:b=41;break;case 41:b=(v|0)!=0?42:69;break;case 42:A=(d+304|0)+(h[(s+28|0)>>2]<<2)|0;b=(s|0)==(h[A>>2]|0)?43:46;break;case 43:b=t;h[A>>2]=b;b=(b|0)==0?44:45;break;case 44:h[(d+4|0)>>2]&=1<<h[(s+28|0)>>2]^-1;b=45;break;case 45:b=53;break;case 46:b=((v>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?47:51;break;case 47:b=(h[(v+16|0)>>2]|0)==(s|0)?48:49;break;case 48:h[(v+16|0)>>2]=t;b=50;break;case 49:h[((v+
16|0)+4|0)>>2]=t;b=50;break;case 50:b=52;break;case 51:throw V(),"Reached an unreachable!";case 52:b=53;break;case 53:b=(t|0)!=0?54:68;break;case 54:b=((t>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?55:66;break;case 55:h[(t+24|0)>>2]=v;C=b=h[(s+16|0)>>2];b=(b|0)!=0?56:60;break;case 56:b=((C>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?57:58;break;case 57:h[(t+16|0)>>2]=C;h[(C+24|0)>>2]=t;b=59;break;case 58:throw V(),"Reached an unreachable!";case 59:b=60;break;case 60:z=b=h[((s+16|0)+4|0)>>2];b=(b|0)!=0?61:65;break;
case 61:b=((z>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?62:63;break;case 62:h[((t+16|0)+4|0)>>2]=z;h[(z+24|0)>>2]=t;b=64;break;case 63:throw V(),"Reached an unreachable!";case 64:b=65;break;case 65:b=67;break;case 66:throw V(),"Reached an unreachable!";case 67:b=68;break;case 68:b=69;break;case 69:b=70;break;case 70:n=n+m|0;l=l+m|0;b=71;break;case 71:h[(n+4|0)>>2]&=-2;h[(q+4|0)>>2]=l|1;h[(q+l|0)>>2]=l;b=l>>>3>>>0<32?72:79;break;case 72:B=l>>>3;F=E=(d+40|0)+(B<<1<<2)|0;b=(h[(d|0)>>2]&1<<B|0)!=0?74:73;break;
case 73:h[(d|0)>>2]|=1<<B;b=78;break;case 74:b=((h[(E+8|0)>>2]>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?75:76;break;case 75:F=h[(E+8|0)>>2];b=77;break;case 76:throw V(),"Reached an unreachable!";case 77:b=78;break;case 78:h[(E+8|0)>>2]=q;h[(F+12|0)>>2]=q;h[(q+8|0)>>2]=F;h[(q+12|0)>>2]=E;b=106;break;case 79:I=q;G=l>>>8;b=(G|0)==0?80:81;break;case 80:J=0;b=85;break;case 81:b=G>>>0>65535?82:83;break;case 82:J=31;b=84;break;case 83:J=G;b=(J-256|0)>>>16&8;J=H=J<<b;H=(H-4096|0)>>>16&4;b=b+H|0;J=H=J<<H;var ba=
(H-16384|0)>>>16&2;H=ba;b=b+ba|0;H=(14-b|0)+(J<<H>>>15)|0;J=(H<<1)+(l>>>((H+7|0)>>>0)&1)|0;b=84;break;case 84:b=85;break;case 85:K=(d+304|0)+(J<<2)|0;h[(I+28|0)>>2]=J;h[((I+16|0)+4|0)>>2]=0;h[(I+16|0)>>2]=0;b=(h[(d+4|0)>>2]&1<<J|0)!=0?87:86;break;case 86:h[(d+4|0)>>2]|=1<<J;h[K>>2]=I;h[(I+24|0)>>2]=K;b=I;h[(I+12|0)>>2]=b;h[(I+8|0)>>2]=b;b=105;break;case 87:L=h[K>>2];var ea=l;b=(J|0)==31?88:89;break;case 88:var ca=0;b=90;break;case 89:ca=31-(((J>>>1)+8|0)-2|0)|0;b=90;break;case 90:M=ea<<ca;b=91;break;
case 91:b=(h[(L+4|0)>>2]&-8|0)!=(l|0)?92:98;break;case 92:N=(L+16|0)+((M>>>31&1)<<2)|0;M<<=1;b=(h[N>>2]|0)!=0?93:94;break;case 93:L=h[N>>2];b=97;break;case 94:b=((N>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?95:96;break;case 95:h[N>>2]=I;h[(I+24|0)>>2]=L;b=I;h[(I+12|0)>>2]=b;h[(I+8|0)>>2]=b;b=104;break;case 96:throw V(),"Reached an unreachable!";case 97:b=103;break;case 98:O=h[(L+8|0)>>2];if(L>>>0>=S[(d+16|0)>>2]>>>0)b=99;else{var ga=0;b=100}break;case 99:ga=O>>>0>=S[(d+16|0)>>2]>>>0;b=100;break;case 100:b=
((ga&1)==1|0)!=0?101:102;break;case 101:b=I;h[(O+12|0)>>2]=b;h[(L+8|0)>>2]=b;h[(I+8|0)>>2]=O;h[(I+12|0)>>2]=L;h[(I+24|0)>>2]=0;b=104;break;case 102:throw V(),"Reached an unreachable!";case 103:b=91;break;case 104:b=105;break;case 105:b=106;break;case 106:b=107;break;case 107:b=108;break;case 108:return j+8|0;default:x(0,"bad label: "+b)}}function Ji(a){var k=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");h[k>>2]=a;h[h[k>>2]>>2]=kj+8|0;h[a>>2]=qe+8|0;B=k}function Ki(a){var h;for(h=
0;;)switch(h){case 0:var e;e=a;h=(e|0)!=0?1:2;break;case 1:wa(e);h=2;break;case 2:return;default:x(0,"bad label: "+h)}}function Qc(a){lj(a)}function Gi(a,k,e,c){var b;for(b=0;;)switch(b){case 0:var d,i,g,f,j,n,l,q,m,p,o,r,s,v,t,u,w,y,A,B,z,D,E,F,I,H;d=a;i=k;g=e;f=c;j=h[(d+24|0)>>2];n=pe(d,j);n=h[(n|0)>>2]+h[(n+4|0)>>2]|0;l=24;q=n+(-((l+16|0)+7|0)|0)|0;b=((q+8|0)&7|0)==0?1:2;break;case 1:var J=0;b=3;break;case 2:J=(8-((q+8|0)&7)|0)&7;b=3;break;case 3:m=J;m=q+m|0;b=m>>>0<(j+16|0)>>>0?4:5;break;case 4:var G=
j;b=6;break;case 5:G=m;b=6;break;case 6:o=p=G;b=o+8|0;r=o+l|0;Ab(d,i,g-40|0);h[(o+4|0)>>2]=l|3;o=b;var L=d+444|0;x(true,"memcpy given 16 bytes to copy. Problem with quantum=1 corrections perhaps?");h[o>>2]=h[L>>2];h[o+4>>2]=h[L+4>>2];h[o+8>>2]=h[L+8>>2];h[o+12>>2]=h[L+12>>2];h[(d+444|0)>>2]=i;h[((d+444|0)+4|0)>>2]=g;h[((d+444|0)+12|0)>>2]=f;h[((d+444|0)+8|0)>>2]=b;b=7;break;case 7:s=r+4|0;h[(r+4|0)>>2]=7;b=(s+4|0)>>>0<n>>>0?8:9;break;case 8:r=s;b=10;break;case 9:b=11;break;case 10:b=7;break;case 11:b=
(p|0)!=(j|0)?12:48;break;case 12:v=j;t=p-j|0;b=v+t|0;h[(b+4|0)>>2]&=-2;h[(v+4|0)>>2]=t|1;h[(v+t|0)>>2]=t;b=t>>>3>>>0<32?13:20;break;case 13:u=t>>>3;y=w=(d+40|0)+(u<<1<<2)|0;b=(h[(d|0)>>2]&1<<u|0)!=0?15:14;break;case 14:h[(d|0)>>2]|=1<<u;b=19;break;case 15:b=((h[(w+8|0)>>2]>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?16:17;break;case 16:y=h[(w+8|0)>>2];b=18;break;case 17:throw V(),"Reached an unreachable!";case 18:b=19;break;case 19:h[(w+8|0)>>2]=v;h[(y+12|0)>>2]=v;h[(v+8|0)>>2]=y;h[(v+12|0)>>2]=w;b=47;break;
case 20:A=v;D=t>>>8;b=(D|0)==0?21:22;break;case 21:z=0;b=26;break;case 22:b=D>>>0>65535?23:24;break;case 23:z=31;b=25;break;case 24:z=D;b=(z-256|0)>>>16&8;z=o=z<<b;o=(o-4096|0)>>>16&4;b=b+o|0;z=o=z<<o;o=L=(o-16384|0)>>>16&2;b=b+L|0;o=(14-b|0)+(z<<o>>>15)|0;z=(o<<1)+(t>>>((o+7|0)>>>0)&1)|0;b=25;break;case 25:b=26;break;case 26:B=(d+304|0)+(z<<2)|0;h[(A+28|0)>>2]=z;h[((A+16|0)+4|0)>>2]=0;h[(A+16|0)>>2]=0;b=(h[(d+4|0)>>2]&1<<z|0)!=0?28:27;break;case 27:h[(d+4|0)>>2]|=1<<z;h[B>>2]=A;h[(A+24|0)>>2]=B;
b=A;h[(A+12|0)>>2]=b;h[(A+8|0)>>2]=b;b=46;break;case 28:E=h[B>>2];var M=t;b=(z|0)==31?29:30;break;case 29:var N=0;b=31;break;case 30:N=31-(((z>>>1)+8|0)-2|0)|0;b=31;break;case 31:F=M<<N;b=32;break;case 32:b=(h[(E+4|0)>>2]&-8|0)!=(t|0)?33:39;break;case 33:I=(E+16|0)+((F>>>31&1)<<2)|0;F<<=1;b=(h[I>>2]|0)!=0?34:35;break;case 34:E=h[I>>2];b=38;break;case 35:b=((I>>>0>=S[(d+16|0)>>2]>>>0&1)==1|0)!=0?36:37;break;case 36:h[I>>2]=A;h[(A+24|0)>>2]=E;b=A;h[(A+12|0)>>2]=b;h[(A+8|0)>>2]=b;b=45;break;case 37:throw V(),
"Reached an unreachable!";case 38:b=44;break;case 39:H=h[(E+8|0)>>2];if(E>>>0>=S[(d+16|0)>>2]>>>0)b=40;else{var O=0;b=41}break;case 40:O=H>>>0>=S[(d+16|0)>>2]>>>0;b=41;break;case 41:b=((O&1)==1|0)!=0?42:43;break;case 42:b=A;h[(H+12|0)>>2]=b;h[(E+8|0)>>2]=b;h[(A+8|0)>>2]=H;h[(A+12|0)>>2]=E;h[(A+24|0)>>2]=0;b=45;break;case 43:throw V(),"Reached an unreachable!";case 44:b=32;break;case 45:b=46;break;case 46:b=47;break;case 47:b=48;break;case 48:return;default:x(0,"bad label: "+b)}}function ta(a,k,e){if(e>=
20){for(e=a+e;a%4;)N[a++]=k;k<0&&(k+=256);a>>=2;for(var c=e>>2,b=k|k<<8|k<<16|k<<24;a<c;)h[a++]=b;for(a<<=2;a<e;)N[a++]=k}else for(;e--;)N[a++]=k}function na(B,k,e){x(e%1===0,"memcpy given "+e+" bytes to copy. Problem with quantum=1 corrections perhaps?");if(e>=20&&k%2==B%2)if(k%4==B%4){for(e=k+e;k%4;)N[B++]=N[k++];k>>=2;B>>=2;for(var c=e>>2;k<c;)h[B++]=h[k++];k<<=2;for(B<<=2;k<e;)N[B++]=N[k++]}else{e=k+e;k%2&&(N[B++]=N[k++]);k>>=1;B>>=1;for(c=e>>1;k<c;)a[B++]=a[k++];k<<=1;B<<=1;k<e&&(N[B++]=N[k++])}else for(;e--;)N[B++]=
N[k++]}function V(a){throw"ABORT: "+a+", at "+Error().stack;}function Ea(a){if(!Ea.ret)Ea.ret=H([0],"i32",L);return h[Ea.ret>>2]=a}function jj(a){switch(a){case 8:return lb;case 54:case 56:case 21:case 61:case 63:case 22:case 67:case 23:case 24:case 25:case 26:case 27:case 69:case 28:case 101:case 70:case 71:case 29:case 30:case 199:case 75:case 76:case 32:case 43:case 44:case 80:case 46:case 47:case 45:case 48:case 49:case 42:case 82:case 33:case 7:case 108:case 109:case 107:case 112:case 119:case 121:return 200809;
case 13:case 104:case 94:case 95:case 34:case 35:case 77:case 81:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 91:case 94:case 95:case 110:case 111:case 113:case 114:case 115:case 116:case 117:case 118:case 120:case 40:case 16:case 79:case 19:return-1;case 92:case 93:case 5:case 72:case 6:case 74:case 92:case 93:case 96:case 97:case 98:case 99:case 102:case 103:case 105:return 1;case 38:case 66:case 50:case 51:case 4:return 1024;case 15:case 64:case 41:return 32;case 55:case 37:case 17:return 2147483647;
case 18:case 1:return 47839;case 59:case 57:return 99;case 68:case 58:return 2048;case 0:return 2097152;case 3:return 65536;case 14:return 32768;case 73:return 32767;case 39:return 16384;case 60:return 1E3;case 106:return 700;case 52:return 256;case 62:return 255;case 2:return 100;case 65:return 64;case 36:return 20;case 100:return 16;case 20:return 6;case 53:return 4}Ea(ma);return-1}function La(a){var h=La;if(!h.called)Ba=Math.ceil(Ba/lb)*lb,h.called=true;h=Ba;a!=0&&sa.staticAlloc(a);return h}function Li(){return h[Li.buf>>
2]}function Mi(a){a=a||Module.arguments;Wa(Ni);var h=null;Module._main&&(h=Module.callMain(a),Wa(Oi),mj.print());return h}var Rc=[],Pi=typeof process==="object",Qi=typeof window==="object",Ri=typeof importScripts==="function",nj=!Qi&&!Pi&&!Ri;if(Pi){print=function(a){process.stdout.write(a+"\n")};printErr=function(a){process.stderr.write(a+"\n")};var Si=require("fs");read=function(a){var h=Si.readFileSync(a).toString();!h&&a[0]!="/"&&(a=__dirname.split("/").slice(0,-1).join("/")+"/src/"+a,h=Si.readFileSync(a).toString());
return h};Rc=process.argv.slice(2)}else if(nj)this.read||(read=function(a){snarf(a)}),Rc=this.arguments?arguments:scriptArgs;else if(Qi)print=printErr=function(a){console.log(a)},read=function(a){var h=new XMLHttpRequest;h.open("GET",a,false);h.send(null);return h.responseText},this.arguments&&(Rc=arguments);else if(Ri)load=importScripts;else throw"Unknown runtime environment. Where are we?";typeof load=="undefined"&&typeof read!="undefined"&&(load=function(a){Y(read(a))});typeof printErr==="undefined"&&
(printErr=function(){});typeof print==="undefined"&&(print=printErr);try{this.Module=Module}catch(qj){this.Module=Module={}}if(!Module.arguments)Module.arguments=Rc;if(Module.print)print=Module.print;var sa={stackSave:function(){return B},stackRestore:function(a){B=a},forceAlign:function(a,h){h=h||4;if(h==1)return a;if(isNumber(a)&&isNumber(h))return Math.ceil(a/h)*h;else if(isNumber(h)&&isPowerOfTwo(h)){var e=log2(h);return"(((("+a+")+"+(h-1)+")>>"+e+")<<"+e+")"}return"Math.ceil(("+a+")/"+h+")*"+
h},isNumberType:function(a){return a in sa.INT_TYPES||a in sa.FLOAT_TYPES},isPointerType:function(a){return a[a.length-1]=="*"},isStructType:function(a){return isPointerType(a)?false:/^\[\d+\ x\ (.*)\]/.test(a)?true:/<?{ [^}]* }>?/.test(a)?true:a[0]=="%"},INT_TYPES:{i1:0,i8:0,i16:0,i32:0,i64:0},FLOAT_TYPES:{"float":0,"double":0},bitshift64:function(a,h,e,c){var b=Math.pow(2,c)-1;if(c<32)switch(e){case "shl":return[a<<c,h<<c|(a&b<<32-c)>>>32-c];case "ashr":return[(a>>>c|(h&b)<<32-c)>>0>>>0,h>>c>>>
0];case "lshr":return[(a>>>c|(h&b)<<32-c)>>>0,h>>>c]}else if(c==32)switch(e){case "shl":return[0,a];case "ashr":return[h,(h|0)<0?b:0];case "lshr":return[h,0]}else switch(e){case "shl":return[0,a<<c-32];case "ashr":return[h>>c-32>>>0,(h|0)<0?b:0];case "lshr":return[h>>>c-32,0]}O("unknown bitshift64 op: "+[value,e,c])},or64:function(a,h){var e=a|0|h|0,c=(Math.round(a/4294967296)|Math.round(h/4294967296))*4294967296;return e+c},and64:function(a,h){var e=(a|0)&(h|0),c=(Math.round(a/4294967296)&Math.round(h/
4294967296))*4294967296;return e+c},xor64:function(a,h){var e=(a|0)^(h|0),c=(Math.round(a/4294967296)^Math.round(h/4294967296))*4294967296;return e+c},getNativeTypeSize:function(a){if(sa.QUANTUM_SIZE==1)return 1;var h={"%i1":1,"%i8":1,"%i16":2,"%i32":4,"%i64":8,"%float":4,"%double":8}["%"+a];if(!h)a[a.length-1]=="*"?h=sa.QUANTUM_SIZE:a[0]=="i"&&(a=parseInt(a.substr(1)),x(a%8==0),h=a/8);return h},getNativeFieldSize:function(a){return Math.max(sa.getNativeTypeSize(a),sa.QUANTUM_SIZE)},dedup:function(a,
h){var e={};return h?a.filter(function(a){return e[a[h]]?false:e[a[h]]=true}):a.filter(function(a){return e[a]?false:e[a]=true})},set:function(){for(var a=typeof arguments[0]==="object"?arguments[0]:arguments,h={},e=0;e<a.length;e++)h[a[e]]=0;return h},calculateStructAlignment:function(a){a.flatSize=0;a.alignSize=0;var h=[],e=-1;a.flatIndexes=a.fields.map(function(c){var b;if(sa.isNumberType(c)||sa.isPointerType(c))c=b=sa.getNativeTypeSize(c);else if(sa.isStructType(c))b=Types.types[c].flatSize,c=
Types.types[c].alignSize;else throw"Unclear type in struct: "+c+", in "+a.name_+" :: "+dump(Types.types[a.name_]);c=a.packed?1:Math.min(c,sa.QUANTUM_SIZE);a.alignSize=Math.max(a.alignSize,c);c=sa.alignMemory(a.flatSize,c);a.flatSize=c+b;e>=0&&h.push(c-e);return e=c});a.flatSize=sa.alignMemory(a.flatSize,a.alignSize);if(h.length==0)a.flatFactor=a.flatSize;else if(sa.dedup(h).length==1)a.flatFactor=h[0];a.needsFlattening=a.flatFactor!=1;return a.flatIndexes},generateStructInfo:function(a,h,e){var c,
b;if(h){e=e||0;c=(typeof Types==="undefined"?sa.typeInfo:Types.types)[h];if(!c)return null;x(c.fields.length===a.length,"Number of named fields must match the type for "+h);b=c.flatIndexes}else c={fields:a.map(function(a){return a[0]})},b=sa.calculateStructAlignment(c);var d={__size__:c.flatSize};h?a.forEach(function(a,g){if(typeof a==="string")d[a]=b[g]+e;else{var f,h;for(h in a)f=h;d[f]=sa.generateStructInfo(a[f],c.fields[g],b[g])}}):a.forEach(function(a,c){d[a[1]]=b[c]});return d},stackAlloc:function(a){var h=
B;B+=a;B=B+3>>2<<2;x(B<re+ea,"Ran out of stack");return h},staticAlloc:function(B){var k=Ba;Ba+=B;Ba=Ba+3>>2<<2;if(Ba>=Ua){printErr("Warning: Enlarging memory arrays, this is not fast! "+[Ba,Ua]);x(Ba>=Ua);for(x(Ua>4);Ua<=Ba;)Ua=Math.ceil(2*Ua/lb)*lb;var B=N,e=new ArrayBuffer(Ua);N=new Int8Array(e);a=new Int16Array(e);h=new Int32Array(e);M=new Uint8Array(e);se=new Uint16Array(e);S=new Uint32Array(e);nb=new Float32Array(e);N.set(B)}return k},alignMemory:function(a,h){return Math.ceil(a/(h?h:4))*(h?
h:4)},makeBigInt:function(a,h,e){return e?(a>>>0)+(h>>>0)*4294967296:(a>>>0)+(h|0)*4294967296},QUANTUM_SIZE:4,__dummy__:0},mj={MAX_ALLOWED:0,corrections:0,sigs:{},note:function(a,h){h||(this.corrections++,this.corrections>=this.MAX_ALLOWED&&O("\n\nToo many corrections!"))},print:function(){}},ga,oj=this;Module.ccall=function(a,h,e,c){try{var b=eval("_"+a)}catch(d){try{b=oj.Module["_"+a]}catch(i){}}x(b,"Cannot call unknown function "+a+" (perhaps LLVM optimizations or closure removed it?)");var g=
0,a=c?c.map(function(a){if(e[g++]=="string"){var b=B;sa.stackAlloc(a.length+1);Ae(a,b);a=b}return a}):[];return function(a,b){return b=="string"?Va(a):a}(b.apply(null,a),h)};Module.setValue=W;Module.getValue=function(x,k){k=k||"i8";k[k.length-1]==="*"&&(k="i32");switch(k){case "i1":return N[x];case "i8":return N[x];case "i16":return a[x>>1];case "i32":return h[x>>2];case "i64":return h[x>>2];case "float":return nb[x>>2];case "double":return dc[0]=h[x>>2],dc[1]=h[x+4>>2],ze[0];default:O("invalid type for setValue: "+
k)}return null};var L=2;Module.ALLOC_NORMAL=0;Module.ALLOC_STACK=1;Module.ALLOC_STATIC=L;Module.allocate=H;Module.Pointer_stringify=Va;Module.Array_stringify=function(a){for(var h="",e=0;e<a.length;e++)h+=String.fromCharCode(a[e]);return h};var Cb,lb=4096,N,M,a,se,h,S,nb,re,B,ea,Ba,pj=Module.TOTAL_STACK||5242880,Ua=Module.TOTAL_MEMORY||10485760;x(!!Int32Array&&!!Float64Array&&!!(new Int32Array(1)).subarray&&!!(new Int32Array(1)).set,"Cannot fallback to non-typed array case: Code is too specialized");
var mb=new ArrayBuffer(Ua);N=new Int8Array(mb);a=new Int16Array(mb);h=new Int32Array(mb);M=new Uint8Array(mb);se=new Uint16Array(mb);S=new Uint32Array(mb);nb=new Float32Array(mb);h[0]=255;x(M[0]===255&&M[3]===0,"Typed arrays 2 must be run on a little-endian system");var te=cb("(null)");Ba=te.length;for(var Sc=0;Sc<te.length;Sc++)N[Sc]=te[Sc];Module.HEAP=void 0;Module.HEAP8=N;Module.HEAP16=a;Module.HEAP32=h;Module.HEAPU8=M;Module.HEAPU16=se;Module.HEAPU32=S;Module.HEAPF32=nb;re=B=sa.alignMemory(Ba);
ea=re+pj;var bc=sa.alignMemory(ea,8);N.subarray(bc);var dc=h.subarray(bc>>2);nb.subarray(bc>>2);var ze=(new Float64Array(N.buffer)).subarray(bc>>3);ea=bc+8;Ba=Math.ceil(ea/lb)*lb;var Ni=[],Oi=[];Module.Array_copy=ob;Module.TypedArray_copy=function(a,h){for(var e=new Uint8Array(h),c=0;c<h;++c)e[c]=N[a+c];return e.buffer};Module.String_len=Db;Module.String_copy=function(a,h){var e=Db(a);h&&e++;var c=ob(a,e);h&&(c[e-1]=0);return c};Module.intArrayFromString=cb;Module.intArrayToString=function(a){for(var h=
[],e=0;e<a.length;e++){var c=a[e];c>255&&(x(false,"Character code "+c+" ("+String.fromCharCode(c)+") at offset "+e+" not in 0x00-0xFF."),c&=255);h.push(String.fromCharCode(c))}return h.join("")};Module.writeStringToMemory=Ae;var za=[];Uc.X=1;Eb.X=1;Ce.X=1;De.X=1;Ee.X=1;Ke.X=1;Pe.X=1;Re.X=1;ec.X=1;fc.X=1;gc.X=1;Fb.X=1;Ue.X=1;Ve.X=1;Xe.X=1;Ye.X=1;Ze.X=1;af.X=1;df.X=1;bd.X=1;bf.X=1;cf.X=1;hf.X=1;jf.X=1;kf.X=1;mf.X=1;of.X=1;pf.X=1;hc.X=1;qf.X=1;tf.X=1;uf.X=1;Hb.X=1;vf.X=1;wf.X=1;cd.X=1;Sa.X=1;yf.X=1;
zf.X=1;Ib.X=1;dd.X=1;Af.X=1;ed.X=1;ic.X=1;gd.X=1;Df.X=1;Jb.X=1;kc.X=1;Ff.X=1;If.X=1;Lf.X=1;nd.X=1;od.X=1;Vf.X=1;Kb.X=1;eb.X=1;xf.X=1;gg.X=1;pb.X=1;hg.X=1;ig.X=1;jg.X=1;kg.X=1;lg.X=1;mg.X=1;ng.X=1;qd.X=1;rb.X=1;og.X=1;nc.X=1;ug.X=1;Cg.X=1;yd.X=1;zd.X=1;Ig.X=1;wd.X=1;zg.X=1;Ad.X=1;yg.X=1;xd.X=1;Bd.X=1;Kg.X=1;xa.X=1;Cd.X=1;td.X=1;tb.X=1;xg.X=1;rd.X=1;wg.X=1;Dd.X=1;Mg.X=1;Hg.X=1;vg.X=1;md.X=1;ag.X=1;$f.X=1;Xf.X=1;Qb.X=1;Rb.X=1;Pb.X=1;Ug.X=1;Vg.X=1;Ne.X=1;Me.X=1;Fd.X=1;Le.X=1;Gg.X=1;Yg.X=1;$g.X=1;Nf.X=
1;eg.X=1;ah.X=1;dh.X=1;hb.X=1;ib.X=1;jd.X=1;Sg.X=1;Ya.X=1;Kf.X=1;Sd.X=1;Td.X=1;Bh.X=1;He.X=1;Ud.X=1;vd.X=1;Ch.X=1;ud.X=1;Dh.X=1;Eg.X=1;Xa.X=1;Eh.X=1;Bf.X=1;xc.X=1;yc.X=1;zc.X=1;Gd.X=1;Bc.X=1;Yf.X=1;sd.X=1;Ih.X=1;Wd.X=1;Fa.X=1;ub.X=1;ya.X=1;Zf.X=1;oa.X=1;db.X=1;pd.X=1;Fg.X=1;Dc.X=1;Jf.X=1;Nh.X=1;Mh.X=1;Xb.X=1;Oh.X=1;Ec.X=1;Cc.X=1;Fc.X=1;Qh.X=1;Lh.X=1;$d.X=1;Rh.X=1;Vh.X=1;Ga.X=1;qb.X=1;Yh.X=1;cg.X=1;Zh.X=1;$h.X=1;Da.X=1;bi.X=1;bh.X=1;ch.X=1;ee.X=1;Zb.X=1;fh.X=1;gi.X=1;fe.X=1;hi.X=1;wb.X=1;ie.X=1;Kc.X=
1;eh.X=1;id.X=1;kb.X=1;Ed.X=1;Kh.X=1;$b.X=1;ji.X=1;je.X=1;xb.X=1;Ma.X=1;gh.X=1;Yb.X=1;ad.X=1;le.X=1;ra.X=1;Gb.X=1;$c.X=1;Wc.X=1;me.X=1;mi.X=1;Je.X=1;oi.X=1;Vc.X=1;lc.X=1;Ob.X=1;pc.X=1;bg.X=1;Ca.X=1;yb.X=1;ld.X=1;dg.X=1;Wf.X=1;Pc.X=1;ri.X=1;si.X=1;vi.X=1;wi.X=1;xi.X=1;yi.X=1;zi.X=1;Fe.X=1;ui.X=1;oe.X=1;zb.X=1;Ra.X=1;va.X=1;Ai.X=1;Bi.X=1;Ci.X=1;wa.X=1;Hi.X=1;Ii.X=1;Ab.X=1;Ei.X=1;Fi.X=1;Gi.X=1;var ua=function(a,h,e,c){if(h<a&&a<h+e){h+=e;for(a+=e;e--;)a--,h--,N[a]=N[h]}else na(a,h,e,c)};ma=22;var ue=
0,ve=0,we=0,ba={currentPath:"/",nextInode:2,streams:[null],ignorePermissions:true,absolutePath:function(a,h){if(typeof a!=="string")return null;if(h===void 0)h=ba.currentPath;a&&a[0]=="/"&&(h="");for(var e=(h+"/"+a).split("/").reverse(),c=[""];e.length;){var b=e.pop();b==""||b=="."||(b==".."?c.length>1&&c.pop():c.push(b))}return c.length==1?"/":c.join("/")},analyzePath:function(a,h,e){var c={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null},
a=ba.absolutePath(a);if(a=="/")c.isRoot=true,c.exists=c.parentExists=true,c.name="/",c.path=c.parentPath="/",c.object=c.parentObject=ba.root;else if(a!==null)for(var e=e||0,a=a.slice(1).split("/"),b=ba.root,d=[""];a.length;){if(a.length==1&&b.isFolder)c.parentExists=true,c.parentPath=d.length==1?"/":d.join("/"),c.parentObject=b,c.name=a[0];var i=a.shift();if(b.isFolder)if(b.read){if(!b.contents.hasOwnProperty(i)){c.error=2;break}}else{c.error=13;break}else{c.error=20;break}b=b.contents[i];if(b.link&&
!(h&&a.length==0)){if(e>40){c.error=40;break}c=ba.absolutePath(b.link,d.join("/"));return ba.analyzePath([c].concat(a).join("/"),h,e+1)}d.push(i);if(a.length==0)c.exists=true,c.path=d.join("/"),c.object=b}return c},findObject:function(a,h){ba.ensureRoot();var e=ba.analyzePath(a,h);return e.exists?e.object:(Ea(e.error),null)},createObject:function(a,h,e,c,b){a||(a="/");typeof a==="string"&&(a=ba.findObject(a));if(!a)throw Ea(13),Error("Parent path must exist.");if(!a.isFolder)throw Ea(20),Error("Parent must be a folder.");
if(!a.write&&!ba.ignorePermissions)throw Ea(13),Error("Parent folder must be writeable.");if(!h||h=="."||h=="..")throw Ea(2),Error("Name must not be empty.");if(a.contents.hasOwnProperty(h))throw Ea(17),Error("Can't overwrite object.");a.contents[h]={read:c===void 0?true:c,write:b===void 0?false:b,timestamp:Date.now(),inodeNumber:ba.nextInode++};for(var d in e)e.hasOwnProperty(d)&&(a.contents[h][d]=e[d]);return a.contents[h]},createFolder:function(a,h,e,c){return ba.createObject(a,h,{isFolder:true,
isDevice:false,contents:{}},e,c)},createPath:function(a,h,e,c){a=ba.findObject(a);if(a===null)throw Error("Invalid parent.");for(h=h.split("/").reverse();h.length;){var b=h.pop();b&&(a.contents.hasOwnProperty(b)||ba.createFolder(a,b,e,c),a=a.contents[b])}return a},createFile:function(a,h,e,c,b){e.isFolder=false;return ba.createObject(a,h,e,c,b)},createDataFile:function(a,h,e,c,b){if(typeof e==="string"){for(var d=[],i=0;i<e.length;i++)d.push(e.charCodeAt(i));e=d}return ba.createFile(a,h,{isDevice:false,
contents:e},c,b)},createLazyFile:function(a,h,e,c,b){return ba.createFile(a,h,{isDevice:false,url:e},c,b)},createLink:function(a,h,e,c,b){return ba.createFile(a,h,{isDevice:false,link:e},c,b)},createDevice:function(a,h,e,c){if(!e&&!c)throw Error("A device must have at least one callback defined.");return ba.createFile(a,h,{isDevice:true,input:e,output:c},Boolean(e),Boolean(c))},forceLoadFile:function(a){if(a.isDevice||a.isFolder||a.link||a.contents)return true;var h=true;if(typeof XMLHttpRequest!==
"undefined"){var e=new XMLHttpRequest;e.open("GET",a.url,false);if(typeof Uint8Array!="undefined")e.responseType="arraybuffer";e.overrideMimeType&&e.overrideMimeType("text/plain; charset=x-user-defined");e.send(null);e.status!=200&&e.status!=0&&(h=false);a.contents=e.response!==void 0?new Uint8Array(e.response||[]):cb(e.responseText||"",true)}else if(typeof read!=="undefined")try{a.contents=cb(read(a.url),true)}catch(c){h=false}else throw Error("Cannot load without read() or XMLHttpRequest.");h||
Ea(5);return h},ensureRoot:function(){if(!ba.root)ba.root={read:true,write:true,isFolder:true,isDevice:false,timestamp:Date.now(),inodeNumber:1,contents:{}}},init:function(a,h,e){x(!ba.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");ba.init.initialized=true;ba.ensureRoot();a||(a=function(){if(!a.cache||!a.cache.length){var b;typeof window!="undefined"&&typeof window.prompt==
"function"?b=window.prompt("Input: "):typeof readline=="function"&&(b=readline());b||(b="");a.cache=cb(b+"\n",true)}return a.cache.shift()});h||(h=function(a){a===null||a==="\n".charCodeAt(0)?(h.printer(h.buffer.join("")),h.buffer=[]):h.buffer.push(String.fromCharCode(a))});if(!h.printer)h.printer=print;if(!h.buffer)h.buffer=[];e||(e=h);ba.createFolder("/","tmp",true,true);var c=ba.createFolder("/","dev",true,true),b=ba.createDevice(c,"stdin",a),d=ba.createDevice(c,"stdout",null,h),e=ba.createDevice(c,
"stderr",null,e);ba.createDevice(c,"tty",a,h);ba.streams[1]={path:"/dev/stdin",object:b,position:0,isRead:true,isWrite:false,isAppend:false,error:false,eof:false,ungotten:[]};ba.streams[2]={path:"/dev/stdout",object:d,position:0,isRead:false,isWrite:true,isAppend:false,error:false,eof:false,ungotten:[]};ba.streams[3]={path:"/dev/stderr",object:e,position:0,isRead:false,isWrite:true,isAppend:false,error:false,eof:false,ungotten:[]};ue=H([1],"void*",L);ve=H([2],"void*",L);we=H([3],"void*",L);ba.createPath("/",
"dev/shm/tmp",true,true);ba.streams[ue]=ba.streams[1];ba.streams[ve]=ba.streams[2];ba.streams[we]=ba.streams[3];H([H([0,0,0,0,ue,0,0,0,ve,0,0,0,we,0,0,0],"void*",L)],"void*",L)},quit:function(){ba.init.initialized&&(ba.streams[2].object.output.buffer.length>0&&ba.streams[2].object.output("\n".charCodeAt(0)),ba.streams[3].object.output.buffer.length>0&&ba.streams[3].object.output("\n".charCodeAt(0)))}},lj;Ni.unshift({func:function(){ba.ignorePermissions=false;ba.init.initialized||ba.init()}});Oi.push({func:function(){ba.quit()}});
Ea(0);Li.buf=H(12,"void*",L);Module.callMain=function(a){function h(){for(var a=0;a<3;a++)c.push(0)}var e=a.length+1,c=[H(cb("/bin/this.program"),"i8",L)];h();for(var b=0;b<e-1;b+=1)c.push(H(cb(a[b]),"i8",L)),h();c.push(0);c=H(c,"i32",L);return _main(e,c,0)};var rh,Ti,Ui,Vi,Wi,Xi,Yi,Zi,$i,aj,Ka,sh,bj,cj,dj,ej,fj,gj,hj,ij,Oa,th,ef,ff,lf,oh,Lb,Mb,Nb,ae,Ge,Ie,Tb,Lg,Rg,Tg,Xc,Oe,nh,mh,hh,jh,lh,kh,Zc,Vd,wc,Fh,Gh,Ac,vb,Jh,Md,xh,yh,zh,Ah,Qa,be,Gc,Hc,ce,ci,di,ei,fi,Ic,Jg,vc,uc,Qd,sc,Vb,tc,Od,Pd,Nd,Hd,Id,Jd,
Kd,Ld,qh,ph,Nc,uh,vh,wh,P,qa,qe,xe,ye,Bb,cc,kj;za.__str=H([101,110,99,111,100,101,114,0],"i8",L);rh=H([17,0,19,0,19,0,19,0,19,0,23,0,39,0,57,0,5,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);H([7,0,7,0,7,0,7,0,7,0,8,0,12,0,18,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ti=H([8,0,8,0,7,0,8,0,7,0,2,0,8,0,4,0,7,0,2,0,4,0,7,0,2,0,8,0,4,0,7,0,2,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ui=H([8,0,8,0,7,0,8,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0,4,0,7,0,2,0,6,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Vi=H([8,0,9,0,9,0,8,0,9,0,2,0,6,0,4,0,9,0,2,0,6,0,8,0,9,0,2,0,6,0,4,0,9,0,2,0,6,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0],L);Wi=H([8,0,9,0,9,0,8,0,11,0,3,0,7,0,4,0,11,0,3,0,7,0,8,0,11,0,3,0,7,0,4,0,11,0,3,0,7,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Xi=H([8,0,9,0,9,0,8,0,13,0,4,0,7,0,5,0,13,0,4,0,7,0,8,0,13,0,4,0,7,0,5,0,13,0,4,0,7,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0],L);Yi=H([9,0,9,0,9,0,8,0,13,0,4,0,4,0,5,0,6,0,13,0,4,0,4,0,5,0,8,0,13,0,4,0,4,0,5,0,6,0,13,0,4,0,4,0,5,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Zi=H([8,0,9,0,9,0,8,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,5,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,8,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0,5,0,1,0,1,0,1,0,1,0,10,0,10,0,7,0,7,0],["i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);$i=H([7,0,8,0,9,0,8,0,6,0,9,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,9,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,3,0,3,0,3,0,5,0,6,0,4,0,4,0,4,0,4,0,4,0,4,0,3,0,3,0,
3,0,3,0,3,0,5,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);aj=H([3,0,8,0,9,0,9,0,6,
0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ka=H(36,"*",L);sh=H([95,0,103,0,118,0,134,0,148,0,159,0,204,0,244,0,39,0,43,0,38,0,37,0,0,0,0,0,0,0,0,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);bj=H([0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,23,0,24,0,25,0,26,0,27,0,28,0,48,0,49,0,61,0,62,0,82,0,83,0,47,0,46,0,45,0,44,0,81,0,80,0,79,0,78,0,17,0,18,0,20,0,22,0,77,0,76,0,75,0,74,0,
29,0,30,0,43,0,42,0,41,0,40,0,38,0,39,0,16,0,19,0,21,0,50,0,51,0,59,0,60,0,63,0,64,0,72,0,73,0,84,0,85,0,93,0,94,0,32,0,33,0,35,0,36,0,53,0,54,0,56,0,57,0,66,0,67,0,69,0,70,0,87,0,88,0,90,0,91,0,34,0,55,0,68,0,89,0,37,0,58,0,71,0,92,0,31,0,52,0,65,0,86,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0],L);cj=H([7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,23,0,24,0,25,0,26,0,27,0,46,0,65,0,84,0,45,0,44,0,43,0,64,0,63,0,62,0,83,0,82,0,81,0,102,0,101,0,100,0,42,0,61,0,80,0,99,0,28,0,47,0,66,0,85,0,18,0,41,0,60,0,79,0,98,0,29,0,48,0,67,0,17,0,20,0,22,0,40,0,59,0,78,0,97,0,21,0,30,0,49,0,68,0,86,0,19,0,16,0,87,0,39,0,38,0,58,0,57,0,77,0,35,0,54,0,73,0,92,0,76,0,96,0,95,0,36,0,55,0,74,0,93,0,32,0,51,0,33,0,52,0,70,0,71,0,89,0,90,0,31,0,50,0,69,0,88,0,37,0,56,0,75,
0,94,0,34,0,53,0,72,0,91,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);dj=H([0,0,1,0,4,0,5,0,3,0,6,0,7,0,2,0,13,0,15,0,8,0,9,0,11,0,12,0,14,0,10,0,16,0,28,0,74,0,29,0,75,0,27,0,73,0,26,0,72,0,30,0,76,0,51,0,97,0,50,0,
71,0,96,0,117,0,31,0,77,0,52,0,98,0,49,0,70,0,95,0,116,0,53,0,99,0,32,0,78,0,33,0,79,0,48,0,69,0,94,0,115,0,47,0,68,0,93,0,114,0,46,0,67,0,92,0,113,0,19,0,21,0,23,0,22,0,18,0,17,0,20,0,24,0,111,0,43,0,89,0,110,0,64,0,65,0,44,0,90,0,25,0,45,0,66,0,91,0,112,0,54,0,100,0,40,0,61,0,86,0,107,0,39,0,60,0,85,0,106,0,36,0,57,0,82,0,103,0,35,0,56,0,81,0,102,0,34,0,55,0,80,0,101,0,42,0,63,0,88,0,109,0,41,0,62,0,87,0,108,0,38,0,59,0,84,0,105,0,37,0,58,0,83,0,104,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);ej=H([0,0,1,0,4,0,3,0,5,0,6,0,13,0,7,0,2,0,8,0,9,0,11,0,15,0,12,0,14,0,10,0,28,0,82,0,29,0,83,0,27,0,81,
0,26,0,80,0,30,0,84,0,16,0,55,0,109,0,56,0,110,0,31,0,85,0,57,0,111,0,48,0,73,0,102,0,127,0,32,0,86,0,51,0,76,0,105,0,130,0,52,0,77,0,106,0,131,0,58,0,112,0,33,0,87,0,19,0,23,0,53,0,78,0,107,0,132,0,21,0,22,0,18,0,17,0,20,0,24,0,25,0,50,0,75,0,104,0,129,0,47,0,72,0,101,0,126,0,54,0,79,0,108,0,133,0,46,0,71,0,100,0,125,0,128,0,103,0,74,0,49,0,45,0,70,0,99,0,124,0,42,0,67,0,96,0,121,0,39,0,64,0,93,0,118,0,38,0,63,0,92,0,117,0,35,0,60,0,89,0,114,0,34,0,59,0,88,0,113,0,44,0,69,0,98,0,123,0,43,0,68,0,
97,0,122,0,41,0,66,0,95,0,120,0,40,0,65,0,94,0,119,0,37,0,62,0,91,0,116,0,36,0,61,0,90,0,115,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);fj=H([0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,15,0,16,0,26,0,87,0,27,0,88,0,28,0,89,0,29,0,90,0,30,0,91,0,51,0,80,0,112,0,141,0,52,0,81,0,113,0,142,0,54,0,83,0,115,0,144,0,55,0,84,0,116,0,145,0,58,0,119,0,59,0,120,0,21,0,22,0,23,0,17,0,18,0,19,0,31,0,60,0,92,0,121,0,56,0,85,0,117,0,146,0,20,0,24,0,25,0,50,0,79,
0,111,0,140,0,57,0,86,0,118,0,147,0,49,0,78,0,110,0,139,0,48,0,77,0,53,0,82,0,114,0,143,0,109,0,138,0,47,0,76,0,108,0,137,0,32,0,33,0,61,0,62,0,93,0,94,0,122,0,123,0,41,0,42,0,43,0,44,0,45,0,46,0,70,0,71,0,72,0,73,0,74,0,75,0,102,0,103,0,104,0,105,0,106,0,107,0,131,0,132,0,133,0,134,0,135,0,136,0,34,0,63,0,95,0,124,0,35,0,64,0,96,0,125,0,36,0,65,0,97,0,126,0,37,0,66,0,98,0,127,0,38,0,67,0,99,0,128,0,39,0,68,0,100,0,129,0,40,0,69,0,101,0,130,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);gj=H([8,0,7,0,6,0,5,0,4,0,3,0,2,0,14,0,16,0,9,0,10,0,12,0,13,0,15,0,11,0,17,0,20,0,22,0,24,0,23,0,19,0,18,0,21,0,56,0,88,0,122,0,154,0,57,0,89,0,123,0,155,0,58,0,90,0,124,0,156,0,52,0,84,0,118,0,150,0,53,0,85,0,119,0,151,0,27,0,93,0,28,0,94,0,29,0,95,0,30,0,96,0,31,0,97,0,61,0,127,0,62,0,128,0,63,0,129,0,59,0,91,0,125,0,157,0,32,0,98,0,64,0,130,0,1,0,0,0,25,0,26,0,33,0,99,
0,34,0,100,0,65,0,131,0,66,0,132,0,54,0,86,0,120,0,152,0,60,0,92,0,126,0,158,0,55,0,87,0,121,0,153,0,117,0,116,0,115,0,46,0,78,0,112,0,144,0,43,0,75,0,109,0,141,0,40,0,72,0,106,0,138,0,36,0,68,0,102,0,134,0,114,0,149,0,148,0,147,0,146,0,83,0,82,0,81,0,80,0,51,0,50,0,49,0,48,0,47,0,45,0,44,0,42,0,39,0,35,0,79,0,77,0,76,0,74,0,71,0,67,0,113,0,111,0,110,0,108,0,105,0,101,0,145,0,143,0,142,0,140,0,137,0,133,0,41,0,73,0,107,0,139,0,37,0,69,0,103,0,135,0,38,0,70,0,104,0,136,0],["i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);hj=H([7,0,6,0,5,0,4,0,3,0,2,0,1,0,0,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,26,0,27,0,28,0,29,0,30,0,31,0,115,0,116,0,117,0,118,0,119,0,120,0,72,0,73,0,161,0,162,0,65,0,68,0,69,0,108,0,111,0,112,0,154,0,157,0,158,0,197,0,200,0,201,0,32,0,33,0,121,0,122,
0,74,0,75,0,163,0,164,0,66,0,109,0,155,0,198,0,19,0,23,0,21,0,22,0,18,0,17,0,20,0,24,0,25,0,37,0,36,0,35,0,34,0,80,0,79,0,78,0,77,0,126,0,125,0,124,0,123,0,169,0,168,0,167,0,166,0,70,0,67,0,71,0,113,0,110,0,114,0,159,0,156,0,160,0,202,0,199,0,203,0,76,0,165,0,81,0,82,0,92,0,91,0,93,0,83,0,95,0,85,0,84,0,94,0,101,0,102,0,96,0,104,0,86,0,103,0,87,0,97,0,127,0,128,0,138,0,137,0,139,0,129,0,141,0,131,0,130,0,140,0,147,0,148,0,142,0,150,0,132,0,149,0,133,0,143,0,170,0,171,0,181,0,180,0,182,0,172,0,184,
0,174,0,173,0,183,0,190,0,191,0,185,0,193,0,175,0,192,0,176,0,186,0,38,0,39,0,49,0,48,0,50,0,40,0,52,0,42,0,41,0,51,0,58,0,59,0,53,0,61,0,43,0,60,0,44,0,54,0,194,0,179,0,189,0,196,0,177,0,195,0,178,0,187,0,188,0,151,0,136,0,146,0,153,0,134,0,152,0,135,0,144,0,145,0,105,0,90,0,100,0,107,0,88,0,106,0,89,0,98,0,99,0,62,0,47,0,57,0,64,0,45,0,63,0,46,0,55,0,56,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);ij=H([0,0,1,0,2,
0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,11,0,12,0,13,0,14,0,23,0,15,0,16,0,17,0,18,0,19,0,20,0,21,0,22,0,24,0,25,0,26,0,27,0,28,0,38,0,141,0,39,0,142,0,40,0,143,0,41,0,144,0,42,0,145,0,43,0,146,0,44,0,147,0,45,0,148,0,46,0,149,0,47,0,97,0,150,0,200,0,48,0,98,0,151,0,201,0,49,0,99,0,152,0,202,0,86,0,136,0,189,0,239,0,87,0,137,0,190,0,240,0,88,0,138,0,191,0,241,0,91,0,194,0,92,0,195,0,93,0,196,0,94,0,197,0,95,0,198,0,29,0,30,0,31,0,32,0,33,0,34,0,35,0,50,0,100,0,153,0,203,0,89,0,139,0,192,0,242,0,51,0,101,
0,154,0,204,0,55,0,105,0,158,0,208,0,90,0,140,0,193,0,243,0,59,0,109,0,162,0,212,0,63,0,113,0,166,0,216,0,67,0,117,0,170,0,220,0,36,0,37,0,54,0,53,0,52,0,58,0,57,0,56,0,62,0,61,0,60,0,66,0,65,0,64,0,70,0,69,0,68,0,104,0,103,0,102,0,108,0,107,0,106,0,112,0,111,0,110,0,116,0,115,0,114,0,120,0,119,0,118,0,157,0,156,0,155,0,161,0,160,0,159,0,165,0,164,0,163,0,169,0,168,0,167,0,173,0,172,0,171,0,207,0,206,0,205,0,211,0,210,0,209,0,215,0,214,0,213,0,219,0,218,0,217,0,223,0,222,0,221,0,73,0,72,0,71,0,76,
0,75,0,74,0,79,0,78,0,77,0,82,0,81,0,80,0,85,0,84,0,83,0,123,0,122,0,121,0,126,0,125,0,124,0,129,0,128,0,127,0,132,0,131,0,130,0,135,0,134,0,133,0,176,0,175,0,174,0,179,0,178,0,177,0,182,0,181,0,180,0,185,0,184,0,183,0,188,0,187,0,186,0,226,0,225,0,224,0,229,0,228,0,227,0,232,0,231,0,230,0,235,0,234,0,233,0,238,0,237,0,236,0,96,0,199,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Oa=H(60,"*",L);th=H([13,0,14,0,16,0,18,0,19,0,21,0,26,0,31,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,1,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],
L);ef=H([1,0,3,0],["i16",0,"i16",0],L);ff=H([0,0,1,0,2,0,4,0],["i16",0,"i16",0,"i16",0,"i16",0],L);lf=H([0,0,1,0,0,0,1,0,-1,0,0,0,-1,0,1,0,0,0,1,0,0,0,1,0,0,0,-1,0,1,0,0,0,1,0,-1,0,0,0,1,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);oh=H([0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,1,0,3,0,2,0,4,0,1,0,4,0,1,0,4,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Lb=H([30802,0,28954,0,27217,0,25584,0,24049,0,22606,0,21250,0,19975,0,18777,0,17650,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Mb=H([29491,0,26542,0,23888,0,21499,0,19349,0,17414,0,15672,0,14105,0,12694,0,11425,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Nb=H([19661,0,11797,0,7078,0,4247,0,2548,0,1529,0,917,0,550,0,330,0,198,0],["i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);ae=H([20473,0,20506,0,20539,0,20572,0,20605,0,20644,0,20677,0,20716,0,20749,0,20788,0,20821,0,20860,0,20893,0,20932,0,20972,0,21011,0,21050,0,21089,0,21129,0,21168,0,21207,0,21247,0,21286,0,21332,0,21371,0,21417,0,21456,0,21502,0,21542,0,21588,0,21633,0,21679,0,21725,0,21771,0,21817,0,21863,0,21909,0,21961,0,22007,0,22059,0,22105,0,22158,0,22210,0,22263,0,22315,0,22367,0,22420,0,22472,0,22531,0,22584,0,22643,0,22702,0,22761,0,22820,0,22879,0,22938,
0,23003,0,23062,0,23128,0,23193,0,23252,0,23324,0,23390,0,23455,0,23527,0,23600,0,23665,0,23744,0,23816,0,23888,0,23967,0,24045,0,24124,0,24202,0,24288,0,24366,0,24451,0,24537,0,24628,0,24714,0,24805,0,24904,0,24995,0,25094,0,25192,0,25297,0,25395,0,25500,0,25611,0,25723,0,25834,0,25952,0,26070,0,26188,0,26313,0,26444,0,26575,0,26706,0,26844,0,26988,0,27132,0,27283,0,27440,0,27597,0,27761,0,27931,0,28108,0,28285,0,28475,0,28665,0,28869,0,29078,0,29295,0,29524,0,29760,0,30002,0,30258,0,30527,0,30808,
0,31457,0,32767,0,32767,0,32767,0,32767,0,32767,0,32767,0,32767,0,31457,0,30808,0,30527,0,30258,0,30002,0,29760,0,29524,0,29295,0,29078,0,28869,0,28665,0,28475,0,28285,0,28108,0,27931,0,27761,0,27597,0,27440,0,27283,0,27132,0,26988,0,26844,0,26706,0,26575,0,26444,0,26313,0,26188,0,26070,0,25952,0,25834,0,25723,0,25611,0,25500,0,25395,0,25297,0,25192,0,25094,0,24995,0,24904,0,24805,0,24714,0,24628,0,24537,0,24451,0,24366,0,24288,0,24202,0,24124,0,24045,0,23967,0,23888,0,23816,0,23744,0,23665,0,23600,
0,23527,0,23455,0,23390,0,23324,0,23252,0,23193,0,23128,0,23062,0,23003,0,22938,0,22879,0,22820,0,22761,0,22702,0,22643,0,22584,0,22531,0,22472,0,22420,0,22367,0,22315,0,22263,0,22210,0,22158,0,22105,0,22059,0,22007,0,21961,0,21909,0,21863,0,21817,0,21771,0,21725,0,21679,0,21633,0,21588,0,21542,0,21502,0,21456,0,21417,0,21371,0,21332,0,21286,0,21247,0,21207,0,21168,0,21129,0,21089,0,21050,0,21011,0,20972,0,20932,0,20893,0,20860,0,20821,0,20788,0,20749,0,20716,0,20677,0,20644,0,20605,0,20572,0,20539,
0,20506,0,20473,0,20434,0,20401,0,20369,0,20336,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ge=H([12,0,13,0,15,0,17,0,19,0,20,0,26,0,31,0,5,0,6,0,5,0,5,0,0,0,0,0,0,0,0,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ie=H([13,0,14,0,16,0,18,0,19,0,21,0,26,0,31,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,1,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Tb=H([-1023,0,-878,0,-732,0,-586,
0,-440,0,-294,0,-148,0,0,0,0,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Lg=H([2E4,0,2E4,0,2E4,0,2E4,0,2E4,0,18E3,0,16384,0,8192,0,0,0,0,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Rg=H([32767,0,32112,0,32112,0,32112,0,32112,0,32112,0,22937,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Tg=H([32767,0,32112,0,32112,0,26214,0,9830,0,6553,0,6553,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],
L);Xc=H([13,0,14,0,16,0,18,0,20,0,21,0,27,0,32,0,6,0,7,0,6,0,6,0,0,0,0,0,0,0,1,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Oe=H([13,0,14,0,16,0,18,0,19,0,21,0,26,0,31,0,6,0,6,0,6,0,6,0,0,0,0,0,0,0,1,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);nh=H([0,0,3277,0,6556,0,8192,0,9830,0,11469,0,12288,0,13107,0,13926,0,14746,
0,15565,0,16384,0,17203,0,18022,0,18842,0,19661,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);mh=H([159,0,-3776,0,-22731,0,206,0,-3394,0,-20428,0,268,0,-3005,0,-18088,0,349,0,-2615,0,-15739,0,419,0,-2345,0,-14113,0,482,0,-2138,0,-12867,0,554,0,-1932,0,-11629,0,637,0,-1726,0,-10387,0,733,0,-1518,0,-9139,0,842,0,-1314,0,-7906,0,969,0,-1106,0,-6656,0,1114,0,-900,0,-5416,0,1281,0,-694,0,-4173,0,1473,0,-487,0,-2931,
0,1694,0,-281,0,-1688,0,1948,0,-75,0,-445,0,2241,0,133,0,801,0,2577,0,339,0,2044,0,2963,0,545,0,3285,0,3408,0,752,0,4530,0,3919,0,958,0,5772,0,4507,0,1165,0,7016,0,5183,0,1371,0,8259,0,5960,0,1577,0,9501,0,6855,0,1784,0,10745,0,7883,0,1991,0,11988,0,9065,0,2197,0,13231,0,10425,0,2404,0,14474,0,12510,0,2673,0,16096,0,16263,0,3060,0,18429,0,21142,0,3448,0,20763,0,27485,0,3836,0,23097,0,27485,0,3836,0,23097,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);hh=H([44,0,37,0,22,0,12,0],["i16",0,"i16",0,"i16",0,"i16",0],L);jh=H([5571,0,4751,0,2785,0,1556,0],["i16",0,"i16",0,"i16",0,"i16",0],L);lh=H([0,0,1,0,3,0,2,0,6,0,4,0,5,0,7,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);kh=H([0,0,1,0,3,0,2,0,5,0,6,0,4,0,7,0],["i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Zc=H([32760,0,32723,0,32588,0,32364,0,32051,0,31651,0,31164,0,30591,0,29935,0,29196,0,28377,0,27481,0,26509,0,25465,0,24351,0,23170,0,21926,0,20621,0,19260,0,17846,0,16384,0,14876,0,13327,0,11743,0,10125,0,8480,0,6812,0,5126,0,3425,0,1714,0,0,0,-1714,0,-3425,0,-5126,0,-6812,0,-8480,0,-10125,0,-11743,0,-13327,0,-14876,0,-16384,0,-17846,0,-19260,0,-20621,0,-21926,0,-23170,0,-24351,0,-25465,0,-26509,0,-27481,0,-28377,0,-29196,0,-29935,0,-30591,0,-31164,0,
-31651,0,-32051,0,-32364,0,-32588,0,-32723,0,-32760,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Vd=H([29519,0,28316,0,24906,0,19838,0,13896,0,7945,0,2755,0,-1127,0,-3459,0,-4304,0,-3969,0,-2899,0,-1561,0,-336,0,534,0,970,0,1023,0,823,0,516,0,220,0,0,0,-131,0,-194,0,-215,0,0,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);wc=H([32767,0,31790,0,30894,0,30070,0,29309,0,28602,0,27945,0,27330,
0,26755,0,26214,0,25705,0,25225,0,24770,0,24339,0,23930,0,23541,0,23170,0,22817,0,22479,0,22155,0,21845,0,21548,0,21263,0,20988,0,20724,0,20470,0,20225,0,19988,0,19760,0,19539,0,19326,0,19119,0,18919,0,18725,0,18536,0,18354,0,18176,0,18004,0,17837,0,17674,0,17515,0,17361,0,17211,0,17064,0,16921,0,16782,0,16646,0,16514,0,16384,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Fh=H([32728,0,32619,0,32438,0,32187,0,31867,0,31480,0,31029,0,30517,0,29946,0,29321,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Gh=H([11904,0,17280,0,30720,0,25856,0,24192,0,28992,0,24384,0,7360,0,19520,0,14784,0],["i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ac=H([0,0,1455,0,2866,0,4236,0,5568,0,6863,0,8124,0,9352,0,10549,0,11716,0,12855,0,13967,0,15054,0,16117,0,17156,0,18172,0,19167,0,20142,0,21097,0,22033,0,22951,0,23852,0,24735,0,25603,0,26455,0,27291,0,28113,0,28922,0,29716,0,30497,0,31266,0,32023,0,32767,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);vb=H([32767,0,32729,0,32610,0,32413,0,32138,0,31786,0,31357,0,30853,0,30274,0,29622,0,28899,0,28106,0,27246,0,26320,0,25330,0,24279,0,23170,0,22006,0,20788,0,19520,0,18205,0,16846,0,15447,0,14010,0,12540,0,11039,0,9512,0,7962,0,6393,0,4808,0,3212,0,1608,0,0,0,-1608,0,-3212,0,-4808,0,-6393,0,-7962,0,-9512,0,-11039,0,-12540,0,-14010,0,-15447,0,-16846,0,-18205,0,-19520,0,-20788,0,-22006,0,-23170,0,-24279,0,-25330,0,
-26320,0,-27246,0,-28106,0,-28899,0,-29622,0,-30274,0,-30853,0,-31357,0,-31786,0,-32138,0,-32413,0,-32610,0,-32729,0,-32768,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Jh=H([-26887,0,-8812,0,-5323,0,-3813,0,-2979,0,-2444,0,-2081,0,-1811,0,-1608,0,-1450,0,-1322,0,-1219,0,-1132,0,-1059,0,-998,0,-946,0,-901,0,-861,0,-827,0,-797,0,-772,0,-750,0,-730,0,-713,0,-699,0,-687,0,-677,0,-668,0,-662,0,-657,0,-654,0,-652,0,-652,0,-654,0,-657,0,-662,0,-668,0,-677,0,-687,0,-699,0,-713,0,-730,0,-750,0,-772,0,-797,0,-827,0,-861,0,-901,
0,-946,0,-998,0,-1059,0,-1132,0,-1219,0,-1322,0,-1450,0,-1608,0,-1811,0,-2081,0,-2444,0,-2979,0,-3813,0,-5323,0,-8812,0,-26887,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Md=H([3E4,0,26E3,0,21E3,0,15E3,0,8E3,0,0,0,-8E3,0,-15E3,0,-21E3,0,-26E3,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);H([2147483647,0,0,0,1073741823,0,0,0,536870911,0,0,0,268435455,0,0,0,134217727,0,0,0,67108863,0,0,0,33554431,0,0,0,16777215,0,0,0,8388607,0,0,0,4194303,0,0,0,2097151,0,0,0,1048575,0,0,0,524287,0,0,0,
262143,0,0,0,131071,0,0,0,65535,0,0,0,32767,0,0,0,16383,0,0,0,8191,0,0,0,4095,0,0,0,2047,0,0,0,1023,0,0,0,511,0,0,0,255,0,0,0,127,0,0,0,63,0,0,0,31,0,0,0,15,0,0,0,7,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0],["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",
0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0],L);xh=H([26777,0,801,0,2505,0,-683,0,-1382,0,582,0,604,0,-1274,0,3511,0,-5894,0,4534,0,-499,0,-1940,0,3011,0,-5058,0,5614,0,-1990,0,-1061,0,-1459,0,4442,0,-700,0,-5335,0,4609,0,452,0,-589,0,-3352,0,2953,0,1267,0,-1212,0,-2590,0,1731,0,3670,0,-4475,0,-975,0,4391,0,-2537,0,949,0,-1363,0,-979,0,5734,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);yh=H([30274,0,3831,0,-4036,0,2972,0,-1048,0,-1002,0,2477,0,-3043,0,2815,0,-2231,0,1753,0,-1611,0,1714,0,-1775,0,1543,0,-1008,0,429,0,-169,0,472,0,-1264,0,2176,0,-2706,0,2523,0,-1621,0,344,0,826,0,-1529,0,1724,0,-1657,0,1701,0,-2063,0,2644,0,-3060,0,2897,0,-1978,0,557,0,780,0,-1369,0,842,0,655,0],
["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);zh=H([14690,0,11518,0,1268,0,-2761,0,-5671,0,7514,0,-35,0,-2807,0,-3040,0,4823,0,2952,0,-8424,0,3785,0,1455,0,2179,0,-8637,0,8051,0,-2103,0,-1454,0,777,0,1108,0,-2385,0,2254,0,
-363,0,-674,0,-2103,0,6046,0,-5681,0,1072,0,3123,0,-5058,0,5312,0,-2329,0,-3728,0,6924,0,-3889,0,675,0,-1775,0,29,0,10145,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ah=H([30274,0,3831,0,-4036,0,2972,0,-1048,0,-1002,0,
2477,0,-3043,0,2815,0,-2231,0,1753,0,-1611,0,1714,0,-1775,0,1543,0,-1008,0,429,0,-169,0,472,0,-1264,0,2176,0,-2706,0,2523,0,-1621,0,344,0,826,0,-1529,0,1724,0,-1657,0,1701,0,-2063,0,2644,0,-3060,0,2897,0,-1978,0,557,0,780,0,-1369,0,842,0,655,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Qa=H([84,0,1,0,-2,0,2,0,5,0,10,0,5,0,9,0,20,0,84,0,1,0,-2,0,2,0,5,0,10,0,5,0,9,0,20,0,84,0,1,0,-2,0,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,-2,0,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,-2,0,2,0,3,0,6,0,5,0,9,0,20,0,84,0,1,0,-2,0,2,0,3,0,6,0,10,0,19,0,20,0,84,0,1,0,-2,0,2,0,3,0,6,0,5,0,9,0,20,0,94,0,0,0,-3,0,3,0,3,0,6,0,5,0,9,0,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);be=H([8192,0,15836,0,-7667,0],["i16",0,"i16",0,"i16",0],L);Gc=H([7699,0,-15398,0,7699,0],["i16",0,"i16",0,"i16",0],L);Hc=H([16384,0,16743,0,17109,0,17484,0,17867,0,18258,0,18658,0,19066,0,19484,0,19911,0,20347,0,20792,0,21247,0,21713,0,22188,0,22674,0,23170,0,23678,0,24196,0,24726,0,25268,0,25821,0,26386,0,26964,0,27554,0,28158,0,28774,0,29405,0,30048,0,30706,0,31379,0,32066,0,32767,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);ce=H([29443,0,28346,0,25207,0,20449,0,14701,0,8693,0,3143,0,-1352,0,-4402,0,-5865,0,-5850,0,-4673,0,-2783,0,-672,0,1211,0,2536,0,3130,0,2991,0,2259,0,1170,0,0,0,-1001,0,-1652,0,-1868,0,-1666,0,-1147,0,-464,0,218,0,756,0,1060,0,1099,0,904,0,550,0,135,0,-245,0,-514,0,-634,0,-602,0,
-451,0,-231,0,0,0,191,0,308,0,340,0,296,0,198,0,78,0,-36,0,-120,0,-163,0,-165,0,-132,0,-79,0,-19,0,34,0,73,0,91,0,89,0,70,0,38,0,0,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);ci=H([22938,0,16057,0,11240,0,7868,0,5508,0,3856,0,2699,0,1889,0,1322,0,925,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);di=H([24576,0,18432,0,13824,0,10368,0,7776,0,5832,0,4374,0,3281,0,2461,0,1846,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);ei=H([18022,0,9912,0,5451,0,2998,0,1649,0,907,
0,499,0,274,0,151,0,83,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);fi=H([22938,0,16057,0,11240,0,7868,0,5508,0,3856,0,2699,0,1889,0,1322,0,925,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ic=H([812,0,128,0,542,0,140,0,2873,0,1135,0,2266,0,3402,0,2067,0,563,0,12677,0,647,0,4132,0,1798,0,5601,0,5285,0,7689,0,374,0,3735,0,441,0,10912,0,2638,0,11807,0,2494,0,20490,0,797,0,5218,0,675,0,6724,0,8354,0,5282,0,1696,0,1488,
0,428,0,5882,0,452,0,5332,0,4072,0,3583,0,1268,0,2469,0,901,0,15894,0,1005,0,14982,0,3271,0,10331,0,4858,0,3635,0,2021,0,2596,0,835,0,12360,0,4892,0,12206,0,1704,0,13432,0,1604,0,9118,0,2341,0,3968,0,1538,0,5479,0,9936,0,3795,0,417,0,1359,0,414,0,3640,0,1569,0,7995,0,3541,0,11405,0,645,0,8552,0,635,0,4056,0,1377,0,16608,0,6124,0,11420,0,700,0,2007,0,607,0,12415,0,1578,0,11119,0,4654,0,13680,0,1708,0,11990,0,1229,0,7996,0,7297,0,13231,0,5715,0,2428,0,1159,0,2073,0,1941,0,6218,0,6121,0,3546,0,1804,
0,8925,0,1802,0,8679,0,1580,0,13935,0,3576,0,13313,0,6237,0,6142,0,1130,0,5994,0,1734,0,14141,0,4662,0,11271,0,3321,0,12226,0,1551,0,13931,0,3015,0,5081,0,10464,0,9444,0,6706,0,1689,0,683,0,1436,0,1306,0,7212,0,3933,0,4082,0,2713,0,7793,0,704,0,15070,0,802,0,6299,0,5212,0,4337,0,5357,0,6676,0,541,0,6062,0,626,0,13651,0,3700,0,11498,0,2408,0,16156,0,716,0,12177,0,751,0,8065,0,11489,0,6314,0,2256,0,4466,0,496,0,7293,0,523,0,10213,0,3833,0,8394,0,3037,0,8403,0,966,0,14228,0,1880,0,8703,0,5409,0,16395,
0,4863,0,7420,0,1979,0,6089,0,1230,0,9371,0,4398,0,14558,0,3363,0,13559,0,2873,0,13163,0,1465,0,5534,0,1678,0,13138,0,14771,0,7338,0,600,0,1318,0,548,0,4252,0,3539,0,10044,0,2364,0,10587,0,622,0,13088,0,669,0,14126,0,3526,0,5039,0,9784,0,15338,0,619,0,3115,0,590,0,16442,0,3013,0,15542,0,4168,0,15537,0,1611,0,15405,0,1228,0,16023,0,9299,0,7534,0,4976,0,1990,0,1213,0,11447,0,1157,0,12512,0,5519,0,9475,0,2644,0,7716,0,2034,0,13280,0,2239,0,16011,0,5093,0,8066,0,6761,0,10083,0,1413,0,5002,0,2347,0,12523,
0,5975,0,15126,0,2899,0,18264,0,2289,0,15827,0,2527,0,16265,0,10254,0,14651,0,11319,0,1797,0,337,0,3115,0,397,0,3510,0,2928,0,4592,0,2670,0,7519,0,628,0,11415,0,656,0,5946,0,2435,0,6544,0,7367,0,8238,0,829,0,4E3,0,863,0,10032,0,2492,0,16057,0,3551,0,18204,0,1054,0,6103,0,1454,0,5884,0,7900,0,18752,0,3468,0,1864,0,544,0,9198,0,683,0,11623,0,4160,0,4594,0,1644,0,3158,0,1157,0,15953,0,2560,0,12349,0,3733,0,17420,0,5260,0,6106,0,2004,0,2917,0,1742,0,16467,0,5257,0,16787,0,1680,0,17205,0,1759,0,4773,0,
3231,0,7386,0,6035,0,14342,0,10012,0,4035,0,442,0,4194,0,458,0,9214,0,2242,0,7427,0,4217,0,12860,0,801,0,11186,0,825,0,12648,0,2084,0,12956,0,6554,0,9505,0,996,0,6629,0,985,0,10537,0,2502,0,15289,0,5006,0,12602,0,2055,0,15484,0,1653,0,16194,0,6921,0,14231,0,5790,0,2626,0,828,0,5615,0,1686,0,13663,0,5778,0,3668,0,1554,0,11313,0,2633,0,9770,0,1459,0,14003,0,4733,0,15897,0,6291,0,6278,0,1870,0,7910,0,2285,0,16978,0,4571,0,16576,0,3849,0,15248,0,2311,0,16023,0,3244,0,14459,0,17808,0,11847,0,2763,0,1981,
0,1407,0,1400,0,876,0,4335,0,3547,0,4391,0,4210,0,5405,0,680,0,17461,0,781,0,6501,0,5118,0,8091,0,7677,0,7355,0,794,0,8333,0,1182,0,15041,0,3160,0,14928,0,3039,0,20421,0,880,0,14545,0,852,0,12337,0,14708,0,6904,0,1920,0,4225,0,933,0,8218,0,1087,0,10659,0,4084,0,10082,0,4533,0,2735,0,840,0,20657,0,1081,0,16711,0,5966,0,15873,0,4578,0,10871,0,2574,0,3773,0,1166,0,14519,0,4044,0,20699,0,2627,0,15219,0,2734,0,15274,0,2186,0,6257,0,3226,0,13125,0,19480,0,7196,0,930,0,2462,0,1618,0,4515,0,3092,0,13852,
0,4277,0,10460,0,833,0,17339,0,810,0,16891,0,2289,0,15546,0,8217,0,13603,0,1684,0,3197,0,1834,0,15948,0,2820,0,15812,0,5327,0,17006,0,2438,0,16788,0,1326,0,15671,0,8156,0,11726,0,8556,0,3762,0,2053,0,9563,0,1317,0,13561,0,6790,0,12227,0,1936,0,8180,0,3550,0,13287,0,1778,0,16299,0,6599,0,16291,0,7758,0,8521,0,2551,0,7225,0,2645,0,18269,0,7489,0,16885,0,2248,0,17882,0,2884,0,17265,0,3328,0,9417,0,20162,0,11042,0,8320,0,1286,0,620,0,1431,0,583,0,5993,0,2289,0,3978,0,3626,0,5144,0,752,0,13409,0,830,0,
5553,0,2860,0,11764,0,5908,0,10737,0,560,0,5446,0,564,0,13321,0,3008,0,11946,0,3683,0,19887,0,798,0,9825,0,728,0,13663,0,8748,0,7391,0,3053,0,2515,0,778,0,6050,0,833,0,6469,0,5074,0,8305,0,2463,0,6141,0,1865,0,15308,0,1262,0,14408,0,4547,0,13663,0,4515,0,3137,0,2983,0,2479,0,1259,0,15088,0,4647,0,15382,0,2607,0,14492,0,2392,0,12462,0,2537,0,7539,0,2949,0,12909,0,12060,0,5468,0,684,0,3141,0,722,0,5081,0,1274,0,12732,0,4200,0,15302,0,681,0,7819,0,592,0,6534,0,2021,0,16478,0,8737,0,13364,0,882,0,5397,
0,899,0,14656,0,2178,0,14741,0,4227,0,14270,0,1298,0,13929,0,2029,0,15477,0,7482,0,15815,0,4572,0,2521,0,2013,0,5062,0,1804,0,5159,0,6582,0,7130,0,3597,0,10920,0,1611,0,11729,0,1708,0,16903,0,3455,0,16268,0,6640,0,9306,0,1007,0,9369,0,2106,0,19182,0,5037,0,12441,0,4269,0,15919,0,1332,0,15357,0,3512,0,11898,0,14141,0,16101,0,6854,0,2010,0,737,0,3779,0,861,0,11454,0,2880,0,3564,0,3540,0,9057,0,1241,0,12391,0,896,0,8546,0,4629,0,11561,0,5776,0,8129,0,589,0,8218,0,588,0,18728,0,3755,0,12973,0,3149,0,
15729,0,758,0,16634,0,754,0,15222,0,11138,0,15871,0,2208,0,4673,0,610,0,10218,0,678,0,15257,0,4146,0,5729,0,3327,0,8377,0,1670,0,19862,0,2321,0,15450,0,5511,0,14054,0,5481,0,5728,0,2888,0,7580,0,1346,0,14384,0,5325,0,16236,0,3950,0,15118,0,3744,0,15306,0,1435,0,14597,0,4070,0,12301,0,15696,0,7617,0,1699,0,2170,0,884,0,4459,0,4567,0,18094,0,3306,0,12742,0,815,0,14926,0,907,0,15016,0,4281,0,15518,0,8368,0,17994,0,1087,0,2358,0,865,0,16281,0,3787,0,15679,0,4596,0,16356,0,1534,0,16584,0,2210,0,16833,
0,9697,0,15929,0,4513,0,3277,0,1085,0,9643,0,2187,0,11973,0,6068,0,9199,0,4462,0,8955,0,1629,0,10289,0,3062,0,16481,0,5155,0,15466,0,7066,0,13678,0,2543,0,5273,0,2277,0,16746,0,6213,0,16655,0,3408,0,20304,0,3363,0,18688,0,1985,0,14172,0,12867,0,15154,0,15703,0,4473,0,1020,0,1681,0,886,0,4311,0,4301,0,8952,0,3657,0,5893,0,1147,0,11647,0,1452,0,15886,0,2227,0,4582,0,6644,0,6929,0,1205,0,6220,0,799,0,12415,0,3409,0,15968,0,3877,0,19859,0,2109,0,9689,0,2141,0,14742,0,8830,0,14480,0,2599,0,1817,0,1238,
0,7771,0,813,0,19079,0,4410,0,5554,0,2064,0,3687,0,2844,0,17435,0,2256,0,16697,0,4486,0,16199,0,5388,0,8028,0,2763,0,3405,0,2119,0,17426,0,5477,0,13698,0,2786,0,19879,0,2720,0,9098,0,3880,0,18172,0,4833,0,17336,0,12207,0,5116,0,996,0,4935,0,988,0,9888,0,3081,0,6014,0,5371,0,15881,0,1667,0,8405,0,1183,0,15087,0,2366,0,19777,0,7002,0,11963,0,1562,0,7279,0,1128,0,16859,0,1532,0,15762,0,5381,0,14708,0,2065,0,20105,0,2155,0,17158,0,8245,0,17911,0,6318,0,5467,0,1504,0,4100,0,2574,0,17421,0,6810,0,5673,
0,2888,0,16636,0,3382,0,8975,0,1831,0,20159,0,4737,0,19550,0,7294,0,6658,0,2781,0,11472,0,3321,0,19397,0,5054,0,18878,0,4722,0,16439,0,2373,0,20430,0,4386,0,11353,0,26526,0,11593,0,3068,0,2866,0,1566,0,5108,0,1070,0,9614,0,4915,0,4939,0,3536,0,7541,0,878,0,20717,0,851,0,6938,0,4395,0,16799,0,7733,0,10137,0,1019,0,9845,0,964,0,15494,0,3955,0,15459,0,3430,0,18863,0,982,0,20120,0,963,0,16876,0,12887,0,14334,0,4200,0,6599,0,1220,0,9222,0,814,0,16942,0,5134,0,5661,0,4898,0,5488,0,1798,0,20258,0,3962,0,
17005,0,6178,0,17929,0,5929,0,9365,0,3420,0,7474,0,1971,0,19537,0,5177,0,19003,0,3006,0,16454,0,3788,0,16070,0,2367,0,8664,0,2743,0,9445,0,26358,0,10856,0,1287,0,3555,0,1009,0,5606,0,3622,0,19453,0,5512,0,12453,0,797,0,20634,0,911,0,15427,0,3066,0,17037,0,10275,0,18883,0,2633,0,3913,0,1268,0,19519,0,3371,0,18052,0,5230,0,19291,0,1678,0,19508,0,3172,0,18072,0,10754,0,16625,0,6845,0,3134,0,2298,0,10869,0,2437,0,15580,0,6913,0,12597,0,3381,0,11116,0,3297,0,16762,0,2424,0,18853,0,6715,0,17171,0,9887,
0,12743,0,2605,0,8937,0,3140,0,19033,0,7764,0,18347,0,3880,0,20475,0,3682,0,19602,0,3380,0,13044,0,19373,0,10526,0,23124,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Jg=H([812,0,128,0,542,0,140,0,2873,0,1135,0,2266,0,3402,0,2067,0,563,0,12677,0,647,0,4132,0,1798,0,5601,0,5285,0,7689,0,374,0,3735,0,441,0,10912,0,2638,0,11807,0,2494,0,20490,0,797,0,5218,0,675,0,6724,0,8354,0,5282,0,1696,0,1488,0,428,0,5882,
0,452,0,5332,0,4072,0,3583,0,1268,0,2469,0,901,0,15894,0,1005,0,14982,0,3271,0,10331,0,4858,0,3635,0,2021,0,2596,0,835,0,12360,0,4892,0,12206,0,1704,0,13432,0,1604,0,9118,0,2341,0,3968,0,1538,0,5479,0,9936,0,3795,0,417,0,1359,0,414,0,3640,0,1569,0,7995,0,3541,0,11405,0,645,0,8552,0,635,0,4056,0,1377,0,16608,0,6124,0,11420,0,700,0,2007,0,607,0,12415,0,1578,0,11119,0,4654,0,13680,0,1708,0,11990,0,1229,0,7996,0,7297,0,13231,0,5715,0,2428,0,1159,0,2073,0,1941,0,6218,0,6121,0,3546,0,1804,0,8925,0,1802,
0,8679,0,1580,0,13935,0,3576,0,13313,0,6237,0,6142,0,1130,0,5994,0,1734,0,14141,0,4662,0,11271,0,3321,0,12226,0,1551,0,13931,0,3015,0,5081,0,10464,0,9444,0,6706,0,1689,0,683,0,1436,0,1306,0,7212,0,3933,0,4082,0,2713,0,7793,0,704,0,15070,0,802,0,6299,0,5212,0,4337,0,5357,0,6676,0,541,0,6062,0,626,0,13651,0,3700,0,11498,0,2408,0,16156,0,716,0,12177,0,751,0,8065,0,11489,0,6314,0,2256,0,4466,0,496,0,7293,0,523,0,10213,0,3833,0,8394,0,3037,0,8403,0,966,0,14228,0,1880,0,8703,0,5409,0,16395,0,4863,0,7420,
0,1979,0,6089,0,1230,0,9371,0,4398,0,14558,0,3363,0,13559,0,2873,0,13163,0,1465,0,5534,0,1678,0,13138,0,14771,0,7338,0,600,0,1318,0,548,0,4252,0,3539,0,10044,0,2364,0,10587,0,622,0,13088,0,669,0,14126,0,3526,0,5039,0,9784,0,15338,0,619,0,3115,0,590,0,16442,0,3013,0,15542,0,4168,0,15537,0,1611,0,15405,0,1228,0,16023,0,9299,0,7534,0,4976,0,1990,0,1213,0,11447,0,1157,0,12512,0,5519,0,9475,0,2644,0,7716,0,2034,0,13280,0,2239,0,16011,0,5093,0,8066,0,6761,0,10083,0,1413,0,5002,0,2347,0,12523,0,5975,0,15126,
0,2899,0,18264,0,2289,0,15827,0,2527,0,16265,0,10254,0,14651,0,11319,0,1797,0,337,0,3115,0,397,0,3510,0,2928,0,4592,0,2670,0,7519,0,628,0,11415,0,656,0,5946,0,2435,0,6544,0,7367,0,8238,0,829,0,4E3,0,863,0,10032,0,2492,0,16057,0,3551,0,18204,0,1054,0,6103,0,1454,0,5884,0,7900,0,18752,0,3468,0,1864,0,544,0,9198,0,683,0,11623,0,4160,0,4594,0,1644,0,3158,0,1157,0,15953,0,2560,0,12349,0,3733,0,17420,0,5260,0,6106,0,2004,0,2917,0,1742,0,16467,0,5257,0,16787,0,1680,0,17205,0,1759,0,4773,0,3231,0,7386,0,
6035,0,14342,0,10012,0,4035,0,442,0,4194,0,458,0,9214,0,2242,0,7427,0,4217,0,12860,0,801,0,11186,0,825,0,12648,0,2084,0,12956,0,6554,0,9505,0,996,0,6629,0,985,0,10537,0,2502,0,15289,0,5006,0,12602,0,2055,0,15484,0,1653,0,16194,0,6921,0,14231,0,5790,0,2626,0,828,0,5615,0,1686,0,13663,0,5778,0,3668,0,1554,0,11313,0,2633,0,9770,0,1459,0,14003,0,4733,0,15897,0,6291,0,6278,0,1870,0,7910,0,2285,0,16978,0,4571,0,16576,0,3849,0,15248,0,2311,0,16023,0,3244,0,14459,0,17808,0,11847,0,2763,0,1981,0,1407,0,1400,
0,876,0,4335,0,3547,0,4391,0,4210,0,5405,0,680,0,17461,0,781,0,6501,0,5118,0,8091,0,7677,0,7355,0,794,0,8333,0,1182,0,15041,0,3160,0,14928,0,3039,0,20421,0,880,0,14545,0,852,0,12337,0,14708,0,6904,0,1920,0,4225,0,933,0,8218,0,1087,0,10659,0,4084,0,10082,0,4533,0,2735,0,840,0,20657,0,1081,0,16711,0,5966,0,15873,0,4578,0,10871,0,2574,0,3773,0,1166,0,14519,0,4044,0,20699,0,2627,0,15219,0,2734,0,15274,0,2186,0,6257,0,3226,0,13125,0,19480,0,7196,0,930,0,2462,0,1618,0,4515,0,3092,0,13852,0,4277,0,10460,
0,833,0,17339,0,810,0,16891,0,2289,0,15546,0,8217,0,13603,0,1684,0,3197,0,1834,0,15948,0,2820,0,15812,0,5327,0,17006,0,2438,0,16788,0,1326,0,15671,0,8156,0,11726,0,8556,0,3762,0,2053,0,9563,0,1317,0,13561,0,6790,0,12227,0,1936,0,8180,0,3550,0,13287,0,1778,0,16299,0,6599,0,16291,0,7758,0,8521,0,2551,0,7225,0,2645,0,18269,0,7489,0,16885,0,2248,0,17882,0,2884,0,17265,0,3328,0,9417,0,20162,0,11042,0,8320,0,1286,0,620,0,1431,0,583,0,5993,0,2289,0,3978,0,3626,0,5144,0,752,0,13409,0,830,0,5553,0,2860,0,
11764,0,5908,0,10737,0,560,0,5446,0,564,0,13321,0,3008,0,11946,0,3683,0,19887,0,798,0,9825,0,728,0,13663,0,8748,0,7391,0,3053,0,2515,0,778,0,6050,0,833,0,6469,0,5074,0,8305,0,2463,0,6141,0,1865,0,15308,0,1262,0,14408,0,4547,0,13663,0,4515,0,3137,0,2983,0,2479,0,1259,0,15088,0,4647,0,15382,0,2607,0,14492,0,2392,0,12462,0,2537,0,7539,0,2949,0,12909,0,12060,0,5468,0,684,0,3141,0,722,0,5081,0,1274,0,12732,0,4200,0,15302,0,681,0,7819,0,592,0,6534,0,2021,0,16478,0,8737,0,13364,0,882,0,5397,0,899,0,14656,
0,2178,0,14741,0,4227,0,14270,0,1298,0,13929,0,2029,0,15477,0,7482,0,15815,0,4572,0,2521,0,2013,0,5062,0,1804,0,5159,0,6582,0,7130,0,3597,0,10920,0,1611,0,11729,0,1708,0,16903,0,3455,0,16268,0,6640,0,9306,0,1007,0,9369,0,2106,0,19182,0,5037,0,12441,0,4269,0,15919,0,1332,0,15357,0,3512,0,11898,0,14141,0,16101,0,6854,0,2010,0,737,0,3779,0,861,0,11454,0,2880,0,3564,0,3540,0,9057,0,1241,0,12391,0,896,0,8546,0,4629,0,11561,0,5776,0,8129,0,589,0,8218,0,588,0,18728,0,3755,0,12973,0,3149,0,15729,0,758,0,
16634,0,754,0,15222,0,11138,0,15871,0,2208,0,4673,0,610,0,10218,0,678,0,15257,0,4146,0,5729,0,3327,0,8377,0,1670,0,19862,0,2321,0,15450,0,5511,0,14054,0,5481,0,5728,0,2888,0,7580,0,1346,0,14384,0,5325,0,16236,0,3950,0,15118,0,3744,0,15306,0,1435,0,14597,0,4070,0,12301,0,15696,0,7617,0,1699,0,2170,0,884,0,4459,0,4567,0,18094,0,3306,0,12742,0,815,0,14926,0,907,0,15016,0,4281,0,15518,0,8368,0,17994,0,1087,0,2358,0,865,0,16281,0,3787,0,15679,0,4596,0,16356,0,1534,0,16584,0,2210,0,16833,0,9697,0,15929,
0,4513,0,3277,0,1085,0,9643,0,2187,0,11973,0,6068,0,9199,0,4462,0,8955,0,1629,0,10289,0,3062,0,16481,0,5155,0,15466,0,7066,0,13678,0,2543,0,5273,0,2277,0,16746,0,6213,0,16655,0,3408,0,20304,0,3363,0,18688,0,1985,0,14172,0,12867,0,15154,0,15703,0,4473,0,1020,0,1681,0,886,0,4311,0,4301,0,8952,0,3657,0,5893,0,1147,0,11647,0,1452,0,15886,0,2227,0,4582,0,6644,0,6929,0,1205,0,6220,0,799,0,12415,0,3409,0,15968,0,3877,0,19859,0,2109,0,9689,0,2141,0,14742,0,8830,0,14480,0,2599,0,1817,0,1238,0,7771,0,813,0,
19079,0,4410,0,5554,0,2064,0,3687,0,2844,0,17435,0,2256,0,16697,0,4486,0,16199,0,5388,0,8028,0,2763,0,3405,0,2119,0,17426,0,5477,0,13698,0,2786,0,19879,0,2720,0,9098,0,3880,0,18172,0,4833,0,17336,0,12207,0,5116,0,996,0,4935,0,988,0,9888,0,3081,0,6014,0,5371,0,15881,0,1667,0,8405,0,1183,0,15087,0,2366,0,19777,0,7002,0,11963,0,1562,0,7279,0,1128,0,16859,0,1532,0,15762,0,5381,0,14708,0,2065,0,20105,0,2155,0,17158,0,8245,0,17911,0,6318,0,5467,0,1504,0,4100,0,2574,0,17421,0,6810,0,5673,0,2888,0,16636,
0,3382,0,8975,0,1831,0,20159,0,4737,0,19550,0,7294,0,6658,0,2781,0,11472,0,3321,0,19397,0,5054,0,18878,0,4722,0,16439,0,2373,0,20430,0,4386,0,11353,0,26526,0,11593,0,3068,0,2866,0,1566,0,5108,0,1070,0,9614,0,4915,0,4939,0,3536,0,7541,0,878,0,20717,0,851,0,6938,0,4395,0,16799,0,7733,0,10137,0,1019,0,9845,0,964,0,15494,0,3955,0,15459,0,3430,0,18863,0,982,0,20120,0,963,0,16876,0,12887,0,14334,0,4200,0,6599,0,1220,0,9222,0,814,0,16942,0,5134,0,5661,0,4898,0,5488,0,1798,0,20258,0,3962,0,17005,0,6178,0,
17929,0,5929,0,9365,0,3420,0,7474,0,1971,0,19537,0,5177,0,19003,0,3006,0,16454,0,3788,0,16070,0,2367,0,8664,0,2743,0,9445,0,26358,0,10856,0,1287,0,3555,0,1009,0,5606,0,3622,0,19453,0,5512,0,12453,0,797,0,20634,0,911,0,15427,0,3066,0,17037,0,10275,0,18883,0,2633,0,3913,0,1268,0,19519,0,3371,0,18052,0,5230,0,19291,0,1678,0,19508,0,3172,0,18072,0,10754,0,16625,0,6845,0,3134,0,2298,0,10869,0,2437,0,15580,0,6913,0,12597,0,3381,0,11116,0,3297,0,16762,0,2424,0,18853,0,6715,0,17171,0,9887,0,12743,0,2605,
0,8937,0,3140,0,19033,0,7764,0,18347,0,3880,0,20475,0,3682,0,19602,0,3380,0,13044,0,19373,0,10526,0,23124,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);vc=H([-258,0,-318,0,-439,0,-634,0,-656,0,-773,0,-711,0,-502,0,-268,0,-193,0,-2,0,125,0,122,0,-39,0,-9,0,105,0,129,0,283,0,372,0,575,0,-277,0,-324,0,-197,0,-487,0,-445,0,-362,0,-292,0,-27,0,177,0,543,0,342,0,517,0,516,0,130,0,27,0,-104,0,-120,0,-140,0,-74,
0,-56,0,-564,0,-943,0,-1520,0,-965,0,-814,0,-526,0,-322,0,-2,0,159,0,657,0,-312,0,-284,0,-386,0,-597,0,-493,0,-526,0,-418,0,-229,0,105,0,449,0,-557,0,-870,0,-1075,0,-919,0,-950,0,-752,0,-709,0,-316,0,62,0,486,0,-314,0,-191,0,-203,0,-330,0,-160,0,-103,0,-51,0,131,0,338,0,515,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);uc=H([1546,0,2272,0,3778,0,5488,0,6972,0,8382,0,10047,0,11229,0,12766,0,13714,0],
["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Qd=H([9556,0,10769,0,12571,0,13292,0,14381,0,11651,0,10588,0,9767,0,8593,0,6484,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);sc=H([6,0,82,0,-131,0,154,0,-56,0,-735,0,183,0,-65,0,-265,0,9,0,-210,0,-361,0,113,0,718,0,1817,0,1010,0,1214,0,1573,0,857,0,1333,0,2276,0,827,0,1568,0,1933,0,717,0,1989,0,2206,0,838,0,1172,0,1823,0,721,0,1E3,0,2154,0,286,0,476,0,1509,0,-247,0,-531,
0,230,0,147,0,-82,0,569,0,26,0,-177,0,-944,0,-27,0,-273,0,692,0,-164,0,-264,0,-183,0,224,0,790,0,1039,0,899,0,946,0,601,0,485,0,771,0,1150,0,524,0,677,0,903,0,-140,0,375,0,778,0,410,0,676,0,429,0,301,0,530,0,1009,0,719,0,646,0,38,0,226,0,367,0,40,0,145,0,-45,0,-505,0,290,0,121,0,-121,0,302,0,127,0,166,0,-124,0,-383,0,-956,0,-358,0,-455,0,-977,0,715,0,878,0,894,0,978,0,923,0,211,0,477,0,272,0,64,0,188,0,-78,0,17,0,-143,0,-65,0,38,0,643,0,586,0,621,0,-134,0,-426,0,-651,0,347,0,545,0,2820,0,1188,0,2726,
0,2442,0,142,0,-80,0,1735,0,283,0,130,0,461,0,-262,0,-399,0,-1145,0,-411,0,155,0,430,0,329,0,375,0,779,0,53,0,-226,0,-139,0,-129,0,-236,0,1682,0,285,0,744,0,1327,0,738,0,697,0,1664,0,312,0,409,0,266,0,325,0,720,0,135,0,1,0,221,0,453,0,8,0,203,0,145,0,299,0,640,0,760,0,29,0,468,0,638,0,103,0,429,0,379,0,420,0,954,0,932,0,1326,0,1210,0,1258,0,704,0,1012,0,1152,0,-166,0,-444,0,-266,0,-316,0,-130,0,-376,0,191,0,1151,0,1904,0,-240,0,-543,0,-1260,0,-112,0,268,0,1207,0,70,0,1062,0,1583,0,278,0,1360,0,1574,
0,-258,0,-272,0,-768,0,19,0,563,0,2240,0,-3,0,-265,0,135,0,-295,0,-591,0,-388,0,140,0,354,0,-206,0,-260,0,-504,0,-795,0,-433,0,-718,0,-1319,0,109,0,331,0,962,0,-429,0,-87,0,652,0,-296,0,426,0,1019,0,-239,0,775,0,851,0,489,0,1334,0,1073,0,-334,0,-332,0,25,0,543,0,1206,0,1807,0,326,0,61,0,727,0,578,0,849,0,1405,0,-208,0,-277,0,329,0,-152,0,64,0,669,0,-434,0,-678,0,-727,0,-454,0,-71,0,251,0,605,0,480,0,254,0,-482,0,11,0,996,0,-289,0,395,0,486,0,722,0,1049,0,1440,0,-30,0,-316,0,-786,0,-106,0,-115,0,-619,
0,861,0,1474,0,1412,0,1055,0,1366,0,1184,0,812,0,1237,0,925,0,42,0,-251,0,-576,0,342,0,141,0,-454,0,-168,0,-80,0,1359,0,-342,0,-656,0,-1763,0,100,0,821,0,725,0,990,0,747,0,800,0,332,0,440,0,568,0,663,0,379,0,852,0,112,0,165,0,-369,0,597,0,910,0,282,0,-8,0,834,0,1281,0,-352,0,572,0,695,0,462,0,2246,0,1806,0,345,0,190,0,1374,0,416,0,915,0,2166,0,168,0,-82,0,280,0,-516,0,-446,0,840,0,47,0,533,0,44,0,-362,0,-711,0,-1143,0,22,0,193,0,1472,0,-85,0,233,0,1813,0,-62,0,579,0,1504,0,550,0,944,0,1749,0,723,
0,650,0,1148,0,972,0,884,0,1395,0,-425,0,643,0,0,0,1E3,0,952,0,1098,0,249,0,1446,0,672,0,-334,0,-87,0,2172,0,-554,0,1882,0,2672,0,140,0,1826,0,1853,0,920,0,1749,0,2590,0,1076,0,1933,0,2038,0,-137,0,-443,0,-1555,0,1269,0,1174,0,468,0,-493,0,-122,0,1521,0,-451,0,1033,0,1214,0,482,0,1695,0,1118,0,815,0,649,0,384,0,-446,0,-692,0,107,0,-319,0,-605,0,-118,0,-207,0,-505,0,525,0,-468,0,-12,0,2736,0,75,0,1934,0,1305,0,880,0,2358,0,2267,0,1285,0,1575,0,2004,0,-48,0,-304,0,-1186,0,-435,0,-461,0,-251,0,-366,
0,-404,0,-547,0,-289,0,-605,0,-597,0,-538,0,-810,0,-165,0,-120,0,3,0,356,0,639,0,1241,0,1502,0,96,0,177,0,750,0,-435,0,-585,0,-1174,0,-356,0,109,0,-79,0,-485,0,288,0,2005,0,9,0,1116,0,731,0,880,0,2134,0,946,0,-265,0,1585,0,1065,0,1157,0,1210,0,843,0,-498,0,-668,0,431,0,374,0,321,0,-229,0,1440,0,2101,0,1381,0,449,0,461,0,1155,0,-105,0,39,0,-384,0,-263,0,367,0,182,0,-371,0,-660,0,773,0,-188,0,1151,0,971,0,1333,0,1632,0,1435,0,774,0,1267,0,1221,0,-482,0,-832,0,-1489,0,-237,0,-210,0,860,0,890,0,1615,
0,1064,0,472,0,1062,0,1192,0,185,0,1077,0,989,0,-568,0,-992,0,-1704,0,-449,0,-902,0,-2043,0,-142,0,-377,0,-458,0,-210,0,-554,0,-1029,0,-11,0,1133,0,2265,0,-329,0,-675,0,-893,0,-250,0,657,0,1187,0,519,0,1510,0,1779,0,520,0,539,0,1403,0,527,0,1421,0,1302,0,-563,0,-871,0,-1248,0,-147,0,-463,0,879,0,-76,0,2334,0,2840,0,563,0,2573,0,2385,0,632,0,1926,0,2920,0,719,0,2023,0,1840,0,-545,0,-723,0,1108,0,129,0,-125,0,884,0,1417,0,1632,0,925,0,-94,0,1566,0,1751,0,-341,0,1533,0,1551,0,591,0,395,0,-274,0,-76,
0,981,0,2831,0,153,0,2985,0,1844,0,1032,0,2565,0,2749,0,1508,0,2832,0,1879,0,791,0,1199,0,538,0,-190,0,-453,0,1489,0,-278,0,-548,0,1158,0,-245,0,1941,0,2044,0,1024,0,1560,0,1650,0,512,0,253,0,466,0,-62,0,-323,0,1151,0,-473,0,-376,0,507,0,-433,0,1380,0,2162,0,899,0,1943,0,1445,0,134,0,704,0,440,0,460,0,525,0,-28,0,-450,0,279,0,1338,0,0,0,971,0,252,0,-445,0,-627,0,-991,0,-348,0,-602,0,-1424,0,398,0,712,0,1656,0,-107,0,314,0,-178,0,93,0,2226,0,2238,0,518,0,849,0,656,0,-462,0,-711,0,-447,0,174,0,-34,
0,1191,0,-119,0,42,0,1005,0,-372,0,274,0,758,0,1036,0,2352,0,1838,0,675,0,1724,0,1498,0,430,0,1286,0,2133,0,-129,0,-439,0,0,0,-373,0,800,0,2144,0,6,0,1587,0,2478,0,478,0,596,0,2128,0,-428,0,-736,0,1505,0,385,0,178,0,980,0,139,0,449,0,1225,0,-526,0,-842,0,-982,0,145,0,1554,0,1242,0,623,0,1448,0,656,0,349,0,1016,0,1482,0,31,0,-280,0,415,0,-316,0,724,0,1641,0,360,0,1058,0,556,0,-436,0,-358,0,1201,0,-355,0,1123,0,1939,0,401,0,1584,0,2248,0,-527,0,-1012,0,355,0,233,0,238,0,2233,0,-550,0,-897,0,-639,0,
-365,0,-501,0,1957,0,389,0,1860,0,1621,0,162,0,1132,0,1264,0,-237,0,1174,0,1390,0,-640,0,-411,0,116,0,-228,0,1694,0,2298,0,1639,0,2186,0,2267,0,562,0,1273,0,2658,0,323,0,338,0,1774,0,578,0,1107,0,852,0,22,0,594,0,934,0,-143,0,718,0,446,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Vb=H([50,0,71,0,-9,0,-338,0,-698,0,-1407,0,102,0,-138,0,-820,0,-310,0,-469,0,-1147,0,414,0,67,0,-267,0,1060,0,814,0,1441,0,1548,0,1360,0,1272,0,1754,0,1895,0,1661,
0,2019,0,2133,0,1820,0,1808,0,2318,0,1845,0,644,0,-93,0,454,0,858,0,329,0,-136,0,489,0,-258,0,-128,0,-198,0,-745,0,-41,0,-52,0,-265,0,-985,0,346,0,137,0,479,0,-1741,0,-748,0,-684,0,-1163,0,-1725,0,-367,0,-895,0,-1145,0,-784,0,-488,0,-946,0,-968,0,-85,0,-390,0,-725,0,215,0,-340,0,-171,0,1020,0,916,0,1969,0,564,0,179,0,746,0,662,0,977,0,1734,0,887,0,622,0,914,0,939,0,856,0,1165,0,309,0,688,0,803,0,917,0,161,0,570,0,118,0,-20,0,-283,0,-816,0,-42,0,204,0,-1228,0,-325,0,-462,0,-963,0,-202,0,-143,0,-988,
0,-484,0,-361,0,-702,0,-978,0,-477,0,-302,0,-790,0,-1188,0,-100,0,-786,0,-1088,0,-1054,0,-947,0,-1684,0,-202,0,-843,0,-782,0,-1039,0,-1378,0,-901,0,-624,0,-110,0,-85,0,356,0,213,0,-10,0,-493,0,364,0,774,0,425,0,822,0,479,0,-83,0,557,0,520,0,-992,0,-1560,0,-572,0,-603,0,-741,0,-26,0,-502,0,-638,0,-903,0,209,0,306,0,147,0,-316,0,-593,0,-596,0,-85,0,-211,0,-225,0,-918,0,-529,0,117,0,233,0,-439,0,-738,0,1101,0,751,0,633,0,1457,0,1716,0,1511,0,1765,0,1457,0,910,0,1122,0,1156,0,849,0,1354,0,868,0,470,0,
-871,0,-1150,0,-1796,0,-871,0,-861,0,-992,0,-118,0,155,0,212,0,-1051,0,-849,0,-606,0,-1117,0,-1849,0,-2750,0,-1019,0,-1427,0,-1869,0,370,0,-184,0,-414,0,959,0,493,0,104,0,958,0,1039,0,543,0,154,0,653,0,201,0,1249,0,507,0,150,0,663,0,503,0,230,0,623,0,777,0,675,0,659,0,88,0,-110,0,843,0,244,0,224,0,382,0,541,0,302,0,724,0,433,0,666,0,1166,0,734,0,341,0,-138,0,20,0,-397,0,-1183,0,-424,0,-46,0,-321,0,-352,0,-124,0,1333,0,1021,0,1080,0,262,0,366,0,723,0,922,0,283,0,-551,0,31,0,-636,0,-611,0,-689,0,-697,
0,-415,0,-952,0,-779,0,-201,0,-1329,0,-598,0,-359,0,-953,0,-1285,0,166,0,493,0,305,0,221,0,846,0,703,0,610,0,840,0,936,0,774,0,-723,0,-1324,0,-1261,0,-357,0,-1025,0,-1388,0,-1096,0,-1376,0,-365,0,-1416,0,-1881,0,-608,0,-1798,0,-1727,0,-674,0,-545,0,-1173,0,-703,0,678,0,786,0,148,0,-123,0,696,0,1288,0,644,0,350,0,-10,0,414,0,614,0,15,0,137,0,344,0,-211,0,-814,0,-1512,0,-819,0,-391,0,-930,0,-588,0,47,0,-591,0,-898,0,-909,0,-1097,0,-163,0,-1272,0,-1167,0,-157,0,-1464,0,-1525,0,-389,0,-1274,0,-1188,0,
-624,0,671,0,213,0,454,0,124,0,-274,0,-525,0,-729,0,-496,0,-152,0,-1344,0,122,0,135,0,-2905,0,-589,0,-394,0,-1728,0,441,0,-50,0,1476,0,904,0,787,0,316,0,236,0,-440,0,-347,0,217,0,413,0,-911,0,-917,0,121,0,-455,0,-932,0,202,0,-92,0,-465,0,-375,0,488,0,390,0,474,0,876,0,729,0,316,0,-1815,0,-1312,0,-669,0,87,0,962,0,432,0,563,0,-249,0,-1058,0,250,0,285,0,1105,0,1141,0,427,0,696,0,-1038,0,-1664,0,-1582,0,-948,0,346,0,160,0,-309,0,-272,0,-858,0,670,0,624,0,1250,0,-944,0,-408,0,-666,0,-606,0,-320,0,-384,
0,-492,0,230,0,65,0,334,0,-50,0,-16,0,-16,0,-690,0,-1397,0,1791,0,1716,0,1399,0,2478,0,2063,0,1404,0,1245,0,1471,0,1426,0,-382,0,-1037,0,-2,0,173,0,-398,0,1145,0,1491,0,2024,0,1801,0,772,0,1274,0,1506,0,1429,0,1735,0,2001,0,1079,0,1218,0,1273,0,-1154,0,-1851,0,-1329,0,-808,0,-1133,0,-1096,0,-451,0,-1033,0,-1722,0,65,0,578,0,-84,0,-1476,0,-2434,0,-1778,0,-765,0,-1366,0,-494,0,-218,0,-594,0,-931,0,337,0,-236,0,562,0,2357,0,2662,0,1938,0,1489,0,1276,0,874,0,189,0,358,0,374,0,-1519,0,-2281,0,-2346,0,
-967,0,-1271,0,-2095,0,-628,0,-1188,0,-1542,0,1661,0,1043,0,546,0,565,0,1061,0,732,0,-64,0,-836,0,-434,0,-436,0,-96,0,203,0,1078,0,1216,0,1636,0,907,0,1534,0,986,0,326,0,965,0,845,0,142,0,-84,0,197,0,470,0,2379,0,1570,0,1133,0,470,0,1214,0,395,0,1376,0,1200,0,1125,0,1042,0,348,0,-543,0,-1234,0,-376,0,-215,0,-181,0,481,0,-1947,0,-1621,0,-210,0,-750,0,-1185,0,390,0,29,0,-399,0,27,0,820,0,1236,0,755,0,695,0,979,0,409,0,-174,0,1197,0,1035,0,912,0,1356,0,1846,0,-992,0,-1437,0,484,0,-1485,0,-1700,0,208,
0,-412,0,1204,0,1432,0,-271,0,896,0,1144,0,-416,0,1777,0,1434,0,-1696,0,-2644,0,-204,0,-1789,0,-1551,0,1033,0,-1656,0,-1559,0,1303,0,-1253,0,-1589,0,1081,0,-669,0,-1095,0,-66,0,-682,0,320,0,-345,0,659,0,305,0,1069,0,-1292,0,-804,0,-19,0,-1635,0,-1291,0,29,0,-1683,0,-497,0,71,0,-287,0,-7,0,-100,0,-494,0,-962,0,-237,0,852,0,1881,0,1740,0,-1217,0,-1387,0,227,0,-660,0,302,0,373,0,96,0,1087,0,1257,0,-1074,0,-1669,0,160,0,485,0,2076,0,1798,0,-934,0,-220,0,552,0,-596,0,-612,0,237,0,336,0,1720,0,879,0,643,
0,629,0,434,0,1267,0,522,0,1633,0,15,0,244,0,-441,0,1475,0,717,0,184,0,1819,0,1590,0,1709,0,988,0,261,0,937,0,2093,0,2345,0,1520,0,2139,0,1858,0,1606,0,-577,0,-579,0,-1203,0,-956,0,135,0,-488,0,-464,0,51,0,-338,0,-629,0,-348,0,-723,0,1146,0,2073,0,1442,0,2192,0,1466,0,911,0,-1444,0,-1572,0,-2278,0,1400,0,710,0,1297,0,1335,0,633,0,928,0,1434,0,2194,0,2594,0,2422,0,2204,0,1881,0,982,0,2242,0,1854,0,380,0,792,0,1145,0,-63,0,-539,0,414,0,-252,0,-964,0,-314,0,-1261,0,-683,0,-780,0,-831,0,-526,0,-1005,
0,-1666,0,-1135,0,-424,0,-1611,0,-452,0,-299,0,1268,0,1048,0,642,0,1147,0,853,0,856,0,-675,0,-336,0,139,0,2268,0,1343,0,1418,0,29,0,768,0,797,0,-1224,0,423,0,564,0,-1318,0,-1082,0,245,0,-1302,0,-812,0,573,0,-1298,0,-1617,0,646,0,-968,0,834,0,723,0,993,0,1652,0,2027,0,-191,0,-817,0,432,0,662,0,60,0,198,0,626,0,997,0,1330,0,1648,0,1963,0,1289,0,-1597,0,-93,0,-45,0,-1088,0,37,0,-84,0,1653,0,2607,0,2337,0,1065,0,2040,0,2377,0,1139,0,2326,0,2118,0,859,0,357,0,1510,0,664,0,1227,0,1099,0,479,0,1360,0,912,
0,1897,0,1754,0,2019,0,1168,0,1909,0,1784,0,399,0,34,0,256,0,-593,0,-304,0,-1053,0,547,0,1694,0,1407,0,647,0,-99,0,-341,0,1492,0,1647,0,1190,0,38,0,-644,0,-212,0,395,0,846,0,222,0,-704,0,-765,0,-716,0,-724,0,-1964,0,-2804,0,-150,0,291,0,-82,0,1233,0,1459,0,1007,0,-140,0,-155,0,153,0,439,0,297,0,1568,0,-1529,0,-410,0,-636,0,1536,0,455,0,-237,0,-1328,0,-139,0,-260,0,531,0,554,0,868,0,269,0,1264,0,606,0,-233,0,883,0,463,0,742,0,600,0,-120,0,-73,0,421,0,212,0,-439,0,-58,0,804,0,-1286,0,-1241,0,728,0,
294,0,-490,0,50,0,-591,0,-905,0,-1254,0,42,0,-687,0,147,0,-25,0,273,0,596,0,-311,0,1213,0,601,0,-754,0,849,0,584,0,429,0,607,0,587,0,-602,0,-166,0,461,0,-796,0,-823,0,777,0,1380,0,910,0,1755,0,119,0,1417,0,972,0,-219,0,-880,0,-1596,0,-1049,0,-1010,0,438,0,-713,0,-1379,0,78,0,0,0,-447,0,-1179,0,-1136,0,-1319,0,-1573,0,2248,0,1767,0,1309,0,946,0,1583,0,1432,0,1150,0,482,0,436,0,-469,0,-1108,0,618,0,-447,0,-966,0,1088,0,-1252,0,-1515,0,-114,0,-1104,0,-2008,0,-579,0,210,0,613,0,497,0,-1975,0,-1437,0,
642,0,-1269,0,-856,0,1011,0,-1646,0,-1185,0,1063,0,-1555,0,-672,0,1204,0,-1692,0,-1114,0,623,0,-979,0,-1326,0,-1277,0,539,0,-147,0,894,0,-1354,0,-897,0,-434,0,888,0,475,0,428,0,153,0,-384,0,338,0,-1492,0,-511,0,359,0,-974,0,-1115,0,-470,0,105,0,-550,0,677,0,-937,0,-1145,0,877,0,380,0,-260,0,210,0,1685,0,924,0,1256,0,1775,0,1190,0,1095,0,1419,0,631,0,533,0,627,0,299,0,-347,0,-411,0,-534,0,647,0,-650,0,29,0,-595,0,-378,0,-1367,0,1563,0,1402,0,1121,0,1465,0,1089,0,1410,0,648,0,-2096,0,-1090,0,-6,0,311,
0,-194,0,-869,0,-639,0,-831,0,416,0,-1162,0,-1224,0,1349,0,-1247,0,-941,0,1813,0,-2193,0,-1987,0,453,0,-619,0,-1367,0,-956,0,-1606,0,-1972,0,-1507,0,-1175,0,-1057,0,-1104,0,-377,0,601,0,201,0,1876,0,825,0,374,0,-430,0,-1323,0,29,0,-1397,0,-1249,0,-1331,0,-1007,0,-1504,0,960,0,-1401,0,-2009,0,197,0,-1379,0,-1949,0,-236,0,-1077,0,123,0,422,0,615,0,1269,0,546,0,-306,0,1526,0,904,0,1194,0,1788,0,1177,0,-626,0,-884,0,-1526,0,199,0,766,0,1504,0,-1065,0,862,0,197,0,-1034,0,-1773,0,-887,0,-800,0,145,0,599,
0,-1134,0,-519,0,626,0,-1205,0,-1926,0,500,0,-910,0,-1041,0,-1395,0,-1476,0,-1567,0,-969,0,-523,0,842,0,34,0,1794,0,646,0,862,0,-1207,0,-1888,0,-1002,0,-78,0,-9,0,-672,0,1044,0,759,0,80,0,-600,0,1139,0,1019,0,57,0,2E3,0,1422,0,-833,0,1414,0,1121,0,-1202,0,1630,0,1260,0,-461,0,1420,0,1244,0,1537,0,975,0,253,0,-283,0,324,0,-359,0,599,0,-195,0,106,0,588,0,62,0,-587,0,-757,0,645,0,205,0,51,0,1201,0,758,0,-1209,0,673,0,-390,0,-624,0,1581,0,941,0,-151,0,1023,0,735,0,2820,0,1301,0,690,0,-302,0,524,0,-99,
0,-900,0,-1588,0,-1189,0,1084,0,251,0,238,0,2014,0,1792,0,1010,0,1245,0,1633,0,1741,0,-1227,0,-1540,0,-1208,0,-621,0,456,0,-109,0,40,0,-65,0,788,0,-805,0,-699,0,-1350,0,-583,0,904,0,832,0,-801,0,532,0,594,0,1972,0,1408,0,1351,0,-1177,0,-1880,0,-2114,0,-773,0,568,0,948,0,-1015,0,1079,0,1260,0,-1111,0,482,0,-130,0,1778,0,1044,0,780,0,-1491,0,245,0,912,0,-316,0,-1141,0,-917,0,-536,0,-1442,0,-2346,0,-785,0,-1546,0,-1988,0,-2003,0,257,0,909,0,-1849,0,-633,0,-1209,0,-1538,0,-1918,0,-1054,0,1606,0,2239,
0,1576,0,-567,0,-1500,0,-1544,0,-1279,0,195,0,1369,0,-817,0,293,0,1219,0,-525,0,630,0,1197,0,-1698,0,-2425,0,-1840,0,-303,0,731,0,747,0,-1169,0,-251,0,269,0,-950,0,-75,0,1684,0,-1182,0,-453,0,1005,0,-1599,0,585,0,378,0,-2075,0,-571,0,-427,0,-529,0,-1159,0,-1171,0,-283,0,-205,0,-564,0,-796,0,1246,0,717,0,2277,0,927,0,539,0,-454,0,559,0,440,0,-717,0,1460,0,1615,0,-1030,0,1052,0,1610,0,-1169,0,-138,0,847,0,226,0,39,0,-612,0,-1251,0,-106,0,-729,0,-651,0,968,0,1302,0,-714,0,-636,0,1727,0,353,0,1069,0,
410,0,-798,0,-156,0,1099,0,-574,0,918,0,446,0,-1310,0,1012,0,466,0,1408,0,1591,0,765,0,1429,0,1380,0,1757,0,1949,0,1956,0,2378,0,1578,0,2047,0,2148,0,916,0,98,0,-7,0,1893,0,1418,0,2141,0,348,0,1405,0,1579,0,152,0,1134,0,1801,0,-267,0,154,0,1395,0,-1166,0,469,0,1054,0,-1142,0,-405,0,-1073,0,-1341,0,-2264,0,-1581,0,-364,0,869,0,1706,0,-1162,0,549,0,1550,0,-1225,0,-1932,0,-1666,0,-1485,0,-1977,0,-2055,0,-1727,0,-906,0,-98,0,-1897,0,233,0,1492,0,892,0,108,0,-331,0,-1728,0,-1170,0,-1700,0,-1060,0,1980,
0,1790,0,-1070,0,-1741,0,-1909,0,-11,0,1539,0,1317,0,-1600,0,94,0,497,0,421,0,443,0,-197,0,-1578,0,-349,0,-994,0,-599,0,-539,0,1140,0,-965,0,-1419,0,-129,0,-1341,0,175,0,-447,0,-375,0,1311,0,2055,0,-371,0,-650,0,-307,0,-1073,0,605,0,365,0,-2057,0,-113,0,430,0,652,0,914,0,967,0,-1012,0,-1586,0,-2323,0,1505,0,1248,0,559,0,262,0,-486,0,-401,0,-1727,0,1342,0,1546,0,50,0,56,0,432,0,-330,0,119,0,-604,0,-1517,0,-1080,0,-810,0,946,0,1127,0,1055,0,-1400,0,-1703,0,-1712,0,-1270,0,-704,0,-1317,0,807,0,1821,
0,1143,0,2760,0,1606,0,2171,0,1120,0,409,0,-150,0,-147,0,404,0,959,0,2439,0,1911,0,2189,0,-906,0,-141,0,-866,0,-904,0,-142,0,-458,0,-557,0,-708,0,-1679,0,-830,0,-1431,0,-1583,0,-1842,0,-1346,0,-1086,0,-1604,0,-272,0,915,0,-1196,0,772,0,1056,0,-638,0,-1234,0,-1897,0,-500,0,-81,0,-822,0,-1289,0,-1613,0,-735,0,-117,0,785,0,168,0,-1090,0,1133,0,922,0,-1096,0,-746,0,1384,0,287,0,-547,0,-1063,0,-1376,0,-2201,0,-1204,0,-2176,0,-1570,0,-1757,0,-1511,0,-2241,0,-771,0,-1737,0,1099,0,830,0,-1588,0,724,0,1243,
0,-1542,0,693,0,805,0,-1690,0,-240,0,1665,0,-1700,0,-4,0,-668,0,2149,0,816,0,1042,0,-818,0,-1841,0,22,0,-764,0,-507,0,449,0,-1151,0,-617,0,289,0,-843,0,-1596,0,-240,0,498,0,-234,0,-657,0,-752,0,480,0,1678,0,-319,0,-481,0,193,0,-811,0,171,0,-119,0,-2128,0,-202,0,-848,0,1717,0,1140,0,1700,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);tc=H([67,0,-17,
0,66,0,-12,0,-1690,0,-581,0,-104,0,-272,0,-1076,0,-1186,0,-1845,0,-376,0,-1140,0,-926,0,-420,0,-58,0,-259,0,-656,0,-1134,0,-553,0,1788,0,1227,0,455,0,129,0,462,0,441,0,-240,0,-528,0,840,0,514,0,130,0,-75,0,1114,0,623,0,153,0,216,0,1068,0,564,0,-6,0,-276,0,1119,0,727,0,190,0,-68,0,704,0,306,0,119,0,-264,0,329,0,61,0,-100,0,156,0,364,0,123,0,183,0,-208,0,-171,0,-123,0,220,0,-65,0,-306,0,-62,0,402,0,17,0,-660,0,-938,0,-266,0,0,0,385,0,235,0,276,0,285,0,320,0,268,0,-336,0,-200,0,-724,0,17,0,-84,0,381,
0,-544,0,429,0,494,0,519,0,-117,0,288,0,304,0,329,0,643,0,157,0,701,0,508,0,1200,0,625,0,796,0,608,0,998,0,421,0,492,0,632,0,1204,0,780,0,446,0,132,0,1257,0,844,0,547,0,449,0,829,0,658,0,541,0,470,0,1132,0,1258,0,918,0,639,0,547,0,51,0,423,0,279,0,9,0,392,0,83,0,94,0,542,0,543,0,229,0,-147,0,-198,0,129,0,194,0,-185,0,-863,0,-1321,0,-302,0,30,0,-597,0,-629,0,-19,0,114,0,-900,0,-1081,0,466,0,353,0,-1483,0,-1573,0,15,0,-143,0,-1708,0,-2059,0,-751,0,196,0,-1876,0,-2067,0,-642,0,-258,0,-2335,0,-1470,0,
-450,0,-564,0,-584,0,-186,0,-872,0,-414,0,-1805,0,-988,0,-1125,0,-1310,0,-726,0,-1129,0,28,0,169,0,-1039,0,-864,0,-718,0,-246,0,484,0,36,0,-233,0,-49,0,265,0,67,0,289,0,467,0,178,0,543,0,810,0,540,0,84,0,282,0,672,0,703,0,-975,0,-777,0,129,0,287,0,-938,0,-227,0,955,0,595,0,-1617,0,-289,0,836,0,649,0,-1847,0,-215,0,1106,0,718,0,-2034,0,-1085,0,650,0,440,0,-2101,0,-529,0,907,0,575,0,-2011,0,-336,0,670,0,204,0,-2389,0,-692,0,360,0,137,0,-2156,0,-2204,0,-9,0,280,0,-266,0,119,0,39,0,193,0,78,0,-59,0,-120,
0,226,0,-975,0,-858,0,-781,0,-1095,0,-619,0,-413,0,-451,0,-842,0,-1216,0,-1321,0,-813,0,-883,0,-1376,0,-1615,0,-394,0,-428,0,-737,0,-1113,0,-549,0,-790,0,-880,0,-975,0,-967,0,-642,0,-985,0,-886,0,-1273,0,-1361,0,-473,0,-804,0,-1401,0,-1407,0,160,0,-265,0,-919,0,-275,0,-248,0,-250,0,-718,0,-380,0,97,0,-103,0,-375,0,-229,0,-415,0,-193,0,-135,0,-555,0,628,0,361,0,119,0,216,0,579,0,364,0,391,0,209,0,634,0,522,0,-154,0,-148,0,526,0,389,0,170,0,33,0,105,0,267,0,64,0,380,0,-1503,0,-1E3,0,-30,0,-369,0,-1070,
0,58,0,647,0,223,0,-1520,0,-291,0,621,0,307,0,-1531,0,156,0,762,0,404,0,-2029,0,141,0,734,0,499,0,-1849,0,-650,0,306,0,512,0,-187,0,-104,0,-59,0,438,0,134,0,-230,0,156,0,-186,0,-61,0,-260,0,-16,0,10,0,-569,0,-3,0,-421,0,-297,0,-1725,0,-521,0,-346,0,178,0,-1362,0,-59,0,-44,0,157,0,-2146,0,-461,0,-470,0,-349,0,-2170,0,-1,0,-369,0,-121,0,-1579,0,-373,0,-900,0,-1015,0,-1117,0,-591,0,-613,0,-784,0,-561,0,122,0,-75,0,-449,0,-4,0,-171,0,-123,0,-372,0,192,0,168,0,-76,0,-132,0,252,0,-107,0,340,0,210,0,392,
0,509,0,272,0,181,0,-109,0,145,0,218,0,119,0,-416,0,-263,0,485,0,265,0,-181,0,-8,0,-286,0,226,0,-244,0,-218,0,69,0,-290,0,-158,0,191,0,-1,0,-64,0,-592,0,-90,0,213,0,-96,0,255,0,435,0,178,0,-80,0,-369,0,-18,0,-33,0,-80,0,-42,0,415,0,140,0,-222,0,1143,0,651,0,649,0,329,0,767,0,556,0,249,0,235,0,948,0,413,0,442,0,279,0,141,0,339,0,356,0,557,0,-470,0,-170,0,99,0,237,0,-569,0,-800,0,352,0,565,0,282,0,473,0,470,0,332,0,-199,0,-690,0,-1284,0,-917,0,-193,0,-426,0,-800,0,-1122,0,-26,0,-371,0,-490,0,-193,0,
637,0,595,0,519,0,330,0,408,0,-115,0,79,0,12,0,477,0,87,0,-103,0,-376,0,-666,0,-347,0,-277,0,-291,0,-510,0,-481,0,169,0,297,0,-829,0,-738,0,-205,0,-171,0,-320,0,-540,0,328,0,283,0,-859,0,-958,0,442,0,-2,0,556,0,686,0,130,0,56,0,1383,0,1012,0,755,0,427,0,612,0,741,0,628,0,553,0,-339,0,-796,0,134,0,277,0,-633,0,-1085,0,-2,0,-246,0,-880,0,-1035,0,-1607,0,-1064,0,-994,0,-474,0,-1138,0,-488,0,-414,0,-795,0,73,0,-206,0,-8,0,-139,0,439,0,204,0,-176,0,-578,0,23,0,131,0,-269,0,-757,0,-191,0,245,0,-109,0,-338,
0,112,0,316,0,120,0,-406,0,-118,0,611,0,-180,0,-186,0,-645,0,115,0,-173,0,34,0,-518,0,-489,0,-151,0,61,0,-583,0,-844,0,220,0,-138,0,-681,0,-1020,0,391,0,-17,0,-598,0,-321,0,157,0,-295,0,129,0,155,0,-926,0,-875,0,-987,0,285,0,241,0,-83,0,-125,0,-125,0,620,0,597,0,432,0,92,0,393,0,78,0,409,0,61,0,-393,0,-739,0,-413,0,-748,0,83,0,54,0,361,0,27,0,-1084,0,130,0,-337,0,-694,0,-1565,0,297,0,318,0,-19,0,-1873,0,36,0,51,0,-317,0,-2323,0,-246,0,231,0,-84,0,-2306,0,-783,0,40,0,-179,0,-2233,0,-930,0,-474,0,-462,
0,-754,0,-86,0,-288,0,-626,0,-2411,0,-455,0,-63,0,171,0,-1099,0,-1094,0,-26,0,-143,0,-1193,0,-455,0,-406,0,-381,0,-605,0,-210,0,-96,0,-51,0,-580,0,-476,0,-276,0,-15,0,-1195,0,-634,0,-1203,0,-881,0,-378,0,-221,0,-669,0,-952,0,594,0,178,0,-403,0,-676,0,763,0,327,0,601,0,290,0,172,0,300,0,203,0,157,0,-56,0,-336,0,356,0,24,0,-228,0,-296,0,-259,0,-29,0,-186,0,263,0,416,0,14,0,-353,0,373,0,-12,0,-216,0,257,0,96,0,174,0,57,0,-1526,0,-616,0,-954,0,-499,0,-497,0,-152,0,-333,0,125,0,105,0,200,0,179,0,-97,0,
-331,0,-224,0,765,0,697,0,760,0,256,0,301,0,59,0,455,0,-85,0,204,0,288,0,-514,0,240,0,251,0,-109,0,256,0,417,0,-34,0,-413,0,101,0,430,0,384,0,156,0,-31,0,-10,0,206,0,426,0,589,0,145,0,143,0,71,0,808,0,906,0,333,0,349,0,986,0,938,0,589,0,331,0,1300,0,824,0,187,0,509,0,1062,0,653,0,379,0,466,0,1462,0,937,0,401,0,274,0,787,0,861,0,265,0,2,0,609,0,553,0,28,0,305,0,926,0,340,0,106,0,386,0,241,0,-267,0,-147,0,225,0,-178,0,-534,0,347,0,502,0,-643,0,-381,0,397,0,30,0,-651,0,-733,0,-435,0,398,0,-407,0,-726,
0,-484,0,-248,0,-789,0,-914,0,-438,0,-476,0,-498,0,-390,0,75,0,-295,0,-964,0,-590,0,-606,0,150,0,-121,0,-49,0,-155,0,-78,0,935,0,550,0,389,0,38,0,-321,0,127,0,424,0,315,0,-285,0,-113,0,283,0,259,0,658,0,203,0,322,0,486,0,903,0,505,0,748,0,417,0,611,0,423,0,555,0,512,0,239,0,-83,0,-578,0,-19,0,-339,0,-731,0,349,0,13,0,-934,0,-1399,0,-114,0,-360,0,107,0,692,0,182,0,90,0,-1243,0,-1538,0,-1551,0,-725,0,-568,0,-903,0,-1363,0,-525,0,-517,0,-853,0,-861,0,-1004,0,-168,0,-690,0,-835,0,63,0,-137,0,-556,0,-547,
0,144,0,-286,0,-817,0,485,0,319,0,-147,0,-408,0,526,0,246,0,-347,0,-434,0,297,0,-28,0,-290,0,-471,0,-1110,0,-1285,0,-460,0,-359,0,-988,0,-794,0,1347,0,1299,0,690,0,523,0,1216,0,1068,0,1094,0,757,0,825,0,1140,0,752,0,494,0,1252,0,1365,0,1195,0,898,0,521,0,1053,0,532,0,432,0,-334,0,-216,0,-313,0,-263,0,-160,0,52,0,-472,0,-155,0,127,0,136,0,-380,0,44,0,851,0,410,0,-162,0,-489,0,123,0,-255,0,-796,0,-667,0,1090,0,917,0,789,0,493,0,1397,0,1197,0,558,0,202,0,-51,0,-118,0,-342,0,-701,0,83,0,108,0,-42,0,-441,
0,61,0,95,0,287,0,256,0,-27,0,89,0,524,0,531,0,351,0,227,0,592,0,545,0,697,0,155,0,-164,0,307,0,638,0,274,0,-489,0,-50,0,754,0,240,0,-166,0,-124,0,-116,0,-579,0,-1212,0,-63,0,190,0,-295,0,-1040,0,-1296,0,147,0,-376,0,-177,0,-113,0,841,0,1241,0,1051,0,668,0,2,0,293,0,551,0,304,0,-1096,0,-953,0,-248,0,376,0,-750,0,-965,0,87,0,516,0,-275,0,-516,0,689,0,391,0,-379,0,-643,0,876,0,594,0,-390,0,-1013,0,-645,0,573,0,-107,0,-568,0,-689,0,-826,0,-1025,0,-27,0,-328,0,-203,0,861,0,749,0,548,0,233,0,-1660,0,-1043,
0,451,0,108,0,-660,0,-620,0,430,0,236,0,21,0,-396,0,-1158,0,-631,0,1372,0,1298,0,967,0,577,0,1125,0,1125,0,589,0,454,0,-323,0,-865,0,-467,0,153,0,-468,0,-699,0,-804,0,-509,0,-392,0,-718,0,-204,0,-35,0,-603,0,-1093,0,-567,0,-162,0,-505,0,-1004,0,-102,0,350,0,219,0,224,0,423,0,252,0,395,0,591,0,608,0,363,0,-746,0,-96,0,373,0,172,0,171,0,295,0,714,0,339,0,233,0,77,0,107,0,277,0,157,0,153,0,-499,0,-356,0,1547,0,1073,0,576,0,494,0,-292,0,-339,0,-504,0,-592,0,-903,0,-72,0,-619,0,-481,0,-1594,0,-1117,0,
-567,0,-254,0,-793,0,-507,0,-564,0,-291,0,-492,0,-532,0,502,0,560,0,-382,0,427,0,600,0,230,0,-227,0,477,0,251,0,75,0,285,0,842,0,813,0,476,0,-1310,0,-1333,0,186,0,377,0,-587,0,-917,0,643,0,381,0,-1186,0,-553,0,411,0,82,0,-1127,0,-820,0,-174,0,-540,0,-604,0,119,0,543,0,205,0,-380,0,657,0,909,0,567,0,112,0,-298,0,-374,0,114,0,-857,0,-251,0,56,0,159,0,401,0,345,0,-34,0,-140,0,-111,0,-607,0,41,0,614,0,355,0,-114,0,-77,0,474,0,578,0,56,0,1450,0,924,0,1098,0,1420,0,741,0,400,0,246,0,22,0,588,0,313,0,-121,
0,327,0,831,0,472,0,-1138,0,-608,0,856,0,552,0,-1241,0,-1072,0,638,0,600,0,-358,0,254,0,-333,0,-303,0,-646,0,739,0,358,0,74,0,1226,0,1671,0,1221,0,849,0,2241,0,1624,0,983,0,636,0,1841,0,1477,0,749,0,384,0,350,0,263,0,87,0,128,0,-1902,0,-941,0,-144,0,-64,0,-1734,0,-255,0,288,0,-31,0,-2644,0,-1238,0,366,0,235,0,-1643,0,-1092,0,-1344,0,-304,0,-541,0,-1075,0,-1116,0,123,0,-1178,0,-252,0,-816,0,-180,0,-1016,0,533,0,565,0,233,0,-487,0,-430,0,-188,0,334,0,867,0,1236,0,534,0,171,0,-1590,0,-1607,0,635,0,630,
0,-2196,0,310,0,924,0,412,0,-2358,0,-328,0,956,0,529,0,-2639,0,-377,0,630,0,278,0,-2602,0,317,0,799,0,299,0,-2406,0,133,0,340,0,31,0,-2156,0,-1468,0,131,0,125,0,-1184,0,-490,0,-139,0,46,0,-744,0,447,0,891,0,564,0,67,0,-451,0,646,0,604,0,-553,0,-429,0,-876,0,396,0,162,0,-66,0,1305,0,915,0,479,0,579,0,1088,0,794,0,450,0,278,0,566,0,324,0,-1057,0,-154,0,148,0,-177,0,-2545,0,168,0,1070,0,592,0,-2351,0,-42,0,819,0,345,0,-2344,0,-707,0,721,0,250,0,-2175,0,-1497,0,-309,0,122,0,-78,0,-73,0,120,0,173,0,-4,
0,262,0,-263,0,-261,0,-431,0,-64,0,-405,0,-732,0,-2609,0,116,0,-83,0,-193,0,-1525,0,-944,0,-477,0,-725,0,-508,0,307,0,170,0,172,0,832,0,417,0,832,0,686,0,-225,0,177,0,894,0,818,0,-482,0,-389,0,1279,0,1039,0,-383,0,201,0,-350,0,40,0,730,0,635,0,226,0,526,0,503,0,462,0,338,0,398,0,535,0,714,0,40,0,-282,0,1482,0,1471,0,1085,0,731,0,1561,0,1072,0,909,0,693,0,1419,0,1282,0,889,0,879,0,1153,0,728,0,1186,0,840,0,-226,0,1130,0,949,0,689,0,-494,0,-986,0,-1556,0,-128,0,-568,0,-721,0,-713,0,-26,0,317,0,524,
0,70,0,135,0,-405,0,-865,0,-1766,0,-652,0,-174,0,-801,0,885,0,773,0,-153,0,-91,0,1099,0,751,0,-506,0,-1149,0,853,0,646,0,241,0,782,0,519,0,539,0,1853,0,1700,0,1101,0,684,0,-1249,0,-1486,0,-464,0,188,0,-893,0,-1409,0,-1312,0,-341,0,-135,0,438,0,-175,0,18,0,1111,0,976,0,319,0,208,0,-1430,0,-1768,0,83,0,458,0,-530,0,-1E3,0,307,0,129,0,-840,0,-15,0,-29,0,-356,0,-911,0,-924,0,-1147,0,-242,0,-119,0,-528,0,127,0,-133,0,-761,0,-765,0,190,0,-83,0,-315,0,895,0,522,0,231,0,-222,0,102,0,-63,0,-428,0,316,0,699,
0,379,0,70,0,25,0,716,0,314,0,-108,0,507,0,874,0,566,0,238,0,108,0,941,0,519,0,195,0,425,0,-60,0,-427,0,257,0,139,0,-103,0,-630,0,446,0,334,0,370,0,412,0,48,0,-172,0,-690,0,-283,0,557,0,187,0,-286,0,158,0,483,0,140,0,270,0,-344,0,-631,0,924,0,579,0,-116,0,132,0,142,0,466,0,-68,0,-64,0,230,0,-145,0,-302,0,-542,0,-803,0,-912,0,1018,0,737,0,-773,0,1015,0,630,0,297,0,-2596,0,95,0,445,0,336,0,-2122,0,491,0,510,0,191,0,-1253,0,161,0,-2,0,-324,0,-1450,0,-633,0,-712,0,-105,0,-842,0,-254,0,-411,0,100,0,-640,
0,-290,0,1010,0,763,0,-650,0,313,0,1169,0,730,0,140,0,505,0,1030,0,766,0,772,0,287,0,1067,0,823,0,495,0,749,0,305,0,323,0,-164,0,462,0,78,0,399,0,-342,0,-874,0,69,0,597,0,-16,0,620,0,621,0,337,0,-138,0,-444,0,-265,0,218,0,84,0,-450,0,953,0,666,0,-222,0,-803,0,541,0,604,0,-921,0,-1376,0,244,0,116,0,-841,0,-723,0,630,0,588,0,140,0,663,0,294,0,368,0,935,0,1046,0,881,0,759,0,1746,0,1464,0,916,0,628,0,436,0,963,0,281,0,1,0,-119,0,74,0,542,0,213,0,1,0,-567,0,301,0,241,0,260,0,435,0,222,0,396,0,936,0,957,
0,1108,0,703,0,510,0,506,0,808,0,478,0,601,0,694,0,960,0,620,0,972,0,741,0,980,0,600,0,834,0,717,0,767,0,684,0,643,0,972,0,935,0,638,0,501,0,661,0,720,0,851,0,-105,0,-632,0,-303,0,-117,0,-429,0,130,0,789,0,442,0,-522,0,-188,0,704,0,373,0,-759,0,42,0,814,0,523,0,-531,0,-1137,0,373,0,578,0,-682,0,-1203,0,-455,0,285,0,-1163,0,-1577,0,-1098,0,44,0,81,0,-82,0,712,0,363,0,477,0,246,0,954,0,622,0,1604,0,1622,0,1277,0,891,0,1409,0,859,0,924,0,892,0,774,0,1041,0,947,0,1142,0,40,0,-546,0,-75,0,288,0,-616,0,
-106,0,-697,0,-26,0,-169,0,-160,0,-891,0,-739,0,-279,0,-384,0,-1029,0,-350,0,1781,0,1308,0,1046,0,816,0,1580,0,1533,0,1472,0,1178,0,1505,0,1076,0,1216,0,899,0,890,0,904,0,564,0,654,0,920,0,692,0,1021,0,856,0,-493,0,132,0,177,0,505,0,71,0,195,0,-28,0,97,0,456,0,351,0,-164,0,88,0,439,0,278,0,-40,0,350,0,1395,0,949,0,234,0,-95,0,-805,0,-472,0,38,0,-163,0,367,0,-98,0,489,0,523,0,1025,0,1178,0,1212,0,906,0,319,0,1314,0,814,0,461,0,-123,0,-543,0,-804,0,447,0,-748,0,-324,0,-897,0,-1127,0,-737,0,-501,0,-789,
0,-713,0,715,0,777,0,1239,0,922,0,1949,0,1939,0,1368,0,865,0,730,0,880,0,758,0,388,0,-871,0,454,0,17,0,-251,0,-381,0,-810,0,-1583,0,239,0,-521,0,-966,0,-792,0,259,0,-890,0,-1358,0,-770,0,-73,0,166,0,349,0,-212,0,323,0,-840,0,-301,0,473,0,435,0,-679,0,-464,0,728,0,351,0,-156,0,-199,0,667,0,432,0,29,0,-252,0,415,0,480,0,-731,0,-379,0,145,0,559,0,-528,0,-631,0,-1158,0,-159,0,445,0,273,0,123,0,639,0,373,0,-126,0,800,0,568,0,84,0,-162,0,720,0,712,0,-830,0,-536,0,-185,0,222,0,408,0,452,0,501,0,771,0,-897,
0,-1355,0,-67,0,442,0,-792,0,-1406,0,566,0,602,0,167,0,-326,0,509,0,330,0,-95,0,-626,0,-730,0,-344,0,1668,0,1217,0,779,0,455,0,1316,0,828,0,584,0,719,0,404,0,-31,0,1013,0,789,0,89,0,107,0,891,0,549,0,871,0,1581,0,917,0,671,0,866,0,1479,0,1289,0,854,0,391,0,1068,0,1122,0,812,0,78,0,-562,0,345,0,563,0,429,0,-103,0,417,0,787,0,-122,0,-437,0,411,0,788,0,-913,0,-417,0,602,0,754,0,-226,0,-16,0,151,0,760,0,-700,0,118,0,-104,0,-14,0,-1128,0,48,0,284,0,393,0,-390,0,-419,0,-639,0,-116,0,-910,0,306,0,316,0,
-13,0,1207,0,984,0,821,0,669,0,-1195,0,-693,0,140,0,-213,0,-884,0,-416,0,-199,0,-558,0,-616,0,245,0,-404,0,-664,0,262,0,56,0,-617,0,-724,0,-85,0,-491,0,-320,0,-656,0,-570,0,-831,0,-129,0,-528,0,-1506,0,-63,0,-367,0,-385,0,-358,0,-321,0,4,0,51,0,-366,0,-214,0,319,0,511,0,146,0,671,0,-17,0,-291,0,-110,0,464,0,-139,0,-496,0,-202,0,220,0,-312,0,-631,0,-660,0,-73,0,-655,0,-820,0,-662,0,-653,0,-1288,0,-857,0,-430,0,-953,0,-959,0,-264,0,-49,0,-468,0,-72,0,-381,0,-350,0,-563,0,-193,0,-407,0,55,0,-408,0,-803,
0,11,0,-309,0,649,0,188,0,-198,0,-512,0,461,0,-79,0,-458,0,-1318,0,-263,0,-134,0,-523,0,-1657,0,-435,0,-495,0,-765,0,57,0,-347,0,-414,0,434,0,-1141,0,-242,0,-664,0,-857,0,34,0,-68,0,-707,0,-338,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Od=H([419,0,163,0,-30,0,-262,0,-455,0,-789,
0,-1430,0,-721,0,1006,0,664,0,269,0,25,0,619,0,260,0,183,0,96,0,-968,0,-1358,0,-388,0,135,0,-693,0,835,0,456,0,154,0,1105,0,703,0,569,0,363,0,1625,0,1326,0,985,0,748,0,-220,0,219,0,76,0,-208,0,-1455,0,-1662,0,49,0,149,0,-964,0,-172,0,-752,0,-336,0,625,0,209,0,-250,0,-66,0,-1017,0,-838,0,-2,0,317,0,-2168,0,-1485,0,-138,0,123,0,-1876,0,-2099,0,-521,0,85,0,-967,0,-366,0,-695,0,-881,0,-921,0,-1011,0,-763,0,-949,0,-124,0,-256,0,-352,0,-660,0,178,0,463,0,354,0,304,0,-1744,0,-591,0,-282,0,79,0,-2249,0,175,
0,867,0,499,0,-138,0,-180,0,-181,0,-21,0,-2291,0,-1241,0,-460,0,-520,0,-771,0,451,0,-10,0,-308,0,271,0,-65,0,4,0,214,0,-279,0,-435,0,-43,0,-348,0,-670,0,35,0,-65,0,-211,0,806,0,535,0,85,0,297,0,57,0,239,0,722,0,493,0,225,0,661,0,840,0,547,0,-540,0,-376,0,14,0,349,0,469,0,721,0,331,0,162,0,-544,0,-752,0,-62,0,-10,0,398,0,-88,0,724,0,701,0,-19,0,-533,0,-94,0,601,0,136,0,-71,0,-681,0,-747,0,-166,0,-344,0,261,0,-50,0,161,0,-52,0,485,0,337,0,-1675,0,50,0,190,0,-93,0,-2282,0,-231,0,-194,0,-82,0,-95,0,-595,
0,-154,0,128,0,894,0,501,0,588,0,457,0,-345,0,206,0,122,0,110,0,-631,0,-227,0,-569,0,3,0,408,0,239,0,397,0,226,0,-197,0,-2,0,128,0,491,0,1281,0,904,0,292,0,215,0,538,0,306,0,259,0,509,0,-677,0,-1047,0,13,0,321,0,-679,0,-588,0,-358,0,-212,0,-558,0,243,0,646,0,479,0,486,0,342,0,634,0,532,0,107,0,802,0,331,0,136,0,-112,0,-398,0,-1031,0,-286,0,-326,0,-705,0,288,0,272,0,1299,0,1144,0,1178,0,860,0,-423,0,121,0,-385,0,-148,0,-295,0,-302,0,-834,0,-819,0,16,0,-24,0,-201,0,-476,0,555,0,91,0,-245,0,294,0,-38,
0,-379,0,-962,0,-1221,0,-1191,0,-1518,0,-273,0,-395,0,-390,0,-1013,0,-645,0,573,0,-1843,0,-1030,0,505,0,468,0,744,0,947,0,609,0,493,0,-689,0,-1172,0,-628,0,-135,0,-1026,0,195,0,411,0,196,0,1582,0,1147,0,575,0,337,0,-1239,0,-777,0,-648,0,-142,0,595,0,825,0,967,0,735,0,-1206,0,-970,0,-81,0,-342,0,-745,0,13,0,-72,0,375,0,454,0,19,0,1407,0,921,0,-1647,0,-172,0,861,0,562,0,928,0,1537,0,1063,0,740,0,-2472,0,-952,0,264,0,82,0,-502,0,-965,0,-1334,0,123,0,867,0,1236,0,534,0,171,0,-2320,0,-460,0,780,0,363,
0,-1190,0,-617,0,252,0,-61,0,-174,0,34,0,1011,0,788,0,-2333,0,247,0,423,0,153,0,-16,0,-355,0,262,0,449,0,-1576,0,-1073,0,-544,0,-371,0,-615,0,-305,0,1051,0,805,0,687,0,528,0,6,0,-182,0,935,0,875,0,1002,0,809,0,199,0,257,0,126,0,76,0,-584,0,-1138,0,599,0,556,0,-1105,0,-1391,0,-1591,0,-519,0,-977,0,-1325,0,108,0,347,0,-722,0,-975,0,365,0,101,0,-145,0,681,0,249,0,-153,0,0,0,-334,0,-570,0,159,0,412,0,285,0,-336,0,-617,0,-953,0,-966,0,887,0,689,0,-1251,0,84,0,-185,0,-398,0,-592,0,433,0,1044,0,653,0,85,
0,329,0,-40,0,361,0,-433,0,-705,0,466,0,574,0,-154,0,654,0,592,0,290,0,-167,0,72,0,349,0,175,0,674,0,297,0,977,0,720,0,1235,0,1204,0,757,0,488,0,-400,0,-269,0,538,0,372,0,-1350,0,-1387,0,-1194,0,-91,0,1262,0,876,0,775,0,700,0,-599,0,-38,0,-430,0,-722,0,1976,0,1630,0,991,0,608,0,111,0,276,0,-226,0,-96,0,-947,0,-388,0,-11,0,-7,0,-303,0,-531,0,-839,0,338,0,1734,0,1710,0,1405,0,1013,0,-516,0,-855,0,-645,0,210,0,-688,0,-416,0,513,0,230,0,-822,0,-637,0,-1146,0,-320,0,-952,0,-658,0,-694,0,183,0,-114,0,-623,
0,818,0,674,0,-191,0,-204,0,731,0,635,0,51,0,1221,0,883,0,576,0,-954,0,-431,0,826,0,598,0,-342,0,-755,0,-900,0,-407,0,-1126,0,-354,0,-206,0,-512,0,-547,0,-810,0,-357,0,-620,0,66,0,515,0,-73,0,-410,0,-872,0,-945,0,-1444,0,-1227,0,191,0,-17,0,-544,0,-231,0,-1540,0,-544,0,-901,0,-886,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Pd=H([-890,0,-1550,0,-2541,0,-819,0,-970,0,175,0,-826,0,-1234,0,-762,0,-599,0,-22,0,634,0,-811,0,-987,0,-902,0,-323,0,203,0,26,0,-383,0,-235,0,
-781,0,-399,0,1262,0,906,0,-932,0,-1399,0,-1380,0,-624,0,93,0,87,0,-414,0,-539,0,-691,0,37,0,633,0,510,0,-387,0,-476,0,-1330,0,399,0,66,0,263,0,-407,0,-49,0,-335,0,-417,0,1041,0,1865,0,-779,0,-1089,0,-1440,0,-746,0,-858,0,832,0,-581,0,-759,0,-371,0,-673,0,-506,0,2088,0,-560,0,-634,0,-1179,0,271,0,241,0,14,0,-438,0,-244,0,-397,0,463,0,1202,0,1047,0,-606,0,-797,0,-1438,0,-51,0,-323,0,481,0,-224,0,-584,0,-527,0,494,0,881,0,682,0,-433,0,-306,0,-1002,0,554,0,659,0,222,0,171,0,-160,0,-353,0,681,0,1798,
0,1565,0,-852,0,-1181,0,-1695,0,-336,0,-666,0,114,0,-581,0,-756,0,-744,0,-195,0,375,0,497,0,-465,0,-804,0,-1098,0,154,0,282,0,-131,0,-50,0,-191,0,-719,0,323,0,732,0,1542,0,-722,0,-819,0,-1404,0,105,0,-250,0,185,0,-178,0,-502,0,-742,0,321,0,510,0,1111,0,-323,0,-567,0,-966,0,127,0,484,0,338,0,-160,0,52,0,-338,0,732,0,1367,0,1554,0,-626,0,-802,0,-1696,0,-286,0,-586,0,676,0,-695,0,-343,0,-370,0,-490,0,295,0,1893,0,-630,0,-574,0,-1014,0,-80,0,645,0,-69,0,-6,0,-318,0,-364,0,782,0,1450,0,1038,0,-313,0,-733,
0,-1395,0,120,0,60,0,477,0,-264,0,-585,0,-123,0,711,0,1245,0,633,0,-91,0,-355,0,-1016,0,771,0,758,0,261,0,253,0,81,0,-474,0,930,0,2215,0,1720,0,-808,0,-1099,0,-1925,0,-560,0,-782,0,169,0,-804,0,-1074,0,-188,0,-626,0,-55,0,1405,0,-694,0,-716,0,-1194,0,-660,0,354,0,329,0,-514,0,-55,0,-543,0,366,0,1033,0,1182,0,-658,0,-959,0,-1357,0,-55,0,-184,0,93,0,-605,0,-286,0,-662,0,404,0,449,0,827,0,-286,0,-350,0,-1263,0,628,0,306,0,227,0,-16,0,147,0,-623,0,186,0,923,0,2146,0,-674,0,-890,0,-1606,0,-443,0,-228,
0,339,0,-369,0,-790,0,-409,0,231,0,86,0,1469,0,-448,0,-581,0,-1061,0,594,0,450,0,-177,0,-124,0,-170,0,-447,0,671,0,1159,0,1404,0,-476,0,-667,0,-1511,0,-77,0,-138,0,716,0,-177,0,-372,0,-381,0,451,0,934,0,915,0,-250,0,-432,0,-822,0,272,0,828,0,446,0,26,0,19,0,-31,0,698,0,1692,0,2168,0,-646,0,-977,0,-1924,0,-179,0,-473,0,268,0,-379,0,-745,0,-691,0,11,0,127,0,1033,0,-488,0,-917,0,-825,0,61,0,323,0,135,0,147,0,-145,0,-686,0,685,0,786,0,1682,0,-506,0,-848,0,-1297,0,35,0,90,0,222,0,-23,0,-346,0,-670,0,455,
0,591,0,1287,0,-203,0,-593,0,-1086,0,652,0,352,0,437,0,39,0,63,0,-457,0,841,0,1265,0,2105,0,-520,0,-882,0,-1584,0,-328,0,-711,0,1421,0,-596,0,-342,0,-70,0,209,0,173,0,1928,0,-423,0,-598,0,-921,0,421,0,605,0,-38,0,-2,0,-245,0,-127,0,896,0,1969,0,1135,0,-379,0,-518,0,-1579,0,173,0,118,0,753,0,-55,0,-381,0,-52,0,985,0,1021,0,753,0,-2,0,-291,0,-891,0,753,0,992,0,423,0,264,0,131,0,-196,0,895,0,2274,0,2543,0,-635,0,-1088,0,-2499,0,-529,0,-982,0,526,0,-764,0,-830,0,-548,0,-436,0,316,0,599,0,-675,0,-940,
0,-746,0,-57,0,236,0,-11,0,-201,0,-81,0,-798,0,16,0,845,0,1558,0,-737,0,-985,0,-1212,0,-468,0,17,0,290,0,-279,0,-584,0,-700,0,183,0,822,0,705,0,-265,0,-492,0,-1187,0,421,0,152,0,468,0,-390,0,166,0,-268,0,39,0,1550,0,1868,0,-635,0,-966,0,-1571,0,-453,0,-492,0,910,0,-284,0,-1027,0,-75,0,-181,0,-133,0,1852,0,-445,0,-624,0,-1174,0,420,0,367,0,-49,0,-389,0,-212,0,-169,0,707,0,1073,0,1208,0,-539,0,-710,0,-1449,0,83,0,-163,0,484,0,-236,0,-543,0,-355,0,338,0,1175,0,814,0,-246,0,-309,0,-958,0,606,0,760,0,
60,0,166,0,-8,0,-163,0,-306,0,1849,0,2563,0,-747,0,-1025,0,-1783,0,-419,0,-446,0,209,0,-718,0,-566,0,-534,0,-506,0,693,0,857,0,-463,0,-697,0,-1082,0,325,0,431,0,-206,0,-15,0,-8,0,-763,0,545,0,919,0,1518,0,-611,0,-783,0,-1313,0,256,0,-55,0,208,0,-165,0,-348,0,-662,0,321,0,680,0,930,0,-326,0,-429,0,-951,0,484,0,446,0,570,0,-197,0,72,0,-73,0,909,0,1455,0,1741,0,-563,0,-737,0,-1974,0,-124,0,-416,0,718,0,-478,0,-404,0,-314,0,-16,0,446,0,1636,0,-551,0,-537,0,-750,0,-58,0,638,0,214,0,55,0,-185,0,-271,0,
1148,0,1301,0,1212,0,-483,0,-671,0,-1264,0,117,0,285,0,543,0,-204,0,-391,0,-111,0,513,0,1538,0,854,0,-114,0,-190,0,-978,0,877,0,595,0,464,0,260,0,260,0,-311,0,748,0,2283,0,2216,0,-517,0,-945,0,-2171,0,-326,0,-708,0,378,0,-812,0,-691,0,-232,0,-560,0,687,0,1409,0,-732,0,-690,0,-836,0,-359,0,645,0,386,0,-265,0,62,0,-678,0,145,0,1644,0,1208,0,-555,0,-988,0,-1233,0,-78,0,14,0,114,0,-327,0,-358,0,-489,0,392,0,677,0,697,0,-201,0,-236,0,-1140,0,693,0,449,0,178,0,-243,0,256,0,-433,0,611,0,1385,0,2456,0,-612,
0,-901,0,-1464,0,-307,0,-17,0,499,0,-315,0,-667,0,-254,0,256,0,428,0,1463,0,-486,0,-422,0,-1056,0,655,0,370,0,18,0,-102,0,-185,0,-276,0,755,0,1578,0,1335,0,-488,0,-603,0,-1418,0,182,0,-93,0,870,0,-73,0,-458,0,-348,0,835,0,862,0,957,0,-282,0,-333,0,-746,0,547,0,839,0,428,0,273,0,-89,0,13,0,940,0,1708,0,2576,0,-418,0,-1084,0,-1758,0,-44,0,-358,0,259,0,-497,0,-643,0,-560,0,99,0,557,0,961,0,-421,0,-766,0,-917,0,295,0,326,0,184,0,175,0,15,0,-626,0,532,0,878,0,1981,0,-443,0,-768,0,-1275,0,221,0,156,0,268,
0,39,0,-363,0,-505,0,695,0,772,0,1140,0,-162,0,-459,0,-912,0,709,0,444,0,658,0,25,0,303,0,-312,0,1268,0,1410,0,1715,0,-297,0,-766,0,-1836,0,-263,0,-108,0,1070,0,-406,0,-13,0,-129,0,57,0,438,0,2734,0,-374,0,-487,0,-835,0,304,0,696,0,164,0,104,0,-235,0,5,0,1611,0,1900,0,1399,0,-229,0,-582,0,-1325,0,405,0,192,0,817,0,-87,0,-438,0,111,0,1028,0,1199,0,993,0,68,0,-175,0,-934,0,1033,0,1117,0,451,0,478,0,200,0,-248,0,2127,0,2696,0,2042,0,-835,0,-1323,0,-2131,0,-799,0,-692,0,466,0,-812,0,-1032,0,-469,0,-622,
0,288,0,920,0,-701,0,-841,0,-1070,0,-411,0,512,0,8,0,-390,0,-91,0,-744,0,-30,0,1043,0,1161,0,-822,0,-1148,0,-1156,0,-294,0,-46,0,110,0,-411,0,-374,0,-678,0,214,0,531,0,668,0,-406,0,-420,0,-1194,0,487,0,232,0,303,0,-318,0,91,0,-472,0,123,0,1232,0,2445,0,-722,0,-952,0,-1495,0,-738,0,-675,0,1332,0,-543,0,-606,0,-211,0,-95,0,-98,0,1508,0,-549,0,-514,0,-1193,0,473,0,211,0,73,0,-288,0,-112,0,-389,0,537,0,1332,0,1258,0,-567,0,-755,0,-1545,0,71,0,-283,0,632,0,-170,0,-481,0,-493,0,681,0,1002,0,817,0,-356,
0,-331,0,-877,0,419,0,706,0,346,0,241,0,-34,0,-326,0,377,0,1950,0,1883,0,-727,0,-1075,0,-1625,0,-233,0,-543,0,116,0,-524,0,-806,0,-585,0,-73,0,478,0,729,0,-288,0,-925,0,-1143,0,173,0,447,0,-52,0,68,0,-229,0,-606,0,449,0,529,0,1797,0,-591,0,-875,0,-1363,0,183,0,-144,0,324,0,-103,0,-452,0,-666,0,623,0,488,0,1176,0,-238,0,-511,0,-1004,0,326,0,552,0,458,0,136,0,108,0,-319,0,626,0,1343,0,1883,0,-490,0,-646,0,-1730,0,-186,0,-449,0,984,0,-738,0,-76,0,-170,0,-550,0,755,0,2560,0,-496,0,-510,0,-947,0,210,0,
694,0,-52,0,84,0,-322,0,-199,0,1090,0,1625,0,1224,0,-376,0,-603,0,-1396,0,343,0,74,0,632,0,-175,0,-502,0,-32,0,972,0,1332,0,734,0,52,0,-295,0,-1113,0,1065,0,918,0,160,0,393,0,107,0,-397,0,1214,0,2649,0,1741,0,-632,0,-1201,0,-1891,0,-719,0,-277,0,353,0,-651,0,-880,0,-122,0,-211,0,209,0,1338,0,-562,0,-714,0,-1059,0,-208,0,388,0,159,0,-320,0,-61,0,-551,0,293,0,1092,0,1443,0,-648,0,-865,0,-1253,0,-49,0,-143,0,305,0,-401,0,-227,0,-585,0,561,0,532,0,927,0,-117,0,-443,0,-1188,0,507,0,436,0,292,0,-79,0,233,
0,-458,0,671,0,1025,0,2396,0,-633,0,-842,0,-1525,0,-308,0,-286,0,640,0,-373,0,-621,0,-407,0,418,0,253,0,1305,0,-315,0,-581,0,-1137,0,572,0,685,0,-281,0,61,0,-68,0,-371,0,991,0,1101,0,1498,0,-493,0,-683,0,-1362,0,-47,0,164,0,704,0,-256,0,-314,0,-268,0,631,0,949,0,1052,0,-118,0,-348,0,-833,0,68,0,1180,0,568,0,152,0,117,0,34,0,1113,0,1902,0,2239,0,-601,0,-959,0,-1706,0,-143,0,-489,0,480,0,-332,0,-655,0,-574,0,54,0,353,0,1192,0,-462,0,-652,0,-796,0,150,0,549,0,112,0,195,0,-111,0,-515,0,679,0,1108,0,1647,
0,-558,0,-749,0,-1217,0,-9,0,272,0,341,0,-53,0,-265,0,-535,0,489,0,843,0,1298,0,-120,0,-482,0,-1032,0,632,0,543,0,408,0,179,0,306,0,-526,0,1124,0,1464,0,2244,0,-417,0,-786,0,-1562,0,-224,0,-384,0,1364,0,-377,0,-459,0,-25,0,385,0,489,0,2174,0,-332,0,-651,0,-829,0,544,0,553,0,61,0,22,0,-113,0,-89,0,1128,0,1725,0,1524,0,-216,0,-373,0,-1653,0,161,0,316,0,908,0,-165,0,-222,0,-67,0,1362,0,1175,0,789,0,73,0,-252,0,-767,0,738,0,932,0,616,0,362,0,246,0,-126,0,787,0,2654,0,3027,0,-691,0,-1106,0,-2190,0,-565,
0,-588,0,524,0,-590,0,-979,0,-490,0,-263,0,397,0,982,0,-577,0,-837,0,-945,0,-22,0,435,0,-49,0,-190,0,-118,0,-629,0,-88,0,1240,0,1513,0,-636,0,-1051,0,-1019,0,-291,0,189,0,259,0,-257,0,-470,0,-629,0,145,0,945,0,894,0,-326,0,-364,0,-1094,0,543,0,260,0,630,0,-202,0,189,0,-209,0,357,0,1379,0,2091,0,-569,0,-1075,0,-1449,0,-714,0,-239,0,919,0,-420,0,-705,0,-84,0,-109,0,-114,0,2407,0,-413,0,-529,0,-1177,0,482,0,368,0,131,0,-186,0,-72,0,-131,0,861,0,1255,0,1220,0,-611,0,-658,0,-1341,0,227,0,-121,0,631,0,
-176,0,-489,0,-218,0,745,0,1175,0,957,0,-321,0,-148,0,-936,0,671,0,966,0,216,0,340,0,-3,0,-143,0,469,0,1848,0,2437,0,-729,0,-961,0,-1683,0,-213,0,-254,0,321,0,-511,0,-438,0,-521,0,-126,0,725,0,903,0,-340,0,-685,0,-1032,0,316,0,480,0,20,0,23,0,-89,0,-551,0,353,0,1051,0,1789,0,-544,0,-757,0,-1364,0,298,0,-25,0,436,0,-100,0,-392,0,-519,0,467,0,754,0,1078,0,-210,0,-398,0,-1078,0,620,0,658,0,630,0,33,0,147,0,-178,0,921,0,1687,0,1921,0,-325,0,-528,0,-1978,0,2,0,-285,0,910,0,-371,0,-490,0,-230,0,0,0,597,
0,2010,0,-496,0,-395,0,-834,0,37,0,945,0,245,0,181,0,-160,0,-144,0,1481,0,1373,0,1357,0,-355,0,-601,0,-1270,0,298,0,322,0,672,0,-193,0,-336,0,77,0,1089,0,1533,0,922,0,177,0,-39,0,-1125,0,996,0,781,0,536,0,456,0,366,0,-432,0,1415,0,2440,0,2279,0,-466,0,-758,0,-2325,0,-303,0,-509,0,387,0,-727,0,-557,0,66,0,-145,0,643,0,1248,0,-544,0,-676,0,-916,0,-225,0,862,0,588,0,-152,0,40,0,-533,0,423,0,1423,0,1558,0,-572,0,-843,0,-1145,0,-128,0,85,0,461,0,-238,0,-257,0,-584,0,605,0,748,0,861,0,24,0,-202,0,-1409,
0,797,0,487,0,303,0,-181,0,364,0,-182,0,616,0,1378,0,2942,0,-494,0,-852,0,-1441,0,-292,0,61,0,812,0,-84,0,-723,0,-182,0,555,0,532,0,1506,0,-365,0,-493,0,-1057,0,822,0,588,0,11,0,-14,0,-18,0,-230,0,1001,0,1401,0,1451,0,-474,0,-569,0,-1292,0,302,0,62,0,1062,0,-70,0,-376,0,-222,0,982,0,974,0,1149,0,-196,0,-234,0,-795,0,479,0,1098,0,499,0,362,0,58,0,70,0,1147,0,2069,0,2857,0,-487,0,-878,0,-1824,0,73,0,-288,0,348,0,-358,0,-500,0,-508,0,199,0,721,0,1242,0,-78,0,-697,0,-795,0,361,0,536,0,196,0,374,0,110,
0,-735,0,847,0,1051,0,1896,0,-366,0,-713,0,-1182,0,315,0,320,0,429,0,72,0,-215,0,-450,0,759,0,886,0,1363,0,-30,0,-428,0,-834,0,861,0,627,0,796,0,118,0,468,0,-279,0,1355,0,1883,0,1893,0,-188,0,-642,0,-1612,0,63,0,-175,0,1198,0,-418,0,-211,0,51,0,414,0,587,0,2601,0,-234,0,-557,0,-858,0,424,0,889,0,222,0,136,0,-101,0,83,0,1413,0,2278,0,1383,0,-84,0,-445,0,-1389,0,414,0,313,0,1045,0,29,0,-343,0,65,0,1552,0,1647,0,980,0,183,0,-91,0,-829,0,1273,0,1413,0,360,0,553,0,272,0,-107,0,1587,0,3149,0,2603,0],["i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Nd=H([1384,0,2077,0,3420,0,5108,0,6742,0,8122,0,9863,0,11092,0,12714,0,13701,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Hd=H([-451,0,-1065,0,-529,0,-1305,0,-450,0,-756,0,-497,0,-863,0,-384,0,-619,0,-413,0,-669,0,-317,0,-538,0,-331,0,-556,0,-414,0,-508,0,-424,0,-378,
0,-274,0,-324,0,-434,0,-614,0,-226,0,-500,0,-232,0,-514,0,-263,0,-377,0,-298,0,-410,0,-151,0,-710,0,-174,0,-818,0,-149,0,-412,0,-156,0,-429,0,-288,0,-462,0,-186,0,-203,0,-170,0,-302,0,-191,0,-321,0,-131,0,-147,0,-297,0,-395,0,-228,0,-214,0,-245,0,-192,0,-67,0,-316,0,-71,0,-327,0,-104,0,-205,0,-94,0,-183,0,-143,0,-38,0,-193,0,-95,0,16,0,-76,0,-124,0,-248,0,23,0,-237,0,24,0,-244,0,18,0,-136,0,44,0,-111,0,-33,0,-24,0,-25,0,0,0,149,0,19,0,23,0,-143,0,158,0,-169,0,174,0,-181,0,133,0,-55,0,165,0,-26,0,
111,0,84,0,98,0,75,0,87,0,183,0,-115,0,-11,0,-8,0,130,0,11,0,170,0,254,0,77,0,205,0,17,0,183,0,112,0,262,0,194,0,202,0,287,0,95,0,189,0,-42,0,-105,0,234,0,179,0,39,0,186,0,163,0,345,0,332,0,199,0,299,0,161,0,-54,0,285,0,-78,0,281,0,-133,0,141,0,-182,0,111,0,249,0,341,0,271,0,364,0,93,0,403,0,75,0,391,0,92,0,510,0,-138,0,220,0,-185,0,-29,0,-34,0,361,0,-115,0,320,0,3,0,554,0,99,0,286,0,218,0,591,0,-245,0,406,0,-268,0,453,0,0,0,580,0,25,0,606,0,275,0,532,0,148,0,450,0,-73,0,739,0,-285,0,518,0,-288,0,
94,0,-203,0,674,0,-140,0,-74,0,205,0,714,0,-114,0,299,0,176,0,923,0,182,0,557,0,240,0,705,0,-16,0,513,0,485,0,593,0,293,0,384,0,451,0,617,0,-38,0,50,0,563,0,529,0,303,0,209,0,459,0,363,0,433,0,452,0,450,0,454,0,367,0,606,0,477,0,741,0,432,0,353,0,368,0,267,0,361,0,716,0,273,0,583,0,453,0,166,0,510,0,172,0,201,0,629,0,274,0,191,0,568,0,639,0,302,0,298,0,634,0,387,0,643,0,350,0,587,0,560,0,612,0,565,0,600,0,788,0,487,0,672,0,512,0,1015,0,321,0,333,0,357,0,854,0,-125,0,413,0,474,0,712,0,17,0,-151,0,
564,0,285,0,270,0,-241,0,971,0,889,0,489,0,220,0,510,0,896,0,549,0,924,0,327,0,825,0,290,0,911,0,540,0,1108,0,158,0,805,0,199,0,957,0,511,0,730,0,100,0,874,0,13,0,791,0,435,0,632,0,676,0,972,0,249,0,900,0,467,0,1218,0,781,0,1074,0,585,0,785,0,-23,0,669,0,267,0,1043,0,619,0,1084,0,615,0,1145,0,622,0,905,0,916,0,1049,0,80,0,331,0,584,0,1075,0,89,0,639,0,988,0,961,0,770,0,720,0,798,0,699,0,492,0,447,0,899,0,627,0,271,0,1188,0,725,0,1333,0,87,0,603,0,832,0,1603,0,616,0,1127,0,890,0,1505,0,1E3,0,1156,
0,866,0,1009,0,995,0,827,0,1149,0,858,0,817,0,1450,0,773,0,1320,0,500,0,1389,0,312,0,1153,0,-20,0,1084,0,64,0,1283,0,2,0,1172,0,399,0,1869,0,514,0,1706,0,502,0,1636,0,886,0,1522,0,416,0,600,0,1131,0,1350,0,1275,0,1390,0,889,0,1795,0,914,0,1766,0,227,0,1183,0,1250,0,1826,0,505,0,1854,0,919,0,2353,0,-199,0,431,0,152,0,1735,0,-213,0,-28,0,392,0,1334,0,-153,0,-52,0,978,0,1151,0,-323,0,-400,0,813,0,1703,0,-136,0,84,0,1449,0,2015,0,-331,0,-143,0,-137,0,1192,0,-256,0,534,0,-157,0,1031,0,-307,0,-439,0,542,
0,731,0,-329,0,-420,0,-97,0,616,0,-362,0,-168,0,-322,0,366,0,-247,0,-110,0,-211,0,89,0,-196,0,-309,0,20,0,59,0,-364,0,-463,0,-286,0,89,0,-336,0,175,0,-432,0,141,0,-379,0,-190,0,-434,0,-196,0,-79,0,150,0,-278,0,-227,0,-280,0,166,0,-555,0,-422,0,-155,0,541,0,-366,0,54,0,-29,0,-83,0,-301,0,-774,0,186,0,628,0,-397,0,-264,0,242,0,293,0,-197,0,-585,0,124,0,410,0,53,0,-133,0,10,0,340,0,-570,0,-1065,0,65,0,-446,0,68,0,-493,0,383,0,937,0,-357,0,-711,0,-359,0,-250,0,-677,0,-1068,0,292,0,-26,0,363,0,6,0,607,
0,1313,0,-127,0,-10,0,1513,0,1886,0,713,0,972,0,1469,0,2181,0,1443,0,2016,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Id=H([-1631,0,-1600,0,-1796,0,-2290,0,-1027,0,-1770,0,-1100,0,-2025,0,-1277,0,-1388,0,-1367,0,-1534,0,-947,0,-1461,0,-972,0,-1524,0,-999,0,-1222,0,-1020,0,-1172,0,-815,0,-987,0,-992,0,-1371,0,-1216,0,-1006,0,-1289,0,-1094,0,-744,0,-1268,0,-755,0,-1293,0,-862,0,-923,0,-905,0,-984,0,-678,0,-1051,0,-685,0,-1050,0,-1087,0,-985,0,-1062,0,-679,0,-989,0,-641,
0,-1127,0,-976,0,-762,0,-654,0,-890,0,-806,0,-833,0,-1091,0,-706,0,-629,0,-621,0,-806,0,-640,0,-812,0,-775,0,-634,0,-779,0,-543,0,-996,0,-565,0,-1075,0,-580,0,-546,0,-611,0,-572,0,-619,0,-760,0,-290,0,-879,0,-526,0,-823,0,-462,0,-795,0,-253,0,-553,0,-415,0,-589,0,-439,0,-533,0,-340,0,-692,0,-935,0,-505,0,-772,0,-702,0,-1131,0,-263,0,-306,0,-971,0,-483,0,-445,0,-74,0,-555,0,-548,0,-614,0,-129,0,-693,0,-234,0,-396,0,-246,0,-475,0,-250,0,-265,0,-404,0,-376,0,-514,0,-417,0,-510,0,-300,0,-313,0,-334,0,
-664,0,-463,0,-814,0,-386,0,-704,0,-337,0,-615,0,-234,0,-201,0,-233,0,-239,0,-167,0,-567,0,-203,0,-619,0,-147,0,-415,0,-115,0,-352,0,-166,0,-750,0,-171,0,-761,0,-270,0,-879,0,-264,0,-903,0,-367,0,-744,0,43,0,-475,0,14,0,-653,0,43,0,-670,0,11,0,-448,0,-59,0,-521,0,-126,0,-119,0,-155,0,-613,0,-42,0,-863,0,-27,0,-931,0,136,0,-483,0,183,0,-468,0,55,0,-298,0,55,0,-304,0,313,0,-609,0,313,0,-720,0,322,0,-167,0,100,0,-541,0,-3,0,-119,0,-111,0,-187,0,233,0,-236,0,260,0,-234,0,26,0,-165,0,134,0,-45,0,-40,0,
-549,0,360,0,-203,0,378,0,-388,0,450,0,-383,0,275,0,20,0,182,0,-103,0,246,0,-111,0,431,0,37,0,462,0,-146,0,487,0,-157,0,-284,0,-59,0,503,0,-184,0,24,0,53,0,-3,0,54,0,122,0,259,0,333,0,66,0,484,0,104,0,436,0,68,0,195,0,116,0,190,0,206,0,269,0,-9,0,482,0,352,0,382,0,285,0,399,0,277,0,452,0,256,0,69,0,186,0,13,0,297,0,-13,0,259,0,-95,0,30,0,56,0,394,0,196,0,425,0,205,0,456,0,281,0,577,0,15,0,191,0,375,0,290,0,407,0,576,0,-56,0,227,0,544,0,405,0,0,0,549,0,-92,0,528,0,-229,0,351,0,-245,0,338,0,-362,0,
435,0,167,0,527,0,-75,0,302,0,91,0,824,0,129,0,599,0,496,0,679,0,186,0,749,0,153,0,737,0,-281,0,600,0,-348,0,615,0,-236,0,769,0,41,0,881,0,38,0,890,0,-220,0,841,0,-357,0,883,0,-393,0,903,0,-634,0,474,0,-444,0,850,0,-175,0,678,0,-493,0,242,0,-519,0,785,0,-714,0,582,0,-541,0,366,0,-543,0,434,0,-597,0,500,0,-765,0,222,0,-702,0,917,0,-743,0,962,0,-869,0,501,0,-899,0,548,0,-379,0,200,0,-435,0,157,0,-819,0,214,0,-861,0,157,0,-614,0,40,0,-632,0,94,0,-883,0,-54,0,-741,0,516,0,-501,0,298,0,-614,0,-171,0,-870,
0,-161,0,-865,0,-23,0,-818,0,93,0,-1015,0,-267,0,-662,0,-359,0,-549,0,2,0,-442,0,-121,0,-377,0,0,0,-227,0,33,0,-414,0,-126,0,-129,0,212,0,-934,0,34,0,-1082,0,-282,0,-1119,0,-268,0,-710,0,-825,0,-420,0,-191,0,-1076,0,-928,0,-917,0,-93,0,-628,0,-358,0,97,0,7,0,-206,0,-393,0,-101,0,24,0,-203,0,38,0,-168,0,83,0,-599,0,-423,0,-279,0,426,0,-700,0,118,0,-75,0,206,0,-981,0,-673,0,-680,0,417,0,-367,0,37,0,-279,0,474,0,-129,0,-318,0,319,0,296,0,-626,0,-39,0,343,0,602,0,-696,0,-39,0,-303,0,940,0,104,0,233,0,
-380,0,137,0,-36,0,269,0,-75,0,-214,0,120,0,43,0,-529,0,-477,0,459,0,164,0,-202,0,-229,0,-49,0,-167,0,609,0,792,0,98,0,-220,0,915,0,148,0,293,0,283,0,869,0,91,0,575,0,394,0,326,0,-78,0,717,0,67,0,365,0,-323,0,616,0,-36,0,731,0,27,0,619,0,238,0,632,0,273,0,448,0,99,0,801,0,476,0,869,0,273,0,685,0,64,0,789,0,72,0,1021,0,217,0,793,0,459,0,734,0,360,0,646,0,480,0,360,0,322,0,429,0,464,0,638,0,430,0,756,0,363,0,1E3,0,404,0,683,0,528,0,602,0,615,0,655,0,413,0,946,0,687,0,937,0,602,0,904,0,604,0,555,0,737,
0,786,0,662,0,467,0,654,0,362,0,589,0,929,0,710,0,498,0,478,0,415,0,420,0,693,0,883,0,813,0,683,0,781,0,925,0,913,0,939,0,726,0,732,0,491,0,853,0,531,0,948,0,734,0,963,0,315,0,808,0,761,0,755,0,1144,0,760,0,655,0,1076,0,826,0,1057,0,1091,0,838,0,1003,0,808,0,1047,0,1133,0,659,0,1101,0,992,0,1050,0,1074,0,1075,0,971,0,694,0,1226,0,1054,0,571,0,841,0,884,0,1404,0,1379,0,1096,0,1080,0,861,0,1231,0,735,0,1284,0,760,0,1272,0,991,0,1367,0,1053,0,1257,0,700,0,1050,0,534,0,988,0,453,0,1264,0,599,0,1140,0,
679,0,1621,0,815,0,1384,0,521,0,1317,0,393,0,1564,0,805,0,1448,0,686,0,1068,0,648,0,875,0,307,0,1083,0,361,0,1047,0,317,0,1417,0,964,0,675,0,571,0,1152,0,79,0,1114,0,-47,0,1530,0,311,0,1721,0,314,0,1166,0,689,0,514,0,-94,0,349,0,282,0,1412,0,328,0,1025,0,487,0,-65,0,57,0,805,0,970,0,36,0,62,0,769,0,-263,0,791,0,-346,0,637,0,699,0,-137,0,620,0,534,0,541,0,-735,0,194,0,711,0,300,0,-268,0,-863,0,926,0,769,0,-708,0,-428,0,506,0,174,0,-892,0,-630,0,435,0,547,0,-1435,0,-258,0,621,0,471,0,-1018,0,-1368,
0,-393,0,521,0,-920,0,-686,0,-25,0,20,0,-982,0,-1156,0,340,0,9,0,-1558,0,-1135,0,-352,0,48,0,-1579,0,-402,0,-887,0,6,0,-1156,0,-888,0,-548,0,-352,0,-1643,0,-1168,0,-159,0,610,0,-2024,0,-963,0,-225,0,193,0,-1656,0,-1960,0,-245,0,-493,0,-964,0,-1680,0,-936,0,-635,0,-1299,0,-1744,0,-1388,0,-604,0,-1540,0,-835,0,-1397,0,-135,0,-1588,0,-290,0,-1670,0,-712,0,-2011,0,-1632,0,-1663,0,-27,0,-2258,0,-811,0,-1157,0,184,0,-1265,0,189,0,-1367,0,586,0,-2011,0,201,0,-790,0,712,0,-1210,0,3,0,-1033,0,808,0,-1251,
0,830,0,-111,0,635,0,-1636,0,447,0,-463,0,-949,0,-445,0,-928,0,-504,0,-1162,0,-501,0,-1211,0,144,0,-351,0,-372,0,-1052,0,-283,0,-1059,0,-279,0,-1123,0,-575,0,-1438,0,-587,0,-1614,0,-935,0,-984,0,229,0,690,0,-921,0,-719,0,-403,0,1362,0,-685,0,-465,0,874,0,397,0,-509,0,-46,0,317,0,1334,0,-485,0,456,0,813,0,439,0,-411,0,339,0,898,0,1067,0,-425,0,46,0,1441,0,497,0,-909,0,-800,0,1465,0,1046,0,-254,0,-321,0,1430,0,1165,0,68,0,350,0,1034,0,666,0,370,0,11,0,1311,0,790,0,143,0,232,0,1041,0,1562,0,-114,0,663,
0,1616,0,1078,0,454,0,579,0,1275,0,1040,0,-76,0,909,0,752,0,1067,0,153,0,512,0,348,0,1214,0,614,0,385,0,1843,0,808,0,269,0,1034,0,203,0,1086,0,652,0,1017,0,1783,0,1130,0,429,0,1327,0,387,0,1384,0,-49,0,1183,0,-72,0,1215,0,-416,0,1001,0,544,0,1749,0,-352,0,1223,0,-502,0,1199,0,-589,0,569,0,-227,0,1630,0,-142,0,1578,0,-230,0,1715,0,-714,0,1288,0,-838,0,1398,0,1131,0,1357,0,-208,0,1232,0,437,0,965,0,-929,0,818,0,811,0,1410,0,859,0,1507,0,164,0,1212,0,1387,0,1793,0,484,0,1874,0,456,0,2063,0,996,0,1170,
0,1326,0,1402,0,1316,0,1360,0,1135,0,1262,0,1234,0,1618,0,1361,0,1768,0,1421,0,1227,0,1584,0,1347,0,854,0,672,0,1685,0,1566,0,1139,0,1270,0,2016,0,1825,0,1773,0,1581,0,1532,0,1460,0,1487,0,946,0,1659,0,1021,0,1744,0,1212,0,1392,0,977,0,1772,0,1161,0,1826,0,1164,0,1718,0,1429,0,1973,0,1591,0,1185,0,864,0,2132,0,1061,0,1799,0,814,0,1838,0,757,0,2104,0,1315,0,2054,0,1258,0,2113,0,915,0,2331,0,930,0,1467,0,1147,0,2590,0,1439,0,2245,0,1744,0,2090,0,1620,0,2358,0,1454,0,2666,0,1506,0,1876,0,1837,0,2070,
0,1975,0,1739,0,1577,0,682,0,1289,0,1584,0,2045,0,1454,0,2098,0,2498,0,2004,0,2711,0,2066,0,726,0,1588,0,2756,0,2336,0,228,0,847,0,2456,0,1659,0,36,0,301,0,1942,0,1957,0,-446,0,-96,0,2154,0,1396,0,1533,0,1101,0,14,0,608,0,-923,0,-732,0,1383,0,1982,0,1345,0,952,0,-680,0,321,0,1281,0,1268,0,-1594,0,365,0,941,0,946,0,-1737,0,-822,0,2374,0,2787,0,1821,0,2788,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Jd=H([-1812,
0,-2275,0,-1879,0,-2537,0,-1640,0,-1848,0,-1695,0,-2004,0,-1220,0,-1912,0,-1221,0,-2106,0,-1559,0,-1588,0,-1573,0,-1556,0,-1195,0,-1615,0,-1224,0,-1727,0,-1359,0,-1151,0,-1616,0,-1948,0,-1274,0,-1391,0,-1305,0,-1403,0,-1607,0,-1179,0,-1676,0,-1311,0,-1443,0,-1478,0,-1367,0,-898,0,-1256,0,-1059,0,-1331,0,-1134,0,-982,0,-1133,0,-1149,0,-1504,0,-1080,0,-1308,0,-1020,0,-1183,0,-980,0,-1486,0,-967,0,-1495,0,-988,0,-922,0,-1047,0,-1077,0,-838,0,-1179,0,-858,0,-1222,0,-1131,0,-1041,0,-1064,0,-767,0,-872,
0,-1157,0,-701,0,-880,0,-706,0,-906,0,-774,0,-1016,0,-578,0,-1080,0,-801,0,-1478,0,-591,0,-1111,0,-592,0,-1146,0,-713,0,-1388,0,-640,0,-1376,0,-597,0,-1059,0,-416,0,-903,0,-686,0,-832,0,-661,0,-708,0,-444,0,-868,0,-490,0,-921,0,-374,0,-776,0,-619,0,-1170,0,-585,0,-549,0,-769,0,-795,0,-435,0,-659,0,-530,0,-741,0,-498,0,-837,0,-357,0,-597,0,-279,0,-871,0,-243,0,-887,0,-282,0,-665,0,-280,0,-667,0,-165,0,-560,0,-394,0,-903,0,-362,0,-410,0,-448,0,-583,0,-409,0,-574,0,-313,0,-357,0,-637,0,-548,0,-570,0,
-436,0,-896,0,-504,0,-382,0,-757,0,-58,0,-481,0,-165,0,-618,0,-191,0,-374,0,-234,0,-382,0,-222,0,-683,0,-25,0,-480,0,-418,0,-359,0,-730,0,-353,0,-324,0,-157,0,-432,0,-322,0,-394,0,-303,0,-284,0,-104,0,-601,0,-289,0,-556,0,-196,0,-588,0,-150,0,-659,0,-608,0,-473,0,-24,0,-68,0,-448,0,-474,0,-8,0,-506,0,-45,0,-748,0,-184,0,-844,0,-252,0,-901,0,-91,0,-584,0,-97,0,-652,0,138,0,-764,0,-131,0,-678,0,-12,0,-670,0,165,0,-259,0,-3,0,-840,0,-107,0,-909,0,37,0,-992,0,44,0,-854,0,-415,0,-839,0,13,0,-1001,0,-271,
0,-1026,0,-309,0,-798,0,-478,0,-832,0,-488,0,-943,0,168,0,-1112,0,-387,0,-1185,0,-101,0,-1183,0,-40,0,-941,0,-316,0,-1030,0,-770,0,-1044,0,-625,0,-1081,0,-538,0,-1224,0,-299,0,-1312,0,-436,0,-1197,0,-663,0,-1167,0,-161,0,-1216,0,-690,0,-1237,0,-831,0,-1432,0,-720,0,-1403,0,-493,0,-898,0,-740,0,-922,0,-801,0,-1102,0,-402,0,-1579,0,-964,0,-1061,0,-638,0,-1269,0,-1438,0,-1499,0,-934,0,-1502,0,-895,0,-1598,0,-564,0,-1723,0,-717,0,-606,0,-597,0,-1166,0,-1085,0,-1369,0,-468,0,-1946,0,-1493,0,-1838,0,-953,
0,-1932,0,-931,0,-1499,0,-188,0,-1635,0,-421,0,-1457,0,-338,0,-1448,0,-22,0,-1942,0,-422,0,-2006,0,-249,0,-496,0,-114,0,-1910,0,-755,0,-1289,0,174,0,-1451,0,-109,0,-482,0,-257,0,-1221,0,-508,0,-1617,0,151,0,-1694,0,208,0,-654,0,107,0,-1651,0,29,0,-1141,0,279,0,-1215,0,306,0,-1228,0,-506,0,-730,0,-175,0,-1236,0,-101,0,-969,0,551,0,-870,0,278,0,-823,0,315,0,-563,0,376,0,-1051,0,228,0,-507,0,280,0,-599,0,281,0,-758,0,253,0,-305,0,379,0,-755,0,-134,0,-611,0,660,0,-824,0,536,0,-817,0,646,0,-413,0,49,0,
-341,0,177,0,-453,0,526,0,-482,0,589,0,-71,0,339,0,-657,0,264,0,-244,0,295,0,-237,0,315,0,-387,0,569,0,-506,0,-9,0,-377,0,14,0,-160,0,661,0,-216,0,40,0,-308,0,-46,0,95,0,214,0,-242,0,167,0,-86,0,192,0,-56,0,27,0,-76,0,31,0,36,0,309,0,-106,0,-182,0,-113,0,74,0,-441,0,-22,0,23,0,139,0,81,0,-11,0,44,0,15,0,-87,0,-137,0,-118,0,-207,0,-158,0,-58,0,272,0,-92,0,-156,0,-441,0,8,0,-136,0,128,0,-221,0,101,0,-218,0,40,0,-197,0,-76,0,-456,0,9,0,-445,0,33,0,-423,0,226,0,60,0,73,0,-222,0,156,0,-399,0,280,0,-318,
0,245,0,-341,0,166,0,-499,0,339,0,-190,0,327,0,-219,0,325,0,-137,0,-89,0,-596,0,100,0,-627,0,144,0,-677,0,487,0,28,0,252,0,-391,0,214,0,-41,0,282,0,-28,0,99,0,-286,0,331,0,49,0,459,0,-388,0,565,0,-369,0,436,0,28,0,336,0,-9,0,397,0,-167,0,618,0,34,0,596,0,-17,0,561,0,-140,0,299,0,79,0,522,0,125,0,203,0,2,0,244,0,288,0,255,0,211,0,175,0,82,0,596,0,187,0,517,0,108,0,381,0,255,0,365,0,297,0,497,0,352,0,327,0,-82,0,25,0,210,0,371,0,245,0,261,0,3,0,545,0,449,0,140,0,294,0,44,0,295,0,212,0,347,0,244,0,494,
0,331,0,528,0,201,0,307,0,349,0,411,0,613,0,284,0,614,0,413,0,464,0,322,0,624,0,397,0,97,0,200,0,-160,0,384,0,149,0,362,0,495,0,525,0,269,0,585,0,33,0,491,0,-121,0,433,0,427,0,611,0,498,0,516,0,171,0,443,0,497,0,666,0,440,0,275,0,566,0,575,0,146,0,639,0,155,0,670,0,-33,0,173,0,212,0,696,0,-166,0,601,0,-191,0,695,0,-489,0,503,0,175,0,742,0,214,0,476,0,372,0,1083,0,578,0,530,0,586,0,777,0,425,0,874,0,315,0,841,0,374,0,848,0,-165,0,565,0,35,0,991,0,-39,0,1062,0,329,0,712,0,786,0,840,0,645,0,795,0,661,
0,676,0,571,0,918,0,632,0,1079,0,673,0,817,0,318,0,388,0,874,0,1012,0,564,0,848,0,880,0,620,0,557,0,479,0,671,0,453,0,692,0,468,0,840,0,642,0,844,0,645,0,506,0,428,0,897,0,567,0,837,0,387,0,962,0,499,0,691,0,561,0,939,0,926,0,783,0,296,0,790,0,268,0,1028,0,530,0,874,0,329,0,548,0,143,0,675,0,291,0,503,0,66,0,1041,0,359,0,786,0,97,0,805,0,33,0,837,0,470,0,511,0,49,0,1092,0,327,0,1174,0,323,0,3,0,242,0,872,0,474,0,689,0,429,0,1329,0,678,0,1042,0,620,0,1109,0,664,0,321,0,193,0,889,0,950,0,1153,0,874,
0,893,0,635,0,877,0,862,0,948,0,913,0,1293,0,665,0,1320,0,639,0,997,0,793,0,1402,0,1030,0,1176,0,1012,0,1110,0,959,0,1410,0,925,0,1403,0,915,0,543,0,862,0,1116,0,1222,0,835,0,1190,0,835,0,1190,0,959,0,1148,0,1147,0,1376,0,1300,0,1193,0,1415,0,1231,0,1335,0,1341,0,746,0,1092,0,1711,0,1283,0,1389,0,1073,0,1334,0,1566,0,1153,0,1475,0,1645,0,1137,0,1825,0,1220,0,1056,0,1382,0,1521,0,1730,0,1632,0,1545,0,1620,0,1542,0,855,0,1596,0,865,0,1667,0,693,0,885,0,1716,0,1519,0,1167,0,1296,0,2209,0,1760,0,1952,
0,1493,0,2020,0,1482,0,1534,0,1866,0,1694,0,2008,0,1566,0,748,0,1761,0,825,0,294,0,1392,0,1084,0,2058,0,621,0,1315,0,365,0,1287,0,198,0,1028,0,488,0,1408,0,249,0,403,0,1014,0,1561,0,324,0,363,0,1645,0,1044,0,193,0,367,0,2034,0,1859,0,-251,0,579,0,750,0,994,0,-243,0,30,0,1325,0,879,0,-28,0,-169,0,624,0,917,0,-453,0,159,0,186,0,1370,0,-614,0,6,0,537,0,392,0,-94,0,-291,0,781,0,229,0,-128,0,-298,0,245,0,491,0,-701,0,-648,0,972,0,789,0,-501,0,-640,0,178,0,255,0,-365,0,-390,0,-255,0,317,0,-958,0,-294,0,
-191,0,228,0,-775,0,-447,0,157,0,-237,0,-657,0,-720,0,-407,0,92,0,-117,0,-611,0,334,0,-230,0,-679,0,-1084,0,-144,0,-317,0,-901,0,-861,0,-738,0,-360,0,-85,0,-727,0,-90,0,-787,0,100,0,-22,0,-391,0,-263,0,-56,0,-73,0,-337,0,-754,0,5,0,-189,0,-706,0,-624,0,89,0,-344,0,-135,0,-1113,0,-353,0,-237,0,-684,0,-1135,0,-275,0,-1102,0,-269,0,-1203,0,152,0,145,0,-722,0,-1232,0,49,0,80,0,-1248,0,-776,0,-248,0,391,0,-732,0,-547,0,469,0,218,0,-255,0,-864,0,69,0,366,0,-166,0,-485,0,-688,0,191,0,-1212,0,-1196,0,-170,
0,-169,0,-1308,0,-1631,0,321,0,470,0,-1419,0,-1243,0,-64,0,272,0,-1361,0,-248,0,492,0,565,0,-721,0,-609,0,195,0,485,0,-573,0,-133,0,427,0,202,0,-171,0,-118,0,199,0,575,0,2,0,-31,0,694,0,755,0,-1366,0,-39,0,552,0,557,0,-489,0,271,0,680,0,537,0,13,0,-453,0,855,0,954,0,-133,0,-52,0,-81,0,738,0,-1169,0,637,0,1055,0,1059,0,-95,0,676,0,1259,0,1081,0,489,0,305,0,-449,0,954,0,-534,0,996,0,-969,0,866,0,-1058,0,1059,0,-1294,0,618,0,-1416,0,617,0,-458,0,1366,0,-159,0,1821,0,-774,0,-528,0,-14,0,1110,0,-1202,
0,-901,0,-772,0,433,0,-1256,0,-1255,0,-1011,0,-302,0,-602,0,-585,0,-759,0,-1618,0,-760,0,-1549,0,-840,0,-1921,0,-816,0,-539,0,-1769,0,-2235,0,-227,0,-36,0,-2034,0,-1831,0,-2107,0,-1126,0,-2471,0,-1816,0,-1470,0,252,0,-2701,0,-415,0,-571,0,-467,0,1509,0,1554,0,2180,0,1975,0,2326,0,2020,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Kd=H([-1857,0,-1681,0,-1857,0,-1755,0,-2056,0,-1150,0,-2134,0,-1654,0,-1619,0,-1099,
0,-1704,0,-1131,0,-1345,0,-1608,0,-1359,0,-1638,0,-1338,0,-1293,0,-1325,0,-1265,0,-1664,0,-1649,0,-1487,0,-851,0,-1346,0,-1832,0,-1413,0,-2188,0,-1282,0,-681,0,-1785,0,-1649,0,-966,0,-1082,0,-1183,0,-1676,0,-1054,0,-1073,0,-1142,0,-1158,0,-1207,0,-744,0,-1274,0,-997,0,-934,0,-1383,0,-927,0,-1416,0,-1010,0,-1305,0,-783,0,-955,0,-1049,0,-900,0,-993,0,-817,0,-737,0,-823,0,-972,0,-1189,0,-738,0,-1094,0,-738,0,-1154,0,-784,0,-801,0,-810,0,-786,0,-892,0,-520,0,-1E3,0,-818,0,-644,0,-965,0,-577,0,-882,0,
-541,0,-694,0,-671,0,-917,0,-595,0,-642,0,-646,0,-615,0,-956,0,-621,0,-925,0,-515,0,-727,0,-483,0,-815,0,-485,0,-840,0,-578,0,-440,0,-713,0,-578,0,-325,0,-657,0,-670,0,-386,0,-570,0,-441,0,-666,0,-514,0,-787,0,-392,0,-529,0,-522,0,-453,0,-487,0,-423,0,-616,0,-585,0,-617,0,-157,0,-662,0,-268,0,-680,0,-348,0,-322,0,-323,0,-632,0,-444,0,-304,0,-430,0,-332,0,-458,0,-277,0,-468,0,-659,0,-793,0,-319,0,-636,0,-227,0,-554,0,-373,0,-347,0,-334,0,-210,0,-456,0,-192,0,-530,0,-242,0,-216,0,-198,0,-366,0,-370,
0,-338,0,-161,0,-409,0,-748,0,-107,0,-380,0,-294,0,-643,0,-223,0,-665,0,-234,0,-741,0,-141,0,-496,0,-130,0,-510,0,-139,0,-327,0,-172,0,-305,0,-306,0,-580,0,-164,0,-263,0,-262,0,-172,0,-67,0,-402,0,31,0,-366,0,-10,0,-436,0,-86,0,-527,0,71,0,-377,0,-22,0,-609,0,-12,0,-678,0,-67,0,-319,0,63,0,-191,0,35,0,-181,0,-39,0,-242,0,126,0,-167,0,-140,0,-544,0,155,0,-297,0,174,0,-297,0,38,0,-8,0,117,0,-380,0,197,0,-452,0,240,0,-522,0,223,0,-103,0,110,0,-187,0,87,0,-155,0,169,0,-47,0,157,0,26,0,-83,0,-100,0,128,
0,80,0,209,0,-62,0,6,0,7,0,22,0,5,0,318,0,-20,0,248,0,-45,0,-200,0,-63,0,156,0,-69,0,250,0,-183,0,369,0,-126,0,-113,0,-76,0,-142,0,-122,0,-64,0,-254,0,-31,0,35,0,-177,0,-71,0,-7,0,171,0,93,0,27,0,108,0,212,0,-330,0,-209,0,-123,0,-70,0,-279,0,95,0,-96,0,20,0,-188,0,-61,0,-314,0,87,0,-300,0,-78,0,-354,0,-134,0,11,0,122,0,-140,0,122,0,-275,0,152,0,-293,0,140,0,-82,0,138,0,-321,0,-111,0,-480,0,-156,0,-359,0,76,0,-254,0,-40,0,-635,0,-96,0,-522,0,79,0,-507,0,8,0,-268,0,303,0,-539,0,68,0,-446,0,61,0,-522,
0,306,0,111,0,189,0,-435,0,122,0,-379,0,166,0,-571,0,-398,0,-632,0,-74,0,-747,0,-95,0,-455,0,194,0,-952,0,83,0,-798,0,192,0,-755,0,192,0,-781,0,-162,0,-619,0,234,0,-663,0,-297,0,-488,0,-109,0,-964,0,-132,0,-838,0,-68,0,-843,0,58,0,-1112,0,-86,0,-805,0,-299,0,-944,0,-253,0,-778,0,-50,0,-965,0,-549,0,-352,0,-98,0,-992,0,-343,0,-1117,0,-315,0,-1117,0,-307,0,-1155,0,-374,0,-637,0,-230,0,-1166,0,-43,0,-1299,0,-100,0,-925,0,-393,0,-1274,0,-600,0,-689,0,-130,0,-1479,0,-312,0,-1321,0,-254,0,-1464,0,-442,
0,-1292,0,-613,0,-1261,0,-503,0,-1501,0,-368,0,-1322,0,26,0,-1432,0,-66,0,-1743,0,-161,0,-1644,0,-467,0,-1760,0,-548,0,-1393,0,-568,0,-1556,0,-871,0,-1495,0,-1034,0,-1387,0,-571,0,-1917,0,-528,0,-1783,0,-123,0,-1897,0,-231,0,-2054,0,-323,0,-2052,0,-906,0,-1976,0,-567,0,-1917,0,-620,0,-2047,0,-989,0,-1077,0,-370,0,-2031,0,-704,0,-2355,0,-749,0,-2740,0,-1089,0,-1909,0,159,0,-2012,0,248,0,-626,0,-123,0,-2339,0,-962,0,-669,0,-408,0,-1379,0,-1174,0,-452,0,-364,0,-1044,0,-735,0,-132,0,183,0,-1620,0,-752,
0,-547,0,-307,0,-777,0,-1261,0,-98,0,41,0,-880,0,-1091,0,-257,0,97,0,-1602,0,-1833,0,31,0,-26,0,-644,0,-561,0,-180,0,-546,0,-385,0,-1095,0,-410,0,-802,0,-414,0,-827,0,-457,0,-970,0,-490,0,-1109,0,-215,0,-916,0,-144,0,-937,0,-493,0,-1269,0,-517,0,-1507,0,181,0,101,0,-332,0,-889,0,-836,0,-937,0,-559,0,-429,0,-629,0,-547,0,-183,0,-337,0,-545,0,-82,0,-250,0,-286,0,5,0,-132,0,-348,0,-252,0,-293,0,-472,0,-158,0,100,0,-29,0,197,0,-236,0,-424,0,-861,0,-213,0,-140,0,-7,0,-427,0,-443,0,187,0,-97,0,-684,0,-736,
0,-293,0,258,0,-368,0,-152,0,-150,0,392,0,-609,0,175,0,-142,0,299,0,-138,0,152,0,-119,0,329,0,-486,0,-52,0,293,0,198,0,-183,0,117,0,175,0,331,0,-58,0,-274,0,231,0,300,0,-288,0,330,0,-305,0,372,0,-111,0,409,0,-9,0,423,0,83,0,256,0,67,0,367,0,-19,0,248,0,91,0,113,0,-35,0,406,0,-191,0,154,0,238,0,296,0,5,0,197,0,141,0,221,0,313,0,198,0,211,0,421,0,244,0,334,0,88,0,426,0,-243,0,454,0,202,0,552,0,-5,0,403,0,291,0,185,0,219,0,301,0,251,0,138,0,128,0,69,0,197,0,288,0,-140,0,-61,0,188,0,361,0,197,0,598,0,
442,0,273,0,290,0,143,0,472,0,482,0,157,0,370,0,415,0,321,0,372,0,385,0,402,0,552,0,155,0,24,0,550,0,263,0,-11,0,21,0,360,0,227,0,147,0,-254,0,424,0,97,0,366,0,-13,0,375,0,141,0,449,0,232,0,396,0,507,0,474,0,272,0,701,0,324,0,362,0,-47,0,587,0,148,0,543,0,69,0,400,0,-51,0,561,0,59,0,220,0,-10,0,352,0,147,0,206,0,211,0,653,0,185,0,563,0,297,0,565,0,284,0,594,0,121,0,766,0,192,0,398,0,118,0,642,0,434,0,233,0,264,0,481,0,467,0,129,0,-165,0,699,0,239,0,90,0,26,0,342,0,474,0,-55,0,27,0,388,0,94,0,-172,
0,0,0,725,0,379,0,-60,0,337,0,370,0,465,0,95,0,319,0,806,0,595,0,78,0,260,0,497,0,851,0,210,0,560,0,458,0,574,0,-464,0,202,0,497,0,625,0,-202,0,152,0,48,0,712,0,-20,0,566,0,100,0,715,0,455,0,468,0,411,0,605,0,319,0,646,0,195,0,615,0,401,0,538,0,680,0,739,0,201,0,667,0,434,0,954,0,454,0,425,0,646,0,491,0,606,0,681,0,416,0,508,0,497,0,822,0,426,0,815,0,660,0,647,0,628,0,716,0,697,0,466,0,618,0,457,0,685,0,460,0,365,0,309,0,721,0,567,0,836,0,601,0,609,0,300,0,825,0,459,0,943,0,687,0,681,0,533,0,915,
0,598,0,591,0,243,0,876,0,451,0,874,0,420,0,786,0,317,0,732,0,220,0,922,0,317,0,1108,0,367,0,531,0,466,0,1028,0,649,0,1053,0,615,0,1034,0,553,0,829,0,602,0,1021,0,799,0,927,0,803,0,878,0,763,0,799,0,496,0,1373,0,773,0,585,0,770,0,803,0,930,0,1099,0,793,0,1222,0,862,0,1209,0,895,0,1025,0,727,0,772,0,845,0,1172,0,1115,0,867,0,1021,0,830,0,1013,0,841,0,910,0,506,0,703,0,1239,0,1077,0,620,0,819,0,1196,0,1083,0,1155,0,1081,0,1142,0,907,0,1547,0,1121,0,1309,0,648,0,1343,0,612,0,1484,0,988,0,1479,0,937,
0,985,0,1328,0,955,0,1341,0,429,0,910,0,841,0,1338,0,564,0,1179,0,412,0,1156,0,1427,0,1320,0,1434,0,1330,0,640,0,760,0,1726,0,1410,0,190,0,555,0,1073,0,1005,0,426,0,257,0,839,0,980,0,235,0,231,0,1520,0,1167,0,109,0,293,0,1014,0,1569,0,305,0,142,0,1148,0,539,0,-291,0,-108,0,1213,0,972,0,22,0,-216,0,667,0,828,0,-482,0,438,0,453,0,1431,0,-581,0,-422,0,789,0,387,0,-358,0,-454,0,174,0,780,0,-36,0,-372,0,390,0,-134,0,-629,0,160,0,-306,0,751,0,-1258,0,-331,0,177,0,522,0,-248,0,574,0,-251,0,639,0,-531,0,
407,0,-596,0,394,0,-419,0,789,0,-617,0,801,0,-986,0,399,0,-857,0,727,0,-7,0,518,0,-703,0,310,0,-1143,0,-24,0,-1002,0,287,0,-960,0,363,0,-1299,0,312,0,-1534,0,245,0,-1557,0,305,0,28,0,153,0,-859,0,-175,0,-33,0,332,0,-1398,0,-154,0,212,0,410,0,-593,0,-197,0,-1092,0,-704,0,-904,0,-65,0,282,0,367,0,-918,0,-686,0,345,0,93,0,-258,0,-357,0,696,0,644,0,-693,0,-28,0,448,0,493,0,-273,0,193,0,527,0,546,0,-243,0,-513,0,384,0,-136,0,273,0,-353,0,512,0,-142,0,537,0,-198,0,941,0,750,0,83,0,248,0,578,0,861,0,-56,
0,592,0,842,0,44,0,892,0,24,0,33,0,890,0,-16,0,982,0,831,0,1398,0,1535,0,1898,0,1716,0,1376,0,1948,0,1465,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Ld=H([-1002,0,-929,0,-1096,0,-1203,0,-641,0,-931,0,-604,0,-961,0,-779,0,-673,0,-835,0,-788,0,-416,0,-664,0,-458,0,-766,0,-652,0,-521,0,-662,0,-495,0,-1023,0,-509,0,-1023,0,-428,0,-444,0,-552,0,-368,0,-449,0,-479,0,-211,0,-1054,0,-903,0,-316,0,-249,0,-569,
0,-591,0,-569,0,-275,0,-541,0,-191,0,-716,0,-188,0,-842,0,-264,0,-333,0,-248,0,-318,0,-228,0,-275,0,1,0,-567,0,-228,0,-115,0,-221,0,-238,0,-374,0,-197,0,-507,0,-222,0,-579,0,-258,0,-432,0,-61,0,-244,0,-345,0,2,0,-338,0,39,0,-215,0,-169,0,-58,0,0,0,-56,0,-6,0,-203,0,-131,0,1,0,-186,0,-5,0,-211,0,6,0,-380,0,11,0,-418,0,-116,0,131,0,-134,0,113,0,89,0,-4,0,71,0,-2,0,-19,0,-192,0,262,0,24,0,189,0,151,0,-133,0,-109,0,186,0,-153,0,166,0,-219,0,37,0,139,0,193,0,171,0,337,0,124,0,158,0,-61,0,141,0,226,0,-13,
0,190,0,231,0,34,0,354,0,109,0,316,0,201,0,244,0,164,0,330,0,-85,0,390,0,-84,0,254,0,327,0,257,0,335,0,491,0,147,0,476,0,105,0,54,0,77,0,437,0,370,0,421,0,314,0,449,0,342,0,329,0,126,0,673,0,292,0,571,0,388,0,243,0,193,0,653,0,320,0,621,0,280,0,194,0,380,0,517,0,581,0,45,0,323,0,111,0,422,0,489,0,395,0,734,0,534,0,622,0,546,0,486,0,502,0,318,0,572,0,189,0,550,0,385,0,422,0,-157,0,153,0,-125,0,382,0,-197,0,386,0,-263,0,334,0,228,0,697,0,-188,0,1,0,51,0,297,0,-507,0,213,0,-376,0,397,0,-24,0,255,0,-547,
0,89,0,-502,0,-94,0,387,0,179,0,-620,0,68,0,-684,0,112,0,-642,0,-350,0,-260,0,172,0,-438,0,-324,0,264,0,648,0,-964,0,-4,0,-1121,0,7,0,-134,0,134,0,-1133,0,-306,0,143,0,96,0,-420,0,-497,0,-1221,0,-350,0,-1527,0,-685,0,-161,0,72,0,873,0,691,0,732,0,283,0,921,0,353,0,334,0,475,0,1095,0,821,0,864,0,524,0,843,0,497,0,714,0,711,0,788,0,750,0,1076,0,714,0,1204,0,753,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);qh=H([577,0,662,0,-2692,0,-16214,0,806,0,1836,0,-1185,0,-7135,0,3109,0,1052,0,-2008,0,-12086,0,
4181,0,1387,0,-1600,0,-9629,0,2373,0,1425,0,-1560,0,-9394,0,3248,0,1985,0,-1070,0,-6442,0,1827,0,2320,0,-840,0,-5056,0,941,0,3314,0,-313,0,-1885,0,2351,0,2977,0,-471,0,-2838,0,3616,0,2420,0,-777,0,-4681,0,3451,0,3096,0,-414,0,-2490,0,2955,0,4301,0,72,0,434,0,1848,0,4500,0,139,0,836,0,3884,0,5416,0,413,0,2484,0,1187,0,7210,0,835,0,5030,0,3083,0,9E3,0,1163,0,7002,0,7384,0,883,0,-2267,0,-13647,0,5962,0,1506,0,-1478,0,-8900,0,5155,0,2134,0,-963,0,-5800,0,7944,0,2009,0,-1052,0,-6335,0,6507,0,2250,0,-885,
0,-5327,0,7670,0,2752,0,-588,0,-3537,0,5952,0,3016,0,-452,0,-2724,0,4898,0,3764,0,-125,0,-751,0,6989,0,3588,0,-196,0,-1177,0,8174,0,3978,0,-43,0,-260,0,6064,0,4404,0,107,0,645,0,7709,0,5087,0,320,0,1928,0,5523,0,6021,0,569,0,3426,0,7769,0,7126,0,818,0,4926,0,6060,0,7938,0,977,0,5885,0,5594,0,11487,0,1523,0,9172,0,10581,0,1356,0,-1633,0,-9831,0,9049,0,1597,0,-1391,0,-8380,0,9794,0,2035,0,-1033,0,-6220,0,8946,0,2415,0,-780,0,-4700,0,10296,0,2584,0,-681,0,-4099,0,9407,0,2734,0,-597,0,-3595,0,8700,0,
3218,0,-356,0,-2144,0,9757,0,3395,0,-277,0,-1669,0,10177,0,3892,0,-75,0,-454,0,9170,0,4528,0,148,0,891,0,10152,0,5004,0,296,0,1781,0,9114,0,5735,0,497,0,2993,0,10500,0,6266,0,628,0,3782,0,10110,0,7631,0,919,0,5534,0,8844,0,8727,0,1117,0,6728,0,8956,0,12496,0,1648,0,9921,0,12924,0,976,0,-2119,0,-12753,0,11435,0,1755,0,-1252,0,-7539,0,12138,0,2328,0,-835,0,-5024,0,11388,0,2368,0,-810,0,-4872,0,10700,0,3064,0,-429,0,-2580,0,12332,0,2861,0,-530,0,-3192,0,11722,0,3327,0,-307,0,-1848,0,11270,0,3700,0,-150,
0,-904,0,10861,0,4413,0,110,0,663,0,12082,0,4533,0,150,0,902,0,11283,0,5205,0,354,0,2132,0,11960,0,6305,0,637,0,3837,0,11167,0,7534,0,900,0,5420,0,12128,0,8329,0,1049,0,6312,0,10969,0,10777,0,1429,0,8604,0,10300,0,17376,0,2135,0,12853,0,13899,0,1681,0,-1316,0,-7921,0,12580,0,2045,0,-1026,0,-6179,0,13265,0,2439,0,-766,0,-4610,0,14033,0,2989,0,-465,0,-2802,0,13452,0,3098,0,-413,0,-2482,0,12396,0,3658,0,-167,0,-1006,0,13510,0,3780,0,-119,0,-713,0,12880,0,4272,0,62,0,374,0,13533,0,4861,0,253,0,1523,0,
12667,0,5457,0,424,0,2552,0,13854,0,6106,0,590,0,3551,0,13031,0,6483,0,678,0,4084,0,13557,0,7721,0,937,0,5639,0,12957,0,9311,0,1213,0,7304,0,13714,0,11551,0,1532,0,9221,0,12591,0,15206,0,1938,0,11667,0,15113,0,1540,0,-1445,0,-8700,0,15072,0,2333,0,-832,0,-5007,0,14527,0,2511,0,-723,0,-4352,0,14692,0,3199,0,-365,0,-2197,0,15382,0,3560,0,-207,0,-1247,0,14133,0,3960,0,-50,0,-300,0,15102,0,4236,0,50,0,298,0,14332,0,4824,0,242,0,1454,0,14846,0,5451,0,422,0,2542,0,15306,0,6083,0,584,0,3518,0,14329,0,6888,
0,768,0,4623,0,15060,0,7689,0,930,0,5602,0,14406,0,9426,0,1231,0,7413,0,15387,0,9741,0,1280,0,7706,0,14824,0,14271,0,1844,0,11102,0,13600,0,24939,0,2669,0,16067,0,16396,0,1969,0,-1082,0,-6517,0,16817,0,2832,0,-545,0,-3283,0,15713,0,2843,0,-539,0,-3248,0,16104,0,3336,0,-303,0,-1825,0,16384,0,3963,0,-49,0,-294,0,16940,0,4579,0,165,0,992,0,15711,0,4599,0,171,0,1030,0,16222,0,5448,0,421,0,2537,0,16832,0,6382,0,655,0,3945,0,15745,0,7141,0,821,0,4944,0,16326,0,7469,0,888,0,5343,0,16611,0,8624,0,1100,0,
6622,0,17028,0,10418,0,1379,0,8303,0,15905,0,11817,0,1565,0,9423,0,16878,0,14690,0,1887,0,11360,0,16515,0,20870,0,2406,0,14483,0,18142,0,2083,0,-999,0,-6013,0,19401,0,3178,0,-375,0,-2257,0,17508,0,3426,0,-264,0,-1589,0,20054,0,4027,0,-25,0,-151,0,18069,0,4249,0,54,0,326,0,18952,0,5066,0,314,0,1890,0,17711,0,5402,0,409,0,2461,0,19835,0,6192,0,610,0,3676,0,17950,0,7014,0,795,0,4784,0,21318,0,7877,0,966,0,5816,0,17910,0,9289,0,1210,0,7283,0,19144,0,9290,0,1210,0,7284,0,20517,0,11381,0,1510,0,9089,0,
18075,0,14485,0,1866,0,11234,0,19999,0,17882,0,2177,0,13108,0,18842,0,32764,0,3072,0,18494,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);ph=H([10813,0,28753,0,2879,0,17333,0,20480,0,2785,0,-570,0,-3431,0,18841,0,6594,0,703,0,4235,0,6225,0,7413,0,876,0,5276,0,17203,0,10444,0,1383,0,8325,0,21626,0,1269,0,-1731,0,-10422,0,21135,0,4423,0,113,0,683,0,11304,0,1556,0,-1430,0,-8609,0,19005,0,12820,0,1686,0,10148,0,17367,0,2498,0,-731,0,-4398,0,17858,0,4833,0,244,0,1472,0,9994,
0,2498,0,-731,0,-4398,0,17530,0,7864,0,964,0,5802,0,14254,0,1884,0,-1147,0,-6907,0,15892,0,3153,0,-387,0,-2327,0,6717,0,1802,0,-1213,0,-7303,0,18186,0,20193,0,2357,0,14189,0,18022,0,3031,0,-445,0,-2678,0,16711,0,5857,0,528,0,3181,0,8847,0,4014,0,-30,0,-180,0,15892,0,8970,0,1158,0,6972,0,18022,0,1392,0,-1594,0,-9599,0,16711,0,4096,0,0,0,0,0,8192,0,655,0,-2708,0,-16305,0,15237,0,13926,0,1808,0,10884,0,14254,0,3112,0,-406,0,-2444,0,14090,0,4669,0,193,0,1165,0,5406,0,2703,0,-614,0,-3697,0,13434,0,6553,
0,694,0,4180,0,12451,0,901,0,-2237,0,-13468,0,12451,0,2662,0,-637,0,-3833,0,3768,0,655,0,-2708,0,-16305,0,14745,0,23511,0,2582,0,15543,0,19169,0,2457,0,-755,0,-4546,0,20152,0,5079,0,318,0,1913,0,6881,0,4096,0,0,0,0,0,20480,0,8560,0,1089,0,6556,0,19660,0,737,0,-2534,0,-15255,0,19005,0,4259,0,58,0,347,0,7864,0,2088,0,-995,0,-5993,0,11468,0,12288,0,1623,0,9771,0,15892,0,1474,0,-1510,0,-9090,0,15728,0,4628,0,180,0,1086,0,9175,0,1433,0,-1552,0,-9341,0,16056,0,7004,0,793,0,4772,0,14827,0,737,0,-2534,0,
-15255,0,15073,0,2252,0,-884,0,-5321,0,5079,0,1228,0,-1780,0,-10714,0,13271,0,17326,0,2131,0,12827,0,16547,0,2334,0,-831,0,-5002,0,15073,0,5816,0,518,0,3118,0,3932,0,3686,0,-156,0,-938,0,14254,0,8601,0,1096,0,6598,0,16875,0,778,0,-2454,0,-14774,0,15073,0,3809,0,-107,0,-646,0,6062,0,614,0,-2804,0,-16879,0,9338,0,9256,0,1204,0,7251,0,13271,0,1761,0,-1247,0,-7508,0,13271,0,3522,0,-223,0,-1343,0,2457,0,1966,0,-1084,0,-6529,0,11468,0,5529,0,443,0,2668,0,10485,0,737,0,-2534,0,-15255,0,11632,0,3194,0,-367,
0,-2212,0,1474,0,778,0,-2454,0,-14774,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);Nc=H([16384,0,16888,0,17378,0,17854,0,18318,0,18770,0,19212,0,19644,0,20066,0,20480,0,20886,0,21283,0,21674,0,22058,0,22435,0,22806,0,23170,0,23530,0,23884,0,24232,0,24576,0,24915,0,25249,0,25580,0,25905,0,26227,0,26545,0,26859,0,27170,0,27477,0,27780,0,28081,0,28378,0,28672,0,28963,0,29251,0,29537,0,29819,0,30099,0,30377,0,30652,0,30924,0,31194,0,31462,0,31727,0,31991,0,32252,0,32511,0,32767,0,32767,0],["i16",0,"i16",0,
"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);uh=H([2621,0,2623,0,2629,0,2638,0,2651,0,2668,0,2689,0,2713,0,2741,0,2772,0,2808,0,2847,0,2890,0,2936,0,2986,0,3040,
0,3097,0,3158,0,3223,0,3291,0,3363,0,3438,0,3517,0,3599,0,3685,0,3774,0,3867,0,3963,0,4063,0,4166,0,4272,0,4382,0,4495,0,4611,0,4731,0,4853,0,4979,0,5108,0,5240,0,5376,0,5514,0,5655,0,5800,0,5947,0,6097,0,6250,0,6406,0,6565,0,6726,0,6890,0,7057,0,7227,0,7399,0,7573,0,7750,0,7930,0,8112,0,8296,0,8483,0,8672,0,8863,0,9057,0,9252,0,9450,0,9650,0,9852,0,10055,0,10261,0,10468,0,10677,0,10888,0,11101,0,11315,0,11531,0,11748,0,11967,0,12187,0,12409,0,12632,0,12856,0,13082,0,13308,0,13536,0,13764,0,13994,
0,14225,0,14456,0,14688,0,14921,0,15155,0,15389,0,15624,0,15859,0,16095,0,16331,0,16568,0,16805,0,17042,0,17279,0,17516,0,17754,0,17991,0,18228,0,18465,0,18702,0,18939,0,19175,0,19411,0,19647,0,19882,0,20117,0,20350,0,20584,0,20816,0,21048,0,21279,0,21509,0,21738,0,21967,0,22194,0,22420,0,22644,0,22868,0,23090,0,23311,0,23531,0,23749,0,23965,0,24181,0,24394,0,24606,0,24816,0,25024,0,25231,0,25435,0,25638,0,25839,0,26037,0,26234,0,26428,0,26621,0,26811,0,26999,0,27184,0,27368,0,27548,0,27727,0,27903,
0,28076,0,28247,0,28415,0,28581,0,28743,0,28903,0,29061,0,29215,0,29367,0,29515,0,29661,0,29804,0,29944,0,30081,0,30214,0,30345,0,30472,0,30597,0,30718,0,30836,0,30950,0,31062,0,31170,0,31274,0,31376,0,31474,0,31568,0,31659,0,31747,0,31831,0,31911,0,31988,0,32062,0,32132,0,32198,0,32261,0,32320,0,32376,0,32428,0,32476,0,32521,0,32561,0,32599,0,32632,0,32662,0,32688,0,32711,0,32729,0,32744,0,32755,0,32763,0,32767,0,32767,0,32741,0,32665,0,32537,0,32359,0,32129,0,31850,0,31521,0,31143,0,30716,0,30242,
0,29720,0,29151,0,28538,0,27879,0,27177,0,26433,0,25647,0,24821,0,23957,0,23055,0,22117,0,21145,0,20139,0,19102,0,18036,0,16941,0,15820,0,14674,0,13505,0,12315,0,11106,0,9879,0,8637,0,7381,0,6114,0,4838,0,3554,0,2264,0,971,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);vh=H([2621,0,2624,0,2633,0,2648,0,2668,0,2695,0,2727,0,2765,0,2809,0,2859,0,2915,0,2976,0,3043,0,3116,0,3194,0,3279,0,3368,0,3464,0,3565,0,3671,0,3783,0,3900,0,4023,0,4151,0,4285,0,4423,0,4567,0,4716,0,4870,0,5029,0,5193,0,5362,0,5535,0,5714,0,5897,0,6084,0,6277,0,6473,0,6674,0,6880,0,7089,0,7303,0,7521,0,7742,0,7968,0,8197,0,8430,0,8667,0,8907,0,9151,0,9398,0,9648,
0,9902,0,10158,0,10417,0,10680,0,10945,0,11212,0,11482,0,11755,0,12030,0,12307,0,12586,0,12867,0,13150,0,13435,0,13722,0,14010,0,14299,0,14590,0,14882,0,15175,0,15469,0,15764,0,16060,0,16356,0,16653,0,16950,0,17248,0,17546,0,17844,0,18141,0,18439,0,18736,0,19033,0,19330,0,19625,0,19920,0,20214,0,20507,0,20799,0,21090,0,21380,0,21668,0,21954,0,22239,0,22522,0,22803,0,23083,0,23360,0,23635,0,23907,0,24177,0,24445,0,24710,0,24972,0,25231,0,25488,0,25741,0,25991,0,26238,0,26482,0,26722,0,26959,0,27192,
0,27422,0,27647,0,27869,0,28087,0,28300,0,28510,0,28715,0,28916,0,29113,0,29305,0,29493,0,29676,0,29854,0,30028,0,30197,0,30361,0,30519,0,30673,0,30822,0,30966,0,31105,0,31238,0,31366,0,31489,0,31606,0,31718,0,31825,0,31926,0,32021,0,32111,0,32195,0,32273,0,32346,0,32413,0,32475,0,32530,0,32580,0,32624,0,32662,0,32695,0,32721,0,32742,0,32756,0,32765,0,32767,0,32767,0,32756,0,32720,0,32661,0,32578,0,32471,0,32341,0,32188,0,32012,0,31813,0,31592,0,31349,0,31084,0,30798,0,30492,0,30165,0,29818,0,29453,
0,29068,0,28666,0,28247,0,27810,0,27358,0,26891,0,26408,0,25913,0,25404,0,24883,0,24350,0,23807,0,23255,0,22693,0,22124,0,21548,0,20965,0,20378,0,19786,0,19191,0,18593,0,17994,0,17395,0,16796,0,16199,0,15604,0,15012,0,14424,0,13842,0,13265,0,12696,0,12135,0,11582,0,11039,0,10507,0,9986,0,9477,0,8981,0,8499,0,8031,0,7579,0,7143,0,6723,0,6321,0,5937,0,5571,0,5225,0,4898,0,4591,0,4305,0,4041,0,3798,0,3577,0,3378,0,3202,0,3048,0,2918,0,2812,0,2729,0,2669,0,2633,0,2621,0],["i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);wh=H([2621,0,2623,0,2627,0,2634,0,2644,0,2656,0,2671,0,2689,0,2710,0,2734,0,2760,0,2789,0,2821,0,2855,0,2893,0,2933,0,2975,
0,3021,0,3069,0,3120,0,3173,0,3229,0,3288,0,3350,0,3414,0,3481,0,3550,0,3622,0,3697,0,3774,0,3853,0,3936,0,4021,0,4108,0,4198,0,4290,0,4385,0,4482,0,4582,0,4684,0,4788,0,4895,0,5004,0,5116,0,5230,0,5346,0,5464,0,5585,0,5708,0,5833,0,5960,0,6090,0,6221,0,6355,0,6491,0,6629,0,6769,0,6910,0,7054,0,7200,0,7348,0,7498,0,7649,0,7803,0,7958,0,8115,0,8274,0,8434,0,8597,0,8761,0,8926,0,9093,0,9262,0,9432,0,9604,0,9778,0,9952,0,10129,0,10306,0,10485,0,10665,0,10847,0,11030,0,11214,0,11399,0,11586,0,11773,0,
11962,0,12152,0,12342,0,12534,0,12727,0,12920,0,13115,0,13310,0,13506,0,13703,0,13901,0,14099,0,14298,0,14497,0,14698,0,14898,0,15100,0,15301,0,15504,0,15706,0,15909,0,16112,0,16316,0,16520,0,16724,0,16928,0,17132,0,17337,0,17541,0,17746,0,17950,0,18155,0,18359,0,18564,0,18768,0,18972,0,19175,0,19379,0,19582,0,19785,0,19987,0,20189,0,20390,0,20591,0,20792,0,20992,0,21191,0,21390,0,21588,0,21785,0,21981,0,22177,0,22372,0,22566,0,22759,0,22951,0,23143,0,23333,0,23522,0,23710,0,23897,0,24083,0,24268,
0,24451,0,24633,0,24814,0,24994,0,25172,0,25349,0,25525,0,25699,0,25871,0,26042,0,26212,0,26380,0,26546,0,26711,0,26874,0,27035,0,27195,0,27353,0,27509,0,27664,0,27816,0,27967,0,28115,0,28262,0,28407,0,28550,0,28691,0,28830,0,28967,0,29102,0,29234,0,29365,0,29493,0,29619,0,29743,0,29865,0,29985,0,30102,0,30217,0,30330,0,30440,0,30548,0,30654,0,30757,0,30858,0,30956,0,31052,0,31146,0,31237,0,31326,0,31412,0,31495,0,31576,0,31655,0,31730,0,31804,0,31874,0,31942,0,32008,0,32071,0,32131,0,32188,0,32243,
0,32295,0,32345,0,32392,0,32436,0,32477,0,32516,0,32552,0,32585,0,32615,0,32643,0,32668,0,32690,0,32709,0,32726,0,32740,0,32751,0,32759,0,32765,0,32767,0,32767,0,32097,0,30112,0,26895,0,22576,0,17333,0,11380,0,4962,0],["i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",
0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0,"i16",0],L);za.__str529=H([68,101,99,111,100,101,114,0],"i8",L);P=H(468,["i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,
"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",
0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"i32",0,0,0,"i32",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0,"*",0,0,0,"i32",0,0,0],L);qa=H(24,"i32",L);za.__str1=H([109,97,120,32,115,121,115,116,101,109,32,98,121,116,101,115,32,61,32,37,49,48,108,117,10,
0],"i8",L);za.__str12=H([115,121,115,116,101,109,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0],"i8",L);za.__str2=H([105,110,32,117,115,101,32,98,121,116,101,115,32,32,32,32,32,61,32,37,49,48,108,117,10,0],"i8",L);H([0],"i8",L);H(1,"void ()*",L);qe=H([0,0,0,0,0,0,0,0,2,0,0,0,4,0,0,0,6,0,0,0],["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0],L);H(1,"void*",L);za.__str3=H([115,116,100,58,58,98,97,100,95,97,108,108,111,99,0],"i8",L);xe=H([0,0,0,0,0,0,0,0,8,0,0,0,10,0,0,0,12,0,0,
0],["*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0,"*",0,0,0],L);H(1,"void*",L);za.__str14=H([98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0],"i8",L);za.__ZTSSt9bad_alloc=H([83,116,57,98,97,100,95,97,108,108,111,99,0],"i8",L);Bb=H(12,"*",L);za.__ZTSSt20bad_array_new_length=H([83,116,50,48,98,97,100,95,97,114,114,97,121,95,110,101,119,95,108,101,110,103,116,104,0],"i8",L);cc=H(12,"*",L);h[Ka>>2]=Ti|0;h[Ka+4>>2]=Ui|0;h[Ka+8>>2]=Vi|0;h[Ka+12>>2]=Wi|0;h[Ka+16>>2]=Xi|0;h[Ka+20>>2]=
Yi|0;h[Ka+24>>2]=Zi|0;h[Ka+28>>2]=$i|0;h[Ka+32>>2]=aj|0;h[Oa>>2]=bj|0;h[Oa+4>>2]=cj|0;h[Oa+8>>2]=dj|0;h[Oa+12>>2]=ej|0;h[Oa+16>>2]=fj|0;h[Oa+20>>2]=gj|0;h[Oa+24>>2]=hj|0;h[Oa+28>>2]=ij|0;h[qe+4>>2]=Bb;h[xe+4>>2]=cc;ye=H([2,0,0,0,0],["i8*",0,0,0,0],L);h[Bb>>2]=ye+8|0;h[Bb+4>>2]=za.__ZTSSt9bad_alloc|0;h[Bb+8>>2]=void 0;h[cc>>2]=ye+8|0;h[cc+4>>2]=za.__ZTSSt20bad_array_new_length|0;h[cc+8>>2]=Bb;Cb=[0,0,Qc,0,function(a){Cb[16](a);Ki(a)},0,function(){return za.__str3|0},0,Qc,0,function(a){Cb[20](a);Ki(a)},
0,function(){return za.__str14|0},0,Ji,0,Qc,0,function(a){Ji(a);h[a>>2]=xe+8|0},0,Qc,0];Module.FUNCTION_TABLE=Cb;Module.run=Mi;Module.preRun&&Module.preRun();Module.noInitialRun||Mi();Module.postRun&&Module.postRun();Module.generateStructInfo=sa.generateStructInfo;Module.Decoder_Interface_init=function(){var a=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");h[a>>2]=0;mi(a,za.__str529|0);var k=h[a>>2];B=a;return k};Module.Decoder_Interface_Decode=function(a,h,e){var c;c=(M[h|0]&255)>>
3&15;Ee(a,c&255,h+1|0,e,2)};Module.Decoder_Interface_exit=function(a){var k=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");h[k>>2]=a;ni(k);B=k};Module.Encoder_Interface_init=function(B){var k;k=va(8);a:{var e=k|0,c=k+4|0,b;for(b=0;;)switch(b){case 0:var d;b=e;d=c;b=oi(b,B,za.__str|0);b:{for(var i=void 0,i=0;;)switch(i){case 0:var g,f,j;f=d;i=(f|0)==0?1:2;break;case 1:g=-1;i=5;break;case 2:h[f>>2]=0;j=i=va(12);i=(i|0)==0?3:4;break;case 3:g=-1;i=5;break;case 4:a[(j|0)>>1]=8;g=h[f>>
2]=j;a[(g+2|0)>>1]=3;a[(g+4|0)>>1]=0;g=h[(g+8|0)>>2]=0;i=5;break;case 5:d=g;break b;default:x(0,"bad label: "+i)}d=void 0}b=(b<<16>>16|0)!=0?2:1;break;case 1:b=(d<<16>>16|0)!=0?2:3;break;case 2:b=3;break;case 3:break a;default:x(0,"bad label: "+b)}}return k};Module.Encoder_Interface_Encode=function(a,k,e,c){var b=B;B+=4;x(B%4==0,"Stack is unaligned");x(B<ea,"Ran out of stack");h[b>>2]=k;a=Ke(h[(a|0)>>2],h[(a+4|0)>>2],k,e,c,b,3)<<16>>16;c|=0;N[c]=(M[c]&255|4)&255;B=b;return a};Module.Encoder_Interface_exit=
function(a){var k=a+4|0;pi(a|0);a:{var e;for(e=0;;)switch(e){case 0:var c;c=k;e=(c|0)==0?2:1;break;case 1:e=(h[c>>2]|0)==0?2:3;break;case 2:e=4;break;case 3:wa(h[c>>2]);h[c>>2]=0;e=4;break;case 4:break a;default:x(0,"bad label: "+e)}}wa(a)};return Module}();
(function(ma){ma.util={toString:function(Y,O){var x=new (ma.WebKitBlobBuilder||ma.MozBlobBuilder||ma.BlobBuilder);x.append(Y.buffer);buffer=null;var W=new FileReader;W.onload=function(x){O(x.target.result)};W.readAsBinaryString(x.getBlob())},parseInt:function(Y){return Binary.toUint8(Y)},mozPlay:function(Y){var O,x=0,W;if((O=new Audio).mozSetup)for(O.mozSetup(1,8E3);x<Y.length;)W=Y.length-x>800?800:Y.length-x,O.mozWriteAudio(Y.subarray(x,x+W)),x+=W},play:function(Y){var Y=PCMData.encode({sampleRate:8E3,
channelCount:1,bytesPerSample:2,data:Y}),O=new Audio;O.src="data:audio/wav;base64,"+btoa(Y);O.play()},merge:function(Y,O,x,W){var W=W||[],x=typeof x=="undefined"?2:x,H;for(H in O)O.hasOwnProperty(H)&&W.indexOf(H)<0&&(typeof Y[H]!=="object"||!x?(Y[H]=O[H],W.push(O[H])):merge(Y[H],O[H],x-1,W));return Y},inherit:function(Y,O){function x(){}x.prototype=O.prototype;Y.prototype=new x}}})(this);
(function(ma){function Y(O){!O&&(O={});this.params=O;this.frame_size=320;this.ring_size=2304;this.modoffset=this.ringoffset=this.linoffset=0;this.linbuf=new Int16Array(this.frame_size);this.ring=new Int16Array(this.ring_size*2);this.modframes=new Int16Array(this.frame_size);this.framesbuf=[];this.decoder=new AMRDecoder(O);this.encoder=new AMREncoder(O);this.init()}Y.util=ma.util;Y.prototype.init=function(){this.encoder.init();this.decoder.init()};Y.prototype.set=function(O,x){this.options[O]=x};Y.prototype.enable=
function(O){this.set(O,true)};Y.prototype.disable=function(O){this.set(O,false)};Y.prototype.init=function(){this.encoder.init();this.decoder.init()};Y.prototype.encode=function(O,x){if(x)return this.encoder.process(O);for(var W=-1,H=this.ringoffset;++W<O.length;++H)this.ring[H]=O[W];this.ringoffset+=O.length;if(!(this.ringoffset>this.linoffset&&this.ringoffset-this.linoffset<this.frame_size)){for(W=-1;++W<this.linbuf.length;)this.linbuf[W]=this.ring[this.linoffset+W];this.linoffset+=this.linbuf.length;
this.framesbuf=this.encoder.process(this.linbuf);if(this.ringoffset>this.ring_size)this.modoffset=this.ringoffset%this.ring_size,console.log("ignoring %d samples",this.modoffset),this.ringoffset=0;if(this.linoffset>this.ring_size)this.linoffset=0;return this.framesbuf}};Y.prototype.decode=function(O){return this.decoder.process(O)};Y.prototype.close=function(){this.encoder.close();this.decoder.close()};Y.onerror=function(O,x){console.error("AMR Error "+x+": "+O)};util.merge(Y,{MAGIC_NUMBER:[35,33,
65,77,82,10],MAGIC_NUMBER_STRING:"#!AMR\n",modes:{0:12,1:13,2:15,3:17,4:19,5:20,6:26,7:31,8:5}});ma.AMR=Y})(this);function CodecProcessor(){}CodecProcessor.prototype.set=function(){};CodecProcessor.prototype.buffer=null;CodecProcessor.prototype.input=null;CodecProcessor.prototype.output=null;CodecProcessor.prototype.state=null;function AMRDecoder(ma){this.params=ma;this.block_size=20;this.frame_size=160}
AMRDecoder.prototype.init=function(){this.state=opencoreamr.Decoder_Interface_init();this.input=opencoreamr.allocate(20,"i8",opencoreamr.ALLOC_STATIC);this.buffer=opencoreamr.allocate(160,"i16",opencoreamr.ALLOC_STATIC)};AMRDecoder.prototype.validate=function(ma){if(ma.constructor==String)return ma==="#!AMR\n";for(var Y=-1;++Y<6;)if(ma[Y]!=AMR.MAGIC_NUMBER[Y])return false;return true};
AMRDecoder.prototype.read=function(ma,Y){for(var O=Y.constructor==String.prototype.constructor,x=O?Binary.toUint8(Y[0]):Y[0],W=AMR.modes[x>>3&15],x=this.input,W=ma+W>Y.length?Y.length-ma:W,H,Va=ma-1,Wa=0;++Va<ma+W;Wa+=1)H=!O?Y[Va]:Binary.toUint8(Y[Va]),opencoreamr.setValue(x+Wa,H,"i8");return W};
AMRDecoder.prototype.process=function(ma){var Y=ma.constructor==String;if(this.validate(Y?ma.substring(0,6):ma.subarray(0,6))){ma=Y?ma.substr(6):ma.subarray(6);W&&console.time("decode");var O=Y=0,x;x=this.frame_size*Math.ceil(ma.length/this.block_size);var W=!!this.params.benchmark,H=0,Va=this.input,Wa=this.buffer,ob=this.state;if(!this.output||this.output.length<x)this.output=new Float32Array(x);for(;O<ma.length;)W&&console.time("decode_packet_offset_"+O),x=this.read(O,ma),opencoreamr.Decoder_Interface_Decode(ob,
Va,Wa,0),this.write(Y,this.frame_size,Wa),W&&console.timeEnd("decode_packet_offset_"+O),O+=x+1,Y+=this.frame_size,++H;W&&console.timeEnd("decode");return this.output.subarray(0,Y)}};AMRDecoder.prototype.write=function(ma,Y,O){for(var x,W=0,H=ma-1;++H<ma+Y;W+=2)x=opencoreamr.getValue(O+W,"i16"),this.output[H]=x/32768};
AMRDecoder.prototype.close=function(){opencoreamr.Decoder_Interface_exit(this.state)}(function(ma){function Y(O){this.params=O;this.mode=O.mode||5;this.frame_size=160;this.block_size=AMR.modes[this.mode];this.dtx=O.dtx+0||0}Y.prototype.init=function(){opencoreamr.allocate(1,"i32",opencoreamr.ALLOC_STACK);this.state=opencoreamr.Encoder_Interface_init(this.dtx);this.input=opencoreamr.allocate(this.frame_size,"i16",opencoreamr.ALLOC_STATIC);this.buffer=opencoreamr.allocate(this.block_size,"i8",opencoreamr.ALLOC_STATIC)};
Y.prototype.read=function(O,x,W){for(var H=this.input,x=O+x>W.length?W.length-O:x,Y=O-1,ma=0;++Y<O+x;ma+=2)opencoreamr.setValue(H+ma,W[Y],"i16");return x};Y.prototype.writeMagicNumber=function(){for(var O=-1;++O<6;)this.output[O]=AMR.MAGIC_NUMBER[O]};Y.prototype.write=function(O,x,W){for(var H,Y=0,ma=O-1;++ma<O+x;Y+=1)H=opencoreamr.getValue(W+Y,"i8"),this.output[ma]=H};Y.prototype.process=function(O){ma&&console.time("encode");var x=0,W=0,H,Y,ma=!!this.benchmark;H=this.block_size*Math.ceil(O.length/
this.frame_size);opencoreamr.allocate(1,"i32",opencoreamr.ALLOC_STACK);if(!this.output||this.output.length<H)this.output=new Uint8Array(H+6);this.writeMagicNumber();x+=6;for(var ob=this.input,Db=this.buffer;W<O.length;)ma&&console.time("encode_packet_offset_"+W),H=this.read(W,this.frame_size,O),Y=opencoreamr.Encoder_Interface_Encode(this.state,this.mode,ob,Db,0),this.write(x,Y,Db),ma&&console.timeEnd("encode_packet_offset_"+W),x+=Y,W+=H;ma&&console.timeEnd("encode");return this.output.subarray(0,
x)};Y.prototype.close=function(){opencoreamr.Encoder_Interface_exit(this.state)};ma.AMREncoder=Y}(this));
(function (global) {
global.util = {
datasource:{},
element:null,
toString: function (data, fn) {
var BlobBuilder = global["WebKitBlobBuilder"] || global["MozBlobBuilder"] || global["BlobBuilder"];
var bb = new BlobBuilder();
bb.append(data.buffer);
buffer = null;
var reader = new FileReader();
reader.onload = function (e) {
fn(e.target.result);
};
reader.readAsBinaryString(bb.getBlob());
}
, parseInt: function (chr) {
return Binary.toUint8(chr);
}
, mozPlay: function (floats) {
var audio, pos = 0, size;
if ((audio = new Audio())["mozSetup"]) {
audio.mozSetup(1, 8000);
while (pos < floats.length) {
size = (floats.length - pos > 800) ? 800 : floats.length - pos;
audio.mozWriteAudio(floats.subarray(pos, pos+size));
pos += size;
}
}
}
, getWave: function (floats) {
var waveData = PCMData.encode({
sampleRate: 8000,
channelCount: 1,
bytesPerSample: 2,
data: floats
}),base64Data = btoa(waveData),me = this,str = base64Data.substr(-10);
me.element = new Audio();
me.element.src = "data:audio/wav;base64,"+base64Data;
return me.element;
}
/**
* @author LearnBoost
*/
, merge: function (target, additional, deep, lastseen) {
var seen = lastseen || []
, depth = typeof deep == 'undefined' ? 2 : deep
, prop;
for (prop in additional) {
if (additional.hasOwnProperty(prop) && seen.indexOf(prop) < 0) {
if (typeof target[prop] !== 'object' || !depth) {
target[prop] = additional[prop];
seen.push(additional[prop]);
} else {
merge(target[prop], additional[prop], depth - 1, seen);
}
}
}
return target;
}
/**
* @author LearnBoost
*/
, inherit: function (ctor, ctor2) {
function f() {};
f.prototype = ctor2.prototype;
ctor.prototype = new f;
}
}
}(this));(function (global) {
function AMR(params) {
!params && (params = {});
this.params = params;
this.frame_size = 320 || params.frame_size;
this.ring_size = 2304 || params.ring_size;
this.linoffset = 0;
this.ringoffset = 0;
this.modoffset = 0;
this.linbuf = new Int16Array(this.frame_size);
this.ring = new Int16Array(this.ring_size * 2);
this.modframes = new Int16Array(this.frame_size);
this.framesbuf = [];
this.decoder = new AMRDecoder(params);
this.encoder = new AMREncoder(params);
this.init();
}
AMR.util = global.util;
AMR.prototype.init = function () {
this.encoder.init();
this.decoder.init();
}
AMR.prototype.set = function (name, value) {
this.options[name] = value;
}
AMR.prototype.enable = function (option) {
this.set(option, true);
}
AMR.prototype.disable = function (option) {
this.set(option, false);
}
/**
* Initialize the codec
*/
AMR.prototype.init = function () {
this.encoder.init();
this.decoder.init();
}
/**
* @argument pcmdata Float32Array|Int16Array
* @returns String|Uint8Array
*/
AMR.prototype.encode = function (data, isFile) {
isFile = !!isFile;
if (isFile) {
return this.encoder.process(data);
}
// ring spin
for (var i=-1, j=this.ringoffset; ++i < data.length; ++j) {
this.ring[j] = data[i];
}
this.ringoffset += data.length;
// has enough to decode
if ((this.ringoffset > this.linoffset)
&& (this.ringoffset - this.linoffset < this.frame_size)) {
return;
}
// buffer fill
for (var i=-1; ++i < this.linbuf.length;) {
this.linbuf[i] = this.ring[this.linoffset + i];
}
this.linoffset += this.linbuf.length;
this.framesbuf = this.encoder.process(this.linbuf);
if (this.ringoffset > this.ring_size) {
this.modoffset = this.ringoffset % this.ring_size;
console.log("ignoring %d samples", this.modoffset);
this.ringoffset = 0;
}
if (this.linoffset > this.ring_size) {
this.linoffset = 0;
}
return this.framesbuf;
}
/**
* @argument encoded String|Uint8Array
* @returns Float32Array
*/
AMR.prototype.decode = function (bitstream) {
return this.decoder.process(bitstream);
}
/**
* Closes the codec
*/
AMR.prototype.close = function () {
this.encoder.close();
this.decoder.close();
}
AMR.onerror = function (message, code) {
console.error("AMR Error "+code+": "+message);
}
util.merge(AMR, {
MAGIC_NUMBER: [35, 33, 65, 77, 82, 10]
, MAGIC_NUMBER_STRING: "#!AMR\n"
/** Decoding modes and its frame sizes (bytes), respectively */
, modes: {
0: 12
, 1: 13
, 2: 15
, 3: 17
, 4: 19
, 5: 20
, 6: 26
, 7: 31
, 8: 5
}
});
global.AMR = AMR;
}(this));function CodecProcessor (params) {
}
CodecProcessor.prototype.set = function (name, value) {
}
/**
* Temporary buffers
*/
CodecProcessor.prototype.buffer = null;
/**
* Input buffers
*/
CodecProcessor.prototype.input = null;
/**
* Encoded/Decoded audio frames
*/
CodecProcessor.prototype.output = null;
/**
* Internal state
*/
CodecProcessor.prototype.state = null;/**
* Different modes imply different block sizes:
* modes = MR475, MR515, MR59, MR67, MR74, MR795, MR102, MR122, MRSID
* indexes = 0, 1, 2, 3, 4, 5, 6, 7, 8
* bits = 12, 13, 15, 17, 19, 20, 26, 31, 5
* samples = 160
*/
function AMRDecoder(options) {
this.params = options;
this.block_size = 20;
this.frame_size = 160;
}
AMRDecoder.prototype.init = function () {
var options = this.options;
/* Create decoder */
this.state = opencoreamr.Decoder_Interface_init();
// 'XXX' - change to parameters
// Input Buffer
this.input = opencoreamr.allocate(20, 'i8', opencoreamr.ALLOC_STATIC);
// Buffer to store the audio samples
this.buffer = opencoreamr.allocate(160, 'i16', opencoreamr.ALLOC_STATIC);
}
AMRDecoder.prototype.validate = function (magic) {
var is_str = magic.constructor == String;
if (is_str) {
return (magic === "#!AMR\n");
}
for (var i = -1; ++i<6; ) {
if (magic[i] != AMR.MAGIC_NUMBER[i]){
return false
}
}
return true;
}
/**
* Copy the samples to the input buffer
*/
AMRDecoder.prototype.read = function (offset, data) {
// block_size = 31 ==> [mode(1):frames(30)]
var is_str = data.constructor == String.prototype.constructor;
var dec_mode = is_str ? Binary.toUint8(data[0]) : data[0];
var nb = AMR.modes[(dec_mode >> 3) & 0x000F];
var input_addr = this.input
, len = offset + nb > data.length ? data.length - offset : nb
, bits;
for (var m=offset-1, k=0; ++m < offset+len; k+=1){
bits = !is_str ? data[m] : Binary.toUint8(data[m]);
opencoreamr.setValue(input_addr+k, bits, 'i8');
}
return len;
}
AMRDecoder.prototype.process = function (data) {
var is_str = data.constructor == String
, head = is_str ? data.substring(0, 6) : data.subarray(0, 6);
if (!this.validate(head)) {
return;
}
data = is_str ? data.substr(6) : data.subarray(6);
benchmark && console.time('decode');
var output_offset = 0, offset = 0, len;
// Varies from quality
var total_packets = Math.ceil(data.length / this.block_size)
, estimated_size = this.frame_size * total_packets
, benchmark = !!this.params.benchmark
, tot = 0;
var input_addr = this.input
, buffer_addr = this.buffer
, state_addr = this.state;
if (!this.output || this.output.length < estimated_size) {
this.output = new Float32Array(estimated_size);
}
while (offset < data.length) {
/* Benchmarking */
benchmark && console.time('decode_packet_offset_' + offset);
/* Read bits */
len = this.read(offset, data);
/* Decode the data */
opencoreamr.Decoder_Interface_Decode(state_addr, input_addr, buffer_addr, 0);
/* Write the samples to the output buffer */
this.write(output_offset, this.frame_size, buffer_addr);
/* Benchmarking */
benchmark && console.timeEnd('decode_packet_offset_' + offset);
offset += len + 1;
output_offset += this.frame_size;
++tot;
}
benchmark && console.timeEnd('decode');
return this.output.subarray(0, output_offset);
}
/**
* Copy to the output buffer
*/
AMRDecoder.prototype.write = function (offset, nframes, addr) {
var bits;
for (var m=0, k=offset-1; ++k<offset+nframes; m+=2) {
bits = opencoreamr.getValue(addr+m, "i16");
this.output[k] = bits / 32768;
}
}
AMRDecoder.prototype.close = function () {
opencoreamr.Decoder_Interface_exit(this.state);
}
(function (global) {
var util = AMR.util;
function AMREncoder(options) {
this.params = options;
this.mode = options.mode || 5; // MR795 by default
this.frame_size = 160;
this.block_size = AMR.modes[this.mode];
this.dtx = (options.dtx + 0) || 0;
}
AMREncoder.prototype.init = function () {
var options = this.options;
var ptr = opencoreamr.allocate(1, 'i32', opencoreamr.ALLOC_STACK), ret, encSize;
/* Create Encoder */
this.state = opencoreamr.Encoder_Interface_init(this.dtx);
this.input = opencoreamr.allocate(this.frame_size, 'i16', opencoreamr.ALLOC_STATIC);
this.buffer = opencoreamr.allocate(this.block_size, 'i8', opencoreamr.ALLOC_STATIC);
}
/**
* Copy the samples to the input buffer
*/
AMREncoder.prototype.read = function (offset, length, data) {
var input_addr = this.input
, len = offset + length > data.length ? data.length - offset : length;
for (var m=offset-1, k=0; ++m < offset+len; k+=2){
opencoreamr.setValue(input_addr+k, data[m], 'i16');
}
return len;
}
AMREncoder.prototype.writeMagicNumber = function () {
for (var i=-1; ++i<6; ) {
this.output[i] = AMR.MAGIC_NUMBER[i];
}
}
/* Copy to the output buffer */
AMREncoder.prototype.write = function (offset, nb, addr) {
var bits;
for (var m=0, k=offset-1; ++k<offset+nb; m+=1) {
bits = opencoreamr.getValue(addr+m, "i8");
this.output[k] = bits;
}
}
AMREncoder.prototype.process = function (pcmdata) {
benchmark && console.time('encode');
var output_offset = 0, offset = 0, len, nb, err, tm_str
, benchmark = !!this.benchmark
, total_packets = Math.ceil(pcmdata.length / this.frame_size)
, estimated_size = this.block_size * total_packets
, buffer_len_ptr = opencoreamr.allocate(1, 'i32', opencoreamr.ALLOC_STACK);
if (!this.output || this.output.length < estimated_size) {
this.output = new Uint8Array(estimated_size + 6);
}
this.writeMagicNumber();
output_offset += 6;
var bits_addr = this.bits
, input_addr = this.input
, buffer_addr = this.buffer
, state_addr = this.state;
while (offset < pcmdata.length) {
benchmark && console.time('encode_packet_offset_'+offset);
/* Frames to the input buffer */
len = this.read(offset, this.frame_size, pcmdata);
/* Encode the frame */
nb = opencoreamr.Encoder_Interface_Encode(this.state, this.mode
, input_addr, buffer_addr, 0);
/* Write the size and frame */
this.write(output_offset, nb, buffer_addr);
benchmark && console.timeEnd('encode_packet_offset_'+offset);
output_offset += nb;
offset += len;
}
benchmark && console.timeEnd('encode');
return this.output.subarray(0, output_offset);
}
AMREncoder.prototype.close = function () {
opencoreamr.Encoder_Interface_exit(this.state);
}
global["AMREncoder"] = AMREncoder;
}(this));
(function (global) {
function AMR(params) {
!params && (params = {});
this.params = params;
this.frame_size = 320 || params.frame_size;
this.ring_size = 2304 || params.ring_size;
this.linoffset = 0;
this.ringoffset = 0;
this.modoffset = 0;
this.linbuf = new Int16Array(this.frame_size);
this.ring = new Int16Array(this.ring_size * 2);
this.modframes = new Int16Array(this.frame_size);
this.framesbuf = [];
this.decoder = new AMRDecoder(params);
this.encoder = new AMREncoder(params);
this.init();
}
AMR.util = global.util;
AMR.prototype.init = function () {
this.encoder.init();
this.decoder.init();
}
AMR.prototype.set = function (name, value) {
this.options[name] = value;
}
AMR.prototype.enable = function (option) {
this.set(option, true);
}
AMR.prototype.disable = function (option) {
this.set(option, false);
}
/**
* Initialize the codec
*/
AMR.prototype.init = function () {
this.encoder.init();
this.decoder.init();
}
/**
* @argument pcmdata Float32Array|Int16Array
* @returns String|Uint8Array
*/
AMR.prototype.encode = function (data, isFile) {
isFile = !!isFile;
if (isFile) {
return this.encoder.process(data);
}
// ring spin
for (var i=-1, j=this.ringoffset; ++i < data.length; ++j) {
this.ring[j] = data[i];
}
this.ringoffset += data.length;
// has enough to decode
if ((this.ringoffset > this.linoffset)
&& (this.ringoffset - this.linoffset < this.frame_size)) {
return;
}
// buffer fill
for (var i=-1; ++i < this.linbuf.length;) {
this.linbuf[i] = this.ring[this.linoffset + i];
}
this.linoffset += this.linbuf.length;
this.framesbuf = this.encoder.process(this.linbuf);
if (this.ringoffset > this.ring_size) {
this.modoffset = this.ringoffset % this.ring_size;
//console.log("ignoring %d samples", this.modoffset);
this.ringoffset = 0;
}
if (this.linoffset > this.ring_size) {
this.linoffset = 0;
}
return this.framesbuf;
}
/**
* @argument encoded String|Uint8Array
* @returns Float32Array
*/
AMR.prototype.decode = function (bitstream) {
return this.decoder.process(bitstream);
}
/**
* Closes the codec
*/
AMR.prototype.close = function () {
this.encoder.close();
this.decoder.close();
}
AMR.onerror = function (message, code) {
console.error("AMR Error "+code+": "+message);
}
util.merge(AMR, {
MAGIC_NUMBER: [35, 33, 65, 77, 82, 10]
, MAGIC_NUMBER_STRING: "#!AMR\n"
/** Decoding modes and its frame sizes (bytes), respectively */
, modes: {
0: 12
, 1: 13
, 2: 15
, 3: 17
, 4: 19
, 5: 20
, 6: 26
, 7: 31
, 8: 5
}
});
global.AMR = AMR;
}(this));
/**
* Different modes imply different block sizes:
* modes = MR475, MR515, MR59, MR67, MR74, MR795, MR102, MR122, MRSID
* indexes = 0, 1, 2, 3, 4, 5, 6, 7, 8
* bits = 12, 13, 15, 17, 19, 20, 26, 31, 5
* samples = 160
*/
function AMRDecoder(options) {
this.params = options;
this.block_size = 20;
this.frame_size = 160;
}
AMRDecoder.prototype.init = function () {
var options = this.options;
/* Create decoder */
this.state = opencoreamr.Decoder_Interface_init();
// 'XXX' - change to parameters
// Input Buffer
this.input = opencoreamr.allocate(20, 'i8', opencoreamr.ALLOC_STATIC);
// Buffer to store the audio samples
this.buffer = opencoreamr.allocate(160, 'i16', opencoreamr.ALLOC_STATIC);
}
AMRDecoder.prototype.validate = function (magic) {
var is_str = magic.constructor == String;
if (is_str) {
return (magic === "#!AMR\n");
}
for (var i = -1; ++i<6; ) {
if (magic[i] != AMR.MAGIC_NUMBER[i]){
return false
}
}
return true;
}
/**
* Copy the samples to the input buffer
*/
AMRDecoder.prototype.read = function (offset, data) {
// block_size = 31 ==> [mode(1):frames(30)]
var is_str = data.constructor == String.prototype.constructor;
var dec_mode = is_str ? Binary.toUint8(data[0]) : data[0];
var nb = AMR.modes[(dec_mode >> 3) & 0x000F];
var input_addr = this.input
, len = offset + nb > data.length ? data.length - offset : nb
, bits;
for (var m=offset-1, k=0; ++m < offset+len; k+=1){
bits = !is_str ? data[m] : Binary.toUint8(data[m]);
opencoreamr.setValue(input_addr+k, bits, 'i8');
}
return len;
}
AMRDecoder.prototype.process = function (data) {
var is_str = data.constructor == String
, head = is_str ? data.substring(0, 6) : data.subarray(0, 6);
if (!this.validate(head)) {
return;
}
data = is_str ? data.substr(6) : data.subarray(6);
benchmark && console.time('decode');
var output_offset = 0, offset = 0, len;
// Varies from quality
var total_packets = Math.ceil(data.length / this.block_size)
, estimated_size = this.frame_size * total_packets
, benchmark = !!this.params.benchmark
, tot = 0;
var input_addr = this.input
, buffer_addr = this.buffer
, state_addr = this.state;
if (!this.output || this.output.length < estimated_size) {
this.output = new Float32Array(estimated_size);
}
while (offset < data.length) {
/* Benchmarking */
benchmark && console.time('decode_packet_offset_' + offset);
/* Read bits */
len = this.read(offset, data);
/* Decode the data */
opencoreamr.Decoder_Interface_Decode(state_addr, input_addr, buffer_addr, 0);
/* Write the samples to the output buffer */
this.write(output_offset, this.frame_size, buffer_addr);
offset += len + 1;
output_offset += this.frame_size;
++tot;
}
benchmark && console.timeEnd('decode');
return this.output.subarray(0, output_offset);
}
/**
* Copy to the output buffer
*/
AMRDecoder.prototype.write = function (offset, nframes, addr) {
var bits;
for (var m=0, k=offset-1; ++k<offset+nframes; m+=2) {
bits = opencoreamr.getValue(addr+m, "i16");
this.output[k] = bits / 32768;
}
}
AMRDecoder.prototype.close = function () {
opencoreamr.Decoder_Interface_exit(this.state);
}
(function (global) {
var util = AMR.util;
function AMREncoder(options) {
this.params = options;
this.mode = options.mode || 5; // MR795 by default
this.frame_size = 160;
this.block_size = AMR.modes[this.mode];
this.dtx = (options.dtx + 0) || 0;
}
AMREncoder.prototype.init = function () {
var options = this.options;
var ptr = opencoreamr.allocate(1, 'i32', opencoreamr.ALLOC_STACK), ret, encSize;
/* Create Encoder */
this.state = opencoreamr.Encoder_Interface_init(this.dtx);
this.input = opencoreamr.allocate(this.frame_size, 'i16', opencoreamr.ALLOC_STATIC);
this.buffer = opencoreamr.allocate(this.block_size, 'i8', opencoreamr.ALLOC_STATIC);
}
/**
* Copy the samples to the input buffer
*/
AMREncoder.prototype.read = function (offset, length, data) {
var input_addr = this.input
, len = offset + length > data.length ? data.length - offset : length;
for (var m=offset-1, k=0; ++m < offset+len; k+=2){
opencoreamr.setValue(input_addr+k, data[m], 'i16');
}
return len;
}
AMREncoder.prototype.writeMagicNumber = function () {
for (var i=-1; ++i<6; ) {
this.output[i] = AMR.MAGIC_NUMBER[i];
}
}
/* Copy to the output buffer */
AMREncoder.prototype.write = function (offset, nb, addr) {
var bits;
for (var m=0, k=offset-1; ++k<offset+nb; m+=1) {
bits = opencoreamr.getValue(addr+m, "i8");
this.output[k] = bits;
}
}
AMREncoder.prototype.process = function (pcmdata) {
benchmark && console.time('encode');
var output_offset = 0, offset = 0, len, nb, err, tm_str
, benchmark = !!this.benchmark
, total_packets = Math.ceil(pcmdata.length / this.frame_size)
, estimated_size = this.block_size * total_packets
, buffer_len_ptr = opencoreamr.allocate(1, 'i32', opencoreamr.ALLOC_STACK);
if (!this.output || this.output.length < estimated_size) {
this.output = new Uint8Array(estimated_size + 6);
}
this.writeMagicNumber();
output_offset += 6;
var bits_addr = this.bits
, input_addr = this.input
, buffer_addr = this.buffer
, state_addr = this.state;
while (offset < pcmdata.length) {
benchmark && console.time('encode_packet_offset_'+offset);
/* Frames to the input buffer */
len = this.read(offset, this.frame_size, pcmdata);
/* Encode the frame */
nb = opencoreamr.Encoder_Interface_Encode(this.state, this.mode
, input_addr, buffer_addr, 0);
/* Write the size and frame */
this.write(output_offset, nb, buffer_addr);
benchmark && console.timeEnd('encode_packet_offset_'+offset);
output_offset += nb;
offset += len;
}
benchmark && console.timeEnd('encode');
return this.output.subarray(0, output_offset);
}
AMREncoder.prototype.close = function () {
opencoreamr.Encoder_Interface_exit(this.state);
}
global["AMREncoder"] = AMREncoder;
}(this));