summaryrefslogtreecommitdiff
path: root/libwebrtc-screen-cast-sync.patch
blob: 20bf0a5cf87ebc1c7fb5f249498dc35ef4f8a4b0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
5086
5087
5088
5089
5090
5091
5092
5093
5094
5095
5096
5097
5098
5099
5100
5101
5102
5103
5104
5105
5106
5107
5108
5109
5110
5111
5112
5113
5114
5115
5116
5117
5118
5119
5120
5121
5122
5123
5124
5125
5126
5127
5128
5129
5130
5131
5132
5133
5134
5135
5136
5137
5138
5139
5140
5141
5142
5143
5144
5145
5146
5147
5148
5149
5150
5151
5152
5153
5154
5155
5156
5157
5158
5159
5160
5161
5162
5163
5164
5165
5166
5167
5168
5169
5170
5171
5172
5173
5174
5175
5176
5177
5178
5179
5180
5181
5182
5183
5184
5185
5186
5187
5188
5189
5190
5191
5192
5193
5194
5195
5196
5197
5198
5199
5200
5201
5202
5203
5204
5205
5206
5207
5208
5209
5210
5211
5212
5213
5214
5215
5216
5217
5218
5219
5220
5221
5222
5223
5224
5225
5226
5227
5228
5229
5230
5231
5232
5233
5234
5235
5236
5237
5238
5239
5240
5241
5242
5243
5244
5245
5246
5247
5248
5249
5250
5251
5252
5253
5254
5255
5256
5257
5258
5259
5260
5261
5262
5263
5264
5265
5266
5267
5268
5269
5270
5271
5272
5273
5274
5275
5276
5277
5278
5279
5280
5281
5282
5283
5284
5285
5286
5287
5288
5289
5290
5291
5292
5293
5294
5295
5296
5297
5298
5299
5300
5301
5302
5303
5304
5305
5306
5307
5308
5309
5310
5311
5312
5313
5314
5315
5316
5317
5318
5319
5320
5321
5322
5323
5324
5325
5326
5327
5328
5329
5330
5331
5332
5333
5334
5335
5336
5337
5338
5339
5340
5341
5342
5343
5344
5345
5346
5347
5348
5349
5350
5351
5352
5353
5354
5355
5356
5357
5358
5359
5360
5361
5362
5363
5364
5365
5366
5367
5368
5369
5370
5371
5372
5373
5374
5375
5376
5377
5378
5379
5380
5381
5382
5383
5384
5385
5386
5387
5388
5389
5390
5391
5392
5393
5394
5395
5396
5397
5398
5399
5400
5401
5402
5403
5404
5405
5406
5407
5408
5409
5410
5411
5412
5413
5414
5415
5416
5417
5418
5419
5420
5421
5422
5423
5424
5425
5426
5427
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
5446
5447
5448
5449
5450
5451
5452
5453
5454
5455
5456
5457
5458
5459
5460
5461
5462
5463
5464
5465
5466
5467
5468
5469
5470
5471
5472
5473
5474
5475
5476
5477
5478
5479
5480
5481
5482
5483
5484
5485
5486
5487
5488
5489
5490
5491
5492
5493
5494
5495
5496
5497
5498
5499
5500
5501
5502
5503
5504
5505
5506
5507
5508
5509
5510
5511
5512
5513
5514
5515
5516
5517
5518
5519
5520
5521
5522
5523
5524
5525
5526
5527
5528
5529
5530
5531
5532
5533
5534
5535
5536
5537
5538
5539
5540
5541
5542
5543
5544
5545
5546
5547
5548
5549
5550
5551
5552
5553
5554
5555
5556
5557
5558
5559
5560
5561
5562
5563
5564
5565
5566
5567
5568
5569
5570
5571
5572
5573
5574
5575
5576
5577
5578
5579
5580
5581
5582
5583
5584
5585
5586
5587
5588
5589
5590
5591
5592
5593
5594
5595
5596
5597
5598
5599
5600
5601
5602
5603
5604
5605
5606
5607
5608
5609
5610
5611
5612
5613
5614
5615
5616
5617
5618
5619
5620
5621
5622
5623
5624
5625
5626
5627
5628
5629
5630
5631
5632
5633
5634
5635
5636
5637
5638
5639
5640
5641
5642
5643
5644
5645
5646
5647
5648
5649
5650
5651
5652
5653
5654
5655
5656
5657
5658
5659
5660
5661
5662
5663
5664
5665
5666
5667
5668
5669
5670
5671
5672
5673
5674
5675
5676
5677
5678
5679
5680
5681
5682
5683
5684
5685
5686
5687
5688
5689
5690
5691
5692
5693
5694
5695
5696
5697
5698
5699
5700
5701
5702
5703
5704
5705
5706
5707
5708
5709
5710
5711
5712
5713
5714
5715
5716
5717
5718
5719
5720
5721
5722
5723
5724
5725
5726
5727
5728
5729
5730
5731
5732
5733
5734
5735
5736
5737
5738
5739
5740
5741
5742
5743
5744
5745
5746
5747
5748
5749
5750
5751
5752
5753
5754
5755
5756
5757
5758
5759
5760
5761
5762
5763
5764
5765
5766
5767
5768
5769
5770
5771
5772
5773
5774
5775
5776
5777
5778
5779
5780
5781
5782
5783
5784
5785
5786
5787
5788
5789
5790
5791
5792
5793
5794
5795
5796
5797
5798
5799
5800
5801
5802
5803
5804
5805
5806
5807
5808
5809
5810
5811
5812
5813
5814
5815
5816
5817
5818
5819
5820
5821
5822
5823
5824
5825
5826
5827
5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844
5845
5846
5847
5848
5849
5850
5851
5852
5853
5854
5855
5856
5857
5858
5859
5860
5861
5862
5863
5864
5865
5866
5867
5868
5869
5870
5871
5872
5873
5874
5875
5876
5877
5878
5879
5880
5881
5882
5883
5884
5885
5886
5887
5888
5889
5890
5891
5892
5893
5894
5895
5896
5897
5898
5899
5900
5901
5902
5903
5904
5905
5906
5907
5908
5909
5910
5911
5912
5913
5914
5915
5916
5917
5918
5919
5920
5921
5922
5923
5924
5925
5926
5927
5928
5929
5930
5931
5932
5933
5934
5935
5936
5937
5938
5939
5940
5941
5942
5943
5944
5945
5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
5965
5966
5967
5968
5969
5970
5971
5972
5973
5974
5975
5976
5977
5978
5979
5980
5981
5982
5983
5984
5985
5986
5987
5988
5989
5990
5991
5992
5993
5994
5995
5996
5997
5998
5999
6000
6001
6002
6003
6004
6005
6006
6007
6008
6009
6010
6011
6012
6013
6014
6015
6016
6017
6018
6019
6020
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
6036
6037
6038
6039
6040
6041
6042
6043
6044
6045
6046
6047
6048
6049
6050
6051
6052
6053
6054
6055
6056
6057
6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
6073
6074
6075
6076
6077
6078
6079
6080
6081
6082
6083
6084
6085
6086
6087
6088
6089
6090
6091
6092
6093
6094
6095
6096
6097
6098
6099
6100
6101
6102
6103
6104
6105
6106
6107
6108
6109
6110
6111
6112
6113
6114
6115
6116
6117
6118
6119
6120
6121
6122
6123
6124
6125
6126
6127
6128
6129
6130
6131
6132
6133
6134
6135
6136
6137
6138
6139
6140
6141
6142
6143
6144
6145
6146
6147
6148
6149
6150
6151
6152
6153
6154
6155
6156
6157
6158
6159
6160
6161
6162
6163
6164
6165
6166
6167
6168
6169
6170
6171
6172
6173
6174
6175
6176
6177
6178
6179
6180
6181
6182
6183
6184
6185
6186
6187
6188
6189
6190
6191
6192
6193
6194
6195
6196
6197
6198
6199
6200
6201
6202
6203
6204
6205
6206
6207
6208
6209
6210
6211
6212
6213
6214
6215
6216
6217
6218
6219
6220
6221
6222
6223
6224
6225
6226
6227
6228
6229
6230
6231
6232
6233
6234
6235
6236
6237
6238
6239
6240
6241
6242
6243
6244
6245
6246
6247
6248
6249
6250
6251
6252
6253
6254
6255
6256
6257
6258
6259
6260
6261
6262
6263
6264
6265
6266
6267
6268
6269
6270
6271
6272
6273
6274
6275
6276
6277
6278
6279
6280
6281
6282
6283
6284
6285
6286
6287
6288
6289
6290
6291
6292
6293
6294
6295
6296
6297
6298
6299
6300
6301
6302
6303
6304
6305
6306
6307
6308
6309
6310
6311
6312
6313
6314
6315
6316
6317
6318
6319
6320
6321
6322
6323
6324
6325
6326
6327
6328
6329
6330
6331
6332
6333
6334
6335
6336
6337
6338
6339
6340
6341
6342
6343
6344
6345
6346
6347
6348
6349
6350
6351
6352
6353
6354
6355
6356
6357
6358
6359
6360
6361
6362
6363
6364
6365
6366
6367
6368
6369
6370
6371
6372
6373
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
6387
6388
6389
6390
6391
6392
6393
6394
6395
6396
6397
6398
6399
6400
6401
6402
6403
6404
6405
6406
6407
6408
6409
6410
6411
6412
6413
6414
6415
6416
6417
6418
6419
6420
6421
6422
6423
6424
6425
6426
6427
6428
6429
6430
6431
6432
6433
6434
6435
6436
6437
6438
6439
6440
6441
6442
6443
6444
6445
6446
6447
6448
6449
6450
6451
6452
6453
6454
6455
6456
6457
6458
6459
6460
6461
6462
6463
6464
6465
6466
6467
6468
6469
6470
6471
6472
6473
6474
6475
6476
6477
6478
6479
6480
6481
6482
6483
6484
6485
6486
6487
6488
6489
6490
6491
6492
6493
6494
6495
6496
6497
6498
6499
6500
6501
6502
6503
6504
6505
6506
6507
6508
6509
6510
6511
6512
6513
6514
6515
6516
6517
6518
6519
6520
6521
6522
6523
6524
6525
6526
6527
6528
6529
6530
6531
6532
6533
6534
6535
6536
6537
6538
6539
6540
6541
6542
6543
6544
6545
6546
6547
6548
6549
6550
6551
6552
6553
6554
6555
6556
6557
6558
6559
6560
6561
6562
6563
6564
6565
6566
6567
6568
6569
6570
6571
6572
6573
6574
6575
6576
6577
6578
6579
6580
6581
6582
6583
6584
6585
6586
6587
6588
6589
6590
6591
6592
6593
6594
6595
6596
6597
6598
6599
6600
6601
6602
6603
6604
6605
6606
6607
6608
6609
6610
6611
6612
6613
6614
6615
6616
6617
6618
6619
6620
6621
6622
6623
6624
6625
6626
6627
6628
6629
6630
6631
6632
6633
6634
6635
6636
6637
6638
6639
6640
6641
6642
6643
6644
6645
6646
6647
6648
6649
6650
6651
6652
6653
6654
6655
6656
6657
6658
6659
6660
6661
6662
6663
6664
6665
6666
6667
6668
6669
6670
6671
6672
6673
6674
6675
6676
6677
6678
6679
6680
6681
6682
6683
6684
6685
6686
6687
6688
6689
6690
6691
6692
6693
6694
6695
6696
6697
6698
6699
6700
6701
6702
6703
6704
6705
6706
6707
6708
6709
6710
6711
6712
6713
6714
6715
6716
6717
6718
6719
6720
6721
6722
6723
6724
6725
6726
6727
6728
6729
6730
6731
6732
6733
6734
6735
6736
6737
6738
6739
6740
6741
6742
6743
6744
6745
6746
6747
6748
6749
6750
6751
6752
6753
6754
6755
6756
6757
6758
6759
6760
6761
6762
6763
6764
6765
6766
6767
6768
6769
6770
6771
6772
6773
6774
6775
6776
6777
6778
6779
6780
6781
6782
6783
6784
6785
6786
6787
6788
6789
6790
6791
6792
6793
6794
6795
6796
6797
6798
6799
6800
6801
6802
6803
6804
6805
6806
6807
6808
6809
6810
6811
6812
6813
6814
6815
6816
6817
6818
6819
6820
6821
6822
6823
6824
6825
6826
6827
6828
6829
6830
6831
6832
6833
6834
6835
6836
6837
6838
6839
6840
6841
6842
6843
6844
6845
6846
6847
6848
6849
6850
6851
6852
6853
6854
6855
6856
6857
6858
6859
6860
6861
6862
6863
6864
6865
6866
6867
6868
6869
6870
6871
6872
6873
6874
6875
6876
6877
6878
6879
6880
6881
6882
6883
6884
6885
6886
6887
6888
6889
6890
6891
6892
6893
6894
6895
6896
6897
6898
6899
6900
6901
6902
6903
6904
6905
6906
6907
6908
6909
6910
6911
6912
6913
6914
6915
6916
6917
6918
6919
6920
6921
6922
6923
6924
6925
6926
6927
6928
6929
6930
6931
6932
6933
6934
6935
6936
6937
6938
6939
6940
6941
6942
6943
6944
6945
6946
6947
6948
6949
6950
6951
6952
6953
6954
6955
6956
6957
6958
6959
6960
6961
6962
6963
6964
6965
6966
6967
6968
6969
6970
6971
6972
6973
6974
6975
6976
6977
6978
6979
6980
6981
6982
6983
6984
6985
6986
6987
6988
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
7002
7003
7004
7005
7006
7007
7008
7009
7010
7011
7012
7013
7014
7015
7016
7017
7018
7019
7020
7021
7022
7023
7024
7025
7026
7027
7028
7029
7030
7031
7032
7033
7034
7035
7036
7037
7038
7039
7040
7041
7042
7043
7044
7045
7046
7047
7048
7049
7050
7051
7052
7053
7054
7055
7056
7057
7058
7059
7060
7061
7062
7063
7064
7065
7066
7067
7068
7069
7070
7071
7072
7073
7074
7075
7076
7077
7078
7079
7080
7081
7082
7083
7084
7085
7086
7087
7088
7089
7090
7091
7092
7093
7094
7095
7096
7097
7098
7099
7100
7101
7102
7103
7104
7105
7106
7107
7108
7109
7110
7111
7112
7113
7114
7115
7116
7117
7118
7119
7120
7121
7122
7123
7124
7125
7126
7127
7128
7129
7130
7131
7132
7133
7134
7135
7136
7137
7138
7139
7140
7141
7142
7143
7144
7145
7146
7147
7148
7149
7150
7151
7152
7153
7154
7155
7156
7157
7158
7159
7160
7161
7162
7163
7164
7165
7166
7167
7168
7169
7170
7171
7172
7173
7174
7175
7176
7177
7178
7179
7180
7181
7182
7183
7184
7185
7186
7187
7188
7189
7190
7191
7192
7193
7194
7195
7196
7197
7198
7199
7200
7201
7202
7203
7204
7205
7206
7207
7208
7209
7210
7211
7212
7213
7214
7215
7216
7217
7218
7219
7220
7221
7222
7223
7224
7225
7226
7227
7228
7229
7230
7231
7232
7233
7234
7235
7236
7237
7238
7239
7240
7241
7242
7243
7244
7245
7246
7247
7248
7249
7250
7251
7252
7253
7254
7255
7256
7257
7258
7259
7260
7261
7262
7263
7264
7265
7266
7267
7268
7269
7270
7271
7272
7273
7274
7275
7276
7277
7278
7279
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
7311
7312
7313
7314
7315
7316
7317
7318
7319
7320
7321
7322
7323
7324
7325
7326
7327
7328
7329
7330
7331
7332
7333
7334
7335
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
7361
7362
7363
7364
7365
7366
7367
7368
7369
7370
7371
7372
7373
7374
7375
7376
7377
7378
7379
7380
7381
7382
7383
7384
7385
7386
7387
7388
7389
7390
7391
7392
7393
7394
7395
7396
7397
7398
7399
7400
7401
7402
7403
7404
7405
7406
7407
7408
7409
7410
7411
7412
7413
7414
7415
7416
7417
7418
7419
7420
7421
7422
7423
7424
7425
7426
7427
7428
7429
7430
7431
7432
7433
7434
7435
7436
7437
7438
7439
7440
7441
7442
7443
7444
7445
7446
7447
7448
7449
7450
7451
7452
7453
7454
7455
7456
7457
7458
7459
7460
7461
7462
7463
7464
7465
7466
7467
7468
7469
7470
7471
7472
7473
7474
7475
7476
7477
7478
7479
7480
7481
7482
7483
7484
7485
7486
7487
7488
7489
7490
7491
7492
7493
7494
7495
7496
7497
7498
7499
7500
7501
7502
7503
7504
7505
7506
7507
7508
7509
7510
7511
7512
7513
7514
7515
7516
7517
7518
7519
7520
7521
7522
7523
7524
7525
7526
7527
7528
7529
7530
7531
7532
7533
7534
7535
7536
7537
7538
7539
7540
7541
7542
7543
7544
7545
7546
7547
7548
7549
7550
7551
7552
7553
7554
7555
7556
7557
7558
7559
7560
7561
7562
7563
7564
7565
7566
7567
7568
7569
7570
7571
7572
7573
7574
7575
7576
7577
7578
7579
7580
7581
7582
7583
7584
7585
7586
7587
7588
7589
7590
7591
7592
7593
7594
7595
7596
7597
7598
7599
7600
7601
7602
7603
7604
7605
7606
7607
7608
7609
7610
7611
7612
7613
7614
7615
7616
7617
7618
7619
7620
7621
7622
7623
7624
7625
7626
7627
7628
7629
7630
7631
7632
7633
7634
7635
7636
7637
7638
7639
7640
7641
7642
7643
7644
7645
7646
7647
7648
7649
7650
7651
7652
7653
7654
7655
7656
7657
7658
7659
7660
7661
7662
7663
7664
7665
7666
7667
7668
7669
7670
7671
7672
7673
7674
7675
7676
7677
7678
7679
7680
7681
7682
7683
7684
7685
7686
7687
7688
7689
7690
7691
7692
7693
7694
7695
7696
7697
7698
7699
7700
7701
7702
7703
7704
7705
7706
7707
7708
7709
7710
7711
7712
7713
7714
7715
7716
7717
7718
7719
7720
7721
7722
7723
7724
7725
7726
7727
7728
7729
7730
7731
7732
7733
7734
7735
7736
7737
7738
7739
7740
7741
7742
7743
7744
7745
7746
7747
7748
7749
7750
7751
7752
7753
7754
7755
7756
7757
7758
7759
7760
7761
7762
7763
7764
7765
7766
7767
7768
7769
7770
7771
7772
7773
7774
7775
7776
7777
7778
7779
7780
7781
7782
7783
7784
7785
7786
7787
7788
7789
7790
7791
7792
7793
7794
7795
7796
7797
7798
7799
7800
7801
7802
7803
7804
7805
7806
7807
7808
7809
7810
7811
7812
7813
7814
7815
7816
7817
7818
7819
7820
7821
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
7878
7879
7880
7881
7882
7883
7884
7885
7886
7887
7888
7889
7890
7891
7892
7893
7894
7895
7896
7897
7898
7899
7900
7901
7902
7903
7904
7905
7906
7907
7908
7909
7910
7911
7912
7913
7914
7915
7916
7917
7918
7919
7920
7921
7922
7923
7924
7925
7926
7927
7928
7929
7930
7931
7932
7933
7934
7935
7936
7937
7938
7939
7940
7941
7942
7943
7944
7945
7946
7947
7948
7949
7950
7951
7952
7953
7954
7955
7956
7957
7958
7959
7960
7961
7962
7963
7964
7965
7966
7967
7968
7969
7970
7971
7972
7973
7974
7975
7976
7977
7978
7979
7980
7981
7982
7983
7984
7985
7986
7987
7988
7989
7990
7991
7992
7993
7994
7995
7996
7997
7998
7999
8000
8001
8002
8003
8004
8005
8006
8007
8008
8009
8010
8011
8012
8013
8014
8015
8016
8017
8018
8019
8020
8021
8022
8023
8024
8025
8026
8027
8028
8029
8030
8031
8032
8033
8034
8035
8036
8037
8038
8039
8040
8041
8042
8043
8044
8045
8046
8047
8048
8049
8050
8051
8052
8053
8054
8055
8056
8057
8058
8059
8060
8061
8062
8063
8064
8065
8066
8067
8068
8069
8070
8071
8072
8073
8074
8075
8076
8077
8078
8079
8080
8081
8082
8083
8084
8085
8086
8087
8088
8089
8090
8091
8092
8093
8094
8095
8096
8097
8098
8099
8100
8101
8102
8103
8104
8105
8106
8107
8108
8109
8110
8111
8112
8113
8114
8115
8116
8117
8118
8119
8120
8121
8122
8123
8124
8125
8126
8127
8128
8129
8130
8131
8132
8133
8134
8135
8136
8137
8138
8139
8140
8141
8142
8143
8144
8145
8146
8147
8148
8149
8150
8151
8152
8153
8154
8155
8156
8157
8158
8159
8160
8161
8162
8163
8164
8165
8166
8167
8168
8169
8170
8171
8172
8173
8174
8175
8176
8177
8178
8179
8180
8181
8182
8183
8184
8185
8186
8187
8188
8189
8190
8191
8192
8193
8194
8195
8196
8197
8198
8199
8200
8201
8202
8203
8204
8205
8206
8207
8208
8209
8210
8211
8212
8213
8214
8215
8216
8217
8218
8219
8220
8221
8222
8223
8224
8225
8226
8227
8228
8229
8230
8231
8232
8233
8234
8235
8236
8237
8238
8239
8240
8241
8242
8243
8244
8245
8246
8247
8248
8249
8250
8251
8252
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262
8263
8264
8265
8266
8267
8268
8269
8270
8271
8272
8273
8274
8275
8276
8277
8278
8279
8280
8281
8282
8283
8284
8285
8286
8287
8288
8289
8290
8291
8292
8293
8294
8295
8296
8297
8298
8299
8300
8301
8302
8303
8304
8305
8306
8307
8308
8309
8310
8311
8312
8313
8314
8315
8316
8317
8318
8319
8320
8321
8322
8323
8324
8325
8326
8327
8328
8329
8330
8331
8332
8333
8334
8335
8336
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
8368
8369
8370
8371
8372
8373
8374
8375
8376
8377
8378
8379
8380
8381
8382
8383
8384
8385
8386
8387
8388
8389
8390
8391
8392
8393
8394
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
8417
8418
8419
8420
8421
8422
8423
8424
8425
8426
8427
8428
8429
8430
8431
8432
8433
8434
8435
8436
8437
8438
8439
8440
8441
8442
8443
8444
8445
8446
8447
8448
8449
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
8474
8475
8476
8477
8478
8479
8480
8481
8482
8483
8484
8485
8486
8487
8488
8489
8490
8491
8492
8493
8494
8495
8496
8497
8498
8499
8500
8501
8502
8503
8504
8505
8506
8507
8508
8509
8510
8511
8512
8513
8514
8515
8516
8517
8518
8519
8520
8521
8522
8523
8524
8525
8526
8527
8528
8529
8530
8531
8532
8533
8534
8535
8536
8537
8538
8539
8540
8541
8542
8543
8544
8545
8546
8547
8548
8549
8550
8551
8552
8553
8554
8555
8556
8557
8558
8559
8560
8561
8562
8563
8564
8565
8566
8567
8568
8569
8570
8571
8572
8573
8574
8575
8576
8577
8578
8579
8580
8581
8582
8583
8584
8585
8586
8587
8588
8589
8590
8591
8592
8593
8594
8595
8596
8597
8598
8599
8600
8601
8602
8603
8604
8605
8606
8607
8608
8609
8610
8611
8612
8613
8614
8615
8616
8617
8618
8619
8620
8621
8622
8623
8624
8625
8626
8627
8628
8629
8630
8631
8632
8633
8634
8635
8636
8637
8638
8639
8640
8641
8642
8643
8644
8645
8646
8647
8648
8649
8650
8651
8652
8653
8654
8655
8656
8657
8658
8659
8660
8661
8662
8663
8664
8665
8666
8667
8668
8669
8670
8671
8672
8673
8674
8675
8676
8677
8678
8679
8680
8681
8682
8683
8684
8685
8686
8687
8688
8689
8690
8691
8692
8693
8694
8695
8696
8697
8698
8699
8700
8701
8702
8703
8704
8705
8706
8707
8708
8709
8710
8711
8712
8713
8714
8715
8716
8717
8718
8719
8720
8721
8722
8723
8724
8725
8726
8727
8728
8729
8730
8731
8732
8733
8734
8735
8736
8737
8738
8739
8740
8741
8742
8743
8744
8745
8746
8747
8748
8749
8750
8751
8752
8753
8754
8755
8756
8757
8758
8759
8760
8761
8762
8763
8764
8765
8766
8767
8768
8769
8770
8771
8772
8773
8774
8775
8776
8777
8778
8779
8780
8781
8782
8783
8784
8785
8786
8787
8788
8789
8790
8791
8792
8793
8794
8795
8796
8797
8798
8799
8800
8801
8802
8803
8804
8805
8806
8807
8808
8809
8810
8811
8812
8813
8814
8815
8816
8817
8818
8819
8820
8821
8822
8823
8824
8825
8826
8827
8828
8829
8830
8831
8832
8833
8834
8835
8836
8837
8838
8839
8840
8841
8842
8843
8844
8845
8846
8847
8848
8849
8850
8851
8852
8853
8854
8855
8856
8857
8858
8859
8860
8861
8862
8863
8864
8865
8866
8867
8868
8869
8870
8871
8872
8873
8874
8875
8876
8877
8878
8879
8880
8881
8882
8883
8884
8885
8886
8887
8888
8889
8890
8891
8892
8893
8894
8895
8896
8897
8898
8899
8900
8901
8902
8903
8904
8905
8906
8907
8908
8909
8910
8911
8912
8913
8914
8915
8916
8917
8918
8919
8920
8921
8922
8923
8924
8925
8926
8927
8928
8929
8930
8931
8932
8933
8934
8935
8936
8937
8938
8939
8940
8941
8942
8943
8944
8945
8946
8947
8948
8949
8950
8951
8952
8953
8954
8955
8956
8957
8958
8959
8960
8961
8962
8963
8964
8965
8966
8967
8968
8969
8970
8971
8972
8973
8974
8975
8976
8977
8978
8979
8980
8981
8982
8983
8984
8985
8986
8987
8988
8989
8990
8991
8992
8993
8994
8995
8996
8997
8998
8999
9000
9001
9002
9003
9004
9005
9006
9007
9008
9009
9010
9011
9012
9013
9014
9015
9016
9017
9018
9019
9020
9021
9022
9023
9024
9025
9026
9027
9028
9029
9030
9031
9032
9033
9034
9035
9036
9037
9038
9039
9040
9041
9042
9043
9044
9045
9046
9047
9048
9049
9050
9051
9052
9053
9054
9055
9056
9057
9058
9059
9060
9061
9062
9063
9064
9065
9066
9067
9068
9069
9070
9071
9072
9073
9074
9075
9076
9077
9078
9079
9080
9081
9082
9083
9084
9085
9086
9087
9088
9089
9090
9091
9092
9093
9094
9095
9096
9097
9098
9099
9100
9101
9102
9103
9104
9105
9106
9107
9108
9109
9110
9111
9112
9113
9114
9115
9116
9117
9118
9119
9120
9121
9122
9123
9124
9125
9126
9127
9128
9129
9130
9131
9132
9133
9134
9135
9136
9137
9138
9139
9140
9141
9142
9143
9144
9145
9146
9147
9148
9149
9150
9151
9152
9153
9154
9155
9156
9157
9158
9159
9160
9161
9162
9163
9164
9165
9166
9167
9168
9169
9170
9171
9172
9173
9174
9175
9176
9177
9178
9179
9180
9181
9182
9183
9184
9185
9186
9187
9188
9189
9190
9191
9192
9193
9194
9195
9196
9197
9198
9199
9200
9201
9202
9203
9204
9205
9206
9207
9208
9209
9210
9211
9212
9213
9214
9215
9216
9217
9218
9219
9220
9221
9222
9223
9224
9225
9226
9227
9228
9229
9230
9231
9232
9233
9234
9235
9236
9237
9238
9239
9240
9241
9242
9243
9244
9245
9246
9247
9248
9249
9250
9251
9252
9253
9254
9255
9256
9257
9258
9259
9260
9261
9262
9263
9264
9265
9266
9267
9268
9269
9270
9271
9272
9273
9274
9275
9276
9277
9278
9279
9280
9281
9282
9283
9284
9285
9286
9287
9288
9289
9290
9291
9292
9293
9294
9295
9296
9297
9298
9299
9300
9301
9302
9303
9304
9305
9306
9307
9308
9309
9310
9311
9312
9313
9314
9315
9316
9317
9318
9319
9320
9321
9322
9323
9324
9325
9326
9327
9328
9329
9330
9331
9332
9333
9334
9335
9336
9337
9338
9339
9340
9341
9342
9343
9344
9345
9346
9347
9348
9349
9350
9351
9352
9353
9354
9355
9356
9357
9358
9359
9360
9361
9362
9363
9364
9365
9366
9367
9368
9369
9370
9371
9372
9373
9374
9375
9376
9377
9378
9379
9380
9381
9382
9383
9384
9385
9386
9387
9388
9389
9390
9391
9392
9393
9394
9395
9396
9397
9398
9399
9400
9401
9402
9403
9404
9405
9406
9407
9408
9409
9410
9411
9412
9413
9414
9415
9416
9417
9418
9419
9420
9421
9422
9423
9424
9425
9426
9427
9428
9429
9430
9431
9432
9433
9434
9435
9436
9437
9438
9439
9440
9441
9442
9443
9444
9445
9446
9447
9448
9449
9450
9451
9452
9453
9454
9455
9456
9457
9458
9459
9460
9461
9462
9463
9464
9465
9466
9467
9468
9469
9470
9471
9472
9473
9474
9475
9476
9477
9478
9479
9480
9481
9482
9483
9484
9485
9486
9487
9488
9489
9490
9491
9492
9493
9494
9495
9496
9497
9498
9499
9500
9501
9502
9503
9504
9505
9506
9507
9508
9509
9510
9511
9512
9513
9514
9515
9516
9517
9518
9519
9520
9521
9522
9523
9524
9525
9526
9527
9528
9529
9530
9531
9532
9533
9534
9535
9536
9537
9538
9539
9540
9541
9542
9543
9544
9545
9546
9547
9548
9549
9550
9551
9552
9553
9554
9555
9556
9557
9558
9559
9560
9561
9562
9563
9564
9565
9566
9567
9568
9569
9570
9571
9572
9573
9574
9575
9576
9577
9578
9579
9580
9581
9582
9583
9584
9585
9586
9587
9588
9589
9590
9591
9592
9593
9594
9595
9596
9597
9598
9599
9600
9601
9602
9603
9604
9605
9606
9607
9608
9609
9610
9611
9612
9613
9614
9615
9616
9617
9618
9619
9620
9621
9622
9623
9624
9625
9626
9627
9628
9629
9630
9631
9632
9633
9634
9635
9636
9637
9638
9639
9640
9641
9642
9643
9644
9645
9646
9647
9648
9649
9650
9651
9652
9653
9654
9655
9656
9657
9658
9659
9660
9661
9662
9663
9664
9665
9666
9667
9668
9669
9670
9671
9672
9673
9674
9675
9676
9677
9678
9679
9680
9681
9682
9683
9684
9685
9686
9687
9688
9689
9690
9691
9692
9693
9694
9695
9696
9697
9698
9699
9700
9701
9702
9703
9704
9705
9706
9707
9708
9709
9710
9711
9712
9713
9714
9715
9716
9717
9718
9719
9720
9721
9722
9723
9724
9725
9726
9727
9728
9729
9730
9731
9732
9733
9734
9735
9736
9737
9738
9739
9740
9741
9742
9743
9744
9745
9746
9747
9748
9749
9750
9751
9752
9753
9754
9755
9756
9757
9758
9759
9760
9761
9762
9763
9764
9765
9766
9767
9768
9769
9770
9771
9772
9773
9774
9775
9776
9777
9778
9779
9780
9781
9782
9783
9784
9785
9786
9787
9788
9789
9790
9791
9792
9793
9794
9795
9796
9797
9798
9799
9800
9801
9802
9803
9804
9805
9806
9807
9808
9809
9810
9811
9812
9813
9814
9815
9816
9817
9818
9819
9820
9821
9822
9823
9824
9825
9826
9827
9828
9829
9830
9831
9832
9833
9834
9835
9836
9837
9838
9839
9840
9841
9842
9843
9844
9845
9846
9847
9848
9849
9850
9851
9852
9853
9854
9855
9856
9857
9858
9859
9860
9861
9862
9863
9864
9865
9866
9867
9868
9869
9870
9871
9872
9873
9874
9875
9876
9877
9878
9879
9880
9881
9882
9883
9884
9885
9886
9887
9888
9889
9890
9891
9892
9893
9894
9895
9896
9897
9898
9899
9900
9901
9902
9903
9904
9905
9906
9907
9908
9909
9910
9911
9912
9913
9914
9915
9916
9917
9918
9919
9920
9921
9922
9923
9924
9925
9926
9927
9928
9929
9930
9931
9932
9933
9934
9935
9936
9937
9938
9939
9940
9941
9942
9943
9944
9945
9946
9947
9948
9949
9950
9951
9952
9953
9954
9955
9956
9957
9958
9959
9960
9961
9962
9963
9964
9965
9966
9967
9968
9969
9970
9971
9972
9973
9974
9975
9976
9977
9978
9979
9980
9981
9982
9983
9984
9985
9986
9987
9988
9989
9990
9991
9992
9993
9994
9995
9996
9997
9998
9999
10000
10001
10002
10003
10004
10005
10006
10007
10008
10009
10010
10011
10012
10013
10014
10015
10016
10017
10018
10019
10020
10021
10022
10023
10024
10025
10026
10027
10028
10029
10030
10031
10032
10033
10034
10035
10036
10037
10038
10039
10040
10041
10042
10043
10044
10045
10046
10047
10048
10049
10050
10051
10052
10053
10054
10055
10056
10057
10058
10059
10060
10061
10062
10063
10064
10065
10066
10067
10068
10069
10070
10071
10072
10073
10074
10075
10076
10077
10078
10079
10080
10081
10082
10083
10084
10085
10086
10087
10088
10089
10090
10091
10092
10093
10094
10095
10096
10097
10098
10099
10100
10101
10102
10103
10104
10105
10106
10107
10108
10109
10110
10111
10112
10113
10114
10115
10116
10117
10118
10119
10120
10121
10122
10123
10124
10125
10126
10127
10128
10129
10130
10131
10132
10133
10134
10135
10136
10137
10138
10139
10140
10141
10142
10143
10144
10145
10146
10147
10148
10149
10150
10151
10152
10153
10154
10155
10156
10157
10158
10159
10160
10161
10162
10163
10164
10165
10166
10167
10168
10169
10170
10171
10172
10173
10174
10175
10176
10177
10178
10179
10180
10181
10182
10183
10184
10185
10186
10187
10188
10189
10190
10191
10192
10193
10194
10195
10196
10197
10198
10199
10200
10201
10202
10203
10204
10205
10206
10207
10208
10209
10210
10211
10212
10213
10214
10215
10216
10217
10218
10219
10220
10221
10222
10223
10224
10225
10226
10227
10228
10229
10230
10231
10232
10233
10234
10235
10236
10237
10238
10239
10240
10241
10242
10243
10244
10245
10246
10247
10248
10249
10250
10251
10252
10253
10254
10255
10256
10257
10258
10259
10260
10261
10262
10263
10264
10265
10266
10267
10268
10269
10270
10271
10272
10273
10274
10275
10276
10277
10278
10279
10280
10281
10282
10283
10284
10285
10286
10287
10288
10289
10290
10291
10292
10293
10294
10295
10296
10297
10298
10299
10300
10301
10302
10303
10304
10305
10306
10307
10308
10309
10310
10311
10312
10313
10314
10315
10316
10317
10318
10319
10320
10321
10322
10323
10324
10325
10326
10327
10328
10329
10330
10331
10332
10333
10334
10335
10336
10337
10338
10339
10340
10341
10342
10343
10344
10345
10346
10347
10348
10349
10350
10351
10352
10353
10354
10355
10356
10357
10358
10359
10360
10361
10362
10363
10364
10365
10366
10367
10368
10369
10370
10371
10372
10373
10374
10375
10376
10377
10378
10379
10380
10381
10382
10383
10384
10385
10386
10387
10388
10389
10390
10391
10392
10393
10394
10395
10396
10397
10398
10399
10400
10401
10402
10403
10404
10405
10406
10407
10408
10409
10410
10411
10412
10413
10414
10415
10416
10417
10418
10419
10420
10421
10422
10423
10424
10425
10426
10427
10428
10429
10430
10431
10432
10433
10434
10435
10436
10437
10438
10439
10440
10441
10442
10443
10444
10445
10446
10447
10448
10449
10450
10451
10452
10453
10454
10455
10456
10457
10458
10459
10460
10461
10462
10463
10464
10465
10466
10467
10468
10469
10470
10471
10472
10473
10474
10475
10476
10477
10478
10479
10480
10481
10482
10483
10484
10485
10486
10487
10488
10489
10490
10491
10492
10493
10494
10495
10496
10497
10498
10499
10500
10501
10502
10503
10504
10505
10506
10507
10508
10509
10510
10511
10512
10513
10514
10515
10516
10517
10518
10519
10520
10521
10522
10523
10524
10525
10526
10527
10528
10529
10530
10531
10532
10533
10534
10535
10536
10537
10538
10539
10540
10541
10542
10543
10544
10545
10546
10547
10548
10549
10550
10551
10552
10553
10554
10555
10556
10557
10558
10559
10560
10561
10562
10563
10564
10565
10566
10567
10568
10569
10570
10571
10572
10573
10574
10575
10576
10577
10578
10579
10580
10581
10582
10583
10584
10585
10586
10587
10588
10589
10590
10591
10592
10593
10594
10595
10596
10597
10598
10599
10600
10601
10602
10603
10604
10605
10606
10607
10608
10609
10610
10611
10612
10613
10614
10615
10616
10617
10618
10619
10620
10621
10622
10623
10624
10625
10626
10627
10628
10629
10630
10631
10632
10633
10634
10635
10636
10637
10638
10639
10640
10641
10642
10643
10644
10645
10646
10647
10648
10649
10650
10651
10652
10653
10654
10655
10656
10657
10658
10659
10660
10661
10662
10663
10664
10665
10666
10667
10668
10669
10670
10671
10672
10673
10674
10675
10676
10677
10678
10679
10680
10681
10682
10683
10684
10685
10686
10687
10688
10689
10690
10691
10692
10693
10694
10695
10696
10697
10698
10699
10700
10701
10702
10703
10704
10705
10706
10707
10708
10709
10710
10711
10712
10713
10714
10715
10716
10717
10718
10719
10720
10721
10722
10723
10724
10725
10726
10727
10728
10729
10730
10731
10732
10733
10734
10735
10736
10737
10738
10739
10740
10741
10742
10743
10744
10745
10746
10747
10748
10749
10750
10751
10752
10753
10754
10755
10756
10757
10758
10759
10760
10761
10762
10763
10764
10765
10766
10767
10768
10769
10770
10771
10772
10773
10774
10775
10776
10777
10778
10779
10780
10781
10782
10783
10784
10785
10786
10787
10788
10789
10790
10791
10792
10793
10794
10795
10796
10797
10798
10799
10800
10801
10802
10803
10804
10805
10806
10807
10808
10809
10810
10811
10812
10813
10814
10815
10816
10817
10818
10819
10820
10821
10822
10823
10824
10825
10826
10827
10828
10829
10830
10831
10832
10833
10834
10835
10836
10837
10838
10839
10840
10841
10842
10843
10844
10845
10846
10847
10848
10849
10850
10851
10852
10853
10854
10855
10856
10857
10858
10859
10860
10861
10862
10863
10864
10865
10866
10867
10868
10869
10870
10871
10872
10873
10874
10875
10876
10877
10878
10879
10880
10881
10882
10883
10884
10885
10886
10887
10888
10889
10890
10891
10892
10893
10894
10895
10896
10897
10898
10899
10900
10901
10902
10903
10904
10905
10906
10907
10908
10909
10910
10911
10912
10913
10914
10915
10916
10917
10918
10919
10920
10921
10922
10923
10924
10925
10926
10927
10928
10929
10930
10931
10932
10933
10934
10935
10936
10937
10938
10939
10940
10941
10942
10943
10944
10945
10946
10947
10948
10949
10950
10951
10952
10953
10954
10955
10956
10957
10958
10959
10960
10961
10962
10963
10964
10965
10966
10967
10968
10969
10970
10971
10972
10973
10974
10975
10976
10977
10978
10979
10980
10981
10982
10983
10984
10985
10986
10987
10988
10989
10990
10991
10992
10993
10994
10995
10996
10997
10998
10999
11000
11001
11002
11003
11004
11005
11006
11007
11008
11009
11010
11011
11012
11013
11014
11015
11016
11017
11018
11019
11020
11021
11022
11023
11024
11025
11026
11027
11028
11029
11030
11031
11032
11033
11034
11035
11036
11037
11038
11039
11040
11041
11042
11043
11044
11045
11046
11047
11048
11049
11050
11051
11052
11053
11054
11055
11056
11057
11058
11059
11060
11061
11062
11063
11064
11065
11066
11067
11068
11069
11070
11071
11072
11073
11074
11075
11076
11077
11078
11079
11080
11081
11082
11083
11084
11085
11086
11087
11088
11089
11090
11091
11092
11093
11094
11095
11096
11097
11098
11099
11100
11101
11102
11103
11104
11105
11106
11107
11108
11109
11110
11111
11112
11113
11114
11115
11116
11117
11118
11119
11120
11121
11122
11123
11124
11125
11126
11127
11128
11129
11130
11131
11132
11133
11134
11135
11136
11137
11138
11139
11140
11141
11142
11143
11144
11145
11146
11147
11148
11149
11150
11151
11152
11153
11154
11155
11156
11157
11158
11159
11160
11161
11162
11163
11164
11165
11166
11167
11168
11169
11170
11171
11172
11173
11174
11175
11176
11177
11178
11179
11180
11181
11182
11183
11184
11185
11186
11187
11188
11189
11190
11191
11192
11193
11194
11195
11196
11197
11198
11199
11200
11201
11202
11203
11204
11205
11206
11207
11208
11209
11210
11211
11212
11213
11214
11215
11216
11217
11218
11219
11220
11221
11222
11223
11224
11225
11226
11227
11228
11229
11230
11231
11232
11233
11234
11235
11236
11237
11238
11239
11240
11241
11242
11243
11244
11245
11246
11247
11248
11249
11250
11251
11252
11253
11254
11255
11256
11257
11258
11259
11260
11261
11262
11263
11264
11265
11266
11267
11268
11269
11270
11271
11272
11273
11274
11275
11276
11277
11278
11279
11280
11281
11282
11283
11284
11285
11286
11287
11288
11289
11290
11291
11292
11293
11294
11295
11296
11297
11298
11299
11300
11301
11302
11303
11304
11305
11306
11307
11308
11309
11310
11311
11312
11313
11314
11315
11316
11317
11318
11319
11320
11321
11322
11323
11324
11325
11326
11327
11328
11329
11330
11331
11332
11333
11334
11335
11336
11337
11338
11339
11340
11341
11342
11343
11344
11345
11346
11347
11348
11349
11350
11351
11352
11353
11354
11355
11356
11357
11358
11359
11360
11361
11362
11363
11364
11365
11366
11367
11368
11369
11370
11371
11372
11373
11374
11375
11376
11377
11378
11379
11380
11381
11382
11383
11384
11385
11386
11387
11388
11389
11390
11391
11392
11393
11394
11395
11396
11397
11398
11399
11400
11401
11402
11403
11404
11405
11406
11407
11408
11409
11410
11411
11412
11413
11414
11415
11416
11417
11418
11419
11420
11421
11422
11423
11424
11425
11426
11427
11428
11429
11430
11431
11432
11433
11434
11435
11436
11437
11438
11439
11440
11441
11442
11443
11444
11445
11446
11447
11448
11449
11450
11451
11452
11453
11454
11455
11456
11457
11458
11459
11460
11461
11462
11463
11464
11465
11466
11467
11468
11469
11470
11471
11472
11473
11474
11475
11476
11477
11478
11479
11480
11481
11482
11483
11484
11485
11486
11487
11488
11489
11490
11491
11492
11493
11494
11495
11496
11497
11498
11499
11500
11501
11502
11503
11504
11505
11506
11507
11508
11509
11510
11511
11512
11513
11514
11515
11516
11517
11518
11519
11520
11521
11522
11523
11524
11525
11526
11527
11528
11529
11530
11531
11532
11533
11534
11535
11536
11537
11538
11539
11540
11541
11542
11543
11544
11545
11546
11547
11548
11549
11550
11551
11552
11553
11554
11555
11556
11557
11558
11559
11560
11561
11562
11563
11564
11565
11566
11567
11568
11569
11570
11571
11572
11573
11574
11575
11576
11577
11578
11579
11580
11581
11582
11583
11584
11585
11586
11587
11588
11589
11590
11591
11592
11593
11594
11595
11596
11597
11598
11599
11600
11601
11602
11603
11604
11605
11606
11607
11608
11609
11610
11611
11612
11613
11614
11615
11616
11617
11618
11619
11620
11621
11622
11623
11624
11625
11626
11627
11628
11629
11630
11631
11632
11633
11634
11635
11636
11637
11638
11639
11640
11641
11642
11643
11644
11645
11646
11647
11648
11649
11650
11651
11652
11653
11654
11655
11656
11657
11658
11659
11660
11661
11662
11663
11664
11665
11666
11667
11668
11669
11670
11671
11672
11673
11674
11675
11676
11677
11678
11679
11680
11681
11682
11683
11684
11685
11686
11687
11688
11689
11690
11691
11692
11693
11694
11695
11696
11697
11698
11699
11700
11701
11702
11703
11704
11705
11706
11707
11708
11709
11710
11711
11712
11713
11714
11715
11716
11717
11718
11719
11720
11721
11722
11723
11724
11725
11726
11727
11728
11729
11730
11731
11732
11733
11734
11735
11736
11737
11738
11739
11740
11741
11742
11743
11744
11745
11746
11747
11748
11749
11750
11751
11752
11753
11754
11755
11756
11757
11758
11759
11760
11761
11762
11763
11764
11765
11766
11767
11768
11769
11770
11771
11772
11773
11774
11775
11776
11777
11778
11779
11780
11781
11782
11783
11784
11785
11786
11787
11788
11789
11790
11791
11792
11793
11794
11795
11796
11797
11798
11799
11800
11801
11802
11803
11804
11805
11806
11807
11808
11809
11810
11811
11812
11813
11814
11815
11816
11817
11818
11819
11820
11821
11822
11823
11824
11825
11826
11827
11828
11829
11830
11831
11832
11833
11834
11835
11836
11837
11838
11839
11840
11841
11842
11843
11844
11845
11846
11847
11848
11849
11850
11851
11852
11853
11854
11855
11856
11857
11858
11859
11860
11861
11862
11863
11864
11865
11866
11867
11868
11869
11870
11871
11872
11873
11874
11875
11876
11877
11878
11879
11880
11881
11882
11883
11884
11885
11886
11887
11888
11889
11890
11891
11892
11893
11894
11895
11896
11897
11898
11899
11900
11901
11902
11903
11904
11905
11906
11907
11908
11909
11910
11911
11912
11913
11914
11915
11916
11917
11918
11919
11920
11921
11922
11923
11924
11925
11926
11927
11928
11929
11930
11931
11932
11933
11934
11935
11936
11937
11938
11939
11940
11941
11942
11943
11944
11945
11946
11947
11948
11949
11950
11951
11952
11953
11954
11955
11956
11957
11958
11959
11960
11961
11962
11963
11964
11965
11966
11967
11968
11969
11970
11971
11972
11973
11974
11975
11976
11977
11978
11979
11980
11981
11982
11983
11984
11985
11986
11987
11988
11989
11990
11991
11992
11993
11994
11995
11996
11997
11998
11999
12000
12001
12002
12003
12004
12005
12006
12007
12008
12009
12010
12011
12012
12013
12014
12015
12016
12017
12018
12019
12020
12021
12022
12023
12024
12025
12026
12027
12028
12029
12030
12031
12032
12033
12034
12035
12036
12037
12038
12039
12040
12041
12042
12043
12044
12045
12046
12047
12048
12049
12050
12051
12052
12053
12054
12055
12056
12057
12058
12059
12060
12061
12062
12063
12064
12065
12066
12067
12068
12069
12070
12071
12072
12073
12074
12075
12076
12077
12078
12079
12080
12081
12082
12083
12084
12085
12086
12087
12088
12089
12090
12091
12092
12093
12094
12095
12096
12097
12098
12099
12100
12101
12102
12103
12104
12105
12106
12107
12108
12109
12110
12111
12112
12113
12114
12115
12116
12117
12118
12119
12120
12121
12122
12123
12124
12125
12126
12127
12128
12129
12130
12131
12132
12133
12134
12135
12136
12137
12138
12139
12140
12141
12142
12143
12144
12145
12146
12147
12148
12149
12150
12151
12152
12153
12154
12155
12156
12157
12158
12159
12160
12161
12162
12163
12164
12165
12166
12167
12168
12169
12170
12171
12172
12173
12174
12175
12176
12177
12178
12179
12180
12181
12182
12183
12184
12185
12186
12187
12188
12189
12190
12191
12192
12193
12194
12195
12196
12197
12198
12199
12200
12201
12202
12203
12204
12205
12206
12207
12208
12209
12210
12211
12212
12213
12214
12215
12216
12217
12218
12219
12220
12221
12222
12223
12224
12225
12226
12227
12228
12229
12230
12231
12232
12233
12234
12235
12236
12237
12238
12239
12240
12241
12242
12243
12244
12245
12246
12247
12248
12249
12250
12251
12252
12253
12254
12255
12256
12257
12258
12259
12260
12261
12262
12263
12264
12265
12266
12267
12268
12269
12270
12271
12272
12273
12274
12275
12276
12277
12278
12279
12280
12281
12282
12283
12284
12285
12286
12287
12288
12289
12290
12291
12292
12293
12294
12295
12296
12297
12298
12299
12300
12301
12302
12303
12304
12305
12306
12307
12308
12309
12310
12311
12312
12313
12314
12315
12316
12317
12318
12319
12320
12321
12322
12323
12324
12325
12326
12327
12328
12329
12330
12331
12332
12333
12334
12335
12336
12337
12338
12339
12340
12341
12342
12343
12344
12345
12346
12347
12348
12349
12350
12351
12352
12353
12354
12355
12356
12357
12358
12359
12360
12361
12362
12363
12364
12365
12366
12367
12368
12369
12370
12371
12372
12373
12374
12375
12376
12377
12378
12379
12380
12381
12382
12383
12384
12385
12386
12387
12388
12389
12390
12391
12392
12393
12394
12395
12396
12397
12398
12399
12400
12401
12402
12403
12404
12405
12406
12407
12408
12409
12410
12411
12412
12413
12414
12415
12416
12417
12418
12419
12420
12421
12422
12423
12424
12425
12426
12427
12428
12429
12430
12431
12432
12433
12434
12435
12436
12437
12438
12439
12440
12441
12442
12443
12444
12445
12446
12447
12448
12449
12450
12451
12452
12453
12454
12455
12456
12457
12458
12459
12460
12461
12462
12463
12464
12465
12466
12467
12468
12469
12470
12471
12472
12473
12474
12475
12476
12477
12478
12479
12480
12481
12482
12483
12484
12485
12486
12487
12488
12489
12490
12491
12492
12493
12494
12495
12496
12497
12498
12499
12500
12501
12502
12503
12504
12505
12506
12507
12508
12509
12510
12511
12512
12513
12514
12515
12516
12517
12518
12519
12520
12521
12522
12523
12524
12525
12526
12527
12528
12529
12530
12531
12532
12533
12534
12535
12536
12537
12538
12539
12540
12541
12542
12543
12544
12545
12546
12547
12548
12549
12550
12551
12552
12553
12554
12555
12556
12557
12558
12559
12560
12561
12562
12563
12564
12565
12566
12567
12568
12569
12570
12571
12572
12573
12574
12575
12576
12577
12578
12579
12580
12581
12582
12583
12584
12585
12586
12587
12588
12589
12590
12591
12592
12593
12594
12595
12596
12597
12598
12599
12600
12601
12602
12603
12604
12605
12606
12607
12608
12609
12610
12611
12612
12613
12614
12615
12616
12617
12618
12619
12620
12621
12622
12623
12624
12625
12626
12627
12628
12629
12630
12631
12632
12633
12634
12635
12636
12637
12638
12639
12640
12641
12642
12643
12644
12645
12646
12647
12648
12649
12650
12651
12652
12653
12654
12655
12656
12657
12658
12659
12660
12661
12662
12663
12664
12665
12666
12667
12668
12669
12670
12671
12672
12673
12674
12675
12676
12677
12678
12679
12680
12681
12682
12683
12684
12685
12686
12687
12688
12689
12690
12691
12692
12693
12694
12695
12696
12697
12698
12699
12700
12701
12702
12703
12704
12705
12706
12707
12708
12709
12710
12711
12712
12713
12714
12715
12716
12717
12718
12719
12720
12721
12722
12723
12724
12725
12726
12727
12728
12729
12730
12731
12732
12733
12734
12735
12736
12737
12738
12739
12740
12741
12742
12743
12744
12745
12746
12747
12748
12749
12750
12751
12752
12753
12754
12755
12756
12757
12758
12759
12760
12761
12762
12763
12764
12765
12766
12767
12768
12769
12770
12771
12772
12773
12774
12775
12776
12777
12778
12779
12780
12781
12782
12783
12784
12785
12786
12787
12788
12789
12790
12791
12792
12793
12794
12795
12796
12797
12798
12799
12800
12801
12802
12803
12804
12805
12806
12807
12808
12809
12810
12811
12812
12813
12814
12815
12816
12817
12818
12819
12820
12821
12822
12823
12824
12825
12826
12827
12828
12829
12830
12831
12832
12833
12834
12835
12836
12837
12838
12839
12840
12841
12842
12843
12844
12845
12846
12847
12848
12849
12850
12851
12852
12853
12854
12855
12856
12857
12858
12859
12860
12861
12862
12863
12864
12865
12866
12867
12868
12869
12870
12871
12872
12873
12874
12875
12876
12877
12878
12879
12880
12881
12882
12883
12884
12885
12886
12887
12888
12889
12890
12891
12892
12893
12894
12895
12896
12897
12898
12899
12900
12901
12902
12903
12904
12905
12906
12907
12908
12909
12910
12911
12912
12913
12914
12915
12916
12917
12918
12919
12920
12921
12922
12923
12924
12925
12926
12927
12928
12929
12930
12931
12932
12933
12934
12935
12936
12937
12938
12939
12940
12941
12942
12943
12944
12945
12946
12947
12948
12949
12950
12951
12952
12953
12954
12955
12956
12957
12958
12959
12960
12961
12962
12963
12964
12965
12966
12967
12968
12969
12970
12971
12972
12973
12974
12975
12976
12977
12978
12979
12980
12981
12982
12983
12984
12985
12986
12987
12988
12989
12990
12991
12992
12993
12994
12995
12996
12997
12998
12999
13000
13001
13002
13003
13004
13005
13006
13007
13008
13009
13010
13011
13012
13013
13014
13015
13016
13017
13018
13019
13020
13021
13022
13023
13024
13025
13026
13027
13028
13029
13030
13031
13032
13033
13034
13035
13036
13037
13038
13039
13040
13041
13042
13043
13044
13045
13046
13047
13048
13049
13050
13051
13052
13053
13054
13055
13056
13057
13058
13059
13060
13061
13062
13063
13064
13065
13066
13067
13068
13069
13070
13071
13072
13073
13074
13075
13076
13077
13078
13079
13080
13081
13082
13083
13084
13085
13086
13087
13088
13089
13090
13091
13092
13093
13094
13095
13096
13097
13098
13099
13100
13101
13102
13103
13104
13105
13106
13107
13108
13109
13110
13111
13112
13113
13114
13115
13116
13117
13118
13119
13120
13121
13122
13123
13124
13125
13126
13127
13128
13129
13130
13131
13132
13133
13134
13135
13136
13137
13138
13139
13140
13141
13142
13143
13144
13145
13146
13147
13148
13149
13150
13151
13152
13153
13154
13155
13156
13157
13158
13159
13160
13161
13162
13163
13164
13165
13166
13167
13168
13169
13170
13171
13172
13173
13174
13175
13176
13177
13178
13179
13180
13181
13182
13183
13184
13185
13186
13187
13188
13189
13190
13191
13192
13193
13194
13195
13196
13197
13198
13199
13200
13201
13202
13203
13204
13205
13206
13207
13208
13209
13210
13211
13212
13213
13214
13215
13216
13217
13218
13219
13220
13221
13222
13223
13224
13225
13226
13227
13228
13229
13230
13231
13232
13233
13234
13235
13236
13237
13238
13239
13240
13241
13242
13243
13244
13245
13246
13247
13248
13249
13250
13251
13252
13253
13254
13255
13256
13257
13258
13259
13260
13261
13262
13263
13264
13265
13266
13267
13268
13269
13270
13271
13272
13273
13274
13275
13276
13277
13278
13279
13280
13281
13282
13283
13284
13285
13286
13287
13288
13289
13290
13291
13292
13293
13294
13295
13296
13297
13298
13299
13300
13301
13302
13303
13304
13305
13306
13307
13308
13309
13310
13311
13312
13313
13314
13315
13316
13317
13318
13319
13320
13321
13322
13323
13324
13325
13326
13327
13328
13329
13330
13331
13332
13333
13334
13335
13336
13337
13338
13339
13340
13341
13342
13343
13344
13345
13346
13347
13348
13349
13350
13351
13352
13353
13354
13355
13356
13357
13358
13359
13360
13361
13362
13363
13364
13365
13366
13367
13368
13369
13370
13371
13372
13373
13374
13375
13376
13377
13378
13379
13380
13381
13382
13383
13384
13385
13386
13387
13388
13389
13390
13391
13392
13393
13394
13395
13396
13397
13398
13399
13400
13401
13402
13403
13404
13405
13406
13407
13408
13409
13410
13411
13412
13413
13414
13415
13416
13417
13418
13419
13420
13421
13422
13423
13424
13425
13426
13427
13428
13429
13430
13431
13432
13433
13434
13435
13436
13437
13438
13439
13440
13441
13442
13443
13444
13445
13446
13447
13448
13449
13450
13451
13452
13453
13454
13455
13456
13457
13458
13459
13460
13461
13462
13463
13464
13465
13466
13467
13468
13469
13470
13471
13472
13473
13474
13475
13476
13477
13478
13479
13480
13481
13482
13483
13484
13485
13486
13487
13488
13489
13490
13491
13492
13493
13494
13495
13496
13497
13498
13499
13500
13501
13502
13503
13504
13505
13506
13507
13508
13509
13510
13511
13512
13513
13514
13515
13516
13517
13518
13519
13520
13521
13522
13523
13524
13525
13526
13527
13528
13529
13530
13531
13532
13533
13534
13535
13536
13537
13538
13539
13540
13541
13542
13543
13544
13545
13546
13547
13548
13549
13550
13551
13552
13553
13554
13555
13556
13557
13558
13559
13560
13561
13562
13563
13564
13565
13566
13567
13568
13569
13570
13571
13572
13573
13574
13575
13576
13577
13578
13579
13580
13581
13582
13583
13584
13585
13586
13587
13588
13589
13590
13591
13592
13593
13594
13595
13596
13597
13598
13599
13600
13601
13602
13603
13604
13605
13606
13607
13608
13609
13610
13611
13612
13613
13614
13615
13616
13617
13618
13619
13620
13621
13622
13623
13624
13625
13626
13627
13628
13629
13630
13631
13632
13633
13634
13635
13636
13637
13638
13639
13640
13641
13642
13643
13644
13645
13646
13647
13648
13649
13650
13651
13652
13653
13654
13655
13656
13657
13658
13659
13660
13661
13662
13663
13664
13665
13666
13667
13668
13669
13670
13671
13672
13673
13674
13675
13676
13677
13678
13679
13680
13681
13682
13683
13684
13685
13686
13687
13688
13689
13690
13691
13692
13693
13694
13695
13696
13697
13698
13699
13700
13701
13702
13703
13704
13705
13706
13707
13708
13709
13710
13711
13712
13713
13714
13715
13716
13717
13718
13719
13720
13721
13722
13723
13724
13725
13726
13727
13728
13729
13730
13731
13732
13733
13734
13735
13736
13737
13738
13739
13740
13741
13742
13743
13744
13745
13746
13747
13748
13749
13750
13751
13752
13753
13754
13755
13756
13757
13758
13759
13760
13761
13762
13763
13764
13765
13766
13767
13768
13769
13770
13771
13772
13773
13774
13775
13776
13777
13778
13779
13780
13781
13782
13783
13784
13785
13786
13787
13788
13789
13790
13791
13792
13793
13794
13795
13796
13797
13798
13799
13800
13801
13802
13803
13804
13805
13806
13807
13808
13809
13810
13811
13812
13813
13814
13815
13816
13817
13818
13819
13820
13821
13822
13823
13824
13825
13826
13827
13828
13829
13830
13831
13832
13833
13834
13835
13836
13837
13838
13839
13840
13841
13842
13843
13844
13845
13846
13847
13848
13849
13850
13851
13852
13853
13854
13855
13856
13857
13858
13859
13860
13861
13862
13863
13864
13865
13866
13867
13868
13869
13870
13871
13872
13873
13874
13875
13876
13877
13878
13879
13880
13881
13882
13883
13884
13885
13886
13887
13888
13889
13890
13891
13892
13893
13894
13895
13896
13897
13898
13899
13900
13901
13902
13903
13904
13905
13906
13907
13908
13909
13910
13911
13912
13913
13914
13915
13916
13917
13918
13919
13920
13921
13922
13923
13924
13925
13926
13927
13928
13929
13930
13931
13932
13933
13934
13935
13936
13937
13938
13939
13940
13941
13942
13943
13944
13945
13946
13947
13948
13949
13950
13951
13952
13953
13954
13955
13956
13957
13958
13959
13960
13961
13962
13963
13964
13965
13966
13967
13968
13969
13970
13971
13972
13973
13974
13975
13976
13977
13978
13979
13980
13981
13982
13983
13984
13985
13986
13987
13988
13989
13990
13991
13992
13993
13994
13995
13996
13997
13998
13999
14000
14001
14002
14003
14004
14005
14006
14007
14008
14009
14010
14011
14012
14013
14014
14015
14016
14017
14018
14019
14020
14021
14022
14023
14024
14025
14026
14027
14028
14029
14030
14031
14032
14033
14034
14035
14036
14037
14038
14039
14040
14041
14042
14043
14044
14045
14046
14047
14048
14049
14050
14051
14052
14053
14054
14055
14056
14057
14058
14059
14060
14061
14062
14063
14064
14065
14066
14067
14068
14069
14070
14071
14072
14073
14074
14075
14076
14077
14078
14079
14080
14081
14082
14083
14084
14085
14086
14087
14088
14089
14090
14091
14092
14093
14094
14095
14096
14097
14098
14099
14100
14101
14102
14103
14104
14105
14106
14107
14108
14109
14110
14111
14112
14113
14114
14115
14116
14117
14118
14119
14120
14121
14122
14123
14124
14125
14126
14127
14128
14129
14130
14131
14132
14133
14134
14135
14136
14137
14138
14139
14140
14141
14142
14143
14144
14145
14146
14147
14148
14149
14150
14151
14152
14153
14154
14155
14156
14157
14158
14159
14160
14161
14162
14163
14164
14165
14166
14167
14168
14169
14170
14171
14172
14173
14174
14175
14176
14177
14178
14179
14180
14181
14182
14183
14184
14185
14186
14187
14188
14189
14190
14191
14192
14193
14194
14195
14196
14197
14198
14199
14200
14201
14202
14203
14204
14205
14206
14207
14208
14209
14210
14211
14212
14213
14214
14215
14216
14217
14218
14219
14220
14221
14222
14223
14224
14225
14226
14227
14228
14229
14230
14231
14232
14233
14234
14235
14236
14237
14238
14239
14240
14241
14242
14243
14244
14245
14246
14247
14248
14249
14250
14251
14252
14253
14254
14255
14256
14257
14258
14259
14260
14261
14262
14263
14264
14265
14266
14267
14268
14269
14270
14271
14272
14273
14274
14275
14276
14277
14278
14279
14280
14281
14282
14283
14284
14285
14286
14287
14288
14289
14290
14291
14292
14293
14294
14295
14296
14297
14298
14299
14300
14301
14302
14303
14304
14305
14306
14307
14308
14309
14310
14311
14312
14313
14314
14315
14316
14317
14318
14319
14320
14321
14322
14323
14324
14325
14326
14327
14328
14329
14330
14331
14332
14333
14334
14335
14336
14337
14338
14339
14340
14341
14342
14343
14344
14345
14346
14347
14348
14349
14350
14351
14352
14353
14354
14355
14356
14357
14358
14359
14360
14361
14362
14363
14364
14365
14366
14367
14368
14369
14370
14371
14372
14373
14374
14375
14376
14377
14378
14379
14380
14381
14382
14383
14384
14385
14386
14387
14388
14389
14390
14391
14392
14393
14394
14395
14396
14397
14398
14399
14400
14401
14402
14403
14404
14405
14406
14407
14408
14409
14410
14411
14412
14413
14414
14415
14416
14417
14418
14419
14420
14421
14422
14423
14424
14425
14426
14427
14428
14429
14430
14431
14432
14433
14434
14435
14436
14437
14438
14439
14440
14441
14442
14443
14444
14445
14446
14447
14448
14449
14450
14451
14452
14453
14454
14455
14456
14457
14458
14459
14460
14461
14462
14463
14464
14465
14466
14467
14468
14469
14470
14471
14472
14473
14474
14475
14476
14477
14478
14479
14480
14481
14482
14483
14484
14485
14486
14487
14488
14489
14490
14491
14492
14493
14494
14495
14496
14497
14498
14499
14500
14501
14502
14503
14504
14505
14506
14507
14508
14509
14510
14511
14512
14513
14514
14515
14516
14517
14518
14519
14520
14521
14522
14523
14524
14525
14526
14527
14528
14529
14530
14531
14532
14533
14534
14535
14536
14537
14538
14539
14540
14541
14542
14543
14544
14545
14546
14547
14548
14549
14550
14551
14552
14553
14554
14555
14556
14557
14558
14559
14560
14561
14562
14563
14564
14565
14566
14567
14568
14569
14570
14571
14572
14573
14574
14575
14576
14577
14578
14579
14580
14581
14582
14583
14584
14585
14586
14587
14588
14589
14590
14591
14592
14593
14594
14595
14596
14597
14598
14599
14600
14601
14602
14603
14604
14605
14606
14607
14608
14609
14610
14611
14612
14613
14614
14615
14616
14617
14618
14619
14620
14621
14622
14623
14624
14625
14626
14627
14628
14629
14630
14631
14632
14633
14634
14635
14636
14637
14638
14639
14640
14641
14642
14643
14644
14645
14646
14647
14648
14649
14650
14651
14652
14653
14654
14655
14656
14657
14658
14659
14660
14661
14662
14663
14664
14665
14666
14667
14668
14669
14670
14671
14672
14673
14674
14675
14676
14677
14678
14679
14680
14681
14682
14683
14684
14685
14686
14687
14688
14689
14690
14691
14692
14693
14694
14695
14696
14697
14698
14699
14700
14701
14702
14703
14704
14705
14706
14707
14708
14709
14710
14711
14712
14713
14714
14715
14716
14717
14718
14719
14720
14721
14722
14723
14724
14725
14726
14727
14728
14729
14730
14731
14732
14733
14734
14735
14736
14737
14738
14739
14740
14741
14742
14743
14744
14745
14746
14747
14748
14749
14750
14751
14752
14753
14754
14755
14756
14757
14758
14759
14760
14761
14762
14763
14764
14765
14766
14767
14768
14769
14770
14771
14772
14773
14774
14775
14776
14777
14778
14779
14780
14781
14782
14783
14784
14785
14786
14787
14788
14789
14790
14791
14792
14793
14794
14795
14796
14797
14798
14799
14800
14801
14802
14803
14804
14805
14806
14807
14808
14809
14810
14811
14812
14813
14814
14815
14816
14817
14818
14819
14820
14821
14822
14823
14824
14825
14826
14827
14828
14829
14830
14831
14832
14833
14834
14835
14836
14837
14838
14839
14840
14841
14842
14843
14844
14845
14846
14847
14848
14849
14850
14851
14852
14853
14854
14855
14856
14857
14858
14859
14860
14861
14862
14863
14864
14865
14866
14867
14868
14869
14870
14871
14872
14873
14874
14875
14876
14877
14878
14879
14880
14881
14882
14883
14884
14885
14886
14887
14888
14889
14890
14891
14892
14893
14894
14895
14896
14897
14898
14899
14900
14901
14902
14903
14904
14905
14906
14907
14908
14909
14910
14911
14912
14913
14914
14915
14916
14917
14918
14919
14920
14921
14922
14923
14924
14925
14926
14927
14928
14929
14930
14931
14932
14933
14934
14935
14936
14937
14938
14939
14940
14941
14942
14943
14944
14945
14946
14947
14948
14949
14950
14951
14952
14953
14954
14955
14956
14957
14958
14959
14960
14961
14962
14963
14964
14965
14966
14967
14968
14969
14970
14971
14972
14973
14974
14975
14976
14977
14978
14979
14980
14981
14982
14983
14984
14985
14986
14987
14988
14989
14990
14991
14992
14993
14994
14995
14996
14997
14998
14999
15000
15001
15002
15003
15004
15005
15006
15007
15008
15009
15010
15011
15012
15013
15014
15015
15016
15017
15018
15019
15020
15021
15022
15023
15024
15025
15026
15027
15028
15029
15030
15031
15032
15033
15034
15035
15036
15037
15038
15039
15040
15041
15042
15043
15044
15045
15046
15047
15048
15049
15050
15051
15052
15053
15054
15055
15056
15057
15058
15059
15060
15061
15062
15063
15064
15065
15066
15067
15068
15069
15070
15071
15072
15073
15074
15075
15076
15077
15078
15079
15080
15081
15082
15083
15084
15085
15086
15087
15088
15089
15090
15091
15092
15093
15094
15095
15096
15097
15098
15099
15100
15101
15102
15103
15104
15105
15106
15107
15108
15109
15110
15111
15112
15113
15114
15115
15116
15117
15118
15119
15120
15121
15122
15123
15124
15125
15126
15127
15128
15129
15130
15131
15132
15133
15134
15135
15136
15137
15138
15139
15140
15141
15142
15143
15144
15145
15146
15147
15148
15149
15150
15151
15152
15153
15154
15155
15156
15157
15158
15159
15160
15161
15162
15163
15164
15165
15166
15167
15168
15169
15170
15171
15172
15173
15174
15175
15176
15177
15178
15179
15180
15181
15182
15183
15184
15185
15186
15187
15188
15189
15190
15191
15192
15193
15194
15195
15196
15197
15198
15199
15200
15201
15202
15203
15204
15205
15206
15207
15208
15209
15210
15211
15212
15213
15214
15215
15216
15217
15218
15219
15220
15221
15222
15223
15224
15225
15226
15227
15228
15229
15230
15231
15232
15233
15234
15235
15236
15237
15238
15239
15240
15241
15242
15243
15244
15245
15246
15247
15248
15249
15250
15251
15252
15253
15254
15255
15256
15257
15258
15259
15260
15261
15262
15263
15264
15265
15266
15267
15268
15269
15270
15271
15272
15273
15274
15275
15276
15277
15278
15279
15280
15281
15282
15283
15284
15285
15286
15287
15288
15289
15290
15291
15292
15293
15294
15295
15296
15297
15298
15299
15300
15301
15302
15303
15304
15305
15306
15307
15308
15309
15310
15311
15312
15313
15314
15315
15316
15317
15318
15319
15320
15321
15322
15323
15324
15325
15326
15327
15328
15329
15330
15331
15332
15333
15334
15335
15336
15337
15338
15339
15340
15341
15342
15343
15344
15345
15346
15347
15348
15349
15350
15351
15352
15353
15354
15355
15356
15357
15358
15359
15360
15361
15362
15363
15364
15365
15366
15367
15368
15369
15370
15371
15372
15373
15374
15375
15376
15377
15378
15379
15380
15381
15382
15383
15384
15385
15386
15387
15388
15389
15390
15391
15392
15393
15394
15395
15396
15397
15398
15399
15400
15401
15402
15403
15404
15405
15406
15407
15408
15409
15410
15411
15412
15413
15414
15415
15416
15417
15418
15419
15420
15421
15422
15423
15424
15425
15426
15427
15428
15429
15430
15431
15432
15433
15434
15435
15436
15437
15438
15439
15440
15441
15442
15443
15444
15445
15446
15447
15448
15449
15450
15451
15452
15453
15454
15455
15456
15457
15458
15459
15460
15461
15462
15463
15464
15465
15466
15467
15468
15469
15470
15471
15472
15473
15474
15475
15476
15477
15478
15479
15480
15481
15482
15483
15484
15485
15486
15487
15488
15489
15490
15491
15492
15493
15494
15495
15496
15497
15498
15499
15500
15501
15502
15503
15504
15505
15506
15507
15508
15509
15510
15511
15512
15513
15514
15515
15516
15517
15518
15519
15520
15521
15522
15523
15524
15525
15526
15527
15528
15529
15530
15531
15532
15533
15534
15535
15536
15537
15538
15539
15540
15541
15542
15543
15544
15545
15546
15547
15548
15549
15550
15551
15552
15553
15554
15555
15556
15557
15558
15559
15560
15561
15562
15563
15564
15565
15566
15567
15568
15569
15570
15571
15572
15573
15574
15575
15576
15577
15578
15579
15580
15581
15582
15583
15584
15585
15586
15587
15588
15589
15590
15591
15592
15593
15594
15595
15596
15597
15598
15599
15600
15601
15602
15603
15604
15605
15606
15607
15608
15609
15610
15611
15612
15613
15614
15615
15616
15617
15618
15619
15620
15621
15622
15623
15624
15625
15626
15627
15628
15629
15630
15631
15632
15633
15634
15635
15636
15637
15638
15639
15640
15641
15642
15643
15644
15645
15646
15647
15648
15649
15650
15651
15652
15653
15654
15655
15656
15657
15658
15659
15660
15661
15662
15663
15664
15665
15666
15667
15668
15669
15670
15671
15672
15673
15674
15675
15676
15677
15678
15679
15680
15681
15682
15683
15684
15685
15686
15687
15688
15689
15690
15691
15692
15693
15694
15695
15696
15697
15698
15699
15700
15701
15702
15703
15704
15705
15706
15707
15708
15709
15710
15711
15712
15713
15714
15715
15716
15717
15718
15719
15720
15721
15722
15723
15724
15725
15726
15727
15728
15729
15730
15731
15732
15733
15734
15735
15736
15737
15738
15739
15740
15741
15742
15743
15744
15745
15746
15747
15748
15749
15750
15751
15752
15753
15754
15755
15756
15757
15758
15759
15760
15761
15762
15763
15764
15765
15766
15767
15768
15769
15770
15771
15772
15773
15774
15775
15776
15777
15778
15779
15780
15781
15782
15783
15784
15785
15786
15787
15788
15789
15790
15791
15792
15793
15794
15795
15796
15797
15798
15799
15800
15801
15802
15803
15804
15805
15806
15807
15808
15809
15810
15811
15812
15813
15814
15815
15816
15817
15818
15819
15820
15821
15822
15823
15824
15825
15826
15827
15828
15829
15830
15831
15832
15833
15834
15835
15836
15837
15838
15839
15840
15841
15842
15843
15844
15845
15846
15847
15848
15849
15850
15851
15852
15853
15854
15855
15856
15857
15858
15859
15860
15861
15862
15863
15864
15865
15866
15867
15868
15869
15870
15871
15872
15873
15874
15875
15876
15877
15878
15879
15880
15881
15882
15883
15884
15885
15886
15887
15888
15889
15890
15891
15892
15893
15894
15895
15896
15897
15898
15899
15900
15901
15902
15903
15904
15905
15906
15907
15908
15909
15910
15911
15912
15913
15914
15915
15916
15917
15918
15919
15920
15921
15922
15923
15924
15925
15926
15927
15928
15929
15930
15931
15932
15933
15934
15935
15936
15937
15938
15939
15940
15941
15942
15943
15944
15945
15946
15947
15948
15949
15950
15951
15952
15953
15954
15955
15956
15957
15958
15959
15960
15961
15962
15963
15964
15965
15966
15967
15968
15969
15970
15971
15972
15973
15974
15975
15976
15977
15978
15979
15980
15981
15982
15983
15984
15985
15986
15987
15988
15989
15990
15991
15992
15993
15994
15995
15996
15997
15998
15999
16000
16001
16002
16003
16004
16005
16006
16007
16008
16009
16010
16011
16012
16013
16014
16015
16016
16017
16018
16019
16020
16021
16022
16023
16024
16025
16026
16027
16028
16029
16030
16031
16032
16033
16034
16035
16036
16037
16038
16039
16040
16041
16042
16043
16044
16045
16046
16047
16048
16049
16050
16051
16052
16053
16054
16055
16056
16057
16058
16059
16060
16061
16062
16063
16064
16065
16066
16067
16068
16069
16070
16071
16072
16073
16074
16075
16076
16077
16078
16079
16080
16081
16082
16083
16084
16085
16086
16087
16088
16089
16090
16091
16092
16093
16094
16095
16096
16097
16098
16099
16100
16101
16102
16103
16104
16105
16106
16107
16108
16109
16110
16111
16112
16113
16114
16115
16116
16117
16118
16119
16120
16121
16122
16123
16124
16125
16126
16127
16128
16129
16130
16131
16132
16133
16134
16135
16136
16137
16138
16139
16140
16141
16142
16143
16144
16145
16146
16147
16148
16149
16150
16151
16152
16153
16154
16155
16156
16157
16158
16159
16160
16161
16162
16163
16164
16165
16166
16167
16168
16169
16170
16171
16172
16173
16174
16175
16176
16177
16178
16179
16180
16181
16182
16183
16184
16185
16186
16187
16188
16189
16190
16191
16192
16193
16194
16195
16196
16197
16198
16199
16200
16201
16202
16203
16204
16205
16206
16207
16208
16209
16210
16211
16212
16213
16214
16215
16216
16217
16218
16219
16220
16221
16222
16223
16224
16225
16226
16227
16228
16229
16230
16231
16232
16233
16234
16235
16236
16237
16238
16239
16240
16241
16242
16243
16244
16245
16246
16247
16248
16249
16250
16251
16252
16253
16254
16255
16256
16257
16258
16259
16260
16261
16262
16263
16264
16265
16266
16267
16268
16269
16270
16271
16272
16273
16274
16275
16276
16277
16278
16279
16280
16281
16282
16283
16284
16285
16286
16287
16288
16289
16290
16291
16292
16293
16294
16295
16296
16297
16298
16299
16300
16301
16302
16303
16304
16305
16306
16307
16308
16309
16310
16311
16312
16313
16314
16315
16316
16317
16318
16319
16320
16321
16322
16323
16324
16325
16326
16327
16328
16329
16330
16331
16332
16333
16334
16335
16336
16337
16338
16339
16340
16341
16342
16343
16344
16345
16346
16347
16348
16349
16350
16351
16352
16353
16354
16355
16356
16357
16358
16359
16360
16361
16362
16363
16364
16365
16366
16367
16368
16369
16370
16371
16372
16373
16374
16375
16376
16377
16378
16379
16380
16381
16382
16383
16384
16385
16386
16387
16388
16389
16390
16391
16392
16393
16394
16395
16396
16397
16398
16399
16400
16401
16402
16403
16404
16405
16406
16407
16408
16409
16410
16411
16412
16413
16414
16415
16416
16417
16418
16419
16420
16421
16422
16423
16424
16425
16426
16427
16428
16429
16430
16431
16432
16433
16434
16435
16436
16437
16438
16439
16440
16441
16442
16443
16444
16445
16446
16447
16448
16449
16450
16451
16452
16453
16454
16455
16456
16457
16458
16459
16460
16461
16462
16463
16464
16465
16466
16467
16468
16469
16470
16471
16472
16473
16474
16475
16476
16477
16478
16479
16480
16481
16482
16483
16484
16485
16486
16487
16488
16489
16490
16491
16492
16493
16494
16495
16496
16497
16498
16499
16500
16501
16502
16503
16504
16505
16506
16507
16508
16509
16510
16511
16512
16513
16514
16515
16516
16517
16518
16519
16520
16521
16522
16523
16524
16525
16526
16527
16528
16529
16530
16531
16532
16533
16534
16535
16536
16537
16538
16539
16540
16541
16542
16543
16544
16545
16546
16547
16548
16549
16550
16551
16552
16553
16554
16555
16556
16557
16558
16559
16560
16561
16562
16563
16564
16565
16566
16567
16568
16569
16570
16571
16572
16573
16574
16575
16576
16577
16578
16579
16580
16581
16582
16583
16584
16585
16586
16587
16588
16589
16590
16591
16592
16593
16594
16595
16596
16597
16598
16599
16600
16601
16602
16603
16604
16605
16606
16607
16608
16609
16610
16611
16612
16613
16614
16615
16616
16617
16618
16619
16620
16621
16622
16623
16624
16625
16626
16627
16628
16629
16630
16631
16632
16633
16634
16635
16636
16637
16638
16639
16640
16641
16642
16643
16644
16645
16646
16647
16648
16649
16650
16651
16652
16653
16654
16655
16656
16657
16658
16659
16660
16661
16662
16663
16664
16665
16666
16667
16668
16669
16670
16671
16672
16673
16674
16675
16676
16677
16678
16679
16680
16681
16682
16683
16684
16685
16686
16687
16688
16689
16690
16691
16692
16693
16694
16695
16696
16697
16698
16699
16700
16701
16702
16703
16704
16705
16706
16707
16708
16709
16710
16711
16712
16713
16714
16715
16716
16717
16718
16719
16720
16721
16722
16723
16724
16725
16726
16727
16728
16729
16730
16731
16732
16733
16734
16735
16736
16737
16738
16739
16740
16741
16742
16743
16744
16745
16746
16747
16748
16749
16750
16751
16752
16753
16754
16755
16756
16757
16758
16759
16760
16761
16762
16763
16764
16765
16766
16767
16768
16769
16770
16771
16772
16773
16774
16775
16776
16777
16778
16779
16780
16781
16782
16783
16784
16785
16786
16787
16788
16789
16790
16791
16792
16793
16794
16795
16796
16797
16798
16799
16800
16801
16802
16803
16804
16805
16806
16807
16808
16809
16810
16811
16812
16813
16814
16815
16816
16817
16818
16819
16820
16821
16822
16823
16824
16825
16826
16827
16828
16829
16830
16831
16832
16833
16834
16835
16836
16837
16838
16839
16840
16841
16842
16843
16844
16845
16846
16847
16848
16849
16850
16851
16852
16853
16854
16855
16856
16857
16858
16859
16860
16861
16862
16863
16864
16865
16866
16867
16868
16869
16870
16871
16872
16873
16874
16875
16876
16877
16878
16879
16880
16881
16882
16883
16884
16885
16886
16887
16888
16889
16890
16891
16892
16893
16894
16895
16896
16897
16898
16899
16900
16901
16902
16903
16904
16905
16906
16907
16908
16909
16910
16911
16912
16913
16914
16915
16916
16917
16918
16919
16920
16921
16922
16923
16924
16925
16926
16927
16928
16929
16930
16931
16932
16933
16934
16935
16936
16937
16938
16939
16940
16941
16942
16943
16944
16945
16946
16947
16948
16949
16950
16951
16952
16953
16954
16955
16956
16957
16958
16959
16960
16961
16962
16963
16964
16965
16966
16967
16968
16969
16970
16971
16972
16973
16974
16975
16976
16977
16978
16979
16980
16981
16982
16983
16984
16985
16986
16987
16988
16989
16990
16991
16992
16993
16994
16995
16996
16997
16998
16999
17000
17001
17002
17003
17004
17005
17006
17007
17008
17009
17010
17011
17012
17013
17014
17015
17016
17017
17018
17019
17020
17021
17022
17023
17024
17025
17026
17027
17028
17029
17030
17031
17032
17033
17034
17035
17036
17037
17038
17039
17040
17041
17042
17043
17044
17045
17046
17047
17048
17049
17050
17051
17052
17053
17054
17055
17056
17057
17058
17059
17060
17061
17062
17063
17064
17065
17066
17067
17068
17069
17070
17071
17072
17073
17074
17075
17076
17077
17078
17079
17080
17081
17082
17083
17084
17085
17086
17087
17088
17089
17090
17091
17092
17093
17094
17095
17096
17097
17098
17099
17100
17101
17102
17103
17104
17105
17106
17107
17108
17109
17110
17111
17112
17113
17114
17115
17116
17117
17118
17119
17120
17121
17122
17123
17124
17125
17126
17127
17128
17129
17130
17131
17132
17133
17134
17135
17136
17137
17138
17139
17140
17141
17142
17143
17144
17145
17146
17147
17148
17149
17150
17151
17152
17153
17154
17155
17156
17157
17158
17159
17160
17161
17162
17163
17164
17165
17166
17167
17168
17169
17170
17171
17172
17173
17174
17175
17176
17177
17178
17179
17180
17181
17182
17183
17184
17185
17186
17187
17188
17189
17190
17191
17192
17193
17194
17195
17196
17197
17198
17199
17200
17201
17202
17203
17204
17205
17206
17207
17208
17209
17210
17211
17212
17213
17214
17215
17216
17217
17218
17219
17220
17221
17222
17223
17224
17225
17226
17227
17228
17229
17230
17231
17232
17233
17234
17235
17236
17237
17238
17239
17240
17241
17242
17243
17244
17245
17246
17247
17248
17249
17250
17251
17252
17253
17254
17255
17256
17257
17258
17259
17260
17261
17262
17263
17264
17265
17266
17267
17268
17269
17270
17271
17272
17273
17274
17275
17276
17277
17278
17279
17280
17281
17282
17283
17284
17285
17286
17287
17288
17289
17290
17291
17292
17293
17294
17295
17296
17297
17298
17299
17300
17301
17302
17303
17304
17305
17306
17307
17308
17309
17310
17311
17312
17313
17314
17315
17316
17317
17318
17319
17320
17321
17322
17323
17324
17325
17326
17327
17328
17329
17330
17331
17332
17333
17334
17335
17336
17337
17338
17339
17340
17341
17342
17343
17344
17345
17346
17347
17348
17349
17350
17351
17352
17353
17354
17355
17356
17357
17358
17359
17360
17361
17362
17363
17364
17365
17366
17367
17368
17369
17370
17371
17372
17373
17374
17375
17376
17377
17378
17379
17380
17381
17382
17383
17384
17385
17386
17387
17388
17389
17390
17391
17392
17393
17394
17395
17396
17397
17398
17399
17400
17401
17402
17403
17404
17405
17406
17407
17408
17409
17410
17411
17412
17413
17414
17415
17416
17417
17418
17419
17420
17421
17422
17423
17424
17425
17426
17427
17428
17429
17430
17431
17432
17433
17434
17435
17436
17437
17438
17439
17440
17441
17442
17443
17444
17445
17446
17447
17448
17449
17450
17451
17452
17453
17454
17455
17456
17457
17458
17459
17460
17461
17462
17463
17464
17465
17466
17467
17468
17469
17470
17471
17472
17473
17474
17475
17476
17477
17478
17479
17480
17481
17482
17483
17484
17485
17486
17487
17488
17489
17490
17491
17492
17493
17494
17495
17496
17497
17498
17499
17500
17501
17502
17503
17504
17505
17506
17507
17508
17509
17510
17511
17512
17513
17514
17515
17516
17517
17518
17519
17520
17521
17522
17523
17524
17525
17526
17527
17528
17529
17530
17531
17532
17533
17534
17535
17536
17537
17538
17539
17540
17541
17542
17543
17544
17545
17546
17547
17548
17549
17550
17551
17552
17553
17554
17555
17556
17557
17558
17559
17560
17561
17562
17563
17564
17565
17566
17567
17568
17569
17570
17571
17572
17573
17574
17575
17576
17577
17578
17579
17580
17581
17582
17583
17584
17585
17586
17587
17588
17589
17590
17591
17592
17593
17594
17595
17596
17597
17598
17599
17600
17601
17602
17603
17604
17605
17606
17607
17608
17609
17610
17611
17612
17613
17614
17615
17616
17617
17618
17619
17620
17621
17622
17623
17624
17625
17626
17627
17628
17629
17630
17631
17632
17633
17634
17635
17636
17637
17638
17639
17640
17641
17642
17643
17644
17645
17646
17647
17648
17649
17650
17651
17652
17653
17654
17655
17656
17657
17658
17659
17660
17661
17662
17663
17664
17665
17666
17667
17668
17669
17670
17671
17672
17673
17674
17675
17676
17677
17678
17679
17680
17681
17682
17683
17684
17685
17686
17687
17688
17689
17690
17691
17692
17693
17694
17695
17696
17697
17698
17699
17700
17701
17702
17703
17704
17705
17706
17707
17708
17709
17710
17711
17712
17713
17714
17715
17716
17717
17718
17719
17720
17721
17722
17723
17724
17725
17726
17727
17728
17729
17730
17731
17732
17733
17734
17735
17736
17737
17738
17739
17740
17741
17742
17743
17744
17745
17746
17747
17748
17749
17750
17751
17752
17753
17754
17755
17756
17757
17758
17759
17760
17761
17762
17763
17764
17765
17766
17767
17768
17769
17770
17771
17772
17773
17774
17775
17776
17777
17778
17779
17780
17781
17782
17783
17784
17785
17786
17787
17788
17789
17790
17791
17792
17793
17794
17795
17796
17797
17798
17799
17800
17801
17802
17803
17804
17805
17806
17807
17808
17809
17810
17811
17812
17813
17814
17815
17816
17817
17818
17819
17820
17821
17822
17823
17824
17825
17826
17827
17828
17829
17830
17831
17832
17833
17834
17835
17836
17837
17838
17839
17840
17841
17842
17843
17844
17845
17846
17847
17848
17849
17850
17851
17852
17853
17854
17855
17856
17857
17858
17859
17860
17861
17862
17863
17864
17865
17866
17867
17868
17869
17870
17871
17872
17873
17874
17875
17876
17877
17878
17879
17880
17881
17882
17883
17884
17885
17886
17887
17888
17889
17890
17891
17892
17893
17894
17895
17896
17897
17898
17899
17900
17901
17902
17903
17904
17905
17906
17907
17908
17909
17910
17911
17912
17913
17914
17915
17916
17917
17918
17919
17920
17921
17922
17923
17924
17925
17926
17927
17928
17929
17930
17931
17932
17933
17934
17935
17936
17937
17938
17939
17940
17941
17942
17943
17944
17945
17946
17947
17948
17949
17950
17951
17952
17953
17954
17955
17956
17957
17958
17959
17960
17961
17962
17963
17964
17965
17966
17967
17968
17969
17970
17971
17972
17973
17974
17975
17976
17977
17978
17979
17980
17981
17982
17983
17984
17985
17986
17987
17988
17989
17990
17991
17992
17993
17994
17995
17996
17997
17998
17999
18000
18001
18002
18003
18004
18005
18006
18007
18008
18009
18010
18011
18012
18013
18014
18015
18016
18017
18018
18019
18020
18021
18022
18023
18024
18025
18026
18027
18028
18029
18030
18031
18032
18033
18034
18035
18036
18037
18038
18039
18040
18041
18042
18043
18044
18045
18046
18047
18048
18049
18050
18051
18052
18053
18054
18055
18056
18057
18058
18059
18060
18061
18062
18063
18064
18065
18066
18067
18068
18069
18070
18071
18072
18073
18074
18075
18076
18077
18078
18079
18080
18081
18082
18083
18084
18085
18086
18087
18088
18089
18090
18091
18092
18093
18094
18095
18096
18097
18098
18099
18100
18101
18102
18103
18104
18105
18106
18107
18108
18109
18110
18111
18112
18113
18114
18115
18116
18117
18118
18119
18120
18121
18122
18123
18124
18125
18126
18127
18128
18129
18130
18131
18132
18133
18134
18135
18136
18137
18138
18139
18140
18141
18142
18143
18144
18145
18146
18147
18148
18149
18150
18151
18152
18153
18154
18155
18156
18157
18158
18159
18160
18161
18162
18163
18164
18165
18166
18167
18168
18169
18170
18171
18172
18173
18174
18175
18176
18177
18178
18179
18180
18181
18182
18183
18184
18185
18186
18187
18188
18189
18190
18191
18192
18193
18194
18195
18196
18197
18198
18199
18200
18201
18202
18203
18204
18205
18206
18207
18208
18209
18210
18211
18212
18213
18214
18215
18216
18217
18218
18219
18220
18221
18222
18223
18224
18225
18226
18227
18228
18229
18230
18231
18232
18233
18234
18235
18236
18237
18238
18239
18240
18241
18242
18243
18244
18245
18246
18247
18248
18249
18250
18251
18252
18253
18254
18255
18256
18257
18258
18259
18260
18261
18262
18263
18264
18265
18266
18267
18268
18269
18270
18271
18272
18273
18274
18275
18276
18277
18278
18279
18280
18281
18282
18283
18284
18285
18286
18287
18288
18289
18290
18291
18292
18293
18294
18295
18296
18297
18298
18299
18300
18301
18302
18303
18304
18305
18306
18307
18308
18309
18310
18311
18312
18313
18314
18315
18316
18317
18318
18319
18320
18321
18322
18323
18324
18325
18326
18327
18328
18329
18330
18331
18332
18333
18334
18335
18336
18337
18338
18339
18340
18341
18342
18343
18344
18345
18346
18347
18348
18349
18350
18351
18352
18353
18354
18355
18356
18357
18358
18359
18360
18361
18362
18363
18364
18365
18366
18367
18368
18369
18370
18371
18372
18373
18374
18375
18376
18377
18378
18379
18380
18381
18382
18383
18384
18385
18386
18387
18388
18389
18390
18391
18392
18393
18394
18395
18396
18397
18398
18399
18400
18401
18402
18403
18404
18405
18406
18407
18408
18409
18410
18411
18412
18413
18414
18415
18416
18417
18418
18419
18420
18421
18422
18423
18424
18425
18426
18427
18428
18429
18430
18431
18432
18433
18434
18435
18436
18437
18438
18439
18440
18441
18442
18443
18444
18445
18446
18447
18448
18449
18450
18451
18452
18453
18454
18455
18456
18457
18458
18459
18460
18461
18462
18463
18464
18465
18466
18467
18468
18469
18470
18471
18472
18473
18474
18475
18476
18477
18478
18479
18480
18481
18482
18483
18484
18485
18486
18487
18488
18489
18490
18491
18492
18493
18494
18495
18496
18497
18498
18499
18500
18501
18502
18503
18504
18505
18506
18507
18508
18509
18510
18511
18512
18513
18514
18515
18516
18517
18518
18519
18520
18521
18522
18523
18524
18525
18526
18527
18528
18529
18530
18531
18532
18533
18534
18535
18536
18537
18538
18539
18540
18541
18542
18543
18544
18545
18546
18547
18548
18549
18550
18551
18552
18553
18554
18555
18556
18557
18558
18559
18560
18561
18562
18563
18564
18565
18566
18567
18568
18569
18570
18571
18572
18573
18574
18575
18576
18577
18578
18579
18580
18581
18582
18583
18584
18585
18586
18587
18588
18589
18590
18591
18592
18593
18594
18595
18596
18597
18598
18599
18600
18601
18602
18603
18604
18605
18606
18607
18608
18609
18610
18611
18612
18613
18614
18615
18616
18617
18618
18619
18620
18621
18622
18623
18624
18625
18626
18627
18628
18629
18630
18631
18632
18633
18634
18635
18636
18637
18638
18639
18640
18641
18642
18643
18644
18645
18646
18647
18648
18649
18650
18651
18652
18653
18654
18655
18656
18657
18658
18659
18660
18661
18662
18663
18664
18665
18666
18667
18668
18669
18670
18671
18672
18673
18674
18675
18676
18677
18678
18679
18680
18681
18682
18683
18684
18685
18686
18687
18688
18689
18690
18691
18692
18693
18694
18695
18696
18697
18698
18699
18700
18701
18702
18703
18704
18705
18706
18707
18708
18709
18710
18711
18712
18713
18714
18715
18716
18717
18718
18719
18720
18721
18722
18723
18724
18725
18726
18727
18728
18729
18730
18731
18732
18733
18734
18735
18736
18737
18738
18739
18740
18741
18742
18743
18744
18745
18746
18747
18748
18749
18750
18751
18752
18753
18754
18755
18756
18757
18758
18759
18760
18761
18762
18763
18764
18765
18766
18767
18768
18769
18770
18771
18772
18773
18774
18775
18776
18777
18778
18779
18780
18781
18782
18783
18784
18785
18786
18787
18788
18789
18790
18791
18792
18793
18794
18795
18796
18797
18798
18799
18800
18801
18802
18803
18804
18805
18806
18807
18808
18809
18810
18811
18812
18813
18814
18815
18816
18817
18818
18819
18820
18821
18822
18823
18824
18825
18826
18827
18828
18829
18830
18831
18832
18833
18834
18835
18836
18837
18838
18839
18840
18841
18842
18843
18844
18845
18846
18847
18848
18849
18850
18851
18852
18853
18854
18855
18856
18857
18858
18859
18860
18861
18862
18863
18864
18865
18866
18867
18868
18869
18870
18871
18872
18873
18874
18875
18876
18877
18878
18879
18880
18881
18882
18883
18884
18885
18886
18887
18888
18889
18890
18891
18892
18893
18894
18895
18896
18897
18898
18899
18900
18901
18902
18903
18904
18905
18906
18907
18908
18909
18910
18911
18912
18913
18914
18915
18916
18917
18918
18919
18920
18921
18922
18923
18924
18925
18926
18927
18928
18929
18930
18931
18932
18933
18934
18935
18936
18937
18938
18939
18940
18941
18942
18943
18944
18945
18946
18947
18948
18949
18950
18951
18952
18953
18954
18955
18956
18957
18958
18959
18960
18961
18962
18963
18964
18965
18966
18967
18968
18969
18970
18971
18972
18973
18974
18975
18976
18977
18978
18979
18980
18981
18982
18983
18984
18985
18986
18987
18988
18989
18990
18991
18992
18993
18994
18995
18996
18997
18998
18999
19000
19001
19002
19003
19004
19005
19006
19007
19008
19009
19010
19011
19012
19013
19014
19015
19016
19017
19018
19019
19020
19021
19022
19023
19024
19025
19026
19027
19028
19029
19030
19031
19032
19033
19034
19035
19036
19037
19038
19039
19040
19041
19042
19043
19044
19045
19046
19047
19048
19049
19050
19051
19052
19053
19054
19055
19056
19057
19058
19059
19060
19061
19062
19063
19064
19065
19066
19067
19068
19069
19070
19071
19072
19073
19074
19075
19076
19077
19078
19079
19080
19081
19082
19083
19084
19085
19086
19087
19088
19089
19090
19091
19092
19093
19094
19095
19096
19097
19098
19099
19100
19101
19102
19103
19104
19105
19106
19107
19108
19109
19110
19111
19112
19113
19114
19115
19116
19117
19118
19119
19120
19121
19122
19123
19124
19125
19126
19127
19128
19129
19130
19131
19132
19133
19134
19135
19136
19137
19138
19139
19140
19141
19142
19143
19144
19145
19146
19147
19148
19149
19150
19151
19152
19153
19154
19155
19156
19157
19158
19159
19160
19161
19162
19163
19164
19165
19166
19167
19168
19169
19170
19171
19172
19173
19174
19175
19176
19177
19178
19179
19180
19181
19182
19183
19184
19185
19186
19187
19188
19189
19190
19191
19192
19193
19194
19195
19196
19197
19198
19199
19200
19201
19202
19203
19204
19205
19206
19207
19208
19209
19210
19211
19212
19213
19214
19215
19216
19217
19218
19219
19220
19221
19222
19223
19224
19225
19226
19227
19228
19229
19230
19231
19232
19233
19234
19235
19236
19237
19238
19239
19240
19241
19242
19243
19244
19245
19246
19247
19248
19249
19250
19251
19252
19253
19254
19255
19256
19257
19258
19259
19260
19261
19262
19263
19264
19265
19266
19267
19268
19269
19270
19271
19272
19273
19274
19275
19276
19277
19278
19279
19280
19281
19282
19283
19284
19285
19286
19287
19288
19289
19290
19291
19292
19293
19294
19295
19296
19297
19298
19299
19300
19301
19302
19303
19304
19305
19306
19307
19308
19309
19310
19311
19312
19313
19314
19315
19316
19317
19318
19319
19320
19321
19322
19323
19324
19325
19326
19327
19328
19329
19330
19331
19332
19333
19334
19335
19336
19337
19338
19339
19340
19341
19342
19343
19344
19345
19346
19347
19348
19349
19350
19351
19352
19353
19354
19355
19356
19357
19358
19359
19360
19361
19362
19363
19364
19365
19366
19367
19368
19369
19370
19371
19372
19373
19374
19375
19376
19377
19378
19379
19380
19381
19382
19383
19384
19385
19386
19387
19388
19389
19390
19391
19392
19393
19394
19395
19396
19397
19398
19399
19400
19401
19402
19403
19404
19405
19406
19407
19408
19409
19410
19411
19412
19413
19414
19415
19416
19417
19418
19419
19420
19421
19422
19423
19424
19425
19426
19427
19428
19429
19430
19431
19432
19433
19434
19435
19436
19437
19438
19439
19440
19441
19442
19443
19444
19445
19446
19447
19448
19449
19450
19451
19452
19453
19454
19455
19456
19457
19458
19459
19460
19461
19462
19463
19464
19465
19466
19467
19468
19469
19470
19471
19472
19473
19474
19475
19476
19477
19478
19479
19480
19481
19482
19483
19484
19485
19486
19487
19488
19489
19490
19491
19492
19493
19494
19495
19496
19497
19498
19499
19500
19501
19502
19503
19504
19505
19506
19507
19508
19509
19510
19511
19512
19513
19514
19515
19516
19517
19518
19519
19520
19521
19522
19523
19524
19525
19526
19527
19528
19529
19530
19531
19532
19533
19534
19535
19536
19537
19538
19539
19540
19541
19542
19543
19544
19545
19546
19547
19548
19549
19550
19551
19552
19553
19554
19555
19556
19557
19558
19559
19560
19561
19562
19563
19564
19565
19566
19567
19568
19569
19570
19571
19572
19573
19574
19575
19576
19577
19578
19579
19580
19581
19582
19583
19584
19585
19586
19587
19588
19589
19590
19591
19592
19593
19594
19595
19596
19597
19598
19599
19600
19601
19602
19603
19604
19605
19606
19607
19608
19609
19610
19611
19612
19613
19614
19615
19616
19617
19618
19619
19620
19621
19622
19623
19624
19625
19626
19627
19628
19629
19630
19631
19632
19633
19634
19635
19636
19637
19638
19639
19640
19641
19642
19643
19644
19645
19646
19647
19648
19649
19650
19651
19652
19653
19654
19655
19656
19657
19658
19659
19660
19661
19662
19663
19664
19665
19666
19667
19668
19669
19670
19671
19672
19673
19674
19675
19676
19677
19678
19679
19680
19681
19682
19683
19684
19685
19686
19687
19688
19689
19690
19691
19692
19693
19694
19695
19696
19697
19698
19699
19700
19701
19702
19703
19704
19705
19706
19707
19708
19709
19710
19711
19712
19713
19714
19715
19716
19717
19718
19719
19720
19721
19722
19723
19724
19725
19726
19727
19728
19729
19730
19731
19732
19733
19734
19735
19736
19737
19738
19739
19740
19741
19742
19743
19744
19745
19746
19747
19748
19749
19750
19751
19752
19753
19754
19755
19756
19757
19758
19759
19760
19761
19762
19763
19764
19765
19766
19767
19768
19769
19770
19771
19772
19773
19774
19775
19776
19777
19778
19779
19780
19781
19782
19783
19784
19785
19786
19787
19788
19789
19790
19791
19792
19793
19794
19795
19796
19797
19798
19799
19800
19801
19802
19803
19804
19805
19806
19807
19808
19809
19810
19811
19812
19813
19814
19815
19816
19817
19818
19819
19820
19821
19822
19823
19824
19825
19826
19827
19828
19829
19830
19831
19832
19833
19834
19835
19836
19837
19838
19839
19840
19841
19842
19843
19844
19845
19846
19847
19848
19849
19850
19851
19852
19853
19854
19855
19856
19857
19858
19859
19860
19861
19862
19863
19864
19865
19866
19867
19868
19869
19870
19871
19872
19873
19874
19875
19876
19877
19878
19879
19880
19881
19882
19883
19884
19885
19886
19887
19888
19889
19890
19891
19892
19893
19894
19895
19896
19897
19898
19899
19900
19901
19902
19903
19904
19905
19906
19907
19908
19909
19910
19911
19912
19913
19914
19915
19916
19917
19918
19919
19920
19921
19922
19923
19924
19925
19926
19927
19928
19929
19930
19931
19932
19933
19934
19935
19936
19937
19938
19939
19940
19941
19942
19943
19944
19945
19946
19947
19948
19949
19950
19951
19952
19953
19954
19955
19956
19957
19958
19959
19960
19961
19962
19963
19964
19965
19966
19967
19968
19969
19970
19971
19972
19973
19974
19975
19976
19977
19978
19979
19980
19981
19982
19983
19984
19985
19986
19987
19988
19989
19990
19991
19992
19993
19994
19995
19996
19997
19998
19999
20000
20001
20002
20003
20004
20005
20006
20007
20008
20009
20010
20011
20012
20013
20014
20015
20016
20017
20018
20019
20020
20021
20022
20023
20024
20025
20026
20027
20028
20029
20030
20031
20032
20033
20034
20035
20036
20037
20038
20039
20040
20041
20042
20043
20044
20045
20046
20047
20048
20049
20050
20051
20052
20053
20054
20055
20056
20057
20058
20059
20060
20061
20062
20063
20064
20065
20066
20067
20068
20069
20070
20071
20072
20073
20074
20075
20076
20077
20078
20079
20080
20081
20082
20083
20084
20085
20086
20087
20088
20089
20090
20091
20092
20093
20094
20095
20096
20097
20098
20099
20100
20101
20102
20103
20104
20105
20106
20107
20108
20109
20110
20111
20112
20113
20114
20115
20116
20117
20118
20119
20120
20121
20122
20123
20124
20125
20126
20127
20128
20129
20130
20131
20132
20133
20134
20135
20136
20137
20138
20139
20140
20141
20142
20143
20144
20145
20146
20147
20148
20149
20150
20151
20152
20153
20154
20155
20156
20157
20158
20159
20160
20161
20162
20163
20164
20165
20166
20167
20168
20169
20170
20171
20172
20173
20174
20175
20176
20177
20178
20179
20180
20181
20182
20183
20184
20185
20186
20187
20188
20189
20190
20191
20192
20193
20194
20195
20196
20197
20198
20199
20200
20201
20202
20203
20204
20205
20206
20207
20208
20209
20210
20211
20212
20213
20214
20215
20216
20217
20218
20219
20220
20221
20222
20223
20224
20225
20226
20227
20228
20229
20230
20231
20232
20233
20234
20235
20236
20237
20238
20239
20240
20241
20242
20243
20244
20245
20246
20247
20248
20249
20250
20251
20252
20253
20254
20255
20256
20257
20258
20259
20260
20261
20262
20263
20264
20265
20266
20267
20268
20269
20270
20271
20272
20273
20274
20275
20276
20277
20278
20279
20280
20281
20282
20283
20284
20285
20286
20287
20288
20289
20290
20291
20292
20293
20294
20295
20296
20297
20298
20299
20300
20301
20302
20303
20304
20305
20306
20307
20308
20309
20310
20311
20312
20313
20314
20315
20316
20317
20318
20319
20320
20321
20322
20323
20324
20325
20326
20327
20328
20329
20330
20331
20332
20333
20334
20335
20336
20337
20338
20339
20340
20341
20342
20343
20344
20345
20346
20347
20348
20349
20350
20351
20352
20353
20354
20355
20356
20357
20358
20359
20360
20361
20362
20363
20364
20365
20366
20367
20368
20369
20370
20371
20372
20373
20374
20375
20376
20377
20378
20379
20380
20381
20382
20383
20384
20385
20386
20387
20388
20389
20390
20391
20392
20393
20394
20395
20396
20397
20398
20399
20400
20401
20402
20403
20404
20405
20406
20407
20408
20409
20410
20411
20412
20413
20414
20415
20416
20417
20418
20419
20420
20421
20422
20423
20424
20425
20426
20427
20428
20429
20430
20431
20432
20433
20434
20435
20436
20437
20438
20439
20440
20441
20442
20443
20444
20445
20446
20447
20448
20449
20450
20451
20452
20453
20454
20455
20456
20457
20458
20459
20460
20461
20462
20463
20464
20465
20466
20467
20468
20469
20470
20471
20472
20473
20474
20475
20476
20477
20478
20479
20480
20481
20482
20483
20484
20485
20486
20487
20488
20489
20490
20491
20492
20493
20494
20495
20496
20497
20498
20499
20500
20501
20502
20503
20504
20505
20506
20507
20508
20509
20510
20511
20512
20513
20514
20515
20516
20517
20518
20519
20520
20521
20522
20523
20524
20525
20526
20527
20528
20529
20530
20531
20532
20533
20534
20535
20536
20537
20538
20539
20540
20541
20542
20543
20544
20545
20546
20547
20548
20549
20550
20551
20552
20553
20554
20555
20556
20557
20558
20559
20560
20561
20562
20563
20564
20565
20566
20567
20568
20569
20570
20571
20572
20573
20574
20575
20576
20577
20578
20579
20580
20581
20582
20583
20584
20585
20586
20587
20588
20589
20590
20591
20592
20593
20594
20595
20596
20597
20598
20599
20600
20601
20602
20603
20604
20605
20606
20607
20608
20609
20610
20611
20612
20613
20614
20615
20616
20617
20618
20619
20620
20621
20622
20623
20624
20625
20626
20627
20628
20629
20630
20631
20632
20633
20634
20635
20636
20637
20638
20639
20640
20641
20642
20643
20644
20645
20646
20647
20648
20649
20650
20651
20652
20653
20654
20655
20656
20657
20658
20659
20660
20661
20662
20663
20664
20665
20666
20667
20668
20669
20670
20671
20672
20673
20674
20675
20676
20677
20678
20679
20680
20681
20682
20683
20684
20685
20686
20687
20688
20689
20690
20691
20692
20693
20694
20695
20696
20697
20698
20699
20700
20701
20702
20703
20704
20705
20706
20707
20708
20709
20710
20711
20712
20713
20714
20715
20716
20717
20718
20719
20720
20721
20722
20723
20724
20725
20726
20727
20728
20729
20730
20731
20732
20733
20734
20735
20736
20737
20738
20739
20740
20741
20742
20743
20744
20745
20746
20747
20748
20749
20750
20751
20752
20753
20754
20755
20756
20757
20758
20759
20760
20761
20762
20763
20764
20765
20766
20767
20768
20769
20770
20771
20772
20773
20774
20775
20776
20777
20778
20779
20780
20781
20782
20783
20784
20785
20786
20787
20788
20789
20790
20791
20792
20793
20794
20795
20796
20797
20798
20799
20800
20801
20802
20803
20804
20805
20806
20807
20808
20809
20810
20811
20812
20813
20814
20815
20816
20817
20818
20819
20820
20821
20822
20823
20824
20825
20826
20827
20828
20829
20830
20831
20832
20833
20834
20835
20836
20837
20838
20839
20840
20841
20842
20843
20844
20845
20846
20847
20848
20849
20850
20851
20852
20853
20854
20855
20856
20857
20858
20859
20860
20861
20862
20863
20864
20865
20866
20867
20868
20869
20870
20871
20872
20873
20874
20875
20876
20877
20878
20879
20880
20881
20882
20883
20884
20885
20886
20887
20888
20889
20890
20891
20892
20893
20894
20895
20896
20897
20898
20899
20900
20901
20902
20903
20904
20905
20906
20907
20908
20909
20910
20911
20912
20913
20914
20915
20916
20917
20918
20919
20920
20921
20922
20923
20924
20925
20926
20927
20928
20929
20930
20931
20932
20933
20934
20935
20936
20937
20938
20939
20940
20941
20942
20943
20944
20945
20946
20947
20948
20949
20950
20951
20952
20953
20954
20955
20956
20957
20958
20959
20960
20961
20962
20963
20964
20965
20966
20967
20968
20969
20970
20971
20972
20973
20974
20975
20976
20977
20978
20979
20980
20981
20982
20983
20984
20985
20986
20987
20988
20989
20990
20991
20992
20993
20994
20995
20996
20997
20998
20999
21000
21001
21002
21003
21004
21005
21006
21007
21008
21009
21010
21011
21012
21013
21014
21015
21016
21017
21018
21019
21020
21021
21022
21023
21024
21025
21026
21027
21028
21029
21030
21031
21032
21033
21034
21035
21036
21037
21038
21039
21040
21041
21042
21043
21044
21045
21046
21047
21048
21049
21050
21051
21052
21053
21054
21055
21056
21057
21058
21059
21060
21061
21062
21063
21064
21065
21066
21067
21068
21069
21070
21071
21072
21073
21074
21075
21076
21077
21078
21079
21080
21081
21082
21083
21084
21085
21086
21087
21088
21089
21090
21091
21092
21093
21094
21095
21096
21097
21098
21099
21100
21101
21102
21103
21104
21105
21106
21107
21108
21109
21110
21111
21112
21113
21114
21115
21116
21117
21118
21119
21120
21121
21122
21123
21124
21125
21126
21127
21128
21129
21130
21131
21132
21133
21134
21135
21136
21137
21138
21139
21140
21141
21142
21143
21144
21145
21146
21147
21148
21149
21150
21151
21152
21153
21154
21155
21156
21157
21158
21159
21160
21161
21162
21163
21164
21165
21166
21167
21168
21169
21170
21171
21172
21173
21174
21175
21176
21177
21178
21179
21180
21181
21182
21183
21184
21185
21186
21187
21188
21189
21190
21191
21192
21193
21194
21195
21196
21197
21198
21199
21200
21201
21202
21203
21204
21205
21206
21207
21208
21209
21210
21211
21212
21213
21214
21215
21216
21217
21218
21219
21220
21221
21222
21223
21224
21225
21226
21227
21228
21229
21230
21231
21232
21233
21234
21235
21236
21237
21238
21239
21240
21241
21242
21243
21244
21245
21246
21247
21248
21249
21250
21251
21252
21253
21254
21255
21256
21257
21258
21259
21260
21261
21262
21263
21264
21265
21266
21267
21268
21269
21270
21271
21272
21273
21274
21275
21276
21277
21278
21279
21280
21281
21282
21283
21284
21285
21286
21287
21288
21289
21290
21291
21292
21293
21294
21295
21296
21297
21298
21299
21300
21301
21302
21303
21304
21305
21306
21307
21308
21309
21310
21311
21312
21313
21314
21315
21316
21317
21318
21319
21320
21321
21322
21323
21324
21325
21326
21327
21328
21329
21330
21331
21332
21333
21334
21335
21336
21337
21338
21339
21340
21341
21342
21343
21344
21345
21346
21347
21348
21349
21350
21351
21352
21353
21354
21355
21356
21357
21358
21359
21360
21361
21362
21363
21364
21365
21366
21367
21368
21369
21370
21371
21372
21373
21374
21375
21376
21377
21378
21379
21380
21381
21382
21383
21384
21385
21386
21387
21388
21389
21390
21391
21392
21393
21394
21395
21396
21397
21398
21399
21400
21401
21402
21403
21404
21405
21406
21407
21408
21409
21410
21411
21412
21413
21414
21415
21416
21417
21418
21419
21420
21421
21422
21423
21424
21425
21426
21427
21428
21429
21430
21431
21432
21433
21434
21435
21436
21437
21438
21439
21440
21441
21442
21443
21444
21445
21446
21447
21448
21449
21450
21451
21452
21453
21454
21455
21456
21457
21458
21459
21460
21461
21462
21463
21464
21465
21466
21467
21468
21469
21470
21471
21472
21473
21474
21475
21476
21477
21478
21479
21480
21481
21482
21483
21484
21485
21486
21487
21488
21489
21490
21491
21492
21493
21494
21495
21496
21497
21498
21499
21500
21501
21502
21503
21504
21505
21506
21507
21508
21509
21510
21511
21512
21513
21514
21515
21516
21517
21518
21519
21520
21521
21522
21523
21524
21525
21526
21527
21528
21529
21530
21531
21532
21533
21534
21535
21536
21537
21538
21539
21540
21541
21542
21543
21544
21545
21546
21547
21548
21549
21550
21551
21552
21553
21554
21555
21556
21557
21558
21559
21560
21561
21562
21563
21564
21565
21566
21567
21568
21569
21570
21571
21572
21573
21574
21575
21576
21577
21578
21579
21580
21581
21582
21583
21584
21585
21586
21587
21588
21589
21590
21591
21592
21593
21594
21595
21596
21597
21598
21599
21600
21601
21602
21603
21604
21605
21606
21607
21608
21609
21610
21611
21612
21613
21614
21615
21616
21617
21618
21619
21620
21621
21622
21623
21624
21625
21626
21627
21628
21629
21630
21631
21632
21633
21634
21635
21636
21637
21638
21639
21640
21641
21642
21643
21644
21645
21646
21647
21648
21649
21650
21651
21652
21653
21654
21655
21656
21657
21658
21659
21660
21661
21662
21663
21664
21665
21666
21667
21668
21669
21670
21671
21672
21673
21674
21675
21676
21677
21678
21679
21680
21681
21682
21683
21684
21685
21686
21687
21688
21689
21690
21691
21692
21693
21694
21695
21696
21697
21698
21699
21700
21701
21702
21703
21704
21705
21706
21707
21708
21709
21710
21711
21712
21713
21714
21715
21716
21717
21718
21719
21720
21721
21722
21723
21724
21725
21726
21727
21728
21729
21730
21731
21732
21733
21734
21735
21736
21737
21738
21739
21740
21741
21742
21743
21744
21745
21746
21747
21748
21749
21750
21751
21752
21753
21754
21755
21756
21757
21758
21759
21760
21761
21762
21763
21764
21765
21766
21767
21768
21769
21770
21771
21772
21773
21774
21775
21776
21777
21778
21779
21780
21781
21782
21783
21784
21785
21786
21787
21788
21789
21790
21791
21792
21793
21794
21795
21796
21797
21798
21799
21800
21801
21802
21803
21804
21805
21806
21807
21808
21809
21810
21811
21812
21813
21814
21815
21816
21817
21818
21819
21820
21821
21822
21823
21824
21825
21826
21827
21828
21829
21830
21831
21832
21833
21834
21835
21836
21837
21838
21839
21840
21841
21842
21843
21844
21845
21846
21847
21848
21849
21850
21851
21852
21853
21854
21855
21856
21857
21858
21859
21860
21861
21862
21863
21864
21865
21866
21867
21868
21869
21870
21871
21872
21873
21874
21875
21876
21877
21878
21879
21880
21881
21882
21883
21884
21885
21886
21887
21888
21889
21890
21891
21892
21893
21894
21895
21896
21897
21898
21899
21900
21901
21902
21903
21904
21905
21906
21907
21908
21909
21910
21911
21912
21913
21914
21915
21916
21917
21918
21919
21920
21921
21922
21923
21924
21925
21926
21927
21928
21929
21930
21931
21932
21933
21934
21935
21936
21937
21938
21939
21940
21941
21942
21943
21944
21945
21946
21947
21948
21949
21950
21951
21952
21953
21954
21955
21956
21957
21958
21959
21960
21961
21962
21963
21964
21965
21966
21967
21968
21969
21970
21971
21972
21973
21974
21975
21976
21977
21978
21979
21980
21981
21982
21983
21984
21985
21986
21987
21988
21989
21990
21991
21992
21993
21994
21995
21996
21997
21998
21999
22000
22001
22002
22003
22004
22005
22006
22007
22008
22009
22010
22011
22012
22013
22014
22015
22016
22017
22018
22019
22020
22021
22022
22023
22024
22025
22026
22027
22028
22029
22030
22031
22032
22033
22034
22035
22036
22037
22038
22039
22040
22041
22042
22043
22044
22045
22046
22047
22048
22049
22050
22051
22052
22053
22054
22055
22056
22057
22058
22059
22060
22061
22062
22063
22064
22065
22066
22067
22068
22069
22070
22071
22072
22073
22074
22075
22076
22077
22078
22079
22080
22081
22082
22083
22084
22085
22086
22087
22088
22089
22090
22091
22092
22093
22094
22095
22096
22097
22098
22099
22100
22101
22102
22103
22104
22105
22106
22107
22108
22109
22110
22111
22112
22113
22114
22115
22116
22117
22118
22119
22120
22121
22122
22123
22124
22125
22126
22127
22128
22129
22130
22131
22132
22133
22134
22135
22136
22137
22138
22139
22140
22141
22142
22143
22144
22145
22146
22147
22148
22149
22150
22151
22152
22153
22154
22155
22156
22157
22158
22159
22160
22161
22162
22163
22164
22165
22166
22167
22168
22169
22170
22171
22172
22173
22174
22175
22176
22177
22178
22179
22180
22181
22182
22183
22184
22185
22186
22187
22188
22189
22190
22191
22192
22193
22194
22195
22196
22197
22198
22199
22200
22201
22202
22203
22204
22205
22206
22207
22208
22209
22210
22211
22212
22213
22214
22215
22216
22217
22218
22219
22220
22221
22222
22223
22224
22225
22226
22227
22228
22229
22230
22231
22232
22233
22234
22235
22236
22237
22238
22239
22240
22241
22242
22243
22244
22245
22246
22247
22248
22249
22250
22251
22252
22253
22254
22255
22256
22257
22258
22259
22260
22261
22262
22263
22264
22265
22266
22267
22268
22269
22270
22271
22272
22273
22274
22275
22276
22277
22278
22279
22280
22281
22282
22283
22284
22285
22286
22287
22288
22289
22290
22291
22292
22293
22294
22295
22296
22297
22298
22299
22300
22301
22302
22303
22304
22305
22306
22307
22308
22309
22310
22311
22312
22313
22314
22315
22316
22317
22318
22319
22320
22321
22322
22323
22324
22325
22326
22327
22328
22329
22330
22331
22332
22333
22334
22335
22336
22337
22338
22339
22340
22341
22342
22343
22344
22345
22346
22347
22348
22349
22350
22351
22352
22353
22354
22355
22356
22357
22358
22359
22360
22361
22362
22363
22364
22365
22366
22367
22368
22369
22370
22371
22372
22373
22374
22375
22376
22377
22378
22379
22380
22381
22382
22383
22384
22385
22386
22387
22388
22389
22390
22391
22392
22393
22394
22395
22396
22397
22398
22399
22400
22401
22402
22403
22404
22405
22406
22407
22408
22409
22410
22411
22412
22413
22414
22415
22416
22417
22418
22419
22420
22421
22422
22423
22424
22425
22426
22427
22428
22429
22430
22431
22432
22433
22434
22435
22436
22437
22438
22439
22440
22441
22442
22443
22444
22445
22446
22447
22448
22449
22450
22451
22452
22453
22454
22455
22456
22457
22458
22459
22460
22461
22462
22463
22464
22465
22466
22467
22468
22469
22470
22471
22472
22473
22474
22475
22476
22477
22478
22479
22480
22481
22482
22483
22484
22485
22486
22487
22488
22489
22490
22491
22492
22493
22494
22495
22496
22497
22498
22499
22500
22501
22502
22503
22504
22505
22506
22507
22508
22509
22510
22511
22512
22513
22514
22515
22516
22517
22518
22519
22520
22521
22522
22523
22524
22525
22526
22527
22528
22529
22530
22531
22532
22533
22534
22535
22536
22537
22538
22539
22540
22541
22542
22543
22544
22545
22546
22547
22548
22549
22550
22551
22552
22553
22554
22555
22556
22557
22558
22559
22560
22561
22562
22563
22564
22565
22566
22567
22568
22569
22570
22571
22572
22573
22574
22575
22576
22577
22578
22579
22580
22581
22582
22583
22584
22585
22586
22587
22588
22589
22590
22591
22592
22593
22594
22595
22596
22597
22598
22599
22600
22601
22602
22603
22604
22605
22606
22607
22608
22609
22610
22611
22612
22613
22614
22615
22616
22617
22618
22619
22620
22621
22622
22623
22624
22625
22626
22627
22628
22629
22630
22631
22632
22633
22634
22635
22636
22637
22638
22639
22640
22641
22642
22643
22644
22645
22646
22647
22648
22649
22650
22651
22652
22653
22654
22655
22656
22657
22658
22659
22660
22661
22662
22663
22664
22665
22666
22667
22668
22669
22670
22671
22672
22673
22674
22675
22676
22677
22678
22679
22680
22681
22682
22683
22684
22685
22686
22687
22688
22689
22690
22691
22692
22693
22694
22695
22696
22697
22698
22699
22700
22701
22702
22703
22704
22705
22706
22707
22708
22709
22710
22711
22712
22713
22714
22715
22716
22717
22718
22719
22720
22721
22722
22723
22724
22725
22726
22727
22728
22729
22730
22731
22732
22733
22734
22735
22736
22737
22738
22739
22740
22741
22742
22743
22744
22745
22746
22747
22748
22749
22750
22751
22752
22753
22754
22755
22756
22757
22758
22759
22760
22761
22762
22763
22764
22765
22766
22767
22768
22769
22770
22771
22772
22773
22774
22775
22776
22777
22778
22779
22780
22781
22782
22783
22784
22785
22786
22787
22788
22789
22790
22791
22792
22793
22794
22795
22796
22797
22798
22799
22800
22801
22802
22803
22804
22805
22806
22807
22808
22809
22810
22811
22812
22813
22814
22815
22816
22817
22818
22819
22820
22821
22822
22823
22824
22825
22826
22827
22828
22829
22830
22831
22832
22833
22834
22835
22836
22837
22838
22839
22840
22841
22842
22843
22844
22845
22846
22847
22848
22849
22850
22851
22852
22853
22854
22855
22856
22857
22858
22859
22860
22861
22862
22863
22864
22865
22866
22867
22868
22869
22870
22871
22872
22873
22874
22875
22876
22877
22878
22879
22880
22881
22882
22883
22884
22885
22886
22887
22888
22889
22890
22891
22892
22893
22894
22895
22896
22897
22898
22899
22900
22901
22902
22903
22904
22905
22906
22907
22908
22909
22910
22911
22912
22913
22914
22915
22916
22917
22918
22919
22920
22921
22922
22923
22924
22925
22926
22927
22928
22929
22930
22931
22932
22933
22934
22935
22936
22937
22938
22939
22940
22941
22942
22943
22944
22945
22946
22947
22948
22949
22950
22951
22952
22953
22954
22955
22956
22957
22958
22959
22960
22961
22962
22963
22964
22965
22966
22967
22968
22969
22970
22971
22972
22973
22974
22975
22976
22977
22978
22979
22980
22981
22982
22983
22984
22985
22986
22987
22988
22989
22990
22991
22992
22993
22994
22995
22996
22997
22998
22999
23000
23001
23002
23003
23004
23005
23006
23007
23008
23009
23010
23011
23012
23013
23014
23015
23016
23017
23018
23019
23020
23021
23022
23023
23024
23025
23026
23027
23028
23029
23030
23031
23032
23033
23034
23035
23036
23037
23038
23039
23040
23041
23042
23043
23044
23045
23046
23047
23048
23049
23050
23051
23052
23053
23054
23055
23056
23057
23058
23059
23060
23061
23062
23063
23064
23065
23066
23067
23068
23069
23070
23071
23072
23073
23074
23075
23076
23077
23078
23079
23080
23081
23082
23083
23084
23085
23086
23087
23088
23089
23090
23091
23092
23093
23094
23095
23096
23097
23098
23099
23100
23101
23102
23103
23104
23105
23106
23107
23108
23109
23110
23111
23112
23113
23114
23115
23116
23117
23118
23119
23120
23121
23122
23123
23124
23125
23126
23127
23128
23129
23130
23131
23132
23133
23134
23135
23136
23137
23138
23139
23140
23141
23142
23143
23144
23145
23146
23147
23148
23149
23150
23151
23152
23153
23154
23155
23156
23157
23158
23159
23160
23161
23162
23163
23164
23165
23166
23167
23168
23169
23170
23171
23172
23173
23174
23175
23176
23177
23178
23179
23180
23181
23182
23183
23184
23185
23186
23187
23188
23189
23190
23191
23192
23193
23194
23195
23196
23197
23198
23199
23200
23201
23202
23203
23204
23205
23206
23207
23208
23209
23210
23211
23212
23213
23214
23215
23216
23217
23218
23219
23220
23221
23222
23223
23224
23225
23226
23227
23228
23229
23230
23231
23232
23233
23234
23235
23236
23237
23238
23239
23240
23241
23242
23243
23244
23245
23246
23247
23248
23249
23250
23251
23252
23253
23254
23255
23256
23257
23258
23259
23260
23261
23262
23263
23264
23265
23266
23267
23268
23269
23270
23271
23272
23273
23274
23275
23276
23277
23278
23279
23280
23281
23282
23283
23284
23285
23286
23287
23288
23289
23290
23291
23292
23293
23294
23295
23296
23297
23298
23299
23300
23301
23302
23303
23304
23305
23306
23307
23308
23309
23310
23311
23312
23313
23314
23315
23316
23317
23318
23319
23320
23321
23322
23323
23324
23325
23326
23327
23328
23329
23330
23331
23332
23333
23334
23335
23336
23337
23338
23339
23340
23341
23342
23343
23344
23345
23346
23347
23348
23349
23350
23351
23352
23353
23354
23355
23356
23357
23358
23359
23360
23361
23362
23363
23364
23365
23366
23367
23368
23369
23370
23371
23372
23373
23374
23375
23376
23377
23378
23379
23380
23381
23382
23383
23384
23385
23386
23387
23388
23389
23390
23391
23392
23393
23394
23395
23396
23397
23398
23399
23400
23401
23402
23403
23404
23405
23406
23407
23408
23409
23410
23411
23412
23413
23414
23415
23416
23417
23418
23419
23420
23421
23422
23423
23424
23425
23426
23427
23428
23429
23430
23431
23432
23433
23434
23435
23436
23437
23438
23439
23440
23441
23442
23443
23444
23445
23446
23447
23448
23449
23450
23451
23452
23453
23454
23455
23456
23457
23458
23459
23460
23461
23462
23463
23464
23465
23466
23467
23468
23469
23470
23471
23472
23473
23474
23475
23476
23477
23478
23479
23480
23481
23482
23483
23484
23485
23486
23487
23488
23489
23490
23491
23492
23493
23494
23495
23496
23497
23498
23499
23500
23501
23502
23503
23504
23505
23506
23507
23508
23509
23510
23511
23512
23513
23514
23515
23516
23517
23518
23519
23520
23521
23522
23523
23524
23525
23526
23527
23528
23529
23530
23531
23532
23533
23534
23535
23536
23537
23538
23539
23540
23541
23542
23543
23544
23545
23546
23547
23548
23549
23550
23551
23552
23553
23554
23555
23556
23557
23558
23559
23560
23561
23562
23563
23564
23565
23566
23567
23568
23569
23570
23571
23572
23573
23574
23575
23576
23577
23578
23579
23580
23581
23582
23583
23584
23585
23586
23587
23588
23589
23590
23591
23592
23593
23594
23595
23596
23597
23598
23599
23600
23601
23602
23603
23604
23605
23606
23607
23608
23609
23610
23611
23612
23613
23614
23615
23616
23617
23618
23619
23620
23621
23622
23623
23624
23625
23626
23627
23628
23629
23630
23631
23632
23633
23634
23635
23636
23637
23638
23639
23640
23641
23642
23643
23644
23645
23646
23647
23648
23649
23650
23651
23652
23653
23654
23655
23656
23657
23658
23659
23660
23661
23662
23663
23664
23665
23666
23667
23668
23669
23670
23671
23672
23673
23674
23675
23676
23677
23678
23679
23680
23681
23682
23683
23684
23685
23686
23687
23688
23689
23690
23691
23692
23693
23694
23695
23696
23697
23698
23699
23700
23701
23702
23703
23704
23705
23706
23707
23708
23709
23710
23711
23712
23713
23714
23715
23716
23717
23718
23719
23720
23721
23722
23723
23724
23725
23726
23727
23728
23729
23730
23731
23732
23733
23734
23735
23736
23737
23738
23739
23740
23741
23742
23743
23744
23745
23746
23747
23748
23749
23750
23751
23752
23753
23754
23755
23756
23757
23758
23759
23760
23761
23762
23763
23764
23765
23766
23767
23768
23769
23770
23771
23772
23773
23774
23775
23776
23777
23778
23779
23780
23781
23782
23783
23784
23785
23786
23787
23788
23789
23790
23791
23792
23793
23794
23795
23796
23797
23798
23799
23800
23801
23802
23803
23804
23805
23806
23807
23808
23809
23810
23811
23812
23813
23814
23815
23816
23817
23818
23819
23820
23821
23822
23823
23824
23825
23826
23827
23828
23829
23830
23831
23832
23833
23834
23835
23836
23837
23838
23839
23840
23841
23842
23843
23844
23845
23846
23847
23848
23849
23850
23851
23852
23853
23854
23855
23856
23857
23858
23859
23860
23861
23862
23863
23864
23865
23866
23867
23868
23869
23870
23871
23872
23873
23874
23875
23876
23877
23878
23879
23880
23881
23882
23883
23884
23885
23886
23887
23888
23889
23890
23891
23892
23893
23894
23895
23896
23897
23898
23899
23900
23901
23902
23903
23904
23905
23906
23907
23908
23909
23910
23911
23912
23913
23914
23915
23916
23917
23918
23919
23920
23921
23922
23923
23924
23925
23926
23927
23928
23929
23930
23931
23932
23933
23934
23935
23936
23937
23938
23939
23940
23941
23942
23943
23944
23945
23946
23947
23948
23949
23950
23951
23952
23953
23954
23955
23956
23957
23958
23959
23960
23961
23962
23963
23964
23965
23966
23967
23968
23969
23970
23971
23972
23973
23974
23975
23976
23977
23978
23979
23980
23981
23982
23983
23984
23985
23986
23987
23988
23989
23990
23991
23992
23993
23994
23995
23996
23997
23998
23999
24000
24001
24002
24003
24004
24005
24006
24007
24008
24009
24010
24011
24012
24013
24014
24015
24016
24017
24018
24019
24020
24021
24022
24023
24024
24025
24026
24027
24028
24029
24030
24031
24032
24033
24034
24035
24036
24037
24038
24039
24040
24041
24042
24043
24044
24045
24046
24047
24048
24049
24050
24051
24052
24053
24054
24055
24056
24057
24058
24059
24060
24061
24062
24063
24064
24065
24066
24067
24068
24069
24070
24071
24072
24073
24074
24075
24076
24077
24078
24079
24080
24081
24082
24083
24084
24085
24086
24087
24088
24089
24090
24091
24092
24093
24094
24095
24096
24097
24098
24099
24100
24101
24102
24103
24104
24105
24106
24107
24108
24109
24110
24111
24112
24113
24114
24115
24116
24117
24118
24119
24120
24121
24122
24123
24124
24125
24126
24127
24128
24129
24130
24131
24132
24133
24134
24135
24136
24137
24138
24139
24140
24141
24142
24143
24144
24145
24146
24147
24148
24149
24150
24151
24152
24153
24154
24155
24156
24157
24158
24159
24160
24161
24162
24163
24164
24165
24166
24167
24168
24169
24170
24171
24172
24173
24174
24175
24176
24177
24178
24179
24180
24181
24182
24183
24184
24185
24186
24187
24188
24189
24190
24191
24192
24193
24194
24195
24196
24197
24198
24199
24200
24201
24202
24203
24204
24205
24206
24207
24208
24209
24210
24211
24212
24213
24214
24215
24216
24217
24218
24219
24220
24221
24222
24223
24224
24225
24226
24227
24228
24229
24230
24231
24232
24233
24234
24235
24236
24237
24238
24239
24240
24241
24242
24243
24244
24245
24246
24247
24248
24249
24250
24251
24252
24253
24254
24255
24256
24257
24258
24259
24260
24261
24262
24263
24264
24265
24266
24267
24268
24269
24270
24271
24272
24273
24274
24275
24276
24277
24278
24279
24280
24281
24282
24283
24284
24285
24286
24287
24288
24289
24290
24291
24292
24293
24294
24295
24296
24297
24298
24299
24300
24301
24302
24303
24304
24305
24306
24307
24308
24309
24310
24311
24312
24313
24314
24315
24316
24317
24318
24319
24320
24321
24322
24323
24324
24325
24326
24327
24328
24329
24330
24331
24332
24333
24334
24335
24336
24337
24338
24339
24340
24341
24342
24343
24344
24345
24346
24347
24348
24349
24350
24351
24352
24353
24354
24355
24356
24357
24358
24359
24360
24361
24362
24363
24364
24365
24366
24367
24368
24369
24370
24371
24372
24373
24374
24375
24376
24377
24378
24379
24380
24381
24382
24383
24384
24385
24386
24387
24388
24389
24390
24391
24392
24393
24394
24395
24396
24397
24398
24399
24400
24401
24402
24403
24404
24405
24406
24407
24408
24409
24410
24411
24412
24413
24414
24415
24416
24417
24418
24419
24420
24421
24422
24423
24424
24425
24426
24427
24428
24429
24430
24431
24432
24433
24434
24435
24436
24437
24438
24439
24440
24441
24442
24443
24444
24445
24446
24447
24448
24449
24450
24451
24452
24453
24454
24455
24456
24457
24458
24459
24460
24461
24462
24463
24464
24465
24466
24467
24468
24469
24470
24471
24472
24473
24474
24475
24476
24477
24478
24479
24480
24481
24482
24483
24484
24485
24486
24487
24488
24489
24490
24491
24492
24493
24494
24495
24496
24497
24498
24499
24500
24501
24502
24503
24504
24505
24506
24507
24508
24509
24510
24511
24512
24513
24514
24515
24516
24517
24518
24519
24520
24521
24522
24523
24524
24525
24526
24527
24528
24529
24530
24531
24532
24533
24534
24535
24536
24537
24538
24539
24540
24541
24542
24543
24544
24545
24546
24547
24548
24549
24550
24551
24552
24553
24554
24555
24556
24557
24558
24559
24560
24561
24562
24563
24564
24565
24566
24567
24568
24569
24570
24571
24572
24573
24574
24575
24576
24577
24578
24579
24580
24581
24582
24583
24584
24585
24586
24587
24588
24589
24590
24591
24592
24593
24594
24595
24596
24597
24598
24599
24600
24601
24602
24603
24604
24605
24606
24607
24608
24609
24610
24611
24612
24613
24614
24615
24616
24617
24618
24619
24620
24621
24622
24623
24624
24625
24626
24627
24628
24629
24630
24631
24632
24633
24634
24635
24636
24637
24638
24639
24640
24641
24642
24643
24644
24645
24646
24647
24648
24649
24650
24651
24652
24653
24654
24655
24656
24657
24658
24659
24660
24661
24662
24663
24664
24665
24666
24667
24668
24669
24670
24671
24672
24673
24674
24675
24676
24677
24678
24679
24680
24681
24682
24683
24684
24685
24686
24687
24688
24689
24690
24691
24692
24693
24694
24695
24696
24697
24698
24699
24700
24701
24702
24703
24704
24705
24706
24707
24708
24709
24710
24711
24712
24713
24714
24715
24716
24717
24718
24719
24720
24721
24722
24723
24724
24725
24726
24727
24728
24729
24730
24731
24732
24733
24734
24735
24736
24737
24738
24739
24740
24741
24742
24743
24744
24745
24746
24747
24748
24749
24750
24751
24752
24753
24754
24755
24756
24757
24758
24759
24760
24761
24762
24763
24764
24765
24766
24767
24768
24769
24770
24771
24772
24773
24774
24775
24776
24777
24778
24779
24780
24781
24782
24783
24784
24785
24786
24787
24788
24789
24790
24791
24792
24793
24794
24795
24796
24797
24798
24799
24800
24801
24802
24803
24804
24805
24806
24807
24808
24809
24810
24811
24812
24813
24814
24815
24816
24817
24818
24819
24820
24821
24822
24823
24824
24825
24826
24827
24828
24829
24830
24831
24832
24833
24834
24835
24836
24837
24838
24839
24840
24841
24842
24843
24844
24845
24846
24847
24848
24849
24850
24851
24852
24853
24854
24855
24856
24857
24858
24859
24860
24861
24862
24863
24864
24865
24866
24867
24868
24869
24870
24871
24872
24873
24874
24875
24876
24877
24878
24879
24880
24881
24882
24883
24884
24885
24886
24887
24888
24889
24890
24891
24892
24893
24894
24895
24896
24897
24898
24899
24900
24901
24902
24903
24904
24905
24906
24907
24908
24909
24910
24911
24912
24913
24914
24915
24916
24917
24918
24919
24920
24921
24922
24923
24924
24925
24926
24927
24928
24929
24930
24931
24932
24933
24934
24935
24936
24937
24938
24939
24940
24941
24942
24943
24944
24945
24946
24947
24948
24949
24950
24951
24952
24953
24954
24955
24956
24957
24958
24959
24960
24961
24962
24963
24964
24965
24966
24967
24968
24969
24970
24971
24972
24973
24974
24975
24976
24977
24978
24979
24980
24981
24982
24983
24984
24985
24986
24987
24988
24989
24990
24991
24992
24993
24994
24995
24996
24997
24998
24999
25000
25001
25002
25003
25004
25005
25006
25007
25008
25009
25010
25011
25012
25013
25014
25015
25016
25017
25018
25019
25020
25021
25022
25023
25024
25025
25026
25027
25028
25029
25030
25031
25032
25033
25034
25035
25036
25037
25038
25039
25040
25041
25042
25043
25044
25045
25046
25047
25048
25049
25050
25051
25052
25053
25054
25055
25056
25057
25058
25059
25060
25061
25062
25063
25064
25065
25066
25067
25068
25069
25070
25071
25072
25073
25074
25075
25076
25077
25078
25079
25080
25081
25082
25083
25084
25085
25086
25087
25088
25089
25090
25091
25092
25093
25094
25095
25096
25097
25098
25099
25100
25101
25102
25103
25104
25105
25106
25107
25108
25109
25110
25111
25112
25113
25114
25115
25116
25117
25118
25119
25120
25121
25122
25123
25124
25125
25126
25127
25128
25129
25130
25131
25132
25133
25134
25135
25136
25137
25138
25139
25140
25141
25142
25143
25144
25145
25146
25147
25148
25149
25150
25151
25152
25153
25154
25155
25156
25157
25158
25159
25160
25161
25162
25163
25164
25165
25166
25167
25168
25169
25170
25171
25172
25173
25174
25175
25176
25177
25178
25179
25180
25181
25182
25183
25184
25185
25186
25187
25188
25189
25190
25191
25192
25193
25194
25195
25196
25197
25198
25199
25200
25201
25202
25203
25204
25205
25206
25207
25208
25209
25210
25211
25212
25213
25214
25215
25216
25217
25218
25219
25220
25221
25222
25223
25224
25225
25226
25227
25228
25229
25230
25231
25232
25233
25234
25235
25236
25237
25238
25239
25240
25241
25242
25243
25244
25245
25246
25247
25248
25249
25250
25251
25252
25253
25254
25255
25256
25257
25258
25259
25260
25261
25262
25263
25264
25265
25266
25267
25268
25269
25270
25271
25272
25273
25274
25275
25276
25277
25278
25279
25280
25281
25282
25283
25284
25285
25286
25287
25288
25289
25290
25291
25292
25293
25294
25295
25296
25297
25298
25299
25300
25301
25302
25303
25304
25305
25306
25307
25308
25309
25310
25311
25312
25313
25314
25315
25316
25317
25318
25319
25320
25321
25322
25323
25324
25325
25326
25327
25328
25329
25330
25331
25332
25333
25334
25335
25336
25337
25338
25339
25340
25341
25342
25343
25344
25345
25346
25347
25348
25349
25350
25351
25352
25353
25354
25355
25356
25357
25358
25359
25360
25361
25362
25363
25364
25365
25366
25367
25368
25369
25370
25371
25372
25373
25374
25375
25376
25377
25378
25379
25380
25381
25382
25383
25384
25385
25386
25387
25388
25389
25390
25391
25392
25393
25394
25395
25396
25397
25398
25399
25400
25401
25402
25403
25404
25405
25406
25407
25408
25409
25410
25411
25412
25413
25414
25415
25416
25417
25418
25419
25420
25421
25422
25423
25424
25425
25426
25427
25428
25429
25430
25431
25432
25433
25434
25435
25436
25437
25438
25439
25440
25441
25442
25443
25444
25445
25446
25447
25448
25449
25450
25451
25452
25453
25454
25455
25456
25457
25458
25459
25460
25461
25462
25463
25464
25465
25466
25467
25468
25469
25470
25471
25472
25473
25474
25475
25476
25477
25478
25479
25480
25481
25482
25483
25484
25485
25486
25487
25488
25489
25490
25491
25492
25493
25494
25495
25496
25497
25498
25499
25500
25501
25502
25503
25504
25505
25506
25507
25508
25509
25510
25511
25512
25513
25514
25515
25516
25517
25518
25519
25520
25521
25522
25523
25524
25525
25526
25527
25528
25529
25530
25531
25532
25533
25534
25535
25536
25537
25538
25539
25540
25541
25542
25543
25544
25545
25546
25547
25548
25549
25550
25551
25552
25553
25554
25555
25556
25557
25558
25559
25560
25561
25562
25563
25564
25565
25566
25567
25568
25569
25570
25571
25572
25573
25574
25575
25576
25577
25578
25579
25580
25581
25582
25583
25584
25585
25586
25587
25588
25589
25590
25591
25592
25593
25594
25595
25596
25597
25598
25599
25600
25601
25602
25603
25604
25605
25606
25607
25608
25609
25610
25611
25612
25613
25614
25615
25616
25617
25618
25619
25620
25621
25622
25623
25624
25625
25626
25627
25628
25629
25630
25631
25632
25633
25634
25635
25636
25637
25638
25639
25640
25641
25642
25643
25644
25645
25646
25647
25648
25649
25650
25651
25652
25653
25654
25655
25656
25657
25658
25659
25660
25661
25662
25663
25664
25665
25666
25667
25668
25669
25670
25671
25672
25673
25674
25675
25676
25677
25678
25679
25680
25681
25682
25683
25684
25685
25686
25687
25688
25689
25690
25691
25692
25693
25694
25695
25696
25697
25698
25699
25700
25701
25702
25703
25704
25705
25706
25707
25708
25709
25710
25711
25712
25713
25714
25715
25716
25717
25718
25719
25720
25721
25722
25723
25724
25725
25726
25727
25728
25729
25730
25731
25732
25733
25734
25735
25736
25737
25738
25739
25740
25741
25742
25743
25744
25745
25746
25747
25748
25749
25750
25751
25752
25753
25754
25755
25756
25757
25758
25759
25760
25761
25762
25763
25764
25765
25766
25767
25768
25769
25770
25771
25772
25773
25774
25775
25776
25777
25778
25779
25780
25781
25782
25783
25784
25785
25786
25787
25788
25789
25790
25791
25792
25793
25794
25795
25796
25797
25798
25799
25800
25801
25802
25803
25804
25805
25806
25807
25808
25809
25810
25811
25812
25813
25814
25815
25816
25817
25818
25819
25820
25821
25822
25823
25824
25825
25826
25827
25828
25829
25830
25831
25832
25833
25834
25835
25836
25837
25838
25839
25840
25841
25842
25843
25844
25845
25846
25847
25848
25849
25850
25851
25852
25853
25854
25855
25856
25857
25858
25859
25860
25861
25862
25863
25864
25865
25866
25867
25868
25869
25870
25871
25872
25873
25874
25875
25876
25877
25878
25879
25880
25881
25882
25883
25884
25885
25886
25887
25888
25889
25890
25891
25892
25893
25894
25895
25896
25897
25898
25899
25900
25901
25902
25903
25904
25905
25906
25907
25908
25909
25910
25911
25912
25913
25914
25915
25916
25917
25918
25919
25920
25921
25922
25923
25924
25925
25926
25927
25928
25929
25930
25931
25932
25933
25934
25935
25936
25937
25938
25939
25940
25941
25942
25943
25944
25945
25946
25947
25948
25949
25950
25951
25952
25953
25954
25955
25956
25957
25958
25959
25960
25961
25962
25963
25964
25965
25966
25967
25968
25969
25970
25971
25972
25973
25974
25975
25976
25977
25978
25979
25980
25981
25982
25983
25984
25985
25986
25987
25988
25989
25990
25991
25992
25993
25994
25995
25996
25997
25998
25999
26000
26001
26002
26003
26004
26005
26006
26007
26008
26009
26010
26011
26012
26013
26014
26015
26016
26017
26018
26019
26020
26021
26022
26023
26024
26025
26026
26027
26028
26029
26030
26031
26032
26033
26034
26035
26036
26037
26038
26039
26040
26041
26042
26043
26044
26045
26046
26047
26048
26049
26050
26051
26052
26053
26054
26055
26056
26057
26058
26059
26060
26061
26062
26063
26064
26065
26066
26067
26068
26069
26070
26071
26072
26073
26074
26075
26076
26077
26078
26079
26080
26081
26082
26083
26084
26085
26086
26087
26088
26089
26090
26091
26092
26093
26094
26095
26096
26097
26098
26099
26100
26101
26102
26103
26104
26105
26106
26107
26108
26109
26110
26111
26112
26113
26114
26115
26116
26117
26118
26119
26120
26121
26122
26123
26124
26125
26126
26127
26128
26129
26130
26131
26132
26133
26134
26135
26136
26137
26138
26139
26140
26141
26142
26143
26144
26145
26146
26147
26148
26149
26150
26151
26152
26153
26154
26155
26156
26157
26158
26159
26160
26161
26162
26163
26164
26165
26166
26167
26168
26169
26170
26171
26172
26173
26174
26175
26176
26177
26178
26179
26180
26181
26182
26183
26184
26185
26186
26187
26188
26189
26190
26191
26192
26193
26194
26195
26196
26197
26198
26199
26200
26201
26202
26203
26204
26205
26206
26207
26208
26209
26210
26211
26212
26213
26214
26215
26216
26217
26218
26219
26220
26221
26222
26223
26224
26225
26226
26227
26228
26229
26230
26231
26232
26233
26234
26235
26236
26237
26238
26239
26240
26241
26242
26243
26244
26245
26246
26247
26248
26249
26250
26251
26252
26253
26254
26255
26256
26257
26258
26259
26260
26261
26262
26263
26264
26265
26266
26267
26268
26269
26270
26271
26272
26273
26274
26275
26276
26277
26278
26279
26280
26281
26282
26283
26284
26285
26286
26287
26288
26289
26290
26291
26292
26293
26294
26295
26296
26297
26298
26299
26300
26301
26302
26303
26304
26305
26306
26307
26308
26309
26310
26311
26312
26313
26314
26315
26316
26317
26318
26319
26320
26321
26322
26323
26324
26325
26326
26327
26328
26329
26330
26331
26332
26333
26334
26335
26336
26337
26338
26339
26340
26341
26342
26343
26344
26345
26346
26347
26348
26349
26350
26351
26352
26353
26354
26355
26356
26357
26358
26359
26360
26361
26362
26363
26364
26365
26366
26367
26368
26369
26370
26371
26372
26373
26374
26375
26376
26377
26378
26379
26380
26381
26382
26383
26384
26385
26386
26387
26388
26389
26390
26391
26392
26393
26394
26395
26396
26397
26398
26399
26400
26401
26402
26403
26404
26405
26406
26407
26408
26409
26410
26411
26412
26413
26414
26415
26416
26417
26418
26419
26420
26421
26422
26423
26424
26425
26426
26427
26428
26429
26430
26431
26432
26433
26434
26435
26436
26437
26438
26439
26440
26441
26442
26443
26444
26445
26446
26447
26448
26449
26450
26451
26452
26453
26454
26455
26456
26457
26458
26459
26460
26461
26462
26463
26464
26465
26466
26467
26468
26469
26470
26471
26472
26473
26474
26475
26476
26477
26478
26479
26480
26481
26482
26483
26484
26485
26486
26487
26488
26489
26490
26491
26492
26493
26494
26495
26496
26497
26498
26499
26500
26501
26502
26503
26504
26505
26506
26507
26508
26509
26510
26511
26512
26513
26514
26515
26516
26517
26518
26519
26520
26521
26522
26523
26524
26525
26526
26527
26528
26529
26530
26531
26532
26533
26534
26535
26536
26537
26538
26539
26540
26541
26542
26543
26544
26545
26546
26547
26548
26549
26550
26551
26552
26553
26554
26555
26556
26557
26558
26559
26560
26561
26562
26563
26564
26565
26566
26567
26568
26569
26570
26571
26572
26573
26574
26575
26576
26577
26578
26579
26580
26581
26582
26583
26584
26585
26586
26587
26588
26589
26590
26591
26592
26593
26594
26595
26596
26597
26598
26599
26600
26601
26602
26603
26604
26605
26606
26607
26608
26609
26610
26611
26612
26613
26614
26615
26616
26617
26618
26619
26620
26621
26622
26623
26624
26625
26626
26627
26628
26629
26630
26631
26632
26633
26634
26635
26636
26637
26638
26639
26640
26641
26642
26643
26644
26645
26646
26647
26648
26649
26650
26651
26652
26653
26654
26655
26656
26657
26658
26659
26660
26661
26662
26663
26664
26665
26666
26667
26668
26669
26670
26671
26672
26673
26674
26675
26676
26677
26678
26679
26680
26681
26682
26683
26684
26685
26686
26687
26688
26689
26690
26691
26692
26693
26694
26695
26696
26697
26698
26699
26700
26701
26702
26703
26704
26705
26706
26707
26708
26709
26710
26711
26712
26713
26714
26715
26716
26717
26718
26719
26720
26721
26722
26723
26724
26725
26726
26727
26728
26729
26730
26731
26732
26733
26734
26735
26736
26737
26738
26739
26740
26741
26742
26743
26744
26745
26746
26747
26748
26749
26750
26751
26752
26753
26754
26755
26756
26757
26758
26759
26760
26761
26762
26763
26764
26765
26766
26767
26768
26769
26770
26771
26772
26773
26774
26775
26776
26777
26778
26779
26780
26781
26782
26783
26784
26785
26786
26787
26788
26789
26790
26791
26792
26793
26794
26795
26796
26797
26798
26799
26800
26801
26802
26803
26804
26805
26806
26807
26808
26809
26810
26811
26812
26813
26814
26815
26816
26817
26818
26819
26820
26821
26822
26823
26824
26825
26826
26827
26828
26829
26830
26831
26832
26833
26834
26835
26836
26837
26838
26839
26840
26841
26842
26843
26844
26845
26846
26847
26848
26849
26850
26851
26852
26853
26854
26855
26856
26857
26858
26859
26860
26861
26862
26863
26864
26865
26866
26867
26868
26869
26870
26871
26872
26873
26874
26875
26876
26877
26878
26879
26880
26881
26882
26883
26884
26885
26886
26887
26888
26889
26890
26891
26892
26893
26894
26895
26896
26897
26898
26899
26900
26901
26902
26903
26904
26905
26906
26907
26908
26909
26910
26911
26912
26913
26914
26915
26916
26917
26918
26919
26920
26921
26922
26923
26924
26925
26926
26927
26928
26929
26930
26931
26932
26933
26934
26935
26936
26937
26938
26939
26940
26941
26942
26943
26944
26945
26946
26947
26948
26949
26950
26951
26952
26953
26954
26955
26956
26957
26958
26959
26960
26961
26962
26963
26964
26965
26966
26967
26968
26969
26970
26971
26972
26973
26974
26975
26976
26977
26978
26979
26980
26981
26982
26983
26984
26985
26986
26987
26988
26989
26990
26991
26992
26993
26994
26995
26996
26997
26998
26999
27000
27001
27002
27003
27004
27005
27006
27007
27008
27009
27010
27011
27012
27013
27014
27015
27016
27017
27018
27019
27020
27021
27022
27023
27024
27025
27026
27027
27028
27029
27030
27031
27032
27033
27034
27035
27036
27037
27038
27039
27040
27041
27042
27043
27044
27045
27046
27047
27048
27049
27050
27051
27052
27053
27054
27055
27056
27057
27058
27059
27060
27061
27062
27063
27064
27065
27066
27067
27068
27069
27070
27071
27072
27073
27074
27075
27076
27077
27078
27079
27080
27081
27082
27083
27084
27085
27086
27087
27088
27089
27090
27091
27092
27093
27094
27095
27096
27097
27098
27099
27100
27101
27102
27103
27104
27105
27106
27107
27108
27109
27110
27111
27112
27113
27114
27115
27116
27117
27118
27119
27120
27121
27122
27123
27124
27125
27126
27127
27128
27129
27130
27131
27132
27133
27134
27135
27136
27137
27138
27139
27140
27141
27142
27143
27144
27145
27146
27147
27148
27149
27150
27151
27152
27153
27154
27155
27156
27157
27158
27159
27160
27161
27162
27163
27164
27165
27166
27167
27168
27169
27170
27171
27172
27173
27174
27175
27176
27177
27178
27179
27180
27181
27182
27183
27184
27185
27186
27187
27188
27189
27190
27191
27192
27193
27194
27195
27196
27197
27198
27199
27200
27201
27202
27203
27204
27205
27206
27207
27208
27209
27210
27211
27212
27213
27214
27215
27216
27217
27218
27219
27220
27221
27222
27223
27224
27225
27226
27227
27228
27229
27230
27231
27232
27233
27234
27235
27236
27237
27238
27239
27240
27241
27242
27243
27244
27245
27246
27247
27248
27249
27250
27251
27252
27253
27254
27255
27256
27257
27258
27259
27260
27261
27262
27263
27264
27265
27266
27267
27268
27269
27270
27271
27272
27273
27274
27275
27276
27277
27278
27279
27280
27281
27282
27283
27284
27285
27286
27287
27288
27289
27290
27291
27292
27293
27294
27295
27296
27297
27298
27299
27300
27301
27302
27303
27304
27305
27306
27307
27308
27309
27310
27311
27312
27313
27314
27315
27316
27317
27318
27319
27320
27321
27322
27323
27324
27325
27326
27327
27328
27329
27330
27331
27332
27333
27334
27335
27336
27337
27338
27339
27340
27341
27342
27343
27344
27345
27346
27347
27348
27349
27350
27351
27352
27353
27354
27355
27356
27357
27358
27359
27360
27361
27362
27363
27364
27365
27366
27367
27368
27369
27370
27371
27372
27373
27374
27375
27376
27377
27378
27379
27380
27381
27382
27383
27384
27385
27386
27387
27388
27389
27390
27391
27392
27393
27394
27395
27396
27397
27398
27399
27400
27401
27402
27403
27404
27405
27406
27407
27408
27409
27410
27411
27412
27413
27414
27415
27416
27417
27418
27419
27420
27421
27422
27423
27424
27425
27426
27427
27428
27429
27430
27431
27432
27433
27434
27435
27436
27437
27438
27439
27440
27441
27442
27443
27444
27445
27446
27447
27448
27449
27450
27451
27452
27453
27454
27455
27456
27457
27458
27459
27460
27461
27462
27463
27464
27465
27466
27467
27468
27469
27470
27471
27472
27473
27474
27475
27476
27477
27478
27479
27480
27481
27482
27483
27484
27485
27486
27487
27488
27489
27490
27491
27492
27493
27494
27495
27496
27497
27498
27499
27500
27501
27502
27503
27504
27505
27506
27507
27508
27509
27510
27511
27512
27513
27514
27515
27516
27517
27518
27519
27520
27521
27522
27523
27524
27525
27526
27527
27528
27529
27530
27531
27532
27533
27534
27535
27536
27537
27538
27539
27540
27541
27542
27543
27544
27545
27546
27547
27548
27549
27550
27551
27552
27553
27554
27555
27556
27557
27558
27559
27560
27561
27562
27563
27564
27565
27566
27567
27568
27569
27570
27571
27572
27573
27574
27575
27576
27577
27578
27579
27580
27581
27582
27583
27584
27585
27586
27587
27588
27589
27590
27591
27592
27593
27594
27595
27596
27597
27598
27599
27600
27601
27602
27603
27604
27605
27606
27607
27608
27609
27610
27611
27612
27613
27614
27615
27616
27617
27618
27619
27620
27621
27622
27623
27624
27625
27626
27627
27628
27629
27630
27631
27632
27633
27634
27635
27636
27637
27638
27639
27640
27641
27642
27643
27644
27645
27646
27647
27648
27649
27650
27651
27652
27653
27654
27655
27656
27657
27658
27659
27660
27661
27662
27663
27664
27665
27666
27667
27668
27669
27670
27671
27672
27673
27674
27675
27676
27677
27678
27679
27680
27681
27682
27683
27684
27685
27686
27687
27688
27689
27690
27691
27692
27693
27694
27695
27696
27697
27698
27699
27700
27701
27702
27703
27704
27705
27706
27707
27708
27709
27710
27711
27712
27713
27714
27715
27716
27717
27718
27719
27720
27721
27722
27723
27724
27725
27726
27727
27728
27729
27730
27731
27732
27733
27734
27735
27736
27737
27738
27739
27740
27741
27742
27743
27744
27745
27746
27747
27748
27749
27750
27751
27752
27753
27754
27755
27756
27757
27758
27759
27760
27761
27762
27763
27764
27765
27766
27767
27768
27769
27770
27771
27772
27773
27774
27775
27776
27777
27778
27779
27780
27781
27782
27783
27784
27785
27786
27787
27788
27789
27790
27791
27792
27793
27794
27795
27796
27797
27798
27799
27800
27801
27802
27803
27804
27805
27806
27807
27808
27809
27810
27811
27812
27813
27814
27815
27816
27817
27818
27819
27820
27821
27822
27823
27824
27825
27826
27827
27828
27829
27830
27831
27832
27833
27834
27835
27836
27837
27838
27839
27840
27841
27842
27843
27844
27845
27846
27847
27848
27849
27850
27851
27852
27853
27854
27855
27856
27857
27858
27859
27860
27861
27862
27863
27864
27865
27866
27867
27868
27869
27870
27871
27872
27873
27874
27875
27876
27877
27878
27879
27880
27881
27882
27883
27884
27885
27886
27887
27888
27889
27890
27891
27892
27893
27894
27895
27896
27897
27898
27899
27900
27901
27902
27903
27904
27905
27906
27907
27908
27909
27910
27911
27912
27913
27914
27915
27916
27917
27918
27919
27920
27921
27922
27923
27924
27925
27926
27927
27928
27929
27930
27931
27932
27933
27934
27935
27936
27937
27938
27939
27940
27941
27942
27943
27944
27945
27946
27947
27948
27949
27950
27951
27952
27953
27954
27955
27956
27957
27958
27959
27960
27961
27962
27963
27964
27965
27966
27967
27968
27969
27970
27971
27972
27973
27974
27975
27976
27977
27978
27979
27980
27981
27982
27983
27984
27985
27986
27987
27988
27989
27990
27991
27992
27993
27994
27995
27996
27997
27998
27999
28000
28001
28002
28003
28004
28005
28006
28007
28008
28009
28010
28011
28012
28013
28014
28015
28016
28017
28018
28019
28020
28021
28022
28023
28024
28025
28026
28027
28028
28029
28030
28031
28032
28033
28034
28035
28036
28037
28038
28039
28040
28041
28042
28043
28044
28045
28046
28047
28048
28049
28050
28051
28052
28053
28054
28055
28056
28057
28058
28059
28060
28061
28062
28063
28064
28065
28066
28067
28068
28069
28070
28071
28072
28073
28074
28075
28076
28077
28078
28079
28080
28081
28082
28083
28084
28085
28086
28087
28088
28089
28090
28091
28092
28093
28094
28095
28096
28097
28098
28099
28100
28101
28102
28103
28104
28105
28106
28107
28108
28109
28110
28111
28112
28113
28114
28115
28116
28117
28118
28119
28120
28121
28122
28123
28124
28125
28126
28127
28128
28129
28130
28131
28132
28133
28134
28135
28136
28137
28138
28139
28140
28141
28142
28143
28144
28145
28146
28147
28148
28149
28150
28151
28152
28153
28154
28155
28156
28157
28158
28159
28160
28161
28162
28163
28164
28165
28166
28167
28168
28169
28170
28171
28172
28173
28174
28175
28176
28177
28178
28179
28180
28181
28182
28183
28184
28185
28186
28187
28188
28189
28190
28191
28192
28193
28194
28195
28196
28197
28198
28199
28200
28201
28202
28203
28204
28205
28206
28207
28208
28209
28210
28211
28212
28213
28214
28215
28216
28217
28218
28219
28220
28221
28222
28223
28224
28225
28226
28227
28228
28229
28230
28231
28232
28233
28234
28235
28236
28237
28238
28239
28240
28241
28242
28243
28244
28245
28246
28247
28248
28249
28250
28251
28252
28253
28254
28255
28256
28257
28258
28259
28260
28261
28262
28263
28264
28265
28266
28267
28268
28269
28270
28271
28272
28273
28274
28275
28276
28277
28278
28279
28280
28281
28282
28283
28284
28285
28286
28287
28288
28289
28290
28291
28292
28293
28294
28295
28296
28297
28298
28299
28300
28301
28302
28303
28304
28305
28306
28307
28308
28309
28310
28311
28312
28313
28314
28315
28316
28317
28318
28319
28320
28321
28322
28323
28324
28325
28326
28327
28328
28329
28330
28331
28332
28333
28334
28335
28336
28337
28338
28339
28340
28341
28342
28343
28344
28345
28346
28347
28348
28349
28350
28351
28352
28353
28354
28355
28356
28357
28358
28359
28360
28361
28362
28363
28364
28365
28366
28367
28368
28369
28370
28371
28372
28373
28374
28375
28376
28377
28378
28379
28380
28381
28382
28383
28384
28385
28386
28387
28388
28389
28390
28391
28392
28393
28394
28395
28396
28397
28398
28399
28400
28401
28402
28403
28404
28405
28406
28407
28408
28409
28410
28411
28412
28413
28414
28415
28416
28417
28418
28419
28420
28421
28422
28423
28424
28425
28426
28427
28428
28429
28430
28431
28432
28433
28434
28435
28436
28437
28438
28439
28440
28441
28442
28443
28444
28445
28446
28447
28448
28449
28450
28451
28452
28453
28454
28455
28456
28457
28458
28459
28460
28461
28462
28463
28464
28465
28466
28467
28468
28469
28470
28471
28472
28473
28474
28475
28476
28477
28478
28479
28480
28481
28482
28483
28484
28485
28486
28487
28488
28489
28490
28491
28492
28493
28494
28495
28496
28497
28498
28499
28500
28501
28502
28503
28504
28505
28506
28507
28508
28509
28510
28511
28512
28513
28514
28515
28516
28517
28518
28519
28520
28521
28522
28523
28524
28525
28526
28527
28528
28529
28530
28531
28532
28533
28534
28535
28536
28537
28538
28539
28540
28541
28542
28543
28544
28545
28546
28547
28548
28549
28550
28551
28552
28553
28554
28555
28556
28557
28558
28559
28560
28561
28562
28563
28564
28565
28566
28567
28568
28569
28570
28571
28572
28573
28574
28575
28576
28577
28578
28579
28580
28581
28582
28583
28584
28585
28586
28587
28588
28589
28590
28591
28592
28593
28594
28595
28596
28597
28598
28599
28600
28601
28602
28603
28604
28605
28606
28607
28608
28609
28610
28611
28612
28613
28614
28615
28616
28617
28618
28619
28620
28621
28622
28623
28624
28625
28626
28627
28628
28629
28630
28631
28632
28633
28634
28635
28636
28637
28638
28639
28640
28641
28642
28643
28644
28645
28646
28647
28648
28649
28650
28651
28652
28653
28654
28655
28656
28657
28658
28659
28660
28661
28662
28663
28664
28665
28666
28667
28668
28669
28670
28671
28672
28673
28674
28675
28676
28677
28678
28679
28680
28681
28682
28683
28684
28685
28686
28687
28688
28689
28690
28691
28692
28693
28694
28695
28696
28697
28698
28699
28700
28701
28702
28703
28704
28705
28706
28707
28708
28709
28710
28711
28712
28713
28714
28715
28716
28717
28718
28719
28720
28721
28722
28723
28724
28725
28726
28727
28728
28729
28730
28731
28732
28733
28734
28735
28736
28737
28738
28739
28740
28741
28742
28743
28744
28745
28746
28747
28748
28749
28750
28751
28752
28753
28754
28755
28756
28757
28758
28759
28760
28761
28762
28763
28764
28765
28766
28767
28768
28769
28770
28771
28772
28773
28774
28775
28776
28777
28778
28779
28780
28781
28782
28783
28784
28785
28786
28787
28788
28789
28790
28791
28792
28793
28794
28795
28796
28797
28798
28799
28800
28801
28802
28803
28804
28805
28806
28807
28808
28809
28810
28811
28812
28813
28814
28815
28816
28817
28818
28819
28820
28821
28822
28823
28824
28825
28826
28827
28828
28829
28830
28831
28832
28833
28834
28835
28836
28837
28838
28839
28840
28841
28842
28843
28844
28845
28846
28847
28848
28849
28850
28851
28852
28853
28854
28855
28856
28857
28858
28859
28860
28861
28862
28863
28864
28865
28866
28867
28868
28869
28870
28871
28872
28873
28874
28875
28876
28877
28878
28879
28880
28881
28882
28883
28884
28885
28886
28887
28888
28889
28890
28891
28892
28893
28894
28895
28896
28897
28898
28899
28900
28901
28902
28903
28904
28905
28906
28907
28908
28909
28910
28911
28912
28913
28914
28915
28916
28917
28918
28919
28920
28921
28922
28923
28924
28925
28926
28927
28928
28929
28930
28931
28932
28933
28934
28935
28936
28937
28938
28939
28940
28941
28942
28943
28944
28945
28946
28947
28948
28949
28950
28951
28952
28953
28954
28955
28956
28957
28958
28959
28960
28961
28962
28963
28964
28965
28966
28967
28968
28969
28970
28971
28972
28973
28974
28975
28976
28977
28978
28979
28980
28981
28982
28983
28984
28985
28986
28987
28988
28989
28990
28991
28992
28993
28994
28995
28996
28997
28998
28999
29000
29001
29002
29003
29004
29005
29006
29007
29008
29009
29010
29011
29012
29013
29014
29015
29016
29017
29018
29019
29020
29021
29022
29023
29024
29025
29026
29027
29028
29029
29030
29031
29032
29033
29034
29035
29036
29037
29038
29039
29040
29041
29042
29043
29044
29045
29046
29047
29048
29049
29050
29051
29052
29053
29054
29055
29056
29057
29058
29059
29060
29061
29062
29063
29064
29065
29066
29067
29068
29069
29070
29071
29072
29073
29074
29075
29076
29077
29078
29079
29080
29081
29082
29083
29084
29085
29086
29087
29088
29089
29090
29091
29092
29093
29094
29095
29096
29097
29098
29099
29100
29101
29102
29103
29104
29105
29106
29107
29108
29109
29110
29111
29112
29113
29114
29115
29116
29117
29118
29119
29120
29121
29122
29123
29124
29125
29126
29127
29128
29129
29130
29131
29132
29133
29134
29135
29136
29137
29138
29139
29140
29141
29142
29143
29144
29145
29146
29147
29148
29149
29150
29151
29152
29153
29154
29155
29156
29157
29158
29159
29160
29161
29162
29163
29164
29165
29166
29167
29168
29169
29170
29171
29172
29173
29174
29175
29176
29177
29178
29179
29180
29181
29182
29183
29184
29185
29186
29187
29188
29189
29190
29191
29192
29193
29194
29195
29196
29197
29198
29199
29200
29201
29202
29203
29204
29205
29206
29207
29208
29209
29210
29211
29212
29213
29214
29215
29216
29217
29218
29219
29220
29221
29222
29223
29224
29225
29226
29227
29228
29229
29230
29231
29232
29233
29234
29235
29236
29237
29238
29239
29240
29241
29242
29243
29244
29245
29246
29247
29248
29249
29250
29251
29252
29253
29254
29255
29256
29257
29258
29259
29260
29261
29262
29263
29264
29265
29266
29267
29268
29269
29270
29271
29272
29273
29274
29275
29276
29277
29278
29279
29280
29281
29282
29283
29284
29285
29286
29287
29288
29289
29290
29291
29292
29293
29294
29295
29296
29297
29298
29299
29300
29301
29302
29303
29304
29305
29306
29307
29308
29309
29310
29311
29312
29313
29314
29315
29316
29317
29318
29319
29320
29321
29322
29323
29324
29325
29326
29327
29328
29329
29330
29331
29332
29333
29334
29335
29336
29337
29338
29339
29340
29341
29342
29343
29344
29345
29346
29347
29348
29349
29350
29351
29352
29353
29354
29355
29356
29357
29358
29359
29360
29361
29362
29363
29364
29365
29366
29367
29368
29369
29370
29371
29372
29373
29374
29375
29376
29377
29378
29379
29380
29381
29382
29383
29384
29385
29386
29387
29388
29389
29390
29391
29392
29393
29394
29395
29396
29397
29398
29399
29400
29401
29402
29403
29404
29405
29406
29407
29408
29409
29410
29411
29412
29413
29414
29415
29416
29417
29418
29419
29420
29421
29422
29423
29424
29425
29426
29427
29428
29429
29430
29431
29432
29433
29434
29435
29436
29437
29438
29439
29440
29441
29442
29443
29444
29445
29446
29447
29448
29449
29450
29451
29452
29453
29454
29455
29456
29457
29458
29459
29460
29461
29462
29463
29464
29465
29466
29467
29468
29469
29470
29471
29472
29473
29474
29475
29476
29477
29478
29479
29480
29481
29482
29483
29484
29485
29486
29487
29488
29489
29490
29491
29492
29493
29494
29495
29496
29497
29498
29499
29500
29501
29502
29503
29504
29505
29506
29507
29508
29509
29510
29511
29512
29513
29514
29515
29516
29517
29518
29519
29520
29521
29522
29523
29524
29525
29526
29527
29528
29529
29530
29531
29532
29533
29534
29535
29536
29537
29538
29539
29540
29541
29542
29543
29544
29545
29546
29547
29548
29549
29550
29551
29552
29553
29554
29555
29556
29557
29558
29559
29560
29561
29562
29563
29564
29565
29566
29567
29568
29569
29570
29571
29572
29573
29574
29575
29576
29577
29578
29579
29580
29581
29582
29583
29584
29585
29586
29587
29588
29589
29590
29591
29592
29593
29594
29595
29596
29597
29598
29599
29600
29601
29602
29603
29604
29605
29606
29607
29608
29609
29610
29611
29612
29613
29614
29615
29616
29617
29618
29619
29620
29621
29622
29623
29624
29625
29626
29627
29628
29629
29630
29631
29632
29633
29634
29635
29636
29637
29638
29639
29640
29641
29642
29643
29644
29645
29646
29647
29648
29649
29650
29651
29652
29653
29654
29655
29656
29657
29658
29659
29660
29661
29662
29663
29664
29665
29666
29667
29668
29669
29670
29671
29672
29673
29674
29675
29676
29677
29678
29679
29680
29681
29682
29683
29684
29685
29686
29687
29688
29689
29690
29691
29692
29693
29694
29695
29696
29697
29698
29699
29700
29701
29702
29703
29704
29705
29706
29707
29708
29709
29710
29711
29712
29713
29714
29715
29716
29717
29718
29719
29720
29721
29722
29723
29724
29725
29726
29727
29728
29729
29730
29731
29732
29733
29734
29735
29736
29737
29738
29739
29740
29741
29742
29743
29744
29745
29746
29747
29748
29749
29750
29751
29752
29753
29754
29755
29756
29757
29758
29759
29760
29761
29762
29763
29764
29765
29766
29767
29768
29769
29770
29771
29772
29773
29774
29775
29776
29777
29778
29779
29780
29781
29782
29783
29784
29785
29786
29787
29788
29789
29790
29791
29792
29793
29794
29795
29796
29797
29798
29799
29800
29801
29802
29803
29804
29805
29806
29807
29808
29809
29810
29811
29812
29813
29814
29815
29816
29817
29818
29819
29820
29821
29822
29823
29824
29825
29826
29827
29828
29829
29830
29831
29832
29833
29834
29835
29836
29837
29838
29839
29840
29841
29842
29843
29844
29845
29846
29847
29848
29849
29850
29851
29852
29853
29854
29855
29856
29857
29858
29859
29860
29861
29862
29863
29864
29865
29866
29867
29868
29869
29870
29871
29872
29873
29874
29875
29876
29877
29878
29879
29880
29881
29882
29883
29884
29885
29886
29887
29888
29889
29890
29891
29892
29893
29894
29895
29896
29897
29898
29899
29900
29901
29902
29903
29904
29905
29906
29907
29908
29909
29910
29911
29912
29913
29914
29915
29916
29917
29918
29919
29920
29921
29922
29923
29924
29925
29926
29927
29928
29929
29930
29931
29932
29933
29934
29935
29936
29937
29938
29939
29940
29941
29942
29943
29944
29945
29946
29947
29948
29949
29950
29951
29952
29953
29954
29955
29956
29957
29958
29959
29960
29961
29962
29963
29964
29965
29966
29967
29968
29969
29970
29971
29972
29973
29974
29975
29976
29977
29978
29979
29980
29981
29982
29983
29984
29985
29986
29987
29988
29989
29990
29991
29992
29993
29994
29995
29996
29997
29998
29999
30000
30001
30002
30003
30004
30005
30006
30007
30008
30009
30010
30011
30012
30013
30014
30015
30016
30017
30018
30019
30020
30021
30022
30023
30024
30025
30026
30027
30028
30029
30030
30031
30032
30033
30034
30035
30036
30037
30038
30039
30040
30041
30042
30043
30044
30045
30046
30047
30048
30049
30050
30051
30052
30053
30054
30055
30056
30057
30058
30059
30060
30061
30062
30063
30064
30065
30066
30067
30068
30069
30070
30071
30072
30073
30074
30075
30076
30077
30078
30079
30080
30081
30082
30083
30084
30085
30086
30087
30088
30089
30090
30091
30092
30093
30094
30095
30096
30097
30098
30099
30100
30101
30102
30103
30104
30105
30106
30107
30108
30109
30110
30111
30112
30113
30114
30115
30116
30117
30118
30119
30120
30121
30122
30123
30124
30125
30126
30127
30128
30129
30130
30131
30132
30133
30134
30135
30136
30137
30138
30139
30140
30141
30142
30143
30144
30145
30146
30147
30148
30149
30150
30151
30152
30153
30154
30155
30156
30157
30158
30159
30160
30161
30162
30163
30164
30165
30166
30167
30168
30169
30170
30171
30172
30173
30174
30175
30176
30177
30178
30179
30180
30181
30182
30183
30184
30185
30186
30187
30188
30189
30190
30191
30192
30193
30194
30195
30196
30197
30198
30199
30200
30201
30202
30203
30204
30205
30206
30207
30208
30209
30210
30211
30212
30213
30214
30215
30216
30217
30218
30219
30220
30221
30222
30223
30224
30225
30226
30227
30228
30229
30230
30231
30232
30233
30234
30235
30236
30237
30238
30239
30240
30241
30242
30243
30244
30245
30246
30247
30248
30249
30250
30251
30252
30253
30254
30255
30256
30257
30258
30259
30260
30261
30262
30263
30264
30265
30266
30267
30268
30269
30270
30271
30272
30273
30274
30275
30276
30277
30278
30279
30280
30281
30282
30283
30284
30285
30286
30287
30288
30289
30290
30291
30292
30293
30294
30295
30296
30297
30298
30299
30300
30301
30302
30303
30304
30305
30306
30307
30308
30309
30310
30311
30312
30313
30314
30315
30316
30317
30318
30319
30320
30321
30322
30323
30324
30325
30326
30327
30328
30329
30330
30331
30332
30333
30334
30335
30336
30337
30338
30339
30340
30341
30342
30343
30344
30345
30346
30347
30348
30349
30350
30351
30352
30353
30354
30355
30356
30357
30358
30359
30360
30361
30362
30363
30364
30365
30366
30367
30368
30369
30370
30371
30372
30373
30374
30375
30376
30377
30378
30379
30380
30381
30382
30383
30384
30385
30386
30387
30388
30389
30390
30391
30392
30393
30394
30395
30396
30397
30398
30399
30400
30401
30402
30403
30404
30405
30406
30407
30408
30409
30410
30411
30412
30413
30414
30415
30416
30417
30418
30419
30420
30421
30422
30423
30424
30425
30426
30427
30428
30429
30430
30431
30432
30433
30434
30435
30436
30437
30438
30439
30440
30441
30442
30443
30444
30445
30446
30447
30448
30449
30450
30451
30452
30453
30454
30455
30456
30457
30458
30459
30460
30461
30462
30463
30464
30465
30466
30467
30468
30469
30470
30471
30472
30473
30474
30475
30476
30477
30478
30479
30480
30481
30482
30483
30484
30485
30486
30487
30488
30489
30490
30491
30492
30493
30494
30495
30496
30497
30498
30499
30500
30501
30502
30503
30504
30505
30506
30507
30508
30509
30510
30511
30512
30513
30514
30515
30516
30517
30518
30519
30520
30521
30522
30523
30524
30525
30526
30527
30528
30529
30530
30531
30532
30533
30534
30535
30536
30537
30538
30539
30540
30541
30542
30543
30544
30545
30546
30547
30548
30549
30550
30551
30552
30553
30554
30555
30556
30557
30558
30559
30560
30561
30562
30563
30564
30565
30566
30567
30568
30569
30570
30571
30572
30573
30574
30575
30576
30577
30578
30579
30580
30581
30582
30583
30584
30585
30586
30587
30588
30589
30590
30591
30592
30593
30594
30595
30596
30597
30598
30599
30600
30601
30602
30603
30604
30605
30606
30607
30608
30609
30610
30611
30612
30613
30614
30615
30616
30617
30618
30619
30620
30621
30622
30623
30624
30625
30626
30627
30628
30629
30630
30631
30632
30633
30634
30635
30636
30637
30638
30639
30640
30641
30642
30643
30644
30645
30646
30647
30648
30649
30650
30651
30652
30653
30654
30655
30656
30657
30658
30659
30660
30661
30662
30663
30664
30665
30666
30667
30668
30669
30670
30671
30672
30673
30674
30675
30676
30677
30678
30679
30680
30681
30682
30683
30684
30685
30686
30687
30688
30689
30690
30691
30692
30693
30694
30695
30696
30697
30698
30699
30700
30701
30702
30703
30704
30705
30706
30707
30708
30709
30710
30711
30712
30713
30714
30715
30716
30717
30718
30719
30720
30721
30722
30723
30724
30725
30726
30727
30728
30729
30730
30731
30732
30733
30734
30735
30736
30737
30738
30739
30740
30741
30742
30743
30744
30745
30746
30747
30748
30749
30750
30751
30752
30753
30754
30755
30756
30757
30758
30759
30760
30761
30762
30763
30764
30765
30766
30767
30768
30769
30770
30771
30772
30773
30774
30775
30776
30777
30778
30779
30780
30781
30782
30783
30784
30785
30786
30787
30788
30789
30790
30791
30792
30793
30794
30795
30796
30797
30798
30799
30800
30801
30802
30803
30804
30805
30806
30807
30808
30809
30810
30811
30812
30813
30814
30815
30816
30817
30818
30819
30820
30821
30822
30823
30824
30825
30826
30827
30828
30829
30830
30831
30832
30833
30834
30835
30836
30837
30838
30839
30840
30841
30842
30843
30844
30845
30846
30847
30848
30849
30850
30851
30852
30853
30854
30855
30856
30857
30858
30859
30860
30861
30862
30863
30864
30865
30866
30867
30868
30869
30870
30871
30872
30873
30874
30875
30876
30877
30878
30879
30880
30881
30882
30883
30884
30885
30886
30887
30888
30889
30890
30891
30892
30893
30894
30895
30896
30897
30898
30899
30900
30901
30902
30903
30904
30905
30906
30907
30908
30909
30910
30911
30912
30913
30914
30915
30916
30917
30918
30919
30920
30921
30922
30923
30924
30925
30926
30927
30928
30929
30930
30931
30932
30933
30934
30935
30936
30937
30938
30939
30940
30941
30942
30943
30944
30945
30946
30947
30948
30949
30950
30951
30952
30953
30954
30955
30956
30957
30958
30959
30960
30961
30962
30963
30964
30965
30966
30967
30968
30969
30970
30971
30972
30973
30974
30975
30976
30977
30978
30979
30980
30981
30982
30983
30984
30985
30986
30987
30988
30989
30990
30991
30992
30993
30994
30995
30996
30997
30998
30999
31000
31001
31002
31003
31004
31005
31006
31007
31008
31009
31010
31011
31012
31013
31014
31015
31016
31017
31018
31019
31020
31021
31022
31023
31024
31025
31026
31027
31028
31029
31030
31031
31032
31033
31034
31035
31036
31037
31038
31039
31040
31041
31042
31043
31044
31045
31046
31047
31048
31049
31050
31051
31052
31053
31054
31055
31056
31057
31058
31059
31060
31061
31062
31063
31064
31065
31066
31067
31068
31069
31070
31071
31072
31073
31074
31075
31076
31077
31078
31079
31080
31081
31082
31083
31084
31085
31086
31087
31088
31089
31090
31091
31092
31093
31094
31095
31096
31097
31098
31099
31100
31101
31102
31103
31104
31105
31106
31107
31108
31109
31110
31111
31112
31113
31114
31115
31116
31117
31118
31119
31120
31121
31122
31123
31124
31125
31126
31127
31128
31129
31130
31131
31132
31133
31134
31135
31136
31137
31138
31139
31140
31141
31142
31143
31144
31145
31146
31147
31148
31149
31150
31151
31152
31153
31154
31155
31156
31157
31158
31159
31160
31161
31162
31163
31164
31165
31166
31167
31168
31169
31170
31171
31172
31173
31174
31175
31176
31177
31178
31179
31180
31181
31182
31183
31184
31185
31186
31187
31188
31189
31190
31191
31192
31193
31194
31195
31196
31197
31198
31199
31200
31201
31202
31203
31204
31205
31206
31207
31208
31209
31210
31211
31212
31213
31214
31215
31216
31217
31218
31219
31220
31221
31222
31223
31224
31225
31226
31227
31228
31229
31230
31231
31232
31233
31234
31235
31236
31237
31238
31239
31240
31241
31242
31243
31244
31245
31246
31247
31248
31249
31250
31251
31252
31253
31254
31255
31256
31257
31258
31259
31260
31261
31262
31263
31264
31265
31266
31267
31268
31269
31270
31271
31272
31273
31274
31275
31276
31277
31278
31279
31280
31281
31282
31283
31284
31285
31286
31287
31288
31289
31290
31291
31292
31293
31294
31295
31296
31297
31298
31299
31300
31301
31302
31303
31304
31305
31306
31307
31308
31309
31310
31311
31312
31313
31314
31315
31316
31317
31318
31319
31320
31321
31322
31323
31324
31325
31326
31327
31328
31329
31330
31331
31332
31333
31334
31335
31336
31337
31338
31339
31340
31341
31342
31343
31344
31345
31346
31347
31348
31349
31350
31351
31352
31353
31354
31355
31356
31357
31358
31359
31360
31361
31362
31363
31364
31365
31366
31367
31368
31369
31370
31371
31372
31373
31374
31375
31376
31377
31378
31379
31380
31381
31382
31383
31384
31385
31386
31387
31388
31389
31390
31391
31392
31393
31394
31395
31396
31397
31398
31399
31400
31401
31402
31403
31404
31405
31406
31407
31408
31409
31410
31411
31412
31413
31414
31415
31416
31417
31418
31419
31420
31421
31422
31423
31424
31425
31426
31427
31428
31429
31430
31431
31432
31433
31434
31435
31436
31437
31438
31439
31440
31441
31442
31443
31444
31445
31446
31447
31448
31449
31450
31451
31452
31453
31454
31455
31456
31457
31458
31459
31460
31461
31462
31463
31464
31465
31466
31467
31468
31469
31470
31471
31472
31473
31474
31475
31476
31477
31478
31479
31480
31481
31482
31483
31484
31485
31486
31487
31488
31489
31490
31491
31492
31493
31494
31495
31496
31497
31498
31499
31500
31501
31502
31503
31504
31505
31506
31507
31508
31509
31510
31511
31512
31513
31514
31515
31516
31517
31518
31519
31520
31521
31522
31523
31524
31525
31526
31527
31528
31529
31530
31531
31532
31533
31534
31535
31536
31537
31538
31539
31540
31541
31542
31543
31544
31545
31546
31547
31548
31549
31550
31551
31552
31553
31554
31555
31556
31557
31558
31559
31560
31561
31562
31563
31564
31565
31566
31567
31568
31569
31570
31571
31572
31573
31574
31575
31576
31577
31578
31579
31580
31581
31582
31583
31584
31585
31586
31587
31588
31589
31590
31591
31592
31593
31594
31595
31596
31597
31598
31599
31600
31601
31602
31603
31604
31605
31606
31607
31608
31609
31610
31611
31612
31613
31614
31615
31616
31617
31618
31619
31620
31621
31622
31623
31624
31625
31626
31627
31628
31629
31630
31631
31632
31633
31634
31635
31636
31637
31638
31639
31640
31641
31642
31643
31644
31645
31646
31647
31648
31649
31650
31651
31652
31653
31654
31655
31656
31657
31658
31659
31660
31661
31662
31663
31664
31665
31666
31667
31668
31669
31670
31671
31672
31673
31674
31675
31676
31677
31678
31679
31680
31681
31682
31683
31684
31685
31686
31687
31688
31689
31690
31691
31692
31693
31694
31695
31696
31697
31698
31699
31700
31701
31702
31703
31704
31705
31706
31707
31708
31709
31710
31711
31712
31713
31714
31715
31716
31717
31718
31719
31720
31721
31722
31723
31724
31725
31726
31727
31728
31729
31730
31731
31732
31733
31734
31735
31736
31737
31738
31739
31740
31741
31742
31743
31744
31745
31746
31747
31748
31749
31750
31751
31752
31753
31754
31755
31756
31757
31758
31759
31760
31761
31762
31763
31764
31765
31766
31767
31768
31769
31770
31771
31772
31773
31774
31775
31776
31777
31778
31779
31780
31781
31782
31783
31784
31785
31786
31787
31788
31789
31790
31791
31792
31793
31794
31795
31796
31797
31798
31799
31800
31801
31802
31803
31804
31805
31806
31807
31808
31809
31810
31811
31812
31813
31814
31815
31816
31817
31818
31819
31820
31821
31822
31823
31824
31825
31826
31827
31828
31829
31830
31831
31832
31833
31834
31835
31836
31837
31838
31839
31840
31841
31842
31843
31844
31845
31846
31847
31848
31849
31850
31851
31852
31853
31854
31855
31856
31857
31858
31859
31860
31861
31862
31863
31864
31865
31866
31867
31868
31869
31870
31871
31872
31873
31874
31875
31876
31877
31878
31879
31880
31881
31882
31883
31884
31885
31886
31887
31888
31889
31890
31891
31892
31893
31894
31895
31896
31897
31898
31899
31900
31901
31902
31903
31904
31905
31906
31907
31908
31909
31910
31911
31912
31913
31914
31915
31916
31917
31918
31919
31920
31921
31922
31923
31924
31925
31926
31927
31928
31929
31930
31931
31932
31933
31934
31935
31936
31937
31938
31939
31940
31941
31942
31943
31944
31945
31946
31947
31948
31949
31950
31951
31952
31953
31954
31955
31956
31957
31958
31959
31960
31961
31962
31963
31964
31965
31966
31967
31968
31969
31970
31971
31972
31973
31974
31975
31976
31977
31978
31979
31980
31981
31982
31983
31984
31985
31986
31987
31988
31989
31990
31991
31992
31993
31994
31995
31996
31997
31998
31999
32000
32001
32002
32003
32004
32005
32006
32007
32008
32009
32010
32011
32012
32013
32014
32015
32016
32017
32018
32019
32020
32021
32022
32023
32024
32025
32026
32027
32028
32029
32030
32031
32032
32033
32034
32035
32036
32037
32038
32039
32040
32041
32042
32043
32044
32045
32046
32047
32048
32049
32050
32051
32052
32053
32054
32055
32056
32057
32058
32059
32060
32061
32062
32063
32064
32065
32066
32067
32068
32069
32070
32071
32072
32073
32074
32075
32076
32077
32078
32079
32080
32081
32082
32083
32084
32085
32086
32087
32088
32089
32090
32091
32092
32093
32094
32095
32096
32097
32098
32099
32100
32101
32102
32103
32104
32105
32106
32107
32108
32109
32110
32111
32112
32113
32114
32115
32116
32117
32118
32119
32120
32121
32122
32123
32124
32125
32126
32127
32128
32129
32130
32131
32132
32133
32134
32135
32136
32137
32138
32139
32140
32141
32142
32143
32144
32145
32146
32147
32148
32149
32150
32151
32152
32153
32154
32155
32156
32157
32158
32159
32160
32161
32162
32163
32164
32165
32166
32167
32168
32169
32170
32171
32172
32173
32174
32175
32176
32177
32178
32179
32180
32181
32182
32183
32184
32185
32186
32187
32188
32189
32190
32191
32192
32193
32194
32195
32196
32197
32198
32199
32200
32201
32202
32203
32204
32205
32206
32207
32208
32209
32210
32211
32212
32213
32214
32215
32216
32217
32218
32219
32220
32221
32222
32223
32224
32225
32226
32227
32228
32229
32230
32231
32232
32233
32234
32235
32236
32237
32238
32239
32240
32241
32242
32243
32244
32245
32246
32247
32248
32249
32250
32251
32252
32253
32254
32255
32256
32257
32258
32259
32260
32261
32262
32263
32264
32265
32266
32267
32268
32269
32270
32271
32272
32273
32274
32275
32276
32277
32278
32279
32280
32281
32282
32283
32284
32285
32286
32287
32288
32289
32290
32291
32292
32293
32294
32295
32296
32297
32298
32299
32300
32301
32302
32303
32304
32305
32306
32307
32308
32309
32310
32311
32312
32313
32314
32315
32316
32317
32318
32319
32320
32321
32322
32323
32324
32325
32326
32327
32328
32329
32330
32331
32332
32333
32334
32335
32336
32337
32338
32339
32340
32341
32342
32343
32344
32345
32346
32347
32348
32349
32350
32351
32352
32353
32354
32355
32356
32357
32358
32359
32360
32361
32362
32363
32364
32365
32366
32367
32368
32369
32370
32371
32372
32373
32374
32375
32376
32377
32378
32379
32380
32381
32382
32383
32384
32385
32386
32387
32388
32389
32390
32391
32392
32393
32394
32395
32396
32397
32398
32399
32400
32401
32402
32403
32404
32405
32406
32407
32408
32409
32410
32411
32412
32413
32414
32415
32416
32417
32418
32419
32420
32421
32422
32423
32424
32425
32426
32427
32428
32429
32430
32431
32432
32433
32434
32435
32436
32437
32438
32439
32440
32441
32442
32443
32444
32445
32446
32447
32448
32449
32450
32451
32452
32453
32454
32455
32456
32457
32458
32459
32460
32461
32462
32463
32464
32465
32466
32467
32468
32469
32470
32471
32472
32473
32474
32475
32476
32477
32478
32479
32480
32481
32482
32483
32484
32485
32486
32487
32488
32489
32490
32491
32492
32493
32494
32495
32496
32497
32498
32499
32500
32501
32502
32503
32504
32505
32506
32507
32508
32509
32510
32511
32512
32513
32514
32515
32516
32517
32518
32519
32520
32521
32522
32523
32524
32525
32526
32527
32528
32529
32530
32531
32532
32533
32534
32535
32536
32537
32538
32539
32540
32541
32542
32543
32544
32545
32546
32547
32548
32549
32550
32551
32552
32553
32554
32555
32556
32557
32558
32559
32560
32561
32562
32563
32564
32565
32566
32567
32568
32569
32570
32571
32572
32573
32574
32575
32576
32577
32578
32579
32580
32581
32582
32583
32584
32585
32586
32587
32588
32589
32590
32591
32592
32593
32594
32595
32596
32597
32598
32599
32600
32601
32602
32603
32604
32605
32606
32607
32608
32609
32610
32611
32612
32613
32614
32615
32616
32617
32618
32619
32620
32621
32622
32623
32624
32625
32626
32627
32628
32629
32630
32631
32632
32633
32634
32635
32636
32637
32638
32639
32640
32641
32642
32643
32644
32645
32646
32647
32648
32649
32650
32651
32652
32653
32654
32655
32656
32657
32658
32659
32660
32661
32662
32663
32664
32665
32666
32667
32668
32669
32670
32671
32672
32673
32674
32675
32676
32677
32678
32679
32680
32681
32682
32683
32684
32685
32686
32687
32688
32689
32690
32691
32692
32693
32694
32695
32696
32697
32698
32699
32700
32701
32702
32703
32704
32705
32706
32707
32708
32709
32710
32711
32712
32713
32714
32715
32716
32717
32718
32719
32720
32721
32722
32723
32724
32725
32726
32727
32728
32729
32730
32731
32732
32733
32734
32735
32736
32737
32738
32739
32740
32741
32742
32743
32744
32745
32746
32747
32748
32749
32750
32751
32752
32753
32754
32755
32756
32757
32758
32759
32760
32761
32762
32763
32764
32765
32766
32767
32768
32769
32770
32771
32772
32773
32774
32775
32776
32777
32778
32779
32780
32781
32782
32783
32784
32785
32786
32787
32788
32789
32790
32791
32792
32793
32794
32795
32796
32797
32798
32799
32800
32801
32802
32803
32804
32805
32806
32807
32808
32809
32810
32811
32812
32813
32814
32815
32816
32817
32818
32819
32820
32821
32822
32823
32824
32825
32826
32827
32828
32829
32830
32831
32832
32833
32834
32835
32836
32837
32838
32839
32840
32841
32842
32843
32844
32845
32846
32847
32848
32849
32850
32851
32852
32853
32854
32855
32856
32857
32858
32859
32860
32861
32862
32863
32864
32865
32866
32867
32868
32869
32870
32871
32872
32873
32874
32875
32876
32877
32878
32879
32880
32881
32882
32883
32884
32885
32886
32887
32888
32889
32890
32891
32892
32893
32894
32895
32896
32897
32898
32899
32900
32901
32902
32903
32904
32905
32906
32907
32908
32909
32910
32911
32912
32913
32914
32915
32916
32917
32918
32919
32920
32921
32922
32923
32924
32925
32926
32927
32928
32929
32930
32931
32932
32933
32934
32935
32936
32937
32938
32939
32940
32941
32942
32943
32944
32945
32946
32947
32948
32949
32950
32951
32952
32953
32954
32955
32956
32957
32958
32959
32960
32961
32962
32963
32964
32965
32966
32967
32968
32969
32970
32971
32972
32973
32974
32975
32976
32977
32978
32979
32980
32981
32982
32983
32984
32985
32986
32987
32988
32989
32990
32991
32992
32993
32994
32995
32996
32997
32998
32999
33000
33001
33002
33003
33004
33005
33006
33007
33008
33009
33010
33011
33012
33013
33014
33015
33016
33017
33018
33019
33020
33021
33022
33023
33024
33025
33026
33027
33028
33029
33030
33031
33032
33033
33034
33035
33036
33037
33038
33039
33040
33041
33042
33043
33044
33045
33046
33047
33048
33049
33050
33051
33052
33053
33054
33055
33056
33057
33058
33059
33060
33061
33062
33063
33064
33065
33066
33067
33068
33069
33070
33071
33072
33073
33074
33075
33076
33077
33078
33079
33080
33081
33082
33083
33084
33085
33086
33087
33088
33089
33090
33091
33092
33093
33094
33095
33096
33097
33098
33099
33100
33101
33102
33103
33104
33105
33106
33107
33108
33109
33110
33111
33112
33113
33114
33115
33116
33117
33118
33119
33120
33121
33122
33123
33124
33125
33126
33127
33128
33129
33130
33131
33132
33133
33134
33135
33136
33137
33138
33139
33140
33141
33142
33143
33144
33145
33146
33147
33148
33149
33150
33151
33152
33153
33154
33155
33156
33157
33158
33159
33160
33161
33162
33163
33164
33165
33166
33167
33168
33169
33170
33171
33172
33173
33174
33175
33176
33177
33178
33179
33180
33181
33182
33183
33184
33185
33186
33187
33188
33189
33190
33191
33192
33193
33194
33195
33196
33197
33198
33199
33200
33201
33202
33203
33204
33205
33206
33207
33208
33209
33210
33211
33212
33213
33214
33215
33216
33217
33218
33219
33220
33221
33222
33223
33224
33225
33226
33227
33228
33229
33230
33231
33232
33233
33234
33235
33236
33237
33238
33239
33240
33241
33242
33243
33244
33245
33246
33247
33248
From cad16fafc28e9d505367e7830a74b2e78ff432ed Mon Sep 17 00:00:00 2001
From: Jan Grulich <jgrulich@redhat.com>
Date: Wed, 23 Nov 2022 15:18:43 +0100
Subject: Sync screen sharing code in WebRTC with upstream


diff --git a/dom/media/webrtc/moz.build b/dom/media/webrtc/moz.build
index a8ca8e5519..e2ee67ba35 100644
--- a/dom/media/webrtc/moz.build
+++ b/dom/media/webrtc/moz.build
@@ -85,6 +85,8 @@ if CONFIG["MOZ_WEBRTC_SIGNALING"]:
 
     if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
         DIRS += ["/third_party/pipewire/libpipewire"]
+        DIRS += ["/third_party/drm/libdrm"]
+        DIRS += ["/third_party/gbm/libgbm"]
 
     # Avoid warnings from third-party code that we can not modify.
     if CONFIG["CC_TYPE"] == "clang-cl":
diff --git a/third_party/drm/README b/third_party/drm/README
new file mode 100644
index 0000000000..f68ed100bb
--- /dev/null
+++ b/third_party/drm/README
@@ -0,0 +1,4 @@
+Libdrm is a drm library wrapper needed to build and run Firefox with
+Pipewire support on Linux (https://gitlab.freedesktop.org/mesa/drm).
+
+libdrm directory stores headers of libdrm needed for build only.
diff --git a/third_party/drm/drm/drm.h b/third_party/drm/drm/drm.h
new file mode 100644
index 0000000000..5e54c3aa4c
--- /dev/null
+++ b/third_party/drm/drm/drm.h
@@ -0,0 +1,1193 @@
+/*
+ * Header for the Direct Rendering Manager
+ *
+ * Author: Rickard E. (Rik) Faith <faith@valinux.com>
+ *
+ * Acknowledgments:
+ * Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
+ */
+
+/*
+ * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef _DRM_H_
+#define _DRM_H_
+
+#if   defined(__linux__)
+
+#include <linux/types.h>
+#include <asm/ioctl.h>
+typedef unsigned int drm_handle_t;
+
+#else /* One of the BSDs */
+
+#include <stdint.h>
+#include <sys/ioccom.h>
+#include <sys/types.h>
+typedef int8_t   __s8;
+typedef uint8_t  __u8;
+typedef int16_t  __s16;
+typedef uint16_t __u16;
+typedef int32_t  __s32;
+typedef uint32_t __u32;
+typedef int64_t  __s64;
+typedef uint64_t __u64;
+typedef size_t   __kernel_size_t;
+typedef unsigned long drm_handle_t;
+
+#endif
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#define DRM_NAME	"drm"	  /**< Name in kernel, /dev, and /proc */
+#define DRM_MIN_ORDER	5	  /**< At least 2^5 bytes = 32 bytes */
+#define DRM_MAX_ORDER	22	  /**< Up to 2^22 bytes = 4MB */
+#define DRM_RAM_PERCENT 10	  /**< How much system ram can we lock? */
+
+#define _DRM_LOCK_HELD	0x80000000U /**< Hardware lock is held */
+#define _DRM_LOCK_CONT	0x40000000U /**< Hardware lock is contended */
+#define _DRM_LOCK_IS_HELD(lock)	   ((lock) & _DRM_LOCK_HELD)
+#define _DRM_LOCK_IS_CONT(lock)	   ((lock) & _DRM_LOCK_CONT)
+#define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
+
+typedef unsigned int drm_context_t;
+typedef unsigned int drm_drawable_t;
+typedef unsigned int drm_magic_t;
+
+/*
+ * Cliprect.
+ *
+ * \warning: If you change this structure, make sure you change
+ * XF86DRIClipRectRec in the server as well
+ *
+ * \note KW: Actually it's illegal to change either for
+ * backwards-compatibility reasons.
+ */
+struct drm_clip_rect {
+	unsigned short x1;
+	unsigned short y1;
+	unsigned short x2;
+	unsigned short y2;
+};
+
+/*
+ * Drawable information.
+ */
+struct drm_drawable_info {
+	unsigned int num_rects;
+	struct drm_clip_rect *rects;
+};
+
+/*
+ * Texture region,
+ */
+struct drm_tex_region {
+	unsigned char next;
+	unsigned char prev;
+	unsigned char in_use;
+	unsigned char padding;
+	unsigned int age;
+};
+
+/*
+ * Hardware lock.
+ *
+ * The lock structure is a simple cache-line aligned integer.  To avoid
+ * processor bus contention on a multiprocessor system, there should not be any
+ * other data stored in the same cache line.
+ */
+struct drm_hw_lock {
+	__volatile__ unsigned int lock;		/**< lock variable */
+	char padding[60];			/**< Pad to cache line */
+};
+
+/*
+ * DRM_IOCTL_VERSION ioctl argument type.
+ *
+ * \sa drmGetVersion().
+ */
+struct drm_version {
+	int version_major;	  /**< Major version */
+	int version_minor;	  /**< Minor version */
+	int version_patchlevel;	  /**< Patch level */
+	__kernel_size_t name_len;	  /**< Length of name buffer */
+	char *name;	  /**< Name of driver */
+	__kernel_size_t date_len;	  /**< Length of date buffer */
+	char *date;	  /**< User-space buffer to hold date */
+	__kernel_size_t desc_len;	  /**< Length of desc buffer */
+	char *desc;	  /**< User-space buffer to hold desc */
+};
+
+/*
+ * DRM_IOCTL_GET_UNIQUE ioctl argument type.
+ *
+ * \sa drmGetBusid() and drmSetBusId().
+ */
+struct drm_unique {
+	__kernel_size_t unique_len;	  /**< Length of unique */
+	char *unique;	  /**< Unique name for driver instantiation */
+};
+
+struct drm_list {
+	int count;		  /**< Length of user-space structures */
+	struct drm_version *version;
+};
+
+struct drm_block {
+	int unused;
+};
+
+/*
+ * DRM_IOCTL_CONTROL ioctl argument type.
+ *
+ * \sa drmCtlInstHandler() and drmCtlUninstHandler().
+ */
+struct drm_control {
+	enum {
+		DRM_ADD_COMMAND,
+		DRM_RM_COMMAND,
+		DRM_INST_HANDLER,
+		DRM_UNINST_HANDLER
+	} func;
+	int irq;
+};
+
+/*
+ * Type of memory to map.
+ */
+enum drm_map_type {
+	_DRM_FRAME_BUFFER = 0,	  /**< WC (no caching), no core dump */
+	_DRM_REGISTERS = 1,	  /**< no caching, no core dump */
+	_DRM_SHM = 2,		  /**< shared, cached */
+	_DRM_AGP = 3,		  /**< AGP/GART */
+	_DRM_SCATTER_GATHER = 4,  /**< Scatter/gather memory for PCI DMA */
+	_DRM_CONSISTENT = 5	  /**< Consistent memory for PCI DMA */
+};
+
+/*
+ * Memory mapping flags.
+ */
+enum drm_map_flags {
+	_DRM_RESTRICTED = 0x01,	     /**< Cannot be mapped to user-virtual */
+	_DRM_READ_ONLY = 0x02,
+	_DRM_LOCKED = 0x04,	     /**< shared, cached, locked */
+	_DRM_KERNEL = 0x08,	     /**< kernel requires access */
+	_DRM_WRITE_COMBINING = 0x10, /**< use write-combining if available */
+	_DRM_CONTAINS_LOCK = 0x20,   /**< SHM page that contains lock */
+	_DRM_REMOVABLE = 0x40,	     /**< Removable mapping */
+	_DRM_DRIVER = 0x80	     /**< Managed by driver */
+};
+
+struct drm_ctx_priv_map {
+	unsigned int ctx_id;	 /**< Context requesting private mapping */
+	void *handle;		 /**< Handle of map */
+};
+
+/*
+ * DRM_IOCTL_GET_MAP, DRM_IOCTL_ADD_MAP and DRM_IOCTL_RM_MAP ioctls
+ * argument type.
+ *
+ * \sa drmAddMap().
+ */
+struct drm_map {
+	unsigned long offset;	 /**< Requested physical address (0 for SAREA)*/
+	unsigned long size;	 /**< Requested physical size (bytes) */
+	enum drm_map_type type;	 /**< Type of memory to map */
+	enum drm_map_flags flags;	 /**< Flags */
+	void *handle;		 /**< User-space: "Handle" to pass to mmap() */
+				 /**< Kernel-space: kernel-virtual address */
+	int mtrr;		 /**< MTRR slot used */
+	/*   Private data */
+};
+
+/*
+ * DRM_IOCTL_GET_CLIENT ioctl argument type.
+ */
+struct drm_client {
+	int idx;		/**< Which client desired? */
+	int auth;		/**< Is client authenticated? */
+	unsigned long pid;	/**< Process ID */
+	unsigned long uid;	/**< User ID */
+	unsigned long magic;	/**< Magic */
+	unsigned long iocs;	/**< Ioctl count */
+};
+
+enum drm_stat_type {
+	_DRM_STAT_LOCK,
+	_DRM_STAT_OPENS,
+	_DRM_STAT_CLOSES,
+	_DRM_STAT_IOCTLS,
+	_DRM_STAT_LOCKS,
+	_DRM_STAT_UNLOCKS,
+	_DRM_STAT_VALUE,	/**< Generic value */
+	_DRM_STAT_BYTE,		/**< Generic byte counter (1024bytes/K) */
+	_DRM_STAT_COUNT,	/**< Generic non-byte counter (1000/k) */
+
+	_DRM_STAT_IRQ,		/**< IRQ */
+	_DRM_STAT_PRIMARY,	/**< Primary DMA bytes */
+	_DRM_STAT_SECONDARY,	/**< Secondary DMA bytes */
+	_DRM_STAT_DMA,		/**< DMA */
+	_DRM_STAT_SPECIAL,	/**< Special DMA (e.g., priority or polled) */
+	_DRM_STAT_MISSED	/**< Missed DMA opportunity */
+	    /* Add to the *END* of the list */
+};
+
+/*
+ * DRM_IOCTL_GET_STATS ioctl argument type.
+ */
+struct drm_stats {
+	unsigned long count;
+	struct {
+		unsigned long value;
+		enum drm_stat_type type;
+	} data[15];
+};
+
+/*
+ * Hardware locking flags.
+ */
+enum drm_lock_flags {
+	_DRM_LOCK_READY = 0x01,	     /**< Wait until hardware is ready for DMA */
+	_DRM_LOCK_QUIESCENT = 0x02,  /**< Wait until hardware quiescent */
+	_DRM_LOCK_FLUSH = 0x04,	     /**< Flush this context's DMA queue first */
+	_DRM_LOCK_FLUSH_ALL = 0x08,  /**< Flush all DMA queues first */
+	/* These *HALT* flags aren't supported yet
+	   -- they will be used to support the
+	   full-screen DGA-like mode. */
+	_DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */
+	_DRM_HALT_CUR_QUEUES = 0x20  /**< Halt all current queues */
+};
+
+/*
+ * DRM_IOCTL_LOCK, DRM_IOCTL_UNLOCK and DRM_IOCTL_FINISH ioctl argument type.
+ *
+ * \sa drmGetLock() and drmUnlock().
+ */
+struct drm_lock {
+	int context;
+	enum drm_lock_flags flags;
+};
+
+/*
+ * DMA flags
+ *
+ * \warning
+ * These values \e must match xf86drm.h.
+ *
+ * \sa drm_dma.
+ */
+enum drm_dma_flags {
+	/* Flags for DMA buffer dispatch */
+	_DRM_DMA_BLOCK = 0x01,	      /**<
+				       * Block until buffer dispatched.
+				       *
+				       * \note The buffer may not yet have
+				       * been processed by the hardware --
+				       * getting a hardware lock with the
+				       * hardware quiescent will ensure
+				       * that the buffer has been
+				       * processed.
+				       */
+	_DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */
+	_DRM_DMA_PRIORITY = 0x04,     /**< High priority dispatch */
+
+	/* Flags for DMA buffer request */
+	_DRM_DMA_WAIT = 0x10,	      /**< Wait for free buffers */
+	_DRM_DMA_SMALLER_OK = 0x20,   /**< Smaller-than-requested buffers OK */
+	_DRM_DMA_LARGER_OK = 0x40     /**< Larger-than-requested buffers OK */
+};
+
+/*
+ * DRM_IOCTL_ADD_BUFS and DRM_IOCTL_MARK_BUFS ioctl argument type.
+ *
+ * \sa drmAddBufs().
+ */
+struct drm_buf_desc {
+	int count;		 /**< Number of buffers of this size */
+	int size;		 /**< Size in bytes */
+	int low_mark;		 /**< Low water mark */
+	int high_mark;		 /**< High water mark */
+	enum {
+		_DRM_PAGE_ALIGN = 0x01,	/**< Align on page boundaries for DMA */
+		_DRM_AGP_BUFFER = 0x02,	/**< Buffer is in AGP space */
+		_DRM_SG_BUFFER = 0x04,	/**< Scatter/gather memory buffer */
+		_DRM_FB_BUFFER = 0x08,	/**< Buffer is in frame buffer */
+		_DRM_PCI_BUFFER_RO = 0x10 /**< Map PCI DMA buffer read-only */
+	} flags;
+	unsigned long agp_start; /**<
+				  * Start address of where the AGP buffers are
+				  * in the AGP aperture
+				  */
+};
+
+/*
+ * DRM_IOCTL_INFO_BUFS ioctl argument type.
+ */
+struct drm_buf_info {
+	int count;		/**< Entries in list */
+	struct drm_buf_desc *list;
+};
+
+/*
+ * DRM_IOCTL_FREE_BUFS ioctl argument type.
+ */
+struct drm_buf_free {
+	int count;
+	int *list;
+};
+
+/*
+ * Buffer information
+ *
+ * \sa drm_buf_map.
+ */
+struct drm_buf_pub {
+	int idx;		       /**< Index into the master buffer list */
+	int total;		       /**< Buffer size */
+	int used;		       /**< Amount of buffer in use (for DMA) */
+	void *address;	       /**< Address of buffer */
+};
+
+/*
+ * DRM_IOCTL_MAP_BUFS ioctl argument type.
+ */
+struct drm_buf_map {
+	int count;		/**< Length of the buffer list */
+#ifdef __cplusplus
+	void *virt;
+#else
+	void *virtual;		/**< Mmap'd area in user-virtual */
+#endif
+	struct drm_buf_pub *list;	/**< Buffer information */
+};
+
+/*
+ * DRM_IOCTL_DMA ioctl argument type.
+ *
+ * Indices here refer to the offset into the buffer list in drm_buf_get.
+ *
+ * \sa drmDMA().
+ */
+struct drm_dma {
+	int context;			  /**< Context handle */
+	int send_count;			  /**< Number of buffers to send */
+	int *send_indices;	  /**< List of handles to buffers */
+	int *send_sizes;		  /**< Lengths of data to send */
+	enum drm_dma_flags flags;	  /**< Flags */
+	int request_count;		  /**< Number of buffers requested */
+	int request_size;		  /**< Desired size for buffers */
+	int *request_indices;	  /**< Buffer information */
+	int *request_sizes;
+	int granted_count;		  /**< Number of buffers granted */
+};
+
+enum drm_ctx_flags {
+	_DRM_CONTEXT_PRESERVED = 0x01,
+	_DRM_CONTEXT_2DONLY = 0x02
+};
+
+/*
+ * DRM_IOCTL_ADD_CTX ioctl argument type.
+ *
+ * \sa drmCreateContext() and drmDestroyContext().
+ */
+struct drm_ctx {
+	drm_context_t handle;
+	enum drm_ctx_flags flags;
+};
+
+/*
+ * DRM_IOCTL_RES_CTX ioctl argument type.
+ */
+struct drm_ctx_res {
+	int count;
+	struct drm_ctx *contexts;
+};
+
+/*
+ * DRM_IOCTL_ADD_DRAW and DRM_IOCTL_RM_DRAW ioctl argument type.
+ */
+struct drm_draw {
+	drm_drawable_t handle;
+};
+
+/*
+ * DRM_IOCTL_UPDATE_DRAW ioctl argument type.
+ */
+typedef enum {
+	DRM_DRAWABLE_CLIPRECTS
+} drm_drawable_info_type_t;
+
+struct drm_update_draw {
+	drm_drawable_t handle;
+	unsigned int type;
+	unsigned int num;
+	unsigned long long data;
+};
+
+/*
+ * DRM_IOCTL_GET_MAGIC and DRM_IOCTL_AUTH_MAGIC ioctl argument type.
+ */
+struct drm_auth {
+	drm_magic_t magic;
+};
+
+/*
+ * DRM_IOCTL_IRQ_BUSID ioctl argument type.
+ *
+ * \sa drmGetInterruptFromBusID().
+ */
+struct drm_irq_busid {
+	int irq;	/**< IRQ number */
+	int busnum;	/**< bus number */
+	int devnum;	/**< device number */
+	int funcnum;	/**< function number */
+};
+
+enum drm_vblank_seq_type {
+	_DRM_VBLANK_ABSOLUTE = 0x0,	/**< Wait for specific vblank sequence number */
+	_DRM_VBLANK_RELATIVE = 0x1,	/**< Wait for given number of vblanks */
+	/* bits 1-6 are reserved for high crtcs */
+	_DRM_VBLANK_HIGH_CRTC_MASK = 0x0000003e,
+	_DRM_VBLANK_EVENT = 0x4000000,   /**< Send event instead of blocking */
+	_DRM_VBLANK_FLIP = 0x8000000,   /**< Scheduled buffer swap should flip */
+	_DRM_VBLANK_NEXTONMISS = 0x10000000,	/**< If missed, wait for next vblank */
+	_DRM_VBLANK_SECONDARY = 0x20000000,	/**< Secondary display controller */
+	_DRM_VBLANK_SIGNAL = 0x40000000	/**< Send signal instead of blocking, unsupported */
+};
+#define _DRM_VBLANK_HIGH_CRTC_SHIFT 1
+
+#define _DRM_VBLANK_TYPES_MASK (_DRM_VBLANK_ABSOLUTE | _DRM_VBLANK_RELATIVE)
+#define _DRM_VBLANK_FLAGS_MASK (_DRM_VBLANK_EVENT | _DRM_VBLANK_SIGNAL | \
+				_DRM_VBLANK_SECONDARY | _DRM_VBLANK_NEXTONMISS)
+
+struct drm_wait_vblank_request {
+	enum drm_vblank_seq_type type;
+	unsigned int sequence;
+	unsigned long signal;
+};
+
+struct drm_wait_vblank_reply {
+	enum drm_vblank_seq_type type;
+	unsigned int sequence;
+	long tval_sec;
+	long tval_usec;
+};
+
+/*
+ * DRM_IOCTL_WAIT_VBLANK ioctl argument type.
+ *
+ * \sa drmWaitVBlank().
+ */
+union drm_wait_vblank {
+	struct drm_wait_vblank_request request;
+	struct drm_wait_vblank_reply reply;
+};
+
+#define _DRM_PRE_MODESET 1
+#define _DRM_POST_MODESET 2
+
+/*
+ * DRM_IOCTL_MODESET_CTL ioctl argument type
+ *
+ * \sa drmModesetCtl().
+ */
+struct drm_modeset_ctl {
+	__u32 crtc;
+	__u32 cmd;
+};
+
+/*
+ * DRM_IOCTL_AGP_ENABLE ioctl argument type.
+ *
+ * \sa drmAgpEnable().
+ */
+struct drm_agp_mode {
+	unsigned long mode;	/**< AGP mode */
+};
+
+/*
+ * DRM_IOCTL_AGP_ALLOC and DRM_IOCTL_AGP_FREE ioctls argument type.
+ *
+ * \sa drmAgpAlloc() and drmAgpFree().
+ */
+struct drm_agp_buffer {
+	unsigned long size;	/**< In bytes -- will round to page boundary */
+	unsigned long handle;	/**< Used for binding / unbinding */
+	unsigned long type;	/**< Type of memory to allocate */
+	unsigned long physical;	/**< Physical used by i810 */
+};
+
+/*
+ * DRM_IOCTL_AGP_BIND and DRM_IOCTL_AGP_UNBIND ioctls argument type.
+ *
+ * \sa drmAgpBind() and drmAgpUnbind().
+ */
+struct drm_agp_binding {
+	unsigned long handle;	/**< From drm_agp_buffer */
+	unsigned long offset;	/**< In bytes -- will round to page boundary */
+};
+
+/*
+ * DRM_IOCTL_AGP_INFO ioctl argument type.
+ *
+ * \sa drmAgpVersionMajor(), drmAgpVersionMinor(), drmAgpGetMode(),
+ * drmAgpBase(), drmAgpSize(), drmAgpMemoryUsed(), drmAgpMemoryAvail(),
+ * drmAgpVendorId() and drmAgpDeviceId().
+ */
+struct drm_agp_info {
+	int agp_version_major;
+	int agp_version_minor;
+	unsigned long mode;
+	unsigned long aperture_base;	/* physical address */
+	unsigned long aperture_size;	/* bytes */
+	unsigned long memory_allowed;	/* bytes */
+	unsigned long memory_used;
+
+	/* PCI information */
+	unsigned short id_vendor;
+	unsigned short id_device;
+};
+
+/*
+ * DRM_IOCTL_SG_ALLOC ioctl argument type.
+ */
+struct drm_scatter_gather {
+	unsigned long size;	/**< In bytes -- will round to page boundary */
+	unsigned long handle;	/**< Used for mapping / unmapping */
+};
+
+/*
+ * DRM_IOCTL_SET_VERSION ioctl argument type.
+ */
+struct drm_set_version {
+	int drm_di_major;
+	int drm_di_minor;
+	int drm_dd_major;
+	int drm_dd_minor;
+};
+
+/* DRM_IOCTL_GEM_CLOSE ioctl argument type */
+struct drm_gem_close {
+	/** Handle of the object to be closed. */
+	__u32 handle;
+	__u32 pad;
+};
+
+/* DRM_IOCTL_GEM_FLINK ioctl argument type */
+struct drm_gem_flink {
+	/** Handle for the object being named */
+	__u32 handle;
+
+	/** Returned global name */
+	__u32 name;
+};
+
+/* DRM_IOCTL_GEM_OPEN ioctl argument type */
+struct drm_gem_open {
+	/** Name of object being opened */
+	__u32 name;
+
+	/** Returned handle for the object */
+	__u32 handle;
+
+	/** Returned size of the object */
+	__u64 size;
+};
+
+/**
+ * DRM_CAP_DUMB_BUFFER
+ *
+ * If set to 1, the driver supports creating dumb buffers via the
+ * &DRM_IOCTL_MODE_CREATE_DUMB ioctl.
+ */
+#define DRM_CAP_DUMB_BUFFER		0x1
+/**
+ * DRM_CAP_VBLANK_HIGH_CRTC
+ *
+ * If set to 1, the kernel supports specifying a :ref:`CRTC index<crtc_index>`
+ * in the high bits of &drm_wait_vblank_request.type.
+ *
+ * Starting kernel version 2.6.39, this capability is always set to 1.
+ */
+#define DRM_CAP_VBLANK_HIGH_CRTC	0x2
+/**
+ * DRM_CAP_DUMB_PREFERRED_DEPTH
+ *
+ * The preferred bit depth for dumb buffers.
+ *
+ * The bit depth is the number of bits used to indicate the color of a single
+ * pixel excluding any padding. This is different from the number of bits per
+ * pixel. For instance, XRGB8888 has a bit depth of 24 but has 32 bits per
+ * pixel.
+ *
+ * Note that this preference only applies to dumb buffers, it's irrelevant for
+ * other types of buffers.
+ */
+#define DRM_CAP_DUMB_PREFERRED_DEPTH	0x3
+/**
+ * DRM_CAP_DUMB_PREFER_SHADOW
+ *
+ * If set to 1, the driver prefers userspace to render to a shadow buffer
+ * instead of directly rendering to a dumb buffer. For best speed, userspace
+ * should do streaming ordered memory copies into the dumb buffer and never
+ * read from it.
+ *
+ * Note that this preference only applies to dumb buffers, it's irrelevant for
+ * other types of buffers.
+ */
+#define DRM_CAP_DUMB_PREFER_SHADOW	0x4
+/**
+ * DRM_CAP_PRIME
+ *
+ * Bitfield of supported PRIME sharing capabilities. See &DRM_PRIME_CAP_IMPORT
+ * and &DRM_PRIME_CAP_EXPORT.
+ *
+ * PRIME buffers are exposed as dma-buf file descriptors. See
+ * Documentation/gpu/drm-mm.rst, section "PRIME Buffer Sharing".
+ */
+#define DRM_CAP_PRIME			0x5
+/**
+ * DRM_PRIME_CAP_IMPORT
+ *
+ * If this bit is set in &DRM_CAP_PRIME, the driver supports importing PRIME
+ * buffers via the &DRM_IOCTL_PRIME_FD_TO_HANDLE ioctl.
+ */
+#define  DRM_PRIME_CAP_IMPORT		0x1
+/**
+ * DRM_PRIME_CAP_EXPORT
+ *
+ * If this bit is set in &DRM_CAP_PRIME, the driver supports exporting PRIME
+ * buffers via the &DRM_IOCTL_PRIME_HANDLE_TO_FD ioctl.
+ */
+#define  DRM_PRIME_CAP_EXPORT		0x2
+/**
+ * DRM_CAP_TIMESTAMP_MONOTONIC
+ *
+ * If set to 0, the kernel will report timestamps with ``CLOCK_REALTIME`` in
+ * struct drm_event_vblank. If set to 1, the kernel will report timestamps with
+ * ``CLOCK_MONOTONIC``. See ``clock_gettime(2)`` for the definition of these
+ * clocks.
+ *
+ * Starting from kernel version 2.6.39, the default value for this capability
+ * is 1. Starting kernel version 4.15, this capability is always set to 1.
+ */
+#define DRM_CAP_TIMESTAMP_MONOTONIC	0x6
+/**
+ * DRM_CAP_ASYNC_PAGE_FLIP
+ *
+ * If set to 1, the driver supports &DRM_MODE_PAGE_FLIP_ASYNC.
+ */
+#define DRM_CAP_ASYNC_PAGE_FLIP		0x7
+/**
+ * DRM_CAP_CURSOR_WIDTH
+ *
+ * The ``CURSOR_WIDTH`` and ``CURSOR_HEIGHT`` capabilities return a valid
+ * width x height combination for the hardware cursor. The intention is that a
+ * hardware agnostic userspace can query a cursor plane size to use.
+ *
+ * Note that the cross-driver contract is to merely return a valid size;
+ * drivers are free to attach another meaning on top, eg. i915 returns the
+ * maximum plane size.
+ */
+#define DRM_CAP_CURSOR_WIDTH		0x8
+/**
+ * DRM_CAP_CURSOR_HEIGHT
+ *
+ * See &DRM_CAP_CURSOR_WIDTH.
+ */
+#define DRM_CAP_CURSOR_HEIGHT		0x9
+/**
+ * DRM_CAP_ADDFB2_MODIFIERS
+ *
+ * If set to 1, the driver supports supplying modifiers in the
+ * &DRM_IOCTL_MODE_ADDFB2 ioctl.
+ */
+#define DRM_CAP_ADDFB2_MODIFIERS	0x10
+/**
+ * DRM_CAP_PAGE_FLIP_TARGET
+ *
+ * If set to 1, the driver supports the &DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE and
+ * &DRM_MODE_PAGE_FLIP_TARGET_RELATIVE flags in
+ * &drm_mode_crtc_page_flip_target.flags for the &DRM_IOCTL_MODE_PAGE_FLIP
+ * ioctl.
+ */
+#define DRM_CAP_PAGE_FLIP_TARGET	0x11
+/**
+ * DRM_CAP_CRTC_IN_VBLANK_EVENT
+ *
+ * If set to 1, the kernel supports reporting the CRTC ID in
+ * &drm_event_vblank.crtc_id for the &DRM_EVENT_VBLANK and
+ * &DRM_EVENT_FLIP_COMPLETE events.
+ *
+ * Starting kernel version 4.12, this capability is always set to 1.
+ */
+#define DRM_CAP_CRTC_IN_VBLANK_EVENT	0x12
+/**
+ * DRM_CAP_SYNCOBJ
+ *
+ * If set to 1, the driver supports sync objects. See
+ * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects".
+ */
+#define DRM_CAP_SYNCOBJ		0x13
+/**
+ * DRM_CAP_SYNCOBJ_TIMELINE
+ *
+ * If set to 1, the driver supports timeline operations on sync objects. See
+ * Documentation/gpu/drm-mm.rst, section "DRM Sync Objects".
+ */
+#define DRM_CAP_SYNCOBJ_TIMELINE	0x14
+
+/* DRM_IOCTL_GET_CAP ioctl argument type */
+struct drm_get_cap {
+	__u64 capability;
+	__u64 value;
+};
+
+/**
+ * DRM_CLIENT_CAP_STEREO_3D
+ *
+ * If set to 1, the DRM core will expose the stereo 3D capabilities of the
+ * monitor by advertising the supported 3D layouts in the flags of struct
+ * drm_mode_modeinfo. See ``DRM_MODE_FLAG_3D_*``.
+ *
+ * This capability is always supported for all drivers starting from kernel
+ * version 3.13.
+ */
+#define DRM_CLIENT_CAP_STEREO_3D	1
+
+/**
+ * DRM_CLIENT_CAP_UNIVERSAL_PLANES
+ *
+ * If set to 1, the DRM core will expose all planes (overlay, primary, and
+ * cursor) to userspace.
+ *
+ * This capability has been introduced in kernel version 3.15. Starting from
+ * kernel version 3.17, this capability is always supported for all drivers.
+ */
+#define DRM_CLIENT_CAP_UNIVERSAL_PLANES  2
+
+/**
+ * DRM_CLIENT_CAP_ATOMIC
+ *
+ * If set to 1, the DRM core will expose atomic properties to userspace. This
+ * implicitly enables &DRM_CLIENT_CAP_UNIVERSAL_PLANES and
+ * &DRM_CLIENT_CAP_ASPECT_RATIO.
+ *
+ * If the driver doesn't support atomic mode-setting, enabling this capability
+ * will fail with -EOPNOTSUPP.
+ *
+ * This capability has been introduced in kernel version 4.0. Starting from
+ * kernel version 4.2, this capability is always supported for atomic-capable
+ * drivers.
+ */
+#define DRM_CLIENT_CAP_ATOMIC	3
+
+/**
+ * DRM_CLIENT_CAP_ASPECT_RATIO
+ *
+ * If set to 1, the DRM core will provide aspect ratio information in modes.
+ * See ``DRM_MODE_FLAG_PIC_AR_*``.
+ *
+ * This capability is always supported for all drivers starting from kernel
+ * version 4.18.
+ */
+#define DRM_CLIENT_CAP_ASPECT_RATIO    4
+
+/**
+ * DRM_CLIENT_CAP_WRITEBACK_CONNECTORS
+ *
+ * If set to 1, the DRM core will expose special connectors to be used for
+ * writing back to memory the scene setup in the commit. The client must enable
+ * &DRM_CLIENT_CAP_ATOMIC first.
+ *
+ * This capability is always supported for atomic-capable drivers starting from
+ * kernel version 4.19.
+ */
+#define DRM_CLIENT_CAP_WRITEBACK_CONNECTORS	5
+
+/* DRM_IOCTL_SET_CLIENT_CAP ioctl argument type */
+struct drm_set_client_cap {
+	__u64 capability;
+	__u64 value;
+};
+
+#define DRM_RDWR O_RDWR
+#define DRM_CLOEXEC O_CLOEXEC
+struct drm_prime_handle {
+	__u32 handle;
+
+	/** Flags.. only applicable for handle->fd */
+	__u32 flags;
+
+	/** Returned dmabuf file descriptor */
+	__s32 fd;
+};
+
+struct drm_syncobj_create {
+	__u32 handle;
+#define DRM_SYNCOBJ_CREATE_SIGNALED (1 << 0)
+	__u32 flags;
+};
+
+struct drm_syncobj_destroy {
+	__u32 handle;
+	__u32 pad;
+};
+
+#define DRM_SYNCOBJ_FD_TO_HANDLE_FLAGS_IMPORT_SYNC_FILE (1 << 0)
+#define DRM_SYNCOBJ_HANDLE_TO_FD_FLAGS_EXPORT_SYNC_FILE (1 << 0)
+struct drm_syncobj_handle {
+	__u32 handle;
+	__u32 flags;
+
+	__s32 fd;
+	__u32 pad;
+};
+
+struct drm_syncobj_transfer {
+	__u32 src_handle;
+	__u32 dst_handle;
+	__u64 src_point;
+	__u64 dst_point;
+	__u32 flags;
+	__u32 pad;
+};
+
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_ALL (1 << 0)
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_FOR_SUBMIT (1 << 1)
+#define DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE (1 << 2) /* wait for time point to become available */
+struct drm_syncobj_wait {
+	__u64 handles;
+	/* absolute timeout */
+	__s64 timeout_nsec;
+	__u32 count_handles;
+	__u32 flags;
+	__u32 first_signaled; /* only valid when not waiting all */
+	__u32 pad;
+};
+
+struct drm_syncobj_timeline_wait {
+	__u64 handles;
+	/* wait on specific timeline point for every handles*/
+	__u64 points;
+	/* absolute timeout */
+	__s64 timeout_nsec;
+	__u32 count_handles;
+	__u32 flags;
+	__u32 first_signaled; /* only valid when not waiting all */
+	__u32 pad;
+};
+
+
+struct drm_syncobj_array {
+	__u64 handles;
+	__u32 count_handles;
+	__u32 pad;
+};
+
+#define DRM_SYNCOBJ_QUERY_FLAGS_LAST_SUBMITTED (1 << 0) /* last available point on timeline syncobj */
+struct drm_syncobj_timeline_array {
+	__u64 handles;
+	__u64 points;
+	__u32 count_handles;
+	__u32 flags;
+};
+
+
+/* Query current scanout sequence number */
+struct drm_crtc_get_sequence {
+	__u32 crtc_id;		/* requested crtc_id */
+	__u32 active;		/* return: crtc output is active */
+	__u64 sequence;		/* return: most recent vblank sequence */
+	__s64 sequence_ns;	/* return: most recent time of first pixel out */
+};
+
+/* Queue event to be delivered at specified sequence. Time stamp marks
+ * when the first pixel of the refresh cycle leaves the display engine
+ * for the display
+ */
+#define DRM_CRTC_SEQUENCE_RELATIVE		0x00000001	/* sequence is relative to current */
+#define DRM_CRTC_SEQUENCE_NEXT_ON_MISS		0x00000002	/* Use next sequence if we've missed */
+
+struct drm_crtc_queue_sequence {
+	__u32 crtc_id;
+	__u32 flags;
+	__u64 sequence;		/* on input, target sequence. on output, actual sequence */
+	__u64 user_data;	/* user data passed to event */
+};
+
+#if defined(__cplusplus)
+}
+#endif
+
+#include "drm_mode.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#define DRM_IOCTL_BASE			'd'
+#define DRM_IO(nr)			_IO(DRM_IOCTL_BASE,nr)
+#define DRM_IOR(nr,type)		_IOR(DRM_IOCTL_BASE,nr,type)
+#define DRM_IOW(nr,type)		_IOW(DRM_IOCTL_BASE,nr,type)
+#define DRM_IOWR(nr,type)		_IOWR(DRM_IOCTL_BASE,nr,type)
+
+#define DRM_IOCTL_VERSION		DRM_IOWR(0x00, struct drm_version)
+#define DRM_IOCTL_GET_UNIQUE		DRM_IOWR(0x01, struct drm_unique)
+#define DRM_IOCTL_GET_MAGIC		DRM_IOR( 0x02, struct drm_auth)
+#define DRM_IOCTL_IRQ_BUSID		DRM_IOWR(0x03, struct drm_irq_busid)
+#define DRM_IOCTL_GET_MAP               DRM_IOWR(0x04, struct drm_map)
+#define DRM_IOCTL_GET_CLIENT            DRM_IOWR(0x05, struct drm_client)
+#define DRM_IOCTL_GET_STATS             DRM_IOR( 0x06, struct drm_stats)
+#define DRM_IOCTL_SET_VERSION		DRM_IOWR(0x07, struct drm_set_version)
+#define DRM_IOCTL_MODESET_CTL           DRM_IOW(0x08, struct drm_modeset_ctl)
+#define DRM_IOCTL_GEM_CLOSE		DRM_IOW (0x09, struct drm_gem_close)
+#define DRM_IOCTL_GEM_FLINK		DRM_IOWR(0x0a, struct drm_gem_flink)
+#define DRM_IOCTL_GEM_OPEN		DRM_IOWR(0x0b, struct drm_gem_open)
+#define DRM_IOCTL_GET_CAP		DRM_IOWR(0x0c, struct drm_get_cap)
+#define DRM_IOCTL_SET_CLIENT_CAP	DRM_IOW( 0x0d, struct drm_set_client_cap)
+
+#define DRM_IOCTL_SET_UNIQUE		DRM_IOW( 0x10, struct drm_unique)
+#define DRM_IOCTL_AUTH_MAGIC		DRM_IOW( 0x11, struct drm_auth)
+#define DRM_IOCTL_BLOCK			DRM_IOWR(0x12, struct drm_block)
+#define DRM_IOCTL_UNBLOCK		DRM_IOWR(0x13, struct drm_block)
+#define DRM_IOCTL_CONTROL		DRM_IOW( 0x14, struct drm_control)
+#define DRM_IOCTL_ADD_MAP		DRM_IOWR(0x15, struct drm_map)
+#define DRM_IOCTL_ADD_BUFS		DRM_IOWR(0x16, struct drm_buf_desc)
+#define DRM_IOCTL_MARK_BUFS		DRM_IOW( 0x17, struct drm_buf_desc)
+#define DRM_IOCTL_INFO_BUFS		DRM_IOWR(0x18, struct drm_buf_info)
+#define DRM_IOCTL_MAP_BUFS		DRM_IOWR(0x19, struct drm_buf_map)
+#define DRM_IOCTL_FREE_BUFS		DRM_IOW( 0x1a, struct drm_buf_free)
+
+#define DRM_IOCTL_RM_MAP		DRM_IOW( 0x1b, struct drm_map)
+
+#define DRM_IOCTL_SET_SAREA_CTX		DRM_IOW( 0x1c, struct drm_ctx_priv_map)
+#define DRM_IOCTL_GET_SAREA_CTX 	DRM_IOWR(0x1d, struct drm_ctx_priv_map)
+
+#define DRM_IOCTL_SET_MASTER            DRM_IO(0x1e)
+#define DRM_IOCTL_DROP_MASTER           DRM_IO(0x1f)
+
+#define DRM_IOCTL_ADD_CTX		DRM_IOWR(0x20, struct drm_ctx)
+#define DRM_IOCTL_RM_CTX		DRM_IOWR(0x21, struct drm_ctx)
+#define DRM_IOCTL_MOD_CTX		DRM_IOW( 0x22, struct drm_ctx)
+#define DRM_IOCTL_GET_CTX		DRM_IOWR(0x23, struct drm_ctx)
+#define DRM_IOCTL_SWITCH_CTX		DRM_IOW( 0x24, struct drm_ctx)
+#define DRM_IOCTL_NEW_CTX		DRM_IOW( 0x25, struct drm_ctx)
+#define DRM_IOCTL_RES_CTX		DRM_IOWR(0x26, struct drm_ctx_res)
+#define DRM_IOCTL_ADD_DRAW		DRM_IOWR(0x27, struct drm_draw)
+#define DRM_IOCTL_RM_DRAW		DRM_IOWR(0x28, struct drm_draw)
+#define DRM_IOCTL_DMA			DRM_IOWR(0x29, struct drm_dma)
+#define DRM_IOCTL_LOCK			DRM_IOW( 0x2a, struct drm_lock)
+#define DRM_IOCTL_UNLOCK		DRM_IOW( 0x2b, struct drm_lock)
+#define DRM_IOCTL_FINISH		DRM_IOW( 0x2c, struct drm_lock)
+
+#define DRM_IOCTL_PRIME_HANDLE_TO_FD    DRM_IOWR(0x2d, struct drm_prime_handle)
+#define DRM_IOCTL_PRIME_FD_TO_HANDLE    DRM_IOWR(0x2e, struct drm_prime_handle)
+
+#define DRM_IOCTL_AGP_ACQUIRE		DRM_IO(  0x30)
+#define DRM_IOCTL_AGP_RELEASE		DRM_IO(  0x31)
+#define DRM_IOCTL_AGP_ENABLE		DRM_IOW( 0x32, struct drm_agp_mode)
+#define DRM_IOCTL_AGP_INFO		DRM_IOR( 0x33, struct drm_agp_info)
+#define DRM_IOCTL_AGP_ALLOC		DRM_IOWR(0x34, struct drm_agp_buffer)
+#define DRM_IOCTL_AGP_FREE		DRM_IOW( 0x35, struct drm_agp_buffer)
+#define DRM_IOCTL_AGP_BIND		DRM_IOW( 0x36, struct drm_agp_binding)
+#define DRM_IOCTL_AGP_UNBIND		DRM_IOW( 0x37, struct drm_agp_binding)
+
+#define DRM_IOCTL_SG_ALLOC		DRM_IOWR(0x38, struct drm_scatter_gather)
+#define DRM_IOCTL_SG_FREE		DRM_IOW( 0x39, struct drm_scatter_gather)
+
+#define DRM_IOCTL_WAIT_VBLANK		DRM_IOWR(0x3a, union drm_wait_vblank)
+
+#define DRM_IOCTL_CRTC_GET_SEQUENCE	DRM_IOWR(0x3b, struct drm_crtc_get_sequence)
+#define DRM_IOCTL_CRTC_QUEUE_SEQUENCE	DRM_IOWR(0x3c, struct drm_crtc_queue_sequence)
+
+#define DRM_IOCTL_UPDATE_DRAW		DRM_IOW(0x3f, struct drm_update_draw)
+
+#define DRM_IOCTL_MODE_GETRESOURCES	DRM_IOWR(0xA0, struct drm_mode_card_res)
+#define DRM_IOCTL_MODE_GETCRTC		DRM_IOWR(0xA1, struct drm_mode_crtc)
+#define DRM_IOCTL_MODE_SETCRTC		DRM_IOWR(0xA2, struct drm_mode_crtc)
+#define DRM_IOCTL_MODE_CURSOR		DRM_IOWR(0xA3, struct drm_mode_cursor)
+#define DRM_IOCTL_MODE_GETGAMMA		DRM_IOWR(0xA4, struct drm_mode_crtc_lut)
+#define DRM_IOCTL_MODE_SETGAMMA		DRM_IOWR(0xA5, struct drm_mode_crtc_lut)
+#define DRM_IOCTL_MODE_GETENCODER	DRM_IOWR(0xA6, struct drm_mode_get_encoder)
+#define DRM_IOCTL_MODE_GETCONNECTOR	DRM_IOWR(0xA7, struct drm_mode_get_connector)
+#define DRM_IOCTL_MODE_ATTACHMODE	DRM_IOWR(0xA8, struct drm_mode_mode_cmd) /* deprecated (never worked) */
+#define DRM_IOCTL_MODE_DETACHMODE	DRM_IOWR(0xA9, struct drm_mode_mode_cmd) /* deprecated (never worked) */
+
+#define DRM_IOCTL_MODE_GETPROPERTY	DRM_IOWR(0xAA, struct drm_mode_get_property)
+#define DRM_IOCTL_MODE_SETPROPERTY	DRM_IOWR(0xAB, struct drm_mode_connector_set_property)
+#define DRM_IOCTL_MODE_GETPROPBLOB	DRM_IOWR(0xAC, struct drm_mode_get_blob)
+#define DRM_IOCTL_MODE_GETFB		DRM_IOWR(0xAD, struct drm_mode_fb_cmd)
+#define DRM_IOCTL_MODE_ADDFB		DRM_IOWR(0xAE, struct drm_mode_fb_cmd)
+/**
+ * DRM_IOCTL_MODE_RMFB - Remove a framebuffer.
+ *
+ * This removes a framebuffer previously added via ADDFB/ADDFB2. The IOCTL
+ * argument is a framebuffer object ID.
+ *
+ * Warning: removing a framebuffer currently in-use on an enabled plane will
+ * disable that plane. The CRTC the plane is linked to may also be disabled
+ * (depending on driver capabilities).
+ */
+#define DRM_IOCTL_MODE_RMFB		DRM_IOWR(0xAF, unsigned int)
+#define DRM_IOCTL_MODE_PAGE_FLIP	DRM_IOWR(0xB0, struct drm_mode_crtc_page_flip)
+#define DRM_IOCTL_MODE_DIRTYFB		DRM_IOWR(0xB1, struct drm_mode_fb_dirty_cmd)
+
+#define DRM_IOCTL_MODE_CREATE_DUMB DRM_IOWR(0xB2, struct drm_mode_create_dumb)
+#define DRM_IOCTL_MODE_MAP_DUMB    DRM_IOWR(0xB3, struct drm_mode_map_dumb)
+#define DRM_IOCTL_MODE_DESTROY_DUMB    DRM_IOWR(0xB4, struct drm_mode_destroy_dumb)
+#define DRM_IOCTL_MODE_GETPLANERESOURCES DRM_IOWR(0xB5, struct drm_mode_get_plane_res)
+#define DRM_IOCTL_MODE_GETPLANE	DRM_IOWR(0xB6, struct drm_mode_get_plane)
+#define DRM_IOCTL_MODE_SETPLANE	DRM_IOWR(0xB7, struct drm_mode_set_plane)
+#define DRM_IOCTL_MODE_ADDFB2		DRM_IOWR(0xB8, struct drm_mode_fb_cmd2)
+#define DRM_IOCTL_MODE_OBJ_GETPROPERTIES	DRM_IOWR(0xB9, struct drm_mode_obj_get_properties)
+#define DRM_IOCTL_MODE_OBJ_SETPROPERTY	DRM_IOWR(0xBA, struct drm_mode_obj_set_property)
+#define DRM_IOCTL_MODE_CURSOR2		DRM_IOWR(0xBB, struct drm_mode_cursor2)
+#define DRM_IOCTL_MODE_ATOMIC		DRM_IOWR(0xBC, struct drm_mode_atomic)
+#define DRM_IOCTL_MODE_CREATEPROPBLOB	DRM_IOWR(0xBD, struct drm_mode_create_blob)
+#define DRM_IOCTL_MODE_DESTROYPROPBLOB	DRM_IOWR(0xBE, struct drm_mode_destroy_blob)
+
+#define DRM_IOCTL_SYNCOBJ_CREATE	DRM_IOWR(0xBF, struct drm_syncobj_create)
+#define DRM_IOCTL_SYNCOBJ_DESTROY	DRM_IOWR(0xC0, struct drm_syncobj_destroy)
+#define DRM_IOCTL_SYNCOBJ_HANDLE_TO_FD	DRM_IOWR(0xC1, struct drm_syncobj_handle)
+#define DRM_IOCTL_SYNCOBJ_FD_TO_HANDLE	DRM_IOWR(0xC2, struct drm_syncobj_handle)
+#define DRM_IOCTL_SYNCOBJ_WAIT		DRM_IOWR(0xC3, struct drm_syncobj_wait)
+#define DRM_IOCTL_SYNCOBJ_RESET		DRM_IOWR(0xC4, struct drm_syncobj_array)
+#define DRM_IOCTL_SYNCOBJ_SIGNAL	DRM_IOWR(0xC5, struct drm_syncobj_array)
+
+#define DRM_IOCTL_MODE_CREATE_LEASE	DRM_IOWR(0xC6, struct drm_mode_create_lease)
+#define DRM_IOCTL_MODE_LIST_LESSEES	DRM_IOWR(0xC7, struct drm_mode_list_lessees)
+#define DRM_IOCTL_MODE_GET_LEASE	DRM_IOWR(0xC8, struct drm_mode_get_lease)
+#define DRM_IOCTL_MODE_REVOKE_LEASE	DRM_IOWR(0xC9, struct drm_mode_revoke_lease)
+
+#define DRM_IOCTL_SYNCOBJ_TIMELINE_WAIT	DRM_IOWR(0xCA, struct drm_syncobj_timeline_wait)
+#define DRM_IOCTL_SYNCOBJ_QUERY		DRM_IOWR(0xCB, struct drm_syncobj_timeline_array)
+#define DRM_IOCTL_SYNCOBJ_TRANSFER	DRM_IOWR(0xCC, struct drm_syncobj_transfer)
+#define DRM_IOCTL_SYNCOBJ_TIMELINE_SIGNAL	DRM_IOWR(0xCD, struct drm_syncobj_timeline_array)
+
+#define DRM_IOCTL_MODE_GETFB2		DRM_IOWR(0xCE, struct drm_mode_fb_cmd2)
+
+/*
+ * Device specific ioctls should only be in their respective headers
+ * The device specific ioctl range is from 0x40 to 0x9f.
+ * Generic IOCTLS restart at 0xA0.
+ *
+ * \sa drmCommandNone(), drmCommandRead(), drmCommandWrite(), and
+ * drmCommandReadWrite().
+ */
+#define DRM_COMMAND_BASE                0x40
+#define DRM_COMMAND_END			0xA0
+
+/*
+ * Header for events written back to userspace on the drm fd.  The
+ * type defines the type of event, the length specifies the total
+ * length of the event (including the header), and user_data is
+ * typically a 64 bit value passed with the ioctl that triggered the
+ * event.  A read on the drm fd will always only return complete
+ * events, that is, if for example the read buffer is 100 bytes, and
+ * there are two 64 byte events pending, only one will be returned.
+ *
+ * Event types 0 - 0x7fffffff are generic drm events, 0x80000000 and
+ * up are chipset specific.
+ */
+struct drm_event {
+	__u32 type;
+	__u32 length;
+};
+
+#define DRM_EVENT_VBLANK 0x01
+#define DRM_EVENT_FLIP_COMPLETE 0x02
+#define DRM_EVENT_CRTC_SEQUENCE	0x03
+
+struct drm_event_vblank {
+	struct drm_event base;
+	__u64 user_data;
+	__u32 tv_sec;
+	__u32 tv_usec;
+	__u32 sequence;
+	__u32 crtc_id; /* 0 on older kernels that do not support this */
+};
+
+/* Event delivered at sequence. Time stamp marks when the first pixel
+ * of the refresh cycle leaves the display engine for the display
+ */
+struct drm_event_crtc_sequence {
+	struct drm_event	base;
+	__u64			user_data;
+	__s64			time_ns;
+	__u64			sequence;
+};
+
+/* typedef area */
+typedef struct drm_clip_rect drm_clip_rect_t;
+typedef struct drm_drawable_info drm_drawable_info_t;
+typedef struct drm_tex_region drm_tex_region_t;
+typedef struct drm_hw_lock drm_hw_lock_t;
+typedef struct drm_version drm_version_t;
+typedef struct drm_unique drm_unique_t;
+typedef struct drm_list drm_list_t;
+typedef struct drm_block drm_block_t;
+typedef struct drm_control drm_control_t;
+typedef enum drm_map_type drm_map_type_t;
+typedef enum drm_map_flags drm_map_flags_t;
+typedef struct drm_ctx_priv_map drm_ctx_priv_map_t;
+typedef struct drm_map drm_map_t;
+typedef struct drm_client drm_client_t;
+typedef enum drm_stat_type drm_stat_type_t;
+typedef struct drm_stats drm_stats_t;
+typedef enum drm_lock_flags drm_lock_flags_t;
+typedef struct drm_lock drm_lock_t;
+typedef enum drm_dma_flags drm_dma_flags_t;
+typedef struct drm_buf_desc drm_buf_desc_t;
+typedef struct drm_buf_info drm_buf_info_t;
+typedef struct drm_buf_free drm_buf_free_t;
+typedef struct drm_buf_pub drm_buf_pub_t;
+typedef struct drm_buf_map drm_buf_map_t;
+typedef struct drm_dma drm_dma_t;
+typedef union drm_wait_vblank drm_wait_vblank_t;
+typedef struct drm_agp_mode drm_agp_mode_t;
+typedef enum drm_ctx_flags drm_ctx_flags_t;
+typedef struct drm_ctx drm_ctx_t;
+typedef struct drm_ctx_res drm_ctx_res_t;
+typedef struct drm_draw drm_draw_t;
+typedef struct drm_update_draw drm_update_draw_t;
+typedef struct drm_auth drm_auth_t;
+typedef struct drm_irq_busid drm_irq_busid_t;
+typedef enum drm_vblank_seq_type drm_vblank_seq_type_t;
+
+typedef struct drm_agp_buffer drm_agp_buffer_t;
+typedef struct drm_agp_binding drm_agp_binding_t;
+typedef struct drm_agp_info drm_agp_info_t;
+typedef struct drm_scatter_gather drm_scatter_gather_t;
+typedef struct drm_set_version drm_set_version_t;
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif
diff --git a/third_party/drm/drm/drm_fourcc.h b/third_party/drm/drm/drm_fourcc.h
new file mode 100644
index 0000000000..4ececa84ba
--- /dev/null
+++ b/third_party/drm/drm/drm_fourcc.h
@@ -0,0 +1,1377 @@
+/*
+ * Copyright 2011 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * VA LINUX SYSTEMS AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#ifndef DRM_FOURCC_H
+#define DRM_FOURCC_H
+
+#include "drm.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/**
+ * DOC: overview
+ *
+ * In the DRM subsystem, framebuffer pixel formats are described using the
+ * fourcc codes defined in `include/uapi/drm/drm_fourcc.h`. In addition to the
+ * fourcc code, a Format Modifier may optionally be provided, in order to
+ * further describe the buffer's format - for example tiling or compression.
+ *
+ * Format Modifiers
+ * ----------------
+ *
+ * Format modifiers are used in conjunction with a fourcc code, forming a
+ * unique fourcc:modifier pair. This format:modifier pair must fully define the
+ * format and data layout of the buffer, and should be the only way to describe
+ * that particular buffer.
+ *
+ * Having multiple fourcc:modifier pairs which describe the same layout should
+ * be avoided, as such aliases run the risk of different drivers exposing
+ * different names for the same data format, forcing userspace to understand
+ * that they are aliases.
+ *
+ * Format modifiers may change any property of the buffer, including the number
+ * of planes and/or the required allocation size. Format modifiers are
+ * vendor-namespaced, and as such the relationship between a fourcc code and a
+ * modifier is specific to the modifer being used. For example, some modifiers
+ * may preserve meaning - such as number of planes - from the fourcc code,
+ * whereas others may not.
+ *
+ * Modifiers must uniquely encode buffer layout. In other words, a buffer must
+ * match only a single modifier. A modifier must not be a subset of layouts of
+ * another modifier. For instance, it's incorrect to encode pitch alignment in
+ * a modifier: a buffer may match a 64-pixel aligned modifier and a 32-pixel
+ * aligned modifier. That said, modifiers can have implicit minimal
+ * requirements.
+ *
+ * For modifiers where the combination of fourcc code and modifier can alias,
+ * a canonical pair needs to be defined and used by all drivers. Preferred
+ * combinations are also encouraged where all combinations might lead to
+ * confusion and unnecessarily reduced interoperability. An example for the
+ * latter is AFBC, where the ABGR layouts are preferred over ARGB layouts.
+ *
+ * There are two kinds of modifier users:
+ *
+ * - Kernel and user-space drivers: for drivers it's important that modifiers
+ *   don't alias, otherwise two drivers might support the same format but use
+ *   different aliases, preventing them from sharing buffers in an efficient
+ *   format.
+ * - Higher-level programs interfacing with KMS/GBM/EGL/Vulkan/etc: these users
+ *   see modifiers as opaque tokens they can check for equality and intersect.
+ *   These users musn't need to know to reason about the modifier value
+ *   (i.e. they are not expected to extract information out of the modifier).
+ *
+ * Vendors should document their modifier usage in as much detail as
+ * possible, to ensure maximum compatibility across devices, drivers and
+ * applications.
+ *
+ * The authoritative list of format modifier codes is found in
+ * `include/uapi/drm/drm_fourcc.h`
+ */
+
+#define fourcc_code(a, b, c, d) ((__u32)(a) | ((__u32)(b) << 8) | \
+				 ((__u32)(c) << 16) | ((__u32)(d) << 24))
+
+#define DRM_FORMAT_BIG_ENDIAN (1U<<31) /* format is big endian instead of little endian */
+
+/* Reserve 0 for the invalid format specifier */
+#define DRM_FORMAT_INVALID	0
+
+/* color index */
+#define DRM_FORMAT_C8		fourcc_code('C', '8', ' ', ' ') /* [7:0] C */
+
+/* 8 bpp Red */
+#define DRM_FORMAT_R8		fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
+
+/* 10 bpp Red */
+#define DRM_FORMAT_R10		fourcc_code('R', '1', '0', ' ') /* [15:0] x:R 6:10 little endian */
+
+/* 12 bpp Red */
+#define DRM_FORMAT_R12		fourcc_code('R', '1', '2', ' ') /* [15:0] x:R 4:12 little endian */
+
+/* 16 bpp Red */
+#define DRM_FORMAT_R16		fourcc_code('R', '1', '6', ' ') /* [15:0] R little endian */
+
+/* 16 bpp RG */
+#define DRM_FORMAT_RG88		fourcc_code('R', 'G', '8', '8') /* [15:0] R:G 8:8 little endian */
+#define DRM_FORMAT_GR88		fourcc_code('G', 'R', '8', '8') /* [15:0] G:R 8:8 little endian */
+
+/* 32 bpp RG */
+#define DRM_FORMAT_RG1616	fourcc_code('R', 'G', '3', '2') /* [31:0] R:G 16:16 little endian */
+#define DRM_FORMAT_GR1616	fourcc_code('G', 'R', '3', '2') /* [31:0] G:R 16:16 little endian */
+
+/* 8 bpp RGB */
+#define DRM_FORMAT_RGB332	fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */
+#define DRM_FORMAT_BGR233	fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */
+
+/* 16 bpp RGB */
+#define DRM_FORMAT_XRGB4444	fourcc_code('X', 'R', '1', '2') /* [15:0] x:R:G:B 4:4:4:4 little endian */
+#define DRM_FORMAT_XBGR4444	fourcc_code('X', 'B', '1', '2') /* [15:0] x:B:G:R 4:4:4:4 little endian */
+#define DRM_FORMAT_RGBX4444	fourcc_code('R', 'X', '1', '2') /* [15:0] R:G:B:x 4:4:4:4 little endian */
+#define DRM_FORMAT_BGRX4444	fourcc_code('B', 'X', '1', '2') /* [15:0] B:G:R:x 4:4:4:4 little endian */
+
+#define DRM_FORMAT_ARGB4444	fourcc_code('A', 'R', '1', '2') /* [15:0] A:R:G:B 4:4:4:4 little endian */
+#define DRM_FORMAT_ABGR4444	fourcc_code('A', 'B', '1', '2') /* [15:0] A:B:G:R 4:4:4:4 little endian */
+#define DRM_FORMAT_RGBA4444	fourcc_code('R', 'A', '1', '2') /* [15:0] R:G:B:A 4:4:4:4 little endian */
+#define DRM_FORMAT_BGRA4444	fourcc_code('B', 'A', '1', '2') /* [15:0] B:G:R:A 4:4:4:4 little endian */
+
+#define DRM_FORMAT_XRGB1555	fourcc_code('X', 'R', '1', '5') /* [15:0] x:R:G:B 1:5:5:5 little endian */
+#define DRM_FORMAT_XBGR1555	fourcc_code('X', 'B', '1', '5') /* [15:0] x:B:G:R 1:5:5:5 little endian */
+#define DRM_FORMAT_RGBX5551	fourcc_code('R', 'X', '1', '5') /* [15:0] R:G:B:x 5:5:5:1 little endian */
+#define DRM_FORMAT_BGRX5551	fourcc_code('B', 'X', '1', '5') /* [15:0] B:G:R:x 5:5:5:1 little endian */
+
+#define DRM_FORMAT_ARGB1555	fourcc_code('A', 'R', '1', '5') /* [15:0] A:R:G:B 1:5:5:5 little endian */
+#define DRM_FORMAT_ABGR1555	fourcc_code('A', 'B', '1', '5') /* [15:0] A:B:G:R 1:5:5:5 little endian */
+#define DRM_FORMAT_RGBA5551	fourcc_code('R', 'A', '1', '5') /* [15:0] R:G:B:A 5:5:5:1 little endian */
+#define DRM_FORMAT_BGRA5551	fourcc_code('B', 'A', '1', '5') /* [15:0] B:G:R:A 5:5:5:1 little endian */
+
+#define DRM_FORMAT_RGB565	fourcc_code('R', 'G', '1', '6') /* [15:0] R:G:B 5:6:5 little endian */
+#define DRM_FORMAT_BGR565	fourcc_code('B', 'G', '1', '6') /* [15:0] B:G:R 5:6:5 little endian */
+
+/* 24 bpp RGB */
+#define DRM_FORMAT_RGB888	fourcc_code('R', 'G', '2', '4') /* [23:0] R:G:B little endian */
+#define DRM_FORMAT_BGR888	fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */
+
+/* 32 bpp RGB */
+#define DRM_FORMAT_XRGB8888	fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */
+#define DRM_FORMAT_XBGR8888	fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */
+#define DRM_FORMAT_RGBX8888	fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */
+#define DRM_FORMAT_BGRX8888	fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */
+
+#define DRM_FORMAT_ARGB8888	fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */
+#define DRM_FORMAT_ABGR8888	fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */
+#define DRM_FORMAT_RGBA8888	fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */
+#define DRM_FORMAT_BGRA8888	fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */
+
+#define DRM_FORMAT_XRGB2101010	fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */
+#define DRM_FORMAT_XBGR2101010	fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */
+#define DRM_FORMAT_RGBX1010102	fourcc_code('R', 'X', '3', '0') /* [31:0] R:G:B:x 10:10:10:2 little endian */
+#define DRM_FORMAT_BGRX1010102	fourcc_code('B', 'X', '3', '0') /* [31:0] B:G:R:x 10:10:10:2 little endian */
+
+#define DRM_FORMAT_ARGB2101010	fourcc_code('A', 'R', '3', '0') /* [31:0] A:R:G:B 2:10:10:10 little endian */
+#define DRM_FORMAT_ABGR2101010	fourcc_code('A', 'B', '3', '0') /* [31:0] A:B:G:R 2:10:10:10 little endian */
+#define DRM_FORMAT_RGBA1010102	fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */
+#define DRM_FORMAT_BGRA1010102	fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */
+
+/* 64 bpp RGB */
+#define DRM_FORMAT_XRGB16161616	fourcc_code('X', 'R', '4', '8') /* [63:0] x:R:G:B 16:16:16:16 little endian */
+#define DRM_FORMAT_XBGR16161616	fourcc_code('X', 'B', '4', '8') /* [63:0] x:B:G:R 16:16:16:16 little endian */
+
+#define DRM_FORMAT_ARGB16161616	fourcc_code('A', 'R', '4', '8') /* [63:0] A:R:G:B 16:16:16:16 little endian */
+#define DRM_FORMAT_ABGR16161616	fourcc_code('A', 'B', '4', '8') /* [63:0] A:B:G:R 16:16:16:16 little endian */
+
+/*
+ * Floating point 64bpp RGB
+ * IEEE 754-2008 binary16 half-precision float
+ * [15:0] sign:exponent:mantissa 1:5:10
+ */
+#define DRM_FORMAT_XRGB16161616F fourcc_code('X', 'R', '4', 'H') /* [63:0] x:R:G:B 16:16:16:16 little endian */
+#define DRM_FORMAT_XBGR16161616F fourcc_code('X', 'B', '4', 'H') /* [63:0] x:B:G:R 16:16:16:16 little endian */
+
+#define DRM_FORMAT_ARGB16161616F fourcc_code('A', 'R', '4', 'H') /* [63:0] A:R:G:B 16:16:16:16 little endian */
+#define DRM_FORMAT_ABGR16161616F fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */
+
+/*
+ * RGBA format with 10-bit components packed in 64-bit per pixel, with 6 bits
+ * of unused padding per component:
+ */
+#define DRM_FORMAT_AXBXGXRX106106106106 fourcc_code('A', 'B', '1', '0') /* [63:0] A:x:B:x:G:x:R:x 10:6:10:6:10:6:10:6 little endian */
+
+/* packed YCbCr */
+#define DRM_FORMAT_YUYV		fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */
+#define DRM_FORMAT_YVYU		fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */
+#define DRM_FORMAT_UYVY		fourcc_code('U', 'Y', 'V', 'Y') /* [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian */
+#define DRM_FORMAT_VYUY		fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */
+
+#define DRM_FORMAT_AYUV		fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */
+#define DRM_FORMAT_XYUV8888	fourcc_code('X', 'Y', 'U', 'V') /* [31:0] X:Y:Cb:Cr 8:8:8:8 little endian */
+#define DRM_FORMAT_VUY888	fourcc_code('V', 'U', '2', '4') /* [23:0] Cr:Cb:Y 8:8:8 little endian */
+#define DRM_FORMAT_VUY101010	fourcc_code('V', 'U', '3', '0') /* Y followed by U then V, 10:10:10. Non-linear modifier only */
+
+/*
+ * packed Y2xx indicate for each component, xx valid data occupy msb
+ * 16-xx padding occupy lsb
+ */
+#define DRM_FORMAT_Y210         fourcc_code('Y', '2', '1', '0') /* [63:0] Cr0:0:Y1:0:Cb0:0:Y0:0 10:6:10:6:10:6:10:6 little endian per 2 Y pixels */
+#define DRM_FORMAT_Y212         fourcc_code('Y', '2', '1', '2') /* [63:0] Cr0:0:Y1:0:Cb0:0:Y0:0 12:4:12:4:12:4:12:4 little endian per 2 Y pixels */
+#define DRM_FORMAT_Y216         fourcc_code('Y', '2', '1', '6') /* [63:0] Cr0:Y1:Cb0:Y0 16:16:16:16 little endian per 2 Y pixels */
+
+/*
+ * packed Y4xx indicate for each component, xx valid data occupy msb
+ * 16-xx padding occupy lsb except Y410
+ */
+#define DRM_FORMAT_Y410         fourcc_code('Y', '4', '1', '0') /* [31:0] A:Cr:Y:Cb 2:10:10:10 little endian */
+#define DRM_FORMAT_Y412         fourcc_code('Y', '4', '1', '2') /* [63:0] A:0:Cr:0:Y:0:Cb:0 12:4:12:4:12:4:12:4 little endian */
+#define DRM_FORMAT_Y416         fourcc_code('Y', '4', '1', '6') /* [63:0] A:Cr:Y:Cb 16:16:16:16 little endian */
+
+#define DRM_FORMAT_XVYU2101010	fourcc_code('X', 'V', '3', '0') /* [31:0] X:Cr:Y:Cb 2:10:10:10 little endian */
+#define DRM_FORMAT_XVYU12_16161616	fourcc_code('X', 'V', '3', '6') /* [63:0] X:0:Cr:0:Y:0:Cb:0 12:4:12:4:12:4:12:4 little endian */
+#define DRM_FORMAT_XVYU16161616	fourcc_code('X', 'V', '4', '8') /* [63:0] X:Cr:Y:Cb 16:16:16:16 little endian */
+
+/*
+ * packed YCbCr420 2x2 tiled formats
+ * first 64 bits will contain Y,Cb,Cr components for a 2x2 tile
+ */
+/* [63:0]   A3:A2:Y3:0:Cr0:0:Y2:0:A1:A0:Y1:0:Cb0:0:Y0:0  1:1:8:2:8:2:8:2:1:1:8:2:8:2:8:2 little endian */
+#define DRM_FORMAT_Y0L0		fourcc_code('Y', '0', 'L', '0')
+/* [63:0]   X3:X2:Y3:0:Cr0:0:Y2:0:X1:X0:Y1:0:Cb0:0:Y0:0  1:1:8:2:8:2:8:2:1:1:8:2:8:2:8:2 little endian */
+#define DRM_FORMAT_X0L0		fourcc_code('X', '0', 'L', '0')
+
+/* [63:0]   A3:A2:Y3:Cr0:Y2:A1:A0:Y1:Cb0:Y0  1:1:10:10:10:1:1:10:10:10 little endian */
+#define DRM_FORMAT_Y0L2		fourcc_code('Y', '0', 'L', '2')
+/* [63:0]   X3:X2:Y3:Cr0:Y2:X1:X0:Y1:Cb0:Y0  1:1:10:10:10:1:1:10:10:10 little endian */
+#define DRM_FORMAT_X0L2		fourcc_code('X', '0', 'L', '2')
+
+/*
+ * 1-plane YUV 4:2:0
+ * In these formats, the component ordering is specified (Y, followed by U
+ * then V), but the exact Linear layout is undefined.
+ * These formats can only be used with a non-Linear modifier.
+ */
+#define DRM_FORMAT_YUV420_8BIT	fourcc_code('Y', 'U', '0', '8')
+#define DRM_FORMAT_YUV420_10BIT	fourcc_code('Y', 'U', '1', '0')
+
+/*
+ * 2 plane RGB + A
+ * index 0 = RGB plane, same format as the corresponding non _A8 format has
+ * index 1 = A plane, [7:0] A
+ */
+#define DRM_FORMAT_XRGB8888_A8	fourcc_code('X', 'R', 'A', '8')
+#define DRM_FORMAT_XBGR8888_A8	fourcc_code('X', 'B', 'A', '8')
+#define DRM_FORMAT_RGBX8888_A8	fourcc_code('R', 'X', 'A', '8')
+#define DRM_FORMAT_BGRX8888_A8	fourcc_code('B', 'X', 'A', '8')
+#define DRM_FORMAT_RGB888_A8	fourcc_code('R', '8', 'A', '8')
+#define DRM_FORMAT_BGR888_A8	fourcc_code('B', '8', 'A', '8')
+#define DRM_FORMAT_RGB565_A8	fourcc_code('R', '5', 'A', '8')
+#define DRM_FORMAT_BGR565_A8	fourcc_code('B', '5', 'A', '8')
+
+/*
+ * 2 plane YCbCr
+ * index 0 = Y plane, [7:0] Y
+ * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian
+ * or
+ * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian
+ */
+#define DRM_FORMAT_NV12		fourcc_code('N', 'V', '1', '2') /* 2x2 subsampled Cr:Cb plane */
+#define DRM_FORMAT_NV21		fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */
+#define DRM_FORMAT_NV16		fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */
+#define DRM_FORMAT_NV61		fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
+#define DRM_FORMAT_NV24		fourcc_code('N', 'V', '2', '4') /* non-subsampled Cr:Cb plane */
+#define DRM_FORMAT_NV42		fourcc_code('N', 'V', '4', '2') /* non-subsampled Cb:Cr plane */
+/*
+ * 2 plane YCbCr
+ * index 0 = Y plane, [39:0] Y3:Y2:Y1:Y0 little endian
+ * index 1 = Cr:Cb plane, [39:0] Cr1:Cb1:Cr0:Cb0 little endian
+ */
+#define DRM_FORMAT_NV15		fourcc_code('N', 'V', '1', '5') /* 2x2 subsampled Cr:Cb plane */
+
+/*
+ * 2 plane YCbCr MSB aligned
+ * index 0 = Y plane, [15:0] Y:x [10:6] little endian
+ * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [10:6:10:6] little endian
+ */
+#define DRM_FORMAT_P210		fourcc_code('P', '2', '1', '0') /* 2x1 subsampled Cr:Cb plane, 10 bit per channel */
+
+/*
+ * 2 plane YCbCr MSB aligned
+ * index 0 = Y plane, [15:0] Y:x [10:6] little endian
+ * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [10:6:10:6] little endian
+ */
+#define DRM_FORMAT_P010		fourcc_code('P', '0', '1', '0') /* 2x2 subsampled Cr:Cb plane 10 bits per channel */
+
+/*
+ * 2 plane YCbCr MSB aligned
+ * index 0 = Y plane, [15:0] Y:x [12:4] little endian
+ * index 1 = Cr:Cb plane, [31:0] Cr:x:Cb:x [12:4:12:4] little endian
+ */
+#define DRM_FORMAT_P012		fourcc_code('P', '0', '1', '2') /* 2x2 subsampled Cr:Cb plane 12 bits per channel */
+
+/*
+ * 2 plane YCbCr MSB aligned
+ * index 0 = Y plane, [15:0] Y little endian
+ * index 1 = Cr:Cb plane, [31:0] Cr:Cb [16:16] little endian
+ */
+#define DRM_FORMAT_P016		fourcc_code('P', '0', '1', '6') /* 2x2 subsampled Cr:Cb plane 16 bits per channel */
+
+/* 3 plane non-subsampled (444) YCbCr
+ * 16 bits per component, but only 10 bits are used and 6 bits are padded
+ * index 0: Y plane, [15:0] Y:x [10:6] little endian
+ * index 1: Cb plane, [15:0] Cb:x [10:6] little endian
+ * index 2: Cr plane, [15:0] Cr:x [10:6] little endian
+ */
+#define DRM_FORMAT_Q410		fourcc_code('Q', '4', '1', '0')
+
+/* 3 plane non-subsampled (444) YCrCb
+ * 16 bits per component, but only 10 bits are used and 6 bits are padded
+ * index 0: Y plane, [15:0] Y:x [10:6] little endian
+ * index 1: Cr plane, [15:0] Cr:x [10:6] little endian
+ * index 2: Cb plane, [15:0] Cb:x [10:6] little endian
+ */
+#define DRM_FORMAT_Q401		fourcc_code('Q', '4', '0', '1')
+
+/*
+ * 3 plane YCbCr
+ * index 0: Y plane, [7:0] Y
+ * index 1: Cb plane, [7:0] Cb
+ * index 2: Cr plane, [7:0] Cr
+ * or
+ * index 1: Cr plane, [7:0] Cr
+ * index 2: Cb plane, [7:0] Cb
+ */
+#define DRM_FORMAT_YUV410	fourcc_code('Y', 'U', 'V', '9') /* 4x4 subsampled Cb (1) and Cr (2) planes */
+#define DRM_FORMAT_YVU410	fourcc_code('Y', 'V', 'U', '9') /* 4x4 subsampled Cr (1) and Cb (2) planes */
+#define DRM_FORMAT_YUV411	fourcc_code('Y', 'U', '1', '1') /* 4x1 subsampled Cb (1) and Cr (2) planes */
+#define DRM_FORMAT_YVU411	fourcc_code('Y', 'V', '1', '1') /* 4x1 subsampled Cr (1) and Cb (2) planes */
+#define DRM_FORMAT_YUV420	fourcc_code('Y', 'U', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */
+#define DRM_FORMAT_YVU420	fourcc_code('Y', 'V', '1', '2') /* 2x2 subsampled Cr (1) and Cb (2) planes */
+#define DRM_FORMAT_YUV422	fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */
+#define DRM_FORMAT_YVU422	fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */
+#define DRM_FORMAT_YUV444	fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */
+#define DRM_FORMAT_YVU444	fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */
+
+
+/*
+ * Format Modifiers:
+ *
+ * Format modifiers describe, typically, a re-ordering or modification
+ * of the data in a plane of an FB.  This can be used to express tiled/
+ * swizzled formats, or compression, or a combination of the two.
+ *
+ * The upper 8 bits of the format modifier are a vendor-id as assigned
+ * below.  The lower 56 bits are assigned as vendor sees fit.
+ */
+
+/* Vendor Ids: */
+#define DRM_FORMAT_MOD_VENDOR_NONE    0
+#define DRM_FORMAT_MOD_VENDOR_INTEL   0x01
+#define DRM_FORMAT_MOD_VENDOR_AMD     0x02
+#define DRM_FORMAT_MOD_VENDOR_NVIDIA  0x03
+#define DRM_FORMAT_MOD_VENDOR_SAMSUNG 0x04
+#define DRM_FORMAT_MOD_VENDOR_QCOM    0x05
+#define DRM_FORMAT_MOD_VENDOR_VIVANTE 0x06
+#define DRM_FORMAT_MOD_VENDOR_BROADCOM 0x07
+#define DRM_FORMAT_MOD_VENDOR_ARM     0x08
+#define DRM_FORMAT_MOD_VENDOR_ALLWINNER 0x09
+#define DRM_FORMAT_MOD_VENDOR_AMLOGIC 0x0a
+
+/* add more to the end as needed */
+
+#define DRM_FORMAT_RESERVED	      ((1ULL << 56) - 1)
+
+#define fourcc_mod_get_vendor(modifier) \
+	(((modifier) >> 56) & 0xff)
+
+#define fourcc_mod_is_vendor(modifier, vendor) \
+	(fourcc_mod_get_vendor(modifier) == DRM_FORMAT_MOD_VENDOR_## vendor)
+
+#define fourcc_mod_code(vendor, val) \
+	((((__u64)DRM_FORMAT_MOD_VENDOR_## vendor) << 56) | ((val) & 0x00ffffffffffffffULL))
+
+/*
+ * Format Modifier tokens:
+ *
+ * When adding a new token please document the layout with a code comment,
+ * similar to the fourcc codes above. drm_fourcc.h is considered the
+ * authoritative source for all of these.
+ *
+ * Generic modifier names:
+ *
+ * DRM_FORMAT_MOD_GENERIC_* definitions are used to provide vendor-neutral names
+ * for layouts which are common across multiple vendors. To preserve
+ * compatibility, in cases where a vendor-specific definition already exists and
+ * a generic name for it is desired, the common name is a purely symbolic alias
+ * and must use the same numerical value as the original definition.
+ *
+ * Note that generic names should only be used for modifiers which describe
+ * generic layouts (such as pixel re-ordering), which may have
+ * independently-developed support across multiple vendors.
+ *
+ * In future cases where a generic layout is identified before merging with a
+ * vendor-specific modifier, a new 'GENERIC' vendor or modifier using vendor
+ * 'NONE' could be considered. This should only be for obvious, exceptional
+ * cases to avoid polluting the 'GENERIC' namespace with modifiers which only
+ * apply to a single vendor.
+ *
+ * Generic names should not be used for cases where multiple hardware vendors
+ * have implementations of the same standardised compression scheme (such as
+ * AFBC). In those cases, all implementations should use the same format
+ * modifier(s), reflecting the vendor of the standard.
+ */
+
+#define DRM_FORMAT_MOD_GENERIC_16_16_TILE DRM_FORMAT_MOD_SAMSUNG_16_16_TILE
+
+/*
+ * Invalid Modifier
+ *
+ * This modifier can be used as a sentinel to terminate the format modifiers
+ * list, or to initialize a variable with an invalid modifier. It might also be
+ * used to report an error back to userspace for certain APIs.
+ */
+#define DRM_FORMAT_MOD_INVALID	fourcc_mod_code(NONE, DRM_FORMAT_RESERVED)
+
+/*
+ * Linear Layout
+ *
+ * Just plain linear layout. Note that this is different from no specifying any
+ * modifier (e.g. not setting DRM_MODE_FB_MODIFIERS in the DRM_ADDFB2 ioctl),
+ * which tells the driver to also take driver-internal information into account
+ * and so might actually result in a tiled framebuffer.
+ */
+#define DRM_FORMAT_MOD_LINEAR	fourcc_mod_code(NONE, 0)
+
+/*
+ * Deprecated: use DRM_FORMAT_MOD_LINEAR instead
+ *
+ * The "none" format modifier doesn't actually mean that the modifier is
+ * implicit, instead it means that the layout is linear. Whether modifiers are
+ * used is out-of-band information carried in an API-specific way (e.g. in a
+ * flag for drm_mode_fb_cmd2).
+ */
+#define DRM_FORMAT_MOD_NONE	0
+
+/* Intel framebuffer modifiers */
+
+/*
+ * Intel X-tiling layout
+ *
+ * This is a tiled layout using 4Kb tiles (except on gen2 where the tiles 2Kb)
+ * in row-major layout. Within the tile bytes are laid out row-major, with
+ * a platform-dependent stride. On top of that the memory can apply
+ * platform-depending swizzling of some higher address bits into bit6.
+ *
+ * Note that this layout is only accurate on intel gen 8+ or valleyview chipsets.
+ * On earlier platforms the is highly platforms specific and not useful for
+ * cross-driver sharing. It exists since on a given platform it does uniquely
+ * identify the layout in a simple way for i915-specific userspace, which
+ * facilitated conversion of userspace to modifiers. Additionally the exact
+ * format on some really old platforms is not known.
+ */
+#define I915_FORMAT_MOD_X_TILED	fourcc_mod_code(INTEL, 1)
+
+/*
+ * Intel Y-tiling layout
+ *
+ * This is a tiled layout using 4Kb tiles (except on gen2 where the tiles 2Kb)
+ * in row-major layout. Within the tile bytes are laid out in OWORD (16 bytes)
+ * chunks column-major, with a platform-dependent height. On top of that the
+ * memory can apply platform-depending swizzling of some higher address bits
+ * into bit6.
+ *
+ * Note that this layout is only accurate on intel gen 8+ or valleyview chipsets.
+ * On earlier platforms the is highly platforms specific and not useful for
+ * cross-driver sharing. It exists since on a given platform it does uniquely
+ * identify the layout in a simple way for i915-specific userspace, which
+ * facilitated conversion of userspace to modifiers. Additionally the exact
+ * format on some really old platforms is not known.
+ */
+#define I915_FORMAT_MOD_Y_TILED	fourcc_mod_code(INTEL, 2)
+
+/*
+ * Intel Yf-tiling layout
+ *
+ * This is a tiled layout using 4Kb tiles in row-major layout.
+ * Within the tile pixels are laid out in 16 256 byte units / sub-tiles which
+ * are arranged in four groups (two wide, two high) with column-major layout.
+ * Each group therefore consits out of four 256 byte units, which are also laid
+ * out as 2x2 column-major.
+ * 256 byte units are made out of four 64 byte blocks of pixels, producing
+ * either a square block or a 2:1 unit.
+ * 64 byte blocks of pixels contain four pixel rows of 16 bytes, where the width
+ * in pixel depends on the pixel depth.
+ */
+#define I915_FORMAT_MOD_Yf_TILED fourcc_mod_code(INTEL, 3)
+
+/*
+ * Intel color control surface (CCS) for render compression
+ *
+ * The framebuffer format must be one of the 8:8:8:8 RGB formats.
+ * The main surface will be plane index 0 and must be Y/Yf-tiled,
+ * the CCS will be plane index 1.
+ *
+ * Each CCS tile matches a 1024x512 pixel area of the main surface.
+ * To match certain aspects of the 3D hardware the CCS is
+ * considered to be made up of normal 128Bx32 Y tiles, Thus
+ * the CCS pitch must be specified in multiples of 128 bytes.
+ *
+ * In reality the CCS tile appears to be a 64Bx64 Y tile, composed
+ * of QWORD (8 bytes) chunks instead of OWORD (16 bytes) chunks.
+ * But that fact is not relevant unless the memory is accessed
+ * directly.
+ */
+#define I915_FORMAT_MOD_Y_TILED_CCS	fourcc_mod_code(INTEL, 4)
+#define I915_FORMAT_MOD_Yf_TILED_CCS	fourcc_mod_code(INTEL, 5)
+
+/*
+ * Intel color control surfaces (CCS) for Gen-12 render compression.
+ *
+ * The main surface is Y-tiled and at plane index 0, the CCS is linear and
+ * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in
+ * main surface. In other words, 4 bits in CCS map to a main surface cache
+ * line pair. The main surface pitch is required to be a multiple of four
+ * Y-tile widths.
+ */
+#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS fourcc_mod_code(INTEL, 6)
+
+/*
+ * Intel color control surfaces (CCS) for Gen-12 media compression
+ *
+ * The main surface is Y-tiled and at plane index 0, the CCS is linear and
+ * at index 1. A 64B CCS cache line corresponds to an area of 4x1 tiles in
+ * main surface. In other words, 4 bits in CCS map to a main surface cache
+ * line pair. The main surface pitch is required to be a multiple of four
+ * Y-tile widths. For semi-planar formats like NV12, CCS planes follow the
+ * Y and UV planes i.e., planes 0 and 1 are used for Y and UV surfaces,
+ * planes 2 and 3 for the respective CCS.
+ */
+#define I915_FORMAT_MOD_Y_TILED_GEN12_MC_CCS fourcc_mod_code(INTEL, 7)
+
+/*
+ * Intel Color Control Surface with Clear Color (CCS) for Gen-12 render
+ * compression.
+ *
+ * The main surface is Y-tiled and is at plane index 0 whereas CCS is linear
+ * and at index 1. The clear color is stored at index 2, and the pitch should
+ * be ignored. The clear color structure is 256 bits. The first 128 bits
+ * represents Raw Clear Color Red, Green, Blue and Alpha color each represented
+ * by 32 bits. The raw clear color is consumed by the 3d engine and generates
+ * the converted clear color of size 64 bits. The first 32 bits store the Lower
+ * Converted Clear Color value and the next 32 bits store the Higher Converted
+ * Clear Color value when applicable. The Converted Clear Color values are
+ * consumed by the DE. The last 64 bits are used to store Color Discard Enable
+ * and Depth Clear Value Valid which are ignored by the DE. A CCS cache line
+ * corresponds to an area of 4x1 tiles in the main surface. The main surface
+ * pitch is required to be a multiple of 4 tile widths.
+ */
+#define I915_FORMAT_MOD_Y_TILED_GEN12_RC_CCS_CC fourcc_mod_code(INTEL, 8)
+
+/*
+ * Tiled, NV12MT, grouped in 64 (pixels) x 32 (lines) -sized macroblocks
+ *
+ * Macroblocks are laid in a Z-shape, and each pixel data is following the
+ * standard NV12 style.
+ * As for NV12, an image is the result of two frame buffers: one for Y,
+ * one for the interleaved Cb/Cr components (1/2 the height of the Y buffer).
+ * Alignment requirements are (for each buffer):
+ * - multiple of 128 pixels for the width
+ * - multiple of  32 pixels for the height
+ *
+ * For more information: see https://linuxtv.org/downloads/v4l-dvb-apis/re32.html
+ */
+#define DRM_FORMAT_MOD_SAMSUNG_64_32_TILE	fourcc_mod_code(SAMSUNG, 1)
+
+/*
+ * Tiled, 16 (pixels) x 16 (lines) - sized macroblocks
+ *
+ * This is a simple tiled layout using tiles of 16x16 pixels in a row-major
+ * layout. For YCbCr formats Cb/Cr components are taken in such a way that
+ * they correspond to their 16x16 luma block.
+ */
+#define DRM_FORMAT_MOD_SAMSUNG_16_16_TILE	fourcc_mod_code(SAMSUNG, 2)
+
+/*
+ * Qualcomm Compressed Format
+ *
+ * Refers to a compressed variant of the base format that is compressed.
+ * Implementation may be platform and base-format specific.
+ *
+ * Each macrotile consists of m x n (mostly 4 x 4) tiles.
+ * Pixel data pitch/stride is aligned with macrotile width.
+ * Pixel data height is aligned with macrotile height.
+ * Entire pixel data buffer is aligned with 4k(bytes).
+ */
+#define DRM_FORMAT_MOD_QCOM_COMPRESSED	fourcc_mod_code(QCOM, 1)
+
+/* Vivante framebuffer modifiers */
+
+/*
+ * Vivante 4x4 tiling layout
+ *
+ * This is a simple tiled layout using tiles of 4x4 pixels in a row-major
+ * layout.
+ */
+#define DRM_FORMAT_MOD_VIVANTE_TILED		fourcc_mod_code(VIVANTE, 1)
+
+/*
+ * Vivante 64x64 super-tiling layout
+ *
+ * This is a tiled layout using 64x64 pixel super-tiles, where each super-tile
+ * contains 8x4 groups of 2x4 tiles of 4x4 pixels (like above) each, all in row-
+ * major layout.
+ *
+ * For more information: see
+ * https://github.com/etnaviv/etna_viv/blob/master/doc/hardware.md#texture-tiling
+ */
+#define DRM_FORMAT_MOD_VIVANTE_SUPER_TILED	fourcc_mod_code(VIVANTE, 2)
+
+/*
+ * Vivante 4x4 tiling layout for dual-pipe
+ *
+ * Same as the 4x4 tiling layout, except every second 4x4 pixel tile starts at a
+ * different base address. Offsets from the base addresses are therefore halved
+ * compared to the non-split tiled layout.
+ */
+#define DRM_FORMAT_MOD_VIVANTE_SPLIT_TILED	fourcc_mod_code(VIVANTE, 3)
+
+/*
+ * Vivante 64x64 super-tiling layout for dual-pipe
+ *
+ * Same as the 64x64 super-tiling layout, except every second 4x4 pixel tile
+ * starts at a different base address. Offsets from the base addresses are
+ * therefore halved compared to the non-split super-tiled layout.
+ */
+#define DRM_FORMAT_MOD_VIVANTE_SPLIT_SUPER_TILED fourcc_mod_code(VIVANTE, 4)
+
+/* NVIDIA frame buffer modifiers */
+
+/*
+ * Tegra Tiled Layout, used by Tegra 2, 3 and 4.
+ *
+ * Pixels are arranged in simple tiles of 16 x 16 bytes.
+ */
+#define DRM_FORMAT_MOD_NVIDIA_TEGRA_TILED fourcc_mod_code(NVIDIA, 1)
+
+/*
+ * Generalized Block Linear layout, used by desktop GPUs starting with NV50/G80,
+ * and Tegra GPUs starting with Tegra K1.
+ *
+ * Pixels are arranged in Groups of Bytes (GOBs).  GOB size and layout varies
+ * based on the architecture generation.  GOBs themselves are then arranged in
+ * 3D blocks, with the block dimensions (in terms of GOBs) always being a power
+ * of two, and hence expressible as their log2 equivalent (E.g., "2" represents
+ * a block depth or height of "4").
+ *
+ * Chapter 20 "Pixel Memory Formats" of the Tegra X1 TRM describes this format
+ * in full detail.
+ *
+ *       Macro
+ * Bits  Param Description
+ * ----  ----- -----------------------------------------------------------------
+ *
+ *  3:0  h     log2(height) of each block, in GOBs.  Placed here for
+ *             compatibility with the existing
+ *             DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK()-based modifiers.
+ *
+ *  4:4  -     Must be 1, to indicate block-linear layout.  Necessary for
+ *             compatibility with the existing
+ *             DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK()-based modifiers.
+ *
+ *  8:5  -     Reserved (To support 3D-surfaces with variable log2(depth) block
+ *             size).  Must be zero.
+ *
+ *             Note there is no log2(width) parameter.  Some portions of the
+ *             hardware support a block width of two gobs, but it is impractical
+ *             to use due to lack of support elsewhere, and has no known
+ *             benefits.
+ *
+ * 11:9  -     Reserved (To support 2D-array textures with variable array stride
+ *             in blocks, specified via log2(tile width in blocks)).  Must be
+ *             zero.
+ *
+ * 19:12 k     Page Kind.  This value directly maps to a field in the page
+ *             tables of all GPUs >= NV50.  It affects the exact layout of bits
+ *             in memory and can be derived from the tuple
+ *
+ *               (format, GPU model, compression type, samples per pixel)
+ *
+ *             Where compression type is defined below.  If GPU model were
+ *             implied by the format modifier, format, or memory buffer, page
+ *             kind would not need to be included in the modifier itself, but
+ *             since the modifier should define the layout of the associated
+ *             memory buffer independent from any device or other context, it
+ *             must be included here.
+ *
+ * 21:20 g     GOB Height and Page Kind Generation.  The height of a GOB changed
+ *             starting with Fermi GPUs.  Additionally, the mapping between page
+ *             kind and bit layout has changed at various points.
+ *
+ *               0 = Gob Height 8, Fermi - Volta, Tegra K1+ Page Kind mapping
+ *               1 = Gob Height 4, G80 - GT2XX Page Kind mapping
+ *               2 = Gob Height 8, Turing+ Page Kind mapping
+ *               3 = Reserved for future use.
+ *
+ * 22:22 s     Sector layout.  On Tegra GPUs prior to Xavier, there is a further
+ *             bit remapping step that occurs at an even lower level than the
+ *             page kind and block linear swizzles.  This causes the layout of
+ *             surfaces mapped in those SOC's GPUs to be incompatible with the
+ *             equivalent mapping on other GPUs in the same system.
+ *
+ *               0 = Tegra K1 - Tegra Parker/TX2 Layout.
+ *               1 = Desktop GPU and Tegra Xavier+ Layout
+ *
+ * 25:23 c     Lossless Framebuffer Compression type.
+ *
+ *               0 = none
+ *               1 = ROP/3D, layout 1, exact compression format implied by Page
+ *                   Kind field
+ *               2 = ROP/3D, layout 2, exact compression format implied by Page
+ *                   Kind field
+ *               3 = CDE horizontal
+ *               4 = CDE vertical
+ *               5 = Reserved for future use
+ *               6 = Reserved for future use
+ *               7 = Reserved for future use
+ *
+ * 55:25 -     Reserved for future use.  Must be zero.
+ */
+#define DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(c, s, g, k, h) \
+	fourcc_mod_code(NVIDIA, (0x10 | \
+				 ((h) & 0xf) | \
+				 (((k) & 0xff) << 12) | \
+				 (((g) & 0x3) << 20) | \
+				 (((s) & 0x1) << 22) | \
+				 (((c) & 0x7) << 23)))
+
+/* To grandfather in prior block linear format modifiers to the above layout,
+ * the page kind "0", which corresponds to "pitch/linear" and hence is unusable
+ * with block-linear layouts, is remapped within drivers to the value 0xfe,
+ * which corresponds to the "generic" kind used for simple single-sample
+ * uncompressed color formats on Fermi - Volta GPUs.
+ */
+static __inline__ __u64
+drm_fourcc_canonicalize_nvidia_format_mod(__u64 modifier)
+{
+	if (!(modifier & 0x10) || (modifier & (0xff << 12)))
+		return modifier;
+	else
+		return modifier | (0xfe << 12);
+}
+
+/*
+ * 16Bx2 Block Linear layout, used by Tegra K1 and later
+ *
+ * Pixels are arranged in 64x8 Groups Of Bytes (GOBs). GOBs are then stacked
+ * vertically by a power of 2 (1 to 32 GOBs) to form a block.
+ *
+ * Within a GOB, data is ordered as 16B x 2 lines sectors laid in Z-shape.
+ *
+ * Parameter 'v' is the log2 encoding of the number of GOBs stacked vertically.
+ * Valid values are:
+ *
+ * 0 == ONE_GOB
+ * 1 == TWO_GOBS
+ * 2 == FOUR_GOBS
+ * 3 == EIGHT_GOBS
+ * 4 == SIXTEEN_GOBS
+ * 5 == THIRTYTWO_GOBS
+ *
+ * Chapter 20 "Pixel Memory Formats" of the Tegra X1 TRM describes this format
+ * in full detail.
+ */
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(v) \
+	DRM_FORMAT_MOD_NVIDIA_BLOCK_LINEAR_2D(0, 0, 0, 0, (v))
+
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_ONE_GOB \
+	DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(0)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_TWO_GOB \
+	DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(1)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_FOUR_GOB \
+	DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(2)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_EIGHT_GOB \
+	DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(3)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_SIXTEEN_GOB \
+	DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(4)
+#define DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK_THIRTYTWO_GOB \
+	DRM_FORMAT_MOD_NVIDIA_16BX2_BLOCK(5)
+
+/*
+ * Some Broadcom modifiers take parameters, for example the number of
+ * vertical lines in the image. Reserve the lower 32 bits for modifier
+ * type, and the next 24 bits for parameters. Top 8 bits are the
+ * vendor code.
+ */
+#define __fourcc_mod_broadcom_param_shift 8
+#define __fourcc_mod_broadcom_param_bits 48
+#define fourcc_mod_broadcom_code(val, params) \
+	fourcc_mod_code(BROADCOM, ((((__u64)params) << __fourcc_mod_broadcom_param_shift) | val))
+#define fourcc_mod_broadcom_param(m) \
+	((int)(((m) >> __fourcc_mod_broadcom_param_shift) &	\
+	       ((1ULL << __fourcc_mod_broadcom_param_bits) - 1)))
+#define fourcc_mod_broadcom_mod(m) \
+	((m) & ~(((1ULL << __fourcc_mod_broadcom_param_bits) - 1) <<	\
+		 __fourcc_mod_broadcom_param_shift))
+
+/*
+ * Broadcom VC4 "T" format
+ *
+ * This is the primary layout that the V3D GPU can texture from (it
+ * can't do linear).  The T format has:
+ *
+ * - 64b utiles of pixels in a raster-order grid according to cpp.  It's 4x4
+ *   pixels at 32 bit depth.
+ *
+ * - 1k subtiles made of a 4x4 raster-order grid of 64b utiles (so usually
+ *   16x16 pixels).
+ *
+ * - 4k tiles made of a 2x2 grid of 1k subtiles (so usually 32x32 pixels).  On
+ *   even 4k tile rows, they're arranged as (BL, TL, TR, BR), and on odd rows
+ *   they're (TR, BR, BL, TL), where bottom left is start of memory.
+ *
+ * - an image made of 4k tiles in rows either left-to-right (even rows of 4k
+ *   tiles) or right-to-left (odd rows of 4k tiles).
+ */
+#define DRM_FORMAT_MOD_BROADCOM_VC4_T_TILED fourcc_mod_code(BROADCOM, 1)
+
+/*
+ * Broadcom SAND format
+ *
+ * This is the native format that the H.264 codec block uses.  For VC4
+ * HVS, it is only valid for H.264 (NV12/21) and RGBA modes.
+ *
+ * The image can be considered to be split into columns, and the
+ * columns are placed consecutively into memory.  The width of those
+ * columns can be either 32, 64, 128, or 256 pixels, but in practice
+ * only 128 pixel columns are used.
+ *
+ * The pitch between the start of each column is set to optimally
+ * switch between SDRAM banks. This is passed as the number of lines
+ * of column width in the modifier (we can't use the stride value due
+ * to various core checks that look at it , so you should set the
+ * stride to width*cpp).
+ *
+ * Note that the column height for this format modifier is the same
+ * for all of the planes, assuming that each column contains both Y
+ * and UV.  Some SAND-using hardware stores UV in a separate tiled
+ * image from Y to reduce the column height, which is not supported
+ * with these modifiers.
+ */
+
+#define DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(v) \
+	fourcc_mod_broadcom_code(2, v)
+#define DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(v) \
+	fourcc_mod_broadcom_code(3, v)
+#define DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(v) \
+	fourcc_mod_broadcom_code(4, v)
+#define DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(v) \
+	fourcc_mod_broadcom_code(5, v)
+
+#define DRM_FORMAT_MOD_BROADCOM_SAND32 \
+	DRM_FORMAT_MOD_BROADCOM_SAND32_COL_HEIGHT(0)
+#define DRM_FORMAT_MOD_BROADCOM_SAND64 \
+	DRM_FORMAT_MOD_BROADCOM_SAND64_COL_HEIGHT(0)
+#define DRM_FORMAT_MOD_BROADCOM_SAND128 \
+	DRM_FORMAT_MOD_BROADCOM_SAND128_COL_HEIGHT(0)
+#define DRM_FORMAT_MOD_BROADCOM_SAND256 \
+	DRM_FORMAT_MOD_BROADCOM_SAND256_COL_HEIGHT(0)
+
+/* Broadcom UIF format
+ *
+ * This is the common format for the current Broadcom multimedia
+ * blocks, including V3D 3.x and newer, newer video codecs, and
+ * displays.
+ *
+ * The image consists of utiles (64b blocks), UIF blocks (2x2 utiles),
+ * and macroblocks (4x4 UIF blocks).  Those 4x4 UIF block groups are
+ * stored in columns, with padding between the columns to ensure that
+ * moving from one column to the next doesn't hit the same SDRAM page
+ * bank.
+ *
+ * To calculate the padding, it is assumed that each hardware block
+ * and the software driving it knows the platform's SDRAM page size,
+ * number of banks, and XOR address, and that it's identical between
+ * all blocks using the format.  This tiling modifier will use XOR as
+ * necessary to reduce the padding.  If a hardware block can't do XOR,
+ * the assumption is that a no-XOR tiling modifier will be created.
+ */
+#define DRM_FORMAT_MOD_BROADCOM_UIF fourcc_mod_code(BROADCOM, 6)
+
+/*
+ * Arm Framebuffer Compression (AFBC) modifiers
+ *
+ * AFBC is a proprietary lossless image compression protocol and format.
+ * It provides fine-grained random access and minimizes the amount of data
+ * transferred between IP blocks.
+ *
+ * AFBC has several features which may be supported and/or used, which are
+ * represented using bits in the modifier. Not all combinations are valid,
+ * and different devices or use-cases may support different combinations.
+ *
+ * Further information on the use of AFBC modifiers can be found in
+ * Documentation/gpu/afbc.rst
+ */
+
+/*
+ * The top 4 bits (out of the 56 bits alloted for specifying vendor specific
+ * modifiers) denote the category for modifiers. Currently we have three
+ * categories of modifiers ie AFBC, MISC and AFRC. We can have a maximum of
+ * sixteen different categories.
+ */
+#define DRM_FORMAT_MOD_ARM_CODE(__type, __val) \
+	fourcc_mod_code(ARM, ((__u64)(__type) << 52) | ((__val) & 0x000fffffffffffffULL))
+
+#define DRM_FORMAT_MOD_ARM_TYPE_AFBC 0x00
+#define DRM_FORMAT_MOD_ARM_TYPE_MISC 0x01
+
+#define DRM_FORMAT_MOD_ARM_AFBC(__afbc_mode) \
+	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFBC, __afbc_mode)
+
+/*
+ * AFBC superblock size
+ *
+ * Indicates the superblock size(s) used for the AFBC buffer. The buffer
+ * size (in pixels) must be aligned to a multiple of the superblock size.
+ * Four lowest significant bits(LSBs) are reserved for block size.
+ *
+ * Where one superblock size is specified, it applies to all planes of the
+ * buffer (e.g. 16x16, 32x8). When multiple superblock sizes are specified,
+ * the first applies to the Luma plane and the second applies to the Chroma
+ * plane(s). e.g. (32x8_64x4 means 32x8 Luma, with 64x4 Chroma).
+ * Multiple superblock sizes are only valid for multi-plane YCbCr formats.
+ */
+#define AFBC_FORMAT_MOD_BLOCK_SIZE_MASK      0xf
+#define AFBC_FORMAT_MOD_BLOCK_SIZE_16x16     (1ULL)
+#define AFBC_FORMAT_MOD_BLOCK_SIZE_32x8      (2ULL)
+#define AFBC_FORMAT_MOD_BLOCK_SIZE_64x4      (3ULL)
+#define AFBC_FORMAT_MOD_BLOCK_SIZE_32x8_64x4 (4ULL)
+
+/*
+ * AFBC lossless colorspace transform
+ *
+ * Indicates that the buffer makes use of the AFBC lossless colorspace
+ * transform.
+ */
+#define AFBC_FORMAT_MOD_YTR     (1ULL <<  4)
+
+/*
+ * AFBC block-split
+ *
+ * Indicates that the payload of each superblock is split. The second
+ * half of the payload is positioned at a predefined offset from the start
+ * of the superblock payload.
+ */
+#define AFBC_FORMAT_MOD_SPLIT   (1ULL <<  5)
+
+/*
+ * AFBC sparse layout
+ *
+ * This flag indicates that the payload of each superblock must be stored at a
+ * predefined position relative to the other superblocks in the same AFBC
+ * buffer. This order is the same order used by the header buffer. In this mode
+ * each superblock is given the same amount of space as an uncompressed
+ * superblock of the particular format would require, rounding up to the next
+ * multiple of 128 bytes in size.
+ */
+#define AFBC_FORMAT_MOD_SPARSE  (1ULL <<  6)
+
+/*
+ * AFBC copy-block restrict
+ *
+ * Buffers with this flag must obey the copy-block restriction. The restriction
+ * is such that there are no copy-blocks referring across the border of 8x8
+ * blocks. For the subsampled data the 8x8 limitation is also subsampled.
+ */
+#define AFBC_FORMAT_MOD_CBR     (1ULL <<  7)
+
+/*
+ * AFBC tiled layout
+ *
+ * The tiled layout groups superblocks in 8x8 or 4x4 tiles, where all
+ * superblocks inside a tile are stored together in memory. 8x8 tiles are used
+ * for pixel formats up to and including 32 bpp while 4x4 tiles are used for
+ * larger bpp formats. The order between the tiles is scan line.
+ * When the tiled layout is used, the buffer size (in pixels) must be aligned
+ * to the tile size.
+ */
+#define AFBC_FORMAT_MOD_TILED   (1ULL <<  8)
+
+/*
+ * AFBC solid color blocks
+ *
+ * Indicates that the buffer makes use of solid-color blocks, whereby bandwidth
+ * can be reduced if a whole superblock is a single color.
+ */
+#define AFBC_FORMAT_MOD_SC      (1ULL <<  9)
+
+/*
+ * AFBC double-buffer
+ *
+ * Indicates that the buffer is allocated in a layout safe for front-buffer
+ * rendering.
+ */
+#define AFBC_FORMAT_MOD_DB      (1ULL << 10)
+
+/*
+ * AFBC buffer content hints
+ *
+ * Indicates that the buffer includes per-superblock content hints.
+ */
+#define AFBC_FORMAT_MOD_BCH     (1ULL << 11)
+
+/* AFBC uncompressed storage mode
+ *
+ * Indicates that the buffer is using AFBC uncompressed storage mode.
+ * In this mode all superblock payloads in the buffer use the uncompressed
+ * storage mode, which is usually only used for data which cannot be compressed.
+ * The buffer layout is the same as for AFBC buffers without USM set, this only
+ * affects the storage mode of the individual superblocks. Note that even a
+ * buffer without USM set may use uncompressed storage mode for some or all
+ * superblocks, USM just guarantees it for all.
+ */
+#define AFBC_FORMAT_MOD_USM	(1ULL << 12)
+
+/*
+ * Arm Fixed-Rate Compression (AFRC) modifiers
+ *
+ * AFRC is a proprietary fixed rate image compression protocol and format,
+ * designed to provide guaranteed bandwidth and memory footprint
+ * reductions in graphics and media use-cases.
+ *
+ * AFRC buffers consist of one or more planes, with the same components
+ * and meaning as an uncompressed buffer using the same pixel format.
+ *
+ * Within each plane, the pixel/luma/chroma values are grouped into
+ * "coding unit" blocks which are individually compressed to a
+ * fixed size (in bytes). All coding units within a given plane of a buffer
+ * store the same number of values, and have the same compressed size.
+ *
+ * The coding unit size is configurable, allowing different rates of compression.
+ *
+ * The start of each AFRC buffer plane must be aligned to an alignment granule which
+ * depends on the coding unit size.
+ *
+ * Coding Unit Size   Plane Alignment
+ * ----------------   ---------------
+ * 16 bytes           1024 bytes
+ * 24 bytes           512  bytes
+ * 32 bytes           2048 bytes
+ *
+ * Coding units are grouped into paging tiles. AFRC buffer dimensions must be aligned
+ * to a multiple of the paging tile dimensions.
+ * The dimensions of each paging tile depend on whether the buffer is optimised for
+ * scanline (SCAN layout) or rotated (ROT layout) access.
+ *
+ * Layout   Paging Tile Width   Paging Tile Height
+ * ------   -----------------   ------------------
+ * SCAN     16 coding units     4 coding units
+ * ROT      8  coding units     8 coding units
+ *
+ * The dimensions of each coding unit depend on the number of components
+ * in the compressed plane and whether the buffer is optimised for
+ * scanline (SCAN layout) or rotated (ROT layout) access.
+ *
+ * Number of Components in Plane   Layout      Coding Unit Width   Coding Unit Height
+ * -----------------------------   ---------   -----------------   ------------------
+ * 1                               SCAN        16 samples          4 samples
+ * Example: 16x4 luma samples in a 'Y' plane
+ *          16x4 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer
+ * -----------------------------   ---------   -----------------   ------------------
+ * 1                               ROT         8 samples           8 samples
+ * Example: 8x8 luma samples in a 'Y' plane
+ *          8x8 chroma 'V' values, in the 'V' plane of a fully-planar YUV buffer
+ * -----------------------------   ---------   -----------------   ------------------
+ * 2                               DONT CARE   8 samples           4 samples
+ * Example: 8x4 chroma pairs in the 'UV' plane of a semi-planar YUV buffer
+ * -----------------------------   ---------   -----------------   ------------------
+ * 3                               DONT CARE   4 samples           4 samples
+ * Example: 4x4 pixels in an RGB buffer without alpha
+ * -----------------------------   ---------   -----------------   ------------------
+ * 4                               DONT CARE   4 samples           4 samples
+ * Example: 4x4 pixels in an RGB buffer with alpha
+ */
+
+#define DRM_FORMAT_MOD_ARM_TYPE_AFRC 0x02
+
+#define DRM_FORMAT_MOD_ARM_AFRC(__afrc_mode) \
+	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_AFRC, __afrc_mode)
+
+/*
+ * AFRC coding unit size modifier.
+ *
+ * Indicates the number of bytes used to store each compressed coding unit for
+ * one or more planes in an AFRC encoded buffer. The coding unit size for chrominance
+ * is the same for both Cb and Cr, which may be stored in separate planes.
+ *
+ * AFRC_FORMAT_MOD_CU_SIZE_P0 indicates the number of bytes used to store
+ * each compressed coding unit in the first plane of the buffer. For RGBA buffers
+ * this is the only plane, while for semi-planar and fully-planar YUV buffers,
+ * this corresponds to the luma plane.
+ *
+ * AFRC_FORMAT_MOD_CU_SIZE_P12 indicates the number of bytes used to store
+ * each compressed coding unit in the second and third planes in the buffer.
+ * For semi-planar and fully-planar YUV buffers, this corresponds to the chroma plane(s).
+ *
+ * For single-plane buffers, AFRC_FORMAT_MOD_CU_SIZE_P0 must be specified
+ * and AFRC_FORMAT_MOD_CU_SIZE_P12 must be zero.
+ * For semi-planar and fully-planar buffers, both AFRC_FORMAT_MOD_CU_SIZE_P0 and
+ * AFRC_FORMAT_MOD_CU_SIZE_P12 must be specified.
+ */
+#define AFRC_FORMAT_MOD_CU_SIZE_MASK 0xf
+#define AFRC_FORMAT_MOD_CU_SIZE_16 (1ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_24 (2ULL)
+#define AFRC_FORMAT_MOD_CU_SIZE_32 (3ULL)
+
+#define AFRC_FORMAT_MOD_CU_SIZE_P0(__afrc_cu_size) (__afrc_cu_size)
+#define AFRC_FORMAT_MOD_CU_SIZE_P12(__afrc_cu_size) ((__afrc_cu_size) << 4)
+
+/*
+ * AFRC scanline memory layout.
+ *
+ * Indicates if the buffer uses the scanline-optimised layout
+ * for an AFRC encoded buffer, otherwise, it uses the rotation-optimised layout.
+ * The memory layout is the same for all planes.
+ */
+#define AFRC_FORMAT_MOD_LAYOUT_SCAN (1ULL << 8)
+
+/*
+ * Arm 16x16 Block U-Interleaved modifier
+ *
+ * This is used by Arm Mali Utgard and Midgard GPUs. It divides the image
+ * into 16x16 pixel blocks. Blocks are stored linearly in order, but pixels
+ * in the block are reordered.
+ */
+#define DRM_FORMAT_MOD_ARM_16X16_BLOCK_U_INTERLEAVED \
+	DRM_FORMAT_MOD_ARM_CODE(DRM_FORMAT_MOD_ARM_TYPE_MISC, 1ULL)
+
+/*
+ * Allwinner tiled modifier
+ *
+ * This tiling mode is implemented by the VPU found on all Allwinner platforms,
+ * codenamed sunxi. It is associated with a YUV format that uses either 2 or 3
+ * planes.
+ *
+ * With this tiling, the luminance samples are disposed in tiles representing
+ * 32x32 pixels and the chrominance samples in tiles representing 32x64 pixels.
+ * The pixel order in each tile is linear and the tiles are disposed linearly,
+ * both in row-major order.
+ */
+#define DRM_FORMAT_MOD_ALLWINNER_TILED fourcc_mod_code(ALLWINNER, 1)
+
+/*
+ * Amlogic Video Framebuffer Compression modifiers
+ *
+ * Amlogic uses a proprietary lossless image compression protocol and format
+ * for their hardware video codec accelerators, either video decoders or
+ * video input encoders.
+ *
+ * It considerably reduces memory bandwidth while writing and reading
+ * frames in memory.
+ *
+ * The underlying storage is considered to be 3 components, 8bit or 10-bit
+ * per component YCbCr 420, single plane :
+ * - DRM_FORMAT_YUV420_8BIT
+ * - DRM_FORMAT_YUV420_10BIT
+ *
+ * The first 8 bits of the mode defines the layout, then the following 8 bits
+ * defines the options changing the layout.
+ *
+ * Not all combinations are valid, and different SoCs may support different
+ * combinations of layout and options.
+ */
+#define __fourcc_mod_amlogic_layout_mask 0xff
+#define __fourcc_mod_amlogic_options_shift 8
+#define __fourcc_mod_amlogic_options_mask 0xff
+
+#define DRM_FORMAT_MOD_AMLOGIC_FBC(__layout, __options) \
+	fourcc_mod_code(AMLOGIC, \
+			((__layout) & __fourcc_mod_amlogic_layout_mask) | \
+			(((__options) & __fourcc_mod_amlogic_options_mask) \
+			 << __fourcc_mod_amlogic_options_shift))
+
+/* Amlogic FBC Layouts */
+
+/*
+ * Amlogic FBC Basic Layout
+ *
+ * The basic layout is composed of:
+ * - a body content organized in 64x32 superblocks with 4096 bytes per
+ *   superblock in default mode.
+ * - a 32 bytes per 128x64 header block
+ *
+ * This layout is transferrable between Amlogic SoCs supporting this modifier.
+ */
+#define AMLOGIC_FBC_LAYOUT_BASIC		(1ULL)
+
+/*
+ * Amlogic FBC Scatter Memory layout
+ *
+ * Indicates the header contains IOMMU references to the compressed
+ * frames content to optimize memory access and layout.
+ *
+ * In this mode, only the header memory address is needed, thus the
+ * content memory organization is tied to the current producer
+ * execution and cannot be saved/dumped neither transferrable between
+ * Amlogic SoCs supporting this modifier.
+ *
+ * Due to the nature of the layout, these buffers are not expected to
+ * be accessible by the user-space clients, but only accessible by the
+ * hardware producers and consumers.
+ *
+ * The user-space clients should expect a failure while trying to mmap
+ * the DMA-BUF handle returned by the producer.
+ */
+#define AMLOGIC_FBC_LAYOUT_SCATTER		(2ULL)
+
+/* Amlogic FBC Layout Options Bit Mask */
+
+/*
+ * Amlogic FBC Memory Saving mode
+ *
+ * Indicates the storage is packed when pixel size is multiple of word
+ * boudaries, i.e. 8bit should be stored in this mode to save allocation
+ * memory.
+ *
+ * This mode reduces body layout to 3072 bytes per 64x32 superblock with
+ * the basic layout and 3200 bytes per 64x32 superblock combined with
+ * the scatter layout.
+ */
+#define AMLOGIC_FBC_OPTION_MEM_SAVING		(1ULL << 0)
+
+/*
+ * AMD modifiers
+ *
+ * Memory layout:
+ *
+ * without DCC:
+ *   - main surface
+ *
+ * with DCC & without DCC_RETILE:
+ *   - main surface in plane 0
+ *   - DCC surface in plane 1 (RB-aligned, pipe-aligned if DCC_PIPE_ALIGN is set)
+ *
+ * with DCC & DCC_RETILE:
+ *   - main surface in plane 0
+ *   - displayable DCC surface in plane 1 (not RB-aligned & not pipe-aligned)
+ *   - pipe-aligned DCC surface in plane 2 (RB-aligned & pipe-aligned)
+ *
+ * For multi-plane formats the above surfaces get merged into one plane for
+ * each format plane, based on the required alignment only.
+ *
+ * Bits  Parameter                Notes
+ * ----- ------------------------ ---------------------------------------------
+ *
+ *   7:0 TILE_VERSION             Values are AMD_FMT_MOD_TILE_VER_*
+ *  12:8 TILE                     Values are AMD_FMT_MOD_TILE_<version>_*
+ *    13 DCC
+ *    14 DCC_RETILE
+ *    15 DCC_PIPE_ALIGN
+ *    16 DCC_INDEPENDENT_64B
+ *    17 DCC_INDEPENDENT_128B
+ * 19:18 DCC_MAX_COMPRESSED_BLOCK Values are AMD_FMT_MOD_DCC_BLOCK_*
+ *    20 DCC_CONSTANT_ENCODE
+ * 23:21 PIPE_XOR_BITS            Only for some chips
+ * 26:24 BANK_XOR_BITS            Only for some chips
+ * 29:27 PACKERS                  Only for some chips
+ * 32:30 RB                       Only for some chips
+ * 35:33 PIPE                     Only for some chips
+ * 55:36 -                        Reserved for future use, must be zero
+ */
+#define AMD_FMT_MOD fourcc_mod_code(AMD, 0)
+
+#define IS_AMD_FMT_MOD(val) (((val) >> 56) == DRM_FORMAT_MOD_VENDOR_AMD)
+
+/* Reserve 0 for GFX8 and older */
+#define AMD_FMT_MOD_TILE_VER_GFX9 1
+#define AMD_FMT_MOD_TILE_VER_GFX10 2
+#define AMD_FMT_MOD_TILE_VER_GFX10_RBPLUS 3
+
+/*
+ * 64K_S is the same for GFX9/GFX10/GFX10_RBPLUS and hence has GFX9 as canonical
+ * version.
+ */
+#define AMD_FMT_MOD_TILE_GFX9_64K_S 9
+
+/*
+ * 64K_D for non-32 bpp is the same for GFX9/GFX10/GFX10_RBPLUS and hence has
+ * GFX9 as canonical version.
+ */
+#define AMD_FMT_MOD_TILE_GFX9_64K_D 10
+#define AMD_FMT_MOD_TILE_GFX9_64K_S_X 25
+#define AMD_FMT_MOD_TILE_GFX9_64K_D_X 26
+#define AMD_FMT_MOD_TILE_GFX9_64K_R_X 27
+
+#define AMD_FMT_MOD_DCC_BLOCK_64B 0
+#define AMD_FMT_MOD_DCC_BLOCK_128B 1
+#define AMD_FMT_MOD_DCC_BLOCK_256B 2
+
+#define AMD_FMT_MOD_TILE_VERSION_SHIFT 0
+#define AMD_FMT_MOD_TILE_VERSION_MASK 0xFF
+#define AMD_FMT_MOD_TILE_SHIFT 8
+#define AMD_FMT_MOD_TILE_MASK 0x1F
+
+/* Whether DCC compression is enabled. */
+#define AMD_FMT_MOD_DCC_SHIFT 13
+#define AMD_FMT_MOD_DCC_MASK 0x1
+
+/*
+ * Whether to include two DCC surfaces, one which is rb & pipe aligned, and
+ * one which is not-aligned.
+ */
+#define AMD_FMT_MOD_DCC_RETILE_SHIFT 14
+#define AMD_FMT_MOD_DCC_RETILE_MASK 0x1
+
+/* Only set if DCC_RETILE = false */
+#define AMD_FMT_MOD_DCC_PIPE_ALIGN_SHIFT 15
+#define AMD_FMT_MOD_DCC_PIPE_ALIGN_MASK 0x1
+
+#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_SHIFT 16
+#define AMD_FMT_MOD_DCC_INDEPENDENT_64B_MASK 0x1
+#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_SHIFT 17
+#define AMD_FMT_MOD_DCC_INDEPENDENT_128B_MASK 0x1
+#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_SHIFT 18
+#define AMD_FMT_MOD_DCC_MAX_COMPRESSED_BLOCK_MASK 0x3
+
+/*
+ * DCC supports embedding some clear colors directly in the DCC surface.
+ * However, on older GPUs the rendering HW ignores the embedded clear color
+ * and prefers the driver provided color. This necessitates doing a fastclear
+ * eliminate operation before a process transfers control.
+ *
+ * If this bit is set that means the fastclear eliminate is not needed for these
+ * embeddable colors.
+ */
+#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_SHIFT 20
+#define AMD_FMT_MOD_DCC_CONSTANT_ENCODE_MASK 0x1
+
+/*
+ * The below fields are for accounting for per GPU differences. These are only
+ * relevant for GFX9 and later and if the tile field is *_X/_T.
+ *
+ * PIPE_XOR_BITS = always needed
+ * BANK_XOR_BITS = only for TILE_VER_GFX9
+ * PACKERS = only for TILE_VER_GFX10_RBPLUS
+ * RB = only for TILE_VER_GFX9 & DCC
+ * PIPE = only for TILE_VER_GFX9 & DCC & (DCC_RETILE | DCC_PIPE_ALIGN)
+ */
+#define AMD_FMT_MOD_PIPE_XOR_BITS_SHIFT 21
+#define AMD_FMT_MOD_PIPE_XOR_BITS_MASK 0x7
+#define AMD_FMT_MOD_BANK_XOR_BITS_SHIFT 24
+#define AMD_FMT_MOD_BANK_XOR_BITS_MASK 0x7
+#define AMD_FMT_MOD_PACKERS_SHIFT 27
+#define AMD_FMT_MOD_PACKERS_MASK 0x7
+#define AMD_FMT_MOD_RB_SHIFT 30
+#define AMD_FMT_MOD_RB_MASK 0x7
+#define AMD_FMT_MOD_PIPE_SHIFT 33
+#define AMD_FMT_MOD_PIPE_MASK 0x7
+
+#define AMD_FMT_MOD_SET(field, value) \
+	((uint64_t)(value) << AMD_FMT_MOD_##field##_SHIFT)
+#define AMD_FMT_MOD_GET(field, value) \
+	(((value) >> AMD_FMT_MOD_##field##_SHIFT) & AMD_FMT_MOD_##field##_MASK)
+#define AMD_FMT_MOD_CLEAR(field) \
+	(~((uint64_t)AMD_FMT_MOD_##field##_MASK << AMD_FMT_MOD_##field##_SHIFT))
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif /* DRM_FOURCC_H */
diff --git a/third_party/drm/drm/drm_mode.h b/third_party/drm/drm/drm_mode.h
new file mode 100644
index 0000000000..e1e3516828
--- /dev/null
+++ b/third_party/drm/drm/drm_mode.h
@@ -0,0 +1,1217 @@
+/*
+ * Copyright (c) 2007 Dave Airlie <airlied@linux.ie>
+ * Copyright (c) 2007 Jakob Bornecrantz <wallbraker@gmail.com>
+ * Copyright (c) 2008 Red Hat Inc.
+ * Copyright (c) 2007-2008 Tungsten Graphics, Inc., Cedar Park, TX., USA
+ * Copyright (c) 2007-2008 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+#ifndef _DRM_MODE_H
+#define _DRM_MODE_H
+
+#include "drm.h"
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+/**
+ * DOC: overview
+ *
+ * DRM exposes many UAPI and structure definition to have a consistent
+ * and standardized interface with user.
+ * Userspace can refer to these structure definitions and UAPI formats
+ * to communicate to driver
+ */
+
+#define DRM_CONNECTOR_NAME_LEN	32
+#define DRM_DISPLAY_MODE_LEN	32
+#define DRM_PROP_NAME_LEN	32
+
+#define DRM_MODE_TYPE_BUILTIN	(1<<0) /* deprecated */
+#define DRM_MODE_TYPE_CLOCK_C	((1<<1) | DRM_MODE_TYPE_BUILTIN) /* deprecated */
+#define DRM_MODE_TYPE_CRTC_C	((1<<2) | DRM_MODE_TYPE_BUILTIN) /* deprecated */
+#define DRM_MODE_TYPE_PREFERRED	(1<<3)
+#define DRM_MODE_TYPE_DEFAULT	(1<<4) /* deprecated */
+#define DRM_MODE_TYPE_USERDEF	(1<<5)
+#define DRM_MODE_TYPE_DRIVER	(1<<6)
+
+#define DRM_MODE_TYPE_ALL	(DRM_MODE_TYPE_PREFERRED |	\
+				 DRM_MODE_TYPE_USERDEF |	\
+				 DRM_MODE_TYPE_DRIVER)
+
+/* Video mode flags */
+/* bit compatible with the xrandr RR_ definitions (bits 0-13)
+ *
+ * ABI warning: Existing userspace really expects
+ * the mode flags to match the xrandr definitions. Any
+ * changes that don't match the xrandr definitions will
+ * likely need a new client cap or some other mechanism
+ * to avoid breaking existing userspace. This includes
+ * allocating new flags in the previously unused bits!
+ */
+#define DRM_MODE_FLAG_PHSYNC			(1<<0)
+#define DRM_MODE_FLAG_NHSYNC			(1<<1)
+#define DRM_MODE_FLAG_PVSYNC			(1<<2)
+#define DRM_MODE_FLAG_NVSYNC			(1<<3)
+#define DRM_MODE_FLAG_INTERLACE			(1<<4)
+#define DRM_MODE_FLAG_DBLSCAN			(1<<5)
+#define DRM_MODE_FLAG_CSYNC			(1<<6)
+#define DRM_MODE_FLAG_PCSYNC			(1<<7)
+#define DRM_MODE_FLAG_NCSYNC			(1<<8)
+#define DRM_MODE_FLAG_HSKEW			(1<<9) /* hskew provided */
+#define DRM_MODE_FLAG_BCAST			(1<<10) /* deprecated */
+#define DRM_MODE_FLAG_PIXMUX			(1<<11) /* deprecated */
+#define DRM_MODE_FLAG_DBLCLK			(1<<12)
+#define DRM_MODE_FLAG_CLKDIV2			(1<<13)
+ /*
+  * When adding a new stereo mode don't forget to adjust DRM_MODE_FLAGS_3D_MAX
+  * (define not exposed to user space).
+  */
+#define DRM_MODE_FLAG_3D_MASK			(0x1f<<14)
+#define  DRM_MODE_FLAG_3D_NONE		(0<<14)
+#define  DRM_MODE_FLAG_3D_FRAME_PACKING		(1<<14)
+#define  DRM_MODE_FLAG_3D_FIELD_ALTERNATIVE	(2<<14)
+#define  DRM_MODE_FLAG_3D_LINE_ALTERNATIVE	(3<<14)
+#define  DRM_MODE_FLAG_3D_SIDE_BY_SIDE_FULL	(4<<14)
+#define  DRM_MODE_FLAG_3D_L_DEPTH		(5<<14)
+#define  DRM_MODE_FLAG_3D_L_DEPTH_GFX_GFX_DEPTH	(6<<14)
+#define  DRM_MODE_FLAG_3D_TOP_AND_BOTTOM	(7<<14)
+#define  DRM_MODE_FLAG_3D_SIDE_BY_SIDE_HALF	(8<<14)
+
+/* Picture aspect ratio options */
+#define DRM_MODE_PICTURE_ASPECT_NONE		0
+#define DRM_MODE_PICTURE_ASPECT_4_3		1
+#define DRM_MODE_PICTURE_ASPECT_16_9		2
+#define DRM_MODE_PICTURE_ASPECT_64_27		3
+#define DRM_MODE_PICTURE_ASPECT_256_135		4
+
+/* Content type options */
+#define DRM_MODE_CONTENT_TYPE_NO_DATA		0
+#define DRM_MODE_CONTENT_TYPE_GRAPHICS		1
+#define DRM_MODE_CONTENT_TYPE_PHOTO		2
+#define DRM_MODE_CONTENT_TYPE_CINEMA		3
+#define DRM_MODE_CONTENT_TYPE_GAME		4
+
+/* Aspect ratio flag bitmask (4 bits 22:19) */
+#define DRM_MODE_FLAG_PIC_AR_MASK		(0x0F<<19)
+#define  DRM_MODE_FLAG_PIC_AR_NONE \
+			(DRM_MODE_PICTURE_ASPECT_NONE<<19)
+#define  DRM_MODE_FLAG_PIC_AR_4_3 \
+			(DRM_MODE_PICTURE_ASPECT_4_3<<19)
+#define  DRM_MODE_FLAG_PIC_AR_16_9 \
+			(DRM_MODE_PICTURE_ASPECT_16_9<<19)
+#define  DRM_MODE_FLAG_PIC_AR_64_27 \
+			(DRM_MODE_PICTURE_ASPECT_64_27<<19)
+#define  DRM_MODE_FLAG_PIC_AR_256_135 \
+			(DRM_MODE_PICTURE_ASPECT_256_135<<19)
+
+#define  DRM_MODE_FLAG_ALL	(DRM_MODE_FLAG_PHSYNC |		\
+				 DRM_MODE_FLAG_NHSYNC |		\
+				 DRM_MODE_FLAG_PVSYNC |		\
+				 DRM_MODE_FLAG_NVSYNC |		\
+				 DRM_MODE_FLAG_INTERLACE |	\
+				 DRM_MODE_FLAG_DBLSCAN |	\
+				 DRM_MODE_FLAG_CSYNC |		\
+				 DRM_MODE_FLAG_PCSYNC |		\
+				 DRM_MODE_FLAG_NCSYNC |		\
+				 DRM_MODE_FLAG_HSKEW |		\
+				 DRM_MODE_FLAG_DBLCLK |		\
+				 DRM_MODE_FLAG_CLKDIV2 |	\
+				 DRM_MODE_FLAG_3D_MASK)
+
+/* DPMS flags */
+/* bit compatible with the xorg definitions. */
+#define DRM_MODE_DPMS_ON	0
+#define DRM_MODE_DPMS_STANDBY	1
+#define DRM_MODE_DPMS_SUSPEND	2
+#define DRM_MODE_DPMS_OFF	3
+
+/* Scaling mode options */
+#define DRM_MODE_SCALE_NONE		0 /* Unmodified timing (display or
+					     software can still scale) */
+#define DRM_MODE_SCALE_FULLSCREEN	1 /* Full screen, ignore aspect */
+#define DRM_MODE_SCALE_CENTER		2 /* Centered, no scaling */
+#define DRM_MODE_SCALE_ASPECT		3 /* Full screen, preserve aspect */
+
+/* Dithering mode options */
+#define DRM_MODE_DITHERING_OFF	0
+#define DRM_MODE_DITHERING_ON	1
+#define DRM_MODE_DITHERING_AUTO 2
+
+/* Dirty info options */
+#define DRM_MODE_DIRTY_OFF      0
+#define DRM_MODE_DIRTY_ON       1
+#define DRM_MODE_DIRTY_ANNOTATE 2
+
+/* Link Status options */
+#define DRM_MODE_LINK_STATUS_GOOD	0
+#define DRM_MODE_LINK_STATUS_BAD	1
+
+/*
+ * DRM_MODE_ROTATE_<degrees>
+ *
+ * Signals that a drm plane is been rotated <degrees> degrees in counter
+ * clockwise direction.
+ *
+ * This define is provided as a convenience, looking up the property id
+ * using the name->prop id lookup is the preferred method.
+ */
+#define DRM_MODE_ROTATE_0       (1<<0)
+#define DRM_MODE_ROTATE_90      (1<<1)
+#define DRM_MODE_ROTATE_180     (1<<2)
+#define DRM_MODE_ROTATE_270     (1<<3)
+
+/*
+ * DRM_MODE_ROTATE_MASK
+ *
+ * Bitmask used to look for drm plane rotations.
+ */
+#define DRM_MODE_ROTATE_MASK (\
+		DRM_MODE_ROTATE_0  | \
+		DRM_MODE_ROTATE_90  | \
+		DRM_MODE_ROTATE_180 | \
+		DRM_MODE_ROTATE_270)
+
+/*
+ * DRM_MODE_REFLECT_<axis>
+ *
+ * Signals that the contents of a drm plane is reflected along the <axis> axis,
+ * in the same way as mirroring.
+ * See kerneldoc chapter "Plane Composition Properties" for more details.
+ *
+ * This define is provided as a convenience, looking up the property id
+ * using the name->prop id lookup is the preferred method.
+ */
+#define DRM_MODE_REFLECT_X      (1<<4)
+#define DRM_MODE_REFLECT_Y      (1<<5)
+
+/*
+ * DRM_MODE_REFLECT_MASK
+ *
+ * Bitmask used to look for drm plane reflections.
+ */
+#define DRM_MODE_REFLECT_MASK (\
+		DRM_MODE_REFLECT_X | \
+		DRM_MODE_REFLECT_Y)
+
+/* Content Protection Flags */
+#define DRM_MODE_CONTENT_PROTECTION_UNDESIRED	0
+#define DRM_MODE_CONTENT_PROTECTION_DESIRED     1
+#define DRM_MODE_CONTENT_PROTECTION_ENABLED     2
+
+/**
+ * struct drm_mode_modeinfo - Display mode information.
+ * @clock: pixel clock in kHz
+ * @hdisplay: horizontal display size
+ * @hsync_start: horizontal sync start
+ * @hsync_end: horizontal sync end
+ * @htotal: horizontal total size
+ * @hskew: horizontal skew
+ * @vdisplay: vertical display size
+ * @vsync_start: vertical sync start
+ * @vsync_end: vertical sync end
+ * @vtotal: vertical total size
+ * @vscan: vertical scan
+ * @vrefresh: approximate vertical refresh rate in Hz
+ * @flags: bitmask of misc. flags, see DRM_MODE_FLAG_* defines
+ * @type: bitmask of type flags, see DRM_MODE_TYPE_* defines
+ * @name: string describing the mode resolution
+ *
+ * This is the user-space API display mode information structure. For the
+ * kernel version see struct drm_display_mode.
+ */
+struct drm_mode_modeinfo {
+	__u32 clock;
+	__u16 hdisplay;
+	__u16 hsync_start;
+	__u16 hsync_end;
+	__u16 htotal;
+	__u16 hskew;
+	__u16 vdisplay;
+	__u16 vsync_start;
+	__u16 vsync_end;
+	__u16 vtotal;
+	__u16 vscan;
+
+	__u32 vrefresh;
+
+	__u32 flags;
+	__u32 type;
+	char name[DRM_DISPLAY_MODE_LEN];
+};
+
+struct drm_mode_card_res {
+	__u64 fb_id_ptr;
+	__u64 crtc_id_ptr;
+	__u64 connector_id_ptr;
+	__u64 encoder_id_ptr;
+	__u32 count_fbs;
+	__u32 count_crtcs;
+	__u32 count_connectors;
+	__u32 count_encoders;
+	__u32 min_width;
+	__u32 max_width;
+	__u32 min_height;
+	__u32 max_height;
+};
+
+struct drm_mode_crtc {
+	__u64 set_connectors_ptr;
+	__u32 count_connectors;
+
+	__u32 crtc_id; /**< Id */
+	__u32 fb_id; /**< Id of framebuffer */
+
+	__u32 x; /**< x Position on the framebuffer */
+	__u32 y; /**< y Position on the framebuffer */
+
+	__u32 gamma_size;
+	__u32 mode_valid;
+	struct drm_mode_modeinfo mode;
+};
+
+#define DRM_MODE_PRESENT_TOP_FIELD	(1<<0)
+#define DRM_MODE_PRESENT_BOTTOM_FIELD	(1<<1)
+
+/* Planes blend with or override other bits on the CRTC */
+struct drm_mode_set_plane {
+	__u32 plane_id;
+	__u32 crtc_id;
+	__u32 fb_id; /* fb object contains surface format type */
+	__u32 flags; /* see above flags */
+
+	/* Signed dest location allows it to be partially off screen */
+	__s32 crtc_x;
+	__s32 crtc_y;
+	__u32 crtc_w;
+	__u32 crtc_h;
+
+	/* Source values are 16.16 fixed point */
+	__u32 src_x;
+	__u32 src_y;
+	__u32 src_h;
+	__u32 src_w;
+};
+
+/**
+ * struct drm_mode_get_plane - Get plane metadata.
+ *
+ * Userspace can perform a GETPLANE ioctl to retrieve information about a
+ * plane.
+ *
+ * To retrieve the number of formats supported, set @count_format_types to zero
+ * and call the ioctl. @count_format_types will be updated with the value.
+ *
+ * To retrieve these formats, allocate an array with the memory needed to store
+ * @count_format_types formats. Point @format_type_ptr to this array and call
+ * the ioctl again (with @count_format_types still set to the value returned in
+ * the first ioctl call).
+ */
+struct drm_mode_get_plane {
+	/**
+	 * @plane_id: Object ID of the plane whose information should be
+	 * retrieved. Set by caller.
+	 */
+	__u32 plane_id;
+
+	/** @crtc_id: Object ID of the current CRTC. */
+	__u32 crtc_id;
+	/** @fb_id: Object ID of the current fb. */
+	__u32 fb_id;
+
+	/**
+	 * @possible_crtcs: Bitmask of CRTC's compatible with the plane. CRTC's
+	 * are created and they receive an index, which corresponds to their
+	 * position in the bitmask. Bit N corresponds to
+	 * :ref:`CRTC index<crtc_index>` N.
+	 */
+	__u32 possible_crtcs;
+	/** @gamma_size: Never used. */
+	__u32 gamma_size;
+
+	/** @count_format_types: Number of formats. */
+	__u32 count_format_types;
+	/**
+	 * @format_type_ptr: Pointer to ``__u32`` array of formats that are
+	 * supported by the plane. These formats do not require modifiers.
+	 */
+	__u64 format_type_ptr;
+};
+
+struct drm_mode_get_plane_res {
+	__u64 plane_id_ptr;
+	__u32 count_planes;
+};
+
+#define DRM_MODE_ENCODER_NONE	0
+#define DRM_MODE_ENCODER_DAC	1
+#define DRM_MODE_ENCODER_TMDS	2
+#define DRM_MODE_ENCODER_LVDS	3
+#define DRM_MODE_ENCODER_TVDAC	4
+#define DRM_MODE_ENCODER_VIRTUAL 5
+#define DRM_MODE_ENCODER_DSI	6
+#define DRM_MODE_ENCODER_DPMST	7
+#define DRM_MODE_ENCODER_DPI	8
+
+struct drm_mode_get_encoder {
+	__u32 encoder_id;
+	__u32 encoder_type;
+
+	__u32 crtc_id; /**< Id of crtc */
+
+	__u32 possible_crtcs;
+	__u32 possible_clones;
+};
+
+/* This is for connectors with multiple signal types. */
+/* Try to match DRM_MODE_CONNECTOR_X as closely as possible. */
+enum drm_mode_subconnector {
+	DRM_MODE_SUBCONNECTOR_Automatic   = 0,  /* DVI-I, TV     */
+	DRM_MODE_SUBCONNECTOR_Unknown     = 0,  /* DVI-I, TV, DP */
+	DRM_MODE_SUBCONNECTOR_VGA	  = 1,  /*            DP */
+	DRM_MODE_SUBCONNECTOR_DVID	  = 3,  /* DVI-I      DP */
+	DRM_MODE_SUBCONNECTOR_DVIA	  = 4,  /* DVI-I         */
+	DRM_MODE_SUBCONNECTOR_Composite   = 5,  /*        TV     */
+	DRM_MODE_SUBCONNECTOR_SVIDEO	  = 6,  /*        TV     */
+	DRM_MODE_SUBCONNECTOR_Component   = 8,  /*        TV     */
+	DRM_MODE_SUBCONNECTOR_SCART	  = 9,  /*        TV     */
+	DRM_MODE_SUBCONNECTOR_DisplayPort = 10, /*            DP */
+	DRM_MODE_SUBCONNECTOR_HDMIA       = 11, /*            DP */
+	DRM_MODE_SUBCONNECTOR_Native      = 15, /*            DP */
+	DRM_MODE_SUBCONNECTOR_Wireless    = 18, /*            DP */
+};
+
+#define DRM_MODE_CONNECTOR_Unknown	0
+#define DRM_MODE_CONNECTOR_VGA		1
+#define DRM_MODE_CONNECTOR_DVII		2
+#define DRM_MODE_CONNECTOR_DVID		3
+#define DRM_MODE_CONNECTOR_DVIA		4
+#define DRM_MODE_CONNECTOR_Composite	5
+#define DRM_MODE_CONNECTOR_SVIDEO	6
+#define DRM_MODE_CONNECTOR_LVDS		7
+#define DRM_MODE_CONNECTOR_Component	8
+#define DRM_MODE_CONNECTOR_9PinDIN	9
+#define DRM_MODE_CONNECTOR_DisplayPort	10
+#define DRM_MODE_CONNECTOR_HDMIA	11
+#define DRM_MODE_CONNECTOR_HDMIB	12
+#define DRM_MODE_CONNECTOR_TV		13
+#define DRM_MODE_CONNECTOR_eDP		14
+#define DRM_MODE_CONNECTOR_VIRTUAL      15
+#define DRM_MODE_CONNECTOR_DSI		16
+#define DRM_MODE_CONNECTOR_DPI		17
+#define DRM_MODE_CONNECTOR_WRITEBACK	18
+#define DRM_MODE_CONNECTOR_SPI		19
+#define DRM_MODE_CONNECTOR_USB		20
+
+/**
+ * struct drm_mode_get_connector - Get connector metadata.
+ *
+ * User-space can perform a GETCONNECTOR ioctl to retrieve information about a
+ * connector. User-space is expected to retrieve encoders, modes and properties
+ * by performing this ioctl at least twice: the first time to retrieve the
+ * number of elements, the second time to retrieve the elements themselves.
+ *
+ * To retrieve the number of elements, set @count_props and @count_encoders to
+ * zero, set @count_modes to 1, and set @modes_ptr to a temporary struct
+ * drm_mode_modeinfo element.
+ *
+ * To retrieve the elements, allocate arrays for @encoders_ptr, @modes_ptr,
+ * @props_ptr and @prop_values_ptr, then set @count_modes, @count_props and
+ * @count_encoders to their capacity.
+ *
+ * Performing the ioctl only twice may be racy: the number of elements may have
+ * changed with a hotplug event in-between the two ioctls. User-space is
+ * expected to retry the last ioctl until the number of elements stabilizes.
+ * The kernel won't fill any array which doesn't have the expected length.
+ *
+ * **Force-probing a connector**
+ *
+ * If the @count_modes field is set to zero and the DRM client is the current
+ * DRM master, the kernel will perform a forced probe on the connector to
+ * refresh the connector status, modes and EDID. A forced-probe can be slow,
+ * might cause flickering and the ioctl will block.
+ *
+ * User-space needs to force-probe connectors to ensure their metadata is
+ * up-to-date at startup and after receiving a hot-plug event. User-space
+ * may perform a forced-probe when the user explicitly requests it. User-space
+ * shouldn't perform a forced-probe in other situations.
+ */
+struct drm_mode_get_connector {
+	/** @encoders_ptr: Pointer to ``__u32`` array of object IDs. */
+	__u64 encoders_ptr;
+	/** @modes_ptr: Pointer to struct drm_mode_modeinfo array. */
+	__u64 modes_ptr;
+	/** @props_ptr: Pointer to ``__u32`` array of property IDs. */
+	__u64 props_ptr;
+	/** @prop_values_ptr: Pointer to ``__u64`` array of property values. */
+	__u64 prop_values_ptr;
+
+	/** @count_modes: Number of modes. */
+	__u32 count_modes;
+	/** @count_props: Number of properties. */
+	__u32 count_props;
+	/** @count_encoders: Number of encoders. */
+	__u32 count_encoders;
+
+	/** @encoder_id: Object ID of the current encoder. */
+	__u32 encoder_id;
+	/** @connector_id: Object ID of the connector. */
+	__u32 connector_id;
+	/**
+	 * @connector_type: Type of the connector.
+	 *
+	 * See DRM_MODE_CONNECTOR_* defines.
+	 */
+	__u32 connector_type;
+	/**
+	 * @connector_type_id: Type-specific connector number.
+	 *
+	 * This is not an object ID. This is a per-type connector number. Each
+	 * (type, type_id) combination is unique across all connectors of a DRM
+	 * device.
+	 */
+	__u32 connector_type_id;
+
+	/**
+	 * @connection: Status of the connector.
+	 *
+	 * See enum drm_connector_status.
+	 */
+	__u32 connection;
+	/** @mm_width: Width of the connected sink in millimeters. */
+	__u32 mm_width;
+	/** @mm_height: Height of the connected sink in millimeters. */
+	__u32 mm_height;
+	/**
+	 * @subpixel: Subpixel order of the connected sink.
+	 *
+	 * See enum subpixel_order.
+	 */
+	__u32 subpixel;
+
+	/** @pad: Padding, must be zero. */
+	__u32 pad;
+};
+
+#define DRM_MODE_PROP_PENDING	(1<<0) /* deprecated, do not use */
+#define DRM_MODE_PROP_RANGE	(1<<1)
+#define DRM_MODE_PROP_IMMUTABLE	(1<<2)
+#define DRM_MODE_PROP_ENUM	(1<<3) /* enumerated type with text strings */
+#define DRM_MODE_PROP_BLOB	(1<<4)
+#define DRM_MODE_PROP_BITMASK	(1<<5) /* bitmask of enumerated types */
+
+/* non-extended types: legacy bitmask, one bit per type: */
+#define DRM_MODE_PROP_LEGACY_TYPE  ( \
+		DRM_MODE_PROP_RANGE | \
+		DRM_MODE_PROP_ENUM | \
+		DRM_MODE_PROP_BLOB | \
+		DRM_MODE_PROP_BITMASK)
+
+/* extended-types: rather than continue to consume a bit per type,
+ * grab a chunk of the bits to use as integer type id.
+ */
+#define DRM_MODE_PROP_EXTENDED_TYPE	0x0000ffc0
+#define DRM_MODE_PROP_TYPE(n)		((n) << 6)
+#define DRM_MODE_PROP_OBJECT		DRM_MODE_PROP_TYPE(1)
+#define DRM_MODE_PROP_SIGNED_RANGE	DRM_MODE_PROP_TYPE(2)
+
+/* the PROP_ATOMIC flag is used to hide properties from userspace that
+ * is not aware of atomic properties.  This is mostly to work around
+ * older userspace (DDX drivers) that read/write each prop they find,
+ * witout being aware that this could be triggering a lengthy modeset.
+ */
+#define DRM_MODE_PROP_ATOMIC        0x80000000
+
+/**
+ * struct drm_mode_property_enum - Description for an enum/bitfield entry.
+ * @value: numeric value for this enum entry.
+ * @name: symbolic name for this enum entry.
+ *
+ * See struct drm_property_enum for details.
+ */
+struct drm_mode_property_enum {
+	__u64 value;
+	char name[DRM_PROP_NAME_LEN];
+};
+
+/**
+ * struct drm_mode_get_property - Get property metadata.
+ *
+ * User-space can perform a GETPROPERTY ioctl to retrieve information about a
+ * property. The same property may be attached to multiple objects, see
+ * "Modeset Base Object Abstraction".
+ *
+ * The meaning of the @values_ptr field changes depending on the property type.
+ * See &drm_property.flags for more details.
+ *
+ * The @enum_blob_ptr and @count_enum_blobs fields are only meaningful when the
+ * property has the type &DRM_MODE_PROP_ENUM or &DRM_MODE_PROP_BITMASK. For
+ * backwards compatibility, the kernel will always set @count_enum_blobs to
+ * zero when the property has the type &DRM_MODE_PROP_BLOB. User-space must
+ * ignore these two fields if the property has a different type.
+ *
+ * User-space is expected to retrieve values and enums by performing this ioctl
+ * at least twice: the first time to retrieve the number of elements, the
+ * second time to retrieve the elements themselves.
+ *
+ * To retrieve the number of elements, set @count_values and @count_enum_blobs
+ * to zero, then call the ioctl. @count_values will be updated with the number
+ * of elements. If the property has the type &DRM_MODE_PROP_ENUM or
+ * &DRM_MODE_PROP_BITMASK, @count_enum_blobs will be updated as well.
+ *
+ * To retrieve the elements themselves, allocate an array for @values_ptr and
+ * set @count_values to its capacity. If the property has the type
+ * &DRM_MODE_PROP_ENUM or &DRM_MODE_PROP_BITMASK, allocate an array for
+ * @enum_blob_ptr and set @count_enum_blobs to its capacity. Calling the ioctl
+ * again will fill the arrays.
+ */
+struct drm_mode_get_property {
+	/** @values_ptr: Pointer to a ``__u64`` array. */
+	__u64 values_ptr;
+	/** @enum_blob_ptr: Pointer to a struct drm_mode_property_enum array. */
+	__u64 enum_blob_ptr;
+
+	/**
+	 * @prop_id: Object ID of the property which should be retrieved. Set
+	 * by the caller.
+	 */
+	__u32 prop_id;
+	/**
+	 * @flags: ``DRM_MODE_PROP_*`` bitfield. See &drm_property.flags for
+	 * a definition of the flags.
+	 */
+	__u32 flags;
+	/**
+	 * @name: Symbolic property name. User-space should use this field to
+	 * recognize properties.
+	 */
+	char name[DRM_PROP_NAME_LEN];
+
+	/** @count_values: Number of elements in @values_ptr. */
+	__u32 count_values;
+	/** @count_enum_blobs: Number of elements in @enum_blob_ptr. */
+	__u32 count_enum_blobs;
+};
+
+struct drm_mode_connector_set_property {
+	__u64 value;
+	__u32 prop_id;
+	__u32 connector_id;
+};
+
+#define DRM_MODE_OBJECT_CRTC 0xcccccccc
+#define DRM_MODE_OBJECT_CONNECTOR 0xc0c0c0c0
+#define DRM_MODE_OBJECT_ENCODER 0xe0e0e0e0
+#define DRM_MODE_OBJECT_MODE 0xdededede
+#define DRM_MODE_OBJECT_PROPERTY 0xb0b0b0b0
+#define DRM_MODE_OBJECT_FB 0xfbfbfbfb
+#define DRM_MODE_OBJECT_BLOB 0xbbbbbbbb
+#define DRM_MODE_OBJECT_PLANE 0xeeeeeeee
+#define DRM_MODE_OBJECT_ANY 0
+
+struct drm_mode_obj_get_properties {
+	__u64 props_ptr;
+	__u64 prop_values_ptr;
+	__u32 count_props;
+	__u32 obj_id;
+	__u32 obj_type;
+};
+
+struct drm_mode_obj_set_property {
+	__u64 value;
+	__u32 prop_id;
+	__u32 obj_id;
+	__u32 obj_type;
+};
+
+struct drm_mode_get_blob {
+	__u32 blob_id;
+	__u32 length;
+	__u64 data;
+};
+
+struct drm_mode_fb_cmd {
+	__u32 fb_id;
+	__u32 width;
+	__u32 height;
+	__u32 pitch;
+	__u32 bpp;
+	__u32 depth;
+	/* driver specific handle */
+	__u32 handle;
+};
+
+#define DRM_MODE_FB_INTERLACED	(1<<0) /* for interlaced framebuffers */
+#define DRM_MODE_FB_MODIFIERS	(1<<1) /* enables ->modifer[] */
+
+struct drm_mode_fb_cmd2 {
+	__u32 fb_id;
+	__u32 width;
+	__u32 height;
+	__u32 pixel_format; /* fourcc code from drm_fourcc.h */
+	__u32 flags; /* see above flags */
+
+	/*
+	 * In case of planar formats, this ioctl allows up to 4
+	 * buffer objects with offsets and pitches per plane.
+	 * The pitch and offset order is dictated by the fourcc,
+	 * e.g. NV12 (https://fourcc.org/yuv.php#NV12) is described as:
+	 *
+	 *   YUV 4:2:0 image with a plane of 8 bit Y samples
+	 *   followed by an interleaved U/V plane containing
+	 *   8 bit 2x2 subsampled colour difference samples.
+	 *
+	 * So it would consist of Y as offsets[0] and UV as
+	 * offsets[1].  Note that offsets[0] will generally
+	 * be 0 (but this is not required).
+	 *
+	 * To accommodate tiled, compressed, etc formats, a
+	 * modifier can be specified.  The default value of zero
+	 * indicates "native" format as specified by the fourcc.
+	 * Vendor specific modifier token.  Note that even though
+	 * it looks like we have a modifier per-plane, we in fact
+	 * do not. The modifier for each plane must be identical.
+	 * Thus all combinations of different data layouts for
+	 * multi plane formats must be enumerated as separate
+	 * modifiers.
+	 */
+	__u32 handles[4];
+	__u32 pitches[4]; /* pitch for each plane */
+	__u32 offsets[4]; /* offset of each plane */
+	__u64 modifier[4]; /* ie, tiling, compress */
+};
+
+#define DRM_MODE_FB_DIRTY_ANNOTATE_COPY 0x01
+#define DRM_MODE_FB_DIRTY_ANNOTATE_FILL 0x02
+#define DRM_MODE_FB_DIRTY_FLAGS         0x03
+
+#define DRM_MODE_FB_DIRTY_MAX_CLIPS     256
+
+/*
+ * Mark a region of a framebuffer as dirty.
+ *
+ * Some hardware does not automatically update display contents
+ * as a hardware or software draw to a framebuffer. This ioctl
+ * allows userspace to tell the kernel and the hardware what
+ * regions of the framebuffer have changed.
+ *
+ * The kernel or hardware is free to update more then just the
+ * region specified by the clip rects. The kernel or hardware
+ * may also delay and/or coalesce several calls to dirty into a
+ * single update.
+ *
+ * Userspace may annotate the updates, the annotates are a
+ * promise made by the caller that the change is either a copy
+ * of pixels or a fill of a single color in the region specified.
+ *
+ * If the DRM_MODE_FB_DIRTY_ANNOTATE_COPY flag is given then
+ * the number of updated regions are half of num_clips given,
+ * where the clip rects are paired in src and dst. The width and
+ * height of each one of the pairs must match.
+ *
+ * If the DRM_MODE_FB_DIRTY_ANNOTATE_FILL flag is given the caller
+ * promises that the region specified of the clip rects is filled
+ * completely with a single color as given in the color argument.
+ */
+
+struct drm_mode_fb_dirty_cmd {
+	__u32 fb_id;
+	__u32 flags;
+	__u32 color;
+	__u32 num_clips;
+	__u64 clips_ptr;
+};
+
+struct drm_mode_mode_cmd {
+	__u32 connector_id;
+	struct drm_mode_modeinfo mode;
+};
+
+#define DRM_MODE_CURSOR_BO	0x01
+#define DRM_MODE_CURSOR_MOVE	0x02
+#define DRM_MODE_CURSOR_FLAGS	0x03
+
+/*
+ * depending on the value in flags different members are used.
+ *
+ * CURSOR_BO uses
+ *    crtc_id
+ *    width
+ *    height
+ *    handle - if 0 turns the cursor off
+ *
+ * CURSOR_MOVE uses
+ *    crtc_id
+ *    x
+ *    y
+ */
+struct drm_mode_cursor {
+	__u32 flags;
+	__u32 crtc_id;
+	__s32 x;
+	__s32 y;
+	__u32 width;
+	__u32 height;
+	/* driver specific handle */
+	__u32 handle;
+};
+
+struct drm_mode_cursor2 {
+	__u32 flags;
+	__u32 crtc_id;
+	__s32 x;
+	__s32 y;
+	__u32 width;
+	__u32 height;
+	/* driver specific handle */
+	__u32 handle;
+	__s32 hot_x;
+	__s32 hot_y;
+};
+
+struct drm_mode_crtc_lut {
+	__u32 crtc_id;
+	__u32 gamma_size;
+
+	/* pointers to arrays */
+	__u64 red;
+	__u64 green;
+	__u64 blue;
+};
+
+struct drm_color_ctm {
+	/*
+	 * Conversion matrix in S31.32 sign-magnitude
+	 * (not two's complement!) format.
+	 */
+	__u64 matrix[9];
+};
+
+struct drm_color_lut {
+	/*
+	 * Values are mapped linearly to 0.0 - 1.0 range, with 0x0 == 0.0 and
+	 * 0xffff == 1.0.
+	 */
+	__u16 red;
+	__u16 green;
+	__u16 blue;
+	__u16 reserved;
+};
+
+/**
+ * struct hdr_metadata_infoframe - HDR Metadata Infoframe Data.
+ *
+ * HDR Metadata Infoframe as per CTA 861.G spec. This is expected
+ * to match exactly with the spec.
+ *
+ * Userspace is expected to pass the metadata information as per
+ * the format described in this structure.
+ */
+struct hdr_metadata_infoframe {
+	/**
+	 * @eotf: Electro-Optical Transfer Function (EOTF)
+	 * used in the stream.
+	 */
+	__u8 eotf;
+	/**
+	 * @metadata_type: Static_Metadata_Descriptor_ID.
+	 */
+	__u8 metadata_type;
+	/**
+	 * @display_primaries: Color Primaries of the Data.
+	 * These are coded as unsigned 16-bit values in units of
+	 * 0.00002, where 0x0000 represents zero and 0xC350
+	 * represents 1.0000.
+	 * @display_primaries.x: X cordinate of color primary.
+	 * @display_primaries.y: Y cordinate of color primary.
+	 */
+	struct {
+		__u16 x, y;
+		} display_primaries[3];
+	/**
+	 * @white_point: White Point of Colorspace Data.
+	 * These are coded as unsigned 16-bit values in units of
+	 * 0.00002, where 0x0000 represents zero and 0xC350
+	 * represents 1.0000.
+	 * @white_point.x: X cordinate of whitepoint of color primary.
+	 * @white_point.y: Y cordinate of whitepoint of color primary.
+	 */
+	struct {
+		__u16 x, y;
+		} white_point;
+	/**
+	 * @max_display_mastering_luminance: Max Mastering Display Luminance.
+	 * This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
+	 * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
+	 */
+	__u16 max_display_mastering_luminance;
+	/**
+	 * @min_display_mastering_luminance: Min Mastering Display Luminance.
+	 * This value is coded as an unsigned 16-bit value in units of
+	 * 0.0001 cd/m2, where 0x0001 represents 0.0001 cd/m2 and 0xFFFF
+	 * represents 6.5535 cd/m2.
+	 */
+	__u16 min_display_mastering_luminance;
+	/**
+	 * @max_cll: Max Content Light Level.
+	 * This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
+	 * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
+	 */
+	__u16 max_cll;
+	/**
+	 * @max_fall: Max Frame Average Light Level.
+	 * This value is coded as an unsigned 16-bit value in units of 1 cd/m2,
+	 * where 0x0001 represents 1 cd/m2 and 0xFFFF represents 65535 cd/m2.
+	 */
+	__u16 max_fall;
+};
+
+/**
+ * struct hdr_output_metadata - HDR output metadata
+ *
+ * Metadata Information to be passed from userspace
+ */
+struct hdr_output_metadata {
+	/**
+	 * @metadata_type: Static_Metadata_Descriptor_ID.
+	 */
+	__u32 metadata_type;
+	/**
+	 * @hdmi_metadata_type1: HDR Metadata Infoframe.
+	 */
+	union {
+		struct hdr_metadata_infoframe hdmi_metadata_type1;
+	};
+};
+
+#define DRM_MODE_PAGE_FLIP_EVENT 0x01
+#define DRM_MODE_PAGE_FLIP_ASYNC 0x02
+#define DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE 0x4
+#define DRM_MODE_PAGE_FLIP_TARGET_RELATIVE 0x8
+#define DRM_MODE_PAGE_FLIP_TARGET (DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE | \
+				   DRM_MODE_PAGE_FLIP_TARGET_RELATIVE)
+#define DRM_MODE_PAGE_FLIP_FLAGS (DRM_MODE_PAGE_FLIP_EVENT | \
+				  DRM_MODE_PAGE_FLIP_ASYNC | \
+				  DRM_MODE_PAGE_FLIP_TARGET)
+
+/*
+ * Request a page flip on the specified crtc.
+ *
+ * This ioctl will ask KMS to schedule a page flip for the specified
+ * crtc.  Once any pending rendering targeting the specified fb (as of
+ * ioctl time) has completed, the crtc will be reprogrammed to display
+ * that fb after the next vertical refresh.  The ioctl returns
+ * immediately, but subsequent rendering to the current fb will block
+ * in the execbuffer ioctl until the page flip happens.  If a page
+ * flip is already pending as the ioctl is called, EBUSY will be
+ * returned.
+ *
+ * Flag DRM_MODE_PAGE_FLIP_EVENT requests that drm sends back a vblank
+ * event (see drm.h: struct drm_event_vblank) when the page flip is
+ * done.  The user_data field passed in with this ioctl will be
+ * returned as the user_data field in the vblank event struct.
+ *
+ * Flag DRM_MODE_PAGE_FLIP_ASYNC requests that the flip happen
+ * 'as soon as possible', meaning that it not delay waiting for vblank.
+ * This may cause tearing on the screen.
+ *
+ * The reserved field must be zero.
+ */
+
+struct drm_mode_crtc_page_flip {
+	__u32 crtc_id;
+	__u32 fb_id;
+	__u32 flags;
+	__u32 reserved;
+	__u64 user_data;
+};
+
+/*
+ * Request a page flip on the specified crtc.
+ *
+ * Same as struct drm_mode_crtc_page_flip, but supports new flags and
+ * re-purposes the reserved field:
+ *
+ * The sequence field must be zero unless either of the
+ * DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE/RELATIVE flags is specified. When
+ * the ABSOLUTE flag is specified, the sequence field denotes the absolute
+ * vblank sequence when the flip should take effect. When the RELATIVE
+ * flag is specified, the sequence field denotes the relative (to the
+ * current one when the ioctl is called) vblank sequence when the flip
+ * should take effect. NOTE: DRM_IOCTL_WAIT_VBLANK must still be used to
+ * make sure the vblank sequence before the target one has passed before
+ * calling this ioctl. The purpose of the
+ * DRM_MODE_PAGE_FLIP_TARGET_ABSOLUTE/RELATIVE flags is merely to clarify
+ * the target for when code dealing with a page flip runs during a
+ * vertical blank period.
+ */
+
+struct drm_mode_crtc_page_flip_target {
+	__u32 crtc_id;
+	__u32 fb_id;
+	__u32 flags;
+	__u32 sequence;
+	__u64 user_data;
+};
+
+/* create a dumb scanout buffer */
+struct drm_mode_create_dumb {
+	__u32 height;
+	__u32 width;
+	__u32 bpp;
+	__u32 flags;
+	/* handle, pitch, size will be returned */
+	__u32 handle;
+	__u32 pitch;
+	__u64 size;
+};
+
+/* set up for mmap of a dumb scanout buffer */
+struct drm_mode_map_dumb {
+	/** Handle for the object being mapped. */
+	__u32 handle;
+	__u32 pad;
+	/**
+	 * Fake offset to use for subsequent mmap call
+	 *
+	 * This is a fixed-size type for 32/64 compatibility.
+	 */
+	__u64 offset;
+};
+
+struct drm_mode_destroy_dumb {
+	__u32 handle;
+};
+
+/* page-flip flags are valid, plus: */
+#define DRM_MODE_ATOMIC_TEST_ONLY 0x0100
+#define DRM_MODE_ATOMIC_NONBLOCK  0x0200
+#define DRM_MODE_ATOMIC_ALLOW_MODESET 0x0400
+
+#define DRM_MODE_ATOMIC_FLAGS (\
+		DRM_MODE_PAGE_FLIP_EVENT |\
+		DRM_MODE_PAGE_FLIP_ASYNC |\
+		DRM_MODE_ATOMIC_TEST_ONLY |\
+		DRM_MODE_ATOMIC_NONBLOCK |\
+		DRM_MODE_ATOMIC_ALLOW_MODESET)
+
+struct drm_mode_atomic {
+	__u32 flags;
+	__u32 count_objs;
+	__u64 objs_ptr;
+	__u64 count_props_ptr;
+	__u64 props_ptr;
+	__u64 prop_values_ptr;
+	__u64 reserved;
+	__u64 user_data;
+};
+
+struct drm_format_modifier_blob {
+#define FORMAT_BLOB_CURRENT 1
+	/* Version of this blob format */
+	__u32 version;
+
+	/* Flags */
+	__u32 flags;
+
+	/* Number of fourcc formats supported */
+	__u32 count_formats;
+
+	/* Where in this blob the formats exist (in bytes) */
+	__u32 formats_offset;
+
+	/* Number of drm_format_modifiers */
+	__u32 count_modifiers;
+
+	/* Where in this blob the modifiers exist (in bytes) */
+	__u32 modifiers_offset;
+
+	/* __u32 formats[] */
+	/* struct drm_format_modifier modifiers[] */
+};
+
+struct drm_format_modifier {
+	/* Bitmask of formats in get_plane format list this info applies to. The
+	 * offset allows a sliding window of which 64 formats (bits).
+	 *
+	 * Some examples:
+	 * In today's world with < 65 formats, and formats 0, and 2 are
+	 * supported
+	 * 0x0000000000000005
+	 *		  ^-offset = 0, formats = 5
+	 *
+	 * If the number formats grew to 128, and formats 98-102 are
+	 * supported with the modifier:
+	 *
+	 * 0x0000007c00000000 0000000000000000
+	 *		  ^
+	 *		  |__offset = 64, formats = 0x7c00000000
+	 *
+	 */
+	__u64 formats;
+	__u32 offset;
+	__u32 pad;
+
+	/* The modifier that applies to the >get_plane format list bitmask. */
+	__u64 modifier;
+};
+
+/**
+ * struct drm_mode_create_blob - Create New blob property
+ *
+ * Create a new 'blob' data property, copying length bytes from data pointer,
+ * and returning new blob ID.
+ */
+struct drm_mode_create_blob {
+	/** @data: Pointer to data to copy. */
+	__u64 data;
+	/** @length: Length of data to copy. */
+	__u32 length;
+	/** @blob_id: Return: new property ID. */
+	__u32 blob_id;
+};
+
+/**
+ * struct drm_mode_destroy_blob - Destroy user blob
+ * @blob_id: blob_id to destroy
+ *
+ * Destroy a user-created blob property.
+ *
+ * User-space can release blobs as soon as they do not need to refer to them by
+ * their blob object ID.  For instance, if you are using a MODE_ID blob in an
+ * atomic commit and you will not make another commit re-using the same ID, you
+ * can destroy the blob as soon as the commit has been issued, without waiting
+ * for it to complete.
+ */
+struct drm_mode_destroy_blob {
+	__u32 blob_id;
+};
+
+/**
+ * struct drm_mode_create_lease - Create lease
+ *
+ * Lease mode resources, creating another drm_master.
+ *
+ * The @object_ids array must reference at least one CRTC, one connector and
+ * one plane if &DRM_CLIENT_CAP_UNIVERSAL_PLANES is enabled. Alternatively,
+ * the lease can be completely empty.
+ */
+struct drm_mode_create_lease {
+	/** @object_ids: Pointer to array of object ids (__u32) */
+	__u64 object_ids;
+	/** @object_count: Number of object ids */
+	__u32 object_count;
+	/** @flags: flags for new FD (O_CLOEXEC, etc) */
+	__u32 flags;
+
+	/** @lessee_id: Return: unique identifier for lessee. */
+	__u32 lessee_id;
+	/** @fd: Return: file descriptor to new drm_master file */
+	__u32 fd;
+};
+
+/**
+ * struct drm_mode_list_lessees - List lessees
+ *
+ * List lesses from a drm_master.
+ */
+struct drm_mode_list_lessees {
+	/**
+	 * @count_lessees: Number of lessees.
+	 *
+	 * On input, provides length of the array.
+	 * On output, provides total number. No
+	 * more than the input number will be written
+	 * back, so two calls can be used to get
+	 * the size and then the data.
+	 */
+	__u32 count_lessees;
+	/** @pad: Padding. */
+	__u32 pad;
+
+	/**
+	 * @lessees_ptr: Pointer to lessees.
+	 *
+	 * Pointer to __u64 array of lessee ids
+	 */
+	__u64 lessees_ptr;
+};
+
+/**
+ * struct drm_mode_get_lease - Get Lease
+ *
+ * Get leased objects.
+ */
+struct drm_mode_get_lease {
+	/**
+	 * @count_objects: Number of leased objects.
+	 *
+	 * On input, provides length of the array.
+	 * On output, provides total number. No
+	 * more than the input number will be written
+	 * back, so two calls can be used to get
+	 * the size and then the data.
+	 */
+	__u32 count_objects;
+	/** @pad: Padding. */
+	__u32 pad;
+
+	/**
+	 * @objects_ptr: Pointer to objects.
+	 *
+	 * Pointer to __u32 array of object ids.
+	 */
+	__u64 objects_ptr;
+};
+
+/**
+ * struct drm_mode_revoke_lease - Revoke lease
+ */
+struct drm_mode_revoke_lease {
+	/** @lessee_id: Unique ID of lessee */
+	__u32 lessee_id;
+};
+
+/**
+ * struct drm_mode_rect - Two dimensional rectangle.
+ * @x1: Horizontal starting coordinate (inclusive).
+ * @y1: Vertical starting coordinate (inclusive).
+ * @x2: Horizontal ending coordinate (exclusive).
+ * @y2: Vertical ending coordinate (exclusive).
+ *
+ * With drm subsystem using struct drm_rect to manage rectangular area this
+ * export it to user-space.
+ *
+ * Currently used by drm_mode_atomic blob property FB_DAMAGE_CLIPS.
+ */
+struct drm_mode_rect {
+	__s32 x1;
+	__s32 y1;
+	__s32 x2;
+	__s32 y2;
+};
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif
diff --git a/third_party/drm/drm/xf86drm.h b/third_party/drm/drm/xf86drm.h
new file mode 100644
index 0000000000..a105b9e131
--- /dev/null
+++ b/third_party/drm/drm/xf86drm.h
@@ -0,0 +1,966 @@
+/**
+ * \file xf86drm.h
+ * OS-independent header for DRM user-level library interface.
+ *
+ * \author Rickard E. (Rik) Faith <faith@valinux.com>
+ */
+
+/*
+ * Copyright 1999, 2000 Precision Insight, Inc., Cedar Park, Texas.
+ * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
+ * All Rights Reserved.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+ * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef _XF86DRM_H_
+#define _XF86DRM_H_
+
+#include <stdarg.h>
+#include <sys/types.h>
+#include <stdint.h>
+#include <drm/drm.h>
+
+#if defined(__cplusplus)
+extern "C" {
+#endif
+
+#ifndef DRM_MAX_MINOR
+#define DRM_MAX_MINOR   16
+#endif
+
+#if defined(__linux__)
+
+#define DRM_IOCTL_NR(n)		_IOC_NR(n)
+#define DRM_IOC_VOID		_IOC_NONE
+#define DRM_IOC_READ		_IOC_READ
+#define DRM_IOC_WRITE		_IOC_WRITE
+#define DRM_IOC_READWRITE	_IOC_READ|_IOC_WRITE
+#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
+
+#else /* One of the *BSDs */
+
+#include <sys/ioccom.h>
+#define DRM_IOCTL_NR(n)         ((n) & 0xff)
+#define DRM_IOC_VOID            IOC_VOID
+#define DRM_IOC_READ            IOC_OUT
+#define DRM_IOC_WRITE           IOC_IN
+#define DRM_IOC_READWRITE       IOC_INOUT
+#define DRM_IOC(dir, group, nr, size) _IOC(dir, group, nr, size)
+
+#endif
+
+				/* Defaults, if nothing set in xf86config */
+#define DRM_DEV_UID	 0
+#define DRM_DEV_GID	 0
+/* Default /dev/dri directory permissions 0755 */
+#define DRM_DEV_DIRMODE	 	\
+	(S_IRUSR|S_IWUSR|S_IXUSR|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH)
+#define DRM_DEV_MODE	 (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
+
+#ifdef __OpenBSD__
+#define DRM_DIR_NAME  "/dev"
+#define DRM_PRIMARY_MINOR_NAME  "drm"
+#define DRM_CONTROL_MINOR_NAME  "drmC"
+#define DRM_RENDER_MINOR_NAME   "drmR"
+#else
+#define DRM_DIR_NAME  "/dev/dri"
+#define DRM_PRIMARY_MINOR_NAME  "card"
+#define DRM_CONTROL_MINOR_NAME  "controlD"
+#define DRM_RENDER_MINOR_NAME   "renderD"
+#define DRM_PROC_NAME "/proc/dri/" /* For backward Linux compatibility */
+#endif
+
+#define DRM_DEV_NAME          "%s/" DRM_PRIMARY_MINOR_NAME "%d"
+#define DRM_CONTROL_DEV_NAME  "%s/" DRM_CONTROL_MINOR_NAME "%d"
+#define DRM_RENDER_DEV_NAME   "%s/" DRM_RENDER_MINOR_NAME  "%d"
+
+#define DRM_NODE_NAME_MAX \
+    (sizeof(DRM_DIR_NAME) + 1 /* slash */ \
+     + MAX3(sizeof(DRM_PRIMARY_MINOR_NAME), \
+            sizeof(DRM_CONTROL_MINOR_NAME), \
+            sizeof(DRM_RENDER_MINOR_NAME)) \
+     + sizeof("144") /* highest possible node number */ \
+     + 1) /* NULL-terminator */
+
+#define DRM_ERR_NO_DEVICE  (-1001)
+#define DRM_ERR_NO_ACCESS  (-1002)
+#define DRM_ERR_NOT_ROOT   (-1003)
+#define DRM_ERR_INVALID    (-1004)
+#define DRM_ERR_NO_FD      (-1005)
+
+#define DRM_AGP_NO_HANDLE 0
+
+typedef unsigned int  drmSize,     *drmSizePtr;	    /**< For mapped regions */
+typedef void          *drmAddress, **drmAddressPtr; /**< For mapped regions */
+
+#if (__GNUC__ >= 3)
+#define DRM_PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a)))
+#else
+#define DRM_PRINTFLIKE(f, a)
+#endif
+
+typedef struct _drmServerInfo {
+  int (*debug_print)(const char *format, va_list ap) DRM_PRINTFLIKE(1,0);
+  int (*load_module)(const char *name);
+  void (*get_perms)(gid_t *, mode_t *);
+} drmServerInfo, *drmServerInfoPtr;
+
+typedef struct drmHashEntry {
+    int      fd;
+    void     (*f)(int, void *, void *);
+    void     *tagTable;
+} drmHashEntry;
+
+extern int drmIoctl(int fd, unsigned long request, void *arg);
+extern void *drmGetHashTable(void);
+extern drmHashEntry *drmGetEntry(int fd);
+
+/**
+ * Driver version information.
+ *
+ * \sa drmGetVersion() and drmSetVersion().
+ */
+typedef struct _drmVersion {
+    int     version_major;        /**< Major version */
+    int     version_minor;        /**< Minor version */
+    int     version_patchlevel;   /**< Patch level */
+    int     name_len; 	          /**< Length of name buffer */
+    char    *name;	          /**< Name of driver */
+    int     date_len;             /**< Length of date buffer */
+    char    *date;                /**< User-space buffer to hold date */
+    int     desc_len;	          /**< Length of desc buffer */
+    char    *desc;                /**< User-space buffer to hold desc */
+} drmVersion, *drmVersionPtr;
+
+typedef struct _drmStats {
+    unsigned long count;	     /**< Number of data */
+    struct {
+	unsigned long value;	     /**< Value from kernel */
+	const char    *long_format;  /**< Suggested format for long_name */
+	const char    *long_name;    /**< Long name for value */
+	const char    *rate_format;  /**< Suggested format for rate_name */
+	const char    *rate_name;    /**< Short name for value per second */
+	int           isvalue;       /**< True if value (vs. counter) */
+	const char    *mult_names;   /**< Multiplier names (e.g., "KGM") */
+	int           mult;          /**< Multiplier value (e.g., 1024) */
+	int           verbose;       /**< Suggest only in verbose output */
+    } data[15];
+} drmStatsT;
+
+
+				/* All of these enums *MUST* match with the
+                                   kernel implementation -- so do *NOT*
+                                   change them!  (The drmlib implementation
+                                   will just copy the flags instead of
+                                   translating them.) */
+typedef enum {
+    DRM_FRAME_BUFFER    = 0,      /**< WC, no caching, no core dump */
+    DRM_REGISTERS       = 1,      /**< no caching, no core dump */
+    DRM_SHM             = 2,      /**< shared, cached */
+    DRM_AGP             = 3,	  /**< AGP/GART */
+    DRM_SCATTER_GATHER  = 4,	  /**< PCI scatter/gather */
+    DRM_CONSISTENT      = 5	  /**< PCI consistent */
+} drmMapType;
+
+typedef enum {
+    DRM_RESTRICTED      = 0x0001, /**< Cannot be mapped to client-virtual */
+    DRM_READ_ONLY       = 0x0002, /**< Read-only in client-virtual */
+    DRM_LOCKED          = 0x0004, /**< Physical pages locked */
+    DRM_KERNEL          = 0x0008, /**< Kernel requires access */
+    DRM_WRITE_COMBINING = 0x0010, /**< Use write-combining, if available */
+    DRM_CONTAINS_LOCK   = 0x0020, /**< SHM page that contains lock */
+    DRM_REMOVABLE	= 0x0040  /**< Removable mapping */
+} drmMapFlags;
+
+/**
+ * \warning These values *MUST* match drm.h
+ */
+typedef enum {
+    /** \name Flags for DMA buffer dispatch */
+    /*@{*/
+    DRM_DMA_BLOCK        = 0x01, /**<
+				  * Block until buffer dispatched.
+				  *
+				  * \note the buffer may not yet have been
+				  * processed by the hardware -- getting a
+				  * hardware lock with the hardware quiescent
+				  * will ensure that the buffer has been
+				  * processed.
+				  */
+    DRM_DMA_WHILE_LOCKED = 0x02, /**< Dispatch while lock held */
+    DRM_DMA_PRIORITY     = 0x04, /**< High priority dispatch */
+    /*@}*/
+
+    /** \name Flags for DMA buffer request */
+    /*@{*/
+    DRM_DMA_WAIT         = 0x10, /**< Wait for free buffers */
+    DRM_DMA_SMALLER_OK   = 0x20, /**< Smaller-than-requested buffers OK */
+    DRM_DMA_LARGER_OK    = 0x40  /**< Larger-than-requested buffers OK */
+    /*@}*/
+} drmDMAFlags;
+
+typedef enum {
+    DRM_PAGE_ALIGN       = 0x01,
+    DRM_AGP_BUFFER       = 0x02,
+    DRM_SG_BUFFER        = 0x04,
+    DRM_FB_BUFFER        = 0x08,
+    DRM_PCI_BUFFER_RO    = 0x10
+} drmBufDescFlags;
+
+typedef enum {
+    DRM_LOCK_READY      = 0x01, /**< Wait until hardware is ready for DMA */
+    DRM_LOCK_QUIESCENT  = 0x02, /**< Wait until hardware quiescent */
+    DRM_LOCK_FLUSH      = 0x04, /**< Flush this context's DMA queue first */
+    DRM_LOCK_FLUSH_ALL  = 0x08, /**< Flush all DMA queues first */
+				/* These *HALT* flags aren't supported yet
+                                   -- they will be used to support the
+                                   full-screen DGA-like mode. */
+    DRM_HALT_ALL_QUEUES = 0x10, /**< Halt all current and future queues */
+    DRM_HALT_CUR_QUEUES = 0x20  /**< Halt all current queues */
+} drmLockFlags;
+
+typedef enum {
+    DRM_CONTEXT_PRESERVED = 0x01, /**< This context is preserved and
+				     never swapped. */
+    DRM_CONTEXT_2DONLY    = 0x02  /**< This context is for 2D rendering only. */
+} drm_context_tFlags, *drm_context_tFlagsPtr;
+
+typedef struct _drmBufDesc {
+    int              count;	  /**< Number of buffers of this size */
+    int              size;	  /**< Size in bytes */
+    int              low_mark;	  /**< Low water mark */
+    int              high_mark;	  /**< High water mark */
+} drmBufDesc, *drmBufDescPtr;
+
+typedef struct _drmBufInfo {
+    int              count;	  /**< Number of buffers described in list */
+    drmBufDescPtr    list;	  /**< List of buffer descriptions */
+} drmBufInfo, *drmBufInfoPtr;
+
+typedef struct _drmBuf {
+    int              idx;	  /**< Index into the master buffer list */
+    int              total;	  /**< Buffer size */
+    int              used;	  /**< Amount of buffer in use (for DMA) */
+    drmAddress       address;	  /**< Address */
+} drmBuf, *drmBufPtr;
+
+/**
+ * Buffer mapping information.
+ *
+ * Used by drmMapBufs() and drmUnmapBufs() to store information about the
+ * mapped buffers.
+ */
+typedef struct _drmBufMap {
+    int              count;	  /**< Number of buffers mapped */
+    drmBufPtr        list;	  /**< Buffers */
+} drmBufMap, *drmBufMapPtr;
+
+typedef struct _drmLock {
+    volatile unsigned int lock;
+    char                      padding[60];
+    /* This is big enough for most current (and future?) architectures:
+       DEC Alpha:              32 bytes
+       Intel Merced:           ?
+       Intel P5/PPro/PII/PIII: 32 bytes
+       Intel StrongARM:        32 bytes
+       Intel i386/i486:        16 bytes
+       MIPS:                   32 bytes (?)
+       Motorola 68k:           16 bytes
+       Motorola PowerPC:       32 bytes
+       Sun SPARC:              32 bytes
+    */
+} drmLock, *drmLockPtr;
+
+/**
+ * Indices here refer to the offset into
+ * list in drmBufInfo
+ */
+typedef struct _drmDMAReq {
+    drm_context_t    context;  	  /**< Context handle */
+    int           send_count;     /**< Number of buffers to send */
+    int           *send_list;     /**< List of handles to buffers */
+    int           *send_sizes;    /**< Lengths of data to send, in bytes */
+    drmDMAFlags   flags;          /**< Flags */
+    int           request_count;  /**< Number of buffers requested */
+    int           request_size;	  /**< Desired size of buffers requested */
+    int           *request_list;  /**< Buffer information */
+    int           *request_sizes; /**< Minimum acceptable sizes */
+    int           granted_count;  /**< Number of buffers granted at this size */
+} drmDMAReq, *drmDMAReqPtr;
+
+typedef struct _drmRegion {
+    drm_handle_t     handle;
+    unsigned int  offset;
+    drmSize       size;
+    drmAddress    map;
+} drmRegion, *drmRegionPtr;
+
+typedef struct _drmTextureRegion {
+    unsigned char next;
+    unsigned char prev;
+    unsigned char in_use;
+    unsigned char padding;	/**< Explicitly pad this out */
+    unsigned int  age;
+} drmTextureRegion, *drmTextureRegionPtr;
+
+
+typedef enum {
+    DRM_VBLANK_ABSOLUTE = 0x0,	/**< Wait for specific vblank sequence number */
+    DRM_VBLANK_RELATIVE = 0x1,	/**< Wait for given number of vblanks */
+    /* bits 1-6 are reserved for high crtcs */
+    DRM_VBLANK_HIGH_CRTC_MASK = 0x0000003e,
+    DRM_VBLANK_EVENT = 0x4000000,	/**< Send event instead of blocking */
+    DRM_VBLANK_FLIP = 0x8000000,	/**< Scheduled buffer swap should flip */
+    DRM_VBLANK_NEXTONMISS = 0x10000000,	/**< If missed, wait for next vblank */
+    DRM_VBLANK_SECONDARY = 0x20000000,	/**< Secondary display controller */
+    DRM_VBLANK_SIGNAL   = 0x40000000	/* Send signal instead of blocking */
+} drmVBlankSeqType;
+#define DRM_VBLANK_HIGH_CRTC_SHIFT 1
+
+typedef struct _drmVBlankReq {
+	drmVBlankSeqType type;
+	unsigned int sequence;
+	unsigned long signal;
+} drmVBlankReq, *drmVBlankReqPtr;
+
+typedef struct _drmVBlankReply {
+	drmVBlankSeqType type;
+	unsigned int sequence;
+	long tval_sec;
+	long tval_usec;
+} drmVBlankReply, *drmVBlankReplyPtr;
+
+typedef union _drmVBlank {
+	drmVBlankReq request;
+	drmVBlankReply reply;
+} drmVBlank, *drmVBlankPtr;
+
+typedef struct _drmSetVersion {
+	int drm_di_major;
+	int drm_di_minor;
+	int drm_dd_major;
+	int drm_dd_minor;
+} drmSetVersion, *drmSetVersionPtr;
+
+#define __drm_dummy_lock(lock) (*(__volatile__ unsigned int *)lock)
+
+#define DRM_LOCK_HELD  0x80000000U /**< Hardware lock is held */
+#define DRM_LOCK_CONT  0x40000000U /**< Hardware lock is contended */
+
+#if defined(__GNUC__) && (__GNUC__ >= 2)
+# if defined(__i386) || defined(__AMD64__) || defined(__x86_64__) || defined(__amd64__)
+				/* Reflect changes here to drmP.h */
+#define DRM_CAS(lock,old,new,__ret)                                    \
+	do {                                                           \
+                int __dummy;	/* Can't mark eax as clobbered */      \
+		__asm__ __volatile__(                                  \
+			"lock ; cmpxchg %4,%1\n\t"                     \
+                        "setnz %0"                                     \
+			: "=d" (__ret),                                \
+   			  "=m" (__drm_dummy_lock(lock)),               \
+                          "=a" (__dummy)                               \
+			: "2" (old),                                   \
+			  "r" (new));                                  \
+	} while (0)
+
+#elif defined(__alpha__)
+
+#define	DRM_CAS(lock, old, new, ret)		\
+	do {					\
+		int tmp, old32;			\
+		__asm__ __volatile__(		\
+		"	addl	$31, %5, %3\n"	\
+		"1:	ldl_l	%0, %2\n"	\
+		"	cmpeq	%0, %3, %1\n"	\
+		"	beq	%1, 2f\n"	\
+		"	mov	%4, %0\n"	\
+		"	stl_c	%0, %2\n"	\
+		"	beq	%0, 3f\n"	\
+		"	mb\n"			\
+		"2:	cmpeq	%1, 0, %1\n"	\
+		".subsection 2\n"		\
+		"3:	br	1b\n"		\
+		".previous"			\
+		: "=&r"(tmp), "=&r"(ret),	\
+		  "=m"(__drm_dummy_lock(lock)),	\
+		  "=&r"(old32)			\
+		: "r"(new), "r"(old)		\
+		: "memory");			\
+	} while (0)
+
+#elif defined(__sparc__)
+
+#define DRM_CAS(lock,old,new,__ret)				\
+do {	register unsigned int __old __asm("o0");		\
+	register unsigned int __new __asm("o1");		\
+	register volatile unsigned int *__lock __asm("o2");	\
+	__old = old;						\
+	__new = new;						\
+	__lock = (volatile unsigned int *)lock;			\
+	__asm__ __volatile__(					\
+		/*"cas [%2], %3, %0"*/				\
+		".word 0xd3e29008\n\t"				\
+		/*"membar #StoreStore | #StoreLoad"*/		\
+		".word 0x8143e00a"				\
+		: "=&r" (__new)					\
+		: "0" (__new),					\
+		  "r" (__lock),					\
+		  "r" (__old)					\
+		: "memory");					\
+	__ret = (__new != __old);				\
+} while(0)
+
+#elif defined(__ia64__)
+
+#ifdef __INTEL_COMPILER
+/* this currently generates bad code (missing stop bits)... */
+#include <ia64intrin.h>
+
+#define DRM_CAS(lock,old,new,__ret)					      \
+	do {								      \
+		unsigned long __result, __old = (old) & 0xffffffff;		\
+		__mf();							      	\
+		__result = _InterlockedCompareExchange_acq(&__drm_dummy_lock(lock), (new), __old);\
+		__ret = (__result) != (__old);					\
+/*		__ret = (__sync_val_compare_and_swap(&__drm_dummy_lock(lock), \
+						     (old), (new))	      \
+			 != (old));					      */\
+	} while (0)
+
+#else
+#define DRM_CAS(lock,old,new,__ret)					  \
+	do {								  \
+		unsigned int __result, __old = (old);			  \
+		__asm__ __volatile__(					  \
+			"mf\n"						  \
+			"mov ar.ccv=%2\n"				  \
+			";;\n"						  \
+			"cmpxchg4.acq %0=%1,%3,ar.ccv"			  \
+			: "=r" (__result), "=m" (__drm_dummy_lock(lock))  \
+			: "r" ((unsigned long)__old), "r" (new)			  \
+			: "memory");					  \
+		__ret = (__result) != (__old);				  \
+	} while (0)
+
+#endif
+
+#elif defined(__powerpc__)
+
+#define DRM_CAS(lock,old,new,__ret)			\
+	do {						\
+		__asm__ __volatile__(			\
+			"sync;"				\
+			"0:    lwarx %0,0,%1;"		\
+			"      xor. %0,%3,%0;"		\
+			"      bne 1f;"			\
+			"      stwcx. %2,0,%1;"		\
+			"      bne- 0b;"		\
+			"1:    "			\
+			"sync;"				\
+		: "=&r"(__ret)				\
+		: "r"(lock), "r"(new), "r"(old)		\
+		: "cr0", "memory");			\
+	} while (0)
+
+# elif defined (__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
+	|| defined (__ARM_ARCH_6Z__) || defined(__ARM_ARCH_6ZK__) \
+	|| defined (__ARM_ARCH_6K__) || defined(__ARM_ARCH_6T2__) \
+	|| defined (__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
+	|| defined(__ARM_ARCH_7R__) || defined(__ARM_ARCH_7M__) \
+	|| defined(__ARM_ARCH_7EM__)
+       /* excluding ARMv4/ARMv5 and lower (lacking ldrex/strex support) */
+       #undef DRM_DEV_MODE
+       #define DRM_DEV_MODE     (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)
+
+       #define DRM_CAS(lock,old,new,__ret)             \
+       do {                                            \
+               __asm__ __volatile__ (                  \
+                       "1: ldrex %0, [%1]\n"           \
+                       "   teq %0, %2\n"               \
+                       "   ite eq\n"                   \
+                       "   strexeq %0, %3, [%1]\n"     \
+                       "   movne   %0, #1\n"           \
+               : "=&r" (__ret)                         \
+               : "r" (lock), "r" (old), "r" (new)      \
+               : "cc","memory");                       \
+       } while (0)
+
+#endif /* architecture */
+#endif /* __GNUC__ >= 2 */
+
+#ifndef DRM_CAS
+#define DRM_CAS(lock,old,new,ret) do { ret=1; } while (0) /* FAST LOCK FAILS */
+#endif
+
+#if defined(__alpha__)
+#define DRM_CAS_RESULT(_result)		long _result
+#elif defined(__powerpc__)
+#define DRM_CAS_RESULT(_result)		int _result
+#else
+#define DRM_CAS_RESULT(_result)		char _result
+#endif
+
+#define DRM_LIGHT_LOCK(fd,lock,context)                                \
+	do {                                                           \
+                DRM_CAS_RESULT(__ret);                                 \
+		DRM_CAS(lock,context,DRM_LOCK_HELD|context,__ret);     \
+                if (__ret) drmGetLock(fd,context,0);                   \
+        } while(0)
+
+				/* This one counts fast locks -- for
+                                   benchmarking only. */
+#define DRM_LIGHT_LOCK_COUNT(fd,lock,context,count)                    \
+	do {                                                           \
+                DRM_CAS_RESULT(__ret);                                 \
+		DRM_CAS(lock,context,DRM_LOCK_HELD|context,__ret);     \
+                if (__ret) drmGetLock(fd,context,0);                   \
+                else       ++count;                                    \
+        } while(0)
+
+#define DRM_LOCK(fd,lock,context,flags)                                \
+	do {                                                           \
+		if (flags) drmGetLock(fd,context,flags);               \
+		else       DRM_LIGHT_LOCK(fd,lock,context);            \
+	} while(0)
+
+#define DRM_UNLOCK(fd,lock,context)                                    \
+	do {                                                           \
+                DRM_CAS_RESULT(__ret);                                 \
+		DRM_CAS(lock,DRM_LOCK_HELD|context,context,__ret);     \
+                if (__ret) drmUnlock(fd,context);                      \
+        } while(0)
+
+				/* Simple spin locks */
+#define DRM_SPINLOCK(spin,val)                                         \
+	do {                                                           \
+            DRM_CAS_RESULT(__ret);                                     \
+	    do {                                                       \
+		DRM_CAS(spin,0,val,__ret);                             \
+		if (__ret) while ((spin)->lock);                       \
+	    } while (__ret);                                           \
+	} while(0)
+
+#define DRM_SPINLOCK_TAKE(spin,val)                                    \
+	do {                                                           \
+            DRM_CAS_RESULT(__ret);                                     \
+            int  cur;                                                  \
+	    do {                                                       \
+                cur = (*spin).lock;                                    \
+		DRM_CAS(spin,cur,val,__ret);                           \
+	    } while (__ret);                                           \
+	} while(0)
+
+#define DRM_SPINLOCK_COUNT(spin,val,count,__ret)                       \
+	do {                                                           \
+            int  __i;                                                  \
+            __ret = 1;                                                 \
+            for (__i = 0; __ret && __i < count; __i++) {               \
+		DRM_CAS(spin,0,val,__ret);                             \
+		if (__ret) for (;__i < count && (spin)->lock; __i++);  \
+	    }                                                          \
+	} while(0)
+
+#define DRM_SPINUNLOCK(spin,val)                                       \
+	do {                                                           \
+            DRM_CAS_RESULT(__ret);                                     \
+            if ((*spin).lock == val) { /* else server stole lock */    \
+	        do {                                                   \
+		    DRM_CAS(spin,val,0,__ret);                         \
+	        } while (__ret);                                       \
+            }                                                          \
+	} while(0)
+
+
+
+/* General user-level programmer's API: unprivileged */
+extern int           drmAvailable(void);
+extern int           drmOpen(const char *name, const char *busid);
+
+#define DRM_NODE_PRIMARY 0
+#define DRM_NODE_CONTROL 1
+#define DRM_NODE_RENDER  2
+#define DRM_NODE_MAX     3
+
+extern int           drmOpenWithType(const char *name, const char *busid,
+                                     int type);
+
+extern int           drmOpenControl(int minor);
+extern int           drmOpenRender(int minor);
+extern int           drmClose(int fd);
+extern drmVersionPtr drmGetVersion(int fd);
+extern drmVersionPtr drmGetLibVersion(int fd);
+extern int           drmGetCap(int fd, uint64_t capability, uint64_t *value);
+extern void          drmFreeVersion(drmVersionPtr);
+extern int           drmGetMagic(int fd, drm_magic_t * magic);
+extern char          *drmGetBusid(int fd);
+extern int           drmGetInterruptFromBusID(int fd, int busnum, int devnum,
+					      int funcnum);
+extern int           drmGetMap(int fd, int idx, drm_handle_t *offset,
+			       drmSize *size, drmMapType *type,
+			       drmMapFlags *flags, drm_handle_t *handle,
+			       int *mtrr);
+extern int           drmGetClient(int fd, int idx, int *auth, int *pid,
+				  int *uid, unsigned long *magic,
+				  unsigned long *iocs);
+extern int           drmGetStats(int fd, drmStatsT *stats);
+extern int           drmSetInterfaceVersion(int fd, drmSetVersion *version);
+extern int           drmCommandNone(int fd, unsigned long drmCommandIndex);
+extern int           drmCommandRead(int fd, unsigned long drmCommandIndex,
+                                    void *data, unsigned long size);
+extern int           drmCommandWrite(int fd, unsigned long drmCommandIndex,
+                                     void *data, unsigned long size);
+extern int           drmCommandWriteRead(int fd, unsigned long drmCommandIndex,
+                                         void *data, unsigned long size);
+
+/* General user-level programmer's API: X server (root) only  */
+extern void          drmFreeBusid(const char *busid);
+extern int           drmSetBusid(int fd, const char *busid);
+extern int           drmAuthMagic(int fd, drm_magic_t magic);
+extern int           drmAddMap(int fd,
+			       drm_handle_t offset,
+			       drmSize size,
+			       drmMapType type,
+			       drmMapFlags flags,
+			       drm_handle_t * handle);
+extern int	     drmRmMap(int fd, drm_handle_t handle);
+extern int	     drmAddContextPrivateMapping(int fd, drm_context_t ctx_id,
+						 drm_handle_t handle);
+
+extern int           drmAddBufs(int fd, int count, int size,
+				drmBufDescFlags flags,
+				int agp_offset);
+extern int           drmMarkBufs(int fd, double low, double high);
+extern int           drmCreateContext(int fd, drm_context_t * handle);
+extern int           drmSetContextFlags(int fd, drm_context_t context,
+					drm_context_tFlags flags);
+extern int           drmGetContextFlags(int fd, drm_context_t context,
+					drm_context_tFlagsPtr flags);
+extern int           drmAddContextTag(int fd, drm_context_t context, void *tag);
+extern int           drmDelContextTag(int fd, drm_context_t context);
+extern void          *drmGetContextTag(int fd, drm_context_t context);
+extern drm_context_t * drmGetReservedContextList(int fd, int *count);
+extern void          drmFreeReservedContextList(drm_context_t *);
+extern int           drmSwitchToContext(int fd, drm_context_t context);
+extern int           drmDestroyContext(int fd, drm_context_t handle);
+extern int           drmCreateDrawable(int fd, drm_drawable_t * handle);
+extern int           drmDestroyDrawable(int fd, drm_drawable_t handle);
+extern int           drmUpdateDrawableInfo(int fd, drm_drawable_t handle,
+					   drm_drawable_info_type_t type,
+					   unsigned int num, void *data);
+extern int           drmCtlInstHandler(int fd, int irq);
+extern int           drmCtlUninstHandler(int fd);
+extern int           drmSetClientCap(int fd, uint64_t capability,
+				     uint64_t value);
+
+extern int           drmCrtcGetSequence(int fd, uint32_t crtcId,
+					uint64_t *sequence, uint64_t *ns);
+extern int           drmCrtcQueueSequence(int fd, uint32_t crtcId,
+					  uint32_t flags, uint64_t sequence,
+					  uint64_t *sequence_queued,
+					  uint64_t user_data);
+/* General user-level programmer's API: authenticated client and/or X */
+extern int           drmMap(int fd,
+			    drm_handle_t handle,
+			    drmSize size,
+			    drmAddressPtr address);
+extern int           drmUnmap(drmAddress address, drmSize size);
+extern drmBufInfoPtr drmGetBufInfo(int fd);
+extern drmBufMapPtr  drmMapBufs(int fd);
+extern int           drmUnmapBufs(drmBufMapPtr bufs);
+extern int           drmDMA(int fd, drmDMAReqPtr request);
+extern int           drmFreeBufs(int fd, int count, int *list);
+extern int           drmGetLock(int fd,
+			        drm_context_t context,
+			        drmLockFlags flags);
+extern int           drmUnlock(int fd, drm_context_t context);
+extern int           drmFinish(int fd, int context, drmLockFlags flags);
+extern int	     drmGetContextPrivateMapping(int fd, drm_context_t ctx_id,
+						 drm_handle_t * handle);
+
+/* AGP/GART support: X server (root) only */
+extern int           drmAgpAcquire(int fd);
+extern int           drmAgpRelease(int fd);
+extern int           drmAgpEnable(int fd, unsigned long mode);
+extern int           drmAgpAlloc(int fd, unsigned long size,
+				 unsigned long type, unsigned long *address,
+				 drm_handle_t *handle);
+extern int           drmAgpFree(int fd, drm_handle_t handle);
+extern int 	     drmAgpBind(int fd, drm_handle_t handle,
+				unsigned long offset);
+extern int           drmAgpUnbind(int fd, drm_handle_t handle);
+
+/* AGP/GART info: authenticated client and/or X */
+extern int           drmAgpVersionMajor(int fd);
+extern int           drmAgpVersionMinor(int fd);
+extern unsigned long drmAgpGetMode(int fd);
+extern unsigned long drmAgpBase(int fd); /* Physical location */
+extern unsigned long drmAgpSize(int fd); /* Bytes */
+extern unsigned long drmAgpMemoryUsed(int fd);
+extern unsigned long drmAgpMemoryAvail(int fd);
+extern unsigned int  drmAgpVendorId(int fd);
+extern unsigned int  drmAgpDeviceId(int fd);
+
+/* PCI scatter/gather support: X server (root) only */
+extern int           drmScatterGatherAlloc(int fd, unsigned long size,
+					   drm_handle_t *handle);
+extern int           drmScatterGatherFree(int fd, drm_handle_t handle);
+
+extern int           drmWaitVBlank(int fd, drmVBlankPtr vbl);
+
+/* Support routines */
+extern void          drmSetServerInfo(drmServerInfoPtr info);
+extern int           drmError(int err, const char *label);
+extern void          *drmMalloc(int size);
+extern void          drmFree(void *pt);
+
+/* Hash table routines */
+extern void *drmHashCreate(void);
+extern int  drmHashDestroy(void *t);
+extern int  drmHashLookup(void *t, unsigned long key, void **value);
+extern int  drmHashInsert(void *t, unsigned long key, void *value);
+extern int  drmHashDelete(void *t, unsigned long key);
+extern int  drmHashFirst(void *t, unsigned long *key, void **value);
+extern int  drmHashNext(void *t, unsigned long *key, void **value);
+
+/* PRNG routines */
+extern void          *drmRandomCreate(unsigned long seed);
+extern int           drmRandomDestroy(void *state);
+extern unsigned long drmRandom(void *state);
+extern double        drmRandomDouble(void *state);
+
+/* Skip list routines */
+
+extern void *drmSLCreate(void);
+extern int  drmSLDestroy(void *l);
+extern int  drmSLLookup(void *l, unsigned long key, void **value);
+extern int  drmSLInsert(void *l, unsigned long key, void *value);
+extern int  drmSLDelete(void *l, unsigned long key);
+extern int  drmSLNext(void *l, unsigned long *key, void **value);
+extern int  drmSLFirst(void *l, unsigned long *key, void **value);
+extern void drmSLDump(void *l);
+extern int  drmSLLookupNeighbors(void *l, unsigned long key,
+				 unsigned long *prev_key, void **prev_value,
+				 unsigned long *next_key, void **next_value);
+
+extern int drmOpenOnce(void *unused, const char *BusID, int *newlyopened);
+extern int drmOpenOnceWithType(const char *BusID, int *newlyopened, int type);
+extern void drmCloseOnce(int fd);
+extern void drmMsg(const char *format, ...) DRM_PRINTFLIKE(1, 2);
+
+extern int drmSetMaster(int fd);
+extern int drmDropMaster(int fd);
+extern int drmIsMaster(int fd);
+
+#define DRM_EVENT_CONTEXT_VERSION 4
+
+typedef struct _drmEventContext {
+
+	/* This struct is versioned so we can add more pointers if we
+	 * add more events. */
+	int version;
+
+	void (*vblank_handler)(int fd,
+			       unsigned int sequence,
+			       unsigned int tv_sec,
+			       unsigned int tv_usec,
+			       void *user_data);
+
+	void (*page_flip_handler)(int fd,
+				  unsigned int sequence,
+				  unsigned int tv_sec,
+				  unsigned int tv_usec,
+				  void *user_data);
+
+	void (*page_flip_handler2)(int fd,
+				   unsigned int sequence,
+				   unsigned int tv_sec,
+				   unsigned int tv_usec,
+				   unsigned int crtc_id,
+				   void *user_data);
+
+	void (*sequence_handler)(int fd,
+				 uint64_t sequence,
+				 uint64_t ns,
+				 uint64_t user_data);
+} drmEventContext, *drmEventContextPtr;
+
+extern int drmHandleEvent(int fd, drmEventContextPtr evctx);
+
+extern char *drmGetDeviceNameFromFd(int fd);
+
+/* Improved version of drmGetDeviceNameFromFd which attributes for any type of
+ * device/node - card, control or renderD.
+ */
+extern char *drmGetDeviceNameFromFd2(int fd);
+extern int drmGetNodeTypeFromFd(int fd);
+
+/* Convert between GEM handles and DMA-BUF file descriptors.
+ *
+ * Warning: since GEM handles are not reference-counted and are unique per
+ * DRM file description, the caller is expected to perform its own reference
+ * counting. drmPrimeFDToHandle is guaranteed to return the same handle for
+ * different FDs if they reference the same underlying buffer object. This
+ * could even be a buffer object originally created on the same DRM FD.
+ *
+ * When sharing a DRM FD with an API such as EGL or GBM, the caller must not
+ * use drmPrimeHandleToFD nor drmPrimeFDToHandle. A single user-space
+ * reference-counting implementation is necessary to avoid double-closing GEM
+ * handles.
+ *
+ * Two processes can't share the same DRM FD and both use it to create or
+ * import GEM handles, even when using a single user-space reference-counting
+ * implementation like GBM, because GBM doesn't share its state between
+ * processes.
+ */
+extern int drmPrimeHandleToFD(int fd, uint32_t handle, uint32_t flags, int *prime_fd);
+extern int drmPrimeFDToHandle(int fd, int prime_fd, uint32_t *handle);
+
+extern int drmCloseBufferHandle(int fd, uint32_t handle);
+
+extern char *drmGetPrimaryDeviceNameFromFd(int fd);
+extern char *drmGetRenderDeviceNameFromFd(int fd);
+
+#define DRM_BUS_PCI       0
+#define DRM_BUS_USB       1
+#define DRM_BUS_PLATFORM  2
+#define DRM_BUS_HOST1X    3
+
+typedef struct _drmPciBusInfo {
+    uint16_t domain;
+    uint8_t bus;
+    uint8_t dev;
+    uint8_t func;
+} drmPciBusInfo, *drmPciBusInfoPtr;
+
+typedef struct _drmPciDeviceInfo {
+    uint16_t vendor_id;
+    uint16_t device_id;
+    uint16_t subvendor_id;
+    uint16_t subdevice_id;
+    uint8_t revision_id;
+} drmPciDeviceInfo, *drmPciDeviceInfoPtr;
+
+typedef struct _drmUsbBusInfo {
+    uint8_t bus;
+    uint8_t dev;
+} drmUsbBusInfo, *drmUsbBusInfoPtr;
+
+typedef struct _drmUsbDeviceInfo {
+    uint16_t vendor;
+    uint16_t product;
+} drmUsbDeviceInfo, *drmUsbDeviceInfoPtr;
+
+#define DRM_PLATFORM_DEVICE_NAME_LEN 512
+
+typedef struct _drmPlatformBusInfo {
+    char fullname[DRM_PLATFORM_DEVICE_NAME_LEN];
+} drmPlatformBusInfo, *drmPlatformBusInfoPtr;
+
+typedef struct _drmPlatformDeviceInfo {
+    char **compatible; /* NULL terminated list of compatible strings */
+} drmPlatformDeviceInfo, *drmPlatformDeviceInfoPtr;
+
+#define DRM_HOST1X_DEVICE_NAME_LEN 512
+
+typedef struct _drmHost1xBusInfo {
+    char fullname[DRM_HOST1X_DEVICE_NAME_LEN];
+} drmHost1xBusInfo, *drmHost1xBusInfoPtr;
+
+typedef struct _drmHost1xDeviceInfo {
+    char **compatible; /* NULL terminated list of compatible strings */
+} drmHost1xDeviceInfo, *drmHost1xDeviceInfoPtr;
+
+typedef struct _drmDevice {
+    char **nodes; /* DRM_NODE_MAX sized array */
+    int available_nodes; /* DRM_NODE_* bitmask */
+    int bustype;
+    union {
+        drmPciBusInfoPtr pci;
+        drmUsbBusInfoPtr usb;
+        drmPlatformBusInfoPtr platform;
+        drmHost1xBusInfoPtr host1x;
+    } businfo;
+    union {
+        drmPciDeviceInfoPtr pci;
+        drmUsbDeviceInfoPtr usb;
+        drmPlatformDeviceInfoPtr platform;
+        drmHost1xDeviceInfoPtr host1x;
+    } deviceinfo;
+} drmDevice, *drmDevicePtr;
+
+extern int drmGetDevice(int fd, drmDevicePtr *device);
+extern void drmFreeDevice(drmDevicePtr *device);
+
+extern int drmGetDevices(drmDevicePtr devices[], int max_devices);
+extern void drmFreeDevices(drmDevicePtr devices[], int count);
+
+#define DRM_DEVICE_GET_PCI_REVISION (1 << 0)
+extern int drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device);
+extern int drmGetDevices2(uint32_t flags, drmDevicePtr devices[], int max_devices);
+
+extern int drmGetDeviceFromDevId(dev_t dev_id, uint32_t flags, drmDevicePtr *device);
+
+extern int drmDevicesEqual(drmDevicePtr a, drmDevicePtr b);
+
+extern int drmSyncobjCreate(int fd, uint32_t flags, uint32_t *handle);
+extern int drmSyncobjDestroy(int fd, uint32_t handle);
+extern int drmSyncobjHandleToFD(int fd, uint32_t handle, int *obj_fd);
+extern int drmSyncobjFDToHandle(int fd, int obj_fd, uint32_t *handle);
+
+extern int drmSyncobjImportSyncFile(int fd, uint32_t handle, int sync_file_fd);
+extern int drmSyncobjExportSyncFile(int fd, uint32_t handle, int *sync_file_fd);
+extern int drmSyncobjWait(int fd, uint32_t *handles, unsigned num_handles,
+			  int64_t timeout_nsec, unsigned flags,
+			  uint32_t *first_signaled);
+extern int drmSyncobjReset(int fd, const uint32_t *handles, uint32_t handle_count);
+extern int drmSyncobjSignal(int fd, const uint32_t *handles, uint32_t handle_count);
+extern int drmSyncobjTimelineSignal(int fd, const uint32_t *handles,
+				    uint64_t *points, uint32_t handle_count);
+extern int drmSyncobjTimelineWait(int fd, uint32_t *handles, uint64_t *points,
+				  unsigned num_handles,
+				  int64_t timeout_nsec, unsigned flags,
+				  uint32_t *first_signaled);
+extern int drmSyncobjQuery(int fd, uint32_t *handles, uint64_t *points,
+			   uint32_t handle_count);
+extern int drmSyncobjQuery2(int fd, uint32_t *handles, uint64_t *points,
+			    uint32_t handle_count, uint32_t flags);
+extern int drmSyncobjTransfer(int fd,
+			      uint32_t dst_handle, uint64_t dst_point,
+			      uint32_t src_handle, uint64_t src_point,
+			      uint32_t flags);
+
+extern char *
+drmGetFormatModifierVendor(uint64_t modifier);
+
+extern char *
+drmGetFormatModifierName(uint64_t modifier);
+
+#ifndef fourcc_mod_get_vendor
+#define fourcc_mod_get_vendor(modifier) \
+       (((modifier) >> 56) & 0xff)
+#endif
+
+#if defined(__cplusplus)
+}
+#endif
+
+#endif
diff --git a/third_party/drm/libdrm/moz.build b/third_party/drm/libdrm/moz.build
new file mode 100644
index 0000000000..3b37b913e8
--- /dev/null
+++ b/third_party/drm/libdrm/moz.build
@@ -0,0 +1,16 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+SOURCES += [
+    'mozdrm.cpp',
+]
+
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
+    CXXFLAGS += CONFIG['MOZ_GTK3_CFLAGS']
+
+LOCAL_INCLUDES += ['/third_party/drm']
+
+FINAL_LIBRARY = 'xul'
diff --git a/third_party/drm/libdrm/mozdrm.cpp b/third_party/drm/libdrm/mozdrm.cpp
new file mode 100644
index 0000000000..b2fb59be64
--- /dev/null
+++ b/third_party/drm/libdrm/mozdrm.cpp
@@ -0,0 +1,66 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "mozilla/Types.h"
+#include "prlink.h"
+
+#include <drm/xf86drm.h>
+
+#define GET_FUNC(func, lib)                                  \
+    func##_fn =                                              \
+      (decltype(func##_fn))PR_FindFunctionSymbol(lib, #func) \
+
+#define IS_FUNC_LOADED(func)                                          \
+    (func != nullptr)                                                 \
+
+static int (*drmGetDevices2_fn)(uint32_t flags, drmDevicePtr devices[], int max_devices);
+static void (*drmFreeDevices_fn)(drmDevicePtr devices[], int count);
+
+bool IsDRMLibraryLoaded() {
+  static bool isLoaded =
+         (IS_FUNC_LOADED(drmGetDevices2_fn) &&
+          IS_FUNC_LOADED(drmFreeDevices_fn));
+
+  return isLoaded;
+}
+
+bool LoadDRMLibrary() {
+  static PRLibrary* drmLib = nullptr;
+  static bool drmInitialized = false;
+
+  //TODO Thread safe
+  if (!drmInitialized) {
+    drmInitialized = true;
+    drmLib = PR_LoadLibrary("libdrm.so.2");
+    if (!drmLib) {
+      return false;
+    }
+
+    GET_FUNC(drmGetDevices2, drmLib);
+    GET_FUNC(drmFreeDevices, drmLib);
+  }
+
+  return IsDRMLibraryLoaded();
+}
+
+int
+drmGetDevices2(uint32_t flags, drmDevicePtr devices[], int max_devices)
+{
+  if (!LoadDRMLibrary()) {
+    return 0;
+  }
+  return drmGetDevices2_fn(flags, devices, max_devices);
+}
+
+void
+drmFreeDevices(drmDevicePtr devices[], int count)
+{
+  if (!LoadDRMLibrary()) {
+    return;
+  }
+  return drmFreeDevices_fn(devices, count);
+}
diff --git a/third_party/epoxy/README b/third_party/epoxy/README
new file mode 100644
index 0000000000..f34b335fa4
--- /dev/null
+++ b/third_party/epoxy/README
@@ -0,0 +1,4 @@
+Libepoxy is a epoxy library wrapper needed to build and run Firefox with
+Pipewire support on Linux (https://github.com/anholt/libepoxy).
+
+libepoxy directory stores headers of libepoxy needed for build only.
diff --git a/third_party/epoxy/epoxy/common.h b/third_party/epoxy/epoxy/common.h
new file mode 100644
index 0000000000..41fc5eef9e
--- /dev/null
+++ b/third_party/epoxy/epoxy/common.h
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2017  Emmanuele Bassi
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/** @file common.h
+ *
+ * A common header file, used to define macros and shared symbols.
+ */
+
+#ifndef EPOXY_COMMON_H
+#define EPOXY_COMMON_H
+
+#ifdef __cplusplus
+# define EPOXY_BEGIN_DECLS      extern "C" {
+# define EPOXY_END_DECLS        }
+#else
+# define EPOXY_BEGIN_DECLS
+# define EPOXY_END_DECLS
+#endif
+
+#ifndef EPOXY_PUBLIC
+# if defined(_MSC_VER)
+#  define EPOXY_PUBLIC __declspec(dllimport) extern
+# else
+#  define EPOXY_PUBLIC extern
+# endif
+#endif
+
+#if defined(_MSC_VER) && !defined(__bool_true_false_are_defined) && (_MSC_VER < 1800)
+typedef unsigned char bool;
+# define false 0
+# define true 1
+#else
+# include <stdbool.h>
+#endif
+
+EPOXY_BEGIN_DECLS
+
+EPOXY_PUBLIC bool epoxy_extension_in_string(const char *extension_list,
+                                            const char *ext);
+
+EPOXY_END_DECLS
+
+#endif /* EPOXY_COMMON_H */
diff --git a/third_party/epoxy/epoxy/egl.h b/third_party/epoxy/epoxy/egl.h
new file mode 100644
index 0000000000..b5f8ee014f
--- /dev/null
+++ b/third_party/epoxy/epoxy/egl.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright © 2013 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/** @file egl.h
+ *
+ * Provides an implementation of an EGL dispatch layer using global
+ * function pointers
+ *
+ * You should include `<epoxy/egl.h>` instead of `<EGL/egl.h>`.
+ */
+
+#ifndef EPOXY_EGL_H
+#define EPOXY_EGL_H
+
+#include "epoxy/common.h"
+
+#if defined(__egl_h_) || defined(__eglext_h_)
+#error epoxy/egl.h must be included before (or in place of) GL/egl.h
+#else
+#define __egl_h_
+#define __eglext_h_
+#endif
+
+EPOXY_BEGIN_DECLS
+
+#include "epoxy/egl_generated.h"
+
+EPOXY_PUBLIC bool epoxy_has_egl_extension(EGLDisplay dpy, const char *extension);
+EPOXY_PUBLIC int epoxy_egl_version(EGLDisplay dpy);
+EPOXY_PUBLIC bool epoxy_has_egl(void);
+
+EPOXY_END_DECLS
+
+#endif /* EPOXY_EGL_H */
diff --git a/third_party/epoxy/epoxy/egl_generated.h b/third_party/epoxy/epoxy/egl_generated.h
new file mode 100644
index 0000000000..2541ec291e
--- /dev/null
+++ b/third_party/epoxy/epoxy/egl_generated.h
@@ -0,0 +1,1439 @@
+/* GL dispatch header.
+ * This is code-generated from the GL API XML files from Khronos.
+ */
+
+#pragma once
+#include <inttypes.h>
+#include <stddef.h>
+
+#include "epoxy/common.h"
+#include "epoxy/gl.h"
+#include "eglplatform.h"
+#ifndef EGL_CAST
+#if defined(__cplusplus)
+#define EGL_CAST(type, value) (static_cast<type>(value))
+#else
+#define EGL_CAST(type, value) ((type) (value))
+#endif
+#endif
+struct AHardwareBuffer;
+typedef unsigned int EGLBoolean;
+typedef unsigned int EGLenum;
+typedef intptr_t EGLAttribKHR;
+typedef intptr_t EGLAttrib;
+typedef void *EGLClientBuffer;
+typedef void *EGLConfig;
+typedef void *EGLContext;
+typedef void *EGLDeviceEXT;
+typedef void *EGLDisplay;
+typedef void *EGLImage;
+typedef void *EGLImageKHR;
+typedef void *EGLLabelKHR;
+typedef void *EGLObjectKHR;
+typedef void *EGLOutputLayerEXT;
+typedef void *EGLOutputPortEXT;
+typedef void *EGLStreamKHR;
+typedef void *EGLSurface;
+typedef void *EGLSync;
+typedef void *EGLSyncKHR;
+typedef void *EGLSyncNV;
+typedef void (*__eglMustCastToProperFunctionPointerType)(void);
+typedef khronos_utime_nanoseconds_t EGLTimeKHR;
+typedef khronos_utime_nanoseconds_t EGLTime;
+typedef khronos_utime_nanoseconds_t EGLTimeNV;
+typedef khronos_utime_nanoseconds_t EGLuint64NV;
+typedef khronos_uint64_t EGLuint64KHR;
+typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
+typedef int EGLNativeFileDescriptorKHR;
+typedef khronos_ssize_t EGLsizeiANDROID;
+typedef void (*EGLSetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, const void *value, EGLsizeiANDROID valueSize);
+typedef EGLsizeiANDROID (*EGLGetBlobFuncANDROID) (const void *key, EGLsizeiANDROID keySize, void *value, EGLsizeiANDROID valueSize);
+struct EGLClientPixmapHI {
+    void  *pData;
+    EGLint iWidth;
+    EGLint iHeight;
+    EGLint iStride;
+};
+typedef void (APIENTRY *EGLDEBUGPROCKHR)(EGLenum error,const char *command,EGLint messageType,EGLLabelKHR threadLabel,EGLLabelKHR objectLabel,const char* message);
+
+#define EGL_VERSION_1_0 1
+#define EGL_VERSION_1_1 1
+#define EGL_VERSION_1_2 1
+#define EGL_VERSION_1_3 1
+#define EGL_VERSION_1_4 1
+#define EGL_VERSION_1_5 1
+
+#define EGL_ANDROID_GLES_layers 1
+#define EGL_ANDROID_blob_cache 1
+#define EGL_ANDROID_create_native_client_buffer 1
+#define EGL_ANDROID_framebuffer_target 1
+#define EGL_ANDROID_front_buffer_auto_refresh 1
+#define EGL_ANDROID_get_frame_timestamps 1
+#define EGL_ANDROID_get_native_client_buffer 1
+#define EGL_ANDROID_image_native_buffer 1
+#define EGL_ANDROID_native_fence_sync 1
+#define EGL_ANDROID_presentation_time 1
+#define EGL_ANDROID_recordable 1
+#define EGL_ANGLE_d3d_share_handle_client_buffer 1
+#define EGL_ANGLE_device_d3d 1
+#define EGL_ANGLE_query_surface_pointer 1
+#define EGL_ANGLE_surface_d3d_texture_2d_share_handle 1
+#define EGL_ANGLE_window_fixed_size 1
+#define EGL_ARM_implicit_external_sync 1
+#define EGL_ARM_pixmap_multisample_discard 1
+#define EGL_EXT_bind_to_front 1
+#define EGL_EXT_buffer_age 1
+#define EGL_EXT_client_extensions 1
+#define EGL_EXT_client_sync 1
+#define EGL_EXT_compositor 1
+#define EGL_EXT_create_context_robustness 1
+#define EGL_EXT_device_base 1
+#define EGL_EXT_device_drm 1
+#define EGL_EXT_device_enumeration 1
+#define EGL_EXT_device_openwf 1
+#define EGL_EXT_device_query 1
+#define EGL_EXT_gl_colorspace_bt2020_linear 1
+#define EGL_EXT_gl_colorspace_bt2020_pq 1
+#define EGL_EXT_gl_colorspace_display_p3 1
+#define EGL_EXT_gl_colorspace_display_p3_linear 1
+#define EGL_EXT_gl_colorspace_display_p3_passthrough 1
+#define EGL_EXT_gl_colorspace_scrgb 1
+#define EGL_EXT_gl_colorspace_scrgb_linear 1
+#define EGL_EXT_image_dma_buf_import 1
+#define EGL_EXT_image_dma_buf_import_modifiers 1
+#define EGL_EXT_image_gl_colorspace 1
+#define EGL_EXT_image_implicit_sync_control 1
+#define EGL_EXT_multiview_window 1
+#define EGL_EXT_output_base 1
+#define EGL_EXT_output_drm 1
+#define EGL_EXT_output_openwf 1
+#define EGL_EXT_pixel_format_float 1
+#define EGL_EXT_platform_base 1
+#define EGL_EXT_platform_device 1
+#define EGL_EXT_platform_wayland 1
+#define EGL_EXT_platform_x11 1
+#define EGL_EXT_protected_content 1
+#define EGL_EXT_protected_surface 1
+#define EGL_EXT_stream_consumer_egloutput 1
+#define EGL_EXT_surface_CTA861_3_metadata 1
+#define EGL_EXT_surface_SMPTE2086_metadata 1
+#define EGL_EXT_swap_buffers_with_damage 1
+#define EGL_EXT_sync_reuse 1
+#define EGL_EXT_yuv_surface 1
+#define EGL_HI_clientpixmap 1
+#define EGL_HI_colorformats 1
+#define EGL_IMG_context_priority 1
+#define EGL_IMG_image_plane_attribs 1
+#define EGL_KHR_cl_event 1
+#define EGL_KHR_cl_event2 1
+#define EGL_KHR_client_get_all_proc_addresses 1
+#define EGL_KHR_config_attribs 1
+#define EGL_KHR_context_flush_control 1
+#define EGL_KHR_create_context 1
+#define EGL_KHR_create_context_no_error 1
+#define EGL_KHR_debug 1
+#define EGL_KHR_display_reference 1
+#define EGL_KHR_fence_sync 1
+#define EGL_KHR_get_all_proc_addresses 1
+#define EGL_KHR_gl_colorspace 1
+#define EGL_KHR_gl_renderbuffer_image 1
+#define EGL_KHR_gl_texture_2D_image 1
+#define EGL_KHR_gl_texture_3D_image 1
+#define EGL_KHR_gl_texture_cubemap_image 1
+#define EGL_KHR_image 1
+#define EGL_KHR_image_base 1
+#define EGL_KHR_image_pixmap 1
+#define EGL_KHR_lock_surface 1
+#define EGL_KHR_lock_surface2 1
+#define EGL_KHR_lock_surface3 1
+#define EGL_KHR_mutable_render_buffer 1
+#define EGL_KHR_no_config_context 1
+#define EGL_KHR_partial_update 1
+#define EGL_KHR_platform_android 1
+#define EGL_KHR_platform_gbm 1
+#define EGL_KHR_platform_wayland 1
+#define EGL_KHR_platform_x11 1
+#define EGL_KHR_reusable_sync 1
+#define EGL_KHR_stream 1
+#define EGL_KHR_stream_attrib 1
+#define EGL_KHR_stream_consumer_gltexture 1
+#define EGL_KHR_stream_cross_process_fd 1
+#define EGL_KHR_stream_fifo 1
+#define EGL_KHR_stream_producer_aldatalocator 1
+#define EGL_KHR_stream_producer_eglsurface 1
+#define EGL_KHR_surfaceless_context 1
+#define EGL_KHR_swap_buffers_with_damage 1
+#define EGL_KHR_vg_parent_image 1
+#define EGL_KHR_wait_sync 1
+#define EGL_MESA_drm_image 1
+#define EGL_MESA_image_dma_buf_export 1
+#define EGL_MESA_platform_gbm 1
+#define EGL_MESA_platform_surfaceless 1
+#define EGL_MESA_query_driver 1
+#define EGL_NOK_swap_region 1
+#define EGL_NOK_swap_region2 1
+#define EGL_NOK_texture_from_pixmap 1
+#define EGL_NV_3dvision_surface 1
+#define EGL_NV_context_priority_realtime 1
+#define EGL_NV_coverage_sample 1
+#define EGL_NV_coverage_sample_resolve 1
+#define EGL_NV_cuda_event 1
+#define EGL_NV_depth_nonlinear 1
+#define EGL_NV_device_cuda 1
+#define EGL_NV_native_query 1
+#define EGL_NV_post_convert_rounding 1
+#define EGL_NV_post_sub_buffer 1
+#define EGL_NV_quadruple_buffer 1
+#define EGL_NV_robustness_video_memory_purge 1
+#define EGL_NV_stream_consumer_gltexture_yuv 1
+#define EGL_NV_stream_cross_display 1
+#define EGL_NV_stream_cross_object 1
+#define EGL_NV_stream_cross_partition 1
+#define EGL_NV_stream_cross_process 1
+#define EGL_NV_stream_cross_system 1
+#define EGL_NV_stream_dma 1
+#define EGL_NV_stream_fifo_next 1
+#define EGL_NV_stream_fifo_synchronous 1
+#define EGL_NV_stream_flush 1
+#define EGL_NV_stream_frame_limits 1
+#define EGL_NV_stream_metadata 1
+#define EGL_NV_stream_origin 1
+#define EGL_NV_stream_remote 1
+#define EGL_NV_stream_reset 1
+#define EGL_NV_stream_socket 1
+#define EGL_NV_stream_socket_inet 1
+#define EGL_NV_stream_socket_unix 1
+#define EGL_NV_stream_sync 1
+#define EGL_NV_sync 1
+#define EGL_NV_system_time 1
+#define EGL_NV_triple_buffer 1
+#define EGL_TIZEN_image_native_buffer 1
+#define EGL_TIZEN_image_native_surface 1
+
+#define EGL_NO_NATIVE_FENCE_FD_ANDROID                       -1
+#define EGL_CONTEXT_RELEASE_BEHAVIOR_NONE_KHR                0
+#define EGL_DEPTH_ENCODING_NONE_NV                           0
+#define EGL_FALSE                                            0
+#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT                  0x00000001
+#define EGL_CONTEXT_OPENGL_CORE_PROFILE_BIT_KHR              0x00000001
+#define EGL_CONTEXT_OPENGL_DEBUG_BIT_KHR                     0x00000001
+#define EGL_DRM_BUFFER_USE_SCANOUT_MESA                      0x00000001
+#define EGL_NATIVE_BUFFER_USAGE_PROTECTED_BIT_ANDROID        0x00000001
+#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT         0x00000002
+#define EGL_CONTEXT_OPENGL_COMPATIBILITY_PROFILE_BIT_KHR     0x00000002
+#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE_BIT_KHR        0x00000002
+#define EGL_DRM_BUFFER_USE_SHARE_MESA                        0x00000002
+#define EGL_NATIVE_BUFFER_USAGE_RENDERBUFFER_BIT_ANDROID     0x00000002
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_BIT_KHR             0x00000004
+#define EGL_DRM_BUFFER_USE_CURSOR_MESA                       0x00000004
+#define EGL_NATIVE_BUFFER_USAGE_TEXTURE_BIT_ANDROID          0x00000004
+#define EGL_OPENGL_ES3_BIT                                   0x00000040
+#define EGL_OPENGL_ES3_BIT_KHR                               0x00000040
+#define EGL_OPENGL_ES_BIT                                    0x0001
+#define EGL_PBUFFER_BIT                                      0x0001
+#define EGL_READ_SURFACE_BIT_KHR                             0x0001
+#define EGL_SYNC_FLUSH_COMMANDS_BIT                          0x0001
+#define EGL_SYNC_FLUSH_COMMANDS_BIT_KHR                      0x0001
+#define EGL_SYNC_FLUSH_COMMANDS_BIT_NV                       0x0001
+#define EGL_OPENVG_BIT                                       0x0002
+#define EGL_PIXMAP_BIT                                       0x0002
+#define EGL_WRITE_SURFACE_BIT_KHR                            0x0002
+#define EGL_OPENGL_ES2_BIT                                   0x0004
+#define EGL_WINDOW_BIT                                       0x0004
+#define EGL_OPENGL_BIT                                       0x0008
+#define EGL_PBUFFER_IMAGE_BIT_TAO                            0x0008
+#define EGL_INTEROP_BIT_KHR                                  0x0010
+#define EGL_PBUFFER_PALETTE_IMAGE_BIT_TAO                    0x0010
+#define EGL_OPENMAX_IL_BIT_KHR                               0x0020
+#define EGL_VG_COLORSPACE_LINEAR_BIT                         0x0020
+#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR                     0x0020
+#define EGL_VG_ALPHA_FORMAT_PRE_BIT                          0x0040
+#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR                      0x0040
+#define EGL_LOCK_SURFACE_BIT_KHR                             0x0080
+#define EGL_OPTIMAL_FORMAT_BIT_KHR                           0x0100
+#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT                      0x0200
+#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT                      0x0400
+#define EGL_STREAM_BIT_KHR                                   0x0800
+#define EGL_MUTABLE_RENDER_BUFFER_BIT_KHR                    0x1000
+#define EGL_CONTEXT_RELEASE_BEHAVIOR_KHR                     0x2097
+#define EGL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR               0x2098
+#define EGL_SUCCESS                                          0x3000
+#define EGL_NOT_INITIALIZED                                  0x3001
+#define EGL_BAD_ACCESS                                       0x3002
+#define EGL_BAD_ALLOC                                        0x3003
+#define EGL_BAD_ATTRIBUTE                                    0x3004
+#define EGL_BAD_CONFIG                                       0x3005
+#define EGL_BAD_CONTEXT                                      0x3006
+#define EGL_BAD_CURRENT_SURFACE                              0x3007
+#define EGL_BAD_DISPLAY                                      0x3008
+#define EGL_BAD_MATCH                                        0x3009
+#define EGL_BAD_NATIVE_PIXMAP                                0x300A
+#define EGL_BAD_NATIVE_WINDOW                                0x300B
+#define EGL_BAD_PARAMETER                                    0x300C
+#define EGL_BAD_SURFACE                                      0x300D
+#define EGL_CONTEXT_LOST                                     0x300E
+#define EGL_BUFFER_SIZE                                      0x3020
+#define EGL_ALPHA_SIZE                                       0x3021
+#define EGL_BLUE_SIZE                                        0x3022
+#define EGL_GREEN_SIZE                                       0x3023
+#define EGL_RED_SIZE                                         0x3024
+#define EGL_DEPTH_SIZE                                       0x3025
+#define EGL_STENCIL_SIZE                                     0x3026
+#define EGL_CONFIG_CAVEAT                                    0x3027
+#define EGL_CONFIG_ID                                        0x3028
+#define EGL_LEVEL                                            0x3029
+#define EGL_MAX_PBUFFER_HEIGHT                               0x302A
+#define EGL_MAX_PBUFFER_PIXELS                               0x302B
+#define EGL_MAX_PBUFFER_WIDTH                                0x302C
+#define EGL_NATIVE_RENDERABLE                                0x302D
+#define EGL_NATIVE_VISUAL_ID                                 0x302E
+#define EGL_NATIVE_VISUAL_TYPE                               0x302F
+#define EGL_SAMPLES                                          0x3031
+#define EGL_SAMPLE_BUFFERS                                   0x3032
+#define EGL_SURFACE_TYPE                                     0x3033
+#define EGL_TRANSPARENT_TYPE                                 0x3034
+#define EGL_TRANSPARENT_BLUE_VALUE                           0x3035
+#define EGL_TRANSPARENT_GREEN_VALUE                          0x3036
+#define EGL_TRANSPARENT_RED_VALUE                            0x3037
+#define EGL_NONE                                             0x3038
+#define EGL_BIND_TO_TEXTURE_RGB                              0x3039
+#define EGL_BIND_TO_TEXTURE_RGBA                             0x303A
+#define EGL_MIN_SWAP_INTERVAL                                0x303B
+#define EGL_MAX_SWAP_INTERVAL                                0x303C
+#define EGL_LUMINANCE_SIZE                                   0x303D
+#define EGL_ALPHA_MASK_SIZE                                  0x303E
+#define EGL_COLOR_BUFFER_TYPE                                0x303F
+#define EGL_RENDERABLE_TYPE                                  0x3040
+#define EGL_MATCH_NATIVE_PIXMAP                              0x3041
+#define EGL_CONFORMANT                                       0x3042
+#define EGL_CONFORMANT_KHR                                   0x3042
+#define EGL_MATCH_FORMAT_KHR                                 0x3043
+#define EGL_SLOW_CONFIG                                      0x3050
+#define EGL_NON_CONFORMANT_CONFIG                            0x3051
+#define EGL_TRANSPARENT_RGB                                  0x3052
+#define EGL_VENDOR                                           0x3053
+#define EGL_VERSION                                          0x3054
+#define EGL_EXTENSIONS                                       0x3055
+#define EGL_HEIGHT                                           0x3056
+#define EGL_WIDTH                                            0x3057
+#define EGL_LARGEST_PBUFFER                                  0x3058
+#define EGL_DRAW                                             0x3059
+#define EGL_READ                                             0x305A
+#define EGL_CORE_NATIVE_ENGINE                               0x305B
+#define EGL_NO_TEXTURE                                       0x305C
+#define EGL_TEXTURE_RGB                                      0x305D
+#define EGL_TEXTURE_RGBA                                     0x305E
+#define EGL_TEXTURE_2D                                       0x305F
+#define EGL_Y_INVERTED_NOK                                   0x307F
+#define EGL_TEXTURE_FORMAT                                   0x3080
+#define EGL_TEXTURE_TARGET                                   0x3081
+#define EGL_MIPMAP_TEXTURE                                   0x3082
+#define EGL_MIPMAP_LEVEL                                     0x3083
+#define EGL_BACK_BUFFER                                      0x3084
+#define EGL_SINGLE_BUFFER                                    0x3085
+#define EGL_RENDER_BUFFER                                    0x3086
+#define EGL_COLORSPACE                                       0x3087
+#define EGL_VG_COLORSPACE                                    0x3087
+#define EGL_ALPHA_FORMAT                                     0x3088
+#define EGL_VG_ALPHA_FORMAT                                  0x3088
+#define EGL_COLORSPACE_sRGB                                  0x3089
+#define EGL_GL_COLORSPACE_SRGB                               0x3089
+#define EGL_GL_COLORSPACE_SRGB_KHR                           0x3089
+#define EGL_VG_COLORSPACE_sRGB                               0x3089
+#define EGL_COLORSPACE_LINEAR                                0x308A
+#define EGL_GL_COLORSPACE_LINEAR                             0x308A
+#define EGL_GL_COLORSPACE_LINEAR_KHR                         0x308A
+#define EGL_VG_COLORSPACE_LINEAR                             0x308A
+#define EGL_ALPHA_FORMAT_NONPRE                              0x308B
+#define EGL_VG_ALPHA_FORMAT_NONPRE                           0x308B
+#define EGL_ALPHA_FORMAT_PRE                                 0x308C
+#define EGL_VG_ALPHA_FORMAT_PRE                              0x308C
+#define EGL_CLIENT_APIS                                      0x308D
+#define EGL_RGB_BUFFER                                       0x308E
+#define EGL_LUMINANCE_BUFFER                                 0x308F
+#define EGL_HORIZONTAL_RESOLUTION                            0x3090
+#define EGL_VERTICAL_RESOLUTION                              0x3091
+#define EGL_PIXEL_ASPECT_RATIO                               0x3092
+#define EGL_SWAP_BEHAVIOR                                    0x3093
+#define EGL_BUFFER_PRESERVED                                 0x3094
+#define EGL_BUFFER_DESTROYED                                 0x3095
+#define EGL_OPENVG_IMAGE                                     0x3096
+#define EGL_CONTEXT_CLIENT_TYPE                              0x3097
+#define EGL_CONTEXT_CLIENT_VERSION                           0x3098
+#define EGL_CONTEXT_MAJOR_VERSION                            0x3098
+#define EGL_CONTEXT_MAJOR_VERSION_KHR                        0x3098
+#define EGL_MULTISAMPLE_RESOLVE                              0x3099
+#define EGL_MULTISAMPLE_RESOLVE_DEFAULT                      0x309A
+#define EGL_MULTISAMPLE_RESOLVE_BOX                          0x309B
+#define EGL_CL_EVENT_HANDLE                                  0x309C
+#define EGL_CL_EVENT_HANDLE_KHR                              0x309C
+#define EGL_GL_COLORSPACE                                    0x309D
+#define EGL_GL_COLORSPACE_KHR                                0x309D
+#define EGL_OPENGL_ES_API                                    0x30A0
+#define EGL_OPENVG_API                                       0x30A1
+#define EGL_OPENGL_API                                       0x30A2
+#define EGL_NATIVE_PIXMAP_KHR                                0x30B0
+#define EGL_GL_TEXTURE_2D                                    0x30B1
+#define EGL_GL_TEXTURE_2D_KHR                                0x30B1
+#define EGL_GL_TEXTURE_3D                                    0x30B2
+#define EGL_GL_TEXTURE_3D_KHR                                0x30B2
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X                   0x30B3
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR               0x30B3
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X                   0x30B4
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR               0x30B4
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y                   0x30B5
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR               0x30B5
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y                   0x30B6
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR               0x30B6
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z                   0x30B7
+#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR               0x30B7
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z                   0x30B8
+#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR               0x30B8
+#define EGL_GL_RENDERBUFFER                                  0x30B9
+#define EGL_GL_RENDERBUFFER_KHR                              0x30B9
+#define EGL_VG_PARENT_IMAGE_KHR                              0x30BA
+#define EGL_GL_TEXTURE_LEVEL                                 0x30BC
+#define EGL_GL_TEXTURE_LEVEL_KHR                             0x30BC
+#define EGL_GL_TEXTURE_ZOFFSET                               0x30BD
+#define EGL_GL_TEXTURE_ZOFFSET_KHR                           0x30BD
+#define EGL_POST_SUB_BUFFER_SUPPORTED_NV                     0x30BE
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS_EXT                 0x30BF
+#define EGL_FORMAT_RGB_565_EXACT_KHR                         0x30C0
+#define EGL_FORMAT_RGB_565_KHR                               0x30C1
+#define EGL_FORMAT_RGBA_8888_EXACT_KHR                       0x30C2
+#define EGL_FORMAT_RGBA_8888_KHR                             0x30C3
+#define EGL_MAP_PRESERVE_PIXELS_KHR                          0x30C4
+#define EGL_LOCK_USAGE_HINT_KHR                              0x30C5
+#define EGL_BITMAP_POINTER_KHR                               0x30C6
+#define EGL_BITMAP_PITCH_KHR                                 0x30C7
+#define EGL_BITMAP_ORIGIN_KHR                                0x30C8
+#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR                      0x30C9
+#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR                    0x30CA
+#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR                     0x30CB
+#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR                    0x30CC
+#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR                0x30CD
+#define EGL_LOWER_LEFT_KHR                                   0x30CE
+#define EGL_UPPER_LEFT_KHR                                   0x30CF
+#define EGL_IMAGE_PRESERVED                                  0x30D2
+#define EGL_IMAGE_PRESERVED_KHR                              0x30D2
+#define EGL_SHARED_IMAGE_NOK                                 0x30DA
+#define EGL_COVERAGE_BUFFERS_NV                              0x30E0
+#define EGL_COVERAGE_SAMPLES_NV                              0x30E1
+#define EGL_DEPTH_ENCODING_NV                                0x30E2
+#define EGL_DEPTH_ENCODING_NONLINEAR_NV                      0x30E3
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_NV                  0x30E6
+#define EGL_SYNC_STATUS_NV                                   0x30E7
+#define EGL_SIGNALED_NV                                      0x30E8
+#define EGL_UNSIGNALED_NV                                    0x30E9
+#define EGL_ALREADY_SIGNALED_NV                              0x30EA
+#define EGL_TIMEOUT_EXPIRED_NV                               0x30EB
+#define EGL_CONDITION_SATISFIED_NV                           0x30EC
+#define EGL_SYNC_TYPE_NV                                     0x30ED
+#define EGL_SYNC_CONDITION_NV                                0x30EE
+#define EGL_SYNC_FENCE_NV                                    0x30EF
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE                     0x30F0
+#define EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR                 0x30F0
+#define EGL_SYNC_STATUS                                      0x30F1
+#define EGL_SYNC_STATUS_KHR                                  0x30F1
+#define EGL_SIGNALED                                         0x30F2
+#define EGL_SIGNALED_KHR                                     0x30F2
+#define EGL_UNSIGNALED                                       0x30F3
+#define EGL_UNSIGNALED_KHR                                   0x30F3
+#define EGL_TIMEOUT_EXPIRED                                  0x30F5
+#define EGL_TIMEOUT_EXPIRED_KHR                              0x30F5
+#define EGL_CONDITION_SATISFIED                              0x30F6
+#define EGL_CONDITION_SATISFIED_KHR                          0x30F6
+#define EGL_SYNC_TYPE                                        0x30F7
+#define EGL_SYNC_TYPE_KHR                                    0x30F7
+#define EGL_SYNC_CONDITION                                   0x30F8
+#define EGL_SYNC_CONDITION_KHR                               0x30F8
+#define EGL_SYNC_FENCE                                       0x30F9
+#define EGL_SYNC_FENCE_KHR                                   0x30F9
+#define EGL_SYNC_REUSABLE_KHR                                0x30FA
+#define EGL_CONTEXT_MINOR_VERSION                            0x30FB
+#define EGL_CONTEXT_MINOR_VERSION_KHR                        0x30FB
+#define EGL_CONTEXT_FLAGS_KHR                                0x30FC
+#define EGL_CONTEXT_OPENGL_PROFILE_MASK                      0x30FD
+#define EGL_CONTEXT_OPENGL_PROFILE_MASK_KHR                  0x30FD
+#define EGL_SYNC_CL_EVENT                                    0x30FE
+#define EGL_SYNC_CL_EVENT_KHR                                0x30FE
+#define EGL_SYNC_CL_EVENT_COMPLETE                           0x30FF
+#define EGL_SYNC_CL_EVENT_COMPLETE_KHR                       0x30FF
+#define EGL_CONTEXT_PRIORITY_LEVEL_IMG                       0x3100
+#define EGL_CONTEXT_PRIORITY_HIGH_IMG                        0x3101
+#define EGL_CONTEXT_PRIORITY_MEDIUM_IMG                      0x3102
+#define EGL_CONTEXT_PRIORITY_LOW_IMG                         0x3103
+#define EGL_NATIVE_BUFFER_MULTIPLANE_SEPARATE_IMG            0x3105
+#define EGL_NATIVE_BUFFER_PLANE_OFFSET_IMG                   0x3106
+#define EGL_BITMAP_PIXEL_SIZE_KHR                            0x3110
+#define EGL_NEW_IMAGE_QCOM                                   0x3120
+#define EGL_IMAGE_FORMAT_QCOM                                0x3121
+#define EGL_FORMAT_RGBA_8888_QCOM                            0x3122
+#define EGL_FORMAT_RGB_565_QCOM                              0x3123
+#define EGL_FORMAT_YUYV_QCOM                                 0x3124
+#define EGL_FORMAT_UYVY_QCOM                                 0x3125
+#define EGL_FORMAT_YV12_QCOM                                 0x3126
+#define EGL_FORMAT_NV21_QCOM                                 0x3127
+#define EGL_FORMAT_NV12_TILED_QCOM                           0x3128
+#define EGL_FORMAT_BGRA_8888_QCOM                            0x3129
+#define EGL_FORMAT_BGRX_8888_QCOM                            0x312A
+#define EGL_FORMAT_RGBX_8888_QCOM                            0x312F
+#define EGL_COVERAGE_SAMPLE_RESOLVE_NV                       0x3131
+#define EGL_COVERAGE_SAMPLE_RESOLVE_DEFAULT_NV               0x3132
+#define EGL_COVERAGE_SAMPLE_RESOLVE_NONE_NV                  0x3133
+#define EGL_MULTIVIEW_VIEW_COUNT_EXT                         0x3134
+#define EGL_AUTO_STEREO_NV                                   0x3136
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_EXT   0x3138
+#define EGL_BUFFER_AGE_EXT                                   0x313D
+#define EGL_BUFFER_AGE_KHR                                   0x313D
+#define EGL_PLATFORM_DEVICE_EXT                              0x313F
+#define EGL_NATIVE_BUFFER_ANDROID                            0x3140
+#define EGL_PLATFORM_ANDROID_KHR                             0x3141
+#define EGL_RECORDABLE_ANDROID                               0x3142
+#define EGL_NATIVE_BUFFER_USAGE_ANDROID                      0x3143
+#define EGL_SYNC_NATIVE_FENCE_ANDROID                        0x3144
+#define EGL_SYNC_NATIVE_FENCE_FD_ANDROID                     0x3145
+#define EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID               0x3146
+#define EGL_FRAMEBUFFER_TARGET_ANDROID                       0x3147
+#define EGL_FRONT_BUFFER_AUTO_REFRESH_ANDROID                0x314C
+#define EGL_GL_COLORSPACE_DEFAULT_EXT                        0x314D
+#define EGL_CONTEXT_OPENGL_DEBUG                             0x31B0
+#define EGL_CONTEXT_OPENGL_FORWARD_COMPATIBLE                0x31B1
+#define EGL_CONTEXT_OPENGL_ROBUST_ACCESS                     0x31B2
+#define EGL_CONTEXT_OPENGL_NO_ERROR_KHR                      0x31B3
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY       0x31BD
+#define EGL_CONTEXT_OPENGL_RESET_NOTIFICATION_STRATEGY_KHR   0x31BD
+#define EGL_NO_RESET_NOTIFICATION                            0x31BE
+#define EGL_NO_RESET_NOTIFICATION_EXT                        0x31BE
+#define EGL_NO_RESET_NOTIFICATION_KHR                        0x31BE
+#define EGL_LOSE_CONTEXT_ON_RESET                            0x31BF
+#define EGL_LOSE_CONTEXT_ON_RESET_EXT                        0x31BF
+#define EGL_LOSE_CONTEXT_ON_RESET_KHR                        0x31BF
+#define EGL_FORMAT_R8_QCOM                                   0x31C0
+#define EGL_FORMAT_RG88_QCOM                                 0x31C1
+#define EGL_FORMAT_NV12_QCOM                                 0x31C2
+#define EGL_FORMAT_SRGBX_8888_QCOM                           0x31C3
+#define EGL_FORMAT_SRGBA_8888_QCOM                           0x31C4
+#define EGL_FORMAT_YVYU_QCOM                                 0x31C5
+#define EGL_FORMAT_VYUY_QCOM                                 0x31C6
+#define EGL_FORMAT_IYUV_QCOM                                 0x31C7
+#define EGL_FORMAT_RGB_888_QCOM                              0x31C8
+#define EGL_FORMAT_RGBA_5551_QCOM                            0x31C9
+#define EGL_FORMAT_RGBA_4444_QCOM                            0x31CA
+#define EGL_FORMAT_R_16_FLOAT_QCOM                           0x31CB
+#define EGL_FORMAT_RG_1616_FLOAT_QCOM                        0x31CC
+#define EGL_FORMAT_RGBA_16_FLOAT_QCOM                        0x31CD
+#define EGL_FORMAT_RGBA_1010102_QCOM                         0x31CE
+#define EGL_FORMAT_FLAG_QCOM                                 0x31CF
+#define EGL_DRM_BUFFER_FORMAT_MESA                           0x31D0
+#define EGL_DRM_BUFFER_USE_MESA                              0x31D1
+#define EGL_DRM_BUFFER_FORMAT_ARGB32_MESA                    0x31D2
+#define EGL_DRM_BUFFER_MESA                                  0x31D3
+#define EGL_DRM_BUFFER_STRIDE_MESA                           0x31D4
+#define EGL_PLATFORM_X11_EXT                                 0x31D5
+#define EGL_PLATFORM_X11_KHR                                 0x31D5
+#define EGL_PLATFORM_X11_SCREEN_EXT                          0x31D6
+#define EGL_PLATFORM_X11_SCREEN_KHR                          0x31D6
+#define EGL_PLATFORM_GBM_KHR                                 0x31D7
+#define EGL_PLATFORM_GBM_MESA                                0x31D7
+#define EGL_PLATFORM_WAYLAND_EXT                             0x31D8
+#define EGL_PLATFORM_WAYLAND_KHR                             0x31D8
+#define EGL_PLATFORM_SURFACELESS_MESA                        0x31DD
+#define EGL_STREAM_FIFO_LENGTH_KHR                           0x31FC
+#define EGL_STREAM_TIME_NOW_KHR                              0x31FD
+#define EGL_STREAM_TIME_CONSUMER_KHR                         0x31FE
+#define EGL_STREAM_TIME_PRODUCER_KHR                         0x31FF
+#define EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE                0x3200
+#define EGL_FIXED_SIZE_ANGLE                                 0x3201
+#define EGL_CONSUMER_LATENCY_USEC_KHR                        0x3210
+#define EGL_PRODUCER_FRAME_KHR                               0x3212
+#define EGL_CONSUMER_FRAME_KHR                               0x3213
+#define EGL_STREAM_STATE_KHR                                 0x3214
+#define EGL_STREAM_STATE_CREATED_KHR                         0x3215
+#define EGL_STREAM_STATE_CONNECTING_KHR                      0x3216
+#define EGL_STREAM_STATE_EMPTY_KHR                           0x3217
+#define EGL_STREAM_STATE_NEW_FRAME_AVAILABLE_KHR             0x3218
+#define EGL_STREAM_STATE_OLD_FRAME_AVAILABLE_KHR             0x3219
+#define EGL_STREAM_STATE_DISCONNECTED_KHR                    0x321A
+#define EGL_BAD_STREAM_KHR                                   0x321B
+#define EGL_BAD_STATE_KHR                                    0x321C
+#define EGL_BUFFER_COUNT_NV                                  0x321D
+#define EGL_CONSUMER_ACQUIRE_TIMEOUT_USEC_KHR                0x321E
+#define EGL_SYNC_NEW_FRAME_NV                                0x321F
+#define EGL_BAD_DEVICE_EXT                                   0x322B
+#define EGL_DEVICE_EXT                                       0x322C
+#define EGL_BAD_OUTPUT_LAYER_EXT                             0x322D
+#define EGL_BAD_OUTPUT_PORT_EXT                              0x322E
+#define EGL_SWAP_INTERVAL_EXT                                0x322F
+#define EGL_TRIPLE_BUFFER_NV                                 0x3230
+#define EGL_QUADRUPLE_BUFFER_NV                              0x3231
+#define EGL_DRM_DEVICE_FILE_EXT                              0x3233
+#define EGL_DRM_CRTC_EXT                                     0x3234
+#define EGL_DRM_PLANE_EXT                                    0x3235
+#define EGL_DRM_CONNECTOR_EXT                                0x3236
+#define EGL_OPENWF_DEVICE_ID_EXT                             0x3237
+#define EGL_OPENWF_PIPELINE_ID_EXT                           0x3238
+#define EGL_OPENWF_PORT_ID_EXT                               0x3239
+#define EGL_CUDA_DEVICE_NV                                   0x323A
+#define EGL_CUDA_EVENT_HANDLE_NV                             0x323B
+#define EGL_SYNC_CUDA_EVENT_NV                               0x323C
+#define EGL_SYNC_CUDA_EVENT_COMPLETE_NV                      0x323D
+#define EGL_STREAM_CROSS_PARTITION_NV                        0x323F
+#define EGL_STREAM_STATE_INITIALIZING_NV                     0x3240
+#define EGL_STREAM_TYPE_NV                                   0x3241
+#define EGL_STREAM_PROTOCOL_NV                               0x3242
+#define EGL_STREAM_ENDPOINT_NV                               0x3243
+#define EGL_STREAM_LOCAL_NV                                  0x3244
+#define EGL_STREAM_CROSS_PROCESS_NV                          0x3245
+#define EGL_STREAM_PROTOCOL_FD_NV                            0x3246
+#define EGL_STREAM_PRODUCER_NV                               0x3247
+#define EGL_STREAM_CONSUMER_NV                               0x3248
+#define EGL_STREAM_PROTOCOL_SOCKET_NV                        0x324B
+#define EGL_SOCKET_HANDLE_NV                                 0x324C
+#define EGL_SOCKET_TYPE_NV                                   0x324D
+#define EGL_SOCKET_TYPE_UNIX_NV                              0x324E
+#define EGL_SOCKET_TYPE_INET_NV                              0x324F
+#define EGL_MAX_STREAM_METADATA_BLOCKS_NV                    0x3250
+#define EGL_MAX_STREAM_METADATA_BLOCK_SIZE_NV                0x3251
+#define EGL_MAX_STREAM_METADATA_TOTAL_SIZE_NV                0x3252
+#define EGL_PRODUCER_METADATA_NV                             0x3253
+#define EGL_CONSUMER_METADATA_NV                             0x3254
+#define EGL_METADATA0_SIZE_NV                                0x3255
+#define EGL_METADATA1_SIZE_NV                                0x3256
+#define EGL_METADATA2_SIZE_NV                                0x3257
+#define EGL_METADATA3_SIZE_NV                                0x3258
+#define EGL_METADATA0_TYPE_NV                                0x3259
+#define EGL_METADATA1_TYPE_NV                                0x325A
+#define EGL_METADATA2_TYPE_NV                                0x325B
+#define EGL_METADATA3_TYPE_NV                                0x325C
+#define EGL_LINUX_DMA_BUF_EXT                                0x3270
+#define EGL_LINUX_DRM_FOURCC_EXT                             0x3271
+#define EGL_DMA_BUF_PLANE0_FD_EXT                            0x3272
+#define EGL_DMA_BUF_PLANE0_OFFSET_EXT                        0x3273
+#define EGL_DMA_BUF_PLANE0_PITCH_EXT                         0x3274
+#define EGL_DMA_BUF_PLANE1_FD_EXT                            0x3275
+#define EGL_DMA_BUF_PLANE1_OFFSET_EXT                        0x3276
+#define EGL_DMA_BUF_PLANE1_PITCH_EXT                         0x3277
+#define EGL_DMA_BUF_PLANE2_FD_EXT                            0x3278
+#define EGL_DMA_BUF_PLANE2_OFFSET_EXT                        0x3279
+#define EGL_DMA_BUF_PLANE2_PITCH_EXT                         0x327A
+#define EGL_YUV_COLOR_SPACE_HINT_EXT                         0x327B
+#define EGL_SAMPLE_RANGE_HINT_EXT                            0x327C
+#define EGL_YUV_CHROMA_HORIZONTAL_SITING_HINT_EXT            0x327D
+#define EGL_YUV_CHROMA_VERTICAL_SITING_HINT_EXT              0x327E
+#define EGL_ITU_REC601_EXT                                   0x327F
+#define EGL_ITU_REC709_EXT                                   0x3280
+#define EGL_ITU_REC2020_EXT                                  0x3281
+#define EGL_YUV_FULL_RANGE_EXT                               0x3282
+#define EGL_YUV_NARROW_RANGE_EXT                             0x3283
+#define EGL_YUV_CHROMA_SITING_0_EXT                          0x3284
+#define EGL_YUV_CHROMA_SITING_0_5_EXT                        0x3285
+#define EGL_DISCARD_SAMPLES_ARM                              0x3286
+#define EGL_SYNC_PRIOR_COMMANDS_IMPLICIT_EXTERNAL_ARM        0x328A
+#define EGL_NATIVE_BUFFER_TIZEN                              0x32A0
+#define EGL_NATIVE_SURFACE_TIZEN                             0x32A1
+#define EGL_IMAGE_NUM_PLANES_QCOM                            0x32B0
+#define EGL_IMAGE_PLANE_PITCH_0_QCOM                         0x32B1
+#define EGL_IMAGE_PLANE_PITCH_1_QCOM                         0x32B2
+#define EGL_IMAGE_PLANE_PITCH_2_QCOM                         0x32B3
+#define EGL_IMAGE_PLANE_DEPTH_0_QCOM                         0x32B4
+#define EGL_IMAGE_PLANE_DEPTH_1_QCOM                         0x32B5
+#define EGL_IMAGE_PLANE_DEPTH_2_QCOM                         0x32B6
+#define EGL_IMAGE_PLANE_WIDTH_0_QCOM                         0x32B7
+#define EGL_IMAGE_PLANE_WIDTH_1_QCOM                         0x32B8
+#define EGL_IMAGE_PLANE_WIDTH_2_QCOM                         0x32B9
+#define EGL_IMAGE_PLANE_HEIGHT_0_QCOM                        0x32BA
+#define EGL_IMAGE_PLANE_HEIGHT_1_QCOM                        0x32BB
+#define EGL_IMAGE_PLANE_HEIGHT_2_QCOM                        0x32BC
+#define EGL_IMAGE_PLANE_POINTER_0_QCOM                       0x32BD
+#define EGL_IMAGE_PLANE_POINTER_1_QCOM                       0x32BE
+#define EGL_IMAGE_PLANE_POINTER_2_QCOM                       0x32BF
+#define EGL_PROTECTED_CONTENT_EXT                            0x32C0
+#define EGL_GPU_PERF_HINT_QCOM                               0x32D0
+#define EGL_HINT_PERSISTENT_QCOM                             0x32D1
+#define EGL_YUV_BUFFER_EXT                                   0x3300
+#define EGL_YUV_ORDER_EXT                                    0x3301
+#define EGL_YUV_ORDER_YUV_EXT                                0x3302
+#define EGL_YUV_ORDER_YVU_EXT                                0x3303
+#define EGL_YUV_ORDER_YUYV_EXT                               0x3304
+#define EGL_YUV_ORDER_UYVY_EXT                               0x3305
+#define EGL_YUV_ORDER_YVYU_EXT                               0x3306
+#define EGL_YUV_ORDER_VYUY_EXT                               0x3307
+#define EGL_YUV_ORDER_AYUV_EXT                               0x3308
+#define EGL_YUV_CSC_STANDARD_EXT                             0x330A
+#define EGL_YUV_CSC_STANDARD_601_EXT                         0x330B
+#define EGL_YUV_CSC_STANDARD_709_EXT                         0x330C
+#define EGL_YUV_CSC_STANDARD_2020_EXT                        0x330D
+#define EGL_YUV_NUMBER_OF_PLANES_EXT                         0x3311
+#define EGL_YUV_SUBSAMPLE_EXT                                0x3312
+#define EGL_YUV_SUBSAMPLE_4_2_0_EXT                          0x3313
+#define EGL_YUV_SUBSAMPLE_4_2_2_EXT                          0x3314
+#define EGL_YUV_SUBSAMPLE_4_4_4_EXT                          0x3315
+#define EGL_YUV_DEPTH_RANGE_EXT                              0x3317
+#define EGL_YUV_DEPTH_RANGE_LIMITED_EXT                      0x3318
+#define EGL_YUV_DEPTH_RANGE_FULL_EXT                         0x3319
+#define EGL_YUV_PLANE_BPP_EXT                                0x331A
+#define EGL_YUV_PLANE_BPP_0_EXT                              0x331B
+#define EGL_YUV_PLANE_BPP_8_EXT                              0x331C
+#define EGL_YUV_PLANE_BPP_10_EXT                             0x331D
+#define EGL_PENDING_METADATA_NV                              0x3328
+#define EGL_PENDING_FRAME_NV                                 0x3329
+#define EGL_STREAM_TIME_PENDING_NV                           0x332A
+#define EGL_YUV_PLANE0_TEXTURE_UNIT_NV                       0x332C
+#define EGL_YUV_PLANE1_TEXTURE_UNIT_NV                       0x332D
+#define EGL_YUV_PLANE2_TEXTURE_UNIT_NV                       0x332E
+#define EGL_SUPPORT_RESET_NV                                 0x3334
+#define EGL_SUPPORT_REUSE_NV                                 0x3335
+#define EGL_STREAM_FIFO_SYNCHRONOUS_NV                       0x3336
+#define EGL_PRODUCER_MAX_FRAME_HINT_NV                       0x3337
+#define EGL_CONSUMER_MAX_FRAME_HINT_NV                       0x3338
+#define EGL_COLOR_COMPONENT_TYPE_EXT                         0x3339
+#define EGL_COLOR_COMPONENT_TYPE_FIXED_EXT                   0x333A
+#define EGL_COLOR_COMPONENT_TYPE_FLOAT_EXT                   0x333B
+#define EGL_DRM_MASTER_FD_EXT                                0x333C
+#define EGL_GL_COLORSPACE_BT2020_LINEAR_EXT                  0x333F
+#define EGL_GL_COLORSPACE_BT2020_PQ_EXT                      0x3340
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_RX_EXT                 0x3341
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_RY_EXT                 0x3342
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_GX_EXT                 0x3343
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_GY_EXT                 0x3344
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_BX_EXT                 0x3345
+#define EGL_SMPTE2086_DISPLAY_PRIMARY_BY_EXT                 0x3346
+#define EGL_SMPTE2086_WHITE_POINT_X_EXT                      0x3347
+#define EGL_SMPTE2086_WHITE_POINT_Y_EXT                      0x3348
+#define EGL_SMPTE2086_MAX_LUMINANCE_EXT                      0x3349
+#define EGL_SMPTE2086_MIN_LUMINANCE_EXT                      0x334A
+#define EGL_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV          0x334C
+#define EGL_STREAM_CROSS_OBJECT_NV                           0x334D
+#define EGL_STREAM_CROSS_DISPLAY_NV                          0x334E
+#define EGL_STREAM_CROSS_SYSTEM_NV                           0x334F
+#define EGL_GL_COLORSPACE_SCRGB_LINEAR_EXT                   0x3350
+#define EGL_GL_COLORSPACE_SCRGB_EXT                          0x3351
+#define EGL_TRACK_REFERENCES_KHR                             0x3352
+#define EGL_CONTEXT_PRIORITY_REALTIME_NV                     0x3357
+#define EGL_CTA861_3_MAX_CONTENT_LIGHT_LEVEL_EXT             0x3360
+#define EGL_CTA861_3_MAX_FRAME_AVERAGE_LEVEL_EXT             0x3361
+#define EGL_GL_COLORSPACE_DISPLAY_P3_LINEAR_EXT              0x3362
+#define EGL_GL_COLORSPACE_DISPLAY_P3_EXT                     0x3363
+#define EGL_SYNC_CLIENT_EXT                                  0x3364
+#define EGL_SYNC_CLIENT_SIGNAL_EXT                           0x3365
+#define EGL_STREAM_FRAME_ORIGIN_X_NV                         0x3366
+#define EGL_STREAM_FRAME_ORIGIN_Y_NV                         0x3367
+#define EGL_STREAM_FRAME_MAJOR_AXIS_NV                       0x3368
+#define EGL_CONSUMER_AUTO_ORIENTATION_NV                     0x3369
+#define EGL_PRODUCER_AUTO_ORIENTATION_NV                     0x336A
+#define EGL_LEFT_NV                                          0x336B
+#define EGL_RIGHT_NV                                         0x336C
+#define EGL_TOP_NV                                           0x336D
+#define EGL_BOTTOM_NV                                        0x336E
+#define EGL_X_AXIS_NV                                        0x336F
+#define EGL_Y_AXIS_NV                                        0x3370
+#define EGL_STREAM_DMA_NV                                    0x3371
+#define EGL_STREAM_DMA_SERVER_NV                             0x3372
+#define EGL_D3D9_DEVICE_ANGLE                                0x33A0
+#define EGL_D3D11_DEVICE_ANGLE                               0x33A1
+#define EGL_OBJECT_THREAD_KHR                                0x33B0
+#define EGL_OBJECT_DISPLAY_KHR                               0x33B1
+#define EGL_OBJECT_CONTEXT_KHR                               0x33B2
+#define EGL_OBJECT_SURFACE_KHR                               0x33B3
+#define EGL_OBJECT_IMAGE_KHR                                 0x33B4
+#define EGL_OBJECT_SYNC_KHR                                  0x33B5
+#define EGL_OBJECT_STREAM_KHR                                0x33B6
+#define EGL_DEBUG_CALLBACK_KHR                               0x33B8
+#define EGL_DEBUG_MSG_CRITICAL_KHR                           0x33B9
+#define EGL_DEBUG_MSG_ERROR_KHR                              0x33BA
+#define EGL_DEBUG_MSG_WARN_KHR                               0x33BB
+#define EGL_DEBUG_MSG_INFO_KHR                               0x33BC
+#define EGL_FORMAT_FLAG_UBWC_QCOM                            0x33E0
+#define EGL_FORMAT_FLAG_MACROTILE_QCOM                       0x33E1
+#define EGL_FORMAT_ASTC_4X4_QCOM                             0x33E2
+#define EGL_FORMAT_ASTC_5X4_QCOM                             0x33E3
+#define EGL_FORMAT_ASTC_5X5_QCOM                             0x33E4
+#define EGL_FORMAT_ASTC_6X5_QCOM                             0x33E5
+#define EGL_FORMAT_ASTC_6X6_QCOM                             0x33E6
+#define EGL_FORMAT_ASTC_8X5_QCOM                             0x33E7
+#define EGL_FORMAT_ASTC_8X6_QCOM                             0x33E8
+#define EGL_FORMAT_ASTC_8X8_QCOM                             0x33E9
+#define EGL_FORMAT_ASTC_10X5_QCOM                            0x33EA
+#define EGL_FORMAT_ASTC_10X6_QCOM                            0x33EB
+#define EGL_FORMAT_ASTC_10X8_QCOM                            0x33EC
+#define EGL_FORMAT_ASTC_10X10_QCOM                           0x33ED
+#define EGL_FORMAT_ASTC_12X10_QCOM                           0x33EE
+#define EGL_FORMAT_ASTC_12X12_QCOM                           0x33EF
+#define EGL_FORMAT_ASTC_4X4_SRGB_QCOM                        0x3400
+#define EGL_FORMAT_ASTC_5X4_SRGB_QCOM                        0x3401
+#define EGL_FORMAT_ASTC_5X5_SRGB_QCOM                        0x3402
+#define EGL_FORMAT_ASTC_6X5_SRGB_QCOM                        0x3403
+#define EGL_FORMAT_ASTC_6X6_SRGB_QCOM                        0x3404
+#define EGL_FORMAT_ASTC_8X5_SRGB_QCOM                        0x3405
+#define EGL_FORMAT_ASTC_8X6_SRGB_QCOM                        0x3406
+#define EGL_FORMAT_ASTC_8X8_SRGB_QCOM                        0x3407
+#define EGL_FORMAT_ASTC_10X5_SRGB_QCOM                       0x3408
+#define EGL_FORMAT_ASTC_10X6_SRGB_QCOM                       0x3409
+#define EGL_FORMAT_ASTC_10X8_SRGB_QCOM                       0x340A
+#define EGL_FORMAT_ASTC_10X10_SRGB_QCOM                      0x340B
+#define EGL_FORMAT_ASTC_12X10_SRGB_QCOM                      0x340C
+#define EGL_FORMAT_ASTC_12X12_SRGB_QCOM                      0x340D
+#define EGL_FORMAT_TP10_QCOM                                 0x340E
+#define EGL_FORMAT_NV12_Y_QCOM                               0x340F
+#define EGL_FORMAT_NV12_UV_QCOM                              0x3410
+#define EGL_FORMAT_NV21_VU_QCOM                              0x3411
+#define EGL_FORMAT_NV12_4R_QCOM                              0x3412
+#define EGL_FORMAT_NV12_4R_Y_QCOM                            0x3413
+#define EGL_FORMAT_NV12_4R_UV_QCOM                           0x3414
+#define EGL_FORMAT_P010_QCOM                                 0x3415
+#define EGL_FORMAT_P010_Y_QCOM                               0x3416
+#define EGL_FORMAT_P010_UV_QCOM                              0x3417
+#define EGL_FORMAT_TP10_Y_QCOM                               0x3418
+#define EGL_FORMAT_TP10_UV_QCOM                              0x3419
+#define EGL_GENERIC_TOKEN_1_QCOM                             0x3420
+#define EGL_GENERIC_TOKEN_2_QCOM                             0x3421
+#define EGL_GENERIC_TOKEN_3_QCOM                             0x3422
+#define EGL_TIMESTAMPS_ANDROID                               0x3430
+#define EGL_COMPOSITE_DEADLINE_ANDROID                       0x3431
+#define EGL_COMPOSITE_INTERVAL_ANDROID                       0x3432
+#define EGL_COMPOSITE_TO_PRESENT_LATENCY_ANDROID             0x3433
+#define EGL_REQUESTED_PRESENT_TIME_ANDROID                   0x3434
+#define EGL_RENDERING_COMPLETE_TIME_ANDROID                  0x3435
+#define EGL_COMPOSITION_LATCH_TIME_ANDROID                   0x3436
+#define EGL_FIRST_COMPOSITION_START_TIME_ANDROID             0x3437
+#define EGL_LAST_COMPOSITION_START_TIME_ANDROID              0x3438
+#define EGL_FIRST_COMPOSITION_GPU_FINISHED_TIME_ANDROID      0x3439
+#define EGL_DISPLAY_PRESENT_TIME_ANDROID                     0x343A
+#define EGL_DEQUEUE_READY_TIME_ANDROID                       0x343B
+#define EGL_READS_DONE_TIME_ANDROID                          0x343C
+#define EGL_DMA_BUF_PLANE3_FD_EXT                            0x3440
+#define EGL_DMA_BUF_PLANE3_OFFSET_EXT                        0x3441
+#define EGL_DMA_BUF_PLANE3_PITCH_EXT                         0x3442
+#define EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT                   0x3443
+#define EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT                   0x3444
+#define EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT                   0x3445
+#define EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT                   0x3446
+#define EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT                   0x3447
+#define EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT                   0x3448
+#define EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT                   0x3449
+#define EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT                   0x344A
+#define EGL_PRIMARY_COMPOSITOR_CONTEXT_EXT                   0x3460
+#define EGL_EXTERNAL_REF_ID_EXT                              0x3461
+#define EGL_COMPOSITOR_DROP_NEWEST_FRAME_EXT                 0x3462
+#define EGL_COMPOSITOR_KEEP_NEWEST_FRAME_EXT                 0x3463
+#define EGL_FRONT_BUFFER_EXT                                 0x3464
+#define EGL_IMPORT_SYNC_TYPE_EXT                             0x3470
+#define EGL_IMPORT_IMPLICIT_SYNC_EXT                         0x3471
+#define EGL_IMPORT_EXPLICIT_SYNC_EXT                         0x3472
+#define EGL_GL_COLORSPACE_DISPLAY_P3_PASSTHROUGH_EXT         0x3490
+#define EGL_COLOR_FORMAT_HI                                  0x8F70
+#define EGL_COLOR_RGB_HI                                     0x8F71
+#define EGL_COLOR_RGBA_HI                                    0x8F72
+#define EGL_COLOR_ARGB_HI                                    0x8F73
+#define EGL_CLIENT_PIXMAP_POINTER_HI                         0x8F74
+#define EGL_FOREVER                                          0xFFFFFFFFFFFFFFFF
+#define EGL_FOREVER_KHR                                      0xFFFFFFFFFFFFFFFF
+#define EGL_FOREVER_NV                                       0xFFFFFFFFFFFFFFFF
+#define EGL_TRUE                                             1
+#define EGL_DISPLAY_SCALING                                  10000
+#define EGL_METADATA_SCALING_EXT                             50000
+#define EGL_NO_CONFIG_KHR                                    EGL_CAST(EGLConfig,0)
+#define EGL_NO_CONTEXT                                       EGL_CAST(EGLContext,0)
+#define EGL_NO_DEVICE_EXT                                    EGL_CAST(EGLDeviceEXT,0)
+#define EGL_NO_DISPLAY                                       EGL_CAST(EGLDisplay,0)
+#define EGL_NO_IMAGE                                         EGL_CAST(EGLImage,0)
+#define EGL_NO_IMAGE_KHR                                     EGL_CAST(EGLImageKHR,0)
+#define EGL_DEFAULT_DISPLAY                                  EGL_CAST(EGLNativeDisplayType,0)
+#define EGL_NO_FILE_DESCRIPTOR_KHR                           EGL_CAST(EGLNativeFileDescriptorKHR,-1)
+#define EGL_NO_OUTPUT_LAYER_EXT                              EGL_CAST(EGLOutputLayerEXT,0)
+#define EGL_NO_OUTPUT_PORT_EXT                               EGL_CAST(EGLOutputPortEXT,0)
+#define EGL_NO_STREAM_KHR                                    EGL_CAST(EGLStreamKHR,0)
+#define EGL_NO_SURFACE                                       EGL_CAST(EGLSurface,0)
+#define EGL_NO_SYNC                                          EGL_CAST(EGLSync,0)
+#define EGL_NO_SYNC_KHR                                      EGL_CAST(EGLSyncKHR,0)
+#define EGL_NO_SYNC_NV                                       EGL_CAST(EGLSyncNV,0)
+#define EGL_DONT_CARE                                        EGL_CAST(EGLint,-1)
+#define EGL_UNKNOWN                                          EGL_CAST(EGLint,-1)
+#define EGL_TIMESTAMP_INVALID_ANDROID                        EGL_CAST(EGLnsecsANDROID,-1)
+#define EGL_TIMESTAMP_PENDING_ANDROID                        EGL_CAST(EGLnsecsANDROID,-2)
+
+typedef EGLBoolean (GLAPIENTRY *PFNEGLBINDAPIPROC)(EGLenum api);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLBINDTEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCHOOSECONFIGPROC)(EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCLIENTSIGNALSYNCEXTPROC)(EGLDisplay dpy, EGLSync sync, const EGLAttrib * attrib_list);
+typedef EGLint (GLAPIENTRY *PFNEGLCLIENTWAITSYNCPROC)(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
+typedef EGLint (GLAPIENTRY *PFNEGLCLIENTWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+typedef EGLint (GLAPIENTRY *PFNEGLCLIENTWAITSYNCNVPROC)(EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC)(EGLint external_win_id);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC)(EGLint external_ref_id, const EGLint * context_attributes, EGLint num_entries);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC)(const EGLint * external_ref_ids, EGLint num_entries);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCOMPOSITORSETSIZEEXTPROC)(EGLint external_win_id, EGLint width, EGLint height);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC)(EGLint external_win_id, const EGLint * window_attributes, EGLint num_entries);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC)(EGLint external_ref_id, const EGLint * external_win_ids, EGLint num_entries);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCOMPOSITORSWAPPOLICYEXTPROC)(EGLint external_win_id, EGLint policy);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLCOPYBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
+typedef EGLContext (GLAPIENTRY *PFNEGLCREATECONTEXTPROC)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list);
+typedef EGLImageKHR (GLAPIENTRY *PFNEGLCREATEDRMIMAGEMESAPROC)(EGLDisplay dpy, const EGLint * attrib_list);
+typedef EGLSyncNV (GLAPIENTRY *PFNEGLCREATEFENCESYNCNVPROC)(EGLDisplay dpy, EGLenum condition, const EGLint * attrib_list);
+typedef EGLImage (GLAPIENTRY *PFNEGLCREATEIMAGEPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list);
+typedef EGLImageKHR (GLAPIENTRY *PFNEGLCREATEIMAGEKHRPROC)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint * attrib_list);
+typedef EGLClientBuffer (GLAPIENTRY *PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC)(const EGLint * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC)(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEPBUFFERSURFACEPROC)(EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEPIXMAPSURFACEHIPROC)(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI * pixmap);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC)(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLint * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEPLATFORMWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLint * attrib_list);
+typedef EGLStreamKHR (GLAPIENTRY *PFNEGLCREATESTREAMATTRIBKHRPROC)(EGLDisplay dpy, const EGLAttrib * attrib_list);
+typedef EGLStreamKHR (GLAPIENTRY *PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
+typedef EGLStreamKHR (GLAPIENTRY *PFNEGLCREATESTREAMKHRPROC)(EGLDisplay dpy, const EGLint * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint * attrib_list);
+typedef EGLSyncKHR (GLAPIENTRY *PFNEGLCREATESTREAMSYNCNVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint * attrib_list);
+typedef EGLSync (GLAPIENTRY *PFNEGLCREATESYNCPROC)(EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list);
+typedef EGLSyncKHR (GLAPIENTRY *PFNEGLCREATESYNC64KHRPROC)(EGLDisplay dpy, EGLenum type, const EGLAttribKHR * attrib_list);
+typedef EGLSyncKHR (GLAPIENTRY *PFNEGLCREATESYNCKHRPROC)(EGLDisplay dpy, EGLenum type, const EGLint * attrib_list);
+typedef EGLSurface (GLAPIENTRY *PFNEGLCREATEWINDOWSURFACEPROC)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list);
+typedef EGLint (GLAPIENTRY *PFNEGLDEBUGMESSAGECONTROLKHRPROC)(EGLDEBUGPROCKHR callback, const EGLAttrib * attrib_list);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLDESTROYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLDESTROYIMAGEPROC)(EGLDisplay dpy, EGLImage image);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLDESTROYIMAGEKHRPROC)(EGLDisplay dpy, EGLImageKHR image);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLDESTROYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLDESTROYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLDESTROYSYNCPROC)(EGLDisplay dpy, EGLSync sync);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLDESTROYSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLDESTROYSYNCNVPROC)(EGLSyncNV sync);
+typedef EGLint (GLAPIENTRY *PFNEGLDUPNATIVEFENCEFDANDROIDPROC)(EGLDisplay dpy, EGLSyncKHR sync);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLEXPORTDMABUFIMAGEMESAPROC)(EGLDisplay dpy, EGLImageKHR image, int * fds, EGLint * strides, EGLint * offsets);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC)(EGLDisplay dpy, EGLImageKHR image, int * fourcc, int * num_planes, EGLuint64KHR * modifiers);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLEXPORTDRMIMAGEMESAPROC)(EGLDisplay dpy, EGLImageKHR image, EGLint * name, EGLint * handle, EGLint * stride);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLFENCENVPROC)(EGLSyncNV sync);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETCOMPOSITORTIMINGANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint * names, EGLnsecsANDROID * values);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLint name);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETCONFIGATTRIBPROC)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETCONFIGSPROC)(EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config);
+typedef EGLContext (GLAPIENTRY *PFNEGLGETCURRENTCONTEXTPROC)(void);
+typedef EGLDisplay (GLAPIENTRY *PFNEGLGETCURRENTDISPLAYPROC)(void);
+typedef EGLSurface (GLAPIENTRY *PFNEGLGETCURRENTSURFACEPROC)(EGLint readdraw);
+typedef EGLDisplay (GLAPIENTRY *PFNEGLGETDISPLAYPROC)(EGLNativeDisplayType display_id);
+typedef char * (GLAPIENTRY *PFNEGLGETDISPLAYDRIVERCONFIGPROC)(EGLDisplay dpy);
+typedef const char * (GLAPIENTRY *PFNEGLGETDISPLAYDRIVERNAMEPROC)(EGLDisplay dpy);
+typedef EGLint (GLAPIENTRY *PFNEGLGETERRORPROC)(void);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETFRAMETIMESTAMPSANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint * timestamps, EGLnsecsANDROID * values);
+typedef EGLClientBuffer (GLAPIENTRY *PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC)(const struct AHardwareBuffer * buffer);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETNEXTFRAMEIDANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLuint64KHR * frameId);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETOUTPUTLAYERSEXTPROC)(EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputLayerEXT * layers, EGLint max_layers, EGLint * num_layers);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETOUTPUTPORTSEXTPROC)(EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputPortEXT * ports, EGLint max_ports, EGLint * num_ports);
+typedef EGLDisplay (GLAPIENTRY *PFNEGLGETPLATFORMDISPLAYPROC)(EGLenum platform, void * native_display, const EGLAttrib * attrib_list);
+typedef EGLDisplay (GLAPIENTRY *PFNEGLGETPLATFORMDISPLAYEXTPROC)(EGLenum platform, void * native_display, const EGLint * attrib_list);
+typedef __eglMustCastToProperFunctionPointerType (GLAPIENTRY *PFNEGLGETPROCADDRESSPROC)(const char * procname);
+typedef EGLNativeFileDescriptorKHR (GLAPIENTRY *PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETSYNCATTRIBPROC)(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETSYNCATTRIBKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLGETSYNCATTRIBNVPROC)(EGLSyncNV sync, EGLint attribute, EGLint * value);
+typedef EGLuint64NV (GLAPIENTRY *PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC)(void);
+typedef EGLuint64NV (GLAPIENTRY *PFNEGLGETSYSTEMTIMENVPROC)(void);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLINITIALIZEPROC)(EGLDisplay dpy, EGLint * major, EGLint * minor);
+typedef EGLint (GLAPIENTRY *PFNEGLLABELOBJECTKHRPROC)(EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLLOCKSURFACEKHRPROC)(EGLDisplay dpy, EGLSurface surface, const EGLint * attrib_list);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLMAKECURRENTPROC)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLOUTPUTLAYERATTRIBEXTPROC)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLOUTPUTPORTATTRIBEXTPROC)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLPOSTSUBBUFFERNVPROC)(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLPRESENTATIONTIMEANDROIDPROC)(EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
+typedef EGLenum (GLAPIENTRY *PFNEGLQUERYAPIPROC)(void);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYCONTEXTPROC)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYDEBUGKHRPROC)(EGLint attribute, EGLAttrib * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYDEVICEATTRIBEXTPROC)(EGLDeviceEXT device, EGLint attribute, EGLAttrib * value);
+typedef const char * (GLAPIENTRY *PFNEGLQUERYDEVICESTRINGEXTPROC)(EGLDeviceEXT device, EGLint name);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYDEVICESEXTPROC)(EGLint max_devices, EGLDeviceEXT * devices, EGLint * num_devices);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYDISPLAYATTRIBEXTPROC)(EGLDisplay dpy, EGLint attribute, EGLAttrib * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYDISPLAYATTRIBKHRPROC)(EGLDisplay dpy, EGLint name, EGLAttrib * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYDISPLAYATTRIBNVPROC)(EGLDisplay dpy, EGLint attribute, EGLAttrib * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYDMABUFFORMATSEXTPROC)(EGLDisplay dpy, EGLint max_formats, EGLint * formats, EGLint * num_formats);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYDMABUFMODIFIERSEXTPROC)(EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR * modifiers, EGLBoolean * external_only, EGLint * num_modifiers);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYNATIVEDISPLAYNVPROC)(EGLDisplay dpy, EGLNativeDisplayType * display_id);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYNATIVEPIXMAPNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType * pixmap);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYNATIVEWINDOWNVPROC)(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType * window);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib * value);
+typedef const char * (GLAPIENTRY *PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib * value);
+typedef const char * (GLAPIENTRY *PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYSTREAMKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYSTREAMMETADATANVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void * data);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYSTREAMTIMEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYSTREAMU64KHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR * value);
+typedef const char * (GLAPIENTRY *PFNEGLQUERYSTRINGPROC)(EGLDisplay dpy, EGLint name);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYSURFACEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYSURFACE64KHRPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLQUERYSURFACEPOINTERANGLEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void ** value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLRELEASETEXIMAGEPROC)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLRELEASETHREADPROC)(void);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLRESETSTREAMNVPROC)(EGLDisplay dpy, EGLStreamKHR stream);
+typedef void (GLAPIENTRY *PFNEGLSETBLOBCACHEFUNCSANDROIDPROC)(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSETDAMAGEREGIONKHRPROC)(EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSETSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSETSTREAMMETADATANVPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void * data);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSIGNALSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSIGNALSYNCNVPROC)(EGLSyncNV sync, EGLenum mode);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMCONSUMERACQUIREKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMCONSUMEROUTPUTEXTPROC)(EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMCONSUMERRELEASEKHRPROC)(EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSTREAMFLUSHNVPROC)(EGLDisplay dpy, EGLStreamKHR stream);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSURFACEATTRIBPROC)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSWAPBUFFERSPROC)(EGLDisplay dpy, EGLSurface surface);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSWAPBUFFERSREGION2NOKPROC)(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSWAPBUFFERSREGIONNOKPROC)(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC)(EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLSWAPINTERVALPROC)(EGLDisplay dpy, EGLint interval);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLTERMINATEPROC)(EGLDisplay dpy);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLUNLOCKSURFACEKHRPROC)(EGLDisplay dpy, EGLSurface surface);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLUNSIGNALSYNCEXTPROC)(EGLDisplay dpy, EGLSync sync, const EGLAttrib * attrib_list);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLWAITCLIENTPROC)(void);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLWAITGLPROC)(void);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLWAITNATIVEPROC)(EGLint engine);
+typedef EGLBoolean (GLAPIENTRY *PFNEGLWAITSYNCPROC)(EGLDisplay dpy, EGLSync sync, EGLint flags);
+typedef EGLint (GLAPIENTRY *PFNEGLWAITSYNCKHRPROC)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglBindAPI)(EGLenum api);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglBindTexImage)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglChooseConfig)(EGLDisplay dpy, const EGLint * attrib_list, EGLConfig * configs, EGLint config_size, EGLint * num_config);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglClientSignalSyncEXT)(EGLDisplay dpy, EGLSync sync, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLint (EPOXY_CALLSPEC *epoxy_eglClientWaitSync)(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout);
+
+EPOXY_PUBLIC EGLint (EPOXY_CALLSPEC *epoxy_eglClientWaitSyncKHR)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, EGLTimeKHR timeout);
+
+EPOXY_PUBLIC EGLint (EPOXY_CALLSPEC *epoxy_eglClientWaitSyncNV)(EGLSyncNV sync, EGLint flags, EGLTimeNV timeout);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglCompositorBindTexWindowEXT)(EGLint external_win_id);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglCompositorSetContextAttributesEXT)(EGLint external_ref_id, const EGLint * context_attributes, EGLint num_entries);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglCompositorSetContextListEXT)(const EGLint * external_ref_ids, EGLint num_entries);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglCompositorSetSizeEXT)(EGLint external_win_id, EGLint width, EGLint height);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglCompositorSetWindowAttributesEXT)(EGLint external_win_id, const EGLint * window_attributes, EGLint num_entries);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglCompositorSetWindowListEXT)(EGLint external_ref_id, const EGLint * external_win_ids, EGLint num_entries);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglCompositorSwapPolicyEXT)(EGLint external_win_id, EGLint policy);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglCopyBuffers)(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target);
+
+EPOXY_PUBLIC EGLContext (EPOXY_CALLSPEC *epoxy_eglCreateContext)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLImageKHR (EPOXY_CALLSPEC *epoxy_eglCreateDRMImageMESA)(EGLDisplay dpy, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSyncNV (EPOXY_CALLSPEC *epoxy_eglCreateFenceSyncNV)(EGLDisplay dpy, EGLenum condition, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLImage (EPOXY_CALLSPEC *epoxy_eglCreateImage)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLImageKHR (EPOXY_CALLSPEC *epoxy_eglCreateImageKHR)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLClientBuffer (EPOXY_CALLSPEC *epoxy_eglCreateNativeClientBufferANDROID)(const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreatePbufferFromClientBuffer)(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreatePbufferSurface)(EGLDisplay dpy, EGLConfig config, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreatePixmapSurface)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreatePixmapSurfaceHI)(EGLDisplay dpy, EGLConfig config, struct EGLClientPixmapHI * pixmap);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreatePlatformPixmapSurface)(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreatePlatformPixmapSurfaceEXT)(EGLDisplay dpy, EGLConfig config, void * native_pixmap, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreatePlatformWindowSurface)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreatePlatformWindowSurfaceEXT)(EGLDisplay dpy, EGLConfig config, void * native_window, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLStreamKHR (EPOXY_CALLSPEC *epoxy_eglCreateStreamAttribKHR)(EGLDisplay dpy, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLStreamKHR (EPOXY_CALLSPEC *epoxy_eglCreateStreamFromFileDescriptorKHR)(EGLDisplay dpy, EGLNativeFileDescriptorKHR file_descriptor);
+
+EPOXY_PUBLIC EGLStreamKHR (EPOXY_CALLSPEC *epoxy_eglCreateStreamKHR)(EGLDisplay dpy, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreateStreamProducerSurfaceKHR)(EGLDisplay dpy, EGLConfig config, EGLStreamKHR stream, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSyncKHR (EPOXY_CALLSPEC *epoxy_eglCreateStreamSyncNV)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum type, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSync (EPOXY_CALLSPEC *epoxy_eglCreateSync)(EGLDisplay dpy, EGLenum type, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLSyncKHR (EPOXY_CALLSPEC *epoxy_eglCreateSync64KHR)(EGLDisplay dpy, EGLenum type, const EGLAttribKHR * attrib_list);
+
+EPOXY_PUBLIC EGLSyncKHR (EPOXY_CALLSPEC *epoxy_eglCreateSyncKHR)(EGLDisplay dpy, EGLenum type, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglCreateWindowSurface)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLint (EPOXY_CALLSPEC *epoxy_eglDebugMessageControlKHR)(EGLDEBUGPROCKHR callback, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglDestroyContext)(EGLDisplay dpy, EGLContext ctx);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglDestroyImage)(EGLDisplay dpy, EGLImage image);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglDestroyImageKHR)(EGLDisplay dpy, EGLImageKHR image);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglDestroyStreamKHR)(EGLDisplay dpy, EGLStreamKHR stream);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglDestroySurface)(EGLDisplay dpy, EGLSurface surface);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglDestroySync)(EGLDisplay dpy, EGLSync sync);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglDestroySyncKHR)(EGLDisplay dpy, EGLSyncKHR sync);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglDestroySyncNV)(EGLSyncNV sync);
+
+EPOXY_PUBLIC EGLint (EPOXY_CALLSPEC *epoxy_eglDupNativeFenceFDANDROID)(EGLDisplay dpy, EGLSyncKHR sync);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglExportDMABUFImageMESA)(EGLDisplay dpy, EGLImageKHR image, int * fds, EGLint * strides, EGLint * offsets);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglExportDMABUFImageQueryMESA)(EGLDisplay dpy, EGLImageKHR image, int * fourcc, int * num_planes, EGLuint64KHR * modifiers);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglExportDRMImageMESA)(EGLDisplay dpy, EGLImageKHR image, EGLint * name, EGLint * handle, EGLint * stride);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglFenceNV)(EGLSyncNV sync);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetCompositorTimingANDROID)(EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint * names, EGLnsecsANDROID * values);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetCompositorTimingSupportedANDROID)(EGLDisplay dpy, EGLSurface surface, EGLint name);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetConfigAttrib)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetConfigs)(EGLDisplay dpy, EGLConfig * configs, EGLint config_size, EGLint * num_config);
+
+EPOXY_PUBLIC EGLContext (EPOXY_CALLSPEC *epoxy_eglGetCurrentContext)(void);
+
+EPOXY_PUBLIC EGLDisplay (EPOXY_CALLSPEC *epoxy_eglGetCurrentDisplay)(void);
+
+EPOXY_PUBLIC EGLSurface (EPOXY_CALLSPEC *epoxy_eglGetCurrentSurface)(EGLint readdraw);
+
+EPOXY_PUBLIC EGLDisplay (EPOXY_CALLSPEC *epoxy_eglGetDisplay)(EGLNativeDisplayType display_id);
+
+EPOXY_PUBLIC char * (EPOXY_CALLSPEC *epoxy_eglGetDisplayDriverConfig)(EGLDisplay dpy);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_eglGetDisplayDriverName)(EGLDisplay dpy);
+
+EPOXY_PUBLIC EGLint (EPOXY_CALLSPEC *epoxy_eglGetError)(void);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetFrameTimestampSupportedANDROID)(EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetFrameTimestampsANDROID)(EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint * timestamps, EGLnsecsANDROID * values);
+
+EPOXY_PUBLIC EGLClientBuffer (EPOXY_CALLSPEC *epoxy_eglGetNativeClientBufferANDROID)(const struct AHardwareBuffer * buffer);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetNextFrameIdANDROID)(EGLDisplay dpy, EGLSurface surface, EGLuint64KHR * frameId);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetOutputLayersEXT)(EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputLayerEXT * layers, EGLint max_layers, EGLint * num_layers);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetOutputPortsEXT)(EGLDisplay dpy, const EGLAttrib * attrib_list, EGLOutputPortEXT * ports, EGLint max_ports, EGLint * num_ports);
+
+EPOXY_PUBLIC EGLDisplay (EPOXY_CALLSPEC *epoxy_eglGetPlatformDisplay)(EGLenum platform, void * native_display, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLDisplay (EPOXY_CALLSPEC *epoxy_eglGetPlatformDisplayEXT)(EGLenum platform, void * native_display, const EGLint * attrib_list);
+
+EPOXY_PUBLIC __eglMustCastToProperFunctionPointerType (EPOXY_CALLSPEC *epoxy_eglGetProcAddress)(const char * procname);
+
+EPOXY_PUBLIC EGLNativeFileDescriptorKHR (EPOXY_CALLSPEC *epoxy_eglGetStreamFileDescriptorKHR)(EGLDisplay dpy, EGLStreamKHR stream);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetSyncAttrib)(EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetSyncAttribKHR)(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, EGLint * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglGetSyncAttribNV)(EGLSyncNV sync, EGLint attribute, EGLint * value);
+
+EPOXY_PUBLIC EGLuint64NV (EPOXY_CALLSPEC *epoxy_eglGetSystemTimeFrequencyNV)(void);
+
+EPOXY_PUBLIC EGLuint64NV (EPOXY_CALLSPEC *epoxy_eglGetSystemTimeNV)(void);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglInitialize)(EGLDisplay dpy, EGLint * major, EGLint * minor);
+
+EPOXY_PUBLIC EGLint (EPOXY_CALLSPEC *epoxy_eglLabelObjectKHR)(EGLDisplay display, EGLenum objectType, EGLObjectKHR object, EGLLabelKHR label);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglLockSurfaceKHR)(EGLDisplay dpy, EGLSurface surface, const EGLint * attrib_list);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglMakeCurrent)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglOutputLayerAttribEXT)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglOutputPortAttribEXT)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglPostSubBufferNV)(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglPresentationTimeANDROID)(EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
+
+EPOXY_PUBLIC EGLenum (EPOXY_CALLSPEC *epoxy_eglQueryAPI)(void);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryContext)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryDebugKHR)(EGLint attribute, EGLAttrib * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryDeviceAttribEXT)(EGLDeviceEXT device, EGLint attribute, EGLAttrib * value);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_eglQueryDeviceStringEXT)(EGLDeviceEXT device, EGLint name);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryDevicesEXT)(EGLint max_devices, EGLDeviceEXT * devices, EGLint * num_devices);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryDisplayAttribEXT)(EGLDisplay dpy, EGLint attribute, EGLAttrib * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryDisplayAttribKHR)(EGLDisplay dpy, EGLint name, EGLAttrib * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryDisplayAttribNV)(EGLDisplay dpy, EGLint attribute, EGLAttrib * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryDmaBufFormatsEXT)(EGLDisplay dpy, EGLint max_formats, EGLint * formats, EGLint * num_formats);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryDmaBufModifiersEXT)(EGLDisplay dpy, EGLint format, EGLint max_modifiers, EGLuint64KHR * modifiers, EGLBoolean * external_only, EGLint * num_modifiers);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryNativeDisplayNV)(EGLDisplay dpy, EGLNativeDisplayType * display_id);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryNativePixmapNV)(EGLDisplay dpy, EGLSurface surf, EGLNativePixmapType * pixmap);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryNativeWindowNV)(EGLDisplay dpy, EGLSurface surf, EGLNativeWindowType * window);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryOutputLayerAttribEXT)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint attribute, EGLAttrib * value);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_eglQueryOutputLayerStringEXT)(EGLDisplay dpy, EGLOutputLayerEXT layer, EGLint name);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryOutputPortAttribEXT)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint attribute, EGLAttrib * value);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_eglQueryOutputPortStringEXT)(EGLDisplay dpy, EGLOutputPortEXT port, EGLint name);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryStreamAttribKHR)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryStreamKHR)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryStreamMetadataNV)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum name, EGLint n, EGLint offset, EGLint size, void * data);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryStreamTimeKHR)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLTimeKHR * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQueryStreamu64KHR)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLuint64KHR * value);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_eglQueryString)(EGLDisplay dpy, EGLint name);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQuerySurface)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQuerySurface64KHR)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLAttribKHR * value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglQuerySurfacePointerANGLE)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void ** value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglReleaseTexImage)(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglReleaseThread)(void);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglResetStreamNV)(EGLDisplay dpy, EGLStreamKHR stream);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_eglSetBlobCacheFuncsANDROID)(EGLDisplay dpy, EGLSetBlobFuncANDROID set, EGLGetBlobFuncANDROID get);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSetDamageRegionKHR)(EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSetStreamAttribKHR)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSetStreamMetadataNV)(EGLDisplay dpy, EGLStreamKHR stream, EGLint n, EGLint offset, EGLint size, const void * data);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSignalSyncKHR)(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSignalSyncNV)(EGLSyncNV sync, EGLenum mode);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamAttribKHR)(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLint value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamConsumerAcquireAttribKHR)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamConsumerAcquireKHR)(EGLDisplay dpy, EGLStreamKHR stream);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamConsumerGLTextureExternalAttribsNV)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamConsumerGLTextureExternalKHR)(EGLDisplay dpy, EGLStreamKHR stream);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamConsumerOutputEXT)(EGLDisplay dpy, EGLStreamKHR stream, EGLOutputLayerEXT layer);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamConsumerReleaseAttribKHR)(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamConsumerReleaseKHR)(EGLDisplay dpy, EGLStreamKHR stream);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglStreamFlushNV)(EGLDisplay dpy, EGLStreamKHR stream);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSurfaceAttrib)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSwapBuffers)(EGLDisplay dpy, EGLSurface surface);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSwapBuffersRegion2NOK)(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSwapBuffersRegionNOK)(EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint * rects);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSwapBuffersWithDamageEXT)(EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSwapBuffersWithDamageKHR)(EGLDisplay dpy, EGLSurface surface, EGLint * rects, EGLint n_rects);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglSwapInterval)(EGLDisplay dpy, EGLint interval);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglTerminate)(EGLDisplay dpy);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglUnlockSurfaceKHR)(EGLDisplay dpy, EGLSurface surface);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglUnsignalSyncEXT)(EGLDisplay dpy, EGLSync sync, const EGLAttrib * attrib_list);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglWaitClient)(void);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglWaitGL)(void);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglWaitNative)(EGLint engine);
+
+EPOXY_PUBLIC EGLBoolean (EPOXY_CALLSPEC *epoxy_eglWaitSync)(EGLDisplay dpy, EGLSync sync, EGLint flags);
+
+EPOXY_PUBLIC EGLint (EPOXY_CALLSPEC *epoxy_eglWaitSyncKHR)(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags);
+
+#define eglBindAPI epoxy_eglBindAPI
+#define eglBindTexImage epoxy_eglBindTexImage
+#define eglChooseConfig epoxy_eglChooseConfig
+#define eglClientSignalSyncEXT epoxy_eglClientSignalSyncEXT
+#define eglClientWaitSync epoxy_eglClientWaitSync
+#define eglClientWaitSyncKHR epoxy_eglClientWaitSyncKHR
+#define eglClientWaitSyncNV epoxy_eglClientWaitSyncNV
+#define eglCompositorBindTexWindowEXT epoxy_eglCompositorBindTexWindowEXT
+#define eglCompositorSetContextAttributesEXT epoxy_eglCompositorSetContextAttributesEXT
+#define eglCompositorSetContextListEXT epoxy_eglCompositorSetContextListEXT
+#define eglCompositorSetSizeEXT epoxy_eglCompositorSetSizeEXT
+#define eglCompositorSetWindowAttributesEXT epoxy_eglCompositorSetWindowAttributesEXT
+#define eglCompositorSetWindowListEXT epoxy_eglCompositorSetWindowListEXT
+#define eglCompositorSwapPolicyEXT epoxy_eglCompositorSwapPolicyEXT
+#define eglCopyBuffers epoxy_eglCopyBuffers
+#define eglCreateContext epoxy_eglCreateContext
+#define eglCreateDRMImageMESA epoxy_eglCreateDRMImageMESA
+#define eglCreateFenceSyncNV epoxy_eglCreateFenceSyncNV
+#define eglCreateImage epoxy_eglCreateImage
+#define eglCreateImageKHR epoxy_eglCreateImageKHR
+#define eglCreateNativeClientBufferANDROID epoxy_eglCreateNativeClientBufferANDROID
+#define eglCreatePbufferFromClientBuffer epoxy_eglCreatePbufferFromClientBuffer
+#define eglCreatePbufferSurface epoxy_eglCreatePbufferSurface
+#define eglCreatePixmapSurface epoxy_eglCreatePixmapSurface
+#define eglCreatePixmapSurfaceHI epoxy_eglCreatePixmapSurfaceHI
+#define eglCreatePlatformPixmapSurface epoxy_eglCreatePlatformPixmapSurface
+#define eglCreatePlatformPixmapSurfaceEXT epoxy_eglCreatePlatformPixmapSurfaceEXT
+#define eglCreatePlatformWindowSurface epoxy_eglCreatePlatformWindowSurface
+#define eglCreatePlatformWindowSurfaceEXT epoxy_eglCreatePlatformWindowSurfaceEXT
+#define eglCreateStreamAttribKHR epoxy_eglCreateStreamAttribKHR
+#define eglCreateStreamFromFileDescriptorKHR epoxy_eglCreateStreamFromFileDescriptorKHR
+#define eglCreateStreamKHR epoxy_eglCreateStreamKHR
+#define eglCreateStreamProducerSurfaceKHR epoxy_eglCreateStreamProducerSurfaceKHR
+#define eglCreateStreamSyncNV epoxy_eglCreateStreamSyncNV
+#define eglCreateSync epoxy_eglCreateSync
+#define eglCreateSync64KHR epoxy_eglCreateSync64KHR
+#define eglCreateSyncKHR epoxy_eglCreateSyncKHR
+#define eglCreateWindowSurface epoxy_eglCreateWindowSurface
+#define eglDebugMessageControlKHR epoxy_eglDebugMessageControlKHR
+#define eglDestroyContext epoxy_eglDestroyContext
+#define eglDestroyImage epoxy_eglDestroyImage
+#define eglDestroyImageKHR epoxy_eglDestroyImageKHR
+#define eglDestroyStreamKHR epoxy_eglDestroyStreamKHR
+#define eglDestroySurface epoxy_eglDestroySurface
+#define eglDestroySync epoxy_eglDestroySync
+#define eglDestroySyncKHR epoxy_eglDestroySyncKHR
+#define eglDestroySyncNV epoxy_eglDestroySyncNV
+#define eglDupNativeFenceFDANDROID epoxy_eglDupNativeFenceFDANDROID
+#define eglExportDMABUFImageMESA epoxy_eglExportDMABUFImageMESA
+#define eglExportDMABUFImageQueryMESA epoxy_eglExportDMABUFImageQueryMESA
+#define eglExportDRMImageMESA epoxy_eglExportDRMImageMESA
+#define eglFenceNV epoxy_eglFenceNV
+#define eglGetCompositorTimingANDROID epoxy_eglGetCompositorTimingANDROID
+#define eglGetCompositorTimingSupportedANDROID epoxy_eglGetCompositorTimingSupportedANDROID
+#define eglGetConfigAttrib epoxy_eglGetConfigAttrib
+#define eglGetConfigs epoxy_eglGetConfigs
+#define eglGetCurrentContext epoxy_eglGetCurrentContext
+#define eglGetCurrentDisplay epoxy_eglGetCurrentDisplay
+#define eglGetCurrentSurface epoxy_eglGetCurrentSurface
+#define eglGetDisplay epoxy_eglGetDisplay
+#define eglGetDisplayDriverConfig epoxy_eglGetDisplayDriverConfig
+#define eglGetDisplayDriverName epoxy_eglGetDisplayDriverName
+#define eglGetError epoxy_eglGetError
+#define eglGetFrameTimestampSupportedANDROID epoxy_eglGetFrameTimestampSupportedANDROID
+#define eglGetFrameTimestampsANDROID epoxy_eglGetFrameTimestampsANDROID
+#define eglGetNativeClientBufferANDROID epoxy_eglGetNativeClientBufferANDROID
+#define eglGetNextFrameIdANDROID epoxy_eglGetNextFrameIdANDROID
+#define eglGetOutputLayersEXT epoxy_eglGetOutputLayersEXT
+#define eglGetOutputPortsEXT epoxy_eglGetOutputPortsEXT
+#define eglGetPlatformDisplay epoxy_eglGetPlatformDisplay
+#define eglGetPlatformDisplayEXT epoxy_eglGetPlatformDisplayEXT
+#define eglGetProcAddress epoxy_eglGetProcAddress
+#define eglGetStreamFileDescriptorKHR epoxy_eglGetStreamFileDescriptorKHR
+#define eglGetSyncAttrib epoxy_eglGetSyncAttrib
+#define eglGetSyncAttribKHR epoxy_eglGetSyncAttribKHR
+#define eglGetSyncAttribNV epoxy_eglGetSyncAttribNV
+#define eglGetSystemTimeFrequencyNV epoxy_eglGetSystemTimeFrequencyNV
+#define eglGetSystemTimeNV epoxy_eglGetSystemTimeNV
+#define eglInitialize epoxy_eglInitialize
+#define eglLabelObjectKHR epoxy_eglLabelObjectKHR
+#define eglLockSurfaceKHR epoxy_eglLockSurfaceKHR
+#define eglMakeCurrent epoxy_eglMakeCurrent
+#define eglOutputLayerAttribEXT epoxy_eglOutputLayerAttribEXT
+#define eglOutputPortAttribEXT epoxy_eglOutputPortAttribEXT
+#define eglPostSubBufferNV epoxy_eglPostSubBufferNV
+#define eglPresentationTimeANDROID epoxy_eglPresentationTimeANDROID
+#define eglQueryAPI epoxy_eglQueryAPI
+#define eglQueryContext epoxy_eglQueryContext
+#define eglQueryDebugKHR epoxy_eglQueryDebugKHR
+#define eglQueryDeviceAttribEXT epoxy_eglQueryDeviceAttribEXT
+#define eglQueryDeviceStringEXT epoxy_eglQueryDeviceStringEXT
+#define eglQueryDevicesEXT epoxy_eglQueryDevicesEXT
+#define eglQueryDisplayAttribEXT epoxy_eglQueryDisplayAttribEXT
+#define eglQueryDisplayAttribKHR epoxy_eglQueryDisplayAttribKHR
+#define eglQueryDisplayAttribNV epoxy_eglQueryDisplayAttribNV
+#define eglQueryDmaBufFormatsEXT epoxy_eglQueryDmaBufFormatsEXT
+#define eglQueryDmaBufModifiersEXT epoxy_eglQueryDmaBufModifiersEXT
+#define eglQueryNativeDisplayNV epoxy_eglQueryNativeDisplayNV
+#define eglQueryNativePixmapNV epoxy_eglQueryNativePixmapNV
+#define eglQueryNativeWindowNV epoxy_eglQueryNativeWindowNV
+#define eglQueryOutputLayerAttribEXT epoxy_eglQueryOutputLayerAttribEXT
+#define eglQueryOutputLayerStringEXT epoxy_eglQueryOutputLayerStringEXT
+#define eglQueryOutputPortAttribEXT epoxy_eglQueryOutputPortAttribEXT
+#define eglQueryOutputPortStringEXT epoxy_eglQueryOutputPortStringEXT
+#define eglQueryStreamAttribKHR epoxy_eglQueryStreamAttribKHR
+#define eglQueryStreamKHR epoxy_eglQueryStreamKHR
+#define eglQueryStreamMetadataNV epoxy_eglQueryStreamMetadataNV
+#define eglQueryStreamTimeKHR epoxy_eglQueryStreamTimeKHR
+#define eglQueryStreamu64KHR epoxy_eglQueryStreamu64KHR
+#define eglQueryString epoxy_eglQueryString
+#define eglQuerySurface epoxy_eglQuerySurface
+#define eglQuerySurface64KHR epoxy_eglQuerySurface64KHR
+#define eglQuerySurfacePointerANGLE epoxy_eglQuerySurfacePointerANGLE
+#define eglReleaseTexImage epoxy_eglReleaseTexImage
+#define eglReleaseThread epoxy_eglReleaseThread
+#define eglResetStreamNV epoxy_eglResetStreamNV
+#define eglSetBlobCacheFuncsANDROID epoxy_eglSetBlobCacheFuncsANDROID
+#define eglSetDamageRegionKHR epoxy_eglSetDamageRegionKHR
+#define eglSetStreamAttribKHR epoxy_eglSetStreamAttribKHR
+#define eglSetStreamMetadataNV epoxy_eglSetStreamMetadataNV
+#define eglSignalSyncKHR epoxy_eglSignalSyncKHR
+#define eglSignalSyncNV epoxy_eglSignalSyncNV
+#define eglStreamAttribKHR epoxy_eglStreamAttribKHR
+#define eglStreamConsumerAcquireAttribKHR epoxy_eglStreamConsumerAcquireAttribKHR
+#define eglStreamConsumerAcquireKHR epoxy_eglStreamConsumerAcquireKHR
+#define eglStreamConsumerGLTextureExternalAttribsNV epoxy_eglStreamConsumerGLTextureExternalAttribsNV
+#define eglStreamConsumerGLTextureExternalKHR epoxy_eglStreamConsumerGLTextureExternalKHR
+#define eglStreamConsumerOutputEXT epoxy_eglStreamConsumerOutputEXT
+#define eglStreamConsumerReleaseAttribKHR epoxy_eglStreamConsumerReleaseAttribKHR
+#define eglStreamConsumerReleaseKHR epoxy_eglStreamConsumerReleaseKHR
+#define eglStreamFlushNV epoxy_eglStreamFlushNV
+#define eglSurfaceAttrib epoxy_eglSurfaceAttrib
+#define eglSwapBuffers epoxy_eglSwapBuffers
+#define eglSwapBuffersRegion2NOK epoxy_eglSwapBuffersRegion2NOK
+#define eglSwapBuffersRegionNOK epoxy_eglSwapBuffersRegionNOK
+#define eglSwapBuffersWithDamageEXT epoxy_eglSwapBuffersWithDamageEXT
+#define eglSwapBuffersWithDamageKHR epoxy_eglSwapBuffersWithDamageKHR
+#define eglSwapInterval epoxy_eglSwapInterval
+#define eglTerminate epoxy_eglTerminate
+#define eglUnlockSurfaceKHR epoxy_eglUnlockSurfaceKHR
+#define eglUnsignalSyncEXT epoxy_eglUnsignalSyncEXT
+#define eglWaitClient epoxy_eglWaitClient
+#define eglWaitGL epoxy_eglWaitGL
+#define eglWaitNative epoxy_eglWaitNative
+#define eglWaitSync epoxy_eglWaitSync
+#define eglWaitSyncKHR epoxy_eglWaitSyncKHR
diff --git a/third_party/epoxy/epoxy/eglplatform.h b/third_party/epoxy/epoxy/eglplatform.h
new file mode 100644
index 0000000000..fb4803a310
--- /dev/null
+++ b/third_party/epoxy/epoxy/eglplatform.h
@@ -0,0 +1,169 @@
+#ifndef __eglplatform_h_
+#define __eglplatform_h_
+
+/*
+** Copyright 2007-2020 The Khronos Group Inc.
+** SPDX-License-Identifier: Apache-2.0
+*/
+
+/* Platform-specific types and definitions for egl.h
+ *
+ * Adopters may modify khrplatform.h and this file to suit their platform.
+ * You are encouraged to submit all modifications to the Khronos group so that
+ * they can be included in future versions of this file.  Please submit changes
+ * by filing an issue or pull request on the public Khronos EGL Registry, at
+ * https://www.github.com/KhronosGroup/EGL-Registry/
+ */
+
+#include "khrplatform.h"
+
+/* Macros used in EGL function prototype declarations.
+ *
+ * EGL functions should be prototyped as:
+ *
+ * EGLAPI return-type EGLAPIENTRY eglFunction(arguments);
+ * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments);
+ *
+ * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h
+ */
+
+#ifndef EGLAPI
+#define EGLAPI KHRONOS_APICALL
+#endif
+
+#ifndef EGLAPIENTRY
+#define EGLAPIENTRY  KHRONOS_APIENTRY
+#endif
+#define EGLAPIENTRYP EGLAPIENTRY*
+
+/* The types NativeDisplayType, NativeWindowType, and NativePixmapType
+ * are aliases of window-system-dependent types, such as X Display * or
+ * Windows Device Context. They must be defined in platform-specific
+ * code below. The EGL-prefixed versions of Native*Type are the same
+ * types, renamed in EGL 1.3 so all types in the API start with "EGL".
+ *
+ * Khronos STRONGLY RECOMMENDS that you use the default definitions
+ * provided below, since these changes affect both binary and source
+ * portability of applications using EGL running on different EGL
+ * implementations.
+ */
+
+#if defined(EGL_NO_PLATFORM_SPECIFIC_TYPES)
+
+typedef void *EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */
+#ifndef WIN32_LEAN_AND_MEAN
+#define WIN32_LEAN_AND_MEAN 1
+#endif
+#include <windows.h>
+
+typedef HDC     EGLNativeDisplayType;
+typedef HBITMAP EGLNativePixmapType;
+typedef HWND    EGLNativeWindowType;
+
+#elif defined(__EMSCRIPTEN__)
+
+typedef int EGLNativeDisplayType;
+typedef int EGLNativePixmapType;
+typedef int EGLNativeWindowType;
+
+#elif defined(__WINSCW__) || defined(__SYMBIAN32__)  /* Symbian */
+
+typedef int   EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(WL_EGL_PLATFORM)
+
+typedef struct wl_display     *EGLNativeDisplayType;
+typedef struct wl_egl_pixmap  *EGLNativePixmapType;
+typedef struct wl_egl_window  *EGLNativeWindowType;
+
+#elif defined(__GBM__)
+
+typedef struct gbm_device  *EGLNativeDisplayType;
+typedef struct gbm_bo      *EGLNativePixmapType;
+typedef void               *EGLNativeWindowType;
+
+#elif defined(__ANDROID__) || defined(ANDROID)
+
+struct ANativeWindow;
+struct egl_native_pixmap_t;
+
+typedef void*                           EGLNativeDisplayType;
+typedef struct egl_native_pixmap_t*     EGLNativePixmapType;
+typedef struct ANativeWindow*           EGLNativeWindowType;
+
+#elif defined(USE_OZONE)
+
+typedef intptr_t EGLNativeDisplayType;
+typedef intptr_t EGLNativePixmapType;
+typedef intptr_t EGLNativeWindowType;
+
+#elif defined(USE_X11)
+
+/* X11 (tentative)  */
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+typedef Display *EGLNativeDisplayType;
+typedef Pixmap   EGLNativePixmapType;
+typedef Window   EGLNativeWindowType;
+
+#elif defined(__unix__)
+
+typedef void             *EGLNativeDisplayType;
+typedef khronos_uintptr_t EGLNativePixmapType;
+typedef khronos_uintptr_t EGLNativeWindowType;
+
+#elif defined(__APPLE__)
+
+typedef int   EGLNativeDisplayType;
+typedef void *EGLNativePixmapType;
+typedef void *EGLNativeWindowType;
+
+#elif defined(__HAIKU__)
+
+#include <kernel/image.h>
+
+typedef void              *EGLNativeDisplayType;
+typedef khronos_uintptr_t  EGLNativePixmapType;
+typedef khronos_uintptr_t  EGLNativeWindowType;
+
+#elif defined(__Fuchsia__)
+
+typedef void              *EGLNativeDisplayType;
+typedef khronos_uintptr_t  EGLNativePixmapType;
+typedef khronos_uintptr_t  EGLNativeWindowType;
+
+#else
+#error "Platform not recognized"
+#endif
+
+/* EGL 1.2 types, renamed for consistency in EGL 1.3 */
+typedef EGLNativeDisplayType NativeDisplayType;
+typedef EGLNativePixmapType  NativePixmapType;
+typedef EGLNativeWindowType  NativeWindowType;
+
+
+/* Define EGLint. This must be a signed integral type large enough to contain
+ * all legal attribute names and values passed into and out of EGL, whether
+ * their type is boolean, bitmask, enumerant (symbolic constant), integer,
+ * handle, or other.  While in general a 32-bit integer will suffice, if
+ * handles are 64 bit types, then EGLint should be defined as a signed 64-bit
+ * integer type.
+ */
+typedef khronos_int32_t EGLint;
+
+
+/* C++ / C typecast macros for special EGL handle values */
+#if defined(__cplusplus)
+#define EGL_CAST(type, value) (static_cast<type>(value))
+#else
+#define EGL_CAST(type, value) ((type) (value))
+#endif
+
+#endif /* __eglplatform_h */
diff --git a/third_party/epoxy/epoxy/gl.h b/third_party/epoxy/epoxy/gl.h
new file mode 100644
index 0000000000..1fef4ba889
--- /dev/null
+++ b/third_party/epoxy/epoxy/gl.h
@@ -0,0 +1,112 @@
+/*
+ * Copyright © 2013 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/** @file gl.h
+ *
+ * Provides an implementation of a GL dispatch layer using either
+ * global function pointers or a hidden vtable.
+ *
+ * You should include `<epoxy/gl.h>` instead of `<GL/gl.h>` and `<GL/glext.h>`.
+ */
+
+#ifndef EPOXY_GL_H
+#define EPOXY_GL_H
+
+#include "epoxy/common.h"
+
+#if defined(__gl_h_) || defined(__glext_h_)
+#error epoxy/gl.h must be included before (or in place of) GL/gl.h
+#else
+#define __gl_h_
+#define __glext_h_
+#endif
+
+#define KHRONOS_SUPPORT_INT64   1
+#define KHRONOS_SUPPORT_FLOAT   1
+#define KHRONOS_APIATTRIBUTES
+
+#ifndef _WIN32
+/* APIENTRY and GLAPIENTRY are not used on Linux or Mac. */
+#define APIENTRY
+#define GLAPIENTRY
+#define EPOXY_CALLSPEC
+#define GLAPI
+#define KHRONOS_APIENTRY
+#define KHRONOS_APICALL
+
+#else
+#ifndef APIENTRY
+#define APIENTRY __stdcall
+#endif
+
+#ifndef GLAPIENTRY
+#define GLAPIENTRY APIENTRY
+#endif
+
+#ifndef EPOXY_CALLSPEC
+#define EPOXY_CALLSPEC __stdcall
+#endif
+
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+#define KHRONOS_APIENTRY __stdcall
+#define KHRONOS_APICALL __declspec(dllimport) __stdcall
+
+#endif /* _WIN32 */
+
+#ifndef APIENTRYP
+#define APIENTRYP APIENTRY *
+#endif
+
+#ifndef GLAPIENTRYP
+#define GLAPIENTRYP GLAPIENTRY *
+#endif
+
+EPOXY_BEGIN_DECLS
+
+#include "epoxy/gl_generated.h"
+
+EPOXY_PUBLIC bool epoxy_has_gl_extension(const char *extension);
+EPOXY_PUBLIC bool epoxy_is_desktop_gl(void);
+EPOXY_PUBLIC int epoxy_gl_version(void);
+EPOXY_PUBLIC int epoxy_glsl_version(void);
+
+/*
+ * the type of the stub function that the failure handler must return;
+ * this function will be called on subsequent calls to the same bogus
+ * function name
+ */
+typedef void (*epoxy_resolver_stub_t)(void);
+
+/* the type of the failure handler itself */
+typedef epoxy_resolver_stub_t
+(*epoxy_resolver_failure_handler_t)(const char *name);
+
+EPOXY_PUBLIC epoxy_resolver_failure_handler_t
+epoxy_set_resolver_failure_handler(epoxy_resolver_failure_handler_t handler);
+
+EPOXY_END_DECLS
+
+#endif /* EPOXY_GL_H */
diff --git a/third_party/epoxy/epoxy/gl_generated.h b/third_party/epoxy/epoxy/gl_generated.h
new file mode 100644
index 0000000000..f0775c32e6
--- /dev/null
+++ b/third_party/epoxy/epoxy/gl_generated.h
@@ -0,0 +1,19945 @@
+/* GL dispatch header.
+ * This is code-generated from the GL API XML files from Khronos.
+ *
+ * Copyright (c) 2013-2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#pragma once
+#include <inttypes.h>
+#include <stddef.h>
+
+#include "epoxy/common.h"
+#define __khrplatform_h_ 1
+typedef int8_t khronos_int8_t;
+typedef int16_t khronos_int16_t;
+typedef int32_t khronos_int32_t;
+typedef int64_t khronos_int64_t;
+typedef uint8_t khronos_uint8_t;
+typedef uint16_t khronos_uint16_t;
+typedef uint32_t khronos_uint32_t;
+typedef uint64_t khronos_uint64_t;
+typedef float khronos_float_t;
+#ifdef _WIN64
+typedef signed   long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+typedef signed   long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
+typedef signed   long int      khronos_intptr_t;
+typedef unsigned long int      khronos_uintptr_t;
+typedef signed   long int      khronos_ssize_t;
+typedef unsigned long int      khronos_usize_t;
+#endif
+typedef uint64_t khronos_utime_nanoseconds_t;
+typedef int64_t khronos_stime_nanoseconds_t;
+#define KHRONOS_MAX_ENUM 0x7FFFFFFF
+typedef enum {
+    KHRONOS_FALSE = 0,
+    KHRONOS_TRUE  = 1,
+    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
+} khronos_boolean_enum_t;
+typedef unsigned int GLenum;
+typedef unsigned char GLboolean;
+typedef unsigned int GLbitfield;
+typedef void GLvoid;
+typedef khronos_int8_t GLbyte;
+typedef khronos_uint8_t GLubyte;
+typedef khronos_int16_t GLshort;
+typedef khronos_uint16_t GLushort;
+typedef int GLint;
+typedef unsigned int GLuint;
+typedef khronos_int32_t GLclampx;
+typedef int GLsizei;
+typedef khronos_float_t GLfloat;
+typedef khronos_float_t GLclampf;
+typedef double GLdouble;
+typedef double GLclampd;
+typedef void *GLeglClientBufferEXT;
+typedef void *GLeglImageOES;
+typedef char GLchar;
+typedef char GLcharARB;
+#ifdef __APPLE__
+typedef void *GLhandleARB;
+#else
+typedef unsigned int GLhandleARB;
+#endif
+typedef khronos_uint16_t GLhalf;
+typedef khronos_uint16_t GLhalfARB;
+typedef khronos_int32_t GLfixed;
+typedef khronos_intptr_t GLintptr;
+typedef khronos_intptr_t GLintptrARB;
+typedef khronos_ssize_t GLsizeiptr;
+typedef khronos_ssize_t GLsizeiptrARB;
+typedef khronos_int64_t GLint64;
+typedef khronos_int64_t GLint64EXT;
+typedef khronos_uint64_t GLuint64;
+typedef khronos_uint64_t GLuint64EXT;
+typedef struct __GLsync *GLsync;
+struct _cl_context;
+struct _cl_event;
+typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+typedef void (APIENTRY *GLDEBUGPROCKHR)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,const void *userParam);
+typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,void *userParam);
+typedef unsigned short GLhalfNV;
+typedef GLintptr GLvdpauSurfaceNV;
+typedef void (APIENTRY *GLVULKANPROCNV)(void);
+
+#define GL_ES_VERSION_2_0 1
+#define GL_ES_VERSION_3_0 1
+#define GL_ES_VERSION_3_1 1
+#define GL_ES_VERSION_3_2 1
+#define GL_SC_VERSION_2_0 1
+#define GL_VERSION_1_0 1
+#define GL_VERSION_1_1 1
+#define GL_VERSION_1_2 1
+#define GL_VERSION_1_3 1
+#define GL_VERSION_1_4 1
+#define GL_VERSION_1_5 1
+#define GL_VERSION_2_0 1
+#define GL_VERSION_2_1 1
+#define GL_VERSION_3_0 1
+#define GL_VERSION_3_1 1
+#define GL_VERSION_3_2 1
+#define GL_VERSION_3_3 1
+#define GL_VERSION_4_0 1
+#define GL_VERSION_4_1 1
+#define GL_VERSION_4_2 1
+#define GL_VERSION_4_3 1
+#define GL_VERSION_4_4 1
+#define GL_VERSION_4_5 1
+#define GL_VERSION_4_6 1
+#define GL_VERSION_ES_CM_1_0 1
+
+#define GL_3DFX_multisample 1
+#define GL_3DFX_tbuffer 1
+#define GL_3DFX_texture_compression_FXT1 1
+#define GL_AMD_blend_minmax_factor 1
+#define GL_AMD_compressed_3DC_texture 1
+#define GL_AMD_compressed_ATC_texture 1
+#define GL_AMD_conservative_depth 1
+#define GL_AMD_debug_output 1
+#define GL_AMD_depth_clamp_separate 1
+#define GL_AMD_draw_buffers_blend 1
+#define GL_AMD_framebuffer_multisample_advanced 1
+#define GL_AMD_framebuffer_sample_positions 1
+#define GL_AMD_gcn_shader 1
+#define GL_AMD_gpu_shader_half_float 1
+#define GL_AMD_gpu_shader_int16 1
+#define GL_AMD_gpu_shader_int64 1
+#define GL_AMD_interleaved_elements 1
+#define GL_AMD_multi_draw_indirect 1
+#define GL_AMD_name_gen_delete 1
+#define GL_AMD_occlusion_query_event 1
+#define GL_AMD_performance_monitor 1
+#define GL_AMD_pinned_memory 1
+#define GL_AMD_program_binary_Z400 1
+#define GL_AMD_query_buffer_object 1
+#define GL_AMD_sample_positions 1
+#define GL_AMD_seamless_cubemap_per_texture 1
+#define GL_AMD_shader_atomic_counter_ops 1
+#define GL_AMD_shader_ballot 1
+#define GL_AMD_shader_explicit_vertex_parameter 1
+#define GL_AMD_shader_gpu_shader_half_float_fetch 1
+#define GL_AMD_shader_image_load_store_lod 1
+#define GL_AMD_shader_stencil_export 1
+#define GL_AMD_shader_trinary_minmax 1
+#define GL_AMD_sparse_texture 1
+#define GL_AMD_stencil_operation_extended 1
+#define GL_AMD_texture_gather_bias_lod 1
+#define GL_AMD_texture_texture4 1
+#define GL_AMD_transform_feedback3_lines_triangles 1
+#define GL_AMD_transform_feedback4 1
+#define GL_AMD_vertex_shader_layer 1
+#define GL_AMD_vertex_shader_tessellator 1
+#define GL_AMD_vertex_shader_viewport_index 1
+#define GL_ANDROID_extension_pack_es31a 1
+#define GL_ANGLE_depth_texture 1
+#define GL_ANGLE_framebuffer_blit 1
+#define GL_ANGLE_framebuffer_multisample 1
+#define GL_ANGLE_instanced_arrays 1
+#define GL_ANGLE_pack_reverse_row_order 1
+#define GL_ANGLE_program_binary 1
+#define GL_ANGLE_texture_compression_dxt3 1
+#define GL_ANGLE_texture_compression_dxt5 1
+#define GL_ANGLE_texture_usage 1
+#define GL_ANGLE_translated_shader_source 1
+#define GL_APPLE_aux_depth_stencil 1
+#define GL_APPLE_client_storage 1
+#define GL_APPLE_clip_distance 1
+#define GL_APPLE_color_buffer_packed_float 1
+#define GL_APPLE_copy_texture_levels 1
+#define GL_APPLE_element_array 1
+#define GL_APPLE_fence 1
+#define GL_APPLE_float_pixels 1
+#define GL_APPLE_flush_buffer_range 1
+#define GL_APPLE_framebuffer_multisample 1
+#define GL_APPLE_object_purgeable 1
+#define GL_APPLE_rgb_422 1
+#define GL_APPLE_row_bytes 1
+#define GL_APPLE_specular_vector 1
+#define GL_APPLE_sync 1
+#define GL_APPLE_texture_2D_limited_npot 1
+#define GL_APPLE_texture_format_BGRA8888 1
+#define GL_APPLE_texture_max_level 1
+#define GL_APPLE_texture_packed_float 1
+#define GL_APPLE_texture_range 1
+#define GL_APPLE_transform_hint 1
+#define GL_APPLE_vertex_array_object 1
+#define GL_APPLE_vertex_array_range 1
+#define GL_APPLE_vertex_program_evaluators 1
+#define GL_APPLE_ycbcr_422 1
+#define GL_ARB_ES2_compatibility 1
+#define GL_ARB_ES3_1_compatibility 1
+#define GL_ARB_ES3_2_compatibility 1
+#define GL_ARB_ES3_compatibility 1
+#define GL_ARB_arrays_of_arrays 1
+#define GL_ARB_base_instance 1
+#define GL_ARB_bindless_texture 1
+#define GL_ARB_blend_func_extended 1
+#define GL_ARB_buffer_storage 1
+#define GL_ARB_cl_event 1
+#define GL_ARB_clear_buffer_object 1
+#define GL_ARB_clear_texture 1
+#define GL_ARB_clip_control 1
+#define GL_ARB_color_buffer_float 1
+#define GL_ARB_compatibility 1
+#define GL_ARB_compressed_texture_pixel_storage 1
+#define GL_ARB_compute_shader 1
+#define GL_ARB_compute_variable_group_size 1
+#define GL_ARB_conditional_render_inverted 1
+#define GL_ARB_conservative_depth 1
+#define GL_ARB_copy_buffer 1
+#define GL_ARB_copy_image 1
+#define GL_ARB_cull_distance 1
+#define GL_ARB_debug_output 1
+#define GL_ARB_depth_buffer_float 1
+#define GL_ARB_depth_clamp 1
+#define GL_ARB_depth_texture 1
+#define GL_ARB_derivative_control 1
+#define GL_ARB_direct_state_access 1
+#define GL_ARB_draw_buffers 1
+#define GL_ARB_draw_buffers_blend 1
+#define GL_ARB_draw_elements_base_vertex 1
+#define GL_ARB_draw_indirect 1
+#define GL_ARB_draw_instanced 1
+#define GL_ARB_enhanced_layouts 1
+#define GL_ARB_explicit_attrib_location 1
+#define GL_ARB_explicit_uniform_location 1
+#define GL_ARB_fragment_coord_conventions 1
+#define GL_ARB_fragment_layer_viewport 1
+#define GL_ARB_fragment_program 1
+#define GL_ARB_fragment_program_shadow 1
+#define GL_ARB_fragment_shader 1
+#define GL_ARB_fragment_shader_interlock 1
+#define GL_ARB_framebuffer_no_attachments 1
+#define GL_ARB_framebuffer_object 1
+#define GL_ARB_framebuffer_sRGB 1
+#define GL_ARB_geometry_shader4 1
+#define GL_ARB_get_program_binary 1
+#define GL_ARB_get_texture_sub_image 1
+#define GL_ARB_gl_spirv 1
+#define GL_ARB_gpu_shader5 1
+#define GL_ARB_gpu_shader_fp64 1
+#define GL_ARB_gpu_shader_int64 1
+#define GL_ARB_half_float_pixel 1
+#define GL_ARB_half_float_vertex 1
+#define GL_ARB_imaging 1
+#define GL_ARB_indirect_parameters 1
+#define GL_ARB_instanced_arrays 1
+#define GL_ARB_internalformat_query 1
+#define GL_ARB_internalformat_query2 1
+#define GL_ARB_invalidate_subdata 1
+#define GL_ARB_map_buffer_alignment 1
+#define GL_ARB_map_buffer_range 1
+#define GL_ARB_matrix_palette 1
+#define GL_ARB_multi_bind 1
+#define GL_ARB_multi_draw_indirect 1
+#define GL_ARB_multisample 1
+#define GL_ARB_multitexture 1
+#define GL_ARB_occlusion_query 1
+#define GL_ARB_occlusion_query2 1
+#define GL_ARB_parallel_shader_compile 1
+#define GL_ARB_pipeline_statistics_query 1
+#define GL_ARB_pixel_buffer_object 1
+#define GL_ARB_point_parameters 1
+#define GL_ARB_point_sprite 1
+#define GL_ARB_polygon_offset_clamp 1
+#define GL_ARB_post_depth_coverage 1
+#define GL_ARB_program_interface_query 1
+#define GL_ARB_provoking_vertex 1
+#define GL_ARB_query_buffer_object 1
+#define GL_ARB_robust_buffer_access_behavior 1
+#define GL_ARB_robustness 1
+#define GL_ARB_robustness_isolation 1
+#define GL_ARB_sample_locations 1
+#define GL_ARB_sample_shading 1
+#define GL_ARB_sampler_objects 1
+#define GL_ARB_seamless_cube_map 1
+#define GL_ARB_seamless_cubemap_per_texture 1
+#define GL_ARB_separate_shader_objects 1
+#define GL_ARB_shader_atomic_counter_ops 1
+#define GL_ARB_shader_atomic_counters 1
+#define GL_ARB_shader_ballot 1
+#define GL_ARB_shader_bit_encoding 1
+#define GL_ARB_shader_clock 1
+#define GL_ARB_shader_draw_parameters 1
+#define GL_ARB_shader_group_vote 1
+#define GL_ARB_shader_image_load_store 1
+#define GL_ARB_shader_image_size 1
+#define GL_ARB_shader_objects 1
+#define GL_ARB_shader_precision 1
+#define GL_ARB_shader_stencil_export 1
+#define GL_ARB_shader_storage_buffer_object 1
+#define GL_ARB_shader_subroutine 1
+#define GL_ARB_shader_texture_image_samples 1
+#define GL_ARB_shader_texture_lod 1
+#define GL_ARB_shader_viewport_layer_array 1
+#define GL_ARB_shading_language_100 1
+#define GL_ARB_shading_language_420pack 1
+#define GL_ARB_shading_language_include 1
+#define GL_ARB_shading_language_packing 1
+#define GL_ARB_shadow 1
+#define GL_ARB_shadow_ambient 1
+#define GL_ARB_sparse_buffer 1
+#define GL_ARB_sparse_texture 1
+#define GL_ARB_sparse_texture2 1
+#define GL_ARB_sparse_texture_clamp 1
+#define GL_ARB_spirv_extensions 1
+#define GL_ARB_stencil_texturing 1
+#define GL_ARB_sync 1
+#define GL_ARB_tessellation_shader 1
+#define GL_ARB_texture_barrier 1
+#define GL_ARB_texture_border_clamp 1
+#define GL_ARB_texture_buffer_object 1
+#define GL_ARB_texture_buffer_object_rgb32 1
+#define GL_ARB_texture_buffer_range 1
+#define GL_ARB_texture_compression 1
+#define GL_ARB_texture_compression_bptc 1
+#define GL_ARB_texture_compression_rgtc 1
+#define GL_ARB_texture_cube_map 1
+#define GL_ARB_texture_cube_map_array 1
+#define GL_ARB_texture_env_add 1
+#define GL_ARB_texture_env_combine 1
+#define GL_ARB_texture_env_crossbar 1
+#define GL_ARB_texture_env_dot3 1
+#define GL_ARB_texture_filter_anisotropic 1
+#define GL_ARB_texture_filter_minmax 1
+#define GL_ARB_texture_float 1
+#define GL_ARB_texture_gather 1
+#define GL_ARB_texture_mirror_clamp_to_edge 1
+#define GL_ARB_texture_mirrored_repeat 1
+#define GL_ARB_texture_multisample 1
+#define GL_ARB_texture_non_power_of_two 1
+#define GL_ARB_texture_query_levels 1
+#define GL_ARB_texture_query_lod 1
+#define GL_ARB_texture_rectangle 1
+#define GL_ARB_texture_rg 1
+#define GL_ARB_texture_rgb10_a2ui 1
+#define GL_ARB_texture_stencil8 1
+#define GL_ARB_texture_storage 1
+#define GL_ARB_texture_storage_multisample 1
+#define GL_ARB_texture_swizzle 1
+#define GL_ARB_texture_view 1
+#define GL_ARB_timer_query 1
+#define GL_ARB_transform_feedback2 1
+#define GL_ARB_transform_feedback3 1
+#define GL_ARB_transform_feedback_instanced 1
+#define GL_ARB_transform_feedback_overflow_query 1
+#define GL_ARB_transpose_matrix 1
+#define GL_ARB_uniform_buffer_object 1
+#define GL_ARB_vertex_array_bgra 1
+#define GL_ARB_vertex_array_object 1
+#define GL_ARB_vertex_attrib_64bit 1
+#define GL_ARB_vertex_attrib_binding 1
+#define GL_ARB_vertex_blend 1
+#define GL_ARB_vertex_buffer_object 1
+#define GL_ARB_vertex_program 1
+#define GL_ARB_vertex_shader 1
+#define GL_ARB_vertex_type_10f_11f_11f_rev 1
+#define GL_ARB_vertex_type_2_10_10_10_rev 1
+#define GL_ARB_viewport_array 1
+#define GL_ARB_window_pos 1
+#define GL_ARM_mali_program_binary 1
+#define GL_ARM_mali_shader_binary 1
+#define GL_ARM_rgba8 1
+#define GL_ARM_shader_framebuffer_fetch 1
+#define GL_ARM_shader_framebuffer_fetch_depth_stencil 1
+#define GL_ATI_draw_buffers 1
+#define GL_ATI_element_array 1
+#define GL_ATI_envmap_bumpmap 1
+#define GL_ATI_fragment_shader 1
+#define GL_ATI_map_object_buffer 1
+#define GL_ATI_meminfo 1
+#define GL_ATI_pixel_format_float 1
+#define GL_ATI_pn_triangles 1
+#define GL_ATI_separate_stencil 1
+#define GL_ATI_text_fragment_shader 1
+#define GL_ATI_texture_env_combine3 1
+#define GL_ATI_texture_float 1
+#define GL_ATI_texture_mirror_once 1
+#define GL_ATI_vertex_array_object 1
+#define GL_ATI_vertex_attrib_array_object 1
+#define GL_ATI_vertex_streams 1
+#define GL_DMP_program_binary 1
+#define GL_DMP_shader_binary 1
+#define GL_EXT_422_pixels 1
+#define GL_EXT_EGL_image_array 1
+#define GL_EXT_EGL_image_storage 1
+#define GL_EXT_YUV_target 1
+#define GL_EXT_abgr 1
+#define GL_EXT_base_instance 1
+#define GL_EXT_bgra 1
+#define GL_EXT_bindable_uniform 1
+#define GL_EXT_blend_color 1
+#define GL_EXT_blend_equation_separate 1
+#define GL_EXT_blend_func_extended 1
+#define GL_EXT_blend_func_separate 1
+#define GL_EXT_blend_logic_op 1
+#define GL_EXT_blend_minmax 1
+#define GL_EXT_blend_subtract 1
+#define GL_EXT_buffer_storage 1
+#define GL_EXT_clear_texture 1
+#define GL_EXT_clip_control 1
+#define GL_EXT_clip_cull_distance 1
+#define GL_EXT_clip_volume_hint 1
+#define GL_EXT_cmyka 1
+#define GL_EXT_color_buffer_float 1
+#define GL_EXT_color_buffer_half_float 1
+#define GL_EXT_color_subtable 1
+#define GL_EXT_compiled_vertex_array 1
+#define GL_EXT_conservative_depth 1
+#define GL_EXT_convolution 1
+#define GL_EXT_coordinate_frame 1
+#define GL_EXT_copy_image 1
+#define GL_EXT_copy_texture 1
+#define GL_EXT_cull_vertex 1
+#define GL_EXT_debug_label 1
+#define GL_EXT_debug_marker 1
+#define GL_EXT_depth_bounds_test 1
+#define GL_EXT_depth_clamp 1
+#define GL_EXT_direct_state_access 1
+#define GL_EXT_discard_framebuffer 1
+#define GL_EXT_disjoint_timer_query 1
+#define GL_EXT_draw_buffers 1
+#define GL_EXT_draw_buffers2 1
+#define GL_EXT_draw_buffers_indexed 1
+#define GL_EXT_draw_elements_base_vertex 1
+#define GL_EXT_draw_instanced 1
+#define GL_EXT_draw_range_elements 1
+#define GL_EXT_draw_transform_feedback 1
+#define GL_EXT_external_buffer 1
+#define GL_EXT_float_blend 1
+#define GL_EXT_fog_coord 1
+#define GL_EXT_framebuffer_blit 1
+#define GL_EXT_framebuffer_multisample 1
+#define GL_EXT_framebuffer_multisample_blit_scaled 1
+#define GL_EXT_framebuffer_object 1
+#define GL_EXT_framebuffer_sRGB 1
+#define GL_EXT_geometry_point_size 1
+#define GL_EXT_geometry_shader 1
+#define GL_EXT_geometry_shader4 1
+#define GL_EXT_gpu_program_parameters 1
+#define GL_EXT_gpu_shader4 1
+#define GL_EXT_gpu_shader5 1
+#define GL_EXT_histogram 1
+#define GL_EXT_index_array_formats 1
+#define GL_EXT_index_func 1
+#define GL_EXT_index_material 1
+#define GL_EXT_index_texture 1
+#define GL_EXT_instanced_arrays 1
+#define GL_EXT_light_texture 1
+#define GL_EXT_map_buffer_range 1
+#define GL_EXT_memory_object 1
+#define GL_EXT_memory_object_fd 1
+#define GL_EXT_memory_object_win32 1
+#define GL_EXT_misc_attribute 1
+#define GL_EXT_multi_draw_arrays 1
+#define GL_EXT_multi_draw_indirect 1
+#define GL_EXT_multisample 1
+#define GL_EXT_multisampled_compatibility 1
+#define GL_EXT_multisampled_render_to_texture 1
+#define GL_EXT_multiview_draw_buffers 1
+#define GL_EXT_multiview_tessellation_geometry_shader 1
+#define GL_EXT_multiview_texture_multisample 1
+#define GL_EXT_multiview_timer_query 1
+#define GL_EXT_occlusion_query_boolean 1
+#define GL_EXT_packed_depth_stencil 1
+#define GL_EXT_packed_float 1
+#define GL_EXT_packed_pixels 1
+#define GL_EXT_paletted_texture 1
+#define GL_EXT_pixel_buffer_object 1
+#define GL_EXT_pixel_transform 1
+#define GL_EXT_pixel_transform_color_table 1
+#define GL_EXT_point_parameters 1
+#define GL_EXT_polygon_offset 1
+#define GL_EXT_polygon_offset_clamp 1
+#define GL_EXT_post_depth_coverage 1
+#define GL_EXT_primitive_bounding_box 1
+#define GL_EXT_protected_textures 1
+#define GL_EXT_provoking_vertex 1
+#define GL_EXT_pvrtc_sRGB 1
+#define GL_EXT_raster_multisample 1
+#define GL_EXT_read_format_bgra 1
+#define GL_EXT_render_snorm 1
+#define GL_EXT_rescale_normal 1
+#define GL_EXT_robustness 1
+#define GL_EXT_sRGB 1
+#define GL_EXT_sRGB_write_control 1
+#define GL_EXT_secondary_color 1
+#define GL_EXT_semaphore 1
+#define GL_EXT_semaphore_fd 1
+#define GL_EXT_semaphore_win32 1
+#define GL_EXT_separate_shader_objects 1
+#define GL_EXT_separate_specular_color 1
+#define GL_EXT_shader_framebuffer_fetch 1
+#define GL_EXT_shader_framebuffer_fetch_non_coherent 1
+#define GL_EXT_shader_group_vote 1
+#define GL_EXT_shader_image_load_formatted 1
+#define GL_EXT_shader_image_load_store 1
+#define GL_EXT_shader_implicit_conversions 1
+#define GL_EXT_shader_integer_mix 1
+#define GL_EXT_shader_io_blocks 1
+#define GL_EXT_shader_non_constant_global_initializers 1
+#define GL_EXT_shader_pixel_local_storage 1
+#define GL_EXT_shader_pixel_local_storage2 1
+#define GL_EXT_shader_texture_lod 1
+#define GL_EXT_shadow_funcs 1
+#define GL_EXT_shadow_samplers 1
+#define GL_EXT_shared_texture_palette 1
+#define GL_EXT_sparse_texture 1
+#define GL_EXT_sparse_texture2 1
+#define GL_EXT_stencil_clear_tag 1
+#define GL_EXT_stencil_two_side 1
+#define GL_EXT_stencil_wrap 1
+#define GL_EXT_subtexture 1
+#define GL_EXT_tessellation_point_size 1
+#define GL_EXT_tessellation_shader 1
+#define GL_EXT_texture 1
+#define GL_EXT_texture3D 1
+#define GL_EXT_texture_array 1
+#define GL_EXT_texture_border_clamp 1
+#define GL_EXT_texture_buffer 1
+#define GL_EXT_texture_buffer_object 1
+#define GL_EXT_texture_compression_astc_decode_mode 1
+#define GL_EXT_texture_compression_bptc 1
+#define GL_EXT_texture_compression_dxt1 1
+#define GL_EXT_texture_compression_latc 1
+#define GL_EXT_texture_compression_rgtc 1
+#define GL_EXT_texture_compression_s3tc 1
+#define GL_EXT_texture_compression_s3tc_srgb 1
+#define GL_EXT_texture_cube_map 1
+#define GL_EXT_texture_cube_map_array 1
+#define GL_EXT_texture_env_add 1
+#define GL_EXT_texture_env_combine 1
+#define GL_EXT_texture_env_dot3 1
+#define GL_EXT_texture_filter_anisotropic 1
+#define GL_EXT_texture_filter_minmax 1
+#define GL_EXT_texture_format_BGRA8888 1
+#define GL_EXT_texture_format_sRGB_override 1
+#define GL_EXT_texture_integer 1
+#define GL_EXT_texture_lod_bias 1
+#define GL_EXT_texture_mirror_clamp 1
+#define GL_EXT_texture_mirror_clamp_to_edge 1
+#define GL_EXT_texture_norm16 1
+#define GL_EXT_texture_object 1
+#define GL_EXT_texture_perturb_normal 1
+#define GL_EXT_texture_query_lod 1
+#define GL_EXT_texture_rg 1
+#define GL_EXT_texture_sRGB 1
+#define GL_EXT_texture_sRGB_R8 1
+#define GL_EXT_texture_sRGB_RG8 1
+#define GL_EXT_texture_sRGB_decode 1
+#define GL_EXT_texture_shadow_lod 1
+#define GL_EXT_texture_shared_exponent 1
+#define GL_EXT_texture_snorm 1
+#define GL_EXT_texture_storage 1
+#define GL_EXT_texture_swizzle 1
+#define GL_EXT_texture_type_2_10_10_10_REV 1
+#define GL_EXT_texture_view 1
+#define GL_EXT_timer_query 1
+#define GL_EXT_transform_feedback 1
+#define GL_EXT_unpack_subimage 1
+#define GL_EXT_vertex_array 1
+#define GL_EXT_vertex_array_bgra 1
+#define GL_EXT_vertex_attrib_64bit 1
+#define GL_EXT_vertex_shader 1
+#define GL_EXT_vertex_weighting 1
+#define GL_EXT_win32_keyed_mutex 1
+#define GL_EXT_window_rectangles 1
+#define GL_EXT_x11_sync_object 1
+#define GL_FJ_shader_binary_GCCSO 1
+#define GL_GREMEDY_frame_terminator 1
+#define GL_GREMEDY_string_marker 1
+#define GL_HP_convolution_border_modes 1
+#define GL_HP_image_transform 1
+#define GL_HP_occlusion_test 1
+#define GL_HP_texture_lighting 1
+#define GL_IBM_cull_vertex 1
+#define GL_IBM_multimode_draw_arrays 1
+#define GL_IBM_rasterpos_clip 1
+#define GL_IBM_static_data 1
+#define GL_IBM_texture_mirrored_repeat 1
+#define GL_IBM_vertex_array_lists 1
+#define GL_IMG_bindless_texture 1
+#define GL_IMG_framebuffer_downsample 1
+#define GL_IMG_multisampled_render_to_texture 1
+#define GL_IMG_program_binary 1
+#define GL_IMG_read_format 1
+#define GL_IMG_shader_binary 1
+#define GL_IMG_texture_compression_pvrtc 1
+#define GL_IMG_texture_compression_pvrtc2 1
+#define GL_IMG_texture_env_enhanced_fixed_function 1
+#define GL_IMG_texture_filter_cubic 1
+#define GL_IMG_user_clip_plane 1
+#define GL_INGR_blend_func_separate 1
+#define GL_INGR_color_clamp 1
+#define GL_INGR_interlace_read 1
+#define GL_INTEL_blackhole_render 1
+#define GL_INTEL_conservative_rasterization 1
+#define GL_INTEL_fragment_shader_ordering 1
+#define GL_INTEL_framebuffer_CMAA 1
+#define GL_INTEL_map_texture 1
+#define GL_INTEL_parallel_arrays 1
+#define GL_INTEL_performance_query 1
+#define GL_KHR_blend_equation_advanced 1
+#define GL_KHR_blend_equation_advanced_coherent 1
+#define GL_KHR_context_flush_control 1
+#define GL_KHR_debug 1
+#define GL_KHR_no_error 1
+#define GL_KHR_parallel_shader_compile 1
+#define GL_KHR_robust_buffer_access_behavior 1
+#define GL_KHR_robustness 1
+#define GL_KHR_shader_subgroup 1
+#define GL_KHR_texture_compression_astc_hdr 1
+#define GL_KHR_texture_compression_astc_ldr 1
+#define GL_KHR_texture_compression_astc_sliced_3d 1
+#define GL_MESAX_texture_stack 1
+#define GL_MESA_framebuffer_flip_y 1
+#define GL_MESA_pack_invert 1
+#define GL_MESA_program_binary_formats 1
+#define GL_MESA_resize_buffers 1
+#define GL_MESA_shader_integer_functions 1
+#define GL_MESA_tile_raster_order 1
+#define GL_MESA_window_pos 1
+#define GL_MESA_ycbcr_texture 1
+#define GL_NVX_blend_equation_advanced_multi_draw_buffers 1
+#define GL_NVX_conditional_render 1
+#define GL_NVX_cross_process_interop 1
+#define GL_NVX_gpu_memory_info 1
+#define GL_NVX_gpu_multicast2 1
+#define GL_NVX_linked_gpu_multicast 1
+#define GL_NVX_progress_fence 1
+#define GL_NV_alpha_to_coverage_dither_control 1
+#define GL_NV_bindless_multi_draw_indirect 1
+#define GL_NV_bindless_multi_draw_indirect_count 1
+#define GL_NV_bindless_texture 1
+#define GL_NV_blend_equation_advanced 1
+#define GL_NV_blend_equation_advanced_coherent 1
+#define GL_NV_blend_minmax_factor 1
+#define GL_NV_blend_square 1
+#define GL_NV_clip_space_w_scaling 1
+#define GL_NV_command_list 1
+#define GL_NV_compute_program5 1
+#define GL_NV_compute_shader_derivatives 1
+#define GL_NV_conditional_render 1
+#define GL_NV_conservative_raster 1
+#define GL_NV_conservative_raster_dilate 1
+#define GL_NV_conservative_raster_pre_snap 1
+#define GL_NV_conservative_raster_pre_snap_triangles 1
+#define GL_NV_conservative_raster_underestimation 1
+#define GL_NV_copy_buffer 1
+#define GL_NV_copy_depth_to_color 1
+#define GL_NV_copy_image 1
+#define GL_NV_coverage_sample 1
+#define GL_NV_deep_texture3D 1
+#define GL_NV_depth_buffer_float 1
+#define GL_NV_depth_clamp 1
+#define GL_NV_depth_nonlinear 1
+#define GL_NV_draw_buffers 1
+#define GL_NV_draw_instanced 1
+#define GL_NV_draw_texture 1
+#define GL_NV_draw_vulkan_image 1
+#define GL_NV_evaluators 1
+#define GL_NV_explicit_attrib_location 1
+#define GL_NV_explicit_multisample 1
+#define GL_NV_fbo_color_attachments 1
+#define GL_NV_fence 1
+#define GL_NV_fill_rectangle 1
+#define GL_NV_float_buffer 1
+#define GL_NV_fog_distance 1
+#define GL_NV_fragment_coverage_to_color 1
+#define GL_NV_fragment_program 1
+#define GL_NV_fragment_program2 1
+#define GL_NV_fragment_program4 1
+#define GL_NV_fragment_program_option 1
+#define GL_NV_fragment_shader_barycentric 1
+#define GL_NV_fragment_shader_interlock 1
+#define GL_NV_framebuffer_blit 1
+#define GL_NV_framebuffer_mixed_samples 1
+#define GL_NV_framebuffer_multisample 1
+#define GL_NV_framebuffer_multisample_coverage 1
+#define GL_NV_generate_mipmap_sRGB 1
+#define GL_NV_geometry_program4 1
+#define GL_NV_geometry_shader4 1
+#define GL_NV_geometry_shader_passthrough 1
+#define GL_NV_gpu_multicast 1
+#define GL_NV_gpu_program4 1
+#define GL_NV_gpu_program5 1
+#define GL_NV_gpu_program5_mem_extended 1
+#define GL_NV_gpu_shader5 1
+#define GL_NV_half_float 1
+#define GL_NV_image_formats 1
+#define GL_NV_instanced_arrays 1
+#define GL_NV_internalformat_sample_query 1
+#define GL_NV_light_max_exponent 1
+#define GL_NV_memory_attachment 1
+#define GL_NV_mesh_shader 1
+#define GL_NV_multisample_coverage 1
+#define GL_NV_multisample_filter_hint 1
+#define GL_NV_non_square_matrices 1
+#define GL_NV_occlusion_query 1
+#define GL_NV_packed_depth_stencil 1
+#define GL_NV_parameter_buffer_object 1
+#define GL_NV_parameter_buffer_object2 1
+#define GL_NV_path_rendering 1
+#define GL_NV_path_rendering_shared_edge 1
+#define GL_NV_pixel_buffer_object 1
+#define GL_NV_pixel_data_range 1
+#define GL_NV_point_sprite 1
+#define GL_NV_polygon_mode 1
+#define GL_NV_present_video 1
+#define GL_NV_primitive_restart 1
+#define GL_NV_query_resource 1
+#define GL_NV_query_resource_tag 1
+#define GL_NV_read_buffer 1
+#define GL_NV_read_buffer_front 1
+#define GL_NV_read_depth 1
+#define GL_NV_read_depth_stencil 1
+#define GL_NV_read_stencil 1
+#define GL_NV_register_combiners 1
+#define GL_NV_register_combiners2 1
+#define GL_NV_representative_fragment_test 1
+#define GL_NV_robustness_video_memory_purge 1
+#define GL_NV_sRGB_formats 1
+#define GL_NV_sample_locations 1
+#define GL_NV_sample_mask_override_coverage 1
+#define GL_NV_scissor_exclusive 1
+#define GL_NV_shader_atomic_counters 1
+#define GL_NV_shader_atomic_float 1
+#define GL_NV_shader_atomic_float64 1
+#define GL_NV_shader_atomic_fp16_vector 1
+#define GL_NV_shader_atomic_int64 1
+#define GL_NV_shader_buffer_load 1
+#define GL_NV_shader_buffer_store 1
+#define GL_NV_shader_noperspective_interpolation 1
+#define GL_NV_shader_storage_buffer_object 1
+#define GL_NV_shader_subgroup_partitioned 1
+#define GL_NV_shader_texture_footprint 1
+#define GL_NV_shader_thread_group 1
+#define GL_NV_shader_thread_shuffle 1
+#define GL_NV_shading_rate_image 1
+#define GL_NV_shadow_samplers_array 1
+#define GL_NV_shadow_samplers_cube 1
+#define GL_NV_stereo_view_rendering 1
+#define GL_NV_tessellation_program5 1
+#define GL_NV_texgen_emboss 1
+#define GL_NV_texgen_reflection 1
+#define GL_NV_texture_barrier 1
+#define GL_NV_texture_border_clamp 1
+#define GL_NV_texture_compression_s3tc_update 1
+#define GL_NV_texture_compression_vtc 1
+#define GL_NV_texture_env_combine4 1
+#define GL_NV_texture_expand_normal 1
+#define GL_NV_texture_multisample 1
+#define GL_NV_texture_npot_2D_mipmap 1
+#define GL_NV_texture_rectangle 1
+#define GL_NV_texture_rectangle_compressed 1
+#define GL_NV_texture_shader 1
+#define GL_NV_texture_shader2 1
+#define GL_NV_texture_shader3 1
+#define GL_NV_transform_feedback 1
+#define GL_NV_transform_feedback2 1
+#define GL_NV_uniform_buffer_unified_memory 1
+#define GL_NV_vdpau_interop 1
+#define GL_NV_vdpau_interop2 1
+#define GL_NV_vertex_array_range 1
+#define GL_NV_vertex_array_range2 1
+#define GL_NV_vertex_attrib_integer_64bit 1
+#define GL_NV_vertex_buffer_unified_memory 1
+#define GL_NV_vertex_program 1
+#define GL_NV_vertex_program1_1 1
+#define GL_NV_vertex_program2 1
+#define GL_NV_vertex_program2_option 1
+#define GL_NV_vertex_program3 1
+#define GL_NV_vertex_program4 1
+#define GL_NV_video_capture 1
+#define GL_NV_viewport_array 1
+#define GL_NV_viewport_array2 1
+#define GL_NV_viewport_swizzle 1
+#define GL_OES_EGL_image 1
+#define GL_OES_EGL_image_external 1
+#define GL_OES_EGL_image_external_essl3 1
+#define GL_OES_blend_equation_separate 1
+#define GL_OES_blend_func_separate 1
+#define GL_OES_blend_subtract 1
+#define GL_OES_byte_coordinates 1
+#define GL_OES_compressed_ETC1_RGB8_sub_texture 1
+#define GL_OES_compressed_ETC1_RGB8_texture 1
+#define GL_OES_compressed_paletted_texture 1
+#define GL_OES_copy_image 1
+#define GL_OES_depth24 1
+#define GL_OES_depth32 1
+#define GL_OES_depth_texture 1
+#define GL_OES_draw_buffers_indexed 1
+#define GL_OES_draw_elements_base_vertex 1
+#define GL_OES_draw_texture 1
+#define GL_OES_element_index_uint 1
+#define GL_OES_extended_matrix_palette 1
+#define GL_OES_fbo_render_mipmap 1
+#define GL_OES_fixed_point 1
+#define GL_OES_fragment_precision_high 1
+#define GL_OES_framebuffer_object 1
+#define GL_OES_geometry_point_size 1
+#define GL_OES_geometry_shader 1
+#define GL_OES_get_program_binary 1
+#define GL_OES_gpu_shader5 1
+#define GL_OES_mapbuffer 1
+#define GL_OES_matrix_get 1
+#define GL_OES_matrix_palette 1
+#define GL_OES_packed_depth_stencil 1
+#define GL_OES_point_size_array 1
+#define GL_OES_point_sprite 1
+#define GL_OES_primitive_bounding_box 1
+#define GL_OES_query_matrix 1
+#define GL_OES_read_format 1
+#define GL_OES_required_internalformat 1
+#define GL_OES_rgb8_rgba8 1
+#define GL_OES_sample_shading 1
+#define GL_OES_sample_variables 1
+#define GL_OES_shader_image_atomic 1
+#define GL_OES_shader_io_blocks 1
+#define GL_OES_shader_multisample_interpolation 1
+#define GL_OES_single_precision 1
+#define GL_OES_standard_derivatives 1
+#define GL_OES_stencil1 1
+#define GL_OES_stencil4 1
+#define GL_OES_stencil8 1
+#define GL_OES_stencil_wrap 1
+#define GL_OES_surfaceless_context 1
+#define GL_OES_tessellation_point_size 1
+#define GL_OES_tessellation_shader 1
+#define GL_OES_texture_3D 1
+#define GL_OES_texture_border_clamp 1
+#define GL_OES_texture_buffer 1
+#define GL_OES_texture_compression_astc 1
+#define GL_OES_texture_cube_map 1
+#define GL_OES_texture_cube_map_array 1
+#define GL_OES_texture_env_crossbar 1
+#define GL_OES_texture_float 1
+#define GL_OES_texture_float_linear 1
+#define GL_OES_texture_half_float 1
+#define GL_OES_texture_half_float_linear 1
+#define GL_OES_texture_mirrored_repeat 1
+#define GL_OES_texture_npot 1
+#define GL_OES_texture_stencil8 1
+#define GL_OES_texture_storage_multisample_2d_array 1
+#define GL_OES_texture_view 1
+#define GL_OES_vertex_array_object 1
+#define GL_OES_vertex_half_float 1
+#define GL_OES_vertex_type_10_10_10_2 1
+#define GL_OES_viewport_array 1
+#define GL_OML_interlace 1
+#define GL_OML_resample 1
+#define GL_OML_subsample 1
+#define GL_OVR_multiview 1
+#define GL_OVR_multiview2 1
+#define GL_OVR_multiview_multisampled_render_to_texture 1
+#define GL_PGI_misc_hints 1
+#define GL_PGI_vertex_hints 1
+#define GL_QCOM_YUV_texture_gather 1
+#define GL_QCOM_alpha_test 1
+#define GL_QCOM_binning_control 1
+#define GL_QCOM_driver_control 1
+#define GL_QCOM_extended_get 1
+#define GL_QCOM_extended_get2 1
+#define GL_QCOM_framebuffer_foveated 1
+#define GL_QCOM_perfmon_global_mode 1
+#define GL_QCOM_shader_framebuffer_fetch_noncoherent 1
+#define GL_QCOM_shader_framebuffer_fetch_rate 1
+#define GL_QCOM_texture_foveated 1
+#define GL_QCOM_texture_foveated_subsampled_layout 1
+#define GL_QCOM_tiled_rendering 1
+#define GL_QCOM_writeonly_rendering 1
+#define GL_REND_screen_coordinates 1
+#define GL_S3_s3tc 1
+#define GL_SGIS_detail_texture 1
+#define GL_SGIS_fog_function 1
+#define GL_SGIS_generate_mipmap 1
+#define GL_SGIS_multisample 1
+#define GL_SGIS_pixel_texture 1
+#define GL_SGIS_point_line_texgen 1
+#define GL_SGIS_point_parameters 1
+#define GL_SGIS_sharpen_texture 1
+#define GL_SGIS_texture4D 1
+#define GL_SGIS_texture_border_clamp 1
+#define GL_SGIS_texture_color_mask 1
+#define GL_SGIS_texture_edge_clamp 1
+#define GL_SGIS_texture_filter4 1
+#define GL_SGIS_texture_lod 1
+#define GL_SGIS_texture_select 1
+#define GL_SGIX_async 1
+#define GL_SGIX_async_histogram 1
+#define GL_SGIX_async_pixel 1
+#define GL_SGIX_blend_alpha_minmax 1
+#define GL_SGIX_calligraphic_fragment 1
+#define GL_SGIX_clipmap 1
+#define GL_SGIX_convolution_accuracy 1
+#define GL_SGIX_depth_pass_instrument 1
+#define GL_SGIX_depth_texture 1
+#define GL_SGIX_flush_raster 1
+#define GL_SGIX_fog_offset 1
+#define GL_SGIX_fragment_lighting 1
+#define GL_SGIX_framezoom 1
+#define GL_SGIX_igloo_interface 1
+#define GL_SGIX_instruments 1
+#define GL_SGIX_interlace 1
+#define GL_SGIX_ir_instrument1 1
+#define GL_SGIX_list_priority 1
+#define GL_SGIX_pixel_texture 1
+#define GL_SGIX_pixel_tiles 1
+#define GL_SGIX_polynomial_ffd 1
+#define GL_SGIX_reference_plane 1
+#define GL_SGIX_resample 1
+#define GL_SGIX_scalebias_hint 1
+#define GL_SGIX_shadow 1
+#define GL_SGIX_shadow_ambient 1
+#define GL_SGIX_sprite 1
+#define GL_SGIX_subsample 1
+#define GL_SGIX_tag_sample_buffer 1
+#define GL_SGIX_texture_add_env 1
+#define GL_SGIX_texture_coordinate_clamp 1
+#define GL_SGIX_texture_lod_bias 1
+#define GL_SGIX_texture_multi_buffer 1
+#define GL_SGIX_texture_scale_bias 1
+#define GL_SGIX_vertex_preclip 1
+#define GL_SGIX_ycrcb 1
+#define GL_SGIX_ycrcb_subsample 1
+#define GL_SGIX_ycrcba 1
+#define GL_SGI_color_matrix 1
+#define GL_SGI_color_table 1
+#define GL_SGI_texture_color_table 1
+#define GL_SUNX_constant_data 1
+#define GL_SUN_convolution_border_modes 1
+#define GL_SUN_global_alpha 1
+#define GL_SUN_mesh_array 1
+#define GL_SUN_slice_accum 1
+#define GL_SUN_triangle_list 1
+#define GL_SUN_vertex 1
+#define GL_VIV_shader_binary 1
+#define GL_WIN_phong_shading 1
+#define GL_WIN_specular_fog 1
+
+#define GL_NEXT_BUFFER_NV                                                          -2
+#define GL_SKIP_COMPONENTS4_NV                                                     -3
+#define GL_SKIP_COMPONENTS3_NV                                                     -4
+#define GL_SKIP_COMPONENTS2_NV                                                     -5
+#define GL_SKIP_COMPONENTS1_NV                                                     -6
+#define GL_FALSE                                                                   0
+#define GL_LAYOUT_DEFAULT_INTEL                                                    0
+#define GL_NONE                                                                    0
+#define GL_NONE_OES                                                                0
+#define GL_NO_ERROR                                                                0
+#define GL_ZERO                                                                    0
+#define GL_CLOSE_PATH_NV                                                           0x00
+#define GL_POINTS                                                                  0x0000
+#define GL_TERMINATE_SEQUENCE_COMMAND_NV                                           0x0000
+#define GL_PERFQUERY_SINGLE_CONTEXT_INTEL                                          0x00000000
+#define GL_2X_BIT_ATI                                                              0x00000001
+#define GL_CLIENT_PIXEL_STORE_BIT                                                  0x00000001
+#define GL_COLOR_BUFFER_BIT0_QCOM                                                  0x00000001
+#define GL_CONTEXT_CORE_PROFILE_BIT                                                0x00000001
+#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT                                     0x00000001
+#define GL_CURRENT_BIT                                                             0x00000001
+#define GL_FOVEATION_ENABLE_BIT_QCOM                                               0x00000001
+#define GL_PERFQUERY_GLOBAL_CONTEXT_INTEL                                          0x00000001
+#define GL_QUERY_DEPTH_PASS_EVENT_BIT_AMD                                          0x00000001
+#define GL_RED_BIT_ATI                                                             0x00000001
+#define GL_SUBGROUP_FEATURE_BASIC_BIT_KHR                                          0x00000001
+#define GL_SYNC_FLUSH_COMMANDS_BIT                                                 0x00000001
+#define GL_SYNC_FLUSH_COMMANDS_BIT_APPLE                                           0x00000001
+#define GL_TEXTURE_DEFORMATION_BIT_SGIX                                            0x00000001
+#define GL_TEXTURE_STORAGE_SPARSE_BIT_AMD                                          0x00000001
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT                                         0x00000001
+#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT                                     0x00000001
+#define GL_VERTEX_SHADER_BIT                                                       0x00000001
+#define GL_VERTEX_SHADER_BIT_EXT                                                   0x00000001
+#define GL_4X_BIT_ATI                                                              0x00000002
+#define GL_CLIENT_VERTEX_ARRAY_BIT                                                 0x00000002
+#define GL_COLOR_BUFFER_BIT1_QCOM                                                  0x00000002
+#define GL_COMP_BIT_ATI                                                            0x00000002
+#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT                                       0x00000002
+#define GL_CONTEXT_FLAG_DEBUG_BIT                                                  0x00000002
+#define GL_CONTEXT_FLAG_DEBUG_BIT_KHR                                              0x00000002
+#define GL_ELEMENT_ARRAY_BARRIER_BIT                                               0x00000002
+#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT                                           0x00000002
+#define GL_FOVEATION_SCALED_BIN_METHOD_BIT_QCOM                                    0x00000002
+#define GL_FRAGMENT_SHADER_BIT                                                     0x00000002
+#define GL_FRAGMENT_SHADER_BIT_EXT                                                 0x00000002
+#define GL_GEOMETRY_DEFORMATION_BIT_SGIX                                           0x00000002
+#define GL_GREEN_BIT_ATI                                                           0x00000002
+#define GL_POINT_BIT                                                               0x00000002
+#define GL_QUERY_DEPTH_FAIL_EVENT_BIT_AMD                                          0x00000002
+#define GL_SUBGROUP_FEATURE_VOTE_BIT_KHR                                           0x00000002
+#define GL_8X_BIT_ATI                                                              0x00000004
+#define GL_BLUE_BIT_ATI                                                            0x00000004
+#define GL_COLOR_BUFFER_BIT2_QCOM                                                  0x00000004
+#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT                                          0x00000004
+#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB                                      0x00000004
+#define GL_FOVEATION_SUBSAMPLED_LAYOUT_METHOD_BIT_QCOM                             0x00000004
+#define GL_GEOMETRY_SHADER_BIT                                                     0x00000004
+#define GL_GEOMETRY_SHADER_BIT_EXT                                                 0x00000004
+#define GL_GEOMETRY_SHADER_BIT_OES                                                 0x00000004
+#define GL_LINE_BIT                                                                0x00000004
+#define GL_NEGATE_BIT_ATI                                                          0x00000004
+#define GL_QUERY_STENCIL_FAIL_EVENT_BIT_AMD                                        0x00000004
+#define GL_SUBGROUP_FEATURE_ARITHMETIC_BIT_KHR                                     0x00000004
+#define GL_UNIFORM_BARRIER_BIT                                                     0x00000004
+#define GL_UNIFORM_BARRIER_BIT_EXT                                                 0x00000004
+#define GL_VERTEX23_BIT_PGI                                                        0x00000004
+#define GL_BIAS_BIT_ATI                                                            0x00000008
+#define GL_COLOR_BUFFER_BIT3_QCOM                                                  0x00000008
+#define GL_CONTEXT_FLAG_NO_ERROR_BIT                                               0x00000008
+#define GL_CONTEXT_FLAG_NO_ERROR_BIT_KHR                                           0x00000008
+#define GL_HALF_BIT_ATI                                                            0x00000008
+#define GL_POLYGON_BIT                                                             0x00000008
+#define GL_QUERY_DEPTH_BOUNDS_FAIL_EVENT_BIT_AMD                                   0x00000008
+#define GL_SUBGROUP_FEATURE_BALLOT_BIT_KHR                                         0x00000008
+#define GL_TESS_CONTROL_SHADER_BIT                                                 0x00000008
+#define GL_TESS_CONTROL_SHADER_BIT_EXT                                             0x00000008
+#define GL_TESS_CONTROL_SHADER_BIT_OES                                             0x00000008
+#define GL_TEXTURE_FETCH_BARRIER_BIT                                               0x00000008
+#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT                                           0x00000008
+#define GL_VERTEX4_BIT_PGI                                                         0x00000008
+#define GL_COLOR_BUFFER_BIT4_QCOM                                                  0x00000010
+#define GL_CONTEXT_FLAG_PROTECTED_CONTENT_BIT_EXT                                  0x00000010
+#define GL_POLYGON_STIPPLE_BIT                                                     0x00000010
+#define GL_QUARTER_BIT_ATI                                                         0x00000010
+#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV                                     0x00000010
+#define GL_SUBGROUP_FEATURE_SHUFFLE_BIT_KHR                                        0x00000010
+#define GL_TESS_EVALUATION_SHADER_BIT                                              0x00000010
+#define GL_TESS_EVALUATION_SHADER_BIT_EXT                                          0x00000010
+#define GL_TESS_EVALUATION_SHADER_BIT_OES                                          0x00000010
+#define GL_COLOR_BUFFER_BIT5_QCOM                                                  0x00000020
+#define GL_COMPUTE_SHADER_BIT                                                      0x00000020
+#define GL_EIGHTH_BIT_ATI                                                          0x00000020
+#define GL_PIXEL_MODE_BIT                                                          0x00000020
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT                                         0x00000020
+#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT                                     0x00000020
+#define GL_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT_KHR                               0x00000020
+#define GL_COLOR_BUFFER_BIT6_QCOM                                                  0x00000040
+#define GL_COMMAND_BARRIER_BIT                                                     0x00000040
+#define GL_COMMAND_BARRIER_BIT_EXT                                                 0x00000040
+#define GL_LIGHTING_BIT                                                            0x00000040
+#define GL_MESH_SHADER_BIT_NV                                                      0x00000040
+#define GL_SATURATE_BIT_ATI                                                        0x00000040
+#define GL_SUBGROUP_FEATURE_CLUSTERED_BIT_KHR                                      0x00000040
+#define GL_COLOR_BUFFER_BIT7_QCOM                                                  0x00000080
+#define GL_FOG_BIT                                                                 0x00000080
+#define GL_PIXEL_BUFFER_BARRIER_BIT                                                0x00000080
+#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT                                            0x00000080
+#define GL_SUBGROUP_FEATURE_QUAD_BIT_KHR                                           0x00000080
+#define GL_TASK_SHADER_BIT_NV                                                      0x00000080
+#define GL_DEPTH_BUFFER_BIT                                                        0x00000100
+#define GL_DEPTH_BUFFER_BIT0_QCOM                                                  0x00000100
+#define GL_SUBGROUP_FEATURE_PARTITIONED_BIT_NV                                     0x00000100
+#define GL_TEXTURE_UPDATE_BARRIER_BIT                                              0x00000100
+#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT                                          0x00000100
+#define GL_ACCUM_BUFFER_BIT                                                        0x00000200
+#define GL_BUFFER_UPDATE_BARRIER_BIT                                               0x00000200
+#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT                                           0x00000200
+#define GL_DEPTH_BUFFER_BIT1_QCOM                                                  0x00000200
+#define GL_DEPTH_BUFFER_BIT2_QCOM                                                  0x00000400
+#define GL_FRAMEBUFFER_BARRIER_BIT                                                 0x00000400
+#define GL_FRAMEBUFFER_BARRIER_BIT_EXT                                             0x00000400
+#define GL_STENCIL_BUFFER_BIT                                                      0x00000400
+#define GL_DEPTH_BUFFER_BIT3_QCOM                                                  0x00000800
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT                                          0x00000800
+#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT                                      0x00000800
+#define GL_VIEWPORT_BIT                                                            0x00000800
+#define GL_ATOMIC_COUNTER_BARRIER_BIT                                              0x00001000
+#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT                                          0x00001000
+#define GL_DEPTH_BUFFER_BIT4_QCOM                                                  0x00001000
+#define GL_TRANSFORM_BIT                                                           0x00001000
+#define GL_DEPTH_BUFFER_BIT5_QCOM                                                  0x00002000
+#define GL_ENABLE_BIT                                                              0x00002000
+#define GL_SHADER_STORAGE_BARRIER_BIT                                              0x00002000
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT                                        0x00004000
+#define GL_CLIENT_MAPPED_BUFFER_BARRIER_BIT_EXT                                    0x00004000
+#define GL_COLOR_BUFFER_BIT                                                        0x00004000
+#define GL_DEPTH_BUFFER_BIT6_QCOM                                                  0x00004000
+#define GL_COVERAGE_BUFFER_BIT_NV                                                  0x00008000
+#define GL_DEPTH_BUFFER_BIT7_QCOM                                                  0x00008000
+#define GL_HINT_BIT                                                                0x00008000
+#define GL_QUERY_BUFFER_BARRIER_BIT                                                0x00008000
+#define GL_LINES                                                                   0x0001
+#define GL_MAP_READ_BIT                                                            0x0001
+#define GL_MAP_READ_BIT_EXT                                                        0x0001
+#define GL_NOP_COMMAND_NV                                                          0x0001
+#define GL_RESTART_SUN                                                             0x0001
+#define GL_TRACE_OPERATIONS_BIT_MESA                                               0x0001
+#define GL_COLOR3_BIT_PGI                                                          0x00010000
+#define GL_EVAL_BIT                                                                0x00010000
+#define GL_FONT_X_MIN_BOUNDS_BIT_NV                                                0x00010000
+#define GL_STENCIL_BUFFER_BIT0_QCOM                                                0x00010000
+#define GL_DRAW_ELEMENTS_COMMAND_NV                                                0x0002
+#define GL_LINE_LOOP                                                               0x0002
+#define GL_MAP_WRITE_BIT                                                           0x0002
+#define GL_MAP_WRITE_BIT_EXT                                                       0x0002
+#define GL_REPLACE_MIDDLE_SUN                                                      0x0002
+#define GL_TRACE_PRIMITIVES_BIT_MESA                                               0x0002
+#define GL_COLOR4_BIT_PGI                                                          0x00020000
+#define GL_FONT_Y_MIN_BOUNDS_BIT_NV                                                0x00020000
+#define GL_LIST_BIT                                                                0x00020000
+#define GL_STENCIL_BUFFER_BIT1_QCOM                                                0x00020000
+#define GL_DRAW_ARRAYS_COMMAND_NV                                                  0x0003
+#define GL_LINE_STRIP                                                              0x0003
+#define GL_REPLACE_OLDEST_SUN                                                      0x0003
+#define GL_DRAW_ELEMENTS_STRIP_COMMAND_NV                                          0x0004
+#define GL_MAP_INVALIDATE_RANGE_BIT                                                0x0004
+#define GL_MAP_INVALIDATE_RANGE_BIT_EXT                                            0x0004
+#define GL_TRACE_ARRAYS_BIT_MESA                                                   0x0004
+#define GL_TRIANGLES                                                               0x0004
+#define GL_EDGEFLAG_BIT_PGI                                                        0x00040000
+#define GL_FONT_X_MAX_BOUNDS_BIT_NV                                                0x00040000
+#define GL_STENCIL_BUFFER_BIT2_QCOM                                                0x00040000
+#define GL_TEXTURE_BIT                                                             0x00040000
+#define GL_DRAW_ARRAYS_STRIP_COMMAND_NV                                            0x0005
+#define GL_TRIANGLE_STRIP                                                          0x0005
+#define GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV                                      0x0006
+#define GL_TRIANGLE_FAN                                                            0x0006
+#define GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV                                        0x0007
+#define GL_QUADS                                                                   0x0007
+#define GL_QUADS_EXT                                                               0x0007
+#define GL_QUADS_OES                                                               0x0007
+#define GL_ELEMENT_ADDRESS_COMMAND_NV                                              0x0008
+#define GL_MAP_INVALIDATE_BUFFER_BIT                                               0x0008
+#define GL_MAP_INVALIDATE_BUFFER_BIT_EXT                                           0x0008
+#define GL_QUAD_STRIP                                                              0x0008
+#define GL_TRACE_TEXTURES_BIT_MESA                                                 0x0008
+#define GL_FONT_Y_MAX_BOUNDS_BIT_NV                                                0x00080000
+#define GL_INDEX_BIT_PGI                                                           0x00080000
+#define GL_SCISSOR_BIT                                                             0x00080000
+#define GL_STENCIL_BUFFER_BIT3_QCOM                                                0x00080000
+#define GL_ATTRIBUTE_ADDRESS_COMMAND_NV                                            0x0009
+#define GL_POLYGON                                                                 0x0009
+#define GL_LINES_ADJACENCY                                                         0x000A
+#define GL_LINES_ADJACENCY_ARB                                                     0x000A
+#define GL_LINES_ADJACENCY_EXT                                                     0x000A
+#define GL_LINES_ADJACENCY_OES                                                     0x000A
+#define GL_UNIFORM_ADDRESS_COMMAND_NV                                              0x000A
+#define GL_BLEND_COLOR_COMMAND_NV                                                  0x000B
+#define GL_LINE_STRIP_ADJACENCY                                                    0x000B
+#define GL_LINE_STRIP_ADJACENCY_ARB                                                0x000B
+#define GL_LINE_STRIP_ADJACENCY_EXT                                                0x000B
+#define GL_LINE_STRIP_ADJACENCY_OES                                                0x000B
+#define GL_STENCIL_REF_COMMAND_NV                                                  0x000C
+#define GL_TRIANGLES_ADJACENCY                                                     0x000C
+#define GL_TRIANGLES_ADJACENCY_ARB                                                 0x000C
+#define GL_TRIANGLES_ADJACENCY_EXT                                                 0x000C
+#define GL_TRIANGLES_ADJACENCY_OES                                                 0x000C
+#define GL_LINE_WIDTH_COMMAND_NV                                                   0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY                                                0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY_ARB                                            0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY_EXT                                            0x000D
+#define GL_TRIANGLE_STRIP_ADJACENCY_OES                                            0x000D
+#define GL_PATCHES                                                                 0x000E
+#define GL_PATCHES_EXT                                                             0x000E
+#define GL_PATCHES_OES                                                             0x000E
+#define GL_POLYGON_OFFSET_COMMAND_NV                                               0x000E
+#define GL_ALPHA_REF_COMMAND_NV                                                    0x000F
+#define GL_MAP_FLUSH_EXPLICIT_BIT                                                  0x0010
+#define GL_MAP_FLUSH_EXPLICIT_BIT_EXT                                              0x0010
+#define GL_TRACE_PIXELS_BIT_MESA                                                   0x0010
+#define GL_VIEWPORT_COMMAND_NV                                                     0x0010
+#define GL_FONT_UNITS_PER_EM_BIT_NV                                                0x00100000
+#define GL_MAT_AMBIENT_BIT_PGI                                                     0x00100000
+#define GL_STENCIL_BUFFER_BIT4_QCOM                                                0x00100000
+#define GL_SCISSOR_COMMAND_NV                                                      0x0011
+#define GL_FRONT_FACE_COMMAND_NV                                                   0x0012
+#define GL_MAP_UNSYNCHRONIZED_BIT                                                  0x0020
+#define GL_MAP_UNSYNCHRONIZED_BIT_EXT                                              0x0020
+#define GL_TRACE_ERRORS_BIT_MESA                                                   0x0020
+#define GL_FONT_ASCENDER_BIT_NV                                                    0x00200000
+#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI                                         0x00200000
+#define GL_STENCIL_BUFFER_BIT5_QCOM                                                0x00200000
+#define GL_MAP_PERSISTENT_BIT                                                      0x0040
+#define GL_MAP_PERSISTENT_BIT_EXT                                                  0x0040
+#define GL_FONT_DESCENDER_BIT_NV                                                   0x00400000
+#define GL_MAT_DIFFUSE_BIT_PGI                                                     0x00400000
+#define GL_STENCIL_BUFFER_BIT6_QCOM                                                0x00400000
+#define GL_MAP_COHERENT_BIT                                                        0x0080
+#define GL_MAP_COHERENT_BIT_EXT                                                    0x0080
+#define GL_FONT_HEIGHT_BIT_NV                                                      0x00800000
+#define GL_MAT_EMISSION_BIT_PGI                                                    0x00800000
+#define GL_STENCIL_BUFFER_BIT7_QCOM                                                0x00800000
+#define GL_BOLD_BIT_NV                                                             0x01
+#define GL_GLYPH_WIDTH_BIT_NV                                                      0x01
+#define GL_ACCUM                                                                   0x0100
+#define GL_DYNAMIC_STORAGE_BIT                                                     0x0100
+#define GL_DYNAMIC_STORAGE_BIT_EXT                                                 0x0100
+#define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV                                           0x01000000
+#define GL_MAT_COLOR_INDEXES_BIT_PGI                                               0x01000000
+#define GL_MULTISAMPLE_BUFFER_BIT0_QCOM                                            0x01000000
+#define GL_LOAD                                                                    0x0101
+#define GL_RETURN                                                                  0x0102
+#define GL_MULT                                                                    0x0103
+#define GL_ADD                                                                     0x0104
+#define GL_GLYPH_HEIGHT_BIT_NV                                                     0x02
+#define GL_ITALIC_BIT_NV                                                           0x02
+#define GL_MOVE_TO_NV                                                              0x02
+#define GL_CLIENT_STORAGE_BIT                                                      0x0200
+#define GL_CLIENT_STORAGE_BIT_EXT                                                  0x0200
+#define GL_NEVER                                                                   0x0200
+#define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV                                          0x02000000
+#define GL_MAT_SHININESS_BIT_PGI                                                   0x02000000
+#define GL_MULTISAMPLE_BUFFER_BIT1_QCOM                                            0x02000000
+#define GL_LESS                                                                    0x0201
+#define GL_EQUAL                                                                   0x0202
+#define GL_LEQUAL                                                                  0x0203
+#define GL_GREATER                                                                 0x0204
+#define GL_NOTEQUAL                                                                0x0205
+#define GL_GEQUAL                                                                  0x0206
+#define GL_ALWAYS                                                                  0x0207
+#define GL_RELATIVE_MOVE_TO_NV                                                     0x03
+#define GL_SRC_COLOR                                                               0x0300
+#define GL_ONE_MINUS_SRC_COLOR                                                     0x0301
+#define GL_SRC_ALPHA                                                               0x0302
+#define GL_ONE_MINUS_SRC_ALPHA                                                     0x0303
+#define GL_DST_ALPHA                                                               0x0304
+#define GL_ONE_MINUS_DST_ALPHA                                                     0x0305
+#define GL_DST_COLOR                                                               0x0306
+#define GL_ONE_MINUS_DST_COLOR                                                     0x0307
+#define GL_SRC_ALPHA_SATURATE                                                      0x0308
+#define GL_SRC_ALPHA_SATURATE_EXT                                                  0x0308
+#define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV                                       0x04
+#define GL_LINE_TO_NV                                                              0x04
+#define GL_FRONT_LEFT                                                              0x0400
+#define GL_SPARSE_STORAGE_BIT_ARB                                                  0x0400
+#define GL_FONT_UNDERLINE_POSITION_BIT_NV                                          0x04000000
+#define GL_MAT_SPECULAR_BIT_PGI                                                    0x04000000
+#define GL_MULTISAMPLE_BUFFER_BIT2_QCOM                                            0x04000000
+#define GL_FRONT_RIGHT                                                             0x0401
+#define GL_BACK_LEFT                                                               0x0402
+#define GL_BACK_RIGHT                                                              0x0403
+#define GL_FRONT                                                                   0x0404
+#define GL_BACK                                                                    0x0405
+#define GL_LEFT                                                                    0x0406
+#define GL_RIGHT                                                                   0x0407
+#define GL_FRONT_AND_BACK                                                          0x0408
+#define GL_AUX0                                                                    0x0409
+#define GL_AUX1                                                                    0x040A
+#define GL_AUX2                                                                    0x040B
+#define GL_AUX3                                                                    0x040C
+#define GL_RELATIVE_LINE_TO_NV                                                     0x05
+#define GL_INVALID_ENUM                                                            0x0500
+#define GL_INVALID_VALUE                                                           0x0501
+#define GL_INVALID_OPERATION                                                       0x0502
+#define GL_STACK_OVERFLOW                                                          0x0503
+#define GL_STACK_OVERFLOW_KHR                                                      0x0503
+#define GL_STACK_UNDERFLOW                                                         0x0504
+#define GL_STACK_UNDERFLOW_KHR                                                     0x0504
+#define GL_OUT_OF_MEMORY                                                           0x0505
+#define GL_INVALID_FRAMEBUFFER_OPERATION                                           0x0506
+#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT                                       0x0506
+#define GL_INVALID_FRAMEBUFFER_OPERATION_OES                                       0x0506
+#define GL_CONTEXT_LOST                                                            0x0507
+#define GL_CONTEXT_LOST_KHR                                                        0x0507
+#define GL_HORIZONTAL_LINE_TO_NV                                                   0x06
+#define GL_2D                                                                      0x0600
+#define GL_3D                                                                      0x0601
+#define GL_3D_COLOR                                                                0x0602
+#define GL_3D_COLOR_TEXTURE                                                        0x0603
+#define GL_4D_COLOR_TEXTURE                                                        0x0604
+#define GL_RELATIVE_HORIZONTAL_LINE_TO_NV                                          0x07
+#define GL_PASS_THROUGH_TOKEN                                                      0x0700
+#define GL_POINT_TOKEN                                                             0x0701
+#define GL_LINE_TOKEN                                                              0x0702
+#define GL_POLYGON_TOKEN                                                           0x0703
+#define GL_BITMAP_TOKEN                                                            0x0704
+#define GL_DRAW_PIXEL_TOKEN                                                        0x0705
+#define GL_COPY_PIXEL_TOKEN                                                        0x0706
+#define GL_LINE_RESET_TOKEN                                                        0x0707
+#define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV                                       0x08
+#define GL_VERTICAL_LINE_TO_NV                                                     0x08
+#define GL_EXP                                                                     0x0800
+#define GL_LGPU_SEPARATE_STORAGE_BIT_NVX                                           0x0800
+#define GL_PER_GPU_STORAGE_BIT_NV                                                  0x0800
+#define GL_FONT_UNDERLINE_THICKNESS_BIT_NV                                         0x08000000
+#define GL_MULTISAMPLE_BUFFER_BIT3_QCOM                                            0x08000000
+#define GL_NORMAL_BIT_PGI                                                          0x08000000
+#define GL_EXP2                                                                    0x0801
+#define GL_RELATIVE_VERTICAL_LINE_TO_NV                                            0x09
+#define GL_CW                                                                      0x0900
+#define GL_CCW                                                                     0x0901
+#define GL_QUADRATIC_CURVE_TO_NV                                                   0x0A
+#define GL_COEFF                                                                   0x0A00
+#define GL_ORDER                                                                   0x0A01
+#define GL_DOMAIN                                                                  0x0A02
+#define GL_RELATIVE_QUADRATIC_CURVE_TO_NV                                          0x0B
+#define GL_CURRENT_COLOR                                                           0x0B00
+#define GL_CURRENT_INDEX                                                           0x0B01
+#define GL_CURRENT_NORMAL                                                          0x0B02
+#define GL_CURRENT_TEXTURE_COORDS                                                  0x0B03
+#define GL_CURRENT_RASTER_COLOR                                                    0x0B04
+#define GL_CURRENT_RASTER_INDEX                                                    0x0B05
+#define GL_CURRENT_RASTER_TEXTURE_COORDS                                           0x0B06
+#define GL_CURRENT_RASTER_POSITION                                                 0x0B07
+#define GL_CURRENT_RASTER_POSITION_VALID                                           0x0B08
+#define GL_CURRENT_RASTER_DISTANCE                                                 0x0B09
+#define GL_POINT_SMOOTH                                                            0x0B10
+#define GL_POINT_SIZE                                                              0x0B11
+#define GL_POINT_SIZE_RANGE                                                        0x0B12
+#define GL_SMOOTH_POINT_SIZE_RANGE                                                 0x0B12
+#define GL_POINT_SIZE_GRANULARITY                                                  0x0B13
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY                                           0x0B13
+#define GL_LINE_SMOOTH                                                             0x0B20
+#define GL_LINE_WIDTH                                                              0x0B21
+#define GL_LINE_WIDTH_RANGE                                                        0x0B22
+#define GL_SMOOTH_LINE_WIDTH_RANGE                                                 0x0B22
+#define GL_LINE_WIDTH_GRANULARITY                                                  0x0B23
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY                                           0x0B23
+#define GL_LINE_STIPPLE                                                            0x0B24
+#define GL_LINE_STIPPLE_PATTERN                                                    0x0B25
+#define GL_LINE_STIPPLE_REPEAT                                                     0x0B26
+#define GL_LIST_MODE                                                               0x0B30
+#define GL_MAX_LIST_NESTING                                                        0x0B31
+#define GL_LIST_BASE                                                               0x0B32
+#define GL_LIST_INDEX                                                              0x0B33
+#define GL_POLYGON_MODE                                                            0x0B40
+#define GL_POLYGON_MODE_NV                                                         0x0B40
+#define GL_POLYGON_SMOOTH                                                          0x0B41
+#define GL_POLYGON_STIPPLE                                                         0x0B42
+#define GL_EDGE_FLAG                                                               0x0B43
+#define GL_CULL_FACE                                                               0x0B44
+#define GL_CULL_FACE_MODE                                                          0x0B45
+#define GL_FRONT_FACE                                                              0x0B46
+#define GL_LIGHTING                                                                0x0B50
+#define GL_LIGHT_MODEL_LOCAL_VIEWER                                                0x0B51
+#define GL_LIGHT_MODEL_TWO_SIDE                                                    0x0B52
+#define GL_LIGHT_MODEL_AMBIENT                                                     0x0B53
+#define GL_SHADE_MODEL                                                             0x0B54
+#define GL_COLOR_MATERIAL_FACE                                                     0x0B55
+#define GL_COLOR_MATERIAL_PARAMETER                                                0x0B56
+#define GL_COLOR_MATERIAL                                                          0x0B57
+#define GL_FOG                                                                     0x0B60
+#define GL_FOG_INDEX                                                               0x0B61
+#define GL_FOG_DENSITY                                                             0x0B62
+#define GL_FOG_START                                                               0x0B63
+#define GL_FOG_END                                                                 0x0B64
+#define GL_FOG_MODE                                                                0x0B65
+#define GL_FOG_COLOR                                                               0x0B66
+#define GL_DEPTH_RANGE                                                             0x0B70
+#define GL_DEPTH_TEST                                                              0x0B71
+#define GL_DEPTH_WRITEMASK                                                         0x0B72
+#define GL_DEPTH_CLEAR_VALUE                                                       0x0B73
+#define GL_DEPTH_FUNC                                                              0x0B74
+#define GL_ACCUM_CLEAR_VALUE                                                       0x0B80
+#define GL_STENCIL_TEST                                                            0x0B90
+#define GL_STENCIL_CLEAR_VALUE                                                     0x0B91
+#define GL_STENCIL_FUNC                                                            0x0B92
+#define GL_STENCIL_VALUE_MASK                                                      0x0B93
+#define GL_STENCIL_FAIL                                                            0x0B94
+#define GL_STENCIL_PASS_DEPTH_FAIL                                                 0x0B95
+#define GL_STENCIL_PASS_DEPTH_PASS                                                 0x0B96
+#define GL_STENCIL_REF                                                             0x0B97
+#define GL_STENCIL_WRITEMASK                                                       0x0B98
+#define GL_MATRIX_MODE                                                             0x0BA0
+#define GL_NORMALIZE                                                               0x0BA1
+#define GL_VIEWPORT                                                                0x0BA2
+#define GL_MODELVIEW0_STACK_DEPTH_EXT                                              0x0BA3
+#define GL_MODELVIEW_STACK_DEPTH                                                   0x0BA3
+#define GL_PATH_MODELVIEW_STACK_DEPTH_NV                                           0x0BA3
+#define GL_PATH_PROJECTION_STACK_DEPTH_NV                                          0x0BA4
+#define GL_PROJECTION_STACK_DEPTH                                                  0x0BA4
+#define GL_TEXTURE_STACK_DEPTH                                                     0x0BA5
+#define GL_MODELVIEW0_MATRIX_EXT                                                   0x0BA6
+#define GL_MODELVIEW_MATRIX                                                        0x0BA6
+#define GL_PATH_MODELVIEW_MATRIX_NV                                                0x0BA6
+#define GL_PATH_PROJECTION_MATRIX_NV                                               0x0BA7
+#define GL_PROJECTION_MATRIX                                                       0x0BA7
+#define GL_TEXTURE_MATRIX                                                          0x0BA8
+#define GL_ATTRIB_STACK_DEPTH                                                      0x0BB0
+#define GL_CLIENT_ATTRIB_STACK_DEPTH                                               0x0BB1
+#define GL_ALPHA_TEST                                                              0x0BC0
+#define GL_ALPHA_TEST_QCOM                                                         0x0BC0
+#define GL_ALPHA_TEST_FUNC                                                         0x0BC1
+#define GL_ALPHA_TEST_FUNC_QCOM                                                    0x0BC1
+#define GL_ALPHA_TEST_REF                                                          0x0BC2
+#define GL_ALPHA_TEST_REF_QCOM                                                     0x0BC2
+#define GL_DITHER                                                                  0x0BD0
+#define GL_BLEND_DST                                                               0x0BE0
+#define GL_BLEND_SRC                                                               0x0BE1
+#define GL_BLEND                                                                   0x0BE2
+#define GL_LOGIC_OP_MODE                                                           0x0BF0
+#define GL_INDEX_LOGIC_OP                                                          0x0BF1
+#define GL_LOGIC_OP                                                                0x0BF1
+#define GL_COLOR_LOGIC_OP                                                          0x0BF2
+#define GL_CUBIC_CURVE_TO_NV                                                       0x0C
+#define GL_AUX_BUFFERS                                                             0x0C00
+#define GL_DRAW_BUFFER                                                             0x0C01
+#define GL_DRAW_BUFFER_EXT                                                         0x0C01
+#define GL_READ_BUFFER                                                             0x0C02
+#define GL_READ_BUFFER_EXT                                                         0x0C02
+#define GL_READ_BUFFER_NV                                                          0x0C02
+#define GL_SCISSOR_BOX                                                             0x0C10
+#define GL_SCISSOR_TEST                                                            0x0C11
+#define GL_INDEX_CLEAR_VALUE                                                       0x0C20
+#define GL_INDEX_WRITEMASK                                                         0x0C21
+#define GL_COLOR_CLEAR_VALUE                                                       0x0C22
+#define GL_COLOR_WRITEMASK                                                         0x0C23
+#define GL_INDEX_MODE                                                              0x0C30
+#define GL_RGBA_MODE                                                               0x0C31
+#define GL_DOUBLEBUFFER                                                            0x0C32
+#define GL_STEREO                                                                  0x0C33
+#define GL_RENDER_MODE                                                             0x0C40
+#define GL_PERSPECTIVE_CORRECTION_HINT                                             0x0C50
+#define GL_POINT_SMOOTH_HINT                                                       0x0C51
+#define GL_LINE_SMOOTH_HINT                                                        0x0C52
+#define GL_POLYGON_SMOOTH_HINT                                                     0x0C53
+#define GL_FOG_HINT                                                                0x0C54
+#define GL_TEXTURE_GEN_S                                                           0x0C60
+#define GL_TEXTURE_GEN_T                                                           0x0C61
+#define GL_TEXTURE_GEN_R                                                           0x0C62
+#define GL_TEXTURE_GEN_Q                                                           0x0C63
+#define GL_PIXEL_MAP_I_TO_I                                                        0x0C70
+#define GL_PIXEL_MAP_S_TO_S                                                        0x0C71
+#define GL_PIXEL_MAP_I_TO_R                                                        0x0C72
+#define GL_PIXEL_MAP_I_TO_G                                                        0x0C73
+#define GL_PIXEL_MAP_I_TO_B                                                        0x0C74
+#define GL_PIXEL_MAP_I_TO_A                                                        0x0C75
+#define GL_PIXEL_MAP_R_TO_R                                                        0x0C76
+#define GL_PIXEL_MAP_G_TO_G                                                        0x0C77
+#define GL_PIXEL_MAP_B_TO_B                                                        0x0C78
+#define GL_PIXEL_MAP_A_TO_A                                                        0x0C79
+#define GL_PIXEL_MAP_I_TO_I_SIZE                                                   0x0CB0
+#define GL_PIXEL_MAP_S_TO_S_SIZE                                                   0x0CB1
+#define GL_PIXEL_MAP_I_TO_R_SIZE                                                   0x0CB2
+#define GL_PIXEL_MAP_I_TO_G_SIZE                                                   0x0CB3
+#define GL_PIXEL_MAP_I_TO_B_SIZE                                                   0x0CB4
+#define GL_PIXEL_MAP_I_TO_A_SIZE                                                   0x0CB5
+#define GL_PIXEL_MAP_R_TO_R_SIZE                                                   0x0CB6
+#define GL_PIXEL_MAP_G_TO_G_SIZE                                                   0x0CB7
+#define GL_PIXEL_MAP_B_TO_B_SIZE                                                   0x0CB8
+#define GL_PIXEL_MAP_A_TO_A_SIZE                                                   0x0CB9
+#define GL_UNPACK_SWAP_BYTES                                                       0x0CF0
+#define GL_UNPACK_LSB_FIRST                                                        0x0CF1
+#define GL_UNPACK_ROW_LENGTH                                                       0x0CF2
+#define GL_UNPACK_ROW_LENGTH_EXT                                                   0x0CF2
+#define GL_UNPACK_SKIP_ROWS                                                        0x0CF3
+#define GL_UNPACK_SKIP_ROWS_EXT                                                    0x0CF3
+#define GL_UNPACK_SKIP_PIXELS                                                      0x0CF4
+#define GL_UNPACK_SKIP_PIXELS_EXT                                                  0x0CF4
+#define GL_UNPACK_ALIGNMENT                                                        0x0CF5
+#define GL_RELATIVE_CUBIC_CURVE_TO_NV                                              0x0D
+#define GL_PACK_SWAP_BYTES                                                         0x0D00
+#define GL_PACK_LSB_FIRST                                                          0x0D01
+#define GL_PACK_ROW_LENGTH                                                         0x0D02
+#define GL_PACK_SKIP_ROWS                                                          0x0D03
+#define GL_PACK_SKIP_PIXELS                                                        0x0D04
+#define GL_PACK_ALIGNMENT                                                          0x0D05
+#define GL_MAP_COLOR                                                               0x0D10
+#define GL_MAP_STENCIL                                                             0x0D11
+#define GL_INDEX_SHIFT                                                             0x0D12
+#define GL_INDEX_OFFSET                                                            0x0D13
+#define GL_RED_SCALE                                                               0x0D14
+#define GL_RED_BIAS                                                                0x0D15
+#define GL_ZOOM_X                                                                  0x0D16
+#define GL_ZOOM_Y                                                                  0x0D17
+#define GL_GREEN_SCALE                                                             0x0D18
+#define GL_GREEN_BIAS                                                              0x0D19
+#define GL_BLUE_SCALE                                                              0x0D1A
+#define GL_BLUE_BIAS                                                               0x0D1B
+#define GL_ALPHA_SCALE                                                             0x0D1C
+#define GL_ALPHA_BIAS                                                              0x0D1D
+#define GL_DEPTH_SCALE                                                             0x0D1E
+#define GL_DEPTH_BIAS                                                              0x0D1F
+#define GL_MAX_EVAL_ORDER                                                          0x0D30
+#define GL_MAX_LIGHTS                                                              0x0D31
+#define GL_MAX_CLIP_DISTANCES                                                      0x0D32
+#define GL_MAX_CLIP_DISTANCES_APPLE                                                0x0D32
+#define GL_MAX_CLIP_DISTANCES_EXT                                                  0x0D32
+#define GL_MAX_CLIP_PLANES                                                         0x0D32
+#define GL_MAX_CLIP_PLANES_IMG                                                     0x0D32
+#define GL_MAX_TEXTURE_SIZE                                                        0x0D33
+#define GL_MAX_PIXEL_MAP_TABLE                                                     0x0D34
+#define GL_MAX_ATTRIB_STACK_DEPTH                                                  0x0D35
+#define GL_MAX_MODELVIEW_STACK_DEPTH                                               0x0D36
+#define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV                                       0x0D36
+#define GL_MAX_NAME_STACK_DEPTH                                                    0x0D37
+#define GL_MAX_PROJECTION_STACK_DEPTH                                              0x0D38
+#define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV                                      0x0D38
+#define GL_MAX_TEXTURE_STACK_DEPTH                                                 0x0D39
+#define GL_MAX_VIEWPORT_DIMS                                                       0x0D3A
+#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH                                           0x0D3B
+#define GL_SUBPIXEL_BITS                                                           0x0D50
+#define GL_INDEX_BITS                                                              0x0D51
+#define GL_RED_BITS                                                                0x0D52
+#define GL_GREEN_BITS                                                              0x0D53
+#define GL_BLUE_BITS                                                               0x0D54
+#define GL_ALPHA_BITS                                                              0x0D55
+#define GL_DEPTH_BITS                                                              0x0D56
+#define GL_STENCIL_BITS                                                            0x0D57
+#define GL_ACCUM_RED_BITS                                                          0x0D58
+#define GL_ACCUM_GREEN_BITS                                                        0x0D59
+#define GL_ACCUM_BLUE_BITS                                                         0x0D5A
+#define GL_ACCUM_ALPHA_BITS                                                        0x0D5B
+#define GL_NAME_STACK_DEPTH                                                        0x0D70
+#define GL_AUTO_NORMAL                                                             0x0D80
+#define GL_MAP1_COLOR_4                                                            0x0D90
+#define GL_MAP1_INDEX                                                              0x0D91
+#define GL_MAP1_NORMAL                                                             0x0D92
+#define GL_MAP1_TEXTURE_COORD_1                                                    0x0D93
+#define GL_MAP1_TEXTURE_COORD_2                                                    0x0D94
+#define GL_MAP1_TEXTURE_COORD_3                                                    0x0D95
+#define GL_MAP1_TEXTURE_COORD_4                                                    0x0D96
+#define GL_MAP1_VERTEX_3                                                           0x0D97
+#define GL_MAP1_VERTEX_4                                                           0x0D98
+#define GL_MAP2_COLOR_4                                                            0x0DB0
+#define GL_MAP2_INDEX                                                              0x0DB1
+#define GL_MAP2_NORMAL                                                             0x0DB2
+#define GL_MAP2_TEXTURE_COORD_1                                                    0x0DB3
+#define GL_MAP2_TEXTURE_COORD_2                                                    0x0DB4
+#define GL_MAP2_TEXTURE_COORD_3                                                    0x0DB5
+#define GL_MAP2_TEXTURE_COORD_4                                                    0x0DB6
+#define GL_MAP2_VERTEX_3                                                           0x0DB7
+#define GL_MAP2_VERTEX_4                                                           0x0DB8
+#define GL_MAP1_GRID_DOMAIN                                                        0x0DD0
+#define GL_MAP1_GRID_SEGMENTS                                                      0x0DD1
+#define GL_MAP2_GRID_DOMAIN                                                        0x0DD2
+#define GL_MAP2_GRID_SEGMENTS                                                      0x0DD3
+#define GL_TEXTURE_1D                                                              0x0DE0
+#define GL_TEXTURE_2D                                                              0x0DE1
+#define GL_FEEDBACK_BUFFER_POINTER                                                 0x0DF0
+#define GL_FEEDBACK_BUFFER_SIZE                                                    0x0DF1
+#define GL_FEEDBACK_BUFFER_TYPE                                                    0x0DF2
+#define GL_SELECTION_BUFFER_POINTER                                                0x0DF3
+#define GL_SELECTION_BUFFER_SIZE                                                   0x0DF4
+#define GL_SMOOTH_QUADRATIC_CURVE_TO_NV                                            0x0E
+#define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV                                   0x0F
+#define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV                                 0x10
+#define GL_SMOOTH_CUBIC_CURVE_TO_NV                                                0x10
+#define GL_GLYPH_HAS_KERNING_BIT_NV                                                0x100
+#define GL_TEXTURE_WIDTH                                                           0x1000
+#define GL_FONT_HAS_KERNING_BIT_NV                                                 0x10000000
+#define GL_MULTISAMPLE_BUFFER_BIT4_QCOM                                            0x10000000
+#define GL_TEXCOORD1_BIT_PGI                                                       0x10000000
+#define GL_TEXTURE_HEIGHT                                                          0x1001
+#define GL_TEXTURE_COMPONENTS                                                      0x1003
+#define GL_TEXTURE_INTERNAL_FORMAT                                                 0x1003
+#define GL_TEXTURE_BORDER_COLOR                                                    0x1004
+#define GL_TEXTURE_BORDER_COLOR_EXT                                                0x1004
+#define GL_TEXTURE_BORDER_COLOR_NV                                                 0x1004
+#define GL_TEXTURE_BORDER_COLOR_OES                                                0x1004
+#define GL_TEXTURE_BORDER                                                          0x1005
+#define GL_TEXTURE_TARGET                                                          0x1006
+#define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV                                       0x11
+#define GL_DONT_CARE                                                               0x1100
+#define GL_FASTEST                                                                 0x1101
+#define GL_NICEST                                                                  0x1102
+#define GL_SMALL_CCW_ARC_TO_NV                                                     0x12
+#define GL_AMBIENT                                                                 0x1200
+#define GL_DIFFUSE                                                                 0x1201
+#define GL_SPECULAR                                                                0x1202
+#define GL_POSITION                                                                0x1203
+#define GL_SPOT_DIRECTION                                                          0x1204
+#define GL_SPOT_EXPONENT                                                           0x1205
+#define GL_SPOT_CUTOFF                                                             0x1206
+#define GL_CONSTANT_ATTENUATION                                                    0x1207
+#define GL_LINEAR_ATTENUATION                                                      0x1208
+#define GL_QUADRATIC_ATTENUATION                                                   0x1209
+#define GL_RELATIVE_SMALL_CCW_ARC_TO_NV                                            0x13
+#define GL_COMPILE                                                                 0x1300
+#define GL_COMPILE_AND_EXECUTE                                                     0x1301
+#define GL_SMALL_CW_ARC_TO_NV                                                      0x14
+#define GL_BYTE                                                                    0x1400
+#define GL_UNSIGNED_BYTE                                                           0x1401
+#define GL_SHORT                                                                   0x1402
+#define GL_UNSIGNED_SHORT                                                          0x1403
+#define GL_INT                                                                     0x1404
+#define GL_UNSIGNED_INT                                                            0x1405
+#define GL_FLOAT                                                                   0x1406
+#define GL_2_BYTES                                                                 0x1407
+#define GL_2_BYTES_NV                                                              0x1407
+#define GL_3_BYTES                                                                 0x1408
+#define GL_3_BYTES_NV                                                              0x1408
+#define GL_4_BYTES                                                                 0x1409
+#define GL_4_BYTES_NV                                                              0x1409
+#define GL_DOUBLE                                                                  0x140A
+#define GL_DOUBLE_EXT                                                              0x140A
+#define GL_HALF_APPLE                                                              0x140B
+#define GL_HALF_FLOAT                                                              0x140B
+#define GL_HALF_FLOAT_ARB                                                          0x140B
+#define GL_HALF_FLOAT_NV                                                           0x140B
+#define GL_FIXED                                                                   0x140C
+#define GL_FIXED_OES                                                               0x140C
+#define GL_INT64_ARB                                                               0x140E
+#define GL_INT64_NV                                                                0x140E
+#define GL_UNSIGNED_INT64_ARB                                                      0x140F
+#define GL_UNSIGNED_INT64_NV                                                       0x140F
+#define GL_RELATIVE_SMALL_CW_ARC_TO_NV                                             0x15
+#define GL_CLEAR                                                                   0x1500
+#define GL_AND                                                                     0x1501
+#define GL_AND_REVERSE                                                             0x1502
+#define GL_COPY                                                                    0x1503
+#define GL_AND_INVERTED                                                            0x1504
+#define GL_NOOP                                                                    0x1505
+#define GL_XOR                                                                     0x1506
+#define GL_XOR_NV                                                                  0x1506
+#define GL_OR                                                                      0x1507
+#define GL_NOR                                                                     0x1508
+#define GL_EQUIV                                                                   0x1509
+#define GL_INVERT                                                                  0x150A
+#define GL_OR_REVERSE                                                              0x150B
+#define GL_COPY_INVERTED                                                           0x150C
+#define GL_OR_INVERTED                                                             0x150D
+#define GL_NAND                                                                    0x150E
+#define GL_SET                                                                     0x150F
+#define GL_LARGE_CCW_ARC_TO_NV                                                     0x16
+#define GL_EMISSION                                                                0x1600
+#define GL_SHININESS                                                               0x1601
+#define GL_AMBIENT_AND_DIFFUSE                                                     0x1602
+#define GL_COLOR_INDEXES                                                           0x1603
+#define GL_RELATIVE_LARGE_CCW_ARC_TO_NV                                            0x17
+#define GL_MODELVIEW                                                               0x1700
+#define GL_MODELVIEW0_ARB                                                          0x1700
+#define GL_MODELVIEW0_EXT                                                          0x1700
+#define GL_PATH_MODELVIEW_NV                                                       0x1700
+#define GL_PATH_PROJECTION_NV                                                      0x1701
+#define GL_PROJECTION                                                              0x1701
+#define GL_TEXTURE                                                                 0x1702
+#define GL_LARGE_CW_ARC_TO_NV                                                      0x18
+#define GL_COLOR                                                                   0x1800
+#define GL_COLOR_EXT                                                               0x1800
+#define GL_DEPTH                                                                   0x1801
+#define GL_DEPTH_EXT                                                               0x1801
+#define GL_STENCIL                                                                 0x1802
+#define GL_STENCIL_EXT                                                             0x1802
+#define GL_RELATIVE_LARGE_CW_ARC_TO_NV                                             0x19
+#define GL_COLOR_INDEX                                                             0x1900
+#define GL_STENCIL_INDEX                                                           0x1901
+#define GL_STENCIL_INDEX_OES                                                       0x1901
+#define GL_DEPTH_COMPONENT                                                         0x1902
+#define GL_RED                                                                     0x1903
+#define GL_RED_EXT                                                                 0x1903
+#define GL_RED_NV                                                                  0x1903
+#define GL_GREEN                                                                   0x1904
+#define GL_GREEN_NV                                                                0x1904
+#define GL_BLUE                                                                    0x1905
+#define GL_BLUE_NV                                                                 0x1905
+#define GL_ALPHA                                                                   0x1906
+#define GL_RGB                                                                     0x1907
+#define GL_RGBA                                                                    0x1908
+#define GL_LUMINANCE                                                               0x1909
+#define GL_LUMINANCE_ALPHA                                                         0x190A
+#define GL_RASTER_POSITION_UNCLIPPED_IBM                                           0x19262
+#define GL_CONIC_CURVE_TO_NV                                                       0x1A
+#define GL_BITMAP                                                                  0x1A00
+#define GL_PREFER_DOUBLEBUFFER_HINT_PGI                                            0x1A1F8
+#define GL_CONSERVE_MEMORY_HINT_PGI                                                0x1A1FD
+#define GL_RECLAIM_MEMORY_HINT_PGI                                                 0x1A1FE
+#define GL_NATIVE_GRAPHICS_HANDLE_PGI                                              0x1A202
+#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI                                          0x1A203
+#define GL_NATIVE_GRAPHICS_END_HINT_PGI                                            0x1A204
+#define GL_ALWAYS_FAST_HINT_PGI                                                    0x1A20C
+#define GL_ALWAYS_SOFT_HINT_PGI                                                    0x1A20D
+#define GL_ALLOW_DRAW_OBJ_HINT_PGI                                                 0x1A20E
+#define GL_ALLOW_DRAW_WIN_HINT_PGI                                                 0x1A20F
+#define GL_ALLOW_DRAW_FRG_HINT_PGI                                                 0x1A210
+#define GL_ALLOW_DRAW_MEM_HINT_PGI                                                 0x1A211
+#define GL_STRICT_DEPTHFUNC_HINT_PGI                                               0x1A216
+#define GL_STRICT_LIGHTING_HINT_PGI                                                0x1A217
+#define GL_STRICT_SCISSOR_HINT_PGI                                                 0x1A218
+#define GL_FULL_STIPPLE_HINT_PGI                                                   0x1A219
+#define GL_CLIP_NEAR_HINT_PGI                                                      0x1A220
+#define GL_CLIP_FAR_HINT_PGI                                                       0x1A221
+#define GL_WIDE_LINE_HINT_PGI                                                      0x1A222
+#define GL_BACK_NORMALS_HINT_PGI                                                   0x1A223
+#define GL_VERTEX_DATA_HINT_PGI                                                    0x1A22A
+#define GL_VERTEX_CONSISTENT_HINT_PGI                                              0x1A22B
+#define GL_MATERIAL_SIDE_HINT_PGI                                                  0x1A22C
+#define GL_MAX_VERTEX_HINT_PGI                                                     0x1A22D
+#define GL_RELATIVE_CONIC_CURVE_TO_NV                                              0x1B
+#define GL_POINT                                                                   0x1B00
+#define GL_POINT_NV                                                                0x1B00
+#define GL_LINE                                                                    0x1B01
+#define GL_LINE_NV                                                                 0x1B01
+#define GL_FILL                                                                    0x1B02
+#define GL_FILL_NV                                                                 0x1B02
+#define GL_RENDER                                                                  0x1C00
+#define GL_FEEDBACK                                                                0x1C01
+#define GL_SELECT                                                                  0x1C02
+#define GL_FLAT                                                                    0x1D00
+#define GL_SMOOTH                                                                  0x1D01
+#define GL_KEEP                                                                    0x1E00
+#define GL_REPLACE                                                                 0x1E01
+#define GL_INCR                                                                    0x1E02
+#define GL_DECR                                                                    0x1E03
+#define GL_VENDOR                                                                  0x1F00
+#define GL_RENDERER                                                                0x1F01
+#define GL_VERSION                                                                 0x1F02
+#define GL_EXTENSIONS                                                              0x1F03
+#define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV                                         0x20
+#define GL_EXTERNAL_STORAGE_BIT_NVX                                                0x2000
+#define GL_S                                                                       0x2000
+#define GL_FONT_NUM_GLYPH_INDICES_BIT_NV                                           0x20000000
+#define GL_MULTISAMPLE_BIT                                                         0x20000000
+#define GL_MULTISAMPLE_BIT_3DFX                                                    0x20000000
+#define GL_MULTISAMPLE_BIT_ARB                                                     0x20000000
+#define GL_MULTISAMPLE_BIT_EXT                                                     0x20000000
+#define GL_MULTISAMPLE_BUFFER_BIT5_QCOM                                            0x20000000
+#define GL_TEXCOORD2_BIT_PGI                                                       0x20000000
+#define GL_T                                                                       0x2001
+#define GL_R                                                                       0x2002
+#define GL_Q                                                                       0x2003
+#define GL_MODULATE                                                                0x2100
+#define GL_DECAL                                                                   0x2101
+#define GL_TEXTURE_ENV_MODE                                                        0x2200
+#define GL_TEXTURE_ENV_COLOR                                                       0x2201
+#define GL_TEXTURE_ENV                                                             0x2300
+#define GL_EYE_LINEAR                                                              0x2400
+#define GL_EYE_LINEAR_NV                                                           0x2400
+#define GL_OBJECT_LINEAR                                                           0x2401
+#define GL_OBJECT_LINEAR_NV                                                        0x2401
+#define GL_SPHERE_MAP                                                              0x2402
+#define GL_TEXTURE_GEN_MODE                                                        0x2500
+#define GL_TEXTURE_GEN_MODE_OES                                                    0x2500
+#define GL_OBJECT_PLANE                                                            0x2501
+#define GL_EYE_PLANE                                                               0x2502
+#define GL_NEAREST                                                                 0x2600
+#define GL_LINEAR                                                                  0x2601
+#define GL_NEAREST_MIPMAP_NEAREST                                                  0x2700
+#define GL_LINEAR_MIPMAP_NEAREST                                                   0x2701
+#define GL_NEAREST_MIPMAP_LINEAR                                                   0x2702
+#define GL_LINEAR_MIPMAP_LINEAR                                                    0x2703
+#define GL_TEXTURE_MAG_FILTER                                                      0x2800
+#define GL_TEXTURE_MIN_FILTER                                                      0x2801
+#define GL_TEXTURE_WRAP_S                                                          0x2802
+#define GL_TEXTURE_WRAP_T                                                          0x2803
+#define GL_CLAMP                                                                   0x2900
+#define GL_REPEAT                                                                  0x2901
+#define GL_POLYGON_OFFSET_UNITS                                                    0x2A00
+#define GL_POLYGON_OFFSET_POINT                                                    0x2A01
+#define GL_POLYGON_OFFSET_POINT_NV                                                 0x2A01
+#define GL_POLYGON_OFFSET_LINE                                                     0x2A02
+#define GL_POLYGON_OFFSET_LINE_NV                                                  0x2A02
+#define GL_R3_G3_B2                                                                0x2A10
+#define GL_V2F                                                                     0x2A20
+#define GL_V3F                                                                     0x2A21
+#define GL_C4UB_V2F                                                                0x2A22
+#define GL_C4UB_V3F                                                                0x2A23
+#define GL_C3F_V3F                                                                 0x2A24
+#define GL_N3F_V3F                                                                 0x2A25
+#define GL_C4F_N3F_V3F                                                             0x2A26
+#define GL_T2F_V3F                                                                 0x2A27
+#define GL_T4F_V4F                                                                 0x2A28
+#define GL_T2F_C4UB_V3F                                                            0x2A29
+#define GL_T2F_C3F_V3F                                                             0x2A2A
+#define GL_T2F_N3F_V3F                                                             0x2A2B
+#define GL_T2F_C4F_N3F_V3F                                                         0x2A2C
+#define GL_T4F_C4F_N3F_V4F                                                         0x2A2D
+#define GL_CLIP_DISTANCE0                                                          0x3000
+#define GL_CLIP_DISTANCE0_APPLE                                                    0x3000
+#define GL_CLIP_DISTANCE0_EXT                                                      0x3000
+#define GL_CLIP_PLANE0                                                             0x3000
+#define GL_CLIP_PLANE0_IMG                                                         0x3000
+#define GL_CLIP_DISTANCE1                                                          0x3001
+#define GL_CLIP_DISTANCE1_APPLE                                                    0x3001
+#define GL_CLIP_DISTANCE1_EXT                                                      0x3001
+#define GL_CLIP_PLANE1                                                             0x3001
+#define GL_CLIP_PLANE1_IMG                                                         0x3001
+#define GL_CLIP_DISTANCE2                                                          0x3002
+#define GL_CLIP_DISTANCE2_APPLE                                                    0x3002
+#define GL_CLIP_DISTANCE2_EXT                                                      0x3002
+#define GL_CLIP_PLANE2                                                             0x3002
+#define GL_CLIP_PLANE2_IMG                                                         0x3002
+#define GL_CLIP_DISTANCE3                                                          0x3003
+#define GL_CLIP_DISTANCE3_APPLE                                                    0x3003
+#define GL_CLIP_DISTANCE3_EXT                                                      0x3003
+#define GL_CLIP_PLANE3                                                             0x3003
+#define GL_CLIP_PLANE3_IMG                                                         0x3003
+#define GL_CLIP_DISTANCE4                                                          0x3004
+#define GL_CLIP_DISTANCE4_APPLE                                                    0x3004
+#define GL_CLIP_DISTANCE4_EXT                                                      0x3004
+#define GL_CLIP_PLANE4                                                             0x3004
+#define GL_CLIP_PLANE4_IMG                                                         0x3004
+#define GL_CLIP_DISTANCE5                                                          0x3005
+#define GL_CLIP_DISTANCE5_APPLE                                                    0x3005
+#define GL_CLIP_DISTANCE5_EXT                                                      0x3005
+#define GL_CLIP_PLANE5                                                             0x3005
+#define GL_CLIP_PLANE5_IMG                                                         0x3005
+#define GL_CLIP_DISTANCE6                                                          0x3006
+#define GL_CLIP_DISTANCE6_APPLE                                                    0x3006
+#define GL_CLIP_DISTANCE6_EXT                                                      0x3006
+#define GL_CLIP_DISTANCE7                                                          0x3007
+#define GL_CLIP_DISTANCE7_APPLE                                                    0x3007
+#define GL_CLIP_DISTANCE7_EXT                                                      0x3007
+#define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV                                         0x40
+#define GL_LIGHT0                                                                  0x4000
+#define GL_MULTISAMPLE_BUFFER_BIT6_QCOM                                            0x40000000
+#define GL_TEXCOORD3_BIT_PGI                                                       0x40000000
+#define GL_LIGHT1                                                                  0x4001
+#define GL_LIGHT2                                                                  0x4002
+#define GL_LIGHT3                                                                  0x4003
+#define GL_LIGHT4                                                                  0x4004
+#define GL_LIGHT5                                                                  0x4005
+#define GL_LIGHT6                                                                  0x4006
+#define GL_LIGHT7                                                                  0x4007
+#define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV                                   0x80
+#define GL_ABGR_EXT                                                                0x8000
+#define GL_MULTISAMPLE_BUFFER_BIT7_QCOM                                            0x80000000
+#define GL_TEXCOORD4_BIT_PGI                                                       0x80000000
+#define GL_CONSTANT_COLOR                                                          0x8001
+#define GL_CONSTANT_COLOR_EXT                                                      0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR                                                0x8002
+#define GL_ONE_MINUS_CONSTANT_COLOR_EXT                                            0x8002
+#define GL_CONSTANT_ALPHA                                                          0x8003
+#define GL_CONSTANT_ALPHA_EXT                                                      0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA                                                0x8004
+#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT                                            0x8004
+#define GL_BLEND_COLOR                                                             0x8005
+#define GL_BLEND_COLOR_EXT                                                         0x8005
+#define GL_FUNC_ADD                                                                0x8006
+#define GL_FUNC_ADD_EXT                                                            0x8006
+#define GL_FUNC_ADD_OES                                                            0x8006
+#define GL_MIN                                                                     0x8007
+#define GL_MIN_EXT                                                                 0x8007
+#define GL_MAX                                                                     0x8008
+#define GL_MAX_EXT                                                                 0x8008
+#define GL_BLEND_EQUATION                                                          0x8009
+#define GL_BLEND_EQUATION_EXT                                                      0x8009
+#define GL_BLEND_EQUATION_OES                                                      0x8009
+#define GL_BLEND_EQUATION_RGB                                                      0x8009
+#define GL_BLEND_EQUATION_RGB_EXT                                                  0x8009
+#define GL_BLEND_EQUATION_RGB_OES                                                  0x8009
+#define GL_FUNC_SUBTRACT                                                           0x800A
+#define GL_FUNC_SUBTRACT_EXT                                                       0x800A
+#define GL_FUNC_SUBTRACT_OES                                                       0x800A
+#define GL_FUNC_REVERSE_SUBTRACT                                                   0x800B
+#define GL_FUNC_REVERSE_SUBTRACT_EXT                                               0x800B
+#define GL_FUNC_REVERSE_SUBTRACT_OES                                               0x800B
+#define GL_CMYK_EXT                                                                0x800C
+#define GL_CMYKA_EXT                                                               0x800D
+#define GL_PACK_CMYK_HINT_EXT                                                      0x800E
+#define GL_UNPACK_CMYK_HINT_EXT                                                    0x800F
+#define GL_CONVOLUTION_1D                                                          0x8010
+#define GL_CONVOLUTION_1D_EXT                                                      0x8010
+#define GL_CONVOLUTION_2D                                                          0x8011
+#define GL_CONVOLUTION_2D_EXT                                                      0x8011
+#define GL_SEPARABLE_2D                                                            0x8012
+#define GL_SEPARABLE_2D_EXT                                                        0x8012
+#define GL_CONVOLUTION_BORDER_MODE                                                 0x8013
+#define GL_CONVOLUTION_BORDER_MODE_EXT                                             0x8013
+#define GL_CONVOLUTION_FILTER_SCALE                                                0x8014
+#define GL_CONVOLUTION_FILTER_SCALE_EXT                                            0x8014
+#define GL_CONVOLUTION_FILTER_BIAS                                                 0x8015
+#define GL_CONVOLUTION_FILTER_BIAS_EXT                                             0x8015
+#define GL_REDUCE                                                                  0x8016
+#define GL_REDUCE_EXT                                                              0x8016
+#define GL_CONVOLUTION_FORMAT                                                      0x8017
+#define GL_CONVOLUTION_FORMAT_EXT                                                  0x8017
+#define GL_CONVOLUTION_WIDTH                                                       0x8018
+#define GL_CONVOLUTION_WIDTH_EXT                                                   0x8018
+#define GL_CONVOLUTION_HEIGHT                                                      0x8019
+#define GL_CONVOLUTION_HEIGHT_EXT                                                  0x8019
+#define GL_MAX_CONVOLUTION_WIDTH                                                   0x801A
+#define GL_MAX_CONVOLUTION_WIDTH_EXT                                               0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT                                                  0x801B
+#define GL_MAX_CONVOLUTION_HEIGHT_EXT                                              0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE                                              0x801C
+#define GL_POST_CONVOLUTION_RED_SCALE_EXT                                          0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE                                            0x801D
+#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT                                        0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE                                             0x801E
+#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT                                         0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE                                            0x801F
+#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT                                        0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS                                               0x8020
+#define GL_POST_CONVOLUTION_RED_BIAS_EXT                                           0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS                                             0x8021
+#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT                                         0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS                                              0x8022
+#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT                                          0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS                                             0x8023
+#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT                                         0x8023
+#define GL_HISTOGRAM                                                               0x8024
+#define GL_HISTOGRAM_EXT                                                           0x8024
+#define GL_PROXY_HISTOGRAM                                                         0x8025
+#define GL_PROXY_HISTOGRAM_EXT                                                     0x8025
+#define GL_HISTOGRAM_WIDTH                                                         0x8026
+#define GL_HISTOGRAM_WIDTH_EXT                                                     0x8026
+#define GL_HISTOGRAM_FORMAT                                                        0x8027
+#define GL_HISTOGRAM_FORMAT_EXT                                                    0x8027
+#define GL_HISTOGRAM_RED_SIZE                                                      0x8028
+#define GL_HISTOGRAM_RED_SIZE_EXT                                                  0x8028
+#define GL_HISTOGRAM_GREEN_SIZE                                                    0x8029
+#define GL_HISTOGRAM_GREEN_SIZE_EXT                                                0x8029
+#define GL_HISTOGRAM_BLUE_SIZE                                                     0x802A
+#define GL_HISTOGRAM_BLUE_SIZE_EXT                                                 0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE                                                    0x802B
+#define GL_HISTOGRAM_ALPHA_SIZE_EXT                                                0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE                                                0x802C
+#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT                                            0x802C
+#define GL_HISTOGRAM_SINK                                                          0x802D
+#define GL_HISTOGRAM_SINK_EXT                                                      0x802D
+#define GL_MINMAX                                                                  0x802E
+#define GL_MINMAX_EXT                                                              0x802E
+#define GL_MINMAX_FORMAT                                                           0x802F
+#define GL_MINMAX_FORMAT_EXT                                                       0x802F
+#define GL_MINMAX_SINK                                                             0x8030
+#define GL_MINMAX_SINK_EXT                                                         0x8030
+#define GL_TABLE_TOO_LARGE                                                         0x8031
+#define GL_TABLE_TOO_LARGE_EXT                                                     0x8031
+#define GL_UNSIGNED_BYTE_3_3_2                                                     0x8032
+#define GL_UNSIGNED_BYTE_3_3_2_EXT                                                 0x8032
+#define GL_UNSIGNED_SHORT_4_4_4_4                                                  0x8033
+#define GL_UNSIGNED_SHORT_4_4_4_4_EXT                                              0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1                                                  0x8034
+#define GL_UNSIGNED_SHORT_5_5_5_1_EXT                                              0x8034
+#define GL_UNSIGNED_INT_8_8_8_8                                                    0x8035
+#define GL_UNSIGNED_INT_8_8_8_8_EXT                                                0x8035
+#define GL_UNSIGNED_INT_10_10_10_2                                                 0x8036
+#define GL_UNSIGNED_INT_10_10_10_2_EXT                                             0x8036
+#define GL_POLYGON_OFFSET_EXT                                                      0x8037
+#define GL_POLYGON_OFFSET_FILL                                                     0x8037
+#define GL_POLYGON_OFFSET_FACTOR                                                   0x8038
+#define GL_POLYGON_OFFSET_FACTOR_EXT                                               0x8038
+#define GL_POLYGON_OFFSET_BIAS_EXT                                                 0x8039
+#define GL_RESCALE_NORMAL                                                          0x803A
+#define GL_RESCALE_NORMAL_EXT                                                      0x803A
+#define GL_ALPHA4                                                                  0x803B
+#define GL_ALPHA4_EXT                                                              0x803B
+#define GL_ALPHA8                                                                  0x803C
+#define GL_ALPHA8_EXT                                                              0x803C
+#define GL_ALPHA8_OES                                                              0x803C
+#define GL_ALPHA12                                                                 0x803D
+#define GL_ALPHA12_EXT                                                             0x803D
+#define GL_ALPHA16                                                                 0x803E
+#define GL_ALPHA16_EXT                                                             0x803E
+#define GL_LUMINANCE4                                                              0x803F
+#define GL_LUMINANCE4_EXT                                                          0x803F
+#define GL_LUMINANCE8                                                              0x8040
+#define GL_LUMINANCE8_EXT                                                          0x8040
+#define GL_LUMINANCE8_OES                                                          0x8040
+#define GL_LUMINANCE12                                                             0x8041
+#define GL_LUMINANCE12_EXT                                                         0x8041
+#define GL_LUMINANCE16                                                             0x8042
+#define GL_LUMINANCE16_EXT                                                         0x8042
+#define GL_LUMINANCE4_ALPHA4                                                       0x8043
+#define GL_LUMINANCE4_ALPHA4_EXT                                                   0x8043
+#define GL_LUMINANCE4_ALPHA4_OES                                                   0x8043
+#define GL_LUMINANCE6_ALPHA2                                                       0x8044
+#define GL_LUMINANCE6_ALPHA2_EXT                                                   0x8044
+#define GL_LUMINANCE8_ALPHA8                                                       0x8045
+#define GL_LUMINANCE8_ALPHA8_EXT                                                   0x8045
+#define GL_LUMINANCE8_ALPHA8_OES                                                   0x8045
+#define GL_LUMINANCE12_ALPHA4                                                      0x8046
+#define GL_LUMINANCE12_ALPHA4_EXT                                                  0x8046
+#define GL_LUMINANCE12_ALPHA12                                                     0x8047
+#define GL_LUMINANCE12_ALPHA12_EXT                                                 0x8047
+#define GL_LUMINANCE16_ALPHA16                                                     0x8048
+#define GL_LUMINANCE16_ALPHA16_EXT                                                 0x8048
+#define GL_INTENSITY                                                               0x8049
+#define GL_INTENSITY_EXT                                                           0x8049
+#define GL_INTENSITY4                                                              0x804A
+#define GL_INTENSITY4_EXT                                                          0x804A
+#define GL_INTENSITY8                                                              0x804B
+#define GL_INTENSITY8_EXT                                                          0x804B
+#define GL_INTENSITY12                                                             0x804C
+#define GL_INTENSITY12_EXT                                                         0x804C
+#define GL_INTENSITY16                                                             0x804D
+#define GL_INTENSITY16_EXT                                                         0x804D
+#define GL_RGB2_EXT                                                                0x804E
+#define GL_RGB4                                                                    0x804F
+#define GL_RGB4_EXT                                                                0x804F
+#define GL_RGB5                                                                    0x8050
+#define GL_RGB5_EXT                                                                0x8050
+#define GL_RGB8                                                                    0x8051
+#define GL_RGB8_EXT                                                                0x8051
+#define GL_RGB8_OES                                                                0x8051
+#define GL_RGB10                                                                   0x8052
+#define GL_RGB10_EXT                                                               0x8052
+#define GL_RGB12                                                                   0x8053
+#define GL_RGB12_EXT                                                               0x8053
+#define GL_RGB16                                                                   0x8054
+#define GL_RGB16_EXT                                                               0x8054
+#define GL_RGBA2                                                                   0x8055
+#define GL_RGBA2_EXT                                                               0x8055
+#define GL_RGBA4                                                                   0x8056
+#define GL_RGBA4_EXT                                                               0x8056
+#define GL_RGBA4_OES                                                               0x8056
+#define GL_RGB5_A1                                                                 0x8057
+#define GL_RGB5_A1_EXT                                                             0x8057
+#define GL_RGB5_A1_OES                                                             0x8057
+#define GL_RGBA8                                                                   0x8058
+#define GL_RGBA8_EXT                                                               0x8058
+#define GL_RGBA8_OES                                                               0x8058
+#define GL_RGB10_A2                                                                0x8059
+#define GL_RGB10_A2_EXT                                                            0x8059
+#define GL_RGBA12                                                                  0x805A
+#define GL_RGBA12_EXT                                                              0x805A
+#define GL_RGBA16                                                                  0x805B
+#define GL_RGBA16_EXT                                                              0x805B
+#define GL_TEXTURE_RED_SIZE                                                        0x805C
+#define GL_TEXTURE_RED_SIZE_EXT                                                    0x805C
+#define GL_TEXTURE_GREEN_SIZE                                                      0x805D
+#define GL_TEXTURE_GREEN_SIZE_EXT                                                  0x805D
+#define GL_TEXTURE_BLUE_SIZE                                                       0x805E
+#define GL_TEXTURE_BLUE_SIZE_EXT                                                   0x805E
+#define GL_TEXTURE_ALPHA_SIZE                                                      0x805F
+#define GL_TEXTURE_ALPHA_SIZE_EXT                                                  0x805F
+#define GL_TEXTURE_LUMINANCE_SIZE                                                  0x8060
+#define GL_TEXTURE_LUMINANCE_SIZE_EXT                                              0x8060
+#define GL_TEXTURE_INTENSITY_SIZE                                                  0x8061
+#define GL_TEXTURE_INTENSITY_SIZE_EXT                                              0x8061
+#define GL_REPLACE_EXT                                                             0x8062
+#define GL_PROXY_TEXTURE_1D                                                        0x8063
+#define GL_PROXY_TEXTURE_1D_EXT                                                    0x8063
+#define GL_PROXY_TEXTURE_2D                                                        0x8064
+#define GL_PROXY_TEXTURE_2D_EXT                                                    0x8064
+#define GL_TEXTURE_TOO_LARGE_EXT                                                   0x8065
+#define GL_TEXTURE_PRIORITY                                                        0x8066
+#define GL_TEXTURE_PRIORITY_EXT                                                    0x8066
+#define GL_TEXTURE_RESIDENT                                                        0x8067
+#define GL_TEXTURE_RESIDENT_EXT                                                    0x8067
+#define GL_TEXTURE_1D_BINDING_EXT                                                  0x8068
+#define GL_TEXTURE_BINDING_1D                                                      0x8068
+#define GL_TEXTURE_2D_BINDING_EXT                                                  0x8069
+#define GL_TEXTURE_BINDING_2D                                                      0x8069
+#define GL_TEXTURE_3D_BINDING_EXT                                                  0x806A
+#define GL_TEXTURE_3D_BINDING_OES                                                  0x806A
+#define GL_TEXTURE_BINDING_3D                                                      0x806A
+#define GL_TEXTURE_BINDING_3D_OES                                                  0x806A
+#define GL_PACK_SKIP_IMAGES                                                        0x806B
+#define GL_PACK_SKIP_IMAGES_EXT                                                    0x806B
+#define GL_PACK_IMAGE_HEIGHT                                                       0x806C
+#define GL_PACK_IMAGE_HEIGHT_EXT                                                   0x806C
+#define GL_UNPACK_SKIP_IMAGES                                                      0x806D
+#define GL_UNPACK_SKIP_IMAGES_EXT                                                  0x806D
+#define GL_UNPACK_IMAGE_HEIGHT                                                     0x806E
+#define GL_UNPACK_IMAGE_HEIGHT_EXT                                                 0x806E
+#define GL_TEXTURE_3D                                                              0x806F
+#define GL_TEXTURE_3D_EXT                                                          0x806F
+#define GL_TEXTURE_3D_OES                                                          0x806F
+#define GL_PROXY_TEXTURE_3D                                                        0x8070
+#define GL_PROXY_TEXTURE_3D_EXT                                                    0x8070
+#define GL_TEXTURE_DEPTH                                                           0x8071
+#define GL_TEXTURE_DEPTH_EXT                                                       0x8071
+#define GL_TEXTURE_WRAP_R                                                          0x8072
+#define GL_TEXTURE_WRAP_R_EXT                                                      0x8072
+#define GL_TEXTURE_WRAP_R_OES                                                      0x8072
+#define GL_MAX_3D_TEXTURE_SIZE                                                     0x8073
+#define GL_MAX_3D_TEXTURE_SIZE_EXT                                                 0x8073
+#define GL_MAX_3D_TEXTURE_SIZE_OES                                                 0x8073
+#define GL_VERTEX_ARRAY                                                            0x8074
+#define GL_VERTEX_ARRAY_EXT                                                        0x8074
+#define GL_VERTEX_ARRAY_KHR                                                        0x8074
+#define GL_NORMAL_ARRAY                                                            0x8075
+#define GL_NORMAL_ARRAY_EXT                                                        0x8075
+#define GL_COLOR_ARRAY                                                             0x8076
+#define GL_COLOR_ARRAY_EXT                                                         0x8076
+#define GL_INDEX_ARRAY                                                             0x8077
+#define GL_INDEX_ARRAY_EXT                                                         0x8077
+#define GL_TEXTURE_COORD_ARRAY                                                     0x8078
+#define GL_TEXTURE_COORD_ARRAY_EXT                                                 0x8078
+#define GL_EDGE_FLAG_ARRAY                                                         0x8079
+#define GL_EDGE_FLAG_ARRAY_EXT                                                     0x8079
+#define GL_VERTEX_ARRAY_SIZE                                                       0x807A
+#define GL_VERTEX_ARRAY_SIZE_EXT                                                   0x807A
+#define GL_VERTEX_ARRAY_TYPE                                                       0x807B
+#define GL_VERTEX_ARRAY_TYPE_EXT                                                   0x807B
+#define GL_VERTEX_ARRAY_STRIDE                                                     0x807C
+#define GL_VERTEX_ARRAY_STRIDE_EXT                                                 0x807C
+#define GL_VERTEX_ARRAY_COUNT_EXT                                                  0x807D
+#define GL_NORMAL_ARRAY_TYPE                                                       0x807E
+#define GL_NORMAL_ARRAY_TYPE_EXT                                                   0x807E
+#define GL_NORMAL_ARRAY_STRIDE                                                     0x807F
+#define GL_NORMAL_ARRAY_STRIDE_EXT                                                 0x807F
+#define GL_NORMAL_ARRAY_COUNT_EXT                                                  0x8080
+#define GL_COLOR_ARRAY_SIZE                                                        0x8081
+#define GL_COLOR_ARRAY_SIZE_EXT                                                    0x8081
+#define GL_COLOR_ARRAY_TYPE                                                        0x8082
+#define GL_COLOR_ARRAY_TYPE_EXT                                                    0x8082
+#define GL_COLOR_ARRAY_STRIDE                                                      0x8083
+#define GL_COLOR_ARRAY_STRIDE_EXT                                                  0x8083
+#define GL_COLOR_ARRAY_COUNT_EXT                                                   0x8084
+#define GL_INDEX_ARRAY_TYPE                                                        0x8085
+#define GL_INDEX_ARRAY_TYPE_EXT                                                    0x8085
+#define GL_INDEX_ARRAY_STRIDE                                                      0x8086
+#define GL_INDEX_ARRAY_STRIDE_EXT                                                  0x8086
+#define GL_INDEX_ARRAY_COUNT_EXT                                                   0x8087
+#define GL_TEXTURE_COORD_ARRAY_SIZE                                                0x8088
+#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT                                            0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE                                                0x8089
+#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT                                            0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE                                              0x808A
+#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT                                          0x808A
+#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT                                           0x808B
+#define GL_EDGE_FLAG_ARRAY_STRIDE                                                  0x808C
+#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT                                              0x808C
+#define GL_EDGE_FLAG_ARRAY_COUNT_EXT                                               0x808D
+#define GL_VERTEX_ARRAY_POINTER                                                    0x808E
+#define GL_VERTEX_ARRAY_POINTER_EXT                                                0x808E
+#define GL_NORMAL_ARRAY_POINTER                                                    0x808F
+#define GL_NORMAL_ARRAY_POINTER_EXT                                                0x808F
+#define GL_COLOR_ARRAY_POINTER                                                     0x8090
+#define GL_COLOR_ARRAY_POINTER_EXT                                                 0x8090
+#define GL_INDEX_ARRAY_POINTER                                                     0x8091
+#define GL_INDEX_ARRAY_POINTER_EXT                                                 0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER                                             0x8092
+#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT                                         0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER                                                 0x8093
+#define GL_EDGE_FLAG_ARRAY_POINTER_EXT                                             0x8093
+#define GL_INTERLACE_SGIX                                                          0x8094
+#define GL_DETAIL_TEXTURE_2D_SGIS                                                  0x8095
+#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS                                          0x8096
+#define GL_LINEAR_DETAIL_SGIS                                                      0x8097
+#define GL_LINEAR_DETAIL_ALPHA_SGIS                                                0x8098
+#define GL_LINEAR_DETAIL_COLOR_SGIS                                                0x8099
+#define GL_DETAIL_TEXTURE_LEVEL_SGIS                                               0x809A
+#define GL_DETAIL_TEXTURE_MODE_SGIS                                                0x809B
+#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS                                         0x809C
+#define GL_MULTISAMPLE                                                             0x809D
+#define GL_MULTISAMPLE_ARB                                                         0x809D
+#define GL_MULTISAMPLE_EXT                                                         0x809D
+#define GL_MULTISAMPLE_SGIS                                                        0x809D
+#define GL_SAMPLE_ALPHA_TO_COVERAGE                                                0x809E
+#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB                                            0x809E
+#define GL_SAMPLE_ALPHA_TO_MASK_EXT                                                0x809E
+#define GL_SAMPLE_ALPHA_TO_MASK_SGIS                                               0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE                                                     0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_ARB                                                 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_EXT                                                 0x809F
+#define GL_SAMPLE_ALPHA_TO_ONE_SGIS                                                0x809F
+#define GL_SAMPLE_COVERAGE                                                         0x80A0
+#define GL_SAMPLE_COVERAGE_ARB                                                     0x80A0
+#define GL_SAMPLE_MASK_EXT                                                         0x80A0
+#define GL_SAMPLE_MASK_SGIS                                                        0x80A0
+#define GL_1PASS_EXT                                                               0x80A1
+#define GL_1PASS_SGIS                                                              0x80A1
+#define GL_2PASS_0_EXT                                                             0x80A2
+#define GL_2PASS_0_SGIS                                                            0x80A2
+#define GL_2PASS_1_EXT                                                             0x80A3
+#define GL_2PASS_1_SGIS                                                            0x80A3
+#define GL_4PASS_0_EXT                                                             0x80A4
+#define GL_4PASS_0_SGIS                                                            0x80A4
+#define GL_4PASS_1_EXT                                                             0x80A5
+#define GL_4PASS_1_SGIS                                                            0x80A5
+#define GL_4PASS_2_EXT                                                             0x80A6
+#define GL_4PASS_2_SGIS                                                            0x80A6
+#define GL_4PASS_3_EXT                                                             0x80A7
+#define GL_4PASS_3_SGIS                                                            0x80A7
+#define GL_SAMPLE_BUFFERS                                                          0x80A8
+#define GL_SAMPLE_BUFFERS_ARB                                                      0x80A8
+#define GL_SAMPLE_BUFFERS_EXT                                                      0x80A8
+#define GL_SAMPLE_BUFFERS_SGIS                                                     0x80A8
+#define GL_SAMPLES                                                                 0x80A9
+#define GL_SAMPLES_ARB                                                             0x80A9
+#define GL_SAMPLES_EXT                                                             0x80A9
+#define GL_SAMPLES_SGIS                                                            0x80A9
+#define GL_SAMPLE_COVERAGE_VALUE                                                   0x80AA
+#define GL_SAMPLE_COVERAGE_VALUE_ARB                                               0x80AA
+#define GL_SAMPLE_MASK_VALUE_EXT                                                   0x80AA
+#define GL_SAMPLE_MASK_VALUE_SGIS                                                  0x80AA
+#define GL_SAMPLE_COVERAGE_INVERT                                                  0x80AB
+#define GL_SAMPLE_COVERAGE_INVERT_ARB                                              0x80AB
+#define GL_SAMPLE_MASK_INVERT_EXT                                                  0x80AB
+#define GL_SAMPLE_MASK_INVERT_SGIS                                                 0x80AB
+#define GL_SAMPLE_PATTERN_EXT                                                      0x80AC
+#define GL_SAMPLE_PATTERN_SGIS                                                     0x80AC
+#define GL_LINEAR_SHARPEN_SGIS                                                     0x80AD
+#define GL_LINEAR_SHARPEN_ALPHA_SGIS                                               0x80AE
+#define GL_LINEAR_SHARPEN_COLOR_SGIS                                               0x80AF
+#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS                                        0x80B0
+#define GL_COLOR_MATRIX                                                            0x80B1
+#define GL_COLOR_MATRIX_SGI                                                        0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH                                                0x80B2
+#define GL_COLOR_MATRIX_STACK_DEPTH_SGI                                            0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH                                            0x80B3
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI                                        0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE                                             0x80B4
+#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI                                         0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE                                           0x80B5
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI                                       0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE                                            0x80B6
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI                                        0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE                                           0x80B7
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI                                       0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS                                              0x80B8
+#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI                                          0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS                                            0x80B9
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI                                        0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS                                             0x80BA
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI                                         0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS                                            0x80BB
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI                                        0x80BB
+#define GL_TEXTURE_COLOR_TABLE_SGI                                                 0x80BC
+#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI                                           0x80BD
+#define GL_TEXTURE_ENV_BIAS_SGIX                                                   0x80BE
+#define GL_SHADOW_AMBIENT_SGIX                                                     0x80BF
+#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB                                          0x80BF
+#define GL_BLEND_DST_RGB                                                           0x80C8
+#define GL_BLEND_DST_RGB_EXT                                                       0x80C8
+#define GL_BLEND_DST_RGB_OES                                                       0x80C8
+#define GL_BLEND_SRC_RGB                                                           0x80C9
+#define GL_BLEND_SRC_RGB_EXT                                                       0x80C9
+#define GL_BLEND_SRC_RGB_OES                                                       0x80C9
+#define GL_BLEND_DST_ALPHA                                                         0x80CA
+#define GL_BLEND_DST_ALPHA_EXT                                                     0x80CA
+#define GL_BLEND_DST_ALPHA_OES                                                     0x80CA
+#define GL_BLEND_SRC_ALPHA                                                         0x80CB
+#define GL_BLEND_SRC_ALPHA_EXT                                                     0x80CB
+#define GL_BLEND_SRC_ALPHA_OES                                                     0x80CB
+#define GL_422_EXT                                                                 0x80CC
+#define GL_422_REV_EXT                                                             0x80CD
+#define GL_422_AVERAGE_EXT                                                         0x80CE
+#define GL_422_REV_AVERAGE_EXT                                                     0x80CF
+#define GL_COLOR_TABLE                                                             0x80D0
+#define GL_COLOR_TABLE_SGI                                                         0x80D0
+#define GL_POST_CONVOLUTION_COLOR_TABLE                                            0x80D1
+#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI                                        0x80D1
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE                                           0x80D2
+#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI                                       0x80D2
+#define GL_PROXY_COLOR_TABLE                                                       0x80D3
+#define GL_PROXY_COLOR_TABLE_SGI                                                   0x80D3
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE                                      0x80D4
+#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI                                  0x80D4
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE                                     0x80D5
+#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI                                 0x80D5
+#define GL_COLOR_TABLE_SCALE                                                       0x80D6
+#define GL_COLOR_TABLE_SCALE_SGI                                                   0x80D6
+#define GL_COLOR_TABLE_BIAS                                                        0x80D7
+#define GL_COLOR_TABLE_BIAS_SGI                                                    0x80D7
+#define GL_COLOR_TABLE_FORMAT                                                      0x80D8
+#define GL_COLOR_TABLE_FORMAT_SGI                                                  0x80D8
+#define GL_COLOR_TABLE_WIDTH                                                       0x80D9
+#define GL_COLOR_TABLE_WIDTH_SGI                                                   0x80D9
+#define GL_COLOR_TABLE_RED_SIZE                                                    0x80DA
+#define GL_COLOR_TABLE_RED_SIZE_SGI                                                0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE                                                  0x80DB
+#define GL_COLOR_TABLE_GREEN_SIZE_SGI                                              0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE                                                   0x80DC
+#define GL_COLOR_TABLE_BLUE_SIZE_SGI                                               0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE                                                  0x80DD
+#define GL_COLOR_TABLE_ALPHA_SIZE_SGI                                              0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE                                              0x80DE
+#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI                                          0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE                                              0x80DF
+#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI                                          0x80DF
+#define GL_BGR                                                                     0x80E0
+#define GL_BGR_EXT                                                                 0x80E0
+#define GL_BGRA                                                                    0x80E1
+#define GL_BGRA_EXT                                                                0x80E1
+#define GL_BGRA_IMG                                                                0x80E1
+#define GL_COLOR_INDEX1_EXT                                                        0x80E2
+#define GL_COLOR_INDEX2_EXT                                                        0x80E3
+#define GL_COLOR_INDEX4_EXT                                                        0x80E4
+#define GL_COLOR_INDEX8_EXT                                                        0x80E5
+#define GL_COLOR_INDEX12_EXT                                                       0x80E6
+#define GL_COLOR_INDEX16_EXT                                                       0x80E7
+#define GL_MAX_ELEMENTS_VERTICES                                                   0x80E8
+#define GL_MAX_ELEMENTS_VERTICES_EXT                                               0x80E8
+#define GL_MAX_ELEMENTS_INDICES                                                    0x80E9
+#define GL_MAX_ELEMENTS_INDICES_EXT                                                0x80E9
+#define GL_PHONG_WIN                                                               0x80EA
+#define GL_PHONG_HINT_WIN                                                          0x80EB
+#define GL_FOG_SPECULAR_TEXTURE_WIN                                                0x80EC
+#define GL_TEXTURE_INDEX_SIZE_EXT                                                  0x80ED
+#define GL_PARAMETER_BUFFER                                                        0x80EE
+#define GL_PARAMETER_BUFFER_ARB                                                    0x80EE
+#define GL_PARAMETER_BUFFER_BINDING                                                0x80EF
+#define GL_PARAMETER_BUFFER_BINDING_ARB                                            0x80EF
+#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT                                           0x80F0
+#define GL_DUAL_ALPHA4_SGIS                                                        0x8110
+#define GL_DUAL_ALPHA8_SGIS                                                        0x8111
+#define GL_DUAL_ALPHA12_SGIS                                                       0x8112
+#define GL_DUAL_ALPHA16_SGIS                                                       0x8113
+#define GL_DUAL_LUMINANCE4_SGIS                                                    0x8114
+#define GL_DUAL_LUMINANCE8_SGIS                                                    0x8115
+#define GL_DUAL_LUMINANCE12_SGIS                                                   0x8116
+#define GL_DUAL_LUMINANCE16_SGIS                                                   0x8117
+#define GL_DUAL_INTENSITY4_SGIS                                                    0x8118
+#define GL_DUAL_INTENSITY8_SGIS                                                    0x8119
+#define GL_DUAL_INTENSITY12_SGIS                                                   0x811A
+#define GL_DUAL_INTENSITY16_SGIS                                                   0x811B
+#define GL_DUAL_LUMINANCE_ALPHA4_SGIS                                              0x811C
+#define GL_DUAL_LUMINANCE_ALPHA8_SGIS                                              0x811D
+#define GL_QUAD_ALPHA4_SGIS                                                        0x811E
+#define GL_QUAD_ALPHA8_SGIS                                                        0x811F
+#define GL_QUAD_LUMINANCE4_SGIS                                                    0x8120
+#define GL_QUAD_LUMINANCE8_SGIS                                                    0x8121
+#define GL_QUAD_INTENSITY4_SGIS                                                    0x8122
+#define GL_QUAD_INTENSITY8_SGIS                                                    0x8123
+#define GL_DUAL_TEXTURE_SELECT_SGIS                                                0x8124
+#define GL_QUAD_TEXTURE_SELECT_SGIS                                                0x8125
+#define GL_POINT_SIZE_MIN                                                          0x8126
+#define GL_POINT_SIZE_MIN_ARB                                                      0x8126
+#define GL_POINT_SIZE_MIN_EXT                                                      0x8126
+#define GL_POINT_SIZE_MIN_SGIS                                                     0x8126
+#define GL_POINT_SIZE_MAX                                                          0x8127
+#define GL_POINT_SIZE_MAX_ARB                                                      0x8127
+#define GL_POINT_SIZE_MAX_EXT                                                      0x8127
+#define GL_POINT_SIZE_MAX_SGIS                                                     0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE                                               0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_ARB                                           0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT                                           0x8128
+#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS                                          0x8128
+#define GL_DISTANCE_ATTENUATION_EXT                                                0x8129
+#define GL_DISTANCE_ATTENUATION_SGIS                                               0x8129
+#define GL_POINT_DISTANCE_ATTENUATION                                              0x8129
+#define GL_POINT_DISTANCE_ATTENUATION_ARB                                          0x8129
+#define GL_FOG_FUNC_SGIS                                                           0x812A
+#define GL_FOG_FUNC_POINTS_SGIS                                                    0x812B
+#define GL_MAX_FOG_FUNC_POINTS_SGIS                                                0x812C
+#define GL_CLAMP_TO_BORDER                                                         0x812D
+#define GL_CLAMP_TO_BORDER_ARB                                                     0x812D
+#define GL_CLAMP_TO_BORDER_EXT                                                     0x812D
+#define GL_CLAMP_TO_BORDER_NV                                                      0x812D
+#define GL_CLAMP_TO_BORDER_OES                                                     0x812D
+#define GL_CLAMP_TO_BORDER_SGIS                                                    0x812D
+#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX                                          0x812E
+#define GL_CLAMP_TO_EDGE                                                           0x812F
+#define GL_CLAMP_TO_EDGE_SGIS                                                      0x812F
+#define GL_PACK_SKIP_VOLUMES_SGIS                                                  0x8130
+#define GL_PACK_IMAGE_DEPTH_SGIS                                                   0x8131
+#define GL_UNPACK_SKIP_VOLUMES_SGIS                                                0x8132
+#define GL_UNPACK_IMAGE_DEPTH_SGIS                                                 0x8133
+#define GL_TEXTURE_4D_SGIS                                                         0x8134
+#define GL_PROXY_TEXTURE_4D_SGIS                                                   0x8135
+#define GL_TEXTURE_4DSIZE_SGIS                                                     0x8136
+#define GL_TEXTURE_WRAP_Q_SGIS                                                     0x8137
+#define GL_MAX_4D_TEXTURE_SIZE_SGIS                                                0x8138
+#define GL_PIXEL_TEX_GEN_SGIX                                                      0x8139
+#define GL_TEXTURE_MIN_LOD                                                         0x813A
+#define GL_TEXTURE_MIN_LOD_SGIS                                                    0x813A
+#define GL_TEXTURE_MAX_LOD                                                         0x813B
+#define GL_TEXTURE_MAX_LOD_SGIS                                                    0x813B
+#define GL_TEXTURE_BASE_LEVEL                                                      0x813C
+#define GL_TEXTURE_BASE_LEVEL_SGIS                                                 0x813C
+#define GL_TEXTURE_MAX_LEVEL                                                       0x813D
+#define GL_TEXTURE_MAX_LEVEL_APPLE                                                 0x813D
+#define GL_TEXTURE_MAX_LEVEL_SGIS                                                  0x813D
+#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX                                          0x813E
+#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX                                         0x813F
+#define GL_PIXEL_TILE_WIDTH_SGIX                                                   0x8140
+#define GL_PIXEL_TILE_HEIGHT_SGIX                                                  0x8141
+#define GL_PIXEL_TILE_GRID_WIDTH_SGIX                                              0x8142
+#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX                                             0x8143
+#define GL_PIXEL_TILE_GRID_DEPTH_SGIX                                              0x8144
+#define GL_PIXEL_TILE_CACHE_SIZE_SGIX                                              0x8145
+#define GL_FILTER4_SGIS                                                            0x8146
+#define GL_TEXTURE_FILTER4_SIZE_SGIS                                               0x8147
+#define GL_SPRITE_SGIX                                                             0x8148
+#define GL_SPRITE_MODE_SGIX                                                        0x8149
+#define GL_SPRITE_AXIS_SGIX                                                        0x814A
+#define GL_SPRITE_TRANSLATION_SGIX                                                 0x814B
+#define GL_SPRITE_AXIAL_SGIX                                                       0x814C
+#define GL_SPRITE_OBJECT_ALIGNED_SGIX                                              0x814D
+#define GL_SPRITE_EYE_ALIGNED_SGIX                                                 0x814E
+#define GL_TEXTURE_4D_BINDING_SGIS                                                 0x814F
+#define GL_IGNORE_BORDER_HP                                                        0x8150
+#define GL_CONSTANT_BORDER                                                         0x8151
+#define GL_CONSTANT_BORDER_HP                                                      0x8151
+#define GL_REPLICATE_BORDER                                                        0x8153
+#define GL_REPLICATE_BORDER_HP                                                     0x8153
+#define GL_CONVOLUTION_BORDER_COLOR                                                0x8154
+#define GL_CONVOLUTION_BORDER_COLOR_HP                                             0x8154
+#define GL_IMAGE_SCALE_X_HP                                                        0x8155
+#define GL_IMAGE_SCALE_Y_HP                                                        0x8156
+#define GL_IMAGE_TRANSLATE_X_HP                                                    0x8157
+#define GL_IMAGE_TRANSLATE_Y_HP                                                    0x8158
+#define GL_IMAGE_ROTATE_ANGLE_HP                                                   0x8159
+#define GL_IMAGE_ROTATE_ORIGIN_X_HP                                                0x815A
+#define GL_IMAGE_ROTATE_ORIGIN_Y_HP                                                0x815B
+#define GL_IMAGE_MAG_FILTER_HP                                                     0x815C
+#define GL_IMAGE_MIN_FILTER_HP                                                     0x815D
+#define GL_IMAGE_CUBIC_WEIGHT_HP                                                   0x815E
+#define GL_CUBIC_HP                                                                0x815F
+#define GL_AVERAGE_HP                                                              0x8160
+#define GL_IMAGE_TRANSFORM_2D_HP                                                   0x8161
+#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP                                     0x8162
+#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP                               0x8163
+#define GL_OCCLUSION_TEST_HP                                                       0x8165
+#define GL_OCCLUSION_TEST_RESULT_HP                                                0x8166
+#define GL_TEXTURE_LIGHTING_MODE_HP                                                0x8167
+#define GL_TEXTURE_POST_SPECULAR_HP                                                0x8168
+#define GL_TEXTURE_PRE_SPECULAR_HP                                                 0x8169
+#define GL_LINEAR_CLIPMAP_LINEAR_SGIX                                              0x8170
+#define GL_TEXTURE_CLIPMAP_CENTER_SGIX                                             0x8171
+#define GL_TEXTURE_CLIPMAP_FRAME_SGIX                                              0x8172
+#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX                                             0x8173
+#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX                                      0x8174
+#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX                                         0x8175
+#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX                                              0x8176
+#define GL_MAX_CLIPMAP_DEPTH_SGIX                                                  0x8177
+#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX                                          0x8178
+#define GL_POST_TEXTURE_FILTER_BIAS_SGIX                                           0x8179
+#define GL_POST_TEXTURE_FILTER_SCALE_SGIX                                          0x817A
+#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX                                     0x817B
+#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX                                    0x817C
+#define GL_REFERENCE_PLANE_SGIX                                                    0x817D
+#define GL_REFERENCE_PLANE_EQUATION_SGIX                                           0x817E
+#define GL_IR_INSTRUMENT1_SGIX                                                     0x817F
+#define GL_INSTRUMENT_BUFFER_POINTER_SGIX                                          0x8180
+#define GL_INSTRUMENT_MEASUREMENTS_SGIX                                            0x8181
+#define GL_LIST_PRIORITY_SGIX                                                      0x8182
+#define GL_CALLIGRAPHIC_FRAGMENT_SGIX                                              0x8183
+#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX                                            0x8184
+#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX                                              0x8185
+#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX                                              0x8186
+#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX                                        0x8187
+#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX                                     0x8188
+#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX                                             0x8189
+#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX                                             0x818A
+#define GL_FRAMEZOOM_SGIX                                                          0x818B
+#define GL_FRAMEZOOM_FACTOR_SGIX                                                   0x818C
+#define GL_MAX_FRAMEZOOM_FACTOR_SGIX                                               0x818D
+#define GL_TEXTURE_LOD_BIAS_S_SGIX                                                 0x818E
+#define GL_TEXTURE_LOD_BIAS_T_SGIX                                                 0x818F
+#define GL_TEXTURE_LOD_BIAS_R_SGIX                                                 0x8190
+#define GL_GENERATE_MIPMAP                                                         0x8191
+#define GL_GENERATE_MIPMAP_SGIS                                                    0x8191
+#define GL_GENERATE_MIPMAP_HINT                                                    0x8192
+#define GL_GENERATE_MIPMAP_HINT_SGIS                                               0x8192
+#define GL_GEOMETRY_DEFORMATION_SGIX                                               0x8194
+#define GL_TEXTURE_DEFORMATION_SGIX                                                0x8195
+#define GL_DEFORMATIONS_MASK_SGIX                                                  0x8196
+#define GL_MAX_DEFORMATION_ORDER_SGIX                                              0x8197
+#define GL_FOG_OFFSET_SGIX                                                         0x8198
+#define GL_FOG_OFFSET_VALUE_SGIX                                                   0x8199
+#define GL_TEXTURE_COMPARE_SGIX                                                    0x819A
+#define GL_TEXTURE_COMPARE_OPERATOR_SGIX                                           0x819B
+#define GL_TEXTURE_LEQUAL_R_SGIX                                                   0x819C
+#define GL_TEXTURE_GEQUAL_R_SGIX                                                   0x819D
+#define GL_DEPTH_COMPONENT16                                                       0x81A5
+#define GL_DEPTH_COMPONENT16_ARB                                                   0x81A5
+#define GL_DEPTH_COMPONENT16_OES                                                   0x81A5
+#define GL_DEPTH_COMPONENT16_SGIX                                                  0x81A5
+#define GL_DEPTH_COMPONENT24                                                       0x81A6
+#define GL_DEPTH_COMPONENT24_ARB                                                   0x81A6
+#define GL_DEPTH_COMPONENT24_OES                                                   0x81A6
+#define GL_DEPTH_COMPONENT24_SGIX                                                  0x81A6
+#define GL_DEPTH_COMPONENT32                                                       0x81A7
+#define GL_DEPTH_COMPONENT32_ARB                                                   0x81A7
+#define GL_DEPTH_COMPONENT32_OES                                                   0x81A7
+#define GL_DEPTH_COMPONENT32_SGIX                                                  0x81A7
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT                                            0x81A8
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT                                            0x81A9
+#define GL_CULL_VERTEX_EXT                                                         0x81AA
+#define GL_CULL_VERTEX_EYE_POSITION_EXT                                            0x81AB
+#define GL_CULL_VERTEX_OBJECT_POSITION_EXT                                         0x81AC
+#define GL_IUI_V2F_EXT                                                             0x81AD
+#define GL_IUI_V3F_EXT                                                             0x81AE
+#define GL_IUI_N3F_V2F_EXT                                                         0x81AF
+#define GL_IUI_N3F_V3F_EXT                                                         0x81B0
+#define GL_T2F_IUI_V2F_EXT                                                         0x81B1
+#define GL_T2F_IUI_V3F_EXT                                                         0x81B2
+#define GL_T2F_IUI_N3F_V2F_EXT                                                     0x81B3
+#define GL_T2F_IUI_N3F_V3F_EXT                                                     0x81B4
+#define GL_INDEX_TEST_EXT                                                          0x81B5
+#define GL_INDEX_TEST_FUNC_EXT                                                     0x81B6
+#define GL_INDEX_TEST_REF_EXT                                                      0x81B7
+#define GL_INDEX_MATERIAL_EXT                                                      0x81B8
+#define GL_INDEX_MATERIAL_PARAMETER_EXT                                            0x81B9
+#define GL_INDEX_MATERIAL_FACE_EXT                                                 0x81BA
+#define GL_YCRCB_422_SGIX                                                          0x81BB
+#define GL_YCRCB_444_SGIX                                                          0x81BC
+#define GL_WRAP_BORDER_SUN                                                         0x81D4
+#define GL_UNPACK_CONSTANT_DATA_SUNX                                               0x81D5
+#define GL_TEXTURE_CONSTANT_DATA_SUNX                                              0x81D6
+#define GL_TRIANGLE_LIST_SUN                                                       0x81D7
+#define GL_REPLACEMENT_CODE_SUN                                                    0x81D8
+#define GL_GLOBAL_ALPHA_SUN                                                        0x81D9
+#define GL_GLOBAL_ALPHA_FACTOR_SUN                                                 0x81DA
+#define GL_TEXTURE_COLOR_WRITEMASK_SGIS                                            0x81EF
+#define GL_EYE_DISTANCE_TO_POINT_SGIS                                              0x81F0
+#define GL_OBJECT_DISTANCE_TO_POINT_SGIS                                           0x81F1
+#define GL_EYE_DISTANCE_TO_LINE_SGIS                                               0x81F2
+#define GL_OBJECT_DISTANCE_TO_LINE_SGIS                                            0x81F3
+#define GL_EYE_POINT_SGIS                                                          0x81F4
+#define GL_OBJECT_POINT_SGIS                                                       0x81F5
+#define GL_EYE_LINE_SGIS                                                           0x81F6
+#define GL_OBJECT_LINE_SGIS                                                        0x81F7
+#define GL_LIGHT_MODEL_COLOR_CONTROL                                               0x81F8
+#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT                                           0x81F8
+#define GL_SINGLE_COLOR                                                            0x81F9
+#define GL_SINGLE_COLOR_EXT                                                        0x81F9
+#define GL_SEPARATE_SPECULAR_COLOR                                                 0x81FA
+#define GL_SEPARATE_SPECULAR_COLOR_EXT                                             0x81FA
+#define GL_SHARED_TEXTURE_PALETTE_EXT                                              0x81FB
+#define GL_TEXT_FRAGMENT_SHADER_ATI                                                0x8200
+#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING                                   0x8210
+#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT                               0x8210
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE                                   0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT                               0x8211
+#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE                                         0x8212
+#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE                                       0x8213
+#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE                                        0x8214
+#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE                                       0x8215
+#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE                                       0x8216
+#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE                                     0x8217
+#define GL_FRAMEBUFFER_DEFAULT                                                     0x8218
+#define GL_FRAMEBUFFER_UNDEFINED                                                   0x8219
+#define GL_FRAMEBUFFER_UNDEFINED_OES                                               0x8219
+#define GL_DEPTH_STENCIL_ATTACHMENT                                                0x821A
+#define GL_MAJOR_VERSION                                                           0x821B
+#define GL_MINOR_VERSION                                                           0x821C
+#define GL_NUM_EXTENSIONS                                                          0x821D
+#define GL_CONTEXT_FLAGS                                                           0x821E
+#define GL_BUFFER_IMMUTABLE_STORAGE                                                0x821F
+#define GL_BUFFER_IMMUTABLE_STORAGE_EXT                                            0x821F
+#define GL_BUFFER_STORAGE_FLAGS                                                    0x8220
+#define GL_BUFFER_STORAGE_FLAGS_EXT                                                0x8220
+#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED                                 0x8221
+#define GL_PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED_OES                             0x8221
+#define GL_INDEX                                                                   0x8222
+#define GL_COMPRESSED_RED                                                          0x8225
+#define GL_COMPRESSED_RG                                                           0x8226
+#define GL_RG                                                                      0x8227
+#define GL_RG_EXT                                                                  0x8227
+#define GL_RG_INTEGER                                                              0x8228
+#define GL_R8                                                                      0x8229
+#define GL_R8_EXT                                                                  0x8229
+#define GL_R16                                                                     0x822A
+#define GL_R16_EXT                                                                 0x822A
+#define GL_RG8                                                                     0x822B
+#define GL_RG8_EXT                                                                 0x822B
+#define GL_RG16                                                                    0x822C
+#define GL_RG16_EXT                                                                0x822C
+#define GL_R16F                                                                    0x822D
+#define GL_R16F_EXT                                                                0x822D
+#define GL_R32F                                                                    0x822E
+#define GL_R32F_EXT                                                                0x822E
+#define GL_RG16F                                                                   0x822F
+#define GL_RG16F_EXT                                                               0x822F
+#define GL_RG32F                                                                   0x8230
+#define GL_RG32F_EXT                                                               0x8230
+#define GL_R8I                                                                     0x8231
+#define GL_R8UI                                                                    0x8232
+#define GL_R16I                                                                    0x8233
+#define GL_R16UI                                                                   0x8234
+#define GL_R32I                                                                    0x8235
+#define GL_R32UI                                                                   0x8236
+#define GL_RG8I                                                                    0x8237
+#define GL_RG8UI                                                                   0x8238
+#define GL_RG16I                                                                   0x8239
+#define GL_RG16UI                                                                  0x823A
+#define GL_RG32I                                                                   0x823B
+#define GL_RG32UI                                                                  0x823C
+#define GL_SYNC_CL_EVENT_ARB                                                       0x8240
+#define GL_SYNC_CL_EVENT_COMPLETE_ARB                                              0x8241
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS                                                0x8242
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB                                            0x8242
+#define GL_DEBUG_OUTPUT_SYNCHRONOUS_KHR                                            0x8242
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH                                        0x8243
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB                                    0x8243
+#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_KHR                                    0x8243
+#define GL_DEBUG_CALLBACK_FUNCTION                                                 0x8244
+#define GL_DEBUG_CALLBACK_FUNCTION_ARB                                             0x8244
+#define GL_DEBUG_CALLBACK_FUNCTION_KHR                                             0x8244
+#define GL_DEBUG_CALLBACK_USER_PARAM                                               0x8245
+#define GL_DEBUG_CALLBACK_USER_PARAM_ARB                                           0x8245
+#define GL_DEBUG_CALLBACK_USER_PARAM_KHR                                           0x8245
+#define GL_DEBUG_SOURCE_API                                                        0x8246
+#define GL_DEBUG_SOURCE_API_ARB                                                    0x8246
+#define GL_DEBUG_SOURCE_API_KHR                                                    0x8246
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM                                              0x8247
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB                                          0x8247
+#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_KHR                                          0x8247
+#define GL_DEBUG_SOURCE_SHADER_COMPILER                                            0x8248
+#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB                                        0x8248
+#define GL_DEBUG_SOURCE_SHADER_COMPILER_KHR                                        0x8248
+#define GL_DEBUG_SOURCE_THIRD_PARTY                                                0x8249
+#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB                                            0x8249
+#define GL_DEBUG_SOURCE_THIRD_PARTY_KHR                                            0x8249
+#define GL_DEBUG_SOURCE_APPLICATION                                                0x824A
+#define GL_DEBUG_SOURCE_APPLICATION_ARB                                            0x824A
+#define GL_DEBUG_SOURCE_APPLICATION_KHR                                            0x824A
+#define GL_DEBUG_SOURCE_OTHER                                                      0x824B
+#define GL_DEBUG_SOURCE_OTHER_ARB                                                  0x824B
+#define GL_DEBUG_SOURCE_OTHER_KHR                                                  0x824B
+#define GL_DEBUG_TYPE_ERROR                                                        0x824C
+#define GL_DEBUG_TYPE_ERROR_ARB                                                    0x824C
+#define GL_DEBUG_TYPE_ERROR_KHR                                                    0x824C
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR                                          0x824D
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB                                      0x824D
+#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_KHR                                      0x824D
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR                                           0x824E
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB                                       0x824E
+#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_KHR                                       0x824E
+#define GL_DEBUG_TYPE_PORTABILITY                                                  0x824F
+#define GL_DEBUG_TYPE_PORTABILITY_ARB                                              0x824F
+#define GL_DEBUG_TYPE_PORTABILITY_KHR                                              0x824F
+#define GL_DEBUG_TYPE_PERFORMANCE                                                  0x8250
+#define GL_DEBUG_TYPE_PERFORMANCE_ARB                                              0x8250
+#define GL_DEBUG_TYPE_PERFORMANCE_KHR                                              0x8250
+#define GL_DEBUG_TYPE_OTHER                                                        0x8251
+#define GL_DEBUG_TYPE_OTHER_ARB                                                    0x8251
+#define GL_DEBUG_TYPE_OTHER_KHR                                                    0x8251
+#define GL_LOSE_CONTEXT_ON_RESET                                                   0x8252
+#define GL_LOSE_CONTEXT_ON_RESET_ARB                                               0x8252
+#define GL_LOSE_CONTEXT_ON_RESET_EXT                                               0x8252
+#define GL_LOSE_CONTEXT_ON_RESET_KHR                                               0x8252
+#define GL_GUILTY_CONTEXT_RESET                                                    0x8253
+#define GL_GUILTY_CONTEXT_RESET_ARB                                                0x8253
+#define GL_GUILTY_CONTEXT_RESET_EXT                                                0x8253
+#define GL_GUILTY_CONTEXT_RESET_KHR                                                0x8253
+#define GL_INNOCENT_CONTEXT_RESET                                                  0x8254
+#define GL_INNOCENT_CONTEXT_RESET_ARB                                              0x8254
+#define GL_INNOCENT_CONTEXT_RESET_EXT                                              0x8254
+#define GL_INNOCENT_CONTEXT_RESET_KHR                                              0x8254
+#define GL_UNKNOWN_CONTEXT_RESET                                                   0x8255
+#define GL_UNKNOWN_CONTEXT_RESET_ARB                                               0x8255
+#define GL_UNKNOWN_CONTEXT_RESET_EXT                                               0x8255
+#define GL_UNKNOWN_CONTEXT_RESET_KHR                                               0x8255
+#define GL_RESET_NOTIFICATION_STRATEGY                                             0x8256
+#define GL_RESET_NOTIFICATION_STRATEGY_ARB                                         0x8256
+#define GL_RESET_NOTIFICATION_STRATEGY_EXT                                         0x8256
+#define GL_RESET_NOTIFICATION_STRATEGY_KHR                                         0x8256
+#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT                                         0x8257
+#define GL_PROGRAM_SEPARABLE                                                       0x8258
+#define GL_PROGRAM_SEPARABLE_EXT                                                   0x8258
+#define GL_ACTIVE_PROGRAM                                                          0x8259
+#define GL_PROGRAM_PIPELINE_BINDING                                                0x825A
+#define GL_PROGRAM_PIPELINE_BINDING_EXT                                            0x825A
+#define GL_MAX_VIEWPORTS                                                           0x825B
+#define GL_MAX_VIEWPORTS_NV                                                        0x825B
+#define GL_MAX_VIEWPORTS_OES                                                       0x825B
+#define GL_VIEWPORT_SUBPIXEL_BITS                                                  0x825C
+#define GL_VIEWPORT_SUBPIXEL_BITS_EXT                                              0x825C
+#define GL_VIEWPORT_SUBPIXEL_BITS_NV                                               0x825C
+#define GL_VIEWPORT_SUBPIXEL_BITS_OES                                              0x825C
+#define GL_VIEWPORT_BOUNDS_RANGE                                                   0x825D
+#define GL_VIEWPORT_BOUNDS_RANGE_EXT                                               0x825D
+#define GL_VIEWPORT_BOUNDS_RANGE_NV                                                0x825D
+#define GL_VIEWPORT_BOUNDS_RANGE_OES                                               0x825D
+#define GL_LAYER_PROVOKING_VERTEX                                                  0x825E
+#define GL_LAYER_PROVOKING_VERTEX_EXT                                              0x825E
+#define GL_LAYER_PROVOKING_VERTEX_OES                                              0x825E
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX                                         0x825F
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_EXT                                     0x825F
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_NV                                      0x825F
+#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX_OES                                     0x825F
+#define GL_UNDEFINED_VERTEX                                                        0x8260
+#define GL_UNDEFINED_VERTEX_EXT                                                    0x8260
+#define GL_UNDEFINED_VERTEX_OES                                                    0x8260
+#define GL_NO_RESET_NOTIFICATION                                                   0x8261
+#define GL_NO_RESET_NOTIFICATION_ARB                                               0x8261
+#define GL_NO_RESET_NOTIFICATION_EXT                                               0x8261
+#define GL_NO_RESET_NOTIFICATION_KHR                                               0x8261
+#define GL_MAX_COMPUTE_SHARED_MEMORY_SIZE                                          0x8262
+#define GL_MAX_COMPUTE_UNIFORM_COMPONENTS                                          0x8263
+#define GL_MAX_COMPUTE_ATOMIC_COUNTER_BUFFERS                                      0x8264
+#define GL_MAX_COMPUTE_ATOMIC_COUNTERS                                             0x8265
+#define GL_MAX_COMBINED_COMPUTE_UNIFORM_COMPONENTS                                 0x8266
+#define GL_COMPUTE_WORK_GROUP_SIZE                                                 0x8267
+#define GL_DEBUG_TYPE_MARKER                                                       0x8268
+#define GL_DEBUG_TYPE_MARKER_KHR                                                   0x8268
+#define GL_DEBUG_TYPE_PUSH_GROUP                                                   0x8269
+#define GL_DEBUG_TYPE_PUSH_GROUP_KHR                                               0x8269
+#define GL_DEBUG_TYPE_POP_GROUP                                                    0x826A
+#define GL_DEBUG_TYPE_POP_GROUP_KHR                                                0x826A
+#define GL_DEBUG_SEVERITY_NOTIFICATION                                             0x826B
+#define GL_DEBUG_SEVERITY_NOTIFICATION_KHR                                         0x826B
+#define GL_MAX_DEBUG_GROUP_STACK_DEPTH                                             0x826C
+#define GL_MAX_DEBUG_GROUP_STACK_DEPTH_KHR                                         0x826C
+#define GL_DEBUG_GROUP_STACK_DEPTH                                                 0x826D
+#define GL_DEBUG_GROUP_STACK_DEPTH_KHR                                             0x826D
+#define GL_MAX_UNIFORM_LOCATIONS                                                   0x826E
+#define GL_INTERNALFORMAT_SUPPORTED                                                0x826F
+#define GL_INTERNALFORMAT_PREFERRED                                                0x8270
+#define GL_INTERNALFORMAT_RED_SIZE                                                 0x8271
+#define GL_INTERNALFORMAT_GREEN_SIZE                                               0x8272
+#define GL_INTERNALFORMAT_BLUE_SIZE                                                0x8273
+#define GL_INTERNALFORMAT_ALPHA_SIZE                                               0x8274
+#define GL_INTERNALFORMAT_DEPTH_SIZE                                               0x8275
+#define GL_INTERNALFORMAT_STENCIL_SIZE                                             0x8276
+#define GL_INTERNALFORMAT_SHARED_SIZE                                              0x8277
+#define GL_INTERNALFORMAT_RED_TYPE                                                 0x8278
+#define GL_INTERNALFORMAT_GREEN_TYPE                                               0x8279
+#define GL_INTERNALFORMAT_BLUE_TYPE                                                0x827A
+#define GL_INTERNALFORMAT_ALPHA_TYPE                                               0x827B
+#define GL_INTERNALFORMAT_DEPTH_TYPE                                               0x827C
+#define GL_INTERNALFORMAT_STENCIL_TYPE                                             0x827D
+#define GL_MAX_WIDTH                                                               0x827E
+#define GL_MAX_HEIGHT                                                              0x827F
+#define GL_MAX_DEPTH                                                               0x8280
+#define GL_MAX_LAYERS                                                              0x8281
+#define GL_MAX_COMBINED_DIMENSIONS                                                 0x8282
+#define GL_COLOR_COMPONENTS                                                        0x8283
+#define GL_DEPTH_COMPONENTS                                                        0x8284
+#define GL_STENCIL_COMPONENTS                                                      0x8285
+#define GL_COLOR_RENDERABLE                                                        0x8286
+#define GL_DEPTH_RENDERABLE                                                        0x8287
+#define GL_STENCIL_RENDERABLE                                                      0x8288
+#define GL_FRAMEBUFFER_RENDERABLE                                                  0x8289
+#define GL_FRAMEBUFFER_RENDERABLE_LAYERED                                          0x828A
+#define GL_FRAMEBUFFER_BLEND                                                       0x828B
+#define GL_READ_PIXELS                                                             0x828C
+#define GL_READ_PIXELS_FORMAT                                                      0x828D
+#define GL_READ_PIXELS_TYPE                                                        0x828E
+#define GL_TEXTURE_IMAGE_FORMAT                                                    0x828F
+#define GL_TEXTURE_IMAGE_TYPE                                                      0x8290
+#define GL_GET_TEXTURE_IMAGE_FORMAT                                                0x8291
+#define GL_GET_TEXTURE_IMAGE_TYPE                                                  0x8292
+#define GL_MIPMAP                                                                  0x8293
+#define GL_MANUAL_GENERATE_MIPMAP                                                  0x8294
+#define GL_AUTO_GENERATE_MIPMAP                                                    0x8295
+#define GL_COLOR_ENCODING                                                          0x8296
+#define GL_SRGB_READ                                                               0x8297
+#define GL_SRGB_WRITE                                                              0x8298
+#define GL_SRGB_DECODE_ARB                                                         0x8299
+#define GL_FILTER                                                                  0x829A
+#define GL_VERTEX_TEXTURE                                                          0x829B
+#define GL_TESS_CONTROL_TEXTURE                                                    0x829C
+#define GL_TESS_EVALUATION_TEXTURE                                                 0x829D
+#define GL_GEOMETRY_TEXTURE                                                        0x829E
+#define GL_FRAGMENT_TEXTURE                                                        0x829F
+#define GL_COMPUTE_TEXTURE                                                         0x82A0
+#define GL_TEXTURE_SHADOW                                                          0x82A1
+#define GL_TEXTURE_GATHER                                                          0x82A2
+#define GL_TEXTURE_GATHER_SHADOW                                                   0x82A3
+#define GL_SHADER_IMAGE_LOAD                                                       0x82A4
+#define GL_SHADER_IMAGE_STORE                                                      0x82A5
+#define GL_SHADER_IMAGE_ATOMIC                                                     0x82A6
+#define GL_IMAGE_TEXEL_SIZE                                                        0x82A7
+#define GL_IMAGE_COMPATIBILITY_CLASS                                               0x82A8
+#define GL_IMAGE_PIXEL_FORMAT                                                      0x82A9
+#define GL_IMAGE_PIXEL_TYPE                                                        0x82AA
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_TEST                                     0x82AC
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_TEST                                   0x82AD
+#define GL_SIMULTANEOUS_TEXTURE_AND_DEPTH_WRITE                                    0x82AE
+#define GL_SIMULTANEOUS_TEXTURE_AND_STENCIL_WRITE                                  0x82AF
+#define GL_TEXTURE_COMPRESSED_BLOCK_WIDTH                                          0x82B1
+#define GL_TEXTURE_COMPRESSED_BLOCK_HEIGHT                                         0x82B2
+#define GL_TEXTURE_COMPRESSED_BLOCK_SIZE                                           0x82B3
+#define GL_CLEAR_BUFFER                                                            0x82B4
+#define GL_TEXTURE_VIEW                                                            0x82B5
+#define GL_VIEW_COMPATIBILITY_CLASS                                                0x82B6
+#define GL_FULL_SUPPORT                                                            0x82B7
+#define GL_CAVEAT_SUPPORT                                                          0x82B8
+#define GL_IMAGE_CLASS_4_X_32                                                      0x82B9
+#define GL_IMAGE_CLASS_2_X_32                                                      0x82BA
+#define GL_IMAGE_CLASS_1_X_32                                                      0x82BB
+#define GL_IMAGE_CLASS_4_X_16                                                      0x82BC
+#define GL_IMAGE_CLASS_2_X_16                                                      0x82BD
+#define GL_IMAGE_CLASS_1_X_16                                                      0x82BE
+#define GL_IMAGE_CLASS_4_X_8                                                       0x82BF
+#define GL_IMAGE_CLASS_2_X_8                                                       0x82C0
+#define GL_IMAGE_CLASS_1_X_8                                                       0x82C1
+#define GL_IMAGE_CLASS_11_11_10                                                    0x82C2
+#define GL_IMAGE_CLASS_10_10_10_2                                                  0x82C3
+#define GL_VIEW_CLASS_128_BITS                                                     0x82C4
+#define GL_VIEW_CLASS_96_BITS                                                      0x82C5
+#define GL_VIEW_CLASS_64_BITS                                                      0x82C6
+#define GL_VIEW_CLASS_48_BITS                                                      0x82C7
+#define GL_VIEW_CLASS_32_BITS                                                      0x82C8
+#define GL_VIEW_CLASS_24_BITS                                                      0x82C9
+#define GL_VIEW_CLASS_16_BITS                                                      0x82CA
+#define GL_VIEW_CLASS_8_BITS                                                       0x82CB
+#define GL_VIEW_CLASS_S3TC_DXT1_RGB                                                0x82CC
+#define GL_VIEW_CLASS_S3TC_DXT1_RGBA                                               0x82CD
+#define GL_VIEW_CLASS_S3TC_DXT3_RGBA                                               0x82CE
+#define GL_VIEW_CLASS_S3TC_DXT5_RGBA                                               0x82CF
+#define GL_VIEW_CLASS_RGTC1_RED                                                    0x82D0
+#define GL_VIEW_CLASS_RGTC2_RG                                                     0x82D1
+#define GL_VIEW_CLASS_BPTC_UNORM                                                   0x82D2
+#define GL_VIEW_CLASS_BPTC_FLOAT                                                   0x82D3
+#define GL_VERTEX_ATTRIB_BINDING                                                   0x82D4
+#define GL_VERTEX_ATTRIB_RELATIVE_OFFSET                                           0x82D5
+#define GL_VERTEX_BINDING_DIVISOR                                                  0x82D6
+#define GL_VERTEX_BINDING_OFFSET                                                   0x82D7
+#define GL_VERTEX_BINDING_STRIDE                                                   0x82D8
+#define GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET                                       0x82D9
+#define GL_MAX_VERTEX_ATTRIB_BINDINGS                                              0x82DA
+#define GL_TEXTURE_VIEW_MIN_LEVEL                                                  0x82DB
+#define GL_TEXTURE_VIEW_MIN_LEVEL_EXT                                              0x82DB
+#define GL_TEXTURE_VIEW_MIN_LEVEL_OES                                              0x82DB
+#define GL_TEXTURE_VIEW_NUM_LEVELS                                                 0x82DC
+#define GL_TEXTURE_VIEW_NUM_LEVELS_EXT                                             0x82DC
+#define GL_TEXTURE_VIEW_NUM_LEVELS_OES                                             0x82DC
+#define GL_TEXTURE_VIEW_MIN_LAYER                                                  0x82DD
+#define GL_TEXTURE_VIEW_MIN_LAYER_EXT                                              0x82DD
+#define GL_TEXTURE_VIEW_MIN_LAYER_OES                                              0x82DD
+#define GL_TEXTURE_VIEW_NUM_LAYERS                                                 0x82DE
+#define GL_TEXTURE_VIEW_NUM_LAYERS_EXT                                             0x82DE
+#define GL_TEXTURE_VIEW_NUM_LAYERS_OES                                             0x82DE
+#define GL_TEXTURE_IMMUTABLE_LEVELS                                                0x82DF
+#define GL_BUFFER                                                                  0x82E0
+#define GL_BUFFER_KHR                                                              0x82E0
+#define GL_SHADER                                                                  0x82E1
+#define GL_SHADER_KHR                                                              0x82E1
+#define GL_PROGRAM                                                                 0x82E2
+#define GL_PROGRAM_KHR                                                             0x82E2
+#define GL_QUERY                                                                   0x82E3
+#define GL_QUERY_KHR                                                               0x82E3
+#define GL_PROGRAM_PIPELINE                                                        0x82E4
+#define GL_PROGRAM_PIPELINE_KHR                                                    0x82E4
+#define GL_MAX_VERTEX_ATTRIB_STRIDE                                                0x82E5
+#define GL_SAMPLER                                                                 0x82E6
+#define GL_SAMPLER_KHR                                                             0x82E6
+#define GL_DISPLAY_LIST                                                            0x82E7
+#define GL_MAX_LABEL_LENGTH                                                        0x82E8
+#define GL_MAX_LABEL_LENGTH_KHR                                                    0x82E8
+#define GL_NUM_SHADING_LANGUAGE_VERSIONS                                           0x82E9
+#define GL_QUERY_TARGET                                                            0x82EA
+#define GL_TRANSFORM_FEEDBACK_OVERFLOW                                             0x82EC
+#define GL_TRANSFORM_FEEDBACK_OVERFLOW_ARB                                         0x82EC
+#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW                                      0x82ED
+#define GL_TRANSFORM_FEEDBACK_STREAM_OVERFLOW_ARB                                  0x82ED
+#define GL_VERTICES_SUBMITTED                                                      0x82EE
+#define GL_VERTICES_SUBMITTED_ARB                                                  0x82EE
+#define GL_PRIMITIVES_SUBMITTED                                                    0x82EF
+#define GL_PRIMITIVES_SUBMITTED_ARB                                                0x82EF
+#define GL_VERTEX_SHADER_INVOCATIONS                                               0x82F0
+#define GL_VERTEX_SHADER_INVOCATIONS_ARB                                           0x82F0
+#define GL_TESS_CONTROL_SHADER_PATCHES                                             0x82F1
+#define GL_TESS_CONTROL_SHADER_PATCHES_ARB                                         0x82F1
+#define GL_TESS_EVALUATION_SHADER_INVOCATIONS                                      0x82F2
+#define GL_TESS_EVALUATION_SHADER_INVOCATIONS_ARB                                  0x82F2
+#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED                                      0x82F3
+#define GL_GEOMETRY_SHADER_PRIMITIVES_EMITTED_ARB                                  0x82F3
+#define GL_FRAGMENT_SHADER_INVOCATIONS                                             0x82F4
+#define GL_FRAGMENT_SHADER_INVOCATIONS_ARB                                         0x82F4
+#define GL_COMPUTE_SHADER_INVOCATIONS                                              0x82F5
+#define GL_COMPUTE_SHADER_INVOCATIONS_ARB                                          0x82F5
+#define GL_CLIPPING_INPUT_PRIMITIVES                                               0x82F6
+#define GL_CLIPPING_INPUT_PRIMITIVES_ARB                                           0x82F6
+#define GL_CLIPPING_OUTPUT_PRIMITIVES                                              0x82F7
+#define GL_CLIPPING_OUTPUT_PRIMITIVES_ARB                                          0x82F7
+#define GL_SPARSE_BUFFER_PAGE_SIZE_ARB                                             0x82F8
+#define GL_MAX_CULL_DISTANCES                                                      0x82F9
+#define GL_MAX_CULL_DISTANCES_EXT                                                  0x82F9
+#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES                                    0x82FA
+#define GL_MAX_COMBINED_CLIP_AND_CULL_DISTANCES_EXT                                0x82FA
+#define GL_CONTEXT_RELEASE_BEHAVIOR                                                0x82FB
+#define GL_CONTEXT_RELEASE_BEHAVIOR_KHR                                            0x82FB
+#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH                                          0x82FC
+#define GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH_KHR                                      0x82FC
+#define GL_ROBUST_GPU_TIMEOUT_MS_KHR                                               0x82FD
+#define GL_DEPTH_PASS_INSTRUMENT_SGIX                                              0x8310
+#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX                                     0x8311
+#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX                                          0x8312
+#define GL_FRAGMENTS_INSTRUMENT_SGIX                                               0x8313
+#define GL_FRAGMENTS_INSTRUMENT_COUNTERS_SGIX                                      0x8314
+#define GL_FRAGMENTS_INSTRUMENT_MAX_SGIX                                           0x8315
+#define GL_CONVOLUTION_HINT_SGIX                                                   0x8316
+#define GL_YCRCB_SGIX                                                              0x8318
+#define GL_YCRCBA_SGIX                                                             0x8319
+#define GL_UNPACK_COMPRESSED_SIZE_SGIX                                             0x831A
+#define GL_PACK_MAX_COMPRESSED_SIZE_SGIX                                           0x831B
+#define GL_PACK_COMPRESSED_SIZE_SGIX                                               0x831C
+#define GL_SLIM8U_SGIX                                                             0x831D
+#define GL_SLIM10U_SGIX                                                            0x831E
+#define GL_SLIM12S_SGIX                                                            0x831F
+#define GL_ALPHA_MIN_SGIX                                                          0x8320
+#define GL_ALPHA_MAX_SGIX                                                          0x8321
+#define GL_SCALEBIAS_HINT_SGIX                                                     0x8322
+#define GL_ASYNC_MARKER_SGIX                                                       0x8329
+#define GL_PIXEL_TEX_GEN_MODE_SGIX                                                 0x832B
+#define GL_ASYNC_HISTOGRAM_SGIX                                                    0x832C
+#define GL_MAX_ASYNC_HISTOGRAM_SGIX                                                0x832D
+#define GL_PIXEL_TRANSFORM_2D_EXT                                                  0x8330
+#define GL_PIXEL_MAG_FILTER_EXT                                                    0x8331
+#define GL_PIXEL_MIN_FILTER_EXT                                                    0x8332
+#define GL_PIXEL_CUBIC_WEIGHT_EXT                                                  0x8333
+#define GL_CUBIC_EXT                                                               0x8334
+#define GL_AVERAGE_EXT                                                             0x8335
+#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT                                      0x8336
+#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT                                  0x8337
+#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT                                           0x8338
+#define GL_FRAGMENT_MATERIAL_EXT                                                   0x8349
+#define GL_FRAGMENT_NORMAL_EXT                                                     0x834A
+#define GL_FRAGMENT_COLOR_EXT                                                      0x834C
+#define GL_ATTENUATION_EXT                                                         0x834D
+#define GL_SHADOW_ATTENUATION_EXT                                                  0x834E
+#define GL_TEXTURE_APPLICATION_MODE_EXT                                            0x834F
+#define GL_TEXTURE_LIGHT_EXT                                                       0x8350
+#define GL_TEXTURE_MATERIAL_FACE_EXT                                               0x8351
+#define GL_TEXTURE_MATERIAL_PARAMETER_EXT                                          0x8352
+#define GL_PIXEL_TEXTURE_SGIS                                                      0x8353
+#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS                                          0x8354
+#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS                                        0x8355
+#define GL_PIXEL_GROUP_COLOR_SGIS                                                  0x8356
+#define GL_LINE_QUALITY_HINT_SGIX                                                  0x835B
+#define GL_ASYNC_TEX_IMAGE_SGIX                                                    0x835C
+#define GL_ASYNC_DRAW_PIXELS_SGIX                                                  0x835D
+#define GL_ASYNC_READ_PIXELS_SGIX                                                  0x835E
+#define GL_MAX_ASYNC_TEX_IMAGE_SGIX                                                0x835F
+#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX                                              0x8360
+#define GL_MAX_ASYNC_READ_PIXELS_SGIX                                              0x8361
+#define GL_UNSIGNED_BYTE_2_3_3_REV                                                 0x8362
+#define GL_UNSIGNED_BYTE_2_3_3_REV_EXT                                             0x8362
+#define GL_UNSIGNED_SHORT_5_6_5                                                    0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_EXT                                                0x8363
+#define GL_UNSIGNED_SHORT_5_6_5_REV                                                0x8364
+#define GL_UNSIGNED_SHORT_5_6_5_REV_EXT                                            0x8364
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV                                              0x8365
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                                          0x8365
+#define GL_UNSIGNED_SHORT_4_4_4_4_REV_IMG                                          0x8365
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV                                              0x8366
+#define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                                          0x8366
+#define GL_UNSIGNED_INT_8_8_8_8_REV                                                0x8367
+#define GL_UNSIGNED_INT_8_8_8_8_REV_EXT                                            0x8367
+#define GL_UNSIGNED_INT_2_10_10_10_REV                                             0x8368
+#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT                                         0x8368
+#define GL_TEXTURE_MAX_CLAMP_S_SGIX                                                0x8369
+#define GL_TEXTURE_MAX_CLAMP_T_SGIX                                                0x836A
+#define GL_TEXTURE_MAX_CLAMP_R_SGIX                                                0x836B
+#define GL_MIRRORED_REPEAT                                                         0x8370
+#define GL_MIRRORED_REPEAT_ARB                                                     0x8370
+#define GL_MIRRORED_REPEAT_IBM                                                     0x8370
+#define GL_MIRRORED_REPEAT_OES                                                     0x8370
+#define GL_RGB_S3TC                                                                0x83A0
+#define GL_RGB4_S3TC                                                               0x83A1
+#define GL_RGBA_S3TC                                                               0x83A2
+#define GL_RGBA4_S3TC                                                              0x83A3
+#define GL_RGBA_DXT5_S3TC                                                          0x83A4
+#define GL_RGBA4_DXT5_S3TC                                                         0x83A5
+#define GL_VERTEX_PRECLIP_SGIX                                                     0x83EE
+#define GL_VERTEX_PRECLIP_HINT_SGIX                                                0x83EF
+#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT                                            0x83F0
+#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT                                           0x83F1
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE                                         0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT                                           0x83F2
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE                                         0x83F3
+#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT                                           0x83F3
+#define GL_PARALLEL_ARRAYS_INTEL                                                   0x83F4
+#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL                                    0x83F5
+#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL                                    0x83F6
+#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL                                     0x83F7
+#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL                             0x83F8
+#define GL_PERFQUERY_DONOT_FLUSH_INTEL                                             0x83F9
+#define GL_PERFQUERY_FLUSH_INTEL                                                   0x83FA
+#define GL_PERFQUERY_WAIT_INTEL                                                    0x83FB
+#define GL_BLACKHOLE_RENDER_INTEL                                                  0x83FC
+#define GL_CONSERVATIVE_RASTERIZATION_INTEL                                        0x83FE
+#define GL_TEXTURE_MEMORY_LAYOUT_INTEL                                             0x83FF
+#define GL_FRAGMENT_LIGHTING_SGIX                                                  0x8400
+#define GL_FRAGMENT_COLOR_MATERIAL_SGIX                                            0x8401
+#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX                                       0x8402
+#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX                                  0x8403
+#define GL_MAX_FRAGMENT_LIGHTS_SGIX                                                0x8404
+#define GL_MAX_ACTIVE_LIGHTS_SGIX                                                  0x8405
+#define GL_CURRENT_RASTER_NORMAL_SGIX                                              0x8406
+#define GL_LIGHT_ENV_MODE_SGIX                                                     0x8407
+#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX                                  0x8408
+#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX                                      0x8409
+#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX                                       0x840A
+#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX                          0x840B
+#define GL_FRAGMENT_LIGHT0_SGIX                                                    0x840C
+#define GL_FRAGMENT_LIGHT1_SGIX                                                    0x840D
+#define GL_FRAGMENT_LIGHT2_SGIX                                                    0x840E
+#define GL_FRAGMENT_LIGHT3_SGIX                                                    0x840F
+#define GL_FRAGMENT_LIGHT4_SGIX                                                    0x8410
+#define GL_FRAGMENT_LIGHT5_SGIX                                                    0x8411
+#define GL_FRAGMENT_LIGHT6_SGIX                                                    0x8412
+#define GL_FRAGMENT_LIGHT7_SGIX                                                    0x8413
+#define GL_PACK_RESAMPLE_SGIX                                                      0x842E
+#define GL_UNPACK_RESAMPLE_SGIX                                                    0x842F
+#define GL_RESAMPLE_DECIMATE_SGIX                                                  0x8430
+#define GL_RESAMPLE_REPLICATE_SGIX                                                 0x8433
+#define GL_RESAMPLE_ZERO_FILL_SGIX                                                 0x8434
+#define GL_TANGENT_ARRAY_EXT                                                       0x8439
+#define GL_BINORMAL_ARRAY_EXT                                                      0x843A
+#define GL_CURRENT_TANGENT_EXT                                                     0x843B
+#define GL_CURRENT_BINORMAL_EXT                                                    0x843C
+#define GL_TANGENT_ARRAY_TYPE_EXT                                                  0x843E
+#define GL_TANGENT_ARRAY_STRIDE_EXT                                                0x843F
+#define GL_BINORMAL_ARRAY_TYPE_EXT                                                 0x8440
+#define GL_BINORMAL_ARRAY_STRIDE_EXT                                               0x8441
+#define GL_TANGENT_ARRAY_POINTER_EXT                                               0x8442
+#define GL_BINORMAL_ARRAY_POINTER_EXT                                              0x8443
+#define GL_MAP1_TANGENT_EXT                                                        0x8444
+#define GL_MAP2_TANGENT_EXT                                                        0x8445
+#define GL_MAP1_BINORMAL_EXT                                                       0x8446
+#define GL_MAP2_BINORMAL_EXT                                                       0x8447
+#define GL_NEAREST_CLIPMAP_NEAREST_SGIX                                            0x844D
+#define GL_NEAREST_CLIPMAP_LINEAR_SGIX                                             0x844E
+#define GL_LINEAR_CLIPMAP_NEAREST_SGIX                                             0x844F
+#define GL_FOG_COORDINATE_SOURCE                                                   0x8450
+#define GL_FOG_COORDINATE_SOURCE_EXT                                               0x8450
+#define GL_FOG_COORD_SRC                                                           0x8450
+#define GL_FOG_COORD                                                               0x8451
+#define GL_FOG_COORDINATE                                                          0x8451
+#define GL_FOG_COORDINATE_EXT                                                      0x8451
+#define GL_FRAGMENT_DEPTH                                                          0x8452
+#define GL_FRAGMENT_DEPTH_EXT                                                      0x8452
+#define GL_CURRENT_FOG_COORD                                                       0x8453
+#define GL_CURRENT_FOG_COORDINATE                                                  0x8453
+#define GL_CURRENT_FOG_COORDINATE_EXT                                              0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE                                               0x8454
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT                                           0x8454
+#define GL_FOG_COORD_ARRAY_TYPE                                                    0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE                                             0x8455
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT                                         0x8455
+#define GL_FOG_COORD_ARRAY_STRIDE                                                  0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER                                            0x8456
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT                                        0x8456
+#define GL_FOG_COORD_ARRAY_POINTER                                                 0x8456
+#define GL_FOG_COORDINATE_ARRAY                                                    0x8457
+#define GL_FOG_COORDINATE_ARRAY_EXT                                                0x8457
+#define GL_FOG_COORD_ARRAY                                                         0x8457
+#define GL_COLOR_SUM                                                               0x8458
+#define GL_COLOR_SUM_ARB                                                           0x8458
+#define GL_COLOR_SUM_EXT                                                           0x8458
+#define GL_CURRENT_SECONDARY_COLOR                                                 0x8459
+#define GL_CURRENT_SECONDARY_COLOR_EXT                                             0x8459
+#define GL_SECONDARY_COLOR_ARRAY_SIZE                                              0x845A
+#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT                                          0x845A
+#define GL_SECONDARY_COLOR_ARRAY_TYPE                                              0x845B
+#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT                                          0x845B
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE                                            0x845C
+#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT                                        0x845C
+#define GL_SECONDARY_COLOR_ARRAY_POINTER                                           0x845D
+#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT                                       0x845D
+#define GL_SECONDARY_COLOR_ARRAY                                                   0x845E
+#define GL_SECONDARY_COLOR_ARRAY_EXT                                               0x845E
+#define GL_CURRENT_RASTER_SECONDARY_COLOR                                          0x845F
+#define GL_ALIASED_POINT_SIZE_RANGE                                                0x846D
+#define GL_ALIASED_LINE_WIDTH_RANGE                                                0x846E
+#define GL_SCREEN_COORDINATES_REND                                                 0x8490
+#define GL_INVERTED_SCREEN_W_REND                                                  0x8491
+#define GL_TEXTURE0                                                                0x84C0
+#define GL_TEXTURE0_ARB                                                            0x84C0
+#define GL_TEXTURE1                                                                0x84C1
+#define GL_TEXTURE1_ARB                                                            0x84C1
+#define GL_TEXTURE2                                                                0x84C2
+#define GL_TEXTURE2_ARB                                                            0x84C2
+#define GL_TEXTURE3                                                                0x84C3
+#define GL_TEXTURE3_ARB                                                            0x84C3
+#define GL_TEXTURE4                                                                0x84C4
+#define GL_TEXTURE4_ARB                                                            0x84C4
+#define GL_TEXTURE5                                                                0x84C5
+#define GL_TEXTURE5_ARB                                                            0x84C5
+#define GL_TEXTURE6                                                                0x84C6
+#define GL_TEXTURE6_ARB                                                            0x84C6
+#define GL_TEXTURE7                                                                0x84C7
+#define GL_TEXTURE7_ARB                                                            0x84C7
+#define GL_TEXTURE8                                                                0x84C8
+#define GL_TEXTURE8_ARB                                                            0x84C8
+#define GL_TEXTURE9                                                                0x84C9
+#define GL_TEXTURE9_ARB                                                            0x84C9
+#define GL_TEXTURE10                                                               0x84CA
+#define GL_TEXTURE10_ARB                                                           0x84CA
+#define GL_TEXTURE11                                                               0x84CB
+#define GL_TEXTURE11_ARB                                                           0x84CB
+#define GL_TEXTURE12                                                               0x84CC
+#define GL_TEXTURE12_ARB                                                           0x84CC
+#define GL_TEXTURE13                                                               0x84CD
+#define GL_TEXTURE13_ARB                                                           0x84CD
+#define GL_TEXTURE14                                                               0x84CE
+#define GL_TEXTURE14_ARB                                                           0x84CE
+#define GL_TEXTURE15                                                               0x84CF
+#define GL_TEXTURE15_ARB                                                           0x84CF
+#define GL_TEXTURE16                                                               0x84D0
+#define GL_TEXTURE16_ARB                                                           0x84D0
+#define GL_TEXTURE17                                                               0x84D1
+#define GL_TEXTURE17_ARB                                                           0x84D1
+#define GL_TEXTURE18                                                               0x84D2
+#define GL_TEXTURE18_ARB                                                           0x84D2
+#define GL_TEXTURE19                                                               0x84D3
+#define GL_TEXTURE19_ARB                                                           0x84D3
+#define GL_TEXTURE20                                                               0x84D4
+#define GL_TEXTURE20_ARB                                                           0x84D4
+#define GL_TEXTURE21                                                               0x84D5
+#define GL_TEXTURE21_ARB                                                           0x84D5
+#define GL_TEXTURE22                                                               0x84D6
+#define GL_TEXTURE22_ARB                                                           0x84D6
+#define GL_TEXTURE23                                                               0x84D7
+#define GL_TEXTURE23_ARB                                                           0x84D7
+#define GL_TEXTURE24                                                               0x84D8
+#define GL_TEXTURE24_ARB                                                           0x84D8
+#define GL_TEXTURE25                                                               0x84D9
+#define GL_TEXTURE25_ARB                                                           0x84D9
+#define GL_TEXTURE26                                                               0x84DA
+#define GL_TEXTURE26_ARB                                                           0x84DA
+#define GL_TEXTURE27                                                               0x84DB
+#define GL_TEXTURE27_ARB                                                           0x84DB
+#define GL_TEXTURE28                                                               0x84DC
+#define GL_TEXTURE28_ARB                                                           0x84DC
+#define GL_TEXTURE29                                                               0x84DD
+#define GL_TEXTURE29_ARB                                                           0x84DD
+#define GL_TEXTURE30                                                               0x84DE
+#define GL_TEXTURE30_ARB                                                           0x84DE
+#define GL_TEXTURE31                                                               0x84DF
+#define GL_TEXTURE31_ARB                                                           0x84DF
+#define GL_ACTIVE_TEXTURE                                                          0x84E0
+#define GL_ACTIVE_TEXTURE_ARB                                                      0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE                                                   0x84E1
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB                                               0x84E1
+#define GL_MAX_TEXTURE_UNITS                                                       0x84E2
+#define GL_MAX_TEXTURE_UNITS_ARB                                                   0x84E2
+#define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV                                      0x84E3
+#define GL_TRANSPOSE_MODELVIEW_MATRIX                                              0x84E3
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB                                          0x84E3
+#define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV                                     0x84E4
+#define GL_TRANSPOSE_PROJECTION_MATRIX                                             0x84E4
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB                                         0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX                                                0x84E5
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB                                            0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX                                                  0x84E6
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB                                              0x84E6
+#define GL_SUBTRACT                                                                0x84E7
+#define GL_SUBTRACT_ARB                                                            0x84E7
+#define GL_MAX_RENDERBUFFER_SIZE                                                   0x84E8
+#define GL_MAX_RENDERBUFFER_SIZE_EXT                                               0x84E8
+#define GL_MAX_RENDERBUFFER_SIZE_OES                                               0x84E8
+#define GL_COMPRESSED_ALPHA                                                        0x84E9
+#define GL_COMPRESSED_ALPHA_ARB                                                    0x84E9
+#define GL_COMPRESSED_LUMINANCE                                                    0x84EA
+#define GL_COMPRESSED_LUMINANCE_ARB                                                0x84EA
+#define GL_COMPRESSED_LUMINANCE_ALPHA                                              0x84EB
+#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB                                          0x84EB
+#define GL_COMPRESSED_INTENSITY                                                    0x84EC
+#define GL_COMPRESSED_INTENSITY_ARB                                                0x84EC
+#define GL_COMPRESSED_RGB                                                          0x84ED
+#define GL_COMPRESSED_RGB_ARB                                                      0x84ED
+#define GL_COMPRESSED_RGBA                                                         0x84EE
+#define GL_COMPRESSED_RGBA_ARB                                                     0x84EE
+#define GL_TEXTURE_COMPRESSION_HINT                                                0x84EF
+#define GL_TEXTURE_COMPRESSION_HINT_ARB                                            0x84EF
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER                         0x84F0
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER                      0x84F1
+#define GL_ALL_COMPLETED_NV                                                        0x84F2
+#define GL_FENCE_STATUS_NV                                                         0x84F3
+#define GL_FENCE_CONDITION_NV                                                      0x84F4
+#define GL_TEXTURE_RECTANGLE                                                       0x84F5
+#define GL_TEXTURE_RECTANGLE_ARB                                                   0x84F5
+#define GL_TEXTURE_RECTANGLE_NV                                                    0x84F5
+#define GL_TEXTURE_BINDING_RECTANGLE                                               0x84F6
+#define GL_TEXTURE_BINDING_RECTANGLE_ARB                                           0x84F6
+#define GL_TEXTURE_BINDING_RECTANGLE_NV                                            0x84F6
+#define GL_PROXY_TEXTURE_RECTANGLE                                                 0x84F7
+#define GL_PROXY_TEXTURE_RECTANGLE_ARB                                             0x84F7
+#define GL_PROXY_TEXTURE_RECTANGLE_NV                                              0x84F7
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE                                              0x84F8
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB                                          0x84F8
+#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV                                           0x84F8
+#define GL_DEPTH_STENCIL                                                           0x84F9
+#define GL_DEPTH_STENCIL_EXT                                                       0x84F9
+#define GL_DEPTH_STENCIL_NV                                                        0x84F9
+#define GL_DEPTH_STENCIL_OES                                                       0x84F9
+#define GL_UNSIGNED_INT_24_8                                                       0x84FA
+#define GL_UNSIGNED_INT_24_8_EXT                                                   0x84FA
+#define GL_UNSIGNED_INT_24_8_NV                                                    0x84FA
+#define GL_UNSIGNED_INT_24_8_OES                                                   0x84FA
+#define GL_MAX_TEXTURE_LOD_BIAS                                                    0x84FD
+#define GL_MAX_TEXTURE_LOD_BIAS_EXT                                                0x84FD
+#define GL_TEXTURE_MAX_ANISOTROPY                                                  0x84FE
+#define GL_TEXTURE_MAX_ANISOTROPY_EXT                                              0x84FE
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY                                              0x84FF
+#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                                          0x84FF
+#define GL_TEXTURE_FILTER_CONTROL                                                  0x8500
+#define GL_TEXTURE_FILTER_CONTROL_EXT                                              0x8500
+#define GL_TEXTURE_LOD_BIAS                                                        0x8501
+#define GL_TEXTURE_LOD_BIAS_EXT                                                    0x8501
+#define GL_MODELVIEW1_STACK_DEPTH_EXT                                              0x8502
+#define GL_COMBINE4_NV                                                             0x8503
+#define GL_MAX_SHININESS_NV                                                        0x8504
+#define GL_MAX_SPOT_EXPONENT_NV                                                    0x8505
+#define GL_MODELVIEW1_MATRIX_EXT                                                   0x8506
+#define GL_INCR_WRAP                                                               0x8507
+#define GL_INCR_WRAP_EXT                                                           0x8507
+#define GL_INCR_WRAP_OES                                                           0x8507
+#define GL_DECR_WRAP                                                               0x8508
+#define GL_DECR_WRAP_EXT                                                           0x8508
+#define GL_DECR_WRAP_OES                                                           0x8508
+#define GL_VERTEX_WEIGHTING_EXT                                                    0x8509
+#define GL_MODELVIEW1_ARB                                                          0x850A
+#define GL_MODELVIEW1_EXT                                                          0x850A
+#define GL_CURRENT_VERTEX_WEIGHT_EXT                                               0x850B
+#define GL_VERTEX_WEIGHT_ARRAY_EXT                                                 0x850C
+#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT                                            0x850D
+#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT                                            0x850E
+#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT                                          0x850F
+#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT                                         0x8510
+#define GL_NORMAL_MAP                                                              0x8511
+#define GL_NORMAL_MAP_ARB                                                          0x8511
+#define GL_NORMAL_MAP_EXT                                                          0x8511
+#define GL_NORMAL_MAP_NV                                                           0x8511
+#define GL_NORMAL_MAP_OES                                                          0x8511
+#define GL_REFLECTION_MAP                                                          0x8512
+#define GL_REFLECTION_MAP_ARB                                                      0x8512
+#define GL_REFLECTION_MAP_EXT                                                      0x8512
+#define GL_REFLECTION_MAP_NV                                                       0x8512
+#define GL_REFLECTION_MAP_OES                                                      0x8512
+#define GL_TEXTURE_CUBE_MAP                                                        0x8513
+#define GL_TEXTURE_CUBE_MAP_ARB                                                    0x8513
+#define GL_TEXTURE_CUBE_MAP_EXT                                                    0x8513
+#define GL_TEXTURE_CUBE_MAP_OES                                                    0x8513
+#define GL_TEXTURE_BINDING_CUBE_MAP                                                0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARB                                            0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_EXT                                            0x8514
+#define GL_TEXTURE_BINDING_CUBE_MAP_OES                                            0x8514
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X                                             0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB                                         0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT                                         0x8515
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_OES                                         0x8515
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X                                             0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB                                         0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT                                         0x8516
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_OES                                         0x8516
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y                                             0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB                                         0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT                                         0x8517
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_OES                                         0x8517
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y                                             0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB                                         0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT                                         0x8518
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_OES                                         0x8518
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z                                             0x8519
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB                                         0x8519
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT                                         0x8519
+#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_OES                                         0x8519
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z                                             0x851A
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB                                         0x851A
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT                                         0x851A
+#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_OES                                         0x851A
+#define GL_PROXY_TEXTURE_CUBE_MAP                                                  0x851B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARB                                              0x851B
+#define GL_PROXY_TEXTURE_CUBE_MAP_EXT                                              0x851B
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE                                               0x851C
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB                                           0x851C
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT                                           0x851C
+#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_OES                                           0x851C
+#define GL_VERTEX_ARRAY_RANGE_APPLE                                                0x851D
+#define GL_VERTEX_ARRAY_RANGE_NV                                                   0x851D
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE                                         0x851E
+#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV                                            0x851E
+#define GL_VERTEX_ARRAY_RANGE_VALID_NV                                             0x851F
+#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE                                         0x851F
+#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV                                       0x8520
+#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE                                        0x8521
+#define GL_VERTEX_ARRAY_RANGE_POINTER_NV                                           0x8521
+#define GL_REGISTER_COMBINERS_NV                                                   0x8522
+#define GL_VARIABLE_A_NV                                                           0x8523
+#define GL_VARIABLE_B_NV                                                           0x8524
+#define GL_VARIABLE_C_NV                                                           0x8525
+#define GL_VARIABLE_D_NV                                                           0x8526
+#define GL_VARIABLE_E_NV                                                           0x8527
+#define GL_VARIABLE_F_NV                                                           0x8528
+#define GL_VARIABLE_G_NV                                                           0x8529
+#define GL_CONSTANT_COLOR0_NV                                                      0x852A
+#define GL_CONSTANT_COLOR1_NV                                                      0x852B
+#define GL_PRIMARY_COLOR_NV                                                        0x852C
+#define GL_SECONDARY_COLOR_NV                                                      0x852D
+#define GL_SPARE0_NV                                                               0x852E
+#define GL_SPARE1_NV                                                               0x852F
+#define GL_DISCARD_NV                                                              0x8530
+#define GL_E_TIMES_F_NV                                                            0x8531
+#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV                                          0x8532
+#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV                                     0x8533
+#define GL_MULTISAMPLE_FILTER_HINT_NV                                              0x8534
+#define GL_PER_STAGE_CONSTANTS_NV                                                  0x8535
+#define GL_UNSIGNED_IDENTITY_NV                                                    0x8536
+#define GL_UNSIGNED_INVERT_NV                                                      0x8537
+#define GL_EXPAND_NORMAL_NV                                                        0x8538
+#define GL_EXPAND_NEGATE_NV                                                        0x8539
+#define GL_HALF_BIAS_NORMAL_NV                                                     0x853A
+#define GL_HALF_BIAS_NEGATE_NV                                                     0x853B
+#define GL_SIGNED_IDENTITY_NV                                                      0x853C
+#define GL_SIGNED_NEGATE_NV                                                        0x853D
+#define GL_SCALE_BY_TWO_NV                                                         0x853E
+#define GL_SCALE_BY_FOUR_NV                                                        0x853F
+#define GL_SCALE_BY_ONE_HALF_NV                                                    0x8540
+#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV                                            0x8541
+#define GL_COMBINER_INPUT_NV                                                       0x8542
+#define GL_COMBINER_MAPPING_NV                                                     0x8543
+#define GL_COMBINER_COMPONENT_USAGE_NV                                             0x8544
+#define GL_COMBINER_AB_DOT_PRODUCT_NV                                              0x8545
+#define GL_COMBINER_CD_DOT_PRODUCT_NV                                              0x8546
+#define GL_COMBINER_MUX_SUM_NV                                                     0x8547
+#define GL_COMBINER_SCALE_NV                                                       0x8548
+#define GL_COMBINER_BIAS_NV                                                        0x8549
+#define GL_COMBINER_AB_OUTPUT_NV                                                   0x854A
+#define GL_COMBINER_CD_OUTPUT_NV                                                   0x854B
+#define GL_COMBINER_SUM_OUTPUT_NV                                                  0x854C
+#define GL_MAX_GENERAL_COMBINERS_NV                                                0x854D
+#define GL_NUM_GENERAL_COMBINERS_NV                                                0x854E
+#define GL_COLOR_SUM_CLAMP_NV                                                      0x854F
+#define GL_COMBINER0_NV                                                            0x8550
+#define GL_COMBINER1_NV                                                            0x8551
+#define GL_COMBINER2_NV                                                            0x8552
+#define GL_COMBINER3_NV                                                            0x8553
+#define GL_COMBINER4_NV                                                            0x8554
+#define GL_COMBINER5_NV                                                            0x8555
+#define GL_COMBINER6_NV                                                            0x8556
+#define GL_COMBINER7_NV                                                            0x8557
+#define GL_PRIMITIVE_RESTART_NV                                                    0x8558
+#define GL_PRIMITIVE_RESTART_INDEX_NV                                              0x8559
+#define GL_FOG_DISTANCE_MODE_NV                                                    0x855A
+#define GL_EYE_RADIAL_NV                                                           0x855B
+#define GL_EYE_PLANE_ABSOLUTE_NV                                                   0x855C
+#define GL_EMBOSS_LIGHT_NV                                                         0x855D
+#define GL_EMBOSS_CONSTANT_NV                                                      0x855E
+#define GL_EMBOSS_MAP_NV                                                           0x855F
+#define GL_RED_MIN_CLAMP_INGR                                                      0x8560
+#define GL_GREEN_MIN_CLAMP_INGR                                                    0x8561
+#define GL_BLUE_MIN_CLAMP_INGR                                                     0x8562
+#define GL_ALPHA_MIN_CLAMP_INGR                                                    0x8563
+#define GL_RED_MAX_CLAMP_INGR                                                      0x8564
+#define GL_GREEN_MAX_CLAMP_INGR                                                    0x8565
+#define GL_BLUE_MAX_CLAMP_INGR                                                     0x8566
+#define GL_ALPHA_MAX_CLAMP_INGR                                                    0x8567
+#define GL_INTERLACE_READ_INGR                                                     0x8568
+#define GL_COMBINE                                                                 0x8570
+#define GL_COMBINE_ARB                                                             0x8570
+#define GL_COMBINE_EXT                                                             0x8570
+#define GL_COMBINE_RGB                                                             0x8571
+#define GL_COMBINE_RGB_ARB                                                         0x8571
+#define GL_COMBINE_RGB_EXT                                                         0x8571
+#define GL_COMBINE_ALPHA                                                           0x8572
+#define GL_COMBINE_ALPHA_ARB                                                       0x8572
+#define GL_COMBINE_ALPHA_EXT                                                       0x8572
+#define GL_RGB_SCALE                                                               0x8573
+#define GL_RGB_SCALE_ARB                                                           0x8573
+#define GL_RGB_SCALE_EXT                                                           0x8573
+#define GL_ADD_SIGNED                                                              0x8574
+#define GL_ADD_SIGNED_ARB                                                          0x8574
+#define GL_ADD_SIGNED_EXT                                                          0x8574
+#define GL_INTERPOLATE                                                             0x8575
+#define GL_INTERPOLATE_ARB                                                         0x8575
+#define GL_INTERPOLATE_EXT                                                         0x8575
+#define GL_CONSTANT                                                                0x8576
+#define GL_CONSTANT_ARB                                                            0x8576
+#define GL_CONSTANT_EXT                                                            0x8576
+#define GL_CONSTANT_NV                                                             0x8576
+#define GL_PRIMARY_COLOR                                                           0x8577
+#define GL_PRIMARY_COLOR_ARB                                                       0x8577
+#define GL_PRIMARY_COLOR_EXT                                                       0x8577
+#define GL_PREVIOUS                                                                0x8578
+#define GL_PREVIOUS_ARB                                                            0x8578
+#define GL_PREVIOUS_EXT                                                            0x8578
+#define GL_SOURCE0_RGB                                                             0x8580
+#define GL_SOURCE0_RGB_ARB                                                         0x8580
+#define GL_SOURCE0_RGB_EXT                                                         0x8580
+#define GL_SRC0_RGB                                                                0x8580
+#define GL_SOURCE1_RGB                                                             0x8581
+#define GL_SOURCE1_RGB_ARB                                                         0x8581
+#define GL_SOURCE1_RGB_EXT                                                         0x8581
+#define GL_SRC1_RGB                                                                0x8581
+#define GL_SOURCE2_RGB                                                             0x8582
+#define GL_SOURCE2_RGB_ARB                                                         0x8582
+#define GL_SOURCE2_RGB_EXT                                                         0x8582
+#define GL_SRC2_RGB                                                                0x8582
+#define GL_SOURCE3_RGB_NV                                                          0x8583
+#define GL_SOURCE0_ALPHA                                                           0x8588
+#define GL_SOURCE0_ALPHA_ARB                                                       0x8588
+#define GL_SOURCE0_ALPHA_EXT                                                       0x8588
+#define GL_SRC0_ALPHA                                                              0x8588
+#define GL_SOURCE1_ALPHA                                                           0x8589
+#define GL_SOURCE1_ALPHA_ARB                                                       0x8589
+#define GL_SOURCE1_ALPHA_EXT                                                       0x8589
+#define GL_SRC1_ALPHA                                                              0x8589
+#define GL_SRC1_ALPHA_EXT                                                          0x8589
+#define GL_SOURCE2_ALPHA                                                           0x858A
+#define GL_SOURCE2_ALPHA_ARB                                                       0x858A
+#define GL_SOURCE2_ALPHA_EXT                                                       0x858A
+#define GL_SRC2_ALPHA                                                              0x858A
+#define GL_SOURCE3_ALPHA_NV                                                        0x858B
+#define GL_OPERAND0_RGB                                                            0x8590
+#define GL_OPERAND0_RGB_ARB                                                        0x8590
+#define GL_OPERAND0_RGB_EXT                                                        0x8590
+#define GL_OPERAND1_RGB                                                            0x8591
+#define GL_OPERAND1_RGB_ARB                                                        0x8591
+#define GL_OPERAND1_RGB_EXT                                                        0x8591
+#define GL_OPERAND2_RGB                                                            0x8592
+#define GL_OPERAND2_RGB_ARB                                                        0x8592
+#define GL_OPERAND2_RGB_EXT                                                        0x8592
+#define GL_OPERAND3_RGB_NV                                                         0x8593
+#define GL_OPERAND0_ALPHA                                                          0x8598
+#define GL_OPERAND0_ALPHA_ARB                                                      0x8598
+#define GL_OPERAND0_ALPHA_EXT                                                      0x8598
+#define GL_OPERAND1_ALPHA                                                          0x8599
+#define GL_OPERAND1_ALPHA_ARB                                                      0x8599
+#define GL_OPERAND1_ALPHA_EXT                                                      0x8599
+#define GL_OPERAND2_ALPHA                                                          0x859A
+#define GL_OPERAND2_ALPHA_ARB                                                      0x859A
+#define GL_OPERAND2_ALPHA_EXT                                                      0x859A
+#define GL_OPERAND3_ALPHA_NV                                                       0x859B
+#define GL_PACK_SUBSAMPLE_RATE_SGIX                                                0x85A0
+#define GL_UNPACK_SUBSAMPLE_RATE_SGIX                                              0x85A1
+#define GL_PIXEL_SUBSAMPLE_4444_SGIX                                               0x85A2
+#define GL_PIXEL_SUBSAMPLE_2424_SGIX                                               0x85A3
+#define GL_PIXEL_SUBSAMPLE_4242_SGIX                                               0x85A4
+#define GL_PERTURB_EXT                                                             0x85AE
+#define GL_TEXTURE_NORMAL_EXT                                                      0x85AF
+#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE                                       0x85B0
+#define GL_TRANSFORM_HINT_APPLE                                                    0x85B1
+#define GL_UNPACK_CLIENT_STORAGE_APPLE                                             0x85B2
+#define GL_BUFFER_OBJECT_APPLE                                                     0x85B3
+#define GL_STORAGE_CLIENT_APPLE                                                    0x85B4
+#define GL_VERTEX_ARRAY_BINDING                                                    0x85B5
+#define GL_VERTEX_ARRAY_BINDING_APPLE                                              0x85B5
+#define GL_VERTEX_ARRAY_BINDING_OES                                                0x85B5
+#define GL_TEXTURE_RANGE_LENGTH_APPLE                                              0x85B7
+#define GL_TEXTURE_RANGE_POINTER_APPLE                                             0x85B8
+#define GL_YCBCR_422_APPLE                                                         0x85B9
+#define GL_UNSIGNED_SHORT_8_8_APPLE                                                0x85BA
+#define GL_UNSIGNED_SHORT_8_8_MESA                                                 0x85BA
+#define GL_UNSIGNED_SHORT_8_8_REV_APPLE                                            0x85BB
+#define GL_UNSIGNED_SHORT_8_8_REV_MESA                                             0x85BB
+#define GL_TEXTURE_STORAGE_HINT_APPLE                                              0x85BC
+#define GL_STORAGE_PRIVATE_APPLE                                                   0x85BD
+#define GL_STORAGE_CACHED_APPLE                                                    0x85BE
+#define GL_STORAGE_SHARED_APPLE                                                    0x85BF
+#define GL_REPLACEMENT_CODE_ARRAY_SUN                                              0x85C0
+#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN                                         0x85C1
+#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN                                       0x85C2
+#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN                                      0x85C3
+#define GL_R1UI_V3F_SUN                                                            0x85C4
+#define GL_R1UI_C4UB_V3F_SUN                                                       0x85C5
+#define GL_R1UI_C3F_V3F_SUN                                                        0x85C6
+#define GL_R1UI_N3F_V3F_SUN                                                        0x85C7
+#define GL_R1UI_C4F_N3F_V3F_SUN                                                    0x85C8
+#define GL_R1UI_T2F_V3F_SUN                                                        0x85C9
+#define GL_R1UI_T2F_N3F_V3F_SUN                                                    0x85CA
+#define GL_R1UI_T2F_C4F_N3F_V3F_SUN                                                0x85CB
+#define GL_SLICE_ACCUM_SUN                                                         0x85CC
+#define GL_QUAD_MESH_SUN                                                           0x8614
+#define GL_TRIANGLE_MESH_SUN                                                       0x8615
+#define GL_VERTEX_PROGRAM_ARB                                                      0x8620
+#define GL_VERTEX_PROGRAM_NV                                                       0x8620
+#define GL_VERTEX_STATE_PROGRAM_NV                                                 0x8621
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED                                             0x8622
+#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB                                         0x8622
+#define GL_ATTRIB_ARRAY_SIZE_NV                                                    0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE                                                0x8623
+#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB                                            0x8623
+#define GL_ATTRIB_ARRAY_STRIDE_NV                                                  0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE                                              0x8624
+#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB                                          0x8624
+#define GL_ATTRIB_ARRAY_TYPE_NV                                                    0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE                                                0x8625
+#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB                                            0x8625
+#define GL_CURRENT_ATTRIB_NV                                                       0x8626
+#define GL_CURRENT_VERTEX_ATTRIB                                                   0x8626
+#define GL_CURRENT_VERTEX_ATTRIB_ARB                                               0x8626
+#define GL_PROGRAM_LENGTH_ARB                                                      0x8627
+#define GL_PROGRAM_LENGTH_NV                                                       0x8627
+#define GL_PROGRAM_STRING_ARB                                                      0x8628
+#define GL_PROGRAM_STRING_NV                                                       0x8628
+#define GL_MODELVIEW_PROJECTION_NV                                                 0x8629
+#define GL_IDENTITY_NV                                                             0x862A
+#define GL_INVERSE_NV                                                              0x862B
+#define GL_TRANSPOSE_NV                                                            0x862C
+#define GL_INVERSE_TRANSPOSE_NV                                                    0x862D
+#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB                                      0x862E
+#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV                                         0x862E
+#define GL_MAX_PROGRAM_MATRICES_ARB                                                0x862F
+#define GL_MAX_TRACK_MATRICES_NV                                                   0x862F
+#define GL_MATRIX0_NV                                                              0x8630
+#define GL_MATRIX1_NV                                                              0x8631
+#define GL_MATRIX2_NV                                                              0x8632
+#define GL_MATRIX3_NV                                                              0x8633
+#define GL_MATRIX4_NV                                                              0x8634
+#define GL_MATRIX5_NV                                                              0x8635
+#define GL_MATRIX6_NV                                                              0x8636
+#define GL_MATRIX7_NV                                                              0x8637
+#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB                                          0x8640
+#define GL_CURRENT_MATRIX_STACK_DEPTH_NV                                           0x8640
+#define GL_CURRENT_MATRIX_ARB                                                      0x8641
+#define GL_CURRENT_MATRIX_NV                                                       0x8641
+#define GL_PROGRAM_POINT_SIZE                                                      0x8642
+#define GL_PROGRAM_POINT_SIZE_ARB                                                  0x8642
+#define GL_PROGRAM_POINT_SIZE_EXT                                                  0x8642
+#define GL_VERTEX_PROGRAM_POINT_SIZE                                               0x8642
+#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB                                           0x8642
+#define GL_VERTEX_PROGRAM_POINT_SIZE_NV                                            0x8642
+#define GL_VERTEX_PROGRAM_TWO_SIDE                                                 0x8643
+#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB                                             0x8643
+#define GL_VERTEX_PROGRAM_TWO_SIDE_NV                                              0x8643
+#define GL_PROGRAM_PARAMETER_NV                                                    0x8644
+#define GL_ATTRIB_ARRAY_POINTER_NV                                                 0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER                                             0x8645
+#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB                                         0x8645
+#define GL_PROGRAM_TARGET_NV                                                       0x8646
+#define GL_PROGRAM_RESIDENT_NV                                                     0x8647
+#define GL_TRACK_MATRIX_NV                                                         0x8648
+#define GL_TRACK_MATRIX_TRANSFORM_NV                                               0x8649
+#define GL_VERTEX_PROGRAM_BINDING_NV                                               0x864A
+#define GL_PROGRAM_ERROR_POSITION_ARB                                              0x864B
+#define GL_PROGRAM_ERROR_POSITION_NV                                               0x864B
+#define GL_OFFSET_TEXTURE_RECTANGLE_NV                                             0x864C
+#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV                                       0x864D
+#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV                                        0x864E
+#define GL_DEPTH_CLAMP                                                             0x864F
+#define GL_DEPTH_CLAMP_EXT                                                         0x864F
+#define GL_DEPTH_CLAMP_NV                                                          0x864F
+#define GL_VERTEX_ATTRIB_ARRAY0_NV                                                 0x8650
+#define GL_VERTEX_ATTRIB_ARRAY1_NV                                                 0x8651
+#define GL_VERTEX_ATTRIB_ARRAY2_NV                                                 0x8652
+#define GL_VERTEX_ATTRIB_ARRAY3_NV                                                 0x8653
+#define GL_VERTEX_ATTRIB_ARRAY4_NV                                                 0x8654
+#define GL_VERTEX_ATTRIB_ARRAY5_NV                                                 0x8655
+#define GL_VERTEX_ATTRIB_ARRAY6_NV                                                 0x8656
+#define GL_VERTEX_ATTRIB_ARRAY7_NV                                                 0x8657
+#define GL_VERTEX_ATTRIB_ARRAY8_NV                                                 0x8658
+#define GL_VERTEX_ATTRIB_ARRAY9_NV                                                 0x8659
+#define GL_VERTEX_ATTRIB_ARRAY10_NV                                                0x865A
+#define GL_VERTEX_ATTRIB_ARRAY11_NV                                                0x865B
+#define GL_VERTEX_ATTRIB_ARRAY12_NV                                                0x865C
+#define GL_VERTEX_ATTRIB_ARRAY13_NV                                                0x865D
+#define GL_VERTEX_ATTRIB_ARRAY14_NV                                                0x865E
+#define GL_VERTEX_ATTRIB_ARRAY15_NV                                                0x865F
+#define GL_MAP1_VERTEX_ATTRIB0_4_NV                                                0x8660
+#define GL_MAP1_VERTEX_ATTRIB1_4_NV                                                0x8661
+#define GL_MAP1_VERTEX_ATTRIB2_4_NV                                                0x8662
+#define GL_MAP1_VERTEX_ATTRIB3_4_NV                                                0x8663
+#define GL_MAP1_VERTEX_ATTRIB4_4_NV                                                0x8664
+#define GL_MAP1_VERTEX_ATTRIB5_4_NV                                                0x8665
+#define GL_MAP1_VERTEX_ATTRIB6_4_NV                                                0x8666
+#define GL_MAP1_VERTEX_ATTRIB7_4_NV                                                0x8667
+#define GL_MAP1_VERTEX_ATTRIB8_4_NV                                                0x8668
+#define GL_MAP1_VERTEX_ATTRIB9_4_NV                                                0x8669
+#define GL_MAP1_VERTEX_ATTRIB10_4_NV                                               0x866A
+#define GL_MAP1_VERTEX_ATTRIB11_4_NV                                               0x866B
+#define GL_MAP1_VERTEX_ATTRIB12_4_NV                                               0x866C
+#define GL_MAP1_VERTEX_ATTRIB13_4_NV                                               0x866D
+#define GL_MAP1_VERTEX_ATTRIB14_4_NV                                               0x866E
+#define GL_MAP1_VERTEX_ATTRIB15_4_NV                                               0x866F
+#define GL_MAP2_VERTEX_ATTRIB0_4_NV                                                0x8670
+#define GL_MAP2_VERTEX_ATTRIB1_4_NV                                                0x8671
+#define GL_MAP2_VERTEX_ATTRIB2_4_NV                                                0x8672
+#define GL_MAP2_VERTEX_ATTRIB3_4_NV                                                0x8673
+#define GL_MAP2_VERTEX_ATTRIB4_4_NV                                                0x8674
+#define GL_MAP2_VERTEX_ATTRIB5_4_NV                                                0x8675
+#define GL_MAP2_VERTEX_ATTRIB6_4_NV                                                0x8676
+#define GL_MAP2_VERTEX_ATTRIB7_4_NV                                                0x8677
+#define GL_PROGRAM_BINDING_ARB                                                     0x8677
+#define GL_MAP2_VERTEX_ATTRIB8_4_NV                                                0x8678
+#define GL_MAP2_VERTEX_ATTRIB9_4_NV                                                0x8679
+#define GL_MAP2_VERTEX_ATTRIB10_4_NV                                               0x867A
+#define GL_MAP2_VERTEX_ATTRIB11_4_NV                                               0x867B
+#define GL_MAP2_VERTEX_ATTRIB12_4_NV                                               0x867C
+#define GL_MAP2_VERTEX_ATTRIB13_4_NV                                               0x867D
+#define GL_MAP2_VERTEX_ATTRIB14_4_NV                                               0x867E
+#define GL_MAP2_VERTEX_ATTRIB15_4_NV                                               0x867F
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE                                           0x86A0
+#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB                                       0x86A0
+#define GL_TEXTURE_COMPRESSED                                                      0x86A1
+#define GL_TEXTURE_COMPRESSED_ARB                                                  0x86A1
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS                                          0x86A2
+#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB                                      0x86A2
+#define GL_COMPRESSED_TEXTURE_FORMATS                                              0x86A3
+#define GL_COMPRESSED_TEXTURE_FORMATS_ARB                                          0x86A3
+#define GL_MAX_VERTEX_UNITS_ARB                                                    0x86A4
+#define GL_MAX_VERTEX_UNITS_OES                                                    0x86A4
+#define GL_ACTIVE_VERTEX_UNITS_ARB                                                 0x86A5
+#define GL_WEIGHT_SUM_UNITY_ARB                                                    0x86A6
+#define GL_VERTEX_BLEND_ARB                                                        0x86A7
+#define GL_CURRENT_WEIGHT_ARB                                                      0x86A8
+#define GL_WEIGHT_ARRAY_TYPE_ARB                                                   0x86A9
+#define GL_WEIGHT_ARRAY_TYPE_OES                                                   0x86A9
+#define GL_WEIGHT_ARRAY_STRIDE_ARB                                                 0x86AA
+#define GL_WEIGHT_ARRAY_STRIDE_OES                                                 0x86AA
+#define GL_WEIGHT_ARRAY_SIZE_ARB                                                   0x86AB
+#define GL_WEIGHT_ARRAY_SIZE_OES                                                   0x86AB
+#define GL_WEIGHT_ARRAY_POINTER_ARB                                                0x86AC
+#define GL_WEIGHT_ARRAY_POINTER_OES                                                0x86AC
+#define GL_WEIGHT_ARRAY_ARB                                                        0x86AD
+#define GL_WEIGHT_ARRAY_OES                                                        0x86AD
+#define GL_DOT3_RGB                                                                0x86AE
+#define GL_DOT3_RGB_ARB                                                            0x86AE
+#define GL_DOT3_RGBA                                                               0x86AF
+#define GL_DOT3_RGBA_ARB                                                           0x86AF
+#define GL_DOT3_RGBA_IMG                                                           0x86AF
+#define GL_COMPRESSED_RGB_FXT1_3DFX                                                0x86B0
+#define GL_COMPRESSED_RGBA_FXT1_3DFX                                               0x86B1
+#define GL_MULTISAMPLE_3DFX                                                        0x86B2
+#define GL_SAMPLE_BUFFERS_3DFX                                                     0x86B3
+#define GL_SAMPLES_3DFX                                                            0x86B4
+#define GL_EVAL_2D_NV                                                              0x86C0
+#define GL_EVAL_TRIANGULAR_2D_NV                                                   0x86C1
+#define GL_MAP_TESSELLATION_NV                                                     0x86C2
+#define GL_MAP_ATTRIB_U_ORDER_NV                                                   0x86C3
+#define GL_MAP_ATTRIB_V_ORDER_NV                                                   0x86C4
+#define GL_EVAL_FRACTIONAL_TESSELLATION_NV                                         0x86C5
+#define GL_EVAL_VERTEX_ATTRIB0_NV                                                  0x86C6
+#define GL_EVAL_VERTEX_ATTRIB1_NV                                                  0x86C7
+#define GL_EVAL_VERTEX_ATTRIB2_NV                                                  0x86C8
+#define GL_EVAL_VERTEX_ATTRIB3_NV                                                  0x86C9
+#define GL_EVAL_VERTEX_ATTRIB4_NV                                                  0x86CA
+#define GL_EVAL_VERTEX_ATTRIB5_NV                                                  0x86CB
+#define GL_EVAL_VERTEX_ATTRIB6_NV                                                  0x86CC
+#define GL_EVAL_VERTEX_ATTRIB7_NV                                                  0x86CD
+#define GL_EVAL_VERTEX_ATTRIB8_NV                                                  0x86CE
+#define GL_EVAL_VERTEX_ATTRIB9_NV                                                  0x86CF
+#define GL_EVAL_VERTEX_ATTRIB10_NV                                                 0x86D0
+#define GL_EVAL_VERTEX_ATTRIB11_NV                                                 0x86D1
+#define GL_EVAL_VERTEX_ATTRIB12_NV                                                 0x86D2
+#define GL_EVAL_VERTEX_ATTRIB13_NV                                                 0x86D3
+#define GL_EVAL_VERTEX_ATTRIB14_NV                                                 0x86D4
+#define GL_EVAL_VERTEX_ATTRIB15_NV                                                 0x86D5
+#define GL_MAX_MAP_TESSELLATION_NV                                                 0x86D6
+#define GL_MAX_RATIONAL_EVAL_ORDER_NV                                              0x86D7
+#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV                                            0x86D8
+#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV                                    0x86D9
+#define GL_UNSIGNED_INT_S8_S8_8_8_NV                                               0x86DA
+#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV                                           0x86DB
+#define GL_DSDT_MAG_INTENSITY_NV                                                   0x86DC
+#define GL_SHADER_CONSISTENT_NV                                                    0x86DD
+#define GL_TEXTURE_SHADER_NV                                                       0x86DE
+#define GL_SHADER_OPERATION_NV                                                     0x86DF
+#define GL_CULL_MODES_NV                                                           0x86E0
+#define GL_OFFSET_TEXTURE_2D_MATRIX_NV                                             0x86E1
+#define GL_OFFSET_TEXTURE_MATRIX_NV                                                0x86E1
+#define GL_OFFSET_TEXTURE_2D_SCALE_NV                                              0x86E2
+#define GL_OFFSET_TEXTURE_SCALE_NV                                                 0x86E2
+#define GL_OFFSET_TEXTURE_2D_BIAS_NV                                               0x86E3
+#define GL_OFFSET_TEXTURE_BIAS_NV                                                  0x86E3
+#define GL_PREVIOUS_TEXTURE_INPUT_NV                                               0x86E4
+#define GL_CONST_EYE_NV                                                            0x86E5
+#define GL_PASS_THROUGH_NV                                                         0x86E6
+#define GL_CULL_FRAGMENT_NV                                                        0x86E7
+#define GL_OFFSET_TEXTURE_2D_NV                                                    0x86E8
+#define GL_DEPENDENT_AR_TEXTURE_2D_NV                                              0x86E9
+#define GL_DEPENDENT_GB_TEXTURE_2D_NV                                              0x86EA
+#define GL_SURFACE_STATE_NV                                                        0x86EB
+#define GL_DOT_PRODUCT_NV                                                          0x86EC
+#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV                                            0x86ED
+#define GL_DOT_PRODUCT_TEXTURE_2D_NV                                               0x86EE
+#define GL_DOT_PRODUCT_TEXTURE_3D_NV                                               0x86EF
+#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV                                         0x86F0
+#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV                                         0x86F1
+#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV                                         0x86F2
+#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV                               0x86F3
+#define GL_HILO_NV                                                                 0x86F4
+#define GL_DSDT_NV                                                                 0x86F5
+#define GL_DSDT_MAG_NV                                                             0x86F6
+#define GL_DSDT_MAG_VIB_NV                                                         0x86F7
+#define GL_HILO16_NV                                                               0x86F8
+#define GL_SIGNED_HILO_NV                                                          0x86F9
+#define GL_SIGNED_HILO16_NV                                                        0x86FA
+#define GL_SIGNED_RGBA_NV                                                          0x86FB
+#define GL_SIGNED_RGBA8_NV                                                         0x86FC
+#define GL_SURFACE_REGISTERED_NV                                                   0x86FD
+#define GL_SIGNED_RGB_NV                                                           0x86FE
+#define GL_SIGNED_RGB8_NV                                                          0x86FF
+#define GL_SURFACE_MAPPED_NV                                                       0x8700
+#define GL_SIGNED_LUMINANCE_NV                                                     0x8701
+#define GL_SIGNED_LUMINANCE8_NV                                                    0x8702
+#define GL_SIGNED_LUMINANCE_ALPHA_NV                                               0x8703
+#define GL_SIGNED_LUMINANCE8_ALPHA8_NV                                             0x8704
+#define GL_SIGNED_ALPHA_NV                                                         0x8705
+#define GL_SIGNED_ALPHA8_NV                                                        0x8706
+#define GL_SIGNED_INTENSITY_NV                                                     0x8707
+#define GL_SIGNED_INTENSITY8_NV                                                    0x8708
+#define GL_DSDT8_NV                                                                0x8709
+#define GL_DSDT8_MAG8_NV                                                           0x870A
+#define GL_DSDT8_MAG8_INTENSITY8_NV                                                0x870B
+#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV                                            0x870C
+#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV                                          0x870D
+#define GL_HI_SCALE_NV                                                             0x870E
+#define GL_LO_SCALE_NV                                                             0x870F
+#define GL_DS_SCALE_NV                                                             0x8710
+#define GL_DT_SCALE_NV                                                             0x8711
+#define GL_MAGNITUDE_SCALE_NV                                                      0x8712
+#define GL_VIBRANCE_SCALE_NV                                                       0x8713
+#define GL_HI_BIAS_NV                                                              0x8714
+#define GL_LO_BIAS_NV                                                              0x8715
+#define GL_DS_BIAS_NV                                                              0x8716
+#define GL_DT_BIAS_NV                                                              0x8717
+#define GL_MAGNITUDE_BIAS_NV                                                       0x8718
+#define GL_VIBRANCE_BIAS_NV                                                        0x8719
+#define GL_TEXTURE_BORDER_VALUES_NV                                                0x871A
+#define GL_TEXTURE_HI_SIZE_NV                                                      0x871B
+#define GL_TEXTURE_LO_SIZE_NV                                                      0x871C
+#define GL_TEXTURE_DS_SIZE_NV                                                      0x871D
+#define GL_TEXTURE_DT_SIZE_NV                                                      0x871E
+#define GL_TEXTURE_MAG_SIZE_NV                                                     0x871F
+#define GL_MODELVIEW2_ARB                                                          0x8722
+#define GL_MODELVIEW3_ARB                                                          0x8723
+#define GL_MODELVIEW4_ARB                                                          0x8724
+#define GL_MODELVIEW5_ARB                                                          0x8725
+#define GL_MODELVIEW6_ARB                                                          0x8726
+#define GL_MODELVIEW7_ARB                                                          0x8727
+#define GL_MODELVIEW8_ARB                                                          0x8728
+#define GL_MODELVIEW9_ARB                                                          0x8729
+#define GL_MODELVIEW10_ARB                                                         0x872A
+#define GL_MODELVIEW11_ARB                                                         0x872B
+#define GL_MODELVIEW12_ARB                                                         0x872C
+#define GL_MODELVIEW13_ARB                                                         0x872D
+#define GL_MODELVIEW14_ARB                                                         0x872E
+#define GL_MODELVIEW15_ARB                                                         0x872F
+#define GL_MODELVIEW16_ARB                                                         0x8730
+#define GL_MODELVIEW17_ARB                                                         0x8731
+#define GL_MODELVIEW18_ARB                                                         0x8732
+#define GL_MODELVIEW19_ARB                                                         0x8733
+#define GL_MODELVIEW20_ARB                                                         0x8734
+#define GL_MODELVIEW21_ARB                                                         0x8735
+#define GL_MODELVIEW22_ARB                                                         0x8736
+#define GL_MODELVIEW23_ARB                                                         0x8737
+#define GL_MODELVIEW24_ARB                                                         0x8738
+#define GL_MODELVIEW25_ARB                                                         0x8739
+#define GL_MODELVIEW26_ARB                                                         0x873A
+#define GL_MODELVIEW27_ARB                                                         0x873B
+#define GL_MODELVIEW28_ARB                                                         0x873C
+#define GL_MODELVIEW29_ARB                                                         0x873D
+#define GL_MODELVIEW30_ARB                                                         0x873E
+#define GL_MODELVIEW31_ARB                                                         0x873F
+#define GL_DOT3_RGB_EXT                                                            0x8740
+#define GL_Z400_BINARY_AMD                                                         0x8740
+#define GL_DOT3_RGBA_EXT                                                           0x8741
+#define GL_PROGRAM_BINARY_LENGTH                                                   0x8741
+#define GL_PROGRAM_BINARY_LENGTH_OES                                               0x8741
+#define GL_MIRROR_CLAMP_ATI                                                        0x8742
+#define GL_MIRROR_CLAMP_EXT                                                        0x8742
+#define GL_MIRROR_CLAMP_TO_EDGE                                                    0x8743
+#define GL_MIRROR_CLAMP_TO_EDGE_ATI                                                0x8743
+#define GL_MIRROR_CLAMP_TO_EDGE_EXT                                                0x8743
+#define GL_MODULATE_ADD_ATI                                                        0x8744
+#define GL_MODULATE_SIGNED_ADD_ATI                                                 0x8745
+#define GL_MODULATE_SUBTRACT_ATI                                                   0x8746
+#define GL_SET_AMD                                                                 0x874A
+#define GL_REPLACE_VALUE_AMD                                                       0x874B
+#define GL_STENCIL_OP_VALUE_AMD                                                    0x874C
+#define GL_STENCIL_BACK_OP_VALUE_AMD                                               0x874D
+#define GL_VERTEX_ATTRIB_ARRAY_LONG                                                0x874E
+#define GL_OCCLUSION_QUERY_EVENT_MASK_AMD                                          0x874F
+#define GL_DEPTH_STENCIL_MESA                                                      0x8750
+#define GL_UNSIGNED_INT_24_8_MESA                                                  0x8751
+#define GL_UNSIGNED_INT_8_24_REV_MESA                                              0x8752
+#define GL_UNSIGNED_SHORT_15_1_MESA                                                0x8753
+#define GL_UNSIGNED_SHORT_1_15_REV_MESA                                            0x8754
+#define GL_TRACE_MASK_MESA                                                         0x8755
+#define GL_TRACE_NAME_MESA                                                         0x8756
+#define GL_YCBCR_MESA                                                              0x8757
+#define GL_PACK_INVERT_MESA                                                        0x8758
+#define GL_DEBUG_OBJECT_MESA                                                       0x8759
+#define GL_TEXTURE_1D_STACK_MESAX                                                  0x8759
+#define GL_DEBUG_PRINT_MESA                                                        0x875A
+#define GL_TEXTURE_2D_STACK_MESAX                                                  0x875A
+#define GL_DEBUG_ASSERT_MESA                                                       0x875B
+#define GL_PROXY_TEXTURE_1D_STACK_MESAX                                            0x875B
+#define GL_PROXY_TEXTURE_2D_STACK_MESAX                                            0x875C
+#define GL_TEXTURE_1D_STACK_BINDING_MESAX                                          0x875D
+#define GL_TEXTURE_2D_STACK_BINDING_MESAX                                          0x875E
+#define GL_PROGRAM_BINARY_FORMAT_MESA                                              0x875F
+#define GL_STATIC_ATI                                                              0x8760
+#define GL_DYNAMIC_ATI                                                             0x8761
+#define GL_PRESERVE_ATI                                                            0x8762
+#define GL_DISCARD_ATI                                                             0x8763
+#define GL_BUFFER_SIZE                                                             0x8764
+#define GL_BUFFER_SIZE_ARB                                                         0x8764
+#define GL_OBJECT_BUFFER_SIZE_ATI                                                  0x8764
+#define GL_BUFFER_USAGE                                                            0x8765
+#define GL_BUFFER_USAGE_ARB                                                        0x8765
+#define GL_OBJECT_BUFFER_USAGE_ATI                                                 0x8765
+#define GL_ARRAY_OBJECT_BUFFER_ATI                                                 0x8766
+#define GL_ARRAY_OBJECT_OFFSET_ATI                                                 0x8767
+#define GL_ELEMENT_ARRAY_ATI                                                       0x8768
+#define GL_ELEMENT_ARRAY_TYPE_ATI                                                  0x8769
+#define GL_ELEMENT_ARRAY_POINTER_ATI                                               0x876A
+#define GL_MAX_VERTEX_STREAMS_ATI                                                  0x876B
+#define GL_VERTEX_STREAM0_ATI                                                      0x876C
+#define GL_VERTEX_STREAM1_ATI                                                      0x876D
+#define GL_VERTEX_STREAM2_ATI                                                      0x876E
+#define GL_VERTEX_STREAM3_ATI                                                      0x876F
+#define GL_VERTEX_STREAM4_ATI                                                      0x8770
+#define GL_VERTEX_STREAM5_ATI                                                      0x8771
+#define GL_VERTEX_STREAM6_ATI                                                      0x8772
+#define GL_VERTEX_STREAM7_ATI                                                      0x8773
+#define GL_VERTEX_SOURCE_ATI                                                       0x8774
+#define GL_BUMP_ROT_MATRIX_ATI                                                     0x8775
+#define GL_BUMP_ROT_MATRIX_SIZE_ATI                                                0x8776
+#define GL_BUMP_NUM_TEX_UNITS_ATI                                                  0x8777
+#define GL_BUMP_TEX_UNITS_ATI                                                      0x8778
+#define GL_DUDV_ATI                                                                0x8779
+#define GL_DU8DV8_ATI                                                              0x877A
+#define GL_BUMP_ENVMAP_ATI                                                         0x877B
+#define GL_BUMP_TARGET_ATI                                                         0x877C
+#define GL_VERTEX_SHADER_EXT                                                       0x8780
+#define GL_VERTEX_SHADER_BINDING_EXT                                               0x8781
+#define GL_OP_INDEX_EXT                                                            0x8782
+#define GL_OP_NEGATE_EXT                                                           0x8783
+#define GL_OP_DOT3_EXT                                                             0x8784
+#define GL_OP_DOT4_EXT                                                             0x8785
+#define GL_OP_MUL_EXT                                                              0x8786
+#define GL_OP_ADD_EXT                                                              0x8787
+#define GL_OP_MADD_EXT                                                             0x8788
+#define GL_OP_FRAC_EXT                                                             0x8789
+#define GL_OP_MAX_EXT                                                              0x878A
+#define GL_OP_MIN_EXT                                                              0x878B
+#define GL_OP_SET_GE_EXT                                                           0x878C
+#define GL_OP_SET_LT_EXT                                                           0x878D
+#define GL_OP_CLAMP_EXT                                                            0x878E
+#define GL_OP_FLOOR_EXT                                                            0x878F
+#define GL_OP_ROUND_EXT                                                            0x8790
+#define GL_OP_EXP_BASE_2_EXT                                                       0x8791
+#define GL_OP_LOG_BASE_2_EXT                                                       0x8792
+#define GL_OP_POWER_EXT                                                            0x8793
+#define GL_OP_RECIP_EXT                                                            0x8794
+#define GL_OP_RECIP_SQRT_EXT                                                       0x8795
+#define GL_OP_SUB_EXT                                                              0x8796
+#define GL_OP_CROSS_PRODUCT_EXT                                                    0x8797
+#define GL_OP_MULTIPLY_MATRIX_EXT                                                  0x8798
+#define GL_OP_MOV_EXT                                                              0x8799
+#define GL_OUTPUT_VERTEX_EXT                                                       0x879A
+#define GL_OUTPUT_COLOR0_EXT                                                       0x879B
+#define GL_OUTPUT_COLOR1_EXT                                                       0x879C
+#define GL_OUTPUT_TEXTURE_COORD0_EXT                                               0x879D
+#define GL_OUTPUT_TEXTURE_COORD1_EXT                                               0x879E
+#define GL_OUTPUT_TEXTURE_COORD2_EXT                                               0x879F
+#define GL_OUTPUT_TEXTURE_COORD3_EXT                                               0x87A0
+#define GL_OUTPUT_TEXTURE_COORD4_EXT                                               0x87A1
+#define GL_OUTPUT_TEXTURE_COORD5_EXT                                               0x87A2
+#define GL_OUTPUT_TEXTURE_COORD6_EXT                                               0x87A3
+#define GL_OUTPUT_TEXTURE_COORD7_EXT                                               0x87A4
+#define GL_OUTPUT_TEXTURE_COORD8_EXT                                               0x87A5
+#define GL_OUTPUT_TEXTURE_COORD9_EXT                                               0x87A6
+#define GL_OUTPUT_TEXTURE_COORD10_EXT                                              0x87A7
+#define GL_OUTPUT_TEXTURE_COORD11_EXT                                              0x87A8
+#define GL_OUTPUT_TEXTURE_COORD12_EXT                                              0x87A9
+#define GL_OUTPUT_TEXTURE_COORD13_EXT                                              0x87AA
+#define GL_OUTPUT_TEXTURE_COORD14_EXT                                              0x87AB
+#define GL_OUTPUT_TEXTURE_COORD15_EXT                                              0x87AC
+#define GL_OUTPUT_TEXTURE_COORD16_EXT                                              0x87AD
+#define GL_OUTPUT_TEXTURE_COORD17_EXT                                              0x87AE
+#define GL_OUTPUT_TEXTURE_COORD18_EXT                                              0x87AF
+#define GL_OUTPUT_TEXTURE_COORD19_EXT                                              0x87B0
+#define GL_OUTPUT_TEXTURE_COORD20_EXT                                              0x87B1
+#define GL_OUTPUT_TEXTURE_COORD21_EXT                                              0x87B2
+#define GL_OUTPUT_TEXTURE_COORD22_EXT                                              0x87B3
+#define GL_OUTPUT_TEXTURE_COORD23_EXT                                              0x87B4
+#define GL_OUTPUT_TEXTURE_COORD24_EXT                                              0x87B5
+#define GL_OUTPUT_TEXTURE_COORD25_EXT                                              0x87B6
+#define GL_OUTPUT_TEXTURE_COORD26_EXT                                              0x87B7
+#define GL_OUTPUT_TEXTURE_COORD27_EXT                                              0x87B8
+#define GL_OUTPUT_TEXTURE_COORD28_EXT                                              0x87B9
+#define GL_OUTPUT_TEXTURE_COORD29_EXT                                              0x87BA
+#define GL_OUTPUT_TEXTURE_COORD30_EXT                                              0x87BB
+#define GL_OUTPUT_TEXTURE_COORD31_EXT                                              0x87BC
+#define GL_OUTPUT_FOG_EXT                                                          0x87BD
+#define GL_SCALAR_EXT                                                              0x87BE
+#define GL_VECTOR_EXT                                                              0x87BF
+#define GL_MATRIX_EXT                                                              0x87C0
+#define GL_VARIANT_EXT                                                             0x87C1
+#define GL_INVARIANT_EXT                                                           0x87C2
+#define GL_LOCAL_CONSTANT_EXT                                                      0x87C3
+#define GL_LOCAL_EXT                                                               0x87C4
+#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT                                      0x87C5
+#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT                                          0x87C6
+#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT                                        0x87C7
+#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                                   0x87C8
+#define GL_MAX_VERTEX_SHADER_LOCALS_EXT                                            0x87C9
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT                            0x87CA
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT                                0x87CB
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                         0x87CC
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT                              0x87CD
+#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT                                  0x87CE
+#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT                                          0x87CF
+#define GL_VERTEX_SHADER_VARIANTS_EXT                                              0x87D0
+#define GL_VERTEX_SHADER_INVARIANTS_EXT                                            0x87D1
+#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT                                       0x87D2
+#define GL_VERTEX_SHADER_LOCALS_EXT                                                0x87D3
+#define GL_VERTEX_SHADER_OPTIMIZED_EXT                                             0x87D4
+#define GL_X_EXT                                                                   0x87D5
+#define GL_Y_EXT                                                                   0x87D6
+#define GL_Z_EXT                                                                   0x87D7
+#define GL_W_EXT                                                                   0x87D8
+#define GL_NEGATIVE_X_EXT                                                          0x87D9
+#define GL_NEGATIVE_Y_EXT                                                          0x87DA
+#define GL_NEGATIVE_Z_EXT                                                          0x87DB
+#define GL_NEGATIVE_W_EXT                                                          0x87DC
+#define GL_ZERO_EXT                                                                0x87DD
+#define GL_ONE_EXT                                                                 0x87DE
+#define GL_NEGATIVE_ONE_EXT                                                        0x87DF
+#define GL_NORMALIZED_RANGE_EXT                                                    0x87E0
+#define GL_FULL_RANGE_EXT                                                          0x87E1
+#define GL_CURRENT_VERTEX_EXT                                                      0x87E2
+#define GL_MVP_MATRIX_EXT                                                          0x87E3
+#define GL_VARIANT_VALUE_EXT                                                       0x87E4
+#define GL_VARIANT_DATATYPE_EXT                                                    0x87E5
+#define GL_VARIANT_ARRAY_STRIDE_EXT                                                0x87E6
+#define GL_VARIANT_ARRAY_TYPE_EXT                                                  0x87E7
+#define GL_VARIANT_ARRAY_EXT                                                       0x87E8
+#define GL_VARIANT_ARRAY_POINTER_EXT                                               0x87E9
+#define GL_INVARIANT_VALUE_EXT                                                     0x87EA
+#define GL_INVARIANT_DATATYPE_EXT                                                  0x87EB
+#define GL_LOCAL_CONSTANT_VALUE_EXT                                                0x87EC
+#define GL_LOCAL_CONSTANT_DATATYPE_EXT                                             0x87ED
+#define GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD                                         0x87EE
+#define GL_PN_TRIANGLES_ATI                                                        0x87F0
+#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI                                  0x87F1
+#define GL_PN_TRIANGLES_POINT_MODE_ATI                                             0x87F2
+#define GL_PN_TRIANGLES_NORMAL_MODE_ATI                                            0x87F3
+#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI                                      0x87F4
+#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI                                      0x87F5
+#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI                                       0x87F6
+#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI                                     0x87F7
+#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI                                  0x87F8
+#define GL_3DC_X_AMD                                                               0x87F9
+#define GL_3DC_XY_AMD                                                              0x87FA
+#define GL_VBO_FREE_MEMORY_ATI                                                     0x87FB
+#define GL_TEXTURE_FREE_MEMORY_ATI                                                 0x87FC
+#define GL_RENDERBUFFER_FREE_MEMORY_ATI                                            0x87FD
+#define GL_NUM_PROGRAM_BINARY_FORMATS                                              0x87FE
+#define GL_NUM_PROGRAM_BINARY_FORMATS_OES                                          0x87FE
+#define GL_PROGRAM_BINARY_FORMATS                                                  0x87FF
+#define GL_PROGRAM_BINARY_FORMATS_OES                                              0x87FF
+#define GL_STENCIL_BACK_FUNC                                                       0x8800
+#define GL_STENCIL_BACK_FUNC_ATI                                                   0x8800
+#define GL_STENCIL_BACK_FAIL                                                       0x8801
+#define GL_STENCIL_BACK_FAIL_ATI                                                   0x8801
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL                                            0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI                                        0x8802
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS                                            0x8803
+#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI                                        0x8803
+#define GL_FRAGMENT_PROGRAM_ARB                                                    0x8804
+#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB                                            0x8805
+#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB                                            0x8806
+#define GL_PROGRAM_TEX_INDIRECTIONS_ARB                                            0x8807
+#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB                                     0x8808
+#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB                                     0x8809
+#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB                                     0x880A
+#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB                                        0x880B
+#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB                                        0x880C
+#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB                                        0x880D
+#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB                                 0x880E
+#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB                                 0x880F
+#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB                                 0x8810
+#define GL_RGBA32F                                                                 0x8814
+#define GL_RGBA32F_ARB                                                             0x8814
+#define GL_RGBA32F_EXT                                                             0x8814
+#define GL_RGBA_FLOAT32_APPLE                                                      0x8814
+#define GL_RGBA_FLOAT32_ATI                                                        0x8814
+#define GL_RGB32F                                                                  0x8815
+#define GL_RGB32F_ARB                                                              0x8815
+#define GL_RGB32F_EXT                                                              0x8815
+#define GL_RGB_FLOAT32_APPLE                                                       0x8815
+#define GL_RGB_FLOAT32_ATI                                                         0x8815
+#define GL_ALPHA32F_ARB                                                            0x8816
+#define GL_ALPHA32F_EXT                                                            0x8816
+#define GL_ALPHA_FLOAT32_APPLE                                                     0x8816
+#define GL_ALPHA_FLOAT32_ATI                                                       0x8816
+#define GL_INTENSITY32F_ARB                                                        0x8817
+#define GL_INTENSITY_FLOAT32_APPLE                                                 0x8817
+#define GL_INTENSITY_FLOAT32_ATI                                                   0x8817
+#define GL_LUMINANCE32F_ARB                                                        0x8818
+#define GL_LUMINANCE32F_EXT                                                        0x8818
+#define GL_LUMINANCE_FLOAT32_APPLE                                                 0x8818
+#define GL_LUMINANCE_FLOAT32_ATI                                                   0x8818
+#define GL_LUMINANCE_ALPHA32F_ARB                                                  0x8819
+#define GL_LUMINANCE_ALPHA32F_EXT                                                  0x8819
+#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE                                           0x8819
+#define GL_LUMINANCE_ALPHA_FLOAT32_ATI                                             0x8819
+#define GL_RGBA16F                                                                 0x881A
+#define GL_RGBA16F_ARB                                                             0x881A
+#define GL_RGBA16F_EXT                                                             0x881A
+#define GL_RGBA_FLOAT16_APPLE                                                      0x881A
+#define GL_RGBA_FLOAT16_ATI                                                        0x881A
+#define GL_RGB16F                                                                  0x881B
+#define GL_RGB16F_ARB                                                              0x881B
+#define GL_RGB16F_EXT                                                              0x881B
+#define GL_RGB_FLOAT16_APPLE                                                       0x881B
+#define GL_RGB_FLOAT16_ATI                                                         0x881B
+#define GL_ALPHA16F_ARB                                                            0x881C
+#define GL_ALPHA16F_EXT                                                            0x881C
+#define GL_ALPHA_FLOAT16_APPLE                                                     0x881C
+#define GL_ALPHA_FLOAT16_ATI                                                       0x881C
+#define GL_INTENSITY16F_ARB                                                        0x881D
+#define GL_INTENSITY_FLOAT16_APPLE                                                 0x881D
+#define GL_INTENSITY_FLOAT16_ATI                                                   0x881D
+#define GL_LUMINANCE16F_ARB                                                        0x881E
+#define GL_LUMINANCE16F_EXT                                                        0x881E
+#define GL_LUMINANCE_FLOAT16_APPLE                                                 0x881E
+#define GL_LUMINANCE_FLOAT16_ATI                                                   0x881E
+#define GL_LUMINANCE_ALPHA16F_ARB                                                  0x881F
+#define GL_LUMINANCE_ALPHA16F_EXT                                                  0x881F
+#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE                                           0x881F
+#define GL_LUMINANCE_ALPHA_FLOAT16_ATI                                             0x881F
+#define GL_RGBA_FLOAT_MODE_ARB                                                     0x8820
+#define GL_RGBA_FLOAT_MODE_ATI                                                     0x8820
+#define GL_WRITEONLY_RENDERING_QCOM                                                0x8823
+#define GL_MAX_DRAW_BUFFERS                                                        0x8824
+#define GL_MAX_DRAW_BUFFERS_ARB                                                    0x8824
+#define GL_MAX_DRAW_BUFFERS_ATI                                                    0x8824
+#define GL_MAX_DRAW_BUFFERS_EXT                                                    0x8824
+#define GL_MAX_DRAW_BUFFERS_NV                                                     0x8824
+#define GL_DRAW_BUFFER0                                                            0x8825
+#define GL_DRAW_BUFFER0_ARB                                                        0x8825
+#define GL_DRAW_BUFFER0_ATI                                                        0x8825
+#define GL_DRAW_BUFFER0_EXT                                                        0x8825
+#define GL_DRAW_BUFFER0_NV                                                         0x8825
+#define GL_DRAW_BUFFER1                                                            0x8826
+#define GL_DRAW_BUFFER1_ARB                                                        0x8826
+#define GL_DRAW_BUFFER1_ATI                                                        0x8826
+#define GL_DRAW_BUFFER1_EXT                                                        0x8826
+#define GL_DRAW_BUFFER1_NV                                                         0x8826
+#define GL_DRAW_BUFFER2                                                            0x8827
+#define GL_DRAW_BUFFER2_ARB                                                        0x8827
+#define GL_DRAW_BUFFER2_ATI                                                        0x8827
+#define GL_DRAW_BUFFER2_EXT                                                        0x8827
+#define GL_DRAW_BUFFER2_NV                                                         0x8827
+#define GL_DRAW_BUFFER3                                                            0x8828
+#define GL_DRAW_BUFFER3_ARB                                                        0x8828
+#define GL_DRAW_BUFFER3_ATI                                                        0x8828
+#define GL_DRAW_BUFFER3_EXT                                                        0x8828
+#define GL_DRAW_BUFFER3_NV                                                         0x8828
+#define GL_DRAW_BUFFER4                                                            0x8829
+#define GL_DRAW_BUFFER4_ARB                                                        0x8829
+#define GL_DRAW_BUFFER4_ATI                                                        0x8829
+#define GL_DRAW_BUFFER4_EXT                                                        0x8829
+#define GL_DRAW_BUFFER4_NV                                                         0x8829
+#define GL_DRAW_BUFFER5                                                            0x882A
+#define GL_DRAW_BUFFER5_ARB                                                        0x882A
+#define GL_DRAW_BUFFER5_ATI                                                        0x882A
+#define GL_DRAW_BUFFER5_EXT                                                        0x882A
+#define GL_DRAW_BUFFER5_NV                                                         0x882A
+#define GL_DRAW_BUFFER6                                                            0x882B
+#define GL_DRAW_BUFFER6_ARB                                                        0x882B
+#define GL_DRAW_BUFFER6_ATI                                                        0x882B
+#define GL_DRAW_BUFFER6_EXT                                                        0x882B
+#define GL_DRAW_BUFFER6_NV                                                         0x882B
+#define GL_DRAW_BUFFER7                                                            0x882C
+#define GL_DRAW_BUFFER7_ARB                                                        0x882C
+#define GL_DRAW_BUFFER7_ATI                                                        0x882C
+#define GL_DRAW_BUFFER7_EXT                                                        0x882C
+#define GL_DRAW_BUFFER7_NV                                                         0x882C
+#define GL_DRAW_BUFFER8                                                            0x882D
+#define GL_DRAW_BUFFER8_ARB                                                        0x882D
+#define GL_DRAW_BUFFER8_ATI                                                        0x882D
+#define GL_DRAW_BUFFER8_EXT                                                        0x882D
+#define GL_DRAW_BUFFER8_NV                                                         0x882D
+#define GL_DRAW_BUFFER9                                                            0x882E
+#define GL_DRAW_BUFFER9_ARB                                                        0x882E
+#define GL_DRAW_BUFFER9_ATI                                                        0x882E
+#define GL_DRAW_BUFFER9_EXT                                                        0x882E
+#define GL_DRAW_BUFFER9_NV                                                         0x882E
+#define GL_DRAW_BUFFER10                                                           0x882F
+#define GL_DRAW_BUFFER10_ARB                                                       0x882F
+#define GL_DRAW_BUFFER10_ATI                                                       0x882F
+#define GL_DRAW_BUFFER10_EXT                                                       0x882F
+#define GL_DRAW_BUFFER10_NV                                                        0x882F
+#define GL_DRAW_BUFFER11                                                           0x8830
+#define GL_DRAW_BUFFER11_ARB                                                       0x8830
+#define GL_DRAW_BUFFER11_ATI                                                       0x8830
+#define GL_DRAW_BUFFER11_EXT                                                       0x8830
+#define GL_DRAW_BUFFER11_NV                                                        0x8830
+#define GL_DRAW_BUFFER12                                                           0x8831
+#define GL_DRAW_BUFFER12_ARB                                                       0x8831
+#define GL_DRAW_BUFFER12_ATI                                                       0x8831
+#define GL_DRAW_BUFFER12_EXT                                                       0x8831
+#define GL_DRAW_BUFFER12_NV                                                        0x8831
+#define GL_DRAW_BUFFER13                                                           0x8832
+#define GL_DRAW_BUFFER13_ARB                                                       0x8832
+#define GL_DRAW_BUFFER13_ATI                                                       0x8832
+#define GL_DRAW_BUFFER13_EXT                                                       0x8832
+#define GL_DRAW_BUFFER13_NV                                                        0x8832
+#define GL_DRAW_BUFFER14                                                           0x8833
+#define GL_DRAW_BUFFER14_ARB                                                       0x8833
+#define GL_DRAW_BUFFER14_ATI                                                       0x8833
+#define GL_DRAW_BUFFER14_EXT                                                       0x8833
+#define GL_DRAW_BUFFER14_NV                                                        0x8833
+#define GL_DRAW_BUFFER15                                                           0x8834
+#define GL_DRAW_BUFFER15_ARB                                                       0x8834
+#define GL_DRAW_BUFFER15_ATI                                                       0x8834
+#define GL_DRAW_BUFFER15_EXT                                                       0x8834
+#define GL_DRAW_BUFFER15_NV                                                        0x8834
+#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI                                         0x8835
+#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI                                      0x8837
+#define GL_BLEND_EQUATION_ALPHA                                                    0x883D
+#define GL_BLEND_EQUATION_ALPHA_EXT                                                0x883D
+#define GL_BLEND_EQUATION_ALPHA_OES                                                0x883D
+#define GL_SUBSAMPLE_DISTANCE_AMD                                                  0x883F
+#define GL_MATRIX_PALETTE_ARB                                                      0x8840
+#define GL_MATRIX_PALETTE_OES                                                      0x8840
+#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB                                      0x8841
+#define GL_MAX_PALETTE_MATRICES_ARB                                                0x8842
+#define GL_MAX_PALETTE_MATRICES_OES                                                0x8842
+#define GL_CURRENT_PALETTE_MATRIX_ARB                                              0x8843
+#define GL_CURRENT_PALETTE_MATRIX_OES                                              0x8843
+#define GL_MATRIX_INDEX_ARRAY_ARB                                                  0x8844
+#define GL_MATRIX_INDEX_ARRAY_OES                                                  0x8844
+#define GL_CURRENT_MATRIX_INDEX_ARB                                                0x8845
+#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB                                             0x8846
+#define GL_MATRIX_INDEX_ARRAY_SIZE_OES                                             0x8846
+#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB                                             0x8847
+#define GL_MATRIX_INDEX_ARRAY_TYPE_OES                                             0x8847
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB                                           0x8848
+#define GL_MATRIX_INDEX_ARRAY_STRIDE_OES                                           0x8848
+#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB                                          0x8849
+#define GL_MATRIX_INDEX_ARRAY_POINTER_OES                                          0x8849
+#define GL_TEXTURE_DEPTH_SIZE                                                      0x884A
+#define GL_TEXTURE_DEPTH_SIZE_ARB                                                  0x884A
+#define GL_DEPTH_TEXTURE_MODE                                                      0x884B
+#define GL_DEPTH_TEXTURE_MODE_ARB                                                  0x884B
+#define GL_TEXTURE_COMPARE_MODE                                                    0x884C
+#define GL_TEXTURE_COMPARE_MODE_ARB                                                0x884C
+#define GL_TEXTURE_COMPARE_MODE_EXT                                                0x884C
+#define GL_TEXTURE_COMPARE_FUNC                                                    0x884D
+#define GL_TEXTURE_COMPARE_FUNC_ARB                                                0x884D
+#define GL_TEXTURE_COMPARE_FUNC_EXT                                                0x884D
+#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT                                        0x884E
+#define GL_COMPARE_REF_TO_TEXTURE                                                  0x884E
+#define GL_COMPARE_REF_TO_TEXTURE_EXT                                              0x884E
+#define GL_COMPARE_R_TO_TEXTURE                                                    0x884E
+#define GL_COMPARE_R_TO_TEXTURE_ARB                                                0x884E
+#define GL_TEXTURE_CUBE_MAP_SEAMLESS                                               0x884F
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV                                         0x8850
+#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV                                   0x8851
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV                                  0x8852
+#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV                            0x8853
+#define GL_OFFSET_HILO_TEXTURE_2D_NV                                               0x8854
+#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV                                        0x8855
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV                                    0x8856
+#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV                             0x8857
+#define GL_DEPENDENT_HILO_TEXTURE_2D_NV                                            0x8858
+#define GL_DEPENDENT_RGB_TEXTURE_3D_NV                                             0x8859
+#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV                                       0x885A
+#define GL_DOT_PRODUCT_PASS_THROUGH_NV                                             0x885B
+#define GL_DOT_PRODUCT_TEXTURE_1D_NV                                               0x885C
+#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV                                     0x885D
+#define GL_HILO8_NV                                                                0x885E
+#define GL_SIGNED_HILO8_NV                                                         0x885F
+#define GL_FORCE_BLUE_TO_ONE_NV                                                    0x8860
+#define GL_POINT_SPRITE                                                            0x8861
+#define GL_POINT_SPRITE_ARB                                                        0x8861
+#define GL_POINT_SPRITE_NV                                                         0x8861
+#define GL_POINT_SPRITE_OES                                                        0x8861
+#define GL_COORD_REPLACE                                                           0x8862
+#define GL_COORD_REPLACE_ARB                                                       0x8862
+#define GL_COORD_REPLACE_NV                                                        0x8862
+#define GL_COORD_REPLACE_OES                                                       0x8862
+#define GL_POINT_SPRITE_R_MODE_NV                                                  0x8863
+#define GL_PIXEL_COUNTER_BITS_NV                                                   0x8864
+#define GL_QUERY_COUNTER_BITS                                                      0x8864
+#define GL_QUERY_COUNTER_BITS_ARB                                                  0x8864
+#define GL_QUERY_COUNTER_BITS_EXT                                                  0x8864
+#define GL_CURRENT_OCCLUSION_QUERY_ID_NV                                           0x8865
+#define GL_CURRENT_QUERY                                                           0x8865
+#define GL_CURRENT_QUERY_ARB                                                       0x8865
+#define GL_CURRENT_QUERY_EXT                                                       0x8865
+#define GL_PIXEL_COUNT_NV                                                          0x8866
+#define GL_QUERY_RESULT                                                            0x8866
+#define GL_QUERY_RESULT_ARB                                                        0x8866
+#define GL_QUERY_RESULT_EXT                                                        0x8866
+#define GL_PIXEL_COUNT_AVAILABLE_NV                                                0x8867
+#define GL_QUERY_RESULT_AVAILABLE                                                  0x8867
+#define GL_QUERY_RESULT_AVAILABLE_ARB                                              0x8867
+#define GL_QUERY_RESULT_AVAILABLE_EXT                                              0x8867
+#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV                                0x8868
+#define GL_MAX_VERTEX_ATTRIBS                                                      0x8869
+#define GL_MAX_VERTEX_ATTRIBS_ARB                                                  0x8869
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED                                          0x886A
+#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB                                      0x886A
+#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS                                       0x886C
+#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_EXT                                   0x886C
+#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS_OES                                   0x886C
+#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS                                    0x886D
+#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_EXT                                0x886D
+#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS_OES                                0x886D
+#define GL_DEPTH_STENCIL_TO_RGBA_NV                                                0x886E
+#define GL_DEPTH_STENCIL_TO_BGRA_NV                                                0x886F
+#define GL_FRAGMENT_PROGRAM_NV                                                     0x8870
+#define GL_MAX_TEXTURE_COORDS                                                      0x8871
+#define GL_MAX_TEXTURE_COORDS_ARB                                                  0x8871
+#define GL_MAX_TEXTURE_COORDS_NV                                                   0x8871
+#define GL_MAX_TEXTURE_IMAGE_UNITS                                                 0x8872
+#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB                                             0x8872
+#define GL_MAX_TEXTURE_IMAGE_UNITS_NV                                              0x8872
+#define GL_FRAGMENT_PROGRAM_BINDING_NV                                             0x8873
+#define GL_PROGRAM_ERROR_STRING_ARB                                                0x8874
+#define GL_PROGRAM_ERROR_STRING_NV                                                 0x8874
+#define GL_PROGRAM_FORMAT_ASCII_ARB                                                0x8875
+#define GL_PROGRAM_FORMAT_ARB                                                      0x8876
+#define GL_WRITE_PIXEL_DATA_RANGE_NV                                               0x8878
+#define GL_READ_PIXEL_DATA_RANGE_NV                                                0x8879
+#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV                                        0x887A
+#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV                                         0x887B
+#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV                                       0x887C
+#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV                                        0x887D
+#define GL_GEOMETRY_SHADER_INVOCATIONS                                             0x887F
+#define GL_GEOMETRY_SHADER_INVOCATIONS_EXT                                         0x887F
+#define GL_GEOMETRY_SHADER_INVOCATIONS_OES                                         0x887F
+#define GL_FLOAT_R_NV                                                              0x8880
+#define GL_FLOAT_RG_NV                                                             0x8881
+#define GL_FLOAT_RGB_NV                                                            0x8882
+#define GL_FLOAT_RGBA_NV                                                           0x8883
+#define GL_FLOAT_R16_NV                                                            0x8884
+#define GL_FLOAT_R32_NV                                                            0x8885
+#define GL_FLOAT_RG16_NV                                                           0x8886
+#define GL_FLOAT_RG32_NV                                                           0x8887
+#define GL_FLOAT_RGB16_NV                                                          0x8888
+#define GL_FLOAT_RGB32_NV                                                          0x8889
+#define GL_FLOAT_RGBA16_NV                                                         0x888A
+#define GL_FLOAT_RGBA32_NV                                                         0x888B
+#define GL_TEXTURE_FLOAT_COMPONENTS_NV                                             0x888C
+#define GL_FLOAT_CLEAR_COLOR_VALUE_NV                                              0x888D
+#define GL_FLOAT_RGBA_MODE_NV                                                      0x888E
+#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV                                          0x888F
+#define GL_DEPTH_BOUNDS_TEST_EXT                                                   0x8890
+#define GL_DEPTH_BOUNDS_EXT                                                        0x8891
+#define GL_ARRAY_BUFFER                                                            0x8892
+#define GL_ARRAY_BUFFER_ARB                                                        0x8892
+#define GL_ELEMENT_ARRAY_BUFFER                                                    0x8893
+#define GL_ELEMENT_ARRAY_BUFFER_ARB                                                0x8893
+#define GL_ARRAY_BUFFER_BINDING                                                    0x8894
+#define GL_ARRAY_BUFFER_BINDING_ARB                                                0x8894
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING                                            0x8895
+#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB                                        0x8895
+#define GL_VERTEX_ARRAY_BUFFER_BINDING                                             0x8896
+#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB                                         0x8896
+#define GL_NORMAL_ARRAY_BUFFER_BINDING                                             0x8897
+#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB                                         0x8897
+#define GL_COLOR_ARRAY_BUFFER_BINDING                                              0x8898
+#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB                                          0x8898
+#define GL_INDEX_ARRAY_BUFFER_BINDING                                              0x8899
+#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB                                          0x8899
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING                                      0x889A
+#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB                                  0x889A
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING                                          0x889B
+#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB                                      0x889B
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING                                    0x889C
+#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB                                0x889C
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING                                     0x889D
+#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB                                 0x889D
+#define GL_FOG_COORD_ARRAY_BUFFER_BINDING                                          0x889D
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING                                             0x889E
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB                                         0x889E
+#define GL_WEIGHT_ARRAY_BUFFER_BINDING_OES                                         0x889E
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING                                      0x889F
+#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB                                  0x889F
+#define GL_PROGRAM_INSTRUCTIONS_ARB                                                0x88A0
+#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB                                            0x88A1
+#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB                                         0x88A2
+#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB                                     0x88A3
+#define GL_PROGRAM_TEMPORARIES_ARB                                                 0x88A4
+#define GL_MAX_PROGRAM_TEMPORARIES_ARB                                             0x88A5
+#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB                                          0x88A6
+#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB                                      0x88A7
+#define GL_PROGRAM_PARAMETERS_ARB                                                  0x88A8
+#define GL_MAX_PROGRAM_PARAMETERS_ARB                                              0x88A9
+#define GL_PROGRAM_NATIVE_PARAMETERS_ARB                                           0x88AA
+#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB                                       0x88AB
+#define GL_PROGRAM_ATTRIBS_ARB                                                     0x88AC
+#define GL_MAX_PROGRAM_ATTRIBS_ARB                                                 0x88AD
+#define GL_PROGRAM_NATIVE_ATTRIBS_ARB                                              0x88AE
+#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB                                          0x88AF
+#define GL_PROGRAM_ADDRESS_REGISTERS_ARB                                           0x88B0
+#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB                                       0x88B1
+#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB                                    0x88B2
+#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB                                0x88B3
+#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB                                        0x88B4
+#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB                                          0x88B5
+#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB                                         0x88B6
+#define GL_TRANSPOSE_CURRENT_MATRIX_ARB                                            0x88B7
+#define GL_READ_ONLY                                                               0x88B8
+#define GL_READ_ONLY_ARB                                                           0x88B8
+#define GL_WRITE_ONLY                                                              0x88B9
+#define GL_WRITE_ONLY_ARB                                                          0x88B9
+#define GL_WRITE_ONLY_OES                                                          0x88B9
+#define GL_READ_WRITE                                                              0x88BA
+#define GL_READ_WRITE_ARB                                                          0x88BA
+#define GL_BUFFER_ACCESS                                                           0x88BB
+#define GL_BUFFER_ACCESS_ARB                                                       0x88BB
+#define GL_BUFFER_ACCESS_OES                                                       0x88BB
+#define GL_BUFFER_MAPPED                                                           0x88BC
+#define GL_BUFFER_MAPPED_ARB                                                       0x88BC
+#define GL_BUFFER_MAPPED_OES                                                       0x88BC
+#define GL_BUFFER_MAP_POINTER                                                      0x88BD
+#define GL_BUFFER_MAP_POINTER_ARB                                                  0x88BD
+#define GL_BUFFER_MAP_POINTER_OES                                                  0x88BD
+#define GL_WRITE_DISCARD_NV                                                        0x88BE
+#define GL_TIME_ELAPSED                                                            0x88BF
+#define GL_TIME_ELAPSED_EXT                                                        0x88BF
+#define GL_MATRIX0_ARB                                                             0x88C0
+#define GL_MATRIX1_ARB                                                             0x88C1
+#define GL_MATRIX2_ARB                                                             0x88C2
+#define GL_MATRIX3_ARB                                                             0x88C3
+#define GL_MATRIX4_ARB                                                             0x88C4
+#define GL_MATRIX5_ARB                                                             0x88C5
+#define GL_MATRIX6_ARB                                                             0x88C6
+#define GL_MATRIX7_ARB                                                             0x88C7
+#define GL_MATRIX8_ARB                                                             0x88C8
+#define GL_MATRIX9_ARB                                                             0x88C9
+#define GL_MATRIX10_ARB                                                            0x88CA
+#define GL_MATRIX11_ARB                                                            0x88CB
+#define GL_MATRIX12_ARB                                                            0x88CC
+#define GL_MATRIX13_ARB                                                            0x88CD
+#define GL_MATRIX14_ARB                                                            0x88CE
+#define GL_MATRIX15_ARB                                                            0x88CF
+#define GL_MATRIX16_ARB                                                            0x88D0
+#define GL_MATRIX17_ARB                                                            0x88D1
+#define GL_MATRIX18_ARB                                                            0x88D2
+#define GL_MATRIX19_ARB                                                            0x88D3
+#define GL_MATRIX20_ARB                                                            0x88D4
+#define GL_MATRIX21_ARB                                                            0x88D5
+#define GL_MATRIX22_ARB                                                            0x88D6
+#define GL_MATRIX23_ARB                                                            0x88D7
+#define GL_MATRIX24_ARB                                                            0x88D8
+#define GL_MATRIX25_ARB                                                            0x88D9
+#define GL_MATRIX26_ARB                                                            0x88DA
+#define GL_MATRIX27_ARB                                                            0x88DB
+#define GL_MATRIX28_ARB                                                            0x88DC
+#define GL_MATRIX29_ARB                                                            0x88DD
+#define GL_MATRIX30_ARB                                                            0x88DE
+#define GL_MATRIX31_ARB                                                            0x88DF
+#define GL_STREAM_DRAW                                                             0x88E0
+#define GL_STREAM_DRAW_ARB                                                         0x88E0
+#define GL_STREAM_READ                                                             0x88E1
+#define GL_STREAM_READ_ARB                                                         0x88E1
+#define GL_STREAM_COPY                                                             0x88E2
+#define GL_STREAM_COPY_ARB                                                         0x88E2
+#define GL_STATIC_DRAW                                                             0x88E4
+#define GL_STATIC_DRAW_ARB                                                         0x88E4
+#define GL_STATIC_READ                                                             0x88E5
+#define GL_STATIC_READ_ARB                                                         0x88E5
+#define GL_STATIC_COPY                                                             0x88E6
+#define GL_STATIC_COPY_ARB                                                         0x88E6
+#define GL_DYNAMIC_DRAW                                                            0x88E8
+#define GL_DYNAMIC_DRAW_ARB                                                        0x88E8
+#define GL_DYNAMIC_READ                                                            0x88E9
+#define GL_DYNAMIC_READ_ARB                                                        0x88E9
+#define GL_DYNAMIC_COPY                                                            0x88EA
+#define GL_DYNAMIC_COPY_ARB                                                        0x88EA
+#define GL_PIXEL_PACK_BUFFER                                                       0x88EB
+#define GL_PIXEL_PACK_BUFFER_ARB                                                   0x88EB
+#define GL_PIXEL_PACK_BUFFER_EXT                                                   0x88EB
+#define GL_PIXEL_PACK_BUFFER_NV                                                    0x88EB
+#define GL_PIXEL_UNPACK_BUFFER                                                     0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_ARB                                                 0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_EXT                                                 0x88EC
+#define GL_PIXEL_UNPACK_BUFFER_NV                                                  0x88EC
+#define GL_PIXEL_PACK_BUFFER_BINDING                                               0x88ED
+#define GL_PIXEL_PACK_BUFFER_BINDING_ARB                                           0x88ED
+#define GL_PIXEL_PACK_BUFFER_BINDING_EXT                                           0x88ED
+#define GL_PIXEL_PACK_BUFFER_BINDING_NV                                            0x88ED
+#define GL_ETC1_SRGB8_NV                                                           0x88EE
+#define GL_PIXEL_UNPACK_BUFFER_BINDING                                             0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB                                         0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT                                         0x88EF
+#define GL_PIXEL_UNPACK_BUFFER_BINDING_NV                                          0x88EF
+#define GL_DEPTH24_STENCIL8                                                        0x88F0
+#define GL_DEPTH24_STENCIL8_EXT                                                    0x88F0
+#define GL_DEPTH24_STENCIL8_OES                                                    0x88F0
+#define GL_TEXTURE_STENCIL_SIZE                                                    0x88F1
+#define GL_TEXTURE_STENCIL_SIZE_EXT                                                0x88F1
+#define GL_STENCIL_TAG_BITS_EXT                                                    0x88F2
+#define GL_STENCIL_CLEAR_TAG_VALUE_EXT                                             0x88F3
+#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV                                        0x88F4
+#define GL_MAX_PROGRAM_CALL_DEPTH_NV                                               0x88F5
+#define GL_MAX_PROGRAM_IF_DEPTH_NV                                                 0x88F6
+#define GL_MAX_PROGRAM_LOOP_DEPTH_NV                                               0x88F7
+#define GL_MAX_PROGRAM_LOOP_COUNT_NV                                               0x88F8
+#define GL_SRC1_COLOR                                                              0x88F9
+#define GL_SRC1_COLOR_EXT                                                          0x88F9
+#define GL_ONE_MINUS_SRC1_COLOR                                                    0x88FA
+#define GL_ONE_MINUS_SRC1_COLOR_EXT                                                0x88FA
+#define GL_ONE_MINUS_SRC1_ALPHA                                                    0x88FB
+#define GL_ONE_MINUS_SRC1_ALPHA_EXT                                                0x88FB
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS                                            0x88FC
+#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT                                        0x88FC
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER                                             0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT                                         0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV                                          0x88FD
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR                                             0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE                                       0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB                                         0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_EXT                                         0x88FE
+#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_NV                                          0x88FE
+#define GL_MAX_ARRAY_TEXTURE_LAYERS                                                0x88FF
+#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT                                            0x88FF
+#define GL_MIN_PROGRAM_TEXEL_OFFSET                                                0x8904
+#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT                                            0x8904
+#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV                                             0x8904
+#define GL_MAX_PROGRAM_TEXEL_OFFSET                                                0x8905
+#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT                                            0x8905
+#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV                                             0x8905
+#define GL_PROGRAM_ATTRIB_COMPONENTS_NV                                            0x8906
+#define GL_PROGRAM_RESULT_COMPONENTS_NV                                            0x8907
+#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV                                        0x8908
+#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV                                        0x8909
+#define GL_STENCIL_TEST_TWO_SIDE_EXT                                               0x8910
+#define GL_ACTIVE_STENCIL_FACE_EXT                                                 0x8911
+#define GL_MIRROR_CLAMP_TO_BORDER_EXT                                              0x8912
+#define GL_SAMPLES_PASSED                                                          0x8914
+#define GL_SAMPLES_PASSED_ARB                                                      0x8914
+#define GL_GEOMETRY_LINKED_VERTICES_OUT_EXT                                        0x8916
+#define GL_GEOMETRY_LINKED_VERTICES_OUT_OES                                        0x8916
+#define GL_GEOMETRY_VERTICES_OUT                                                   0x8916
+#define GL_GEOMETRY_INPUT_TYPE                                                     0x8917
+#define GL_GEOMETRY_LINKED_INPUT_TYPE_EXT                                          0x8917
+#define GL_GEOMETRY_LINKED_INPUT_TYPE_OES                                          0x8917
+#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_EXT                                         0x8918
+#define GL_GEOMETRY_LINKED_OUTPUT_TYPE_OES                                         0x8918
+#define GL_GEOMETRY_OUTPUT_TYPE                                                    0x8918
+#define GL_SAMPLER_BINDING                                                         0x8919
+#define GL_CLAMP_VERTEX_COLOR                                                      0x891A
+#define GL_CLAMP_VERTEX_COLOR_ARB                                                  0x891A
+#define GL_CLAMP_FRAGMENT_COLOR                                                    0x891B
+#define GL_CLAMP_FRAGMENT_COLOR_ARB                                                0x891B
+#define GL_CLAMP_READ_COLOR                                                        0x891C
+#define GL_CLAMP_READ_COLOR_ARB                                                    0x891C
+#define GL_FIXED_ONLY                                                              0x891D
+#define GL_FIXED_ONLY_ARB                                                          0x891D
+#define GL_TESS_CONTROL_PROGRAM_NV                                                 0x891E
+#define GL_TESS_EVALUATION_PROGRAM_NV                                              0x891F
+#define GL_FRAGMENT_SHADER_ATI                                                     0x8920
+#define GL_REG_0_ATI                                                               0x8921
+#define GL_REG_1_ATI                                                               0x8922
+#define GL_REG_2_ATI                                                               0x8923
+#define GL_REG_3_ATI                                                               0x8924
+#define GL_REG_4_ATI                                                               0x8925
+#define GL_REG_5_ATI                                                               0x8926
+#define GL_REG_6_ATI                                                               0x8927
+#define GL_REG_7_ATI                                                               0x8928
+#define GL_REG_8_ATI                                                               0x8929
+#define GL_REG_9_ATI                                                               0x892A
+#define GL_REG_10_ATI                                                              0x892B
+#define GL_REG_11_ATI                                                              0x892C
+#define GL_REG_12_ATI                                                              0x892D
+#define GL_REG_13_ATI                                                              0x892E
+#define GL_REG_14_ATI                                                              0x892F
+#define GL_REG_15_ATI                                                              0x8930
+#define GL_REG_16_ATI                                                              0x8931
+#define GL_REG_17_ATI                                                              0x8932
+#define GL_REG_18_ATI                                                              0x8933
+#define GL_REG_19_ATI                                                              0x8934
+#define GL_REG_20_ATI                                                              0x8935
+#define GL_REG_21_ATI                                                              0x8936
+#define GL_REG_22_ATI                                                              0x8937
+#define GL_REG_23_ATI                                                              0x8938
+#define GL_REG_24_ATI                                                              0x8939
+#define GL_REG_25_ATI                                                              0x893A
+#define GL_REG_26_ATI                                                              0x893B
+#define GL_REG_27_ATI                                                              0x893C
+#define GL_REG_28_ATI                                                              0x893D
+#define GL_REG_29_ATI                                                              0x893E
+#define GL_REG_30_ATI                                                              0x893F
+#define GL_REG_31_ATI                                                              0x8940
+#define GL_CON_0_ATI                                                               0x8941
+#define GL_CON_1_ATI                                                               0x8942
+#define GL_CON_2_ATI                                                               0x8943
+#define GL_CON_3_ATI                                                               0x8944
+#define GL_CON_4_ATI                                                               0x8945
+#define GL_CON_5_ATI                                                               0x8946
+#define GL_CON_6_ATI                                                               0x8947
+#define GL_CON_7_ATI                                                               0x8948
+#define GL_CON_8_ATI                                                               0x8949
+#define GL_CON_9_ATI                                                               0x894A
+#define GL_CON_10_ATI                                                              0x894B
+#define GL_CON_11_ATI                                                              0x894C
+#define GL_CON_12_ATI                                                              0x894D
+#define GL_CON_13_ATI                                                              0x894E
+#define GL_CON_14_ATI                                                              0x894F
+#define GL_CON_15_ATI                                                              0x8950
+#define GL_CON_16_ATI                                                              0x8951
+#define GL_CON_17_ATI                                                              0x8952
+#define GL_CON_18_ATI                                                              0x8953
+#define GL_CON_19_ATI                                                              0x8954
+#define GL_CON_20_ATI                                                              0x8955
+#define GL_CON_21_ATI                                                              0x8956
+#define GL_CON_22_ATI                                                              0x8957
+#define GL_CON_23_ATI                                                              0x8958
+#define GL_CON_24_ATI                                                              0x8959
+#define GL_CON_25_ATI                                                              0x895A
+#define GL_CON_26_ATI                                                              0x895B
+#define GL_CON_27_ATI                                                              0x895C
+#define GL_CON_28_ATI                                                              0x895D
+#define GL_CON_29_ATI                                                              0x895E
+#define GL_CON_30_ATI                                                              0x895F
+#define GL_CON_31_ATI                                                              0x8960
+#define GL_MOV_ATI                                                                 0x8961
+#define GL_ADD_ATI                                                                 0x8963
+#define GL_MUL_ATI                                                                 0x8964
+#define GL_SUB_ATI                                                                 0x8965
+#define GL_DOT3_ATI                                                                0x8966
+#define GL_DOT4_ATI                                                                0x8967
+#define GL_MAD_ATI                                                                 0x8968
+#define GL_LERP_ATI                                                                0x8969
+#define GL_CND_ATI                                                                 0x896A
+#define GL_CND0_ATI                                                                0x896B
+#define GL_DOT2_ADD_ATI                                                            0x896C
+#define GL_SECONDARY_INTERPOLATOR_ATI                                              0x896D
+#define GL_NUM_FRAGMENT_REGISTERS_ATI                                              0x896E
+#define GL_NUM_FRAGMENT_CONSTANTS_ATI                                              0x896F
+#define GL_NUM_PASSES_ATI                                                          0x8970
+#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI                                           0x8971
+#define GL_NUM_INSTRUCTIONS_TOTAL_ATI                                              0x8972
+#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI                                   0x8973
+#define GL_NUM_LOOPBACK_COMPONENTS_ATI                                             0x8974
+#define GL_COLOR_ALPHA_PAIRING_ATI                                                 0x8975
+#define GL_SWIZZLE_STR_ATI                                                         0x8976
+#define GL_SWIZZLE_STQ_ATI                                                         0x8977
+#define GL_SWIZZLE_STR_DR_ATI                                                      0x8978
+#define GL_SWIZZLE_STQ_DQ_ATI                                                      0x8979
+#define GL_SWIZZLE_STRQ_ATI                                                        0x897A
+#define GL_SWIZZLE_STRQ_DQ_ATI                                                     0x897B
+#define GL_INTERLACE_OML                                                           0x8980
+#define GL_INTERLACE_READ_OML                                                      0x8981
+#define GL_FORMAT_SUBSAMPLE_24_24_OML                                              0x8982
+#define GL_FORMAT_SUBSAMPLE_244_244_OML                                            0x8983
+#define GL_PACK_RESAMPLE_OML                                                       0x8984
+#define GL_UNPACK_RESAMPLE_OML                                                     0x8985
+#define GL_RESAMPLE_REPLICATE_OML                                                  0x8986
+#define GL_RESAMPLE_ZERO_FILL_OML                                                  0x8987
+#define GL_RESAMPLE_AVERAGE_OML                                                    0x8988
+#define GL_RESAMPLE_DECIMATE_OML                                                   0x8989
+#define GL_POINT_SIZE_ARRAY_TYPE_OES                                               0x898A
+#define GL_POINT_SIZE_ARRAY_STRIDE_OES                                             0x898B
+#define GL_POINT_SIZE_ARRAY_POINTER_OES                                            0x898C
+#define GL_MODELVIEW_MATRIX_FLOAT_AS_INT_BITS_OES                                  0x898D
+#define GL_PROJECTION_MATRIX_FLOAT_AS_INT_BITS_OES                                 0x898E
+#define GL_TEXTURE_MATRIX_FLOAT_AS_INT_BITS_OES                                    0x898F
+#define GL_VERTEX_ATTRIB_MAP1_APPLE                                                0x8A00
+#define GL_VERTEX_ATTRIB_MAP2_APPLE                                                0x8A01
+#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE                                           0x8A02
+#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE                                          0x8A03
+#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE                                          0x8A04
+#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE                                         0x8A05
+#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE                                           0x8A06
+#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE                                          0x8A07
+#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE                                          0x8A08
+#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE                                         0x8A09
+#define GL_DRAW_PIXELS_APPLE                                                       0x8A0A
+#define GL_FENCE_APPLE                                                             0x8A0B
+#define GL_ELEMENT_ARRAY_APPLE                                                     0x8A0C
+#define GL_ELEMENT_ARRAY_TYPE_APPLE                                                0x8A0D
+#define GL_ELEMENT_ARRAY_POINTER_APPLE                                             0x8A0E
+#define GL_COLOR_FLOAT_APPLE                                                       0x8A0F
+#define GL_UNIFORM_BUFFER                                                          0x8A11
+#define GL_BUFFER_SERIALIZED_MODIFY_APPLE                                          0x8A12
+#define GL_BUFFER_FLUSHING_UNMAP_APPLE                                             0x8A13
+#define GL_AUX_DEPTH_STENCIL_APPLE                                                 0x8A14
+#define GL_PACK_ROW_BYTES_APPLE                                                    0x8A15
+#define GL_UNPACK_ROW_BYTES_APPLE                                                  0x8A16
+#define GL_RELEASED_APPLE                                                          0x8A19
+#define GL_VOLATILE_APPLE                                                          0x8A1A
+#define GL_RETAINED_APPLE                                                          0x8A1B
+#define GL_UNDEFINED_APPLE                                                         0x8A1C
+#define GL_PURGEABLE_APPLE                                                         0x8A1D
+#define GL_RGB_422_APPLE                                                           0x8A1F
+#define GL_UNIFORM_BUFFER_BINDING                                                  0x8A28
+#define GL_UNIFORM_BUFFER_START                                                    0x8A29
+#define GL_UNIFORM_BUFFER_SIZE                                                     0x8A2A
+#define GL_MAX_VERTEX_UNIFORM_BLOCKS                                               0x8A2B
+#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS                                             0x8A2C
+#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_EXT                                         0x8A2C
+#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS_OES                                         0x8A2C
+#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS                                             0x8A2D
+#define GL_MAX_COMBINED_UNIFORM_BLOCKS                                             0x8A2E
+#define GL_MAX_UNIFORM_BUFFER_BINDINGS                                             0x8A2F
+#define GL_MAX_UNIFORM_BLOCK_SIZE                                                  0x8A30
+#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS                                  0x8A31
+#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS                                0x8A32
+#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_EXT                            0x8A32
+#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS_OES                            0x8A32
+#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS                                0x8A33
+#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT                                         0x8A34
+#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH                                    0x8A35
+#define GL_ACTIVE_UNIFORM_BLOCKS                                                   0x8A36
+#define GL_UNIFORM_TYPE                                                            0x8A37
+#define GL_UNIFORM_SIZE                                                            0x8A38
+#define GL_UNIFORM_NAME_LENGTH                                                     0x8A39
+#define GL_UNIFORM_BLOCK_INDEX                                                     0x8A3A
+#define GL_UNIFORM_OFFSET                                                          0x8A3B
+#define GL_UNIFORM_ARRAY_STRIDE                                                    0x8A3C
+#define GL_UNIFORM_MATRIX_STRIDE                                                   0x8A3D
+#define GL_UNIFORM_IS_ROW_MAJOR                                                    0x8A3E
+#define GL_UNIFORM_BLOCK_BINDING                                                   0x8A3F
+#define GL_UNIFORM_BLOCK_DATA_SIZE                                                 0x8A40
+#define GL_UNIFORM_BLOCK_NAME_LENGTH                                               0x8A41
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS                                           0x8A42
+#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES                                    0x8A43
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER                               0x8A44
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER                             0x8A45
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER                             0x8A46
+#define GL_TEXTURE_SRGB_DECODE_EXT                                                 0x8A48
+#define GL_DECODE_EXT                                                              0x8A49
+#define GL_SKIP_DECODE_EXT                                                         0x8A4A
+#define GL_PROGRAM_PIPELINE_OBJECT_EXT                                             0x8A4F
+#define GL_RGB_RAW_422_APPLE                                                       0x8A51
+#define GL_FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT                                    0x8A52
+#define GL_SYNC_OBJECT_APPLE                                                       0x8A53
+#define GL_COMPRESSED_SRGB_PVRTC_2BPPV1_EXT                                        0x8A54
+#define GL_COMPRESSED_SRGB_PVRTC_4BPPV1_EXT                                        0x8A55
+#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV1_EXT                                  0x8A56
+#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV1_EXT                                  0x8A57
+#define GL_FRAGMENT_SHADER                                                         0x8B30
+#define GL_FRAGMENT_SHADER_ARB                                                     0x8B30
+#define GL_VERTEX_SHADER                                                           0x8B31
+#define GL_VERTEX_SHADER_ARB                                                       0x8B31
+#define GL_PROGRAM_OBJECT_ARB                                                      0x8B40
+#define GL_PROGRAM_OBJECT_EXT                                                      0x8B40
+#define GL_SHADER_OBJECT_ARB                                                       0x8B48
+#define GL_SHADER_OBJECT_EXT                                                       0x8B48
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS                                         0x8B49
+#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB                                     0x8B49
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS                                           0x8B4A
+#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB                                       0x8B4A
+#define GL_MAX_VARYING_COMPONENTS                                                  0x8B4B
+#define GL_MAX_VARYING_COMPONENTS_EXT                                              0x8B4B
+#define GL_MAX_VARYING_FLOATS                                                      0x8B4B
+#define GL_MAX_VARYING_FLOATS_ARB                                                  0x8B4B
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS                                          0x8B4C
+#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB                                      0x8B4C
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS                                        0x8B4D
+#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB                                    0x8B4D
+#define GL_OBJECT_TYPE_ARB                                                         0x8B4E
+#define GL_OBJECT_SUBTYPE_ARB                                                      0x8B4F
+#define GL_SHADER_TYPE                                                             0x8B4F
+#define GL_FLOAT_VEC2                                                              0x8B50
+#define GL_FLOAT_VEC2_ARB                                                          0x8B50
+#define GL_FLOAT_VEC3                                                              0x8B51
+#define GL_FLOAT_VEC3_ARB                                                          0x8B51
+#define GL_FLOAT_VEC4                                                              0x8B52
+#define GL_FLOAT_VEC4_ARB                                                          0x8B52
+#define GL_INT_VEC2                                                                0x8B53
+#define GL_INT_VEC2_ARB                                                            0x8B53
+#define GL_INT_VEC3                                                                0x8B54
+#define GL_INT_VEC3_ARB                                                            0x8B54
+#define GL_INT_VEC4                                                                0x8B55
+#define GL_INT_VEC4_ARB                                                            0x8B55
+#define GL_BOOL                                                                    0x8B56
+#define GL_BOOL_ARB                                                                0x8B56
+#define GL_BOOL_VEC2                                                               0x8B57
+#define GL_BOOL_VEC2_ARB                                                           0x8B57
+#define GL_BOOL_VEC3                                                               0x8B58
+#define GL_BOOL_VEC3_ARB                                                           0x8B58
+#define GL_BOOL_VEC4                                                               0x8B59
+#define GL_BOOL_VEC4_ARB                                                           0x8B59
+#define GL_FLOAT_MAT2                                                              0x8B5A
+#define GL_FLOAT_MAT2_ARB                                                          0x8B5A
+#define GL_FLOAT_MAT3                                                              0x8B5B
+#define GL_FLOAT_MAT3_ARB                                                          0x8B5B
+#define GL_FLOAT_MAT4                                                              0x8B5C
+#define GL_FLOAT_MAT4_ARB                                                          0x8B5C
+#define GL_SAMPLER_1D                                                              0x8B5D
+#define GL_SAMPLER_1D_ARB                                                          0x8B5D
+#define GL_SAMPLER_2D                                                              0x8B5E
+#define GL_SAMPLER_2D_ARB                                                          0x8B5E
+#define GL_SAMPLER_3D                                                              0x8B5F
+#define GL_SAMPLER_3D_ARB                                                          0x8B5F
+#define GL_SAMPLER_3D_OES                                                          0x8B5F
+#define GL_SAMPLER_CUBE                                                            0x8B60
+#define GL_SAMPLER_CUBE_ARB                                                        0x8B60
+#define GL_SAMPLER_1D_SHADOW                                                       0x8B61
+#define GL_SAMPLER_1D_SHADOW_ARB                                                   0x8B61
+#define GL_SAMPLER_2D_SHADOW                                                       0x8B62
+#define GL_SAMPLER_2D_SHADOW_ARB                                                   0x8B62
+#define GL_SAMPLER_2D_SHADOW_EXT                                                   0x8B62
+#define GL_SAMPLER_2D_RECT                                                         0x8B63
+#define GL_SAMPLER_2D_RECT_ARB                                                     0x8B63
+#define GL_SAMPLER_2D_RECT_SHADOW                                                  0x8B64
+#define GL_SAMPLER_2D_RECT_SHADOW_ARB                                              0x8B64
+#define GL_FLOAT_MAT2x3                                                            0x8B65
+#define GL_FLOAT_MAT2x3_NV                                                         0x8B65
+#define GL_FLOAT_MAT2x4                                                            0x8B66
+#define GL_FLOAT_MAT2x4_NV                                                         0x8B66
+#define GL_FLOAT_MAT3x2                                                            0x8B67
+#define GL_FLOAT_MAT3x2_NV                                                         0x8B67
+#define GL_FLOAT_MAT3x4                                                            0x8B68
+#define GL_FLOAT_MAT3x4_NV                                                         0x8B68
+#define GL_FLOAT_MAT4x2                                                            0x8B69
+#define GL_FLOAT_MAT4x2_NV                                                         0x8B69
+#define GL_FLOAT_MAT4x3                                                            0x8B6A
+#define GL_FLOAT_MAT4x3_NV                                                         0x8B6A
+#define GL_DELETE_STATUS                                                           0x8B80
+#define GL_OBJECT_DELETE_STATUS_ARB                                                0x8B80
+#define GL_COMPILE_STATUS                                                          0x8B81
+#define GL_OBJECT_COMPILE_STATUS_ARB                                               0x8B81
+#define GL_LINK_STATUS                                                             0x8B82
+#define GL_OBJECT_LINK_STATUS_ARB                                                  0x8B82
+#define GL_OBJECT_VALIDATE_STATUS_ARB                                              0x8B83
+#define GL_VALIDATE_STATUS                                                         0x8B83
+#define GL_INFO_LOG_LENGTH                                                         0x8B84
+#define GL_OBJECT_INFO_LOG_LENGTH_ARB                                              0x8B84
+#define GL_ATTACHED_SHADERS                                                        0x8B85
+#define GL_OBJECT_ATTACHED_OBJECTS_ARB                                             0x8B85
+#define GL_ACTIVE_UNIFORMS                                                         0x8B86
+#define GL_OBJECT_ACTIVE_UNIFORMS_ARB                                              0x8B86
+#define GL_ACTIVE_UNIFORM_MAX_LENGTH                                               0x8B87
+#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB                                    0x8B87
+#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB                                         0x8B88
+#define GL_SHADER_SOURCE_LENGTH                                                    0x8B88
+#define GL_ACTIVE_ATTRIBUTES                                                       0x8B89
+#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB                                            0x8B89
+#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH                                             0x8B8A
+#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB                                  0x8B8A
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT                                         0x8B8B
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB                                     0x8B8B
+#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES                                     0x8B8B
+#define GL_SHADING_LANGUAGE_VERSION                                                0x8B8C
+#define GL_SHADING_LANGUAGE_VERSION_ARB                                            0x8B8C
+#define GL_ACTIVE_PROGRAM_EXT                                                      0x8B8D
+#define GL_CURRENT_PROGRAM                                                         0x8B8D
+#define GL_PALETTE4_RGB8_OES                                                       0x8B90
+#define GL_PALETTE4_RGBA8_OES                                                      0x8B91
+#define GL_PALETTE4_R5_G6_B5_OES                                                   0x8B92
+#define GL_PALETTE4_RGBA4_OES                                                      0x8B93
+#define GL_PALETTE4_RGB5_A1_OES                                                    0x8B94
+#define GL_PALETTE8_RGB8_OES                                                       0x8B95
+#define GL_PALETTE8_RGBA8_OES                                                      0x8B96
+#define GL_PALETTE8_R5_G6_B5_OES                                                   0x8B97
+#define GL_PALETTE8_RGBA4_OES                                                      0x8B98
+#define GL_PALETTE8_RGB5_A1_OES                                                    0x8B99
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE                                          0x8B9A
+#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES                                      0x8B9A
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT                                        0x8B9B
+#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES                                    0x8B9B
+#define GL_POINT_SIZE_ARRAY_OES                                                    0x8B9C
+#define GL_TEXTURE_CROP_RECT_OES                                                   0x8B9D
+#define GL_MATRIX_INDEX_ARRAY_BUFFER_BINDING_OES                                   0x8B9E
+#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_OES                                     0x8B9F
+#define GL_FRAGMENT_PROGRAM_POSITION_MESA                                          0x8BB0
+#define GL_FRAGMENT_PROGRAM_CALLBACK_MESA                                          0x8BB1
+#define GL_FRAGMENT_PROGRAM_CALLBACK_FUNC_MESA                                     0x8BB2
+#define GL_FRAGMENT_PROGRAM_CALLBACK_DATA_MESA                                     0x8BB3
+#define GL_VERTEX_PROGRAM_POSITION_MESA                                            0x8BB4
+#define GL_VERTEX_PROGRAM_CALLBACK_MESA                                            0x8BB5
+#define GL_VERTEX_PROGRAM_CALLBACK_FUNC_MESA                                       0x8BB6
+#define GL_VERTEX_PROGRAM_CALLBACK_DATA_MESA                                       0x8BB7
+#define GL_TILE_RASTER_ORDER_FIXED_MESA                                            0x8BB8
+#define GL_TILE_RASTER_ORDER_INCREASING_X_MESA                                     0x8BB9
+#define GL_TILE_RASTER_ORDER_INCREASING_Y_MESA                                     0x8BBA
+#define GL_FRAMEBUFFER_FLIP_Y_MESA                                                 0x8BBB
+#define GL_COUNTER_TYPE_AMD                                                        0x8BC0
+#define GL_COUNTER_RANGE_AMD                                                       0x8BC1
+#define GL_UNSIGNED_INT64_AMD                                                      0x8BC2
+#define GL_PERCENTAGE_AMD                                                          0x8BC3
+#define GL_PERFMON_RESULT_AVAILABLE_AMD                                            0x8BC4
+#define GL_PERFMON_RESULT_SIZE_AMD                                                 0x8BC5
+#define GL_PERFMON_RESULT_AMD                                                      0x8BC6
+#define GL_TEXTURE_WIDTH_QCOM                                                      0x8BD2
+#define GL_TEXTURE_HEIGHT_QCOM                                                     0x8BD3
+#define GL_TEXTURE_DEPTH_QCOM                                                      0x8BD4
+#define GL_TEXTURE_INTERNAL_FORMAT_QCOM                                            0x8BD5
+#define GL_TEXTURE_FORMAT_QCOM                                                     0x8BD6
+#define GL_TEXTURE_TYPE_QCOM                                                       0x8BD7
+#define GL_TEXTURE_IMAGE_VALID_QCOM                                                0x8BD8
+#define GL_TEXTURE_NUM_LEVELS_QCOM                                                 0x8BD9
+#define GL_TEXTURE_TARGET_QCOM                                                     0x8BDA
+#define GL_TEXTURE_OBJECT_VALID_QCOM                                               0x8BDB
+#define GL_STATE_RESTORE                                                           0x8BDC
+#define GL_SAMPLER_EXTERNAL_2D_Y2Y_EXT                                             0x8BE7
+#define GL_TEXTURE_PROTECTED_EXT                                                   0x8BFA
+#define GL_TEXTURE_FOVEATED_FEATURE_BITS_QCOM                                      0x8BFB
+#define GL_TEXTURE_FOVEATED_MIN_PIXEL_DENSITY_QCOM                                 0x8BFC
+#define GL_TEXTURE_FOVEATED_FEATURE_QUERY_QCOM                                     0x8BFD
+#define GL_TEXTURE_FOVEATED_NUM_FOCAL_POINTS_QUERY_QCOM                            0x8BFE
+#define GL_FRAMEBUFFER_INCOMPLETE_FOVEATION_QCOM                                   0x8BFF
+#define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG                                         0x8C00
+#define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG                                         0x8C01
+#define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG                                        0x8C02
+#define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG                                        0x8C03
+#define GL_MODULATE_COLOR_IMG                                                      0x8C04
+#define GL_RECIP_ADD_SIGNED_ALPHA_IMG                                              0x8C05
+#define GL_TEXTURE_ALPHA_MODULATE_IMG                                              0x8C06
+#define GL_FACTOR_ALPHA_MODULATE_IMG                                               0x8C07
+#define GL_FRAGMENT_ALPHA_MODULATE_IMG                                             0x8C08
+#define GL_ADD_BLEND_IMG                                                           0x8C09
+#define GL_SGX_BINARY_IMG                                                          0x8C0A
+#define GL_TEXTURE_RED_TYPE                                                        0x8C10
+#define GL_TEXTURE_RED_TYPE_ARB                                                    0x8C10
+#define GL_TEXTURE_GREEN_TYPE                                                      0x8C11
+#define GL_TEXTURE_GREEN_TYPE_ARB                                                  0x8C11
+#define GL_TEXTURE_BLUE_TYPE                                                       0x8C12
+#define GL_TEXTURE_BLUE_TYPE_ARB                                                   0x8C12
+#define GL_TEXTURE_ALPHA_TYPE                                                      0x8C13
+#define GL_TEXTURE_ALPHA_TYPE_ARB                                                  0x8C13
+#define GL_TEXTURE_LUMINANCE_TYPE                                                  0x8C14
+#define GL_TEXTURE_LUMINANCE_TYPE_ARB                                              0x8C14
+#define GL_TEXTURE_INTENSITY_TYPE                                                  0x8C15
+#define GL_TEXTURE_INTENSITY_TYPE_ARB                                              0x8C15
+#define GL_TEXTURE_DEPTH_TYPE                                                      0x8C16
+#define GL_TEXTURE_DEPTH_TYPE_ARB                                                  0x8C16
+#define GL_UNSIGNED_NORMALIZED                                                     0x8C17
+#define GL_UNSIGNED_NORMALIZED_ARB                                                 0x8C17
+#define GL_UNSIGNED_NORMALIZED_EXT                                                 0x8C17
+#define GL_TEXTURE_1D_ARRAY                                                        0x8C18
+#define GL_TEXTURE_1D_ARRAY_EXT                                                    0x8C18
+#define GL_PROXY_TEXTURE_1D_ARRAY                                                  0x8C19
+#define GL_PROXY_TEXTURE_1D_ARRAY_EXT                                              0x8C19
+#define GL_TEXTURE_2D_ARRAY                                                        0x8C1A
+#define GL_TEXTURE_2D_ARRAY_EXT                                                    0x8C1A
+#define GL_PROXY_TEXTURE_2D_ARRAY                                                  0x8C1B
+#define GL_PROXY_TEXTURE_2D_ARRAY_EXT                                              0x8C1B
+#define GL_TEXTURE_BINDING_1D_ARRAY                                                0x8C1C
+#define GL_TEXTURE_BINDING_1D_ARRAY_EXT                                            0x8C1C
+#define GL_TEXTURE_BINDING_2D_ARRAY                                                0x8C1D
+#define GL_TEXTURE_BINDING_2D_ARRAY_EXT                                            0x8C1D
+#define GL_GEOMETRY_PROGRAM_NV                                                     0x8C26
+#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV                                          0x8C27
+#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV                                  0x8C28
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS                                        0x8C29
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB                                    0x8C29
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT                                    0x8C29
+#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_OES                                    0x8C29
+#define GL_TEXTURE_BUFFER                                                          0x8C2A
+#define GL_TEXTURE_BUFFER_ARB                                                      0x8C2A
+#define GL_TEXTURE_BUFFER_BINDING                                                  0x8C2A
+#define GL_TEXTURE_BUFFER_BINDING_EXT                                              0x8C2A
+#define GL_TEXTURE_BUFFER_BINDING_OES                                              0x8C2A
+#define GL_TEXTURE_BUFFER_EXT                                                      0x8C2A
+#define GL_TEXTURE_BUFFER_OES                                                      0x8C2A
+#define GL_MAX_TEXTURE_BUFFER_SIZE                                                 0x8C2B
+#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB                                             0x8C2B
+#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT                                             0x8C2B
+#define GL_MAX_TEXTURE_BUFFER_SIZE_OES                                             0x8C2B
+#define GL_TEXTURE_BINDING_BUFFER                                                  0x8C2C
+#define GL_TEXTURE_BINDING_BUFFER_ARB                                              0x8C2C
+#define GL_TEXTURE_BINDING_BUFFER_EXT                                              0x8C2C
+#define GL_TEXTURE_BINDING_BUFFER_OES                                              0x8C2C
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING                                       0x8C2D
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB                                   0x8C2D
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT                                   0x8C2D
+#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_OES                                   0x8C2D
+#define GL_TEXTURE_BUFFER_FORMAT_ARB                                               0x8C2E
+#define GL_TEXTURE_BUFFER_FORMAT_EXT                                               0x8C2E
+#define GL_ANY_SAMPLES_PASSED                                                      0x8C2F
+#define GL_ANY_SAMPLES_PASSED_EXT                                                  0x8C2F
+#define GL_SAMPLE_SHADING                                                          0x8C36
+#define GL_SAMPLE_SHADING_ARB                                                      0x8C36
+#define GL_SAMPLE_SHADING_OES                                                      0x8C36
+#define GL_MIN_SAMPLE_SHADING_VALUE                                                0x8C37
+#define GL_MIN_SAMPLE_SHADING_VALUE_ARB                                            0x8C37
+#define GL_MIN_SAMPLE_SHADING_VALUE_OES                                            0x8C37
+#define GL_R11F_G11F_B10F                                                          0x8C3A
+#define GL_R11F_G11F_B10F_APPLE                                                    0x8C3A
+#define GL_R11F_G11F_B10F_EXT                                                      0x8C3A
+#define GL_UNSIGNED_INT_10F_11F_11F_REV                                            0x8C3B
+#define GL_UNSIGNED_INT_10F_11F_11F_REV_APPLE                                      0x8C3B
+#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT                                        0x8C3B
+#define GL_RGBA_SIGNED_COMPONENTS_EXT                                              0x8C3C
+#define GL_RGB9_E5                                                                 0x8C3D
+#define GL_RGB9_E5_APPLE                                                           0x8C3D
+#define GL_RGB9_E5_EXT                                                             0x8C3D
+#define GL_UNSIGNED_INT_5_9_9_9_REV                                                0x8C3E
+#define GL_UNSIGNED_INT_5_9_9_9_REV_APPLE                                          0x8C3E
+#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT                                            0x8C3E
+#define GL_TEXTURE_SHARED_SIZE                                                     0x8C3F
+#define GL_TEXTURE_SHARED_SIZE_EXT                                                 0x8C3F
+#define GL_SRGB                                                                    0x8C40
+#define GL_SRGB_EXT                                                                0x8C40
+#define GL_SRGB8                                                                   0x8C41
+#define GL_SRGB8_EXT                                                               0x8C41
+#define GL_SRGB8_NV                                                                0x8C41
+#define GL_SRGB_ALPHA                                                              0x8C42
+#define GL_SRGB_ALPHA_EXT                                                          0x8C42
+#define GL_SRGB8_ALPHA8                                                            0x8C43
+#define GL_SRGB8_ALPHA8_EXT                                                        0x8C43
+#define GL_SLUMINANCE_ALPHA                                                        0x8C44
+#define GL_SLUMINANCE_ALPHA_EXT                                                    0x8C44
+#define GL_SLUMINANCE_ALPHA_NV                                                     0x8C44
+#define GL_SLUMINANCE8_ALPHA8                                                      0x8C45
+#define GL_SLUMINANCE8_ALPHA8_EXT                                                  0x8C45
+#define GL_SLUMINANCE8_ALPHA8_NV                                                   0x8C45
+#define GL_SLUMINANCE                                                              0x8C46
+#define GL_SLUMINANCE_EXT                                                          0x8C46
+#define GL_SLUMINANCE_NV                                                           0x8C46
+#define GL_SLUMINANCE8                                                             0x8C47
+#define GL_SLUMINANCE8_EXT                                                         0x8C47
+#define GL_SLUMINANCE8_NV                                                          0x8C47
+#define GL_COMPRESSED_SRGB                                                         0x8C48
+#define GL_COMPRESSED_SRGB_EXT                                                     0x8C48
+#define GL_COMPRESSED_SRGB_ALPHA                                                   0x8C49
+#define GL_COMPRESSED_SRGB_ALPHA_EXT                                               0x8C49
+#define GL_COMPRESSED_SLUMINANCE                                                   0x8C4A
+#define GL_COMPRESSED_SLUMINANCE_EXT                                               0x8C4A
+#define GL_COMPRESSED_SLUMINANCE_ALPHA                                             0x8C4B
+#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT                                         0x8C4B
+#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT                                           0x8C4C
+#define GL_COMPRESSED_SRGB_S3TC_DXT1_NV                                            0x8C4C
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT                                     0x8C4D
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_NV                                      0x8C4D
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT                                     0x8C4E
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_NV                                      0x8C4E
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT                                     0x8C4F
+#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_NV                                      0x8C4F
+#define GL_COMPRESSED_LUMINANCE_LATC1_EXT                                          0x8C70
+#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT                                   0x8C71
+#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT                                    0x8C72
+#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT                             0x8C73
+#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV                                0x8C74
+#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV                             0x8C75
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH                                   0x8C76
+#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT                               0x8C76
+#define GL_BACK_PRIMARY_COLOR_NV                                                   0x8C77
+#define GL_BACK_SECONDARY_COLOR_NV                                                 0x8C78
+#define GL_TEXTURE_COORD_NV                                                        0x8C79
+#define GL_CLIP_DISTANCE_NV                                                        0x8C7A
+#define GL_VERTEX_ID_NV                                                            0x8C7B
+#define GL_PRIMITIVE_ID_NV                                                         0x8C7C
+#define GL_GENERIC_ATTRIB_NV                                                       0x8C7D
+#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV                                           0x8C7E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE                                          0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT                                      0x8C7F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV                                       0x8C7F
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS                              0x8C80
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT                          0x8C80
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV                           0x8C80
+#define GL_ACTIVE_VARYINGS_NV                                                      0x8C81
+#define GL_ACTIVE_VARYING_MAX_LENGTH_NV                                            0x8C82
+#define GL_TRANSFORM_FEEDBACK_VARYINGS                                             0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT                                         0x8C83
+#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV                                          0x8C83
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START                                         0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT                                     0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV                                      0x8C84
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE                                          0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT                                      0x8C85
+#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV                                       0x8C85
+#define GL_TRANSFORM_FEEDBACK_RECORD_NV                                            0x8C86
+#define GL_PRIMITIVES_GENERATED                                                    0x8C87
+#define GL_PRIMITIVES_GENERATED_EXT                                                0x8C87
+#define GL_PRIMITIVES_GENERATED_NV                                                 0x8C87
+#define GL_PRIMITIVES_GENERATED_OES                                                0x8C87
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN                                   0x8C88
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT                               0x8C88
+#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV                                0x8C88
+#define GL_RASTERIZER_DISCARD                                                      0x8C89
+#define GL_RASTERIZER_DISCARD_EXT                                                  0x8C89
+#define GL_RASTERIZER_DISCARD_NV                                                   0x8C89
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS                           0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT                       0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_NV                        0x8C8A
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS                                 0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT                             0x8C8B
+#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV                              0x8C8B
+#define GL_INTERLEAVED_ATTRIBS                                                     0x8C8C
+#define GL_INTERLEAVED_ATTRIBS_EXT                                                 0x8C8C
+#define GL_INTERLEAVED_ATTRIBS_NV                                                  0x8C8C
+#define GL_SEPARATE_ATTRIBS                                                        0x8C8D
+#define GL_SEPARATE_ATTRIBS_EXT                                                    0x8C8D
+#define GL_SEPARATE_ATTRIBS_NV                                                     0x8C8D
+#define GL_TRANSFORM_FEEDBACK_BUFFER                                               0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT                                           0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_NV                                            0x8C8E
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING                                       0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT                                   0x8C8F
+#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV                                    0x8C8F
+#define GL_ATC_RGB_AMD                                                             0x8C92
+#define GL_ATC_RGBA_EXPLICIT_ALPHA_AMD                                             0x8C93
+#define GL_POINT_SPRITE_COORD_ORIGIN                                               0x8CA0
+#define GL_LOWER_LEFT                                                              0x8CA1
+#define GL_LOWER_LEFT_EXT                                                          0x8CA1
+#define GL_UPPER_LEFT                                                              0x8CA2
+#define GL_UPPER_LEFT_EXT                                                          0x8CA2
+#define GL_STENCIL_BACK_REF                                                        0x8CA3
+#define GL_STENCIL_BACK_VALUE_MASK                                                 0x8CA4
+#define GL_STENCIL_BACK_WRITEMASK                                                  0x8CA5
+#define GL_DRAW_FRAMEBUFFER_BINDING                                                0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE                                          0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING_APPLE                                          0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING_EXT                                            0x8CA6
+#define GL_DRAW_FRAMEBUFFER_BINDING_NV                                             0x8CA6
+#define GL_FRAMEBUFFER_BINDING                                                     0x8CA6
+#define GL_FRAMEBUFFER_BINDING_ANGLE                                               0x8CA6
+#define GL_FRAMEBUFFER_BINDING_EXT                                                 0x8CA6
+#define GL_FRAMEBUFFER_BINDING_OES                                                 0x8CA6
+#define GL_RENDERBUFFER_BINDING                                                    0x8CA7
+#define GL_RENDERBUFFER_BINDING_ANGLE                                              0x8CA7
+#define GL_RENDERBUFFER_BINDING_EXT                                                0x8CA7
+#define GL_RENDERBUFFER_BINDING_OES                                                0x8CA7
+#define GL_READ_FRAMEBUFFER                                                        0x8CA8
+#define GL_READ_FRAMEBUFFER_ANGLE                                                  0x8CA8
+#define GL_READ_FRAMEBUFFER_APPLE                                                  0x8CA8
+#define GL_READ_FRAMEBUFFER_EXT                                                    0x8CA8
+#define GL_READ_FRAMEBUFFER_NV                                                     0x8CA8
+#define GL_DRAW_FRAMEBUFFER                                                        0x8CA9
+#define GL_DRAW_FRAMEBUFFER_ANGLE                                                  0x8CA9
+#define GL_DRAW_FRAMEBUFFER_APPLE                                                  0x8CA9
+#define GL_DRAW_FRAMEBUFFER_EXT                                                    0x8CA9
+#define GL_DRAW_FRAMEBUFFER_NV                                                     0x8CA9
+#define GL_READ_FRAMEBUFFER_BINDING                                                0x8CAA
+#define GL_READ_FRAMEBUFFER_BINDING_ANGLE                                          0x8CAA
+#define GL_READ_FRAMEBUFFER_BINDING_APPLE                                          0x8CAA
+#define GL_READ_FRAMEBUFFER_BINDING_EXT                                            0x8CAA
+#define GL_READ_FRAMEBUFFER_BINDING_NV                                             0x8CAA
+#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV                                        0x8CAB
+#define GL_RENDERBUFFER_SAMPLES                                                    0x8CAB
+#define GL_RENDERBUFFER_SAMPLES_ANGLE                                              0x8CAB
+#define GL_RENDERBUFFER_SAMPLES_APPLE                                              0x8CAB
+#define GL_RENDERBUFFER_SAMPLES_EXT                                                0x8CAB
+#define GL_RENDERBUFFER_SAMPLES_NV                                                 0x8CAB
+#define GL_DEPTH_COMPONENT32F                                                      0x8CAC
+#define GL_DEPTH32F_STENCIL8                                                       0x8CAD
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE                                      0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT                                  0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_OES                                  0x8CD0
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME                                      0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT                                  0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_OES                                  0x8CD1
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL                                    0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT                                0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_OES                                0x8CD2
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE                            0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT                        0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_OES                        0x8CD3
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT                           0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_OES                           0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER                                    0x8CD4
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT                                0x8CD4
+#define GL_FRAMEBUFFER_COMPLETE                                                    0x8CD5
+#define GL_FRAMEBUFFER_COMPLETE_EXT                                                0x8CD5
+#define GL_FRAMEBUFFER_COMPLETE_OES                                                0x8CD5
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT                                       0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT                                   0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_OES                                   0x8CD6
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT                               0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT                           0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_OES                           0x8CD7
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS                                       0x8CD9
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT                                   0x8CD9
+#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_OES                                   0x8CD9
+#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT                                      0x8CDA
+#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_OES                                      0x8CDA
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER                                      0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT                                  0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_OES                                  0x8CDB
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER                                      0x8CDC
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT                                  0x8CDC
+#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_OES                                  0x8CDC
+#define GL_FRAMEBUFFER_UNSUPPORTED                                                 0x8CDD
+#define GL_FRAMEBUFFER_UNSUPPORTED_EXT                                             0x8CDD
+#define GL_FRAMEBUFFER_UNSUPPORTED_OES                                             0x8CDD
+#define GL_MAX_COLOR_ATTACHMENTS                                                   0x8CDF
+#define GL_MAX_COLOR_ATTACHMENTS_EXT                                               0x8CDF
+#define GL_MAX_COLOR_ATTACHMENTS_NV                                                0x8CDF
+#define GL_COLOR_ATTACHMENT0                                                       0x8CE0
+#define GL_COLOR_ATTACHMENT0_EXT                                                   0x8CE0
+#define GL_COLOR_ATTACHMENT0_NV                                                    0x8CE0
+#define GL_COLOR_ATTACHMENT0_OES                                                   0x8CE0
+#define GL_COLOR_ATTACHMENT1                                                       0x8CE1
+#define GL_COLOR_ATTACHMENT1_EXT                                                   0x8CE1
+#define GL_COLOR_ATTACHMENT1_NV                                                    0x8CE1
+#define GL_COLOR_ATTACHMENT2                                                       0x8CE2
+#define GL_COLOR_ATTACHMENT2_EXT                                                   0x8CE2
+#define GL_COLOR_ATTACHMENT2_NV                                                    0x8CE2
+#define GL_COLOR_ATTACHMENT3                                                       0x8CE3
+#define GL_COLOR_ATTACHMENT3_EXT                                                   0x8CE3
+#define GL_COLOR_ATTACHMENT3_NV                                                    0x8CE3
+#define GL_COLOR_ATTACHMENT4                                                       0x8CE4
+#define GL_COLOR_ATTACHMENT4_EXT                                                   0x8CE4
+#define GL_COLOR_ATTACHMENT4_NV                                                    0x8CE4
+#define GL_COLOR_ATTACHMENT5                                                       0x8CE5
+#define GL_COLOR_ATTACHMENT5_EXT                                                   0x8CE5
+#define GL_COLOR_ATTACHMENT5_NV                                                    0x8CE5
+#define GL_COLOR_ATTACHMENT6                                                       0x8CE6
+#define GL_COLOR_ATTACHMENT6_EXT                                                   0x8CE6
+#define GL_COLOR_ATTACHMENT6_NV                                                    0x8CE6
+#define GL_COLOR_ATTACHMENT7                                                       0x8CE7
+#define GL_COLOR_ATTACHMENT7_EXT                                                   0x8CE7
+#define GL_COLOR_ATTACHMENT7_NV                                                    0x8CE7
+#define GL_COLOR_ATTACHMENT8                                                       0x8CE8
+#define GL_COLOR_ATTACHMENT8_EXT                                                   0x8CE8
+#define GL_COLOR_ATTACHMENT8_NV                                                    0x8CE8
+#define GL_COLOR_ATTACHMENT9                                                       0x8CE9
+#define GL_COLOR_ATTACHMENT9_EXT                                                   0x8CE9
+#define GL_COLOR_ATTACHMENT9_NV                                                    0x8CE9
+#define GL_COLOR_ATTACHMENT10                                                      0x8CEA
+#define GL_COLOR_ATTACHMENT10_EXT                                                  0x8CEA
+#define GL_COLOR_ATTACHMENT10_NV                                                   0x8CEA
+#define GL_COLOR_ATTACHMENT11                                                      0x8CEB
+#define GL_COLOR_ATTACHMENT11_EXT                                                  0x8CEB
+#define GL_COLOR_ATTACHMENT11_NV                                                   0x8CEB
+#define GL_COLOR_ATTACHMENT12                                                      0x8CEC
+#define GL_COLOR_ATTACHMENT12_EXT                                                  0x8CEC
+#define GL_COLOR_ATTACHMENT12_NV                                                   0x8CEC
+#define GL_COLOR_ATTACHMENT13                                                      0x8CED
+#define GL_COLOR_ATTACHMENT13_EXT                                                  0x8CED
+#define GL_COLOR_ATTACHMENT13_NV                                                   0x8CED
+#define GL_COLOR_ATTACHMENT14                                                      0x8CEE
+#define GL_COLOR_ATTACHMENT14_EXT                                                  0x8CEE
+#define GL_COLOR_ATTACHMENT14_NV                                                   0x8CEE
+#define GL_COLOR_ATTACHMENT15                                                      0x8CEF
+#define GL_COLOR_ATTACHMENT15_EXT                                                  0x8CEF
+#define GL_COLOR_ATTACHMENT15_NV                                                   0x8CEF
+#define GL_COLOR_ATTACHMENT16                                                      0x8CF0
+#define GL_COLOR_ATTACHMENT17                                                      0x8CF1
+#define GL_COLOR_ATTACHMENT18                                                      0x8CF2
+#define GL_COLOR_ATTACHMENT19                                                      0x8CF3
+#define GL_COLOR_ATTACHMENT20                                                      0x8CF4
+#define GL_COLOR_ATTACHMENT21                                                      0x8CF5
+#define GL_COLOR_ATTACHMENT22                                                      0x8CF6
+#define GL_COLOR_ATTACHMENT23                                                      0x8CF7
+#define GL_COLOR_ATTACHMENT24                                                      0x8CF8
+#define GL_COLOR_ATTACHMENT25                                                      0x8CF9
+#define GL_COLOR_ATTACHMENT26                                                      0x8CFA
+#define GL_COLOR_ATTACHMENT27                                                      0x8CFB
+#define GL_COLOR_ATTACHMENT28                                                      0x8CFC
+#define GL_COLOR_ATTACHMENT29                                                      0x8CFD
+#define GL_COLOR_ATTACHMENT30                                                      0x8CFE
+#define GL_COLOR_ATTACHMENT31                                                      0x8CFF
+#define GL_DEPTH_ATTACHMENT                                                        0x8D00
+#define GL_DEPTH_ATTACHMENT_EXT                                                    0x8D00
+#define GL_DEPTH_ATTACHMENT_OES                                                    0x8D00
+#define GL_STENCIL_ATTACHMENT                                                      0x8D20
+#define GL_STENCIL_ATTACHMENT_EXT                                                  0x8D20
+#define GL_STENCIL_ATTACHMENT_OES                                                  0x8D20
+#define GL_FRAMEBUFFER                                                             0x8D40
+#define GL_FRAMEBUFFER_EXT                                                         0x8D40
+#define GL_FRAMEBUFFER_OES                                                         0x8D40
+#define GL_RENDERBUFFER                                                            0x8D41
+#define GL_RENDERBUFFER_EXT                                                        0x8D41
+#define GL_RENDERBUFFER_OES                                                        0x8D41
+#define GL_RENDERBUFFER_WIDTH                                                      0x8D42
+#define GL_RENDERBUFFER_WIDTH_EXT                                                  0x8D42
+#define GL_RENDERBUFFER_WIDTH_OES                                                  0x8D42
+#define GL_RENDERBUFFER_HEIGHT                                                     0x8D43
+#define GL_RENDERBUFFER_HEIGHT_EXT                                                 0x8D43
+#define GL_RENDERBUFFER_HEIGHT_OES                                                 0x8D43
+#define GL_RENDERBUFFER_INTERNAL_FORMAT                                            0x8D44
+#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT                                        0x8D44
+#define GL_RENDERBUFFER_INTERNAL_FORMAT_OES                                        0x8D44
+#define GL_STENCIL_INDEX1                                                          0x8D46
+#define GL_STENCIL_INDEX1_EXT                                                      0x8D46
+#define GL_STENCIL_INDEX1_OES                                                      0x8D46
+#define GL_STENCIL_INDEX4                                                          0x8D47
+#define GL_STENCIL_INDEX4_EXT                                                      0x8D47
+#define GL_STENCIL_INDEX4_OES                                                      0x8D47
+#define GL_STENCIL_INDEX8                                                          0x8D48
+#define GL_STENCIL_INDEX8_EXT                                                      0x8D48
+#define GL_STENCIL_INDEX8_OES                                                      0x8D48
+#define GL_STENCIL_INDEX16                                                         0x8D49
+#define GL_STENCIL_INDEX16_EXT                                                     0x8D49
+#define GL_RENDERBUFFER_RED_SIZE                                                   0x8D50
+#define GL_RENDERBUFFER_RED_SIZE_EXT                                               0x8D50
+#define GL_RENDERBUFFER_RED_SIZE_OES                                               0x8D50
+#define GL_RENDERBUFFER_GREEN_SIZE                                                 0x8D51
+#define GL_RENDERBUFFER_GREEN_SIZE_EXT                                             0x8D51
+#define GL_RENDERBUFFER_GREEN_SIZE_OES                                             0x8D51
+#define GL_RENDERBUFFER_BLUE_SIZE                                                  0x8D52
+#define GL_RENDERBUFFER_BLUE_SIZE_EXT                                              0x8D52
+#define GL_RENDERBUFFER_BLUE_SIZE_OES                                              0x8D52
+#define GL_RENDERBUFFER_ALPHA_SIZE                                                 0x8D53
+#define GL_RENDERBUFFER_ALPHA_SIZE_EXT                                             0x8D53
+#define GL_RENDERBUFFER_ALPHA_SIZE_OES                                             0x8D53
+#define GL_RENDERBUFFER_DEPTH_SIZE                                                 0x8D54
+#define GL_RENDERBUFFER_DEPTH_SIZE_EXT                                             0x8D54
+#define GL_RENDERBUFFER_DEPTH_SIZE_OES                                             0x8D54
+#define GL_RENDERBUFFER_STENCIL_SIZE                                               0x8D55
+#define GL_RENDERBUFFER_STENCIL_SIZE_EXT                                           0x8D55
+#define GL_RENDERBUFFER_STENCIL_SIZE_OES                                           0x8D55
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE                                      0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_ANGLE                                0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_APPLE                                0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT                                  0x8D56
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_NV                                   0x8D56
+#define GL_MAX_SAMPLES                                                             0x8D57
+#define GL_MAX_SAMPLES_ANGLE                                                       0x8D57
+#define GL_MAX_SAMPLES_APPLE                                                       0x8D57
+#define GL_MAX_SAMPLES_EXT                                                         0x8D57
+#define GL_MAX_SAMPLES_NV                                                          0x8D57
+#define GL_TEXTURE_GEN_STR_OES                                                     0x8D60
+#define GL_HALF_FLOAT_OES                                                          0x8D61
+#define GL_RGB565                                                                  0x8D62
+#define GL_RGB565_OES                                                              0x8D62
+#define GL_ETC1_RGB8_OES                                                           0x8D64
+#define GL_TEXTURE_EXTERNAL_OES                                                    0x8D65
+#define GL_SAMPLER_EXTERNAL_OES                                                    0x8D66
+#define GL_TEXTURE_BINDING_EXTERNAL_OES                                            0x8D67
+#define GL_REQUIRED_TEXTURE_IMAGE_UNITS_OES                                        0x8D68
+#define GL_PRIMITIVE_RESTART_FIXED_INDEX                                           0x8D69
+#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE                                         0x8D6A
+#define GL_ANY_SAMPLES_PASSED_CONSERVATIVE_EXT                                     0x8D6A
+#define GL_MAX_ELEMENT_INDEX                                                       0x8D6B
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SAMPLES_EXT                              0x8D6C
+#define GL_RGBA32UI                                                                0x8D70
+#define GL_RGBA32UI_EXT                                                            0x8D70
+#define GL_RGB32UI                                                                 0x8D71
+#define GL_RGB32UI_EXT                                                             0x8D71
+#define GL_ALPHA32UI_EXT                                                           0x8D72
+#define GL_INTENSITY32UI_EXT                                                       0x8D73
+#define GL_LUMINANCE32UI_EXT                                                       0x8D74
+#define GL_LUMINANCE_ALPHA32UI_EXT                                                 0x8D75
+#define GL_RGBA16UI                                                                0x8D76
+#define GL_RGBA16UI_EXT                                                            0x8D76
+#define GL_RGB16UI                                                                 0x8D77
+#define GL_RGB16UI_EXT                                                             0x8D77
+#define GL_ALPHA16UI_EXT                                                           0x8D78
+#define GL_INTENSITY16UI_EXT                                                       0x8D79
+#define GL_LUMINANCE16UI_EXT                                                       0x8D7A
+#define GL_LUMINANCE_ALPHA16UI_EXT                                                 0x8D7B
+#define GL_RGBA8UI                                                                 0x8D7C
+#define GL_RGBA8UI_EXT                                                             0x8D7C
+#define GL_RGB8UI                                                                  0x8D7D
+#define GL_RGB8UI_EXT                                                              0x8D7D
+#define GL_ALPHA8UI_EXT                                                            0x8D7E
+#define GL_INTENSITY8UI_EXT                                                        0x8D7F
+#define GL_LUMINANCE8UI_EXT                                                        0x8D80
+#define GL_LUMINANCE_ALPHA8UI_EXT                                                  0x8D81
+#define GL_RGBA32I                                                                 0x8D82
+#define GL_RGBA32I_EXT                                                             0x8D82
+#define GL_RGB32I                                                                  0x8D83
+#define GL_RGB32I_EXT                                                              0x8D83
+#define GL_ALPHA32I_EXT                                                            0x8D84
+#define GL_INTENSITY32I_EXT                                                        0x8D85
+#define GL_LUMINANCE32I_EXT                                                        0x8D86
+#define GL_LUMINANCE_ALPHA32I_EXT                                                  0x8D87
+#define GL_RGBA16I                                                                 0x8D88
+#define GL_RGBA16I_EXT                                                             0x8D88
+#define GL_RGB16I                                                                  0x8D89
+#define GL_RGB16I_EXT                                                              0x8D89
+#define GL_ALPHA16I_EXT                                                            0x8D8A
+#define GL_INTENSITY16I_EXT                                                        0x8D8B
+#define GL_LUMINANCE16I_EXT                                                        0x8D8C
+#define GL_LUMINANCE_ALPHA16I_EXT                                                  0x8D8D
+#define GL_RGBA8I                                                                  0x8D8E
+#define GL_RGBA8I_EXT                                                              0x8D8E
+#define GL_RGB8I                                                                   0x8D8F
+#define GL_RGB8I_EXT                                                               0x8D8F
+#define GL_ALPHA8I_EXT                                                             0x8D90
+#define GL_INTENSITY8I_EXT                                                         0x8D91
+#define GL_LUMINANCE8I_EXT                                                         0x8D92
+#define GL_LUMINANCE_ALPHA8I_EXT                                                   0x8D93
+#define GL_RED_INTEGER                                                             0x8D94
+#define GL_RED_INTEGER_EXT                                                         0x8D94
+#define GL_GREEN_INTEGER                                                           0x8D95
+#define GL_GREEN_INTEGER_EXT                                                       0x8D95
+#define GL_BLUE_INTEGER                                                            0x8D96
+#define GL_BLUE_INTEGER_EXT                                                        0x8D96
+#define GL_ALPHA_INTEGER                                                           0x8D97
+#define GL_ALPHA_INTEGER_EXT                                                       0x8D97
+#define GL_RGB_INTEGER                                                             0x8D98
+#define GL_RGB_INTEGER_EXT                                                         0x8D98
+#define GL_RGBA_INTEGER                                                            0x8D99
+#define GL_RGBA_INTEGER_EXT                                                        0x8D99
+#define GL_BGR_INTEGER                                                             0x8D9A
+#define GL_BGR_INTEGER_EXT                                                         0x8D9A
+#define GL_BGRA_INTEGER                                                            0x8D9B
+#define GL_BGRA_INTEGER_EXT                                                        0x8D9B
+#define GL_LUMINANCE_INTEGER_EXT                                                   0x8D9C
+#define GL_LUMINANCE_ALPHA_INTEGER_EXT                                             0x8D9D
+#define GL_RGBA_INTEGER_MODE_EXT                                                   0x8D9E
+#define GL_INT_2_10_10_10_REV                                                      0x8D9F
+#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV                                0x8DA0
+#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV                                    0x8DA1
+#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV                                      0x8DA2
+#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV                                    0x8DA3
+#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV                                    0x8DA4
+#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV                                          0x8DA5
+#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV                                          0x8DA6
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED                                          0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB                                      0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT                                      0x8DA7
+#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_OES                                      0x8DA7
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS                                    0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB                                0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT                                0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_OES                                0x8DA8
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB                                  0x8DA9
+#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT                                  0x8DA9
+#define GL_LAYER_NV                                                                0x8DAA
+#define GL_DEPTH_COMPONENT32F_NV                                                   0x8DAB
+#define GL_DEPTH32F_STENCIL8_NV                                                    0x8DAC
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV                                          0x8DAD
+#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV                                       0x8DAD
+#define GL_SHADER_INCLUDE_ARB                                                      0x8DAE
+#define GL_DEPTH_BUFFER_FLOAT_MODE_NV                                              0x8DAF
+#define GL_FRAMEBUFFER_SRGB                                                        0x8DB9
+#define GL_FRAMEBUFFER_SRGB_EXT                                                    0x8DB9
+#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT                                            0x8DBA
+#define GL_COMPRESSED_RED_RGTC1                                                    0x8DBB
+#define GL_COMPRESSED_RED_RGTC1_EXT                                                0x8DBB
+#define GL_COMPRESSED_SIGNED_RED_RGTC1                                             0x8DBC
+#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT                                         0x8DBC
+#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT                                          0x8DBD
+#define GL_COMPRESSED_RG_RGTC2                                                     0x8DBD
+#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT                                   0x8DBE
+#define GL_COMPRESSED_SIGNED_RG_RGTC2                                              0x8DBE
+#define GL_SAMPLER_1D_ARRAY                                                        0x8DC0
+#define GL_SAMPLER_1D_ARRAY_EXT                                                    0x8DC0
+#define GL_SAMPLER_2D_ARRAY                                                        0x8DC1
+#define GL_SAMPLER_2D_ARRAY_EXT                                                    0x8DC1
+#define GL_SAMPLER_BUFFER                                                          0x8DC2
+#define GL_SAMPLER_BUFFER_EXT                                                      0x8DC2
+#define GL_SAMPLER_BUFFER_OES                                                      0x8DC2
+#define GL_SAMPLER_1D_ARRAY_SHADOW                                                 0x8DC3
+#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT                                             0x8DC3
+#define GL_SAMPLER_2D_ARRAY_SHADOW                                                 0x8DC4
+#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT                                             0x8DC4
+#define GL_SAMPLER_2D_ARRAY_SHADOW_NV                                              0x8DC4
+#define GL_SAMPLER_CUBE_SHADOW                                                     0x8DC5
+#define GL_SAMPLER_CUBE_SHADOW_EXT                                                 0x8DC5
+#define GL_SAMPLER_CUBE_SHADOW_NV                                                  0x8DC5
+#define GL_UNSIGNED_INT_VEC2                                                       0x8DC6
+#define GL_UNSIGNED_INT_VEC2_EXT                                                   0x8DC6
+#define GL_UNSIGNED_INT_VEC3                                                       0x8DC7
+#define GL_UNSIGNED_INT_VEC3_EXT                                                   0x8DC7
+#define GL_UNSIGNED_INT_VEC4                                                       0x8DC8
+#define GL_UNSIGNED_INT_VEC4_EXT                                                   0x8DC8
+#define GL_INT_SAMPLER_1D                                                          0x8DC9
+#define GL_INT_SAMPLER_1D_EXT                                                      0x8DC9
+#define GL_INT_SAMPLER_2D                                                          0x8DCA
+#define GL_INT_SAMPLER_2D_EXT                                                      0x8DCA
+#define GL_INT_SAMPLER_3D                                                          0x8DCB
+#define GL_INT_SAMPLER_3D_EXT                                                      0x8DCB
+#define GL_INT_SAMPLER_CUBE                                                        0x8DCC
+#define GL_INT_SAMPLER_CUBE_EXT                                                    0x8DCC
+#define GL_INT_SAMPLER_2D_RECT                                                     0x8DCD
+#define GL_INT_SAMPLER_2D_RECT_EXT                                                 0x8DCD
+#define GL_INT_SAMPLER_1D_ARRAY                                                    0x8DCE
+#define GL_INT_SAMPLER_1D_ARRAY_EXT                                                0x8DCE
+#define GL_INT_SAMPLER_2D_ARRAY                                                    0x8DCF
+#define GL_INT_SAMPLER_2D_ARRAY_EXT                                                0x8DCF
+#define GL_INT_SAMPLER_BUFFER                                                      0x8DD0
+#define GL_INT_SAMPLER_BUFFER_EXT                                                  0x8DD0
+#define GL_INT_SAMPLER_BUFFER_OES                                                  0x8DD0
+#define GL_UNSIGNED_INT_SAMPLER_1D                                                 0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_1D_EXT                                             0x8DD1
+#define GL_UNSIGNED_INT_SAMPLER_2D                                                 0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_2D_EXT                                             0x8DD2
+#define GL_UNSIGNED_INT_SAMPLER_3D                                                 0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_3D_EXT                                             0x8DD3
+#define GL_UNSIGNED_INT_SAMPLER_CUBE                                               0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT                                           0x8DD4
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT                                            0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT                                        0x8DD5
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY                                           0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT                                       0x8DD6
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY                                           0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT                                       0x8DD7
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER                                             0x8DD8
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT                                         0x8DD8
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_OES                                         0x8DD8
+#define GL_GEOMETRY_SHADER                                                         0x8DD9
+#define GL_GEOMETRY_SHADER_ARB                                                     0x8DD9
+#define GL_GEOMETRY_SHADER_EXT                                                     0x8DD9
+#define GL_GEOMETRY_SHADER_OES                                                     0x8DD9
+#define GL_GEOMETRY_VERTICES_OUT_ARB                                               0x8DDA
+#define GL_GEOMETRY_VERTICES_OUT_EXT                                               0x8DDA
+#define GL_GEOMETRY_INPUT_TYPE_ARB                                                 0x8DDB
+#define GL_GEOMETRY_INPUT_TYPE_EXT                                                 0x8DDB
+#define GL_GEOMETRY_OUTPUT_TYPE_ARB                                                0x8DDC
+#define GL_GEOMETRY_OUTPUT_TYPE_EXT                                                0x8DDC
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB                                     0x8DDD
+#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT                                     0x8DDD
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB                                       0x8DDE
+#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT                                       0x8DDE
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS                                         0x8DDF
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB                                     0x8DDF
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT                                     0x8DDF
+#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_OES                                     0x8DDF
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES                                            0x8DE0
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB                                        0x8DE0
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT                                        0x8DE0
+#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_OES                                        0x8DE0
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS                                    0x8DE1
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB                                0x8DE1
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT                                0x8DE1
+#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_OES                                0x8DE1
+#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT                                        0x8DE2
+#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT                                      0x8DE3
+#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT                                      0x8DE4
+#define GL_ACTIVE_SUBROUTINES                                                      0x8DE5
+#define GL_ACTIVE_SUBROUTINE_UNIFORMS                                              0x8DE6
+#define GL_MAX_SUBROUTINES                                                         0x8DE7
+#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS                                        0x8DE8
+#define GL_NAMED_STRING_LENGTH_ARB                                                 0x8DE9
+#define GL_NAMED_STRING_TYPE_ARB                                                   0x8DEA
+#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT                                           0x8DED
+#define GL_UNIFORM_BUFFER_EXT                                                      0x8DEE
+#define GL_UNIFORM_BUFFER_BINDING_EXT                                              0x8DEF
+#define GL_LOW_FLOAT                                                               0x8DF0
+#define GL_MEDIUM_FLOAT                                                            0x8DF1
+#define GL_HIGH_FLOAT                                                              0x8DF2
+#define GL_LOW_INT                                                                 0x8DF3
+#define GL_MEDIUM_INT                                                              0x8DF4
+#define GL_HIGH_INT                                                                0x8DF5
+#define GL_UNSIGNED_INT_10_10_10_2_OES                                             0x8DF6
+#define GL_INT_10_10_10_2_OES                                                      0x8DF7
+#define GL_SHADER_BINARY_FORMATS                                                   0x8DF8
+#define GL_NUM_SHADER_BINARY_FORMATS                                               0x8DF9
+#define GL_SHADER_COMPILER                                                         0x8DFA
+#define GL_MAX_VERTEX_UNIFORM_VECTORS                                              0x8DFB
+#define GL_MAX_VARYING_VECTORS                                                     0x8DFC
+#define GL_MAX_FRAGMENT_UNIFORM_VECTORS                                            0x8DFD
+#define GL_RENDERBUFFER_COLOR_SAMPLES_NV                                           0x8E10
+#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV                                       0x8E11
+#define GL_MULTISAMPLE_COVERAGE_MODES_NV                                           0x8E12
+#define GL_QUERY_WAIT                                                              0x8E13
+#define GL_QUERY_WAIT_NV                                                           0x8E13
+#define GL_QUERY_NO_WAIT                                                           0x8E14
+#define GL_QUERY_NO_WAIT_NV                                                        0x8E14
+#define GL_QUERY_BY_REGION_WAIT                                                    0x8E15
+#define GL_QUERY_BY_REGION_WAIT_NV                                                 0x8E15
+#define GL_QUERY_BY_REGION_NO_WAIT                                                 0x8E16
+#define GL_QUERY_BY_REGION_NO_WAIT_NV                                              0x8E16
+#define GL_QUERY_WAIT_INVERTED                                                     0x8E17
+#define GL_QUERY_NO_WAIT_INVERTED                                                  0x8E18
+#define GL_QUERY_BY_REGION_WAIT_INVERTED                                           0x8E19
+#define GL_QUERY_BY_REGION_NO_WAIT_INVERTED                                        0x8E1A
+#define GL_POLYGON_OFFSET_CLAMP                                                    0x8E1B
+#define GL_POLYGON_OFFSET_CLAMP_EXT                                                0x8E1B
+#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS                            0x8E1E
+#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_EXT                        0x8E1E
+#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS_OES                        0x8E1E
+#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS                         0x8E1F
+#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT                     0x8E1F
+#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS_OES                     0x8E1F
+#define GL_COLOR_SAMPLES_NV                                                        0x8E20
+#define GL_TRANSFORM_FEEDBACK                                                      0x8E22
+#define GL_TRANSFORM_FEEDBACK_NV                                                   0x8E22
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED                                        0x8E23
+#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV                                     0x8E23
+#define GL_TRANSFORM_FEEDBACK_PAUSED                                               0x8E23
+#define GL_TRANSFORM_FEEDBACK_ACTIVE                                               0x8E24
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE                                        0x8E24
+#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV                                     0x8E24
+#define GL_TRANSFORM_FEEDBACK_BINDING                                              0x8E25
+#define GL_TRANSFORM_FEEDBACK_BINDING_NV                                           0x8E25
+#define GL_FRAME_NV                                                                0x8E26
+#define GL_FIELDS_NV                                                               0x8E27
+#define GL_CURRENT_TIME_NV                                                         0x8E28
+#define GL_TIMESTAMP                                                               0x8E28
+#define GL_TIMESTAMP_EXT                                                           0x8E28
+#define GL_NUM_FILL_STREAMS_NV                                                     0x8E29
+#define GL_PRESENT_TIME_NV                                                         0x8E2A
+#define GL_PRESENT_DURATION_NV                                                     0x8E2B
+#define GL_DEPTH_COMPONENT16_NONLINEAR_NV                                          0x8E2C
+#define GL_PROGRAM_MATRIX_EXT                                                      0x8E2D
+#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT                                            0x8E2E
+#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT                                          0x8E2F
+#define GL_TEXTURE_SWIZZLE_R                                                       0x8E42
+#define GL_TEXTURE_SWIZZLE_R_EXT                                                   0x8E42
+#define GL_TEXTURE_SWIZZLE_G                                                       0x8E43
+#define GL_TEXTURE_SWIZZLE_G_EXT                                                   0x8E43
+#define GL_TEXTURE_SWIZZLE_B                                                       0x8E44
+#define GL_TEXTURE_SWIZZLE_B_EXT                                                   0x8E44
+#define GL_TEXTURE_SWIZZLE_A                                                       0x8E45
+#define GL_TEXTURE_SWIZZLE_A_EXT                                                   0x8E45
+#define GL_TEXTURE_SWIZZLE_RGBA                                                    0x8E46
+#define GL_TEXTURE_SWIZZLE_RGBA_EXT                                                0x8E46
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS                                     0x8E47
+#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH                                            0x8E48
+#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH                                    0x8E49
+#define GL_NUM_COMPATIBLE_SUBROUTINES                                              0x8E4A
+#define GL_COMPATIBLE_SUBROUTINES                                                  0x8E4B
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION                                0x8E4C
+#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT                            0x8E4C
+#define GL_FIRST_VERTEX_CONVENTION                                                 0x8E4D
+#define GL_FIRST_VERTEX_CONVENTION_EXT                                             0x8E4D
+#define GL_FIRST_VERTEX_CONVENTION_OES                                             0x8E4D
+#define GL_LAST_VERTEX_CONVENTION                                                  0x8E4E
+#define GL_LAST_VERTEX_CONVENTION_EXT                                              0x8E4E
+#define GL_LAST_VERTEX_CONVENTION_OES                                              0x8E4E
+#define GL_PROVOKING_VERTEX                                                        0x8E4F
+#define GL_PROVOKING_VERTEX_EXT                                                    0x8E4F
+#define GL_SAMPLE_LOCATION_ARB                                                     0x8E50
+#define GL_SAMPLE_LOCATION_NV                                                      0x8E50
+#define GL_SAMPLE_POSITION                                                         0x8E50
+#define GL_SAMPLE_POSITION_NV                                                      0x8E50
+#define GL_SAMPLE_MASK                                                             0x8E51
+#define GL_SAMPLE_MASK_NV                                                          0x8E51
+#define GL_SAMPLE_MASK_VALUE                                                       0x8E52
+#define GL_SAMPLE_MASK_VALUE_NV                                                    0x8E52
+#define GL_TEXTURE_BINDING_RENDERBUFFER_NV                                         0x8E53
+#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV                              0x8E54
+#define GL_TEXTURE_RENDERBUFFER_NV                                                 0x8E55
+#define GL_SAMPLER_RENDERBUFFER_NV                                                 0x8E56
+#define GL_INT_SAMPLER_RENDERBUFFER_NV                                             0x8E57
+#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV                                    0x8E58
+#define GL_MAX_SAMPLE_MASK_WORDS                                                   0x8E59
+#define GL_MAX_SAMPLE_MASK_WORDS_NV                                                0x8E59
+#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV                                     0x8E5A
+#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS                                         0x8E5A
+#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_EXT                                     0x8E5A
+#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS_OES                                     0x8E5A
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET                                       0x8E5B
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV                                    0x8E5B
+#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_OES                                   0x8E5B
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET                                       0x8E5C
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV                                    0x8E5C
+#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_OES                                   0x8E5C
+#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS                                      0x8E5D
+#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS_OES                                  0x8E5D
+#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV                           0x8E5D
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET                                       0x8E5E
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB                                   0x8E5E
+#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV                                    0x8E5E
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET                                       0x8E5F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB                                   0x8E5F
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV                                    0x8E5F
+#define GL_MAX_MESH_UNIFORM_BLOCKS_NV                                              0x8E60
+#define GL_MAX_MESH_TEXTURE_IMAGE_UNITS_NV                                         0x8E61
+#define GL_MAX_MESH_IMAGE_UNIFORMS_NV                                              0x8E62
+#define GL_MAX_MESH_UNIFORM_COMPONENTS_NV                                          0x8E63
+#define GL_MAX_MESH_ATOMIC_COUNTER_BUFFERS_NV                                      0x8E64
+#define GL_MAX_MESH_ATOMIC_COUNTERS_NV                                             0x8E65
+#define GL_MAX_MESH_SHADER_STORAGE_BLOCKS_NV                                       0x8E66
+#define GL_MAX_COMBINED_MESH_UNIFORM_COMPONENTS_NV                                 0x8E67
+#define GL_MAX_TASK_UNIFORM_BLOCKS_NV                                              0x8E68
+#define GL_MAX_TASK_TEXTURE_IMAGE_UNITS_NV                                         0x8E69
+#define GL_MAX_TASK_IMAGE_UNIFORMS_NV                                              0x8E6A
+#define GL_MAX_TASK_UNIFORM_COMPONENTS_NV                                          0x8E6B
+#define GL_MAX_TASK_ATOMIC_COUNTER_BUFFERS_NV                                      0x8E6C
+#define GL_MAX_TASK_ATOMIC_COUNTERS_NV                                             0x8E6D
+#define GL_MAX_TASK_SHADER_STORAGE_BLOCKS_NV                                       0x8E6E
+#define GL_MAX_COMBINED_TASK_UNIFORM_COMPONENTS_NV                                 0x8E6F
+#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS                                          0x8E70
+#define GL_MAX_VERTEX_STREAMS                                                      0x8E71
+#define GL_PATCH_VERTICES                                                          0x8E72
+#define GL_PATCH_VERTICES_EXT                                                      0x8E72
+#define GL_PATCH_VERTICES_OES                                                      0x8E72
+#define GL_PATCH_DEFAULT_INNER_LEVEL                                               0x8E73
+#define GL_PATCH_DEFAULT_INNER_LEVEL_EXT                                           0x8E73
+#define GL_PATCH_DEFAULT_OUTER_LEVEL                                               0x8E74
+#define GL_PATCH_DEFAULT_OUTER_LEVEL_EXT                                           0x8E74
+#define GL_TESS_CONTROL_OUTPUT_VERTICES                                            0x8E75
+#define GL_TESS_CONTROL_OUTPUT_VERTICES_EXT                                        0x8E75
+#define GL_TESS_CONTROL_OUTPUT_VERTICES_OES                                        0x8E75
+#define GL_TESS_GEN_MODE                                                           0x8E76
+#define GL_TESS_GEN_MODE_EXT                                                       0x8E76
+#define GL_TESS_GEN_MODE_OES                                                       0x8E76
+#define GL_TESS_GEN_SPACING                                                        0x8E77
+#define GL_TESS_GEN_SPACING_EXT                                                    0x8E77
+#define GL_TESS_GEN_SPACING_OES                                                    0x8E77
+#define GL_TESS_GEN_VERTEX_ORDER                                                   0x8E78
+#define GL_TESS_GEN_VERTEX_ORDER_EXT                                               0x8E78
+#define GL_TESS_GEN_VERTEX_ORDER_OES                                               0x8E78
+#define GL_TESS_GEN_POINT_MODE                                                     0x8E79
+#define GL_TESS_GEN_POINT_MODE_EXT                                                 0x8E79
+#define GL_TESS_GEN_POINT_MODE_OES                                                 0x8E79
+#define GL_ISOLINES                                                                0x8E7A
+#define GL_ISOLINES_EXT                                                            0x8E7A
+#define GL_ISOLINES_OES                                                            0x8E7A
+#define GL_FRACTIONAL_ODD                                                          0x8E7B
+#define GL_FRACTIONAL_ODD_EXT                                                      0x8E7B
+#define GL_FRACTIONAL_ODD_OES                                                      0x8E7B
+#define GL_FRACTIONAL_EVEN                                                         0x8E7C
+#define GL_FRACTIONAL_EVEN_EXT                                                     0x8E7C
+#define GL_FRACTIONAL_EVEN_OES                                                     0x8E7C
+#define GL_MAX_PATCH_VERTICES                                                      0x8E7D
+#define GL_MAX_PATCH_VERTICES_EXT                                                  0x8E7D
+#define GL_MAX_PATCH_VERTICES_OES                                                  0x8E7D
+#define GL_MAX_TESS_GEN_LEVEL                                                      0x8E7E
+#define GL_MAX_TESS_GEN_LEVEL_EXT                                                  0x8E7E
+#define GL_MAX_TESS_GEN_LEVEL_OES                                                  0x8E7E
+#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS                                     0x8E7F
+#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_EXT                                 0x8E7F
+#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS_OES                                 0x8E7F
+#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS                                  0x8E80
+#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_EXT                              0x8E80
+#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS_OES                              0x8E80
+#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS                                    0x8E81
+#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_EXT                                0x8E81
+#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS_OES                                0x8E81
+#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS                                 0x8E82
+#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_EXT                             0x8E82
+#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS_OES                             0x8E82
+#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS                                      0x8E83
+#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_EXT                                  0x8E83
+#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS_OES                                  0x8E83
+#define GL_MAX_TESS_PATCH_COMPONENTS                                               0x8E84
+#define GL_MAX_TESS_PATCH_COMPONENTS_EXT                                           0x8E84
+#define GL_MAX_TESS_PATCH_COMPONENTS_OES                                           0x8E84
+#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS                                0x8E85
+#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_EXT                            0x8E85
+#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS_OES                            0x8E85
+#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS                                   0x8E86
+#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_EXT                               0x8E86
+#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS_OES                               0x8E86
+#define GL_TESS_EVALUATION_SHADER                                                  0x8E87
+#define GL_TESS_EVALUATION_SHADER_EXT                                              0x8E87
+#define GL_TESS_EVALUATION_SHADER_OES                                              0x8E87
+#define GL_TESS_CONTROL_SHADER                                                     0x8E88
+#define GL_TESS_CONTROL_SHADER_EXT                                                 0x8E88
+#define GL_TESS_CONTROL_SHADER_OES                                                 0x8E88
+#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS                                         0x8E89
+#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_EXT                                     0x8E89
+#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS_OES                                     0x8E89
+#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS                                      0x8E8A
+#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_EXT                                  0x8E8A
+#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS_OES                                  0x8E8A
+#define GL_COMPRESSED_RGBA_BPTC_UNORM                                              0x8E8C
+#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB                                          0x8E8C
+#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT                                          0x8E8C
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM                                        0x8E8D
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB                                    0x8E8D
+#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT                                    0x8E8D
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT                                        0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB                                    0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT                                    0x8E8E
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT                                      0x8E8F
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB                                  0x8E8F
+#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT                                  0x8E8F
+#define GL_COVERAGE_COMPONENT_NV                                                   0x8ED0
+#define GL_COVERAGE_COMPONENT4_NV                                                  0x8ED1
+#define GL_COVERAGE_ATTACHMENT_NV                                                  0x8ED2
+#define GL_COVERAGE_BUFFERS_NV                                                     0x8ED3
+#define GL_COVERAGE_SAMPLES_NV                                                     0x8ED4
+#define GL_COVERAGE_ALL_FRAGMENTS_NV                                               0x8ED5
+#define GL_COVERAGE_EDGE_FRAGMENTS_NV                                              0x8ED6
+#define GL_COVERAGE_AUTOMATIC_NV                                                   0x8ED7
+#define GL_INCLUSIVE_EXT                                                           0x8F10
+#define GL_EXCLUSIVE_EXT                                                           0x8F11
+#define GL_WINDOW_RECTANGLE_EXT                                                    0x8F12
+#define GL_WINDOW_RECTANGLE_MODE_EXT                                               0x8F13
+#define GL_MAX_WINDOW_RECTANGLES_EXT                                               0x8F14
+#define GL_NUM_WINDOW_RECTANGLES_EXT                                               0x8F15
+#define GL_BUFFER_GPU_ADDRESS_NV                                                   0x8F1D
+#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV                                          0x8F1E
+#define GL_ELEMENT_ARRAY_UNIFIED_NV                                                0x8F1F
+#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV                                          0x8F20
+#define GL_VERTEX_ARRAY_ADDRESS_NV                                                 0x8F21
+#define GL_NORMAL_ARRAY_ADDRESS_NV                                                 0x8F22
+#define GL_COLOR_ARRAY_ADDRESS_NV                                                  0x8F23
+#define GL_INDEX_ARRAY_ADDRESS_NV                                                  0x8F24
+#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV                                          0x8F25
+#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV                                              0x8F26
+#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV                                        0x8F27
+#define GL_FOG_COORD_ARRAY_ADDRESS_NV                                              0x8F28
+#define GL_ELEMENT_ARRAY_ADDRESS_NV                                                0x8F29
+#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV                                           0x8F2A
+#define GL_VERTEX_ARRAY_LENGTH_NV                                                  0x8F2B
+#define GL_NORMAL_ARRAY_LENGTH_NV                                                  0x8F2C
+#define GL_COLOR_ARRAY_LENGTH_NV                                                   0x8F2D
+#define GL_INDEX_ARRAY_LENGTH_NV                                                   0x8F2E
+#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV                                           0x8F2F
+#define GL_EDGE_FLAG_ARRAY_LENGTH_NV                                               0x8F30
+#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV                                         0x8F31
+#define GL_FOG_COORD_ARRAY_LENGTH_NV                                               0x8F32
+#define GL_ELEMENT_ARRAY_LENGTH_NV                                                 0x8F33
+#define GL_GPU_ADDRESS_NV                                                          0x8F34
+#define GL_MAX_SHADER_BUFFER_ADDRESS_NV                                            0x8F35
+#define GL_COPY_READ_BUFFER                                                        0x8F36
+#define GL_COPY_READ_BUFFER_BINDING                                                0x8F36
+#define GL_COPY_READ_BUFFER_NV                                                     0x8F36
+#define GL_COPY_WRITE_BUFFER                                                       0x8F37
+#define GL_COPY_WRITE_BUFFER_BINDING                                               0x8F37
+#define GL_COPY_WRITE_BUFFER_NV                                                    0x8F37
+#define GL_MAX_IMAGE_UNITS                                                         0x8F38
+#define GL_MAX_IMAGE_UNITS_EXT                                                     0x8F38
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS                           0x8F39
+#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT                       0x8F39
+#define GL_MAX_COMBINED_SHADER_OUTPUT_RESOURCES                                    0x8F39
+#define GL_IMAGE_BINDING_NAME                                                      0x8F3A
+#define GL_IMAGE_BINDING_NAME_EXT                                                  0x8F3A
+#define GL_IMAGE_BINDING_LEVEL                                                     0x8F3B
+#define GL_IMAGE_BINDING_LEVEL_EXT                                                 0x8F3B
+#define GL_IMAGE_BINDING_LAYERED                                                   0x8F3C
+#define GL_IMAGE_BINDING_LAYERED_EXT                                               0x8F3C
+#define GL_IMAGE_BINDING_LAYER                                                     0x8F3D
+#define GL_IMAGE_BINDING_LAYER_EXT                                                 0x8F3D
+#define GL_IMAGE_BINDING_ACCESS                                                    0x8F3E
+#define GL_IMAGE_BINDING_ACCESS_EXT                                                0x8F3E
+#define GL_DRAW_INDIRECT_BUFFER                                                    0x8F3F
+#define GL_DRAW_INDIRECT_UNIFIED_NV                                                0x8F40
+#define GL_DRAW_INDIRECT_ADDRESS_NV                                                0x8F41
+#define GL_DRAW_INDIRECT_LENGTH_NV                                                 0x8F42
+#define GL_DRAW_INDIRECT_BUFFER_BINDING                                            0x8F43
+#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV                                    0x8F44
+#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV                                           0x8F45
+#define GL_DOUBLE_MAT2                                                             0x8F46
+#define GL_DOUBLE_MAT2_EXT                                                         0x8F46
+#define GL_DOUBLE_MAT3                                                             0x8F47
+#define GL_DOUBLE_MAT3_EXT                                                         0x8F47
+#define GL_DOUBLE_MAT4                                                             0x8F48
+#define GL_DOUBLE_MAT4_EXT                                                         0x8F48
+#define GL_DOUBLE_MAT2x3                                                           0x8F49
+#define GL_DOUBLE_MAT2x3_EXT                                                       0x8F49
+#define GL_DOUBLE_MAT2x4                                                           0x8F4A
+#define GL_DOUBLE_MAT2x4_EXT                                                       0x8F4A
+#define GL_DOUBLE_MAT3x2                                                           0x8F4B
+#define GL_DOUBLE_MAT3x2_EXT                                                       0x8F4B
+#define GL_DOUBLE_MAT3x4                                                           0x8F4C
+#define GL_DOUBLE_MAT3x4_EXT                                                       0x8F4C
+#define GL_DOUBLE_MAT4x2                                                           0x8F4D
+#define GL_DOUBLE_MAT4x2_EXT                                                       0x8F4D
+#define GL_DOUBLE_MAT4x3                                                           0x8F4E
+#define GL_DOUBLE_MAT4x3_EXT                                                       0x8F4E
+#define GL_VERTEX_BINDING_BUFFER                                                   0x8F4F
+#define GL_MALI_SHADER_BINARY_ARM                                                  0x8F60
+#define GL_MALI_PROGRAM_BINARY_ARM                                                 0x8F61
+#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_FAST_SIZE_EXT                            0x8F63
+#define GL_SHADER_PIXEL_LOCAL_STORAGE_EXT                                          0x8F64
+#define GL_FETCH_PER_SAMPLE_ARM                                                    0x8F65
+#define GL_FRAGMENT_SHADER_FRAMEBUFFER_FETCH_MRT_ARM                               0x8F66
+#define GL_MAX_SHADER_PIXEL_LOCAL_STORAGE_SIZE_EXT                                 0x8F67
+#define GL_TEXTURE_ASTC_DECODE_PRECISION_EXT                                       0x8F69
+#define GL_RED_SNORM                                                               0x8F90
+#define GL_RG_SNORM                                                                0x8F91
+#define GL_RGB_SNORM                                                               0x8F92
+#define GL_RGBA_SNORM                                                              0x8F93
+#define GL_R8_SNORM                                                                0x8F94
+#define GL_RG8_SNORM                                                               0x8F95
+#define GL_RGB8_SNORM                                                              0x8F96
+#define GL_RGBA8_SNORM                                                             0x8F97
+#define GL_R16_SNORM                                                               0x8F98
+#define GL_R16_SNORM_EXT                                                           0x8F98
+#define GL_RG16_SNORM                                                              0x8F99
+#define GL_RG16_SNORM_EXT                                                          0x8F99
+#define GL_RGB16_SNORM                                                             0x8F9A
+#define GL_RGB16_SNORM_EXT                                                         0x8F9A
+#define GL_RGBA16_SNORM                                                            0x8F9B
+#define GL_RGBA16_SNORM_EXT                                                        0x8F9B
+#define GL_SIGNED_NORMALIZED                                                       0x8F9C
+#define GL_PRIMITIVE_RESTART                                                       0x8F9D
+#define GL_PRIMITIVE_RESTART_INDEX                                                 0x8F9E
+#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB                               0x8F9F
+#define GL_PERFMON_GLOBAL_MODE_QCOM                                                0x8FA0
+#define GL_MAX_SHADER_SUBSAMPLED_IMAGE_UNITS_QCOM                                  0x8FA1
+#define GL_BINNING_CONTROL_HINT_QCOM                                               0x8FB0
+#define GL_CPU_OPTIMIZED_QCOM                                                      0x8FB1
+#define GL_GPU_OPTIMIZED_QCOM                                                      0x8FB2
+#define GL_RENDER_DIRECT_TO_FRAMEBUFFER_QCOM                                       0x8FB3
+#define GL_GPU_DISJOINT_EXT                                                        0x8FBB
+#define GL_SR8_EXT                                                                 0x8FBD
+#define GL_SRG8_EXT                                                                0x8FBE
+#define GL_TEXTURE_FORMAT_SRGB_OVERRIDE_EXT                                        0x8FBF
+#define GL_SHADER_BINARY_VIV                                                       0x8FC4
+#define GL_INT8_NV                                                                 0x8FE0
+#define GL_INT8_VEC2_NV                                                            0x8FE1
+#define GL_INT8_VEC3_NV                                                            0x8FE2
+#define GL_INT8_VEC4_NV                                                            0x8FE3
+#define GL_INT16_NV                                                                0x8FE4
+#define GL_INT16_VEC2_NV                                                           0x8FE5
+#define GL_INT16_VEC3_NV                                                           0x8FE6
+#define GL_INT16_VEC4_NV                                                           0x8FE7
+#define GL_INT64_VEC2_ARB                                                          0x8FE9
+#define GL_INT64_VEC2_NV                                                           0x8FE9
+#define GL_INT64_VEC3_ARB                                                          0x8FEA
+#define GL_INT64_VEC3_NV                                                           0x8FEA
+#define GL_INT64_VEC4_ARB                                                          0x8FEB
+#define GL_INT64_VEC4_NV                                                           0x8FEB
+#define GL_UNSIGNED_INT8_NV                                                        0x8FEC
+#define GL_UNSIGNED_INT8_VEC2_NV                                                   0x8FED
+#define GL_UNSIGNED_INT8_VEC3_NV                                                   0x8FEE
+#define GL_UNSIGNED_INT8_VEC4_NV                                                   0x8FEF
+#define GL_UNSIGNED_INT16_NV                                                       0x8FF0
+#define GL_UNSIGNED_INT16_VEC2_NV                                                  0x8FF1
+#define GL_UNSIGNED_INT16_VEC3_NV                                                  0x8FF2
+#define GL_UNSIGNED_INT16_VEC4_NV                                                  0x8FF3
+#define GL_UNSIGNED_INT64_VEC2_ARB                                                 0x8FF5
+#define GL_UNSIGNED_INT64_VEC2_NV                                                  0x8FF5
+#define GL_UNSIGNED_INT64_VEC3_ARB                                                 0x8FF6
+#define GL_UNSIGNED_INT64_VEC3_NV                                                  0x8FF6
+#define GL_UNSIGNED_INT64_VEC4_ARB                                                 0x8FF7
+#define GL_UNSIGNED_INT64_VEC4_NV                                                  0x8FF7
+#define GL_FLOAT16_NV                                                              0x8FF8
+#define GL_FLOAT16_VEC2_NV                                                         0x8FF9
+#define GL_FLOAT16_VEC3_NV                                                         0x8FFA
+#define GL_FLOAT16_VEC4_NV                                                         0x8FFB
+#define GL_DOUBLE_VEC2                                                             0x8FFC
+#define GL_DOUBLE_VEC2_EXT                                                         0x8FFC
+#define GL_DOUBLE_VEC3                                                             0x8FFD
+#define GL_DOUBLE_VEC3_EXT                                                         0x8FFD
+#define GL_DOUBLE_VEC4                                                             0x8FFE
+#define GL_DOUBLE_VEC4_EXT                                                         0x8FFE
+#define GL_SAMPLER_BUFFER_AMD                                                      0x9001
+#define GL_INT_SAMPLER_BUFFER_AMD                                                  0x9002
+#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD                                         0x9003
+#define GL_TESSELLATION_MODE_AMD                                                   0x9004
+#define GL_TESSELLATION_FACTOR_AMD                                                 0x9005
+#define GL_DISCRETE_AMD                                                            0x9006
+#define GL_CONTINUOUS_AMD                                                          0x9007
+#define GL_TEXTURE_CUBE_MAP_ARRAY                                                  0x9009
+#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB                                              0x9009
+#define GL_TEXTURE_CUBE_MAP_ARRAY_EXT                                              0x9009
+#define GL_TEXTURE_CUBE_MAP_ARRAY_OES                                              0x9009
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY                                          0x900A
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB                                      0x900A
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_EXT                                      0x900A
+#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_OES                                      0x900A
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY                                            0x900B
+#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB                                        0x900B
+#define GL_SAMPLER_CUBE_MAP_ARRAY                                                  0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB                                              0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_EXT                                              0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_OES                                              0x900C
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW                                           0x900D
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB                                       0x900D
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_EXT                                       0x900D
+#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_OES                                       0x900D
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY                                              0x900E
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB                                          0x900E
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_EXT                                          0x900E
+#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_OES                                          0x900E
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY                                     0x900F
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB                                 0x900F
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_EXT                                 0x900F
+#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_OES                                 0x900F
+#define GL_ALPHA_SNORM                                                             0x9010
+#define GL_LUMINANCE_SNORM                                                         0x9011
+#define GL_LUMINANCE_ALPHA_SNORM                                                   0x9012
+#define GL_INTENSITY_SNORM                                                         0x9013
+#define GL_ALPHA8_SNORM                                                            0x9014
+#define GL_LUMINANCE8_SNORM                                                        0x9015
+#define GL_LUMINANCE8_ALPHA8_SNORM                                                 0x9016
+#define GL_INTENSITY8_SNORM                                                        0x9017
+#define GL_ALPHA16_SNORM                                                           0x9018
+#define GL_LUMINANCE16_SNORM                                                       0x9019
+#define GL_LUMINANCE16_ALPHA16_SNORM                                               0x901A
+#define GL_INTENSITY16_SNORM                                                       0x901B
+#define GL_FACTOR_MIN_AMD                                                          0x901C
+#define GL_FACTOR_MAX_AMD                                                          0x901D
+#define GL_DEPTH_CLAMP_NEAR_AMD                                                    0x901E
+#define GL_DEPTH_CLAMP_FAR_AMD                                                     0x901F
+#define GL_VIDEO_BUFFER_NV                                                         0x9020
+#define GL_VIDEO_BUFFER_BINDING_NV                                                 0x9021
+#define GL_FIELD_UPPER_NV                                                          0x9022
+#define GL_FIELD_LOWER_NV                                                          0x9023
+#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV                                            0x9024
+#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV                                     0x9025
+#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV                                       0x9026
+#define GL_LAST_VIDEO_CAPTURE_STATUS_NV                                            0x9027
+#define GL_VIDEO_BUFFER_PITCH_NV                                                   0x9028
+#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV                                        0x9029
+#define GL_VIDEO_COLOR_CONVERSION_MAX_NV                                           0x902A
+#define GL_VIDEO_COLOR_CONVERSION_MIN_NV                                           0x902B
+#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV                                        0x902C
+#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV                                         0x902D
+#define GL_PARTIAL_SUCCESS_NV                                                      0x902E
+#define GL_SUCCESS_NV                                                              0x902F
+#define GL_FAILURE_NV                                                              0x9030
+#define GL_YCBYCR8_422_NV                                                          0x9031
+#define GL_YCBAYCR8A_4224_NV                                                       0x9032
+#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV                                           0x9033
+#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV                                0x9034
+#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV                                           0x9035
+#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV                                0x9036
+#define GL_Z4Y12Z4CB12Z4CR12_444_NV                                                0x9037
+#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV                                            0x9038
+#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV                                           0x9039
+#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV                                     0x903A
+#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV                                     0x903B
+#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV                                         0x903C
+#define GL_TEXTURE_COVERAGE_SAMPLES_NV                                             0x9045
+#define GL_TEXTURE_COLOR_SAMPLES_NV                                                0x9046
+#define GL_GPU_MEMORY_INFO_DEDICATED_VIDMEM_NVX                                    0x9047
+#define GL_GPU_MEMORY_INFO_TOTAL_AVAILABLE_MEMORY_NVX                              0x9048
+#define GL_GPU_MEMORY_INFO_CURRENT_AVAILABLE_VIDMEM_NVX                            0x9049
+#define GL_GPU_MEMORY_INFO_EVICTION_COUNT_NVX                                      0x904A
+#define GL_GPU_MEMORY_INFO_EVICTED_MEMORY_NVX                                      0x904B
+#define GL_IMAGE_1D                                                                0x904C
+#define GL_IMAGE_1D_EXT                                                            0x904C
+#define GL_IMAGE_2D                                                                0x904D
+#define GL_IMAGE_2D_EXT                                                            0x904D
+#define GL_IMAGE_3D                                                                0x904E
+#define GL_IMAGE_3D_EXT                                                            0x904E
+#define GL_IMAGE_2D_RECT                                                           0x904F
+#define GL_IMAGE_2D_RECT_EXT                                                       0x904F
+#define GL_IMAGE_CUBE                                                              0x9050
+#define GL_IMAGE_CUBE_EXT                                                          0x9050
+#define GL_IMAGE_BUFFER                                                            0x9051
+#define GL_IMAGE_BUFFER_EXT                                                        0x9051
+#define GL_IMAGE_BUFFER_OES                                                        0x9051
+#define GL_IMAGE_1D_ARRAY                                                          0x9052
+#define GL_IMAGE_1D_ARRAY_EXT                                                      0x9052
+#define GL_IMAGE_2D_ARRAY                                                          0x9053
+#define GL_IMAGE_2D_ARRAY_EXT                                                      0x9053
+#define GL_IMAGE_CUBE_MAP_ARRAY                                                    0x9054
+#define GL_IMAGE_CUBE_MAP_ARRAY_EXT                                                0x9054
+#define GL_IMAGE_CUBE_MAP_ARRAY_OES                                                0x9054
+#define GL_IMAGE_2D_MULTISAMPLE                                                    0x9055
+#define GL_IMAGE_2D_MULTISAMPLE_EXT                                                0x9055
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY                                              0x9056
+#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT                                          0x9056
+#define GL_INT_IMAGE_1D                                                            0x9057
+#define GL_INT_IMAGE_1D_EXT                                                        0x9057
+#define GL_INT_IMAGE_2D                                                            0x9058
+#define GL_INT_IMAGE_2D_EXT                                                        0x9058
+#define GL_INT_IMAGE_3D                                                            0x9059
+#define GL_INT_IMAGE_3D_EXT                                                        0x9059
+#define GL_INT_IMAGE_2D_RECT                                                       0x905A
+#define GL_INT_IMAGE_2D_RECT_EXT                                                   0x905A
+#define GL_INT_IMAGE_CUBE                                                          0x905B
+#define GL_INT_IMAGE_CUBE_EXT                                                      0x905B
+#define GL_INT_IMAGE_BUFFER                                                        0x905C
+#define GL_INT_IMAGE_BUFFER_EXT                                                    0x905C
+#define GL_INT_IMAGE_BUFFER_OES                                                    0x905C
+#define GL_INT_IMAGE_1D_ARRAY                                                      0x905D
+#define GL_INT_IMAGE_1D_ARRAY_EXT                                                  0x905D
+#define GL_INT_IMAGE_2D_ARRAY                                                      0x905E
+#define GL_INT_IMAGE_2D_ARRAY_EXT                                                  0x905E
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY                                                0x905F
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT                                            0x905F
+#define GL_INT_IMAGE_CUBE_MAP_ARRAY_OES                                            0x905F
+#define GL_INT_IMAGE_2D_MULTISAMPLE                                                0x9060
+#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT                                            0x9060
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY                                          0x9061
+#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT                                      0x9061
+#define GL_UNSIGNED_INT_IMAGE_1D                                                   0x9062
+#define GL_UNSIGNED_INT_IMAGE_1D_EXT                                               0x9062
+#define GL_UNSIGNED_INT_IMAGE_2D                                                   0x9063
+#define GL_UNSIGNED_INT_IMAGE_2D_EXT                                               0x9063
+#define GL_UNSIGNED_INT_IMAGE_3D                                                   0x9064
+#define GL_UNSIGNED_INT_IMAGE_3D_EXT                                               0x9064
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT                                              0x9065
+#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT                                          0x9065
+#define GL_UNSIGNED_INT_IMAGE_CUBE                                                 0x9066
+#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT                                             0x9066
+#define GL_UNSIGNED_INT_IMAGE_BUFFER                                               0x9067
+#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT                                           0x9067
+#define GL_UNSIGNED_INT_IMAGE_BUFFER_OES                                           0x9067
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY                                             0x9068
+#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT                                         0x9068
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY                                             0x9069
+#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT                                         0x9069
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY                                       0x906A
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT                                   0x906A
+#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_OES                                   0x906A
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE                                       0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT                                   0x906B
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY                                 0x906C
+#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT                             0x906C
+#define GL_MAX_IMAGE_SAMPLES                                                       0x906D
+#define GL_MAX_IMAGE_SAMPLES_EXT                                                   0x906D
+#define GL_IMAGE_BINDING_FORMAT                                                    0x906E
+#define GL_IMAGE_BINDING_FORMAT_EXT                                                0x906E
+#define GL_RGB10_A2UI                                                              0x906F
+#define GL_PATH_FORMAT_SVG_NV                                                      0x9070
+#define GL_PATH_FORMAT_PS_NV                                                       0x9071
+#define GL_STANDARD_FONT_NAME_NV                                                   0x9072
+#define GL_SYSTEM_FONT_NAME_NV                                                     0x9073
+#define GL_FILE_NAME_NV                                                            0x9074
+#define GL_PATH_STROKE_WIDTH_NV                                                    0x9075
+#define GL_PATH_END_CAPS_NV                                                        0x9076
+#define GL_PATH_INITIAL_END_CAP_NV                                                 0x9077
+#define GL_PATH_TERMINAL_END_CAP_NV                                                0x9078
+#define GL_PATH_JOIN_STYLE_NV                                                      0x9079
+#define GL_PATH_MITER_LIMIT_NV                                                     0x907A
+#define GL_PATH_DASH_CAPS_NV                                                       0x907B
+#define GL_PATH_INITIAL_DASH_CAP_NV                                                0x907C
+#define GL_PATH_TERMINAL_DASH_CAP_NV                                               0x907D
+#define GL_PATH_DASH_OFFSET_NV                                                     0x907E
+#define GL_PATH_CLIENT_LENGTH_NV                                                   0x907F
+#define GL_PATH_FILL_MODE_NV                                                       0x9080
+#define GL_PATH_FILL_MASK_NV                                                       0x9081
+#define GL_PATH_FILL_COVER_MODE_NV                                                 0x9082
+#define GL_PATH_STROKE_COVER_MODE_NV                                               0x9083
+#define GL_PATH_STROKE_MASK_NV                                                     0x9084
+#define GL_COUNT_UP_NV                                                             0x9088
+#define GL_COUNT_DOWN_NV                                                           0x9089
+#define GL_PATH_OBJECT_BOUNDING_BOX_NV                                             0x908A
+#define GL_CONVEX_HULL_NV                                                          0x908B
+#define GL_BOUNDING_BOX_NV                                                         0x908D
+#define GL_TRANSLATE_X_NV                                                          0x908E
+#define GL_TRANSLATE_Y_NV                                                          0x908F
+#define GL_TRANSLATE_2D_NV                                                         0x9090
+#define GL_TRANSLATE_3D_NV                                                         0x9091
+#define GL_AFFINE_2D_NV                                                            0x9092
+#define GL_AFFINE_3D_NV                                                            0x9094
+#define GL_TRANSPOSE_AFFINE_2D_NV                                                  0x9096
+#define GL_TRANSPOSE_AFFINE_3D_NV                                                  0x9098
+#define GL_UTF8_NV                                                                 0x909A
+#define GL_UTF16_NV                                                                0x909B
+#define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV                                       0x909C
+#define GL_PATH_COMMAND_COUNT_NV                                                   0x909D
+#define GL_PATH_COORD_COUNT_NV                                                     0x909E
+#define GL_PATH_DASH_ARRAY_COUNT_NV                                                0x909F
+#define GL_PATH_COMPUTED_LENGTH_NV                                                 0x90A0
+#define GL_PATH_FILL_BOUNDING_BOX_NV                                               0x90A1
+#define GL_PATH_STROKE_BOUNDING_BOX_NV                                             0x90A2
+#define GL_SQUARE_NV                                                               0x90A3
+#define GL_ROUND_NV                                                                0x90A4
+#define GL_TRIANGULAR_NV                                                           0x90A5
+#define GL_BEVEL_NV                                                                0x90A6
+#define GL_MITER_REVERT_NV                                                         0x90A7
+#define GL_MITER_TRUNCATE_NV                                                       0x90A8
+#define GL_SKIP_MISSING_GLYPH_NV                                                   0x90A9
+#define GL_USE_MISSING_GLYPH_NV                                                    0x90AA
+#define GL_PATH_ERROR_POSITION_NV                                                  0x90AB
+#define GL_PATH_FOG_GEN_MODE_NV                                                    0x90AC
+#define GL_ACCUM_ADJACENT_PAIRS_NV                                                 0x90AD
+#define GL_ADJACENT_PAIRS_NV                                                       0x90AE
+#define GL_FIRST_TO_REST_NV                                                        0x90AF
+#define GL_PATH_GEN_MODE_NV                                                        0x90B0
+#define GL_PATH_GEN_COEFF_NV                                                       0x90B1
+#define GL_PATH_GEN_COLOR_FORMAT_NV                                                0x90B2
+#define GL_PATH_GEN_COMPONENTS_NV                                                  0x90B3
+#define GL_PATH_DASH_OFFSET_RESET_NV                                               0x90B4
+#define GL_MOVE_TO_RESETS_NV                                                       0x90B5
+#define GL_MOVE_TO_CONTINUES_NV                                                    0x90B6
+#define GL_PATH_STENCIL_FUNC_NV                                                    0x90B7
+#define GL_PATH_STENCIL_REF_NV                                                     0x90B8
+#define GL_PATH_STENCIL_VALUE_MASK_NV                                              0x90B9
+#define GL_SCALED_RESOLVE_FASTEST_EXT                                              0x90BA
+#define GL_SCALED_RESOLVE_NICEST_EXT                                               0x90BB
+#define GL_MIN_MAP_BUFFER_ALIGNMENT                                                0x90BC
+#define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV                                     0x90BD
+#define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV                                      0x90BE
+#define GL_PATH_COVER_DEPTH_FUNC_NV                                                0x90BF
+#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE                                         0x90C7
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE                                      0x90C8
+#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS                                     0x90C9
+#define GL_MAX_VERTEX_IMAGE_UNIFORMS                                               0x90CA
+#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS                                         0x90CB
+#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_EXT                                     0x90CB
+#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS_OES                                     0x90CB
+#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS                                      0x90CC
+#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_EXT                                  0x90CC
+#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS_OES                                  0x90CC
+#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS                                             0x90CD
+#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_EXT                                         0x90CD
+#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS_OES                                         0x90CD
+#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS                                             0x90CE
+#define GL_MAX_COMBINED_IMAGE_UNIFORMS                                             0x90CF
+#define GL_MAX_DEEP_3D_TEXTURE_WIDTH_HEIGHT_NV                                     0x90D0
+#define GL_MAX_DEEP_3D_TEXTURE_DEPTH_NV                                            0x90D1
+#define GL_SHADER_STORAGE_BUFFER                                                   0x90D2
+#define GL_SHADER_STORAGE_BUFFER_BINDING                                           0x90D3
+#define GL_SHADER_STORAGE_BUFFER_START                                             0x90D4
+#define GL_SHADER_STORAGE_BUFFER_SIZE                                              0x90D5
+#define GL_MAX_VERTEX_SHADER_STORAGE_BLOCKS                                        0x90D6
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS                                      0x90D7
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_EXT                                  0x90D7
+#define GL_MAX_GEOMETRY_SHADER_STORAGE_BLOCKS_OES                                  0x90D7
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS                                  0x90D8
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_EXT                              0x90D8
+#define GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS_OES                              0x90D8
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS                               0x90D9
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_EXT                           0x90D9
+#define GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS_OES                           0x90D9
+#define GL_MAX_FRAGMENT_SHADER_STORAGE_BLOCKS                                      0x90DA
+#define GL_MAX_COMPUTE_SHADER_STORAGE_BLOCKS                                       0x90DB
+#define GL_MAX_COMBINED_SHADER_STORAGE_BLOCKS                                      0x90DC
+#define GL_MAX_SHADER_STORAGE_BUFFER_BINDINGS                                      0x90DD
+#define GL_MAX_SHADER_STORAGE_BLOCK_SIZE                                           0x90DE
+#define GL_SHADER_STORAGE_BUFFER_OFFSET_ALIGNMENT                                  0x90DF
+#define GL_SYNC_X11_FENCE_EXT                                                      0x90E1
+#define GL_DEPTH_STENCIL_TEXTURE_MODE                                              0x90EA
+#define GL_MAX_COMPUTE_FIXED_GROUP_INVOCATIONS_ARB                                 0x90EB
+#define GL_MAX_COMPUTE_WORK_GROUP_INVOCATIONS                                      0x90EB
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_COMPUTE_SHADER                              0x90EC
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_COMPUTE_SHADER                      0x90ED
+#define GL_DISPATCH_INDIRECT_BUFFER                                                0x90EE
+#define GL_DISPATCH_INDIRECT_BUFFER_BINDING                                        0x90EF
+#define GL_COLOR_ATTACHMENT_EXT                                                    0x90F0
+#define GL_MULTIVIEW_EXT                                                           0x90F1
+#define GL_MAX_MULTIVIEW_BUFFERS_EXT                                               0x90F2
+#define GL_CONTEXT_ROBUST_ACCESS                                                   0x90F3
+#define GL_CONTEXT_ROBUST_ACCESS_EXT                                               0x90F3
+#define GL_CONTEXT_ROBUST_ACCESS_KHR                                               0x90F3
+#define GL_COMPUTE_PROGRAM_NV                                                      0x90FB
+#define GL_COMPUTE_PROGRAM_PARAMETER_BUFFER_NV                                     0x90FC
+#define GL_TEXTURE_2D_MULTISAMPLE                                                  0x9100
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE                                            0x9101
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY                                            0x9102
+#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY_OES                                        0x9102
+#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY                                      0x9103
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE                                          0x9104
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY                                    0x9105
+#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY_OES                                0x9105
+#define GL_TEXTURE_SAMPLES                                                         0x9106
+#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS                                          0x9107
+#define GL_SAMPLER_2D_MULTISAMPLE                                                  0x9108
+#define GL_INT_SAMPLER_2D_MULTISAMPLE                                              0x9109
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE                                     0x910A
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY                                            0x910B
+#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY_OES                                        0x910B
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY                                        0x910C
+#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES                                    0x910C
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY                               0x910D
+#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY_OES                           0x910D
+#define GL_MAX_COLOR_TEXTURE_SAMPLES                                               0x910E
+#define GL_MAX_DEPTH_TEXTURE_SAMPLES                                               0x910F
+#define GL_MAX_INTEGER_SAMPLES                                                     0x9110
+#define GL_MAX_SERVER_WAIT_TIMEOUT                                                 0x9111
+#define GL_MAX_SERVER_WAIT_TIMEOUT_APPLE                                           0x9111
+#define GL_OBJECT_TYPE                                                             0x9112
+#define GL_OBJECT_TYPE_APPLE                                                       0x9112
+#define GL_SYNC_CONDITION                                                          0x9113
+#define GL_SYNC_CONDITION_APPLE                                                    0x9113
+#define GL_SYNC_STATUS                                                             0x9114
+#define GL_SYNC_STATUS_APPLE                                                       0x9114
+#define GL_SYNC_FLAGS                                                              0x9115
+#define GL_SYNC_FLAGS_APPLE                                                        0x9115
+#define GL_SYNC_FENCE                                                              0x9116
+#define GL_SYNC_FENCE_APPLE                                                        0x9116
+#define GL_SYNC_GPU_COMMANDS_COMPLETE                                              0x9117
+#define GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE                                        0x9117
+#define GL_UNSIGNALED                                                              0x9118
+#define GL_UNSIGNALED_APPLE                                                        0x9118
+#define GL_SIGNALED                                                                0x9119
+#define GL_SIGNALED_APPLE                                                          0x9119
+#define GL_ALREADY_SIGNALED                                                        0x911A
+#define GL_ALREADY_SIGNALED_APPLE                                                  0x911A
+#define GL_TIMEOUT_EXPIRED                                                         0x911B
+#define GL_TIMEOUT_EXPIRED_APPLE                                                   0x911B
+#define GL_CONDITION_SATISFIED                                                     0x911C
+#define GL_CONDITION_SATISFIED_APPLE                                               0x911C
+#define GL_WAIT_FAILED                                                             0x911D
+#define GL_WAIT_FAILED_APPLE                                                       0x911D
+#define GL_BUFFER_ACCESS_FLAGS                                                     0x911F
+#define GL_BUFFER_MAP_LENGTH                                                       0x9120
+#define GL_BUFFER_MAP_OFFSET                                                       0x9121
+#define GL_MAX_VERTEX_OUTPUT_COMPONENTS                                            0x9122
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS                                           0x9123
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_EXT                                       0x9123
+#define GL_MAX_GEOMETRY_INPUT_COMPONENTS_OES                                       0x9123
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS                                          0x9124
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_EXT                                      0x9124
+#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS_OES                                      0x9124
+#define GL_MAX_FRAGMENT_INPUT_COMPONENTS                                           0x9125
+#define GL_CONTEXT_PROFILE_MASK                                                    0x9126
+#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH                                           0x9127
+#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT                                          0x9128
+#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH                                           0x9129
+#define GL_UNPACK_COMPRESSED_BLOCK_SIZE                                            0x912A
+#define GL_PACK_COMPRESSED_BLOCK_WIDTH                                             0x912B
+#define GL_PACK_COMPRESSED_BLOCK_HEIGHT                                            0x912C
+#define GL_PACK_COMPRESSED_BLOCK_DEPTH                                             0x912D
+#define GL_PACK_COMPRESSED_BLOCK_SIZE                                              0x912E
+#define GL_TEXTURE_IMMUTABLE_FORMAT                                                0x912F
+#define GL_TEXTURE_IMMUTABLE_FORMAT_EXT                                            0x912F
+#define GL_SGX_PROGRAM_BINARY_IMG                                                  0x9130
+#define GL_RENDERBUFFER_SAMPLES_IMG                                                0x9133
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_IMG                                  0x9134
+#define GL_MAX_SAMPLES_IMG                                                         0x9135
+#define GL_TEXTURE_SAMPLES_IMG                                                     0x9136
+#define GL_COMPRESSED_RGBA_PVRTC_2BPPV2_IMG                                        0x9137
+#define GL_COMPRESSED_RGBA_PVRTC_4BPPV2_IMG                                        0x9138
+#define GL_CUBIC_IMG                                                               0x9139
+#define GL_CUBIC_MIPMAP_NEAREST_IMG                                                0x913A
+#define GL_CUBIC_MIPMAP_LINEAR_IMG                                                 0x913B
+#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_AND_DOWNSAMPLE_IMG                   0x913C
+#define GL_NUM_DOWNSAMPLE_SCALES_IMG                                               0x913D
+#define GL_DOWNSAMPLE_SCALES_IMG                                                   0x913E
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_SCALE_IMG                                0x913F
+#define GL_MAX_DEBUG_MESSAGE_LENGTH                                                0x9143
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_AMD                                            0x9143
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB                                            0x9143
+#define GL_MAX_DEBUG_MESSAGE_LENGTH_KHR                                            0x9143
+#define GL_MAX_DEBUG_LOGGED_MESSAGES                                               0x9144
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD                                           0x9144
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB                                           0x9144
+#define GL_MAX_DEBUG_LOGGED_MESSAGES_KHR                                           0x9144
+#define GL_DEBUG_LOGGED_MESSAGES                                                   0x9145
+#define GL_DEBUG_LOGGED_MESSAGES_AMD                                               0x9145
+#define GL_DEBUG_LOGGED_MESSAGES_ARB                                               0x9145
+#define GL_DEBUG_LOGGED_MESSAGES_KHR                                               0x9145
+#define GL_DEBUG_SEVERITY_HIGH                                                     0x9146
+#define GL_DEBUG_SEVERITY_HIGH_AMD                                                 0x9146
+#define GL_DEBUG_SEVERITY_HIGH_ARB                                                 0x9146
+#define GL_DEBUG_SEVERITY_HIGH_KHR                                                 0x9146
+#define GL_DEBUG_SEVERITY_MEDIUM                                                   0x9147
+#define GL_DEBUG_SEVERITY_MEDIUM_AMD                                               0x9147
+#define GL_DEBUG_SEVERITY_MEDIUM_ARB                                               0x9147
+#define GL_DEBUG_SEVERITY_MEDIUM_KHR                                               0x9147
+#define GL_DEBUG_SEVERITY_LOW                                                      0x9148
+#define GL_DEBUG_SEVERITY_LOW_AMD                                                  0x9148
+#define GL_DEBUG_SEVERITY_LOW_ARB                                                  0x9148
+#define GL_DEBUG_SEVERITY_LOW_KHR                                                  0x9148
+#define GL_DEBUG_CATEGORY_API_ERROR_AMD                                            0x9149
+#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD                                        0x914A
+#define GL_DEBUG_CATEGORY_DEPRECATION_AMD                                          0x914B
+#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD                                   0x914C
+#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD                                          0x914D
+#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD                                      0x914E
+#define GL_DEBUG_CATEGORY_APPLICATION_AMD                                          0x914F
+#define GL_DEBUG_CATEGORY_OTHER_AMD                                                0x9150
+#define GL_BUFFER_OBJECT_EXT                                                       0x9151
+#define GL_DATA_BUFFER_AMD                                                         0x9151
+#define GL_PERFORMANCE_MONITOR_AMD                                                 0x9152
+#define GL_QUERY_OBJECT_AMD                                                        0x9153
+#define GL_QUERY_OBJECT_EXT                                                        0x9153
+#define GL_VERTEX_ARRAY_OBJECT_AMD                                                 0x9154
+#define GL_VERTEX_ARRAY_OBJECT_EXT                                                 0x9154
+#define GL_SAMPLER_OBJECT_AMD                                                      0x9155
+#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD                                      0x9160
+#define GL_QUERY_BUFFER                                                            0x9192
+#define GL_QUERY_BUFFER_AMD                                                        0x9192
+#define GL_QUERY_BUFFER_BINDING                                                    0x9193
+#define GL_QUERY_BUFFER_BINDING_AMD                                                0x9193
+#define GL_QUERY_RESULT_NO_WAIT                                                    0x9194
+#define GL_QUERY_RESULT_NO_WAIT_AMD                                                0x9194
+#define GL_VIRTUAL_PAGE_SIZE_X_AMD                                                 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_X_ARB                                                 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_X_EXT                                                 0x9195
+#define GL_VIRTUAL_PAGE_SIZE_Y_AMD                                                 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Y_ARB                                                 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Y_EXT                                                 0x9196
+#define GL_VIRTUAL_PAGE_SIZE_Z_AMD                                                 0x9197
+#define GL_VIRTUAL_PAGE_SIZE_Z_ARB                                                 0x9197
+#define GL_VIRTUAL_PAGE_SIZE_Z_EXT                                                 0x9197
+#define GL_MAX_SPARSE_TEXTURE_SIZE_AMD                                             0x9198
+#define GL_MAX_SPARSE_TEXTURE_SIZE_ARB                                             0x9198
+#define GL_MAX_SPARSE_TEXTURE_SIZE_EXT                                             0x9198
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_AMD                                          0x9199
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_ARB                                          0x9199
+#define GL_MAX_SPARSE_3D_TEXTURE_SIZE_EXT                                          0x9199
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS                                         0x919A
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_ARB                                     0x919A
+#define GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS_EXT                                     0x919A
+#define GL_MIN_SPARSE_LEVEL_AMD                                                    0x919B
+#define GL_MIN_LOD_WARNING_AMD                                                     0x919C
+#define GL_TEXTURE_BUFFER_OFFSET                                                   0x919D
+#define GL_TEXTURE_BUFFER_OFFSET_EXT                                               0x919D
+#define GL_TEXTURE_BUFFER_OFFSET_OES                                               0x919D
+#define GL_TEXTURE_BUFFER_SIZE                                                     0x919E
+#define GL_TEXTURE_BUFFER_SIZE_EXT                                                 0x919E
+#define GL_TEXTURE_BUFFER_SIZE_OES                                                 0x919E
+#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT                                         0x919F
+#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_EXT                                     0x919F
+#define GL_TEXTURE_BUFFER_OFFSET_ALIGNMENT_OES                                     0x919F
+#define GL_STREAM_RASTERIZATION_AMD                                                0x91A0
+#define GL_VERTEX_ELEMENT_SWIZZLE_AMD                                              0x91A4
+#define GL_VERTEX_ID_SWIZZLE_AMD                                                   0x91A5
+#define GL_TEXTURE_SPARSE_ARB                                                      0x91A6
+#define GL_TEXTURE_SPARSE_EXT                                                      0x91A6
+#define GL_VIRTUAL_PAGE_SIZE_INDEX_ARB                                             0x91A7
+#define GL_VIRTUAL_PAGE_SIZE_INDEX_EXT                                             0x91A7
+#define GL_NUM_VIRTUAL_PAGE_SIZES_ARB                                              0x91A8
+#define GL_NUM_VIRTUAL_PAGE_SIZES_EXT                                              0x91A8
+#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_ARB                              0x91A9
+#define GL_SPARSE_TEXTURE_FULL_ARRAY_CUBE_MIPMAPS_EXT                              0x91A9
+#define GL_NUM_SPARSE_LEVELS_ARB                                                   0x91AA
+#define GL_NUM_SPARSE_LEVELS_EXT                                                   0x91AA
+#define GL_PIXELS_PER_SAMPLE_PATTERN_X_AMD                                         0x91AE
+#define GL_PIXELS_PER_SAMPLE_PATTERN_Y_AMD                                         0x91AF
+#define GL_MAX_SHADER_COMPILER_THREADS_ARB                                         0x91B0
+#define GL_MAX_SHADER_COMPILER_THREADS_KHR                                         0x91B0
+#define GL_COMPLETION_STATUS_ARB                                                   0x91B1
+#define GL_COMPLETION_STATUS_KHR                                                   0x91B1
+#define GL_RENDERBUFFER_STORAGE_SAMPLES_AMD                                        0x91B2
+#define GL_MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD                                       0x91B3
+#define GL_MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD                               0x91B4
+#define GL_MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD                               0x91B5
+#define GL_NUM_SUPPORTED_MULTISAMPLE_MODES_AMD                                     0x91B6
+#define GL_SUPPORTED_MULTISAMPLE_MODES_AMD                                         0x91B7
+#define GL_COMPUTE_SHADER                                                          0x91B9
+#define GL_MAX_COMPUTE_UNIFORM_BLOCKS                                              0x91BB
+#define GL_MAX_COMPUTE_TEXTURE_IMAGE_UNITS                                         0x91BC
+#define GL_MAX_COMPUTE_IMAGE_UNIFORMS                                              0x91BD
+#define GL_MAX_COMPUTE_WORK_GROUP_COUNT                                            0x91BE
+#define GL_MAX_COMPUTE_FIXED_GROUP_SIZE_ARB                                        0x91BF
+#define GL_MAX_COMPUTE_WORK_GROUP_SIZE                                             0x91BF
+#define GL_FLOAT16_MAT2_AMD                                                        0x91C5
+#define GL_FLOAT16_MAT3_AMD                                                        0x91C6
+#define GL_FLOAT16_MAT4_AMD                                                        0x91C7
+#define GL_FLOAT16_MAT2x3_AMD                                                      0x91C8
+#define GL_FLOAT16_MAT2x4_AMD                                                      0x91C9
+#define GL_FLOAT16_MAT3x2_AMD                                                      0x91CA
+#define GL_FLOAT16_MAT3x4_AMD                                                      0x91CB
+#define GL_FLOAT16_MAT4x2_AMD                                                      0x91CC
+#define GL_FLOAT16_MAT4x3_AMD                                                      0x91CD
+#define GL_UNPACK_FLIP_Y_WEBGL                                                     0x9240
+#define GL_UNPACK_PREMULTIPLY_ALPHA_WEBGL                                          0x9241
+#define GL_CONTEXT_LOST_WEBGL                                                      0x9242
+#define GL_UNPACK_COLORSPACE_CONVERSION_WEBGL                                      0x9243
+#define GL_BROWSER_DEFAULT_WEBGL                                                   0x9244
+#define GL_SHADER_BINARY_DMP                                                       0x9250
+#define GL_SMAPHS30_PROGRAM_BINARY_DMP                                             0x9251
+#define GL_SMAPHS_PROGRAM_BINARY_DMP                                               0x9252
+#define GL_DMP_PROGRAM_BINARY_DMP                                                  0x9253
+#define GL_GCCSO_SHADER_BINARY_FJ                                                  0x9260
+#define GL_COMPRESSED_R11_EAC                                                      0x9270
+#define GL_COMPRESSED_R11_EAC_OES                                                  0x9270
+#define GL_COMPRESSED_SIGNED_R11_EAC                                               0x9271
+#define GL_COMPRESSED_SIGNED_R11_EAC_OES                                           0x9271
+#define GL_COMPRESSED_RG11_EAC                                                     0x9272
+#define GL_COMPRESSED_RG11_EAC_OES                                                 0x9272
+#define GL_COMPRESSED_SIGNED_RG11_EAC                                              0x9273
+#define GL_COMPRESSED_SIGNED_RG11_EAC_OES                                          0x9273
+#define GL_COMPRESSED_RGB8_ETC2                                                    0x9274
+#define GL_COMPRESSED_RGB8_ETC2_OES                                                0x9274
+#define GL_COMPRESSED_SRGB8_ETC2                                                   0x9275
+#define GL_COMPRESSED_SRGB8_ETC2_OES                                               0x9275
+#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2                                0x9276
+#define GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES                            0x9276
+#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2                               0x9277
+#define GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_OES                           0x9277
+#define GL_COMPRESSED_RGBA8_ETC2_EAC                                               0x9278
+#define GL_COMPRESSED_RGBA8_ETC2_EAC_OES                                           0x9278
+#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC                                        0x9279
+#define GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_OES                                    0x9279
+#define GL_BLEND_PREMULTIPLIED_SRC_NV                                              0x9280
+#define GL_BLEND_OVERLAP_NV                                                        0x9281
+#define GL_UNCORRELATED_NV                                                         0x9282
+#define GL_DISJOINT_NV                                                             0x9283
+#define GL_CONJOINT_NV                                                             0x9284
+#define GL_BLEND_ADVANCED_COHERENT_KHR                                             0x9285
+#define GL_BLEND_ADVANCED_COHERENT_NV                                              0x9285
+#define GL_SRC_NV                                                                  0x9286
+#define GL_DST_NV                                                                  0x9287
+#define GL_SRC_OVER_NV                                                             0x9288
+#define GL_DST_OVER_NV                                                             0x9289
+#define GL_SRC_IN_NV                                                               0x928A
+#define GL_DST_IN_NV                                                               0x928B
+#define GL_SRC_OUT_NV                                                              0x928C
+#define GL_DST_OUT_NV                                                              0x928D
+#define GL_SRC_ATOP_NV                                                             0x928E
+#define GL_DST_ATOP_NV                                                             0x928F
+#define GL_PLUS_NV                                                                 0x9291
+#define GL_PLUS_DARKER_NV                                                          0x9292
+#define GL_MULTIPLY                                                                0x9294
+#define GL_MULTIPLY_KHR                                                            0x9294
+#define GL_MULTIPLY_NV                                                             0x9294
+#define GL_SCREEN                                                                  0x9295
+#define GL_SCREEN_KHR                                                              0x9295
+#define GL_SCREEN_NV                                                               0x9295
+#define GL_OVERLAY                                                                 0x9296
+#define GL_OVERLAY_KHR                                                             0x9296
+#define GL_OVERLAY_NV                                                              0x9296
+#define GL_DARKEN                                                                  0x9297
+#define GL_DARKEN_KHR                                                              0x9297
+#define GL_DARKEN_NV                                                               0x9297
+#define GL_LIGHTEN                                                                 0x9298
+#define GL_LIGHTEN_KHR                                                             0x9298
+#define GL_LIGHTEN_NV                                                              0x9298
+#define GL_COLORDODGE                                                              0x9299
+#define GL_COLORDODGE_KHR                                                          0x9299
+#define GL_COLORDODGE_NV                                                           0x9299
+#define GL_COLORBURN                                                               0x929A
+#define GL_COLORBURN_KHR                                                           0x929A
+#define GL_COLORBURN_NV                                                            0x929A
+#define GL_HARDLIGHT                                                               0x929B
+#define GL_HARDLIGHT_KHR                                                           0x929B
+#define GL_HARDLIGHT_NV                                                            0x929B
+#define GL_SOFTLIGHT                                                               0x929C
+#define GL_SOFTLIGHT_KHR                                                           0x929C
+#define GL_SOFTLIGHT_NV                                                            0x929C
+#define GL_DIFFERENCE                                                              0x929E
+#define GL_DIFFERENCE_KHR                                                          0x929E
+#define GL_DIFFERENCE_NV                                                           0x929E
+#define GL_MINUS_NV                                                                0x929F
+#define GL_EXCLUSION                                                               0x92A0
+#define GL_EXCLUSION_KHR                                                           0x92A0
+#define GL_EXCLUSION_NV                                                            0x92A0
+#define GL_CONTRAST_NV                                                             0x92A1
+#define GL_INVERT_RGB_NV                                                           0x92A3
+#define GL_LINEARDODGE_NV                                                          0x92A4
+#define GL_LINEARBURN_NV                                                           0x92A5
+#define GL_VIVIDLIGHT_NV                                                           0x92A6
+#define GL_LINEARLIGHT_NV                                                          0x92A7
+#define GL_PINLIGHT_NV                                                             0x92A8
+#define GL_HARDMIX_NV                                                              0x92A9
+#define GL_HSL_HUE                                                                 0x92AD
+#define GL_HSL_HUE_KHR                                                             0x92AD
+#define GL_HSL_HUE_NV                                                              0x92AD
+#define GL_HSL_SATURATION                                                          0x92AE
+#define GL_HSL_SATURATION_KHR                                                      0x92AE
+#define GL_HSL_SATURATION_NV                                                       0x92AE
+#define GL_HSL_COLOR                                                               0x92AF
+#define GL_HSL_COLOR_KHR                                                           0x92AF
+#define GL_HSL_COLOR_NV                                                            0x92AF
+#define GL_HSL_LUMINOSITY                                                          0x92B0
+#define GL_HSL_LUMINOSITY_KHR                                                      0x92B0
+#define GL_HSL_LUMINOSITY_NV                                                       0x92B0
+#define GL_PLUS_CLAMPED_NV                                                         0x92B1
+#define GL_PLUS_CLAMPED_ALPHA_NV                                                   0x92B2
+#define GL_MINUS_CLAMPED_NV                                                        0x92B3
+#define GL_INVERT_OVG_NV                                                           0x92B4
+#define GL_MAX_LGPU_GPUS_NVX                                                       0x92BA
+#define GL_MULTICAST_GPUS_NV                                                       0x92BA
+#define GL_PURGED_CONTEXT_RESET_NV                                                 0x92BB
+#define GL_PRIMITIVE_BOUNDING_BOX                                                  0x92BE
+#define GL_PRIMITIVE_BOUNDING_BOX_ARB                                              0x92BE
+#define GL_PRIMITIVE_BOUNDING_BOX_EXT                                              0x92BE
+#define GL_PRIMITIVE_BOUNDING_BOX_OES                                              0x92BE
+#define GL_ALPHA_TO_COVERAGE_DITHER_MODE_NV                                        0x92BF
+#define GL_ATOMIC_COUNTER_BUFFER                                                   0x92C0
+#define GL_ATOMIC_COUNTER_BUFFER_BINDING                                           0x92C1
+#define GL_ATOMIC_COUNTER_BUFFER_START                                             0x92C2
+#define GL_ATOMIC_COUNTER_BUFFER_SIZE                                              0x92C3
+#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE                                         0x92C4
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS                            0x92C5
+#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES                     0x92C6
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER                       0x92C7
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER                 0x92C8
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER              0x92C9
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER                     0x92CA
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER                     0x92CB
+#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS                                       0x92CC
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS                                 0x92CD
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_EXT                             0x92CD
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS_OES                             0x92CD
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS                              0x92CE
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_EXT                          0x92CE
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS_OES                          0x92CE
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS                                     0x92CF
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_EXT                                 0x92CF
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS_OES                                 0x92CF
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS                                     0x92D0
+#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS                                     0x92D1
+#define GL_MAX_VERTEX_ATOMIC_COUNTERS                                              0x92D2
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS                                        0x92D3
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_EXT                                    0x92D3
+#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS_OES                                    0x92D3
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS                                     0x92D4
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_EXT                                 0x92D4
+#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS_OES                                 0x92D4
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS                                            0x92D5
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_EXT                                        0x92D5
+#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS_OES                                        0x92D5
+#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS                                            0x92D6
+#define GL_MAX_COMBINED_ATOMIC_COUNTERS                                            0x92D7
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE                                          0x92D8
+#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS                                           0x92D9
+#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX                                     0x92DA
+#define GL_UNSIGNED_INT_ATOMIC_COUNTER                                             0x92DB
+#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS                                      0x92DC
+#define GL_FRAGMENT_COVERAGE_TO_COLOR_NV                                           0x92DD
+#define GL_FRAGMENT_COVERAGE_COLOR_NV                                              0x92DE
+#define GL_MESH_OUTPUT_PER_VERTEX_GRANULARITY_NV                                   0x92DF
+#define GL_DEBUG_OUTPUT                                                            0x92E0
+#define GL_DEBUG_OUTPUT_KHR                                                        0x92E0
+#define GL_UNIFORM                                                                 0x92E1
+#define GL_UNIFORM_BLOCK                                                           0x92E2
+#define GL_PROGRAM_INPUT                                                           0x92E3
+#define GL_PROGRAM_OUTPUT                                                          0x92E4
+#define GL_BUFFER_VARIABLE                                                         0x92E5
+#define GL_SHADER_STORAGE_BLOCK                                                    0x92E6
+#define GL_IS_PER_PATCH                                                            0x92E7
+#define GL_IS_PER_PATCH_EXT                                                        0x92E7
+#define GL_IS_PER_PATCH_OES                                                        0x92E7
+#define GL_VERTEX_SUBROUTINE                                                       0x92E8
+#define GL_TESS_CONTROL_SUBROUTINE                                                 0x92E9
+#define GL_TESS_EVALUATION_SUBROUTINE                                              0x92EA
+#define GL_GEOMETRY_SUBROUTINE                                                     0x92EB
+#define GL_FRAGMENT_SUBROUTINE                                                     0x92EC
+#define GL_COMPUTE_SUBROUTINE                                                      0x92ED
+#define GL_VERTEX_SUBROUTINE_UNIFORM                                               0x92EE
+#define GL_TESS_CONTROL_SUBROUTINE_UNIFORM                                         0x92EF
+#define GL_TESS_EVALUATION_SUBROUTINE_UNIFORM                                      0x92F0
+#define GL_GEOMETRY_SUBROUTINE_UNIFORM                                             0x92F1
+#define GL_FRAGMENT_SUBROUTINE_UNIFORM                                             0x92F2
+#define GL_COMPUTE_SUBROUTINE_UNIFORM                                              0x92F3
+#define GL_TRANSFORM_FEEDBACK_VARYING                                              0x92F4
+#define GL_ACTIVE_RESOURCES                                                        0x92F5
+#define GL_MAX_NAME_LENGTH                                                         0x92F6
+#define GL_MAX_NUM_ACTIVE_VARIABLES                                                0x92F7
+#define GL_MAX_NUM_COMPATIBLE_SUBROUTINES                                          0x92F8
+#define GL_NAME_LENGTH                                                             0x92F9
+#define GL_TYPE                                                                    0x92FA
+#define GL_ARRAY_SIZE                                                              0x92FB
+#define GL_OFFSET                                                                  0x92FC
+#define GL_BLOCK_INDEX                                                             0x92FD
+#define GL_ARRAY_STRIDE                                                            0x92FE
+#define GL_MATRIX_STRIDE                                                           0x92FF
+#define GL_IS_ROW_MAJOR                                                            0x9300
+#define GL_ATOMIC_COUNTER_BUFFER_INDEX                                             0x9301
+#define GL_BUFFER_BINDING                                                          0x9302
+#define GL_BUFFER_DATA_SIZE                                                        0x9303
+#define GL_NUM_ACTIVE_VARIABLES                                                    0x9304
+#define GL_ACTIVE_VARIABLES                                                        0x9305
+#define GL_REFERENCED_BY_VERTEX_SHADER                                             0x9306
+#define GL_REFERENCED_BY_TESS_CONTROL_SHADER                                       0x9307
+#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_EXT                                   0x9307
+#define GL_REFERENCED_BY_TESS_CONTROL_SHADER_OES                                   0x9307
+#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER                                    0x9308
+#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_EXT                                0x9308
+#define GL_REFERENCED_BY_TESS_EVALUATION_SHADER_OES                                0x9308
+#define GL_REFERENCED_BY_GEOMETRY_SHADER                                           0x9309
+#define GL_REFERENCED_BY_GEOMETRY_SHADER_EXT                                       0x9309
+#define GL_REFERENCED_BY_GEOMETRY_SHADER_OES                                       0x9309
+#define GL_REFERENCED_BY_FRAGMENT_SHADER                                           0x930A
+#define GL_REFERENCED_BY_COMPUTE_SHADER                                            0x930B
+#define GL_TOP_LEVEL_ARRAY_SIZE                                                    0x930C
+#define GL_TOP_LEVEL_ARRAY_STRIDE                                                  0x930D
+#define GL_LOCATION                                                                0x930E
+#define GL_LOCATION_INDEX                                                          0x930F
+#define GL_LOCATION_INDEX_EXT                                                      0x930F
+#define GL_FRAMEBUFFER_DEFAULT_WIDTH                                               0x9310
+#define GL_FRAMEBUFFER_DEFAULT_HEIGHT                                              0x9311
+#define GL_FRAMEBUFFER_DEFAULT_LAYERS                                              0x9312
+#define GL_FRAMEBUFFER_DEFAULT_LAYERS_EXT                                          0x9312
+#define GL_FRAMEBUFFER_DEFAULT_LAYERS_OES                                          0x9312
+#define GL_FRAMEBUFFER_DEFAULT_SAMPLES                                             0x9313
+#define GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS                              0x9314
+#define GL_MAX_FRAMEBUFFER_WIDTH                                                   0x9315
+#define GL_MAX_FRAMEBUFFER_HEIGHT                                                  0x9316
+#define GL_MAX_FRAMEBUFFER_LAYERS                                                  0x9317
+#define GL_MAX_FRAMEBUFFER_LAYERS_EXT                                              0x9317
+#define GL_MAX_FRAMEBUFFER_LAYERS_OES                                              0x9317
+#define GL_MAX_FRAMEBUFFER_SAMPLES                                                 0x9318
+#define GL_RASTER_MULTISAMPLE_EXT                                                  0x9327
+#define GL_RASTER_SAMPLES_EXT                                                      0x9328
+#define GL_MAX_RASTER_SAMPLES_EXT                                                  0x9329
+#define GL_RASTER_FIXED_SAMPLE_LOCATIONS_EXT                                       0x932A
+#define GL_MULTISAMPLE_RASTERIZATION_ALLOWED_EXT                                   0x932B
+#define GL_EFFECTIVE_RASTER_SAMPLES_EXT                                            0x932C
+#define GL_DEPTH_SAMPLES_NV                                                        0x932D
+#define GL_STENCIL_SAMPLES_NV                                                      0x932E
+#define GL_MIXED_DEPTH_SAMPLES_SUPPORTED_NV                                        0x932F
+#define GL_MIXED_STENCIL_SAMPLES_SUPPORTED_NV                                      0x9330
+#define GL_COVERAGE_MODULATION_TABLE_NV                                            0x9331
+#define GL_COVERAGE_MODULATION_NV                                                  0x9332
+#define GL_COVERAGE_MODULATION_TABLE_SIZE_NV                                       0x9333
+#define GL_WARP_SIZE_NV                                                            0x9339
+#define GL_WARPS_PER_SM_NV                                                         0x933A
+#define GL_SM_COUNT_NV                                                             0x933B
+#define GL_FILL_RECTANGLE_NV                                                       0x933C
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_ARB                                       0x933D
+#define GL_SAMPLE_LOCATION_SUBPIXEL_BITS_NV                                        0x933D
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_ARB                                    0x933E
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_WIDTH_NV                                     0x933E
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_ARB                                   0x933F
+#define GL_SAMPLE_LOCATION_PIXEL_GRID_HEIGHT_NV                                    0x933F
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_ARB                             0x9340
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_TABLE_SIZE_NV                              0x9340
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_ARB                                        0x9341
+#define GL_PROGRAMMABLE_SAMPLE_LOCATION_NV                                         0x9341
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_ARB                           0x9342
+#define GL_FRAMEBUFFER_PROGRAMMABLE_SAMPLE_LOCATIONS_NV                            0x9342
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_ARB                              0x9343
+#define GL_FRAMEBUFFER_SAMPLE_LOCATION_PIXEL_GRID_NV                               0x9343
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_INVOCATIONS_ARB                              0x9344
+#define GL_MAX_COMPUTE_VARIABLE_GROUP_SIZE_ARB                                     0x9345
+#define GL_CONSERVATIVE_RASTERIZATION_NV                                           0x9346
+#define GL_SUBPIXEL_PRECISION_BIAS_X_BITS_NV                                       0x9347
+#define GL_SUBPIXEL_PRECISION_BIAS_Y_BITS_NV                                       0x9348
+#define GL_MAX_SUBPIXEL_PRECISION_BIAS_BITS_NV                                     0x9349
+#define GL_LOCATION_COMPONENT                                                      0x934A
+#define GL_TRANSFORM_FEEDBACK_BUFFER_INDEX                                         0x934B
+#define GL_TRANSFORM_FEEDBACK_BUFFER_STRIDE                                        0x934C
+#define GL_ALPHA_TO_COVERAGE_DITHER_DEFAULT_NV                                     0x934D
+#define GL_ALPHA_TO_COVERAGE_DITHER_ENABLE_NV                                      0x934E
+#define GL_ALPHA_TO_COVERAGE_DITHER_DISABLE_NV                                     0x934F
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_X_NV                                          0x9350
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_X_NV                                          0x9351
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_Y_NV                                          0x9352
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Y_NV                                          0x9353
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_Z_NV                                          0x9354
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_Z_NV                                          0x9355
+#define GL_VIEWPORT_SWIZZLE_POSITIVE_W_NV                                          0x9356
+#define GL_VIEWPORT_SWIZZLE_NEGATIVE_W_NV                                          0x9357
+#define GL_VIEWPORT_SWIZZLE_X_NV                                                   0x9358
+#define GL_VIEWPORT_SWIZZLE_Y_NV                                                   0x9359
+#define GL_VIEWPORT_SWIZZLE_Z_NV                                                   0x935A
+#define GL_VIEWPORT_SWIZZLE_W_NV                                                   0x935B
+#define GL_CLIP_ORIGIN                                                             0x935C
+#define GL_CLIP_ORIGIN_EXT                                                         0x935C
+#define GL_CLIP_DEPTH_MODE                                                         0x935D
+#define GL_CLIP_DEPTH_MODE_EXT                                                     0x935D
+#define GL_NEGATIVE_ONE_TO_ONE                                                     0x935E
+#define GL_NEGATIVE_ONE_TO_ONE_EXT                                                 0x935E
+#define GL_ZERO_TO_ONE                                                             0x935F
+#define GL_ZERO_TO_ONE_EXT                                                         0x935F
+#define GL_CLEAR_TEXTURE                                                           0x9365
+#define GL_TEXTURE_REDUCTION_MODE_ARB                                              0x9366
+#define GL_TEXTURE_REDUCTION_MODE_EXT                                              0x9366
+#define GL_WEIGHTED_AVERAGE_ARB                                                    0x9367
+#define GL_WEIGHTED_AVERAGE_EXT                                                    0x9367
+#define GL_FONT_GLYPHS_AVAILABLE_NV                                                0x9368
+#define GL_FONT_TARGET_UNAVAILABLE_NV                                              0x9369
+#define GL_FONT_UNAVAILABLE_NV                                                     0x936A
+#define GL_FONT_UNINTELLIGIBLE_NV                                                  0x936B
+#define GL_STANDARD_FONT_FORMAT_NV                                                 0x936C
+#define GL_FRAGMENT_INPUT_NV                                                       0x936D
+#define GL_UNIFORM_BUFFER_UNIFIED_NV                                               0x936E
+#define GL_UNIFORM_BUFFER_ADDRESS_NV                                               0x936F
+#define GL_UNIFORM_BUFFER_LENGTH_NV                                                0x9370
+#define GL_MULTISAMPLES_NV                                                         0x9371
+#define GL_SUPERSAMPLE_SCALE_X_NV                                                  0x9372
+#define GL_SUPERSAMPLE_SCALE_Y_NV                                                  0x9373
+#define GL_CONFORMANT_NV                                                           0x9374
+#define GL_CONSERVATIVE_RASTER_DILATE_NV                                           0x9379
+#define GL_CONSERVATIVE_RASTER_DILATE_RANGE_NV                                     0x937A
+#define GL_CONSERVATIVE_RASTER_DILATE_GRANULARITY_NV                               0x937B
+#define GL_VIEWPORT_POSITION_W_SCALE_NV                                            0x937C
+#define GL_VIEWPORT_POSITION_W_SCALE_X_COEFF_NV                                    0x937D
+#define GL_VIEWPORT_POSITION_W_SCALE_Y_COEFF_NV                                    0x937E
+#define GL_REPRESENTATIVE_FRAGMENT_TEST_NV                                         0x937F
+#define GL_NUM_SAMPLE_COUNTS                                                       0x9380
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE                                            0x9381
+#define GL_MULTISAMPLE_LINE_WIDTH_RANGE_ARB                                        0x9381
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY                                      0x9382
+#define GL_MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB                                  0x9382
+#define GL_VIEW_CLASS_EAC_R11                                                      0x9383
+#define GL_VIEW_CLASS_EAC_RG11                                                     0x9384
+#define GL_VIEW_CLASS_ETC2_RGB                                                     0x9385
+#define GL_VIEW_CLASS_ETC2_RGBA                                                    0x9386
+#define GL_VIEW_CLASS_ETC2_EAC_RGBA                                                0x9387
+#define GL_VIEW_CLASS_ASTC_4x4_RGBA                                                0x9388
+#define GL_VIEW_CLASS_ASTC_5x4_RGBA                                                0x9389
+#define GL_VIEW_CLASS_ASTC_5x5_RGBA                                                0x938A
+#define GL_VIEW_CLASS_ASTC_6x5_RGBA                                                0x938B
+#define GL_VIEW_CLASS_ASTC_6x6_RGBA                                                0x938C
+#define GL_VIEW_CLASS_ASTC_8x5_RGBA                                                0x938D
+#define GL_VIEW_CLASS_ASTC_8x6_RGBA                                                0x938E
+#define GL_VIEW_CLASS_ASTC_8x8_RGBA                                                0x938F
+#define GL_VIEW_CLASS_ASTC_10x5_RGBA                                               0x9390
+#define GL_VIEW_CLASS_ASTC_10x6_RGBA                                               0x9391
+#define GL_VIEW_CLASS_ASTC_10x8_RGBA                                               0x9392
+#define GL_VIEW_CLASS_ASTC_10x10_RGBA                                              0x9393
+#define GL_VIEW_CLASS_ASTC_12x10_RGBA                                              0x9394
+#define GL_VIEW_CLASS_ASTC_12x12_RGBA                                              0x9395
+#define GL_TRANSLATED_SHADER_SOURCE_LENGTH_ANGLE                                   0x93A0
+#define GL_BGRA8_EXT                                                               0x93A1
+#define GL_TEXTURE_USAGE_ANGLE                                                     0x93A2
+#define GL_FRAMEBUFFER_ATTACHMENT_ANGLE                                            0x93A3
+#define GL_PACK_REVERSE_ROW_ORDER_ANGLE                                            0x93A4
+#define GL_PROGRAM_BINARY_ANGLE                                                    0x93A6
+#define GL_COMPRESSED_RGBA_ASTC_4x4                                                0x93B0
+#define GL_COMPRESSED_RGBA_ASTC_4x4_KHR                                            0x93B0
+#define GL_COMPRESSED_RGBA_ASTC_5x4                                                0x93B1
+#define GL_COMPRESSED_RGBA_ASTC_5x4_KHR                                            0x93B1
+#define GL_COMPRESSED_RGBA_ASTC_5x5                                                0x93B2
+#define GL_COMPRESSED_RGBA_ASTC_5x5_KHR                                            0x93B2
+#define GL_COMPRESSED_RGBA_ASTC_6x5                                                0x93B3
+#define GL_COMPRESSED_RGBA_ASTC_6x5_KHR                                            0x93B3
+#define GL_COMPRESSED_RGBA_ASTC_6x6                                                0x93B4
+#define GL_COMPRESSED_RGBA_ASTC_6x6_KHR                                            0x93B4
+#define GL_COMPRESSED_RGBA_ASTC_8x5                                                0x93B5
+#define GL_COMPRESSED_RGBA_ASTC_8x5_KHR                                            0x93B5
+#define GL_COMPRESSED_RGBA_ASTC_8x6                                                0x93B6
+#define GL_COMPRESSED_RGBA_ASTC_8x6_KHR                                            0x93B6
+#define GL_COMPRESSED_RGBA_ASTC_8x8                                                0x93B7
+#define GL_COMPRESSED_RGBA_ASTC_8x8_KHR                                            0x93B7
+#define GL_COMPRESSED_RGBA_ASTC_10x5                                               0x93B8
+#define GL_COMPRESSED_RGBA_ASTC_10x5_KHR                                           0x93B8
+#define GL_COMPRESSED_RGBA_ASTC_10x6                                               0x93B9
+#define GL_COMPRESSED_RGBA_ASTC_10x6_KHR                                           0x93B9
+#define GL_COMPRESSED_RGBA_ASTC_10x8                                               0x93BA
+#define GL_COMPRESSED_RGBA_ASTC_10x8_KHR                                           0x93BA
+#define GL_COMPRESSED_RGBA_ASTC_10x10                                              0x93BB
+#define GL_COMPRESSED_RGBA_ASTC_10x10_KHR                                          0x93BB
+#define GL_COMPRESSED_RGBA_ASTC_12x10                                              0x93BC
+#define GL_COMPRESSED_RGBA_ASTC_12x10_KHR                                          0x93BC
+#define GL_COMPRESSED_RGBA_ASTC_12x12                                              0x93BD
+#define GL_COMPRESSED_RGBA_ASTC_12x12_KHR                                          0x93BD
+#define GL_COMPRESSED_RGBA_ASTC_3x3x3_OES                                          0x93C0
+#define GL_COMPRESSED_RGBA_ASTC_4x3x3_OES                                          0x93C1
+#define GL_COMPRESSED_RGBA_ASTC_4x4x3_OES                                          0x93C2
+#define GL_COMPRESSED_RGBA_ASTC_4x4x4_OES                                          0x93C3
+#define GL_COMPRESSED_RGBA_ASTC_5x4x4_OES                                          0x93C4
+#define GL_COMPRESSED_RGBA_ASTC_5x5x4_OES                                          0x93C5
+#define GL_COMPRESSED_RGBA_ASTC_5x5x5_OES                                          0x93C6
+#define GL_COMPRESSED_RGBA_ASTC_6x5x5_OES                                          0x93C7
+#define GL_COMPRESSED_RGBA_ASTC_6x6x5_OES                                          0x93C8
+#define GL_COMPRESSED_RGBA_ASTC_6x6x6_OES                                          0x93C9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4                                        0x93D0
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR                                    0x93D0
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4                                        0x93D1
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR                                    0x93D1
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5                                        0x93D2
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR                                    0x93D2
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5                                        0x93D3
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR                                    0x93D3
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6                                        0x93D4
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR                                    0x93D4
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5                                        0x93D5
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR                                    0x93D5
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6                                        0x93D6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR                                    0x93D6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8                                        0x93D7
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR                                    0x93D7
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5                                       0x93D8
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR                                   0x93D8
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6                                       0x93D9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR                                   0x93D9
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8                                       0x93DA
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR                                   0x93DA
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10                                      0x93DB
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR                                  0x93DB
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10                                      0x93DC
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR                                  0x93DC
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12                                      0x93DD
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR                                  0x93DD
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_3x3x3_OES                                  0x93E0
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x3x3_OES                                  0x93E1
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x3_OES                                  0x93E2
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4x4_OES                                  0x93E3
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4x4_OES                                  0x93E4
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x4_OES                                  0x93E5
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5x5_OES                                  0x93E6
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5x5_OES                                  0x93E7
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x5_OES                                  0x93E8
+#define GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6x6_OES                                  0x93E9
+#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_2BPPV2_IMG                                  0x93F0
+#define GL_COMPRESSED_SRGB_ALPHA_PVRTC_4BPPV2_IMG                                  0x93F1
+#define GL_PERFQUERY_COUNTER_EVENT_INTEL                                           0x94F0
+#define GL_PERFQUERY_COUNTER_DURATION_NORM_INTEL                                   0x94F1
+#define GL_PERFQUERY_COUNTER_DURATION_RAW_INTEL                                    0x94F2
+#define GL_PERFQUERY_COUNTER_THROUGHPUT_INTEL                                      0x94F3
+#define GL_PERFQUERY_COUNTER_RAW_INTEL                                             0x94F4
+#define GL_PERFQUERY_COUNTER_TIMESTAMP_INTEL                                       0x94F5
+#define GL_PERFQUERY_COUNTER_DATA_UINT32_INTEL                                     0x94F8
+#define GL_PERFQUERY_COUNTER_DATA_UINT64_INTEL                                     0x94F9
+#define GL_PERFQUERY_COUNTER_DATA_FLOAT_INTEL                                      0x94FA
+#define GL_PERFQUERY_COUNTER_DATA_DOUBLE_INTEL                                     0x94FB
+#define GL_PERFQUERY_COUNTER_DATA_BOOL32_INTEL                                     0x94FC
+#define GL_PERFQUERY_QUERY_NAME_LENGTH_MAX_INTEL                                   0x94FD
+#define GL_PERFQUERY_COUNTER_NAME_LENGTH_MAX_INTEL                                 0x94FE
+#define GL_PERFQUERY_COUNTER_DESC_LENGTH_MAX_INTEL                                 0x94FF
+#define GL_PERFQUERY_GPA_EXTENDED_COUNTERS_INTEL                                   0x9500
+#define GL_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_EXT                           0x9530
+#define GL_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_EXT                           0x9531
+#define GL_SUBGROUP_SIZE_KHR                                                       0x9532
+#define GL_SUBGROUP_SUPPORTED_STAGES_KHR                                           0x9533
+#define GL_SUBGROUP_SUPPORTED_FEATURES_KHR                                         0x9534
+#define GL_SUBGROUP_QUAD_ALL_STAGES_KHR                                            0x9535
+#define GL_MAX_MESH_TOTAL_MEMORY_SIZE_NV                                           0x9536
+#define GL_MAX_TASK_TOTAL_MEMORY_SIZE_NV                                           0x9537
+#define GL_MAX_MESH_OUTPUT_VERTICES_NV                                             0x9538
+#define GL_MAX_MESH_OUTPUT_PRIMITIVES_NV                                           0x9539
+#define GL_MAX_TASK_OUTPUT_COUNT_NV                                                0x953A
+#define GL_MAX_MESH_WORK_GROUP_SIZE_NV                                             0x953B
+#define GL_MAX_TASK_WORK_GROUP_SIZE_NV                                             0x953C
+#define GL_MAX_DRAW_MESH_TASKS_COUNT_NV                                            0x953D
+#define GL_MESH_WORK_GROUP_SIZE_NV                                                 0x953E
+#define GL_TASK_WORK_GROUP_SIZE_NV                                                 0x953F
+#define GL_QUERY_RESOURCE_TYPE_VIDMEM_ALLOC_NV                                     0x9540
+#define GL_QUERY_RESOURCE_MEMTYPE_VIDMEM_NV                                        0x9542
+#define GL_MESH_OUTPUT_PER_PRIMITIVE_GRANULARITY_NV                                0x9543
+#define GL_QUERY_RESOURCE_SYS_RESERVED_NV                                          0x9544
+#define GL_QUERY_RESOURCE_TEXTURE_NV                                               0x9545
+#define GL_QUERY_RESOURCE_RENDERBUFFER_NV                                          0x9546
+#define GL_QUERY_RESOURCE_BUFFEROBJECT_NV                                          0x9547
+#define GL_PER_GPU_STORAGE_NV                                                      0x9548
+#define GL_MULTICAST_PROGRAMMABLE_SAMPLE_LOCATION_NV                               0x9549
+#define GL_UPLOAD_GPU_MASK_NVX                                                     0x954A
+#define GL_CONSERVATIVE_RASTER_MODE_NV                                             0x954D
+#define GL_CONSERVATIVE_RASTER_MODE_POST_SNAP_NV                                   0x954E
+#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_TRIANGLES_NV                          0x954F
+#define GL_CONSERVATIVE_RASTER_MODE_PRE_SNAP_NV                                    0x9550
+#define GL_SHADER_BINARY_FORMAT_SPIR_V                                             0x9551
+#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB                                         0x9551
+#define GL_SPIR_V_BINARY                                                           0x9552
+#define GL_SPIR_V_BINARY_ARB                                                       0x9552
+#define GL_SPIR_V_EXTENSIONS                                                       0x9553
+#define GL_NUM_SPIR_V_EXTENSIONS                                                   0x9554
+#define GL_SCISSOR_TEST_EXCLUSIVE_NV                                               0x9555
+#define GL_SCISSOR_BOX_EXCLUSIVE_NV                                                0x9556
+#define GL_MAX_MESH_VIEWS_NV                                                       0x9557
+#define GL_RENDER_GPU_MASK_NV                                                      0x9558
+#define GL_MESH_SHADER_NV                                                          0x9559
+#define GL_TASK_SHADER_NV                                                          0x955A
+#define GL_SHADING_RATE_IMAGE_BINDING_NV                                           0x955B
+#define GL_SHADING_RATE_IMAGE_TEXEL_WIDTH_NV                                       0x955C
+#define GL_SHADING_RATE_IMAGE_TEXEL_HEIGHT_NV                                      0x955D
+#define GL_SHADING_RATE_IMAGE_PALETTE_SIZE_NV                                      0x955E
+#define GL_MAX_COARSE_FRAGMENT_SAMPLES_NV                                          0x955F
+#define GL_SHADING_RATE_IMAGE_NV                                                   0x9563
+#define GL_SHADING_RATE_NO_INVOCATIONS_NV                                          0x9564
+#define GL_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV                                  0x9565
+#define GL_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV                             0x9566
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV                             0x9567
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV                             0x9568
+#define GL_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV                             0x9569
+#define GL_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV                             0x956A
+#define GL_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV                             0x956B
+#define GL_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV                                 0x956C
+#define GL_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV                                 0x956D
+#define GL_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV                                 0x956E
+#define GL_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV                                0x956F
+#define GL_MESH_VERTICES_OUT_NV                                                    0x9579
+#define GL_MESH_PRIMITIVES_OUT_NV                                                  0x957A
+#define GL_MESH_OUTPUT_TYPE_NV                                                     0x957B
+#define GL_MESH_SUBROUTINE_NV                                                      0x957C
+#define GL_TASK_SUBROUTINE_NV                                                      0x957D
+#define GL_MESH_SUBROUTINE_UNIFORM_NV                                              0x957E
+#define GL_TASK_SUBROUTINE_UNIFORM_NV                                              0x957F
+#define GL_TEXTURE_TILING_EXT                                                      0x9580
+#define GL_DEDICATED_MEMORY_OBJECT_EXT                                             0x9581
+#define GL_NUM_TILING_TYPES_EXT                                                    0x9582
+#define GL_TILING_TYPES_EXT                                                        0x9583
+#define GL_OPTIMAL_TILING_EXT                                                      0x9584
+#define GL_LINEAR_TILING_EXT                                                       0x9585
+#define GL_HANDLE_TYPE_OPAQUE_FD_EXT                                               0x9586
+#define GL_HANDLE_TYPE_OPAQUE_WIN32_EXT                                            0x9587
+#define GL_HANDLE_TYPE_OPAQUE_WIN32_KMT_EXT                                        0x9588
+#define GL_HANDLE_TYPE_D3D12_TILEPOOL_EXT                                          0x9589
+#define GL_HANDLE_TYPE_D3D12_RESOURCE_EXT                                          0x958A
+#define GL_HANDLE_TYPE_D3D11_IMAGE_EXT                                             0x958B
+#define GL_HANDLE_TYPE_D3D11_IMAGE_KMT_EXT                                         0x958C
+#define GL_LAYOUT_GENERAL_EXT                                                      0x958D
+#define GL_LAYOUT_COLOR_ATTACHMENT_EXT                                             0x958E
+#define GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT                                     0x958F
+#define GL_LAYOUT_DEPTH_STENCIL_READ_ONLY_EXT                                      0x9590
+#define GL_LAYOUT_SHADER_READ_ONLY_EXT                                             0x9591
+#define GL_LAYOUT_TRANSFER_SRC_EXT                                                 0x9592
+#define GL_LAYOUT_TRANSFER_DST_EXT                                                 0x9593
+#define GL_HANDLE_TYPE_D3D12_FENCE_EXT                                             0x9594
+#define GL_D3D12_FENCE_VALUE_EXT                                                   0x9595
+#define GL_NUM_DEVICE_UUIDS_EXT                                                    0x9596
+#define GL_DEVICE_UUID_EXT                                                         0x9597
+#define GL_DRIVER_UUID_EXT                                                         0x9598
+#define GL_DEVICE_LUID_EXT                                                         0x9599
+#define GL_DEVICE_NODE_MASK_EXT                                                    0x959A
+#define GL_PROTECTED_MEMORY_OBJECT_EXT                                             0x959B
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_MESH_SHADER_NV                              0x959C
+#define GL_UNIFORM_BLOCK_REFERENCED_BY_TASK_SHADER_NV                              0x959D
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_MESH_SHADER_NV                      0x959E
+#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TASK_SHADER_NV                      0x959F
+#define GL_REFERENCED_BY_MESH_SHADER_NV                                            0x95A0
+#define GL_REFERENCED_BY_TASK_SHADER_NV                                            0x95A1
+#define GL_MAX_MESH_WORK_GROUP_INVOCATIONS_NV                                      0x95A2
+#define GL_MAX_TASK_WORK_GROUP_INVOCATIONS_NV                                      0x95A3
+#define GL_ATTACHED_MEMORY_OBJECT_NV                                               0x95A4
+#define GL_ATTACHED_MEMORY_OFFSET_NV                                               0x95A5
+#define GL_MEMORY_ATTACHABLE_ALIGNMENT_NV                                          0x95A6
+#define GL_MEMORY_ATTACHABLE_SIZE_NV                                               0x95A7
+#define GL_MEMORY_ATTACHABLE_NV                                                    0x95A8
+#define GL_DETACHED_MEMORY_INCARNATION_NV                                          0x95A9
+#define GL_DETACHED_TEXTURES_NV                                                    0x95AA
+#define GL_DETACHED_BUFFERS_NV                                                     0x95AB
+#define GL_MAX_DETACHED_TEXTURES_NV                                                0x95AC
+#define GL_MAX_DETACHED_BUFFERS_NV                                                 0x95AD
+#define GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV                                    0x95AE
+#define GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV                                0x95AF
+#define GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV                               0x95B0
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR                            0x9630
+#define GL_MAX_VIEWS_OVR                                                           0x9631
+#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR                      0x9632
+#define GL_FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR                                 0x9633
+#define GL_GS_SHADER_BINARY_MTK                                                    0x9640
+#define GL_GS_PROGRAM_BINARY_MTK                                                   0x9641
+#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_FAST_SIZE_EXT                         0x9650
+#define GL_MAX_SHADER_COMBINED_LOCAL_STORAGE_SIZE_EXT                              0x9651
+#define GL_FRAMEBUFFER_INCOMPLETE_INSUFFICIENT_SHADER_COMBINED_LOCAL_STORAGE_EXT   0x9652
+#define GL_FRAMEBUFFER_FETCH_NONCOHERENT_QCOM                                      0x96A2
+#define GL_VALIDATE_SHADER_BINARY_QCOM                                             0x96A3
+#define GL_SHARED_EDGE_NV                                                          0xC0
+#define GL_ROUNDED_RECT_NV                                                         0xE8
+#define GL_RELATIVE_ROUNDED_RECT_NV                                                0xE9
+#define GL_ROUNDED_RECT2_NV                                                        0xEA
+#define GL_RELATIVE_ROUNDED_RECT2_NV                                               0xEB
+#define GL_ROUNDED_RECT4_NV                                                        0xEC
+#define GL_RELATIVE_ROUNDED_RECT4_NV                                               0xED
+#define GL_ROUNDED_RECT8_NV                                                        0xEE
+#define GL_RELATIVE_ROUNDED_RECT8_NV                                               0xEF
+#define GL_RESTART_PATH_NV                                                         0xF0
+#define GL_DUP_FIRST_CUBIC_CURVE_TO_NV                                             0xF2
+#define GL_DUP_LAST_CUBIC_CURVE_TO_NV                                              0xF4
+#define GL_RECT_NV                                                                 0xF6
+#define GL_RELATIVE_RECT_NV                                                        0xF7
+#define GL_CIRCULAR_CCW_ARC_TO_NV                                                  0xF8
+#define GL_CIRCULAR_CW_ARC_TO_NV                                                   0xFA
+#define GL_CIRCULAR_TANGENT_ARC_TO_NV                                              0xFC
+#define GL_ARC_TO_NV                                                               0xFE
+#define GL_RELATIVE_ARC_TO_NV                                                      0xFF
+#define GL_TRACE_ALL_BITS_MESA                                                     0xFFFF
+#define GL_ALL_ATTRIB_BITS                                                         0xFFFFFFFF
+#define GL_ALL_BARRIER_BITS                                                        0xFFFFFFFF
+#define GL_ALL_BARRIER_BITS_EXT                                                    0xFFFFFFFF
+#define GL_ALL_PIXELS_AMD                                                          0xFFFFFFFF
+#define GL_ALL_SHADER_BITS                                                         0xFFFFFFFF
+#define GL_ALL_SHADER_BITS_EXT                                                     0xFFFFFFFF
+#define GL_CLIENT_ALL_ATTRIB_BITS                                                  0xFFFFFFFF
+#define GL_INVALID_INDEX                                                           0xFFFFFFFF
+#define GL_QUERY_ALL_EVENT_BITS_AMD                                                0xFFFFFFFF
+#define GL_TIMEOUT_IGNORED                                                         0xFFFFFFFFFFFFFFFF
+#define GL_TIMEOUT_IGNORED_APPLE                                                   0xFFFFFFFFFFFFFFFF
+#define GL_LAYOUT_LINEAR_INTEL                                                     1
+#define GL_ONE                                                                     1
+#define GL_TRUE                                                                    1
+#define GL_VERSION_ES_CL_1_0                                                       1
+#define GL_VERSION_ES_CL_1_1                                                       1
+#define GL_VERSION_ES_CM_1_1                                                       1
+#define GL_CULL_VERTEX_IBM                                                         103050
+#define GL_ALL_STATIC_DATA_IBM                                                     103060
+#define GL_STATIC_VERTEX_ARRAY_IBM                                                 103061
+#define GL_VERTEX_ARRAY_LIST_IBM                                                   103070
+#define GL_NORMAL_ARRAY_LIST_IBM                                                   103071
+#define GL_COLOR_ARRAY_LIST_IBM                                                    103072
+#define GL_INDEX_ARRAY_LIST_IBM                                                    103073
+#define GL_TEXTURE_COORD_ARRAY_LIST_IBM                                            103074
+#define GL_EDGE_FLAG_ARRAY_LIST_IBM                                                103075
+#define GL_FOG_COORDINATE_ARRAY_LIST_IBM                                           103076
+#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM                                          103077
+#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM                                            103080
+#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM                                            103081
+#define GL_COLOR_ARRAY_LIST_STRIDE_IBM                                             103082
+#define GL_INDEX_ARRAY_LIST_STRIDE_IBM                                             103083
+#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM                                     103084
+#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM                                         103085
+#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM                                    103086
+#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM                                   103087
+#define GL_UUID_SIZE_EXT                                                           16
+#define GL_LAYOUT_LINEAR_CPU_CACHED_INTEL                                          2
+#define GL_LUID_SIZE_EXT                                                           8
+
+typedef void (GLAPIENTRY *PFNGLACCUMPROC)(GLenum op, GLfloat value);
+typedef void (GLAPIENTRY *PFNGLACCUMXOESPROC)(GLenum op, GLfixed value);
+typedef GLboolean (GLAPIENTRY *PFNGLACQUIREKEYEDMUTEXWIN32EXTPROC)(GLuint memory, GLuint64 key, GLuint timeout);
+typedef void (GLAPIENTRY *PFNGLACTIVEPROGRAMEXTPROC)(GLuint program);
+typedef void (GLAPIENTRY *PFNGLACTIVESHADERPROGRAMPROC)(GLuint pipeline, GLuint program);
+typedef void (GLAPIENTRY *PFNGLACTIVESHADERPROGRAMEXTPROC)(GLuint pipeline, GLuint program);
+typedef void (GLAPIENTRY *PFNGLACTIVESTENCILFACEEXTPROC)(GLenum face);
+typedef void (GLAPIENTRY *PFNGLACTIVETEXTUREPROC)(GLenum texture);
+typedef void (GLAPIENTRY *PFNGLACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void (GLAPIENTRY *PFNGLACTIVEVARYINGNVPROC)(GLuint program, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLALPHAFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (GLAPIENTRY *PFNGLALPHAFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (GLAPIENTRY *PFNGLALPHAFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (GLAPIENTRY *PFNGLALPHAFUNCPROC)(GLenum func, GLfloat ref);
+typedef void (GLAPIENTRY *PFNGLALPHAFUNCQCOMPROC)(GLenum func, GLclampf ref);
+typedef void (GLAPIENTRY *PFNGLALPHAFUNCXPROC)(GLenum func, GLfixed ref);
+typedef void (GLAPIENTRY *PFNGLALPHAFUNCXOESPROC)(GLenum func, GLfixed ref);
+typedef void (GLAPIENTRY *PFNGLALPHATOCOVERAGEDITHERCONTROLNVPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLAPPLYFRAMEBUFFERATTACHMENTCMAAINTELPROC)(void);
+typedef void (GLAPIENTRY *PFNGLAPPLYTEXTUREEXTPROC)(GLenum mode);
+typedef GLboolean (GLAPIENTRY *PFNGLAREPROGRAMSRESIDENTNVPROC)(GLsizei n, const GLuint * programs, GLboolean * residences);
+typedef GLboolean (GLAPIENTRY *PFNGLARETEXTURESRESIDENTPROC)(GLsizei n, const GLuint * textures, GLboolean * residences);
+typedef GLboolean (GLAPIENTRY *PFNGLARETEXTURESRESIDENTEXTPROC)(GLsizei n, const GLuint * textures, GLboolean * residences);
+typedef void (GLAPIENTRY *PFNGLARRAYELEMENTPROC)(GLint i);
+typedef void (GLAPIENTRY *PFNGLARRAYELEMENTEXTPROC)(GLint i);
+typedef void (GLAPIENTRY *PFNGLARRAYOBJECTATIPROC)(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef GLuint (GLAPIENTRY *PFNGLASYNCCOPYBUFFERSUBDATANVXPROC)(GLsizei waitSemaphoreCount, const GLuint * waitSemaphoreArray, const GLuint64 * fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint * signalSemaphoreArray, const GLuint64 * signalValueArray);
+typedef GLuint (GLAPIENTRY *PFNGLASYNCCOPYIMAGESUBDATANVXPROC)(GLsizei waitSemaphoreCount, const GLuint * waitSemaphoreArray, const GLuint64 * waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint * signalSemaphoreArray, const GLuint64 * signalValueArray);
+typedef void (GLAPIENTRY *PFNGLASYNCMARKERSGIXPROC)(GLuint marker);
+typedef void (GLAPIENTRY *PFNGLATTACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB obj);
+typedef void (GLAPIENTRY *PFNGLATTACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void (GLAPIENTRY *PFNGLBEGINPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBEGINCONDITIONALRENDERPROC)(GLuint id, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBEGINCONDITIONALRENDERNVPROC)(GLuint id, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBEGINCONDITIONALRENDERNVXPROC)(GLuint id);
+typedef void (GLAPIENTRY *PFNGLBEGINFRAGMENTSHADERATIPROC)(void);
+typedef void (GLAPIENTRY *PFNGLBEGINOCCLUSIONQUERYNVPROC)(GLuint id);
+typedef void (GLAPIENTRY *PFNGLBEGINPERFMONITORAMDPROC)(GLuint monitor);
+typedef void (GLAPIENTRY *PFNGLBEGINPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void (GLAPIENTRY *PFNGLBEGINQUERYPROC)(GLenum target, GLuint id);
+typedef void (GLAPIENTRY *PFNGLBEGINQUERYARBPROC)(GLenum target, GLuint id);
+typedef void (GLAPIENTRY *PFNGLBEGINQUERYEXTPROC)(GLenum target, GLuint id);
+typedef void (GLAPIENTRY *PFNGLBEGINQUERYINDEXEDPROC)(GLenum target, GLuint index, GLuint id);
+typedef void (GLAPIENTRY *PFNGLBEGINTRANSFORMFEEDBACKPROC)(GLenum primitiveMode);
+typedef void (GLAPIENTRY *PFNGLBEGINTRANSFORMFEEDBACKEXTPROC)(GLenum primitiveMode);
+typedef void (GLAPIENTRY *PFNGLBEGINTRANSFORMFEEDBACKNVPROC)(GLenum primitiveMode);
+typedef void (GLAPIENTRY *PFNGLBEGINVERTEXSHADEREXTPROC)(void);
+typedef void (GLAPIENTRY *PFNGLBEGINVIDEOCAPTURENVPROC)(GLuint video_capture_slot);
+typedef void (GLAPIENTRY *PFNGLBINDATTRIBLOCATIONPROC)(GLuint program, GLuint index, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLBINDATTRIBLOCATIONARBPROC)(GLhandleARB programObj, GLuint index, const GLcharARB * name);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERPROC)(GLenum target, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERARBPROC)(GLenum target, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERBASEPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERBASEEXTPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERBASENVPROC)(GLenum target, GLuint index, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFEROFFSETEXTPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFEROFFSETNVPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERRANGEPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERRANGEEXTPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERRANGENVPROC)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERSBASEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers);
+typedef void (GLAPIENTRY *PFNGLBINDBUFFERSRANGEPROC)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes);
+typedef void (GLAPIENTRY *PFNGLBINDFRAGDATALOCATIONPROC)(GLuint program, GLuint color, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLBINDFRAGDATALOCATIONEXTPROC)(GLuint program, GLuint color, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLBINDFRAGDATALOCATIONINDEXEDPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLBINDFRAGDATALOCATIONINDEXEDEXTPROC)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLBINDFRAGMENTSHADERATIPROC)(GLuint id);
+typedef void (GLAPIENTRY *PFNGLBINDFRAMEBUFFERPROC)(GLenum target, GLuint framebuffer);
+typedef void (GLAPIENTRY *PFNGLBINDFRAMEBUFFEREXTPROC)(GLenum target, GLuint framebuffer);
+typedef void (GLAPIENTRY *PFNGLBINDFRAMEBUFFEROESPROC)(GLenum target, GLuint framebuffer);
+typedef void (GLAPIENTRY *PFNGLBINDIMAGETEXTUREPROC)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+typedef void (GLAPIENTRY *PFNGLBINDIMAGETEXTUREEXTPROC)(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
+typedef void (GLAPIENTRY *PFNGLBINDIMAGETEXTURESPROC)(GLuint first, GLsizei count, const GLuint * textures);
+typedef GLuint (GLAPIENTRY *PFNGLBINDLIGHTPARAMETEREXTPROC)(GLenum light, GLenum value);
+typedef GLuint (GLAPIENTRY *PFNGLBINDMATERIALPARAMETEREXTPROC)(GLenum face, GLenum value);
+typedef void (GLAPIENTRY *PFNGLBINDMULTITEXTUREEXTPROC)(GLenum texunit, GLenum target, GLuint texture);
+typedef GLuint (GLAPIENTRY *PFNGLBINDPARAMETEREXTPROC)(GLenum value);
+typedef void (GLAPIENTRY *PFNGLBINDPROGRAMARBPROC)(GLenum target, GLuint program);
+typedef void (GLAPIENTRY *PFNGLBINDPROGRAMNVPROC)(GLenum target, GLuint id);
+typedef void (GLAPIENTRY *PFNGLBINDPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef void (GLAPIENTRY *PFNGLBINDPROGRAMPIPELINEEXTPROC)(GLuint pipeline);
+typedef void (GLAPIENTRY *PFNGLBINDRENDERBUFFERPROC)(GLenum target, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLBINDRENDERBUFFEREXTPROC)(GLenum target, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLBINDRENDERBUFFEROESPROC)(GLenum target, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLBINDSAMPLERPROC)(GLuint unit, GLuint sampler);
+typedef void (GLAPIENTRY *PFNGLBINDSAMPLERSPROC)(GLuint first, GLsizei count, const GLuint * samplers);
+typedef void (GLAPIENTRY *PFNGLBINDSHADINGRATEIMAGENVPROC)(GLuint texture);
+typedef GLuint (GLAPIENTRY *PFNGLBINDTEXGENPARAMETEREXTPROC)(GLenum unit, GLenum coord, GLenum value);
+typedef void (GLAPIENTRY *PFNGLBINDTEXTUREPROC)(GLenum target, GLuint texture);
+typedef void (GLAPIENTRY *PFNGLBINDTEXTUREEXTPROC)(GLenum target, GLuint texture);
+typedef void (GLAPIENTRY *PFNGLBINDTEXTUREUNITPROC)(GLuint unit, GLuint texture);
+typedef GLuint (GLAPIENTRY *PFNGLBINDTEXTUREUNITPARAMETEREXTPROC)(GLenum unit, GLenum value);
+typedef void (GLAPIENTRY *PFNGLBINDTEXTURESPROC)(GLuint first, GLsizei count, const GLuint * textures);
+typedef void (GLAPIENTRY *PFNGLBINDTRANSFORMFEEDBACKPROC)(GLenum target, GLuint id);
+typedef void (GLAPIENTRY *PFNGLBINDTRANSFORMFEEDBACKNVPROC)(GLenum target, GLuint id);
+typedef void (GLAPIENTRY *PFNGLBINDVERTEXARRAYPROC)(GLuint array);
+typedef void (GLAPIENTRY *PFNGLBINDVERTEXARRAYAPPLEPROC)(GLuint array);
+typedef void (GLAPIENTRY *PFNGLBINDVERTEXARRAYOESPROC)(GLuint array);
+typedef void (GLAPIENTRY *PFNGLBINDVERTEXBUFFERPROC)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLBINDVERTEXBUFFERSPROC)(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
+typedef void (GLAPIENTRY *PFNGLBINDVERTEXSHADEREXTPROC)(GLuint id);
+typedef void (GLAPIENTRY *PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
+typedef void (GLAPIENTRY *PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3BEXTPROC)(GLbyte bx, GLbyte by, GLbyte bz);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3BVEXTPROC)(const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3DEXTPROC)(GLdouble bx, GLdouble by, GLdouble bz);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3DVEXTPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3FEXTPROC)(GLfloat bx, GLfloat by, GLfloat bz);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3FVEXTPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3IEXTPROC)(GLint bx, GLint by, GLint bz);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3IVEXTPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3SEXTPROC)(GLshort bx, GLshort by, GLshort bz);
+typedef void (GLAPIENTRY *PFNGLBINORMAL3SVEXTPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLBINORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLBITMAPPROC)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap);
+typedef void (GLAPIENTRY *PFNGLBITMAPXOESPROC)(GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte * bitmap);
+typedef void (GLAPIENTRY *PFNGLBLENDBARRIERPROC)(void);
+typedef void (GLAPIENTRY *PFNGLBLENDBARRIERKHRPROC)(void);
+typedef void (GLAPIENTRY *PFNGLBLENDBARRIERNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLBLENDCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAPIENTRY *PFNGLBLENDCOLOREXTPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAPIENTRY *PFNGLBLENDCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONEXTPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONINDEXEDAMDPROC)(GLuint buf, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONOESPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONSEPARATEPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONSEPARATEEXTPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONSEPARATEOESPROC)(GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONSEPARATEIPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONSEPARATEIARBPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONSEPARATEIEXTPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONSEPARATEIOESPROC)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONIPROC)(GLuint buf, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONIARBPROC)(GLuint buf, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONIEXTPROC)(GLuint buf, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBLENDEQUATIONIOESPROC)(GLuint buf, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCPROC)(GLenum sfactor, GLenum dfactor);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCINDEXEDAMDPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEEXTPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEINGRPROC)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEOESPROC)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEIPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEIARBPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEIEXTPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCSEPARATEIOESPROC)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCIPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCIARBPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCIEXTPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void (GLAPIENTRY *PFNGLBLENDFUNCIOESPROC)(GLuint buf, GLenum src, GLenum dst);
+typedef void (GLAPIENTRY *PFNGLBLENDPARAMETERINVPROC)(GLenum pname, GLint value);
+typedef void (GLAPIENTRY *PFNGLBLITFRAMEBUFFERPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAPIENTRY *PFNGLBLITFRAMEBUFFERANGLEPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAPIENTRY *PFNGLBLITFRAMEBUFFEREXTPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAPIENTRY *PFNGLBLITFRAMEBUFFERNVPROC)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAPIENTRY *PFNGLBLITNAMEDFRAMEBUFFERPROC)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAPIENTRY *PFNGLBUFFERADDRESSRANGENVPROC)(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
+typedef void (GLAPIENTRY *PFNGLBUFFERATTACHMEMORYNVPROC)(GLenum target, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLBUFFERDATAPROC)(GLenum target, GLsizeiptr size, const void * data, GLenum usage);
+typedef void (GLAPIENTRY *PFNGLBUFFERDATAARBPROC)(GLenum target, GLsizeiptrARB size, const void * data, GLenum usage);
+typedef void (GLAPIENTRY *PFNGLBUFFERPAGECOMMITMENTARBPROC)(GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
+typedef void (GLAPIENTRY *PFNGLBUFFERPARAMETERIAPPLEPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLBUFFERSTORAGEPROC)(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLBUFFERSTORAGEEXTPROC)(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLBUFFERSTORAGEEXTERNALEXTPROC)(GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLBUFFERSTORAGEMEMEXTPROC)(GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data);
+typedef void (GLAPIENTRY *PFNGLBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void * data);
+typedef void (GLAPIENTRY *PFNGLCALLCOMMANDLISTNVPROC)(GLuint list);
+typedef void (GLAPIENTRY *PFNGLCALLLISTPROC)(GLuint list);
+typedef void (GLAPIENTRY *PFNGLCALLLISTSPROC)(GLsizei n, GLenum type, const void * lists);
+typedef GLenum (GLAPIENTRY *PFNGLCHECKFRAMEBUFFERSTATUSPROC)(GLenum target);
+typedef GLenum (GLAPIENTRY *PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)(GLenum target);
+typedef GLenum (GLAPIENTRY *PFNGLCHECKFRAMEBUFFERSTATUSOESPROC)(GLenum target);
+typedef GLenum (GLAPIENTRY *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSPROC)(GLuint framebuffer, GLenum target);
+typedef GLenum (GLAPIENTRY *PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC)(GLuint framebuffer, GLenum target);
+typedef void (GLAPIENTRY *PFNGLCLAMPCOLORPROC)(GLenum target, GLenum clamp);
+typedef void (GLAPIENTRY *PFNGLCLAMPCOLORARBPROC)(GLenum target, GLenum clamp);
+typedef void (GLAPIENTRY *PFNGLCLEARPROC)(GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLCLEARACCUMPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAPIENTRY *PFNGLCLEARACCUMXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAPIENTRY *PFNGLCLEARBUFFERDATAPROC)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARBUFFERSUBDATAPROC)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARBUFFERFIPROC)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+typedef void (GLAPIENTRY *PFNGLCLEARBUFFERFVPROC)(GLenum buffer, GLint drawbuffer, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLCLEARBUFFERIVPROC)(GLenum buffer, GLint drawbuffer, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLCLEARBUFFERUIVPROC)(GLenum buffer, GLint drawbuffer, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLCLEARCOLORPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAPIENTRY *PFNGLCLEARCOLORIIEXTPROC)(GLint red, GLint green, GLint blue, GLint alpha);
+typedef void (GLAPIENTRY *PFNGLCLEARCOLORIUIEXTPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
+typedef void (GLAPIENTRY *PFNGLCLEARCOLORXPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAPIENTRY *PFNGLCLEARCOLORXOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAPIENTRY *PFNGLCLEARDEPTHPROC)(GLdouble depth);
+typedef void (GLAPIENTRY *PFNGLCLEARDEPTHDNVPROC)(GLdouble depth);
+typedef void (GLAPIENTRY *PFNGLCLEARDEPTHFPROC)(GLfloat d);
+typedef void (GLAPIENTRY *PFNGLCLEARDEPTHFOESPROC)(GLclampf depth);
+typedef void (GLAPIENTRY *PFNGLCLEARDEPTHXPROC)(GLfixed depth);
+typedef void (GLAPIENTRY *PFNGLCLEARDEPTHXOESPROC)(GLfixed depth);
+typedef void (GLAPIENTRY *PFNGLCLEARINDEXPROC)(GLfloat c);
+typedef void (GLAPIENTRY *PFNGLCLEARNAMEDBUFFERDATAPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARNAMEDFRAMEBUFFERFIPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+typedef void (GLAPIENTRY *PFNGLCLEARNAMEDFRAMEBUFFERFVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLCLEARNAMEDFRAMEBUFFERIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLCLEARNAMEDFRAMEBUFFERUIVPROC)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLCLEARPIXELLOCALSTORAGEUIEXTPROC)(GLsizei offset, GLsizei n, const GLuint * values);
+typedef void (GLAPIENTRY *PFNGLCLEARSTENCILPROC)(GLint s);
+typedef void (GLAPIENTRY *PFNGLCLEARTEXIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARTEXIMAGEEXTPROC)(GLuint texture, GLint level, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARTEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLEARTEXSUBIMAGEEXTPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCLIENTACTIVETEXTUREPROC)(GLenum texture);
+typedef void (GLAPIENTRY *PFNGLCLIENTACTIVETEXTUREARBPROC)(GLenum texture);
+typedef void (GLAPIENTRY *PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC)(GLenum stream);
+typedef void (GLAPIENTRY *PFNGLCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLCLIENTWAITSEMAPHOREUI64NVXPROC)(GLsizei fenceObjectCount, const GLuint * semaphoreArray, const GLuint64 * fenceValueArray);
+typedef GLenum (GLAPIENTRY *PFNGLCLIENTWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef GLenum (GLAPIENTRY *PFNGLCLIENTWAITSYNCAPPLEPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (GLAPIENTRY *PFNGLCLIPCONTROLPROC)(GLenum origin, GLenum depth);
+typedef void (GLAPIENTRY *PFNGLCLIPCONTROLEXTPROC)(GLenum origin, GLenum depth);
+typedef void (GLAPIENTRY *PFNGLCLIPPLANEPROC)(GLenum plane, const GLdouble * equation);
+typedef void (GLAPIENTRY *PFNGLCLIPPLANEFPROC)(GLenum p, const GLfloat * eqn);
+typedef void (GLAPIENTRY *PFNGLCLIPPLANEFIMGPROC)(GLenum p, const GLfloat * eqn);
+typedef void (GLAPIENTRY *PFNGLCLIPPLANEFOESPROC)(GLenum plane, const GLfloat * equation);
+typedef void (GLAPIENTRY *PFNGLCLIPPLANEXPROC)(GLenum plane, const GLfixed * equation);
+typedef void (GLAPIENTRY *PFNGLCLIPPLANEXIMGPROC)(GLenum p, const GLfixed * eqn);
+typedef void (GLAPIENTRY *PFNGLCLIPPLANEXOESPROC)(GLenum plane, const GLfixed * equation);
+typedef void (GLAPIENTRY *PFNGLCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3BVPROC)(const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLCOLOR3FVERTEX3FVSUNPROC)(const GLfloat * c, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3IPROC)(GLint red, GLint green, GLint blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3UBVPROC)(const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3UIVPROC)(const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3USVPROC)(const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR3XOESPROC)(GLfixed red, GLfixed green, GLfixed blue);
+typedef void (GLAPIENTRY *PFNGLCOLOR3XVOESPROC)(const GLfixed * components);
+typedef void (GLAPIENTRY *PFNGLCOLOR4BPROC)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4BVPROC)(const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4DPROC)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4FPROC)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat * c, const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4IPROC)(GLint red, GLint green, GLint blue, GLint alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4SPROC)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4UBPROC)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4UBVERTEX2FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLCOLOR4UBVERTEX2FVSUNPROC)(const GLubyte * c, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4UBVERTEX3FSUNPROC)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLCOLOR4UBVERTEX3FVSUNPROC)(const GLubyte * c, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4UBVPROC)(const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4UIPROC)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4UIVPROC)(const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4USPROC)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4USVPROC)(const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLCOLOR4XPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4XOESPROC)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+typedef void (GLAPIENTRY *PFNGLCOLOR4XVOESPROC)(const GLfixed * components);
+typedef void (GLAPIENTRY *PFNGLCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLCOLORFRAGMENTOP1ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+typedef void (GLAPIENTRY *PFNGLCOLORFRAGMENTOP2ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+typedef void (GLAPIENTRY *PFNGLCOLORFRAGMENTOP3ATIPROC)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+typedef void (GLAPIENTRY *PFNGLCOLORMASKPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+typedef void (GLAPIENTRY *PFNGLCOLORMASKINDEXEDEXTPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (GLAPIENTRY *PFNGLCOLORMASKIPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (GLAPIENTRY *PFNGLCOLORMASKIEXTPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (GLAPIENTRY *PFNGLCOLORMASKIOESPROC)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+typedef void (GLAPIENTRY *PFNGLCOLORMATERIALPROC)(GLenum face, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLCOLORP3UIPROC)(GLenum type, GLuint color);
+typedef void (GLAPIENTRY *PFNGLCOLORP3UIVPROC)(GLenum type, const GLuint * color);
+typedef void (GLAPIENTRY *PFNGLCOLORP4UIPROC)(GLenum type, GLuint color);
+typedef void (GLAPIENTRY *PFNGLCOLORP4UIVPROC)(GLenum type, const GLuint * color);
+typedef void (GLAPIENTRY *PFNGLCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+typedef void (GLAPIENTRY *PFNGLCOLORPOINTERVINTELPROC)(GLint size, GLenum type, const void ** pointer);
+typedef void (GLAPIENTRY *PFNGLCOLORSUBTABLEPROC)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOLORTABLEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * table);
+typedef void (GLAPIENTRY *PFNGLCOLORTABLEEXTPROC)(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void * table);
+typedef void (GLAPIENTRY *PFNGLCOLORTABLEPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLCOLORTABLEPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLCOLORTABLESGIPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * table);
+typedef void (GLAPIENTRY *PFNGLCOMBINERINPUTNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (GLAPIENTRY *PFNGLCOMBINEROUTPUTNVPROC)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+typedef void (GLAPIENTRY *PFNGLCOMBINERPARAMETERFNVPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLCOMBINERPARAMETERFVNVPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLCOMBINERPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLCOMBINERPARAMETERIVNVPROC)(GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLCOMMANDLISTSEGMENTSNVPROC)(GLuint list, GLuint segments);
+typedef void (GLAPIENTRY *PFNGLCOMPILECOMMANDLISTNVPROC)(GLuint list);
+typedef void (GLAPIENTRY *PFNGLCOMPILESHADERPROC)(GLuint shader);
+typedef void (GLAPIENTRY *PFNGLCOMPILESHADERARBPROC)(GLhandleARB shaderObj);
+typedef void (GLAPIENTRY *PFNGLCOMPILESHADERINCLUDEARBPROC)(GLuint shader, GLsizei count, const GLchar *const* path, const GLint * length);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXIMAGE1DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXIMAGE2DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXIMAGE3DPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXIMAGE3DARBPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXIMAGE3DOESPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXSUBIMAGE3DOESPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+typedef void (GLAPIENTRY *PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * bits);
+typedef void (GLAPIENTRY *PFNGLCONSERVATIVERASTERPARAMETERFNVPROC)(GLenum pname, GLfloat value);
+typedef void (GLAPIENTRY *PFNGLCONSERVATIVERASTERPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONFILTER1DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * image);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * image);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONFILTER2DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * image);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * image);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat params);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERFEXTPROC)(GLenum target, GLenum pname, GLfloat params);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERIPROC)(GLenum target, GLenum pname, GLint params);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERIEXTPROC)(GLenum target, GLenum pname, GLint params);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLCOPYBUFFERSUBDATAPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLCOPYBUFFERSUBDATANVPROC)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLCOPYCOLORSUBTABLEPROC)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYCOLORSUBTABLEEXTPROC)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYCOLORTABLEPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYCOLORTABLESGIPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYCONVOLUTIONFILTER1DPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYCONVOLUTIONFILTER2DPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYIMAGESUBDATAPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void (GLAPIENTRY *PFNGLCOPYIMAGESUBDATAEXTPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void (GLAPIENTRY *PFNGLCOPYIMAGESUBDATANVPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAPIENTRY *PFNGLCOPYIMAGESUBDATAOESPROC)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void (GLAPIENTRY *PFNGLCOPYMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (GLAPIENTRY *PFNGLCOPYMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (GLAPIENTRY *PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYNAMEDBUFFERSUBDATAPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLCOPYPATHNVPROC)(GLuint resultPath, GLuint srcPath);
+typedef void (GLAPIENTRY *PFNGLCOPYPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXIMAGE1DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXIMAGE1DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXIMAGE2DPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXIMAGE2DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXSUBIMAGE3DOESPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTURELEVELSAPPLEPROC)(GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLCOVERFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+typedef void (GLAPIENTRY *PFNGLCOVERFILLPATHNVPROC)(GLuint path, GLenum coverMode);
+typedef void (GLAPIENTRY *PFNGLCOVERSTROKEPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+typedef void (GLAPIENTRY *PFNGLCOVERSTROKEPATHNVPROC)(GLuint path, GLenum coverMode);
+typedef void (GLAPIENTRY *PFNGLCOVERAGEMASKNVPROC)(GLboolean mask);
+typedef void (GLAPIENTRY *PFNGLCOVERAGEMODULATIONNVPROC)(GLenum components);
+typedef void (GLAPIENTRY *PFNGLCOVERAGEMODULATIONTABLENVPROC)(GLsizei n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLCOVERAGEOPERATIONNVPROC)(GLenum operation);
+typedef void (GLAPIENTRY *PFNGLCREATEBUFFERSPROC)(GLsizei n, GLuint * buffers);
+typedef void (GLAPIENTRY *PFNGLCREATECOMMANDLISTSNVPROC)(GLsizei n, GLuint * lists);
+typedef void (GLAPIENTRY *PFNGLCREATEFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers);
+typedef void (GLAPIENTRY *PFNGLCREATEMEMORYOBJECTSEXTPROC)(GLsizei n, GLuint * memoryObjects);
+typedef void (GLAPIENTRY *PFNGLCREATEPERFQUERYINTELPROC)(GLuint queryId, GLuint * queryHandle);
+typedef GLuint (GLAPIENTRY *PFNGLCREATEPROGRAMPROC)(void);
+typedef GLhandleARB (GLAPIENTRY *PFNGLCREATEPROGRAMOBJECTARBPROC)(void);
+typedef void (GLAPIENTRY *PFNGLCREATEPROGRAMPIPELINESPROC)(GLsizei n, GLuint * pipelines);
+typedef GLuint (GLAPIENTRY *PFNGLCREATEPROGRESSFENCENVXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLCREATEQUERIESPROC)(GLenum target, GLsizei n, GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLCREATERENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers);
+typedef void (GLAPIENTRY *PFNGLCREATESAMPLERSPROC)(GLsizei n, GLuint * samplers);
+typedef GLuint (GLAPIENTRY *PFNGLCREATESHADERPROC)(GLenum type);
+typedef GLhandleARB (GLAPIENTRY *PFNGLCREATESHADEROBJECTARBPROC)(GLenum shaderType);
+typedef GLuint (GLAPIENTRY *PFNGLCREATESHADERPROGRAMEXTPROC)(GLenum type, const GLchar * string);
+typedef GLuint (GLAPIENTRY *PFNGLCREATESHADERPROGRAMVPROC)(GLenum type, GLsizei count, const GLchar *const* strings);
+typedef GLuint (GLAPIENTRY *PFNGLCREATESHADERPROGRAMVEXTPROC)(GLenum type, GLsizei count, const GLchar ** strings);
+typedef void (GLAPIENTRY *PFNGLCREATESTATESNVPROC)(GLsizei n, GLuint * states);
+typedef GLsync (GLAPIENTRY *PFNGLCREATESYNCFROMCLEVENTARBPROC)(struct _cl_context * context, struct _cl_event * event, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLCREATETEXTURESPROC)(GLenum target, GLsizei n, GLuint * textures);
+typedef void (GLAPIENTRY *PFNGLCREATETRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLCREATEVERTEXARRAYSPROC)(GLsizei n, GLuint * arrays);
+typedef void (GLAPIENTRY *PFNGLCULLFACEPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLCULLPARAMETERDVEXTPROC)(GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLCULLPARAMETERFVEXTPROC)(GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLCURRENTPALETTEMATRIXARBPROC)(GLint index);
+typedef void (GLAPIENTRY *PFNGLCURRENTPALETTEMATRIXOESPROC)(GLuint matrixpaletteindex);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGECALLBACKPROC)(GLDEBUGPROC callback, const void * userParam);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGECALLBACKAMDPROC)(GLDEBUGPROCAMD callback, void * userParam);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGECALLBACKARBPROC)(GLDEBUGPROCARB callback, const void * userParam);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGECALLBACKKHRPROC)(GLDEBUGPROCKHR callback, const void * userParam);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGECONTROLPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGECONTROLARBPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGECONTROLKHRPROC)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGEENABLEAMDPROC)(GLenum category, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGEINSERTPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGEINSERTAMDPROC)(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar * buf);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGEINSERTARBPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+typedef void (GLAPIENTRY *PFNGLDEBUGMESSAGEINSERTKHRPROC)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+typedef void (GLAPIENTRY *PFNGLDEFORMSGIXPROC)(GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLDEFORMATIONMAP3DSGIXPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble * points);
+typedef void (GLAPIENTRY *PFNGLDEFORMATIONMAP3FSGIXPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLDELETEASYNCMARKERSSGIXPROC)(GLuint marker, GLsizei range);
+typedef void (GLAPIENTRY *PFNGLDELETEBUFFERSPROC)(GLsizei n, const GLuint * buffers);
+typedef void (GLAPIENTRY *PFNGLDELETEBUFFERSARBPROC)(GLsizei n, const GLuint * buffers);
+typedef void (GLAPIENTRY *PFNGLDELETECOMMANDLISTSNVPROC)(GLsizei n, const GLuint * lists);
+typedef void (GLAPIENTRY *PFNGLDELETEFENCESAPPLEPROC)(GLsizei n, const GLuint * fences);
+typedef void (GLAPIENTRY *PFNGLDELETEFENCESNVPROC)(GLsizei n, const GLuint * fences);
+typedef void (GLAPIENTRY *PFNGLDELETEFRAGMENTSHADERATIPROC)(GLuint id);
+typedef void (GLAPIENTRY *PFNGLDELETEFRAMEBUFFERSPROC)(GLsizei n, const GLuint * framebuffers);
+typedef void (GLAPIENTRY *PFNGLDELETEFRAMEBUFFERSEXTPROC)(GLsizei n, const GLuint * framebuffers);
+typedef void (GLAPIENTRY *PFNGLDELETEFRAMEBUFFERSOESPROC)(GLsizei n, const GLuint * framebuffers);
+typedef void (GLAPIENTRY *PFNGLDELETELISTSPROC)(GLuint list, GLsizei range);
+typedef void (GLAPIENTRY *PFNGLDELETEMEMORYOBJECTSEXTPROC)(GLsizei n, const GLuint * memoryObjects);
+typedef void (GLAPIENTRY *PFNGLDELETENAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLDELETENAMESAMDPROC)(GLenum identifier, GLuint num, const GLuint * names);
+typedef void (GLAPIENTRY *PFNGLDELETEOBJECTARBPROC)(GLhandleARB obj);
+typedef void (GLAPIENTRY *PFNGLDELETEOCCLUSIONQUERIESNVPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLDELETEPATHSNVPROC)(GLuint path, GLsizei range);
+typedef void (GLAPIENTRY *PFNGLDELETEPERFMONITORSAMDPROC)(GLsizei n, GLuint * monitors);
+typedef void (GLAPIENTRY *PFNGLDELETEPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void (GLAPIENTRY *PFNGLDELETEPROGRAMPROC)(GLuint program);
+typedef void (GLAPIENTRY *PFNGLDELETEPROGRAMPIPELINESPROC)(GLsizei n, const GLuint * pipelines);
+typedef void (GLAPIENTRY *PFNGLDELETEPROGRAMPIPELINESEXTPROC)(GLsizei n, const GLuint * pipelines);
+typedef void (GLAPIENTRY *PFNGLDELETEPROGRAMSARBPROC)(GLsizei n, const GLuint * programs);
+typedef void (GLAPIENTRY *PFNGLDELETEPROGRAMSNVPROC)(GLsizei n, const GLuint * programs);
+typedef void (GLAPIENTRY *PFNGLDELETEQUERIESPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLDELETEQUERIESARBPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLDELETEQUERIESEXTPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLDELETEQUERYRESOURCETAGNVPROC)(GLsizei n, const GLint * tagIds);
+typedef void (GLAPIENTRY *PFNGLDELETERENDERBUFFERSPROC)(GLsizei n, const GLuint * renderbuffers);
+typedef void (GLAPIENTRY *PFNGLDELETERENDERBUFFERSEXTPROC)(GLsizei n, const GLuint * renderbuffers);
+typedef void (GLAPIENTRY *PFNGLDELETERENDERBUFFERSOESPROC)(GLsizei n, const GLuint * renderbuffers);
+typedef void (GLAPIENTRY *PFNGLDELETESAMPLERSPROC)(GLsizei count, const GLuint * samplers);
+typedef void (GLAPIENTRY *PFNGLDELETESEMAPHORESEXTPROC)(GLsizei n, const GLuint * semaphores);
+typedef void (GLAPIENTRY *PFNGLDELETESHADERPROC)(GLuint shader);
+typedef void (GLAPIENTRY *PFNGLDELETESTATESNVPROC)(GLsizei n, const GLuint * states);
+typedef void (GLAPIENTRY *PFNGLDELETESYNCPROC)(GLsync sync);
+typedef void (GLAPIENTRY *PFNGLDELETESYNCAPPLEPROC)(GLsync sync);
+typedef void (GLAPIENTRY *PFNGLDELETETEXTURESPROC)(GLsizei n, const GLuint * textures);
+typedef void (GLAPIENTRY *PFNGLDELETETEXTURESEXTPROC)(GLsizei n, const GLuint * textures);
+typedef void (GLAPIENTRY *PFNGLDELETETRANSFORMFEEDBACKSPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLDELETETRANSFORMFEEDBACKSNVPROC)(GLsizei n, const GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLDELETEVERTEXARRAYSPROC)(GLsizei n, const GLuint * arrays);
+typedef void (GLAPIENTRY *PFNGLDELETEVERTEXARRAYSAPPLEPROC)(GLsizei n, const GLuint * arrays);
+typedef void (GLAPIENTRY *PFNGLDELETEVERTEXARRAYSOESPROC)(GLsizei n, const GLuint * arrays);
+typedef void (GLAPIENTRY *PFNGLDELETEVERTEXSHADEREXTPROC)(GLuint id);
+typedef void (GLAPIENTRY *PFNGLDEPTHBOUNDSEXTPROC)(GLclampd zmin, GLclampd zmax);
+typedef void (GLAPIENTRY *PFNGLDEPTHBOUNDSDNVPROC)(GLdouble zmin, GLdouble zmax);
+typedef void (GLAPIENTRY *PFNGLDEPTHFUNCPROC)(GLenum func);
+typedef void (GLAPIENTRY *PFNGLDEPTHMASKPROC)(GLboolean flag);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEPROC)(GLdouble n, GLdouble f);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEARRAYFVNVPROC)(GLuint first, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEARRAYFVOESPROC)(GLuint first, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEARRAYVPROC)(GLuint first, GLsizei count, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEINDEXEDPROC)(GLuint index, GLdouble n, GLdouble f);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEINDEXEDFNVPROC)(GLuint index, GLfloat n, GLfloat f);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEINDEXEDFOESPROC)(GLuint index, GLfloat n, GLfloat f);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEDNVPROC)(GLdouble zNear, GLdouble zFar);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEFPROC)(GLfloat n, GLfloat f);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEFOESPROC)(GLclampf n, GLclampf f);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEXPROC)(GLfixed n, GLfixed f);
+typedef void (GLAPIENTRY *PFNGLDEPTHRANGEXOESPROC)(GLfixed n, GLfixed f);
+typedef void (GLAPIENTRY *PFNGLDETACHOBJECTARBPROC)(GLhandleARB containerObj, GLhandleARB attachedObj);
+typedef void (GLAPIENTRY *PFNGLDETACHSHADERPROC)(GLuint program, GLuint shader);
+typedef void (GLAPIENTRY *PFNGLDETAILTEXFUNCSGISPROC)(GLenum target, GLsizei n, const GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLDISABLEPROC)(GLenum cap);
+typedef void (GLAPIENTRY *PFNGLDISABLECLIENTSTATEPROC)(GLenum array);
+typedef void (GLAPIENTRY *PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEDRIVERCONTROLQCOMPROC)(GLuint driverControl);
+typedef void (GLAPIENTRY *PFNGLDISABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
+typedef void (GLAPIENTRY *PFNGLDISABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array);
+typedef void (GLAPIENTRY *PFNGLDISABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname);
+typedef void (GLAPIENTRY *PFNGLDISABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEIPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEIEXTPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEINVPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISABLEIOESPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLDISCARDFRAMEBUFFEREXTPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments);
+typedef void (GLAPIENTRY *PFNGLDISPATCHCOMPUTEPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
+typedef void (GLAPIENTRY *PFNGLDISPATCHCOMPUTEGROUPSIZEARBPROC)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
+typedef void (GLAPIENTRY *PFNGLDISPATCHCOMPUTEINDIRECTPROC)(GLintptr indirect);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSEXTPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSINDIRECTPROC)(GLenum mode, const void * indirect);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSINSTANCEDPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSINSTANCEDANGLEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSINSTANCEDARBPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEEXTPROC)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSINSTANCEDEXTPROC)(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLDRAWARRAYSINSTANCEDNVPROC)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLDRAWBUFFERPROC)(GLenum buf);
+typedef void (GLAPIENTRY *PFNGLDRAWBUFFERSPROC)(GLsizei n, const GLenum * bufs);
+typedef void (GLAPIENTRY *PFNGLDRAWBUFFERSARBPROC)(GLsizei n, const GLenum * bufs);
+typedef void (GLAPIENTRY *PFNGLDRAWBUFFERSATIPROC)(GLsizei n, const GLenum * bufs);
+typedef void (GLAPIENTRY *PFNGLDRAWBUFFERSEXTPROC)(GLsizei n, const GLenum * bufs);
+typedef void (GLAPIENTRY *PFNGLDRAWBUFFERSINDEXEDEXTPROC)(GLint n, const GLenum * location, const GLint * indices);
+typedef void (GLAPIENTRY *PFNGLDRAWBUFFERSNVPROC)(GLsizei n, const GLenum * bufs);
+typedef void (GLAPIENTRY *PFNGLDRAWCOMMANDSADDRESSNVPROC)(GLenum primitiveMode, const GLuint64 * indirects, const GLsizei * sizes, GLuint count);
+typedef void (GLAPIENTRY *PFNGLDRAWCOMMANDSNVPROC)(GLenum primitiveMode, GLuint buffer, const GLintptr * indirects, const GLsizei * sizes, GLuint count);
+typedef void (GLAPIENTRY *PFNGLDRAWCOMMANDSSTATESADDRESSNVPROC)(const GLuint64 * indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+typedef void (GLAPIENTRY *PFNGLDRAWCOMMANDSSTATESNVPROC)(GLuint buffer, const GLintptr * indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, GLint first, GLsizei count);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTARRAYATIPROC)(GLenum mode, GLsizei count);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSBASEVERTEXEXTPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSBASEVERTEXOESPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void * indirect);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDANGLEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDARBPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEEXTPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEEXTPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXEXTPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXOESPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDEXTPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLDRAWELEMENTSINSTANCEDNVPROC)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLDRAWMESHARRAYSSUNPROC)(GLenum mode, GLint first, GLsizei count, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLDRAWMESHTASKSINDIRECTNVPROC)(GLintptr indirect);
+typedef void (GLAPIENTRY *PFNGLDRAWMESHTASKSNVPROC)(GLuint first, GLuint count);
+typedef void (GLAPIENTRY *PFNGLDRAWPIXELSPROC)(GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+typedef void (GLAPIENTRY *PFNGLDRAWRANGEELEMENTARRAYATIPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count);
+typedef void (GLAPIENTRY *PFNGLDRAWRANGEELEMENTSPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices);
+typedef void (GLAPIENTRY *PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWRANGEELEMENTSBASEVERTEXEXTPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWRANGEELEMENTSBASEVERTEXOESPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+typedef void (GLAPIENTRY *PFNGLDRAWRANGEELEMENTSEXTPROC)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXFOESPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXFVOESPROC)(const GLfloat * coords);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXIOESPROC)(GLint x, GLint y, GLint z, GLint width, GLint height);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXIVOESPROC)(const GLint * coords);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXSOESPROC)(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXSVOESPROC)(const GLshort * coords);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXTURENVPROC)(GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXXOESPROC)(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
+typedef void (GLAPIENTRY *PFNGLDRAWTEXXVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLDRAWTRANSFORMFEEDBACKPROC)(GLenum mode, GLuint id);
+typedef void (GLAPIENTRY *PFNGLDRAWTRANSFORMFEEDBACKEXTPROC)(GLenum mode, GLuint id);
+typedef void (GLAPIENTRY *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC)(GLenum mode, GLuint id, GLsizei instancecount);
+typedef void (GLAPIENTRY *PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDEXTPROC)(GLenum mode, GLuint id, GLsizei instancecount);
+typedef void (GLAPIENTRY *PFNGLDRAWTRANSFORMFEEDBACKNVPROC)(GLenum mode, GLuint id);
+typedef void (GLAPIENTRY *PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC)(GLenum mode, GLuint id, GLuint stream);
+typedef void (GLAPIENTRY *PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+typedef void (GLAPIENTRY *PFNGLDRAWVKIMAGENVPROC)(GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+typedef void (GLAPIENTRY *PFNGLEGLIMAGETARGETRENDERBUFFERSTORAGEOESPROC)(GLenum target, GLeglImageOES image);
+typedef void (GLAPIENTRY *PFNGLEGLIMAGETARGETTEXSTORAGEEXTPROC)(GLenum target, GLeglImageOES image, const GLint* attrib_list);
+typedef void (GLAPIENTRY *PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)(GLenum target, GLeglImageOES image);
+typedef void (GLAPIENTRY *PFNGLEGLIMAGETARGETTEXTURESTORAGEEXTPROC)(GLuint texture, GLeglImageOES image, const GLint* attrib_list);
+typedef void (GLAPIENTRY *PFNGLEDGEFLAGPROC)(GLboolean flag);
+typedef void (GLAPIENTRY *PFNGLEDGEFLAGFORMATNVPROC)(GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLEDGEFLAGPOINTERPROC)(GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLEDGEFLAGPOINTEREXTPROC)(GLsizei stride, GLsizei count, const GLboolean * pointer);
+typedef void (GLAPIENTRY *PFNGLEDGEFLAGPOINTERLISTIBMPROC)(GLint stride, const GLboolean ** pointer, GLint ptrstride);
+typedef void (GLAPIENTRY *PFNGLEDGEFLAGVPROC)(const GLboolean * flag);
+typedef void (GLAPIENTRY *PFNGLELEMENTPOINTERAPPLEPROC)(GLenum type, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLELEMENTPOINTERATIPROC)(GLenum type, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLENABLEPROC)(GLenum cap);
+typedef void (GLAPIENTRY *PFNGLENABLECLIENTSTATEPROC)(GLenum array);
+typedef void (GLAPIENTRY *PFNGLENABLECLIENTSTATEINDEXEDEXTPROC)(GLenum array, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLECLIENTSTATEIEXTPROC)(GLenum array, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEDRIVERCONTROLQCOMPROC)(GLuint driverControl);
+typedef void (GLAPIENTRY *PFNGLENABLEINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEVARIANTCLIENTSTATEEXTPROC)(GLuint id);
+typedef void (GLAPIENTRY *PFNGLENABLEVERTEXARRAYATTRIBPROC)(GLuint vaobj, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEVERTEXARRAYATTRIBEXTPROC)(GLuint vaobj, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEVERTEXARRAYEXTPROC)(GLuint vaobj, GLenum array);
+typedef void (GLAPIENTRY *PFNGLENABLEVERTEXATTRIBAPPLEPROC)(GLuint index, GLenum pname);
+typedef void (GLAPIENTRY *PFNGLENABLEVERTEXATTRIBARRAYPROC)(GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEVERTEXATTRIBARRAYARBPROC)(GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEIPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEIEXTPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEINVPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENABLEIOESPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENDPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDCONDITIONALRENDERPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDCONDITIONALRENDERNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDCONDITIONALRENDERNVXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDFRAGMENTSHADERATIPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDLISTPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDOCCLUSIONQUERYNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDPERFMONITORAMDPROC)(GLuint monitor);
+typedef void (GLAPIENTRY *PFNGLENDPERFQUERYINTELPROC)(GLuint queryHandle);
+typedef void (GLAPIENTRY *PFNGLENDQUERYPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLENDQUERYARBPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLENDQUERYEXTPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLENDQUERYINDEXEDPROC)(GLenum target, GLuint index);
+typedef void (GLAPIENTRY *PFNGLENDTILINGQCOMPROC)(GLbitfield preserveMask);
+typedef void (GLAPIENTRY *PFNGLENDTRANSFORMFEEDBACKPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDTRANSFORMFEEDBACKEXTPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDTRANSFORMFEEDBACKNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDVERTEXSHADEREXTPROC)(void);
+typedef void (GLAPIENTRY *PFNGLENDVIDEOCAPTURENVPROC)(GLuint video_capture_slot);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD1DPROC)(GLdouble u);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD1DVPROC)(const GLdouble * u);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD1FPROC)(GLfloat u);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD1FVPROC)(const GLfloat * u);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD1XOESPROC)(GLfixed u);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD1XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD2DPROC)(GLdouble u, GLdouble v);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD2DVPROC)(const GLdouble * u);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD2FPROC)(GLfloat u, GLfloat v);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD2FVPROC)(const GLfloat * u);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD2XOESPROC)(GLfixed u, GLfixed v);
+typedef void (GLAPIENTRY *PFNGLEVALCOORD2XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLEVALMAPSNVPROC)(GLenum target, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLEVALMESH1PROC)(GLenum mode, GLint i1, GLint i2);
+typedef void (GLAPIENTRY *PFNGLEVALMESH2PROC)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+typedef void (GLAPIENTRY *PFNGLEVALPOINT1PROC)(GLint i);
+typedef void (GLAPIENTRY *PFNGLEVALPOINT2PROC)(GLint i, GLint j);
+typedef void (GLAPIENTRY *PFNGLEVALUATEDEPTHVALUESARBPROC)(void);
+typedef void (GLAPIENTRY *PFNGLEXECUTEPROGRAMNVPROC)(GLenum target, GLuint id, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLEXTGETBUFFERPOINTERVQCOMPROC)(GLenum target, void ** params);
+typedef void (GLAPIENTRY *PFNGLEXTGETBUFFERSQCOMPROC)(GLuint * buffers, GLint maxBuffers, GLint * numBuffers);
+typedef void (GLAPIENTRY *PFNGLEXTGETFRAMEBUFFERSQCOMPROC)(GLuint * framebuffers, GLint maxFramebuffers, GLint * numFramebuffers);
+typedef void (GLAPIENTRY *PFNGLEXTGETPROGRAMBINARYSOURCEQCOMPROC)(GLuint program, GLenum shadertype, GLchar * source, GLint * length);
+typedef void (GLAPIENTRY *PFNGLEXTGETPROGRAMSQCOMPROC)(GLuint * programs, GLint maxPrograms, GLint * numPrograms);
+typedef void (GLAPIENTRY *PFNGLEXTGETRENDERBUFFERSQCOMPROC)(GLuint * renderbuffers, GLint maxRenderbuffers, GLint * numRenderbuffers);
+typedef void (GLAPIENTRY *PFNGLEXTGETSHADERSQCOMPROC)(GLuint * shaders, GLint maxShaders, GLint * numShaders);
+typedef void (GLAPIENTRY *PFNGLEXTGETTEXLEVELPARAMETERIVQCOMPROC)(GLuint texture, GLenum face, GLint level, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLEXTGETTEXSUBIMAGEQCOMPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void * texels);
+typedef void (GLAPIENTRY *PFNGLEXTGETTEXTURESQCOMPROC)(GLuint * textures, GLint maxTextures, GLint * numTextures);
+typedef GLboolean (GLAPIENTRY *PFNGLEXTISPROGRAMBINARYQCOMPROC)(GLuint program);
+typedef void (GLAPIENTRY *PFNGLEXTTEXOBJECTSTATEOVERRIDEIQCOMPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLEXTRACTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
+typedef void (GLAPIENTRY *PFNGLFEEDBACKBUFFERPROC)(GLsizei size, GLenum type, GLfloat * buffer);
+typedef void (GLAPIENTRY *PFNGLFEEDBACKBUFFERXOESPROC)(GLsizei n, GLenum type, const GLfixed * buffer);
+typedef GLsync (GLAPIENTRY *PFNGLFENCESYNCPROC)(GLenum condition, GLbitfield flags);
+typedef GLsync (GLAPIENTRY *PFNGLFENCESYNCAPPLEPROC)(GLenum condition, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLFINALCOMBINERINPUTNVPROC)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (GLAPIENTRY *PFNGLFINISHPROC)(void);
+typedef GLint (GLAPIENTRY *PFNGLFINISHASYNCSGIXPROC)(GLuint * markerp);
+typedef void (GLAPIENTRY *PFNGLFINISHFENCEAPPLEPROC)(GLuint fence);
+typedef void (GLAPIENTRY *PFNGLFINISHFENCENVPROC)(GLuint fence);
+typedef void (GLAPIENTRY *PFNGLFINISHOBJECTAPPLEPROC)(GLenum object, GLint name);
+typedef void (GLAPIENTRY *PFNGLFINISHTEXTURESUNXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLFLUSHPROC)(void);
+typedef void (GLAPIENTRY *PFNGLFLUSHMAPPEDBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
+typedef void (GLAPIENTRY *PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC)(GLenum target, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLFLUSHMAPPEDBUFFERRANGEEXTPROC)(GLenum target, GLintptr offset, GLsizeiptr length);
+typedef void (GLAPIENTRY *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+typedef void (GLAPIENTRY *PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+typedef void (GLAPIENTRY *PFNGLFLUSHPIXELDATARANGENVPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLFLUSHRASTERSGIXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLFLUSHSTATICDATAIBMPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, void * pointer);
+typedef void (GLAPIENTRY *PFNGLFLUSHVERTEXARRAYRANGENVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDPOINTERPROC)(GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDPOINTEREXTPROC)(GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDPOINTERLISTIBMPROC)(GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDDPROC)(GLdouble coord);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDDEXTPROC)(GLdouble coord);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDDVPROC)(const GLdouble * coord);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDDVEXTPROC)(const GLdouble * coord);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDFPROC)(GLfloat coord);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDFEXTPROC)(GLfloat coord);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDFVPROC)(const GLfloat * coord);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDFVEXTPROC)(const GLfloat * coord);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDHNVPROC)(GLhalfNV fog);
+typedef void (GLAPIENTRY *PFNGLFOGCOORDHVNVPROC)(const GLhalfNV * fog);
+typedef void (GLAPIENTRY *PFNGLFOGFUNCSGISPROC)(GLsizei n, const GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLFOGFPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLFOGFVPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLFOGIPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLFOGIVPROC)(GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLFOGXPROC)(GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLFOGXOESPROC)(GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLFOGXVPROC)(GLenum pname, const GLfixed * param);
+typedef void (GLAPIENTRY *PFNGLFOGXVOESPROC)(GLenum pname, const GLfixed * param);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTCOLORMATERIALSGIXPROC)(GLenum face, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTCOVERAGECOLORNVPROC)(GLuint color);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTLIGHTMODELFSGIXPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTLIGHTMODELFVSGIXPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTLIGHTMODELISGIXPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTLIGHTMODELIVSGIXPROC)(GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTLIGHTFSGIXPROC)(GLenum light, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTLIGHTISGIXPROC)(GLenum light, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTMATERIALFSGIXPROC)(GLenum face, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTMATERIALISGIXPROC)(GLenum face, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLFRAMETERMINATORGREMEDYPROC)(void);
+typedef void (GLAPIENTRY *PFNGLFRAMEZOOMSGIXPROC)(GLint factor);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC)(GLuint framebuffer, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC)(GLuint framebuffer, GLsizei n, const GLenum * bufs);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERFETCHBARRIEREXTPROC)(void);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC)(void);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERFOVEATIONCONFIGQCOMPROC)(GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint * providedFeatures);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERFOVEATIONPARAMETERSQCOMPROC)(GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERPARAMETERIMESAPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)(GLuint target, GLsizei size);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERREADBUFFEREXTPROC)(GLuint framebuffer, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERRENDERBUFFERPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERRENDERBUFFEROESPROC)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLenum target, GLuint start, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(GLenum target, GLuint start, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)(GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTUREPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE1DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE1DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE2DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE2DDOWNSAMPLEIMGPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEIMGPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE2DOESPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE3DPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE3DEXTPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURE3DOESPROC)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTUREARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTUREEXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTUREFACEARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURELAYERPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURELAYERARBPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURELAYERDOWNSAMPLEIMGPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
+typedef void (GLAPIENTRY *PFNGLFRAMEBUFFERTEXTUREOESPROC)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLFREEOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLFRONTFACEPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLFRUSTUMPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+typedef void (GLAPIENTRY *PFNGLFRUSTUMFPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+typedef void (GLAPIENTRY *PFNGLFRUSTUMFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+typedef void (GLAPIENTRY *PFNGLFRUSTUMXPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+typedef void (GLAPIENTRY *PFNGLFRUSTUMXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+typedef GLuint (GLAPIENTRY *PFNGLGENASYNCMARKERSSGIXPROC)(GLsizei range);
+typedef void (GLAPIENTRY *PFNGLGENBUFFERSPROC)(GLsizei n, GLuint * buffers);
+typedef void (GLAPIENTRY *PFNGLGENBUFFERSARBPROC)(GLsizei n, GLuint * buffers);
+typedef void (GLAPIENTRY *PFNGLGENFENCESAPPLEPROC)(GLsizei n, GLuint * fences);
+typedef void (GLAPIENTRY *PFNGLGENFENCESNVPROC)(GLsizei n, GLuint * fences);
+typedef GLuint (GLAPIENTRY *PFNGLGENFRAGMENTSHADERSATIPROC)(GLuint range);
+typedef void (GLAPIENTRY *PFNGLGENFRAMEBUFFERSPROC)(GLsizei n, GLuint * framebuffers);
+typedef void (GLAPIENTRY *PFNGLGENFRAMEBUFFERSEXTPROC)(GLsizei n, GLuint * framebuffers);
+typedef void (GLAPIENTRY *PFNGLGENFRAMEBUFFERSOESPROC)(GLsizei n, GLuint * framebuffers);
+typedef GLuint (GLAPIENTRY *PFNGLGENLISTSPROC)(GLsizei range);
+typedef void (GLAPIENTRY *PFNGLGENNAMESAMDPROC)(GLenum identifier, GLuint num, GLuint * names);
+typedef void (GLAPIENTRY *PFNGLGENOCCLUSIONQUERIESNVPROC)(GLsizei n, GLuint * ids);
+typedef GLuint (GLAPIENTRY *PFNGLGENPATHSNVPROC)(GLsizei range);
+typedef void (GLAPIENTRY *PFNGLGENPERFMONITORSAMDPROC)(GLsizei n, GLuint * monitors);
+typedef void (GLAPIENTRY *PFNGLGENPROGRAMPIPELINESPROC)(GLsizei n, GLuint * pipelines);
+typedef void (GLAPIENTRY *PFNGLGENPROGRAMPIPELINESEXTPROC)(GLsizei n, GLuint * pipelines);
+typedef void (GLAPIENTRY *PFNGLGENPROGRAMSARBPROC)(GLsizei n, GLuint * programs);
+typedef void (GLAPIENTRY *PFNGLGENPROGRAMSNVPROC)(GLsizei n, GLuint * programs);
+typedef void (GLAPIENTRY *PFNGLGENQUERIESPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLGENQUERIESARBPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLGENQUERIESEXTPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLGENQUERYRESOURCETAGNVPROC)(GLsizei n, GLint * tagIds);
+typedef void (GLAPIENTRY *PFNGLGENRENDERBUFFERSPROC)(GLsizei n, GLuint * renderbuffers);
+typedef void (GLAPIENTRY *PFNGLGENRENDERBUFFERSEXTPROC)(GLsizei n, GLuint * renderbuffers);
+typedef void (GLAPIENTRY *PFNGLGENRENDERBUFFERSOESPROC)(GLsizei n, GLuint * renderbuffers);
+typedef void (GLAPIENTRY *PFNGLGENSAMPLERSPROC)(GLsizei count, GLuint * samplers);
+typedef void (GLAPIENTRY *PFNGLGENSEMAPHORESEXTPROC)(GLsizei n, GLuint * semaphores);
+typedef GLuint (GLAPIENTRY *PFNGLGENSYMBOLSEXTPROC)(GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
+typedef void (GLAPIENTRY *PFNGLGENTEXTURESPROC)(GLsizei n, GLuint * textures);
+typedef void (GLAPIENTRY *PFNGLGENTEXTURESEXTPROC)(GLsizei n, GLuint * textures);
+typedef void (GLAPIENTRY *PFNGLGENTRANSFORMFEEDBACKSPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLGENTRANSFORMFEEDBACKSNVPROC)(GLsizei n, GLuint * ids);
+typedef void (GLAPIENTRY *PFNGLGENVERTEXARRAYSPROC)(GLsizei n, GLuint * arrays);
+typedef void (GLAPIENTRY *PFNGLGENVERTEXARRAYSAPPLEPROC)(GLsizei n, GLuint * arrays);
+typedef void (GLAPIENTRY *PFNGLGENVERTEXARRAYSOESPROC)(GLsizei n, GLuint * arrays);
+typedef GLuint (GLAPIENTRY *PFNGLGENVERTEXSHADERSEXTPROC)(GLuint range);
+typedef void (GLAPIENTRY *PFNGLGENERATEMIPMAPPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLGENERATEMIPMAPEXTPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLGENERATEMIPMAPOESPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLGENERATEMULTITEXMIPMAPEXTPROC)(GLenum texunit, GLenum target);
+typedef void (GLAPIENTRY *PFNGLGENERATETEXTUREMIPMAPPROC)(GLuint texture);
+typedef void (GLAPIENTRY *PFNGLGENERATETEXTUREMIPMAPEXTPROC)(GLuint texture, GLenum target);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC)(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEATTRIBPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEATTRIBARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name);
+typedef void (GLAPIENTRY *PFNGLGETACTIVESUBROUTINENAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEUNIFORMPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEUNIFORMARBPROC)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEUNIFORMBLOCKIVPROC)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEUNIFORMNAMEPROC)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEUNIFORMSIVPROC)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETACTIVEVARYINGNVPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETARRAYOBJECTFVATIPROC)(GLenum array, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETARRAYOBJECTIVATIPROC)(GLenum array, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETATTACHEDOBJECTSARBPROC)(GLhandleARB containerObj, GLsizei maxCount, GLsizei * count, GLhandleARB * obj);
+typedef void (GLAPIENTRY *PFNGLGETATTACHEDSHADERSPROC)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
+typedef GLint (GLAPIENTRY *PFNGLGETATTRIBLOCATIONPROC)(GLuint program, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETATTRIBLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB * name);
+typedef void (GLAPIENTRY *PFNGLGETBOOLEANINDEXEDVEXTPROC)(GLenum target, GLuint index, GLboolean * data);
+typedef void (GLAPIENTRY *PFNGLGETBOOLEANI_VPROC)(GLenum target, GLuint index, GLboolean * data);
+typedef void (GLAPIENTRY *PFNGLGETBOOLEANVPROC)(GLenum pname, GLboolean * data);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERPARAMETERI64VPROC)(GLenum target, GLenum pname, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERPARAMETERIVARBPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERPARAMETERUI64VNVPROC)(GLenum target, GLenum pname, GLuint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERPOINTERVPROC)(GLenum target, GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERPOINTERVARBPROC)(GLenum target, GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERPOINTERVOESPROC)(GLenum target, GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERSUBDATAPROC)(GLenum target, GLintptr offset, GLsizeiptr size, void * data);
+typedef void (GLAPIENTRY *PFNGLGETBUFFERSUBDATAARBPROC)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data);
+typedef void (GLAPIENTRY *PFNGLGETCLIPPLANEPROC)(GLenum plane, GLdouble * equation);
+typedef void (GLAPIENTRY *PFNGLGETCLIPPLANEFPROC)(GLenum plane, GLfloat * equation);
+typedef void (GLAPIENTRY *PFNGLGETCLIPPLANEFOESPROC)(GLenum plane, GLfloat * equation);
+typedef void (GLAPIENTRY *PFNGLGETCLIPPLANEXPROC)(GLenum plane, GLfixed * equation);
+typedef void (GLAPIENTRY *PFNGLGETCLIPPLANEXOESPROC)(GLenum plane, GLfixed * equation);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type, void * table);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLEEXTPROC)(GLenum target, GLenum format, GLenum type, void * data);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLEPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLEPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLEPARAMETERFVSGIPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLEPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLEPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLEPARAMETERIVSGIPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETCOLORTABLESGIPROC)(GLenum target, GLenum format, GLenum type, void * table);
+typedef void (GLAPIENTRY *PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC)(GLenum stage, GLenum portion, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC)(GLenum stage, GLenum pname, GLfloat * params);
+typedef GLuint (GLAPIENTRY *PFNGLGETCOMMANDHEADERNVPROC)(GLenum tokenID, GLuint size);
+typedef void (GLAPIENTRY *PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint lod, void * img);
+typedef void (GLAPIENTRY *PFNGLGETCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint level, void * img);
+typedef void (GLAPIENTRY *PFNGLGETCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint level, void * img);
+typedef void (GLAPIENTRY *PFNGLGETCOMPRESSEDTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLsizei bufSize, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint lod, void * img);
+typedef void (GLAPIENTRY *PFNGLGETCOMPRESSEDTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type, void * image);
+typedef void (GLAPIENTRY *PFNGLGETCONVOLUTIONFILTEREXTPROC)(GLenum target, GLenum format, GLenum type, void * image);
+typedef void (GLAPIENTRY *PFNGLGETCONVOLUTIONPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETCONVOLUTIONPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETCONVOLUTIONPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETCOVERAGEMODULATIONTABLENVPROC)(GLsizei bufsize, GLfloat * v);
+typedef GLuint (GLAPIENTRY *PFNGLGETDEBUGMESSAGELOGPROC)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+typedef GLuint (GLAPIENTRY *PFNGLGETDEBUGMESSAGELOGAMDPROC)(GLuint count, GLsizei bufsize, GLenum * categories, GLuint * severities, GLuint * ids, GLsizei * lengths, GLchar * message);
+typedef GLuint (GLAPIENTRY *PFNGLGETDEBUGMESSAGELOGARBPROC)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+typedef GLuint (GLAPIENTRY *PFNGLGETDEBUGMESSAGELOGKHRPROC)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+typedef void (GLAPIENTRY *PFNGLGETDETAILTEXFUNCSGISPROC)(GLenum target, GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLGETDOUBLEINDEXEDVEXTPROC)(GLenum target, GLuint index, GLdouble * data);
+typedef void (GLAPIENTRY *PFNGLGETDOUBLEI_VPROC)(GLenum target, GLuint index, GLdouble * data);
+typedef void (GLAPIENTRY *PFNGLGETDOUBLEI_VEXTPROC)(GLenum pname, GLuint index, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETDOUBLEVPROC)(GLenum pname, GLdouble * data);
+typedef void (GLAPIENTRY *PFNGLGETDRIVERCONTROLSTRINGQCOMPROC)(GLuint driverControl, GLsizei bufSize, GLsizei * length, GLchar * driverControlString);
+typedef void (GLAPIENTRY *PFNGLGETDRIVERCONTROLSQCOMPROC)(GLint * num, GLsizei size, GLuint * driverControls);
+typedef GLenum (GLAPIENTRY *PFNGLGETERRORPROC)(void);
+typedef void (GLAPIENTRY *PFNGLGETFENCEIVNVPROC)(GLuint fence, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC)(GLenum variable, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC)(GLenum variable, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFIRSTPERFQUERYIDINTELPROC)(GLuint * queryId);
+typedef void (GLAPIENTRY *PFNGLGETFIXEDVPROC)(GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETFIXEDVOESPROC)(GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETFLOATINDEXEDVEXTPROC)(GLenum target, GLuint index, GLfloat * data);
+typedef void (GLAPIENTRY *PFNGLGETFLOATI_VPROC)(GLenum target, GLuint index, GLfloat * data);
+typedef void (GLAPIENTRY *PFNGLGETFLOATI_VEXTPROC)(GLenum pname, GLuint index, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETFLOATI_VNVPROC)(GLenum target, GLuint index, GLfloat * data);
+typedef void (GLAPIENTRY *PFNGLGETFLOATI_VOESPROC)(GLenum target, GLuint index, GLfloat * data);
+typedef void (GLAPIENTRY *PFNGLGETFLOATVPROC)(GLenum pname, GLfloat * data);
+typedef void (GLAPIENTRY *PFNGLGETFOGFUNCSGISPROC)(GLfloat * points);
+typedef GLint (GLAPIENTRY *PFNGLGETFRAGDATAINDEXPROC)(GLuint program, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETFRAGDATAINDEXEXTPROC)(GLuint program, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETFRAGDATALOCATIONPROC)(GLuint program, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETFRAGDATALOCATIONEXTPROC)(GLuint program, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETFRAGMENTLIGHTFVSGIXPROC)(GLenum light, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAGMENTLIGHTIVSGIXPROC)(GLenum light, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAGMENTMATERIALFVSGIXPROC)(GLenum face, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAGMENTMATERIALIVSGIXPROC)(GLenum face, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVOESPROC)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAMEBUFFERPARAMETERFVAMDPROC)(GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLGETFRAMEBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETFRAMEBUFFERPARAMETERIVMESAPROC)(GLenum target, GLenum pname, GLint * params);
+typedef GLsizei (GLAPIENTRY *PFNGLGETFRAMEBUFFERPIXELLOCALSTORAGESIZEEXTPROC)(GLuint target);
+typedef GLenum (GLAPIENTRY *PFNGLGETGRAPHICSRESETSTATUSPROC)(void);
+typedef GLenum (GLAPIENTRY *PFNGLGETGRAPHICSRESETSTATUSARBPROC)(void);
+typedef GLenum (GLAPIENTRY *PFNGLGETGRAPHICSRESETSTATUSEXTPROC)(void);
+typedef GLenum (GLAPIENTRY *PFNGLGETGRAPHICSRESETSTATUSKHRPROC)(void);
+typedef GLhandleARB (GLAPIENTRY *PFNGLGETHANDLEARBPROC)(GLenum pname);
+typedef void (GLAPIENTRY *PFNGLGETHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values);
+typedef void (GLAPIENTRY *PFNGLGETHISTOGRAMEXTPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values);
+typedef void (GLAPIENTRY *PFNGLGETHISTOGRAMPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETHISTOGRAMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETHISTOGRAMPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETHISTOGRAMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETHISTOGRAMPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef GLuint64 (GLAPIENTRY *PFNGLGETIMAGEHANDLEARBPROC)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+typedef GLuint64 (GLAPIENTRY *PFNGLGETIMAGEHANDLENVPROC)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+typedef void (GLAPIENTRY *PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETINFOLOGARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog);
+typedef GLint (GLAPIENTRY *PFNGLGETINSTRUMENTSSGIXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLGETINTEGER64I_VPROC)(GLenum target, GLuint index, GLint64 * data);
+typedef void (GLAPIENTRY *PFNGLGETINTEGER64VPROC)(GLenum pname, GLint64 * data);
+typedef void (GLAPIENTRY *PFNGLGETINTEGER64VAPPLEPROC)(GLenum pname, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETINTEGERINDEXEDVEXTPROC)(GLenum target, GLuint index, GLint * data);
+typedef void (GLAPIENTRY *PFNGLGETINTEGERI_VPROC)(GLenum target, GLuint index, GLint * data);
+typedef void (GLAPIENTRY *PFNGLGETINTEGERI_VEXTPROC)(GLenum target, GLuint index, GLint * data);
+typedef void (GLAPIENTRY *PFNGLGETINTEGERUI64I_VNVPROC)(GLenum value, GLuint index, GLuint64EXT * result);
+typedef void (GLAPIENTRY *PFNGLGETINTEGERUI64VNVPROC)(GLenum value, GLuint64EXT * result);
+typedef void (GLAPIENTRY *PFNGLGETINTEGERVPROC)(GLenum pname, GLint * data);
+typedef void (GLAPIENTRY *PFNGLGETINTERNALFORMATSAMPLEIVNVPROC)(GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETINTERNALFORMATI64VPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETINTERNALFORMATIVPROC)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETINVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean * data);
+typedef void (GLAPIENTRY *PFNGLGETINVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat * data);
+typedef void (GLAPIENTRY *PFNGLGETINVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint * data);
+typedef void (GLAPIENTRY *PFNGLGETLIGHTFVPROC)(GLenum light, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETLIGHTIVPROC)(GLenum light, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETLIGHTXVPROC)(GLenum light, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETLIGHTXVOESPROC)(GLenum light, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean * data);
+typedef void (GLAPIENTRY *PFNGLGETLOCALCONSTANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat * data);
+typedef void (GLAPIENTRY *PFNGLGETLOCALCONSTANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint * data);
+typedef void (GLAPIENTRY *PFNGLGETMAPATTRIBPARAMETERFVNVPROC)(GLenum target, GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMAPATTRIBPARAMETERIVNVPROC)(GLenum target, GLuint index, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void * points);
+typedef void (GLAPIENTRY *PFNGLGETMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMAPDVPROC)(GLenum target, GLenum query, GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLGETMAPFVPROC)(GLenum target, GLenum query, GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLGETMAPIVPROC)(GLenum target, GLenum query, GLint * v);
+typedef void (GLAPIENTRY *PFNGLGETMAPXVOESPROC)(GLenum target, GLenum query, GLfixed * v);
+typedef void (GLAPIENTRY *PFNGLGETMATERIALFVPROC)(GLenum face, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMATERIALIVPROC)(GLenum face, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLGETMATERIALXVPROC)(GLenum face, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETMATERIALXVOESPROC)(GLenum face, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETMEMORYOBJECTDETACHEDRESOURCESUIVNVPROC)(GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC)(GLuint memoryObject, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMINMAXPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values);
+typedef void (GLAPIENTRY *PFNGLGETMINMAXEXTPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values);
+typedef void (GLAPIENTRY *PFNGLGETMINMAXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMINMAXPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMINMAXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMINMAXPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXIMAGEEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETMULTISAMPLEFVPROC)(GLenum pname, GLuint index, GLfloat * val);
+typedef void (GLAPIENTRY *PFNGLGETMULTISAMPLEFVNVPROC)(GLenum pname, GLuint index, GLfloat * val);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDBUFFERPARAMETERI64VPROC)(GLuint buffer, GLenum pname, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDBUFFERPARAMETERIVPROC)(GLuint buffer, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC)(GLuint buffer, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC)(GLuint buffer, GLenum pname, GLuint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDBUFFERPOINTERVPROC)(GLuint buffer, GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDBUFFERPOINTERVEXTPROC)(GLuint buffer, GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDFRAMEBUFFERPARAMETERFVAMDPROC)(GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVPROC)(GLuint framebuffer, GLenum pname, GLint * param);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDFRAMEBUFFERPARAMETERIVEXTPROC)(GLuint framebuffer, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC)(GLuint program, GLenum target, GLuint index, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC)(GLuint program, GLenum target, GLuint index, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target, GLenum pname, void * string);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDPROGRAMIVEXTPROC)(GLuint program, GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVPROC)(GLuint renderbuffer, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC)(GLuint renderbuffer, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name, GLsizei bufSize, GLint * stringlen, GLchar * string);
+typedef void (GLAPIENTRY *PFNGLGETNAMEDSTRINGIVARBPROC)(GLint namelen, const GLchar * name, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNEXTPERFQUERYIDINTELPROC)(GLuint queryId, GLuint * nextQueryId);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTBUFFERFVATIPROC)(GLuint buffer, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTBUFFERIVATIPROC)(GLuint buffer, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTLABELEXTPROC)(GLenum type, GLuint object, GLsizei bufSize, GLsizei * length, GLchar * label);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTLABELKHRPROC)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTPARAMETERFVARBPROC)(GLhandleARB obj, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTPARAMETERIVAPPLEPROC)(GLenum objectType, GLuint name, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTPARAMETERIVARBPROC)(GLhandleARB obj, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTPTRLABELPROC)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
+typedef void (GLAPIENTRY *PFNGLGETOBJECTPTRLABELKHRPROC)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
+typedef void (GLAPIENTRY *PFNGLGETOCCLUSIONQUERYIVNVPROC)(GLuint id, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETOCCLUSIONQUERYUIVNVPROC)(GLuint id, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETPATHCOLORGENFVNVPROC)(GLenum color, GLenum pname, GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLGETPATHCOLORGENIVNVPROC)(GLenum color, GLenum pname, GLint * value);
+typedef void (GLAPIENTRY *PFNGLGETPATHCOMMANDSNVPROC)(GLuint path, GLubyte * commands);
+typedef void (GLAPIENTRY *PFNGLGETPATHCOORDSNVPROC)(GLuint path, GLfloat * coords);
+typedef void (GLAPIENTRY *PFNGLGETPATHDASHARRAYNVPROC)(GLuint path, GLfloat * dashArray);
+typedef GLfloat (GLAPIENTRY *PFNGLGETPATHLENGTHNVPROC)(GLuint path, GLsizei startSegment, GLsizei numSegments);
+typedef void (GLAPIENTRY *PFNGLGETPATHMETRICRANGENVPROC)(GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat * metrics);
+typedef void (GLAPIENTRY *PFNGLGETPATHMETRICSNVPROC)(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLsizei stride, GLfloat * metrics);
+typedef void (GLAPIENTRY *PFNGLGETPATHPARAMETERFVNVPROC)(GLuint path, GLenum pname, GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLGETPATHPARAMETERIVNVPROC)(GLuint path, GLenum pname, GLint * value);
+typedef void (GLAPIENTRY *PFNGLGETPATHSPACINGNVPROC)(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat * returnedSpacing);
+typedef void (GLAPIENTRY *PFNGLGETPATHTEXGENFVNVPROC)(GLenum texCoordSet, GLenum pname, GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLGETPATHTEXGENIVNVPROC)(GLenum texCoordSet, GLenum pname, GLint * value);
+typedef void (GLAPIENTRY *PFNGLGETPERFCOUNTERINFOINTELPROC)(GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar * counterName, GLuint counterDescLength, GLchar * counterDesc, GLuint * counterOffset, GLuint * counterDataSize, GLuint * counterTypeEnum, GLuint * counterDataTypeEnum, GLuint64 * rawCounterMaxValue);
+typedef void (GLAPIENTRY *PFNGLGETPERFMONITORCOUNTERDATAAMDPROC)(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint * data, GLint * bytesWritten);
+typedef void (GLAPIENTRY *PFNGLGETPERFMONITORCOUNTERINFOAMDPROC)(GLuint group, GLuint counter, GLenum pname, void * data);
+typedef void (GLAPIENTRY *PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei * length, GLchar * counterString);
+typedef void (GLAPIENTRY *PFNGLGETPERFMONITORCOUNTERSAMDPROC)(GLuint group, GLint * numCounters, GLint * maxActiveCounters, GLsizei counterSize, GLuint * counters);
+typedef void (GLAPIENTRY *PFNGLGETPERFMONITORGROUPSTRINGAMDPROC)(GLuint group, GLsizei bufSize, GLsizei * length, GLchar * groupString);
+typedef void (GLAPIENTRY *PFNGLGETPERFMONITORGROUPSAMDPROC)(GLint * numGroups, GLsizei groupsSize, GLuint * groups);
+typedef void (GLAPIENTRY *PFNGLGETPERFQUERYDATAINTELPROC)(GLuint queryHandle, GLuint flags, GLsizei dataSize, void * data, GLuint * bytesWritten);
+typedef void (GLAPIENTRY *PFNGLGETPERFQUERYIDBYNAMEINTELPROC)(GLchar * queryName, GLuint * queryId);
+typedef void (GLAPIENTRY *PFNGLGETPERFQUERYINFOINTELPROC)(GLuint queryId, GLuint queryNameLength, GLchar * queryName, GLuint * dataSize, GLuint * noCounters, GLuint * noInstances, GLuint * capsMask);
+typedef void (GLAPIENTRY *PFNGLGETPIXELMAPFVPROC)(GLenum map, GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLGETPIXELMAPUIVPROC)(GLenum map, GLuint * values);
+typedef void (GLAPIENTRY *PFNGLGETPIXELMAPUSVPROC)(GLenum map, GLushort * values);
+typedef void (GLAPIENTRY *PFNGLGETPIXELMAPXVPROC)(GLenum map, GLint size, GLfixed * values);
+typedef void (GLAPIENTRY *PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPOINTERINDEXEDVEXTPROC)(GLenum target, GLuint index, void ** data);
+typedef void (GLAPIENTRY *PFNGLGETPOINTERI_VEXTPROC)(GLenum pname, GLuint index, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETPOINTERVPROC)(GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETPOINTERVEXTPROC)(GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETPOINTERVKHRPROC)(GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETPOLYGONSTIPPLEPROC)(GLubyte * mask);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMBINARYPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMBINARYOESPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMENVPARAMETERIIVNVPROC)(GLenum target, GLuint index, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC)(GLenum target, GLuint index, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMENVPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMENVPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMINFOLOGPROC)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMINTERFACEIVPROC)(GLuint program, GLenum programInterface, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC)(GLenum target, GLuint index, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC)(GLenum target, GLuint index, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC)(GLenum target, GLuint index, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC)(GLenum target, GLuint index, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC)(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC)(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMPARAMETERDVNVPROC)(GLenum target, GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMPARAMETERFVNVPROC)(GLenum target, GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMPIPELINEINFOLOGPROC)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMPIPELINEINFOLOGEXTPROC)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMPIPELINEIVPROC)(GLuint pipeline, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMPIPELINEIVEXTPROC)(GLuint pipeline, GLenum pname, GLint * params);
+typedef GLuint (GLAPIENTRY *PFNGLGETPROGRAMRESOURCEINDEXPROC)(GLuint program, GLenum programInterface, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETPROGRAMRESOURCELOCATIONPROC)(GLuint program, GLenum programInterface, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETPROGRAMRESOURCELOCATIONINDEXPROC)(GLuint program, GLenum programInterface, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC)(GLuint program, GLenum programInterface, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMRESOURCENAMEPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMRESOURCEFVNVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMRESOURCEIVPROC)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMSTAGEIVPROC)(GLuint program, GLenum shadertype, GLenum pname, GLint * values);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMSTRINGARBPROC)(GLenum target, GLenum pname, void * string);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMSTRINGNVPROC)(GLuint id, GLenum pname, GLubyte * program);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC)(GLenum target, GLuint index, GLuint * param);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMIVPROC)(GLuint program, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMIVARBPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETPROGRAMIVNVPROC)(GLuint id, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYBUFFEROBJECTI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLGETQUERYBUFFEROBJECTIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLGETQUERYBUFFEROBJECTUI64VPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLGETQUERYBUFFEROBJECTUIVPROC)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLGETQUERYINDEXEDIVPROC)(GLenum target, GLuint index, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTI64VPROC)(GLuint id, GLenum pname, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTI64VEXTPROC)(GLuint id, GLenum pname, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTIVPROC)(GLuint id, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTIVARBPROC)(GLuint id, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTIVEXTPROC)(GLuint id, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTUI64VPROC)(GLuint id, GLenum pname, GLuint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTUI64VEXTPROC)(GLuint id, GLenum pname, GLuint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTUIVPROC)(GLuint id, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTUIVARBPROC)(GLuint id, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYOBJECTUIVEXTPROC)(GLuint id, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYIVARBPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETQUERYIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETRENDERBUFFERPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETRENDERBUFFERPARAMETERIVOESPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETSAMPLERPARAMETERIIVEXTPROC)(GLuint sampler, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETSAMPLERPARAMETERIIVOESPROC)(GLuint sampler, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETSAMPLERPARAMETERIUIVEXTPROC)(GLuint sampler, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETSAMPLERPARAMETERIUIVOESPROC)(GLuint sampler, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC)(GLuint semaphore, GLenum pname, GLuint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type, void * row, void * column, void * span);
+typedef void (GLAPIENTRY *PFNGLGETSEPARABLEFILTEREXTPROC)(GLenum target, GLenum format, GLenum type, void * row, void * column, void * span);
+typedef void (GLAPIENTRY *PFNGLGETSHADERINFOLOGPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+typedef void (GLAPIENTRY *PFNGLGETSHADERPRECISIONFORMATPROC)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
+typedef void (GLAPIENTRY *PFNGLGETSHADERSOURCEPROC)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
+typedef void (GLAPIENTRY *PFNGLGETSHADERSOURCEARBPROC)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * source);
+typedef void (GLAPIENTRY *PFNGLGETSHADERIVPROC)(GLuint shader, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETSHADINGRATEIMAGEPALETTENVPROC)(GLuint viewport, GLuint entry, GLenum * rate);
+typedef void (GLAPIENTRY *PFNGLGETSHADINGRATESAMPLELOCATIONIVNVPROC)(GLenum rate, GLuint samples, GLuint index, GLint * location);
+typedef void (GLAPIENTRY *PFNGLGETSHARPENTEXFUNCSGISPROC)(GLenum target, GLfloat * points);
+typedef GLushort (GLAPIENTRY *PFNGLGETSTAGEINDEXNVPROC)(GLenum shadertype);
+typedef const GLubyte * (GLAPIENTRY *PFNGLGETSTRINGPROC)(GLenum name);
+typedef const GLubyte * (GLAPIENTRY *PFNGLGETSTRINGIPROC)(GLenum name, GLuint index);
+typedef GLuint (GLAPIENTRY *PFNGLGETSUBROUTINEINDEXPROC)(GLuint program, GLenum shadertype, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC)(GLuint program, GLenum shadertype, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETSYNCIVPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values);
+typedef void (GLAPIENTRY *PFNGLGETSYNCIVAPPLEPROC)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values);
+typedef void (GLAPIENTRY *PFNGLGETTEXBUMPPARAMETERFVATIPROC)(GLenum pname, GLfloat * param);
+typedef void (GLAPIENTRY *PFNGLGETTEXBUMPPARAMETERIVATIPROC)(GLenum pname, GLint * param);
+typedef void (GLAPIENTRY *PFNGLGETTEXENVFVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXENVIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXENVXVPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXENVXVOESPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLfloat * weights);
+typedef void (GLAPIENTRY *PFNGLGETTEXGENDVPROC)(GLenum coord, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXGENFVPROC)(GLenum coord, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXGENFVOESPROC)(GLenum coord, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXGENIVPROC)(GLenum coord, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXGENIVOESPROC)(GLenum coord, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXGENXVOESPROC)(GLenum coord, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETTEXLEVELPARAMETERFVPROC)(GLenum target, GLint level, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXLEVELPARAMETERIVPROC)(GLenum target, GLint level, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXLEVELPARAMETERXVOESPROC)(GLenum target, GLint level, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERIIVOESPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERIUIVOESPROC)(GLenum target, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC)(GLenum target, GLenum pname, void ** params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERFVPROC)(GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERIVPROC)(GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERXVPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname, GLfixed * params);
+typedef GLuint64 (GLAPIENTRY *PFNGLGETTEXTUREHANDLEARBPROC)(GLuint texture);
+typedef GLuint64 (GLAPIENTRY *PFNGLGETTEXTUREHANDLEIMGPROC)(GLuint texture);
+typedef GLuint64 (GLAPIENTRY *PFNGLGETTEXTUREHANDLENVPROC)(GLuint texture);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREIMAGEPROC)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREIMAGEEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETTEXTURELEVELPARAMETERFVPROC)(GLuint texture, GLint level, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTURELEVELPARAMETERIVPROC)(GLuint texture, GLint level, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLint level, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint * params);
+typedef GLuint64 (GLAPIENTRY *PFNGLGETTEXTURESAMPLERHANDLEARBPROC)(GLuint texture, GLuint sampler);
+typedef GLuint64 (GLAPIENTRY *PFNGLGETTEXTURESAMPLERHANDLEIMGPROC)(GLuint texture, GLuint sampler);
+typedef GLuint64 (GLAPIENTRY *PFNGLGETTEXTURESAMPLERHANDLENVPROC)(GLuint texture, GLuint sampler);
+typedef void (GLAPIENTRY *PFNGLGETTEXTURESUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETTRACKMATRIXIVNVPROC)(GLenum target, GLuint address, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETTRANSFORMFEEDBACKVARYINGPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC)(GLuint program, GLuint index, GLint * location);
+typedef void (GLAPIENTRY *PFNGLGETTRANSFORMFEEDBACKI64_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint64 * param);
+typedef void (GLAPIENTRY *PFNGLGETTRANSFORMFEEDBACKI_VPROC)(GLuint xfb, GLenum pname, GLuint index, GLint * param);
+typedef void (GLAPIENTRY *PFNGLGETTRANSFORMFEEDBACKIVPROC)(GLuint xfb, GLenum pname, GLint * param);
+typedef void (GLAPIENTRY *PFNGLGETTRANSLATEDSHADERSOURCEANGLEPROC)(GLuint shader, GLsizei bufsize, GLsizei * length, GLchar * source);
+typedef GLuint (GLAPIENTRY *PFNGLGETUNIFORMBLOCKINDEXPROC)(GLuint program, const GLchar * uniformBlockName);
+typedef GLint (GLAPIENTRY *PFNGLGETUNIFORMBUFFERSIZEEXTPROC)(GLuint program, GLint location);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMINDICESPROC)(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices);
+typedef GLint (GLAPIENTRY *PFNGLGETUNIFORMLOCATIONPROC)(GLuint program, const GLchar * name);
+typedef GLint (GLAPIENTRY *PFNGLGETUNIFORMLOCATIONARBPROC)(GLhandleARB programObj, const GLcharARB * name);
+typedef GLintptr (GLAPIENTRY *PFNGLGETUNIFORMOFFSETEXTPROC)(GLuint program, GLint location);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMSUBROUTINEUIVPROC)(GLenum shadertype, GLint location, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMDVPROC)(GLuint program, GLint location, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMFVPROC)(GLuint program, GLint location, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMFVARBPROC)(GLhandleARB programObj, GLint location, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMI64VARBPROC)(GLuint program, GLint location, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMI64VNVPROC)(GLuint program, GLint location, GLint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMIVPROC)(GLuint program, GLint location, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMIVARBPROC)(GLhandleARB programObj, GLint location, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMUI64VARBPROC)(GLuint program, GLint location, GLuint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMUI64VNVPROC)(GLuint program, GLint location, GLuint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMUIVPROC)(GLuint program, GLint location, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETUNIFORMUIVEXTPROC)(GLuint program, GLint location, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETUNSIGNEDBYTEI_VEXTPROC)(GLenum target, GLuint index, GLubyte * data);
+typedef void (GLAPIENTRY *PFNGLGETUNSIGNEDBYTEVEXTPROC)(GLenum pname, GLubyte * data);
+typedef void (GLAPIENTRY *PFNGLGETVARIANTARRAYOBJECTFVATIPROC)(GLuint id, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETVARIANTARRAYOBJECTIVATIPROC)(GLuint id, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVARIANTBOOLEANVEXTPROC)(GLuint id, GLenum value, GLboolean * data);
+typedef void (GLAPIENTRY *PFNGLGETVARIANTFLOATVEXTPROC)(GLuint id, GLenum value, GLfloat * data);
+typedef void (GLAPIENTRY *PFNGLGETVARIANTINTEGERVEXTPROC)(GLuint id, GLenum value, GLint * data);
+typedef void (GLAPIENTRY *PFNGLGETVARIANTPOINTERVEXTPROC)(GLuint id, GLenum value, void ** data);
+typedef GLint (GLAPIENTRY *PFNGLGETVARYINGLOCATIONNVPROC)(GLuint program, const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXARRAYINDEXED64IVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint64 * param);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXARRAYINDEXEDIVPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint * param);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXARRAYINTEGERI_VEXTPROC)(GLuint vaobj, GLuint index, GLenum pname, GLint * param);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXARRAYINTEGERVEXTPROC)(GLuint vaobj, GLenum pname, GLint * param);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXARRAYPOINTERI_VEXTPROC)(GLuint vaobj, GLuint index, GLenum pname, void ** param);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXARRAYPOINTERVEXTPROC)(GLuint vaobj, GLenum pname, void ** param);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXARRAYIVPROC)(GLuint vaobj, GLenum pname, GLint * param);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC)(GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBIIVPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBIIVEXTPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBIUIVPROC)(GLuint index, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBIUIVEXTPROC)(GLuint index, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBLDVPROC)(GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBLDVEXTPROC)(GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBLI64VNVPROC)(GLuint index, GLenum pname, GLint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBLUI64VARBPROC)(GLuint index, GLenum pname, GLuint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBLUI64VNVPROC)(GLuint index, GLenum pname, GLuint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBPOINTERVPROC)(GLuint index, GLenum pname, void ** pointer);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBPOINTERVARBPROC)(GLuint index, GLenum pname, void ** pointer);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBPOINTERVNVPROC)(GLuint index, GLenum pname, void ** pointer);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBDVPROC)(GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBDVARBPROC)(GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBDVNVPROC)(GLuint index, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBFVPROC)(GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBFVARBPROC)(GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBFVNVPROC)(GLuint index, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBIVPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBIVARBPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVERTEXATTRIBIVNVPROC)(GLuint index, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVIDEOCAPTURESTREAMDVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETVIDEOCAPTURESTREAMFVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETVIDEOCAPTURESTREAMIVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVIDEOCAPTUREIVNVPROC)(GLuint video_capture_slot, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVIDEOI64VNVPROC)(GLuint video_slot, GLenum pname, GLint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETVIDEOIVNVPROC)(GLuint video_slot, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETVIDEOUI64VNVPROC)(GLuint video_slot, GLenum pname, GLuint64EXT * params);
+typedef void (GLAPIENTRY *PFNGLGETVIDEOUIVNVPROC)(GLuint video_slot, GLenum pname, GLuint * params);
+typedef GLVULKANPROCNV (GLAPIENTRY *PFNGLGETVKPROCADDRNVPROC)(const GLchar * name);
+typedef void (GLAPIENTRY *PFNGLGETNCOLORTABLEPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * table);
+typedef void (GLAPIENTRY *PFNGLGETNCOLORTABLEARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * table);
+typedef void (GLAPIENTRY *PFNGLGETNCOMPRESSEDTEXIMAGEPROC)(GLenum target, GLint lod, GLsizei bufSize, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC)(GLenum target, GLint lod, GLsizei bufSize, void * img);
+typedef void (GLAPIENTRY *PFNGLGETNCONVOLUTIONFILTERPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * image);
+typedef void (GLAPIENTRY *PFNGLGETNCONVOLUTIONFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * image);
+typedef void (GLAPIENTRY *PFNGLGETNHISTOGRAMPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
+typedef void (GLAPIENTRY *PFNGLGETNHISTOGRAMARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
+typedef void (GLAPIENTRY *PFNGLGETNMAPDVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLGETNMAPDVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLGETNMAPFVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLGETNMAPFVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLGETNMAPIVPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint * v);
+typedef void (GLAPIENTRY *PFNGLGETNMAPIVARBPROC)(GLenum target, GLenum query, GLsizei bufSize, GLint * v);
+typedef void (GLAPIENTRY *PFNGLGETNMINMAXPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
+typedef void (GLAPIENTRY *PFNGLGETNMINMAXARBPROC)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
+typedef void (GLAPIENTRY *PFNGLGETNPIXELMAPFVPROC)(GLenum map, GLsizei bufSize, GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLGETNPIXELMAPFVARBPROC)(GLenum map, GLsizei bufSize, GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLGETNPIXELMAPUIVPROC)(GLenum map, GLsizei bufSize, GLuint * values);
+typedef void (GLAPIENTRY *PFNGLGETNPIXELMAPUIVARBPROC)(GLenum map, GLsizei bufSize, GLuint * values);
+typedef void (GLAPIENTRY *PFNGLGETNPIXELMAPUSVPROC)(GLenum map, GLsizei bufSize, GLushort * values);
+typedef void (GLAPIENTRY *PFNGLGETNPIXELMAPUSVARBPROC)(GLenum map, GLsizei bufSize, GLushort * values);
+typedef void (GLAPIENTRY *PFNGLGETNPOLYGONSTIPPLEPROC)(GLsizei bufSize, GLubyte * pattern);
+typedef void (GLAPIENTRY *PFNGLGETNPOLYGONSTIPPLEARBPROC)(GLsizei bufSize, GLubyte * pattern);
+typedef void (GLAPIENTRY *PFNGLGETNSEPARABLEFILTERPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void * row, GLsizei columnBufSize, void * column, void * span);
+typedef void (GLAPIENTRY *PFNGLGETNSEPARABLEFILTERARBPROC)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void * row, GLsizei columnBufSize, void * column, void * span);
+typedef void (GLAPIENTRY *PFNGLGETNTEXIMAGEPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+typedef void (GLAPIENTRY *PFNGLGETNTEXIMAGEARBPROC)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * img);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMDVPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMDVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMFVPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMFVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMFVEXTPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMFVKHRPROC)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMI64VARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMIVEXTPROC)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMIVKHRPROC)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMUI64VARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint64 * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMUIVPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMUIVARBPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGETNUNIFORMUIVKHRPROC)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLGLOBALALPHAFACTORBSUNPROC)(GLbyte factor);
+typedef void (GLAPIENTRY *PFNGLGLOBALALPHAFACTORDSUNPROC)(GLdouble factor);
+typedef void (GLAPIENTRY *PFNGLGLOBALALPHAFACTORFSUNPROC)(GLfloat factor);
+typedef void (GLAPIENTRY *PFNGLGLOBALALPHAFACTORISUNPROC)(GLint factor);
+typedef void (GLAPIENTRY *PFNGLGLOBALALPHAFACTORSSUNPROC)(GLshort factor);
+typedef void (GLAPIENTRY *PFNGLGLOBALALPHAFACTORUBSUNPROC)(GLubyte factor);
+typedef void (GLAPIENTRY *PFNGLGLOBALALPHAFACTORUISUNPROC)(GLuint factor);
+typedef void (GLAPIENTRY *PFNGLGLOBALALPHAFACTORUSSUNPROC)(GLushort factor);
+typedef void (GLAPIENTRY *PFNGLHINTPROC)(GLenum target, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLHINTPGIPROC)(GLenum target, GLint mode);
+typedef void (GLAPIENTRY *PFNGLHISTOGRAMPROC)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+typedef void (GLAPIENTRY *PFNGLHISTOGRAMEXTPROC)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+typedef void (GLAPIENTRY *PFNGLIGLOOINTERFACESGIXPROC)(GLenum pname, const void * params);
+typedef void (GLAPIENTRY *PFNGLIMAGETRANSFORMPARAMETERFHPPROC)(GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLIMAGETRANSFORMPARAMETERFVHPPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLIMAGETRANSFORMPARAMETERIHPPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLIMAGETRANSFORMPARAMETERIVHPPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLIMPORTMEMORYFDEXTPROC)(GLuint memory, GLuint64 size, GLenum handleType, GLint fd);
+typedef void (GLAPIENTRY *PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC)(GLuint memory, GLuint64 size, GLenum handleType, void * handle);
+typedef void (GLAPIENTRY *PFNGLIMPORTMEMORYWIN32NAMEEXTPROC)(GLuint memory, GLuint64 size, GLenum handleType, const void * name);
+typedef void (GLAPIENTRY *PFNGLIMPORTSEMAPHOREFDEXTPROC)(GLuint semaphore, GLenum handleType, GLint fd);
+typedef void (GLAPIENTRY *PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC)(GLuint semaphore, GLenum handleType, void * handle);
+typedef void (GLAPIENTRY *PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC)(GLuint semaphore, GLenum handleType, const void * name);
+typedef GLsync (GLAPIENTRY *PFNGLIMPORTSYNCEXTPROC)(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLINDEXFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLINDEXFUNCEXTPROC)(GLenum func, GLclampf ref);
+typedef void (GLAPIENTRY *PFNGLINDEXMASKPROC)(GLuint mask);
+typedef void (GLAPIENTRY *PFNGLINDEXMATERIALEXTPROC)(GLenum face, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLINDEXPOINTERPROC)(GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLINDEXPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLINDEXPOINTERLISTIBMPROC)(GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+typedef void (GLAPIENTRY *PFNGLINDEXDPROC)(GLdouble c);
+typedef void (GLAPIENTRY *PFNGLINDEXDVPROC)(const GLdouble * c);
+typedef void (GLAPIENTRY *PFNGLINDEXFPROC)(GLfloat c);
+typedef void (GLAPIENTRY *PFNGLINDEXFVPROC)(const GLfloat * c);
+typedef void (GLAPIENTRY *PFNGLINDEXIPROC)(GLint c);
+typedef void (GLAPIENTRY *PFNGLINDEXIVPROC)(const GLint * c);
+typedef void (GLAPIENTRY *PFNGLINDEXSPROC)(GLshort c);
+typedef void (GLAPIENTRY *PFNGLINDEXSVPROC)(const GLshort * c);
+typedef void (GLAPIENTRY *PFNGLINDEXUBPROC)(GLubyte c);
+typedef void (GLAPIENTRY *PFNGLINDEXUBVPROC)(const GLubyte * c);
+typedef void (GLAPIENTRY *PFNGLINDEXXOESPROC)(GLfixed component);
+typedef void (GLAPIENTRY *PFNGLINDEXXVOESPROC)(const GLfixed * component);
+typedef void (GLAPIENTRY *PFNGLINITNAMESPROC)(void);
+typedef void (GLAPIENTRY *PFNGLINSERTCOMPONENTEXTPROC)(GLuint res, GLuint src, GLuint num);
+typedef void (GLAPIENTRY *PFNGLINSERTEVENTMARKEREXTPROC)(GLsizei length, const GLchar * marker);
+typedef void (GLAPIENTRY *PFNGLINSTRUMENTSBUFFERSGIXPROC)(GLsizei size, GLint * buffer);
+typedef void (GLAPIENTRY *PFNGLINTERLEAVEDARRAYSPROC)(GLenum format, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLINTERPOLATEPATHSNVPROC)(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
+typedef void (GLAPIENTRY *PFNGLINVALIDATEBUFFERDATAPROC)(GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLINVALIDATEBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+typedef void (GLAPIENTRY *PFNGLINVALIDATEFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments);
+typedef void (GLAPIENTRY *PFNGLINVALIDATENAMEDFRAMEBUFFERDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments);
+typedef void (GLAPIENTRY *PFNGLINVALIDATENAMEDFRAMEBUFFERSUBDATAPROC)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLINVALIDATESUBFRAMEBUFFERPROC)(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLINVALIDATETEXIMAGEPROC)(GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLINVALIDATETEXSUBIMAGEPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
+typedef GLboolean (GLAPIENTRY *PFNGLISASYNCMARKERSGIXPROC)(GLuint marker);
+typedef GLboolean (GLAPIENTRY *PFNGLISBUFFERPROC)(GLuint buffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISBUFFERARBPROC)(GLuint buffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISBUFFERRESIDENTNVPROC)(GLenum target);
+typedef GLboolean (GLAPIENTRY *PFNGLISCOMMANDLISTNVPROC)(GLuint list);
+typedef GLboolean (GLAPIENTRY *PFNGLISENABLEDPROC)(GLenum cap);
+typedef GLboolean (GLAPIENTRY *PFNGLISENABLEDINDEXEDEXTPROC)(GLenum target, GLuint index);
+typedef GLboolean (GLAPIENTRY *PFNGLISENABLEDIPROC)(GLenum target, GLuint index);
+typedef GLboolean (GLAPIENTRY *PFNGLISENABLEDIEXTPROC)(GLenum target, GLuint index);
+typedef GLboolean (GLAPIENTRY *PFNGLISENABLEDINVPROC)(GLenum target, GLuint index);
+typedef GLboolean (GLAPIENTRY *PFNGLISENABLEDIOESPROC)(GLenum target, GLuint index);
+typedef GLboolean (GLAPIENTRY *PFNGLISFENCEAPPLEPROC)(GLuint fence);
+typedef GLboolean (GLAPIENTRY *PFNGLISFENCENVPROC)(GLuint fence);
+typedef GLboolean (GLAPIENTRY *PFNGLISFRAMEBUFFERPROC)(GLuint framebuffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISFRAMEBUFFEREXTPROC)(GLuint framebuffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISFRAMEBUFFEROESPROC)(GLuint framebuffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISIMAGEHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef GLboolean (GLAPIENTRY *PFNGLISIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef GLboolean (GLAPIENTRY *PFNGLISLISTPROC)(GLuint list);
+typedef GLboolean (GLAPIENTRY *PFNGLISMEMORYOBJECTEXTPROC)(GLuint memoryObject);
+typedef GLboolean (GLAPIENTRY *PFNGLISNAMEAMDPROC)(GLenum identifier, GLuint name);
+typedef GLboolean (GLAPIENTRY *PFNGLISNAMEDBUFFERRESIDENTNVPROC)(GLuint buffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISNAMEDSTRINGARBPROC)(GLint namelen, const GLchar * name);
+typedef GLboolean (GLAPIENTRY *PFNGLISOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISOCCLUSIONQUERYNVPROC)(GLuint id);
+typedef GLboolean (GLAPIENTRY *PFNGLISPATHNVPROC)(GLuint path);
+typedef GLboolean (GLAPIENTRY *PFNGLISPOINTINFILLPATHNVPROC)(GLuint path, GLuint mask, GLfloat x, GLfloat y);
+typedef GLboolean (GLAPIENTRY *PFNGLISPOINTINSTROKEPATHNVPROC)(GLuint path, GLfloat x, GLfloat y);
+typedef GLboolean (GLAPIENTRY *PFNGLISPROGRAMPROC)(GLuint program);
+typedef GLboolean (GLAPIENTRY *PFNGLISPROGRAMARBPROC)(GLuint program);
+typedef GLboolean (GLAPIENTRY *PFNGLISPROGRAMNVPROC)(GLuint id);
+typedef GLboolean (GLAPIENTRY *PFNGLISPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef GLboolean (GLAPIENTRY *PFNGLISPROGRAMPIPELINEEXTPROC)(GLuint pipeline);
+typedef GLboolean (GLAPIENTRY *PFNGLISQUERYPROC)(GLuint id);
+typedef GLboolean (GLAPIENTRY *PFNGLISQUERYARBPROC)(GLuint id);
+typedef GLboolean (GLAPIENTRY *PFNGLISQUERYEXTPROC)(GLuint id);
+typedef GLboolean (GLAPIENTRY *PFNGLISRENDERBUFFERPROC)(GLuint renderbuffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISRENDERBUFFEREXTPROC)(GLuint renderbuffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISRENDERBUFFEROESPROC)(GLuint renderbuffer);
+typedef GLboolean (GLAPIENTRY *PFNGLISSAMPLERPROC)(GLuint sampler);
+typedef GLboolean (GLAPIENTRY *PFNGLISSEMAPHOREEXTPROC)(GLuint semaphore);
+typedef GLboolean (GLAPIENTRY *PFNGLISSHADERPROC)(GLuint shader);
+typedef GLboolean (GLAPIENTRY *PFNGLISSTATENVPROC)(GLuint state);
+typedef GLboolean (GLAPIENTRY *PFNGLISSYNCPROC)(GLsync sync);
+typedef GLboolean (GLAPIENTRY *PFNGLISSYNCAPPLEPROC)(GLsync sync);
+typedef GLboolean (GLAPIENTRY *PFNGLISTEXTUREPROC)(GLuint texture);
+typedef GLboolean (GLAPIENTRY *PFNGLISTEXTUREEXTPROC)(GLuint texture);
+typedef GLboolean (GLAPIENTRY *PFNGLISTEXTUREHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef GLboolean (GLAPIENTRY *PFNGLISTEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef GLboolean (GLAPIENTRY *PFNGLISTRANSFORMFEEDBACKPROC)(GLuint id);
+typedef GLboolean (GLAPIENTRY *PFNGLISTRANSFORMFEEDBACKNVPROC)(GLuint id);
+typedef GLboolean (GLAPIENTRY *PFNGLISVARIANTENABLEDEXTPROC)(GLuint id, GLenum cap);
+typedef GLboolean (GLAPIENTRY *PFNGLISVERTEXARRAYPROC)(GLuint array);
+typedef GLboolean (GLAPIENTRY *PFNGLISVERTEXARRAYAPPLEPROC)(GLuint array);
+typedef GLboolean (GLAPIENTRY *PFNGLISVERTEXARRAYOESPROC)(GLuint array);
+typedef GLboolean (GLAPIENTRY *PFNGLISVERTEXATTRIBENABLEDAPPLEPROC)(GLuint index, GLenum pname);
+typedef void (GLAPIENTRY *PFNGLLGPUCOPYIMAGESUBDATANVXPROC)(GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAPIENTRY *PFNGLLGPUINTERLOCKNVXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLLGPUNAMEDBUFFERSUBDATANVXPROC)(GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+typedef void (GLAPIENTRY *PFNGLLABELOBJECTEXTPROC)(GLenum type, GLuint object, GLsizei length, const GLchar * label);
+typedef void (GLAPIENTRY *PFNGLLIGHTENVISGIXPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLLIGHTMODELFPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLLIGHTMODELFVPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLLIGHTMODELIPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLLIGHTMODELIVPROC)(GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLLIGHTMODELXPROC)(GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLLIGHTMODELXOESPROC)(GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLLIGHTMODELXVPROC)(GLenum pname, const GLfixed * param);
+typedef void (GLAPIENTRY *PFNGLLIGHTMODELXVOESPROC)(GLenum pname, const GLfixed * param);
+typedef void (GLAPIENTRY *PFNGLLIGHTFPROC)(GLenum light, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLLIGHTFVPROC)(GLenum light, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLLIGHTIPROC)(GLenum light, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLLIGHTIVPROC)(GLenum light, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLLIGHTXPROC)(GLenum light, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLLIGHTXOESPROC)(GLenum light, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLLIGHTXVPROC)(GLenum light, GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLLIGHTXVOESPROC)(GLenum light, GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLLINESTIPPLEPROC)(GLint factor, GLushort pattern);
+typedef void (GLAPIENTRY *PFNGLLINEWIDTHPROC)(GLfloat width);
+typedef void (GLAPIENTRY *PFNGLLINEWIDTHXPROC)(GLfixed width);
+typedef void (GLAPIENTRY *PFNGLLINEWIDTHXOESPROC)(GLfixed width);
+typedef void (GLAPIENTRY *PFNGLLINKPROGRAMPROC)(GLuint program);
+typedef void (GLAPIENTRY *PFNGLLINKPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void (GLAPIENTRY *PFNGLLISTBASEPROC)(GLuint base);
+typedef void (GLAPIENTRY *PFNGLLISTDRAWCOMMANDSSTATESCLIENTNVPROC)(GLuint list, GLuint segment, const void ** indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+typedef void (GLAPIENTRY *PFNGLLISTPARAMETERFSGIXPROC)(GLuint list, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLLISTPARAMETERFVSGIXPROC)(GLuint list, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLLISTPARAMETERISGIXPROC)(GLuint list, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLLISTPARAMETERIVSGIXPROC)(GLuint list, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLLOADIDENTITYPROC)(void);
+typedef void (GLAPIENTRY *PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC)(GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLLOADMATRIXDPROC)(const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLLOADMATRIXFPROC)(const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLLOADMATRIXXPROC)(const GLfixed * m);
+typedef void (GLAPIENTRY *PFNGLLOADMATRIXXOESPROC)(const GLfixed * m);
+typedef void (GLAPIENTRY *PFNGLLOADNAMEPROC)(GLuint name);
+typedef void (GLAPIENTRY *PFNGLLOADPALETTEFROMMODELVIEWMATRIXOESPROC)(void);
+typedef void (GLAPIENTRY *PFNGLLOADPROGRAMNVPROC)(GLenum target, GLuint id, GLsizei len, const GLubyte * program);
+typedef void (GLAPIENTRY *PFNGLLOADTRANSPOSEMATRIXDPROC)(const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLLOADTRANSPOSEMATRIXDARBPROC)(const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLLOADTRANSPOSEMATRIXFPROC)(const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLLOADTRANSPOSEMATRIXFARBPROC)(const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLLOADTRANSPOSEMATRIXXOESPROC)(const GLfixed * m);
+typedef void (GLAPIENTRY *PFNGLLOCKARRAYSEXTPROC)(GLint first, GLsizei count);
+typedef void (GLAPIENTRY *PFNGLLOGICOPPROC)(GLenum opcode);
+typedef void (GLAPIENTRY *PFNGLMAKEBUFFERNONRESIDENTNVPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLMAKEBUFFERRESIDENTNVPROC)(GLenum target, GLenum access);
+typedef void (GLAPIENTRY *PFNGLMAKEIMAGEHANDLENONRESIDENTARBPROC)(GLuint64 handle);
+typedef void (GLAPIENTRY *PFNGLMAKEIMAGEHANDLENONRESIDENTNVPROC)(GLuint64 handle);
+typedef void (GLAPIENTRY *PFNGLMAKEIMAGEHANDLERESIDENTARBPROC)(GLuint64 handle, GLenum access);
+typedef void (GLAPIENTRY *PFNGLMAKEIMAGEHANDLERESIDENTNVPROC)(GLuint64 handle, GLenum access);
+typedef void (GLAPIENTRY *PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC)(GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLMAKENAMEDBUFFERRESIDENTNVPROC)(GLuint buffer, GLenum access);
+typedef void (GLAPIENTRY *PFNGLMAKETEXTUREHANDLENONRESIDENTARBPROC)(GLuint64 handle);
+typedef void (GLAPIENTRY *PFNGLMAKETEXTUREHANDLENONRESIDENTNVPROC)(GLuint64 handle);
+typedef void (GLAPIENTRY *PFNGLMAKETEXTUREHANDLERESIDENTARBPROC)(GLuint64 handle);
+typedef void (GLAPIENTRY *PFNGLMAKETEXTUREHANDLERESIDENTNVPROC)(GLuint64 handle);
+typedef void (GLAPIENTRY *PFNGLMAP1DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points);
+typedef void (GLAPIENTRY *PFNGLMAP1FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLMAP1XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points);
+typedef void (GLAPIENTRY *PFNGLMAP2DPROC)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points);
+typedef void (GLAPIENTRY *PFNGLMAP2FPROC)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLMAP2XOESPROC)(GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points);
+typedef void * (GLAPIENTRY *PFNGLMAPBUFFERPROC)(GLenum target, GLenum access);
+typedef void * (GLAPIENTRY *PFNGLMAPBUFFERARBPROC)(GLenum target, GLenum access);
+typedef void * (GLAPIENTRY *PFNGLMAPBUFFEROESPROC)(GLenum target, GLenum access);
+typedef void * (GLAPIENTRY *PFNGLMAPBUFFERRANGEPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void * (GLAPIENTRY *PFNGLMAPBUFFERRANGEEXTPROC)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void (GLAPIENTRY *PFNGLMAPCONTROLPOINTSNVPROC)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void * points);
+typedef void (GLAPIENTRY *PFNGLMAPGRID1DPROC)(GLint un, GLdouble u1, GLdouble u2);
+typedef void (GLAPIENTRY *PFNGLMAPGRID1FPROC)(GLint un, GLfloat u1, GLfloat u2);
+typedef void (GLAPIENTRY *PFNGLMAPGRID1XOESPROC)(GLint n, GLfixed u1, GLfixed u2);
+typedef void (GLAPIENTRY *PFNGLMAPGRID2DPROC)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+typedef void (GLAPIENTRY *PFNGLMAPGRID2FPROC)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+typedef void (GLAPIENTRY *PFNGLMAPGRID2XOESPROC)(GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2);
+typedef void * (GLAPIENTRY *PFNGLMAPNAMEDBUFFERPROC)(GLuint buffer, GLenum access);
+typedef void * (GLAPIENTRY *PFNGLMAPNAMEDBUFFEREXTPROC)(GLuint buffer, GLenum access);
+typedef void * (GLAPIENTRY *PFNGLMAPNAMEDBUFFERRANGEPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void * (GLAPIENTRY *PFNGLMAPNAMEDBUFFERRANGEEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+typedef void * (GLAPIENTRY *PFNGLMAPOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLMAPPARAMETERFVNVPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLMAPPARAMETERIVNVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void * (GLAPIENTRY *PFNGLMAPTEXTURE2DINTELPROC)(GLuint texture, GLint level, GLbitfield access, GLint * stride, GLenum * layout);
+typedef void (GLAPIENTRY *PFNGLMAPVERTEXATTRIB1DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points);
+typedef void (GLAPIENTRY *PFNGLMAPVERTEXATTRIB1FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLMAPVERTEXATTRIB2DAPPLEPROC)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points);
+typedef void (GLAPIENTRY *PFNGLMAPVERTEXATTRIB2FAPPLEPROC)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLMATERIALFPROC)(GLenum face, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLMATERIALFVPROC)(GLenum face, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLMATERIALIPROC)(GLenum face, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLMATERIALIVPROC)(GLenum face, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLMATERIALXPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLMATERIALXOESPROC)(GLenum face, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLMATERIALXVPROC)(GLenum face, GLenum pname, const GLfixed * param);
+typedef void (GLAPIENTRY *PFNGLMATERIALXVOESPROC)(GLenum face, GLenum pname, const GLfixed * param);
+typedef void (GLAPIENTRY *PFNGLMATRIXFRUSTUMEXTPROC)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+typedef void (GLAPIENTRY *PFNGLMATRIXINDEXPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLMATRIXINDEXPOINTEROESPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLMATRIXINDEXUBVARBPROC)(GLint size, const GLubyte * indices);
+typedef void (GLAPIENTRY *PFNGLMATRIXINDEXUIVARBPROC)(GLint size, const GLuint * indices);
+typedef void (GLAPIENTRY *PFNGLMATRIXINDEXUSVARBPROC)(GLint size, const GLushort * indices);
+typedef void (GLAPIENTRY *PFNGLMATRIXLOAD3X2FNVPROC)(GLenum matrixMode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXLOAD3X3FNVPROC)(GLenum matrixMode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXLOADIDENTITYEXTPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC)(GLenum matrixMode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXLOADTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXLOADTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXLOADDEXTPROC)(GLenum mode, const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXLOADFEXTPROC)(GLenum mode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXMODEPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLMATRIXMULT3X2FNVPROC)(GLenum matrixMode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXMULT3X3FNVPROC)(GLenum matrixMode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC)(GLenum matrixMode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXMULTTRANSPOSEDEXTPROC)(GLenum mode, const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXMULTTRANSPOSEFEXTPROC)(GLenum mode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXMULTDEXTPROC)(GLenum mode, const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXMULTFEXTPROC)(GLenum mode, const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMATRIXORTHOEXTPROC)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+typedef void (GLAPIENTRY *PFNGLMATRIXPOPEXTPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLMATRIXPUSHEXTPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLMATRIXROTATEDEXTPROC)(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLMATRIXROTATEFEXTPROC)(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLMATRIXSCALEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLMATRIXSCALEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLMATRIXTRANSLATEDEXTPROC)(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLMATRIXTRANSLATEFEXTPROC)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLMAXSHADERCOMPILERTHREADSARBPROC)(GLuint count);
+typedef void (GLAPIENTRY *PFNGLMAXSHADERCOMPILERTHREADSKHRPROC)(GLuint count);
+typedef void (GLAPIENTRY *PFNGLMEMORYBARRIERPROC)(GLbitfield barriers);
+typedef void (GLAPIENTRY *PFNGLMEMORYBARRIERBYREGIONPROC)(GLbitfield barriers);
+typedef void (GLAPIENTRY *PFNGLMEMORYBARRIEREXTPROC)(GLbitfield barriers);
+typedef void (GLAPIENTRY *PFNGLMEMORYOBJECTPARAMETERIVEXTPROC)(GLuint memoryObject, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLMINSAMPLESHADINGPROC)(GLfloat value);
+typedef void (GLAPIENTRY *PFNGLMINSAMPLESHADINGARBPROC)(GLfloat value);
+typedef void (GLAPIENTRY *PFNGLMINSAMPLESHADINGOESPROC)(GLfloat value);
+typedef void (GLAPIENTRY *PFNGLMINMAXPROC)(GLenum target, GLenum internalformat, GLboolean sink);
+typedef void (GLAPIENTRY *PFNGLMINMAXEXTPROC)(GLenum target, GLenum internalformat, GLboolean sink);
+typedef void (GLAPIENTRY *PFNGLMULTMATRIXDPROC)(const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLMULTMATRIXFPROC)(const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMULTMATRIXXPROC)(const GLfixed * m);
+typedef void (GLAPIENTRY *PFNGLMULTMATRIXXOESPROC)(const GLfixed * m);
+typedef void (GLAPIENTRY *PFNGLMULTTRANSPOSEMATRIXDPROC)(const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLMULTTRANSPOSEMATRIXDARBPROC)(const GLdouble * m);
+typedef void (GLAPIENTRY *PFNGLMULTTRANSPOSEMATRIXFPROC)(const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMULTTRANSPOSEMATRIXFARBPROC)(const GLfloat * m);
+typedef void (GLAPIENTRY *PFNGLMULTTRANSPOSEMATRIXXOESPROC)(const GLfixed * m);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSEXTPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSINDIRECTPROC)(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC)(GLenum mode, const void * indirect, GLsizei primcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSCOUNTNVPROC)(GLenum mode, const void * indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSINDIRECTBINDLESSNVPROC)(GLenum mode, const void * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTPROC)(GLenum mode, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSINDIRECTCOUNTARBPROC)(GLenum mode, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWARRAYSINDIRECTEXTPROC)(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSBASEVERTEXEXTPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei primcount, const GLint * basevertex);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSEXTPROC)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSINDIRECTPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei primcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSCOUNTNVPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSINDIRECTBINDLESSNVPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTPROC)(GLenum mode, GLenum type, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSINDIRECTCOUNTARBPROC)(GLenum mode, GLenum type, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWELEMENTSINDIRECTEXTPROC)(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWMESHTASKSINDIRECTCOUNTNVPROC)(GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWMESHTASKSINDIRECTNVPROC)(GLintptr indirect, GLsizei drawcount, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC)(GLenum mode, GLuint start, GLuint end, const GLint * first, const GLsizei * count, GLsizei primcount);
+typedef void (GLAPIENTRY *PFNGLMULTIMODEDRAWARRAYSIBMPROC)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride);
+typedef void (GLAPIENTRY *PFNGLMULTIMODEDRAWELEMENTSIBMPROC)(const GLenum * mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei primcount, GLint modestride);
+typedef void (GLAPIENTRY *PFNGLMULTITEXBUFFEREXTPROC)(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1BOESPROC)(GLenum texture, GLbyte s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1BVOESPROC)(GLenum texture, const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1DPROC)(GLenum target, GLdouble s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1DARBPROC)(GLenum target, GLdouble s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1DVPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1DVARBPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1FPROC)(GLenum target, GLfloat s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1FARBPROC)(GLenum target, GLfloat s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1FVPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1FVARBPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1HNVPROC)(GLenum target, GLhalfNV s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1HVNVPROC)(GLenum target, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1IPROC)(GLenum target, GLint s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1IARBPROC)(GLenum target, GLint s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1IVPROC)(GLenum target, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1IVARBPROC)(GLenum target, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1SPROC)(GLenum target, GLshort s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1SARBPROC)(GLenum target, GLshort s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1SVPROC)(GLenum target, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1SVARBPROC)(GLenum target, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1XOESPROC)(GLenum texture, GLfixed s);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD1XVOESPROC)(GLenum texture, const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2BOESPROC)(GLenum texture, GLbyte s, GLbyte t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2BVOESPROC)(GLenum texture, const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2DPROC)(GLenum target, GLdouble s, GLdouble t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2DARBPROC)(GLenum target, GLdouble s, GLdouble t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2DVPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2DVARBPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2FPROC)(GLenum target, GLfloat s, GLfloat t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2FARBPROC)(GLenum target, GLfloat s, GLfloat t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2FVPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2FVARBPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2HVNVPROC)(GLenum target, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2IPROC)(GLenum target, GLint s, GLint t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2IARBPROC)(GLenum target, GLint s, GLint t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2IVPROC)(GLenum target, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2IVARBPROC)(GLenum target, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2SPROC)(GLenum target, GLshort s, GLshort t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2SARBPROC)(GLenum target, GLshort s, GLshort t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2SVPROC)(GLenum target, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2SVARBPROC)(GLenum target, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2XOESPROC)(GLenum texture, GLfixed s, GLfixed t);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD2XVOESPROC)(GLenum texture, const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3BOESPROC)(GLenum texture, GLbyte s, GLbyte t, GLbyte r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3BVOESPROC)(GLenum texture, const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3DVPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3DVARBPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3FVPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3FVARBPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3HVNVPROC)(GLenum target, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3IPROC)(GLenum target, GLint s, GLint t, GLint r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3IARBPROC)(GLenum target, GLint s, GLint t, GLint r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3IVPROC)(GLenum target, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3IVARBPROC)(GLenum target, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3SPROC)(GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3SVPROC)(GLenum target, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3SVARBPROC)(GLenum target, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3XOESPROC)(GLenum texture, GLfixed s, GLfixed t, GLfixed r);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD3XVOESPROC)(GLenum texture, const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4BOESPROC)(GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4BVOESPROC)(GLenum texture, const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4DPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4DARBPROC)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4DVPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4DVARBPROC)(GLenum target, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4FPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4FARBPROC)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4FVPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4FVARBPROC)(GLenum target, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4HNVPROC)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4HVNVPROC)(GLenum target, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4IPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4IARBPROC)(GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4IVPROC)(GLenum target, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4IVARBPROC)(GLenum target, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4SPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4SARBPROC)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4SVPROC)(GLenum target, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4SVARBPROC)(GLenum target, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4XPROC)(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4XOESPROC)(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORD4XVOESPROC)(GLenum texture, const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDP1UIPROC)(GLenum texture, GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDP1UIVPROC)(GLenum texture, GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDP2UIPROC)(GLenum texture, GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDP2UIVPROC)(GLenum texture, GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDP3UIPROC)(GLenum texture, GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDP3UIVPROC)(GLenum texture, GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDP4UIPROC)(GLenum texture, GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDP4UIVPROC)(GLenum texture, GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLMULTITEXCOORDPOINTEREXTPROC)(GLenum texunit, GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLMULTITEXENVFEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLMULTITEXENVFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXENVIEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLMULTITEXENVIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXGENDEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
+typedef void (GLAPIENTRY *PFNGLMULTITEXGENDVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXGENFEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLMULTITEXGENFVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXGENIEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLMULTITEXGENIVEXTPROC)(GLenum texunit, GLenum coord, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLMULTITEXIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLMULTITEXIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLMULTITEXPARAMETERIIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXPARAMETERIUIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXPARAMETERFEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLMULTITEXPARAMETERFVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXPARAMETERIEXTPROC)(GLenum texunit, GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLMULTITEXPARAMETERIVEXTPROC)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLMULTITEXRENDERBUFFEREXTPROC)(GLenum texunit, GLenum target, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLMULTITEXSUBIMAGE1DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLMULTITEXSUBIMAGE2DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLMULTITEXSUBIMAGE3DEXTPROC)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLMULTICASTBARRIERNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLMULTICASTBLITFRAMEBUFFERNVPROC)(GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef void (GLAPIENTRY *PFNGLMULTICASTBUFFERSUBDATANVPROC)(GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+typedef void (GLAPIENTRY *PFNGLMULTICASTCOPYBUFFERSUBDATANVPROC)(GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLMULTICASTCOPYIMAGESUBDATANVPROC)(GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+typedef void (GLAPIENTRY *PFNGLMULTICASTFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTICASTGETQUERYOBJECTI64VNVPROC)(GLuint gpu, GLuint id, GLenum pname, GLint64 * params);
+typedef void (GLAPIENTRY *PFNGLMULTICASTGETQUERYOBJECTIVNVPROC)(GLuint gpu, GLuint id, GLenum pname, GLint * params);
+typedef void (GLAPIENTRY *PFNGLMULTICASTGETQUERYOBJECTUI64VNVPROC)(GLuint gpu, GLuint id, GLenum pname, GLuint64 * params);
+typedef void (GLAPIENTRY *PFNGLMULTICASTGETQUERYOBJECTUIVNVPROC)(GLuint gpu, GLuint id, GLenum pname, GLuint * params);
+typedef void (GLAPIENTRY *PFNGLMULTICASTSCISSORARRAYVNVXPROC)(GLuint gpu, GLuint first, GLsizei count, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLMULTICASTVIEWPORTARRAYVNVXPROC)(GLuint gpu, GLuint first, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLMULTICASTVIEWPORTPOSITIONWSCALENVXPROC)(GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff);
+typedef void (GLAPIENTRY *PFNGLMULTICASTWAITSYNCNVPROC)(GLuint signalGpu, GLbitfield waitGpuMask);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERATTACHMEMORYNVPROC)(GLuint buffer, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERDATAPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERDATAEXTPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERPAGECOMMITMENTARBPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERPAGECOMMITMENTEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERSTORAGEPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERSTORAGEEXTPROC)(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERSTORAGEEXTERNALEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC)(GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERSUBDATAPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+typedef void (GLAPIENTRY *PFNGLNAMEDBUFFERSUBDATAEXTPROC)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+typedef void (GLAPIENTRY *PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERPROC)(GLuint framebuffer, GLenum buf);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERDRAWBUFFERSPROC)(GLuint framebuffer, GLsizei n, const GLenum * bufs);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERPARAMETERIPROC)(GLuint framebuffer, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERPARAMETERIEXTPROC)(GLuint framebuffer, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERREADBUFFERPROC)(GLuint framebuffer, GLenum src);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERRENDERBUFFERPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVARBPROC)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERSAMPLELOCATIONSFVNVPROC)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERSAMPLEPOSITIONSFVAMDPROC)(GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTUREPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTURELAYERPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (GLAPIENTRY *PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC)(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC)(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC)(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC)(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC)(GLuint program, GLenum target, GLuint index, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLNAMEDPROGRAMSTRINGEXTPROC)(GLuint program, GLenum target, GLenum format, GLsizei len, const void * string);
+typedef void (GLAPIENTRY *PFNGLNAMEDRENDERBUFFERSTORAGEPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)(GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC)(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLNAMEDSTRINGARBPROC)(GLenum type, GLint namelen, const GLchar * name, GLint stringlen, const GLchar * string);
+typedef void (GLAPIENTRY *PFNGLNEWLISTPROC)(GLuint list, GLenum mode);
+typedef GLuint (GLAPIENTRY *PFNGLNEWOBJECTBUFFERATIPROC)(GLsizei size, const void * pointer, GLenum usage);
+typedef void (GLAPIENTRY *PFNGLNORMAL3BPROC)(GLbyte nx, GLbyte ny, GLbyte nz);
+typedef void (GLAPIENTRY *PFNGLNORMAL3BVPROC)(const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLNORMAL3DPROC)(GLdouble nx, GLdouble ny, GLdouble nz);
+typedef void (GLAPIENTRY *PFNGLNORMAL3DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLNORMAL3FPROC)(GLfloat nx, GLfloat ny, GLfloat nz);
+typedef void (GLAPIENTRY *PFNGLNORMAL3FVERTEX3FSUNPROC)(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLNORMAL3FVERTEX3FVSUNPROC)(const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLNORMAL3FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLNORMAL3HNVPROC)(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+typedef void (GLAPIENTRY *PFNGLNORMAL3HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLNORMAL3IPROC)(GLint nx, GLint ny, GLint nz);
+typedef void (GLAPIENTRY *PFNGLNORMAL3IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLNORMAL3SPROC)(GLshort nx, GLshort ny, GLshort nz);
+typedef void (GLAPIENTRY *PFNGLNORMAL3SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLNORMAL3XPROC)(GLfixed nx, GLfixed ny, GLfixed nz);
+typedef void (GLAPIENTRY *PFNGLNORMAL3XOESPROC)(GLfixed nx, GLfixed ny, GLfixed nz);
+typedef void (GLAPIENTRY *PFNGLNORMAL3XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLNORMALFORMATNVPROC)(GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLNORMALP3UIPROC)(GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLNORMALP3UIVPROC)(GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLNORMALPOINTERPROC)(GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLNORMALPOINTEREXTPROC)(GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLNORMALPOINTERLISTIBMPROC)(GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+typedef void (GLAPIENTRY *PFNGLNORMALPOINTERVINTELPROC)(GLenum type, const void ** pointer);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3BATIPROC)(GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3BVATIPROC)(GLenum stream, const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3DATIPROC)(GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3DVATIPROC)(GLenum stream, const GLdouble * coords);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3FATIPROC)(GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3FVATIPROC)(GLenum stream, const GLfloat * coords);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3IATIPROC)(GLenum stream, GLint nx, GLint ny, GLint nz);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3IVATIPROC)(GLenum stream, const GLint * coords);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3SATIPROC)(GLenum stream, GLshort nx, GLshort ny, GLshort nz);
+typedef void (GLAPIENTRY *PFNGLNORMALSTREAM3SVATIPROC)(GLenum stream, const GLshort * coords);
+typedef void (GLAPIENTRY *PFNGLOBJECTLABELPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
+typedef void (GLAPIENTRY *PFNGLOBJECTLABELKHRPROC)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
+typedef void (GLAPIENTRY *PFNGLOBJECTPTRLABELPROC)(const void * ptr, GLsizei length, const GLchar * label);
+typedef void (GLAPIENTRY *PFNGLOBJECTPTRLABELKHRPROC)(const void * ptr, GLsizei length, const GLchar * label);
+typedef GLenum (GLAPIENTRY *PFNGLOBJECTPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name, GLenum option);
+typedef GLenum (GLAPIENTRY *PFNGLOBJECTUNPURGEABLEAPPLEPROC)(GLenum objectType, GLuint name, GLenum option);
+typedef void (GLAPIENTRY *PFNGLORTHOPROC)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+typedef void (GLAPIENTRY *PFNGLORTHOFPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+typedef void (GLAPIENTRY *PFNGLORTHOFOESPROC)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+typedef void (GLAPIENTRY *PFNGLORTHOXPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+typedef void (GLAPIENTRY *PFNGLORTHOXOESPROC)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+typedef void (GLAPIENTRY *PFNGLPNTRIANGLESFATIPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPNTRIANGLESIATIPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLPASSTEXCOORDATIPROC)(GLuint dst, GLuint coord, GLenum swizzle);
+typedef void (GLAPIENTRY *PFNGLPASSTHROUGHPROC)(GLfloat token);
+typedef void (GLAPIENTRY *PFNGLPASSTHROUGHXOESPROC)(GLfixed token);
+typedef void (GLAPIENTRY *PFNGLPATCHPARAMETERFVPROC)(GLenum pname, const GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLPATCHPARAMETERIPROC)(GLenum pname, GLint value);
+typedef void (GLAPIENTRY *PFNGLPATCHPARAMETERIEXTPROC)(GLenum pname, GLint value);
+typedef void (GLAPIENTRY *PFNGLPATCHPARAMETERIOESPROC)(GLenum pname, GLint value);
+typedef void (GLAPIENTRY *PFNGLPATHCOLORGENNVPROC)(GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat * coeffs);
+typedef void (GLAPIENTRY *PFNGLPATHCOMMANDSNVPROC)(GLuint path, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const void * coords);
+typedef void (GLAPIENTRY *PFNGLPATHCOORDSNVPROC)(GLuint path, GLsizei numCoords, GLenum coordType, const void * coords);
+typedef void (GLAPIENTRY *PFNGLPATHCOVERDEPTHFUNCNVPROC)(GLenum func);
+typedef void (GLAPIENTRY *PFNGLPATHDASHARRAYNVPROC)(GLuint path, GLsizei dashCount, const GLfloat * dashArray);
+typedef void (GLAPIENTRY *PFNGLPATHFOGGENNVPROC)(GLenum genMode);
+typedef GLenum (GLAPIENTRY *PFNGLPATHGLYPHINDEXARRAYNVPROC)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+typedef GLenum (GLAPIENTRY *PFNGLPATHGLYPHINDEXRANGENVPROC)(GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount);
+typedef void (GLAPIENTRY *PFNGLPATHGLYPHRANGENVPROC)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+typedef void (GLAPIENTRY *PFNGLPATHGLYPHSNVPROC)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void * charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+typedef GLenum (GLAPIENTRY *PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC)(GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void * fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+typedef void (GLAPIENTRY *PFNGLPATHPARAMETERFNVPROC)(GLuint path, GLenum pname, GLfloat value);
+typedef void (GLAPIENTRY *PFNGLPATHPARAMETERFVNVPROC)(GLuint path, GLenum pname, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPATHPARAMETERINVPROC)(GLuint path, GLenum pname, GLint value);
+typedef void (GLAPIENTRY *PFNGLPATHPARAMETERIVNVPROC)(GLuint path, GLenum pname, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPATHSTENCILDEPTHOFFSETNVPROC)(GLfloat factor, GLfloat units);
+typedef void (GLAPIENTRY *PFNGLPATHSTENCILFUNCNVPROC)(GLenum func, GLint ref, GLuint mask);
+typedef void (GLAPIENTRY *PFNGLPATHSTRINGNVPROC)(GLuint path, GLenum format, GLsizei length, const void * pathString);
+typedef void (GLAPIENTRY *PFNGLPATHSUBCOMMANDSNVPROC)(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const void * coords);
+typedef void (GLAPIENTRY *PFNGLPATHSUBCOORDSNVPROC)(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void * coords);
+typedef void (GLAPIENTRY *PFNGLPATHTEXGENNVPROC)(GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat * coeffs);
+typedef void (GLAPIENTRY *PFNGLPAUSETRANSFORMFEEDBACKPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPAUSETRANSFORMFEEDBACKNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPIXELDATARANGENVPROC)(GLenum target, GLsizei length, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLPIXELMAPFVPROC)(GLenum map, GLsizei mapsize, const GLfloat * values);
+typedef void (GLAPIENTRY *PFNGLPIXELMAPUIVPROC)(GLenum map, GLsizei mapsize, const GLuint * values);
+typedef void (GLAPIENTRY *PFNGLPIXELMAPUSVPROC)(GLenum map, GLsizei mapsize, const GLushort * values);
+typedef void (GLAPIENTRY *PFNGLPIXELMAPXPROC)(GLenum map, GLint size, const GLfixed * values);
+typedef void (GLAPIENTRY *PFNGLPIXELSTOREFPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPIXELSTOREIPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLPIXELSTOREXPROC)(GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLPIXELTEXGENPARAMETERFSGISPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPIXELTEXGENPARAMETERFVSGISPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPIXELTEXGENPARAMETERISGISPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLPIXELTEXGENPARAMETERIVSGISPROC)(GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPIXELTEXGENSGIXPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLPIXELTRANSFERFPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPIXELTRANSFERIPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLPIXELTRANSFERXOESPROC)(GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLPIXELTRANSFORMPARAMETERFEXTPROC)(GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPIXELTRANSFORMPARAMETERIEXTPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPIXELZOOMPROC)(GLfloat xfactor, GLfloat yfactor);
+typedef void (GLAPIENTRY *PFNGLPIXELZOOMXOESPROC)(GLfixed xfactor, GLfixed yfactor);
+typedef GLboolean (GLAPIENTRY *PFNGLPOINTALONGPATHNVPROC)(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat * x, GLfloat * y, GLfloat * tangentX, GLfloat * tangentY);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERFPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERFARBPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERFEXTPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERFSGISPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERFVPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERFVARBPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERFVEXTPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERFVSGISPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERIPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERINVPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERIVPROC)(GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERIVNVPROC)(GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERXPROC)(GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERXOESPROC)(GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERXVPROC)(GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLPOINTPARAMETERXVOESPROC)(GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLPOINTSIZEPROC)(GLfloat size);
+typedef void (GLAPIENTRY *PFNGLPOINTSIZEPOINTEROESPROC)(GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLPOINTSIZEXPROC)(GLfixed size);
+typedef void (GLAPIENTRY *PFNGLPOINTSIZEXOESPROC)(GLfixed size);
+typedef GLint (GLAPIENTRY *PFNGLPOLLASYNCSGIXPROC)(GLuint * markerp);
+typedef GLint (GLAPIENTRY *PFNGLPOLLINSTRUMENTSSGIXPROC)(GLint * marker_p);
+typedef void (GLAPIENTRY *PFNGLPOLYGONMODEPROC)(GLenum face, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLPOLYGONMODENVPROC)(GLenum face, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLPOLYGONOFFSETPROC)(GLfloat factor, GLfloat units);
+typedef void (GLAPIENTRY *PFNGLPOLYGONOFFSETCLAMPPROC)(GLfloat factor, GLfloat units, GLfloat clamp);
+typedef void (GLAPIENTRY *PFNGLPOLYGONOFFSETCLAMPEXTPROC)(GLfloat factor, GLfloat units, GLfloat clamp);
+typedef void (GLAPIENTRY *PFNGLPOLYGONOFFSETEXTPROC)(GLfloat factor, GLfloat bias);
+typedef void (GLAPIENTRY *PFNGLPOLYGONOFFSETXPROC)(GLfixed factor, GLfixed units);
+typedef void (GLAPIENTRY *PFNGLPOLYGONOFFSETXOESPROC)(GLfixed factor, GLfixed units);
+typedef void (GLAPIENTRY *PFNGLPOLYGONSTIPPLEPROC)(const GLubyte * mask);
+typedef void (GLAPIENTRY *PFNGLPOPATTRIBPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPOPCLIENTATTRIBPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPOPDEBUGGROUPPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPOPDEBUGGROUPKHRPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPOPGROUPMARKEREXTPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPOPMATRIXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPOPNAMEPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPRESENTFRAMEDUALFILLNVPROC)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
+typedef void (GLAPIENTRY *PFNGLPRESENTFRAMEKEYEDNVPROC)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
+typedef void (GLAPIENTRY *PFNGLPRIMITIVEBOUNDINGBOXPROC)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+typedef void (GLAPIENTRY *PFNGLPRIMITIVEBOUNDINGBOXARBPROC)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+typedef void (GLAPIENTRY *PFNGLPRIMITIVEBOUNDINGBOXEXTPROC)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+typedef void (GLAPIENTRY *PFNGLPRIMITIVEBOUNDINGBOXOESPROC)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+typedef void (GLAPIENTRY *PFNGLPRIMITIVERESTARTINDEXPROC)(GLuint index);
+typedef void (GLAPIENTRY *PFNGLPRIMITIVERESTARTINDEXNVPROC)(GLuint index);
+typedef void (GLAPIENTRY *PFNGLPRIMITIVERESTARTNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPRIORITIZETEXTURESPROC)(GLsizei n, const GLuint * textures, const GLfloat * priorities);
+typedef void (GLAPIENTRY *PFNGLPRIORITIZETEXTURESEXTPROC)(GLsizei n, const GLuint * textures, const GLclampf * priorities);
+typedef void (GLAPIENTRY *PFNGLPRIORITIZETEXTURESXOESPROC)(GLsizei n, const GLuint * textures, const GLfixed * priorities);
+typedef void (GLAPIENTRY *PFNGLPROGRAMBINARYPROC)(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length);
+typedef void (GLAPIENTRY *PFNGLPROGRAMBINARYOESPROC)(GLuint program, GLenum binaryFormat, const void * binary, GLint length);
+typedef void (GLAPIENTRY *PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC)(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC)(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC)(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETERI4IVNVPROC)(GLenum target, GLuint index, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETERI4UINVPROC)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETERI4UIVNVPROC)(GLenum target, GLuint index, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETERS4FVEXTPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETERSI4IVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETER4DARBPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETER4DVARBPROC)(GLenum target, GLuint index, const GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETER4FARBPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETER4FVARBPROC)(GLenum target, GLuint index, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETERI4INVPROC)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC)(GLenum target, GLuint index, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETERI4UINVPROC)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC)(GLenum target, GLuint index, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMNAMEDPARAMETER4DNVPROC)(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC)(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLPROGRAMNAMEDPARAMETER4FNVPROC)(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC)(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETER4DNVPROC)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETER4DVNVPROC)(GLenum target, GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETER4FNVPROC)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETER4FVNVPROC)(GLenum target, GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETERIPROC)(GLuint program, GLenum pname, GLint value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETERIARBPROC)(GLuint program, GLenum pname, GLint value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETERIEXTPROC)(GLuint program, GLenum pname, GLint value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETERS4DVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPARAMETERS4FVNVPROC)(GLenum target, GLuint index, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC)(GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat * coeffs);
+typedef void (GLAPIENTRY *PFNGLPROGRAMSTRINGARBPROC)(GLenum target, GLenum format, GLsizei len, const void * string);
+typedef void (GLAPIENTRY *PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC)(GLenum target, GLsizei count, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1DPROC)(GLuint program, GLint location, GLdouble v0);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1DEXTPROC)(GLuint program, GLint location, GLdouble x);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1FPROC)(GLuint program, GLint location, GLfloat v0);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1FEXTPROC)(GLuint program, GLint location, GLfloat v0);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1IPROC)(GLuint program, GLint location, GLint v0);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1I64ARBPROC)(GLuint program, GLint location, GLint64 x);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1I64NVPROC)(GLuint program, GLint location, GLint64EXT x);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1IEXTPROC)(GLuint program, GLint location, GLint v0);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1UIPROC)(GLuint program, GLint location, GLuint v0);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1UI64ARBPROC)(GLuint program, GLint location, GLuint64 x);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1UIEXTPROC)(GLuint program, GLint location, GLuint v0);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM1UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2IPROC)(GLuint program, GLint location, GLint v0, GLint v1);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM2UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM3UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4DPROC)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4DEXTPROC)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4DVPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4DVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4FPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4FEXTPROC)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4FVPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4FVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4IPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4I64ARBPROC)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4I64NVPROC)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4I64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4I64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4IEXTPROC)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4IVPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4IVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4UIPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4UI64ARBPROC)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4UI64NVPROC)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4UI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4UI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4UIEXTPROC)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4UIVPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORM4UIVEXTPROC)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMHANDLEUI64ARBPROC)(GLuint program, GLint location, GLuint64 value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMHANDLEUI64IMGPROC)(GLuint program, GLint location, GLuint64 value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMHANDLEUI64NVPROC)(GLuint program, GLint location, GLuint64 value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMHANDLEUI64VARBPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * values);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMHANDLEUI64VIMGPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * values);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMHANDLEUI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64 * values);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMUI64NVPROC)(GLuint program, GLint location, GLuint64EXT value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMUNIFORMUI64VNVPROC)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLPROGRAMVERTEXLIMITNVPROC)(GLenum target, GLint limit);
+typedef void (GLAPIENTRY *PFNGLPROVOKINGVERTEXPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLPROVOKINGVERTEXEXTPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLPUSHATTRIBPROC)(GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLPUSHCLIENTATTRIBPROC)(GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC)(GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLPUSHDEBUGGROUPPROC)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
+typedef void (GLAPIENTRY *PFNGLPUSHDEBUGGROUPKHRPROC)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
+typedef void (GLAPIENTRY *PFNGLPUSHGROUPMARKEREXTPROC)(GLsizei length, const GLchar * marker);
+typedef void (GLAPIENTRY *PFNGLPUSHMATRIXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLPUSHNAMEPROC)(GLuint name);
+typedef void (GLAPIENTRY *PFNGLQUERYCOUNTERPROC)(GLuint id, GLenum target);
+typedef void (GLAPIENTRY *PFNGLQUERYCOUNTEREXTPROC)(GLuint id, GLenum target);
+typedef GLbitfield (GLAPIENTRY *PFNGLQUERYMATRIXXOESPROC)(GLfixed * mantissa, GLint * exponent);
+typedef void (GLAPIENTRY *PFNGLQUERYOBJECTPARAMETERUIAMDPROC)(GLenum target, GLuint id, GLenum pname, GLuint param);
+typedef GLint (GLAPIENTRY *PFNGLQUERYRESOURCENVPROC)(GLenum queryType, GLint tagId, GLuint bufSize, GLint * buffer);
+typedef void (GLAPIENTRY *PFNGLQUERYRESOURCETAGNVPROC)(GLint tagId, const GLchar * tagString);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2DPROC)(GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2FPROC)(GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2IPROC)(GLint x, GLint y);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2SPROC)(GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2XOESPROC)(GLfixed x, GLfixed y);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS2XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3IPROC)(GLint x, GLint y, GLint z);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3SPROC)(GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3XOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS3XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4IPROC)(GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4XOESPROC)(GLfixed x, GLfixed y, GLfixed z, GLfixed w);
+typedef void (GLAPIENTRY *PFNGLRASTERPOS4XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLRASTERSAMPLESEXTPROC)(GLuint samples, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLREADBUFFERPROC)(GLenum src);
+typedef void (GLAPIENTRY *PFNGLREADBUFFERINDEXEDEXTPROC)(GLenum src, GLint index);
+typedef void (GLAPIENTRY *PFNGLREADBUFFERNVPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLREADINSTRUMENTSSGIXPROC)(GLint marker);
+typedef void (GLAPIENTRY *PFNGLREADPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels);
+typedef void (GLAPIENTRY *PFNGLREADNPIXELSPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+typedef void (GLAPIENTRY *PFNGLREADNPIXELSARBPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+typedef void (GLAPIENTRY *PFNGLREADNPIXELSEXTPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+typedef void (GLAPIENTRY *PFNGLREADNPIXELSKHRPROC)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+typedef void (GLAPIENTRY *PFNGLRECTDPROC)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+typedef void (GLAPIENTRY *PFNGLRECTDVPROC)(const GLdouble * v1, const GLdouble * v2);
+typedef void (GLAPIENTRY *PFNGLRECTFPROC)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+typedef void (GLAPIENTRY *PFNGLRECTFVPROC)(const GLfloat * v1, const GLfloat * v2);
+typedef void (GLAPIENTRY *PFNGLRECTIPROC)(GLint x1, GLint y1, GLint x2, GLint y2);
+typedef void (GLAPIENTRY *PFNGLRECTIVPROC)(const GLint * v1, const GLint * v2);
+typedef void (GLAPIENTRY *PFNGLRECTSPROC)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+typedef void (GLAPIENTRY *PFNGLRECTSVPROC)(const GLshort * v1, const GLshort * v2);
+typedef void (GLAPIENTRY *PFNGLRECTXOESPROC)(GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2);
+typedef void (GLAPIENTRY *PFNGLRECTXVOESPROC)(const GLfixed * v1, const GLfixed * v2);
+typedef void (GLAPIENTRY *PFNGLREFERENCEPLANESGIXPROC)(const GLdouble * equation);
+typedef GLboolean (GLAPIENTRY *PFNGLRELEASEKEYEDMUTEXWIN32EXTPROC)(GLuint memory, GLuint64 key);
+typedef void (GLAPIENTRY *PFNGLRELEASESHADERCOMPILERPROC)(void);
+typedef void (GLAPIENTRY *PFNGLRENDERGPUMASKNVPROC)(GLbitfield mask);
+typedef GLint (GLAPIENTRY *PFNGLRENDERMODEPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEANGLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEAPPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEADVANCEDAMDPROC)(GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLEIMGPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEMULTISAMPLENVPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLRENDERBUFFERSTORAGEOESPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEPOINTERSUNPROC)(GLenum type, GLsizei stride, const void ** pointer);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUBSUNPROC)(GLubyte code);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUBVSUNPROC)(const GLubyte * code);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * c, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * c, const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC)(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC)(const GLuint * rc, const GLubyte * c, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUISUNPROC)(GLuint code);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * tc, const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC)(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * tc, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC)(GLuint rc, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC)(const GLuint * rc, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUIVSUNPROC)(const GLuint * code);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUSSUNPROC)(GLushort code);
+typedef void (GLAPIENTRY *PFNGLREPLACEMENTCODEUSVSUNPROC)(const GLushort * code);
+typedef void (GLAPIENTRY *PFNGLREQUESTRESIDENTPROGRAMSNVPROC)(GLsizei n, const GLuint * programs);
+typedef void (GLAPIENTRY *PFNGLRESETHISTOGRAMPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLRESETHISTOGRAMEXTPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLRESETMEMORYOBJECTPARAMETERNVPROC)(GLuint memory, GLenum pname);
+typedef void (GLAPIENTRY *PFNGLRESETMINMAXPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLRESETMINMAXEXTPROC)(GLenum target);
+typedef void (GLAPIENTRY *PFNGLRESIZEBUFFERSMESAPROC)(void);
+typedef void (GLAPIENTRY *PFNGLRESOLVEDEPTHVALUESNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLRESOLVEMULTISAMPLEFRAMEBUFFERAPPLEPROC)(void);
+typedef void (GLAPIENTRY *PFNGLRESUMETRANSFORMFEEDBACKPROC)(void);
+typedef void (GLAPIENTRY *PFNGLRESUMETRANSFORMFEEDBACKNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLROTATEDPROC)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLROTATEFPROC)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLROTATEXPROC)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAPIENTRY *PFNGLROTATEXOESPROC)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAPIENTRY *PFNGLSAMPLECOVERAGEPROC)(GLfloat value, GLboolean invert);
+typedef void (GLAPIENTRY *PFNGLSAMPLECOVERAGEARBPROC)(GLfloat value, GLboolean invert);
+typedef void (GLAPIENTRY *PFNGLSAMPLECOVERAGEXPROC)(GLclampx value, GLboolean invert);
+typedef void (GLAPIENTRY *PFNGLSAMPLECOVERAGEXOESPROC)(GLclampx value, GLboolean invert);
+typedef void (GLAPIENTRY *PFNGLSAMPLEMAPATIPROC)(GLuint dst, GLuint interp, GLenum swizzle);
+typedef void (GLAPIENTRY *PFNGLSAMPLEMASKEXTPROC)(GLclampf value, GLboolean invert);
+typedef void (GLAPIENTRY *PFNGLSAMPLEMASKINDEXEDNVPROC)(GLuint index, GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLSAMPLEMASKSGISPROC)(GLclampf value, GLboolean invert);
+typedef void (GLAPIENTRY *PFNGLSAMPLEMASKIPROC)(GLuint maskNumber, GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLSAMPLEPATTERNEXTPROC)(GLenum pattern);
+typedef void (GLAPIENTRY *PFNGLSAMPLEPATTERNSGISPROC)(GLenum pattern);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERIIVPROC)(GLuint sampler, GLenum pname, const GLint * param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERIIVEXTPROC)(GLuint sampler, GLenum pname, const GLint * param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERIIVOESPROC)(GLuint sampler, GLenum pname, const GLint * param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERIUIVPROC)(GLuint sampler, GLenum pname, const GLuint * param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERIUIVEXTPROC)(GLuint sampler, GLenum pname, const GLuint * param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERIUIVOESPROC)(GLuint sampler, GLenum pname, const GLuint * param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERFPROC)(GLuint sampler, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERFVPROC)(GLuint sampler, GLenum pname, const GLfloat * param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERIPROC)(GLuint sampler, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLSAMPLERPARAMETERIVPROC)(GLuint sampler, GLenum pname, const GLint * param);
+typedef void (GLAPIENTRY *PFNGLSCALEDPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLSCALEFPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLSCALEXPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAPIENTRY *PFNGLSCALEXOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAPIENTRY *PFNGLSCISSORPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLSCISSORARRAYVPROC)(GLuint first, GLsizei count, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSCISSORARRAYVNVPROC)(GLuint first, GLsizei count, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSCISSORARRAYVOESPROC)(GLuint first, GLsizei count, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSCISSOREXCLUSIVEARRAYVNVPROC)(GLuint first, GLsizei count, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSCISSOREXCLUSIVENVPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLSCISSORINDEXEDPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLSCISSORINDEXEDNVPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLSCISSORINDEXEDOESPROC)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLSCISSORINDEXEDVPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSCISSORINDEXEDVNVPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSCISSORINDEXEDVOESPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3BPROC)(GLbyte red, GLbyte green, GLbyte blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3BEXTPROC)(GLbyte red, GLbyte green, GLbyte blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3BVPROC)(const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3BVEXTPROC)(const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3DPROC)(GLdouble red, GLdouble green, GLdouble blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3DEXTPROC)(GLdouble red, GLdouble green, GLdouble blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3DVEXTPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3FPROC)(GLfloat red, GLfloat green, GLfloat blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3FEXTPROC)(GLfloat red, GLfloat green, GLfloat blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3FVEXTPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3HNVPROC)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3IPROC)(GLint red, GLint green, GLint blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3IEXTPROC)(GLint red, GLint green, GLint blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3IVEXTPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3SPROC)(GLshort red, GLshort green, GLshort blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3SEXTPROC)(GLshort red, GLshort green, GLshort blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3SVEXTPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3UBPROC)(GLubyte red, GLubyte green, GLubyte blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3UBEXTPROC)(GLubyte red, GLubyte green, GLubyte blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3UBVPROC)(const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3UBVEXTPROC)(const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3UIPROC)(GLuint red, GLuint green, GLuint blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3UIEXTPROC)(GLuint red, GLuint green, GLuint blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3UIVPROC)(const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3UIVEXTPROC)(const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3USPROC)(GLushort red, GLushort green, GLushort blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3USEXTPROC)(GLushort red, GLushort green, GLushort blue);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3USVPROC)(const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLOR3USVEXTPROC)(const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLORFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLORP3UIPROC)(GLenum type, GLuint color);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLORP3UIVPROC)(GLenum type, const GLuint * color);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLORPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLORPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLSECONDARYCOLORPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+typedef void (GLAPIENTRY *PFNGLSELECTBUFFERPROC)(GLsizei size, GLuint * buffer);
+typedef void (GLAPIENTRY *PFNGLSELECTPERFMONITORCOUNTERSAMDPROC)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint * counterList);
+typedef void (GLAPIENTRY *PFNGLSEMAPHOREPARAMETERUI64VEXTPROC)(GLuint semaphore, GLenum pname, const GLuint64 * params);
+typedef void (GLAPIENTRY *PFNGLSEPARABLEFILTER2DPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * row, const void * column);
+typedef void (GLAPIENTRY *PFNGLSEPARABLEFILTER2DEXTPROC)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * row, const void * column);
+typedef void (GLAPIENTRY *PFNGLSETFENCEAPPLEPROC)(GLuint fence);
+typedef void (GLAPIENTRY *PFNGLSETFENCENVPROC)(GLuint fence, GLenum condition);
+typedef void (GLAPIENTRY *PFNGLSETFRAGMENTSHADERCONSTANTATIPROC)(GLuint dst, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLSETINVARIANTEXTPROC)(GLuint id, GLenum type, const void * addr);
+typedef void (GLAPIENTRY *PFNGLSETLOCALCONSTANTEXTPROC)(GLuint id, GLenum type, const void * addr);
+typedef void (GLAPIENTRY *PFNGLSETMULTISAMPLEFVAMDPROC)(GLenum pname, GLuint index, const GLfloat * val);
+typedef void (GLAPIENTRY *PFNGLSHADEMODELPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLSHADERBINARYPROC)(GLsizei count, const GLuint * shaders, GLenum binaryformat, const void * binary, GLsizei length);
+typedef void (GLAPIENTRY *PFNGLSHADEROP1EXTPROC)(GLenum op, GLuint res, GLuint arg1);
+typedef void (GLAPIENTRY *PFNGLSHADEROP2EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+typedef void (GLAPIENTRY *PFNGLSHADEROP3EXTPROC)(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
+typedef void (GLAPIENTRY *PFNGLSHADERSOURCEPROC)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
+typedef void (GLAPIENTRY *PFNGLSHADERSOURCEARBPROC)(GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint * length);
+typedef void (GLAPIENTRY *PFNGLSHADERSTORAGEBLOCKBINDINGPROC)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+typedef void (GLAPIENTRY *PFNGLSHADINGRATEIMAGEBARRIERNVPROC)(GLboolean synchronize);
+typedef void (GLAPIENTRY *PFNGLSHADINGRATEIMAGEPALETTENVPROC)(GLuint viewport, GLuint first, GLsizei count, const GLenum * rates);
+typedef void (GLAPIENTRY *PFNGLSHADINGRATESAMPLEORDERCUSTOMNVPROC)(GLenum rate, GLuint samples, const GLint * locations);
+typedef void (GLAPIENTRY *PFNGLSHADINGRATESAMPLEORDERNVPROC)(GLenum order);
+typedef void (GLAPIENTRY *PFNGLSHARPENTEXFUNCSGISPROC)(GLenum target, GLsizei n, const GLfloat * points);
+typedef void (GLAPIENTRY *PFNGLSIGNALSEMAPHOREEXTPROC)(GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * dstLayouts);
+typedef void (GLAPIENTRY *PFNGLSIGNALSEMAPHOREUI64NVXPROC)(GLuint signalGpu, GLsizei fenceObjectCount, const GLuint * semaphoreArray, const GLuint64 * fenceValueArray);
+typedef void (GLAPIENTRY *PFNGLSIGNALVKFENCENVPROC)(GLuint64 vkFence);
+typedef void (GLAPIENTRY *PFNGLSIGNALVKSEMAPHORENVPROC)(GLuint64 vkSemaphore);
+typedef void (GLAPIENTRY *PFNGLSPECIALIZESHADERPROC)(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue);
+typedef void (GLAPIENTRY *PFNGLSPECIALIZESHADERARBPROC)(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue);
+typedef void (GLAPIENTRY *PFNGLSPRITEPARAMETERFSGIXPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLSPRITEPARAMETERFVSGIXPROC)(GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLSPRITEPARAMETERISGIXPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLSPRITEPARAMETERIVSGIXPROC)(GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLSTARTINSTRUMENTSSGIXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLSTARTTILINGQCOMPROC)(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
+typedef void (GLAPIENTRY *PFNGLSTATECAPTURENVPROC)(GLuint state, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLSTENCILCLEARTAGEXTPROC)(GLsizei stencilTagBits, GLuint stencilClearTag);
+typedef void (GLAPIENTRY *PFNGLSTENCILFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat * transformValues);
+typedef void (GLAPIENTRY *PFNGLSTENCILFILLPATHNVPROC)(GLuint path, GLenum fillMode, GLuint mask);
+typedef void (GLAPIENTRY *PFNGLSTENCILFUNCPROC)(GLenum func, GLint ref, GLuint mask);
+typedef void (GLAPIENTRY *PFNGLSTENCILFUNCSEPARATEPROC)(GLenum face, GLenum func, GLint ref, GLuint mask);
+typedef void (GLAPIENTRY *PFNGLSTENCILFUNCSEPARATEATIPROC)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+typedef void (GLAPIENTRY *PFNGLSTENCILMASKPROC)(GLuint mask);
+typedef void (GLAPIENTRY *PFNGLSTENCILMASKSEPARATEPROC)(GLenum face, GLuint mask);
+typedef void (GLAPIENTRY *PFNGLSTENCILOPPROC)(GLenum fail, GLenum zfail, GLenum zpass);
+typedef void (GLAPIENTRY *PFNGLSTENCILOPSEPARATEPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (GLAPIENTRY *PFNGLSTENCILOPSEPARATEATIPROC)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+typedef void (GLAPIENTRY *PFNGLSTENCILOPVALUEAMDPROC)(GLenum face, GLuint value);
+typedef void (GLAPIENTRY *PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat * transformValues);
+typedef void (GLAPIENTRY *PFNGLSTENCILSTROKEPATHNVPROC)(GLuint path, GLint reference, GLuint mask);
+typedef void (GLAPIENTRY *PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+typedef void (GLAPIENTRY *PFNGLSTENCILTHENCOVERFILLPATHNVPROC)(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
+typedef void (GLAPIENTRY *PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+typedef void (GLAPIENTRY *PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC)(GLuint path, GLint reference, GLuint mask, GLenum coverMode);
+typedef void (GLAPIENTRY *PFNGLSTOPINSTRUMENTSSGIXPROC)(GLint marker);
+typedef void (GLAPIENTRY *PFNGLSTRINGMARKERGREMEDYPROC)(GLsizei len, const void * string);
+typedef void (GLAPIENTRY *PFNGLSUBPIXELPRECISIONBIASNVPROC)(GLuint xbits, GLuint ybits);
+typedef void (GLAPIENTRY *PFNGLSWIZZLEEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+typedef void (GLAPIENTRY *PFNGLSYNCTEXTUREINTELPROC)(GLuint texture);
+typedef void (GLAPIENTRY *PFNGLTAGSAMPLEBUFFERSGIXPROC)(void);
+typedef void (GLAPIENTRY *PFNGLTANGENT3BEXTPROC)(GLbyte tx, GLbyte ty, GLbyte tz);
+typedef void (GLAPIENTRY *PFNGLTANGENT3BVEXTPROC)(const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLTANGENT3DEXTPROC)(GLdouble tx, GLdouble ty, GLdouble tz);
+typedef void (GLAPIENTRY *PFNGLTANGENT3DVEXTPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLTANGENT3FEXTPROC)(GLfloat tx, GLfloat ty, GLfloat tz);
+typedef void (GLAPIENTRY *PFNGLTANGENT3FVEXTPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTANGENT3IEXTPROC)(GLint tx, GLint ty, GLint tz);
+typedef void (GLAPIENTRY *PFNGLTANGENT3IVEXTPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLTANGENT3SEXTPROC)(GLshort tx, GLshort ty, GLshort tz);
+typedef void (GLAPIENTRY *PFNGLTANGENT3SVEXTPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLTANGENTPOINTEREXTPROC)(GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLTBUFFERMASK3DFXPROC)(GLuint mask);
+typedef void (GLAPIENTRY *PFNGLTESSELLATIONFACTORAMDPROC)(GLfloat factor);
+typedef void (GLAPIENTRY *PFNGLTESSELLATIONMODEAMDPROC)(GLenum mode);
+typedef GLboolean (GLAPIENTRY *PFNGLTESTFENCEAPPLEPROC)(GLuint fence);
+typedef GLboolean (GLAPIENTRY *PFNGLTESTFENCENVPROC)(GLuint fence);
+typedef GLboolean (GLAPIENTRY *PFNGLTESTOBJECTAPPLEPROC)(GLenum object, GLuint name);
+typedef void (GLAPIENTRY *PFNGLTEXATTACHMEMORYNVPROC)(GLenum target, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXBUFFERPROC)(GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLTEXBUFFERARBPROC)(GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLTEXBUFFEREXTPROC)(GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLTEXBUFFEROESPROC)(GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLTEXBUFFERRANGEPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLTEXBUFFERRANGEEXTPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLTEXBUFFERRANGEOESPROC)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLTEXBUMPPARAMETERFVATIPROC)(GLenum pname, const GLfloat * param);
+typedef void (GLAPIENTRY *PFNGLTEXBUMPPARAMETERIVATIPROC)(GLenum pname, const GLint * param);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1BOESPROC)(GLbyte s);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1BVOESPROC)(const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1DPROC)(GLdouble s);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1FPROC)(GLfloat s);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1HNVPROC)(GLhalfNV s);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1IPROC)(GLint s);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1SPROC)(GLshort s);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1XOESPROC)(GLfixed s);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD1XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2BOESPROC)(GLbyte s, GLbyte t);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2BVOESPROC)(const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2DPROC)(GLdouble s, GLdouble t);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FPROC)(GLfloat s, GLfloat t);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC)(const GLfloat * tc, const GLfloat * c, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC)(const GLfloat * tc, const GLubyte * c, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC)(const GLfloat * tc, const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FVERTEX3FSUNPROC)(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FVERTEX3FVSUNPROC)(const GLfloat * tc, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2HNVPROC)(GLhalfNV s, GLhalfNV t);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2IPROC)(GLint s, GLint t);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2SPROC)(GLshort s, GLshort t);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2XOESPROC)(GLfixed s, GLfixed t);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD2XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3BOESPROC)(GLbyte s, GLbyte t, GLbyte r);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3BVOESPROC)(const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3DPROC)(GLdouble s, GLdouble t, GLdouble r);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3FPROC)(GLfloat s, GLfloat t, GLfloat r);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3IPROC)(GLint s, GLint t, GLint r);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3SPROC)(GLshort s, GLshort t, GLshort r);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3XOESPROC)(GLfixed s, GLfixed t, GLfixed r);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD3XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4BOESPROC)(GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4BVOESPROC)(const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4DPROC)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4FPROC)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC)(const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4FVERTEX4FSUNPROC)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4FVERTEX4FVSUNPROC)(const GLfloat * tc, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4HNVPROC)(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4IPROC)(GLint s, GLint t, GLint r, GLint q);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4SPROC)(GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4XOESPROC)(GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+typedef void (GLAPIENTRY *PFNGLTEXCOORD4XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDP1UIPROC)(GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDP1UIVPROC)(GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDP2UIPROC)(GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDP2UIVPROC)(GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDP3UIPROC)(GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDP3UIVPROC)(GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDP4UIPROC)(GLenum type, GLuint coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDP4UIVPROC)(GLenum type, const GLuint * coords);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+typedef void (GLAPIENTRY *PFNGLTEXCOORDPOINTERVINTELPROC)(GLint size, GLenum type, const void ** pointer);
+typedef void (GLAPIENTRY *PFNGLTEXENVFPROC)(GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLTEXENVFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLTEXENVIPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLTEXENVIVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXENVXPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLTEXENVXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLTEXENVXVPROC)(GLenum target, GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLTEXENVXVOESPROC)(GLenum target, GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLTEXFILTERFUNCSGISPROC)(GLenum target, GLenum filter, GLsizei n, const GLfloat * weights);
+typedef void (GLAPIENTRY *PFNGLTEXGENDPROC)(GLenum coord, GLenum pname, GLdouble param);
+typedef void (GLAPIENTRY *PFNGLTEXGENDVPROC)(GLenum coord, GLenum pname, const GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLTEXGENFPROC)(GLenum coord, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLTEXGENFOESPROC)(GLenum coord, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLTEXGENFVPROC)(GLenum coord, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLTEXGENFVOESPROC)(GLenum coord, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLTEXGENIPROC)(GLenum coord, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLTEXGENIOESPROC)(GLenum coord, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLTEXGENIVPROC)(GLenum coord, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXGENIVOESPROC)(GLenum coord, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXGENXOESPROC)(GLenum coord, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLTEXGENXVOESPROC)(GLenum coord, GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE1DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE2DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE3DPROC)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE3DEXTPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE3DOESPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXIMAGE4DSGISPROC)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXPAGECOMMITMENTARBPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
+typedef void (GLAPIENTRY *PFNGLTEXPAGECOMMITMENTEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERIIVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERIIVEXTPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERIIVOESPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERIUIVPROC)(GLenum target, GLenum pname, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERIUIVEXTPROC)(GLenum target, GLenum pname, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERIUIVOESPROC)(GLenum target, GLenum pname, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERFPROC)(GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERFVPROC)(GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERIPROC)(GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERIVPROC)(GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERXPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERXOESPROC)(GLenum target, GLenum pname, GLfixed param);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERXVPROC)(GLenum target, GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLTEXPARAMETERXVOESPROC)(GLenum target, GLenum pname, const GLfixed * params);
+typedef void (GLAPIENTRY *PFNGLTEXRENDERBUFFERNVPROC)(GLenum target, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE1DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE1DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE2DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE2DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE2DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE3DPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE3DEXTPROC)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE3DMULTISAMPLEPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGE3DMULTISAMPLEOESPROC)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGEMEM1DEXTPROC)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGEMEM2DEXTPROC)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGEMEM3DEXTPROC)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC)(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXSTORAGESPARSEAMDPROC)(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLTEXSUBIMAGE1DPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXSUBIMAGE1DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXSUBIMAGE2DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXSUBIMAGE2DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXSUBIMAGE3DPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXSUBIMAGE3DEXTPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXSUBIMAGE3DOESPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXSUBIMAGE4DSGISPROC)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTUREATTACHMEMORYNVPROC)(GLuint texture, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXTUREBARRIERPROC)(void);
+typedef void (GLAPIENTRY *PFNGLTEXTUREBARRIERNVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLTEXTUREBUFFERPROC)(GLuint texture, GLenum internalformat, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLTEXTUREBUFFEREXTPROC)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLTEXTUREBUFFERRANGEPROC)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLTEXTUREBUFFERRANGEEXTPROC)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLTEXTURECOLORMASKSGISPROC)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+typedef void (GLAPIENTRY *PFNGLTEXTUREFOVEATIONPARAMETERSQCOMPROC)(GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
+typedef void (GLAPIENTRY *PFNGLTEXTUREIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTUREIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void (GLAPIENTRY *PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+typedef void (GLAPIENTRY *PFNGLTEXTUREIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void (GLAPIENTRY *PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+typedef void (GLAPIENTRY *PFNGLTEXTURELIGHTEXTPROC)(GLenum pname);
+typedef void (GLAPIENTRY *PFNGLTEXTUREMATERIALEXTPROC)(GLenum face, GLenum mode);
+typedef void (GLAPIENTRY *PFNGLTEXTURENORMALEXTPROC)(GLenum mode);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPAGECOMMITMENTEXTPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERIIVPROC)(GLuint texture, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERIIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERIUIVPROC)(GLuint texture, GLenum pname, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERIUIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLuint * params);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERFPROC)(GLuint texture, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERFEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERFVPROC)(GLuint texture, GLenum pname, const GLfloat * param);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERFVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERIPROC)(GLuint texture, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERIEXTPROC)(GLuint texture, GLenum target, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERIVPROC)(GLuint texture, GLenum pname, const GLint * param);
+typedef void (GLAPIENTRY *PFNGLTEXTUREPARAMETERIVEXTPROC)(GLuint texture, GLenum target, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLTEXTURERANGEAPPLEPROC)(GLenum target, GLsizei length, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLTEXTURERENDERBUFFEREXTPROC)(GLuint texture, GLenum target, GLuint renderbuffer);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE1DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE1DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE2DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE2DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE2DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE2DMULTISAMPLEEXTPROC)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE3DPROC)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE3DEXTPROC)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE3DMULTISAMPLEPROC)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGE3DMULTISAMPLEEXTPROC)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGEMEM1DEXTPROC)(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGEMEM2DEXTPROC)(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC)(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGEMEM3DEXTPROC)(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC)(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+typedef void (GLAPIENTRY *PFNGLTEXTURESTORAGESPARSEAMDPROC)(GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
+typedef void (GLAPIENTRY *PFNGLTEXTURESUBIMAGE1DPROC)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTURESUBIMAGE1DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTURESUBIMAGE2DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTURESUBIMAGE2DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTURESUBIMAGE3DPROC)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTURESUBIMAGE3DEXTPROC)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+typedef void (GLAPIENTRY *PFNGLTEXTUREVIEWPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+typedef void (GLAPIENTRY *PFNGLTEXTUREVIEWEXTPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+typedef void (GLAPIENTRY *PFNGLTEXTUREVIEWOESPROC)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+typedef void (GLAPIENTRY *PFNGLTRACKMATRIXNVPROC)(GLenum target, GLuint address, GLenum matrix, GLenum transform);
+typedef void (GLAPIENTRY *PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC)(GLsizei count, const GLint * attribs, GLenum bufferMode);
+typedef void (GLAPIENTRY *PFNGLTRANSFORMFEEDBACKBUFFERBASEPROC)(GLuint xfb, GLuint index, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLTRANSFORMFEEDBACKBUFFERRANGEPROC)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC)(GLsizei count, const GLint * attribs, GLsizei nbuffers, const GLint * bufstreams, GLenum bufferMode);
+typedef void (GLAPIENTRY *PFNGLTRANSFORMFEEDBACKVARYINGSPROC)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
+typedef void (GLAPIENTRY *PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
+typedef void (GLAPIENTRY *PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC)(GLuint program, GLsizei count, const GLint * locations, GLenum bufferMode);
+typedef void (GLAPIENTRY *PFNGLTRANSFORMPATHNVPROC)(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat * transformValues);
+typedef void (GLAPIENTRY *PFNGLTRANSLATEDPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLTRANSLATEFPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLTRANSLATEXPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAPIENTRY *PFNGLTRANSLATEXOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1DPROC)(GLint location, GLdouble x);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1DVPROC)(GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1FPROC)(GLint location, GLfloat v0);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1FARBPROC)(GLint location, GLfloat v0);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1FVARBPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1IPROC)(GLint location, GLint v0);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1I64ARBPROC)(GLint location, GLint64 x);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1I64NVPROC)(GLint location, GLint64EXT x);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1IARBPROC)(GLint location, GLint v0);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1IVARBPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1UIPROC)(GLint location, GLuint v0);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1UI64ARBPROC)(GLint location, GLuint64 x);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1UI64NVPROC)(GLint location, GLuint64EXT x);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1UIEXTPROC)(GLint location, GLuint v0);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1UIVPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM1UIVEXTPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2DPROC)(GLint location, GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2DVPROC)(GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2FPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2FARBPROC)(GLint location, GLfloat v0, GLfloat v1);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2FVARBPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2IPROC)(GLint location, GLint v0, GLint v1);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2I64ARBPROC)(GLint location, GLint64 x, GLint64 y);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2IARBPROC)(GLint location, GLint v0, GLint v1);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2IVARBPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2UIPROC)(GLint location, GLuint v0, GLuint v1);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2UIEXTPROC)(GLint location, GLuint v0, GLuint v1);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2UIVPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM2UIVEXTPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3DVPROC)(GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3FVARBPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3IPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3I64ARBPROC)(GLint location, GLint64 x, GLint64 y, GLint64 z);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3IVARBPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3UIVPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM3UIVEXTPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4DPROC)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4DVPROC)(GLint location, GLsizei count, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4FPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4FARBPROC)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4FVPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4FVARBPROC)(GLint location, GLsizei count, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4IPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4I64ARBPROC)(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4I64NVPROC)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4I64VARBPROC)(GLint location, GLsizei count, const GLint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4I64VNVPROC)(GLint location, GLsizei count, const GLint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4IARBPROC)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4IVPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4IVARBPROC)(GLint location, GLsizei count, const GLint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4UIPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4UI64ARBPROC)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4UI64NVPROC)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4UI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4UI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4UIEXTPROC)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4UIVPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORM4UIVEXTPROC)(GLint location, GLsizei count, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMBLOCKBINDINGPROC)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+typedef void (GLAPIENTRY *PFNGLUNIFORMBUFFEREXTPROC)(GLuint program, GLint location, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLUNIFORMHANDLEUI64ARBPROC)(GLint location, GLuint64 value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMHANDLEUI64IMGPROC)(GLint location, GLuint64 value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMHANDLEUI64NVPROC)(GLint location, GLuint64 value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMHANDLEUI64VARBPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMHANDLEUI64VIMGPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMHANDLEUI64VNVPROC)(GLint location, GLsizei count, const GLuint64 * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2X3FVNVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX2X4FVNVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3X2FVNVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3X4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3X4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX3X4FVNVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4FVARBPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4X2DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4X2FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4X2FVNVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4X3DVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4X3FVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMMATRIX4X3FVNVPROC)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMSUBROUTINESUIVPROC)(GLenum shadertype, GLsizei count, const GLuint * indices);
+typedef void (GLAPIENTRY *PFNGLUNIFORMUI64NVPROC)(GLint location, GLuint64EXT value);
+typedef void (GLAPIENTRY *PFNGLUNIFORMUI64VNVPROC)(GLint location, GLsizei count, const GLuint64EXT * value);
+typedef void (GLAPIENTRY *PFNGLUNLOCKARRAYSEXTPROC)(void);
+typedef GLboolean (GLAPIENTRY *PFNGLUNMAPBUFFERPROC)(GLenum target);
+typedef GLboolean (GLAPIENTRY *PFNGLUNMAPBUFFERARBPROC)(GLenum target);
+typedef GLboolean (GLAPIENTRY *PFNGLUNMAPBUFFEROESPROC)(GLenum target);
+typedef GLboolean (GLAPIENTRY *PFNGLUNMAPNAMEDBUFFERPROC)(GLuint buffer);
+typedef GLboolean (GLAPIENTRY *PFNGLUNMAPNAMEDBUFFEREXTPROC)(GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLUNMAPOBJECTBUFFERATIPROC)(GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLUNMAPTEXTURE2DINTELPROC)(GLuint texture, GLint level);
+typedef void (GLAPIENTRY *PFNGLUPDATEOBJECTBUFFERATIPROC)(GLuint buffer, GLuint offset, GLsizei size, const void * pointer, GLenum preserve);
+typedef void (GLAPIENTRY *PFNGLUPLOADGPUMASKNVXPROC)(GLbitfield mask);
+typedef void (GLAPIENTRY *PFNGLUSEPROGRAMPROC)(GLuint program);
+typedef void (GLAPIENTRY *PFNGLUSEPROGRAMOBJECTARBPROC)(GLhandleARB programObj);
+typedef void (GLAPIENTRY *PFNGLUSEPROGRAMSTAGESPROC)(GLuint pipeline, GLbitfield stages, GLuint program);
+typedef void (GLAPIENTRY *PFNGLUSEPROGRAMSTAGESEXTPROC)(GLuint pipeline, GLbitfield stages, GLuint program);
+typedef void (GLAPIENTRY *PFNGLUSESHADERPROGRAMEXTPROC)(GLenum type, GLuint program);
+typedef void (GLAPIENTRY *PFNGLVDPAUFININVPROC)(void);
+typedef void (GLAPIENTRY *PFNGLVDPAUGETSURFACEIVNVPROC)(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values);
+typedef void (GLAPIENTRY *PFNGLVDPAUINITNVPROC)(const void * vdpDevice, const void * getProcAddress);
+typedef GLboolean (GLAPIENTRY *PFNGLVDPAUISSURFACENVPROC)(GLvdpauSurfaceNV surface);
+typedef void (GLAPIENTRY *PFNGLVDPAUMAPSURFACESNVPROC)(GLsizei numSurfaces, const GLvdpauSurfaceNV * surfaces);
+typedef GLvdpauSurfaceNV (GLAPIENTRY *PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC)(const void * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames);
+typedef GLvdpauSurfaceNV (GLAPIENTRY *PFNGLVDPAUREGISTERVIDEOSURFACENVPROC)(const void * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames);
+typedef GLvdpauSurfaceNV (GLAPIENTRY *PFNGLVDPAUREGISTERVIDEOSURFACEWITHPICTURESTRUCTURENVPROC)(const void * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames, GLboolean isFrameStructure);
+typedef void (GLAPIENTRY *PFNGLVDPAUSURFACEACCESSNVPROC)(GLvdpauSurfaceNV surface, GLenum access);
+typedef void (GLAPIENTRY *PFNGLVDPAUUNMAPSURFACESNVPROC)(GLsizei numSurface, const GLvdpauSurfaceNV * surfaces);
+typedef void (GLAPIENTRY *PFNGLVDPAUUNREGISTERSURFACENVPROC)(GLvdpauSurfaceNV surface);
+typedef void (GLAPIENTRY *PFNGLVALIDATEPROGRAMPROC)(GLuint program);
+typedef void (GLAPIENTRY *PFNGLVALIDATEPROGRAMARBPROC)(GLhandleARB programObj);
+typedef void (GLAPIENTRY *PFNGLVALIDATEPROGRAMPIPELINEPROC)(GLuint pipeline);
+typedef void (GLAPIENTRY *PFNGLVALIDATEPROGRAMPIPELINEEXTPROC)(GLuint pipeline);
+typedef void (GLAPIENTRY *PFNGLVARIANTARRAYOBJECTATIPROC)(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (GLAPIENTRY *PFNGLVARIANTPOINTEREXTPROC)(GLuint id, GLenum type, GLuint stride, const void * addr);
+typedef void (GLAPIENTRY *PFNGLVARIANTBVEXTPROC)(GLuint id, const GLbyte * addr);
+typedef void (GLAPIENTRY *PFNGLVARIANTDVEXTPROC)(GLuint id, const GLdouble * addr);
+typedef void (GLAPIENTRY *PFNGLVARIANTFVEXTPROC)(GLuint id, const GLfloat * addr);
+typedef void (GLAPIENTRY *PFNGLVARIANTIVEXTPROC)(GLuint id, const GLint * addr);
+typedef void (GLAPIENTRY *PFNGLVARIANTSVEXTPROC)(GLuint id, const GLshort * addr);
+typedef void (GLAPIENTRY *PFNGLVARIANTUBVEXTPROC)(GLuint id, const GLubyte * addr);
+typedef void (GLAPIENTRY *PFNGLVARIANTUIVEXTPROC)(GLuint id, const GLuint * addr);
+typedef void (GLAPIENTRY *PFNGLVARIANTUSVEXTPROC)(GLuint id, const GLushort * addr);
+typedef void (GLAPIENTRY *PFNGLVERTEX2BOESPROC)(GLbyte x, GLbyte y);
+typedef void (GLAPIENTRY *PFNGLVERTEX2BVOESPROC)(const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEX2DPROC)(GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLVERTEX2DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX2FPROC)(GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLVERTEX2FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX2HNVPROC)(GLhalfNV x, GLhalfNV y);
+typedef void (GLAPIENTRY *PFNGLVERTEX2HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX2IPROC)(GLint x, GLint y);
+typedef void (GLAPIENTRY *PFNGLVERTEX2IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX2SPROC)(GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLVERTEX2SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX2XOESPROC)(GLfixed x);
+typedef void (GLAPIENTRY *PFNGLVERTEX2XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEX3BOESPROC)(GLbyte x, GLbyte y, GLbyte z);
+typedef void (GLAPIENTRY *PFNGLVERTEX3BVOESPROC)(const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEX3DPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLVERTEX3DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX3FPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLVERTEX3FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX3HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (GLAPIENTRY *PFNGLVERTEX3HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX3IPROC)(GLint x, GLint y, GLint z);
+typedef void (GLAPIENTRY *PFNGLVERTEX3IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX3SPROC)(GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLVERTEX3SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX3XOESPROC)(GLfixed x, GLfixed y);
+typedef void (GLAPIENTRY *PFNGLVERTEX3XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEX4BOESPROC)(GLbyte x, GLbyte y, GLbyte z, GLbyte w);
+typedef void (GLAPIENTRY *PFNGLVERTEX4BVOESPROC)(const GLbyte * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEX4DPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLVERTEX4DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX4FPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLVERTEX4FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX4HNVPROC)(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (GLAPIENTRY *PFNGLVERTEX4HVNVPROC)(const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX4IPROC)(GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLVERTEX4IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX4SPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAPIENTRY *PFNGLVERTEX4SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEX4XOESPROC)(GLfixed x, GLfixed y, GLfixed z);
+typedef void (GLAPIENTRY *PFNGLVERTEX4XVOESPROC)(const GLfixed * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYATTRIBBINDINGPROC)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYATTRIBFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYATTRIBIFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYATTRIBLFORMATPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYBINDVERTEXBUFFEREXTPROC)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYBINDINGDIVISORPROC)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYEDGEFLAGOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYELEMENTBUFFERPROC)(GLuint vaobj, GLuint buffer);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYFOGCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYINDEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYMULTITEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYNORMALOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYPARAMETERIAPPLEPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYRANGEAPPLEPROC)(GLsizei length, void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYRANGENVPROC)(GLsizei length, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYSECONDARYCOLOROFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYTEXCOORDOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXATTRIBBINDINGEXTPROC)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXATTRIBDIVISOREXTPROC)(GLuint vaobj, GLuint index, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXATTRIBFORMATEXTPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXATTRIBIFORMATEXTPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXATTRIBIOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXATTRIBLFORMATEXTPROC)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXATTRIBOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXBINDINGDIVISOREXTPROC)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXBUFFERPROC)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXBUFFERSPROC)(GLuint vaobj, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
+typedef void (GLAPIENTRY *PFNGLVERTEXARRAYVERTEXOFFSETEXTPROC)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1DPROC)(GLuint index, GLdouble x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1DARBPROC)(GLuint index, GLdouble x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1DNVPROC)(GLuint index, GLdouble x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1DVARBPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1DVNVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1FPROC)(GLuint index, GLfloat x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1FARBPROC)(GLuint index, GLfloat x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1FNVPROC)(GLuint index, GLfloat x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1FVARBPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1FVNVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1HNVPROC)(GLuint index, GLhalfNV x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1HVNVPROC)(GLuint index, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1SPROC)(GLuint index, GLshort x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1SARBPROC)(GLuint index, GLshort x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1SNVPROC)(GLuint index, GLshort x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1SVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB1SVNVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2DARBPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2DNVPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2DVARBPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2DVNVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2FPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2FARBPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2FNVPROC)(GLuint index, GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2FVARBPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2FVNVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2HVNVPROC)(GLuint index, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2SPROC)(GLuint index, GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2SARBPROC)(GLuint index, GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2SNVPROC)(GLuint index, GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2SVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB2SVNVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3DNVPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3DVARBPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3DVNVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3FVARBPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3FVNVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3HVNVPROC)(GLuint index, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3SPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3SVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB3SVNVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NBVPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NBVARBPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NIVPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NIVARBPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NSVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NSVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NUBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NUBARBPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NUBVPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NUBVARBPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NUIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NUIVARBPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NUSVPROC)(GLuint index, const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4NUSVARBPROC)(GLuint index, const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4BVPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4BVARBPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4DARBPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4DNVPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4DVARBPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4DVNVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4FPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4FARBPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4FNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4FVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4FVARBPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4FVNVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4HNVPROC)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4HVNVPROC)(GLuint index, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4IVARBPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4SPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4SARBPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4SNVPROC)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4SVARBPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4SVNVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4UBNVPROC)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4UBVPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4UBVARBPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4UBVNVPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4UIVARBPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4USVPROC)(GLuint index, const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIB4USVARBPROC)(GLuint index, const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBARRAYOBJECTATIPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBBINDINGPROC)(GLuint attribindex, GLuint bindingindex);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBDIVISORPROC)(GLuint index, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBDIVISORANGLEPROC)(GLuint index, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBDIVISORARBPROC)(GLuint index, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBDIVISOREXTPROC)(GLuint index, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBDIVISORNVPROC)(GLuint index, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI1IPROC)(GLuint index, GLint x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI1IEXTPROC)(GLuint index, GLint x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI1IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI1IVEXTPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI1UIPROC)(GLuint index, GLuint x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI1UIEXTPROC)(GLuint index, GLuint x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI1UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI1UIVEXTPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI2IPROC)(GLuint index, GLint x, GLint y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI2IEXTPROC)(GLuint index, GLint x, GLint y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI2IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI2IVEXTPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI2UIPROC)(GLuint index, GLuint x, GLuint y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI2UIEXTPROC)(GLuint index, GLuint x, GLuint y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI2UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI2UIVEXTPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI3IPROC)(GLuint index, GLint x, GLint y, GLint z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI3IEXTPROC)(GLuint index, GLint x, GLint y, GLint z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI3IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI3IVEXTPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI3UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI3UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI3UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI3UIVEXTPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4BVPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4BVEXTPROC)(GLuint index, const GLbyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4IPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4IEXTPROC)(GLuint index, GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4IVPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4IVEXTPROC)(GLuint index, const GLint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4SVPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4SVEXTPROC)(GLuint index, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4UBVPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4UBVEXTPROC)(GLuint index, const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4UIPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4UIEXTPROC)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4UIVPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4UIVEXTPROC)(GLuint index, const GLuint * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4USVPROC)(GLuint index, const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBI4USVEXTPROC)(GLuint index, const GLushort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBIFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBIFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBIPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBIPOINTEREXTPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1DPROC)(GLuint index, GLdouble x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1DEXTPROC)(GLuint index, GLdouble x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1DVEXTPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1I64NVPROC)(GLuint index, GLint64EXT x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1I64VNVPROC)(GLuint index, const GLint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1UI64ARBPROC)(GLuint index, GLuint64EXT x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1UI64NVPROC)(GLuint index, GLuint64EXT x);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1UI64VARBPROC)(GLuint index, const GLuint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL1UI64VNVPROC)(GLuint index, const GLuint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL2DPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL2DEXTPROC)(GLuint index, GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL2DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL2DVEXTPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL2I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL2I64VNVPROC)(GLuint index, const GLint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL2UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL2UI64VNVPROC)(GLuint index, const GLuint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL3DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL3DEXTPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL3DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL3DVEXTPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL3I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL3I64VNVPROC)(GLuint index, const GLint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL3UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL3UI64VNVPROC)(GLuint index, const GLuint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL4DPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL4DEXTPROC)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL4DVPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL4DVEXTPROC)(GLuint index, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL4I64NVPROC)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL4I64VNVPROC)(GLuint index, const GLint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL4UI64NVPROC)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBL4UI64VNVPROC)(GLuint index, const GLuint64EXT * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBLFORMATPROC)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBLFORMATNVPROC)(GLuint index, GLint size, GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBLPOINTERPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBLPOINTEREXTPROC)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBP1UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBP1UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBP2UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBP2UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBP3UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBP3UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBP4UIPROC)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBP4UIVPROC)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBPARAMETERIAMDPROC)(GLuint index, GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBPOINTERPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBPOINTERARBPROC)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBPOINTERNVPROC)(GLuint index, GLint fsize, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS1DVNVPROC)(GLuint index, GLsizei count, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS1FVNVPROC)(GLuint index, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS1HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS1SVNVPROC)(GLuint index, GLsizei count, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS2DVNVPROC)(GLuint index, GLsizei count, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS2FVNVPROC)(GLuint index, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS2HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS2SVNVPROC)(GLuint index, GLsizei count, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS3DVNVPROC)(GLuint index, GLsizei count, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS3FVNVPROC)(GLuint index, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS3HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS3SVNVPROC)(GLuint index, GLsizei count, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS4DVNVPROC)(GLuint index, GLsizei count, const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS4FVNVPROC)(GLuint index, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS4HVNVPROC)(GLuint index, GLsizei n, const GLhalfNV * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS4SVNVPROC)(GLuint index, GLsizei count, const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXATTRIBS4UBVNVPROC)(GLuint index, GLsizei count, const GLubyte * v);
+typedef void (GLAPIENTRY *PFNGLVERTEXBINDINGDIVISORPROC)(GLuint bindingindex, GLuint divisor);
+typedef void (GLAPIENTRY *PFNGLVERTEXBLENDARBPROC)(GLint count);
+typedef void (GLAPIENTRY *PFNGLVERTEXBLENDENVFATIPROC)(GLenum pname, GLfloat param);
+typedef void (GLAPIENTRY *PFNGLVERTEXBLENDENVIATIPROC)(GLenum pname, GLint param);
+typedef void (GLAPIENTRY *PFNGLVERTEXFORMATNVPROC)(GLint size, GLenum type, GLsizei stride);
+typedef void (GLAPIENTRY *PFNGLVERTEXP2UIPROC)(GLenum type, GLuint value);
+typedef void (GLAPIENTRY *PFNGLVERTEXP2UIVPROC)(GLenum type, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLVERTEXP3UIPROC)(GLenum type, GLuint value);
+typedef void (GLAPIENTRY *PFNGLVERTEXP3UIVPROC)(GLenum type, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLVERTEXP4UIPROC)(GLenum type, GLuint value);
+typedef void (GLAPIENTRY *PFNGLVERTEXP4UIVPROC)(GLenum type, const GLuint * value);
+typedef void (GLAPIENTRY *PFNGLVERTEXPOINTERPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXPOINTERLISTIBMPROC)(GLint size, GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+typedef void (GLAPIENTRY *PFNGLVERTEXPOINTERVINTELPROC)(GLint size, GLenum type, const void ** pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM1DATIPROC)(GLenum stream, GLdouble x);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM1DVATIPROC)(GLenum stream, const GLdouble * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM1FATIPROC)(GLenum stream, GLfloat x);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM1FVATIPROC)(GLenum stream, const GLfloat * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM1IATIPROC)(GLenum stream, GLint x);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM1IVATIPROC)(GLenum stream, const GLint * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM1SATIPROC)(GLenum stream, GLshort x);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM1SVATIPROC)(GLenum stream, const GLshort * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM2DATIPROC)(GLenum stream, GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM2DVATIPROC)(GLenum stream, const GLdouble * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM2FATIPROC)(GLenum stream, GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM2FVATIPROC)(GLenum stream, const GLfloat * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM2IATIPROC)(GLenum stream, GLint x, GLint y);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM2IVATIPROC)(GLenum stream, const GLint * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM2SATIPROC)(GLenum stream, GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM2SVATIPROC)(GLenum stream, const GLshort * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM3DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM3DVATIPROC)(GLenum stream, const GLdouble * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM3FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM3FVATIPROC)(GLenum stream, const GLfloat * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM3IATIPROC)(GLenum stream, GLint x, GLint y, GLint z);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM3IVATIPROC)(GLenum stream, const GLint * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM3SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM3SVATIPROC)(GLenum stream, const GLshort * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM4DATIPROC)(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM4DVATIPROC)(GLenum stream, const GLdouble * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM4FATIPROC)(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM4FVATIPROC)(GLenum stream, const GLfloat * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM4IATIPROC)(GLenum stream, GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM4IVATIPROC)(GLenum stream, const GLint * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM4SATIPROC)(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAPIENTRY *PFNGLVERTEXSTREAM4SVATIPROC)(GLenum stream, const GLshort * coords);
+typedef void (GLAPIENTRY *PFNGLVERTEXWEIGHTPOINTEREXTPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLVERTEXWEIGHTFEXTPROC)(GLfloat weight);
+typedef void (GLAPIENTRY *PFNGLVERTEXWEIGHTFVEXTPROC)(const GLfloat * weight);
+typedef void (GLAPIENTRY *PFNGLVERTEXWEIGHTHNVPROC)(GLhalfNV weight);
+typedef void (GLAPIENTRY *PFNGLVERTEXWEIGHTHVNVPROC)(const GLhalfNV * weight);
+typedef GLenum (GLAPIENTRY *PFNGLVIDEOCAPTURENVPROC)(GLuint video_capture_slot, GLuint * sequence_num, GLuint64EXT * capture_time);
+typedef void (GLAPIENTRY *PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble * params);
+typedef void (GLAPIENTRY *PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat * params);
+typedef void (GLAPIENTRY *PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint * params);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTPROC)(GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTARRAYVPROC)(GLuint first, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTARRAYVNVPROC)(GLuint first, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTARRAYVOESPROC)(GLuint first, GLsizei count, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTINDEXEDFPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTINDEXEDFNVPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTINDEXEDFOESPROC)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTINDEXEDFVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTINDEXEDFVNVPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTINDEXEDFVOESPROC)(GLuint index, const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTPOSITIONWSCALENVPROC)(GLuint index, GLfloat xcoeff, GLfloat ycoeff);
+typedef void (GLAPIENTRY *PFNGLVIEWPORTSWIZZLENVPROC)(GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
+typedef void (GLAPIENTRY *PFNGLWAITSEMAPHOREEXTPROC)(GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * srcLayouts);
+typedef void (GLAPIENTRY *PFNGLWAITSEMAPHOREUI64NVXPROC)(GLuint waitGpu, GLsizei fenceObjectCount, const GLuint * semaphoreArray, const GLuint64 * fenceValueArray);
+typedef void (GLAPIENTRY *PFNGLWAITSYNCPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (GLAPIENTRY *PFNGLWAITSYNCAPPLEPROC)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+typedef void (GLAPIENTRY *PFNGLWAITVKSEMAPHORENVPROC)(GLuint64 vkSemaphore);
+typedef void (GLAPIENTRY *PFNGLWEIGHTPATHSNVPROC)(GLuint resultPath, GLsizei numPaths, const GLuint * paths, const GLfloat * weights);
+typedef void (GLAPIENTRY *PFNGLWEIGHTPOINTERARBPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLWEIGHTPOINTEROESPROC)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+typedef void (GLAPIENTRY *PFNGLWEIGHTBVARBPROC)(GLint size, const GLbyte * weights);
+typedef void (GLAPIENTRY *PFNGLWEIGHTDVARBPROC)(GLint size, const GLdouble * weights);
+typedef void (GLAPIENTRY *PFNGLWEIGHTFVARBPROC)(GLint size, const GLfloat * weights);
+typedef void (GLAPIENTRY *PFNGLWEIGHTIVARBPROC)(GLint size, const GLint * weights);
+typedef void (GLAPIENTRY *PFNGLWEIGHTSVARBPROC)(GLint size, const GLshort * weights);
+typedef void (GLAPIENTRY *PFNGLWEIGHTUBVARBPROC)(GLint size, const GLubyte * weights);
+typedef void (GLAPIENTRY *PFNGLWEIGHTUIVARBPROC)(GLint size, const GLuint * weights);
+typedef void (GLAPIENTRY *PFNGLWEIGHTUSVARBPROC)(GLint size, const GLushort * weights);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2DPROC)(GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2DARBPROC)(GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2DMESAPROC)(GLdouble x, GLdouble y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2DVARBPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2DVMESAPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2FPROC)(GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2FARBPROC)(GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2FMESAPROC)(GLfloat x, GLfloat y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2FVARBPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2FVMESAPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2IPROC)(GLint x, GLint y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2IARBPROC)(GLint x, GLint y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2IMESAPROC)(GLint x, GLint y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2IVARBPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2IVMESAPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2SPROC)(GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2SARBPROC)(GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2SMESAPROC)(GLshort x, GLshort y);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2SVARBPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS2SVMESAPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3DPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3DARBPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3DMESAPROC)(GLdouble x, GLdouble y, GLdouble z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3DVPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3DVARBPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3DVMESAPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3FPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3FARBPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3FMESAPROC)(GLfloat x, GLfloat y, GLfloat z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3FVPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3FVARBPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3FVMESAPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3IPROC)(GLint x, GLint y, GLint z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3IARBPROC)(GLint x, GLint y, GLint z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3IMESAPROC)(GLint x, GLint y, GLint z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3IVPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3IVARBPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3IVMESAPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3SPROC)(GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3SARBPROC)(GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3SMESAPROC)(GLshort x, GLshort y, GLshort z);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3SVPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3SVARBPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS3SVMESAPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS4DMESAPROC)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS4DVMESAPROC)(const GLdouble * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS4FMESAPROC)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS4FVMESAPROC)(const GLfloat * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS4IMESAPROC)(GLint x, GLint y, GLint z, GLint w);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS4IVMESAPROC)(const GLint * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS4SMESAPROC)(GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (GLAPIENTRY *PFNGLWINDOWPOS4SVMESAPROC)(const GLshort * v);
+typedef void (GLAPIENTRY *PFNGLWINDOWRECTANGLESEXTPROC)(GLenum mode, GLsizei count, const GLint * box);
+typedef void (GLAPIENTRY *PFNGLWRITEMASKEXTPROC)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAccum)(GLenum op, GLfloat value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAccumxOES)(GLenum op, GLfixed value);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glAcquireKeyedMutexWin32EXT)(GLuint memory, GLuint64 key, GLuint timeout);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glActiveProgramEXT)(GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glActiveShaderProgram)(GLuint pipeline, GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glActiveShaderProgramEXT)(GLuint pipeline, GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glActiveStencilFaceEXT)(GLenum face);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glActiveTexture)(GLenum texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glActiveTextureARB)(GLenum texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glActiveVaryingNV)(GLuint program, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAlphaFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAlphaFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAlphaFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAlphaFunc)(GLenum func, GLfloat ref);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAlphaFuncQCOM)(GLenum func, GLclampf ref);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAlphaFuncx)(GLenum func, GLfixed ref);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAlphaFuncxOES)(GLenum func, GLfixed ref);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAlphaToCoverageDitherControlNV)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glApplyFramebufferAttachmentCMAAINTEL)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glApplyTextureEXT)(GLenum mode);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glAreProgramsResidentNV)(GLsizei n, const GLuint * programs, GLboolean * residences);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glAreTexturesResident)(GLsizei n, const GLuint * textures, GLboolean * residences);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glAreTexturesResidentEXT)(GLsizei n, const GLuint * textures, GLboolean * residences);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glArrayElement)(GLint i);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glArrayElementEXT)(GLint i);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glArrayObjectATI)(GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glAsyncCopyBufferSubDataNVX)(GLsizei waitSemaphoreCount, const GLuint * waitSemaphoreArray, const GLuint64 * fenceValueArray, GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size, GLsizei signalSemaphoreCount, const GLuint * signalSemaphoreArray, const GLuint64 * signalValueArray);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glAsyncCopyImageSubDataNVX)(GLsizei waitSemaphoreCount, const GLuint * waitSemaphoreArray, const GLuint64 * waitValueArray, GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth, GLsizei signalSemaphoreCount, const GLuint * signalSemaphoreArray, const GLuint64 * signalValueArray);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAsyncMarkerSGIX)(GLuint marker);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAttachObjectARB)(GLhandleARB containerObj, GLhandleARB obj);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glAttachShader)(GLuint program, GLuint shader);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBegin)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginConditionalRender)(GLuint id, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginConditionalRenderNV)(GLuint id, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginConditionalRenderNVX)(GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginFragmentShaderATI)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginOcclusionQueryNV)(GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginPerfMonitorAMD)(GLuint monitor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginPerfQueryINTEL)(GLuint queryHandle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginQuery)(GLenum target, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginQueryARB)(GLenum target, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginQueryEXT)(GLenum target, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginQueryIndexed)(GLenum target, GLuint index, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginTransformFeedback)(GLenum primitiveMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginTransformFeedbackEXT)(GLenum primitiveMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginTransformFeedbackNV)(GLenum primitiveMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginVertexShaderEXT)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBeginVideoCaptureNV)(GLuint video_capture_slot);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindAttribLocation)(GLuint program, GLuint index, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindAttribLocationARB)(GLhandleARB programObj, GLuint index, const GLcharARB * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBuffer)(GLenum target, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferARB)(GLenum target, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferBase)(GLenum target, GLuint index, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferBaseEXT)(GLenum target, GLuint index, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferBaseNV)(GLenum target, GLuint index, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferOffsetEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferOffsetNV)(GLenum target, GLuint index, GLuint buffer, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferRange)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferRangeEXT)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBufferRangeNV)(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBuffersBase)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindBuffersRange)(GLenum target, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizeiptr * sizes);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindFragDataLocation)(GLuint program, GLuint color, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindFragDataLocationEXT)(GLuint program, GLuint color, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindFragDataLocationIndexed)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindFragDataLocationIndexedEXT)(GLuint program, GLuint colorNumber, GLuint index, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindFragmentShaderATI)(GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindFramebuffer)(GLenum target, GLuint framebuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindFramebufferEXT)(GLenum target, GLuint framebuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindFramebufferOES)(GLenum target, GLuint framebuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindImageTexture)(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindImageTextureEXT)(GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindImageTextures)(GLuint first, GLsizei count, const GLuint * textures);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glBindLightParameterEXT)(GLenum light, GLenum value);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glBindMaterialParameterEXT)(GLenum face, GLenum value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindMultiTextureEXT)(GLenum texunit, GLenum target, GLuint texture);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glBindParameterEXT)(GLenum value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindProgramARB)(GLenum target, GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindProgramNV)(GLenum target, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindProgramPipeline)(GLuint pipeline);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindProgramPipelineEXT)(GLuint pipeline);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindRenderbuffer)(GLenum target, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindRenderbufferEXT)(GLenum target, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindRenderbufferOES)(GLenum target, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindSampler)(GLuint unit, GLuint sampler);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindSamplers)(GLuint first, GLsizei count, const GLuint * samplers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindShadingRateImageNV)(GLuint texture);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glBindTexGenParameterEXT)(GLenum unit, GLenum coord, GLenum value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindTexture)(GLenum target, GLuint texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindTextureEXT)(GLenum target, GLuint texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindTextureUnit)(GLuint unit, GLuint texture);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glBindTextureUnitParameterEXT)(GLenum unit, GLenum value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindTextures)(GLuint first, GLsizei count, const GLuint * textures);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindTransformFeedback)(GLenum target, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindTransformFeedbackNV)(GLenum target, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindVertexArray)(GLuint array);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindVertexArrayAPPLE)(GLuint array);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindVertexArrayOES)(GLuint array);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindVertexBuffer)(GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindVertexBuffers)(GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindVertexShaderEXT)(GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindVideoCaptureStreamBufferNV)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBindVideoCaptureStreamTextureNV)(GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3bEXT)(GLbyte bx, GLbyte by, GLbyte bz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3bvEXT)(const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3dEXT)(GLdouble bx, GLdouble by, GLdouble bz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3dvEXT)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3fEXT)(GLfloat bx, GLfloat by, GLfloat bz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3fvEXT)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3iEXT)(GLint bx, GLint by, GLint bz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3ivEXT)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3sEXT)(GLshort bx, GLshort by, GLshort bz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormal3svEXT)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBinormalPointerEXT)(GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBitmapxOES)(GLsizei width, GLsizei height, GLfixed xorig, GLfixed yorig, GLfixed xmove, GLfixed ymove, const GLubyte * bitmap);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendBarrier)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendBarrierKHR)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendBarrierNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendColorEXT)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendColorxOES)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquation)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationEXT)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationIndexedAMD)(GLuint buf, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationOES)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationSeparateEXT)(GLenum modeRGB, GLenum modeAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationSeparateIndexedAMD)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationSeparateOES)(GLenum modeRGB, GLenum modeAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationSeparatei)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationSeparateiARB)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationSeparateiEXT)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationSeparateiOES)(GLuint buf, GLenum modeRGB, GLenum modeAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationi)(GLuint buf, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationiARB)(GLuint buf, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationiEXT)(GLuint buf, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendEquationiOES)(GLuint buf, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFunc)(GLenum sfactor, GLenum dfactor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncIndexedAMD)(GLuint buf, GLenum src, GLenum dst);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparate)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparateINGR)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparateIndexedAMD)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparateOES)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparatei)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparateiARB)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparateiEXT)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFuncSeparateiOES)(GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFunci)(GLuint buf, GLenum src, GLenum dst);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFunciARB)(GLuint buf, GLenum src, GLenum dst);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFunciEXT)(GLuint buf, GLenum src, GLenum dst);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendFunciOES)(GLuint buf, GLenum src, GLenum dst);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlendParameteriNV)(GLenum pname, GLint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlitFramebuffer)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlitFramebufferANGLE)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlitFramebufferEXT)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlitFramebufferNV)(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBlitNamedFramebuffer)(GLuint readFramebuffer, GLuint drawFramebuffer, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferAddressRangeNV)(GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferAttachMemoryNV)(GLenum target, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferData)(GLenum target, GLsizeiptr size, const void * data, GLenum usage);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferDataARB)(GLenum target, GLsizeiptrARB size, const void * data, GLenum usage);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferPageCommitmentARB)(GLenum target, GLintptr offset, GLsizeiptr size, GLboolean commit);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferParameteriAPPLE)(GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferStorage)(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferStorageEXT)(GLenum target, GLsizeiptr size, const void * data, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferStorageExternalEXT)(GLenum target, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferStorageMemEXT)(GLenum target, GLsizeiptr size, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glBufferSubDataARB)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCallCommandListNV)(GLuint list);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCallList)(GLuint list);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCallLists)(GLsizei n, GLenum type, const void * lists);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glCheckFramebufferStatus)(GLenum target);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glCheckFramebufferStatusEXT)(GLenum target);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glCheckFramebufferStatusOES)(GLenum target);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glCheckNamedFramebufferStatus)(GLuint framebuffer, GLenum target);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glCheckNamedFramebufferStatusEXT)(GLuint framebuffer, GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClampColor)(GLenum target, GLenum clamp);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClampColorARB)(GLenum target, GLenum clamp);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClear)(GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearAccumxOES)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearBufferData)(GLenum target, GLenum internalformat, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearBufferSubData)(GLenum target, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearBufferfi)(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearBufferfv)(GLenum buffer, GLint drawbuffer, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearBufferiv)(GLenum buffer, GLint drawbuffer, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearBufferuiv)(GLenum buffer, GLint drawbuffer, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearColor)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearColorIiEXT)(GLint red, GLint green, GLint blue, GLint alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearColorIuiEXT)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearColorx)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearColorxOES)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearDepth)(GLdouble depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearDepthdNV)(GLdouble depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearDepthf)(GLfloat d);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearDepthfOES)(GLclampf depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearDepthx)(GLfixed depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearDepthxOES)(GLfixed depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearIndex)(GLfloat c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearNamedBufferData)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearNamedBufferDataEXT)(GLuint buffer, GLenum internalformat, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearNamedBufferSubData)(GLuint buffer, GLenum internalformat, GLintptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearNamedBufferSubDataEXT)(GLuint buffer, GLenum internalformat, GLsizeiptr offset, GLsizeiptr size, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearNamedFramebufferfi)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearNamedFramebufferfv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearNamedFramebufferiv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearNamedFramebufferuiv)(GLuint framebuffer, GLenum buffer, GLint drawbuffer, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearPixelLocalStorageuiEXT)(GLsizei offset, GLsizei n, const GLuint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearStencil)(GLint s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearTexImage)(GLuint texture, GLint level, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearTexImageEXT)(GLuint texture, GLint level, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClearTexSubImageEXT)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClientActiveTexture)(GLenum texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClientActiveTextureARB)(GLenum texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClientActiveVertexStreamATI)(GLenum stream);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClientAttribDefaultEXT)(GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClientWaitSemaphoreui64NVX)(GLsizei fenceObjectCount, const GLuint * semaphoreArray, const GLuint64 * fenceValueArray);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glClientWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glClientWaitSyncAPPLE)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipControl)(GLenum origin, GLenum depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipControlEXT)(GLenum origin, GLenum depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipPlane)(GLenum plane, const GLdouble * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipPlanef)(GLenum p, const GLfloat * eqn);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipPlanefIMG)(GLenum p, const GLfloat * eqn);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipPlanefOES)(GLenum plane, const GLfloat * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipPlanex)(GLenum plane, const GLfixed * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipPlanexIMG)(GLenum p, const GLfixed * eqn);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glClipPlanexOES)(GLenum plane, const GLfixed * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3b)(GLbyte red, GLbyte green, GLbyte blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3bv)(const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3d)(GLdouble red, GLdouble green, GLdouble blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3f)(GLfloat red, GLfloat green, GLfloat blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3fVertex3fSUN)(GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3fVertex3fvSUN)(const GLfloat * c, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3hNV)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3i)(GLint red, GLint green, GLint blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3s)(GLshort red, GLshort green, GLshort blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3ub)(GLubyte red, GLubyte green, GLubyte blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3ubv)(const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3ui)(GLuint red, GLuint green, GLuint blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3uiv)(const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3us)(GLushort red, GLushort green, GLushort blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3usv)(const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3xOES)(GLfixed red, GLfixed green, GLfixed blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor3xvOES)(const GLfixed * components);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4bv)(const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4fNormal3fVertex3fSUN)(GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4fNormal3fVertex3fvSUN)(const GLfloat * c, const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4hNV)(GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4i)(GLint red, GLint green, GLint blue, GLint alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4ubVertex2fSUN)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4ubVertex2fvSUN)(const GLubyte * c, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4ubVertex3fSUN)(GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4ubVertex3fvSUN)(const GLubyte * c, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4ubv)(const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4uiv)(const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4usv)(const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4x)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4xOES)(GLfixed red, GLfixed green, GLfixed blue, GLfixed alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColor4xvOES)(const GLfixed * components);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorFormatNV)(GLint size, GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorFragmentOp1ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorFragmentOp2ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorFragmentOp3ATI)(GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorMaskIndexedEXT)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorMaski)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorMaskiEXT)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorMaskiOES)(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorMaterial)(GLenum face, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorP3ui)(GLenum type, GLuint color);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorP3uiv)(GLenum type, const GLuint * color);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorP4ui)(GLenum type, GLuint color);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorP4uiv)(GLenum type, const GLuint * color);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorPointer)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorPointerListIBM)(GLint size, GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorPointervINTEL)(GLint size, GLenum type, const void ** pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorSubTable)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorSubTableEXT)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorTable)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * table);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorTableEXT)(GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const void * table);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorTableParameterfv)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorTableParameterfvSGI)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorTableParameteriv)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorTableParameterivSGI)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glColorTableSGI)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * table);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCombinerInputNV)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCombinerOutputNV)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCombinerParameterfNV)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCombinerParameterfvNV)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCombinerParameteriNV)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCombinerParameterivNV)(GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCombinerStageParameterfvNV)(GLenum stage, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCommandListSegmentsNV)(GLuint list, GLuint segments);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompileCommandListNV)(GLuint list);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompileShader)(GLuint shader);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompileShaderARB)(GLhandleARB shaderObj);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompileShaderIncludeARB)(GLuint shader, GLsizei count, const GLchar *const* path, const GLint * length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedMultiTexImage1DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedMultiTexImage2DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedMultiTexImage3DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedMultiTexSubImage1DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedMultiTexSubImage2DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedMultiTexSubImage3DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexImage1DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexImage2DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexImage3D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexImage3DARB)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexImage3DOES)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexSubImage1DARB)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexSubImage2DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexSubImage3DARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTexSubImage3DOES)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureImage1DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureImage2DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureImage3DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureSubImage1DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureSubImage2DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCompressedTextureSubImage3DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const void * bits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConservativeRasterParameterfNV)(GLenum pname, GLfloat value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConservativeRasterParameteriNV)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionFilter1D)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionFilter1DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const void * image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionFilter2D)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionFilter2DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameterf)(GLenum target, GLenum pname, GLfloat params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameterfEXT)(GLenum target, GLenum pname, GLfloat params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameterfv)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameterfvEXT)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameteri)(GLenum target, GLenum pname, GLint params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameteriEXT)(GLenum target, GLenum pname, GLint params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameteriv)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameterivEXT)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameterxOES)(GLenum target, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glConvolutionParameterxvOES)(GLenum target, GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyBufferSubData)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyBufferSubDataNV)(GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyColorSubTable)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyColorSubTableEXT)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyColorTable)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyColorTableSGI)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyConvolutionFilter1D)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyConvolutionFilter1DEXT)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyConvolutionFilter2D)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyConvolutionFilter2DEXT)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyImageSubData)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyImageSubDataEXT)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyImageSubDataNV)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyImageSubDataOES)(GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyMultiTexImage1DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyMultiTexImage2DEXT)(GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyMultiTexSubImage1DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyMultiTexSubImage2DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyMultiTexSubImage3DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyNamedBufferSubData)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyPathNV)(GLuint resultPath, GLuint srcPath);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexImage1DEXT)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexImage2DEXT)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexSubImage1DEXT)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexSubImage2DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexSubImage3DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTexSubImage3DOES)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureImage1DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureImage2DEXT)(GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureLevelsAPPLE)(GLuint destinationTexture, GLuint sourceTexture, GLint sourceBaseLevel, GLsizei sourceLevelCount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureSubImage1DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureSubImage2DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCopyTextureSubImage3DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCoverFillPathInstancedNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCoverFillPathNV)(GLuint path, GLenum coverMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCoverStrokePathInstancedNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCoverStrokePathNV)(GLuint path, GLenum coverMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCoverageMaskNV)(GLboolean mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCoverageModulationNV)(GLenum components);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCoverageModulationTableNV)(GLsizei n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCoverageOperationNV)(GLenum operation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateBuffers)(GLsizei n, GLuint * buffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateCommandListsNV)(GLsizei n, GLuint * lists);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateFramebuffers)(GLsizei n, GLuint * framebuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateMemoryObjectsEXT)(GLsizei n, GLuint * memoryObjects);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreatePerfQueryINTEL)(GLuint queryId, GLuint * queryHandle);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glCreateProgram)(void);
+
+EPOXY_PUBLIC GLhandleARB (EPOXY_CALLSPEC *epoxy_glCreateProgramObjectARB)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateProgramPipelines)(GLsizei n, GLuint * pipelines);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glCreateProgressFenceNVX)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateQueries)(GLenum target, GLsizei n, GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateRenderbuffers)(GLsizei n, GLuint * renderbuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateSamplers)(GLsizei n, GLuint * samplers);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glCreateShader)(GLenum type);
+
+EPOXY_PUBLIC GLhandleARB (EPOXY_CALLSPEC *epoxy_glCreateShaderObjectARB)(GLenum shaderType);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glCreateShaderProgramEXT)(GLenum type, const GLchar * string);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glCreateShaderProgramv)(GLenum type, GLsizei count, const GLchar *const* strings);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glCreateShaderProgramvEXT)(GLenum type, GLsizei count, const GLchar ** strings);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateStatesNV)(GLsizei n, GLuint * states);
+
+EPOXY_PUBLIC GLsync (EPOXY_CALLSPEC *epoxy_glCreateSyncFromCLeventARB)(struct _cl_context * context, struct _cl_event * event, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateTextures)(GLenum target, GLsizei n, GLuint * textures);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateTransformFeedbacks)(GLsizei n, GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCreateVertexArrays)(GLsizei n, GLuint * arrays);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCullFace)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCullParameterdvEXT)(GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCullParameterfvEXT)(GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCurrentPaletteMatrixARB)(GLint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glCurrentPaletteMatrixOES)(GLuint matrixpaletteindex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageCallback)(GLDEBUGPROC callback, const void * userParam);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageCallbackAMD)(GLDEBUGPROCAMD callback, void * userParam);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageCallbackARB)(GLDEBUGPROCARB callback, const void * userParam);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageCallbackKHR)(GLDEBUGPROCKHR callback, const void * userParam);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageControl)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageControlARB)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageControlKHR)(GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageEnableAMD)(GLenum category, GLenum severity, GLsizei count, const GLuint * ids, GLboolean enabled);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageInsert)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageInsertAMD)(GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar * buf);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageInsertARB)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDebugMessageInsertKHR)(GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar * buf);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeformSGIX)(GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeformationMap3dSGIX)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeformationMap3fSGIX)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteAsyncMarkersSGIX)(GLuint marker, GLsizei range);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteBuffers)(GLsizei n, const GLuint * buffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteBuffersARB)(GLsizei n, const GLuint * buffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteCommandListsNV)(GLsizei n, const GLuint * lists);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteFencesAPPLE)(GLsizei n, const GLuint * fences);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteFencesNV)(GLsizei n, const GLuint * fences);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteFragmentShaderATI)(GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteFramebuffers)(GLsizei n, const GLuint * framebuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteFramebuffersEXT)(GLsizei n, const GLuint * framebuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteFramebuffersOES)(GLsizei n, const GLuint * framebuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteLists)(GLuint list, GLsizei range);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteMemoryObjectsEXT)(GLsizei n, const GLuint * memoryObjects);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteNamedStringARB)(GLint namelen, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteNamesAMD)(GLenum identifier, GLuint num, const GLuint * names);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteObjectARB)(GLhandleARB obj);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteOcclusionQueriesNV)(GLsizei n, const GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeletePathsNV)(GLuint path, GLsizei range);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeletePerfMonitorsAMD)(GLsizei n, GLuint * monitors);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeletePerfQueryINTEL)(GLuint queryHandle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteProgram)(GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteProgramPipelines)(GLsizei n, const GLuint * pipelines);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteProgramPipelinesEXT)(GLsizei n, const GLuint * pipelines);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteProgramsARB)(GLsizei n, const GLuint * programs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteProgramsNV)(GLsizei n, const GLuint * programs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteQueries)(GLsizei n, const GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteQueriesARB)(GLsizei n, const GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteQueriesEXT)(GLsizei n, const GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteQueryResourceTagNV)(GLsizei n, const GLint * tagIds);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteRenderbuffers)(GLsizei n, const GLuint * renderbuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteRenderbuffersEXT)(GLsizei n, const GLuint * renderbuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteRenderbuffersOES)(GLsizei n, const GLuint * renderbuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteSamplers)(GLsizei count, const GLuint * samplers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteSemaphoresEXT)(GLsizei n, const GLuint * semaphores);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteShader)(GLuint shader);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteStatesNV)(GLsizei n, const GLuint * states);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteSync)(GLsync sync);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteSyncAPPLE)(GLsync sync);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteTextures)(GLsizei n, const GLuint * textures);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteTexturesEXT)(GLsizei n, const GLuint * textures);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteTransformFeedbacks)(GLsizei n, const GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteTransformFeedbacksNV)(GLsizei n, const GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteVertexArrays)(GLsizei n, const GLuint * arrays);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteVertexArraysAPPLE)(GLsizei n, const GLuint * arrays);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteVertexArraysOES)(GLsizei n, const GLuint * arrays);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDeleteVertexShaderEXT)(GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthBoundsEXT)(GLclampd zmin, GLclampd zmax);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthBoundsdNV)(GLdouble zmin, GLdouble zmax);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthFunc)(GLenum func);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthMask)(GLboolean flag);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRange)(GLdouble n, GLdouble f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangeArrayfvNV)(GLuint first, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangeArrayfvOES)(GLuint first, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangeArrayv)(GLuint first, GLsizei count, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangeIndexed)(GLuint index, GLdouble n, GLdouble f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangeIndexedfNV)(GLuint index, GLfloat n, GLfloat f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangeIndexedfOES)(GLuint index, GLfloat n, GLfloat f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangedNV)(GLdouble zNear, GLdouble zFar);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangef)(GLfloat n, GLfloat f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangefOES)(GLclampf n, GLclampf f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangex)(GLfixed n, GLfixed f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDepthRangexOES)(GLfixed n, GLfixed f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDetachObjectARB)(GLhandleARB containerObj, GLhandleARB attachedObj);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDetachShader)(GLuint program, GLuint shader);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDetailTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisable)(GLenum cap);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableClientState)(GLenum array);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableClientStateIndexedEXT)(GLenum array, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableClientStateiEXT)(GLenum array, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableDriverControlQCOM)(GLuint driverControl);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableIndexedEXT)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableVariantClientStateEXT)(GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableVertexArrayAttrib)(GLuint vaobj, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableVertexArrayAttribEXT)(GLuint vaobj, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableVertexArrayEXT)(GLuint vaobj, GLenum array);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableVertexAttribAPPLE)(GLuint index, GLenum pname);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableVertexAttribArray)(GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableVertexAttribArrayARB)(GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisablei)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableiEXT)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableiNV)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDisableiOES)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDiscardFramebufferEXT)(GLenum target, GLsizei numAttachments, const GLenum * attachments);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDispatchCompute)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDispatchComputeGroupSizeARB)(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z, GLuint group_size_x, GLuint group_size_y, GLuint group_size_z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDispatchComputeIndirect)(GLintptr indirect);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArrays)(GLenum mode, GLint first, GLsizei count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysEXT)(GLenum mode, GLint first, GLsizei count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysIndirect)(GLenum mode, const void * indirect);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysInstanced)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysInstancedANGLE)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysInstancedARB)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysInstancedBaseInstance)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysInstancedBaseInstanceEXT)(GLenum mode, GLint first, GLsizei count, GLsizei instancecount, GLuint baseinstance);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysInstancedEXT)(GLenum mode, GLint start, GLsizei count, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawArraysInstancedNV)(GLenum mode, GLint first, GLsizei count, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawBuffer)(GLenum buf);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawBuffers)(GLsizei n, const GLenum * bufs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawBuffersARB)(GLsizei n, const GLenum * bufs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawBuffersATI)(GLsizei n, const GLenum * bufs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawBuffersEXT)(GLsizei n, const GLenum * bufs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawBuffersIndexedEXT)(GLint n, const GLenum * location, const GLint * indices);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawBuffersNV)(GLsizei n, const GLenum * bufs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawCommandsAddressNV)(GLenum primitiveMode, const GLuint64 * indirects, const GLsizei * sizes, GLuint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawCommandsNV)(GLenum primitiveMode, GLuint buffer, const GLintptr * indirects, const GLsizei * sizes, GLuint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawCommandsStatesAddressNV)(const GLuint64 * indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawCommandsStatesNV)(GLuint buffer, const GLintptr * indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementArrayAPPLE)(GLenum mode, GLint first, GLsizei count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementArrayATI)(GLenum mode, GLsizei count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElements)(GLenum mode, GLsizei count, GLenum type, const void * indices);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsBaseVertex)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsBaseVertexEXT)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsBaseVertexOES)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsIndirect)(GLenum mode, GLenum type, const void * indirect);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstanced)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedANGLE)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedARB)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedBaseInstance)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedBaseInstanceEXT)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLuint baseinstance);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedBaseVertex)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedBaseVertexBaseInstance)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedBaseVertexBaseInstanceEXT)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex, GLuint baseinstance);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedBaseVertexEXT)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedBaseVertexOES)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei instancecount, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedEXT)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawElementsInstancedNV)(GLenum mode, GLsizei count, GLenum type, const void * indices, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawMeshArraysSUN)(GLenum mode, GLint first, GLsizei count, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawMeshTasksIndirectNV)(GLintptr indirect);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawMeshTasksNV)(GLuint first, GLuint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawRangeElementArrayAPPLE)(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawRangeElementArrayATI)(GLenum mode, GLuint start, GLuint end, GLsizei count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawRangeElementsBaseVertex)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawRangeElementsBaseVertexEXT)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawRangeElementsBaseVertexOES)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices, GLint basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawRangeElementsEXT)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const void * indices);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTexfOES)(GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTexfvOES)(const GLfloat * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTexiOES)(GLint x, GLint y, GLint z, GLint width, GLint height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTexivOES)(const GLint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTexsOES)(GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTexsvOES)(const GLshort * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTextureNV)(GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTexxOES)(GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTexxvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTransformFeedback)(GLenum mode, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTransformFeedbackEXT)(GLenum mode, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTransformFeedbackInstanced)(GLenum mode, GLuint id, GLsizei instancecount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTransformFeedbackInstancedEXT)(GLenum mode, GLuint id, GLsizei instancecount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTransformFeedbackNV)(GLenum mode, GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTransformFeedbackStream)(GLenum mode, GLuint id, GLuint stream);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawTransformFeedbackStreamInstanced)(GLenum mode, GLuint id, GLuint stream, GLsizei instancecount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glDrawVkImageNV)(GLuint64 vkImage, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEGLImageTargetRenderbufferStorageOES)(GLenum target, GLeglImageOES image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEGLImageTargetTexStorageEXT)(GLenum target, GLeglImageOES image, const GLint* attrib_list);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEGLImageTargetTexture2DOES)(GLenum target, GLeglImageOES image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEGLImageTargetTextureStorageEXT)(GLuint texture, GLeglImageOES image, const GLint* attrib_list);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEdgeFlag)(GLboolean flag);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEdgeFlagFormatNV)(GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEdgeFlagPointer)(GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEdgeFlagPointerEXT)(GLsizei stride, GLsizei count, const GLboolean * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEdgeFlagPointerListIBM)(GLint stride, const GLboolean ** pointer, GLint ptrstride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEdgeFlagv)(const GLboolean * flag);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glElementPointerAPPLE)(GLenum type, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glElementPointerATI)(GLenum type, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnable)(GLenum cap);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableClientState)(GLenum array);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableClientStateIndexedEXT)(GLenum array, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableClientStateiEXT)(GLenum array, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableDriverControlQCOM)(GLuint driverControl);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableIndexedEXT)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableVariantClientStateEXT)(GLuint id);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableVertexArrayAttrib)(GLuint vaobj, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableVertexArrayAttribEXT)(GLuint vaobj, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableVertexArrayEXT)(GLuint vaobj, GLenum array);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableVertexAttribAPPLE)(GLuint index, GLenum pname);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableVertexAttribArray)(GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableVertexAttribArrayARB)(GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnablei)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableiEXT)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableiNV)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnableiOES)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEnd)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndConditionalRender)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndConditionalRenderNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndConditionalRenderNVX)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndFragmentShaderATI)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndList)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndOcclusionQueryNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndPerfMonitorAMD)(GLuint monitor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndPerfQueryINTEL)(GLuint queryHandle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndQuery)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndQueryARB)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndQueryEXT)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndQueryIndexed)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndTilingQCOM)(GLbitfield preserveMask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndTransformFeedback)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndTransformFeedbackEXT)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndTransformFeedbackNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndVertexShaderEXT)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEndVideoCaptureNV)(GLuint video_capture_slot);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord1d)(GLdouble u);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord1dv)(const GLdouble * u);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord1f)(GLfloat u);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord1fv)(const GLfloat * u);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord1xOES)(GLfixed u);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord1xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord2d)(GLdouble u, GLdouble v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord2dv)(const GLdouble * u);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord2f)(GLfloat u, GLfloat v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord2fv)(const GLfloat * u);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord2xOES)(GLfixed u, GLfixed v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalCoord2xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalMapsNV)(GLenum target, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalMesh1)(GLenum mode, GLint i1, GLint i2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalPoint1)(GLint i);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvalPoint2)(GLint i, GLint j);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glEvaluateDepthValuesARB)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExecuteProgramNV)(GLenum target, GLuint id, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetBufferPointervQCOM)(GLenum target, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetBuffersQCOM)(GLuint * buffers, GLint maxBuffers, GLint * numBuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetFramebuffersQCOM)(GLuint * framebuffers, GLint maxFramebuffers, GLint * numFramebuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetProgramBinarySourceQCOM)(GLuint program, GLenum shadertype, GLchar * source, GLint * length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetProgramsQCOM)(GLuint * programs, GLint maxPrograms, GLint * numPrograms);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetRenderbuffersQCOM)(GLuint * renderbuffers, GLint maxRenderbuffers, GLint * numRenderbuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetShadersQCOM)(GLuint * shaders, GLint maxShaders, GLint * numShaders);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetTexLevelParameterivQCOM)(GLuint texture, GLenum face, GLint level, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetTexSubImageQCOM)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, void * texels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtGetTexturesQCOM)(GLuint * textures, GLint maxTextures, GLint * numTextures);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glExtIsProgramBinaryQCOM)(GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtTexObjectStateOverrideiQCOM)(GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glExtractComponentEXT)(GLuint res, GLuint src, GLuint num);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFeedbackBuffer)(GLsizei size, GLenum type, GLfloat * buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFeedbackBufferxOES)(GLsizei n, GLenum type, const GLfixed * buffer);
+
+EPOXY_PUBLIC GLsync (EPOXY_CALLSPEC *epoxy_glFenceSync)(GLenum condition, GLbitfield flags);
+
+EPOXY_PUBLIC GLsync (EPOXY_CALLSPEC *epoxy_glFenceSyncAPPLE)(GLenum condition, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFinalCombinerInputNV)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFinish)(void);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glFinishAsyncSGIX)(GLuint * markerp);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFinishFenceAPPLE)(GLuint fence);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFinishFenceNV)(GLuint fence);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFinishObjectAPPLE)(GLenum object, GLint name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFinishTextureSUNX)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlush)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushMappedBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushMappedBufferRangeAPPLE)(GLenum target, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushMappedBufferRangeEXT)(GLenum target, GLintptr offset, GLsizeiptr length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushMappedNamedBufferRange)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushMappedNamedBufferRangeEXT)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushPixelDataRangeNV)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushRasterSGIX)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushStaticDataIBM)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushVertexArrayRangeAPPLE)(GLsizei length, void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFlushVertexArrayRangeNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordFormatNV)(GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordPointer)(GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordPointerEXT)(GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordPointerListIBM)(GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordd)(GLdouble coord);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoorddEXT)(GLdouble coord);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoorddv)(const GLdouble * coord);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoorddvEXT)(const GLdouble * coord);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordf)(GLfloat coord);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordfEXT)(GLfloat coord);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordfv)(const GLfloat * coord);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordfvEXT)(const GLfloat * coord);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordhNV)(GLhalfNV fog);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogCoordhvNV)(const GLhalfNV * fog);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogFuncSGIS)(GLsizei n, const GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogf)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogfv)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogi)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogiv)(GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogx)(GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogxOES)(GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogxv)(GLenum pname, const GLfixed * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFogxvOES)(GLenum pname, const GLfixed * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentColorMaterialSGIX)(GLenum face, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentCoverageColorNV)(GLuint color);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentLightModelfSGIX)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentLightModelfvSGIX)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentLightModeliSGIX)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentLightModelivSGIX)(GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentLightfSGIX)(GLenum light, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentLightfvSGIX)(GLenum light, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentLightiSGIX)(GLenum light, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentLightivSGIX)(GLenum light, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentMaterialfSGIX)(GLenum face, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentMaterialfvSGIX)(GLenum face, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentMaterialiSGIX)(GLenum face, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFragmentMaterialivSGIX)(GLenum face, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFrameTerminatorGREMEDY)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFrameZoomSGIX)(GLint factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferDrawBufferEXT)(GLuint framebuffer, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferDrawBuffersEXT)(GLuint framebuffer, GLsizei n, const GLenum * bufs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferFetchBarrierEXT)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferFetchBarrierQCOM)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferFoveationConfigQCOM)(GLuint framebuffer, GLuint numLayers, GLuint focalPointsPerLayer, GLuint requestedFeatures, GLuint * providedFeatures);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferFoveationParametersQCOM)(GLuint framebuffer, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferParameteri)(GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferParameteriMESA)(GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferPixelLocalStorageSizeEXT)(GLuint target, GLsizei size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferReadBufferEXT)(GLuint framebuffer, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferRenderbufferEXT)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferRenderbufferOES)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferSampleLocationsfvARB)(GLenum target, GLuint start, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferSampleLocationsfvNV)(GLenum target, GLuint start, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferSamplePositionsfvAMD)(GLenum target, GLuint numsamples, GLuint pixelindex, const GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture1D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture1DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture2DDownsampleIMG)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint xscale, GLint yscale);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture2DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture2DMultisampleEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture2DMultisampleIMG)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture2DOES)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture3D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture3DEXT)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTexture3DOES)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureARB)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureFaceARB)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureFaceEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureLayer)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureLayerARB)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureLayerDownsampleIMG)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer, GLint xscale, GLint yscale);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureLayerEXT)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureMultisampleMultiviewOVR)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLsizei samples, GLint baseViewIndex, GLsizei numViews);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureMultiviewOVR)(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint baseViewIndex, GLsizei numViews);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFramebufferTextureOES)(GLenum target, GLenum attachment, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFreeObjectBufferATI)(GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFrontFace)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFrustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFrustumf)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFrustumfOES)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFrustumx)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glFrustumxOES)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGenAsyncMarkersSGIX)(GLsizei range);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenBuffers)(GLsizei n, GLuint * buffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenBuffersARB)(GLsizei n, GLuint * buffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenFencesAPPLE)(GLsizei n, GLuint * fences);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenFencesNV)(GLsizei n, GLuint * fences);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGenFragmentShadersATI)(GLuint range);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenFramebuffers)(GLsizei n, GLuint * framebuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenFramebuffersEXT)(GLsizei n, GLuint * framebuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenFramebuffersOES)(GLsizei n, GLuint * framebuffers);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGenLists)(GLsizei range);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenNamesAMD)(GLenum identifier, GLuint num, GLuint * names);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenOcclusionQueriesNV)(GLsizei n, GLuint * ids);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGenPathsNV)(GLsizei range);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenPerfMonitorsAMD)(GLsizei n, GLuint * monitors);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenProgramPipelines)(GLsizei n, GLuint * pipelines);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenProgramPipelinesEXT)(GLsizei n, GLuint * pipelines);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenProgramsARB)(GLsizei n, GLuint * programs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenProgramsNV)(GLsizei n, GLuint * programs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenQueries)(GLsizei n, GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenQueriesARB)(GLsizei n, GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenQueriesEXT)(GLsizei n, GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenQueryResourceTagNV)(GLsizei n, GLint * tagIds);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenRenderbuffers)(GLsizei n, GLuint * renderbuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenRenderbuffersEXT)(GLsizei n, GLuint * renderbuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenRenderbuffersOES)(GLsizei n, GLuint * renderbuffers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenSamplers)(GLsizei count, GLuint * samplers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenSemaphoresEXT)(GLsizei n, GLuint * semaphores);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGenSymbolsEXT)(GLenum datatype, GLenum storagetype, GLenum range, GLuint components);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenTextures)(GLsizei n, GLuint * textures);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenTexturesEXT)(GLsizei n, GLuint * textures);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenTransformFeedbacks)(GLsizei n, GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenTransformFeedbacksNV)(GLsizei n, GLuint * ids);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenVertexArrays)(GLsizei n, GLuint * arrays);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenVertexArraysAPPLE)(GLsizei n, GLuint * arrays);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenVertexArraysOES)(GLsizei n, GLuint * arrays);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGenVertexShadersEXT)(GLuint range);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenerateMipmap)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenerateMipmapEXT)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenerateMipmapOES)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenerateMultiTexMipmapEXT)(GLenum texunit, GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenerateTextureMipmap)(GLuint texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGenerateTextureMipmapEXT)(GLuint texture, GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveAtomicCounterBufferiv)(GLuint program, GLuint bufferIndex, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveAttrib)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveAttribARB)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveSubroutineName)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveSubroutineUniformName)(GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei * length, GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveSubroutineUniformiv)(GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveUniform)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLint * size, GLenum * type, GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveUniformARB)(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei * length, GLint * size, GLenum * type, GLcharARB * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveUniformBlockName)(GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformBlockName);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveUniformBlockiv)(GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveUniformName)(GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei * length, GLchar * uniformName);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveUniformsiv)(GLuint program, GLsizei uniformCount, const GLuint * uniformIndices, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetActiveVaryingNV)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetArrayObjectfvATI)(GLenum array, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetArrayObjectivATI)(GLenum array, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetAttachedObjectsARB)(GLhandleARB containerObj, GLsizei maxCount, GLsizei * count, GLhandleARB * obj);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetAttachedShaders)(GLuint program, GLsizei maxCount, GLsizei * count, GLuint * shaders);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetAttribLocation)(GLuint program, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetAttribLocationARB)(GLhandleARB programObj, const GLcharARB * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBooleanIndexedvEXT)(GLenum target, GLuint index, GLboolean * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBooleani_v)(GLenum target, GLuint index, GLboolean * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBooleanv)(GLenum pname, GLboolean * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferParameteri64v)(GLenum target, GLenum pname, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferParameteriv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferParameterivARB)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferParameterui64vNV)(GLenum target, GLenum pname, GLuint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferPointerv)(GLenum target, GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferPointervARB)(GLenum target, GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferPointervOES)(GLenum target, GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferSubData)(GLenum target, GLintptr offset, GLsizeiptr size, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetBufferSubDataARB)(GLenum target, GLintptrARB offset, GLsizeiptrARB size, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetClipPlane)(GLenum plane, GLdouble * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetClipPlanef)(GLenum plane, GLfloat * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetClipPlanefOES)(GLenum plane, GLfloat * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetClipPlanex)(GLenum plane, GLfixed * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetClipPlanexOES)(GLenum plane, GLfixed * equation);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTable)(GLenum target, GLenum format, GLenum type, void * table);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTableEXT)(GLenum target, GLenum format, GLenum type, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTableParameterfv)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTableParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTableParameterfvSGI)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTableParameteriv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTableParameterivEXT)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTableParameterivSGI)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetColorTableSGI)(GLenum target, GLenum format, GLenum type, void * table);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCombinerInputParameterfvNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCombinerInputParameterivNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCombinerOutputParameterfvNV)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCombinerOutputParameterivNV)(GLenum stage, GLenum portion, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCombinerStageParameterfvNV)(GLenum stage, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGetCommandHeaderNV)(GLenum tokenID, GLuint size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCompressedMultiTexImageEXT)(GLenum texunit, GLenum target, GLint lod, void * img);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCompressedTexImage)(GLenum target, GLint level, void * img);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCompressedTexImageARB)(GLenum target, GLint level, void * img);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCompressedTextureImage)(GLuint texture, GLint level, GLsizei bufSize, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCompressedTextureImageEXT)(GLuint texture, GLenum target, GLint lod, void * img);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCompressedTextureSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei bufSize, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetConvolutionFilter)(GLenum target, GLenum format, GLenum type, void * image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetConvolutionFilterEXT)(GLenum target, GLenum format, GLenum type, void * image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetConvolutionParameterfv)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetConvolutionParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetConvolutionParameteriv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetConvolutionParameterivEXT)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetConvolutionParameterxvOES)(GLenum target, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetCoverageModulationTableNV)(GLsizei bufsize, GLfloat * v);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGetDebugMessageLog)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGetDebugMessageLogAMD)(GLuint count, GLsizei bufsize, GLenum * categories, GLuint * severities, GLuint * ids, GLsizei * lengths, GLchar * message);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGetDebugMessageLogARB)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGetDebugMessageLogKHR)(GLuint count, GLsizei bufSize, GLenum * sources, GLenum * types, GLuint * ids, GLenum * severities, GLsizei * lengths, GLchar * messageLog);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetDetailTexFuncSGIS)(GLenum target, GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetDoubleIndexedvEXT)(GLenum target, GLuint index, GLdouble * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetDoublei_v)(GLenum target, GLuint index, GLdouble * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetDoublei_vEXT)(GLenum pname, GLuint index, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetDoublev)(GLenum pname, GLdouble * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetDriverControlStringQCOM)(GLuint driverControl, GLsizei bufSize, GLsizei * length, GLchar * driverControlString);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetDriverControlsQCOM)(GLint * num, GLsizei size, GLuint * driverControls);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glGetError)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFenceivNV)(GLuint fence, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFinalCombinerInputParameterfvNV)(GLenum variable, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFinalCombinerInputParameterivNV)(GLenum variable, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFirstPerfQueryIdINTEL)(GLuint * queryId);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFixedv)(GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFixedvOES)(GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFloatIndexedvEXT)(GLenum target, GLuint index, GLfloat * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFloati_v)(GLenum target, GLuint index, GLfloat * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFloati_vEXT)(GLenum pname, GLuint index, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFloati_vNV)(GLenum target, GLuint index, GLfloat * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFloati_vOES)(GLenum target, GLuint index, GLfloat * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFloatv)(GLenum pname, GLfloat * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFogFuncSGIS)(GLfloat * points);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetFragDataIndex)(GLuint program, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetFragDataIndexEXT)(GLuint program, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetFragDataLocation)(GLuint program, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetFragDataLocationEXT)(GLuint program, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFragmentLightfvSGIX)(GLenum light, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFragmentLightivSGIX)(GLenum light, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFragmentMaterialfvSGIX)(GLenum face, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFragmentMaterialivSGIX)(GLenum face, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFramebufferAttachmentParameterivEXT)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFramebufferAttachmentParameterivOES)(GLenum target, GLenum attachment, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFramebufferParameterfvAMD)(GLenum target, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFramebufferParameteriv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFramebufferParameterivEXT)(GLuint framebuffer, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetFramebufferParameterivMESA)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC GLsizei (EPOXY_CALLSPEC *epoxy_glGetFramebufferPixelLocalStorageSizeEXT)(GLuint target);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glGetGraphicsResetStatus)(void);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glGetGraphicsResetStatusARB)(void);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glGetGraphicsResetStatusEXT)(void);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glGetGraphicsResetStatusKHR)(void);
+
+EPOXY_PUBLIC GLhandleARB (EPOXY_CALLSPEC *epoxy_glGetHandleARB)(GLenum pname);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetHistogram)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetHistogramEXT)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetHistogramParameterfv)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetHistogramParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetHistogramParameteriv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetHistogramParameterivEXT)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetHistogramParameterxvOES)(GLenum target, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC GLuint64 (EPOXY_CALLSPEC *epoxy_glGetImageHandleARB)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+
+EPOXY_PUBLIC GLuint64 (EPOXY_CALLSPEC *epoxy_glGetImageHandleNV)(GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum format);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetImageTransformParameterfvHP)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetImageTransformParameterivHP)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInfoLogARB)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * infoLog);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetInstrumentsSGIX)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInteger64i_v)(GLenum target, GLuint index, GLint64 * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInteger64v)(GLenum pname, GLint64 * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInteger64vAPPLE)(GLenum pname, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetIntegerIndexedvEXT)(GLenum target, GLuint index, GLint * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetIntegeri_v)(GLenum target, GLuint index, GLint * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetIntegeri_vEXT)(GLenum target, GLuint index, GLint * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetIntegerui64i_vNV)(GLenum value, GLuint index, GLuint64EXT * result);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetIntegerui64vNV)(GLenum value, GLuint64EXT * result);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetIntegerv)(GLenum pname, GLint * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInternalformatSampleivNV)(GLenum target, GLenum internalformat, GLsizei samples, GLenum pname, GLsizei bufSize, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInternalformati64v)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInternalformativ)(GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInvariantBooleanvEXT)(GLuint id, GLenum value, GLboolean * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInvariantFloatvEXT)(GLuint id, GLenum value, GLfloat * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetInvariantIntegervEXT)(GLuint id, GLenum value, GLint * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetLightfv)(GLenum light, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetLightiv)(GLenum light, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetLightxOES)(GLenum light, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetLightxv)(GLenum light, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetLightxvOES)(GLenum light, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetListParameterfvSGIX)(GLuint list, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetListParameterivSGIX)(GLuint list, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetLocalConstantBooleanvEXT)(GLuint id, GLenum value, GLboolean * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetLocalConstantFloatvEXT)(GLuint id, GLenum value, GLfloat * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetLocalConstantIntegervEXT)(GLuint id, GLenum value, GLint * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapAttribParameterfvNV)(GLenum target, GLuint index, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapAttribParameterivNV)(GLenum target, GLuint index, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapControlPointsNV)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, void * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapParameterfvNV)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapParameterivNV)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapdv)(GLenum target, GLenum query, GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapfv)(GLenum target, GLenum query, GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapiv)(GLenum target, GLenum query, GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMapxvOES)(GLenum target, GLenum query, GLfixed * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMaterialfv)(GLenum face, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMaterialiv)(GLenum face, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMaterialxOES)(GLenum face, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMaterialxv)(GLenum face, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMaterialxvOES)(GLenum face, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMemoryObjectDetachedResourcesuivNV)(GLuint memory, GLenum pname, GLint first, GLsizei count, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMemoryObjectParameterivEXT)(GLuint memoryObject, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMinmax)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMinmaxEXT)(GLenum target, GLboolean reset, GLenum format, GLenum type, void * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMinmaxParameterfv)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMinmaxParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMinmaxParameteriv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMinmaxParameterivEXT)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexEnvfvEXT)(GLenum texunit, GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexEnvivEXT)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexGendvEXT)(GLenum texunit, GLenum coord, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexGenfvEXT)(GLenum texunit, GLenum coord, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexGenivEXT)(GLenum texunit, GLenum coord, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexImageEXT)(GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexLevelParameterfvEXT)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexLevelParameterivEXT)(GLenum texunit, GLenum target, GLint level, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexParameterIivEXT)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexParameterIuivEXT)(GLenum texunit, GLenum target, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexParameterfvEXT)(GLenum texunit, GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultiTexParameterivEXT)(GLenum texunit, GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultisamplefv)(GLenum pname, GLuint index, GLfloat * val);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetMultisamplefvNV)(GLenum pname, GLuint index, GLfloat * val);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedBufferParameteri64v)(GLuint buffer, GLenum pname, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedBufferParameteriv)(GLuint buffer, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedBufferParameterivEXT)(GLuint buffer, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedBufferParameterui64vNV)(GLuint buffer, GLenum pname, GLuint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedBufferPointerv)(GLuint buffer, GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedBufferPointervEXT)(GLuint buffer, GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedBufferSubDataEXT)(GLuint buffer, GLintptr offset, GLsizeiptr size, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedFramebufferAttachmentParameteriv)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedFramebufferAttachmentParameterivEXT)(GLuint framebuffer, GLenum attachment, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedFramebufferParameterfvAMD)(GLuint framebuffer, GLenum pname, GLuint numsamples, GLuint pixelindex, GLsizei size, GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedFramebufferParameteriv)(GLuint framebuffer, GLenum pname, GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedFramebufferParameterivEXT)(GLuint framebuffer, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedProgramLocalParameterIivEXT)(GLuint program, GLenum target, GLuint index, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedProgramLocalParameterIuivEXT)(GLuint program, GLenum target, GLuint index, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedProgramLocalParameterdvEXT)(GLuint program, GLenum target, GLuint index, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedProgramLocalParameterfvEXT)(GLuint program, GLenum target, GLuint index, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedProgramStringEXT)(GLuint program, GLenum target, GLenum pname, void * string);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedProgramivEXT)(GLuint program, GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedRenderbufferParameteriv)(GLuint renderbuffer, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedRenderbufferParameterivEXT)(GLuint renderbuffer, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedStringARB)(GLint namelen, const GLchar * name, GLsizei bufSize, GLint * stringlen, GLchar * string);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNamedStringivARB)(GLint namelen, const GLchar * name, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetNextPerfQueryIdINTEL)(GLuint queryId, GLuint * nextQueryId);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectBufferfvATI)(GLuint buffer, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectBufferivATI)(GLuint buffer, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectLabel)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectLabelEXT)(GLenum type, GLuint object, GLsizei bufSize, GLsizei * length, GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectLabelKHR)(GLenum identifier, GLuint name, GLsizei bufSize, GLsizei * length, GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectParameterfvARB)(GLhandleARB obj, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectParameterivAPPLE)(GLenum objectType, GLuint name, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectParameterivARB)(GLhandleARB obj, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectPtrLabel)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetObjectPtrLabelKHR)(const void * ptr, GLsizei bufSize, GLsizei * length, GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetOcclusionQueryivNV)(GLuint id, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetOcclusionQueryuivNV)(GLuint id, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathColorGenfvNV)(GLenum color, GLenum pname, GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathColorGenivNV)(GLenum color, GLenum pname, GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathCommandsNV)(GLuint path, GLubyte * commands);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathCoordsNV)(GLuint path, GLfloat * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathDashArrayNV)(GLuint path, GLfloat * dashArray);
+
+EPOXY_PUBLIC GLfloat (EPOXY_CALLSPEC *epoxy_glGetPathLengthNV)(GLuint path, GLsizei startSegment, GLsizei numSegments);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathMetricRangeNV)(GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat * metrics);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathMetricsNV)(GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLsizei stride, GLfloat * metrics);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathParameterfvNV)(GLuint path, GLenum pname, GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathParameterivNV)(GLuint path, GLenum pname, GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathSpacingNV)(GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat * returnedSpacing);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathTexGenfvNV)(GLenum texCoordSet, GLenum pname, GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPathTexGenivNV)(GLenum texCoordSet, GLenum pname, GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfCounterInfoINTEL)(GLuint queryId, GLuint counterId, GLuint counterNameLength, GLchar * counterName, GLuint counterDescLength, GLchar * counterDesc, GLuint * counterOffset, GLuint * counterDataSize, GLuint * counterTypeEnum, GLuint * counterDataTypeEnum, GLuint64 * rawCounterMaxValue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfMonitorCounterDataAMD)(GLuint monitor, GLenum pname, GLsizei dataSize, GLuint * data, GLint * bytesWritten);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfMonitorCounterInfoAMD)(GLuint group, GLuint counter, GLenum pname, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfMonitorCounterStringAMD)(GLuint group, GLuint counter, GLsizei bufSize, GLsizei * length, GLchar * counterString);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfMonitorCountersAMD)(GLuint group, GLint * numCounters, GLint * maxActiveCounters, GLsizei counterSize, GLuint * counters);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfMonitorGroupStringAMD)(GLuint group, GLsizei bufSize, GLsizei * length, GLchar * groupString);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfMonitorGroupsAMD)(GLint * numGroups, GLsizei groupsSize, GLuint * groups);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfQueryDataINTEL)(GLuint queryHandle, GLuint flags, GLsizei dataSize, void * data, GLuint * bytesWritten);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfQueryIdByNameINTEL)(GLchar * queryName, GLuint * queryId);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPerfQueryInfoINTEL)(GLuint queryId, GLuint queryNameLength, GLchar * queryName, GLuint * dataSize, GLuint * noCounters, GLuint * noInstances, GLuint * capsMask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPixelMapfv)(GLenum map, GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPixelMapuiv)(GLenum map, GLuint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPixelMapusv)(GLenum map, GLushort * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPixelMapxv)(GLenum map, GLint size, GLfixed * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPixelTexGenParameterfvSGIS)(GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPixelTexGenParameterivSGIS)(GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPixelTransformParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPixelTransformParameterivEXT)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPointerIndexedvEXT)(GLenum target, GLuint index, void ** data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPointeri_vEXT)(GLenum pname, GLuint index, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPointerv)(GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPointervEXT)(GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPointervKHR)(GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetPolygonStipple)(GLubyte * mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramBinary)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramBinaryOES)(GLuint program, GLsizei bufSize, GLsizei * length, GLenum * binaryFormat, void * binary);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramEnvParameterIivNV)(GLenum target, GLuint index, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramEnvParameterIuivNV)(GLenum target, GLuint index, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramEnvParameterdvARB)(GLenum target, GLuint index, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramEnvParameterfvARB)(GLenum target, GLuint index, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramInfoLog)(GLuint program, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramInterfaceiv)(GLuint program, GLenum programInterface, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramLocalParameterIivNV)(GLenum target, GLuint index, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramLocalParameterIuivNV)(GLenum target, GLuint index, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramLocalParameterdvARB)(GLenum target, GLuint index, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramLocalParameterfvARB)(GLenum target, GLuint index, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramNamedParameterdvNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramNamedParameterfvNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramParameterdvNV)(GLenum target, GLuint index, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramParameterfvNV)(GLenum target, GLuint index, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramPipelineInfoLog)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramPipelineInfoLogEXT)(GLuint pipeline, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramPipelineiv)(GLuint pipeline, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramPipelineivEXT)(GLuint pipeline, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGetProgramResourceIndex)(GLuint program, GLenum programInterface, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetProgramResourceLocation)(GLuint program, GLenum programInterface, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetProgramResourceLocationIndex)(GLuint program, GLenum programInterface, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetProgramResourceLocationIndexEXT)(GLuint program, GLenum programInterface, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramResourceName)(GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei * length, GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramResourcefvNV)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramResourceiv)(GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum * props, GLsizei bufSize, GLsizei * length, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramStageiv)(GLuint program, GLenum shadertype, GLenum pname, GLint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramStringARB)(GLenum target, GLenum pname, void * string);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramStringNV)(GLuint id, GLenum pname, GLubyte * program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramSubroutineParameteruivNV)(GLenum target, GLuint index, GLuint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramiv)(GLuint program, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramivARB)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetProgramivNV)(GLuint id, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryBufferObjecti64v)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryBufferObjectiv)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryBufferObjectui64v)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryBufferObjectuiv)(GLuint id, GLuint buffer, GLenum pname, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryIndexediv)(GLenum target, GLuint index, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjecti64v)(GLuint id, GLenum pname, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjecti64vEXT)(GLuint id, GLenum pname, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjectiv)(GLuint id, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjectivARB)(GLuint id, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjectivEXT)(GLuint id, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjectui64v)(GLuint id, GLenum pname, GLuint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjectui64vEXT)(GLuint id, GLenum pname, GLuint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjectuiv)(GLuint id, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjectuivARB)(GLuint id, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryObjectuivEXT)(GLuint id, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryiv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryivARB)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetQueryivEXT)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetRenderbufferParameterivEXT)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetRenderbufferParameterivOES)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSamplerParameterIiv)(GLuint sampler, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSamplerParameterIivEXT)(GLuint sampler, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSamplerParameterIivOES)(GLuint sampler, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSamplerParameterIuiv)(GLuint sampler, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSamplerParameterIuivEXT)(GLuint sampler, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSamplerParameterIuivOES)(GLuint sampler, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSamplerParameterfv)(GLuint sampler, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSamplerParameteriv)(GLuint sampler, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSemaphoreParameterui64vEXT)(GLuint semaphore, GLenum pname, GLuint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSeparableFilter)(GLenum target, GLenum format, GLenum type, void * row, void * column, void * span);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSeparableFilterEXT)(GLenum target, GLenum format, GLenum type, void * row, void * column, void * span);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetShaderInfoLog)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * infoLog);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint * range, GLint * precision);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetShaderSource)(GLuint shader, GLsizei bufSize, GLsizei * length, GLchar * source);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetShaderSourceARB)(GLhandleARB obj, GLsizei maxLength, GLsizei * length, GLcharARB * source);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetShaderiv)(GLuint shader, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetShadingRateImagePaletteNV)(GLuint viewport, GLuint entry, GLenum * rate);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetShadingRateSampleLocationivNV)(GLenum rate, GLuint samples, GLuint index, GLint * location);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSharpenTexFuncSGIS)(GLenum target, GLfloat * points);
+
+EPOXY_PUBLIC GLushort (EPOXY_CALLSPEC *epoxy_glGetStageIndexNV)(GLenum shadertype);
+
+EPOXY_PUBLIC const GLubyte * (EPOXY_CALLSPEC *epoxy_glGetString)(GLenum name);
+
+EPOXY_PUBLIC const GLubyte * (EPOXY_CALLSPEC *epoxy_glGetStringi)(GLenum name, GLuint index);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGetSubroutineIndex)(GLuint program, GLenum shadertype, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetSubroutineUniformLocation)(GLuint program, GLenum shadertype, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSynciv)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetSyncivAPPLE)(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexBumpParameterfvATI)(GLenum pname, GLfloat * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexBumpParameterivATI)(GLenum pname, GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexEnvfv)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexEnviv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexEnvxv)(GLenum target, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexEnvxvOES)(GLenum target, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexFilterFuncSGIS)(GLenum target, GLenum filter, GLfloat * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexGendv)(GLenum coord, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexGenfv)(GLenum coord, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexGenfvOES)(GLenum coord, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexGeniv)(GLenum coord, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexGenivOES)(GLenum coord, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexGenxvOES)(GLenum coord, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexLevelParameterxvOES)(GLenum target, GLint level, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterIiv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterIivEXT)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterIivOES)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterIuiv)(GLenum target, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterIuivEXT)(GLenum target, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterIuivOES)(GLenum target, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterPointervAPPLE)(GLenum target, GLenum pname, void ** params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterfv)(GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameteriv)(GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterxv)(GLenum target, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTexParameterxvOES)(GLenum target, GLenum pname, GLfixed * params);
+
+EPOXY_PUBLIC GLuint64 (EPOXY_CALLSPEC *epoxy_glGetTextureHandleARB)(GLuint texture);
+
+EPOXY_PUBLIC GLuint64 (EPOXY_CALLSPEC *epoxy_glGetTextureHandleIMG)(GLuint texture);
+
+EPOXY_PUBLIC GLuint64 (EPOXY_CALLSPEC *epoxy_glGetTextureHandleNV)(GLuint texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureImage)(GLuint texture, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureImageEXT)(GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureLevelParameterfv)(GLuint texture, GLint level, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureLevelParameterfvEXT)(GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureLevelParameteriv)(GLuint texture, GLint level, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureLevelParameterivEXT)(GLuint texture, GLenum target, GLint level, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureParameterIiv)(GLuint texture, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureParameterIivEXT)(GLuint texture, GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureParameterIuiv)(GLuint texture, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureParameterIuivEXT)(GLuint texture, GLenum target, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureParameterfv)(GLuint texture, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureParameterfvEXT)(GLuint texture, GLenum target, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureParameteriv)(GLuint texture, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureParameterivEXT)(GLuint texture, GLenum target, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC GLuint64 (EPOXY_CALLSPEC *epoxy_glGetTextureSamplerHandleARB)(GLuint texture, GLuint sampler);
+
+EPOXY_PUBLIC GLuint64 (EPOXY_CALLSPEC *epoxy_glGetTextureSamplerHandleIMG)(GLuint texture, GLuint sampler);
+
+EPOXY_PUBLIC GLuint64 (EPOXY_CALLSPEC *epoxy_glGetTextureSamplerHandleNV)(GLuint texture, GLuint sampler);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTextureSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTrackMatrixivNV)(GLenum target, GLuint address, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTransformFeedbackVarying)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTransformFeedbackVaryingEXT)(GLuint program, GLuint index, GLsizei bufSize, GLsizei * length, GLsizei * size, GLenum * type, GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTransformFeedbackVaryingNV)(GLuint program, GLuint index, GLint * location);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTransformFeedbacki64_v)(GLuint xfb, GLenum pname, GLuint index, GLint64 * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTransformFeedbacki_v)(GLuint xfb, GLenum pname, GLuint index, GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTransformFeedbackiv)(GLuint xfb, GLenum pname, GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetTranslatedShaderSourceANGLE)(GLuint shader, GLsizei bufsize, GLsizei * length, GLchar * source);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glGetUniformBlockIndex)(GLuint program, const GLchar * uniformBlockName);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetUniformBufferSizeEXT)(GLuint program, GLint location);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformIndices)(GLuint program, GLsizei uniformCount, const GLchar *const* uniformNames, GLuint * uniformIndices);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetUniformLocation)(GLuint program, const GLchar * name);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetUniformLocationARB)(GLhandleARB programObj, const GLcharARB * name);
+
+EPOXY_PUBLIC GLintptr (EPOXY_CALLSPEC *epoxy_glGetUniformOffsetEXT)(GLuint program, GLint location);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformSubroutineuiv)(GLenum shadertype, GLint location, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformdv)(GLuint program, GLint location, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformfv)(GLuint program, GLint location, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformfvARB)(GLhandleARB programObj, GLint location, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformi64vARB)(GLuint program, GLint location, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformi64vNV)(GLuint program, GLint location, GLint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformiv)(GLuint program, GLint location, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformivARB)(GLhandleARB programObj, GLint location, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformui64vARB)(GLuint program, GLint location, GLuint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformui64vNV)(GLuint program, GLint location, GLuint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformuiv)(GLuint program, GLint location, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUniformuivEXT)(GLuint program, GLint location, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUnsignedBytei_vEXT)(GLenum target, GLuint index, GLubyte * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetUnsignedBytevEXT)(GLenum pname, GLubyte * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVariantArrayObjectfvATI)(GLuint id, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVariantArrayObjectivATI)(GLuint id, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVariantBooleanvEXT)(GLuint id, GLenum value, GLboolean * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVariantFloatvEXT)(GLuint id, GLenum value, GLfloat * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVariantIntegervEXT)(GLuint id, GLenum value, GLint * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVariantPointervEXT)(GLuint id, GLenum value, void ** data);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glGetVaryingLocationNV)(GLuint program, const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexArrayIndexed64iv)(GLuint vaobj, GLuint index, GLenum pname, GLint64 * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexArrayIndexediv)(GLuint vaobj, GLuint index, GLenum pname, GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexArrayIntegeri_vEXT)(GLuint vaobj, GLuint index, GLenum pname, GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexArrayIntegervEXT)(GLuint vaobj, GLenum pname, GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexArrayPointeri_vEXT)(GLuint vaobj, GLuint index, GLenum pname, void ** param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexArrayPointervEXT)(GLuint vaobj, GLenum pname, void ** param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexArrayiv)(GLuint vaobj, GLenum pname, GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribArrayObjectfvATI)(GLuint index, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribArrayObjectivATI)(GLuint index, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribIiv)(GLuint index, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribIivEXT)(GLuint index, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribIuiv)(GLuint index, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribIuivEXT)(GLuint index, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribLdv)(GLuint index, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribLdvEXT)(GLuint index, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribLi64vNV)(GLuint index, GLenum pname, GLint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribLui64vARB)(GLuint index, GLenum pname, GLuint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribLui64vNV)(GLuint index, GLenum pname, GLuint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribPointerv)(GLuint index, GLenum pname, void ** pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribPointervARB)(GLuint index, GLenum pname, void ** pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribPointervNV)(GLuint index, GLenum pname, void ** pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribdv)(GLuint index, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribdvARB)(GLuint index, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribdvNV)(GLuint index, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribfvARB)(GLuint index, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribfvNV)(GLuint index, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribiv)(GLuint index, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribivARB)(GLuint index, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVertexAttribivNV)(GLuint index, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVideoCaptureStreamdvNV)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVideoCaptureStreamfvNV)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVideoCaptureStreamivNV)(GLuint video_capture_slot, GLuint stream, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVideoCaptureivNV)(GLuint video_capture_slot, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVideoi64vNV)(GLuint video_slot, GLenum pname, GLint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVideoivNV)(GLuint video_slot, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVideoui64vNV)(GLuint video_slot, GLenum pname, GLuint64EXT * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetVideouivNV)(GLuint video_slot, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC GLVULKANPROCNV (EPOXY_CALLSPEC *epoxy_glGetVkProcAddrNV)(const GLchar * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnColorTable)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * table);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnColorTableARB)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * table);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnCompressedTexImage)(GLenum target, GLint lod, GLsizei bufSize, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnCompressedTexImageARB)(GLenum target, GLint lod, GLsizei bufSize, void * img);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnConvolutionFilter)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnConvolutionFilterARB)(GLenum target, GLenum format, GLenum type, GLsizei bufSize, void * image);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnHistogram)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnHistogramARB)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnMapdv)(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnMapdvARB)(GLenum target, GLenum query, GLsizei bufSize, GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnMapfv)(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnMapfvARB)(GLenum target, GLenum query, GLsizei bufSize, GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnMapiv)(GLenum target, GLenum query, GLsizei bufSize, GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnMapivARB)(GLenum target, GLenum query, GLsizei bufSize, GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnMinmax)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnMinmaxARB)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, void * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnPixelMapfv)(GLenum map, GLsizei bufSize, GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnPixelMapfvARB)(GLenum map, GLsizei bufSize, GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnPixelMapuiv)(GLenum map, GLsizei bufSize, GLuint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnPixelMapuivARB)(GLenum map, GLsizei bufSize, GLuint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnPixelMapusv)(GLenum map, GLsizei bufSize, GLushort * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnPixelMapusvARB)(GLenum map, GLsizei bufSize, GLushort * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnPolygonStipple)(GLsizei bufSize, GLubyte * pattern);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnPolygonStippleARB)(GLsizei bufSize, GLubyte * pattern);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnSeparableFilter)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void * row, GLsizei columnBufSize, void * column, void * span);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnSeparableFilterARB)(GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, void * row, GLsizei columnBufSize, void * column, void * span);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnTexImageARB)(GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, void * img);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformdv)(GLuint program, GLint location, GLsizei bufSize, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformdvARB)(GLuint program, GLint location, GLsizei bufSize, GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformfv)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformfvARB)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformfvEXT)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformfvKHR)(GLuint program, GLint location, GLsizei bufSize, GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformi64vARB)(GLuint program, GLint location, GLsizei bufSize, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformiv)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformivARB)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformivEXT)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformivKHR)(GLuint program, GLint location, GLsizei bufSize, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformui64vARB)(GLuint program, GLint location, GLsizei bufSize, GLuint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformuiv)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformuivARB)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGetnUniformuivKHR)(GLuint program, GLint location, GLsizei bufSize, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGlobalAlphaFactorbSUN)(GLbyte factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGlobalAlphaFactordSUN)(GLdouble factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGlobalAlphaFactorfSUN)(GLfloat factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGlobalAlphaFactoriSUN)(GLint factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGlobalAlphaFactorsSUN)(GLshort factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGlobalAlphaFactorubSUN)(GLubyte factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGlobalAlphaFactoruiSUN)(GLuint factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glGlobalAlphaFactorusSUN)(GLushort factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glHint)(GLenum target, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glHintPGI)(GLenum target, GLint mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glHistogram)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glHistogramEXT)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIglooInterfaceSGIX)(GLenum pname, const void * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImageTransformParameterfHP)(GLenum target, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImageTransformParameterfvHP)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImageTransformParameteriHP)(GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImageTransformParameterivHP)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImportMemoryFdEXT)(GLuint memory, GLuint64 size, GLenum handleType, GLint fd);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImportMemoryWin32HandleEXT)(GLuint memory, GLuint64 size, GLenum handleType, void * handle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImportMemoryWin32NameEXT)(GLuint memory, GLuint64 size, GLenum handleType, const void * name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImportSemaphoreFdEXT)(GLuint semaphore, GLenum handleType, GLint fd);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImportSemaphoreWin32HandleEXT)(GLuint semaphore, GLenum handleType, void * handle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glImportSemaphoreWin32NameEXT)(GLuint semaphore, GLenum handleType, const void * name);
+
+EPOXY_PUBLIC GLsync (EPOXY_CALLSPEC *epoxy_glImportSyncEXT)(GLenum external_sync_type, GLintptr external_sync, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexFormatNV)(GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexFuncEXT)(GLenum func, GLclampf ref);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexMask)(GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexMaterialEXT)(GLenum face, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexPointer)(GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexPointerListIBM)(GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexd)(GLdouble c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexdv)(const GLdouble * c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexf)(GLfloat c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexfv)(const GLfloat * c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexi)(GLint c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexiv)(const GLint * c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexs)(GLshort c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexsv)(const GLshort * c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexub)(GLubyte c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexubv)(const GLubyte * c);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexxOES)(GLfixed component);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glIndexxvOES)(const GLfixed * component);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInitNames)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInsertComponentEXT)(GLuint res, GLuint src, GLuint num);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInsertEventMarkerEXT)(GLsizei length, const GLchar * marker);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInstrumentsBufferSGIX)(GLsizei size, GLint * buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInterleavedArrays)(GLenum format, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInterpolatePathsNV)(GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInvalidateBufferData)(GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInvalidateBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInvalidateFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum * attachments);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInvalidateNamedFramebufferData)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInvalidateNamedFramebufferSubData)(GLuint framebuffer, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInvalidateSubFramebuffer)(GLenum target, GLsizei numAttachments, const GLenum * attachments, GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInvalidateTexImage)(GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glInvalidateTexSubImage)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsAsyncMarkerSGIX)(GLuint marker);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsBuffer)(GLuint buffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsBufferARB)(GLuint buffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsBufferResidentNV)(GLenum target);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsCommandListNV)(GLuint list);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsEnabled)(GLenum cap);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsEnabledIndexedEXT)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsEnabledi)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsEnablediEXT)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsEnablediNV)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsEnablediOES)(GLenum target, GLuint index);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsFenceAPPLE)(GLuint fence);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsFenceNV)(GLuint fence);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsFramebuffer)(GLuint framebuffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsFramebufferEXT)(GLuint framebuffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsFramebufferOES)(GLuint framebuffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsImageHandleResidentARB)(GLuint64 handle);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsImageHandleResidentNV)(GLuint64 handle);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsList)(GLuint list);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsMemoryObjectEXT)(GLuint memoryObject);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsNameAMD)(GLenum identifier, GLuint name);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsNamedBufferResidentNV)(GLuint buffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsNamedStringARB)(GLint namelen, const GLchar * name);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsObjectBufferATI)(GLuint buffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsOcclusionQueryNV)(GLuint id);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsPathNV)(GLuint path);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsPointInFillPathNV)(GLuint path, GLuint mask, GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsPointInStrokePathNV)(GLuint path, GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsProgram)(GLuint program);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsProgramARB)(GLuint program);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsProgramNV)(GLuint id);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsProgramPipeline)(GLuint pipeline);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsProgramPipelineEXT)(GLuint pipeline);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsQuery)(GLuint id);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsQueryARB)(GLuint id);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsQueryEXT)(GLuint id);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsRenderbuffer)(GLuint renderbuffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsRenderbufferEXT)(GLuint renderbuffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsRenderbufferOES)(GLuint renderbuffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsSampler)(GLuint sampler);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsSemaphoreEXT)(GLuint semaphore);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsShader)(GLuint shader);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsStateNV)(GLuint state);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsSync)(GLsync sync);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsSyncAPPLE)(GLsync sync);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsTexture)(GLuint texture);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsTextureEXT)(GLuint texture);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsTextureHandleResidentARB)(GLuint64 handle);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsTextureHandleResidentNV)(GLuint64 handle);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsTransformFeedback)(GLuint id);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsTransformFeedbackNV)(GLuint id);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsVariantEnabledEXT)(GLuint id, GLenum cap);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsVertexArray)(GLuint array);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsVertexArrayAPPLE)(GLuint array);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsVertexArrayOES)(GLuint array);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glIsVertexAttribEnabledAPPLE)(GLuint index, GLenum pname);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLGPUCopyImageSubDataNVX)(GLuint sourceGpu, GLbitfield destinationGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srxY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLGPUInterlockNVX)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLGPUNamedBufferSubDataNVX)(GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLabelObjectEXT)(GLenum type, GLuint object, GLsizei length, const GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightEnviSGIX)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightModelf)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightModelfv)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightModeli)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightModeliv)(GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightModelx)(GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightModelxOES)(GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightModelxv)(GLenum pname, const GLfixed * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightModelxvOES)(GLenum pname, const GLfixed * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightf)(GLenum light, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightfv)(GLenum light, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLighti)(GLenum light, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightiv)(GLenum light, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightx)(GLenum light, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightxOES)(GLenum light, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightxv)(GLenum light, GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLightxvOES)(GLenum light, GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLineStipple)(GLint factor, GLushort pattern);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLineWidth)(GLfloat width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLineWidthx)(GLfixed width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLineWidthxOES)(GLfixed width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLinkProgram)(GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLinkProgramARB)(GLhandleARB programObj);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glListBase)(GLuint base);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glListDrawCommandsStatesClientNV)(GLuint list, GLuint segment, const void ** indirects, const GLsizei * sizes, const GLuint * states, const GLuint * fbos, GLuint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glListParameterfSGIX)(GLuint list, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glListParameterfvSGIX)(GLuint list, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glListParameteriSGIX)(GLuint list, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glListParameterivSGIX)(GLuint list, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadIdentity)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadIdentityDeformationMapSGIX)(GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadMatrixd)(const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadMatrixf)(const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadMatrixx)(const GLfixed * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadMatrixxOES)(const GLfixed * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadName)(GLuint name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadPaletteFromModelViewMatrixOES)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadProgramNV)(GLenum target, GLuint id, GLsizei len, const GLubyte * program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadTransposeMatrixd)(const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadTransposeMatrixdARB)(const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadTransposeMatrixf)(const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadTransposeMatrixfARB)(const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLoadTransposeMatrixxOES)(const GLfixed * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLockArraysEXT)(GLint first, GLsizei count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glLogicOp)(GLenum opcode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeBufferNonResidentNV)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeBufferResidentNV)(GLenum target, GLenum access);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeImageHandleNonResidentARB)(GLuint64 handle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeImageHandleNonResidentNV)(GLuint64 handle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeImageHandleResidentARB)(GLuint64 handle, GLenum access);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeImageHandleResidentNV)(GLuint64 handle, GLenum access);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeNamedBufferNonResidentNV)(GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeNamedBufferResidentNV)(GLuint buffer, GLenum access);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeTextureHandleNonResidentARB)(GLuint64 handle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeTextureHandleNonResidentNV)(GLuint64 handle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeTextureHandleResidentARB)(GLuint64 handle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMakeTextureHandleResidentNV)(GLuint64 handle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMap1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMap1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMap1xOES)(GLenum target, GLfixed u1, GLfixed u2, GLint stride, GLint order, GLfixed points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMap2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMap2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMap2xOES)(GLenum target, GLfixed u1, GLfixed u2, GLint ustride, GLint uorder, GLfixed v1, GLfixed v2, GLint vstride, GLint vorder, GLfixed points);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapBuffer)(GLenum target, GLenum access);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapBufferARB)(GLenum target, GLenum access);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapBufferOES)(GLenum target, GLenum access);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapBufferRange)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapBufferRangeEXT)(GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapControlPointsNV)(GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const void * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapGrid1d)(GLint un, GLdouble u1, GLdouble u2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapGrid1f)(GLint un, GLfloat u1, GLfloat u2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapGrid1xOES)(GLint n, GLfixed u1, GLfixed u2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapGrid2xOES)(GLint n, GLfixed u1, GLfixed u2, GLfixed v1, GLfixed v2);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapNamedBuffer)(GLuint buffer, GLenum access);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapNamedBufferEXT)(GLuint buffer, GLenum access);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapNamedBufferRange)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapNamedBufferRangeEXT)(GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapObjectBufferATI)(GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapParameterfvNV)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapParameterivNV)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void * (EPOXY_CALLSPEC *epoxy_glMapTexture2DINTEL)(GLuint texture, GLint level, GLbitfield access, GLint * stride, GLenum * layout);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapVertexAttrib1dAPPLE)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapVertexAttrib1fAPPLE)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapVertexAttrib2dAPPLE)(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMapVertexAttrib2fAPPLE)(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaterialf)(GLenum face, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaterialfv)(GLenum face, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMateriali)(GLenum face, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaterialiv)(GLenum face, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaterialx)(GLenum face, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaterialxOES)(GLenum face, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaterialxv)(GLenum face, GLenum pname, const GLfixed * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaterialxvOES)(GLenum face, GLenum pname, const GLfixed * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixFrustumEXT)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixIndexPointerARB)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixIndexPointerOES)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixIndexubvARB)(GLint size, const GLubyte * indices);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixIndexuivARB)(GLint size, const GLuint * indices);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixIndexusvARB)(GLint size, const GLushort * indices);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixLoad3x2fNV)(GLenum matrixMode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixLoad3x3fNV)(GLenum matrixMode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixLoadIdentityEXT)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixLoadTranspose3x3fNV)(GLenum matrixMode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixLoadTransposedEXT)(GLenum mode, const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixLoadTransposefEXT)(GLenum mode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixLoaddEXT)(GLenum mode, const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixLoadfEXT)(GLenum mode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixMode)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixMult3x2fNV)(GLenum matrixMode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixMult3x3fNV)(GLenum matrixMode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixMultTranspose3x3fNV)(GLenum matrixMode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixMultTransposedEXT)(GLenum mode, const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixMultTransposefEXT)(GLenum mode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixMultdEXT)(GLenum mode, const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixMultfEXT)(GLenum mode, const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixOrthoEXT)(GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixPopEXT)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixPushEXT)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixRotatedEXT)(GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixRotatefEXT)(GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixScaledEXT)(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixScalefEXT)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixTranslatedEXT)(GLenum mode, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMatrixTranslatefEXT)(GLenum mode, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaxShaderCompilerThreadsARB)(GLuint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMaxShaderCompilerThreadsKHR)(GLuint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMemoryBarrier)(GLbitfield barriers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMemoryBarrierByRegion)(GLbitfield barriers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMemoryBarrierEXT)(GLbitfield barriers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMemoryObjectParameterivEXT)(GLuint memoryObject, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMinSampleShading)(GLfloat value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMinSampleShadingARB)(GLfloat value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMinSampleShadingOES)(GLfloat value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMinmax)(GLenum target, GLenum internalformat, GLboolean sink);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMinmaxEXT)(GLenum target, GLenum internalformat, GLboolean sink);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultMatrixd)(const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultMatrixf)(const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultMatrixx)(const GLfixed * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultMatrixxOES)(const GLfixed * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultTransposeMatrixd)(const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultTransposeMatrixdARB)(const GLdouble * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultTransposeMatrixf)(const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultTransposeMatrixfARB)(const GLfloat * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultTransposeMatrixxOES)(const GLfixed * m);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArrays)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei drawcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArraysEXT)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArraysIndirect)(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArraysIndirectAMD)(GLenum mode, const void * indirect, GLsizei primcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArraysIndirectBindlessCountNV)(GLenum mode, const void * indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArraysIndirectBindlessNV)(GLenum mode, const void * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArraysIndirectCount)(GLenum mode, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArraysIndirectCountARB)(GLenum mode, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawArraysIndirectEXT)(GLenum mode, const void * indirect, GLsizei drawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementArrayAPPLE)(GLenum mode, const GLint * first, const GLsizei * count, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElements)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsBaseVertex)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei drawcount, const GLint * basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsBaseVertexEXT)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei primcount, const GLint * basevertex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsEXT)(GLenum mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsIndirect)(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsIndirectAMD)(GLenum mode, GLenum type, const void * indirect, GLsizei primcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsIndirectBindlessCountNV)(GLenum mode, GLenum type, const void * indirect, GLsizei drawCount, GLsizei maxDrawCount, GLsizei stride, GLint vertexBufferCount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsIndirectBindlessNV)(GLenum mode, GLenum type, const void * indirect, GLsizei drawCount, GLsizei stride, GLint vertexBufferCount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsIndirectCount)(GLenum mode, GLenum type, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsIndirectCountARB)(GLenum mode, GLenum type, const void * indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawElementsIndirectEXT)(GLenum mode, GLenum type, const void * indirect, GLsizei drawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawMeshTasksIndirectCountNV)(GLintptr indirect, GLintptr drawcount, GLsizei maxdrawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawMeshTasksIndirectNV)(GLintptr indirect, GLsizei drawcount, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiDrawRangeElementArrayAPPLE)(GLenum mode, GLuint start, GLuint end, const GLint * first, const GLsizei * count, GLsizei primcount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiModeDrawArraysIBM)(const GLenum * mode, const GLint * first, const GLsizei * count, GLsizei primcount, GLint modestride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiModeDrawElementsIBM)(const GLenum * mode, const GLsizei * count, GLenum type, const void *const* indices, GLsizei primcount, GLint modestride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexBufferEXT)(GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1bOES)(GLenum texture, GLbyte s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1bvOES)(GLenum texture, const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1d)(GLenum target, GLdouble s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1dARB)(GLenum target, GLdouble s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1dv)(GLenum target, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1dvARB)(GLenum target, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1f)(GLenum target, GLfloat s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1fARB)(GLenum target, GLfloat s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1fv)(GLenum target, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1fvARB)(GLenum target, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1hNV)(GLenum target, GLhalfNV s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1hvNV)(GLenum target, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1i)(GLenum target, GLint s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1iARB)(GLenum target, GLint s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1iv)(GLenum target, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1ivARB)(GLenum target, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1s)(GLenum target, GLshort s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1sARB)(GLenum target, GLshort s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1sv)(GLenum target, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1svARB)(GLenum target, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1xOES)(GLenum texture, GLfixed s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord1xvOES)(GLenum texture, const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2bOES)(GLenum texture, GLbyte s, GLbyte t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2bvOES)(GLenum texture, const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2d)(GLenum target, GLdouble s, GLdouble t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2dARB)(GLenum target, GLdouble s, GLdouble t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2dv)(GLenum target, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2dvARB)(GLenum target, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2f)(GLenum target, GLfloat s, GLfloat t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2fARB)(GLenum target, GLfloat s, GLfloat t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2fv)(GLenum target, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2fvARB)(GLenum target, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2hNV)(GLenum target, GLhalfNV s, GLhalfNV t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2hvNV)(GLenum target, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2i)(GLenum target, GLint s, GLint t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2iARB)(GLenum target, GLint s, GLint t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2iv)(GLenum target, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2ivARB)(GLenum target, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2s)(GLenum target, GLshort s, GLshort t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2sARB)(GLenum target, GLshort s, GLshort t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2sv)(GLenum target, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2svARB)(GLenum target, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2xOES)(GLenum texture, GLfixed s, GLfixed t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord2xvOES)(GLenum texture, const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3bOES)(GLenum texture, GLbyte s, GLbyte t, GLbyte r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3bvOES)(GLenum texture, const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3d)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3dARB)(GLenum target, GLdouble s, GLdouble t, GLdouble r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3dv)(GLenum target, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3dvARB)(GLenum target, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3f)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3fARB)(GLenum target, GLfloat s, GLfloat t, GLfloat r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3fv)(GLenum target, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3fvARB)(GLenum target, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3hNV)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3hvNV)(GLenum target, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3i)(GLenum target, GLint s, GLint t, GLint r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3iARB)(GLenum target, GLint s, GLint t, GLint r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3iv)(GLenum target, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3ivARB)(GLenum target, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3s)(GLenum target, GLshort s, GLshort t, GLshort r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3sARB)(GLenum target, GLshort s, GLshort t, GLshort r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3sv)(GLenum target, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3svARB)(GLenum target, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3xOES)(GLenum texture, GLfixed s, GLfixed t, GLfixed r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord3xvOES)(GLenum texture, const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4bOES)(GLenum texture, GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4bvOES)(GLenum texture, const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4d)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4dARB)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4dv)(GLenum target, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4dvARB)(GLenum target, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4f)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4fARB)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4fv)(GLenum target, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4fvARB)(GLenum target, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4hNV)(GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4hvNV)(GLenum target, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4i)(GLenum target, GLint s, GLint t, GLint r, GLint q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4iARB)(GLenum target, GLint s, GLint t, GLint r, GLint q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4iv)(GLenum target, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4ivARB)(GLenum target, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4s)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4sARB)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4sv)(GLenum target, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4svARB)(GLenum target, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4x)(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4xOES)(GLenum texture, GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoord4xvOES)(GLenum texture, const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordP1ui)(GLenum texture, GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordP1uiv)(GLenum texture, GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordP2ui)(GLenum texture, GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordP2uiv)(GLenum texture, GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordP3ui)(GLenum texture, GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordP3uiv)(GLenum texture, GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordP4ui)(GLenum texture, GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordP4uiv)(GLenum texture, GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexCoordPointerEXT)(GLenum texunit, GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexEnvfEXT)(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexEnvfvEXT)(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexEnviEXT)(GLenum texunit, GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexEnvivEXT)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexGendEXT)(GLenum texunit, GLenum coord, GLenum pname, GLdouble param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexGendvEXT)(GLenum texunit, GLenum coord, GLenum pname, const GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexGenfEXT)(GLenum texunit, GLenum coord, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexGenfvEXT)(GLenum texunit, GLenum coord, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexGeniEXT)(GLenum texunit, GLenum coord, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexGenivEXT)(GLenum texunit, GLenum coord, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexImage1DEXT)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexImage2DEXT)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexImage3DEXT)(GLenum texunit, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexParameterIivEXT)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexParameterIuivEXT)(GLenum texunit, GLenum target, GLenum pname, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexParameterfEXT)(GLenum texunit, GLenum target, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexParameterfvEXT)(GLenum texunit, GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexParameteriEXT)(GLenum texunit, GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexParameterivEXT)(GLenum texunit, GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexRenderbufferEXT)(GLenum texunit, GLenum target, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexSubImage1DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexSubImage2DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMultiTexSubImage3DEXT)(GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastBarrierNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastBlitFramebufferNV)(GLuint srcGpu, GLuint dstGpu, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastBufferSubDataNV)(GLbitfield gpuMask, GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastCopyBufferSubDataNV)(GLuint readGpu, GLbitfield writeGpuMask, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastCopyImageSubDataNV)(GLuint srcGpu, GLbitfield dstGpuMask, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei srcWidth, GLsizei srcHeight, GLsizei srcDepth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastFramebufferSampleLocationsfvNV)(GLuint gpu, GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastGetQueryObjecti64vNV)(GLuint gpu, GLuint id, GLenum pname, GLint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastGetQueryObjectivNV)(GLuint gpu, GLuint id, GLenum pname, GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastGetQueryObjectui64vNV)(GLuint gpu, GLuint id, GLenum pname, GLuint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastGetQueryObjectuivNV)(GLuint gpu, GLuint id, GLenum pname, GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastScissorArrayvNVX)(GLuint gpu, GLuint first, GLsizei count, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastViewportArrayvNVX)(GLuint gpu, GLuint first, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastViewportPositionWScaleNVX)(GLuint gpu, GLuint index, GLfloat xcoeff, GLfloat ycoeff);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glMulticastWaitSyncNV)(GLuint signalGpu, GLbitfield waitGpuMask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferAttachMemoryNV)(GLuint buffer, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferData)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferDataEXT)(GLuint buffer, GLsizeiptr size, const void * data, GLenum usage);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferPageCommitmentARB)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferPageCommitmentEXT)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLboolean commit);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferStorage)(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferStorageEXT)(GLuint buffer, GLsizeiptr size, const void * data, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferStorageExternalEXT)(GLuint buffer, GLintptr offset, GLsizeiptr size, GLeglClientBufferEXT clientBuffer, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferStorageMemEXT)(GLuint buffer, GLsizeiptr size, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferSubData)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedBufferSubDataEXT)(GLuint buffer, GLintptr offset, GLsizeiptr size, const void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedCopyBufferSubDataEXT)(GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferDrawBuffer)(GLuint framebuffer, GLenum buf);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferDrawBuffers)(GLuint framebuffer, GLsizei n, const GLenum * bufs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferParameteri)(GLuint framebuffer, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferParameteriEXT)(GLuint framebuffer, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferReadBuffer)(GLuint framebuffer, GLenum src);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferRenderbuffer)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferRenderbufferEXT)(GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferSampleLocationsfvARB)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferSampleLocationsfvNV)(GLuint framebuffer, GLuint start, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferSamplePositionsfvAMD)(GLuint framebuffer, GLuint numsamples, GLuint pixelindex, const GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferTexture)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferTexture1DEXT)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferTexture2DEXT)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferTexture3DEXT)(GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferTextureEXT)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferTextureFaceEXT)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferTextureLayer)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedFramebufferTextureLayerEXT)(GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameter4dEXT)(GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameter4dvEXT)(GLuint program, GLenum target, GLuint index, const GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameter4fEXT)(GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameter4fvEXT)(GLuint program, GLenum target, GLuint index, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameterI4iEXT)(GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameterI4ivEXT)(GLuint program, GLenum target, GLuint index, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameterI4uiEXT)(GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameterI4uivEXT)(GLuint program, GLenum target, GLuint index, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParameters4fvEXT)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParametersI4ivEXT)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramLocalParametersI4uivEXT)(GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedProgramStringEXT)(GLuint program, GLenum target, GLenum format, GLsizei len, const void * string);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedRenderbufferStorage)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedRenderbufferStorageEXT)(GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedRenderbufferStorageMultisample)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedRenderbufferStorageMultisampleAdvancedAMD)(GLuint renderbuffer, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedRenderbufferStorageMultisampleCoverageEXT)(GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedRenderbufferStorageMultisampleEXT)(GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNamedStringARB)(GLenum type, GLint namelen, const GLchar * name, GLint stringlen, const GLchar * string);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNewList)(GLuint list, GLenum mode);
+
+EPOXY_PUBLIC GLuint (EPOXY_CALLSPEC *epoxy_glNewObjectBufferATI)(GLsizei size, const void * pointer, GLenum usage);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3b)(GLbyte nx, GLbyte ny, GLbyte nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3bv)(const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3d)(GLdouble nx, GLdouble ny, GLdouble nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3f)(GLfloat nx, GLfloat ny, GLfloat nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3fVertex3fSUN)(GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3fVertex3fvSUN)(const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3hNV)(GLhalfNV nx, GLhalfNV ny, GLhalfNV nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3i)(GLint nx, GLint ny, GLint nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3s)(GLshort nx, GLshort ny, GLshort nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3x)(GLfixed nx, GLfixed ny, GLfixed nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3xOES)(GLfixed nx, GLfixed ny, GLfixed nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormal3xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalFormatNV)(GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalP3ui)(GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalP3uiv)(GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalPointer)(GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalPointerListIBM)(GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalPointervINTEL)(GLenum type, const void ** pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3bATI)(GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3bvATI)(GLenum stream, const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3dATI)(GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3dvATI)(GLenum stream, const GLdouble * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3fATI)(GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3fvATI)(GLenum stream, const GLfloat * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3iATI)(GLenum stream, GLint nx, GLint ny, GLint nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3ivATI)(GLenum stream, const GLint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3sATI)(GLenum stream, GLshort nx, GLshort ny, GLshort nz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glNormalStream3svATI)(GLenum stream, const GLshort * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glObjectLabel)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glObjectLabelKHR)(GLenum identifier, GLuint name, GLsizei length, const GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glObjectPtrLabel)(const void * ptr, GLsizei length, const GLchar * label);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glObjectPtrLabelKHR)(const void * ptr, GLsizei length, const GLchar * label);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glObjectPurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glObjectUnpurgeableAPPLE)(GLenum objectType, GLuint name, GLenum option);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glOrtho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glOrthof)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glOrthofOES)(GLfloat l, GLfloat r, GLfloat b, GLfloat t, GLfloat n, GLfloat f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glOrthox)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glOrthoxOES)(GLfixed l, GLfixed r, GLfixed b, GLfixed t, GLfixed n, GLfixed f);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPNTrianglesfATI)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPNTrianglesiATI)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPassTexCoordATI)(GLuint dst, GLuint coord, GLenum swizzle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPassThrough)(GLfloat token);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPassThroughxOES)(GLfixed token);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPatchParameterfv)(GLenum pname, const GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPatchParameteri)(GLenum pname, GLint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPatchParameteriEXT)(GLenum pname, GLint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPatchParameteriOES)(GLenum pname, GLint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathColorGenNV)(GLenum color, GLenum genMode, GLenum colorFormat, const GLfloat * coeffs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathCommandsNV)(GLuint path, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const void * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathCoordsNV)(GLuint path, GLsizei numCoords, GLenum coordType, const void * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathCoverDepthFuncNV)(GLenum func);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathDashArrayNV)(GLuint path, GLsizei dashCount, const GLfloat * dashArray);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathFogGenNV)(GLenum genMode);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glPathGlyphIndexArrayNV)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glPathGlyphIndexRangeNV)(GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathGlyphRangeNV)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathGlyphsNV)(GLuint firstPathName, GLenum fontTarget, const void * fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void * charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glPathMemoryGlyphIndexArrayNV)(GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void * fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathParameterfNV)(GLuint path, GLenum pname, GLfloat value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathParameterfvNV)(GLuint path, GLenum pname, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathParameteriNV)(GLuint path, GLenum pname, GLint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathParameterivNV)(GLuint path, GLenum pname, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathStencilDepthOffsetNV)(GLfloat factor, GLfloat units);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathStencilFuncNV)(GLenum func, GLint ref, GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathStringNV)(GLuint path, GLenum format, GLsizei length, const void * pathString);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathSubCommandsNV)(GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte * commands, GLsizei numCoords, GLenum coordType, const void * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathSubCoordsNV)(GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPathTexGenNV)(GLenum texCoordSet, GLenum genMode, GLint components, const GLfloat * coeffs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPauseTransformFeedback)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPauseTransformFeedbackNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelDataRangeNV)(GLenum target, GLsizei length, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelMapfv)(GLenum map, GLsizei mapsize, const GLfloat * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelMapuiv)(GLenum map, GLsizei mapsize, const GLuint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelMapusv)(GLenum map, GLsizei mapsize, const GLushort * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelMapx)(GLenum map, GLint size, const GLfixed * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelStoref)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelStorei)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelStorex)(GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTexGenParameterfSGIS)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTexGenParameterfvSGIS)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTexGenParameteriSGIS)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTexGenParameterivSGIS)(GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTexGenSGIX)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTransferf)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTransferi)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTransferxOES)(GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTransformParameterfEXT)(GLenum target, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTransformParameterfvEXT)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTransformParameteriEXT)(GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelTransformParameterivEXT)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelZoom)(GLfloat xfactor, GLfloat yfactor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPixelZoomxOES)(GLfixed xfactor, GLfixed yfactor);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glPointAlongPathNV)(GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat * x, GLfloat * y, GLfloat * tangentX, GLfloat * tangentY);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterf)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterfARB)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterfEXT)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterfSGIS)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterfv)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterfvARB)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterfvEXT)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterfvSGIS)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameteri)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameteriNV)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameteriv)(GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterivNV)(GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterx)(GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterxOES)(GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterxv)(GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointParameterxvOES)(GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointSize)(GLfloat size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointSizePointerOES)(GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointSizex)(GLfixed size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPointSizexOES)(GLfixed size);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glPollAsyncSGIX)(GLuint * markerp);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glPollInstrumentsSGIX)(GLint * marker_p);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonMode)(GLenum face, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonModeNV)(GLenum face, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonOffset)(GLfloat factor, GLfloat units);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonOffsetClamp)(GLfloat factor, GLfloat units, GLfloat clamp);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonOffsetClampEXT)(GLfloat factor, GLfloat units, GLfloat clamp);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonOffsetEXT)(GLfloat factor, GLfloat bias);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonOffsetx)(GLfixed factor, GLfixed units);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonOffsetxOES)(GLfixed factor, GLfixed units);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPolygonStipple)(const GLubyte * mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPopAttrib)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPopClientAttrib)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPopDebugGroup)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPopDebugGroupKHR)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPopGroupMarkerEXT)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPopMatrix)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPopName)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPresentFrameDualFillNV)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPresentFrameKeyedNV)(GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrimitiveBoundingBox)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrimitiveBoundingBoxARB)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrimitiveBoundingBoxEXT)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrimitiveBoundingBoxOES)(GLfloat minX, GLfloat minY, GLfloat minZ, GLfloat minW, GLfloat maxX, GLfloat maxY, GLfloat maxZ, GLfloat maxW);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrimitiveRestartIndex)(GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrimitiveRestartIndexNV)(GLuint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrimitiveRestartNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrioritizeTextures)(GLsizei n, const GLuint * textures, const GLfloat * priorities);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrioritizeTexturesEXT)(GLsizei n, const GLuint * textures, const GLclampf * priorities);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPrioritizeTexturesxOES)(GLsizei n, const GLuint * textures, const GLfixed * priorities);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramBinary)(GLuint program, GLenum binaryFormat, const void * binary, GLsizei length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramBinaryOES)(GLuint program, GLenum binaryFormat, const void * binary, GLint length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramBufferParametersIivNV)(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramBufferParametersIuivNV)(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramBufferParametersfvNV)(GLenum target, GLuint bindingIndex, GLuint wordIndex, GLsizei count, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameter4dARB)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameter4dvARB)(GLenum target, GLuint index, const GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameter4fARB)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameter4fvARB)(GLenum target, GLuint index, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameterI4iNV)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameterI4ivNV)(GLenum target, GLuint index, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameterI4uiNV)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameterI4uivNV)(GLenum target, GLuint index, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParametersI4ivNV)(GLenum target, GLuint index, GLsizei count, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramEnvParametersI4uivNV)(GLenum target, GLuint index, GLsizei count, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameter4dARB)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameter4dvARB)(GLenum target, GLuint index, const GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameter4fARB)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameter4fvARB)(GLenum target, GLuint index, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameterI4iNV)(GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameterI4ivNV)(GLenum target, GLuint index, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameterI4uiNV)(GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameterI4uivNV)(GLenum target, GLuint index, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParameters4fvEXT)(GLenum target, GLuint index, GLsizei count, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParametersI4ivNV)(GLenum target, GLuint index, GLsizei count, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramLocalParametersI4uivNV)(GLenum target, GLuint index, GLsizei count, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramNamedParameter4dNV)(GLuint id, GLsizei len, const GLubyte * name, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramNamedParameter4dvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramNamedParameter4fNV)(GLuint id, GLsizei len, const GLubyte * name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramNamedParameter4fvNV)(GLuint id, GLsizei len, const GLubyte * name, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameter4dNV)(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameter4dvNV)(GLenum target, GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameter4fNV)(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameter4fvNV)(GLenum target, GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameteri)(GLuint program, GLenum pname, GLint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameteriARB)(GLuint program, GLenum pname, GLint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameteriEXT)(GLuint program, GLenum pname, GLint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameters4dvNV)(GLenum target, GLuint index, GLsizei count, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramParameters4fvNV)(GLenum target, GLuint index, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramPathFragmentInputGenNV)(GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat * coeffs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramStringARB)(GLenum target, GLenum format, GLsizei len, const void * string);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramSubroutineParametersuivNV)(GLenum target, GLsizei count, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1d)(GLuint program, GLint location, GLdouble v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1dEXT)(GLuint program, GLint location, GLdouble x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1dv)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1dvEXT)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1f)(GLuint program, GLint location, GLfloat v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1fEXT)(GLuint program, GLint location, GLfloat v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1fv)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1fvEXT)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1i)(GLuint program, GLint location, GLint v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1i64ARB)(GLuint program, GLint location, GLint64 x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1i64NV)(GLuint program, GLint location, GLint64EXT x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1i64vARB)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1i64vNV)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1iEXT)(GLuint program, GLint location, GLint v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1iv)(GLuint program, GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1ivEXT)(GLuint program, GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1ui)(GLuint program, GLint location, GLuint v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1ui64ARB)(GLuint program, GLint location, GLuint64 x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1ui64NV)(GLuint program, GLint location, GLuint64EXT x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1ui64vARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1ui64vNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1uiEXT)(GLuint program, GLint location, GLuint v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1uiv)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform1uivEXT)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2d)(GLuint program, GLint location, GLdouble v0, GLdouble v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2dEXT)(GLuint program, GLint location, GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2dv)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2dvEXT)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2f)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2fEXT)(GLuint program, GLint location, GLfloat v0, GLfloat v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2fv)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2fvEXT)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2i)(GLuint program, GLint location, GLint v0, GLint v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2i64ARB)(GLuint program, GLint location, GLint64 x, GLint64 y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2i64NV)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2i64vARB)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2i64vNV)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2iEXT)(GLuint program, GLint location, GLint v0, GLint v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2iv)(GLuint program, GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2ivEXT)(GLuint program, GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2ui)(GLuint program, GLint location, GLuint v0, GLuint v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2ui64ARB)(GLuint program, GLint location, GLuint64 x, GLuint64 y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2ui64NV)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2ui64vARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2ui64vNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2uiEXT)(GLuint program, GLint location, GLuint v0, GLuint v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2uiv)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform2uivEXT)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3d)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3dEXT)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3dv)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3dvEXT)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3fEXT)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3fv)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3fvEXT)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3i64ARB)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3i64NV)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3i64vARB)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3i64vNV)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3iEXT)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3iv)(GLuint program, GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3ivEXT)(GLuint program, GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3ui64ARB)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3ui64NV)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3ui64vARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3ui64vNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3uiEXT)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3uiv)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform3uivEXT)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4d)(GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4dEXT)(GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4dv)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4dvEXT)(GLuint program, GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4f)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4fEXT)(GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4fv)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4fvEXT)(GLuint program, GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4i)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4i64ARB)(GLuint program, GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4i64NV)(GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4i64vARB)(GLuint program, GLint location, GLsizei count, const GLint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4i64vNV)(GLuint program, GLint location, GLsizei count, const GLint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4iEXT)(GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4iv)(GLuint program, GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4ivEXT)(GLuint program, GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4ui)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4ui64ARB)(GLuint program, GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4ui64NV)(GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4ui64vARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4ui64vNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4uiEXT)(GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4uiv)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniform4uivEXT)(GLuint program, GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformHandleui64ARB)(GLuint program, GLint location, GLuint64 value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformHandleui64IMG)(GLuint program, GLint location, GLuint64 value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformHandleui64NV)(GLuint program, GLint location, GLuint64 value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformHandleui64vARB)(GLuint program, GLint location, GLsizei count, const GLuint64 * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformHandleui64vIMG)(GLuint program, GLint location, GLsizei count, const GLuint64 * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformHandleui64vNV)(GLuint program, GLint location, GLsizei count, const GLuint64 * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2x3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2x3dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2x3fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2x4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2x4dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix2x4fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3x2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3x2dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3x2fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3x4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3x4dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3x4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix3x4fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4x2dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4x2dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4x2fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4x2fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4x3dv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4x3dvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4x3fv)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformMatrix4x3fvEXT)(GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformui64NV)(GLuint program, GLint location, GLuint64EXT value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramUniformui64vNV)(GLuint program, GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProgramVertexLimitNV)(GLenum target, GLint limit);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProvokingVertex)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glProvokingVertexEXT)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPushAttrib)(GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPushClientAttrib)(GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPushClientAttribDefaultEXT)(GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPushDebugGroup)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPushDebugGroupKHR)(GLenum source, GLuint id, GLsizei length, const GLchar * message);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPushGroupMarkerEXT)(GLsizei length, const GLchar * marker);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPushMatrix)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glPushName)(GLuint name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glQueryCounter)(GLuint id, GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glQueryCounterEXT)(GLuint id, GLenum target);
+
+EPOXY_PUBLIC GLbitfield (EPOXY_CALLSPEC *epoxy_glQueryMatrixxOES)(GLfixed * mantissa, GLint * exponent);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glQueryObjectParameteruiAMD)(GLenum target, GLuint id, GLenum pname, GLuint param);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glQueryResourceNV)(GLenum queryType, GLint tagId, GLuint bufSize, GLint * buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glQueryResourceTagNV)(GLint tagId, const GLchar * tagString);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2d)(GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2f)(GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2i)(GLint x, GLint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2s)(GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2xOES)(GLfixed x, GLfixed y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos2xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3d)(GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3f)(GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3i)(GLint x, GLint y, GLint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3s)(GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3xOES)(GLfixed x, GLfixed y, GLfixed z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos3xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4i)(GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4xOES)(GLfixed x, GLfixed y, GLfixed z, GLfixed w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterPos4xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRasterSamplesEXT)(GLuint samples, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadBuffer)(GLenum src);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadBufferIndexedEXT)(GLenum src, GLint index);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadBufferNV)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadInstrumentsSGIX)(GLint marker);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadnPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadnPixelsARB)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadnPixelsEXT)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReadnPixelsKHR)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, void * data);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRectdv)(const GLdouble * v1, const GLdouble * v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRectfv)(const GLfloat * v1, const GLfloat * v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRecti)(GLint x1, GLint y1, GLint x2, GLint y2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRectiv)(const GLint * v1, const GLint * v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRectsv)(const GLshort * v1, const GLshort * v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRectxOES)(GLfixed x1, GLfixed y1, GLfixed x2, GLfixed y2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRectxvOES)(const GLfixed * v1, const GLfixed * v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReferencePlaneSGIX)(const GLdouble * equation);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glReleaseKeyedMutexWin32EXT)(GLuint memory, GLuint64 key);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReleaseShaderCompiler)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderGpuMaskNV)(GLbitfield mask);
+
+EPOXY_PUBLIC GLint (EPOXY_CALLSPEC *epoxy_glRenderMode)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageMultisampleANGLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageMultisampleAPPLE)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageMultisampleAdvancedAMD)(GLenum target, GLsizei samples, GLsizei storageSamples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageMultisampleCoverageNV)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageMultisampleEXT)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageMultisampleIMG)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageMultisampleNV)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRenderbufferStorageOES)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodePointerSUN)(GLenum type, GLsizei stride, const void ** pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeubSUN)(GLubyte code);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeubvSUN)(const GLubyte * code);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiColor3fVertex3fSUN)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiColor3fVertex3fvSUN)(const GLuint * rc, const GLfloat * c, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiColor4fNormal3fVertex3fSUN)(GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiColor4fNormal3fVertex3fvSUN)(const GLuint * rc, const GLfloat * c, const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiColor4ubVertex3fSUN)(GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiColor4ubVertex3fvSUN)(const GLuint * rc, const GLubyte * c, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiNormal3fVertex3fSUN)(GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiNormal3fVertex3fvSUN)(const GLuint * rc, const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiSUN)(GLuint code);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN)(GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN)(const GLuint * rc, const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN)(GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN)(const GLuint * rc, const GLfloat * tc, const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiTexCoord2fVertex3fSUN)(GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiTexCoord2fVertex3fvSUN)(const GLuint * rc, const GLfloat * tc, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiVertex3fSUN)(GLuint rc, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuiVertex3fvSUN)(const GLuint * rc, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeuivSUN)(const GLuint * code);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeusSUN)(GLushort code);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glReplacementCodeusvSUN)(const GLushort * code);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRequestResidentProgramsNV)(GLsizei n, const GLuint * programs);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResetHistogram)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResetHistogramEXT)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResetMemoryObjectParameterNV)(GLuint memory, GLenum pname);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResetMinmax)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResetMinmaxEXT)(GLenum target);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResizeBuffersMESA)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResolveDepthValuesNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResolveMultisampleFramebufferAPPLE)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResumeTransformFeedback)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glResumeTransformFeedbackNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRotatex)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glRotatexOES)(GLfixed angle, GLfixed x, GLfixed y, GLfixed z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleCoverage)(GLfloat value, GLboolean invert);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleCoverageARB)(GLfloat value, GLboolean invert);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleCoveragex)(GLclampx value, GLboolean invert);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleCoveragexOES)(GLclampx value, GLboolean invert);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleMapATI)(GLuint dst, GLuint interp, GLenum swizzle);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleMaskEXT)(GLclampf value, GLboolean invert);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleMaskIndexedNV)(GLuint index, GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleMaskSGIS)(GLclampf value, GLboolean invert);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSampleMaski)(GLuint maskNumber, GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplePatternEXT)(GLenum pattern);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplePatternSGIS)(GLenum pattern);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameterIiv)(GLuint sampler, GLenum pname, const GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameterIivEXT)(GLuint sampler, GLenum pname, const GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameterIivOES)(GLuint sampler, GLenum pname, const GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameterIuiv)(GLuint sampler, GLenum pname, const GLuint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameterIuivEXT)(GLuint sampler, GLenum pname, const GLuint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameterIuivOES)(GLuint sampler, GLenum pname, const GLuint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameterf)(GLuint sampler, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameterfv)(GLuint sampler, GLenum pname, const GLfloat * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameteri)(GLuint sampler, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSamplerParameteriv)(GLuint sampler, GLenum pname, const GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScaled)(GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScalef)(GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScalex)(GLfixed x, GLfixed y, GLfixed z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScalexOES)(GLfixed x, GLfixed y, GLfixed z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissor)(GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorArrayv)(GLuint first, GLsizei count, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorArrayvNV)(GLuint first, GLsizei count, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorArrayvOES)(GLuint first, GLsizei count, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorExclusiveArrayvNV)(GLuint first, GLsizei count, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorExclusiveNV)(GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorIndexed)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorIndexedNV)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorIndexedOES)(GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorIndexedv)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorIndexedvNV)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glScissorIndexedvOES)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3b)(GLbyte red, GLbyte green, GLbyte blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3bEXT)(GLbyte red, GLbyte green, GLbyte blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3bv)(const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3bvEXT)(const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3d)(GLdouble red, GLdouble green, GLdouble blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3dEXT)(GLdouble red, GLdouble green, GLdouble blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3dvEXT)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3f)(GLfloat red, GLfloat green, GLfloat blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3fEXT)(GLfloat red, GLfloat green, GLfloat blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3fvEXT)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3hNV)(GLhalfNV red, GLhalfNV green, GLhalfNV blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3i)(GLint red, GLint green, GLint blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3iEXT)(GLint red, GLint green, GLint blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3ivEXT)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3s)(GLshort red, GLshort green, GLshort blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3sEXT)(GLshort red, GLshort green, GLshort blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3svEXT)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3ub)(GLubyte red, GLubyte green, GLubyte blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3ubEXT)(GLubyte red, GLubyte green, GLubyte blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3ubv)(const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3ubvEXT)(const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3ui)(GLuint red, GLuint green, GLuint blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3uiEXT)(GLuint red, GLuint green, GLuint blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3uiv)(const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3uivEXT)(const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3us)(GLushort red, GLushort green, GLushort blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3usEXT)(GLushort red, GLushort green, GLushort blue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3usv)(const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColor3usvEXT)(const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColorFormatNV)(GLint size, GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColorP3ui)(GLenum type, GLuint color);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColorP3uiv)(GLenum type, const GLuint * color);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColorPointer)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColorPointerEXT)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSecondaryColorPointerListIBM)(GLint size, GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSelectBuffer)(GLsizei size, GLuint * buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSelectPerfMonitorCountersAMD)(GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint * counterList);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSemaphoreParameterui64vEXT)(GLuint semaphore, GLenum pname, const GLuint64 * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSeparableFilter2D)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * row, const void * column);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSeparableFilter2DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * row, const void * column);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSetFenceAPPLE)(GLuint fence);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSetFenceNV)(GLuint fence, GLenum condition);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSetFragmentShaderConstantATI)(GLuint dst, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSetInvariantEXT)(GLuint id, GLenum type, const void * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSetLocalConstantEXT)(GLuint id, GLenum type, const void * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSetMultisamplefvAMD)(GLenum pname, GLuint index, const GLfloat * val);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShadeModel)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShaderBinary)(GLsizei count, const GLuint * shaders, GLenum binaryformat, const void * binary, GLsizei length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShaderOp1EXT)(GLenum op, GLuint res, GLuint arg1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShaderOp2EXT)(GLenum op, GLuint res, GLuint arg1, GLuint arg2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShaderOp3EXT)(GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShaderSource)(GLuint shader, GLsizei count, const GLchar *const* string, const GLint * length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShaderSourceARB)(GLhandleARB shaderObj, GLsizei count, const GLcharARB ** string, const GLint * length);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShaderStorageBlockBinding)(GLuint program, GLuint storageBlockIndex, GLuint storageBlockBinding);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShadingRateImageBarrierNV)(GLboolean synchronize);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShadingRateImagePaletteNV)(GLuint viewport, GLuint first, GLsizei count, const GLenum * rates);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShadingRateSampleOrderCustomNV)(GLenum rate, GLuint samples, const GLint * locations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glShadingRateSampleOrderNV)(GLenum order);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSharpenTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat * points);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSignalSemaphoreEXT)(GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * dstLayouts);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSignalSemaphoreui64NVX)(GLuint signalGpu, GLsizei fenceObjectCount, const GLuint * semaphoreArray, const GLuint64 * fenceValueArray);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSignalVkFenceNV)(GLuint64 vkFence);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSignalVkSemaphoreNV)(GLuint64 vkSemaphore);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSpecializeShader)(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSpecializeShaderARB)(GLuint shader, const GLchar * pEntryPoint, GLuint numSpecializationConstants, const GLuint * pConstantIndex, const GLuint * pConstantValue);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSpriteParameterfSGIX)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSpriteParameterfvSGIX)(GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSpriteParameteriSGIX)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSpriteParameterivSGIX)(GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStartInstrumentsSGIX)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStartTilingQCOM)(GLuint x, GLuint y, GLuint width, GLuint height, GLbitfield preserveMask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStateCaptureNV)(GLuint state, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilClearTagEXT)(GLsizei stencilTagBits, GLuint stencilClearTag);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilFillPathInstancedNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat * transformValues);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilFillPathNV)(GLuint path, GLenum fillMode, GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilFunc)(GLenum func, GLint ref, GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilFuncSeparateATI)(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilMask)(GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilMaskSeparate)(GLenum face, GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilOp)(GLenum fail, GLenum zfail, GLenum zpass);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilOpSeparate)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilOpSeparateATI)(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilOpValueAMD)(GLenum face, GLuint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilStrokePathInstancedNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat * transformValues);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilStrokePathNV)(GLuint path, GLint reference, GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilThenCoverFillPathInstancedNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilThenCoverFillPathNV)(GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilThenCoverStrokePathInstancedNV)(GLsizei numPaths, GLenum pathNameType, const void * paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat * transformValues);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStencilThenCoverStrokePathNV)(GLuint path, GLint reference, GLuint mask, GLenum coverMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStopInstrumentsSGIX)(GLint marker);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glStringMarkerGREMEDY)(GLsizei len, const void * string);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSubpixelPrecisionBiasNV)(GLuint xbits, GLuint ybits);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSwizzleEXT)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glSyncTextureINTEL)(GLuint texture);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTagSampleBufferSGIX)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3bEXT)(GLbyte tx, GLbyte ty, GLbyte tz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3bvEXT)(const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3dEXT)(GLdouble tx, GLdouble ty, GLdouble tz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3dvEXT)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3fEXT)(GLfloat tx, GLfloat ty, GLfloat tz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3fvEXT)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3iEXT)(GLint tx, GLint ty, GLint tz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3ivEXT)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3sEXT)(GLshort tx, GLshort ty, GLshort tz);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangent3svEXT)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTangentPointerEXT)(GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTbufferMask3DFX)(GLuint mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTessellationFactorAMD)(GLfloat factor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTessellationModeAMD)(GLenum mode);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glTestFenceAPPLE)(GLuint fence);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glTestFenceNV)(GLuint fence);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glTestObjectAPPLE)(GLenum object, GLuint name);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexAttachMemoryNV)(GLenum target, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBuffer)(GLenum target, GLenum internalformat, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBufferARB)(GLenum target, GLenum internalformat, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBufferEXT)(GLenum target, GLenum internalformat, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBufferOES)(GLenum target, GLenum internalformat, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBufferRange)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBufferRangeEXT)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBufferRangeOES)(GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBumpParameterfvATI)(GLenum pname, const GLfloat * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexBumpParameterivATI)(GLenum pname, const GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1bOES)(GLbyte s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1bvOES)(const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1d)(GLdouble s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1f)(GLfloat s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1hNV)(GLhalfNV s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1i)(GLint s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1s)(GLshort s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1xOES)(GLfixed s);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord1xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2bOES)(GLbyte s, GLbyte t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2bvOES)(const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2d)(GLdouble s, GLdouble t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2f)(GLfloat s, GLfloat t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fColor3fVertex3fSUN)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fColor3fVertex3fvSUN)(const GLfloat * tc, const GLfloat * c, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fColor4fNormal3fVertex3fSUN)(GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fColor4fNormal3fVertex3fvSUN)(const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fColor4ubVertex3fSUN)(GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fColor4ubVertex3fvSUN)(const GLfloat * tc, const GLubyte * c, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fNormal3fVertex3fSUN)(GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fNormal3fVertex3fvSUN)(const GLfloat * tc, const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fVertex3fSUN)(GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fVertex3fvSUN)(const GLfloat * tc, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2hNV)(GLhalfNV s, GLhalfNV t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2i)(GLint s, GLint t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2s)(GLshort s, GLshort t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2xOES)(GLfixed s, GLfixed t);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord2xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3bOES)(GLbyte s, GLbyte t, GLbyte r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3bvOES)(const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3d)(GLdouble s, GLdouble t, GLdouble r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3f)(GLfloat s, GLfloat t, GLfloat r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3hNV)(GLhalfNV s, GLhalfNV t, GLhalfNV r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3i)(GLint s, GLint t, GLint r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3s)(GLshort s, GLshort t, GLshort r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3xOES)(GLfixed s, GLfixed t, GLfixed r);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord3xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4bOES)(GLbyte s, GLbyte t, GLbyte r, GLbyte q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4bvOES)(const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4fColor4fNormal3fVertex4fSUN)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4fColor4fNormal3fVertex4fvSUN)(const GLfloat * tc, const GLfloat * c, const GLfloat * n, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4fVertex4fSUN)(GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4fVertex4fvSUN)(const GLfloat * tc, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4hNV)(GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4i)(GLint s, GLint t, GLint r, GLint q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4xOES)(GLfixed s, GLfixed t, GLfixed r, GLfixed q);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoord4xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordFormatNV)(GLint size, GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordP1ui)(GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordP1uiv)(GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordP2ui)(GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordP2uiv)(GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordP3ui)(GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordP3uiv)(GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordP4ui)(GLenum type, GLuint coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordP4uiv)(GLenum type, const GLuint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordPointer)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordPointerListIBM)(GLint size, GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexCoordPointervINTEL)(GLint size, GLenum type, const void ** pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexEnvf)(GLenum target, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexEnvfv)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexEnvi)(GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexEnviv)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexEnvx)(GLenum target, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexEnvxOES)(GLenum target, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexEnvxv)(GLenum target, GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexEnvxvOES)(GLenum target, GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexFilterFuncSGIS)(GLenum target, GLenum filter, GLsizei n, const GLfloat * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGend)(GLenum coord, GLenum pname, GLdouble param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGendv)(GLenum coord, GLenum pname, const GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGenf)(GLenum coord, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGenfOES)(GLenum coord, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGenfv)(GLenum coord, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGenfvOES)(GLenum coord, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGeni)(GLenum coord, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGeniOES)(GLenum coord, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGeniv)(GLenum coord, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGenivOES)(GLenum coord, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGenxOES)(GLenum coord, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexGenxvOES)(GLenum coord, GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage2DMultisampleCoverageNV)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage3DEXT)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage3DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage3DMultisampleCoverageNV)(GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage3DOES)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexImage4DSGIS)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexPageCommitmentARB)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexPageCommitmentEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterIiv)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterIivEXT)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterIivOES)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterIuiv)(GLenum target, GLenum pname, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterIuivEXT)(GLenum target, GLenum pname, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterIuivOES)(GLenum target, GLenum pname, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterf)(GLenum target, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterfv)(GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameteri)(GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameteriv)(GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterx)(GLenum target, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterxOES)(GLenum target, GLenum pname, GLfixed param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterxv)(GLenum target, GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexParameterxvOES)(GLenum target, GLenum pname, const GLfixed * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexRenderbufferNV)(GLenum target, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage1D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage1DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage2D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage2DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage2DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage3D)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage3DEXT)(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage3DMultisample)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorage3DMultisampleOES)(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorageMem1DEXT)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorageMem2DEXT)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorageMem2DMultisampleEXT)(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorageMem3DEXT)(GLenum target, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorageMem3DMultisampleEXT)(GLenum target, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexStorageSparseAMD)(GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexSubImage1DEXT)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexSubImage2DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexSubImage3DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexSubImage3DOES)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexSubImage4DSGIS)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureAttachMemoryNV)(GLuint texture, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureBarrier)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureBarrierNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureBuffer)(GLuint texture, GLenum internalformat, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureBufferEXT)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureBufferRange)(GLuint texture, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureBufferRangeEXT)(GLuint texture, GLenum target, GLenum internalformat, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureColorMaskSGIS)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureFoveationParametersQCOM)(GLuint texture, GLuint layer, GLuint focalPoint, GLfloat focalX, GLfloat focalY, GLfloat gainX, GLfloat gainY, GLfloat foveaArea);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureImage1DEXT)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureImage2DEXT)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureImage2DMultisampleCoverageNV)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureImage2DMultisampleNV)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureImage3DEXT)(GLuint texture, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureImage3DMultisampleCoverageNV)(GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureImage3DMultisampleNV)(GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureLightEXT)(GLenum pname);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureMaterialEXT)(GLenum face, GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureNormalEXT)(GLenum mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTexturePageCommitmentEXT)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLboolean commit);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterIiv)(GLuint texture, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterIivEXT)(GLuint texture, GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterIuiv)(GLuint texture, GLenum pname, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterIuivEXT)(GLuint texture, GLenum target, GLenum pname, const GLuint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterf)(GLuint texture, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterfEXT)(GLuint texture, GLenum target, GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterfv)(GLuint texture, GLenum pname, const GLfloat * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterfvEXT)(GLuint texture, GLenum target, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameteri)(GLuint texture, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameteriEXT)(GLuint texture, GLenum target, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameteriv)(GLuint texture, GLenum pname, const GLint * param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureParameterivEXT)(GLuint texture, GLenum target, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureRangeAPPLE)(GLenum target, GLsizei length, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureRenderbufferEXT)(GLuint texture, GLenum target, GLuint renderbuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage1D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage1DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage2D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage2DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage2DMultisample)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage2DMultisampleEXT)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage3D)(GLuint texture, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage3DEXT)(GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage3DMultisample)(GLuint texture, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorage3DMultisampleEXT)(GLuint texture, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorageMem1DEXT)(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorageMem2DEXT)(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorageMem2DMultisampleEXT)(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorageMem3DEXT)(GLuint texture, GLsizei levels, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorageMem3DMultisampleEXT)(GLuint texture, GLsizei samples, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations, GLuint memory, GLuint64 offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureStorageSparseAMD)(GLuint texture, GLenum target, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei layers, GLbitfield flags);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureSubImage1D)(GLuint texture, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureSubImage1DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureSubImage2D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureSubImage2DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureSubImage3D)(GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureSubImage3DEXT)(GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void * pixels);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureView)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureViewEXT)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTextureViewOES)(GLuint texture, GLenum target, GLuint origtexture, GLenum internalformat, GLuint minlevel, GLuint numlevels, GLuint minlayer, GLuint numlayers);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTrackMatrixNV)(GLenum target, GLuint address, GLenum matrix, GLenum transform);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTransformFeedbackAttribsNV)(GLsizei count, const GLint * attribs, GLenum bufferMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTransformFeedbackBufferBase)(GLuint xfb, GLuint index, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTransformFeedbackBufferRange)(GLuint xfb, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTransformFeedbackStreamAttribsNV)(GLsizei count, const GLint * attribs, GLsizei nbuffers, const GLint * bufstreams, GLenum bufferMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTransformFeedbackVaryings)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTransformFeedbackVaryingsEXT)(GLuint program, GLsizei count, const GLchar *const* varyings, GLenum bufferMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTransformFeedbackVaryingsNV)(GLuint program, GLsizei count, const GLint * locations, GLenum bufferMode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTransformPathNV)(GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat * transformValues);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTranslated)(GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTranslatef)(GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTranslatex)(GLfixed x, GLfixed y, GLfixed z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glTranslatexOES)(GLfixed x, GLfixed y, GLfixed z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1d)(GLint location, GLdouble x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1dv)(GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1f)(GLint location, GLfloat v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1fARB)(GLint location, GLfloat v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1fv)(GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1fvARB)(GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1i)(GLint location, GLint v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1i64ARB)(GLint location, GLint64 x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1i64NV)(GLint location, GLint64EXT x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1i64vARB)(GLint location, GLsizei count, const GLint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1i64vNV)(GLint location, GLsizei count, const GLint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1iARB)(GLint location, GLint v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1iv)(GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1ivARB)(GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1ui)(GLint location, GLuint v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1ui64ARB)(GLint location, GLuint64 x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1ui64NV)(GLint location, GLuint64EXT x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1ui64vARB)(GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1ui64vNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1uiEXT)(GLint location, GLuint v0);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1uiv)(GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform1uivEXT)(GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2d)(GLint location, GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2dv)(GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2f)(GLint location, GLfloat v0, GLfloat v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2fARB)(GLint location, GLfloat v0, GLfloat v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2fv)(GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2fvARB)(GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2i)(GLint location, GLint v0, GLint v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2i64ARB)(GLint location, GLint64 x, GLint64 y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2i64NV)(GLint location, GLint64EXT x, GLint64EXT y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2i64vARB)(GLint location, GLsizei count, const GLint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2i64vNV)(GLint location, GLsizei count, const GLint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2iARB)(GLint location, GLint v0, GLint v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2iv)(GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2ivARB)(GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2ui)(GLint location, GLuint v0, GLuint v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2ui64ARB)(GLint location, GLuint64 x, GLuint64 y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2ui64NV)(GLint location, GLuint64EXT x, GLuint64EXT y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2ui64vARB)(GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2ui64vNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2uiEXT)(GLint location, GLuint v0, GLuint v1);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2uiv)(GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform2uivEXT)(GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3d)(GLint location, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3dv)(GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3fARB)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3fv)(GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3fvARB)(GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3i)(GLint location, GLint v0, GLint v1, GLint v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3i64ARB)(GLint location, GLint64 x, GLint64 y, GLint64 z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3i64NV)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3i64vARB)(GLint location, GLsizei count, const GLint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3i64vNV)(GLint location, GLsizei count, const GLint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3iARB)(GLint location, GLint v0, GLint v1, GLint v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3iv)(GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3ivARB)(GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3ui)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3ui64ARB)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3ui64NV)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3ui64vARB)(GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3ui64vNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3uiEXT)(GLint location, GLuint v0, GLuint v1, GLuint v2);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3uiv)(GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform3uivEXT)(GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4d)(GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4dv)(GLint location, GLsizei count, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4f)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4fARB)(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4fv)(GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4fvARB)(GLint location, GLsizei count, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4i)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4i64ARB)(GLint location, GLint64 x, GLint64 y, GLint64 z, GLint64 w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4i64NV)(GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4i64vARB)(GLint location, GLsizei count, const GLint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4i64vNV)(GLint location, GLsizei count, const GLint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4iARB)(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4iv)(GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4ivARB)(GLint location, GLsizei count, const GLint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4ui)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4ui64ARB)(GLint location, GLuint64 x, GLuint64 y, GLuint64 z, GLuint64 w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4ui64NV)(GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4ui64vARB)(GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4ui64vNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4uiEXT)(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4uiv)(GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniform4uivEXT)(GLint location, GLsizei count, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformBlockBinding)(GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformBufferEXT)(GLuint program, GLint location, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformHandleui64ARB)(GLint location, GLuint64 value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformHandleui64IMG)(GLint location, GLuint64 value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformHandleui64NV)(GLint location, GLuint64 value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformHandleui64vARB)(GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformHandleui64vIMG)(GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformHandleui64vNV)(GLint location, GLsizei count, const GLuint64 * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2x3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2x3fvNV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2x4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix2x4fvNV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3x2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3x2fvNV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3x4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3x4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix3x4fvNV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4fvARB)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4x2dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4x2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4x2fvNV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4x3dv)(GLint location, GLsizei count, GLboolean transpose, const GLdouble * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4x3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformMatrix4x3fvNV)(GLint location, GLsizei count, GLboolean transpose, const GLfloat * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformSubroutinesuiv)(GLenum shadertype, GLsizei count, const GLuint * indices);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformui64NV)(GLint location, GLuint64EXT value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUniformui64vNV)(GLint location, GLsizei count, const GLuint64EXT * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUnlockArraysEXT)(void);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glUnmapBuffer)(GLenum target);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glUnmapBufferARB)(GLenum target);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glUnmapBufferOES)(GLenum target);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glUnmapNamedBuffer)(GLuint buffer);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glUnmapNamedBufferEXT)(GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUnmapObjectBufferATI)(GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUnmapTexture2DINTEL)(GLuint texture, GLint level);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUpdateObjectBufferATI)(GLuint buffer, GLuint offset, GLsizei size, const void * pointer, GLenum preserve);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUploadGpuMaskNVX)(GLbitfield mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUseProgram)(GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUseProgramObjectARB)(GLhandleARB programObj);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUseProgramStages)(GLuint pipeline, GLbitfield stages, GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUseProgramStagesEXT)(GLuint pipeline, GLbitfield stages, GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glUseShaderProgramEXT)(GLenum type, GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVDPAUFiniNV)(void);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVDPAUGetSurfaceivNV)(GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei * length, GLint * values);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVDPAUInitNV)(const void * vdpDevice, const void * getProcAddress);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glVDPAUIsSurfaceNV)(GLvdpauSurfaceNV surface);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVDPAUMapSurfacesNV)(GLsizei numSurfaces, const GLvdpauSurfaceNV * surfaces);
+
+EPOXY_PUBLIC GLvdpauSurfaceNV (EPOXY_CALLSPEC *epoxy_glVDPAURegisterOutputSurfaceNV)(const void * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames);
+
+EPOXY_PUBLIC GLvdpauSurfaceNV (EPOXY_CALLSPEC *epoxy_glVDPAURegisterVideoSurfaceNV)(const void * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames);
+
+EPOXY_PUBLIC GLvdpauSurfaceNV (EPOXY_CALLSPEC *epoxy_glVDPAURegisterVideoSurfaceWithPictureStructureNV)(const void * vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint * textureNames, GLboolean isFrameStructure);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVDPAUSurfaceAccessNV)(GLvdpauSurfaceNV surface, GLenum access);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVDPAUUnmapSurfacesNV)(GLsizei numSurface, const GLvdpauSurfaceNV * surfaces);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVDPAUUnregisterSurfaceNV)(GLvdpauSurfaceNV surface);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glValidateProgram)(GLuint program);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glValidateProgramARB)(GLhandleARB programObj);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glValidateProgramPipeline)(GLuint pipeline);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glValidateProgramPipelineEXT)(GLuint pipeline);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantArrayObjectATI)(GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantPointerEXT)(GLuint id, GLenum type, GLuint stride, const void * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantbvEXT)(GLuint id, const GLbyte * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantdvEXT)(GLuint id, const GLdouble * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantfvEXT)(GLuint id, const GLfloat * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantivEXT)(GLuint id, const GLint * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantsvEXT)(GLuint id, const GLshort * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantubvEXT)(GLuint id, const GLubyte * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantuivEXT)(GLuint id, const GLuint * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVariantusvEXT)(GLuint id, const GLushort * addr);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2bOES)(GLbyte x, GLbyte y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2bvOES)(const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2d)(GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2f)(GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2hNV)(GLhalfNV x, GLhalfNV y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2i)(GLint x, GLint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2s)(GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2xOES)(GLfixed x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex2xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3bOES)(GLbyte x, GLbyte y, GLbyte z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3bvOES)(const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3d)(GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3f)(GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3hNV)(GLhalfNV x, GLhalfNV y, GLhalfNV z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3i)(GLint x, GLint y, GLint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3s)(GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3xOES)(GLfixed x, GLfixed y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex3xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4bOES)(GLbyte x, GLbyte y, GLbyte z, GLbyte w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4bvOES)(const GLbyte * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4hNV)(GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4hvNV)(const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4i)(GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4s)(GLshort x, GLshort y, GLshort z, GLshort w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4xOES)(GLfixed x, GLfixed y, GLfixed z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertex4xvOES)(const GLfixed * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayAttribBinding)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayAttribFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayAttribIFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayAttribLFormat)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayBindVertexBufferEXT)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayBindingDivisor)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayColorOffsetEXT)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayEdgeFlagOffsetEXT)(GLuint vaobj, GLuint buffer, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayElementBuffer)(GLuint vaobj, GLuint buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayFogCoordOffsetEXT)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayIndexOffsetEXT)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayMultiTexCoordOffsetEXT)(GLuint vaobj, GLuint buffer, GLenum texunit, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayNormalOffsetEXT)(GLuint vaobj, GLuint buffer, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayParameteriAPPLE)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayRangeAPPLE)(GLsizei length, void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayRangeNV)(GLsizei length, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArraySecondaryColorOffsetEXT)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayTexCoordOffsetEXT)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexAttribBindingEXT)(GLuint vaobj, GLuint attribindex, GLuint bindingindex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexAttribDivisorEXT)(GLuint vaobj, GLuint index, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexAttribFormatEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexAttribIFormatEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexAttribIOffsetEXT)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexAttribLFormatEXT)(GLuint vaobj, GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexAttribLOffsetEXT)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexAttribOffsetEXT)(GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexBindingDivisorEXT)(GLuint vaobj, GLuint bindingindex, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexBuffer)(GLuint vaobj, GLuint bindingindex, GLuint buffer, GLintptr offset, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexBuffers)(GLuint vaobj, GLuint first, GLsizei count, const GLuint * buffers, const GLintptr * offsets, const GLsizei * strides);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexArrayVertexOffsetEXT)(GLuint vaobj, GLuint buffer, GLint size, GLenum type, GLsizei stride, GLintptr offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1d)(GLuint index, GLdouble x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1dARB)(GLuint index, GLdouble x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1dNV)(GLuint index, GLdouble x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1dv)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1dvARB)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1dvNV)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1f)(GLuint index, GLfloat x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1fARB)(GLuint index, GLfloat x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1fNV)(GLuint index, GLfloat x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1fv)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1fvARB)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1fvNV)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1hNV)(GLuint index, GLhalfNV x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1hvNV)(GLuint index, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1s)(GLuint index, GLshort x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1sARB)(GLuint index, GLshort x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1sNV)(GLuint index, GLshort x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1sv)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1svARB)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib1svNV)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2d)(GLuint index, GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2dARB)(GLuint index, GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2dNV)(GLuint index, GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2dv)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2dvARB)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2dvNV)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2f)(GLuint index, GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2fARB)(GLuint index, GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2fNV)(GLuint index, GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2fv)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2fvARB)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2fvNV)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2hNV)(GLuint index, GLhalfNV x, GLhalfNV y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2hvNV)(GLuint index, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2s)(GLuint index, GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2sARB)(GLuint index, GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2sNV)(GLuint index, GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2sv)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2svARB)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib2svNV)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3dARB)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3dv)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3dvARB)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3dvNV)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3f)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3fARB)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3fv)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3fvARB)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3fvNV)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3hNV)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3hvNV)(GLuint index, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3s)(GLuint index, GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3sARB)(GLuint index, GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3sNV)(GLuint index, GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3sv)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3svARB)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib3svNV)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4Nbv)(GLuint index, const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4NbvARB)(GLuint index, const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4Niv)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4NivARB)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4Nsv)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4NsvARB)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4Nub)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4NubARB)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4Nubv)(GLuint index, const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4NubvARB)(GLuint index, const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4Nuiv)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4NuivARB)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4Nusv)(GLuint index, const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4NusvARB)(GLuint index, const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4bv)(GLuint index, const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4bvARB)(GLuint index, const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4dARB)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4dNV)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4dv)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4dvARB)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4dvNV)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4f)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4fARB)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4fNV)(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4fv)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4fvARB)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4fvNV)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4hNV)(GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4hvNV)(GLuint index, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4iv)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4ivARB)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4s)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4sARB)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4sNV)(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4sv)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4svARB)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4svNV)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4ubNV)(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4ubv)(GLuint index, const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4ubvARB)(GLuint index, const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4ubvNV)(GLuint index, const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4uiv)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4uivARB)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4usv)(GLuint index, const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttrib4usvARB)(GLuint index, const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribArrayObjectATI)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribBinding)(GLuint attribindex, GLuint bindingindex);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribDivisor)(GLuint index, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribDivisorANGLE)(GLuint index, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribDivisorARB)(GLuint index, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribDivisorEXT)(GLuint index, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribDivisorNV)(GLuint index, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribFormat)(GLuint attribindex, GLint size, GLenum type, GLboolean normalized, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribFormatNV)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI1i)(GLuint index, GLint x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI1iEXT)(GLuint index, GLint x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI1iv)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI1ivEXT)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI1ui)(GLuint index, GLuint x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI1uiEXT)(GLuint index, GLuint x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI1uiv)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI1uivEXT)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI2i)(GLuint index, GLint x, GLint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI2iEXT)(GLuint index, GLint x, GLint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI2iv)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI2ivEXT)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI2ui)(GLuint index, GLuint x, GLuint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI2uiEXT)(GLuint index, GLuint x, GLuint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI2uiv)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI2uivEXT)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI3i)(GLuint index, GLint x, GLint y, GLint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI3iEXT)(GLuint index, GLint x, GLint y, GLint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI3iv)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI3ivEXT)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI3ui)(GLuint index, GLuint x, GLuint y, GLuint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI3uiEXT)(GLuint index, GLuint x, GLuint y, GLuint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI3uiv)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI3uivEXT)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4bv)(GLuint index, const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4bvEXT)(GLuint index, const GLbyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4i)(GLuint index, GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4iEXT)(GLuint index, GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4iv)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4ivEXT)(GLuint index, const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4sv)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4svEXT)(GLuint index, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4ubv)(GLuint index, const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4ubvEXT)(GLuint index, const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4ui)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4uiEXT)(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4uiv)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4uivEXT)(GLuint index, const GLuint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4usv)(GLuint index, const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribI4usvEXT)(GLuint index, const GLushort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribIFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribIFormatNV)(GLuint index, GLint size, GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribIPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribIPointerEXT)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1d)(GLuint index, GLdouble x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1dEXT)(GLuint index, GLdouble x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1dv)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1dvEXT)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1i64NV)(GLuint index, GLint64EXT x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1i64vNV)(GLuint index, const GLint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1ui64ARB)(GLuint index, GLuint64EXT x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1ui64NV)(GLuint index, GLuint64EXT x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1ui64vARB)(GLuint index, const GLuint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL1ui64vNV)(GLuint index, const GLuint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL2d)(GLuint index, GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL2dEXT)(GLuint index, GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL2dv)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL2dvEXT)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL2i64NV)(GLuint index, GLint64EXT x, GLint64EXT y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL2i64vNV)(GLuint index, const GLint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL2ui64NV)(GLuint index, GLuint64EXT x, GLuint64EXT y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL2ui64vNV)(GLuint index, const GLuint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL3d)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL3dEXT)(GLuint index, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL3dv)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL3dvEXT)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL3i64NV)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL3i64vNV)(GLuint index, const GLint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL3ui64NV)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL3ui64vNV)(GLuint index, const GLuint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL4d)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL4dEXT)(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL4dv)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL4dvEXT)(GLuint index, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL4i64NV)(GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL4i64vNV)(GLuint index, const GLint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL4ui64NV)(GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribL4ui64vNV)(GLuint index, const GLuint64EXT * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribLFormat)(GLuint attribindex, GLint size, GLenum type, GLuint relativeoffset);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribLFormatNV)(GLuint index, GLint size, GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribLPointer)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribLPointerEXT)(GLuint index, GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribP1ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribP1uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribP2ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribP2uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribP3ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribP3uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribP4ui)(GLuint index, GLenum type, GLboolean normalized, GLuint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribP4uiv)(GLuint index, GLenum type, GLboolean normalized, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribParameteriAMD)(GLuint index, GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribPointer)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribPointerARB)(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribPointerNV)(GLuint index, GLint fsize, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs1dvNV)(GLuint index, GLsizei count, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs1fvNV)(GLuint index, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs1hvNV)(GLuint index, GLsizei n, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs1svNV)(GLuint index, GLsizei count, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs2dvNV)(GLuint index, GLsizei count, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs2fvNV)(GLuint index, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs2hvNV)(GLuint index, GLsizei n, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs2svNV)(GLuint index, GLsizei count, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs3dvNV)(GLuint index, GLsizei count, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs3fvNV)(GLuint index, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs3hvNV)(GLuint index, GLsizei n, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs3svNV)(GLuint index, GLsizei count, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs4dvNV)(GLuint index, GLsizei count, const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs4fvNV)(GLuint index, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs4hvNV)(GLuint index, GLsizei n, const GLhalfNV * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs4svNV)(GLuint index, GLsizei count, const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexAttribs4ubvNV)(GLuint index, GLsizei count, const GLubyte * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexBindingDivisor)(GLuint bindingindex, GLuint divisor);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexBlendARB)(GLint count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexBlendEnvfATI)(GLenum pname, GLfloat param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexBlendEnviATI)(GLenum pname, GLint param);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexFormatNV)(GLint size, GLenum type, GLsizei stride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexP2ui)(GLenum type, GLuint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexP2uiv)(GLenum type, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexP3ui)(GLenum type, GLuint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexP3uiv)(GLenum type, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexP4ui)(GLenum type, GLuint value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexP4uiv)(GLenum type, const GLuint * value);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexPointer)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexPointerListIBM)(GLint size, GLenum type, GLint stride, const void ** pointer, GLint ptrstride);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexPointervINTEL)(GLint size, GLenum type, const void ** pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream1dATI)(GLenum stream, GLdouble x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream1dvATI)(GLenum stream, const GLdouble * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream1fATI)(GLenum stream, GLfloat x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream1fvATI)(GLenum stream, const GLfloat * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream1iATI)(GLenum stream, GLint x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream1ivATI)(GLenum stream, const GLint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream1sATI)(GLenum stream, GLshort x);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream1svATI)(GLenum stream, const GLshort * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream2dATI)(GLenum stream, GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream2dvATI)(GLenum stream, const GLdouble * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream2fATI)(GLenum stream, GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream2fvATI)(GLenum stream, const GLfloat * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream2iATI)(GLenum stream, GLint x, GLint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream2ivATI)(GLenum stream, const GLint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream2sATI)(GLenum stream, GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream2svATI)(GLenum stream, const GLshort * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream3dATI)(GLenum stream, GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream3dvATI)(GLenum stream, const GLdouble * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream3fATI)(GLenum stream, GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream3fvATI)(GLenum stream, const GLfloat * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream3iATI)(GLenum stream, GLint x, GLint y, GLint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream3ivATI)(GLenum stream, const GLint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream3sATI)(GLenum stream, GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream3svATI)(GLenum stream, const GLshort * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream4dATI)(GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream4dvATI)(GLenum stream, const GLdouble * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream4fATI)(GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream4fvATI)(GLenum stream, const GLfloat * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream4iATI)(GLenum stream, GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream4ivATI)(GLenum stream, const GLint * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream4sATI)(GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexStream4svATI)(GLenum stream, const GLshort * coords);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexWeightPointerEXT)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexWeightfEXT)(GLfloat weight);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexWeightfvEXT)(const GLfloat * weight);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexWeighthNV)(GLhalfNV weight);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVertexWeighthvNV)(const GLhalfNV * weight);
+
+EPOXY_PUBLIC GLenum (EPOXY_CALLSPEC *epoxy_glVideoCaptureNV)(GLuint video_capture_slot, GLuint * sequence_num, GLuint64EXT * capture_time);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVideoCaptureStreamParameterdvNV)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVideoCaptureStreamParameterfvNV)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glVideoCaptureStreamParameterivNV)(GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint * params);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewport)(GLint x, GLint y, GLsizei width, GLsizei height);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportArrayv)(GLuint first, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportArrayvNV)(GLuint first, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportArrayvOES)(GLuint first, GLsizei count, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportIndexedf)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportIndexedfNV)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportIndexedfOES)(GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportIndexedfv)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportIndexedfvNV)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportIndexedfvOES)(GLuint index, const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportPositionWScaleNV)(GLuint index, GLfloat xcoeff, GLfloat ycoeff);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glViewportSwizzleNV)(GLuint index, GLenum swizzlex, GLenum swizzley, GLenum swizzlez, GLenum swizzlew);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWaitSemaphoreEXT)(GLuint semaphore, GLuint numBufferBarriers, const GLuint * buffers, GLuint numTextureBarriers, const GLuint * textures, const GLenum * srcLayouts);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWaitSemaphoreui64NVX)(GLuint waitGpu, GLsizei fenceObjectCount, const GLuint * semaphoreArray, const GLuint64 * fenceValueArray);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWaitSync)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWaitSyncAPPLE)(GLsync sync, GLbitfield flags, GLuint64 timeout);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWaitVkSemaphoreNV)(GLuint64 vkSemaphore);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightPathsNV)(GLuint resultPath, GLsizei numPaths, const GLuint * paths, const GLfloat * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightPointerARB)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightPointerOES)(GLint size, GLenum type, GLsizei stride, const void * pointer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightbvARB)(GLint size, const GLbyte * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightdvARB)(GLint size, const GLdouble * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightfvARB)(GLint size, const GLfloat * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightivARB)(GLint size, const GLint * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightsvARB)(GLint size, const GLshort * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightubvARB)(GLint size, const GLubyte * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightuivARB)(GLint size, const GLuint * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWeightusvARB)(GLint size, const GLushort * weights);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2d)(GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2dARB)(GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2dMESA)(GLdouble x, GLdouble y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2dvARB)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2dvMESA)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2f)(GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2fARB)(GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2fMESA)(GLfloat x, GLfloat y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2fvARB)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2fvMESA)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2i)(GLint x, GLint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2iARB)(GLint x, GLint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2iMESA)(GLint x, GLint y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2ivARB)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2ivMESA)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2s)(GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2sARB)(GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2sMESA)(GLshort x, GLshort y);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2svARB)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos2svMESA)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3d)(GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3dARB)(GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3dMESA)(GLdouble x, GLdouble y, GLdouble z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3dv)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3dvARB)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3dvMESA)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3f)(GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3fARB)(GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3fMESA)(GLfloat x, GLfloat y, GLfloat z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3fv)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3fvARB)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3fvMESA)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3i)(GLint x, GLint y, GLint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3iARB)(GLint x, GLint y, GLint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3iMESA)(GLint x, GLint y, GLint z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3iv)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3ivARB)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3ivMESA)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3s)(GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3sARB)(GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3sMESA)(GLshort x, GLshort y, GLshort z);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3sv)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3svARB)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos3svMESA)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos4dMESA)(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos4dvMESA)(const GLdouble * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos4fvMESA)(const GLfloat * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos4iMESA)(GLint x, GLint y, GLint z, GLint w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos4ivMESA)(const GLint * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos4sMESA)(GLshort x, GLshort y, GLshort z, GLshort w);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowPos4svMESA)(const GLshort * v);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWindowRectanglesEXT)(GLenum mode, GLsizei count, const GLint * box);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glWriteMaskEXT)(GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW);
+
+#define glAccum epoxy_glAccum
+#define glAccumxOES epoxy_glAccumxOES
+#define glAcquireKeyedMutexWin32EXT epoxy_glAcquireKeyedMutexWin32EXT
+#define glActiveProgramEXT epoxy_glActiveProgramEXT
+#define glActiveShaderProgram epoxy_glActiveShaderProgram
+#define glActiveShaderProgramEXT epoxy_glActiveShaderProgramEXT
+#define glActiveStencilFaceEXT epoxy_glActiveStencilFaceEXT
+#define glActiveTexture epoxy_glActiveTexture
+#define glActiveTextureARB epoxy_glActiveTextureARB
+#define glActiveVaryingNV epoxy_glActiveVaryingNV
+#define glAlphaFragmentOp1ATI epoxy_glAlphaFragmentOp1ATI
+#define glAlphaFragmentOp2ATI epoxy_glAlphaFragmentOp2ATI
+#define glAlphaFragmentOp3ATI epoxy_glAlphaFragmentOp3ATI
+#define glAlphaFunc epoxy_glAlphaFunc
+#define glAlphaFuncQCOM epoxy_glAlphaFuncQCOM
+#define glAlphaFuncx epoxy_glAlphaFuncx
+#define glAlphaFuncxOES epoxy_glAlphaFuncxOES
+#define glAlphaToCoverageDitherControlNV epoxy_glAlphaToCoverageDitherControlNV
+#define glApplyFramebufferAttachmentCMAAINTEL epoxy_glApplyFramebufferAttachmentCMAAINTEL
+#define glApplyTextureEXT epoxy_glApplyTextureEXT
+#define glAreProgramsResidentNV epoxy_glAreProgramsResidentNV
+#define glAreTexturesResident epoxy_glAreTexturesResident
+#define glAreTexturesResidentEXT epoxy_glAreTexturesResidentEXT
+#define glArrayElement epoxy_glArrayElement
+#define glArrayElementEXT epoxy_glArrayElementEXT
+#define glArrayObjectATI epoxy_glArrayObjectATI
+#define glAsyncCopyBufferSubDataNVX epoxy_glAsyncCopyBufferSubDataNVX
+#define glAsyncCopyImageSubDataNVX epoxy_glAsyncCopyImageSubDataNVX
+#define glAsyncMarkerSGIX epoxy_glAsyncMarkerSGIX
+#define glAttachObjectARB epoxy_glAttachObjectARB
+#define glAttachShader epoxy_glAttachShader
+#define glBegin epoxy_glBegin
+#define glBeginConditionalRender epoxy_glBeginConditionalRender
+#define glBeginConditionalRenderNV epoxy_glBeginConditionalRenderNV
+#define glBeginConditionalRenderNVX epoxy_glBeginConditionalRenderNVX
+#define glBeginFragmentShaderATI epoxy_glBeginFragmentShaderATI
+#define glBeginOcclusionQueryNV epoxy_glBeginOcclusionQueryNV
+#define glBeginPerfMonitorAMD epoxy_glBeginPerfMonitorAMD
+#define glBeginPerfQueryINTEL epoxy_glBeginPerfQueryINTEL
+#define glBeginQuery epoxy_glBeginQuery
+#define glBeginQueryARB epoxy_glBeginQueryARB
+#define glBeginQueryEXT epoxy_glBeginQueryEXT
+#define glBeginQueryIndexed epoxy_glBeginQueryIndexed
+#define glBeginTransformFeedback epoxy_glBeginTransformFeedback
+#define glBeginTransformFeedbackEXT epoxy_glBeginTransformFeedbackEXT
+#define glBeginTransformFeedbackNV epoxy_glBeginTransformFeedbackNV
+#define glBeginVertexShaderEXT epoxy_glBeginVertexShaderEXT
+#define glBeginVideoCaptureNV epoxy_glBeginVideoCaptureNV
+#define glBindAttribLocation epoxy_glBindAttribLocation
+#define glBindAttribLocationARB epoxy_glBindAttribLocationARB
+#define glBindBuffer epoxy_glBindBuffer
+#define glBindBufferARB epoxy_glBindBufferARB
+#define glBindBufferBase epoxy_glBindBufferBase
+#define glBindBufferBaseEXT epoxy_glBindBufferBaseEXT
+#define glBindBufferBaseNV epoxy_glBindBufferBaseNV
+#define glBindBufferOffsetEXT epoxy_glBindBufferOffsetEXT
+#define glBindBufferOffsetNV epoxy_glBindBufferOffsetNV
+#define glBindBufferRange epoxy_glBindBufferRange
+#define glBindBufferRangeEXT epoxy_glBindBufferRangeEXT
+#define glBindBufferRangeNV epoxy_glBindBufferRangeNV
+#define glBindBuffersBase epoxy_glBindBuffersBase
+#define glBindBuffersRange epoxy_glBindBuffersRange
+#define glBindFragDataLocation epoxy_glBindFragDataLocation
+#define glBindFragDataLocationEXT epoxy_glBindFragDataLocationEXT
+#define glBindFragDataLocationIndexed epoxy_glBindFragDataLocationIndexed
+#define glBindFragDataLocationIndexedEXT epoxy_glBindFragDataLocationIndexedEXT
+#define glBindFragmentShaderATI epoxy_glBindFragmentShaderATI
+#define glBindFramebuffer epoxy_glBindFramebuffer
+#define glBindFramebufferEXT epoxy_glBindFramebufferEXT
+#define glBindFramebufferOES epoxy_glBindFramebufferOES
+#define glBindImageTexture epoxy_glBindImageTexture
+#define glBindImageTextureEXT epoxy_glBindImageTextureEXT
+#define glBindImageTextures epoxy_glBindImageTextures
+#define glBindLightParameterEXT epoxy_glBindLightParameterEXT
+#define glBindMaterialParameterEXT epoxy_glBindMaterialParameterEXT
+#define glBindMultiTextureEXT epoxy_glBindMultiTextureEXT
+#define glBindParameterEXT epoxy_glBindParameterEXT
+#define glBindProgramARB epoxy_glBindProgramARB
+#define glBindProgramNV epoxy_glBindProgramNV
+#define glBindProgramPipeline epoxy_glBindProgramPipeline
+#define glBindProgramPipelineEXT epoxy_glBindProgramPipelineEXT
+#define glBindRenderbuffer epoxy_glBindRenderbuffer
+#define glBindRenderbufferEXT epoxy_glBindRenderbufferEXT
+#define glBindRenderbufferOES epoxy_glBindRenderbufferOES
+#define glBindSampler epoxy_glBindSampler
+#define glBindSamplers epoxy_glBindSamplers
+#define glBindShadingRateImageNV epoxy_glBindShadingRateImageNV
+#define glBindTexGenParameterEXT epoxy_glBindTexGenParameterEXT
+#define glBindTexture epoxy_glBindTexture
+#define glBindTextureEXT epoxy_glBindTextureEXT
+#define glBindTextureUnit epoxy_glBindTextureUnit
+#define glBindTextureUnitParameterEXT epoxy_glBindTextureUnitParameterEXT
+#define glBindTextures epoxy_glBindTextures
+#define glBindTransformFeedback epoxy_glBindTransformFeedback
+#define glBindTransformFeedbackNV epoxy_glBindTransformFeedbackNV
+#define glBindVertexArray epoxy_glBindVertexArray
+#define glBindVertexArrayAPPLE epoxy_glBindVertexArrayAPPLE
+#define glBindVertexArrayOES epoxy_glBindVertexArrayOES
+#define glBindVertexBuffer epoxy_glBindVertexBuffer
+#define glBindVertexBuffers epoxy_glBindVertexBuffers
+#define glBindVertexShaderEXT epoxy_glBindVertexShaderEXT
+#define glBindVideoCaptureStreamBufferNV epoxy_glBindVideoCaptureStreamBufferNV
+#define glBindVideoCaptureStreamTextureNV epoxy_glBindVideoCaptureStreamTextureNV
+#define glBinormal3bEXT epoxy_glBinormal3bEXT
+#define glBinormal3bvEXT epoxy_glBinormal3bvEXT
+#define glBinormal3dEXT epoxy_glBinormal3dEXT
+#define glBinormal3dvEXT epoxy_glBinormal3dvEXT
+#define glBinormal3fEXT epoxy_glBinormal3fEXT
+#define glBinormal3fvEXT epoxy_glBinormal3fvEXT
+#define glBinormal3iEXT epoxy_glBinormal3iEXT
+#define glBinormal3ivEXT epoxy_glBinormal3ivEXT
+#define glBinormal3sEXT epoxy_glBinormal3sEXT
+#define glBinormal3svEXT epoxy_glBinormal3svEXT
+#define glBinormalPointerEXT epoxy_glBinormalPointerEXT
+#define glBitmap epoxy_glBitmap
+#define glBitmapxOES epoxy_glBitmapxOES
+#define glBlendBarrier epoxy_glBlendBarrier
+#define glBlendBarrierKHR epoxy_glBlendBarrierKHR
+#define glBlendBarrierNV epoxy_glBlendBarrierNV
+#define glBlendColor epoxy_glBlendColor
+#define glBlendColorEXT epoxy_glBlendColorEXT
+#define glBlendColorxOES epoxy_glBlendColorxOES
+#define glBlendEquation epoxy_glBlendEquation
+#define glBlendEquationEXT epoxy_glBlendEquationEXT
+#define glBlendEquationIndexedAMD epoxy_glBlendEquationIndexedAMD
+#define glBlendEquationOES epoxy_glBlendEquationOES
+#define glBlendEquationSeparate epoxy_glBlendEquationSeparate
+#define glBlendEquationSeparateEXT epoxy_glBlendEquationSeparateEXT
+#define glBlendEquationSeparateIndexedAMD epoxy_glBlendEquationSeparateIndexedAMD
+#define glBlendEquationSeparateOES epoxy_glBlendEquationSeparateOES
+#define glBlendEquationSeparatei epoxy_glBlendEquationSeparatei
+#define glBlendEquationSeparateiARB epoxy_glBlendEquationSeparateiARB
+#define glBlendEquationSeparateiEXT epoxy_glBlendEquationSeparateiEXT
+#define glBlendEquationSeparateiOES epoxy_glBlendEquationSeparateiOES
+#define glBlendEquationi epoxy_glBlendEquationi
+#define glBlendEquationiARB epoxy_glBlendEquationiARB
+#define glBlendEquationiEXT epoxy_glBlendEquationiEXT
+#define glBlendEquationiOES epoxy_glBlendEquationiOES
+#define glBlendFunc epoxy_glBlendFunc
+#define glBlendFuncIndexedAMD epoxy_glBlendFuncIndexedAMD
+#define glBlendFuncSeparate epoxy_glBlendFuncSeparate
+#define glBlendFuncSeparateEXT epoxy_glBlendFuncSeparateEXT
+#define glBlendFuncSeparateINGR epoxy_glBlendFuncSeparateINGR
+#define glBlendFuncSeparateIndexedAMD epoxy_glBlendFuncSeparateIndexedAMD
+#define glBlendFuncSeparateOES epoxy_glBlendFuncSeparateOES
+#define glBlendFuncSeparatei epoxy_glBlendFuncSeparatei
+#define glBlendFuncSeparateiARB epoxy_glBlendFuncSeparateiARB
+#define glBlendFuncSeparateiEXT epoxy_glBlendFuncSeparateiEXT
+#define glBlendFuncSeparateiOES epoxy_glBlendFuncSeparateiOES
+#define glBlendFunci epoxy_glBlendFunci
+#define glBlendFunciARB epoxy_glBlendFunciARB
+#define glBlendFunciEXT epoxy_glBlendFunciEXT
+#define glBlendFunciOES epoxy_glBlendFunciOES
+#define glBlendParameteriNV epoxy_glBlendParameteriNV
+#define glBlitFramebuffer epoxy_glBlitFramebuffer
+#define glBlitFramebufferANGLE epoxy_glBlitFramebufferANGLE
+#define glBlitFramebufferEXT epoxy_glBlitFramebufferEXT
+#define glBlitFramebufferNV epoxy_glBlitFramebufferNV
+#define glBlitNamedFramebuffer epoxy_glBlitNamedFramebuffer
+#define glBufferAddressRangeNV epoxy_glBufferAddressRangeNV
+#define glBufferAttachMemoryNV epoxy_glBufferAttachMemoryNV
+#define glBufferData epoxy_glBufferData
+#define glBufferDataARB epoxy_glBufferDataARB
+#define glBufferPageCommitmentARB epoxy_glBufferPageCommitmentARB
+#define glBufferParameteriAPPLE epoxy_glBufferParameteriAPPLE
+#define glBufferStorage epoxy_glBufferStorage
+#define glBufferStorageEXT epoxy_glBufferStorageEXT
+#define glBufferStorageExternalEXT epoxy_glBufferStorageExternalEXT
+#define glBufferStorageMemEXT epoxy_glBufferStorageMemEXT
+#define glBufferSubData epoxy_glBufferSubData
+#define glBufferSubDataARB epoxy_glBufferSubDataARB
+#define glCallCommandListNV epoxy_glCallCommandListNV
+#define glCallList epoxy_glCallList
+#define glCallLists epoxy_glCallLists
+#define glCheckFramebufferStatus epoxy_glCheckFramebufferStatus
+#define glCheckFramebufferStatusEXT epoxy_glCheckFramebufferStatusEXT
+#define glCheckFramebufferStatusOES epoxy_glCheckFramebufferStatusOES
+#define glCheckNamedFramebufferStatus epoxy_glCheckNamedFramebufferStatus
+#define glCheckNamedFramebufferStatusEXT epoxy_glCheckNamedFramebufferStatusEXT
+#define glClampColor epoxy_glClampColor
+#define glClampColorARB epoxy_glClampColorARB
+#define glClear epoxy_glClear
+#define glClearAccum epoxy_glClearAccum
+#define glClearAccumxOES epoxy_glClearAccumxOES
+#define glClearBufferData epoxy_glClearBufferData
+#define glClearBufferSubData epoxy_glClearBufferSubData
+#define glClearBufferfi epoxy_glClearBufferfi
+#define glClearBufferfv epoxy_glClearBufferfv
+#define glClearBufferiv epoxy_glClearBufferiv
+#define glClearBufferuiv epoxy_glClearBufferuiv
+#define glClearColor epoxy_glClearColor
+#define glClearColorIiEXT epoxy_glClearColorIiEXT
+#define glClearColorIuiEXT epoxy_glClearColorIuiEXT
+#define glClearColorx epoxy_glClearColorx
+#define glClearColorxOES epoxy_glClearColorxOES
+#define glClearDepth epoxy_glClearDepth
+#define glClearDepthdNV epoxy_glClearDepthdNV
+#define glClearDepthf epoxy_glClearDepthf
+#define glClearDepthfOES epoxy_glClearDepthfOES
+#define glClearDepthx epoxy_glClearDepthx
+#define glClearDepthxOES epoxy_glClearDepthxOES
+#define glClearIndex epoxy_glClearIndex
+#define glClearNamedBufferData epoxy_glClearNamedBufferData
+#define glClearNamedBufferDataEXT epoxy_glClearNamedBufferDataEXT
+#define glClearNamedBufferSubData epoxy_glClearNamedBufferSubData
+#define glClearNamedBufferSubDataEXT epoxy_glClearNamedBufferSubDataEXT
+#define glClearNamedFramebufferfi epoxy_glClearNamedFramebufferfi
+#define glClearNamedFramebufferfv epoxy_glClearNamedFramebufferfv
+#define glClearNamedFramebufferiv epoxy_glClearNamedFramebufferiv
+#define glClearNamedFramebufferuiv epoxy_glClearNamedFramebufferuiv
+#define glClearPixelLocalStorageuiEXT epoxy_glClearPixelLocalStorageuiEXT
+#define glClearStencil epoxy_glClearStencil
+#define glClearTexImage epoxy_glClearTexImage
+#define glClearTexImageEXT epoxy_glClearTexImageEXT
+#define glClearTexSubImage epoxy_glClearTexSubImage
+#define glClearTexSubImageEXT epoxy_glClearTexSubImageEXT
+#define glClientActiveTexture epoxy_glClientActiveTexture
+#define glClientActiveTextureARB epoxy_glClientActiveTextureARB
+#define glClientActiveVertexStreamATI epoxy_glClientActiveVertexStreamATI
+#define glClientAttribDefaultEXT epoxy_glClientAttribDefaultEXT
+#define glClientWaitSemaphoreui64NVX epoxy_glClientWaitSemaphoreui64NVX
+#define glClientWaitSync epoxy_glClientWaitSync
+#define glClientWaitSyncAPPLE epoxy_glClientWaitSyncAPPLE
+#define glClipControl epoxy_glClipControl
+#define glClipControlEXT epoxy_glClipControlEXT
+#define glClipPlane epoxy_glClipPlane
+#define glClipPlanef epoxy_glClipPlanef
+#define glClipPlanefIMG epoxy_glClipPlanefIMG
+#define glClipPlanefOES epoxy_glClipPlanefOES
+#define glClipPlanex epoxy_glClipPlanex
+#define glClipPlanexIMG epoxy_glClipPlanexIMG
+#define glClipPlanexOES epoxy_glClipPlanexOES
+#define glColor3b epoxy_glColor3b
+#define glColor3bv epoxy_glColor3bv
+#define glColor3d epoxy_glColor3d
+#define glColor3dv epoxy_glColor3dv
+#define glColor3f epoxy_glColor3f
+#define glColor3fVertex3fSUN epoxy_glColor3fVertex3fSUN
+#define glColor3fVertex3fvSUN epoxy_glColor3fVertex3fvSUN
+#define glColor3fv epoxy_glColor3fv
+#define glColor3hNV epoxy_glColor3hNV
+#define glColor3hvNV epoxy_glColor3hvNV
+#define glColor3i epoxy_glColor3i
+#define glColor3iv epoxy_glColor3iv
+#define glColor3s epoxy_glColor3s
+#define glColor3sv epoxy_glColor3sv
+#define glColor3ub epoxy_glColor3ub
+#define glColor3ubv epoxy_glColor3ubv
+#define glColor3ui epoxy_glColor3ui
+#define glColor3uiv epoxy_glColor3uiv
+#define glColor3us epoxy_glColor3us
+#define glColor3usv epoxy_glColor3usv
+#define glColor3xOES epoxy_glColor3xOES
+#define glColor3xvOES epoxy_glColor3xvOES
+#define glColor4b epoxy_glColor4b
+#define glColor4bv epoxy_glColor4bv
+#define glColor4d epoxy_glColor4d
+#define glColor4dv epoxy_glColor4dv
+#define glColor4f epoxy_glColor4f
+#define glColor4fNormal3fVertex3fSUN epoxy_glColor4fNormal3fVertex3fSUN
+#define glColor4fNormal3fVertex3fvSUN epoxy_glColor4fNormal3fVertex3fvSUN
+#define glColor4fv epoxy_glColor4fv
+#define glColor4hNV epoxy_glColor4hNV
+#define glColor4hvNV epoxy_glColor4hvNV
+#define glColor4i epoxy_glColor4i
+#define glColor4iv epoxy_glColor4iv
+#define glColor4s epoxy_glColor4s
+#define glColor4sv epoxy_glColor4sv
+#define glColor4ub epoxy_glColor4ub
+#define glColor4ubVertex2fSUN epoxy_glColor4ubVertex2fSUN
+#define glColor4ubVertex2fvSUN epoxy_glColor4ubVertex2fvSUN
+#define glColor4ubVertex3fSUN epoxy_glColor4ubVertex3fSUN
+#define glColor4ubVertex3fvSUN epoxy_glColor4ubVertex3fvSUN
+#define glColor4ubv epoxy_glColor4ubv
+#define glColor4ui epoxy_glColor4ui
+#define glColor4uiv epoxy_glColor4uiv
+#define glColor4us epoxy_glColor4us
+#define glColor4usv epoxy_glColor4usv
+#define glColor4x epoxy_glColor4x
+#define glColor4xOES epoxy_glColor4xOES
+#define glColor4xvOES epoxy_glColor4xvOES
+#define glColorFormatNV epoxy_glColorFormatNV
+#define glColorFragmentOp1ATI epoxy_glColorFragmentOp1ATI
+#define glColorFragmentOp2ATI epoxy_glColorFragmentOp2ATI
+#define glColorFragmentOp3ATI epoxy_glColorFragmentOp3ATI
+#define glColorMask epoxy_glColorMask
+#define glColorMaskIndexedEXT epoxy_glColorMaskIndexedEXT
+#define glColorMaski epoxy_glColorMaski
+#define glColorMaskiEXT epoxy_glColorMaskiEXT
+#define glColorMaskiOES epoxy_glColorMaskiOES
+#define glColorMaterial epoxy_glColorMaterial
+#define glColorP3ui epoxy_glColorP3ui
+#define glColorP3uiv epoxy_glColorP3uiv
+#define glColorP4ui epoxy_glColorP4ui
+#define glColorP4uiv epoxy_glColorP4uiv
+#define glColorPointer epoxy_glColorPointer
+#define glColorPointerEXT epoxy_glColorPointerEXT
+#define glColorPointerListIBM epoxy_glColorPointerListIBM
+#define glColorPointervINTEL epoxy_glColorPointervINTEL
+#define glColorSubTable epoxy_glColorSubTable
+#define glColorSubTableEXT epoxy_glColorSubTableEXT
+#define glColorTable epoxy_glColorTable
+#define glColorTableEXT epoxy_glColorTableEXT
+#define glColorTableParameterfv epoxy_glColorTableParameterfv
+#define glColorTableParameterfvSGI epoxy_glColorTableParameterfvSGI
+#define glColorTableParameteriv epoxy_glColorTableParameteriv
+#define glColorTableParameterivSGI epoxy_glColorTableParameterivSGI
+#define glColorTableSGI epoxy_glColorTableSGI
+#define glCombinerInputNV epoxy_glCombinerInputNV
+#define glCombinerOutputNV epoxy_glCombinerOutputNV
+#define glCombinerParameterfNV epoxy_glCombinerParameterfNV
+#define glCombinerParameterfvNV epoxy_glCombinerParameterfvNV
+#define glCombinerParameteriNV epoxy_glCombinerParameteriNV
+#define glCombinerParameterivNV epoxy_glCombinerParameterivNV
+#define glCombinerStageParameterfvNV epoxy_glCombinerStageParameterfvNV
+#define glCommandListSegmentsNV epoxy_glCommandListSegmentsNV
+#define glCompileCommandListNV epoxy_glCompileCommandListNV
+#define glCompileShader epoxy_glCompileShader
+#define glCompileShaderARB epoxy_glCompileShaderARB
+#define glCompileShaderIncludeARB epoxy_glCompileShaderIncludeARB
+#define glCompressedMultiTexImage1DEXT epoxy_glCompressedMultiTexImage1DEXT
+#define glCompressedMultiTexImage2DEXT epoxy_glCompressedMultiTexImage2DEXT
+#define glCompressedMultiTexImage3DEXT epoxy_glCompressedMultiTexImage3DEXT
+#define glCompressedMultiTexSubImage1DEXT epoxy_glCompressedMultiTexSubImage1DEXT
+#define glCompressedMultiTexSubImage2DEXT epoxy_glCompressedMultiTexSubImage2DEXT
+#define glCompressedMultiTexSubImage3DEXT epoxy_glCompressedMultiTexSubImage3DEXT
+#define glCompressedTexImage1D epoxy_glCompressedTexImage1D
+#define glCompressedTexImage1DARB epoxy_glCompressedTexImage1DARB
+#define glCompressedTexImage2D epoxy_glCompressedTexImage2D
+#define glCompressedTexImage2DARB epoxy_glCompressedTexImage2DARB
+#define glCompressedTexImage3D epoxy_glCompressedTexImage3D
+#define glCompressedTexImage3DARB epoxy_glCompressedTexImage3DARB
+#define glCompressedTexImage3DOES epoxy_glCompressedTexImage3DOES
+#define glCompressedTexSubImage1D epoxy_glCompressedTexSubImage1D
+#define glCompressedTexSubImage1DARB epoxy_glCompressedTexSubImage1DARB
+#define glCompressedTexSubImage2D epoxy_glCompressedTexSubImage2D
+#define glCompressedTexSubImage2DARB epoxy_glCompressedTexSubImage2DARB
+#define glCompressedTexSubImage3D epoxy_glCompressedTexSubImage3D
+#define glCompressedTexSubImage3DARB epoxy_glCompressedTexSubImage3DARB
+#define glCompressedTexSubImage3DOES epoxy_glCompressedTexSubImage3DOES
+#define glCompressedTextureImage1DEXT epoxy_glCompressedTextureImage1DEXT
+#define glCompressedTextureImage2DEXT epoxy_glCompressedTextureImage2DEXT
+#define glCompressedTextureImage3DEXT epoxy_glCompressedTextureImage3DEXT
+#define glCompressedTextureSubImage1D epoxy_glCompressedTextureSubImage1D
+#define glCompressedTextureSubImage1DEXT epoxy_glCompressedTextureSubImage1DEXT
+#define glCompressedTextureSubImage2D epoxy_glCompressedTextureSubImage2D
+#define glCompressedTextureSubImage2DEXT epoxy_glCompressedTextureSubImage2DEXT
+#define glCompressedTextureSubImage3D epoxy_glCompressedTextureSubImage3D
+#define glCompressedTextureSubImage3DEXT epoxy_glCompressedTextureSubImage3DEXT
+#define glConservativeRasterParameterfNV epoxy_glConservativeRasterParameterfNV
+#define glConservativeRasterParameteriNV epoxy_glConservativeRasterParameteriNV
+#define glConvolutionFilter1D epoxy_glConvolutionFilter1D
+#define glConvolutionFilter1DEXT epoxy_glConvolutionFilter1DEXT
+#define glConvolutionFilter2D epoxy_glConvolutionFilter2D
+#define glConvolutionFilter2DEXT epoxy_glConvolutionFilter2DEXT
+#define glConvolutionParameterf epoxy_glConvolutionParameterf
+#define glConvolutionParameterfEXT epoxy_glConvolutionParameterfEXT
+#define glConvolutionParameterfv epoxy_glConvolutionParameterfv
+#define glConvolutionParameterfvEXT epoxy_glConvolutionParameterfvEXT
+#define glConvolutionParameteri epoxy_glConvolutionParameteri
+#define glConvolutionParameteriEXT epoxy_glConvolutionParameteriEXT
+#define glConvolutionParameteriv epoxy_glConvolutionParameteriv
+#define glConvolutionParameterivEXT epoxy_glConvolutionParameterivEXT
+#define glConvolutionParameterxOES epoxy_glConvolutionParameterxOES
+#define glConvolutionParameterxvOES epoxy_glConvolutionParameterxvOES
+#define glCopyBufferSubData epoxy_glCopyBufferSubData
+#define glCopyBufferSubDataNV epoxy_glCopyBufferSubDataNV
+#define glCopyColorSubTable epoxy_glCopyColorSubTable
+#define glCopyColorSubTableEXT epoxy_glCopyColorSubTableEXT
+#define glCopyColorTable epoxy_glCopyColorTable
+#define glCopyColorTableSGI epoxy_glCopyColorTableSGI
+#define glCopyConvolutionFilter1D epoxy_glCopyConvolutionFilter1D
+#define glCopyConvolutionFilter1DEXT epoxy_glCopyConvolutionFilter1DEXT
+#define glCopyConvolutionFilter2D epoxy_glCopyConvolutionFilter2D
+#define glCopyConvolutionFilter2DEXT epoxy_glCopyConvolutionFilter2DEXT
+#define glCopyImageSubData epoxy_glCopyImageSubData
+#define glCopyImageSubDataEXT epoxy_glCopyImageSubDataEXT
+#define glCopyImageSubDataNV epoxy_glCopyImageSubDataNV
+#define glCopyImageSubDataOES epoxy_glCopyImageSubDataOES
+#define glCopyMultiTexImage1DEXT epoxy_glCopyMultiTexImage1DEXT
+#define glCopyMultiTexImage2DEXT epoxy_glCopyMultiTexImage2DEXT
+#define glCopyMultiTexSubImage1DEXT epoxy_glCopyMultiTexSubImage1DEXT
+#define glCopyMultiTexSubImage2DEXT epoxy_glCopyMultiTexSubImage2DEXT
+#define glCopyMultiTexSubImage3DEXT epoxy_glCopyMultiTexSubImage3DEXT
+#define glCopyNamedBufferSubData epoxy_glCopyNamedBufferSubData
+#define glCopyPathNV epoxy_glCopyPathNV
+#define glCopyPixels epoxy_glCopyPixels
+#define glCopyTexImage1D epoxy_glCopyTexImage1D
+#define glCopyTexImage1DEXT epoxy_glCopyTexImage1DEXT
+#define glCopyTexImage2D epoxy_glCopyTexImage2D
+#define glCopyTexImage2DEXT epoxy_glCopyTexImage2DEXT
+#define glCopyTexSubImage1D epoxy_glCopyTexSubImage1D
+#define glCopyTexSubImage1DEXT epoxy_glCopyTexSubImage1DEXT
+#define glCopyTexSubImage2D epoxy_glCopyTexSubImage2D
+#define glCopyTexSubImage2DEXT epoxy_glCopyTexSubImage2DEXT
+#define glCopyTexSubImage3D epoxy_glCopyTexSubImage3D
+#define glCopyTexSubImage3DEXT epoxy_glCopyTexSubImage3DEXT
+#define glCopyTexSubImage3DOES epoxy_glCopyTexSubImage3DOES
+#define glCopyTextureImage1DEXT epoxy_glCopyTextureImage1DEXT
+#define glCopyTextureImage2DEXT epoxy_glCopyTextureImage2DEXT
+#define glCopyTextureLevelsAPPLE epoxy_glCopyTextureLevelsAPPLE
+#define glCopyTextureSubImage1D epoxy_glCopyTextureSubImage1D
+#define glCopyTextureSubImage1DEXT epoxy_glCopyTextureSubImage1DEXT
+#define glCopyTextureSubImage2D epoxy_glCopyTextureSubImage2D
+#define glCopyTextureSubImage2DEXT epoxy_glCopyTextureSubImage2DEXT
+#define glCopyTextureSubImage3D epoxy_glCopyTextureSubImage3D
+#define glCopyTextureSubImage3DEXT epoxy_glCopyTextureSubImage3DEXT
+#define glCoverFillPathInstancedNV epoxy_glCoverFillPathInstancedNV
+#define glCoverFillPathNV epoxy_glCoverFillPathNV
+#define glCoverStrokePathInstancedNV epoxy_glCoverStrokePathInstancedNV
+#define glCoverStrokePathNV epoxy_glCoverStrokePathNV
+#define glCoverageMaskNV epoxy_glCoverageMaskNV
+#define glCoverageModulationNV epoxy_glCoverageModulationNV
+#define glCoverageModulationTableNV epoxy_glCoverageModulationTableNV
+#define glCoverageOperationNV epoxy_glCoverageOperationNV
+#define glCreateBuffers epoxy_glCreateBuffers
+#define glCreateCommandListsNV epoxy_glCreateCommandListsNV
+#define glCreateFramebuffers epoxy_glCreateFramebuffers
+#define glCreateMemoryObjectsEXT epoxy_glCreateMemoryObjectsEXT
+#define glCreatePerfQueryINTEL epoxy_glCreatePerfQueryINTEL
+#define glCreateProgram epoxy_glCreateProgram
+#define glCreateProgramObjectARB epoxy_glCreateProgramObjectARB
+#define glCreateProgramPipelines epoxy_glCreateProgramPipelines
+#define glCreateProgressFenceNVX epoxy_glCreateProgressFenceNVX
+#define glCreateQueries epoxy_glCreateQueries
+#define glCreateRenderbuffers epoxy_glCreateRenderbuffers
+#define glCreateSamplers epoxy_glCreateSamplers
+#define glCreateShader epoxy_glCreateShader
+#define glCreateShaderObjectARB epoxy_glCreateShaderObjectARB
+#define glCreateShaderProgramEXT epoxy_glCreateShaderProgramEXT
+#define glCreateShaderProgramv epoxy_glCreateShaderProgramv
+#define glCreateShaderProgramvEXT epoxy_glCreateShaderProgramvEXT
+#define glCreateStatesNV epoxy_glCreateStatesNV
+#define glCreateSyncFromCLeventARB epoxy_glCreateSyncFromCLeventARB
+#define glCreateTextures epoxy_glCreateTextures
+#define glCreateTransformFeedbacks epoxy_glCreateTransformFeedbacks
+#define glCreateVertexArrays epoxy_glCreateVertexArrays
+#define glCullFace epoxy_glCullFace
+#define glCullParameterdvEXT epoxy_glCullParameterdvEXT
+#define glCullParameterfvEXT epoxy_glCullParameterfvEXT
+#define glCurrentPaletteMatrixARB epoxy_glCurrentPaletteMatrixARB
+#define glCurrentPaletteMatrixOES epoxy_glCurrentPaletteMatrixOES
+#define glDebugMessageCallback epoxy_glDebugMessageCallback
+#define glDebugMessageCallbackAMD epoxy_glDebugMessageCallbackAMD
+#define glDebugMessageCallbackARB epoxy_glDebugMessageCallbackARB
+#define glDebugMessageCallbackKHR epoxy_glDebugMessageCallbackKHR
+#define glDebugMessageControl epoxy_glDebugMessageControl
+#define glDebugMessageControlARB epoxy_glDebugMessageControlARB
+#define glDebugMessageControlKHR epoxy_glDebugMessageControlKHR
+#define glDebugMessageEnableAMD epoxy_glDebugMessageEnableAMD
+#define glDebugMessageInsert epoxy_glDebugMessageInsert
+#define glDebugMessageInsertAMD epoxy_glDebugMessageInsertAMD
+#define glDebugMessageInsertARB epoxy_glDebugMessageInsertARB
+#define glDebugMessageInsertKHR epoxy_glDebugMessageInsertKHR
+#define glDeformSGIX epoxy_glDeformSGIX
+#define glDeformationMap3dSGIX epoxy_glDeformationMap3dSGIX
+#define glDeformationMap3fSGIX epoxy_glDeformationMap3fSGIX
+#define glDeleteAsyncMarkersSGIX epoxy_glDeleteAsyncMarkersSGIX
+#define glDeleteBuffers epoxy_glDeleteBuffers
+#define glDeleteBuffersARB epoxy_glDeleteBuffersARB
+#define glDeleteCommandListsNV epoxy_glDeleteCommandListsNV
+#define glDeleteFencesAPPLE epoxy_glDeleteFencesAPPLE
+#define glDeleteFencesNV epoxy_glDeleteFencesNV
+#define glDeleteFragmentShaderATI epoxy_glDeleteFragmentShaderATI
+#define glDeleteFramebuffers epoxy_glDeleteFramebuffers
+#define glDeleteFramebuffersEXT epoxy_glDeleteFramebuffersEXT
+#define glDeleteFramebuffersOES epoxy_glDeleteFramebuffersOES
+#define glDeleteLists epoxy_glDeleteLists
+#define glDeleteMemoryObjectsEXT epoxy_glDeleteMemoryObjectsEXT
+#define glDeleteNamedStringARB epoxy_glDeleteNamedStringARB
+#define glDeleteNamesAMD epoxy_glDeleteNamesAMD
+#define glDeleteObjectARB epoxy_glDeleteObjectARB
+#define glDeleteOcclusionQueriesNV epoxy_glDeleteOcclusionQueriesNV
+#define glDeletePathsNV epoxy_glDeletePathsNV
+#define glDeletePerfMonitorsAMD epoxy_glDeletePerfMonitorsAMD
+#define glDeletePerfQueryINTEL epoxy_glDeletePerfQueryINTEL
+#define glDeleteProgram epoxy_glDeleteProgram
+#define glDeleteProgramPipelines epoxy_glDeleteProgramPipelines
+#define glDeleteProgramPipelinesEXT epoxy_glDeleteProgramPipelinesEXT
+#define glDeleteProgramsARB epoxy_glDeleteProgramsARB
+#define glDeleteProgramsNV epoxy_glDeleteProgramsNV
+#define glDeleteQueries epoxy_glDeleteQueries
+#define glDeleteQueriesARB epoxy_glDeleteQueriesARB
+#define glDeleteQueriesEXT epoxy_glDeleteQueriesEXT
+#define glDeleteQueryResourceTagNV epoxy_glDeleteQueryResourceTagNV
+#define glDeleteRenderbuffers epoxy_glDeleteRenderbuffers
+#define glDeleteRenderbuffersEXT epoxy_glDeleteRenderbuffersEXT
+#define glDeleteRenderbuffersOES epoxy_glDeleteRenderbuffersOES
+#define glDeleteSamplers epoxy_glDeleteSamplers
+#define glDeleteSemaphoresEXT epoxy_glDeleteSemaphoresEXT
+#define glDeleteShader epoxy_glDeleteShader
+#define glDeleteStatesNV epoxy_glDeleteStatesNV
+#define glDeleteSync epoxy_glDeleteSync
+#define glDeleteSyncAPPLE epoxy_glDeleteSyncAPPLE
+#define glDeleteTextures epoxy_glDeleteTextures
+#define glDeleteTexturesEXT epoxy_glDeleteTexturesEXT
+#define glDeleteTransformFeedbacks epoxy_glDeleteTransformFeedbacks
+#define glDeleteTransformFeedbacksNV epoxy_glDeleteTransformFeedbacksNV
+#define glDeleteVertexArrays epoxy_glDeleteVertexArrays
+#define glDeleteVertexArraysAPPLE epoxy_glDeleteVertexArraysAPPLE
+#define glDeleteVertexArraysOES epoxy_glDeleteVertexArraysOES
+#define glDeleteVertexShaderEXT epoxy_glDeleteVertexShaderEXT
+#define glDepthBoundsEXT epoxy_glDepthBoundsEXT
+#define glDepthBoundsdNV epoxy_glDepthBoundsdNV
+#define glDepthFunc epoxy_glDepthFunc
+#define glDepthMask epoxy_glDepthMask
+#define glDepthRange epoxy_glDepthRange
+#define glDepthRangeArrayfvNV epoxy_glDepthRangeArrayfvNV
+#define glDepthRangeArrayfvOES epoxy_glDepthRangeArrayfvOES
+#define glDepthRangeArrayv epoxy_glDepthRangeArrayv
+#define glDepthRangeIndexed epoxy_glDepthRangeIndexed
+#define glDepthRangeIndexedfNV epoxy_glDepthRangeIndexedfNV
+#define glDepthRangeIndexedfOES epoxy_glDepthRangeIndexedfOES
+#define glDepthRangedNV epoxy_glDepthRangedNV
+#define glDepthRangef epoxy_glDepthRangef
+#define glDepthRangefOES epoxy_glDepthRangefOES
+#define glDepthRangex epoxy_glDepthRangex
+#define glDepthRangexOES epoxy_glDepthRangexOES
+#define glDetachObjectARB epoxy_glDetachObjectARB
+#define glDetachShader epoxy_glDetachShader
+#define glDetailTexFuncSGIS epoxy_glDetailTexFuncSGIS
+#define glDisable epoxy_glDisable
+#define glDisableClientState epoxy_glDisableClientState
+#define glDisableClientStateIndexedEXT epoxy_glDisableClientStateIndexedEXT
+#define glDisableClientStateiEXT epoxy_glDisableClientStateiEXT
+#define glDisableDriverControlQCOM epoxy_glDisableDriverControlQCOM
+#define glDisableIndexedEXT epoxy_glDisableIndexedEXT
+#define glDisableVariantClientStateEXT epoxy_glDisableVariantClientStateEXT
+#define glDisableVertexArrayAttrib epoxy_glDisableVertexArrayAttrib
+#define glDisableVertexArrayAttribEXT epoxy_glDisableVertexArrayAttribEXT
+#define glDisableVertexArrayEXT epoxy_glDisableVertexArrayEXT
+#define glDisableVertexAttribAPPLE epoxy_glDisableVertexAttribAPPLE
+#define glDisableVertexAttribArray epoxy_glDisableVertexAttribArray
+#define glDisableVertexAttribArrayARB epoxy_glDisableVertexAttribArrayARB
+#define glDisablei epoxy_glDisablei
+#define glDisableiEXT epoxy_glDisableiEXT
+#define glDisableiNV epoxy_glDisableiNV
+#define glDisableiOES epoxy_glDisableiOES
+#define glDiscardFramebufferEXT epoxy_glDiscardFramebufferEXT
+#define glDispatchCompute epoxy_glDispatchCompute
+#define glDispatchComputeGroupSizeARB epoxy_glDispatchComputeGroupSizeARB
+#define glDispatchComputeIndirect epoxy_glDispatchComputeIndirect
+#define glDrawArrays epoxy_glDrawArrays
+#define glDrawArraysEXT epoxy_glDrawArraysEXT
+#define glDrawArraysIndirect epoxy_glDrawArraysIndirect
+#define glDrawArraysInstanced epoxy_glDrawArraysInstanced
+#define glDrawArraysInstancedANGLE epoxy_glDrawArraysInstancedANGLE
+#define glDrawArraysInstancedARB epoxy_glDrawArraysInstancedARB
+#define glDrawArraysInstancedBaseInstance epoxy_glDrawArraysInstancedBaseInstance
+#define glDrawArraysInstancedBaseInstanceEXT epoxy_glDrawArraysInstancedBaseInstanceEXT
+#define glDrawArraysInstancedEXT epoxy_glDrawArraysInstancedEXT
+#define glDrawArraysInstancedNV epoxy_glDrawArraysInstancedNV
+#define glDrawBuffer epoxy_glDrawBuffer
+#define glDrawBuffers epoxy_glDrawBuffers
+#define glDrawBuffersARB epoxy_glDrawBuffersARB
+#define glDrawBuffersATI epoxy_glDrawBuffersATI
+#define glDrawBuffersEXT epoxy_glDrawBuffersEXT
+#define glDrawBuffersIndexedEXT epoxy_glDrawBuffersIndexedEXT
+#define glDrawBuffersNV epoxy_glDrawBuffersNV
+#define glDrawCommandsAddressNV epoxy_glDrawCommandsAddressNV
+#define glDrawCommandsNV epoxy_glDrawCommandsNV
+#define glDrawCommandsStatesAddressNV epoxy_glDrawCommandsStatesAddressNV
+#define glDrawCommandsStatesNV epoxy_glDrawCommandsStatesNV
+#define glDrawElementArrayAPPLE epoxy_glDrawElementArrayAPPLE
+#define glDrawElementArrayATI epoxy_glDrawElementArrayATI
+#define glDrawElements epoxy_glDrawElements
+#define glDrawElementsBaseVertex epoxy_glDrawElementsBaseVertex
+#define glDrawElementsBaseVertexEXT epoxy_glDrawElementsBaseVertexEXT
+#define glDrawElementsBaseVertexOES epoxy_glDrawElementsBaseVertexOES
+#define glDrawElementsIndirect epoxy_glDrawElementsIndirect
+#define glDrawElementsInstanced epoxy_glDrawElementsInstanced
+#define glDrawElementsInstancedANGLE epoxy_glDrawElementsInstancedANGLE
+#define glDrawElementsInstancedARB epoxy_glDrawElementsInstancedARB
+#define glDrawElementsInstancedBaseInstance epoxy_glDrawElementsInstancedBaseInstance
+#define glDrawElementsInstancedBaseInstanceEXT epoxy_glDrawElementsInstancedBaseInstanceEXT
+#define glDrawElementsInstancedBaseVertex epoxy_glDrawElementsInstancedBaseVertex
+#define glDrawElementsInstancedBaseVertexBaseInstance epoxy_glDrawElementsInstancedBaseVertexBaseInstance
+#define glDrawElementsInstancedBaseVertexBaseInstanceEXT epoxy_glDrawElementsInstancedBaseVertexBaseInstanceEXT
+#define glDrawElementsInstancedBaseVertexEXT epoxy_glDrawElementsInstancedBaseVertexEXT
+#define glDrawElementsInstancedBaseVertexOES epoxy_glDrawElementsInstancedBaseVertexOES
+#define glDrawElementsInstancedEXT epoxy_glDrawElementsInstancedEXT
+#define glDrawElementsInstancedNV epoxy_glDrawElementsInstancedNV
+#define glDrawMeshArraysSUN epoxy_glDrawMeshArraysSUN
+#define glDrawMeshTasksIndirectNV epoxy_glDrawMeshTasksIndirectNV
+#define glDrawMeshTasksNV epoxy_glDrawMeshTasksNV
+#define glDrawPixels epoxy_glDrawPixels
+#define glDrawRangeElementArrayAPPLE epoxy_glDrawRangeElementArrayAPPLE
+#define glDrawRangeElementArrayATI epoxy_glDrawRangeElementArrayATI
+#define glDrawRangeElements epoxy_glDrawRangeElements
+#define glDrawRangeElementsBaseVertex epoxy_glDrawRangeElementsBaseVertex
+#define glDrawRangeElementsBaseVertexEXT epoxy_glDrawRangeElementsBaseVertexEXT
+#define glDrawRangeElementsBaseVertexOES epoxy_glDrawRangeElementsBaseVertexOES
+#define glDrawRangeElementsEXT epoxy_glDrawRangeElementsEXT
+#define glDrawTexfOES epoxy_glDrawTexfOES
+#define glDrawTexfvOES epoxy_glDrawTexfvOES
+#define glDrawTexiOES epoxy_glDrawTexiOES
+#define glDrawTexivOES epoxy_glDrawTexivOES
+#define glDrawTexsOES epoxy_glDrawTexsOES
+#define glDrawTexsvOES epoxy_glDrawTexsvOES
+#define glDrawTextureNV epoxy_glDrawTextureNV
+#define glDrawTexxOES epoxy_glDrawTexxOES
+#define glDrawTexxvOES epoxy_glDrawTexxvOES
+#define glDrawTransformFeedback epoxy_glDrawTransformFeedback
+#define glDrawTransformFeedbackEXT epoxy_glDrawTransformFeedbackEXT
+#define glDrawTransformFeedbackInstanced epoxy_glDrawTransformFeedbackInstanced
+#define glDrawTransformFeedbackInstancedEXT epoxy_glDrawTransformFeedbackInstancedEXT
+#define glDrawTransformFeedbackNV epoxy_glDrawTransformFeedbackNV
+#define glDrawTransformFeedbackStream epoxy_glDrawTransformFeedbackStream
+#define glDrawTransformFeedbackStreamInstanced epoxy_glDrawTransformFeedbackStreamInstanced
+#define glDrawVkImageNV epoxy_glDrawVkImageNV
+#define glEGLImageTargetRenderbufferStorageOES epoxy_glEGLImageTargetRenderbufferStorageOES
+#define glEGLImageTargetTexStorageEXT epoxy_glEGLImageTargetTexStorageEXT
+#define glEGLImageTargetTexture2DOES epoxy_glEGLImageTargetTexture2DOES
+#define glEGLImageTargetTextureStorageEXT epoxy_glEGLImageTargetTextureStorageEXT
+#define glEdgeFlag epoxy_glEdgeFlag
+#define glEdgeFlagFormatNV epoxy_glEdgeFlagFormatNV
+#define glEdgeFlagPointer epoxy_glEdgeFlagPointer
+#define glEdgeFlagPointerEXT epoxy_glEdgeFlagPointerEXT
+#define glEdgeFlagPointerListIBM epoxy_glEdgeFlagPointerListIBM
+#define glEdgeFlagv epoxy_glEdgeFlagv
+#define glElementPointerAPPLE epoxy_glElementPointerAPPLE
+#define glElementPointerATI epoxy_glElementPointerATI
+#define glEnable epoxy_glEnable
+#define glEnableClientState epoxy_glEnableClientState
+#define glEnableClientStateIndexedEXT epoxy_glEnableClientStateIndexedEXT
+#define glEnableClientStateiEXT epoxy_glEnableClientStateiEXT
+#define glEnableDriverControlQCOM epoxy_glEnableDriverControlQCOM
+#define glEnableIndexedEXT epoxy_glEnableIndexedEXT
+#define glEnableVariantClientStateEXT epoxy_glEnableVariantClientStateEXT
+#define glEnableVertexArrayAttrib epoxy_glEnableVertexArrayAttrib
+#define glEnableVertexArrayAttribEXT epoxy_glEnableVertexArrayAttribEXT
+#define glEnableVertexArrayEXT epoxy_glEnableVertexArrayEXT
+#define glEnableVertexAttribAPPLE epoxy_glEnableVertexAttribAPPLE
+#define glEnableVertexAttribArray epoxy_glEnableVertexAttribArray
+#define glEnableVertexAttribArrayARB epoxy_glEnableVertexAttribArrayARB
+#define glEnablei epoxy_glEnablei
+#define glEnableiEXT epoxy_glEnableiEXT
+#define glEnableiNV epoxy_glEnableiNV
+#define glEnableiOES epoxy_glEnableiOES
+#define glEnd epoxy_glEnd
+#define glEndConditionalRender epoxy_glEndConditionalRender
+#define glEndConditionalRenderNV epoxy_glEndConditionalRenderNV
+#define glEndConditionalRenderNVX epoxy_glEndConditionalRenderNVX
+#define glEndFragmentShaderATI epoxy_glEndFragmentShaderATI
+#define glEndList epoxy_glEndList
+#define glEndOcclusionQueryNV epoxy_glEndOcclusionQueryNV
+#define glEndPerfMonitorAMD epoxy_glEndPerfMonitorAMD
+#define glEndPerfQueryINTEL epoxy_glEndPerfQueryINTEL
+#define glEndQuery epoxy_glEndQuery
+#define glEndQueryARB epoxy_glEndQueryARB
+#define glEndQueryEXT epoxy_glEndQueryEXT
+#define glEndQueryIndexed epoxy_glEndQueryIndexed
+#define glEndTilingQCOM epoxy_glEndTilingQCOM
+#define glEndTransformFeedback epoxy_glEndTransformFeedback
+#define glEndTransformFeedbackEXT epoxy_glEndTransformFeedbackEXT
+#define glEndTransformFeedbackNV epoxy_glEndTransformFeedbackNV
+#define glEndVertexShaderEXT epoxy_glEndVertexShaderEXT
+#define glEndVideoCaptureNV epoxy_glEndVideoCaptureNV
+#define glEvalCoord1d epoxy_glEvalCoord1d
+#define glEvalCoord1dv epoxy_glEvalCoord1dv
+#define glEvalCoord1f epoxy_glEvalCoord1f
+#define glEvalCoord1fv epoxy_glEvalCoord1fv
+#define glEvalCoord1xOES epoxy_glEvalCoord1xOES
+#define glEvalCoord1xvOES epoxy_glEvalCoord1xvOES
+#define glEvalCoord2d epoxy_glEvalCoord2d
+#define glEvalCoord2dv epoxy_glEvalCoord2dv
+#define glEvalCoord2f epoxy_glEvalCoord2f
+#define glEvalCoord2fv epoxy_glEvalCoord2fv
+#define glEvalCoord2xOES epoxy_glEvalCoord2xOES
+#define glEvalCoord2xvOES epoxy_glEvalCoord2xvOES
+#define glEvalMapsNV epoxy_glEvalMapsNV
+#define glEvalMesh1 epoxy_glEvalMesh1
+#define glEvalMesh2 epoxy_glEvalMesh2
+#define glEvalPoint1 epoxy_glEvalPoint1
+#define glEvalPoint2 epoxy_glEvalPoint2
+#define glEvaluateDepthValuesARB epoxy_glEvaluateDepthValuesARB
+#define glExecuteProgramNV epoxy_glExecuteProgramNV
+#define glExtGetBufferPointervQCOM epoxy_glExtGetBufferPointervQCOM
+#define glExtGetBuffersQCOM epoxy_glExtGetBuffersQCOM
+#define glExtGetFramebuffersQCOM epoxy_glExtGetFramebuffersQCOM
+#define glExtGetProgramBinarySourceQCOM epoxy_glExtGetProgramBinarySourceQCOM
+#define glExtGetProgramsQCOM epoxy_glExtGetProgramsQCOM
+#define glExtGetRenderbuffersQCOM epoxy_glExtGetRenderbuffersQCOM
+#define glExtGetShadersQCOM epoxy_glExtGetShadersQCOM
+#define glExtGetTexLevelParameterivQCOM epoxy_glExtGetTexLevelParameterivQCOM
+#define glExtGetTexSubImageQCOM epoxy_glExtGetTexSubImageQCOM
+#define glExtGetTexturesQCOM epoxy_glExtGetTexturesQCOM
+#define glExtIsProgramBinaryQCOM epoxy_glExtIsProgramBinaryQCOM
+#define glExtTexObjectStateOverrideiQCOM epoxy_glExtTexObjectStateOverrideiQCOM
+#define glExtractComponentEXT epoxy_glExtractComponentEXT
+#define glFeedbackBuffer epoxy_glFeedbackBuffer
+#define glFeedbackBufferxOES epoxy_glFeedbackBufferxOES
+#define glFenceSync epoxy_glFenceSync
+#define glFenceSyncAPPLE epoxy_glFenceSyncAPPLE
+#define glFinalCombinerInputNV epoxy_glFinalCombinerInputNV
+#define glFinish epoxy_glFinish
+#define glFinishAsyncSGIX epoxy_glFinishAsyncSGIX
+#define glFinishFenceAPPLE epoxy_glFinishFenceAPPLE
+#define glFinishFenceNV epoxy_glFinishFenceNV
+#define glFinishObjectAPPLE epoxy_glFinishObjectAPPLE
+#define glFinishTextureSUNX epoxy_glFinishTextureSUNX
+#define glFlush epoxy_glFlush
+#define glFlushMappedBufferRange epoxy_glFlushMappedBufferRange
+#define glFlushMappedBufferRangeAPPLE epoxy_glFlushMappedBufferRangeAPPLE
+#define glFlushMappedBufferRangeEXT epoxy_glFlushMappedBufferRangeEXT
+#define glFlushMappedNamedBufferRange epoxy_glFlushMappedNamedBufferRange
+#define glFlushMappedNamedBufferRangeEXT epoxy_glFlushMappedNamedBufferRangeEXT
+#define glFlushPixelDataRangeNV epoxy_glFlushPixelDataRangeNV
+#define glFlushRasterSGIX epoxy_glFlushRasterSGIX
+#define glFlushStaticDataIBM epoxy_glFlushStaticDataIBM
+#define glFlushVertexArrayRangeAPPLE epoxy_glFlushVertexArrayRangeAPPLE
+#define glFlushVertexArrayRangeNV epoxy_glFlushVertexArrayRangeNV
+#define glFogCoordFormatNV epoxy_glFogCoordFormatNV
+#define glFogCoordPointer epoxy_glFogCoordPointer
+#define glFogCoordPointerEXT epoxy_glFogCoordPointerEXT
+#define glFogCoordPointerListIBM epoxy_glFogCoordPointerListIBM
+#define glFogCoordd epoxy_glFogCoordd
+#define glFogCoorddEXT epoxy_glFogCoorddEXT
+#define glFogCoorddv epoxy_glFogCoorddv
+#define glFogCoorddvEXT epoxy_glFogCoorddvEXT
+#define glFogCoordf epoxy_glFogCoordf
+#define glFogCoordfEXT epoxy_glFogCoordfEXT
+#define glFogCoordfv epoxy_glFogCoordfv
+#define glFogCoordfvEXT epoxy_glFogCoordfvEXT
+#define glFogCoordhNV epoxy_glFogCoordhNV
+#define glFogCoordhvNV epoxy_glFogCoordhvNV
+#define glFogFuncSGIS epoxy_glFogFuncSGIS
+#define glFogf epoxy_glFogf
+#define glFogfv epoxy_glFogfv
+#define glFogi epoxy_glFogi
+#define glFogiv epoxy_glFogiv
+#define glFogx epoxy_glFogx
+#define glFogxOES epoxy_glFogxOES
+#define glFogxv epoxy_glFogxv
+#define glFogxvOES epoxy_glFogxvOES
+#define glFragmentColorMaterialSGIX epoxy_glFragmentColorMaterialSGIX
+#define glFragmentCoverageColorNV epoxy_glFragmentCoverageColorNV
+#define glFragmentLightModelfSGIX epoxy_glFragmentLightModelfSGIX
+#define glFragmentLightModelfvSGIX epoxy_glFragmentLightModelfvSGIX
+#define glFragmentLightModeliSGIX epoxy_glFragmentLightModeliSGIX
+#define glFragmentLightModelivSGIX epoxy_glFragmentLightModelivSGIX
+#define glFragmentLightfSGIX epoxy_glFragmentLightfSGIX
+#define glFragmentLightfvSGIX epoxy_glFragmentLightfvSGIX
+#define glFragmentLightiSGIX epoxy_glFragmentLightiSGIX
+#define glFragmentLightivSGIX epoxy_glFragmentLightivSGIX
+#define glFragmentMaterialfSGIX epoxy_glFragmentMaterialfSGIX
+#define glFragmentMaterialfvSGIX epoxy_glFragmentMaterialfvSGIX
+#define glFragmentMaterialiSGIX epoxy_glFragmentMaterialiSGIX
+#define glFragmentMaterialivSGIX epoxy_glFragmentMaterialivSGIX
+#define glFrameTerminatorGREMEDY epoxy_glFrameTerminatorGREMEDY
+#define glFrameZoomSGIX epoxy_glFrameZoomSGIX
+#define glFramebufferDrawBufferEXT epoxy_glFramebufferDrawBufferEXT
+#define glFramebufferDrawBuffersEXT epoxy_glFramebufferDrawBuffersEXT
+#define glFramebufferFetchBarrierEXT epoxy_glFramebufferFetchBarrierEXT
+#define glFramebufferFetchBarrierQCOM epoxy_glFramebufferFetchBarrierQCOM
+#define glFramebufferFoveationConfigQCOM epoxy_glFramebufferFoveationConfigQCOM
+#define glFramebufferFoveationParametersQCOM epoxy_glFramebufferFoveationParametersQCOM
+#define glFramebufferParameteri epoxy_glFramebufferParameteri
+#define glFramebufferParameteriMESA epoxy_glFramebufferParameteriMESA
+#define glFramebufferPixelLocalStorageSizeEXT epoxy_glFramebufferPixelLocalStorageSizeEXT
+#define glFramebufferReadBufferEXT epoxy_glFramebufferReadBufferEXT
+#define glFramebufferRenderbuffer epoxy_glFramebufferRenderbuffer
+#define glFramebufferRenderbufferEXT epoxy_glFramebufferRenderbufferEXT
+#define glFramebufferRenderbufferOES epoxy_glFramebufferRenderbufferOES
+#define glFramebufferSampleLocationsfvARB epoxy_glFramebufferSampleLocationsfvARB
+#define glFramebufferSampleLocationsfvNV epoxy_glFramebufferSampleLocationsfvNV
+#define glFramebufferSamplePositionsfvAMD epoxy_glFramebufferSamplePositionsfvAMD
+#define glFramebufferTexture epoxy_glFramebufferTexture
+#define glFramebufferTexture1D epoxy_glFramebufferTexture1D
+#define glFramebufferTexture1DEXT epoxy_glFramebufferTexture1DEXT
+#define glFramebufferTexture2D epoxy_glFramebufferTexture2D
+#define glFramebufferTexture2DDownsampleIMG epoxy_glFramebufferTexture2DDownsampleIMG
+#define glFramebufferTexture2DEXT epoxy_glFramebufferTexture2DEXT
+#define glFramebufferTexture2DMultisampleEXT epoxy_glFramebufferTexture2DMultisampleEXT
+#define glFramebufferTexture2DMultisampleIMG epoxy_glFramebufferTexture2DMultisampleIMG
+#define glFramebufferTexture2DOES epoxy_glFramebufferTexture2DOES
+#define glFramebufferTexture3D epoxy_glFramebufferTexture3D
+#define glFramebufferTexture3DEXT epoxy_glFramebufferTexture3DEXT
+#define glFramebufferTexture3DOES epoxy_glFramebufferTexture3DOES
+#define glFramebufferTextureARB epoxy_glFramebufferTextureARB
+#define glFramebufferTextureEXT epoxy_glFramebufferTextureEXT
+#define glFramebufferTextureFaceARB epoxy_glFramebufferTextureFaceARB
+#define glFramebufferTextureFaceEXT epoxy_glFramebufferTextureFaceEXT
+#define glFramebufferTextureLayer epoxy_glFramebufferTextureLayer
+#define glFramebufferTextureLayerARB epoxy_glFramebufferTextureLayerARB
+#define glFramebufferTextureLayerDownsampleIMG epoxy_glFramebufferTextureLayerDownsampleIMG
+#define glFramebufferTextureLayerEXT epoxy_glFramebufferTextureLayerEXT
+#define glFramebufferTextureMultisampleMultiviewOVR epoxy_glFramebufferTextureMultisampleMultiviewOVR
+#define glFramebufferTextureMultiviewOVR epoxy_glFramebufferTextureMultiviewOVR
+#define glFramebufferTextureOES epoxy_glFramebufferTextureOES
+#define glFreeObjectBufferATI epoxy_glFreeObjectBufferATI
+#define glFrontFace epoxy_glFrontFace
+#define glFrustum epoxy_glFrustum
+#define glFrustumf epoxy_glFrustumf
+#define glFrustumfOES epoxy_glFrustumfOES
+#define glFrustumx epoxy_glFrustumx
+#define glFrustumxOES epoxy_glFrustumxOES
+#define glGenAsyncMarkersSGIX epoxy_glGenAsyncMarkersSGIX
+#define glGenBuffers epoxy_glGenBuffers
+#define glGenBuffersARB epoxy_glGenBuffersARB
+#define glGenFencesAPPLE epoxy_glGenFencesAPPLE
+#define glGenFencesNV epoxy_glGenFencesNV
+#define glGenFragmentShadersATI epoxy_glGenFragmentShadersATI
+#define glGenFramebuffers epoxy_glGenFramebuffers
+#define glGenFramebuffersEXT epoxy_glGenFramebuffersEXT
+#define glGenFramebuffersOES epoxy_glGenFramebuffersOES
+#define glGenLists epoxy_glGenLists
+#define glGenNamesAMD epoxy_glGenNamesAMD
+#define glGenOcclusionQueriesNV epoxy_glGenOcclusionQueriesNV
+#define glGenPathsNV epoxy_glGenPathsNV
+#define glGenPerfMonitorsAMD epoxy_glGenPerfMonitorsAMD
+#define glGenProgramPipelines epoxy_glGenProgramPipelines
+#define glGenProgramPipelinesEXT epoxy_glGenProgramPipelinesEXT
+#define glGenProgramsARB epoxy_glGenProgramsARB
+#define glGenProgramsNV epoxy_glGenProgramsNV
+#define glGenQueries epoxy_glGenQueries
+#define glGenQueriesARB epoxy_glGenQueriesARB
+#define glGenQueriesEXT epoxy_glGenQueriesEXT
+#define glGenQueryResourceTagNV epoxy_glGenQueryResourceTagNV
+#define glGenRenderbuffers epoxy_glGenRenderbuffers
+#define glGenRenderbuffersEXT epoxy_glGenRenderbuffersEXT
+#define glGenRenderbuffersOES epoxy_glGenRenderbuffersOES
+#define glGenSamplers epoxy_glGenSamplers
+#define glGenSemaphoresEXT epoxy_glGenSemaphoresEXT
+#define glGenSymbolsEXT epoxy_glGenSymbolsEXT
+#define glGenTextures epoxy_glGenTextures
+#define glGenTexturesEXT epoxy_glGenTexturesEXT
+#define glGenTransformFeedbacks epoxy_glGenTransformFeedbacks
+#define glGenTransformFeedbacksNV epoxy_glGenTransformFeedbacksNV
+#define glGenVertexArrays epoxy_glGenVertexArrays
+#define glGenVertexArraysAPPLE epoxy_glGenVertexArraysAPPLE
+#define glGenVertexArraysOES epoxy_glGenVertexArraysOES
+#define glGenVertexShadersEXT epoxy_glGenVertexShadersEXT
+#define glGenerateMipmap epoxy_glGenerateMipmap
+#define glGenerateMipmapEXT epoxy_glGenerateMipmapEXT
+#define glGenerateMipmapOES epoxy_glGenerateMipmapOES
+#define glGenerateMultiTexMipmapEXT epoxy_glGenerateMultiTexMipmapEXT
+#define glGenerateTextureMipmap epoxy_glGenerateTextureMipmap
+#define glGenerateTextureMipmapEXT epoxy_glGenerateTextureMipmapEXT
+#define glGetActiveAtomicCounterBufferiv epoxy_glGetActiveAtomicCounterBufferiv
+#define glGetActiveAttrib epoxy_glGetActiveAttrib
+#define glGetActiveAttribARB epoxy_glGetActiveAttribARB
+#define glGetActiveSubroutineName epoxy_glGetActiveSubroutineName
+#define glGetActiveSubroutineUniformName epoxy_glGetActiveSubroutineUniformName
+#define glGetActiveSubroutineUniformiv epoxy_glGetActiveSubroutineUniformiv
+#define glGetActiveUniform epoxy_glGetActiveUniform
+#define glGetActiveUniformARB epoxy_glGetActiveUniformARB
+#define glGetActiveUniformBlockName epoxy_glGetActiveUniformBlockName
+#define glGetActiveUniformBlockiv epoxy_glGetActiveUniformBlockiv
+#define glGetActiveUniformName epoxy_glGetActiveUniformName
+#define glGetActiveUniformsiv epoxy_glGetActiveUniformsiv
+#define glGetActiveVaryingNV epoxy_glGetActiveVaryingNV
+#define glGetArrayObjectfvATI epoxy_glGetArrayObjectfvATI
+#define glGetArrayObjectivATI epoxy_glGetArrayObjectivATI
+#define glGetAttachedObjectsARB epoxy_glGetAttachedObjectsARB
+#define glGetAttachedShaders epoxy_glGetAttachedShaders
+#define glGetAttribLocation epoxy_glGetAttribLocation
+#define glGetAttribLocationARB epoxy_glGetAttribLocationARB
+#define glGetBooleanIndexedvEXT epoxy_glGetBooleanIndexedvEXT
+#define glGetBooleani_v epoxy_glGetBooleani_v
+#define glGetBooleanv epoxy_glGetBooleanv
+#define glGetBufferParameteri64v epoxy_glGetBufferParameteri64v
+#define glGetBufferParameteriv epoxy_glGetBufferParameteriv
+#define glGetBufferParameterivARB epoxy_glGetBufferParameterivARB
+#define glGetBufferParameterui64vNV epoxy_glGetBufferParameterui64vNV
+#define glGetBufferPointerv epoxy_glGetBufferPointerv
+#define glGetBufferPointervARB epoxy_glGetBufferPointervARB
+#define glGetBufferPointervOES epoxy_glGetBufferPointervOES
+#define glGetBufferSubData epoxy_glGetBufferSubData
+#define glGetBufferSubDataARB epoxy_glGetBufferSubDataARB
+#define glGetClipPlane epoxy_glGetClipPlane
+#define glGetClipPlanef epoxy_glGetClipPlanef
+#define glGetClipPlanefOES epoxy_glGetClipPlanefOES
+#define glGetClipPlanex epoxy_glGetClipPlanex
+#define glGetClipPlanexOES epoxy_glGetClipPlanexOES
+#define glGetColorTable epoxy_glGetColorTable
+#define glGetColorTableEXT epoxy_glGetColorTableEXT
+#define glGetColorTableParameterfv epoxy_glGetColorTableParameterfv
+#define glGetColorTableParameterfvEXT epoxy_glGetColorTableParameterfvEXT
+#define glGetColorTableParameterfvSGI epoxy_glGetColorTableParameterfvSGI
+#define glGetColorTableParameteriv epoxy_glGetColorTableParameteriv
+#define glGetColorTableParameterivEXT epoxy_glGetColorTableParameterivEXT
+#define glGetColorTableParameterivSGI epoxy_glGetColorTableParameterivSGI
+#define glGetColorTableSGI epoxy_glGetColorTableSGI
+#define glGetCombinerInputParameterfvNV epoxy_glGetCombinerInputParameterfvNV
+#define glGetCombinerInputParameterivNV epoxy_glGetCombinerInputParameterivNV
+#define glGetCombinerOutputParameterfvNV epoxy_glGetCombinerOutputParameterfvNV
+#define glGetCombinerOutputParameterivNV epoxy_glGetCombinerOutputParameterivNV
+#define glGetCombinerStageParameterfvNV epoxy_glGetCombinerStageParameterfvNV
+#define glGetCommandHeaderNV epoxy_glGetCommandHeaderNV
+#define glGetCompressedMultiTexImageEXT epoxy_glGetCompressedMultiTexImageEXT
+#define glGetCompressedTexImage epoxy_glGetCompressedTexImage
+#define glGetCompressedTexImageARB epoxy_glGetCompressedTexImageARB
+#define glGetCompressedTextureImage epoxy_glGetCompressedTextureImage
+#define glGetCompressedTextureImageEXT epoxy_glGetCompressedTextureImageEXT
+#define glGetCompressedTextureSubImage epoxy_glGetCompressedTextureSubImage
+#define glGetConvolutionFilter epoxy_glGetConvolutionFilter
+#define glGetConvolutionFilterEXT epoxy_glGetConvolutionFilterEXT
+#define glGetConvolutionParameterfv epoxy_glGetConvolutionParameterfv
+#define glGetConvolutionParameterfvEXT epoxy_glGetConvolutionParameterfvEXT
+#define glGetConvolutionParameteriv epoxy_glGetConvolutionParameteriv
+#define glGetConvolutionParameterivEXT epoxy_glGetConvolutionParameterivEXT
+#define glGetConvolutionParameterxvOES epoxy_glGetConvolutionParameterxvOES
+#define glGetCoverageModulationTableNV epoxy_glGetCoverageModulationTableNV
+#define glGetDebugMessageLog epoxy_glGetDebugMessageLog
+#define glGetDebugMessageLogAMD epoxy_glGetDebugMessageLogAMD
+#define glGetDebugMessageLogARB epoxy_glGetDebugMessageLogARB
+#define glGetDebugMessageLogKHR epoxy_glGetDebugMessageLogKHR
+#define glGetDetailTexFuncSGIS epoxy_glGetDetailTexFuncSGIS
+#define glGetDoubleIndexedvEXT epoxy_glGetDoubleIndexedvEXT
+#define glGetDoublei_v epoxy_glGetDoublei_v
+#define glGetDoublei_vEXT epoxy_glGetDoublei_vEXT
+#define glGetDoublev epoxy_glGetDoublev
+#define glGetDriverControlStringQCOM epoxy_glGetDriverControlStringQCOM
+#define glGetDriverControlsQCOM epoxy_glGetDriverControlsQCOM
+#define glGetError epoxy_glGetError
+#define glGetFenceivNV epoxy_glGetFenceivNV
+#define glGetFinalCombinerInputParameterfvNV epoxy_glGetFinalCombinerInputParameterfvNV
+#define glGetFinalCombinerInputParameterivNV epoxy_glGetFinalCombinerInputParameterivNV
+#define glGetFirstPerfQueryIdINTEL epoxy_glGetFirstPerfQueryIdINTEL
+#define glGetFixedv epoxy_glGetFixedv
+#define glGetFixedvOES epoxy_glGetFixedvOES
+#define glGetFloatIndexedvEXT epoxy_glGetFloatIndexedvEXT
+#define glGetFloati_v epoxy_glGetFloati_v
+#define glGetFloati_vEXT epoxy_glGetFloati_vEXT
+#define glGetFloati_vNV epoxy_glGetFloati_vNV
+#define glGetFloati_vOES epoxy_glGetFloati_vOES
+#define glGetFloatv epoxy_glGetFloatv
+#define glGetFogFuncSGIS epoxy_glGetFogFuncSGIS
+#define glGetFragDataIndex epoxy_glGetFragDataIndex
+#define glGetFragDataIndexEXT epoxy_glGetFragDataIndexEXT
+#define glGetFragDataLocation epoxy_glGetFragDataLocation
+#define glGetFragDataLocationEXT epoxy_glGetFragDataLocationEXT
+#define glGetFragmentLightfvSGIX epoxy_glGetFragmentLightfvSGIX
+#define glGetFragmentLightivSGIX epoxy_glGetFragmentLightivSGIX
+#define glGetFragmentMaterialfvSGIX epoxy_glGetFragmentMaterialfvSGIX
+#define glGetFragmentMaterialivSGIX epoxy_glGetFragmentMaterialivSGIX
+#define glGetFramebufferAttachmentParameteriv epoxy_glGetFramebufferAttachmentParameteriv
+#define glGetFramebufferAttachmentParameterivEXT epoxy_glGetFramebufferAttachmentParameterivEXT
+#define glGetFramebufferAttachmentParameterivOES epoxy_glGetFramebufferAttachmentParameterivOES
+#define glGetFramebufferParameterfvAMD epoxy_glGetFramebufferParameterfvAMD
+#define glGetFramebufferParameteriv epoxy_glGetFramebufferParameteriv
+#define glGetFramebufferParameterivEXT epoxy_glGetFramebufferParameterivEXT
+#define glGetFramebufferParameterivMESA epoxy_glGetFramebufferParameterivMESA
+#define glGetFramebufferPixelLocalStorageSizeEXT epoxy_glGetFramebufferPixelLocalStorageSizeEXT
+#define glGetGraphicsResetStatus epoxy_glGetGraphicsResetStatus
+#define glGetGraphicsResetStatusARB epoxy_glGetGraphicsResetStatusARB
+#define glGetGraphicsResetStatusEXT epoxy_glGetGraphicsResetStatusEXT
+#define glGetGraphicsResetStatusKHR epoxy_glGetGraphicsResetStatusKHR
+#define glGetHandleARB epoxy_glGetHandleARB
+#define glGetHistogram epoxy_glGetHistogram
+#define glGetHistogramEXT epoxy_glGetHistogramEXT
+#define glGetHistogramParameterfv epoxy_glGetHistogramParameterfv
+#define glGetHistogramParameterfvEXT epoxy_glGetHistogramParameterfvEXT
+#define glGetHistogramParameteriv epoxy_glGetHistogramParameteriv
+#define glGetHistogramParameterivEXT epoxy_glGetHistogramParameterivEXT
+#define glGetHistogramParameterxvOES epoxy_glGetHistogramParameterxvOES
+#define glGetImageHandleARB epoxy_glGetImageHandleARB
+#define glGetImageHandleNV epoxy_glGetImageHandleNV
+#define glGetImageTransformParameterfvHP epoxy_glGetImageTransformParameterfvHP
+#define glGetImageTransformParameterivHP epoxy_glGetImageTransformParameterivHP
+#define glGetInfoLogARB epoxy_glGetInfoLogARB
+#define glGetInstrumentsSGIX epoxy_glGetInstrumentsSGIX
+#define glGetInteger64i_v epoxy_glGetInteger64i_v
+#define glGetInteger64v epoxy_glGetInteger64v
+#define glGetInteger64vAPPLE epoxy_glGetInteger64vAPPLE
+#define glGetIntegerIndexedvEXT epoxy_glGetIntegerIndexedvEXT
+#define glGetIntegeri_v epoxy_glGetIntegeri_v
+#define glGetIntegeri_vEXT epoxy_glGetIntegeri_vEXT
+#define glGetIntegerui64i_vNV epoxy_glGetIntegerui64i_vNV
+#define glGetIntegerui64vNV epoxy_glGetIntegerui64vNV
+#define glGetIntegerv epoxy_glGetIntegerv
+#define glGetInternalformatSampleivNV epoxy_glGetInternalformatSampleivNV
+#define glGetInternalformati64v epoxy_glGetInternalformati64v
+#define glGetInternalformativ epoxy_glGetInternalformativ
+#define glGetInvariantBooleanvEXT epoxy_glGetInvariantBooleanvEXT
+#define glGetInvariantFloatvEXT epoxy_glGetInvariantFloatvEXT
+#define glGetInvariantIntegervEXT epoxy_glGetInvariantIntegervEXT
+#define glGetLightfv epoxy_glGetLightfv
+#define glGetLightiv epoxy_glGetLightiv
+#define glGetLightxOES epoxy_glGetLightxOES
+#define glGetLightxv epoxy_glGetLightxv
+#define glGetLightxvOES epoxy_glGetLightxvOES
+#define glGetListParameterfvSGIX epoxy_glGetListParameterfvSGIX
+#define glGetListParameterivSGIX epoxy_glGetListParameterivSGIX
+#define glGetLocalConstantBooleanvEXT epoxy_glGetLocalConstantBooleanvEXT
+#define glGetLocalConstantFloatvEXT epoxy_glGetLocalConstantFloatvEXT
+#define glGetLocalConstantIntegervEXT epoxy_glGetLocalConstantIntegervEXT
+#define glGetMapAttribParameterfvNV epoxy_glGetMapAttribParameterfvNV
+#define glGetMapAttribParameterivNV epoxy_glGetMapAttribParameterivNV
+#define glGetMapControlPointsNV epoxy_glGetMapControlPointsNV
+#define glGetMapParameterfvNV epoxy_glGetMapParameterfvNV
+#define glGetMapParameterivNV epoxy_glGetMapParameterivNV
+#define glGetMapdv epoxy_glGetMapdv
+#define glGetMapfv epoxy_glGetMapfv
+#define glGetMapiv epoxy_glGetMapiv
+#define glGetMapxvOES epoxy_glGetMapxvOES
+#define glGetMaterialfv epoxy_glGetMaterialfv
+#define glGetMaterialiv epoxy_glGetMaterialiv
+#define glGetMaterialxOES epoxy_glGetMaterialxOES
+#define glGetMaterialxv epoxy_glGetMaterialxv
+#define glGetMaterialxvOES epoxy_glGetMaterialxvOES
+#define glGetMemoryObjectDetachedResourcesuivNV epoxy_glGetMemoryObjectDetachedResourcesuivNV
+#define glGetMemoryObjectParameterivEXT epoxy_glGetMemoryObjectParameterivEXT
+#define glGetMinmax epoxy_glGetMinmax
+#define glGetMinmaxEXT epoxy_glGetMinmaxEXT
+#define glGetMinmaxParameterfv epoxy_glGetMinmaxParameterfv
+#define glGetMinmaxParameterfvEXT epoxy_glGetMinmaxParameterfvEXT
+#define glGetMinmaxParameteriv epoxy_glGetMinmaxParameteriv
+#define glGetMinmaxParameterivEXT epoxy_glGetMinmaxParameterivEXT
+#define glGetMultiTexEnvfvEXT epoxy_glGetMultiTexEnvfvEXT
+#define glGetMultiTexEnvivEXT epoxy_glGetMultiTexEnvivEXT
+#define glGetMultiTexGendvEXT epoxy_glGetMultiTexGendvEXT
+#define glGetMultiTexGenfvEXT epoxy_glGetMultiTexGenfvEXT
+#define glGetMultiTexGenivEXT epoxy_glGetMultiTexGenivEXT
+#define glGetMultiTexImageEXT epoxy_glGetMultiTexImageEXT
+#define glGetMultiTexLevelParameterfvEXT epoxy_glGetMultiTexLevelParameterfvEXT
+#define glGetMultiTexLevelParameterivEXT epoxy_glGetMultiTexLevelParameterivEXT
+#define glGetMultiTexParameterIivEXT epoxy_glGetMultiTexParameterIivEXT
+#define glGetMultiTexParameterIuivEXT epoxy_glGetMultiTexParameterIuivEXT
+#define glGetMultiTexParameterfvEXT epoxy_glGetMultiTexParameterfvEXT
+#define glGetMultiTexParameterivEXT epoxy_glGetMultiTexParameterivEXT
+#define glGetMultisamplefv epoxy_glGetMultisamplefv
+#define glGetMultisamplefvNV epoxy_glGetMultisamplefvNV
+#define glGetNamedBufferParameteri64v epoxy_glGetNamedBufferParameteri64v
+#define glGetNamedBufferParameteriv epoxy_glGetNamedBufferParameteriv
+#define glGetNamedBufferParameterivEXT epoxy_glGetNamedBufferParameterivEXT
+#define glGetNamedBufferParameterui64vNV epoxy_glGetNamedBufferParameterui64vNV
+#define glGetNamedBufferPointerv epoxy_glGetNamedBufferPointerv
+#define glGetNamedBufferPointervEXT epoxy_glGetNamedBufferPointervEXT
+#define glGetNamedBufferSubData epoxy_glGetNamedBufferSubData
+#define glGetNamedBufferSubDataEXT epoxy_glGetNamedBufferSubDataEXT
+#define glGetNamedFramebufferAttachmentParameteriv epoxy_glGetNamedFramebufferAttachmentParameteriv
+#define glGetNamedFramebufferAttachmentParameterivEXT epoxy_glGetNamedFramebufferAttachmentParameterivEXT
+#define glGetNamedFramebufferParameterfvAMD epoxy_glGetNamedFramebufferParameterfvAMD
+#define glGetNamedFramebufferParameteriv epoxy_glGetNamedFramebufferParameteriv
+#define glGetNamedFramebufferParameterivEXT epoxy_glGetNamedFramebufferParameterivEXT
+#define glGetNamedProgramLocalParameterIivEXT epoxy_glGetNamedProgramLocalParameterIivEXT
+#define glGetNamedProgramLocalParameterIuivEXT epoxy_glGetNamedProgramLocalParameterIuivEXT
+#define glGetNamedProgramLocalParameterdvEXT epoxy_glGetNamedProgramLocalParameterdvEXT
+#define glGetNamedProgramLocalParameterfvEXT epoxy_glGetNamedProgramLocalParameterfvEXT
+#define glGetNamedProgramStringEXT epoxy_glGetNamedProgramStringEXT
+#define glGetNamedProgramivEXT epoxy_glGetNamedProgramivEXT
+#define glGetNamedRenderbufferParameteriv epoxy_glGetNamedRenderbufferParameteriv
+#define glGetNamedRenderbufferParameterivEXT epoxy_glGetNamedRenderbufferParameterivEXT
+#define glGetNamedStringARB epoxy_glGetNamedStringARB
+#define glGetNamedStringivARB epoxy_glGetNamedStringivARB
+#define glGetNextPerfQueryIdINTEL epoxy_glGetNextPerfQueryIdINTEL
+#define glGetObjectBufferfvATI epoxy_glGetObjectBufferfvATI
+#define glGetObjectBufferivATI epoxy_glGetObjectBufferivATI
+#define glGetObjectLabel epoxy_glGetObjectLabel
+#define glGetObjectLabelEXT epoxy_glGetObjectLabelEXT
+#define glGetObjectLabelKHR epoxy_glGetObjectLabelKHR
+#define glGetObjectParameterfvARB epoxy_glGetObjectParameterfvARB
+#define glGetObjectParameterivAPPLE epoxy_glGetObjectParameterivAPPLE
+#define glGetObjectParameterivARB epoxy_glGetObjectParameterivARB
+#define glGetObjectPtrLabel epoxy_glGetObjectPtrLabel
+#define glGetObjectPtrLabelKHR epoxy_glGetObjectPtrLabelKHR
+#define glGetOcclusionQueryivNV epoxy_glGetOcclusionQueryivNV
+#define glGetOcclusionQueryuivNV epoxy_glGetOcclusionQueryuivNV
+#define glGetPathColorGenfvNV epoxy_glGetPathColorGenfvNV
+#define glGetPathColorGenivNV epoxy_glGetPathColorGenivNV
+#define glGetPathCommandsNV epoxy_glGetPathCommandsNV
+#define glGetPathCoordsNV epoxy_glGetPathCoordsNV
+#define glGetPathDashArrayNV epoxy_glGetPathDashArrayNV
+#define glGetPathLengthNV epoxy_glGetPathLengthNV
+#define glGetPathMetricRangeNV epoxy_glGetPathMetricRangeNV
+#define glGetPathMetricsNV epoxy_glGetPathMetricsNV
+#define glGetPathParameterfvNV epoxy_glGetPathParameterfvNV
+#define glGetPathParameterivNV epoxy_glGetPathParameterivNV
+#define glGetPathSpacingNV epoxy_glGetPathSpacingNV
+#define glGetPathTexGenfvNV epoxy_glGetPathTexGenfvNV
+#define glGetPathTexGenivNV epoxy_glGetPathTexGenivNV
+#define glGetPerfCounterInfoINTEL epoxy_glGetPerfCounterInfoINTEL
+#define glGetPerfMonitorCounterDataAMD epoxy_glGetPerfMonitorCounterDataAMD
+#define glGetPerfMonitorCounterInfoAMD epoxy_glGetPerfMonitorCounterInfoAMD
+#define glGetPerfMonitorCounterStringAMD epoxy_glGetPerfMonitorCounterStringAMD
+#define glGetPerfMonitorCountersAMD epoxy_glGetPerfMonitorCountersAMD
+#define glGetPerfMonitorGroupStringAMD epoxy_glGetPerfMonitorGroupStringAMD
+#define glGetPerfMonitorGroupsAMD epoxy_glGetPerfMonitorGroupsAMD
+#define glGetPerfQueryDataINTEL epoxy_glGetPerfQueryDataINTEL
+#define glGetPerfQueryIdByNameINTEL epoxy_glGetPerfQueryIdByNameINTEL
+#define glGetPerfQueryInfoINTEL epoxy_glGetPerfQueryInfoINTEL
+#define glGetPixelMapfv epoxy_glGetPixelMapfv
+#define glGetPixelMapuiv epoxy_glGetPixelMapuiv
+#define glGetPixelMapusv epoxy_glGetPixelMapusv
+#define glGetPixelMapxv epoxy_glGetPixelMapxv
+#define glGetPixelTexGenParameterfvSGIS epoxy_glGetPixelTexGenParameterfvSGIS
+#define glGetPixelTexGenParameterivSGIS epoxy_glGetPixelTexGenParameterivSGIS
+#define glGetPixelTransformParameterfvEXT epoxy_glGetPixelTransformParameterfvEXT
+#define glGetPixelTransformParameterivEXT epoxy_glGetPixelTransformParameterivEXT
+#define glGetPointerIndexedvEXT epoxy_glGetPointerIndexedvEXT
+#define glGetPointeri_vEXT epoxy_glGetPointeri_vEXT
+#define glGetPointerv epoxy_glGetPointerv
+#define glGetPointervEXT epoxy_glGetPointervEXT
+#define glGetPointervKHR epoxy_glGetPointervKHR
+#define glGetPolygonStipple epoxy_glGetPolygonStipple
+#define glGetProgramBinary epoxy_glGetProgramBinary
+#define glGetProgramBinaryOES epoxy_glGetProgramBinaryOES
+#define glGetProgramEnvParameterIivNV epoxy_glGetProgramEnvParameterIivNV
+#define glGetProgramEnvParameterIuivNV epoxy_glGetProgramEnvParameterIuivNV
+#define glGetProgramEnvParameterdvARB epoxy_glGetProgramEnvParameterdvARB
+#define glGetProgramEnvParameterfvARB epoxy_glGetProgramEnvParameterfvARB
+#define glGetProgramInfoLog epoxy_glGetProgramInfoLog
+#define glGetProgramInterfaceiv epoxy_glGetProgramInterfaceiv
+#define glGetProgramLocalParameterIivNV epoxy_glGetProgramLocalParameterIivNV
+#define glGetProgramLocalParameterIuivNV epoxy_glGetProgramLocalParameterIuivNV
+#define glGetProgramLocalParameterdvARB epoxy_glGetProgramLocalParameterdvARB
+#define glGetProgramLocalParameterfvARB epoxy_glGetProgramLocalParameterfvARB
+#define glGetProgramNamedParameterdvNV epoxy_glGetProgramNamedParameterdvNV
+#define glGetProgramNamedParameterfvNV epoxy_glGetProgramNamedParameterfvNV
+#define glGetProgramParameterdvNV epoxy_glGetProgramParameterdvNV
+#define glGetProgramParameterfvNV epoxy_glGetProgramParameterfvNV
+#define glGetProgramPipelineInfoLog epoxy_glGetProgramPipelineInfoLog
+#define glGetProgramPipelineInfoLogEXT epoxy_glGetProgramPipelineInfoLogEXT
+#define glGetProgramPipelineiv epoxy_glGetProgramPipelineiv
+#define glGetProgramPipelineivEXT epoxy_glGetProgramPipelineivEXT
+#define glGetProgramResourceIndex epoxy_glGetProgramResourceIndex
+#define glGetProgramResourceLocation epoxy_glGetProgramResourceLocation
+#define glGetProgramResourceLocationIndex epoxy_glGetProgramResourceLocationIndex
+#define glGetProgramResourceLocationIndexEXT epoxy_glGetProgramResourceLocationIndexEXT
+#define glGetProgramResourceName epoxy_glGetProgramResourceName
+#define glGetProgramResourcefvNV epoxy_glGetProgramResourcefvNV
+#define glGetProgramResourceiv epoxy_glGetProgramResourceiv
+#define glGetProgramStageiv epoxy_glGetProgramStageiv
+#define glGetProgramStringARB epoxy_glGetProgramStringARB
+#define glGetProgramStringNV epoxy_glGetProgramStringNV
+#define glGetProgramSubroutineParameteruivNV epoxy_glGetProgramSubroutineParameteruivNV
+#define glGetProgramiv epoxy_glGetProgramiv
+#define glGetProgramivARB epoxy_glGetProgramivARB
+#define glGetProgramivNV epoxy_glGetProgramivNV
+#define glGetQueryBufferObjecti64v epoxy_glGetQueryBufferObjecti64v
+#define glGetQueryBufferObjectiv epoxy_glGetQueryBufferObjectiv
+#define glGetQueryBufferObjectui64v epoxy_glGetQueryBufferObjectui64v
+#define glGetQueryBufferObjectuiv epoxy_glGetQueryBufferObjectuiv
+#define glGetQueryIndexediv epoxy_glGetQueryIndexediv
+#define glGetQueryObjecti64v epoxy_glGetQueryObjecti64v
+#define glGetQueryObjecti64vEXT epoxy_glGetQueryObjecti64vEXT
+#define glGetQueryObjectiv epoxy_glGetQueryObjectiv
+#define glGetQueryObjectivARB epoxy_glGetQueryObjectivARB
+#define glGetQueryObjectivEXT epoxy_glGetQueryObjectivEXT
+#define glGetQueryObjectui64v epoxy_glGetQueryObjectui64v
+#define glGetQueryObjectui64vEXT epoxy_glGetQueryObjectui64vEXT
+#define glGetQueryObjectuiv epoxy_glGetQueryObjectuiv
+#define glGetQueryObjectuivARB epoxy_glGetQueryObjectuivARB
+#define glGetQueryObjectuivEXT epoxy_glGetQueryObjectuivEXT
+#define glGetQueryiv epoxy_glGetQueryiv
+#define glGetQueryivARB epoxy_glGetQueryivARB
+#define glGetQueryivEXT epoxy_glGetQueryivEXT
+#define glGetRenderbufferParameteriv epoxy_glGetRenderbufferParameteriv
+#define glGetRenderbufferParameterivEXT epoxy_glGetRenderbufferParameterivEXT
+#define glGetRenderbufferParameterivOES epoxy_glGetRenderbufferParameterivOES
+#define glGetSamplerParameterIiv epoxy_glGetSamplerParameterIiv
+#define glGetSamplerParameterIivEXT epoxy_glGetSamplerParameterIivEXT
+#define glGetSamplerParameterIivOES epoxy_glGetSamplerParameterIivOES
+#define glGetSamplerParameterIuiv epoxy_glGetSamplerParameterIuiv
+#define glGetSamplerParameterIuivEXT epoxy_glGetSamplerParameterIuivEXT
+#define glGetSamplerParameterIuivOES epoxy_glGetSamplerParameterIuivOES
+#define glGetSamplerParameterfv epoxy_glGetSamplerParameterfv
+#define glGetSamplerParameteriv epoxy_glGetSamplerParameteriv
+#define glGetSemaphoreParameterui64vEXT epoxy_glGetSemaphoreParameterui64vEXT
+#define glGetSeparableFilter epoxy_glGetSeparableFilter
+#define glGetSeparableFilterEXT epoxy_glGetSeparableFilterEXT
+#define glGetShaderInfoLog epoxy_glGetShaderInfoLog
+#define glGetShaderPrecisionFormat epoxy_glGetShaderPrecisionFormat
+#define glGetShaderSource epoxy_glGetShaderSource
+#define glGetShaderSourceARB epoxy_glGetShaderSourceARB
+#define glGetShaderiv epoxy_glGetShaderiv
+#define glGetShadingRateImagePaletteNV epoxy_glGetShadingRateImagePaletteNV
+#define glGetShadingRateSampleLocationivNV epoxy_glGetShadingRateSampleLocationivNV
+#define glGetSharpenTexFuncSGIS epoxy_glGetSharpenTexFuncSGIS
+#define glGetStageIndexNV epoxy_glGetStageIndexNV
+#define glGetString epoxy_glGetString
+#define glGetStringi epoxy_glGetStringi
+#define glGetSubroutineIndex epoxy_glGetSubroutineIndex
+#define glGetSubroutineUniformLocation epoxy_glGetSubroutineUniformLocation
+#define glGetSynciv epoxy_glGetSynciv
+#define glGetSyncivAPPLE epoxy_glGetSyncivAPPLE
+#define glGetTexBumpParameterfvATI epoxy_glGetTexBumpParameterfvATI
+#define glGetTexBumpParameterivATI epoxy_glGetTexBumpParameterivATI
+#define glGetTexEnvfv epoxy_glGetTexEnvfv
+#define glGetTexEnviv epoxy_glGetTexEnviv
+#define glGetTexEnvxv epoxy_glGetTexEnvxv
+#define glGetTexEnvxvOES epoxy_glGetTexEnvxvOES
+#define glGetTexFilterFuncSGIS epoxy_glGetTexFilterFuncSGIS
+#define glGetTexGendv epoxy_glGetTexGendv
+#define glGetTexGenfv epoxy_glGetTexGenfv
+#define glGetTexGenfvOES epoxy_glGetTexGenfvOES
+#define glGetTexGeniv epoxy_glGetTexGeniv
+#define glGetTexGenivOES epoxy_glGetTexGenivOES
+#define glGetTexGenxvOES epoxy_glGetTexGenxvOES
+#define glGetTexImage epoxy_glGetTexImage
+#define glGetTexLevelParameterfv epoxy_glGetTexLevelParameterfv
+#define glGetTexLevelParameteriv epoxy_glGetTexLevelParameteriv
+#define glGetTexLevelParameterxvOES epoxy_glGetTexLevelParameterxvOES
+#define glGetTexParameterIiv epoxy_glGetTexParameterIiv
+#define glGetTexParameterIivEXT epoxy_glGetTexParameterIivEXT
+#define glGetTexParameterIivOES epoxy_glGetTexParameterIivOES
+#define glGetTexParameterIuiv epoxy_glGetTexParameterIuiv
+#define glGetTexParameterIuivEXT epoxy_glGetTexParameterIuivEXT
+#define glGetTexParameterIuivOES epoxy_glGetTexParameterIuivOES
+#define glGetTexParameterPointervAPPLE epoxy_glGetTexParameterPointervAPPLE
+#define glGetTexParameterfv epoxy_glGetTexParameterfv
+#define glGetTexParameteriv epoxy_glGetTexParameteriv
+#define glGetTexParameterxv epoxy_glGetTexParameterxv
+#define glGetTexParameterxvOES epoxy_glGetTexParameterxvOES
+#define glGetTextureHandleARB epoxy_glGetTextureHandleARB
+#define glGetTextureHandleIMG epoxy_glGetTextureHandleIMG
+#define glGetTextureHandleNV epoxy_glGetTextureHandleNV
+#define glGetTextureImage epoxy_glGetTextureImage
+#define glGetTextureImageEXT epoxy_glGetTextureImageEXT
+#define glGetTextureLevelParameterfv epoxy_glGetTextureLevelParameterfv
+#define glGetTextureLevelParameterfvEXT epoxy_glGetTextureLevelParameterfvEXT
+#define glGetTextureLevelParameteriv epoxy_glGetTextureLevelParameteriv
+#define glGetTextureLevelParameterivEXT epoxy_glGetTextureLevelParameterivEXT
+#define glGetTextureParameterIiv epoxy_glGetTextureParameterIiv
+#define glGetTextureParameterIivEXT epoxy_glGetTextureParameterIivEXT
+#define glGetTextureParameterIuiv epoxy_glGetTextureParameterIuiv
+#define glGetTextureParameterIuivEXT epoxy_glGetTextureParameterIuivEXT
+#define glGetTextureParameterfv epoxy_glGetTextureParameterfv
+#define glGetTextureParameterfvEXT epoxy_glGetTextureParameterfvEXT
+#define glGetTextureParameteriv epoxy_glGetTextureParameteriv
+#define glGetTextureParameterivEXT epoxy_glGetTextureParameterivEXT
+#define glGetTextureSamplerHandleARB epoxy_glGetTextureSamplerHandleARB
+#define glGetTextureSamplerHandleIMG epoxy_glGetTextureSamplerHandleIMG
+#define glGetTextureSamplerHandleNV epoxy_glGetTextureSamplerHandleNV
+#define glGetTextureSubImage epoxy_glGetTextureSubImage
+#define glGetTrackMatrixivNV epoxy_glGetTrackMatrixivNV
+#define glGetTransformFeedbackVarying epoxy_glGetTransformFeedbackVarying
+#define glGetTransformFeedbackVaryingEXT epoxy_glGetTransformFeedbackVaryingEXT
+#define glGetTransformFeedbackVaryingNV epoxy_glGetTransformFeedbackVaryingNV
+#define glGetTransformFeedbacki64_v epoxy_glGetTransformFeedbacki64_v
+#define glGetTransformFeedbacki_v epoxy_glGetTransformFeedbacki_v
+#define glGetTransformFeedbackiv epoxy_glGetTransformFeedbackiv
+#define glGetTranslatedShaderSourceANGLE epoxy_glGetTranslatedShaderSourceANGLE
+#define glGetUniformBlockIndex epoxy_glGetUniformBlockIndex
+#define glGetUniformBufferSizeEXT epoxy_glGetUniformBufferSizeEXT
+#define glGetUniformIndices epoxy_glGetUniformIndices
+#define glGetUniformLocation epoxy_glGetUniformLocation
+#define glGetUniformLocationARB epoxy_glGetUniformLocationARB
+#define glGetUniformOffsetEXT epoxy_glGetUniformOffsetEXT
+#define glGetUniformSubroutineuiv epoxy_glGetUniformSubroutineuiv
+#define glGetUniformdv epoxy_glGetUniformdv
+#define glGetUniformfv epoxy_glGetUniformfv
+#define glGetUniformfvARB epoxy_glGetUniformfvARB
+#define glGetUniformi64vARB epoxy_glGetUniformi64vARB
+#define glGetUniformi64vNV epoxy_glGetUniformi64vNV
+#define glGetUniformiv epoxy_glGetUniformiv
+#define glGetUniformivARB epoxy_glGetUniformivARB
+#define glGetUniformui64vARB epoxy_glGetUniformui64vARB
+#define glGetUniformui64vNV epoxy_glGetUniformui64vNV
+#define glGetUniformuiv epoxy_glGetUniformuiv
+#define glGetUniformuivEXT epoxy_glGetUniformuivEXT
+#define glGetUnsignedBytei_vEXT epoxy_glGetUnsignedBytei_vEXT
+#define glGetUnsignedBytevEXT epoxy_glGetUnsignedBytevEXT
+#define glGetVariantArrayObjectfvATI epoxy_glGetVariantArrayObjectfvATI
+#define glGetVariantArrayObjectivATI epoxy_glGetVariantArrayObjectivATI
+#define glGetVariantBooleanvEXT epoxy_glGetVariantBooleanvEXT
+#define glGetVariantFloatvEXT epoxy_glGetVariantFloatvEXT
+#define glGetVariantIntegervEXT epoxy_glGetVariantIntegervEXT
+#define glGetVariantPointervEXT epoxy_glGetVariantPointervEXT
+#define glGetVaryingLocationNV epoxy_glGetVaryingLocationNV
+#define glGetVertexArrayIndexed64iv epoxy_glGetVertexArrayIndexed64iv
+#define glGetVertexArrayIndexediv epoxy_glGetVertexArrayIndexediv
+#define glGetVertexArrayIntegeri_vEXT epoxy_glGetVertexArrayIntegeri_vEXT
+#define glGetVertexArrayIntegervEXT epoxy_glGetVertexArrayIntegervEXT
+#define glGetVertexArrayPointeri_vEXT epoxy_glGetVertexArrayPointeri_vEXT
+#define glGetVertexArrayPointervEXT epoxy_glGetVertexArrayPointervEXT
+#define glGetVertexArrayiv epoxy_glGetVertexArrayiv
+#define glGetVertexAttribArrayObjectfvATI epoxy_glGetVertexAttribArrayObjectfvATI
+#define glGetVertexAttribArrayObjectivATI epoxy_glGetVertexAttribArrayObjectivATI
+#define glGetVertexAttribIiv epoxy_glGetVertexAttribIiv
+#define glGetVertexAttribIivEXT epoxy_glGetVertexAttribIivEXT
+#define glGetVertexAttribIuiv epoxy_glGetVertexAttribIuiv
+#define glGetVertexAttribIuivEXT epoxy_glGetVertexAttribIuivEXT
+#define glGetVertexAttribLdv epoxy_glGetVertexAttribLdv
+#define glGetVertexAttribLdvEXT epoxy_glGetVertexAttribLdvEXT
+#define glGetVertexAttribLi64vNV epoxy_glGetVertexAttribLi64vNV
+#define glGetVertexAttribLui64vARB epoxy_glGetVertexAttribLui64vARB
+#define glGetVertexAttribLui64vNV epoxy_glGetVertexAttribLui64vNV
+#define glGetVertexAttribPointerv epoxy_glGetVertexAttribPointerv
+#define glGetVertexAttribPointervARB epoxy_glGetVertexAttribPointervARB
+#define glGetVertexAttribPointervNV epoxy_glGetVertexAttribPointervNV
+#define glGetVertexAttribdv epoxy_glGetVertexAttribdv
+#define glGetVertexAttribdvARB epoxy_glGetVertexAttribdvARB
+#define glGetVertexAttribdvNV epoxy_glGetVertexAttribdvNV
+#define glGetVertexAttribfv epoxy_glGetVertexAttribfv
+#define glGetVertexAttribfvARB epoxy_glGetVertexAttribfvARB
+#define glGetVertexAttribfvNV epoxy_glGetVertexAttribfvNV
+#define glGetVertexAttribiv epoxy_glGetVertexAttribiv
+#define glGetVertexAttribivARB epoxy_glGetVertexAttribivARB
+#define glGetVertexAttribivNV epoxy_glGetVertexAttribivNV
+#define glGetVideoCaptureStreamdvNV epoxy_glGetVideoCaptureStreamdvNV
+#define glGetVideoCaptureStreamfvNV epoxy_glGetVideoCaptureStreamfvNV
+#define glGetVideoCaptureStreamivNV epoxy_glGetVideoCaptureStreamivNV
+#define glGetVideoCaptureivNV epoxy_glGetVideoCaptureivNV
+#define glGetVideoi64vNV epoxy_glGetVideoi64vNV
+#define glGetVideoivNV epoxy_glGetVideoivNV
+#define glGetVideoui64vNV epoxy_glGetVideoui64vNV
+#define glGetVideouivNV epoxy_glGetVideouivNV
+#define glGetVkProcAddrNV epoxy_glGetVkProcAddrNV
+#define glGetnColorTable epoxy_glGetnColorTable
+#define glGetnColorTableARB epoxy_glGetnColorTableARB
+#define glGetnCompressedTexImage epoxy_glGetnCompressedTexImage
+#define glGetnCompressedTexImageARB epoxy_glGetnCompressedTexImageARB
+#define glGetnConvolutionFilter epoxy_glGetnConvolutionFilter
+#define glGetnConvolutionFilterARB epoxy_glGetnConvolutionFilterARB
+#define glGetnHistogram epoxy_glGetnHistogram
+#define glGetnHistogramARB epoxy_glGetnHistogramARB
+#define glGetnMapdv epoxy_glGetnMapdv
+#define glGetnMapdvARB epoxy_glGetnMapdvARB
+#define glGetnMapfv epoxy_glGetnMapfv
+#define glGetnMapfvARB epoxy_glGetnMapfvARB
+#define glGetnMapiv epoxy_glGetnMapiv
+#define glGetnMapivARB epoxy_glGetnMapivARB
+#define glGetnMinmax epoxy_glGetnMinmax
+#define glGetnMinmaxARB epoxy_glGetnMinmaxARB
+#define glGetnPixelMapfv epoxy_glGetnPixelMapfv
+#define glGetnPixelMapfvARB epoxy_glGetnPixelMapfvARB
+#define glGetnPixelMapuiv epoxy_glGetnPixelMapuiv
+#define glGetnPixelMapuivARB epoxy_glGetnPixelMapuivARB
+#define glGetnPixelMapusv epoxy_glGetnPixelMapusv
+#define glGetnPixelMapusvARB epoxy_glGetnPixelMapusvARB
+#define glGetnPolygonStipple epoxy_glGetnPolygonStipple
+#define glGetnPolygonStippleARB epoxy_glGetnPolygonStippleARB
+#define glGetnSeparableFilter epoxy_glGetnSeparableFilter
+#define glGetnSeparableFilterARB epoxy_glGetnSeparableFilterARB
+#define glGetnTexImage epoxy_glGetnTexImage
+#define glGetnTexImageARB epoxy_glGetnTexImageARB
+#define glGetnUniformdv epoxy_glGetnUniformdv
+#define glGetnUniformdvARB epoxy_glGetnUniformdvARB
+#define glGetnUniformfv epoxy_glGetnUniformfv
+#define glGetnUniformfvARB epoxy_glGetnUniformfvARB
+#define glGetnUniformfvEXT epoxy_glGetnUniformfvEXT
+#define glGetnUniformfvKHR epoxy_glGetnUniformfvKHR
+#define glGetnUniformi64vARB epoxy_glGetnUniformi64vARB
+#define glGetnUniformiv epoxy_glGetnUniformiv
+#define glGetnUniformivARB epoxy_glGetnUniformivARB
+#define glGetnUniformivEXT epoxy_glGetnUniformivEXT
+#define glGetnUniformivKHR epoxy_glGetnUniformivKHR
+#define glGetnUniformui64vARB epoxy_glGetnUniformui64vARB
+#define glGetnUniformuiv epoxy_glGetnUniformuiv
+#define glGetnUniformuivARB epoxy_glGetnUniformuivARB
+#define glGetnUniformuivKHR epoxy_glGetnUniformuivKHR
+#define glGlobalAlphaFactorbSUN epoxy_glGlobalAlphaFactorbSUN
+#define glGlobalAlphaFactordSUN epoxy_glGlobalAlphaFactordSUN
+#define glGlobalAlphaFactorfSUN epoxy_glGlobalAlphaFactorfSUN
+#define glGlobalAlphaFactoriSUN epoxy_glGlobalAlphaFactoriSUN
+#define glGlobalAlphaFactorsSUN epoxy_glGlobalAlphaFactorsSUN
+#define glGlobalAlphaFactorubSUN epoxy_glGlobalAlphaFactorubSUN
+#define glGlobalAlphaFactoruiSUN epoxy_glGlobalAlphaFactoruiSUN
+#define glGlobalAlphaFactorusSUN epoxy_glGlobalAlphaFactorusSUN
+#define glHint epoxy_glHint
+#define glHintPGI epoxy_glHintPGI
+#define glHistogram epoxy_glHistogram
+#define glHistogramEXT epoxy_glHistogramEXT
+#define glIglooInterfaceSGIX epoxy_glIglooInterfaceSGIX
+#define glImageTransformParameterfHP epoxy_glImageTransformParameterfHP
+#define glImageTransformParameterfvHP epoxy_glImageTransformParameterfvHP
+#define glImageTransformParameteriHP epoxy_glImageTransformParameteriHP
+#define glImageTransformParameterivHP epoxy_glImageTransformParameterivHP
+#define glImportMemoryFdEXT epoxy_glImportMemoryFdEXT
+#define glImportMemoryWin32HandleEXT epoxy_glImportMemoryWin32HandleEXT
+#define glImportMemoryWin32NameEXT epoxy_glImportMemoryWin32NameEXT
+#define glImportSemaphoreFdEXT epoxy_glImportSemaphoreFdEXT
+#define glImportSemaphoreWin32HandleEXT epoxy_glImportSemaphoreWin32HandleEXT
+#define glImportSemaphoreWin32NameEXT epoxy_glImportSemaphoreWin32NameEXT
+#define glImportSyncEXT epoxy_glImportSyncEXT
+#define glIndexFormatNV epoxy_glIndexFormatNV
+#define glIndexFuncEXT epoxy_glIndexFuncEXT
+#define glIndexMask epoxy_glIndexMask
+#define glIndexMaterialEXT epoxy_glIndexMaterialEXT
+#define glIndexPointer epoxy_glIndexPointer
+#define glIndexPointerEXT epoxy_glIndexPointerEXT
+#define glIndexPointerListIBM epoxy_glIndexPointerListIBM
+#define glIndexd epoxy_glIndexd
+#define glIndexdv epoxy_glIndexdv
+#define glIndexf epoxy_glIndexf
+#define glIndexfv epoxy_glIndexfv
+#define glIndexi epoxy_glIndexi
+#define glIndexiv epoxy_glIndexiv
+#define glIndexs epoxy_glIndexs
+#define glIndexsv epoxy_glIndexsv
+#define glIndexub epoxy_glIndexub
+#define glIndexubv epoxy_glIndexubv
+#define glIndexxOES epoxy_glIndexxOES
+#define glIndexxvOES epoxy_glIndexxvOES
+#define glInitNames epoxy_glInitNames
+#define glInsertComponentEXT epoxy_glInsertComponentEXT
+#define glInsertEventMarkerEXT epoxy_glInsertEventMarkerEXT
+#define glInstrumentsBufferSGIX epoxy_glInstrumentsBufferSGIX
+#define glInterleavedArrays epoxy_glInterleavedArrays
+#define glInterpolatePathsNV epoxy_glInterpolatePathsNV
+#define glInvalidateBufferData epoxy_glInvalidateBufferData
+#define glInvalidateBufferSubData epoxy_glInvalidateBufferSubData
+#define glInvalidateFramebuffer epoxy_glInvalidateFramebuffer
+#define glInvalidateNamedFramebufferData epoxy_glInvalidateNamedFramebufferData
+#define glInvalidateNamedFramebufferSubData epoxy_glInvalidateNamedFramebufferSubData
+#define glInvalidateSubFramebuffer epoxy_glInvalidateSubFramebuffer
+#define glInvalidateTexImage epoxy_glInvalidateTexImage
+#define glInvalidateTexSubImage epoxy_glInvalidateTexSubImage
+#define glIsAsyncMarkerSGIX epoxy_glIsAsyncMarkerSGIX
+#define glIsBuffer epoxy_glIsBuffer
+#define glIsBufferARB epoxy_glIsBufferARB
+#define glIsBufferResidentNV epoxy_glIsBufferResidentNV
+#define glIsCommandListNV epoxy_glIsCommandListNV
+#define glIsEnabled epoxy_glIsEnabled
+#define glIsEnabledIndexedEXT epoxy_glIsEnabledIndexedEXT
+#define glIsEnabledi epoxy_glIsEnabledi
+#define glIsEnablediEXT epoxy_glIsEnablediEXT
+#define glIsEnablediNV epoxy_glIsEnablediNV
+#define glIsEnablediOES epoxy_glIsEnablediOES
+#define glIsFenceAPPLE epoxy_glIsFenceAPPLE
+#define glIsFenceNV epoxy_glIsFenceNV
+#define glIsFramebuffer epoxy_glIsFramebuffer
+#define glIsFramebufferEXT epoxy_glIsFramebufferEXT
+#define glIsFramebufferOES epoxy_glIsFramebufferOES
+#define glIsImageHandleResidentARB epoxy_glIsImageHandleResidentARB
+#define glIsImageHandleResidentNV epoxy_glIsImageHandleResidentNV
+#define glIsList epoxy_glIsList
+#define glIsMemoryObjectEXT epoxy_glIsMemoryObjectEXT
+#define glIsNameAMD epoxy_glIsNameAMD
+#define glIsNamedBufferResidentNV epoxy_glIsNamedBufferResidentNV
+#define glIsNamedStringARB epoxy_glIsNamedStringARB
+#define glIsObjectBufferATI epoxy_glIsObjectBufferATI
+#define glIsOcclusionQueryNV epoxy_glIsOcclusionQueryNV
+#define glIsPathNV epoxy_glIsPathNV
+#define glIsPointInFillPathNV epoxy_glIsPointInFillPathNV
+#define glIsPointInStrokePathNV epoxy_glIsPointInStrokePathNV
+#define glIsProgram epoxy_glIsProgram
+#define glIsProgramARB epoxy_glIsProgramARB
+#define glIsProgramNV epoxy_glIsProgramNV
+#define glIsProgramPipeline epoxy_glIsProgramPipeline
+#define glIsProgramPipelineEXT epoxy_glIsProgramPipelineEXT
+#define glIsQuery epoxy_glIsQuery
+#define glIsQueryARB epoxy_glIsQueryARB
+#define glIsQueryEXT epoxy_glIsQueryEXT
+#define glIsRenderbuffer epoxy_glIsRenderbuffer
+#define glIsRenderbufferEXT epoxy_glIsRenderbufferEXT
+#define glIsRenderbufferOES epoxy_glIsRenderbufferOES
+#define glIsSampler epoxy_glIsSampler
+#define glIsSemaphoreEXT epoxy_glIsSemaphoreEXT
+#define glIsShader epoxy_glIsShader
+#define glIsStateNV epoxy_glIsStateNV
+#define glIsSync epoxy_glIsSync
+#define glIsSyncAPPLE epoxy_glIsSyncAPPLE
+#define glIsTexture epoxy_glIsTexture
+#define glIsTextureEXT epoxy_glIsTextureEXT
+#define glIsTextureHandleResidentARB epoxy_glIsTextureHandleResidentARB
+#define glIsTextureHandleResidentNV epoxy_glIsTextureHandleResidentNV
+#define glIsTransformFeedback epoxy_glIsTransformFeedback
+#define glIsTransformFeedbackNV epoxy_glIsTransformFeedbackNV
+#define glIsVariantEnabledEXT epoxy_glIsVariantEnabledEXT
+#define glIsVertexArray epoxy_glIsVertexArray
+#define glIsVertexArrayAPPLE epoxy_glIsVertexArrayAPPLE
+#define glIsVertexArrayOES epoxy_glIsVertexArrayOES
+#define glIsVertexAttribEnabledAPPLE epoxy_glIsVertexAttribEnabledAPPLE
+#define glLGPUCopyImageSubDataNVX epoxy_glLGPUCopyImageSubDataNVX
+#define glLGPUInterlockNVX epoxy_glLGPUInterlockNVX
+#define glLGPUNamedBufferSubDataNVX epoxy_glLGPUNamedBufferSubDataNVX
+#define glLabelObjectEXT epoxy_glLabelObjectEXT
+#define glLightEnviSGIX epoxy_glLightEnviSGIX
+#define glLightModelf epoxy_glLightModelf
+#define glLightModelfv epoxy_glLightModelfv
+#define glLightModeli epoxy_glLightModeli
+#define glLightModeliv epoxy_glLightModeliv
+#define glLightModelx epoxy_glLightModelx
+#define glLightModelxOES epoxy_glLightModelxOES
+#define glLightModelxv epoxy_glLightModelxv
+#define glLightModelxvOES epoxy_glLightModelxvOES
+#define glLightf epoxy_glLightf
+#define glLightfv epoxy_glLightfv
+#define glLighti epoxy_glLighti
+#define glLightiv epoxy_glLightiv
+#define glLightx epoxy_glLightx
+#define glLightxOES epoxy_glLightxOES
+#define glLightxv epoxy_glLightxv
+#define glLightxvOES epoxy_glLightxvOES
+#define glLineStipple epoxy_glLineStipple
+#define glLineWidth epoxy_glLineWidth
+#define glLineWidthx epoxy_glLineWidthx
+#define glLineWidthxOES epoxy_glLineWidthxOES
+#define glLinkProgram epoxy_glLinkProgram
+#define glLinkProgramARB epoxy_glLinkProgramARB
+#define glListBase epoxy_glListBase
+#define glListDrawCommandsStatesClientNV epoxy_glListDrawCommandsStatesClientNV
+#define glListParameterfSGIX epoxy_glListParameterfSGIX
+#define glListParameterfvSGIX epoxy_glListParameterfvSGIX
+#define glListParameteriSGIX epoxy_glListParameteriSGIX
+#define glListParameterivSGIX epoxy_glListParameterivSGIX
+#define glLoadIdentity epoxy_glLoadIdentity
+#define glLoadIdentityDeformationMapSGIX epoxy_glLoadIdentityDeformationMapSGIX
+#define glLoadMatrixd epoxy_glLoadMatrixd
+#define glLoadMatrixf epoxy_glLoadMatrixf
+#define glLoadMatrixx epoxy_glLoadMatrixx
+#define glLoadMatrixxOES epoxy_glLoadMatrixxOES
+#define glLoadName epoxy_glLoadName
+#define glLoadPaletteFromModelViewMatrixOES epoxy_glLoadPaletteFromModelViewMatrixOES
+#define glLoadProgramNV epoxy_glLoadProgramNV
+#define glLoadTransposeMatrixd epoxy_glLoadTransposeMatrixd
+#define glLoadTransposeMatrixdARB epoxy_glLoadTransposeMatrixdARB
+#define glLoadTransposeMatrixf epoxy_glLoadTransposeMatrixf
+#define glLoadTransposeMatrixfARB epoxy_glLoadTransposeMatrixfARB
+#define glLoadTransposeMatrixxOES epoxy_glLoadTransposeMatrixxOES
+#define glLockArraysEXT epoxy_glLockArraysEXT
+#define glLogicOp epoxy_glLogicOp
+#define glMakeBufferNonResidentNV epoxy_glMakeBufferNonResidentNV
+#define glMakeBufferResidentNV epoxy_glMakeBufferResidentNV
+#define glMakeImageHandleNonResidentARB epoxy_glMakeImageHandleNonResidentARB
+#define glMakeImageHandleNonResidentNV epoxy_glMakeImageHandleNonResidentNV
+#define glMakeImageHandleResidentARB epoxy_glMakeImageHandleResidentARB
+#define glMakeImageHandleResidentNV epoxy_glMakeImageHandleResidentNV
+#define glMakeNamedBufferNonResidentNV epoxy_glMakeNamedBufferNonResidentNV
+#define glMakeNamedBufferResidentNV epoxy_glMakeNamedBufferResidentNV
+#define glMakeTextureHandleNonResidentARB epoxy_glMakeTextureHandleNonResidentARB
+#define glMakeTextureHandleNonResidentNV epoxy_glMakeTextureHandleNonResidentNV
+#define glMakeTextureHandleResidentARB epoxy_glMakeTextureHandleResidentARB
+#define glMakeTextureHandleResidentNV epoxy_glMakeTextureHandleResidentNV
+#define glMap1d epoxy_glMap1d
+#define glMap1f epoxy_glMap1f
+#define glMap1xOES epoxy_glMap1xOES
+#define glMap2d epoxy_glMap2d
+#define glMap2f epoxy_glMap2f
+#define glMap2xOES epoxy_glMap2xOES
+#define glMapBuffer epoxy_glMapBuffer
+#define glMapBufferARB epoxy_glMapBufferARB
+#define glMapBufferOES epoxy_glMapBufferOES
+#define glMapBufferRange epoxy_glMapBufferRange
+#define glMapBufferRangeEXT epoxy_glMapBufferRangeEXT
+#define glMapControlPointsNV epoxy_glMapControlPointsNV
+#define glMapGrid1d epoxy_glMapGrid1d
+#define glMapGrid1f epoxy_glMapGrid1f
+#define glMapGrid1xOES epoxy_glMapGrid1xOES
+#define glMapGrid2d epoxy_glMapGrid2d
+#define glMapGrid2f epoxy_glMapGrid2f
+#define glMapGrid2xOES epoxy_glMapGrid2xOES
+#define glMapNamedBuffer epoxy_glMapNamedBuffer
+#define glMapNamedBufferEXT epoxy_glMapNamedBufferEXT
+#define glMapNamedBufferRange epoxy_glMapNamedBufferRange
+#define glMapNamedBufferRangeEXT epoxy_glMapNamedBufferRangeEXT
+#define glMapObjectBufferATI epoxy_glMapObjectBufferATI
+#define glMapParameterfvNV epoxy_glMapParameterfvNV
+#define glMapParameterivNV epoxy_glMapParameterivNV
+#define glMapTexture2DINTEL epoxy_glMapTexture2DINTEL
+#define glMapVertexAttrib1dAPPLE epoxy_glMapVertexAttrib1dAPPLE
+#define glMapVertexAttrib1fAPPLE epoxy_glMapVertexAttrib1fAPPLE
+#define glMapVertexAttrib2dAPPLE epoxy_glMapVertexAttrib2dAPPLE
+#define glMapVertexAttrib2fAPPLE epoxy_glMapVertexAttrib2fAPPLE
+#define glMaterialf epoxy_glMaterialf
+#define glMaterialfv epoxy_glMaterialfv
+#define glMateriali epoxy_glMateriali
+#define glMaterialiv epoxy_glMaterialiv
+#define glMaterialx epoxy_glMaterialx
+#define glMaterialxOES epoxy_glMaterialxOES
+#define glMaterialxv epoxy_glMaterialxv
+#define glMaterialxvOES epoxy_glMaterialxvOES
+#define glMatrixFrustumEXT epoxy_glMatrixFrustumEXT
+#define glMatrixIndexPointerARB epoxy_glMatrixIndexPointerARB
+#define glMatrixIndexPointerOES epoxy_glMatrixIndexPointerOES
+#define glMatrixIndexubvARB epoxy_glMatrixIndexubvARB
+#define glMatrixIndexuivARB epoxy_glMatrixIndexuivARB
+#define glMatrixIndexusvARB epoxy_glMatrixIndexusvARB
+#define glMatrixLoad3x2fNV epoxy_glMatrixLoad3x2fNV
+#define glMatrixLoad3x3fNV epoxy_glMatrixLoad3x3fNV
+#define glMatrixLoadIdentityEXT epoxy_glMatrixLoadIdentityEXT
+#define glMatrixLoadTranspose3x3fNV epoxy_glMatrixLoadTranspose3x3fNV
+#define glMatrixLoadTransposedEXT epoxy_glMatrixLoadTransposedEXT
+#define glMatrixLoadTransposefEXT epoxy_glMatrixLoadTransposefEXT
+#define glMatrixLoaddEXT epoxy_glMatrixLoaddEXT
+#define glMatrixLoadfEXT epoxy_glMatrixLoadfEXT
+#define glMatrixMode epoxy_glMatrixMode
+#define glMatrixMult3x2fNV epoxy_glMatrixMult3x2fNV
+#define glMatrixMult3x3fNV epoxy_glMatrixMult3x3fNV
+#define glMatrixMultTranspose3x3fNV epoxy_glMatrixMultTranspose3x3fNV
+#define glMatrixMultTransposedEXT epoxy_glMatrixMultTransposedEXT
+#define glMatrixMultTransposefEXT epoxy_glMatrixMultTransposefEXT
+#define glMatrixMultdEXT epoxy_glMatrixMultdEXT
+#define glMatrixMultfEXT epoxy_glMatrixMultfEXT
+#define glMatrixOrthoEXT epoxy_glMatrixOrthoEXT
+#define glMatrixPopEXT epoxy_glMatrixPopEXT
+#define glMatrixPushEXT epoxy_glMatrixPushEXT
+#define glMatrixRotatedEXT epoxy_glMatrixRotatedEXT
+#define glMatrixRotatefEXT epoxy_glMatrixRotatefEXT
+#define glMatrixScaledEXT epoxy_glMatrixScaledEXT
+#define glMatrixScalefEXT epoxy_glMatrixScalefEXT
+#define glMatrixTranslatedEXT epoxy_glMatrixTranslatedEXT
+#define glMatrixTranslatefEXT epoxy_glMatrixTranslatefEXT
+#define glMaxShaderCompilerThreadsARB epoxy_glMaxShaderCompilerThreadsARB
+#define glMaxShaderCompilerThreadsKHR epoxy_glMaxShaderCompilerThreadsKHR
+#define glMemoryBarrier epoxy_glMemoryBarrier
+#define glMemoryBarrierByRegion epoxy_glMemoryBarrierByRegion
+#define glMemoryBarrierEXT epoxy_glMemoryBarrierEXT
+#define glMemoryObjectParameterivEXT epoxy_glMemoryObjectParameterivEXT
+#define glMinSampleShading epoxy_glMinSampleShading
+#define glMinSampleShadingARB epoxy_glMinSampleShadingARB
+#define glMinSampleShadingOES epoxy_glMinSampleShadingOES
+#define glMinmax epoxy_glMinmax
+#define glMinmaxEXT epoxy_glMinmaxEXT
+#define glMultMatrixd epoxy_glMultMatrixd
+#define glMultMatrixf epoxy_glMultMatrixf
+#define glMultMatrixx epoxy_glMultMatrixx
+#define glMultMatrixxOES epoxy_glMultMatrixxOES
+#define glMultTransposeMatrixd epoxy_glMultTransposeMatrixd
+#define glMultTransposeMatrixdARB epoxy_glMultTransposeMatrixdARB
+#define glMultTransposeMatrixf epoxy_glMultTransposeMatrixf
+#define glMultTransposeMatrixfARB epoxy_glMultTransposeMatrixfARB
+#define glMultTransposeMatrixxOES epoxy_glMultTransposeMatrixxOES
+#define glMultiDrawArrays epoxy_glMultiDrawArrays
+#define glMultiDrawArraysEXT epoxy_glMultiDrawArraysEXT
+#define glMultiDrawArraysIndirect epoxy_glMultiDrawArraysIndirect
+#define glMultiDrawArraysIndirectAMD epoxy_glMultiDrawArraysIndirectAMD
+#define glMultiDrawArraysIndirectBindlessCountNV epoxy_glMultiDrawArraysIndirectBindlessCountNV
+#define glMultiDrawArraysIndirectBindlessNV epoxy_glMultiDrawArraysIndirectBindlessNV
+#define glMultiDrawArraysIndirectCount epoxy_glMultiDrawArraysIndirectCount
+#define glMultiDrawArraysIndirectCountARB epoxy_glMultiDrawArraysIndirectCountARB
+#define glMultiDrawArraysIndirectEXT epoxy_glMultiDrawArraysIndirectEXT
+#define glMultiDrawElementArrayAPPLE epoxy_glMultiDrawElementArrayAPPLE
+#define glMultiDrawElements epoxy_glMultiDrawElements
+#define glMultiDrawElementsBaseVertex epoxy_glMultiDrawElementsBaseVertex
+#define glMultiDrawElementsBaseVertexEXT epoxy_glMultiDrawElementsBaseVertexEXT
+#define glMultiDrawElementsEXT epoxy_glMultiDrawElementsEXT
+#define glMultiDrawElementsIndirect epoxy_glMultiDrawElementsIndirect
+#define glMultiDrawElementsIndirectAMD epoxy_glMultiDrawElementsIndirectAMD
+#define glMultiDrawElementsIndirectBindlessCountNV epoxy_glMultiDrawElementsIndirectBindlessCountNV
+#define glMultiDrawElementsIndirectBindlessNV epoxy_glMultiDrawElementsIndirectBindlessNV
+#define glMultiDrawElementsIndirectCount epoxy_glMultiDrawElementsIndirectCount
+#define glMultiDrawElementsIndirectCountARB epoxy_glMultiDrawElementsIndirectCountARB
+#define glMultiDrawElementsIndirectEXT epoxy_glMultiDrawElementsIndirectEXT
+#define glMultiDrawMeshTasksIndirectCountNV epoxy_glMultiDrawMeshTasksIndirectCountNV
+#define glMultiDrawMeshTasksIndirectNV epoxy_glMultiDrawMeshTasksIndirectNV
+#define glMultiDrawRangeElementArrayAPPLE epoxy_glMultiDrawRangeElementArrayAPPLE
+#define glMultiModeDrawArraysIBM epoxy_glMultiModeDrawArraysIBM
+#define glMultiModeDrawElementsIBM epoxy_glMultiModeDrawElementsIBM
+#define glMultiTexBufferEXT epoxy_glMultiTexBufferEXT
+#define glMultiTexCoord1bOES epoxy_glMultiTexCoord1bOES
+#define glMultiTexCoord1bvOES epoxy_glMultiTexCoord1bvOES
+#define glMultiTexCoord1d epoxy_glMultiTexCoord1d
+#define glMultiTexCoord1dARB epoxy_glMultiTexCoord1dARB
+#define glMultiTexCoord1dv epoxy_glMultiTexCoord1dv
+#define glMultiTexCoord1dvARB epoxy_glMultiTexCoord1dvARB
+#define glMultiTexCoord1f epoxy_glMultiTexCoord1f
+#define glMultiTexCoord1fARB epoxy_glMultiTexCoord1fARB
+#define glMultiTexCoord1fv epoxy_glMultiTexCoord1fv
+#define glMultiTexCoord1fvARB epoxy_glMultiTexCoord1fvARB
+#define glMultiTexCoord1hNV epoxy_glMultiTexCoord1hNV
+#define glMultiTexCoord1hvNV epoxy_glMultiTexCoord1hvNV
+#define glMultiTexCoord1i epoxy_glMultiTexCoord1i
+#define glMultiTexCoord1iARB epoxy_glMultiTexCoord1iARB
+#define glMultiTexCoord1iv epoxy_glMultiTexCoord1iv
+#define glMultiTexCoord1ivARB epoxy_glMultiTexCoord1ivARB
+#define glMultiTexCoord1s epoxy_glMultiTexCoord1s
+#define glMultiTexCoord1sARB epoxy_glMultiTexCoord1sARB
+#define glMultiTexCoord1sv epoxy_glMultiTexCoord1sv
+#define glMultiTexCoord1svARB epoxy_glMultiTexCoord1svARB
+#define glMultiTexCoord1xOES epoxy_glMultiTexCoord1xOES
+#define glMultiTexCoord1xvOES epoxy_glMultiTexCoord1xvOES
+#define glMultiTexCoord2bOES epoxy_glMultiTexCoord2bOES
+#define glMultiTexCoord2bvOES epoxy_glMultiTexCoord2bvOES
+#define glMultiTexCoord2d epoxy_glMultiTexCoord2d
+#define glMultiTexCoord2dARB epoxy_glMultiTexCoord2dARB
+#define glMultiTexCoord2dv epoxy_glMultiTexCoord2dv
+#define glMultiTexCoord2dvARB epoxy_glMultiTexCoord2dvARB
+#define glMultiTexCoord2f epoxy_glMultiTexCoord2f
+#define glMultiTexCoord2fARB epoxy_glMultiTexCoord2fARB
+#define glMultiTexCoord2fv epoxy_glMultiTexCoord2fv
+#define glMultiTexCoord2fvARB epoxy_glMultiTexCoord2fvARB
+#define glMultiTexCoord2hNV epoxy_glMultiTexCoord2hNV
+#define glMultiTexCoord2hvNV epoxy_glMultiTexCoord2hvNV
+#define glMultiTexCoord2i epoxy_glMultiTexCoord2i
+#define glMultiTexCoord2iARB epoxy_glMultiTexCoord2iARB
+#define glMultiTexCoord2iv epoxy_glMultiTexCoord2iv
+#define glMultiTexCoord2ivARB epoxy_glMultiTexCoord2ivARB
+#define glMultiTexCoord2s epoxy_glMultiTexCoord2s
+#define glMultiTexCoord2sARB epoxy_glMultiTexCoord2sARB
+#define glMultiTexCoord2sv epoxy_glMultiTexCoord2sv
+#define glMultiTexCoord2svARB epoxy_glMultiTexCoord2svARB
+#define glMultiTexCoord2xOES epoxy_glMultiTexCoord2xOES
+#define glMultiTexCoord2xvOES epoxy_glMultiTexCoord2xvOES
+#define glMultiTexCoord3bOES epoxy_glMultiTexCoord3bOES
+#define glMultiTexCoord3bvOES epoxy_glMultiTexCoord3bvOES
+#define glMultiTexCoord3d epoxy_glMultiTexCoord3d
+#define glMultiTexCoord3dARB epoxy_glMultiTexCoord3dARB
+#define glMultiTexCoord3dv epoxy_glMultiTexCoord3dv
+#define glMultiTexCoord3dvARB epoxy_glMultiTexCoord3dvARB
+#define glMultiTexCoord3f epoxy_glMultiTexCoord3f
+#define glMultiTexCoord3fARB epoxy_glMultiTexCoord3fARB
+#define glMultiTexCoord3fv epoxy_glMultiTexCoord3fv
+#define glMultiTexCoord3fvARB epoxy_glMultiTexCoord3fvARB
+#define glMultiTexCoord3hNV epoxy_glMultiTexCoord3hNV
+#define glMultiTexCoord3hvNV epoxy_glMultiTexCoord3hvNV
+#define glMultiTexCoord3i epoxy_glMultiTexCoord3i
+#define glMultiTexCoord3iARB epoxy_glMultiTexCoord3iARB
+#define glMultiTexCoord3iv epoxy_glMultiTexCoord3iv
+#define glMultiTexCoord3ivARB epoxy_glMultiTexCoord3ivARB
+#define glMultiTexCoord3s epoxy_glMultiTexCoord3s
+#define glMultiTexCoord3sARB epoxy_glMultiTexCoord3sARB
+#define glMultiTexCoord3sv epoxy_glMultiTexCoord3sv
+#define glMultiTexCoord3svARB epoxy_glMultiTexCoord3svARB
+#define glMultiTexCoord3xOES epoxy_glMultiTexCoord3xOES
+#define glMultiTexCoord3xvOES epoxy_glMultiTexCoord3xvOES
+#define glMultiTexCoord4bOES epoxy_glMultiTexCoord4bOES
+#define glMultiTexCoord4bvOES epoxy_glMultiTexCoord4bvOES
+#define glMultiTexCoord4d epoxy_glMultiTexCoord4d
+#define glMultiTexCoord4dARB epoxy_glMultiTexCoord4dARB
+#define glMultiTexCoord4dv epoxy_glMultiTexCoord4dv
+#define glMultiTexCoord4dvARB epoxy_glMultiTexCoord4dvARB
+#define glMultiTexCoord4f epoxy_glMultiTexCoord4f
+#define glMultiTexCoord4fARB epoxy_glMultiTexCoord4fARB
+#define glMultiTexCoord4fv epoxy_glMultiTexCoord4fv
+#define glMultiTexCoord4fvARB epoxy_glMultiTexCoord4fvARB
+#define glMultiTexCoord4hNV epoxy_glMultiTexCoord4hNV
+#define glMultiTexCoord4hvNV epoxy_glMultiTexCoord4hvNV
+#define glMultiTexCoord4i epoxy_glMultiTexCoord4i
+#define glMultiTexCoord4iARB epoxy_glMultiTexCoord4iARB
+#define glMultiTexCoord4iv epoxy_glMultiTexCoord4iv
+#define glMultiTexCoord4ivARB epoxy_glMultiTexCoord4ivARB
+#define glMultiTexCoord4s epoxy_glMultiTexCoord4s
+#define glMultiTexCoord4sARB epoxy_glMultiTexCoord4sARB
+#define glMultiTexCoord4sv epoxy_glMultiTexCoord4sv
+#define glMultiTexCoord4svARB epoxy_glMultiTexCoord4svARB
+#define glMultiTexCoord4x epoxy_glMultiTexCoord4x
+#define glMultiTexCoord4xOES epoxy_glMultiTexCoord4xOES
+#define glMultiTexCoord4xvOES epoxy_glMultiTexCoord4xvOES
+#define glMultiTexCoordP1ui epoxy_glMultiTexCoordP1ui
+#define glMultiTexCoordP1uiv epoxy_glMultiTexCoordP1uiv
+#define glMultiTexCoordP2ui epoxy_glMultiTexCoordP2ui
+#define glMultiTexCoordP2uiv epoxy_glMultiTexCoordP2uiv
+#define glMultiTexCoordP3ui epoxy_glMultiTexCoordP3ui
+#define glMultiTexCoordP3uiv epoxy_glMultiTexCoordP3uiv
+#define glMultiTexCoordP4ui epoxy_glMultiTexCoordP4ui
+#define glMultiTexCoordP4uiv epoxy_glMultiTexCoordP4uiv
+#define glMultiTexCoordPointerEXT epoxy_glMultiTexCoordPointerEXT
+#define glMultiTexEnvfEXT epoxy_glMultiTexEnvfEXT
+#define glMultiTexEnvfvEXT epoxy_glMultiTexEnvfvEXT
+#define glMultiTexEnviEXT epoxy_glMultiTexEnviEXT
+#define glMultiTexEnvivEXT epoxy_glMultiTexEnvivEXT
+#define glMultiTexGendEXT epoxy_glMultiTexGendEXT
+#define glMultiTexGendvEXT epoxy_glMultiTexGendvEXT
+#define glMultiTexGenfEXT epoxy_glMultiTexGenfEXT
+#define glMultiTexGenfvEXT epoxy_glMultiTexGenfvEXT
+#define glMultiTexGeniEXT epoxy_glMultiTexGeniEXT
+#define glMultiTexGenivEXT epoxy_glMultiTexGenivEXT
+#define glMultiTexImage1DEXT epoxy_glMultiTexImage1DEXT
+#define glMultiTexImage2DEXT epoxy_glMultiTexImage2DEXT
+#define glMultiTexImage3DEXT epoxy_glMultiTexImage3DEXT
+#define glMultiTexParameterIivEXT epoxy_glMultiTexParameterIivEXT
+#define glMultiTexParameterIuivEXT epoxy_glMultiTexParameterIuivEXT
+#define glMultiTexParameterfEXT epoxy_glMultiTexParameterfEXT
+#define glMultiTexParameterfvEXT epoxy_glMultiTexParameterfvEXT
+#define glMultiTexParameteriEXT epoxy_glMultiTexParameteriEXT
+#define glMultiTexParameterivEXT epoxy_glMultiTexParameterivEXT
+#define glMultiTexRenderbufferEXT epoxy_glMultiTexRenderbufferEXT
+#define glMultiTexSubImage1DEXT epoxy_glMultiTexSubImage1DEXT
+#define glMultiTexSubImage2DEXT epoxy_glMultiTexSubImage2DEXT
+#define glMultiTexSubImage3DEXT epoxy_glMultiTexSubImage3DEXT
+#define glMulticastBarrierNV epoxy_glMulticastBarrierNV
+#define glMulticastBlitFramebufferNV epoxy_glMulticastBlitFramebufferNV
+#define glMulticastBufferSubDataNV epoxy_glMulticastBufferSubDataNV
+#define glMulticastCopyBufferSubDataNV epoxy_glMulticastCopyBufferSubDataNV
+#define glMulticastCopyImageSubDataNV epoxy_glMulticastCopyImageSubDataNV
+#define glMulticastFramebufferSampleLocationsfvNV epoxy_glMulticastFramebufferSampleLocationsfvNV
+#define glMulticastGetQueryObjecti64vNV epoxy_glMulticastGetQueryObjecti64vNV
+#define glMulticastGetQueryObjectivNV epoxy_glMulticastGetQueryObjectivNV
+#define glMulticastGetQueryObjectui64vNV epoxy_glMulticastGetQueryObjectui64vNV
+#define glMulticastGetQueryObjectuivNV epoxy_glMulticastGetQueryObjectuivNV
+#define glMulticastScissorArrayvNVX epoxy_glMulticastScissorArrayvNVX
+#define glMulticastViewportArrayvNVX epoxy_glMulticastViewportArrayvNVX
+#define glMulticastViewportPositionWScaleNVX epoxy_glMulticastViewportPositionWScaleNVX
+#define glMulticastWaitSyncNV epoxy_glMulticastWaitSyncNV
+#define glNamedBufferAttachMemoryNV epoxy_glNamedBufferAttachMemoryNV
+#define glNamedBufferData epoxy_glNamedBufferData
+#define glNamedBufferDataEXT epoxy_glNamedBufferDataEXT
+#define glNamedBufferPageCommitmentARB epoxy_glNamedBufferPageCommitmentARB
+#define glNamedBufferPageCommitmentEXT epoxy_glNamedBufferPageCommitmentEXT
+#define glNamedBufferStorage epoxy_glNamedBufferStorage
+#define glNamedBufferStorageEXT epoxy_glNamedBufferStorageEXT
+#define glNamedBufferStorageExternalEXT epoxy_glNamedBufferStorageExternalEXT
+#define glNamedBufferStorageMemEXT epoxy_glNamedBufferStorageMemEXT
+#define glNamedBufferSubData epoxy_glNamedBufferSubData
+#define glNamedBufferSubDataEXT epoxy_glNamedBufferSubDataEXT
+#define glNamedCopyBufferSubDataEXT epoxy_glNamedCopyBufferSubDataEXT
+#define glNamedFramebufferDrawBuffer epoxy_glNamedFramebufferDrawBuffer
+#define glNamedFramebufferDrawBuffers epoxy_glNamedFramebufferDrawBuffers
+#define glNamedFramebufferParameteri epoxy_glNamedFramebufferParameteri
+#define glNamedFramebufferParameteriEXT epoxy_glNamedFramebufferParameteriEXT
+#define glNamedFramebufferReadBuffer epoxy_glNamedFramebufferReadBuffer
+#define glNamedFramebufferRenderbuffer epoxy_glNamedFramebufferRenderbuffer
+#define glNamedFramebufferRenderbufferEXT epoxy_glNamedFramebufferRenderbufferEXT
+#define glNamedFramebufferSampleLocationsfvARB epoxy_glNamedFramebufferSampleLocationsfvARB
+#define glNamedFramebufferSampleLocationsfvNV epoxy_glNamedFramebufferSampleLocationsfvNV
+#define glNamedFramebufferSamplePositionsfvAMD epoxy_glNamedFramebufferSamplePositionsfvAMD
+#define glNamedFramebufferTexture epoxy_glNamedFramebufferTexture
+#define glNamedFramebufferTexture1DEXT epoxy_glNamedFramebufferTexture1DEXT
+#define glNamedFramebufferTexture2DEXT epoxy_glNamedFramebufferTexture2DEXT
+#define glNamedFramebufferTexture3DEXT epoxy_glNamedFramebufferTexture3DEXT
+#define glNamedFramebufferTextureEXT epoxy_glNamedFramebufferTextureEXT
+#define glNamedFramebufferTextureFaceEXT epoxy_glNamedFramebufferTextureFaceEXT
+#define glNamedFramebufferTextureLayer epoxy_glNamedFramebufferTextureLayer
+#define glNamedFramebufferTextureLayerEXT epoxy_glNamedFramebufferTextureLayerEXT
+#define glNamedProgramLocalParameter4dEXT epoxy_glNamedProgramLocalParameter4dEXT
+#define glNamedProgramLocalParameter4dvEXT epoxy_glNamedProgramLocalParameter4dvEXT
+#define glNamedProgramLocalParameter4fEXT epoxy_glNamedProgramLocalParameter4fEXT
+#define glNamedProgramLocalParameter4fvEXT epoxy_glNamedProgramLocalParameter4fvEXT
+#define glNamedProgramLocalParameterI4iEXT epoxy_glNamedProgramLocalParameterI4iEXT
+#define glNamedProgramLocalParameterI4ivEXT epoxy_glNamedProgramLocalParameterI4ivEXT
+#define glNamedProgramLocalParameterI4uiEXT epoxy_glNamedProgramLocalParameterI4uiEXT
+#define glNamedProgramLocalParameterI4uivEXT epoxy_glNamedProgramLocalParameterI4uivEXT
+#define glNamedProgramLocalParameters4fvEXT epoxy_glNamedProgramLocalParameters4fvEXT
+#define glNamedProgramLocalParametersI4ivEXT epoxy_glNamedProgramLocalParametersI4ivEXT
+#define glNamedProgramLocalParametersI4uivEXT epoxy_glNamedProgramLocalParametersI4uivEXT
+#define glNamedProgramStringEXT epoxy_glNamedProgramStringEXT
+#define glNamedRenderbufferStorage epoxy_glNamedRenderbufferStorage
+#define glNamedRenderbufferStorageEXT epoxy_glNamedRenderbufferStorageEXT
+#define glNamedRenderbufferStorageMultisample epoxy_glNamedRenderbufferStorageMultisample
+#define glNamedRenderbufferStorageMultisampleAdvancedAMD epoxy_glNamedRenderbufferStorageMultisampleAdvancedAMD
+#define glNamedRenderbufferStorageMultisampleCoverageEXT epoxy_glNamedRenderbufferStorageMultisampleCoverageEXT
+#define glNamedRenderbufferStorageMultisampleEXT epoxy_glNamedRenderbufferStorageMultisampleEXT
+#define glNamedStringARB epoxy_glNamedStringARB
+#define glNewList epoxy_glNewList
+#define glNewObjectBufferATI epoxy_glNewObjectBufferATI
+#define glNormal3b epoxy_glNormal3b
+#define glNormal3bv epoxy_glNormal3bv
+#define glNormal3d epoxy_glNormal3d
+#define glNormal3dv epoxy_glNormal3dv
+#define glNormal3f epoxy_glNormal3f
+#define glNormal3fVertex3fSUN epoxy_glNormal3fVertex3fSUN
+#define glNormal3fVertex3fvSUN epoxy_glNormal3fVertex3fvSUN
+#define glNormal3fv epoxy_glNormal3fv
+#define glNormal3hNV epoxy_glNormal3hNV
+#define glNormal3hvNV epoxy_glNormal3hvNV
+#define glNormal3i epoxy_glNormal3i
+#define glNormal3iv epoxy_glNormal3iv
+#define glNormal3s epoxy_glNormal3s
+#define glNormal3sv epoxy_glNormal3sv
+#define glNormal3x epoxy_glNormal3x
+#define glNormal3xOES epoxy_glNormal3xOES
+#define glNormal3xvOES epoxy_glNormal3xvOES
+#define glNormalFormatNV epoxy_glNormalFormatNV
+#define glNormalP3ui epoxy_glNormalP3ui
+#define glNormalP3uiv epoxy_glNormalP3uiv
+#define glNormalPointer epoxy_glNormalPointer
+#define glNormalPointerEXT epoxy_glNormalPointerEXT
+#define glNormalPointerListIBM epoxy_glNormalPointerListIBM
+#define glNormalPointervINTEL epoxy_glNormalPointervINTEL
+#define glNormalStream3bATI epoxy_glNormalStream3bATI
+#define glNormalStream3bvATI epoxy_glNormalStream3bvATI
+#define glNormalStream3dATI epoxy_glNormalStream3dATI
+#define glNormalStream3dvATI epoxy_glNormalStream3dvATI
+#define glNormalStream3fATI epoxy_glNormalStream3fATI
+#define glNormalStream3fvATI epoxy_glNormalStream3fvATI
+#define glNormalStream3iATI epoxy_glNormalStream3iATI
+#define glNormalStream3ivATI epoxy_glNormalStream3ivATI
+#define glNormalStream3sATI epoxy_glNormalStream3sATI
+#define glNormalStream3svATI epoxy_glNormalStream3svATI
+#define glObjectLabel epoxy_glObjectLabel
+#define glObjectLabelKHR epoxy_glObjectLabelKHR
+#define glObjectPtrLabel epoxy_glObjectPtrLabel
+#define glObjectPtrLabelKHR epoxy_glObjectPtrLabelKHR
+#define glObjectPurgeableAPPLE epoxy_glObjectPurgeableAPPLE
+#define glObjectUnpurgeableAPPLE epoxy_glObjectUnpurgeableAPPLE
+#define glOrtho epoxy_glOrtho
+#define glOrthof epoxy_glOrthof
+#define glOrthofOES epoxy_glOrthofOES
+#define glOrthox epoxy_glOrthox
+#define glOrthoxOES epoxy_glOrthoxOES
+#define glPNTrianglesfATI epoxy_glPNTrianglesfATI
+#define glPNTrianglesiATI epoxy_glPNTrianglesiATI
+#define glPassTexCoordATI epoxy_glPassTexCoordATI
+#define glPassThrough epoxy_glPassThrough
+#define glPassThroughxOES epoxy_glPassThroughxOES
+#define glPatchParameterfv epoxy_glPatchParameterfv
+#define glPatchParameteri epoxy_glPatchParameteri
+#define glPatchParameteriEXT epoxy_glPatchParameteriEXT
+#define glPatchParameteriOES epoxy_glPatchParameteriOES
+#define glPathColorGenNV epoxy_glPathColorGenNV
+#define glPathCommandsNV epoxy_glPathCommandsNV
+#define glPathCoordsNV epoxy_glPathCoordsNV
+#define glPathCoverDepthFuncNV epoxy_glPathCoverDepthFuncNV
+#define glPathDashArrayNV epoxy_glPathDashArrayNV
+#define glPathFogGenNV epoxy_glPathFogGenNV
+#define glPathGlyphIndexArrayNV epoxy_glPathGlyphIndexArrayNV
+#define glPathGlyphIndexRangeNV epoxy_glPathGlyphIndexRangeNV
+#define glPathGlyphRangeNV epoxy_glPathGlyphRangeNV
+#define glPathGlyphsNV epoxy_glPathGlyphsNV
+#define glPathMemoryGlyphIndexArrayNV epoxy_glPathMemoryGlyphIndexArrayNV
+#define glPathParameterfNV epoxy_glPathParameterfNV
+#define glPathParameterfvNV epoxy_glPathParameterfvNV
+#define glPathParameteriNV epoxy_glPathParameteriNV
+#define glPathParameterivNV epoxy_glPathParameterivNV
+#define glPathStencilDepthOffsetNV epoxy_glPathStencilDepthOffsetNV
+#define glPathStencilFuncNV epoxy_glPathStencilFuncNV
+#define glPathStringNV epoxy_glPathStringNV
+#define glPathSubCommandsNV epoxy_glPathSubCommandsNV
+#define glPathSubCoordsNV epoxy_glPathSubCoordsNV
+#define glPathTexGenNV epoxy_glPathTexGenNV
+#define glPauseTransformFeedback epoxy_glPauseTransformFeedback
+#define glPauseTransformFeedbackNV epoxy_glPauseTransformFeedbackNV
+#define glPixelDataRangeNV epoxy_glPixelDataRangeNV
+#define glPixelMapfv epoxy_glPixelMapfv
+#define glPixelMapuiv epoxy_glPixelMapuiv
+#define glPixelMapusv epoxy_glPixelMapusv
+#define glPixelMapx epoxy_glPixelMapx
+#define glPixelStoref epoxy_glPixelStoref
+#define glPixelStorei epoxy_glPixelStorei
+#define glPixelStorex epoxy_glPixelStorex
+#define glPixelTexGenParameterfSGIS epoxy_glPixelTexGenParameterfSGIS
+#define glPixelTexGenParameterfvSGIS epoxy_glPixelTexGenParameterfvSGIS
+#define glPixelTexGenParameteriSGIS epoxy_glPixelTexGenParameteriSGIS
+#define glPixelTexGenParameterivSGIS epoxy_glPixelTexGenParameterivSGIS
+#define glPixelTexGenSGIX epoxy_glPixelTexGenSGIX
+#define glPixelTransferf epoxy_glPixelTransferf
+#define glPixelTransferi epoxy_glPixelTransferi
+#define glPixelTransferxOES epoxy_glPixelTransferxOES
+#define glPixelTransformParameterfEXT epoxy_glPixelTransformParameterfEXT
+#define glPixelTransformParameterfvEXT epoxy_glPixelTransformParameterfvEXT
+#define glPixelTransformParameteriEXT epoxy_glPixelTransformParameteriEXT
+#define glPixelTransformParameterivEXT epoxy_glPixelTransformParameterivEXT
+#define glPixelZoom epoxy_glPixelZoom
+#define glPixelZoomxOES epoxy_glPixelZoomxOES
+#define glPointAlongPathNV epoxy_glPointAlongPathNV
+#define glPointParameterf epoxy_glPointParameterf
+#define glPointParameterfARB epoxy_glPointParameterfARB
+#define glPointParameterfEXT epoxy_glPointParameterfEXT
+#define glPointParameterfSGIS epoxy_glPointParameterfSGIS
+#define glPointParameterfv epoxy_glPointParameterfv
+#define glPointParameterfvARB epoxy_glPointParameterfvARB
+#define glPointParameterfvEXT epoxy_glPointParameterfvEXT
+#define glPointParameterfvSGIS epoxy_glPointParameterfvSGIS
+#define glPointParameteri epoxy_glPointParameteri
+#define glPointParameteriNV epoxy_glPointParameteriNV
+#define glPointParameteriv epoxy_glPointParameteriv
+#define glPointParameterivNV epoxy_glPointParameterivNV
+#define glPointParameterx epoxy_glPointParameterx
+#define glPointParameterxOES epoxy_glPointParameterxOES
+#define glPointParameterxv epoxy_glPointParameterxv
+#define glPointParameterxvOES epoxy_glPointParameterxvOES
+#define glPointSize epoxy_glPointSize
+#define glPointSizePointerOES epoxy_glPointSizePointerOES
+#define glPointSizex epoxy_glPointSizex
+#define glPointSizexOES epoxy_glPointSizexOES
+#define glPollAsyncSGIX epoxy_glPollAsyncSGIX
+#define glPollInstrumentsSGIX epoxy_glPollInstrumentsSGIX
+#define glPolygonMode epoxy_glPolygonMode
+#define glPolygonModeNV epoxy_glPolygonModeNV
+#define glPolygonOffset epoxy_glPolygonOffset
+#define glPolygonOffsetClamp epoxy_glPolygonOffsetClamp
+#define glPolygonOffsetClampEXT epoxy_glPolygonOffsetClampEXT
+#define glPolygonOffsetEXT epoxy_glPolygonOffsetEXT
+#define glPolygonOffsetx epoxy_glPolygonOffsetx
+#define glPolygonOffsetxOES epoxy_glPolygonOffsetxOES
+#define glPolygonStipple epoxy_glPolygonStipple
+#define glPopAttrib epoxy_glPopAttrib
+#define glPopClientAttrib epoxy_glPopClientAttrib
+#define glPopDebugGroup epoxy_glPopDebugGroup
+#define glPopDebugGroupKHR epoxy_glPopDebugGroupKHR
+#define glPopGroupMarkerEXT epoxy_glPopGroupMarkerEXT
+#define glPopMatrix epoxy_glPopMatrix
+#define glPopName epoxy_glPopName
+#define glPresentFrameDualFillNV epoxy_glPresentFrameDualFillNV
+#define glPresentFrameKeyedNV epoxy_glPresentFrameKeyedNV
+#define glPrimitiveBoundingBox epoxy_glPrimitiveBoundingBox
+#define glPrimitiveBoundingBoxARB epoxy_glPrimitiveBoundingBoxARB
+#define glPrimitiveBoundingBoxEXT epoxy_glPrimitiveBoundingBoxEXT
+#define glPrimitiveBoundingBoxOES epoxy_glPrimitiveBoundingBoxOES
+#define glPrimitiveRestartIndex epoxy_glPrimitiveRestartIndex
+#define glPrimitiveRestartIndexNV epoxy_glPrimitiveRestartIndexNV
+#define glPrimitiveRestartNV epoxy_glPrimitiveRestartNV
+#define glPrioritizeTextures epoxy_glPrioritizeTextures
+#define glPrioritizeTexturesEXT epoxy_glPrioritizeTexturesEXT
+#define glPrioritizeTexturesxOES epoxy_glPrioritizeTexturesxOES
+#define glProgramBinary epoxy_glProgramBinary
+#define glProgramBinaryOES epoxy_glProgramBinaryOES
+#define glProgramBufferParametersIivNV epoxy_glProgramBufferParametersIivNV
+#define glProgramBufferParametersIuivNV epoxy_glProgramBufferParametersIuivNV
+#define glProgramBufferParametersfvNV epoxy_glProgramBufferParametersfvNV
+#define glProgramEnvParameter4dARB epoxy_glProgramEnvParameter4dARB
+#define glProgramEnvParameter4dvARB epoxy_glProgramEnvParameter4dvARB
+#define glProgramEnvParameter4fARB epoxy_glProgramEnvParameter4fARB
+#define glProgramEnvParameter4fvARB epoxy_glProgramEnvParameter4fvARB
+#define glProgramEnvParameterI4iNV epoxy_glProgramEnvParameterI4iNV
+#define glProgramEnvParameterI4ivNV epoxy_glProgramEnvParameterI4ivNV
+#define glProgramEnvParameterI4uiNV epoxy_glProgramEnvParameterI4uiNV
+#define glProgramEnvParameterI4uivNV epoxy_glProgramEnvParameterI4uivNV
+#define glProgramEnvParameters4fvEXT epoxy_glProgramEnvParameters4fvEXT
+#define glProgramEnvParametersI4ivNV epoxy_glProgramEnvParametersI4ivNV
+#define glProgramEnvParametersI4uivNV epoxy_glProgramEnvParametersI4uivNV
+#define glProgramLocalParameter4dARB epoxy_glProgramLocalParameter4dARB
+#define glProgramLocalParameter4dvARB epoxy_glProgramLocalParameter4dvARB
+#define glProgramLocalParameter4fARB epoxy_glProgramLocalParameter4fARB
+#define glProgramLocalParameter4fvARB epoxy_glProgramLocalParameter4fvARB
+#define glProgramLocalParameterI4iNV epoxy_glProgramLocalParameterI4iNV
+#define glProgramLocalParameterI4ivNV epoxy_glProgramLocalParameterI4ivNV
+#define glProgramLocalParameterI4uiNV epoxy_glProgramLocalParameterI4uiNV
+#define glProgramLocalParameterI4uivNV epoxy_glProgramLocalParameterI4uivNV
+#define glProgramLocalParameters4fvEXT epoxy_glProgramLocalParameters4fvEXT
+#define glProgramLocalParametersI4ivNV epoxy_glProgramLocalParametersI4ivNV
+#define glProgramLocalParametersI4uivNV epoxy_glProgramLocalParametersI4uivNV
+#define glProgramNamedParameter4dNV epoxy_glProgramNamedParameter4dNV
+#define glProgramNamedParameter4dvNV epoxy_glProgramNamedParameter4dvNV
+#define glProgramNamedParameter4fNV epoxy_glProgramNamedParameter4fNV
+#define glProgramNamedParameter4fvNV epoxy_glProgramNamedParameter4fvNV
+#define glProgramParameter4dNV epoxy_glProgramParameter4dNV
+#define glProgramParameter4dvNV epoxy_glProgramParameter4dvNV
+#define glProgramParameter4fNV epoxy_glProgramParameter4fNV
+#define glProgramParameter4fvNV epoxy_glProgramParameter4fvNV
+#define glProgramParameteri epoxy_glProgramParameteri
+#define glProgramParameteriARB epoxy_glProgramParameteriARB
+#define glProgramParameteriEXT epoxy_glProgramParameteriEXT
+#define glProgramParameters4dvNV epoxy_glProgramParameters4dvNV
+#define glProgramParameters4fvNV epoxy_glProgramParameters4fvNV
+#define glProgramPathFragmentInputGenNV epoxy_glProgramPathFragmentInputGenNV
+#define glProgramStringARB epoxy_glProgramStringARB
+#define glProgramSubroutineParametersuivNV epoxy_glProgramSubroutineParametersuivNV
+#define glProgramUniform1d epoxy_glProgramUniform1d
+#define glProgramUniform1dEXT epoxy_glProgramUniform1dEXT
+#define glProgramUniform1dv epoxy_glProgramUniform1dv
+#define glProgramUniform1dvEXT epoxy_glProgramUniform1dvEXT
+#define glProgramUniform1f epoxy_glProgramUniform1f
+#define glProgramUniform1fEXT epoxy_glProgramUniform1fEXT
+#define glProgramUniform1fv epoxy_glProgramUniform1fv
+#define glProgramUniform1fvEXT epoxy_glProgramUniform1fvEXT
+#define glProgramUniform1i epoxy_glProgramUniform1i
+#define glProgramUniform1i64ARB epoxy_glProgramUniform1i64ARB
+#define glProgramUniform1i64NV epoxy_glProgramUniform1i64NV
+#define glProgramUniform1i64vARB epoxy_glProgramUniform1i64vARB
+#define glProgramUniform1i64vNV epoxy_glProgramUniform1i64vNV
+#define glProgramUniform1iEXT epoxy_glProgramUniform1iEXT
+#define glProgramUniform1iv epoxy_glProgramUniform1iv
+#define glProgramUniform1ivEXT epoxy_glProgramUniform1ivEXT
+#define glProgramUniform1ui epoxy_glProgramUniform1ui
+#define glProgramUniform1ui64ARB epoxy_glProgramUniform1ui64ARB
+#define glProgramUniform1ui64NV epoxy_glProgramUniform1ui64NV
+#define glProgramUniform1ui64vARB epoxy_glProgramUniform1ui64vARB
+#define glProgramUniform1ui64vNV epoxy_glProgramUniform1ui64vNV
+#define glProgramUniform1uiEXT epoxy_glProgramUniform1uiEXT
+#define glProgramUniform1uiv epoxy_glProgramUniform1uiv
+#define glProgramUniform1uivEXT epoxy_glProgramUniform1uivEXT
+#define glProgramUniform2d epoxy_glProgramUniform2d
+#define glProgramUniform2dEXT epoxy_glProgramUniform2dEXT
+#define glProgramUniform2dv epoxy_glProgramUniform2dv
+#define glProgramUniform2dvEXT epoxy_glProgramUniform2dvEXT
+#define glProgramUniform2f epoxy_glProgramUniform2f
+#define glProgramUniform2fEXT epoxy_glProgramUniform2fEXT
+#define glProgramUniform2fv epoxy_glProgramUniform2fv
+#define glProgramUniform2fvEXT epoxy_glProgramUniform2fvEXT
+#define glProgramUniform2i epoxy_glProgramUniform2i
+#define glProgramUniform2i64ARB epoxy_glProgramUniform2i64ARB
+#define glProgramUniform2i64NV epoxy_glProgramUniform2i64NV
+#define glProgramUniform2i64vARB epoxy_glProgramUniform2i64vARB
+#define glProgramUniform2i64vNV epoxy_glProgramUniform2i64vNV
+#define glProgramUniform2iEXT epoxy_glProgramUniform2iEXT
+#define glProgramUniform2iv epoxy_glProgramUniform2iv
+#define glProgramUniform2ivEXT epoxy_glProgramUniform2ivEXT
+#define glProgramUniform2ui epoxy_glProgramUniform2ui
+#define glProgramUniform2ui64ARB epoxy_glProgramUniform2ui64ARB
+#define glProgramUniform2ui64NV epoxy_glProgramUniform2ui64NV
+#define glProgramUniform2ui64vARB epoxy_glProgramUniform2ui64vARB
+#define glProgramUniform2ui64vNV epoxy_glProgramUniform2ui64vNV
+#define glProgramUniform2uiEXT epoxy_glProgramUniform2uiEXT
+#define glProgramUniform2uiv epoxy_glProgramUniform2uiv
+#define glProgramUniform2uivEXT epoxy_glProgramUniform2uivEXT
+#define glProgramUniform3d epoxy_glProgramUniform3d
+#define glProgramUniform3dEXT epoxy_glProgramUniform3dEXT
+#define glProgramUniform3dv epoxy_glProgramUniform3dv
+#define glProgramUniform3dvEXT epoxy_glProgramUniform3dvEXT
+#define glProgramUniform3f epoxy_glProgramUniform3f
+#define glProgramUniform3fEXT epoxy_glProgramUniform3fEXT
+#define glProgramUniform3fv epoxy_glProgramUniform3fv
+#define glProgramUniform3fvEXT epoxy_glProgramUniform3fvEXT
+#define glProgramUniform3i epoxy_glProgramUniform3i
+#define glProgramUniform3i64ARB epoxy_glProgramUniform3i64ARB
+#define glProgramUniform3i64NV epoxy_glProgramUniform3i64NV
+#define glProgramUniform3i64vARB epoxy_glProgramUniform3i64vARB
+#define glProgramUniform3i64vNV epoxy_glProgramUniform3i64vNV
+#define glProgramUniform3iEXT epoxy_glProgramUniform3iEXT
+#define glProgramUniform3iv epoxy_glProgramUniform3iv
+#define glProgramUniform3ivEXT epoxy_glProgramUniform3ivEXT
+#define glProgramUniform3ui epoxy_glProgramUniform3ui
+#define glProgramUniform3ui64ARB epoxy_glProgramUniform3ui64ARB
+#define glProgramUniform3ui64NV epoxy_glProgramUniform3ui64NV
+#define glProgramUniform3ui64vARB epoxy_glProgramUniform3ui64vARB
+#define glProgramUniform3ui64vNV epoxy_glProgramUniform3ui64vNV
+#define glProgramUniform3uiEXT epoxy_glProgramUniform3uiEXT
+#define glProgramUniform3uiv epoxy_glProgramUniform3uiv
+#define glProgramUniform3uivEXT epoxy_glProgramUniform3uivEXT
+#define glProgramUniform4d epoxy_glProgramUniform4d
+#define glProgramUniform4dEXT epoxy_glProgramUniform4dEXT
+#define glProgramUniform4dv epoxy_glProgramUniform4dv
+#define glProgramUniform4dvEXT epoxy_glProgramUniform4dvEXT
+#define glProgramUniform4f epoxy_glProgramUniform4f
+#define glProgramUniform4fEXT epoxy_glProgramUniform4fEXT
+#define glProgramUniform4fv epoxy_glProgramUniform4fv
+#define glProgramUniform4fvEXT epoxy_glProgramUniform4fvEXT
+#define glProgramUniform4i epoxy_glProgramUniform4i
+#define glProgramUniform4i64ARB epoxy_glProgramUniform4i64ARB
+#define glProgramUniform4i64NV epoxy_glProgramUniform4i64NV
+#define glProgramUniform4i64vARB epoxy_glProgramUniform4i64vARB
+#define glProgramUniform4i64vNV epoxy_glProgramUniform4i64vNV
+#define glProgramUniform4iEXT epoxy_glProgramUniform4iEXT
+#define glProgramUniform4iv epoxy_glProgramUniform4iv
+#define glProgramUniform4ivEXT epoxy_glProgramUniform4ivEXT
+#define glProgramUniform4ui epoxy_glProgramUniform4ui
+#define glProgramUniform4ui64ARB epoxy_glProgramUniform4ui64ARB
+#define glProgramUniform4ui64NV epoxy_glProgramUniform4ui64NV
+#define glProgramUniform4ui64vARB epoxy_glProgramUniform4ui64vARB
+#define glProgramUniform4ui64vNV epoxy_glProgramUniform4ui64vNV
+#define glProgramUniform4uiEXT epoxy_glProgramUniform4uiEXT
+#define glProgramUniform4uiv epoxy_glProgramUniform4uiv
+#define glProgramUniform4uivEXT epoxy_glProgramUniform4uivEXT
+#define glProgramUniformHandleui64ARB epoxy_glProgramUniformHandleui64ARB
+#define glProgramUniformHandleui64IMG epoxy_glProgramUniformHandleui64IMG
+#define glProgramUniformHandleui64NV epoxy_glProgramUniformHandleui64NV
+#define glProgramUniformHandleui64vARB epoxy_glProgramUniformHandleui64vARB
+#define glProgramUniformHandleui64vIMG epoxy_glProgramUniformHandleui64vIMG
+#define glProgramUniformHandleui64vNV epoxy_glProgramUniformHandleui64vNV
+#define glProgramUniformMatrix2dv epoxy_glProgramUniformMatrix2dv
+#define glProgramUniformMatrix2dvEXT epoxy_glProgramUniformMatrix2dvEXT
+#define glProgramUniformMatrix2fv epoxy_glProgramUniformMatrix2fv
+#define glProgramUniformMatrix2fvEXT epoxy_glProgramUniformMatrix2fvEXT
+#define glProgramUniformMatrix2x3dv epoxy_glProgramUniformMatrix2x3dv
+#define glProgramUniformMatrix2x3dvEXT epoxy_glProgramUniformMatrix2x3dvEXT
+#define glProgramUniformMatrix2x3fv epoxy_glProgramUniformMatrix2x3fv
+#define glProgramUniformMatrix2x3fvEXT epoxy_glProgramUniformMatrix2x3fvEXT
+#define glProgramUniformMatrix2x4dv epoxy_glProgramUniformMatrix2x4dv
+#define glProgramUniformMatrix2x4dvEXT epoxy_glProgramUniformMatrix2x4dvEXT
+#define glProgramUniformMatrix2x4fv epoxy_glProgramUniformMatrix2x4fv
+#define glProgramUniformMatrix2x4fvEXT epoxy_glProgramUniformMatrix2x4fvEXT
+#define glProgramUniformMatrix3dv epoxy_glProgramUniformMatrix3dv
+#define glProgramUniformMatrix3dvEXT epoxy_glProgramUniformMatrix3dvEXT
+#define glProgramUniformMatrix3fv epoxy_glProgramUniformMatrix3fv
+#define glProgramUniformMatrix3fvEXT epoxy_glProgramUniformMatrix3fvEXT
+#define glProgramUniformMatrix3x2dv epoxy_glProgramUniformMatrix3x2dv
+#define glProgramUniformMatrix3x2dvEXT epoxy_glProgramUniformMatrix3x2dvEXT
+#define glProgramUniformMatrix3x2fv epoxy_glProgramUniformMatrix3x2fv
+#define glProgramUniformMatrix3x2fvEXT epoxy_glProgramUniformMatrix3x2fvEXT
+#define glProgramUniformMatrix3x4dv epoxy_glProgramUniformMatrix3x4dv
+#define glProgramUniformMatrix3x4dvEXT epoxy_glProgramUniformMatrix3x4dvEXT
+#define glProgramUniformMatrix3x4fv epoxy_glProgramUniformMatrix3x4fv
+#define glProgramUniformMatrix3x4fvEXT epoxy_glProgramUniformMatrix3x4fvEXT
+#define glProgramUniformMatrix4dv epoxy_glProgramUniformMatrix4dv
+#define glProgramUniformMatrix4dvEXT epoxy_glProgramUniformMatrix4dvEXT
+#define glProgramUniformMatrix4fv epoxy_glProgramUniformMatrix4fv
+#define glProgramUniformMatrix4fvEXT epoxy_glProgramUniformMatrix4fvEXT
+#define glProgramUniformMatrix4x2dv epoxy_glProgramUniformMatrix4x2dv
+#define glProgramUniformMatrix4x2dvEXT epoxy_glProgramUniformMatrix4x2dvEXT
+#define glProgramUniformMatrix4x2fv epoxy_glProgramUniformMatrix4x2fv
+#define glProgramUniformMatrix4x2fvEXT epoxy_glProgramUniformMatrix4x2fvEXT
+#define glProgramUniformMatrix4x3dv epoxy_glProgramUniformMatrix4x3dv
+#define glProgramUniformMatrix4x3dvEXT epoxy_glProgramUniformMatrix4x3dvEXT
+#define glProgramUniformMatrix4x3fv epoxy_glProgramUniformMatrix4x3fv
+#define glProgramUniformMatrix4x3fvEXT epoxy_glProgramUniformMatrix4x3fvEXT
+#define glProgramUniformui64NV epoxy_glProgramUniformui64NV
+#define glProgramUniformui64vNV epoxy_glProgramUniformui64vNV
+#define glProgramVertexLimitNV epoxy_glProgramVertexLimitNV
+#define glProvokingVertex epoxy_glProvokingVertex
+#define glProvokingVertexEXT epoxy_glProvokingVertexEXT
+#define glPushAttrib epoxy_glPushAttrib
+#define glPushClientAttrib epoxy_glPushClientAttrib
+#define glPushClientAttribDefaultEXT epoxy_glPushClientAttribDefaultEXT
+#define glPushDebugGroup epoxy_glPushDebugGroup
+#define glPushDebugGroupKHR epoxy_glPushDebugGroupKHR
+#define glPushGroupMarkerEXT epoxy_glPushGroupMarkerEXT
+#define glPushMatrix epoxy_glPushMatrix
+#define glPushName epoxy_glPushName
+#define glQueryCounter epoxy_glQueryCounter
+#define glQueryCounterEXT epoxy_glQueryCounterEXT
+#define glQueryMatrixxOES epoxy_glQueryMatrixxOES
+#define glQueryObjectParameteruiAMD epoxy_glQueryObjectParameteruiAMD
+#define glQueryResourceNV epoxy_glQueryResourceNV
+#define glQueryResourceTagNV epoxy_glQueryResourceTagNV
+#define glRasterPos2d epoxy_glRasterPos2d
+#define glRasterPos2dv epoxy_glRasterPos2dv
+#define glRasterPos2f epoxy_glRasterPos2f
+#define glRasterPos2fv epoxy_glRasterPos2fv
+#define glRasterPos2i epoxy_glRasterPos2i
+#define glRasterPos2iv epoxy_glRasterPos2iv
+#define glRasterPos2s epoxy_glRasterPos2s
+#define glRasterPos2sv epoxy_glRasterPos2sv
+#define glRasterPos2xOES epoxy_glRasterPos2xOES
+#define glRasterPos2xvOES epoxy_glRasterPos2xvOES
+#define glRasterPos3d epoxy_glRasterPos3d
+#define glRasterPos3dv epoxy_glRasterPos3dv
+#define glRasterPos3f epoxy_glRasterPos3f
+#define glRasterPos3fv epoxy_glRasterPos3fv
+#define glRasterPos3i epoxy_glRasterPos3i
+#define glRasterPos3iv epoxy_glRasterPos3iv
+#define glRasterPos3s epoxy_glRasterPos3s
+#define glRasterPos3sv epoxy_glRasterPos3sv
+#define glRasterPos3xOES epoxy_glRasterPos3xOES
+#define glRasterPos3xvOES epoxy_glRasterPos3xvOES
+#define glRasterPos4d epoxy_glRasterPos4d
+#define glRasterPos4dv epoxy_glRasterPos4dv
+#define glRasterPos4f epoxy_glRasterPos4f
+#define glRasterPos4fv epoxy_glRasterPos4fv
+#define glRasterPos4i epoxy_glRasterPos4i
+#define glRasterPos4iv epoxy_glRasterPos4iv
+#define glRasterPos4s epoxy_glRasterPos4s
+#define glRasterPos4sv epoxy_glRasterPos4sv
+#define glRasterPos4xOES epoxy_glRasterPos4xOES
+#define glRasterPos4xvOES epoxy_glRasterPos4xvOES
+#define glRasterSamplesEXT epoxy_glRasterSamplesEXT
+#define glReadBuffer epoxy_glReadBuffer
+#define glReadBufferIndexedEXT epoxy_glReadBufferIndexedEXT
+#define glReadBufferNV epoxy_glReadBufferNV
+#define glReadInstrumentsSGIX epoxy_glReadInstrumentsSGIX
+#define glReadPixels epoxy_glReadPixels
+#define glReadnPixels epoxy_glReadnPixels
+#define glReadnPixelsARB epoxy_glReadnPixelsARB
+#define glReadnPixelsEXT epoxy_glReadnPixelsEXT
+#define glReadnPixelsKHR epoxy_glReadnPixelsKHR
+#define glRectd epoxy_glRectd
+#define glRectdv epoxy_glRectdv
+#define glRectf epoxy_glRectf
+#define glRectfv epoxy_glRectfv
+#define glRecti epoxy_glRecti
+#define glRectiv epoxy_glRectiv
+#define glRects epoxy_glRects
+#define glRectsv epoxy_glRectsv
+#define glRectxOES epoxy_glRectxOES
+#define glRectxvOES epoxy_glRectxvOES
+#define glReferencePlaneSGIX epoxy_glReferencePlaneSGIX
+#define glReleaseKeyedMutexWin32EXT epoxy_glReleaseKeyedMutexWin32EXT
+#define glReleaseShaderCompiler epoxy_glReleaseShaderCompiler
+#define glRenderGpuMaskNV epoxy_glRenderGpuMaskNV
+#define glRenderMode epoxy_glRenderMode
+#define glRenderbufferStorage epoxy_glRenderbufferStorage
+#define glRenderbufferStorageEXT epoxy_glRenderbufferStorageEXT
+#define glRenderbufferStorageMultisample epoxy_glRenderbufferStorageMultisample
+#define glRenderbufferStorageMultisampleANGLE epoxy_glRenderbufferStorageMultisampleANGLE
+#define glRenderbufferStorageMultisampleAPPLE epoxy_glRenderbufferStorageMultisampleAPPLE
+#define glRenderbufferStorageMultisampleAdvancedAMD epoxy_glRenderbufferStorageMultisampleAdvancedAMD
+#define glRenderbufferStorageMultisampleCoverageNV epoxy_glRenderbufferStorageMultisampleCoverageNV
+#define glRenderbufferStorageMultisampleEXT epoxy_glRenderbufferStorageMultisampleEXT
+#define glRenderbufferStorageMultisampleIMG epoxy_glRenderbufferStorageMultisampleIMG
+#define glRenderbufferStorageMultisampleNV epoxy_glRenderbufferStorageMultisampleNV
+#define glRenderbufferStorageOES epoxy_glRenderbufferStorageOES
+#define glReplacementCodePointerSUN epoxy_glReplacementCodePointerSUN
+#define glReplacementCodeubSUN epoxy_glReplacementCodeubSUN
+#define glReplacementCodeubvSUN epoxy_glReplacementCodeubvSUN
+#define glReplacementCodeuiColor3fVertex3fSUN epoxy_glReplacementCodeuiColor3fVertex3fSUN
+#define glReplacementCodeuiColor3fVertex3fvSUN epoxy_glReplacementCodeuiColor3fVertex3fvSUN
+#define glReplacementCodeuiColor4fNormal3fVertex3fSUN epoxy_glReplacementCodeuiColor4fNormal3fVertex3fSUN
+#define glReplacementCodeuiColor4fNormal3fVertex3fvSUN epoxy_glReplacementCodeuiColor4fNormal3fVertex3fvSUN
+#define glReplacementCodeuiColor4ubVertex3fSUN epoxy_glReplacementCodeuiColor4ubVertex3fSUN
+#define glReplacementCodeuiColor4ubVertex3fvSUN epoxy_glReplacementCodeuiColor4ubVertex3fvSUN
+#define glReplacementCodeuiNormal3fVertex3fSUN epoxy_glReplacementCodeuiNormal3fVertex3fSUN
+#define glReplacementCodeuiNormal3fVertex3fvSUN epoxy_glReplacementCodeuiNormal3fVertex3fvSUN
+#define glReplacementCodeuiSUN epoxy_glReplacementCodeuiSUN
+#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN epoxy_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN
+#define glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN epoxy_glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN
+#define glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN epoxy_glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN
+#define glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN epoxy_glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN
+#define glReplacementCodeuiTexCoord2fVertex3fSUN epoxy_glReplacementCodeuiTexCoord2fVertex3fSUN
+#define glReplacementCodeuiTexCoord2fVertex3fvSUN epoxy_glReplacementCodeuiTexCoord2fVertex3fvSUN
+#define glReplacementCodeuiVertex3fSUN epoxy_glReplacementCodeuiVertex3fSUN
+#define glReplacementCodeuiVertex3fvSUN epoxy_glReplacementCodeuiVertex3fvSUN
+#define glReplacementCodeuivSUN epoxy_glReplacementCodeuivSUN
+#define glReplacementCodeusSUN epoxy_glReplacementCodeusSUN
+#define glReplacementCodeusvSUN epoxy_glReplacementCodeusvSUN
+#define glRequestResidentProgramsNV epoxy_glRequestResidentProgramsNV
+#define glResetHistogram epoxy_glResetHistogram
+#define glResetHistogramEXT epoxy_glResetHistogramEXT
+#define glResetMemoryObjectParameterNV epoxy_glResetMemoryObjectParameterNV
+#define glResetMinmax epoxy_glResetMinmax
+#define glResetMinmaxEXT epoxy_glResetMinmaxEXT
+#define glResizeBuffersMESA epoxy_glResizeBuffersMESA
+#define glResolveDepthValuesNV epoxy_glResolveDepthValuesNV
+#define glResolveMultisampleFramebufferAPPLE epoxy_glResolveMultisampleFramebufferAPPLE
+#define glResumeTransformFeedback epoxy_glResumeTransformFeedback
+#define glResumeTransformFeedbackNV epoxy_glResumeTransformFeedbackNV
+#define glRotated epoxy_glRotated
+#define glRotatef epoxy_glRotatef
+#define glRotatex epoxy_glRotatex
+#define glRotatexOES epoxy_glRotatexOES
+#define glSampleCoverage epoxy_glSampleCoverage
+#define glSampleCoverageARB epoxy_glSampleCoverageARB
+#define glSampleCoveragex epoxy_glSampleCoveragex
+#define glSampleCoveragexOES epoxy_glSampleCoveragexOES
+#define glSampleMapATI epoxy_glSampleMapATI
+#define glSampleMaskEXT epoxy_glSampleMaskEXT
+#define glSampleMaskIndexedNV epoxy_glSampleMaskIndexedNV
+#define glSampleMaskSGIS epoxy_glSampleMaskSGIS
+#define glSampleMaski epoxy_glSampleMaski
+#define glSamplePatternEXT epoxy_glSamplePatternEXT
+#define glSamplePatternSGIS epoxy_glSamplePatternSGIS
+#define glSamplerParameterIiv epoxy_glSamplerParameterIiv
+#define glSamplerParameterIivEXT epoxy_glSamplerParameterIivEXT
+#define glSamplerParameterIivOES epoxy_glSamplerParameterIivOES
+#define glSamplerParameterIuiv epoxy_glSamplerParameterIuiv
+#define glSamplerParameterIuivEXT epoxy_glSamplerParameterIuivEXT
+#define glSamplerParameterIuivOES epoxy_glSamplerParameterIuivOES
+#define glSamplerParameterf epoxy_glSamplerParameterf
+#define glSamplerParameterfv epoxy_glSamplerParameterfv
+#define glSamplerParameteri epoxy_glSamplerParameteri
+#define glSamplerParameteriv epoxy_glSamplerParameteriv
+#define glScaled epoxy_glScaled
+#define glScalef epoxy_glScalef
+#define glScalex epoxy_glScalex
+#define glScalexOES epoxy_glScalexOES
+#define glScissor epoxy_glScissor
+#define glScissorArrayv epoxy_glScissorArrayv
+#define glScissorArrayvNV epoxy_glScissorArrayvNV
+#define glScissorArrayvOES epoxy_glScissorArrayvOES
+#define glScissorExclusiveArrayvNV epoxy_glScissorExclusiveArrayvNV
+#define glScissorExclusiveNV epoxy_glScissorExclusiveNV
+#define glScissorIndexed epoxy_glScissorIndexed
+#define glScissorIndexedNV epoxy_glScissorIndexedNV
+#define glScissorIndexedOES epoxy_glScissorIndexedOES
+#define glScissorIndexedv epoxy_glScissorIndexedv
+#define glScissorIndexedvNV epoxy_glScissorIndexedvNV
+#define glScissorIndexedvOES epoxy_glScissorIndexedvOES
+#define glSecondaryColor3b epoxy_glSecondaryColor3b
+#define glSecondaryColor3bEXT epoxy_glSecondaryColor3bEXT
+#define glSecondaryColor3bv epoxy_glSecondaryColor3bv
+#define glSecondaryColor3bvEXT epoxy_glSecondaryColor3bvEXT
+#define glSecondaryColor3d epoxy_glSecondaryColor3d
+#define glSecondaryColor3dEXT epoxy_glSecondaryColor3dEXT
+#define glSecondaryColor3dv epoxy_glSecondaryColor3dv
+#define glSecondaryColor3dvEXT epoxy_glSecondaryColor3dvEXT
+#define glSecondaryColor3f epoxy_glSecondaryColor3f
+#define glSecondaryColor3fEXT epoxy_glSecondaryColor3fEXT
+#define glSecondaryColor3fv epoxy_glSecondaryColor3fv
+#define glSecondaryColor3fvEXT epoxy_glSecondaryColor3fvEXT
+#define glSecondaryColor3hNV epoxy_glSecondaryColor3hNV
+#define glSecondaryColor3hvNV epoxy_glSecondaryColor3hvNV
+#define glSecondaryColor3i epoxy_glSecondaryColor3i
+#define glSecondaryColor3iEXT epoxy_glSecondaryColor3iEXT
+#define glSecondaryColor3iv epoxy_glSecondaryColor3iv
+#define glSecondaryColor3ivEXT epoxy_glSecondaryColor3ivEXT
+#define glSecondaryColor3s epoxy_glSecondaryColor3s
+#define glSecondaryColor3sEXT epoxy_glSecondaryColor3sEXT
+#define glSecondaryColor3sv epoxy_glSecondaryColor3sv
+#define glSecondaryColor3svEXT epoxy_glSecondaryColor3svEXT
+#define glSecondaryColor3ub epoxy_glSecondaryColor3ub
+#define glSecondaryColor3ubEXT epoxy_glSecondaryColor3ubEXT
+#define glSecondaryColor3ubv epoxy_glSecondaryColor3ubv
+#define glSecondaryColor3ubvEXT epoxy_glSecondaryColor3ubvEXT
+#define glSecondaryColor3ui epoxy_glSecondaryColor3ui
+#define glSecondaryColor3uiEXT epoxy_glSecondaryColor3uiEXT
+#define glSecondaryColor3uiv epoxy_glSecondaryColor3uiv
+#define glSecondaryColor3uivEXT epoxy_glSecondaryColor3uivEXT
+#define glSecondaryColor3us epoxy_glSecondaryColor3us
+#define glSecondaryColor3usEXT epoxy_glSecondaryColor3usEXT
+#define glSecondaryColor3usv epoxy_glSecondaryColor3usv
+#define glSecondaryColor3usvEXT epoxy_glSecondaryColor3usvEXT
+#define glSecondaryColorFormatNV epoxy_glSecondaryColorFormatNV
+#define glSecondaryColorP3ui epoxy_glSecondaryColorP3ui
+#define glSecondaryColorP3uiv epoxy_glSecondaryColorP3uiv
+#define glSecondaryColorPointer epoxy_glSecondaryColorPointer
+#define glSecondaryColorPointerEXT epoxy_glSecondaryColorPointerEXT
+#define glSecondaryColorPointerListIBM epoxy_glSecondaryColorPointerListIBM
+#define glSelectBuffer epoxy_glSelectBuffer
+#define glSelectPerfMonitorCountersAMD epoxy_glSelectPerfMonitorCountersAMD
+#define glSemaphoreParameterui64vEXT epoxy_glSemaphoreParameterui64vEXT
+#define glSeparableFilter2D epoxy_glSeparableFilter2D
+#define glSeparableFilter2DEXT epoxy_glSeparableFilter2DEXT
+#define glSetFenceAPPLE epoxy_glSetFenceAPPLE
+#define glSetFenceNV epoxy_glSetFenceNV
+#define glSetFragmentShaderConstantATI epoxy_glSetFragmentShaderConstantATI
+#define glSetInvariantEXT epoxy_glSetInvariantEXT
+#define glSetLocalConstantEXT epoxy_glSetLocalConstantEXT
+#define glSetMultisamplefvAMD epoxy_glSetMultisamplefvAMD
+#define glShadeModel epoxy_glShadeModel
+#define glShaderBinary epoxy_glShaderBinary
+#define glShaderOp1EXT epoxy_glShaderOp1EXT
+#define glShaderOp2EXT epoxy_glShaderOp2EXT
+#define glShaderOp3EXT epoxy_glShaderOp3EXT
+#define glShaderSource epoxy_glShaderSource
+#define glShaderSourceARB epoxy_glShaderSourceARB
+#define glShaderStorageBlockBinding epoxy_glShaderStorageBlockBinding
+#define glShadingRateImageBarrierNV epoxy_glShadingRateImageBarrierNV
+#define glShadingRateImagePaletteNV epoxy_glShadingRateImagePaletteNV
+#define glShadingRateSampleOrderCustomNV epoxy_glShadingRateSampleOrderCustomNV
+#define glShadingRateSampleOrderNV epoxy_glShadingRateSampleOrderNV
+#define glSharpenTexFuncSGIS epoxy_glSharpenTexFuncSGIS
+#define glSignalSemaphoreEXT epoxy_glSignalSemaphoreEXT
+#define glSignalSemaphoreui64NVX epoxy_glSignalSemaphoreui64NVX
+#define glSignalVkFenceNV epoxy_glSignalVkFenceNV
+#define glSignalVkSemaphoreNV epoxy_glSignalVkSemaphoreNV
+#define glSpecializeShader epoxy_glSpecializeShader
+#define glSpecializeShaderARB epoxy_glSpecializeShaderARB
+#define glSpriteParameterfSGIX epoxy_glSpriteParameterfSGIX
+#define glSpriteParameterfvSGIX epoxy_glSpriteParameterfvSGIX
+#define glSpriteParameteriSGIX epoxy_glSpriteParameteriSGIX
+#define glSpriteParameterivSGIX epoxy_glSpriteParameterivSGIX
+#define glStartInstrumentsSGIX epoxy_glStartInstrumentsSGIX
+#define glStartTilingQCOM epoxy_glStartTilingQCOM
+#define glStateCaptureNV epoxy_glStateCaptureNV
+#define glStencilClearTagEXT epoxy_glStencilClearTagEXT
+#define glStencilFillPathInstancedNV epoxy_glStencilFillPathInstancedNV
+#define glStencilFillPathNV epoxy_glStencilFillPathNV
+#define glStencilFunc epoxy_glStencilFunc
+#define glStencilFuncSeparate epoxy_glStencilFuncSeparate
+#define glStencilFuncSeparateATI epoxy_glStencilFuncSeparateATI
+#define glStencilMask epoxy_glStencilMask
+#define glStencilMaskSeparate epoxy_glStencilMaskSeparate
+#define glStencilOp epoxy_glStencilOp
+#define glStencilOpSeparate epoxy_glStencilOpSeparate
+#define glStencilOpSeparateATI epoxy_glStencilOpSeparateATI
+#define glStencilOpValueAMD epoxy_glStencilOpValueAMD
+#define glStencilStrokePathInstancedNV epoxy_glStencilStrokePathInstancedNV
+#define glStencilStrokePathNV epoxy_glStencilStrokePathNV
+#define glStencilThenCoverFillPathInstancedNV epoxy_glStencilThenCoverFillPathInstancedNV
+#define glStencilThenCoverFillPathNV epoxy_glStencilThenCoverFillPathNV
+#define glStencilThenCoverStrokePathInstancedNV epoxy_glStencilThenCoverStrokePathInstancedNV
+#define glStencilThenCoverStrokePathNV epoxy_glStencilThenCoverStrokePathNV
+#define glStopInstrumentsSGIX epoxy_glStopInstrumentsSGIX
+#define glStringMarkerGREMEDY epoxy_glStringMarkerGREMEDY
+#define glSubpixelPrecisionBiasNV epoxy_glSubpixelPrecisionBiasNV
+#define glSwizzleEXT epoxy_glSwizzleEXT
+#define glSyncTextureINTEL epoxy_glSyncTextureINTEL
+#define glTagSampleBufferSGIX epoxy_glTagSampleBufferSGIX
+#define glTangent3bEXT epoxy_glTangent3bEXT
+#define glTangent3bvEXT epoxy_glTangent3bvEXT
+#define glTangent3dEXT epoxy_glTangent3dEXT
+#define glTangent3dvEXT epoxy_glTangent3dvEXT
+#define glTangent3fEXT epoxy_glTangent3fEXT
+#define glTangent3fvEXT epoxy_glTangent3fvEXT
+#define glTangent3iEXT epoxy_glTangent3iEXT
+#define glTangent3ivEXT epoxy_glTangent3ivEXT
+#define glTangent3sEXT epoxy_glTangent3sEXT
+#define glTangent3svEXT epoxy_glTangent3svEXT
+#define glTangentPointerEXT epoxy_glTangentPointerEXT
+#define glTbufferMask3DFX epoxy_glTbufferMask3DFX
+#define glTessellationFactorAMD epoxy_glTessellationFactorAMD
+#define glTessellationModeAMD epoxy_glTessellationModeAMD
+#define glTestFenceAPPLE epoxy_glTestFenceAPPLE
+#define glTestFenceNV epoxy_glTestFenceNV
+#define glTestObjectAPPLE epoxy_glTestObjectAPPLE
+#define glTexAttachMemoryNV epoxy_glTexAttachMemoryNV
+#define glTexBuffer epoxy_glTexBuffer
+#define glTexBufferARB epoxy_glTexBufferARB
+#define glTexBufferEXT epoxy_glTexBufferEXT
+#define glTexBufferOES epoxy_glTexBufferOES
+#define glTexBufferRange epoxy_glTexBufferRange
+#define glTexBufferRangeEXT epoxy_glTexBufferRangeEXT
+#define glTexBufferRangeOES epoxy_glTexBufferRangeOES
+#define glTexBumpParameterfvATI epoxy_glTexBumpParameterfvATI
+#define glTexBumpParameterivATI epoxy_glTexBumpParameterivATI
+#define glTexCoord1bOES epoxy_glTexCoord1bOES
+#define glTexCoord1bvOES epoxy_glTexCoord1bvOES
+#define glTexCoord1d epoxy_glTexCoord1d
+#define glTexCoord1dv epoxy_glTexCoord1dv
+#define glTexCoord1f epoxy_glTexCoord1f
+#define glTexCoord1fv epoxy_glTexCoord1fv
+#define glTexCoord1hNV epoxy_glTexCoord1hNV
+#define glTexCoord1hvNV epoxy_glTexCoord1hvNV
+#define glTexCoord1i epoxy_glTexCoord1i
+#define glTexCoord1iv epoxy_glTexCoord1iv
+#define glTexCoord1s epoxy_glTexCoord1s
+#define glTexCoord1sv epoxy_glTexCoord1sv
+#define glTexCoord1xOES epoxy_glTexCoord1xOES
+#define glTexCoord1xvOES epoxy_glTexCoord1xvOES
+#define glTexCoord2bOES epoxy_glTexCoord2bOES
+#define glTexCoord2bvOES epoxy_glTexCoord2bvOES
+#define glTexCoord2d epoxy_glTexCoord2d
+#define glTexCoord2dv epoxy_glTexCoord2dv
+#define glTexCoord2f epoxy_glTexCoord2f
+#define glTexCoord2fColor3fVertex3fSUN epoxy_glTexCoord2fColor3fVertex3fSUN
+#define glTexCoord2fColor3fVertex3fvSUN epoxy_glTexCoord2fColor3fVertex3fvSUN
+#define glTexCoord2fColor4fNormal3fVertex3fSUN epoxy_glTexCoord2fColor4fNormal3fVertex3fSUN
+#define glTexCoord2fColor4fNormal3fVertex3fvSUN epoxy_glTexCoord2fColor4fNormal3fVertex3fvSUN
+#define glTexCoord2fColor4ubVertex3fSUN epoxy_glTexCoord2fColor4ubVertex3fSUN
+#define glTexCoord2fColor4ubVertex3fvSUN epoxy_glTexCoord2fColor4ubVertex3fvSUN
+#define glTexCoord2fNormal3fVertex3fSUN epoxy_glTexCoord2fNormal3fVertex3fSUN
+#define glTexCoord2fNormal3fVertex3fvSUN epoxy_glTexCoord2fNormal3fVertex3fvSUN
+#define glTexCoord2fVertex3fSUN epoxy_glTexCoord2fVertex3fSUN
+#define glTexCoord2fVertex3fvSUN epoxy_glTexCoord2fVertex3fvSUN
+#define glTexCoord2fv epoxy_glTexCoord2fv
+#define glTexCoord2hNV epoxy_glTexCoord2hNV
+#define glTexCoord2hvNV epoxy_glTexCoord2hvNV
+#define glTexCoord2i epoxy_glTexCoord2i
+#define glTexCoord2iv epoxy_glTexCoord2iv
+#define glTexCoord2s epoxy_glTexCoord2s
+#define glTexCoord2sv epoxy_glTexCoord2sv
+#define glTexCoord2xOES epoxy_glTexCoord2xOES
+#define glTexCoord2xvOES epoxy_glTexCoord2xvOES
+#define glTexCoord3bOES epoxy_glTexCoord3bOES
+#define glTexCoord3bvOES epoxy_glTexCoord3bvOES
+#define glTexCoord3d epoxy_glTexCoord3d
+#define glTexCoord3dv epoxy_glTexCoord3dv
+#define glTexCoord3f epoxy_glTexCoord3f
+#define glTexCoord3fv epoxy_glTexCoord3fv
+#define glTexCoord3hNV epoxy_glTexCoord3hNV
+#define glTexCoord3hvNV epoxy_glTexCoord3hvNV
+#define glTexCoord3i epoxy_glTexCoord3i
+#define glTexCoord3iv epoxy_glTexCoord3iv
+#define glTexCoord3s epoxy_glTexCoord3s
+#define glTexCoord3sv epoxy_glTexCoord3sv
+#define glTexCoord3xOES epoxy_glTexCoord3xOES
+#define glTexCoord3xvOES epoxy_glTexCoord3xvOES
+#define glTexCoord4bOES epoxy_glTexCoord4bOES
+#define glTexCoord4bvOES epoxy_glTexCoord4bvOES
+#define glTexCoord4d epoxy_glTexCoord4d
+#define glTexCoord4dv epoxy_glTexCoord4dv
+#define glTexCoord4f epoxy_glTexCoord4f
+#define glTexCoord4fColor4fNormal3fVertex4fSUN epoxy_glTexCoord4fColor4fNormal3fVertex4fSUN
+#define glTexCoord4fColor4fNormal3fVertex4fvSUN epoxy_glTexCoord4fColor4fNormal3fVertex4fvSUN
+#define glTexCoord4fVertex4fSUN epoxy_glTexCoord4fVertex4fSUN
+#define glTexCoord4fVertex4fvSUN epoxy_glTexCoord4fVertex4fvSUN
+#define glTexCoord4fv epoxy_glTexCoord4fv
+#define glTexCoord4hNV epoxy_glTexCoord4hNV
+#define glTexCoord4hvNV epoxy_glTexCoord4hvNV
+#define glTexCoord4i epoxy_glTexCoord4i
+#define glTexCoord4iv epoxy_glTexCoord4iv
+#define glTexCoord4s epoxy_glTexCoord4s
+#define glTexCoord4sv epoxy_glTexCoord4sv
+#define glTexCoord4xOES epoxy_glTexCoord4xOES
+#define glTexCoord4xvOES epoxy_glTexCoord4xvOES
+#define glTexCoordFormatNV epoxy_glTexCoordFormatNV
+#define glTexCoordP1ui epoxy_glTexCoordP1ui
+#define glTexCoordP1uiv epoxy_glTexCoordP1uiv
+#define glTexCoordP2ui epoxy_glTexCoordP2ui
+#define glTexCoordP2uiv epoxy_glTexCoordP2uiv
+#define glTexCoordP3ui epoxy_glTexCoordP3ui
+#define glTexCoordP3uiv epoxy_glTexCoordP3uiv
+#define glTexCoordP4ui epoxy_glTexCoordP4ui
+#define glTexCoordP4uiv epoxy_glTexCoordP4uiv
+#define glTexCoordPointer epoxy_glTexCoordPointer
+#define glTexCoordPointerEXT epoxy_glTexCoordPointerEXT
+#define glTexCoordPointerListIBM epoxy_glTexCoordPointerListIBM
+#define glTexCoordPointervINTEL epoxy_glTexCoordPointervINTEL
+#define glTexEnvf epoxy_glTexEnvf
+#define glTexEnvfv epoxy_glTexEnvfv
+#define glTexEnvi epoxy_glTexEnvi
+#define glTexEnviv epoxy_glTexEnviv
+#define glTexEnvx epoxy_glTexEnvx
+#define glTexEnvxOES epoxy_glTexEnvxOES
+#define glTexEnvxv epoxy_glTexEnvxv
+#define glTexEnvxvOES epoxy_glTexEnvxvOES
+#define glTexFilterFuncSGIS epoxy_glTexFilterFuncSGIS
+#define glTexGend epoxy_glTexGend
+#define glTexGendv epoxy_glTexGendv
+#define glTexGenf epoxy_glTexGenf
+#define glTexGenfOES epoxy_glTexGenfOES
+#define glTexGenfv epoxy_glTexGenfv
+#define glTexGenfvOES epoxy_glTexGenfvOES
+#define glTexGeni epoxy_glTexGeni
+#define glTexGeniOES epoxy_glTexGeniOES
+#define glTexGeniv epoxy_glTexGeniv
+#define glTexGenivOES epoxy_glTexGenivOES
+#define glTexGenxOES epoxy_glTexGenxOES
+#define glTexGenxvOES epoxy_glTexGenxvOES
+#define glTexImage1D epoxy_glTexImage1D
+#define glTexImage2D epoxy_glTexImage2D
+#define glTexImage2DMultisample epoxy_glTexImage2DMultisample
+#define glTexImage2DMultisampleCoverageNV epoxy_glTexImage2DMultisampleCoverageNV
+#define glTexImage3D epoxy_glTexImage3D
+#define glTexImage3DEXT epoxy_glTexImage3DEXT
+#define glTexImage3DMultisample epoxy_glTexImage3DMultisample
+#define glTexImage3DMultisampleCoverageNV epoxy_glTexImage3DMultisampleCoverageNV
+#define glTexImage3DOES epoxy_glTexImage3DOES
+#define glTexImage4DSGIS epoxy_glTexImage4DSGIS
+#define glTexPageCommitmentARB epoxy_glTexPageCommitmentARB
+#define glTexPageCommitmentEXT epoxy_glTexPageCommitmentEXT
+#define glTexParameterIiv epoxy_glTexParameterIiv
+#define glTexParameterIivEXT epoxy_glTexParameterIivEXT
+#define glTexParameterIivOES epoxy_glTexParameterIivOES
+#define glTexParameterIuiv epoxy_glTexParameterIuiv
+#define glTexParameterIuivEXT epoxy_glTexParameterIuivEXT
+#define glTexParameterIuivOES epoxy_glTexParameterIuivOES
+#define glTexParameterf epoxy_glTexParameterf
+#define glTexParameterfv epoxy_glTexParameterfv
+#define glTexParameteri epoxy_glTexParameteri
+#define glTexParameteriv epoxy_glTexParameteriv
+#define glTexParameterx epoxy_glTexParameterx
+#define glTexParameterxOES epoxy_glTexParameterxOES
+#define glTexParameterxv epoxy_glTexParameterxv
+#define glTexParameterxvOES epoxy_glTexParameterxvOES
+#define glTexRenderbufferNV epoxy_glTexRenderbufferNV
+#define glTexStorage1D epoxy_glTexStorage1D
+#define glTexStorage1DEXT epoxy_glTexStorage1DEXT
+#define glTexStorage2D epoxy_glTexStorage2D
+#define glTexStorage2DEXT epoxy_glTexStorage2DEXT
+#define glTexStorage2DMultisample epoxy_glTexStorage2DMultisample
+#define glTexStorage3D epoxy_glTexStorage3D
+#define glTexStorage3DEXT epoxy_glTexStorage3DEXT
+#define glTexStorage3DMultisample epoxy_glTexStorage3DMultisample
+#define glTexStorage3DMultisampleOES epoxy_glTexStorage3DMultisampleOES
+#define glTexStorageMem1DEXT epoxy_glTexStorageMem1DEXT
+#define glTexStorageMem2DEXT epoxy_glTexStorageMem2DEXT
+#define glTexStorageMem2DMultisampleEXT epoxy_glTexStorageMem2DMultisampleEXT
+#define glTexStorageMem3DEXT epoxy_glTexStorageMem3DEXT
+#define glTexStorageMem3DMultisampleEXT epoxy_glTexStorageMem3DMultisampleEXT
+#define glTexStorageSparseAMD epoxy_glTexStorageSparseAMD
+#define glTexSubImage1D epoxy_glTexSubImage1D
+#define glTexSubImage1DEXT epoxy_glTexSubImage1DEXT
+#define glTexSubImage2D epoxy_glTexSubImage2D
+#define glTexSubImage2DEXT epoxy_glTexSubImage2DEXT
+#define glTexSubImage3D epoxy_glTexSubImage3D
+#define glTexSubImage3DEXT epoxy_glTexSubImage3DEXT
+#define glTexSubImage3DOES epoxy_glTexSubImage3DOES
+#define glTexSubImage4DSGIS epoxy_glTexSubImage4DSGIS
+#define glTextureAttachMemoryNV epoxy_glTextureAttachMemoryNV
+#define glTextureBarrier epoxy_glTextureBarrier
+#define glTextureBarrierNV epoxy_glTextureBarrierNV
+#define glTextureBuffer epoxy_glTextureBuffer
+#define glTextureBufferEXT epoxy_glTextureBufferEXT
+#define glTextureBufferRange epoxy_glTextureBufferRange
+#define glTextureBufferRangeEXT epoxy_glTextureBufferRangeEXT
+#define glTextureColorMaskSGIS epoxy_glTextureColorMaskSGIS
+#define glTextureFoveationParametersQCOM epoxy_glTextureFoveationParametersQCOM
+#define glTextureImage1DEXT epoxy_glTextureImage1DEXT
+#define glTextureImage2DEXT epoxy_glTextureImage2DEXT
+#define glTextureImage2DMultisampleCoverageNV epoxy_glTextureImage2DMultisampleCoverageNV
+#define glTextureImage2DMultisampleNV epoxy_glTextureImage2DMultisampleNV
+#define glTextureImage3DEXT epoxy_glTextureImage3DEXT
+#define glTextureImage3DMultisampleCoverageNV epoxy_glTextureImage3DMultisampleCoverageNV
+#define glTextureImage3DMultisampleNV epoxy_glTextureImage3DMultisampleNV
+#define glTextureLightEXT epoxy_glTextureLightEXT
+#define glTextureMaterialEXT epoxy_glTextureMaterialEXT
+#define glTextureNormalEXT epoxy_glTextureNormalEXT
+#define glTexturePageCommitmentEXT epoxy_glTexturePageCommitmentEXT
+#define glTextureParameterIiv epoxy_glTextureParameterIiv
+#define glTextureParameterIivEXT epoxy_glTextureParameterIivEXT
+#define glTextureParameterIuiv epoxy_glTextureParameterIuiv
+#define glTextureParameterIuivEXT epoxy_glTextureParameterIuivEXT
+#define glTextureParameterf epoxy_glTextureParameterf
+#define glTextureParameterfEXT epoxy_glTextureParameterfEXT
+#define glTextureParameterfv epoxy_glTextureParameterfv
+#define glTextureParameterfvEXT epoxy_glTextureParameterfvEXT
+#define glTextureParameteri epoxy_glTextureParameteri
+#define glTextureParameteriEXT epoxy_glTextureParameteriEXT
+#define glTextureParameteriv epoxy_glTextureParameteriv
+#define glTextureParameterivEXT epoxy_glTextureParameterivEXT
+#define glTextureRangeAPPLE epoxy_glTextureRangeAPPLE
+#define glTextureRenderbufferEXT epoxy_glTextureRenderbufferEXT
+#define glTextureStorage1D epoxy_glTextureStorage1D
+#define glTextureStorage1DEXT epoxy_glTextureStorage1DEXT
+#define glTextureStorage2D epoxy_glTextureStorage2D
+#define glTextureStorage2DEXT epoxy_glTextureStorage2DEXT
+#define glTextureStorage2DMultisample epoxy_glTextureStorage2DMultisample
+#define glTextureStorage2DMultisampleEXT epoxy_glTextureStorage2DMultisampleEXT
+#define glTextureStorage3D epoxy_glTextureStorage3D
+#define glTextureStorage3DEXT epoxy_glTextureStorage3DEXT
+#define glTextureStorage3DMultisample epoxy_glTextureStorage3DMultisample
+#define glTextureStorage3DMultisampleEXT epoxy_glTextureStorage3DMultisampleEXT
+#define glTextureStorageMem1DEXT epoxy_glTextureStorageMem1DEXT
+#define glTextureStorageMem2DEXT epoxy_glTextureStorageMem2DEXT
+#define glTextureStorageMem2DMultisampleEXT epoxy_glTextureStorageMem2DMultisampleEXT
+#define glTextureStorageMem3DEXT epoxy_glTextureStorageMem3DEXT
+#define glTextureStorageMem3DMultisampleEXT epoxy_glTextureStorageMem3DMultisampleEXT
+#define glTextureStorageSparseAMD epoxy_glTextureStorageSparseAMD
+#define glTextureSubImage1D epoxy_glTextureSubImage1D
+#define glTextureSubImage1DEXT epoxy_glTextureSubImage1DEXT
+#define glTextureSubImage2D epoxy_glTextureSubImage2D
+#define glTextureSubImage2DEXT epoxy_glTextureSubImage2DEXT
+#define glTextureSubImage3D epoxy_glTextureSubImage3D
+#define glTextureSubImage3DEXT epoxy_glTextureSubImage3DEXT
+#define glTextureView epoxy_glTextureView
+#define glTextureViewEXT epoxy_glTextureViewEXT
+#define glTextureViewOES epoxy_glTextureViewOES
+#define glTrackMatrixNV epoxy_glTrackMatrixNV
+#define glTransformFeedbackAttribsNV epoxy_glTransformFeedbackAttribsNV
+#define glTransformFeedbackBufferBase epoxy_glTransformFeedbackBufferBase
+#define glTransformFeedbackBufferRange epoxy_glTransformFeedbackBufferRange
+#define glTransformFeedbackStreamAttribsNV epoxy_glTransformFeedbackStreamAttribsNV
+#define glTransformFeedbackVaryings epoxy_glTransformFeedbackVaryings
+#define glTransformFeedbackVaryingsEXT epoxy_glTransformFeedbackVaryingsEXT
+#define glTransformFeedbackVaryingsNV epoxy_glTransformFeedbackVaryingsNV
+#define glTransformPathNV epoxy_glTransformPathNV
+#define glTranslated epoxy_glTranslated
+#define glTranslatef epoxy_glTranslatef
+#define glTranslatex epoxy_glTranslatex
+#define glTranslatexOES epoxy_glTranslatexOES
+#define glUniform1d epoxy_glUniform1d
+#define glUniform1dv epoxy_glUniform1dv
+#define glUniform1f epoxy_glUniform1f
+#define glUniform1fARB epoxy_glUniform1fARB
+#define glUniform1fv epoxy_glUniform1fv
+#define glUniform1fvARB epoxy_glUniform1fvARB
+#define glUniform1i epoxy_glUniform1i
+#define glUniform1i64ARB epoxy_glUniform1i64ARB
+#define glUniform1i64NV epoxy_glUniform1i64NV
+#define glUniform1i64vARB epoxy_glUniform1i64vARB
+#define glUniform1i64vNV epoxy_glUniform1i64vNV
+#define glUniform1iARB epoxy_glUniform1iARB
+#define glUniform1iv epoxy_glUniform1iv
+#define glUniform1ivARB epoxy_glUniform1ivARB
+#define glUniform1ui epoxy_glUniform1ui
+#define glUniform1ui64ARB epoxy_glUniform1ui64ARB
+#define glUniform1ui64NV epoxy_glUniform1ui64NV
+#define glUniform1ui64vARB epoxy_glUniform1ui64vARB
+#define glUniform1ui64vNV epoxy_glUniform1ui64vNV
+#define glUniform1uiEXT epoxy_glUniform1uiEXT
+#define glUniform1uiv epoxy_glUniform1uiv
+#define glUniform1uivEXT epoxy_glUniform1uivEXT
+#define glUniform2d epoxy_glUniform2d
+#define glUniform2dv epoxy_glUniform2dv
+#define glUniform2f epoxy_glUniform2f
+#define glUniform2fARB epoxy_glUniform2fARB
+#define glUniform2fv epoxy_glUniform2fv
+#define glUniform2fvARB epoxy_glUniform2fvARB
+#define glUniform2i epoxy_glUniform2i
+#define glUniform2i64ARB epoxy_glUniform2i64ARB
+#define glUniform2i64NV epoxy_glUniform2i64NV
+#define glUniform2i64vARB epoxy_glUniform2i64vARB
+#define glUniform2i64vNV epoxy_glUniform2i64vNV
+#define glUniform2iARB epoxy_glUniform2iARB
+#define glUniform2iv epoxy_glUniform2iv
+#define glUniform2ivARB epoxy_glUniform2ivARB
+#define glUniform2ui epoxy_glUniform2ui
+#define glUniform2ui64ARB epoxy_glUniform2ui64ARB
+#define glUniform2ui64NV epoxy_glUniform2ui64NV
+#define glUniform2ui64vARB epoxy_glUniform2ui64vARB
+#define glUniform2ui64vNV epoxy_glUniform2ui64vNV
+#define glUniform2uiEXT epoxy_glUniform2uiEXT
+#define glUniform2uiv epoxy_glUniform2uiv
+#define glUniform2uivEXT epoxy_glUniform2uivEXT
+#define glUniform3d epoxy_glUniform3d
+#define glUniform3dv epoxy_glUniform3dv
+#define glUniform3f epoxy_glUniform3f
+#define glUniform3fARB epoxy_glUniform3fARB
+#define glUniform3fv epoxy_glUniform3fv
+#define glUniform3fvARB epoxy_glUniform3fvARB
+#define glUniform3i epoxy_glUniform3i
+#define glUniform3i64ARB epoxy_glUniform3i64ARB
+#define glUniform3i64NV epoxy_glUniform3i64NV
+#define glUniform3i64vARB epoxy_glUniform3i64vARB
+#define glUniform3i64vNV epoxy_glUniform3i64vNV
+#define glUniform3iARB epoxy_glUniform3iARB
+#define glUniform3iv epoxy_glUniform3iv
+#define glUniform3ivARB epoxy_glUniform3ivARB
+#define glUniform3ui epoxy_glUniform3ui
+#define glUniform3ui64ARB epoxy_glUniform3ui64ARB
+#define glUniform3ui64NV epoxy_glUniform3ui64NV
+#define glUniform3ui64vARB epoxy_glUniform3ui64vARB
+#define glUniform3ui64vNV epoxy_glUniform3ui64vNV
+#define glUniform3uiEXT epoxy_glUniform3uiEXT
+#define glUniform3uiv epoxy_glUniform3uiv
+#define glUniform3uivEXT epoxy_glUniform3uivEXT
+#define glUniform4d epoxy_glUniform4d
+#define glUniform4dv epoxy_glUniform4dv
+#define glUniform4f epoxy_glUniform4f
+#define glUniform4fARB epoxy_glUniform4fARB
+#define glUniform4fv epoxy_glUniform4fv
+#define glUniform4fvARB epoxy_glUniform4fvARB
+#define glUniform4i epoxy_glUniform4i
+#define glUniform4i64ARB epoxy_glUniform4i64ARB
+#define glUniform4i64NV epoxy_glUniform4i64NV
+#define glUniform4i64vARB epoxy_glUniform4i64vARB
+#define glUniform4i64vNV epoxy_glUniform4i64vNV
+#define glUniform4iARB epoxy_glUniform4iARB
+#define glUniform4iv epoxy_glUniform4iv
+#define glUniform4ivARB epoxy_glUniform4ivARB
+#define glUniform4ui epoxy_glUniform4ui
+#define glUniform4ui64ARB epoxy_glUniform4ui64ARB
+#define glUniform4ui64NV epoxy_glUniform4ui64NV
+#define glUniform4ui64vARB epoxy_glUniform4ui64vARB
+#define glUniform4ui64vNV epoxy_glUniform4ui64vNV
+#define glUniform4uiEXT epoxy_glUniform4uiEXT
+#define glUniform4uiv epoxy_glUniform4uiv
+#define glUniform4uivEXT epoxy_glUniform4uivEXT
+#define glUniformBlockBinding epoxy_glUniformBlockBinding
+#define glUniformBufferEXT epoxy_glUniformBufferEXT
+#define glUniformHandleui64ARB epoxy_glUniformHandleui64ARB
+#define glUniformHandleui64IMG epoxy_glUniformHandleui64IMG
+#define glUniformHandleui64NV epoxy_glUniformHandleui64NV
+#define glUniformHandleui64vARB epoxy_glUniformHandleui64vARB
+#define glUniformHandleui64vIMG epoxy_glUniformHandleui64vIMG
+#define glUniformHandleui64vNV epoxy_glUniformHandleui64vNV
+#define glUniformMatrix2dv epoxy_glUniformMatrix2dv
+#define glUniformMatrix2fv epoxy_glUniformMatrix2fv
+#define glUniformMatrix2fvARB epoxy_glUniformMatrix2fvARB
+#define glUniformMatrix2x3dv epoxy_glUniformMatrix2x3dv
+#define glUniformMatrix2x3fv epoxy_glUniformMatrix2x3fv
+#define glUniformMatrix2x3fvNV epoxy_glUniformMatrix2x3fvNV
+#define glUniformMatrix2x4dv epoxy_glUniformMatrix2x4dv
+#define glUniformMatrix2x4fv epoxy_glUniformMatrix2x4fv
+#define glUniformMatrix2x4fvNV epoxy_glUniformMatrix2x4fvNV
+#define glUniformMatrix3dv epoxy_glUniformMatrix3dv
+#define glUniformMatrix3fv epoxy_glUniformMatrix3fv
+#define glUniformMatrix3fvARB epoxy_glUniformMatrix3fvARB
+#define glUniformMatrix3x2dv epoxy_glUniformMatrix3x2dv
+#define glUniformMatrix3x2fv epoxy_glUniformMatrix3x2fv
+#define glUniformMatrix3x2fvNV epoxy_glUniformMatrix3x2fvNV
+#define glUniformMatrix3x4dv epoxy_glUniformMatrix3x4dv
+#define glUniformMatrix3x4fv epoxy_glUniformMatrix3x4fv
+#define glUniformMatrix3x4fvNV epoxy_glUniformMatrix3x4fvNV
+#define glUniformMatrix4dv epoxy_glUniformMatrix4dv
+#define glUniformMatrix4fv epoxy_glUniformMatrix4fv
+#define glUniformMatrix4fvARB epoxy_glUniformMatrix4fvARB
+#define glUniformMatrix4x2dv epoxy_glUniformMatrix4x2dv
+#define glUniformMatrix4x2fv epoxy_glUniformMatrix4x2fv
+#define glUniformMatrix4x2fvNV epoxy_glUniformMatrix4x2fvNV
+#define glUniformMatrix4x3dv epoxy_glUniformMatrix4x3dv
+#define glUniformMatrix4x3fv epoxy_glUniformMatrix4x3fv
+#define glUniformMatrix4x3fvNV epoxy_glUniformMatrix4x3fvNV
+#define glUniformSubroutinesuiv epoxy_glUniformSubroutinesuiv
+#define glUniformui64NV epoxy_glUniformui64NV
+#define glUniformui64vNV epoxy_glUniformui64vNV
+#define glUnlockArraysEXT epoxy_glUnlockArraysEXT
+#define glUnmapBuffer epoxy_glUnmapBuffer
+#define glUnmapBufferARB epoxy_glUnmapBufferARB
+#define glUnmapBufferOES epoxy_glUnmapBufferOES
+#define glUnmapNamedBuffer epoxy_glUnmapNamedBuffer
+#define glUnmapNamedBufferEXT epoxy_glUnmapNamedBufferEXT
+#define glUnmapObjectBufferATI epoxy_glUnmapObjectBufferATI
+#define glUnmapTexture2DINTEL epoxy_glUnmapTexture2DINTEL
+#define glUpdateObjectBufferATI epoxy_glUpdateObjectBufferATI
+#define glUploadGpuMaskNVX epoxy_glUploadGpuMaskNVX
+#define glUseProgram epoxy_glUseProgram
+#define glUseProgramObjectARB epoxy_glUseProgramObjectARB
+#define glUseProgramStages epoxy_glUseProgramStages
+#define glUseProgramStagesEXT epoxy_glUseProgramStagesEXT
+#define glUseShaderProgramEXT epoxy_glUseShaderProgramEXT
+#define glVDPAUFiniNV epoxy_glVDPAUFiniNV
+#define glVDPAUGetSurfaceivNV epoxy_glVDPAUGetSurfaceivNV
+#define glVDPAUInitNV epoxy_glVDPAUInitNV
+#define glVDPAUIsSurfaceNV epoxy_glVDPAUIsSurfaceNV
+#define glVDPAUMapSurfacesNV epoxy_glVDPAUMapSurfacesNV
+#define glVDPAURegisterOutputSurfaceNV epoxy_glVDPAURegisterOutputSurfaceNV
+#define glVDPAURegisterVideoSurfaceNV epoxy_glVDPAURegisterVideoSurfaceNV
+#define glVDPAURegisterVideoSurfaceWithPictureStructureNV epoxy_glVDPAURegisterVideoSurfaceWithPictureStructureNV
+#define glVDPAUSurfaceAccessNV epoxy_glVDPAUSurfaceAccessNV
+#define glVDPAUUnmapSurfacesNV epoxy_glVDPAUUnmapSurfacesNV
+#define glVDPAUUnregisterSurfaceNV epoxy_glVDPAUUnregisterSurfaceNV
+#define glValidateProgram epoxy_glValidateProgram
+#define glValidateProgramARB epoxy_glValidateProgramARB
+#define glValidateProgramPipeline epoxy_glValidateProgramPipeline
+#define glValidateProgramPipelineEXT epoxy_glValidateProgramPipelineEXT
+#define glVariantArrayObjectATI epoxy_glVariantArrayObjectATI
+#define glVariantPointerEXT epoxy_glVariantPointerEXT
+#define glVariantbvEXT epoxy_glVariantbvEXT
+#define glVariantdvEXT epoxy_glVariantdvEXT
+#define glVariantfvEXT epoxy_glVariantfvEXT
+#define glVariantivEXT epoxy_glVariantivEXT
+#define glVariantsvEXT epoxy_glVariantsvEXT
+#define glVariantubvEXT epoxy_glVariantubvEXT
+#define glVariantuivEXT epoxy_glVariantuivEXT
+#define glVariantusvEXT epoxy_glVariantusvEXT
+#define glVertex2bOES epoxy_glVertex2bOES
+#define glVertex2bvOES epoxy_glVertex2bvOES
+#define glVertex2d epoxy_glVertex2d
+#define glVertex2dv epoxy_glVertex2dv
+#define glVertex2f epoxy_glVertex2f
+#define glVertex2fv epoxy_glVertex2fv
+#define glVertex2hNV epoxy_glVertex2hNV
+#define glVertex2hvNV epoxy_glVertex2hvNV
+#define glVertex2i epoxy_glVertex2i
+#define glVertex2iv epoxy_glVertex2iv
+#define glVertex2s epoxy_glVertex2s
+#define glVertex2sv epoxy_glVertex2sv
+#define glVertex2xOES epoxy_glVertex2xOES
+#define glVertex2xvOES epoxy_glVertex2xvOES
+#define glVertex3bOES epoxy_glVertex3bOES
+#define glVertex3bvOES epoxy_glVertex3bvOES
+#define glVertex3d epoxy_glVertex3d
+#define glVertex3dv epoxy_glVertex3dv
+#define glVertex3f epoxy_glVertex3f
+#define glVertex3fv epoxy_glVertex3fv
+#define glVertex3hNV epoxy_glVertex3hNV
+#define glVertex3hvNV epoxy_glVertex3hvNV
+#define glVertex3i epoxy_glVertex3i
+#define glVertex3iv epoxy_glVertex3iv
+#define glVertex3s epoxy_glVertex3s
+#define glVertex3sv epoxy_glVertex3sv
+#define glVertex3xOES epoxy_glVertex3xOES
+#define glVertex3xvOES epoxy_glVertex3xvOES
+#define glVertex4bOES epoxy_glVertex4bOES
+#define glVertex4bvOES epoxy_glVertex4bvOES
+#define glVertex4d epoxy_glVertex4d
+#define glVertex4dv epoxy_glVertex4dv
+#define glVertex4f epoxy_glVertex4f
+#define glVertex4fv epoxy_glVertex4fv
+#define glVertex4hNV epoxy_glVertex4hNV
+#define glVertex4hvNV epoxy_glVertex4hvNV
+#define glVertex4i epoxy_glVertex4i
+#define glVertex4iv epoxy_glVertex4iv
+#define glVertex4s epoxy_glVertex4s
+#define glVertex4sv epoxy_glVertex4sv
+#define glVertex4xOES epoxy_glVertex4xOES
+#define glVertex4xvOES epoxy_glVertex4xvOES
+#define glVertexArrayAttribBinding epoxy_glVertexArrayAttribBinding
+#define glVertexArrayAttribFormat epoxy_glVertexArrayAttribFormat
+#define glVertexArrayAttribIFormat epoxy_glVertexArrayAttribIFormat
+#define glVertexArrayAttribLFormat epoxy_glVertexArrayAttribLFormat
+#define glVertexArrayBindVertexBufferEXT epoxy_glVertexArrayBindVertexBufferEXT
+#define glVertexArrayBindingDivisor epoxy_glVertexArrayBindingDivisor
+#define glVertexArrayColorOffsetEXT epoxy_glVertexArrayColorOffsetEXT
+#define glVertexArrayEdgeFlagOffsetEXT epoxy_glVertexArrayEdgeFlagOffsetEXT
+#define glVertexArrayElementBuffer epoxy_glVertexArrayElementBuffer
+#define glVertexArrayFogCoordOffsetEXT epoxy_glVertexArrayFogCoordOffsetEXT
+#define glVertexArrayIndexOffsetEXT epoxy_glVertexArrayIndexOffsetEXT
+#define glVertexArrayMultiTexCoordOffsetEXT epoxy_glVertexArrayMultiTexCoordOffsetEXT
+#define glVertexArrayNormalOffsetEXT epoxy_glVertexArrayNormalOffsetEXT
+#define glVertexArrayParameteriAPPLE epoxy_glVertexArrayParameteriAPPLE
+#define glVertexArrayRangeAPPLE epoxy_glVertexArrayRangeAPPLE
+#define glVertexArrayRangeNV epoxy_glVertexArrayRangeNV
+#define glVertexArraySecondaryColorOffsetEXT epoxy_glVertexArraySecondaryColorOffsetEXT
+#define glVertexArrayTexCoordOffsetEXT epoxy_glVertexArrayTexCoordOffsetEXT
+#define glVertexArrayVertexAttribBindingEXT epoxy_glVertexArrayVertexAttribBindingEXT
+#define glVertexArrayVertexAttribDivisorEXT epoxy_glVertexArrayVertexAttribDivisorEXT
+#define glVertexArrayVertexAttribFormatEXT epoxy_glVertexArrayVertexAttribFormatEXT
+#define glVertexArrayVertexAttribIFormatEXT epoxy_glVertexArrayVertexAttribIFormatEXT
+#define glVertexArrayVertexAttribIOffsetEXT epoxy_glVertexArrayVertexAttribIOffsetEXT
+#define glVertexArrayVertexAttribLFormatEXT epoxy_glVertexArrayVertexAttribLFormatEXT
+#define glVertexArrayVertexAttribLOffsetEXT epoxy_glVertexArrayVertexAttribLOffsetEXT
+#define glVertexArrayVertexAttribOffsetEXT epoxy_glVertexArrayVertexAttribOffsetEXT
+#define glVertexArrayVertexBindingDivisorEXT epoxy_glVertexArrayVertexBindingDivisorEXT
+#define glVertexArrayVertexBuffer epoxy_glVertexArrayVertexBuffer
+#define glVertexArrayVertexBuffers epoxy_glVertexArrayVertexBuffers
+#define glVertexArrayVertexOffsetEXT epoxy_glVertexArrayVertexOffsetEXT
+#define glVertexAttrib1d epoxy_glVertexAttrib1d
+#define glVertexAttrib1dARB epoxy_glVertexAttrib1dARB
+#define glVertexAttrib1dNV epoxy_glVertexAttrib1dNV
+#define glVertexAttrib1dv epoxy_glVertexAttrib1dv
+#define glVertexAttrib1dvARB epoxy_glVertexAttrib1dvARB
+#define glVertexAttrib1dvNV epoxy_glVertexAttrib1dvNV
+#define glVertexAttrib1f epoxy_glVertexAttrib1f
+#define glVertexAttrib1fARB epoxy_glVertexAttrib1fARB
+#define glVertexAttrib1fNV epoxy_glVertexAttrib1fNV
+#define glVertexAttrib1fv epoxy_glVertexAttrib1fv
+#define glVertexAttrib1fvARB epoxy_glVertexAttrib1fvARB
+#define glVertexAttrib1fvNV epoxy_glVertexAttrib1fvNV
+#define glVertexAttrib1hNV epoxy_glVertexAttrib1hNV
+#define glVertexAttrib1hvNV epoxy_glVertexAttrib1hvNV
+#define glVertexAttrib1s epoxy_glVertexAttrib1s
+#define glVertexAttrib1sARB epoxy_glVertexAttrib1sARB
+#define glVertexAttrib1sNV epoxy_glVertexAttrib1sNV
+#define glVertexAttrib1sv epoxy_glVertexAttrib1sv
+#define glVertexAttrib1svARB epoxy_glVertexAttrib1svARB
+#define glVertexAttrib1svNV epoxy_glVertexAttrib1svNV
+#define glVertexAttrib2d epoxy_glVertexAttrib2d
+#define glVertexAttrib2dARB epoxy_glVertexAttrib2dARB
+#define glVertexAttrib2dNV epoxy_glVertexAttrib2dNV
+#define glVertexAttrib2dv epoxy_glVertexAttrib2dv
+#define glVertexAttrib2dvARB epoxy_glVertexAttrib2dvARB
+#define glVertexAttrib2dvNV epoxy_glVertexAttrib2dvNV
+#define glVertexAttrib2f epoxy_glVertexAttrib2f
+#define glVertexAttrib2fARB epoxy_glVertexAttrib2fARB
+#define glVertexAttrib2fNV epoxy_glVertexAttrib2fNV
+#define glVertexAttrib2fv epoxy_glVertexAttrib2fv
+#define glVertexAttrib2fvARB epoxy_glVertexAttrib2fvARB
+#define glVertexAttrib2fvNV epoxy_glVertexAttrib2fvNV
+#define glVertexAttrib2hNV epoxy_glVertexAttrib2hNV
+#define glVertexAttrib2hvNV epoxy_glVertexAttrib2hvNV
+#define glVertexAttrib2s epoxy_glVertexAttrib2s
+#define glVertexAttrib2sARB epoxy_glVertexAttrib2sARB
+#define glVertexAttrib2sNV epoxy_glVertexAttrib2sNV
+#define glVertexAttrib2sv epoxy_glVertexAttrib2sv
+#define glVertexAttrib2svARB epoxy_glVertexAttrib2svARB
+#define glVertexAttrib2svNV epoxy_glVertexAttrib2svNV
+#define glVertexAttrib3d epoxy_glVertexAttrib3d
+#define glVertexAttrib3dARB epoxy_glVertexAttrib3dARB
+#define glVertexAttrib3dNV epoxy_glVertexAttrib3dNV
+#define glVertexAttrib3dv epoxy_glVertexAttrib3dv
+#define glVertexAttrib3dvARB epoxy_glVertexAttrib3dvARB
+#define glVertexAttrib3dvNV epoxy_glVertexAttrib3dvNV
+#define glVertexAttrib3f epoxy_glVertexAttrib3f
+#define glVertexAttrib3fARB epoxy_glVertexAttrib3fARB
+#define glVertexAttrib3fNV epoxy_glVertexAttrib3fNV
+#define glVertexAttrib3fv epoxy_glVertexAttrib3fv
+#define glVertexAttrib3fvARB epoxy_glVertexAttrib3fvARB
+#define glVertexAttrib3fvNV epoxy_glVertexAttrib3fvNV
+#define glVertexAttrib3hNV epoxy_glVertexAttrib3hNV
+#define glVertexAttrib3hvNV epoxy_glVertexAttrib3hvNV
+#define glVertexAttrib3s epoxy_glVertexAttrib3s
+#define glVertexAttrib3sARB epoxy_glVertexAttrib3sARB
+#define glVertexAttrib3sNV epoxy_glVertexAttrib3sNV
+#define glVertexAttrib3sv epoxy_glVertexAttrib3sv
+#define glVertexAttrib3svARB epoxy_glVertexAttrib3svARB
+#define glVertexAttrib3svNV epoxy_glVertexAttrib3svNV
+#define glVertexAttrib4Nbv epoxy_glVertexAttrib4Nbv
+#define glVertexAttrib4NbvARB epoxy_glVertexAttrib4NbvARB
+#define glVertexAttrib4Niv epoxy_glVertexAttrib4Niv
+#define glVertexAttrib4NivARB epoxy_glVertexAttrib4NivARB
+#define glVertexAttrib4Nsv epoxy_glVertexAttrib4Nsv
+#define glVertexAttrib4NsvARB epoxy_glVertexAttrib4NsvARB
+#define glVertexAttrib4Nub epoxy_glVertexAttrib4Nub
+#define glVertexAttrib4NubARB epoxy_glVertexAttrib4NubARB
+#define glVertexAttrib4Nubv epoxy_glVertexAttrib4Nubv
+#define glVertexAttrib4NubvARB epoxy_glVertexAttrib4NubvARB
+#define glVertexAttrib4Nuiv epoxy_glVertexAttrib4Nuiv
+#define glVertexAttrib4NuivARB epoxy_glVertexAttrib4NuivARB
+#define glVertexAttrib4Nusv epoxy_glVertexAttrib4Nusv
+#define glVertexAttrib4NusvARB epoxy_glVertexAttrib4NusvARB
+#define glVertexAttrib4bv epoxy_glVertexAttrib4bv
+#define glVertexAttrib4bvARB epoxy_glVertexAttrib4bvARB
+#define glVertexAttrib4d epoxy_glVertexAttrib4d
+#define glVertexAttrib4dARB epoxy_glVertexAttrib4dARB
+#define glVertexAttrib4dNV epoxy_glVertexAttrib4dNV
+#define glVertexAttrib4dv epoxy_glVertexAttrib4dv
+#define glVertexAttrib4dvARB epoxy_glVertexAttrib4dvARB
+#define glVertexAttrib4dvNV epoxy_glVertexAttrib4dvNV
+#define glVertexAttrib4f epoxy_glVertexAttrib4f
+#define glVertexAttrib4fARB epoxy_glVertexAttrib4fARB
+#define glVertexAttrib4fNV epoxy_glVertexAttrib4fNV
+#define glVertexAttrib4fv epoxy_glVertexAttrib4fv
+#define glVertexAttrib4fvARB epoxy_glVertexAttrib4fvARB
+#define glVertexAttrib4fvNV epoxy_glVertexAttrib4fvNV
+#define glVertexAttrib4hNV epoxy_glVertexAttrib4hNV
+#define glVertexAttrib4hvNV epoxy_glVertexAttrib4hvNV
+#define glVertexAttrib4iv epoxy_glVertexAttrib4iv
+#define glVertexAttrib4ivARB epoxy_glVertexAttrib4ivARB
+#define glVertexAttrib4s epoxy_glVertexAttrib4s
+#define glVertexAttrib4sARB epoxy_glVertexAttrib4sARB
+#define glVertexAttrib4sNV epoxy_glVertexAttrib4sNV
+#define glVertexAttrib4sv epoxy_glVertexAttrib4sv
+#define glVertexAttrib4svARB epoxy_glVertexAttrib4svARB
+#define glVertexAttrib4svNV epoxy_glVertexAttrib4svNV
+#define glVertexAttrib4ubNV epoxy_glVertexAttrib4ubNV
+#define glVertexAttrib4ubv epoxy_glVertexAttrib4ubv
+#define glVertexAttrib4ubvARB epoxy_glVertexAttrib4ubvARB
+#define glVertexAttrib4ubvNV epoxy_glVertexAttrib4ubvNV
+#define glVertexAttrib4uiv epoxy_glVertexAttrib4uiv
+#define glVertexAttrib4uivARB epoxy_glVertexAttrib4uivARB
+#define glVertexAttrib4usv epoxy_glVertexAttrib4usv
+#define glVertexAttrib4usvARB epoxy_glVertexAttrib4usvARB
+#define glVertexAttribArrayObjectATI epoxy_glVertexAttribArrayObjectATI
+#define glVertexAttribBinding epoxy_glVertexAttribBinding
+#define glVertexAttribDivisor epoxy_glVertexAttribDivisor
+#define glVertexAttribDivisorANGLE epoxy_glVertexAttribDivisorANGLE
+#define glVertexAttribDivisorARB epoxy_glVertexAttribDivisorARB
+#define glVertexAttribDivisorEXT epoxy_glVertexAttribDivisorEXT
+#define glVertexAttribDivisorNV epoxy_glVertexAttribDivisorNV
+#define glVertexAttribFormat epoxy_glVertexAttribFormat
+#define glVertexAttribFormatNV epoxy_glVertexAttribFormatNV
+#define glVertexAttribI1i epoxy_glVertexAttribI1i
+#define glVertexAttribI1iEXT epoxy_glVertexAttribI1iEXT
+#define glVertexAttribI1iv epoxy_glVertexAttribI1iv
+#define glVertexAttribI1ivEXT epoxy_glVertexAttribI1ivEXT
+#define glVertexAttribI1ui epoxy_glVertexAttribI1ui
+#define glVertexAttribI1uiEXT epoxy_glVertexAttribI1uiEXT
+#define glVertexAttribI1uiv epoxy_glVertexAttribI1uiv
+#define glVertexAttribI1uivEXT epoxy_glVertexAttribI1uivEXT
+#define glVertexAttribI2i epoxy_glVertexAttribI2i
+#define glVertexAttribI2iEXT epoxy_glVertexAttribI2iEXT
+#define glVertexAttribI2iv epoxy_glVertexAttribI2iv
+#define glVertexAttribI2ivEXT epoxy_glVertexAttribI2ivEXT
+#define glVertexAttribI2ui epoxy_glVertexAttribI2ui
+#define glVertexAttribI2uiEXT epoxy_glVertexAttribI2uiEXT
+#define glVertexAttribI2uiv epoxy_glVertexAttribI2uiv
+#define glVertexAttribI2uivEXT epoxy_glVertexAttribI2uivEXT
+#define glVertexAttribI3i epoxy_glVertexAttribI3i
+#define glVertexAttribI3iEXT epoxy_glVertexAttribI3iEXT
+#define glVertexAttribI3iv epoxy_glVertexAttribI3iv
+#define glVertexAttribI3ivEXT epoxy_glVertexAttribI3ivEXT
+#define glVertexAttribI3ui epoxy_glVertexAttribI3ui
+#define glVertexAttribI3uiEXT epoxy_glVertexAttribI3uiEXT
+#define glVertexAttribI3uiv epoxy_glVertexAttribI3uiv
+#define glVertexAttribI3uivEXT epoxy_glVertexAttribI3uivEXT
+#define glVertexAttribI4bv epoxy_glVertexAttribI4bv
+#define glVertexAttribI4bvEXT epoxy_glVertexAttribI4bvEXT
+#define glVertexAttribI4i epoxy_glVertexAttribI4i
+#define glVertexAttribI4iEXT epoxy_glVertexAttribI4iEXT
+#define glVertexAttribI4iv epoxy_glVertexAttribI4iv
+#define glVertexAttribI4ivEXT epoxy_glVertexAttribI4ivEXT
+#define glVertexAttribI4sv epoxy_glVertexAttribI4sv
+#define glVertexAttribI4svEXT epoxy_glVertexAttribI4svEXT
+#define glVertexAttribI4ubv epoxy_glVertexAttribI4ubv
+#define glVertexAttribI4ubvEXT epoxy_glVertexAttribI4ubvEXT
+#define glVertexAttribI4ui epoxy_glVertexAttribI4ui
+#define glVertexAttribI4uiEXT epoxy_glVertexAttribI4uiEXT
+#define glVertexAttribI4uiv epoxy_glVertexAttribI4uiv
+#define glVertexAttribI4uivEXT epoxy_glVertexAttribI4uivEXT
+#define glVertexAttribI4usv epoxy_glVertexAttribI4usv
+#define glVertexAttribI4usvEXT epoxy_glVertexAttribI4usvEXT
+#define glVertexAttribIFormat epoxy_glVertexAttribIFormat
+#define glVertexAttribIFormatNV epoxy_glVertexAttribIFormatNV
+#define glVertexAttribIPointer epoxy_glVertexAttribIPointer
+#define glVertexAttribIPointerEXT epoxy_glVertexAttribIPointerEXT
+#define glVertexAttribL1d epoxy_glVertexAttribL1d
+#define glVertexAttribL1dEXT epoxy_glVertexAttribL1dEXT
+#define glVertexAttribL1dv epoxy_glVertexAttribL1dv
+#define glVertexAttribL1dvEXT epoxy_glVertexAttribL1dvEXT
+#define glVertexAttribL1i64NV epoxy_glVertexAttribL1i64NV
+#define glVertexAttribL1i64vNV epoxy_glVertexAttribL1i64vNV
+#define glVertexAttribL1ui64ARB epoxy_glVertexAttribL1ui64ARB
+#define glVertexAttribL1ui64NV epoxy_glVertexAttribL1ui64NV
+#define glVertexAttribL1ui64vARB epoxy_glVertexAttribL1ui64vARB
+#define glVertexAttribL1ui64vNV epoxy_glVertexAttribL1ui64vNV
+#define glVertexAttribL2d epoxy_glVertexAttribL2d
+#define glVertexAttribL2dEXT epoxy_glVertexAttribL2dEXT
+#define glVertexAttribL2dv epoxy_glVertexAttribL2dv
+#define glVertexAttribL2dvEXT epoxy_glVertexAttribL2dvEXT
+#define glVertexAttribL2i64NV epoxy_glVertexAttribL2i64NV
+#define glVertexAttribL2i64vNV epoxy_glVertexAttribL2i64vNV
+#define glVertexAttribL2ui64NV epoxy_glVertexAttribL2ui64NV
+#define glVertexAttribL2ui64vNV epoxy_glVertexAttribL2ui64vNV
+#define glVertexAttribL3d epoxy_glVertexAttribL3d
+#define glVertexAttribL3dEXT epoxy_glVertexAttribL3dEXT
+#define glVertexAttribL3dv epoxy_glVertexAttribL3dv
+#define glVertexAttribL3dvEXT epoxy_glVertexAttribL3dvEXT
+#define glVertexAttribL3i64NV epoxy_glVertexAttribL3i64NV
+#define glVertexAttribL3i64vNV epoxy_glVertexAttribL3i64vNV
+#define glVertexAttribL3ui64NV epoxy_glVertexAttribL3ui64NV
+#define glVertexAttribL3ui64vNV epoxy_glVertexAttribL3ui64vNV
+#define glVertexAttribL4d epoxy_glVertexAttribL4d
+#define glVertexAttribL4dEXT epoxy_glVertexAttribL4dEXT
+#define glVertexAttribL4dv epoxy_glVertexAttribL4dv
+#define glVertexAttribL4dvEXT epoxy_glVertexAttribL4dvEXT
+#define glVertexAttribL4i64NV epoxy_glVertexAttribL4i64NV
+#define glVertexAttribL4i64vNV epoxy_glVertexAttribL4i64vNV
+#define glVertexAttribL4ui64NV epoxy_glVertexAttribL4ui64NV
+#define glVertexAttribL4ui64vNV epoxy_glVertexAttribL4ui64vNV
+#define glVertexAttribLFormat epoxy_glVertexAttribLFormat
+#define glVertexAttribLFormatNV epoxy_glVertexAttribLFormatNV
+#define glVertexAttribLPointer epoxy_glVertexAttribLPointer
+#define glVertexAttribLPointerEXT epoxy_glVertexAttribLPointerEXT
+#define glVertexAttribP1ui epoxy_glVertexAttribP1ui
+#define glVertexAttribP1uiv epoxy_glVertexAttribP1uiv
+#define glVertexAttribP2ui epoxy_glVertexAttribP2ui
+#define glVertexAttribP2uiv epoxy_glVertexAttribP2uiv
+#define glVertexAttribP3ui epoxy_glVertexAttribP3ui
+#define glVertexAttribP3uiv epoxy_glVertexAttribP3uiv
+#define glVertexAttribP4ui epoxy_glVertexAttribP4ui
+#define glVertexAttribP4uiv epoxy_glVertexAttribP4uiv
+#define glVertexAttribParameteriAMD epoxy_glVertexAttribParameteriAMD
+#define glVertexAttribPointer epoxy_glVertexAttribPointer
+#define glVertexAttribPointerARB epoxy_glVertexAttribPointerARB
+#define glVertexAttribPointerNV epoxy_glVertexAttribPointerNV
+#define glVertexAttribs1dvNV epoxy_glVertexAttribs1dvNV
+#define glVertexAttribs1fvNV epoxy_glVertexAttribs1fvNV
+#define glVertexAttribs1hvNV epoxy_glVertexAttribs1hvNV
+#define glVertexAttribs1svNV epoxy_glVertexAttribs1svNV
+#define glVertexAttribs2dvNV epoxy_glVertexAttribs2dvNV
+#define glVertexAttribs2fvNV epoxy_glVertexAttribs2fvNV
+#define glVertexAttribs2hvNV epoxy_glVertexAttribs2hvNV
+#define glVertexAttribs2svNV epoxy_glVertexAttribs2svNV
+#define glVertexAttribs3dvNV epoxy_glVertexAttribs3dvNV
+#define glVertexAttribs3fvNV epoxy_glVertexAttribs3fvNV
+#define glVertexAttribs3hvNV epoxy_glVertexAttribs3hvNV
+#define glVertexAttribs3svNV epoxy_glVertexAttribs3svNV
+#define glVertexAttribs4dvNV epoxy_glVertexAttribs4dvNV
+#define glVertexAttribs4fvNV epoxy_glVertexAttribs4fvNV
+#define glVertexAttribs4hvNV epoxy_glVertexAttribs4hvNV
+#define glVertexAttribs4svNV epoxy_glVertexAttribs4svNV
+#define glVertexAttribs4ubvNV epoxy_glVertexAttribs4ubvNV
+#define glVertexBindingDivisor epoxy_glVertexBindingDivisor
+#define glVertexBlendARB epoxy_glVertexBlendARB
+#define glVertexBlendEnvfATI epoxy_glVertexBlendEnvfATI
+#define glVertexBlendEnviATI epoxy_glVertexBlendEnviATI
+#define glVertexFormatNV epoxy_glVertexFormatNV
+#define glVertexP2ui epoxy_glVertexP2ui
+#define glVertexP2uiv epoxy_glVertexP2uiv
+#define glVertexP3ui epoxy_glVertexP3ui
+#define glVertexP3uiv epoxy_glVertexP3uiv
+#define glVertexP4ui epoxy_glVertexP4ui
+#define glVertexP4uiv epoxy_glVertexP4uiv
+#define glVertexPointer epoxy_glVertexPointer
+#define glVertexPointerEXT epoxy_glVertexPointerEXT
+#define glVertexPointerListIBM epoxy_glVertexPointerListIBM
+#define glVertexPointervINTEL epoxy_glVertexPointervINTEL
+#define glVertexStream1dATI epoxy_glVertexStream1dATI
+#define glVertexStream1dvATI epoxy_glVertexStream1dvATI
+#define glVertexStream1fATI epoxy_glVertexStream1fATI
+#define glVertexStream1fvATI epoxy_glVertexStream1fvATI
+#define glVertexStream1iATI epoxy_glVertexStream1iATI
+#define glVertexStream1ivATI epoxy_glVertexStream1ivATI
+#define glVertexStream1sATI epoxy_glVertexStream1sATI
+#define glVertexStream1svATI epoxy_glVertexStream1svATI
+#define glVertexStream2dATI epoxy_glVertexStream2dATI
+#define glVertexStream2dvATI epoxy_glVertexStream2dvATI
+#define glVertexStream2fATI epoxy_glVertexStream2fATI
+#define glVertexStream2fvATI epoxy_glVertexStream2fvATI
+#define glVertexStream2iATI epoxy_glVertexStream2iATI
+#define glVertexStream2ivATI epoxy_glVertexStream2ivATI
+#define glVertexStream2sATI epoxy_glVertexStream2sATI
+#define glVertexStream2svATI epoxy_glVertexStream2svATI
+#define glVertexStream3dATI epoxy_glVertexStream3dATI
+#define glVertexStream3dvATI epoxy_glVertexStream3dvATI
+#define glVertexStream3fATI epoxy_glVertexStream3fATI
+#define glVertexStream3fvATI epoxy_glVertexStream3fvATI
+#define glVertexStream3iATI epoxy_glVertexStream3iATI
+#define glVertexStream3ivATI epoxy_glVertexStream3ivATI
+#define glVertexStream3sATI epoxy_glVertexStream3sATI
+#define glVertexStream3svATI epoxy_glVertexStream3svATI
+#define glVertexStream4dATI epoxy_glVertexStream4dATI
+#define glVertexStream4dvATI epoxy_glVertexStream4dvATI
+#define glVertexStream4fATI epoxy_glVertexStream4fATI
+#define glVertexStream4fvATI epoxy_glVertexStream4fvATI
+#define glVertexStream4iATI epoxy_glVertexStream4iATI
+#define glVertexStream4ivATI epoxy_glVertexStream4ivATI
+#define glVertexStream4sATI epoxy_glVertexStream4sATI
+#define glVertexStream4svATI epoxy_glVertexStream4svATI
+#define glVertexWeightPointerEXT epoxy_glVertexWeightPointerEXT
+#define glVertexWeightfEXT epoxy_glVertexWeightfEXT
+#define glVertexWeightfvEXT epoxy_glVertexWeightfvEXT
+#define glVertexWeighthNV epoxy_glVertexWeighthNV
+#define glVertexWeighthvNV epoxy_glVertexWeighthvNV
+#define glVideoCaptureNV epoxy_glVideoCaptureNV
+#define glVideoCaptureStreamParameterdvNV epoxy_glVideoCaptureStreamParameterdvNV
+#define glVideoCaptureStreamParameterfvNV epoxy_glVideoCaptureStreamParameterfvNV
+#define glVideoCaptureStreamParameterivNV epoxy_glVideoCaptureStreamParameterivNV
+#define glViewport epoxy_glViewport
+#define glViewportArrayv epoxy_glViewportArrayv
+#define glViewportArrayvNV epoxy_glViewportArrayvNV
+#define glViewportArrayvOES epoxy_glViewportArrayvOES
+#define glViewportIndexedf epoxy_glViewportIndexedf
+#define glViewportIndexedfNV epoxy_glViewportIndexedfNV
+#define glViewportIndexedfOES epoxy_glViewportIndexedfOES
+#define glViewportIndexedfv epoxy_glViewportIndexedfv
+#define glViewportIndexedfvNV epoxy_glViewportIndexedfvNV
+#define glViewportIndexedfvOES epoxy_glViewportIndexedfvOES
+#define glViewportPositionWScaleNV epoxy_glViewportPositionWScaleNV
+#define glViewportSwizzleNV epoxy_glViewportSwizzleNV
+#define glWaitSemaphoreEXT epoxy_glWaitSemaphoreEXT
+#define glWaitSemaphoreui64NVX epoxy_glWaitSemaphoreui64NVX
+#define glWaitSync epoxy_glWaitSync
+#define glWaitSyncAPPLE epoxy_glWaitSyncAPPLE
+#define glWaitVkSemaphoreNV epoxy_glWaitVkSemaphoreNV
+#define glWeightPathsNV epoxy_glWeightPathsNV
+#define glWeightPointerARB epoxy_glWeightPointerARB
+#define glWeightPointerOES epoxy_glWeightPointerOES
+#define glWeightbvARB epoxy_glWeightbvARB
+#define glWeightdvARB epoxy_glWeightdvARB
+#define glWeightfvARB epoxy_glWeightfvARB
+#define glWeightivARB epoxy_glWeightivARB
+#define glWeightsvARB epoxy_glWeightsvARB
+#define glWeightubvARB epoxy_glWeightubvARB
+#define glWeightuivARB epoxy_glWeightuivARB
+#define glWeightusvARB epoxy_glWeightusvARB
+#define glWindowPos2d epoxy_glWindowPos2d
+#define glWindowPos2dARB epoxy_glWindowPos2dARB
+#define glWindowPos2dMESA epoxy_glWindowPos2dMESA
+#define glWindowPos2dv epoxy_glWindowPos2dv
+#define glWindowPos2dvARB epoxy_glWindowPos2dvARB
+#define glWindowPos2dvMESA epoxy_glWindowPos2dvMESA
+#define glWindowPos2f epoxy_glWindowPos2f
+#define glWindowPos2fARB epoxy_glWindowPos2fARB
+#define glWindowPos2fMESA epoxy_glWindowPos2fMESA
+#define glWindowPos2fv epoxy_glWindowPos2fv
+#define glWindowPos2fvARB epoxy_glWindowPos2fvARB
+#define glWindowPos2fvMESA epoxy_glWindowPos2fvMESA
+#define glWindowPos2i epoxy_glWindowPos2i
+#define glWindowPos2iARB epoxy_glWindowPos2iARB
+#define glWindowPos2iMESA epoxy_glWindowPos2iMESA
+#define glWindowPos2iv epoxy_glWindowPos2iv
+#define glWindowPos2ivARB epoxy_glWindowPos2ivARB
+#define glWindowPos2ivMESA epoxy_glWindowPos2ivMESA
+#define glWindowPos2s epoxy_glWindowPos2s
+#define glWindowPos2sARB epoxy_glWindowPos2sARB
+#define glWindowPos2sMESA epoxy_glWindowPos2sMESA
+#define glWindowPos2sv epoxy_glWindowPos2sv
+#define glWindowPos2svARB epoxy_glWindowPos2svARB
+#define glWindowPos2svMESA epoxy_glWindowPos2svMESA
+#define glWindowPos3d epoxy_glWindowPos3d
+#define glWindowPos3dARB epoxy_glWindowPos3dARB
+#define glWindowPos3dMESA epoxy_glWindowPos3dMESA
+#define glWindowPos3dv epoxy_glWindowPos3dv
+#define glWindowPos3dvARB epoxy_glWindowPos3dvARB
+#define glWindowPos3dvMESA epoxy_glWindowPos3dvMESA
+#define glWindowPos3f epoxy_glWindowPos3f
+#define glWindowPos3fARB epoxy_glWindowPos3fARB
+#define glWindowPos3fMESA epoxy_glWindowPos3fMESA
+#define glWindowPos3fv epoxy_glWindowPos3fv
+#define glWindowPos3fvARB epoxy_glWindowPos3fvARB
+#define glWindowPos3fvMESA epoxy_glWindowPos3fvMESA
+#define glWindowPos3i epoxy_glWindowPos3i
+#define glWindowPos3iARB epoxy_glWindowPos3iARB
+#define glWindowPos3iMESA epoxy_glWindowPos3iMESA
+#define glWindowPos3iv epoxy_glWindowPos3iv
+#define glWindowPos3ivARB epoxy_glWindowPos3ivARB
+#define glWindowPos3ivMESA epoxy_glWindowPos3ivMESA
+#define glWindowPos3s epoxy_glWindowPos3s
+#define glWindowPos3sARB epoxy_glWindowPos3sARB
+#define glWindowPos3sMESA epoxy_glWindowPos3sMESA
+#define glWindowPos3sv epoxy_glWindowPos3sv
+#define glWindowPos3svARB epoxy_glWindowPos3svARB
+#define glWindowPos3svMESA epoxy_glWindowPos3svMESA
+#define glWindowPos4dMESA epoxy_glWindowPos4dMESA
+#define glWindowPos4dvMESA epoxy_glWindowPos4dvMESA
+#define glWindowPos4fMESA epoxy_glWindowPos4fMESA
+#define glWindowPos4fvMESA epoxy_glWindowPos4fvMESA
+#define glWindowPos4iMESA epoxy_glWindowPos4iMESA
+#define glWindowPos4ivMESA epoxy_glWindowPos4ivMESA
+#define glWindowPos4sMESA epoxy_glWindowPos4sMESA
+#define glWindowPos4svMESA epoxy_glWindowPos4svMESA
+#define glWindowRectanglesEXT epoxy_glWindowRectanglesEXT
+#define glWriteMaskEXT epoxy_glWriteMaskEXT
diff --git a/third_party/epoxy/epoxy/glx.h b/third_party/epoxy/epoxy/glx.h
new file mode 100644
index 0000000000..85170639c9
--- /dev/null
+++ b/third_party/epoxy/epoxy/glx.h
@@ -0,0 +1,57 @@
+/*
+ * Copyright © 2013 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+ * IN THE SOFTWARE.
+ */
+
+/** @file glx.h
+ *
+ * Provides an implementation of a GLX dispatch layer using global
+ * function pointers.
+ *
+ * You should include `<epoxy/glx.h>` instead of `<GL/glx.h>`.
+ */
+
+#ifndef EPOXY_GLX_H
+#define EPOXY_GLX_H
+
+#include <epoxy/gl.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+#if defined(GLX_H) || defined(__glxext_h_)
+#error epoxy/glx.h must be included before (or in place of) GL/glx.h
+#else
+#define GLX_H
+#define __glx_h__
+#define __glxext_h_
+#endif
+
+EPOXY_BEGIN_DECLS
+
+#include "epoxy/glx_generated.h"
+
+EPOXY_PUBLIC bool epoxy_has_glx_extension(Display *dpy, int screen, const char *extension);
+EPOXY_PUBLIC int epoxy_glx_version(Display *dpy, int screen);
+EPOXY_PUBLIC bool epoxy_has_glx(Display *dpy);
+
+EPOXY_END_DECLS
+
+#endif /* EPOXY_GLX_H */
diff --git a/third_party/epoxy/epoxy/glx_generated.h b/third_party/epoxy/epoxy/glx_generated.h
new file mode 100644
index 0000000000..e04f643fec
--- /dev/null
+++ b/third_party/epoxy/epoxy/glx_generated.h
@@ -0,0 +1,1005 @@
+/* GL dispatch header.
+ * This is code-generated from the GL API XML files from Khronos.
+ *
+ * Copyright (c) 2013-2018 The Khronos Group Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#pragma once
+#include <inttypes.h>
+#include <stddef.h>
+
+#include "epoxy/common.h"
+#include "epoxy/gl.h"
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+typedef XID GLXFBConfigID;
+typedef struct __GLXFBConfigRec *GLXFBConfig;
+typedef XID GLXContextID;
+typedef struct __GLXcontextRec *GLXContext;
+typedef XID GLXPixmap;
+typedef XID GLXDrawable;
+typedef XID GLXWindow;
+typedef XID GLXPbuffer;
+typedef void (APIENTRY *__GLXextFuncPtr)(void);
+typedef XID GLXVideoCaptureDeviceNV;
+typedef unsigned int GLXVideoDeviceNV;
+typedef XID GLXVideoSourceSGIX;
+typedef XID GLXFBConfigIDSGIX;
+typedef struct __GLXFBConfigRec *GLXFBConfigSGIX;
+typedef XID GLXPbufferSGIX;
+typedef struct {
+    int event_type;             /* GLX_DAMAGED or GLX_SAVED */
+    int draw_type;              /* GLX_WINDOW or GLX_PBUFFER */
+    unsigned long serial;       /* # of last request processed by server */
+    Bool send_event;            /* true if this came for SendEvent request */
+    Display *display;           /* display the event was read from */
+    GLXDrawable drawable;       /* XID of Drawable */
+    unsigned int buffer_mask;   /* mask indicating which buffers are affected */
+    unsigned int aux_buffer;    /* which aux buffer was affected */
+    int x, y;
+    int width, height;
+    int count;                  /* if nonzero, at least this many more */
+} GLXPbufferClobberEvent;
+typedef struct {
+    int type;
+    unsigned long serial;       /* # of last request processed by server */
+    Bool send_event;            /* true if this came from a SendEvent request */
+    Display *display;           /* Display the event was read from */
+    GLXDrawable drawable;       /* drawable on which event was requested in event mask */
+    int event_type;
+    int64_t ust;
+    int64_t msc;
+    int64_t sbc;
+} GLXBufferSwapComplete;
+typedef union __GLXEvent {
+    GLXPbufferClobberEvent glxpbufferclobber;
+    GLXBufferSwapComplete glxbufferswapcomplete;
+    long pad[24];
+} GLXEvent;
+typedef struct {
+    int type;
+    unsigned long serial;
+    Bool send_event;
+    Display *display;
+    int extension;
+    int evtype;
+    GLXDrawable window;
+    Bool stereo_tree;
+} GLXStereoNotifyEventEXT;
+typedef struct {
+    int type;
+    unsigned long serial;   /* # of last request processed by server */
+    Bool send_event;        /* true if this came for SendEvent request */
+    Display *display;       /* display the event was read from */
+    GLXDrawable drawable;   /* i.d. of Drawable */
+    int event_type;         /* GLX_DAMAGED_SGIX or GLX_SAVED_SGIX */
+    int draw_type;          /* GLX_WINDOW_SGIX or GLX_PBUFFER_SGIX */
+    unsigned int mask;      /* mask indicating which buffers are affected*/
+    int x, y;
+    int width, height;
+    int count;              /* if nonzero, at least this many more */
+} GLXBufferClobberEventSGIX;
+typedef struct {
+    char    pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int     networkId;
+} GLXHyperpipeNetworkSGIX;
+typedef struct {
+    char    pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int     channel;
+    unsigned int participationType;
+    int     timeSlice;
+} GLXHyperpipeConfigSGIX;
+typedef struct {
+    char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int srcXOrigin, srcYOrigin, srcWidth, srcHeight;
+    int destXOrigin, destYOrigin, destWidth, destHeight;
+} GLXPipeRect;
+typedef struct {
+    char pipeName[80]; /* Should be [GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX] */
+    int XOrigin, YOrigin, maxHeight, maxWidth;
+} GLXPipeRectLimits;
+
+#define GLX_VERSION_1_0 1
+#define GLX_VERSION_1_1 1
+#define GLX_VERSION_1_2 1
+#define GLX_VERSION_1_3 1
+#define GLX_VERSION_1_4 1
+
+#define GLX_3DFX_multisample 1
+#define GLX_AMD_gpu_association 1
+#define GLX_ARB_context_flush_control 1
+#define GLX_ARB_create_context 1
+#define GLX_ARB_create_context_no_error 1
+#define GLX_ARB_create_context_profile 1
+#define GLX_ARB_create_context_robustness 1
+#define GLX_ARB_fbconfig_float 1
+#define GLX_ARB_framebuffer_sRGB 1
+#define GLX_ARB_get_proc_address 1
+#define GLX_ARB_multisample 1
+#define GLX_ARB_robustness_application_isolation 1
+#define GLX_ARB_robustness_share_group_isolation 1
+#define GLX_ARB_vertex_buffer_object 1
+#define GLX_EXT_buffer_age 1
+#define GLX_EXT_context_priority 1
+#define GLX_EXT_create_context_es2_profile 1
+#define GLX_EXT_create_context_es_profile 1
+#define GLX_EXT_fbconfig_packed_float 1
+#define GLX_EXT_framebuffer_sRGB 1
+#define GLX_EXT_import_context 1
+#define GLX_EXT_libglvnd 1
+#define GLX_EXT_no_config_context 1
+#define GLX_EXT_stereo_tree 1
+#define GLX_EXT_swap_control 1
+#define GLX_EXT_swap_control_tear 1
+#define GLX_EXT_texture_from_pixmap 1
+#define GLX_EXT_visual_info 1
+#define GLX_EXT_visual_rating 1
+#define GLX_INTEL_swap_event 1
+#define GLX_MESA_agp_offset 1
+#define GLX_MESA_copy_sub_buffer 1
+#define GLX_MESA_pixmap_colormap 1
+#define GLX_MESA_query_renderer 1
+#define GLX_MESA_release_buffers 1
+#define GLX_MESA_set_3dfx_mode 1
+#define GLX_MESA_swap_control 1
+#define GLX_NV_copy_buffer 1
+#define GLX_NV_copy_image 1
+#define GLX_NV_delay_before_swap 1
+#define GLX_NV_float_buffer 1
+#define GLX_NV_multisample_coverage 1
+#define GLX_NV_present_video 1
+#define GLX_NV_robustness_video_memory_purge 1
+#define GLX_NV_swap_group 1
+#define GLX_NV_video_capture 1
+#define GLX_NV_video_out 1
+#define GLX_OML_swap_method 1
+#define GLX_OML_sync_control 1
+#define GLX_SGIS_blended_overlay 1
+#define GLX_SGIS_multisample 1
+#define GLX_SGIS_shared_multisample 1
+#define GLX_SGIX_dmbuffer 1
+#define GLX_SGIX_fbconfig 1
+#define GLX_SGIX_hyperpipe 1
+#define GLX_SGIX_pbuffer 1
+#define GLX_SGIX_swap_barrier 1
+#define GLX_SGIX_swap_group 1
+#define GLX_SGIX_video_resize 1
+#define GLX_SGIX_video_source 1
+#define GLX_SGIX_visual_select_group 1
+#define GLX_SGI_cushion 1
+#define GLX_SGI_make_current_read 1
+#define GLX_SGI_swap_control 1
+#define GLX_SGI_video_sync 1
+#define GLX_SUN_get_transparent_index 1
+
+#define GLX_EXTENSION_NAME                                       "GLX"
+#define GLX_CONTEXT_RELEASE_BEHAVIOR_NONE_ARB                    0
+#define GLX_PbufferClobber                                       0
+#define GLX_STEREO_NOTIFY_EXT                                    0x00000000
+#define GLX_SYNC_FRAME_SGIX                                      0x00000000
+#define GLX_CONTEXT_CORE_PROFILE_BIT_ARB                         0x00000001
+#define GLX_CONTEXT_DEBUG_BIT_ARB                                0x00000001
+#define GLX_FRONT_LEFT_BUFFER_BIT                                0x00000001
+#define GLX_FRONT_LEFT_BUFFER_BIT_SGIX                           0x00000001
+#define GLX_HYPERPIPE_DISPLAY_PIPE_SGIX                          0x00000001
+#define GLX_PIPE_RECT_SGIX                                       0x00000001
+#define GLX_RGBA_BIT                                             0x00000001
+#define GLX_RGBA_BIT_SGIX                                        0x00000001
+#define GLX_STEREO_NOTIFY_MASK_EXT                               0x00000001
+#define GLX_SYNC_SWAP_SGIX                                       0x00000001
+#define GLX_TEXTURE_1D_BIT_EXT                                   0x00000001
+#define GLX_WINDOW_BIT                                           0x00000001
+#define GLX_WINDOW_BIT_SGIX                                      0x00000001
+#define GLX_COLOR_INDEX_BIT                                      0x00000002
+#define GLX_COLOR_INDEX_BIT_SGIX                                 0x00000002
+#define GLX_CONTEXT_COMPATIBILITY_PROFILE_BIT_ARB                0x00000002
+#define GLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB                   0x00000002
+#define GLX_FRONT_RIGHT_BUFFER_BIT                               0x00000002
+#define GLX_FRONT_RIGHT_BUFFER_BIT_SGIX                          0x00000002
+#define GLX_HYPERPIPE_RENDER_PIPE_SGIX                           0x00000002
+#define GLX_PIPE_RECT_LIMITS_SGIX                                0x00000002
+#define GLX_PIXMAP_BIT                                           0x00000002
+#define GLX_PIXMAP_BIT_SGIX                                      0x00000002
+#define GLX_TEXTURE_2D_BIT_EXT                                   0x00000002
+#define GLX_HYPERPIPE_STEREO_SGIX                                0x00000003
+#define GLX_BACK_LEFT_BUFFER_BIT                                 0x00000004
+#define GLX_BACK_LEFT_BUFFER_BIT_SGIX                            0x00000004
+#define GLX_CONTEXT_ES2_PROFILE_BIT_EXT                          0x00000004
+#define GLX_CONTEXT_ES_PROFILE_BIT_EXT                           0x00000004
+#define GLX_CONTEXT_ROBUST_ACCESS_BIT_ARB                        0x00000004
+#define GLX_HYPERPIPE_PIXEL_AVERAGE_SGIX                         0x00000004
+#define GLX_PBUFFER_BIT                                          0x00000004
+#define GLX_PBUFFER_BIT_SGIX                                     0x00000004
+#define GLX_RGBA_FLOAT_BIT_ARB                                   0x00000004
+#define GLX_TEXTURE_RECTANGLE_BIT_EXT                            0x00000004
+#define GLX_BACK_RIGHT_BUFFER_BIT                                0x00000008
+#define GLX_BACK_RIGHT_BUFFER_BIT_SGIX                           0x00000008
+#define GLX_CONTEXT_RESET_ISOLATION_BIT_ARB                      0x00000008
+#define GLX_RGBA_UNSIGNED_FLOAT_BIT_EXT                          0x00000008
+#define GLX_AUX_BUFFERS_BIT                                      0x00000010
+#define GLX_AUX_BUFFERS_BIT_SGIX                                 0x00000010
+#define GLX_DEPTH_BUFFER_BIT                                     0x00000020
+#define GLX_DEPTH_BUFFER_BIT_SGIX                                0x00000020
+#define GLX_STENCIL_BUFFER_BIT                                   0x00000040
+#define GLX_STENCIL_BUFFER_BIT_SGIX                              0x00000040
+#define GLX_ACCUM_BUFFER_BIT                                     0x00000080
+#define GLX_ACCUM_BUFFER_BIT_SGIX                                0x00000080
+#define GLX_SAMPLE_BUFFERS_BIT_SGIX                              0x00000100
+#define GLX_BUFFER_SWAP_COMPLETE_INTEL_MASK                      0x04000000
+#define GLX_BUFFER_CLOBBER_MASK_SGIX                             0x08000000
+#define GLX_PBUFFER_CLOBBER_MASK                                 0x08000000
+#define GLX_3DFX_WINDOW_MODE_MESA                                0x1
+#define GLX_VENDOR                                               0x1
+#define GLX_GPU_VENDOR_AMD                                       0x1F00
+#define GLX_GPU_RENDERER_STRING_AMD                              0x1F01
+#define GLX_GPU_OPENGL_VERSION_STRING_AMD                        0x1F02
+#define GLX_3DFX_FULLSCREEN_MODE_MESA                            0x2
+#define GLX_VERSION                                              0x2
+#define GLX_CONFIG_CAVEAT                                        0x20
+#define GLX_VISUAL_CAVEAT_EXT                                    0x20
+#define GLX_CONTEXT_MAJOR_VERSION_ARB                            0x2091
+#define GLX_CONTEXT_MINOR_VERSION_ARB                            0x2092
+#define GLX_CONTEXT_FLAGS_ARB                                    0x2094
+#define GLX_CONTEXT_ALLOW_BUFFER_BYTE_ORDER_MISMATCH_ARB         0x2095
+#define GLX_CONTEXT_RELEASE_BEHAVIOR_ARB                         0x2097
+#define GLX_CONTEXT_RELEASE_BEHAVIOR_FLUSH_ARB                   0x2098
+#define GLX_FLOAT_COMPONENTS_NV                                  0x20B0
+#define GLX_RGBA_UNSIGNED_FLOAT_TYPE_EXT                         0x20B1
+#define GLX_FRAMEBUFFER_SRGB_CAPABLE_ARB                         0x20B2
+#define GLX_FRAMEBUFFER_SRGB_CAPABLE_EXT                         0x20B2
+#define GLX_COLOR_SAMPLES_NV                                     0x20B3
+#define GLX_RGBA_FLOAT_TYPE_ARB                                  0x20B9
+#define GLX_VIDEO_OUT_COLOR_NV                                   0x20C3
+#define GLX_VIDEO_OUT_ALPHA_NV                                   0x20C4
+#define GLX_VIDEO_OUT_DEPTH_NV                                   0x20C5
+#define GLX_VIDEO_OUT_COLOR_AND_ALPHA_NV                         0x20C6
+#define GLX_VIDEO_OUT_COLOR_AND_DEPTH_NV                         0x20C7
+#define GLX_VIDEO_OUT_FRAME_NV                                   0x20C8
+#define GLX_VIDEO_OUT_FIELD_1_NV                                 0x20C9
+#define GLX_VIDEO_OUT_FIELD_2_NV                                 0x20CA
+#define GLX_VIDEO_OUT_STACKED_FIELDS_1_2_NV                      0x20CB
+#define GLX_VIDEO_OUT_STACKED_FIELDS_2_1_NV                      0x20CC
+#define GLX_DEVICE_ID_NV                                         0x20CD
+#define GLX_UNIQUE_ID_NV                                         0x20CE
+#define GLX_NUM_VIDEO_CAPTURE_SLOTS_NV                           0x20CF
+#define GLX_BIND_TO_TEXTURE_RGB_EXT                              0x20D0
+#define GLX_BIND_TO_TEXTURE_RGBA_EXT                             0x20D1
+#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT                           0x20D2
+#define GLX_BIND_TO_TEXTURE_TARGETS_EXT                          0x20D3
+#define GLX_Y_INVERTED_EXT                                       0x20D4
+#define GLX_TEXTURE_FORMAT_EXT                                   0x20D5
+#define GLX_TEXTURE_TARGET_EXT                                   0x20D6
+#define GLX_MIPMAP_TEXTURE_EXT                                   0x20D7
+#define GLX_TEXTURE_FORMAT_NONE_EXT                              0x20D8
+#define GLX_TEXTURE_FORMAT_RGB_EXT                               0x20D9
+#define GLX_TEXTURE_FORMAT_RGBA_EXT                              0x20DA
+#define GLX_TEXTURE_1D_EXT                                       0x20DB
+#define GLX_TEXTURE_2D_EXT                                       0x20DC
+#define GLX_TEXTURE_RECTANGLE_EXT                                0x20DD
+#define GLX_FRONT_EXT                                            0x20DE
+#define GLX_FRONT_LEFT_EXT                                       0x20DE
+#define GLX_FRONT_RIGHT_EXT                                      0x20DF
+#define GLX_BACK_EXT                                             0x20E0
+#define GLX_BACK_LEFT_EXT                                        0x20E0
+#define GLX_BACK_RIGHT_EXT                                       0x20E1
+#define GLX_AUX0_EXT                                             0x20E2
+#define GLX_AUX1_EXT                                             0x20E3
+#define GLX_AUX2_EXT                                             0x20E4
+#define GLX_AUX3_EXT                                             0x20E5
+#define GLX_AUX4_EXT                                             0x20E6
+#define GLX_AUX5_EXT                                             0x20E7
+#define GLX_AUX6_EXT                                             0x20E8
+#define GLX_AUX7_EXT                                             0x20E9
+#define GLX_AUX8_EXT                                             0x20EA
+#define GLX_AUX9_EXT                                             0x20EB
+#define GLX_NUM_VIDEO_SLOTS_NV                                   0x20F0
+#define GLX_SWAP_INTERVAL_EXT                                    0x20F1
+#define GLX_MAX_SWAP_INTERVAL_EXT                                0x20F2
+#define GLX_LATE_SWAPS_TEAR_EXT                                  0x20F3
+#define GLX_BACK_BUFFER_AGE_EXT                                  0x20F4
+#define GLX_STEREO_TREE_EXT                                      0x20F5
+#define GLX_VENDOR_NAMES_EXT                                     0x20F6
+#define GLX_GENERATE_RESET_ON_VIDEO_MEMORY_PURGE_NV              0x20F7
+#define GLX_GPU_FASTEST_TARGET_GPUS_AMD                          0x21A2
+#define GLX_GPU_RAM_AMD                                          0x21A3
+#define GLX_GPU_CLOCK_AMD                                        0x21A4
+#define GLX_GPU_NUM_PIPES_AMD                                    0x21A5
+#define GLX_GPU_NUM_SIMD_AMD                                     0x21A6
+#define GLX_GPU_NUM_RB_AMD                                       0x21A7
+#define GLX_GPU_NUM_SPI_AMD                                      0x21A8
+#define GLX_X_VISUAL_TYPE                                        0x22
+#define GLX_X_VISUAL_TYPE_EXT                                    0x22
+#define GLX_TRANSPARENT_TYPE                                     0x23
+#define GLX_TRANSPARENT_TYPE_EXT                                 0x23
+#define GLX_TRANSPARENT_INDEX_VALUE                              0x24
+#define GLX_TRANSPARENT_INDEX_VALUE_EXT                          0x24
+#define GLX_TRANSPARENT_RED_VALUE                                0x25
+#define GLX_TRANSPARENT_RED_VALUE_EXT                            0x25
+#define GLX_TRANSPARENT_GREEN_VALUE                              0x26
+#define GLX_TRANSPARENT_GREEN_VALUE_EXT                          0x26
+#define GLX_TRANSPARENT_BLUE_VALUE                               0x27
+#define GLX_TRANSPARENT_BLUE_VALUE_EXT                           0x27
+#define GLX_TRANSPARENT_ALPHA_VALUE                              0x28
+#define GLX_TRANSPARENT_ALPHA_VALUE_EXT                          0x28
+#define GLX_EXTENSIONS                                           0x3
+#define GLX_CONTEXT_PRIORITY_LEVEL_EXT                           0x3100
+#define GLX_CONTEXT_PRIORITY_HIGH_EXT                            0x3101
+#define GLX_CONTEXT_PRIORITY_MEDIUM_EXT                          0x3102
+#define GLX_CONTEXT_PRIORITY_LOW_EXT                             0x3103
+#define GLX_CONTEXT_OPENGL_NO_ERROR_ARB                          0x31B3
+#define GLX_NONE                                                 0x8000
+#define GLX_NONE_EXT                                             0x8000
+#define GLX_SLOW_CONFIG                                          0x8001
+#define GLX_SLOW_VISUAL_EXT                                      0x8001
+#define GLX_TRUE_COLOR                                           0x8002
+#define GLX_TRUE_COLOR_EXT                                       0x8002
+#define GLX_DIRECT_COLOR                                         0x8003
+#define GLX_DIRECT_COLOR_EXT                                     0x8003
+#define GLX_PSEUDO_COLOR                                         0x8004
+#define GLX_PSEUDO_COLOR_EXT                                     0x8004
+#define GLX_STATIC_COLOR                                         0x8005
+#define GLX_STATIC_COLOR_EXT                                     0x8005
+#define GLX_GRAY_SCALE                                           0x8006
+#define GLX_GRAY_SCALE_EXT                                       0x8006
+#define GLX_STATIC_GRAY                                          0x8007
+#define GLX_STATIC_GRAY_EXT                                      0x8007
+#define GLX_TRANSPARENT_RGB                                      0x8008
+#define GLX_TRANSPARENT_RGB_EXT                                  0x8008
+#define GLX_TRANSPARENT_INDEX                                    0x8009
+#define GLX_TRANSPARENT_INDEX_EXT                                0x8009
+#define GLX_SHARE_CONTEXT_EXT                                    0x800A
+#define GLX_VISUAL_ID                                            0x800B
+#define GLX_VISUAL_ID_EXT                                        0x800B
+#define GLX_SCREEN                                               0x800C
+#define GLX_SCREEN_EXT                                           0x800C
+#define GLX_NON_CONFORMANT_CONFIG                                0x800D
+#define GLX_NON_CONFORMANT_VISUAL_EXT                            0x800D
+#define GLX_DRAWABLE_TYPE                                        0x8010
+#define GLX_DRAWABLE_TYPE_SGIX                                   0x8010
+#define GLX_RENDER_TYPE                                          0x8011
+#define GLX_RENDER_TYPE_SGIX                                     0x8011
+#define GLX_X_RENDERABLE                                         0x8012
+#define GLX_X_RENDERABLE_SGIX                                    0x8012
+#define GLX_FBCONFIG_ID                                          0x8013
+#define GLX_FBCONFIG_ID_SGIX                                     0x8013
+#define GLX_RGBA_TYPE                                            0x8014
+#define GLX_RGBA_TYPE_SGIX                                       0x8014
+#define GLX_COLOR_INDEX_TYPE                                     0x8015
+#define GLX_COLOR_INDEX_TYPE_SGIX                                0x8015
+#define GLX_MAX_PBUFFER_WIDTH                                    0x8016
+#define GLX_MAX_PBUFFER_WIDTH_SGIX                               0x8016
+#define GLX_MAX_PBUFFER_HEIGHT                                   0x8017
+#define GLX_MAX_PBUFFER_HEIGHT_SGIX                              0x8017
+#define GLX_MAX_PBUFFER_PIXELS                                   0x8018
+#define GLX_MAX_PBUFFER_PIXELS_SGIX                              0x8018
+#define GLX_OPTIMAL_PBUFFER_WIDTH_SGIX                           0x8019
+#define GLX_OPTIMAL_PBUFFER_HEIGHT_SGIX                          0x801A
+#define GLX_PRESERVED_CONTENTS                                   0x801B
+#define GLX_PRESERVED_CONTENTS_SGIX                              0x801B
+#define GLX_LARGEST_PBUFFER                                      0x801C
+#define GLX_LARGEST_PBUFFER_SGIX                                 0x801C
+#define GLX_WIDTH                                                0x801D
+#define GLX_WIDTH_SGIX                                           0x801D
+#define GLX_HEIGHT                                               0x801E
+#define GLX_HEIGHT_SGIX                                          0x801E
+#define GLX_EVENT_MASK                                           0x801F
+#define GLX_EVENT_MASK_SGIX                                      0x801F
+#define GLX_DAMAGED                                              0x8020
+#define GLX_DAMAGED_SGIX                                         0x8020
+#define GLX_SAVED                                                0x8021
+#define GLX_SAVED_SGIX                                           0x8021
+#define GLX_WINDOW                                               0x8022
+#define GLX_WINDOW_SGIX                                          0x8022
+#define GLX_PBUFFER                                              0x8023
+#define GLX_PBUFFER_SGIX                                         0x8023
+#define GLX_DIGITAL_MEDIA_PBUFFER_SGIX                           0x8024
+#define GLX_BLENDED_RGBA_SGIS                                    0x8025
+#define GLX_MULTISAMPLE_SUB_RECT_WIDTH_SGIS                      0x8026
+#define GLX_MULTISAMPLE_SUB_RECT_HEIGHT_SGIS                     0x8027
+#define GLX_VISUAL_SELECT_GROUP_SGIX                             0x8028
+#define GLX_HYPERPIPE_ID_SGIX                                    0x8030
+#define GLX_PBUFFER_HEIGHT                                       0x8040
+#define GLX_PBUFFER_WIDTH                                        0x8041
+#define GLX_SAMPLE_BUFFERS_3DFX                                  0x8050
+#define GLX_SAMPLES_3DFX                                         0x8051
+#define GLX_SWAP_METHOD_OML                                      0x8060
+#define GLX_SWAP_EXCHANGE_OML                                    0x8061
+#define GLX_SWAP_COPY_OML                                        0x8062
+#define GLX_SWAP_UNDEFINED_OML                                   0x8063
+#define GLX_EXCHANGE_COMPLETE_INTEL                              0x8180
+#define GLX_COPY_COMPLETE_INTEL                                  0x8181
+#define GLX_FLIP_COMPLETE_INTEL                                  0x8182
+#define GLX_RENDERER_VENDOR_ID_MESA                              0x8183
+#define GLX_RENDERER_DEVICE_ID_MESA                              0x8184
+#define GLX_RENDERER_VERSION_MESA                                0x8185
+#define GLX_RENDERER_ACCELERATED_MESA                            0x8186
+#define GLX_RENDERER_VIDEO_MEMORY_MESA                           0x8187
+#define GLX_RENDERER_UNIFIED_MEMORY_ARCHITECTURE_MESA            0x8188
+#define GLX_RENDERER_PREFERRED_PROFILE_MESA                      0x8189
+#define GLX_RENDERER_OPENGL_CORE_PROFILE_VERSION_MESA            0x818A
+#define GLX_RENDERER_OPENGL_COMPATIBILITY_PROFILE_VERSION_MESA   0x818B
+#define GLX_RENDERER_OPENGL_ES_PROFILE_VERSION_MESA              0x818C
+#define GLX_RENDERER_OPENGL_ES2_PROFILE_VERSION_MESA             0x818D
+#define GLX_LOSE_CONTEXT_ON_RESET_ARB                            0x8252
+#define GLX_CONTEXT_RESET_NOTIFICATION_STRATEGY_ARB              0x8256
+#define GLX_NO_RESET_NOTIFICATION_ARB                            0x8261
+#define GLX_CONTEXT_PROFILE_MASK_ARB                             0x9126
+#define GLX_DONT_CARE                                            0xFFFFFFFF
+#define GLX_BAD_SCREEN                                           1
+#define GLX_BufferSwapComplete                                   1
+#define GLX_USE_GL                                               1
+#define GLX_BLUE_SIZE                                            10
+#define GLX_SAMPLE_BUFFERS                                       100000
+#define GLX_SAMPLE_BUFFERS_ARB                                   100000
+#define GLX_SAMPLE_BUFFERS_SGIS                                  100000
+#define GLX_COVERAGE_SAMPLES_NV                                  100001
+#define GLX_SAMPLES                                              100001
+#define GLX_SAMPLES_ARB                                          100001
+#define GLX_SAMPLES_SGIS                                         100001
+#define GLX_ALPHA_SIZE                                           11
+#define GLX_DEPTH_SIZE                                           12
+#define GLX_STENCIL_SIZE                                         13
+#define GLX_ACCUM_RED_SIZE                                       14
+#define GLX_ACCUM_GREEN_SIZE                                     15
+#define GLX_ACCUM_BLUE_SIZE                                      16
+#define GLX_ACCUM_ALPHA_SIZE                                     17
+#define __GLX_NUMBER_EVENTS                                      17
+#define GLX_BAD_ATTRIBUTE                                        2
+#define GLX_BUFFER_SIZE                                          2
+#define GLX_LEVEL                                                3
+#define GLX_NO_EXTENSION                                         3
+#define GLX_BAD_VISUAL                                           4
+#define GLX_RGBA                                                 4
+#define GLX_BAD_CONTEXT                                          5
+#define GLX_DOUBLEBUFFER                                         5
+#define GLX_BAD_VALUE                                            6
+#define GLX_STEREO                                               6
+#define GLX_AUX_BUFFERS                                          7
+#define GLX_BAD_ENUM                                             7
+#define GLX_RED_SIZE                                             8
+#define GLX_HYPERPIPE_PIPE_NAME_LENGTH_SGIX                      80
+#define GLX_GREEN_SIZE                                           9
+#define GLX_BAD_HYPERPIPE_CONFIG_SGIX                            91
+#define GLX_BAD_HYPERPIPE_SGIX                                   92
+
+typedef int (GLAPIENTRY *PFNGLXBINDCHANNELTOWINDOWSGIXPROC)(Display * display, int screen, int channel, Window window);
+typedef int (GLAPIENTRY *PFNGLXBINDHYPERPIPESGIXPROC)(Display * dpy, int hpId);
+typedef Bool (GLAPIENTRY *PFNGLXBINDSWAPBARRIERNVPROC)(Display * dpy, GLuint group, GLuint barrier);
+typedef void (GLAPIENTRY *PFNGLXBINDSWAPBARRIERSGIXPROC)(Display * dpy, GLXDrawable drawable, int barrier);
+typedef void (GLAPIENTRY *PFNGLXBINDTEXIMAGEEXTPROC)(Display * dpy, GLXDrawable drawable, int buffer, const int * attrib_list);
+typedef int (GLAPIENTRY *PFNGLXBINDVIDEOCAPTUREDEVICENVPROC)(Display * dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
+typedef int (GLAPIENTRY *PFNGLXBINDVIDEODEVICENVPROC)(Display * dpy, unsigned int video_slot, unsigned int video_device, const int * attrib_list);
+typedef int (GLAPIENTRY *PFNGLXBINDVIDEOIMAGENVPROC)(Display * dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
+typedef void (GLAPIENTRY *PFNGLXBLITCONTEXTFRAMEBUFFERAMDPROC)(GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+typedef int (GLAPIENTRY *PFNGLXCHANNELRECTSGIXPROC)(Display * display, int screen, int channel, int x, int y, int w, int h);
+typedef int (GLAPIENTRY *PFNGLXCHANNELRECTSYNCSGIXPROC)(Display * display, int screen, int channel, GLenum synctype);
+typedef GLXFBConfig * (GLAPIENTRY *PFNGLXCHOOSEFBCONFIGPROC)(Display * dpy, int screen, const int * attrib_list, int * nelements);
+typedef GLXFBConfigSGIX * (GLAPIENTRY *PFNGLXCHOOSEFBCONFIGSGIXPROC)(Display * dpy, int screen, int * attrib_list, int * nelements);
+typedef XVisualInfo * (GLAPIENTRY *PFNGLXCHOOSEVISUALPROC)(Display * dpy, int screen, int * attribList);
+typedef void (GLAPIENTRY *PFNGLXCOPYBUFFERSUBDATANVPROC)(Display * dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef void (GLAPIENTRY *PFNGLXCOPYCONTEXTPROC)(Display * dpy, GLXContext src, GLXContext dst, unsigned long mask);
+typedef void (GLAPIENTRY *PFNGLXCOPYIMAGESUBDATANVPROC)(Display * dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+typedef void (GLAPIENTRY *PFNGLXCOPYSUBBUFFERMESAPROC)(Display * dpy, GLXDrawable drawable, int x, int y, int width, int height);
+typedef GLXContext (GLAPIENTRY *PFNGLXCREATEASSOCIATEDCONTEXTAMDPROC)(unsigned int id, GLXContext share_list);
+typedef GLXContext (GLAPIENTRY *PFNGLXCREATEASSOCIATEDCONTEXTATTRIBSAMDPROC)(unsigned int id, GLXContext share_context, const int * attribList);
+typedef GLXContext (GLAPIENTRY *PFNGLXCREATECONTEXTPROC)(Display * dpy, XVisualInfo * vis, GLXContext shareList, Bool direct);
+typedef GLXContext (GLAPIENTRY *PFNGLXCREATECONTEXTATTRIBSARBPROC)(Display * dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int * attrib_list);
+typedef GLXContext (GLAPIENTRY *PFNGLXCREATECONTEXTWITHCONFIGSGIXPROC)(Display * dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
+typedef GLXPbufferSGIX (GLAPIENTRY *PFNGLXCREATEGLXPBUFFERSGIXPROC)(Display * dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int * attrib_list);
+typedef GLXPixmap (GLAPIENTRY *PFNGLXCREATEGLXPIXMAPPROC)(Display * dpy, XVisualInfo * visual, Pixmap pixmap);
+typedef GLXPixmap (GLAPIENTRY *PFNGLXCREATEGLXPIXMAPMESAPROC)(Display * dpy, XVisualInfo * visual, Pixmap pixmap, Colormap cmap);
+typedef GLXPixmap (GLAPIENTRY *PFNGLXCREATEGLXPIXMAPWITHCONFIGSGIXPROC)(Display * dpy, GLXFBConfigSGIX config, Pixmap pixmap);
+typedef GLXContext (GLAPIENTRY *PFNGLXCREATENEWCONTEXTPROC)(Display * dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
+typedef GLXPbuffer (GLAPIENTRY *PFNGLXCREATEPBUFFERPROC)(Display * dpy, GLXFBConfig config, const int * attrib_list);
+typedef GLXPixmap (GLAPIENTRY *PFNGLXCREATEPIXMAPPROC)(Display * dpy, GLXFBConfig config, Pixmap pixmap, const int * attrib_list);
+typedef GLXWindow (GLAPIENTRY *PFNGLXCREATEWINDOWPROC)(Display * dpy, GLXFBConfig config, Window win, const int * attrib_list);
+typedef void (GLAPIENTRY *PFNGLXCUSHIONSGIPROC)(Display * dpy, Window window, float cushion);
+typedef Bool (GLAPIENTRY *PFNGLXDELAYBEFORESWAPNVPROC)(Display * dpy, GLXDrawable drawable, GLfloat seconds);
+typedef Bool (GLAPIENTRY *PFNGLXDELETEASSOCIATEDCONTEXTAMDPROC)(GLXContext ctx);
+typedef void (GLAPIENTRY *PFNGLXDESTROYCONTEXTPROC)(Display * dpy, GLXContext ctx);
+typedef void (GLAPIENTRY *PFNGLXDESTROYGLXPBUFFERSGIXPROC)(Display * dpy, GLXPbufferSGIX pbuf);
+typedef void (GLAPIENTRY *PFNGLXDESTROYGLXPIXMAPPROC)(Display * dpy, GLXPixmap pixmap);
+typedef void (GLAPIENTRY *PFNGLXDESTROYGLXVIDEOSOURCESGIXPROC)(Display * dpy, GLXVideoSourceSGIX glxvideosource);
+typedef int (GLAPIENTRY *PFNGLXDESTROYHYPERPIPECONFIGSGIXPROC)(Display * dpy, int hpId);
+typedef void (GLAPIENTRY *PFNGLXDESTROYPBUFFERPROC)(Display * dpy, GLXPbuffer pbuf);
+typedef void (GLAPIENTRY *PFNGLXDESTROYPIXMAPPROC)(Display * dpy, GLXPixmap pixmap);
+typedef void (GLAPIENTRY *PFNGLXDESTROYWINDOWPROC)(Display * dpy, GLXWindow win);
+typedef GLXVideoCaptureDeviceNV * (GLAPIENTRY *PFNGLXENUMERATEVIDEOCAPTUREDEVICESNVPROC)(Display * dpy, int screen, int * nelements);
+typedef unsigned int * (GLAPIENTRY *PFNGLXENUMERATEVIDEODEVICESNVPROC)(Display * dpy, int screen, int * nelements);
+typedef void (GLAPIENTRY *PFNGLXFREECONTEXTEXTPROC)(Display * dpy, GLXContext context);
+typedef unsigned int (GLAPIENTRY *PFNGLXGETAGPOFFSETMESAPROC)(const void * pointer);
+typedef const char * (GLAPIENTRY *PFNGLXGETCLIENTSTRINGPROC)(Display * dpy, int name);
+typedef int (GLAPIENTRY *PFNGLXGETCONFIGPROC)(Display * dpy, XVisualInfo * visual, int attrib, int * value);
+typedef unsigned int (GLAPIENTRY *PFNGLXGETCONTEXTGPUIDAMDPROC)(GLXContext ctx);
+typedef GLXContextID (GLAPIENTRY *PFNGLXGETCONTEXTIDEXTPROC)(const GLXContext context);
+typedef GLXContext (GLAPIENTRY *PFNGLXGETCURRENTASSOCIATEDCONTEXTAMDPROC)(void);
+typedef GLXContext (GLAPIENTRY *PFNGLXGETCURRENTCONTEXTPROC)(void);
+typedef Display * (GLAPIENTRY *PFNGLXGETCURRENTDISPLAYPROC)(void);
+typedef Display * (GLAPIENTRY *PFNGLXGETCURRENTDISPLAYEXTPROC)(void);
+typedef GLXDrawable (GLAPIENTRY *PFNGLXGETCURRENTDRAWABLEPROC)(void);
+typedef GLXDrawable (GLAPIENTRY *PFNGLXGETCURRENTREADDRAWABLEPROC)(void);
+typedef GLXDrawable (GLAPIENTRY *PFNGLXGETCURRENTREADDRAWABLESGIPROC)(void);
+typedef int (GLAPIENTRY *PFNGLXGETFBCONFIGATTRIBPROC)(Display * dpy, GLXFBConfig config, int attribute, int * value);
+typedef int (GLAPIENTRY *PFNGLXGETFBCONFIGATTRIBSGIXPROC)(Display * dpy, GLXFBConfigSGIX config, int attribute, int * value);
+typedef GLXFBConfigSGIX (GLAPIENTRY *PFNGLXGETFBCONFIGFROMVISUALSGIXPROC)(Display * dpy, XVisualInfo * vis);
+typedef GLXFBConfig * (GLAPIENTRY *PFNGLXGETFBCONFIGSPROC)(Display * dpy, int screen, int * nelements);
+typedef unsigned int (GLAPIENTRY *PFNGLXGETGPUIDSAMDPROC)(unsigned int maxCount, unsigned int * ids);
+typedef int (GLAPIENTRY *PFNGLXGETGPUINFOAMDPROC)(unsigned int id, int property, GLenum dataType, unsigned int size, void * data);
+typedef Bool (GLAPIENTRY *PFNGLXGETMSCRATEOMLPROC)(Display * dpy, GLXDrawable drawable, int32_t * numerator, int32_t * denominator);
+typedef __GLXextFuncPtr (GLAPIENTRY *PFNGLXGETPROCADDRESSPROC)(const GLubyte * procName);
+typedef __GLXextFuncPtr (GLAPIENTRY *PFNGLXGETPROCADDRESSARBPROC)(const GLubyte * procName);
+typedef void (GLAPIENTRY *PFNGLXGETSELECTEDEVENTPROC)(Display * dpy, GLXDrawable draw, unsigned long * event_mask);
+typedef void (GLAPIENTRY *PFNGLXGETSELECTEDEVENTSGIXPROC)(Display * dpy, GLXDrawable drawable, unsigned long * mask);
+typedef int (GLAPIENTRY *PFNGLXGETSWAPINTERVALMESAPROC)(void);
+typedef Bool (GLAPIENTRY *PFNGLXGETSYNCVALUESOMLPROC)(Display * dpy, GLXDrawable drawable, int64_t * ust, int64_t * msc, int64_t * sbc);
+typedef Status (GLAPIENTRY *PFNGLXGETTRANSPARENTINDEXSUNPROC)(Display * dpy, Window overlay, Window underlay, unsigned long * pTransparentIndex);
+typedef int (GLAPIENTRY *PFNGLXGETVIDEODEVICENVPROC)(Display * dpy, int screen, int numVideoDevices, GLXVideoDeviceNV * pVideoDevice);
+typedef int (GLAPIENTRY *PFNGLXGETVIDEOINFONVPROC)(Display * dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long * pulCounterOutputPbuffer, unsigned long * pulCounterOutputVideo);
+typedef int (GLAPIENTRY *PFNGLXGETVIDEOSYNCSGIPROC)(unsigned int * count);
+typedef XVisualInfo * (GLAPIENTRY *PFNGLXGETVISUALFROMFBCONFIGPROC)(Display * dpy, GLXFBConfig config);
+typedef XVisualInfo * (GLAPIENTRY *PFNGLXGETVISUALFROMFBCONFIGSGIXPROC)(Display * dpy, GLXFBConfigSGIX config);
+typedef int (GLAPIENTRY *PFNGLXHYPERPIPEATTRIBSGIXPROC)(Display * dpy, int timeSlice, int attrib, int size, void * attribList);
+typedef int (GLAPIENTRY *PFNGLXHYPERPIPECONFIGSGIXPROC)(Display * dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX * cfg, int * hpId);
+typedef GLXContext (GLAPIENTRY *PFNGLXIMPORTCONTEXTEXTPROC)(Display * dpy, GLXContextID contextID);
+typedef Bool (GLAPIENTRY *PFNGLXISDIRECTPROC)(Display * dpy, GLXContext ctx);
+typedef Bool (GLAPIENTRY *PFNGLXJOINSWAPGROUPNVPROC)(Display * dpy, GLXDrawable drawable, GLuint group);
+typedef void (GLAPIENTRY *PFNGLXJOINSWAPGROUPSGIXPROC)(Display * dpy, GLXDrawable drawable, GLXDrawable member);
+typedef void (GLAPIENTRY *PFNGLXLOCKVIDEOCAPTUREDEVICENVPROC)(Display * dpy, GLXVideoCaptureDeviceNV device);
+typedef Bool (GLAPIENTRY *PFNGLXMAKEASSOCIATEDCONTEXTCURRENTAMDPROC)(GLXContext ctx);
+typedef Bool (GLAPIENTRY *PFNGLXMAKECONTEXTCURRENTPROC)(Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+typedef Bool (GLAPIENTRY *PFNGLXMAKECURRENTPROC)(Display * dpy, GLXDrawable drawable, GLXContext ctx);
+typedef Bool (GLAPIENTRY *PFNGLXMAKECURRENTREADSGIPROC)(Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+typedef void (GLAPIENTRY *PFNGLXNAMEDCOPYBUFFERSUBDATANVPROC)(Display * dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+typedef int (GLAPIENTRY *PFNGLXQUERYCHANNELDELTASSGIXPROC)(Display * display, int screen, int channel, int * x, int * y, int * w, int * h);
+typedef int (GLAPIENTRY *PFNGLXQUERYCHANNELRECTSGIXPROC)(Display * display, int screen, int channel, int * dx, int * dy, int * dw, int * dh);
+typedef int (GLAPIENTRY *PFNGLXQUERYCONTEXTPROC)(Display * dpy, GLXContext ctx, int attribute, int * value);
+typedef int (GLAPIENTRY *PFNGLXQUERYCONTEXTINFOEXTPROC)(Display * dpy, GLXContext context, int attribute, int * value);
+typedef Bool (GLAPIENTRY *PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC)(int attribute, unsigned int * value);
+typedef const char * (GLAPIENTRY *PFNGLXQUERYCURRENTRENDERERSTRINGMESAPROC)(int attribute);
+typedef void (GLAPIENTRY *PFNGLXQUERYDRAWABLEPROC)(Display * dpy, GLXDrawable draw, int attribute, unsigned int * value);
+typedef Bool (GLAPIENTRY *PFNGLXQUERYEXTENSIONPROC)(Display * dpy, int * errorb, int * event);
+typedef const char * (GLAPIENTRY *PFNGLXQUERYEXTENSIONSSTRINGPROC)(Display * dpy, int screen);
+typedef Bool (GLAPIENTRY *PFNGLXQUERYFRAMECOUNTNVPROC)(Display * dpy, int screen, GLuint * count);
+typedef void (GLAPIENTRY *PFNGLXQUERYGLXPBUFFERSGIXPROC)(Display * dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int * value);
+typedef int (GLAPIENTRY *PFNGLXQUERYHYPERPIPEATTRIBSGIXPROC)(Display * dpy, int timeSlice, int attrib, int size, void * returnAttribList);
+typedef int (GLAPIENTRY *PFNGLXQUERYHYPERPIPEBESTATTRIBSGIXPROC)(Display * dpy, int timeSlice, int attrib, int size, void * attribList, void * returnAttribList);
+typedef GLXHyperpipeConfigSGIX * (GLAPIENTRY *PFNGLXQUERYHYPERPIPECONFIGSGIXPROC)(Display * dpy, int hpId, int * npipes);
+typedef GLXHyperpipeNetworkSGIX * (GLAPIENTRY *PFNGLXQUERYHYPERPIPENETWORKSGIXPROC)(Display * dpy, int * npipes);
+typedef Bool (GLAPIENTRY *PFNGLXQUERYMAXSWAPBARRIERSSGIXPROC)(Display * dpy, int screen, int * max);
+typedef Bool (GLAPIENTRY *PFNGLXQUERYMAXSWAPGROUPSNVPROC)(Display * dpy, int screen, GLuint * maxGroups, GLuint * maxBarriers);
+typedef Bool (GLAPIENTRY *PFNGLXQUERYRENDERERINTEGERMESAPROC)(Display * dpy, int screen, int renderer, int attribute, unsigned int * value);
+typedef const char * (GLAPIENTRY *PFNGLXQUERYRENDERERSTRINGMESAPROC)(Display * dpy, int screen, int renderer, int attribute);
+typedef const char * (GLAPIENTRY *PFNGLXQUERYSERVERSTRINGPROC)(Display * dpy, int screen, int name);
+typedef Bool (GLAPIENTRY *PFNGLXQUERYSWAPGROUPNVPROC)(Display * dpy, GLXDrawable drawable, GLuint * group, GLuint * barrier);
+typedef Bool (GLAPIENTRY *PFNGLXQUERYVERSIONPROC)(Display * dpy, int * maj, int * min);
+typedef int (GLAPIENTRY *PFNGLXQUERYVIDEOCAPTUREDEVICENVPROC)(Display * dpy, GLXVideoCaptureDeviceNV device, int attribute, int * value);
+typedef Bool (GLAPIENTRY *PFNGLXRELEASEBUFFERSMESAPROC)(Display * dpy, GLXDrawable drawable);
+typedef void (GLAPIENTRY *PFNGLXRELEASETEXIMAGEEXTPROC)(Display * dpy, GLXDrawable drawable, int buffer);
+typedef void (GLAPIENTRY *PFNGLXRELEASEVIDEOCAPTUREDEVICENVPROC)(Display * dpy, GLXVideoCaptureDeviceNV device);
+typedef int (GLAPIENTRY *PFNGLXRELEASEVIDEODEVICENVPROC)(Display * dpy, int screen, GLXVideoDeviceNV VideoDevice);
+typedef int (GLAPIENTRY *PFNGLXRELEASEVIDEOIMAGENVPROC)(Display * dpy, GLXPbuffer pbuf);
+typedef Bool (GLAPIENTRY *PFNGLXRESETFRAMECOUNTNVPROC)(Display * dpy, int screen);
+typedef void (GLAPIENTRY *PFNGLXSELECTEVENTPROC)(Display * dpy, GLXDrawable draw, unsigned long event_mask);
+typedef void (GLAPIENTRY *PFNGLXSELECTEVENTSGIXPROC)(Display * dpy, GLXDrawable drawable, unsigned long mask);
+typedef int (GLAPIENTRY *PFNGLXSENDPBUFFERTOVIDEONVPROC)(Display * dpy, GLXPbuffer pbuf, int iBufferType, unsigned long * pulCounterPbuffer, GLboolean bBlock);
+typedef GLboolean (GLAPIENTRY *PFNGLXSET3DFXMODEMESAPROC)(GLint mode);
+typedef void (GLAPIENTRY *PFNGLXSWAPBUFFERSPROC)(Display * dpy, GLXDrawable drawable);
+typedef int64_t (GLAPIENTRY *PFNGLXSWAPBUFFERSMSCOMLPROC)(Display * dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
+typedef void (GLAPIENTRY *PFNGLXSWAPINTERVALEXTPROC)(Display * dpy, GLXDrawable drawable, int interval);
+typedef int (GLAPIENTRY *PFNGLXSWAPINTERVALMESAPROC)(unsigned int interval);
+typedef int (GLAPIENTRY *PFNGLXSWAPINTERVALSGIPROC)(int interval);
+typedef void (GLAPIENTRY *PFNGLXUSEXFONTPROC)(Font font, int first, int count, int list);
+typedef Bool (GLAPIENTRY *PFNGLXWAITFORMSCOMLPROC)(Display * dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t * ust, int64_t * msc, int64_t * sbc);
+typedef Bool (GLAPIENTRY *PFNGLXWAITFORSBCOMLPROC)(Display * dpy, GLXDrawable drawable, int64_t target_sbc, int64_t * ust, int64_t * msc, int64_t * sbc);
+typedef void (GLAPIENTRY *PFNGLXWAITGLPROC)(void);
+typedef int (GLAPIENTRY *PFNGLXWAITVIDEOSYNCSGIPROC)(int divisor, int remainder, unsigned int * count);
+typedef void (GLAPIENTRY *PFNGLXWAITXPROC)(void);
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXBindChannelToWindowSGIX)(Display * display, int screen, int channel, Window window);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXBindHyperpipeSGIX)(Display * dpy, int hpId);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXBindSwapBarrierNV)(Display * dpy, GLuint group, GLuint barrier);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXBindSwapBarrierSGIX)(Display * dpy, GLXDrawable drawable, int barrier);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXBindTexImageEXT)(Display * dpy, GLXDrawable drawable, int buffer, const int * attrib_list);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXBindVideoCaptureDeviceNV)(Display * dpy, unsigned int video_capture_slot, GLXVideoCaptureDeviceNV device);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXBindVideoDeviceNV)(Display * dpy, unsigned int video_slot, unsigned int video_device, const int * attrib_list);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXBindVideoImageNV)(Display * dpy, GLXVideoDeviceNV VideoDevice, GLXPbuffer pbuf, int iVideoBuffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXBlitContextFramebufferAMD)(GLXContext dstCtx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXChannelRectSGIX)(Display * display, int screen, int channel, int x, int y, int w, int h);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXChannelRectSyncSGIX)(Display * display, int screen, int channel, GLenum synctype);
+
+EPOXY_PUBLIC GLXFBConfig * (EPOXY_CALLSPEC *epoxy_glXChooseFBConfig)(Display * dpy, int screen, const int * attrib_list, int * nelements);
+
+EPOXY_PUBLIC GLXFBConfigSGIX * (EPOXY_CALLSPEC *epoxy_glXChooseFBConfigSGIX)(Display * dpy, int screen, int * attrib_list, int * nelements);
+
+EPOXY_PUBLIC XVisualInfo * (EPOXY_CALLSPEC *epoxy_glXChooseVisual)(Display * dpy, int screen, int * attribList);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXCopyBufferSubDataNV)(Display * dpy, GLXContext readCtx, GLXContext writeCtx, GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXCopyContext)(Display * dpy, GLXContext src, GLXContext dst, unsigned long mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXCopyImageSubDataNV)(Display * dpy, GLXContext srcCtx, GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLXContext dstCtx, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXCopySubBufferMESA)(Display * dpy, GLXDrawable drawable, int x, int y, int width, int height);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXCreateAssociatedContextAMD)(unsigned int id, GLXContext share_list);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXCreateAssociatedContextAttribsAMD)(unsigned int id, GLXContext share_context, const int * attribList);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXCreateContext)(Display * dpy, XVisualInfo * vis, GLXContext shareList, Bool direct);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXCreateContextAttribsARB)(Display * dpy, GLXFBConfig config, GLXContext share_context, Bool direct, const int * attrib_list);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXCreateContextWithConfigSGIX)(Display * dpy, GLXFBConfigSGIX config, int render_type, GLXContext share_list, Bool direct);
+
+EPOXY_PUBLIC GLXPbufferSGIX (EPOXY_CALLSPEC *epoxy_glXCreateGLXPbufferSGIX)(Display * dpy, GLXFBConfigSGIX config, unsigned int width, unsigned int height, int * attrib_list);
+
+EPOXY_PUBLIC GLXPixmap (EPOXY_CALLSPEC *epoxy_glXCreateGLXPixmap)(Display * dpy, XVisualInfo * visual, Pixmap pixmap);
+
+EPOXY_PUBLIC GLXPixmap (EPOXY_CALLSPEC *epoxy_glXCreateGLXPixmapMESA)(Display * dpy, XVisualInfo * visual, Pixmap pixmap, Colormap cmap);
+
+EPOXY_PUBLIC GLXPixmap (EPOXY_CALLSPEC *epoxy_glXCreateGLXPixmapWithConfigSGIX)(Display * dpy, GLXFBConfigSGIX config, Pixmap pixmap);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXCreateNewContext)(Display * dpy, GLXFBConfig config, int render_type, GLXContext share_list, Bool direct);
+
+EPOXY_PUBLIC GLXPbuffer (EPOXY_CALLSPEC *epoxy_glXCreatePbuffer)(Display * dpy, GLXFBConfig config, const int * attrib_list);
+
+EPOXY_PUBLIC GLXPixmap (EPOXY_CALLSPEC *epoxy_glXCreatePixmap)(Display * dpy, GLXFBConfig config, Pixmap pixmap, const int * attrib_list);
+
+EPOXY_PUBLIC GLXWindow (EPOXY_CALLSPEC *epoxy_glXCreateWindow)(Display * dpy, GLXFBConfig config, Window win, const int * attrib_list);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXCushionSGI)(Display * dpy, Window window, float cushion);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXDelayBeforeSwapNV)(Display * dpy, GLXDrawable drawable, GLfloat seconds);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXDeleteAssociatedContextAMD)(GLXContext ctx);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXDestroyContext)(Display * dpy, GLXContext ctx);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXDestroyGLXPbufferSGIX)(Display * dpy, GLXPbufferSGIX pbuf);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXDestroyGLXPixmap)(Display * dpy, GLXPixmap pixmap);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXDestroyGLXVideoSourceSGIX)(Display * dpy, GLXVideoSourceSGIX glxvideosource);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXDestroyHyperpipeConfigSGIX)(Display * dpy, int hpId);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXDestroyPbuffer)(Display * dpy, GLXPbuffer pbuf);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXDestroyPixmap)(Display * dpy, GLXPixmap pixmap);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXDestroyWindow)(Display * dpy, GLXWindow win);
+
+EPOXY_PUBLIC GLXVideoCaptureDeviceNV * (EPOXY_CALLSPEC *epoxy_glXEnumerateVideoCaptureDevicesNV)(Display * dpy, int screen, int * nelements);
+
+EPOXY_PUBLIC unsigned int * (EPOXY_CALLSPEC *epoxy_glXEnumerateVideoDevicesNV)(Display * dpy, int screen, int * nelements);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXFreeContextEXT)(Display * dpy, GLXContext context);
+
+EPOXY_PUBLIC unsigned int (EPOXY_CALLSPEC *epoxy_glXGetAGPOffsetMESA)(const void * pointer);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_glXGetClientString)(Display * dpy, int name);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXGetConfig)(Display * dpy, XVisualInfo * visual, int attrib, int * value);
+
+EPOXY_PUBLIC unsigned int (EPOXY_CALLSPEC *epoxy_glXGetContextGPUIDAMD)(GLXContext ctx);
+
+EPOXY_PUBLIC GLXContextID (EPOXY_CALLSPEC *epoxy_glXGetContextIDEXT)(const GLXContext context);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXGetCurrentAssociatedContextAMD)(void);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXGetCurrentContext)(void);
+
+EPOXY_PUBLIC Display * (EPOXY_CALLSPEC *epoxy_glXGetCurrentDisplay)(void);
+
+EPOXY_PUBLIC Display * (EPOXY_CALLSPEC *epoxy_glXGetCurrentDisplayEXT)(void);
+
+EPOXY_PUBLIC GLXDrawable (EPOXY_CALLSPEC *epoxy_glXGetCurrentDrawable)(void);
+
+EPOXY_PUBLIC GLXDrawable (EPOXY_CALLSPEC *epoxy_glXGetCurrentReadDrawable)(void);
+
+EPOXY_PUBLIC GLXDrawable (EPOXY_CALLSPEC *epoxy_glXGetCurrentReadDrawableSGI)(void);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXGetFBConfigAttrib)(Display * dpy, GLXFBConfig config, int attribute, int * value);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXGetFBConfigAttribSGIX)(Display * dpy, GLXFBConfigSGIX config, int attribute, int * value);
+
+EPOXY_PUBLIC GLXFBConfigSGIX (EPOXY_CALLSPEC *epoxy_glXGetFBConfigFromVisualSGIX)(Display * dpy, XVisualInfo * vis);
+
+EPOXY_PUBLIC GLXFBConfig * (EPOXY_CALLSPEC *epoxy_glXGetFBConfigs)(Display * dpy, int screen, int * nelements);
+
+EPOXY_PUBLIC unsigned int (EPOXY_CALLSPEC *epoxy_glXGetGPUIDsAMD)(unsigned int maxCount, unsigned int * ids);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXGetGPUInfoAMD)(unsigned int id, int property, GLenum dataType, unsigned int size, void * data);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXGetMscRateOML)(Display * dpy, GLXDrawable drawable, int32_t * numerator, int32_t * denominator);
+
+EPOXY_PUBLIC __GLXextFuncPtr (EPOXY_CALLSPEC *epoxy_glXGetProcAddress)(const GLubyte * procName);
+
+EPOXY_PUBLIC __GLXextFuncPtr (EPOXY_CALLSPEC *epoxy_glXGetProcAddressARB)(const GLubyte * procName);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXGetSelectedEvent)(Display * dpy, GLXDrawable draw, unsigned long * event_mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXGetSelectedEventSGIX)(Display * dpy, GLXDrawable drawable, unsigned long * mask);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXGetSwapIntervalMESA)(void);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXGetSyncValuesOML)(Display * dpy, GLXDrawable drawable, int64_t * ust, int64_t * msc, int64_t * sbc);
+
+EPOXY_PUBLIC Status (EPOXY_CALLSPEC *epoxy_glXGetTransparentIndexSUN)(Display * dpy, Window overlay, Window underlay, unsigned long * pTransparentIndex);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXGetVideoDeviceNV)(Display * dpy, int screen, int numVideoDevices, GLXVideoDeviceNV * pVideoDevice);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXGetVideoInfoNV)(Display * dpy, int screen, GLXVideoDeviceNV VideoDevice, unsigned long * pulCounterOutputPbuffer, unsigned long * pulCounterOutputVideo);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXGetVideoSyncSGI)(unsigned int * count);
+
+EPOXY_PUBLIC XVisualInfo * (EPOXY_CALLSPEC *epoxy_glXGetVisualFromFBConfig)(Display * dpy, GLXFBConfig config);
+
+EPOXY_PUBLIC XVisualInfo * (EPOXY_CALLSPEC *epoxy_glXGetVisualFromFBConfigSGIX)(Display * dpy, GLXFBConfigSGIX config);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXHyperpipeAttribSGIX)(Display * dpy, int timeSlice, int attrib, int size, void * attribList);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXHyperpipeConfigSGIX)(Display * dpy, int networkId, int npipes, GLXHyperpipeConfigSGIX * cfg, int * hpId);
+
+EPOXY_PUBLIC GLXContext (EPOXY_CALLSPEC *epoxy_glXImportContextEXT)(Display * dpy, GLXContextID contextID);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXIsDirect)(Display * dpy, GLXContext ctx);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXJoinSwapGroupNV)(Display * dpy, GLXDrawable drawable, GLuint group);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXJoinSwapGroupSGIX)(Display * dpy, GLXDrawable drawable, GLXDrawable member);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXLockVideoCaptureDeviceNV)(Display * dpy, GLXVideoCaptureDeviceNV device);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXMakeAssociatedContextCurrentAMD)(GLXContext ctx);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXMakeContextCurrent)(Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXMakeCurrent)(Display * dpy, GLXDrawable drawable, GLXContext ctx);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXMakeCurrentReadSGI)(Display * dpy, GLXDrawable draw, GLXDrawable read, GLXContext ctx);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXNamedCopyBufferSubDataNV)(Display * dpy, GLXContext readCtx, GLXContext writeCtx, GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXQueryChannelDeltasSGIX)(Display * display, int screen, int channel, int * x, int * y, int * w, int * h);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXQueryChannelRectSGIX)(Display * display, int screen, int channel, int * dx, int * dy, int * dw, int * dh);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXQueryContext)(Display * dpy, GLXContext ctx, int attribute, int * value);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXQueryContextInfoEXT)(Display * dpy, GLXContext context, int attribute, int * value);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXQueryCurrentRendererIntegerMESA)(int attribute, unsigned int * value);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_glXQueryCurrentRendererStringMESA)(int attribute);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXQueryDrawable)(Display * dpy, GLXDrawable draw, int attribute, unsigned int * value);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXQueryExtension)(Display * dpy, int * errorb, int * event);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_glXQueryExtensionsString)(Display * dpy, int screen);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXQueryFrameCountNV)(Display * dpy, int screen, GLuint * count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXQueryGLXPbufferSGIX)(Display * dpy, GLXPbufferSGIX pbuf, int attribute, unsigned int * value);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXQueryHyperpipeAttribSGIX)(Display * dpy, int timeSlice, int attrib, int size, void * returnAttribList);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXQueryHyperpipeBestAttribSGIX)(Display * dpy, int timeSlice, int attrib, int size, void * attribList, void * returnAttribList);
+
+EPOXY_PUBLIC GLXHyperpipeConfigSGIX * (EPOXY_CALLSPEC *epoxy_glXQueryHyperpipeConfigSGIX)(Display * dpy, int hpId, int * npipes);
+
+EPOXY_PUBLIC GLXHyperpipeNetworkSGIX * (EPOXY_CALLSPEC *epoxy_glXQueryHyperpipeNetworkSGIX)(Display * dpy, int * npipes);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXQueryMaxSwapBarriersSGIX)(Display * dpy, int screen, int * max);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXQueryMaxSwapGroupsNV)(Display * dpy, int screen, GLuint * maxGroups, GLuint * maxBarriers);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXQueryRendererIntegerMESA)(Display * dpy, int screen, int renderer, int attribute, unsigned int * value);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_glXQueryRendererStringMESA)(Display * dpy, int screen, int renderer, int attribute);
+
+EPOXY_PUBLIC const char * (EPOXY_CALLSPEC *epoxy_glXQueryServerString)(Display * dpy, int screen, int name);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXQuerySwapGroupNV)(Display * dpy, GLXDrawable drawable, GLuint * group, GLuint * barrier);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXQueryVersion)(Display * dpy, int * maj, int * min);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXQueryVideoCaptureDeviceNV)(Display * dpy, GLXVideoCaptureDeviceNV device, int attribute, int * value);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXReleaseBuffersMESA)(Display * dpy, GLXDrawable drawable);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXReleaseTexImageEXT)(Display * dpy, GLXDrawable drawable, int buffer);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXReleaseVideoCaptureDeviceNV)(Display * dpy, GLXVideoCaptureDeviceNV device);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXReleaseVideoDeviceNV)(Display * dpy, int screen, GLXVideoDeviceNV VideoDevice);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXReleaseVideoImageNV)(Display * dpy, GLXPbuffer pbuf);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXResetFrameCountNV)(Display * dpy, int screen);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXSelectEvent)(Display * dpy, GLXDrawable draw, unsigned long event_mask);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXSelectEventSGIX)(Display * dpy, GLXDrawable drawable, unsigned long mask);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXSendPbufferToVideoNV)(Display * dpy, GLXPbuffer pbuf, int iBufferType, unsigned long * pulCounterPbuffer, GLboolean bBlock);
+
+EPOXY_PUBLIC GLboolean (EPOXY_CALLSPEC *epoxy_glXSet3DfxModeMESA)(GLint mode);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXSwapBuffers)(Display * dpy, GLXDrawable drawable);
+
+EPOXY_PUBLIC int64_t (EPOXY_CALLSPEC *epoxy_glXSwapBuffersMscOML)(Display * dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXSwapIntervalEXT)(Display * dpy, GLXDrawable drawable, int interval);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXSwapIntervalMESA)(unsigned int interval);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXSwapIntervalSGI)(int interval);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXUseXFont)(Font font, int first, int count, int list);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXWaitForMscOML)(Display * dpy, GLXDrawable drawable, int64_t target_msc, int64_t divisor, int64_t remainder, int64_t * ust, int64_t * msc, int64_t * sbc);
+
+EPOXY_PUBLIC Bool (EPOXY_CALLSPEC *epoxy_glXWaitForSbcOML)(Display * dpy, GLXDrawable drawable, int64_t target_sbc, int64_t * ust, int64_t * msc, int64_t * sbc);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXWaitGL)(void);
+
+EPOXY_PUBLIC int (EPOXY_CALLSPEC *epoxy_glXWaitVideoSyncSGI)(int divisor, int remainder, unsigned int * count);
+
+EPOXY_PUBLIC void (EPOXY_CALLSPEC *epoxy_glXWaitX)(void);
+
+#define glXBindChannelToWindowSGIX epoxy_glXBindChannelToWindowSGIX
+#define glXBindHyperpipeSGIX epoxy_glXBindHyperpipeSGIX
+#define glXBindSwapBarrierNV epoxy_glXBindSwapBarrierNV
+#define glXBindSwapBarrierSGIX epoxy_glXBindSwapBarrierSGIX
+#define glXBindTexImageEXT epoxy_glXBindTexImageEXT
+#define glXBindVideoCaptureDeviceNV epoxy_glXBindVideoCaptureDeviceNV
+#define glXBindVideoDeviceNV epoxy_glXBindVideoDeviceNV
+#define glXBindVideoImageNV epoxy_glXBindVideoImageNV
+#define glXBlitContextFramebufferAMD epoxy_glXBlitContextFramebufferAMD
+#define glXChannelRectSGIX epoxy_glXChannelRectSGIX
+#define glXChannelRectSyncSGIX epoxy_glXChannelRectSyncSGIX
+#define glXChooseFBConfig epoxy_glXChooseFBConfig
+#define glXChooseFBConfigSGIX epoxy_glXChooseFBConfigSGIX
+#define glXChooseVisual epoxy_glXChooseVisual
+#define glXCopyBufferSubDataNV epoxy_glXCopyBufferSubDataNV
+#define glXCopyContext epoxy_glXCopyContext
+#define glXCopyImageSubDataNV epoxy_glXCopyImageSubDataNV
+#define glXCopySubBufferMESA epoxy_glXCopySubBufferMESA
+#define glXCreateAssociatedContextAMD epoxy_glXCreateAssociatedContextAMD
+#define glXCreateAssociatedContextAttribsAMD epoxy_glXCreateAssociatedContextAttribsAMD
+#define glXCreateContext epoxy_glXCreateContext
+#define glXCreateContextAttribsARB epoxy_glXCreateContextAttribsARB
+#define glXCreateContextWithConfigSGIX epoxy_glXCreateContextWithConfigSGIX
+#define glXCreateGLXPbufferSGIX epoxy_glXCreateGLXPbufferSGIX
+#define glXCreateGLXPixmap epoxy_glXCreateGLXPixmap
+#define glXCreateGLXPixmapMESA epoxy_glXCreateGLXPixmapMESA
+#define glXCreateGLXPixmapWithConfigSGIX epoxy_glXCreateGLXPixmapWithConfigSGIX
+#define glXCreateNewContext epoxy_glXCreateNewContext
+#define glXCreatePbuffer epoxy_glXCreatePbuffer
+#define glXCreatePixmap epoxy_glXCreatePixmap
+#define glXCreateWindow epoxy_glXCreateWindow
+#define glXCushionSGI epoxy_glXCushionSGI
+#define glXDelayBeforeSwapNV epoxy_glXDelayBeforeSwapNV
+#define glXDeleteAssociatedContextAMD epoxy_glXDeleteAssociatedContextAMD
+#define glXDestroyContext epoxy_glXDestroyContext
+#define glXDestroyGLXPbufferSGIX epoxy_glXDestroyGLXPbufferSGIX
+#define glXDestroyGLXPixmap epoxy_glXDestroyGLXPixmap
+#define glXDestroyGLXVideoSourceSGIX epoxy_glXDestroyGLXVideoSourceSGIX
+#define glXDestroyHyperpipeConfigSGIX epoxy_glXDestroyHyperpipeConfigSGIX
+#define glXDestroyPbuffer epoxy_glXDestroyPbuffer
+#define glXDestroyPixmap epoxy_glXDestroyPixmap
+#define glXDestroyWindow epoxy_glXDestroyWindow
+#define glXEnumerateVideoCaptureDevicesNV epoxy_glXEnumerateVideoCaptureDevicesNV
+#define glXEnumerateVideoDevicesNV epoxy_glXEnumerateVideoDevicesNV
+#define glXFreeContextEXT epoxy_glXFreeContextEXT
+#define glXGetAGPOffsetMESA epoxy_glXGetAGPOffsetMESA
+#define glXGetClientString epoxy_glXGetClientString
+#define glXGetConfig epoxy_glXGetConfig
+#define glXGetContextGPUIDAMD epoxy_glXGetContextGPUIDAMD
+#define glXGetContextIDEXT epoxy_glXGetContextIDEXT
+#define glXGetCurrentAssociatedContextAMD epoxy_glXGetCurrentAssociatedContextAMD
+#define glXGetCurrentContext epoxy_glXGetCurrentContext
+#define glXGetCurrentDisplay epoxy_glXGetCurrentDisplay
+#define glXGetCurrentDisplayEXT epoxy_glXGetCurrentDisplayEXT
+#define glXGetCurrentDrawable epoxy_glXGetCurrentDrawable
+#define glXGetCurrentReadDrawable epoxy_glXGetCurrentReadDrawable
+#define glXGetCurrentReadDrawableSGI epoxy_glXGetCurrentReadDrawableSGI
+#define glXGetFBConfigAttrib epoxy_glXGetFBConfigAttrib
+#define glXGetFBConfigAttribSGIX epoxy_glXGetFBConfigAttribSGIX
+#define glXGetFBConfigFromVisualSGIX epoxy_glXGetFBConfigFromVisualSGIX
+#define glXGetFBConfigs epoxy_glXGetFBConfigs
+#define glXGetGPUIDsAMD epoxy_glXGetGPUIDsAMD
+#define glXGetGPUInfoAMD epoxy_glXGetGPUInfoAMD
+#define glXGetMscRateOML epoxy_glXGetMscRateOML
+#define glXGetProcAddress epoxy_glXGetProcAddress
+#define glXGetProcAddressARB epoxy_glXGetProcAddressARB
+#define glXGetSelectedEvent epoxy_glXGetSelectedEvent
+#define glXGetSelectedEventSGIX epoxy_glXGetSelectedEventSGIX
+#define glXGetSwapIntervalMESA epoxy_glXGetSwapIntervalMESA
+#define glXGetSyncValuesOML epoxy_glXGetSyncValuesOML
+#define glXGetTransparentIndexSUN epoxy_glXGetTransparentIndexSUN
+#define glXGetVideoDeviceNV epoxy_glXGetVideoDeviceNV
+#define glXGetVideoInfoNV epoxy_glXGetVideoInfoNV
+#define glXGetVideoSyncSGI epoxy_glXGetVideoSyncSGI
+#define glXGetVisualFromFBConfig epoxy_glXGetVisualFromFBConfig
+#define glXGetVisualFromFBConfigSGIX epoxy_glXGetVisualFromFBConfigSGIX
+#define glXHyperpipeAttribSGIX epoxy_glXHyperpipeAttribSGIX
+#define glXHyperpipeConfigSGIX epoxy_glXHyperpipeConfigSGIX
+#define glXImportContextEXT epoxy_glXImportContextEXT
+#define glXIsDirect epoxy_glXIsDirect
+#define glXJoinSwapGroupNV epoxy_glXJoinSwapGroupNV
+#define glXJoinSwapGroupSGIX epoxy_glXJoinSwapGroupSGIX
+#define glXLockVideoCaptureDeviceNV epoxy_glXLockVideoCaptureDeviceNV
+#define glXMakeAssociatedContextCurrentAMD epoxy_glXMakeAssociatedContextCurrentAMD
+#define glXMakeContextCurrent epoxy_glXMakeContextCurrent
+#define glXMakeCurrent epoxy_glXMakeCurrent
+#define glXMakeCurrentReadSGI epoxy_glXMakeCurrentReadSGI
+#define glXNamedCopyBufferSubDataNV epoxy_glXNamedCopyBufferSubDataNV
+#define glXQueryChannelDeltasSGIX epoxy_glXQueryChannelDeltasSGIX
+#define glXQueryChannelRectSGIX epoxy_glXQueryChannelRectSGIX
+#define glXQueryContext epoxy_glXQueryContext
+#define glXQueryContextInfoEXT epoxy_glXQueryContextInfoEXT
+#define glXQueryCurrentRendererIntegerMESA epoxy_glXQueryCurrentRendererIntegerMESA
+#define glXQueryCurrentRendererStringMESA epoxy_glXQueryCurrentRendererStringMESA
+#define glXQueryDrawable epoxy_glXQueryDrawable
+#define glXQueryExtension epoxy_glXQueryExtension
+#define glXQueryExtensionsString epoxy_glXQueryExtensionsString
+#define glXQueryFrameCountNV epoxy_glXQueryFrameCountNV
+#define glXQueryGLXPbufferSGIX epoxy_glXQueryGLXPbufferSGIX
+#define glXQueryHyperpipeAttribSGIX epoxy_glXQueryHyperpipeAttribSGIX
+#define glXQueryHyperpipeBestAttribSGIX epoxy_glXQueryHyperpipeBestAttribSGIX
+#define glXQueryHyperpipeConfigSGIX epoxy_glXQueryHyperpipeConfigSGIX
+#define glXQueryHyperpipeNetworkSGIX epoxy_glXQueryHyperpipeNetworkSGIX
+#define glXQueryMaxSwapBarriersSGIX epoxy_glXQueryMaxSwapBarriersSGIX
+#define glXQueryMaxSwapGroupsNV epoxy_glXQueryMaxSwapGroupsNV
+#define glXQueryRendererIntegerMESA epoxy_glXQueryRendererIntegerMESA
+#define glXQueryRendererStringMESA epoxy_glXQueryRendererStringMESA
+#define glXQueryServerString epoxy_glXQueryServerString
+#define glXQuerySwapGroupNV epoxy_glXQuerySwapGroupNV
+#define glXQueryVersion epoxy_glXQueryVersion
+#define glXQueryVideoCaptureDeviceNV epoxy_glXQueryVideoCaptureDeviceNV
+#define glXReleaseBuffersMESA epoxy_glXReleaseBuffersMESA
+#define glXReleaseTexImageEXT epoxy_glXReleaseTexImageEXT
+#define glXReleaseVideoCaptureDeviceNV epoxy_glXReleaseVideoCaptureDeviceNV
+#define glXReleaseVideoDeviceNV epoxy_glXReleaseVideoDeviceNV
+#define glXReleaseVideoImageNV epoxy_glXReleaseVideoImageNV
+#define glXResetFrameCountNV epoxy_glXResetFrameCountNV
+#define glXSelectEvent epoxy_glXSelectEvent
+#define glXSelectEventSGIX epoxy_glXSelectEventSGIX
+#define glXSendPbufferToVideoNV epoxy_glXSendPbufferToVideoNV
+#define glXSet3DfxModeMESA epoxy_glXSet3DfxModeMESA
+#define glXSwapBuffers epoxy_glXSwapBuffers
+#define glXSwapBuffersMscOML epoxy_glXSwapBuffersMscOML
+#define glXSwapIntervalEXT epoxy_glXSwapIntervalEXT
+#define glXSwapIntervalMESA epoxy_glXSwapIntervalMESA
+#define glXSwapIntervalSGI epoxy_glXSwapIntervalSGI
+#define glXUseXFont epoxy_glXUseXFont
+#define glXWaitForMscOML epoxy_glXWaitForMscOML
+#define glXWaitForSbcOML epoxy_glXWaitForSbcOML
+#define glXWaitGL epoxy_glXWaitGL
+#define glXWaitVideoSyncSGI epoxy_glXWaitVideoSyncSGI
+#define glXWaitX epoxy_glXWaitX
diff --git a/third_party/epoxy/epoxy/khrplatform.h b/third_party/epoxy/epoxy/khrplatform.h
new file mode 100644
index 0000000000..dd22d92701
--- /dev/null
+++ b/third_party/epoxy/epoxy/khrplatform.h
@@ -0,0 +1,290 @@
+#ifndef __khrplatform_h_
+#define __khrplatform_h_
+
+/*
+** Copyright (c) 2008-2018 The Khronos Group Inc.
+**
+** Permission is hereby granted, free of charge, to any person obtaining a
+** copy of this software and/or associated documentation files (the
+** "Materials"), to deal in the Materials without restriction, including
+** without limitation the rights to use, copy, modify, merge, publish,
+** distribute, sublicense, and/or sell copies of the Materials, and to
+** permit persons to whom the Materials are furnished to do so, subject to
+** the following conditions:
+**
+** The above copyright notice and this permission notice shall be included
+** in all copies or substantial portions of the Materials.
+**
+** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+*/
+
+/* Khronos platform-specific types and definitions.
+ *
+ * The master copy of khrplatform.h is maintained in the Khronos EGL
+ * Registry repository at https://github.com/KhronosGroup/EGL-Registry
+ * The last semantic modification to khrplatform.h was at commit ID:
+ *      67a3e0864c2d75ea5287b9f3d2eb74a745936692
+ *
+ * Adopters may modify this file to suit their platform. Adopters are
+ * encouraged to submit platform specific modifications to the Khronos
+ * group so that they can be included in future versions of this file.
+ * Please submit changes by filing pull requests or issues on
+ * the EGL Registry repository linked above.
+ *
+ *
+ * See the Implementer's Guidelines for information about where this file
+ * should be located on your system and for more details of its use:
+ *    http://www.khronos.org/registry/implementers_guide.pdf
+ *
+ * This file should be included as
+ *        #include <KHR/khrplatform.h>
+ * by Khronos client API header files that use its types and defines.
+ *
+ * The types in khrplatform.h should only be used to define API-specific types.
+ *
+ * Types defined in khrplatform.h:
+ *    khronos_int8_t              signed   8  bit
+ *    khronos_uint8_t             unsigned 8  bit
+ *    khronos_int16_t             signed   16 bit
+ *    khronos_uint16_t            unsigned 16 bit
+ *    khronos_int32_t             signed   32 bit
+ *    khronos_uint32_t            unsigned 32 bit
+ *    khronos_int64_t             signed   64 bit
+ *    khronos_uint64_t            unsigned 64 bit
+ *    khronos_intptr_t            signed   same number of bits as a pointer
+ *    khronos_uintptr_t           unsigned same number of bits as a pointer
+ *    khronos_ssize_t             signed   size
+ *    khronos_usize_t             unsigned size
+ *    khronos_float_t             signed   32 bit floating point
+ *    khronos_time_ns_t           unsigned 64 bit time in nanoseconds
+ *    khronos_utime_nanoseconds_t unsigned time interval or absolute time in
+ *                                         nanoseconds
+ *    khronos_stime_nanoseconds_t signed time interval in nanoseconds
+ *    khronos_boolean_enum_t      enumerated boolean type. This should
+ *      only be used as a base type when a client API's boolean type is
+ *      an enum. Client APIs which use an integer or other type for
+ *      booleans cannot use this as the base type for their boolean.
+ *
+ * Tokens defined in khrplatform.h:
+ *
+ *    KHRONOS_FALSE, KHRONOS_TRUE Enumerated boolean false/true values.
+ *
+ *    KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0.
+ *    KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0.
+ *
+ * Calling convention macros defined in this file:
+ *    KHRONOS_APICALL
+ *    KHRONOS_APIENTRY
+ *    KHRONOS_APIATTRIBUTES
+ *
+ * These may be used in function prototypes as:
+ *
+ *      KHRONOS_APICALL void KHRONOS_APIENTRY funcname(
+ *                                  int arg1,
+ *                                  int arg2) KHRONOS_APIATTRIBUTES;
+ */
+
+#if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
+#   define KHRONOS_STATIC 1
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APICALL
+ *-------------------------------------------------------------------------
+ * This precedes the return type of the function in the function prototype.
+ */
+#if defined(KHRONOS_STATIC)
+    /* If the preprocessor constant KHRONOS_STATIC is defined, make the
+     * header compatible with static linking. */
+#   define KHRONOS_APICALL
+#elif defined(_WIN32)
+#   define KHRONOS_APICALL __declspec(dllimport)
+#elif defined (__SYMBIAN32__)
+#   define KHRONOS_APICALL IMPORT_C
+#elif defined(__ANDROID__)
+#   define KHRONOS_APICALL __attribute__((visibility("default")))
+#else
+#   define KHRONOS_APICALL
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIENTRY
+ *-------------------------------------------------------------------------
+ * This follows the return type of the function  and precedes the function
+ * name in the function prototype.
+ */
+#if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
+    /* Win32 but not WinCE */
+#   define KHRONOS_APIENTRY __stdcall
+#else
+#   define KHRONOS_APIENTRY
+#endif
+
+/*-------------------------------------------------------------------------
+ * Definition of KHRONOS_APIATTRIBUTES
+ *-------------------------------------------------------------------------
+ * This follows the closing parenthesis of the function prototype arguments.
+ */
+#if defined (__ARMCC_2__)
+#define KHRONOS_APIATTRIBUTES __softfp
+#else
+#define KHRONOS_APIATTRIBUTES
+#endif
+
+/*-------------------------------------------------------------------------
+ * basic type definitions
+ *-----------------------------------------------------------------------*/
+#if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
+
+
+/*
+ * Using <stdint.h>
+ */
+#include <stdint.h>
+typedef int32_t                 khronos_int32_t;
+typedef uint32_t                khronos_uint32_t;
+typedef int64_t                 khronos_int64_t;
+typedef uint64_t                khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64   1
+#define KHRONOS_SUPPORT_FLOAT   1
+
+#elif defined(__VMS ) || defined(__sgi)
+
+/*
+ * Using <inttypes.h>
+ */
+#include <inttypes.h>
+typedef int32_t                 khronos_int32_t;
+typedef uint32_t                khronos_uint32_t;
+typedef int64_t                 khronos_int64_t;
+typedef uint64_t                khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64   1
+#define KHRONOS_SUPPORT_FLOAT   1
+
+#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
+
+/*
+ * Win32
+ */
+typedef __int32                 khronos_int32_t;
+typedef unsigned __int32        khronos_uint32_t;
+typedef __int64                 khronos_int64_t;
+typedef unsigned __int64        khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64   1
+#define KHRONOS_SUPPORT_FLOAT   1
+
+#elif defined(__sun__) || defined(__digital__)
+
+/*
+ * Sun or Digital
+ */
+typedef int                     khronos_int32_t;
+typedef unsigned int            khronos_uint32_t;
+#if defined(__arch64__) || defined(_LP64)
+typedef long int                khronos_int64_t;
+typedef unsigned long int       khronos_uint64_t;
+#else
+typedef long long int           khronos_int64_t;
+typedef unsigned long long int  khronos_uint64_t;
+#endif /* __arch64__ */
+#define KHRONOS_SUPPORT_INT64   1
+#define KHRONOS_SUPPORT_FLOAT   1
+
+#elif 0
+
+/*
+ * Hypothetical platform with no float or int64 support
+ */
+typedef int                     khronos_int32_t;
+typedef unsigned int            khronos_uint32_t;
+#define KHRONOS_SUPPORT_INT64   0
+#define KHRONOS_SUPPORT_FLOAT   0
+
+#else
+
+/*
+ * Generic fallback
+ */
+#include <stdint.h>
+typedef int32_t                 khronos_int32_t;
+typedef uint32_t                khronos_uint32_t;
+typedef int64_t                 khronos_int64_t;
+typedef uint64_t                khronos_uint64_t;
+#define KHRONOS_SUPPORT_INT64   1
+#define KHRONOS_SUPPORT_FLOAT   1
+
+#endif
+
+
+/*
+ * Types that are (so far) the same on all platforms
+ */
+typedef signed   char          khronos_int8_t;
+typedef unsigned char          khronos_uint8_t;
+typedef signed   short int     khronos_int16_t;
+typedef unsigned short int     khronos_uint16_t;
+
+/*
+ * Types that differ between LLP64 and LP64 architectures - in LLP64,
+ * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
+ * to be the only LLP64 architecture in current use.
+ */
+#ifdef _WIN64
+typedef signed   long long int khronos_intptr_t;
+typedef unsigned long long int khronos_uintptr_t;
+typedef signed   long long int khronos_ssize_t;
+typedef unsigned long long int khronos_usize_t;
+#else
+typedef signed   long  int     khronos_intptr_t;
+typedef unsigned long  int     khronos_uintptr_t;
+typedef signed   long  int     khronos_ssize_t;
+typedef unsigned long  int     khronos_usize_t;
+#endif
+
+#if KHRONOS_SUPPORT_FLOAT
+/*
+ * Float type
+ */
+typedef          float         khronos_float_t;
+#endif
+
+#if KHRONOS_SUPPORT_INT64
+/* Time types
+ *
+ * These types can be used to represent a time interval in nanoseconds or
+ * an absolute Unadjusted System Time.  Unadjusted System Time is the number
+ * of nanoseconds since some arbitrary system event (e.g. since the last
+ * time the system booted).  The Unadjusted System Time is an unsigned
+ * 64 bit value that wraps back to 0 every 584 years.  Time intervals
+ * may be either signed or unsigned.
+ */
+typedef khronos_uint64_t       khronos_utime_nanoseconds_t;
+typedef khronos_int64_t        khronos_stime_nanoseconds_t;
+#endif
+
+/*
+ * Dummy value used to pad enum types to 32 bits.
+ */
+#ifndef KHRONOS_MAX_ENUM
+#define KHRONOS_MAX_ENUM 0x7FFFFFFF
+#endif
+
+/*
+ * Enumerated boolean type
+ *
+ * Values other than zero should be considered to be true.  Therefore
+ * comparisons should not be made against KHRONOS_TRUE.
+ */
+typedef enum {
+    KHRONOS_FALSE = 0,
+    KHRONOS_TRUE  = 1,
+    KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
+} khronos_boolean_enum_t;
+
+#endif /* __khrplatform_h_ */
diff --git a/third_party/epoxy/libepoxy/moz.build b/third_party/epoxy/libepoxy/moz.build
new file mode 100644
index 0000000000..54e8e4e76b
--- /dev/null
+++ b/third_party/epoxy/libepoxy/moz.build
@@ -0,0 +1,12 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
+    CXXFLAGS += CONFIG['MOZ_GTK3_CFLAGS']
+
+LOCAL_INCLUDES += ['/third_party/epoxy']
+
+FINAL_LIBRARY = 'xul'
diff --git a/third_party/gbm/README b/third_party/gbm/README
new file mode 100644
index 0000000000..4b6e2e8e02
--- /dev/null
+++ b/third_party/gbm/README
@@ -0,0 +1,4 @@
+Libgbm is a gbm library wrapper needed to build and run Firefox with
+Pipewire support on Linux (https://gitlab.freedesktop.org/mesa/gbm).
+
+libgbm directory stores headers of libgbm needed for build only.
diff --git a/third_party/gbm/gbm/gbm.h b/third_party/gbm/gbm/gbm.h
new file mode 100644
index 0000000000..e28fa04aae
--- /dev/null
+++ b/third_party/gbm/gbm/gbm.h
@@ -0,0 +1,452 @@
+/*
+ * Copyright © 2011 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT.  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Authors:
+ *    Benjamin Franzke <benjaminfranzke@googlemail.com>
+ */
+
+#ifndef _GBM_H_
+#define _GBM_H_
+
+#define __GBM__ 1
+
+#include <stddef.h>
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * \file gbm.h
+ * \brief Generic Buffer Manager
+ */
+
+struct gbm_device;
+struct gbm_bo;
+struct gbm_surface;
+
+/**
+ * \mainpage The Generic Buffer Manager
+ *
+ * This module provides an abstraction that the caller can use to request a
+ * buffer from the underlying memory management system for the platform.
+ *
+ * This allows the creation of portable code whilst still allowing access to
+ * the underlying memory manager.
+ */
+
+/**
+ * Abstraction representing the handle to a buffer allocated by the
+ * manager
+ */
+union gbm_bo_handle {
+   void *ptr;
+   int32_t s32;
+   uint32_t u32;
+   int64_t s64;
+   uint64_t u64;
+};
+
+/** Format of the allocated buffer */
+enum gbm_bo_format {
+   /** RGB with 8 bits per channel in a 32 bit value */
+   GBM_BO_FORMAT_XRGB8888,
+   /** ARGB with 8 bits per channel in a 32 bit value */
+   GBM_BO_FORMAT_ARGB8888
+};
+
+
+/**
+ * The FourCC format codes are taken from the drm_fourcc.h definition, and
+ * re-namespaced. New GBM formats must not be added, unless they are
+ * identical ports from drm_fourcc.
+ */
+#define __gbm_fourcc_code(a,b,c,d) ((uint32_t)(a) | ((uint32_t)(b) << 8) | \
+			      ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24))
+
+#define GBM_FORMAT_BIG_ENDIAN (1<<31) /* format is big endian instead of little endian */
+
+/* color index */
+#define GBM_FORMAT_C8		__gbm_fourcc_code('C', '8', ' ', ' ') /* [7:0] C */
+
+/* 8 bpp Red */
+#define GBM_FORMAT_R8		__gbm_fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
+
+/* 16 bpp Red */
+#define GBM_FORMAT_R16          __gbm_fourcc_code('R', '1', '6', ' ') /* [15:0] R little endian */
+
+/* 16 bpp RG */
+#define GBM_FORMAT_GR88		__gbm_fourcc_code('G', 'R', '8', '8') /* [15:0] G:R 8:8 little endian */
+
+/* 8 bpp RGB */
+#define GBM_FORMAT_RGB332	__gbm_fourcc_code('R', 'G', 'B', '8') /* [7:0] R:G:B 3:3:2 */
+#define GBM_FORMAT_BGR233	__gbm_fourcc_code('B', 'G', 'R', '8') /* [7:0] B:G:R 2:3:3 */
+
+/* 16 bpp RGB */
+#define GBM_FORMAT_XRGB4444	__gbm_fourcc_code('X', 'R', '1', '2') /* [15:0] x:R:G:B 4:4:4:4 little endian */
+#define GBM_FORMAT_XBGR4444	__gbm_fourcc_code('X', 'B', '1', '2') /* [15:0] x:B:G:R 4:4:4:4 little endian */
+#define GBM_FORMAT_RGBX4444	__gbm_fourcc_code('R', 'X', '1', '2') /* [15:0] R:G:B:x 4:4:4:4 little endian */
+#define GBM_FORMAT_BGRX4444	__gbm_fourcc_code('B', 'X', '1', '2') /* [15:0] B:G:R:x 4:4:4:4 little endian */
+
+#define GBM_FORMAT_ARGB4444	__gbm_fourcc_code('A', 'R', '1', '2') /* [15:0] A:R:G:B 4:4:4:4 little endian */
+#define GBM_FORMAT_ABGR4444	__gbm_fourcc_code('A', 'B', '1', '2') /* [15:0] A:B:G:R 4:4:4:4 little endian */
+#define GBM_FORMAT_RGBA4444	__gbm_fourcc_code('R', 'A', '1', '2') /* [15:0] R:G:B:A 4:4:4:4 little endian */
+#define GBM_FORMAT_BGRA4444	__gbm_fourcc_code('B', 'A', '1', '2') /* [15:0] B:G:R:A 4:4:4:4 little endian */
+
+#define GBM_FORMAT_XRGB1555	__gbm_fourcc_code('X', 'R', '1', '5') /* [15:0] x:R:G:B 1:5:5:5 little endian */
+#define GBM_FORMAT_XBGR1555	__gbm_fourcc_code('X', 'B', '1', '5') /* [15:0] x:B:G:R 1:5:5:5 little endian */
+#define GBM_FORMAT_RGBX5551	__gbm_fourcc_code('R', 'X', '1', '5') /* [15:0] R:G:B:x 5:5:5:1 little endian */
+#define GBM_FORMAT_BGRX5551	__gbm_fourcc_code('B', 'X', '1', '5') /* [15:0] B:G:R:x 5:5:5:1 little endian */
+
+#define GBM_FORMAT_ARGB1555	__gbm_fourcc_code('A', 'R', '1', '5') /* [15:0] A:R:G:B 1:5:5:5 little endian */
+#define GBM_FORMAT_ABGR1555	__gbm_fourcc_code('A', 'B', '1', '5') /* [15:0] A:B:G:R 1:5:5:5 little endian */
+#define GBM_FORMAT_RGBA5551	__gbm_fourcc_code('R', 'A', '1', '5') /* [15:0] R:G:B:A 5:5:5:1 little endian */
+#define GBM_FORMAT_BGRA5551	__gbm_fourcc_code('B', 'A', '1', '5') /* [15:0] B:G:R:A 5:5:5:1 little endian */
+
+#define GBM_FORMAT_RGB565	__gbm_fourcc_code('R', 'G', '1', '6') /* [15:0] R:G:B 5:6:5 little endian */
+#define GBM_FORMAT_BGR565	__gbm_fourcc_code('B', 'G', '1', '6') /* [15:0] B:G:R 5:6:5 little endian */
+
+/* 24 bpp RGB */
+#define GBM_FORMAT_RGB888	__gbm_fourcc_code('R', 'G', '2', '4') /* [23:0] R:G:B little endian */
+#define GBM_FORMAT_BGR888	__gbm_fourcc_code('B', 'G', '2', '4') /* [23:0] B:G:R little endian */
+
+/* 32 bpp RGB */
+#define GBM_FORMAT_XRGB8888	__gbm_fourcc_code('X', 'R', '2', '4') /* [31:0] x:R:G:B 8:8:8:8 little endian */
+#define GBM_FORMAT_XBGR8888	__gbm_fourcc_code('X', 'B', '2', '4') /* [31:0] x:B:G:R 8:8:8:8 little endian */
+#define GBM_FORMAT_RGBX8888	__gbm_fourcc_code('R', 'X', '2', '4') /* [31:0] R:G:B:x 8:8:8:8 little endian */
+#define GBM_FORMAT_BGRX8888	__gbm_fourcc_code('B', 'X', '2', '4') /* [31:0] B:G:R:x 8:8:8:8 little endian */
+
+#define GBM_FORMAT_ARGB8888	__gbm_fourcc_code('A', 'R', '2', '4') /* [31:0] A:R:G:B 8:8:8:8 little endian */
+#define GBM_FORMAT_ABGR8888	__gbm_fourcc_code('A', 'B', '2', '4') /* [31:0] A:B:G:R 8:8:8:8 little endian */
+#define GBM_FORMAT_RGBA8888	__gbm_fourcc_code('R', 'A', '2', '4') /* [31:0] R:G:B:A 8:8:8:8 little endian */
+#define GBM_FORMAT_BGRA8888	__gbm_fourcc_code('B', 'A', '2', '4') /* [31:0] B:G:R:A 8:8:8:8 little endian */
+
+#define GBM_FORMAT_XRGB2101010	__gbm_fourcc_code('X', 'R', '3', '0') /* [31:0] x:R:G:B 2:10:10:10 little endian */
+#define GBM_FORMAT_XBGR2101010	__gbm_fourcc_code('X', 'B', '3', '0') /* [31:0] x:B:G:R 2:10:10:10 little endian */
+#define GBM_FORMAT_RGBX1010102	__gbm_fourcc_code('R', 'X', '3', '0') /* [31:0] R:G:B:x 10:10:10:2 little endian */
+#define GBM_FORMAT_BGRX1010102	__gbm_fourcc_code('B', 'X', '3', '0') /* [31:0] B:G:R:x 10:10:10:2 little endian */
+
+#define GBM_FORMAT_ARGB2101010	__gbm_fourcc_code('A', 'R', '3', '0') /* [31:0] A:R:G:B 2:10:10:10 little endian */
+#define GBM_FORMAT_ABGR2101010	__gbm_fourcc_code('A', 'B', '3', '0') /* [31:0] A:B:G:R 2:10:10:10 little endian */
+#define GBM_FORMAT_RGBA1010102	__gbm_fourcc_code('R', 'A', '3', '0') /* [31:0] R:G:B:A 10:10:10:2 little endian */
+#define GBM_FORMAT_BGRA1010102	__gbm_fourcc_code('B', 'A', '3', '0') /* [31:0] B:G:R:A 10:10:10:2 little endian */
+
+/*
+ * Floating point 64bpp RGB
+ * IEEE 754-2008 binary16 half-precision float
+ * [15:0] sign:exponent:mantissa 1:5:10
+ */
+#define GBM_FORMAT_XBGR16161616F __gbm_fourcc_code('X', 'B', '4', 'H') /* [63:0] x:B:G:R 16:16:16:16 little endian */
+
+#define GBM_FORMAT_ABGR16161616F __gbm_fourcc_code('A', 'B', '4', 'H') /* [63:0] A:B:G:R 16:16:16:16 little endian */
+
+/* packed YCbCr */
+#define GBM_FORMAT_YUYV		__gbm_fourcc_code('Y', 'U', 'Y', 'V') /* [31:0] Cr0:Y1:Cb0:Y0 8:8:8:8 little endian */
+#define GBM_FORMAT_YVYU		__gbm_fourcc_code('Y', 'V', 'Y', 'U') /* [31:0] Cb0:Y1:Cr0:Y0 8:8:8:8 little endian */
+#define GBM_FORMAT_UYVY		__gbm_fourcc_code('U', 'Y', 'V', 'Y') /* [31:0] Y1:Cr0:Y0:Cb0 8:8:8:8 little endian */
+#define GBM_FORMAT_VYUY		__gbm_fourcc_code('V', 'Y', 'U', 'Y') /* [31:0] Y1:Cb0:Y0:Cr0 8:8:8:8 little endian */
+
+#define GBM_FORMAT_AYUV		__gbm_fourcc_code('A', 'Y', 'U', 'V') /* [31:0] A:Y:Cb:Cr 8:8:8:8 little endian */
+
+/*
+ * 2 plane YCbCr
+ * index 0 = Y plane, [7:0] Y
+ * index 1 = Cr:Cb plane, [15:0] Cr:Cb little endian
+ * or
+ * index 1 = Cb:Cr plane, [15:0] Cb:Cr little endian
+ */
+#define GBM_FORMAT_NV12		__gbm_fourcc_code('N', 'V', '1', '2') /* 2x2 subsampled Cr:Cb plane */
+#define GBM_FORMAT_NV21		__gbm_fourcc_code('N', 'V', '2', '1') /* 2x2 subsampled Cb:Cr plane */
+#define GBM_FORMAT_NV16		__gbm_fourcc_code('N', 'V', '1', '6') /* 2x1 subsampled Cr:Cb plane */
+#define GBM_FORMAT_NV61		__gbm_fourcc_code('N', 'V', '6', '1') /* 2x1 subsampled Cb:Cr plane */
+
+/*
+ * 3 plane YCbCr
+ * index 0: Y plane, [7:0] Y
+ * index 1: Cb plane, [7:0] Cb
+ * index 2: Cr plane, [7:0] Cr
+ * or
+ * index 1: Cr plane, [7:0] Cr
+ * index 2: Cb plane, [7:0] Cb
+ */
+#define GBM_FORMAT_YUV410	__gbm_fourcc_code('Y', 'U', 'V', '9') /* 4x4 subsampled Cb (1) and Cr (2) planes */
+#define GBM_FORMAT_YVU410	__gbm_fourcc_code('Y', 'V', 'U', '9') /* 4x4 subsampled Cr (1) and Cb (2) planes */
+#define GBM_FORMAT_YUV411	__gbm_fourcc_code('Y', 'U', '1', '1') /* 4x1 subsampled Cb (1) and Cr (2) planes */
+#define GBM_FORMAT_YVU411	__gbm_fourcc_code('Y', 'V', '1', '1') /* 4x1 subsampled Cr (1) and Cb (2) planes */
+#define GBM_FORMAT_YUV420	__gbm_fourcc_code('Y', 'U', '1', '2') /* 2x2 subsampled Cb (1) and Cr (2) planes */
+#define GBM_FORMAT_YVU420	__gbm_fourcc_code('Y', 'V', '1', '2') /* 2x2 subsampled Cr (1) and Cb (2) planes */
+#define GBM_FORMAT_YUV422	__gbm_fourcc_code('Y', 'U', '1', '6') /* 2x1 subsampled Cb (1) and Cr (2) planes */
+#define GBM_FORMAT_YVU422	__gbm_fourcc_code('Y', 'V', '1', '6') /* 2x1 subsampled Cr (1) and Cb (2) planes */
+#define GBM_FORMAT_YUV444	__gbm_fourcc_code('Y', 'U', '2', '4') /* non-subsampled Cb (1) and Cr (2) planes */
+#define GBM_FORMAT_YVU444	__gbm_fourcc_code('Y', 'V', '2', '4') /* non-subsampled Cr (1) and Cb (2) planes */
+
+struct gbm_format_name_desc {
+   char name[5];
+};
+
+/**
+ * Flags to indicate the intended use for the buffer - these are passed into
+ * gbm_bo_create(). The caller must set the union of all the flags that are
+ * appropriate
+ *
+ * \sa Use gbm_device_is_format_supported() to check if the combination of format
+ * and use flags are supported
+ */
+enum gbm_bo_flags {
+   /**
+    * Buffer is going to be presented to the screen using an API such as KMS
+    */
+   GBM_BO_USE_SCANOUT      = (1 << 0),
+   /**
+    * Buffer is going to be used as cursor
+    */
+   GBM_BO_USE_CURSOR       = (1 << 1),
+   /**
+    * Deprecated
+    */
+   GBM_BO_USE_CURSOR_64X64 = GBM_BO_USE_CURSOR,
+   /**
+    * Buffer is to be used for rendering - for example it is going to be used
+    * as the storage for a color buffer
+    */
+   GBM_BO_USE_RENDERING    = (1 << 2),
+   /**
+    * Buffer can be used for gbm_bo_write.  This is guaranteed to work
+    * with GBM_BO_USE_CURSOR, but may not work for other combinations.
+    */
+   GBM_BO_USE_WRITE    = (1 << 3),
+   /**
+    * Buffer is linear, i.e. not tiled.
+    */
+   GBM_BO_USE_LINEAR = (1 << 4),
+   /**
+    * Buffer is protected, i.e. encrypted and not readable by CPU or any
+    * other non-secure / non-trusted components nor by non-trusted OpenGL,
+    * OpenCL, and Vulkan applications.
+    */
+   GBM_BO_USE_PROTECTED = (1 << 5),
+};
+
+int
+gbm_device_get_fd(struct gbm_device *gbm);
+
+const char *
+gbm_device_get_backend_name(struct gbm_device *gbm);
+
+int
+gbm_device_is_format_supported(struct gbm_device *gbm,
+                               uint32_t format, uint32_t flags);
+
+int
+gbm_device_get_format_modifier_plane_count(struct gbm_device *gbm,
+                                           uint32_t format,
+                                           uint64_t modifier);
+
+void
+gbm_device_destroy(struct gbm_device *gbm);
+
+struct gbm_device *
+gbm_create_device(int fd);
+
+struct gbm_bo *
+gbm_bo_create(struct gbm_device *gbm,
+              uint32_t width, uint32_t height,
+              uint32_t format, uint32_t flags);
+
+struct gbm_bo *
+gbm_bo_create_with_modifiers(struct gbm_device *gbm,
+                             uint32_t width, uint32_t height,
+                             uint32_t format,
+                             const uint64_t *modifiers,
+                             const unsigned int count);
+
+struct gbm_bo *
+gbm_bo_create_with_modifiers2(struct gbm_device *gbm,
+                              uint32_t width, uint32_t height,
+                              uint32_t format,
+                              const uint64_t *modifiers,
+                              const unsigned int count,
+                              uint32_t flags);
+
+#define GBM_BO_IMPORT_WL_BUFFER         0x5501
+#define GBM_BO_IMPORT_EGL_IMAGE         0x5502
+#define GBM_BO_IMPORT_FD                0x5503
+#define GBM_BO_IMPORT_FD_MODIFIER       0x5504
+
+struct gbm_import_fd_data {
+   int fd;
+   uint32_t width;
+   uint32_t height;
+   uint32_t stride;
+   uint32_t format;
+};
+
+#define GBM_MAX_PLANES 4
+
+struct gbm_import_fd_modifier_data {
+   uint32_t width;
+   uint32_t height;
+   uint32_t format;
+   uint32_t num_fds;
+   int fds[GBM_MAX_PLANES];
+   int strides[GBM_MAX_PLANES];
+   int offsets[GBM_MAX_PLANES];
+   uint64_t modifier;
+};
+
+struct gbm_bo *
+gbm_bo_import(struct gbm_device *gbm, uint32_t type,
+              void *buffer, uint32_t flags);
+
+/**
+ * Flags to indicate the type of mapping for the buffer - these are
+ * passed into gbm_bo_map(). The caller must set the union of all the
+ * flags that are appropriate.
+ *
+ * These flags are independent of the GBM_BO_USE_* creation flags. However,
+ * mapping the buffer may require copying to/from a staging buffer.
+ *
+ * See also: pipe_map_flags
+ */
+enum gbm_bo_transfer_flags {
+   /**
+    * Buffer contents read back (or accessed directly) at transfer
+    * create time.
+    */
+   GBM_BO_TRANSFER_READ       = (1 << 0),
+   /**
+    * Buffer contents will be written back at unmap time
+    * (or modified as a result of being accessed directly).
+    */
+   GBM_BO_TRANSFER_WRITE      = (1 << 1),
+   /**
+    * Read/modify/write
+    */
+   GBM_BO_TRANSFER_READ_WRITE = (GBM_BO_TRANSFER_READ | GBM_BO_TRANSFER_WRITE),
+};
+
+void *
+gbm_bo_map(struct gbm_bo *bo,
+           uint32_t x, uint32_t y, uint32_t width, uint32_t height,
+           uint32_t flags, uint32_t *stride, void **map_data);
+
+void
+gbm_bo_unmap(struct gbm_bo *bo, void *map_data);
+
+uint32_t
+gbm_bo_get_width(struct gbm_bo *bo);
+
+uint32_t
+gbm_bo_get_height(struct gbm_bo *bo);
+
+uint32_t
+gbm_bo_get_stride(struct gbm_bo *bo);
+
+uint32_t
+gbm_bo_get_stride_for_plane(struct gbm_bo *bo, int plane);
+
+uint32_t
+gbm_bo_get_format(struct gbm_bo *bo);
+
+uint32_t
+gbm_bo_get_bpp(struct gbm_bo *bo);
+
+uint32_t
+gbm_bo_get_offset(struct gbm_bo *bo, int plane);
+
+struct gbm_device *
+gbm_bo_get_device(struct gbm_bo *bo);
+
+union gbm_bo_handle
+gbm_bo_get_handle(struct gbm_bo *bo);
+
+int
+gbm_bo_get_fd(struct gbm_bo *bo);
+
+uint64_t
+gbm_bo_get_modifier(struct gbm_bo *bo);
+
+int
+gbm_bo_get_plane_count(struct gbm_bo *bo);
+
+union gbm_bo_handle
+gbm_bo_get_handle_for_plane(struct gbm_bo *bo, int plane);
+
+int
+gbm_bo_get_fd_for_plane(struct gbm_bo *bo, int plane);
+
+int
+gbm_bo_write(struct gbm_bo *bo, const void *buf, size_t count);
+
+void
+gbm_bo_set_user_data(struct gbm_bo *bo, void *data,
+		     void (*destroy_user_data)(struct gbm_bo *, void *));
+
+void *
+gbm_bo_get_user_data(struct gbm_bo *bo);
+
+void
+gbm_bo_destroy(struct gbm_bo *bo);
+
+struct gbm_surface *
+gbm_surface_create(struct gbm_device *gbm,
+                   uint32_t width, uint32_t height,
+		   uint32_t format, uint32_t flags);
+
+struct gbm_surface *
+gbm_surface_create_with_modifiers(struct gbm_device *gbm,
+                                  uint32_t width, uint32_t height,
+                                  uint32_t format,
+                                  const uint64_t *modifiers,
+                                  const unsigned int count);
+
+struct gbm_surface *
+gbm_surface_create_with_modifiers2(struct gbm_device *gbm,
+                                   uint32_t width, uint32_t height,
+                                   uint32_t format,
+                                   const uint64_t *modifiers,
+                                   const unsigned int count,
+                                   uint32_t flags);
+
+struct gbm_bo *
+gbm_surface_lock_front_buffer(struct gbm_surface *surface);
+
+void
+gbm_surface_release_buffer(struct gbm_surface *surface, struct gbm_bo *bo);
+
+int
+gbm_surface_has_free_buffers(struct gbm_surface *surface);
+
+void
+gbm_surface_destroy(struct gbm_surface *surface);
+
+char *
+gbm_format_get_name(uint32_t gbm_format, struct gbm_format_name_desc *desc);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/third_party/gbm/libgbm/moz.build b/third_party/gbm/libgbm/moz.build
new file mode 100644
index 0000000000..0953d2f17a
--- /dev/null
+++ b/third_party/gbm/libgbm/moz.build
@@ -0,0 +1,16 @@
+# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
+# vim: set filetype=python:
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+SOURCES += [
+    'mozgbm.cpp',
+]
+
+if CONFIG["MOZ_WIDGET_TOOLKIT"] == "gtk":
+    CXXFLAGS += CONFIG['MOZ_GTK3_CFLAGS']
+
+LOCAL_INCLUDES += ['/third_party/gbm']
+
+FINAL_LIBRARY = 'xul'
diff --git a/third_party/gbm/libgbm/mozgbm.cpp b/third_party/gbm/libgbm/mozgbm.cpp
new file mode 100644
index 0000000000..bc024a11c0
--- /dev/null
+++ b/third_party/gbm/libgbm/mozgbm.cpp
@@ -0,0 +1,66 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* vim:expandtab:shiftwidth=4:tabstop=4:
+ */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "mozilla/Types.h"
+#include "prlink.h"
+
+#include <gbm/gbm.h>
+
+#define GET_FUNC(func, lib)                                  \
+    func##_fn =                                              \
+      (decltype(func##_fn))PR_FindFunctionSymbol(lib, #func) \
+
+#define IS_FUNC_LOADED(func)                                          \
+    (func != nullptr)                                                 \
+
+static struct gbm_device * (*gbm_create_device_fn)(int fd);
+static void (*gbm_device_destroy_fn)(struct gbm_device* gbm);
+
+bool IsGBMLibraryLoaded() {
+  static bool isLoaded =
+         (IS_FUNC_LOADED(gbm_create_device_fn) &&
+          IS_FUNC_LOADED(gbm_device_destroy_fn));
+
+  return isLoaded;
+}
+
+bool LoadGBMLibrary() {
+  static PRLibrary* gbmLib = nullptr;
+  static bool gbmInitialized = false;
+
+  //TODO Thread safe
+  if (!gbmInitialized) {
+    gbmInitialized = true;
+    gbmLib = PR_LoadLibrary("libgbm.so.1");
+    if (!gbmLib) {
+      return false;
+    }
+
+    GET_FUNC(gbm_create_device, gbmLib);
+    GET_FUNC(gbm_device_destroy, gbmLib);
+  }
+
+  return IsGBMLibraryLoaded();
+}
+
+struct gbm_device *
+gbm_create_device(int fd)
+{
+  if (!LoadGBMLibrary()) {
+    return nullptr;
+  }
+  return gbm_create_device_fn(fd);
+}
+
+void
+gbm_device_destroy(struct gbm_device* gbm)
+{
+  if (!LoadGBMLibrary()) {
+    return;
+  }
+  return gbm_device_destroy_fn(gbm);
+}
diff --git a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
index d5e8525ed1..55475488d8 100644
--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_generic_gn/moz.build
@@ -26,6 +26,10 @@ LOCAL_INCLUDES += [
     "/ipc/chromium/src",
     "/media/libyuv/",
     "/media/libyuv/libyuv/include/",
+    "/third_party/drm/",
+    "/third_party/epoxy/",
+    "/third_party/gbm/",
+    "/third_party/gbm/",
     "/third_party/libwebrtc/",
     "/third_party/libwebrtc/third_party/abseil-cpp/",
     "/third_party/pipewire/",
@@ -133,15 +137,18 @@ if CONFIG["OS_TARGET"] == "OpenBSD":
     ]
 
     SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc"
+        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.cc"
     ]
 
     UNIFIED_SOURCES += [
         "/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_x11.cc",
-        "/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
         "/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_x11.cc",
         "/third_party/libwebrtc/modules/desktop_capture/linux/shared_x_display.cc",
-        "/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc",
         "/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_x11.cc",
         "/third_party/libwebrtc/modules/desktop_capture/linux/window_finder_x11.cc",
         "/third_party/libwebrtc/modules/desktop_capture/linux/window_list_utils.cc",
@@ -241,12 +248,12 @@ if CONFIG["CPU_ARCH"] == "arm":
     DEFINES["_GNU_SOURCE"] = True
 
     SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc"
-    ]
-
-    UNIFIED_SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
-        "/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc"
+        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.cc"
     ]
 
 if CONFIG["CPU_ARCH"] == "ppc64":
@@ -300,12 +307,12 @@ if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["OS_TARGET"] == "Linux":
     DEFINES["_GNU_SOURCE"] = True
 
     SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc"
-    ]
-
-    UNIFIED_SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
-        "/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc"
+        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.cc"
     ]
 
 if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
@@ -318,12 +325,12 @@ if CONFIG["CPU_ARCH"] == "x86" and CONFIG["OS_TARGET"] == "Linux":
     DEFINES["_GNU_SOURCE"] = True
 
     SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc"
-    ]
-
-    UNIFIED_SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
-        "/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc"
+        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.cc"
     ]
 
 if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux":
@@ -332,12 +339,12 @@ if CONFIG["CPU_ARCH"] == "x86_64" and CONFIG["OS_TARGET"] == "Linux":
     DEFINES["_GNU_SOURCE"] = True
 
     SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc"
-    ]
-
-    UNIFIED_SOURCES += [
-        "/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc",
-        "/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc"
+        "/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.cc",
+        "/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.cc"
     ]
 
 if CONFIG["CPU_ARCH"] == "aarch64" and CONFIG["MOZ_X11"] == "1" and CONFIG["OS_TARGET"] == "Linux":
diff --git a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.cc b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.cc
index c89896d5fd..c8ef822938 100644
--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.cc
+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.cc
@@ -14,6 +14,9 @@
 #elif defined(WEBRTC_WIN)
 #include "modules/desktop_capture/win/full_screen_win_application_handler.h"
 #endif
+#if defined(WEBRTC_USE_PIPEWIRE)
+#include "modules/desktop_capture/linux/shared_screencast_stream.h"
+#endif
 
 namespace webrtc {
 
@@ -35,6 +38,9 @@ DesktopCaptureOptions DesktopCaptureOptions::CreateDefault() {
 #if defined(WEBRTC_USE_X11)
   result.set_x_display(SharedXDisplay::CreateDefault());
 #endif
+#if defined(WEBRTC_USE_PIPEWIRE)
+  result.set_screencast_stream(SharedScreenCastStream::CreateDefault());
+#endif
 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
   result.set_configuration_monitor(new DesktopConfigurationMonitor());
   result.set_full_screen_window_detector(
diff --git a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.h b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.h
index ee0dd3ab40..ac56c8c1c1 100644
--- a/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.h
+++ b/third_party/libwebrtc/modules/desktop_capture/desktop_capture_options.h
@@ -17,6 +17,10 @@
 #include "modules/desktop_capture/linux/shared_x_display.h"
 #endif
 
+#if defined(WEBRTC_USE_PIPEWIRE)
+#include "modules/desktop_capture/linux/shared_screencast_stream.h"
+#endif
+
 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
 #include "modules/desktop_capture/mac/desktop_configuration_monitor.h"
 #endif
@@ -149,13 +153,26 @@ class RTC_EXPORT DesktopCaptureOptions {
 #if defined(WEBRTC_USE_PIPEWIRE)
   bool allow_pipewire() const { return allow_pipewire_; }
   void set_allow_pipewire(bool allow) { allow_pipewire_ = allow; }
+
+  const rtc::scoped_refptr<SharedScreenCastStream>& screencast_stream() const {
+    return screencast_stream_;
+  }
+  void set_screencast_stream(
+      rtc::scoped_refptr<SharedScreenCastStream> stream) {
+    screencast_stream_ = stream;
+  }
 #endif
 
  private:
 #if defined(WEBRTC_USE_X11)
   rtc::scoped_refptr<SharedXDisplay> x_display_;
 #endif
-
+#if defined(WEBRTC_USE_PIPEWIRE)
+  // An instance of shared PipeWire ScreenCast stream we share between
+  // BaseCapturerPipeWire and MouseCursorMonitorPipeWire as cursor information
+  // is sent together with screen content.
+  rtc::scoped_refptr<SharedScreenCastStream> screencast_stream_;
+#endif
 #if defined(WEBRTC_MAC) && !defined(WEBRTC_IOS)
   rtc::scoped_refptr<DesktopConfigurationMonitor> configuration_monitor_;
   bool allow_iosurface_ = false;
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc b/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
index 2fd3b1a575..e4685fc814 100644
--- a/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.cc
@@ -10,937 +10,67 @@
 
 #include "modules/desktop_capture/linux/base_capturer_pipewire.h"
 
-#include <gio/gunixfdlist.h>
-#include <glib-object.h>
-#include <spa/param/format-utils.h>
-#include <spa/param/props.h>
-
-#include <sys/mman.h>
-#include <sys/ioctl.h>
-#include <sys/syscall.h>
-
-#include <cstring>
-#include <memory>
-#include <utility>
-
-#include "absl/memory/memory.h"
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
 #include "rtc_base/checks.h"
 #include "rtc_base/logging.h"
 
-#if defined(WEBRTC_DLOPEN_PIPEWIRE)
-#include "modules/desktop_capture/linux/pipewire_stubs.h"
-
-using modules_desktop_capture_linux::InitializeStubs;
-using modules_desktop_capture_linux::kModulePipewire;
-using modules_desktop_capture_linux::StubPathMap;
-#endif  // defined(WEBRTC_DLOPEN_PIPEWIRE)
-
 namespace webrtc {
 
-const char kDesktopBusName[] = "org.freedesktop.portal.Desktop";
-const char kDesktopObjectPath[] = "/org/freedesktop/portal/desktop";
-const char kDesktopRequestObjectPath[] =
-    "/org/freedesktop/portal/desktop/request";
-const char kSessionInterfaceName[] = "org.freedesktop.portal.Session";
-const char kRequestInterfaceName[] = "org.freedesktop.portal.Request";
-const char kScreenCastInterfaceName[] = "org.freedesktop.portal.ScreenCast";
-
-const int kBytesPerPixel = 4;
-
-#if defined(WEBRTC_DLOPEN_PIPEWIRE)
-const char kPipeWireLib[] = "libpipewire-0.2.so.1";
-#endif
-
-// static
-struct dma_buf_sync {
-  uint64_t flags;
-};
-#define DMA_BUF_SYNC_READ      (1 << 0)
-#define DMA_BUF_SYNC_START     (0 << 2)
-#define DMA_BUF_SYNC_END       (1 << 2)
-#define DMA_BUF_BASE           'b'
-#define DMA_BUF_IOCTL_SYNC     _IOW(DMA_BUF_BASE, 0, struct dma_buf_sync)
-
-static void SyncDmaBuf(int fd, uint64_t start_or_end) {
-  struct dma_buf_sync sync = { 0 };
-
-  sync.flags = start_or_end | DMA_BUF_SYNC_READ;
-
-  while(true) {
-    int ret;
-    ret = ioctl (fd, DMA_BUF_IOCTL_SYNC, &sync);
-    if (ret == -1 && errno == EINTR) {
-      continue;
-    } else if (ret == -1) {
-      RTC_LOG(LS_ERROR) << "Failed to synchronize DMA buffer: " << g_strerror(errno);
-      break;
-    } else {
-      break;
-    }
-  }
-}
-
-// static
-void BaseCapturerPipeWire::OnCoreError(void *data,
-                                       uint32_t id,
-                                       int seq,
-                                       int res,
-                                       const char *message) {
-  RTC_LOG(LS_ERROR) << "core error: " << message;
-}
-
-// static
-void BaseCapturerPipeWire::OnStreamStateChanged(void* data,
-                                                pw_stream_state old_state,
-                                                pw_stream_state state,
-                                                const char* error_message) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(data);
-  RTC_DCHECK(that);
-
-  switch (state) {
-    case PW_STREAM_STATE_ERROR:
-      RTC_LOG(LS_ERROR) << "PipeWire stream state error: " << error_message;
-      break;
-    case PW_STREAM_STATE_PAUSED:
-    case PW_STREAM_STATE_STREAMING:
-    case PW_STREAM_STATE_UNCONNECTED:
-    case PW_STREAM_STATE_CONNECTING:
-      break;
-  }
+BaseCapturerPipeWire::BaseCapturerPipeWire(const DesktopCaptureOptions& options)
+    : options_(options) {
+  screencast_portal_ = std::make_unique<ScreenCastPortal>(
+      ScreenCastPortal::CaptureSourceType::kAnyScreenContent, this);
 }
 
-// static
-void BaseCapturerPipeWire::OnStreamParamChanged(void *data, uint32_t id,
-                                                const struct spa_pod *format) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(data);
-  RTC_DCHECK(that);
-
-  RTC_LOG(LS_INFO) << "PipeWire stream param changed.";
-
-  if (!format || id != SPA_PARAM_Format) {
-    return;
-  }
-
-  spa_format_video_raw_parse(format, &that->spa_video_format_);
-
-  auto width = that->spa_video_format_.size.width;
-  auto height = that->spa_video_format_.size.height;
-  // In order to be able to build in the non unified environment kBytesPerPixel
-  // must be fully qualified, see Bug 1725145
-  auto stride = SPA_ROUND_UP_N(width * BasicDesktopFrame::kBytesPerPixel, 4);
-  auto size = height * stride;
-
-  that->desktop_size_ = DesktopSize(width, height);
-
-  uint8_t buffer[1024] = {};
-  auto builder = spa_pod_builder{buffer, sizeof(buffer)};
-
-  // Setup buffers and meta header for new format.
-  const struct spa_pod* params[3];
-  params[0] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
-              SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers,
-              SPA_PARAM_BUFFERS_dataType, SPA_POD_CHOICE_FLAGS_Int((1<<SPA_DATA_MemPtr) |
-                                                                   (1<<SPA_DATA_MemFd)),
-              SPA_PARAM_BUFFERS_size, SPA_POD_Int(size),
-              SPA_PARAM_BUFFERS_stride, SPA_POD_Int(stride),
-              SPA_PARAM_BUFFERS_buffers, SPA_POD_CHOICE_RANGE_Int(8, 1, 32)));
-  params[1] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
-              SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
-              SPA_PARAM_META_type, SPA_POD_Id(SPA_META_Header),
-              SPA_PARAM_META_size, SPA_POD_Int(sizeof(struct spa_meta_header))));
-  params[2] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
-              SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta,
-              SPA_PARAM_META_type, SPA_POD_Id (SPA_META_VideoCrop),
-              SPA_PARAM_META_size, SPA_POD_Int (sizeof(struct spa_meta_region))));
-  pw_stream_update_params(that->pw_stream_, params, 3);
-}
-
-// static
-void BaseCapturerPipeWire::OnStreamProcess(void* data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(data);
-  RTC_DCHECK(that);
-
-  struct pw_buffer *next_buffer;
-  struct pw_buffer *buffer = nullptr;
+BaseCapturerPipeWire::~BaseCapturerPipeWire() {}
 
-  next_buffer = pw_stream_dequeue_buffer(that->pw_stream_);
-  while (next_buffer) {
-    buffer = next_buffer;
-    next_buffer = pw_stream_dequeue_buffer(that->pw_stream_);
-
-    if (next_buffer) {
-      pw_stream_queue_buffer (that->pw_stream_, buffer);
-    }
-  }
-
-  if (!buffer) {
-    return;
+void BaseCapturerPipeWire::OnScreenCastRequestResult(
+    ScreenCastPortal::RequestResponse result,
+    uint32_t stream_node_id,
+    int fd) {
+  if (result != ScreenCastPortal::RequestResponse::kSuccess ||
+      !options_.screencast_stream()->StartScreenCastStream(stream_node_id,
+                                                           fd)) {
+    capturer_failed_ = true;
+    RTC_LOG(LS_ERROR) << "ScreenCastPortal failed: "
+                      << static_cast<uint>(result);
   }
-
-  that->HandleBuffer(buffer);
-
-  pw_stream_queue_buffer(that->pw_stream_, buffer);
 }
 
-BaseCapturerPipeWire::BaseCapturerPipeWire(CaptureSourceType source_type)
-    : capture_source_type_(source_type) {}
-
-BaseCapturerPipeWire::~BaseCapturerPipeWire() {
-  if (pw_main_loop_) {
-    pw_thread_loop_stop(pw_main_loop_);
-  }
-
-  if (pw_stream_) {
-    pw_stream_destroy(pw_stream_);
-  }
-
-  if (pw_core_) {
-    pw_core_disconnect(pw_core_);
-  }
-
-  if (pw_context_) {
-    pw_context_destroy(pw_context_);
-  }
-
-  if (pw_main_loop_) {
-    pw_thread_loop_destroy(pw_main_loop_);
+void BaseCapturerPipeWire::OnScreenCastSessionClosed() {
+  if (!capturer_failed_) {
+    options_.screencast_stream()->StopScreenCastStream();
   }
-
-  if (start_request_signal_id_) {
-    g_dbus_connection_signal_unsubscribe(connection_, start_request_signal_id_);
-  }
-  if (sources_request_signal_id_) {
-    g_dbus_connection_signal_unsubscribe(connection_,
-                                         sources_request_signal_id_);
-  }
-  if (session_request_signal_id_) {
-    g_dbus_connection_signal_unsubscribe(connection_,
-                                         session_request_signal_id_);
-  }
-
-  if (session_handle_) {
-    GDBusMessage* message = g_dbus_message_new_method_call(
-        kDesktopBusName, session_handle_, kSessionInterfaceName, "Close");
-    if (message) {
-      GError* error = nullptr;
-      g_dbus_connection_send_message(connection_, message,
-                                     G_DBUS_SEND_MESSAGE_FLAGS_NONE,
-                                     /*out_serial=*/nullptr, &error);
-      if (error) {
-        RTC_LOG(LS_ERROR) << "Failed to close the session: " << error->message;
-        g_error_free(error);
-      }
-      g_object_unref(message);
-    }
-  }
-
-  g_free(start_handle_);
-  g_free(sources_handle_);
-  g_free(session_handle_);
-  g_free(portal_handle_);
-
-  if (cancellable_) {
-    g_cancellable_cancel(cancellable_);
-    g_object_unref(cancellable_);
-    cancellable_ = nullptr;
-  }
-
-  if (proxy_) {
-    g_object_unref(proxy_);
-    proxy_ = nullptr;
-  }
-
-  if (pw_fd_ != -1) {
-    close(pw_fd_);
-  }
-}
-
-void BaseCapturerPipeWire::InitPortal() {
-  cancellable_ = g_cancellable_new();
-  g_dbus_proxy_new_for_bus(
-      G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, /*info=*/nullptr,
-      kDesktopBusName, kDesktopObjectPath, kScreenCastInterfaceName,
-      cancellable_,
-      reinterpret_cast<GAsyncReadyCallback>(OnProxyRequested), this);
-}
-
-void BaseCapturerPipeWire::InitPipeWire() {
-#if defined(WEBRTC_DLOPEN_PIPEWIRE)
-  StubPathMap paths;
-
-  // Check if the PipeWire library is available.
-  paths[kModulePipewire].push_back(kPipeWireLib);
-  if (!InitializeStubs(paths)) {
-    RTC_LOG(LS_ERROR) << "Failed to load the PipeWire library and symbols.";
-    portal_init_failed_ = true;
-    return;
-  }
-#endif  // defined(WEBRTC_DLOPEN_PIPEWIRE)
-
-  pw_init(/*argc=*/nullptr, /*argc=*/nullptr);
-
-  pw_main_loop_ = pw_thread_loop_new("pipewire-main-loop", nullptr);
-  pw_context_ = pw_context_new(pw_thread_loop_get_loop(pw_main_loop_), nullptr, 0);
-  if (!pw_context_) {
-    RTC_LOG(LS_ERROR) << "Failed to create PipeWire context";
-    return;
-  }
-
-  pw_core_ = pw_context_connect_fd(pw_context_, pw_fd_, nullptr, 0);
-  if (!pw_core_) {
-    RTC_LOG(LS_ERROR) << "Failed to connect PipeWire context";
-    return;
-  }
-
-  // Initialize event handlers, remote end and stream-related.
-  pw_core_events_.version = PW_VERSION_CORE_EVENTS;
-  pw_core_events_.error = &OnCoreError;
-
-  pw_stream_events_.version = PW_VERSION_STREAM_EVENTS;
-  pw_stream_events_.state_changed = &OnStreamStateChanged;
-  pw_stream_events_.param_changed = &OnStreamParamChanged;
-  pw_stream_events_.process = &OnStreamProcess;
-
-  pw_core_add_listener(pw_core_, &spa_core_listener_, &pw_core_events_, this);
-
-  pw_stream_ = CreateReceivingStream();
-  if (!pw_stream_) {
-    RTC_LOG(LS_ERROR) << "Failed to create PipeWire stream";
-    return;
-  }
-
-  if (pw_thread_loop_start(pw_main_loop_) < 0) {
-    RTC_LOG(LS_ERROR) << "Failed to start main PipeWire loop";
-    portal_init_failed_ = true;
-  }
-
-  RTC_LOG(LS_INFO) << "PipeWire remote opened.";
-}
-
-pw_stream* BaseCapturerPipeWire::CreateReceivingStream() {
-  spa_rectangle pwMinScreenBounds = spa_rectangle{1, 1};
-  spa_rectangle pwMaxScreenBounds = spa_rectangle{UINT32_MAX, UINT32_MAX};
-
-  auto stream = pw_stream_new(pw_core_, "webrtc-pipewire-stream", nullptr);
-
-  if (!stream) {
-    RTC_LOG(LS_ERROR) << "Could not create receiving stream.";
-    return nullptr;
-  }
-
-  uint8_t buffer[1024] = {};
-  const spa_pod* params[2];
-  spa_pod_builder builder = SPA_POD_BUILDER_INIT(buffer, sizeof (buffer));
-
-  params[0] = reinterpret_cast<spa_pod *>(spa_pod_builder_add_object(&builder,
-              SPA_TYPE_OBJECT_Format, SPA_PARAM_EnumFormat,
-              SPA_FORMAT_mediaType, SPA_POD_Id(SPA_MEDIA_TYPE_video),
-              SPA_FORMAT_mediaSubtype, SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw),
-              SPA_FORMAT_VIDEO_format, SPA_POD_CHOICE_ENUM_Id(5, SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_RGBx, SPA_VIDEO_FORMAT_RGBA,
-                                                                 SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_BGRA),
-              SPA_FORMAT_VIDEO_size, SPA_POD_CHOICE_RANGE_Rectangle(&pwMinScreenBounds,
-                                                                    &pwMinScreenBounds,
-                                                                    &pwMaxScreenBounds),
-              0));
-  pw_stream_add_listener(stream, &spa_stream_listener_, &pw_stream_events_, this);
-
-  if (pw_stream_connect(stream, PW_DIRECTION_INPUT, pw_stream_node_id_,
-      PW_STREAM_FLAG_AUTOCONNECT, params, 1) != 0) {
-    RTC_LOG(LS_ERROR) << "Could not connect receiving stream.";
-    portal_init_failed_ = true;
-  }
-
-  return stream;
-}
-
-static void SpaBufferUnmap(unsigned char *map, int map_size, bool IsDMABuf, int fd) {
-  if (map) {
-    if (IsDMABuf) {
-      SyncDmaBuf(fd, DMA_BUF_SYNC_END);
-    }
-    munmap(map, map_size);
-  }
-}
-
-void BaseCapturerPipeWire::HandleBuffer(pw_buffer* buffer) {
-  spa_buffer* spaBuffer = buffer->buffer;
-  uint8_t *map = nullptr;
-  uint8_t* src = nullptr;
-
-  if (spaBuffer->datas[0].chunk->size == 0) {
-    RTC_LOG(LS_ERROR) << "Failed to get video stream: Zero size.";
-    return;
-  }
-
-  switch (spaBuffer->datas[0].type) {
-    case SPA_DATA_MemFd:
-    case SPA_DATA_DmaBuf:
-      map = static_cast<uint8_t*>(mmap(
-          nullptr, spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
-          PROT_READ, MAP_PRIVATE, spaBuffer->datas[0].fd, 0));
-      if (map == MAP_FAILED) {
-        RTC_LOG(LS_ERROR) << "Failed to mmap memory: " << std::strerror(errno);
-        return;
-      }
-      if (spaBuffer->datas[0].type == SPA_DATA_DmaBuf) {
-        SyncDmaBuf(spaBuffer->datas[0].fd, DMA_BUF_SYNC_START);
-      }
-      src = SPA_MEMBER(map, spaBuffer->datas[0].mapoffset, uint8_t);
-      break;
-    case SPA_DATA_MemPtr:
-      map = nullptr;
-      src = static_cast<uint8_t*>(spaBuffer->datas[0].data);
-      break;
-    default:
-      return;
-  }
-
-  if (!src) {
-    RTC_LOG(LS_ERROR) << "Failed to get video stream: Wrong data after mmap()";
-    SpaBufferUnmap(map,
-      spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
-      spaBuffer->datas[0].type == SPA_DATA_DmaBuf, spaBuffer->datas[0].fd);
-    return;
-  }
-
-  struct spa_meta_region* video_metadata =
-    static_cast<struct spa_meta_region*>(
-       spa_buffer_find_meta_data(spaBuffer, SPA_META_VideoCrop, sizeof(*video_metadata)));
-
-  // Video size from metada is bigger than an actual video stream size.
-  // The metadata are wrong or we should up-scale te video...in both cases
-  // just quit now.
-  if (video_metadata &&
-      (video_metadata->region.size.width > (uint32_t)desktop_size_.width() ||
-        video_metadata->region.size.height > (uint32_t)desktop_size_.height())) {
-    RTC_LOG(LS_ERROR) << "Stream metadata sizes are wrong!";
-    SpaBufferUnmap(map,
-      spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
-      spaBuffer->datas[0].type == SPA_DATA_DmaBuf, spaBuffer->datas[0].fd);
-    return;
-  }
-
-  // Use video metada when video size from metadata is set and smaller than
-  // video stream size, so we need to adjust it.
-  video_metadata_use_ = (video_metadata &&
-      video_metadata->region.size.width != 0 &&
-        video_metadata->region.size.height != 0 &&
-          (video_metadata->region.size.width < (uint32_t)desktop_size_.width() ||
-            video_metadata->region.size.height < (uint32_t)desktop_size_.height()));
-
-  DesktopSize video_size_prev = video_size_;
-    if (video_metadata_use_) {
-    video_size_ = DesktopSize(video_metadata->region.size.width,
-                              video_metadata->region.size.height);
-  } else {
-    video_size_ = desktop_size_;
-  }
-
-  webrtc::MutexLock lock(&current_frame_lock_);
-  if (!current_frame_ || !video_size_.equals(video_size_prev)) {
-    current_frame_ =
-      std::make_unique<uint8_t[]>
-        (video_size_.width() * video_size_.height() * BasicDesktopFrame::kBytesPerPixel);
-  }
-
-  const int32_t dstStride = video_size_.width() * BasicDesktopFrame::kBytesPerPixel;
-  const int32_t srcStride = spaBuffer->datas[0].chunk->stride;
-
-  // Adjust source content based on metadata video position
-  if (video_metadata_use_ &&
-      (video_metadata->region.position.y + video_size_.height() <= desktop_size_.height())) {
-    src += srcStride * video_metadata->region.position.y;
-  }
-  const int xOffset =
-      video_metadata_use_ &&
-        (video_metadata->region.position.x + video_size_.width() <= desktop_size_.width())
-          ? video_metadata->region.position.x * BasicDesktopFrame::kBytesPerPixel
-          : 0;
-
-  uint8_t* dst = current_frame_.get();
-  for (int i = 0; i < video_size_.height(); ++i) {
-    // Adjust source content based on crop video position if needed
-    src += xOffset;
-    std::memcpy(dst, src, dstStride);
-    // If both sides decided to go with the RGBx format we need to convert it to
-    // BGRx to match color format expected by WebRTC.
-    if (spa_video_format_.format == SPA_VIDEO_FORMAT_RGBx ||
-        spa_video_format_.format == SPA_VIDEO_FORMAT_RGBA) {
-      ConvertRGBxToBGRx(dst, dstStride);
-    }
-    src += srcStride - xOffset;
-    dst += dstStride;
-  }
-
-  SpaBufferUnmap(map,
-    spaBuffer->datas[0].maxsize + spaBuffer->datas[0].mapoffset,
-    spaBuffer->datas[0].type == SPA_DATA_DmaBuf, spaBuffer->datas[0].fd);
-}
-
-void BaseCapturerPipeWire::ConvertRGBxToBGRx(uint8_t* frame, uint32_t size) {
-  // Change color format for KDE KWin which uses RGBx and not BGRx
-  for (uint32_t i = 0; i < size; i += 4) {
-    uint8_t tempR = frame[i];
-    uint8_t tempB = frame[i + 2];
-    frame[i] = tempB;
-    frame[i + 2] = tempR;
-  }
-}
-
-guint BaseCapturerPipeWire::SetupRequestResponseSignal(
-    const gchar* object_path,
-    GDBusSignalCallback callback) {
-  return g_dbus_connection_signal_subscribe(
-      connection_, kDesktopBusName, kRequestInterfaceName, "Response",
-      object_path, /*arg0=*/nullptr, G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE,
-      callback, this, /*user_data_free_func=*/nullptr);
-}
-
-// static
-void BaseCapturerPipeWire::OnProxyRequested(GObject* /*object*/,
-                                            GAsyncResult* result,
-                                            gpointer user_data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(user_data);
-  RTC_DCHECK(that);
-
-  GError* error = nullptr;
-  GDBusProxy *proxy = g_dbus_proxy_new_finish(result, &error);
-  if (!proxy) {
-    if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-      return;
-    RTC_LOG(LS_ERROR) << "Failed to create a proxy for the screen cast portal: "
-                      << error->message;
-    g_error_free(error);
-    that->portal_init_failed_ = true;
-    return;
-  }
-  that->proxy_ = proxy;
-  that->connection_ = g_dbus_proxy_get_connection(that->proxy_);
-
-  RTC_LOG(LS_INFO) << "Created proxy for the screen cast portal.";
-  that->SessionRequest();
-}
-
-// static
-gchar* BaseCapturerPipeWire::PrepareSignalHandle(GDBusConnection* connection,
-                                                 const gchar* token) {
-  gchar* sender = g_strdup(g_dbus_connection_get_unique_name(connection) + 1);
-  for (int i = 0; sender[i]; i++) {
-    if (sender[i] == '.') {
-      sender[i] = '_';
-    }
-  }
-
-  gchar* handle = g_strconcat(kDesktopRequestObjectPath, "/", sender, "/",
-                              token, /*end of varargs*/ nullptr);
-  g_free(sender);
-
-  return handle;
-}
-
-void BaseCapturerPipeWire::SessionRequest() {
-  GVariantBuilder builder;
-  gchar* variant_string;
-
-  g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
-  variant_string =
-      g_strdup_printf("webrtc_session%d", g_random_int_range(0, G_MAXINT));
-  g_variant_builder_add(&builder, "{sv}", "session_handle_token",
-                        g_variant_new_string(variant_string));
-  g_free(variant_string);
-  variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
-  g_variant_builder_add(&builder, "{sv}", "handle_token",
-                        g_variant_new_string(variant_string));
-
-  portal_handle_ = PrepareSignalHandle(connection_, variant_string);
-  session_request_signal_id_ = SetupRequestResponseSignal(
-      portal_handle_, OnSessionRequestResponseSignal);
-  g_free(variant_string);
-
-  RTC_LOG(LS_INFO) << "Screen cast session requested.";
-  g_dbus_proxy_call(
-      proxy_, "CreateSession", g_variant_new("(a{sv})", &builder),
-      G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, cancellable_,
-      reinterpret_cast<GAsyncReadyCallback>(OnSessionRequested), this);
-}
-
-// static
-void BaseCapturerPipeWire::OnSessionRequested(GDBusProxy *proxy,
-                                              GAsyncResult* result,
-                                              gpointer user_data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(user_data);
-  RTC_DCHECK(that);
-
-  GError* error = nullptr;
-  GVariant* variant = g_dbus_proxy_call_finish(proxy, result, &error);
-  if (!variant) {
-    if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-      return;
-    RTC_LOG(LS_ERROR) << "Failed to create a screen cast session: "
-                      << error->message;
-    g_error_free(error);
-    that->portal_init_failed_ = true;
-    return;
-  }
-  RTC_LOG(LS_INFO) << "Initializing the screen cast session.";
-
-  gchar* handle = nullptr;
-  g_variant_get_child(variant, 0, "o", &handle);
-  g_variant_unref(variant);
-  if (!handle) {
-    RTC_LOG(LS_ERROR) << "Failed to initialize the screen cast session.";
-    if (that->session_request_signal_id_) {
-      g_dbus_connection_signal_unsubscribe(that->connection_,
-                                           that->session_request_signal_id_);
-      that->session_request_signal_id_ = 0;
-    }
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  g_free(handle);
-
-  RTC_LOG(LS_INFO) << "Subscribing to the screen cast session.";
-}
-
-// static
-void BaseCapturerPipeWire::OnSessionRequestResponseSignal(
-    GDBusConnection* connection,
-    const gchar* sender_name,
-    const gchar* object_path,
-    const gchar* interface_name,
-    const gchar* signal_name,
-    GVariant* parameters,
-    gpointer user_data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(user_data);
-  RTC_DCHECK(that);
-
-  RTC_LOG(LS_INFO)
-      << "Received response for the screen cast session subscription.";
-
-  guint32 portal_response;
-  GVariant* response_data;
-  g_variant_get(parameters, "(u@a{sv})", &portal_response, &response_data);
-
-  GVariant* session_handle =
-      g_variant_lookup_value(response_data, "session_handle", NULL);
-  that->session_handle_ = g_variant_dup_string(session_handle, NULL);
-
-  g_variant_unref(session_handle);
-  g_variant_unref(response_data);
-
-  if (!that->session_handle_ || portal_response) {
-    RTC_LOG(LS_ERROR)
-        << "Failed to request the screen cast session subscription.";
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  that->SourcesRequest();
-}
-
-void BaseCapturerPipeWire::SourcesRequest() {
-  GVariantBuilder builder;
-  gchar* variant_string;
-
-  g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
-  // We want to record monitor content.
-  g_variant_builder_add(&builder, "{sv}", "types",
-                        g_variant_new_uint32(capture_source_type_));
-  // We don't want to allow selection of multiple sources.
-  g_variant_builder_add(&builder, "{sv}", "multiple",
-                        g_variant_new_boolean(false));
-  variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
-  g_variant_builder_add(&builder, "{sv}", "handle_token",
-                        g_variant_new_string(variant_string));
-
-  sources_handle_ = PrepareSignalHandle(connection_, variant_string);
-  sources_request_signal_id_ = SetupRequestResponseSignal(
-      sources_handle_, OnSourcesRequestResponseSignal);
-  g_free(variant_string);
-
-  RTC_LOG(LS_INFO) << "Requesting sources from the screen cast session.";
-  g_dbus_proxy_call(
-      proxy_, "SelectSources",
-      g_variant_new("(oa{sv})", session_handle_, &builder),
-      G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, cancellable_,
-      reinterpret_cast<GAsyncReadyCallback>(OnSourcesRequested), this);
-}
-
-// static
-void BaseCapturerPipeWire::OnSourcesRequested(GDBusProxy *proxy,
-                                              GAsyncResult* result,
-                                              gpointer user_data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(user_data);
-  RTC_DCHECK(that);
-
-  GError* error = nullptr;
-  GVariant* variant = g_dbus_proxy_call_finish(proxy, result, &error);
-  if (!variant) {
-    if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-      return;
-    RTC_LOG(LS_ERROR) << "Failed to request the sources: " << error->message;
-    g_error_free(error);
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  RTC_LOG(LS_INFO) << "Sources requested from the screen cast session.";
-
-  gchar* handle = nullptr;
-  g_variant_get_child(variant, 0, "o", &handle);
-  g_variant_unref(variant);
-  if (!handle) {
-    RTC_LOG(LS_ERROR) << "Failed to initialize the screen cast session.";
-    if (that->sources_request_signal_id_) {
-      g_dbus_connection_signal_unsubscribe(that->connection_,
-                                           that->sources_request_signal_id_);
-      that->sources_request_signal_id_ = 0;
-    }
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  g_free(handle);
-
-  RTC_LOG(LS_INFO) << "Subscribed to sources signal.";
-}
-
-// static
-void BaseCapturerPipeWire::OnSourcesRequestResponseSignal(
-    GDBusConnection* connection,
-    const gchar* sender_name,
-    const gchar* object_path,
-    const gchar* interface_name,
-    const gchar* signal_name,
-    GVariant* parameters,
-    gpointer user_data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(user_data);
-  RTC_DCHECK(that);
-
-  RTC_LOG(LS_INFO) << "Received sources signal from session.";
-
-  guint32 portal_response;
-  g_variant_get(parameters, "(u@a{sv})", &portal_response, nullptr);
-  if (portal_response) {
-    RTC_LOG(LS_ERROR)
-        << "Failed to select sources for the screen cast session.";
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  that->StartRequest();
-}
-
-void BaseCapturerPipeWire::StartRequest() {
-  GVariantBuilder builder;
-  gchar* variant_string;
-
-  g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
-  variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
-  g_variant_builder_add(&builder, "{sv}", "handle_token",
-                        g_variant_new_string(variant_string));
-
-  start_handle_ = PrepareSignalHandle(connection_, variant_string);
-  start_request_signal_id_ =
-      SetupRequestResponseSignal(start_handle_, OnStartRequestResponseSignal);
-  g_free(variant_string);
-
-  // "Identifier for the application window", this is Wayland, so not "x11:...".
-  const gchar parent_window[] = "";
-
-  RTC_LOG(LS_INFO) << "Starting the screen cast session.";
-  g_dbus_proxy_call(
-      proxy_, "Start",
-      g_variant_new("(osa{sv})", session_handle_, parent_window, &builder),
-      G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, cancellable_,
-      reinterpret_cast<GAsyncReadyCallback>(OnStartRequested), this);
-}
-
-// static
-void BaseCapturerPipeWire::OnStartRequested(GDBusProxy *proxy,
-                                            GAsyncResult* result,
-                                            gpointer user_data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(user_data);
-  RTC_DCHECK(that);
-
-  GError* error = nullptr;
-  GVariant* variant = g_dbus_proxy_call_finish(proxy, result, &error);
-  if (!variant) {
-    if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-      return;
-    RTC_LOG(LS_ERROR) << "Failed to start the screen cast session: "
-                      << error->message;
-    g_error_free(error);
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  RTC_LOG(LS_INFO) << "Initializing the start of the screen cast session.";
-
-  gchar* handle = nullptr;
-  g_variant_get_child(variant, 0, "o", &handle);
-  g_variant_unref(variant);
-  if (!handle) {
-    RTC_LOG(LS_ERROR)
-        << "Failed to initialize the start of the screen cast session.";
-    if (that->start_request_signal_id_) {
-      g_dbus_connection_signal_unsubscribe(that->connection_,
-                                           that->start_request_signal_id_);
-      that->start_request_signal_id_ = 0;
-    }
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  g_free(handle);
-
-  RTC_LOG(LS_INFO) << "Subscribed to the start signal.";
-}
-
-// static
-void BaseCapturerPipeWire::OnStartRequestResponseSignal(
-    GDBusConnection* connection,
-    const gchar* sender_name,
-    const gchar* object_path,
-    const gchar* interface_name,
-    const gchar* signal_name,
-    GVariant* parameters,
-    gpointer user_data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(user_data);
-  RTC_DCHECK(that);
-
-  RTC_LOG(LS_INFO) << "Start signal received.";
-  guint32 portal_response;
-  GVariant* response_data;
-  GVariantIter* iter = nullptr;
-  g_variant_get(parameters, "(u@a{sv})", &portal_response, &response_data);
-  if (portal_response || !response_data) {
-    RTC_LOG(LS_ERROR) << "Failed to start the screen cast session.";
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  // Array of PipeWire streams. See
-  // https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.ScreenCast.xml
-  // documentation for <method name="Start">.
-  if (g_variant_lookup(response_data, "streams", "a(ua{sv})", &iter)) {
-    GVariant* variant;
-
-    while (g_variant_iter_next(iter, "@(ua{sv})", &variant)) {
-      guint32 stream_id;
-      GVariant* options;
-
-      g_variant_get(variant, "(u@a{sv})", &stream_id, &options);
-      RTC_DCHECK(options != nullptr);
-
-      that->pw_stream_node_id_ = stream_id;
-      g_variant_unref(options);
-      g_variant_unref(variant);
-    }
-  }
-  g_variant_iter_free(iter);
-  g_variant_unref(response_data);
-
-  that->OpenPipeWireRemote();
-}
-
-void BaseCapturerPipeWire::OpenPipeWireRemote() {
-  GVariantBuilder builder;
-  g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
-
-  RTC_LOG(LS_INFO) << "Opening the PipeWire remote.";
-
-  g_dbus_proxy_call_with_unix_fd_list(
-      proxy_, "OpenPipeWireRemote",
-      g_variant_new("(oa{sv})", session_handle_, &builder),
-      G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, /*fd_list=*/nullptr,
-      cancellable_,
-      reinterpret_cast<GAsyncReadyCallback>(OnOpenPipeWireRemoteRequested),
-      this);
-}
-
-// static
-void BaseCapturerPipeWire::OnOpenPipeWireRemoteRequested(
-    GDBusProxy *proxy,
-    GAsyncResult* result,
-    gpointer user_data) {
-  BaseCapturerPipeWire* that = static_cast<BaseCapturerPipeWire*>(user_data);
-  RTC_DCHECK(that);
-
-  GError* error = nullptr;
-  GUnixFDList* outlist = nullptr;
-  GVariant* variant = g_dbus_proxy_call_with_unix_fd_list_finish(
-      proxy, &outlist, result, &error);
-  if (!variant) {
-    if (g_error_matches(error, G_IO_ERROR, G_IO_ERROR_CANCELLED))
-      return;
-    RTC_LOG(LS_ERROR) << "Failed to open the PipeWire remote: "
-                      << error->message;
-    g_error_free(error);
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  gint32 index;
-  g_variant_get(variant, "(h)", &index);
-
-  if ((that->pw_fd_ = g_unix_fd_list_get(outlist, index, &error)) == -1) {
-    RTC_LOG(LS_ERROR) << "Failed to get file descriptor from the list: "
-                      << error->message;
-    g_error_free(error);
-    g_variant_unref(variant);
-    that->portal_init_failed_ = true;
-    return;
-  }
-
-  g_variant_unref(variant);
-  g_object_unref(outlist);
-
-  that->InitPipeWire();
 }
 
 void BaseCapturerPipeWire::Start(Callback* callback) {
   RTC_DCHECK(!callback_);
   RTC_DCHECK(callback);
 
-  InitPortal();
-
   callback_ = callback;
+
+  screencast_portal_->Start();
 }
 
 void BaseCapturerPipeWire::CaptureFrame() {
-  if (portal_init_failed_) {
+  if (capturer_failed_) {
     callback_->OnCaptureResult(Result::ERROR_PERMANENT, nullptr);
     return;
   }
 
-  webrtc::MutexLock lock(&current_frame_lock_);
-  if (!current_frame_) {
-    callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr);
-    return;
-  }
-
-  DesktopSize frame_size = desktop_size_;
-  if (video_metadata_use_) {
-    frame_size = video_size_;
-  }
+  std::unique_ptr<DesktopFrame> frame =
+      options_.screencast_stream()->CaptureFrame();
 
-  std::unique_ptr<DesktopFrame> result(new BasicDesktopFrame(frame_size));
-  result->CopyPixelsFrom(
-      current_frame_.get(), (frame_size.width() * BasicDesktopFrame::kBytesPerPixel),
-      DesktopRect::MakeWH(frame_size.width(), frame_size.height()));
-  if (!result) {
+  if (!frame || !frame->data()) {
     callback_->OnCaptureResult(Result::ERROR_TEMPORARY, nullptr);
     return;
   }
 
-  // TODO(julien.isorce): http://crbug.com/945468. Set the icc profile on the
-  // frame, see ScreenCapturerX11::CaptureFrame.
+  // TODO(julien.isorce): http://crbug.com/945468. Set the icc profile on
+  // the frame, see ScreenCapturerX11::CaptureFrame.
 
-  callback_->OnCaptureResult(Result::SUCCESS, std::move(result));
+  callback_->OnCaptureResult(Result::SUCCESS, std::move(frame));
 }
 
 // Keep in sync with defines at browser/actors/WebRTCParent.jsm
@@ -953,31 +83,13 @@ void BaseCapturerPipeWire::CaptureFrame() {
 #define PIPEWIRE_NAME "####_PIPEWIRE_PORTAL_####"
 
 bool BaseCapturerPipeWire::GetSourceList(SourceList* sources) {
+  RTC_DCHECK(sources->size() == 0);
   sources->push_back({PIPEWIRE_ID, 0, PIPEWIRE_NAME});
   return true;
 }
 
 bool BaseCapturerPipeWire::SelectSource(SourceId id) {
-  // Screen selection is handled by the xdg-desktop-portal.
   return id == PIPEWIRE_ID;
 }
 
-// static
-std::unique_ptr<DesktopCapturer>
-BaseCapturerPipeWire::CreateRawScreenCapturer(
-    const DesktopCaptureOptions& options) {
-  std::unique_ptr<BaseCapturerPipeWire> capturer =
-      std::make_unique<BaseCapturerPipeWire>(BaseCapturerPipeWire::CaptureSourceType::kAny);
-  return std::move(capturer);}
-
-// static
-std::unique_ptr<DesktopCapturer>
-BaseCapturerPipeWire::CreateRawWindowCapturer(
-    const DesktopCaptureOptions& options) {
-
-  std::unique_ptr<BaseCapturerPipeWire> capturer =
-      std::make_unique<BaseCapturerPipeWire>(BaseCapturerPipeWire::CaptureSourceType::kAny);
-  return std::move(capturer);
-}
-
 }  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.h b/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.h
index af8e20c84c..5db09e0244 100644
--- a/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.h
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/base_capturer_pipewire.h
@@ -11,160 +11,39 @@
 #ifndef MODULES_DESKTOP_CAPTURE_LINUX_BASE_CAPTURER_PIPEWIRE_H_
 #define MODULES_DESKTOP_CAPTURE_LINUX_BASE_CAPTURER_PIPEWIRE_H_
 
-#include <gio/gio.h>
-#define typeof __typeof__
-#include <pipewire/pipewire.h>
-#include <spa/param/video/format-utils.h>
-
 #include "modules/desktop_capture/desktop_capture_options.h"
 #include "modules/desktop_capture/desktop_capturer.h"
-#include "rtc_base/synchronization/mutex.h"
+#include "modules/desktop_capture/linux/screencast_portal.h"
+#include "modules/desktop_capture/linux/shared_screencast_stream.h"
 
 namespace webrtc {
 
-class BaseCapturerPipeWire : public DesktopCapturer {
+class BaseCapturerPipeWire : public DesktopCapturer,
+                             public ScreenCastPortal::PortalNotifier {
  public:
-  enum CaptureSourceType : uint32_t {
-    kScreen = 0b01,
-    kWindow = 0b10,
-    kAny = 0b11
-  };
-
-  explicit BaseCapturerPipeWire(CaptureSourceType source_type);
+  BaseCapturerPipeWire(const DesktopCaptureOptions& options);
   ~BaseCapturerPipeWire() override;
 
+  BaseCapturerPipeWire(const BaseCapturerPipeWire&) = delete;
+  BaseCapturerPipeWire& operator=(const BaseCapturerPipeWire&) = delete;
+
   // DesktopCapturer interface.
   void Start(Callback* delegate) override;
   void CaptureFrame() override;
   bool GetSourceList(SourceList* sources) override;
   bool SelectSource(SourceId id) override;
 
-  static std::unique_ptr<DesktopCapturer> CreateRawScreenCapturer(
-      const DesktopCaptureOptions& options);
-
-  static std::unique_ptr<DesktopCapturer> CreateRawWindowCapturer(
-      const DesktopCaptureOptions& options);
+  // ScreenCastPortal::PortalNotifier interface.
+  void OnScreenCastRequestResult(ScreenCastPortal::RequestResponse result,
+                                 uint32_t stream_node_id,
+                                 int fd) override;
+  void OnScreenCastSessionClosed() override;
 
  private:
-  // PipeWire types -->
-  pw_context* pw_context_ = nullptr;
-  pw_core* pw_core_ = nullptr;
-  pw_stream* pw_stream_ = nullptr;
-  pw_thread_loop* pw_main_loop_ = nullptr;
-
-  spa_hook spa_core_listener_ = {};
-  spa_hook spa_stream_listener_ = {};
-
-  pw_core_events pw_core_events_ = {};
-  pw_stream_events pw_stream_events_ = {};
-
-  struct spa_video_info_raw spa_video_format_;
-
-  guint32 pw_stream_node_id_ = 0;
-  gint32 pw_fd_ = -1;
-
-  CaptureSourceType capture_source_type_ =
-      BaseCapturerPipeWire::CaptureSourceType::kAny;
-
-  // <-- end of PipeWire types
-
-  GDBusConnection* connection_ = nullptr;
-  GDBusProxy* proxy_ = nullptr;
-  GCancellable *cancellable_ = nullptr;
-  gchar* portal_handle_ = nullptr;
-  gchar* session_handle_ = nullptr;
-  gchar* sources_handle_ = nullptr;
-  gchar* start_handle_ = nullptr;
-  guint session_request_signal_id_ = 0;
-  guint sources_request_signal_id_ = 0;
-  guint start_request_signal_id_ = 0;
-
-  bool video_metadata_use_ = false;
-  DesktopSize video_size_;
-  DesktopSize desktop_size_ = {};
   DesktopCaptureOptions options_ = {};
-
-  webrtc::Mutex current_frame_lock_;
-  std::unique_ptr<uint8_t[]> current_frame_;
   Callback* callback_ = nullptr;
-
-  bool portal_init_failed_ = false;
-
-  void InitPortal();
-  void InitPipeWire();
-
-  pw_stream* CreateReceivingStream();
-  void HandleBuffer(pw_buffer* buffer);
-
-  void ConvertRGBxToBGRx(uint8_t* frame, uint32_t size);
-
-  static void OnCoreError(void *data,
-                          uint32_t id,
-                          int seq,
-                          int res,
-                          const char *message);
-  static void OnStreamParamChanged(void *data,
-                                   uint32_t id,
-                                   const struct spa_pod *format);
-  static void OnStreamStateChanged(void* data,
-                                   pw_stream_state old_state,
-                                   pw_stream_state state,
-                                   const char* error_message);
-  static void OnStreamProcess(void* data);
-  static void OnNewBuffer(void* data, uint32_t id);
-
-  guint SetupRequestResponseSignal(const gchar* object_path,
-                                   GDBusSignalCallback callback);
-
-  static void OnProxyRequested(GObject* object,
-                               GAsyncResult* result,
-                               gpointer user_data);
-
-  static gchar* PrepareSignalHandle(GDBusConnection* connection,
-                                    const gchar* token);
-
-  void SessionRequest();
-  static void OnSessionRequested(GDBusProxy *proxy,
-                                 GAsyncResult* result,
-                                 gpointer user_data);
-  static void OnSessionRequestResponseSignal(GDBusConnection* connection,
-                                             const gchar* sender_name,
-                                             const gchar* object_path,
-                                             const gchar* interface_name,
-                                             const gchar* signal_name,
-                                             GVariant* parameters,
-                                             gpointer user_data);
-
-  void SourcesRequest();
-  static void OnSourcesRequested(GDBusProxy *proxy,
-                                 GAsyncResult* result,
-                                 gpointer user_data);
-  static void OnSourcesRequestResponseSignal(GDBusConnection* connection,
-                                             const gchar* sender_name,
-                                             const gchar* object_path,
-                                             const gchar* interface_name,
-                                             const gchar* signal_name,
-                                             GVariant* parameters,
-                                             gpointer user_data);
-
-  void StartRequest();
-  static void OnStartRequested(GDBusProxy *proxy,
-                               GAsyncResult* result,
-                               gpointer user_data);
-  static void OnStartRequestResponseSignal(GDBusConnection* connection,
-                                           const gchar* sender_name,
-                                           const gchar* object_path,
-                                           const gchar* interface_name,
-                                           const gchar* signal_name,
-                                           GVariant* parameters,
-                                           gpointer user_data);
-
-  void OpenPipeWireRemote();
-  static void OnOpenPipeWireRemoteRequested(GDBusProxy *proxy,
-                                            GAsyncResult* result,
-                                            gpointer user_data);
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(BaseCapturerPipeWire);
+  bool capturer_failed_ = false;
+  std::unique_ptr<ScreenCastPortal> screencast_portal_;
 };
 
 }  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/drm.sigs b/third_party/libwebrtc/modules/desktop_capture/linux/drm.sigs
new file mode 100644
index 0000000000..226979fe16
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/drm.sigs
@@ -0,0 +1,11 @@
+// Copyright 2021 The WebRTC project authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+//------------------------------------------------
+// Functions from DRM used in capturer code.
+//--------
+
+// xf86drm.h
+int drmGetDevices2(uint32_t flags, drmDevicePtr devices[], int max_devices);
+void drmFreeDevices(drmDevicePtr devices[], int count);
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.cc b/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.cc
new file mode 100644
index 0000000000..de63c2a0b8
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.cc
@@ -0,0 +1,695 @@
+/*
+ *  Copyright 2021 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "modules/desktop_capture/linux/egl_dmabuf.h"
+
+#include <asm/ioctl.h>
+#include <dlfcn.h>
+#include <fcntl.h>
+#include <drm/drm_fourcc.h>
+#include <linux/types.h>
+#include <spa/param/video/format-utils.h>
+#include <unistd.h>
+#include <drm/xf86drm.h>
+
+#include "absl/memory/memory.h"
+#include "absl/types/optional.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/sanitizer.h"
+#include "rtc_base/string_encode.h"
+
+namespace webrtc {
+
+// EGL
+typedef EGLBoolean (*eglBindAPI_func)(EGLenum api);
+typedef EGLContext (*eglCreateContext_func)(EGLDisplay dpy,
+                                            EGLConfig config,
+                                            EGLContext share_context,
+                                            const EGLint* attrib_list);
+typedef EGLBoolean (*eglDestroyContext_func)(EGLDisplay display,
+                                             EGLContext context);
+typedef EGLBoolean (*eglTerminate_func)(EGLDisplay display);
+typedef EGLImageKHR (*eglCreateImageKHR_func)(EGLDisplay dpy,
+                                              EGLContext ctx,
+                                              EGLenum target,
+                                              EGLClientBuffer buffer,
+                                              const EGLint* attrib_list);
+typedef EGLBoolean (*eglDestroyImageKHR_func)(EGLDisplay dpy,
+                                              EGLImageKHR image);
+typedef EGLint (*eglGetError_func)(void);
+typedef void* (*eglGetProcAddress_func)(const char*);
+typedef EGLDisplay (*eglGetPlatformDisplayEXT_func)(EGLenum platform,
+                                                    void* native_display,
+                                                    const EGLint* attrib_list);
+typedef EGLDisplay (*eglGetPlatformDisplay_func)(EGLenum platform,
+                                                 void* native_display,
+                                                 const EGLAttrib* attrib_list);
+
+typedef EGLBoolean (*eglInitialize_func)(EGLDisplay dpy,
+                                         EGLint* major,
+                                         EGLint* minor);
+typedef EGLBoolean (*eglMakeCurrent_func)(EGLDisplay dpy,
+                                          EGLSurface draw,
+                                          EGLSurface read,
+                                          EGLContext ctx);
+typedef EGLBoolean (*eglQueryDmaBufFormatsEXT_func)(EGLDisplay dpy,
+                                                    EGLint max_formats,
+                                                    EGLint* formats,
+                                                    EGLint* num_formats);
+typedef EGLBoolean (*eglQueryDmaBufModifiersEXT_func)(EGLDisplay dpy,
+                                                      EGLint format,
+                                                      EGLint max_modifiers,
+                                                      EGLuint64KHR* modifiers,
+                                                      EGLBoolean* external_only,
+                                                      EGLint* num_modifiers);
+typedef const char* (*eglQueryString_func)(EGLDisplay dpy, EGLint name);
+typedef void (*glEGLImageTargetTexture2DOES_func)(GLenum target,
+                                                  GLeglImageOES image);
+
+// This doesn't follow naming conventions in WebRTC, where the naming
+// should look like e.g. egl_bind_api instead of EglBindAPI, however
+// we named them according to the exported functions they map to for
+// consistency.
+eglBindAPI_func EglBindAPI = nullptr;
+eglCreateContext_func EglCreateContext = nullptr;
+eglDestroyContext_func EglDestroyContext = nullptr;
+eglTerminate_func EglTerminate = nullptr;
+eglCreateImageKHR_func EglCreateImageKHR = nullptr;
+eglDestroyImageKHR_func EglDestroyImageKHR = nullptr;
+eglGetError_func EglGetError = nullptr;
+eglGetProcAddress_func EglGetProcAddress = nullptr;
+eglGetPlatformDisplayEXT_func EglGetPlatformDisplayEXT = nullptr;
+eglGetPlatformDisplay_func EglGetPlatformDisplay = nullptr;
+eglInitialize_func EglInitialize = nullptr;
+eglMakeCurrent_func EglMakeCurrent = nullptr;
+eglQueryDmaBufFormatsEXT_func EglQueryDmaBufFormatsEXT = nullptr;
+eglQueryDmaBufModifiersEXT_func EglQueryDmaBufModifiersEXT = nullptr;
+eglQueryString_func EglQueryString = nullptr;
+glEGLImageTargetTexture2DOES_func GlEGLImageTargetTexture2DOES = nullptr;
+
+// GL
+typedef void (*glBindTexture_func)(GLenum target, GLuint texture);
+typedef void (*glDeleteTextures_func)(GLsizei n, const GLuint* textures);
+typedef void (*glGenTextures_func)(GLsizei n, GLuint* textures);
+typedef GLenum (*glGetError_func)(void);
+typedef const GLubyte* (*glGetString_func)(GLenum name);
+typedef void (*glGetTexImage_func)(GLenum target,
+                                   GLint level,
+                                   GLenum format,
+                                   GLenum type,
+                                   void* pixels);
+typedef void (*glTexParameteri_func)(GLenum target, GLenum pname, GLint param);
+typedef void* (*glXGetProcAddressARB_func)(const char*);
+
+// This doesn't follow naming conventions in WebRTC, where the naming
+// should look like e.g. egl_bind_api instead of EglBindAPI, however
+// we named them according to the exported functions they map to for
+// consistency.
+glBindTexture_func GlBindTexture = nullptr;
+glDeleteTextures_func GlDeleteTextures = nullptr;
+glGenTextures_func GlGenTextures = nullptr;
+glGetError_func GlGetError = nullptr;
+glGetString_func GlGetString = nullptr;
+glGetTexImage_func GlGetTexImage = nullptr;
+glTexParameteri_func GlTexParameteri = nullptr;
+glXGetProcAddressARB_func GlXGetProcAddressARB = nullptr;
+
+static const std::string FormatGLError(GLenum err) {
+  switch (err) {
+    case GL_NO_ERROR:
+      return "GL_NO_ERROR";
+    case GL_INVALID_ENUM:
+      return "GL_INVALID_ENUM";
+    case GL_INVALID_VALUE:
+      return "GL_INVALID_VALUE";
+    case GL_INVALID_OPERATION:
+      return "GL_INVALID_OPERATION";
+    case GL_STACK_OVERFLOW:
+      return "GL_STACK_OVERFLOW";
+    case GL_STACK_UNDERFLOW:
+      return "GL_STACK_UNDERFLOW";
+    case GL_OUT_OF_MEMORY:
+      return "GL_OUT_OF_MEMORY";
+    default:
+      return "GL error code: " + std::to_string(err);
+  }
+}
+
+static const std::string FormatEGLError(EGLint err) {
+  switch (err) {
+    case EGL_NOT_INITIALIZED:
+      return "EGL_NOT_INITIALIZED";
+    case EGL_BAD_ACCESS:
+      return "EGL_BAD_ACCESS";
+    case EGL_BAD_ALLOC:
+      return "EGL_BAD_ALLOC";
+    case EGL_BAD_ATTRIBUTE:
+      return "EGL_BAD_ATTRIBUTE";
+    case EGL_BAD_CONTEXT:
+      return "EGL_BAD_CONTEXT";
+    case EGL_BAD_CONFIG:
+      return "EGL_BAD_CONFIG";
+    case EGL_BAD_CURRENT_SURFACE:
+      return "EGL_BAD_CURRENT_SURFACE";
+    case EGL_BAD_DISPLAY:
+      return "EGL_BAD_DISPLAY";
+    case EGL_BAD_SURFACE:
+      return "EGL_BAD_SURFACE";
+    case EGL_BAD_MATCH:
+      return "EGL_BAD_MATCH";
+    case EGL_BAD_PARAMETER:
+      return "EGL_BAD_PARAMETER";
+    case EGL_BAD_NATIVE_PIXMAP:
+      return "EGL_BAD_NATIVE_PIXMAP";
+    case EGL_BAD_NATIVE_WINDOW:
+      return "EGL_BAD_NATIVE_WINDOW";
+    case EGL_CONTEXT_LOST:
+      return "EGL_CONTEXT_LOST";
+    default:
+      return "EGL error code: " + std::to_string(err);
+  }
+}
+
+static uint32_t SpaPixelFormatToDrmFormat(uint32_t spa_format) {
+  switch (spa_format) {
+    case SPA_VIDEO_FORMAT_RGBA:
+      return DRM_FORMAT_ABGR8888;
+    case SPA_VIDEO_FORMAT_RGBx:
+      return DRM_FORMAT_XBGR8888;
+    case SPA_VIDEO_FORMAT_BGRA:
+      return DRM_FORMAT_ARGB8888;
+    case SPA_VIDEO_FORMAT_BGRx:
+      return DRM_FORMAT_XRGB8888;
+    default:
+      return DRM_FORMAT_INVALID;
+  }
+}
+
+static void CloseLibrary(void* library) {
+  if (library) {
+    dlclose(library);
+    library = nullptr;
+  }
+}
+
+static void* g_lib_egl = nullptr;
+
+static bool OpenEGL() {
+  g_lib_egl = dlopen("libEGL.so.1", RTLD_NOW | RTLD_GLOBAL);
+  if (g_lib_egl) {
+    EglGetProcAddress =
+        (eglGetProcAddress_func)dlsym(g_lib_egl, "eglGetProcAddress");
+    return EglGetProcAddress;
+  }
+
+  return false;
+}
+
+static bool LoadEGL() {
+  if (OpenEGL()) {
+    EglBindAPI = (eglBindAPI_func)EglGetProcAddress("eglBindAPI");
+    EglCreateContext =
+        (eglCreateContext_func)EglGetProcAddress("eglCreateContext");
+    EglDestroyContext =
+        (eglDestroyContext_func)EglGetProcAddress("eglDestroyContext");
+    EglTerminate = (eglTerminate_func)EglGetProcAddress("eglTerminate");
+    EglCreateImageKHR =
+        (eglCreateImageKHR_func)EglGetProcAddress("eglCreateImageKHR");
+    EglDestroyImageKHR =
+        (eglDestroyImageKHR_func)EglGetProcAddress("eglDestroyImageKHR");
+    EglGetError = (eglGetError_func)EglGetProcAddress("eglGetError");
+    EglGetPlatformDisplayEXT = (eglGetPlatformDisplayEXT_func)EglGetProcAddress(
+        "eglGetPlatformDisplayEXT");
+    EglGetPlatformDisplay =
+        (eglGetPlatformDisplay_func)EglGetProcAddress("eglGetPlatformDisplay");
+    EglInitialize = (eglInitialize_func)EglGetProcAddress("eglInitialize");
+    EglMakeCurrent = (eglMakeCurrent_func)EglGetProcAddress("eglMakeCurrent");
+    EglQueryString = (eglQueryString_func)EglGetProcAddress("eglQueryString");
+    GlEGLImageTargetTexture2DOES =
+        (glEGLImageTargetTexture2DOES_func)EglGetProcAddress(
+            "glEGLImageTargetTexture2DOES");
+
+    return EglBindAPI && EglCreateContext && EglCreateImageKHR &&
+           EglTerminate && EglDestroyContext && EglDestroyImageKHR &&
+           EglGetError && EglGetPlatformDisplayEXT && EglGetPlatformDisplay &&
+           EglInitialize && EglMakeCurrent && EglQueryString &&
+           GlEGLImageTargetTexture2DOES;
+  }
+
+  return false;
+}
+
+static void* g_lib_gl = nullptr;
+
+static bool OpenGL() {
+  std::vector<std::string> names = {"libGL.so.1", "libGL.so"};
+  for (const std::string& name : names) {
+    g_lib_gl = dlopen(name.c_str(), RTLD_NOW | RTLD_GLOBAL);
+    if (g_lib_gl) {
+      GlXGetProcAddressARB =
+          (glXGetProcAddressARB_func)dlsym(g_lib_gl, "glXGetProcAddressARB");
+      return GlXGetProcAddressARB;
+    }
+  }
+
+  return false;
+}
+
+static bool LoadGL() {
+  if (OpenGL()) {
+    GlGetString = (glGetString_func)GlXGetProcAddressARB("glGetString");
+    if (!GlGetString) {
+      return false;
+    }
+
+    GlBindTexture = (glBindTexture_func)GlXGetProcAddressARB("glBindTexture");
+    GlDeleteTextures =
+        (glDeleteTextures_func)GlXGetProcAddressARB("glDeleteTextures");
+    GlGenTextures = (glGenTextures_func)GlXGetProcAddressARB("glGenTextures");
+    GlGetError = (glGetError_func)GlXGetProcAddressARB("glGetError");
+    GlGetTexImage = (glGetTexImage_func)GlXGetProcAddressARB("glGetTexImage");
+    GlTexParameteri =
+        (glTexParameteri_func)GlXGetProcAddressARB("glTexParameteri");
+
+    return GlBindTexture && GlDeleteTextures && GlGenTextures && GlGetError &&
+           GlGetTexImage && GlTexParameteri;
+  }
+
+  return false;
+}
+
+EglDmaBuf::EglDmaBuf() {
+  if (!LoadEGL()) {
+    RTC_LOG(LS_ERROR) << "Unable to load EGL entry functions.";
+    CloseLibrary(g_lib_egl);
+    return;
+  }
+
+  if (!LoadGL()) {
+    RTC_LOG(LS_ERROR) << "Failed to load OpenGL entry functions.";
+    CloseLibrary(g_lib_gl);
+    return;
+  }
+
+  if (!GetClientExtensions(EGL_NO_DISPLAY, EGL_EXTENSIONS)) {
+    return;
+  }
+
+  bool has_platform_base_ext = false;
+  bool has_platform_gbm_ext = false;
+  bool has_khr_platform_gbm_ext = false;
+
+  for (const auto& extension : egl_.extensions) {
+    if (extension == "EGL_EXT_platform_base") {
+      has_platform_base_ext = true;
+      continue;
+    } else if (extension == "EGL_MESA_platform_gbm") {
+      has_platform_gbm_ext = true;
+      continue;
+    } else if (extension == "EGL_KHR_platform_gbm") {
+      has_khr_platform_gbm_ext = true;
+      continue;
+    }
+  }
+
+  if (!has_platform_base_ext || !has_platform_gbm_ext ||
+      !has_khr_platform_gbm_ext) {
+    RTC_LOG(LS_ERROR) << "One of required EGL extensions is missing";
+    return;
+  }
+
+  egl_.display = EglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_KHR,
+                                       (void*)EGL_DEFAULT_DISPLAY, nullptr);
+
+  if (egl_.display == EGL_NO_DISPLAY) {
+    RTC_LOG(LS_ERROR) << "Failed to obtain default EGL display: "
+                      << FormatEGLError(EglGetError()) << "\n"
+                      << "Defaulting to using first available render node";
+    absl::optional<std::string> render_node = GetRenderNode();
+    if (!render_node) {
+      return;
+    }
+
+    drm_fd_ = open(render_node->c_str(), O_RDWR);
+
+    if (drm_fd_ < 0) {
+      RTC_LOG(LS_ERROR) << "Failed to open drm render node: "
+                        << strerror(errno);
+      return;
+    }
+
+    gbm_device_ = gbm_create_device(drm_fd_);
+
+    if (!gbm_device_) {
+      RTC_LOG(LS_ERROR) << "Cannot create GBM device: " << strerror(errno);
+      close(drm_fd_);
+      return;
+    }
+
+    // Use eglGetPlatformDisplayEXT() to get the display pointer
+    // if the implementation supports it.
+    egl_.display =
+        EglGetPlatformDisplayEXT(EGL_PLATFORM_GBM_KHR, gbm_device_, nullptr);
+  }
+
+  if (egl_.display == EGL_NO_DISPLAY) {
+    RTC_LOG(LS_ERROR) << "Error during obtaining EGL display: "
+                      << FormatEGLError(EglGetError());
+    return;
+  }
+
+  EGLint major, minor;
+  if (EglInitialize(egl_.display, &major, &minor) == EGL_FALSE) {
+    RTC_LOG(LS_ERROR) << "Error during eglInitialize: "
+                      << FormatEGLError(EglGetError());
+    return;
+  }
+
+  if (EglBindAPI(EGL_OPENGL_API) == EGL_FALSE) {
+    RTC_LOG(LS_ERROR) << "bind OpenGL API failed";
+    return;
+  }
+
+  egl_.context =
+      EglCreateContext(egl_.display, nullptr, EGL_NO_CONTEXT, nullptr);
+
+  if (egl_.context == EGL_NO_CONTEXT) {
+    RTC_LOG(LS_ERROR) << "Couldn't create EGL context: "
+                      << FormatGLError(EglGetError());
+    return;
+  }
+
+  if (!GetClientExtensions(egl_.display, EGL_EXTENSIONS)) {
+    return;
+  }
+
+  bool has_image_dma_buf_import_modifiers_ext = false;
+
+  for (const auto& extension : egl_.extensions) {
+    if (extension == "EGL_EXT_image_dma_buf_import") {
+      has_image_dma_buf_import_ext_ = true;
+      continue;
+    } else if (extension == "EGL_EXT_image_dma_buf_import_modifiers") {
+      has_image_dma_buf_import_modifiers_ext = true;
+      continue;
+    }
+  }
+
+  if (has_image_dma_buf_import_ext_ && has_image_dma_buf_import_modifiers_ext) {
+    EglQueryDmaBufFormatsEXT = (eglQueryDmaBufFormatsEXT_func)EglGetProcAddress(
+        "eglQueryDmaBufFormatsEXT");
+    EglQueryDmaBufModifiersEXT =
+        (eglQueryDmaBufModifiersEXT_func)EglGetProcAddress(
+            "eglQueryDmaBufModifiersEXT");
+  }
+
+  RTC_LOG(LS_INFO) << "Egl initialization succeeded";
+  egl_initialized_ = true;
+}
+
+EglDmaBuf::~EglDmaBuf() {
+  if (gbm_device_) {
+    gbm_device_destroy(gbm_device_);
+    close(drm_fd_);
+  }
+
+  if (egl_.context != EGL_NO_CONTEXT) {
+    EglDestroyContext(egl_.display, egl_.context);
+  }
+
+  if (egl_.display != EGL_NO_DISPLAY) {
+    EglTerminate(egl_.display);
+  }
+
+  // BUG: crbug.com/1290566
+  // Closing libEGL.so.1 when using NVidia drivers causes a crash
+  // when EglGetPlatformDisplayEXT() is used, at least this one is enough
+  // to be called to make it crash.
+  // It also looks that libepoxy and glad don't dlclose it either
+  // CloseLibrary(g_lib_egl);
+  // CloseLibrary(g_lib_gl);
+}
+
+bool EglDmaBuf::GetClientExtensions(EGLDisplay dpy, EGLint name) {
+  // Get the list of client extensions
+  const char* client_extensions_cstring = EglQueryString(dpy, name);
+  if (!client_extensions_cstring) {
+    // If eglQueryString() returned NULL, the implementation doesn't support
+    // EGL_EXT_client_extensions. Expect an EGL_BAD_DISPLAY error.
+    RTC_LOG(LS_ERROR) << "No client extensions defined! "
+                      << FormatEGLError(EglGetError());
+    return false;
+  }
+
+  std::vector<std::string> client_extensions;
+  rtc::split(client_extensions_cstring, ' ',
+             &client_extensions);
+  for (const auto& extension : client_extensions) {
+    egl_.extensions.push_back(extension);
+  }
+
+  return true;
+}
+
+std::unique_ptr<uint8_t[]> EglDmaBuf::ImageFromDmaBuf(
+    const DesktopSize& size,
+    uint32_t format,
+    const std::vector<PlaneData>& plane_datas,
+    uint64_t modifier) {
+  std::unique_ptr<uint8_t[]> src;
+
+  if (!egl_initialized_) {
+    return src;
+  }
+
+  if (plane_datas.size() <= 0) {
+    RTC_LOG(LS_ERROR) << "Failed to process buffer: invalid number of planes";
+    return src;
+  }
+
+  EGLint attribs[47];
+  int atti = 0;
+
+  attribs[atti++] = EGL_WIDTH;
+  attribs[atti++] = static_cast<EGLint>(size.width());
+  attribs[atti++] = EGL_HEIGHT;
+  attribs[atti++] = static_cast<EGLint>(size.height());
+  attribs[atti++] = EGL_LINUX_DRM_FOURCC_EXT;
+  attribs[atti++] = SpaPixelFormatToDrmFormat(format);
+
+  if (plane_datas.size() > 0) {
+    attribs[atti++] = EGL_DMA_BUF_PLANE0_FD_EXT;
+    attribs[atti++] = plane_datas[0].fd;
+    attribs[atti++] = EGL_DMA_BUF_PLANE0_OFFSET_EXT;
+    attribs[atti++] = plane_datas[0].offset;
+    attribs[atti++] = EGL_DMA_BUF_PLANE0_PITCH_EXT;
+    attribs[atti++] = plane_datas[0].stride;
+
+    if (modifier != DRM_FORMAT_MOD_INVALID) {
+      attribs[atti++] = EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT;
+      attribs[atti++] = modifier & 0xFFFFFFFF;
+      attribs[atti++] = EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT;
+      attribs[atti++] = modifier >> 32;
+    }
+  }
+
+  if (plane_datas.size() > 1) {
+    attribs[atti++] = EGL_DMA_BUF_PLANE1_FD_EXT;
+    attribs[atti++] = plane_datas[1].fd;
+    attribs[atti++] = EGL_DMA_BUF_PLANE1_OFFSET_EXT;
+    attribs[atti++] = plane_datas[1].offset;
+    attribs[atti++] = EGL_DMA_BUF_PLANE1_PITCH_EXT;
+    attribs[atti++] = plane_datas[1].stride;
+
+    if (modifier != DRM_FORMAT_MOD_INVALID) {
+      attribs[atti++] = EGL_DMA_BUF_PLANE1_MODIFIER_LO_EXT;
+      attribs[atti++] = modifier & 0xFFFFFFFF;
+      attribs[atti++] = EGL_DMA_BUF_PLANE1_MODIFIER_HI_EXT;
+      attribs[atti++] = modifier >> 32;
+    }
+  }
+
+  if (plane_datas.size() > 2) {
+    attribs[atti++] = EGL_DMA_BUF_PLANE2_FD_EXT;
+    attribs[atti++] = plane_datas[2].fd;
+    attribs[atti++] = EGL_DMA_BUF_PLANE2_OFFSET_EXT;
+    attribs[atti++] = plane_datas[2].offset;
+    attribs[atti++] = EGL_DMA_BUF_PLANE2_PITCH_EXT;
+    attribs[atti++] = plane_datas[2].stride;
+
+    if (modifier != DRM_FORMAT_MOD_INVALID) {
+      attribs[atti++] = EGL_DMA_BUF_PLANE2_MODIFIER_LO_EXT;
+      attribs[atti++] = modifier & 0xFFFFFFFF;
+      attribs[atti++] = EGL_DMA_BUF_PLANE2_MODIFIER_HI_EXT;
+      attribs[atti++] = modifier >> 32;
+    }
+  }
+
+  if (plane_datas.size() > 3) {
+    attribs[atti++] = EGL_DMA_BUF_PLANE3_FD_EXT;
+    attribs[atti++] = plane_datas[3].fd;
+    attribs[atti++] = EGL_DMA_BUF_PLANE3_OFFSET_EXT;
+    attribs[atti++] = plane_datas[3].offset;
+    attribs[atti++] = EGL_DMA_BUF_PLANE3_PITCH_EXT;
+    attribs[atti++] = plane_datas[3].stride;
+
+    if (modifier != DRM_FORMAT_MOD_INVALID) {
+      attribs[atti++] = EGL_DMA_BUF_PLANE3_MODIFIER_LO_EXT;
+      attribs[atti++] = modifier & 0xFFFFFFFF;
+      attribs[atti++] = EGL_DMA_BUF_PLANE3_MODIFIER_HI_EXT;
+      attribs[atti++] = modifier >> 32;
+    }
+  }
+
+  attribs[atti++] = EGL_NONE;
+
+  // bind context to render thread
+  EglMakeCurrent(egl_.display, EGL_NO_SURFACE, EGL_NO_SURFACE, egl_.context);
+
+  // create EGL image from attribute list
+  EGLImageKHR image = EglCreateImageKHR(
+      egl_.display, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, nullptr, attribs);
+
+  if (image == EGL_NO_IMAGE) {
+    RTC_LOG(LS_ERROR) << "Failed to record frame: Error creating EGLImage - "
+                      << FormatEGLError(EglGetError());
+    return src;
+  }
+
+  // create GL 2D texture for framebuffer
+  GLuint texture;
+  GlGenTextures(1, &texture);
+  GlTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
+  GlTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
+  GlTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+  GlTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+  GlBindTexture(GL_TEXTURE_2D, texture);
+  GlEGLImageTargetTexture2DOES(GL_TEXTURE_2D, image);
+
+  src = std::make_unique<uint8_t[]>(plane_datas[0].stride * size.height());
+
+  GLenum gl_format = GL_BGRA;
+  switch (format) {
+    case SPA_VIDEO_FORMAT_RGBx:
+      gl_format = GL_RGBA;
+      break;
+    case SPA_VIDEO_FORMAT_RGBA:
+      gl_format = GL_RGBA;
+      break;
+    case SPA_VIDEO_FORMAT_BGRx:
+      gl_format = GL_BGRA;
+      break;
+    default:
+      gl_format = GL_BGRA;
+      break;
+  }
+  GlGetTexImage(GL_TEXTURE_2D, 0, gl_format, GL_UNSIGNED_BYTE, src.get());
+
+  if (GlGetError()) {
+    RTC_LOG(LS_ERROR) << "Failed to get image from DMA buffer.";
+    return src;
+  }
+
+  GlDeleteTextures(1, &texture);
+  EglDestroyImageKHR(egl_.display, image);
+
+  return src;
+}
+
+std::vector<uint64_t> EglDmaBuf::QueryDmaBufModifiers(uint32_t format) {
+  if (!egl_initialized_) {
+    return {};
+  }
+
+  // Explicit modifiers not supported, return just DRM_FORMAT_MOD_INVALID as we
+  // can still use modifier-less DMA-BUFs if we have required extension
+  if (EglQueryDmaBufFormatsEXT == nullptr ||
+      EglQueryDmaBufModifiersEXT == nullptr) {
+    return has_image_dma_buf_import_ext_
+               ? std::vector<uint64_t>{DRM_FORMAT_MOD_INVALID}
+               : std::vector<uint64_t>{};
+  }
+
+  uint32_t drm_format = SpaPixelFormatToDrmFormat(format);
+  // Should never happen as it's us who controls the list of supported formats
+  RTC_DCHECK(drm_format != DRM_FORMAT_INVALID);
+
+  EGLint count = 0;
+  EGLBoolean success =
+      EglQueryDmaBufFormatsEXT(egl_.display, 0, nullptr, &count);
+
+  if (!success || !count) {
+    RTC_LOG(LS_ERROR) << "Failed to query DMA-BUF formats.";
+    return {DRM_FORMAT_MOD_INVALID};
+  }
+
+  std::vector<uint32_t> formats(count);
+  if (!EglQueryDmaBufFormatsEXT(egl_.display, count,
+                                reinterpret_cast<EGLint*>(formats.data()),
+                                &count)) {
+    RTC_LOG(LS_ERROR) << "Failed to query DMA-BUF formats.";
+    return {DRM_FORMAT_MOD_INVALID};
+  }
+
+  if (std::find(formats.begin(), formats.end(), drm_format) == formats.end()) {
+    RTC_LOG(LS_ERROR) << "Format " << drm_format
+                      << " not supported for modifiers.";
+    return {DRM_FORMAT_MOD_INVALID};
+  }
+
+  success = EglQueryDmaBufModifiersEXT(egl_.display, drm_format, 0, nullptr,
+                                       nullptr, &count);
+
+  if (!success || !count) {
+    RTC_LOG(LS_ERROR) << "Failed to query DMA-BUF modifiers.";
+    return {DRM_FORMAT_MOD_INVALID};
+  }
+
+  std::vector<uint64_t> modifiers(count);
+  if (!EglQueryDmaBufModifiersEXT(egl_.display, drm_format, count,
+                                  modifiers.data(), nullptr, &count)) {
+    RTC_LOG(LS_ERROR) << "Failed to query DMA-BUF modifiers.";
+  }
+
+  // Support modifier-less buffers
+  modifiers.push_back(DRM_FORMAT_MOD_INVALID);
+  return modifiers;
+}
+
+absl::optional<std::string> EglDmaBuf::GetRenderNode() {
+  int max_devices = drmGetDevices2(0, nullptr, 0);
+  if (max_devices <= 0) {
+    RTC_LOG(LS_ERROR) << "drmGetDevices2() has not found any devices (errno="
+                      << -max_devices << ")";
+    return absl::nullopt;
+  }
+
+  std::vector<drmDevicePtr> devices(max_devices);
+  int ret = drmGetDevices2(0, devices.data(), max_devices);
+  if (ret < 0) {
+    RTC_LOG(LS_ERROR) << "drmGetDevices2() returned an error " << ret;
+    return absl::nullopt;
+  }
+
+  std::string render_node;
+
+  for (const drmDevicePtr& device : devices) {
+    if (device->available_nodes & (1 << DRM_NODE_RENDER)) {
+      render_node = device->nodes[DRM_NODE_RENDER];
+      break;
+    }
+  }
+
+  drmFreeDevices(devices.data(), ret);
+  return render_node;
+}
+
+}  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.h b/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.h
new file mode 100644
index 0000000000..b755d8ba37
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/egl_dmabuf.h
@@ -0,0 +1,68 @@
+/*
+ *  Copyright 2021 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef MODULES_DESKTOP_CAPTURE_LINUX_EGL_DMABUF_H_
+#define MODULES_DESKTOP_CAPTURE_LINUX_EGL_DMABUF_H_
+
+#include <epoxy/egl.h>
+#include <epoxy/gl.h>
+#include <gbm/gbm.h>
+
+#include <memory>
+#include <string>
+#include <vector>
+
+#include "absl/types/optional.h"
+#include "modules/desktop_capture/desktop_geometry.h"
+
+namespace webrtc {
+
+class EglDmaBuf {
+ public:
+  struct EGLStruct {
+    std::vector<std::string> extensions;
+    EGLDisplay display = EGL_NO_DISPLAY;
+    EGLContext context = EGL_NO_CONTEXT;
+  };
+
+  struct PlaneData {
+    int32_t fd;
+    uint32_t stride;
+    uint32_t offset;
+  };
+
+  EglDmaBuf();
+  ~EglDmaBuf();
+
+  std::unique_ptr<uint8_t[]> ImageFromDmaBuf(
+      const DesktopSize& size,
+      uint32_t format,
+      const std::vector<PlaneData>& plane_datas,
+      uint64_t modifiers);
+  std::vector<uint64_t> QueryDmaBufModifiers(uint32_t format);
+
+  bool IsEglInitialized() const { return egl_initialized_; }
+
+ private:
+  bool GetClientExtensions(EGLDisplay dpy, EGLint name);
+
+  bool egl_initialized_ = false;
+  bool has_image_dma_buf_import_ext_ = false;
+  int32_t drm_fd_ = -1;               // for GBM buffer mmap
+  gbm_device* gbm_device_ = nullptr;  // for passed GBM buffer retrieval
+
+  EGLStruct egl_;
+
+  absl::optional<std::string> GetRenderNode();
+};
+
+}  // namespace webrtc
+
+#endif  // MODULES_DESKTOP_CAPTURE_LINUX_EGL_DMABUF_H_
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.cc b/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.cc
new file mode 100644
index 0000000000..09dea242b3
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.cc
@@ -0,0 +1,56 @@
+/*
+ *  Copyright (c) 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.h"
+
+#include <utility>
+
+#include "modules/desktop_capture/desktop_capture_options.h"
+#include "modules/desktop_capture/desktop_capturer.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
+
+namespace webrtc {
+
+MouseCursorMonitorPipeWire::MouseCursorMonitorPipeWire(
+    const DesktopCaptureOptions& options)
+    : options_(options) {
+}
+
+MouseCursorMonitorPipeWire::~MouseCursorMonitorPipeWire() {}
+
+void MouseCursorMonitorPipeWire::Init(Callback* callback, Mode mode) {
+  RTC_DCHECK(!callback_);
+  RTC_DCHECK(callback);
+
+  callback_ = callback;
+  mode_ = mode;
+}
+
+void MouseCursorMonitorPipeWire::Capture() {
+  RTC_DCHECK(callback_);
+
+  std::unique_ptr<MouseCursor> mouse_cursor =
+      options_.screencast_stream()->CaptureCursor();
+
+  if (mouse_cursor && mouse_cursor->image()->data()) {
+    callback_->OnMouseCursor(mouse_cursor.release());
+  }
+
+  if (mode_ == SHAPE_AND_POSITION) {
+    absl::optional<DesktopVector> mouse_cursor_position =
+        options_.screencast_stream()->CaptureCursorPosition();
+    if (mouse_cursor_position) {
+      callback_->OnMouseCursorPosition(mouse_cursor_position.value());
+    }
+  }
+}
+
+}  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.h b/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.h
new file mode 100644
index 0000000000..9b9ccf74f8
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.h
@@ -0,0 +1,41 @@
+/*
+ *  Copyright 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef MODULES_DESKTOP_CAPTURE_LINUX_MOUSE_CURSOR_MONITOR_PIPEWIRE_H_
+#define MODULES_DESKTOP_CAPTURE_LINUX_MOUSE_CURSOR_MONITOR_PIPEWIRE_H_
+
+#include <memory>
+
+#include "api/scoped_refptr.h"
+#include "modules/desktop_capture/desktop_capture_options.h"
+#include "modules/desktop_capture/desktop_capture_types.h"
+#include "modules/desktop_capture/linux/shared_screencast_stream.h"
+#include "modules/desktop_capture/mouse_cursor.h"
+#include "modules/desktop_capture/mouse_cursor_monitor.h"
+
+namespace webrtc {
+
+class MouseCursorMonitorPipeWire : public MouseCursorMonitor {
+ public:
+  explicit MouseCursorMonitorPipeWire(const DesktopCaptureOptions& options);
+  ~MouseCursorMonitorPipeWire() override;
+
+  // MouseCursorMonitor:
+  void Init(Callback* callback, Mode mode) override;
+  void Capture() override;
+
+  DesktopCaptureOptions options_;
+  Callback* callback_ = nullptr;
+  Mode mode_ = SHAPE_AND_POSITION;
+};
+
+}  // namespace webrtc
+
+#endif  // MODULES_DESKTOP_CAPTURE_LINUX_MOUSE_CURSOR_MONITOR_PIPEWIRE_H_
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/pipewire.sigs b/third_party/libwebrtc/modules/desktop_capture/linux/pipewire.sigs
index 3e21e9dc07..06a97b8f29 100644
--- a/third_party/libwebrtc/modules/desktop_capture/linux/pipewire.sigs
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/pipewire.sigs
@@ -7,38 +7,44 @@
 //------------------------------------------------
 
 // core.h
-void pw_core_destroy(pw_core *core);
-pw_type *pw_core_get_type(pw_core *core);
-pw_core * pw_core_new(pw_loop *main_loop, pw_properties *props);
+int pw_core_disconnect(pw_core *core);
 
 // loop.h
 void pw_loop_destroy(pw_loop *loop);
-pw_loop * pw_loop_new(pw_properties *properties);
+pw_loop * pw_loop_new(const spa_dict *props);
+
 
 // pipewire.h
 void pw_init(int *argc, char **argv[]);
+const char* pw_get_library_version();
 
 // properties.h
 pw_properties * pw_properties_new_string(const char *args);
 
-// remote.h
-void pw_remote_add_listener(pw_remote *remote, spa_hook *listener, const pw_remote_events *events, void *data);
-int pw_remote_connect_fd(pw_remote *remote, int fd);
-void pw_remote_destroy(pw_remote *remote);
-pw_remote * pw_remote_new(pw_core *core, pw_properties *properties, size_t user_data_size);
-
 // stream.h
 void pw_stream_add_listener(pw_stream *stream, spa_hook *listener, const pw_stream_events *events, void *data);
-int pw_stream_connect(pw_stream *stream, enum pw_direction direction, const char *port_path, enum pw_stream_flags flags, const spa_pod **params, uint32_t n_params);
+int pw_stream_connect(pw_stream *stream, enum pw_direction direction, uint32_t target_id, enum pw_stream_flags flags, const spa_pod **params, uint32_t n_params);
+int pw_stream_disconnect(pw_stream *stream);
 pw_buffer *pw_stream_dequeue_buffer(pw_stream *stream);
 void pw_stream_destroy(pw_stream *stream);
-void pw_stream_finish_format(pw_stream *stream, int res, const spa_pod **params, uint32_t n_params);
-pw_stream * pw_stream_new(pw_remote *remote, const char *name, pw_properties *props);
+pw_stream * pw_stream_new(pw_core *core, const char *name, pw_properties *props);
 int pw_stream_queue_buffer(pw_stream *stream, pw_buffer *buffer);
 int pw_stream_set_active(pw_stream *stream, bool active);
+int pw_stream_update_params(pw_stream *stream, const spa_pod **params, uint32_t n_params);
 
 // thread-loop.h
 void pw_thread_loop_destroy(pw_thread_loop *loop);
-pw_thread_loop * pw_thread_loop_new(pw_loop *loop, const char *name);
+pw_thread_loop * pw_thread_loop_new(const char *name, const spa_dict *props);
 int pw_thread_loop_start(pw_thread_loop *loop);
 void pw_thread_loop_stop(pw_thread_loop *loop);
+void pw_thread_loop_lock(pw_thread_loop *loop);
+void pw_thread_loop_unlock(pw_thread_loop *loop);
+pw_loop * pw_thread_loop_get_loop(pw_thread_loop *loop);
+void pw_thread_loop_signal(pw_thread_loop *loop, bool wait_for_accept);
+void pw_thread_loop_wait(pw_thread_loop *loop);
+
+// context.h
+void pw_context_destroy(pw_context *context);
+pw_context *pw_context_new(pw_loop *main_loop, pw_properties *props, size_t user_data_size);
+pw_core * pw_context_connect(pw_context *context, pw_properties *properties, size_t user_data_size);
+pw_core * pw_context_connect_fd(pw_context *context, int fd, pw_properties *properties, size_t user_data_size);
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/pipewire_stub_header.fragment b/third_party/libwebrtc/modules/desktop_capture/linux/pipewire_stub_header.fragment
index 9d7dbd27c5..06ae18dfd4 100644
--- a/third_party/libwebrtc/modules/desktop_capture/linux/pipewire_stub_header.fragment
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/pipewire_stub_header.fragment
@@ -5,4 +5,5 @@ extern "C" {
 
 #include <pipewire/pipewire.h>
 
+#include <xf86drm.h>
 }
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.cc b/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.cc
new file mode 100644
index 0000000000..51ca57adc1
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.cc
@@ -0,0 +1,57 @@
+/*
+ *  Copyright 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "modules/desktop_capture/linux/scoped_glib.h"
+
+namespace webrtc {
+
+template <>
+Scoped<GError>::~Scoped() {
+  if (ptr_) {
+    g_error_free(ptr_);
+  }
+}
+
+template <>
+Scoped<char>::~Scoped() {
+  if (ptr_) {
+    g_free(ptr_);
+  }
+}
+
+template <>
+Scoped<GVariant>::~Scoped() {
+  if (ptr_) {
+    g_variant_unref(ptr_);
+  }
+}
+
+template <>
+Scoped<GVariantIter>::~Scoped() {
+  if (ptr_) {
+    g_variant_iter_free(ptr_);
+  }
+}
+
+template <>
+Scoped<GDBusMessage>::~Scoped() {
+  if (ptr_) {
+    g_object_unref(ptr_);
+  }
+}
+
+template <>
+Scoped<GUnixFDList>::~Scoped() {
+  if (ptr_) {
+    g_object_unref(ptr_);
+  }
+}
+
+}  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.h b/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.h
new file mode 100644
index 0000000000..ef152c1469
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/scoped_glib.h
@@ -0,0 +1,65 @@
+/*
+ *  Copyright 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef MODULES_DESKTOP_CAPTURE_LINUX_SCOPED_GLIB_H_
+#define MODULES_DESKTOP_CAPTURE_LINUX_SCOPED_GLIB_H_
+
+#include <gio/gio.h>
+
+#include "rtc_base/checks.h"
+
+namespace webrtc {
+
+template <class T>
+class Scoped {
+ public:
+  Scoped() {}
+  explicit Scoped(T* val) { ptr_ = val; }
+  ~Scoped() { }
+
+  T* operator->() const { return ptr_; }
+
+  explicit operator bool() const { return ptr_ != nullptr; }
+
+  bool operator!() const { return ptr_ == nullptr; }
+
+  T* get() const { return ptr_; }
+
+  T** receive() {
+    RTC_CHECK(!ptr_);
+    return &ptr_;
+  }
+
+  Scoped& operator=(T* val) {
+    RTC_DCHECK(val);
+    ptr_ = val;
+    return *this;
+  }
+
+ protected:
+  T* ptr_ = nullptr;
+};
+
+template <>
+Scoped<GError>::~Scoped();
+template <>
+Scoped<char>::~Scoped();
+template <>
+Scoped<GVariant>::~Scoped();
+template <>
+Scoped<GVariantIter>::~Scoped();
+template <>
+Scoped<GDBusMessage>::~Scoped();
+template <>
+Scoped<GUnixFDList>::~Scoped();
+
+}  // namespace webrtc
+
+#endif  // MODULES_DESKTOP_CAPTURE_LINUX_SCOPED_GLIB_H_
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc b/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc
deleted file mode 100644
index 3813d697bb..0000000000
--- a/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *  Copyright 2018 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "modules/desktop_capture/linux/screen_capturer_pipewire.h"
-
-#include <memory>
-
-namespace webrtc {
-
-ScreenCapturerPipeWire::ScreenCapturerPipeWire()
-    : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::kScreen) {}
-ScreenCapturerPipeWire::~ScreenCapturerPipeWire() {}
-
-// static
-std::unique_ptr<DesktopCapturer>
-ScreenCapturerPipeWire::CreateRawScreenCapturer(
-    const DesktopCaptureOptions& options) {
-  return std::make_unique<ScreenCapturerPipeWire>();
-}
-
-}  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.h b/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.h
deleted file mode 100644
index 66dcd680e0..0000000000
--- a/third_party/libwebrtc/modules/desktop_capture/linux/screen_capturer_pipewire.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *  Copyright 2018 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef MODULES_DESKTOP_CAPTURE_LINUX_SCREEN_CAPTURER_PIPEWIRE_H_
-#define MODULES_DESKTOP_CAPTURE_LINUX_SCREEN_CAPTURER_PIPEWIRE_H_
-
-#include <memory>
-
-#include "modules/desktop_capture/linux/base_capturer_pipewire.h"
-
-namespace webrtc {
-
-class ScreenCapturerPipeWire : public BaseCapturerPipeWire {
- public:
-  ScreenCapturerPipeWire();
-  ~ScreenCapturerPipeWire() override;
-
-  static std::unique_ptr<DesktopCapturer> CreateRawScreenCapturer(
-      const DesktopCaptureOptions& options);
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(ScreenCapturerPipeWire);
-};
-
-}  // namespace webrtc
-
-#endif  // MODULES_DESKTOP_CAPTURE_LINUX_SCREEN_CAPTURER_PIPEWIRE_H_
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.cc b/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.cc
new file mode 100644
index 0000000000..306e984207
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.cc
@@ -0,0 +1,532 @@
+/*
+ *  Copyright 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "modules/desktop_capture/linux/screencast_portal.h"
+
+#include <gio/gunixfdlist.h>
+#include <glib-object.h>
+
+#include "modules/desktop_capture/linux/scoped_glib.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
+
+namespace webrtc {
+
+const char kDesktopBusName[] = "org.freedesktop.portal.Desktop";
+const char kDesktopObjectPath[] = "/org/freedesktop/portal/desktop";
+const char kDesktopRequestObjectPath[] =
+    "/org/freedesktop/portal/desktop/request";
+const char kSessionInterfaceName[] = "org.freedesktop.portal.Session";
+const char kRequestInterfaceName[] = "org.freedesktop.portal.Request";
+const char kScreenCastInterfaceName[] = "org.freedesktop.portal.ScreenCast";
+
+ScreenCastPortal::ScreenCastPortal(CaptureSourceType source_type,
+                                   PortalNotifier* notifier)
+    : notifier_(notifier), capture_source_type_(source_type) {}
+
+ScreenCastPortal::~ScreenCastPortal() {
+  if (start_request_signal_id_) {
+    g_dbus_connection_signal_unsubscribe(connection_, start_request_signal_id_);
+  }
+  if (sources_request_signal_id_) {
+    g_dbus_connection_signal_unsubscribe(connection_,
+                                         sources_request_signal_id_);
+  }
+  if (session_request_signal_id_) {
+    g_dbus_connection_signal_unsubscribe(connection_,
+                                         session_request_signal_id_);
+  }
+
+  if (!session_handle_.empty()) {
+    Scoped<GDBusMessage> message(
+        g_dbus_message_new_method_call(kDesktopBusName, session_handle_.c_str(),
+                                       kSessionInterfaceName, "Close"));
+    if (message.get()) {
+      Scoped<GError> error;
+      g_dbus_connection_send_message(connection_, message.get(),
+                                     G_DBUS_SEND_MESSAGE_FLAGS_NONE,
+                                     /*out_serial=*/nullptr, error.receive());
+      if (error.get()) {
+        RTC_LOG(LS_ERROR) << "Failed to close the session: " << error->message;
+      }
+    }
+  }
+
+  if (cancellable_) {
+    g_cancellable_cancel(cancellable_);
+    g_object_unref(cancellable_);
+    cancellable_ = nullptr;
+  }
+
+  if (proxy_) {
+    g_object_unref(proxy_);
+    proxy_ = nullptr;
+  }
+
+  if (pw_fd_ != -1) {
+    close(pw_fd_);
+  }
+}
+
+void ScreenCastPortal::Start() {
+  cancellable_ = g_cancellable_new();
+  g_dbus_proxy_new_for_bus(
+      G_BUS_TYPE_SESSION, G_DBUS_PROXY_FLAGS_NONE, /*info=*/nullptr,
+      kDesktopBusName, kDesktopObjectPath, kScreenCastInterfaceName,
+      cancellable_, reinterpret_cast<GAsyncReadyCallback>(OnProxyRequested),
+      this);
+}
+
+void ScreenCastPortal::PortalFailed(RequestResponse result) {
+  notifier_->OnScreenCastRequestResult(result, pw_stream_node_id_, pw_fd_);
+}
+
+uint32_t ScreenCastPortal::SetupRequestResponseSignal(
+    const char* object_path,
+    GDBusSignalCallback callback) {
+  return g_dbus_connection_signal_subscribe(
+      connection_, kDesktopBusName, kRequestInterfaceName, "Response",
+      object_path, /*arg0=*/nullptr, G_DBUS_SIGNAL_FLAGS_NO_MATCH_RULE,
+      callback, this, /*user_data_free_func=*/nullptr);
+}
+
+// static
+void ScreenCastPortal::OnProxyRequested(GObject* /*object*/,
+                                        GAsyncResult* result,
+                                        gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  Scoped<GError> error;
+  GDBusProxy* proxy = g_dbus_proxy_new_finish(result, error.receive());
+  if (!proxy) {
+    if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED))
+      return;
+    RTC_LOG(LS_ERROR) << "Failed to create a proxy for the screen cast portal: "
+                      << error->message;
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+  that->proxy_ = proxy;
+  that->connection_ = g_dbus_proxy_get_connection(that->proxy_);
+
+  RTC_LOG(LS_INFO) << "Created proxy for the screen cast portal.";
+
+  that->SessionRequest();
+}
+
+// static
+std::string ScreenCastPortal::PrepareSignalHandle(GDBusConnection* connection,
+                                                  const char* token) {
+  Scoped<char> sender(
+      g_strdup(g_dbus_connection_get_unique_name(connection) + 1));
+  for (int i = 0; sender.get()[i]; ++i) {
+    if (sender.get()[i] == '.') {
+      sender.get()[i] = '_';
+    }
+  }
+
+  const char* handle = g_strconcat(kDesktopRequestObjectPath, "/", sender.get(),
+                                   "/", token, /*end of varargs*/ nullptr);
+
+  return handle;
+}
+
+void ScreenCastPortal::SessionRequest() {
+  GVariantBuilder builder;
+  Scoped<char> variant_string;
+
+  g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
+  variant_string =
+      g_strdup_printf("webrtc_session%d", g_random_int_range(0, G_MAXINT));
+  g_variant_builder_add(&builder, "{sv}", "session_handle_token",
+                        g_variant_new_string(variant_string.get()));
+  variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
+  g_variant_builder_add(&builder, "{sv}", "handle_token",
+                        g_variant_new_string(variant_string.get()));
+
+  portal_handle_ = PrepareSignalHandle(connection_, variant_string.get());
+  session_request_signal_id_ = SetupRequestResponseSignal(
+      portal_handle_.c_str(), OnSessionRequestResponseSignal);
+
+  RTC_LOG(LS_INFO) << "Screen cast session requested.";
+  g_dbus_proxy_call(proxy_, "CreateSession", g_variant_new("(a{sv})", &builder),
+                    G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, cancellable_,
+                    reinterpret_cast<GAsyncReadyCallback>(OnSessionRequested),
+                    this);
+}
+
+// static
+void ScreenCastPortal::OnSessionRequested(GDBusProxy* proxy,
+                                          GAsyncResult* result,
+                                          gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  Scoped<GError> error;
+  Scoped<GVariant> variant(
+      g_dbus_proxy_call_finish(proxy, result, error.receive()));
+  if (!variant) {
+    if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED))
+      return;
+    RTC_LOG(LS_ERROR) << "Failed to create a screen cast session: "
+                      << error->message;
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+  RTC_LOG(LS_INFO) << "Initializing the screen cast session.";
+
+  Scoped<char> handle;
+  g_variant_get_child(variant.get(), 0, "o", &handle);
+  if (!handle) {
+    RTC_LOG(LS_ERROR) << "Failed to initialize the screen cast session.";
+    if (that->session_request_signal_id_) {
+      g_dbus_connection_signal_unsubscribe(that->connection_,
+                                           that->session_request_signal_id_);
+      that->session_request_signal_id_ = 0;
+    }
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  RTC_LOG(LS_INFO) << "Subscribing to the screen cast session.";
+}
+
+// static
+void ScreenCastPortal::OnSessionRequestResponseSignal(
+    GDBusConnection* connection,
+    const char* sender_name,
+    const char* object_path,
+    const char* interface_name,
+    const char* signal_name,
+    GVariant* parameters,
+    gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  RTC_LOG(LS_INFO)
+      << "Received response for the screen cast session subscription.";
+
+  uint32_t portal_response;
+  Scoped<GVariant> response_data;
+  g_variant_get(parameters, "(u@a{sv})", &portal_response,
+                response_data.receive());
+  Scoped<GVariant> session_handle(
+      g_variant_lookup_value(response_data.get(), "session_handle", nullptr));
+  that->session_handle_ = g_variant_dup_string(session_handle.get(), nullptr);
+
+  if (that->session_handle_.empty() || portal_response) {
+    RTC_LOG(LS_ERROR)
+        << "Failed to request the screen cast session subscription.";
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  that->session_closed_signal_id_ = g_dbus_connection_signal_subscribe(
+      that->connection_, kDesktopBusName, kSessionInterfaceName, "Closed",
+      that->session_handle_.c_str(), /*arg0=*/nullptr, G_DBUS_SIGNAL_FLAGS_NONE,
+      OnSessionClosedSignal, that, /*user_data_free_func=*/nullptr);
+
+  that->SourcesRequest();
+}
+
+// static
+void ScreenCastPortal::OnSessionClosedSignal(GDBusConnection* connection,
+                                             const char* sender_name,
+                                             const char* object_path,
+                                             const char* interface_name,
+                                             const char* signal_name,
+                                             GVariant* parameters,
+                                             gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  RTC_LOG(LS_INFO) << "Received closed signal from session.";
+
+  that->notifier_->OnScreenCastSessionClosed();
+
+  // Unsubscribe from the signal and free the session handle to avoid calling
+  // Session::Close from the destructor since it's already closed
+  g_dbus_connection_signal_unsubscribe(that->connection_,
+                                       that->session_closed_signal_id_);
+}
+
+void ScreenCastPortal::SourcesRequest() {
+  GVariantBuilder builder;
+  Scoped<char> variant_string;
+
+  g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
+  // We want to record monitor content.
+  g_variant_builder_add(
+      &builder, "{sv}", "types",
+      g_variant_new_uint32(static_cast<uint32_t>(capture_source_type_)));
+  // We don't want to allow selection of multiple sources.
+  g_variant_builder_add(&builder, "{sv}", "multiple",
+                        g_variant_new_boolean(false));
+
+  Scoped<GVariant> variant(
+      g_dbus_proxy_get_cached_property(proxy_, "AvailableCursorModes"));
+  if (variant.get()) {
+    uint32_t modes = 0;
+    g_variant_get(variant.get(), "u", &modes);
+    // Make request only if this mode is advertised by the portal
+    // implementation.
+    if (modes & static_cast<uint32_t>(cursor_mode_)) {
+      g_variant_builder_add(
+          &builder, "{sv}", "cursor_mode",
+          g_variant_new_uint32(static_cast<uint32_t>(cursor_mode_)));
+    }
+  }
+
+  variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
+  g_variant_builder_add(&builder, "{sv}", "handle_token",
+                        g_variant_new_string(variant_string.get()));
+
+  sources_handle_ = PrepareSignalHandle(connection_, variant_string.get());
+  sources_request_signal_id_ = SetupRequestResponseSignal(
+      sources_handle_.c_str(), OnSourcesRequestResponseSignal);
+
+  RTC_LOG(LS_INFO) << "Requesting sources from the screen cast session.";
+  g_dbus_proxy_call(
+      proxy_, "SelectSources",
+      g_variant_new("(oa{sv})", session_handle_.c_str(), &builder),
+      G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, cancellable_,
+      reinterpret_cast<GAsyncReadyCallback>(OnSourcesRequested), this);
+}
+
+// static
+void ScreenCastPortal::OnSourcesRequested(GDBusProxy* proxy,
+                                          GAsyncResult* result,
+                                          gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  Scoped<GError> error;
+  Scoped<GVariant> variant(
+      g_dbus_proxy_call_finish(proxy, result, error.receive()));
+  if (!variant) {
+    if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED))
+      return;
+    RTC_LOG(LS_ERROR) << "Failed to request the sources: " << error->message;
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  RTC_LOG(LS_INFO) << "Sources requested from the screen cast session.";
+
+  Scoped<char> handle;
+  g_variant_get_child(variant.get(), 0, "o", handle.receive());
+  if (!handle) {
+    RTC_LOG(LS_ERROR) << "Failed to initialize the screen cast session.";
+    if (that->sources_request_signal_id_) {
+      g_dbus_connection_signal_unsubscribe(that->connection_,
+                                           that->sources_request_signal_id_);
+      that->sources_request_signal_id_ = 0;
+    }
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  RTC_LOG(LS_INFO) << "Subscribed to sources signal.";
+}
+
+// static
+void ScreenCastPortal::OnSourcesRequestResponseSignal(
+    GDBusConnection* connection,
+    const char* sender_name,
+    const char* object_path,
+    const char* interface_name,
+    const char* signal_name,
+    GVariant* parameters,
+    gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  RTC_LOG(LS_INFO) << "Received sources signal from session.";
+
+  uint32_t portal_response;
+  g_variant_get(parameters, "(u@a{sv})", &portal_response, nullptr);
+  if (portal_response) {
+    RTC_LOG(LS_ERROR)
+        << "Failed to select sources for the screen cast session.";
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  that->StartRequest();
+}
+
+void ScreenCastPortal::StartRequest() {
+  GVariantBuilder builder;
+  Scoped<char> variant_string;
+
+  g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
+  variant_string = g_strdup_printf("webrtc%d", g_random_int_range(0, G_MAXINT));
+  g_variant_builder_add(&builder, "{sv}", "handle_token",
+                        g_variant_new_string(variant_string.get()));
+
+  start_handle_ = PrepareSignalHandle(connection_, variant_string.get());
+  start_request_signal_id_ = SetupRequestResponseSignal(
+      start_handle_.c_str(), OnStartRequestResponseSignal);
+
+  // "Identifier for the application window", this is Wayland, so not "x11:...".
+  const char parent_window[] = "";
+
+  RTC_LOG(LS_INFO) << "Starting the screen cast session.";
+  g_dbus_proxy_call(proxy_, "Start",
+                    g_variant_new("(osa{sv})", session_handle_.c_str(),
+                                  parent_window, &builder),
+                    G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, cancellable_,
+                    reinterpret_cast<GAsyncReadyCallback>(OnStartRequested),
+                    this);
+}
+
+// static
+void ScreenCastPortal::OnStartRequested(GDBusProxy* proxy,
+                                        GAsyncResult* result,
+                                        gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  Scoped<GError> error;
+  Scoped<GVariant> variant(
+      g_dbus_proxy_call_finish(proxy, result, error.receive()));
+  if (!variant) {
+    if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED))
+      return;
+    RTC_LOG(LS_ERROR) << "Failed to start the screen cast session: "
+                      << error->message;
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  RTC_LOG(LS_INFO) << "Initializing the start of the screen cast session.";
+
+  Scoped<char> handle;
+  g_variant_get_child(variant.get(), 0, "o", handle.receive());
+  if (!handle) {
+    RTC_LOG(LS_ERROR)
+        << "Failed to initialize the start of the screen cast session.";
+    if (that->start_request_signal_id_) {
+      g_dbus_connection_signal_unsubscribe(that->connection_,
+                                           that->start_request_signal_id_);
+      that->start_request_signal_id_ = 0;
+    }
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  RTC_LOG(LS_INFO) << "Subscribed to the start signal.";
+}
+
+// static
+void ScreenCastPortal::OnStartRequestResponseSignal(GDBusConnection* connection,
+                                                    const char* sender_name,
+                                                    const char* object_path,
+                                                    const char* interface_name,
+                                                    const char* signal_name,
+                                                    GVariant* parameters,
+                                                    gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  RTC_LOG(LS_INFO) << "Start signal received.";
+  uint32_t portal_response;
+  Scoped<GVariant> response_data;
+  Scoped<GVariantIter> iter;
+  g_variant_get(parameters, "(u@a{sv})", &portal_response,
+                response_data.receive());
+  if (portal_response || !response_data) {
+    RTC_LOG(LS_ERROR) << "Failed to start the screen cast session.";
+    that->PortalFailed(static_cast<RequestResponse>(portal_response));
+    return;
+  }
+
+  // Array of PipeWire streams. See
+  // https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.ScreenCast.xml
+  // documentation for <method name="Start">.
+  if (g_variant_lookup(response_data.get(), "streams", "a(ua{sv})",
+                       iter.receive())) {
+    Scoped<GVariant> variant;
+
+    while (g_variant_iter_next(iter.get(), "@(ua{sv})", variant.receive())) {
+      uint32_t stream_id;
+      uint32_t type;
+      Scoped<GVariant> options;
+
+      g_variant_get(variant.get(), "(u@a{sv})", &stream_id, options.receive());
+      RTC_DCHECK(options.get());
+
+      if (g_variant_lookup(options.get(), "source_type", "u", &type)) {
+        that->capture_source_type_ =
+            static_cast<ScreenCastPortal::CaptureSourceType>(type);
+      }
+
+      that->pw_stream_node_id_ = stream_id;
+
+      break;
+    }
+  }
+
+  that->OpenPipeWireRemote();
+}
+
+void ScreenCastPortal::OpenPipeWireRemote() {
+  GVariantBuilder builder;
+  g_variant_builder_init(&builder, G_VARIANT_TYPE_VARDICT);
+
+  RTC_LOG(LS_INFO) << "Opening the PipeWire remote.";
+
+  g_dbus_proxy_call_with_unix_fd_list(
+      proxy_, "OpenPipeWireRemote",
+      g_variant_new("(oa{sv})", session_handle_.c_str(), &builder),
+      G_DBUS_CALL_FLAGS_NONE, /*timeout=*/-1, /*fd_list=*/nullptr, cancellable_,
+      reinterpret_cast<GAsyncReadyCallback>(OnOpenPipeWireRemoteRequested),
+      this);
+}
+
+// static
+void ScreenCastPortal::OnOpenPipeWireRemoteRequested(GDBusProxy* proxy,
+                                                     GAsyncResult* result,
+                                                     gpointer user_data) {
+  ScreenCastPortal* that = static_cast<ScreenCastPortal*>(user_data);
+  RTC_DCHECK(that);
+
+  Scoped<GError> error;
+  Scoped<GUnixFDList> outlist;
+  Scoped<GVariant> variant(g_dbus_proxy_call_with_unix_fd_list_finish(
+      proxy, outlist.receive(), result, error.receive()));
+  if (!variant) {
+    if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED))
+      return;
+    RTC_LOG(LS_ERROR) << "Failed to open the PipeWire remote: "
+                      << error->message;
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  int32_t index;
+  g_variant_get(variant.get(), "(h)", &index);
+
+  that->pw_fd_ = g_unix_fd_list_get(outlist.get(), index, error.receive());
+
+  if (that->pw_fd_ == -1) {
+    RTC_LOG(LS_ERROR) << "Failed to get file descriptor from the list: "
+                      << error->message;
+    that->PortalFailed(RequestResponse::kError);
+    return;
+  }
+
+  that->notifier_->OnScreenCastRequestResult(
+      ScreenCastPortal::RequestResponse::kSuccess, that->pw_stream_node_id_,
+      that->pw_fd_);
+}
+
+}  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.h b/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.h
new file mode 100644
index 0000000000..7da218ed78
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/screencast_portal.h
@@ -0,0 +1,169 @@
+/*
+ *  Copyright 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef MODULES_DESKTOP_CAPTURE_LINUX_SCREENCAST_PORTAL_H_
+#define MODULES_DESKTOP_CAPTURE_LINUX_SCREENCAST_PORTAL_H_
+
+#include <gio/gio.h>
+
+#include <string>
+
+#include "absl/types/optional.h"
+
+namespace webrtc {
+
+class ScreenCastPortal {
+ public:
+  // Values are set based on source type property in
+  // xdg-desktop-portal/screencast
+  // https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.ScreenCast.xml
+  enum class CaptureSourceType : uint32_t {
+    kScreen = 0b01,
+    kWindow = 0b10,
+    kAnyScreenContent = kScreen | kWindow
+  };
+
+  // Values are set based on cursor mode property in
+  // xdg-desktop-portal/screencast
+  // https://github.com/flatpak/xdg-desktop-portal/blob/master/data/org.freedesktop.portal.ScreenCast.xml
+  enum class CursorMode : uint32_t {
+    // Mouse cursor will not be included in any form
+    kHidden = 0b01,
+    // Mouse cursor will be part of the screen content
+    kEmbedded = 0b10,
+    // Mouse cursor information will be send separately in form of metadata
+    kMetadata = 0b100
+  };
+
+  // Interface that must be implemented by the ScreenCastPortal consumers.
+  enum class RequestResponse {
+    // Success, the request is carried out.
+    kSuccess,
+    // The user cancelled the interaction.
+    kUserCancelled,
+    // The user interaction was ended in some other way.
+    kError,
+
+    kMaxValue = kError
+  };
+
+  class PortalNotifier {
+   public:
+    virtual void OnScreenCastRequestResult(RequestResponse result,
+                                           uint32_t stream_node_id,
+                                           int fd) = 0;
+    virtual void OnScreenCastSessionClosed() = 0;
+
+   protected:
+    PortalNotifier() = default;
+    virtual ~PortalNotifier() = default;
+  };
+
+  explicit ScreenCastPortal(CaptureSourceType source_type,
+                            PortalNotifier* notifier);
+  ~ScreenCastPortal();
+
+  // Initialize ScreenCastPortal with series of DBus calls where we try to
+  // obtain all the required information, like PipeWire file descriptor and
+  // PipeWire stream node ID.
+  //
+  // The observer will return whether the communication with xdg-desktop-portal
+  // was successful and only then you will be able to get all the required
+  // information in order to continue working with PipeWire.
+  void Start();
+
+ private:
+  PortalNotifier* notifier_;
+
+  // A PipeWire stream ID of stream we will be connecting to
+  uint32_t pw_stream_node_id_ = 0;
+  // A file descriptor of PipeWire socket
+  int pw_fd_ = -1;
+
+  CaptureSourceType capture_source_type_ =
+      ScreenCastPortal::CaptureSourceType::kScreen;
+
+  CursorMode cursor_mode_ = ScreenCastPortal::CursorMode::kMetadata;
+
+  GDBusConnection* connection_ = nullptr;
+  GDBusProxy* proxy_ = nullptr;
+  GCancellable* cancellable_ = nullptr;
+  std::string portal_handle_;
+  std::string session_handle_;
+  std::string sources_handle_;
+  std::string start_handle_;
+  guint session_request_signal_id_ = 0;
+  guint sources_request_signal_id_ = 0;
+  guint start_request_signal_id_ = 0;
+  guint session_closed_signal_id_ = 0;
+
+  void PortalFailed(RequestResponse result);
+
+  uint32_t SetupRequestResponseSignal(const char* object_path,
+                                      GDBusSignalCallback callback);
+
+  static void OnProxyRequested(GObject* object,
+                               GAsyncResult* result,
+                               gpointer user_data);
+
+  static std::string PrepareSignalHandle(GDBusConnection* connection,
+                                         const char* token);
+
+  void SessionRequest();
+  static void OnSessionRequested(GDBusProxy* proxy,
+                                 GAsyncResult* result,
+                                 gpointer user_data);
+  static void OnSessionRequestResponseSignal(GDBusConnection* connection,
+                                             const char* sender_name,
+                                             const char* object_path,
+                                             const char* interface_name,
+                                             const char* signal_name,
+                                             GVariant* parameters,
+                                             gpointer user_data);
+  static void OnSessionClosedSignal(GDBusConnection* connection,
+                                    const char* sender_name,
+                                    const char* object_path,
+                                    const char* interface_name,
+                                    const char* signal_name,
+                                    GVariant* parameters,
+                                    gpointer user_data);
+  void SourcesRequest();
+  static void OnSourcesRequested(GDBusProxy* proxy,
+                                 GAsyncResult* result,
+                                 gpointer user_data);
+  static void OnSourcesRequestResponseSignal(GDBusConnection* connection,
+                                             const char* sender_name,
+                                             const char* object_path,
+                                             const char* interface_name,
+                                             const char* signal_name,
+                                             GVariant* parameters,
+                                             gpointer user_data);
+
+  void StartRequest();
+  static void OnStartRequested(GDBusProxy* proxy,
+                               GAsyncResult* result,
+                               gpointer user_data);
+  static void OnStartRequestResponseSignal(GDBusConnection* connection,
+                                           const char* sender_name,
+                                           const char* object_path,
+                                           const char* interface_name,
+                                           const char* signal_name,
+                                           GVariant* parameters,
+                                           gpointer user_data);
+
+  void OpenPipeWireRemote();
+  static void OnOpenPipeWireRemoteRequested(GDBusProxy* proxy,
+                                            GAsyncResult* result,
+                                            gpointer user_data);
+};
+
+}  // namespace webrtc
+
+#endif  // MODULES_DESKTOP_CAPTURE_LINUX_SCREENCAST_PORTAL_H_
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.cc b/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.cc
new file mode 100644
index 0000000000..4fb06ac13d
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.cc
@@ -0,0 +1,944 @@
+/*
+ *  Copyright 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#include "modules/desktop_capture/linux/shared_screencast_stream.h"
+
+#include <fcntl.h>
+#include <drm/drm_fourcc.h>
+#include <pipewire/pipewire.h>
+#include <spa/param/format-utils.h>
+#include <spa/param/props.h>
+#include <spa/param/video/format-utils.h>
+#include <spa/utils/result.h>
+#include <sys/mman.h>
+
+#include <string>
+#include <tuple>
+#include <utility>
+#include <vector>
+
+#include "absl/memory/memory.h"
+#include "modules/desktop_capture/linux/egl_dmabuf.h"
+#include "modules/desktop_capture/screen_capture_frame_queue.h"
+#include "rtc_base/checks.h"
+#include "rtc_base/logging.h"
+#include "rtc_base/sanitizer.h"
+#include "rtc_base/string_encode.h"
+#include "rtc_base/string_to_number.h"
+#include "rtc_base/synchronization/mutex.h"
+
+#if defined(WEBRTC_DLOPEN_PIPEWIRE)
+#include "modules/desktop_capture/linux/pipewire_stubs.h"
+using modules_desktop_capture_linux_wayland::InitializeStubs;
+using modules_desktop_capture_linux_wayland::kModuleDrm;
+using modules_desktop_capture_linux_wayland::kModulePipewire;
+using modules_desktop_capture_linux_wayland::StubPathMap;
+#endif  // defined(WEBRTC_DLOPEN_PIPEWIRE)
+
+namespace webrtc {
+
+const int kBytesPerPixel = 4;
+
+#if defined(WEBRTC_DLOPEN_PIPEWIRE)
+const char kPipeWireLib[] = "libpipewire-0.3.so.0";
+const char kDrmLib[] = "libdrm.so.2";
+#endif
+
+#if !PW_CHECK_VERSION(0, 3, 29)
+#define SPA_POD_PROP_FLAG_MANDATORY (1u << 3)
+#endif
+#if !PW_CHECK_VERSION(0, 3, 33)
+#define SPA_POD_PROP_FLAG_DONT_FIXATE (1u << 4)
+#endif
+
+constexpr int kCursorBpp = 4;
+constexpr int CursorMetaSize(int w, int h) {
+  return (sizeof(struct spa_meta_cursor) + sizeof(struct spa_meta_bitmap) +
+          w * h * kCursorBpp);
+}
+
+struct PipeWireVersion {
+  int major = 0;
+  int minor = 0;
+  int micro = 0;
+};
+
+constexpr PipeWireVersion kDmaBufMinVersion = {0, 3, 24};
+constexpr PipeWireVersion kDmaBufModifierMinVersion = {0, 3, 33};
+constexpr PipeWireVersion kDropSingleModifierMinVersion = {0, 3, 40};
+
+PipeWireVersion ParsePipeWireVersion(const char* version) {
+  std::vector<std::string> parsed_version;
+  rtc::split(version, '.', &parsed_version);
+
+  if (parsed_version.size() != 3) {
+    return {};
+  }
+
+  absl::optional<int> major = rtc::StringToNumber<int>(parsed_version.at(0));
+  absl::optional<int> minor = rtc::StringToNumber<int>(parsed_version.at(1));
+  absl::optional<int> micro = rtc::StringToNumber<int>(parsed_version.at(2));
+
+  // Return invalid version if we failed to parse it
+  if (!major || !minor || !micro) {
+    return {0, 0, 0};
+  }
+
+  return {major.value(), micro.value(), micro.value()};
+}
+
+spa_pod* BuildFormat(spa_pod_builder* builder,
+                     uint32_t format,
+                     const std::vector<uint64_t>& modifiers) {
+  bool first = true;
+  spa_pod_frame frames[2];
+  spa_rectangle pw_min_screen_bounds = spa_rectangle{1, 1};
+  spa_rectangle pw_max_screen_bounds = spa_rectangle{UINT32_MAX, UINT32_MAX};
+
+  spa_pod_builder_push_object(builder, &frames[0], SPA_TYPE_OBJECT_Format,
+                              SPA_PARAM_EnumFormat);
+  spa_pod_builder_add(builder, SPA_FORMAT_mediaType,
+                      SPA_POD_Id(SPA_MEDIA_TYPE_video), 0);
+  spa_pod_builder_add(builder, SPA_FORMAT_mediaSubtype,
+                      SPA_POD_Id(SPA_MEDIA_SUBTYPE_raw), 0);
+  spa_pod_builder_add(builder, SPA_FORMAT_VIDEO_format, SPA_POD_Id(format), 0);
+
+  if (modifiers.size()) {
+    if (modifiers.size() == 1 && modifiers[0] == DRM_FORMAT_MOD_INVALID) {
+      spa_pod_builder_prop(builder, SPA_FORMAT_VIDEO_modifier,
+                           SPA_POD_PROP_FLAG_MANDATORY);
+      spa_pod_builder_long(builder, modifiers[0]);
+    } else {
+      spa_pod_builder_prop(
+          builder, SPA_FORMAT_VIDEO_modifier,
+          SPA_POD_PROP_FLAG_MANDATORY | SPA_POD_PROP_FLAG_DONT_FIXATE);
+      spa_pod_builder_push_choice(builder, &frames[1], SPA_CHOICE_Enum, 0);
+
+      // modifiers from the array
+      for (int64_t val : modifiers) {
+        spa_pod_builder_long(builder, val);
+        // Add the first modifier twice as the very first value is the default
+        // option
+        if (first) {
+          spa_pod_builder_long(builder, val);
+          first = false;
+        }
+      }
+      spa_pod_builder_pop(builder, &frames[1]);
+    }
+  }
+
+  spa_pod_builder_add(
+      builder, SPA_FORMAT_VIDEO_size,
+      SPA_POD_CHOICE_RANGE_Rectangle(
+          &pw_min_screen_bounds, &pw_min_screen_bounds, &pw_max_screen_bounds),
+      0);
+
+  return static_cast<spa_pod*>(spa_pod_builder_pop(builder, &frames[0]));
+}
+
+class PipeWireThreadLoopLock {
+ public:
+  explicit PipeWireThreadLoopLock(pw_thread_loop* loop) : loop_(loop) {
+    pw_thread_loop_lock(loop_);
+  }
+  ~PipeWireThreadLoopLock() { pw_thread_loop_unlock(loop_); }
+
+ private:
+  pw_thread_loop* const loop_;
+};
+
+class ScopedBuf {
+ public:
+  ScopedBuf() {}
+  ScopedBuf(uint8_t* map, int map_size, int fd)
+      : map_(map), map_size_(map_size), fd_(fd) {}
+  ~ScopedBuf() {
+    if (map_ != MAP_FAILED) {
+      munmap(map_, map_size_);
+    }
+  }
+
+  explicit operator bool() { return map_ != MAP_FAILED; }
+
+  void initialize(uint8_t* map, int map_size, int fd) {
+    map_ = map;
+    map_size_ = map_size;
+    fd_ = fd;
+  }
+
+  uint8_t* get() { return map_; }
+
+ protected:
+  uint8_t* map_ = static_cast<uint8_t*>(MAP_FAILED);
+  int map_size_;
+  int fd_;
+};
+
+class SharedScreenCastStreamPrivate {
+ public:
+  SharedScreenCastStreamPrivate();
+  ~SharedScreenCastStreamPrivate();
+
+  void StopAndCleanupStream();
+  bool StartScreenCastStream(uint32_t stream_node_id, int fd);
+  void StopScreenCastStream();
+  std::unique_ptr<DesktopFrame> CaptureFrame();
+  std::unique_ptr<MouseCursor> CaptureCursor();
+  DesktopVector CaptureCursorPosition();
+
+ private:
+  uint32_t pw_stream_node_id_ = 0;
+
+  DesktopSize stream_size_ = {};
+  DesktopSize frame_size_;
+
+  webrtc::Mutex queue_lock_;
+  ScreenCaptureFrameQueue<SharedDesktopFrame> queue_
+      RTC_GUARDED_BY(&queue_lock_);
+  std::unique_ptr<MouseCursor> mouse_cursor_;
+  DesktopVector mouse_cursor_position_ = DesktopVector(-1, -1);
+
+  int64_t modifier_;
+  std::unique_ptr<EglDmaBuf> egl_dmabuf_;
+  // List of modifiers we query as supported by the graphics card/driver
+  std::vector<uint64_t> modifiers_;
+
+  // PipeWire types
+  struct pw_context* pw_context_ = nullptr;
+  struct pw_core* pw_core_ = nullptr;
+  struct pw_stream* pw_stream_ = nullptr;
+  struct pw_thread_loop* pw_main_loop_ = nullptr;
+  struct spa_source* renegotiate_ = nullptr;
+
+  spa_hook spa_core_listener_;
+  spa_hook spa_stream_listener_;
+
+  // A number used to verify all previous methods and the resulting
+  // events have been handled.
+  int server_version_sync_ = 0;
+  // Version of the running PipeWire server we communicate with
+  PipeWireVersion pw_server_version_;
+  // Version of the library used to run our code
+  PipeWireVersion pw_client_version_;
+
+  // event handlers
+  pw_core_events pw_core_events_ = {};
+  pw_stream_events pw_stream_events_ = {};
+
+  struct spa_video_info_raw spa_video_format_;
+
+  void ProcessBuffer(pw_buffer* buffer);
+  void ConvertRGBxToBGRx(uint8_t* frame, uint32_t size);
+
+  // PipeWire callbacks
+  static void OnCoreError(void* data,
+                          uint32_t id,
+                          int seq,
+                          int res,
+                          const char* message);
+  static void OnCoreDone(void* user_data, uint32_t id, int seq);
+  static void OnCoreInfo(void* user_data, const pw_core_info* info);
+  static void OnStreamParamChanged(void* data,
+                                   uint32_t id,
+                                   const struct spa_pod* format);
+  static void OnStreamStateChanged(void* data,
+                                   pw_stream_state old_state,
+                                   pw_stream_state state,
+                                   const char* error_message);
+  static void OnStreamProcess(void* data);
+  // This will be invoked in case we fail to process DMA-BUF PW buffer using
+  // negotiated stream parameters (modifier). We will drop the modifier we
+  // failed to use and try to use a different one or fallback to shared memory
+  // buffers.
+  static void OnRenegotiateFormat(void* data, uint64_t);
+};
+
+bool operator>=(const PipeWireVersion& current_pw_version,
+                const PipeWireVersion& required_pw_version) {
+  if (!current_pw_version.major && !current_pw_version.minor &&
+      !current_pw_version.micro) {
+    return false;
+  }
+
+  return std::tie(current_pw_version.major, current_pw_version.minor,
+                  current_pw_version.micro) >=
+         std::tie(required_pw_version.major, required_pw_version.minor,
+                  required_pw_version.micro);
+}
+
+bool operator<=(const PipeWireVersion& current_pw_version,
+                const PipeWireVersion& required_pw_version) {
+  if (!current_pw_version.major && !current_pw_version.minor &&
+      !current_pw_version.micro) {
+    return false;
+  }
+
+  return std::tie(current_pw_version.major, current_pw_version.minor,
+                  current_pw_version.micro) <=
+         std::tie(required_pw_version.major, required_pw_version.minor,
+                  required_pw_version.micro);
+}
+
+void SharedScreenCastStreamPrivate::OnCoreError(void* data,
+                                                uint32_t id,
+                                                int seq,
+                                                int res,
+                                                const char* message) {
+  SharedScreenCastStreamPrivate* that =
+      static_cast<SharedScreenCastStreamPrivate*>(data);
+  RTC_DCHECK(that);
+
+  RTC_LOG(LS_ERROR) << "PipeWire remote error: " << message;
+}
+
+void SharedScreenCastStreamPrivate::OnCoreInfo(void* data,
+                                               const pw_core_info* info) {
+  SharedScreenCastStreamPrivate* stream =
+      static_cast<SharedScreenCastStreamPrivate*>(data);
+  RTC_DCHECK(stream);
+
+  stream->pw_server_version_ = ParsePipeWireVersion(info->version);
+}
+
+void SharedScreenCastStreamPrivate::OnCoreDone(void* data,
+                                               uint32_t id,
+                                               int seq) {
+  const SharedScreenCastStreamPrivate* stream =
+      static_cast<SharedScreenCastStreamPrivate*>(data);
+  RTC_DCHECK(stream);
+
+  if (id == PW_ID_CORE && stream->server_version_sync_ == seq) {
+    pw_thread_loop_signal(stream->pw_main_loop_, false);
+  }
+}
+
+// static
+void SharedScreenCastStreamPrivate::OnStreamStateChanged(
+    void* data,
+    pw_stream_state old_state,
+    pw_stream_state state,
+    const char* error_message) {
+  SharedScreenCastStreamPrivate* that =
+      static_cast<SharedScreenCastStreamPrivate*>(data);
+  RTC_DCHECK(that);
+
+  switch (state) {
+    case PW_STREAM_STATE_ERROR:
+      RTC_LOG(LS_ERROR) << "PipeWire stream state error: " << error_message;
+      break;
+    case PW_STREAM_STATE_PAUSED:
+    case PW_STREAM_STATE_STREAMING:
+    case PW_STREAM_STATE_UNCONNECTED:
+    case PW_STREAM_STATE_CONNECTING:
+      break;
+  }
+}
+
+// static
+void SharedScreenCastStreamPrivate::OnStreamParamChanged(
+    void* data,
+    uint32_t id,
+    const struct spa_pod* format) {
+  SharedScreenCastStreamPrivate* that =
+      static_cast<SharedScreenCastStreamPrivate*>(data);
+  RTC_DCHECK(that);
+
+  RTC_LOG(LS_INFO) << "PipeWire stream format changed.";
+  if (!format || id != SPA_PARAM_Format) {
+    return;
+  }
+
+  spa_format_video_raw_parse(format, &that->spa_video_format_);
+
+  auto width = that->spa_video_format_.size.width;
+  auto height = that->spa_video_format_.size.height;
+  auto stride = SPA_ROUND_UP_N(width * kBytesPerPixel, 4);
+  auto size = height * stride;
+
+  that->stream_size_ = DesktopSize(width, height);
+
+  uint8_t buffer[1024] = {};
+  auto builder = spa_pod_builder{buffer, sizeof(buffer)};
+
+  // Setup buffers and meta header for new format.
+
+  // When SPA_FORMAT_VIDEO_modifier is present we can use DMA-BUFs as
+  // the server announces support for it.
+  // See https://github.com/PipeWire/pipewire/blob/master/doc/dma-buf.dox
+  const bool has_modifier =
+      spa_pod_find_prop(format, nullptr, SPA_FORMAT_VIDEO_modifier);
+  that->modifier_ =
+      has_modifier ? that->spa_video_format_.modifier : DRM_FORMAT_MOD_INVALID;
+  std::vector<const spa_pod*> params;
+  const int buffer_types =
+      has_modifier || (that->pw_server_version_ >= kDmaBufMinVersion)
+          ? (1 << SPA_DATA_DmaBuf) | (1 << SPA_DATA_MemFd) |
+                (1 << SPA_DATA_MemPtr)
+          : (1 << SPA_DATA_MemFd) | (1 << SPA_DATA_MemPtr);
+
+  params.push_back(reinterpret_cast<spa_pod*>(spa_pod_builder_add_object(
+      &builder, SPA_TYPE_OBJECT_ParamBuffers, SPA_PARAM_Buffers,
+      SPA_PARAM_BUFFERS_size, SPA_POD_Int(size), SPA_PARAM_BUFFERS_stride,
+      SPA_POD_Int(stride), SPA_PARAM_BUFFERS_buffers,
+      SPA_POD_CHOICE_RANGE_Int(8, 1, 32), SPA_PARAM_BUFFERS_dataType,
+      SPA_POD_CHOICE_FLAGS_Int(buffer_types))));
+  params.push_back(reinterpret_cast<spa_pod*>(spa_pod_builder_add_object(
+      &builder, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type,
+      SPA_POD_Id(SPA_META_Header), SPA_PARAM_META_size,
+      SPA_POD_Int(sizeof(struct spa_meta_header)))));
+  params.push_back(reinterpret_cast<spa_pod*>(spa_pod_builder_add_object(
+      &builder, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type,
+      SPA_POD_Id(SPA_META_VideoCrop), SPA_PARAM_META_size,
+      SPA_POD_Int(sizeof(struct spa_meta_region)))));
+  params.push_back(reinterpret_cast<spa_pod*>(spa_pod_builder_add_object(
+      &builder, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type,
+      SPA_POD_Id(SPA_META_Cursor), SPA_PARAM_META_size,
+      SPA_POD_CHOICE_RANGE_Int(CursorMetaSize(64, 64), CursorMetaSize(1, 1),
+                               CursorMetaSize(384, 384)))));
+  params.push_back(reinterpret_cast<spa_pod*>(spa_pod_builder_add_object(
+      &builder, SPA_TYPE_OBJECT_ParamMeta, SPA_PARAM_Meta, SPA_PARAM_META_type,
+      SPA_POD_Id(SPA_META_VideoDamage), SPA_PARAM_META_size,
+      SPA_POD_CHOICE_RANGE_Int(sizeof(struct spa_meta_region) * 16,
+                               sizeof(struct spa_meta_region) * 1,
+                               sizeof(struct spa_meta_region) * 16))));
+
+  pw_stream_update_params(that->pw_stream_, params.data(), params.size());
+}
+
+// static
+void SharedScreenCastStreamPrivate::OnStreamProcess(void* data) {
+  SharedScreenCastStreamPrivate* that =
+      static_cast<SharedScreenCastStreamPrivate*>(data);
+  RTC_DCHECK(that);
+
+  struct pw_buffer* next_buffer;
+  struct pw_buffer* buffer = nullptr;
+
+  next_buffer = pw_stream_dequeue_buffer(that->pw_stream_);
+  while (next_buffer) {
+    buffer = next_buffer;
+    next_buffer = pw_stream_dequeue_buffer(that->pw_stream_);
+
+    if (next_buffer) {
+      pw_stream_queue_buffer(that->pw_stream_, buffer);
+    }
+  }
+
+  if (!buffer) {
+    return;
+  }
+
+  that->ProcessBuffer(buffer);
+
+  pw_stream_queue_buffer(that->pw_stream_, buffer);
+}
+
+void SharedScreenCastStreamPrivate::OnRenegotiateFormat(void* data, uint64_t) {
+  SharedScreenCastStreamPrivate* that =
+      static_cast<SharedScreenCastStreamPrivate*>(data);
+  RTC_DCHECK(that);
+
+  {
+    PipeWireThreadLoopLock thread_loop_lock(that->pw_main_loop_);
+
+    uint8_t buffer[2048] = {};
+
+    spa_pod_builder builder = spa_pod_builder{buffer, sizeof(buffer)};
+
+    std::vector<const spa_pod*> params;
+
+    for (uint32_t format : {SPA_VIDEO_FORMAT_BGRA, SPA_VIDEO_FORMAT_RGBA,
+                            SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_RGBx}) {
+      if (!that->modifiers_.empty()) {
+        params.push_back(BuildFormat(&builder, format, that->modifiers_));
+      }
+      params.push_back(BuildFormat(&builder, format, /*modifiers=*/{}));
+    }
+
+    pw_stream_update_params(that->pw_stream_, params.data(), params.size());
+  }
+}
+
+SharedScreenCastStreamPrivate::SharedScreenCastStreamPrivate() {}
+
+SharedScreenCastStreamPrivate::~SharedScreenCastStreamPrivate() {
+  StopAndCleanupStream();
+}
+
+void SharedScreenCastStreamPrivate::StopAndCleanupStream()
+{
+  // We get buffers on the PipeWire thread, but this is called from the capturer
+  // thread, so we need to wait on and stop the pipewire thread before we
+  // disconnect the stream so that we can guarantee we aren't in the middle of
+  // processing a new frame.
+
+  // Even if we *do* somehow have the other objects without a pipewire thread,
+  // destroying them without a thread causes a crash.
+  if (!pw_main_loop_)
+    return;
+
+  // While we can stop the thread now, we cannot destroy it until we've cleaned
+  // up the other members.
+  pw_thread_loop_wait(pw_main_loop_);
+  pw_thread_loop_stop(pw_main_loop_);
+
+  if (pw_stream_) {
+    pw_stream_disconnect(pw_stream_);
+    pw_stream_destroy(pw_stream_);
+    pw_stream_ = nullptr;
+
+    {
+      webrtc::MutexLock lock(&queue_lock_);
+      queue_.Reset();
+    }
+  }
+
+  if (pw_core_) {
+    pw_core_disconnect(pw_core_);
+    pw_core_ = nullptr;
+  }
+
+  if (pw_context_) {
+    pw_context_destroy(pw_context_);
+    pw_context_ = nullptr;
+  }
+
+  pw_thread_loop_destroy(pw_main_loop_);
+  pw_main_loop_ = nullptr;
+}
+
+bool SharedScreenCastStreamPrivate::StartScreenCastStream(
+    uint32_t stream_node_id,
+    int fd) {
+#if defined(WEBRTC_DLOPEN_PIPEWIRE)
+  StubPathMap paths;
+
+  // Check if the PipeWire and DRM libraries are available.
+  paths[kModulePipewire].push_back(kPipeWireLib);
+  paths[kModuleDrm].push_back(kDrmLib);
+
+  if (!InitializeStubs(paths)) {
+    RTC_LOG(LS_ERROR)
+        << "One of following libraries is missing on your system:\n"
+        << " - PipeWire (" << kPipeWireLib << ")\n"
+        << " - drm (" << kDrmLib << ")";
+    return false;
+  }
+#endif  // defined(WEBRTC_DLOPEN_PIPEWIRE)
+  egl_dmabuf_ = std::make_unique<EglDmaBuf>();
+
+  pw_stream_node_id_ = stream_node_id;
+
+  pw_init(/*argc=*/nullptr, /*argc=*/nullptr);
+
+  pw_main_loop_ = pw_thread_loop_new("pipewire-main-loop", nullptr);
+
+  pw_context_ =
+    pw_context_new(pw_thread_loop_get_loop(pw_main_loop_), nullptr, 0);
+
+  if (!pw_context_) {
+    RTC_LOG(LS_ERROR) << "Failed to create PipeWire context";
+    return false;
+  }
+
+  if (pw_thread_loop_start(pw_main_loop_) < 0) {
+    RTC_LOG(LS_ERROR) << "Failed to start main PipeWire loop";
+    return false;
+  }
+
+  pw_client_version_ = ParsePipeWireVersion(pw_get_library_version());
+
+  // Initialize event handlers, remote end and stream-related.
+  pw_core_events_.version = PW_VERSION_CORE_EVENTS;
+  pw_core_events_.info = &OnCoreInfo;
+  pw_core_events_.done = &OnCoreDone;
+  pw_core_events_.error = &OnCoreError;
+
+  pw_stream_events_.version = PW_VERSION_STREAM_EVENTS;
+  pw_stream_events_.state_changed = &OnStreamStateChanged;
+  pw_stream_events_.param_changed = &OnStreamParamChanged;
+  pw_stream_events_.process = &OnStreamProcess;
+
+  {
+    PipeWireThreadLoopLock thread_loop_lock(pw_main_loop_);
+
+   if (fd >= 0) {
+      pw_core_ = pw_context_connect_fd(
+          pw_context_, fcntl(fd, F_DUPFD_CLOEXEC), nullptr, 0);
+    } else {
+      pw_core_ = pw_context_connect(pw_context_, nullptr, 0);
+    }
+
+    if (!pw_core_) {
+      RTC_LOG(LS_ERROR) << "Failed to connect PipeWire context";
+      return false;
+    }
+
+    pw_core_add_listener(pw_core_, &spa_core_listener_, &pw_core_events_, this);
+
+    // Add an event that can be later invoked by pw_loop_signal_event()
+    renegotiate_ = pw_loop_add_event(pw_thread_loop_get_loop(pw_main_loop_),
+                                     OnRenegotiateFormat, this);
+
+    server_version_sync_ =
+        pw_core_sync(pw_core_, PW_ID_CORE, server_version_sync_);
+
+    pw_thread_loop_wait(pw_main_loop_);
+
+    pw_properties* reuseProps =
+        pw_properties_new_string("pipewire.client.reuse=1");
+    pw_stream_ = pw_stream_new(pw_core_, "webrtc-consume-stream", reuseProps);
+
+    if (!pw_stream_) {
+      RTC_LOG(LS_ERROR) << "Failed to create PipeWire stream";
+      return false;
+    }
+
+    pw_stream_add_listener(pw_stream_, &spa_stream_listener_,
+                           &pw_stream_events_, this);
+    uint8_t buffer[2048] = {};
+
+    spa_pod_builder builder = spa_pod_builder{buffer, sizeof(buffer)};
+
+    std::vector<const spa_pod*> params;
+    const bool has_required_pw_client_version =
+        pw_client_version_ >= kDmaBufModifierMinVersion;
+    const bool has_required_pw_server_version =
+        pw_server_version_ >= kDmaBufModifierMinVersion;
+    for (uint32_t format : {SPA_VIDEO_FORMAT_BGRA, SPA_VIDEO_FORMAT_RGBA,
+                            SPA_VIDEO_FORMAT_BGRx, SPA_VIDEO_FORMAT_RGBx}) {
+      // Modifiers can be used with PipeWire >= 0.3.33
+      if (has_required_pw_client_version && has_required_pw_server_version) {
+        modifiers_ = egl_dmabuf_->QueryDmaBufModifiers(format);
+
+        if (!modifiers_.empty()) {
+          params.push_back(BuildFormat(&builder, format, modifiers_));
+        }
+      }
+
+      params.push_back(BuildFormat(&builder, format, /*modifiers=*/{}));
+    }
+
+    if (pw_stream_connect(pw_stream_, PW_DIRECTION_INPUT, pw_stream_node_id_,
+                          PW_STREAM_FLAG_AUTOCONNECT, params.data(),
+                          params.size()) != 0) {
+      RTC_LOG(LS_ERROR) << "Could not connect receiving stream.";
+      return false;
+    }
+
+    RTC_LOG(LS_INFO) << "PipeWire remote opened.";
+  }
+  return true;
+}
+
+void SharedScreenCastStreamPrivate::StopScreenCastStream() {
+  StopAndCleanupStream();
+}
+
+std::unique_ptr<DesktopFrame> SharedScreenCastStreamPrivate::CaptureFrame() {
+  webrtc::MutexLock lock(&queue_lock_);
+
+  if (!queue_.current_frame()) {
+    return std::unique_ptr<DesktopFrame>{};
+  }
+
+  std::unique_ptr<SharedDesktopFrame> frame = queue_.current_frame()->Share();
+  return std::move(frame);
+}
+
+std::unique_ptr<MouseCursor> SharedScreenCastStreamPrivate::CaptureCursor() {
+  if (!mouse_cursor_) {
+    return nullptr;
+  }
+
+  return std::move(mouse_cursor_);
+}
+
+DesktopVector SharedScreenCastStreamPrivate::CaptureCursorPosition() {
+  return mouse_cursor_position_;
+}
+
+void SharedScreenCastStreamPrivate::ProcessBuffer(pw_buffer* buffer) {
+  spa_buffer* spa_buffer = buffer->buffer;
+  ScopedBuf map;
+  std::unique_ptr<uint8_t[]> src_unique_ptr;
+  uint8_t* src = nullptr;
+
+  // Try to update the mouse cursor first, because it can be the only
+  // information carried by the buffer
+  {
+    const struct spa_meta_cursor* cursor =
+        static_cast<struct spa_meta_cursor*>(spa_buffer_find_meta_data(
+            spa_buffer, SPA_META_Cursor, sizeof(*cursor)));
+    if (cursor && spa_meta_cursor_is_valid(cursor)) {
+      struct spa_meta_bitmap* bitmap = nullptr;
+
+      if (cursor->bitmap_offset)
+        bitmap =
+            SPA_MEMBER(cursor, cursor->bitmap_offset, struct spa_meta_bitmap);
+
+      if (bitmap && bitmap->size.width > 0 && bitmap->size.height > 0) {
+        const uint8_t* bitmap_data =
+            SPA_MEMBER(bitmap, bitmap->offset, uint8_t);
+        BasicDesktopFrame* mouse_frame = new BasicDesktopFrame(
+            DesktopSize(bitmap->size.width, bitmap->size.height));
+        mouse_frame->CopyPixelsFrom(
+            bitmap_data, bitmap->stride,
+            DesktopRect::MakeWH(bitmap->size.width, bitmap->size.height));
+        mouse_cursor_ = std::make_unique<MouseCursor>(
+            mouse_frame, DesktopVector(cursor->hotspot.x, cursor->hotspot.y));
+      }
+      mouse_cursor_position_.set(cursor->position.x, cursor->position.y);
+    }
+  }
+
+  if (spa_buffer->datas[0].chunk->size == 0) {
+    return;
+  }
+
+  if (spa_buffer->datas[0].type == SPA_DATA_MemFd) {
+    map.initialize(
+        static_cast<uint8_t*>(
+            mmap(nullptr,
+                 spa_buffer->datas[0].maxsize + spa_buffer->datas[0].mapoffset,
+                 PROT_READ, MAP_PRIVATE, spa_buffer->datas[0].fd, 0)),
+        spa_buffer->datas[0].maxsize + spa_buffer->datas[0].mapoffset,
+        spa_buffer->datas[0].fd);
+
+    if (!map) {
+      RTC_LOG(LS_ERROR) << "Failed to mmap the memory: "
+                        << std::strerror(errno);
+      return;
+    }
+
+    src = SPA_MEMBER(map.get(), spa_buffer->datas[0].mapoffset, uint8_t);
+  } else if (spa_buffer->datas[0].type == SPA_DATA_DmaBuf) {
+    const uint n_planes = spa_buffer->n_datas;
+
+    if (!n_planes) {
+      return;
+    }
+
+    std::vector<EglDmaBuf::PlaneData> plane_datas;
+    for (uint32_t i = 0; i < n_planes; ++i) {
+      EglDmaBuf::PlaneData data = {
+          static_cast<int32_t>(spa_buffer->datas[i].fd),
+          static_cast<uint32_t>(spa_buffer->datas[i].chunk->stride),
+          static_cast<uint32_t>(spa_buffer->datas[i].chunk->offset)};
+      plane_datas.push_back(data);
+    }
+
+    // When importing DMA-BUFs, we use the stride (number of bytes from one row
+    // of pixels in the buffer) provided by PipeWire. The stride from PipeWire
+    // is given by the graphics driver and some drivers might add some
+    // additional padding for memory layout optimizations so not everytime the
+    // stride is equal to BYTES_PER_PIXEL x WIDTH. This is fine, because during
+    // the import we will use OpenGL and same graphics driver so it will be able
+    // to work with the stride it provided, but later on when we work with
+    // images we get from DMA-BUFs we will need to update the stride to be equal
+    // to BYTES_PER_PIXEL x WIDTH as that's the size of the DesktopFrame we
+    // allocate for each captured frame.
+    src_unique_ptr = egl_dmabuf_->ImageFromDmaBuf(
+        stream_size_, spa_video_format_.format, plane_datas, modifier_);
+    if (src_unique_ptr) {
+      src = src_unique_ptr.get();
+    } else {
+      RTC_LOG(LS_ERROR) << "Dropping DMA-BUF modifier: " << modifier_
+                        << " and trying to renegotiate stream parameters";
+
+      if (pw_server_version_ >= kDropSingleModifierMinVersion) {
+        modifiers_.erase(
+            std::remove(modifiers_.begin(), modifiers_.end(), modifier_),
+            modifiers_.end());
+      } else {
+        modifiers_.clear();
+      }
+
+      pw_loop_signal_event(pw_thread_loop_get_loop(pw_main_loop_),
+                           renegotiate_);
+      return;
+    }
+  } else if (spa_buffer->datas[0].type == SPA_DATA_MemPtr) {
+    src = static_cast<uint8_t*>(spa_buffer->datas[0].data);
+  }
+
+  if (!src) {
+    return;
+  }
+
+  // Use SPA_META_VideoCrop metadata to get the frame size. KDE and GNOME do
+  // handle screen/window sharing differently. KDE/KWin doesn't use
+  // SPA_META_VideoCrop metadata and when sharing a window, it always sets
+  // stream size to size of the window. With that we just allocate the
+  // DesktopFrame using the size of the stream itself. GNOME/Mutter
+  // always sets stream size to the size of the whole screen, even when sharing
+  // a window. To get the real window size we have to use SPA_META_VideoCrop
+  // metadata. This gives us the size we need in order to allocate the
+  // DesktopFrame.
+
+  struct spa_meta_region* videocrop_metadata =
+      static_cast<struct spa_meta_region*>(spa_buffer_find_meta_data(
+          spa_buffer, SPA_META_VideoCrop, sizeof(*videocrop_metadata)));
+
+  // Video size from metadata is bigger than an actual video stream size.
+  // The metadata are wrong or we should up-scale the video...in both cases
+  // just quit now.
+  if (videocrop_metadata &&
+      (videocrop_metadata->region.size.width >
+           static_cast<uint32_t>(stream_size_.width()) ||
+       videocrop_metadata->region.size.height >
+           static_cast<uint32_t>(stream_size_.height()))) {
+    RTC_LOG(LS_ERROR) << "Stream metadata sizes are wrong!";
+    return;
+  }
+
+  // Use SPA_META_VideoCrop metadata to get the DesktopFrame size in case
+  // a windows is shared and it represents just a small portion of the
+  // stream itself. This will be for example used in case of GNOME (Mutter)
+  // where the stream will have the size of the screen itself, but we care
+  // only about smaller portion representing the window inside.
+  bool videocrop_metadata_use = false;
+  const struct spa_rectangle* videocrop_metadata_size =
+      videocrop_metadata ? &videocrop_metadata->region.size : nullptr;
+
+  if (videocrop_metadata_size && videocrop_metadata_size->width != 0 &&
+      videocrop_metadata_size->height != 0 &&
+      (static_cast<int>(videocrop_metadata_size->width) <
+           stream_size_.width() ||
+       static_cast<int>(videocrop_metadata_size->height) <
+           stream_size_.height())) {
+    videocrop_metadata_use = true;
+  }
+
+  if (videocrop_metadata_use) {
+    frame_size_ = DesktopSize(videocrop_metadata_size->width,
+                              videocrop_metadata_size->height);
+  } else {
+    frame_size_ = stream_size_;
+  }
+
+  // Get the position of the video crop within the stream. Just double-check
+  // that the position doesn't exceed the size of the stream itself. NOTE:
+  // Currently it looks there is no implementation using this.
+  uint32_t y_offset =
+      videocrop_metadata_use &&
+              (videocrop_metadata->region.position.y + frame_size_.height() <=
+               stream_size_.height())
+          ? videocrop_metadata->region.position.y
+          : 0;
+  uint32_t x_offset =
+      videocrop_metadata_use &&
+              (videocrop_metadata->region.position.x + frame_size_.width() <=
+               stream_size_.width())
+          ? videocrop_metadata->region.position.x
+          : 0;
+
+  const uint32_t stream_stride = kBytesPerPixel * stream_size_.width();
+  uint32_t buffer_stride = spa_buffer->datas[0].chunk->stride;
+  uint32_t src_stride = buffer_stride;
+
+  if (spa_buffer->datas[0].type == SPA_DATA_DmaBuf &&
+      buffer_stride > stream_stride) {
+    // When DMA-BUFs are used, sometimes spa_buffer->stride we get might
+    // contain additional padding, but after we import the buffer, the stride
+    // we used is no longer relevant and we should just calculate it based on
+    // the stream width. For more context see https://crbug.com/1333304.
+    src_stride = stream_stride;
+  }
+
+  uint8_t* updated_src =
+      src + (src_stride * y_offset) + (kBytesPerPixel * x_offset);
+
+  webrtc::MutexLock lock(&queue_lock_);
+
+  // Move to the next frame if the current one is being used and shared
+  if (queue_.current_frame() && queue_.current_frame()->IsShared()) {
+    queue_.MoveToNextFrame();
+    if (queue_.current_frame() && queue_.current_frame()->IsShared()) {
+      RTC_LOG(LS_WARNING)
+          << "Failed to process PipeWire buffer: no available frame";
+      return;
+    }
+  }
+
+  if (!queue_.current_frame() ||
+      !queue_.current_frame()->size().equals(frame_size_)) {
+    std::unique_ptr<DesktopFrame> frame(new BasicDesktopFrame(
+        DesktopSize(frame_size_.width(), frame_size_.height())));
+    queue_.ReplaceCurrentFrame(SharedDesktopFrame::Wrap(std::move(frame)));
+  }
+
+  queue_.current_frame()->CopyPixelsFrom(
+      updated_src, (src_stride - (kBytesPerPixel * x_offset)),
+      DesktopRect::MakeWH(frame_size_.width(), frame_size_.height()));
+
+  if (spa_video_format_.format == SPA_VIDEO_FORMAT_RGBx ||
+      spa_video_format_.format == SPA_VIDEO_FORMAT_RGBA) {
+    uint8_t* tmp_src = queue_.current_frame()->data();
+    for (int i = 0; i < frame_size_.height(); ++i) {
+      // If both sides decided to go with the RGBx format we need to convert
+      // it to BGRx to match color format expected by WebRTC.
+      ConvertRGBxToBGRx(tmp_src, queue_.current_frame()->stride());
+      tmp_src += queue_.current_frame()->stride();
+    }
+  }
+}
+
+void SharedScreenCastStreamPrivate::ConvertRGBxToBGRx(uint8_t* frame,
+                                                      uint32_t size) {
+  for (uint32_t i = 0; i < size; i += 4) {
+    uint8_t tempR = frame[i];
+    uint8_t tempB = frame[i + 2];
+    frame[i] = tempB;
+    frame[i + 2] = tempR;
+  }
+}
+
+SharedScreenCastStream::SharedScreenCastStream()
+    : private_(std::make_unique<SharedScreenCastStreamPrivate>()) {}
+
+SharedScreenCastStream::~SharedScreenCastStream() {}
+
+rtc::scoped_refptr<SharedScreenCastStream>
+SharedScreenCastStream::CreateDefault() {
+  // Explicit new, to access non-public constructor.
+  return rtc::scoped_refptr(new SharedScreenCastStream());
+}
+
+bool SharedScreenCastStream::StartScreenCastStream(uint32_t stream_node_id,
+                                                   int fd) {
+  return private_->StartScreenCastStream(stream_node_id, fd);
+}
+
+void SharedScreenCastStream::StopScreenCastStream() {
+  private_->StopScreenCastStream();
+}
+
+std::unique_ptr<DesktopFrame> SharedScreenCastStream::CaptureFrame() {
+  return private_->CaptureFrame();
+}
+
+std::unique_ptr<MouseCursor> SharedScreenCastStream::CaptureCursor() {
+  return private_->CaptureCursor();
+}
+
+absl::optional<DesktopVector> SharedScreenCastStream::CaptureCursorPosition() {
+  DesktopVector position = private_->CaptureCursorPosition();
+
+  // Consider only (x >= 0 and y >= 0) a valid position
+  if (position.x() < 0 || position.y() < 0) {
+    return absl::nullopt;
+  }
+
+  return position;
+}
+
+}  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.h b/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.h
new file mode 100644
index 0000000000..72411e5607
--- /dev/null
+++ b/third_party/libwebrtc/modules/desktop_capture/linux/shared_screencast_stream.h
@@ -0,0 +1,71 @@
+/*
+ *  Copyright 2022 The WebRTC project authors. All Rights Reserved.
+ *
+ *  Use of this source code is governed by a BSD-style license
+ *  that can be found in the LICENSE file in the root of the source
+ *  tree. An additional intellectual property rights grant can be found
+ *  in the file PATENTS.  All contributing project authors may
+ *  be found in the AUTHORS file in the root of the source tree.
+ */
+
+#ifndef MODULES_DESKTOP_CAPTURE_LINUX_SHARED_SCREENCAST_STREAM_H_
+#define MODULES_DESKTOP_CAPTURE_LINUX_SHARED_SCREENCAST_STREAM_H_
+
+#include <memory>
+
+#include "absl/types/optional.h"
+#include "api/ref_counted_base.h"
+#include "api/scoped_refptr.h"
+#include "modules/desktop_capture/desktop_frame.h"
+#include "modules/desktop_capture/mouse_cursor.h"
+#include "rtc_base/system/rtc_export.h"
+
+namespace webrtc {
+
+class SharedScreenCastStreamPrivate;
+
+class RTC_EXPORT SharedScreenCastStream
+    : public rtc::RefCountedBase {
+ public:
+  static rtc::scoped_refptr<SharedScreenCastStream> CreateDefault();
+
+  bool StartScreenCastStream(uint32_t stream_node_id, int fd);
+  void StopScreenCastStream();
+
+  // Below functions return the most recent information we get from a
+  // PipeWire buffer on each Process() callback. This assumes that we
+  // managed to successfuly connect to a PipeWire stream provided by the
+  // compositor (based on stream parameters). The cursor data are obtained
+  // from spa_meta_cursor stream metadata and therefore the cursor is not
+  // part of actual screen/window frame.
+
+  // Returns the most recent screen/window frame we obtained from PipeWire
+  // buffer. Will return an empty frame in case we didn't manage to get a frame
+  // from PipeWire buffer.
+  std::unique_ptr<DesktopFrame> CaptureFrame();
+
+  // Returns the most recent mouse cursor image. Will return an nullptr cursor
+  // in case we didn't manage to get a cursor from PipeWire buffer. NOTE: the
+  // cursor image might not be updated on every cursor location change, but
+  // actually only when its shape changes.
+  std::unique_ptr<MouseCursor> CaptureCursor();
+
+  // Returns the most recent mouse cursor position. Will not return a value in
+  // case we didn't manage to get it from PipeWire buffer.
+  absl::optional<DesktopVector> CaptureCursorPosition();
+
+  ~SharedScreenCastStream();
+
+ protected:
+  SharedScreenCastStream();
+
+ private:
+  SharedScreenCastStream(const SharedScreenCastStream&) = delete;
+  SharedScreenCastStream& operator=(const SharedScreenCastStream&) = delete;
+
+  std::unique_ptr<SharedScreenCastStreamPrivate> private_;
+};
+
+}  // namespace webrtc
+
+#endif  // MODULES_DESKTOP_CAPTURE_LINUX_SHARED_SCREENCAST_STREAM_H_
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc b/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc
deleted file mode 100644
index c43a1f1a0c..0000000000
--- a/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.cc
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- *  Copyright 2018 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#include "modules/desktop_capture/linux/window_capturer_pipewire.h"
-
-#include <memory>
-
-namespace webrtc {
-
-WindowCapturerPipeWire::WindowCapturerPipeWire()
-    : BaseCapturerPipeWire(BaseCapturerPipeWire::CaptureSourceType::kWindow) {}
-WindowCapturerPipeWire::~WindowCapturerPipeWire() {}
-
-// static
-std::unique_ptr<DesktopCapturer>
-WindowCapturerPipeWire::CreateRawWindowCapturer(
-    const DesktopCaptureOptions& options) {
-  return std::make_unique<WindowCapturerPipeWire>();
-}
-
-}  // namespace webrtc
diff --git a/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.h b/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.h
deleted file mode 100644
index 7f184ef299..0000000000
--- a/third_party/libwebrtc/modules/desktop_capture/linux/window_capturer_pipewire.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- *  Copyright 2018 The WebRTC project authors. All Rights Reserved.
- *
- *  Use of this source code is governed by a BSD-style license
- *  that can be found in the LICENSE file in the root of the source
- *  tree. An additional intellectual property rights grant can be found
- *  in the file PATENTS.  All contributing project authors may
- *  be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_CAPTURER_PIPEWIRE_H_
-#define MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_CAPTURER_PIPEWIRE_H_
-
-#include <memory>
-
-#include "modules/desktop_capture/linux/base_capturer_pipewire.h"
-
-namespace webrtc {
-
-class WindowCapturerPipeWire : public BaseCapturerPipeWire {
- public:
-  WindowCapturerPipeWire();
-  ~WindowCapturerPipeWire() override;
-
-  static std::unique_ptr<DesktopCapturer> CreateRawWindowCapturer(
-      const DesktopCaptureOptions& options);
-
-  RTC_DISALLOW_COPY_AND_ASSIGN(WindowCapturerPipeWire);
-};
-
-}  // namespace webrtc
-
-#endif  // MODULES_DESKTOP_CAPTURE_LINUX_WINDOW_CAPTURER_PIPEWIRE_H_
diff --git a/third_party/libwebrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc b/third_party/libwebrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc
index e569f6ef35..4a23ba59b2 100644
--- a/third_party/libwebrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc
+++ b/third_party/libwebrtc/modules/desktop_capture/mouse_cursor_monitor_linux.cc
@@ -17,6 +17,10 @@
 #include "modules/desktop_capture/linux/mouse_cursor_monitor_x11.h"
 #endif  // defined(WEBRTC_USE_X11)
 
+#if defined(WEBRTC_USE_PIPEWIRE)
+#include "modules/desktop_capture/linux/mouse_cursor_monitor_pipewire.h"
+#endif  // defined(WEBRTC_USE_PIPEWIRE)
+
 namespace webrtc {
 
 // static
@@ -44,6 +48,13 @@ MouseCursorMonitor* MouseCursorMonitor::CreateForScreen(
 // static
 std::unique_ptr<MouseCursorMonitor> MouseCursorMonitor::Create(
     const DesktopCaptureOptions& options) {
+#if defined(WEBRTC_USE_PIPEWIRE)
+  if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland() &&
+      options.screencast_stream()) {
+    return std::make_unique<MouseCursorMonitorPipeWire>(options);
+  }
+#endif  // defined(WEBRTC_USE_PIPEWIRE)
+
 #if defined(WEBRTC_USE_X11)
   return MouseCursorMonitorX11::Create(options);
 #else
diff --git a/third_party/libwebrtc/modules/desktop_capture/screen_capturer_linux.cc b/third_party/libwebrtc/modules/desktop_capture/screen_capturer_linux.cc
index 57a2002ac7..b44ae35292 100644
--- a/third_party/libwebrtc/modules/desktop_capture/screen_capturer_linux.cc
+++ b/third_party/libwebrtc/modules/desktop_capture/screen_capturer_linux.cc
@@ -14,7 +14,7 @@
 #include "modules/desktop_capture/desktop_capturer.h"
 
 #if defined(WEBRTC_USE_PIPEWIRE)
-#include "modules/desktop_capture/linux/screen_capturer_pipewire.h"
+#include "modules/desktop_capture/linux/base_capturer_pipewire.h"
 #endif  // defined(WEBRTC_USE_PIPEWIRE)
 
 #if defined(WEBRTC_USE_X11)
@@ -28,7 +28,7 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateRawScreenCapturer(
     const DesktopCaptureOptions& options) {
 #if defined(WEBRTC_USE_PIPEWIRE)
   if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) {
-    return BaseCapturerPipeWire::CreateRawScreenCapturer(options);
+    return std::make_unique<BaseCapturerPipeWire>(options);
   }
 #endif  // defined(WEBRTC_USE_PIPEWIRE)
 
diff --git a/third_party/libwebrtc/modules/desktop_capture/window_capturer_linux.cc b/third_party/libwebrtc/modules/desktop_capture/window_capturer_linux.cc
index ed03ba0291..3bc6577ca5 100644
--- a/third_party/libwebrtc/modules/desktop_capture/window_capturer_linux.cc
+++ b/third_party/libwebrtc/modules/desktop_capture/window_capturer_linux.cc
@@ -14,7 +14,7 @@
 #include "modules/desktop_capture/desktop_capturer.h"
 
 #if defined(WEBRTC_USE_PIPEWIRE)
-#include "modules/desktop_capture/linux/window_capturer_pipewire.h"
+#include "modules/desktop_capture/linux/base_capturer_pipewire.h"
 #endif  // defined(WEBRTC_USE_PIPEWIRE)
 
 #if defined(WEBRTC_USE_X11)
@@ -28,7 +28,7 @@ std::unique_ptr<DesktopCapturer> DesktopCapturer::CreateRawWindowCapturer(
     const DesktopCaptureOptions& options) {
 #if defined(WEBRTC_USE_PIPEWIRE)
   if (options.allow_pipewire() && DesktopCapturer::IsRunningUnderWayland()) {
-    return BaseCapturerPipeWire::CreateRawWindowCapturer(options);
+    return std::make_unique<BaseCapturerPipeWire>(options);
   }
 #endif  // defined(WEBRTC_USE_PIPEWIRE)
 
diff --git a/third_party/moz.build b/third_party/moz.build
index 8cf6f5d9f6..3335225f6b 100644
--- a/third_party/moz.build
+++ b/third_party/moz.build
@@ -58,6 +58,15 @@ with Files("libwebrtc/**"):
 with Files("pipewire/**"):
     BUG_COMPONENT = ("Core", "WebRTC")
 
+with Files("drm/**"):
+    BUG_COMPONENT = ("Core", "WebRTC")
+
+with Files("gbm/**"):
+    BUG_COMPONENT = ("Core", "WebRTC")
+
+with Files("epoxy/**"):
+    BUG_COMPONENT = ("Core", "WebRTC")
+
 with Files('rlbox_wasm2c_sandbox/**'):
     BUG_COMPONENT = ('Firefox Build System', 'General')
 
diff --git a/third_party/pipewire/libpipewire/mozpipewire.cpp b/third_party/pipewire/libpipewire/mozpipewire.cpp
index 1ecfc3196a..fbeeb8e5a7 100644
--- a/third_party/pipewire/libpipewire/mozpipewire.cpp
+++ b/third_party/pipewire/libpipewire/mozpipewire.cpp
@@ -69,11 +69,13 @@ static int (*pw_stream_connect_fn)(struct pw_stream *stream,
                                 enum pw_stream_flags flags,
                                 const struct spa_pod **params,
                                 uint32_t n_params);
+static int (*pw_stream_disconnect_fn)(struct pw_stream *stream);
 static struct pw_buffer* (*pw_stream_dequeue_buffer_fn)(struct pw_stream *stream);
 static void (*pw_stream_destroy_fn)(struct pw_stream *stream);
 static struct pw_stream* (*pw_stream_new_fn)(struct pw_core *core,
                                           const char *name,
                                           struct pw_properties *props);
+
 static int (*pw_stream_queue_buffer_fn)(struct pw_stream *stream,
                                      struct pw_buffer *buffer);
 static int (*pw_stream_update_params_fn)(struct pw_stream *stream,
@@ -87,7 +89,10 @@ static int (*pw_thread_loop_start_fn)(struct pw_thread_loop *loop);
 static void (*pw_thread_loop_stop_fn)(struct pw_thread_loop *loop);
 static void (*pw_thread_loop_lock_fn)(struct pw_thread_loop *loop);
 static void (*pw_thread_loop_unlock_fn)(struct pw_thread_loop *loop);
+static void (*pw_thread_loop_wait_fn)(struct pw_thread_loop *loop);
+static void (*pw_thread_loop_signal_fn)(struct pw_thread_loop *loop, bool wait_for_accept);
 static struct pw_properties* (*pw_properties_new_string_fn)(const char *str);
+static const char* (*pw_get_library_version_fn)();
 
 bool IsPwLibraryLoaded() {
   static bool isLoaded =
@@ -99,6 +104,7 @@ bool IsPwLibraryLoaded() {
           IS_FUNC_LOADED(pw_init_fn) &&
           IS_FUNC_LOADED(pw_stream_add_listener_fn) &&
           IS_FUNC_LOADED(pw_stream_connect_fn) &&
+          IS_FUNC_LOADED(pw_stream_disconnect_fn) &&
           IS_FUNC_LOADED(pw_stream_dequeue_buffer_fn) &&
           IS_FUNC_LOADED(pw_stream_destroy_fn) &&
           IS_FUNC_LOADED(pw_stream_new_fn) &&
@@ -111,7 +117,10 @@ bool IsPwLibraryLoaded() {
           IS_FUNC_LOADED(pw_thread_loop_stop_fn) &&
           IS_FUNC_LOADED(pw_thread_loop_lock_fn) &&
           IS_FUNC_LOADED(pw_thread_loop_unlock_fn) &&
-          IS_FUNC_LOADED(pw_properties_new_string_fn));
+          IS_FUNC_LOADED(pw_thread_loop_signal_fn) &&
+          IS_FUNC_LOADED(pw_thread_loop_wait_fn) &&
+          IS_FUNC_LOADED(pw_properties_new_string_fn) &&
+          IS_FUNC_LOADED(pw_get_library_version_fn));
 
   return isLoaded;
 }
@@ -136,6 +145,7 @@ bool LoadPWLibrary() {
     GET_FUNC(pw_init, pwLib);
     GET_FUNC(pw_stream_add_listener, pwLib);
     GET_FUNC(pw_stream_connect, pwLib);
+    GET_FUNC(pw_stream_disconnect, pwLib);
     GET_FUNC(pw_stream_dequeue_buffer, pwLib);
     GET_FUNC(pw_stream_destroy, pwLib);
     GET_FUNC(pw_stream_new, pwLib);
@@ -148,7 +158,10 @@ bool LoadPWLibrary() {
     GET_FUNC(pw_thread_loop_stop, pwLib);
     GET_FUNC(pw_thread_loop_lock, pwLib);
     GET_FUNC(pw_thread_loop_unlock, pwLib);
+    GET_FUNC(pw_thread_loop_signal, pwLib);
+    GET_FUNC(pw_thread_loop_wait, pwLib);
     GET_FUNC(pw_properties_new_string, pwLib);
+    GET_FUNC(pw_get_library_version, pwLib);
   }
 
   return IsPwLibraryLoaded();
@@ -242,6 +255,15 @@ pw_stream_connect(struct pw_stream *stream,
                               params, n_params);
 }
 
+int
+pw_stream_disconnect(struct pw_stream *stream)
+{
+  if (!LoadPWLibrary()) {
+    return 0;
+  }
+  return pw_stream_disconnect_fn(stream);
+}
+
 struct pw_buffer *
 pw_stream_dequeue_buffer(struct pw_stream *stream)
 {
@@ -356,6 +378,23 @@ pw_thread_loop_unlock(struct pw_thread_loop *loop)
   return pw_thread_loop_unlock_fn(loop);
 }
 
+void
+pw_thread_loop_signal(struct pw_thread_loop *loop, bool wait_for_accept)
+{
+  if (!LoadPWLibrary()) {
+    return;
+  }
+  return pw_thread_loop_signal_fn(loop, wait_for_accept);
+}
+
+void
+pw_thread_loop_wait(struct pw_thread_loop *loop)
+{
+  if (!LoadPWLibrary()) {
+    return;
+  }
+  return pw_thread_loop_wait_fn(loop);
+}
 
 struct pw_properties *
 pw_properties_new_string(const char *str)
@@ -366,3 +405,12 @@ pw_properties_new_string(const char *str)
   return pw_properties_new_string_fn(str);
 }
 
+const char*
+pw_get_library_version()
+{
+  if (!LoadPWLibrary()) {
+    return nullptr;
+  }
+  return pw_get_library_version_fn();
+}
+