@maptrip/map-tiles 1.5.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/map-tiles.js CHANGED
@@ -1107,7 +1107,7 @@ class CollisionDetector {
1107
1107
  }
1108
1108
  }
1109
1109
 
1110
- const URL_TEMPLATE = "https://v${index}.maptrip.de/?tilex=${x}&tiley=${y}&acao=true&context=tomtom${z}&project=${project}&projection=wgs84";
1110
+ const URL_TEMPLATE = "https://v${index}.maptrip.de/?tilex=${x}&tiley=${y}&acao=true&context=level${z}&project=${project}&projection=wgs84";
1111
1111
  const PROVIDER_PROJECTS = {
1112
1112
  tomtom: "TomTom_latest",
1113
1113
  orbis: "Orbis_latest",
@@ -1121,12 +1121,14 @@ const PROVIDER_NAMES = {
1121
1121
  openstreetmap: "OpenStreetMap"
1122
1122
  };
1123
1123
  const PROVIDER_TRAFFIC = {
1124
- tomtom: "https://v0.maptrip.de/tiles?project=TrafficMobileTomTom_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic${z}&projection=wgs84",
1125
- here: "https://v0.maptrip.de/tiles?project=TrafficMobileHere_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic${z}&projection=wgs84",
1126
- openstreetmap: null
1124
+ tomtom: "https://v0.maptrip.de/tiles?project=TrafficMobileTomTom_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic_${z}&projection=wgs84",
1125
+ here: "https://v0.maptrip.de/tiles?project=TrafficMobileHere_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic_${z}&projection=wgs84",
1126
+ openstreetmap: "https://v0.maptrip.de/tiles?project=TrafficMobileOSM_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic_${z}&projection=wgs84",
1127
+ orbis: "https://v0.maptrip.de/tiles?project=TrafficMobileORBIS_EUROPE&tilex=${x}&tiley=${y}&acao=true&context=traffic_${z}&projection=wgs84"
1127
1128
  };
1129
+ const DEFAULT_PROVIDER = "OpenStreetmap";
1128
1130
  const MIN_ZOOM = 2;
1129
- const MAX_ZOOM = 18;
1131
+ const MAX_ZOOM = 21;
1130
1132
  const ATTRIBUTION = '&#169;&nbsp;<a href="https://maptrip.de/" target="_blank">infoware GmbH</a>';
1131
1133
  const VECTOR_TILE_SIZE = 256;
1132
1134
  const VECTOR_TILE_RENDER_PADDING = 32;
@@ -1140,6 +1142,8 @@ class VectorTileRenderer {
1140
1142
  this.preloadImages();
1141
1143
  }
1142
1144
  drawTile(layer, z, boundaries, context) {
1145
+ context.lineJoin = "round";
1146
+ context.lineCap = "round";
1143
1147
  context.fillStyle = this.getBackgroundColor(z);
1144
1148
  context.fillRect(0, 0, VECTOR_TILE_SIZE, VECTOR_TILE_SIZE);
1145
1149
  var collisions = new CollisionDetector();
@@ -1602,17 +1606,46 @@ class VectorTileRenderer {
1602
1606
  }
1603
1607
  return points;
1604
1608
  }
1609
+ /**
1610
+ * @private
1611
+ */
1612
+ translatePolyline(points, delta) {
1613
+ for (let i = 0; i < points.length - 1; i++) {
1614
+ const direction = {
1615
+ x: points[i + 1].x - points[i].x,
1616
+ y: points[i + 1].y - points[i].y
1617
+ };
1618
+ const length = Math.sqrt(Math.pow(direction.x, 2) + Math.pow(direction.y, 2));
1619
+ const normal = {
1620
+ x: direction.y / length,
1621
+ y: -direction.x / length
1622
+ };
1623
+ points[i] = {
1624
+ x: points[i].x - delta * normal.x,
1625
+ y: points[i].y - delta * normal.y
1626
+ };
1627
+ if (i === points.length - 2) {
1628
+ points[i + 1] = {
1629
+ x: points[i + 1].x - delta * normal.x,
1630
+ y: points[i + 1].y - delta * normal.y
1631
+ };
1632
+ }
1633
+ }
1634
+ }
1605
1635
  /**
1606
1636
  * @private
1607
1637
  */
1608
1638
  drawPolyline(coordinates, geoJsonProperties, boundaries, style, context, phase) {
1609
1639
  var merged = { ...VectorTileRenderer.DEFAULT_STYLE.LINE, ...style };
1610
1640
  context.globalAlpha = merged.opacity;
1641
+ let points = this.projectCoordinates(coordinates, boundaries);
1642
+ if (merged.delta > 0) {
1643
+ this.translatePolyline(points, merged.delta);
1644
+ }
1611
1645
  if ("linesOutline" === phase) {
1612
1646
  if (merged.outlineColor && merged.outlineWidth) {
1613
- let points2 = this.projectCoordinates(coordinates, boundaries);
1614
1647
  this.drawPath(
1615
- points2,
1648
+ points,
1616
1649
  merged.outlineColor,
1617
1650
  merged.width + merged.outlineWidth * 2,
1618
1651
  context
@@ -1620,7 +1653,6 @@ class VectorTileRenderer {
1620
1653
  }
1621
1654
  return;
1622
1655
  }
1623
- let points = this.projectCoordinates(coordinates, boundaries);
1624
1656
  this.drawPath(points, merged.color, merged.width, context);
1625
1657
  if (merged.dashColor && merged.dashLength) {
1626
1658
  context.setLineDash([merged.dashLength, merged.dashLength]);
@@ -1846,8 +1878,6 @@ class VectorTileRenderer {
1846
1878
  context.beginPath();
1847
1879
  context.strokeStyle = color;
1848
1880
  context.lineWidth = width;
1849
- context.lineCap = "square";
1850
- context.lineJoin = "miter";
1851
1881
  context.moveTo(points[0].x, points[0].y);
1852
1882
  for (var j = 1; j < points.length; j++) {
1853
1883
  context.lineTo(points[j].x, points[j].y);
@@ -1975,7 +2005,8 @@ class VectorTileRenderer {
1975
2005
  outlineWidth: 0,
1976
2006
  dashColor: void 0,
1977
2007
  dashLength: 0,
1978
- opacity: 1
2008
+ opacity: 1,
2009
+ delta: 0
1979
2010
  },
1980
2011
  IMAGE: {
1981
2012
  url: void 0,
@@ -2040,7 +2071,7 @@ const RENDERING_CONFIG_DEFAULT = {
2040
2071
  },
2041
2072
  {
2042
2073
  from: 8,
2043
- to: 19,
2074
+ to: 21,
2044
2075
  color: "#eeeeee"
2045
2076
  }
2046
2077
  ],
@@ -2073,9 +2104,15 @@ const RENDERING_CONFIG_DEFAULT = {
2073
2104
  interstateNumbers: "interstateNumbers",
2074
2105
  expresswayNumbers: "highway",
2075
2106
  expresswayintersections: "interstate_minor",
2076
- trafficFlowFast: "trafficFlowFast",
2077
- trafficFlowMedium: "trafficFlowMedium",
2078
- trafficFlowSlow: "trafficFlowSlow",
2107
+ trafficFlowFastHighway: "trafficFlowFastHighway",
2108
+ trafficFlowFastInterstate: "trafficFlowFastInterstate",
2109
+ trafficFlowFastMinor: "trafficFlowFastMinor",
2110
+ trafficFlowMediumHighway: "trafficFlowMediumHighway",
2111
+ trafficFlowMediumInterstate: "trafficFlowMediumInterstate",
2112
+ trafficFlowMediumMinor: "trafficFlowMediumMinor",
2113
+ trafficFlowSlowHighway: "trafficFlowSlowHighway",
2114
+ trafficFlowSlowInterstate: "trafficFlowSlowInterstate",
2115
+ trafficFlowSlowMinor: "trafficFlowSlowMinor",
2079
2116
  trafficJam: "trafficJam",
2080
2117
  roadworks: "roadworks",
2081
2118
  dangerousSituation: "dangerous_situation",
@@ -2085,7 +2122,7 @@ const RENDERING_CONFIG_DEFAULT = {
2085
2122
  metropolis: [
2086
2123
  {
2087
2124
  from: 17,
2088
- to: 19,
2125
+ to: 21,
2089
2126
  text: {
2090
2127
  size: 30,
2091
2128
  color: "#606060",
@@ -2123,7 +2160,7 @@ const RENDERING_CONFIG_DEFAULT = {
2123
2160
  large_city: [
2124
2161
  {
2125
2162
  from: 17,
2126
- to: 19,
2163
+ to: 21,
2127
2164
  text: {
2128
2165
  size: 24,
2129
2166
  color: "#606060",
@@ -2161,7 +2198,7 @@ const RENDERING_CONFIG_DEFAULT = {
2161
2198
  city: [
2162
2199
  {
2163
2200
  from: 17,
2164
- to: 19,
2201
+ to: 21,
2165
2202
  text: {
2166
2203
  size: 20,
2167
2204
  color: "#606060",
@@ -2199,7 +2236,7 @@ const RENDERING_CONFIG_DEFAULT = {
2199
2236
  settlement: [
2200
2237
  {
2201
2238
  from: 17,
2202
- to: 19,
2239
+ to: 21,
2203
2240
  text: {
2204
2241
  size: 18,
2205
2242
  color: "#606060",
@@ -2237,7 +2274,7 @@ const RENDERING_CONFIG_DEFAULT = {
2237
2274
  earth: [
2238
2275
  {
2239
2276
  from: 1,
2240
- to: 19,
2277
+ to: 21,
2241
2278
  polygon: {
2242
2279
  color: "#f2f2f2"
2243
2280
  }
@@ -2246,23 +2283,16 @@ const RENDERING_CONFIG_DEFAULT = {
2246
2283
  urban_area: [
2247
2284
  {
2248
2285
  from: 1,
2249
- to: 19,
2286
+ to: 21,
2250
2287
  polygon: {
2251
2288
  color: "rgba(0, 0, 0, 0.05)"
2252
2289
  }
2253
2290
  }
2254
2291
  ],
2255
2292
  forest: [
2256
- {
2257
- from: 1,
2258
- to: 14,
2259
- polygon: {
2260
- color: "#cddfb4"
2261
- }
2262
- },
2263
2293
  {
2264
2294
  from: 15,
2265
- to: 19,
2295
+ to: 21,
2266
2296
  polygon: {
2267
2297
  color: "#cddfb4"
2268
2298
  },
@@ -2272,19 +2302,19 @@ const RENDERING_CONFIG_DEFAULT = {
2272
2302
  font: "Open Sans",
2273
2303
  fontStyle: "italic"
2274
2304
  }
2275
- }
2276
- ],
2277
- natural_park: [
2305
+ },
2278
2306
  {
2279
2307
  from: 1,
2280
2308
  to: 14,
2281
2309
  polygon: {
2282
- color: "#daecbf"
2310
+ color: "#cddfb4"
2283
2311
  }
2284
- },
2312
+ }
2313
+ ],
2314
+ natural_park: [
2285
2315
  {
2286
2316
  from: 15,
2287
- to: 19,
2317
+ to: 21,
2288
2318
  polygon: {
2289
2319
  color: "#daecbf"
2290
2320
  },
@@ -2294,12 +2324,19 @@ const RENDERING_CONFIG_DEFAULT = {
2294
2324
  font: "Open Sans",
2295
2325
  fontStyle: "italic"
2296
2326
  }
2327
+ },
2328
+ {
2329
+ from: 1,
2330
+ to: 14,
2331
+ polygon: {
2332
+ color: "#daecbf"
2333
+ }
2297
2334
  }
2298
2335
  ],
2299
2336
  water: [
2300
2337
  {
2301
2338
  from: 1,
2302
- to: 19,
2339
+ to: 21,
2303
2340
  line: {
2304
2341
  color: "#9fd0fc",
2305
2342
  width: 1
@@ -2319,7 +2356,7 @@ const RENDERING_CONFIG_DEFAULT = {
2319
2356
  country: [
2320
2357
  {
2321
2358
  from: 1,
2322
- to: 19,
2359
+ to: 21,
2323
2360
  line: {
2324
2361
  color: "#acacac"
2325
2362
  },
@@ -2333,21 +2370,32 @@ const RENDERING_CONFIG_DEFAULT = {
2333
2370
  }
2334
2371
  }
2335
2372
  ],
2336
- trafficFlowFast: [
2373
+ trafficFlowFastHighway: [
2337
2374
  {
2338
2375
  from: 1,
2339
- to: 8,
2376
+ to: 5,
2340
2377
  line: {
2341
2378
  color: "#50dc32",
2342
- width: 1
2379
+ width: 1,
2380
+ delta: 1
2343
2381
  }
2344
2382
  },
2345
2383
  {
2346
- from: 9,
2384
+ from: 6,
2385
+ to: 9,
2386
+ line: {
2387
+ color: "#50dc32",
2388
+ width: 2,
2389
+ delta: 1
2390
+ }
2391
+ },
2392
+ {
2393
+ from: 10,
2347
2394
  to: 12,
2348
2395
  line: {
2349
2396
  color: "#50dc32",
2350
- width: 2
2397
+ width: 6,
2398
+ delta: 2
2351
2399
  }
2352
2400
  },
2353
2401
  {
@@ -2355,33 +2403,122 @@ const RENDERING_CONFIG_DEFAULT = {
2355
2403
  to: 15,
2356
2404
  line: {
2357
2405
  color: "#50dc32",
2358
- width: 3
2406
+ width: 9,
2407
+ delta: 2
2359
2408
  }
2360
2409
  },
2361
2410
  {
2362
2411
  from: 16,
2363
- to: 19,
2412
+ to: 21,
2413
+ line: {
2414
+ color: "#50dc32",
2415
+ width: 13,
2416
+ delta: 2
2417
+ }
2418
+ }
2419
+ ],
2420
+ trafficFlowFastInterstate: [
2421
+ {
2422
+ from: 9,
2423
+ to: 9,
2424
+ line: {
2425
+ color: "#50dc32",
2426
+ width: 2,
2427
+ delta: 1
2428
+ }
2429
+ },
2430
+ {
2431
+ from: 10,
2432
+ to: 12,
2433
+ line: {
2434
+ color: "#50dc32",
2435
+ width: 2,
2436
+ delta: 1
2437
+ }
2438
+ },
2439
+ {
2440
+ from: 13,
2441
+ to: 14,
2442
+ line: {
2443
+ color: "#50dc32",
2444
+ width: 6,
2445
+ delta: 2
2446
+ }
2447
+ },
2448
+ {
2449
+ from: 15,
2450
+ to: 16,
2451
+ line: {
2452
+ color: "#50dc32",
2453
+ width: 9,
2454
+ delta: 2
2455
+ }
2456
+ },
2457
+ {
2458
+ from: 17,
2459
+ to: 21,
2460
+ line: {
2461
+ color: "#50dc32",
2462
+ width: 12,
2463
+ delta: 2
2464
+ }
2465
+ }
2466
+ ],
2467
+ trafficFlowFastMinor: [
2468
+ {
2469
+ from: 13,
2470
+ to: 14,
2471
+ line: {
2472
+ color: "#50dc32",
2473
+ width: 1,
2474
+ delta: 1
2475
+ }
2476
+ },
2477
+ {
2478
+ from: 15,
2479
+ to: 16,
2480
+ line: {
2481
+ color: "#50dc32",
2482
+ width: 5,
2483
+ delta: 2
2484
+ }
2485
+ },
2486
+ {
2487
+ from: 17,
2488
+ to: 21,
2364
2489
  line: {
2365
2490
  color: "#50dc32",
2366
- width: 4
2491
+ width: 9,
2492
+ delta: 2
2367
2493
  }
2368
2494
  }
2369
2495
  ],
2370
- trafficFlowMedium: [
2496
+ trafficFlowMediumHighway: [
2371
2497
  {
2372
2498
  from: 1,
2373
- to: 8,
2499
+ to: 5,
2374
2500
  line: {
2375
2501
  color: "#ffa500",
2376
- width: 1
2502
+ width: 1,
2503
+ delta: 1
2377
2504
  }
2378
2505
  },
2379
2506
  {
2380
- from: 9,
2507
+ from: 6,
2508
+ to: 9,
2509
+ line: {
2510
+ color: "#ffa500",
2511
+ width: 2,
2512
+ delta: 1
2513
+ }
2514
+ },
2515
+ {
2516
+ from: 10,
2381
2517
  to: 12,
2382
2518
  line: {
2383
2519
  color: "#ffa500",
2384
- width: 2
2520
+ width: 6,
2521
+ delta: 2
2385
2522
  }
2386
2523
  },
2387
2524
  {
@@ -2389,33 +2526,122 @@ const RENDERING_CONFIG_DEFAULT = {
2389
2526
  to: 15,
2390
2527
  line: {
2391
2528
  color: "#ffa500",
2392
- width: 3
2529
+ width: 9,
2530
+ delta: 2
2393
2531
  }
2394
2532
  },
2395
2533
  {
2396
2534
  from: 16,
2397
- to: 19,
2535
+ to: 21,
2536
+ line: {
2537
+ color: "#ffa500",
2538
+ width: 13,
2539
+ delta: 2
2540
+ }
2541
+ }
2542
+ ],
2543
+ trafficFlowMediumInterstate: [
2544
+ {
2545
+ from: 9,
2546
+ to: 9,
2547
+ line: {
2548
+ color: "#ffa500",
2549
+ width: 2,
2550
+ delta: 1
2551
+ }
2552
+ },
2553
+ {
2554
+ from: 10,
2555
+ to: 12,
2556
+ line: {
2557
+ color: "#ffa500",
2558
+ width: 2,
2559
+ delta: 1
2560
+ }
2561
+ },
2562
+ {
2563
+ from: 13,
2564
+ to: 14,
2565
+ line: {
2566
+ color: "#ffa500",
2567
+ width: 6,
2568
+ delta: 2
2569
+ }
2570
+ },
2571
+ {
2572
+ from: 15,
2573
+ to: 16,
2574
+ line: {
2575
+ color: "#ffa500",
2576
+ width: 9,
2577
+ delta: 2
2578
+ }
2579
+ },
2580
+ {
2581
+ from: 17,
2582
+ to: 21,
2583
+ line: {
2584
+ color: "#ffa500",
2585
+ width: 12,
2586
+ delta: 2
2587
+ }
2588
+ }
2589
+ ],
2590
+ trafficFlowMediumMinor: [
2591
+ {
2592
+ from: 13,
2593
+ to: 14,
2594
+ line: {
2595
+ color: "#ffa500",
2596
+ width: 1,
2597
+ delta: 1
2598
+ }
2599
+ },
2600
+ {
2601
+ from: 15,
2602
+ to: 16,
2603
+ line: {
2604
+ color: "#ffa500",
2605
+ width: 5,
2606
+ delta: 2
2607
+ }
2608
+ },
2609
+ {
2610
+ from: 17,
2611
+ to: 21,
2398
2612
  line: {
2399
2613
  color: "#ffa500",
2400
- width: 4
2614
+ width: 9,
2615
+ delta: 2
2401
2616
  }
2402
2617
  }
2403
2618
  ],
2404
- trafficFlowSlow: [
2619
+ trafficFlowSlowHighway: [
2405
2620
  {
2406
2621
  from: 1,
2407
- to: 8,
2622
+ to: 5,
2408
2623
  line: {
2409
2624
  color: "#c80000",
2410
- width: 1
2625
+ width: 1,
2626
+ delta: 1
2411
2627
  }
2412
2628
  },
2413
2629
  {
2414
- from: 9,
2630
+ from: 6,
2631
+ to: 9,
2632
+ line: {
2633
+ color: "#c80000",
2634
+ width: 2,
2635
+ delta: 1
2636
+ }
2637
+ },
2638
+ {
2639
+ from: 10,
2415
2640
  to: 12,
2416
2641
  line: {
2417
2642
  color: "#c80000",
2418
- width: 2
2643
+ width: 6,
2644
+ delta: 2
2419
2645
  }
2420
2646
  },
2421
2647
  {
@@ -2423,15 +2649,93 @@ const RENDERING_CONFIG_DEFAULT = {
2423
2649
  to: 15,
2424
2650
  line: {
2425
2651
  color: "#c80000",
2426
- width: 3
2652
+ width: 9,
2653
+ delta: 2
2427
2654
  }
2428
2655
  },
2429
2656
  {
2430
2657
  from: 16,
2431
- to: 19,
2658
+ to: 21,
2659
+ line: {
2660
+ color: "#c80000",
2661
+ width: 13,
2662
+ delta: 2
2663
+ }
2664
+ }
2665
+ ],
2666
+ trafficFlowSlowInterstate: [
2667
+ {
2668
+ from: 9,
2669
+ to: 9,
2670
+ line: {
2671
+ color: "#c80000",
2672
+ width: 2,
2673
+ delta: 1
2674
+ }
2675
+ },
2676
+ {
2677
+ from: 10,
2678
+ to: 12,
2679
+ line: {
2680
+ color: "#c80000",
2681
+ width: 2,
2682
+ delta: 1
2683
+ }
2684
+ },
2685
+ {
2686
+ from: 13,
2687
+ to: 14,
2688
+ line: {
2689
+ color: "#c80000",
2690
+ width: 6,
2691
+ delta: 2
2692
+ }
2693
+ },
2694
+ {
2695
+ from: 15,
2696
+ to: 16,
2697
+ line: {
2698
+ color: "#c80000",
2699
+ width: 9,
2700
+ delta: 2
2701
+ }
2702
+ },
2703
+ {
2704
+ from: 17,
2705
+ to: 21,
2706
+ line: {
2707
+ color: "#c80000",
2708
+ width: 12,
2709
+ delta: 2
2710
+ }
2711
+ }
2712
+ ],
2713
+ trafficFlowSlowMinor: [
2714
+ {
2715
+ from: 13,
2716
+ to: 14,
2717
+ line: {
2718
+ color: "#c80000",
2719
+ width: 1,
2720
+ delta: 1
2721
+ }
2722
+ },
2723
+ {
2724
+ from: 15,
2725
+ to: 16,
2726
+ line: {
2727
+ color: "#c80000",
2728
+ width: 5,
2729
+ delta: 2
2730
+ }
2731
+ },
2732
+ {
2733
+ from: 17,
2734
+ to: 21,
2432
2735
  line: {
2433
2736
  color: "#c80000",
2434
- width: 4
2737
+ width: 9,
2738
+ delta: 2
2435
2739
  }
2436
2740
  }
2437
2741
  ],
@@ -2470,7 +2774,7 @@ const RENDERING_CONFIG_DEFAULT = {
2470
2774
  },
2471
2775
  {
2472
2776
  from: 15,
2473
- to: 19,
2777
+ to: 21,
2474
2778
  image: {
2475
2779
  url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDg0Ny4xNTQ2IDc0My42MjUzNyIKICAgaGVpZ2h0PSI3NDMuNjI1MzciCiAgIHdpZHRoPSI4NDcuMTU0NiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMjEzMzkiPjxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTIxMzQ1Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzMjEzNDMiIC8+PGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1LDAsMCwtMS4yNSwwLDc0My42MjUzNCkiCiAgICAgaWQ9ImcyMTM0NyI+PGcKICAgICAgIGlkPSJnMjEzNDkiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTEiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1OTQuNTAyIGMgLTcuNTEyLDAgLTE1LjAyMywtMi44NjcgLTIwLjc1OCwtOC41OTggLTEuODgyLC0xLjg3OSAtMy40NDksLTMuOTUzIC00LjcxMSwtNi4xNTIgbCAtMTUuMjQ2LC0yNi4xNTYgLTAuMDY2LDAgTCA0Ljk4LDQ1LjU1MyBDIDQuOTMsNDUuNDU5IDQuODg3LDQ1LjM2NSA0LjgzMiw0NS4yNjQgMy4zNDgsNDIuODczIDIuMTc2LDQwLjIyMSAxLjM5OCwzNy4zNTMgLTIuNzg5LDIxLjY5NyA2LjUwNCw1LjU5OSAyMi4xNiwxLjQwNCBjIDIuNTksLTAuNjk1IDUuMTg4LC0xLjAxMiA3LjczOCwtMSBsIDYxOC4wNzUsMCBjIDE2LjIxMSwwIDI5LjM1MSwxMy4xNDEgMjkuMzUxLDI5LjM1NiAwLDUuMjk3IC0xLjQxOCwxMC4yODEgLTMuODc5LDE0LjU3OCAtMC4wMTksMC4wMzUgLTAuMDQzLDAuMDYyIC0wLjA1LDAuMDk3IEwgMzY5LjAyMyw1NzIuODQ2IGMgLTMuODYzLDYuNjY0IC01LjY0OCw5LjMwNCAtOS40MDIsMTMuMDU4IC01LjczLDUuNzMxIC0xMy4yNDIsOC41OTggLTIwLjc1NCw4LjU5OCB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTMiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjMTEyMWM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1ODcuMTQ2IGMgLTcuMTI1LDAuMDUxIC0xNC45NTMsLTMuNTkzIC0xOC43ODEsLTEwLjM5OCBMIDEwLjc4OSw0MC44NDkgQyA5LjAwOCwzNy4yMDEgOC4yNTgsMzQuMDI5IDguMjM0LDMwLjQgOC4yMzQsMjMuOTA0IDExLjEwNSwxNy43NCAxNi4wODIsMTMuNTUzIDIwLjQ2OSwxMC4xNjYgMjQuNjE3LDguNCAzMC4yMDMsOC40IGwgNjE3LjkwNiwwIGMgMy43NywtMC4wMzUgNy41NDMsMC44NzEgMTAuOTgxLDMuMTMzIDYuNDQxLDMuODk1IDEwLjM5OCwxMC44ODMgMTAuNDA2LDE4LjQyNiAtMC4xODQsMy44OTQgLTEuMTQ4LDggLTIuODc5LDEwLjg5IEwgMzU3LjUwNCw1NzYuODMgYyAtMC4wMzEsMC4wNDcgLTAuMDU5LDAuMDk0IC0wLjA5NCwwLjE0MSAtMC4wMjcsMC4wNDYgLTAuMDYyLDAuMDg2IC0wLjA5LDAuMTQ0IC0xLjA5NywxLjc1OCAtMi40NzIsMy4zMDUgLTQuMDQ3LDQuNjMzIC0zLjU4MiwzLjEwOSAtOC4wNzgsNC45NzYgLTEyLjgxNiw1LjMwOSAtMC41MzEsMC4wNTQgLTEuMDYyLDAuMDg1IC0xLjU5LDAuMDg5IHogTSAzMC4yMDMsOC40IGwgLTEuNTIzLDAgMS41NTQsMCAtMC4wMzEsMCB6IE0gMzM4LjU0Nyw0ODAuOTI4IDU3NC4yNSw3Mi40IGwgLTQ3MS43MzgsMCAyMzYuMDM1LDQwOC41MjggeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDIxMzU1IgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDMzOC44NjcsNTk0LjkgYyAtNy42MTcsMCAtMTUuMjMsLTIuOTA2IC0yMS4wMzksLTguNzIyIC0xLjkwNiwtMS44OTUgLTMuNDkyLC00LjAwNCAtNC43NzMsLTYuMjI3IGwgLTE1LjEyOSwtMjUuOTU3IC0wLjA3NCwwIEwgNC42NDEsNDUuNzU2IEMgNC41NzQsNDUuNjM5IDQuNTIzLDQ1LjUzNyA0LjQ3Nyw0NS40NTUgMi45NzMsNDMuMDMzIDEuNzk3LDQwLjM1MyAxLjAyLDM3LjQ1OSAtMy4yMywyMS41ODggNi4xOTEsNS4yNzEgMjIuMDU5LDEuMDE3IDI0LjY4LDAuMzE0IDI3LjMxNiwtMC4wMDYgMjkuODk4LDAuMDAyIGwgNjE4LjA3NSwwIGMgMTYuNDI1LDAgMjkuNzUsMTMuMzI4IDI5Ljc1LDI5Ljc1OCAwLDUuMzc1IC0xLjQzOCwxMC40MTQgLTMuOTM0LDE0Ljc3MyAtMC4wMTYsMC4wMTYgLTAuMDIzLDAuMDUxIC0wLjA0NywwLjA5OCBMIDM2OS4zNzksNTczLjA0NSBjIC0zLjg3MSw2LjY2OCAtNS42OTUsOS4zNjMgLTkuNDczLDEzLjEzMyAtNS44MDgsNS44MTYgLTEzLjQyNiw4LjcyMiAtMjEuMDM1LDguNzIyIGwgLTAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgNy41MTIsMCAxNS4wMjQsLTIuODY3IDIwLjc1NCwtOC41OTggMy43NTQsLTMuNzU0IDUuNTM5LC02LjM5NCA5LjQwMiwtMTMuMDU4IEwgNjczLjM5MSw0NC40MzUgYyAwLjAxMSwtMC4wMzUgMC4wMzUsLTAuMDYyIDAuMDU0LC0wLjA5NyAyLjQ2MSwtNC4yOTcgMy44NzksLTkuMjgxIDMuODc5LC0xNC41NzggMCwtMTYuMjE1IC0xMy4xNCwtMjkuMzU2IC0yOS4zNTEsLTI5LjM1NiBsIC02MTguMDc1LDAgQyAyNy4zNDgsMC4zOTIgMjQuNzUsMC43MDkgMjIuMTYsMS40MDQgNi41MDQsNS41OTkgLTIuNzg5LDIxLjY5NyAxLjM5OCwzNy4zNTMgYyAwLjc3LDIuODY4IDEuOTUsNS41MiAzLjQzNCw3LjkxMSAwLjA1NSwwLjEwMSAwLjA5OCwwLjE5NSAwLjE0OCwwLjI4OSBsIDI5My4xMDYsNTA4LjA0MyAwLjA2NiwwIDE1LjI0NiwyNi4xNTYgYyAxLjI2MiwyLjE5OSAyLjgyOSw0LjI3MyA0LjcxMSw2LjE1MiA1LjczNSw1LjczMSAxMy4yMzksOC41OTggMjAuNzU4LDguNTk4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgyMTM1NyIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzNTAuODk4LDE0OS4zODEgYyAwLDIuMzk0IDAuNzksNC43NDYgMi4yMjcsNi42NjQgbCAyLjIwMywyLjk1NyBjIDEuNTYzLDIuMDYyIDIuODcxLDQuMzEyIDMuODkxLDYuNjg3IGwgMTQuNjI5LDMzLjYzNyBjIDEuNDc2LDMuMzk1IDQuODA0LDUuNTYzIDguNDY4LDUuNTYzIGwgOTIuNDI2LDAgYyAzLjY4NCwwIDcuMDEyLC0yLjE2OCA4LjQ4OCwtNS41NjMgbCAxNC42MSwtMzMuNjM3IGMgMS4wMzksLTIuMzc1IDIuMzUxLC00LjYyNSAzLjg5LC02LjY4NyBsIDIuMjI3LC0yLjk1NyBjIDEuNDM0LC0xLjkxOCAyLjIyNywtNC4yNyAyLjIyNywtNi42NjQgbCAwLC0yNC4wNTkgYyAwLC01LjEwMSAtNC4xNDEsLTkuMjQ2IC05LjI2MiwtOS4yNDYgbCAtMTM2Ljc4NSwwIGMgLTUuMDk4LDAgLTkuMjM5LDQuMTQ1IC05LjIzOSw5LjI0NiBsIDAsMjQuMDU5IHogbSAxNy41NTksMTQuODA4IDEyMC4xNjQsMCAtMTIuNzE1LDI5LjIyMyBjIC0wLjU4MiwxLjM1MiAtMS45MTQsMi4yMjcgLTMuMzksMi4yMjcgbCAtODcuOTU0LDAgYyAtMS40NzYsMCAtMi44MDgsLTAuODc1IC0zLjM5LC0yLjIyNyBsIC0xMi43MTUsLTI5LjIyMyB6IG0gLTguMzIsLTUxLjgyIDIyLjE3OSwwIDAsLTIwLjM1MiBjIDAsLTMuMDU4IC0yLjQ3NiwtNS41MzkgLTUuNTM1LC01LjUzOSBsIC0xMS4wOSwwIGMgLTMuMDU4LDAgLTUuNTU0LDIuNDgxIC01LjU1NCw1LjUzOSBsIDAsMjAuMzUyIHogbSAxMTQuNjA1LDAgMjIuMTgsMCAwLC0yMC4zNTIgYyAwLC0zLjA1OCAtMi40NzMsLTUuNTM5IC01LjUzNSwtNS41MzkgbCAtMTEuMDksMCBjIC0zLjA1OSwwIC01LjU1NSwyLjQ4MSAtNS41NTUsNS41MzkgbCAwLDIwLjM1MiB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTkiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMjg1Ljg5OCwyMDAuMzQyIGMgMCwyLjA0MyAwLjY2OCw0LjA0MyAxLjg5NSw1LjY4NyBsIDEuODk1LDIuNTIgYyAxLjMwOCwxLjc2OSAyLjQzMywzLjY2NCAzLjMwOCw1LjcwNyBsIDEyLjQ2MSwyOC42NiBjIDEuMjUsMi44NzUgNC4xMDIsNC43NDYgNy4yMjMsNC43NDYgbCA3OC43OTcsMCBjIDMuMTQsMCA1Ljk3MiwtMS44NzEgNy4yMTgsLTQuNzQ2IGwgMTIuNDY1LC0yOC42NiBjIDAuODk1LC0yLjA0MyAxLjk5NiwtMy45MzggMy4zMjgsLTUuNzA3IGwgMC45MzgsLTEuMjUgLTMzLjEwNiwwIGMgLTQuNjQsMCAtOC44MiwtMi43NSAtMTAuNjc1LC03IGwgLTEyLjMxNywtMjguMzQ0IC02NS41NDMsMCBjIC00LjM0NywwIC03Ljg4NywzLjUxOSAtNy44ODcsNy44OTEgbCAwLDIwLjQ5NiB6IG0gMTQuOTYxLDEyLjYyMSAxMDIuNDM0LDAgLTEwLjg0LDI0LjkxIGMgLTAuNSwxLjE0OCAtMS42MjEsMS44OTggLTIuODkxLDEuODk4IGwgLTc0Ljk2OCwwIGMgLTEuMjUsMCAtMi4zOTUsLTAuNzUgLTIuODk1LC0xLjg5OCBsIC0xMC44NCwtMjQuOTEgeiBtIC03LjA3NCwtNDQuMTc2IDE4Ljg5NSwwIDAsLTE3LjM0OCBjIDAsLTIuNjA1IC0yLjEwMiwtNC43MyAtNC43MjcsLTQuNzMgbCAtOS40NDUsMCBjIC0yLjYyMSwwIC00LjcyMywyLjEyNSAtNC43MjMsNC43MyBsIDAsMTcuMzQ4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgyMTM2MSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAyMjguMTI1LDI0NS42NDIgYyAwLDEuNzI3IDAuNTU5LDMuNDE1IDEuNjAyLDQuODA5IGwgMS42MDEsMi4xMjUgYyAxLjEyNSwxLjUgMi4wNTksMy4xMjUgMi44MDksNC44MzIgbCAxMC41NTEsMjQuMjY2IGMgMS4wNTgsMi40MzcgMy40NTMsNCA2LjA5Myw0IGwgNjYuNjY4LDAgYyAyLjY2NCwwIDUuMDU1LC0xLjU2MyA2LjExNywtNCBsIDEwLjU1MSwtMjQuMjY2IGMgMC43NDYsLTEuNzA3IDEuNjg0LC0zLjMzMiAyLjgwOSwtNC44MzIgbCAxLjYwMSwtMi4xMjUgMC4yNSwtMC4zNzUgLTI2LjA5MywwIGMgLTQuMDk4LDAgLTcuODAxLC0yLjQzNCAtOS40MjYsLTYuMTg0IGwgLTkuNjc2LC0yMi4yODUgLTU4LjgwMSwwIGMgLTMuNjYsMCAtNi42NTYsMi45OTYgLTYuNjU2LDYuNjg0IGwgMCwxNy4zNTEgeiBtIDEyLjY3MiwxMC42ODQgODYuNjYsMCAtOS4xNzYsMjEuMDc4IGMgLTAuNDE0LDAuOTgxIC0xLjM3MSwxLjYwNiAtMi40MzMsMS42MDYgbCAtNjMuNDQyLDAgYyAtMS4wNjIsMCAtMi4wMTksLTAuNjI1IC0yLjQ1NywtMS42MDYgbCAtOS4xNTIsLTIxLjA3OCB6IG0gLTYuMDE2LC0zNy4zODcgMTYsMCAwLC0xNC42ODMgYyAwLC0yLjIwNyAtMS43ODksLTQgLTMuOTkyLC00IGwgLTcuOTkyLDAgYyAtMi4yMDMsMCAtNC4wMTYsMS43OTMgLTQuMDE2LDQgbCAwLDE0LjY4MyB6IiAvPjwvZz48L2c+PC9zdmc+",
2476
2780
  width: 34,
@@ -2520,7 +2824,7 @@ const RENDERING_CONFIG_DEFAULT = {
2520
2824
  },
2521
2825
  {
2522
2826
  from: 15,
2523
- to: 19,
2827
+ to: 21,
2524
2828
  image: {
2525
2829
  url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgaWQ9InN2ZzcyODMiCiAgIHZlcnNpb249IjEuMSIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgd2lkdGg9Ijg0Ny4xNTg1NyIKICAgaGVpZ2h0PSI3NDMuNjIyNjgiCiAgIHZpZXdCb3g9IjAgMCA4NDcuMTU4NTcgNzQzLjYyMjY4Ij48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE3Mjg5Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNzI4NyI+PGNsaXBQYXRoCiAgICAgICBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJjbGlwRW1mUGF0aDEiPjxwYXRoCiAgICAgICAgIGQ9Im0gMCw0OC4yMjQ2IDU0LjgyNDYsMCBMIDU0LjgyNDYsMCAwLDAgMCw0OC4yMjQ2IFoiCiAgICAgICAgIGlkPSJwYXRoMzM0NCIgLz48L2NsaXBQYXRoPjxwYXR0ZXJuCiAgICAgICBpZD0iRU1GaGJhc2VwYXR0ZXJuIgogICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHdpZHRoPSI2IgogICAgICAgaGVpZ2h0PSI2IgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiIC8+PC9kZWZzPjxnCiAgICAgaWQ9Imc3MjkxIgogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNzQzLjYyMjY3KSI+PGcKICAgICAgIGlkPSJnNzI5MyI+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU5NC41IGMgNy41MTIsMCAxNS4wMjgsLTIuODY3IDIwLjc1OCwtOC41OTggMS44NzksLTEuODc5IDMuNDQ1LC0zLjk1MyA0LjcwNywtNi4xNTIgbCAxNS4yNDYsLTI2LjE1NyAwLjA3MSwwIDI5My4xMDEsLTUwOC4wMzkgYyAwLjA1NSwtMC4wOTcgMC4wOTgsLTAuMTk1IDAuMTUzLC0wLjI5MyAxLjQ4OCwtMi4zOTQgMi42NTYsLTUuMDQzIDMuNDI1LC03LjkxIDQuMTk2LC0xNS42NTYgLTUuMDk3LC0zMS43NTQgLTIwLjc1OCwtMzUuOTQ5IC0yLjU4NSwtMC42OTUgLTUuMTgzLC0xLjAxMiAtNy43MzgsLTEgbCAtNjE4LjA2NiwwIGMgLTE2LjIxNSwwIC0yOS4zNTYsMTMuMTQxIC0yOS4zNTYsMjkuMzU2IDAsNS4zMDQgMS40MTQsMTAuMjgxIDMuODc5LDE0LjU3OCAwLjAyLDAuMDMxIDAuMDM1LDAuMDYyIDAuMDUxLDAuMDk3IGwgMzA0LjM2Nyw1MjguNDEgYyAzLjg2Myw2LjY2NSA1LjY1Myw5LjMwNSA5LjQwNiwxMy4wNTkgNS43MzEsNS43MzEgMTMuMjQzLDguNTk4IDIwLjc1NCw4LjU5OCB6IgogICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBpZD0icGF0aDcyOTUiIC8+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU4Ny4xNDQgYyA3LjEyNSwwLjA1MSAxNC45NSwtMy41OSAxOC43ODIsLTEwLjQwNiBMIDY2Ni45MzQsNDAuODQ3IGMgMS43ODUsLTMuNjQ4IDIuNTM1LC02LjgyIDIuNTU4LC0xMC40NDkgMCwtNi40OTYgLTIuODc1LC0xMi42NiAtNy44NDcsLTE2Ljg0IC00LjM4MywtMy4zOTQgLTguNTM2LC01LjE2IC0xNC4xMjIsLTUuMTYgbCAtNjE3LjkwNiwwIEMgMjUuODQ4LDguMzYzIDIyLjA3LDkuMjY5IDE4LjY0MSwxMS41MzEgMTIuMTg4LDE1LjQyOSA4LjIzOCwyMi40MTQgOC4yMywyOS45NTcgYyAwLjE4NCwzLjg5NCAxLjE0NSw4IDIuODc5LDEwLjg5IGwgMzA5LjExNCw1MzUuOTgxIGMgMC4wMjcsMC4wNDcgMC4wNTgsMC4wOTQgMC4wODksMC4xNCAwLjAzMiwwLjA0NyAwLjA2MywwLjA5NCAwLjA5NCwwLjE0NSAxLjA5OCwxLjc1NCAyLjQ3MywzLjMwNSA0LjAzOSw0LjYzMyAzLjU5LDMuMTA5IDguMDg2LDQuOTc2IDEyLjgyNSw1LjMxNiAwLjUzMSwwLjA0NyAxLjA2MiwwLjA3OCAxLjU4OSwwLjA4MiB6IE0gNjQ3LjUyMyw4LjM5OCBsIDEuNTI0LDAgLTEuNTU1LDAgMC4wMzEsMCB6IE0gMzM5LjE4LDQ4MC45MzMgMTAzLjQ3Nyw3Mi4zOTggbCA0NzEuNzM4LDAgLTIzNi4wMzUsNDA4LjUzNSB6IgogICAgICAgICBzdHlsZT0iZmlsbDojYzExMjFjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBpZD0icGF0aDcyOTciIC8+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU5NC44OTggYyA3LjYxOCwwIDE1LjIzMSwtMi45MDYgMjEuMDM5LC04LjcxNSAxLjkwNywtMS45MDIgMy40OTMsLTQuMDA4IDQuNzc0LC02LjIzNCBsIDE1LjEyOSwtMjUuOTU3IDAuMDcsMCAyOTMuMjE1LC01MDguMjM4IGMgMC4wNjYsLTAuMTE4IDAuMTEzLC0wLjIxOSAwLjE2LC0wLjMwMSAxLjUwNCwtMi40MjIgMi42ODQsLTUuMTAyIDMuNDYxLC03Ljk5NiBDIDY4MC45NTcsMjEuNTg2IDY3MS41MzUsNS4yNjkgNjU1LjY2OCwxLjAxNSA2NTMuMDQ3LDAuMzEyIDY1MC40MSwtMC4wMDggNjQ3LjgyNCwwIEwgMjkuNzU4LDAgQyAxMy4zMjgsMCAwLDEzLjMyOCAwLDI5Ljc1OCBjIDAsNS4zNzUgMS40MzgsMTAuNDE3IDMuOTM0LDE0Ljc3MyAwLjAxMSwwLjAxOSAwLjAyNywwLjA1MSAwLjA1LDAuMDk4IGwgMzA0LjM2NCw1MjguNDE0IGMgMy44NzEsNi42NjggNS42OTUsOS4zNjMgOS40NjgsMTMuMTQgNS44MDksNS44MDkgMTMuNDI2LDguNzE1IDIxLjAzOSw4LjcxNSBsIDAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgLTcuNTExLDAgLTE1LjAyMywtMi44NjcgLTIwLjc1NCwtOC41OTggLTMuNzUzLC0zLjc1NCAtNS41NDMsLTYuMzk0IC05LjQwNiwtMTMuMDU5IEwgNC4zMzYsNDQuNDMzIEMgNC4zMTYsNDQuMzk4IDQuMzAxLDQ0LjM2NyA0LjI4MSw0NC4zMzYgMS44MTYsNDAuMDM5IDAuNDAyLDM1LjA2MiAwLjQwMiwyOS43NTggMC40MDIsMTMuNTQzIDEzLjU0MywwLjQwMiAyOS43NTgsMC40MDIgbCA2MTguMDY2LDAgYyAyLjU1NSwtMC4wMTIgNS4xNTMsMC4zMDUgNy43MzgsMSAxNS42NjEsNC4xOTUgMjQuOTU0LDIwLjI5MyAyMC43NTgsMzUuOTQ5IC0wLjc2NSwyLjg2NyAtMS45MzcsNS41MTYgLTMuNDI1LDcuOTEgLTAuMDU1LDAuMDk4IC0wLjA5OCwwLjE5NiAtMC4xNTMsMC4yOTMgbCAtMjkzLjEwMSw1MDguMDM5IC0wLjA3MSwwIC0xNS4yNDYsMjYuMTU3IGMgLTEuMjYyLDIuMTk5IC0yLjgyOCw0LjI3MyAtNC43MDcsNi4xNTIgLTUuNzMsNS43MzEgLTEzLjI0Miw4LjU5OCAtMjAuNzU4LDguNTk4IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGlkPSJwYXRoNzI5OSIgLz48L2c+PC9nPjxnCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoNTQuNjM3NzcxLDAsMCw1NC42Mzc3NzEsMTM1MDguNjYxLC04NTgwLjUzNjQpIgogICAgIGlkPSJnMzM2OSI+PHBhdGgKICAgICAgIGlkPSJwYXRoMzM0NyIKICAgICAgIGQ9IiIKICAgICAgIGNsaXAtcGF0aD0idXJsKCNjbGlwRW1mUGF0aDEpIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6bm9uZSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNDcuMjA4MDcsMTU3LjA0NDA0KSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgzMzU1IgogICAgICAgZD0ibSAtMjM5LjM5NzYzLDE2OC4zMDQ2MiAwLjc2MiwtMC45MTAxNyBjIDAuMDQyMywtMC4wMjEyIDAuMDg0NywtMC4wNjM1IDAuMTI3LC0wLjA2MzUgbCAwLjE0ODE3LC0wLjA2MzUgYyAwLjA4NDcsLTAuMDIxMiAwLjE2OTMzLC0wLjA4NDcgMC4yMzI4MywtMC4xNDgxNiBsIDAuNTI5MTQsLTAuNjEzODEgYyAwLjIzMjgzLC0wLjI5NjMzIDAuNjU2MTcsLTAuMzE3NSAwLjkzMTMzLC0wLjA4NDcgMC4wNDIzLDAuMDIxMiAwLjA4NDcsMC4wNjM1IDAuMTA1ODQsMC4xMDU4NCBsIDEuMzc1ODMsMS43Nzc5NyBjIDAuMDQyMywwLjA2MzUgMC4wNDIzLDAuMTQ4MTcgLTAuMDIxMiwwLjE5MDUgLTAuMDIxMiwwLjAyMTIgLTAuMDYzNSwwLjA0MjMgLTAuMDg0NywwLjA0MjMgbCAtNC4wMDA0NywwIGMgLTAuMDg0NywwIC0wLjEyNywtMC4wNjM1IC0wLjEyNywtMC4xNDgxNyAwLC0wLjAyMTIgMCwtMC4wNjM1IDAuMDIxMiwtMC4wODQ3IHogbSAxLjAxNiwtNS4xMjIzIGMgMCwwLjI3NTE2IC0wLjIzMjgzLDAuNTA4IC0wLjUwOCwwLjUwOCAtMC4yNzUxNiwwIC0wLjUwOCwtMC4yMzI4NCAtMC41MDgsLTAuNTA4IDAsLTAuMjc1MTcgMC4yMzI4NCwtMC40ODY4MSAwLjUwOCwtMC40ODY4MSAwLjI3NTE3LDAgMC41MDgsMC4yMTE2NCAwLjUwOCwwLjQ4NjgxIHogbSAtMi43NTE2NiwyLjEzNzgzIDAuNzQwODMsLTEuMzk3IC0wLjUyOTE3LDAgLTAuMzE3NSwwLjU5MjY3IDAuMzE3NSwwLjI3NTE2IC0wLjEwNTgzLDAuMTkwNSAtMC4zMTc1LC0wLjI1NCAtMC4xNDgxNCwwLjI3NTE3IGMgLTAuMjMyODMsLTAuMTI3IC0wLjMxNzUsLTAuNDIzMzMgLTAuMTkwNSwtMC42MzUgbCAwLjM4MDk3LC0wLjc0MDgzIGMgMC4wNjM1LC0wLjEwNTg0IDAuMTY5MzQsLTAuMTY5MzQgMC4yOTYzNCwtMC4xNjkzNCBsIDEuMTg1MzMsMCBjIDAuMjk2MzMsMCAwLjUyOTE3LDAuMjMyODQgMC41MjkxNywwLjUyOTE3IDAsMC4wMjEyIDAsMC4wMjEyIDAsMC4wNDIzIGwgLTAuMTI3LDEuOTg5NjcgMS4yNDg4MywxLjA1ODMgYyAtMC4wNDIzLDAuMDQyMyAtMC4xMDU4MywwLjA4NDcgLTAuMTkwNSwwLjEyNyBsIC0xLjA3OTUsLTAuOTEwMTQgLTAuMDIxMiwwLjIzMjg0IGMgLTAuMjU0LC0wLjAyMTIgLTAuNDQ0NSwtMC4yMzI4NCAtMC40MjMzMywtMC40ODY4NCBsIDAsLTAuMTA1ODMgLTAuMzE3NSwtMC4yNTQgMC4xMDU4MywtMC4xOTA1IDAuMjMyODQsMC4xNjkzMyAwLjA0MjMsLTAuODI1NSAtMC40ODY4MywwLjkzMTM0IC0wLjgyNTUsLTAuNDQ0NSB6IG0gMS4zNzU4MywzLjIxNzMgYyAtMC4yOTYzMywwIC0wLjU1MDMzLC0wLjIzMjgzIC0wLjU1MDMzLC0wLjUyOTE2IGwgLTAuMDQyMywtMS4xMjE4NCAtMC41NTAzMywtMC44NDY2MyAtMS4zMzM0NywyLjQ5NzYzIGMgLTAuMjU0LC0wLjE0ODE2IC0wLjM1OTg0LC0wLjQ2NTY2IC0wLjIxMTY3LC0wLjc0MDgzIGwgMS4yNDg4MSwtMi4zNDk0NyAwLjgyNTUsMC40MjMzMyAwLjUyOTE2LDAuODI1NDcgYyAwLDAuMDIxMiAwLjAyMTIsMC4wNDIzIDAuMDIxMiwwLjA2MzUiCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjwvZz48L3N2Zz4=",
2526
2830
  width: 34,
@@ -2570,7 +2874,7 @@ const RENDERING_CONFIG_DEFAULT = {
2570
2874
  },
2571
2875
  {
2572
2876
  from: 15,
2573
- to: 19,
2877
+ to: 21,
2574
2878
  image: {
2575
2879
  url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDg0Ny4xNTg1NyA3NDMuNjIyNjgiCiAgIGhlaWdodD0iNzQzLjYyMjY4IgogICB3aWR0aD0iODQ3LjE1ODU3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1NDg4Ij48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1NDk0Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNTQ5MiIgLz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNzQzLjYyMjY3KSIKICAgICBpZD0iZzU0OTYiPjxnCiAgICAgICBpZD0iZzU0OTgiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoNTUwMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguODY3LDU5NC41IGMgLTcuNTEyLDAgLTE1LjAyNywtMi44NjcgLTIwLjc1OCwtOC41OTggLTEuODc5LC0xLjg3OSAtMy40NDUsLTMuOTUzIC00LjcwNywtNi4xNTIgbCAtMTUuMjQ2LC0yNi4xNTcgLTAuMDcsMCBMIDQuOTg0LDQ1LjU1NCBDIDQuOTMsNDUuNDU3IDQuODg3LDQ1LjM1OSA0LjgzMiw0NS4yNjEgMy4zNDQsNDIuODY3IDIuMTc2LDQwLjIxOCAxLjQwNiwzNy4zNTEgLTIuNzg5LDIxLjY5NSA2LjUwNCw1LjU5NyAyMi4xNjQsMS40MDIgYyAyLjU4NiwtMC42OTUgNS4xODQsLTEuMDEyIDcuNzM4LC0xIGwgNjE4LjA2NywwIGMgMTYuMjE1LDAgMjkuMzU1LDEzLjE0MSAyOS4zNTUsMjkuMzU2IDAsNS4zMDQgLTEuNDE0LDEwLjI4MSAtMy44NzksMTQuNTc4IC0wLjAxOSwwLjAzMSAtMC4wMzUsMC4wNjIgLTAuMDUsMC4wOTcgbCAtMzA0LjM2OCw1MjguNDEgYyAtMy44NjMsNi42NjUgLTUuNjUyLDkuMzA1IC05LjQwNiwxMy4wNTkgLTUuNzMsNS43MzEgLTEzLjI0Miw4LjU5OCAtMjAuNzU0LDguNTk4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGg1NTAyIgogICAgICAgICBzdHlsZT0iZmlsbDojYzExMjFjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDMzOC44NjcsNTg3LjE0NCBjIC03LjEyNSwwLjA1MSAtMTQuOTQ5LC0zLjU5IC0xOC43ODEsLTEwLjQwNiBMIDEwLjc5Myw0MC44NDcgQyA5LjAwOCwzNy4xOTkgOC4yNTgsMzQuMDI3IDguMjM0LDMwLjM5OCBjIDAsLTYuNDk2IDIuODc1LC0xMi42NiA3Ljg0OCwtMTYuODQgNC4zODMsLTMuMzk0IDguNTM1LC01LjE2IDE0LjEyMSwtNS4xNiBsIDYxNy45MDYsMCBjIDMuNzcsLTAuMDM1IDcuNTQ3LDAuODcxIDEwLjk3NywzLjEzMyA2LjQ1MywzLjg5OCAxMC40MDIsMTAuODgzIDEwLjQxLDE4LjQyNiAtMC4xODQsMy44OTQgLTEuMTQ0LDggLTIuODc5LDEwLjg5IEwgMzU3LjUwNCw1NzYuODI4IGMgLTAuMDI3LDAuMDQ3IC0wLjA1OSwwLjA5NCAtMC4wOSwwLjE0IC0wLjAzMSwwLjA0NyAtMC4wNjIsMC4wOTQgLTAuMDk0LDAuMTQ1IC0xLjA5NywxLjc1NCAtMi40NzIsMy4zMDUgLTQuMDM5LDQuNjMzIC0zLjU5LDMuMTA5IC04LjA4Niw0Ljk3NiAtMTIuODI0LDUuMzE2IC0wLjUzMSwwLjA0NyAtMS4wNjIsMC4wNzggLTEuNTksMC4wODIgeiBNIDMwLjIwMyw4LjM5OCBsIC0xLjUyMywwIDEuNTU0LDAgLTAuMDMxLDAgeiBNIDMzOC41NDcsNDgwLjkzMyA1NzQuMjUsNzIuMzk4IGwgLTQ3MS43MzgsMCAyMzYuMDM1LDQwOC41MzUgeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDU1MDQiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1OTQuODk4IGMgLTcuNjE3LDAgLTE1LjIzLC0yLjkwNiAtMjEuMDM5LC04LjcxNSAtMS45MDYsLTEuOTAyIC0zLjQ5MiwtNC4wMDggLTQuNzczLC02LjIzNCBsIC0xNS4xMjksLTI1Ljk1NyAtMC4wNzEsMCBMIDQuNjQxLDQ1Ljc1NCBDIDQuNTc0LDQ1LjYzNiA0LjUyNyw0NS41MzUgNC40OCw0NS40NTMgMi45NzcsNDMuMDMxIDEuNzk3LDQwLjM1MSAxLjAyLDM3LjQ1NyAtMy4yMywyMS41ODYgNi4xOTEsNS4yNjkgMjIuMDU5LDEuMDE1IDI0LjY4LDAuMzEyIDI3LjMxNiwtMC4wMDggMjkuOTAyLDAgbCA2MTguMDY3LDAgYyAxNi40MjksMCAyOS43NTgsMTMuMzI4IDI5Ljc1OCwyOS43NTggMCw1LjM3NSAtMS40MzgsMTAuNDE3IC0zLjkzNCwxNC43NzMgLTAuMDEyLDAuMDE5IC0wLjAyNywwLjA1MSAtMC4wNTEsMC4wOTggTCAzNjkuMzc5LDU3My4wNDMgYyAtMy44NzEsNi42NjggLTUuNjk1LDkuMzYzIC05LjQ2OSwxMy4xNCAtNS44MDgsNS44MDkgLTEzLjQyNiw4LjcxNSAtMjEuMDM5LDguNzE1IGwgLTAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgNy41MTIsMCAxNS4wMjQsLTIuODY3IDIwLjc1NCwtOC41OTggMy43NTQsLTMuNzU0IDUuNTQzLC02LjM5NCA5LjQwNiwtMTMuMDU5IEwgNjczLjM5MSw0NC40MzMgYyAwLjAxOSwtMC4wMzUgMC4wMzUsLTAuMDY2IDAuMDU0LC0wLjA5NyAyLjQ2NSwtNC4yOTcgMy44NzksLTkuMjc0IDMuODc5LC0xNC41NzggMCwtMTYuMjE1IC0xMy4xNCwtMjkuMzU2IC0yOS4zNTUsLTI5LjM1NiBsIC02MTguMDY3LDAgQyAyNy4zNDgsMC4zOSAyNC43NSwwLjcwNyAyMi4xNjQsMS40MDIgNi41MDQsNS41OTcgLTIuNzg5LDIxLjY5NSAxLjQwNiwzNy4zNTEgYyAwLjc2NiwyLjg2NyAxLjkzOCw1LjUxNiAzLjQyNiw3LjkxIDAuMDU1LDAuMDk4IDAuMDk4LDAuMTk2IDAuMTUyLDAuMjkzIGwgMjkzLjEwMiw1MDguMDM5IDAuMDcsMCAxNS4yNDYsMjYuMTU3IGMgMS4yNjIsMi4xOTkgMi44MjgsNC4yNzMgNC43MDcsNi4xNTIgNS43MzEsNS43MzEgMTMuMjQzLDguNTk4IDIwLjc1OCw4LjU5OCB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoNTUwNiIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguODY3LDQwOC40MTQgYyAtMTcuNjc2LDAgLTMyLjAwNCwtMTQuMzI4IC0zMi4wMDQsLTMyIGwgMTYsLTE4OC4wMTYgYyAwLC04LjgzNiA2LjM3MSwtMTYuMDE1IDE2LjAwNCwtMTYgOS42MjksMC4wMTYgMTUuOTk2LDcuODIgMTUuOTk2LDE2LjAxMiBsIDE2LDE4OC4wMDQgYyAwLDE3LjY3MiAtMTQuMzI0LDMyIC0zMS45OTYsMzIgeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDU1MDgiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzcwLjg2MywxMjQuMzk4IGMgMCwtMTcuNjgzIC0xNC4zMTYsLTMxLjk5NiAtMzEuOTk2LC0zMS45OTYgLTE3LjY3NiwwIC0zMi4wMDQsMTQuMzA5IC0zMi4wMDQsMzEuOTk2IDAsMTcuNjcyIDE0LjMyOCwzMi4wMDQgMzIuMDA0LDMyLjAwNCAxNy42OCwwIDMxLjk5NiwtMTQuMzMyIDMxLjk5NiwtMzIuMDA0IiAvPjwvZz48L2c+PC9zdmc+",
2576
2880
  width: 34,
@@ -2588,7 +2892,7 @@ const RENDERING_CONFIG_DEFAULT = {
2588
2892
  highway: [
2589
2893
  {
2590
2894
  from: 16,
2591
- to: 19,
2895
+ to: 21,
2592
2896
  line: {
2593
2897
  color: "#f2d078",
2594
2898
  width: 11,
@@ -2664,7 +2968,7 @@ const RENDERING_CONFIG_DEFAULT = {
2664
2968
  interstate_major: [
2665
2969
  {
2666
2970
  from: 17,
2667
- to: 19,
2971
+ to: 21,
2668
2972
  line: {
2669
2973
  width: 10,
2670
2974
  color: "#f9e5a6",
@@ -2735,7 +3039,7 @@ const RENDERING_CONFIG_DEFAULT = {
2735
3039
  interstate_minor: [
2736
3040
  {
2737
3041
  from: 17,
2738
- to: 19,
3042
+ to: 21,
2739
3043
  line: {
2740
3044
  width: 10,
2741
3045
  color: "#ffffff",
@@ -2798,7 +3102,7 @@ const RENDERING_CONFIG_DEFAULT = {
2798
3102
  minor_road: [
2799
3103
  {
2800
3104
  from: 17,
2801
- to: 19,
3105
+ to: 21,
2802
3106
  line: {
2803
3107
  width: 7,
2804
3108
  color: "#ffffff",
@@ -2818,7 +3122,9 @@ const RENDERING_CONFIG_DEFAULT = {
2818
3122
  to: 16,
2819
3123
  line: {
2820
3124
  width: 3,
2821
- color: "#ffffff"
3125
+ color: "#ffffff",
3126
+ outlineColor: "#cccccc",
3127
+ outlineWidth: 1
2822
3128
  },
2823
3129
  text: {
2824
3130
  size: 12,
@@ -2840,7 +3146,7 @@ const RENDERING_CONFIG_DEFAULT = {
2840
3146
  minor_road_oneway: [
2841
3147
  {
2842
3148
  from: 17,
2843
- to: 19,
3149
+ to: 21,
2844
3150
  line: {
2845
3151
  width: 7,
2846
3152
  color: "#ffffff",
@@ -2862,7 +3168,9 @@ const RENDERING_CONFIG_DEFAULT = {
2862
3168
  to: 16,
2863
3169
  line: {
2864
3170
  width: 3,
2865
- color: "#ffffff"
3171
+ color: "#ffffff",
3172
+ outlineColor: "#cccccc",
3173
+ outlineWidth: 1
2866
3174
  },
2867
3175
  text: {
2868
3176
  size: 12,
@@ -2884,7 +3192,7 @@ const RENDERING_CONFIG_DEFAULT = {
2884
3192
  minor_road_oneway_reverse: [
2885
3193
  {
2886
3194
  from: 17,
2887
- to: 19,
3195
+ to: 21,
2888
3196
  line: {
2889
3197
  width: 7,
2890
3198
  color: "#ffffff",
@@ -2906,7 +3214,9 @@ const RENDERING_CONFIG_DEFAULT = {
2906
3214
  to: 16,
2907
3215
  line: {
2908
3216
  width: 3,
2909
- color: "#ffffff"
3217
+ color: "#ffffff",
3218
+ outlineColor: "#cccccc",
3219
+ outlineWidth: 1
2910
3220
  },
2911
3221
  text: {
2912
3222
  size: 12,
@@ -2928,7 +3238,7 @@ const RENDERING_CONFIG_DEFAULT = {
2928
3238
  minor_road_restricted: [
2929
3239
  {
2930
3240
  from: 17,
2931
- to: 19,
3241
+ to: 21,
2932
3242
  line: {
2933
3243
  width: 2,
2934
3244
  color: "#B0B9C4"
@@ -2968,7 +3278,7 @@ const RENDERING_CONFIG_DEFAULT = {
2968
3278
  residential_road: [
2969
3279
  {
2970
3280
  from: 17,
2971
- to: 19,
3281
+ to: 21,
2972
3282
  line: {
2973
3283
  width: 3,
2974
3284
  color: "#ffffff"
@@ -3000,7 +3310,7 @@ const RENDERING_CONFIG_DEFAULT = {
3000
3310
  residential_road_oneway: [
3001
3311
  {
3002
3312
  from: 17,
3003
- to: 19,
3313
+ to: 21,
3004
3314
  line: {
3005
3315
  width: 3,
3006
3316
  color: "#ffffff",
@@ -3034,7 +3344,7 @@ const RENDERING_CONFIG_DEFAULT = {
3034
3344
  residential_road_oneway_rev: [
3035
3345
  {
3036
3346
  from: 17,
3037
- to: 19,
3347
+ to: 21,
3038
3348
  line: {
3039
3349
  width: 3,
3040
3350
  color: "#ffffff",
@@ -3067,8 +3377,8 @@ const RENDERING_CONFIG_DEFAULT = {
3067
3377
  ],
3068
3378
  foot_path: [
3069
3379
  {
3070
- from: 16,
3071
- to: 19,
3380
+ from: 18,
3381
+ to: 21,
3072
3382
  line: {
3073
3383
  width: 2,
3074
3384
  color: "rgba(1, 1, 1, 0)",
@@ -3082,12 +3392,22 @@ const RENDERING_CONFIG_DEFAULT = {
3082
3392
  outlineColor: "#ffffff",
3083
3393
  outlineWidth: 2
3084
3394
  }
3395
+ },
3396
+ {
3397
+ from: 16,
3398
+ to: 17,
3399
+ line: {
3400
+ width: 1,
3401
+ color: "rgba(1, 1, 1, 0)",
3402
+ dashColor: "#B0B9C4",
3403
+ dashLength: 6
3404
+ }
3085
3405
  }
3086
3406
  ],
3087
3407
  rail: [
3088
3408
  {
3089
3409
  from: 16,
3090
- to: 19,
3410
+ to: 21,
3091
3411
  line: {
3092
3412
  width: 2,
3093
3413
  color: "#8B8C8C",
@@ -3108,7 +3428,7 @@ const RENDERING_CONFIG_DEFAULT = {
3108
3428
  ferry: [
3109
3429
  {
3110
3430
  from: 17,
3111
- to: 19,
3431
+ to: 21,
3112
3432
  line: {
3113
3433
  width: 3,
3114
3434
  color: "#74a8e1"
@@ -3148,7 +3468,7 @@ const RENDERING_CONFIG_DEFAULT = {
3148
3468
  interstateNumbers: [
3149
3469
  {
3150
3470
  from: 11,
3151
- to: 19,
3471
+ to: 21,
3152
3472
  image: {
3153
3473
  url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkJ1bmRlc3N0cmFzc2UiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIwMCAxMjAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMTIwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMDAgMTIwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe2ZpbGw6I0Y5REM4MTt9PC9zdHlsZT48cGF0aCBpZD0icmVjdDQiIGNsYXNzPSJzdDAiIGQ9Ik0yMi4zLDBoMTU1LjVDMTkwLDAsMjAwLDEwLDIwMCwyMi4zdjc1LjVjMCwxMi4zLTEwLDIyLjMtMjIuMywyMi4zSDIyLjNDMTAsMTIwLDAsMTEwLDAsOTcuOFYyMi4zIEMwLDEwLDEwLDAsMjIuMywweiIvPjxwYXRoIGlkPSJyZWN0NiIgZD0iTTIyLjMsNC4zaDE1NS41YzkuOSwwLDE4LDguMSwxOCwxOHY3NS41YzAsOS45LTguMSwxOC0xOCwxOEgyMi4zYy05LjksMC0xOC04LjEtMTgtMThWMjIuMyBDNC4zLDEyLjMsMTIuMyw0LjMsMjIuMyw0LjN6Ii8+PHBhdGggaWQ9InJlY3Q4IiBjbGFzcz0ic3QwIiBkPSJNMjIuMywxMS4zaDE1NS41YzYuMSwwLDExLDQuOSwxMSwxMXY3NS41YzAsNi4xLTQuOSwxMS0xMSwxMUgyMi4zYy02LjEsMC0xMS00LjktMTEtMTFWMjIuMyBDMTEuMywxNi4yLDE2LjIsMTEuMywyMi4zLDExLjN6Ii8+PC9zdmc+",
3154
3474
  width: 27,
@@ -3170,115 +3490,355 @@ const RENDERING_CONFIG_TRAFFIC = {
3170
3490
  "background": [
3171
3491
  {
3172
3492
  "from": 1,
3173
- "to": 19,
3493
+ "to": 21,
3174
3494
  "color": "rgba(0, 0, 0, 0)"
3175
3495
  }
3176
3496
  ],
3177
3497
  "layers": {
3178
- "trafficFlowFast": "trafficFlowFast",
3179
- "trafficFlowMedium": "trafficFlowMedium",
3180
- "trafficFlowSlow": "trafficFlowSlow"
3498
+ trafficFlowFastHighway: "trafficFlowFastHighway",
3499
+ trafficFlowFastInterstate: "trafficFlowFastInterstate",
3500
+ trafficFlowFastMinor: "trafficFlowFastMinor",
3501
+ trafficFlowMediumHighway: "trafficFlowMediumHighway",
3502
+ trafficFlowMediumInterstate: "trafficFlowMediumInterstate",
3503
+ trafficFlowMediumMinor: "trafficFlowMediumMinor",
3504
+ trafficFlowSlowHighway: "trafficFlowSlowHighway",
3505
+ trafficFlowSlowInterstate: "trafficFlowSlowInterstate",
3506
+ trafficFlowSlowMinor: "trafficFlowSlowMinor"
3181
3507
  },
3182
3508
  "renderers": {
3183
- "trafficFlowFast": [
3509
+ trafficFlowFastHighway: [
3184
3510
  {
3185
- "from": 1,
3186
- "to": 8,
3187
- "line": {
3188
- "color": "rgba(80, 220, 50, 0.5)",
3189
- "width": 1
3511
+ from: 1,
3512
+ to: 5,
3513
+ line: {
3514
+ color: "#6EDB9C",
3515
+ width: 1,
3516
+ delta: 1
3517
+ }
3518
+ },
3519
+ {
3520
+ from: 6,
3521
+ to: 9,
3522
+ line: {
3523
+ color: "#6EDB9C",
3524
+ width: 1,
3525
+ delta: 1
3190
3526
  }
3191
3527
  },
3192
3528
  {
3193
- "from": 9,
3194
- "to": 12,
3195
- "line": {
3196
- "color": "rgba(80, 220, 50, 0.5)",
3197
- "width": 2
3529
+ from: 10,
3530
+ to: 12,
3531
+ line: {
3532
+ color: "#6EDB9C",
3533
+ width: 2,
3534
+ outlineColor: "#4B9869",
3535
+ outlineWidth: 1
3198
3536
  }
3199
3537
  },
3200
3538
  {
3201
- "from": 13,
3202
- "to": 15,
3203
- "line": {
3204
- "color": "rgba(80, 220, 50, 0.5)",
3205
- "width": 4
3539
+ from: 13,
3540
+ to: 15,
3541
+ line: {
3542
+ color: "#6EDB9C",
3543
+ width: 3,
3544
+ outlineColor: "#4B9869",
3545
+ outlineWidth: 1
3206
3546
  }
3207
3547
  },
3208
3548
  {
3209
- "from": 16,
3210
- "to": 19,
3211
- "line": {
3212
- "color": "rgba(80, 220, 50, 0.5)",
3213
- "width": 6
3549
+ from: 16,
3550
+ to: 21,
3551
+ line: {
3552
+ color: "#6EDB9C",
3553
+ width: 4,
3554
+ outlineColor: "#4B9869",
3555
+ outlineWidth: 1
3214
3556
  }
3215
3557
  }
3216
3558
  ],
3217
- "trafficFlowMedium": [
3559
+ trafficFlowFastInterstate: [
3560
+ {
3561
+ from: 9,
3562
+ to: 12,
3563
+ line: {
3564
+ color: "#6EDB9C",
3565
+ width: 1,
3566
+ delta: 1
3567
+ }
3568
+ },
3218
3569
  {
3219
- "from": 1,
3220
- "to": 8,
3221
- "line": {
3222
- "color": "rgba(255, 165, 0, 0.5)",
3223
- "width": 1
3570
+ from: 13,
3571
+ to: 14,
3572
+ line: {
3573
+ color: "#6EDB9C",
3574
+ width: 2,
3575
+ delta: 2
3224
3576
  }
3225
3577
  },
3226
3578
  {
3227
- "from": 9,
3228
- "to": 12,
3229
- "line": {
3230
- "color": "rgba(255, 165, 0, 0.5)",
3231
- "width": 2
3579
+ from: 15,
3580
+ to: 16,
3581
+ line: {
3582
+ color: "#6EDB9C",
3583
+ width: 2,
3584
+ delta: 2,
3585
+ outlineColor: "#4B9869",
3586
+ outlineWidth: 1
3232
3587
  }
3233
3588
  },
3234
3589
  {
3235
- "from": 13,
3236
- "to": 15,
3237
- "line": {
3238
- "color": "rgba(255, 165, 0, 0.5)",
3239
- "width": 4
3590
+ from: 17,
3591
+ to: 21,
3592
+ line: {
3593
+ color: "#6EDB9C",
3594
+ width: 3,
3595
+ delta: 3,
3596
+ outlineColor: "#4B9869",
3597
+ outlineWidth: 1
3598
+ }
3599
+ }
3600
+ ],
3601
+ trafficFlowFastMinor: [
3602
+ {
3603
+ from: 15,
3604
+ to: 16,
3605
+ line: {
3606
+ color: "#6EDB9C",
3607
+ width: 1,
3608
+ delta: 1
3240
3609
  }
3241
3610
  },
3242
3611
  {
3243
- "from": 16,
3244
- "to": 19,
3245
- "line": {
3246
- "color": "rgba(255, 165, 0, 0.5)",
3247
- "width": 6
3612
+ from: 17,
3613
+ to: 21,
3614
+ line: {
3615
+ color: "#6EDB9C",
3616
+ width: 2,
3617
+ delta: 2
3248
3618
  }
3249
3619
  }
3250
3620
  ],
3251
- "trafficFlowSlow": [
3621
+ trafficFlowMediumHighway: [
3622
+ {
3623
+ from: 1,
3624
+ to: 5,
3625
+ line: {
3626
+ color: "#ffce42",
3627
+ width: 1,
3628
+ delta: 1
3629
+ }
3630
+ },
3631
+ {
3632
+ from: 6,
3633
+ to: 9,
3634
+ line: {
3635
+ color: "#ffce42",
3636
+ width: 1,
3637
+ delta: 1
3638
+ }
3639
+ },
3252
3640
  {
3253
- "from": 1,
3254
- "to": 8,
3255
- "line": {
3256
- "color": "rgba(200, 0, 0, 0.5)",
3257
- "width": 1
3641
+ from: 10,
3642
+ to: 12,
3643
+ line: {
3644
+ color: "#ffce42",
3645
+ width: 2,
3646
+ outlineColor: "#f4bf22",
3647
+ outlineWidth: 1
3258
3648
  }
3259
3649
  },
3260
3650
  {
3261
- "from": 9,
3262
- "to": 12,
3263
- "line": {
3264
- "color": "rgba(200, 0, 0, 0.5)",
3265
- "width": 2
3651
+ from: 13,
3652
+ to: 15,
3653
+ line: {
3654
+ color: "#ffce42",
3655
+ width: 3,
3656
+ outlineColor: "#f4bf22",
3657
+ outlineWidth: 1
3266
3658
  }
3267
3659
  },
3268
3660
  {
3269
- "from": 13,
3270
- "to": 15,
3271
- "line": {
3272
- "color": "rgba(200, 0, 0, 0.5)",
3273
- "width": 4
3661
+ from: 16,
3662
+ to: 21,
3663
+ line: {
3664
+ color: "#ffce42",
3665
+ width: 4,
3666
+ outlineColor: "#f4bf22",
3667
+ outlineWidth: 1
3668
+ }
3669
+ }
3670
+ ],
3671
+ trafficFlowMediumInterstate: [
3672
+ {
3673
+ from: 9,
3674
+ to: 12,
3675
+ line: {
3676
+ color: "#ffce42",
3677
+ width: 1,
3678
+ delta: 1
3274
3679
  }
3275
3680
  },
3276
3681
  {
3277
- "from": 16,
3278
- "to": 19,
3279
- "line": {
3280
- "color": "rgba(200, 0, 0, 0.5)",
3281
- "width": 6
3682
+ from: 13,
3683
+ to: 14,
3684
+ line: {
3685
+ color: "#ffce42",
3686
+ width: 2,
3687
+ delta: 2
3688
+ }
3689
+ },
3690
+ {
3691
+ from: 15,
3692
+ to: 16,
3693
+ line: {
3694
+ color: "#ffce42",
3695
+ width: 2,
3696
+ delta: 2,
3697
+ outlineColor: "#f4bf22",
3698
+ outlineWidth: 1
3699
+ }
3700
+ },
3701
+ {
3702
+ from: 17,
3703
+ to: 21,
3704
+ line: {
3705
+ color: "#ffce42",
3706
+ width: 3,
3707
+ delta: 3,
3708
+ outlineColor: "#f4bf22",
3709
+ outlineWidth: 1
3710
+ }
3711
+ }
3712
+ ],
3713
+ trafficFlowMediumMinor: [
3714
+ {
3715
+ from: 15,
3716
+ to: 16,
3717
+ line: {
3718
+ color: "#ffce42",
3719
+ width: 1,
3720
+ delta: 1
3721
+ }
3722
+ },
3723
+ {
3724
+ from: 17,
3725
+ to: 21,
3726
+ line: {
3727
+ color: "#ffce42",
3728
+ width: 2,
3729
+ delta: 2
3730
+ }
3731
+ }
3732
+ ],
3733
+ trafficFlowSlowHighway: [
3734
+ {
3735
+ from: 1,
3736
+ to: 5,
3737
+ line: {
3738
+ color: "#f14d40",
3739
+ width: 1,
3740
+ delta: 1
3741
+ }
3742
+ },
3743
+ {
3744
+ from: 6,
3745
+ to: 9,
3746
+ line: {
3747
+ color: "#f14d40",
3748
+ width: 1,
3749
+ delta: 1
3750
+ }
3751
+ },
3752
+ {
3753
+ from: 10,
3754
+ to: 12,
3755
+ line: {
3756
+ color: "#f14d40",
3757
+ width: 2,
3758
+ outlineColor: "#96403a",
3759
+ outlineWidth: 1
3760
+ }
3761
+ },
3762
+ {
3763
+ from: 13,
3764
+ to: 15,
3765
+ line: {
3766
+ color: "#f14d40",
3767
+ width: 3,
3768
+ outlineColor: "#96403a",
3769
+ outlineWidth: 1
3770
+ }
3771
+ },
3772
+ {
3773
+ from: 16,
3774
+ to: 21,
3775
+ line: {
3776
+ color: "#f14d40",
3777
+ width: 4,
3778
+ outlineColor: "#96403a",
3779
+ outlineWidth: 1
3780
+ }
3781
+ }
3782
+ ],
3783
+ trafficFlowSlowInterstate: [
3784
+ {
3785
+ from: 9,
3786
+ to: 12,
3787
+ line: {
3788
+ color: "#f14d40",
3789
+ width: 1,
3790
+ delta: 1
3791
+ }
3792
+ },
3793
+ {
3794
+ from: 13,
3795
+ to: 14,
3796
+ line: {
3797
+ color: "#f14d40",
3798
+ width: 2,
3799
+ delta: 2
3800
+ }
3801
+ },
3802
+ {
3803
+ from: 15,
3804
+ to: 16,
3805
+ line: {
3806
+ color: "#f14d40",
3807
+ width: 2,
3808
+ delta: 2,
3809
+ outlineColor: "#96403a",
3810
+ outlineWidth: 1
3811
+ }
3812
+ },
3813
+ {
3814
+ from: 17,
3815
+ to: 21,
3816
+ line: {
3817
+ color: "#f14d40",
3818
+ width: 3,
3819
+ delta: 3,
3820
+ outlineColor: "#96403a",
3821
+ outlineWidth: 1
3822
+ }
3823
+ }
3824
+ ],
3825
+ trafficFlowSlowMinor: [
3826
+ {
3827
+ from: 15,
3828
+ to: 16,
3829
+ line: {
3830
+ color: "#f14d40",
3831
+ width: 1,
3832
+ delta: 1
3833
+ }
3834
+ },
3835
+ {
3836
+ from: 17,
3837
+ to: 21,
3838
+ line: {
3839
+ color: "#f14d40",
3840
+ width: 2,
3841
+ delta: 2
3282
3842
  }
3283
3843
  }
3284
3844
  ]
@@ -3534,7 +4094,7 @@ class VectorTileFactory {
3534
4094
  }
3535
4095
  }
3536
4096
  static DEFAULT_PROPERTIES = {
3537
- provider: "OpenStreetmap",
4097
+ provider: DEFAULT_PROVIDER,
3538
4098
  baseMap: true,
3539
4099
  traffic: false
3540
4100
  };
@@ -3549,7 +4109,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
3549
4109
  },
3550
4110
  {
3551
4111
  from: 8,
3552
- to: 19,
4112
+ to: 21,
3553
4113
  color: "#eeeeee"
3554
4114
  }
3555
4115
  ],
@@ -3582,9 +4142,15 @@ const RENDERING_CONFIG_GRAYSCALE = {
3582
4142
  interstateNumbers: "interstateNumbers",
3583
4143
  expresswayNumbers: "highway",
3584
4144
  expresswayintersections: "interstate_minor",
3585
- trafficFlowFast: "trafficFlowFast",
3586
- trafficFlowMedium: "trafficFlowMedium",
3587
- trafficFlowSlow: "trafficFlowSlow",
4145
+ trafficFlowFastHighway: "trafficFlowFastHighway",
4146
+ trafficFlowFastInterstate: "trafficFlowFastInterstate",
4147
+ trafficFlowFastMinor: "trafficFlowFastMinor",
4148
+ trafficFlowMediumHighway: "trafficFlowMediumHighway",
4149
+ trafficFlowMediumInterstate: "trafficFlowMediumInterstate",
4150
+ trafficFlowMediumMinor: "trafficFlowMediumMinor",
4151
+ trafficFlowSlowHighway: "trafficFlowSlowHighway",
4152
+ trafficFlowSlowInterstate: "trafficFlowSlowInterstate",
4153
+ trafficFlowSlowMinor: "trafficFlowSlowMinor",
3588
4154
  trafficJam: "trafficJam",
3589
4155
  roadworks: "roadworks",
3590
4156
  dangerousSituation: "dangerous_situation",
@@ -3594,7 +4160,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
3594
4160
  metropolis: [
3595
4161
  {
3596
4162
  from: 17,
3597
- to: 19,
4163
+ to: 21,
3598
4164
  text: {
3599
4165
  size: 30,
3600
4166
  color: "#606060",
@@ -3632,7 +4198,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
3632
4198
  large_city: [
3633
4199
  {
3634
4200
  from: 17,
3635
- to: 19,
4201
+ to: 21,
3636
4202
  text: {
3637
4203
  size: 24,
3638
4204
  color: "#606060",
@@ -3670,7 +4236,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
3670
4236
  city: [
3671
4237
  {
3672
4238
  from: 17,
3673
- to: 19,
4239
+ to: 21,
3674
4240
  text: {
3675
4241
  size: 20,
3676
4242
  color: "#606060",
@@ -3708,7 +4274,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
3708
4274
  settlement: [
3709
4275
  {
3710
4276
  from: 17,
3711
- to: 19,
4277
+ to: 21,
3712
4278
  text: {
3713
4279
  size: 18,
3714
4280
  color: "#606060",
@@ -3746,7 +4312,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
3746
4312
  earth: [
3747
4313
  {
3748
4314
  from: 1,
3749
- to: 19,
4315
+ to: 21,
3750
4316
  polygon: {
3751
4317
  color: "#f2f2f2"
3752
4318
  }
@@ -3755,192 +4321,459 @@ const RENDERING_CONFIG_GRAYSCALE = {
3755
4321
  urban_area: [
3756
4322
  {
3757
4323
  from: 1,
3758
- to: 19,
4324
+ to: 21,
3759
4325
  polygon: {
3760
4326
  color: "rgba(0, 0, 0, 0.05)"
3761
4327
  }
3762
4328
  }
3763
4329
  ],
3764
4330
  forest: [
4331
+ {
4332
+ from: 15,
4333
+ to: 21,
4334
+ polygon: {
4335
+ color: "#d4d4d4"
4336
+ },
4337
+ text: {
4338
+ size: 12,
4339
+ color: "#a0a0a0",
4340
+ font: "Open Sans",
4341
+ fontStyle: "italic"
4342
+ }
4343
+ },
3765
4344
  {
3766
4345
  from: 1,
3767
4346
  to: 14,
3768
4347
  polygon: {
3769
4348
  color: "#d4d4d4"
3770
4349
  }
4350
+ }
4351
+ ],
4352
+ natural_park: [
4353
+ {
4354
+ from: 15,
4355
+ to: 21,
4356
+ polygon: {
4357
+ color: "#e1e1e1"
4358
+ },
4359
+ text: {
4360
+ size: 12,
4361
+ color: "#b9b9b9",
4362
+ font: "Open Sans",
4363
+ fontStyle: "italic"
4364
+ }
4365
+ },
4366
+ {
4367
+ from: 1,
4368
+ to: 14,
4369
+ polygon: {
4370
+ color: "#e1e1e1"
4371
+ }
4372
+ }
4373
+ ],
4374
+ water: [
4375
+ {
4376
+ from: 1,
4377
+ to: 21,
4378
+ line: {
4379
+ color: "#c6c6c6",
4380
+ width: 1
4381
+ },
4382
+ polygon: {
4383
+ color: "#BBC5CF"
4384
+ },
4385
+ text: {
4386
+ size: 14,
4387
+ color: "#9e9e9e",
4388
+ font: "Open Sans",
4389
+ fontWeight: "bold",
4390
+ fontStyle: "italic"
4391
+ }
4392
+ }
4393
+ ],
4394
+ country: [
4395
+ {
4396
+ from: 1,
4397
+ to: 21,
4398
+ line: {
4399
+ color: "#acacac"
4400
+ },
4401
+ text: {
4402
+ size: 18,
4403
+ color: "#acacac",
4404
+ font: "Open Sans",
4405
+ fontWeight: "bold",
4406
+ outlineColor: "white",
4407
+ outlineWidth: 2
4408
+ }
4409
+ }
4410
+ ],
4411
+ trafficFlowFastHighway: [
4412
+ {
4413
+ from: 1,
4414
+ to: 5,
4415
+ line: {
4416
+ color: "#50dc32",
4417
+ width: 1,
4418
+ delta: 1
4419
+ }
4420
+ },
4421
+ {
4422
+ from: 6,
4423
+ to: 9,
4424
+ line: {
4425
+ color: "#50dc32",
4426
+ width: 2,
4427
+ delta: 1
4428
+ }
4429
+ },
4430
+ {
4431
+ from: 10,
4432
+ to: 12,
4433
+ line: {
4434
+ color: "#50dc32",
4435
+ width: 6,
4436
+ delta: 2
4437
+ }
4438
+ },
4439
+ {
4440
+ from: 13,
4441
+ to: 15,
4442
+ line: {
4443
+ color: "#50dc32",
4444
+ width: 9,
4445
+ delta: 2
4446
+ }
4447
+ },
4448
+ {
4449
+ from: 16,
4450
+ to: 21,
4451
+ line: {
4452
+ color: "#50dc32",
4453
+ width: 13,
4454
+ delta: 2
4455
+ }
4456
+ }
4457
+ ],
4458
+ trafficFlowFastInterstate: [
4459
+ {
4460
+ from: 9,
4461
+ to: 9,
4462
+ line: {
4463
+ color: "#50dc32",
4464
+ width: 2,
4465
+ delta: 1
4466
+ }
4467
+ },
4468
+ {
4469
+ from: 10,
4470
+ to: 12,
4471
+ line: {
4472
+ color: "#50dc32",
4473
+ width: 2,
4474
+ delta: 1
4475
+ }
4476
+ },
4477
+ {
4478
+ from: 13,
4479
+ to: 14,
4480
+ line: {
4481
+ color: "#50dc32",
4482
+ width: 6,
4483
+ delta: 2
4484
+ }
4485
+ },
4486
+ {
4487
+ from: 15,
4488
+ to: 16,
4489
+ line: {
4490
+ color: "#50dc32",
4491
+ width: 9,
4492
+ delta: 2
4493
+ }
4494
+ },
4495
+ {
4496
+ from: 17,
4497
+ to: 21,
4498
+ line: {
4499
+ color: "#50dc32",
4500
+ width: 12,
4501
+ delta: 2
4502
+ }
4503
+ }
4504
+ ],
4505
+ trafficFlowFastMinor: [
4506
+ {
4507
+ from: 13,
4508
+ to: 14,
4509
+ line: {
4510
+ color: "#50dc32",
4511
+ width: 1,
4512
+ delta: 1
4513
+ }
4514
+ },
4515
+ {
4516
+ from: 15,
4517
+ to: 16,
4518
+ line: {
4519
+ color: "#50dc32",
4520
+ width: 5,
4521
+ delta: 2
4522
+ }
4523
+ },
4524
+ {
4525
+ from: 17,
4526
+ to: 21,
4527
+ line: {
4528
+ color: "#50dc32",
4529
+ width: 9,
4530
+ delta: 2
4531
+ }
4532
+ }
4533
+ ],
4534
+ trafficFlowMediumHighway: [
4535
+ {
4536
+ from: 1,
4537
+ to: 5,
4538
+ line: {
4539
+ color: "#ffa500",
4540
+ width: 1,
4541
+ delta: 1
4542
+ }
4543
+ },
4544
+ {
4545
+ from: 6,
4546
+ to: 9,
4547
+ line: {
4548
+ color: "#ffa500",
4549
+ width: 2,
4550
+ delta: 1
4551
+ }
4552
+ },
4553
+ {
4554
+ from: 10,
4555
+ to: 12,
4556
+ line: {
4557
+ color: "#ffa500",
4558
+ width: 6,
4559
+ delta: 2
4560
+ }
4561
+ },
4562
+ {
4563
+ from: 13,
4564
+ to: 15,
4565
+ line: {
4566
+ color: "#ffa500",
4567
+ width: 9,
4568
+ delta: 2
4569
+ }
4570
+ },
4571
+ {
4572
+ from: 16,
4573
+ to: 21,
4574
+ line: {
4575
+ color: "#ffa500",
4576
+ width: 13,
4577
+ delta: 2
4578
+ }
4579
+ }
4580
+ ],
4581
+ trafficFlowMediumInterstate: [
4582
+ {
4583
+ from: 9,
4584
+ to: 9,
4585
+ line: {
4586
+ color: "#ffa500",
4587
+ width: 2,
4588
+ delta: 1
4589
+ }
4590
+ },
4591
+ {
4592
+ from: 10,
4593
+ to: 12,
4594
+ line: {
4595
+ color: "#ffa500",
4596
+ width: 2,
4597
+ delta: 1
4598
+ }
4599
+ },
4600
+ {
4601
+ from: 13,
4602
+ to: 14,
4603
+ line: {
4604
+ color: "#ffa500",
4605
+ width: 6,
4606
+ delta: 2
4607
+ }
3771
4608
  },
3772
4609
  {
3773
4610
  from: 15,
3774
- to: 19,
3775
- polygon: {
3776
- color: "#d4d4d4"
3777
- },
3778
- text: {
3779
- size: 12,
3780
- color: "#a0a0a0",
3781
- font: "Open Sans",
3782
- fontStyle: "italic"
4611
+ to: 16,
4612
+ line: {
4613
+ color: "#ffa500",
4614
+ width: 9,
4615
+ delta: 2
4616
+ }
4617
+ },
4618
+ {
4619
+ from: 17,
4620
+ to: 21,
4621
+ line: {
4622
+ color: "#ffa500",
4623
+ width: 12,
4624
+ delta: 2
3783
4625
  }
3784
4626
  }
3785
4627
  ],
3786
- natural_park: [
4628
+ trafficFlowMediumMinor: [
3787
4629
  {
3788
- from: 1,
4630
+ from: 13,
3789
4631
  to: 14,
3790
- polygon: {
3791
- color: "#e1e1e1"
4632
+ line: {
4633
+ color: "#ffa500",
4634
+ width: 1,
4635
+ delta: 1
3792
4636
  }
3793
4637
  },
3794
4638
  {
3795
4639
  from: 15,
3796
- to: 19,
3797
- polygon: {
3798
- color: "#e1e1e1"
3799
- },
3800
- text: {
3801
- size: 12,
3802
- color: "#b9b9b9",
3803
- font: "Open Sans",
3804
- fontStyle: "italic"
4640
+ to: 16,
4641
+ line: {
4642
+ color: "#ffa500",
4643
+ width: 5,
4644
+ delta: 2
3805
4645
  }
3806
- }
3807
- ],
3808
- water: [
4646
+ },
3809
4647
  {
3810
- from: 1,
3811
- to: 19,
4648
+ from: 17,
4649
+ to: 21,
3812
4650
  line: {
3813
- color: "#c6c6c6",
3814
- width: 1
3815
- },
3816
- polygon: {
3817
- color: "#BBC5CF"
3818
- },
3819
- text: {
3820
- size: 14,
3821
- color: "#9e9e9e",
3822
- font: "Open Sans",
3823
- fontWeight: "bold",
3824
- fontStyle: "italic"
4651
+ color: "#ffa500",
4652
+ width: 9,
4653
+ delta: 2
3825
4654
  }
3826
4655
  }
3827
4656
  ],
3828
- country: [
4657
+ trafficFlowSlowHighway: [
3829
4658
  {
3830
4659
  from: 1,
3831
- to: 19,
4660
+ to: 5,
3832
4661
  line: {
3833
- color: "#acacac"
3834
- },
3835
- text: {
3836
- size: 18,
3837
- color: "#acacac",
3838
- font: "Open Sans",
3839
- fontWeight: "bold",
3840
- outlineColor: "white",
3841
- outlineWidth: 2
4662
+ color: "#c80000",
4663
+ width: 1,
4664
+ delta: 1
3842
4665
  }
3843
- }
3844
- ],
3845
- trafficFlowFast: [
4666
+ },
3846
4667
  {
3847
- from: 1,
3848
- to: 8,
4668
+ from: 6,
4669
+ to: 9,
3849
4670
  line: {
3850
- color: "#50dc32",
3851
- width: 1
4671
+ color: "#c80000",
4672
+ width: 2,
4673
+ delta: 1
3852
4674
  }
3853
4675
  },
3854
4676
  {
3855
- from: 9,
4677
+ from: 10,
3856
4678
  to: 12,
3857
4679
  line: {
3858
- color: "#50dc32",
3859
- width: 2
4680
+ color: "#c80000",
4681
+ width: 6,
4682
+ delta: 2
3860
4683
  }
3861
4684
  },
3862
4685
  {
3863
4686
  from: 13,
3864
4687
  to: 15,
3865
4688
  line: {
3866
- color: "#50dc32",
3867
- width: 3
4689
+ color: "#c80000",
4690
+ width: 9,
4691
+ delta: 2
3868
4692
  }
3869
4693
  },
3870
4694
  {
3871
4695
  from: 16,
3872
- to: 19,
4696
+ to: 21,
3873
4697
  line: {
3874
- color: "#50dc32",
3875
- width: 4
4698
+ color: "#c80000",
4699
+ width: 13,
4700
+ delta: 2
3876
4701
  }
3877
4702
  }
3878
4703
  ],
3879
- trafficFlowMedium: [
4704
+ trafficFlowSlowInterstate: [
3880
4705
  {
3881
- from: 1,
3882
- to: 8,
4706
+ from: 9,
4707
+ to: 9,
3883
4708
  line: {
3884
- color: "#ffa500",
3885
- width: 1
4709
+ color: "#c80000",
4710
+ width: 2,
4711
+ delta: 1
3886
4712
  }
3887
4713
  },
3888
4714
  {
3889
- from: 9,
4715
+ from: 10,
3890
4716
  to: 12,
3891
4717
  line: {
3892
- color: "#ffa500",
3893
- width: 2
4718
+ color: "#c80000",
4719
+ width: 2,
4720
+ delta: 1
3894
4721
  }
3895
4722
  },
3896
4723
  {
3897
4724
  from: 13,
3898
- to: 15,
4725
+ to: 14,
3899
4726
  line: {
3900
- color: "#ffa500",
3901
- width: 3
4727
+ color: "#c80000",
4728
+ width: 6,
4729
+ delta: 2
3902
4730
  }
3903
4731
  },
3904
4732
  {
3905
- from: 16,
3906
- to: 19,
4733
+ from: 15,
4734
+ to: 16,
3907
4735
  line: {
3908
- color: "#ffa500",
3909
- width: 4
4736
+ color: "#c80000",
4737
+ width: 9,
4738
+ delta: 2
3910
4739
  }
3911
- }
3912
- ],
3913
- trafficFlowSlow: [
4740
+ },
3914
4741
  {
3915
- from: 1,
3916
- to: 8,
4742
+ from: 17,
4743
+ to: 21,
3917
4744
  line: {
3918
4745
  color: "#c80000",
3919
- width: 1
4746
+ width: 12,
4747
+ delta: 2
3920
4748
  }
3921
- },
4749
+ }
4750
+ ],
4751
+ trafficFlowSlowMinor: [
3922
4752
  {
3923
- from: 9,
3924
- to: 12,
4753
+ from: 13,
4754
+ to: 14,
3925
4755
  line: {
3926
4756
  color: "#c80000",
3927
- width: 2
4757
+ width: 1,
4758
+ delta: 1
3928
4759
  }
3929
4760
  },
3930
4761
  {
3931
- from: 13,
3932
- to: 15,
4762
+ from: 15,
4763
+ to: 16,
3933
4764
  line: {
3934
4765
  color: "#c80000",
3935
- width: 3
4766
+ width: 5,
4767
+ delta: 2
3936
4768
  }
3937
4769
  },
3938
4770
  {
3939
- from: 16,
3940
- to: 19,
4771
+ from: 17,
4772
+ to: 21,
3941
4773
  line: {
3942
4774
  color: "#c80000",
3943
- width: 4
4775
+ width: 9,
4776
+ delta: 2
3944
4777
  }
3945
4778
  }
3946
4779
  ],
@@ -3979,7 +4812,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
3979
4812
  },
3980
4813
  {
3981
4814
  from: 15,
3982
- to: 19,
4815
+ to: 21,
3983
4816
  image: {
3984
4817
  url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDg0Ny4xNTQ2IDc0My42MjUzNyIKICAgaGVpZ2h0PSI3NDMuNjI1MzciCiAgIHdpZHRoPSI4NDcuMTU0NiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnMjEzMzkiPjxtZXRhZGF0YQogICAgIGlkPSJtZXRhZGF0YTIxMzQ1Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzMjEzNDMiIC8+PGcKICAgICB0cmFuc2Zvcm09Im1hdHJpeCgxLjI1LDAsMCwtMS4yNSwwLDc0My42MjUzNCkiCiAgICAgaWQ9ImcyMTM0NyI+PGcKICAgICAgIGlkPSJnMjEzNDkiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTEiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1OTQuNTAyIGMgLTcuNTEyLDAgLTE1LjAyMywtMi44NjcgLTIwLjc1OCwtOC41OTggLTEuODgyLC0xLjg3OSAtMy40NDksLTMuOTUzIC00LjcxMSwtNi4xNTIgbCAtMTUuMjQ2LC0yNi4xNTYgLTAuMDY2LDAgTCA0Ljk4LDQ1LjU1MyBDIDQuOTMsNDUuNDU5IDQuODg3LDQ1LjM2NSA0LjgzMiw0NS4yNjQgMy4zNDgsNDIuODczIDIuMTc2LDQwLjIyMSAxLjM5OCwzNy4zNTMgLTIuNzg5LDIxLjY5NyA2LjUwNCw1LjU5OSAyMi4xNiwxLjQwNCBjIDIuNTksLTAuNjk1IDUuMTg4LC0xLjAxMiA3LjczOCwtMSBsIDYxOC4wNzUsMCBjIDE2LjIxMSwwIDI5LjM1MSwxMy4xNDEgMjkuMzUxLDI5LjM1NiAwLDUuMjk3IC0xLjQxOCwxMC4yODEgLTMuODc5LDE0LjU3OCAtMC4wMTksMC4wMzUgLTAuMDQzLDAuMDYyIC0wLjA1LDAuMDk3IEwgMzY5LjAyMyw1NzIuODQ2IGMgLTMuODYzLDYuNjY0IC01LjY0OCw5LjMwNCAtOS40MDIsMTMuMDU4IC01LjczLDUuNzMxIC0xMy4yNDIsOC41OTggLTIwLjc1NCw4LjU5OCB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTMiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNjMTEyMWM7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1ODcuMTQ2IGMgLTcuMTI1LDAuMDUxIC0xNC45NTMsLTMuNTkzIC0xOC43ODEsLTEwLjM5OCBMIDEwLjc4OSw0MC44NDkgQyA5LjAwOCwzNy4yMDEgOC4yNTgsMzQuMDI5IDguMjM0LDMwLjQgOC4yMzQsMjMuOTA0IDExLjEwNSwxNy43NCAxNi4wODIsMTMuNTUzIDIwLjQ2OSwxMC4xNjYgMjQuNjE3LDguNCAzMC4yMDMsOC40IGwgNjE3LjkwNiwwIGMgMy43NywtMC4wMzUgNy41NDMsMC44NzEgMTAuOTgxLDMuMTMzIDYuNDQxLDMuODk1IDEwLjM5OCwxMC44ODMgMTAuNDA2LDE4LjQyNiAtMC4xODQsMy44OTQgLTEuMTQ4LDggLTIuODc5LDEwLjg5IEwgMzU3LjUwNCw1NzYuODMgYyAtMC4wMzEsMC4wNDcgLTAuMDU5LDAuMDk0IC0wLjA5NCwwLjE0MSAtMC4wMjcsMC4wNDYgLTAuMDYyLDAuMDg2IC0wLjA5LDAuMTQ0IC0xLjA5NywxLjc1OCAtMi40NzIsMy4zMDUgLTQuMDQ3LDQuNjMzIC0zLjU4MiwzLjEwOSAtOC4wNzgsNC45NzYgLTEyLjgxNiw1LjMwOSAtMC41MzEsMC4wNTQgLTEuMDYyLDAuMDg1IC0xLjU5LDAuMDg5IHogTSAzMC4yMDMsOC40IGwgLTEuNTIzLDAgMS41NTQsMCAtMC4wMzEsMCB6IE0gMzM4LjU0Nyw0ODAuOTI4IDU3NC4yNSw3Mi40IGwgLTQ3MS43MzgsMCAyMzYuMDM1LDQwOC41MjggeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDIxMzU1IgogICAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDMzOC44NjcsNTk0LjkgYyAtNy42MTcsMCAtMTUuMjMsLTIuOTA2IC0yMS4wMzksLTguNzIyIC0xLjkwNiwtMS44OTUgLTMuNDkyLC00LjAwNCAtNC43NzMsLTYuMjI3IGwgLTE1LjEyOSwtMjUuOTU3IC0wLjA3NCwwIEwgNC42NDEsNDUuNzU2IEMgNC41NzQsNDUuNjM5IDQuNTIzLDQ1LjUzNyA0LjQ3Nyw0NS40NTUgMi45NzMsNDMuMDMzIDEuNzk3LDQwLjM1MyAxLjAyLDM3LjQ1OSAtMy4yMywyMS41ODggNi4xOTEsNS4yNzEgMjIuMDU5LDEuMDE3IDI0LjY4LDAuMzE0IDI3LjMxNiwtMC4wMDYgMjkuODk4LDAuMDAyIGwgNjE4LjA3NSwwIGMgMTYuNDI1LDAgMjkuNzUsMTMuMzI4IDI5Ljc1LDI5Ljc1OCAwLDUuMzc1IC0xLjQzOCwxMC40MTQgLTMuOTM0LDE0Ljc3MyAtMC4wMTYsMC4wMTYgLTAuMDIzLDAuMDUxIC0wLjA0NywwLjA5OCBMIDM2OS4zNzksNTczLjA0NSBjIC0zLjg3MSw2LjY2OCAtNS42OTUsOS4zNjMgLTkuNDczLDEzLjEzMyAtNS44MDgsNS44MTYgLTEzLjQyNiw4LjcyMiAtMjEuMDM1LDguNzIyIGwgLTAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgNy41MTIsMCAxNS4wMjQsLTIuODY3IDIwLjc1NCwtOC41OTggMy43NTQsLTMuNzU0IDUuNTM5LC02LjM5NCA5LjQwMiwtMTMuMDU4IEwgNjczLjM5MSw0NC40MzUgYyAwLjAxMSwtMC4wMzUgMC4wMzUsLTAuMDYyIDAuMDU0LC0wLjA5NyAyLjQ2MSwtNC4yOTcgMy44NzksLTkuMjgxIDMuODc5LC0xNC41NzggMCwtMTYuMjE1IC0xMy4xNCwtMjkuMzU2IC0yOS4zNTEsLTI5LjM1NiBsIC02MTguMDc1LDAgQyAyNy4zNDgsMC4zOTIgMjQuNzUsMC43MDkgMjIuMTYsMS40MDQgNi41MDQsNS41OTkgLTIuNzg5LDIxLjY5NyAxLjM5OCwzNy4zNTMgYyAwLjc3LDIuODY4IDEuOTUsNS41MiAzLjQzNCw3LjkxMSAwLjA1NSwwLjEwMSAwLjA5OCwwLjE5NSAwLjE0OCwwLjI4OSBsIDI5My4xMDYsNTA4LjA0MyAwLjA2NiwwIDE1LjI0NiwyNi4xNTYgYyAxLjI2MiwyLjE5OSAyLjgyOSw0LjI3MyA0LjcxMSw2LjE1MiA1LjczNSw1LjczMSAxMy4yMzksOC41OTggMjAuNzU4LDguNTk4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgyMTM1NyIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzNTAuODk4LDE0OS4zODEgYyAwLDIuMzk0IDAuNzksNC43NDYgMi4yMjcsNi42NjQgbCAyLjIwMywyLjk1NyBjIDEuNTYzLDIuMDYyIDIuODcxLDQuMzEyIDMuODkxLDYuNjg3IGwgMTQuNjI5LDMzLjYzNyBjIDEuNDc2LDMuMzk1IDQuODA0LDUuNTYzIDguNDY4LDUuNTYzIGwgOTIuNDI2LDAgYyAzLjY4NCwwIDcuMDEyLC0yLjE2OCA4LjQ4OCwtNS41NjMgbCAxNC42MSwtMzMuNjM3IGMgMS4wMzksLTIuMzc1IDIuMzUxLC00LjYyNSAzLjg5LC02LjY4NyBsIDIuMjI3LC0yLjk1NyBjIDEuNDM0LC0xLjkxOCAyLjIyNywtNC4yNyAyLjIyNywtNi42NjQgbCAwLC0yNC4wNTkgYyAwLC01LjEwMSAtNC4xNDEsLTkuMjQ2IC05LjI2MiwtOS4yNDYgbCAtMTM2Ljc4NSwwIGMgLTUuMDk4LDAgLTkuMjM5LDQuMTQ1IC05LjIzOSw5LjI0NiBsIDAsMjQuMDU5IHogbSAxNy41NTksMTQuODA4IDEyMC4xNjQsMCAtMTIuNzE1LDI5LjIyMyBjIC0wLjU4MiwxLjM1MiAtMS45MTQsMi4yMjcgLTMuMzksMi4yMjcgbCAtODcuOTU0LDAgYyAtMS40NzYsMCAtMi44MDgsLTAuODc1IC0zLjM5LC0yLjIyNyBsIC0xMi43MTUsLTI5LjIyMyB6IG0gLTguMzIsLTUxLjgyIDIyLjE3OSwwIDAsLTIwLjM1MiBjIDAsLTMuMDU4IC0yLjQ3NiwtNS41MzkgLTUuNTM1LC01LjUzOSBsIC0xMS4wOSwwIGMgLTMuMDU4LDAgLTUuNTU0LDIuNDgxIC01LjU1NCw1LjUzOSBsIDAsMjAuMzUyIHogbSAxMTQuNjA1LDAgMjIuMTgsMCAwLC0yMC4zNTIgYyAwLC0zLjA1OCAtMi40NzMsLTUuNTM5IC01LjUzNSwtNS41MzkgbCAtMTEuMDksMCBjIC0zLjA1OSwwIC01LjU1NSwyLjQ4MSAtNS41NTUsNS41MzkgbCAwLDIwLjM1MiB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoMjEzNTkiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMjg1Ljg5OCwyMDAuMzQyIGMgMCwyLjA0MyAwLjY2OCw0LjA0MyAxLjg5NSw1LjY4NyBsIDEuODk1LDIuNTIgYyAxLjMwOCwxLjc2OSAyLjQzMywzLjY2NCAzLjMwOCw1LjcwNyBsIDEyLjQ2MSwyOC42NiBjIDEuMjUsMi44NzUgNC4xMDIsNC43NDYgNy4yMjMsNC43NDYgbCA3OC43OTcsMCBjIDMuMTQsMCA1Ljk3MiwtMS44NzEgNy4yMTgsLTQuNzQ2IGwgMTIuNDY1LC0yOC42NiBjIDAuODk1LC0yLjA0MyAxLjk5NiwtMy45MzggMy4zMjgsLTUuNzA3IGwgMC45MzgsLTEuMjUgLTMzLjEwNiwwIGMgLTQuNjQsMCAtOC44MiwtMi43NSAtMTAuNjc1LC03IGwgLTEyLjMxNywtMjguMzQ0IC02NS41NDMsMCBjIC00LjM0NywwIC03Ljg4NywzLjUxOSAtNy44ODcsNy44OTEgbCAwLDIwLjQ5NiB6IG0gMTQuOTYxLDEyLjYyMSAxMDIuNDM0LDAgLTEwLjg0LDI0LjkxIGMgLTAuNSwxLjE0OCAtMS42MjEsMS44OTggLTIuODkxLDEuODk4IGwgLTc0Ljk2OCwwIGMgLTEuMjUsMCAtMi4zOTUsLTAuNzUgLTIuODk1LC0xLjg5OCBsIC0xMC44NCwtMjQuOTEgeiBtIC03LjA3NCwtNDQuMTc2IDE4Ljg5NSwwIDAsLTE3LjM0OCBjIDAsLTIuNjA1IC0yLjEwMiwtNC43MyAtNC43MjcsLTQuNzMgbCAtOS40NDUsMCBjIC0yLjYyMSwwIC00LjcyMywyLjEyNSAtNC43MjMsNC43MyBsIDAsMTcuMzQ4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGgyMTM2MSIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAyMjguMTI1LDI0NS42NDIgYyAwLDEuNzI3IDAuNTU5LDMuNDE1IDEuNjAyLDQuODA5IGwgMS42MDEsMi4xMjUgYyAxLjEyNSwxLjUgMi4wNTksMy4xMjUgMi44MDksNC44MzIgbCAxMC41NTEsMjQuMjY2IGMgMS4wNTgsMi40MzcgMy40NTMsNCA2LjA5Myw0IGwgNjYuNjY4LDAgYyAyLjY2NCwwIDUuMDU1LC0xLjU2MyA2LjExNywtNCBsIDEwLjU1MSwtMjQuMjY2IGMgMC43NDYsLTEuNzA3IDEuNjg0LC0zLjMzMiAyLjgwOSwtNC44MzIgbCAxLjYwMSwtMi4xMjUgMC4yNSwtMC4zNzUgLTI2LjA5MywwIGMgLTQuMDk4LDAgLTcuODAxLC0yLjQzNCAtOS40MjYsLTYuMTg0IGwgLTkuNjc2LC0yMi4yODUgLTU4LjgwMSwwIGMgLTMuNjYsMCAtNi42NTYsMi45OTYgLTYuNjU2LDYuNjg0IGwgMCwxNy4zNTEgeiBtIDEyLjY3MiwxMC42ODQgODYuNjYsMCAtOS4xNzYsMjEuMDc4IGMgLTAuNDE0LDAuOTgxIC0xLjM3MSwxLjYwNiAtMi40MzMsMS42MDYgbCAtNjMuNDQyLDAgYyAtMS4wNjIsMCAtMi4wMTksLTAuNjI1IC0yLjQ1NywtMS42MDYgbCAtOS4xNTIsLTIxLjA3OCB6IG0gLTYuMDE2LC0zNy4zODcgMTYsMCAwLC0xNC42ODMgYyAwLC0yLjIwNyAtMS43ODksLTQgLTMuOTkyLC00IGwgLTcuOTkyLDAgYyAtMi4yMDMsMCAtNC4wMTYsMS43OTMgLTQuMDE2LDQgbCAwLDE0LjY4MyB6IiAvPjwvZz48L2c+PC9zdmc+",
3985
4818
  width: 34,
@@ -4029,7 +4862,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4029
4862
  },
4030
4863
  {
4031
4864
  from: 15,
4032
- to: 19,
4865
+ to: 21,
4033
4866
  image: {
4034
4867
  url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgaWQ9InN2ZzcyODMiCiAgIHZlcnNpb249IjEuMSIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgd2lkdGg9Ijg0Ny4xNTg1NyIKICAgaGVpZ2h0PSI3NDMuNjIyNjgiCiAgIHZpZXdCb3g9IjAgMCA4NDcuMTU4NTcgNzQzLjYyMjY4Ij48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE3Mjg5Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNzI4NyI+PGNsaXBQYXRoCiAgICAgICBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIGlkPSJjbGlwRW1mUGF0aDEiPjxwYXRoCiAgICAgICAgIGQ9Im0gMCw0OC4yMjQ2IDU0LjgyNDYsMCBMIDU0LjgyNDYsMCAwLDAgMCw0OC4yMjQ2IFoiCiAgICAgICAgIGlkPSJwYXRoMzM0NCIgLz48L2NsaXBQYXRoPjxwYXR0ZXJuCiAgICAgICBpZD0iRU1GaGJhc2VwYXR0ZXJuIgogICAgICAgcGF0dGVyblVuaXRzPSJ1c2VyU3BhY2VPblVzZSIKICAgICAgIHdpZHRoPSI2IgogICAgICAgaGVpZ2h0PSI2IgogICAgICAgeD0iMCIKICAgICAgIHk9IjAiIC8+PC9kZWZzPjxnCiAgICAgaWQ9Imc3MjkxIgogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNzQzLjYyMjY3KSI+PGcKICAgICAgIGlkPSJnNzI5MyI+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU5NC41IGMgNy41MTIsMCAxNS4wMjgsLTIuODY3IDIwLjc1OCwtOC41OTggMS44NzksLTEuODc5IDMuNDQ1LC0zLjk1MyA0LjcwNywtNi4xNTIgbCAxNS4yNDYsLTI2LjE1NyAwLjA3MSwwIDI5My4xMDEsLTUwOC4wMzkgYyAwLjA1NSwtMC4wOTcgMC4wOTgsLTAuMTk1IDAuMTUzLC0wLjI5MyAxLjQ4OCwtMi4zOTQgMi42NTYsLTUuMDQzIDMuNDI1LC03LjkxIDQuMTk2LC0xNS42NTYgLTUuMDk3LC0zMS43NTQgLTIwLjc1OCwtMzUuOTQ5IC0yLjU4NSwtMC42OTUgLTUuMTgzLC0xLjAxMiAtNy43MzgsLTEgbCAtNjE4LjA2NiwwIGMgLTE2LjIxNSwwIC0yOS4zNTYsMTMuMTQxIC0yOS4zNTYsMjkuMzU2IDAsNS4zMDQgMS40MTQsMTAuMjgxIDMuODc5LDE0LjU3OCAwLjAyLDAuMDMxIDAuMDM1LDAuMDYyIDAuMDUxLDAuMDk3IGwgMzA0LjM2Nyw1MjguNDEgYyAzLjg2Myw2LjY2NSA1LjY1Myw5LjMwNSA5LjQwNiwxMy4wNTkgNS43MzEsNS43MzEgMTMuMjQzLDguNTk4IDIwLjc1NCw4LjU5OCB6IgogICAgICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBpZD0icGF0aDcyOTUiIC8+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU4Ny4xNDQgYyA3LjEyNSwwLjA1MSAxNC45NSwtMy41OSAxOC43ODIsLTEwLjQwNiBMIDY2Ni45MzQsNDAuODQ3IGMgMS43ODUsLTMuNjQ4IDIuNTM1LC02LjgyIDIuNTU4LC0xMC40NDkgMCwtNi40OTYgLTIuODc1LC0xMi42NiAtNy44NDcsLTE2Ljg0IC00LjM4MywtMy4zOTQgLTguNTM2LC01LjE2IC0xNC4xMjIsLTUuMTYgbCAtNjE3LjkwNiwwIEMgMjUuODQ4LDguMzYzIDIyLjA3LDkuMjY5IDE4LjY0MSwxMS41MzEgMTIuMTg4LDE1LjQyOSA4LjIzOCwyMi40MTQgOC4yMywyOS45NTcgYyAwLjE4NCwzLjg5NCAxLjE0NSw4IDIuODc5LDEwLjg5IGwgMzA5LjExNCw1MzUuOTgxIGMgMC4wMjcsMC4wNDcgMC4wNTgsMC4wOTQgMC4wODksMC4xNCAwLjAzMiwwLjA0NyAwLjA2MywwLjA5NCAwLjA5NCwwLjE0NSAxLjA5OCwxLjc1NCAyLjQ3MywzLjMwNSA0LjAzOSw0LjYzMyAzLjU5LDMuMTA5IDguMDg2LDQuOTc2IDEyLjgyNSw1LjMxNiAwLjUzMSwwLjA0NyAxLjA2MiwwLjA3OCAxLjU4OSwwLjA4MiB6IE0gNjQ3LjUyMyw4LjM5OCBsIDEuNTI0LDAgLTEuNTU1LDAgMC4wMzEsMCB6IE0gMzM5LjE4LDQ4MC45MzMgMTAzLjQ3Nyw3Mi4zOTggbCA0NzEuNzM4LDAgLTIzNi4wMzUsNDA4LjUzNSB6IgogICAgICAgICBzdHlsZT0iZmlsbDojYzExMjFjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBpZD0icGF0aDcyOTciIC8+PHBhdGgKICAgICAgICAgZD0ibSAzMzguODU5LDU5NC44OTggYyA3LjYxOCwwIDE1LjIzMSwtMi45MDYgMjEuMDM5LC04LjcxNSAxLjkwNywtMS45MDIgMy40OTMsLTQuMDA4IDQuNzc0LC02LjIzNCBsIDE1LjEyOSwtMjUuOTU3IDAuMDcsMCAyOTMuMjE1LC01MDguMjM4IGMgMC4wNjYsLTAuMTE4IDAuMTEzLC0wLjIxOSAwLjE2LC0wLjMwMSAxLjUwNCwtMi40MjIgMi42ODQsLTUuMTAyIDMuNDYxLC03Ljk5NiBDIDY4MC45NTcsMjEuNTg2IDY3MS41MzUsNS4yNjkgNjU1LjY2OCwxLjAxNSA2NTMuMDQ3LDAuMzEyIDY1MC40MSwtMC4wMDggNjQ3LjgyNCwwIEwgMjkuNzU4LDAgQyAxMy4zMjgsMCAwLDEzLjMyOCAwLDI5Ljc1OCBjIDAsNS4zNzUgMS40MzgsMTAuNDE3IDMuOTM0LDE0Ljc3MyAwLjAxMSwwLjAxOSAwLjAyNywwLjA1MSAwLjA1LDAuMDk4IGwgMzA0LjM2NCw1MjguNDE0IGMgMy44NzEsNi42NjggNS42OTUsOS4zNjMgOS40NjgsMTMuMTQgNS44MDksNS44MDkgMTMuNDI2LDguNzE1IDIxLjAzOSw4LjcxNSBsIDAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgLTcuNTExLDAgLTE1LjAyMywtMi44NjcgLTIwLjc1NCwtOC41OTggLTMuNzUzLC0zLjc1NCAtNS41NDMsLTYuMzk0IC05LjQwNiwtMTMuMDU5IEwgNC4zMzYsNDQuNDMzIEMgNC4zMTYsNDQuMzk4IDQuMzAxLDQ0LjM2NyA0LjI4MSw0NC4zMzYgMS44MTYsNDAuMDM5IDAuNDAyLDM1LjA2MiAwLjQwMiwyOS43NTggMC40MDIsMTMuNTQzIDEzLjU0MywwLjQwMiAyOS43NTgsMC40MDIgbCA2MTguMDY2LDAgYyAyLjU1NSwtMC4wMTIgNS4xNTMsMC4zMDUgNy43MzgsMSAxNS42NjEsNC4xOTUgMjQuOTU0LDIwLjI5MyAyMC43NTgsMzUuOTQ5IC0wLjc2NSwyLjg2NyAtMS45MzcsNS41MTYgLTMuNDI1LDcuOTEgLTAuMDU1LDAuMDk4IC0wLjA5OCwwLjE5NiAtMC4xNTMsMC4yOTMgbCAtMjkzLjEwMSw1MDguMDM5IC0wLjA3MSwwIC0xNS4yNDYsMjYuMTU3IGMgLTEuMjYyLDIuMTk5IC0yLjgyOCw0LjI3MyAtNC43MDcsNi4xNTIgLTUuNzMsNS43MzEgLTEzLjI0Miw4LjU5OCAtMjAuNzU4LDguNTk4IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGlkPSJwYXRoNzI5OSIgLz48L2c+PC9nPjxnCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoNTQuNjM3NzcxLDAsMCw1NC42Mzc3NzEsMTM1MDguNjYxLC04NTgwLjUzNjQpIgogICAgIGlkPSJnMzM2OSI+PHBhdGgKICAgICAgIGlkPSJwYXRoMzM0NyIKICAgICAgIGQ9IiIKICAgICAgIGNsaXAtcGF0aD0idXJsKCNjbGlwRW1mUGF0aDEpIgogICAgICAgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6bm9uZSIKICAgICAgIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yNDcuMjA4MDcsMTU3LjA0NDA0KSIgLz48cGF0aAogICAgICAgaWQ9InBhdGgzMzU1IgogICAgICAgZD0ibSAtMjM5LjM5NzYzLDE2OC4zMDQ2MiAwLjc2MiwtMC45MTAxNyBjIDAuMDQyMywtMC4wMjEyIDAuMDg0NywtMC4wNjM1IDAuMTI3LC0wLjA2MzUgbCAwLjE0ODE3LC0wLjA2MzUgYyAwLjA4NDcsLTAuMDIxMiAwLjE2OTMzLC0wLjA4NDcgMC4yMzI4MywtMC4xNDgxNiBsIDAuNTI5MTQsLTAuNjEzODEgYyAwLjIzMjgzLC0wLjI5NjMzIDAuNjU2MTcsLTAuMzE3NSAwLjkzMTMzLC0wLjA4NDcgMC4wNDIzLDAuMDIxMiAwLjA4NDcsMC4wNjM1IDAuMTA1ODQsMC4xMDU4NCBsIDEuMzc1ODMsMS43Nzc5NyBjIDAuMDQyMywwLjA2MzUgMC4wNDIzLDAuMTQ4MTcgLTAuMDIxMiwwLjE5MDUgLTAuMDIxMiwwLjAyMTIgLTAuMDYzNSwwLjA0MjMgLTAuMDg0NywwLjA0MjMgbCAtNC4wMDA0NywwIGMgLTAuMDg0NywwIC0wLjEyNywtMC4wNjM1IC0wLjEyNywtMC4xNDgxNyAwLC0wLjAyMTIgMCwtMC4wNjM1IDAuMDIxMiwtMC4wODQ3IHogbSAxLjAxNiwtNS4xMjIzIGMgMCwwLjI3NTE2IC0wLjIzMjgzLDAuNTA4IC0wLjUwOCwwLjUwOCAtMC4yNzUxNiwwIC0wLjUwOCwtMC4yMzI4NCAtMC41MDgsLTAuNTA4IDAsLTAuMjc1MTcgMC4yMzI4NCwtMC40ODY4MSAwLjUwOCwtMC40ODY4MSAwLjI3NTE3LDAgMC41MDgsMC4yMTE2NCAwLjUwOCwwLjQ4NjgxIHogbSAtMi43NTE2NiwyLjEzNzgzIDAuNzQwODMsLTEuMzk3IC0wLjUyOTE3LDAgLTAuMzE3NSwwLjU5MjY3IDAuMzE3NSwwLjI3NTE2IC0wLjEwNTgzLDAuMTkwNSAtMC4zMTc1LC0wLjI1NCAtMC4xNDgxNCwwLjI3NTE3IGMgLTAuMjMyODMsLTAuMTI3IC0wLjMxNzUsLTAuNDIzMzMgLTAuMTkwNSwtMC42MzUgbCAwLjM4MDk3LC0wLjc0MDgzIGMgMC4wNjM1LC0wLjEwNTg0IDAuMTY5MzQsLTAuMTY5MzQgMC4yOTYzNCwtMC4xNjkzNCBsIDEuMTg1MzMsMCBjIDAuMjk2MzMsMCAwLjUyOTE3LDAuMjMyODQgMC41MjkxNywwLjUyOTE3IDAsMC4wMjEyIDAsMC4wMjEyIDAsMC4wNDIzIGwgLTAuMTI3LDEuOTg5NjcgMS4yNDg4MywxLjA1ODMgYyAtMC4wNDIzLDAuMDQyMyAtMC4xMDU4MywwLjA4NDcgLTAuMTkwNSwwLjEyNyBsIC0xLjA3OTUsLTAuOTEwMTQgLTAuMDIxMiwwLjIzMjg0IGMgLTAuMjU0LC0wLjAyMTIgLTAuNDQ0NSwtMC4yMzI4NCAtMC40MjMzMywtMC40ODY4NCBsIDAsLTAuMTA1ODMgLTAuMzE3NSwtMC4yNTQgMC4xMDU4MywtMC4xOTA1IDAuMjMyODQsMC4xNjkzMyAwLjA0MjMsLTAuODI1NSAtMC40ODY4MywwLjkzMTM0IC0wLjgyNTUsLTAuNDQ0NSB6IG0gMS4zNzU4MywzLjIxNzMgYyAtMC4yOTYzMywwIC0wLjU1MDMzLC0wLjIzMjgzIC0wLjU1MDMzLC0wLjUyOTE2IGwgLTAuMDQyMywtMS4xMjE4NCAtMC41NTAzMywtMC44NDY2MyAtMS4zMzM0NywyLjQ5NzYzIGMgLTAuMjU0LC0wLjE0ODE2IC0wLjM1OTg0LC0wLjQ2NTY2IC0wLjIxMTY3LC0wLjc0MDgzIGwgMS4yNDg4MSwtMi4zNDk0NyAwLjgyNTUsMC40MjMzMyAwLjUyOTE2LDAuODI1NDcgYyAwLDAuMDIxMiAwLjAyMTIsMC4wNDIzIDAuMDIxMiwwLjA2MzUiCiAgICAgICBzdHlsZT0iZmlsbDojMDAwMDAwO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIiAvPjwvZz48L3N2Zz4=",
4035
4868
  width: 34,
@@ -4079,7 +4912,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4079
4912
  },
4080
4913
  {
4081
4914
  from: 15,
4082
- to: 19,
4915
+ to: 21,
4083
4916
  image: {
4084
4917
  url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmlld0JveD0iMCAwIDg0Ny4xNTg1NyA3NDMuNjIyNjgiCiAgIGhlaWdodD0iNzQzLjYyMjY4IgogICB3aWR0aD0iODQ3LjE1ODU3IgogICB4bWw6c3BhY2U9InByZXNlcnZlIgogICB2ZXJzaW9uPSIxLjEiCiAgIGlkPSJzdmc1NDg4Ij48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE1NDk0Ij48cmRmOlJERj48Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+PGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+PGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPjxkYzp0aXRsZT48L2RjOnRpdGxlPjwvY2M6V29yaz48L3JkZjpSREY+PC9tZXRhZGF0YT48ZGVmcwogICAgIGlkPSJkZWZzNTQ5MiIgLz48ZwogICAgIHRyYW5zZm9ybT0ibWF0cml4KDEuMjUsMCwwLC0xLjI1LDAsNzQzLjYyMjY3KSIKICAgICBpZD0iZzU0OTYiPjxnCiAgICAgICBpZD0iZzU0OTgiPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoNTUwMCIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguODY3LDU5NC41IGMgLTcuNTEyLDAgLTE1LjAyNywtMi44NjcgLTIwLjc1OCwtOC41OTggLTEuODc5LC0xLjg3OSAtMy40NDUsLTMuOTUzIC00LjcwNywtNi4xNTIgbCAtMTUuMjQ2LC0yNi4xNTcgLTAuMDcsMCBMIDQuOTg0LDQ1LjU1NCBDIDQuOTMsNDUuNDU3IDQuODg3LDQ1LjM1OSA0LjgzMiw0NS4yNjEgMy4zNDQsNDIuODY3IDIuMTc2LDQwLjIxOCAxLjQwNiwzNy4zNTEgLTIuNzg5LDIxLjY5NSA2LjUwNCw1LjU5NyAyMi4xNjQsMS40MDIgYyAyLjU4NiwtMC42OTUgNS4xODQsLTEuMDEyIDcuNzM4LC0xIGwgNjE4LjA2NywwIGMgMTYuMjE1LDAgMjkuMzU1LDEzLjE0MSAyOS4zNTUsMjkuMzU2IDAsNS4zMDQgLTEuNDE0LDEwLjI4MSAtMy44NzksMTQuNTc4IC0wLjAxOSwwLjAzMSAtMC4wMzUsMC4wNjIgLTAuMDUsMC4wOTcgbCAtMzA0LjM2OCw1MjguNDEgYyAtMy44NjMsNi42NjUgLTUuNjUyLDkuMzA1IC05LjQwNiwxMy4wNTkgLTUuNzMsNS43MzEgLTEzLjI0Miw4LjU5OCAtMjAuNzU0LDguNTk4IHoiIC8+PHBhdGgKICAgICAgICAgaWQ9InBhdGg1NTAyIgogICAgICAgICBzdHlsZT0iZmlsbDojYzExMjFjO2ZpbGwtb3BhY2l0eToxO2ZpbGwtcnVsZTpub256ZXJvO3N0cm9rZTpub25lIgogICAgICAgICBkPSJtIDMzOC44NjcsNTg3LjE0NCBjIC03LjEyNSwwLjA1MSAtMTQuOTQ5LC0zLjU5IC0xOC43ODEsLTEwLjQwNiBMIDEwLjc5Myw0MC44NDcgQyA5LjAwOCwzNy4xOTkgOC4yNTgsMzQuMDI3IDguMjM0LDMwLjM5OCBjIDAsLTYuNDk2IDIuODc1LC0xMi42NiA3Ljg0OCwtMTYuODQgNC4zODMsLTMuMzk0IDguNTM1LC01LjE2IDE0LjEyMSwtNS4xNiBsIDYxNy45MDYsMCBjIDMuNzcsLTAuMDM1IDcuNTQ3LDAuODcxIDEwLjk3NywzLjEzMyA2LjQ1MywzLjg5OCAxMC40MDIsMTAuODgzIDEwLjQxLDE4LjQyNiAtMC4xODQsMy44OTQgLTEuMTQ0LDggLTIuODc5LDEwLjg5IEwgMzU3LjUwNCw1NzYuODI4IGMgLTAuMDI3LDAuMDQ3IC0wLjA1OSwwLjA5NCAtMC4wOSwwLjE0IC0wLjAzMSwwLjA0NyAtMC4wNjIsMC4wOTQgLTAuMDk0LDAuMTQ1IC0xLjA5NywxLjc1NCAtMi40NzIsMy4zMDUgLTQuMDM5LDQuNjMzIC0zLjU5LDMuMTA5IC04LjA4Niw0Ljk3NiAtMTIuODI0LDUuMzE2IC0wLjUzMSwwLjA0NyAtMS4wNjIsMC4wNzggLTEuNTksMC4wODIgeiBNIDMwLjIwMyw4LjM5OCBsIC0xLjUyMywwIDEuNTU0LDAgLTAuMDMxLDAgeiBNIDMzOC41NDcsNDgwLjkzMyA1NzQuMjUsNzIuMzk4IGwgLTQ3MS43MzgsMCAyMzYuMDM1LDQwOC41MzUgeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDU1MDQiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzM4Ljg2Nyw1OTQuODk4IGMgLTcuNjE3LDAgLTE1LjIzLC0yLjkwNiAtMjEuMDM5LC04LjcxNSAtMS45MDYsLTEuOTAyIC0zLjQ5MiwtNC4wMDggLTQuNzczLC02LjIzNCBsIC0xNS4xMjksLTI1Ljk1NyAtMC4wNzEsMCBMIDQuNjQxLDQ1Ljc1NCBDIDQuNTc0LDQ1LjYzNiA0LjUyNyw0NS41MzUgNC40OCw0NS40NTMgMi45NzcsNDMuMDMxIDEuNzk3LDQwLjM1MSAxLjAyLDM3LjQ1NyAtMy4yMywyMS41ODYgNi4xOTEsNS4yNjkgMjIuMDU5LDEuMDE1IDI0LjY4LDAuMzEyIDI3LjMxNiwtMC4wMDggMjkuOTAyLDAgbCA2MTguMDY3LDAgYyAxNi40MjksMCAyOS43NTgsMTMuMzI4IDI5Ljc1OCwyOS43NTggMCw1LjM3NSAtMS40MzgsMTAuNDE3IC0zLjkzNCwxNC43NzMgLTAuMDEyLDAuMDE5IC0wLjAyNywwLjA1MSAtMC4wNTEsMC4wOTggTCAzNjkuMzc5LDU3My4wNDMgYyAtMy44NzEsNi42NjggLTUuNjk1LDkuMzYzIC05LjQ2OSwxMy4xNCAtNS44MDgsNS44MDkgLTEzLjQyNiw4LjcxNSAtMjEuMDM5LDguNzE1IGwgLTAuMDA0LDAgeiBtIDAsLTAuMzk4IGMgNy41MTIsMCAxNS4wMjQsLTIuODY3IDIwLjc1NCwtOC41OTggMy43NTQsLTMuNzU0IDUuNTQzLC02LjM5NCA5LjQwNiwtMTMuMDU5IEwgNjczLjM5MSw0NC40MzMgYyAwLjAxOSwtMC4wMzUgMC4wMzUsLTAuMDY2IDAuMDU0LC0wLjA5NyAyLjQ2NSwtNC4yOTcgMy44NzksLTkuMjc0IDMuODc5LC0xNC41NzggMCwtMTYuMjE1IC0xMy4xNCwtMjkuMzU2IC0yOS4zNTUsLTI5LjM1NiBsIC02MTguMDY3LDAgQyAyNy4zNDgsMC4zOSAyNC43NSwwLjcwNyAyMi4xNjQsMS40MDIgNi41MDQsNS41OTcgLTIuNzg5LDIxLjY5NSAxLjQwNiwzNy4zNTEgYyAwLjc2NiwyLjg2NyAxLjkzOCw1LjUxNiAzLjQyNiw3LjkxIDAuMDU1LDAuMDk4IDAuMDk4LDAuMTk2IDAuMTUyLDAuMjkzIGwgMjkzLjEwMiw1MDguMDM5IDAuMDcsMCAxNS4yNDYsMjYuMTU3IGMgMS4yNjIsMi4xOTkgMi44MjgsNC4yNzMgNC43MDcsNi4xNTIgNS43MzEsNS43MzEgMTMuMjQzLDguNTk4IDIwLjc1OCw4LjU5OCB6IiAvPjxwYXRoCiAgICAgICAgIGlkPSJwYXRoNTUwNiIKICAgICAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtmaWxsLXJ1bGU6bm9uemVybztzdHJva2U6bm9uZSIKICAgICAgICAgZD0ibSAzMzguODY3LDQwOC40MTQgYyAtMTcuNjc2LDAgLTMyLjAwNCwtMTQuMzI4IC0zMi4wMDQsLTMyIGwgMTYsLTE4OC4wMTYgYyAwLC04LjgzNiA2LjM3MSwtMTYuMDE1IDE2LjAwNCwtMTYgOS42MjksMC4wMTYgMTUuOTk2LDcuODIgMTUuOTk2LDE2LjAxMiBsIDE2LDE4OC4wMDQgYyAwLDE3LjY3MiAtMTQuMzI0LDMyIC0zMS45OTYsMzIgeiIgLz48cGF0aAogICAgICAgICBpZD0icGF0aDU1MDgiCiAgICAgICAgIHN0eWxlPSJmaWxsOiMwMDAwMDA7ZmlsbC1vcGFjaXR5OjE7ZmlsbC1ydWxlOm5vbnplcm87c3Ryb2tlOm5vbmUiCiAgICAgICAgIGQ9Im0gMzcwLjg2MywxMjQuMzk4IGMgMCwtMTcuNjgzIC0xNC4zMTYsLTMxLjk5NiAtMzEuOTk2LC0zMS45OTYgLTE3LjY3NiwwIC0zMi4wMDQsMTQuMzA5IC0zMi4wMDQsMzEuOTk2IDAsMTcuNjcyIDE0LjMyOCwzMi4wMDQgMzIuMDA0LDMyLjAwNCAxNy42OCwwIDMxLjk5NiwtMTQuMzMyIDMxLjk5NiwtMzIuMDA0IiAvPjwvZz48L2c+PC9zdmc+",
4085
4918
  width: 34,
@@ -4097,11 +4930,11 @@ const RENDERING_CONFIG_GRAYSCALE = {
4097
4930
  highway: [
4098
4931
  {
4099
4932
  from: 16,
4100
- to: 19,
4933
+ to: 21,
4101
4934
  line: {
4102
- color: "#d0d0d0",
4935
+ color: "#c0c0c0",
4103
4936
  width: 11,
4104
- outlineColor: "#b2b2b2",
4937
+ outlineColor: "#a2a2a2",
4105
4938
  outlineWidth: 1
4106
4939
  },
4107
4940
  image: {
@@ -4121,9 +4954,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
4121
4954
  from: 13,
4122
4955
  to: 15,
4123
4956
  line: {
4124
- color: "#d0d0d0",
4957
+ color: "#c0c0c0",
4125
4958
  width: 7,
4126
- outlineColor: "#b2b2b2",
4959
+ outlineColor: "#a2a2a2",
4127
4960
  outlineWidth: 1
4128
4961
  },
4129
4962
  image: {
@@ -4143,9 +4976,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
4143
4976
  from: 10,
4144
4977
  to: 12,
4145
4978
  line: {
4146
- color: "#d0d0d0",
4979
+ color: "#c0c0c0",
4147
4980
  width: 4,
4148
- outlineColor: "#b2b2b2",
4981
+ outlineColor: "#a2a2a2",
4149
4982
  outlineWidth: 1
4150
4983
  },
4151
4984
  image: {
@@ -4165,7 +4998,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4165
4998
  from: 6,
4166
4999
  to: 9,
4167
5000
  line: {
4168
- color: "#d0d0d0",
5001
+ color: "#c0c0c0",
4169
5002
  width: 2
4170
5003
  }
4171
5004
  }
@@ -4173,11 +5006,11 @@ const RENDERING_CONFIG_GRAYSCALE = {
4173
5006
  interstate_major: [
4174
5007
  {
4175
5008
  from: 17,
4176
- to: 19,
5009
+ to: 21,
4177
5010
  line: {
4178
5011
  width: 10,
4179
- color: "#e4e4e4",
4180
- outlineColor: "#d0d0d0",
5012
+ color: "#d4d4d4",
5013
+ outlineColor: "#c0c0c0",
4181
5014
  outlineWidth: 1
4182
5015
  },
4183
5016
  text: {
@@ -4193,8 +5026,8 @@ const RENDERING_CONFIG_GRAYSCALE = {
4193
5026
  to: 16,
4194
5027
  line: {
4195
5028
  width: 7,
4196
- color: "#e4e4e4",
4197
- outlineColor: "#d0d0d0",
5029
+ color: "#d4d4d4",
5030
+ outlineColor: "#c0c0c0",
4198
5031
  outlineWidth: 1
4199
5032
  },
4200
5033
  text: {
@@ -4210,8 +5043,8 @@ const RENDERING_CONFIG_GRAYSCALE = {
4210
5043
  to: 14,
4211
5044
  line: {
4212
5045
  width: 4,
4213
- color: "#e4e4e4",
4214
- outlineColor: "#d0d0d0",
5046
+ color: "#d4d4d4",
5047
+ outlineColor: "#c0c0c0",
4215
5048
  outlineWidth: 1
4216
5049
  },
4217
5050
  text: {
@@ -4227,8 +5060,8 @@ const RENDERING_CONFIG_GRAYSCALE = {
4227
5060
  to: 12,
4228
5061
  line: {
4229
5062
  width: 1,
4230
- color: "#e4e4e4",
4231
- outlineColor: "#dadada",
5063
+ color: "#d4d4d4",
5064
+ outlineColor: "#c0c0c0",
4232
5065
  outlineWidth: 1
4233
5066
  }
4234
5067
  },
@@ -4237,14 +5070,14 @@ const RENDERING_CONFIG_GRAYSCALE = {
4237
5070
  to: 9,
4238
5071
  line: {
4239
5072
  width: 2,
4240
- color: "#e4e4e4"
5073
+ color: "#d4d4d4"
4241
5074
  }
4242
5075
  }
4243
5076
  ],
4244
5077
  interstate_minor: [
4245
5078
  {
4246
5079
  from: 17,
4247
- to: 19,
5080
+ to: 21,
4248
5081
  line: {
4249
5082
  width: 10,
4250
5083
  color: "#ffffff",
@@ -4307,7 +5140,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4307
5140
  minor_road: [
4308
5141
  {
4309
5142
  from: 17,
4310
- to: 19,
5143
+ to: 21,
4311
5144
  line: {
4312
5145
  width: 7,
4313
5146
  color: "#ffffff",
@@ -4327,7 +5160,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
4327
5160
  to: 16,
4328
5161
  line: {
4329
5162
  width: 3,
4330
- color: "#ffffff"
5163
+ color: "#ffffff",
5164
+ outlineColor: "#cccccc",
5165
+ outlineWidth: 1
4331
5166
  },
4332
5167
  text: {
4333
5168
  size: 12,
@@ -4349,7 +5184,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4349
5184
  minor_road_oneway: [
4350
5185
  {
4351
5186
  from: 17,
4352
- to: 19,
5187
+ to: 21,
4353
5188
  line: {
4354
5189
  width: 7,
4355
5190
  color: "#ffffff",
@@ -4371,7 +5206,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
4371
5206
  to: 16,
4372
5207
  line: {
4373
5208
  width: 3,
4374
- color: "#ffffff"
5209
+ color: "#ffffff",
5210
+ outlineColor: "#cccccc",
5211
+ outlineWidth: 1
4375
5212
  },
4376
5213
  text: {
4377
5214
  size: 12,
@@ -4393,7 +5230,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4393
5230
  minor_road_oneway_reverse: [
4394
5231
  {
4395
5232
  from: 17,
4396
- to: 19,
5233
+ to: 21,
4397
5234
  line: {
4398
5235
  width: 7,
4399
5236
  color: "#ffffff",
@@ -4415,7 +5252,9 @@ const RENDERING_CONFIG_GRAYSCALE = {
4415
5252
  to: 16,
4416
5253
  line: {
4417
5254
  width: 3,
4418
- color: "#ffffff"
5255
+ color: "#ffffff",
5256
+ outlineColor: "#cccccc",
5257
+ outlineWidth: 1
4419
5258
  },
4420
5259
  text: {
4421
5260
  size: 12,
@@ -4437,7 +5276,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4437
5276
  minor_road_restricted: [
4438
5277
  {
4439
5278
  from: 17,
4440
- to: 19,
5279
+ to: 21,
4441
5280
  line: {
4442
5281
  width: 2,
4443
5282
  color: "#cccccc"
@@ -4475,7 +5314,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4475
5314
  residential_road: [
4476
5315
  {
4477
5316
  from: 17,
4478
- to: 19,
5317
+ to: 21,
4479
5318
  line: {
4480
5319
  width: 3,
4481
5320
  color: "#ffffff"
@@ -4507,7 +5346,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4507
5346
  residential_road_oneway: [
4508
5347
  {
4509
5348
  from: 17,
4510
- to: 19,
5349
+ to: 21,
4511
5350
  line: {
4512
5351
  width: 3,
4513
5352
  color: "#ffffff",
@@ -4541,7 +5380,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4541
5380
  residential_road_oneway_rev: [
4542
5381
  {
4543
5382
  from: 17,
4544
- to: 19,
5383
+ to: 21,
4545
5384
  line: {
4546
5385
  width: 3,
4547
5386
  color: "#ffffff",
@@ -4574,8 +5413,8 @@ const RENDERING_CONFIG_GRAYSCALE = {
4574
5413
  ],
4575
5414
  foot_path: [
4576
5415
  {
4577
- from: 16,
4578
- to: 19,
5416
+ from: 18,
5417
+ to: 21,
4579
5418
  line: {
4580
5419
  width: 2,
4581
5420
  color: "rgba(1, 1, 1, 0)",
@@ -4589,12 +5428,22 @@ const RENDERING_CONFIG_GRAYSCALE = {
4589
5428
  outlineColor: "#ffffff",
4590
5429
  outlineWidth: 2
4591
5430
  }
5431
+ },
5432
+ {
5433
+ from: 16,
5434
+ to: 27,
5435
+ line: {
5436
+ width: 1,
5437
+ color: "rgba(1, 1, 1, 0)",
5438
+ dashColor: "#cccccc",
5439
+ dashLength: 6
5440
+ }
4592
5441
  }
4593
5442
  ],
4594
5443
  rail: [
4595
5444
  {
4596
5445
  from: 16,
4597
- to: 19,
5446
+ to: 21,
4598
5447
  line: {
4599
5448
  width: 2,
4600
5449
  color: "#8B8C8C",
@@ -4615,7 +5464,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4615
5464
  ferry: [
4616
5465
  {
4617
5466
  from: 17,
4618
- to: 19,
5467
+ to: 21,
4619
5468
  line: {
4620
5469
  width: 3,
4621
5470
  color: "#9e9e9e"
@@ -4655,7 +5504,7 @@ const RENDERING_CONFIG_GRAYSCALE = {
4655
5504
  interstateNumbers: [
4656
5505
  {
4657
5506
  from: 11,
4658
- to: 19,
5507
+ to: 21,
4659
5508
  image: {
4660
5509
  url: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkJ1bmRlc3N0cmFzc2UiIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIwMCAxMjAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMTIwIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMDAgMTIwOyIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe2ZpbGw6I0Y5REM4MTt9PC9zdHlsZT48cGF0aCBpZD0icmVjdDQiIGNsYXNzPSJzdDAiIGQ9Ik0yMi4zLDBoMTU1LjVDMTkwLDAsMjAwLDEwLDIwMCwyMi4zdjc1LjVjMCwxMi4zLTEwLDIyLjMtMjIuMywyMi4zSDIyLjNDMTAsMTIwLDAsMTEwLDAsOTcuOFYyMi4zIEMwLDEwLDEwLDAsMjIuMywweiIvPjxwYXRoIGlkPSJyZWN0NiIgZD0iTTIyLjMsNC4zaDE1NS41YzkuOSwwLDE4LDguMSwxOCwxOHY3NS41YzAsOS45LTguMSwxOC0xOCwxOEgyMi4zYy05LjksMC0xOC04LjEtMTgtMThWMjIuMyBDNC4zLDEyLjMsMTIuMyw0LjMsMjIuMyw0LjN6Ii8+PHBhdGggaWQ9InJlY3Q4IiBjbGFzcz0ic3QwIiBkPSJNMjIuMywxMS4zaDE1NS41YzYuMSwwLDExLDQuOSwxMSwxMXY3NS41YzAsNi4xLTQuOSwxMS0xMSwxMUgyMi4zYy02LjEsMC0xMS00LjktMTEtMTFWMjIuMyBDMTEuMywxNi4yLDE2LjIsMTEuMywyMi4zLDExLjN6Ii8+PC9zdmc+",
4661
5510
  width: 27,
@@ -4683,46 +5532,55 @@ class MapReleaseFetcher {
4683
5532
  this._token = token;
4684
5533
  }
4685
5534
  async getRelease(provider) {
5535
+ if (!provider) {
5536
+ provider = DEFAULT_PROVIDER;
5537
+ }
4686
5538
  if (provider === "tomtom") {
4687
5539
  if (!this._tomtom) {
4688
- const url = "https://v1.maptrip.de/?CMD=GETFILE&PROJECT=TomTom_latest&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true";
4689
- this._tomtom = this.fetchAndExtractRelease(provider, url);
5540
+ this._tomtom = this.fetchAndExtractRelease(provider);
4690
5541
  }
4691
5542
  return this._tomtom;
4692
- }
4693
- if (provider === "orbis") {
5543
+ } else if (provider === "orbis") {
4694
5544
  if (!this._orbis) {
4695
- const url = "https://v1.maptrip.de/?CMD=GETFILE&PROJECT=Orbis_latest&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true";
4696
- this._orbis = this.fetchAndExtractRelease(provider, url);
5545
+ this._orbis = this.fetchAndExtractRelease(provider);
4697
5546
  }
4698
5547
  return this._orbis;
4699
5548
  } else if (provider === "here") {
4700
5549
  if (!this._here) {
4701
- const url = "https://v1.maptrip.de/?CMD=GETFILE&PROJECT=HERE_latest&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true";
4702
- this._here = this.fetchAndExtractRelease(provider, url);
5550
+ this._here = this.fetchAndExtractRelease(provider);
4703
5551
  }
4704
5552
  return this._here;
4705
5553
  } else if (provider === "openstreetmap") {
4706
5554
  if (!this._osm) {
4707
- const url = "https://v1.maptrip.de/?CMD=GETFILE&PROJECT=OSM_latest&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true";
4708
- this._osm = this.fetchAndExtractRelease(provider, url);
5555
+ this._osm = this.fetchAndExtractRelease(provider);
4709
5556
  }
4710
5557
  return this._osm;
4711
5558
  }
5559
+ return null;
5560
+ }
5561
+ getUrl(provider) {
5562
+ const project = PROVIDER_PROJECTS[provider.toLowerCase()];
5563
+ return `https://v0.maptrip.de/?CMD=GETFILE&PROJECT=${project}&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true`;
4712
5564
  }
4713
- async fetchAndExtractRelease(provider, url) {
5565
+ async fetchAndExtractRelease(provider) {
5566
+ const project = PROVIDER_PROJECTS[provider.toLowerCase()];
5567
+ const url = `https://v0.maptrip.de/?CMD=GETFILE&PROJECT=${project}&RELATIVEPATH=/data/mapset/data/routing_geocoder/admin.bin&acao=true`;
4714
5568
  return new Promise((resolve, reject) => {
4715
5569
  var xhr = new XMLHttpRequest();
4716
5570
  xhr.onreadystatechange = () => {
4717
5571
  if (xhr.readyState !== XMLHttpRequest.DONE) return;
4718
- if (xhr.status === 200) {
4719
- const text = new TextDecoder("latin1").decode(xhr.response);
4720
- const textString = this.extractTargetString(text);
4721
- const formattedString = textString.split("Q").join(" Q");
4722
- const release = ` ${PROVIDER_NAMES[provider]} ${formattedString}`;
4723
- resolve(release);
4724
- } else {
4725
- reject(`Error fetching: ${xhr.status}`);
5572
+ try {
5573
+ if (xhr.status === 200) {
5574
+ const text = new TextDecoder("latin1").decode(xhr.response);
5575
+ const textString = this.extractTargetString(text);
5576
+ const formattedString = textString.split("Q").join(" Q");
5577
+ const release = ` ${PROVIDER_NAMES[provider]} ${formattedString}`;
5578
+ resolve(release);
5579
+ } else {
5580
+ reject(`Error fetching: ${xhr.status}`);
5581
+ }
5582
+ } catch (e) {
5583
+ reject(`Error fetching: ${e}`);
4726
5584
  }
4727
5585
  };
4728
5586
  xhr.open("GET", url, true);
@@ -4739,28 +5597,6 @@ class MapReleaseFetcher {
4739
5597
  }
4740
5598
  }
4741
5599
 
4742
- class MapTripGoogleMapType {
4743
- tileSize = new google.maps.Size(256, 256);
4744
- alt = null;
4745
- maxZoom = MAX_ZOOM;
4746
- minZoom = MIN_ZOOM;
4747
- projection = null;
4748
- radius = 6378137;
4749
- name;
4750
- token;
4751
- factory;
4752
- constructor(properties) {
4753
- this.name = properties.name ? properties.name : "infoware";
4754
- this.token = properties.token;
4755
- this.factory = VectorTileFactory.createFactory(properties);
4756
- }
4757
- getTile(coord, zoom) {
4758
- return this.factory.getJsonTile(zoom, coord.x, coord.y, this.token);
4759
- }
4760
- releaseTile() {
4761
- }
4762
- }
4763
-
4764
5600
  var leafletSrc$1 = {exports: {}};
4765
5601
 
4766
5602
  /* @preserve
@@ -19284,96 +20120,968 @@ function requireLeafletSrc () {
19284
20120
  }
19285
20121
 
19286
20122
  var leafletSrcExports = requireLeafletSrc();
19287
- const L$1 = /*@__PURE__*/getDefaultExportFromCjs(leafletSrcExports);
20123
+ const L$2 = /*@__PURE__*/getDefaultExportFromCjs(leafletSrcExports);
20124
+
20125
+ class VectorTileUtils {
20126
+ static async getAttribution(token, provider, attribution, releaseDate) {
20127
+ let result = [ATTRIBUTION];
20128
+ if (releaseDate ? releaseDate : false) {
20129
+ const releaseFetcher = new MapReleaseFetcher(token);
20130
+ const release = await releaseFetcher.getRelease(provider).catch((error) => {
20131
+ console.error("Failed to fetch release:", error);
20132
+ return void 0;
20133
+ });
20134
+ if (release) {
20135
+ result.push(release);
20136
+ }
20137
+ }
20138
+ if (attribution) {
20139
+ result.push(attribution);
20140
+ }
20141
+ return result.join(", ");
20142
+ }
20143
+ }
19288
20144
 
19289
- class MapTripLeafletGridLayer extends L$1.GridLayer {
19290
- MIN_ZOOM = MIN_ZOOM;
19291
- MAX_ZOOM = MAX_ZOOM;
20145
+ class MapTripLeafletGridLayer extends L$2.GridLayer {
20146
+ static attributions = [];
19292
20147
  token;
19293
20148
  factory;
19294
- releaseFetcher;
19295
20149
  provider;
19296
- attribution;
19297
- release;
19298
20150
  releaseDate;
20151
+ currentAttribution;
20152
+ attachedMap;
20153
+ customAttribution;
19299
20154
  constructor(options) {
19300
- super(options);
20155
+ super({
20156
+ ...options,
20157
+ attribution: "",
20158
+ minZoom: Math.max(options.minZoom ? options.minZoom : MIN_ZOOM, MIN_ZOOM),
20159
+ maxZoom: Math.min(options.maxZoom ? options.maxZoom : MAX_ZOOM, MAX_ZOOM)
20160
+ });
19301
20161
  this.token = options.token;
19302
- this.provider = options.provider ? options.provider?.toLowerCase() : "openstreetmap";
19303
- this.options.attribution = options.attribution ? options.attribution : ATTRIBUTION;
19304
- this.releaseFetcher = new MapReleaseFetcher(this.token);
19305
- this.release = "";
19306
- this.attribution = "";
19307
- this.releaseDate = options.releaseDate ? options.releaseDate : false;
19308
- if (this.releaseDate) {
19309
- this.initializeAttribution();
19310
- this.on("add", () => {
19311
- if (this._map) {
19312
- this._map.on(
19313
- "baselayerchange",
19314
- (event) => this.onBaseLayerChange(event)
19315
- );
19316
- }
19317
- });
19318
- }
19319
- this.options.minZoom = options.minZoom ? Math.max(this.MIN_ZOOM, options.minZoom) : this.MIN_ZOOM;
19320
- this.options.maxZoom = options.maxZoom ? Math.min(this.MAX_ZOOM, options.maxZoom) : this.MAX_ZOOM;
20162
+ this.provider = options.provider;
20163
+ this.customAttribution = options.attribution;
20164
+ this.releaseDate = options.releaseDate;
20165
+ this.currentAttribution = void 0;
20166
+ void VectorTileUtils.getAttribution(this.token, this.provider, this.customAttribution, this.releaseDate).then((attribution) => {
20167
+ this.updateAttribution(attribution);
20168
+ }).catch((error) => {
20169
+ console.error("Unable to add MapTrip attribution", error);
20170
+ });
19321
20171
  this.factory = VectorTileFactory.createFactory(options);
19322
20172
  }
20173
+ onAdd(map) {
20174
+ this.attachedMap = map;
20175
+ return super.onAdd(map);
20176
+ }
20177
+ onRemove(map) {
20178
+ const result = super.onRemove(map);
20179
+ this.attachedMap = void 0;
20180
+ return result;
20181
+ }
19323
20182
  createTile(coords) {
19324
20183
  return this.factory.getJsonTile(coords.z, coords.x, coords.y, this.token);
19325
20184
  }
19326
- async initializeAttribution() {
19327
- await this.setRelease();
19328
- await this.setAttribution();
19329
- }
19330
- // Set an original release
19331
- async setRelease() {
19332
- const release = await this.releaseFetcher.getRelease(this.provider);
19333
- if (release) {
19334
- this.release = release;
20185
+ updateAttribution(attribution) {
20186
+ const previous = this.options.attribution ?? "";
20187
+ if (previous === attribution) {
20188
+ return;
20189
+ }
20190
+ const map = this.attachedMap;
20191
+ const control = map?.attributionControl;
20192
+ if (control && map.hasLayer(this)) {
20193
+ control.removeAttribution(previous);
20194
+ }
20195
+ this.options.attribution = attribution;
20196
+ if (control && map.hasLayer(this)) {
20197
+ control.addAttribution(attribution);
19335
20198
  }
19336
20199
  }
19337
- async setAttribution() {
19338
- if (!this._map) return;
19339
- try {
19340
- const newRelease = await this.releaseFetcher.getRelease(this.provider);
19341
- if (newRelease && newRelease !== this.release) {
19342
- this.release = newRelease;
20200
+ }
20201
+
20202
+ /**
20203
+ * MapLibre GL JS
20204
+ * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v6.16.0/LICENSE.txt
20205
+ */
20206
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),s=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},c=(n,r,o)=>(o=n==null?{}:e(i(n)),s(t(o,`default`,{value:n,enumerable:true}),n));function u(e,t){this.x=e,this.y=t;}u.prototype={clone(){return new u(this.x,this.y)},add(e){return this.clone()._add(e)},sub(e){return this.clone()._sub(e)},multByPoint(e){return this.clone()._multByPoint(e)},divByPoint(e){return this.clone()._divByPoint(e)},mult(e){return this.clone()._mult(e)},div(e){return this.clone()._div(e)},rotate(e){return this.clone()._rotate(e)},rotateAround(e,t){return this.clone()._rotateAround(e,t)},matMult(e){return this.clone()._matMult(e)},unit(){return this.clone()._unit()},perp(){return this.clone()._perp()},round(){return this.clone()._round()},mag(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals(e){return this.x===e.x&&this.y===e.y},dist(e){return Math.sqrt(this.distSqr(e))},distSqr(e){let t=e.x-this.x,n=e.y-this.y;return t*t+n*n},angle(){return Math.atan2(this.y,this.x)},angleTo(e){return Math.atan2(this.y-e.y,this.x-e.x)},angleWith(e){return this.angleWithSep(e.x,e.y)},angleWithSep(e,t){return Math.atan2(this.x*t-this.y*e,this.x*e+this.y*t)},_matMult(e){let t=e[0]*this.x+e[1]*this.y,n=e[2]*this.x+e[3]*this.y;return this.x=t,this.y=n,this},_add(e){return this.x+=e.x,this.y+=e.y,this},_sub(e){return this.x-=e.x,this.y-=e.y,this},_mult(e){return this.x*=e,this.y*=e,this},_div(e){return this.x/=e,this.y/=e,this},_multByPoint(e){return this.x*=e.x,this.y*=e.y,this},_divByPoint(e){return this.x/=e.x,this.y/=e.y,this},_unit(){return this._div(this.mag()),this},_perp(){let e=this.y;return this.y=this.x,this.x=-e,this},_rotate(e){let t=Math.cos(e),n=Math.sin(e),r=t*this.x-n*this.y,i=n*this.x+t*this.y;return this.x=r,this.y=i,this},_rotateAround(e,t){let n=Math.cos(e),r=Math.sin(e),i=t.x+n*(this.x-t.x)-r*(this.y-t.y),a=t.y+r*(this.x-t.x)+n*(this.y-t.y);return this.x=i,this.y=a,this},_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},constructor:u},u.convert=function(e){if(e instanceof u)return e;if(Array.isArray(e))return new u(+e[0],+e[1]);if(e.x!==void 0&&e.y!==void 0)return new u(+e.x,+e.y);throw Error(`Expected [x, y] or {x, y} point format`)};function d(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return ((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u;}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5;}return ((l*n+c)*n+s)*n}}var g=typeof Float32Array<`u`?Float32Array:Array;function x(){var e=new g(9);return g!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function T(){var e=new g(16);return g!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0),e[0]=1,e[5]=1,e[10]=1,e[15]=1,e}function O(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function de(){var e=new g(3);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function pe(e){var t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function me(e,t,n){var r=new g(3);return r[0]=e,r[1]=t,r[2]=n,r}function be(e,t){var n=t[0],r=t[1],i=t[2],a=n*n+r*r+i*i;return a>0&&(a=1/Math.sqrt(a)),e[0]=t[0]*a,e[1]=t[1]*a,e[2]=t[2]*a,e}function xe(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Se(e,t,n){var r=t[0],i=t[1],a=t[2],o=n[0],s=n[1],c=n[2];return e[0]=i*c-a*s,e[1]=a*o-r*c,e[2]=r*s-i*o,e}var Me=pe;(function(){var e=de();return function(t,n,r,i,a,o){var s,c;for(n||=3,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2];return t}})();function Ne(){var e=new g(4);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Le(e,t){var n=t[0],r=t[1],i=t[2],a=t[3],o=n*n+r*r+i*i+a*a;return o>0&&(o=1/Math.sqrt(o)),e[0]=n*o,e[1]=r*o,e[2]=i*o,e[3]=a*o,e}(function(){var e=Ne();return function(t,n,r,i,a,o){var s,c;for(n||=4,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],e[3]=t[s+3],a(e,e,o),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2],t[s+3]=e[3];return t}})();function Be(){var e=new g(4);return g!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function He(e,t,n){n*=.5;var r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function We(e,t,n,r){var i=t[0],a=t[1],o=t[2],s=t[3],c=n[0],l=n[1],u=n[2],d=n[3],f,p=i*c+a*l+o*u+s*d,m,h,g;return p<0&&(p=-p,c=-c,l=-l,u=-u,d=-d),1-p>1e-6?(f=Math.acos(p),m=Math.sin(f),h=Math.sin((1-r)*f)/m,g=Math.sin(r*f)/m):(h=1-r,g=r),e[0]=h*i+g*c,e[1]=h*a+g*l,e[2]=h*o+g*u,e[3]=h*s+g*d,e}function Ge(e,t){var n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else {var i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);var a=(i+1)%3,o=(i+2)%3;r=Math.sqrt(t[i*3+i]-t[a*3+a]-t[o*3+o]+1),e[i]=.5*r,r=.5/r,e[3]=(t[a*3+o]-t[o*3+a])*r,e[a]=(t[a*3+i]+t[i*3+a])*r,e[o]=(t[o*3+i]+t[i*3+o])*r;}return e}var Je=Le;((function(){var e=de(),t=me(1,0,0),n=me(0,1,0);return function(r,i,a){var o=xe(i,a);return o<-0.999999?(Se(e,t,i),Me(e)<1e-6&&Se(e,n,i),be(e,e),He(r,e,Math.PI),r):o>.999999?(r[0]=0,r[1]=0,r[2]=0,r[3]=1,r):(Se(e,i,a),r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=1+o,Je(r,r))}}))(),function(){var e=Be(),t=Be();return function(n,r,i,a,o,s){return We(e,r,o,s),We(t,i,a,s),We(n,e,t,2*s*(1-s)),n}}(),function(){var e=x();return function(t,n,r,i){return e[0]=r[0],e[3]=r[1],e[6]=r[2],e[1]=i[0],e[4]=i[1],e[7]=i[2],e[2]=-n[0],e[5]=-n[1],e[8]=-n[2],Je(t,Ge(t,e))}}();function Ye(){var e=new g(2);return g!=Float32Array&&(e[0]=0,e[1]=0),e}(function(){var e=Ye();return function(t,n,r,i,a,o){var s,c;for(n||=2,r||=0,c=i?Math.min(i*n+r,t.length):t.length,s=r;s<c;s+=n)e[0]=t[s],e[1]=t[s+1],a(e,e,o),t[s]=e[0],t[s+1]=e[1];return t}})();const P=8192;function rt(e){return e instanceof Error?e:Error(typeof e==`string`?e:String(e))}function St(e,t,n,r){return d(e,t,n,r)}function F(e,t,n){return Math.min(n,Math.max(t,e))}function wt(e,t,n){let r=n-t,i=((e-t)%r+r)%r+t;return i===t?n:i}function I(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function Nt(e,t,n){let r={};for(let i in e)r[i]=t.call(this,e[i],i,e);return r}const Lt={};function L$1(e){Lt[e]||(typeof console<`u`&&console.warn(e),Lt[e]=true);}function Rt(e,t,n){return (n.y-e.y)*(t.x-e.x)>(t.y-e.y)*(n.x-e.x)}function Vt(e){return typeof WorkerGlobalScope<`u`&&e!==void 0&&e instanceof WorkerGlobalScope}let Ut=null;function Wt(e){if(Ut==null){let t=e.navigator?e.navigator.userAgent:null;Ut=!!e.safari||!!(t&&(/\b(iPad|iPhone|iPod)\b/.test(t)||t.match(`Safari`)&&!t.match(`Chrome`)));}return Ut}function Gt(e){return typeof ImageBitmap<`u`&&e instanceof ImageBitmap}const Kt=async(e,t)=>{let n=new Blob([new Uint8Array(e)],{type:`image/png`});try{return createImageBitmap(n,t)}catch(e){throw Error(`Could not load image because of ${rt(e).message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}},qt=e=>new Promise((t,n)=>{let r=new Image;r.onload=()=>{t(r),URL.revokeObjectURL(r.src),r.onload=null,window.requestAnimationFrame(()=>r.src=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=`);},r.onerror=()=>n(/* @__PURE__ */ Error(`Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));let i=new Blob([new Uint8Array(e)],{type:`image/png`});r.src=URL.createObjectURL(i);});const un=`AbortError`;var dn=class extends Error{constructor(e=un){super(e instanceof Error?e.message:e),this.name=un,e instanceof Error&&e.stack&&(this.stack=e.stack);}};function fn(e){return e instanceof Error&&e.name===`AbortError`}function pn(e){if(e.aborted)throw new dn(e.reason)}const _n={get hardwareConcurrency(){return typeof navigator<`u`&&navigator.hardwareConcurrency||4}};const Cn=/* @__PURE__ */ new Set(/* @__PURE__ */ `a.abbr.b.bdi.bdo.br.cite.code.del.div.em.i.img.ins.kbd.li.mark.ol.p.q.s.samp.small.span.strong.sub.sup.time.u.ul.var.wbr`.split(`.`)),wn=/* @__PURE__ */ new Set([`alt`,`class`,`datetime`,`dir`,`height`,`href`,`hreflang`,`lang`,`referrerpolicy`,`rel`,`role`,`src`,`target`,`title`,`translate`,`type`,`width`]),Tn=/* @__PURE__ */ new Set([`href`,`src`]),En=/* @__PURE__ */ new Set([`http:`,`https:`,`mailto:`]);let Dn;function On(){return Dn??={getAttribute:Element.prototype.getAttribute,getAttributeNames:Element.prototype.getAttributeNames,querySelectorAll:Element.prototype.querySelectorAll,remove:Element.prototype.remove,removeAttribute:Element.prototype.removeAttribute,localName:Object.getOwnPropertyDescriptor(Element.prototype,`localName`).get,namespaceURI:Object.getOwnPropertyDescriptor(Element.prototype,`namespaceURI`).get},Dn}(class e{static{this.docStyle=typeof window<`u`&&window.document?.documentElement.style;}static{this.selectProp=!e.docStyle||`userSelect`in e.docStyle?`userSelect`:`webkitUserSelect`;}static create(e,t,n){let r=window.document.createElement(e);return t!==void 0&&(r.className=t),n&&n.appendChild(r),r}static createNS(e,t){return window.document.createElementNS(e,t)}static disableDrag(){e.docStyle&&e.selectProp&&(e.userSelect=e.docStyle[e.selectProp],e.docStyle[e.selectProp]=`none`);}static enableDrag(){e.docStyle&&e.selectProp&&(e.docStyle[e.selectProp]=e.userSelect);}static suppressClickInternal(t){t.preventDefault(),t.stopPropagation(),window.removeEventListener(`click`,e.suppressClickInternal,true);}static suppressClick(){window.addEventListener(`click`,e.suppressClickInternal,true),window.setTimeout(()=>{window.removeEventListener(`click`,e.suppressClickInternal,true);},0);}static getScale(e){let t=e.getBoundingClientRect();return {x:t.width/e.offsetWidth||1,y:t.height/e.offsetHeight||1,boundingClientRect:t}}static getPoint(e,t,n){let r=t.boundingClientRect;return new u((n.clientX-r.left)/t.x-e.clientLeft,(n.clientY-r.top)/t.y-e.clientTop)}static mousePos(t,n){let r=e.getScale(t);return e.getPoint(t,r,n)}static touchPos(t,n){let r=[],i=e.getScale(t);for(let a of n)r.push(e.getPoint(t,i,a));return r}static sanitize(t){let n=new DOMParser().parseFromString(t,`text/html`).body,{querySelectorAll:r,remove:i}=On();for(let t of Array.from(r.call(n,`*`)))e.isAllowedElement(t)?e.removeDisallowedAttributes(t):i.call(t);let a=document.createDocumentFragment();return a.append(...n.childNodes),a}static isAllowedElement(e){let{namespaceURI:t,localName:n}=On();return t.call(e)===`http://www.w3.org/1999/xhtml`&&Cn.has(n.call(e))}static removeDisallowedAttributes(t){let{getAttributeNames:n,getAttribute:r,removeAttribute:i}=On();for(let a of n.call(t))e.isAllowedAttribute(a,r.call(t,a))||i.call(t,a);}static isAllowedAttribute(e,t){if(!wn.has(e)&&!e.startsWith(`aria-`))return false;if(!Tn.has(e))return true;try{return En.has(new URL(t,`https://maplibre.invalid/`).protocol)}catch{return false}}});const kn={MAX_PARALLEL_IMAGE_REQUESTS:16,MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:8,REGISTERED_PROTOCOLS:{}};function An(e){return kn.REGISTERED_PROTOCOLS[e.substring(0,e.indexOf(`://`))]}function jn(e,t){kn.REGISTERED_PROTOCOLS[e]=t;}const Nn=`global-dispatcher`;var Pn=class extends Error{constructor(e,t,n,r){super(`AJAXError: ${t} (${e}): ${n}`),this.status=e,this.statusText=t,this.url=n,this.body=r;}};function Fn(){if(Vt(self))return self.worker?.referrer;if(window.location.protocol===`blob:`)try{return window.parent.location.href}catch{}return window.location.href}const In=e=>e.startsWith(`file:`)||Fn()?.startsWith(`file:`)&&!/^\w+:/.test(e);async function Ln(e,t){let n=new Request(e.url,{method:e.method||`GET`,body:e.body,credentials:e.credentials,headers:e.headers,cache:e.cache,referrer:Fn(),referrerPolicy:e.referrerPolicy,signal:t.signal});e.type===`json`&&!n.headers.has(`Accept`)&&n.headers.set(`Accept`,`application/json`);let r;try{r=await fetch(n);}catch(t){throw fn(t)?t:new Pn(0,rt(t).message,e.url,new Blob)}if(!r.ok){let t=await r.blob();throw new Pn(r.status,r.statusText,e.url,t)}let i;i=e.type===`arrayBuffer`||e.type===`image`?r.arrayBuffer():e.type===`json`?r.json():r.text();let a=await i;return pn(t.signal),{data:a,cacheControl:r.headers.get(`Cache-Control`),expires:r.headers.get(`Expires`),etag:r.headers.get(`ETag`)}}function Rn(e,t){return new Promise((n,r)=>{let i=new XMLHttpRequest;i.open(e.method||`GET`,e.url,true),(e.type===`arrayBuffer`||e.type===`image`)&&(i.responseType=`arraybuffer`);for(let t in e.headers)i.setRequestHeader(t,e.headers[t]);e.type===`json`&&(i.responseType=`text`,e.headers?.Accept||i.setRequestHeader(`Accept`,`application/json`)),i.withCredentials=e.credentials===`include`,i.onerror=()=>{r(Error(i.statusText));},i.onload=()=>{if(!t.signal.aborted){if((i.status>=200&&i.status<300||i.status===0)&&i.response!==null){let t=i.response;if(e.type===`json`)try{t=JSON.parse(i.response);}catch(e){r(e);return}n({data:t,cacheControl:i.getResponseHeader(`Cache-Control`),expires:i.getResponseHeader(`Expires`),etag:i.getResponseHeader(`ETag`)});}else {let t=new Blob([i.response],{type:i.getResponseHeader(`Content-Type`)});r(new Pn(i.status,i.statusText,e.url,t));}}},t.signal.addEventListener(`abort`,()=>{i.abort(),r(new dn(t.signal.reason));}),i.send(e.body);})}const zn=async function(e,t){if(e.url.includes(`://`)&&!/^https?:|^file:/.test(e.url)){let n=An(e.url);if(n){let r=await n(e,t);return !r.data&&e.type===`arrayBuffer`?I(r,{data:/* @__PURE__ */ new ArrayBuffer(0)}):r}if(Vt(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,targetMapId:Nn},t)}if(!In(e.url)){if(fetch&&Request&&AbortController&&Object.hasOwn(Request.prototype,`signal`))return Ln(e,t);if(Vt(self)&&self.worker?.actor)return self.worker.actor.sendAsync({type:`GR`,data:e,mustQueue:true,targetMapId:Nn},t)}return Rn(e,t)};function Hn(e){if(!e||e.startsWith(`data:image/`))return true;if(e.startsWith(`blob:`)&&(e=e.slice(5),e.startsWith(`null`)))return false;if(e.indexOf(`://`)<=0)return true;let t=new URL(e),n=window.location;return t.protocol===n.protocol&&t.host===n.host}var Jn=class e{constructor(e,t,n){let r=this.cells=[];if(e instanceof ArrayBuffer){this.arrayBuffer=e;let i=new Int32Array(this.arrayBuffer);e=i[0],t=i[1],n=i[2],this.d=t+2*n;for(let e=0;e<this.d*this.d;e++){let t=i[3+e],n=i[3+e+1];r.push(t===n?null:i.subarray(t,n));}let a=i[3+r.length],o=i[3+r.length+1];this.keys=i.subarray(a,o),this.bboxes=i.subarray(o),this.insert=this._insertReadonly;}else {this.d=t+2*n;for(let e=0;e<this.d*this.d;e++)r.push([]);this.keys=[],this.bboxes=[];}this.n=t,this.extent=e,this.padding=n,this.scale=t/e,this.uid=0;let i=n/t*e;this.min=-i,this.max=e+i;}insert(e,t,n,r,i){this._forEachCell(t,n,r,i,this._insertCell,this.uid++,void 0,void 0),this.keys.push(e),this.bboxes.push(t),this.bboxes.push(n),this.bboxes.push(r),this.bboxes.push(i);}_insertReadonly(){throw Error(`Cannot insert into a GridIndex created from an ArrayBuffer.`)}_insertCell(e,t,n,r,i,a){this.cells[i].push(a);}query(e,t,n,r,i){let a=this.min,o=this.max;if(e<=a&&t<=a&&o<=n&&o<=r&&!i)return [...this.keys];{let a=[];return this._forEachCell(e,t,n,r,this._queryCell,a,{},i),a}}_queryCell(e,t,n,r,i,a,o,s){let c=this.cells[i];if(c!==null){let i=this.keys,l=this.bboxes;for(let u of c)if(o[u]===void 0){let c=u*4;(s?s(l[c+0],l[c+1],l[c+2],l[c+3]):e<=l[c+2]&&t<=l[c+3]&&n>=l[c+0]&&r>=l[c+1])?(o[u]=true,a.push(i[u])):o[u]=false;}}}_forEachCell(e,t,n,r,i,a,o,s){let c=this._convertToCellCoord(e),l=this._convertToCellCoord(t),u=this._convertToCellCoord(n),d=this._convertToCellCoord(r);for(let f=c;f<=u;f++)for(let c=l;c<=d;c++){let l=this.d*c+f;if((!s||s(this._convertFromCellCoord(f),this._convertFromCellCoord(c),this._convertFromCellCoord(f+1),this._convertFromCellCoord(c+1)))&&i.call(this,e,t,n,r,l,a,o,s))return}}_convertFromCellCoord(e){return (e-this.padding)/this.scale}_convertToCellCoord(e){return Math.max(0,Math.min(this.d-1,Math.floor(e*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let e=this.cells,t=3+this.cells.length+1+1,n=0;for(let e of this.cells)n+=e.length;let r=new Int32Array(t+n+this.keys.length+this.bboxes.length);r[0]=this.extent,r[1]=this.n,r[2]=this.padding;let i=t;for(let t=0;t<e.length;t++){let n=e[t];r[3+t]=i,r.set(n,i),i+=n.length;}return r[3+e.length]=i,r.set(this.keys,i),i+=this.keys.length,r[3+e.length+1]=i,r.set(this.bboxes,i),i+=this.bboxes.length,r.buffer}static serialize(e,t){let n=e.toArrayBuffer();return t&&t.push(n),{buffer:n}}static deserialize(t){return new e(t.buffer)}},Yn={$version:8,$root:{version:{required:true,type:`enum`,values:[8]},name:{type:`string`},metadata:{type:`*`},center:{type:`array`,value:`number`,length:2},centerAltitude:{type:`number`},zoom:{type:`number`},bearing:{type:`number`,default:0,period:360,units:`degrees`},pitch:{type:`number`,default:0,units:`degrees`},roll:{type:`number`,default:0,units:`degrees`},state:{type:`state`,default:{}},light:{type:`light`},sky:{type:`sky`},projection:{type:`projection`},terrain:{type:`terrain`},sources:{required:true,type:`sources`},sprite:{type:`sprite`},glyphs:{type:`string`},"font-faces":{type:`fontFaces`},transition:{type:`transition`},layers:{required:true,type:`array`,value:`layer`}},sources:{"*":{type:`source`}},source:[`source_vector`,`source_raster`,`source_raster_dem`,`source_geojson`,`source_video`,`source_image`],source_vector:{type:{required:true,type:`enum`,values:{vector:{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:`enum`,values:{xyz:{},tms:{}},default:`xyz`},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},attribution:{type:`string`},promoteId:{type:`promoteId`},volatile:{type:`boolean`,default:false},encoding:{type:`enum`,values:{mvt:{},mlt:{}},default:`mvt`},"*":{type:`*`}},source_raster:{type:{required:true,type:`enum`,values:{raster:{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},tileSize:{type:`number`,default:512,units:`pixels`},scheme:{type:`enum`,values:{xyz:{},tms:{}},default:`xyz`},attribution:{type:`string`},volatile:{type:`boolean`,default:false},"*":{type:`*`}},source_raster_dem:{type:{required:true,type:`enum`,values:{"raster-dem":{}}},url:{type:`string`},tiles:{type:`array`,value:`string`},bounds:{type:`array`,value:`number`,length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:`number`,default:0},maxzoom:{type:`number`,default:22},tileSize:{type:`number`,default:512,units:`pixels`},attribution:{type:`string`},encoding:{type:`enum`,values:{terrarium:{},mapbox:{},custom:{}},default:`mapbox`},redFactor:{type:`number`,default:1},blueFactor:{type:`number`,default:1},greenFactor:{type:`number`,default:1},baseShift:{type:`number`,default:0},volatile:{type:`boolean`,default:false},"*":{type:`*`}},source_geojson:{type:{required:true,type:`enum`,values:{geojson:{}}},data:{required:true,type:`*`},maxzoom:{type:`number`,default:18},attribution:{type:`string`},buffer:{type:`number`,default:128,maximum:512,minimum:0},filter:{type:`filter`},tolerance:{type:`number`,default:.375},cluster:{type:`boolean`,default:false},clusterRadius:{type:`number`,default:50,minimum:0},clusterMaxZoom:{type:`number`},clusterMinPoints:{type:`number`},clusterProperties:{type:`*`},lineMetrics:{type:`boolean`,default:false},generateId:{type:`boolean`,default:false},promoteId:{type:`promoteId`}},source_video:{type:{required:true,type:`enum`,values:{video:{}}},urls:{required:true,type:`array`,value:`string`},coordinates:{required:true,type:`array`,length:4,value:{type:`array`,length:2,value:`number`}}},source_image:{type:{required:true,type:`enum`,values:{image:{}}},url:{type:`string`},coordinates:{required:true,type:`array`,length:4,value:{type:`array`,length:2,value:`number`}}},layer:{id:{type:`string`,required:true},type:{type:`enum`,values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},"color-relief":{},background:{}},required:true},metadata:{type:`*`},source:{type:`string`},"source-layer":{type:`string`},minzoom:{type:`number`,minimum:0,maximum:24},maxzoom:{type:`number`,minimum:0,maximum:24},filter:{type:`filter`},layout:{type:`layout`},paint:{type:`paint`}},layout:[`layout_fill`,`layout_line`,`layout_circle`,`layout_heatmap`,`layout_fill-extrusion`,`layout_symbol`,`layout_raster`,`layout_hillshade`,`layout_color-relief`,`layout_background`],layout_background:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_fill:{"fill-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_circle:{"circle-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_heatmap:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_fill-extrusion":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`},"fill-extrusion-rounded-corner-distance":{type:`number`,default:0,minimum:0,units:`meters`,"property-type":`constant`}},layout_line:{"line-cap":{type:`enum`,values:{butt:{},round:{},square:{}},default:`butt`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-join":{type:`enum`,values:{bevel:{},round:{},miter:{}},default:`miter`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-miter-limit":{type:`number`,default:2,requires:[{"line-join":`miter`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-round-limit":{type:`number`,default:1.05,requires:[{"line-join":`round`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"line-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_symbol:{"symbol-placement":{type:`enum`,values:{point:{},line:{},"line-center":{}},default:`point`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-spacing":{type:`number`,default:250,minimum:1,units:`pixels`,requires:[{"symbol-placement":`line`}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-avoid-edges":{type:`boolean`,default:false,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-sort-key":{type:`number`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"symbol-z-order":{type:`enum`,values:{auto:{},"viewport-y":{},source:{}},default:`auto`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-allow-overlap":{type:`boolean`,default:false,requires:[`icon-image`,{"!":`icon-overlap`}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-ignore-placement":{type:`boolean`,default:false,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-optional":{type:`boolean`,default:false,requires:[`icon-image`,`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-size":{type:`number`,default:1,minimum:0,units:`factor of the original icon size`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-text-fit":{type:`enum`,values:{none:{},width:{},height:{},both:{}},default:`none`,requires:[`icon-image`,`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-text-fit-padding":{type:`array`,value:`number`,length:4,default:[0,0,0,0],units:`pixels`,requires:[`icon-image`,`text-field`,{"icon-text-fit":[`both`,`width`,`height`]}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"icon-image":{type:`resolvedImage`,tokens:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-padding":{type:`padding`,default:[2],units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-keep-upright":{type:`boolean`,default:false,requires:[`icon-image`,{"icon-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"icon-offset":{type:`array`,value:`number`,length:2,default:[0,0],requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-anchor":{type:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:`center`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"icon-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-pitch-alignment":{type:`enum`,values:{map:{},viewport:{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotation-alignment":{type:`enum`,values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:`auto`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-field":{type:`formatted`,default:``,tokens:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-font":{type:`array`,value:`string`,default:[`Open Sans Regular`,`Arial Unicode MS Regular`],requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-size":{type:`number`,default:16,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-width":{type:`number`,default:10,minimum:0,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-line-height":{type:`number`,default:1.2,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-letter-spacing":{type:`number`,default:0,units:`ems`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-justify":{type:`enum`,values:{auto:{},left:{},center:{},right:{}},default:`center`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-radial-offset":{type:`number`,units:`ems`,default:0,requires:[`text-field`],"property-type":`data-driven`,expression:{interpolated:true,parameters:[`zoom`,`feature`]}},"text-variable-anchor":{type:`array`,value:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-variable-anchor-offset":{type:`variableAnchorOffsetCollection`,requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-anchor":{type:`enum`,values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:`center`,requires:[`text-field`,{"!":`text-variable-anchor`}],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-max-angle":{type:`number`,default:45,units:`degrees`,requires:[`text-field`,{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-writing-mode":{type:`array`,value:`enum`,values:{horizontal:{},vertical:{}},requires:[`text-field`,{"symbol-placement":[`point`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-rotate":{type:`number`,default:0,period:360,units:`degrees`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-padding":{type:`number`,default:2,minimum:0,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-keep-upright":{type:`boolean`,default:true,requires:[`text-field`,{"text-rotation-alignment":`map`},{"symbol-placement":[`line`,`line-center`]}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-transform":{type:`enum`,values:{none:{},uppercase:{},lowercase:{}},default:`none`,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-offset":{type:`array`,value:`number`,units:`ems`,length:2,default:[0,0],requires:[`text-field`,{"!":`text-radial-offset`}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"text-allow-overlap":{type:`boolean`,default:false,requires:[`text-field`,{"!":`text-overlap`}],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-overlap":{type:`enum`,values:{never:{},always:{},cooperative:{}},requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-ignore-placement":{type:`boolean`,default:false,requires:[`text-field`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-optional":{type:`boolean`,default:false,requires:[`text-field`,`icon-image`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"symbol-height-offset":{type:`number`,default:0,units:`meters`,requires:[{"symbol-placement":[`point`]}],expression:{interpolated:true,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},"symbol-height-anchor":{type:`enum`,values:{ground:{},absolute:{}},default:`ground`,requires:[`symbol-height-offset`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_raster:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},layout_hillshade:{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},"layout_color-relief":{visibility:{type:`enum`,values:{visible:{},none:{}},default:`visible`,expression:{interpolated:false,parameters:[`global-state`]},"property-type":`data-constant`}},filter:{type:`boolean`,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`data-driven`},filter_operator:{type:`enum`,values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:`enum`,values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:`expression`},stops:{type:`array`,value:`function_stop`},base:{type:`number`,default:1,minimum:0},property:{type:`string`,default:`$zoom`},type:{type:`enum`,values:{identity:{},exponential:{},interval:{},categorical:{}},default:`exponential`},colorSpace:{type:`enum`,values:{rgb:{},lab:{},hcl:{}},default:`rgb`},default:{type:`*`,required:false}},function_stop:{type:`array`,minimum:0,maximum:24,value:[`number`,`color`],length:2},expression:{type:`array`,value:`expression_name`,minimum:1},light:{anchor:{type:`enum`,default:`viewport`,values:{map:{},viewport:{}},"property-type":`data-constant`,transition:false,expression:{interpolated:false,parameters:[`zoom`]}},position:{type:`array`,default:[1.15,210,30],length:3,value:`number`,"property-type":`data-constant`,transition:true,expression:{interpolated:true,parameters:[`zoom`]}},color:{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},intensity:{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true}},sky:{"sky-color":{type:`color`,"property-type":`data-constant`,default:`#88C6FC`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"horizon-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"fog-color":{type:`color`,"property-type":`data-constant`,default:`#ffffff`,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"fog-ground-blend":{type:`number`,"property-type":`data-constant`,default:.5,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"horizon-fog-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"sky-horizon-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true},"atmosphere-blend":{type:`number`,"property-type":`data-constant`,default:.8,minimum:0,maximum:1,expression:{interpolated:true,parameters:[`zoom`]},transition:true}},terrain:{source:{type:`string`,required:true},exaggeration:{type:`number`,minimum:0,default:1}},projection:{type:{type:`projectionDefinition`,default:`mercator`,"property-type":`data-constant`,transition:false,expression:{interpolated:true,parameters:[`zoom`]}}},paint:[`paint_fill`,`paint_line`,`paint_circle`,`paint_heatmap`,`paint_fill-extrusion`,`paint_symbol`,`paint_raster`,`paint_hillshade`,`paint_color-relief`,`paint_background`],paint_fill:{"fill-antialias":{type:`boolean`,default:true,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"fill-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-outline-color":{type:`color`,transition:true,requires:[{"!":`fill-pattern`},{"fill-antialias":true}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`fill-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`fill-extrusion-pattern`}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`fill-extrusion-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"fill-extrusion-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"fill-extrusion-height":{type:`number`,default:0,units:`meters`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-base":{type:`number`,default:0,units:`meters`,transition:true,requires:[`fill-extrusion-height`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"fill-extrusion-vertical-gradient":{type:`boolean`,default:true,transition:false,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_line:{"line-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-layer-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`global-state`]},"property-type":`data-constant`},"line-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`line-pattern`}],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"line-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`line-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"line-width":{type:`number`,default:1,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-gap-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-offset":{type:`number`,default:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"line-dasharray":{type:`array`,value:`number`,minimum:0,transition:true,units:`line widths`,requires:[{"!":`line-pattern`}],expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"line-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`,`feature`]},"property-type":`cross-faded-data-driven`},"line-gradient":{type:`color`,transition:false,requires:[{"!":`line-dasharray`},{"!":`line-pattern`},{source:`geojson`,has:{lineMetrics:true}}],expression:{interpolated:true,parameters:[`line-progress`]},"property-type":`color-ramp`}},paint_circle:{"circle-radius":{type:`number`,default:5,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-blur":{type:`number`,default:0,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"circle-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`circle-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-pitch-scale":{type:`enum`,values:{map:{},viewport:{}},default:`map`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-pitch-alignment":{type:`enum`,values:{map:{},viewport:{}},default:`viewport`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"circle-stroke-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-stroke-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"circle-stroke-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`}},paint_heatmap:{"heatmap-radius":{type:`number`,default:30,minimum:1,transition:true,units:`pixels`,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"heatmap-weight":{type:`number`,default:1,minimum:0,transition:false,expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"heatmap-intensity":{type:`number`,default:1,minimum:0,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"heatmap-color":{type:`color`,default:[`interpolate`,[`linear`],[`heatmap-density`],0,`rgba(0, 0, 255, 0)`,.1,`royalblue`,.3,`cyan`,.5,`lime`,.7,`yellow`,1,`red`],transition:false,expression:{interpolated:true,parameters:[`heatmap-density`]},"property-type":`color-ramp`},"heatmap-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},paint_symbol:{"icon-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-color":{type:`color`,default:`#000000`,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-color":{type:`color`,default:`rgba(0, 0, 0, 0)`,transition:true,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-halo-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"icon-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,requires:[`icon-image`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"icon-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`icon-image`,`icon-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"text-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-color":{type:`color`,default:`#000000`,transition:true,overridable:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-color":{type:`color`,default:`rgba(0, 0, 0, 0)`,transition:true,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-width":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-halo-blur":{type:`number`,default:0,minimum:0,transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`,`feature`,`feature-state`]},"property-type":`data-driven`},"text-translate":{type:`array`,value:`number`,length:2,default:[0,0],transition:true,units:`pixels`,requires:[`text-field`],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"text-translate-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`map`,requires:[`text-field`,`text-translate`],expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_raster:{"raster-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-hue-rotate":{type:`number`,default:0,period:360,transition:true,units:`degrees`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-brightness-min":{type:`number`,default:0,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-brightness-max":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-saturation":{type:`number`,default:0,minimum:-1,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"raster-contrast":{type:`number`,default:0,minimum:-1,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"raster-resampling":{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"raster-fade-duration":{type:`number`,default:300,minimum:0,transition:false,units:`milliseconds`,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},paint_hillshade:{"hillshade-illumination-direction":{type:`numberArray`,default:335,minimum:0,maximum:359,transition:false,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-altitude":{type:`numberArray`,default:45,minimum:0,maximum:90,transition:false,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-illumination-anchor":{type:`enum`,values:{map:{},viewport:{}},default:`viewport`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-exaggeration":{type:`number`,default:.5,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-shadow-color":{type:`colorArray`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-highlight-color":{type:`colorArray`,default:`#FFFFFF`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-accent-color":{type:`color`,default:`#000000`,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"hillshade-method":{type:`enum`,values:{standard:{},basic:{},combined:{},igor:{},multidirectional:{}},default:`standard`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},"paint_color-relief":{"color-relief-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"color-relief-color":{type:`color`,transition:false,expression:{interpolated:true,parameters:[`elevation`]},"property-type":`color-ramp`},resampling:{type:`enum`,values:{linear:{},nearest:{}},default:`linear`,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`data-constant`}},paint_background:{"background-color":{type:`color`,default:`#000000`,transition:true,requires:[{"!":`background-pattern`}],expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`},"background-pattern":{type:`resolvedImage`,transition:true,expression:{interpolated:false,parameters:[`zoom`]},"property-type":`cross-faded`},"background-opacity":{type:`number`,default:1,minimum:0,maximum:1,transition:true,expression:{interpolated:true,parameters:[`zoom`]},"property-type":`data-constant`}},transition:{duration:{type:`number`,default:300,minimum:0,units:`milliseconds`},delay:{type:`number`,default:0,minimum:0,units:`milliseconds`}},"property-type":{"data-driven":{type:`property-type`},"cross-faded":{type:`property-type`},"cross-faded-data-driven":{type:`property-type`},"color-ramp":{type:`property-type`},"data-constant":{type:`property-type`},constant:{type:`property-type`}},promoteId:{"*":{type:`string`}},interpolation:{type:`array`,value:`interpolation_name`,minimum:1},interpolation_name:{type:`enum`,values:{linear:{syntax:{overloads:[{parameters:[],"output-type":`interpolation`}],parameters:[]}},exponential:{syntax:{overloads:[{parameters:[`base`],"output-type":`interpolation`}],parameters:[{name:`base`,type:`number literal`}]}},"cubic-bezier":{syntax:{overloads:[{parameters:[`x1`,`y1`,`x2`,`y2`],"output-type":`interpolation`}],parameters:[{name:`x1`,type:`number literal`},{name:`y1`,type:`number literal`},{name:`x2`,type:`number literal`},{name:`y2`,type:`number literal`}]}}}}};const B=Yn;const fr={kind:`null`},H={kind:`number`},U={kind:`string`},pr={kind:`boolean`},mr={kind:`color`},hr={kind:`projectionDefinition`},gr={kind:`object`},W={kind:`value`},_r={kind:`error`},vr={kind:`collator`},yr={kind:`formatted`},br={kind:`padding`},xr={kind:`colorArray`},Sr={kind:`numberArray`},Cr={kind:`resolvedImage`},wr={kind:`variableAnchorOffsetCollection`};function Tr(e,t){return {kind:`array`,itemType:e,N:t}}function Er(e){if(e.kind===`array`){let t=Er(e.itemType);return typeof e.N==`number`?`array<${t}, ${e.N}>`:e.itemType.kind===`value`?`array`:`array<${t}>`}return e.kind}const Dr=[fr,H,U,pr,mr,hr,yr,gr,Tr(W),br,Sr,xr,Cr,wr];function Or(e,t){if(t.kind===`error`)return null;if(e.kind===`array`){if(t.kind===`array`&&(t.N===0&&t.itemType.kind===`value`||!Or(e.itemType,t.itemType))&&(typeof e.N!=`number`||e.N===t.N))return null}else if(e.kind===t.kind)return null;else if(e.kind===`value`){for(let e of Dr)if(!Or(e,t))return null}return `Expected ${Er(e)} but found ${Er(t)} instead.`}function kr(e,t){return t.some(t=>t.kind===e.kind)}function Ar(e,t){return t.some(t=>t===`null`?e===null:t===`array`?Array.isArray(e):t===`object`?e&&!Array.isArray(e)&&typeof e==`object`:t===typeof e)}function jr(e,t){return e.kind===`array`&&t.kind===`array`?e.itemType.kind===t.itemType.kind&&typeof e.N==`number`:e.kind===t.kind}const Mr=.96422,Nr=.82521,Pr=4/29,Fr=6/29,Ir=3*Fr*Fr,Lr=Math.PI/180,Rr=180/Math.PI;function zr(e){return e%=360,e<0&&(e+=360),e}function Br([e,t,n,r]){e=Vr(e),t=Vr(t),n=Vr(n);let i,a,o=Hr((.2225045*e+.7168786*t+.0606169*n)/1);e===t&&t===n?i=a=o:(i=Hr((.4360747*e+.3850649*t+.1430804*n)/Mr),a=Hr((.0139322*e+.0971045*t+.7141733*n)/Nr));let s=116*o-16;return [s<0?0:s,500*(i-o),200*(o-a),r]}function Vr(e){return e<=.04045?e/12.92:((e+.055)/1.055)**2.4}function Hr(e){return e>.008856451679035631?e**(1/3):e/Ir+Pr}function Ur([e,t,n,r]){let i=(e+16)/116,a=isNaN(t)?i:i+t/500,o=isNaN(n)?i:i-n/200;return i=1*Gr(i),a=Mr*Gr(a),o=Nr*Gr(o),[Wr(3.1338561*a-1.6168667*i-.4906146*o),Wr(-0.9787684*a+1.9161415*i+.033454*o),Wr(.0719453*a-.2289914*i+1.4052427*o),r]}function Wr(e){return e=e<=.00304?12.92*e:1.055*e**(1/2.4)-.055,e<0?0:e>1?1:e}function Gr(e){return e>Fr?e*e*e:Ir*(e-Pr)}function Kr(e){let[t,n,r,i]=Br(e),a=Math.sqrt(n*n+r*r);return [Math.round(a*1e4)?zr(Math.atan2(r,n)*Rr):NaN,a,t,i]}function qr([e,t,n,r]){return e=isNaN(e)?0:e*Lr,Ur([n,Math.cos(e)*t,Math.sin(e)*t,r])}function Jr([e,t,n,r]){e=zr(e),t/=100,n/=100;function i(r){let i=(r+e/30)%12,a=t*Math.min(n,1-n);return n-a*Math.max(-1,Math.min(i-3,9-i,1))}return [i(0),i(8),i(4),r]}const Yr=Object.hasOwn||function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};function Xr(e,t){return Yr(e,t)?e[t]:void 0}function Zr(e){if(e=e.toLowerCase().trim(),e===`transparent`)return [0,0,0,0];let t=Xr(ni,e);if(t){let[e,n,r]=t;return [e/255,n/255,r/255,1]}if(e.startsWith(`#`)&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(e)){let t=e.length<6?1:2,n=1;return [Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+=t)),Qr(e.slice(n,n+t)||`ff`)]}if(e.startsWith(`rgb`)){let t=e.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(t){let[e,n,r,i,a,o,s,c,l,u,d,f]=t,p=[i||` `,s||` `,u].join(``);if(p===` `||p===` /`||p===`,,`||p===`,,,`){let e=[r,o,l].join(``),t=e===`%%%`?100:e===``?255:0;if(t){let e=[ei(+n/t,0,1),ei(+a/t,0,1),ei(+c/t,0,1),d?$r(+d,f):1];if(ti(e))return e}}return}}let n=e.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(n){let[e,t,r,i,a,o,s,c,l]=n,u=[r||` `,a||` `,s].join(``);if(u===` `||u===` /`||u===`,,`||u===`,,,`){let e=[+t,ei(+i,0,100),ei(+o,0,100),c?$r(+c,l):1];if(ti(e))return Jr(e)}}}function Qr(e){return parseInt(e.padEnd(2,e),16)/255}function $r(e,t){return ei(t?e/100:e,0,1)}function ei(e,t,n){return Math.min(Math.max(t,e),n)}function ti(e){return !e.some(Number.isNaN)}const ni={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function ri(e,t,n){return e+n*(t-e)}function ii(e,t,n){return e.map((e,r)=>ri(e,t[r],n))}function ai(e){return e===`rgb`||e===`hcl`||e===`lab`}var G=class e{constructor(e,t,n,r=1,i=true){this.r=e,this.g=t,this.b=n,this.a=r,i||(this.r*=r,this.g*=r,this.b*=r,r||this.overwriteGetter(`rgb`,[e,t,n,r]));}static{this.black=new e(0,0,0,1);}static{this.white=new e(1,1,1,1);}static{this.transparent=new e(0,0,0,0);}static{this.red=new e(1,0,0,1);}static parse(t){if(t instanceof e)return t;if(typeof t!=`string`)return;let n=Zr(t);if(n)return new e(...n,false)}get rgb(){let{r:e,g:t,b:n,a:r}=this,i=r||1/0;return this.overwriteGetter(`rgb`,[e/i,t/i,n/i,r])}get hcl(){return this.overwriteGetter(`hcl`,Kr(this.rgb))}get lab(){return this.overwriteGetter(`lab`,Br(this.rgb))}overwriteGetter(e,t){return Object.defineProperty(this,e,{value:t}),t}toString(){let[e,t,n,r]=this.rgb;return `rgba(${[e,t,n].map(e=>Math.round(e*255)).join(`,`)},${r})`}static interpolate(t,n,r,i=`rgb`){switch(i){case `rgb`:{let[i,a,o,s]=ii(t.rgb,n.rgb,r);return new e(i,a,o,s,false)}case `hcl`:{let[i,a,o,s]=t.hcl,[c,l,u,d]=n.hcl,f,p;if(!isNaN(i)&&!isNaN(c)){let e=c-i;c>i&&e>180?e-=360:c<i&&i-c>180&&(e+=360),f=i+r*e;}else isNaN(i)?isNaN(c)?f=NaN:(f=c,(o===1||o===0)&&(p=l)):(f=i,(u===1||u===0)&&(p=a));let[m,h,g,_]=qr([f,p??ri(a,l,r),ri(o,u,r),ri(s,d,r)]);return new e(m,h,g,_,false)}case `lab`:{let[i,a,o,s]=Ur(ii(t.lab,n.lab,r));return new e(i,a,o,s,false)}}}};const oi=[`bottom`,`center`,`top`];var si=class{constructor(e,t,n,r,i,a){this.text=e,this.image=t,this.scale=n,this.fontStack=r,this.textColor=i,this.verticalAlign=a;}},ci=class e{constructor(e){this.sections=e;}static fromString(t){return new e([new si(t,null,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(e=>e.text.length!==0||e.image&&e.image.name.length!==0)}static factory(t){return t instanceof e?t:e.fromString(t)}toString(){return this.sections.length===0?``:this.sections.map(e=>e.text).join(``)}},li=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t,t,t,t]);if(Array.isArray(t)&&!(t.length<1||t.length>4)){for(let e of t)if(typeof e!=`number`)return;switch(t.length){case 1:t=[t[0],t[0],t[0],t[0]];break;case 2:t=[t[0],t[1],t[0],t[1]];break;case 3:t=[t[0],t[1],t[2],t[1]];}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(ii(t.values,n.values,r))}},ui=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`number`)return new e([t]);if(Array.isArray(t)){for(let e of t)if(typeof e!=`number`)return;return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r){return new e(ii(t.values,n.values,r))}},di=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(typeof t==`string`){let n=G.parse(t);return n?new e([n]):void 0}if(!Array.isArray(t))return;let n=[];for(let e of t){if(typeof e!=`string`)return;let t=G.parse(e);if(!t)return;n.push(t);}return new e(n)}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i=`rgb`){let a=[];if(t.values.length!=n.values.length)throw Error(`colorArray: Arrays have mismatched length (${t.values.length} vs. ${n.values.length}), cannot interpolate.`);for(let e=0;e<t.values.length;e++)a.push(G.interpolate(t.values[e],n.values[e],r,i));return new e(a)}},fi=class extends Error{constructor(e,t){super(e),this.name=`RuntimeError`,this.path=t;}toJSON(){return this.message}};const pi=/* @__PURE__ */ new Set([`center`,`left`,`right`,`top`,`bottom`,`top-left`,`top-right`,`bottom-left`,`bottom-right`]);var mi=class e{constructor(e){this.values=e.slice();}static parse(t){if(t instanceof e)return t;if(!(!Array.isArray(t)||t.length<1||t.length%2!=0)){for(let e=0;e<t.length;e+=2){let n=t[e],r=t[e+1];if(typeof n!=`string`||!pi.has(n)||!Array.isArray(r)||r.length!==2||typeof r[0]!=`number`||typeof r[1]!=`number`)return}return new e(t)}}toString(){return JSON.stringify(this.values)}static interpolate(t,n,r,i){let a=t.values,o=n.values;if(a.length!==o.length)throw new fi(`Cannot interpolate values of different length. from: ${t.toString()}, to: ${n.toString()}`,i);let s=[];for(let e=0;e<a.length;e+=2){if(a[e]!==o[e])throw new fi(`Cannot interpolate values containing mismatched anchors. from[${e}]: ${a[e]}, to[${e}]: ${o[e]}`,i);s.push(a[e]);let[t,n]=a[e+1],[c,l]=o[e+1];s.push([ri(t,c,r),ri(n,l,r)]);}return new e(s)}},hi=class e{constructor(e){this.name=e.name,this.available=e.available;}toString(){return this.name}static fromString(t){return t?new e({name:t,available:false}):null}},gi=class e{constructor(e,t,n){this.from=e,this.to=t,this.transition=n;}toString(){return this.from===this.to&&this.transition===1?this.from:JSON.stringify([this.from,this.to,this.transition])}static interpolate(t,n,r){return new e(t,n,r)}static parse(t){if(t instanceof e)return t;if(Array.isArray(t)&&t.length===3&&typeof t[0]==`string`&&typeof t[1]==`string`&&typeof t[2]==`number`)return new e(t[0],t[1],t[2]);if(typeof t==`object`&&typeof t.from==`string`&&typeof t.to==`string`&&typeof t.transition==`number`)return new e(t.from,t.to,t.transition);if(typeof t==`string`)return new e(t,t,1)}},_i=class{constructor(e,t,n){this.sensitivity=e?t?`variant`:`case`:t?`accent`:`base`,this.locale=n,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:`search`});}compare(e,t){return this.collator.compare(e,t)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}};function vi(e,t,n,r){return typeof e==`number`&&e>=0&&e<=255&&typeof t==`number`&&t>=0&&t<=255&&typeof n==`number`&&n>=0&&n<=255?r===void 0||typeof r==`number`&&r>=0&&r<=1?null:`Invalid rgba value [${[e,t,n,r].join(`, `)}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof r==`number`?[e,t,n,r]:[e,t,n]).join(`, `)}]: 'r', 'g', and 'b' must be between 0 and 255.`}function yi(e){if(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`||e instanceof gi||e instanceof G||e instanceof _i||e instanceof ci||e instanceof li||e instanceof ui||e instanceof di||e instanceof mi||e instanceof hi)return true;if(Array.isArray(e)){for(let t of e)if(!yi(t))return false;return true}if(typeof e==`object`){for(let t in e)if(!yi(e[t]))return false;return true}return false}function bi(e){if(e===null)return fr;if(typeof e==`string`)return U;if(typeof e==`boolean`)return pr;if(typeof e==`number`)return H;if(e instanceof G)return mr;if(e instanceof gi)return hr;if(e instanceof _i)return vr;if(e instanceof ci)return yr;if(e instanceof li)return br;if(e instanceof ui)return Sr;if(e instanceof di)return xr;if(e instanceof mi)return wr;if(e instanceof hi)return Cr;if(Array.isArray(e)){let t=e.length,n;for(let t of e){let e=bi(t);if(!n)n=e;else if(n===e)continue;else {n=W;break}}return Tr(n||W,t)}return gr}function xi(e){let t=typeof e;return e===null?``:t===`string`||t===`number`||t===`boolean`?String(e):e instanceof G||e instanceof gi||e instanceof ci||e instanceof li||e instanceof ui||e instanceof di||e instanceof mi||e instanceof hi?e.toString():JSON.stringify(e)}var Si=class e{constructor(e,t){this.type=e,this.value=t;}static parse(t,n){if(t.length!==2)return n.error(`'literal' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!yi(t[1]))return n.error(`invalid value of type "${typeof t[1]}"`);let r=t[1],i=bi(r),a=n.expectedType;return i.kind===`array`&&i.N===0&&a&&a.kind===`array`&&(typeof a.N!=`number`||a.N===0)&&(i=a),new e(i,r)}evaluate(){return this.value}eachChild(){}outputDefined(){return true}};const Ci=[`Unknown`,`Point`,`LineString`,`Polygon`];var wi=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache=/* @__PURE__ */ new Map,this.availableImages=null,this.canonical=null;}id(){return this.feature&&`id`in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type==`number`?Ci[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&`geometry`in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(e){let t=this._parseColorCache.get(e);return t||(t=G.parse(e),this._parseColorCache.set(e,t)),t}};function Ti(e,t,n){let r=e.length-1,i=0,a=r,o=0,s,c;for(;i<=a;)if(o=Math.floor((i+a)/2),s=e[o],c=e[o+1],s<=t){if(o===r||t<c)return o;i=o+1;}else if(s>t)a=o-1;else throw new fi(`Input is not a number.`,n);return 0}var Ei=class e{constructor(e,t,n,r){this.type=e,this.input=t,this.key=r,this.labels=[],this.outputs=[];for(let[e,t]of n)this.labels.push(e),this.outputs.push(t);}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);let r=n.parse(t[1],1,H);if(!r)return null;let i=[],a=null;n.expectedType&&n.expectedType.kind!==`value`&&(a=n.expectedType);for(let e=1;e<t.length;e+=2){let r=e===1?-1/0:t[e],o=t[e+1],s=e,c=e+1;if(typeof r!=`number`)return n.error(`Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,s);if(i.length&&i[i.length-1][0]>=r)return n.error(`Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.`,s);let l=n.parse(o,c,a);if(!l)return null;a||=l.type,i.push([r,l]);}return new e(a,r,i,n.key)}evaluate(e){let t=this.labels,n=this.outputs;if(t.length===1)return n[0].evaluate(e);let r=this.input.evaluate(e);if(r<=t[0])return n[0].evaluate(e);let i=t.length;return r>=t[i-1]?n[i-1].evaluate(e):n[Ti(t,r,this.key)].evaluate(e)}eachChild(e){e(this.input);for(let t of this.outputs)e(t);}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function Di(e,t,n,r){let i=3*e,a=3*(n-e)-i,o=1-i-a,s=3*t,c=3*(r-t)-s,l=1-s-c;return function(e,t=1e-6){if(e<=0)return 0;if(e>=1)return 1;let n=e;for(let r=0;r<8;r++){let r=((o*n+a)*n+i)*n-e;if(Math.abs(r)<t)return ((l*n+c)*n+s)*n;let u=(3*o*n+2*a)*n+i;if(Math.abs(u)<1e-6)break;n-=r/u;}let r=0,u=1;n=e;for(let s=0;s<20;s++){let s=((o*n+a)*n+i)*n;if(Math.abs(s-e)<t)break;e>s?r=n:u=n,n=(r+u)*.5;}return ((l*n+c)*n+s)*n}}var Oi=class e{constructor(e,t,n,r,i,a){this.type=e,this.operator=t,this.interpolation=n,this.input=r,this.key=a,this.labels=[],this.outputs=[];for(let[e,t]of i)this.labels.push(e),this.outputs.push(t);}static interpolationFactor(e,t,n,r){let i=0;if(e.name===`exponential`)i=ki(t,e.base,n,r);else if(e.name===`linear`)i=ki(t,1,n,r);else if(e.name===`cubic-bezier`){let a=e.controlPoints;i=Di(a[0],a[1],a[2],a[3])(ki(t,1,n,r));}return i}static parse(t,n){let[r,i,a,...o]=t;if(!Array.isArray(i)||i.length===0)return n.error(`Expected an interpolation type expression.`,1);if(i[0]===`linear`)i={name:`linear`};else if(i[0]===`exponential`){let e=i[1];if(typeof e!=`number`)return n.error(`Exponential interpolation requires a numeric base.`,1,1);i={name:`exponential`,base:e};}else if(i[0]===`cubic-bezier`){let e=i.slice(1);if(e.length!==4||e.some(e=>typeof e!=`number`||e<0||e>1))return n.error(`Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.`,1);i={name:`cubic-bezier`,controlPoints:e};}else return n.error(`Unknown interpolation type ${String(i[0])}`,1,0);if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error(`Expected an even number of arguments.`);if(a=n.parse(a,2,H),!a)return null;let s=[],c=null;(r===`interpolate-hcl`||r===`interpolate-lab`)&&n.expectedType!=xr?c=mr:n.expectedType&&n.expectedType.kind!==`value`&&(c=n.expectedType);for(let e=0;e<o.length;e+=2){let t=o[e],r=o[e+1],i=e+3,a=e+4;if(typeof t!=`number`)return n.error(`Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.`,i);if(s.length&&s[s.length-1][0]>=t)return n.error(`Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.`,i);let l=n.parse(r,a,c);if(!l)return null;c||=l.type,s.push([t,l]);}return !jr(c,H)&&!jr(c,hr)&&!jr(c,mr)&&!jr(c,br)&&!jr(c,Sr)&&!jr(c,xr)&&!jr(c,wr)&&!jr(c,Tr(H))?n.error(`Type ${Er(c)} is not interpolatable.`):new e(c,r,i,a,s,n.key)}evaluate(t){let n=this.labels,r=this.outputs;if(n.length===1)return r[0].evaluate(t);let i=this.input.evaluate(t);if(i<=n[0])return r[0].evaluate(t);let a=n.length;if(i>=n[a-1])return r[a-1].evaluate(t);let o=Ti(n,i,this.key),s=n[o],c=n[o+1],l=e.interpolationFactor(this.interpolation,i,s,c),u=r[o].evaluate(t),d=r[o+1].evaluate(t);switch(this.operator){case `interpolate`:switch(this.type.kind){case `number`:return ri(u,d,l);case `color`:return G.interpolate(u,d,l);case `padding`:return li.interpolate(u,d,l);case `colorArray`:return di.interpolate(u,d,l);case `numberArray`:return ui.interpolate(u,d,l);case `variableAnchorOffsetCollection`:return mi.interpolate(u,d,l,this.key);case `array`:return ii(u,d,l);case `projectionDefinition`:return gi.interpolate(u,d,l)}case `interpolate-hcl`:switch(this.type.kind){case `color`:return G.interpolate(u,d,l,`hcl`);case `colorArray`:return di.interpolate(u,d,l,`hcl`)}case `interpolate-lab`:switch(this.type.kind){case `color`:return G.interpolate(u,d,l,`lab`);case `colorArray`:return di.interpolate(u,d,l,`lab`)}}}eachChild(e){e(this.input);for(let t of this.outputs)e(t);}outputDefined(){return this.outputs.every(e=>e.outputDefined())}};function ki(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}const Ai={color:G.interpolate,number:ri,padding:li.interpolate,numberArray:ui.interpolate,colorArray:di.interpolate,variableAnchorOffsetCollection:mi.interpolate,array:ii};var ji=class e{constructor(e){this.type=yr,this.sections=e;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[1];if(!Array.isArray(r)&&typeof r==`object`)return n.error(`First argument must be an image or text section.`);let i=[],a=false;for(let e=1;e<=t.length-1;++e){let r=t[e];if(a&&typeof r==`object`&&!Array.isArray(r)){a=false;let e=null;if(r[`font-scale`]&&(e=n.parse(r[`font-scale`],1,H),!e))return null;let t=null;if(r[`text-font`]&&(t=n.parse(r[`text-font`],1,Tr(U)),!t))return null;let o=null;if(r[`text-color`]&&(o=n.parse(r[`text-color`],1,mr),!o))return null;let s=null;if(r[`vertical-align`]){if(typeof r[`vertical-align`]==`string`&&!oi.includes(r[`vertical-align`]))return n.error(`'vertical-align' must be one of: 'bottom', 'center', 'top' but found '${r[`vertical-align`]}' instead.`);if(s=n.parse(r[`vertical-align`],1,U),!s)return null}let c=i[i.length-1];c.scale=e,c.font=t,c.textColor=o,c.verticalAlign=s;}else {let r=n.parse(t[e],1,W);if(!r)return null;let o=r.type.kind;if(o!==`string`&&o!==`value`&&o!==`null`&&o!==`resolvedImage`)return n.error(`Formatted text type must be 'string', 'value', 'image' or 'null'.`);a=true,i.push({content:r,scale:null,font:null,textColor:null,verticalAlign:null});}}return new e(i)}evaluate(e){return new ci(this.sections.map(t=>{let n=t.content.evaluate(e);return bi(n)===Cr?new si(``,n,null,null,null,t.verticalAlign?t.verticalAlign.evaluate(e):null):new si(xi(n),null,t.scale?t.scale.evaluate(e):null,t.font?t.font.evaluate(e).join(`,`):null,t.textColor?t.textColor.evaluate(e):null,t.verticalAlign?t.verticalAlign.evaluate(e):null)}))}eachChild(e){for(let t of this.sections)e(t.content),t.scale&&e(t.scale),t.font&&e(t.font),t.textColor&&e(t.textColor),t.verticalAlign&&e(t.verticalAlign);}outputDefined(){return false}};function Mi(e,t,n=0,r=e.length-1,i=Pi){for(;r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1);Mi(e,t,Math.max(n,Math.floor(t-o*c/a+l)),Math.min(r,Math.floor(t+(a-o)*c/a+l)),i);}let a=e[t],o=n,s=r;for(Ni(e,n,t),i(e[r],a)>0&&Ni(e,n,r);o<s;){for(Ni(e,o,s),o++,s--;i(e[o],a)<0;)o++;for(;i(e[s],a)>0;)s--;}i(e[n],a)===0?Ni(e,n,s):(s++,Ni(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1);}}function Ni(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}function Pi(e,t){return e<t?-1:+(e>t)}function Fi(e,t){if(e.length<=1)return [e];let n=[],r,i;for(let t of e){let e=Li(t);e!==0&&(t.area=Math.abs(e),i===void 0&&(i=e<0),i===e<0?(r&&n.push(r),r=[t]):r.push(t));}if(r&&n.push(r),t>1)for(let e=0;e<n.length;e++)n[e].length<=t||(Mi(n[e],t,1,n[e].length-1,Ii),n[e]=n[e].slice(0,t));return n}function Ii(e,t){return t.area-e.area}function Li(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}const Ri={string:U,number:H,boolean:pr,object:gr};var zi=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=1,i,a=t[0];if(a===`array`){let e;if(t.length>2){let i=t[1];if(typeof i!=`string`||!(i in Ri)||i===`object`)return n.error(`The item type argument of "array" must be one of string, number, boolean`,1);e=Ri[i],r++;}else e=W;let a;if(t.length>3){if(t[2]!==null&&(typeof t[2]!=`number`||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(`The length argument to "array" must be a positive integer literal`,2);a=t[2],r++;}i=Tr(e,a);}else {if(!Ri[a])throw Error(`Types doesn't contain name = ${a}`);i=Ri[a];}let o=[];for(;r<t.length;r++){let e=n.parse(t[r],r,W);if(!e)return null;o.push(e);}return new e(i,o,n.key)}evaluate(e){for(let t=0;t<this.args.length;t++){let n=this.args[t].evaluate(e);if(!Or(this.type,bi(n)))return n;if(t===this.args.length-1)throw new fi(`Expected value to be of type ${Er(this.type)}, but found ${Er(bi(n))} instead.`,this.key)}throw Error()}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};const Bi={"to-boolean":pr,"to-color":mr,"to-number":H,"to-string":U};var Vi=class e{constructor(e,t,n){this.type=e,this.args=t,this.key=n;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=t[0];if(!Bi[r])throw Error(`Can't parse ${r} as it is not part of the known types`);if((r===`to-boolean`||r===`to-string`)&&t.length!==2)return n.error(`Expected one argument.`);let i=Bi[r],a=[];for(let e=1;e<t.length;e++){let r=n.parse(t[e],e,W);if(!r)return null;a.push(r);}return new e(i,a,n.key)}evaluate(e){switch(this.type.kind){case `boolean`:return !!this.args[0].evaluate(e);case `color`:{let t,n;for(let r of this.args){if(t=r.evaluate(e),n=null,t instanceof G)return t;if(typeof t==`string`){let n=e.parseColor(t);if(n)return n}else if(Array.isArray(t)&&(n=t.length<3||t.length>4?`Invalid rgba value ${JSON.stringify(t)}: expected an array containing either three or four numeric values.`:vi(t[0],t[1],t[2],t[3]),!n))return new G(t[0]/255,t[1]/255,t[2]/255,t[3])}throw new fi(n||`Could not parse color from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `padding`:{let t;for(let n of this.args){t=n.evaluate(e);let r=li.parse(t);if(r)return r}throw new fi(`Could not parse padding from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `numberArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=ui.parse(t);if(r)return r}throw new fi(`Could not parse numberArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `colorArray`:{let t;for(let n of this.args){t=n.evaluate(e);let r=di.parse(t);if(r)return r}throw new fi(`Could not parse colorArray from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `variableAnchorOffsetCollection`:{let t;for(let n of this.args){t=n.evaluate(e);let r=mi.parse(t);if(r)return r}throw new fi(`Could not parse variableAnchorOffsetCollection from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}case `number`:{let t=null;for(let n of this.args){if(t=n.evaluate(e),t===null)return 0;let r=Number(t);if(!isNaN(r))return r}throw new fi(`Could not convert ${JSON.stringify(t)} to number.`,this.key)}case `formatted`:return ci.fromString(xi(this.args[0].evaluate(e)));case `resolvedImage`:return hi.fromString(xi(this.args[0].evaluate(e)));case `projectionDefinition`:{let t=this.args[0].evaluate(e);if(gi.parse(t))return t;throw new fi(`Could not parse projectionDefinition from value '${typeof t==`string`?t:JSON.stringify(t)}'`,this.key)}default:return xi(this.args[0].evaluate(e))}}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}},Hi=class e{constructor(e,t){this.type=t.type,this.bindings=[].concat(e),this.result=t;}evaluate(e){return this.result.evaluate(e)}eachChild(e){for(let t of this.bindings)e(t[1]);e(this.result);}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);let r=[];for(let e=1;e<t.length-1;e+=2){let i=t[e];if(typeof i!=`string`)return n.error(`Expected string, but found ${typeof i} instead.`,e);if(/[^a-zA-Z0-9_]/.test(i))return n.error(`Variable names must contain only alphanumeric characters or '_'.`,e);let a=n.parse(t[e+1],e+1);if(!a)return null;r.push([i,a]);}let i=n.parse(t[t.length-1],t.length-1,n.expectedType,r);return i?new e(r,i):null}outputDefined(){return this.result.outputDefined()}},Ui=class e{constructor(e,t){this.type=t.type,this.name=e,this.boundExpression=t;}static parse(t,n){if(t.length!==2||typeof t[1]!=`string`)return n.error(`'var' expression requires exactly one string literal argument.`);let r=t[1];return n.scope.has(r)?new e(r,n.scope.get(r)):n.error(`Unknown variable "${r}". Make sure "${r}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(e){return this.boundExpression.evaluate(e)}eachChild(){}outputDefined(){return false}},Wi=class e{constructor(e,t,n,r){this.type=e,this.index=t,this.input=n,this.key=r;}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,H),i=n.parse(t[2],2,Tr(n.expectedType||W));if(!r||!i)return null;let a=i.type;return new e(a.itemType,r,i,n.key)}evaluate(e){let t=this.index.evaluate(e),n=this.input.evaluate(e);if(t<0)throw new fi(`Array index out of bounds: ${t} < 0.`,this.key);if(t>=n.length)throw new fi(`Array index out of bounds: ${t} > ${n.length-1}.`,this.key);if(t!==Math.floor(t))throw new fi(`Array index must be an integer, but found ${t} instead.`,this.key);return n[t]}eachChild(e){e(this.index),e(this.input);}outputDefined(){return false}},Gi=class e{constructor(e,t,n){this.needle=e,this.haystack=t,this.key=n,this.type=pr;}static parse(t,n){if(t.length!==3)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,W);return !r||!i?null:kr(r.type,[pr,U,H,fr,W])?new e(r,i,n.key):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Er(r.type)} instead`)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!n)return false;if(!Ar(t,[`boolean`,`string`,`number`,`null`]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${Er(bi(t))} instead.`,this.key);if(!Ar(n,[`string`,`array`]))throw new fi(`Expected second argument to be of type array or string, but found ${Er(bi(n))} instead.`,this.key);return n.indexOf(t)>=0}eachChild(e){e(this.needle),e(this.haystack);}outputDefined(){return true}},Ki=class e{constructor(e,t,n,r){this.needle=e,this.haystack=t,this.key=n,this.fromIndex=r,this.type=H;}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,W);if(!r||!i)return null;if(!kr(r.type,[pr,U,H,fr,W]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${Er(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,H);return a?new e(r,i,n.key,a):null}return new e(r,i,n.key)}evaluate(e){let t=this.needle.evaluate(e),n=this.haystack.evaluate(e);if(!Ar(t,[`boolean`,`string`,`number`,`null`]))throw new fi(`Expected first argument to be of type boolean, string, number or null, but found ${Er(bi(t))} instead.`,this.key);let r;if(this.fromIndex&&(r=this.fromIndex.evaluate(e)),Ar(n,[`string`])){let e=n.indexOf(t,r);return e===-1?-1:[...n.slice(0,e)].length}if(Ar(n,[`array`]))return n.indexOf(t,r);throw new fi(`Expected second argument to be of type array or string, but found ${Er(bi(n))} instead.`,this.key)}eachChild(e){e(this.needle),e(this.haystack),this.fromIndex&&e(this.fromIndex);}outputDefined(){return false}},qi=class e{constructor(e,t,n,r,i,a){this.inputType=e,this.type=t,this.input=n,this.cases=r,this.outputs=i,this.otherwise=a;}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error(`Expected an even number of arguments.`);let r,i;n.expectedType&&n.expectedType.kind!==`value`&&(i=n.expectedType);let a={},o=[];for(let e=2;e<t.length-1;e+=2){let s=t[e],c=t[e+1];Array.isArray(s)||(s=[s]);let l=n.concat(e);if(s.length===0)return l.error(`Expected at least one branch label.`);for(let e of s){if(typeof e!=`number`&&typeof e!=`string`)return l.error(`Branch labels must be numbers or strings.`);if(typeof e==`number`&&Math.abs(e)>2**53-1)return l.error(`Branch labels must be integers no larger than ${2**53-1}.`);if(typeof e==`number`&&Math.floor(e)!==e)return l.error(`Numeric branch labels must be integer values.`);if(!r)r=bi(e);else if(l.checkSubtype(r,bi(e)))return null;if(a[String(e)]!==void 0)return l.error(`Branch labels must be unique.`);a[String(e)]=o.length;}let u=n.parse(c,e,i);if(!u)return null;i||=u.type,o.push(u);}let s=n.parse(t[1],1,W);if(!s)return null;let c=n.parse(t[t.length-1],t.length-1,i);return !c||s.type.kind!==`value`&&n.concat(1).checkSubtype(r,s.type)?null:new e(r,i,s,a,o,c)}evaluate(e){let t=this.input.evaluate(e);return (bi(t)===this.inputType&&this.outputs[this.cases[t]]||this.otherwise).evaluate(e)}eachChild(e){e(this.input),this.outputs.forEach(e),e(this.otherwise);}outputDefined(){return this.outputs.every(e=>e.outputDefined())&&this.otherwise.outputDefined()}},Ji=class e{constructor(e,t,n){this.type=e,this.branches=t,this.otherwise=n;}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error(`Expected an odd number of arguments.`);let r;n.expectedType&&n.expectedType.kind!==`value`&&(r=n.expectedType);let i=[];for(let e=1;e<t.length-1;e+=2){let a=n.parse(t[e],e,pr);if(!a)return null;let o=n.parse(t[e+1],e+1,r);if(!o)return null;i.push([a,o]),r||=o.type;}let a=n.parse(t[t.length-1],t.length-1,r);if(!a)return null;if(!r)throw Error(`Can't infer output type`);return new e(r,i,a)}evaluate(e){for(let[t,n]of this.branches)if(t.evaluate(e))return n.evaluate(e);return this.otherwise.evaluate(e)}eachChild(e){for(let[t,n]of this.branches)e(t),e(n);e(this.otherwise);}outputDefined(){return this.branches.every(([e,t])=>t.outputDefined())&&this.otherwise.outputDefined()}},Yi=class e{constructor(e,t,n,r,i){this.type=e,this.input=t,this.beginIndex=n,this.key=r,this.endIndex=i;}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 2 or 3 arguments, but found ${t.length-1} instead.`);let r=n.parse(t[1],1,W),i=n.parse(t[2],2,H);if(!r||!i)return null;if(!kr(r.type,[Tr(W),U,W]))return n.error(`Expected first argument to be of type array or string, but found ${Er(r.type)} instead`);if(t.length===4){let a=n.parse(t[3],3,H);return a?new e(r.type,r,i,n.key,a):null}return new e(r.type,r,i,n.key)}evaluate(e){let t=this.input.evaluate(e),n=this.beginIndex.evaluate(e),r;if(this.endIndex&&(r=this.endIndex.evaluate(e)),Ar(t,[`string`]))return [...t].slice(n,r).join(``);if(Ar(t,[`array`]))return t.slice(n,r);throw new fi(`Expected first argument to be of type array or string, but found ${Er(bi(t))} instead.`,this.key)}eachChild(e){e(this.input),e(this.beginIndex),this.endIndex&&e(this.endIndex);}outputDefined(){return false}},Xi=class e{constructor(e,t){this.type=e,this.args=t;}static parse(t,n){if(t.length<2)return n.error(`Expected at least one argument.`);let r=null,i=n.expectedType;i&&i.kind!==`value`&&(r=i);let a=[];for(let e of t.slice(1)){let t=n.parse(e,1+a.length,r,void 0,{typeAnnotation:`omit`});if(!t)return null;r||=t.type,a.push(t);}if(!r)throw Error(`No output type`);return i&&a.some(e=>Or(i,e.type))?new e(W,a):new e(r,a)}evaluate(e){let t=null,n=0,r;for(let i of this.args)if(n++,t=i.evaluate(e),t&&t instanceof hi&&!t.available&&(r||=t.name,t=null,n===this.args.length&&(t=r)),t!==null)break;return t}eachChild(e){this.args.forEach(e);}outputDefined(){return this.args.every(e=>e.outputDefined())}};function Zi(e,t){return e===`==`||e===`!=`?t.kind===`boolean`||t.kind===`string`||t.kind===`number`||t.kind===`null`||t.kind===`value`:t.kind===`string`||t.kind===`number`||t.kind===`value`}function Qi(e,t,n){return t===n}function $i(e,t,n){return t!==n}function ea(e,t,n){return t<n}function ta(e,t,n){return t>n}function na(e,t,n){return t<=n}function ra(e,t,n){return t>=n}function ia(e,t,n,r){return r.compare(t,n)===0}function aa(e,t,n,r){return !ia(e,t,n,r)}function oa(e,t,n,r){return r.compare(t,n)<0}function sa(e,t,n,r){return r.compare(t,n)>0}function ca(e,t,n,r){return r.compare(t,n)<=0}function la(e,t,n,r){return r.compare(t,n)>=0}function ua$1(e,t,n){let r=e!==`==`&&e!==`!=`;return class i{constructor(e,t,n,r){this.lhs=e,this.rhs=t,this.key=n,this.collator=r,this.type=pr,this.hasUntypedArgument=e.type.kind===`value`||t.type.kind===`value`;}static parse(e,t){if(e.length!==3&&e.length!==4)return t.error(`Expected two or three arguments.`);let n=e[0],a=t.parse(e[1],1,W);if(!a)return null;if(!Zi(n,a.type))return t.concat(1).error(`"${n}" comparisons are not supported for type '${Er(a.type)}'.`);let o=t.parse(e[2],2,W);if(!o)return null;if(!Zi(n,o.type))return t.concat(2).error(`"${n}" comparisons are not supported for type '${Er(o.type)}'.`);if(a.type.kind!==o.type.kind&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot compare types '${Er(a.type)}' and '${Er(o.type)}'.`);r&&(a.type.kind===`value`&&o.type.kind!==`value`?a=new zi(o.type,[a],t.key):a.type.kind!==`value`&&o.type.kind===`value`&&(o=new zi(a.type,[o],t.key)));let s=null;if(e.length===4){if(a.type.kind!==`string`&&o.type.kind!==`string`&&a.type.kind!==`value`&&o.type.kind!==`value`)return t.error(`Cannot use collator to compare non-string types.`);if(s=t.parse(e[3],3,vr),!s)return null}return new i(a,o,t.key,s)}evaluate(i){let a=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){let t=bi(a),n=bi(o);if(t.kind!==n.kind||t.kind!==`string`&&t.kind!==`number`)throw new fi(`Expected arguments for "${e}" to be (string, string) or (number, number), but found (${t.kind}, ${n.kind}) instead.`,this.key)}if(this.collator&&!r&&this.hasUntypedArgument){let e=bi(a),n=bi(o);if(e.kind!==`string`||n.kind!==`string`)return t(i,a,o)}return this.collator?n(i,a,o,this.collator.evaluate(i)):t(i,a,o)}eachChild(e){e(this.lhs),e(this.rhs),this.collator&&e(this.collator);}outputDefined(){return true}}}const da=ua$1(`==`,Qi,ia),fa=ua$1(`!=`,$i,aa),pa=ua$1(`<`,ea,oa),ma=ua$1(`>`,ta,sa),ha=ua$1(`<=`,na,ca),ga=ua$1(`>=`,ra,la);var _a=class e{constructor(e,t,n){this.type=vr,this.locale=n,this.caseSensitive=e,this.diacriticSensitive=t;}static parse(t,n){if(t.length!==2)return n.error(`Expected one argument.`);let r=t[1];if(typeof r!=`object`||Array.isArray(r))return n.error(`Collator options argument must be an object.`);let i=n.parse(r[`case-sensitive`]!==void 0&&r[`case-sensitive`],1,pr);if(!i)return null;let a=n.parse(r[`diacritic-sensitive`]!==void 0&&r[`diacritic-sensitive`],1,pr);if(!a)return null;let o=null;return r.locale&&(o=n.parse(r.locale,1,U),!o)?null:new e(i,a,o)}evaluate(e){return new _i(this.caseSensitive.evaluate(e),this.diacriticSensitive.evaluate(e),this.locale?this.locale.evaluate(e):null)}eachChild(e){e(this.caseSensitive),e(this.diacriticSensitive),this.locale&&e(this.locale);}outputDefined(){return false}},va=class e{constructor(e,t,n,r,i,a){this.type=U,this.number=e,this.locale=t,this.currency=n,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=a;}static parse(t,n){if(t.length!==3)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,H);if(!r)return null;let i=t[2];if(typeof i!=`object`||Array.isArray(i))return n.error(`NumberFormat options argument must be an object.`);let a=null;if(i.locale&&(a=n.parse(i.locale,1,U),!a))return null;let o=null;if(i.currency&&(o=n.parse(i.currency,1,U),!o))return null;let s=null;if(i.unit&&(s=n.parse(i.unit,1,U),!s))return null;if(o&&s)return n.error("NumberFormat options `currency` and `unit` are mutually exclusive");let c=null;if(i[`min-fraction-digits`]&&(c=n.parse(i[`min-fraction-digits`],1,H),!c))return null;let l=null;return i[`max-fraction-digits`]&&(l=n.parse(i[`max-fraction-digits`],1,H),!l)?null:new e(r,a,o,s,c,l)}evaluate(e){return new Intl.NumberFormat(this.locale?this.locale.evaluate(e):[],{style:this.currency?`currency`:this.unit?`unit`:`decimal`,currency:this.currency?this.currency.evaluate(e):void 0,unit:this.unit?this.unit.evaluate(e):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(e):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(e):void 0}).format(this.number.evaluate(e))}eachChild(e){e(this.number),this.locale&&e(this.locale),this.currency&&e(this.currency),this.unit&&e(this.unit),this.minFractionDigits&&e(this.minFractionDigits),this.maxFractionDigits&&e(this.maxFractionDigits);}outputDefined(){return false}},ya=class e{constructor(e){this.type=Cr,this.input=e;}static parse(t,n){if(t.length!==2)return n.error(`Expected two arguments.`);let r=n.parse(t[1],1,U);return r?new e(r):n.error(`No image name provided.`)}evaluate(e){let t=this.input.evaluate(e),n=hi.fromString(t);return n&&e.availableImages&&(n.available=e.availableImages.indexOf(t)>-1),n}eachChild(e){e(this.input);}outputDefined(){return false}},ba=class e{constructor(e,t){this.input=e,this.key=t,this.type=H;}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=n.parse(t[1],1);return r?r.type.kind!==`array`&&r.type.kind!==`string`&&r.type.kind!==`value`?n.error(`Expected argument of type string or array, but found ${Er(r.type)} instead.`):new e(r,n.key):null}evaluate(e){let t=this.input.evaluate(e);if(typeof t==`string`)return [...t].length;if(Array.isArray(t))return t.length;throw new fi(`Expected value to be of type string or array, but found ${Er(bi(t))} instead.`,this.key)}eachChild(e){e(this.input);}outputDefined(){return false}};const xa=8192;function Sa(e,t){let n=wa(e[0]),r=Ea(e[1]),i=2**t.z;return [Math.round(n*i*xa),Math.round(r*i*xa)]}function Ca(e,t){let n=2**t.z,r=(e[0]/xa+t.x)/n,i=(e[1]/xa+t.y)/n;return [Ta(r),Da(i)]}function wa(e){return (180+e)/360}function Ta(e){return e*360-180}function Ea(e){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function Da(e){return 360/Math.PI*Math.atan(Math.exp((180-e*360)*Math.PI/180))-90}function Oa(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[0]),e[3]=Math.max(e[3],t[1]);}function ka(e,t){return !(e[0]<=t[0]||e[2]>=t[2]||e[1]<=t[1]||e[3]>=t[3])}function Aa(e,t,n){return t[1]>e[1]!=n[1]>e[1]&&e[0]<(n[0]-t[0])*(e[1]-t[1])/(n[1]-t[1])+t[0]}function ja(e,t,n){let r=e[0]-t[0],i=e[1]-t[1],a=e[0]-n[0],o=e[1]-n[1];return r*o-a*i===0&&r*a<=0&&i*o<=0}function Ma(e,t,n,r){let i=[t[0]-e[0],t[1]-e[1]];return Ra([r[0]-n[0],r[1]-n[1]],i)!==0&&!!(za(e,t,n,r)&&za(n,r,e,t))}function Na(e,t,n){for(let r of n)for(let n=0;n<r.length-1;++n)if(Ma(e,t,r[n],r[n+1]))return true;return false}function Pa(e,t,n=false){let r=false;for(let i of t)for(let t=0;t<i.length-1;t++){if(ja(e,i[t],i[t+1]))return n;Aa(e,i[t],i[t+1])&&(r=!r);}return r}function Fa(e,t){for(let n of t)if(Pa(e,n))return true;return false}function Ia(e,t){for(let n of e)if(!Pa(n,t))return false;for(let n=0;n<e.length-1;++n)if(Na(e[n],e[n+1],t))return false;return true}function La(e,t){for(let n of t)if(Ia(e,n))return true;return false}function Ra(e,t){return e[0]*t[1]-e[1]*t[0]}function za(e,t,n,r){let i=e[0]-n[0],a=e[1]-n[1],o=t[0]-n[0],s=t[1]-n[1],c=r[0]-n[0],l=r[1]-n[1],u=i*l-c*a,d=o*l-c*s;return u>0&&d<0||u<0&&d>0}function Ba(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=[];for(let r=0;r<e[i].length;r++){let o=Sa(e[i][r],n);Oa(t,o),a.push(o);}r.push(a);}return r}function Va(e,t,n){let r=[];for(let i=0;i<e.length;i++){let a=Ba(e[i],t,n);r.push(a);}return r}function Ha(e,t,n,r){if(e[0]<n[0]||e[0]>n[2]){let t=r*.5,i=e[0]-n[0]>t?-r:n[0]-e[0]>t?r:0;i===0&&(i=e[0]-n[2]>t?-r:n[2]-e[0]>t?r:0),e[0]+=i;}Oa(t,e);}function Ua(e){e[0]=e[1]=1/0,e[2]=e[3]=-1/0;}function Wa(e,t,n,r){let i=2**r.z*xa,a=[r.x*xa,r.y*xa],o=[];for(let r of e)for(let e of r){let r=[e.x+a[0],e.y+a[1]];Ha(r,t,n,i),o.push(r);}return o}function Ga(e,t,n,r){let i=2**r.z*xa,a=[r.x*xa,r.y*xa],o=[];for(let n of e){let e=[];for(let r of n){let n=[r.x+a[0],r.y+a[1]];Oa(t,n),e.push(n);}o.push(e);}if(t[2]-t[0]<=i/2){Ua(t);for(let e of o)for(let r of e)Ha(r,t,n,i);}return o}function Ka(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=Ba(t.coordinates,r,i),o=Wa(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Pa(e,a))return false}if(t.type===`MultiPolygon`){let a=Va(t.coordinates,r,i),o=Wa(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Fa(e,a))return false}return true}function qa(e,t){let n=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=e.canonicalID();if(t.type===`Polygon`){let a=Ba(t.coordinates,r,i),o=Ga(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!Ia(e,a))return false}if(t.type===`MultiPolygon`){let a=Va(t.coordinates,r,i),o=Ga(e.geometry(),n,r,i);if(!ka(n,r))return false;for(let e of o)if(!La(e,a))return false}return true}var Ja=class e{constructor(e,t){this.type=pr,this.geojson=e,this.geometries=t;}static parse(t,n){if(t.length!==2)return n.error(`'within' expression requires exactly one argument, but found ${t.length-1} instead.`);if(yi(t[1])){let n=t[1];if(n.type===`FeatureCollection`){let t=[];for(let e of n.features){let{type:n,coordinates:r}=e.geometry;n===`Polygon`&&t.push(r),n===`MultiPolygon`&&t.push(...r);}if(t.length)return new e(n,{type:`MultiPolygon`,coordinates:t})}else if(n.type===`Feature`){let t=n.geometry.type;if(t===`Polygon`||t===`MultiPolygon`)return new e(n,n.geometry)}else if(n.type===`Polygon`||n.type===`MultiPolygon`)return new e(n,n)}return n.error(`'within' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return Ka(e,this.geometries);if(e.geometryType()===`LineString`)return qa(e,this.geometries)}return false}eachChild(){}outputDefined(){return true}},Ya=class{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e);}push(e){this.data.push(e),this._up(this.length++);}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return --this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i;}t[e]=r;}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r;}t[e]=i;}};const Xa=Math.PI/180;var Za=class{constructor(e){let t=Xa*6378.137*1e3,n=Math.cos(e*Xa),r=1/(1-.0066943799901413165*(1-n*n)),i=Math.sqrt(r);this.kx=t*i*n,this.ky=t*i*r*.9933056200098587;}distance(e,t){let n=this.wrap(e[0]-t[0])*this.kx,r=(e[1]-t[1])*this.ky;return Math.sqrt(n*n+r*r)}pointOnLine(e,t){let n=1/0,r,i,a,o;for(let s=0;s<e.length-1;s++){let c=e[s][0],l=e[s][1],u=this.wrap(e[s+1][0]-c)*this.kx,d=(e[s+1][1]-l)*this.ky,f=0;(u!==0||d!==0)&&(f=(this.wrap(t[0]-c)*this.kx*u+(t[1]-l)*this.ky*d)/(u*u+d*d),f>1?(c=e[s+1][0],l=e[s+1][1]):f>0&&(c+=u/this.kx*f,l+=d/this.ky*f)),u=this.wrap(t[0]-c)*this.kx,d=(t[1]-l)*this.ky;let p=u*u+d*d;p<n&&(n=p,r=c,i=l,a=s,o=f);}return {point:[r,i],index:a,t:Math.max(0,Math.min(1,o))}}wrap(e){for(;e<-180;)e+=360;for(;e>180;)e-=360;return e}};function Qa(e,t){return t[0]-e[0]}function $a(e){return e[1]-e[0]+1}function eo(e,t){return e[1]>=e[0]&&e[1]<t}function to(e,t){if(e[0]>e[1])return [null,null];let n=$a(e);if(t){if(n===2)return [e,null];let t=Math.floor(n/2);return [[e[0],e[0]+t],[e[0]+t,e[1]]]}if(n===1)return [e,null];let r=Math.floor(n/2)-1;return [[e[0],e[0]+r],[e[0]+r+1,e[1]]]}function no(e,t){if(!eo(t,e.length))return [1/0,1/0,-1/0,-1/0];let n=[1/0,1/0,-1/0,-1/0];for(let r=t[0];r<=t[1];++r)Oa(n,e[r]);return n}function ro(e){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)for(let e of n)Oa(t,e);return t}function io(e){return e[0]!==-1/0&&e[1]!==-1/0&&e[2]!==1/0&&e[3]!==1/0}function ao(e,t,n){if(!io(e)||!io(t))return NaN;let r=0,i=0;return e[2]<t[0]&&(r=t[0]-e[2]),e[0]>t[2]&&(r=e[0]-t[2]),e[1]>t[3]&&(i=e[1]-t[3]),e[3]<t[1]&&(i=t[1]-e[3]),n.distance([0,0],[r,i])}function oo(e,t,n){let r=n.pointOnLine(t,e);return n.distance(e,r.point)}function so(e,t,n,r,i){let a=Math.min(oo(e,[n,r],i),oo(t,[n,r],i)),o=Math.min(oo(n,[e,t],i),oo(r,[e,t],i));return Math.min(a,o)}function co(e,t,n,r,i){if(!(eo(t,e.length)&&eo(r,n.length)))return 1/0;let a=1/0;for(let o=t[0];o<t[1];++o){let t=e[o],s=e[o+1];for(let e=r[0];e<r[1];++e){let r=n[e],o=n[e+1];if(Ma(t,s,r,o))return 0;a=Math.min(a,so(t,s,r,o,i));}}return a}function lo(e,t,n,r,i){if(!(eo(t,e.length)&&eo(r,n.length)))return NaN;let a=1/0;for(let o=t[0];o<=t[1];++o)for(let t=r[0];t<=r[1];++t)if(a=Math.min(a,i.distance(e[o],n[t])),a===0)return a;return a}function uo(e,t,n){if(Pa(e,t,true))return 0;let r=1/0;for(let i of t){let t=i[0],a=i[i.length-1];if(t!==a&&(r=Math.min(r,oo(e,[a,t],n)),r===0))return r;let o=n.pointOnLine(i,e);if(r=Math.min(r,n.distance(e,o.point)),r===0)return r}return r}function fo(e,t,n,r){if(!eo(t,e.length))return NaN;for(let r=t[0];r<=t[1];++r)if(Pa(e[r],n,true))return 0;let i=1/0;for(let a=t[0];a<t[1];++a){let t=e[a],o=e[a+1];for(let e of n)for(let n=0,a=e.length,s=a-1;n<a;s=n++){let a=e[s],c=e[n];if(Ma(t,o,a,c))return 0;i=Math.min(i,so(t,o,a,c,r));}}return i}function po(e,t){for(let n of e)for(let e of n)if(Pa(e,t,true))return true;return false}function mo(e,t,n,r=1/0){let i=ro(e),a=ro(t);if(r!==1/0&&ao(i,a,n)>=r)return r;if(ka(i,a)){if(po(e,t))return 0}else if(po(t,e))return 0;let o=1/0;for(let r of e)for(let e=0,i=r.length,a=i-1;e<i;a=e++){let i=r[a],s=r[e];for(let e of t)for(let t=0,r=e.length,a=r-1;t<r;a=t++){let r=e[a],c=e[t];if(Ma(i,s,r,c))return 0;o=Math.min(o,so(i,s,r,c,n));}}return o}function ho(e,t,n,r,i,a){if(!a)return;let o=ao(no(r,a),i,n);o<t&&e.push([o,a,[0,0]]);}function go(e,t,n,r,i,a,o){if(!a||!o)return;let s=ao(no(r,a),no(i,o),n);s<t&&e.push([s,a,o]);}function _o(e,t,n,r,i=1/0){let a=Math.min(r.distance(e[0],n[0][0]),i);if(a===0)return a;let o=new Ya([[0,[0,e.length-1],[0,0]]],Qa),s=ro(n);for(;o.length>0;){let i=o.pop();if(i[0]>=a)continue;let c=i[1],l=t?50:100;if($a(c)<=l){if(!eo(c,e.length))return NaN;if(t){let t=fo(e,c,n,r);if(isNaN(t)||t===0)return t;a=Math.min(a,t);}else for(let t=c[0];t<=c[1];++t){let i=uo(e[t],n,r);if(a=Math.min(a,i),a===0)return 0}}else {let n=to(c,t);ho(o,a,r,e,s,n[0]),ho(o,a,r,e,s,n[1]);}}return a}function vo(e,t,n,r,i,a=1/0){let o=Math.min(a,i.distance(e[0],n[0]));if(o===0)return o;let s=new Ya([[0,[0,e.length-1],[0,n.length-1]]],Qa);for(;s.length>0;){let a=s.pop();if(a[0]>=o)continue;let c=a[1],l=a[2],u=t?50:100,d=r?50:100;if($a(c)<=u&&$a(l)<=d){if(!eo(c,e.length)&&eo(l,n.length))return NaN;let a;if(t&&r)a=co(e,c,n,l,i),o=Math.min(o,a);else if(t&&!r){let t=e.slice(c[0],c[1]+1);for(let e=l[0];e<=l[1];++e)if(a=oo(n[e],t,i),o=Math.min(o,a),o===0)return o}else if(!t&&r){let t=n.slice(l[0],l[1]+1);for(let n=c[0];n<=c[1];++n)if(a=oo(e[n],t,i),o=Math.min(o,a),o===0)return o}else a=lo(e,c,n,l,i),o=Math.min(o,a);}else {let a=to(c,t),u=to(l,r);go(s,o,i,e,n,a[0],u[0]),go(s,o,i,e,n,a[0],u[1]),go(s,o,i,e,n,a[1],u[0]),go(s,o,i,e,n,a[1],u[1]);}}return o}function yo(e,t){let n=e.geometry(),r=n.flat().map(t=>Ca([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Za(r[0][1]),a=1/0;for(let e of t){switch(e.type){case `Point`:a=Math.min(a,vo(r,false,[e.coordinates],false,i,a));break;case `LineString`:a=Math.min(a,vo(r,false,e.coordinates,true,i,a));break;case `Polygon`:a=Math.min(a,_o(r,false,e.coordinates,i,a));}if(a===0)return a}return a}function bo(e,t){let n=e.geometry(),r=n.flat().map(t=>Ca([t.x,t.y],e.canonical));if(n.length===0)return NaN;let i=new Za(r[0][1]),a=1/0;for(let e of t){switch(e.type){case `Point`:a=Math.min(a,vo(r,true,[e.coordinates],false,i,a));break;case `LineString`:a=Math.min(a,vo(r,true,e.coordinates,true,i,a));break;case `Polygon`:a=Math.min(a,_o(r,true,e.coordinates,i,a));}if(a===0)return a}return a}function xo(e,t){let n=e.geometry();if(n.length===0||n[0].length===0)return NaN;let r=Fi(n,0).map(t=>t.map(t=>t.map(t=>Ca([t.x,t.y],e.canonical)))),i=new Za(r[0][0][0][1]),a=1/0;for(let e of t)for(let t of r){switch(e.type){case `Point`:a=Math.min(a,_o([e.coordinates],false,t,i,a));break;case `LineString`:a=Math.min(a,_o(e.coordinates,true,t,i,a));break;case `Polygon`:a=Math.min(a,mo(t,e.coordinates,i,a));}if(a===0)return a}return a}function So(e){return e.type===`MultiPolygon`?e.coordinates.map(e=>({type:`Polygon`,coordinates:e})):e.type===`MultiLineString`?e.coordinates.map(e=>({type:`LineString`,coordinates:e})):e.type===`MultiPoint`?e.coordinates.map(e=>({type:`Point`,coordinates:e})):[e]}var Co=class e{constructor(e,t){this.type=H,this.geojson=e,this.geometries=t;}static parse(t,n){if(t.length!==2)return n.error(`'distance' expression requires exactly one argument, but found ${t.length-1} instead.`);if(yi(t[1])){let n=t[1];if(n.type===`FeatureCollection`)return new e(n,n.features.map(e=>So(e.geometry)).flat());if(n.type===`Feature`)return new e(n,So(n.geometry));if(`type`in n&&`coordinates`in n)return new e(n,So(n))}return n.error(`'distance' expression requires valid geojson object that contains polygon geometry type.`)}evaluate(e){if(e.geometry()!=null&&e.canonicalID()!=null){if(e.geometryType()===`Point`)return yo(e,this.geometries);if(e.geometryType()===`LineString`)return bo(e,this.geometries);if(e.geometryType()===`Polygon`)return xo(e,this.geometries)}return NaN}eachChild(){}outputDefined(){return true}},wo=class e{constructor(e){let t=null;for(let n of e)if(!t)t=n.type;else if(t===n.type)continue;else {t=W;break}this.type=Tr(t??W,e.length),this.arr=e;}static parse(t,n){if(t.length!==2)return n.error(`'semiliteral' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!yi(t[1]))return n.error(`invalid value of type "${typeof t[1]}"`);let r=t[1],i=bi(r);if(i.kind===`array`){let t=r,i=n.concat(1),a=[];for(let e=0;e<t.length;e++){let n=i.parse(t[e],e,W);if(!n)return null;a.push(n);}return new e(a)}return new Si(i,r)}evaluate(e){return this.arr.map(t=>t.evaluate(e))}eachChild(e){this.arr.forEach(e);}outputDefined(){return this.arr.every(e=>e.outputDefined())}},To=class e{constructor(e){this.key=e,this.type=W;}static parse(t,n){if(t.length!==2)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);let r=t[1];return r==null?n.error(`Global state property must be defined.`):typeof r==`string`?new e(r):n.error(`Global state property must be string, but found ${typeof t[1]} instead.`)}evaluate(e){let t=e.globals?.globalState;return !t||Object.keys(t).length===0?null:Xr(t,this.key)??null}eachChild(){}outputDefined(){return false}};const Eo={"==":da,"!=":fa,">":ma,"<":pa,">=":ga,"<=":ha,array:zi,at:Wi,boolean:zi,case:Ji,coalesce:Xi,collator:_a,format:ji,image:ya,in:Gi,"index-of":Ki,interpolate:Oi,"interpolate-hcl":Oi,"interpolate-lab":Oi,length:ba,let:Hi,literal:Si,match:qi,number:zi,"number-format":va,object:zi,semiliteral:wo,slice:Yi,step:Ei,string:zi,"to-boolean":Vi,"to-color":Vi,"to-number":Vi,"to-string":Vi,var:Ui,within:Ja,distance:Co,"global-state":To};var Do=class extends Error{constructor(e,t){super(t),this.message=t,this.key=e;}},Oo=class e{constructor(e,t=[]){this.parent=e,this.bindings={};for(let[e,n]of t)this.bindings[e]=n;}concat(t){return new e(this,t)}get(e){if(this.bindings[e])return this.bindings[e];if(this.parent)return this.parent.get(e);throw Error(`${e} not found in scope.`)}has(e){return this.bindings[e]?true:this.parent?this.parent.has(e):false}},ko=class e{constructor(e,t,n=[],r,i=new Oo,a=[]){this.registry=e,this.path=n,this.key=n.map(e=>`[${e}]`).join(``),this.scope=i,this.errors=a,this.expectedType=r,this._isConstant=t;}parse(e,t,n,r,i={}){return t==null?this._parse(e,i):this.concat(t,n,r)._parse(e,i)}_parse(e,t){(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`)&&(e=[`literal`,e]);let n=this.key;function r(e,t,r){return r===`assert`?new zi(t,[e],n):r===`coerce`?new Vi(t,[e],n):e}if(Array.isArray(e)){if(e.length===0)return this.error(`Expected an array with at least one element. If you wanted a literal array, use ["literal", []].`);let n=e[0];if(typeof n!=`string`)return this.error(`Expression name must be a string, but found ${typeof n} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;let i=this.registry[n];if(i){let n=i.parse(e,this);if(!n)return null;if(this.expectedType){let e=this.expectedType,i=n.type;if((e.kind===`string`||e.kind===`number`||e.kind===`boolean`||e.kind===`object`||e.kind===`array`)&&i.kind===`value`)n=r(n,e,t.typeAnnotation||`assert`);else if(e.kind===`projectionDefinition`&&[`string`,`array`,`value`].includes(i.kind)||[`color`,`formatted`,`resolvedImage`].includes(e.kind)&&[`value`,`string`].includes(i.kind)||[`padding`,`numberArray`].includes(e.kind)&&[`value`,`number`,`array`].includes(i.kind)||e.kind===`colorArray`&&[`value`,`string`,`array`].includes(i.kind)||e.kind===`variableAnchorOffsetCollection`&&[`value`,`array`].includes(i.kind))n=r(n,e,t.typeAnnotation||`coerce`);else if(this.checkSubtype(e,i))return null}if(!(n instanceof Si)&&n.type.kind!==`resolvedImage`&&this._isConstant(n)){let e=new wi;try{n=new Si(n.type,n.evaluate(e));}catch(e){return this.error(e.message),null}}return n}return this.error(`Unknown expression "${n}". If you wanted a literal array, use ["literal", [...]].`,0)}return e===void 0?this.error(`'undefined' value invalid. Use null instead.`):typeof e==`object`?this.error(`Bare objects invalid. Use ["literal", {...}] instead.`):this.error(`Expected an array, but found ${typeof e} instead.`)}concat(t,n,r){let i=typeof t==`number`?this.path.concat(t):this.path,a=r?this.scope.concat(r):this.scope;return new e(this.registry,this._isConstant,i,n||null,a,this.errors)}error(e,...t){let n=`${this.key}${t.map(e=>`[${e}]`).join(``)}`;this.errors.push(new Do(n,e));}checkSubtype(e,t){let n=Or(e,t);return n&&this.error(n),n}},Ao=class e{constructor(e,t,n,r,i){this.name=e,this.type=t,this._evaluate=n,this.args=r,this.key=i;}evaluate(e){return this._evaluate(e,this.args,this.key)}eachChild(e){this.args.forEach(e);}outputDefined(){return false}static parse(t,n){let r=t[0],i=e.definitions[r];if(!i)return n.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0);let a=Array.isArray(i)?i[0]:i.type,o=Array.isArray(i)?[[i[1],i[2]]]:i.overloads,s=o.filter(([e])=>!Array.isArray(e)||e.length===t.length-1),c=null;for(let[i,o]of s){c=new ko(n.registry,Lo,n.path,null,n.scope);let s=[],l=false;for(let e=1;e<t.length;e++){let n=t[e],r=Array.isArray(i)?i[e-1]:i.type,a=c.parse(n,1+s.length,r);if(!a){l=true;break}s.push(a);}if(!l){if(Array.isArray(i)&&i.length!==s.length)c.error(`Expected ${i.length} arguments, but found ${s.length} instead.`);else {for(let e=0;e<s.length;e++){let t=Array.isArray(i)?i[e]:i.type,n=s[e];c.concat(e+1).checkSubtype(t,n.type);}if(c.errors.length===0)return new e(r,a,o,s,n.key)}}}if(s.length===1)n.errors.push(...c.errors);else {let e=(s.length?s:o).map(([e])=>Io(e)).join(` | `),r=[];for(let e=1;e<t.length;e++){let i=n.parse(t[e],1+r.length);if(!i)return null;r.push(Er(i.type));}n.error(`Expected arguments of type ${e}, but found (${r.join(`, `)}) instead.`);}return null}static register(t,n){e.definitions=n;for(let r in n)t[r]=e;}};function jo(e,[t,n,r,i],a){t=t.evaluate(e),n=n.evaluate(e),r=r.evaluate(e);let o=i?i.evaluate(e):1,s=vi(t,n,r,o);if(s)throw new fi(s,a);return new G(t/255,n/255,r/255,o,false)}function Mo(e,t){return e in t&&t[e]!==void 0}function No(e,t){let n=t[e];return n===void 0?null:n}function Po(e,t,n,r){for(;n<=r;){let i=n+r>>1;if(t[i]===e)return true;t[i]>e?r=i-1:n=i+1;}return false}function Fo(e){return {type:e}}Ao.register(Eo,{error:[_r,[U],(e,[t],n)=>{throw new fi(t.evaluate(e),n)}],typeof:[U,[W],(e,[t])=>Er(bi(t.evaluate(e)))],"to-rgba":[Tr(H,4),[mr],(e,[t])=>{let[n,r,i,a]=t.evaluate(e).rgb;return [n*255,r*255,i*255,a]}],rgb:[mr,[H,H,H],jo],rgba:[mr,[H,H,H,H],jo],has:{type:pr,overloads:[[[U],(e,[t])=>Mo(t.evaluate(e),e.properties())],[[U,gr],(e,[t,n])=>Mo(t.evaluate(e),n.evaluate(e))]]},get:{type:W,overloads:[[[U],(e,[t])=>No(t.evaluate(e),e.properties())],[[U,gr],(e,[t,n])=>No(t.evaluate(e),n.evaluate(e))]]},"feature-state":[W,[U],(e,[t])=>No(t.evaluate(e),e.featureState||{})],properties:[gr,[],e=>e.properties()],"geometry-type":[U,[],e=>e.geometryType()],id:[W,[],e=>e.id()],zoom:[H,[],e=>e.globals.zoom],"heatmap-density":[H,[],e=>e.globals.heatmapDensity||0],elevation:[H,[],e=>e.globals.elevation||0],"line-progress":[H,[],e=>e.globals.lineProgress||0],accumulated:[W,[],e=>e.globals.accumulated===void 0?null:e.globals.accumulated],"+":[H,Fo(H),(e,t)=>{let n=0;for(let r of t)n+=r.evaluate(e);return n}],"*":[H,Fo(H),(e,t)=>{let n=1;for(let r of t)n*=r.evaluate(e);return n}],"-":{type:H,overloads:[[[H,H],(e,[t,n])=>t.evaluate(e)-n.evaluate(e)],[[H],(e,[t])=>-t.evaluate(e)]]},"/":[H,[H,H],(e,[t,n])=>t.evaluate(e)/n.evaluate(e)],"%":[H,[H,H],(e,[t,n])=>t.evaluate(e)%n.evaluate(e)],ln2:[H,[],()=>Math.LN2],pi:[H,[],()=>Math.PI],e:[H,[],()=>Math.E],"^":[H,[H,H],(e,[t,n])=>t.evaluate(e)**+n.evaluate(e)],sqrt:[H,[H],(e,[t])=>Math.sqrt(t.evaluate(e))],log10:[H,[H],(e,[t])=>Math.log(t.evaluate(e))/Math.LN10],ln:[H,[H],(e,[t])=>Math.log(t.evaluate(e))],log2:[H,[H],(e,[t])=>Math.log(t.evaluate(e))/Math.LN2],sin:[H,[H],(e,[t])=>Math.sin(t.evaluate(e))],cos:[H,[H],(e,[t])=>Math.cos(t.evaluate(e))],tan:[H,[H],(e,[t])=>Math.tan(t.evaluate(e))],asin:[H,[H],(e,[t])=>Math.asin(t.evaluate(e))],acos:[H,[H],(e,[t])=>Math.acos(t.evaluate(e))],atan:[H,[H],(e,[t])=>Math.atan(t.evaluate(e))],min:[H,Fo(H),(e,t)=>Math.min(...t.map(t=>t.evaluate(e)))],max:[H,Fo(H),(e,t)=>Math.max(...t.map(t=>t.evaluate(e)))],abs:[H,[H],(e,[t])=>Math.abs(t.evaluate(e))],round:[H,[H],(e,[t])=>{let n=t.evaluate(e);return n<0?-Math.round(-n):Math.round(n)}],floor:[H,[H],(e,[t])=>Math.floor(t.evaluate(e))],ceil:[H,[H],(e,[t])=>Math.ceil(t.evaluate(e))],"filter-==":[pr,[U,W],(e,[t,n])=>e.properties()[t.value]===n.value],"filter-id-==":[pr,[W],(e,[t])=>e.id()===t.value],"filter-type-==":[pr,[U],(e,[t])=>e.geometryType()===t.value],"filter-<":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<i}],"filter-id-<":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<r}],"filter->":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>i}],"filter-id->":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>r}],"filter-<=":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n<=r}],"filter->=":[pr,[U,W],(e,[t,n])=>{let r=e.properties()[t.value],i=n.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[pr,[W],(e,[t])=>{let n=e.id(),r=t.value;return typeof n==typeof r&&n>=r}],"filter-has":[pr,[W],(e,[t])=>{let n=t.value,r=e.properties();return n in r&&r[n]!==void 0}],"filter-has-id":[pr,[],e=>e.id()!==null&&e.id()!==void 0],"filter-type-in":[pr,[Tr(U)],(e,[t])=>t.value.indexOf(e.geometryType())>=0],"filter-id-in":[pr,[Tr(W)],(e,[t])=>t.value.indexOf(e.id())>=0],"filter-in-small":[pr,[U,Tr(W)],(e,[t,n])=>n.value.indexOf(e.properties()[t.value])>=0],"filter-in-large":[pr,[U,Tr(W)],(e,[t,n])=>Po(e.properties()[t.value],n.value,0,n.value.length-1)],all:{type:pr,overloads:[[[pr,pr],(e,[t,n])=>t.evaluate(e)&&n.evaluate(e)],[Fo(pr),(e,t)=>{for(let n of t)if(!n.evaluate(e))return false;return true}]]},any:{type:pr,overloads:[[[pr,pr],(e,[t,n])=>t.evaluate(e)||n.evaluate(e)],[Fo(pr),(e,t)=>{for(let n of t)if(n.evaluate(e))return true;return false}]]},"!":[pr,[pr],(e,[t])=>!t.evaluate(e)],"is-supported-script":[pr,[U],(e,[t])=>{let n=e.globals&&e.globals.isSupportedScript;return !n||n(t.evaluate(e))}],upcase:[U,[U],(e,[t])=>t.evaluate(e).toUpperCase()],downcase:[U,[U],(e,[t])=>t.evaluate(e).toLowerCase()],concat:[U,Fo(W),(e,t)=>t.map(t=>xi(t.evaluate(e))).join(``)],split:[Tr(U),[U,U],(e,[t,n])=>t.evaluate(e).split(n.evaluate(e))],join:[U,[Tr(U),U],(e,[t,n])=>t.evaluate(e).join(n.evaluate(e))],"resolved-locale":[U,[vr],(e,[t])=>t.evaluate(e).resolvedLocale()]});function Io(e){return Array.isArray(e)?`(${e.map(Er).join(`, `)})`:`(${Er(e.type)}...)`}function Lo(e){if(e instanceof Ui)return Lo(e.boundExpression);if(e instanceof Ao&&e.name===`error`||e instanceof _a||e instanceof Ja||e instanceof Co||e instanceof To)return false;let t=e instanceof Vi||e instanceof zi,n=true;return e.eachChild(e=>{n&&=t?Lo(e):e instanceof Si;}),n?Ro(e)&&Bo(e,[`zoom`,`heatmap-density`,`elevation`,`line-progress`,`accumulated`,`is-supported-script`]):false}function Ro(e){if(e instanceof Ao&&(e.name===`get`&&e.args.length===1||e.name===`feature-state`||e.name===`has`&&e.args.length===1||e.name===`properties`||e.name===`geometry-type`||e.name===`id`||/^filter-/.test(e.name))||e instanceof Ja||e instanceof Co)return false;let t=true;return e.eachChild(e=>{t&&!Ro(e)&&(t=false);}),t}function zo(e){if(e instanceof Ao&&e.name===`feature-state`)return false;let t=true;return e.eachChild(e=>{t&&!zo(e)&&(t=false);}),t}function Bo(e,t){if(e instanceof Ao&&t.indexOf(e.name)>=0)return false;let n=true;return e.eachChild(e=>{n&&!Bo(e,t)&&(n=false);}),n}function Vo(e){return e[`property-type`]===`data-driven`||e[`property-type`]===`cross-faded-data-driven`}function Uo(e){return !!e.expression&&e.expression.interpolated}function Go(e,...t){for(let n of t)for(let t in n)e[t]=n[t];return e}function Ko(e){return e instanceof Number?`number`:e instanceof String?`string`:e instanceof Boolean?`boolean`:Array.isArray(e)?`array`:e===null?`null`:typeof e}function qo(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&bi(e)===gr}function Jo(e){return e}function Yo(e){switch(e.type){case `color`:return G.parse;case `padding`:return li.parse;case `numberArray`:return ui.parse;case `colorArray`:return di.parse;default:return null}}function Xo(e){switch(e){case `exponential`:return ts;case `interval`:return es;case `categorical`:return $o;case `identity`:return ns;default:throw Error(`Unknown function type "${e}"`)}}function Zo(e,t){let n=e.stops&&typeof e.stops[0][0]==`object`,r=n||e.property!==void 0,i=n||!r,a=e.type||(Uo(t)?`exponential`:`interval`),o=Yo(t);if(o&&(e=Go({},e),e.stops&&(e.stops=e.stops.map(e=>[e[0],o(e[1])])),e.default?e.default=o(e.default):e.default=o(t.default)),e.colorSpace&&!ai(e.colorSpace))throw Error(`Unknown color space: "${e.colorSpace}"`);let s=Xo(a),c,l;if(a===`categorical`){c=Object.create(null);for(let t of e.stops)c[t[0]]=t[1];l=typeof e.stops[0][0];}if(n){let n={},r=[];for(let t=0;t<e.stops.length;t++){let i=e.stops[t],a=i[0].zoom;n[a]===void 0&&(n[a]={zoom:a,type:e.type,property:e.property,default:e.default,stops:[]},r.push(a)),n[a].stops.push([i[0].value,i[1]]);}let i=[];for(let e of r)i.push([n[e].zoom,Zo(n[e],t)]);let a={name:`linear`};return {kind:`composite`,interpolationType:a,interpolationFactor:Oi.interpolationFactor.bind(void 0,a),zoomStops:i.map(e=>e[0]),evaluate({zoom:n},r){return ts({stops:i,base:e.base},t,n).evaluate(n,r)}}}if(i){let n=a===`exponential`?{name:`exponential`,base:e.base===void 0?1:e.base}:null;return {kind:`camera`,interpolationType:n,interpolationFactor:Oi.interpolationFactor.bind(void 0,n),zoomStops:e.stops.map(e=>e[0]),evaluate:({zoom:n})=>s(e,t,n,c,l)}}return {kind:`source`,evaluate(n,r){let i=r&&r.properties?r.properties[e.property]:void 0;return i===void 0?Qo(e.default,t.default):s(e,t,i,c,l)}}}function Qo(e,t,n){if(e!==void 0)return e;if(t!==void 0)return t;if(n!==void 0)return n}function $o(e,t,n,r,i){return Qo(typeof n===i?r[n]:void 0,e.default,t.default)}function es(e,t,n){if(Ko(n)!==`number`)return Qo(e.default,t.default);let r=e.stops.length;if(r===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[r-1][0])return e.stops[r-1][1];let i=Ti(e.stops.map(e=>e[0]),n,``);return e.stops[i][1]}function ts(e,t,n){let r=e.base===void 0?1:e.base;if(Ko(n)!==`number`)return Qo(e.default,t.default);let i=e.stops.length;if(i===1||n<=e.stops[0][0])return e.stops[0][1];if(n>=e.stops[i-1][0])return e.stops[i-1][1];let a=Ti(e.stops.map(e=>e[0]),n,``),o=rs(n,r,e.stops[a][0],e.stops[a+1][0]),s=e.stops[a][1],c=e.stops[a+1][1],l=Ai[t.type]||Jo;return typeof s.evaluate==`function`?{evaluate(...t){let n=s.evaluate.apply(void 0,t),r=c.evaluate.apply(void 0,t);if(n!==void 0&&r!==void 0)return l(n,r,o,e.colorSpace)}}:l(s,c,o,e.colorSpace)}function ns(e,t,n){switch(t.type){case `color`:n=G.parse(n);break;case `formatted`:n=ci.fromString(n.toString());break;case `resolvedImage`:n=hi.fromString(n.toString());break;case `padding`:n=li.parse(n);break;case `colorArray`:n=di.parse(n);break;case `numberArray`:n=ui.parse(n);break;default:Ko(n)!==t.type&&(t.type!==`enum`||!t.values[n])&&(n=void 0);}return Qo(n,e.default,t.default)}function rs(e,t,n,r){let i=r-n,a=e-n;return i===0?0:t===1?a/i:(t**+a-1)/(t**+i-1)}function is(e){return {result:`success`,value:e}}function as(e){return {result:`error`,value:e}}var os=class{constructor(e,t,n,r){this.expression=e,this._warningHistory={},this._evaluator=new wi,this._defaultValue=n?bs(n):null,this._enumValues=n&&n.type===`enum`?n.values:null,this._globalState=r,this._rootKey=t;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t,this._evaluator.featureState=n,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a,this.expression.evaluate(this._evaluator)}evaluate(e,t,n,r,i,a){this._globalState&&(e=xs(e,this._globalState)),this._evaluator.globals=e,this._evaluator.feature=t||null,this._evaluator.featureState=n||null,this._evaluator.canonical=r,this._evaluator.availableImages=i||null,this._evaluator.formattedSection=a||null;try{let e=this.expression.evaluate(this._evaluator);if(e==null||typeof e==`number`&&e!==e)return this._defaultValue;if(this._enumValues&&!(e in this._enumValues))throw new fi(`Expected value to be one of ${Object.keys(this._enumValues).map(e=>JSON.stringify(e)).join(`, `)}, but found ${JSON.stringify(e)} instead.`,``);return e}catch(e){let t=e instanceof fi?e.path:``,n=`${t}|${e.message}`;return this._warningHistory[n]||(this._warningHistory[n]=true,typeof console<`u`&&console.warn(ss(this._rootKey,t,e.message,this._defaultValue))),this._defaultValue}}};function ss(e,t,n,r){return `${e}${t}: ${n}${r==null?``:` Falling back to ${String(r)}.`}`}function cs(e){if(!e)throw Error(`rootKey must identify the location of the expression in the style JSON, e.g. "layers[3].paint.line-width".`)}function us(e,t,n,r){cs(t);let i=new ko(Eo,Lo,[],n?ys(n):void 0),a=i.parse(e,void 0,void 0,void 0,n&&n.type===`string`?{typeAnnotation:`coerce`}:void 0);return a?is(new os(a,t,n,r)):as(i.errors)}var ds=class{constructor(e,t,n){this.kind=e,this._styleExpression=t,this.isStateDependent=e!==`constant`&&!zo(t.expression),this.globalStateRefs=vs(t.expression),this._globalState=n;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}},fs=class{constructor(e,t,n,r,i){this.kind=e,this.zoomStops=n,this._styleExpression=t,this.isStateDependent=e!==`camera`&&!zo(t.expression),this.globalStateRefs=vs(t.expression),this.interpolationType=r,this._globalState=i;}evaluateWithoutErrorHandling(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluateWithoutErrorHandling(e,t,n,r,i,a)}evaluate(e,t,n,r,i,a){return this._globalState&&(e=xs(e,this._globalState)),this._styleExpression.evaluate(e,t,n,r,i,a)}interpolationFactor(e,t,n){return this.interpolationType?Oi.interpolationFactor(this.interpolationType,e,t,n):0}};var hs=class e{constructor(e,t,n){this.isStateDependent=false,this.globalStateRefs=/* @__PURE__ */ new Set,this._globalState=null,cs(t),this._parameters=e,this._specification=n,this._rootKey=t,this._defaultValue=bs(n),this._warningHistory={};let r=Zo(this._parameters,this._specification);this.kind=r.kind,this.interpolationFactor=r.interpolationFactor,this.zoomStops=r.zoomStops,this.interpolationType=r.interpolationType,this._innerEvaluate=r.evaluate;}evaluate(e,t){try{return this._innerEvaluate(e,t)}catch(e){let t=e instanceof Error?e.message:String(e),n=`|${t}`;return this._warningHistory[n]||(this._warningHistory[n]=true,typeof console<`u`&&console.warn(ss(this._rootKey,``,t,this._defaultValue))),this._defaultValue}}static deserialize(t){return new e(t._parameters,t._rootKey,t._specification)}static serialize(e){return {_parameters:e._parameters,_specification:e._specification,_rootKey:e._rootKey}}};function vs(e,t=/* @__PURE__ */ new Set){return e instanceof To&&t.add(e.key),e.eachChild(e=>{vs(e,t);}),t}function ys(e){let t={color:mr,string:U,number:H,enum:U,boolean:pr,formatted:yr,padding:br,numberArray:Sr,colorArray:xr,projectionDefinition:hr,resolvedImage:Cr,variableAnchorOffsetCollection:wr};return e.type===`array`?Tr(t[e.value]||W,e.length):t[e.type]}function bs(e){if(e.type===`color`&&qo(e.default))return new G(0,0,0,0);switch(e.type){case `color`:return G.parse(e.default)||null;case `padding`:return li.parse(e.default)||null;case `numberArray`:return ui.parse(e.default)||null;case `colorArray`:return di.parse(e.default)||null;case `variableAnchorOffsetCollection`:return mi.parse(e.default)||null;case `projectionDefinition`:return gi.parse(e.default)||null;default:return e.default===void 0?null:e.default}}function xs(e,t){let{zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s}=e??{};return {zoom:n,heatmapDensity:r,elevation:i,lineProgress:a,isSupportedScript:o,accumulated:s,globalState:t}}function Ss(e){let t=false;for(let n of e){let e=Cs(n);if(e===`expression`)return `expression`;e===`legacy`&&(t=true);}return t?`legacy`:`neutral`}function Cs(e){if(typeof e==`boolean`)return `neutral`;if(!Array.isArray(e)||e.length===0)return `legacy`;switch(e[0]){case `has`:return e.length<2||e[1]===`$id`||e[1]===`$type`?`legacy`:e.length===2?`neutral`:`expression`;case `in`:return e.length>=3&&(typeof e[1]!=`string`||Array.isArray(e[2]))?`expression`:`legacy`;case `!in`:case `!has`:return `legacy`;case `==`:case `!=`:case `>`:case `>=`:case `<`:case `<=`:return e.length!==3||Array.isArray(e[1])||Array.isArray(e[2])?`expression`:`legacy`;case `none`:return `legacy`;case `any`:case `all`:return Ss(e.slice(1));default:return `expression`}}function ws(e){return Cs(e)!==`legacy`}function Ts(e){return e===`$type`?[`geometry-type`]:e===`$id`?[`id`]:[`get`,e]}function Es(e){switch(e[0]){case `==`:case `!=`:case `<`:case `<=`:case `>`:case `>=`:return e.length!==3||typeof e[1]!=`string`?null:[e[0],Ts(e[1]),e[2]];case `in`:case `!in`:{if(e.length<2||typeof e[1]!=`string`)return null;let t=[`in`,Ts(e[1]),[`literal`,e.slice(2)]];return e[0]===`!in`?[`!`,t]:t}case `has`:case `!has`:{if(e.length!==2||typeof e[1]!=`string`||e[1]===`$type`||e[1]===`$id`)return null;let t=[`has`,e[1]];return e[0]===`!has`?[`!`,t]:t}default:return null}}function Ds(e){if((e[0]===`<`||e[0]===`<=`||e[0]===`>`||e[0]===`>=`)&&e[1]===`$type`)return `"$type" cannot be use with operator "${e[0]}"`;let t=Es(e);return t?`Mixing deprecated filter syntax with expression syntax is not supported. Replace ${JSON.stringify(e)} with ${JSON.stringify(t)}.`:`Mixing deprecated filter syntax with expression syntax is not supported. Convert ${JSON.stringify(e)} to expression syntax.`}function Os(e,t,n){let r=n[e];return Array.isArray(r)?ws(r)?ks(r,t.concat(e)):{path:t.concat(e),legacyFilter:r}:null}function ks(e,t=[]){if(!Array.isArray(e)||e.length<1)return null;switch(e[0]){case `all`:case `any`:case `none`:for(let n=1;n<e.length;n++){let r=Os(n,t,e);if(r)return r}break;case `!`:{let n=Os(1,t,e);if(n)return n;break}case `case`:for(let n=1;n<e.length-1;n+=2){let r=Os(n,t,e);if(r)return r}}return null}function As(e,t){let n=ks(e);if(!n||typeof console>`u`)return;let r=n.path.map(e=>`[${e}]`).join(``);console.warn(`${t}${r}: ${Ds(n.legacyFilter)}`);}const js={type:`boolean`,default:false,transition:false,"property-type":`data-driven`,expression:{interpolated:false,parameters:[`zoom`,`feature`]}};function Ms(e,t,n){if(e==null)return {filter:()=>true,needGeometry:false,getGlobalStateRefs:()=>/* @__PURE__ */ new Set};ws(e)?As(e,t):e=Fs(e);let r=us(e,t,js,n);if(r.result===`error`)throw Error(r.value.map(e=>`${e.key}: ${e.message}`).join(`, `));return {filter:(e,t,n)=>r.value.evaluate(e,t,{},n),needGeometry:Ps(e),getGlobalStateRefs:()=>vs(r.value.expression)}}function Ns(e,t){return e<t?-1:+(e>t)}function Ps(e){if(!Array.isArray(e))return false;if(e[0]===`within`||e[0]===`distance`)return true;for(let t=1;t<e.length;t++)if(Ps(e[t]))return true;return false}function Fs(e){if(!e)return true;let t=e[0];return e.length<=1?t!==`any`:t===`==`?Is(e[1],e[2],`==`):t===`!=`?Bs(Is(e[1],e[2],`==`)):t===`<`||t===`>`||t===`<=`||t===`>=`?Is(e[1],e[2],t):t===`any`?Ls(e.slice(1)):t===`all`?[`all`].concat(e.slice(1).map(Fs)):t===`none`?[`all`].concat(e.slice(1).map(Fs).map(Bs)):t===`in`?Rs(e[1],e.slice(2)):t===`!in`?Bs(Rs(e[1],e.slice(2))):t===`has`?zs(e[1]):t!==`!has`||Bs(zs(e[1]))}function Is(e,t,n){switch(e){case `$type`:return [`filter-type-${n}`,t];case `$id`:return [`filter-id-${n}`,t];default:return [`filter-${n}`,e,t]}}function Ls(e){return [`any`].concat(e.map(Fs))}function Rs(e,t){if(t.length===0)return false;switch(e){case `$type`:return [`filter-type-in`,[`literal`,t]];case `$id`:return [`filter-id-in`,[`literal`,t]];default:return t.length>200&&!t.some(e=>typeof e!=typeof t[0])?[`filter-in-large`,e,[`literal`,t.sort(Ns)]]:[`filter-in-small`,e,[`literal`,t]]}}function zs(e){switch(e){case `$type`:return true;case `$id`:return [`filter-has-id`];default:return [`filter-has`,e]}}function Bs(e){return [`!`,e]}function Vs(){let e={},t=B.$version;for(let n in B.$root){let r=B.$root[n];if(r.required){let i=null;i=n===`version`?t:r.type===`array`?[]:{},i!=null&&(e[n]=i);}}return e}const Hc={};function K(e,t,n={}){if(Hc[e])throw Error(`${e} is already registered.`);Object.defineProperty(t,"_classRegistryKey",{value:e,writeable:false}),Hc[e]={klass:t,omit:n.omit||[],shallow:n.shallow||[]};}K(`Object`,Object),K(`Set`,Set),K(`TransferableGridIndex`,Jn),K(`Color`,G),K(`Error`,Error),K(`AJAXError`,Pn),K(`ResolvedImage`,hi),K(`StylePropertyFunction`,hs),K(`StyleExpression`,os,{omit:[`_evaluator`]}),K(`ZoomDependentExpression`,fs),K(`ZoomConstantExpression`,ds),K(`CompoundExpression`,Ao,{omit:[`_evaluate`]});for(let e in Eo)Eo[e]._classRegistryKey||K(`Expression_${e}`,Eo[e]);const cl=Math.floor(_n.hardwareConcurrency/2);Wt(globalThis)?Math.max(Math.min(cl,3),1):1;let gl;((function(e){let t,n,r,i;e.resetRequestQueue=()=>{t=[],n=0,r=0,i={};},e.addThrottleControl=e=>{let t=r++;return i[t]=e,t},e.removeThrottleControl=e=>{delete i[e],l();};let a=()=>{for(let e of Object.keys(i))if(i[e]())return true;return false};async function o(e,t,n,r,i=true,a){let o=await e.transformRequest(t,n);return pn(r.signal),gl.getImage(o,r,i,a)}e.transformAndGetImage=o,e.getImage=(e,n,r=true,i)=>new Promise((a,o)=>{e.headers||={},e.headers.accept=`image/webp,*/*`,I(e,{type:`image`});let s={abortController:n,requestParameters:e,supportImageRefresh:r,imageBitmapOptions:i,state:`queued`,onError:e=>{o(e);},onSuccess:e=>{a(e);}};t.push(s),l();});let s=(e,t)=>typeof createImageBitmap==`function`?Kt(e,t):qt(e),c=async e=>{e.state=`running`;let{requestParameters:t,supportImageRefresh:r,imageBitmapOptions:i,onError:a,onSuccess:o,abortController:c}=e,d=r===false&&!i&&!Vt(self)&&!An(t.url)&&(!t.headers||Object.keys(t.headers).reduce((e,t)=>e&&t===`accept`,true));n++;let f=d?u(t,c):zn(t,c);try{let t=await f;delete e.abortController,e.state=`completed`,t.data instanceof HTMLImageElement||Gt(t.data)?o(t):!t.data||t.data.byteLength===0?o({data:null,cacheControl:t.cacheControl,expires:t.expires}):o({data:await s(t.data,i),cacheControl:t.cacheControl,expires:t.expires});}catch(t){delete e.abortController,a(rt(t));}finally{n--,l();}},l=()=>{let e=a()?kn.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:kn.MAX_PARALLEL_IMAGE_REQUESTS;for(let r=n;r<e&&t.length>0;r++){let e=t.shift();e.abortController.signal.aborted?r--:c(e);}},u=(e,t)=>new Promise((n,r)=>{let i=new Image,a=e.url,o=e.credentials;o&&o===`include`?i.crossOrigin=`use-credentials`:(o&&o===`same-origin`||!Hn(a))&&(i.crossOrigin=`anonymous`),t.signal.addEventListener(`abort`,()=>{i.src=``,r(new dn(t.signal.reason));}),i.fetchPriority=`high`,i.onload=()=>{i.onerror=i.onload=null,n({data:i});},i.onerror=()=>{i.onerror=i.onload=null,!t.signal.aborted&&r(/* @__PURE__ */ Error(`Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`));},i.src=a;});}))(gl||={}),gl.resetRequestQueue();new Set(Object.keys(B).filter(e=>e.startsWith(`source_`)).map(e=>e.slice(7).replaceAll(`_`,`-`)));var Il=class{constructor(){this.first=true;}update(e,t){let n=Math.floor(e);return this.first?(this.first=false,this.lastIntegerZoom=n,this.lastIntegerZoomTime=0,this.lastZoom=e,this.lastFloorZoom=n,true):(this.lastFloorZoom>n?(this.lastIntegerZoom=n+1,this.lastIntegerZoomTime=t):this.lastFloorZoom<n&&(this.lastIntegerZoom=n,this.lastIntegerZoomTime=t),e!==this.lastZoom&&(this.lastZoom=e,this.lastFloorZoom=n,true))}},Ll=class{constructor(e,t){this.zoom=e,t?(this.now=t.now||0,this.fadeDuration=t.fadeDuration||0,this.zoomHistory=t.zoomHistory||new Il,this.transition=t.transition||{}):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Il,this.transition={});}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let e=this.zoom,t=e-Math.floor(e),n=this.crossFadingFactor();return e>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:t+(1-t)*n}:{fromScale:.5,toScale:1,t:1-(1-n)*t}}},Wl=class{constructor(e,t,n){this.property=e,this.value=t,this.parameters=n;}isConstant(){return this.value.kind===`constant`}constantOr(e){return this.value.kind===`constant`?this.value.value:e}evaluate(e,t,n,r){return this.property.evaluate(this.value,this.parameters,e,t,n,r)}},Gl=class{constructor(e){this._properties=e,this._values=Object.create(e.defaultPossiblyEvaluatedValues);}get(e){return this._values[e]}};function Kl(e){if(Array.isArray(e))return e.length;let t=e?.values;return Array.isArray(t)?t.length:void 0}function ql(e,t){let n=Kl(e),r=Kl(t);return n!==void 0&&r!==void 0&&n!==r}var J=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t){if(e.isDataDriven())throw Error(`Value should not be data driven`);return e.expression.evaluate(t)}interpolate(e,t,n){if(ql(e,t))return L$1(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=this.specification.type,i=Ai[r];return i?i(e,t,n):e}},Y=class{constructor(e,t,n){this.specification=e,this.name=t,this.overrides=n;}possiblyEvaluate(e,t,n,r){return e.expression.kind===`constant`||e.expression.kind===`camera`?new Wl(this,{kind:`constant`,value:e.expression.evaluate(t,null,{},n,r)},t):new Wl(this,e.expression,t)}interpolate(e,t,n){if(e.value.kind!==`constant`||t.value.kind!==`constant`)return e;if(e.value.value===void 0||t.value.value===void 0)return new Wl(this,{kind:`constant`,value:void 0},e.parameters);if(ql(e.value.value,t.value.value))return L$1(`Property "${this.name}" is trying to interpolate arrays of different lengths. Rendering may 'jump'.`),t;let r=this.specification.type,i=Ai[r];if(i){let r=i(e.value.value,t.value.value,n);return new Wl(this,{kind:`constant`,value:r},e.parameters)}return e}evaluate(e,t,n,r,i,a){return e.kind===`constant`?e.value:e.evaluate(t,n,r,i,a)}},Jl=class extends Y{possiblyEvaluate(e,t,n,r){if(e.value===void 0)return new Wl(this,{kind:`constant`,value:void 0},t);if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r),a=e.property.specification.type===`resolvedImage`&&typeof i!=`string`?i.name:i,o=this._calculate(a,a,a,t);return new Wl(this,{kind:`constant`,value:o},t)}if(e.expression.kind===`camera`){let n=this._calculate(e.expression.evaluate({zoom:t.zoom-1}),e.expression.evaluate({zoom:t.zoom}),e.expression.evaluate({zoom:t.zoom+1}),t);return new Wl(this,{kind:`constant`,value:n},t)}return new Wl(this,e.expression,t)}evaluate(e,t,n,r,i,a){if(e.kind===`source`){let o=e.evaluate(t,n,r,i,a);return this._calculate(o,o,o,t)}return e.kind===`composite`?this._calculate(e.evaluate({zoom:Math.floor(t.zoom)-1},n,r),e.evaluate({zoom:Math.floor(t.zoom)},n,r),e.evaluate({zoom:Math.floor(t.zoom)+1},n,r),t):e.value}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},Yl=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t,n,r){if(e.value!==void 0){if(e.expression.kind===`constant`){let i=e.expression.evaluate(t,null,{},n,r);return this._calculate(i,i,i,t)}return this._calculate(e.expression.evaluate(new Ll(Math.floor(t.zoom-1),t)),e.expression.evaluate(new Ll(Math.floor(t.zoom),t)),e.expression.evaluate(new Ll(Math.floor(t.zoom+1),t)),t)}}_calculate(e,t,n,r){return r.zoom>r.zoomHistory.lastIntegerZoom?{from:e,to:t}:{from:n,to:t}}interpolate(e){return e}},Xl=class{constructor(e,t){this.specification=e,this.name=t;}possiblyEvaluate(e,t,n,r){return !!e.expression.evaluate(t,null,{},n,r)}interpolate(){return false}};K(`DataDrivenProperty`,Y),K(`DataConstantProperty`,J),K(`CrossFadedDataDrivenProperty`,Jl),K(`CrossFadedProperty`,Yl),K(`ColorRampProperty`,Xl);const ou={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};var su=class{constructor(e,t){this._structArray=e,this._pos1=t*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8;}},cu=class{constructor(){this.isTransferred=false,this.capacity=-1,this.resize(0);}static serialize(e,t){return e._trim(),t&&(e.isTransferred=true,t.push(e.arrayBuffer)),{length:e.length,arrayBuffer:e.arrayBuffer}}static deserialize(e){let t=Object.create(this.prototype);return t.arrayBuffer=e.arrayBuffer,t.length=e.length,t.capacity=e.arrayBuffer.byteLength/t.bytesPerElement,t._refreshViews(),t}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews());}clear(){this.length=0;}resize(e){this.reserve(e),this.length=e;}reserve(e){if(e>this.capacity){this.capacity=Math.max(e,Math.floor(this.capacity*5),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let t=this.uint8;this._refreshViews(),t&&this.uint8.set(t);}}_refreshViews(){throw Error(`_refreshViews() must be implemented by each concrete StructArray layout`)}freeBufferAfterUpload(){this.arrayBuffer=/* @__PURE__ */ new ArrayBuffer(0),this._refreshViews();}};function lu(e,t=1){let n=0,r=0;return {members:e.map(e=>{let i=uu(e.type),a=n=du(n,Math.max(t,i)),o=e.components||1;return r=Math.max(r,i),n+=i*o,{name:e.name,type:e.type,components:o,offset:a}}),size:du(n,Math.max(r,t)),alignment:t}}function uu(e){return ou[e].BYTES_PER_ELEMENT}function du(e,t){return Math.ceil(e/t)*t}var fu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.int16[r+0]=t,this.int16[r+1]=n,e}};fu.prototype.bytesPerElement=4,K(`StructArrayLayout2i4`,fu);var pu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.int16[i+0]=t,this.int16[i+1]=n,this.int16[i+2]=r,e}};pu.prototype.bytesPerElement=6,K(`StructArrayLayout3i6`,pu);var mu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.int16[a+0]=t,this.int16[a+1]=n,this.int16[a+2]=r,this.int16[a+3]=i,e}};mu.prototype.bytesPerElement=8,K(`StructArrayLayout4i8`,mu);var hu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};hu.prototype.bytesPerElement=12,K(`StructArrayLayout2i4i12`,hu);var gu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.int8=new Int8Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*5,u=e*10;return this.int16[l+0]=t,this.int16[l+1]=n,this.uint8[u+4]=r,this.uint8[u+5]=i,this.uint8[u+6]=a,this.uint8[u+7]=o,this.int8[u+8]=s,this.int8[u+9]=c,e}};gu.prototype.bytesPerElement=10,K(`StructArrayLayout2i4ub2b10`,gu);var _u=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.float32[r+0]=t,this.float32[r+1]=n,e}};_u.prototype.bytesPerElement=8,K(`StructArrayLayout2f8`,_u);var vu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l){let u=this.length;return this.resize(u+1),this.emplace(u,e,t,n,r,i,a,o,s,c,l)}emplace(e,t,n,r,i,a,o,s,c,l,u){let d=e*10;return this.uint16[d+0]=t,this.uint16[d+1]=n,this.uint16[d+2]=r,this.uint16[d+3]=i,this.uint16[d+4]=a,this.uint16[d+5]=o,this.uint16[d+6]=s,this.uint16[d+7]=c,this.uint16[d+8]=l,this.uint16[d+9]=u,e}};vu.prototype.bytesPerElement=20,K(`StructArrayLayout10ui20`,vu);var yu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s){let c=this.length;return this.resize(c+1),this.emplace(c,e,t,n,r,i,a,o,s)}emplace(e,t,n,r,i,a,o,s,c){let l=e*8;return this.uint16[l+0]=t,this.uint16[l+1]=n,this.uint16[l+2]=r,this.uint16[l+3]=i,this.uint16[l+4]=a,this.uint16[l+5]=o,this.uint16[l+6]=s,this.uint16[l+7]=c,e}};yu.prototype.bytesPerElement=16,K(`StructArrayLayout8ui16`,yu);var bu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=this.length;return this.resize(p+1),this.emplace(p,e,t,n,r,i,a,o,s,c,l,u,d,f)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=e*14,h=e*7;return this.int16[m+0]=t,this.int16[m+1]=n,this.int16[m+2]=r,this.int16[m+3]=i,this.uint16[m+4]=a,this.uint16[m+5]=o,this.uint16[m+6]=s,this.uint16[m+7]=c,this.int16[m+8]=l,this.int16[m+9]=u,this.int16[m+10]=d,this.int16[m+11]=f,this.float32[h+6]=p,e}};bu.prototype.bytesPerElement=28,K(`StructArrayLayout4i4ui4i1f28`,bu);var xu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.float32[i+0]=t,this.float32[i+1]=n,this.float32[i+2]=r,e}};xu.prototype.bytesPerElement=12,K(`StructArrayLayout3f12`,xu);var Su=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint32[n+0]=t,e}};Su.prototype.bytesPerElement=4,K(`StructArrayLayout1ul4`,Su);var Cu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c){let l=this.length;return this.resize(l+1),this.emplace(l,e,t,n,r,i,a,o,s,c)}emplace(e,t,n,r,i,a,o,s,c,l){let u=e*10,d=e*5;return this.int16[u+0]=t,this.int16[u+1]=n,this.int16[u+2]=r,this.int16[u+3]=i,this.int16[u+4]=a,this.int16[u+5]=o,this.uint32[d+3]=s,this.uint16[u+8]=c,this.uint16[u+9]=l,e}};Cu.prototype.bytesPerElement=20,K(`StructArrayLayout6i1ul2ui20`,Cu);var wu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*6;return this.int16[s+0]=t,this.int16[s+1]=n,this.int16[s+2]=r,this.int16[s+3]=i,this.int16[s+4]=a,this.int16[s+5]=o,e}};wu.prototype.bytesPerElement=12,K(`StructArrayLayout2i2i2i12`,wu);var Tu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i){let a=this.length;return this.resize(a+1),this.emplace(a,e,t,n,r,i)}emplace(e,t,n,r,i,a){let o=e*4,s=e*8;return this.float32[o+0]=t,this.float32[o+1]=n,this.float32[o+2]=r,this.int16[s+6]=i,this.int16[s+7]=a,e}};Tu.prototype.bytesPerElement=16,K(`StructArrayLayout2f1f2i16`,Tu);var Eu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a){let o=this.length;return this.resize(o+1),this.emplace(o,e,t,n,r,i,a)}emplace(e,t,n,r,i,a,o){let s=e*16,c=e*4,l=e*8;return this.uint8[s+0]=t,this.uint8[s+1]=n,this.float32[c+1]=r,this.float32[c+2]=i,this.int16[l+6]=a,this.int16[l+7]=o,e}};Eu.prototype.bytesPerElement=16,K(`StructArrayLayout2ub2f2i16`,Eu);var Du=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*3;return this.uint16[i+0]=t,this.uint16[i+1]=n,this.uint16[i+2]=r,e}};Du.prototype.bytesPerElement=6,K(`StructArrayLayout3ui6`,Du);var Ou=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_){let v=this.length;return this.resize(v+1),this.emplace(v,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v){let y=e*26,b=e*13,x=e*52;return this.int16[y+0]=t,this.int16[y+1]=n,this.uint16[y+2]=r,this.uint16[y+3]=i,this.uint32[b+2]=a,this.uint32[b+3]=o,this.uint32[b+4]=s,this.uint16[y+10]=c,this.uint16[y+11]=l,this.uint16[y+12]=u,this.float32[b+7]=d,this.float32[b+8]=f,this.uint8[x+36]=p,this.uint8[x+37]=m,this.uint8[x+38]=h,this.uint32[b+10]=g,this.int16[y+22]=_,this.float32[b+12]=v,e}};Ou.prototype.bytesPerElement=52,K(`StructArrayLayout2i2ui3ul3ui2f3ub1ul1i1f52`,Ou);var ku=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O){let k=this.length;return this.resize(k+1),this.emplace(k,e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O)}emplace(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k){let A=e*34,j=e*17;return this.int16[A+0]=t,this.int16[A+1]=n,this.int16[A+2]=r,this.int16[A+3]=i,this.int16[A+4]=a,this.int16[A+5]=o,this.int16[A+6]=s,this.int16[A+7]=c,this.uint16[A+8]=l,this.uint16[A+9]=u,this.uint16[A+10]=d,this.uint16[A+11]=f,this.uint16[A+12]=p,this.uint16[A+13]=m,this.uint16[A+14]=h,this.uint16[A+15]=g,this.uint16[A+16]=_,this.uint16[A+17]=v,this.uint16[A+18]=y,this.uint16[A+19]=b,this.uint16[A+20]=x,this.uint16[A+21]=S,this.uint16[A+22]=C,this.uint32[j+12]=w,this.float32[j+13]=T,this.float32[j+14]=E,this.uint16[A+30]=D,this.uint16[A+31]=O,this.float32[j+16]=k,e}};ku.prototype.bytesPerElement=68,K(`StructArrayLayout8i15ui1ul2f2ui1f68`,ku);var Au=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.float32[n+0]=t,e}};Au.prototype.bytesPerElement=4,K(`StructArrayLayout1f4`,Au);var ju=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*6,a=e*3;return this.uint16[i+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,e}};ju.prototype.bytesPerElement=12,K(`StructArrayLayout1ui2f12`,ju);var Mu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t,n){let r=this.length;return this.resize(r+1),this.emplace(r,e,t,n)}emplace(e,t,n,r){let i=e*2,a=e*4;return this.uint32[i+0]=t,this.uint16[a+2]=n,this.uint16[a+3]=r,e}};Mu.prototype.bytesPerElement=8,K(`StructArrayLayout1ul2ui8`,Mu);var Nu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e,t){let n=this.length;return this.resize(n+1),this.emplace(n,e,t)}emplace(e,t,n){let r=e*2;return this.uint16[r+0]=t,this.uint16[r+1]=n,e}};Nu.prototype.bytesPerElement=4,K(`StructArrayLayout2ui4`,Nu);var Pu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer);}emplaceBack(e){let t=this.length;return this.resize(t+1),this.emplace(t,e)}emplace(e,t){let n=e*1;return this.uint16[n+0]=t,e}};Pu.prototype.bytesPerElement=2,K(`StructArrayLayout1ui2`,Pu);var Fu=class extends cu{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer);}emplaceBack(e,t,n,r){let i=this.length;return this.resize(i+1),this.emplace(i,e,t,n,r)}emplace(e,t,n,r,i){let a=e*4;return this.float32[a+0]=t,this.float32[a+1]=n,this.float32[a+2]=r,this.float32[a+3]=i,e}};Fu.prototype.bytesPerElement=16,K(`StructArrayLayout4f16`,Fu);var Iu=class extends su{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new u(this.anchorPointX,this.anchorPointY)}};Iu.prototype.size=20;var Lu=class extends Cu{get(e){return new Iu(this,e)}};K(`CollisionBoxArray`,Lu);var Ru=class extends su{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(e){this._structArray.uint8[this._pos1+37]=e;}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(e){this._structArray.uint8[this._pos1+38]=e;}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(e){this._structArray.uint32[this._pos4+10]=e;}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}get heightOffset(){return this._structArray.float32[this._pos4+12]}};Ru.prototype.size=52;var zu=class extends Ou{get(e){return new Ru(this,e)}};K(`PlacedSymbolArray`,zu);var Bu=class extends su{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(e){this._structArray.uint32[this._pos4+12]=e;}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}get heightOffset(){return this._structArray.float32[this._pos4+16]}};Bu.prototype.size=68;var Vu=class extends ku{get(e){return new Bu(this,e)}};K(`SymbolInstanceArray`,Vu);var Hu=class extends Au{getoffsetX(e){return this.float32[e*1+0]}};K(`GlyphOffsetArray`,Hu);var Uu=class extends pu{getx(e){return this.int16[e*3+0]}gety(e){return this.int16[e*3+1]}gettileUnitDistanceFromAnchor(e){return this.int16[e*3+2]}};K(`SymbolLineVertexArray`,Uu);var Wu=class extends su{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}};Wu.prototype.size=12;var Gu=class extends ju{get(e){return new Wu(this,e)}};K(`TextAnchorOffsetArray`,Gu);var Ku=class extends su{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}};Ku.prototype.size=8;var qu=class extends Mu{get(e){return new Ku(this,e)}};K(`FeatureIndexArray`,qu);var Ju=class extends fu{},Zu=class extends fu{},Qu=class extends fu{},$u=class extends hu{},ed=class extends gu{},td=class extends _u{},nd=class extends vu{},rd=class extends yu{},id=class extends bu{},ad=class extends xu{},od=class extends Su{},sd=class extends wu{},ld=class extends Eu{},dd=class extends Du{},fd=class extends Nu{};const md=lu([{name:`a_pos`,components:2,type:`Int16`}],4),hd=md.members;var gd=class e{constructor(e=[]){this._forceNewSegmentOnNextPrepare=false,this.segments=e;}prepareSegment(t,n,r,i){let a=this.segments[this.segments.length-1];return t>e.MAX_VERTEX_ARRAY_LENGTH&&L$1(`Max vertices per segment is ${e.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${t}. Consider using the \`fillLargeMeshArrays\` function if you require meshes with more than ${e.MAX_VERTEX_ARRAY_LENGTH} vertices.`),this._forceNewSegmentOnNextPrepare||!a||a.vertexLength+t>e.MAX_VERTEX_ARRAY_LENGTH||a.sortKey!==i?this.createNewSegment(n,r,i):a}createNewSegment(e,t,n){let r={vertexOffset:e.length,primitiveOffset:t.length,vertexLength:0,primitiveLength:0,vaos:{}};return n!==void 0&&(r.sortKey=n),this._forceNewSegmentOnNextPrepare=false,this.segments.push(r),r}getOrCreateLatestSegment(e,t,n){return this.prepareSegment(0,e,t,n)}forceNewSegmentOnNextPrepare(){this._forceNewSegmentOnNextPrepare=true;}get(){return this.segments}destroy(){for(let e of this.segments)for(let t in e.vaos)e.vaos[t].destroy();}static simpleSegment(t,n,r,i){return new e([{vertexOffset:t,primitiveOffset:n,vertexLength:r,primitiveLength:i,vaos:{},sortKey:0}])}};gd.MAX_VERTEX_ARRAY_LENGTH=2**16-1,K(`SegmentVector`,gd);function _d(e,t){return e=F(Math.floor(e),0,255),t=F(Math.floor(t),0,255),256*e+t}const vd=lu([{name:`a_pattern_from`,components:4,type:`Uint16`},{name:`a_pattern_to`,components:4,type:`Uint16`},{name:`a_pixel_ratio_from`,components:1,type:`Uint16`},{name:`a_pixel_ratio_to`,components:1,type:`Uint16`}]),yd=lu([{name:`a_dasharray_from`,components:4,type:`Uint16`},{name:`a_dasharray_to`,components:4,type:`Uint16`}]);var bd=/* @__PURE__ */ o(((e,t)=>{function n(e,t){for(var n=e.length&3,r=e.length-n,i=t,a,o=3432918353,s=461845907,c,l=0;l<r;)c=e.charCodeAt(l)&255|(e.charCodeAt(++l)&255)<<8|(e.charCodeAt(++l)&255)<<16|(e.charCodeAt(++l)&255)<<24,++l,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)|0,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)|0,i^=c,i=i<<13|i>>>19,a=(i&65535)*5+(((i>>>16)*5&65535)<<16)|0,i=(a&65535)+27492+(((a>>>16)+58964&65535)<<16);switch(c=0,n){case 3:c^=(e.charCodeAt(l+2)&255)<<16;case 2:c^=(e.charCodeAt(l+1)&255)<<8;case 1:c^=e.charCodeAt(l)&255,c=(c&65535)*o+(((c>>>16)*o&65535)<<16)|0,c=c<<15|c>>>17,c=(c&65535)*s+(((c>>>16)*s&65535)<<16)|0,i^=c;}return i^=e.length,i^=i>>>16,i=(i&65535)*2246822507+(((i>>>16)*2246822507&65535)<<16)|0,i^=i>>>13,i=(i&65535)*3266489909+(((i>>>16)*3266489909&65535)<<16)|0,i^=i>>>16,i>>>0}t!==void 0&&(t.exports=n);})),xd=/* @__PURE__ */ o(((e,t)=>{function n(e,t){for(var n=e.length,r=t^n,i=0,a;n>=4;)a=e.charCodeAt(i)&255|(e.charCodeAt(++i)&255)<<8|(e.charCodeAt(++i)&255)<<16|(e.charCodeAt(++i)&255)<<24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),a^=a>>>24,a=(a&65535)*1540483477+(((a>>>16)*1540483477&65535)<<16),r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16)^a,n-=4,++i;switch(n){case 3:r^=(e.charCodeAt(i+2)&255)<<16;case 2:r^=(e.charCodeAt(i+1)&255)<<8;case 1:r^=e.charCodeAt(i)&255,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16);}return r^=r>>>13,r=(r&65535)*1540483477+(((r>>>16)*1540483477&65535)<<16),r^=r>>>15,r>>>0}t.exports=n;})),Sd=/* @__PURE__ */ c((/* @__PURE__ */ o(((e,t)=>{var n=bd(),r=xd();t.exports=n,t.exports.murmur3=n,t.exports.murmur2=r;})))()),Cd=class e{constructor(){this.ids=[],this.positions=[],this.indexed=false;}add(e,t,n,r){this.ids.push(wd(e)),this.positions.push(t,n,r);}getPositions(e){if(!this.indexed)throw Error(`Trying to get index, but feature positions are not indexed`);let t=wd(e),n=0,r=this.ids.length-1;for(;n<r;){let e=n+r>>1;this.ids[e]>=t?r=e:n=e+1;}let i=[];for(;this.ids[n]===t;){let e=this.positions[3*n],t=this.positions[3*n+1],r=this.positions[3*n+2];i.push({index:e,start:t,end:r}),n++;}return i}static serialize(e,t){let n=new Float64Array(e.ids),r=new Uint32Array(e.positions);return Td(n,r,0,n.length-1),t&&t.push(n.buffer,r.buffer),{ids:n,positions:r}}static deserialize(t){let n=new e;return n.ids=t.ids,n.positions=t.positions,n.indexed=true,n}};function wd(e){let t=+e;return !isNaN(t)&&t<=2**53-1?t:(0, Sd.default)(String(e))}function Td(e,t,n,r){for(;n<r;){let i=e[n+r>>1],a=n-1,o=r+1;for(;;){do a++;while(e[a]<i);do o--;while(e[o]>i);if(a>=o)break;Ed(e,a,o),Ed(t,3*a,3*o),Ed(t,3*a+1,3*o+1),Ed(t,3*a+2,3*o+2);}o-n<r-o?(Td(e,t,n,o),n=o+1):(Td(e,t,o+1,r),r=o);}}function Ed(e,t,n){let r=e[t];e[t]=e[n],e[n]=r;}K(`FeaturePositionMap`,Cd);var Dd=class{constructor(e,t){this.gl=e.gl,this.location=t;}},Z=class extends Dd{constructor(e,t){super(e,t),this.current=0;}set(e){this.current!==e&&(this.current=e,this.gl.uniform1f(this.location,e));}},Ad=class extends Dd{constructor(e,t){super(e,t),this.current=[0,0,0,0];}set(e){(e[0]!==this.current[0]||e[1]!==this.current[1]||e[2]!==this.current[2]||e[3]!==this.current[3])&&(this.current=e,this.gl.uniform4f(this.location,e[0],e[1],e[2],e[3]));}},jd=class extends Dd{constructor(e,t){super(e,t),this.current=G.transparent;}set(e){(e.r!==this.current.r||e.g!==this.current.g||e.b!==this.current.b||e.a!==this.current.a)&&(this.current=e,this.gl.uniform4f(this.location,e.r,e.g,e.b,e.a));}};function Id(e){return [_d(255*e.r,255*e.g),_d(255*e.b,255*e.a)]}var Ld=class{constructor(e,t,n){this.value=e,this.uniformNames=t.map(e=>`u_${e}`),this.type=n;}setUniform(e,t,n){e.set(n.constantOr(this.value));}getBinding(e,t,n){return this.type===`color`?new jd(e,t):new Z(e,t)}},Rd=class{constructor(e,t){this.uniformNames=t.map(e=>`u_${e}`),this.patternFrom=null,this.patternTo=null,this.dashFrom=null,this.dashTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1;}setConstantPatternPositions(e,t){this.pixelRatioFrom=t.pixelRatio,this.pixelRatioTo=e.pixelRatio,this.patternFrom=t.tlbr,this.patternTo=e.tlbr;}setConstantDashPositions(e,t){this.dashTo=[0,e.y,e.height,e.width],this.dashFrom=[0,t.y,t.height,t.width];}setUniform(e,t,n,r){let i=null;r===`u_pattern_to`?i=this.patternTo:r===`u_pattern_from`?i=this.patternFrom:r===`u_dasharray_to`?i=this.dashTo:r===`u_dasharray_from`?i=this.dashFrom:r===`u_pixel_ratio_to`?i=this.pixelRatioTo:r===`u_pixel_ratio_from`&&(i=this.pixelRatioFrom),i!==null&&e.set(i);}getBinding(e,t,n){return n.startsWith(`u_pattern`)||n.startsWith(`u_dasharray_`)?new Ad(e,t):new Z(e,t)}},zd=class{constructor(e,t,n,r){this.expression=e,this.type=n,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?2:1,offset:0})),this.paintVertexArray=new r;}populatePaintArray(e,t,n){let r=this.paintVertexArray.length,i=this.expression.evaluate(new Ll(0,n),t,{},n.canonical,[],n.formattedSection);this.paintVertexArray.resize(e),this._setPaintValue(r,e,i);}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new Ll(0,i),n,r);this._setPaintValue(e,t,a);}_setPaintValue(e,t,n){if(this.type===`color`){let r=Id(n);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,r[0],r[1]);}else {for(let r=e;r<t;r++)this.paintVertexArray.emplace(r,n);this.maxValue=Math.max(this.maxValue,Math.abs(n));}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}},Bd=class{constructor(e,t,n,r,i,a){this.expression=e,this.uniformNames=t.map(e=>`u_${e}_t`),this.type=n,this.useIntegerZoom=r,this.zoom=i,this.maxValue=0,this.paintVertexAttributes=t.map(e=>({name:`a_${e}`,type:`Float32`,components:n===`color`?4:2,offset:0})),this.paintVertexArray=new a;}populatePaintArray(e,t,n){let r=this.expression.evaluate(new Ll(this.zoom,n),t,{},n.canonical,[],n.formattedSection),i=this.expression.evaluate(new Ll(this.zoom+1,n),t,{},n.canonical,[],n.formattedSection),a=this.paintVertexArray.length;this.paintVertexArray.resize(e),this._setPaintValue(a,e,r,i);}updatePaintArray(e,t,n,r,i){let a=this.expression.evaluate(new Ll(this.zoom,i),n,r),o=this.expression.evaluate(new Ll(this.zoom+1,i),n,r);this._setPaintValue(e,t,a,o);}_setPaintValue(e,t,n,r){if(this.type===`color`){let i=Id(n),a=Id(r);for(let n=e;n<t;n++)this.paintVertexArray.emplace(n,i[0],i[1],a[0],a[1]);}else {for(let i=e;i<t;i++)this.paintVertexArray.emplace(i,n,r);this.maxValue=Math.max(this.maxValue,Math.abs(n),Math.abs(r));}}upload(e){this.paintVertexArray?.arrayBuffer.byteLength&&(this.paintVertexBuffer?.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=e.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent));}destroy(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy();}setUniform(e,t){let n=this.useIntegerZoom?Math.floor(t.zoom):t.zoom,r=F(this.expression.interpolationFactor(n,this.zoom,this.zoom+1),0,1);e.set(r);}getBinding(e,t,n){return new Z(e,t)}},Vd=class{constructor(e,t,n,r,i,a){this.expression=e,this.type=t,this.useIntegerZoom=n,this.zoom=r,this.layerId=a,this.zoomInPaintVertexArray=new i,this.zoomOutPaintVertexArray=new i;}populatePaintArray(e,t,n){let r=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(e),this.zoomOutPaintVertexArray.resize(e),this._setPaintValues(r,e,this.getPositionIds(t),n);}updatePaintArray(e,t,n,r,i){this._setPaintValues(e,t,this.getPositionIds(n),i);}_setPaintValues(e,t,n,r){let i=this.getPositions(r);if(!i||!n)return;let a=i[n.min],o=i[n.mid],s=i[n.max];if(a&&o&&s)for(let n=e;n<t;n++)this.emplace(this.zoomInPaintVertexArray,n,a,o),this.emplace(this.zoomOutPaintVertexArray,n,s,o);}upload(e){if(this.zoomInPaintVertexArray?.arrayBuffer.byteLength&&this.zoomOutPaintVertexArray?.arrayBuffer.byteLength){let t=this.getVertexAttributes();this.zoomInPaintVertexBuffer=e.createVertexBuffer(this.zoomInPaintVertexArray,t,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=e.createVertexBuffer(this.zoomOutPaintVertexArray,t,this.expression.isStateDependent);}}destroy(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy();}},Hd=class extends Vd{getPositions(e){return e.imagePositions}getPositionIds(e){return e.patterns?.[this.layerId]}getVertexAttributes(){return vd.members}emplace(e,t,n,r){e.emplace(t,n.tlbr[0],n.tlbr[1],n.tlbr[2],n.tlbr[3],r.tlbr[0],r.tlbr[1],r.tlbr[2],r.tlbr[3],n.pixelRatio,r.pixelRatio);}},Ud=class extends Vd{getPositions(e){return e.dashPositions}getPositionIds(e){return e.dashes?.[this.layerId]}getVertexAttributes(){return yd.members}emplace(e,t,n,r){e.emplace(t,0,n.y,n.height,n.width,0,r.y,r.height,r.width);}},Wd=class{constructor(e,t,n){this.binders={},this._buffers=[];let r=[];for(let i in e.paint._values){if(!n(i))continue;let a=e.paint.get(i);if(!(a instanceof Wl)||!Vo(a.property.specification))continue;let o=Kd(i,e.type),s=a.value,c=a.property.specification.type,l=a.property.useIntegerZoom,u=a.property.specification[`property-type`],d=u===`cross-faded`||u===`cross-faded-data-driven`;if(s.kind===`constant`)this.binders[i]=d?new Rd(s.value,o):new Ld(s.value,o,c),r.push(`/u_${i}`);else if(s.kind===`source`||d){let n=Jd(i,c,`source`);this.binders[i]=d?i===`line-dasharray`?new Ud(s,c,l,t,n,e.id):new Hd(s,c,l,t,n,e.id):new zd(s,o,c,n),r.push(`/a_${i}`);}else {let e=Jd(i,c,`composite`);this.binders[i]=new Bd(s,o,c,l,t,e),r.push(`/z_${i}`);}}this.cacheKey=r.sort().join(``);}getMaxValue(e){let t=this.binders[e];return t instanceof zd||t instanceof Bd?t.maxValue:0}populatePaintArrays(e,t,n){for(let r in this.binders){let i=this.binders[r];(i instanceof zd||i instanceof Bd||i instanceof Vd)&&i.populatePaintArray(e,t,n);}}setConstantPatternPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof Rd&&r.setConstantPatternPositions(e,t);}}setConstantDashPositions(e,t){for(let n in this.binders){let r=this.binders[n];r instanceof Rd&&r.setConstantDashPositions(e,t);}}updatePaintArrays(e,t,n,r,i){let a=false;for(let o of e){let e=t.getPositions(o.id);for(let t of e){let e=n.feature(t.index);for(let n in this.binders){let s=this.binders[n];(s instanceof zd||s instanceof Bd||s instanceof Vd)&&s.expression.isStateDependent===true&&(s.expression=r.paint.get(n).value,s.updatePaintArray(t.start,t.end,e,o.state,i),a=true);}}}return a}defines(){let e=[];for(let t in this.binders){let n=this.binders[t];(n instanceof Ld||n instanceof Rd)&&e.push(...n.uniformNames.map(e=>`#define HAS_UNIFORM_${e}`));}return e}getBinderAttributes(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof zd||n instanceof Bd)for(let t of n.paintVertexAttributes)e.push(t.name);else if(n instanceof Vd){let t=n.getVertexAttributes();for(let n of t)e.push(n.name);}}return e}getBinderUniforms(){let e=[];for(let t in this.binders){let n=this.binders[t];if(n instanceof Ld||n instanceof Rd||n instanceof Bd)for(let t of n.uniformNames)e.push(t);}return e}getPaintVertexBuffers(){return this._buffers}getUniforms(e,t){let n=[];for(let r in this.binders){let i=this.binders[r];if(i instanceof Ld||i instanceof Rd||i instanceof Bd){for(let a of i.uniformNames)if(t[a]){let o=i.getBinding(e,t[a],a);n.push({name:a,property:r,binding:o});}}}return n}setUniforms(e,t,n,r){for(let{name:e,property:i,binding:a}of t)this.binders[i].setUniform(a,r,n.get(i),e);}updatePaintBuffers(e){this._buffers=[];for(let t in this.binders){let n=this.binders[t];if(e&&n instanceof Vd){let t=e.fromScale===2?n.zoomInPaintVertexBuffer:n.zoomOutPaintVertexBuffer;t&&this._buffers.push(t);}else (n instanceof zd||n instanceof Bd)&&n.paintVertexBuffer&&this._buffers.push(n.paintVertexBuffer);}}upload(e){for(let t in this.binders){let n=this.binders[t];(n instanceof zd||n instanceof Bd||n instanceof Vd)&&n.upload(e);}this.updatePaintBuffers();}destroy(){for(let e in this.binders){let t=this.binders[e];(t instanceof zd||t instanceof Bd||t instanceof Vd)&&t.destroy();}}},Gd=class{constructor(e,t,n=()=>true){this.programConfigurations={};for(let r of e)this.programConfigurations[r.id]=new Wd(r,t,n);this.needsUpload=false,this._featureMap=new Cd,this._bufferOffset=0;}populatePaintArrays(e,t,n,r){for(let n in this.programConfigurations)this.programConfigurations[n].populatePaintArrays(e,t,r);t.id!==void 0&&this._featureMap.add(t.id,n,this._bufferOffset,e),this._bufferOffset=e,this.needsUpload=true;}updatePaintArrays(e,t,n,r){for(let i of n)this.needsUpload=this.programConfigurations[i.id].updatePaintArrays(e,this._featureMap,t,i,r)||this.needsUpload;}get(e){return this.programConfigurations[e]}upload(e){if(this.needsUpload){for(let t in this.programConfigurations)this.programConfigurations[t].upload(e);this.needsUpload=false;}}destroy(){for(let e in this.programConfigurations)this.programConfigurations[e].destroy();}};function Kd(e,t){return {"text-opacity":[`opacity`],"icon-opacity":[`opacity`],"text-color":[`fill_color`],"icon-color":[`fill_color`],"text-halo-color":[`halo_color`],"icon-halo-color":[`halo_color`],"text-halo-blur":[`halo_blur`],"icon-halo-blur":[`halo_blur`],"text-halo-width":[`halo_width`],"icon-halo-width":[`halo_width`],"line-gap-width":[`gapwidth`],"line-dasharray":[`dasharray_to`,`dasharray_from`],"line-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`],"fill-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`],"fill-extrusion-pattern":[`pattern_to`,`pattern_from`,`pixel_ratio_to`,`pixel_ratio_from`]}[e]||[e.replace(`${t}-`,``).replace(/-/g,`_`)]}function qd(e){return {"line-pattern":{source:nd,composite:nd},"fill-pattern":{source:nd,composite:nd},"fill-extrusion-pattern":{source:nd,composite:nd},"line-dasharray":{source:rd,composite:rd}}[e]}function Jd(e,t,n){let r={color:{source:_u,composite:Fu},number:{source:Au,composite:_u}};return qd(e)?.[n]||r[t][n]}K(`ConstantBinder`,Ld),K(`CrossFadedConstantBinder`,Rd),K(`SourceExpressionBinder`,zd),K(`CrossFadedPatternBinder`,Hd),K(`CrossFadedDasharrayBinder`,Ud),K(`CompositeExpressionBinder`,Bd),K(`ProgramConfiguration`,Wd,{omit:[`_buffers`]}),K(`ProgramConfigurationSet`,Gd);const Yd=2**14-1,Xd=-Yd-1;function Zd(e){let t=P/e.extent,n=e.loadGeometry();for(let e of n)for(let n of e){let e=Math.round(n.x*t),r=Math.round(n.y*t);n.x=F(e,Xd,Yd),n.y=F(r,Xd,Yd),(e<n.x||e>n.x+1||r<n.y||r>n.y+1)&&L$1(`Geometry exceeds allowed extent, reduce your vector tile buffer size`);}return n}function Qd(e,t){return {type:e.type,id:e.id,properties:e.properties,geometry:t?Zd(e):[]}}var $d=class e{constructor(){this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0;}extend(e){return this.minX=Math.min(this.minX,e.x),this.minY=Math.min(this.minY,e.y),this.maxX=Math.max(this.maxX,e.x),this.maxY=Math.max(this.maxY,e.y),this}expandBy(e){return this.minX-=e,this.minY-=e,this.maxX+=e,this.maxY+=e,(this.minX>this.maxX||this.minY>this.maxY)&&(this.minX=1/0,this.maxX=-1/0,this.minY=1/0,this.maxY=-1/0),this}shrinkBy(e){return this.expandBy(-e)}map(t){let n=new e;return n.extend(t(new u(this.minX,this.minY))),n.extend(t(new u(this.maxX,this.minY))),n.extend(t(new u(this.minX,this.maxY))),n.extend(t(new u(this.maxX,this.maxY))),n}static fromPoints(t){let n=new e;for(let e of t)n.extend(e);return n}contains(e){return e.x>=this.minX&&e.x<=this.maxX&&e.y>=this.minY&&e.y<=this.maxY}empty(){return this.minX>this.maxX}width(){return this.maxX-this.minX}height(){return this.maxY-this.minY}covers(e){return !this.empty()&&!e.empty()&&e.minX>=this.minX&&e.maxX<=this.maxX&&e.minY>=this.minY&&e.maxY<=this.maxY}intersects(e){return !this.empty()&&!e.empty()&&e.minX<=this.maxX&&e.maxX>=this.minX&&e.minY<=this.maxY&&e.maxY>=this.minY}};$d.fromPoints([new u(0,0),new u(P,P)]);function tf(e,t){return e.x===t.x&&(e.x<0||e.x>8192)||e.y===t.y&&(e.y<0||e.y>8192)}function nf(e){return e.every(e=>e.x<0)||e.every(e=>e.x>8192)||e.every(e=>e.y<0)||e.every(e=>e.y>8192)}function rf(e){return e.x<0||e.x>=8192||e.y<0||e.y>=8192}const af=-32768;function of(e,t,n,r,i){e.emplaceBack(af+t*8+r,af+n*8+i);}var sf=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.layoutVertexArray=new Zu,this.indexArray=new dd,this.segments=new gd,this.programConfigurations=new Gd(e.layers,e.zoom),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){let r=this.layers[0],i=[],a=null,o=false,s=r.type===`heatmap`;if(r.type===`circle`){let e=r;a=e.layout.get(`circle-sort-key`),o=!a.isConstant(),s||=e.paint.get(`circle-pitch-alignment`)===`map`;}let c=s?t.subdivisionGranularity.circle:1,l=new Ll(this.zoom),u=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:r,index:s,sourceLayerIndex:c}of e){let e=Qd(t,u);if(!this.layers[0]._featureFilter.filter(l,e,n))continue;let d=o?a.evaluate(e,{},n):void 0,f={id:r,properties:t.properties,type:t.type,sourceLayerIndex:c,index:s,geometry:u?e.geometry:Zd(t),patterns:{},sortKey:d};i.push(f);}o&&i.sort((e,t)=>e.sortKey-t.sortKey);for(let r of i){let{geometry:i,index:a,sourceLayerIndex:o}=r,s=e[a].feature;this.addFeature(r,i,a,n,c),t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}addFeatures(e){}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hd),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}addFeature(e,t,n,r,i=1){let a;switch(i){case 1:a=[0,7];break;case 3:a=[0,2,5,7];break;case 5:a=[0,1,3,4,6,7];break;case 7:a=[0,1,2,3,4,5,6,7];break;default:throw Error(`Invalid circle bucket granularity: ${i}; valid values are 1, 3, 5, 7.`)}let o=a.length;for(let n of t)for(let t of n){let n=t.x,r=t.y;if(rf(t))continue;let i=this.segments.prepareSegment(o*o,this.layoutVertexArray,this.indexArray,e.sortKey),s=i.vertexLength;for(let e=0;e<o;e++)for(let t=0;t<o;t++)of(this.layoutVertexArray,n,r,a[t],a[e]);for(let e=0;e<o-1;e++)for(let t=0;t<o-1;t++){let n=s+e*o+t,r=s+(e+1)*o+t;this.indexArray.emplaceBack(n,r+1,n+1),this.indexArray.emplaceBack(n,r,r+1);}i.vertexLength+=o*o,i.primitiveLength+=(o-1)*(o-1)*2;}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:{},canonical:r});}};K(`CircleBucket`,sf,{omit:[`layers`]});function gf(e,t,n){let r=t.distSqr(n);if(r===0)return e.distSqr(t);let i=((e.x-t.x)*(n.x-t.x)+(e.y-t.y)*(n.y-t.y))/r;return i<0?e.distSqr(t):i>1?e.distSqr(n):e.distSqr(n.sub(t)._mult(i)._add(t))}function vf(e,t){let n=false;for(let r=0,i=e.length-1;r<e.length;i=r++){let a=e[r],o=e[i];a.y>t.y!=o.y>t.y&&t.x<(o.x-a.x)*(t.y-a.y)/(o.y-a.y)+a.x&&(n=!n);}return n}function yf(e,t,n,r,i){for(let a of e)if(t<=a.x&&n<=a.y&&r>=a.x&&i>=a.y)return true;let a=[new u(t,n),new u(t,i),new u(r,i),new u(r,n)];if(e.length>2){for(let t of a)if(vf(e,t))return true}for(let t=0;t<e.length-1;t++){let n=e[t],r=e[t+1];if(bf(n,r,a))return true}return false}function bf(e,t,n){let r=n[0],i=n[2];if(e.x<r.x&&t.x<r.x||e.x>i.x&&t.x>i.x||e.y<r.y&&t.y<r.y||e.y>i.y&&t.y>i.y)return false;let a=Rt(e,t,n[0]);return a!==Rt(e,t,n[1])||a!==Rt(e,t,n[2])||a!==Rt(e,t,n[3])}var Bf=class extends sf{};K(`HeatmapBucket`,Bf,{omit:[`layers`]});function Wf(e,{width:t,height:n},r,i){if(!i)i=new Uint8Array(t*n*r);else if(i instanceof Uint8ClampedArray)i=new Uint8Array(i.buffer);else if(i.length!==t*n*r)throw RangeError(`mismatched image size. expected: ${i.length} but got: ${t*n*r}`);return e.width=t,e.height=n,e.data=i,e}function Gf(e,{width:t,height:n},r){if(t===e.width&&n===e.height)return;let i=Wf({},{width:t,height:n},r);Kf(e,i,{x:0,y:0},{x:0,y:0},{width:Math.min(e.width,t),height:Math.min(e.height,n)},r),e.width=t,e.height=n,e.data=i.data;}function Kf(e,t,n,r,i,a){if(i.width===0||i.height===0)return t;if(i.width>e.width||i.height>e.height||n.x>e.width-i.width||n.y>e.height-i.height)throw RangeError(`out of range source coordinates for image copy`);if(i.width>t.width||i.height>t.height||r.x>t.width-i.width||r.y>t.height-i.height)throw RangeError(`out of range destination coordinates for image copy`);let o=e.data,s=t.data;if(o===s)throw Error(`srcData equals dstData, so image is already copied`);for(let c=0;c<i.height;c++){let l=((n.y+c)*e.width+n.x)*a,u=((r.y+c)*t.width+r.x)*a;for(let e=0;e<i.width*a;e++)s[u+e]=o[l+e];}return t}var qf=class e{constructor(e,t){Wf(this,e,1,t);}resize(e){Gf(this,e,1);}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){Kf(e,t,n,r,i,1);}},Jf=class e{constructor(e,t){Wf(this,e,4,t);}resize(e){Gf(this,e,4);}replace(e,t){t?this.data.set(e):this.data=e instanceof Uint8ClampedArray?new Uint8Array(e.buffer):e;}clone(){return new e({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(e,t,n,r,i){Kf(e,t,n,r,i,4);}setPixel(e,t,n){let r=(e*this.width+t)*4;this.data[r+0]=Math.round(n.r*255/n.a),this.data[r+1]=Math.round(n.g*255/n.a),this.data[r+2]=Math.round(n.b*255/n.a),this.data[r+3]=Math.round(n.a*255);}};K(`AlphaImage`,qf),K(`RGBAImage`,Jf);var up=class e{static{this.byteViewCache=/* @__PURE__ */ new WeakMap;}constructor(t,n,r,i=1,a=1,o=1,s=0){if(this.uid=t,n.height!==n.width)throw RangeError(`DEM tiles must be square`);if(r&&![`mapbox`,`terrarium`,`custom`].includes(r)){L$1(`"${r}" is not a valid encoding type. Valid types include "mapbox", "terrarium" and "custom".`);return}this.stride=n.height;let c=this.dim=n.height-4;switch(this.data=new Uint32Array(n.data.buffer),e.byteViewCache.set(this,new Uint8Array(this.data.buffer)),r){case `terrarium`:this.redFactor=256,this.greenFactor=1,this.blueFactor=1/256,this.baseShift=32768;break;case `custom`:this.redFactor=i,this.greenFactor=a,this.blueFactor=o,this.baseShift=s;break;default:this.redFactor=6553.6,this.greenFactor=25.6,this.blueFactor=.1,this.baseShift=1e4;}for(let e=-2;e<c+2;e++){let t=this._idx(0,Math.max(0,Math.min(c-1,e)));(e<0||e>=c)&&this.data.copyWithin(this._idx(0,e),t,t+c),this.data.fill(this.data[t],this._idx(-2,e),this._idx(0,e)),this.data.fill(this.data[t+c-1],this._idx(c,e),this._idx(c+1,e)+1);}let l=this._getByteView();this.min=2**53-1,this.max=-9007199254740991;for(let e=0;e<c;e++)for(let t=0;t<c;t++){let n=this._idx(e,t)*4,r=this._unpackAtIndex(l,n);r>this.max&&(this.max=r),r<this.min&&(this.min=r);}}get(e,t){let n=this._getByteView(),r=this._idx(e,t)*4;return this._unpackAtIndex(n,r)}sampleBilinear(e,t){let n=Math.floor(e),r=Math.floor(t);if(n<-1||n>=this.dim||r<-1||r>=this.dim)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);let i=this._getByteView(),a=((r+2)*this.stride+n+2)*4,o=this.stride*4,s=e-n,c=t-r,l=this._unpackAtIndex(i,a),u=this._unpackAtIndex(i,a+4),d=this._unpackAtIndex(i,a+o),f=this._unpackAtIndex(i,a+o+4);return l*(1-s)*(1-c)+u*s*(1-c)+d*(1-s)*c+f*s*c}getUnpackVector(){return [this.redFactor,this.greenFactor,this.blueFactor,this.baseShift]}_idx(e,t){if(e<-2||e>=this.dim+2||t<-2||t>=this.dim+2)throw RangeError(`Out of range source coordinates for DEM data. x: ${e}, y: ${t}, dim: ${this.dim}`);return (t+2)*this.stride+(e+2)}unpack(e,t,n){return e*this.redFactor+t*this.greenFactor+n*this.blueFactor-this.baseShift}pack(e){return dp(e,this.getUnpackVector())}getPixels(){return new Jf({width:this.stride,height:this.stride},this._getByteView())}backfillBorder(e,t,n){if(this.dim!==e.dim)throw Error(`dem dimension mismatch`);let r=t*this.dim,i=t*this.dim+this.dim,a=n*this.dim,o=n*this.dim+this.dim;switch(t){case -1:r=i-2;break;case 1:i=r+2;}switch(n){case -1:a=o-2;break;case 1:o=a+2;}let s=-t*this.dim,c=-n*this.dim;for(let t=a;t<o;t++)for(let n=r;n<i;n++)this.data[this._idx(n,t)]=e.data[this._idx(n+s,t+c)];}_getByteView(){let t=e.byteViewCache.get(this);return t?.buffer!==this.data.buffer&&(t=new Uint8Array(this.data.buffer),e.byteViewCache.set(this,t)),t}_unpackAtIndex(e,t){return this.unpack(e[t],e[t+1],e[t+2])}};function dp(e,t){let n=t[0],r=t[1],i=t[2],a=t[3],o=[n,r,i].filter(e=>e!==0);if(o.length===0)return {r:0,g:0,b:0};let s=Math.min(...o),c=Math.round((e+a)/s),l=e=>e===0?0:Math.floor(c*s/e)%256;return {r:l(n),g:l(r),b:l(i)}}K(`DEMData`,up);const mp=lu([{name:`a_pos`,components:2,type:`Int16`}],4),hp=mp.members;function gp(e,t,n){let r=n.patternDependencies,i=false;for(let n of t){let t=n.paint.get(`${e}-pattern`);t.isConstant()||(i=true);let a=t.constantOr(null);a&&(i=true,r[a.to]=true,r[a.from]=true);}return i}function _p(e,t,n,r,i){let{zoom:a}=r,o=i.patternDependencies;for(let r of t){let t=r.paint.get(`${e}-pattern`).value;if(t.kind!==`constant`){let e=t.evaluate({zoom:a-1},n,{},i.availableImages),s=t.evaluate({zoom:a},n,{},i.availableImages),c=t.evaluate({zoom:a+1},n,{},i.availableImages);e=e?.name?e.name:e,s=s?.name?s.name:s,c=c?.name?c.name:c,o[e]=true,o[s]=true,o[c]=true,n.patterns[r.id]={min:e,mid:s,max:c};}}return n}const vp=/* @__PURE__ */ new Set;let yp=false;function bp(e,t,n=2){let r=t&&t.length,i=r?t[0]*n:e.length;vp.size&&vp.clear();let a=xp(e,0,i,n,true),o=[];if(!a||a.next===a.prev)return o;let s=0,c=0,l=0;if(r&&(a=kp(e,t,a,n)),e.length>80*n){s=e[0],c=e[1];let t=s,r=c;for(let a=n;a<i;a+=n){let n=e[a],i=e[a+1];n<s&&(s=n),i<c&&(c=i),n>t&&(t=n),i>r&&(r=i);}l=Math.max(t-s,r-c),l=l===0?0:32767/l;}return Cp(a,o,s,c,l),o}function xp(e,t,n,r,i){let a=null;if(i===fm(e,t,n,r)>0)for(let i=t;i<n;i+=r)a=lm(i/r|0,e[i],e[i+1],a);else for(let i=n-r;i>=t;i-=r)a=lm(i/r|0,e[i],e[i+1],a);return a&&nm(a,a.next)&&(um(a),a=a.next),a}function Sp(e,t=e){let n=t===e,r=e,i;do i=false,r!==r.next&&(vp.size===0||!vp.has(r))&&(nm(r,r.next)||tm(r.prev,r,r.next)===0)?((n||r===t)&&(t=r.prev),yp=true,um(r),r=r.prev,i=true):(n||r!==t)&&(r=r.next,i=!n);while(i||r!==t);return t}function Cp(e,t,n,r,i){i&&Jp(e,n,r,i);let a=e,o=false;for(;e.prev!==e.next;){let s=e.prev,c=e.next;if(tm(s,e,c)<0&&(i?Tp(e,n,r,i):wp(e)))t.push(s.i,e.i,c.i),um(e),e=c,a=c;else if(e=c,e===a){if(yp=false,e=Sp(e),yp){a=e;continue}if(!o){e=Ep(e,t),a=e,o=true;continue}Dp(e,t,n,r,i);break}}}function wp(e){let t=e.prev,n=e,r=e.next,i=t.x,a=n.x,o=r.x,s=t.y,c=n.y,l=r.y,u=Math.min(i,a,o),d=Math.min(s,c,l),f=Math.max(i,a,o),p=Math.max(s,c,l),m=r.next;for(;m!==t;){if(m.x>=u&&m.x<=f&&m.y>=d&&m.y<=p&&(i!==m.x||s!==m.y)&&$p(i,s,a,c,o,l,m.x,m.y)&&tm(m.prev,m,m.next)>=0)return false;m=m.next;}return true}function Tp(e,t,n,r){let i=e.prev,a=e,o=e.next,s=i.x,c=a.x,l=o.x,u=i.y,d=a.y,f=o.y,p=Math.min(s,c,l),m=Math.min(u,d,f),h=Math.max(s,c,l),g=Math.max(u,d,f),_=Zp(p,m,t,n,r),v=Zp(h,g,t,n,r),y=e.prevZ;for(;y&&y.z>=_;){if(y.x>=p&&y.x<=h&&y.y>=m&&y.y<=g&&y!==o&&(s!==y.x||u!==y.y)&&$p(s,u,c,d,l,f,y.x,y.y)&&tm(y.prev,y,y.next)>=0)return false;y=y.prevZ;}let b=e.nextZ;for(;b&&b.z<=v;){if(b.x>=p&&b.x<=h&&b.y>=m&&b.y<=g&&b!==o&&(s!==b.x||u!==b.y)&&$p(s,u,c,d,l,f,b.x,b.y)&&tm(b.prev,b,b.next)>=0)return false;b=b.nextZ;}return true}function Ep(e,t){let n=e,r=false;do{let i=n.prev,a=n.next.next;rm(i,n,n.next,a,false)&&om(i,a)&&om(a,i)&&(t.push(i.i,n.i,a.i),um(n),um(n.next),n=e=a,r=true),n=n.next;}while(n!==e);return r?Sp(n):n}function Dp(e,t,n,r,i){let a=e;do{let e=a.next.next;for(;e!==a.prev;){if(a.i!==e.i&&em(a,e)){let o=cm(a,e);a=Sp(a,a.next),o=Sp(o,o.next),Cp(a,t,n,r,i),Cp(o,t,n,r,i);return}e=e.next;}a=a.next;}while(a!==e)}let Op=false;function kp(e,t,n,r){let i=[];for(let n=0,a=t.length;n<a;n++){let o=xp(e,t[n]*r,n<a-1?t[n+1]*r:e.length,r,false);o===o.next&&vp.add(o),i.push(Qp(o));}i.sort(Ap),Ip(e.length/r,t.length),Lp(n,n),Op=true;for(let e=0;e<i.length;e++)n=jp(i[e],n);return Op=false,Sp(n)}function Ap(e,t){return e.x-t.x||e.y-t.y||(e.next.y-e.y)/(e.next.x-e.x)-(t.next.y-t.y)/(t.next.x-t.x)}function jp(e,t){let n=Vp(e,t);if(!n)return t;let r=cm(n,e),i=r.next;return Lp(n,i.next),Sp(r,r.next),Sp(n,n.next)}let Mp=/* @__PURE__ */ new Float64Array,Np=0;const Pp=[],Fp=[];function Ip(e,t){let n=Math.ceil((e+2*t)/16)+t+2;Mp.length<n*4&&(Mp=new Float64Array(n*4)),Np=0;}function Lp(e,t){let n=e;do{let e=Np++;Pp[e]=n;let r=n.x,i=n.y,a=n.x,o=n.y,s=0;do{let t=n.next;n.z=e,t.x<r&&(r=t.x),t.x>a&&(a=t.x),t.y<i&&(i=t.y),t.y>o&&(o=t.y),n=t;}while(++s<16&&n!==t);Fp[e]=n;let c=e*4;Mp[c]=r,Mp[c+1]=i,Mp[c+2]=a,Mp[c+3]=o;}while(n!==t)}function Rp(e,t){let n=e.z*4;t.x<Mp[n]&&(Mp[n]=t.x),t.y<Mp[n+1]&&(Mp[n+1]=t.y),t.x>Mp[n+2]&&(Mp[n+2]=t.x),t.y>Mp[n+3]&&(Mp[n+3]=t.y);}function zp(e){let t=Fp[e];for(;t.prev.next!==t;)t=t.next;return Fp[e]=t,t}function Bp(e){let t=Pp[e];for(;t.prev.next!==t;)t=t.next;return Pp[e]=t,t}function Vp(e,t){let n=t,r=e.x,i=e.y,a=-1/0,o;if(nm(e,n))return n;for(let t=0,s=0;t<Np;t++,s+=4){if(i<Mp[s+1]||i>Mp[s+3]||Mp[s]>r||Mp[s+2]<=a)continue;let c=zp(t);n=Bp(t);do{if(n.prev.next===n){if(nm(e,n.next))return n.next;if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let e=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(e<=r&&e>a&&(a=e,o=n.x<n.next.x?n:n.next,e===r))return o}}n=n.next;}while(n!==c)}if(!o)return null;let s=o.x,c=o.y,l=Math.min(i,c),u=Math.max(i,c),d=1/0;for(let t=0,f=0;t<Np;t++,f+=4){if(Mp[f+2]<s||Mp[f]>r||Mp[f+3]<l||Mp[f+1]>u)continue;let p=zp(t);n=Bp(t);do{if(n.prev.next===n&&r>=n.x&&n.x>=s&&r!==n.x&&$p(i<c?r:a,i,s,c,i<c?a:r,i,n.x,n.y)){let t=Math.abs(i-n.y)/(r-n.x);(om(n,e)||n.y===i&&n.next.y===i&&n.next.x>r)&&(t<d||t===d&&(n.x>o.x||n.x===o.x&&Hp(o,n)))&&(o=n,d=t);}n=n.next;}while(n!==p)}return o}function Hp(e,t){return tm(e.prev,e,t.prev)<0&&tm(t.next,e,e.next)<0}const Up=[];let Wp=[],Gp=/* @__PURE__ */ new Uint32Array,Kp=/* @__PURE__ */ new Uint32Array;const qp=/* @__PURE__ */ new Uint32Array(256);function Jp(e,t,n,r){let i=e,a=0;do i.z=Zp(i.x,i.y,t,n,r),Up[a++]=i,i=i.next;while(i!==e);Yp(a);let o=null;for(let e=0;e<a;e++){let t=Up[e];t.prevZ=o,o&&(o.nextZ=t),o=t;}o.nextZ=null,Up.fill(null,0,a),Wp.fill(null,0,a);}function Yp(e){if(e<=32)for(let t=1;t<e;t++){let e=Up[t],n=e.z,r=t-1;for(;r>=0&&Up[r].z>n;)Up[r+1]=Up[r],r--;Up[r+1]=e;}else {Gp.length<e&&(Gp=new Uint32Array(e),Kp=new Uint32Array(e),Wp=Array(e));for(let t=0;t<e;t++)Gp[t]=Up[t].z;Xp(e,Up,Gp,Wp,Kp,0),Xp(e,Wp,Kp,Up,Gp,8),Xp(e,Up,Gp,Wp,Kp,16),Xp(e,Wp,Kp,Up,Gp,24);}}function Xp(e,t,n,r,i,a){qp.fill(0);for(let t=0;t<e;t++)qp[n[t]>>>a&255]++;let o=0;for(let e=0;e<256;e++){let t=qp[e];qp[e]=o,o+=t;}for(let o=0;o<e;o++){let e=n[o],s=qp[e>>>a&255]++;r[s]=t[o],i[s]=e;}}function Zp(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function Qp(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function $p(e,t,n,r,i,a,o,s){return (i-o)*(t-s)>=(e-o)*(a-s)&&(e-o)*(r-s)>=(n-o)*(t-s)&&(n-o)*(a-s)>=(i-o)*(r-s)}function em(e,t){let n=nm(e,t)&&tm(e.prev,e,e.next)>0&&tm(t.prev,t,t.next)>0;return e.next.i!==t.i&&(n||om(e,t)&&om(t,e)&&(tm(e.prev,e,t.prev)!==0||tm(e,t.prev,t)!==0))&&!am(e,t)&&(n||sm(e,t))}function tm(e,t,n){return (t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function nm(e,t){return e.x===t.x&&e.y===t.y}function rm(e,t,n,r,i=true){let a=tm(e,t,n),o=tm(e,t,r),s=tm(n,r,e),c=tm(n,r,t);return (a>0&&o<0||a<0&&o>0)&&(s>0&&c<0||s<0&&c>0)?true:i?!!(a===0&&im(e,n,t)||o===0&&im(e,r,t)||s===0&&im(n,e,r)||c===0&&im(n,t,r)):false}function im(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function am(e,t){let n=Math.min(e.x,t.x),r=Math.max(e.x,t.x),i=Math.min(e.y,t.y),a=Math.max(e.y,t.y),o=e;do{let s=o.next;if(o.x>r&&s.x>r||o.x<n&&s.x<n||o.y>a&&s.y>a||o.y<i&&s.y<i)o=s;else {if(o.i!==e.i&&s.i!==e.i&&o.i!==t.i&&s.i!==t.i&&rm(o,s,e,t))return true;o=s;}}while(o!==e);return false}function om(e,t){return tm(e.prev,e,e.next)<0?tm(e,t,e.next)>=0&&tm(e,e.prev,t)>=0:tm(e,t,e.prev)<0||tm(e,e.next,t)<0}function sm(e,t){let n=e,r=false,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{let e=n.next;n.y>a!=e.y>a&&i<(e.x-n.x)*(a-n.y)/(e.y-n.y)+n.x&&(r=!r),n=e;}while(n!==e);return r}function cm(e,t){let n=dm(e.i,e.x,e.y),r=dm(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function lm(e,t,n,r){let i=dm(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function um(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ),Op&&Rp(e.prev,e.next);}function dm(e,t,n){return {i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null}}function fm(e,t,n,r){let i=0;for(let a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}var pm=class{constructor(e,t){if(t>e)throw Error(`Min granularity must not be greater than base granularity.`);this._baseZoomGranularity=e,this._minGranularity=t;}getGranularityForZoomLevel(e){let t=1<<e;return Math.max(Math.floor(this._baseZoomGranularity/t),this._minGranularity,1)}},mm=class e{constructor(e){this.fill=e.fill,this.line=e.line,this.tile=e.tile,this.stencil=e.stencil,this.circle=e.circle;}static{this.noSubdivision=new e({fill:new pm(0,0),line:new pm(0,0),tile:new pm(0,0),stencil:new pm(0,0),circle:1});}};K(`SubdivisionGranularityExpression`,pm),K(`SubdivisionGranularitySetting`,mm);const hm=-32768,gm=32767;var _m=class{constructor(e,t){this._vertexBuffer=[],this._vertexDictionary=/* @__PURE__ */ new Map,this._used=false,this._granularity=e,this._granularityCellSize=P/e,this._canonical=t;}_getKey(e,t){return e+=32768,t+=32768,e<<16|t}_vertexToIndex(e,t){if(e<-32768||t<-32768||e>32767||t>32767)throw Error(`Vertex coordinates are out of signed 16 bit integer range.`);let n=Math.round(e)|0,r=Math.round(t)|0,i=this._getKey(n,r),a=this._vertexDictionary.get(i);if(a!==void 0)return a;let o=this._vertexBuffer.length/2;return this._vertexDictionary.set(i,o),this._vertexBuffer.push(n,r),o}_subdivideTrianglesScanline(e,t){if(this._granularity<2)return Cm(this._vertexBuffer,Sm(e,t));let n=[],r=e.length;for(let i=0;i<r;i+=3){let r=[t[e[i+0]],t[e[i+1]],t[e[i+2]]],a=[this._vertexBuffer[r[0]*2+0],this._vertexBuffer[r[0]*2+1],this._vertexBuffer[r[1]*2+0],this._vertexBuffer[r[1]*2+1],this._vertexBuffer[r[2]*2+0],this._vertexBuffer[r[2]*2+1]],o=1/0,s=1/0,c=-1/0,l=-1/0;for(let e=0;e<3;e++){let t=a[e*2],n=a[e*2+1];o=Math.min(o,t),c=Math.max(c,t),s=Math.min(s,n),l=Math.max(l,n);}if(o===c||s===l)continue;let u=Math.floor(o/this._granularityCellSize),d=Math.ceil(c/this._granularityCellSize),f=Math.floor(s/this._granularityCellSize),p=Math.ceil(l/this._granularityCellSize);if(u===d&&f===p)n.push(...r);else for(let e=f;e<p;e++){let t=this._scanlineGenerateVertexRingForCellRow(e,a,r);wm(this._vertexBuffer,t,n);}}return n}_scanlineGenerateVertexRingForCellRow(e,t,n){let r=e*this._granularityCellSize,i=r+this._granularityCellSize,a=[];for(let e=0;e<3;e++){let o=t[e*2],s=t[e*2+1],c=t[(e+1)*2%6],l=t[((e+1)*2+1)%6],u=t[(e+2)*2%6],d=t[((e+2)*2+1)%6],f=c-o,p=l-s,m=f===0,h=p===0,g=(r-s)/p,_=(i-s)/p,v=Math.min(g,_),y=Math.max(g,_);if(!h&&(v>=1||y<=0)||h&&(s<r||s>i)){l>=r&&l<=i&&a.push(n[(e+1)%3]);continue}if(!h&&v>0){let e=o+f*v,t=s+p*v;a.push(this._vertexToIndex(e,t));}let b=o+f*Math.max(v,0),x=o+f*Math.min(y,1);if(m||this._generateIntraEdgeVertices(a,o,s,c,l,b,x),!h&&y<1){let e=o+f*y,t=s+p*y;a.push(this._vertexToIndex(e,t));}(h||l>=r&&l<=i)&&a.push(n[(e+1)%3]),!h&&(l<=r||l>=i)&&this._generateInterEdgeVertices(a,o,s,c,l,u,d,x,r,i);}return a}_generateIntraEdgeVertices(e,t,n,r,i,a,o){let s=r-t,c=i-n,l=c===0,u=l?Math.min(t,r):Math.min(a,o),d=l?Math.max(t,r):Math.max(a,o),f=Math.floor(u/this._granularityCellSize)+1,p=Math.ceil(d/this._granularityCellSize)-1;if(l?t<r:a<o)for(let r=f;r<=p;r++){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a));}else for(let r=p;r>=f;r--){let i=r*this._granularityCellSize,a=n+c*(i-t)/s;e.push(this._vertexToIndex(i,a));}}_generateInterEdgeVertices(e,t,n,r,i,a,o,s,c,l){let u=i-n,d=a-r,f=o-i,p=(c-i)/f,m=(l-i)/f,h=Math.min(p,m),g=Math.max(p,m),_=r+d*h,v=Math.floor(Math.min(_,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(_,s)/this._granularityCellSize)-1,b=s<_,x=f===0;if(x&&(o===c||o===l))return;if(x||h>=1||g<=0){let e=t-a,r=n-o,i=(c-o)/r,u=(l-o)/r,d=a+e*Math.min(i,u);v=Math.floor(Math.min(d,s)/this._granularityCellSize)+1,y=Math.ceil(Math.max(d,s)/this._granularityCellSize)-1,b=s<d;}let S=u>0?l:c;if(b)for(let t=v;t<=y;t++){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S));}else for(let t=y;t>=v;t--){let n=t*this._granularityCellSize;e.push(this._vertexToIndex(n,S));}}_generateOutline(e,t){let n=[],r=0;for(let i of e){let e=this._granularity<2?this._ringPathIndices(i,r,t):this._pointArrayToIndices(ym(i,this._granularity,true));r+=i.length;let a=[];for(let t=1;t<e.length;t++)a.push(e[t-1]),a.push(e[t]);n.push(a);}return n}_ringPathIndices(e,t,n){let r=n.slice(t,t+e.length);return r.length>=2&&bm(e)&&r.push(r[0]),r}_handlePoles(e){let t=false,n=false;this._canonical&&(this._canonical.y===0&&(t=true),this._canonical.y===(1<<this._canonical.z)-1&&(n=true)),(t||n)&&this._fillPoles(e,t,n);}_ensureNoPoleVertices(){let e=this._vertexBuffer;for(let t=0;t<e.length;t+=2){let n=e[t+1];n===-32768&&(e[t+1]=-32767),n===32767&&(e[t+1]=32766);}}_generatePoleQuad(e,t,n,r,i,a){r>i==(a===-32768)?(e.push(n),e.push(t),e.push(this._vertexToIndex(r,a)),e.push(this._vertexToIndex(i,a)),e.push(n),e.push(this._vertexToIndex(r,a))):(e.push(t),e.push(n),e.push(this._vertexToIndex(r,a)),e.push(n),e.push(this._vertexToIndex(i,a)),e.push(this._vertexToIndex(r,a)));}_fillPoles(e,t,n){let r=this._vertexBuffer,i=P,a=e.length;for(let o=2;o<a;o+=3){let a=e[o-2],s=e[o-1],c=e[o],l=r[a*2],u=r[a*2+1],d=r[s*2],f=r[s*2+1],p=r[c*2],m=r[c*2+1];t&&(u===0&&f===0&&this._generatePoleQuad(e,a,s,l,d,hm),f===0&&m===0&&this._generatePoleQuad(e,s,c,d,p,hm),m===0&&u===0&&this._generatePoleQuad(e,c,a,p,l,hm)),n&&(u===i&&f===i&&this._generatePoleQuad(e,a,s,l,d,gm),f===i&&m===i&&this._generatePoleQuad(e,s,c,d,p,gm),m===i&&u===i&&this._generatePoleQuad(e,c,a,p,l,gm));}}_initializeVertices(e){let t=[];for(let n=0;n<e.length;n+=2)t.push(this._vertexToIndex(e[n],e[n+1]));return t}subdividePolygonInternal(e,t){if(this._used)throw Error(`Subdivision: multiple use not allowed.`);this._used=true;let{flattened:n,holeIndices:r}=xm(e),i=this._initializeVertices(n),a;try{let e=bp(n,r);a=this._subdivideTrianglesScanline(e,i);}catch(e){console.error(e);}let o=[];return t&&(o=this._generateOutline(e,i)),this._ensureNoPoleVertices(),this._handlePoles(a),this._granularity>=2&&this._canonical?.z===0&&(a=this._removeTrianglesOutsideTileX(a),o=o.map(e=>this._removeLinesOutsideTileX(e))),{verticesFlattened:this._vertexBuffer,indicesTriangles:a,indicesLineList:o}}_vertexOutsideTileX(e){let t=this._vertexBuffer[e*2];return t<0||t>8192}_removeTrianglesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=3)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||this._vertexOutsideTileX(e[n+2])||t.push(e[n],e[n+1],e[n+2]);return t}_removeLinesOutsideTileX(e){let t=[];for(let n=0;n<e.length;n+=2)this._vertexOutsideTileX(e[n])||this._vertexOutsideTileX(e[n+1])||t.push(e[n],e[n+1]);return t}_pointArrayToIndices(e){let t=[];for(let n of e)t.push(this._vertexToIndex(n.x,n.y));return t}};function vm(e,t,n,r=true){return new _m(n,t).subdividePolygonInternal(e,r)}function ym(e,t,n=false){if(!e||e.length<1||e.length<2)return [];let r=n&&bm(e);if(t<2)return r?[...e,e[0]]:[...e];let i=Math.floor(P/t),a=[];a.push(new u(e[0].x,e[0].y));let o=e.length,s=r?o:o-1;for(let t=0;t<s;t++){let n=e[t],r=t<o-1?e[t+1]:e[0],s=n.x,c=n.y,l=r.x,d=r.y,f=s!==l,p=c!==d;if(!f&&!p)continue;let m=l-s,h=d-c,g=Math.abs(m),_=Math.abs(h),v=s,y=c;for(;;){let e=m>0?(Math.floor(v/i)+1)*i:(Math.ceil(v/i)-1)*i,t=h>0?(Math.floor(y/i)+1)*i:(Math.ceil(y/i)-1)*i,n=Math.abs(v-e),r=Math.abs(y-t),o=Math.abs(v-l),s=Math.abs(y-d),c=f?n/g:1/0,b=p?r/_:1/0;if((o<=n||!f)&&(s<=r||!p))break;if(c<b&&f||!p){v=e,y+=h*c;let t=new u(v,Math.round(y));(a[a.length-1].x!==t.x||a[a.length-1].y!==t.y)&&a.push(t);}else {v+=m*b,y=t;let e=new u(Math.round(v),y);(a[a.length-1].x!==e.x||a[a.length-1].y!==e.y)&&a.push(e);}}let b=new u(l,d);(a[a.length-1].x!==b.x||a[a.length-1].y!==b.y)&&a.push(b);}return a}function bm(e){return !e[0].equals(e[e.length-1])}function xm(e){let t=[],n=[];for(let r of e)if(r.length!==0){r!==e[0]&&t.push(n.length/2);for(let e of r)n.push(e.x),n.push(e.y);}return {flattened:n,holeIndices:t}}function Sm(e,t){let n=Array(e.length);for(let r=0;r<e.length;r++)n[r]=t[e[r]];return n}function Cm(e,t){let n=[];for(let r=0;r<t.length;r+=3){let i=t[r],a=t[r+1],o=t[r+2],s=e[i*2],c=e[i*2+1],l=e[a*2],u=e[a*2+1],d=e[o*2],f=e[o*2+1],p=l-s,m=u-c,h=d-s;p*(f-c)-m*h>0?(n.push(i),n.push(o),n.push(a)):(n.push(i),n.push(a),n.push(o));}return n}function wm(e,t,n){if(t.length===0)throw Error(`Subdivision vertex ring is empty.`);let r=0,i=e[t[0]*2];for(let n=1;n<t.length;n++){let a=e[t[n]*2];a<i&&(i=a,r=n);}let a=t.length,o=r,s=(o+1)%a;for(;;){let r=o-1>=0?o-1:a-1,i=(s+1)%a,c=e[t[r]*2],l=e[t[r]*2+1],u=e[t[i]*2],d=e[t[i]*2+1],f=e[t[o]*2],p=e[t[o]*2+1],m=e[t[s]*2],h=e[t[s]*2+1],g=false;if(c<u)g=true;else if(c>u)g=false;else {let e=h-p,t=-(m-f),n=p<h?1:-1;((c-f)*e+(l-p)*t)*n>((u-f)*e+(d-p)*t)*n&&(g=true);}if(g){let e=t[r],i=t[o],c=t[s];e!==i&&e!==c&&i!==c&&n.push(c,i,e),o--,o<0&&(o=a-1);}else {let e=t[i],r=t[o],c=t[s];e!==r&&e!==c&&r!==c&&n.push(c,r,e),s++,s>=a&&(s=0);}if(r===i)break}}function Tm(e,t,n,r,i,a,o,s,c){let l=i.length/2,u=o&&s&&c;if(l<gd.MAX_VERTEX_ARRAY_LENGTH){let d=t.prepareSegment(l,n,r),f=d.vertexLength;for(let e=0;e<a.length;e+=3)r.emplaceBack(f+a[e],f+a[e+1],f+a[e+2]);d.vertexLength+=l,d.primitiveLength+=a.length/3;let p,m;u&&(m=o.prepareSegment(l,n,s),p=m.vertexLength,m.vertexLength+=l);for(let t=0;t<i.length;t+=2)e(i[t],i[t+1]);if(u)for(let e of c){for(let t=1;t<e.length;t+=2)s.emplaceBack(p+e[t-1],p+e[t]);m.primitiveLength+=e.length/2;}}else Dm(t,n,r,i,a,e),u&&Om(o,n,s,i,c,e),t.forceNewSegmentOnNextPrepare(),o?.forceNewSegmentOnNextPrepare();}function Em(e,t,n,r,i,a,o){if(a){let a=r.count;return n(t[i*2],t[i*2+1]),e[i]=r.count,r.count++,o.vertexLength++,a}return e[i]}function Dm(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d=2;d<i.length;d+=3){let f=i[d-2],p=i[d-1],m=i[d],h=o[f]<c,g=o[p]<c,_=o[m]<c,v=+!!h+ +!!g+ +!!_;l.vertexLength+v>gd.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,h=true,g=true,_=true,u=0);let y=Em(o,r,a,s,f,h,l),b=Em(o,r,a,s,p,g,l),x=Em(o,r,a,s,m,_,l);n.emplaceBack(u+y-c,u+b-c,u+x-c),l.primitiveLength++;}}function Om(e,t,n,r,i,a){let o=[];for(let e=0;e<r.length/2;e++)o.push(-1);let s={count:0},c=0,l=e.getOrCreateLatestSegment(t,n),u=l.vertexLength;for(let d of i)for(let i=1;i<d.length;i+=2){let f=d[i-1],p=d[i],m=o[f]<c,h=o[p]<c,g=+!!m+ +!!h;l.vertexLength+g>gd.MAX_VERTEX_ARRAY_LENGTH&&(l=e.createNewSegment(t,n),c=s.count,m=true,h=true,u=0);let _=Em(o,r,a,s,f,m,l),v=Em(o,r,a,s,p,h,l);n.emplaceBack(u+_-c,u+v-c),l.primitiveLength++;}}var km=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.sdfPatterns={},this.patternFeatures=[],this.layoutVertexArray=new Qu,this.indexArray=new dd,this.indexArray2=new fd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.segments2=new gd,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.hasDependencies=gp(`fill`,this.layers,t);let r=this.layers[0].layout.get(`fill-sort-key`),i=!r.isConstant(),a=[],o=new Ll(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:c,id:l,index:u,sourceLayerIndex:d}of e){let e=Qd(c,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let f=i?r.evaluate(e,{},n,t.availableImages):void 0,p={id:l,properties:c.properties,type:c.type,sourceLayerIndex:d,index:u,geometry:s?e.geometry:Zd(c),patterns:{},sortKey:f};a.push(p);}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;if(this.hasDependencies){let e=_p(`fill`,this.layers,r,{zoom:this.zoom},t);this.patternFeatures.push(e);}else this.addFeature(r,i,a,n,{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}addFeatures({options:e,canonical:t,patternPositions:n,patternMap:r}){this.detectSdfPatterns(r);for(let r of this.patternFeatures)this.addFeature(r,r.geometry,r.index,t,n,e.subdivisionGranularity);}detectSdfPatterns(e){for(let t of this.patternFeatures)for(let n in t.patterns){let r=t.patterns[n];this.recordSdfPattern(n,e[r.min]),this.recordSdfPattern(n,e[r.mid]),this.recordSdfPattern(n,e[r.max]);}for(let t of this.layers){let n=t.paint.get(`fill-pattern`).constantOr(null);n&&(this.recordSdfPattern(t.id,e[n.from.toString()]),this.recordSdfPattern(t.id,e[n.to.toString()]));}}recordSdfPattern(e,t){if(!t)return;let n=t.sdf===true,r=this.sdfPatterns[e];r===void 0?this.sdfPatterns[e]=n:r!==n&&L$1(`Style sheet warning: Cannot mix SDF and non-SDF fill patterns in layer "${e}"`);}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,hp),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.indexBuffer2=e.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy());}addFeature(e,t,n,r,i,a){for(let e of Fi(t,500)){let t=vm(e,r,a.fill.getGranularityForZoomLevel(r.z)),n=this.layoutVertexArray;Tm((e,t)=>{n.emplaceBack(e,t);},this.segments,this.layoutVertexArray,this.indexArray,t.verticesFlattened,t.indicesTriangles,this.segments2,this.indexArray2,t.indicesLineList);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r});}};K(`FillBucket`,km,{omit:[`layers`,`patternFeatures`]});const Lm=lu([{name:`a_pos`,components:2,type:`Int16`},{name:`a_normal_ed`,components:4,type:`Int16`}],4),Rm=lu([{name:`a_centroid`,components:2,type:`Int16`}],4),zm=Lm.members;var Bm=class{constructor(e,t,n,r,i){for(this.properties=Object.create(null),this.extent=n,this.type=0,this.id=void 0,this._pbf=e,this._geometry=-1,this._keys=r,this._values=i;e.pos<t;){let t=e.readVarint();if(t===8)this.id=e.readVarint();else if(t===18){let t=e.readVarint()+e.pos;for(;e.pos<t;){let t=r[e.readVarint()],n=i[e.readVarint()];this.properties[t]=n;}}else t===24?this.type=e.readVarint():(t===34&&(this._geometry=e.pos),e.skip(t));}}loadGeometry(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=[],r,i=1,a=0,o=0,s=0;for(;e.pos<t;){if(a<=0){let t=e.readVarint();if(i=t&7,a=t>>3,a===0)continue}if(a--,i===1)o+=e.readSVarint(),s+=e.readSVarint(),r&&n.push(r),r=[new u(o,s)];else if(i===2)o+=e.readSVarint(),s+=e.readSVarint(),r&&r.push(new u(o,s));else if(i===7)r&&r.push(r[0].clone());else throw Error(`unknown command ${i}`)}return r&&n.push(r),n}bbox(){if(this._geometry<0)throw Error(`feature has no geometry`);let e=this._pbf;e.pos=this._geometry;let t=e.readVarint()+e.pos,n=1,r=0,i=0,a=0,o=1/0,s=-1/0,c=1/0,l=-1/0;for(;e.pos<t;){if(r<=0){let t=e.readVarint();if(n=t&7,r=t>>3,r===0)continue}if(r--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),i<o&&(o=i),i>s&&(s=i),a<c&&(c=a),a>l&&(l=a);else if(n!==7)throw Error(`unknown command ${n}`)}return [o,c,s,l]}toGeoJSON(e,t,n){let r=this.extent*2**n,i=this.extent*e,a=this.extent*t,o=this.loadGeometry();function s(e){return [(e.x+i)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+a)*2/r)*Math.PI))-90]}function c(e){return e.map(s)}let l;if(this.type===1){let e=[];for(let t of o)e.push(t[0]);let t=c(e);l=e.length===1?{type:`Point`,coordinates:t[0]}:{type:`MultiPoint`,coordinates:t};}else if(this.type===2){let e=o.map(c);l=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};}else if(this.type===3){let e=Vm(o),t=[];for(let n of e)t.push(n.map(c));l=t.length===1?{type:`Polygon`,coordinates:t[0]}:{type:`MultiPolygon`,coordinates:t};}else throw Error(`unknown feature type`);let u={type:`Feature`,geometry:l,properties:this.properties};return this.id!=null&&(u.id=this.id),u}};Bm.types=[`Unknown`,`Point`,`LineString`,`Polygon`];function Vm(e){let t=e.length;if(t<=1)return [e];let n=[],r,i;for(let a=0;a<t;a++){let t=Hm(e[a]);t!==0&&(i===void 0&&(i=t<0),i===t<0?(r&&n.push(r),r=[e[a]]):r&&r.push(e[a]));}return r&&n.push(r),n}function Hm(e){let t=0;for(let n=0,r=e.length,i=r-1,a,o;n<r;i=n++)a=e[n],o=e[i],t+=(o.x-a.x)*(a.y+o.y);return t}var Um=class{constructor(e,t){for(this.version=1,this.name=``,this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],t===void 0&&(t=e.length);e.pos<t;){let t=e.readVarint();t===10?this.name=e.readString():t===18?(this._features.push(e.pos),e.skip(t)):t===26?this._keys.push(e.readString()):t===34?this._values.push(Wm(e)):t===40?this.extent=e.readVarint():t===120?this.version=e.readVarint():e.skip(t);}this.length=this._features.length;}feature(e){if(e<0||e>=this._features.length)throw Error(`feature index out of bounds`);this._pbf.pos=this._features[e];let t=this._pbf.readVarint()+this._pbf.pos;return new Bm(this._pbf,t,this.extent,this._keys,this._values)}};function Wm(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let n=e.readVarint();t=n===10?e.readString():n===21?e.readFloat():n===25?e.readDouble():n===32?e.readVarint(true):n===40?e.readVarint():n===48?e.readSVarint():n===56?e.readBoolean():(e.skip(n),null);}if(t==null)throw Error(`unknown feature value`);return t}var Gm=class{constructor(e,t=e.length){let n=Object.create(null);for(;e.pos<t;){let t=e.readVarint();if(t===26){let t=new Um(e,e.readVarint()+e.pos);t.length&&(n[t.name]=t);}else e.skip(t);}this.layers=n;}};const Km=6371008.8;var Q=class e{constructor(e,t){if(isNaN(e)||isNaN(t))throw Error(`Invalid LngLat object: (${e}, ${t})`);if(this.lng=+e,this.lat=+t,this.lat>90||this.lat<-90)throw Error(`Invalid LngLat latitude value: must be between -90 and 90`)}wrap(){return new e(wt(this.lng,-180,180),this.lat)}toArray(){return [this.lng,this.lat]}toString(){return `LngLat(${this.lng}, ${this.lat})`}distanceTo(e){let t=Math.PI/180,n=this.lat*t,r=e.lat*t,i=Math.sin(n)*Math.sin(r)+Math.cos(n)*Math.cos(r)*Math.cos((e.lng-this.lng)*t);return Km*Math.acos(Math.min(i,1))}static convert(t){if(t instanceof e)return t;if(Array.isArray(t)&&(t.length===2||t.length===3))return new e(Number(t[0]),Number(t[1]));if(!Array.isArray(t)&&typeof t==`object`&&t)return new e(Number(`lng`in t?t.lng:t.lon),Number(t.lat));throw Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")}};const qm=6378137,Jm={origin:[-Math.PI*qm,Math.PI*qm],extentAtZoom0:2*Math.PI*qm},Ym=2*Math.PI*Km;function Xm(e){return Ym*Math.cos(e*Math.PI/180)}function Zm(e){return (180+e)/360}function Qm(e){return (180-180/Math.PI*Math.log(Math.tan(Math.PI/4+e*Math.PI/360)))/360}function $m(e,t){return e/Xm(t)}function eh(e){return e*360-180}function th(e){let t=180-e*360;return 360/Math.PI*Math.atan(Math.exp(t*Math.PI/180))-90}function nh(e,t){return e*Xm(th(t))}function rh(e){return 1/Math.cos(e*Math.PI/180)}var ih=class e{constructor(e,t,n=0){this.x=+e,this.y=+t,this.z=+n;}static fromLngLat(t,n=0){let r=Q.convert(t);return new e(Zm(r.lng),Qm(r.lat),$m(n,r.lat))}toLngLat(){return new Q(eh(this.x),th(this.y))}toAltitude(){return nh(this.z,this.y)}meterInMercatorCoordinateUnits(){return 1/Ym*rh(th(this.y))}};const ah=new class{constructor(){this.name=`mercator`,this.wraps=true,this.tileMatrixSet=Jm;}worldFromLngLat(e,t,n){return new ih(Zm(e),Qm(t),n===void 0?0:$m(n,t))}lngLatFromWorld(e,t){return new Q(eh(e),th(t))}hasLngLat(e,t){return true}metersPerWorldUnit(e,t){return 1/(1/Ym*rh(th(t)))}worldZFromAltitude(e,t){return $m(e,t.lat)}};function sh(e,t,n){let r=1/(1<<n.z);return new ih(e/P*r+n.x*r,t/P*r+n.y*r)}function ch(e,t,n){return sh(e,t,n).toLngLat()}function xh(e,t){return t<=0||!e||e.length===0?e:e.map(e=>Eh(e,t))}function Sh(e,t){let n=ch(P/2,P/2,t),r=ih.fromLngLat(n).meterInMercatorCoordinateUnits(),i=(1<<t.z)*P;return e*r*i}const Ch=Math.cos(35*Math.PI/180);function wh(e){let t=[null];for(let n=1;n<e.length;n++){let r=e[n].sub(e[n-1]),i=!tf(e[n],e[n-1])&&r.mag()>0;t.push(i?r._perp():null);}let n=e.length-1,r=n>1&&e[0].equals(e[n]),i=[null];for(let e=1;e<=n;e++){let a=t[e];if(!a){i.push(null);continue}let o=r&&e===1?t[n]:t[e-1],s=r&&e===n?t[1]:t[e+1];i.push({start:Th(a,o),end:Th(a,s)});}return i}function Th(e,t){if(!t)return e.unit();let n=e.mag(),r=t.mag();return e.x*t.x+e.y*t.y<Ch*n*r||n>=2*r?e.unit():r>=2*n?t.unit():e.add(t)._unit()}function Eh(e,t){if(!e||e.length<3)return e;let n=e[0].x===e[e.length-1].x&&e[0].y===e[e.length-1].y,r=n?e.length-1:e.length;if(r<3)return e;let i=[],a=tf(e[r-1],e[0]);for(let n=0;n<r;n++){let o=e[(n-1+r)%r],s=e[n],c=e[(n+1)%r],l=tf(s,c);a||l?i.push(s.clone()):Oh(i,o,s,c,t),a=l;}let o=Dh(i);return o.length<3?e:(n&&o.push(o[0].clone()),o)}function Dh(e){let t=[];for(let n of e){let e=n.round(),r=t[t.length-1];(r?.x!==e.x||r?.y!==e.y)&&t.push(e);}for(;t.length>1&&t[0].x===t[t.length-1].x&&t[0].y===t[t.length-1].y;)t.pop();return t}function Oh(e,t,n,r,i){let a=t.sub(n),o=r.sub(n),s=a.mag(),c=o.mag();if(s<1e-6||c<1e-6){e.push(n.clone());return}a._div(s),o._div(c);let l=a.x*o.x+a.y*o.y;if(Math.abs(l)>Math.cos(5*Math.PI/180)){e.push(n.clone());return}let u=.2,d=Math.min(i,s*u,c*u),f=n.add(a.mult(d)),p=n.add(o.mult(d)),m=Math.sqrt((1+l)/2),h=n.add(a.add(o)._unit()._mult(d/m)),g=f.sub(h).angleWith(p.sub(h)),_=Math.max(2,Math.ceil(Math.abs(g)/(Math.PI/6)-1e-6));for(let t=0;t<=_;t++)e.push(f.rotateAround(t/_*g,h));}const kh=8192;function Ah(e,t,n,r,i,a,o,s){e.emplaceBack(t,n,Math.floor(r*kh)*2+o,i*kh*2,a*kh*2,Math.round(s));}var jh=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.layoutVertexArray=new $u,this.centroidVertexArray=new Ju,this.indexArray=new dd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.features=[],this.hasDependencies=gp(`fill-extrusion`,this.layers,t);let r=new Ll(this.zoom),i=this.layers[0],a=i.layout.get(`fill-extrusion-rounded-corner-distance`),o=a>0?Sh(a,n):0,s=i._featureFilter.needGeometry;for(let{feature:a,id:c,index:l,sourceLayerIndex:u}of e){let e=Qd(a,s);if(!i._featureFilter.filter(r,e,n))continue;let d={id:c,sourceLayerIndex:u,index:l,geometry:xh(s?e.geometry:Zd(a),o),properties:a.properties,type:a.type,patterns:{}};this.hasDependencies?this.features.push(_p(`fill-extrusion`,this.layers,d,{zoom:this.zoom},t)):this.addFeature(d,d.geometry,l,n,{},t.subdivisionGranularity),t.featureIndex.insert(a,d.geometry,l,u,this.index,true);}}addFeatures({options:e,canonical:t,patternPositions:n}){for(let r of this.features){let{geometry:i}=r;this.addFeature(r,i,r.index,t,n,e.subdivisionGranularity);}}update(e,t,n){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n});}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,zm),this.centroidVertexBuffer=e.createVertexBuffer(this.centroidVertexArray,Rm.members,true),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy());}addFeature(e,t,n,r,i,a){for(let n of Fi(t,500)){let t={x:0,y:0,sampleCount:0},i=this.layoutVertexArray.length;this.processPolygon(t,r,e,n,a);let o=this.layoutVertexArray.length-i,s=Math.floor(t.x/t.sampleCount),c=Math.floor(t.y/t.sampleCount);for(let e=0;e<o;e++)this.centroidVertexArray.emplaceBack(s,c);}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,canonical:r});}processPolygon(e,t,n,r,i){if(r.length<1||nf(r[0]))return;for(let t of r)t.length!==0&&Mh(e,t);let a={segment:this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray)},o=i.fill.getGranularityForZoomLevel(t.z),s=Bm.types[n.type]===`Polygon`;for(let e of r){if(e.length===0||nf(e))continue;let t=ym(e,o,s);this._generateSideFaces(t,a);}if(!s)return;let c=vm(r,t,o,false),l=this.layoutVertexArray;Tm((e,t)=>{Ah(l,e,t,0,0,1,1,0);},this.segments,this.layoutVertexArray,this.indexArray,c.verticesFlattened,c.indicesTriangles);}_generateSideFaces(e,t){let n=0,r=this.layers[0].layout.get(`fill-extrusion-rounded-corner-distance`)>0?wh(e):null;for(let i=1;i<e.length;i++){let a=e[i],o=e[i-1];if(tf(a,o)||r&&!r[i])continue;t.segment.vertexLength+4>gd.MAX_VERTEX_ARRAY_LENGTH&&(t.segment=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let s=a.sub(o)._perp()._unit(),{start:c,end:l}=r?r[i]:{start:s,end:s},u=o.dist(a);n+u>32768&&(n=0),Ah(this.layoutVertexArray,a.x,a.y,l.x,l.y,0,0,n),Ah(this.layoutVertexArray,a.x,a.y,l.x,l.y,0,1,n),n+=u,Ah(this.layoutVertexArray,o.x,o.y,c.x,c.y,0,0,n),Ah(this.layoutVertexArray,o.x,o.y,c.x,c.y,0,1,n);let d=t.segment.vertexLength;this.indexArray.emplaceBack(d,d+2,d+1),this.indexArray.emplaceBack(d+1,d+2,d+3),t.segment.vertexLength+=4,t.segment.primitiveLength+=2;}}};function Mh(e,t){for(let n=0;n<t.length;n++){let r=t[n];(n!==t.length-1||t[0].x!==r.x||t[0].y!==r.y)&&(e.x+=r.x,e.y+=r.y,e.sampleCount++);}}K(`FillExtrusionBucket`,jh,{omit:[`layers`,`features`]});const qh=lu([{name:`a_pos_normal`,components:2,type:`Int16`},{name:`a_data`,components:4,type:`Uint8`},{name:`a_offset_normal`,components:2,type:`Int8`}],2),Jh=qh.members;const Yh=lu([{name:`a_uv_x`,components:1,type:`Float32`},{name:`a_split_index`,components:1,type:`Float32`}]),Xh=Yh.members;const Zh=Math.cos(75/2*(Math.PI/180)),Qh=1/2,$h=2**14/Qh;var eg=class{constructor(e){this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.hasDependencies=false,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={};for(let e of this.layers)this.gradients[e.id]={};this.layoutVertexArray=new ed,this.layoutVertexArray2=new td,this.indexArray=new dd,this.programConfigurations=new Gd(e.layers,e.zoom),this.segments=new gd,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id);}populate(e,t,n){this.hasDependencies=gp(`line`,this.layers,t)||this.hasLineDasharray(this.layers);let r=this.layers[0].layout.get(`line-sort-key`),i=!r.isConstant(),a=[],o=new Ll(this.zoom),s=this.layers[0]._featureFilter.needGeometry;for(let{feature:t,id:c,index:l,sourceLayerIndex:u}of e){let e=Qd(t,s);if(!this.layers[0]._featureFilter.filter(o,e,n))continue;let d=i?r.evaluate(e,{},n):void 0,f={id:c,properties:t.properties,type:t.type,sourceLayerIndex:u,index:l,geometry:s?e.geometry:Zd(t),patterns:{},dashes:{},sortKey:d};a.push(f);}i&&a.sort((e,t)=>e.sortKey-t.sortKey);for(let r of a){let{geometry:i,index:a,sourceLayerIndex:o}=r;this.hasDependencies?(gp(`line`,this.layers,t)?_p(`line`,this.layers,r,{zoom:this.zoom},t):this.hasLineDasharray(this.layers)&&this.addLineDashDependencies(this.layers,r,this.zoom,t),this.patternFeatures.push(r)):this.addFeature(r,i,a,n,{},{},t.subdivisionGranularity);let s=e[a].feature;t.featureIndex.insert(s,i,a,o,this.index);}}update(e,t,n,r){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(e,t,this.stateDependentLayers,{imagePositions:n,dashPositions:r});}addFeatures({options:e,canonical:t,patternPositions:n,dashPositions:r}){for(let i of this.patternFeatures)this.addFeature(i,i.geometry,i.index,t,n,r,e.subdivisionGranularity);}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return !this.uploaded||this.programConfigurations.needsUpload}upload(e){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=e.createVertexBuffer(this.layoutVertexArray2,Xh)),this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,Jh),this.indexBuffer=e.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(e),this.uploaded=true;}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy());}lineFeatureClips(e){if(e.properties&&Object.hasOwn(e.properties,`geojsonvt_clip_start`)&&Object.hasOwn(e.properties,`geojsonvt_clip_end`))return {start:+e.properties.geojsonvt_clip_start,end:+e.properties.geojsonvt_clip_end}}addFeature(e,t,n,r,i,a,o){let s=this.layers[0].layout,c=s.get(`line-join`).evaluate(e,{}),l=s.get(`line-cap`).evaluate(e,{}),u=s.get(`line-miter-limit`).evaluate(e,{}),d=s.get(`line-round-limit`).evaluate(e,{});this.lineClips=this.lineFeatureClips(e);for(let n of t)this.addLine(n,e,c,l,u,d,r,o);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,e,n,{imagePositions:i,dashPositions:a,canonical:r});}addLine(e,t,n,r,i,a,o,s){this.distance=0,this.scaledDistance=0,this.totalDistance=0;let c=o?s.line.getGranularityForZoomLevel(o.z):1;if(e=ym(e,c),this.lineClips){this.lineClipsArray.push(this.lineClips);for(let t=0;t<e.length-1;t++)this.totalDistance+=e[t].dist(e[t+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance);}let l=Bm.types[t.type]===`Polygon`,u=e.length;for(;u>=2&&e[u-1].equals(e[u-2]);)u--;let d=0;for(;d<u-1&&e[d].equals(e[d+1]);)d++;if(u-d<(l?3:2))return;n===`bevel`&&(i=1.05);let f=this.overscaling<=16?15*P/(512*this.overscaling):0,p=this.segments.prepareSegment(u*10,this.layoutVertexArray,this.indexArray),m,h,g,_,v;this.e1=this.e2=-1,l&&(m=e[u-2],v=e[d].sub(m)._unit()._perp());for(let t=d;t<u;t++){if(g=t===u-1?l?e[d+1]:void 0:e[t+1],g&&e[t].equals(g))continue;v&&(_=v),m&&(h=m),m=e[t],v=g?g.sub(m)._unit()._perp():_,_||=v;let o=_.add(v);(o.x!==0||o.y!==0)&&o._unit();let s=_.x*v.x+_.y*v.y,c=o.x*v.x+o.y*v.y,y=c===0?1/0:1/c,b=2*Math.sqrt(2-2*c),x=c<Zh&&h&&g,S=_.x*v.y-_.y*v.x>0,C=o.mult(Math.min(y,2)),w=F((y-3)/5,0,1);if(x&&t>d){let e=m.dist(h);if(e>2*f){let t=m.sub(m.sub(h)._mult(f/e)._round());this.updateDistance(h,t),this.addCurrentVertex(t,_,0,0,p),h=t;}}let T=h&&g,E=T?n:l?`butt`:r;if(T&&E===`round`&&(y<a?E=`miter`:y<=2&&(E=`fakeround`)),E===`miter`&&y>i&&(E=`bevel`),E===`bevel`&&(y>2&&(E=`flipbevel`),y<i&&(E=`miter`)),h&&this.updateDistance(h,m),E===`miter`)o._mult(y),this.addCurrentVertex(m,o,0,0,p,false,C);else if(E===`flipbevel`){if(y>100)o=v.mult(-1);else {let e=y*_.add(v).mag()/_.sub(v).mag();o._perp()._mult(e*(S?-1:1));}this.addCurrentVertex(m,o,0,0,p,false,C,w),this.addCurrentVertex(m,o.mult(-1),0,0,p,false,C,w);}else if(E===`bevel`||E===`fakeround`){let e=-Math.sqrt(y*y-1),t=S?e:0,n=S?0:e;if(h&&this.addCurrentVertex(m,_,t,n,p,false,C),E===`fakeround`){let e=Math.round(b*180/Math.PI/20);for(let t=1;t<e;t++){let n=t/e;if(n!==.5){let e=n-.5,t=1.0904+s*(-3.2452+s*(3.55645-s*1.43519)),r=.848013+s*(-1.06021+s*.215638);n+=n*e*(n-1)*(t*e*e+r);}let r=v.sub(_)._mult(n)._add(_)._unit()._mult(S?-1:1);this.addHalfVertex(m,r.x,r.y,S?-C.x:C.x,S?-C.y:C.y,false,S,p);}}g&&this.addCurrentVertex(m,v,-t,-n,p,false,C);}else if(E===`butt`)this.addCurrentVertex(m,o,0,0,p,false,C);else if(E===`square`){let e=h?1:-1;this.addCurrentVertex(m,o,e,e,p,false,C);}else E===`round`&&(h&&(this.addCurrentVertex(m,_,0,0,p,false,C,w),this.addCurrentVertex(m,_,1,1,p,true,C,w)),g&&(this.addCurrentVertex(m,v,-1,-1,p,true,C,w),this.addCurrentVertex(m,v,0,0,p,false,C,w)));if(x&&t<u-1){let e=m.dist(g);if(e>2*f){let t=m.add(g.sub(m)._mult(f/e)._round());this.updateDistance(m,t),this.addCurrentVertex(t,v,0,0,p),m=t;}}}}addCurrentVertex(e,t,n,r,i,a=false,o=t,s=0){let c=t.x+t.y*n,l=t.y-t.x*n,u=-t.x+t.y*r,d=-t.y-t.x*r,f=o.x+(t.x-o.x)*s,p=o.y+(t.y-o.y)*s;this.addHalfVertex(e,c,l,f,p,a,false,i),this.addHalfVertex(e,u,d,-f,-p,a,true,i),this.distance>$h/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(e,t,n,r,i,a,o,s));}addHalfVertex({x:e,y:t},n,r,i,a,o,s,c){let l=(this.lineClips?this.scaledDistance*($h-1):this.scaledDistance)*Qh;if(this.layoutVertexArray.emplaceBack((e<<1)+ +!!o,(t<<1)+ +!!s,Math.round(63*n)+128,Math.round(63*r)+128,(l&63)<<2,l>>6,Math.round(63*i),Math.round(63*a)),this.lineClips){let e=(this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start);this.layoutVertexArray2.emplaceBack(e,this.lineClipsArray.length);}let u=c.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,u,this.e2),c.primitiveLength++),s?this.e2=u:this.e1=u;}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance;}updateDistance(e,t){this.distance+=e.dist(t),this.updateScaledDistance();}hasLineDasharray(e){for(let t of e){let e=t.paint.get(`line-dasharray`);if(e&&!e.isConstant())return true}return false}addLineDashDependencies(e,t,n,r){for(let i of e){let e=i.paint.get(`line-dasharray`);if(!e||e.value.kind===`constant`)continue;let a=i.layout.get(`line-cap`).evaluate(t,{})===`round`,o={dasharray:e.value.evaluate({zoom:n-1},t,{}),round:a},s={dasharray:e.value.evaluate({zoom:n},t,{}),round:a},c={dasharray:e.value.evaluate({zoom:n+1},t,{}),round:a},l=`${o.dasharray.join(`,`)},${o.round}`,u=`${s.dasharray.join(`,`)},${s.round}`,d=`${c.dasharray.join(`,`)},${c.round}`;r.dashDependencies[l]=o,r.dashDependencies[u]=s,r.dashDependencies[d]=c,t.dashes[i.id]={min:l,mid:u,max:d};}}};K(`LineBucket`,eg,{omit:[`layers`,`patternFeatures`]});const dg=lu([{name:`a_pos_offset`,components:4,type:`Int16`},{name:`a_data`,components:4,type:`Uint16`},{name:`a_pixeloffset`,components:4,type:`Int16`},{name:`a_height_offset`,components:1,type:`Float32`}],4),fg=lu([{name:`a_projected_pos`,components:3,type:`Float32`}],4);lu([{name:`a_fade_opacity`,components:1,type:`Uint32`}],4);const pg=lu([{name:`a_placed`,components:2,type:`Uint8`},{name:`a_shift`,components:2,type:`Float32`},{name:`a_box_real`,components:2,type:`Int16`}]);lu([{type:`Int16`,name:`anchorPointX`},{type:`Int16`,name:`anchorPointY`},{type:`Int16`,name:`x1`},{type:`Int16`,name:`y1`},{type:`Int16`,name:`x2`},{type:`Int16`,name:`y2`},{type:`Uint32`,name:`featureIndex`},{type:`Uint16`,name:`sourceLayerIndex`},{type:`Uint16`,name:`bucketIndex`}]);const mg=lu([{name:`a_pos`,components:2,type:`Int16`},{name:`a_anchor_pos`,components:2,type:`Int16`},{name:`a_extrude`,components:2,type:`Int16`}],4);lu([{name:`a_pos`,components:2,type:`Float32`},{name:`a_radius`,components:1,type:`Float32`},{name:`a_flags`,components:2,type:`Int16`}],4);lu([{name:`triangle`,components:3,type:`Uint16`}]),lu([{type:`Int16`,name:`anchorX`},{type:`Int16`,name:`anchorY`},{type:`Uint16`,name:`glyphStartIndex`},{type:`Uint16`,name:`numGlyphs`},{type:`Uint32`,name:`vertexStartIndex`},{type:`Uint32`,name:`lineStartIndex`},{type:`Uint32`,name:`lineLength`},{type:`Uint16`,name:`segment`},{type:`Uint16`,name:`lowerSize`},{type:`Uint16`,name:`upperSize`},{type:`Float32`,name:`lineOffsetX`},{type:`Float32`,name:`lineOffsetY`},{type:`Uint8`,name:`writingMode`},{type:`Uint8`,name:`placedOrientation`},{type:`Uint8`,name:`hidden`},{type:`Uint32`,name:`crossTileID`},{type:`Int16`,name:`associatedIconIndex`},{type:`Float32`,name:`heightOffset`}]);const gg=lu([{type:`Int16`,name:`anchorX`},{type:`Int16`,name:`anchorY`},{type:`Int16`,name:`rightJustifiedTextSymbolIndex`},{type:`Int16`,name:`centerJustifiedTextSymbolIndex`},{type:`Int16`,name:`leftJustifiedTextSymbolIndex`},{type:`Int16`,name:`verticalPlacedTextSymbolIndex`},{type:`Int16`,name:`placedIconSymbolIndex`},{type:`Int16`,name:`verticalPlacedIconSymbolIndex`},{type:`Uint16`,name:`key`},{type:`Uint16`,name:`textBoxStartIndex`},{type:`Uint16`,name:`textBoxEndIndex`},{type:`Uint16`,name:`verticalTextBoxStartIndex`},{type:`Uint16`,name:`verticalTextBoxEndIndex`},{type:`Uint16`,name:`iconBoxStartIndex`},{type:`Uint16`,name:`iconBoxEndIndex`},{type:`Uint16`,name:`verticalIconBoxStartIndex`},{type:`Uint16`,name:`verticalIconBoxEndIndex`},{type:`Uint16`,name:`featureIndex`},{type:`Uint16`,name:`numHorizontalGlyphVertices`},{type:`Uint16`,name:`numVerticalGlyphVertices`},{type:`Uint16`,name:`numIconVertices`},{type:`Uint16`,name:`numVerticalIconVertices`},{type:`Uint16`,name:`useRuntimeCollisionCircles`},{type:`Uint32`,name:`crossTileID`},{type:`Float32`,name:`textBoxScale`},{type:`Float32`,name:`collisionCircleDiameter`},{type:`Uint16`,name:`textAnchorOffsetStartIndex`},{type:`Uint16`,name:`textAnchorOffsetEndIndex`},{type:`Float32`,name:`heightOffset`}]);lu([{type:`Float32`,name:`offsetX`}]),lu([{type:`Int16`,name:`x`},{type:`Int16`,name:`y`},{type:`Int16`,name:`tileUnitDistanceFromAnchor`}]),lu([{type:`Uint16`,name:`textAnchor`},{type:`Float32`,components:2,name:`textOffset`}]);const _g=new class{constructor(){this.TIMEOUT=5e3,this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus=`unavailable`,this.pluginURL=null,this.loadScriptResolve=()=>{};}setState(e){this.pluginStatus=e.pluginStatus,this.pluginURL=e.pluginURL;}getState(){return {pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(e){if(_g.isParsed())throw Error(`RTL text plugin already registered.`);this.applyArabicShaping=e.applyArabicShaping,this.processBidirectionalText=e.processBidirectionalText,this.processStyledBidirectionalText=e.processStyledBidirectionalText,this.loadScriptResolve();}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getRTLTextPluginStatus(){return this.pluginStatus}async syncState(e,t){if(this.isParsed())return this.getState();if(e.pluginStatus!==`loading`)return this.setState(e),e;let n=e.pluginURL,r=new Promise(e=>{this.loadScriptResolve=e;}),i=new Promise(e=>setTimeout(()=>e(),this.TIMEOUT));if(await t(n),await Promise.race([r,i]),this.isParsed()){let e={pluginStatus:`loaded`,pluginURL:n};return this.setState(e),e}throw this.setState({pluginStatus:`error`,pluginURL:``}),Error(`RTL Text Plugin failed to import scripts from ${n}`)}};function vg(e){return /[\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u070D\u070F-\u074A\u074D-\u077F\u07C0-\u07FA\u07FD-\u07FF\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u08E1\u08E3-\u08FF\u1800\u1801\u1804\u1806-\u1819\u1820-\u1878\u1880-\u18AA\uA840-\uA877\uFB50-\uFD3D\uFD40-\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC]|\uD802[\uDEC0-\uDEE6\uDEEB-\uDEF6\uDF80-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDD00-\uDD27\uDD30-\uDD39\uDE60-\uDE7E\uDEC2-\uDEC7\uDED0-\uDED8\uDEFA-\uDEFF\uDF30-\uDF59\uDF70-\uDF89\uDFB0-\uDFCB]|\uD805[\uDE60-\uDE6C]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C-\uDC9F]|\uD83A[\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]/gim.test(String.fromCodePoint(e))}function yg(e){return /[\u0591-\u05C7\u05D0-\u05EA\u05EF-\u05F4\u0600-\u0604\u0606-\u060B\u060D-\u061A\u061C-\u061E\u0620-\u063F\u0641-\u064A\u0656-\u066F\u0671-\u06DC\u06DE-\u070D\u070F-\u074A\u074D-\u07B1\u07C0-\u07FA\u07FD-\u082D\u0830-\u083E\u0840-\u085B\u085E\u0860-\u086A\u0870-\u0891\u0897-\u08E1\u08E3-\u08FF\uFB1D-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFD3D\uFD40-\uFDCF\uFDF0-\uFDFF\uFE70-\uFE74\uFE76-\uFEFC]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC57-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD1F-\uDD39\uDD3F-\uDD59\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE38-\uDE3A\uDE3F-\uDE48\uDE50-\uDE58\uDE60-\uDE9F\uDEC0-\uDEE6\uDEEB-\uDEF6\uDF00-\uDF35\uDF39-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDD27\uDD30-\uDD39\uDD40-\uDD65\uDD69-\uDD85\uDD8E\uDD8F\uDE60-\uDE7E\uDE80-\uDEA9\uDEAB-\uDEAD\uDEB0\uDEB1\uDEC2-\uDEC7\uDED0-\uDED8\uDEFA-\uDF27\uDF30-\uDF59\uDF70-\uDF89\uDFB0-\uDFCB\uDFE0-\uDFF6]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCD6\uDD00-\uDD4B\uDD50-\uDD59\uDD5E\uDD5F]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB\uDEF0\uDEF1]/gim.test(String.fromCodePoint(e))}function Sg(e){return /[\u02EA\u02EB\u2E80-\u2FDF\u2FF0-\u303F\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FD-\u30FF\u3105-\u312F\u31A0-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uF900-\uFA6D\uFA70-\uFAD9\uFE10-\uFE1F\uFE30-\uFE4F\uFF00-\uFFEF]|\uD81B[\uDFE0-\uDFFF]|[\uD81C-\uD822\uD840-\uD868\uD86A-\uD86D\uD86F-\uD872\uD874-\uD879\uD880-\uD883\uD885-\uD88C][\uDC00-\uDFFF]|\uD823[\uDC00-\uDCD5\uDCFF-\uDD1E\uDD80-\uDDF2]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFB]|\uD83C[\uDE00-\uDEFF]|\uD869[\uDC00-\uDEDF\uDF00-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEAD\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0\uDFF0-\uDFFF]|\uD87B[\uDC00-\uDE5D]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A\uDF50-\uDFFF]|\uD88D[\uDC00-\uDC79]/gim.test(String.fromCodePoint(e))}function Cg(e){return /[\u02EA\u02EB\u1100-\u11FF\u1401-\u167F\u18B0-\u18FF\u2065\u20DD-\u20E0\u20E2-\u20E4\u2B97\u2BF0-\u2BFF\u2E50\u2E51\u2E80-\u3007\u3012\u3013\u3020-\u302F\u3031-\u30FB\u30FD-\uA4CF\uA960-\uA97F\uAC00-\uD7FF\uF900-\uFAFF\uFE10-\uFE1F\uFE30-\uFE48\uFE50-\uFE57\uFE5F-\uFE62\uFE67-\uFE6F\uFF00-\uFF07\uFF0A-\uFF0C\uFF0E-\uFF19\uFF1F-\uFF3A\uFF3C\uFF3E\uFF40-\uFF5A\uFFE0-\uFFE2\uFFE4-\uFFE7\uFFF0-\uFFF8]|\uD802[\uDD80-\uDD9F]|\uD805[\uDD80-\uDDFF]|\uD806[\uDE00-\uDEBF]|[\uD80C-\uD810\uD81C-\uD822\uD83C\uD83D\uD840-\uD87E\uD880-\uD8BE][\uDC00-\uDFFF]|\uD811[\uDC00-\uDE7F]|\uD81B[\uDFE0-\uDFFF]|\uD823[\uDC00-\uDDFF]|\uD82B[\uDFF0-\uDFFF]|\uD82C[\uDC00-\uDEFF]|\uD833[\uDEC0-\uDFCF]|\uD834[\uDC00-\uDDFF\uDEE0-\uDF7F]|\uD836[\uDC00-\uDEAF]|\uD83E[\uDD00-\uDEFF]|[\uD87F\uD8BF][\uDC00-\uDFFD]/gim.test(String.fromCodePoint(e))}function wg(e){return /[\xA7\xA9\xAE\xB1\xBC-\xBE\xD7\xF7\u2016\u2020\u2021\u2030\u2031\u203B\u203C\u2042\u2047-\u2049\u2051\u2100-\u218F\u221E\u2234\u2235\u2300-\u2307\u230C-\u231F\u2324-\u2328\u232B\u237D-\u239A\u23BE-\u23CD\u23CF\u23D1-\u23DB\u23E2-\u2422\u2424-\u24FF\u25A0-\u2619\u2620-\u2767\u2776-\u2793\u2B12-\u2B2F\u2B50-\u2B59\u2BB8-\u2BEB\u3000-\u303F\u30A0-\u30FF\uE000-\uF8FF\uFE30-\uFE6F\uFF00-\uFFEF\uFFFC\uFFFD]|[\uDB80-\uDBFF][\uDC00-\uDFFF]/gim.test(String.fromCodePoint(e))}function Tg(e){return /[\r\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0600-\u0605\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DD\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u070F\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u0890\u0891\u0897-\u089F\u08CA-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B55-\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3C\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0CF3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D57\u0D62\u0D63\u0D81-\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E33-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB3-\u0EBC\u0EC8-\u0ECE\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1037\u1039-\u103E\u1056-\u1059\u105E-\u1060\u1071-\u1074\u1082\u1084-\u1086\u108D\u109D\u1100-\u11FF\u135D-\u135F\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u180F\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60\u1A62\u1A65-\u1A7C\u1A7F\u1AB0-\u1ADD\u1AE0-\u1AEB\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DFF\u200C\u200D\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA82C\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA960-\uA97C\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F\uFF9E\uFF9F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD803[\uDD24-\uDD27\uDD69-\uDD6D\uDEAB\uDEAC\uDEFA-\uDEFF\uDF46-\uDF50\uDF82-\uDF85]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC70\uDC73\uDC74\uDC7F-\uDC82\uDCB0-\uDCBA\uDCBD\uDCC2\uDCCD\uDD00-\uDD02\uDD27-\uDD34\uDD45\uDD46\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDDC2\uDDC3\uDDC9-\uDDCC\uDDCE\uDDCF\uDE2C-\uDE37\uDE3E\uDE41\uDEDF-\uDEEA\uDF00-\uDF03\uDF3B\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74\uDFB8-\uDFC0\uDFC2\uDFC5\uDFC7-\uDFCA\uDFCC-\uDFD2\uDFE1\uDFE2]|\uD805[\uDC35-\uDC46\uDC5E\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDDDC\uDDDD\uDE30-\uDE40\uDEAB-\uDEB7\uDF1D-\uDF1F\uDF22-\uDF2B]|\uD806[\uDC2C-\uDC3A\uDD30-\uDD35\uDD37\uDD38\uDD3B-\uDD43\uDDD1-\uDDD7\uDDDA-\uDDE0\uDDE4\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE3E\uDE47\uDE51-\uDE5B\uDE84-\uDE99\uDF60-\uDF67]|\uD807[\uDC2F-\uDC36\uDC38-\uDC3F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD31-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD8A-\uDD8E\uDD90\uDD91\uDD93-\uDD97\uDEF3-\uDEF6\uDF00-\uDF03\uDF34-\uDF3A\uDF3E-\uDF42\uDF5A]|\uD80D[\uDC40\uDC47-\uDC55]|\uD818[\uDD1E-\uDD2F]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDD63\uDD67-\uDD6A\uDF4F\uDF51-\uDF87\uDF8F-\uDF92\uDFE4\uDFF0\uDFF1]|\uD82F[\uDC9D\uDC9E]|\uD833[\uDF00-\uDF2D\uDF30-\uDF46]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A\uDC8F\uDD30-\uDD36\uDEAE\uDEEC-\uDEEF]|\uD839[\uDCEC-\uDCEF\uDDEE\uDDEF\uDEE3\uDEE6\uDEEE\uDEEF\uDEF5]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uD83C[\uDDE6-\uDDFF\uDFFB-\uDFFF]|\uDB40[\uDC20-\uDC7F\uDD00-\uDDEF]/.test(e)}function Eg(e){return /[\u0E01-\u0E3A\u0E40-\u0E4E\u0E81\u0E82\u0E84\u0E86-\u0E8A\u0E8C-\u0EA3\u0EA5\u0EA7-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECE\u0EDC-\u0EDF\u0F00-\u0F47\u0F49-\u0F6C\u0F71-\u0F97\u0F99-\u0FBC\u0FBE-\u0FCC\u0FCE-\u0FD4\u0FD9\u0FDA\u1000-\u103F\u1050-\u108F\u109A-\u109F\u1780-\u17D3\u17D7\u17DC\u17DD\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19DE\u19DF\u1A20-\u1A5E\u1A60-\u1A7C\u1AA0-\u1AAD\u1B00-\u1B4C\u1B4E-\u1B7F\uA980-\uA9CD\uA9D0-\uA9D9\uA9DE-\uA9EF\uA9FA-\uA9FE\uAA60-\uAAC2\uAADB-\uAADF]|\uD805[\uDF00-\uDF1A\uDF1D-\uDF2B\uDF3A\uDF3B\uDF3F-\uDF46]/gim.test(String.fromCodePoint(e))}function Dg(e,t){return /(?:[\u1039\u17D2\u1A60\u1BAB\u200D\uAAF6]|\uD802\uDE3F|\uD804[\uDD33\uDFD0]|\uD806[\uDD3E\uDE47\uDE99]|\uD807[\uDD45\uDD97\uDF42])$/.test(e)||/^\p{gc=Mc}/u.test(t)}const Og={C:`18g,1;g2,3;4nb,1`,D:`17k,1;5,1;1,1;1,5;4,d;1,7;1,2;z,2;8,g;i,12;1,2;9,1;1,1;1,2;14,3;2,1;28,9;3,f;2,4;1,1;2,3;2,6;7a,1;2,5;1,1;g,a;5,2;2,6;1,f`,R:`17m,4;1,1;1,1;5,4;l,1;14,3;1,3;g,i;12,1;2,9;1,1;1,1;2,2;1,1;o,2;2x,3;f,2;4,1;1,2;3,2;6u,j;b,1;r,3;1,1;2,2;6,1`,T:`174,b;1,1;1a,l;g,1;2t,7;2,6;2,2;1,4;bt,9;16,o;1,t;1clb,1`},kg={1569:[65152,0,0,0],1570:[65153,65154,0,0],1571:[65155,65156,0,0],1572:[65157,65158,0,0],1573:[65159,65160,0,0],1574:[65161,65162,65163,65164],1575:[65165,65166,0,0],1576:[65167,65168,65169,65170],1577:[65171,65172,0,0],1578:[65173,65174,65175,65176],1579:[65177,65178,65179,65180],1580:[65181,65182,65183,65184],1581:[65185,65186,65187,65188],1582:[65189,65190,65191,65192],1583:[65193,65194,0,0],1584:[65195,65196,0,0],1585:[65197,65198,0,0],1586:[65199,65200,0,0],1587:[65201,65202,65203,65204],1588:[65205,65206,65207,65208],1589:[65209,65210,65211,65212],1590:[65213,65214,65215,65216],1591:[65217,65218,65219,65220],1592:[65221,65222,65223,65224],1593:[65225,65226,65227,65228],1594:[65229,65230,65231,65232],1601:[65233,65234,65235,65236],1602:[65237,65238,65239,65240],1603:[65241,65242,65243,65244],1604:[65245,65246,65247,65248],1605:[65249,65250,65251,65252],1606:[65253,65254,65255,65256],1607:[65257,65258,65259,65260],1608:[65261,65262,0,0],1609:[65263,65264,64488,64489],1610:[65265,65266,65267,65268],1611:[65136,0,0,65137],1612:[65138,0,0,0],1613:[65140,0,0,0],1614:[65142,0,0,65143],1615:[65144,0,0,65145],1616:[65146,0,0,65147],1617:[65148,0,0,65149],1618:[65150,0,0,65151],1649:[64336,64337,0,0],1655:[64477,0,0,0],1657:[64358,64359,64360,64361],1658:[64350,64351,64352,64353],1659:[64338,64339,64340,64341],1662:[64342,64343,64344,64345],1663:[64354,64355,64356,64357],1664:[64346,64347,64348,64349],1667:[64374,64375,64376,64377],1668:[64370,64371,64372,64373],1670:[64378,64379,64380,64381],1671:[64382,64383,64384,64385],1672:[64392,64393,0,0],1676:[64388,64389,0,0],1677:[64386,64387,0,0],1678:[64390,64391,0,0],1681:[64396,64397,0,0],1688:[64394,64395,0,0],1700:[64362,64363,64364,64365],1702:[64366,64367,64368,64369],1705:[64398,64399,64400,64401],1709:[64467,64468,64469,64470],1711:[64402,64403,64404,64405],1713:[64410,64411,64412,64413],1715:[64406,64407,64408,64409],1722:[64414,64415,0,0],1723:[64416,64417,64418,64419],1726:[64426,64427,64428,64429],1728:[64420,64421,0,0],1729:[64422,64423,64424,64425],1733:[64480,64481,0,0],1734:[64473,64474,0,0],1735:[64471,64472,0,0],1736:[64475,64476,0,0],1737:[64482,64483,0,0],1739:[64478,64479,0,0],1740:[64508,64509,64510,64511],1744:[64484,64485,64486,64487],1746:[64430,64431,0,0],1747:[64432,64433,0,0]},Ag={لآ:[65269,65270],لأ:[65271,65272],لإ:[65273,65274],لا:[65275,65276]},jg=1604,Mg=/[\u0600-\u06ff\u0750-\u077f\u0870-\u089f\u08a0-\u08ff\ufb50-\ufdff\ufe70-\ufeff]/;function Ng(e,t,n){let r=0;for(let i of e.split(`;`)){let[e,a]=i.split(`,`).map(e=>parseInt(e,36)),o=r+e;for(let e=o;e<o+a;e++)n.set(e,t);r=o+a;}}const Pg=/* @__PURE__ */ new Map;for(let[e,t]of Object.entries(Og))Ng(t,e,Pg);function Fg(e){return Pg.get(e)??`U`}function Ig(e){return e===`D`||e===`L`||e===`C`}function Lg(e){return e===`D`||e===`R`||e===`C`}function Rg(e,t,n){return e===`D`?t&&n?3:t?1:n?2:0:e===`R`?+!!t:e===`L`?n?2:0:null}function zg(e){return [...e].map(e=>{let t=e.codePointAt(0);return {codePoint:t,type:Fg(t),form:null}})}function Bg(e){let t=e.filter(e=>e.type!==`T`);for(let e=0;e<t.length;e++){let n=t[e],r=e>0&&Ig(t[e-1].type),i=e+1<t.length&&Lg(t[e+1].type);n.form=Rg(n.type,r,i);}}function Vg(e){let t=false;for(let n of e)n.type===`T`?n.form=t?3:0:t=n.form===2||n.form===3;}function Hg(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n];if(r.codePoint!==jg){t.push(r);continue}let i=n+1;for(;i<e.length&&e[i].type===`T`;)i++;let a=e[i],o=a&&Ag[String.fromCodePoint(jg,a.codePoint)];if(!o){t.push(r);continue}let s=r.form===3||r.form===1;t.push({codePoint:o[+!!s],type:`R`,form:0}),t.push(...e.slice(n+1,i)),n=i;}return t}function Ug(e){if(e.form===null)return e.codePoint;let t=kg[e.codePoint];return t&&(t[e.form]||t[0])||e.codePoint}function Wg(e){if(!Mg.test(e))return e;let t=zg(e);return Bg(t),Vg(t),Hg(t).map(e=>String.fromCodePoint(Ug(e))).join(``)}function Gg(e,t,n){let r=t.layout.get(`text-transform`).evaluate(n,{});return r===`uppercase`?e=e.toLocaleUpperCase():r===`lowercase`&&(e=e.toLocaleLowerCase()),(_g.applyArabicShaping??Wg)(e)}function Kg(e,t,n){for(let r of e.sections)r.text=Gg(r.text,t,n);return e}function qg(e,t,n){let r=n?t.last.points:t.first.points,i=n?r[r.length-1]:r[0];return `${e}:${i.x}:${i.y}`}function Jg(e){let t=e.first.points,n=t.length;for(let t=e.first.next;t;t=t.next)n+=t.points.length-1;let r=Array(n);for(let e=0;e<t.length;e++)r[e]=t[e];let i=t.length;for(let t=e.first.next;t;t=t.next){let e=t.points;for(let t=1;t<e.length;t++)r[i++]=e[t];}return r}function Yg(e,t,n,r,i){let a=t[n];delete t[n],t[r]=a;let o=e[a];return o.last.next=i.first,o.last=i.last,a}function Xg(e,t,n,r,i){let a=t[r];delete t[r],t[n]=a;let o=e[a];return i.last.next=o.first,o.first=i.first,a}function Zg(e){let t={},n={},r=[];for(let i of e){let e=i.text?i.text.toString():null,a={points:i.geometry[0],next:null},o={feature:i,first:a,last:a};if(!e){r.push(o);continue}let s=qg(e,o),c=qg(e,o,true);if(s in n&&c in t&&n[s]!==t[c]){let i=Xg(r,t,s,c,o),a=Yg(r,n,s,c,r[i]);delete t[s],delete n[c],n[qg(e,r[a],true)]=a,r[i].feature.geometry=null;}else if(s in n)Yg(r,n,s,c,o);else if(c in t)Xg(r,t,s,c,o);else {let e=r.push(o)-1;t[s]=e,n[c]=e;}}let i=[];for(let e of r){let t=e.feature;t.geometry&&(e.first.next&&(t.geometry[0]=Jg(e)),i.push(t));}return i}const Qg=typeof Intl<`u`&&`Segmenter`in Intl;let $g,e_;function t_(e){if(!Qg||!Tg(e))return [...e];$g??=new Intl.Segmenter(void 0,{granularity:`grapheme`});let t=[];for(let{segment:n}of $g.segment(e)){let e=t.length-1;e>=0&&Dg(t[e],n)?t[e]+=n:t.push(n);}return t}function n_(e){let t=/* @__PURE__ */ new Set;if(Qg){e_??=new Intl.Segmenter(void 0,{granularity:`word`});for(let{index:n}of e_.segment(e))t.add(n);return t}let n=0;for(let r of e.split(/\b|(?=\p{Ideo})/u))t.add(n),n+=r.length;return t}function r_(e){let t=e.codePointAt(0);return e.length>(t>65535?2:1)}function i_(e){return /\s/u.test(String.fromCodePoint(e))}function a_(e){return /[\p{P}\p{S}]/u.test(String.fromCodePoint(e))}function o_(e){for(let t of e)if(Cg(t.codePointAt(0)))return true;return false}function s_(e){for(let t of e)if(!c_(t.codePointAt(0)))return false;return true}function c_(e){return !vg(e)}function l_(e){return !(Cg(e)||wg(e))}function u_(e){return /\p{sc=Arab}/u.test(String.fromCodePoint(e))}function d_(e){return yg(e)}function f_(e){for(let t of e)if(d_(t.codePointAt(0)))return true;return false}const p_={"!":`︕`,"#":`#`,$:`$`,"%":`%`,"&":`&`,"(":`︵`,")":`︶`,"*":`*`,"+":`+`,",":`︐`,"-":`︲`,".":`・`,"/":`/`,":":`︓`,";":`︔`,"<":`︿`,"=":`=`,">":`﹀`,"?":`︖`,"@":`@`,"[":`﹇`,"\\":`\`,"]":`﹈`,"^":`^`,_:`︳`,"`":```,"{":`︷`,"|":`―`,"}":`︸`,"~":`~`,"¢":`¢`,"£":`£`,"¥":`¥`,"¦":`¦`,"¬":`¬`,"¯":` ̄`,"–":`︲`,"—":`︱`,"‘":`﹃`,"’":`﹄`,"“":`﹁`,"”":`﹂`,"…":`︙`,"⋯":`︙`,"‧":`・`,"₩":`₩`,"、":`︑`,"。":`︒`,"〈":`︿`,"〉":`﹀`,"《":`︽`,"》":`︾`,"「":`﹁`,"」":`﹂`,"『":`﹃`,"』":`﹄`,"【":`︻`,"】":`︼`,"〔":`︹`,"〕":`︺`,"〖":`︗`,"〗":`︘`,"!":`︕`,"(":`︵`,")":`︶`,",":`︐`,"-":`︲`,".":`・`,":":`︓`,";":`︔`,"<":`︿`,">":`﹀`,"?":`︖`,"[":`﹇`,"]":`﹈`,"_":`︳`,"{":`︷`,"|":`―`,"}":`︸`,"⦅":`︵`,"⦆":`︶`,"。":`︒`,"「":`﹁`,"」":`﹂`};function m_(e){let t=``,n={premature:true,value:void 0},r=e[Symbol.iterator](),i=r.next(),a=e[Symbol.iterator]();a.next();let o=a.next();for(;!i.done;)(o.done||!l_(o.value.codePointAt(0))||p_[o.value])&&(n.premature||!l_(n.value.codePointAt(0))||p_[n.value])&&p_[i.value]?t+=p_[i.value]:t+=i.value,n={value:i.value,premature:false},i=r.next(),o=a.next();return t}const h_={10:true,13:true,32:true,38:true,41:true,43:true,45:true,47:true,173:true,183:true,8203:true,8208:true,8211:true,8231:true},g_={40:true};function __(e,t,n,r,i,a){if(`fontStack`in t){let r=n[t.fontStack]?.default,a=r?.[e];if(a)return a.metrics.advance*t.scale+i;let o=0;for(let n of e){let e=r?.[n];e&&(o+=e.metrics.advance*t.scale+i);}return o}{let e=r[t.imageName];return e?e.displaySize[0]*t.scale*24/a+i:0}}function v_(e,t,n,r){let i=(e-t)**2;return r?e<t?i/2:i*2:i+Math.abs(n)*n}function y_(e){return /^\s+$/u.test(e)}function b_(e,t,n){let r=0;return (e===10||e===13)&&(r-=1e4),n&&(r+=150),(e===40||e===65288)&&(r+=50),(t===41||t===65289)&&(r+=50),r}function x_(e,t,n,r,i,a){let o=null,s=v_(t,n,i,a);for(let e of r){let r=v_(t-e.x,n,i,a)+e.badness;r<=s&&(o=e,s=r);}return {index:e,x:t,priorBreak:o,badness:s}}function S_(e){return e?S_(e.priorBreak).concat(e.index):[]}var C_=class e{constructor(e=``,t=[],n=[]){this.text=e,this.sections=t,this.sectionIndex=n,this.imageSectionID=null,this.cachedGraphemes=null;}graphemes(){return this.cachedGraphemes??=t_(this.text),this.cachedGraphemes}static fromFeature(t,n,r,i){let a=new e;for(let e of t.sections)e.image?a.addImageSection(e):a.addTextSection(e,n);return r&&a.verticalizePunctuation(i),a}length(){return this.graphemes().length}getSection(e){return this.sections[this.sectionIndex[e]]}getSectionIndex(e){return this.sectionIndex[e]}verticalizePunctuation(e={},t){let n=m_(this.text),r=0;this.cachedGraphemes=this.graphemes().map((i,a)=>{let o=n.slice(r,r+i.length);r+=i.length;let s=this.getSection(a);return t?.[a]!==false&&`fontStack`in s&&e[s.fontStack]?.vertical?.[i]?i:o}),this.text=this.cachedGraphemes.join(``);}hasZeroWidthSpaces(){return this.text.includes(`​`)}trim(){let e=this.graphemes(),t=0;for(;t<e.length&&y_(e[t]);)t++;let n=e.length;for(;n>t&&y_(e[n-1]);)n--;this.text=e.slice(t,n).join(``),this.sectionIndex=this.sectionIndex.slice(t,n),this.cachedGraphemes=null;}substring(t,n){let r=this.graphemes().slice(t,n).join(``),i=this.sectionIndex.slice(t,n);return new e(r,this.sections,i)}toCodeUnitIndex(e){return this.graphemes().slice(0,e).join(``).length}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((e,t)=>Math.max(e,this.sections[t].scale),0)}getMaxImageSize(e){let t=0,n=0;for(let r=0;r<this.length();r++){let i=this.getSection(r);if(`imageName`in i){let r=e[i.imageName];if(!r)continue;let a=r.displaySize;t=Math.max(t,a[0]),n=Math.max(n,a[1]);}}return {maxImageWidth:t,maxImageHeight:n}}_appendSection(e,t){let n=this.graphemes(),r=n.length>0?n[n.length-1]:``,i=t_(r+e);this.text+=e,this.cachedGraphemes=n.slice(0,r?-1:void 0).concat(i);let a=i.length-+!!r;for(let e=0;e<a;e++)this.sectionIndex.push(t);}addTextSection(e,t){this.sections.push({scale:e.scale||1,verticalAlign:e.verticalAlign||`bottom`,fontStack:e.fontStack||t}),this._appendSection(e.text,this.sections.length-1);}addImageSection(e){let t=e.image?e.image.name:``;if(t.length===0){L$1(`Can't add FormattedSection with an empty image.`);return}let n=this.getNextImageSectionCharCode();n?(this.sections.push({scale:1,verticalAlign:e.verticalAlign||`bottom`,imageName:t}),this._appendSection(String.fromCharCode(n),this.sections.length-1)):L$1(`Reached maximum number of images 6401`);}getNextImageSectionCharCode(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}determineLineBreaks(e,t,n,r,i){let a=this.determineTotalWidth(e,n,r,i);if(e>=0&&a>0&&a<=t&&!/[\n\r]/.test(this.text))return [this.length()];let o=[],s=a/Math.max(1,Math.ceil(a/t)),c=this.hasZeroWidthSpaces(),l=this.graphemes(),u=null,d=0,f=0;for(let t=0;t<l.length;t++){let a=l[t];if(t>0){let e=l[t-1].codePointAt(0),n=a.codePointAt(0),r=Sg(e),i=Eg(e)&&Eg(n);(h_[e]||r||`imageName`in this.getSection(t-1)||l[t+1]!==void 0&&g_[n]||i&&(u??=n_(this.text)).has(f))&&o.push(x_(t,d,s,o,b_(e,n,r&&c),false));}i_(a.codePointAt(0))||(d+=__(a,this.getSection(t),n,r,e,i)),f+=a.length;}return S_(x_(this.length(),d,s,o,0,true))}determineTotalWidth(e,t,n,r){let i=0,a=0;for(let o of this.graphemes()){let s=this.getSection(a);i+=__(o,s,t,n,e,r),a++;}return i}};function w_(){return (function(e){var t={R:`13k,1a,2,3,3,2+1j,ch+16,a+1,5+2,2+n,5,a,4,6+16,4+3,h+1b,4mo,179q,2+9,2+11,2i9+7y,2+68,4,3+4,5+13,4+3,2+4k,3+29,8+cf,1t+7z,w+17,3+3m,1t+3z,16o1+5r,8+30,8+mc,29+1r,29+4v,75+73`,EN:`1c+9,3d+1,6,187+9,513,4+5,7+9,sf+j,175h+9,qw+q,161f+1d,4xt+a,25i+9`,ES:`17,2,6dp+1,f+1,av,16vr,mx+1,4o,2`,ET:`z+2,3h+3,b+1,ym,3e+1,2o,p4+1,8,6u,7c,g6,1wc,1n9+4,30+1b,2n,6d,qhx+1,h0m,a+1,49+2,63+1,4+1,6bb+3,12jj`,AN:`16o+5,2j+9,2+1,35,ed,1ff2+9,87+u`,CS:`18,2+1,b,2u,12k,55v,l,17v0,2,3,53,2+1,b`,B:`a,3,f+2,2v,690`,S:`9,2,k`,WS:`c,k,4f4,1vk+a,u,1j,335`,ON:`x+1,4+4,h+5,r+5,r+3,z,5+3,2+1,2+1,5,2+2,3+4,o,w,ci+1,8+d,3+d,6+8,2+g,39+1,9,6+1,2,33,b8,3+1,3c+1,7+1,5r,b,7h+3,sa+5,2,3i+6,jg+3,ur+9,2v,ij+1,9g+9,7+a,8m,4+1,49+x,14u,2+2,c+2,e+2,e+2,e+1,i+n,e+e,2+p,u+2,e+2,36+1,2+3,2+1,b,2+2,6+5,2,2,2,h+1,5+4,6+3,3+f,16+2,5+3l,3+81,1y+p,2+40,q+a,m+13,2r+ch,2+9e,75+hf,3+v,2+2w,6e+5,f+6,75+2a,1a+p,2+2g,d+5x,r+b,6+3,4+o,g,6+1,6+2,2k+1,4,2j,5h+z,1m+1,1e+f,t+2,1f+e,d+3,4o+3,2s+1,w,535+1r,h3l+1i,93+2,2s,b+1,3l+x,2v,4g+3,21+3,kz+1,g5v+1,5a,j+9,n+v,2,3,2+8,2+1,3+2,2,3,46+1,4+4,h+5,r+5,r+a,3h+2,4+6,b+4,78,1r+24,4+c,4,1hb,ey+6,103+j,16j+c,1ux+7,5+g,fsh,jdq+1t,4,57+2e,p1,1m,1m,1m,1m,4kt+1,7j+17,5+2r,d+e,3+e,2+e,2+10,m+4,w,1n+5,1q,4z+5,4b+rb,9+c,4+c,4+37,d+2g,8+b,l+b,5+1j,9+9,7+13,9+t,3+1,27+3c,2+29,2+3q,d+d,3+4,4+2,6+6,a+o,8+6,a+2,e+6,16+42,2+1i`,BN:`0+8,6+d,2s+5,2+p,e,4m9,1kt+2,2b+5,5+5,17q9+v,7k,6p+8,6+1,119d+3,440+7,96s+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+1,1ekf+75,6p+2rz,1ben+1,1ekf+1,1ekf+1`,NSM:`lc+33,7o+6,7c+18,2,2+1,2+1,2,21+a,1d+k,h,2u+6,3+5,3+1,2+3,10,v+q,2k+a,1n+8,a,p+3,2+8,2+2,2+4,18+2,3c+e,2+v,1k,2,5+7,5,4+6,b+1,u,1n,5+3,9,l+1,r,3+1,1m,5+1,5+1,3+2,4,v+1,4,c+1,1m,5+4,2+1,5,l+1,n+5,2,1n,3,2+3,9,8+1,c+1,v,1q,d,1f,4,1m+2,6+2,2+3,8+1,c+1,u,1n,g+1,l+1,t+1,1m+1,5+3,9,l+1,u,21,8+2,2,2j,3+6,d+7,2r,3+8,c+5,23+1,s,2,2,1k+d,2+4,2+1,6+a,2+z,a,2v+3,2+5,2+1,3+1,q+1,5+2,h+3,e,3+1,7,g,jk+2,qb+2,u+2,u+1,v+1,1t+1,2+6,9,3+a,a,1a+2,3c+1,z,3b+2,5+1,a,7+2,64+1,3,1n,2+6,2,2,3+7,7+9,3,1d+g,1s+3,1d,2+4,2,6,15+8,d+1,x+3,3+1,2+2,1l,2+1,4,2+2,1n+7,3+1,49+2,2+c,2+6,5,7,4+1,5j+1l,2+4,k1+w,2db+2,3y,2p+v,ff+3,30+1,n9x+3,2+9,x+1,29+1,7l,4,5,q+1,6,48+1,r+h,e,13+7,q+a,1b+2,1d,3+3,3+1,14,1w+5,3+1,3+1,d,9,1c,1g,2+2,3+1,6+1,2,17+1,9,6n,3,5,fn5,ki+f,h+f,r2,6b,46+4,1af+2,2+1,6+3,15+2,5,4m+1,fy+3,as+1,4a+a,4x,1j+e,1l+2,1e+3,3+1,1y+2,11+4,2+7,1r,d+1,1h+8,b+3,3,2o+2,3,2+1,7,4h,4+7,m+1,1m+1,4,12+6,4+4,5g+7,3+2,2,o,2d+5,2,5+1,2+1,6n+3,7+1,2+1,s+1,2e+7,3,2+1,2z,2,3+5,2,2u+2,3+3,2+4,78+8,2+1,75+1,2,5,41+3,3+1,5,x+5,3+1,15+5,3+3,9,a+5,3+2,1b+c,2+1,bb+6,2+5,2d+l,3+6,2+1,2+1,3f+5,4,2+1,2+6,2,21+1,4,2,9o+1,f0c+4,1o+6,t5,1s+3,2a,f5l+1,43t+2,i+7,3+6,v+3,45+2,1j0+1i,5+1d,9,f,n+4,2+e,11t+6,2+g,3+6,2+1,2+4,7a+6,c6+3,15t+6,32+6,gzhy+6n`,AL:`16w,3,2,e+1b,z+2,2+2s,g+1,8+1,b+m,2+t,s+2i,c+e,4h+f,1d+1e,1bwe+dp,3+3z,x+c,2+1,35+3y,2rm+z,5+7,b+5,dt+l,c+u,17nl+27,1t+27,4x+6n,3+d`,LRO:`6ct`,RLO:`6cu`,LRE:`6cq`,RLE:`6cr`,PDF:`6cs`,LRI:`6ee`,RLI:`6ef`,FSI:`6eg`,PDI:`6eh`},n={},r={};n.L=1,r[1]=`L`,Object.keys(t).forEach(function(e,t){n[e]=1<<t+1,r[n[e]]=e;}),Object.freeze(n);var i=n.LRI|n.RLI|n.FSI,a=n.L|n.R|n.AL,o=n.B|n.S|n.WS|n.ON|n.FSI|n.LRI|n.RLI|n.PDI,s=n.BN|n.RLE|n.LRE|n.RLO|n.LRO|n.PDF,c=n.S|n.WS|n.B|i|n.PDI|s,l=null;function u(){if(!l){l=/* @__PURE__ */ new Map;var e=0;for(var r in t)if(t.hasOwnProperty(r))for(var i=t[r],a=``,o=void 0,s=false,c=0,u=0;u<=i.length+1;u+=1){var d=i[u];if(d!==`,`&&u!==i.length)d===`+`?(s=true,c=e=c+parseInt(a,36),a=``):a+=d;else {s?o=e+parseInt(a,36):(c=e=c+parseInt(a,36),o=e),s=false,a=``,c=o;for(var f=e;f<o+1;f+=1)l.set(f,n[r]);}}}}function d(e){return u(),l.get(e.codePointAt(0))||n.L}function f(e){return r[d(e)]}var p={pairs:`14>1,1e>2,u>2,2wt>1,1>1,1ge>1,1wp>1,1j>1,f>1,hm>1,1>1,u>1,u6>1,1>1,+5,28>1,w>1,1>1,+3,b8>1,1>1,+3,1>3,-1>-1,3>1,1>1,+2,1s>1,1>1,x>1,th>1,1>1,+2,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,4q>1,1e>2,u>2,2>1,+1`,canonical:`6f1>-6dx,6dy>-6dx,6ec>-6ed,6ee>-6ed,6ww>2jj,-2ji>2jj,14r4>-1e7l,1e7m>-1e7l,1e7m>-1e5c,1e5d>-1e5b,1e5c>-14qx,14qy>-14qx,14vn>-1ecg,1ech>-1ecg,1edu>-1ecg,1eci>-1ecg,1eda>-1ecg,1eci>-1ecg,1eci>-168q,168r>-168q,168s>-14ye,14yf>-14ye`};function m(e,t){var n=0,r=/* @__PURE__ */ new Map,i=t&&/* @__PURE__ */ new Map,a;return e.split(`,`).forEach(function e(o){if(o.indexOf(`+`)!==-1)for(var s=+o;s--;)e(a);else {a=o;var c=o.split(`>`),l=c[0],u=c[1];l=String.fromCodePoint(n+=parseInt(l,36)),u=String.fromCodePoint(n+=parseInt(u,36)),r.set(l,u),t&&i.set(u,l);}}),{map:r,reverseMap:i}}var h,g,_;function v(){if(!h){var e=m(p.pairs,true),t=e.map,n=e.reverseMap;h=t,g=n,_=m(p.canonical,false).map;}}function y(e){return v(),h.get(e)||null}function b(e){return v(),g.get(e)||null}function x(e){return v(),_.get(e)||null}var S=n.L,C=n.R,w=n.EN,T=n.ES,E=n.ET,D=n.AN,O=n.CS,k=n.B,A=n.S,j=n.ON,ee=n.BN,te=n.NSM,ne=n.AL,re=n.LRO,ie=n.RLO,ae=n.LRE,oe=n.RLE,se=n.PDF,ce=n.LRI,le=n.RLI,ue=n.FSI,de=n.PDI;function fe(e,t){for(var n=125,r=new Uint32Array(e.length),l=0;l<e.length;l++)r[l]=d(e[l]);var u=/* @__PURE__ */ new Map;function f(e,t){var n=r[e];r[e]=t,u.set(n,u.get(n)-1),n&o&&u.set(o,u.get(o)-1),u.set(t,(u.get(t)||0)+1),t&o&&u.set(o,(u.get(o)||0)+1);}for(var p=new Uint8Array(e.length),m=/* @__PURE__ */ new Map,h=[],g=null,_=0;_<e.length;_++)g||h.push(g={start:_,end:e.length-1,level:t===`rtl`?1:t===`ltr`?0:rn(_,false)}),r[_]&k&&(g.end=_,g=null);for(var v=oe|ae|ie|re|i|de|se|k,fe=function(e){return e+(e&1?1:2)},pe=function(e){return e+(e&1?2:1)},me=0;me<h.length;me++){g=h[me];var he=[{_level:g.level,_override:0,_isolate:0}],ge=void 0,M=0,_e=0,ve=0;u.clear();for(var ye=g.start;ye<=g.end;ye++){var be=r[ye];if(ge=he[he.length-1],u.set(be,(u.get(be)||0)+1),be&o&&u.set(o,(u.get(o)||0)+1),be&v){if(be&(oe|ae)){p[ye]=ge._level;var xe=(be===oe?pe:fe)(ge._level);xe<=n&&!M&&!_e?he.push({_level:xe,_override:0,_isolate:0}):M||_e++;}else if(be&(ie|re)){p[ye]=ge._level;var Se=(be===ie?pe:fe)(ge._level);Se<=n&&!M&&!_e?he.push({_level:Se,_override:be&ie?C:S,_isolate:0}):M||_e++;}else if(be&i){be&ue&&(be=rn(ye+1,true)===1?le:ce),p[ye]=ge._level,ge._override&&f(ye,ge._override);var Ce=(be===le?pe:fe)(ge._level);Ce<=n&&M===0&&_e===0?(ve++,he.push({_level:Ce,_override:0,_isolate:1,_isolInitIndex:ye})):M++;}else if(be&de){if(M>0)M--;else if(ve>0){for(_e=0;!he[he.length-1]._isolate;)he.pop();var we=he[he.length-1]._isolInitIndex;we!=null&&(m.set(we,ye),m.set(ye,we)),he.pop(),ve--;}ge=he[he.length-1],p[ye]=ge._level,ge._override&&f(ye,ge._override);}else be&se?(M===0&&(_e>0?_e--:!ge._isolate&&he.length>1&&(he.pop(),ge=he[he.length-1])),p[ye]=ge._level):be&k&&(p[ye]=g.level);}else p[ye]=ge._level,ge._override&&be!==ee&&f(ye,ge._override);}for(var Te=[],Ee=null,De=g.start;De<=g.end;De++){var Oe=r[De];if(!(Oe&s)){var ke=p[De],Ae=Oe&i,je=Oe===de;Ee&&ke===Ee._level?(Ee._end=De,Ee._endsWithIsolInit=Ae):Te.push(Ee={_start:De,_end:De,_level:ke,_startsWithPDI:je,_endsWithIsolInit:Ae});}}for(var Me=[],Ne=0;Ne<Te.length;Ne++){var Pe=Te[Ne];if(!Pe._startsWithPDI||Pe._startsWithPDI&&!m.has(Pe._start)){for(var Fe=[Ee=Pe],Ie=void 0;Ee&&Ee._endsWithIsolInit&&(Ie=m.get(Ee._end))!=null;)for(var Le=Ne+1;Le<Te.length;Le++)if(Te[Le]._start===Ie){Fe.push(Ee=Te[Le]);break}for(var Re=[],ze=0;ze<Fe.length;ze++)for(var Be=Fe[ze],Ve=Be._start;Ve<=Be._end;Ve++)Re.push(Ve);for(var He=p[Re[0]],Ue=g.level,We=Re[0]-1;We>=0;We--)if(!(r[We]&s)){Ue=p[We];break}var Ge=Re[Re.length-1],Ke=p[Ge],qe=g.level;if(!(r[Ge]&i)){for(var Je=Ge+1;Je<=g.end;Je++)if(!(r[Je]&s)){qe=p[Je];break}}Me.push({_seqIndices:Re,_sosType:Math.max(Ue,He)%2?C:S,_eosType:Math.max(qe,Ke)%2?C:S});}}for(var Ye=0;Ye<Me.length;Ye++){var Xe=Me[Ye],N=Xe._seqIndices,Ze=Xe._sosType,Qe=Xe._eosType,$e=p[N[0]]&1?C:S;if(u.get(te))for(var et=0;et<N.length;et++){var tt=N[et];if(r[tt]&te){for(var P=Ze,nt=et-1;nt>=0;nt--)if(!(r[N[nt]]&s)){P=r[N[nt]];break}f(tt,P&(i|de)?j:P);}}if(u.get(w))for(var rt=0;rt<N.length;rt++){var it=N[rt];if(r[it]&w)for(var at=rt-1;at>=-1;at--){var ot=at===-1?Ze:r[N[at]];if(ot&a){ot===ne&&f(it,D);break}}}if(u.get(ne))for(var st=0;st<N.length;st++){var ct=N[st];r[ct]&ne&&f(ct,C);}if(u.get(T)||u.get(O))for(var lt=1;lt<N.length-1;lt++){var ut=N[lt];if(r[ut]&(T|O)){for(var dt=0,ft=0,pt=lt-1;pt>=0&&(dt=r[N[pt]],dt&s);pt--);for(var mt=lt+1;mt<N.length&&(ft=r[N[mt]],ft&s);mt++);dt===ft&&(r[ut]===T?dt===w:dt&(w|D))&&f(ut,dt);}}if(u.get(w)){for(var ht=0;ht<N.length;ht++)if(r[N[ht]]&w){for(var gt=ht-1;gt>=0&&r[N[gt]]&(E|s);gt--)f(N[gt],w);for(ht++;ht<N.length&&r[N[ht]]&(E|s|w);ht++)r[N[ht]]!==w&&f(N[ht],w);}}if(u.get(E)||u.get(T)||u.get(O))for(var _t=0;_t<N.length;_t++){var vt=N[_t];if(r[vt]&(E|T|O)){f(vt,j);for(var yt=_t-1;yt>=0&&r[N[yt]]&s;yt--)f(N[yt],j);for(var bt=_t+1;bt<N.length&&r[N[bt]]&s;bt++)f(N[bt],j);}}if(u.get(w))for(var xt=0,St=Ze;xt<N.length;xt++){var Ct=N[xt],F=r[Ct];F&w?St===S&&f(Ct,S):F&a&&(St=F);}if(u.get(o)){for(var wt=C|w|D,I=wt|S,Tt=[],Et=[],Dt=0;Dt<N.length;Dt++)if(r[N[Dt]]&o){var Ot=e[N[Dt]],kt=void 0;if(y(Ot)!==null){if(Et.length<63)Et.push({char:Ot,seqIndex:Dt});else break}else if((kt=b(Ot))!==null)for(var At=Et.length-1;At>=0;At--){var jt=Et[At].char;if(jt===kt||jt===b(x(Ot))||y(x(jt))===Ot){Tt.push([Et[At].seqIndex,Dt]),Et.length=At;break}}}Tt.sort(function(e,t){return e[0]-t[0]});for(var Mt=0;Mt<Tt.length;Mt++){for(var Nt=Tt[Mt],Pt=Nt[0],Ft=Nt[1],It=false,Lt=0,L=Pt+1;L<Ft;L++){var Rt=N[L];if(r[Rt]&I){It=true;var zt=r[Rt]&wt?C:S;if(zt===$e){Lt=zt;break}}}if(It&&!Lt){Lt=Ze;for(var Bt=Pt-1;Bt>=0;Bt--){var Vt=N[Bt];if(r[Vt]&I){var Ht=r[Vt]&wt?C:S;Lt=Ht===$e?$e:Ht;break}}}if(Lt){if(r[N[Pt]]=r[N[Ft]]=Lt,Lt!==$e){for(var Ut=Pt+1;Ut<N.length;Ut++)if(!(r[N[Ut]]&s)){d(e[N[Ut]])&te&&(r[N[Ut]]=Lt);break}}if(Lt!==$e){for(var Wt=Ft+1;Wt<N.length;Wt++)if(!(r[N[Wt]]&s)){d(e[N[Wt]])&te&&(r[N[Wt]]=Lt);break}}}}for(var Gt=0;Gt<N.length;Gt++)if(r[N[Gt]]&o){for(var Kt=Gt,qt=Gt,Jt=Ze,Yt=Gt-1;Yt>=0;Yt--)if(r[N[Yt]]&s)Kt=Yt;else {Jt=r[N[Yt]]&wt?C:S;break}for(var Xt=Qe,Zt=Gt+1;Zt<N.length;Zt++)if(r[N[Zt]]&(o|s))qt=Zt;else {Xt=r[N[Zt]]&wt?C:S;break}for(var Qt=Kt;Qt<=qt;Qt++)r[N[Qt]]=Jt===Xt?Jt:$e;Gt=qt;}}}for(var $t=g.start;$t<=g.end;$t++){var en=p[$t],tn=r[$t];if(en&1?tn&(S|w|D)&&p[$t]++:tn&C?p[$t]++:tn&(D|w)&&(p[$t]+=2),tn&s&&(p[$t]=$t===0?g.level:p[$t-1]),$t===g.end||d(e[$t])&(A|k))for(var nn=$t;nn>=0&&d(e[nn])&c;nn--)p[nn]=g.level;}}return {levels:p,paragraphs:h};function rn(t,n){for(var a=t;a<e.length;a++){var o=r[a];if(o&(C|ne))return 1;if(o&(k|S)||n&&o===de)return 0;if(o&i){var s=an(a);a=s===-1?e.length:s;}}return 0}function an(t){for(var n=1,a=t+1;a<e.length;a++){var o=r[a];if(o&k)break;if(o&de){if(--n===0)return a}else o&i&&n++;}return -1}}var pe=`14>1,j>2,t>2,u>2,1a>g,2v3>1,1>1,1ge>1,1wd>1,b>1,1j>1,f>1,ai>3,-2>3,+1,8>1k0,-1jq>1y7,-1y6>1hf,-1he>1h6,-1h5>1ha,-1h8>1qi,-1pu>1,6>3u,-3s>7,6>1,1>1,f>1,1>1,+2,3>1,1>1,+13,4>1,1>1,6>1eo,-1ee>1,3>1mg,-1me>1mk,-1mj>1mi,-1mg>1mi,-1md>1,1>1,+2,1>10k,-103>1,1>1,4>1,5>1,1>1,+10,3>1,1>8,-7>8,+1,-6>7,+1,a>1,1>1,u>1,u6>1,1>1,+5,26>1,1>1,2>1,2>2,8>1,7>1,4>1,1>1,+5,b8>1,1>1,+3,1>3,-2>1,2>1,1>1,+2,c>1,3>1,1>1,+2,h>1,3>1,a>1,1>1,2>1,3>1,1>1,d>1,f>1,3>1,1a>1,1>1,6>1,7>1,13>1,k>1,1>1,+19,4>1,1>1,+2,2>1,1>1,+18,m>1,a>1,1>1,lk>1,1>1,4>1,2>1,f>1,3>1,1>1,+3,db>1,1>1,+3,3>1,1>1,+2,14qm>1,1>1,+1,6>1,4j>1,j>2,t>2,u>2,2>1,+1`,me;function he(){if(!me){var e=m(pe,true),t=e.map;e.reverseMap.forEach(function(e,n){t.set(n,e);}),me=t;}}function ge(e){return he(),me.get(e)||null}function M(e,t,n,r){var i=e.length;n=Math.max(0,n==null?0:+n),r=Math.min(i-1,r==null?i-1:+r);for(var a=/* @__PURE__ */ new Map,o=n;o<=r;o++)if(t[o]&1){var s=ge(e[o]);s!==null&&a.set(o,s);}return a}function _e(e,t,n,r){var i=e.length;n=Math.max(0,n==null?0:+n),r=Math.min(i-1,r==null?i-1:+r);var a=[];return t.paragraphs.forEach(function(i){var o=Math.max(n,i.start),s=Math.min(r,i.end);if(o<s){for(var l=t.levels.slice(o,s+1),u=s;u>=o&&d(e[u])&c;u--)l[u]=i.level;for(var f=i.level,p=1/0,m=0;m<l.length;m++){var h=l[m];h>f&&(f=h),h<p&&(p=h|1);}for(var g=f;g>=p;g--)for(var _=0;_<l.length;_++)if(l[_]>=g){for(var v=_;_+1<l.length&&l[_+1]>=g;)_++;_>v&&a.push([v+o,_+o]);}}}),a}function ve(e,t,n,r){var i=ye(e,t,n,r),a=[].concat(e);return i.forEach(function(n,r){a[r]=(t.levels[n]&1?ge(e[n]):null)||e[n];}),a.join(``)}function ye(e,t,n,r){for(var i=_e(e,t,n,r),a=[],o=0;o<e.length;o++)a[o]=o;return i.forEach(function(e){for(var t=e[0],n=e[1],r=a.slice(t,n+1),i=r.length;i--;)a[n-i]=r[i];}),a}return e.closingToOpeningBracket=b,e.getBidiCharType=d,e.getBidiCharTypeName=f,e.getCanonicalBracket=x,e.getEmbeddingLevels=fe,e.getMirroredCharacter=ge,e.getMirroredCharactersMap=M,e.getReorderSegments=_e,e.getReorderedIndices=ye,e.getReorderedString=ve,e.openingToClosingBracket=y,Object.defineProperty(e,"__esModule",{value:true}),e})({})}const T_=w_(),E_=/[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/,D_=/* @__PURE__ */ new Set([`WS`,`FSI`,`LRI`,`RLI`,`PDI`]),O_=/* @__PURE__ */ new Set([`S`,`B`]);function k_(e,t,n,r){let i=[],a=n;for(let o of t_(e.slice(n,r)))i.push({index:a,text:o,level:t[a]}),a+=o.length;return i}function A_(e,t){let n=true;for(let r=e.length-1;r>=0;r--){let i=T_.getBidiCharTypeName(e[r].text[0]);O_.has(i)?(e[r].level=t,n=true):n&&D_.has(i)?e[r].level=t:n=false;}}function j_(e,t){let n=t,r=1/0;for(let{level:t}of e)t>n&&(n=t),(t|1)<r&&(r=t|1);let i=e.slice();for(let e=n;e>=r;e--)for(let t=0;t<i.length;t++){if(i[t].level<e)continue;let n=t;for(;n+1<i.length&&i[n+1].level>=e;)n++;for(let e=t,r=n;e<r;e++,r--)[i[e],i[r]]=[i[r],i[e]];t=n;}return i}function M_(e){return e.level%2==0?e.text:T_.getMirroredCharacter(e.text)??e.text}function N_(e,t){return e.find(e=>t>=e.start&&t<=e.end)?.level??0}function P_(e,t,n,r,i){let a=k_(e,t,r,i);A_(a,n);let o=``,s=[];for(let e of j_(a,n)){if(E_.test(e.text))continue;let t=M_(e);o+=t,s.push(...Array(t.length).fill(e.index));}return {text:o,sourceIndices:s}}function F_(e,t){let n=t.filter(t=>t>0&&t<e.length),r=[.../* @__PURE__ */ new Set([0,...n,e.length])].sort((e,t)=>e-t),i=[];for(let e=0;e+1<r.length;e++)i.push([r[e],r[e+1]]);return i}function I_(e,t){let{levels:n,paragraphs:r}=T_.getEmbeddingLevels(e);return F_(e,t.concat(r.map(e=>e.start))).map(([t,i])=>P_(e,n,N_(r,t),t,i))}function L_(e,t){return I_(e,t).map(e=>e.text)}function R_(e,t,n){return I_(e,n).map(e=>[e.text,e.sourceIndices.map(e=>t[e]??0)])}const z_=4294967296,B_=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`);var V_=class{constructor(e){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer,this.buf.byteOffset,this.buf.byteLength),this.pos=0,this.type=0,this._valueStart=-1,this.length=this.buf.length;}readFields(e,t,n=this.length){let r;for(;r=this.nextField(n);)e(r,t,this);return t}readMessage(e,t){return this.readFields(e,t,this.readVarint()+this.pos)}readFixed32(){let e=this.dataView.getUint32(this.pos,true);return this.pos+=4,e}readSFixed32(){let e=this.dataView.getInt32(this.pos,true);return this.pos+=4,e}readFixed64(){let e=this.dataView.getUint32(this.pos,true)+this.dataView.getUint32(this.pos+4,true)*z_;return this.pos+=8,e}readSFixed64(){let e=this.dataView.getUint32(this.pos,true)+this.dataView.getInt32(this.pos+4,true)*z_;return this.pos+=8,e}readFloat(){let e=this.dataView.getFloat32(this.pos,true);return this.pos+=4,e}readDouble(){let e=this.dataView.getFloat64(this.pos,true);return this.pos+=8,e}readVarint(e){let t=this.buf,n=t[this.pos++];if(n<128)return n;let r=n&127,i;return i=t[this.pos++],r|=(i&127)<<7,i<128||(i=t[this.pos++],r|=(i&127)<<14,i<128)||(i=t[this.pos++],r|=(i&127)<<21,i<128)?r:(i=t[this.pos],r|=(i&15)<<28,H_(r,e,this))}readSVarint(){let e=this.readVarint();return e%2==1?(e+1)/-2:e/2}readBoolean(){return !!this.readVarint()}readString(){let e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=12&&B_?B_.decode(this.buf.subarray(t,e)):W_(this.buf,t,e)}readBytes(){let e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t}readPackedVarint(e=[],t){let n=this.readPackedEnd();for(;this.pos<n;)e.push(this.readVarint(t));return e}readPackedSVarint(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSVarint());return e}readPackedBoolean(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readBoolean());return e}readPackedFloat(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFloat());return e}readPackedDouble(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readDouble());return e}readPackedFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed32());return e}readPackedSFixed32(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed32());return e}readPackedFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readFixed64());return e}readPackedSFixed64(e=[]){let t=this.readPackedEnd();for(;this.pos<t;)e.push(this.readSFixed64());return e}readPackedEnd(){return this.type===2?this.readVarint()+this.pos:this.pos+1}nextField(e=this.length){if(this.pos===this._valueStart&&this.skip(this.type),this.pos>=e)return 0;let t=this.readVarint();return this.type=t&7,this._valueStart=this.pos,t>>>3}skip(e){let t=e&7;if(t===0)for(;this.buf[this.pos++]>127;);else if(t===2)this.pos=this.readVarint()+this.pos;else if(t===5)this.pos+=4;else if(t===1)this.pos+=8;else throw Error(`Unimplemented type: ${t}`)}};function H_(e,t,n){let r=n.buf,i,a;if(a=r[n.pos++],i=(a&112)>>4,a<128||(a=r[n.pos++],i|=(a&127)<<3,a<128)||(a=r[n.pos++],i|=(a&127)<<10,a<128)||(a=r[n.pos++],i|=(a&127)<<17,a<128)||(a=r[n.pos++],i|=(a&127)<<24,a<128)||(a=r[n.pos++],i|=(a&1)<<31,a<128))return U_(e,i,t);throw Error(`Expected varint not more than 10 bytes`)}function U_(e,t,n){return n?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function W_(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o;}return r}function Y_(e){return typeof e?.renderWithWebGL==`function`}function Z_(e){let t=0,n=0;for(let r of e)t+=r.w*r.h,n=Math.max(n,r.w);e.sort((e,t)=>t.h-e.h);let r=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(t/.95)),n),h:1/0}],i=0,a=0;for(let t of e)for(let e=r.length-1;e>=0;e--){let n=r[e];if(!(t.w>n.w||t.h>n.h)){if(t.x=n.x,t.y=n.y,a=Math.max(a,t.y+t.h),i=Math.max(i,t.x+t.w),t.w===n.w&&t.h===n.h){let t=r.pop();t&&e<r.length&&(r[e]=t);}else t.h===n.h?(n.x+=t.w,n.w-=t.w):t.w===n.w?(n.y+=t.h,n.h-=t.h):(r.push({x:n.x+t.w,y:n.y,w:n.w-t.w,h:t.h}),n.y+=t.h,n.h-=t.h);break}}return {w:i,h:a,fill:t/(i*a)||0}}var Q_=class{constructor(e,{pixelRatio:t,version:n,isWebGLImage:r=false,stretchX:i,stretchY:a,content:o,textFitWidth:s,textFitHeight:c}){this.paddedRect=e,this.pixelRatio=t,this.stretchX=i,this.stretchY=a,this.content=o,this.version=n,this.needsFirstWebGLRender=r,this.textFitWidth=s,this.textFitHeight=c;}get tl(){return [this.paddedRect.x+1,this.paddedRect.y+1]}get br(){return [this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]}get tlbr(){return this.tl.concat(this.br)}get displaySize(){return [(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]}},$_=class{constructor(e,t){let n={},r={};this.haveRenderCallbacks=[],this.patchedUpdateVersion=-1;let i=[];this.addImages(e,n,i),this.addImages(t,r,i);let{w:a,h:o}=Z_(i),s=new Jf({width:a||1,height:o||1});for(let t in e){let r=e[t];if(r.isWebGLImage)continue;let i=n[t].paddedRect;Jf.copy(r.data,s,{x:0,y:0},{x:i.x+1,y:i.y+1},r.data);}for(let e in t){let n=t[e],i=r[e].paddedRect,a=i.x+1,o=i.y+1,c=n.data.width,l=n.data.height;Jf.copy(n.data,s,{x:0,y:0},{x:a,y:o},n.data),Jf.copy(n.data,s,{x:0,y:l-1},{x:a,y:o-1},{width:c,height:1}),Jf.copy(n.data,s,{x:0,y:0},{x:a,y:o+l},{width:c,height:1}),Jf.copy(n.data,s,{x:c-1,y:0},{x:a-1,y:o},{width:1,height:l}),Jf.copy(n.data,s,{x:0,y:0},{x:a+c,y:o},{width:1,height:l});}this.image=s,this.iconPositions=n,this.patternPositions=r;}addImages(e,t,n){for(let r in e){let i=e[r],a={x:0,y:0,w:i.data.width+2,h:i.data.height+2};n.push(a),t[r]=new Q_(a,i),i.hasRenderCallback&&this.haveRenderCallbacks.push(r);}}patchUpdatedImages(e,t){if(e.dispatchRenderCallbacks(this.haveRenderCallbacks),this.patchedUpdateVersion!==e.updateVersion){this.patchedUpdateVersion=e.updateVersion;for(let n in this.iconPositions)this.patchUpdatedImage(this.iconPositions[n],e.getImage(n),t);for(let n in this.patternPositions)this.patchUpdatedImage(this.patternPositions[n],e.getImage(n),t);}}patchUpdatedImage(e,t,n){if(!e||!t||!e.needsFirstWebGLRender&&e.version===t.version)return;e.needsFirstWebGLRender=false,e.version=t.version;let[r,i]=e.tl,a=t.userImage?.data;if(!Y_(a)){n.update(t.data,void 0,{x:r,y:i});return}let{width:o,height:s}=t.data;n.context.setCustomLayerDefaults(),a.renderWithWebGL({gl:n.context.gl,texture:n.texture,x:r,y:i,width:o,height:s}),n.context.setDirty();}};K(`ImagePosition`,Q_),K(`ImageAtlas`,$_);var ev=/* @__PURE__ */ function(e){return e[e.none=0]=`none`,e[e.horizontal=1]=`horizontal`,e[e.vertical=2]=`vertical`,e[e.horizontalOnly=3]=`horizontalOnly`,e}(ev||{});function tv(e){for(let t of e)if(t.positionedGlyphs.length!==0)return false;return true}function nv(e,t){let n=[],r=0;for(let i of t)n.push(e.substring(r,i)),r=i;return r<e.length()&&n.push(e.substring(r,e.length())),n}const rv=/^\p{gc=M}$/u;function iv(e){let t=[],n=0;for(;n<e.length;){if(!rv.test(e[n])){t.push(n),n++;continue}let r=n;for(;r<e.length&&rv.test(e[r]);)r++;let i=e[r];if(i!==void 0&&d_(i.codePointAt(0))){t.push(r);for(let e=r-1;e>=n;e--)t.push(e);n=r+1;}else {for(let e=n;e<r;e++)t.push(e);n=r;}}return t}function av(e){let t=[],n=0;for(let r of e.graphemes())t.push(...Array(r.length).fill(e.sectionIndex[n])),n++;return t}function ov(e,t){let n=t.map(t=>e.toCodeUnitIndex(t)),r=_g.isParsed()?_g:null;if(e.sections.length===1)return r?r.processBidirectionalText(e.toString(),n).map(t=>lv(t,e.sections,[...t].map(()=>0))):L_(e.toString(),n).map(t=>sv([...t],e.sections,[...t].map(()=>0)));let i=av(e);return r?r.processStyledBidirectionalText(e.text,i,n).map(([t,n])=>lv(t,e.sections,n)):R_(e.text,i,n).map(([t,n])=>{let r=[...t];return sv(r,e.sections,cv(r).map(e=>n[e]??0))})}function sv(e,t,n){let r=new C_(e.join(``),t,[]),i=0;for(let e of r.graphemes())r.sectionIndex.push(n[i]??0),i+=[...e].length;return r}function cv(e){let t=[],n=0;for(let r of e)t.push(n),n+=r.length;return t}function lv(e,t,n){let r=[...e],i=cv(r),a=iv(r);return sv(a.map(e=>r[e]),t,a.map(e=>n[i[e]]??0))}function uv(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m){let h=C_.fromFeature(e,i,d===2,t),g=h.determineLineBreaks(l,a,t,r,p),_=f_(h.text)?ov(h,g):nv(h,g),v=[],y={positionedLines:v,text:h.toString(),top:u[1],bottom:u[1],left:u[0],right:u[0],writingMode:d,iconsInText:false,verticalizable:false};return wv(y,t,n,r,_,o,s,c,d,l,f,m),!tv(v)&&y}function dv(e){let t=.5,n=.5;switch(e){case `right`:case `top-right`:case `bottom-right`:t=1;break;case `left`:case `top-left`:case `bottom-left`:t=0;}switch(e){case `bottom`:case `bottom-right`:case `bottom-left`:n=1;break;case `top`:case `top-right`:case `top-left`:n=0;}return {horizontalAlign:t,verticalAlign:n}}function fv(e,t,n){let r=t.getMaxScale()*24,{maxImageWidth:i,maxImageHeight:a}=t.getMaxImageSize(e),o=Math.max(r,a*n);return {verticalLineContentWidth:Math.max(r,i*n),horizontalLineContentHeight:o}}function pv(e){switch(e){case `top`:return 0;case `center`:return .5;default:return 1}}function mv(e,t){return e?.rect?e:t?{rect:null,metrics:t.metrics}:null}function hv(e,t,n){return !(e===1||!t&&!Cg(n)||t&&(i_(n)||u_(n)))}function gv(e){return /\p{Nd}/u.test(String.fromCodePoint(e))}function _v(e){return /\p{Lu}/u.test(String.fromCodePoint(e))}function vv(e){let t=e.some(gv)&&e.every(e=>gv(e)||a_(e)),n=e.length<=3&&e.every(e=>_v(e)||gv(e));return t||n}function yv(e){return (gv(e)||_v(e))&&!u_(e)}function bv(e,t){return t?hv(2,true,e):!l_(e)||yv(e)||a_(e)}function xv(e,t,n){let r=false;for(let i=0;i<e.length;i++){if(t[i])continue;let a=p_[e[i]];if(a&&(i===0||t[i-1])&&(i===e.length-1||t[i+1])){if(t[i]=true,n[i])continue;e[i]=a,r=true;}}return r}function Sv(e,t,n){for(;t>=0&&t<e.length&&i_(e[t]);)t+=n;let r=[];for(;t>=0&&t<e.length&&!Cg(e[t])&&!i_(e[t]);)r.push(e[t]),t+=n;return !vv(r)&&!r.every(a_)&&r.some(l_)}function Cv(e,t){let n=e.graphemes().slice(),r=n.map(e=>e.codePointAt(0)),i=n.map((n,r)=>{let i=e.getSection(r);return `fontStack`in i&&!!t[i.fontStack]?.vertical?.[n]}),a=r.map(Cg),o=t=>!a[t]&&!i_(r[t])&&!(`imageName`in e.getSection(t));for(let e=0;e<r.length;e++){if(!o(e))continue;let t=e;for(;t+1<r.length&&o(t+1);)t++;let n=r.slice(e,t+1),s=vv(n),c=n.every(a_),l=c&&(Sv(r,e-1,-1)||Sv(r,t+1,1)),u=!s&&n.some(l_);for(let n=e;n<=t;n++)a[n]=s&&yv(r[n])||i[n]&&!l&&(c||!u&&!l_(r[n]));e=t;}if(i.some((e,t)=>e&&!a[t])){let n=e.text;if(e.verticalizePunctuation(t,a),e.text!==n)return Cv(e,t)}return xv(n,a,i)&&(e.text=n.join(``),e.cachedGraphemes=n),a}function wv(e,t,n,r,i,a,o,s,c,l,u,d){let f=0,p=0,m=0,h=0,g=s===`right`?1:s===`left`?0:.5,_=24/d,v=0;for(let o of i){o.trim();let i=o.getMaxScale(),s={positionedGlyphs:[],lineOffset:0};e.positionedLines[v]=s;let d=s.positionedGlyphs,y=0;if(!o.length()){p+=a,++v;continue}let b=fv(r,o,_),x=c===2&&!u?Cv(o,t):null,S=o.graphemes();for(let a=0;a<S.length;a++){let s=o.getSection(a),m=S[a],h=m.codePointAt(0),g=x?x[a]:hv(c,u,h),v=`fontStack`in s&&r_(m)&&!t[s.fontStack]?.default?.[m]?[...m]:[m];for(let c of v){let u={glyph:c.codePointAt(0),grapheme:c,imageName:null,x:f,y:p+-17,vertical:g,scale:1,fontStack:``,sectionIndex:o.getSectionIndex(a),metrics:null,rect:null},m;if(`fontStack`in s){if(m=Tv(s,c,g,b,t,n),!m)continue;u.fontStack=s.fontStack;}else {if(e.iconsInText=true,s.scale*=_,m=Ev(s,g,i,b,r),!m)continue;y=Math.max(y,m.imageOffset),u.imageName=s.imageName;}let{rect:h,metrics:v,baselineOffset:x}=m;if(u.y+=x,u.scale=s.scale,u.metrics=v,u.rect=h,d.push(u),!g)f+=v.advance*s.scale+l;else {e.verticalizable=true;let t=`imageName`in s?v.advance:24;f+=t*s.scale+l;}}}if(d.length!==0){let e=f-l;m=Math.max(e,m),Dv(d,0,d.length-1,g);}f=0;let C=(i-1)*24;s.lineOffset=Math.max(y,C);let w=a*i+y;p+=w,h=Math.max(w,h),++v;}let{horizontalAlign:y,verticalAlign:b}=dv(o);Ov(e.positionedLines,g,y,b,m,h,a,p,i.length),e.top+=-b*p,e.bottom=e.top+p,e.left+=-y*m,e.right=e.left+m;}function Tv(e,t,n,r,i,a){let o=n&&i[e.fontStack]?.vertical?.[t]?`vertical`:`default`,s=a[e.fontStack]?.[o]?.[t],c=i[e.fontStack]?.[o]?.[t],l=mv(s,c);if(l===null)return null;let u;if(n)u=r.verticalLineContentWidth-e.scale*24;else {let t=pv(e.verticalAlign);u=(r.horizontalLineContentHeight-e.scale*24)*t;}return {rect:l.rect,metrics:l.metrics,baselineOffset:u}}function Ev(e,t,n,r,i){let a=i[e.imageName];if(!a)return null;let o=a.paddedRect,s=a.displaySize,c={width:s[0],height:s[1],left:1,top:-3,advance:t?s[1]:s[0]},l;if(t)l=r.verticalLineContentWidth-s[1]*e.scale;else {let t=pv(e.verticalAlign);l=(r.horizontalLineContentHeight-s[1]*e.scale)*t;}let u=(t?s[0]:s[1])*e.scale-24*n;return {rect:o,metrics:c,baselineOffset:l,imageOffset:u}}function Dv(e,t,n,r){if(r===0)return;let i=e[n],a=i.metrics.advance*i.scale,o=(e[n].x+a)*r;for(let r=t;r<=n;r++)e[r].x-=o;}function Ov(e,t,n,r,i,a,o,s,c){let l=(t-n)*i,u=0;u=a===o?-r*c*o+.5*o:-s*r- -17;for(let t of e)for(let e of t.positionedGlyphs)e.x+=l,e.y+=u;}function kv(e,t,n){let{horizontalAlign:r,verticalAlign:i}=dv(n),a=t[0],o=t[1],s=a-e.displaySize[0]*r,c=s+e.displaySize[0],l=o-e.displaySize[1]*i;return {image:e,top:l,bottom:l+e.displaySize[1],left:s,right:c}}function Av(e){let t=e.left,n=e.top,r=e.right-t,i=e.bottom-n,a=e.image.content[2]-e.image.content[0],o=e.image.content[3]-e.image.content[1],s=e.image.textFitWidth??`stretchOrShrink`,c=e.image.textFitHeight??`stretchOrShrink`,l=a/o;if(c===`proportional`){if(s===`stretchOnly`&&r/i<l||s===`proportional`){let e=Math.ceil(i*l);t*=e/r,r=e;}}else if(s===`proportional`&&c===`stretchOnly`&&l!==0&&r/i>l){let e=Math.ceil(r/l);n*=e/i,i=e;}return {x1:t,y1:n,x2:t+r,y2:n+i}}function jv(e,t,n,r,i,a){let o=e.image,s;if(o.content){let e=o.content,t=o.pixelRatio||1;s=[e[0]/t,e[1]/t,o.displaySize[0]-e[2]/t,o.displaySize[1]-e[3]/t];}let c=t.left*a,l=t.right*a,u,d,f,p;n===`width`||n===`both`?(p=i[0]+c-r[3],d=i[0]+l+r[1]):(p=i[0]+(c+l-o.displaySize[0])/2,d=p+o.displaySize[0]);let m=t.top*a,h=t.bottom*a;return n===`height`||n===`both`?(u=i[1]+m-r[0],f=i[1]+h+r[2]):(u=i[1]+(m+h-o.displaySize[1])/2,f=u+o.displaySize[1]),{image:o,top:u,right:d,bottom:f,left:p,collisionPadding:s}}const Mv=32640;function Nv(e,t){let{expression:n}=t;if(n.kind===`constant`)return {kind:`constant`,layoutSize:n.evaluate(new Ll(e+1))};if(n.kind===`source`)return {kind:`source`};if(n.kind===`composite`){let{minZoom:t,maxZoom:r}=Pv(n.zoomStops,e);return {kind:`composite`,minZoom:t,maxZoom:r,interpolationType:n.interpolationType}}{let t=Fv(n),r=n.evaluate(new Ll(e+1));return {kind:`camera`,zoomStops:n.zoomStops,sizes:t,layoutSize:r,interpolationType:n.interpolationType}}}function Pv(e,t){let n=0;for(;n<e.length&&e[n]<=t;)n++;n=Math.max(0,n-1);let r=n;for(;r<e.length&&e[r]<t+1;)r++;return r=Math.min(e.length-1,r),{minZoom:e[n],maxZoom:e[r]}}function Fv(e){return e.zoomStops.map(t=>e.evaluate(new Ll(t===-1/0?e.zoomStops[1]-1:t)))}var Bv=class e extends u{constructor(e,t,n,r){super(e,t),this.angle=n,r!==void 0&&(this.segment=r);}clone(){return new e(this.x,this.y,this.angle,this.segment)}};K(`Anchor`,Bv);function Vv(e,t,n,r,i){if(t.segment===void 0||n===0)return true;let a=t,o=t.segment+1,s=0;for(;s>-n/2;){if(o--,o<0)return false;s-=e[o].dist(a),a=e[o];}s+=e[o].dist(e[o+1]),o++;let c=[],l=0;for(;s<n/2;){let t=e[o-1],n=e[o],a=e[o+1];if(!a)return false;let u=t.angleTo(n)-n.angleTo(a);for(u=Math.abs((u+3*Math.PI)%(Math.PI*2)-Math.PI),c.push({distance:s,angleDelta:u}),l+=u;s-c[0].distance>r;)l-=c.shift().angleDelta;if(l>i)return false;o++,s+=n.dist(a);}return true}function Hv(e){let t=0;for(let n=0;n<e.length-1;n++)t+=e[n].dist(e[n+1]);return t}function Uv(e,t,n){return e?3/5*t*n:0}function Wv(e,t){return Math.max(e?e.right-e.left:0,t?t.right-t.left:0)}function Gv(e,t,n,r,i,a){let o=Uv(n,i,a),s=Wv(n,r)*a,c=0,l=Hv(e)/2;for(let n=0;n<e.length-1;n++){let r=e[n],i=e[n+1],a=r.dist(i);if(c+a>l){let u=(l-c)/a,d=new Bv(Ai.number(r.x,i.x,u),Ai.number(r.y,i.y,u),i.angleTo(r),n);return d._round(),!o||Vv(e,d,s,o,t)?d:void 0}c+=a;}}function Kv(e,t,n,r,i,a,o,s,c){let l=Uv(r,a,o),u=Wv(r,i),d=u*o,f=e[0].x===0||e[0].x===c||e[0].y===0||e[0].y===c;t-d<t/4&&(t=d+t/4);let p=a*2;return qv(e,f?t/2*s%t:(u/2+p)*o*s%t,t,l,n,d,f,false,c)}function qv(e,t,n,r,i,a,o,s,c){let l=a/2,u=Hv(e),d=0,f=t-n,p=[];for(let t=0;t<e.length-1;t++){let o=e[t],s=e[t+1],m=o.dist(s),h=s.angleTo(o);for(;f+n<d+m;){f+=n;let g=(f-d)/m,_=Ai.number(o.x,s.x,g),v=Ai.number(o.y,s.y,g);if(_>=0&&_<c&&v>=0&&v<c&&f-l>=0&&f+l<=u){let n=new Bv(_,v,h,t);n._round(),(!r||Vv(e,n,a,r,i))&&p.push(n);}}d+=m;}return !s&&!p.length&&!o&&(p=qv(e,d/2,n,r,i,a,o,true,c)),p}function Jv(e,t,n,r,i){let a=[];for(let o of e){let e;for(let s=0;s<o.length-1;s++){let c=o[s],l=o[s+1];c.x<t&&l.x<t||(c.x<t?c=new u(t,c.y+(l.y-c.y)*((t-c.x)/(l.x-c.x)))._round():l.x<t&&(l=new u(t,c.y+(l.y-c.y)*((t-c.x)/(l.x-c.x)))._round()),!(c.y<n&&l.y<n)&&(c.y<n?c=new u(c.x+(l.x-c.x)*((n-c.y)/(l.y-c.y)),n)._round():l.y<n&&(l=new u(c.x+(l.x-c.x)*((n-c.y)/(l.y-c.y)),n)._round()),!(c.x>=r&&l.x>=r)&&(c.x>=r?c=new u(r,c.y+(l.y-c.y)*((r-c.x)/(l.x-c.x)))._round():l.x>=r&&(l=new u(r,c.y+(l.y-c.y)*((r-c.x)/(l.x-c.x)))._round()),!(c.y>=i&&l.y>=i)&&(c.y>=i?c=new u(c.x+(l.x-c.x)*((i-c.y)/(l.y-c.y)),i)._round():l.y>=i&&(l=new u(c.x+(l.x-c.x)*((i-c.y)/(l.y-c.y)),i)._round()),(!e||!c.equals(e[e.length-1]))&&(e=[c],a.push(e)),e.push(l)))));}}return a}function Yv(e,t,n,r){let i=[],a=e.image,o=a.pixelRatio,s=a.paddedRect.w-2,c=a.paddedRect.h-2,l={x1:e.left,y1:e.top,x2:e.right,y2:e.bottom},d=a.stretchX||[[0,s]],f=a.stretchY||[[0,c]],p=(e,t)=>e+t[1]-t[0],m=d.reduce(p,0),h=f.reduce(p,0),g=s-m,_=c-h,v=0,y=m,b=0,x=h,S=0,C=g,w=0,T=_;if(a.content&&r){let t=a.content,n=t[2]-t[0],r=t[3]-t[1];(a.textFitWidth||a.textFitHeight)&&(l=Av(e)),v=Xv(d,0,t[0]),b=Xv(f,0,t[1]),y=Xv(d,t[0],t[2]),x=Xv(f,t[1],t[3]),S=t[0]-v,w=t[1]-b,C=n-y,T=r-x;}let E=l.x1,D=l.y1,O=l.x2-E,k=l.y2-D,A=(e,r,i,s)=>{let c=Qv(e.stretch-v,y,O,E),l=$v(e.fixed-S,C,e.stretch,m),d=Qv(r.stretch-b,x,k,D),f=$v(r.fixed-w,T,r.stretch,h),p=Qv(i.stretch-v,y,O,E),g=$v(i.fixed-S,C,i.stretch,m),_=Qv(s.stretch-b,x,k,D),A=$v(s.fixed-w,T,s.stretch,h),j=new u(c,d),ee=new u(p,d),te=new u(p,_),ne=new u(c,_),re=new u(l/o,f/o),ie=new u(g/o,A/o),ae=t*Math.PI/180;if(ae){let e=Math.sin(ae),t=Math.cos(ae),n=[t,-e,e,t];j._matMult(n),ee._matMult(n),ne._matMult(n),te._matMult(n);}let oe=e.stretch+e.fixed,se=i.stretch+i.fixed,ce=r.stretch+r.fixed,le=s.stretch+s.fixed;return {tl:j,tr:ee,bl:ne,br:te,tex:{x:a.paddedRect.x+1+oe,y:a.paddedRect.y+1+ce,w:se-oe,h:le-ce},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:re,pixelOffsetBR:ie,minFontScaleX:C/o/O,minFontScaleY:T/o/k,isSDF:n}};if(!r||!a.stretchX&&!a.stretchY)i.push(A({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:s+1},{fixed:0,stretch:c+1}));else {let e=Zv(d,g,m),t=Zv(f,_,h);for(let n=0;n<e.length-1;n++){let r=e[n],a=e[n+1];for(let e=0;e<t.length-1;e++){let n=t[e],o=t[e+1];i.push(A(r,n,a,o));}}}return i}function Xv(e,t,n){let r=0;for(let i of e)r+=Math.max(t,Math.min(n,i[1]))-Math.max(t,Math.min(n,i[0]));return r}function Zv(e,t,n){let r=[{fixed:-1,stretch:0}];for(let[t,n]of e){let e=r[r.length-1];r.push({fixed:t-e.stretch,stretch:e.stretch}),r.push({fixed:t-e.stretch,stretch:e.stretch+(n-t)});}return r.push({fixed:t+1,stretch:n}),r}function Qv(e,t,n,r){return e/t*n+r}function $v(e,t,n,r){return e-t*n/r}function ey(e,t,n,r,i,a,o,s){let c=r.layout.get(`text-rotate`).evaluate(a,{})*Math.PI/180,l=[];for(let e of t.positionedLines)for(let r of e.positionedGlyphs){if(!r.rect)continue;let a=r.rect||{},d=4,f=true,p=1,m=0,h=(i||s)&&r.vertical,g=r.metrics.advance*r.scale/2;if(s&&t.verticalizable){let t=(r.scale-1)*24,n=(24-r.metrics.width*r.scale)/2;m=e.lineOffset/2-(r.imageName?-n:t);}if(r.imageName){let e=o[r.imageName];f=e.sdf,p=e.pixelRatio,d=1/p;}let _=i?[r.x+g,r.y]:[0,0],v=i?[0,0]:[r.x+g+n[0],r.y+n[1]-m],y=[0,0];h&&(y=v,v=[0,0]);let b=r.metrics.isDoubleResolution?2:1,x=(r.metrics.left-d)*r.scale-g+v[0],S=(-r.metrics.top-d)*r.scale+v[1],C=x+a.w/b*r.scale/p,w=S+a.h/b*r.scale/p,T=new u(x,S),E=new u(C,S),D=new u(x,w),O=new u(C,w);if(h){let e=new u(-g,g- -17),t=-Math.PI/2,n=12-g,i=r.imageName?n:0,a=new u(22-n,-i),o=new u(...y);T._rotateAround(t,e)._add(a)._add(o),E._rotateAround(t,e)._add(a)._add(o),D._rotateAround(t,e)._add(a)._add(o),O._rotateAround(t,e)._add(a)._add(o);}if(c){let e=Math.sin(c),t=Math.cos(c),n=[t,-e,e,t];T._matMult(n),E._matMult(n),D._matMult(n),O._matMult(n);}let k=new u(0,0),A=new u(0,0);l.push({tl:T,tr:E,bl:D,br:O,tex:a,writingMode:t.writingMode,glyphOffset:_,sectionIndex:r.sectionIndex,isSDF:f,pixelOffsetTL:k,pixelOffsetBR:A,minFontScaleX:0,minFontScaleY:0});}return l}var ty=class{constructor(e,t,n,r,i,a,o,s,c,l){if(this.boxStartIndex=e.length,c){let e=a.top,t=a.bottom,n=a.collisionPadding;n&&(e-=n[1],t+=n[3]);let r=t-e;r>0&&(r=Math.max(10,r),this.circleDiameter=r);}else {let c=a.image?.content&&(a.image.textFitWidth||a.image.textFitHeight)?Av(a):{x1:a.left,y1:a.top,x2:a.right,y2:a.bottom};c.y1=c.y1*o-s[0],c.y2=c.y2*o+s[2],c.x1=c.x1*o-s[3],c.x2=c.x2*o+s[1];let d=a.collisionPadding;if(d&&(c.x1-=d[0]*o,c.y1-=d[1]*o,c.x2+=d[2]*o,c.y2+=d[3]*o),l){let e=new u(c.x1,c.y1),t=new u(c.x2,c.y1),n=new u(c.x1,c.y2),r=new u(c.x2,c.y2),i=l*Math.PI/180;e._rotate(i),t._rotate(i),n._rotate(i),r._rotate(i),c.x1=Math.min(e.x,t.x,n.x,r.x),c.x2=Math.max(e.x,t.x,n.x,r.x),c.y1=Math.min(e.y,t.y,n.y,r.y),c.y2=Math.max(e.y,t.y,n.y,r.y);}e.emplaceBack(t.x,t.y,c.x1,c.y1,c.x2,c.y2,n,r,i);}this.boxEndIndex=e.length;}},ny=class{constructor(e=[],t=(e,t)=>e<t?-1:+(e>t)){if(this.data=e,this.length=this.data.length,this.compare=t,this.length>0)for(let e=(this.length>>1)-1;e>=0;e--)this._down(e);}push(e){this.data.push(e),this._up(this.length++);}pop(){if(this.length===0)return;let e=this.data[0],t=this.data.pop();return --this.length>0&&(this.data[0]=t,this._down(0)),e}peek(){return this.data[0]}_up(e){let{data:t,compare:n}=this,r=t[e];for(;e>0;){let i=e-1>>1,a=t[i];if(n(r,a)>=0)break;t[e]=a,e=i;}t[e]=r;}_down(e){let{data:t,compare:n}=this,r=this.length>>1,i=t[e];for(;e<r;){let r=(e<<1)+1,a=r+1;if(a<this.length&&n(t[a],t[r])<0&&(r=a),n(t[r],i)>=0)break;t[e]=t[r],e=r;}t[e]=i;}};function ry(e,t=1){let n=$d.fromPoints(e[0]),r=Math.min(n.width(),n.height()),i=r/2,a=new ny([],iy),{minX:o,minY:s,maxX:c,maxY:l}=n;if(r===0)return new u(o,s);for(let t=o;t<c;t+=r)for(let n=s;n<l;n+=r)a.push(new ay(t+i,n+i,i,e));let d=sy(e),f=d;for(;a.length;){let n=a.pop();(n.d>f.d||!f.d)&&(f=n),!(n.max-f.d<=t)&&(i=n.h/2,a.push(new ay(n.p.x-i,n.p.y-i,i,e)),a.push(new ay(n.p.x+i,n.p.y-i,i,e)),a.push(new ay(n.p.x-i,n.p.y+i,i,e)),a.push(new ay(n.p.x+i,n.p.y+i,i,e)));}return d.d>0&&f.d-d.d<=t?d.p:f.p}function iy(e,t){return t.max-e.max}var ay=class{constructor(e,t,n,r){this.p=new u(e,t),this.h=n,this.d=oy(this.p,r),this.max=this.d+this.h*Math.SQRT2;}};function oy(e,t){let n=false,r=1/0;for(let i of t)for(let t=0,a=i.length,o=a-1;t<a;o=t++){let a=i[t],s=i[o];a.y>e.y!=s.y>e.y&&e.x<(s.x-a.x)*(e.y-a.y)/(s.y-a.y)+a.x&&(n=!n),r=Math.min(r,gf(e,a,s));}return (n?1:-1)*Math.sqrt(r)}function sy(e){let t=0,n=0,r=0,i=e[0];for(let e=0,a=i.length,o=a-1;e<a;o=e++){let a=i[e],s=i[o],c=a.x*s.y-s.x*a.y;n+=(a.x+s.x)*c,r+=(a.y+s.y)*c,t+=c*3;}return new ay(n/t,r/t,0,e)}let cy=/* @__PURE__ */ function(e){return e[e.center=1]=`center`,e[e.left=2]=`left`,e[e.right=3]=`right`,e[e.top=4]=`top`,e[e.bottom=5]=`bottom`,e[e[`top-left`]=6]=`top-left`,e[e[`top-right`]=7]=`top-right`,e[e[`bottom-left`]=8]=`bottom-left`,e[e[`bottom-right`]=9]=`bottom-right`,e}({});const ly=1/0;function uy(e,t){function n(e,t){let n=0,r=0;t<0&&(t=0);let i=t/Math.SQRT2;switch(e){case `top-right`:case `top-left`:r=i-7;break;case `bottom-right`:case `bottom-left`:r=-i+7;break;case `bottom`:r=-t+7;break;case `top`:r=t-7;}switch(e){case `top-right`:case `bottom-right`:n=-i;break;case `top-left`:case `bottom-left`:n=i;break;case `left`:n=t;break;case `right`:n=-t;}return [n,r]}function r(e,t,n){let r=0,i=0;switch(t=Math.abs(t),n=Math.abs(n),e){case `top-right`:case `top-left`:case `top`:i=n-7;break;case `bottom-right`:case `bottom-left`:case `bottom`:i=-n+7;}switch(e){case `top-right`:case `bottom-right`:case `right`:r=-t;break;case `top-left`:case `bottom-left`:case `left`:r=t;}return [r,i]}return t[1]===ly?n(e,t[0]):r(e,t[0],t[1])}function dy(e,t,n){let r=e.layout,i=r.get(`text-variable-anchor-offset`)?.evaluate(t,{},n);if(i){let e=i.values,t=[];for(let n=0;n<e.length;n+=2){let r=t[n]=e[n],i=e[n+1].map(e=>e*24);r.startsWith(`top`)?i[1]-=7:r.startsWith(`bottom`)&&(i[1]+=7),t[n+1]=i;}return new mi(t)}let a=r.get(`text-variable-anchor`);if(a){let i;i=e._unevaluatedLayout.getValue(`text-radial-offset`)===void 0?r.get(`text-offset`).evaluate(t,{},n).map(e=>e*24):[r.get(`text-radial-offset`).evaluate(t,{},n)*24,ly];let o=[];for(let e of a)o.push(e,uy(e,i));return new mi(o)}return null}function fy(e){e.bucket.createArrays();let t=512*e.bucket.overscaling;e.bucket.tilePixelRatio=P/t,e.bucket.compareText={},e.bucket.iconsNeedLinear=false;let n=e.bucket.layers[0],r=n.layout,i=n._unevaluatedLayout._values,a={layoutIconSize:i[`icon-size`].possiblyEvaluate(new Ll(e.bucket.zoom+1),e.canonical),layoutTextSize:i[`text-size`].possiblyEvaluate(new Ll(e.bucket.zoom+1),e.canonical),textMaxSize:i[`text-size`].possiblyEvaluate(new Ll(18))};if(e.bucket.textSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.bucket.textSizeData;a.compositeTextSizes=[i[`text-size`].possiblyEvaluate(new Ll(t),e.canonical),i[`text-size`].possiblyEvaluate(new Ll(n),e.canonical)];}if(e.bucket.iconSizeData.kind===`composite`){let{minZoom:t,maxZoom:n}=e.bucket.iconSizeData;a.compositeIconSizes=[i[`icon-size`].possiblyEvaluate(new Ll(t),e.canonical),i[`icon-size`].possiblyEvaluate(new Ll(n),e.canonical)];}let o=r.get(`text-line-height`)*24,s=r.get(`text-rotation-alignment`)!==`viewport`&&r.get(`symbol-placement`)!==`point`,c=r.get(`text-keep-upright`),l=r.get(`text-size`);for(let t of e.bucket.features){let i=r.get(`text-font`).evaluate(t,{},e.canonical).join(`,`),u=l.evaluate(t,{},e.canonical),d=a.layoutTextSize.evaluate(t,{},e.canonical),f=a.layoutIconSize.evaluate(t,{},e.canonical),p={horizontal:{},vertical:void 0},m=t.text,h=[0,0];if(m){let a=m.toString(),l=r.get(`text-letter-spacing`).evaluate(t,{},e.canonical)*24,f=s_(a)?l:0,g=r.get(`text-anchor`).evaluate(t,{},e.canonical),_=dy(n,t,e.canonical);if(!_){let n=r.get(`text-radial-offset`).evaluate(t,{},e.canonical);h=n?uy(g,[n*24,ly]):r.get(`text-offset`).evaluate(t,{},e.canonical).map(e=>e*24);}let v=s?`center`:r.get(`text-justify`).evaluate(t,{},e.canonical),y=r.get(`symbol-placement`)===`point`?r.get(`text-max-width`).evaluate(t,{},e.canonical)*24:1/0,b=()=>{e.bucket.allowVerticalPlacement&&o_(a)&&(p.vertical=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,`left`,f,h,2,true,d,u));};if(!s&&_){let t=/* @__PURE__ */ new Set;if(v===`auto`)for(let e=0;e<_.values.length;e+=2)t.add(py(_.values[e]));else t.add(v);let n=false;for(let r of t)if(!p.horizontal[r]){if(n)p.horizontal[r]=p.horizontal[0];else {let t=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,`center`,r,f,h,1,false,d,u);t&&(p.horizontal[r]=t,n=t.positionedLines.length===1);}}b();}else {v===`auto`&&(v=py(g));let t=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,v,f,h,1,false,d,u);t&&(p.horizontal[v]=t),b(),o_(a)&&s&&c&&(p.vertical=uv(m,e.glyphMap,e.glyphPositions,e.imagePositions,i,y,o,g,v,f,h,2,false,d,u));}}let g,_=false;if(t.icon?.name){let n=e.imageMap[t.icon.name];n&&(g=kv(e.imagePositions[t.icon.name],r.get(`icon-offset`).evaluate(t,{},e.canonical),r.get(`icon-anchor`).evaluate(t,{},e.canonical)),_=!!n.sdf,e.bucket.sdfIcons===void 0?e.bucket.sdfIcons=_:e.bucket.sdfIcons!==_&&L$1(`Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer`),n.pixelRatio===e.bucket.pixelRatio?r.get(`icon-rotate`).constantOr(1)!==0&&(e.bucket.iconsNeedLinear=true):e.bucket.iconsNeedLinear=true);}let v=_y(p.horizontal)||p.vertical;e.bucket.iconsInText||=v?v.iconsInText:false,(v||g)&&my(e.bucket,t,p,g,e.imageMap,a,d,f,h,_,e.canonical,e.subdivisionGranularity,e.hasPromoteId);}e.showCollisionBoxes&&e.bucket.generateCollisionDebugBuffers();}function py(e){switch(e){case `right`:case `top-right`:case `bottom-right`:return `right`;case `left`:case `top-left`:case `bottom-left`:return `left`}return `center`}function my(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=a.textMaxSize.evaluate(t,{});p===void 0&&(p=o);let m=e.layers[0].layout,h=m.get(`icon-offset`).evaluate(t,{},u),g=_y(n.horizontal),_=o/24,v=e.tilePixelRatio*_,y=e.tilePixelRatio*p/24,b=e.tilePixelRatio*s,x=e.tilePixelRatio*m.get(`symbol-spacing`),S=m.get(`text-padding`)*e.tilePixelRatio,C=zy(m,t,u,e.tilePixelRatio),w=m.get(`text-max-angle`)/180*Math.PI,T=m.get(`text-rotation-alignment`)!==`viewport`&&m.get(`symbol-placement`)!==`point`,E=m.get(`icon-rotation-alignment`).constantOr(`viewport`)===`map`&&m.get(`symbol-placement`)!==`point`,D=m.get(`symbol-placement`),O=x/2,k=m.get(`icon-text-fit`),A;r&&k!==`none`&&(e.allowVerticalPlacement&&n.vertical&&(A=jv(r,n.vertical,k,m.get(`icon-text-fit-padding`),h,_)),g&&(r=jv(r,g,k,m.get(`icon-text-fit-padding`),h,_)));let j=u?d.line.getGranularityForZoomLevel(u.z):1,ee=(s,d)=>{rf(d)||vy(e,d,s,n,r,i,A,e.layers[0],e.collisionBoxArray,t.index,t.sourceLayerIndex,e.index,v,[S,S,S,S],T,c,b,C,E,h,t,a,l,u,o,f);};if(D===`line`)for(let i of Jv(t.geometry,0,0,P,P)){let t=ym(i,j),a=Kv(t,x,w,n.vertical||g,r,24,y,e.overscaling,P);for(let n of a){let r=g;(!r||!yy(e,r.text,O,n))&&ee(t,n);}}else if(D===`line-center`){for(let e of t.geometry)if(e.length>1){let t=ym(e,j),i=Gv(t,w,n.vertical||g,r,24,y);i&&ee(t,i);}}else if(t.type===`Polygon`)for(let e of Fi(t.geometry,0)){let t=ry(e,16);ee(ym(e[0],j,true),new Bv(t.x,t.y,0));}else if(t.type===`LineString`)for(let e of t.geometry){let t=ym(e,j);ee(t,new Bv(t[0].x,t[0].y,0));}else if(t.type===`Point`)for(let e of t.geometry)for(let t of e)ee([t],new Bv(t.x,t.y,0));}function hy(e,t){let n=e.length,r=t?.values;if(r?.length>0)for(let t=0;t<r.length;t+=2){let n=cy[r[t]],i=r[t+1];e.emplaceBack(n,i[0],i[1]);}return [n,e.length]}function gy(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h){let g=ey(t,n,s,i,a,o,r,e.allowVerticalPlacement),_=e.textSizeData,v=null;_.kind===`source`?(v=[128*i.layout.get(`text-size`).evaluate(o,{})],v[0]>32640&&L$1(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)):_.kind===`composite`&&(v=[128*m.compositeTextSizes[0].evaluate(o,{},h),128*m.compositeTextSizes[1].evaluate(o,{},h)],(v[0]>32640||v[1]>32640)&&L$1(`${e.layerIds[0]}: Value for "text-size" is >= 255. Reduce your "text-size".`)),e.addSymbols(e.text,g,v,s,a,o,u,t,l.lineStartIndex,l.lineLength,p,h,c);for(let t of d)f[t]=e.text.placedSymbolArray.length-1;return g.length*4}function _y(e){for(let t in e)return e[t];return null}function vy(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T){let E=e.addToLineVertexArray(t,n),D=s.layout.get(`symbol-height-offset`).evaluate(b,{},C);D>e.maxHeightOffset&&(e.maxHeightOffset=D);let O,k,A,j,ee=0,te=0,ne=0,re=0,ie=-1,ae=-1,oe={},se=(0, Sd.default)(``);if(e.allowVerticalPlacement&&r.vertical){let e=s.layout.get(`text-rotate`).evaluate(b,{},C)+90,n=r.vertical;A=new ty(c,t,l,u,d,n,f,p,m,e),o&&(j=new ty(c,t,l,u,d,o,g,_,m,e));}if(i){let n=s.layout.get(`icon-rotate`).evaluate(b,{}),r=s.layout.get(`icon-text-fit`)!==`none`,a=Yv(i,n,S,r),f=o?Yv(o,n,S,r):void 0;k=new ty(c,t,l,u,d,i,g,_,false,n),ee=a.length*4;let p=e.iconSizeData,m=null;p.kind===`source`?(m=[128*s.layout.get(`icon-size`).evaluate(b,{})],m[0]>32640&&L$1(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)):p.kind===`composite`&&(m=[128*x.compositeIconSizes[0].evaluate(b,{},C),128*x.compositeIconSizes[1].evaluate(b,{},C)],(m[0]>32640||m[1]>32640)&&L$1(`${e.layerIds[0]}: Value for "icon-size" is >= 255. Reduce your "icon-size".`)),e.addSymbols(e.icon,a,m,y,v,b,0,t,E.lineStartIndex,E.lineLength,-1,C,D),ie=e.icon.placedSymbolArray.length-1,f&&(te=f.length*4,e.addSymbols(e.icon,f,m,y,v,b,2,t,E.lineStartIndex,E.lineLength,-1,C,D),ae=e.icon.placedSymbolArray.length-1);}let ce=Object.keys(r.horizontal);for(let n of ce){let i=r.horizontal[n];O||=(se=(0, Sd.default)(i.text),new ty(c,t,l,u,d,i,f,p,m,s.layout.get(`text-rotate`).evaluate(b,{},C)));let o=i.positionedLines.length===1;if(ne+=gy(e,t,i,a,s,m,b,h,D,E,r.vertical?1:3,o?ce:[n],oe,ie,x,C),o)break}r.vertical&&(re+=gy(e,t,r.vertical,a,s,m,b,h,D,E,2,[`vertical`],oe,ae,x,C));let le=O?O.boxStartIndex:e.collisionBoxArray.length,ue=O?O.boxEndIndex:e.collisionBoxArray.length,de=A?A.boxStartIndex:e.collisionBoxArray.length,fe=A?A.boxEndIndex:e.collisionBoxArray.length,pe=k?k.boxStartIndex:e.collisionBoxArray.length,me=k?k.boxEndIndex:e.collisionBoxArray.length,he=j?j.boxStartIndex:e.collisionBoxArray.length,ge=j?j.boxEndIndex:e.collisionBoxArray.length,M=-1,_e=(e,t)=>e?.circleDiameter?Math.max(e.circleDiameter,t):t;M=_e(O,M),M=_e(A,M),M=_e(k,M),M=_e(j,M);let ve=+(M>-1);ve&&(M*=w/24),e.glyphOffsetArray.length>=e.maxGlyphs&&L$1(`Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907`),b.sortKey!==void 0&&e.addToSortKeyRanges(e.symbolInstances.length,b.sortKey);let ye=dy(s,b,C),[be,xe]=hy(e.textAnchorOffsets,ye);T&&(se=by(se,b)),e.symbolInstances.emplaceBack(t.x,t.y,oe.right>=0?oe.right:-1,oe.center>=0?oe.center:-1,oe.left>=0?oe.left:-1,oe.vertical||-1,ie,ae,se,le,ue,de,fe,pe,me,he,ge,l,ne,re,ee,te,ve,0,f,M,be,xe,D);}function yy(e,t,n,r){let i=e.compareText;if(!(t in i))i[t]=[];else {let e=i[t];for(let t=e.length-1;t>=0;t--)if(r.dist(e[t])<n)return true}return i[t].push(r),false}function by(e,t){return t.id==null||t.properties?.cluster?e:(0, Sd.default)(String(t.id),e)}function xy(e,t,n){let r=`never`,i=e.get(t);return i?r=i:e.get(n)&&(r=`always`),r}const Sy=[{name:`a_fade_opacity`,components:1,type:`Uint8`,offset:0}];function Cy(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=s?Math.min(Mv,Math.round(s[0])):0,h=s?Math.min(Mv,Math.round(s[1])):0;e.emplaceBack(t,n,Math.round(r*32),Math.round(i*32),a,o,(m<<1)+ +!!c,h,l*16,u*16,d*256,f*256,p);}function wy(e,t,n){e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n),e.emplaceBack(t.x,t.y,n);}function Ty(e){for(let t of e.sections)if(f_(t.text))return true;return false}var Ey=class{constructor(e){this.layoutVertexArray=new id,this.indexArray=new dd,this.programConfigurations=e,this.segments=new gd,this.dynamicLayoutVertexArray=new ad,this.opacityVertexArray=new od,this.hasVisibleVertices=false,this.placedSymbolArray=new zu;}isEmpty(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0}upload(e,t,n,r){this.isEmpty()||(n&&(this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,dg.members),this.indexBuffer=e.createIndexBuffer(this.indexArray,t),this.dynamicLayoutVertexBuffer=e.createVertexBuffer(this.dynamicLayoutVertexArray,fg.members,true),this.opacityVertexBuffer=e.createVertexBuffer(this.opacityVertexArray,Sy,true),this.opacityVertexBuffer.itemSize=1),(n||r)&&this.programConfigurations.upload(e));}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy());}};K(`SymbolBuffers`,Ey);var Dy=class{constructor(e,t,n){this.layoutVertexArray=new e,this.layoutAttributes=t,this.indexArray=new n,this.segments=new gd,this.collisionVertexArray=new ld;}upload(e){this.layoutVertexBuffer=e.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=e.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=e.createVertexBuffer(this.collisionVertexArray,pg.members,true);}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy());}};K(`CollisionBuffers`,Dy);var Oy=class{constructor(e){this.collisionBoxArray=e.collisionBoxArray,this.zoom=e.zoom,this.overscaling=e.overscaling,this.layers=e.layers,this.layerIds=this.layers.map(e=>e.id),this.index=e.index,this.pixelRatio=e.pixelRatio,this.sourceLayerIndex=e.sourceLayerIndex,this.hasDependencies=true,this.hasRTLText=false,this.maxHeightOffset=0,this.sortKeyRanges=[],this.collisionCircleArray=[],this.maxGlyphs=65535;let t=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Nv(this.zoom,t[`text-size`]),this.iconSizeData=Nv(this.zoom,t[`icon-size`]);let n=this.layers[0].layout,r=n.get(`symbol-sort-key`),i=n.get(`symbol-z-order`);this.canOverlap=xy(n,`text-overlap`,`text-allow-overlap`)!==`never`||xy(n,`icon-overlap`,`icon-allow-overlap`)!==`never`||n.get(`text-ignore-placement`)||n.get(`icon-ignore-placement`),this.sortFeaturesByKey=i!==`viewport-y`&&!r.isConstant();let a=i===`viewport-y`||i===`auto`&&!this.sortFeaturesByKey;this.sortFeaturesByY=a&&this.canOverlap,n.get(`symbol-placement`)===`point`&&(this.writingModes=n.get(`text-writing-mode`).map(e=>ev[e])),this.stateDependentLayerIds=this.layers.filter(e=>e.isStateDependent()).map(e=>e.id),this.sourceID=e.sourceID;}createArrays(){this.text=new Ey(new Gd(this.layers,this.zoom,e=>e.startsWith(`text`))),this.icon=new Ey(new Gd(this.layers,this.zoom,e=>e.startsWith(`icon`))),this.glyphOffsetArray=new Hu,this.lineVertexArray=new Uu,this.symbolInstances=new Vu,this.textAnchorOffsets=new Gu;}calculateGlyphDependencies(e,t,n,r){let i=C_.fromFeature(e,n,false),a=i.graphemes();for(let e=0;e<a.length;e++){let n=i.getSection(e);if(`imageName`in n)continue;t[n.fontStack]||={default:{},vertical:{}};let o=t[n.fontStack],s=a[e],c=r&&bv(s.codePointAt(0),this.allowVerticalPlacement);r_(s)&&(o.default[s]=true),c&&(o.vertical[s]=true);for(let e of s){if(o.default[e]=true,!r)continue;c&&r_(s)&&(o.vertical[e]=true);let t=p_[e];t&&(o.default[t]=true);}}}populate(e,t,n){let r=this.layers[0],i=r.layout,a=i.get(`text-font`),o=i.get(`text-field`),s=i.get(`icon-image`),c=(o.value.kind!==`constant`||o.value.value instanceof ci&&!o.value.value.isEmpty()||o.value.value.toString().length>0)&&(a.value.kind!==`constant`||a.value.value.length>0),l=s.value.kind!==`constant`||!!s.value.value||Object.keys(s.parameters).length>0,u=i.get(`symbol-sort-key`),d=i.get(`symbol-placement`)===`point`;if(this.features=[],!c&&!l)return;let f=t.iconDependencies,p=t.glyphDependencies,m=t.availableImages,h=new Ll(this.zoom),g=i.get(`text-keep-upright`);for(let{feature:t,id:o,index:s,sourceLayerIndex:_}of e){let e=r._featureFilter.needGeometry,v=Qd(t,e);if(!r._featureFilter.filter(h,v,n)||(e||(v.geometry=Zd(t)),d&&t.type===1&&ky(v.geometry)))continue;let y;if(c){let e=r.getValueAndResolveTokens(`text-field`,v,n,m),t=ci.factory(e);this.hasRTLText||=Ty(t),y=Kg(t,r,v);}let b;if(l){let e=r.getValueAndResolveTokens(`icon-image`,v,n,m);b=e instanceof hi?e:hi.fromString(e);}if(!y&&!b)continue;let x=this.sortFeaturesByKey?u.evaluate(v,{},n):void 0,S={id:o,text:y,icon:b,index:s,sourceLayerIndex:_,geometry:v.geometry,properties:t.properties,type:Bm.types[t.type],sortKey:x};if(this.features.push(S),b&&(f[b.name]=true),y){let e=a.evaluate(v,{},n).join(`,`),t=i.get(`text-rotation-alignment`)!==`viewport`&&i.get(`symbol-placement`)!==`point`;this.allowVerticalPlacement=this.writingModes?.includes(2);let r=(t&&g||this.allowVerticalPlacement)&&o_(y.toString());this.calculateGlyphDependencies(y,p,e,r);for(let e of y.sections)e.image&&(f[e.image.name]=true);}}i.get(`symbol-placement`)===`line`&&(this.features=Zg(this.features)),this.sortFeaturesByKey&&this.features.sort((e,t)=>e.sortKey-t.sortKey);}update(e,t,n){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}),this.icon.programConfigurations.updatePaintArrays(e,t,this.layers,{imagePositions:n}));}addFeatures({options:e,canonical:t,glyphMap:n,glyphPositions:r,iconMap:i,iconPositions:a,showCollisionBoxes:o}){fy({bucket:this,glyphMap:n,glyphPositions:r,imageMap:i,imagePositions:a,showCollisionBoxes:o,canonical:t,subdivisionGranularity:e.subdivisionGranularity,hasPromoteId:e.featureIndex.promoteId!=null});}isEmpty(){return this.symbolInstances.length===0}uploadPending(){return !this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(e){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(e),this.iconCollisionBox.upload(e)),this.text.upload(e,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(e,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=true;}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy();}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData();}addToLineVertexArray(e,t){let n=this.lineVertexArray.length;if(e.segment!==void 0){let n=e.dist(t[e.segment+1]),r=e.dist(t[e.segment]),i={};for(let r=e.segment+1;r<t.length;r++)i[r]={x:t[r].x,y:t[r].y,tileUnitDistanceFromAnchor:n},r<t.length-1&&(n+=t[r+1].dist(t[r]));for(let n=e.segment||0;n>=0;n--)i[n]={x:t[n].x,y:t[n].y,tileUnitDistanceFromAnchor:r},n>0&&(r+=t[n-1].dist(t[n]));for(let e=0;e<t.length;e++){let t=i[e];this.lineVertexArray.emplaceBack(t.x,t.y,t.tileUnitDistanceFromAnchor);}}return {lineStartIndex:n,lineLength:this.lineVertexArray.length-n}}addSymbols(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=e.indexArray,m=e.layoutVertexArray,h=e.segments.prepareSegment(4*t.length,m,p,this.canOverlap?a.sortKey:void 0),g=this.glyphOffsetArray.length,_=h.vertexLength,v=this.allowVerticalPlacement&&o===2?Math.PI/2:0,y=a.text&&a.text.sections;for(let r=0;r<t.length;r++){let{tl:i,tr:o,bl:c,br:l,tex:u,pixelOffsetTL:g,pixelOffsetBR:_,minFontScaleX:b,minFontScaleY:x,glyphOffset:S,isSDF:C,sectionIndex:w}=t[r],T=h.vertexLength,E=S[1];Cy(m,s.x,s.y,i.x,E+i.y,u.x,u.y,n,C,g.x,g.y,b,x,f),Cy(m,s.x,s.y,o.x,E+o.y,u.x+u.w,u.y,n,C,_.x,g.y,b,x,f),Cy(m,s.x,s.y,c.x,E+c.y,u.x,u.y+u.h,n,C,g.x,_.y,b,x,f),Cy(m,s.x,s.y,l.x,E+l.y,u.x+u.w,u.y+u.h,n,C,_.x,_.y,b,x,f),wy(e.dynamicLayoutVertexArray,s,v),p.emplaceBack(T,T+2,T+1),p.emplaceBack(T+1,T+2,T+3),h.vertexLength+=4,h.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(S[0]),(r===t.length-1||w!==t[r+1].sectionIndex)&&e.programConfigurations.populatePaintArrays(m.length,a,a.index,{imagePositions:{},canonical:d,formattedSection:y?.[w]});}e.placedSymbolArray.emplaceBack(s.x,s.y,g,this.glyphOffsetArray.length-g,_,c,l,s.segment,n?n[0]:0,n?n[1]:0,r[0],r[1],o,0,false,0,u,f);}_addCollisionDebugVertex(e,t,n,r,i,a){return t.emplaceBack(0,0),e.emplaceBack(n.x,n.y,r,i,Math.round(a.x),Math.round(a.y))}addCollisionDebugVertices(e,t,n,r,i,a,o){let s=i.segments.prepareSegment(4,i.layoutVertexArray,i.indexArray),c=s.vertexLength,l=i.layoutVertexArray,d=i.collisionVertexArray,f=o.anchorX,p=o.anchorY;this._addCollisionDebugVertex(l,d,a,f,p,new u(e,t)),this._addCollisionDebugVertex(l,d,a,f,p,new u(n,t)),this._addCollisionDebugVertex(l,d,a,f,p,new u(n,r)),this._addCollisionDebugVertex(l,d,a,f,p,new u(e,r)),s.vertexLength+=4;let m=i.indexArray;m.emplaceBack(c,c+1),m.emplaceBack(c+1,c+2),m.emplaceBack(c+2,c+3),m.emplaceBack(c+3,c),s.primitiveLength+=4;}addDebugCollisionBoxes(e,t,n,r){for(let i=e;i<t;i++){let e=this.collisionBoxArray.get(i),t=e.x1,a=e.y1,o=e.x2,s=e.y2;this.addCollisionDebugVertices(t,a,o,s,r?this.textCollisionBox:this.iconCollisionBox,e.anchorPoint,n);}}generateCollisionDebugBuffers(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Dy(sd,mg.members,fd),this.iconCollisionBox=new Dy(sd,mg.members,fd);for(let e=0;e<this.symbolInstances.length;e++){let t=this.symbolInstances.get(e);this.addDebugCollisionBoxes(t.textBoxStartIndex,t.textBoxEndIndex,t,true),this.addDebugCollisionBoxes(t.verticalTextBoxStartIndex,t.verticalTextBoxEndIndex,t,true),this.addDebugCollisionBoxes(t.iconBoxStartIndex,t.iconBoxEndIndex,t,false),this.addDebugCollisionBoxes(t.verticalIconBoxStartIndex,t.verticalIconBoxEndIndex,t,false);}}_deserializeCollisionBoxesForSymbol(e,t,n,r,i,a,o,s,c){let l={};for(let r=t;r<n;r++){let t=e.get(r);l.textBox={x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2,anchorPointX:t.anchorPointX,anchorPointY:t.anchorPointY},l.textFeatureIndex=t.featureIndex;break}for(let t=r;t<i;t++){let n=e.get(t);l.verticalTextBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalTextFeatureIndex=n.featureIndex;break}for(let t=a;t<o;t++){let n=e.get(t);l.iconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.iconFeatureIndex=n.featureIndex;break}for(let t=s;t<c;t++){let n=e.get(t);l.verticalIconBox={x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2,anchorPointX:n.anchorPointX,anchorPointY:n.anchorPointY},l.verticalIconFeatureIndex=n.featureIndex;break}return l}deserializeCollisionBoxes(e){this.collisionArrays=[];for(let t=0;t<this.symbolInstances.length;t++){let n=this.symbolInstances.get(t);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(e,n.textBoxStartIndex,n.textBoxEndIndex,n.verticalTextBoxStartIndex,n.verticalTextBoxEndIndex,n.iconBoxStartIndex,n.iconBoxEndIndex,n.verticalIconBoxStartIndex,n.verticalIconBoxEndIndex));}}hasTextData(){return this.text.segments.get().length>0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(e,t){let n=e.placedSymbolArray.get(t),r=n.vertexStartIndex+n.numGlyphs*4;for(let t=n.vertexStartIndex;t<r;t+=4)e.indexArray.emplaceBack(t,t+2,t+1),e.indexArray.emplaceBack(t+1,t+2,t+3);}getSortedSymbolIndexes(e){if(this.sortedAngle===e&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;let t=Math.sin(e),n=Math.cos(e),r=[],i=[],a=[];for(let e=0;e<this.symbolInstances.length;++e){a.push(e);let o=this.symbolInstances.get(e);r.push(Math.round(t*o.anchorX+n*o.anchorY)|0),i.push(o.featureIndex);}return a.sort((e,t)=>r[e]-r[t]||i[t]-i[e]),a}addToSortKeyRanges(e,t){let n=this.sortKeyRanges[this.sortKeyRanges.length-1];n?.sortKey===t?n.symbolInstanceEnd=e+1:this.sortKeyRanges.push({sortKey:t,symbolInstanceStart:e,symbolInstanceEnd:e+1});}sortFeatures(e){if(this.sortFeaturesByY&&this.sortedAngle!==e&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(e),this.sortedAngle=e,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let e of this.symbolInstanceIndexes){let t=this.symbolInstances.get(e);this.featureSortOrder.push(t.featureIndex);let n=[t.rightJustifiedTextSymbolIndex,t.centerJustifiedTextSymbolIndex,t.leftJustifiedTextSymbolIndex];for(let e=0;e<n.length;e++){let t=n[e];t>=0&&n.indexOf(t)===e&&this.addIndicesForPlacedSymbol(this.text,t);}t.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,t.verticalPlacedTextSymbolIndex),t.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.placedIconSymbolIndex),t.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,t.verticalPlacedIconSymbolIndex);}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray);}}};function ky(e){return e.every(e=>e.every(rf))}K(`SymbolBucket`,Oy,{omit:[`layers`,`collisionBoxArray`,`features`,`compareText`]});var Iy=class{constructor(e){if(e.property.overrides===void 0)throw Error(`overrides must be provided to instantiate FormatSectionOverride class`);this.type=e.property.overrides?e.property.overrides.runtimeType:fr,this.defaultValue=e;}evaluate(e){if(e.formattedSection){let t=this.defaultValue.property.overrides;if(t?.hasOverride(e.formattedSection))return t.getOverride(e.formattedSection)}return e.feature&&e.featureState?this.defaultValue.evaluate(e.feature,e.featureState):this.defaultValue.property.specification.default}eachChild(e){if(!this.defaultValue.isConstant()){let t=this.defaultValue.value;e(t._styleExpression.expression);}}outputDefined(){return false}serialize(){return null}};K(`FormatSectionOverride`,Iy,{omit:[`defaultValue`]});function zy(e,t,n,r=1){let i=e.get(`icon-padding`).evaluate(t,{},n)?.values;return [i[0]*r,i[1]*r,i[2]*r,i[3]*r]}const lb=/* @__PURE__ */ new Float64Array(256);for(let e=0;e<256;e++){let t=.5-(e/255)**(1/2.2);lb[e]=t*Math.abs(t);}lb[255]=-1e20;B.layout_symbol[`text-font`].default.join(`,`);function Hb(e,t,n){return !(e<0||e>25||n<0||n>=2**e||t<0||t>=2**e)}var Wb=class{constructor(e,t,n){if(!Hb(e,t,n))throw Error(`x=${t}, y=${n}, z=${e} outside of bounds. 0<=x<${2**e}, 0<=y<${2**e} 0<=z<=25 `);this.z=e,this.x=t,this.y=n,this.key=qb(0,e,e,t,n);}equals(e){return this.z===e.z&&this.x===e.x&&this.y===e.y}url(e,t,n,r=Jm){let i=Yb(this.z,this.x,this.y);return e[(this.x+this.y)%e.length].replace(/{prefix}/g,(this.x%16).toString(16)+(this.y%16).toString(16)).replace(/{z}/g,String(this.z)).replace(/{x}/g,String(this.x)).replace(/{y}/g,String(n===`tms`?2**this.z-this.y-1:this.y)).replace(/{ratio}/g,t>1?`@2x`:``).replace(/{quadkey}/g,i).replace(/{bbox-epsg-3857}/g,()=>Jb(this.x,this.y,this.z,Jm)).replace(/{bbox}/g,()=>Jb(this.x,this.y,this.z,r))}isChildOf(e){let t=this.z-e.z;return t>0&&e.x===this.x>>t&&e.y===this.y>>t}getTilePoint(e){let t=2**this.z;return new u((e.x*t-this.x)*P,(e.y*t-this.y)*P)}toString(){return `${this.z}/${this.x}/${this.y}`}},Gb=class{constructor(e,t){this.wrap=e,this.canonical=t,this.key=qb(e,t.z,t.z,t.x,t.y);}},Kb=class e{constructor(e,t,n,r,i){if(this.terrainRttPosMatrix32f=null,e<n)throw Error(`overscaledZ should be >= z; overscaledZ = ${e}; z = ${n}`);this.overscaledZ=e,this.wrap=t,this.canonical=new Wb(n,+r,+i),this.key=qb(t,e,n,r,i);}clone(){return new e(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(e){return this.overscaledZ===e.overscaledZ&&this.wrap===e.wrap&&this.canonical.equals(e.canonical)}scaledTo(t){if(t>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${t}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-t;return t>this.canonical.z?new e(t,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new e(t,this.wrap,t,this.canonical.x>>n,this.canonical.y>>n)}isOverscaled(){return this.overscaledZ>this.canonical.z}calculateScaledKey(e,t){if(e>this.overscaledZ)throw Error(`targetZ > this.overscaledZ; targetZ = ${e}; overscaledZ = ${this.overscaledZ}`);let n=this.canonical.z-e;return e>this.canonical.z?qb(this.wrap*+t,e,this.canonical.z,this.canonical.x,this.canonical.y):qb(this.wrap*+t,e,e,this.canonical.x>>n,this.canonical.y>>n)}isChildOf(e){if(e.wrap!==this.wrap||this.overscaledZ-e.overscaledZ<=0)return false;if(e.overscaledZ===0)return this.overscaledZ>0;let t=this.canonical.z-e.canonical.z;return t<0?false:e.canonical.x===this.canonical.x>>t&&e.canonical.y===this.canonical.y>>t}children(t){if(this.overscaledZ>=t)return [new e(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let n=this.canonical.z+1,r=this.canonical.x*2,i=this.canonical.y*2;return [new e(n,this.wrap,n,r,i),new e(n,this.wrap,n,r+1,i),new e(n,this.wrap,n,r,i+1),new e(n,this.wrap,n,r+1,i+1)]}isLessThan(e){return this.wrap<e.wrap?true:this.wrap>e.wrap?false:this.overscaledZ<e.overscaledZ?true:this.overscaledZ>e.overscaledZ?false:this.canonical.x<e.canonical.x?true:this.canonical.x>e.canonical.x?false:this.canonical.y<e.canonical.y}wrapped(){return new e(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)}unwrapTo(t){return new e(this.overscaledZ,t,this.canonical.z,this.canonical.x,this.canonical.y)}overscaleFactor(){return 2**(this.overscaledZ-this.canonical.z)}toUnwrapped(){return new Gb(this.wrap,this.canonical)}toString(){return `${this.overscaledZ}/${this.canonical.x}/${this.canonical.y}`}getTilePoint(e){return this.canonical.getTilePoint(new ih(e.x-this.wrap,e.y))}normalizeCoordinates(t,n,r=P){if(t>=0&&t<r&&n>=0&&n<r)return {tileID:this,x:t,y:n};let i=Math.floor(t/r),a=Math.floor(n/r),o=t-i*r,s=n-a*r,c=this.canonical.z,l=1<<c,u=this.canonical.y+a;if(u<0||u>=l)return null;let d=this.canonical.x+i,f=this.wrap;return d<0?(f-=Math.ceil(-d/l),d=(d%l+l)%l):d>=l&&(f+=Math.floor(d/l),d%=l),{tileID:new e(this.overscaledZ,f,c,d,u),x:o,y:s}}};function qb(e,t,n,r,i){e*=2,e<0&&(e=e*-1-1);let a=1<<n;return (a*a*e+a*i+r).toString(36)+n.toString(36)+t.toString(36)}function Jb(e,t,n,r){let i=2**n,a=r.extentAtZoom0/i,[o,s]=r.origin,c=s-r.extentAtZoom0,l=i-t-1;return `${o+e*a},${c+l*a},${o+(e+1)*a},${c+(l+1)*a}`}function Yb(e,t,n){let r=``;for(let i=e;i>0;i--){let e=1<<i-1;r+=(t&e?1:0)+(n&e?2:0);}return r}K(`CanonicalTileID`,Wb),K(`OverscaledTileID`,Kb,{omit:[`terrainRttPosMatrix32f`]});var fx=class{forward(e){return [e[0],e[1]]}inverse(e){return [e[0],e[1]]}};const px=new class{constructor(){this.name=`identity`,this.projection=new fx,this.tileMatrixSet={origin:[-90,90],extentAtZoom0:180};}};/* @__PURE__ */ new Map([[px.name,px]]);lu([{name:`a_pos`,type:`Int16`,components:2}]);const Ux=`_geojsonTileLayer`;var Wx=class{constructor(e){this._stringToNumber={},this._numberToString=[];for(let t=0;t<e.length;t++){let n=e[t];this._stringToNumber[n]=t,this._numberToString[t]=n;}}encode(e){return this._stringToNumber[e]}decode(e){if(e>=this._numberToString.length)throw Error(`Out of bounds. Index requested n=${e} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[e]}},Gx=class e{static{this.worldCoordinateHelpers=/* @__PURE__ */ new WeakMap;}constructor(t,n,r,i,a,o){this.type=`Feature`,this._vectorTileFeature=t,this._x=r,this._y=i,this._z=n,o!==ah&&e.worldCoordinateHelpers.set(this,o);for(let e in t.properties)typeof t.properties[e]==`string`&&t.properties[e].startsWith(`__$json__:`)&&(t.properties[e]=JSON.parse(t.properties[e].slice(10)));this.properties=t.properties,this.id=a;}projectPoint(e,t,n,r,i){if(i){let a=i.lngLatFromWorld((e.x+t)/r,(e.y+n)/r);return [a.lng,a.lat]}return [(e.x+t)*360/r-180,360/Math.PI*Math.atan(Math.exp((1-(e.y+n)*2/r)*Math.PI))-90]}projectLine(e,t,n,r,i){return e.map(e=>this.projectPoint(e,t,n,r,i))}get geometry(){if(this._geometry)return this._geometry;let t=this._vectorTileFeature,n=e.worldCoordinateHelpers.get(this),r=t.extent*2**this._z,i=t.extent*this._x,a=t.extent*this._y,o=t.loadGeometry();switch(t.type){case 1:{let e=[];for(let t of o)e.push(t[0]);let t=this.projectLine(e,i,a,r,n);this._geometry=e.length===1?{type:`Point`,coordinates:t[0]}:{type:`MultiPoint`,coordinates:t};break}case 2:{let e=o.map(e=>this.projectLine(e,i,a,r,n));this._geometry=e.length===1?{type:`LineString`,coordinates:e[0]}:{type:`MultiLineString`,coordinates:e};break}case 3:{let e=Vm(o),t=[];for(let o of e)t.push(o.map(e=>this.projectLine(e,i,a,r,n)));this._geometry=t.length===1?{type:`Polygon`,coordinates:t[0]}:{type:`MultiPolygon`,coordinates:t};break}default:throw Error(`unknown feature type: ${t.type}`)}return this._geometry}set geometry(e){this._geometry=e;}toJSON(){let e={geometry:this.geometry};for(let t in this)t!==`_geometry`&&t!==`_vectorTileFeature`&&t!==`_x`&&t!==`_y`&&t!==`_z`&&(e[t]=this[t]);return e}},Kx=class{constructor(e,t,n){this._name=e,this.dataBuffer=t,typeof n==`number`?this._size=n:(this.nullabilityBuffer=n,this._size=n.size());}getValue(e){return this.nullabilityBuffer&&!this.nullabilityBuffer.get(e)?null:this.getValueFromBuffer(e)}has(e){return this.nullabilityBuffer?.get(e)||!this.nullabilityBuffer}get name(){return this._name}get size(){return this._size}},qx=class extends Kx{},Jx=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Yx=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Xx=class extends Kx{constructor(e,t,n,r){super(e,t,r),this.delta=n;}},Zx=class extends Xx{constructor(e,t,n,r,i){super(e,i?Int32Array.of(t):Uint32Array.of(t),n,r);}getValueFromBuffer(e){return this.dataBuffer[0]+e*this.delta}},Qx=class extends Kx{constructor(e,t,n,r){super(e,r?Int32Array.of(t):Uint32Array.of(t),n);}getValueFromBuffer(e){return this.dataBuffer[0]}},$x=class{constructor(e,t,n,r,i=4096){if(this._name=e,this._geometryVector=t,this._idVector=n,this._propertyVectors=r,this._extent=i,e.length===0)throw Error(`Missing layer name`)}get name(){return this._name}get idVector(){return this._idVector}get geometryVector(){return this._geometryVector}get propertyVectors(){return this._propertyVectors??[]}getPropertyVector(e){return this.propertyVectorsMap||=new Map(this.propertyVectors.map(e=>[e.name,e])),this.propertyVectorsMap.get(e)}get numFeatures(){return this.geometryVector.numGeometries}get extent(){return this._extent}getFeatures(){let e=[],t=this.geometryVector.getGeometries();for(let n=0;n<this.numFeatures;n++){let r;if(this.idVector){let e=this.idVector.getValue(n);e!==null&&(r=this.containsMaxSafeIntegerValues(this.idVector)?Number(e):e);}let i={coordinates:t[n],type:this.geometryVector.geometryType(n)},a={};for(let e of this.propertyVectors){if(!e)continue;let t=e.name,r=e.getValue(n);r!==null&&(a[t]=r);}e.push({id:r,geometry:i,properties:a});}return e}containsMaxSafeIntegerValues(e){return e instanceof Jx||e instanceof Qx||e instanceof Zx||e instanceof Yx}};const eS={FEATURE:0},tS={BOOLEAN:0,INT_8:1,UINT_8:2,INT_32:3,UINT_32:4,INT_64:5,UINT_64:6,FLOAT:7,DOUBLE:8,STRING:9},nS={GEOMETRY:0,STRUCT:1,MAP:2},rS={ID:0};var iS=class{constructor(e){this.value=e;}get(){return this.value}set(e){this.value=e;}increment(){return this.value++}add(e){this.value+=e;}},$;(function(e){e.NONE=`NONE`,e.DELTA=`DELTA`,e.COMPONENTWISE_DELTA=`COMPONENTWISE_DELTA`,e.RLE=`RLE`,e.MORTON=`MORTON`;})($||={});var aS;(function(e){e.NONE=`NONE`,e.FAST_PFOR=`FAST_PFOR`,e.VARINT=`VARINT`;})(aS||={});const oS=/* @__PURE__ */ new Uint32Array(33);oS[0]=0;for(let e=1;e<=32;e++)oS[e]=e===32?4294967295:4294967295>>>32-e;const sS=oS,cS=65536;function lS(e,t){return e-e%t}function uS(e){return lS(e+31,32)}function dS(e){if(!Number.isFinite(e)||e<=0)return cS;let t=lS(Math.floor(e),256);return t===0?256:t}function fS(e){let t=e>>>0;return ((t&255)<<24|(t&65280)<<8|t>>>8&65280|t>>>24&255)>>>0}function pS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0;n[i++]=a>>>0&3,n[i++]=a>>>2&3,n[i++]=a>>>4&3,n[i++]=a>>>6&3,n[i++]=a>>>8&3,n[i++]=a>>>10&3,n[i++]=a>>>12&3,n[i++]=a>>>14&3,n[i++]=a>>>16&3,n[i++]=a>>>18&3,n[i++]=a>>>20&3,n[i++]=a>>>22&3,n[i++]=a>>>24&3,n[i++]=a>>>26&3,n[i++]=a>>>28&3,n[i++]=a>>>30&3,n[i++]=o>>>0&3,n[i++]=o>>>2&3,n[i++]=o>>>4&3,n[i++]=o>>>6&3,n[i++]=o>>>8&3,n[i++]=o>>>10&3,n[i++]=o>>>12&3,n[i++]=o>>>14&3,n[i++]=o>>>16&3,n[i++]=o>>>18&3,n[i++]=o>>>20&3,n[i++]=o>>>22&3,n[i++]=o>>>24&3,n[i++]=o>>>26&3,n[i++]=o>>>28&3,n[i]=o>>>30&3;}function mS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0;n[i++]=a>>>0&7,n[i++]=a>>>3&7,n[i++]=a>>>6&7,n[i++]=a>>>9&7,n[i++]=a>>>12&7,n[i++]=a>>>15&7,n[i++]=a>>>18&7,n[i++]=a>>>21&7,n[i++]=a>>>24&7,n[i++]=a>>>27&7,n[i++]=(a>>>30|(o&1)<<2)&7,n[i++]=o>>>1&7,n[i++]=o>>>4&7,n[i++]=o>>>7&7,n[i++]=o>>>10&7,n[i++]=o>>>13&7,n[i++]=o>>>16&7,n[i++]=o>>>19&7,n[i++]=o>>>22&7,n[i++]=o>>>25&7,n[i++]=o>>>28&7,n[i++]=(o>>>31|(s&3)<<1)&7,n[i++]=s>>>2&7,n[i++]=s>>>5&7,n[i++]=s>>>8&7,n[i++]=s>>>11&7,n[i++]=s>>>14&7,n[i++]=s>>>17&7,n[i++]=s>>>20&7,n[i++]=s>>>23&7,n[i++]=s>>>26&7,n[i]=s>>>29&7;}function hS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0;n[i++]=a>>>0&15,n[i++]=a>>>4&15,n[i++]=a>>>8&15,n[i++]=a>>>12&15,n[i++]=a>>>16&15,n[i++]=a>>>20&15,n[i++]=a>>>24&15,n[i++]=a>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15,n[i++]=c>>>0&15,n[i++]=c>>>4&15,n[i++]=c>>>8&15,n[i++]=c>>>12&15,n[i++]=c>>>16&15,n[i++]=c>>>20&15,n[i++]=c>>>24&15,n[i]=c>>>28&15;}function gS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0;n[i++]=a>>>0&31,n[i++]=a>>>5&31,n[i++]=a>>>10&31,n[i++]=a>>>15&31,n[i++]=a>>>20&31,n[i++]=a>>>25&31,n[i++]=(a>>>30|(o&7)<<2)&31,n[i++]=o>>>3&31,n[i++]=o>>>8&31,n[i++]=o>>>13&31,n[i++]=o>>>18&31,n[i++]=o>>>23&31,n[i++]=(o>>>28|(s&1)<<4)&31,n[i++]=s>>>1&31,n[i++]=s>>>6&31,n[i++]=s>>>11&31,n[i++]=s>>>16&31,n[i++]=s>>>21&31,n[i++]=s>>>26&31,n[i++]=(s>>>31|(c&15)<<1)&31,n[i++]=c>>>4&31,n[i++]=c>>>9&31,n[i++]=c>>>14&31,n[i++]=c>>>19&31,n[i++]=c>>>24&31,n[i++]=(c>>>29|(l&3)<<3)&31,n[i++]=l>>>2&31,n[i++]=l>>>7&31,n[i++]=l>>>12&31,n[i++]=l>>>17&31,n[i++]=l>>>22&31,n[i]=l>>>27&31;}function _S(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0;n[i++]=a>>>0&63,n[i++]=a>>>6&63,n[i++]=a>>>12&63,n[i++]=a>>>18&63,n[i++]=a>>>24&63,n[i++]=(a>>>30|(o&15)<<2)&63,n[i++]=o>>>4&63,n[i++]=o>>>10&63,n[i++]=o>>>16&63,n[i++]=o>>>22&63,n[i++]=(o>>>28|(s&3)<<4)&63,n[i++]=s>>>2&63,n[i++]=s>>>8&63,n[i++]=s>>>14&63,n[i++]=s>>>20&63,n[i++]=s>>>26&63,n[i++]=c>>>0&63,n[i++]=c>>>6&63,n[i++]=c>>>12&63,n[i++]=c>>>18&63,n[i++]=c>>>24&63,n[i++]=(c>>>30|(l&15)<<2)&63,n[i++]=l>>>4&63,n[i++]=l>>>10&63,n[i++]=l>>>16&63,n[i++]=l>>>22&63,n[i++]=(l>>>28|(u&3)<<4)&63,n[i++]=u>>>2&63,n[i++]=u>>>8&63,n[i++]=u>>>14&63,n[i++]=u>>>20&63,n[i]=u>>>26&63;}function vS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0;n[i++]=a>>>0&127,n[i++]=a>>>7&127,n[i++]=a>>>14&127,n[i++]=a>>>21&127,n[i++]=(a>>>28|(o&7)<<4)&127,n[i++]=o>>>3&127,n[i++]=o>>>10&127,n[i++]=o>>>17&127,n[i++]=o>>>24&127,n[i++]=(o>>>31|(s&63)<<1)&127,n[i++]=s>>>6&127,n[i++]=s>>>13&127,n[i++]=s>>>20&127,n[i++]=(s>>>27|(c&3)<<5)&127,n[i++]=c>>>2&127,n[i++]=c>>>9&127,n[i++]=c>>>16&127,n[i++]=c>>>23&127,n[i++]=(c>>>30|(l&31)<<2)&127,n[i++]=l>>>5&127,n[i++]=l>>>12&127,n[i++]=l>>>19&127,n[i++]=(l>>>26|(u&1)<<6)&127,n[i++]=u>>>1&127,n[i++]=u>>>8&127,n[i++]=u>>>15&127,n[i++]=u>>>22&127,n[i++]=(u>>>29|(d&15)<<3)&127,n[i++]=d>>>4&127,n[i++]=d>>>11&127,n[i++]=d>>>18&127,n[i]=d>>>25&127;}function yS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0;n[i++]=a>>>0&255,n[i++]=a>>>8&255,n[i++]=a>>>16&255,n[i++]=a>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255,n[i++]=f>>>0&255,n[i++]=f>>>8&255,n[i++]=f>>>16&255,n[i]=f>>>24&255;}function bS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0;n[i++]=a>>>0&511,n[i++]=a>>>9&511,n[i++]=a>>>18&511,n[i++]=(a>>>27|(o&15)<<5)&511,n[i++]=o>>>4&511,n[i++]=o>>>13&511,n[i++]=o>>>22&511,n[i++]=(o>>>31|(s&255)<<1)&511,n[i++]=s>>>8&511,n[i++]=s>>>17&511,n[i++]=(s>>>26|(c&7)<<6)&511,n[i++]=c>>>3&511,n[i++]=c>>>12&511,n[i++]=c>>>21&511,n[i++]=(c>>>30|(l&127)<<2)&511,n[i++]=l>>>7&511,n[i++]=l>>>16&511,n[i++]=(l>>>25|(u&3)<<7)&511,n[i++]=u>>>2&511,n[i++]=u>>>11&511,n[i++]=u>>>20&511,n[i++]=(u>>>29|(d&63)<<3)&511,n[i++]=d>>>6&511,n[i++]=d>>>15&511,n[i++]=(d>>>24|(f&1)<<8)&511,n[i++]=f>>>1&511,n[i++]=f>>>10&511,n[i++]=f>>>19&511,n[i++]=(f>>>28|(p&31)<<4)&511,n[i++]=p>>>5&511,n[i++]=p>>>14&511,n[i]=p>>>23&511;}function xS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0;n[i++]=a>>>0&1023,n[i++]=a>>>10&1023,n[i++]=a>>>20&1023,n[i++]=(a>>>30|(o&255)<<2)&1023,n[i++]=o>>>8&1023,n[i++]=o>>>18&1023,n[i++]=(o>>>28|(s&63)<<4)&1023,n[i++]=s>>>6&1023,n[i++]=s>>>16&1023,n[i++]=(s>>>26|(c&15)<<6)&1023,n[i++]=c>>>4&1023,n[i++]=c>>>14&1023,n[i++]=(c>>>24|(l&3)<<8)&1023,n[i++]=l>>>2&1023,n[i++]=l>>>12&1023,n[i++]=l>>>22&1023,n[i++]=u>>>0&1023,n[i++]=u>>>10&1023,n[i++]=u>>>20&1023,n[i++]=(u>>>30|(d&255)<<2)&1023,n[i++]=d>>>8&1023,n[i++]=d>>>18&1023,n[i++]=(d>>>28|(f&63)<<4)&1023,n[i++]=f>>>6&1023,n[i++]=f>>>16&1023,n[i++]=(f>>>26|(p&15)<<6)&1023,n[i++]=p>>>4&1023,n[i++]=p>>>14&1023,n[i++]=(p>>>24|(m&3)<<8)&1023,n[i++]=m>>>2&1023,n[i++]=m>>>12&1023,n[i]=m>>>22&1023;}function SS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0;n[i++]=a>>>0&2047,n[i++]=a>>>11&2047,n[i++]=(a>>>22|(o&1)<<10)&2047,n[i++]=o>>>1&2047,n[i++]=o>>>12&2047,n[i++]=(o>>>23|(s&3)<<9)&2047,n[i++]=s>>>2&2047,n[i++]=s>>>13&2047,n[i++]=(s>>>24|(c&7)<<8)&2047,n[i++]=c>>>3&2047,n[i++]=c>>>14&2047,n[i++]=(c>>>25|(l&15)<<7)&2047,n[i++]=l>>>4&2047,n[i++]=l>>>15&2047,n[i++]=(l>>>26|(u&31)<<6)&2047,n[i++]=u>>>5&2047,n[i++]=u>>>16&2047,n[i++]=(u>>>27|(d&63)<<5)&2047,n[i++]=d>>>6&2047,n[i++]=d>>>17&2047,n[i++]=(d>>>28|(f&127)<<4)&2047,n[i++]=f>>>7&2047,n[i++]=f>>>18&2047,n[i++]=(f>>>29|(p&255)<<3)&2047,n[i++]=p>>>8&2047,n[i++]=p>>>19&2047,n[i++]=(p>>>30|(m&511)<<2)&2047,n[i++]=m>>>9&2047,n[i++]=m>>>20&2047,n[i++]=(m>>>31|(h&1023)<<1)&2047,n[i++]=h>>>10&2047,n[i]=h>>>21&2047;}function CS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0;n[i++]=a>>>0&4095,n[i++]=a>>>12&4095,n[i++]=(a>>>24|(o&15)<<8)&4095,n[i++]=o>>>4&4095,n[i++]=o>>>16&4095,n[i++]=(o>>>28|(s&255)<<4)&4095,n[i++]=s>>>8&4095,n[i++]=s>>>20&4095,n[i++]=c>>>0&4095,n[i++]=c>>>12&4095,n[i++]=(c>>>24|(l&15)<<8)&4095,n[i++]=l>>>4&4095,n[i++]=l>>>16&4095,n[i++]=(l>>>28|(u&255)<<4)&4095,n[i++]=u>>>8&4095,n[i++]=u>>>20&4095,n[i++]=d>>>0&4095,n[i++]=d>>>12&4095,n[i++]=(d>>>24|(f&15)<<8)&4095,n[i++]=f>>>4&4095,n[i++]=f>>>16&4095,n[i++]=(f>>>28|(p&255)<<4)&4095,n[i++]=p>>>8&4095,n[i++]=p>>>20&4095,n[i++]=m>>>0&4095,n[i++]=m>>>12&4095,n[i++]=(m>>>24|(h&15)<<8)&4095,n[i++]=h>>>4&4095,n[i++]=h>>>16&4095,n[i++]=(h>>>28|(g&255)<<4)&4095,n[i++]=g>>>8&4095,n[i]=g>>>20&4095;}function wS(e,t,n,r){let i=r,a=e[t]>>>0,o=e[t+1]>>>0,s=e[t+2]>>>0,c=e[t+3]>>>0,l=e[t+4]>>>0,u=e[t+5]>>>0,d=e[t+6]>>>0,f=e[t+7]>>>0,p=e[t+8]>>>0,m=e[t+9]>>>0,h=e[t+10]>>>0,g=e[t+11]>>>0,_=e[t+12]>>>0,v=e[t+13]>>>0,y=e[t+14]>>>0,b=e[t+15]>>>0;n[i++]=a>>>0&65535,n[i++]=a>>>16&65535,n[i++]=o>>>0&65535,n[i++]=o>>>16&65535,n[i++]=s>>>0&65535,n[i++]=s>>>16&65535,n[i++]=c>>>0&65535,n[i++]=c>>>16&65535,n[i++]=l>>>0&65535,n[i++]=l>>>16&65535,n[i++]=u>>>0&65535,n[i++]=u>>>16&65535,n[i++]=d>>>0&65535,n[i++]=d>>>16&65535,n[i++]=f>>>0&65535,n[i++]=f>>>16&65535,n[i++]=p>>>0&65535,n[i++]=p>>>16&65535,n[i++]=m>>>0&65535,n[i++]=m>>>16&65535,n[i++]=h>>>0&65535,n[i++]=h>>>16&65535,n[i++]=g>>>0&65535,n[i++]=g>>>16&65535,n[i++]=_>>>0&65535,n[i++]=_>>>16&65535,n[i++]=v>>>0&65535,n[i++]=v>>>16&65535,n[i++]=y>>>0&65535,n[i++]=y>>>16&65535,n[i++]=b>>>0&65535,n[i]=b>>>16&65535;}function TS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0;n[i++]=t>>>0&1,n[i++]=t>>>1&1,n[i++]=t>>>2&1,n[i++]=t>>>3&1,n[i++]=t>>>4&1,n[i++]=t>>>5&1,n[i++]=t>>>6&1,n[i++]=t>>>7&1,n[i++]=t>>>8&1,n[i++]=t>>>9&1,n[i++]=t>>>10&1,n[i++]=t>>>11&1,n[i++]=t>>>12&1,n[i++]=t>>>13&1,n[i++]=t>>>14&1,n[i++]=t>>>15&1,n[i++]=t>>>16&1,n[i++]=t>>>17&1,n[i++]=t>>>18&1,n[i++]=t>>>19&1,n[i++]=t>>>20&1,n[i++]=t>>>21&1,n[i++]=t>>>22&1,n[i++]=t>>>23&1,n[i++]=t>>>24&1,n[i++]=t>>>25&1,n[i++]=t>>>26&1,n[i++]=t>>>27&1,n[i++]=t>>>28&1,n[i++]=t>>>29&1,n[i++]=t>>>30&1,n[i++]=t>>>31&1;}}function ES(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0;n[i++]=t>>>0&3,n[i++]=t>>>2&3,n[i++]=t>>>4&3,n[i++]=t>>>6&3,n[i++]=t>>>8&3,n[i++]=t>>>10&3,n[i++]=t>>>12&3,n[i++]=t>>>14&3,n[i++]=t>>>16&3,n[i++]=t>>>18&3,n[i++]=t>>>20&3,n[i++]=t>>>22&3,n[i++]=t>>>24&3,n[i++]=t>>>26&3,n[i++]=t>>>28&3,n[i++]=t>>>30&3,n[i++]=r>>>0&3,n[i++]=r>>>2&3,n[i++]=r>>>4&3,n[i++]=r>>>6&3,n[i++]=r>>>8&3,n[i++]=r>>>10&3,n[i++]=r>>>12&3,n[i++]=r>>>14&3,n[i++]=r>>>16&3,n[i++]=r>>>18&3,n[i++]=r>>>20&3,n[i++]=r>>>22&3,n[i++]=r>>>24&3,n[i++]=r>>>26&3,n[i++]=r>>>28&3,n[i++]=r>>>30&3;}}function DS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0;n[i++]=t>>>0&7,n[i++]=t>>>3&7,n[i++]=t>>>6&7,n[i++]=t>>>9&7,n[i++]=t>>>12&7,n[i++]=t>>>15&7,n[i++]=t>>>18&7,n[i++]=t>>>21&7,n[i++]=t>>>24&7,n[i++]=t>>>27&7,n[i++]=(t>>>30|(r&1)<<2)&7,n[i++]=r>>>1&7,n[i++]=r>>>4&7,n[i++]=r>>>7&7,n[i++]=r>>>10&7,n[i++]=r>>>13&7,n[i++]=r>>>16&7,n[i++]=r>>>19&7,n[i++]=r>>>22&7,n[i++]=r>>>25&7,n[i++]=r>>>28&7,n[i++]=(r>>>31|(o&3)<<1)&7,n[i++]=o>>>2&7,n[i++]=o>>>5&7,n[i++]=o>>>8&7,n[i++]=o>>>11&7,n[i++]=o>>>14&7,n[i++]=o>>>17&7,n[i++]=o>>>20&7,n[i++]=o>>>23&7,n[i++]=o>>>26&7,n[i++]=o>>>29&7;}}function OS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0;n[i++]=t>>>0&15,n[i++]=t>>>4&15,n[i++]=t>>>8&15,n[i++]=t>>>12&15,n[i++]=t>>>16&15,n[i++]=t>>>20&15,n[i++]=t>>>24&15,n[i++]=t>>>28&15,n[i++]=r>>>0&15,n[i++]=r>>>4&15,n[i++]=r>>>8&15,n[i++]=r>>>12&15,n[i++]=r>>>16&15,n[i++]=r>>>20&15,n[i++]=r>>>24&15,n[i++]=r>>>28&15,n[i++]=o>>>0&15,n[i++]=o>>>4&15,n[i++]=o>>>8&15,n[i++]=o>>>12&15,n[i++]=o>>>16&15,n[i++]=o>>>20&15,n[i++]=o>>>24&15,n[i++]=o>>>28&15,n[i++]=s>>>0&15,n[i++]=s>>>4&15,n[i++]=s>>>8&15,n[i++]=s>>>12&15,n[i++]=s>>>16&15,n[i++]=s>>>20&15,n[i++]=s>>>24&15,n[i++]=s>>>28&15;}}function kS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0;n[i++]=t>>>0&31,n[i++]=t>>>5&31,n[i++]=t>>>10&31,n[i++]=t>>>15&31,n[i++]=t>>>20&31,n[i++]=t>>>25&31,n[i++]=(t>>>30|(r&7)<<2)&31,n[i++]=r>>>3&31,n[i++]=r>>>8&31,n[i++]=r>>>13&31,n[i++]=r>>>18&31,n[i++]=r>>>23&31,n[i++]=(r>>>28|(o&1)<<4)&31,n[i++]=o>>>1&31,n[i++]=o>>>6&31,n[i++]=o>>>11&31,n[i++]=o>>>16&31,n[i++]=o>>>21&31,n[i++]=o>>>26&31,n[i++]=(o>>>31|(s&15)<<1)&31,n[i++]=s>>>4&31,n[i++]=s>>>9&31,n[i++]=s>>>14&31,n[i++]=s>>>19&31,n[i++]=s>>>24&31,n[i++]=(s>>>29|(c&3)<<3)&31,n[i++]=c>>>2&31,n[i++]=c>>>7&31,n[i++]=c>>>12&31,n[i++]=c>>>17&31,n[i++]=c>>>22&31,n[i++]=c>>>27&31;}}function AS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0;n[i++]=t>>>0&63,n[i++]=t>>>6&63,n[i++]=t>>>12&63,n[i++]=t>>>18&63,n[i++]=t>>>24&63,n[i++]=(t>>>30|(r&15)<<2)&63,n[i++]=r>>>4&63,n[i++]=r>>>10&63,n[i++]=r>>>16&63,n[i++]=r>>>22&63,n[i++]=(r>>>28|(o&3)<<4)&63,n[i++]=o>>>2&63,n[i++]=o>>>8&63,n[i++]=o>>>14&63,n[i++]=o>>>20&63,n[i++]=o>>>26&63,n[i++]=s>>>0&63,n[i++]=s>>>6&63,n[i++]=s>>>12&63,n[i++]=s>>>18&63,n[i++]=s>>>24&63,n[i++]=(s>>>30|(c&15)<<2)&63,n[i++]=c>>>4&63,n[i++]=c>>>10&63,n[i++]=c>>>16&63,n[i++]=c>>>22&63,n[i++]=(c>>>28|(l&3)<<4)&63,n[i++]=l>>>2&63,n[i++]=l>>>8&63,n[i++]=l>>>14&63,n[i++]=l>>>20&63,n[i++]=l>>>26&63;}}function jS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0;n[i++]=t>>>0&127,n[i++]=t>>>7&127,n[i++]=t>>>14&127,n[i++]=t>>>21&127,n[i++]=(t>>>28|(r&7)<<4)&127,n[i++]=r>>>3&127,n[i++]=r>>>10&127,n[i++]=r>>>17&127,n[i++]=r>>>24&127,n[i++]=(r>>>31|(o&63)<<1)&127,n[i++]=o>>>6&127,n[i++]=o>>>13&127,n[i++]=o>>>20&127,n[i++]=(o>>>27|(s&3)<<5)&127,n[i++]=s>>>2&127,n[i++]=s>>>9&127,n[i++]=s>>>16&127,n[i++]=s>>>23&127,n[i++]=(s>>>30|(c&31)<<2)&127,n[i++]=c>>>5&127,n[i++]=c>>>12&127,n[i++]=c>>>19&127,n[i++]=(c>>>26|(l&1)<<6)&127,n[i++]=l>>>1&127,n[i++]=l>>>8&127,n[i++]=l>>>15&127,n[i++]=l>>>22&127,n[i++]=(l>>>29|(u&15)<<3)&127,n[i++]=u>>>4&127,n[i++]=u>>>11&127,n[i++]=u>>>18&127,n[i++]=u>>>25&127;}}function MS(e,t,n,r){let i=r,a=t;for(let t=0;t<8;t++){let t=e[a++]>>>0,r=e[a++]>>>0,o=e[a++]>>>0,s=e[a++]>>>0,c=e[a++]>>>0,l=e[a++]>>>0,u=e[a++]>>>0,d=e[a++]>>>0;n[i++]=t>>>0&255,n[i++]=t>>>8&255,n[i++]=t>>>16&255,n[i++]=t>>>24&255,n[i++]=r>>>0&255,n[i++]=r>>>8&255,n[i++]=r>>>16&255,n[i++]=r>>>24&255,n[i++]=o>>>0&255,n[i++]=o>>>8&255,n[i++]=o>>>16&255,n[i++]=o>>>24&255,n[i++]=s>>>0&255,n[i++]=s>>>8&255,n[i++]=s>>>16&255,n[i++]=s>>>24&255,n[i++]=c>>>0&255,n[i++]=c>>>8&255,n[i++]=c>>>16&255,n[i++]=c>>>24&255,n[i++]=l>>>0&255,n[i++]=l>>>8&255,n[i++]=l>>>16&255,n[i++]=l>>>24&255,n[i++]=u>>>0&255,n[i++]=u>>>8&255,n[i++]=u>>>16&255,n[i++]=u>>>24&255,n[i++]=d>>>0&255,n[i++]=d>>>8&255,n[i++]=d>>>16&255,n[i++]=d>>>24&255;}}function NS(e,t,n,r){let i=r,a=t;for(let t=0;t<128;t++){let t=e[a++]>>>0;n[i++]=t&65535,n[i++]=t>>>16&65535;}}function PS(e,t,n,r,i){let a=sS[i]>>>0,o=t,s=0,c=e[o]>>>0,l=r;for(let t=0;t<8;t++){for(let t=0;t<32;t++)if(s+i<=32){let r=c>>>s&a;n[l+t]=r|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0));}else {let r=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=i-r,f=-1>>>32-d>>>0,p=(u|(c&f)<<r)&a;n[l+t]=p|0,s=d;}l+=32,s=0,t<7&&(c=e[o]>>>0);}}const FS=dS(cS),IS=3*FS/256+FS|0;function LS(){let e=new Uint8Array(IS);return {dataToBePacked:Array(33),dataPointers:/* @__PURE__ */ new Int32Array(33),byteContainer:e,byteContainerI32:new Int32Array(e.buffer,e.byteOffset,e.byteLength>>>2),exceptionSizes:/* @__PURE__ */ new Int32Array(33)}}function RS(e=16){if(e<0)throw RangeError(`initialEncodedWordCapacity must be >= 0, got ${e}`);let t=Math.max(16,e|0);return {encodedWords:new Uint32Array(t),decoderWorkspace:LS()}}function zS(e,t){if(t<=e.encodedWords.length)return e.encodedWords;let n=new Uint32Array(Math.max(16,t*2));return e.encodedWords=n,n}function BS(e,t,n,r){r.byteContainer.length<n&&(r.byteContainer=new Uint8Array(n*2),r.byteContainerI32=void 0);let i=r.byteContainer,a=n>>>2;if(i.byteOffset&3)for(let n=0;n<a;n=n+1|0){let r=e[t+n|0]|0,a=n<<2;i[a]=r&255,i[a+1|0]=r>>>8&255,i[a+2|0]=r>>>16&255,i[a+3|0]=r>>>24&255;}else {let n=r.byteContainerI32;(!n||n.buffer!==i.buffer||n.byteOffset!==i.byteOffset||n.length<a)&&(n=r.byteContainerI32=new Int32Array(i.buffer,i.byteOffset,i.byteLength>>>2)),n.set(e.subarray(t,t+a));}let o=n&3;if(o>0){let n=e[t+a|0]|0,r=a<<2;for(let e=0;e<o;e=e+1|0)i[r+e|0]=n>>>(e<<3)&255;}return i}function VS(e,t,n){let r=e[t++]|0,i=n.dataToBePacked;for(let a=2;a<=32;a=a+1|0){if(!(r>>>a-1&1))continue;if(t>=e.length)throw Error(`FastPFOR decode: truncated exception stream header (bitWidth=${a}, streamWordIndex=${t}, needWords=1, availableWords=${e.length-t}, encodedWords=${e.length})`);let o=e[t++]>>>0,s=uS(o),c=o*a+31>>>5;if(t+c>e.length)throw Error(`FastPFOR decode: truncated exception stream (bitWidth=${a}, size=${o}, streamWordIndex=${t}, needWords=${c}, availableWords=${e.length-t}, encodedWords=${e.length})`);let l=i[a];(!l||l.length<s)&&(l=i[a]=new Uint32Array(s));let u=0;for(;u<o;u=u+32|0)ZS(e,t,l,u,a),t=t+a|0;let d=u-o|0;t=t-(d*a>>>5)|0,n.exceptionSizes[a]=o;}return t}function HS(e,t,n,r,i){switch(i){case 1:TS(e,t,n,r);break;case 2:ES(e,t,n,r);break;case 3:DS(e,t,n,r);break;case 4:OS(e,t,n,r);break;case 5:kS(e,t,n,r);break;case 6:AS(e,t,n,r);break;case 7:jS(e,t,n,r);break;case 8:MS(e,t,n,r);break;case 16:NS(e,t,n,r);break;default:PS(e,t,n,r,i);}return t+(i<<3)|0}function US(e,t,n,r){if(n+2>t)throw Error(`FastPFOR decode: byteContainer underflow at block=${r} (need 2 bytes for [bitWidth, exceptionCount], bytePos=${n}, byteSize=${t})`);let i=e[n++],a=e[n++];if(i>32)throw Error(`FastPFOR decode: invalid bitWidth=${i} at block=${r} (expected 0..32). This likely indicates corrupted or truncated input.`);return {bitWidth:i,exceptionCount:a,bytePosIn:n}}function WS(e,t,n,r,i,a){if(n+1>t)throw Error(`FastPFOR decode: exception header underflow at block=${a} (need 1 byte for maxBits, bytePos=${n}, byteSize=${t})`);let o=e[n++];if(o<r||o>32)throw Error(`FastPFOR decode: invalid maxBits=${o} at block=${a} (bitWidth=${r}, expected ${r}..32)`);let s=o-r|0;if(s<1||s>32)throw Error(`FastPFOR decode: invalid exceptionBitWidth=${s} at block=${a} (bitWidth=${r}, maxBits=${o})`);if(n+i>t)throw Error(`FastPFOR decode: exception positions underflow at block=${a} (need=${i}, have=${t-n})`);return {maxBits:o,exceptionBitWidth:s,bytePosIn:n}}function GS(e,t,n,r,i,a,o,s,c){let{maxBits:l,exceptionBitWidth:u,bytePosIn:d}=WS(i,a,o,n,r,c);if(o=d,u===1){let a=1<<n;for(let n=0;n<r;n=n+1|0){let n=i[o++];e[n+t|0]|=a;}return o}let f=s.dataToBePacked[u];if(!f)throw Error(`FastPFOR decode: missing exception stream for exceptionBitWidth=${u} (bitWidth=${n}, maxBits=${l}) at block ${c}`);let p=s.dataPointers,m=p[u]|0,h=s.exceptionSizes[u]|0;if(m+r>h)throw Error(`FastPFOR decode: exception stream overflow for exceptionBitWidth=${u} (ptr=${m}, need ${r}, size=${h}) at block ${c}`);for(let a=0;a<r;a=a+1|0){let r=i[o++],a=f[m++]|0;e[r+t|0]|=a<<n;}return p[u]=m,o}function KS(e,t,n,r,i,a,o,s,c,l){let u=n|0,d=0;for(let t=0;t<o;t=t+1|0){let n=US(s,c,d,t);d=n.bytePosIn;let r=n.bitWidth,o=n.exceptionCount,f=a+t*256|0;switch(r){case 0:i.fill(0,f,f+256);break;case 32:for(let t=0;t<256;t=t+1|0)i[f+t|0]=e[u+t|0]|0;u=u+256|0;break;default:u=HS(e,u,i,f,r);}o>0&&(d=GS(i,f,r,o,s,c,d,l,t));}if(u!==r)throw Error(`FastPFOR decode: packed region mismatch (pageStart=${t}, packedStart=${n}, consumedPackedEnd=${u}, expectedPackedEnd=${r}, packedWords=${r-n}, encoded.length=${e.length})`)}function qS(e,t,n,r,i,a){let o=n|0,s=e[o]|0;if(s<=0||o+s>e.length-1)throw Error(`FastPFOR decode: invalid whereMeta=${s} at pageStart=${o} (expected > 0 and pageStart+whereMeta < encoded.length=${e.length})`);let c=o+1|0,l=o+s|0,u=e[l]>>>0,d=u+3>>>2,f=l+1,p=f+d;if(p>=e.length)throw Error(`FastPFOR decode: invalid byteSize=${u} (metaInts=${d}, pageStart=${o}, packedEnd=${l}, byteContainerStart=${f}) causes bitmapPos=${p} out of bounds (encoded.length=${e.length})`);let m=BS(e,f,u,a),h=u,g=VS(e,p,a);return a.dataPointers.fill(0),KS(e,o,c,l,t,r|0,i/256|0,m,h,a),g}function JS(e,t,n,r,i,a){let o=r+lS(i,256),s=r,c=n;for(;s!==o;){let n=Math.min(FS,o-s);c=qS(e,t,c,s,n,a),s=s+n|0;}return c}function YS(e,t,n,r,i,a){if(a===0)return t;let o=0,s=t,c=t+n,l=i,u=i,d=i+a,f=0,p=0;for(;s<c&&u<d;){let t=e[s]>>>o&255;if(o+=8,s+=o>>>5,o&=31,f|=(t&127)<<p,t&128)r[u++]=f|0,f=0,p=0;else if(p+=7,p>28)throw Error(`FastPFOR VByte: unterminated value (expected MSB=1 terminator within 5 bytes; shift=${p}, partial=${f}, decoded=${u-l}/${a}, inPos=${s}, inEnd=${c})`)}if(u!==d)throw Error(`FastPFOR VByte: truncated stream (decoded=${u-l}, expected=${a}, consumedWords=${s-t}/${n}, vbyteStart=${t}, vbyteEnd=${c})`);return s}function XS(e,t,n){let r=0,i=0,a=new Uint32Array(t),o=n??LS();if(e.length>0){let t=e[r]|0;if(r=r+1|0,t&255)throw Error(`FastPFOR decode: invalid alignedLength=${t} (expected multiple of 256)`);if(i+t>a.length)throw Error(`FastPFOR decode: output buffer too small (outPos=${i}, alignedLength=${t}, out.length=${a.length})`);r=JS(e,a,r,i,t,o),i=i+t|0;}let s=e.length-r|0,c=t-i|0;return YS(e,r,s,a,i,c),a}function ZS(e,t,n,r,i){switch(i){case 2:pS(e,t,n,r);return;case 3:mS(e,t,n,r);return;case 4:hS(e,t,n,r);return;case 5:gS(e,t,n,r);return;case 6:_S(e,t,n,r);return;case 7:vS(e,t,n,r);return;case 8:yS(e,t,n,r);return;case 9:bS(e,t,n,r);return;case 10:xS(e,t,n,r);return;case 11:SS(e,t,n,r);return;case 12:CS(e,t,n,r);return;case 16:wS(e,t,n,r);return;case 32:for(let i=0;i<32;i=i+1|0)n[r+i|0]=e[t+i|0]|0;return}let a=sS[i]>>>0,o=t,s=0,c=e[o]>>>0;for(let t=0;t<32;t++)if(s+i<=32){let l=c>>>s&a;n[r+t]=l|0,s+=i,s===32&&(s=0,o++,t!==31&&(c=e[o]>>>0));}else {let l=32-s,u=c>>>s;o++,c=e[o]>>>0;let d=sS[i-l]>>>0,f=(u|(c&d)<<l)&a;n[r+t]=f|0,s=i-l;}}function QS(e,t,n,r){if(t<0||n<0||t+n>e.length)throw RangeError(`decodeBigEndianInt32sInto: out of bounds (offset=${t}, byteLength=${n}, bytes.length=${e.length})`);let i=Math.floor(n/4),a=n%4!=0,o=a?i+1:i;if(r.length<o)throw RangeError(`decodeBigEndianInt32sInto: out.length=${r.length} < ${o}`);if(i>0){let n=e.byteOffset+t;if(n&3)for(let n=0;n<i;n++){let i=t+n*4;r[n]=e[i]<<24|e[i+1]<<16|e[i+2]<<8|e[i+3];}else {let t=new Uint32Array(e.buffer,n,i);for(let e=0;e<i;e++)r[e]=fS(t[e])|0;}}if(a){let a=t+i*4,o=n-i*4,s=0;for(let t=0;t<o;t++)s|=e[a+t]<<24-t*8;r[i]=s|0;}return o}function $S(e,t,n){let r=new Uint32Array(n),i=0,a=t.get();for(let t=0;t<r.length;t++){let t=e[a++],n=t&127;t<128||(t=e[a++],n|=(t&127)<<7,t<128||(t=e[a++],n|=(t&127)<<14,t<128||(t=e[a++],n|=(t&127)<<21,t<128||(t=e[a++],n|=(t&15)<<28)))),r[i++]=n;}return t.set(a),r}function eC(e,t,n){let r=new BigUint64Array(n);for(let n=0;n<r.length;n++)r[n]=tC(e,t);return r}function tC(e,t){let n=0n,r=0,i=t.get();for(;i<e.length;){let t=e[i++];if(n|=BigInt(t&127)<<BigInt(r),!(t&128))break;if(r+=7,r>=64)throw Error(`Varint too long`)}return t.set(i),n}function nC(e,t,n){let r=new Float64Array(n);for(let i=0;i<n;i++)r[i]=rC(e,t);return r}function rC(e,t){let n,r;return r=e[t.get()],t.increment(),n=r&127,r<128||(r=e[t.get()],t.increment(),n|=(r&127)<<7,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<14,r<128)||(r=e[t.get()],t.increment(),n|=(r&127)<<21,r<128)?n:(r=e[t.get()],n|=(r&15)<<28,iC(n,e,t))}function iC(e,t,n){let r,i;if(i=t[n.get()],n.increment(),r=(i&112)>>4,i<128||(i=t[n.get()],n.increment(),r|=(i&127)<<3,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<10,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<17,i<128)||(i=t[n.get()],n.increment(),r|=(i&127)<<24,i<128)||(i=t[n.get()],n.increment(),r|=(i&1)<<31,i<128))return r*4294967296+(e>>>0);throw Error(`Expected varint not more than 10 bytes`)}function aC(e,t,n,r){return oC(e,t,n,r,RS(n>>>2))}function oC(e,t,n,r,i){let a=r.get();if(n&3)throw Error(`FastPFOR: invalid encodedByteLength=${n} at offset=${a} (encodedBytes.length=${e.length}; expected a multiple of 4 bytes for an int32 big-endian word stream)`);let o=n>>>2,s=zS(i,o);QS(e,a,n,s);let c=XS(s.subarray(0,o),t,i.decoderWorkspace);return r.add(n),c}function sC(e){return e>>>1^-(e&1)}function cC(e){return e>>1n^-(e&1n)}function lC(e){return e%2==1?(e+1)/-2:e/2}function uC(e){let t=new Int32Array(e.length);for(let n=0;n<e.length;n++)t[n]=sC(e[n]);return t}function dC(e){let t=new BigInt64Array(e.length);for(let n=0;n<e.length;n++)t[n]=cC(e[n]);return t}function pC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r];}let r=new Uint32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function mC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r]);}let r=new BigUint64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function hC(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];r.fill(o,i,i+a),i+=a;}return r}function gC(e){let t=new Int32Array(e.length);t[0]=sC(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=sC(n)+t[r-1],t[r+1]=sC(i)+t[r],t[r+2]=sC(a)+t[r+1],t[r+3]=sC(o)+t[r+2];}for(;r!==e.length;++r)t[r]=sC(e[r])+t[r-1];return t}function _C(e){let t=new BigInt64Array(e.length);t[0]=cC(e[0]);let n=e.length/4*4,r=1;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=cC(n)+t[r-1],t[r+1]=cC(i)+t[r],t[r+2]=cC(a)+t[r+1],t[r+3]=cC(o)+t[r+2];}for(;r!==t.length;++r)t[r]=cC(e[r])+t[r-1];return t}function vC(e){e[0]=lC(e[0]);let t=e.length/4*4,n=1;if(t>=4)for(;n<t-4;n+=4){let t=e[n],r=e[n+1],i=e[n+2],a=e[n+3];e[n]=lC(t)+e[n-1],e[n+1]=lC(r)+e[n],e[n+2]=lC(i)+e[n+1],e[n+3]=lC(a)+e[n+2];}for(;n!==e.length;++n)e[n]=lC(e[n])+e[n-1];}function yC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=e[r];}let r=new Int32Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=sC(o),r.fill(o,i,i+a),i+=a;}return r}function bC(e,t,n){if(n===void 0){n=0;for(let r=0;r<t;r++)n+=Number(e[r]);}let r=new BigInt64Array(n),i=0;for(let n=0;n<t;n++){let a=Number(e[n]),o=e[n+t];o=cC(o),r.fill(o,i,i+a),i+=a;}return r}function xC(e,t,n){let r=new Float64Array(n),i=0;for(let n=0;n<t;n++){let a=e[n],o=e[n+t];o=lC(o),r.fill(o,i,i+a),i+=a;}return r}function SC(e){let t=e.length/4*4,n=1;if(t>=4)for(let r=e[0];n<t-4;n+=4)r=e[n]+=r,r=e[n+1]+=r,r=e[n+2]+=r,r=e[n+3]+=r;for(;n!==e.length;)e[n]+=e[n-1],++n;}function CC(e){let t=0;for(let n=0;n<e.length;n++)e[n]+=t,t=e[n];}function wC(e){if(e.length<2)return new Int32Array(e);let t=new Int32Array(e.length);t[0]=sC(e[0]),t[1]=sC(e[1]);let n=e.length/4*4,r=2;if(n>=4)for(;r<n-4;r+=4){let n=e[r],i=e[r+1],a=e[r+2],o=e[r+3];t[r]=sC(n)+t[r-2],t[r+1]=sC(i)+t[r-1],t[r+2]=sC(a)+t[r],t[r+3]=sC(o)+t[r+1];}for(;r!==e.length;r+=2)t[r]=sC(e[r])+t[r-2],t[r+1]=sC(e[r+1])+t[r-1];return t}function DC(e){let t=new Int32Array(e.length+1);t[0]=0,t[1]=sC(e[0]);let n=t[1];for(let r=2;r!==t.length;++r){let i=e[r-1],a=sC(i);n+=a,t[r]=t[r-1]+n;}return new Uint32Array(t)}function OC(e,t,n){let r=new Int32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];s=sC(s);for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o;}return r}function kC(e,t,n){let r=new Uint32Array(n+1);r[0]=0;let i=1,a=r[0];for(let n=0;n<t;n++){let o=e[n],s=e[n+t];for(let e=i;e<i+o;e++)r[e]=s+a,a=r[e];i+=o;}return r}function AC(e,t,n){let r=new Int32Array(n),i=0,a=0;for(let n=0;n<t;n++){let o=e[n],s=e[n+t],c=sC(s);for(let e=0;e<o;e++)a+=c,r[i++]=a;}return r}function jC(e,t,n){let r=new BigInt64Array(n),i=0,a=0n;for(let n=0;n<t;n++){let o=Number(e[n]),s=e[n+t],c=cC(s);for(let e=0;e<o;e++)a+=c,r[i++]=a;}return r}function MC(e){let t=new Uint32Array(e.length);t[0]=sC(e[0])>>>0;for(let n=1;n<e.length;n++)t[n]=t[n-1]+sC(e[n])>>>0;return t}function NC(e){let t=new BigUint64Array(e.length);t[0]=BigInt.asUintN(64,cC(e[0]));for(let n=1;n<e.length;n++)t[n]=BigInt.asUintN(64,t[n-1]+cC(e[n]));return t}function PC(e){if(e.length<2)return new Uint32Array(e);let t=new Uint32Array(e.length);t[0]=sC(e[0])>>>0,t[1]=sC(e[1])>>>0;for(let n=2;n<e.length;n+=2)t[n]=t[n-2]+sC(e[n])>>>0,t[n+1]=t[n-1]+sC(e[n+1])>>>0;return t}function IC(e){return e[1]}function LC(e){return sC(e[1])}function RC(e){if(e.length===2){let t=sC(e[1]);return [t,t]}return [sC(e[2]),sC(e[3])]}function zC(e){return e[1]}function BC(e){return cC(e[1])}function VC(e){if(e.length===2){let t=cC(e[1]);return [t,t]}return [cC(e[2]),cC(e[3])]}var HC;(function(e){e.PRESENT=`PRESENT`,e.DATA=`DATA`,e.OFFSET=`OFFSET`,e.LENGTH=`LENGTH`;})(HC||={});var UC;(function(e){e.NONE=`NONE`,e.SINGLE=`SINGLE`,e.SHARED=`SHARED`,e.VERTEX=`VERTEX`,e.MORTON=`MORTON`,e.FSST=`FSST`;})(UC||={});var WC;(function(e){e.VERTEX=`VERTEX`,e.INDEX=`INDEX`,e.STRING=`STRING`,e.KEY=`KEY`;})(WC||={});var GC;(function(e){e.VAR_BINARY=`VAR_BINARY`,e.GEOMETRIES=`GEOMETRIES`,e.PARTS=`PARTS`,e.RINGS=`RINGS`,e.TRIANGLES=`TRIANGLES`,e.SYMBOL=`SYMBOL`,e.DICTIONARY=`DICTIONARY`;})(GC||={});const KC=[HC.PRESENT,HC.DATA,HC.OFFSET,HC.LENGTH],qC=[$.NONE,$.DELTA,$.COMPONENTWISE_DELTA,$.RLE,$.MORTON],JC=[aS.NONE,aS.FAST_PFOR,aS.VARINT],YC=[UC.NONE,UC.SINGLE,UC.SHARED,UC.VERTEX,UC.MORTON,UC.FSST],XC=[WC.VERTEX,WC.INDEX,WC.STRING,WC.KEY],ZC=[GC.VAR_BINARY,GC.GEOMETRIES,GC.PARTS,GC.RINGS,GC.TRIANGLES,GC.SYMBOL,GC.DICTIONARY];function QC(e,t){let n=tw(e,t);return n.logicalLevelTechnique1===$.MORTON?$C(n,e,t):($.RLE===n.logicalLevelTechnique1||$.RLE===n.logicalLevelTechnique2)&&aS.NONE!==n.physicalLevelTechnique?ew(n,e,t):n}function $C(e,t,n){let r=$S(t,n,2);return {physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:e.decompressedCount,numBits:r[0],coordinateShift:r[1]}}function ew(e,t,n){let r=$S(t,n,2);return {physicalStreamType:e.physicalStreamType,logicalStreamType:e.logicalStreamType,logicalLevelTechnique1:e.logicalLevelTechnique1,logicalLevelTechnique2:e.logicalLevelTechnique2,physicalLevelTechnique:e.physicalLevelTechnique,numValues:e.numValues,byteLength:e.byteLength,decompressedCount:r[1],runs:r[0],numRleValues:r[1]}}function tw(e,t){let n=e[t.get()],r=KC[n>>4],i={};switch(r){case HC.DATA:i={dictionaryType:YC[n&15]};break;case HC.OFFSET:i={offsetType:XC[n&15]};break;case HC.LENGTH:i={lengthType:ZC[n&15]};}t.increment();let a=e[t.get()],o=qC[a>>5],s=qC[a>>2&7],c=JC[a&3];t.increment();let l=$S(e,t,2),u=l[0],d=l[1];return {physicalStreamType:r,logicalStreamType:i,logicalLevelTechnique1:o,logicalLevelTechnique2:s,physicalLevelTechnique:c,numValues:u,byteLength:d,decompressedCount:u}}var nw;(function(e){e[e.FLAT=0]=`FLAT`,e[e.CONST=1]=`CONST`,e[e.SEQUENCE=2]=`SEQUENCE`,e[e.DICTIONARY=3]=`DICTIONARY`,e[e.FSST_DICTIONARY=4]=`FSST_DICTIONARY`;})(nw||={});var rw=class{constructor(e,t){this.values=e,this._size=t;}get(e){let t=Math.floor(e/8),n=e%8;return (this.values[t]>>n&1)==1}set(e,t){let n=Math.floor(e/8),r=e%8;this.values[n]=this.values[n]|+!!t<<r;}getInt(e){let t=Math.floor(e/8),n=e%8;return this.values[t]>>n&1}size(){return this._size}getBuffer(){return this.values}};function iw(e,t,n){if(!t)return e;let r=t.size(),i=e.constructor,a=new i(r),o=0;for(let i=0;i<r;i++)a[i]=t.get(i)?e[o++]:n;return a}function aw(e,t,n){if(!n)return e;let r=n.size(),i=new rw(e,t),a=new rw(new Uint8Array(Math.ceil(r/8)),r),o=0;for(let e=0;e<r;e++){let t=n.get(e)?i.get(o++):false;a.set(e,t);}return a.getBuffer()}function sw(e,t,n,r,i){let a=cw(e,Math.ceil(t/8),n,r);return i?aw(a,t,i):a}function cw(e,t,n,r){let i=new Uint8Array(t),a=0,o=r.get()+n;for(;a<t&&!(r.get()>=o);){let n=e[r.increment()];if(n<=127){let o=n+3,s=e[r.increment()],c=Math.min(a+o,t);i.fill(s,a,c),a=c;}else {let o=256-n;for(let n=0;n<o&&a<t;n++)i[a++]=e[r.increment()];}}return r.set(o),i}function lw(e,t,n,r){let i=t.get(),a=i+n*Float32Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float32Array(o);return t.set(a),r?iw(s,r,0):s}function uw(e,t,n,r){let i=t.get(),a=i+n*Float64Array.BYTES_PER_ELEMENT,o=new Uint8Array(e.subarray(i,a)).buffer,s=new Float64Array(o);return t.set(a),r?iw(s,r,0):s}function dw(e,t,n){let r=t.get(),i=n*Uint32Array.BYTES_PER_ELEMENT,a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=new Uint32Array(n);for(let e=0;e<n;e++)o[e]=a.getUint32(r+e*Uint32Array.BYTES_PER_ELEMENT,true);return t.add(i),o}function fw(e,t,n){let r=t.get(),i=n*BigUint64Array.BYTES_PER_ELEMENT,a=new DataView(e.buffer,e.byteOffset,e.byteLength),o=new BigUint64Array(n);for(let e=0;e<n;e++)o[e]=a.getBigUint64(r+e*BigUint64Array.BYTES_PER_ELEMENT,true);return t.add(i),o}const pw=new TextDecoder;function mw(e,t,n){return n-t>=12?pw.decode(e.subarray(t,n)):hw(e,t,n)}function hw(e,t,n){let r=``,i=t;for(;i<n;){let t=e[i],a=null,o=t>239?4:t>223?3:t>191?2:1;if(i+o>n)break;let s,c,l;o===1?t<128&&(a=t):o===2?(s=e[i+1],(s&192)==128&&(a=(t&31)<<6|s&63,a<=127&&(a=null))):o===3?(s=e[i+1],c=e[i+2],(s&192)==128&&(c&192)==128&&(a=(t&15)<<12|(s&63)<<6|c&63,(a<=2047||a>=55296&&a<=57343)&&(a=null))):o===4&&(s=e[i+1],c=e[i+2],l=e[i+3],(s&192)==128&&(c&192)==128&&(l&192)==128&&(a=(t&15)<<18|(s&63)<<12|(c&63)<<6|l&63,(a<=65535||a>=1114112)&&(a=null))),a===null?(a=65533,o=1):a>65535&&(a-=65536,r+=String.fromCharCode(a>>>10&1023|55296),a=56320|a&1023),r+=String.fromCharCode(a),i+=o;}return r}function gw(e,t,n,r,i){return jw(yw(e,t,n),n,r,i)}function _w(e,t,n,r,i){return Mw(yw(e,t,n),n,r,i)}function vw(e,t,n){return Iw(yw(e,t,n),n)}function yw(e,t,n){let r=n.physicalLevelTechnique;switch(r){case aS.FAST_PFOR:return aC(e,n.numValues,n.byteLength,t);case aS.VARINT:return $S(e,t,n.numValues);case aS.NONE:return dw(e,t,n.numValues);default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function bw(e,t,n){let r=n.physicalLevelTechnique;switch(r){case aS.VARINT:return eC(e,t,n.numValues);case aS.NONE:return fw(e,t,n.numValues);default:throw Error(`Specified physicalLevelTechnique ${r} is not supported (yet).`)}}function xw(e,t,n){let r=yw(e,t,n);return r.length===1?sC(r[0]):LC(r)}function Sw(e,t,n){let r=yw(e,t,n);return r.length===1?n.logicalLevelTechnique1===$.DELTA?sC(r[0]):r[0]:IC(r)}function Cw(e,t,n){return RC(yw(e,t,n))}function ww(e,t,n){return VC(eC(e,t,n.numValues))}function Tw(e,t,n,r){return Nw(bw(e,t,n),n,r)}function Ew(e,t,n,r){return Pw(bw(e,t,n),n,r)}function Dw(e,t,n,r){let i=Ow(e,t,n,false);return r?iw(i,r,0):i}function Ow(e,t,n,r){if(n.physicalLevelTechnique===aS.VARINT)return Fw(nC(e,t,n.numValues),n,r);let i=bw(e,t,n),a=Pw(i,n);return Float64Array.from(a,Number)}function kw(e,t,n){let r=bw(e,t,n);return r.length===1?cC(r[0]):BC(r)}function Aw(e,t,n){let r=bw(e,t,n);return r.length===1?n.logicalLevelTechnique1===$.DELTA?cC(r[0]):r[0]:zC(r)}function jw(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;if(!r)return AC(e,n.runs,n.numRleValues);e=pC(e,n.runs,n.numRleValues),i=gC(e);}else i=gC(e);break;case $.RLE:i=yC(e,t.runs,t.numRleValues);break;case $.MORTON:SC(e),i=new Int32Array(e);break;case $.COMPONENTWISE_DELTA:i=wC(e);break;case $.NONE:i=uC(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?iw(i,r,0):i}function Mw(e,t,n,r){let i;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;i=MC(pC(e,n.runs,n.numRleValues));}else i=MC(e);break;case $.RLE:i=pC(e,t.runs,t.numRleValues);break;case $.MORTON:SC(e),i=e;break;case $.COMPONENTWISE_DELTA:i=PC(e);break;case $.NONE:i=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return r?iw(i,r,0):i}function Nw(e,t,n){let r;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let i=t;if(!n)return jC(e,i.runs,i.numRleValues);e=mC(e,i.runs,i.numRleValues),r=_C(e);}else r=_C(e);break;case $.RLE:r=bC(e,t.runs,t.numRleValues);break;case $.NONE:r=dC(e);break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?iw(r,n,0n):r}function Pw(e,t,n){let r;switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;r=NC(mC(e,n.runs,n.numRleValues));}else r=NC(e);break;case $.RLE:r=mC(e,t.runs,t.numRleValues);break;case $.NONE:r=e;break;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}return n?iw(r,n,0n):r}function Fw(e,t,n){switch(t.logicalLevelTechnique1){case $.DELTA:if(t.logicalLevelTechnique2===$.RLE){let n=t;e=hC(e,n.runs,n.numRleValues);}return vC(e),e;case $.RLE:return zw(e,t,n);case $.NONE:return e;default:throw Error(`The specified Logical level technique is not supported: ${t.logicalLevelTechnique1}`)}}function Iw(e,t){if(t.logicalLevelTechnique1===$.DELTA&&t.logicalLevelTechnique2===$.NONE)return DC(e);if(t.logicalLevelTechnique1===$.RLE&&t.logicalLevelTechnique2===$.NONE){let n=t;return kC(e,n.runs,n.numRleValues)}if(t.logicalLevelTechnique1===$.NONE&&t.logicalLevelTechnique2===$.NONE){CC(e);let n=new Uint32Array(t.numValues+1);return n[0]=0,n.set(e,1),n}if(t.logicalLevelTechnique1===$.DELTA&&t.logicalLevelTechnique2===$.RLE){let n=t,r=OC(e,n.runs,n.numRleValues);return SC(r),new Uint32Array(r)}throw Error(`Only delta encoding is supported for transforming length to offset streams yet.`)}function Lw(e,t,n,r,i=`int32`){let a=e.logicalLevelTechnique1;if(a===$.RLE)return e.runs===1?nw.CONST:nw.FLAT;if(a!==$.DELTA||e.logicalLevelTechnique2!==$.RLE)return e.numValues===1?nw.CONST:nw.FLAT;let o=t instanceof rw?t.size():t,s=e;if(s.numRleValues!==o)return nw.FLAT;if(s.runs===1)return nw.SEQUENCE;if(s.runs!==2)return e.numValues===1?nw.CONST:nw.FLAT;let c=r.get();if(e.physicalLevelTechnique===aS.VARINT)return Rw(n,r,i)?nw.SEQUENCE:e.numValues===1?nw.CONST:nw.FLAT;let l=r.get(),u=new Int32Array(n.buffer,n.byteOffset+l,4);return r.set(c),u[2]===2&&u[3]===2?nw.SEQUENCE:e.numValues===1?nw.CONST:nw.FLAT}function Rw(e,t,n){let r=new iS(t.get());if(n===`int64`){let t=eC(e,r,4);return t[2]===2n&&t[3]===2n}let i=$S(e,r,4);return i[2]===2&&i[3]===2}function zw(e,t,n){return n?xC(e,t.runs,t.numRleValues):hC(e,t.runs,t.numRleValues)}var Bw=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},Vw=class extends Xx{constructor(e,t,n,r,i){super(e,i?BigInt64Array.of(t):BigUint64Array.of(t),n,r);}getValueFromBuffer(e){return this.dataBuffer[0]+BigInt(e)*this.delta}};function Hw(e,t,n){return {x:Uw(e,t)-n,y:Uw(e>>1,t)-n}}function Uw(e,t){let n=0;for(let r=0;r<t;r++)n|=(e&1<<2*r)>>r;return n}var Ww;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`,e[e.MULTIPOINT=3]=`MULTIPOINT`,e[e.MULTILINESTRING=4]=`MULTILINESTRING`,e[e.MULTIPOLYGON=5]=`MULTIPOLYGON`;})(Ww||={});var Gw;(function(e){e[e.POINT=0]=`POINT`,e[e.LINESTRING=1]=`LINESTRING`,e[e.POLYGON=2]=`POLYGON`;})(Gw||={});var Kw;(function(e){e[e.MORTON=0]=`MORTON`,e[e.VEC_2=1]=`VEC_2`,e[e.VEC_3=2]=`VEC_3`;})(Kw||={});function qw(e){let t=Array(e.numGeometries),n=1,r=1,i=1,a=0,o=0,s=0,c=e.mortonSettings,l=e.topologyVector,d=l.geometryOffsets,f=l.partOffsets,p=l.ringOffsets,m=e.vertexOffsets,h=!m||m.length===0,g=e.containsPolygonGeometry(),_=e.vertexBuffer;for(let l=0;l<e.numGeometries;l++){let v=e.geometryType(l);switch(v){case Ww.POINT:{let l,g;if(h)l=_[o++],g=_[o++];else if(e.vertexBufferType===Kw.MORTON){let e=_[m[s++]],t=Hw(e,c.numBits,c.coordinateShift);l=t.x,g=t.y;}else {let e=m[s++]*2;l=_[e],g=_[e+1];}t[a++]=[[new u(l,g)]],d&&i++,f&&n++,p&&r++;}break;case Ww.MULTIPOINT:{let l=d[i]-d[i-1];i++;let f;if(h){f=Array(l);for(let e=0;e<l;e++){let t=_[o++],n=_[o++];f[e]=new u(t,n);}}else f=Jw(e.vertexBufferType,_,m,s,l,false,c),s+=l;t[a++]=f.map(e=>[e]),n+=l,r+=l;}break;case Ww.LINESTRING:{let l;g?(l=p[r]-p[r-1],r++):l=f[n]-f[n-1],n++;let u;h?(u=Yw(_,o,l,false),o+=l*2):(u=Jw(e.vertexBufferType,_,m,s,l,false,c),s+=l),t[a++]=[u],d&&i++;}break;case Ww.POLYGON:{let l=f[n]-f[n-1];n++;let u=Array(l-1),g,v=p[r]-p[r-1];if(r++,h){g=Yw(_,o,v,true),o+=v*2;for(let e=0;e<u.length;e++)v=p[r]-p[r-1],r++,u[e]=Yw(_,o,v,true),o+=v*2;}else {g=Jw(e.vertexBufferType,_,m,s,v,true,c),s+=v;for(let t=0;t<u.length;t++)v=p[r]-p[r-1],r++,u[t]=Jw(e.vertexBufferType,_,m,s,v,true,c),s+=v;}t[a++]=[g].concat(u),d&&i++;}break;case Ww.MULTILINESTRING:{let l=d[i]-d[i-1];i++;let u=Array(l);for(let t=0;t<l;t++){let i;if(g?(i=p[r]-p[r-1],r++):i=f[n]-f[n-1],n++,h)u[t]=Yw(_,o,i,false),o+=i*2;else {let n=Jw(e.vertexBufferType,_,m,s,i,false,c);u[t]=n,s+=i;}}t[a++]=u;}break;case Ww.MULTIPOLYGON:{let l=d[i]-d[i-1];i++;let u=Array(l);for(let t=0;t<l;t++){let i=f[n]-f[n-1];n++;let a,l=Array(i-1),d=p[r]-p[r-1];r++,h?(a=Yw(_,o,d,true),o+=d*2):(a=Jw(e.vertexBufferType,_,m,s,d,true,c),s+=d);for(let t=0;t<l.length;t++){let n=p[r]-p[r-1];r++,h?(l[t]=Yw(_,o,n,true),o+=n*2):(l[t]=Jw(e.vertexBufferType,_,m,s,n,true,c),s+=n);}u[t]=[a].concat(l);}t[a++]=u.flat();}break;default:throw Error(`The specified geometry type (${v}) is currently not supported.`)}}return t}function Jw(e,t,n,r,i,a,o){return e===Kw.MORTON?Zw(t,n,r,i,a,o):Xw(t,n,r,i,a)}function Yw(e,t,n,r){let i=Array(r?n+1:n);for(let r=0;r<n*2;r+=2){let n=e[t+r],a=e[t+r+1];i[r/2]=new u(n,a);}return r&&(i[i.length-1]=i[0]),i}function Xw(e,t,n,r,i){let a=Array(i?r+1:r);for(let i=0;i<r*2;i+=2){let r=t[n+i/2]*2,o=e[r],s=e[r+1];a[i/2]=new u(o,s);}return i&&(a[a.length-1]=a[0]),a}function Zw(e,t,n,r,i,a){let o=Array(i?r+1:r);for(let i=0;i<r;i++){let r=e[t[n+i]],s=Hw(r,a.numBits,a.coordinateShift);o[i]=new u(s.x,s.y);}return i&&(o[o.length-1]=o[0]),o}var Qw=class{constructor(e,t,n,r,i){this._vertexBufferType=e,this._topologyVector=t,this._vertexOffsets=n,this._vertexBuffer=r,this._mortonSettings=i;}get vertexBufferType(){return this._vertexBufferType}get topologyVector(){return this._topologyVector}get vertexOffsets(){return this._vertexOffsets}get vertexBuffer(){return this._vertexBuffer}getSimpleEncodedVertex(e){let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return [this.vertexBuffer[t],this.vertexBuffer[t+1]]}getVertex(e){if(this.vertexOffsets&&this.mortonSettings){let t=this.vertexOffsets[e],n=this.vertexBuffer[t],r=Hw(n,this.mortonSettings.numBits,this.mortonSettings.coordinateShift);return [r.x,r.y]}let t=this.vertexOffsets?this.vertexOffsets[e]*2:e*2;return [this.vertexBuffer[t],this.vertexBuffer[t+1]]}getGeometries(){return qw(this)}get mortonSettings(){return this._mortonSettings}};function $w(e,t,n,r,i){return new tT(e,t,Kw.VEC_2,n,r,i)}function eT(e,t,n,r,i,a){return new tT(e,t,Kw.MORTON,n,r,i,a)}var tT=class extends Qw{constructor(e,t,n,r,i,a,o){super(n,r,i,a,o),this._numGeometries=e,this._geometryType=t;}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsPolygonGeometry(){return this._geometryType===Ww.POLYGON||this._geometryType===Ww.MULTIPOLYGON}containsSingleGeometryType(){return true}};function nT(e,t,n,r){return new iT(Kw.VEC_2,e,t,n,r)}function rT(e,t,n,r,i){return new iT(Kw.MORTON,e,t,n,r,i)}var iT=class extends Qw{constructor(e,t,n,r,i,a){super(e,n,r,i,a),this._geometryTypes=t;}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsPolygonGeometry(){for(let e=0;e<this.numGeometries;e++)if(this.geometryType(e)===Ww.POLYGON||this.geometryType(e)===Ww.MULTIPOLYGON)return true;return false}containsSingleGeometryType(){return false}},aT=class{constructor(e,t,n,r){this._triangleOffsets=e,this._indexBuffer=t,this._vertexBuffer=n,this._topologyVector=r;}get triangleOffsets(){return this._triangleOffsets}get indexBuffer(){return this._indexBuffer}get vertexBuffer(){return this._vertexBuffer}get topologyVector(){return this._topologyVector}getGeometries(){if(!this._topologyVector)throw Error(`Cannot convert GpuVector to coordinates without topology information`);let e=new Uint32Array(this.numGeometries);for(let t=0;t<this.numGeometries;t++)e[t]=this.geometryType(t);return nT(e,this._topologyVector,void 0,this._vertexBuffer).getGeometries()}[Symbol.iterator](){return null}};function oT(e,t,n,r,i,a){return new sT(e,t,n,r,i,a)}var sT=class extends aT{constructor(e,t,n,r,i,a){super(n,r,i,a),this._numGeometries=e,this._geometryType=t;}geometryType(e){return this._geometryType}get numGeometries(){return this._numGeometries}containsSingleGeometryType(){return true}};function cT(e,t,n,r,i){return new lT(e,t,n,r,i)}var lT=class extends aT{constructor(e,t,n,r,i){super(t,n,r,i),this._geometryTypes=e;}geometryType(e){return this._geometryTypes[e]}get numGeometries(){return this._geometryTypes.length}containsSingleGeometryType(){return false}};function uT(e,t,n,r,i){let a=QC(e,n),o=Lw(a,r,e,n),s,c,l,u;if(o===nw.CONST){let o=Sw(e,n,a),d,f,p,m;for(let r=0;r<t-1;r++){let t=QC(e,n);switch(t.physicalStreamType){case HC.LENGTH:switch(t.logicalStreamType.lengthType){case GC.GEOMETRIES:d=vw(e,n,t);break;case GC.PARTS:f=vw(e,n,t);break;case GC.RINGS:p=vw(e,n,t);break;case GC.TRIANGLES:m=vw(e,n,t);}break;case HC.OFFSET:switch(t.logicalStreamType.offsetType){case WC.VERTEX:s=_w(e,n,t);break;case WC.INDEX:u=_w(e,n,t);}break;case HC.DATA:if(UC.VERTEX===t.logicalStreamType.dictionaryType)c=gw(e,n,t,i);else {let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=_w(e,n,t,i);}}}return u?d!==void 0||f!==void 0?oT(r,o,m,u,c,{geometryOffsets:d,partOffsets:f,ringOffsets:p}):oT(r,o,m,u,c):l===void 0?$w(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c):eT(r,o,{geometryOffsets:d,partOffsets:f,ringOffsets:p},s,c,l)}let d=_w(e,n,a),f,p,m,h;for(let r=0;r<t-1;r++){let t=QC(e,n);switch(t.physicalStreamType){case HC.LENGTH:switch(t.logicalStreamType.lengthType){case GC.GEOMETRIES:f=_w(e,n,t);break;case GC.PARTS:p=_w(e,n,t);break;case GC.RINGS:m=_w(e,n,t);break;case GC.TRIANGLES:h=vw(e,n,t);}break;case HC.OFFSET:switch(t.logicalStreamType.offsetType){case WC.VERTEX:s=_w(e,n,t);break;case WC.INDEX:u=_w(e,n,t);}break;case HC.DATA:if(UC.VERTEX===t.logicalStreamType.dictionaryType)c=gw(e,n,t,i);else {let r=t;l={numBits:r.numBits,coordinateShift:r.coordinateShift},c=_w(e,n,t,i);}}}let g,_,v;return f?(g=dT(d,f,2),p&&m?(_=fT(d,g,p,false),v=mT(d,g,_,m)):p&&(_=pT(d,g,p))):p&&m?(_=dT(d,p,1),v=fT(d,_,m,true)):p&&(_=dT(d,p,0)),u&&!_?cT(d,h,u,c):u?cT(d,h,u,c,{geometryOffsets:g,partOffsets:_,ringOffsets:v}):l===void 0?nT(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c):rT(d,{geometryOffsets:g,partOffsets:_,ringOffsets:v},s,c,l)}function dT(e,t,n){let r=new Uint32Array(e.length+1),i=0;r[0]=i;let a=0;for(let o=0;o<e.length;o++)i=r[o+1]=i+(e[o]>n?t[a++]:1);return r}function fT(e,t,n,r){let i=new Uint32Array(t[t.length-1]+1),a=0;i[0]=a;let o=1,s=0;for(let c=0;c<e.length;c++){let l=e[c],u=t[c+1]-t[c];if(l===5||l===2||r&&(l===4||l===1))for(let e=0;e<u;e++)a=i[o++]=a+n[s++];else for(let e=0;e<u;e++)i[o++]=++a;}return i}function pT(e,t,n){let r=new Uint32Array(t[t.length-1]+1),i=0;r[0]=i;let a=1,o=0;for(let s=0;s<e.length;s++){let c=e[s],l=t[s+1]-t[s];if(c===4||c===1)for(let e=0;e<l;e++)i=r[a++]=i+n[o++];else for(let e=0;e<l;e++)r[a++]=++i;}return r}function mT(e,t,n,r){let i=new Uint32Array(n[n.length-1]+1),a=0;i[0]=a;let o=1,s=1,c=0;for(let l=0;l<e.length;l++){let u=e[l],d=t[l+1]-t[l];if(u!==0&&u!==3)for(let e=0;e<d;e++){let e=n[o]-n[o-1];o++;for(let t=0;t<e;t++)a=i[s++]=a+r[c++];}else for(let e=0;e<d;e++)i[s++]=++a,o++;}return i}var hT=class extends Kx{constructor(e,t,n){super(e,t.getBuffer(),n),this.dataVector=t;}getValueFromBuffer(e){return this.dataVector.get(e)}},gT=class extends qx{getValueFromBuffer(e){return this.dataBuffer[e]}},_T=class extends Kx{constructor(e,t,n,r){super(e,r?BigInt64Array.of(t):BigUint64Array.of(t),n);}getValueFromBuffer(e){return this.dataBuffer[0]}},vT=class extends Kx{constructor(e,t,n,r){super(e,n,r),this.offsetBuffer=t;}},yT=class extends vT{constructor(e,t,n,r){super(e,t,n,r??t.length-1);}getValueFromBuffer(e){let t=this.offsetBuffer[e],n=this.offsetBuffer[e+1];return mw(this.dataBuffer,t,n)}},bT=class extends vT{constructor(e,t,n,r,i){super(e,n,r,i??t.length),this.indexBuffer=t,this.indexBuffer=t;}getValueFromBuffer(e){let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return mw(this.dataBuffer,n,r)}};function xT(e,t){let n=0;for(let r=0;r<t.length;r++){let i=t[r];i===255?(n++,r++):n+=e[i];}return n}function ST(e,t,n){let r=new Uint32Array(t.length);for(let e=1;e<t.length;e++)r[e]=r[e-1]+t[e-1];let i=new Uint8Array(xT(t,n)),a=0;for(let o=0;o<n.length;o++){let s=n[o];if(s===255)o++,i[a++]=n[o];else {let n=t[s],o=r[s];for(;n-->0;)i[a++]=e[o++];}}return i}var CT=class extends vT{constructor(e,t,n,r,i,a,o,s){super(e,n,r,o??t.length),this.indexBuffer=t,this.symbolOffsetBuffer=i,this.symbolTableBuffer=a,this.sharedDictionaryCache=s;}getValueFromBuffer(e){this.decodedDictionary??(this.decodedDictionary=this.sharedDictionaryCache?.decodedDictionary,this.decodedDictionary??(this.decodedDictionary=this.decodeDictionary(),this.sharedDictionaryCache&&(this.sharedDictionaryCache.decodedDictionary=this.decodedDictionary)));let t=this.indexBuffer[e],n=this.offsetBuffer[t],r=this.offsetBuffer[t+1];return mw(this.decodedDictionary,n,r)}decodeDictionary(){return this.symbolLengthBuffer??=this.offsetToLengthBuffer(this.symbolOffsetBuffer),ST(this.symbolTableBuffer,this.symbolLengthBuffer,this.dataBuffer)}offsetToLengthBuffer(e){let t=new Uint32Array(e.length-1),n=e[0];for(let r=1;r<e.length;r++){let i=e[r];t[r-1]=i-n,n=i;}return t}};function wT(e,t,n,r,i){let a,o,s,c,l,u=i,d,f;for(let e=0;e<r;e++){let e=QC(t,n);switch(e.physicalStreamType){case HC.PRESENT:{let r=new rw(sw(t,e.numValues,e.byteLength,n),e.numValues);u=i??r;break}case HC.OFFSET:o=_w(t,n,e,void 0,u);break;case HC.LENGTH:{let r=vw(t,n,e);GC.DICTIONARY===e.logicalStreamType.lengthType?a=r:GC.SYMBOL===e.logicalStreamType.lengthType?c=r:d=r;break}case HC.DATA:{let r=t.subarray(n.get(),n.get()+e.byteLength);n.add(e.byteLength);let i=e.logicalStreamType.dictionaryType;UC.FSST===i?l=r:UC.SINGLE===i||UC.SHARED===i?s=r:UC.NONE===i&&(f=r);break}}}return TT(e,l,o,a,s,c,u)??ET(e,s,o,a,u)??DT(e,d,f,o,u)}function TT(e,t,n,r,i,a,o){if(t){if(!n||!r||!i||!a)throw Error(`Incomplete FSST dictionary string column "${e}"`);return new CT(e,n,r,i,a,t,o)}}function ET(e,t,n,r,i){if(t){if(!n||!r)throw Error(`Incomplete dictionary string column "${e}"`);return i?new bT(e,n,r,t,i):new bT(e,n,r,t)}}function DT(e,t,n,r,i){if(t&&n){if(r)return i?new bT(e,r,t,n,i):new bT(e,r,t,n);if(i&&i.size()!==t.length-1){let r=new Uint32Array(i.size()),a=0;for(let e=0;e<i.size();e++)i.get(e)?r[e]=a++:r[e]=0;return new bT(e,r,t,n,i)}return i?new yT(e,t,n,i):new yT(e,t,n)}}function OT(e,t,n,r){let i,a,o,s,c=false;for(;!c;){let n=QC(e,t);switch(n.physicalStreamType){case HC.LENGTH:GC.DICTIONARY===n.logicalStreamType.lengthType?i=vw(e,t,n):o=vw(e,t,n);break;case HC.DATA:UC.SINGLE===n.logicalStreamType.dictionaryType||UC.SHARED===n.logicalStreamType.dictionaryType?(a=e.subarray(t.get(),t.get()+n.byteLength),c=true):s=e.subarray(t.get(),t.get()+n.byteLength),t.add(n.byteLength);}}if(n.type!==`complexType`)throw Error(`Shared dictionary column ${n.name} must be a complex (struct) column.`);if(!i||!a)throw Error(`Incomplete shared dictionary for column "${n.name}"`);let l=n.complexType.children,u=[],d=s?{}:void 0,f=0;for(let c of l){let l=$S(e,t,1)[0];if(l===0)continue;let p=c.name?`${n.name}${c.name}`:n.name;if(c.type!==`scalarField`||c.scalarField.physicalType!==tS.STRING)throw Error(`Currently only scalar string fields are implemented for a struct.`);if(l>1&&!c.nullable||l===1&&c.nullable)throw Error(`The number of streams for the child field ${c.name} does not match its nullability. nullibilty: ${c.nullable}, numStreams: ${l}`);let m;if(c.nullable){let n=QC(e,t);m=new rw(sw(e,n.numValues,n.byteLength,t),n.numValues);}let h=_w(e,t,QC(e,t),void 0,m);if(s){if(!o)throw Error(`Incomplete shared FSST dictionary for column "${p}"`);u[f++]=new CT(p,h,i,a,o,s,m,d);}else u[f++]=new bT(p,h,i,a,m);}return u}var kT=class extends Kx{constructor(e,t,n){super(e,/* @__PURE__ */ new Uint8Array,n??t.length),this.values=t;}getValueFromBuffer(e){return this.values[e]}},AT;(function(e){e[e.STRING=1]=`STRING`,e[e.INT32=2]=`INT32`,e[e.UINT32=4]=`UINT32`,e[e.INT64=8]=`INT64`,e[e.UINT64=16]=`UINT64`,e[e.FLOAT=32]=`FLOAT`,e[e.DOUBLE=64]=`DOUBLE`,e[e.PRESENCE=128]=`PRESENCE`;})(AT||={});var jT;(function(e){e[e.FALSE=0]=`FALSE`,e[e.TRUE=1]=`TRUE`,e[e.START_MAP=2]=`START_MAP`,e[e.START_LIST=3]=`START_LIST`,e[e.COUNT=4]=`COUNT`;})(jT||={});function MT(e,t,n,r){let i=NT(n);if(r===0)return i.map(e=>new kT(e,[]));let a=PT(e,t,r),o=(a.presentStream?a.presentCount:a.lengthStream.length)/i.length,s=[],c=0,l=0;for(let e=0;e<i.length;e++){let t=zT(a,e,o,c,l);s.push(new kT(i[e],t.value,t.nullabilityBuffer)),c=t.countsEnd,l=t.valuesEnd;}return s}function NT(e){let t=e.type===`complexType`?e.complexType.children:void 0;return !t||t.length===0?[e.name]:t.map(t=>e.name+(t.name??``))}function PT(e,t,n){let r=e[t.get()];t.add(1);let i=_w(e,t,QC(e,t)),a=n-1,o=[];r&AT.STRING&&(a-=FT(e,t,o)),a-=IT(e,t,r,o),a-=LT(e,t,r,o);let s,c=0;if(r&AT.PRESENCE){let n=RT(e,t);s=n.value,c=n.count,a--;}let l=/* @__PURE__ */ new Uint32Array;if(a>0&&(l=_w(e,t,QC(e,t)),a--),a!==0)throw Error(`Unexpected number of remaining streams while decoding map column: ${a}`);return {lengthStream:i,dictionary:o,presentStream:s,presentCount:c,flattenedValues:l}}function FT(e,t,n){let r=e[t.get()];t.add(1);let i=wT(``,e,t,r);if(i)for(let e=0;e<i.size;e++)n.push(i.getValue(e));return r}function IT(e,t,n,r){let i=0;return n&AT.INT32?(GT(r,gw(e,t,QC(e,t))),i++):n&AT.INT64&&(GT(r,Tw(e,t,QC(e,t))),i++),n&AT.UINT32?(GT(r,_w(e,t,QC(e,t))),i++):n&AT.UINT64&&(GT(r,Ew(e,t,QC(e,t))),i++),i}function LT(e,t,n,r){let i=0;return n&AT.FLOAT&&(GT(r,lw(e,t,QC(e,t).numValues)),i++),n&AT.DOUBLE&&(GT(r,uw(e,t,QC(e,t).numValues)),i++),i}function RT(e,t){let n=QC(e,t);if(n.physicalStreamType!==HC.PRESENT)throw Error(`Expected PRESENT stream for map column but found: ${n.physicalStreamType}`);let r=n.numValues,i=t.get(),a=new rw(sw(e,r,n.byteLength,t),r);return t.set(i+n.byteLength),{value:a,count:r}}function zT(e,t,n,r,i){let{lengthStream:a,flattenedValues:o,presentStream:s,dictionary:c}=e,l=t*n,u=n,d;if(s){d=new rw(new Uint8Array(Math.ceil(n/8)),n),u=0;for(let e=0;e<n;e++)s.get(l+e)&&(d.set(e,true),u++);}let f=r+u;if(f>a.length)throw Error(`Merged map counts underflow while decoding child streams`);let p=Array(n),m=r,h=i;for(let e=0;e<n;e++){if(s&&!s.get(l+e)){p[e]=null;continue}let t=h+a[m++];if(t>o.length)throw Error(`Map value stream underflow while decoding feature payload`);let n=BT(o,h,t,c);p[e]=n.value,h=n.nextIndex;}let g=0;for(let e=r;e<f;e++)g+=a[e];let _=i+g;if(h!==_)throw Error(`Unused flattened map values remain after decode`);return {value:p,nullabilityBuffer:d,countsEnd:f,valuesEnd:_}}function BT(e,t,n,r){return n-t===1||e[t]===jT.START_LIST?HT(e,t,n,r):VT(e,t,n,r)}function VT(e,t,n,r){let i=Object.create(null),a=t;for(;a<n;){let t=WT(e[a++],r);if(typeof t!=`string`)throw Error(`Map key dictionary index does not resolve to a string: ${t}`);let o=HT(e,a,n,r);i[t]=o.value,a=o.nextIndex;}return {value:i,nextIndex:a}}function HT(e,t,n,r){if(t>=n)throw Error(`Unexpected end of map value stream`);let i=e[t];if(i===jT.FALSE)return {value:false,nextIndex:t+1};if(i===jT.TRUE)return {value:true,nextIndex:t+1};if(i===jT.START_MAP){let i=UT(e,t,n);return {value:VT(e,t+2,i,r).value,nextIndex:i}}if(i===jT.START_LIST){let i=UT(e,t,n),a=[],o=t+2;for(;o<i;){let t=HT(e,o,i,r);a.push(t.value),o=t.nextIndex;}return {value:a,nextIndex:i}}return {value:WT(i,r),nextIndex:t+1}}function UT(e,t,n){if(t+1>=n)throw Error(`Missing length for nested map/list payload`);let r=e[t+1];if(r<2)throw Error(`Invalid nested payload length: ${r}`);let i=t+r;if(i>n)throw Error(`Nested payload exceeds containing payload bounds`);return i}function WT(e,t){let n=e-jT.COUNT;if(n<0||n>=t.length)throw Error(`Scalar dictionary index out of range: ${e}`);return t[n]}function GT(e,t){for(let n of t)e.push(n);}function KT(e,t,n,r,i,a){return n.type===`scalarType`?qT(r,e,t,i,n.scalarType,n):n.complexType?.physicalType===nS.MAP?MT(e,t,n,r):r===0?null:OT(e,t,n)}function qT(e,t,n,r,i,a){let o;if(e===0)return null;if(a.nullable){let e=QC(t,n),r=e.numValues,i=n.get(),a=sw(t,r,e.byteLength,n);n.set(i+e.byteLength),o=new rw(a,e.numValues);}let s=o??r;switch(i.physicalType){case tS.UINT_32:case tS.INT_32:return QT(t,n,a,i,s);case tS.STRING:{let r=a.nullable?e-1:e;return wT(a.name,t,n,r,o)??null}case tS.BOOLEAN:return JT(t,n,a,r,s);case tS.UINT_64:case tS.INT_64:return ZT(t,n,a,s,i);case tS.FLOAT:return YT(t,n,a,s);case tS.DOUBLE:return XT(t,n,a,s);default:throw Error(`The specified data type for the field is currently not supported: ${i}`)}}function JT(e,t,n,r,i){let a=QC(e,t),o=a.numValues,s=t.get(),c=$T(i)?i:void 0,l=sw(e,o,a.byteLength,t,c);t.set(s+a.byteLength);let u=new rw(l,o);return new hT(n.name,u,i)}function YT(e,t,n,r){let i=QC(e,t),a=$T(r)?r:void 0,o=lw(e,t,i.numValues,a);return new gT(n.name,o,r)}function XT(e,t,n,r){let i=QC(e,t),a=$T(r)?r:void 0,o=uw(e,t,i.numValues,a);return new Yx(n.name,o,r)}function ZT(e,t,n,r,i){let a=QC(e,t),o=Lw(a,r,e,t,`int64`),s=i.physicalType===tS.INT_64;if(o===nw.FLAT){let i=$T(r)?r:void 0,o=s?Tw(e,t,a,i):Ew(e,t,a,i);return new Bw(n.name,o,r)}if(o===nw.SEQUENCE){let r=ww(e,t,a);return new Vw(n.name,r[0],r[1],a.numRleValues,s)}let c=s?kw(e,t,a):Aw(e,t,a);return new _T(n.name,c,r,s)}function QT(e,t,n,r,i){let a=QC(e,t),o=Lw(a,i,e,t),s=r.physicalType===tS.INT_32;if(o===nw.FLAT){let r=$T(i)?i:void 0,o=s?gw(e,t,a,void 0,r):_w(e,t,a,void 0,r);return new Jx(n.name,o,i)}if(o===nw.SEQUENCE){let r=Cw(e,t,a);return new Zx(n.name,r[0],r[1],a.numRleValues,s)}let c=s?xw(e,t,a):Sw(e,t,a);return new Qx(n.name,c,i,s)}function $T(e){return e instanceof rw}const eE={ID:0,ID_NULLABLE:1,ID_LONG:2,GEOMETRY:4,SCALAR_BASE:10,STRUCT:30,MAP:31};function tE(e){switch(e){case eE.ID:case eE.ID|eE.ID_NULLABLE:case eE.ID|eE.ID_LONG:case eE.ID|eE.ID_LONG|eE.ID_NULLABLE:return {nullable:(e&eE.ID_NULLABLE)!==0,columnScope:eS.FEATURE,type:`scalarType`,scalarType:{longID:(e&eE.ID_LONG)!==0,type:`logicalType`,logicalType:rS.ID}};case eE.GEOMETRY:return {nullable:false,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.GEOMETRY,children:[]}};case eE.STRUCT:return {nullable:false,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.STRUCT,children:[]}};case eE.MAP:return {nullable:true,columnScope:eS.FEATURE,type:`complexType`,complexType:{type:`physicalType`,physicalType:nS.MAP,children:[]}};default:return sE(e)}}function nE(e){return e>=eE.SCALAR_BASE}function rE(e){return e===eE.STRUCT||e===eE.MAP}function iE(e){if(e.type===`scalarType`){let t=e.scalarType;if(t.type===`physicalType`)switch(t.physicalType){case tS.BOOLEAN:case tS.INT_8:case tS.UINT_8:case tS.INT_32:case tS.UINT_32:case tS.INT_64:case tS.UINT_64:case tS.FLOAT:case tS.DOUBLE:return false;case tS.STRING:return true;default:return false}if(t.type===`logicalType`)return false}else if(e.type===`complexType`){let t=e.complexType;if(t.type===`physicalType`)switch(t.physicalType){case nS.GEOMETRY:case nS.STRUCT:case nS.MAP:return true;default:return false}}return console.warn(`Unexpected column type in hasStreamCount`,e),false}function aE(e){return e.type===`scalarType`&&e.scalarType?.type===`logicalType`&&e.scalarType.logicalType===rS.ID}function oE(e){return e.type===`complexType`&&e.complexType?.type===`physicalType`&&e.complexType.physicalType===nS.GEOMETRY}function sE(e){let t;switch(e){case 10:case 11:t=tS.BOOLEAN;break;case 12:case 13:t=tS.INT_8;break;case 14:case 15:t=tS.UINT_8;break;case 16:case 17:t=tS.INT_32;break;case 18:case 19:t=tS.UINT_32;break;case 20:case 21:t=tS.INT_64;break;case 22:case 23:t=tS.UINT_64;break;case 24:case 25:t=tS.FLOAT;break;case 26:case 27:t=tS.DOUBLE;break;case 28:case 29:t=tS.STRING;break;default:return null}return {nullable:!!(e&1),columnScope:eS.FEATURE,type:`scalarType`,scalarType:{longID:false,type:`physicalType`,physicalType:t}}}const cE=new TextDecoder,lE=`0-3(ID), 4(GEOMETRY), 10-29(scalars), 30(STRUCT), 31(MAP)`;function uE(e,t){let n=$S(e,t,1)[0];if(n===0)return ``;let r=t.get(),i=r+n,a=e.subarray(r,i);return t.add(n),cE.decode(a)}function dE(e){let t=e.name,n=e.nullable;return e.type===`scalarType`?{type:`scalarField`,scalarField:e.scalarType,name:t,nullable:n}:{type:`complexField`,complexField:e.complexType,name:t,nullable:n}}function fE(e,t){let n=$S(e,t,1)[0]>>>0,r=n>=eE.SCALAR_BASE?tE(n):null;if(!r)throw Error(`Unsupported field type code ${n}. Supported: 10-29(scalars), 30(STRUCT), 31(MAP)`);let i={...r,name:uE(e,t)};if(i.type===`complexType`&&rE(n)){let n=i.complexType,r=$S(e,t,1)[0]>>>0;n.children=Array(r);for(let i=0;i<r;i++)n.children[i]=fE(e,t);}return dE(i)}function pE(e,t){let n=$S(e,t,1)[0]>>>0,r=tE(n);if(!r)throw Error(`Unsupported column type code ${n}. Supported: ${lE}`);let i;if(nE(n))i=uE(e,t);else if(n<eE.GEOMETRY)i=`id`;else if(n===eE.GEOMETRY)i=`geometry`;else throw Error(`Unsupported column type code ${n}. Supported: ${lE}`);let a={...r,name:i};if(a.type===`complexType`&&rE(n)){let n=$S(e,t,1)[0]>>>0,r=a.complexType;r.children=Array(n);for(let i=0;i<n;i++)r.children[i]=fE(e,t);}return a}function mE(e,t){let n={};n.featureTables=[];let r={};if(r.name=uE(e,t),r.name.length===0)throw Error(`Missing layer name`);let i=$S(e,t,1)[0]>>>0,a=$S(e,t,1)[0]>>>0;r.columns=Array(a);for(let n=0;n<a;n++)r.columns[n]=pE(e,t);return n.featureTables.push(r),[n,i]}function hE(e,t,n=true){let r=new iS(0),i=[];for(;r.get()<e.length;){let a=$S(e,r,1)[0]>>>0,o=r.get()+a;if(o>e.length)throw Error(`Block overruns tile: ${o} > ${e.length}`);let s=$S(e,r,1)[0]>>>0;if(s!==1&&s!==2){r.set(o);continue}let[c,l]=mE(e,r),u=c.featureTables[0],d=null,f=null,p=[],m=0;for(let i of u.columns){let a=i.name;if(aE(i)){let t=null;if(i.nullable){let n=QC(e,r),i=r.get(),a=sw(e,n.numValues,n.byteLength,r);r.set(i+n.byteLength),t=new rw(a,n.numValues);}let o=QC(e,r);m=t?t.size():o.decompressedCount,d=gE(e,i,r,a,o,t??m,n);}else if(oE(i)){let n=$S(e,r,1)[0];if(m===0){let t=r.get();m=QC(e,r).decompressedCount,r.set(t);}f=uT(e,n,r,m,t);}else {let t=iE(i)?$S(e,r,1)[0]:1;if(t===0)continue;let n=KT(e,r,i,t,m);if(n){if(Array.isArray(n))for(let e of n)p.push(e);else p.push(n);}}}let h=new $x(u.name,f,d,p,l);i.push(h),r.set(o);}return i}function gE(e,t,n,r,i,a,o=false){let s=t.scalarType?.longID?tS.UINT_64:tS.UINT_32,c=typeof a==`number`?void 0:a,l=Lw(i,a,e,n,s===tS.UINT_64?`int64`:`int32`);if(s===tS.UINT_32)switch(l){case nw.FLAT:return new Jx(r,_w(e,n,i,void 0,c),a);case nw.SEQUENCE:{let t=Cw(e,n,i);return new Zx(r,t[0],t[1],i.numRleValues,false)}case nw.CONST:return new Qx(r,Sw(e,n,i),a,false)}switch(l){case nw.FLAT:return o?new Yx(r,Dw(e,n,i,c),a):new Bw(r,Ew(e,n,i,c),a);case nw.SEQUENCE:{let t=ww(e,n,i);return new Vw(r,t[0],t[1],i.numRleValues,false)}case nw.CONST:return new _T(r,Aw(e,n,i),a,false)}throw Error(`Vector type not supported for id column.`)}var vE=class{constructor(e,t){switch(this._featureData=e,this.properties=this._featureData.properties||{},this._featureData.geometry?.type){case Ww.POINT:case Ww.MULTIPOINT:this.type=1;break;case Ww.LINESTRING:case Ww.MULTILINESTRING:this.type=2;break;case Ww.POLYGON:case Ww.MULTIPOLYGON:this.type=3;break;default:this.type=0;}this.extent=t,this.id=Number(this._featureData.id);}loadGeometry(){let e=[];for(let t of this._featureData.geometry.coordinates){let n=[];for(let e of t)n.push(new u(e.x,e.y));e.push(n);}return e}},yE=class{constructor(e){this.features=[],this.featureTable=e,this.name=e.name,this.extent=e.extent,this.version=2,this.features=e.getFeatures(),this.length=this.features.length;}feature(e){return new vE(this.features[e],this.extent)}},bE=class{constructor(e){this.layers={};let t=hE(new Uint8Array(e));this.layers=t.reduce((e,t)=>({...e,[t.name]:new yE(t)}),{});}};K(`FeatureIndex`,class{constructor(e,t){this.tileID=e,this.x=e.canonical.x,this.y=e.canonical.y,this.z=e.canonical.z,this.grid=new Jn(P,16,0),this.grid3D=new Jn(P,16,0),this.featureIndexArray=new qu,this.promoteId=t;}insert(e,t,n,r,i,a){let o=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(n,r,i);let s=a?this.grid3D:this.grid;for(let e of t){let t=[1/0,1/0,-1/0,-1/0];for(let n of e)t[0]=Math.min(t[0],n.x),t[1]=Math.min(t[1],n.y),t[2]=Math.max(t[2],n.x),t[3]=Math.max(t[3],n.y);t[0]<8192&&t[1]<8192&&t[2]>=0&&t[3]>=0&&s.insert(o,t[0],t[1],t[2],t[3]);}}loadVTLayers(){if(!this.vtLayers){switch(this.encoding){case `mlt`:this.vtLayers=new bE(this.rawTileData).layers;break;default:this.vtLayers=new Gm(new V_(this.rawTileData)).layers;}this.sourceLayerCoder=new Wx(this.vtLayers?Object.keys(this.vtLayers).sort():[Ux]);}return this.vtLayers}query(e,t,n,r){this.loadVTLayers();let i=e.params,a=P/e.tileSize/e.scale,o=Ms(i.filter,`queryRenderedFeatures filter`,i.globalState),s=e.queryGeometry,c=e.queryPadding*a,l=$d.fromPoints(s),u=this.grid.query(l.minX-c,l.minY-c,l.maxX+c,l.maxY+c),d=$d.fromPoints(e.cameraQueryGeometry).expandBy(c),f=this.grid3D.query(d.minX,d.minY,d.maxX,d.maxY,(t,n,r,i)=>yf(e.cameraQueryGeometry,t-c,n-c,r+c,i+c));for(let e of f)u.push(e);u.sort(CE);let p={},m;for(let c of u){if(c===m)continue;m=c;let l=this.featureIndexArray.get(c),u=null;this.loadMatchingFeature(p,l.bucketIndex,l.sourceLayerIndex,l.featureIndex,o,i.layers,i.availableImages,t,n,e.transform.worldCoordinateHelper,r,(t,n,r)=>(u||=Zd(t),n.queryIntersectsFeature({queryGeometry:s,feature:t,featureState:r,geometry:u,zoom:this.z,transform:e.transform,pixelsToTileUnits:a,pixelPosMatrix:e.pixelPosMatrix,unwrappedTileID:this.tileID.toUnwrapped(),getElevation:e.getElevation})));}return p}loadMatchingFeature(e,t,n,r,i,a,o,s,c,l,u,d){let f=this.bucketLayerIDs[t];if(a&&!f.some(e=>a.has(e)))return;let p=this.sourceLayerCoder.decode(n),m=this.vtLayers[p].feature(r);if(i.needGeometry){let e=Qd(m,true);if(!i.filter(new Ll(this.tileID.overscaledZ),e,this.tileID.canonical))return}else if(!i.filter(new Ll(this.tileID.overscaledZ),m))return;let h=this.getId(m,p);for(let t of f){if(a&&!a.has(t))continue;let n=s[t];if(!n)continue;let i={};h&&u&&(i=u.getState(n.sourceLayer||`_geojsonTileLayer`,h));let f=I({},c[t]);f.paint=SE(f.paint,n.paint,m,i,o),f.layout=SE(f.layout,n.layout,m,i,o);let p=!d||d(m,n,i);if(!p)continue;let g=new Gx(m,this.z,this.x,this.y,h,l);g.layer=f;let _=e[t];_===void 0&&(_=e[t]=[]),_.push({featureIndex:r,feature:g,intersectionZ:p});}}lookupSymbolFeatures(e,t,n,r,i,a,o,s){let c={};this.loadVTLayers();let l=Ms(i.filterSpec,`queryRenderedFeatures symbol filter`,i.globalState);for(let u of e)this.loadMatchingFeature(c,n,r,u,l,a,o,s,t,i.worldCoordinateHelper);return c}hasLayer(e){for(let t of this.bucketLayerIDs)for(let n of t)if(e===n)return true;return false}getId(e,t){let n=e.id;if(this.promoteId){let r=typeof this.promoteId==`string`?this.promoteId:this.promoteId[t];n=e.properties[r],typeof n==`boolean`&&(n=Number(n)),n===void 0&&e.properties?.cluster&&this.promoteId&&(n=Number(e.properties.cluster_id));}return n}},{omit:[`rawTileData`,`sourceLayerCoder`]});function xE(e){return typeof e==`object`&&!!e&&`evaluate`in e}function SE(e,t,n,r,i){return Nt(e,(e,a)=>{let o=t instanceof Gl?t.get(a):null;return xE(o)?o.evaluate(n,r,void 0,i):o})}function CE(e,t){return t-e}T();gg.members.find(e=>e.name===`crossTileID`).offset/4;var pO=`#ifdef GL_ES
20207
+ precision mediump float;
20208
+ #else
20209
+ #if !defined(lowp)
20210
+ #define lowp
20211
+ #endif
20212
+ #if !defined(mediump)
20213
+ #define mediump
20214
+ #endif
20215
+ #if !defined(highp)
20216
+ #define highp
20217
+ #endif
20218
+ #endif
20219
+ out highp vec4 fragColor;layout(std140) uniform ProjectionUBO {highp mat4 u_projection_matrix;highp mat4 u_projection_fallback_matrix;highp vec4 u_projection_tile_mercator_coords;highp vec4 u_projection_clipping_plane;highp float u_projection_transition;highp int u_projection_clip_antimeridian;};layout(std140) uniform FrameUBO {highp vec2 u_units_to_pixels;highp vec2 u_world_size;highp float u_camera_to_center_distance;highp float u_symbol_fade_change;highp float u_aspect_ratio;highp float u_device_pixel_ratio;highp vec2 u_viewport_size;highp vec2 u_pixel_extrude_scale;highp float u_pitch;};`,mO=`#ifdef GL_ES
20220
+ precision highp float;
20221
+ #else
20222
+ #if !defined(lowp)
20223
+ #define lowp
20224
+ #endif
20225
+ #if !defined(mediump)
20226
+ #define mediump
20227
+ #endif
20228
+ #if !defined(highp)
20229
+ #define highp
20230
+ #endif
20231
+ #endif
20232
+ vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const uint packedOpacity) {return vec2(float(packedOpacity >> 1u)/127.0,float(packedOpacity & 1u));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0
20233
+ );}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}mat3 rotationMatrixFromAxisAngle(vec3 u,float angle) {float c=cos(angle);float s=sin(angle);float c2=1.0-c;return mat3(u.x*u.x*c2+ c,u.x*u.y*c2-u.z*s,u.x*u.z*c2+u.y*s,u.y*u.x*c2+u.z*s,u.y*u.y*c2+ c,u.y*u.z*c2-u.x*s,u.z*u.x*c2-u.y*s,u.z*u.y*c2+u.x*s,u.z*u.z*c2+ c
20234
+ );}
20235
+ #ifdef TERRAIN3D
20236
+ uniform sampler2D u_terrain;uniform highp sampler2D u_depth;layout(std140) uniform TerrainUBO {highp mat4 u_terrain_matrix;highp vec4 u_terrain_unpack;highp float u_terrain_dim;highp float u_terrain_exaggeration;};
20237
+ #endif
20238
+ const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) {
20239
+ #ifdef TERRAIN3D
20240
+ highp float d=unpack(texture(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0));
20241
+ #else
20242
+ return 1.0;
20243
+ #endif
20244
+ }float calculate_visibility(vec4 pos) {
20245
+ #ifdef TERRAIN3D
20246
+ vec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0;
20247
+ #else
20248
+ return 1.0;
20249
+ #endif
20250
+ }float ele(ivec2 pos) {
20251
+ #ifdef TERRAIN3D
20252
+ vec4 rgb=(texelFetch(u_terrain,pos,0)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a;
20253
+ #else
20254
+ return 0.0;
20255
+ #endif
20256
+ }float get_elevation(vec2 pos) {
20257
+ #ifdef TERRAIN3D
20258
+ #ifdef GLOBE
20259
+ if ((pos.y <-32767.5) || (pos.y > 32766.5)) {return 0.0;}
20260
+ #endif
20261
+ vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.5;vec2 f=fract(coord);ivec2 c=ivec2(floor(coord));ivec2 hi=textureSize(u_terrain,0)-1;float tl=ele(clamp(c,ivec2(0),hi));float tr=ele(clamp(c+ivec2(1,0),ivec2(0),hi));float bl=ele(clamp(c+ivec2(0,1),ivec2(0),hi));float br=ele(clamp(c+ivec2(1,1),ivec2(0),hi));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration;
20262
+ #else
20263
+ return 0.0;
20264
+ #endif
20265
+ }const float PI=3.141592653589793;
20266
+ #define PROJECTION_UBO
20267
+ layout(std140) uniform ProjectionUBO {highp mat4 u_projection_matrix;highp mat4 u_projection_fallback_matrix;highp vec4 u_projection_tile_mercator_coords;highp vec4 u_projection_clipping_plane;highp float u_projection_transition;highp int u_projection_clip_antimeridian;};layout(std140) uniform FrameUBO {highp vec2 u_units_to_pixels;highp vec2 u_world_size;highp float u_camera_to_center_distance;highp float u_symbol_fade_change;highp float u_aspect_ratio;highp float u_device_pixel_ratio;highp vec2 u_viewport_size;highp vec2 u_pixel_extrude_scale;highp float u_pitch;};`,hO=`uniform vec4 u_color;uniform float u_opacity;void main() {fragColor=u_color*u_opacity;
20268
+ #ifdef OVERDRAW_INSPECTOR
20269
+ fragColor=vec4(1.0);
20270
+ #endif
20271
+ }`,gO=`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos,a_pos);}`,_O=`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);fragColor=mix(color1,color2,u_mix)*u_opacity;
20272
+ #ifdef OVERDRAW_INSPECTOR
20273
+ fragColor=vec4(1.0);
20274
+ #endif
20275
+ }`,vO=`uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}`,yO=`in vec3 v_data;in float v_visibility;
20276
+ #pragma maplibre: define highp vec4 color
20277
+ #pragma maplibre: define mediump float radius
20278
+ #pragma maplibre: define lowp float blur
20279
+ #pragma maplibre: define lowp float opacity
20280
+ #pragma maplibre: define highp vec4 stroke_color
20281
+ #pragma maplibre: define mediump float stroke_width
20282
+ #pragma maplibre: define lowp float stroke_opacity
20283
+ void main() {
20284
+ #pragma maplibre: initialize highp vec4 color
20285
+ #pragma maplibre: initialize mediump float radius
20286
+ #pragma maplibre: initialize lowp float blur
20287
+ #pragma maplibre: initialize lowp float opacity
20288
+ #pragma maplibre: initialize highp vec4 stroke_color
20289
+ #pragma maplibre: initialize mediump float stroke_width
20290
+ #pragma maplibre: initialize lowp float stroke_opacity
20291
+ vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));fragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t);const float epsilon=0.5/255.0;if (fragColor.r < epsilon && fragColor.g < epsilon && fragColor.b < epsilon && fragColor.a < epsilon) {discard;}
20292
+ #ifdef OVERDRAW_INSPECTOR
20293
+ fragColor=vec4(1.0);
20294
+ #endif
20295
+ }`,bO=`uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform highp float u_globe_extrude_scale;uniform vec2 u_translate;layout(location=0) in ivec2 a_pos;out vec3 v_data;out float v_visibility;
20296
+ #pragma maplibre: define highp vec4 color
20297
+ #pragma maplibre: define mediump float radius
20298
+ #pragma maplibre: define lowp float blur
20299
+ #pragma maplibre: define lowp float opacity
20300
+ #pragma maplibre: define highp vec4 stroke_color
20301
+ #pragma maplibre: define mediump float stroke_width
20302
+ #pragma maplibre: define lowp float stroke_opacity
20303
+ void main(void) {
20304
+ #pragma maplibre: initialize highp vec4 color
20305
+ #pragma maplibre: initialize mediump float radius
20306
+ #pragma maplibre: initialize lowp float blur
20307
+ #pragma maplibre: initialize lowp float opacity
20308
+ #pragma maplibre: initialize highp vec4 stroke_color
20309
+ #pragma maplibre: initialize mediump float stroke_width
20310
+ #pragma maplibre: initialize lowp float stroke_opacity
20311
+ ivec2 pos_raw=a_pos+32768;vec2 extrude=vec2(pos_raw & 7)/7.0*2.0-1.0;vec2 circle_center=vec2(pos_raw >> 3)+u_translate;float ele=get_elevation(circle_center);v_visibility=calculate_visibility(projectTileWithElevation(circle_center,ele));if (u_pitch_with_map) {
20312
+ #ifdef GLOBE
20313
+ vec3 center_vector=projectToSphere(circle_center);
20314
+ #endif
20315
+ float angle_scale=u_globe_extrude_scale;vec2 corner_position=circle_center;if (u_scale_with_map) {angle_scale*=(radius+stroke_width);corner_position+=extrude*u_extrude_scale*(radius+stroke_width);} else {
20316
+ #ifdef GLOBE
20317
+ vec4 projected_center=interpolateProjection(circle_center,center_vector,ele);
20318
+ #else
20319
+ vec4 projected_center=projectTileWithElevation(circle_center,ele);
20320
+ #endif
20321
+ corner_position+=extrude*u_extrude_scale*(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);angle_scale*=(radius+stroke_width)*(projected_center.w/u_camera_to_center_distance);}
20322
+ #ifdef GLOBE
20323
+ vec2 angles=extrude*angle_scale;vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(corner_position,corner_vector,ele);
20324
+ #else
20325
+ gl_Position=projectTileWithElevation(corner_position,ele);
20326
+ #endif
20327
+ } else {gl_Position=projectTileWithElevation(circle_center,ele);if (gl_Position.z/gl_Position.w > 1.0) {gl_Position.xy=vec2(10000.0);}if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`,xO=`void main() {fragColor=vec4(1.0);}`;({prelude:CO(pO,mO),projectionMercator:CO(`
20328
+ void clipAntimeridian() {}`,`float projectLineThickness(float tileY) {return 1.0;}float projectCircleRadius(float tileY) {return 1.0;}vec4 projectTile(vec2 p) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);return result;}vec4 projectTile(vec2 p,vec2 rawPos) {vec4 result=u_projection_matrix*vec4(p,0.0,1.0);if (rawPos.y <-32767.5 || rawPos.y > 32766.5) {result.z=-10000000.0;}return result;}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_projection_matrix*vec4(posInTile,elevation,1.0);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {return projectTileWithElevation(posInTile,elevation);}`),projectionGlobe:CO(`in highp float v_projection_tile_x;void clipAntimeridian() {if (u_projection_clip_antimeridian !=0 && (v_projection_tile_x < 0.0 || v_projection_tile_x >=8192.0)) {discard;}}`,`#define GLOBE_RADIUS 6371008.8
20329
+ #ifndef PROJECTION_UBO
20330
+ uniform highp vec4 u_projection_tile_mercator_coords;uniform highp vec4 u_projection_clipping_plane;uniform highp float u_projection_transition;uniform mat4 u_projection_fallback_matrix;
20331
+ #endif
20332
+ out highp float v_projection_tile_x;vec3 globeRotateVector(vec3 vec,vec2 angles) {vec3 axisRight=vec3(vec.z,0.0,-vec.x);vec3 axisUp=cross(axisRight,vec);axisRight=normalize(axisRight);axisUp=normalize(axisUp);vec2 t=tan(angles);return normalize(vec+axisRight*t.x+axisUp*t.y);}mat3 globeGetRotationMatrix(vec3 spherePos) {vec3 axisRight=vec3(spherePos.z,0.0,-spherePos.x);vec3 axisDown=cross(axisRight,spherePos);axisRight=normalize(axisRight);axisDown=normalize(axisDown);return mat3(axisRight,axisDown,spherePos
20333
+ );}float circumferenceRatioAtTileY(float tileY) {float mercator_pos_y=u_projection_tile_mercator_coords.y+u_projection_tile_mercator_coords.w*tileY;float t=exp(PI-(mercator_pos_y*PI*2.0));return (2.0*t)/(t*t+1.0);}float projectLineThickness(float tileY) {float thickness=1.0/circumferenceRatioAtTileY(tileY);if (u_projection_transition < 0.999) {return mix(1.0,thickness,u_projection_transition);} else {return thickness;}}vec3 projectToSphere(vec2 translatedPos,vec2 rawPos) {vec2 mercator_pos=u_projection_tile_mercator_coords.xy+u_projection_tile_mercator_coords.zw*translatedPos;float spherical_x=mercator_pos.x*PI*2.0+PI;float t=exp(PI-(mercator_pos.y*PI*2.0));float t2=t*t;float denom=t2+1.0;float sin_sy=(t2-1.0)/denom;float cos_sy=(2.0*t)/denom;vec3 pos=vec3(sin(spherical_x)*cos_sy,sin_sy,cos(spherical_x)*cos_sy
20334
+ );if (rawPos.y <-32767.5) {pos=vec3(0.0,1.0,0.0);}if (rawPos.y > 32766.5) {pos=vec3(0.0,-1.0,0.0);}return pos;}vec3 projectToSphere(vec2 posInTile) {return projectToSphere(posInTile,vec2(0.0,0.0));}float globeComputeClippingZ(vec3 spherePos) {return (1.0-(dot(spherePos,u_projection_clipping_plane.xyz)+u_projection_clipping_plane.w));}vec4 interpolateProjection(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);globePosition.z=globeComputeClippingZ(elevatedPos)*globePosition.w;if (u_projection_transition > 0.999) {return globePosition;}vec4 flatPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);const float z_globeness_threshold=0.2;vec4 result=globePosition;result.z=mix(0.0,globePosition.z,clamp((u_projection_transition-z_globeness_threshold)/(1.0-z_globeness_threshold),0.0,1.0));result.xyw=mix(flatPosition.xyw,globePosition.xyw,u_projection_transition);if ((posInTile.y <-32767.5) || (posInTile.y > 32766.5)) {result=globePosition;const float poles_hidden_anim_percentage=0.02;result.z=mix(globePosition.z,100.0,pow(max((1.0-u_projection_transition)/poles_hidden_anim_percentage,0.0),8.0));}return result;}vec4 interpolateProjectionFor3D(vec2 posInTile,vec3 spherePos,float elevation) {v_projection_tile_x=posInTile.x;vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);vec4 globePosition=u_projection_matrix*vec4(elevatedPos,1.0);if (u_projection_transition > 0.999) {return globePosition;}vec4 fallbackPosition=u_projection_fallback_matrix*vec4(posInTile,elevation,1.0);return mix(fallbackPosition,globePosition,u_projection_transition);}vec4 projectTile(vec2 posInTile) {return interpolateProjection(posInTile,projectToSphere(posInTile),0.0);}vec4 projectTile(vec2 posInTile,vec2 rawPos) {return interpolateProjection(posInTile,projectToSphere(posInTile,rawPos),0.0);}vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return interpolateProjection(posInTile,projectToSphere(posInTile),elevation);}vec4 projectTileFor3D(vec2 posInTile,float elevation) {vec3 spherePos=projectToSphere(posInTile,posInTile);return interpolateProjectionFor3D(posInTile,spherePos,elevation);}`),background:CO(hO,gO),backgroundPattern:CO(_O,vO),circle:CO(yO,bO),clippingMask:CO(xO,`layout(location=0) in vec2 a_pos;void main() {gl_Position=projectTile(a_pos,a_pos);}`),heatmap:CO(`uniform highp float u_intensity;in vec2 v_extrude;
20335
+ #pragma maplibre: define highp float weight
20336
+ #define GAUSS_COEF 0.3989422804014327
20337
+ void main() {
20338
+ #pragma maplibre: initialize highp float weight
20339
+ float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);fragColor=vec4(val,1.0,1.0,1.0);
20340
+ #ifdef OVERDRAW_INSPECTOR
20341
+ fragColor=vec4(1.0);
20342
+ #endif
20343
+ }`,`uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;uniform highp float u_globe_extrude_scale;layout(location=0) in ivec2 a_pos;out vec2 v_extrude;
20344
+ #pragma maplibre: define highp float weight
20345
+ #pragma maplibre: define mediump float radius
20346
+ const highp float ZERO=1.0/255.0/16.0;
20347
+ #define GAUSS_COEF 0.3989422804014327
20348
+ void main(void) {
20349
+ #pragma maplibre: initialize highp float weight
20350
+ #pragma maplibre: initialize mediump float radius
20351
+ ivec2 pos_raw=a_pos+32768;vec2 unscaled_extrude=vec2(pos_raw & 7)/7.0*2.0-1.0;float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec2 circle_center=vec2(pos_raw >> 3);
20352
+ #ifdef GLOBE
20353
+ vec2 angles=v_extrude*radius*u_globe_extrude_scale;vec3 center_vector=projectToSphere(circle_center);vec3 corner_vector=globeRotateVector(center_vector,angles);gl_Position=interpolateProjection(circle_center+extrude,corner_vector,0.0);
20354
+ #else
20355
+ gl_Position=projectTileFor3D(circle_center+extrude,get_elevation(circle_center));
20356
+ #endif
20357
+ }`),heatmapTexture:CO(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;in vec2 v_pos;void main() {float t=texture(u_image,v_pos).r;vec4 color=texture(u_color_ramp,vec2(t,0.5));fragColor=color*u_opacity;
20358
+ #ifdef OVERDRAW_INSPECTOR
20359
+ fragColor=vec4(0.0);
20360
+ #endif
20361
+ }`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world_size,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),collisionBox:CO(`in float v_placed;in float v_notUsed;void main() {float alpha=0.5;fragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {fragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {fragColor*=.1;}}`,`layout(location=0) in vec2 a_anchor_pos;layout(location=1) in vec2 a_placed;layout(location=2) in vec2 a_box_real;out float v_placed;out float v_notUsed;void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}`),collisionCircle:CO(`in float v_radius;in vec2 v_extrude;in float v_collision;void main() {float alpha=0.5;float stroke_radius=0.9;float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);fragColor=color*alpha*opacity_t;}`,`layout(location=0) in vec2 a_pos;layout(location=1) in float a_radius;layout(location=2) in vec2 a_flags;out float v_radius;out vec2 v_extrude;out float v_collision;void main() {float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_collision=collision;gl_Position=vec4((a_pos/u_viewport_size*2.0-1.0)*vec2(1.0,-1.0),0.0,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}`),colorRelief:CO(`#ifdef GL_ES
20362
+ precision highp float;
20363
+ #endif
20364
+ uniform sampler2D u_image;uniform vec4 u_unpack;uniform sampler2D u_elevation_stops;uniform sampler2D u_color_stops;uniform int u_color_ramp_size;uniform float u_opacity;in vec2 v_pos;float getElevation(vec2 coord) {vec4 data=texture(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack);}float getElevationStop(int stop) {vec4 data=texelFetch(u_elevation_stops,ivec2(stop,0),0)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {float el=getElevation(v_pos);int r=(u_color_ramp_size-1);int l=0;float el_l=getElevationStop(l);float el_r=getElevationStop(r);while(r-l > 1){int m=(r+l)/2;float el_m=getElevationStop(m);if(el < el_m){r=m;el_r=el_m;}else
20365
+ {l=m;el_l=el_m;}}float x=(float(l)+(el-el_l)/(el_r-el_l)+0.5)/float(u_color_ramp_size);fragColor=u_opacity*texture(u_color_stops,vec2(x,0));
20366
+ #ifdef OVERDRAW_INSPECTOR
20367
+ fragColor=vec4(1.0);
20368
+ #endif
20369
+ }`,`uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);highp vec2 epsilon=2.0/u_dimension;float scale=(u_dimension.x-4.0)/u_dimension.x;v_pos=(a_pos/8192.0)*scale+epsilon;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),debug:CO(`uniform highp vec4 u_color;uniform sampler2D u_overlay;in vec2 v_uv;void main() {vec4 overlay_color=texture(u_overlay,v_uv);fragColor=mix(u_color,overlay_color,overlay_color.a);}`,`layout(location=0) in vec2 a_pos;out vec2 v_uv;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=projectTileWithElevation(a_pos*u_overlay_scale,get_elevation(a_pos));}`),depth:CO(xO,`layout(location=0) in vec2 a_pos;void main() {
20370
+ #ifdef GLOBE
20371
+ gl_Position=projectTileFor3D(a_pos,0.0);
20372
+ #else
20373
+ gl_Position=u_projection_matrix*vec4(a_pos,0.0,1.0);
20374
+ #endif
20375
+ }`),fill:CO(`#pragma maplibre: define highp vec4 color
20376
+ #pragma maplibre: define lowp float opacity
20377
+ void main() {
20378
+ #pragma maplibre: initialize highp vec4 color
20379
+ #pragma maplibre: initialize lowp float opacity
20380
+ fragColor=color*opacity;
20381
+ #ifdef OVERDRAW_INSPECTOR
20382
+ fragColor=vec4(1.0);
20383
+ #endif
20384
+ }`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;
20385
+ #pragma maplibre: define highp vec4 color
20386
+ #pragma maplibre: define lowp float opacity
20387
+ void main() {
20388
+ #pragma maplibre: initialize highp vec4 color
20389
+ #pragma maplibre: initialize lowp float opacity
20390
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);}`),fillOutline:CO(`in vec2 v_pos;
20391
+ #ifdef GLOBE
20392
+ in float v_depth;
20393
+ #endif
20394
+ #pragma maplibre: define highp vec4 outline_color
20395
+ #pragma maplibre: define lowp float opacity
20396
+ void main() {
20397
+ #pragma maplibre: initialize highp vec4 outline_color
20398
+ #pragma maplibre: initialize lowp float opacity
20399
+ float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);fragColor=outline_color*(alpha*opacity);
20400
+ #ifdef GLOBE
20401
+ if (v_depth > 1.0) {discard;}
20402
+ #endif
20403
+ #ifdef OVERDRAW_INSPECTOR
20404
+ fragColor=vec4(1.0);
20405
+ #endif
20406
+ }`,`uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos;
20407
+ #ifdef GLOBE
20408
+ out float v_depth;
20409
+ #endif
20410
+ #pragma maplibre: define highp vec4 outline_color
20411
+ #pragma maplibre: define lowp float opacity
20412
+ void main() {
20413
+ #pragma maplibre: initialize highp vec4 outline_color
20414
+ #pragma maplibre: initialize lowp float opacity
20415
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world_size;
20416
+ #ifdef GLOBE
20417
+ v_depth=gl_Position.z/gl_Position.w;
20418
+ #endif
20419
+ }`),fillOutlinePattern:CO(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;uniform bool u_sdf_pattern;in vec2 v_pos_a;in vec2 v_pos_b;in vec2 v_pos;
20420
+ #ifdef GLOBE
20421
+ in float v_depth;
20422
+ #endif
20423
+ #pragma maplibre: define lowp float opacity
20424
+ #pragma maplibre: define highp vec4 color
20425
+ #pragma maplibre: define lowp vec4 pattern_from
20426
+ #pragma maplibre: define lowp vec4 pattern_to
20427
+ void main() {
20428
+ #pragma maplibre: initialize lowp float opacity
20429
+ #pragma maplibre: initialize highp vec4 color
20430
+ #pragma maplibre: initialize mediump vec4 pattern_from
20431
+ #pragma maplibre: initialize mediump vec4 pattern_to
20432
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);if (u_sdf_pattern) {highp float sdf_edge=(256.0-64.0)/256.0;highp float sdf_gamma_a=max(fwidth(color1.a)*0.5,1.0/255.0/16.0);highp float sdf_gamma_b=max(fwidth(color2.a)*0.5,1.0/255.0/16.0);float sdf_alpha_a=smoothstep(sdf_edge-sdf_gamma_a,sdf_edge+sdf_gamma_a,color1.a);float sdf_alpha_b=smoothstep(sdf_edge-sdf_gamma_b,sdf_edge+sdf_gamma_b,color2.a);fragColor=mix(color*sdf_alpha_a,color*sdf_alpha_b,u_fade)*alpha*opacity;} else {fragColor=mix(color1,color2,u_fade)*alpha*opacity;}
20433
+ #ifdef GLOBE
20434
+ if (v_depth > 1.0) {discard;}
20435
+ #endif
20436
+ #ifdef OVERDRAW_INSPECTOR
20437
+ fragColor=vec4(1.0);
20438
+ #endif
20439
+ }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;out vec2 v_pos;
20440
+ #ifdef GLOBE
20441
+ out float v_depth;
20442
+ #endif
20443
+ #pragma maplibre: define lowp float opacity
20444
+ #pragma maplibre: define highp vec4 color
20445
+ #pragma maplibre: define lowp vec4 pattern_from
20446
+ #pragma maplibre: define lowp vec4 pattern_to
20447
+ #pragma maplibre: define lowp float pixel_ratio_from
20448
+ #pragma maplibre: define lowp float pixel_ratio_to
20449
+ void main() {
20450
+ #pragma maplibre: initialize lowp float opacity
20451
+ #pragma maplibre: initialize highp vec4 color
20452
+ #pragma maplibre: initialize mediump vec4 pattern_from
20453
+ #pragma maplibre: initialize mediump vec4 pattern_to
20454
+ #pragma maplibre: initialize lowp float pixel_ratio_from
20455
+ #pragma maplibre: initialize lowp float pixel_ratio_to
20456
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world_size;
20457
+ #ifdef GLOBE
20458
+ v_depth=gl_Position.z/gl_Position.w;
20459
+ #endif
20460
+ }`),fillPattern:CO(`#ifdef GL_ES
20461
+ precision highp float;
20462
+ #endif
20463
+ uniform vec2 u_texsize;uniform float u_fade;uniform bool u_sdf_pattern;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;
20464
+ #pragma maplibre: define lowp float opacity
20465
+ #pragma maplibre: define highp vec4 color
20466
+ #pragma maplibre: define lowp vec4 pattern_from
20467
+ #pragma maplibre: define lowp vec4 pattern_to
20468
+ void main() {
20469
+ #pragma maplibre: initialize lowp float opacity
20470
+ #pragma maplibre: initialize highp vec4 color
20471
+ #pragma maplibre: initialize mediump vec4 pattern_from
20472
+ #pragma maplibre: initialize mediump vec4 pattern_to
20473
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);if (u_sdf_pattern) {highp float sdf_edge=(256.0-64.0)/256.0;highp float sdf_gamma_a=max(fwidth(color1.a)*0.5,1.0/255.0/16.0);highp float sdf_gamma_b=max(fwidth(color2.a)*0.5,1.0/255.0/16.0);float sdf_alpha_a=smoothstep(sdf_edge-sdf_gamma_a,sdf_edge+sdf_gamma_a,color1.a);float sdf_alpha_b=smoothstep(sdf_edge-sdf_gamma_b,sdf_edge+sdf_gamma_b,color2.a);fragColor=mix(color*sdf_alpha_a,color*sdf_alpha_b,u_fade)*opacity;} else {fragColor=mix(color1,color2,u_fade)*opacity;}
20474
+ #ifdef OVERDRAW_INSPECTOR
20475
+ fragColor=vec4(1.0);
20476
+ #endif
20477
+ }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;out vec2 v_pos_a;out vec2 v_pos_b;
20478
+ #pragma maplibre: define lowp float opacity
20479
+ #pragma maplibre: define highp vec4 color
20480
+ #pragma maplibre: define lowp vec4 pattern_from
20481
+ #pragma maplibre: define lowp vec4 pattern_to
20482
+ #pragma maplibre: define lowp float pixel_ratio_from
20483
+ #pragma maplibre: define lowp float pixel_ratio_to
20484
+ void main() {
20485
+ #pragma maplibre: initialize lowp float opacity
20486
+ #pragma maplibre: initialize highp vec4 color
20487
+ #pragma maplibre: initialize mediump vec4 pattern_from
20488
+ #pragma maplibre: initialize mediump vec4 pattern_to
20489
+ #pragma maplibre: initialize lowp float pixel_ratio_from
20490
+ #pragma maplibre: initialize lowp float pixel_ratio_to
20491
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=projectTile(a_pos+u_fill_translate,a_pos);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:CO(`in vec4 v_color;void main() {fragColor=v_color;
20492
+ #ifdef OVERDRAW_INSPECTOR
20493
+ fragColor=vec4(1.0);
20494
+ #endif
20495
+ }`,`uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;layout(location=0) in vec2 a_pos;layout(location=1) in ivec4 a_normal_ed;
20496
+ #ifdef TERRAIN3D
20497
+ layout(location=2) in vec2 a_centroid;
20498
+ #endif
20499
+ out vec4 v_color;
20500
+ #pragma maplibre: define highp float base
20501
+ #pragma maplibre: define highp float height
20502
+ #pragma maplibre: define highp vec4 color
20503
+ void main() {
20504
+ #pragma maplibre: initialize highp float base
20505
+ #pragma maplibre: initialize highp float height
20506
+ #pragma maplibre: initialize highp vec4 color
20507
+ vec3 normal=vec3(a_normal_ed.xyz);float gradient_base=max(0.0,base);float gradient_height=max(0.0,height);
20508
+ #ifdef TERRAIN3D
20509
+ float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
20510
+ #else
20511
+ float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
20512
+ #endif
20513
+ base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=float(a_normal_ed.x & 1);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
20514
+ #ifdef GLOBE
20515
+ vec3 spherePos=projectToSphere(posInTile,a_pos);gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
20516
+ #else
20517
+ gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
20518
+ #endif
20519
+ float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;vec3 normalForLighting=normal/16384.0;float directional=clamp(dot(normalForLighting,u_lightpos),0.0,1.0);
20520
+ #ifdef GLOBE
20521
+ mat3 rotMatrix=globeGetRotationMatrix(spherePos);normalForLighting=rotMatrix*normalForLighting;directional=mix(directional,clamp(dot(normalForLighting,u_lightpos_globe),0.0,1.0),u_projection_transition);
20522
+ #endif
20523
+ directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.z==0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+gradient_base)*pow(gradient_height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:CO(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;in vec2 v_pos_a;in vec2 v_pos_b;in vec4 v_lighting;
20524
+ #pragma maplibre: define lowp float base
20525
+ #pragma maplibre: define lowp float height
20526
+ #pragma maplibre: define lowp vec4 pattern_from
20527
+ #pragma maplibre: define lowp vec4 pattern_to
20528
+ #pragma maplibre: define lowp float pixel_ratio_from
20529
+ #pragma maplibre: define lowp float pixel_ratio_to
20530
+ void main() {
20531
+ #pragma maplibre: initialize lowp float base
20532
+ #pragma maplibre: initialize lowp float height
20533
+ #pragma maplibre: initialize mediump vec4 pattern_from
20534
+ #pragma maplibre: initialize mediump vec4 pattern_to
20535
+ #pragma maplibre: initialize lowp float pixel_ratio_from
20536
+ #pragma maplibre: initialize lowp float pixel_ratio_to
20537
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);fragColor=mixedColor*v_lighting;
20538
+ #ifdef OVERDRAW_INSPECTOR
20539
+ fragColor=vec4(1.0);
20540
+ #endif
20541
+ }`,`uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec2 u_fill_translate;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp vec3 u_lightpos_globe;uniform lowp float u_lightintensity;layout(location=0) in vec2 a_pos;layout(location=1) in ivec4 a_normal_ed;
20542
+ #ifdef TERRAIN3D
20543
+ layout(location=2) in vec2 a_centroid;
20544
+ #endif
20545
+ #ifdef GLOBE
20546
+ out vec3 v_sphere_pos;
20547
+ #endif
20548
+ out vec2 v_pos_a;out vec2 v_pos_b;out vec4 v_lighting;
20549
+ #pragma maplibre: define lowp float base
20550
+ #pragma maplibre: define lowp float height
20551
+ #pragma maplibre: define lowp vec4 pattern_from
20552
+ #pragma maplibre: define lowp vec4 pattern_to
20553
+ #pragma maplibre: define lowp float pixel_ratio_from
20554
+ #pragma maplibre: define lowp float pixel_ratio_to
20555
+ void main() {
20556
+ #pragma maplibre: initialize lowp float base
20557
+ #pragma maplibre: initialize lowp float height
20558
+ #pragma maplibre: initialize mediump vec4 pattern_from
20559
+ #pragma maplibre: initialize mediump vec4 pattern_to
20560
+ #pragma maplibre: initialize lowp float pixel_ratio_from
20561
+ #pragma maplibre: initialize lowp float pixel_ratio_to
20562
+ vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=vec3(a_normal_ed.xyz);float edgedistance=float(a_normal_ed.w);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;float gradient_base=max(0.0,base);float gradient_height=max(0.0,height);
20563
+ #ifdef TERRAIN3D
20564
+ float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0);
20565
+ #else
20566
+ float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0;
20567
+ #endif
20568
+ base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=float(a_normal_ed.x & 1);float elevation=t > 0.0 ? height : base;vec2 posInTile=a_pos+u_fill_translate;
20569
+ #ifdef GLOBE
20570
+ vec3 spherePos=projectToSphere(posInTile,a_pos);vec3 elevatedPos=spherePos*(1.0+elevation/GLOBE_RADIUS);v_sphere_pos=elevatedPos;gl_Position=interpolateProjectionFor3D(posInTile,spherePos,elevation);
20571
+ #else
20572
+ gl_Position=u_projection_matrix*vec4(posInTile,elevation,1.0);
20573
+ #endif
20574
+ vec2 pos=a_normal_ed.x==1 && a_normal_ed.y==0 && a_normal_ed.z==16384
20575
+ ? a_pos
20576
+ : vec2(edgedistance,elevation*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.z==0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+gradient_base)*pow(gradient_height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:CO(`#ifdef GL_ES
20577
+ precision highp float;
20578
+ #endif
20579
+ uniform sampler2D u_image;in vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;uniform float u_log2_world_width;float getElevation(ivec2 texel) {vec4 data=texelFetch(u_image,texel,0)*255.0;data.a=-1.0;return dot(data,u_unpack);}void main() {ivec2 pos=ivec2(gl_FragCoord.xy)+ivec2(1);float tileSize=u_dimension.x-4.0;float a=getElevation(pos+ivec2(-1,-1));float b=getElevation(pos+ivec2(0,-1));float c=getElevation(pos+ivec2(1,-1));float d=getElevation(pos+ivec2(-1,0));float e=getElevation(pos);float f=getElevation(pos+ivec2(1,0));float g=getElevation(pos+ivec2(-1,1));float h=getElevation(pos+ivec2(0,1));float i=getElevation(pos+ivec2(1,1));float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))*tileSize/pow(2.0,exaggeration+(3.0+u_log2_world_width-u_zoom));fragColor=clamp(vec4(deriv.x/8.0+128.0/255.0,deriv.y/8.0+128.0/255.0,1.0,1.0),0.0,1.0);
20580
+ #ifdef OVERDRAW_INSPECTOR
20581
+ fragColor=vec4(1.0);
20582
+ #endif
20583
+ }`,`uniform mat4 u_matrix;uniform vec2 u_dimension;layout(location=0) in vec2 a_pos;layout(location=1) in vec2 a_texture_pos;out vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}`),hillshade:CO(`uniform sampler2D u_image;in highp vec2 v_pos;uniform vec2 u_latrange;uniform float u_exaggeration;uniform vec4 u_accent;uniform int u_method;uniform float u_altitudes[NUM_ILLUMINATION_SOURCES];uniform float u_azimuths[NUM_ILLUMINATION_SOURCES];uniform vec4 u_shadows[NUM_ILLUMINATION_SOURCES];uniform vec4 u_highlights[NUM_ILLUMINATION_SOURCES];
20584
+ #define PI 3.141592653589793
20585
+ #define STANDARD 0
20586
+ #define COMBINED 1
20587
+ #define IGOR 2
20588
+ #define MULTIDIRECTIONAL 3
20589
+ #define BASIC 4
20590
+ float get_aspect(vec2 deriv){return deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);}void igor_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float aspect=get_aspect(deriv);float azimuth=u_azimuths[0]+PI;float slope_stength=atan(length(deriv))*2.0/PI;float aspect_strength=1.0-abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);float shadow_strength=slope_stength*aspect_strength;float highlight_strength=slope_stength*(1.0-aspect_strength);fragColor=u_shadows[0]*shadow_strength+u_highlights[0]*highlight_strength;}void standard_hillshade(vec2 deriv){float azimuth=u_azimuths[0]+PI;float slope=atan(0.625*length(deriv));float aspect=get_aspect(deriv);float intensity=u_exaggeration;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadows[0],u_highlights[0],shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);fragColor=accent_color*(1.0-shade_color.a)+shade_color;}void basic_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor=u_highlights[0]*(2.0*shade-1.0);}else
20591
+ {fragColor=u_shadows[0]*(1.0-2.0*shade);}}void multidirectional_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;fragColor=vec4(0,0,0,0);for(int i=0; i < NUM_ILLUMINATION_SOURCES; i++){float cos_alt=cos(u_altitudes[i]);float sin_alt=sin(u_altitudes[i]);float cos_az=-cos(u_azimuths[i]);float sin_az=-sin(u_azimuths[i]);float cang=(sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv));float shade=clamp(cang,0.0,1.0);if(shade > 0.5){fragColor+=u_highlights[i]*(2.0*shade-1.0)/float(NUM_ILLUMINATION_SOURCES);}else
20592
+ {fragColor+=u_shadows[i]*(1.0-2.0*shade)/float(NUM_ILLUMINATION_SOURCES);}}}void combined_hillshade(vec2 deriv){deriv=deriv*u_exaggeration*2.0;float azimuth=u_azimuths[0]+PI;float cos_az=cos(azimuth);float sin_az=sin(azimuth);float cos_alt=cos(u_altitudes[0]);float sin_alt=sin(u_altitudes[0]);float cang=acos((sin_alt-(deriv.y*cos_az*cos_alt-deriv.x*sin_az*cos_alt))/sqrt(1.0+dot(deriv,deriv)));cang=clamp(cang,0.0,PI/2.0);float shade=cang*atan(length(deriv))*4.0/PI/PI;float highlight=(PI/2.0-cang)*atan(length(deriv))*4.0/PI/PI;fragColor=u_shadows[0]*shade+u_highlights[0]*highlight;}void main() {highp vec2 size=vec2(textureSize(u_image,0));highp vec2 texturePos=(v_pos*(size-2.0)+1.0)/size;vec4 pixel=texture(u_image,texturePos);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));vec2 deriv=(pixel.rg-128.0/255.0)*8.0/scaleFactor;if (u_method==BASIC) {basic_hillshade(deriv);} else if (u_method==COMBINED) {combined_hillshade(deriv);} else if (u_method==IGOR) {igor_hillshade(deriv);} else if (u_method==MULTIDIRECTIONAL) {multidirectional_hillshade(deriv);} else if (u_method==STANDARD) {standard_hillshade(deriv);} else {standard_hillshade(deriv);}
20593
+ #ifdef OVERDRAW_INSPECTOR
20594
+ fragColor=vec4(1.0);
20595
+ #endif
20596
+ }`,`uniform mat4 u_matrix;layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=projectTile(a_pos,a_pos);v_pos=a_pos/8192.0;if (a_pos.y <-32767.5) {v_pos.y=0.0;}if (a_pos.y > 32766.5) {v_pos.y=1.0;}}`),line:CO(`in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;
20597
+ #ifdef GLOBE
20598
+ in float v_depth;
20599
+ #endif
20600
+ #pragma maplibre: define highp vec4 color
20601
+ #pragma maplibre: define lowp float blur
20602
+ #pragma maplibre: define lowp float opacity
20603
+ void main() {
20604
+ #pragma maplibre: initialize highp vec4 color
20605
+ #pragma maplibre: initialize lowp float blur
20606
+ #pragma maplibre: initialize lowp float opacity
20607
+ clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);fragColor=color*(alpha*opacity);
20608
+ #ifdef GLOBE
20609
+ if (v_depth > 1.0) {discard;}
20610
+ #endif
20611
+ #ifdef OVERDRAW_INSPECTOR
20612
+ fragColor=vec4(1.0);
20613
+ #endif
20614
+ }`,`
20615
+ #define scale 0.015873016
20616
+ layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp float v_linesofar;
20617
+ #ifdef GLOBE
20618
+ out float v_depth;
20619
+ #endif
20620
+ #pragma maplibre: define highp vec4 color
20621
+ #pragma maplibre: define lowp float blur
20622
+ #pragma maplibre: define lowp float opacity
20623
+ #pragma maplibre: define mediump float gapwidth
20624
+ #pragma maplibre: define lowp float offset
20625
+ #pragma maplibre: define mediump float width
20626
+ void main() {
20627
+ #pragma maplibre: initialize highp vec4 color
20628
+ #pragma maplibre: initialize lowp float blur
20629
+ #pragma maplibre: initialize lowp float opacity
20630
+ #pragma maplibre: initialize mediump float gapwidth
20631
+ #pragma maplibre: initialize lowp float offset
20632
+ #pragma maplibre: initialize mediump float width
20633
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);v_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*2.0;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
20634
+ #ifdef GLOBE
20635
+ v_depth=gl_Position.z/gl_Position.w;
20636
+ #endif
20637
+ #ifdef TERRAIN3D
20638
+ v_gamma_scale=1.0;
20639
+ #else
20640
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
20641
+ #endif
20642
+ v_width2=vec2(outset,inset);}`),lineGradient:CO(`uniform sampler2D u_image;in vec2 v_width2;in vec2 v_normal;in float v_gamma_scale;in highp vec2 v_uv;
20643
+ #ifdef GLOBE
20644
+ in float v_depth;
20645
+ #endif
20646
+ #pragma maplibre: define lowp float blur
20647
+ #pragma maplibre: define lowp float opacity
20648
+ void main() {
20649
+ #pragma maplibre: initialize lowp float blur
20650
+ #pragma maplibre: initialize lowp float opacity
20651
+ clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);fragColor=color*(alpha*opacity);
20652
+ #ifdef GLOBE
20653
+ if (v_depth > 1.0) {discard;}
20654
+ #endif
20655
+ #ifdef OVERDRAW_INSPECTOR
20656
+ fragColor=vec4(1.0);
20657
+ #endif
20658
+ }`,`
20659
+ #define scale 0.015873016
20660
+ layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;layout(location=3) in float a_uv_x;layout(location=4) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_image_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;
20661
+ #ifdef GLOBE
20662
+ out float v_depth;
20663
+ #endif
20664
+ #pragma maplibre: define lowp float blur
20665
+ #pragma maplibre: define lowp float opacity
20666
+ #pragma maplibre: define mediump float gapwidth
20667
+ #pragma maplibre: define lowp float offset
20668
+ #pragma maplibre: define mediump float width
20669
+ void main() {
20670
+ #pragma maplibre: initialize lowp float blur
20671
+ #pragma maplibre: initialize lowp float opacity
20672
+ #pragma maplibre: initialize mediump float gapwidth
20673
+ #pragma maplibre: initialize lowp float offset
20674
+ #pragma maplibre: initialize mediump float width
20675
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
20676
+ #ifdef GLOBE
20677
+ v_depth=gl_Position.z/gl_Position.w;
20678
+ #endif
20679
+ #ifdef TERRAIN3D
20680
+ v_gamma_scale=1.0;
20681
+ #else
20682
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
20683
+ #endif
20684
+ v_width2=vec2(outset,inset);}`),linePattern:CO(`#ifdef GL_ES
20685
+ precision highp float;
20686
+ #endif
20687
+ uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;in vec2 v_normal;in vec2 v_width2;in float v_linesofar;in float v_gamma_scale;in float v_width;
20688
+ #ifdef GLOBE
20689
+ in float v_depth;
20690
+ #endif
20691
+ #pragma maplibre: define lowp vec4 pattern_from
20692
+ #pragma maplibre: define lowp vec4 pattern_to
20693
+ #pragma maplibre: define lowp float pixel_ratio_from
20694
+ #pragma maplibre: define lowp float pixel_ratio_to
20695
+ #pragma maplibre: define lowp float blur
20696
+ #pragma maplibre: define lowp float opacity
20697
+ void main() {
20698
+ #pragma maplibre: initialize mediump vec4 pattern_from
20699
+ #pragma maplibre: initialize mediump vec4 pattern_to
20700
+ #pragma maplibre: initialize lowp float pixel_ratio_from
20701
+ #pragma maplibre: initialize lowp float pixel_ratio_to
20702
+ #pragma maplibre: initialize lowp float blur
20703
+ #pragma maplibre: initialize lowp float opacity
20704
+ clipAntimeridian();vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture(u_image,pos_a),texture(u_image,pos_b),u_fade);fragColor=color*alpha*opacity;
20705
+ #ifdef GLOBE
20706
+ if (v_depth > 1.0) {discard;}
20707
+ #endif
20708
+ #ifdef OVERDRAW_INSPECTOR
20709
+ fragColor=vec4(1.0);
20710
+ #endif
20711
+ }`,`
20712
+ #define scale 0.015873016
20713
+ #define LINE_DISTANCE_SCALE 2.0
20714
+ layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;out vec2 v_normal;out vec2 v_width2;out float v_linesofar;out float v_gamma_scale;out float v_width;
20715
+ #ifdef GLOBE
20716
+ out float v_depth;
20717
+ #endif
20718
+ #pragma maplibre: define lowp float blur
20719
+ #pragma maplibre: define lowp float opacity
20720
+ #pragma maplibre: define lowp float offset
20721
+ #pragma maplibre: define mediump float gapwidth
20722
+ #pragma maplibre: define mediump float width
20723
+ #pragma maplibre: define lowp float floorwidth
20724
+ #pragma maplibre: define lowp vec4 pattern_from
20725
+ #pragma maplibre: define lowp vec4 pattern_to
20726
+ #pragma maplibre: define lowp float pixel_ratio_from
20727
+ #pragma maplibre: define lowp float pixel_ratio_to
20728
+ void main() {
20729
+ #pragma maplibre: initialize lowp float blur
20730
+ #pragma maplibre: initialize lowp float opacity
20731
+ #pragma maplibre: initialize lowp float offset
20732
+ #pragma maplibre: initialize mediump float gapwidth
20733
+ #pragma maplibre: initialize mediump float width
20734
+ #pragma maplibre: initialize lowp float floorwidth
20735
+ #pragma maplibre: initialize mediump vec4 pattern_from
20736
+ #pragma maplibre: initialize mediump vec4 pattern_to
20737
+ #pragma maplibre: initialize lowp float pixel_ratio_from
20738
+ #pragma maplibre: initialize lowp float pixel_ratio_to
20739
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
20740
+ #ifdef GLOBE
20741
+ v_depth=gl_Position.z/gl_Position.w;
20742
+ #endif
20743
+ #ifdef TERRAIN3D
20744
+ v_gamma_scale=1.0;
20745
+ #else
20746
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
20747
+ #endif
20748
+ v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:CO(`uniform lowp float u_lineatlas_width;uniform sampler2D u_image;uniform float u_mix;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;
20749
+ #ifdef GLOBE
20750
+ in float v_depth;
20751
+ #endif
20752
+ #pragma maplibre: define highp vec4 color
20753
+ #pragma maplibre: define lowp float blur
20754
+ #pragma maplibre: define lowp float opacity
20755
+ #pragma maplibre: define mediump float width
20756
+ #pragma maplibre: define lowp float floorwidth
20757
+ #pragma maplibre: define mediump vec4 dasharray_from
20758
+ #pragma maplibre: define mediump vec4 dasharray_to
20759
+ void main() {
20760
+ #pragma maplibre: initialize highp vec4 color
20761
+ #pragma maplibre: initialize lowp float blur
20762
+ #pragma maplibre: initialize lowp float opacity
20763
+ #pragma maplibre: initialize mediump float width
20764
+ #pragma maplibre: initialize lowp float floorwidth
20765
+ #pragma maplibre: initialize mediump vec4 dasharray_from
20766
+ #pragma maplibre: initialize mediump vec4 dasharray_to
20767
+ clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture(u_image,v_tex_a).a;float sdfdist_b=texture(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0/u_device_pixel_ratio)/min(dasharray_from.w,dasharray_to.w);alpha*=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*opacity);
20768
+ #ifdef GLOBE
20769
+ if (v_depth > 1.0) {discard;}
20770
+ #endif
20771
+ #ifdef OVERDRAW_INSPECTOR
20772
+ fragColor=vec4(1.0);
20773
+ #endif
20774
+ }`,`
20775
+ #define scale 0.015873016
20776
+ #define LINE_DISTANCE_SCALE 2.0
20777
+ layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out vec2 v_tex_a;out vec2 v_tex_b;out float v_gamma_scale;
20778
+ #ifdef GLOBE
20779
+ out float v_depth;
20780
+ #endif
20781
+ #pragma maplibre: define highp vec4 color
20782
+ #pragma maplibre: define lowp float blur
20783
+ #pragma maplibre: define lowp float opacity
20784
+ #pragma maplibre: define mediump float gapwidth
20785
+ #pragma maplibre: define lowp float offset
20786
+ #pragma maplibre: define mediump float width
20787
+ #pragma maplibre: define lowp float floorwidth
20788
+ #pragma maplibre: define mediump vec4 dasharray_from
20789
+ #pragma maplibre: define mediump vec4 dasharray_to
20790
+ void main() {
20791
+ #pragma maplibre: initialize highp vec4 color
20792
+ #pragma maplibre: initialize lowp float blur
20793
+ #pragma maplibre: initialize lowp float opacity
20794
+ #pragma maplibre: initialize mediump float gapwidth
20795
+ #pragma maplibre: initialize lowp float offset
20796
+ #pragma maplibre: initialize mediump float width
20797
+ #pragma maplibre: initialize lowp float floorwidth
20798
+ #pragma maplibre: initialize mediump vec4 dasharray_from
20799
+ #pragma maplibre: initialize mediump vec4 dasharray_to
20800
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
20801
+ #ifdef GLOBE
20802
+ v_depth=gl_Position.z/gl_Position.w;
20803
+ #endif
20804
+ #ifdef TERRAIN3D
20805
+ v_gamma_scale=1.0;
20806
+ #else
20807
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
20808
+ #endif
20809
+ float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),lineGradientSDF:CO(`uniform sampler2D u_image;uniform sampler2D u_image_dash;uniform float u_mix;uniform lowp float u_lineatlas_width;in vec2 v_normal;in vec2 v_width2;in vec2 v_tex_a;in vec2 v_tex_b;in float v_gamma_scale;in highp vec2 v_uv;
20810
+ #ifdef GLOBE
20811
+ in float v_depth;
20812
+ #endif
20813
+ #pragma maplibre: define lowp float blur
20814
+ #pragma maplibre: define lowp float opacity
20815
+ #pragma maplibre: define mediump float width
20816
+ #pragma maplibre: define lowp float floorwidth
20817
+ #pragma maplibre: define mediump vec4 dasharray_from
20818
+ #pragma maplibre: define mediump vec4 dasharray_to
20819
+ void main() {
20820
+ #pragma maplibre: initialize lowp float blur
20821
+ #pragma maplibre: initialize lowp float opacity
20822
+ #pragma maplibre: initialize mediump float width
20823
+ #pragma maplibre: initialize lowp float floorwidth
20824
+ #pragma maplibre: initialize mediump vec4 dasharray_from
20825
+ #pragma maplibre: initialize mediump vec4 dasharray_to
20826
+ clipAntimeridian();float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture(u_image,v_uv);float sdfdist_a=texture(u_image_dash,v_tex_a).a;float sdfdist_b=texture(u_image_dash,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);float sdfgamma=(u_lineatlas_width/256.0)/min(dasharray_from.w,dasharray_to.w);float dash_alpha=smoothstep(0.5-sdfgamma/floorwidth,0.5+sdfgamma/floorwidth,sdfdist);fragColor=color*(alpha*dash_alpha*opacity);
20827
+ #ifdef GLOBE
20828
+ if (v_depth > 1.0) {discard;}
20829
+ #endif
20830
+ #ifdef OVERDRAW_INSPECTOR
20831
+ fragColor=vec4(1.0);
20832
+ #endif
20833
+ }`,`
20834
+ #define scale 0.015873016
20835
+ #define LINE_DISTANCE_SCALE 2.0
20836
+ layout(location=0) in ivec2 a_pos_normal;layout(location=1) in uvec4 a_data;layout(location=2) in vec2 a_offset_normal;layout(location=3) in float a_uv_x;layout(location=4) in float a_split_index;uniform vec2 u_translation;uniform mediump float u_ratio;uniform float u_image_height;uniform float u_tileratio;uniform float u_crossfade_from;uniform float u_crossfade_to;uniform float u_lineatlas_height;out vec2 v_normal;out vec2 v_width2;out float v_gamma_scale;out highp vec2 v_uv;out vec2 v_tex_a;out vec2 v_tex_b;
20837
+ #ifdef GLOBE
20838
+ out float v_depth;
20839
+ #endif
20840
+ #pragma maplibre: define lowp float blur
20841
+ #pragma maplibre: define lowp float opacity
20842
+ #pragma maplibre: define mediump float gapwidth
20843
+ #pragma maplibre: define lowp float offset
20844
+ #pragma maplibre: define mediump float width
20845
+ #pragma maplibre: define lowp float floorwidth
20846
+ #pragma maplibre: define mediump vec4 dasharray_from
20847
+ #pragma maplibre: define mediump vec4 dasharray_to
20848
+ void main() {
20849
+ #pragma maplibre: initialize lowp float blur
20850
+ #pragma maplibre: initialize lowp float opacity
20851
+ #pragma maplibre: initialize mediump float gapwidth
20852
+ #pragma maplibre: initialize lowp float offset
20853
+ #pragma maplibre: initialize mediump float width
20854
+ #pragma maplibre: initialize lowp float floorwidth
20855
+ #pragma maplibre: initialize mediump vec4 dasharray_from
20856
+ #pragma maplibre: initialize mediump vec4 dasharray_to
20857
+ if (opacity < 0.01) {gl_Position=vec4(-2.0,-2.0,-2.0,1.0);return;}float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=vec2(ivec2(a_data.xy)-128);float a_linesofar=float((a_data.z >> 2u)+a_data.w*64u)*LINE_DISTANCE_SCALE;float texel_height=1.0/u_image_height;float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=vec2(a_pos_normal >> 1);mediump vec2 normal=vec2(a_pos_normal & 1);normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump vec2 offset2=offset*a_offset_normal*scale*normal.y;float adjustedThickness=projectLineThickness(pos.y);vec4 projected_no_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation);vec4 projected_with_extrude=projectTile(pos+offset2/u_ratio*adjustedThickness+u_translation+dist/u_ratio*adjustedThickness);gl_Position=projected_with_extrude;
20858
+ #ifdef GLOBE
20859
+ v_depth=gl_Position.z/gl_Position.w;
20860
+ #endif
20861
+ #ifdef TERRAIN3D
20862
+ v_gamma_scale=1.0;
20863
+ #else
20864
+ float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length((projected_with_extrude.xy-projected_no_extrude.xy)/projected_with_extrude.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;
20865
+ #endif
20866
+ float u_patternscale_a_x=u_tileratio/dasharray_from.w/u_crossfade_from;float u_patternscale_a_y=-dasharray_from.z/2.0/u_lineatlas_height;float u_patternscale_b_x=u_tileratio/dasharray_to.w/u_crossfade_to;float u_patternscale_b_y=-dasharray_to.z/2.0/u_lineatlas_height;v_tex_a=vec2(a_linesofar*u_patternscale_a_x/floorwidth,normal.y*u_patternscale_a_y+(float(dasharray_from.y)+0.5)/u_lineatlas_height);v_tex_b=vec2(a_linesofar*u_patternscale_b_x/floorwidth,normal.y*u_patternscale_b_y+(float(dasharray_to.y)+0.5)/u_lineatlas_height);v_width2=vec2(outset,inset);}`),layerOpacity:CO(`uniform sampler2D u_image;uniform float u_opacity;in vec2 v_pos;void main() {fragColor=texture(u_image,v_pos)*u_opacity;
20867
+ #ifdef OVERDRAW_INSPECTOR
20868
+ fragColor=vec4(0.0);
20869
+ #endif
20870
+ }`,`layout(location=0) in vec2 a_pos;out vec2 v_pos;void main() {gl_Position=vec4(a_pos.x*2.0-1.0,1.0-a_pos.y*2.0,0.0,1.0);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}`),raster:CO(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;in vec3 v_pos0;in vec3 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture(u_image0,v_pos0.xy/v_pos0.z);vec4 color1=texture(u_image1,v_pos1.xy/v_pos1.z);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);fragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a);
20871
+ #ifdef OVERDRAW_INSPECTOR
20872
+ fragColor=vec4(1.0);
20873
+ #endif
20874
+ }`,`uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;uniform vec3 u_image_warp;uniform vec4 u_coords_top;uniform vec4 u_coords_bottom;layout(location=0) in vec2 a_pos;out vec3 v_pos0;out vec3 v_pos1;void main() {vec2 fractionalPos=a_pos/8192.0;vec2 topLeft=u_coords_top.xy;vec2 topRight=u_coords_top.zw;vec2 bottomLeft=u_coords_bottom.xy;vec2 bottomRight=u_coords_bottom.zw;vec2 bilinearPos=mix(mix(topLeft,topRight,fractionalPos.x),mix(bottomLeft,bottomRight,fractionalPos.x),fractionalPos.y);float denominator=dot(u_image_warp.xy,fractionalPos)+1.0;vec2 acrossTop=topRight-topLeft+u_image_warp.x*topRight;vec2 downLeft=bottomLeft-topLeft+u_image_warp.y*bottomLeft;vec2 projectivePos=(acrossTop*fractionalPos.x+downLeft*fractionalPos.y+topLeft)/denominator;vec2 position=mix(projectivePos,bilinearPos,u_image_warp.z);gl_Position=projectTile(position,position);vec2 texturePos=((fractionalPos-0.5)/u_buffer_scale)+0.5;
20875
+ #ifdef GLOBE
20876
+ if (a_pos.y <-32767.5) {texturePos.y=0.0;}if (a_pos.y > 32766.5) {texturePos.y=1.0;}
20877
+ #endif
20878
+ float perspectiveRatio=mix(1.0/denominator,1.0,u_image_warp.z);v_pos0=vec3(texturePos*perspectiveRatio,perspectiveRatio);vec2 parentPos=(texturePos*u_scale_parent)+u_tl_parent;v_pos1=vec3(parentPos*perspectiveRatio,perspectiveRatio);}`),symbolIcon:CO(`uniform sampler2D u_texture;in vec2 v_tex;in float v_total_opacity;void main() {fragColor=texture(u_texture,v_tex)*v_total_opacity;
20879
+ #ifdef OVERDRAW_INSPECTOR
20880
+ fragColor=vec4(1.0);
20881
+ #endif
20882
+ }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in uint a_fade_opacity;layout(location=5) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform bool u_rotate_symbol;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec2 v_tex;out float v_total_opacity;
20883
+ #pragma maplibre: define lowp float opacity
20884
+ void main() {
20885
+ #pragma maplibre: initialize lowp float opacity
20886
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float visibility=calculate_visibility(projectedPoint);v_total_opacity=opacity*max(0.0,min(visibility,fade_opacity[0]+fade_change));if (v_total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
20887
+ camera_to_anchor_distance/u_camera_to_center_distance :
20888
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
20889
+ #ifdef GLOBE
20890
+ if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
20891
+ #endif
20892
+ vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;}`),symbolSDF:CO(`#define SDF_PX 8.0
20893
+ uniform bool u_is_halo;uniform bool u_is_plain;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform bool u_is_text;in vec2 v_data0;in vec3 v_data1;
20894
+ #pragma maplibre: define highp vec4 fill_color
20895
+ #pragma maplibre: define highp vec4 halo_color
20896
+ #pragma maplibre: define lowp float halo_width
20897
+ #pragma maplibre: define lowp float halo_blur
20898
+ void main() {
20899
+ #pragma maplibre: initialize highp vec4 fill_color
20900
+ #pragma maplibre: initialize highp vec4 halo_color
20901
+ #pragma maplibre: initialize lowp float halo_width
20902
+ #pragma maplibre: initialize lowp float halo_blur
20903
+ float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float total_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out_text,color_alpha_out_halo;if (u_is_plain){highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);color_alpha_out_text=total_opacity*alpha*fill_color;}if (u_is_halo) {float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);float inner_edge_halo=inner_edge+gamma_halo*gamma_scale;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(inner_edge_halo-gamma_scaled_halo,inner_edge_halo+gamma_scaled_halo,dist);highp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha_halo= min(smoothstep(halo_edge-gamma_scaled_halo,halo_edge+gamma_scaled_halo,dist),1.0-alpha_halo);color_alpha_out_halo=total_opacity*alpha_halo*halo_color;}if (u_is_plain && u_is_halo) {fragColor=color_alpha_out_text+(1.-color_alpha_out_text.a)*color_alpha_out_halo;} else if (u_is_halo){fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out_text;}
20904
+ #ifdef OVERDRAW_INSPECTOR
20905
+ fragColor=vec4(1.0);
20906
+ #endif
20907
+ }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec4 a_pixeloffset;layout(location=3) in vec3 a_projected_pos;layout(location=4) in uint a_fade_opacity;layout(location=5) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform bool u_rotate_symbol;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec2 v_data0;out vec3 v_data1;
20908
+ #pragma maplibre: define highp vec4 fill_color
20909
+ #pragma maplibre: define highp vec4 halo_color
20910
+ #pragma maplibre: define lowp float opacity
20911
+ #pragma maplibre: define lowp float halo_width
20912
+ #pragma maplibre: define lowp float halo_blur
20913
+ void main() {
20914
+ #pragma maplibre: initialize highp vec4 fill_color
20915
+ #pragma maplibre: initialize highp vec4 halo_color
20916
+ #pragma maplibre: initialize lowp float opacity
20917
+ #pragma maplibre: initialize lowp float halo_width
20918
+ #pragma maplibre: initialize lowp float halo_blur
20919
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);vec2 a_pxoffset=a_pixeloffset.xy/16.0;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
20920
+ camera_to_anchor_distance/u_camera_to_center_distance :
20921
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
20922
+ #ifdef GLOBE
20923
+ if(u_pitch_with_map) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
20924
+ #endif
20925
+ vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,total_opacity);}`),symbolTextAndIcon:CO(`#define SDF_PX 8.0
20926
+ #define SDF 1.0
20927
+ #define ICON 0.0
20928
+ uniform bool u_is_halo;uniform bool u_is_text;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;in vec4 v_data0;in vec3 v_data1;in float v_is_sdf;
20929
+ #pragma maplibre: define highp vec4 fill_color
20930
+ #pragma maplibre: define highp vec4 halo_color
20931
+ #pragma maplibre: define lowp float halo_width
20932
+ #pragma maplibre: define lowp float halo_blur
20933
+ void main() {
20934
+ #pragma maplibre: initialize highp vec4 fill_color
20935
+ #pragma maplibre: initialize highp vec4 halo_color
20936
+ #pragma maplibre: initialize lowp float halo_width
20937
+ #pragma maplibre: initialize lowp float halo_blur
20938
+ float total_opacity=v_data1[2];if (v_is_sdf==ICON) {vec2 tex_icon=v_data0.zw;fragColor=texture(u_texture_icon,tex_icon)*total_opacity;
20939
+ #ifdef OVERDRAW_INSPECTOR
20940
+ fragColor=vec4(1.0);
20941
+ #endif
20942
+ return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;lowp float dist=texture(u_texture,tex).a;lowp vec4 color_alpha_out,color_alpha_out_halo;if (u_is_text) {highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);color_alpha_out=fill_color*(alpha*total_opacity);}if (u_is_halo) {highp float gamma_halo=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);lowp float buff_halo=(6.0-halo_width/fontScale)/SDF_PX;highp float gamma_scaled_halo=gamma_halo*gamma_scale;highp float alpha_halo=smoothstep(buff_halo-gamma_scaled_halo,buff_halo+gamma_scaled_halo,dist);color_alpha_out_halo=halo_color*(alpha_halo*total_opacity);}if (u_is_text && u_is_halo) {fragColor=color_alpha_out+(1.-color_alpha_out.a)*color_alpha_out_halo;} else if (u_is_halo) {fragColor=color_alpha_out_halo;} else {fragColor=color_alpha_out;}
20943
+ #ifdef OVERDRAW_INSPECTOR
20944
+ fragColor=vec4(1.0);
20945
+ #endif
20946
+ }`,`layout(location=0) in vec4 a_pos_offset;layout(location=1) in uvec4 a_data;layout(location=2) in vec3 a_projected_pos;layout(location=3) in uint a_fade_opacity;layout(location=4) in float a_height_offset;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_rotate_symbol;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;uniform bool u_is_offset;uniform bool u_height_anchor_ground;out vec4 v_data0;out vec3 v_data1;out float v_is_sdf;
20947
+ #pragma maplibre: define highp vec4 fill_color
20948
+ #pragma maplibre: define highp vec4 halo_color
20949
+ #pragma maplibre: define lowp float opacity
20950
+ #pragma maplibre: define lowp float halo_width
20951
+ #pragma maplibre: define lowp float halo_blur
20952
+ void main() {
20953
+ #pragma maplibre: initialize highp vec4 fill_color
20954
+ #pragma maplibre: initialize highp vec4 halo_color
20955
+ #pragma maplibre: initialize lowp float opacity
20956
+ #pragma maplibre: initialize lowp float halo_width
20957
+ #pragma maplibre: initialize lowp float halo_blur
20958
+ vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=vec2(a_data.xy);vec2 a_size=vec2(a_data.zw);float a_size_min=float(a_data.z >> 1u);float is_sdf=float(a_data.z & 1u);float ele=a_height_offset+(u_height_anchor_ground ? get_elevation(a_pos) : 0.0);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_symbol_fade_change :-u_symbol_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));float total_opacity=opacity*interpolated_fade_opacity;if (total_opacity < 0.1){gl_Position=vec4(-2.,-2.,-2.,1.);return;}highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ?
20959
+ camera_to_anchor_distance/u_camera_to_center_distance :
20960
+ u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);if (!u_is_offset) {size*=perspective_ratio;}float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;
20961
+ #ifdef GLOBE
20962
+ if(u_pitch_with_map && !u_is_along_line) {float anchor_pos_tile_y=(u_coord_matrix*vec4(projected_pos.xy/projected_pos.w,z,1.0)).y;projectionScaling=mix(projectionScaling,1.0/circumferenceRatioAtTileY(anchor_pos_tile_y)*u_pitched_scale,u_projection_transition);}
20963
+ #endif
20964
+ vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec3(gamma_scale,size,total_opacity);v_is_sdf=is_sdf;}`),terrain:CO(`uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;uniform bool u_is_globe_mode;in vec2 v_texture_pos;in float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture(u_texture,vec2(v_texture_pos.x,1.0-v_texture_pos.y));if (!u_is_globe_mode && u_fog_ground_blend_opacity > 0.0 && v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);fragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {fragColor=surface_color;}}`,`layout(location=0) in vec3 a_pos3d;uniform mat4 u_fog_matrix;uniform float u_ele_delta;out vec2 v_texture_pos;out float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}`),terrainDepth:CO(`in float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {fragColor=pack(v_depth);}`,`layout(location=0) in vec3 a_pos3d;uniform float u_ele_delta;out float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=projectTileFor3D(a_pos3d.xy,ele-ele_delta);v_depth=gl_Position.z/gl_Position.w;}`),terrainHeight:CO(`in highp float v_elevation;void main() {fragColor=vec4(v_elevation,0.0,0.0,1.0);}`,`layout(location=0) in vec3 a_pos3d;uniform vec4 u_tile_bounds;out highp float v_elevation;void main() {v_elevation=get_elevation(a_pos3d.xy);vec2 position=u_tile_bounds.xy+a_pos3d.xy/8192.0*u_tile_bounds.zw;gl_Position=vec4(position.x*2.0-1.0,1.0-position.y*2.0,0.0,1.0);}`),atmosphere:CO(`#ifdef GL_ES
20965
+ precision highp float;
20966
+ #endif
20967
+ in vec3 view_direction;uniform vec3 u_sun_pos;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;/**Shader use from https:*Made some change to adapt to MapLibre Globe geometry*/const float PI=3.141592653589793;const int iSteps=5;const int jSteps=3;/*radius of the planet*/const float EARTH_RADIUS=6371e3;/*radius of the atmosphere*/const float ATMOS_RADIUS=6471e3;vec2 rsi(vec3 r0,vec3 rd,float sr) {float a=dot(rd,rd);float b=2.0*dot(rd,r0);float c=dot(r0,r0)-(sr*sr);float d=(b*b)-4.0*a*c;if (d < 0.0) return vec2(1e5,-1e5);return vec2((-b-sqrt(d))/(2.0*a),(-b+sqrt(d))/(2.0*a));}vec4 atmosphere(vec3 r,vec3 r0,vec3 pSun,float iSun,float rPlanet,float rAtmos,vec3 kRlh,float kMie,float shRlh,float shMie,float g) {pSun=normalize(pSun);r=normalize(r);vec2 p=rsi(r0,r,rAtmos);if (p.x > p.y) {return vec4(0.0,0.0,0.0,1.0);}if (p.x < 0.0) {p.x=0.0;}vec3 pos=r0+r*p.x;vec2 p2=rsi(r0,r,rPlanet);if (p2.x <=p2.y && p2.x > 0.0) {p.y=min(p.y,p2.x);}float iStepSize=(p.y-p.x)/float(iSteps);float iTime=p.x+iStepSize*0.5;vec3 totalRlh=vec3(0,0,0);vec3 totalMie=vec3(0,0,0);float iOdRlh=0.0;float iOdMie=0.0;float mu=dot(r,pSun);float mumu=mu*mu;float gg=g*g;float pRlh=3.0/(16.0*PI)*(1.0+mumu);float pMie=3.0/(8.0*PI)*((1.0-gg)*(mumu+1.0))/(pow(1.0+gg-2.0*mu*g,1.5)*(2.0+gg));for (int i=0; i < iSteps; i++) {vec3 iPos=r0+r*iTime;float iHeight=length(iPos)-rPlanet;float odStepRlh=exp(-iHeight/shRlh)*iStepSize;float odStepMie=exp(-iHeight/shMie)*iStepSize;iOdRlh+=odStepRlh;iOdMie+=odStepMie;float jStepSize=rsi(iPos,pSun,rAtmos).y/float(jSteps);float jTime=jStepSize*0.5;float jOdRlh=0.0;float jOdMie=0.0;for (int j=0; j < jSteps; j++) {vec3 jPos=iPos+pSun*jTime;float jHeight=length(jPos)-rPlanet;jOdRlh+=exp(-jHeight/shRlh)*jStepSize;jOdMie+=exp(-jHeight/shMie)*jStepSize;jTime+=jStepSize;}vec3 attn=exp(-(kMie*(iOdMie+jOdMie)+kRlh*(iOdRlh+jOdRlh)));totalRlh+=odStepRlh*attn;totalMie+=odStepMie*attn;iTime+=iStepSize;}float opacity=exp(-(length(kRlh)*length(totalRlh)+kMie*length(totalMie)));vec3 color=iSun*(pRlh*kRlh*totalRlh+pMie*kMie*totalMie);return vec4(color,opacity);}void main() {vec3 scale_camera_pos=-u_globe_position*EARTH_RADIUS/u_globe_radius;vec4 color=atmosphere(normalize(view_direction),scale_camera_pos,u_sun_pos,22.0,EARTH_RADIUS,ATMOS_RADIUS,vec3(5.5e-6,13.0e-6,22.4e-6),21e-6,8e3,1.2e3,0.758
20968
+ );color.rgb=1.0-exp(-1.0*color.rgb);color=pow(color,vec4(1.0/2.2));fragColor=vec4(color.rgb,1.0-color.a)*u_atmosphere_blend;}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 view_direction;void main() {view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,0.0,1.0);}`),sky:CO(`uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform vec2 u_horizon;uniform vec2 u_horizon_normal;uniform float u_sky_horizon_blend;uniform float u_sky_blend;uniform vec3 u_globe_position;uniform float u_globe_radius;uniform float u_atmosphere_blend;in vec3 v_view_direction;const float ATMOSPHERE_HEIGHT_TO_GLOBE_RADIUS=100000.0/6371000.0;void main() {float x=gl_FragCoord.x;float y=gl_FragCoord.y;float blend=(y-u_horizon.y)*u_horizon_normal.y+(x-u_horizon.x)*u_horizon_normal.x;float opacity=1.0;if (u_sky_blend > 0.0) {vec3 ray=normalize(v_view_direction);float globe_distance=length(u_globe_position);float angle_to_globe_center=acos(clamp(dot(ray,u_globe_position)/globe_distance,-1.0,1.0));float horizon_angle=asin(min(u_globe_radius/globe_distance,1.0));blend=mix(blend,((angle_to_globe_center-horizon_angle)*u_camera_to_center_distance+1.0)*u_device_pixel_ratio,u_sky_blend);float closest_approach=max(dot(ray,u_globe_position),0.0);float lowest_altitude=sqrt(max(globe_distance*globe_distance-closest_approach*closest_approach,0.0))-u_globe_radius;float atmosphere_height=u_globe_radius*ATMOSPHERE_HEIGHT_TO_GLOBE_RADIUS;float inside_atmosphere=1.0-smoothstep(atmosphere_height,10.0*atmosphere_height,globe_distance-u_globe_radius);float through_atmosphere=1.0-smoothstep(0.0,atmosphere_height,lowest_altitude);opacity=inside_atmosphere*through_atmosphere*(1.0-u_atmosphere_blend);}if (blend > 0.0) {if (blend < u_sky_horizon_blend) {fragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {fragColor=u_sky_color;}}fragColor*=mix(1.0,opacity,u_sky_blend);}`,`layout(location=0) in vec2 a_pos;uniform mat4 u_inv_proj_matrix;out vec3 v_view_direction;void main() {v_view_direction=(u_inv_proj_matrix*vec4(a_pos,0.0,1.0)).xyz;gl_Position=vec4(a_pos,1.0,1.0);}`)});function CO(e,t){let n=/#pragma maplibre: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,r=t.match(/in ([\w]+) ([\w]+)/g),i=e.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),a=t.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),o=a?a.concat(i):i,s=r?r.length:0,c={};return e=e.replace(n,(e,t,n,r,i)=>(c[i]=true,t===`define`?`
20969
+ #ifndef HAS_UNIFORM_u_${i}
20970
+ in ${n} ${r} ${i};
20971
+ #else
20972
+ uniform ${n} ${r} u_${i};
20973
+ #endif
20974
+ `:`
20975
+ #ifdef HAS_UNIFORM_u_${i}
20976
+ ${n} ${r} ${i} = u_${i};
20977
+ #endif
20978
+ `)),t=t.replace(n,(e,t,n,r,i)=>{let a=r===`float`?`vec2`:`vec4`,o=i.match(/color/)?`color`:a;return c[i]?t===`define`?`
20979
+ #ifndef HAS_UNIFORM_u_${i}
20980
+ uniform lowp float u_${i}_t;
20981
+ layout(location = ${s++}) in ${n} ${a} a_${i};
20982
+ out ${n} ${r} ${i};
20983
+ #else
20984
+ uniform ${n} ${r} u_${i};
20985
+ #endif
20986
+ `:o===`vec4`?`
20987
+ #ifndef HAS_UNIFORM_u_${i}
20988
+ ${i} = a_${i};
20989
+ #else
20990
+ ${n} ${r} ${i} = u_${i};
20991
+ #endif
20992
+ `:`
20993
+ #ifndef HAS_UNIFORM_u_${i}
20994
+ ${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
20995
+ #else
20996
+ ${n} ${r} ${i} = u_${i};
20997
+ #endif
20998
+ `:t===`define`?`
20999
+ #ifndef HAS_UNIFORM_u_${i}
21000
+ uniform lowp float u_${i}_t;
21001
+ layout(location = ${s++}) in ${n} ${a} a_${i};
21002
+ #else
21003
+ uniform ${n} ${r} u_${i};
21004
+ #endif
21005
+ `:o===`vec4`?`
21006
+ #ifndef HAS_UNIFORM_u_${i}
21007
+ ${n} ${r} ${i} = a_${i};
21008
+ #else
21009
+ ${n} ${r} ${i} = u_${i};
21010
+ #endif
21011
+ `:`
21012
+ #ifndef HAS_UNIFORM_u_${i}
21013
+ ${n} ${r} ${i} = unpack_mix_${o}(a_${i}, u_${i}_t);
21014
+ #else
21015
+ ${n} ${r} ${i} = u_${i};
21016
+ #endif
21017
+ `}),{fragmentSource:e,vertexSource:t,staticAttributes:r,staticUniforms:o}}new mm({fill:new pm(128,2),line:new pm(512,0),tile:new pm(128,32),stencil:new pm(128,1),circle:3});Vs();lu([{name:`a_pos`,type:`Int16`,components:2},{name:`a_texture_pos`,type:`Int16`,components:2}]);const UA={float:[1,1],int:[1,1],vec2:[2,2],vec4:[4,4],mat4:[16,4]};function WA(e){let t={},n=0;for(let{name:r,type:i}of e){let[e,a]=UA[i];n=Math.ceil(n/a)*a,t[r]=n,n+=e;}return {offsets:t,contentWords:n,sizeWords:Math.ceil(n/4)*4}}WA([{name:`u_projection_matrix`,type:`mat4`},{name:`u_projection_fallback_matrix`,type:`mat4`},{name:`u_projection_tile_mercator_coords`,type:`vec4`},{name:`u_projection_clipping_plane`,type:`vec4`},{name:`u_projection_transition`,type:`float`},{name:`u_projection_clip_antimeridian`,type:`int`}]);WA([{name:`u_units_to_pixels`,type:`vec2`},{name:`u_world_size`,type:`vec2`},{name:`u_camera_to_center_distance`,type:`float`},{name:`u_symbol_fade_change`,type:`float`},{name:`u_aspect_ratio`,type:`float`},{name:`u_device_pixel_ratio`,type:`float`},{name:`u_viewport_size`,type:`vec2`},{name:`u_pixel_extrude_scale`,type:`vec2`},{name:`u_pitch`,type:`float`}]);WA([{name:`u_terrain_matrix`,type:`mat4`},{name:`u_terrain_unpack`,type:`vec4`},{name:`u_terrain_dim`,type:`float`},{name:`u_terrain_exaggeration`,type:`float`}]);var cj=class{constructor(e,t,n){this.blendFunction=e,this.blendColor=t,this.mask=n;}};cj.Replace=[1,0],cj.disabled=new cj(cj.Replace,G.transparent,[false,false,false,false]),cj.unblended=new cj(cj.Replace,G.transparent,[true,true,true,true]),cj.alphaBlended=new cj([1,771],G.transparent,[true,true,true,true]);O(/* @__PURE__ */ new Float32Array(16));new G(1,0,0,1);new G(0,1,0,1);new G(0,0,1,1);new G(1,0,1,1);new G(0,1,1,1);const cP={linearity:.3,easing:St(0,0,.3,1)};I({deceleration:2500,maxSpeed:1400},cP);I({deceleration:20,maxSpeed:1400},cP);I({deceleration:1e3,maxSpeed:360},cP);I({deceleration:1e3,maxSpeed:90},cP);I({deceleration:1e3,maxSpeed:360},cP);lu([{name:`a_pos3d`,type:`Int16`,components:3}]);
21018
+
21019
+ class MapLibreStyleFactory {
21020
+ protocolId = 0;
21021
+ createMapTripStyle(options) {
21022
+ const token = options.token;
21023
+ const factory = VectorTileFactory.createFactory(options);
21024
+ const protocol = `maptrip${++this.protocolId}`;
21025
+ let attributionPromise;
21026
+ jn(protocol, async (params) => {
21027
+ if (params.url === `${protocol}://metadata`) {
21028
+ const attribution = await (attributionPromise ??= VectorTileUtils.getAttribution(token, options.provider, options.attribution, options.releaseDate));
21029
+ return {
21030
+ data: {
21031
+ tilejson: "2.2.0",
21032
+ tileSize: 256,
21033
+ tiles: [`${protocol}://{z}/{x}/{y}`],
21034
+ minzoom: Math.max(options.minZoom ? options.minZoom : MIN_ZOOM, MIN_ZOOM),
21035
+ maxzoom: Math.min(options.maxZoom ? options.maxZoom : MAX_ZOOM, MAX_ZOOM),
21036
+ attribution
21037
+ }
21038
+ };
19343
21039
  }
19344
- this._map.attributionControl.removeAttribution(this.options.attribution);
19345
- this.attribution = `${this.options.attribution} ${this.release}`;
19346
- this._map.attributionControl.addAttribution(this.attribution);
19347
- const map = this._map;
19348
- this._map.addEventListener("baselayerchange", () => {
19349
- map.attributionControl.removeAttribution(this.attribution);
19350
- });
19351
- } catch (error) {
19352
- console.error("Error fetching release version: ", error);
19353
- }
21040
+ const match = params.url.match(
21041
+ /^maptrip\d+:\/\/(\d+)\/(\d+)\/(\d+)$/
21042
+ );
21043
+ if (!match) {
21044
+ throw new Error(`Invalid tile URL: ${params.url}`);
21045
+ }
21046
+ const z = Number(match[1]);
21047
+ const x = Number(match[2]);
21048
+ const y = Number(match[3]);
21049
+ const canvas = await this.getTileCanvasAsync(factory, z, x, y, token);
21050
+ return {
21051
+ data: await createImageBitmap(canvas)
21052
+ };
21053
+ });
21054
+ return {
21055
+ version: 8,
21056
+ name: "MapTrip Map",
21057
+ sources: {
21058
+ maptrip: {
21059
+ type: "raster",
21060
+ url: `${protocol}://metadata`
21061
+ }
21062
+ },
21063
+ layers: [
21064
+ {
21065
+ id: "maptrip-layer",
21066
+ type: "raster",
21067
+ source: "maptrip"
21068
+ }
21069
+ ]
21070
+ };
19354
21071
  }
19355
- async onBaseLayerChange(event) {
19356
- if (!this._map) {
19357
- return;
19358
- }
19359
- this._map.attributionControl.removeAttribution(this.attribution);
19360
- const eventProvider = event.layer.options.provider;
19361
- let newProvider;
19362
- if (eventProvider) {
19363
- if (eventProvider.toLowerCase() === "openstreetmap") {
19364
- newProvider = "openstreetmap";
19365
- } else if (eventProvider.toLowerCase() === "tomtom") {
19366
- newProvider = "tomtom";
19367
- } else if (eventProvider.toLowerCase() === "orbis") {
19368
- newProvider = "orbis";
19369
- } else if (eventProvider.toLowerCase() === "here") {
19370
- newProvider = "here";
19371
- } else {
19372
- newProvider = "openstreetmap";
21072
+ getTileCanvasAsync(factory, z, x, y, token) {
21073
+ return new Promise((resolve, reject) => {
21074
+ try {
21075
+ const canvas = factory.getJsonTile(z, x, y, token, () => {
21076
+ resolve(canvas);
21077
+ });
21078
+ if (!canvas) {
21079
+ reject(new Error("getJsonTile returned no canvas"));
21080
+ }
21081
+ } catch (err) {
21082
+ reject(err);
19373
21083
  }
19374
- this.provider = newProvider;
19375
- await this.setAttribution();
19376
- }
21084
+ });
19377
21085
  }
19378
21086
  }
19379
21087
 
@@ -27204,6 +28912,28 @@ class XYZ extends TileImage {
27204
28912
  }
27205
28913
  }
27206
28914
 
28915
+ class MapTripGoogleMapType {
28916
+ tileSize = new google.maps.Size(256, 256);
28917
+ alt = null;
28918
+ maxZoom = MAX_ZOOM;
28919
+ minZoom = MIN_ZOOM;
28920
+ projection = null;
28921
+ radius = 6378137;
28922
+ name;
28923
+ token;
28924
+ factory;
28925
+ constructor(properties) {
28926
+ this.name = properties.name ? properties.name : "infoware";
28927
+ this.token = properties.token;
28928
+ this.factory = VectorTileFactory.createFactory(properties);
28929
+ }
28930
+ getTile(coord, zoom) {
28931
+ return this.factory.getJsonTile(zoom, coord.x, coord.y, this.token);
28932
+ }
28933
+ releaseTile() {
28934
+ }
28935
+ }
28936
+
27207
28937
  class MapTripOpenLayersSource extends XYZ {
27208
28938
  token;
27209
28939
  factory;
@@ -27275,5 +29005,5 @@ class MapTripOpenLayersSource extends XYZ {
27275
29005
  }
27276
29006
  }
27277
29007
 
27278
- export { MapReleaseFetcher, MapTripGoogleMapType, MapTripLeafletGridLayer, MapTripOpenLayersSource, RENDERING_CONFIG_DEFAULT, RENDERING_CONFIG_GRAYSCALE, RENDERING_CONFIG_TRAFFIC, VectorTileFactory };
29008
+ export { MapLibreStyleFactory, MapReleaseFetcher, MapTripGoogleMapType, MapTripLeafletGridLayer, MapTripOpenLayersSource, RENDERING_CONFIG_DEFAULT, RENDERING_CONFIG_GRAYSCALE, RENDERING_CONFIG_TRAFFIC, VectorTileFactory };
27279
29009
  //# sourceMappingURL=map-tiles.js.map