File: unsigned5.sail

package info (click to toggle)
sail-ocaml 0.19.1%2Bdfsg5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 18,008 kB
  • sloc: ml: 75,941; ansic: 8,848; python: 1,342; exp: 560; sh: 474; makefile: 218; cpp: 36
file content (2003 lines) | stat: -rw-r--r-- 113,093 bytes parent folder | download
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
default Order dec

$include <exception_basic.sail>
$include <vector_dec.sail>

overload zero_extend = {sail_zero_extend}

function main (() : unit) -> unit = {
  assert(unsigned(zero_extend(0x1cdf8, 64)) == 118264);
  assert(unsigned(zero_extend(0x1cdfc, 64)) == 118268);
  assert(unsigned(zero_extend(0x1ce00, 64)) == 118272);
  assert(unsigned(zero_extend(0x1ce04, 64)) == 118276);
  assert(unsigned(zero_extend(0x1ce08, 64)) == 118280);
  assert(unsigned(zero_extend(0x1ce0c, 64)) == 118284);
  assert(unsigned(zero_extend(0x1ce10, 64)) == 118288);
  assert(unsigned(zero_extend(0x1ce14, 64)) == 118292);
  assert(unsigned(zero_extend(0x1ce18, 64)) == 118296);
  assert(unsigned(zero_extend(0x1ce1c, 64)) == 118300);
  assert(unsigned(zero_extend(0x1ce20, 64)) == 118304);
  assert(unsigned(zero_extend(0x1ce24, 64)) == 118308);
  assert(unsigned(zero_extend(0x1ce28, 64)) == 118312);
  assert(unsigned(zero_extend(0x1ce2c, 64)) == 118316);
  assert(unsigned(zero_extend(0x1ce30, 64)) == 118320);
  assert(unsigned(zero_extend(0x1ce34, 64)) == 118324);
  assert(unsigned(zero_extend(0x1ce38, 64)) == 118328);
  assert(unsigned(zero_extend(0x1ce3c, 64)) == 118332);
  assert(unsigned(zero_extend(0x1ce40, 64)) == 118336);
  assert(unsigned(zero_extend(0x1ce44, 64)) == 118340);
  assert(unsigned(zero_extend(0x1ce48, 64)) == 118344);
  assert(unsigned(zero_extend(0x1ce4c, 64)) == 118348);
  assert(unsigned(zero_extend(0x1ce50, 64)) == 118352);
  assert(unsigned(zero_extend(0x1ce54, 64)) == 118356);
  assert(unsigned(zero_extend(0x1ce58, 64)) == 118360);
  assert(unsigned(zero_extend(0x1ce68, 64)) == 118376);
  assert(unsigned(zero_extend(0x1ce6c, 64)) == 118380);
  assert(unsigned(zero_extend(0x1ce70, 64)) == 118384);
  assert(unsigned(zero_extend(0x1ce74, 64)) == 118388);
  assert(unsigned(zero_extend(0x1ce78, 64)) == 118392);
  assert(unsigned(zero_extend(0x1ce7c, 64)) == 118396);
  assert(unsigned(zero_extend(0x1ce80, 64)) == 118400);
  assert(unsigned(zero_extend(0x1ce84, 64)) == 118404);
  assert(unsigned(zero_extend(0x1ce88, 64)) == 118408);
  assert(unsigned(zero_extend(0x1ce9c, 64)) == 118428);
  assert(unsigned(zero_extend(0x1cea0, 64)) == 118432);
  assert(unsigned(zero_extend(0x1cea4, 64)) == 118436);
  assert(unsigned(zero_extend(0x1cea8, 64)) == 118440);
  assert(unsigned(zero_extend(0x1ceac, 64)) == 118444);
  assert(unsigned(zero_extend(0x1ceb0, 64)) == 118448);
  assert(unsigned(zero_extend(0x1ceb4, 64)) == 118452);
  assert(unsigned(zero_extend(0x1ceb8, 64)) == 118456);
  assert(unsigned(zero_extend(0x1cebc, 64)) == 118460);
  assert(unsigned(zero_extend(0x1cec0, 64)) == 118464);
  assert(unsigned(zero_extend(0x1cec4, 64)) == 118468);
  assert(unsigned(zero_extend(0x1cec8, 64)) == 118472);
  assert(unsigned(zero_extend(0x1cecc, 64)) == 118476);
  assert(unsigned(zero_extend(0x1ced0, 64)) == 118480);
  assert(unsigned(zero_extend(0x1ced4, 64)) == 118484);
  assert(unsigned(zero_extend(0x1ced8, 64)) == 118488);
  assert(unsigned(zero_extend(0x1cee8, 64)) == 118504);
  assert(unsigned(zero_extend(0x1ceec, 64)) == 118508);
  assert(unsigned(zero_extend(0x1cef0, 64)) == 118512);
  assert(unsigned(zero_extend(0x1cef4, 64)) == 118516);
  assert(unsigned(zero_extend(0x1cef8, 64)) == 118520);
  assert(unsigned(zero_extend(0x1cefc, 64)) == 118524);
  assert(unsigned(zero_extend(0x1cf00, 64)) == 118528);
  assert(unsigned(zero_extend(0x1cf04, 64)) == 118532);
  assert(unsigned(zero_extend(0x1cf08, 64)) == 118536);
  assert(unsigned(zero_extend(0x1cf0c, 64)) == 118540);
  assert(unsigned(zero_extend(0x1cf10, 64)) == 118544);
  assert(unsigned(zero_extend(0x1cf14, 64)) == 118548);
  assert(unsigned(zero_extend(0x1cf18, 64)) == 118552);
  assert(unsigned(zero_extend(0x1cf1c, 64)) == 118556);
  assert(unsigned(zero_extend(0x1cf20, 64)) == 118560);
  assert(unsigned(zero_extend(0x1cf24, 64)) == 118564);
  assert(unsigned(zero_extend(0x1cf28, 64)) == 118568);
  assert(unsigned(zero_extend(0x1cf2c, 64)) == 118572);
  assert(unsigned(zero_extend(0x1cf30, 64)) == 118576);
  assert(unsigned(zero_extend(0x1cf40, 64)) == 118592);
  assert(unsigned(zero_extend(0x1cf44, 64)) == 118596);
  assert(unsigned(zero_extend(0x1cf48, 64)) == 118600);
  assert(unsigned(zero_extend(0x1cf4c, 64)) == 118604);
  assert(unsigned(zero_extend(0x1cf50, 64)) == 118608);
  assert(unsigned(zero_extend(0x1cf54, 64)) == 118612);
  assert(unsigned(zero_extend(0x1cf58, 64)) == 118616);
  assert(unsigned(zero_extend(0x1cf5c, 64)) == 118620);
  assert(unsigned(zero_extend(0x1cf64, 64)) == 118628);
  assert(unsigned(zero_extend(0x1cf68, 64)) == 118632);
  assert(unsigned(zero_extend(0x1cf6c, 64)) == 118636);
  assert(unsigned(zero_extend(0x1cf70, 64)) == 118640);
  assert(unsigned(zero_extend(0x1cf74, 64)) == 118644);
  assert(unsigned(zero_extend(0x1cf78, 64)) == 118648);
  assert(unsigned(zero_extend(0x1cf7c, 64)) == 118652);
  assert(unsigned(zero_extend(0x1cf80, 64)) == 118656);
  assert(unsigned(zero_extend(0x1cf84, 64)) == 118660);
  assert(unsigned(zero_extend(0x1cf88, 64)) == 118664);
  assert(unsigned(zero_extend(0x1cf8c, 64)) == 118668);
  assert(unsigned(zero_extend(0x1cf90, 64)) == 118672);
  assert(unsigned(zero_extend(0x1cf94, 64)) == 118676);
  assert(unsigned(zero_extend(0x1cf98, 64)) == 118680);
  assert(unsigned(zero_extend(0x1cf9c, 64)) == 118684);
  assert(unsigned(zero_extend(0x1cfa0, 64)) == 118688);
  assert(unsigned(zero_extend(0x1cfa4, 64)) == 118692);
  assert(unsigned(zero_extend(0x1cfa8, 64)) == 118696);
  assert(unsigned(zero_extend(0x1cfac, 64)) == 118700);
  assert(unsigned(zero_extend(0x1cfb0, 64)) == 118704);
  assert(unsigned(zero_extend(0x1cfb4, 64)) == 118708);
  assert(unsigned(zero_extend(0x1cfb8, 64)) == 118712);
  assert(unsigned(zero_extend(0x1cfbc, 64)) == 118716);
  assert(unsigned(zero_extend(0x1cfc0, 64)) == 118720);
  assert(unsigned(zero_extend(0x1cfc4, 64)) == 118724);
  assert(unsigned(zero_extend(0x1cfc8, 64)) == 118728);
  assert(unsigned(zero_extend(0x1cfcc, 64)) == 118732);
  assert(unsigned(zero_extend(0x1cfd0, 64)) == 118736);
  assert(unsigned(zero_extend(0x1cfd4, 64)) == 118740);
  assert(unsigned(zero_extend(0x1cfd8, 64)) == 118744);
  assert(unsigned(zero_extend(0x1cfdc, 64)) == 118748);
  assert(unsigned(zero_extend(0x1cfe0, 64)) == 118752);
  assert(unsigned(zero_extend(0x1cfe4, 64)) == 118756);
  assert(unsigned(zero_extend(0x1cfe8, 64)) == 118760);
  assert(unsigned(zero_extend(0x1cfec, 64)) == 118764);
  assert(unsigned(zero_extend(0x1cff0, 64)) == 118768);
  assert(unsigned(zero_extend(0x1cff4, 64)) == 118772);
  assert(unsigned(zero_extend(0x1cff8, 64)) == 118776);
  assert(unsigned(zero_extend(0x1cffc, 64)) == 118780);
  assert(unsigned(zero_extend(0x1d, 64)) == 29);
  assert(unsigned(zero_extend(0x1d000, 64)) == 118784);
  assert(unsigned(zero_extend(0x1d004, 64)) == 118788);
  assert(unsigned(zero_extend(0x1d008, 64)) == 118792);
  assert(unsigned(zero_extend(0x1d00c, 64)) == 118796);
  assert(unsigned(zero_extend(0x1d010, 64)) == 118800);
  assert(unsigned(zero_extend(0x1d014, 64)) == 118804);
  assert(unsigned(zero_extend(0x1d018, 64)) == 118808);
  assert(unsigned(zero_extend(0x1d01c, 64)) == 118812);
  assert(unsigned(zero_extend(0x1d020, 64)) == 118816);
  assert(unsigned(zero_extend(0x1d024, 64)) == 118820);
  assert(unsigned(zero_extend(0x1d028, 64)) == 118824);
  assert(unsigned(zero_extend(0x1d02c, 64)) == 118828);
  assert(unsigned(zero_extend(0x1d030, 64)) == 118832);
  assert(unsigned(zero_extend(0x1d034, 64)) == 118836);
  assert(unsigned(zero_extend(0x1d038, 64)) == 118840);
  assert(unsigned(zero_extend(0x1d03c, 64)) == 118844);
  assert(unsigned(zero_extend(0x1d040, 64)) == 118848);
  assert(unsigned(zero_extend(0x1d044, 64)) == 118852);
  assert(unsigned(zero_extend(0x1d048, 64)) == 118856);
  assert(unsigned(zero_extend(0x1d04c, 64)) == 118860);
  assert(unsigned(zero_extend(0x1d050, 64)) == 118864);
  assert(unsigned(zero_extend(0x1d054, 64)) == 118868);
  assert(unsigned(zero_extend(0x1d058, 64)) == 118872);
  assert(unsigned(zero_extend(0x1d060, 64)) == 118880);
  assert(unsigned(zero_extend(0x1d068, 64)) == 118888);
  assert(unsigned(zero_extend(0x1d070, 64)) == 118896);
  assert(unsigned(zero_extend(0x1d078, 64)) == 118904);
  assert(unsigned(zero_extend(0x1d080, 64)) == 118912);
  assert(unsigned(zero_extend(0x1d088, 64)) == 118920);
  assert(unsigned(zero_extend(0x1d090, 64)) == 118928);
  assert(unsigned(zero_extend(0x1d098, 64)) == 118936);
  assert(unsigned(zero_extend(0x1d0a0, 64)) == 118944);
  assert(unsigned(zero_extend(0x1d0a8, 64)) == 118952);
  assert(unsigned(zero_extend(0x1d0b0, 64)) == 118960);
  assert(unsigned(zero_extend(0x1d0b8, 64)) == 118968);
  assert(unsigned(zero_extend(0x1d0c0, 64)) == 118976);
  assert(unsigned(zero_extend(0x1d0c8, 64)) == 118984);
  assert(unsigned(zero_extend(0x1d0d0, 64)) == 118992);
  assert(unsigned(zero_extend(0x1d0d8, 64)) == 119000);
  assert(unsigned(zero_extend(0x1d0e0, 64)) == 119008);
  assert(unsigned(zero_extend(0x1d0e8, 64)) == 119016);
  assert(unsigned(zero_extend(0x1d0f0, 64)) == 119024);
  assert(unsigned(zero_extend(0x1d0f8, 64)) == 119032);
  assert(unsigned(zero_extend(0x1d100, 64)) == 119040);
  assert(unsigned(zero_extend(0x1d108, 64)) == 119048);
  assert(unsigned(zero_extend(0x1d448, 64)) == 119880);
  assert(unsigned(zero_extend(0x1d44c, 64)) == 119884);
  assert(unsigned(zero_extend(0x1d450, 64)) == 119888);
  assert(unsigned(zero_extend(0x1d454, 64)) == 119892);
  assert(unsigned(zero_extend(0x1d458, 64)) == 119896);
  assert(unsigned(zero_extend(0x1d45c, 64)) == 119900);
  assert(unsigned(zero_extend(0x1d460, 64)) == 119904);
  assert(unsigned(zero_extend(0x1d464, 64)) == 119908);
  assert(unsigned(zero_extend(0x1d468, 64)) == 119912);
  assert(unsigned(zero_extend(0x1d46c, 64)) == 119916);
  assert(unsigned(zero_extend(0x1d470, 64)) == 119920);
  assert(unsigned(zero_extend(0x1d474, 64)) == 119924);
  assert(unsigned(zero_extend(0x1d478, 64)) == 119928);
  assert(unsigned(zero_extend(0x1d47c, 64)) == 119932);
  assert(unsigned(zero_extend(0x1d480, 64)) == 119936);
  assert(unsigned(zero_extend(0x1d484, 64)) == 119940);
  assert(unsigned(zero_extend(0x1d490, 64)) == 119952);
  assert(unsigned(zero_extend(0x1d494, 64)) == 119956);
  assert(unsigned(zero_extend(0x1d498, 64)) == 119960);
  assert(unsigned(zero_extend(0x1d49c, 64)) == 119964);
  assert(unsigned(zero_extend(0x1d4a0, 64)) == 119968);
  assert(unsigned(zero_extend(0x1d4a4, 64)) == 119972);
  assert(unsigned(zero_extend(0x1d4a8, 64)) == 119976);
  assert(unsigned(zero_extend(0x1d4ac, 64)) == 119980);
  assert(unsigned(zero_extend(0x1d4b0, 64)) == 119984);
  assert(unsigned(zero_extend(0x1d4b4, 64)) == 119988);
  assert(unsigned(zero_extend(0x1d4b8, 64)) == 119992);
  assert(unsigned(zero_extend(0x1d4bc, 64)) == 119996);
  assert(unsigned(zero_extend(0x1d4c0, 64)) == 120000);
  assert(unsigned(zero_extend(0x1d4c4, 64)) == 120004);
  assert(unsigned(zero_extend(0x1d4c8, 64)) == 120008);
  assert(unsigned(zero_extend(0x1d4cc, 64)) == 120012);
  assert(unsigned(zero_extend(0x1d4d0, 64)) == 120016);
  assert(unsigned(zero_extend(0x1d4d4, 64)) == 120020);
  assert(unsigned(zero_extend(0x1d4d8, 64)) == 120024);
  assert(unsigned(zero_extend(0x1d4dc, 64)) == 120028);
  assert(unsigned(zero_extend(0x1d4e0, 64)) == 120032);
  assert(unsigned(zero_extend(0x1d4e4, 64)) == 120036);
  assert(unsigned(zero_extend(0x1d4e8, 64)) == 120040);
  assert(unsigned(zero_extend(0x1d4ec, 64)) == 120044);
  assert(unsigned(zero_extend(0x1d4f0, 64)) == 120048);
  assert(unsigned(zero_extend(0x1d4f4, 64)) == 120052);
  assert(unsigned(zero_extend(0x1d4f8, 64)) == 120056);
  assert(unsigned(zero_extend(0x1d4fc, 64)) == 120060);
  assert(unsigned(zero_extend(0x1d500, 64)) == 120064);
  assert(unsigned(zero_extend(0x1d504, 64)) == 120068);
  assert(unsigned(zero_extend(0x1d508, 64)) == 120072);
  assert(unsigned(zero_extend(0x1d50c, 64)) == 120076);
  assert(unsigned(zero_extend(0x1d510, 64)) == 120080);
  assert(unsigned(zero_extend(0x1d514, 64)) == 120084);
  assert(unsigned(zero_extend(0x1d518, 64)) == 120088);
  assert(unsigned(zero_extend(0x1d51c, 64)) == 120092);
  assert(unsigned(zero_extend(0x1d520, 64)) == 120096);
  assert(unsigned(zero_extend(0x1d524, 64)) == 120100);
  assert(unsigned(zero_extend(0x1d528, 64)) == 120104);
  assert(unsigned(zero_extend(0x1d52c, 64)) == 120108);
  assert(unsigned(zero_extend(0x1d530, 64)) == 120112);
  assert(unsigned(zero_extend(0x1d534, 64)) == 120116);
  assert(unsigned(zero_extend(0x1d538, 64)) == 120120);
  assert(unsigned(zero_extend(0x1d53c, 64)) == 120124);
  assert(unsigned(zero_extend(0x1d540, 64)) == 120128);
  assert(unsigned(zero_extend(0x1d544, 64)) == 120132);
  assert(unsigned(zero_extend(0x1d548, 64)) == 120136);
  assert(unsigned(zero_extend(0x1d54c, 64)) == 120140);
  assert(unsigned(zero_extend(0x1d550, 64)) == 120144);
  assert(unsigned(zero_extend(0x1d554, 64)) == 120148);
  assert(unsigned(zero_extend(0x1d558, 64)) == 120152);
  assert(unsigned(zero_extend(0x1d560, 64)) == 120160);
  assert(unsigned(zero_extend(0x1d564, 64)) == 120164);
  assert(unsigned(zero_extend(0x1d568, 64)) == 120168);
  assert(unsigned(zero_extend(0x1d570, 64)) == 120176);
  assert(unsigned(zero_extend(0x1d5f8, 64)) == 120312);
  assert(unsigned(zero_extend(0x1d5fc, 64)) == 120316);
  assert(unsigned(zero_extend(0x1d600, 64)) == 120320);
  assert(unsigned(zero_extend(0x1d604, 64)) == 120324);
  assert(unsigned(zero_extend(0x1d608, 64)) == 120328);
  assert(unsigned(zero_extend(0x1d60c, 64)) == 120332);
  assert(unsigned(zero_extend(0x1d610, 64)) == 120336);
  assert(unsigned(zero_extend(0x1d614, 64)) == 120340);
  assert(unsigned(zero_extend(0x1d618, 64)) == 120344);
  assert(unsigned(zero_extend(0x1d61c, 64)) == 120348);
  assert(unsigned(zero_extend(0x1d620, 64)) == 120352);
  assert(unsigned(zero_extend(0x1d624, 64)) == 120356);
  assert(unsigned(zero_extend(0x1d628, 64)) == 120360);
  assert(unsigned(zero_extend(0x1d650, 64)) == 120400);
  assert(unsigned(zero_extend(0x1d654, 64)) == 120404);
  assert(unsigned(zero_extend(0x1d658, 64)) == 120408);
  assert(unsigned(zero_extend(0x1d65c, 64)) == 120412);
  assert(unsigned(zero_extend(0x1d660, 64)) == 120416);
  assert(unsigned(zero_extend(0x1d664, 64)) == 120420);
  assert(unsigned(zero_extend(0x1d668, 64)) == 120424);
  assert(unsigned(zero_extend(0x1d66c, 64)) == 120428);
  assert(unsigned(zero_extend(0x1d670, 64)) == 120432);
  assert(unsigned(zero_extend(0x1d674, 64)) == 120436);
  assert(unsigned(zero_extend(0x1d678, 64)) == 120440);
  assert(unsigned(zero_extend(0x1d67c, 64)) == 120444);
  assert(unsigned(zero_extend(0x1d680, 64)) == 120448);
  assert(unsigned(zero_extend(0x1e, 64)) == 30);
  assert(unsigned(zero_extend(0x1e0, 64)) == 480);
  assert(unsigned(zero_extend(0x1e078, 64)) == 123000);
  assert(unsigned(zero_extend(0x1e07c, 64)) == 123004);
  assert(unsigned(zero_extend(0x1e080, 64)) == 123008);
  assert(unsigned(zero_extend(0x1e084, 64)) == 123012);
  assert(unsigned(zero_extend(0x1e088, 64)) == 123016);
  assert(unsigned(zero_extend(0x1e08c, 64)) == 123020);
  assert(unsigned(zero_extend(0x1e090, 64)) == 123024);
  assert(unsigned(zero_extend(0x1e094, 64)) == 123028);
  assert(unsigned(zero_extend(0x1e098, 64)) == 123032);
  assert(unsigned(zero_extend(0x1e09c, 64)) == 123036);
  assert(unsigned(zero_extend(0x1e0a0, 64)) == 123040);
  assert(unsigned(zero_extend(0x1e0a4, 64)) == 123044);
  assert(unsigned(zero_extend(0x1e0a8, 64)) == 123048);
  assert(unsigned(zero_extend(0x1e0ac, 64)) == 123052);
  assert(unsigned(zero_extend(0x1e0ad, 64)) == 123053);
  assert(unsigned(zero_extend(0x1e0ae, 64)) == 123054);
  assert(unsigned(zero_extend(0x1e0af, 64)) == 123055);
  assert(unsigned(zero_extend(0x1e0b0, 64)) == 123056);
  assert(unsigned(zero_extend(0x1e0b1, 64)) == 123057);
  assert(unsigned(zero_extend(0x1e0b2, 64)) == 123058);
  assert(unsigned(zero_extend(0x1e0b3, 64)) == 123059);
  assert(unsigned(zero_extend(0x1e0b4, 64)) == 123060);
  assert(unsigned(zero_extend(0x1e0b5, 64)) == 123061);
  assert(unsigned(zero_extend(0x1e0b6, 64)) == 123062);
  assert(unsigned(zero_extend(0x1e0b7, 64)) == 123063);
  assert(unsigned(zero_extend(0x1e0b8, 64)) == 123064);
  assert(unsigned(zero_extend(0x1e0b9, 64)) == 123065);
  assert(unsigned(zero_extend(0x1e0ba, 64)) == 123066);
  assert(unsigned(zero_extend(0x1e0bb, 64)) == 123067);
  assert(unsigned(zero_extend(0x1e0bc, 64)) == 123068);
  assert(unsigned(zero_extend(0x1e0bd, 64)) == 123069);
  assert(unsigned(zero_extend(0x1e0be, 64)) == 123070);
  assert(unsigned(zero_extend(0x1e0bf, 64)) == 123071);
  assert(unsigned(zero_extend(0x1e0c0, 64)) == 123072);
  assert(unsigned(zero_extend(0x1e0c1, 64)) == 123073);
  assert(unsigned(zero_extend(0x1e0c2, 64)) == 123074);
  assert(unsigned(zero_extend(0x1e0c3, 64)) == 123075);
  assert(unsigned(zero_extend(0x1e0c4, 64)) == 123076);
  assert(unsigned(zero_extend(0x1e0c5, 64)) == 123077);
  assert(unsigned(zero_extend(0x1e0c6, 64)) == 123078);
  assert(unsigned(zero_extend(0x1e0c8, 64)) == 123080);
  assert(unsigned(zero_extend(0x1e0cc, 64)) == 123084);
  assert(unsigned(zero_extend(0x1e0d0, 64)) == 123088);
  assert(unsigned(zero_extend(0x1e0d4, 64)) == 123092);
  assert(unsigned(zero_extend(0x1e0d8, 64)) == 123096);
  assert(unsigned(zero_extend(0x1e0dc, 64)) == 123100);
  assert(unsigned(zero_extend(0x1e0e0, 64)) == 123104);
  assert(unsigned(zero_extend(0x1e0e4, 64)) == 123108);
  assert(unsigned(zero_extend(0x1e0e8, 64)) == 123112);
  assert(unsigned(zero_extend(0x1e0ec, 64)) == 123116);
  assert(unsigned(zero_extend(0x1e0ed, 64)) == 123117);
  assert(unsigned(zero_extend(0x1e0ee, 64)) == 123118);
  assert(unsigned(zero_extend(0x1e0ef, 64)) == 123119);
  assert(unsigned(zero_extend(0x1e0f0, 64)) == 123120);
  assert(unsigned(zero_extend(0x1e0f1, 64)) == 123121);
  assert(unsigned(zero_extend(0x1e0f2, 64)) == 123122);
  assert(unsigned(zero_extend(0x1e0f3, 64)) == 123123);
  assert(unsigned(zero_extend(0x1e0f4, 64)) == 123124);
  assert(unsigned(zero_extend(0x1e0f5, 64)) == 123125);
  assert(unsigned(zero_extend(0x1e0f6, 64)) == 123126);
  assert(unsigned(zero_extend(0x1e0f7, 64)) == 123127);
  assert(unsigned(zero_extend(0x1e0f8, 64)) == 123128);
  assert(unsigned(zero_extend(0x1e0f9, 64)) == 123129);
  assert(unsigned(zero_extend(0x1e0fa, 64)) == 123130);
  assert(unsigned(zero_extend(0x1e0fb, 64)) == 123131);
  assert(unsigned(zero_extend(0x1e0fc, 64)) == 123132);
  assert(unsigned(zero_extend(0x1e0fd, 64)) == 123133);
  assert(unsigned(zero_extend(0x1e0fe, 64)) == 123134);
  assert(unsigned(zero_extend(0x1e0ff, 64)) == 123135);
  assert(unsigned(zero_extend(0x1e100, 64)) == 123136);
  assert(unsigned(zero_extend(0x1e101, 64)) == 123137);
  assert(unsigned(zero_extend(0x1e102, 64)) == 123138);
  assert(unsigned(zero_extend(0x1e103, 64)) == 123139);
  assert(unsigned(zero_extend(0x1e104, 64)) == 123140);
  assert(unsigned(zero_extend(0x1e105, 64)) == 123141);
  assert(unsigned(zero_extend(0x1e106, 64)) == 123142);
  assert(unsigned(zero_extend(0x1e107, 64)) == 123143);
  assert(unsigned(zero_extend(0x1e108, 64)) == 123144);
  assert(unsigned(zero_extend(0x1e109, 64)) == 123145);
  assert(unsigned(zero_extend(0x1e10a, 64)) == 123146);
  assert(unsigned(zero_extend(0x1e10b, 64)) == 123147);
  assert(unsigned(zero_extend(0x1e10c, 64)) == 123148);
  assert(unsigned(zero_extend(0x1e10d, 64)) == 123149);
  assert(unsigned(zero_extend(0x1e10e, 64)) == 123150);
  assert(unsigned(zero_extend(0x1e10f, 64)) == 123151);
  assert(unsigned(zero_extend(0x1e110, 64)) == 123152);
  assert(unsigned(zero_extend(0x1e111, 64)) == 123153);
  assert(unsigned(zero_extend(0x1e112, 64)) == 123154);
  assert(unsigned(zero_extend(0x1e113, 64)) == 123155);
  assert(unsigned(zero_extend(0x1e114, 64)) == 123156);
  assert(unsigned(zero_extend(0x1e115, 64)) == 123157);
  assert(unsigned(zero_extend(0x1e116, 64)) == 123158);
  assert(unsigned(zero_extend(0x1e117, 64)) == 123159);
  assert(unsigned(zero_extend(0x1e118, 64)) == 123160);
  assert(unsigned(zero_extend(0x1e119, 64)) == 123161);
  assert(unsigned(zero_extend(0x1e11a, 64)) == 123162);
  assert(unsigned(zero_extend(0x1e11b, 64)) == 123163);
  assert(unsigned(zero_extend(0x1e11c, 64)) == 123164);
  assert(unsigned(zero_extend(0x1e11d, 64)) == 123165);
  assert(unsigned(zero_extend(0x1e11e, 64)) == 123166);
  assert(unsigned(zero_extend(0x1e120, 64)) == 123168);
  assert(unsigned(zero_extend(0x1e124, 64)) == 123172);
  assert(unsigned(zero_extend(0x1e128, 64)) == 123176);
  assert(unsigned(zero_extend(0x1e12c, 64)) == 123180);
  assert(unsigned(zero_extend(0x1e130, 64)) == 123184);
  assert(unsigned(zero_extend(0x1e134, 64)) == 123188);
  assert(unsigned(zero_extend(0x1e138, 64)) == 123192);
  assert(unsigned(zero_extend(0x1e13c, 64)) == 123196);
  assert(unsigned(zero_extend(0x1e140, 64)) == 123200);
  assert(unsigned(zero_extend(0x1e141, 64)) == 123201);
  assert(unsigned(zero_extend(0x1e142, 64)) == 123202);
  assert(unsigned(zero_extend(0x1e143, 64)) == 123203);
  assert(unsigned(zero_extend(0x1e144, 64)) == 123204);
  assert(unsigned(zero_extend(0x1e145, 64)) == 123205);
  assert(unsigned(zero_extend(0x1e146, 64)) == 123206);
  assert(unsigned(zero_extend(0x1e147, 64)) == 123207);
  assert(unsigned(zero_extend(0x1e148, 64)) == 123208);
  assert(unsigned(zero_extend(0x1e149, 64)) == 123209);
  assert(unsigned(zero_extend(0x1e14a, 64)) == 123210);
  assert(unsigned(zero_extend(0x1e14b, 64)) == 123211);
  assert(unsigned(zero_extend(0x1e14c, 64)) == 123212);
  assert(unsigned(zero_extend(0x1e14d, 64)) == 123213);
  assert(unsigned(zero_extend(0x1e14e, 64)) == 123214);
  assert(unsigned(zero_extend(0x1e14f, 64)) == 123215);
  assert(unsigned(zero_extend(0x1e150, 64)) == 123216);
  assert(unsigned(zero_extend(0x1e151, 64)) == 123217);
  assert(unsigned(zero_extend(0x1e152, 64)) == 123218);
  assert(unsigned(zero_extend(0x1e153, 64)) == 123219);
  assert(unsigned(zero_extend(0x1e154, 64)) == 123220);
  assert(unsigned(zero_extend(0x1e155, 64)) == 123221);
  assert(unsigned(zero_extend(0x1e156, 64)) == 123222);
  assert(unsigned(zero_extend(0x1e157, 64)) == 123223);
  assert(unsigned(zero_extend(0x1e158, 64)) == 123224);
  assert(unsigned(zero_extend(0x1e159, 64)) == 123225);
  assert(unsigned(zero_extend(0x1e15a, 64)) == 123226);
  assert(unsigned(zero_extend(0x1e15b, 64)) == 123227);
  assert(unsigned(zero_extend(0x1e15c, 64)) == 123228);
  assert(unsigned(zero_extend(0x1e160, 64)) == 123232);
  assert(unsigned(zero_extend(0x1e164, 64)) == 123236);
  assert(unsigned(zero_extend(0x1e168, 64)) == 123240);
  assert(unsigned(zero_extend(0x1e16c, 64)) == 123244);
  assert(unsigned(zero_extend(0x1e170, 64)) == 123248);
  assert(unsigned(zero_extend(0x1e174, 64)) == 123252);
  assert(unsigned(zero_extend(0x1e178, 64)) == 123256);
  assert(unsigned(zero_extend(0x1e17c, 64)) == 123260);
  assert(unsigned(zero_extend(0x1e180, 64)) == 123264);
  assert(unsigned(zero_extend(0x1e184, 64)) == 123268);
  assert(unsigned(zero_extend(0x1e188, 64)) == 123272);
  assert(unsigned(zero_extend(0x1e18c, 64)) == 123276);
  assert(unsigned(zero_extend(0x1e190, 64)) == 123280);
  assert(unsigned(zero_extend(0x1e194, 64)) == 123284);
  assert(unsigned(zero_extend(0x1e198, 64)) == 123288);
  assert(unsigned(zero_extend(0x1e199, 64)) == 123289);
  assert(unsigned(zero_extend(0x1e19a, 64)) == 123290);
  assert(unsigned(zero_extend(0x1e19b, 64)) == 123291);
  assert(unsigned(zero_extend(0x1e19c, 64)) == 123292);
  assert(unsigned(zero_extend(0x1e19d, 64)) == 123293);
  assert(unsigned(zero_extend(0x1e19e, 64)) == 123294);
  assert(unsigned(zero_extend(0x1e19f, 64)) == 123295);
  assert(unsigned(zero_extend(0x1e1a0, 64)) == 123296);
  assert(unsigned(zero_extend(0x1e1a1, 64)) == 123297);
  assert(unsigned(zero_extend(0x1e1a2, 64)) == 123298);
  assert(unsigned(zero_extend(0x1e1a3, 64)) == 123299);
  assert(unsigned(zero_extend(0x1e1a4, 64)) == 123300);
  assert(unsigned(zero_extend(0x1e1a5, 64)) == 123301);
  assert(unsigned(zero_extend(0x1e1a6, 64)) == 123302);
  assert(unsigned(zero_extend(0x1e1a7, 64)) == 123303);
  assert(unsigned(zero_extend(0x1e1a8, 64)) == 123304);
  assert(unsigned(zero_extend(0x1e1a9, 64)) == 123305);
  assert(unsigned(zero_extend(0x1e1aa, 64)) == 123306);
  assert(unsigned(zero_extend(0x1e1ab, 64)) == 123307);
  assert(unsigned(zero_extend(0x1e1ac, 64)) == 123308);
  assert(unsigned(zero_extend(0x1e1ad, 64)) == 123309);
  assert(unsigned(zero_extend(0x1e1ae, 64)) == 123310);
  assert(unsigned(zero_extend(0x1e1af, 64)) == 123311);
  assert(unsigned(zero_extend(0x1e1b0, 64)) == 123312);
  assert(unsigned(zero_extend(0x1e600, 64)) == 124416);
  assert(unsigned(zero_extend(0x1e604, 64)) == 124420);
  assert(unsigned(zero_extend(0x1e608, 64)) == 124424);
  assert(unsigned(zero_extend(0x1e60c, 64)) == 124428);
  assert(unsigned(zero_extend(0x1e610, 64)) == 124432);
  assert(unsigned(zero_extend(0x1e614, 64)) == 124436);
  assert(unsigned(zero_extend(0x1e618, 64)) == 124440);
  assert(unsigned(zero_extend(0x1e61c, 64)) == 124444);
  assert(unsigned(zero_extend(0x1e620, 64)) == 124448);
  assert(unsigned(zero_extend(0x1e624, 64)) == 124452);
  assert(unsigned(zero_extend(0x1e628, 64)) == 124456);
  assert(unsigned(zero_extend(0x1e62c, 64)) == 124460);
  assert(unsigned(zero_extend(0x1e630, 64)) == 124464);
  assert(unsigned(zero_extend(0x1e634, 64)) == 124468);
  assert(unsigned(zero_extend(0x1e638, 64)) == 124472);
  assert(unsigned(zero_extend(0x1e63c, 64)) == 124476);
  assert(unsigned(zero_extend(0x1e640, 64)) == 124480);
  assert(unsigned(zero_extend(0x1e644, 64)) == 124484);
  assert(unsigned(zero_extend(0x1e648, 64)) == 124488);
  assert(unsigned(zero_extend(0x1e64c, 64)) == 124492);
  assert(unsigned(zero_extend(0x1e650, 64)) == 124496);
  assert(unsigned(zero_extend(0x1e658, 64)) == 124504);
  assert(unsigned(zero_extend(0x1e65c, 64)) == 124508);
  assert(unsigned(zero_extend(0x1e660, 64)) == 124512);
  assert(unsigned(zero_extend(0x1e664, 64)) == 124516);
  assert(unsigned(zero_extend(0x1e668, 64)) == 124520);
  assert(unsigned(zero_extend(0x1e66c, 64)) == 124524);
  assert(unsigned(zero_extend(0x1e670, 64)) == 124528);
  assert(unsigned(zero_extend(0x1e674, 64)) == 124532);
  assert(unsigned(zero_extend(0x1e678, 64)) == 124536);
  assert(unsigned(zero_extend(0x1e67c, 64)) == 124540);
  assert(unsigned(zero_extend(0x1e680, 64)) == 124544);
  assert(unsigned(zero_extend(0x1e684, 64)) == 124548);
  assert(unsigned(zero_extend(0x1e688, 64)) == 124552);
  assert(unsigned(zero_extend(0x1e68c, 64)) == 124556);
  assert(unsigned(zero_extend(0x1e690, 64)) == 124560);
  assert(unsigned(zero_extend(0x1e694, 64)) == 124564);
  assert(unsigned(zero_extend(0x1e698, 64)) == 124568);
  assert(unsigned(zero_extend(0x1e69c, 64)) == 124572);
  assert(unsigned(zero_extend(0x1e6a0, 64)) == 124576);
  assert(unsigned(zero_extend(0x1e6a4, 64)) == 124580);
  assert(unsigned(zero_extend(0x1e6a8, 64)) == 124584);
  assert(unsigned(zero_extend(0x1e6ac, 64)) == 124588);
  assert(unsigned(zero_extend(0x1e6b0, 64)) == 124592);
  assert(unsigned(zero_extend(0x1e6b4, 64)) == 124596);
  assert(unsigned(zero_extend(0x1e6b8, 64)) == 124600);
  assert(unsigned(zero_extend(0x1e6bc, 64)) == 124604);
  assert(unsigned(zero_extend(0x1e6c0, 64)) == 124608);
  assert(unsigned(zero_extend(0x1e6c4, 64)) == 124612);
  assert(unsigned(zero_extend(0x1e6c8, 64)) == 124616);
  assert(unsigned(zero_extend(0x1e6cc, 64)) == 124620);
  assert(unsigned(zero_extend(0x1e6d0, 64)) == 124624);
  assert(unsigned(zero_extend(0x1e6d4, 64)) == 124628);
  assert(unsigned(zero_extend(0x1e6d8, 64)) == 124632);
  assert(unsigned(zero_extend(0x1e6dc, 64)) == 124636);
  assert(unsigned(zero_extend(0x1e6e0, 64)) == 124640);
  assert(unsigned(zero_extend(0x1e6e4, 64)) == 124644);
  assert(unsigned(zero_extend(0x1e6e8, 64)) == 124648);
  assert(unsigned(zero_extend(0x1e6ec, 64)) == 124652);
  assert(unsigned(zero_extend(0x1e6f0, 64)) == 124656);
  assert(unsigned(zero_extend(0x1e6f4, 64)) == 124660);
  assert(unsigned(zero_extend(0x1e6f8, 64)) == 124664);
  assert(unsigned(zero_extend(0x1e6fc, 64)) == 124668);
  assert(unsigned(zero_extend(0x1e700, 64)) == 124672);
  assert(unsigned(zero_extend(0x1e704, 64)) == 124676);
  assert(unsigned(zero_extend(0x1e708, 64)) == 124680);
  assert(unsigned(zero_extend(0x1e70c, 64)) == 124684);
  assert(unsigned(zero_extend(0x1e710, 64)) == 124688);
  assert(unsigned(zero_extend(0x1e714, 64)) == 124692);
  assert(unsigned(zero_extend(0x1e718, 64)) == 124696);
  assert(unsigned(zero_extend(0x1e71c, 64)) == 124700);
  assert(unsigned(zero_extend(0x1e720, 64)) == 124704);
  assert(unsigned(zero_extend(0x1e724, 64)) == 124708);
  assert(unsigned(zero_extend(0x1e728, 64)) == 124712);
  assert(unsigned(zero_extend(0x1e72c, 64)) == 124716);
  assert(unsigned(zero_extend(0x1e730, 64)) == 124720);
  assert(unsigned(zero_extend(0x1e734, 64)) == 124724);
  assert(unsigned(zero_extend(0x1e738, 64)) == 124728);
  assert(unsigned(zero_extend(0x1e740, 64)) == 124736);
  assert(unsigned(zero_extend(0x1eb90, 64)) == 125840);
  assert(unsigned(zero_extend(0x1eb94, 64)) == 125844);
  assert(unsigned(zero_extend(0x1eb98, 64)) == 125848);
  assert(unsigned(zero_extend(0x1eb9c, 64)) == 125852);
  assert(unsigned(zero_extend(0x1eba0, 64)) == 125856);
  assert(unsigned(zero_extend(0x1eba4, 64)) == 125860);
  assert(unsigned(zero_extend(0x1eba8, 64)) == 125864);
  assert(unsigned(zero_extend(0x1ebc0, 64)) == 125888);
  assert(unsigned(zero_extend(0x1ebc4, 64)) == 125892);
  assert(unsigned(zero_extend(0x1ebc8, 64)) == 125896);
  assert(unsigned(zero_extend(0x1ebd4, 64)) == 125908);
  assert(unsigned(zero_extend(0x1ebd8, 64)) == 125912);
  assert(unsigned(zero_extend(0x1ebe8, 64)) == 125928);
  assert(unsigned(zero_extend(0x1ebec, 64)) == 125932);
  assert(unsigned(zero_extend(0x1ebf0, 64)) == 125936);
  assert(unsigned(zero_extend(0x1ebf4, 64)) == 125940);
  assert(unsigned(zero_extend(0x1ebf8, 64)) == 125944);
  assert(unsigned(zero_extend(0x1ebfc, 64)) == 125948);
  assert(unsigned(zero_extend(0x1ec00, 64)) == 125952);
  assert(unsigned(zero_extend(0x1ec18, 64)) == 125976);
  assert(unsigned(zero_extend(0x1ec1c, 64)) == 125980);
  assert(unsigned(zero_extend(0x1ec20, 64)) == 125984);
  assert(unsigned(zero_extend(0x1ec24, 64)) == 125988);
  assert(unsigned(zero_extend(0x1ec25, 64)) == 125989);
  assert(unsigned(zero_extend(0x1ec26, 64)) == 125990);
  assert(unsigned(zero_extend(0x1ec27, 64)) == 125991);
  assert(unsigned(zero_extend(0x1ec28, 64)) == 125992);
  assert(unsigned(zero_extend(0x1ec29, 64)) == 125993);
  assert(unsigned(zero_extend(0x1ec2a, 64)) == 125994);
  assert(unsigned(zero_extend(0x1ec2b, 64)) == 125995);
  assert(unsigned(zero_extend(0x1ec2c, 64)) == 125996);
  assert(unsigned(zero_extend(0x1ec2d, 64)) == 125997);
  assert(unsigned(zero_extend(0x1ec2e, 64)) == 125998);
  assert(unsigned(zero_extend(0x1ec2f, 64)) == 125999);
  assert(unsigned(zero_extend(0x1ec30, 64)) == 126000);
  assert(unsigned(zero_extend(0x1ec31, 64)) == 126001);
  assert(unsigned(zero_extend(0x1ec32, 64)) == 126002);
  assert(unsigned(zero_extend(0x1ec33, 64)) == 126003);
  assert(unsigned(zero_extend(0x1ec34, 64)) == 126004);
  assert(unsigned(zero_extend(0x1ec35, 64)) == 126005);
  assert(unsigned(zero_extend(0x1ec36, 64)) == 126006);
  assert(unsigned(zero_extend(0x1ec37, 64)) == 126007);
  assert(unsigned(zero_extend(0x1ec38, 64)) == 126008);
  assert(unsigned(zero_extend(0x1ec39, 64)) == 126009);
  assert(unsigned(zero_extend(0x1ec3a, 64)) == 126010);
  assert(unsigned(zero_extend(0x1ec48, 64)) == 126024);
  assert(unsigned(zero_extend(0x1ec7c, 64)) == 126076);
  assert(unsigned(zero_extend(0x1ec7d, 64)) == 126077);
  assert(unsigned(zero_extend(0x1ec7e, 64)) == 126078);
  assert(unsigned(zero_extend(0x1ec7f, 64)) == 126079);
  assert(unsigned(zero_extend(0x1ec80, 64)) == 126080);
  assert(unsigned(zero_extend(0x1ec81, 64)) == 126081);
  assert(unsigned(zero_extend(0x1ec82, 64)) == 126082);
  assert(unsigned(zero_extend(0x1ec83, 64)) == 126083);
  assert(unsigned(zero_extend(0x1ec84, 64)) == 126084);
  assert(unsigned(zero_extend(0x1ec85, 64)) == 126085);
  assert(unsigned(zero_extend(0x1ec86, 64)) == 126086);
  assert(unsigned(zero_extend(0x1ec87, 64)) == 126087);
  assert(unsigned(zero_extend(0x1ec88, 64)) == 126088);
  assert(unsigned(zero_extend(0x1ec89, 64)) == 126089);
  assert(unsigned(zero_extend(0x1ec8a, 64)) == 126090);
  assert(unsigned(zero_extend(0x1ec8b, 64)) == 126091);
  assert(unsigned(zero_extend(0x1ec8c, 64)) == 126092);
  assert(unsigned(zero_extend(0x1ec8d, 64)) == 126093);
  assert(unsigned(zero_extend(0x1ec8e, 64)) == 126094);
  assert(unsigned(zero_extend(0x1ec8f, 64)) == 126095);
  assert(unsigned(zero_extend(0x1ec90, 64)) == 126096);
  assert(unsigned(zero_extend(0x1ec91, 64)) == 126097);
  assert(unsigned(zero_extend(0x1ec92, 64)) == 126098);
  assert(unsigned(zero_extend(0x1f, 64)) == 31);
  assert(unsigned(zero_extend(0x1f138, 64)) == 127288);
  assert(unsigned(zero_extend(0x1f13c, 64)) == 127292);
  assert(unsigned(zero_extend(0x1f140, 64)) == 127296);
  assert(unsigned(zero_extend(0x1f144, 64)) == 127300);
  assert(unsigned(zero_extend(0x1f148, 64)) == 127304);
  assert(unsigned(zero_extend(0x1f14c, 64)) == 127308);
  assert(unsigned(zero_extend(0x1f150, 64)) == 127312);
  assert(unsigned(zero_extend(0x1f154, 64)) == 127316);
  assert(unsigned(zero_extend(0x1f158, 64)) == 127320);
  assert(unsigned(zero_extend(0x1f15c, 64)) == 127324);
  assert(unsigned(zero_extend(0x1f160, 64)) == 127328);
  assert(unsigned(zero_extend(0x1f190, 64)) == 127376);
  assert(unsigned(zero_extend(0x1f194, 64)) == 127380);
  assert(unsigned(zero_extend(0x1f198, 64)) == 127384);
  assert(unsigned(zero_extend(0x1f19c, 64)) == 127388);
  assert(unsigned(zero_extend(0x1f1a0, 64)) == 127392);
  assert(unsigned(zero_extend(0x1f1a4, 64)) == 127396);
  assert(unsigned(zero_extend(0x1f1a8, 64)) == 127400);
  assert(unsigned(zero_extend(0x1f1ac, 64)) == 127404);
  assert(unsigned(zero_extend(0x1f1b0, 64)) == 127408);
  assert(unsigned(zero_extend(0x1f1b4, 64)) == 127412);
  assert(unsigned(zero_extend(0x1f1b8, 64)) == 127416);
  assert(unsigned(zero_extend(0x1f2d0, 64)) == 127696);
  assert(unsigned(zero_extend(0x1f2d4, 64)) == 127700);
  assert(unsigned(zero_extend(0x1f2d8, 64)) == 127704);
  assert(unsigned(zero_extend(0x1f2dc, 64)) == 127708);
  assert(unsigned(zero_extend(0x1f2e0, 64)) == 127712);
  assert(unsigned(zero_extend(0x1f2e4, 64)) == 127716);
  assert(unsigned(zero_extend(0x1f2e8, 64)) == 127720);
  assert(unsigned(zero_extend(0x1f2ec, 64)) == 127724);
  assert(unsigned(zero_extend(0x1f2f0, 64)) == 127728);
  assert(unsigned(zero_extend(0x1f2f4, 64)) == 127732);
  assert(unsigned(zero_extend(0x1f2f8, 64)) == 127736);
  assert(unsigned(zero_extend(0x1f2fc, 64)) == 127740);
  assert(unsigned(zero_extend(0x1f300, 64)) == 127744);
  assert(unsigned(zero_extend(0x1f304, 64)) == 127748);
  assert(unsigned(zero_extend(0x1f308, 64)) == 127752);
  assert(unsigned(zero_extend(0x1f310, 64)) == 127760);
  assert(unsigned(zero_extend(0x1f328, 64)) == 127784);
  assert(unsigned(zero_extend(0x1f32c, 64)) == 127788);
  assert(unsigned(zero_extend(0x1f330, 64)) == 127792);
  assert(unsigned(zero_extend(0x1f334, 64)) == 127796);
  assert(unsigned(zero_extend(0x1f338, 64)) == 127800);
  assert(unsigned(zero_extend(0x1f33c, 64)) == 127804);
  assert(unsigned(zero_extend(0x1f340, 64)) == 127808);
  assert(unsigned(zero_extend(0x1f344, 64)) == 127812);
  assert(unsigned(zero_extend(0x1f348, 64)) == 127816);
  assert(unsigned(zero_extend(0x1f34c, 64)) == 127820);
  assert(unsigned(zero_extend(0x1f350, 64)) == 127824);
  assert(unsigned(zero_extend(0x1f354, 64)) == 127828);
  assert(unsigned(zero_extend(0x1f358, 64)) == 127832);
  assert(unsigned(zero_extend(0x1f35c, 64)) == 127836);
  assert(unsigned(zero_extend(0x1f360, 64)) == 127840);
  assert(unsigned(zero_extend(0x1f368, 64)) == 127848);
  assert(unsigned(zero_extend(0x1f558, 64)) == 128344);
  assert(unsigned(zero_extend(0x1f55c, 64)) == 128348);
  assert(unsigned(zero_extend(0x1f560, 64)) == 128352);
  assert(unsigned(zero_extend(0x1f564, 64)) == 128356);
  assert(unsigned(zero_extend(0x1f568, 64)) == 128360);
  assert(unsigned(zero_extend(0x1f5a0, 64)) == 128416);
  assert(unsigned(zero_extend(0x1f5a8, 64)) == 128424);
  assert(unsigned(zero_extend(0x1f5b0, 64)) == 128432);
  assert(unsigned(zero_extend(0x1f5b4, 64)) == 128436);
  assert(unsigned(zero_extend(0x1f5b8, 64)) == 128440);
  assert(unsigned(zero_extend(0x1f5bc, 64)) == 128444);
  assert(unsigned(zero_extend(0x1f5c0, 64)) == 128448);
  assert(unsigned(zero_extend(0x1f5f8, 64)) == 128504);
  assert(unsigned(zero_extend(0x1f600, 64)) == 128512);
  assert(unsigned(zero_extend(0x2, 64)) == 2);
  assert(unsigned(zero_extend(0x20, 64)) == 32);
  assert(unsigned(zero_extend(0x200, 64)) == 512);
  assert(unsigned(zero_extend(0x2000, 64)) == 8192);
  assert(unsigned(zero_extend(0x20000, 64)) == 131072);
  assert(unsigned(zero_extend(0x20000000, 64)) == 536870912);
  assert(unsigned(zero_extend(0x208, 64)) == 520);
  assert(unsigned(zero_extend(0x20800, 64)) == 133120);
  assert(unsigned(zero_extend(0x21, 64)) == 33);
  assert(unsigned(zero_extend(0x21468, 64)) == 136296);
  assert(unsigned(zero_extend(0x2146c, 64)) == 136300);
  assert(unsigned(zero_extend(0x21470, 64)) == 136304);
  assert(unsigned(zero_extend(0x21474, 64)) == 136308);
  assert(unsigned(zero_extend(0x21478, 64)) == 136312);
  assert(unsigned(zero_extend(0x2147c, 64)) == 136316);
  assert(unsigned(zero_extend(0x21480, 64)) == 136320);
  assert(unsigned(zero_extend(0x21484, 64)) == 136324);
  assert(unsigned(zero_extend(0x21488, 64)) == 136328);
  assert(unsigned(zero_extend(0x2148c, 64)) == 136332);
  assert(unsigned(zero_extend(0x21490, 64)) == 136336);
  assert(unsigned(zero_extend(0x21494, 64)) == 136340);
  assert(unsigned(zero_extend(0x21498, 64)) == 136344);
  assert(unsigned(zero_extend(0x2149c, 64)) == 136348);
  assert(unsigned(zero_extend(0x214a0, 64)) == 136352);
  assert(unsigned(zero_extend(0x214a4, 64)) == 136356);
  assert(unsigned(zero_extend(0x214a8, 64)) == 136360);
  assert(unsigned(zero_extend(0x214ac, 64)) == 136364);
  assert(unsigned(zero_extend(0x214b0, 64)) == 136368);
  assert(unsigned(zero_extend(0x214b4, 64)) == 136372);
  assert(unsigned(zero_extend(0x214b8, 64)) == 136376);
  assert(unsigned(zero_extend(0x214bc, 64)) == 136380);
  assert(unsigned(zero_extend(0x214c0, 64)) == 136384);
  assert(unsigned(zero_extend(0x214c4, 64)) == 136388);
  assert(unsigned(zero_extend(0x214c8, 64)) == 136392);
  assert(unsigned(zero_extend(0x214cc, 64)) == 136396);
  assert(unsigned(zero_extend(0x214d0, 64)) == 136400);
  assert(unsigned(zero_extend(0x214d4, 64)) == 136404);
  assert(unsigned(zero_extend(0x214d8, 64)) == 136408);
  assert(unsigned(zero_extend(0x214dc, 64)) == 136412);
  assert(unsigned(zero_extend(0x214e0, 64)) == 136416);
  assert(unsigned(zero_extend(0x214e4, 64)) == 136420);
  assert(unsigned(zero_extend(0x214e8, 64)) == 136424);
  assert(unsigned(zero_extend(0x214ec, 64)) == 136428);
  assert(unsigned(zero_extend(0x214f0, 64)) == 136432);
  assert(unsigned(zero_extend(0x214f4, 64)) == 136436);
  assert(unsigned(zero_extend(0x214f8, 64)) == 136440);
  assert(unsigned(zero_extend(0x214fc, 64)) == 136444);
  assert(unsigned(zero_extend(0x21500, 64)) == 136448);
  assert(unsigned(zero_extend(0x21504, 64)) == 136452);
  assert(unsigned(zero_extend(0x21508, 64)) == 136456);
  assert(unsigned(zero_extend(0x2150c, 64)) == 136460);
  assert(unsigned(zero_extend(0x21510, 64)) == 136464);
  assert(unsigned(zero_extend(0x21514, 64)) == 136468);
  assert(unsigned(zero_extend(0x21518, 64)) == 136472);
  assert(unsigned(zero_extend(0x2151c, 64)) == 136476);
  assert(unsigned(zero_extend(0x21520, 64)) == 136480);
  assert(unsigned(zero_extend(0x21524, 64)) == 136484);
  assert(unsigned(zero_extend(0x21528, 64)) == 136488);
  assert(unsigned(zero_extend(0x2152c, 64)) == 136492);
  assert(unsigned(zero_extend(0x21530, 64)) == 136496);
  assert(unsigned(zero_extend(0x21534, 64)) == 136500);
  assert(unsigned(zero_extend(0x21538, 64)) == 136504);
  assert(unsigned(zero_extend(0x2153c, 64)) == 136508);
  assert(unsigned(zero_extend(0x21540, 64)) == 136512);
  assert(unsigned(zero_extend(0x21544, 64)) == 136516);
  assert(unsigned(zero_extend(0x21548, 64)) == 136520);
  assert(unsigned(zero_extend(0x21568, 64)) == 136552);
  assert(unsigned(zero_extend(0x2156c, 64)) == 136556);
  assert(unsigned(zero_extend(0x21570, 64)) == 136560);
  assert(unsigned(zero_extend(0x21574, 64)) == 136564);
  assert(unsigned(zero_extend(0x21578, 64)) == 136568);
  assert(unsigned(zero_extend(0x2157c, 64)) == 136572);
  assert(unsigned(zero_extend(0x21580, 64)) == 136576);
  assert(unsigned(zero_extend(0x21584, 64)) == 136580);
  assert(unsigned(zero_extend(0x21588, 64)) == 136584);
  assert(unsigned(zero_extend(0x2158c, 64)) == 136588);
  assert(unsigned(zero_extend(0x21590, 64)) == 136592);
  assert(unsigned(zero_extend(0x21594, 64)) == 136596);
  assert(unsigned(zero_extend(0x21598, 64)) == 136600);
  assert(unsigned(zero_extend(0x2159c, 64)) == 136604);
  assert(unsigned(zero_extend(0x215a0, 64)) == 136608);
  assert(unsigned(zero_extend(0x215a4, 64)) == 136612);
  assert(unsigned(zero_extend(0x215c0, 64)) == 136640);
  assert(unsigned(zero_extend(0x215c4, 64)) == 136644);
  assert(unsigned(zero_extend(0x215c8, 64)) == 136648);
  assert(unsigned(zero_extend(0x215cc, 64)) == 136652);
  assert(unsigned(zero_extend(0x215d0, 64)) == 136656);
  assert(unsigned(zero_extend(0x215d4, 64)) == 136660);
  assert(unsigned(zero_extend(0x215d8, 64)) == 136664);
  assert(unsigned(zero_extend(0x215dc, 64)) == 136668);
  assert(unsigned(zero_extend(0x215e0, 64)) == 136672);
  assert(unsigned(zero_extend(0x215e4, 64)) == 136676);
  assert(unsigned(zero_extend(0x215e8, 64)) == 136680);
  assert(unsigned(zero_extend(0x215ec, 64)) == 136684);
  assert(unsigned(zero_extend(0x215f0, 64)) == 136688);
  assert(unsigned(zero_extend(0x215f4, 64)) == 136692);
  assert(unsigned(zero_extend(0x215f8, 64)) == 136696);
  assert(unsigned(zero_extend(0x215fc, 64)) == 136700);
  assert(unsigned(zero_extend(0x21680, 64)) == 136832);
  assert(unsigned(zero_extend(0x21684, 64)) == 136836);
  assert(unsigned(zero_extend(0x21688, 64)) == 136840);
  assert(unsigned(zero_extend(0x2168c, 64)) == 136844);
  assert(unsigned(zero_extend(0x21690, 64)) == 136848);
  assert(unsigned(zero_extend(0x21694, 64)) == 136852);
  assert(unsigned(zero_extend(0x21698, 64)) == 136856);
  assert(unsigned(zero_extend(0x2169c, 64)) == 136860);
  assert(unsigned(zero_extend(0x216a0, 64)) == 136864);
  assert(unsigned(zero_extend(0x216a4, 64)) == 136868);
  assert(unsigned(zero_extend(0x216a8, 64)) == 136872);
  assert(unsigned(zero_extend(0x216ac, 64)) == 136876);
  assert(unsigned(zero_extend(0x216b0, 64)) == 136880);
  assert(unsigned(zero_extend(0x216b4, 64)) == 136884);
  assert(unsigned(zero_extend(0x216b8, 64)) == 136888);
  assert(unsigned(zero_extend(0x216d8, 64)) == 136920);
  assert(unsigned(zero_extend(0x216dc, 64)) == 136924);
  assert(unsigned(zero_extend(0x216e0, 64)) == 136928);
  assert(unsigned(zero_extend(0x216e4, 64)) == 136932);
  assert(unsigned(zero_extend(0x216e8, 64)) == 136936);
  assert(unsigned(zero_extend(0x216ec, 64)) == 136940);
  assert(unsigned(zero_extend(0x216f0, 64)) == 136944);
  assert(unsigned(zero_extend(0x216f4, 64)) == 136948);
  assert(unsigned(zero_extend(0x216f8, 64)) == 136952);
  assert(unsigned(zero_extend(0x216fc, 64)) == 136956);
  assert(unsigned(zero_extend(0x21700, 64)) == 136960);
  assert(unsigned(zero_extend(0x21704, 64)) == 136964);
  assert(unsigned(zero_extend(0x21708, 64)) == 136968);
  assert(unsigned(zero_extend(0x2170c, 64)) == 136972);
  assert(unsigned(zero_extend(0x21710, 64)) == 136976);
  assert(unsigned(zero_extend(0x21714, 64)) == 136980);
  assert(unsigned(zero_extend(0x21718, 64)) == 136984);
  assert(unsigned(zero_extend(0x21720, 64)) == 136992);
  assert(unsigned(zero_extend(0x2174c, 64)) == 137036);
  assert(unsigned(zero_extend(0x21750, 64)) == 137040);
  assert(unsigned(zero_extend(0x21751, 64)) == 137041);
  assert(unsigned(zero_extend(0x21752, 64)) == 137042);
  assert(unsigned(zero_extend(0x21753, 64)) == 137043);
  assert(unsigned(zero_extend(0x21754, 64)) == 137044);
  assert(unsigned(zero_extend(0x21755, 64)) == 137045);
  assert(unsigned(zero_extend(0x21756, 64)) == 137046);
  assert(unsigned(zero_extend(0x21757, 64)) == 137047);
  assert(unsigned(zero_extend(0x21758, 64)) == 137048);
  assert(unsigned(zero_extend(0x21759, 64)) == 137049);
  assert(unsigned(zero_extend(0x2175a, 64)) == 137050);
  assert(unsigned(zero_extend(0x2175b, 64)) == 137051);
  assert(unsigned(zero_extend(0x2175c, 64)) == 137052);
  assert(unsigned(zero_extend(0x2175d, 64)) == 137053);
  assert(unsigned(zero_extend(0x2175e, 64)) == 137054);
  assert(unsigned(zero_extend(0x2175f, 64)) == 137055);
  assert(unsigned(zero_extend(0x21760, 64)) == 137056);
  assert(unsigned(zero_extend(0x21761, 64)) == 137057);
  assert(unsigned(zero_extend(0x21764, 64)) == 137060);
  assert(unsigned(zero_extend(0x21765, 64)) == 137061);
  assert(unsigned(zero_extend(0x21766, 64)) == 137062);
  assert(unsigned(zero_extend(0x21767, 64)) == 137063);
  assert(unsigned(zero_extend(0x21768, 64)) == 137064);
  assert(unsigned(zero_extend(0x21769, 64)) == 137065);
  assert(unsigned(zero_extend(0x2176a, 64)) == 137066);
  assert(unsigned(zero_extend(0x2176c, 64)) == 137068);
  assert(unsigned(zero_extend(0x21770, 64)) == 137072);
  assert(unsigned(zero_extend(0x21778, 64)) == 137080);
  assert(unsigned(zero_extend(0x217a8, 64)) == 137128);
  assert(unsigned(zero_extend(0x217a9, 64)) == 137129);
  assert(unsigned(zero_extend(0x217aa, 64)) == 137130);
  assert(unsigned(zero_extend(0x217ab, 64)) == 137131);
  assert(unsigned(zero_extend(0x217ac, 64)) == 137132);
  assert(unsigned(zero_extend(0x217ad, 64)) == 137133);
  assert(unsigned(zero_extend(0x217ae, 64)) == 137134);
  assert(unsigned(zero_extend(0x217af, 64)) == 137135);
  assert(unsigned(zero_extend(0x217b0, 64)) == 137136);
  assert(unsigned(zero_extend(0x217b1, 64)) == 137137);
  assert(unsigned(zero_extend(0x217b2, 64)) == 137138);
  assert(unsigned(zero_extend(0x217b3, 64)) == 137139);
  assert(unsigned(zero_extend(0x217b4, 64)) == 137140);
  assert(unsigned(zero_extend(0x217b5, 64)) == 137141);
  assert(unsigned(zero_extend(0x217b6, 64)) == 137142);
  assert(unsigned(zero_extend(0x217b7, 64)) == 137143);
  assert(unsigned(zero_extend(0x217b8, 64)) == 137144);
  assert(unsigned(zero_extend(0x217b9, 64)) == 137145);
  assert(unsigned(zero_extend(0x217bc, 64)) == 137148);
  assert(unsigned(zero_extend(0x217bd, 64)) == 137149);
  assert(unsigned(zero_extend(0x217be, 64)) == 137150);
  assert(unsigned(zero_extend(0x217bf, 64)) == 137151);
  assert(unsigned(zero_extend(0x217c0, 64)) == 137152);
  assert(unsigned(zero_extend(0x217c1, 64)) == 137153);
  assert(unsigned(zero_extend(0x217c2, 64)) == 137154);
  assert(unsigned(zero_extend(0x21820, 64)) == 137248);
  assert(unsigned(zero_extend(0x21824, 64)) == 137252);
  assert(unsigned(zero_extend(0x21828, 64)) == 137256);
  assert(unsigned(zero_extend(0x2182c, 64)) == 137260);
  assert(unsigned(zero_extend(0x21830, 64)) == 137264);
  assert(unsigned(zero_extend(0x21834, 64)) == 137268);
  assert(unsigned(zero_extend(0x21838, 64)) == 137272);
  assert(unsigned(zero_extend(0x2183c, 64)) == 137276);
  assert(unsigned(zero_extend(0x21840, 64)) == 137280);
  assert(unsigned(zero_extend(0x21844, 64)) == 137284);
  assert(unsigned(zero_extend(0x21848, 64)) == 137288);
  assert(unsigned(zero_extend(0x2184c, 64)) == 137292);
  assert(unsigned(zero_extend(0x21850, 64)) == 137296);
  assert(unsigned(zero_extend(0x21854, 64)) == 137300);
  assert(unsigned(zero_extend(0x21858, 64)) == 137304);
  assert(unsigned(zero_extend(0x2185c, 64)) == 137308);
  assert(unsigned(zero_extend(0x21860, 64)) == 137312);
  assert(unsigned(zero_extend(0x21864, 64)) == 137316);
  assert(unsigned(zero_extend(0x21868, 64)) == 137320);
  assert(unsigned(zero_extend(0x2186c, 64)) == 137324);
  assert(unsigned(zero_extend(0x21870, 64)) == 137328);
  assert(unsigned(zero_extend(0x21874, 64)) == 137332);
  assert(unsigned(zero_extend(0x21878, 64)) == 137336);
  assert(unsigned(zero_extend(0x2187c, 64)) == 137340);
  assert(unsigned(zero_extend(0x21880, 64)) == 137344);
  assert(unsigned(zero_extend(0x21884, 64)) == 137348);
  assert(unsigned(zero_extend(0x21888, 64)) == 137352);
  assert(unsigned(zero_extend(0x2188c, 64)) == 137356);
  assert(unsigned(zero_extend(0x21890, 64)) == 137360);
  assert(unsigned(zero_extend(0x21894, 64)) == 137364);
  assert(unsigned(zero_extend(0x21898, 64)) == 137368);
  assert(unsigned(zero_extend(0x2189c, 64)) == 137372);
  assert(unsigned(zero_extend(0x218a0, 64)) == 137376);
  assert(unsigned(zero_extend(0x218a4, 64)) == 137380);
  assert(unsigned(zero_extend(0x218a8, 64)) == 137384);
  assert(unsigned(zero_extend(0x218ac, 64)) == 137388);
  assert(unsigned(zero_extend(0x218b0, 64)) == 137392);
  assert(unsigned(zero_extend(0x218b4, 64)) == 137396);
  assert(unsigned(zero_extend(0x218b8, 64)) == 137400);
  assert(unsigned(zero_extend(0x218bc, 64)) == 137404);
  assert(unsigned(zero_extend(0x218c0, 64)) == 137408);
  assert(unsigned(zero_extend(0x218c4, 64)) == 137412);
  assert(unsigned(zero_extend(0x218c8, 64)) == 137416);
  assert(unsigned(zero_extend(0x218cc, 64)) == 137420);
  assert(unsigned(zero_extend(0x218d0, 64)) == 137424);
  assert(unsigned(zero_extend(0x218d4, 64)) == 137428);
  assert(unsigned(zero_extend(0x218d8, 64)) == 137432);
  assert(unsigned(zero_extend(0x218dc, 64)) == 137436);
  assert(unsigned(zero_extend(0x218e0, 64)) == 137440);
  assert(unsigned(zero_extend(0x218e4, 64)) == 137444);
  assert(unsigned(zero_extend(0x218e8, 64)) == 137448);
  assert(unsigned(zero_extend(0x218ec, 64)) == 137452);
  assert(unsigned(zero_extend(0x218f0, 64)) == 137456);
  assert(unsigned(zero_extend(0x218f4, 64)) == 137460);
  assert(unsigned(zero_extend(0x218f8, 64)) == 137464);
  assert(unsigned(zero_extend(0x218fc, 64)) == 137468);
  assert(unsigned(zero_extend(0x21900, 64)) == 137472);
  assert(unsigned(zero_extend(0x21904, 64)) == 137476);
  assert(unsigned(zero_extend(0x21908, 64)) == 137480);
  assert(unsigned(zero_extend(0x2190c, 64)) == 137484);
  assert(unsigned(zero_extend(0x21910, 64)) == 137488);
  assert(unsigned(zero_extend(0x21914, 64)) == 137492);
  assert(unsigned(zero_extend(0x21918, 64)) == 137496);
  assert(unsigned(zero_extend(0x2191c, 64)) == 137500);
  assert(unsigned(zero_extend(0x21920, 64)) == 137504);
  assert(unsigned(zero_extend(0x21924, 64)) == 137508);
  assert(unsigned(zero_extend(0x21928, 64)) == 137512);
  assert(unsigned(zero_extend(0x2192c, 64)) == 137516);
  assert(unsigned(zero_extend(0x21930, 64)) == 137520);
  assert(unsigned(zero_extend(0x21934, 64)) == 137524);
  assert(unsigned(zero_extend(0x21938, 64)) == 137528);
  assert(unsigned(zero_extend(0x2193c, 64)) == 137532);
  assert(unsigned(zero_extend(0x21940, 64)) == 137536);
  assert(unsigned(zero_extend(0x21944, 64)) == 137540);
  assert(unsigned(zero_extend(0x21948, 64)) == 137544);
  assert(unsigned(zero_extend(0x2194c, 64)) == 137548);
  assert(unsigned(zero_extend(0x21950, 64)) == 137552);
  assert(unsigned(zero_extend(0x21954, 64)) == 137556);
  assert(unsigned(zero_extend(0x21958, 64)) == 137560);
  assert(unsigned(zero_extend(0x2195c, 64)) == 137564);
  assert(unsigned(zero_extend(0x21960, 64)) == 137568);
  assert(unsigned(zero_extend(0x21964, 64)) == 137572);
  assert(unsigned(zero_extend(0x21968, 64)) == 137576);
  assert(unsigned(zero_extend(0x2196c, 64)) == 137580);
  assert(unsigned(zero_extend(0x2196d, 64)) == 137581);
  assert(unsigned(zero_extend(0x2196e, 64)) == 137582);
  assert(unsigned(zero_extend(0x2196f, 64)) == 137583);
  assert(unsigned(zero_extend(0x21970, 64)) == 137584);
  assert(unsigned(zero_extend(0x21971, 64)) == 137585);
  assert(unsigned(zero_extend(0x21972, 64)) == 137586);
  assert(unsigned(zero_extend(0x21973, 64)) == 137587);
  assert(unsigned(zero_extend(0x21974, 64)) == 137588);
  assert(unsigned(zero_extend(0x21975, 64)) == 137589);
  assert(unsigned(zero_extend(0x21976, 64)) == 137590);
  assert(unsigned(zero_extend(0x21977, 64)) == 137591);
  assert(unsigned(zero_extend(0x21978, 64)) == 137592);
  assert(unsigned(zero_extend(0x21979, 64)) == 137593);
  assert(unsigned(zero_extend(0x2197a, 64)) == 137594);
  assert(unsigned(zero_extend(0x2197b, 64)) == 137595);
  assert(unsigned(zero_extend(0x2197c, 64)) == 137596);
  assert(unsigned(zero_extend(0x2197d, 64)) == 137597);
  assert(unsigned(zero_extend(0x2197e, 64)) == 137598);
  assert(unsigned(zero_extend(0x2197f, 64)) == 137599);
  assert(unsigned(zero_extend(0x21980, 64)) == 137600);
  assert(unsigned(zero_extend(0x21981, 64)) == 137601);
  assert(unsigned(zero_extend(0x21982, 64)) == 137602);
  assert(unsigned(zero_extend(0x21983, 64)) == 137603);
  assert(unsigned(zero_extend(0x21984, 64)) == 137604);
  assert(unsigned(zero_extend(0x21988, 64)) == 137608);
  assert(unsigned(zero_extend(0x2198c, 64)) == 137612);
  assert(unsigned(zero_extend(0x21990, 64)) == 137616);
  assert(unsigned(zero_extend(0x21994, 64)) == 137620);
  assert(unsigned(zero_extend(0x21998, 64)) == 137624);
  assert(unsigned(zero_extend(0x2199c, 64)) == 137628);
  assert(unsigned(zero_extend(0x219a0, 64)) == 137632);
  assert(unsigned(zero_extend(0x219a4, 64)) == 137636);
  assert(unsigned(zero_extend(0x219a8, 64)) == 137640);
  assert(unsigned(zero_extend(0x219ac, 64)) == 137644);
  assert(unsigned(zero_extend(0x219b0, 64)) == 137648);
  assert(unsigned(zero_extend(0x219b4, 64)) == 137652);
  assert(unsigned(zero_extend(0x219b8, 64)) == 137656);
  assert(unsigned(zero_extend(0x219bc, 64)) == 137660);
  assert(unsigned(zero_extend(0x219c0, 64)) == 137664);
  assert(unsigned(zero_extend(0x219c4, 64)) == 137668);
  assert(unsigned(zero_extend(0x219c5, 64)) == 137669);
  assert(unsigned(zero_extend(0x219c6, 64)) == 137670);
  assert(unsigned(zero_extend(0x219c7, 64)) == 137671);
  assert(unsigned(zero_extend(0x219c8, 64)) == 137672);
  assert(unsigned(zero_extend(0x219c9, 64)) == 137673);
  assert(unsigned(zero_extend(0x219ca, 64)) == 137674);
  assert(unsigned(zero_extend(0x219cb, 64)) == 137675);
  assert(unsigned(zero_extend(0x219cc, 64)) == 137676);
  assert(unsigned(zero_extend(0x219cd, 64)) == 137677);
  assert(unsigned(zero_extend(0x219ce, 64)) == 137678);
  assert(unsigned(zero_extend(0x219cf, 64)) == 137679);
  assert(unsigned(zero_extend(0x219d0, 64)) == 137680);
  assert(unsigned(zero_extend(0x219d1, 64)) == 137681);
  assert(unsigned(zero_extend(0x219d2, 64)) == 137682);
  assert(unsigned(zero_extend(0x219d3, 64)) == 137683);
  assert(unsigned(zero_extend(0x219d4, 64)) == 137684);
  assert(unsigned(zero_extend(0x219d5, 64)) == 137685);
  assert(unsigned(zero_extend(0x219d6, 64)) == 137686);
  assert(unsigned(zero_extend(0x219d7, 64)) == 137687);
  assert(unsigned(zero_extend(0x219d8, 64)) == 137688);
  assert(unsigned(zero_extend(0x219d9, 64)) == 137689);
  assert(unsigned(zero_extend(0x219da, 64)) == 137690);
  assert(unsigned(zero_extend(0x219db, 64)) == 137691);
  assert(unsigned(zero_extend(0x219dc, 64)) == 137692);
  assert(unsigned(zero_extend(0x219e0, 64)) == 137696);
  assert(unsigned(zero_extend(0x219e4, 64)) == 137700);
  assert(unsigned(zero_extend(0x219e8, 64)) == 137704);
  assert(unsigned(zero_extend(0x219ec, 64)) == 137708);
  assert(unsigned(zero_extend(0x219f0, 64)) == 137712);
  assert(unsigned(zero_extend(0x219f4, 64)) == 137716);
  assert(unsigned(zero_extend(0x219f8, 64)) == 137720);
  assert(unsigned(zero_extend(0x219fc, 64)) == 137724);
  assert(unsigned(zero_extend(0x21a00, 64)) == 137728);
  assert(unsigned(zero_extend(0x21a04, 64)) == 137732);
  assert(unsigned(zero_extend(0x21a08, 64)) == 137736);
  assert(unsigned(zero_extend(0x21a0c, 64)) == 137740);
  assert(unsigned(zero_extend(0x21a10, 64)) == 137744);
  assert(unsigned(zero_extend(0x21a14, 64)) == 137748);
  assert(unsigned(zero_extend(0x21a18, 64)) == 137752);
  assert(unsigned(zero_extend(0x21a1c, 64)) == 137756);
  assert(unsigned(zero_extend(0x21a20, 64)) == 137760);
  assert(unsigned(zero_extend(0x21a24, 64)) == 137764);
  assert(unsigned(zero_extend(0x21a28, 64)) == 137768);
  assert(unsigned(zero_extend(0x21a2c, 64)) == 137772);
  assert(unsigned(zero_extend(0x21a30, 64)) == 137776);
  assert(unsigned(zero_extend(0x21a34, 64)) == 137780);
  assert(unsigned(zero_extend(0x21a38, 64)) == 137784);
  assert(unsigned(zero_extend(0x21a3c, 64)) == 137788);
  assert(unsigned(zero_extend(0x21a40, 64)) == 137792);
  assert(unsigned(zero_extend(0x21a44, 64)) == 137796);
  assert(unsigned(zero_extend(0x21a48, 64)) == 137800);
  assert(unsigned(zero_extend(0x21a4c, 64)) == 137804);
  assert(unsigned(zero_extend(0x21a50, 64)) == 137808);
  assert(unsigned(zero_extend(0x21a54, 64)) == 137812);
  assert(unsigned(zero_extend(0x21a58, 64)) == 137816);
  assert(unsigned(zero_extend(0x21a5c, 64)) == 137820);
  assert(unsigned(zero_extend(0x21a60, 64)) == 137824);
  assert(unsigned(zero_extend(0x21a64, 64)) == 137828);
  assert(unsigned(zero_extend(0x21a68, 64)) == 137832);
  assert(unsigned(zero_extend(0x21a6c, 64)) == 137836);
  assert(unsigned(zero_extend(0x21a70, 64)) == 137840);
  assert(unsigned(zero_extend(0x21a74, 64)) == 137844);
  assert(unsigned(zero_extend(0x21a78, 64)) == 137848);
  assert(unsigned(zero_extend(0x21a7c, 64)) == 137852);
  assert(unsigned(zero_extend(0x21a80, 64)) == 137856);
  assert(unsigned(zero_extend(0x21a84, 64)) == 137860);
  assert(unsigned(zero_extend(0x21a88, 64)) == 137864);
  assert(unsigned(zero_extend(0x21a8c, 64)) == 137868);
  assert(unsigned(zero_extend(0x21a90, 64)) == 137872);
  assert(unsigned(zero_extend(0x21a91, 64)) == 137873);
  assert(unsigned(zero_extend(0x21a92, 64)) == 137874);
  assert(unsigned(zero_extend(0x21a93, 64)) == 137875);
  assert(unsigned(zero_extend(0x21a94, 64)) == 137876);
  assert(unsigned(zero_extend(0x21a95, 64)) == 137877);
  assert(unsigned(zero_extend(0x21a96, 64)) == 137878);
  assert(unsigned(zero_extend(0x21a97, 64)) == 137879);
  assert(unsigned(zero_extend(0x21a98, 64)) == 137880);
  assert(unsigned(zero_extend(0x21a99, 64)) == 137881);
  assert(unsigned(zero_extend(0x21a9a, 64)) == 137882);
  assert(unsigned(zero_extend(0x21a9b, 64)) == 137883);
  assert(unsigned(zero_extend(0x21a9c, 64)) == 137884);
  assert(unsigned(zero_extend(0x21a9d, 64)) == 137885);
  assert(unsigned(zero_extend(0x21a9e, 64)) == 137886);
  assert(unsigned(zero_extend(0x21a9f, 64)) == 137887);
  assert(unsigned(zero_extend(0x21aa0, 64)) == 137888);
  assert(unsigned(zero_extend(0x21aa1, 64)) == 137889);
  assert(unsigned(zero_extend(0x21aa2, 64)) == 137890);
  assert(unsigned(zero_extend(0x21aa3, 64)) == 137891);
  assert(unsigned(zero_extend(0x21aa4, 64)) == 137892);
  assert(unsigned(zero_extend(0x21aa5, 64)) == 137893);
  assert(unsigned(zero_extend(0x21aa6, 64)) == 137894);
  assert(unsigned(zero_extend(0x21aa7, 64)) == 137895);
  assert(unsigned(zero_extend(0x21aa8, 64)) == 137896);
  assert(unsigned(zero_extend(0x21aa9, 64)) == 137897);
  assert(unsigned(zero_extend(0x21aaa, 64)) == 137898);
  assert(unsigned(zero_extend(0x21ae0, 64)) == 137952);
  assert(unsigned(zero_extend(0x21ae8, 64)) == 137960);
  assert(unsigned(zero_extend(0x21ae9, 64)) == 137961);
  assert(unsigned(zero_extend(0x21aea, 64)) == 137962);
  assert(unsigned(zero_extend(0x21aeb, 64)) == 137963);
  assert(unsigned(zero_extend(0x21aec, 64)) == 137964);
  assert(unsigned(zero_extend(0x21aed, 64)) == 137965);
  assert(unsigned(zero_extend(0x21aee, 64)) == 137966);
  assert(unsigned(zero_extend(0x21aef, 64)) == 137967);
  assert(unsigned(zero_extend(0x21af0, 64)) == 137968);
  assert(unsigned(zero_extend(0x21af1, 64)) == 137969);
  assert(unsigned(zero_extend(0x21af2, 64)) == 137970);
  assert(unsigned(zero_extend(0x21af3, 64)) == 137971);
  assert(unsigned(zero_extend(0x21af4, 64)) == 137972);
  assert(unsigned(zero_extend(0x21af5, 64)) == 137973);
  assert(unsigned(zero_extend(0x21af6, 64)) == 137974);
  assert(unsigned(zero_extend(0x21af7, 64)) == 137975);
  assert(unsigned(zero_extend(0x21af8, 64)) == 137976);
  assert(unsigned(zero_extend(0x21af9, 64)) == 137977);
  assert(unsigned(zero_extend(0x21afa, 64)) == 137978);
  assert(unsigned(zero_extend(0x21afb, 64)) == 137979);
  assert(unsigned(zero_extend(0x21afc, 64)) == 137980);
  assert(unsigned(zero_extend(0x21afd, 64)) == 137981);
  assert(unsigned(zero_extend(0x21afe, 64)) == 137982);
  assert(unsigned(zero_extend(0x21aff, 64)) == 137983);
  assert(unsigned(zero_extend(0x21b00, 64)) == 137984);
  assert(unsigned(zero_extend(0x21b01, 64)) == 137985);
  assert(unsigned(zero_extend(0x21b02, 64)) == 137986);
  assert(unsigned(zero_extend(0x21c08, 64)) == 138248);
  assert(unsigned(zero_extend(0x21c0c, 64)) == 138252);
  assert(unsigned(zero_extend(0x21c10, 64)) == 138256);
  assert(unsigned(zero_extend(0x21c14, 64)) == 138260);
  assert(unsigned(zero_extend(0x21c18, 64)) == 138264);
  assert(unsigned(zero_extend(0x21c1c, 64)) == 138268);
  assert(unsigned(zero_extend(0x21c20, 64)) == 138272);
  assert(unsigned(zero_extend(0x21c24, 64)) == 138276);
  assert(unsigned(zero_extend(0x21c28, 64)) == 138280);
  assert(unsigned(zero_extend(0x21c2c, 64)) == 138284);
  assert(unsigned(zero_extend(0x21c30, 64)) == 138288);
  assert(unsigned(zero_extend(0x21c34, 64)) == 138292);
  assert(unsigned(zero_extend(0x21c38, 64)) == 138296);
  assert(unsigned(zero_extend(0x21c3c, 64)) == 138300);
  assert(unsigned(zero_extend(0x21c40, 64)) == 138304);
  assert(unsigned(zero_extend(0x21c44, 64)) == 138308);
  assert(unsigned(zero_extend(0x21c48, 64)) == 138312);
  assert(unsigned(zero_extend(0x21c4c, 64)) == 138316);
  assert(unsigned(zero_extend(0x21c50, 64)) == 138320);
  assert(unsigned(zero_extend(0x21c54, 64)) == 138324);
  assert(unsigned(zero_extend(0x21c58, 64)) == 138328);
  assert(unsigned(zero_extend(0x21c5c, 64)) == 138332);
  assert(unsigned(zero_extend(0x21c60, 64)) == 138336);
  assert(unsigned(zero_extend(0x21c64, 64)) == 138340);
  assert(unsigned(zero_extend(0x21c68, 64)) == 138344);
  assert(unsigned(zero_extend(0x21c6c, 64)) == 138348);
  assert(unsigned(zero_extend(0x21c70, 64)) == 138352);
  assert(unsigned(zero_extend(0x21c74, 64)) == 138356);
  assert(unsigned(zero_extend(0x21c78, 64)) == 138360);
  assert(unsigned(zero_extend(0x21c7c, 64)) == 138364);
  assert(unsigned(zero_extend(0x21c80, 64)) == 138368);
  assert(unsigned(zero_extend(0x21c84, 64)) == 138372);
  assert(unsigned(zero_extend(0x21c88, 64)) == 138376);
  assert(unsigned(zero_extend(0x21c8c, 64)) == 138380);
  assert(unsigned(zero_extend(0x21c90, 64)) == 138384);
  assert(unsigned(zero_extend(0x21c94, 64)) == 138388);
  assert(unsigned(zero_extend(0x21c98, 64)) == 138392);
  assert(unsigned(zero_extend(0x21c9c, 64)) == 138396);
  assert(unsigned(zero_extend(0x21ca0, 64)) == 138400);
  assert(unsigned(zero_extend(0x21ca4, 64)) == 138404);
  assert(unsigned(zero_extend(0x21ca8, 64)) == 138408);
  assert(unsigned(zero_extend(0x21cac, 64)) == 138412);
  assert(unsigned(zero_extend(0x21cb0, 64)) == 138416);
  assert(unsigned(zero_extend(0x21cb4, 64)) == 138420);
  assert(unsigned(zero_extend(0x21cb8, 64)) == 138424);
  assert(unsigned(zero_extend(0x21cbc, 64)) == 138428);
  assert(unsigned(zero_extend(0x21cc0, 64)) == 138432);
  assert(unsigned(zero_extend(0x21cc4, 64)) == 138436);
  assert(unsigned(zero_extend(0x21cc8, 64)) == 138440);
  assert(unsigned(zero_extend(0x21ccc, 64)) == 138444);
  assert(unsigned(zero_extend(0x21cd0, 64)) == 138448);
  assert(unsigned(zero_extend(0x21cd4, 64)) == 138452);
  assert(unsigned(zero_extend(0x21cd8, 64)) == 138456);
  assert(unsigned(zero_extend(0x21cdc, 64)) == 138460);
  assert(unsigned(zero_extend(0x21ce0, 64)) == 138464);
  assert(unsigned(zero_extend(0x21ce4, 64)) == 138468);
  assert(unsigned(zero_extend(0x21ce8, 64)) == 138472);
  assert(unsigned(zero_extend(0x21cec, 64)) == 138476);
  assert(unsigned(zero_extend(0x21cf0, 64)) == 138480);
  assert(unsigned(zero_extend(0x21cf4, 64)) == 138484);
  assert(unsigned(zero_extend(0x21cf8, 64)) == 138488);
  assert(unsigned(zero_extend(0x21cfc, 64)) == 138492);
  assert(unsigned(zero_extend(0x21d00, 64)) == 138496);
  assert(unsigned(zero_extend(0x21d04, 64)) == 138500);
  assert(unsigned(zero_extend(0x21d08, 64)) == 138504);
  assert(unsigned(zero_extend(0x21d09, 64)) == 138505);
  assert(unsigned(zero_extend(0x21d0a, 64)) == 138506);
  assert(unsigned(zero_extend(0x21d0b, 64)) == 138507);
  assert(unsigned(zero_extend(0x21d0c, 64)) == 138508);
  assert(unsigned(zero_extend(0x21d0d, 64)) == 138509);
  assert(unsigned(zero_extend(0x21d0e, 64)) == 138510);
  assert(unsigned(zero_extend(0x21d0f, 64)) == 138511);
  assert(unsigned(zero_extend(0x21d10, 64)) == 138512);
  assert(unsigned(zero_extend(0x21d11, 64)) == 138513);
  assert(unsigned(zero_extend(0x21d14, 64)) == 138516);
  assert(unsigned(zero_extend(0x21d15, 64)) == 138517);
  assert(unsigned(zero_extend(0x21d16, 64)) == 138518);
  assert(unsigned(zero_extend(0x21d17, 64)) == 138519);
  assert(unsigned(zero_extend(0x21d18, 64)) == 138520);
  assert(unsigned(zero_extend(0x21d19, 64)) == 138521);
  assert(unsigned(zero_extend(0x21d1a, 64)) == 138522);
  assert(unsigned(zero_extend(0x21d1b, 64)) == 138523);
  assert(unsigned(zero_extend(0x21d1c, 64)) == 138524);
  assert(unsigned(zero_extend(0x21d1d, 64)) == 138525);
  assert(unsigned(zero_extend(0x21d1e, 64)) == 138526);
  assert(unsigned(zero_extend(0x21d1f, 64)) == 138527);
  assert(unsigned(zero_extend(0x21d20, 64)) == 138528);
  assert(unsigned(zero_extend(0x21d21, 64)) == 138529);
  assert(unsigned(zero_extend(0x21d22, 64)) == 138530);
  assert(unsigned(zero_extend(0x21d23, 64)) == 138531);
  assert(unsigned(zero_extend(0x21d24, 64)) == 138532);
  assert(unsigned(zero_extend(0x21d25, 64)) == 138533);
  assert(unsigned(zero_extend(0x21d26, 64)) == 138534);
  assert(unsigned(zero_extend(0x21d27, 64)) == 138535);
  assert(unsigned(zero_extend(0x21d28, 64)) == 138536);
  assert(unsigned(zero_extend(0x21d29, 64)) == 138537);
  assert(unsigned(zero_extend(0x21d2a, 64)) == 138538);
  assert(unsigned(zero_extend(0x21d2b, 64)) == 138539);
  assert(unsigned(zero_extend(0x21d2c, 64)) == 138540);
  assert(unsigned(zero_extend(0x21d2d, 64)) == 138541);
  assert(unsigned(zero_extend(0x21d30, 64)) == 138544);
  assert(unsigned(zero_extend(0x21d31, 64)) == 138545);
  assert(unsigned(zero_extend(0x21d32, 64)) == 138546);
  assert(unsigned(zero_extend(0x21d33, 64)) == 138547);
  assert(unsigned(zero_extend(0x21d34, 64)) == 138548);
  assert(unsigned(zero_extend(0x21d35, 64)) == 138549);
  assert(unsigned(zero_extend(0x21d36, 64)) == 138550);
  assert(unsigned(zero_extend(0x21d37, 64)) == 138551);
  assert(unsigned(zero_extend(0x21d38, 64)) == 138552);
  assert(unsigned(zero_extend(0x21d39, 64)) == 138553);
  assert(unsigned(zero_extend(0x21d3c, 64)) == 138556);
  assert(unsigned(zero_extend(0x21d3d, 64)) == 138557);
  assert(unsigned(zero_extend(0x21d3e, 64)) == 138558);
  assert(unsigned(zero_extend(0x21d3f, 64)) == 138559);
  assert(unsigned(zero_extend(0x21d40, 64)) == 138560);
  assert(unsigned(zero_extend(0x21d41, 64)) == 138561);
  assert(unsigned(zero_extend(0x21d42, 64)) == 138562);
  assert(unsigned(zero_extend(0x21d43, 64)) == 138563);
  assert(unsigned(zero_extend(0x21d44, 64)) == 138564);
  assert(unsigned(zero_extend(0x21d45, 64)) == 138565);
  assert(unsigned(zero_extend(0x21d48, 64)) == 138568);
  assert(unsigned(zero_extend(0x21d49, 64)) == 138569);
  assert(unsigned(zero_extend(0x21d4a, 64)) == 138570);
  assert(unsigned(zero_extend(0x21d4b, 64)) == 138571);
  assert(unsigned(zero_extend(0x21d4c, 64)) == 138572);
  assert(unsigned(zero_extend(0x21d4d, 64)) == 138573);
  assert(unsigned(zero_extend(0x21d4e, 64)) == 138574);
  assert(unsigned(zero_extend(0x21d4f, 64)) == 138575);
  assert(unsigned(zero_extend(0x21d50, 64)) == 138576);
  assert(unsigned(zero_extend(0x21d51, 64)) == 138577);
  assert(unsigned(zero_extend(0x21d54, 64)) == 138580);
  assert(unsigned(zero_extend(0x21d55, 64)) == 138581);
  assert(unsigned(zero_extend(0x21d56, 64)) == 138582);
  assert(unsigned(zero_extend(0x21d57, 64)) == 138583);
  assert(unsigned(zero_extend(0x21d58, 64)) == 138584);
  assert(unsigned(zero_extend(0x21d59, 64)) == 138585);
  assert(unsigned(zero_extend(0x21d5a, 64)) == 138586);
  assert(unsigned(zero_extend(0x21d5b, 64)) == 138587);
  assert(unsigned(zero_extend(0x21d5c, 64)) == 138588);
  assert(unsigned(zero_extend(0x21d5d, 64)) == 138589);
  assert(unsigned(zero_extend(0x21d60, 64)) == 138592);
  assert(unsigned(zero_extend(0x21d61, 64)) == 138593);
  assert(unsigned(zero_extend(0x21d62, 64)) == 138594);
  assert(unsigned(zero_extend(0x21d63, 64)) == 138595);
  assert(unsigned(zero_extend(0x21d64, 64)) == 138596);
  assert(unsigned(zero_extend(0x21d65, 64)) == 138597);
  assert(unsigned(zero_extend(0x21d66, 64)) == 138598);
  assert(unsigned(zero_extend(0x21d67, 64)) == 138599);
  assert(unsigned(zero_extend(0x21d68, 64)) == 138600);
  assert(unsigned(zero_extend(0x21d69, 64)) == 138601);
  assert(unsigned(zero_extend(0x21d6c, 64)) == 138604);
  assert(unsigned(zero_extend(0x21d6d, 64)) == 138605);
  assert(unsigned(zero_extend(0x21d6e, 64)) == 138606);
  assert(unsigned(zero_extend(0x21d6f, 64)) == 138607);
  assert(unsigned(zero_extend(0x21d70, 64)) == 138608);
  assert(unsigned(zero_extend(0x21d71, 64)) == 138609);
  assert(unsigned(zero_extend(0x21d72, 64)) == 138610);
  assert(unsigned(zero_extend(0x21d73, 64)) == 138611);
  assert(unsigned(zero_extend(0x21d74, 64)) == 138612);
  assert(unsigned(zero_extend(0x21d75, 64)) == 138613);
  assert(unsigned(zero_extend(0x21d76, 64)) == 138614);
  assert(unsigned(zero_extend(0x21d77, 64)) == 138615);
  assert(unsigned(zero_extend(0x21d78, 64)) == 138616);
  assert(unsigned(zero_extend(0x21d79, 64)) == 138617);
  assert(unsigned(zero_extend(0x21d7a, 64)) == 138618);
  assert(unsigned(zero_extend(0x21d7b, 64)) == 138619);
  assert(unsigned(zero_extend(0x21d7c, 64)) == 138620);
  assert(unsigned(zero_extend(0x21d7d, 64)) == 138621);
  assert(unsigned(zero_extend(0x21d7e, 64)) == 138622);
  assert(unsigned(zero_extend(0x21d7f, 64)) == 138623);
  assert(unsigned(zero_extend(0x21d80, 64)) == 138624);
  assert(unsigned(zero_extend(0x21d81, 64)) == 138625);
  assert(unsigned(zero_extend(0x21d82, 64)) == 138626);
  assert(unsigned(zero_extend(0x21d83, 64)) == 138627);
  assert(unsigned(zero_extend(0x21d84, 64)) == 138628);
  assert(unsigned(zero_extend(0x21d85, 64)) == 138629);
  assert(unsigned(zero_extend(0x21d88, 64)) == 138632);
  assert(unsigned(zero_extend(0x21d89, 64)) == 138633);
  assert(unsigned(zero_extend(0x21d8a, 64)) == 138634);
  assert(unsigned(zero_extend(0x21d8b, 64)) == 138635);
  assert(unsigned(zero_extend(0x21d8c, 64)) == 138636);
  assert(unsigned(zero_extend(0x21d8d, 64)) == 138637);
  assert(unsigned(zero_extend(0x21d8e, 64)) == 138638);
  assert(unsigned(zero_extend(0x21d8f, 64)) == 138639);
  assert(unsigned(zero_extend(0x21d90, 64)) == 138640);
  assert(unsigned(zero_extend(0x21d91, 64)) == 138641);
  assert(unsigned(zero_extend(0x21d94, 64)) == 138644);
  assert(unsigned(zero_extend(0x21d95, 64)) == 138645);
  assert(unsigned(zero_extend(0x21d96, 64)) == 138646);
  assert(unsigned(zero_extend(0x21d97, 64)) == 138647);
  assert(unsigned(zero_extend(0x21d98, 64)) == 138648);
  assert(unsigned(zero_extend(0x21d99, 64)) == 138649);
  assert(unsigned(zero_extend(0x21d9a, 64)) == 138650);
  assert(unsigned(zero_extend(0x21d9b, 64)) == 138651);
  assert(unsigned(zero_extend(0x21d9c, 64)) == 138652);
  assert(unsigned(zero_extend(0x21d9d, 64)) == 138653);
  assert(unsigned(zero_extend(0x21da0, 64)) == 138656);
  assert(unsigned(zero_extend(0x21da1, 64)) == 138657);
  assert(unsigned(zero_extend(0x21da2, 64)) == 138658);
  assert(unsigned(zero_extend(0x21da3, 64)) == 138659);
  assert(unsigned(zero_extend(0x21da4, 64)) == 138660);
  assert(unsigned(zero_extend(0x21da5, 64)) == 138661);
  assert(unsigned(zero_extend(0x21da6, 64)) == 138662);
  assert(unsigned(zero_extend(0x21da7, 64)) == 138663);
  assert(unsigned(zero_extend(0x21da8, 64)) == 138664);
  assert(unsigned(zero_extend(0x21da9, 64)) == 138665);
  assert(unsigned(zero_extend(0x21dac, 64)) == 138668);
  assert(unsigned(zero_extend(0x21dad, 64)) == 138669);
  assert(unsigned(zero_extend(0x21dae, 64)) == 138670);
  assert(unsigned(zero_extend(0x21daf, 64)) == 138671);
  assert(unsigned(zero_extend(0x21db0, 64)) == 138672);
  assert(unsigned(zero_extend(0x21db1, 64)) == 138673);
  assert(unsigned(zero_extend(0x21db2, 64)) == 138674);
  assert(unsigned(zero_extend(0x21db3, 64)) == 138675);
  assert(unsigned(zero_extend(0x21db4, 64)) == 138676);
  assert(unsigned(zero_extend(0x21db5, 64)) == 138677);
  assert(unsigned(zero_extend(0x21f68, 64)) == 139112);
  assert(unsigned(zero_extend(0x21f6c, 64)) == 139116);
  assert(unsigned(zero_extend(0x21f70, 64)) == 139120);
  assert(unsigned(zero_extend(0x21f74, 64)) == 139124);
  assert(unsigned(zero_extend(0x21f78, 64)) == 139128);
  assert(unsigned(zero_extend(0x21f7c, 64)) == 139132);
  assert(unsigned(zero_extend(0x21f90, 64)) == 139152);
  assert(unsigned(zero_extend(0x21f98, 64)) == 139160);
  assert(unsigned(zero_extend(0x21fc0, 64)) == 139200);
  assert(unsigned(zero_extend(0x21fc4, 64)) == 139204);
  assert(unsigned(zero_extend(0x21fc8, 64)) == 139208);
  assert(unsigned(zero_extend(0x21fcc, 64)) == 139212);
  assert(unsigned(zero_extend(0x21fd0, 64)) == 139216);
  assert(unsigned(zero_extend(0x21fd4, 64)) == 139220);
  assert(unsigned(zero_extend(0x21fe8, 64)) == 139240);
  assert(unsigned(zero_extend(0x21ff0, 64)) == 139248);
  assert(unsigned(zero_extend(0x21ff8, 64)) == 139256);
  assert(unsigned(zero_extend(0x22, 64)) == 34);
  assert(unsigned(zero_extend(0x220, 64)) == 544);
  assert(unsigned(zero_extend(0x2200, 64)) == 8704);
  assert(unsigned(zero_extend(0x22000, 64)) == 139264);
  assert(unsigned(zero_extend(0x22050, 64)) == 139344);
  assert(unsigned(zero_extend(0x22088, 64)) == 139400);
  assert(unsigned(zero_extend(0x2208c, 64)) == 139404);
  assert(unsigned(zero_extend(0x22090, 64)) == 139408);
  assert(unsigned(zero_extend(0x22098, 64)) == 139416);
  assert(unsigned(zero_extend(0x220e0, 64)) == 139488);
  assert(unsigned(zero_extend(0x220e4, 64)) == 139492);
  assert(unsigned(zero_extend(0x220e8, 64)) == 139496);
  assert(unsigned(zero_extend(0x220f0, 64)) == 139504);
  assert(unsigned(zero_extend(0x2220, 64)) == 8736);
  assert(unsigned(zero_extend(0x2222222222222223, 64)) == 2459565876494606883);
  assert(unsigned(zero_extend(0x22330, 64)) == 140080);
  assert(unsigned(zero_extend(0x22334, 64)) == 140084);
  assert(unsigned(zero_extend(0x22338, 64)) == 140088);
  assert(unsigned(zero_extend(0x2233c, 64)) == 140092);
  assert(unsigned(zero_extend(0x22340, 64)) == 140096);
  assert(unsigned(zero_extend(0x22344, 64)) == 140100);
  assert(unsigned(zero_extend(0x22348, 64)) == 140104);
  assert(unsigned(zero_extend(0x2234c, 64)) == 140108);
  assert(unsigned(zero_extend(0x22350, 64)) == 140112);
  assert(unsigned(zero_extend(0x22354, 64)) == 140116);
  assert(unsigned(zero_extend(0x22358, 64)) == 140120);
  assert(unsigned(zero_extend(0x2235c, 64)) == 140124);
  assert(unsigned(zero_extend(0x22360, 64)) == 140128);
  assert(unsigned(zero_extend(0x22364, 64)) == 140132);
  assert(unsigned(zero_extend(0x22368, 64)) == 140136);
  assert(unsigned(zero_extend(0x2236c, 64)) == 140140);
  assert(unsigned(zero_extend(0x22370, 64)) == 140144);
  assert(unsigned(zero_extend(0x22374, 64)) == 140148);
  assert(unsigned(zero_extend(0x22378, 64)) == 140152);
  assert(unsigned(zero_extend(0x2237c, 64)) == 140156);
  assert(unsigned(zero_extend(0x22380, 64)) == 140160);
  assert(unsigned(zero_extend(0x22384, 64)) == 140164);
  assert(unsigned(zero_extend(0x22388, 64)) == 140168);
  assert(unsigned(zero_extend(0x2238c, 64)) == 140172);
  assert(unsigned(zero_extend(0x22390, 64)) == 140176);
  assert(unsigned(zero_extend(0x22394, 64)) == 140180);
  assert(unsigned(zero_extend(0x22398, 64)) == 140184);
  assert(unsigned(zero_extend(0x2239c, 64)) == 140188);
  assert(unsigned(zero_extend(0x223a0, 64)) == 140192);
  assert(unsigned(zero_extend(0x223a4, 64)) == 140196);
  assert(unsigned(zero_extend(0x223a8, 64)) == 140200);
  assert(unsigned(zero_extend(0x223ac, 64)) == 140204);
  assert(unsigned(zero_extend(0x223b0, 64)) == 140208);
  assert(unsigned(zero_extend(0x223b4, 64)) == 140212);
  assert(unsigned(zero_extend(0x223b8, 64)) == 140216);
  assert(unsigned(zero_extend(0x223bc, 64)) == 140220);
  assert(unsigned(zero_extend(0x223c, 64)) == 8764);
  assert(unsigned(zero_extend(0x223c0, 64)) == 140224);
  assert(unsigned(zero_extend(0x223c4, 64)) == 140228);
  assert(unsigned(zero_extend(0x223c8, 64)) == 140232);
  assert(unsigned(zero_extend(0x223cc, 64)) == 140236);
  assert(unsigned(zero_extend(0x223d0, 64)) == 140240);
  assert(unsigned(zero_extend(0x223d4, 64)) == 140244);
  assert(unsigned(zero_extend(0x223d8, 64)) == 140248);
  assert(unsigned(zero_extend(0x223dc, 64)) == 140252);
  assert(unsigned(zero_extend(0x223e0, 64)) == 140256);
  assert(unsigned(zero_extend(0x223e4, 64)) == 140260);
  assert(unsigned(zero_extend(0x223e8, 64)) == 140264);
  assert(unsigned(zero_extend(0x223ec, 64)) == 140268);
  assert(unsigned(zero_extend(0x223f0, 64)) == 140272);
  assert(unsigned(zero_extend(0x223f4, 64)) == 140276);
  assert(unsigned(zero_extend(0x223f8, 64)) == 140280);
  assert(unsigned(zero_extend(0x223fc, 64)) == 140284);
  assert(unsigned(zero_extend(0x22400, 64)) == 140288);
  assert(unsigned(zero_extend(0x22404, 64)) == 140292);
  assert(unsigned(zero_extend(0x22408, 64)) == 140296);
  assert(unsigned(zero_extend(0x2240c, 64)) == 140300);
  assert(unsigned(zero_extend(0x22410, 64)) == 140304);
  assert(unsigned(zero_extend(0x22414, 64)) == 140308);
  assert(unsigned(zero_extend(0x22418, 64)) == 140312);
  assert(unsigned(zero_extend(0x22420, 64)) == 140320);
  assert(unsigned(zero_extend(0x22c, 64)) == 556);
  assert(unsigned(zero_extend(0x23, 64)) == 35);
  assert(unsigned(zero_extend(0x23078, 64)) == 143480);
  assert(unsigned(zero_extend(0x2307c, 64)) == 143484);
  assert(unsigned(zero_extend(0x23080, 64)) == 143488);
  assert(unsigned(zero_extend(0x23084, 64)) == 143492);
  assert(unsigned(zero_extend(0x23088, 64)) == 143496);
  assert(unsigned(zero_extend(0x2308c, 64)) == 143500);
  assert(unsigned(zero_extend(0x23090, 64)) == 143504);
  assert(unsigned(zero_extend(0x23094, 64)) == 143508);
  assert(unsigned(zero_extend(0x23098, 64)) == 143512);
  assert(unsigned(zero_extend(0x2309c, 64)) == 143516);
  assert(unsigned(zero_extend(0x230a0, 64)) == 143520);
  assert(unsigned(zero_extend(0x230a4, 64)) == 143524);
  assert(unsigned(zero_extend(0x230a8, 64)) == 143528);
  assert(unsigned(zero_extend(0x230ac, 64)) == 143532);
  assert(unsigned(zero_extend(0x230b0, 64)) == 143536);
  assert(unsigned(zero_extend(0x230b4, 64)) == 143540);
  assert(unsigned(zero_extend(0x230b8, 64)) == 143544);
  assert(unsigned(zero_extend(0x230bc, 64)) == 143548);
  assert(unsigned(zero_extend(0x230c0, 64)) == 143552);
  assert(unsigned(zero_extend(0x230c4, 64)) == 143556);
  assert(unsigned(zero_extend(0x230c8, 64)) == 143560);
  assert(unsigned(zero_extend(0x230cc, 64)) == 143564);
  assert(unsigned(zero_extend(0x230d0, 64)) == 143568);
  assert(unsigned(zero_extend(0x230d4, 64)) == 143572);
  assert(unsigned(zero_extend(0x230d8, 64)) == 143576);
  assert(unsigned(zero_extend(0x230dc, 64)) == 143580);
  assert(unsigned(zero_extend(0x230e0, 64)) == 143584);
  assert(unsigned(zero_extend(0x230e4, 64)) == 143588);
  assert(unsigned(zero_extend(0x230e8, 64)) == 143592);
  assert(unsigned(zero_extend(0x230ec, 64)) == 143596);
  assert(unsigned(zero_extend(0x230f0, 64)) == 143600);
  assert(unsigned(zero_extend(0x230f4, 64)) == 143604);
  assert(unsigned(zero_extend(0x230f8, 64)) == 143608);
  assert(unsigned(zero_extend(0x230fc, 64)) == 143612);
  assert(unsigned(zero_extend(0x23100, 64)) == 143616);
  assert(unsigned(zero_extend(0x23104, 64)) == 143620);
  assert(unsigned(zero_extend(0x23108, 64)) == 143624);
  assert(unsigned(zero_extend(0x2310c, 64)) == 143628);
  assert(unsigned(zero_extend(0x23110, 64)) == 143632);
  assert(unsigned(zero_extend(0x23114, 64)) == 143636);
  assert(unsigned(zero_extend(0x23118, 64)) == 143640);
  assert(unsigned(zero_extend(0x2311c, 64)) == 143644);
  assert(unsigned(zero_extend(0x23120, 64)) == 143648);
  assert(unsigned(zero_extend(0x23124, 64)) == 143652);
  assert(unsigned(zero_extend(0x23128, 64)) == 143656);
  assert(unsigned(zero_extend(0x2312c, 64)) == 143660);
  assert(unsigned(zero_extend(0x23130, 64)) == 143664);
  assert(unsigned(zero_extend(0x23134, 64)) == 143668);
  assert(unsigned(zero_extend(0x23138, 64)) == 143672);
  assert(unsigned(zero_extend(0x2313c, 64)) == 143676);
  assert(unsigned(zero_extend(0x23140, 64)) == 143680);
  assert(unsigned(zero_extend(0x23144, 64)) == 143684);
  assert(unsigned(zero_extend(0x23148, 64)) == 143688);
  assert(unsigned(zero_extend(0x2314c, 64)) == 143692);
  assert(unsigned(zero_extend(0x23150, 64)) == 143696);
  assert(unsigned(zero_extend(0x23154, 64)) == 143700);
  assert(unsigned(zero_extend(0x23158, 64)) == 143704);
  assert(unsigned(zero_extend(0x2315c, 64)) == 143708);
  assert(unsigned(zero_extend(0x23160, 64)) == 143712);
  assert(unsigned(zero_extend(0x23164, 64)) == 143716);
  assert(unsigned(zero_extend(0x23168, 64)) == 143720);
  assert(unsigned(zero_extend(0x2316c, 64)) == 143724);
  assert(unsigned(zero_extend(0x23170, 64)) == 143728);
  assert(unsigned(zero_extend(0x23174, 64)) == 143732);
  assert(unsigned(zero_extend(0x23178, 64)) == 143736);
  assert(unsigned(zero_extend(0x2317c, 64)) == 143740);
  assert(unsigned(zero_extend(0x23180, 64)) == 143744);
  assert(unsigned(zero_extend(0x23184, 64)) == 143748);
  assert(unsigned(zero_extend(0x23188, 64)) == 143752);
  assert(unsigned(zero_extend(0x23430, 64)) == 144432);
  assert(unsigned(zero_extend(0x23434, 64)) == 144436);
  assert(unsigned(zero_extend(0x23438, 64)) == 144440);
  assert(unsigned(zero_extend(0x2343c, 64)) == 144444);
  assert(unsigned(zero_extend(0x23440, 64)) == 144448);
  assert(unsigned(zero_extend(0x23444, 64)) == 144452);
  assert(unsigned(zero_extend(0x23448, 64)) == 144456);
  assert(unsigned(zero_extend(0x2344c, 64)) == 144460);
  assert(unsigned(zero_extend(0x23450, 64)) == 144464);
  assert(unsigned(zero_extend(0x23454, 64)) == 144468);
  assert(unsigned(zero_extend(0x23458, 64)) == 144472);
  assert(unsigned(zero_extend(0x2345c, 64)) == 144476);
  assert(unsigned(zero_extend(0x23460, 64)) == 144480);
  assert(unsigned(zero_extend(0x23464, 64)) == 144484);
  assert(unsigned(zero_extend(0x23468, 64)) == 144488);
  assert(unsigned(zero_extend(0x23488, 64)) == 144520);
  assert(unsigned(zero_extend(0x2348c, 64)) == 144524);
  assert(unsigned(zero_extend(0x23490, 64)) == 144528);
  assert(unsigned(zero_extend(0x23494, 64)) == 144532);
  assert(unsigned(zero_extend(0x23498, 64)) == 144536);
  assert(unsigned(zero_extend(0x2349c, 64)) == 144540);
  assert(unsigned(zero_extend(0x234a0, 64)) == 144544);
  assert(unsigned(zero_extend(0x234a4, 64)) == 144548);
  assert(unsigned(zero_extend(0x234a8, 64)) == 144552);
  assert(unsigned(zero_extend(0x234ac, 64)) == 144556);
  assert(unsigned(zero_extend(0x234b0, 64)) == 144560);
  assert(unsigned(zero_extend(0x234b4, 64)) == 144564);
  assert(unsigned(zero_extend(0x234b8, 64)) == 144568);
  assert(unsigned(zero_extend(0x234bc, 64)) == 144572);
  assert(unsigned(zero_extend(0x234c0, 64)) == 144576);
  assert(unsigned(zero_extend(0x234e8, 64)) == 144616);
  assert(unsigned(zero_extend(0x234ec, 64)) == 144620);
  assert(unsigned(zero_extend(0x234f0, 64)) == 144624);
  assert(unsigned(zero_extend(0x234f4, 64)) == 144628);
  assert(unsigned(zero_extend(0x234f8, 64)) == 144632);
  assert(unsigned(zero_extend(0x234fc, 64)) == 144636);
  assert(unsigned(zero_extend(0x23500, 64)) == 144640);
  assert(unsigned(zero_extend(0x23504, 64)) == 144644);
  assert(unsigned(zero_extend(0x23508, 64)) == 144648);
  assert(unsigned(zero_extend(0x2350c, 64)) == 144652);
  assert(unsigned(zero_extend(0x23510, 64)) == 144656);
  assert(unsigned(zero_extend(0x23514, 64)) == 144660);
  assert(unsigned(zero_extend(0x23518, 64)) == 144664);
  assert(unsigned(zero_extend(0x2351c, 64)) == 144668);
  assert(unsigned(zero_extend(0x23520, 64)) == 144672);
  assert(unsigned(zero_extend(0x23524, 64)) == 144676);
  assert(unsigned(zero_extend(0x23528, 64)) == 144680);
  assert(unsigned(zero_extend(0x2352c, 64)) == 144684);
  assert(unsigned(zero_extend(0x23530, 64)) == 144688);
  assert(unsigned(zero_extend(0x23534, 64)) == 144692);
  assert(unsigned(zero_extend(0x23538, 64)) == 144696);
  assert(unsigned(zero_extend(0x2353c, 64)) == 144700);
  assert(unsigned(zero_extend(0x23540, 64)) == 144704);
  assert(unsigned(zero_extend(0x23544, 64)) == 144708);
  assert(unsigned(zero_extend(0x23548, 64)) == 144712);
  assert(unsigned(zero_extend(0x2354c, 64)) == 144716);
  assert(unsigned(zero_extend(0x23550, 64)) == 144720);
  assert(unsigned(zero_extend(0x23554, 64)) == 144724);
  assert(unsigned(zero_extend(0x23558, 64)) == 144728);
  assert(unsigned(zero_extend(0x2355c, 64)) == 144732);
  assert(unsigned(zero_extend(0x23560, 64)) == 144736);
  assert(unsigned(zero_extend(0x23564, 64)) == 144740);
  assert(unsigned(zero_extend(0x23568, 64)) == 144744);
  assert(unsigned(zero_extend(0x2356c, 64)) == 144748);
  assert(unsigned(zero_extend(0x23570, 64)) == 144752);
  assert(unsigned(zero_extend(0x23574, 64)) == 144756);
  assert(unsigned(zero_extend(0x23578, 64)) == 144760);
  assert(unsigned(zero_extend(0x2357c, 64)) == 144764);
  assert(unsigned(zero_extend(0x23580, 64)) == 144768);
  assert(unsigned(zero_extend(0x23584, 64)) == 144772);
  assert(unsigned(zero_extend(0x23588, 64)) == 144776);
  assert(unsigned(zero_extend(0x2358c, 64)) == 144780);
  assert(unsigned(zero_extend(0x23590, 64)) == 144784);
  assert(unsigned(zero_extend(0x23594, 64)) == 144788);
  assert(unsigned(zero_extend(0x23598, 64)) == 144792);
  assert(unsigned(zero_extend(0x2359c, 64)) == 144796);
  assert(unsigned(zero_extend(0x235a0, 64)) == 144800);
  assert(unsigned(zero_extend(0x235a4, 64)) == 144804);
  assert(unsigned(zero_extend(0x235a8, 64)) == 144808);
  assert(unsigned(zero_extend(0x235ac, 64)) == 144812);
  assert(unsigned(zero_extend(0x235b0, 64)) == 144816);
  assert(unsigned(zero_extend(0x235b4, 64)) == 144820);
  assert(unsigned(zero_extend(0x235b8, 64)) == 144824);
  assert(unsigned(zero_extend(0x235bc, 64)) == 144828);
  assert(unsigned(zero_extend(0x235c0, 64)) == 144832);
  assert(unsigned(zero_extend(0x235c4, 64)) == 144836);
  assert(unsigned(zero_extend(0x235c8, 64)) == 144840);
  assert(unsigned(zero_extend(0x235cc, 64)) == 144844);
  assert(unsigned(zero_extend(0x235d0, 64)) == 144848);
  assert(unsigned(zero_extend(0x235d4, 64)) == 144852);
  assert(unsigned(zero_extend(0x235d8, 64)) == 144856);
  assert(unsigned(zero_extend(0x235dc, 64)) == 144860);
  assert(unsigned(zero_extend(0x235e0, 64)) == 144864);
  assert(unsigned(zero_extend(0x235e1, 64)) == 144865);
  assert(unsigned(zero_extend(0x235e2, 64)) == 144866);
  assert(unsigned(zero_extend(0x235e3, 64)) == 144867);
  assert(unsigned(zero_extend(0x235e4, 64)) == 144868);
  assert(unsigned(zero_extend(0x235e5, 64)) == 144869);
  assert(unsigned(zero_extend(0x235e6, 64)) == 144870);
  assert(unsigned(zero_extend(0x235e7, 64)) == 144871);
  assert(unsigned(zero_extend(0x235e8, 64)) == 144872);
  assert(unsigned(zero_extend(0x235e9, 64)) == 144873);
  assert(unsigned(zero_extend(0x235ea, 64)) == 144874);
  assert(unsigned(zero_extend(0x235eb, 64)) == 144875);
  assert(unsigned(zero_extend(0x235ec, 64)) == 144876);
  assert(unsigned(zero_extend(0x235ed, 64)) == 144877);
  assert(unsigned(zero_extend(0x235ee, 64)) == 144878);
  assert(unsigned(zero_extend(0x235ef, 64)) == 144879);
  assert(unsigned(zero_extend(0x235f0, 64)) == 144880);
  assert(unsigned(zero_extend(0x235f1, 64)) == 144881);
  assert(unsigned(zero_extend(0x235f2, 64)) == 144882);
  assert(unsigned(zero_extend(0x235f3, 64)) == 144883);
  assert(unsigned(zero_extend(0x235f4, 64)) == 144884);
  assert(unsigned(zero_extend(0x235f5, 64)) == 144885);
  assert(unsigned(zero_extend(0x235f6, 64)) == 144886);
  assert(unsigned(zero_extend(0x235f7, 64)) == 144887);
  assert(unsigned(zero_extend(0x235f8, 64)) == 144888);
  assert(unsigned(zero_extend(0x235fc, 64)) == 144892);
  assert(unsigned(zero_extend(0x23600, 64)) == 144896);
  assert(unsigned(zero_extend(0x23604, 64)) == 144900);
  assert(unsigned(zero_extend(0x23608, 64)) == 144904);
  assert(unsigned(zero_extend(0x2360c, 64)) == 144908);
  assert(unsigned(zero_extend(0x23610, 64)) == 144912);
  assert(unsigned(zero_extend(0x23614, 64)) == 144916);
  assert(unsigned(zero_extend(0x23618, 64)) == 144920);
  assert(unsigned(zero_extend(0x2361c, 64)) == 144924);
  assert(unsigned(zero_extend(0x23620, 64)) == 144928);
  assert(unsigned(zero_extend(0x23624, 64)) == 144932);
  assert(unsigned(zero_extend(0x23628, 64)) == 144936);
  assert(unsigned(zero_extend(0x2362c, 64)) == 144940);
  assert(unsigned(zero_extend(0x23630, 64)) == 144944);
  assert(unsigned(zero_extend(0x23638, 64)) == 144952);
  assert(unsigned(zero_extend(0x23639, 64)) == 144953);
  assert(unsigned(zero_extend(0x2363a, 64)) == 144954);
  assert(unsigned(zero_extend(0x2363b, 64)) == 144955);
  assert(unsigned(zero_extend(0x2363c, 64)) == 144956);
  assert(unsigned(zero_extend(0x2363d, 64)) == 144957);
  assert(unsigned(zero_extend(0x2363e, 64)) == 144958);
  assert(unsigned(zero_extend(0x2363f, 64)) == 144959);
  assert(unsigned(zero_extend(0x23640, 64)) == 144960);
  assert(unsigned(zero_extend(0x23641, 64)) == 144961);
  assert(unsigned(zero_extend(0x23642, 64)) == 144962);
  assert(unsigned(zero_extend(0x23643, 64)) == 144963);
  assert(unsigned(zero_extend(0x23644, 64)) == 144964);
  assert(unsigned(zero_extend(0x23645, 64)) == 144965);
  assert(unsigned(zero_extend(0x23646, 64)) == 144966);
  assert(unsigned(zero_extend(0x23647, 64)) == 144967);
  assert(unsigned(zero_extend(0x23648, 64)) == 144968);
  assert(unsigned(zero_extend(0x23649, 64)) == 144969);
  assert(unsigned(zero_extend(0x2364a, 64)) == 144970);
  assert(unsigned(zero_extend(0x2364b, 64)) == 144971);
  assert(unsigned(zero_extend(0x2364c, 64)) == 144972);
  assert(unsigned(zero_extend(0x2364d, 64)) == 144973);
  assert(unsigned(zero_extend(0x2364e, 64)) == 144974);
  assert(unsigned(zero_extend(0x2364f, 64)) == 144975);
  assert(unsigned(zero_extend(0x23650, 64)) == 144976);
  assert(unsigned(zero_extend(0x23658, 64)) == 144984);
  assert(unsigned(zero_extend(0x24, 64)) == 36);
  assert(unsigned(zero_extend(0x24c, 64)) == 588);
  assert(unsigned(zero_extend(0x25, 64)) == 37);
  assert(unsigned(zero_extend(0x26, 64)) == 38);
  assert(unsigned(zero_extend(0x27, 64)) == 39);
  assert(unsigned(zero_extend(0x270, 64)) == 624);
  assert(unsigned(zero_extend(0x28, 64)) == 40);
  assert(unsigned(zero_extend(0x288, 64)) == 648);
  assert(unsigned(zero_extend(0x29, 64)) == 41);
  assert(unsigned(zero_extend(0x2a, 64)) == 42);
  assert(unsigned(zero_extend(0x2b, 64)) == 43);
  assert(unsigned(zero_extend(0x2c, 64)) == 44);
  assert(unsigned(zero_extend(0x2c000, 64)) == 180224);
  assert(unsigned(zero_extend(0x2d, 64)) == 45);
  assert(unsigned(zero_extend(0x2e, 64)) == 46);
  assert(unsigned(zero_extend(0x2e00000, 64)) == 48234496);
  assert(unsigned(zero_extend(0x2e00008, 64)) == 48234504);
  assert(unsigned(zero_extend(0x2e00010, 64)) == 48234512);
  assert(unsigned(zero_extend(0x2e00018, 64)) == 48234520);
  assert(unsigned(zero_extend(0x2e00020, 64)) == 48234528);
  assert(unsigned(zero_extend(0x2e00028, 64)) == 48234536);
  assert(unsigned(zero_extend(0x2e00030, 64)) == 48234544);
  assert(unsigned(zero_extend(0x2e00038, 64)) == 48234552);
  assert(unsigned(zero_extend(0x2e00040, 64)) == 48234560);
  assert(unsigned(zero_extend(0x2e00048, 64)) == 48234568);
  assert(unsigned(zero_extend(0x2e00050, 64)) == 48234576);
  assert(unsigned(zero_extend(0x2e00058, 64)) == 48234584);
  assert(unsigned(zero_extend(0x2e00060, 64)) == 48234592);
  assert(unsigned(zero_extend(0x2e00068, 64)) == 48234600);
  assert(unsigned(zero_extend(0x2e00070, 64)) == 48234608);
  assert(unsigned(zero_extend(0x2e00078, 64)) == 48234616);
  assert(unsigned(zero_extend(0x2e00080, 64)) == 48234624);
  assert(unsigned(zero_extend(0x2e00088, 64)) == 48234632);
  assert(unsigned(zero_extend(0x2e00090, 64)) == 48234640);
  assert(unsigned(zero_extend(0x2e00098, 64)) == 48234648);
  assert(unsigned(zero_extend(0x2e000a0, 64)) == 48234656);
  assert(unsigned(zero_extend(0x2e000a8, 64)) == 48234664);
  assert(unsigned(zero_extend(0x2e000b0, 64)) == 48234672);
  assert(unsigned(zero_extend(0x2e000b8, 64)) == 48234680);
  assert(unsigned(zero_extend(0x2e000c0, 64)) == 48234688);
  assert(unsigned(zero_extend(0x2e000c8, 64)) == 48234696);
  assert(unsigned(zero_extend(0x2e000d0, 64)) == 48234704);
  assert(unsigned(zero_extend(0x2e000d8, 64)) == 48234712);
  assert(unsigned(zero_extend(0x2e000e0, 64)) == 48234720);
  assert(unsigned(zero_extend(0x2e000e8, 64)) == 48234728);
  assert(unsigned(zero_extend(0x2e000f0, 64)) == 48234736);
  assert(unsigned(zero_extend(0x2e000f8, 64)) == 48234744);
  assert(unsigned(zero_extend(0x2e00100, 64)) == 48234752);
  assert(unsigned(zero_extend(0x2e00108, 64)) == 48234760);
  assert(unsigned(zero_extend(0x2e00110, 64)) == 48234768);
  assert(unsigned(zero_extend(0x2e00118, 64)) == 48234776);
  assert(unsigned(zero_extend(0x2e00120, 64)) == 48234784);
  assert(unsigned(zero_extend(0x2e00128, 64)) == 48234792);
  assert(unsigned(zero_extend(0x2e00130, 64)) == 48234800);
  assert(unsigned(zero_extend(0x2e00138, 64)) == 48234808);
  assert(unsigned(zero_extend(0x2e00140, 64)) == 48234816);
  assert(unsigned(zero_extend(0x2e00148, 64)) == 48234824);
  assert(unsigned(zero_extend(0x2e00150, 64)) == 48234832);
  assert(unsigned(zero_extend(0x2e00158, 64)) == 48234840);
  assert(unsigned(zero_extend(0x2e00160, 64)) == 48234848);
  assert(unsigned(zero_extend(0x2e00168, 64)) == 48234856);
  assert(unsigned(zero_extend(0x2e00170, 64)) == 48234864);
  assert(unsigned(zero_extend(0x2e00178, 64)) == 48234872);
  assert(unsigned(zero_extend(0x2e00180, 64)) == 48234880);
  assert(unsigned(zero_extend(0x2e00188, 64)) == 48234888);
  assert(unsigned(zero_extend(0x2e00190, 64)) == 48234896);
  assert(unsigned(zero_extend(0x2e00198, 64)) == 48234904);
  assert(unsigned(zero_extend(0x2e001a0, 64)) == 48234912);
  assert(unsigned(zero_extend(0x2e001a8, 64)) == 48234920);
  assert(unsigned(zero_extend(0x2e001b0, 64)) == 48234928);
  assert(unsigned(zero_extend(0x2e001b8, 64)) == 48234936);
  assert(unsigned(zero_extend(0x2e001c0, 64)) == 48234944);
  assert(unsigned(zero_extend(0x2e001c8, 64)) == 48234952);
  assert(unsigned(zero_extend(0x2e001d0, 64)) == 48234960);
  assert(unsigned(zero_extend(0x2e001d8, 64)) == 48234968);
  assert(unsigned(zero_extend(0x2e001e0, 64)) == 48234976);
  assert(unsigned(zero_extend(0x2e001e8, 64)) == 48234984);
  assert(unsigned(zero_extend(0x2e001f0, 64)) == 48234992);
  assert(unsigned(zero_extend(0x2e001f8, 64)) == 48235000);
  assert(unsigned(zero_extend(0x2e00200, 64)) == 48235008);
  assert(unsigned(zero_extend(0x2e00208, 64)) == 48235016);
  assert(unsigned(zero_extend(0x2e00210, 64)) == 48235024);
  assert(unsigned(zero_extend(0x2e00218, 64)) == 48235032);
  assert(unsigned(zero_extend(0x2e00220, 64)) == 48235040);
  assert(unsigned(zero_extend(0x2e00228, 64)) == 48235048);
  assert(unsigned(zero_extend(0x2e00230, 64)) == 48235056);
  assert(unsigned(zero_extend(0x2e00238, 64)) == 48235064);
  assert(unsigned(zero_extend(0x2e00240, 64)) == 48235072);
  assert(unsigned(zero_extend(0x2e00248, 64)) == 48235080);
  assert(unsigned(zero_extend(0x2e00250, 64)) == 48235088);
  assert(unsigned(zero_extend(0x2e00258, 64)) == 48235096);
  assert(unsigned(zero_extend(0x2e00260, 64)) == 48235104);
  assert(unsigned(zero_extend(0x2e00268, 64)) == 48235112);
  assert(unsigned(zero_extend(0x2e00270, 64)) == 48235120);
  assert(unsigned(zero_extend(0x2e00278, 64)) == 48235128);
  assert(unsigned(zero_extend(0x2e00280, 64)) == 48235136);
  assert(unsigned(zero_extend(0x2e00288, 64)) == 48235144);
  assert(unsigned(zero_extend(0x2e00290, 64)) == 48235152);
  assert(unsigned(zero_extend(0x2e00298, 64)) == 48235160);
  assert(unsigned(zero_extend(0x2e002a0, 64)) == 48235168);
  assert(unsigned(zero_extend(0x2e002a8, 64)) == 48235176);
  assert(unsigned(zero_extend(0x2e002b0, 64)) == 48235184);
  assert(unsigned(zero_extend(0x2e002b8, 64)) == 48235192);
  assert(unsigned(zero_extend(0x2e002c0, 64)) == 48235200);
  assert(unsigned(zero_extend(0x2e002c8, 64)) == 48235208);
  assert(unsigned(zero_extend(0x2e002d0, 64)) == 48235216);
  assert(unsigned(zero_extend(0x2e002d8, 64)) == 48235224);
  assert(unsigned(zero_extend(0x2e002e0, 64)) == 48235232);
  assert(unsigned(zero_extend(0x2e002e8, 64)) == 48235240);
  assert(unsigned(zero_extend(0x2e002f0, 64)) == 48235248);
  assert(unsigned(zero_extend(0x2e002f8, 64)) == 48235256);
  assert(unsigned(zero_extend(0x2e00300, 64)) == 48235264);
  assert(unsigned(zero_extend(0x2e00308, 64)) == 48235272);
  assert(unsigned(zero_extend(0x2e00310, 64)) == 48235280);
  assert(unsigned(zero_extend(0x2e00318, 64)) == 48235288);
  assert(unsigned(zero_extend(0x2e00320, 64)) == 48235296);
  assert(unsigned(zero_extend(0x2e00328, 64)) == 48235304);
  assert(unsigned(zero_extend(0x2e00330, 64)) == 48235312);
  assert(unsigned(zero_extend(0x2e00338, 64)) == 48235320);
  assert(unsigned(zero_extend(0x2e00340, 64)) == 48235328);
  assert(unsigned(zero_extend(0x2e00348, 64)) == 48235336);
  assert(unsigned(zero_extend(0x2e00350, 64)) == 48235344);
  assert(unsigned(zero_extend(0x2e00358, 64)) == 48235352);
  assert(unsigned(zero_extend(0x2e00360, 64)) == 48235360);
  assert(unsigned(zero_extend(0x2e00368, 64)) == 48235368);
  assert(unsigned(zero_extend(0x2e00370, 64)) == 48235376);
  assert(unsigned(zero_extend(0x2e00378, 64)) == 48235384);
  assert(unsigned(zero_extend(0x2e00380, 64)) == 48235392);
  assert(unsigned(zero_extend(0x2e00388, 64)) == 48235400);
  assert(unsigned(zero_extend(0x2e00390, 64)) == 48235408);
  assert(unsigned(zero_extend(0x2e00398, 64)) == 48235416);
  assert(unsigned(zero_extend(0x2e003a0, 64)) == 48235424);
  assert(unsigned(zero_extend(0x2e003a8, 64)) == 48235432);
  assert(unsigned(zero_extend(0x2e003b0, 64)) == 48235440);
  assert(unsigned(zero_extend(0x2e003b8, 64)) == 48235448);
  assert(unsigned(zero_extend(0x2e003c0, 64)) == 48235456);
  assert(unsigned(zero_extend(0x2e003c8, 64)) == 48235464);
  assert(unsigned(zero_extend(0x2e003d0, 64)) == 48235472);
  assert(unsigned(zero_extend(0x2e003d8, 64)) == 48235480);
  assert(unsigned(zero_extend(0x2e003e0, 64)) == 48235488);
  assert(unsigned(zero_extend(0x2e003e8, 64)) == 48235496);
  assert(unsigned(zero_extend(0x2e003f0, 64)) == 48235504);
  assert(unsigned(zero_extend(0x2e003f8, 64)) == 48235512);
  assert(unsigned(zero_extend(0x2e00400, 64)) == 48235520);
  assert(unsigned(zero_extend(0x2e00408, 64)) == 48235528);
  assert(unsigned(zero_extend(0x2e00410, 64)) == 48235536);
  assert(unsigned(zero_extend(0x2e00418, 64)) == 48235544);
  assert(unsigned(zero_extend(0x2e00420, 64)) == 48235552);
  assert(unsigned(zero_extend(0x2e00428, 64)) == 48235560);
  assert(unsigned(zero_extend(0x2e00430, 64)) == 48235568);
  assert(unsigned(zero_extend(0x2e00438, 64)) == 48235576);
  assert(unsigned(zero_extend(0x2e00440, 64)) == 48235584);
  assert(unsigned(zero_extend(0x2e00448, 64)) == 48235592);
  assert(unsigned(zero_extend(0x2e00450, 64)) == 48235600);
  assert(unsigned(zero_extend(0x2e00458, 64)) == 48235608);
  assert(unsigned(zero_extend(0x2e00460, 64)) == 48235616);
  assert(unsigned(zero_extend(0x2e00468, 64)) == 48235624);
  assert(unsigned(zero_extend(0x2e00470, 64)) == 48235632);
  assert(unsigned(zero_extend(0x2e00478, 64)) == 48235640);
  assert(unsigned(zero_extend(0x2e00480, 64)) == 48235648);
  assert(unsigned(zero_extend(0x2e00488, 64)) == 48235656);
  assert(unsigned(zero_extend(0x2e00490, 64)) == 48235664);
  assert(unsigned(zero_extend(0x2e00498, 64)) == 48235672);
  assert(unsigned(zero_extend(0x2e004a0, 64)) == 48235680);
  assert(unsigned(zero_extend(0x2e004a8, 64)) == 48235688);
  assert(unsigned(zero_extend(0x2e004b0, 64)) == 48235696);
  assert(unsigned(zero_extend(0x2e004b8, 64)) == 48235704);
  assert(unsigned(zero_extend(0x2e004c0, 64)) == 48235712);
  assert(unsigned(zero_extend(0x2e004c8, 64)) == 48235720);
  assert(unsigned(zero_extend(0x2e004d0, 64)) == 48235728);
  assert(unsigned(zero_extend(0x2e004d8, 64)) == 48235736);
  assert(unsigned(zero_extend(0x2e004e0, 64)) == 48235744);
  assert(unsigned(zero_extend(0x2e004e8, 64)) == 48235752);
  assert(unsigned(zero_extend(0x2e004f0, 64)) == 48235760);
  assert(unsigned(zero_extend(0x2e004f8, 64)) == 48235768);
  assert(unsigned(zero_extend(0x2e00500, 64)) == 48235776);
  assert(unsigned(zero_extend(0x2e00508, 64)) == 48235784);
  assert(unsigned(zero_extend(0x2e00510, 64)) == 48235792);
  assert(unsigned(zero_extend(0x2e00518, 64)) == 48235800);
  assert(unsigned(zero_extend(0x2e00520, 64)) == 48235808);
  assert(unsigned(zero_extend(0x2e00528, 64)) == 48235816);
  assert(unsigned(zero_extend(0x2e01000, 64)) == 48238592);
  assert(unsigned(zero_extend(0x2e01008, 64)) == 48238600);
  assert(unsigned(zero_extend(0x2e01010, 64)) == 48238608);
  assert(unsigned(zero_extend(0x2e01018, 64)) == 48238616);
  assert(unsigned(zero_extend(0x2e01020, 64)) == 48238624);
  assert(unsigned(zero_extend(0x2e01028, 64)) == 48238632);
  assert(unsigned(zero_extend(0x2e01030, 64)) == 48238640);
  assert(unsigned(zero_extend(0x2e01038, 64)) == 48238648);
  assert(unsigned(zero_extend(0x2e01040, 64)) == 48238656);
  assert(unsigned(zero_extend(0x2e01048, 64)) == 48238664);
  assert(unsigned(zero_extend(0x2e01050, 64)) == 48238672);
  assert(unsigned(zero_extend(0x2e01058, 64)) == 48238680);
  assert(unsigned(zero_extend(0x2e01060, 64)) == 48238688);
  assert(unsigned(zero_extend(0x2e01068, 64)) == 48238696);
  assert(unsigned(zero_extend(0x2e01070, 64)) == 48238704);
  assert(unsigned(zero_extend(0x2e01078, 64)) == 48238712);
  assert(unsigned(zero_extend(0x2e01080, 64)) == 48238720);
  assert(unsigned(zero_extend(0x2e01088, 64)) == 48238728);
  assert(unsigned(zero_extend(0x2e01090, 64)) == 48238736);
  assert(unsigned(zero_extend(0x2e01098, 64)) == 48238744);
  assert(unsigned(zero_extend(0x2e010a0, 64)) == 48238752);
  assert(unsigned(zero_extend(0x2e010a8, 64)) == 48238760);
  assert(unsigned(zero_extend(0x2e010b0, 64)) == 48238768);
  assert(unsigned(zero_extend(0x2e010b8, 64)) == 48238776);
  assert(unsigned(zero_extend(0x2e010c0, 64)) == 48238784);
  assert(unsigned(zero_extend(0x2e010c8, 64)) == 48238792);
  assert(unsigned(zero_extend(0x2e010d0, 64)) == 48238800);
  assert(unsigned(zero_extend(0x2e010d8, 64)) == 48238808);
  assert(unsigned(zero_extend(0x2e010e0, 64)) == 48238816);
  assert(unsigned(zero_extend(0x2e010e8, 64)) == 48238824);
  assert(unsigned(zero_extend(0x2e010f0, 64)) == 48238832);
  assert(unsigned(zero_extend(0x2e010f8, 64)) == 48238840);
  assert(unsigned(zero_extend(0x2e01100, 64)) == 48238848);
  assert(unsigned(zero_extend(0x2e01108, 64)) == 48238856);
  assert(unsigned(zero_extend(0x2e01110, 64)) == 48238864);
  assert(unsigned(zero_extend(0x2e01118, 64)) == 48238872);
  assert(unsigned(zero_extend(0x2e01120, 64)) == 48238880);
  assert(unsigned(zero_extend(0x2e01128, 64)) == 48238888);
  assert(unsigned(zero_extend(0x2e01130, 64)) == 48238896);
  assert(unsigned(zero_extend(0x2e01138, 64)) == 48238904);
  assert(unsigned(zero_extend(0x2e01140, 64)) == 48238912);
  assert(unsigned(zero_extend(0x2e01148, 64)) == 48238920);
  assert(unsigned(zero_extend(0x2e01150, 64)) == 48238928);
  assert(unsigned(zero_extend(0x2e01158, 64)) == 48238936);
  assert(unsigned(zero_extend(0x2e01160, 64)) == 48238944);
  assert(unsigned(zero_extend(0x2e01168, 64)) == 48238952);
  assert(unsigned(zero_extend(0x2e01170, 64)) == 48238960);
  assert(unsigned(zero_extend(0x2e01178, 64)) == 48238968);
  assert(unsigned(zero_extend(0x2e01180, 64)) == 48238976);
  assert(unsigned(zero_extend(0x2e01188, 64)) == 48238984);
  assert(unsigned(zero_extend(0x2e01190, 64)) == 48238992);
  assert(unsigned(zero_extend(0x2e01198, 64)) == 48239000);
  assert(unsigned(zero_extend(0x2e011a0, 64)) == 48239008);
  assert(unsigned(zero_extend(0x2e011a8, 64)) == 48239016);
  assert(unsigned(zero_extend(0x2e011b0, 64)) == 48239024);
  assert(unsigned(zero_extend(0x2e011b8, 64)) == 48239032);
  assert(unsigned(zero_extend(0x2e011c0, 64)) == 48239040);
  assert(unsigned(zero_extend(0x2e011c8, 64)) == 48239048);
  assert(unsigned(zero_extend(0x2e011d0, 64)) == 48239056);
  assert(unsigned(zero_extend(0x2e011d8, 64)) == 48239064);
  assert(unsigned(zero_extend(0x2e011e0, 64)) == 48239072);
  assert(unsigned(zero_extend(0x2e011e8, 64)) == 48239080);
  assert(unsigned(zero_extend(0x2e011f0, 64)) == 48239088);
  assert(unsigned(zero_extend(0x2e011f8, 64)) == 48239096);
  assert(unsigned(zero_extend(0x2e01200, 64)) == 48239104);
  assert(unsigned(zero_extend(0x2e01208, 64)) == 48239112);
  assert(unsigned(zero_extend(0x2e01210, 64)) == 48239120);
  assert(unsigned(zero_extend(0x2e01218, 64)) == 48239128);
  assert(unsigned(zero_extend(0x2e01220, 64)) == 48239136);
  assert(unsigned(zero_extend(0x2e01228, 64)) == 48239144);
  assert(unsigned(zero_extend(0x2e01230, 64)) == 48239152);
  assert(unsigned(zero_extend(0x2e01238, 64)) == 48239160);
  assert(unsigned(zero_extend(0x2e01240, 64)) == 48239168);
  assert(unsigned(zero_extend(0x2e01248, 64)) == 48239176);
  assert(unsigned(zero_extend(0x2e01250, 64)) == 48239184);
  assert(unsigned(zero_extend(0x2e01258, 64)) == 48239192);
  assert(unsigned(zero_extend(0x2e01260, 64)) == 48239200);
  assert(unsigned(zero_extend(0x2e01268, 64)) == 48239208);
  assert(unsigned(zero_extend(0x2e01270, 64)) == 48239216);
  assert(unsigned(zero_extend(0x2e01278, 64)) == 48239224);
  assert(unsigned(zero_extend(0x2e01280, 64)) == 48239232);
  assert(unsigned(zero_extend(0x2e01288, 64)) == 48239240);
  assert(unsigned(zero_extend(0x2e01290, 64)) == 48239248);
  assert(unsigned(zero_extend(0x2e01298, 64)) == 48239256);
  assert(unsigned(zero_extend(0x2e012a0, 64)) == 48239264);
  assert(unsigned(zero_extend(0x2e012a8, 64)) == 48239272);
  assert(unsigned(zero_extend(0x2e012b0, 64)) == 48239280);
  assert(unsigned(zero_extend(0x2e012b8, 64)) == 48239288);
  assert(unsigned(zero_extend(0x2e012c0, 64)) == 48239296);
  assert(unsigned(zero_extend(0x2e012c8, 64)) == 48239304);
  assert(unsigned(zero_extend(0x2e012d0, 64)) == 48239312);
  assert(unsigned(zero_extend(0x2e012d8, 64)) == 48239320);
  assert(unsigned(zero_extend(0x2e012e0, 64)) == 48239328);
  assert(unsigned(zero_extend(0x2e012e8, 64)) == 48239336);
  assert(unsigned(zero_extend(0x2e012f0, 64)) == 48239344);
  assert(unsigned(zero_extend(0x2e012f8, 64)) == 48239352);
  assert(unsigned(zero_extend(0x2e01300, 64)) == 48239360);
  assert(unsigned(zero_extend(0x2e01308, 64)) == 48239368);
  assert(unsigned(zero_extend(0x2e01310, 64)) == 48239376);
  assert(unsigned(zero_extend(0x2e01318, 64)) == 48239384);
  assert(unsigned(zero_extend(0x2e01320, 64)) == 48239392);
  assert(unsigned(zero_extend(0x2e01328, 64)) == 48239400);
  assert(unsigned(zero_extend(0x2e01330, 64)) == 48239408);
  assert(unsigned(zero_extend(0x2e01338, 64)) == 48239416);
  assert(unsigned(zero_extend(0x2e01340, 64)) == 48239424);
  assert(unsigned(zero_extend(0x2e01348, 64)) == 48239432);
  assert(unsigned(zero_extend(0x2e01350, 64)) == 48239440);
  assert(unsigned(zero_extend(0x2e01358, 64)) == 48239448);
  assert(unsigned(zero_extend(0x2e01360, 64)) == 48239456);
  assert(unsigned(zero_extend(0x2e01368, 64)) == 48239464);
  assert(unsigned(zero_extend(0x2e01370, 64)) == 48239472);
  assert(unsigned(zero_extend(0x2e01378, 64)) == 48239480);
  assert(unsigned(zero_extend(0x2e01380, 64)) == 48239488);
  assert(unsigned(zero_extend(0x2e01388, 64)) == 48239496);
  assert(unsigned(zero_extend(0x2e01390, 64)) == 48239504);
  assert(unsigned(zero_extend(0x2e01398, 64)) == 48239512);
  assert(unsigned(zero_extend(0x2e013a0, 64)) == 48239520);
  assert(unsigned(zero_extend(0x2e013a8, 64)) == 48239528);
  assert(unsigned(zero_extend(0x2e013b0, 64)) == 48239536);
  assert(unsigned(zero_extend(0x2e013b8, 64)) == 48239544);
  assert(unsigned(zero_extend(0x2e013c0, 64)) == 48239552);
  assert(unsigned(zero_extend(0x2e013c8, 64)) == 48239560);
  assert(unsigned(zero_extend(0x2e013d0, 64)) == 48239568);
  assert(unsigned(zero_extend(0x2e013d8, 64)) == 48239576);
  assert(unsigned(zero_extend(0x2e013e0, 64)) == 48239584);
  assert(unsigned(zero_extend(0x2e013e8, 64)) == 48239592);
  assert(unsigned(zero_extend(0x2e013f0, 64)) == 48239600);
  assert(unsigned(zero_extend(0x2e013f8, 64)) == 48239608);
  assert(unsigned(zero_extend(0x2e01400, 64)) == 48239616);
  assert(unsigned(zero_extend(0x2e01408, 64)) == 48239624);
  assert(unsigned(zero_extend(0x2e01410, 64)) == 48239632);
  assert(unsigned(zero_extend(0x2e01418, 64)) == 48239640);
  assert(unsigned(zero_extend(0x2e01420, 64)) == 48239648);
  assert(unsigned(zero_extend(0x2e01428, 64)) == 48239656);
  assert(unsigned(zero_extend(0x2e01430, 64)) == 48239664);
  assert(unsigned(zero_extend(0x2e01438, 64)) == 48239672);
  assert(unsigned(zero_extend(0x2e01440, 64)) == 48239680);
  assert(unsigned(zero_extend(0x2e01448, 64)) == 48239688);
  assert(unsigned(zero_extend(0x2e01450, 64)) == 48239696);
  assert(unsigned(zero_extend(0x2e01458, 64)) == 48239704);
  assert(unsigned(zero_extend(0x2e01460, 64)) == 48239712);
  assert(unsigned(zero_extend(0x2e01468, 64)) == 48239720);
  assert(unsigned(zero_extend(0x2e01470, 64)) == 48239728);
  assert(unsigned(zero_extend(0x2e01478, 64)) == 48239736);
  assert(unsigned(zero_extend(0x2e01480, 64)) == 48239744);
  assert(unsigned(zero_extend(0x2e01488, 64)) == 48239752);
  assert(unsigned(zero_extend(0x2e01490, 64)) == 48239760);
  assert(unsigned(zero_extend(0x2e01498, 64)) == 48239768);
  assert(unsigned(zero_extend(0x2e014a0, 64)) == 48239776);
  assert(unsigned(zero_extend(0x2e014a8, 64)) == 48239784);
  assert(unsigned(zero_extend(0x2e014b0, 64)) == 48239792);
  assert(unsigned(zero_extend(0x2e014b8, 64)) == 48239800);
  assert(unsigned(zero_extend(0x2e014c0, 64)) == 48239808);
  assert(unsigned(zero_extend(0x2e014c8, 64)) == 48239816);
  assert(unsigned(zero_extend(0x2e014d0, 64)) == 48239824);
  assert(unsigned(zero_extend(0x2e014d8, 64)) == 48239832);
  assert(unsigned(zero_extend(0x2e014e0, 64)) == 48239840);
  assert(unsigned(zero_extend(0x2e014e8, 64)) == 48239848);
  assert(unsigned(zero_extend(0x2e014f0, 64)) == 48239856);
  assert(unsigned(zero_extend(0x2e014f8, 64)) == 48239864);
  assert(unsigned(zero_extend(0x2e01500, 64)) == 48239872);
  assert(unsigned(zero_extend(0x2e01508, 64)) == 48239880);
  assert(unsigned(zero_extend(0x2e01510, 64)) == 48239888);
  assert(unsigned(zero_extend(0x2e01518, 64)) == 48239896);
  assert(unsigned(zero_extend(0x2e01520, 64)) == 48239904);
  assert(unsigned(zero_extend(0x2e01528, 64)) == 48239912);
  assert(unsigned(zero_extend(0x2e01530, 64)) == 48239920);
  assert(unsigned(zero_extend(0x2e01538, 64)) == 48239928);
  assert(unsigned(zero_extend(0x2e01540, 64)) == 48239936);
  assert(unsigned(zero_extend(0x2e01548, 64)) == 48239944);
  assert(unsigned(zero_extend(0x2e01550, 64)) == 48239952);
  assert(unsigned(zero_extend(0x2e01558, 64)) == 48239960);
  assert(unsigned(zero_extend(0x2e01560, 64)) == 48239968);
  assert(unsigned(zero_extend(0x2e01568, 64)) == 48239976);
  assert(unsigned(zero_extend(0x2e01570, 64)) == 48239984);
  assert(unsigned(zero_extend(0x2e01578, 64)) == 48239992);
  assert(unsigned(zero_extend(0x2e01580, 64)) == 48240000);
  assert(unsigned(zero_extend(0x2e01588, 64)) == 48240008);
  assert(unsigned(zero_extend(0x2e01590, 64)) == 48240016);
  assert(unsigned(zero_extend(0x2e01598, 64)) == 48240024);
  assert(unsigned(zero_extend(0x2e015a0, 64)) == 48240032);
  assert(unsigned(zero_extend(0x2e015a8, 64)) == 48240040);
  assert(unsigned(zero_extend(0x2e015b0, 64)) == 48240048);
  assert(unsigned(zero_extend(0x2e015b8, 64)) == 48240056);
  assert(unsigned(zero_extend(0x2e015c0, 64)) == 48240064);
  assert(unsigned(zero_extend(0x2e015c8, 64)) == 48240072);
  assert(unsigned(zero_extend(0x2e015d0, 64)) == 48240080);
  assert(unsigned(zero_extend(0x2e015d8, 64)) == 48240088);
  assert(unsigned(zero_extend(0x2e015e0, 64)) == 48240096);
  assert(unsigned(zero_extend(0x2e015e8, 64)) == 48240104);
}