signalk-charts-provider-simple 2.9.0 → 2.11.0
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/README.md +19 -10
- package/dist/catalog/build-merged-catalog.d.ts +2 -24
- package/dist/catalog/build-merged-catalog.d.ts.map +1 -1
- package/dist/catalog/build-merged-catalog.js +185 -289
- package/dist/catalog/build-merged-catalog.js.map +1 -1
- package/dist/catalog/chartcatalogs-xml.d.ts +1 -6
- package/dist/catalog/chartcatalogs-xml.js +39 -47
- package/dist/catalog/chartcatalogs-xml.js.map +1 -1
- package/dist/catalog/merged-catalog-schema.d.ts +265 -376
- package/dist/catalog/merged-catalog-schema.d.ts.map +1 -1
- package/dist/catalog/merged-catalog-schema.js +346 -412
- package/dist/catalog/merged-catalog-schema.js.map +1 -1
- package/dist/charts-loader.d.ts +4 -2
- package/dist/charts-loader.d.ts.map +1 -1
- package/dist/charts-loader.js +337 -388
- package/dist/charts-loader.js.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3380 -4028
- package/dist/index.js.map +1 -1
- package/dist/package.js +132 -0
- package/dist/package.js.map +1 -0
- package/dist/types.d.ts +20 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -1
- package/dist/utils/catalog-manager.d.ts +2 -3
- package/dist/utils/catalog-manager.d.ts.map +1 -1
- package/dist/utils/catalog-manager.js +562 -727
- package/dist/utils/catalog-manager.js.map +1 -1
- package/dist/utils/catalog-schemas.d.ts +49 -55
- package/dist/utils/catalog-schemas.d.ts.map +1 -1
- package/dist/utils/catalog-schemas.js +53 -63
- package/dist/utils/catalog-schemas.js.map +1 -1
- package/dist/utils/catalog-title.js +63 -79
- package/dist/utils/catalog-title.js.map +1 -1
- package/dist/utils/chart-state.d.ts +1 -1
- package/dist/utils/chart-state.js +33 -33
- package/dist/utils/chart-state.js.map +1 -1
- package/dist/utils/concurrency.js +35 -44
- package/dist/utils/concurrency.js.map +1 -1
- package/dist/utils/container-fs.js +62 -66
- package/dist/utils/container-fs.js.map +1 -1
- package/dist/utils/container-images.js +24 -20
- package/dist/utils/container-images.js.map +1 -1
- package/dist/utils/container-jobs.d.ts +1 -20
- package/dist/utils/container-jobs.js +99 -102
- package/dist/utils/container-jobs.js.map +1 -1
- package/dist/utils/container-manager.js +54 -86
- package/dist/utils/container-manager.js.map +1 -1
- package/dist/utils/conversion-log.js +21 -17
- package/dist/utils/conversion-log.js.map +1 -1
- package/dist/utils/conversion-progress.d.ts +1 -1
- package/dist/utils/conversion-progress.js +15 -19
- package/dist/utils/conversion-progress.js.map +1 -1
- package/dist/utils/custom-catalog-download.js +96 -102
- package/dist/utils/custom-catalog-download.js.map +1 -1
- package/dist/utils/custom-catalog-manager.d.ts +2 -18
- package/dist/utils/custom-catalog-manager.js +282 -373
- package/dist/utils/custom-catalog-manager.js.map +1 -1
- package/dist/utils/download-manager.d.ts +1 -1
- package/dist/utils/download-manager.d.ts.map +1 -1
- package/dist/utils/download-manager.js +436 -614
- package/dist/utils/download-manager.js.map +1 -1
- package/dist/utils/file-scanner.d.ts +1 -1
- package/dist/utils/file-scanner.d.ts.map +1 -1
- package/dist/utils/file-scanner.js +131 -133
- package/dist/utils/file-scanner.js.map +1 -1
- package/dist/utils/folder-state.d.ts +1 -1
- package/dist/utils/folder-state.js +59 -80
- package/dist/utils/folder-state.js.map +1 -1
- package/dist/utils/job-failure.js +29 -35
- package/dist/utils/job-failure.js.map +1 -1
- package/dist/utils/mbtiles-metadata.js +473 -515
- package/dist/utils/mbtiles-metadata.js.map +1 -1
- package/dist/utils/mbtiles-reader.d.ts +1 -1
- package/dist/utils/mbtiles-reader.js +280 -410
- package/dist/utils/mbtiles-reader.js.map +1 -1
- package/dist/utils/noaa-enc-footprints.d.ts +1 -20
- package/dist/utils/noaa-enc-footprints.js +285 -347
- package/dist/utils/noaa-enc-footprints.js.map +1 -1
- package/dist/utils/online-area-download.d.ts +60 -0
- package/dist/utils/online-area-download.d.ts.map +1 -0
- package/dist/utils/online-area-download.js +173 -0
- package/dist/utils/online-area-download.js.map +1 -0
- package/dist/utils/online-charts.d.ts +63 -21
- package/dist/utils/online-charts.d.ts.map +1 -1
- package/dist/utils/online-charts.js +338 -188
- package/dist/utils/online-charts.js.map +1 -1
- package/dist/utils/online-tile-cache.d.ts +154 -0
- package/dist/utils/online-tile-cache.d.ts.map +1 -0
- package/dist/utils/online-tile-cache.js +550 -0
- package/dist/utils/online-tile-cache.js.map +1 -0
- package/dist/utils/path-marker.js +37 -55
- package/dist/utils/path-marker.js.map +1 -1
- package/dist/utils/path-safety.js +118 -117
- package/dist/utils/path-safety.js.map +1 -1
- package/dist/utils/plugin-config-schema.d.ts +7 -6
- package/dist/utils/plugin-config-schema.d.ts.map +1 -1
- package/dist/utils/plugin-config-schema.js +23 -30
- package/dist/utils/plugin-config-schema.js.map +1 -1
- package/dist/utils/pmtiles-reader.d.ts +46 -0
- package/dist/utils/pmtiles-reader.d.ts.map +1 -0
- package/dist/utils/pmtiles-reader.js +187 -0
- package/dist/utils/pmtiles-reader.js.map +1 -0
- package/dist/utils/quarantine.js +199 -246
- package/dist/utils/quarantine.js.map +1 -1
- package/dist/utils/raster-compose.js +123 -110
- package/dist/utils/raster-compose.js.map +1 -1
- package/dist/utils/raster-overzoom-worker.d.ts +1 -1
- package/dist/utils/raster-overzoom-worker.js +18 -13
- package/dist/utils/raster-overzoom-worker.js.map +1 -1
- package/dist/utils/raster-overzoom.d.ts +2 -22
- package/dist/utils/raster-overzoom.js +161 -170
- package/dist/utils/raster-overzoom.js.map +1 -1
- package/dist/utils/raster-tile-cache.d.ts +1 -28
- package/dist/utils/raster-tile-cache.js +258 -314
- package/dist/utils/raster-tile-cache.js.map +1 -1
- package/dist/utils/rest-validation.d.ts +3 -18
- package/dist/utils/rest-validation.d.ts.map +1 -1
- package/dist/utils/rest-validation.js +33 -50
- package/dist/utils/rest-validation.js.map +1 -1
- package/dist/utils/rnc-converter.d.ts +1 -1
- package/dist/utils/rnc-converter.js +373 -468
- package/dist/utils/rnc-converter.js.map +1 -1
- package/dist/utils/s57-band.js +148 -153
- package/dist/utils/s57-band.js.map +1 -1
- package/dist/utils/s57-converter.d.ts +2 -2
- package/dist/utils/s57-converter.js +1211 -1635
- package/dist/utils/s57-converter.js.map +1 -1
- package/dist/utils/serial-queue.d.ts +6 -0
- package/dist/utils/serial-queue.d.ts.map +1 -0
- package/dist/utils/serial-queue.js +17 -0
- package/dist/utils/serial-queue.js.map +1 -0
- package/dist/utils/tile-overzoom.d.ts +1 -25
- package/dist/utils/tile-overzoom.js +225 -298
- package/dist/utils/tile-overzoom.js.map +1 -1
- package/dist/utils/time-dimension.js +147 -209
- package/dist/utils/time-dimension.js.map +1 -1
- package/dist/utils/time-poller.d.ts +1 -13
- package/dist/utils/time-poller.js +136 -164
- package/dist/utils/time-poller.js.map +1 -1
- package/dist/utils/vessel-position.js +17 -19
- package/dist/utils/vessel-position.js.map +1 -1
- package/dist/utils/zip-extract.js +169 -193
- package/dist/utils/zip-extract.js.map +1 -1
- package/package.json +16 -11
- package/public/css/chart-catalog.css +5 -0
- package/public/css/manage-charts.css +85 -0
- package/public/index.html +24 -1
- package/public/js/chart-catalog.js +30 -279
- package/public/js/chart-catalog.ts +34 -340
- package/public/js/download-simple.js +1 -1
- package/public/js/download-simple.ts +1 -1
- package/public/js/globals.d.ts +34 -0
- package/public/js/main.js +5 -0
- package/public/js/main.ts +4 -0
- package/public/js/manage-charts-enhanced.js +63 -16
- package/public/js/manage-charts-enhanced.ts +100 -16
- package/public/js/near-position.js +35 -0
- package/public/js/near-position.ts +41 -0
- package/public/js/online-area-download.js +399 -0
- package/public/js/online-area-download.ts +478 -0
- package/public/js/online-charts.js +682 -0
- package/public/js/online-charts.ts +843 -0
- package/public/js/tabs.js +6 -0
- package/public/js/tabs.ts +4 -0
- package/dist/types.js.map +0 -1
- package/public/index.js +0 -5
package/README.md
CHANGED
|
@@ -4,11 +4,11 @@ A lightweight Signal K server plugin for managing local nautical charts, written
|
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
7
|
-
- **Local Chart Management**: MBTiles (raster and vector), with folder organization and enable/disable toggles
|
|
7
|
+
- **Local Chart Management**: MBTiles and PMTiles (raster and vector), with folder organization and enable/disable toggles. PMTiles archives are downloaded, uploaded or placed in the chart folder and served as they are; their metadata is read-only
|
|
8
8
|
- **Folder Groups**: Enable/disable whole chart folders at once (OpenCPN-style groups, including nested folders); clients like Freeboard-SK see the change live via `resources.charts` deltas
|
|
9
9
|
- **Download Manager**: Built-in download queue with progress tracking and ZIP extraction
|
|
10
10
|
- **Chart Catalog**: Browse and download charts from [chartcatalogs.github.io](https://chartcatalogs.github.io/) with automatic update notifications
|
|
11
|
-
- **Online Charts**: Add weather radar and satellite, online nautical charts, depth layers
|
|
11
|
+
- **Online Charts and Satellite imagery**: Add weather radar and satellite, online nautical charts, depth layers, base maps and satellite imagery with one click — no download, no conversion
|
|
12
12
|
- **NOAA Charts**: Draw a coverage region on a map from NOAA band-4 chart footprints; the plugin bundles the overlapping band-3/4/5 ENCs and converts them into a single vector MBTiles named after your chart set
|
|
13
13
|
- **S-57 ENC Conversion**: Convert IENC/ENC charts to vector MBTiles with full S-52 symbology in Freeboard-SK
|
|
14
14
|
- **BSB Raster Conversion**: Convert BSB/KAP raster charts and Pilot Charts to raster MBTiles
|
|
@@ -63,7 +63,7 @@ Access the plugin's web interface through your Signal K server:
|
|
|
63
63
|
http://[your-server]:3000/plugins/signalk-charts-provider-simple/
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
The interface provides
|
|
66
|
+
The interface provides seven tabs:
|
|
67
67
|
|
|
68
68
|
1. **Manage Charts**:
|
|
69
69
|
- View all charts with metadata (name, bounds, zoom levels, size)
|
|
@@ -79,7 +79,7 @@ The interface provides five tabs:
|
|
|
79
79
|
|
|
80
80
|
2. **Download from URL**:
|
|
81
81
|
- Download charts directly from any URL
|
|
82
|
-
- Supports `.mbtiles` and `.zip` archives
|
|
82
|
+
- Supports `.mbtiles` and `.pmtiles` files, and `.zip` archives of `.mbtiles`
|
|
83
83
|
- Download queue with progress tracking
|
|
84
84
|
|
|
85
85
|
3. **Convert**:
|
|
@@ -89,15 +89,23 @@ The interface provides five tabs:
|
|
|
89
89
|
- Live conversion progress with log viewer
|
|
90
90
|
|
|
91
91
|
4. **Chart Catalog**:
|
|
92
|
-
- Downloadable charts from [chartcatalogs.github.io](https://chartcatalogs.github.io/)
|
|
93
|
-
- **Online charts** (weather radar and satellite, online nautical charts, depths, base maps): press **Add** and the chart appears in Manage Charts and in your chart plotter. They stream from their provider, so they need an internet connection to display. They go into an "Online Charts" folder by default, so you can switch them all off at once when you're offline
|
|
94
|
-
- Live weather layers (radar, satellite, forecasts) keep their recent images or forecast steps up to date, so chart plotters with a time slider (Freeboard-SK) can play them back
|
|
92
|
+
- Downloadable charts from [chartcatalogs.github.io](https://chartcatalogs.github.io/), sectioned by what the charts show, with **Near me** narrowing each section to where you are
|
|
95
93
|
- One-click download for MBTiles charts (NOAA)
|
|
96
94
|
- Download & convert for S-57 ENC, BSB raster, Pilot Charts, and basemaps
|
|
97
95
|
- Automatic update notifications (Signal K delta + tab badge)
|
|
98
|
-
- Filters:
|
|
96
|
+
- Filters: what the chart shows (Navigation, Depth & Seabed, Base maps); chart type under "More filters"; and **Near me**, using the boat's position
|
|
97
|
+
|
|
98
|
+
5. **Online Charts**:
|
|
99
|
+
- A curated list of online charts, sectioned into navigation charts, depth and seabed, weather (radar, weather satellites, forecasts) and base maps, with **Near me** to show only what covers the boat
|
|
100
|
+
- Press **Add** and the chart appears in Manage Charts and in chart plotters that read the Signal K v2 charts API, such as Freeboard-SK. Most stream from their provider and need an internet connection to display. Charts whose license allows it carry a **Kept offline** badge: they are served through your server, which keeps every tile it fetches, so the areas you have already viewed keep working without internet. To prepare for a passage, press **Offline area** on such a chart, here or in Manage Charts, frame the area on the map, choose the zoom levels and download it ahead of time. Online charts go into an "Online Charts" folder by default, so you can switch them all off at once when you're offline
|
|
101
|
+
- Live weather layers (radar, satellite, forecasts) keep their recent images or forecast steps up to date, so chart plotters with a time slider (Freeboard-SK) can play them back
|
|
102
|
+
- Add an online chart by URL: a `{z}/{x}/{y}` tile service (also `{-y}`, `{z-N}`, `{bbox}` and `{bbox_3857}`) or a WMS the list does not have. Tick **Keep tiles for offline use** only when the provider's terms allow it; the chart is then kept offline like a catalog chart
|
|
103
|
+
|
|
104
|
+
6. **Satellite**:
|
|
105
|
+
- Satellite and aerial imagery side by side (such as EOxCloudless and USGS aerial imagery), so you can pick by sharpness, age, cloud cover and licence. Imagery shows reefs and shallows that a chart may not, as a layer beneath or instead of the chart
|
|
106
|
+
- Added and kept offline the same way as the online charts, including **Offline area**
|
|
99
107
|
|
|
100
|
-
|
|
108
|
+
7. **NOAA Charts**:
|
|
101
109
|
- Build a named **chart set** of NOAA ENC coverage by clicking band-4 footprints on a map (Leaflet + OpenSeaMap)
|
|
102
110
|
- Each band-4 selection automatically pulls in the overlapping band-3 and band-5 ENCs
|
|
103
111
|
- Footprint data from NOAA's [official chart locator](https://www.charts.noaa.gov/InteractiveCatalog/data/enc.geojson)
|
|
@@ -111,6 +119,7 @@ The interface provides five tabs:
|
|
|
111
119
|
| Format | Source | Conversion | Output |
|
|
112
120
|
|--------|--------|-----------|--------|
|
|
113
121
|
| **MBTiles** | Direct download | None needed | Raster or vector tiles |
|
|
122
|
+
| **PMTiles** | Direct download, upload or the chart folder | None needed | Raster or vector tiles |
|
|
114
123
|
| **S-57 ENC** (.000) | IENC catalogs, custom upload | GDAL + tippecanoe (containerized) | Vector MBTiles with S-52 styling |
|
|
115
124
|
| **BSB Raster** (.kap) | RNC catalogs, custom upload | GDAL (containerized) | Raster MBTiles (PNG) |
|
|
116
125
|
| **Pilot Charts** (.kap in .tar.xz) | Pilot catalog | GDAL (containerized) | Raster MBTiles (PNG) |
|
|
@@ -189,7 +198,7 @@ Inspired by [Signal K Charts Plugin](https://github.com/SignalK/charts-plugin) b
|
|
|
189
198
|
|
|
190
199
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
191
200
|
|
|
192
|
-
**Online charts
|
|
201
|
+
**Online charts** are curated in this repository. To add or fix one, see
|
|
193
202
|
[Maintaining the catalog](docs/chart-catalog.md#maintaining-the-catalog). If you know a good
|
|
194
203
|
free service but don't want to write the entry yourself, open a
|
|
195
204
|
[Suggest an online chart](https://github.com/dirkwa/signalk-charts-provider-simple/issues/new?template=suggest-online-chart.yml)
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* in `publish-catalog-cli.ts`; everything here is deterministic so it can be
|
|
4
|
-
* unit-tested and so an unchanged input always yields the same content hash.
|
|
5
|
-
*/
|
|
6
|
-
import type { ParsedChartcatalogsXml } from './chartcatalogs-xml.js';
|
|
7
|
-
import { type ChartcatalogsIndex, type MergedCatalog, type MergedChartcatalogsCatalog, type MergedTileset, type OnlineChartsSourceFile, type TilesetFeed } from './merged-catalog-schema.js';
|
|
1
|
+
import { ParsedChartcatalogsXml } from './chartcatalogs-xml.js';
|
|
2
|
+
import { ChartcatalogsIndex, MergedCatalog, MergedChartcatalogsCatalog, OnlineChartsSourceFile } from './merged-catalog-schema.js';
|
|
8
3
|
export declare const CHARTCATALOGS_HOMEPAGE = "https://chartcatalogs.github.io/";
|
|
9
4
|
export declare const CHARTCATALOGS_ISSUES = "https://github.com/chartcatalogs/catalogs/issues";
|
|
10
5
|
export interface ChartcatalogsFile {
|
|
@@ -12,14 +7,6 @@ export interface ChartcatalogsFile {
|
|
|
12
7
|
/** `null` when the file exists upstream but could not be parsed. */
|
|
13
8
|
parsed: ParsedChartcatalogsXml | null;
|
|
14
9
|
}
|
|
15
|
-
/** A tileset feed as listed in the repo, with the document fetched for it. */
|
|
16
|
-
export interface TilesetFeedInput {
|
|
17
|
-
feed: TilesetFeed;
|
|
18
|
-
/** The parsed feed document, or `null` when it could not be fetched or parsed. */
|
|
19
|
-
document: unknown;
|
|
20
|
-
/** File sizes in bytes by URL, where the publisher's server reported them. */
|
|
21
|
-
sizes?: Map<string, number>;
|
|
22
|
-
}
|
|
23
10
|
export interface BuildInputs {
|
|
24
11
|
chartcatalogs: ChartcatalogsFile[];
|
|
25
12
|
chartcatalogsCommit?: string;
|
|
@@ -29,9 +16,6 @@ export interface BuildInputs {
|
|
|
29
16
|
repo: string;
|
|
30
17
|
/** chartcatalogs entries from the catalog currently published, by file. */
|
|
31
18
|
previous?: Map<string, MergedChartcatalogsCatalog>;
|
|
32
|
-
tilesetFeeds?: TilesetFeedInput[];
|
|
33
|
-
/** Tilesets in the catalog currently published, for carrying a failed feed forward. */
|
|
34
|
-
previousTilesets?: MergedTileset[];
|
|
35
19
|
now: Date;
|
|
36
20
|
}
|
|
37
21
|
export interface BuildResult {
|
|
@@ -52,10 +36,6 @@ export interface BuildResult {
|
|
|
52
36
|
* guard tolerates a few, so each one is reported.
|
|
53
37
|
*/
|
|
54
38
|
removedUpstream: string[];
|
|
55
|
-
/** Feeds that could not be read, whose published regions were kept. */
|
|
56
|
-
carriedForwardFeeds: string[];
|
|
57
|
-
/** Feed regions left out, each with the reason. */
|
|
58
|
-
skippedTilesets: string[];
|
|
59
39
|
}
|
|
60
40
|
/**
|
|
61
41
|
* Hash of what a user would actually see. chartcatalogs re-commits every
|
|
@@ -72,8 +52,6 @@ export interface PublishedState {
|
|
|
72
52
|
chartCount: number;
|
|
73
53
|
/** chartcatalogs entries that still validate, for carrying forward. */
|
|
74
54
|
chartcatalogs: Map<string, MergedChartcatalogsCatalog>;
|
|
75
|
-
/** Tilesets that still validate, for carrying a failed feed forward. */
|
|
76
|
-
tilesets: MergedTileset[];
|
|
77
55
|
/** The published `catalog.schema.json` text, or null if absent. */
|
|
78
56
|
schemaText: string | null;
|
|
79
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-merged-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/build-merged-catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"build-merged-catalog.d.ts","sourceRoot":"","sources":["../../src/catalog/build-merged-catalog.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAQL,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAElB,KAAK,0BAA0B,EAE/B,KAAK,sBAAsB,EAC5B,MAAM,4BAA4B,CAAC;AAEpC,eAAO,MAAM,sBAAsB,qCAAqC,CAAC;AACzE,eAAO,MAAM,oBAAoB,qDAAqD,CAAC;AAEvF,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,sBAAsB,CAAC;IAC/B,+EAA+E;IAC/E,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACnD,GAAG,EAAE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,0DAA0D;IAC1D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4DAA4D;IAC5D,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,sFAAsF;IACtF,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,4EAA4E;IAC5E,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB;;;;OAIG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAkED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,GAAG,MAAM,CAYtF;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAoEnE;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,0BAA0B,CAAC,CAAC;IACvD,mEAAmE;IACnE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,cAAc,CAmB1F;AAMD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,cAAc,GAAG,IAAI,GAAG,MAAM,EAAE,CAuB/F;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,aAAa,EACnB,SAAS,EAAE,cAAc,GAAG,IAAI,EAChC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,OAAO,GACb,eAAe,CAKjB"}
|