@igo2/integration 1.15.3 → 1.15.5
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/esm2020/igo2-integration.mjs +4 -4
- package/esm2020/lib/about/about-tool/about-tool.component.mjs +185 -185
- package/esm2020/lib/about/about-tool/index.mjs +2 -2
- package/esm2020/lib/about/about.module.mjs +55 -55
- package/esm2020/lib/about/index.mjs +2 -2
- package/esm2020/lib/analytics/analytics-listener.service.mjs +127 -127
- package/esm2020/lib/analytics/analytics.module.mjs +16 -16
- package/esm2020/lib/analytics/index.mjs +2 -2
- package/esm2020/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.mjs +113 -113
- package/esm2020/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.mjs +29 -29
- package/esm2020/lib/catalog/catalog-library-tool/catalog-library-tool.component.mjs +89 -89
- package/esm2020/lib/catalog/catalog-library-tool/catalog-library-tool.module.mjs +29 -29
- package/esm2020/lib/catalog/catalog.module.mjs +24 -24
- package/esm2020/lib/catalog/catalog.state.mjs +54 -54
- package/esm2020/lib/catalog/index.mjs +6 -6
- package/esm2020/lib/context/context-editor-tool/context-editor-tool.component.mjs +34 -34
- package/esm2020/lib/context/context-manager-tool/context-manager-tool.component.mjs +44 -44
- package/esm2020/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.mjs +25 -25
- package/esm2020/lib/context/context-share-tool/context-share-tool.component.mjs +34 -34
- package/esm2020/lib/context/context.module.mjs +39 -39
- package/esm2020/lib/context/context.state.mjs +88 -88
- package/esm2020/lib/context/index.mjs +6 -6
- package/esm2020/lib/directions/directions-tool/directions-tool.component.mjs +84 -84
- package/esm2020/lib/directions/directions-tool/index.mjs +2 -2
- package/esm2020/lib/directions/directions.module.mjs +26 -26
- package/esm2020/lib/directions/directions.state.mjs +64 -64
- package/esm2020/lib/directions/index.mjs +3 -3
- package/esm2020/lib/draw/draw.module.mjs +21 -21
- package/esm2020/lib/draw/draw.state.mjs +39 -39
- package/esm2020/lib/draw/drawing-tool/drawing-tool.component.mjs +72 -72
- package/esm2020/lib/draw/index.mjs +3 -3
- package/esm2020/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.mjs +10 -10
- package/esm2020/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.mjs +44 -44
- package/esm2020/lib/filter/active-ogc-filter-tool/index.mjs +2 -2
- package/esm2020/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.mjs +10 -10
- package/esm2020/lib/filter/active-time-filter-tool/active-time-filter-tool.component.mjs +44 -44
- package/esm2020/lib/filter/active-time-filter-tool/index.mjs +2 -2
- package/esm2020/lib/filter/filter.module.mjs +51 -51
- package/esm2020/lib/filter/index.mjs +6 -6
- package/esm2020/lib/filter/ogc-filter-tool/index.mjs +2 -2
- package/esm2020/lib/filter/ogc-filter-tool/ogc-filter-tool.component.mjs +25 -25
- package/esm2020/lib/filter/spatial-filter-tool/index.mjs +2 -2
- package/esm2020/lib/filter/spatial-filter-tool/spatial-filter-tool.component.mjs +535 -535
- package/esm2020/lib/filter/time-filter-tool/index.mjs +2 -2
- package/esm2020/lib/filter/time-filter-tool/time-filter-tool.component.mjs +25 -25
- package/esm2020/lib/import-export/import-export-tool/import-export-tool.component.mjs +141 -141
- package/esm2020/lib/import-export/import-export-tool/index.mjs +2 -2
- package/esm2020/lib/import-export/import-export.module.mjs +51 -51
- package/esm2020/lib/import-export/import-export.state.mjs +41 -41
- package/esm2020/lib/import-export/index.mjs +3 -3
- package/esm2020/lib/integration.module.mjs +72 -72
- package/esm2020/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.mjs +472 -472
- package/esm2020/lib/map/advanced-map-tool/advanced-map-tool.component.mjs +89 -89
- package/esm2020/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.mjs +218 -218
- package/esm2020/lib/map/advanced-map-tool/index.mjs +2 -2
- package/esm2020/lib/map/index.mjs +9 -9
- package/esm2020/lib/map/layer-list-tool.state.mjs +42 -42
- package/esm2020/lib/map/map-details-tool/index.mjs +2 -2
- package/esm2020/lib/map/map-details-tool/map-details-tool.component.mjs +256 -256
- package/esm2020/lib/map/map-legend/index.mjs +2 -2
- package/esm2020/lib/map/map-legend/map-legend-tool.component.mjs +275 -275
- package/esm2020/lib/map/map-proximity-tool/index.mjs +2 -2
- package/esm2020/lib/map/map-proximity-tool/map-proximity-tool.component.mjs +203 -203
- package/esm2020/lib/map/map-proximity.state.mjs +167 -167
- package/esm2020/lib/map/map-tool/index.mjs +2 -2
- package/esm2020/lib/map/map-tool/map-tool.component.mjs +130 -130
- package/esm2020/lib/map/map-tools/index.mjs +2 -2
- package/esm2020/lib/map/map-tools/map-tools.component.mjs +495 -495
- package/esm2020/lib/map/map.module.mjs +144 -144
- package/esm2020/lib/map/map.state.mjs +47 -47
- package/esm2020/lib/measure/index.mjs +4 -4
- package/esm2020/lib/measure/measure.module.mjs +20 -20
- package/esm2020/lib/measure/measure.state.mjs +35 -35
- package/esm2020/lib/measure/measurer-tool/measurer-tool.component.mjs +45 -45
- package/esm2020/lib/measure/measurer-tool/measurer-tool.module.mjs +25 -25
- package/esm2020/lib/print/index.mjs +2 -2
- package/esm2020/lib/print/print-tool/index.mjs +2 -2
- package/esm2020/lib/print/print-tool/print-tool.component.mjs +33 -33
- package/esm2020/lib/print/print.module.mjs +26 -26
- package/esm2020/lib/search/index.mjs +7 -7
- package/esm2020/lib/search/query.state.mjs +42 -34
- package/esm2020/lib/search/search-bar/search-bar-binding.directive.mjs +61 -61
- package/esm2020/lib/search/search-bar/search-bar.module.mjs +22 -22
- package/esm2020/lib/search/search-results-tool/search-results-tool.component.mjs +593 -593
- package/esm2020/lib/search/search-results-tool/search-results-tool.module.mjs +65 -65
- package/esm2020/lib/search/search.module.mjs +24 -24
- package/esm2020/lib/search/search.state.mjs +132 -132
- package/esm2020/lib/storage/index.mjs +2 -2
- package/esm2020/lib/storage/storage.module.mjs +16 -16
- package/esm2020/lib/storage/storage.state.mjs +23 -23
- package/esm2020/lib/tool/index.mjs +2 -2
- package/esm2020/lib/tool/tool.module.mjs +16 -16
- package/esm2020/lib/tool/tool.state.mjs +52 -52
- package/esm2020/lib/workspace/index.mjs +4 -4
- package/esm2020/lib/workspace/shared/edition-actions.service.mjs +156 -156
- package/esm2020/lib/workspace/shared/feature-actions.service.mjs +144 -144
- package/esm2020/lib/workspace/shared/index.mjs +3 -3
- package/esm2020/lib/workspace/shared/wfs-actions.service.mjs +158 -158
- package/esm2020/lib/workspace/shared/workspace.utils.mjs +7 -7
- package/esm2020/lib/workspace/workspace-button/index.mjs +2 -2
- package/esm2020/lib/workspace/workspace-button/workspace-button.component.mjs +69 -69
- package/esm2020/lib/workspace/workspace.module.mjs +37 -37
- package/esm2020/lib/workspace/workspace.state.mjs +188 -188
- package/esm2020/public_api.mjs +35 -35
- package/fesm2015/igo2-integration.mjs +6558 -6553
- package/fesm2015/igo2-integration.mjs.map +1 -1
- package/fesm2020/igo2-integration.mjs +6114 -6109
- package/fesm2020/igo2-integration.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/about/about-tool/about-tool.component.d.ts +34 -34
- package/lib/about/about-tool/index.d.ts +1 -1
- package/lib/about/about.module.d.ts +16 -16
- package/lib/about/index.d.ts +1 -1
- package/lib/analytics/analytics-listener.service.d.ts +33 -33
- package/lib/analytics/analytics.module.d.ts +6 -6
- package/lib/analytics/index.d.ts +1 -1
- package/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.d.ts +57 -57
- package/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.d.ts +12 -12
- package/lib/catalog/catalog-library-tool/catalog-library-tool.component.d.ts +50 -50
- package/lib/catalog/catalog-library-tool/catalog-library-tool.module.d.ts +12 -12
- package/lib/catalog/catalog.module.d.ts +8 -8
- package/lib/catalog/catalog.state.d.ts +37 -37
- package/lib/catalog/index.d.ts +5 -5
- package/lib/context/context-editor-tool/context-editor-tool.component.d.ts +9 -9
- package/lib/context/context-manager-tool/context-manager-tool.component.d.ts +15 -15
- package/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.d.ts +5 -5
- package/lib/context/context-share-tool/context-share-tool.component.d.ts +13 -13
- package/lib/context/context.module.d.ts +11 -11
- package/lib/context/context.state.d.ts +37 -37
- package/lib/context/index.d.ts +5 -5
- package/lib/directions/directions-tool/directions-tool.component.d.ts +54 -54
- package/lib/directions/directions-tool/index.d.ts +1 -1
- package/lib/directions/directions.module.d.ts +10 -10
- package/lib/directions/directions.state.d.ts +28 -28
- package/lib/directions/index.d.ts +2 -2
- package/lib/draw/draw.module.d.ts +8 -8
- package/lib/draw/draw.state.d.ts +16 -16
- package/lib/draw/drawing-tool/drawing-tool.component.d.ts +31 -31
- package/lib/draw/index.d.ts +2 -2
- package/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.d.ts +2 -2
- package/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.d.ts +12 -12
- package/lib/filter/active-ogc-filter-tool/index.d.ts +1 -1
- package/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.d.ts +2 -2
- package/lib/filter/active-time-filter-tool/active-time-filter-tool.component.d.ts +12 -12
- package/lib/filter/active-time-filter-tool/index.d.ts +1 -1
- package/lib/filter/filter.module.d.ts +15 -15
- package/lib/filter/index.d.ts +5 -5
- package/lib/filter/ogc-filter-tool/index.d.ts +1 -1
- package/lib/filter/ogc-filter-tool/ogc-filter-tool.component.d.ts +6 -6
- package/lib/filter/spatial-filter-tool/index.d.ts +1 -1
- package/lib/filter/spatial-filter-tool/spatial-filter-tool.component.d.ts +82 -82
- package/lib/filter/time-filter-tool/index.d.ts +1 -1
- package/lib/filter/time-filter-tool/time-filter-tool.component.d.ts +6 -6
- package/lib/import-export/import-export-tool/import-export-tool.component.d.ts +33 -33
- package/lib/import-export/import-export-tool/index.d.ts +1 -1
- package/lib/import-export/import-export.module.d.ts +15 -15
- package/lib/import-export/import-export.state.d.ts +24 -24
- package/lib/import-export/index.d.ts +2 -2
- package/lib/integration.module.d.ts +20 -20
- package/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.d.ts +97 -97
- package/lib/map/advanced-map-tool/advanced-map-tool.component.d.ts +12 -12
- package/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.d.ts +65 -65
- package/lib/map/advanced-map-tool/index.d.ts +1 -1
- package/lib/map/index.d.ts +8 -8
- package/lib/map/layer-list-tool.state.d.ts +19 -19
- package/lib/map/map-details-tool/index.d.ts +1 -1
- package/lib/map/map-details-tool/map-details-tool.component.d.ts +38 -38
- package/lib/map/map-legend/index.d.ts +1 -1
- package/lib/map/map-legend/map-legend-tool.component.d.ts +40 -40
- package/lib/map/map-proximity-tool/index.d.ts +1 -1
- package/lib/map/map-proximity-tool/map-proximity-tool.component.d.ts +36 -36
- package/lib/map/map-proximity.state.d.ts +31 -31
- package/lib/map/map-tool/index.d.ts +1 -1
- package/lib/map/map-tool/map-tool.component.d.ts +27 -27
- package/lib/map/map-tools/index.d.ts +1 -1
- package/lib/map/map-tools/map-tools.component.d.ts +66 -66
- package/lib/map/map.module.d.ts +38 -38
- package/lib/map/map.state.d.ts +24 -24
- package/lib/measure/index.d.ts +3 -3
- package/lib/measure/measure.module.d.ts +7 -7
- package/lib/measure/measure.state.d.ts +16 -16
- package/lib/measure/measurer-tool/measurer-tool.component.d.ts +24 -24
- package/lib/measure/measurer-tool/measurer-tool.module.d.ts +11 -11
- package/lib/print/index.d.ts +1 -1
- package/lib/print/print-tool/index.d.ts +1 -1
- package/lib/print/print-tool/print-tool.component.d.ts +10 -10
- package/lib/print/print.module.d.ts +10 -10
- package/lib/search/index.d.ts +6 -6
- package/lib/search/query.state.d.ts +24 -20
- package/lib/search/search-bar/search-bar-binding.directive.d.ts +20 -20
- package/lib/search/search-bar/search-bar.module.d.ts +11 -11
- package/lib/search/search-results-tool/search-results-tool.component.d.ts +100 -100
- package/lib/search/search-results-tool/search-results-tool.module.d.ts +18 -18
- package/lib/search/search.module.d.ts +8 -8
- package/lib/search/search.state.d.ts +60 -60
- package/lib/storage/index.d.ts +1 -1
- package/lib/storage/storage.module.d.ts +6 -6
- package/lib/storage/storage.state.d.ts +12 -12
- package/lib/tool/index.d.ts +1 -1
- package/lib/tool/tool.module.d.ts +6 -6
- package/lib/tool/tool.state.d.ts +22 -22
- package/lib/workspace/index.d.ts +3 -3
- package/lib/workspace/shared/edition-actions.service.d.ts +26 -26
- package/lib/workspace/shared/feature-actions.service.d.ts +25 -25
- package/lib/workspace/shared/index.d.ts +2 -2
- package/lib/workspace/shared/wfs-actions.service.d.ts +27 -27
- package/lib/workspace/shared/workspace.utils.d.ts +2 -2
- package/lib/workspace/workspace-button/index.d.ts +1 -1
- package/lib/workspace/workspace-button/workspace-button.component.d.ts +21 -21
- package/lib/workspace/workspace.module.d.ts +12 -12
- package/lib/workspace/workspace.state.d.ts +63 -63
- package/ngcc.config.js +3 -3
- package/package.json +3 -3
- package/public_api.d.ts +31 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igo2-integration.mjs","sources":["../../../packages/integration/src/lib/analytics/analytics.module.ts","../../../packages/integration/src/lib/import-export/import-export.state.ts","../../../packages/integration/src/lib/tool/tool.state.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html","../../../packages/integration/src/lib/map/map.state.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.html","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.html","../../../packages/integration/src/lib/map/layer-list-tool.state.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.html","../../../packages/integration/src/lib/context/context.module.ts","../../../packages/integration/src/lib/catalog/catalog.state.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog.module.ts","../../../packages/integration/src/lib/directions/directions.state.ts","../../../packages/integration/src/lib/context/context.state.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.html","../../../packages/integration/src/lib/directions/directions.module.ts","../../../packages/integration/src/lib/draw/draw.state.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.html","../../../packages/integration/src/lib/draw/draw.module.ts","../../../packages/integration/src/lib/workspace/shared/workspace.utils.ts","../../../packages/integration/src/lib/storage/storage.state.ts","../../../packages/integration/src/lib/workspace/shared/feature-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/wfs-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/edition-actions.service.ts","../../../packages/integration/src/lib/workspace/workspace.state.ts","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.html","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts","../../../packages/integration/src/lib/workspace/workspace.module.ts","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.ts","../../../packages/integration/src/lib/import-export/import-export.module.ts","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts","../../../packages/integration/src/lib/map/map-tool/map-tool.component.html","../../../packages/integration/src/lib/map/map-tool/map-tool.component.ts","../../../packages/integration/src/lib/map/map-tools/map-tools.component.html","../../../packages/integration/src/lib/map/map-tools/map-tools.component.ts","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.html","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.html","../../../packages/integration/src/lib/map/map-proximity.state.ts","../../../packages/integration/src/lib/map/map-proximity-tool/map-proximity-tool.component.html","../../../packages/integration/src/lib/map/map-proximity-tool/map-proximity-tool.component.ts","../../../packages/integration/src/lib/map/map.module.ts","../../../packages/integration/src/lib/measure/measure.state.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.html","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.module.ts","../../../packages/integration/src/lib/measure/measure.module.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.html","../../../packages/integration/src/lib/print/print.module.ts","../../../packages/integration/src/lib/search/search.state.ts","../../../packages/integration/src/lib/search/search-bar/search-bar-binding.directive.ts","../../../packages/integration/src/lib/search/search-bar/search-bar.module.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.html","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.module.ts","../../../packages/integration/src/lib/search/search.module.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.html","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/filter.module.ts","../../../packages/integration/src/lib/about/about-tool/about-tool.component.html","../../../packages/integration/src/lib/about/about-tool/about-tool.component.ts","../../../packages/integration/src/lib/about/about.module.ts","../../../packages/integration/src/lib/storage/storage.module.ts","../../../packages/integration/src/lib/integration.module.ts","../../../packages/integration/src/lib/tool/tool.module.ts","../../../packages/integration/src/lib/analytics/analytics-listener.service.ts","../../../packages/integration/src/lib/search/query.state.ts","../../../packages/integration/src/public_api.ts","../../../packages/integration/src/igo2-integration.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppAnalyticsModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExportOptions } from '@igo2/geo';\r\n\r\nexport enum ImportExportType {\r\n layer = 'layer',\r\n context = 'context'\r\n}\r\n\r\nexport enum ImportExportMode {\r\n import = 'import',\r\n export = 'export'\r\n}\r\n\r\n/**\r\n * Service that holds the state of the importExport module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ImportExportState {\r\n\r\n readonly importExportType$: BehaviorSubject<ImportExportType> = new BehaviorSubject(ImportExportType.layer);\r\n readonly selectedMode$: BehaviorSubject<ImportExportMode> = new BehaviorSubject(ImportExportMode.import);\r\n readonly exportOptions$: BehaviorSubject<ExportOptions> = new BehaviorSubject(undefined);\r\n\r\n setImportExportType(type: ImportExportType) {\r\n this.importExportType$.next(type);\r\n }\r\n\r\n setMode(mode: ImportExportMode) {\r\n this.selectedMode$.next(mode);\r\n }\r\n\r\n setsExportOptions(exportOptions: ExportOptions) {\r\n this.exportOptions$.next(exportOptions);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { Toolbox, ToolService } from '@igo2/common';\r\n\r\nimport { ExportOptions } from '@igo2/geo';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ImportExportMode, ImportExportState } from '../import-export/import-export.state';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToolState {\r\n get toolbox(): Toolbox {\r\n return this.toolService.toolbox;\r\n }\r\n\r\n public openSidenav$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private toolService: ToolService,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n toolToActivateFromOptions(toolToActivate: { tool: string; options: {[key: string]: any} }) {\r\n if (!toolToActivate) { return; }\r\n if (toolToActivate.tool === 'importExport') {\r\n let exportOptions: ExportOptions = this.importExportState.exportOptions$.value;\r\n if (!exportOptions) {\r\n exportOptions = {\r\n layers: toolToActivate.options.layers,\r\n featureInMapExtent: toolToActivate.options.featureInMapExtent\r\n };\r\n } else {\r\n exportOptions.layers = toolToActivate.options.layers;\r\n exportOptions.featureInMapExtent = toolToActivate.options.featureInMapExtent;\r\n }\r\n this.importExportState.setsExportOptions(exportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n }\r\n\r\n if (this.toolbox.getTool(toolToActivate.tool)) {\r\n this.toolbox.activateTool(toolToActivate.tool);\r\n this.openSidenav$.next(true);\r\n }\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { ToolState } from '../../tool/tool.state';\r\n\r\n@ToolComponent({\r\n name: 'contextEditor',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star',\r\n parent: 'contextManager'\r\n})\r\n@Component({\r\n selector: 'igo-context-editor-tool',\r\n templateUrl: './context-editor-tool.component.html'\r\n})\r\nexport class ContextEditorToolComponent {\r\n\r\n constructor(private toolState: ToolState) {}\r\n\r\n submitSuccessed() {\r\n this.toolState.toolbox.activatePreviousTool();\r\n }\r\n}\r\n","<igo-context-edit\r\n igoContextEditBinding\r\n (submitSuccessed)=\"submitSuccessed()\"\r\n></igo-context-edit>\r\n","import { Injectable } from '@angular/core';\r\nimport { StorageService, ConfigService } from '@igo2/core';\r\n\r\nimport { IgoMap, MapService, ProjectionService } from '@igo2/geo';\r\n// import { BehaviorSubject } from 'rxjs';\r\n\r\n/**\r\n * Service that holds the state of the map module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapState {\r\n\r\n // public mapCenter$ = new BehaviorSubject<boolean>(false);\r\n get showAllLegendsValue(): boolean {\r\n return this._legendToolShowAll;\r\n }\r\n\r\n set showAllLegendsValue(value) {\r\n this._legendToolShowAll = value;\r\n }\r\n private _legendToolShowAll: boolean;\r\n\r\n /**\r\n * Active map\r\n */\r\n get map(): IgoMap { return this._map; }\r\n private _map: IgoMap;\r\n\r\n constructor(\r\n private mapService: MapService,\r\n private projectionService: ProjectionService, // Don't remove this or it'll never be injected,\r\n private storageService: StorageService,\r\n private configService: ConfigService\r\n ) {\r\n this._map = new IgoMap({\r\n controls: {\r\n scaleLine: true,\r\n attribution: {\r\n collapsed: true\r\n }\r\n }\r\n },\r\n this.storageService,\r\n this.configService);\r\n\r\n this.mapService.setMap(this.map);\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { MapState } from '../../map/map.state';\r\nimport { IgoMap } from '@igo2/geo';\r\n\r\n@ToolComponent({\r\n name: 'contextManager',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star'\r\n})\r\n@Component({\r\n selector: 'igo-context-manager-tool',\r\n templateUrl: './context-manager-tool.component.html'\r\n})\r\nexport class ContextManagerToolComponent {\r\n\r\n @Input() toolToOpenOnContextChange: string = 'mapTools';\r\n\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(private toolState: ToolState, private mapState: MapState) {}\r\n\r\n editContext() {\r\n this.toolState.toolbox.activateTool('contextEditor');\r\n }\r\n\r\n managePermissions() {\r\n this.toolState.toolbox.activateTool('contextPermissionManager');\r\n }\r\n}\r\n","<igo-context-list\r\n igoContextListBinding\r\n [map]=\"map\"\r\n (edit)=\"editContext()\"\r\n (managePermissions)=\"managePermissions()\">\r\n</igo-context-list>\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'contextPermissionManager',\r\n title: 'igo.integration.tools.contexts',\r\n icon: 'star',\r\n parent: 'contextManager'\r\n})\r\n@Component({\r\n selector: 'igo-context-permission-manager-tool',\r\n templateUrl: './context-permission-manager-tool.component.html'\r\n})\r\nexport class ContextPermissionManagerToolComponent {}\r\n","<igo-context-permissions igoContextPermissionsBinding></igo-context-permissions>\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { LayerListControlsOptions } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of layer list tool values\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LayerListToolState {\r\n\r\n readonly keyword$: BehaviorSubject<string> = new BehaviorSubject('');\r\n readonly sortAlpha$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n readonly onlyVisible$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n readonly selectedTab$: BehaviorSubject<number> = new BehaviorSubject(undefined);\r\n\r\n setKeyword(keyword: string) {\r\n this.keyword$.next(keyword);\r\n }\r\n\r\n setSortAlpha(sort: boolean) {\r\n this.sortAlpha$.next(sort);\r\n }\r\n\r\n setOnlyVisible(onlyVisible: boolean) {\r\n this.onlyVisible$.next(onlyVisible);\r\n }\r\n\r\n setSelectedTab(tab: number) {\r\n this.selectedTab$.next(tab);\r\n }\r\n\r\n getLayerListControls(): LayerListControlsOptions {\r\n return {\r\n keyword: this.keyword$.value,\r\n onlyVisible: this.onlyVisible$.value,\r\n sortAlpha: this.sortAlpha$.value\r\n };\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { IgoMap, LayerListControlsOptions } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { LayerListToolState } from '../../map/layer-list-tool.state';\r\n\r\n@ToolComponent({\r\n name: 'shareMap',\r\n title: 'igo.integration.tools.shareMap',\r\n icon: 'share-variant'\r\n})\r\n@Component({\r\n selector: 'igo-context-share-tool',\r\n templateUrl: './context-share-tool.component.html'\r\n})\r\nexport class ContextShareToolComponent {\r\n\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n get layerListControls(): LayerListControlsOptions { return this.layerListToolState.getLayerListControls(); }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private layerListToolState: LayerListToolState\r\n ) {}\r\n}\r\n","<igo-share-map\r\n [map]=\"map\"></igo-share-map>\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoContextModule } from '@igo2/context';\r\n\r\nimport { ContextEditorToolComponent } from './context-editor-tool/context-editor-tool.component';\r\nimport { ContextManagerToolComponent } from './context-manager-tool/context-manager-tool.component';\r\nimport { ContextPermissionManagerToolComponent } from './context-permission-manager-tool/context-permission-manager-tool.component';\r\nimport { ContextShareToolComponent } from './context-share-tool/context-share-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoContextModule],\r\n declarations: [\r\n ContextEditorToolComponent,\r\n ContextManagerToolComponent,\r\n ContextPermissionManagerToolComponent,\r\n ContextShareToolComponent\r\n ],\r\n exports: [\r\n ContextEditorToolComponent,\r\n ContextManagerToolComponent,\r\n ContextPermissionManagerToolComponent,\r\n ContextShareToolComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppContextModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AuthService } from '@igo2/auth';\r\nimport { EntityStore } from '@igo2/common';\r\nimport { Catalog, CatalogItem } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of the catalog module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CatalogState {\r\n\r\n /**\r\n * Store that contains all the catalogs\r\n */\r\n get catalogStore(): EntityStore<Catalog> { return this._catalogStore; }\r\n private _catalogStore: EntityStore<Catalog>;\r\n\r\n /**\r\n * Catalog -> Catalog items store mapping\r\n */\r\n private catalogItemsStores = new Map<string, EntityStore<CatalogItem>>();\r\n\r\n constructor(authService: AuthService) {\r\n this._catalogStore = new EntityStore([]);\r\n\r\n authService.authenticate$.subscribe(() => {\r\n this.clearCatalogItemsStores();\r\n });\r\n }\r\n\r\n /**\r\n * Get a catalog's items store\r\n * @param catalog Catalog\r\n * @returns Store that contains the catalog items\r\n */\r\n getCatalogItemsStore(catalog: Catalog): EntityStore<CatalogItem> {\r\n return this.catalogItemsStores.get(catalog.id as string);\r\n }\r\n\r\n /**\r\n * Bind a catalog items store to a catalog\r\n * @param catalog Catalog\r\n * @param store Catalog items store\r\n */\r\n setCatalogItemsStore(catalog: Catalog, store: EntityStore<CatalogItem>) {\r\n this.catalogItemsStores.set(catalog.id as string, store);\r\n }\r\n\r\n /**\r\n * Clear all catalog items stores\r\n */\r\n clearCatalogItemsStores() {\r\n this.catalogItemsStores.clear();\r\n }\r\n}\r\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\nimport { EntityStore } from '@igo2/common';\r\nimport { Catalog, CatalogService } from '@igo2/geo';\r\nimport { StorageService } from '@igo2/core';\r\n\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { CatalogState } from '../catalog.state';\r\n\r\n/**\r\n * Tool to browse the list of available catalogs.\r\n */\r\n@ToolComponent({\r\n name: 'catalog',\r\n title: 'igo.integration.tools.catalog',\r\n icon: 'layers-plus'\r\n})\r\n@Component({\r\n selector: 'igo-catalog-library-tool',\r\n templateUrl: './catalog-library-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CatalogLibraryToolComponent implements OnInit {\r\n /**\r\n * Store that contains the catalogs\r\n * @internal\r\n */\r\n get store(): EntityStore<Catalog> {\r\n return this.catalogState.catalogStore;\r\n }\r\n\r\n /**\r\n * Determine if the form to add a catalog is allowed\r\n */\r\n @Input() addCatalogAllowed: boolean = false;\r\n\r\n /**\r\n * List of predefined catalogs\r\n */\r\n @Input() predefinedCatalogs: Catalog[] = [];\r\n\r\n constructor(\r\n private catalogService: CatalogService,\r\n private catalogState: CatalogState,\r\n private toolState: ToolState,\r\n private storageService: StorageService\r\n ) {}\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnInit() {\r\n if (this.store.count === 0) {\r\n this.loadCatalogs();\r\n }\r\n }\r\n\r\n /**\r\n * When the selected catalog changes, toggle the the CatalogBrowser tool.\r\n * @internal\r\n * @param event Select event\r\n */\r\n onCatalogSelectChange(event: { selected: boolean; catalog: Catalog }) {\r\n if (event.selected === false) {\r\n return;\r\n }\r\n this.toolState.toolbox.activateTool('catalogBrowser');\r\n }\r\n\r\n /**\r\n * Get all the available catalogs from the CatalogService and\r\n * load them into the store.\r\n */\r\n private loadCatalogs() {\r\n this.catalogService.loadCatalogs().pipe(take(1)).subscribe((catalogs: Catalog[]) => {\r\n this.store.clear();\r\n this.store.load(catalogs.concat((this.storageService.get('addedCatalogs') || []) as Catalog[]));\r\n });\r\n }\r\n}\r\n","<igo-catalog-library\r\n [predefinedCatalogs]=\"predefinedCatalogs\"\r\n [addCatalogAllowed]=\"addCatalogAllowed\"\r\n [store]=\"store\"\r\n (catalogSelectChange)=\"onCatalogSelectChange($event)\">\r\n</igo-catalog-library>\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoCatalogLibraryModule } from '@igo2/geo';\r\nimport { CatalogLibraryToolComponent } from './catalog-library-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoCatalogLibraryModule\r\n ],\r\n declarations: [CatalogLibraryToolComponent],\r\n exports: [CatalogLibraryToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppCatalogLibraryToolModule {}\r\n","<igo-catalog-browser\r\n *ngIf=\"store$ | async as store\"\r\n [catalog]=\"catalog\"\r\n [store]=\"store\"\r\n [map]=\"map\"\r\n [toggleCollapsedGroup]=\"toggleCollapsedGroup\">\r\n</igo-catalog-browser>\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { take } from 'rxjs/operators';\r\n\r\nimport { EntityRecord, EntityStore, ToolComponent } from '@igo2/common';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport {\r\n IgoMap,\r\n Catalog,\r\n CatalogItem,\r\n CatalogItemState,\r\n CatalogService\r\n} from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { CatalogState } from '../catalog.state';\r\n\r\n/**\r\n * Tool to browse a catalog's groups and layers and display them to a map.\r\n */\r\n@ToolComponent({\r\n name: 'catalogBrowser',\r\n title: 'igo.integration.tools.catalog',\r\n icon: 'photo-browser',\r\n parent: 'catalog'\r\n})\r\n@Component({\r\n selector: 'igo-catalog-browser-tool',\r\n templateUrl: './catalog-browser-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CatalogBrowserToolComponent implements OnInit, OnDestroy {\r\n catalog: Catalog;\r\n\r\n /**\r\n * Store that contains the catalog items\r\n * @internal\r\n */\r\n store$ = new BehaviorSubject<EntityStore<CatalogItem, CatalogItemState>>(\r\n undefined\r\n );\r\n\r\n /**\r\n * Subscription to the selected catalog\r\n */\r\n private catalog$$: Subscription;\r\n\r\n /**\r\n * Subscription for authentication\r\n */\r\n private authenticate$$: Subscription;\r\n\r\n /**\r\n * Whether a group can be toggled when it's collapsed\r\n */\r\n @Input() toggleCollapsedGroup: boolean = true;\r\n\r\n /**\r\n * Map to add layers to\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n private catalogService: CatalogService,\r\n private catalogState: CatalogState,\r\n private mapState: MapState,\r\n private authService: AuthService\r\n ) {}\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnInit() {\r\n const catalogStore = this.catalogState.catalogStore;\r\n this.catalog$$ = catalogStore.stateView\r\n .firstBy$(\r\n (record: EntityRecord<Catalog>) => record.state.selected === true\r\n )\r\n .subscribe((record: EntityRecord<Catalog>) => {\r\n if (record && record.entity) {\r\n const catalog = record.entity;\r\n this.catalog = catalog;\r\n }\r\n });\r\n\r\n this.authenticate$$ = this.authService.authenticate$.subscribe(() => {\r\n this.loadCatalogItems(this.catalog);\r\n });\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n ngOnDestroy() {\r\n this.catalog$$.unsubscribe();\r\n this.authenticate$$.unsubscribe();\r\n }\r\n\r\n /**\r\n * Get the selected catalog's items from the CatalogService and\r\n * load them into the store.\r\n * @param catalog Selected catalog\r\n */\r\n private loadCatalogItems(catalog: Catalog) {\r\n let store = this.catalogState.getCatalogItemsStore(catalog);\r\n if (store !== undefined) {\r\n this.store$.next(store);\r\n return;\r\n }\r\n\r\n store = new EntityStore<CatalogItem>([]);\r\n this.catalogState.setCatalogItemsStore(catalog, store);\r\n this.catalogService\r\n .loadCatalogItems(catalog)\r\n .pipe(take(1))\r\n .subscribe((items: CatalogItem[]) => {\r\n store.load(items);\r\n this.store$.next(store);\r\n });\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoCatalogBrowserModule } from '@igo2/geo';\r\nimport { CatalogBrowserToolComponent } from './catalog-browser-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n IgoCatalogBrowserModule\r\n ],\r\n declarations: [CatalogBrowserToolComponent],\r\n exports: [CatalogBrowserToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppCatalogBrowserToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppCatalogLibraryToolModule } from './catalog-library-tool/catalog-library-tool.module';\r\nimport { IgoAppCatalogBrowserToolModule } from './catalog-browser-tool/catalog-browser-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n exports: [\r\n IgoAppCatalogLibraryToolModule,\r\n IgoAppCatalogBrowserToolModule\r\n ],\r\n declarations: []\r\n})\r\nexport class IgoAppCatalogModule {}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { AnyLayerOptions, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepFeatureStore } from '@igo2/geo';\r\nimport { Subject } from 'rxjs';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the direction module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DirectionState {\r\n\r\n public zoomToActiveRoute$: Subject<void> = new Subject();\r\n\r\n /**\r\n * Store that holds the stop\r\n */\r\n public stopsStore: StopsStore = new StopsStore([]);\r\n\r\n /**\r\n * Store that holds the driving stops as feature\r\n */\r\n public stopsFeatureStore: StopsFeatureStore = new StopsFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n /**\r\n * Store that holds the driving route as feature\r\n */\r\n public routesFeatureStore: RoutesFeatureStore = new RoutesFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n public stepFeatureStore: StepFeatureStore = new StepFeatureStore([], {\r\n map: this.mapState.map\r\n });\r\n\r\n public debounceTime: number = 200;\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.ol.once('rendercomplete', () => {\r\n this.stopsFeatureStore.empty$.subscribe((empty) => {\r\n if (this.stopsFeatureStore.layer?.options) {\r\n (this.stopsFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\r\n }\r\n });\r\n this.routesFeatureStore.empty$.subscribe((empty) => {\r\n if (this.routesFeatureStore.layer?.options) {\r\n (this.routesFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\r\n }\r\n });\r\n });\r\n\r\n this.mapState.map.layers$.subscribe(() => {\r\n if (!this.mapState.map.getLayerById('igo-direction-stops-layer')) {\r\n this.stopsStore.deleteMany(this.stopsStore.all());\r\n this.stopsFeatureStore.deleteMany(this.stopsFeatureStore.all()); // not necessary\r\n }\r\n if (!this.mapState.map.getLayerById('igo-direction-route-layer')) {\r\n this.routesFeatureStore.deleteMany(this.routesFeatureStore.all());\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { LanguageService } from '@igo2/core';\r\nimport { Tool, ToolService } from '@igo2/common';\r\nimport { ContextService, DetailedContext } from '@igo2/context';\r\n\r\nimport { ToolState } from '../tool/tool.state';\r\n\r\n/**\r\n * Service that holds the state of the context module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ContextState {\r\n /**\r\n * Observable of the active context\r\n */\r\n context$: BehaviorSubject<DetailedContext> = new BehaviorSubject(undefined);\r\n\r\n constructor(\r\n private contextService: ContextService,\r\n private toolService: ToolService,\r\n private toolState: ToolState,\r\n private languageService: LanguageService\r\n ) {\r\n this.contextService.context$.subscribe((context: DetailedContext) => {\r\n this.onContextChange(context);\r\n });\r\n this.contextService.toolsChanged$.subscribe((context: DetailedContext) => {\r\n this.updateTools(context);\r\n });\r\n }\r\n\r\n /**\r\n * Set the active context\r\n * @param context Detailed context\r\n */\r\n private setContext(context: DetailedContext) {\r\n this.updateTools(context);\r\n this.context$.next(context);\r\n }\r\n\r\n /**\r\n * Update the tool state with the context's tools\r\n * @param context Detailed context\r\n */\r\n private updateTools(context: DetailedContext) {\r\n const toolbox = this.toolState.toolbox;\r\n\r\n const tools = [];\r\n const contextTools = context.tools || [];\r\n contextTools.forEach((contextTool: Tool) => {\r\n const baseTool = this.toolService.getTool(contextTool.name);\r\n if (baseTool === undefined) {\r\n return;\r\n }\r\n\r\n const options = Object.assign(\r\n {},\r\n baseTool.options || {},\r\n contextTool.options || {}\r\n );\r\n const tool = Object.assign({}, baseTool, contextTool, { options });\r\n tools.push(tool);\r\n });\r\n\r\n tools.forEach((tool) => {\r\n if (tool.parent) {\r\n const parentIndex = tools.findIndex((el) => el.name === tool.parent);\r\n if (parentIndex !== -1) {\r\n tools[parentIndex].children = [];\r\n tools[parentIndex].children.push(tool.name);\r\n }\r\n }\r\n });\r\n\r\n toolbox.setTools(tools);\r\n toolbox.setToolbar(context.toolbar || []);\r\n\r\n // TODO: This is a patch so the context service can work without\r\n // injecting the ToolState or without being completely refactored\r\n this.contextService.setTools([].concat(tools));\r\n this.contextService.setToolbar(context.toolbar || []);\r\n }\r\n\r\n /**\r\n * Set a new context and update the tool state\r\n * @param context Detailed context\r\n */\r\n private onContextChange(context: DetailedContext) {\r\n if (context === undefined) {\r\n return;\r\n }\r\n this.setContext(context);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { LanguageService, MessageService, StorageScope, StorageService } from '@igo2/core';\r\nimport { IgoMap, RoutesFeatureStore, StopsFeatureStore, StopsStore, StepFeatureStore } from '@igo2/geo';\r\nimport { Subject } from 'rxjs';\r\nimport { ContextState } from '../../context/context.state';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { DirectionState } from '../directions.state';\r\n\r\n@ToolComponent({\r\n name: 'directions',\r\n title: 'igo.integration.tools.directions',\r\n icon: 'directions'\r\n})\r\n@Component({\r\n selector: 'igo-directions-tool',\r\n templateUrl: './directions-tool.component.html'\r\n})\r\nexport class DirectionsToolComponent implements OnInit {\r\n\r\n public currentContextUri: string;\r\n /**\r\n * stops\r\n * @internal\r\n */\r\n get stopsStore(): StopsStore { return this.directionState.stopsStore; }\r\n\r\n get debounceTime(): number { return this.directionState.debounceTime; }\r\n\r\n /**\r\n * stops\r\n * @internal\r\n */\r\n get stopsFeatureStore(): StopsFeatureStore { return this.directionState.stopsFeatureStore; }\r\n\r\n /**\r\n * routes\r\n * @internal\r\n */\r\n get routesFeatureStore(): RoutesFeatureStore { return this.directionState.routesFeatureStore; }\r\n\r\n /**\r\n * step store\r\n * @internal\r\n */\r\n get stepFeatureStore(): StepFeatureStore { return this.directionState.stepFeatureStore; }\r\n\r\n /**\r\n * step store\r\n * @internal\r\n */\r\n get zoomToActiveRoute$(): Subject<void> { return this.directionState.zoomToActiveRoute$; }\r\n\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(\r\n private directionState: DirectionState,\r\n private mapState: MapState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private storageService: StorageService,\r\n public contextState: ContextState,\r\n private authService: AuthService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const warningShown = this.storageService.get('direction.warning.shown') as boolean;\r\n if (!warningShown) {\r\n this.messageService.info(\r\n 'igo.integration.directions.warning.message',\r\n 'igo.integration.directions.warning.title', { timeOut: 20000 });\r\n this.storageService.set('direction.warning.shown', true, StorageScope.SESSION);\r\n }\r\n this.contextState.context$.subscribe(c => {\r\n if (!this.authService.authenticated) {\r\n this.currentContextUri = c.uri;\r\n }\r\n });\r\n }\r\n\r\n}\r\n","<igo-directions\r\n [contextUri]=\"currentContextUri\"\r\n [debounceTime]=\"debounceTime\"\r\n [stopsStore]=\"stopsStore\"\r\n [stopsFeatureStore]=\"stopsFeatureStore\"\r\n [stepFeatureStore]=\"stepFeatureStore\"\r\n [routesFeatureStore]=\"routesFeatureStore\"\r\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"> \r\n</igo-directions>","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoDirectionsModule } from '@igo2/geo';\r\nimport { DirectionsToolComponent } from './directions-tool/directions-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoDirectionsModule],\r\n declarations: [DirectionsToolComponent],\r\n exports: [DirectionsToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppDirectionsModule {\r\n static forRoot(): ModuleWithProviders<IgoAppDirectionsModule> {\r\n return {\r\n ngModule: IgoAppDirectionsModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { DrawControl, FeatureStore, FeatureWithDraw, VectorLayer } from '@igo2/geo';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the measure module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DrawState {\r\n\r\n public stores: FeatureStore<FeatureWithDraw>[] = [];\r\n public layersID: string[] = [];\r\n public drawControls: [string, DrawControl][] = [];\r\n public activeDrawingLayer: VectorLayer;\r\n\r\n constructor(private mapState: MapState) {\r\n this.mapState.map.layers$.subscribe(() => {\r\n this.layersID.forEach(layerId => {\r\n if (!this.mapState.map.getLayerById(layerId)){\r\n let deletedStore = this.stores.find(store => store.layer.id === layerId);\r\n deletedStore.deleteMany(deletedStore.all());\r\n this.stores.splice(this.stores.indexOf(deletedStore,0), 1);\r\n this.layersID.splice(this.layersID.indexOf(layerId,0), 1);\r\n let drawControlIndex = this.drawControls.findIndex(dc => dc[0] === layerId);\r\n this.drawControls.splice(drawControlIndex, 1);\r\n }\r\n });\r\n });\r\n for (let store of this.stores){\r\n store = new FeatureStore<FeatureWithDraw>([], {map: this.mapState.map});\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy\r\n } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { FeatureStore, IgoMap, DrawControl, FeatureWithDraw, VectorLayer} from '@igo2/geo';\r\nimport { MapState } from '../../map/map.state';\r\nimport { DrawState } from '../draw.state';\r\n\r\n/**\r\n * Tool to measure lengths and areas\r\n */\r\n@ToolComponent({\r\n name: 'draw',\r\n title: 'igo.integration.tools.draw',\r\n icon: 'draw'\r\n})\r\n@Component({\r\n selector: 'igo-drawing-tool',\r\n templateUrl: './drawing-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DrawingToolComponent {\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get stores(): FeatureStore<FeatureWithDraw>[] {\r\n return this.drawState.stores;\r\n }\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layersID(): string[] {\r\n return this.drawState.layersID;\r\n }\r\n\r\n get drawControls(): [string, DrawControl][] {\r\n return this.drawState.drawControls;\r\n }\r\n set drawControls(dc:[string, DrawControl][]){\r\n this.drawState.drawControls = dc;\r\n }\r\n\r\n get activeDrawingLayer(): VectorLayer {\r\n return this.drawState.activeDrawingLayer;\r\n }\r\n set activeDrawingLayer(value: VectorLayer) {\r\n this.drawState.activeDrawingLayer = value;\r\n }\r\n\r\n public addLayersID(layerID:string){\r\n this.layersID.push(layerID);\r\n }\r\n\r\n public addDrawControls(dc:[string, DrawControl][]){\r\n this.drawControls = dc;\r\n }\r\n\r\n constructor(private drawState: DrawState, private mapState: MapState) {}\r\n}\r\n","<igo-draw\r\n [stores]=\"stores\"\r\n [map]=\"map\"\r\n (layersIDEvent)=\"addLayersID($event)\"\r\n [activeDrawingLayer]=\"activeDrawingLayer\"\r\n [drawControls]=\"drawControls\"\r\n (drawControlsEvent)=\"addDrawControls($event)\"\r\n (activeLayerChange)=\"activeDrawingLayer = $event\">\r\n</igo-draw>\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoDrawingToolModule } from '@igo2/geo';\r\nimport { DrawingToolComponent } from './drawing-tool/drawing-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoDrawingToolModule],\r\n declarations: [DrawingToolComponent],\r\n exports: [\r\n DrawingToolComponent\r\n ]\r\n})\r\nexport class IgoAppDrawModule {}\r\n","import {\r\n FeatureMotion,\r\n FeatureStoreSelectionStrategy,\r\n FeatureWorkspace,\r\n WfsWorkspace,\r\n EditionWorkspace\r\n} from '@igo2/geo';\r\n\r\n\r\nexport function handleZoomAuto(workspace: FeatureWorkspace | WfsWorkspace | EditionWorkspace, storageService) {\r\n const zoomStrategy = workspace.entityStore\r\n .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy;\r\n zoomStrategy.setMotion(storageService.get('zoomAuto') as boolean ? FeatureMotion.Default : FeatureMotion.None);\r\n}\r\n\r\n\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { StorageService } from '@igo2/core';\r\n\r\n/**\r\n * Service that holds the state of storage service\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageState {\r\n get storageService(): StorageService {\r\n return this.igoStorageService;\r\n }\r\n\r\n constructor(private igoStorageService: StorageService) {}\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n FeatureWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FeatureActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private toolState: ToolState,\r\n private mediaService: MediaService\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: FeatureWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: FeatureWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(\r\n skipWhile(\r\n (storageChange: StorageServiceEvent) =>\r\n storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED\r\n )\r\n )\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n return [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set(\r\n 'zoomAuto',\r\n !this.storageService.get('zoomAuto') as boolean\r\n );\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.tooltip',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: FeatureWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), {\r\n selected: false\r\n });\r\n },\r\n args: [workspace],\r\n availability: (ws: FeatureWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'featureDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: FeatureWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(\r\n EntityStoreFilterCustomFuncStrategy\r\n );\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(\r\n EntityStoreFilterSelectionStrategy\r\n );\r\n const layersWithSelection = filterSelectionStrategy.active\r\n ? [ws.layer.id]\r\n : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: {\r\n layers: [ws.layer.id],\r\n featureInMapExtent: filterStrategy.active,\r\n layersWithSelection\r\n } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n }\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n Widget\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n WfsWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions,\r\n OgcFilterWidget,\r\n OgcFilterableDataSource,\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WfsActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n // rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(true);\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private mediaService: MediaService,\r\n private toolState: ToolState) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: WfsWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: WfsWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\r\n storageChange?.key !== 'zoomAuto' || storageChange?.event === StorageServiceEventEnum.CLEARED))\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n const actions = [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.title',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: WfsWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\r\n },\r\n args: [workspace],\r\n availability: (ws: WfsWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'wfsDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: WfsWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'ogcFilter',\r\n icon: 'filter',\r\n title: 'igo.integration.workspace.ogcFilter.title',\r\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\r\n handler: (widget: Widget, ws: WfsWorkspace) => {\r\n ws.activateWidget(widget, {\r\n map: ws.map,\r\n layer: ws.layer\r\n });\r\n },\r\n args: [this.ogcFilterWidget, workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n return (workspace.layer.dataSource as OgcFilterableDataSource).options.ogcFilters?.enabled ?\r\n actions : actions.filter(action => action.id !== 'ogcFilter');\r\n }\r\n}\r\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport {\r\n Action,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n Widget\r\n} from '@igo2/common';\r\n\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport {\r\n EditionWorkspace,\r\n mapExtentStrategyActiveToolTip,\r\n noElementSelected,\r\n ExportOptions,\r\n OgcFilterWidget,\r\n OgcFilterableDataSource,\r\n} from '@igo2/geo';\r\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\r\nimport { StorageState } from '../../storage/storage.state';\r\nimport { map, skipWhile } from 'rxjs/operators';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { handleZoomAuto } from './workspace.utils';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EditionActionsService implements OnDestroy {\r\n\r\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n\r\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private storageChange$$: Subscription;\r\n\r\n get storageService(): StorageService {\r\n return this.storageState.storageService;\r\n }\r\n\r\n get zoomAuto(): boolean {\r\n return this.storageService.get('zoomAuto') as boolean;\r\n }\r\n\r\n constructor(\r\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\r\n private storageState: StorageState,\r\n public languageService: LanguageService,\r\n private mediaService: MediaService,\r\n private toolState: ToolState) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.storageChange$$) {\r\n this.storageChange$$.unsubscribe();\r\n }\r\n }\r\n\r\n loadActions(\r\n workspace: EditionWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ) {\r\n const actions = this.buildActions(\r\n workspace,\r\n rowsInMapExtentCheckCondition$,\r\n selectOnlyCheckCondition$\r\n );\r\n workspace.actionStore.load(actions);\r\n }\r\n\r\n buildActions(\r\n workspace: EditionWorkspace,\r\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\r\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\r\n ): Action[] {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n this.storageChange$$ = this.storageService.storageChange$\r\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\r\n storageChange?.key !== 'zoomAuto' || storageChange?.event === StorageServiceEventEnum.CLEARED))\r\n .subscribe(() => {\r\n this.zoomAuto$.next(this.zoomAuto);\r\n handleZoomAuto(workspace, this.storageService);\r\n });\r\n const actions = [\r\n {\r\n id: 'zoomAuto',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.zoomAuto.title',\r\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\r\n checkCondition: this.zoomAuto$,\r\n handler: () => {\r\n handleZoomAuto(workspace, this.storageService);\r\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\r\n }\r\n },\r\n {\r\n id: 'filterInMapExtent',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.inMapExtent.title',\r\n tooltip: mapExtentStrategyActiveToolTip(workspace),\r\n checkCondition: rowsInMapExtentCheckCondition$,\r\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\r\n },\r\n {\r\n id: 'selectedOnly',\r\n checkbox: true,\r\n title: 'igo.integration.workspace.selected.title',\r\n tooltip: 'igo.integration.workspace.selected.title',\r\n checkCondition: selectOnlyCheckCondition$,\r\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\r\n },\r\n {\r\n id: 'clearselection',\r\n icon: 'select-off',\r\n title: 'igo.integration.workspace.clearSelection.title',\r\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\r\n handler: (ws: EditionWorkspace) => {\r\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\r\n },\r\n args: [workspace],\r\n availability: (ws: EditionWorkspace) => noElementSelected(ws)\r\n },\r\n {\r\n id: 'wfsDownload',\r\n icon: 'file-export',\r\n title: 'igo.integration.workspace.download.title',\r\n tooltip: 'igo.integration.workspace.download.tooltip',\r\n handler: (ws: EditionWorkspace) => {\r\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\r\n this.toolState.toolToActivateFromOptions({\r\n tool: 'importExport',\r\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\r\n });\r\n },\r\n args: [workspace]\r\n },\r\n {\r\n id: 'ogcFilter',\r\n icon: 'filter',\r\n title: 'igo.integration.workspace.ogcFilter.title',\r\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\r\n handler: (widget: Widget, ws: EditionWorkspace) => {\r\n ws.activateWidget(widget, {\r\n map: ws.map,\r\n layer: ws.layer\r\n });\r\n },\r\n args: [this.ogcFilterWidget, workspace]\r\n },\r\n {\r\n id: 'maximize',\r\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.maximizeTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n if (!this.mediaService.isMobile()) {\r\n this.maximize$.next(true);\r\n }\r\n },\r\n },\r\n {\r\n id: 'standardExtent',\r\n title: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtent'\r\n ),\r\n tooltip: this.languageService.translate.instant(\r\n 'igo.integration.workspace.standardExtentTooltip'\r\n ),\r\n icon: 'resize',\r\n display: () => {\r\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\r\n },\r\n handler: () => {\r\n this.maximize$.next(false);\r\n }\r\n }\r\n ];\r\n return (workspace.layer.dataSource as OgcFilterableDataSource).options.ogcFilters?.enabled ?\r\n actions : actions.filter(action => action.id !== 'ogcFilter');\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from '@angular/core';\r\n\r\nimport { BehaviorSubject, Subscription, Observable, of } from 'rxjs';\r\n\r\nimport {\r\n EntityRecord,\r\n Workspace,\r\n WorkspaceStore,\r\n Widget,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreFilterSelectionStrategy,\r\n EntityState } from '@igo2/common';\r\nimport { WfsWorkspace, FeatureWorkspace, EditionWorkspace } from '@igo2/geo';\r\nimport { FeatureActionsService } from './shared/feature-actions.service';\r\nimport { WfsActionsService } from './shared/wfs-actions.service';\r\nimport { StorageService } from '@igo2/core';\r\nimport { EditionActionsService } from './shared/edition-actions.service';\r\n\r\n/**\r\n * Service that holds the state of the workspace module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkspaceState implements OnDestroy {\r\n\r\n public workspacePanelExpanded: boolean = false;\r\n\r\n readonly workspaceEnabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n readonly rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\r\n readonly selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n\r\n readonly workspaceMaximize$: BehaviorSubject<boolean> = new BehaviorSubject(\r\n this.storageService.get('workspaceMaximize') as boolean\r\n );\r\n private actionMaximize$$: Subscription[] = [];\r\n\r\n private rowsInMapExtentCheckCondition$$: Subscription;\r\n private selectOnlyCheckCondition$$: Subscription;\r\n\r\n /** Subscription to the active workspace */\r\n private activeWorkspace$$: Subscription;\r\n\r\n /** Subscription to the active workspace widget */\r\n private activeWorkspaceWidget$$: Subscription;\r\n\r\n /** Active widget observable. Only one may be active for all available workspaces */\r\n readonly activeWorkspaceWidget$: BehaviorSubject<Widget> = new BehaviorSubject<Widget>(undefined);\r\n\r\n /**\r\n * Observable of the active workspace\r\n */\r\n public workspace$ = new BehaviorSubject<Workspace>(undefined);\r\n\r\n /**\r\n * Store that holds all the available workspaces\r\n */\r\n get store(): WorkspaceStore { return this._store; }\r\n private _store: WorkspaceStore;\r\n\r\n get workspaceSelection() {\r\n if (this.workspace$.value) {\r\n return this.workspace$.value?.entityStore.stateView.manyBy((r) => r.state.selected === true);\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n get workspaceSelection$(): Observable<EntityRecord<object, EntityState>[]> {\r\n if (this.workspace$.value) {\r\n return this.workspace$.value?.entityStore?.stateView.manyBy$((r) => r.state.selected === true);\r\n } else {\r\n return of([]);\r\n }\r\n }\r\n\r\n constructor(\r\n private featureActionsService: FeatureActionsService,\r\n private wfsActionsService: WfsActionsService,\r\n private editionActionsService: EditionActionsService,\r\n private storageService: StorageService\r\n ) {\r\n this.initWorkspaces();\r\n }\r\n\r\n /**\r\n * Initialize the workspace store. Each time a workspace is activated,\r\n * subscribe to it's active widget. Tracking the active widget is useful\r\n * to make sure only one widget is active at a time.\r\n */\r\n private initWorkspaces() {\r\n this._store = new WorkspaceStore([]);\r\n this._store.stateView\r\n .firstBy$((record: EntityRecord<Workspace>) => record.state.active === true)\r\n .subscribe((record: EntityRecord<Workspace>) => {\r\n const workspace = record ? record.entity : undefined;\r\n this.workspace$.next(workspace);\r\n });\r\n\r\n this._store.stateView.all$()\r\n .subscribe((workspaces: EntityRecord<Workspace>[]) => {\r\n workspaces.map((wks: EntityRecord<Workspace>) => {\r\n if (wks.entity.actionStore.empty) {\r\n if (wks.entity instanceof WfsWorkspace) {\r\n this.wfsActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n } else if (wks.entity instanceof FeatureWorkspace) {\r\n this.featureActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n } else if (wks.entity instanceof EditionWorkspace) {\r\n this.editionActionsService.loadActions(\r\n wks.entity,\r\n this.rowsInMapExtentCheckCondition$,\r\n this.selectOnlyCheckCondition$);\r\n }\r\n }\r\n\r\n });\r\n });\r\n\r\n this.actionMaximize$$.push(this.featureActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.actionMaximize$$.push(this.wfsActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.actionMaximize$$.push(this.editionActionsService.maximize$.subscribe(maximized => {\r\n this.setWorkspaceIsMaximized(maximized);\r\n }));\r\n\r\n this.activeWorkspace$$ = this.workspace$\r\n .subscribe((workspace: Workspace) => {\r\n if (this.activeWorkspaceWidget$$ !== undefined) {\r\n this.activeWorkspaceWidget$$.unsubscribe();\r\n this.activeWorkspaceWidget$$ = undefined;\r\n }\r\n\r\n if (workspace !== undefined) {\r\n this.activeWorkspaceWidget$$ = workspace.widget$\r\n .subscribe((widget: Widget) => this.activeWorkspaceWidget$.next(widget));\r\n }\r\n });\r\n\r\n this.rowsInMapExtentCheckCondition$$ = this.rowsInMapExtentCheckCondition$.subscribe((rowsInMapExtent) => {\r\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\r\n if (!wks.entity.actionStore.empty) {\r\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (filterStrategy) {\r\n if (rowsInMapExtent) {\r\n filterStrategy.activate();\r\n } else {\r\n filterStrategy.deactivate();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.selectOnlyCheckCondition$$ = this.selectOnlyCheckCondition$.subscribe((selectOnly) => {\r\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\r\n if (!wks.entity.actionStore.empty) {\r\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\r\n if (filterStrategy) {\r\n if (selectOnly) {\r\n filterStrategy.activate();\r\n } else {\r\n filterStrategy.deactivate();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n private setWorkspaceIsMaximized(maximized: boolean) {\r\n this.storageService.set('workspaceMaximize', maximized);\r\n this.workspaceMaximize$.next(maximized);\r\n }\r\n\r\n public setActiveWorkspaceById(id: string) {\r\n const wksFromId = this.store\r\n .all()\r\n .find(workspace => workspace.id === id);\r\n if (wksFromId) {\r\n this.store.activateWorkspace(wksFromId);\r\n }\r\n }\r\n\r\n public setActiveWorkspaceByTitle(title: string) {\r\n const wksFromTitle = this.store\r\n .all()\r\n .find(workspace => workspace.title === title);\r\n if (wksFromTitle) {\r\n this.store.activateWorkspace(wksFromTitle);\r\n }\r\n }\r\n\r\n /**\r\n * Teardown all the workspaces\r\n * @internal\r\n */\r\n ngOnDestroy() {\r\n this.teardownWorkspaces();\r\n this.actionMaximize$$.map(a => a.unsubscribe());\r\n if (this.rowsInMapExtentCheckCondition$$) {\r\n this.selectOnlyCheckCondition$$.unsubscribe();\r\n }\r\n if (this.selectOnlyCheckCondition$$) {\r\n this.selectOnlyCheckCondition$$.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Teardown the workspace store and any subscribers\r\n */\r\n private teardownWorkspaces() {\r\n this.store.clear();\r\n if (this.activeWorkspaceWidget$$ !== undefined) {\r\n this.activeWorkspaceWidget$$.unsubscribe();\r\n }\r\n if (this.activeWorkspace$$ !== undefined) {\r\n this.activeWorkspace$$.unsubscribe();\r\n }\r\n }\r\n\r\n}\r\n","<button\r\n *ngIf=\"hasWorkspace$ | async\"\r\n mat-icon-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\r\n [color]=\"color\"\r\n (click)=\"activateWorkspace()\"\r\n >\r\n <mat-icon svgIcon=\"table\"></mat-icon>\r\n</button>\r\n","import { Component, Input, ChangeDetectionStrategy, OnInit, OnDestroy } from '@angular/core';\r\nimport type { Layer } from '@igo2/geo';\r\nimport { WorkspaceState } from '../workspace.state';\r\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'igo-workspace-button',\r\n templateUrl: './workspace-button.component.html',\r\n styleUrls: ['./workspace-button.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class WorkspaceButtonComponent implements OnInit, OnDestroy {\r\n\r\n public hasWorkspace$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n private hasWorkspace$$: Subscription;\r\n\r\n private _layer: Layer;\r\n private layer$: BehaviorSubject<Layer> = new BehaviorSubject(undefined);\r\n @Input()\r\n set layer(value: Layer) {\r\n this._layer = value;\r\n this.layer$.next(this._layer);\r\n }\r\n\r\n get layer(): Layer {\r\n return this._layer;\r\n }\r\n\r\n @Input() color: string = 'primary';\r\n\r\n constructor(private workspaceState: WorkspaceState) { }\r\n\r\n ngOnInit(): void {\r\n this.hasWorkspace$$ = combineLatest([this.workspaceState.workspaceEnabled$, this.layer$])\r\n .subscribe(bunch => this.hasWorkspace$.next(bunch[0] && bunch[1]?.options.workspace?.enabled)\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.hasWorkspace$$.unsubscribe();\r\n }\r\n\r\n activateWorkspace() {\r\n if (\r\n this.workspaceState.workspace$.value &&\r\n (this.workspaceState.workspace$.value as any).layer.id === this.layer.id &&\r\n this.workspaceState.workspacePanelExpanded) {\r\n this.workspaceState.workspacePanelExpanded = false;\r\n } else {\r\n this.workspaceState.workspacePanelExpanded = true;\r\n this.workspaceState.setActiveWorkspaceById(this.layer.id);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { WorkspaceButtonComponent } from './workspace-button/workspace-button.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n IgoLanguageModule\r\n ],\r\n declarations: [WorkspaceButtonComponent],\r\n exports: [WorkspaceButtonComponent]\r\n})\r\nexport class IgoAppWorkspaceModule {}\r\n","<mat-tab-group *ngIf=\"importExportShowBothType\" >\r\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportData' | translate\">\r\n <igo-import-export \r\n [contextUri]=\"(contextState.context$ | async).uri\"\r\n [map]=\"map\"\r\n [selectFirstProj]=\"selectFirstProj\"\r\n [projectionsLimitations]=\"projectionsLimitations\"\r\n [store]=\"workspaceStore\"\r\n [selectedMode]=\"importExportState.selectedMode$ | async\"\r\n (selectMode)=\"modeChanged($event)\"\r\n [exportOptions$]=\"importExportState.exportOptions$\"\r\n (exportOptionsChange)=\"exportOptionsChange($event)\">\r\n </igo-import-export>\r\n </mat-tab>\r\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportContext' | translate\">\r\n <igo-context-import-export [map]=\"map\"></igo-context-import-export>\r\n </mat-tab>\r\n</mat-tab-group>\r\n\r\n<igo-import-export \r\n *ngIf=\"!importExportShowBothType && importExportType === 'layer'\"\r\n [contextUri]=\"(contextState.context$ | async).uri\"\r\n [map]=\"map\"\r\n [store]=\"workspaceStore\"\r\n [selectedMode]=\"importExportState.selectedMode$ | async\"\r\n (selectMode)=\"modeChanged($event)\"\r\n [exportOptions$]=\"importExportState.exportOptions$\"\r\n (exportOptionsChange)=\"exportOptionsChange($event)\">\r\n</igo-import-export>\r\n\r\n<igo-context-import-export \r\n *ngIf=\"!importExportShowBothType && importExportType === 'context'\"\r\n [map]=\"map\">\r\n</igo-context-import-export>","import { Component, ChangeDetectionStrategy, OnInit, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport type { WorkspaceStore } from '@igo2/common';\r\nimport { IgoMap, ExportOptions, ProjectionsLimitationsOptions } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\nimport { ImportExportMode, ImportExportState, ImportExportType } from '../import-export.state';\r\nimport { WorkspaceState } from '../../workspace/workspace.state';\r\nimport { ContextState } from '../../context/context.state';\r\n\r\n@ToolComponent({\r\n name: 'importExport',\r\n title: 'igo.integration.tools.importExport',\r\n icon: 'file-move'\r\n})\r\n@Component({\r\n selector: 'igo-import-export-tool',\r\n templateUrl: './import-export-tool.component.html',\r\n styleUrls: ['./import-export-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ImportExportToolComponent implements OnInit {\r\n\r\n @Input() projectionsLimitations: ProjectionsLimitationsOptions;\r\n\r\n @Input() selectFirstProj: boolean = false;\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n get workspaceStore(): WorkspaceStore {\r\n return this.workspaceState.store;\r\n }\r\n\r\n @Input() importExportType: ImportExportType = ImportExportType.layer;\r\n @Input() importExportShowBothType: boolean = true;\r\n\r\n constructor(\r\n private mapState: MapState,\r\n public importExportState: ImportExportState,\r\n private workspaceState: WorkspaceState,\r\n public contextState: ContextState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectType();\r\n this.selectMode();\r\n }\r\n\r\n private selectType() {\r\n if (this.importExportType) {\r\n this.importExportState.importExportType$.next(this.importExportType);\r\n }\r\n const userSelectedType = this.importExportState.importExportType$.value;\r\n if (userSelectedType !== undefined) {\r\n this.importExportState.setImportExportType(userSelectedType);\r\n } else {\r\n this.importExportState.setImportExportType(ImportExportType.layer);\r\n }\r\n }\r\n\r\n private selectMode() {\r\n const userSelectedMode = this.importExportState.selectedMode$.value;\r\n if (userSelectedMode !== undefined) {\r\n this.importExportState.setMode(userSelectedMode);\r\n } else {\r\n this.importExportState.setMode(ImportExportMode.import);\r\n\r\n }\r\n }\r\n\r\n public modeChanged(mode: ImportExportMode) {\r\n this.importExportState.setMode(mode);\r\n }\r\n\r\n public exportOptionsChange(exportOptions: ExportOptions) {\r\n this.importExportState.setsExportOptions(exportOptions);\r\n }\r\n\r\n importExportTypeChange(event) {\r\n this.importExportType = event.value;\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoImportExportModule, IgoStyleModule } from '@igo2/geo';\r\nimport { ImportExportToolComponent } from './import-export-tool/import-export-tool.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoContextImportExportModule } from '@igo2/context';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoImportExportModule,\r\n IgoContextImportExportModule,\r\n CommonModule,\r\n IgoLanguageModule,\r\n MatButtonToggleModule,\r\n MatTabsModule,\r\n IgoStyleModule\r\n ],\r\n declarations: [ImportExportToolComponent],\r\n exports: [ImportExportToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppImportExportModule {\r\n static forRoot(): ModuleWithProviders<IgoAppImportExportModule> {\r\n return {\r\n ngModule: IgoAppImportExportModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","<igo-layer-list class=\"mapDetailsList\" *ngIf=\"(layers$ | async).length; else empty\"\r\n [map]=\"map\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n floatLabel=\"never\"\r\n [queryBadge]=\"queryBadge\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\r\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n </ng-template>\r\n\r\n</igo-layer-list>\r\n\r\n<ng-template #empty>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n Layer,\r\n IgoMap,\r\n LayerListControlsOptions,\r\n SearchSourceService,\r\n sourceCanSearch,\r\n ExportOptions\r\n} from '@igo2/geo';\r\n\r\nimport { ToolState } from './../../tool/tool.state';\r\nimport { MapState } from './../map.state';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\n\r\n@ToolComponent({\r\n name: 'mapDetails',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-details-tool',\r\n templateUrl: './map-details-tool.component.html',\r\n styleUrls: ['./map-details-tool.component.scss']\r\n})\r\nexport class MapDetailsToolComponent implements OnInit {\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layers$(): Observable<Layer[]> {\r\n return this.map.layers$.pipe(\r\n map((layers) =>\r\n layers.filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n )\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): any {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private cdRef: ChangeDetectorRef,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => {\r\n this.delayedShowEmptyMapContent = true;\r\n this.cdRef.detectChanges();\r\n }, 250);\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n}\r\n","<mat-tab-group>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\r\n <igo-layer-list\r\n [map]=\"map\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [floatLabel]=\"false\"\r\n [queryBadge]=\"queryBadge\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\r\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n </ng-template>\r\n\r\n </igo-layer-list>\r\n </mat-tab>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\r\n <igo-context-list igoContextListBinding></igo-context-list>\r\n </mat-tab>\r\n\r\n</mat-tab-group>\r\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n LayerListControlsOptions,\r\n IgoMap,\r\n ExportOptions,\r\n Layer\r\n} from '@igo2/geo';\r\nimport { MapState } from './../map.state';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\nimport { ToolState } from '../../tool/tool.state';\r\n\r\n/**\r\n * Tool to browse a map's layers or to choose a different map\r\n */\r\n@ToolComponent({\r\n name: 'map',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-tool',\r\n templateUrl: './map-tool.component.html',\r\n styleUrls: ['./map-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapToolComponent {\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): any {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n}\r\n","<mat-tab-group\r\n #tabGroup\r\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\r\n (selectedTabChange)=\"tabChanged($event)\">\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\r\n <igo-layer-list *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\r\n igoLayerListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\r\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\r\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [floatLabel]=\"false\"\r\n [queryBadge]=\"queryBadge\"\r\n [map]=\"map\"\r\n (appliedFilterAndSort)=\"onLayerListChange($event)\">\r\n\r\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\r\n <igo-style-modal-layer-button *ngIf=\"isStyleEditButton(layer)\" [layer]=\"layer\"></igo-style-modal-layer-button>\r\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\r\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\r\n <igo-time-filter-button *ngIf=\"isTimeFilterButton(layer)\" [header]=\"timeButton\" [layer]=\"layer\"\r\n (click)=\"activateTimeFilter()\"></igo-time-filter-button>\r\n <igo-ogc-filter-button *ngIf=\"isOGCFilterButton(layer)\" [header]=\"ogcButton\" [layer]=\"layer\"\r\n (click)=\"activateOgcFilter()\"></igo-ogc-filter-button>\r\n <igo-export-button *ngIf=\"isExportButton(layer)\" [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\r\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\r\n </ng-template>\r\n </igo-layer-list>\r\n </mat-tab>\r\n\r\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\r\n <igo-layer-legend-list *ngIf=\"showAllLegend()\"\r\n igoLayerLegendListBinding\r\n [allowShowAllLegends]=\"allowShowAllLegends\"\r\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\r\n (allLegendsShown)=\"onShowAllLegends($event)\"\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\">\r\n </igo-layer-legend-list>\r\n <ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\r\n\r\n <p class=\"map-empty mat-typography\"\r\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\r\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\r\n </p>\r\n </mat-tab>\r\n\r\n <ng-template #emptyLayers>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\"\r\n class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\r\n preserveAspectRatio='xMidYMid meet' focusable='false'>\r\n <path\r\n d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'>\r\n </path>\r\n </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n </ng-template>\r\n</mat-tab-group>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ViewChild,\r\n OnDestroy\r\n} from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n LayerListControlsEnum,\r\n LayerListControlsOptions,\r\n IgoMap,\r\n SearchSourceService,\r\n sourceCanSearch,\r\n Layer,\r\n ExportOptions,\r\n VectorLayer\r\n} from '@igo2/geo';\r\n\r\nimport { LayerListToolState } from '../layer-list-tool.state';\r\nimport { MatTabChangeEvent } from '@angular/material/tabs';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { MapState } from '../map.state';\r\nimport { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\r\n/**\r\n * Tool to browse a map's layers or to choose a different map\r\n */\r\n@ToolComponent({\r\n name: 'mapTools',\r\n title: 'igo.integration.tools.map',\r\n icon: 'map'\r\n})\r\n@Component({\r\n selector: 'igo-map-tools',\r\n templateUrl: './map-tools.component.html',\r\n styleUrls: ['./map-tools.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MapToolsComponent implements OnInit, OnDestroy {\r\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\r\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n private resolution$$: Subscription;\r\n private visibleOrInRangeLayers$$: Subscription;\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n @Input() allowShowAllLegends: boolean = false;\r\n\r\n @Input() showAllLegendsValue: boolean = false;\r\n\r\n @Input() toggleLegendOnVisibilityChange: boolean = false;\r\n\r\n @Input() expandLegendOfVisibleLayers: boolean = false;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() selectedTabAtOpening: string;\r\n\r\n @Input() ogcButton: boolean = true;\r\n\r\n @Input() timeButton: boolean = true;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n @Input()\r\n get layerListControls(): LayerListControlsOptions {\r\n return this._layerListControls;\r\n }\r\n set layerListControls(value: LayerListControlsOptions) {\r\n const stateOptions = this.layerListToolState.getLayerListControls();\r\n const stateKeyword = stateOptions.keyword;\r\n const stateOnlyVisible = stateOptions.onlyVisible;\r\n const stateSortAlpha = stateOptions.sortAlpha;\r\n\r\n value.keyword = stateKeyword !== '' ? stateKeyword : value.keyword;\r\n value.onlyVisible =\r\n stateOnlyVisible !== undefined ? stateOnlyVisible : value.onlyVisible;\r\n value.sortAlpha =\r\n stateSortAlpha !== undefined ? stateSortAlpha : value.sortAlpha;\r\n\r\n value.onlyVisible =\r\n value.onlyVisible === undefined ? false : value.onlyVisible;\r\n value.sortAlpha = value.sortAlpha === undefined ? false : value.sortAlpha;\r\n\r\n this._layerListControls = value;\r\n }\r\n private _layerListControls = {};\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n @Input() queryBadge: boolean = false;\r\n\r\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map((layers) =>\r\n layers.filter(\r\n (layer) => layer.visible$.value && layer.isInResolutionsRange$.value\r\n )\r\n )\r\n );\r\n }\r\n\r\n get visibleLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map((layers) => layers.filter((layer) => layer.visible$.value))\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get layerFilterAndSortOptions(): LayerListControlsOptions {\r\n const filterSortOptions = Object.assign(\r\n {\r\n showToolbar: LayerListControlsEnum.default\r\n },\r\n this.layerListControls\r\n );\r\n\r\n switch (this.layerListControls.showToolbar) {\r\n case LayerListControlsEnum.always:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\r\n break;\r\n case LayerListControlsEnum.never:\r\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\r\n break;\r\n default:\r\n break;\r\n }\r\n return filterSortOptions;\r\n }\r\n\r\n @ViewChild('tabGroup', { static: true }) tabGroup;\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n\r\n constructor(\r\n public layerListToolState: LayerListToolState,\r\n private toolState: ToolState,\r\n public mapState: MapState,\r\n private searchSourceService: SearchSourceService,\r\n private importExportState: ImportExportState\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.selectedTab();\r\n this.resolution$$ = combineLatest([\r\n this.map.layers$,\r\n this.map.viewController.resolution$\r\n ])\r\n .pipe(debounceTime(10))\r\n .subscribe((bunch: [Layer[], number]) => {\r\n this.layers$.next(\r\n bunch[0].filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n });\r\n\r\n if (this.allowShowAllLegends) {\r\n this.mapState.showAllLegendsValue =\r\n this.mapState.showAllLegendsValue !== undefined\r\n ? this.mapState.showAllLegendsValue\r\n : this.showAllLegendsValue || false;\r\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\r\n } else {\r\n this.showAllLegendsValue$.next(false);\r\n }\r\n\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => (this.delayedShowEmptyMapContent = true), 250);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resolution$$.unsubscribe();\r\n if (this.visibleOrInRangeLayers$$) {\r\n this.visibleOrInRangeLayers$$.unsubscribe();\r\n }\r\n }\r\n\r\n onShowAllLegends(event) {\r\n this.mapState.showAllLegendsValue = event;\r\n this.showAllLegendsValue$.next(event);\r\n }\r\n\r\n private selectedTab() {\r\n const userSelectedTab = this.layerListToolState.selectedTab$.value;\r\n if (userSelectedTab !== undefined) {\r\n this.layerListToolState.setSelectedTab(userSelectedTab);\r\n } else {\r\n if (this.selectedTabAtOpening === 'legend') {\r\n this.layerListToolState.setSelectedTab(1);\r\n } else {\r\n this.layerListToolState.setSelectedTab(0);\r\n }\r\n }\r\n }\r\n\r\n public tabChanged(tab: MatTabChangeEvent) {\r\n this.layerListToolState.setSelectedTab(tab.index);\r\n this.layers$.next(\r\n this.map.layers.filter(\r\n (layer) =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n }\r\n\r\n onLayerListChange(appliedFilters: LayerListControlsOptions) {\r\n this.layerListToolState.setKeyword(appliedFilters.keyword);\r\n this.layerListToolState.setSortAlpha(appliedFilters.sortAlpha);\r\n this.layerListToolState.setOnlyVisible(appliedFilters.onlyVisible);\r\n }\r\n\r\n showAllLegend() {\r\n if (this.layers$.getValue().length === 0) {\r\n return false;\r\n } else if (\r\n this.layers$.getValue().length !== 0 &&\r\n this.allowShowAllLegends === false\r\n ) {\r\n let visibleOrInRangeLayers;\r\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe((value) => {\r\n value.length === 0\r\n ? (visibleOrInRangeLayers = false)\r\n : (visibleOrInRangeLayers = true);\r\n });\r\n\r\n if (visibleOrInRangeLayers === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n activateExport(layer: Layer) {\r\n let id = layer.id;\r\n if (layer.options.workspace?.workspaceId) {\r\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\r\n }\r\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n\r\n activateTimeFilter() {\r\n this.toolState.toolbox.activateTool('activeTimeFilter');\r\n }\r\n\r\n activateOgcFilter() {\r\n this.toolState.toolbox.activateTool('activeOgcFilter');\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n\r\n isTimeFilterButton(layer): boolean {\r\n const options = layer.dataSource.options;\r\n return this.timeButton && options.timeFilterable && options.timeFilter;\r\n }\r\n\r\n isOGCFilterButton(layer): boolean {\r\n const options = layer.dataSource.options;\r\n return this.ogcButton && options.ogcFilters && options.ogcFilters.enabled &&\r\n (options.ogcFilters.pushButtons || options.ogcFilters.checkboxes || options.ogcFilters.radioButtons\r\n || options.ogcFilters.select || options.ogcFilters.autocomplete || options.ogcFilters.editable);\r\n }\r\n\r\n isExportButton(layer: Layer): boolean {\r\n if (\r\n (layer instanceof VectorLayer && layer.exportable === true) ||\r\n (layer.dataSource.options.download && layer.dataSource.options.download.url) ||\r\n (layer.options.workspace?.enabled && layer.options.workspace?.workspaceId !== layer.id))\r\n {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n isStyleEditButton(layer: Layer): boolean {\r\n if (layer instanceof VectorLayer) {\r\n if ((layer as VectorLayer).options?.igoStyle?.editable) {\r\n return true;\r\n }\r\n\r\n }\r\n return false;\r\n }\r\n}\r\n","<igo-layer-legend-list *ngIf=\"showAllLegend()\"\r\n igoLayerLegendListBinding\r\n [excludeBaseLayers]=\"excludeBaseLayers\"\r\n [allowShowAllLegends]=\"allowShowAllLegends\"\r\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\r\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\r\n (allLegendsShown)=\"onShowAllLegends($event)\">\r\n</igo-layer-legend-list>\r\n<ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\r\n\r\n<p class=\"map-empty mat-typography\"\r\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\r\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\r\n</p>\r\n\r\n\r\n<ng-template #emptyLayers>\r\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.empty' | translate}}</p>\r\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\r\n {{'igo.integration.mapTool.customize' | translate}}</p>\r\n\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.mapTool.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.mapTool.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\r\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.mapTool.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import {\r\n Component,\r\n Input,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectorRef\r\n} from '@angular/core';\r\nimport { Observable, Subscription, BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\r\nimport { map, debounceTime } from 'rxjs/operators';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport {\r\n Layer,\r\n IgoMap,\r\n LayerListControlsOptions,\r\n SearchSourceService,\r\n sourceCanSearch\r\n} from '@igo2/geo';\r\n\r\nimport { ToolState } from './../../tool/tool.state';\r\nimport { MapState } from './../map.state';\r\n\r\n@ToolComponent({\r\n name: 'mapLegend',\r\n title: 'igo.integration.tools.legend',\r\n icon: 'format-list-bulleted-type'\r\n})\r\n@Component({\r\n selector: 'igo-map-legend-tool',\r\n templateUrl: './map-legend-tool.component.html',\r\n styleUrls: ['./map-legend-tool.component.scss']\r\n})\r\nexport class MapLegendToolComponent implements OnInit, OnDestroy {\r\n public delayedShowEmptyMapContent: boolean = false;\r\n\r\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\r\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n change$ = new ReplaySubject<void>(1);\r\n\r\n private resolution$$: Subscription;\r\n private visibleOrInRangeLayers$$: Subscription;\r\n\r\n @Input() updateLegendOnResolutionChange: boolean = false;\r\n\r\n @Input() layerAdditionAllowed: boolean = true;\r\n\r\n @Input() allowShowAllLegends: boolean = false;\r\n\r\n @Input() showAllLegendsValue: boolean = false;\r\n\r\n @Input() layerListControls: LayerListControlsOptions = {};\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map(layers =>\r\n layers.filter(\r\n layer => layer.visible$.value && layer.isInResolutionsRange$.value\r\n )\r\n )\r\n );\r\n }\r\n\r\n get visibleLayers$(): Observable<Layer[]> {\r\n return this.layers$.pipe(\r\n map(layers => layers.filter(layer => layer.visible$.value))\r\n );\r\n }\r\n\r\n get excludeBaseLayers(): boolean {\r\n return this.layerListControls.excludeBaseLayers || false;\r\n }\r\n\r\n get searchToolInToolbar(): boolean {\r\n return (\r\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\r\n this.searchSourceService\r\n .getSources()\r\n .filter(sourceCanSearch)\r\n .filter(s => s.available && s.getType() === 'Layer').length > 0\r\n );\r\n }\r\n\r\n get catalogToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\r\n }\r\n\r\n get contextToolInToolbar(): boolean {\r\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\r\n }\r\n constructor(\r\n private mapState: MapState,\r\n private toolState: ToolState,\r\n private searchSourceService: SearchSourceService,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.resolution$$ = combineLatest([\r\n this.map.layers$,\r\n this.map.viewController.resolution$\r\n ])\r\n .pipe(debounceTime(10))\r\n .subscribe((bunch: [Layer[], number]) => {\r\n this.layers$.next(\r\n bunch[0].filter(\r\n layer =>\r\n layer.showInLayerList !== false &&\r\n (!this.excludeBaseLayers || !layer.baseLayer)\r\n )\r\n );\r\n });\r\n\r\n if (this.allowShowAllLegends) {\r\n this.mapState.showAllLegendsValue =\r\n this.mapState.showAllLegendsValue !== undefined\r\n ? this.mapState.showAllLegendsValue\r\n : this.showAllLegendsValue || false;\r\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\r\n } else {\r\n this.showAllLegendsValue$.next(false);\r\n }\r\n\r\n // prevent message to be shown too quickly. Waiting for layers\r\n setTimeout(() => {\r\n this.delayedShowEmptyMapContent = true;\r\n this.cdRef.detectChanges();\r\n }, 250);\r\n }\r\n\r\n onShowAllLegends(event) {\r\n this.mapState.showAllLegendsValue = event;\r\n this.showAllLegendsValue$.next(event);\r\n }\r\n\r\n showAllLegend() {\r\n if (this.layers$.getValue().length === 0) {\r\n return false;\r\n } else if (\r\n this.layers$.getValue().length !== 0 &&\r\n this.allowShowAllLegends === false\r\n ) {\r\n let visibleOrInRangeLayers;\r\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe(value => {\r\n value.length === 0\r\n ? (visibleOrInRangeLayers = false)\r\n : (visibleOrInRangeLayers = true);\r\n });\r\n\r\n if (visibleOrInRangeLayers === false) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.resolution$$.unsubscribe();\r\n if (this.visibleOrInRangeLayers$$) {\r\n this.visibleOrInRangeLayers$$.unsubscribe();\r\n }\r\n }\r\n\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n}\r\n","<div *ngIf=\"userControlledLayerList.length; else noLayersBlock\" class=\"igo-swipe-select-container\">\r\n <form class=\"igo-form\" [formGroup]=\"form\">\r\n <mat-form-field>\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-select' | translate}}</mat-label>\r\n <mat-select formControlName=\"layers\" multiple>\r\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.selectAll' | translate}}\r\n </mat-option>\r\n <mat-divider></mat-divider>\r\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\" (click)=\"applyNewLayers(e)\">{{layer.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n\r\n <mat-slide-toggle class=\"swipe-toggle mat-typography\"\r\n [checked]=\"swipe\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"startSwipe($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate}}\r\n </mat-slide-toggle> \r\n</div>\r\n\r\n<ng-template #noLayersBlock>\r\n <mat-list>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate}}</p>\r\n <p class=\"map-empty mat-typography\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate}}</p>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"magnify\"></mat-icon>\r\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.search-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"layers-plus\"></mat-icon>\r\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n <mat-list-item>\r\n <mat-icon mat-list-icon svgIcon=\"star\"></mat-icon>\r\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\r\n {{'igo.integration.advanced-map-tool.advanced-swipe.context-tool' | translate}}\r\n </h4>\r\n </mat-list-item>\r\n </mat-list>\r\n</ng-template>\r\n","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\r\nimport { ContextService, DetailedContext } from '@igo2/context';\r\nimport { IgoMap, Layer, VectorLayer } from '@igo2/geo';\r\nimport { MapState } from '../../map.state';\r\nimport { ToolState } from '../../../tool/tool.state';\r\n\r\n@Component({\r\n selector: 'igo-advanced-swipe',\r\n templateUrl: './advanced-swipe.component.html',\r\n styleUrls: ['./advanced-swipe.component.scss']\r\n})\r\n\r\nexport class AdvancedSwipeComponent implements OnInit, OnDestroy {\r\n public swipe: boolean = false;\r\n public layerList: Layer[];\r\n public userControlledLayerList: Layer[];\r\n public form: UntypedFormGroup;\r\n public layers: VectorLayer[];\r\n public res: DetailedContext;\r\n public listForSwipe: Layer[];\r\n\r\n /**\r\n * Get an active map state\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState,\r\n private contextService: ContextService,\r\n private formBuilder: UntypedFormBuilder,\r\n private toolState: ToolState) {\r\n this.buildForm();\r\n }\r\n\r\n /**\r\n * Get the list of layers for swipe\r\n * @internal\r\n */\r\n ngOnInit() {\r\n this.map.layers$.subscribe(ll => this.userControlledLayerList = ll.filter(layer =>\r\n (!layer.baseLayer && layer.showInLayerList && layer.displayed)));\r\n }\r\n\r\n /**\r\n * Desactivate the swipe\r\n * @internal\r\n */\r\n ngOnDestroy(){\r\n this.swipe = false;\r\n this.map.swipeEnabled$.next(this.swipe);\r\n }\r\n\r\n /**\r\n * Build a form for choise of the layers\r\n */\r\n private buildForm() {\r\n this.form = this.formBuilder.group({\r\n layers: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n /**\r\n * Activate the swipe, send a list of layers for a swipe-tool\r\n */\r\n startSwipe(toggle: boolean){\r\n this.swipe = toggle;\r\n this.map.swipeEnabled$.next(toggle);\r\n this.listForSwipe = [];\r\n for (const layer of this.form.value.layers) {\r\n this.listForSwipe.push(layer);\r\n }\r\n this.map.selectedFeatures$.next(this.listForSwipe);\r\n }\r\n\r\n /**\r\n * Restart a swipe for a new layers-list\r\n */\r\n applyNewLayers(e) {\r\n this.startSwipe(false); // l'approche KISS\r\n this.startSwipe(true);\r\n if (e._selected) {e._selected = false; }\r\n const allLayers = this.userControlledLayerList.length;\r\n const selectedLayers = this.form.controls.layers.value.length;\r\n if (selectedLayers === allLayers){\r\n e._selected = true;\r\n }\r\n }\r\n\r\n /**\r\n * Select all list of layers and restart a tool\r\n */\r\n selectAll(e) {\r\n if (e._selected) {\r\n this.form.controls.layers.setValue(this.userControlledLayerList);\r\n e._selected = true;\r\n }\r\n else {\r\n this.form.controls.layers.setValue([]);\r\n }\r\n this.startSwipe(false);\r\n this.startSwipe(true);\r\n }\r\n\r\n /**\r\n * Open search tool\r\n */\r\n searchEmit() {\r\n this.toolState.toolbox.activateTool('searchResults');\r\n }\r\n\r\n /**\r\n * Open catalog\r\n */\r\n catalogEmit() {\r\n this.toolState.toolbox.activateTool('catalog');\r\n }\r\n\r\n /**\r\n * Open context manager\r\n */\r\n contextEmit() {\r\n this.toolState.toolbox.activateTool('contextManager');\r\n }\r\n}\r\n","<div class=\"advanced-coordinates__coordinates-container\">\r\n <div class=\"advanced-coordinates__coordinates-container__inner\">\r\n <mat-form-field *ngIf=\"units; else elseBlock\" class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\"\r\n [value]=\"coordinates[0]\"></textarea>\r\n </mat-form-field>\r\n <ng-template #elseBlock >\r\n <mat-form-field class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.est' | translate\"\r\n [value]=\"coordinates[0]\"></textarea></mat-form-field>\r\n </ng-template>\r\n\r\n <mat-form-field *ngIf=\"units; else elseBlock2\" class=\"coordinates2\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\"\r\n [value]=\"coordinates[1]\"></textarea>\r\n </mat-form-field>\r\n <ng-template #elseBlock2 >\r\n <mat-form-field class=\"coordinates2\"> <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.nord' | translate\"\r\n [value]=\"coordinates[1]\"></textarea></mat-form-field>\r\n </ng-template>\r\n </div>\r\n\r\n <button mat-icon-button [attr.aria-label]=\"'igo.integration.advanced-map-tool.advanced-coordinates.copy' | translate\" class=\"igo-form-button-group advanced-coordinates__copy-coordinates\"\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n</button>\r\n</div>\r\n<form class=\"igo-form advanced-coordinates__form\" [formGroup]=\"form\">\r\n <mat-form-field class=\"igo-input-container\">\r\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem' | translate}}</mat-label>\r\n <mat-select [(value)]=\"inputProj\">\r\n <mat-option matTooltipShowDelay=\"500\"\r\n *ngFor=\"let projection of (projections$ | async)\"\r\n [value]=\"projection\"\r\n (click)=\"$event.stopPropagation()\">\r\n {{projection.translatedValue || projection.alias }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-slide-toggle class=\"center-toggle mat-typography\"\r\n [checked]=\"center\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"displayCenter($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.advanced-coordinates.center' | translate}}\r\n </mat-slide-toggle> \r\n</form>\r\n\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate}} {{map.viewController.getZoom() }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate}} {{ formattedScale$ | async }}</p>\r\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.resolution' | translate}} {{map.viewController.getResolution() | number: '1.0-0' }}</p>","import { ChangeDetectorRef, Component, OnDestroy, OnInit, Input } from '@angular/core';\r\nimport { formatScale, IgoMap, InputProjections, ProjectionsLimitationsOptions } from '@igo2/geo';\r\nimport { MapState } from '../../map.state';\r\nimport { Clipboard } from '@igo2/utils';\r\nimport { MessageService, LanguageService, StorageService, StorageScope, ConfigService } from '@igo2/core';\r\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\r\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { zoneMtm, zoneUtm, computeProjectionsConstraints } from '@igo2/geo';\r\nimport * as olproj from 'ol/proj';\r\n/**\r\n * Tool to display the coordinates and a cursor of the center of the map\r\n */\r\n@Component({\r\n selector: 'igo-advanced-coordinates',\r\n templateUrl: './advanced-coordinates.component.html',\r\n styleUrls: ['./advanced-coordinates.component.scss']\r\n})\r\nexport class AdvancedCoordinatesComponent implements OnInit, OnDestroy {\r\n public formattedScale$: BehaviorSubject<string> = new BehaviorSubject('');\r\n public projections$: BehaviorSubject<InputProjections[]> = new BehaviorSubject([]);\r\n public form: UntypedFormGroup;\r\n public coordinates: string[];\r\n private currentCenterDefaultProj: [number, number];\r\n public center: boolean = this.storageService.get('centerToggle') as boolean;\r\n private inMtmZone: boolean = true;\r\n private inLambert2 = {32198: true, 3798: true};\r\n private mapState$$: Subscription;\r\n private _projectionsLimitations: ProjectionsLimitationsOptions = {};\r\n private projectionsConstraints: ProjectionsLimitationsOptions;\r\n private defaultProj: InputProjections = {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\r\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\r\n };\r\n private currentZones = { utm: undefined, mtm: undefined };\r\n public units: boolean = true;\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get inputProj(): InputProjections {\r\n return this.form.get('inputProj').value;\r\n }\r\n set inputProj(value: InputProjections) {\r\n this.form.patchValue({ inputProj: value });\r\n }\r\n get projectionsLimitations(): ProjectionsLimitationsOptions {\r\n return this._projectionsLimitations || {};\r\n }\r\n\r\n @Input()\r\n set projectionsLimitations(value: ProjectionsLimitationsOptions) {\r\n this._projectionsLimitations = value;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n private cdRef: ChangeDetectorRef,\r\n private storageService: StorageService,\r\n private config: ConfigService,\r\n private formBuilder: UntypedFormBuilder) {\r\n this.computeProjections();\r\n this.buildForm();\r\n }\r\n\r\n /**\r\n * Listen a state of the map, a state of a form, update the coordinates\r\n */\r\n ngOnInit(): void {\r\n this.mapState$$ = combineLatest([this.map.viewController.state$.pipe(debounceTime(50)), this.form.valueChanges])\r\n .subscribe(() => {\r\n this.setScaleValue(this.map);\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n const currentMtmZone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n const currentUtmZone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n if (!this.inMtmZone && currentMtmZone !== this.currentZones.mtm) {\r\n this.back2quebec();\r\n }\r\n let zoneChange = false;\r\n if (currentMtmZone !== this.currentZones.mtm) {\r\n this.currentZones.mtm = currentMtmZone;\r\n zoneChange = true;\r\n }\r\n if (currentUtmZone !== this.currentZones.utm) {\r\n this.currentZones.utm = currentUtmZone;\r\n zoneChange = true;\r\n }\r\n if (zoneChange) {\r\n this.updateProjectionsZoneChange();\r\n }\r\n this.checkLambert(this.currentCenterDefaultProj);\r\n this.coordinates = this.getCoordinates();\r\n this.cdRef.detectChanges();\r\n this.storageService.set('currentProjection', this.inputProj, StorageScope.SESSION);\r\n });\r\n\r\n const tempInputProj = this.storageService.get('currentProjection') as InputProjections;\r\n this.inputProj = this.projections$.value[0];\r\n if (tempInputProj !== null)\r\n {\r\n const pos = this.positionInList(tempInputProj);\r\n this.inputProj = this.projections$.value[pos];\r\n this.updateZoneMtmUtm();\r\n }\r\n this.map.mapCenter$.next(this.center);\r\n this.coordinates = this.getCoordinates();\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.map.mapCenter$.next(false);\r\n this.mapState$$.unsubscribe();\r\n }\r\n\r\n setScaleValue(map: IgoMap) {\r\n this.formattedScale$.next(': ~ 1 / ' + formatScale(map.viewController.getScale()));\r\n }\r\n /**\r\n * Coordinates of the center of the map on the appropriate systeme of coordinates\r\n * @returns Array of two numbers\r\n */\r\n getCoordinates(): string[] {\r\n this.currentZones.mtm = zoneMtm(this.currentCenterDefaultProj[0]);\r\n this.currentZones.utm = zoneUtm(this.currentCenterDefaultProj[0]);\r\n let coord;\r\n const code = this.inputProj.code;\r\n let decimal = 2;\r\n if (code.includes('EPSG:4326') || code.includes('EPSG:4269')) {\r\n decimal = 5;\r\n }\r\n this.units = (code === 'EPSG:4326' || code === 'EPSG:4269');\r\n coord = this.map.viewController.getCenter(code).map(c => c.toFixed(decimal));\r\n return coord;\r\n }\r\n\r\n /**\r\n * Copy the coordinates to a clipboard\r\n */\r\n copyTextToClipboard(): void {\r\n const successful = Clipboard.copy(this.coordinates.toString());\r\n if (successful) {\r\n this.messageService.success(\r\n 'igo.integration.advanced-map-tool.advanced-coordinates.copyMsg',\r\n 'igo.integration.advanced-map-tool.advanced-coordinates.copyTitle');\r\n }\r\n }\r\n\r\n /**\r\n * Display a cursor on the center of the map\r\n */\r\n displayCenter(toggle: boolean): void {\r\n this.center = toggle;\r\n this.map.mapCenter$.next(toggle);\r\n this.storageService.set('centerToggle', toggle, StorageScope.SESSION);\r\n }\r\n\r\n /**\r\n * Builder of the form\r\n */\r\n private buildForm(): void {\r\n this.form = this.formBuilder.group({\r\n inputProj: ['', [Validators.required]]\r\n });\r\n }\r\n\r\n /**\r\n * Update list of projections after changing of the state of the map\r\n */\r\n private updateProjectionsZoneChange(): void {\r\n let modifiedProj = this.projections$.value;\r\n const translate = this.languageService.translate;\r\n modifiedProj.map(p => {\r\n if (p.translateKey === 'mtm') {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n if (zone) {\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n p.alias = `MTM ${zone}`;\r\n p.code = code;\r\n p.zone = `${zone}`;\r\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.mtm', p);\r\n }\r\n else {\r\n p.alias = '';\r\n this.inMtmZone = false;\r\n if (this.inputProj.translateKey === 'mtm') {\r\n this.inputProj = this.projections$.value[0];\r\n }\r\n }\r\n }\r\n if (p.translateKey === 'utm') {\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n const code = `EPSG:326${zone}`;\r\n p.alias = `UTM ${zone}`;\r\n p.code = code;\r\n p.zone = `${zone}`;\r\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.utm', p);\r\n }\r\n });\r\n modifiedProj = modifiedProj.filter(p => p.alias !== '');\r\n this.projections$.next(modifiedProj);\r\n }\r\n\r\n /**\r\n * Create a list of currents projections\r\n */\r\n private computeProjections(): void {\r\n this.projectionsConstraints = computeProjectionsConstraints(this.projectionsLimitations);\r\n const projections: InputProjections[] = [];\r\n\r\n if (!this.currentCenterDefaultProj) {\r\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\r\n }\r\n\r\n const translate = this.languageService.translate;\r\n if (this.projectionsConstraints.wgs84) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\r\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\r\n });\r\n }\r\n\r\n if (this.projectionsConstraints.nad83) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.nad83', { code: 'EPSG:4269' }),\r\n translateKey: 'nad83', alias: 'NAD83', code: 'EPSG:4269', zone: ''\r\n });\r\n }\r\n\r\n if (this.projectionsConstraints.webMercator) {\r\n projections.push({\r\n translatedValue: translate.instant('igo.geo.importExportForm.projections.webMercator', { code: 'EPSG:3857' }),\r\n translateKey: 'webMercator', alias: 'Web Mercator', code: 'EPSG:3857', zone: ''\r\n });\r\n }\r\n if (this.projectionsConstraints.mtm) {\r\n // Quebec\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n if (zone) {\r\n this.inMtmZone = true;\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n projections.splice(3, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\r\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`\r\n });\r\n }\r\n else {\r\n this.inMtmZone = false;\r\n }\r\n }\r\n if (this.projectionsConstraints.utm) {\r\n const order = this.inMtmZone ? 4 : 3;\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\r\n projections.splice(order, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone }),\r\n translateKey: 'utm', alias: `UTM ${zone}`, code, zone: `${zone}`\r\n });\r\n }\r\n let configProjection = [];\r\n if (this.projectionsConstraints.projFromConfig) {\r\n configProjection = this.config.getConfig('projections') || [];\r\n }\r\n this.projections$.next(projections.concat(configProjection));\r\n }\r\n\r\n /**\r\n * Push the MTM in the array of systeme of coordinates\r\n * @param projections Array of the InputProjections\r\n */\r\n private pushMtm(projections: Array<InputProjections>): void {\r\n if (this.projectionsConstraints.mtm) {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n projections.splice(3, 0, {\r\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\r\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`});\r\n }\r\n }\r\n\r\n /**\r\n * Updates the list of systems of coordinates for territory of Quebec\r\n * push MTM and UTM in the Array\r\n */\r\n private back2quebec(): void {\r\n const projections = this.projections$.value;\r\n this.pushMtm(projections);\r\n this.inMtmZone = true;\r\n }\r\n\r\n /**\r\n * Update the numbers of the zones when application is restarted\r\n */\r\n private updateZoneMtmUtm() {\r\n if (this.inputProj.translateKey === 'mtm') {\r\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\r\n this.inputProj.alias = `MTM ${zone}`;\r\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\r\n this.inputProj.code = code;\r\n this.inputProj.zone = `${zone}`;\r\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone });\r\n }\r\n if (this.inputProj.translateKey === 'utm') {\r\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\r\n this.inputProj.alias = `UTM ${zone}`;\r\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\r\n this.inputProj.code = code;\r\n this.inputProj.zone = `${zone}`;\r\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone });\r\n }\r\n }\r\n\r\n /**\r\n * Compute the position of a current projection in a list. 0 if the projection is not in the list\r\n * @param translateKey string, translate key of a projection\r\n * @returns numeric, position of an element in the array\r\n */\r\n positionInList(tempInputProj: InputProjections): number {\r\n const tk = tempInputProj.translateKey;\r\n const alias = tempInputProj.alias;\r\n let position; // = undefined;\r\n let iter = 0;\r\n this.projections$.value.map((projection) => {\r\n if (tk) {\r\n if (tk === projection.translateKey) {\r\n position = iter;\r\n }\r\n }\r\n else if (alias === projection.alias) {\r\n position = iter;\r\n }\r\n iter++;\r\n });\r\n position = position ? position : 0;\r\n return position;\r\n }\r\n\r\n /**\r\n * Change the list of projections depending on the projections of Lambert\r\n * @param coordinates An array of numbers, longitude and latitude\r\n */\r\n checkLambert(coordinates: [number, number]) {\r\n const lambertProjections = this.config.getConfig('projections');\r\n lambertProjections.forEach(projection => {\r\n let modifiedProj = this.projections$.value;\r\n const extent = projection.extent;\r\n const code = projection.code.match(/\\d+/);\r\n const currentExtentWGS = olproj.transformExtent(extent, projection.code, this.defaultProj.code);\r\n if (coordinates[0] < currentExtentWGS[0] || coordinates[0] > currentExtentWGS[2] ||\r\n coordinates[1] < currentExtentWGS[1] || coordinates[1] > currentExtentWGS[3]) {\r\n this.inLambert2[code] = false;\r\n if (this.inputProj.alias === projection.alias) {\r\n this.inputProj = this.projections$.value[0];\r\n }\r\n modifiedProj = modifiedProj.filter(p => p.alias !== projection.alias);\r\n this.projections$.next(modifiedProj);\r\n }\r\n else {\r\n if (!this.inLambert2[code]) {\r\n this.projections$.next(modifiedProj.concat(projection));\r\n this.inLambert2[code] = true;\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../map.state';\r\n\r\n@ToolComponent({\r\n name: 'advancedMap',\r\n title: 'igo.integration.tools.advancedMap',\r\n icon: 'toolbox'\r\n})\r\n\r\n/**\r\n * Tool to handle the advanced map tools\r\n */\r\n@Component({\r\n selector: 'igo-advanced-map-tool',\r\n templateUrl: './advanced-map-tool.component.html',\r\n styleUrls: ['./advanced-map-tool.component.scss']\r\n})\r\n\r\nexport class AdvancedMapToolComponent {\r\n\r\n get tracking$() {\r\n return this.mapState.map.geolocationController.tracking$;\r\n }\r\n get followPosition$() {\r\n return this.mapState.map.geolocationController.followPosition$;\r\n }\r\n\r\n constructor(\r\n public mapState: MapState) {}\r\n\r\n toggleTracking(value) {\r\n this.mapState.map.geolocationController.tracking = value;\r\n }\r\n\r\n toggleFollow(value) {\r\n this.mapState.map.geolocationController.followPosition = value;\r\n }\r\n}\r\n","<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-tool' | translate}}</h4>\r\n<igo-advanced-swipe></igo-advanced-swipe>\r\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\r\n<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-coordinates.coordinates' | translate}}</h4>\r\n<igo-advanced-coordinates></igo-advanced-coordinates>\r\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\r\n\r\n<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.geolocation.title' | translate}}</h4>\r\n\r\n<div class=\"igo-input-container\">\r\n <div class=\"geolocation-slide-toggle-container mat-typography\">\r\n <mat-slide-toggle \r\n class=\"geolocation-option mat-typography\"\r\n [checked]=\"tracking$ | async\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"toggleTracking($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.geolocation.tracking' | translate}}\r\n </mat-slide-toggle>\r\n\r\n <mat-slide-toggle\r\n class=\"geolocation-option mat-typography\"\r\n [disabled]=\"(tracking$ | async) !== true\"\r\n [checked]=\"followPosition$ | async\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"toggleFollow($event.checked)\">\r\n {{'igo.integration.advanced-map-tool.geolocation.follow' | translate}}\r\n </mat-slide-toggle>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\r\n\r\nimport {\r\n FeatureStore, Feature, IgoMap,\r\n featureFromOl, measureOlGeometryLength, Layer, QueryableDataSourceOptions, FEATURE, roundCoordTo, QueryableDataSource, MapGeolocationState\r\n} from '@igo2/geo';\r\nimport { BehaviorSubject, combineLatest, interval, Subscription } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\nimport { MapState } from '../map/map.state';\r\n\r\nimport GeoJSON from 'ol/format/GeoJSON';\r\nimport { uuid } from '@igo2/utils';\r\n\r\nimport olLayerVector from 'ol/layer/Vector';\r\nimport olVectorSource from 'ol/source/Vector';\r\nimport Geometry from 'ol/geom/Geometry';\r\nimport olLineString from 'ol/geom/LineString';\r\nimport * as olProj from 'ol/proj';\r\nimport { StorageService } from '@igo2/core';\r\n/**\r\n * Service that holds the state of the direction module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MapProximityState {\r\n\r\n private defaultProximityRadiusValue: number = 30;\r\n\r\n public enabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\r\n public proximityRadiusValue$: BehaviorSubject<number> = new BehaviorSubject<number>(\r\n this.storageService.get('mapProximityRadius') as number || this.defaultProximityRadiusValue);\r\n public proximitylocationType$: BehaviorSubject<string> = new BehaviorSubject<string>('geolocation');\r\n public proximityFeatureStore: FeatureStore<Feature> = new FeatureStore<Feature>([], { map: this.mapState.map });\r\n private subs$$: Subscription[] = [];\r\n public currentPositionCoordinate$: BehaviorSubject<[number, number]> = new BehaviorSubject(undefined);\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private storageService: StorageService) {\r\n\r\n this.mapState.map.ol.once('rendercomplete', () => {\r\n this.subscribeProximityMonitor();\r\n });\r\n }\r\n\r\n\r\n subscribeProximityMonitor() {\r\n this.subs$$.push(combineLatest([\r\n this.enabled$,\r\n this.proximitylocationType$,\r\n this.proximityRadiusValue$,\r\n interval(5000),\r\n this.map.geolocationController.position$\r\n ])\r\n .pipe(debounceTime(750))\r\n .subscribe((bunch: [boolean, string, number, number, MapGeolocationState]) => {\r\n this.proximityFeatureStore.clear();\r\n const enabled = bunch[0];\r\n const layers = this.map.layers;\r\n const currentPos = this.map.geolocationController.position$.value;\r\n const locationType = bunch[1];\r\n const proximityRadiusValue = bunch[2];\r\n this.storageService.set('mapProximityRadius', proximityRadiusValue || this.defaultProximityRadiusValue);\r\n\r\n if (!enabled) {\r\n return;\r\n }\r\n\r\n\r\n let coord: number[];\r\n if (locationType === 'geolocation') {\r\n if (!currentPos || !currentPos.position) {\r\n return;\r\n }\r\n\r\n coord = olProj.transform(currentPos.position, currentPos.projection, this.map.projection);\r\n this.map.mapCenter$.next(false);\r\n } else {\r\n coord = this.map.viewController.getCenter();;\r\n this.map.mapCenter$.next(true);\r\n }\r\n\r\n const coordLonLat = olProj.transform(coord, this.map.projection, 'EPSG:4269');\r\n const roundedCoordLonLat = roundCoordTo(coordLonLat as [number, number], 6);\r\n this.currentPositionCoordinate$.next(roundedCoordLonLat);\r\n\r\n const layersToMonitor = layers\r\n .filter(layer =>\r\n layer.ol instanceof olLayerVector &&\r\n (layer.dataSource as QueryableDataSource).options.queryable &&\r\n layer.visible &&\r\n layer.isInResolutionsRange);\r\n\r\n layersToMonitor.map(layerToMonitor => {\r\n const layerSource = layerToMonitor.ol.getSource() as olVectorSource<Geometry>;\r\n\r\n // Mostly for polygon features.\r\n const olFeaturesAtCoordinate = layerSource.getFeaturesAtCoordinate(coord);\r\n if (olFeaturesAtCoordinate && olFeaturesAtCoordinate.length) {\r\n olFeaturesAtCoordinate.map(olFeatureAtCoordinate => {\r\n const featureAtThisPosition = featureFromOl(olFeatureAtCoordinate, this.map.projection);\r\n let title = this.getQueryTitle(featureAtThisPosition, layerToMonitor);\r\n // todo handle imported layers without querytitle? prompt title or detect first column?\r\n this.addFeatureToStore(layerToMonitor, coord, featureAtThisPosition, title, 0);\r\n });\r\n } else {\r\n // compute proximity for remaining sources\r\n const closestOlFeature = layerSource.getClosestFeatureToCoordinate(coord);\r\n if (closestOlFeature) {\r\n const closestOlGeom = closestOlFeature.getGeometry();\r\n const closestFeature = featureFromOl(closestOlFeature, this.map.projection);\r\n const geometryClosestPoint = closestOlGeom.getClosestPoint(coord);\r\n const linebetween = new olLineString([coord, geometryClosestPoint]);\r\n const lineLength = measureOlGeometryLength(linebetween, 'EPSG:3857');\r\n if (lineLength <= proximityRadiusValue) {\r\n let title = this.getQueryTitle(closestFeature, layerToMonitor);\r\n // todo handle imported layers without querytitle? prompt title or detect first column?\r\n this.addFeatureToStore(layerToMonitor, coord, closestFeature, title, lineLength);\r\n }\r\n }\r\n }\r\n });\r\n\r\n }));\r\n }\r\n\r\n /**\r\n * Add a feature with proximity properties to the store\r\n * @internal\r\n */\r\n private addFeatureToStore(layer: Layer, coordFromCalculatedDistance, feature: Feature, title, distance) {\r\n const featureId = uuid();\r\n const projection = this.map.ol.getView().getProjection();\r\n const olGeometry = feature.ol.getGeometry() as Geometry;\r\n const geometry = new GeoJSON().writeGeometryObject(olGeometry, {\r\n featureProjection: projection,\r\n dataProjection: projection\r\n }) as any;\r\n this.proximityFeatureStore.update({\r\n type: FEATURE,\r\n geometry,\r\n projection: projection.getCode(),\r\n properties: {...feature.properties,...{\r\n id: featureId,\r\n element: title,\r\n distance,\r\n coordFromCalculatedDistance,\r\n layerSrcId: layer.id,\r\n layerSrcTitle: layer.title\r\n }},\r\n meta: {\r\n id: featureId\r\n }\r\n });\r\n }\r\n\r\n getQueryTitle(feature: Feature, layer: Layer): string {\r\n let title;\r\n if (layer.options?.source?.options) {\r\n const dataSourceOptions = layer.options.source\r\n .options as QueryableDataSourceOptions;\r\n if (dataSourceOptions.queryTitle) {\r\n title = this.getLabelMatch(feature, dataSourceOptions.queryTitle);\r\n }\r\n }\r\n return title;\r\n }\r\n\r\n getLabelMatch(feature: Feature, labelMatch): string {\r\n let label = labelMatch;\r\n const labelToGet = Array.from(labelMatch.matchAll(/\\$\\{([^\\{\\}]+)\\}/g));\r\n\r\n labelToGet.forEach(v => {\r\n label = label.replace(v[0], feature.properties[v[1]]);\r\n });\r\n\r\n // Nothing done? check feature's attribute\r\n if (labelToGet.length === 0 && label === labelMatch) {\r\n label = feature.properties[labelMatch] || labelMatch;\r\n }\r\n return label;\r\n }\r\n}\r\n","<igo-entity-table #table class=\"table-compact\" [store]=\"mapProximityState.proximityFeatureStore\" [template]=\"tableTemplate\"></igo-entity-table>\r\n<br>\r\n<mat-form-field *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord\" class=\"coordinates\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.map-proximity-tool.lon' | translate\"\r\n [value]=\"coord[0]\"></textarea>\r\n</mat-form-field>\r\n<mat-form-field *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord2\" class=\"coordinates2\">\r\n <textarea #textArea matInput readonly rows=\"1\"\r\n [placeholder]=\"'igo.integration.map-proximity-tool.lat' | translate\"\r\n [value]=\"coord2[1]\"></textarea>\r\n</mat-form-field>\r\n\r\n<button *ngIf=\"(mapProximityState.currentPositionCoordinate$ | async) && (mapProximityState.currentPositionCoordinate$ | async).length\" mat-icon-button\r\n (click)=\"copyTextToClipboard()\">\r\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\r\n</button>\r\n<div class=\"title-container\">\r\n <mat-label class=\"title mat-typography\">{{'igo.integration.map-proximity-tool.method' | translate}}</mat-label>\r\n</div>\r\n<div class=\"igo-input-container mat-typography\">\r\n <mat-radio-group (change)=\"onLocationTypeChange($event)\">\r\n <mat-radio-button [checked]=\"(mapProximityState.proximitylocationType$|async)==='geolocation'\" value=\"geolocation\">{{'igo.integration.map-proximity-tool.geolocation' | translate}}</mat-radio-button>\r\n <mat-radio-button [checked]=\"(mapProximityState.proximitylocationType$|async)==='mapCenter'\" value=\"mapCenter\">{{'igo.integration.map-proximity-tool.mapCenter' | translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n</div>\r\n\r\n<div class=\"radius-unit\"> \r\n \r\n <mat-form-field appearance=\"outline\" class=\"radius-field\" floatLabel=\"always\">\r\n <mat-label>{{'igo.integration.map-proximity-tool.radiusM' | translate}}</mat-label>\r\n <input type=\"number\" pattern=\"[0-9]*\" [(ngModel)]=\"maxDistance\" matInput placeholder=\"{{'igo.integration.map-proximity-tool.radiusM' | translate}}\">\r\n </mat-form-field>\r\n\r\n \r\n</div>","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { MatRadioChange } from '@angular/material/radio';\r\nimport { EntityTableComponent, EntityTableTemplate, ToolComponent } from '@igo2/common';\r\nimport { LanguageService, MessageService } from '@igo2/core';\r\nimport { Feature, IgoMap } from '@igo2/geo';\r\nimport { NumberUtils, Clipboard } from '@igo2/utils';\r\nimport { Subscription } from 'rxjs';\r\nimport { MapProximityState } from '../map-proximity.state';\r\nimport { MapState } from '../map.state';\r\n@ToolComponent({\r\n name: 'map-proximity',\r\n title: 'igo.integration.tools.closestFeature',\r\n icon: 'radius'\r\n})\r\n\r\n/**\r\n * Tool to handle the advanced map tools\r\n */\r\n@Component({\r\n selector: 'igo-map-proximity-tool',\r\n templateUrl: './map-proximity-tool.component.html',\r\n styleUrls: ['./map-proximity-tool.component.scss']\r\n})\r\n\r\nexport class MapProximityToolComponent implements OnInit, OnDestroy {\r\n\r\n private subs$$: Subscription[] = [];\r\n @ViewChild('table', { static: true }) table: EntityTableComponent;\r\n\r\n get maxDistance() {\r\n return this.mapProximityState.proximityRadiusValue$.value;\r\n }\r\n set maxDistance(value: number) {\r\n this.mapProximityState.proximityRadiusValue$.next(value);\r\n }\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n public userDefinedMapCenter: boolean;\r\n public userDefinedFollowPosition: boolean;\r\n /**\r\n * Table template\r\n * @internal\r\n */\r\n public tableTemplate: EntityTableTemplate = {\r\n selection: true,\r\n selectMany: false,\r\n selectionCheckbox: false,\r\n sort: true,\r\n columns: [\r\n {\r\n name: 'element',\r\n title: this.languageService.translate.instant('igo.integration.map-proximity-tool.feature'),\r\n valueAccessor: (localFeature: Feature) => {\r\n return localFeature.properties.element;\r\n }\r\n },\r\n {\r\n name: 'distance',\r\n title: this.languageService.translate.instant('igo.integration.map-proximity-tool.distance'),\r\n valueAccessor: (localFeature: Feature) => {\r\n return `${NumberUtils.roundToNDecimal(localFeature.properties.distance, 1)}m`;\r\n }\r\n }\r\n ]\r\n };\r\n\r\n constructor(\r\n public mapState: MapState,\r\n public mapProximityState: MapProximityState,\r\n private languageService: LanguageService,\r\n private messageService: MessageService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.mapProximityState.enabled$.next(true);\r\n this.userDefinedFollowPosition = this.map.geolocationController.followPosition === true;\r\n this.userDefinedMapCenter = this.map.mapCenter$.value === true;\r\n\r\n this.subs$$.push(this.mapProximityState.proximitylocationType$.subscribe(v => {\r\n this.map.mapCenter$.next(v !== 'geolocation');\r\n if (v === 'geolocation') {\r\n this.map.geolocationController.followPosition = true;\r\n } else {\r\n this.map.geolocationController.followPosition = false;\r\n }\r\n }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.mapProximityState.enabled$.next(false);\r\n this.map.mapCenter$.next(this.userDefinedMapCenter);\r\n this.subs$$.map(s => s.unsubscribe());\r\n this.map.geolocationController.followPosition = this.userDefinedFollowPosition;\r\n }\r\n\r\n onLocationTypeChange(e: MatRadioChange) {\r\n this.mapProximityState.proximitylocationType$.next(e.value);\r\n }\r\n\r\n /**\r\n * Copy the coordinates to a clipboard\r\n */\r\n copyTextToClipboard(): void {\r\n\r\n const successful = Clipboard.copy(this.mapProximityState.currentPositionCoordinate$?.value.toString());\r\n if (successful) {\r\n this.messageService.success('igo.integration.map-proximity-tool.copyMsg', 'igo.integration.map-proximity-tool.copyTitle');\r\n }\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport {\r\n IgoLayerModule,\r\n IgoMetadataModule,\r\n IgoDownloadModule,\r\n IgoFilterModule,\r\n IgoImportExportModule,\r\n IgoStyleModule\r\n} from '@igo2/geo';\r\nimport { IgoContextModule } from '@igo2/context';\r\nimport { MapDetailsToolComponent } from './map-details-tool/map-details-tool.component';\r\nimport { MapToolComponent } from './map-tool/map-tool.component';\r\nimport { MapToolsComponent } from './map-tools/map-tools.component';\r\nimport { MapLegendToolComponent } from './map-legend/map-legend-tool.component';\r\nimport { IgoAppWorkspaceModule } from '../workspace/workspace.module';\r\nimport { AdvancedMapToolComponent } from './advanced-map-tool/advanced-map-tool.component';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatOptionModule } from '@angular/material/core';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { IgoEntityTableModule, IgoSpinnerModule } from '@igo2/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { AdvancedSwipeComponent } from './advanced-map-tool/advanced-swipe/advanced-swipe.component';\r\nimport { AdvancedCoordinatesComponent } from './advanced-map-tool/advanced-coordinates/advanced-coordinates.component';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MapProximityToolComponent } from './map-proximity-tool/map-proximity-tool.component';\r\n\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n ReactiveFormsModule,\r\n MatButtonToggleModule,\r\n MatDividerModule,\r\n MatSelectModule,\r\n MatOptionModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatCheckboxModule,\r\n IgoSpinnerModule,\r\n CommonModule,\r\n MatTabsModule,\r\n MatListModule,\r\n MatIconModule,\r\n IgoLanguageModule,\r\n IgoLayerModule,\r\n IgoMetadataModule,\r\n IgoDownloadModule,\r\n IgoImportExportModule,\r\n IgoStyleModule,\r\n IgoFilterModule,\r\n MatRadioModule,\r\n IgoContextModule,\r\n IgoAppWorkspaceModule,\r\n MatSlideToggleModule,\r\n MatMenuModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n IgoEntityTableModule\r\n ],\r\n declarations: [ AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,\r\n MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent, AdvancedSwipeComponent, AdvancedCoordinatesComponent],\r\n exports: [AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,\r\n MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppMapModule {\r\n static forRoot(): ModuleWithProviders<IgoAppMapModule> {\r\n return {\r\n ngModule: IgoAppMapModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { FeatureStore, FeatureWithMeasure } from '@igo2/geo';\r\nimport { MapState } from '../map/map.state';\r\n\r\n/**\r\n * Service that holds the state of the measure module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class MeasureState {\r\n\r\n /**\r\n * Store that holds the measures\r\n */\r\n public store: FeatureStore<FeatureWithMeasure> = new FeatureStore<FeatureWithMeasure>([], {\r\n map: this.mapState.map\r\n });\r\n\r\n constructor(private mapState: MapState) {\r\n\r\n this.mapState.map.layers$.subscribe((layers) => {\r\n if ((layers.filter(l => l.id?.startsWith('igo-measures-')).length === 0)) {\r\n this.store.deleteMany(this.store.all());\r\n this.mapState.map.ol.getOverlays().getArray()\r\n .filter(overlay => (overlay as any).options.className.includes('igo-map-tooltip'))\r\n .map(overlay => this.mapState.map.ol.removeOverlay(overlay));\r\n }\r\n });\r\n }\r\n\r\n}\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy\r\n} from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { FeatureStore, FeatureWithMeasure, IgoMap } from '@igo2/geo';\r\nimport { MapState } from '../../map/map.state';\r\nimport { MeasureState } from '../measure.state';\r\n\r\n/**\r\n * Tool to measure lengths and areas\r\n */\r\n@ToolComponent({\r\n name: 'measurer',\r\n title: 'igo.integration.tools.measurer',\r\n icon: 'ruler'\r\n})\r\n@Component({\r\n selector: 'igo-measurer-tool',\r\n templateUrl: './measurer-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class MeasurerToolComponent {\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get store(): FeatureStore<FeatureWithMeasure> { return this.measureState.store; }\r\n\r\n /**\r\n * Map to measure on\r\n * @internal\r\n */\r\n get map(): IgoMap { return this.mapState.map; }\r\n\r\n constructor(\r\n private measureState: MeasureState,\r\n private mapState: MapState\r\n ) {}\r\n\r\n}\r\n","<igo-measurer [store]=\"store\" [map]=\"map\"></igo-measurer>\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\n\r\nimport { IgoMeasurerModule } from '@igo2/geo';\r\n\r\nimport { MeasurerToolComponent } from './measurer-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n IgoMeasurerModule\r\n ],\r\n declarations: [MeasurerToolComponent],\r\n exports: [MeasurerToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppMeasurerToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppMeasurerToolModule } from './measurer-tool/measurer-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppMeasurerToolModule\r\n ]\r\n})\r\nexport class IgoAppMeasureModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { IgoMap } from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\n\r\n@ToolComponent({\r\n name: 'print',\r\n title: 'igo.integration.tools.print',\r\n icon: 'printer'\r\n})\r\n@Component({\r\n selector: 'igo-print-tool',\r\n templateUrl: './print-tool.component.html'\r\n})\r\nexport class PrintToolComponent {\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n constructor(private mapState: MapState) {}\r\n}\r\n","<igo-print [map]=\"map\"></igo-print>\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\n\r\nimport { IgoPrintModule } from '@igo2/geo';\r\nimport { PrintToolComponent } from './print-tool/print-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoPrintModule],\r\n declarations: [PrintToolComponent],\r\n exports: [PrintToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppPrintModule {\r\n static forRoot(): ModuleWithProviders<IgoAppPrintModule> {\r\n return {\r\n ngModule: IgoAppPrintModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport {\r\n EntityRecord,\r\n EntityStore,\r\n EntityStoreFilterCustomFuncStrategy,\r\n EntityStoreStrategyFuncOptions\r\n} from '@igo2/common';\r\nimport { ConfigService, StorageService } from '@igo2/core';\r\nimport {\r\n SearchResult,\r\n SearchSourceService,\r\n SearchSource,\r\n CommonVectorStyleOptions,\r\n FeatureWorkspace,\r\n FeatureStore,\r\n Feature\r\n} from '@igo2/geo';\r\nimport { BehaviorSubject, Subscription } from 'rxjs';\r\nimport { WorkspaceState } from '../workspace/workspace.state';\r\nimport { MapState } from '../map';\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SearchState {\r\n public searchLayerStores: FeatureStore<Feature>[] = [];\r\n public searchOverlayStyle: CommonVectorStyleOptions = {};\r\n public searchOverlayStyleSelection: CommonVectorStyleOptions = {};\r\n public searchOverlayStyleFocus: CommonVectorStyleOptions = {};\r\n\r\n public focusedOrResolution$$: Subscription;\r\n public selectedOrResolution$$: Subscription;\r\n\r\n readonly searchTermSplitter$: BehaviorSubject<string> = new BehaviorSubject('|');\r\n\r\n readonly searchTerm$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n readonly searchType$: BehaviorSubject<string> = new BehaviorSubject(undefined);\r\n\r\n readonly searchDisabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n readonly searchResultsGeometryEnabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\r\n\r\n readonly searchSettingsChange$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\r\n\r\n readonly selectedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(undefined);\r\n\r\n /**\r\n * Store that holds the search results\r\n */\r\n readonly store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\r\n\r\n /**\r\n * Search types currently enabled in the search source service\r\n */\r\n get searchTypes(): string[] {\r\n return this.searchSourceService\r\n .getEnabledSources()\r\n .map((source: SearchSource) => (source.constructor as any).type);\r\n }\r\n\r\n constructor(\r\n private searchSourceService: SearchSourceService,\r\n private storageService: StorageService,\r\n private workspaceState: WorkspaceState,\r\n private configService: ConfigService,\r\n private mapState: MapState) {\r\n const searchOverlayStyle = this.configService.getConfig('searchOverlayStyle') as {\r\n base?: CommonVectorStyleOptions,\r\n selection?: CommonVectorStyleOptions,\r\n focus?: CommonVectorStyleOptions\r\n };\r\n if (searchOverlayStyle) {\r\n this.searchOverlayStyle = searchOverlayStyle.base;\r\n this.searchOverlayStyleSelection = searchOverlayStyle.selection;\r\n this.searchOverlayStyleFocus = searchOverlayStyle.focus;\r\n }\r\n\r\n const searchResultsGeometryEnabled = this.storageService.get('searchResultsGeometryEnabled') as boolean;\r\n if (searchResultsGeometryEnabled) {\r\n this.searchResultsGeometryEnabled$.next(searchResultsGeometryEnabled);\r\n }\r\n this.store.addStrategy(this.createCustomFilterTermStrategy(), false);\r\n\r\n const wksSource = this.searchSourceService.getSources().find(source => source.getId() === 'workspace');\r\n this.workspaceState.store.entities$\r\n .subscribe(e => {\r\n const searchableWks = e.filter(fw => fw instanceof FeatureWorkspace && fw.layer.options.workspace.searchIndexEnabled);\r\n this.searchSourceService.setWorkspaces(wksSource, searchableWks);\r\n }\r\n );\r\n this.monitorLayerDeletion();\r\n }\r\n\r\n private monitorLayerDeletion() {\r\n this.mapState.map.layers$\r\n .subscribe((layers) => {\r\n this.searchLayerStores.forEach((store) => {\r\n let layer = layers.find(l => l.id === store.layer.id);\r\n if (!layer) {\r\n const index = this.searchLayerStores.indexOf(store);\r\n this.searchLayerStores.splice(index, 1);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private createCustomFilterTermStrategy(): EntityStoreFilterCustomFuncStrategy {\r\n const filterClauseFunc = (record: EntityRecord<SearchResult>) => {\r\n return record.entity.meta.score === 100;\r\n };\r\n return new EntityStoreFilterCustomFuncStrategy({filterClauseFunc} as EntityStoreStrategyFuncOptions);\r\n }\r\n\r\n /**\r\n * Activate custom strategy\r\n *\r\n */\r\n activateCustomFilterTermStrategy() {\r\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (strategy !== undefined) {\r\n strategy.activate();\r\n }\r\n }\r\n\r\n /**\r\n * Deactivate custom strategy\r\n *\r\n */\r\n deactivateCustomFilterTermStrategy() {\r\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\r\n if (strategy !== undefined) {\r\n strategy.deactivate();\r\n }\r\n }\r\n\r\n enableSearch() {\r\n this.searchDisabled$.next(false);\r\n }\r\n\r\n disableSearch() {\r\n this.searchDisabled$.next(true);\r\n }\r\n\r\n setSearchTerm(searchTerm: string) {\r\n this.searchTerm$.next(searchTerm);\r\n }\r\n\r\n setSearchType(searchType: string) {\r\n this.searchSourceService.enableSourcesByType(searchType);\r\n this.searchType$.next(searchType);\r\n }\r\n\r\n setSearchSettingsChange() {\r\n this.searchSettingsChange$.next(true);\r\n }\r\n\r\n setSelectedResult(result: SearchResult) {\r\n this.selectedResult$.next(result);\r\n }\r\n\r\n setSearchResultsGeometryStatus(value) {\r\n this.storageService.set('searchResultsGeometryEnabled', value);\r\n this.searchResultsGeometryEnabled$.next(value);\r\n }\r\n}\r\n","import { Directive, Self, OnInit, OnDestroy, HostListener } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SearchBarComponent } from '@igo2/geo';\r\nimport { SearchState } from '../search.state';\r\n\r\n@Directive({\r\n selector: '[igoSearchBarBinding]'\r\n})\r\nexport class SearchBarBindingDirective implements OnInit, OnDestroy {\r\n\r\n get searchTerm(): string { return this.searchState.searchTerm$.value; }\r\n get searchType(): string { return this.searchState.searchType$.value; }\r\n\r\n private searchTerm$$: Subscription;\r\n private searchType$$: Subscription;\r\n private searchDisabled$$: Subscription;\r\n\r\n constructor(\r\n @Self() private component: SearchBarComponent,\r\n private searchState: SearchState\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe((searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.component.setTerm(searchTerm);\r\n }\r\n });\r\n\r\n this.searchType$$ = this.searchState.searchType$.subscribe((searchType: string) => {\r\n if (searchType !== undefined && searchType !== null) {\r\n this.component.setSearchType(searchType);\r\n }\r\n });\r\n\r\n this.searchDisabled$$ = this.searchState.searchDisabled$.subscribe((searchDisabled: boolean) => {\r\n this.component.disabled = searchDisabled;\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.searchTerm$$.unsubscribe();\r\n this.searchType$$.unsubscribe();\r\n this.searchDisabled$$.unsubscribe();\r\n }\r\n\r\n @HostListener('searchTermChange', ['$event'])\r\n onSearchTermChange(searchTerm?: string) {\r\n if (searchTerm !== this.searchTerm) {\r\n this.searchState.setSearchTerm(searchTerm);\r\n }\r\n }\r\n\r\n @HostListener('searchTypeChange', ['$event'])\r\n onSearchTypeChange(searchType?: string) {\r\n if (searchType !== this.searchType) {\r\n this.searchState.setSearchType(searchType);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoSearchModule } from '@igo2/geo';\r\n\r\nimport { SearchBarBindingDirective } from './search-bar-binding.directive';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [IgoSearchModule],\r\n declarations: [SearchBarBindingDirective],\r\n exports: [SearchBarBindingDirective],\r\n})\r\nexport class IgoAppSearchBarModule {}\r\n","<div *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\" style=\"margin: 10px;\">\r\n <section class=\"mat-typography\">\r\n <h4><strong>{{ 'igo.integration.searchResultsTool.noResults' | translate }}</strong></h4>\r\n <p><strong>{{ 'igo.integration.searchResultsTool.doSearch' | translate }}</strong></p>\r\n <div [innerHTML]=\"'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\"></div>\r\n</section>\r\n</div>\r\n\r\n<igo-flexible\r\n *ngIf=\"(debouncedEmpty$ | async) === false\"\r\n #topPanel\r\n initial=\"100%\"\r\n initialMobile=\"100%\"\r\n collapsed=\"calc(100% - 58px)\"\r\n collapsedMobile=\"calc(100% - 58px)\"\r\n expanded=\"60%\"\r\n expandedMobile=\"60%\"\r\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\">\r\n\r\n <div class=\"igo-content\">\r\n <igo-search-results\r\n [store]=\"store\"\r\n [showIcons]=\"showIcons\"\r\n [term]=\"term\"\r\n [termSplitter]=\"termSplitter\"\r\n [settingsChange$]=\"settingsChange$\"\r\n placeholder=\"false\"\r\n (resultFocus)=\"onResultFocus($event)\"\r\n (resultSelect)=\"onResultSelect($event)\"\r\n (resultUnfocus)=\"onResultUnfocus($event)\"\r\n (resultMouseenter)=\"onResultFocus($event)\"\r\n (resultMouseleave)=\"onResultUnfocus($event)\"\r\n (moreResults)=\"onSearch($event)\"\r\n [map]=\"map\">\r\n <ng-template #igoSearchItemToolbar let-result=\"result\">\r\n <igo-search-add-button\r\n [map]=\"map\"\r\n [store]=\"store\"\r\n [stores]=\"stores\"\r\n [layer]=\"result\"\r\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\">\r\n </igo-search-add-button>\r\n </ng-template>\r\n </igo-search-results>\r\n </div>\r\n\r\n <div igoFlexibleFill class=\"igo-content\">\r\n <igo-panel [title]=\"featureTitle\" *ngIf=\"feature$ | async\" (click)=\"toggleTopPanel($event)\" [cursorPointer]=\"true\">\r\n\r\n <button\r\n mat-icon-button\r\n panelLeftButton\r\n class=\"igo-icon-button\"\r\n (click)=\"toggleTopPanel()\">\r\n <mat-icon [svgIcon]=\"(topPanelState$ | async) === 'collapsed' ? 'arrow-up' : 'arrow-down'\"></mat-icon>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"feature.geometry\"\r\n mat-icon-button\r\n panelRightButton\r\n class=\"igo-icon-button\"\r\n [matTooltip]=\"((isSelectedResultOutOfView$ | async) ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView' : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip') | translate\"\r\n matTooltipShowDelay=\"500\"\r\n (click)=\"zoomToFeatureExtent()\">\r\n <mat-icon\r\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\r\n matBadgeColor=\"accent\"\r\n matBadgeSize=\"small\"\r\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async)===false\" \r\n svgIcon=\"magnify-plus-outline\"></mat-icon>\r\n </button>\r\n\r\n <igo-feature-details\r\n igoFeatureDetailsDirective\r\n [feature]=\"feature$ | async\"\r\n [map]=\"map\"\r\n [toolbox]=\"toolState.toolbox\"\r\n (routingEvent)=\"getRoute()\">\r\n </igo-feature-details>\r\n </igo-panel>\r\n </div>\r\n\r\n</igo-flexible>\r\n","import {\r\n Component,\r\n ChangeDetectionStrategy,\r\n Input,\r\n OnInit,\r\n ElementRef,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { Observable, BehaviorSubject, Subscription, combineLatest } from 'rxjs';\r\nimport { debounceTime, map } from 'rxjs/operators';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olFeature from 'ol/Feature';\r\nimport olPoint from 'ol/geom/Point';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\n\r\nimport pointOnFeature from '@turf/point-on-feature';\r\nimport * as olProj from 'ol/proj';\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n EntityStore,\r\n ToolComponent,\r\n FlexibleState,\r\n getEntityTitle,\r\n FlexibleComponent,\r\n EntityState\r\n} from '@igo2/common';\r\n\r\nimport {\r\n FEATURE,\r\n Feature,\r\n FeatureMotion,\r\n SearchResult,\r\n IgoMap,\r\n moveToOlFeatures,\r\n Research,\r\n featuresAreTooDeepInView,\r\n featureToOl,\r\n featureFromOl,\r\n getCommonVectorStyle,\r\n getCommonVectorSelectedStyle,\r\n computeOlFeaturesExtent,\r\n featuresAreOutOfView,\r\n roundCoordTo,\r\n FeatureStore\r\n} from '@igo2/geo';\r\n\r\nimport { MapState } from '../../map/map.state';\r\n\r\nimport { SearchState } from '../search.state';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { DirectionState } from '../../directions/directions.state';\r\n\r\n/**\r\n * Tool to browse the search results\r\n */\r\n@ToolComponent({\r\n name: 'searchResults',\r\n title: 'igo.integration.tools.searchResults',\r\n icon: 'magnify'\r\n})\r\n@Component({\r\n selector: 'igo-search-results-tool',\r\n templateUrl: './search-results-tool.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SearchResultsToolComponent implements OnInit, OnDestroy {\r\n /**\r\n * to show hide results icons\r\n */\r\n @Input() showIcons: boolean = true;\r\n\r\n /**\r\n * Determine the top panel default state\r\n */\r\n @Input() topPanelStateDefault: string = 'expanded';\r\n\r\n private hasFeatureEmphasisOnSelection: boolean = false;\r\n public saveSearchResultInLayer: boolean = false;\r\n\r\n private showResultsGeometries$$: Subscription;\r\n private getRoute$$: Subscription;\r\n private shownResultsGeometries: Feature[] = [];\r\n private shownResultsEmphasisGeometries: Feature[] = [];\r\n private focusedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(\r\n undefined\r\n );\r\n public isSelectedResultOutOfView$ = new BehaviorSubject(false);\r\n private isSelectedResultOutOfView$$: Subscription;\r\n private abstractFocusedResult: Feature;\r\n private abstractSelectedResult: Feature;\r\n\r\n public debouncedEmpty$ :BehaviorSubject<boolean> = new BehaviorSubject(true);\r\n private debouncedEmpty$$: Subscription;\r\n\r\n /**\r\n * Store holding the search results\r\n * @internal\r\n */\r\n get store(): EntityStore<SearchResult> {\r\n return this.searchState.store;\r\n }\r\n\r\n /**\r\n * Map to display the results on\r\n * @internal\r\n */\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get featureTitle(): string {\r\n return this.feature ? getEntityTitle(this.feature) : undefined;\r\n }\r\n\r\n get feature$(): Observable<Feature> {\r\n return this.store.stateView\r\n .firstBy$((e) => e.state.focused)\r\n .pipe(\r\n map(\r\n (element) =>\r\n (this.feature = element\r\n ? (element.entity.data as Feature)\r\n : undefined)\r\n )\r\n );\r\n }\r\n\r\n public feature: Feature;\r\n\r\n public term = '';\r\n private searchTerm$$: Subscription;\r\n\r\n public settingsChange$ = new BehaviorSubject<boolean>(undefined);\r\n\r\n public topPanelState$ = new BehaviorSubject<FlexibleState>('initial');\r\n private topPanelState$$: Subscription;\r\n\r\n @Input()\r\n set topPanelState(value: FlexibleState) {\r\n this.topPanelState$.next(value);\r\n }\r\n get topPanelState(): FlexibleState {\r\n return this.topPanelState$.value;\r\n }\r\n\r\n get termSplitter(): string {\r\n return this.searchState.searchTermSplitter$.value;\r\n }\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n get stores(): FeatureStore<Feature>[] {\r\n return this.searchState.searchLayerStores;\r\n }\r\n\r\n constructor(\r\n private mapState: MapState,\r\n private searchState: SearchState,\r\n private elRef: ElementRef,\r\n public toolState: ToolState,\r\n private directionState: DirectionState,\r\n configService: ConfigService\r\n ) {\r\n this.hasFeatureEmphasisOnSelection = configService.getConfig(\r\n 'hasFeatureEmphasisOnSelection'\r\n );\r\n this.saveSearchResultInLayer = configService.getConfig(\r\n 'saveSearchResultInLayer'\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe(\r\n (searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null && searchTerm !== '') {\r\n this.term = searchTerm;\r\n this.debouncedEmpty$.next(false);\r\n } else if (searchTerm === '') {\r\n this.debouncedEmpty$.next(true);\r\n }\r\n }\r\n );\r\n\r\n for (const res of this.store.stateView.all$().value) {\r\n if (this.store.state.get(res.entity).selected === true) {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n\r\n this.searchState.searchSettingsChange$.subscribe(() => {\r\n this.settingsChange$.next(true);\r\n });\r\n\r\n this.topPanelState$$ = this.topPanelState$.subscribe(() => {\r\n const igoList = this.computeElementRef()[0];\r\n const selected = this.computeElementRef()[1];\r\n if (selected) {\r\n setTimeout(() => {\r\n // To be sure the flexible component has been displayed yet\r\n if (!this.isScrolledIntoView(igoList, selected)) {\r\n this.adjustTopPanel(igoList, selected);\r\n }\r\n }, FlexibleComponent.transitionTime + 50);\r\n }\r\n });\r\n\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n if (!this.searchState.focusedOrResolution$$) {\r\n this.searchState.focusedOrResolution$$ = combineLatest([\r\n this.focusedResult$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\r\n this.buildResultEmphasis(bunch[0], 'focused')\r\n );\r\n }\r\n\r\n if (!this.searchState.selectedOrResolution$$) {\r\n this.searchState.selectedOrResolution$$ = combineLatest([\r\n this.searchState.selectedResult$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\r\n this.buildResultEmphasis(bunch[0], 'selected')\r\n );\r\n }\r\n }\r\n this.monitorResultOutOfView();\r\n\r\n this.showResultsGeometries$$ = combineLatest([\r\n this.searchState.searchResultsGeometryEnabled$,\r\n this.store.stateView.all$(),\r\n this.focusedResult$,\r\n this.searchState.selectedResult$,\r\n this.searchState.searchTerm$,\r\n this.map.viewController.resolution$\r\n ]).subscribe((bunch: [boolean, { entity: SearchResult, state: EntityState }[], SearchResult, SearchResult, string, number]) => {\r\n\r\n const searchResultsGeometryEnabled = bunch[0];\r\n const searchResults = bunch[1];\r\n\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.clearFeatureEmphasis('shown');\r\n }\r\n this.shownResultsGeometries.map(result => this.map.queryResultsOverlay.removeFeature(result));\r\n const featureToHandleGeom = searchResults\r\n .filter(result =>\r\n result.entity.meta.dataType === FEATURE &&\r\n result.entity.data.geometry &&\r\n !result.state.selected &&\r\n !result.state.focused);\r\n\r\n featureToHandleGeom.map(result => {\r\n if (searchResultsGeometryEnabled) {\r\n result.entity.data.meta.style =\r\n getCommonVectorStyle(\r\n Object.assign(\r\n {},\r\n { feature: result.entity.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyle,\r\n result.entity.style?.base ? result.entity.style.base : {}\r\n ));\r\n this.shownResultsGeometries.push(result.entity.data as Feature);\r\n this.map.queryResultsOverlay.addFeature(result.entity.data as Feature, FeatureMotion.None);\r\n if (this.hasFeatureEmphasisOnSelection) {\r\n this.buildResultEmphasis(result.entity as SearchResult<Feature>, 'shown');\r\n }\r\n }\r\n });\r\n });\r\n\r\n this.debouncedEmpty$$ = this.store.stateView.empty$.pipe(debounceTime(1500)).subscribe(empty => this.debouncedEmpty$.next(empty));\r\n }\r\n\r\n private monitorResultOutOfView() {\r\n this.isSelectedResultOutOfView$$ = combineLatest([\r\n this.map.viewController.state$,\r\n this.searchState.selectedResult$\r\n ])\r\n .pipe(debounceTime(100))\r\n .subscribe((bunch) => {\r\n const selectedResult = bunch[1] as SearchResult<Feature>;\r\n if (!selectedResult) {\r\n this.isSelectedResultOutOfView$.next(false);\r\n return;\r\n }\r\n if (selectedResult.data.geometry) {\r\n const selectedOlFeature = featureToOl(\r\n selectedResult.data,\r\n this.map.projection\r\n );\r\n const selectedOlFeatureExtent = computeOlFeaturesExtent(this.map, [\r\n selectedOlFeature\r\n ]);\r\n this.isSelectedResultOutOfView$.next(\r\n featuresAreOutOfView(this.map, selectedOlFeatureExtent)\r\n );\r\n }\r\n });\r\n }\r\n\r\n private buildResultEmphasis(\r\n result: SearchResult<Feature>,\r\n trigger: 'selected' | 'focused' | 'shown' | undefined\r\n ) {\r\n if (trigger !== 'shown') {\r\n this.clearFeatureEmphasis(trigger);\r\n }\r\n if (!result || !result.data.geometry) {\r\n return;\r\n }\r\n const myOlFeature = featureToOl(result.data, this.map.projection);\r\n const olGeometry = myOlFeature.getGeometry();\r\n if (featuresAreTooDeepInView(this.map, olGeometry.getExtent() as [number, number, number, number], 0.0025)) {\r\n const extent = olGeometry.getExtent();\r\n const x = extent[0] + (extent[2] - extent[0]) / 2;\r\n const y = extent[1] + (extent[3] - extent[1]) / 2;\r\n const feature1 = new olFeature({\r\n name: `${trigger}AbstractResult'`,\r\n geometry: new olPoint([x, y])\r\n });\r\n const abstractResult = featureFromOl(feature1, this.map.projection);\r\n\r\n let computedStyle;\r\n let zIndexOffset = 0;\r\n\r\n switch (trigger) {\r\n case 'focused':\r\n computedStyle = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n zIndexOffset = 2;\r\n break;\r\n case 'shown':\r\n computedStyle = getCommonVectorStyle(Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyle,\r\n result.style?.base ? result.style.base : {}));\r\n break;\r\n case 'selected':\r\n computedStyle = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: abstractResult },\r\n this.searchState.searchOverlayStyleSelection,\r\n result.style?.selection ? result.style.selection : {}));\r\n zIndexOffset = 1;\r\n break;\r\n }\r\n abstractResult.meta.style = computedStyle;\r\n abstractResult.meta.style.setZIndex(2000 + zIndexOffset);\r\n this.map.searchResultsOverlay.addFeature(abstractResult, FeatureMotion.None);\r\n if (trigger === 'focused') {\r\n this.abstractFocusedResult = abstractResult;\r\n }\r\n if (trigger === 'selected') {\r\n this.abstractSelectedResult = abstractResult;\r\n }\r\n if (trigger === 'shown') {\r\n this.shownResultsEmphasisGeometries.push(abstractResult);\r\n }\r\n } else {\r\n this.clearFeatureEmphasis(trigger);\r\n }\r\n }\r\n\r\n private clearFeatureEmphasis(trigger: 'selected' | 'focused' | 'shown') {\r\n if (trigger === 'focused' && this.abstractFocusedResult) {\r\n this.map.searchResultsOverlay.removeFeature(this.abstractFocusedResult);\r\n this.abstractFocusedResult = undefined;\r\n }\r\n if (trigger === 'selected' && this.abstractSelectedResult) {\r\n this.map.searchResultsOverlay.removeFeature(this.abstractSelectedResult);\r\n this.abstractSelectedResult = undefined;\r\n }\r\n if (trigger === 'shown') {\r\n this.shownResultsEmphasisGeometries.map(shownResult => this.map.searchResultsOverlay.removeFeature(shownResult));\r\n this.shownResultsEmphasisGeometries = [];\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.topPanelState$$.unsubscribe();\r\n this.searchTerm$$.unsubscribe();\r\n if (this.isSelectedResultOutOfView$$) {\r\n this.isSelectedResultOutOfView$$.unsubscribe();\r\n }\r\n if (this.showResultsGeometries$$) {\r\n this.showResultsGeometries$$.unsubscribe();\r\n }\r\n if (this.getRoute$$) {\r\n this.getRoute$$.unsubscribe();\r\n }\r\n if (this.debouncedEmpty$$) {\r\n this.debouncedEmpty$$.unsubscribe();\r\n }\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map when it's being focused\r\n * @internal\r\n * @param result A search result that could be a feature\r\n */\r\n onResultFocus(result: SearchResult) {\r\n this.focusedResult$.next(result);\r\n if (result.meta.dataType === FEATURE && result.data.geometry) {\r\n result.data.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: result.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n\r\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\r\n if (feature) {\r\n feature.setStyle(result.data.meta.style);\r\n return;\r\n }\r\n this.map.searchResultsOverlay.addFeature(result.data as Feature, FeatureMotion.None);\r\n }\r\n }\r\n\r\n onResultUnfocus(result: SearchResult) {\r\n this.focusedResult$.next(undefined);\r\n if (result.meta.dataType !== FEATURE) {\r\n return;\r\n }\r\n\r\n if (this.store.state.get(result).selected === true) {\r\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\r\n if (feature) {\r\n const style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature: result.data as Feature | olFeature<OlGeometry> },\r\n this.searchState.searchOverlayStyleFocus,\r\n result.style?.focus ? result.style.focus : {}));\r\n feature.setStyle(style);\r\n }\r\n return;\r\n }\r\n this.map.searchResultsOverlay.removeFeature(result.data as Feature);\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map when it's being selected\r\n * @internal\r\n * @param result A search result that could be a feature or some layer options\r\n */\r\n onResultSelect(result: SearchResult) {\r\n this.map.searchResultsOverlay.dataSource.ol.clear();\r\n this.tryAddFeatureToMap(result);\r\n this.searchState.setSelectedResult(result);\r\n\r\n if (this.topPanelState === 'initial') {\r\n if (this.topPanelStateDefault !== 'collapsed') {\r\n this.topPanelState = 'expanded';\r\n } else {\r\n this.topPanelState = 'collapsed';\r\n }\r\n }\r\n\r\n if (this.topPanelState === 'expanded') {\r\n const igoList = this.computeElementRef()[0];\r\n const selected = this.computeElementRef()[1];\r\n if (!this.isScrolledIntoView(igoList, selected)) {\r\n this.adjustTopPanel(igoList, selected);\r\n }\r\n }\r\n }\r\n\r\n onSearch(event: { research: Research; results: SearchResult[] }) {\r\n const results = event.results;\r\n const newResults = this.store.entities$.value\r\n .filter((result: SearchResult) => result.source !== event.research.source)\r\n .concat(results);\r\n\r\n this.store.load(newResults);\r\n\r\n for (const res of this.store.all()) {\r\n if (\r\n this.store.state.get(res).focused === true &&\r\n this.store.state.get(res).selected !== true\r\n ) {\r\n this.store.state.update(res, { focused: false }, true);\r\n }\r\n }\r\n\r\n setTimeout(() => {\r\n const igoList = this.elRef.nativeElement.querySelector('igo-list');\r\n let moreResults;\r\n event.research.request.subscribe((source) => {\r\n if (!source[0] || !source[0].source) {\r\n moreResults = null;\r\n } else if (source[0].source.getId() === 'icherche') {\r\n moreResults = igoList.querySelector('.icherche .moreResults');\r\n } else if (source[0].source.getId() === 'ilayer') {\r\n moreResults = igoList.querySelector('.ilayer .moreResults');\r\n } else if (source[0].source.getId() === 'nominatim') {\r\n moreResults = igoList.querySelector('.nominatim .moreResults');\r\n } else {\r\n moreResults = igoList.querySelector('.' + source[0].source.getId() + ' .moreResults');\r\n }\r\n\r\n if (\r\n moreResults !== null &&\r\n !this.isScrolledIntoView(igoList, moreResults)\r\n ) {\r\n igoList.scrollTop =\r\n moreResults.offsetTop +\r\n moreResults.offsetHeight -\r\n igoList.clientHeight;\r\n }\r\n });\r\n }, 250);\r\n }\r\n\r\n computeElementRef() {\r\n const items = document.getElementsByTagName('igo-search-results-item');\r\n const igoList = this.elRef.nativeElement.getElementsByTagName(\r\n 'igo-list'\r\n )[0];\r\n let selectedItem;\r\n // eslint-disable-next-line\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].className.includes('igo-list-item-selected')) {\r\n selectedItem = items[i];\r\n }\r\n }\r\n return [igoList, selectedItem];\r\n }\r\n\r\n adjustTopPanel(elemSource, elem) {\r\n if (!this.isScrolledIntoView(elemSource, elem)) {\r\n elemSource.scrollTop =\r\n elem.offsetTop +\r\n elem.children[0].offsetHeight -\r\n elemSource.clientHeight;\r\n }\r\n }\r\n\r\n toggleTopPanel(event?: MouseEvent) {\r\n if(event && ((event.target as any)?.className !== 'igo-panel-title')) {\r\n return;\r\n } else {\r\n if (this.topPanelState === 'expanded') {\r\n this.topPanelState = 'collapsed';\r\n } else {\r\n this.topPanelState = 'expanded';\r\n }\r\n }\r\n }\r\n\r\n zoomToFeatureExtent() {\r\n if (this.feature.geometry) {\r\n const localOlFeature = this.format.readFeature(this.feature, {\r\n dataProjection: this.feature.projection,\r\n featureProjection: this.map.projection\r\n });\r\n moveToOlFeatures(this.map, [localOlFeature], FeatureMotion.Zoom);\r\n }\r\n }\r\n\r\n /**\r\n * Try to add a feature to the map overlay\r\n * @param result A search result that could be a feature\r\n */\r\n private tryAddFeatureToMap(result: SearchResult) {\r\n if (result.meta.dataType !== FEATURE) {\r\n return undefined;\r\n }\r\n const feature = (result as SearchResult<Feature>).data;\r\n\r\n // Somethimes features have no geometry. It happens with some GetFeatureInfo\r\n if (!feature.geometry) {\r\n return;\r\n }\r\n\r\n feature.meta.style = getCommonVectorSelectedStyle(\r\n Object.assign({},\r\n { feature },\r\n this.searchState.searchOverlayStyleSelection,\r\n result.style?.selection ? result.style.selection : {}));\r\n\r\n this.map.searchResultsOverlay.addFeature(feature);\r\n }\r\n\r\n isScrolledIntoView(elemSource, elem) {\r\n const padding = 6;\r\n const docViewTop = elemSource.scrollTop;\r\n const docViewBottom = docViewTop + elemSource.clientHeight;\r\n\r\n const elemTop = elem.offsetTop;\r\n const elemBottom = elemTop + elem.clientHeight + padding;\r\n return elemBottom <= docViewBottom && elemTop >= docViewTop;\r\n }\r\n\r\n getRoute() {\r\n this.toolState.toolbox.activateTool('directions');\r\n this.directionState.stopsStore.clearStops();\r\n setTimeout(() => {\r\n let routingCoordLoaded = false;\r\n if (this.getRoute$$) { this.getRoute$$.unsubscribe(); }\r\n this.getRoute$$ = this.directionState.stopsStore.storeInitialized$.subscribe((init: boolean) => {\r\n if (this.directionState.stopsStore.storeInitialized$.value && !routingCoordLoaded) {\r\n routingCoordLoaded = true;\r\n const stop = this.directionState.stopsStore.all().find((e) => e.position === 1);\r\n let coord;\r\n if (this.feature.geometry) {\r\n if (this.feature.geometry.type === 'Point') {\r\n coord = [this.feature.geometry.coordinates[0], this.feature.geometry.coordinates[1]];\r\n } else {\r\n const point = pointOnFeature(this.feature.geometry);\r\n coord = [point.geometry.coordinates[0], point.geometry.coordinates[1]];\r\n }\r\n }\r\n stop.text = this.featureTitle;\r\n stop.coordinates = coord;\r\n this.directionState.stopsStore.update(stop);\r\n if (this.map.geolocationController.position$.value) {\r\n const currentPos = this.map.geolocationController.position$.value;\r\n const stop = this.directionState.stopsStore.all().find((e) => e.position === 0);\r\n const currentCoord = olProj.transform(currentPos.position, currentPos.projection, 'EPSG:4326');\r\n const coord: [number,number] = roundCoordTo([currentCoord[0], currentCoord[1]], 6);\r\n stop.text = coord.join(',');\r\n stop.coordinates = coord;\r\n this.directionState.stopsStore.update(stop);\r\n }\r\n\r\n }\r\n });\r\n }, 250);\r\n }\r\n}\r\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoFlexibleModule, IgoCustomHtmlModule, IgoPanelModule } from '@igo2/common';\r\nimport {\r\n IgoFeatureModule,\r\n IgoSearchModule,\r\n IgoFeatureDetailsModule\r\n} from '@igo2/geo';\r\n\r\nimport { SearchResultsToolComponent } from './search-results-tool.component';\r\n\r\n/**\r\n * @ignore\r\n */\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n MatIconModule,\r\n MatBadgeModule,\r\n MatTooltipModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n IgoFeatureModule,\r\n IgoSearchModule,\r\n IgoFlexibleModule,\r\n IgoPanelModule,\r\n IgoFeatureDetailsModule,\r\n IgoCustomHtmlModule\r\n ],\r\n declarations: [SearchResultsToolComponent],\r\n exports: [SearchResultsToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppSearchResultsToolModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppSearchBarModule } from './search-bar/search-bar.module';\r\nimport { IgoAppSearchResultsToolModule } from './search-results-tool/search-results-tool.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppSearchBarModule,\r\n IgoAppSearchResultsToolModule\r\n ],\r\n})\r\nexport class IgoAppSearchModule {}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'ogcFilter',\r\n title: 'igo.integration.tools.ogcFilter',\r\n icon: 'filter'\r\n})\r\n@Component({\r\n selector: 'igo-ogc-filter-tool',\r\n templateUrl: './ogc-filter-tool.component.html'\r\n})\r\nexport class OgcFilterToolComponent {\r\n constructor() {}\r\n}\r\n","<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\r\n\r\n\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\n\r\n@ToolComponent({\r\n name: 'timeFilter',\r\n title: 'igo.integration.tools.timeFilter',\r\n icon: 'history'\r\n})\r\n@Component({\r\n selector: 'igo-time-filter-tool',\r\n templateUrl: './time-filter-tool.component.html'\r\n})\r\nexport class TimeFilterToolComponent {\r\n constructor() {}\r\n}\r\n","<igo-time-filter-list igoTimeFilterListBinding></igo-time-filter-list>\r\n","<igo-panel>\r\n <igo-spatial-filter-type\r\n [store]=\"spatialListStore\"\r\n [selectedQueryType]=\"queryType\"\r\n [zone]=\"zone\"\r\n [layers]=\"activeLayers\"\r\n (eventType)=\"getOutputType($event)\"\r\n (eventQueryType)=\"getOutputQueryType($event)\"\r\n (zoneChange)=\"onZoneChange($event)\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (bufferChange)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\">\r\n </igo-spatial-filter-type>\r\n\r\n <igo-spatial-filter-item\r\n [type]=\"type\"\r\n [queryType]=\"queryType\"\r\n [map]=\"map\"\r\n [zone]=\"zone\"\r\n [loading]=\"loading\"\r\n [store]=\"store\"\r\n [layers]=\"activeLayers\"\r\n [allLayers]=\"layers\"\r\n [thematicLength]=\"thematicLength\"\r\n (radiusEvent)=\"buffer = $event\"\r\n (bufferEvent)=\"buffer = $event\"\r\n (measureUnitChange)=\"measureUnit = $event\"\r\n (freehandControl)=\"freehandDrawIsActive = $event\"\r\n (drawZoneEvent)=\"zone = $event\"\r\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\r\n (itemTypeChange)=\"itemType = $event\"\r\n (thematicChange)=\"thematics = $event\"\r\n (toggleSearch)=\"getOutputToggleSearch()\"\r\n (clearButtonEvent)=\"clearMap()\"\r\n (clearSearchEvent)=\"getOutputClearSearch()\"\r\n (export)=\"activateExportTool()\"\r\n (openWorkspace)=\"activateWorkspace()\"\r\n (entityChange)=\"activateWorkspace($event)\">\r\n </igo-spatial-filter-item>\r\n</igo-panel>\r\n\r\n<igo-panel>\r\n <ng-container *ngIf=\"selectedFeature$ | async as feature\">\r\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\r\n </ng-container>\r\n</igo-panel>","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { Observable, forkJoin, Subject } from 'rxjs';\r\nimport { tap, take, takeUntil } from 'rxjs/operators';\r\n\r\nimport {\r\n IgoMap,\r\n DataSourceService,\r\n LayerService,\r\n Feature,\r\n moveToOlFeatures,\r\n FeatureMotion,\r\n ClusterDataSource,\r\n featureToOl,\r\n DataSource,\r\n QueryableDataSourceOptions,\r\n SpatialFilterService,\r\n SpatialFilterType,\r\n SpatialFilterItemType,\r\n SpatialFilterQueryType,\r\n SpatialFilterThematic,\r\n Layer,\r\n VectorLayer,\r\n createOverlayMarkerStyle,\r\n ExportOptions,\r\n MeasureLengthUnit\r\n} from '@igo2/geo';\r\nimport { EntityStore, ToolComponent } from '@igo2/common';\r\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\r\nimport olSourceVector from 'ol/source/Vector';\r\nimport olSourceCluster from 'ol/source/Cluster';\r\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { MapState } from '../../map/map.state';\r\nimport { ImportExportMode, ImportExportState } from './../../import-export/import-export.state';\r\nimport * as olstyle from 'ol/style';\r\nimport { MessageService, LanguageService } from '@igo2/core';\r\nimport { ToolState } from '../../tool/tool.state';\r\nimport { WorkspaceState } from '../../workspace/workspace.state';\r\nimport { EventsKey } from 'ol/events';\r\n\r\n/**\r\n * Tool to apply spatial filter\r\n */\r\n@ToolComponent({\r\n name: 'spatialFilter',\r\n title: 'igo.integration.tools.spatialFilter',\r\n icon: 'selection-marker'\r\n})\r\n/**\r\n * Spatial Filter Type\r\n */\r\n@Component({\r\n selector: 'igo-spatial-filter-tool',\r\n templateUrl: './spatial-filter-tool.component.html',\r\n styleUrls: ['./spatial-filter-tool.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SpatialFilterToolComponent implements OnInit, OnDestroy {\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n @Input() type: SpatialFilterType;\r\n @Input() itemType: SpatialFilterItemType = SpatialFilterItemType.Address;\r\n @Input() freehandDrawIsActive: boolean;\r\n\r\n public layers: Layer[] = [];\r\n public activeLayers: Layer[] = [];\r\n\r\n public queryType: SpatialFilterQueryType;\r\n public thematics: SpatialFilterThematic[];\r\n public zone: Feature;\r\n public zoneWithBuffer: Feature;\r\n public buffer = 0;\r\n\r\n public iterator = 1;\r\n\r\n public selectedFeature$: BehaviorSubject<Feature> = new BehaviorSubject(\r\n undefined\r\n );\r\n\r\n private format = new olFormatGeoJSON();\r\n\r\n public store: EntityStore<Feature> = new EntityStore<Feature>([]); // Store to print results at the end\r\n\r\n public spatialListStore: EntityStore<Feature> = new EntityStore<Feature>([]);\r\n\r\n public loading = false;\r\n\r\n public thematicLength = 0;\r\n\r\n public measureUnit: MeasureLengthUnit = MeasureLengthUnit.Meters;\r\n private unsubscribe$ = new Subject<void>();\r\n\r\n private moveendKey: EventsKey;\r\n\r\n public defaultStyle: olstyle.Style | ((feature, resolution) => olstyle.Style);\r\n\r\n constructor(\r\n private matIconRegistry: MatIconRegistry,\r\n private spatialFilterService: SpatialFilterService,\r\n private dataSourceService: DataSourceService,\r\n private layerService: LayerService,\r\n private mapState: MapState,\r\n private messageService: MessageService,\r\n private languageService: LanguageService,\r\n private importExportState: ImportExportState,\r\n private toolState: ToolState,\r\n private workspaceState: WorkspaceState,\r\n private cdRef: ChangeDetectorRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n for (const layer of this.map.layers) {\r\n if (layer.title && layer.title.includes(this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter'))) {\r\n this.layers.push(layer);\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.unsubscribe$.next();\r\n this.unsubscribe$.complete();\r\n }\r\n\r\n getOutputType(event: SpatialFilterType) {\r\n this.type = event;\r\n this.queryType = undefined;\r\n }\r\n\r\n getOutputQueryType(event: SpatialFilterQueryType) {\r\n this.queryType = event;\r\n if (this.queryType) {\r\n this.loadFilterList();\r\n }\r\n }\r\n\r\n activateExportTool() {\r\n const ids = [];\r\n const re = new RegExp('^Zone \\\\d+');\r\n for (const layer of this.layers) {\r\n if (!layer.title.match(re)) {\r\n ids.push(layer.id);\r\n }\r\n }\r\n this.importExportState.setMode(ImportExportMode.export);\r\n this.importExportState.setsExportOptions({ layers: ids } as ExportOptions);\r\n this.toolState.toolbox.activateTool('importExport');\r\n }\r\n\r\n activateWorkspace(record?) {\r\n let layerToOpenWks;\r\n this.workspaceState.store.entities$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n if (!record && this.activeLayers.length && this.workspaceState.store.all().length > 1) {\r\n if (this.itemType === SpatialFilterItemType.Thematics) {\r\n for (const thematic of this.thematics) {\r\n if (!thematic.zeroResults) {\r\n layerToOpenWks = this.activeLayers.find(layer => layer.title.includes(thematic.name + ' ' + this.iterator.toString()));\r\n break;\r\n }\r\n }\r\n } else {\r\n const title = 'Adresses ' + this.iterator.toString();\r\n this.activeLayers.forEach((layer) => {\r\n if (layer.title.includes(title)) {\r\n layerToOpenWks = layer;\r\n }\r\n });\r\n }\r\n\r\n if (layerToOpenWks) {\r\n this.workspaceState.workspacePanelExpanded = true;\r\n this.workspaceState.setActiveWorkspaceById(layerToOpenWks.id);\r\n }\r\n } else if (record && this.activeLayers.length && this.workspaceState.store.all().length > 1) {\r\n this.selectWorkspaceEntity(record);\r\n this.moveendKey = this.map.ol.on('moveend', () => {\r\n this.selectWorkspaceEntity(record);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private selectWorkspaceEntity(record) {\r\n this.workspaceState.store.all().forEach(workspace => {\r\n workspace.entityStore.state.updateAll({selected: false});\r\n if (workspace.title.includes(record.added[0].meta.title)) {\r\n this.workspaceState.setActiveWorkspaceById(workspace.id);\r\n workspace.entityStore.state.updateMany(record.added, {selected: true});\r\n }\r\n });\r\n }\r\n\r\n private loadFilterList() {\r\n this.spatialFilterService\r\n .loadFilterList(this.queryType)\r\n .pipe(takeUntil(this.unsubscribe$))\r\n .subscribe((features: Feature[]) => {\r\n features.sort((a, b) => {\r\n if (a.properties.nom < b.properties.nom) {\r\n return -1;\r\n }\r\n if (a.properties.nom > b.properties.nom) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n this.spatialListStore.clear();\r\n this.spatialListStore.load(features);\r\n });\r\n }\r\n\r\n getOutputToggleSearch() {\r\n this.loadThematics();\r\n }\r\n\r\n getOutputClearSearch() {\r\n this.zone = undefined;\r\n this.queryType = undefined;\r\n }\r\n\r\n clearMap() {\r\n this.map.removeLayers(this.layers);\r\n this.layers = [];\r\n this.activeLayers = [];\r\n this.thematicLength = 0;\r\n this.iterator = 1;\r\n if (this.type === SpatialFilterType.Predefined) {\r\n this.zone = undefined;\r\n this.queryType = undefined;\r\n }\r\n }\r\n\r\n private loadThematics() {\r\n this.loading = true;\r\n let zeroResults = true;\r\n let thematics;\r\n if (this.buffer === 0 || this.type === SpatialFilterType.Point) {\r\n this.tryAddFeaturesToMap([this.zone]);\r\n }\r\n if (this.itemType !== SpatialFilterItemType.Thematics) {\r\n const theme: SpatialFilterThematic = {\r\n name: ''\r\n };\r\n thematics = [theme];\r\n } else {\r\n thematics = this.thematics;\r\n }\r\n if (this.measureUnit === MeasureLengthUnit.Kilometers && this.type !== SpatialFilterType.Point) {\r\n this.buffer = this.buffer * 1000;\r\n }\r\n if (this.type === SpatialFilterType.Polygon) {\r\n this.buffer = 0; // to avoid buffer enter a second time in terrAPI\r\n }\r\n\r\n const observables$: Observable<Feature[]>[] = [];\r\n thematics.forEach(thematic => {\r\n observables$.push(\r\n this.spatialFilterService\r\n .loadFilterItem(\r\n this.zone,\r\n this.itemType,\r\n this.queryType,\r\n thematic,\r\n this.buffer\r\n )\r\n .pipe(\r\n tap((features: Feature[]) => {\r\n this.store.insertMany(features);\r\n const featuresPoint: Feature[] = [];\r\n const featuresLinePoly: Feature[] = [];\r\n let idPoint;\r\n let idLinePoly;\r\n features.forEach(feature => {\r\n if (feature.geometry.type === 'Point') {\r\n feature.properties.longitude = feature.geometry.coordinates[0];\r\n feature.properties.latitude = feature.geometry.coordinates[1];\r\n featuresPoint.push(feature);\r\n idPoint = feature.meta.id;\r\n } else {\r\n featuresLinePoly.push(feature);\r\n idLinePoly = feature.meta.id;\r\n }\r\n });\r\n\r\n this.tryAddPointToMap(featuresPoint, idPoint);\r\n this.tryAddLayerToMap(featuresLinePoly, idLinePoly);\r\n if (features.length) {\r\n zeroResults = false;\r\n this.thematicLength += 1;\r\n thematic.zeroResults = false;\r\n this.cdRef.detectChanges();\r\n } else {\r\n thematic.zeroResults = true;\r\n }\r\n\r\n if (features.length >= 10000) {\r\n this.messageService.alert(\r\n 'igo.geo.spatialFilter.maxSizeAlert',\r\n 'igo.geo.spatialFilter.warning',\r\n { timeOut: 10000 }\r\n );\r\n }\r\n })\r\n )\r\n );\r\n });\r\n\r\n forkJoin(observables$).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\r\n this.loading = false;\r\n if (zeroResults) {\r\n this.messageService.alert(\r\n 'igo.geo.spatialFilter.zeroResults',\r\n 'igo.geo.spatialFilter.warning',\r\n { timeOut: 10000 }\r\n );\r\n }\r\n });\r\n }\r\n\r\n onZoneChange(feature: Feature, buffer?: boolean) {\r\n this.zone = feature;\r\n if (feature) {\r\n buffer ? this.tryAddFeaturesToMap([feature], true) : this.tryAddFeaturesToMap([feature]);\r\n this.zoomToFeatureExtent(feature);\r\n }\r\n }\r\n\r\n /**\r\n * Try to add zone feature to the map overlay\r\n */\r\n public tryAddFeaturesToMap(features: Feature[], buffer?: boolean) {\r\n let i = 1;\r\n for (const feature of features) {\r\n if (this.type === SpatialFilterType.Predefined) {\r\n for (const layer of this.layers) {\r\n if (\r\n layer.options._internal &&\r\n layer.options._internal.code === feature.properties.code &&\r\n !buffer\r\n ) {\r\n if (!layer.title?.startsWith('Zone')) {\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n }\r\n return;\r\n }\r\n if (layer.title?.startsWith('Zone')) {\r\n this.activeLayers = [];\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n this.map.removeLayer(layer);\r\n }\r\n }\r\n } else {\r\n if (buffer) {\r\n for (const layer of this.activeLayers) {\r\n if (this.activeLayers.length === 1 && layer.title?.startsWith('Zone')) {\r\n const index = this.layers.indexOf(layer);\r\n this.layers.splice(index, 1);\r\n this.map.removeLayer(layer);\r\n }\r\n }\r\n }\r\n this.activeLayers = [];\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith('Zone')) {\r\n i++;\r\n }\r\n }\r\n this.defaultStyle = (_feature, resolution) => {\r\n const coordinates = (features[0] as any).coordinates;\r\n return new olstyle.Style({\r\n image: new olstyle.Circle({\r\n radius: coordinates\r\n ? this.buffer /\r\n Math.cos((Math.PI / 180) * coordinates[1]) /\r\n resolution\r\n : undefined,\r\n fill: new olstyle.Fill({\r\n color: 'rgba(200, 200, 20, 0.2)'\r\n }),\r\n stroke: new olstyle.Stroke({\r\n width: 1,\r\n color: 'orange'\r\n })\r\n }),\r\n stroke: new olstyle.Stroke({\r\n width: 1,\r\n color: 'orange'\r\n }),\r\n fill: new olstyle.Fill({\r\n color: 'rgba(200, 200, 20, 0.2)'\r\n })\r\n });\r\n };\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'vector',\r\n queryable: true\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: DataSource) => {\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: ('Zone ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n workspace: { enabled: true },\r\n _internal: {\r\n code:\r\n this.type === SpatialFilterType.Predefined\r\n ? feature.properties.code\r\n : undefined\r\n },\r\n source: dataSource,\r\n visible: true\r\n }) as VectorLayer;\r\n const featuresOl = features.map(f => {\r\n return featureToOl(f, this.map.projection);\r\n });\r\n if (this.type !== SpatialFilterType.Predefined) {\r\n const type = this.type === SpatialFilterType.Point ? 'Cercle' : 'Polygone';\r\n featuresOl[0].set('nom', 'Zone', true);\r\n featuresOl[0].set('type', type, true);\r\n }\r\n const ol = dataSource.ol as olSourceVector<OlGeometry> | olSourceCluster;\r\n ol.addFeatures(featuresOl);\r\n olLayer.ol.setStyle(this.defaultStyle);\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.activeLayers.push(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Try to add point features to the map\r\n * Necessary to create clusters\r\n */\r\n private tryAddPointToMap(features: Feature[], id) {\r\n let i = 1;\r\n if (features.length) {\r\n if (this.map === undefined) {\r\n return;\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith(features[0].meta.title)) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'cluster',\r\n id,\r\n queryable: true,\r\n distance: 120,\r\n meta: {\r\n title: 'Cluster'\r\n }\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: ClusterDataSource) => {\r\n const icon = features[0].meta.icon;\r\n let style: olstyle.Style;\r\n if (!icon) {\r\n style = createOverlayMarkerStyle();\r\n } else {\r\n style = this.createSvgIcon(icon) || createOverlayMarkerStyle();\r\n }\r\n\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n source: dataSource,\r\n visible: true,\r\n style\r\n });\r\n\r\n const featuresOl = features.map(feature => {\r\n return featureToOl(feature, this.map.projection);\r\n });\r\n const ol = dataSource.ol as olSourceCluster;\r\n ol.getSource().addFeatures(featuresOl);\r\n if (this.layers.find(layer => layer.id === olLayer.id)) {\r\n this.map.removeLayer(\r\n this.layers.find(layer => layer.id === olLayer.id)\r\n );\r\n i = i - 1;\r\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string;\r\n olLayer.options.title = olLayer.title;\r\n }\r\n this.iterator = i;\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.pushLayer(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n private createSvgIcon(icon): olstyle.Style {\r\n let style: olstyle.Style;\r\n this.matIconRegistry.getNamedSvgIcon(icon).subscribe(svgObj => {\r\n const xmlSerializer = new XMLSerializer();\r\n svgObj.setAttribute('width', '30');\r\n svgObj.setAttribute('height', '30');\r\n svgObj.setAttribute('fill', 'rgba(0, 128, 255)');\r\n svgObj.setAttribute('stroke', 'white');\r\n const svg = xmlSerializer.serializeToString(svgObj);\r\n style = new olstyle.Style({\r\n image: new olstyle.Icon({\r\n src: 'data:image/svg+xml;utf8,' + svg\r\n })\r\n });\r\n });\r\n return style;\r\n }\r\n /**\r\n * Try to add line or polygon features to the map\r\n */\r\n private tryAddLayerToMap(features: Feature[], id) {\r\n let i = 1;\r\n if (features.length) {\r\n if (this.map === undefined) {\r\n return;\r\n }\r\n for (const layer of this.layers) {\r\n if (layer.title?.startsWith(features[0].meta.title)) {\r\n i++;\r\n }\r\n }\r\n this.dataSourceService\r\n .createAsyncDataSource({\r\n type: 'vector',\r\n id,\r\n queryable: true\r\n } as QueryableDataSourceOptions)\r\n .pipe(take(1))\r\n .subscribe((dataSource: DataSource) => {\r\n const olLayer = this.layerService.createLayer({\r\n isIgoInternalLayer: true,\r\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string,\r\n source: dataSource,\r\n visible: true\r\n });\r\n const featuresOl = features.map(feature => {\r\n return featureToOl(feature, this.map.projection);\r\n });\r\n const ol = dataSource.ol as olSourceVector<OlGeometry>;\r\n ol.addFeatures(featuresOl);\r\n if (this.layers.find(layer => layer.id === olLayer.id)) {\r\n this.map.removeLayer(\r\n this.layers.find(layer => layer.id === olLayer.id)\r\n );\r\n i = i - 1;\r\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\r\n 'igo.geo.spatialFilter.spatialFilter'\r\n )) as string;\r\n olLayer.options.title = olLayer.title;\r\n }\r\n this.map.addLayer(olLayer);\r\n this.layers.push(olLayer);\r\n this.pushLayer(olLayer);\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n zoomToFeatureExtent(feature) {\r\n if (feature) {\r\n const olFeature = this.format.readFeature(feature, {\r\n dataProjection: feature.projection,\r\n featureProjection: this.map.projection\r\n });\r\n moveToOlFeatures(this.map, [olFeature], FeatureMotion.Zoom);\r\n }\r\n }\r\n\r\n pushLayer(layer) {\r\n for (const lay of this.activeLayers) {\r\n if (lay.id === layer.id) {\r\n return;\r\n }\r\n }\r\n\r\n this.activeLayers.push(layer);\r\n }\r\n}\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\r\n} from '@angular/animations';\r\n\r\nexport function toolSlideInOut(\r\n speed = '300ms',\r\n type = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('toolSlideInOut', [\r\n state(\r\n 'enter',\r\n style({\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n transition('void => enter', animate(speed + ' ' + type))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../../map/map.state';\r\nimport { IgoMap, Layer } from '@igo2/geo';\r\nimport { toolSlideInOut } from './active-time-filter-tool.animation';\r\n\r\n@ToolComponent({\r\n name: 'activeTimeFilter',\r\n title: 'igo.integration.tools.timeFilter',\r\n icon: 'history',\r\n parent: 'mapTools'\r\n})\r\n@Component({\r\n selector: 'igo-active-time-filter-tool',\r\n templateUrl: './active-time-filter-tool.component.html',\r\n animations: [toolSlideInOut()]\r\n})\r\nexport class ActiveTimeFilterToolComponent {\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layer(): Layer {\r\n for (const lay of this.map.layers) {\r\n if (lay.options.active === true) {\r\n return lay;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n public animate = 'enter';\r\n\r\n constructor(public mapState: MapState) {}\r\n}\r\n","<igo-time-filter-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-time-filter-item>\r\n","import {\r\n trigger,\r\n state,\r\n style,\r\n transition,\r\n animate,\r\n AnimationTriggerMetadata\r\n} from '@angular/animations';\r\n\r\nexport function toolSlideInOut(\r\n speed = '300ms',\r\n type = 'ease-in-out'\r\n): AnimationTriggerMetadata {\r\n return trigger('toolSlideInOut', [\r\n state(\r\n 'enter',\r\n style({\r\n transform: 'translateX(100%)'\r\n })\r\n ),\r\n transition('void => enter', animate(speed + ' ' + type))\r\n ]);\r\n}\r\n","import { Component } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { MapState } from '../../map/map.state';\r\nimport { Layer, IgoMap } from '@igo2/geo';\r\n\r\nimport { toolSlideInOut } from './active-ogc-filter-tool.animation';\r\n\r\n@ToolComponent({\r\n name: 'activeOgcFilter',\r\n title: 'igo.integration.tools.ogcFilter',\r\n icon: 'filter',\r\n parent: 'mapTools'\r\n})\r\n@Component({\r\n selector: 'igo-active-ogc-filter-tool',\r\n templateUrl: './active-ogc-filter-tool.component.html',\r\n animations: [toolSlideInOut()]\r\n})\r\nexport class ActiveOgcFilterToolComponent {\r\n\r\n get map(): IgoMap {\r\n return this.mapState.map;\r\n }\r\n\r\n get layer(): Layer {\r\n for (const lay of this.map.layers) {\r\n if (lay.options.active === true) {\r\n return lay;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n public animate = 'enter';\r\n\r\n constructor(public mapState: MapState) {}\r\n}\r\n","<igo-ogc-filterable-item\r\n [map]=\"map\"\r\n [layer]=\"layer\"\r\n [header]=\"false\"\r\n [@toolSlideInOut]=\"animate\">\r\n</igo-ogc-filterable-item>\r\n\r\n\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IgoFilterModule, IgoQueryModule } from '@igo2/geo';\r\nimport { OgcFilterToolComponent } from './ogc-filter-tool/ogc-filter-tool.component';\r\nimport { TimeFilterToolComponent } from './time-filter-tool/time-filter-tool.component';\r\nimport { SpatialFilterToolComponent } from './spatial-filter-tool/spatial-filter-tool.component';\r\nimport { ActiveTimeFilterToolComponent } from './active-time-filter-tool/active-time-filter-tool.component';\r\nimport { ActiveOgcFilterToolComponent } from './active-ogc-filter-tool/active-ogc-filter-tool.component';\r\n\r\n@NgModule({\r\n imports: [IgoFilterModule, IgoQueryModule, CommonModule],\r\n declarations: [\r\n OgcFilterToolComponent,\r\n ActiveOgcFilterToolComponent,\r\n TimeFilterToolComponent,\r\n ActiveTimeFilterToolComponent,\r\n SpatialFilterToolComponent\r\n ],\r\n exports: [\r\n OgcFilterToolComponent,\r\n ActiveOgcFilterToolComponent,\r\n TimeFilterToolComponent,\r\n ActiveTimeFilterToolComponent,\r\n SpatialFilterToolComponent\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppFilterModule {\r\n static forRoot(): ModuleWithProviders<IgoAppFilterModule> {\r\n return {\r\n ngModule: IgoAppFilterModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","<p></p>\r\n<igo-interactive-tour\r\n mat-raised-button\r\n tourToStart=\"global\"\r\n menuIsOpen=true\r\n styleButton=\"raised\"\r\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\">\r\n</igo-interactive-tour>\r\n\r\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\"\r\n class=\"training-guide-button\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=\"loading\"\r\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\r\n (click)=\"openGuide()\">\r\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\r\n <mat-icon svgIcon=\"file-document\"></mat-icon>\r\n</button>\r\n\r\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\"\r\n class=\"training-guide-button\"\r\n mat-raised-button\r\n tooltip-position=\"below\"\r\n matTooltipShowDelay=\"500\"\r\n [disabled]=\"loading\"\r\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\r\n [matMenuTriggerFor]=\"menu\">\r\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\r\n <mat-icon svgIcon=\"file-document\"></mat-icon>\r\n</button>\r\n\r\n<mat-menu #menu=\"matMenu\">\r\n <button *ngFor=\"let guide of trainingGuideURLs\" mat-menu-item (click)=\"openGuide(guide)\">{{formatFileName(guide)}}</button>\r\n</mat-menu>\r\n\r\n<igo-custom-html *ngIf=\"headerHtml !== ''\" class=\"mat-typography\"\r\n [html]=\"headerHtml | translate\">\r\n</igo-custom-html>\r\n\r\n<igo-custom-html class=\"mat-typography\"\r\n [html]=\"html | translate: {version: version}\">\r\n</igo-custom-html>\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { ToolComponent } from '@igo2/common';\r\nimport { ConfigService, LanguageService, Version } from '@igo2/core';\r\nimport { of } from 'rxjs';\r\nimport type { Observable } from 'rxjs';\r\nimport { AuthService } from '@igo2/auth';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\n@ToolComponent({\r\n name: 'about',\r\n title: 'igo.integration.tools.about',\r\n icon: 'help-circle'\r\n})\r\n@Component({\r\n selector: 'igo-about-tool',\r\n templateUrl: './about-tool.component.html',\r\n styleUrls: ['./about-tool.component.scss']\r\n})\r\nexport class AboutToolComponent implements OnInit {\r\n @Input()\r\n get headerHtml() {\r\n return this._headerHtml;\r\n }\r\n set headerHtml(value: string) {\r\n this._headerHtml = Array.isArray(value) ? value.join('\\n') : value;\r\n }\r\n\r\n @Input()\r\n get html() {\r\n return this._html;\r\n }\r\n set html(value: string) {\r\n this._html = Array.isArray(value) ? value.join('\\n') : value;\r\n }\r\n private _discoverTitleInLocale: string = 'IGO';\r\n public discoverTitleInLocale$: Observable<string> = of(this._discoverTitleInLocale);\r\n\r\n @Input()\r\n get discoverTitleInLocale() {\r\n return this._discoverTitleInLocale;\r\n }\r\n set discoverTitleInLocale(value: string) {\r\n this._discoverTitleInLocale = value;\r\n this.discoverTitleInLocale$ = of(value);\r\n }\r\n\r\n @Input() trainingGuideURLs;\r\n\r\n public version: Version;\r\n private _html: string = 'igo.integration.aboutTool.html';\r\n private _headerHtml: string = this.languageService.translate.instant('igo.integration.aboutTool.headerHtml');\r\n\r\n private baseUrlProfil;\r\n private baseUrlGuide;\r\n\r\n public loading = false;\r\n\r\n constructor(\r\n public configService: ConfigService,\r\n public auth: AuthService,\r\n private http: HttpClient,\r\n private cdRef: ChangeDetectorRef,\r\n private languageService: LanguageService) {\r\n this.version = configService.getConfig('version');\r\n this.baseUrlProfil = configService.getConfig('storage.url');\r\n this.baseUrlGuide = configService.getConfig('depot.url') + configService.getConfig('depot.guideUrl');\r\n }\r\n\r\n ngOnInit() {\r\n if (this.auth.authenticated && this.configService.getConfig('context.url')) {\r\n this.http.get(this.baseUrlProfil).subscribe((profil) => {\r\n const recast = profil as any;\r\n this.trainingGuideURLs = recast.guides;\r\n this.cdRef.detectChanges();\r\n });\r\n } else if (\r\n this.auth.authenticated &&\r\n !this.configService.getConfig('context.url') &&\r\n this.configService.getConfig('depot.trainingGuides')) {\r\n this.trainingGuideURLs = this.configService.getConfig('depot.trainingGuides');\r\n }\r\n }\r\n\r\n openGuide(guide?) {\r\n this.loading = true;\r\n const url = guide ?\r\n this.baseUrlGuide + guide + '?' :\r\n this.baseUrlGuide + this.trainingGuideURLs[0] + '?';\r\n this.http\r\n .get(url, {\r\n responseType: 'blob'\r\n })\r\n .subscribe(() => {\r\n this.loading = false;\r\n window.open(url, '_blank');\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n\r\n formatFileName(name: string) {\r\n name = name.split('_').join(' ');\r\n const index = name.indexOf('.');\r\n name = name.slice(0, index);\r\n return name;\r\n }\r\n}\r\n","import {\r\n NgModule,\r\n ModuleWithProviders,\r\n CUSTOM_ELEMENTS_SCHEMA\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\n\r\nimport { IgoLanguageModule } from '@igo2/core';\r\nimport { IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';\r\n\r\nimport { AboutToolComponent } from './about-tool/about-tool.component';\r\n\r\n@NgModule({\r\n imports: [\r\n IgoLanguageModule,\r\n IgoCustomHtmlModule,\r\n MatButtonModule,\r\n MatTooltipModule,\r\n MatIconModule,\r\n MatMenuModule,\r\n IgoInteractiveTourModule,\r\n CommonModule\r\n ],\r\n declarations: [AboutToolComponent],\r\n exports: [AboutToolComponent],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\r\n})\r\nexport class IgoAppAboutModule {\r\n static forRoot(): ModuleWithProviders<IgoAppAboutModule> {\r\n return {\r\n ngModule: IgoAppAboutModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppStorageModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { IgoAppAnalyticsModule } from './analytics/analytics.module';\r\nimport { IgoAppContextModule } from './context/context.module';\r\nimport { IgoAppCatalogModule } from './catalog/catalog.module';\r\nimport { IgoAppDirectionsModule } from './directions/directions.module';\r\nimport { IgoAppDrawModule } from './draw/draw.module';\r\nimport { IgoAppWorkspaceModule } from './workspace/workspace.module';\r\nimport { IgoAppImportExportModule } from './import-export/import-export.module';\r\nimport { IgoAppMapModule } from './map/map.module';\r\nimport { IgoAppMeasureModule } from './measure/measure.module';\r\nimport { IgoAppPrintModule } from './print/print.module';\r\nimport { IgoAppSearchModule } from './search/search.module';\r\nimport { IgoAppFilterModule } from './filter/filter.module';\r\nimport { IgoAppAboutModule } from './about/about.module';\r\nimport { IgoAppStorageModule } from './storage/storage.module';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: [\r\n IgoAppStorageModule,\r\n IgoAppAnalyticsModule,\r\n IgoAppContextModule,\r\n IgoAppCatalogModule,\r\n IgoAppDirectionsModule,\r\n IgoAppDrawModule,\r\n IgoAppWorkspaceModule,\r\n IgoAppImportExportModule,\r\n IgoAppMapModule,\r\n IgoAppMeasureModule,\r\n IgoAppPrintModule,\r\n IgoAppSearchModule,\r\n IgoAppFilterModule,\r\n IgoAppAboutModule\r\n ]\r\n})\r\nexport class IgoIntegrationModule {}\r\n","import { NgModule } from '@angular/core';\r\n\r\n@NgModule({\r\n imports: [],\r\n declarations: [],\r\n exports: []\r\n})\r\nexport class IgoAppToolModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { skip } from 'rxjs/operators';\r\n\r\nimport { AnalyticsService } from '@igo2/core';\r\nimport { AuthService } from '@igo2/auth';\r\n\r\nimport { ContextState } from '../context/context.state';\r\nimport { SearchState } from '../search/search.state';\r\nimport { ToolState } from '../tool/tool.state';\r\nimport { MapState } from '../map/map.state';\r\n\r\nimport {\r\n Layer,\r\n WMTSDataSourceOptions,\r\n WMSDataSourceOptions,\r\n ArcGISRestDataSourceOptions,\r\n TileArcGISRestDataSourceOptions,\r\n ArcGISRestImageDataSourceOptions\r\n} from '@igo2/geo';\r\n\r\n\r\n/**\r\n * Service that holds the state of the search module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalyticsListenerService {\r\n /**\r\n * Toolbox that holds main tools\r\n */\r\n\r\n constructor(\r\n private analyticsService: AnalyticsService,\r\n private authService: AuthService,\r\n private contextState: ContextState,\r\n private searchState: SearchState,\r\n private toolState: ToolState,\r\n private mapState: MapState\r\n ) {}\r\n\r\n listen() {\r\n this.listenUser();\r\n this.listenContext();\r\n this.listenTool();\r\n this.listenSearch();\r\n this.listenLayer();\r\n }\r\n\r\n listenUser() {\r\n this.authService.authenticate$.subscribe(() => {\r\n const tokenDecoded = this.authService.decodeToken() || {};\r\n if (tokenDecoded.user) {\r\n this.authService\r\n .getProfils()\r\n .subscribe(profils =>\r\n this.analyticsService.setUser(tokenDecoded.user, profils.profils)\r\n );\r\n } else {\r\n this.analyticsService.setUser();\r\n }\r\n });\r\n }\r\n\r\n listenContext() {\r\n this.contextState.context$.subscribe(context => {\r\n if (context) {\r\n this.analyticsService.trackEvent('context', 'activateContext', context.id || context.uri);\r\n }\r\n });\r\n }\r\n\r\n listenTool() {\r\n this.toolState.toolbox.activeTool$.pipe(skip(1)).subscribe(tool => {\r\n if (tool) {\r\n this.analyticsService.trackEvent('tool', 'activateTool', tool.name);\r\n }\r\n });\r\n }\r\n\r\n listenSearch() {\r\n this.searchState.searchTerm$.pipe(skip(1)).subscribe((searchTerm: string) => {\r\n if (searchTerm !== undefined && searchTerm !== null) {\r\n this.analyticsService.trackSearch(searchTerm, this.searchState.store.count);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Listener for adding layers to the map\r\n */\r\n listenLayer(){\r\n this.mapState.map.layersAddedByClick$.subscribe((layers: Layer[]) => {\r\n if(!layers){\r\n return;\r\n }\r\n\r\n layers.map(layer => {\r\n let wmsParams: string;\r\n let wmtsParams: string;\r\n let xyzParams: string;\r\n let restParams: string;\r\n\r\n switch (layer.dataSource.options.type){\r\n case 'wms':\r\n const wmsDataSource = layer.dataSource.options as WMSDataSourceOptions;\r\n const wmsLayerName: string = wmsDataSource.params.LAYERS;\r\n const wmsUrl: string = wmsDataSource.url;\r\n const wmsType: string = wmsDataSource.type;\r\n wmsParams = JSON.stringify({layer: wmsLayerName, type: wmsType, url: wmsUrl});\r\n break;\r\n case 'wmts':\r\n const wmtsDataSource = layer.dataSource.options as WMTSDataSourceOptions;\r\n const wmtsLayerName: string = wmtsDataSource.layer;\r\n const wmtsUrl: string = wmtsDataSource.url;\r\n const matrixSet: string = wmtsDataSource.matrixSet;\r\n const wmtsType: string = wmtsDataSource.type;\r\n wmtsParams = JSON.stringify({layer: wmtsLayerName, type: wmtsType, url: wmtsUrl, matrixSet});\r\n break;\r\n case 'arcgisrest':\r\n case 'tilearcgisrest':\r\n case 'imagearcgisrest':\r\n const restDataSource = layer.options.sourceOptions as ArcGISRestDataSourceOptions | TileArcGISRestDataSourceOptions\r\n | ArcGISRestImageDataSourceOptions;\r\n const restName: string = restDataSource.layer;\r\n const restUrl: string = restDataSource.url;\r\n const restType: string = restDataSource.type;\r\n restParams = JSON.stringify({layer: restName, type: restType, url: restUrl});\r\n break;\r\n case 'xyz':\r\n /* const xyzDataSource = layer.dataSource.options as XYZDataSourceOptions;\r\n const xyzName: string = layer.title;\r\n const xyzUrl: string = xyzDataSource.url;\r\n const xyzType: string = layer.dataSource.options.type;\r\n xyzParams = JSON.stringify({layer: xyzName, type: xyzType, url: xyzUrl});\r\n */\r\n // todo\r\n break;\r\n\r\n\r\n }\r\n this.analyticsService.trackLayer('layer', 'addLayer', wmsParams || wmtsParams || xyzParams || restParams);\r\n });\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { EntityStore } from '@igo2/common';\r\nimport { ConfigService } from '@igo2/core';\r\nimport { CommonVectorStyleOptions, SearchResult } from '@igo2/geo';\r\n\r\n/**\r\n * Service that holds the state of the query module\r\n */\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class QueryState {\r\n /**\r\n * Store that holds the query results\r\n */\r\n public store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\r\n public queryOverlayStyle: CommonVectorStyleOptions = {};\r\n public queryOverlayStyleSelection: CommonVectorStyleOptions = {};\r\n public queryOverlayStyleFocus: CommonVectorStyleOptions = {};\r\n\r\n constructor(private configService: ConfigService) {\r\n const queryOverlayStyle = this.configService.getConfig('queryOverlayStyle') as {\r\n base?: CommonVectorStyleOptions,\r\n selection?: CommonVectorStyleOptions,\r\n focus?: CommonVectorStyleOptions\r\n };\r\n if (queryOverlayStyle) {\r\n this.queryOverlayStyle = queryOverlayStyle.base;\r\n this.queryOverlayStyleSelection = queryOverlayStyle.selection;\r\n this.queryOverlayStyleFocus = queryOverlayStyle.focus;\r\n }\r\n }\r\n}\r\n","/*\r\n * Public API Surface of tools\r\n */\r\n\r\nexport * from './lib/integration.module';\r\nexport * from './lib/about/about.module';\r\nexport * from './lib/analytics/analytics.module';\r\nexport * from './lib/storage/storage.module';\r\nexport * from './lib/context/context.module';\r\nexport * from './lib/catalog/catalog.module';\r\n\r\nexport * from './lib/directions/directions.module';\r\nexport * from './lib/draw/draw.module';\r\nexport * from './lib/workspace/workspace.module';\r\nexport * from './lib/filter/filter.module';\r\nexport * from './lib/import-export/import-export.module';\r\nexport * from './lib/map/map.module';\r\nexport * from './lib/measure/measure.module';\r\nexport * from './lib/print/print.module';\r\nexport * from './lib/search/search.module';\r\nexport * from './lib/tool/tool.module';\r\n\r\nexport * from './lib/about';\r\nexport * from './lib/analytics';\r\nexport * from './lib/context';\r\nexport * from './lib/catalog';\r\nexport * from './lib/directions';\r\nexport * from './lib/draw';\r\nexport * from './lib/workspace';\r\nexport * from './lib/filter';\r\nexport * from './lib/import-export';\r\nexport * from './lib/map';\r\nexport * from './lib/measure';\r\nexport * from './lib/print';\r\nexport * from './lib/search';\r\nexport * from './lib/tool';\r\nexport * from './lib/storage';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2.ImportExportState","i1.ToolState","i2.MapState","i1.MapState","i2.LayerListToolState","i2.CatalogState","i3.ToolState","i4","i3.MapState","i2","i1.DirectionState","i3","i4.ContextState","i5","i1.DrawState","i1.StorageState","i1.FeatureActionsService","i2.WfsActionsService","i3.EditionActionsService","i1.WorkspaceState","i3.WorkspaceState","i2.ToolState","i4.ImportExportState","i3.ImportExportState","i1.LayerListToolState","i5.ImportExportState","i4.ToolState","olproj","GeoJSON","i2.MapProximityState","i1.MeasureState","i4.MapState","i2.SearchState","i4.DirectionState","i6.ToolState","i7.WorkspaceState","toolSlideInOut","i3.ContextState","i4.SearchState","i5.ToolState","i6.MapState"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAOa,qBAAqB,CAAA;;0FAArB,qBAAqB,GAAA,CAAA,EAAA,CAAA;uEAArB,qBAAqB,EAAA,CAAA,CAAA;;uFAArB,qBAAqB,EAAA,CAAA;cALjC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAA;;;ICDW,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACrB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;IAEW,iBAGX;AAHD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAG3B,EAAA,CAAA,CAAA,CAAA;AAED;;AAEG;MAIU,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;QAKW,IAAiB,CAAA,iBAAA,GAAsC,IAAI,eAAe,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnG,IAAa,CAAA,aAAA,GAAsC,IAAI,eAAe,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAChG,QAAA,IAAA,CAAA,cAAc,GAAmC,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AAc1F,KAAA;AAZC,IAAA,mBAAmB,CAAC,IAAsB,EAAA;AACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACnC;AAED,IAAA,OAAO,CAAC,IAAsB,EAAA;AAC5B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC/B;AAED,IAAA,iBAAiB,CAAC,aAA4B,EAAA;AAC1C,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;KACzC;;kFAhBQ,iBAAiB,GAAA,CAAA,EAAA,CAAA;uEAAjB,iBAAiB,EAAA,OAAA,EAAjB,iBAAiB,CAAA,IAAA,EAAA,UAAA,EAFhB,MAAM,EAAA,CAAA,CAAA;uFAEP,iBAAiB,EAAA,CAAA;cAH7B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACZD;;AAEG;MAIU,SAAS,CAAA;IAOpB,WACU,CAAA,WAAwB,EACxB,iBAAoC,EAAA;QADpC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AAJvC,QAAA,IAAA,CAAA,YAAY,GAA6B,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;KAKzE;AATN,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;KACjC;AASC,IAAA,yBAAyB,CAAC,cAA+D,EAAA;QACzF,IAAI,CAAC,cAAc,EAAE;YAAE,OAAO;AAAE,SAAA;AAChC,QAAA,IAAI,cAAc,CAAC,IAAI,KAAK,cAAc,EAAE;YAC1C,IAAI,aAAa,GAAkB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC;YAC/E,IAAI,CAAC,aAAa,EAAE;AAClB,gBAAA,aAAa,GAAG;AACd,oBAAA,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM;AACrC,oBAAA,kBAAkB,EAAE,cAAc,CAAC,OAAO,CAAC,kBAAkB;iBAC9D,CAAC;AACH,aAAA;AAAM,iBAAA;gBACL,aAAa,CAAC,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrD,aAAa,CAAC,kBAAkB,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC;AAC9E,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACxD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACzD,SAAA;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7C,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC/C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,SAAA;KACF;;kEAjCU,SAAS,EAAA,EAAA,CAAA,QAAA,CAAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;+DAAT,SAAS,EAAA,OAAA,EAAT,SAAS,CAAA,IAAA,EAAA,UAAA,EAFR,MAAM,EAAA,CAAA,CAAA;uFAEP,SAAS,EAAA,CAAA;cAHrB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACEY,IAAA,0BAA0B,SAA1B,0BAA0B,CAAA;AAErC,IAAA,WAAA,CAAoB,SAAoB,EAAA;QAApB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;KAAI;IAE5C,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,oBAAoB,EAAE,CAAC;KAC/C;EACF;oGAPY,0BAA0B,EAAA,EAAA,CAAA,iBAAA,CAAAC,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA;6EAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,iBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCfvC,EAGC,CAAA,cAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;AADC,QAAA,EAAA,CAAA,UAAA,CAAA,iBAAA,EAAA,SAAA,+EAAA,GAAA,EAAA,OAAmB,qBAAiB,CAAC,EAAA,CAAA,CAAA;QACtC,EAAmB,CAAA,YAAA,EAAA,CAAA;;ADYP,0BAA0B,GAAA,UAAA,CAAA;AAVtC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,KAAK,EAAE,gCAAgC;AACvC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,gBAAgB;KACzB,CAAC;AAKW,CAAA,EAAA,0BAA0B,CAOtC,CAAA;uFAPY,0BAA0B,EAAA,CAAA;cAJtC,SAAS;2BACE,yBAAyB,EAAA,QAAA,EAAA,uHAAA,EAAA,CAAA;;;AERrC;AAEA;;AAEG;MAIU,QAAQ,CAAA;AAkBnB,IAAA,WAAA,CACU,UAAsB,EACtB,iBAAoC;AACpC,IAAA,cAA8B,EAC9B,aAA4B,EAAA;QAH5B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AAEpC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,MAAM,CAAC;AACrB,YAAA,QAAQ,EAAE;AACR,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,WAAW,EAAE;AACX,oBAAA,SAAS,EAAE,IAAI;AAChB,iBAAA;AACF,aAAA;SACF,EACD,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClC;;AAjCD,IAAA,IAAI,mBAAmB,GAAA;QACrB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;IAED,IAAI,mBAAmB,CAAC,KAAK,EAAA;AAC3B,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACjC;AAGD;;AAEG;IACH,IAAI,GAAG,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE;;gEAf5B,QAAQ,EAAA,EAAA,CAAA,QAAA,CAAAF,IAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAA,IAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,CAAA;8DAAR,QAAQ,EAAA,OAAA,EAAR,QAAQ,CAAA,IAAA,EAAA,UAAA,EAFP,MAAM,EAAA,CAAA,CAAA;uFAEP,QAAQ,EAAA,CAAA;cAHpB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACMY,IAAA,2BAA2B,SAA3B,2BAA2B,CAAA;IAMtC,WAAoB,CAAA,SAAoB,EAAU,QAAkB,EAAA;QAAhD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAJ3D,IAAyB,CAAA,yBAAA,GAAW,UAAU,CAAC;KAIgB;IAFxE,IAAI,GAAG,GAAa,EAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAI/C,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;KACtD;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;KACjE;EACF;sGAfY,2BAA2B,EAAA,EAAA,CAAA,iBAAA,CAAAE,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;8EAA3B,2BAA2B,EAAA,SAAA,EAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,uBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,KAAA,EAAA,MAAA,EAAA,mBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCjBxC,EAI4C,CAAA,cAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;AAD1C,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,SAAA,qEAAA,GAAA,EAAA,OAAQ,GAAa,CAAA,WAAA,EAAA,CAAA,EAAA,CAAC,CACD,mBAAA,EAAA,SAAA,kFAAA,GAAA,EAAA,OAAA,GAAA,CAAA,iBAAA,EAAmB,CADlB,EAAA,CAAA,CAAA;QAExB,EAAmB,CAAA,YAAA,EAAA,CAAA;;QAHjB,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA;;ADeA,2BAA2B,GAAA,UAAA,CAAA;AATvC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,KAAK,EAAE,gCAAgC;AACvC,QAAA,IAAI,EAAE,MAAM;KACb,CAAC;AAKW,CAAA,EAAA,2BAA2B,CAevC,CAAA;uFAfY,2BAA2B,EAAA,CAAA;cAJvC,SAAS;2BACE,0BAA0B,EAAA,QAAA,EAAA,4KAAA,EAAA,CAAA;6EAK3B,yBAAyB,EAAA,CAAA;kBAAjC,KAAK;;;AELK,IAAA,qCAAqC,SAArC,qCAAqC,CAAA;EAAG;0HAAxC,qCAAqC,GAAA,CAAA,EAAA,CAAA;wFAArC,qCAAqC,EAAA,SAAA,EAAA,CAAA,CAAA,qCAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,8BAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCdlD,EAAgF,CAAA,SAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,CAAA;;ADcnE,qCAAqC,GAAA,UAAA,CAAA;AAVjD,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,0BAA0B;AAChC,QAAA,KAAK,EAAE,gCAAgC;AACvC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,gBAAgB;KACzB,CAAC;AAKW,CAAA,EAAA,qCAAqC,CAAG,CAAA;uFAAxC,qCAAqC,EAAA,CAAA;cAJjD,SAAS;2BACE,qCAAqC,EAAA,QAAA,EAAA,sFAAA,EAAA,CAAA;;;AEPjD;;AAEG;MAIU,kBAAkB,CAAA;AAH/B,IAAA,WAAA,GAAA;AAKa,QAAA,IAAA,CAAA,QAAQ,GAA4B,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,UAAU,GAA6B,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AACtE,QAAA,IAAA,CAAA,YAAY,GAA6B,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AACxE,QAAA,IAAA,CAAA,YAAY,GAA4B,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AAyBnF,KAAA;AAvBG,IAAA,UAAU,CAAC,OAAe,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC7B;AAEH,IAAA,YAAY,CAAC,IAAa,EAAA;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC5B;AAEH,IAAA,cAAc,CAAC,WAAoB,EAAA;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACrC;AAEH,IAAA,cAAc,CAAC,GAAW,EAAA;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC7B;IAED,oBAAoB,GAAA;QAClB,OAAO;AACL,YAAA,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC5B,YAAA,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;AACpC,YAAA,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK;SACjC,CAAC;KACH;;oFA7BQ,kBAAkB,GAAA,CAAA,EAAA,CAAA;wEAAlB,kBAAkB,EAAA,OAAA,EAAlB,kBAAkB,CAAA,IAAA,EAAA,UAAA,EAFf,MAAM,EAAA,CAAA,CAAA;uFAET,kBAAkB,EAAA,CAAA;cAH9B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,UAAU,EAAE,MAAM;AACrB,aAAA,CAAA;;;ACQY,IAAA,yBAAyB,SAAzB,yBAAyB,CAAA;IAMpC,WACU,CAAA,QAAkB,EAClB,kBAAsC,EAAA;QADtC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAC5C;IAPJ,IAAI,GAAG,GAAa,EAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAE/C,IAAI,iBAAiB,GAA+B,EAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,EAAE;EAM7G;kGAVY,yBAAyB,EAAA,EAAA,CAAA,iBAAA,CAAAC,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,kBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;4EAAzB,yBAAyB,EAAA,SAAA,EAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCjBtC,EAC8B,CAAA,SAAA,CAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;;QAA5B,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA;;ADgBA,yBAAyB,GAAA,UAAA,CAAA;AATrC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,gCAAgC;AACvC,QAAA,IAAI,EAAE,eAAe;KACtB,CAAC;AAKW,CAAA,EAAA,yBAAyB,CAUrC,CAAA;uFAVY,yBAAyB,EAAA,CAAA;cAJrC,SAAS;2BACE,wBAAwB,EAAA,QAAA,EAAA,wDAAA,EAAA,CAAA;;;MEWvB,mBAAmB,CAAA;;sFAAnB,mBAAmB,GAAA,CAAA,EAAA,CAAA;qEAAnB,mBAAmB,EAAA,CAAA,CAAA;yEAfpB,gBAAgB,CAAA,EAAA,CAAA,CAAA;uFAef,mBAAmB,EAAA,CAAA;cAhB/B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACR,OAAO,EAAE,CAAC,gBAAgB,CAAC;AAC3B,gBAAA,YAAY,EAAE;oBACZ,0BAA0B;oBAC1B,2BAA2B;oBAC3B,qCAAqC;oBACrC,yBAAyB;AAC1B,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACP,0BAA0B;oBAC1B,2BAA2B;oBAC3B,qCAAqC;oBACrC,yBAAyB;AAC1B,iBAAA;gBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,mBAAmB,mBAb5B,0BAA0B;QAC1B,2BAA2B;QAC3B,qCAAqC;QACrC,yBAAyB,CAAA,EAAA,OAAA,EAAA,CALjB,gBAAgB,CAAA,EAAA,OAAA,EAAA,CAQxB,0BAA0B;QAC1B,2BAA2B;QAC3B,qCAAqC;QACrC,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACf7B;;AAEG;MAIU,YAAY,CAAA;AAavB,IAAA,WAAA,CAAY,WAAwB,EAAA;AALpC;;AAEG;AACK,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,GAAG,EAAoC,CAAC;QAGvE,IAAI,CAAC,aAAa,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC;AAEzC,QAAA,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAK;YACvC,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACjC,SAAC,CAAC,CAAC;KACJ;AAjBD;;AAEG;IACH,IAAI,YAAY,KAA2B,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE;AAgBvE;;;;AAIG;AACH,IAAA,oBAAoB,CAAC,OAAgB,EAAA;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAY,CAAC,CAAC;KAC1D;AAED;;;;AAIG;IACH,oBAAoB,CAAC,OAAgB,EAAE,KAA+B,EAAA;QACpE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAY,EAAE,KAAK,CAAC,CAAC;KAC1D;AAED;;AAEG;IACH,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;KACjC;;wEA5CU,YAAY,EAAA,EAAA,CAAA,QAAA,CAAAL,IAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAA,CAAA;kEAAZ,YAAY,EAAA,OAAA,EAAZ,YAAY,CAAA,IAAA,EAAA,UAAA,EAFX,MAAM,EAAA,CAAA,CAAA;uFAEP,YAAY,EAAA,CAAA;cAHxB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACCD;;AAEG;AAWU,IAAA,2BAA2B,SAA3B,2BAA2B,CAAA;AAmBtC,IAAA,WAAA,CACU,cAA8B,EAC9B,YAA0B,EAC1B,SAAoB,EACpB,cAA8B,EAAA;QAH9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAdxC;;AAEG;QACM,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;AAE5C;;AAEG;QACM,IAAkB,CAAA,kBAAA,GAAc,EAAE,CAAC;KAOxC;AAvBJ;;;AAGG;AACH,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;KACvC;AAmBD;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;YAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;AACrB,SAAA;KACF;AAED;;;;AAIG;AACH,IAAA,qBAAqB,CAAC,KAA8C,EAAA;AAClE,QAAA,IAAI,KAAK,CAAC,QAAQ,KAAK,KAAK,EAAE;YAC5B,OAAO;AACR,SAAA;QACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;KACvD;AAED;;;AAGG;IACK,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,QAAmB,KAAI;AACjF,YAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,EAAe,CAAC,CAAC;AAClG,SAAC,CAAC,CAAC;KACJ;EACF;sGAzDY,2BAA2B,EAAA,EAAA,CAAA,iBAAA,CAAAA,IAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAM,YAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,EAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA,CAAA;8EAA3B,2BAA2B,EAAA,SAAA,EAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,qBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCzBxC,EAIwD,CAAA,cAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;AAAtD,QAAA,EAAA,CAAA,UAAA,CAAA,qBAAA,EAAA,SAAA,uFAAA,CAAA,MAAA,EAAA,EAAA,OAAuB,iCAA6B,CAAC,EAAA,CAAA,CAAA;QACvD,EAAsB,CAAA,YAAA,EAAA,CAAA;;AAJpB,QAAA,EAAA,CAAA,UAAA,CAAA,oBAAA,EAAA,GAAA,CAAA,kBAAA,CAAyC,4CAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA;;ADwB9B,2BAA2B,GAAA,UAAA,CAAA;AAVvC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,+BAA+B;AACtC,QAAA,IAAI,EAAE,aAAa;KACpB,CAAC;AAMW,CAAA,EAAA,2BAA2B,CAyDvC,CAAA;uFAzDY,2BAA2B,EAAA,CAAA;cALvC,SAAS;2BACE,0BAA0B,EAAA,eAAA,EAEnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yOAAA,EAAA,CAAA;6IActC,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;YAKG,kBAAkB,EAAA,CAAA;kBAA1B,KAAK;;;AEpCR;;AAEG;MAUU,8BAA8B,CAAA;;4GAA9B,8BAA8B,GAAA,CAAA,EAAA,CAAA;gFAA9B,8BAA8B,EAAA,CAAA,CAAA;oFAPvC,YAAY;QACZ,uBAAuB,CAAA,EAAA,CAAA,CAAA;uFAMd,8BAA8B,EAAA,CAAA;cAT1C,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,uBAAuB;AACxB,iBAAA;gBACD,YAAY,EAAE,CAAC,2BAA2B,CAAC;gBAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;gBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;wFACY,8BAA8B,EAAA,EAAA,YAAA,EAAA,CAJ1B,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAHxC,YAAY;AACZ,QAAA,uBAAuB,aAGf,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;ICfvC,EAMsB,CAAA,SAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;;;;IAJpB,EAAmB,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,OAAA,CAAA,CAAA,OAAA,EAAA,QAAA,CAAA,mBAAA,CAAA,sBAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,CAAA;;ACuBrB;;AAEG;AAYU,IAAA,2BAA2B,SAA3B,2BAA2B,CAAA;AAkCtC,IAAA,WAAA,CACU,cAA8B,EAC9B,YAA0B,EAC1B,QAAkB,EAClB,WAAwB,EAAA;QAHxB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAnClC;;;AAGG;AACH,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,CAC1B,SAAS,CACV,CAAC;AAYF;;AAEG;QACM,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;KAe1C;AAbJ;;;AAGG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AASD;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;AACpD,QAAA,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS;AACpC,aAAA,QAAQ,CACP,CAAC,MAA6B,KAAK,MAAM,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAClE;AACA,aAAA,SAAS,CAAC,CAAC,MAA6B,KAAI;AAC3C,YAAA,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AAC3B,gBAAA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC;AAC9B,gBAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AACxB,aAAA;AACH,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAK;AAClE,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACtC,SAAC,CAAC,CAAC;KACJ;AAED;;AAEG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACnC;AAED;;;;AAIG;AACK,IAAA,gBAAgB,CAAC,OAAgB,EAAA;QACvC,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxB,OAAO;AACR,SAAA;AAED,QAAA,KAAK,GAAG,IAAI,WAAW,CAAc,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACvD,QAAA,IAAI,CAAC,cAAc;aAChB,gBAAgB,CAAC,OAAO,CAAC;AACzB,aAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,aAAA,SAAS,CAAC,CAAC,KAAoB,KAAI;AAClC,YAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1B,SAAC,CAAC,CAAC;KACN;EACF;sGA5FY,2BAA2B,EAAA,EAAA,CAAA,iBAAA,CAAAR,IAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAM,YAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAG,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAD,IAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAA,CAAA;8EAA3B,2BAA2B,EAAA,SAAA,EAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,KAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAAA,KAAA,EAAA,sBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,oCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QDvCxC,EAMsB,CAAA,UAAA,CAAA,CAAA,EAAA,0DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;;;QALnB,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA,CAAA;;ACsCX,2BAA2B,GAAA,UAAA,CAAA;AAXvC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,gBAAgB;AACtB,QAAA,KAAK,EAAE,+BAA+B;AACtC,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,MAAM,EAAE,SAAS;KAClB,CAAC;AAMW,CAAA,EAAA,2BAA2B,CA4FvC,CAAA;uFA5FY,2BAA2B,EAAA,CAAA;cALvC,SAAS;2BACE,0BAA0B,EAAA,eAAA,EAEnB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,sNAAA,EAAA,CAAA;2IA0BtC,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;;;ACzDR;;AAEG;MAUU,8BAA8B,CAAA;;4GAA9B,8BAA8B,GAAA,CAAA,EAAA,CAAA;gFAA9B,8BAA8B,EAAA,CAAA,CAAA;oFAPvC,YAAY;QACZ,uBAAuB,CAAA,EAAA,CAAA,CAAA;uFAMd,8BAA8B,EAAA,CAAA;cAT1C,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,uBAAuB;AACxB,iBAAA;gBACD,YAAY,EAAE,CAAC,2BAA2B,CAAC;gBAC3C,OAAO,EAAE,CAAC,2BAA2B,CAAC;gBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;wFACY,8BAA8B,EAAA,EAAA,YAAA,EAAA,CAJ1B,2BAA2B,CAAA,EAAA,OAAA,EAAA,CAHxC,YAAY;AACZ,QAAA,uBAAuB,aAGf,2BAA2B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCF1B,mBAAmB,CAAA;;sFAAnB,mBAAmB,GAAA,CAAA,EAAA,CAAA;qEAAnB,mBAAmB,EAAA,CAAA,CAAA;yEAL5B,8BAA8B;QAC9B,8BAA8B,CAAA,EAAA,CAAA,CAAA;uFAIrB,mBAAmB,EAAA,CAAA;cAR/B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,OAAO,EAAE;oBACP,8BAA8B;oBAC9B,8BAA8B;AAC/B,iBAAA;AACD,gBAAA,YAAY,EAAE,EAAE;AACjB,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,mBAAmB,cAL5B,8BAA8B;QAC9B,8BAA8B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACHlC;;AAEG;MAIU,cAAc,CAAA;AA6BzB,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AA3B/B,QAAA,IAAA,CAAA,kBAAkB,GAAkB,IAAI,OAAO,EAAE,CAAC;AAEzD;;AAEG;AACI,QAAA,IAAA,CAAA,UAAU,GAAe,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;AAEnD;;AAEG;AACI,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAI,iBAAiB,CAAC,EAAE,EAAE;AACtE,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;AACvB,SAAA,CAAC,CAAC;AAEH;;AAEG;AACI,QAAA,IAAA,CAAA,kBAAkB,GAAuB,IAAI,kBAAkB,CAAC,EAAE,EAAE;AACzE,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;AACvB,SAAA,CAAC,CAAC;AAEI,QAAA,IAAA,CAAA,gBAAgB,GAAqB,IAAI,gBAAgB,CAAC,EAAE,EAAE;AACnE,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;AACvB,SAAA,CAAC,CAAC;QAEI,IAAY,CAAA,YAAA,GAAW,GAAG,CAAC;AAIhC,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAK;YAC/C,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AAChD,gBAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE;oBACxC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,OAA2B,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;AACpF,iBAAA;AACH,aAAC,CAAC,CAAC;YACH,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACjD,gBAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE;oBACzC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAA2B,CAAC,eAAe,GAAG,CAAC,KAAK,CAAC;AACrF,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YACvC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,2BAA2B,CAAC,EAAE;AAChE,gBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;AAClD,gBAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC;AACjE,aAAA;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,2BAA2B,CAAC,EAAE;AAChE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,CAAC;AACnE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;4EArDU,cAAc,EAAA,EAAA,CAAA,QAAA,CAAAJ,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;oEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;uFAEP,cAAc,EAAA,CAAA;cAH1B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACDD;;AAEG;MAIU,YAAY,CAAA;AAMvB,IAAA,WAAA,CACU,cAA8B,EAC9B,WAAwB,EACxB,SAAoB,EACpB,eAAgC,EAAA;QAHhC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAT1C;;AAEG;AACH,QAAA,IAAA,CAAA,QAAQ,GAAqC,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QAQ1E,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAwB,KAAI;AAClE,YAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,OAAwB,KAAI;AACvE,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;AAED;;;AAGG;AACK,IAAA,UAAU,CAAC,OAAwB,EAAA;AACzC,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC7B;AAED;;;AAGG;AACK,IAAA,WAAW,CAAC,OAAwB,EAAA;AAC1C,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAEvC,MAAM,KAAK,GAAG,EAAE,CAAC;AACjB,QAAA,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AACzC,QAAA,YAAY,CAAC,OAAO,CAAC,CAAC,WAAiB,KAAI;AACzC,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAC5D,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAC1B,OAAO;AACR,aAAA;YAED,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAC3B,EAAE,EACF,QAAQ,CAAC,OAAO,IAAI,EAAE,EACtB,WAAW,CAAC,OAAO,IAAI,EAAE,CAC1B,CAAC;AACF,YAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;AACnE,YAAA,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACnB,SAAC,CAAC,CAAC;AAEH,QAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;YACrB,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,gBAAA,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC;AACrE,gBAAA,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;AACtB,oBAAA,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,GAAG,EAAE,CAAC;AACjC,oBAAA,KAAK,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7C,iBAAA;AACF,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACxB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;;;AAI1C,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;KACvD;AAED;;;AAGG;AACK,IAAA,eAAe,CAAC,OAAwB,EAAA;QAC9C,IAAI,OAAO,KAAK,SAAS,EAAE;YACzB,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KAC1B;;wEAjFU,YAAY,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAM,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAH,SAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,EAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAA,CAAA;kEAAZ,YAAY,EAAA,OAAA,EAAZ,YAAY,CAAA,IAAA,EAAA,UAAA,EAFX,MAAM,EAAA,CAAA,CAAA;uFAEP,YAAY,EAAA,CAAA;cAHxB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACMY,IAAA,uBAAuB,SAAvB,uBAAuB,CAAA;AA0ClC,IAAA,WAAA,CACU,cAA8B,EAC9B,QAAkB,EAClB,eAAgC,EAChC,cAA8B,EAC9B,cAA8B,EAC/B,YAA0B,EACzB,WAAwB,EAAA;QANxB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC/B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QACzB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAC9B;AA/CJ;;;AAGG;IACH,IAAI,UAAU,GAAiB,EAAA,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE;IAEvE,IAAI,YAAY,GAAa,EAAA,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE;AAEvE;;;AAGG;IACF,IAAI,iBAAiB,GAAwB,EAAA,OAAO,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,EAAE;AAE7F;;;AAGG;IACH,IAAI,kBAAkB,GAAyB,EAAA,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;AAE/F;;;AAGG;IACF,IAAI,gBAAgB,GAAuB,EAAA,OAAO,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,EAAE;AAE1F;;;AAGG;IACF,IAAI,kBAAkB,GAAoB,EAAA,OAAO,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,EAAE;AAG3F;;;AAGG;IACH,IAAI,GAAG,GAAa,EAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;IAY/C,QAAQ,GAAA;QACN,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,yBAAyB,CAAY,CAAC;QACnF,IAAI,CAAC,YAAY,EAAE;AACjB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CACtB,4CAA4C,EAC5C,0CAA0C,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AAChF,SAAA;QACD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,IAAG;AACvC,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;AACnC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC;AAChC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;EAEF;8FAnEY,uBAAuB,EAAA,EAAA,CAAA,iBAAA,CAAAG,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAR,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAS,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,YAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,IAAA,CAAA,WAAA,CAAA,CAAA,CAAA,EAAA,CAAA;0EAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,oBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCrBpC,EAQiB,CAAA,SAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;;AAPb,QAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,GAAA,CAAA,iBAAA,CAAgC,CAAA,cAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA,YAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,CAAA,kBAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,8CAAA,CAAA,oBAAA,EAAA,GAAA,CAAA,kBAAA,CAAA,CAAA;;ADoBvB,uBAAuB,GAAA,UAAA,CAAA;AATnC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,KAAK,EAAE,kCAAkC;AACzC,QAAA,IAAI,EAAE,YAAY;KACnB,CAAC;AAKW,CAAA,EAAA,uBAAuB,CAmEnC,CAAA;uFAnEY,uBAAuB,EAAA,CAAA;cAJnC,SAAS;2BACE,qBAAqB,EAAA,QAAA,EAAA,mWAAA,EAAA,CAAA;;;MEHpB,sBAAsB,CAAA;AACjC,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;4FANU,sBAAsB,GAAA,CAAA,EAAA,CAAA;wEAAtB,sBAAsB,EAAA,CAAA,CAAA;4EALvB,mBAAmB,CAAA,EAAA,CAAA,CAAA;uFAKlB,sBAAsB,EAAA,CAAA;cANlC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACR,OAAO,EAAE,CAAC,mBAAmB,CAAC;gBAC9B,YAAY,EAAE,CAAC,uBAAuB,CAAC;gBACvC,OAAO,EAAE,CAAC,uBAAuB,CAAC;gBAClC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,sBAAsB,EAJlB,EAAA,YAAA,EAAA,CAAA,uBAAuB,CAD5B,EAAA,OAAA,EAAA,CAAA,mBAAmB,aAEnB,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACPnC;;AAEG;MAIU,SAAS,CAAA;AAOpB,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAL/B,IAAM,CAAA,MAAA,GAAoC,EAAE,CAAC;QAC7C,IAAQ,CAAA,QAAA,GAAa,EAAE,CAAC;QACxB,IAAY,CAAA,YAAA,GAA4B,EAAE,CAAC;QAIhD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;AACvC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;gBAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,EAAC;oBAC3C,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;oBACzE,YAAY,CAAC,UAAU,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;AAC5C,oBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC3D,oBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1D,oBAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;oBAC5E,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC;AAC/C,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACH,QAAA,KAAK,IAAI,KAAK,IAAI,IAAI,CAAC,MAAM,EAAC;AAC5B,YAAA,KAAK,GAAG,IAAI,YAAY,CAAkB,EAAE,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAC,CAAC,CAAC;AACzE,SAAA;KACF;;kEAvBU,SAAS,EAAA,EAAA,CAAA,QAAA,CAAAV,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;+DAAT,SAAS,EAAA,OAAA,EAAT,SAAS,CAAA,IAAA,EAAA,UAAA,EAFR,MAAM,EAAA,CAAA,CAAA;uFAEP,SAAS,EAAA,CAAA;cAHrB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACAD;;AAEG;AAWU,IAAA,oBAAoB,SAApB,oBAAoB,CAAA;IA2C/B,WAAoB,CAAA,SAAoB,EAAU,QAAkB,EAAA;QAAhD,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAAU,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAAI;AA1CxE;;;AAGG;AACH,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC;KAC9B;AAED;;;AAGG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;KAChC;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;KACpC;IACD,IAAI,YAAY,CAAC,EAA0B,EAAA;AACzC,QAAA,IAAI,CAAC,SAAS,CAAC,YAAY,GAAG,EAAE,CAAC;KAClC;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC;KAC1C;IACD,IAAI,kBAAkB,CAAC,KAAkB,EAAA;AACvC,QAAA,IAAI,CAAC,SAAS,CAAC,kBAAkB,GAAG,KAAK,CAAC;KAC3C;AAEM,IAAA,WAAW,CAAC,OAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KAC7B;AAEM,IAAA,eAAe,CAAC,EAA0B,EAAA;AAC/C,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;KACxB;EAGF;wFA5CY,oBAAoB,EAAA,EAAA,CAAA,iBAAA,CAAAW,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAZ,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;uEAApB,oBAAoB,EAAA,SAAA,EAAA,CAAA,CAAA,kBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,QAAA,EAAA,KAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,mBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,6BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCvBjC,EAOsD,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;AAJlD,QAAA,EAAA,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,+DAAA,CAAA,MAAA,EAAA,EAAA,OAAiB,GAAmB,CAAA,WAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAC,CAGhB,mBAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,eAAA,CAAA,MAAA,CAAuB,IAHP,CAAA,mBAAA,EAAA,SAAA,mEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,kBAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA;QAKzC,EAAW,CAAA,YAAA,EAAA,CAAA;;QAPP,EAAiB,CAAA,UAAA,CAAA,QAAA,EAAA,GAAA,CAAA,MAAA,CAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,8CAAA,CAAA,cAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA;;ADsBR,oBAAoB,GAAA,UAAA,CAAA;AAVhC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,4BAA4B;AACnC,QAAA,IAAI,EAAE,MAAM;KACb,CAAC;AAMW,CAAA,EAAA,oBAAoB,CA4ChC,CAAA;uFA5CY,oBAAoB,EAAA,CAAA;cALhC,SAAS;2BACE,kBAAkB,EAAA,eAAA,EAEX,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0UAAA,EAAA,CAAA;;;METpC,gBAAgB,CAAA;;gFAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA;kEAAhB,gBAAgB,EAAA,CAAA,CAAA;sEANjB,oBAAoB,CAAA,EAAA,CAAA,CAAA;uFAMnB,gBAAgB,EAAA,CAAA;cAP5B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACR,OAAO,EAAE,CAAC,oBAAoB,CAAC;gBAC/B,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,gBAAA,OAAO,EAAE;oBACP,oBAAoB;AACrB,iBAAA;AACF,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,gBAAgB,EALZ,EAAA,YAAA,EAAA,CAAA,oBAAoB,CADzB,EAAA,OAAA,EAAA,CAAA,oBAAoB,aAG5B,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACAR,SAAA,cAAc,CAAC,SAA6D,EAAE,cAAc,EAAA;AACxG,IAAA,MAAM,YAAY,GAAG,SAAS,CAAC,WAAW;SACrC,iBAAiB,CAAC,6BAA6B,CAAkC,CAAC;IACvF,YAAY,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,GAAG,aAAa,CAAC,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;AACnH;;ACTA;;AAEG;MAIU,YAAY,CAAA;AAKvB,IAAA,WAAA,CAAoB,iBAAiC,EAAA;QAAjC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAgB;KAAI;AAJzD,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,iBAAiB,CAAC;KAC/B;;wEAHU,YAAY,EAAA,EAAA,CAAA,QAAA,CAAAH,EAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA,CAAA;kEAAZ,YAAY,EAAA,OAAA,EAAZ,YAAY,CAAA,IAAA,EAAA,UAAA,EAFX,MAAM,EAAA,CAAA,CAAA;uFAEP,YAAY,EAAA,CAAA;cAHxB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;MCeY,qBAAqB,CAAA;AAiBhC,IAAA,WAAA,CACU,YAA0B,EAC3B,eAAgC,EAC/B,SAAoB,EACpB,YAA0B,EAAA;QAH1B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC3B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAC/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAnB7B,QAAA,IAAA,CAAA,SAAS,GAA6B,IAAI,eAAe,CAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAY,CACxD,CAAC;AAEF,QAAA,IAAA,CAAA,SAAS,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;KAgB7D;AAbJ,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;KACzC;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC;KACvD;IASD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;AACpC,SAAA;KACF;AAED,IAAA,WAAW,CACT,SAA2B,EAC3B,8BAAwD,EACxD,yBAAmD,EAAA;AAEnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAC/B,SAAS,EACT,8BAA8B,EAC9B,yBAAyB,CACxB,CAAC;AACJ,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACrC;AAED,IAAA,YAAY,CACV,SAA2B,EAC3B,8BAAwD,EACxD,yBAAmD,EAAA;QAEnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc;aACtD,IAAI,CACH,SAAS,CACP,CAAC,aAAkC,KACjC,aAAa,CAAC,GAAG,KAAK,UAAU,IAAI,aAAa,CAAC,KAAK,KAAK,uBAAuB,CAAC,OAAO,CAC9F,CACF;aACA,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,YAAA,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;QACL,OAAO;AACL,YAAA;AACE,gBAAA,EAAE,EAAE,UAAU;AACd,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,4CAA4C;gBACrD,cAAc,EAAE,IAAI,CAAC,SAAS;gBAC9B,OAAO,EAAE,MAAK;AACZ,oBAAA,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/C,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,UAAU,EACV,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAChD,CAAC;iBACH;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,mBAAmB;AACvB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,6CAA6C;AACpD,gBAAA,OAAO,EAAE,8BAA8B,CAAC,SAAS,CAAC;AAClD,gBAAA,cAAc,EAAE,8BAA8B;AAC9C,gBAAA,OAAO,EAAE,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC;AAC1F,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,cAAc;AAClB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,4CAA4C;AACrD,gBAAA,cAAc,EAAE,yBAAyB;AACzC,gBAAA,OAAO,EAAE,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAChF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,gBAAgB;AACpB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,KAAK,EAAE,gDAAgD;AACvD,gBAAA,OAAO,EAAE,kDAAkD;AAC3D,gBAAA,OAAO,EAAE,CAAC,EAAoB,KAAI;AAChC,oBAAA,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE;AACzD,wBAAA,QAAQ,EAAE,KAAK;AAChB,qBAAA,CAAC,CAAC;iBACJ;gBACD,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,YAAY,EAAE,CAAC,EAAoB,KAAK,iBAAiB,CAAC,EAAE,CAAC;AAC9D,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,iBAAiB;AACrB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,4CAA4C;AACrD,gBAAA,OAAO,EAAE,CAAC,EAAoB,KAAI;oBAChC,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CACrD,mCAAmC,CACpC,CAAC;oBACF,MAAM,uBAAuB,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAC9D,kCAAkC,CACnC,CAAC;AACF,oBAAA,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,MAAM;AACxD,0BAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;0BACb,EAAE,CAAC;AACP,oBAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;AACvC,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,OAAO,EAAE;AACP,4BAAA,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;4BACrB,kBAAkB,EAAE,cAAc,CAAC,MAAM;4BACzC,mBAAmB;AACH,yBAAA;AACnB,qBAAA,CAAC,CAAC;iBACJ;gBACD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,UAAU;gBACd,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,oCAAoC,CAAC;gBACnF,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,2CAA2C,CAC5C;AACD,gBAAA,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAK;oBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBAC7E;gBACD,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;AACjC,wBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,qBAAA;iBACF;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC3C,0CAA0C,CAC3C;gBACD,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,iDAAiD,CAClD;AACD,gBAAA,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAK;oBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBAC5E;gBACD,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC5B;AACF,aAAA;SACF,CAAC;KACH;;0FAnKU,qBAAqB,EAAA,EAAA,CAAA,QAAA,CAAAgB,YAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAT,SAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,YAAA,CAAA,CAAA,CAAA,EAAA,CAAA;2EAArB,qBAAqB,EAAA,OAAA,EAArB,qBAAqB,CAAA,IAAA,EAAA,UAAA,EAFpB,MAAM,EAAA,CAAA,CAAA;uFAEP,qBAAqB,EAAA,CAAA;cAHjC,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;MCIY,iBAAiB,CAAA;IAmB5B,WACmC,CAAA,eAAuB,EAChD,YAA0B,EAC3B,eAAgC,EAC/B,YAA0B,EAC1B,SAAoB,EAAA;QAJK,IAAe,CAAA,eAAA,GAAf,eAAe,CAAQ;QAChD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC3B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAC/B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AAtBvB,QAAA,IAAA,CAAA,SAAS,GAA6B,IAAI,eAAe,CAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAY,CACxD,CAAC;AAEF,QAAA,IAAA,CAAA,yBAAyB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;;AAEjF,QAAA,IAAA,CAAA,SAAS,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;KAgB/B;AAblC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;KACzC;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC;KACvD;IASD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;AACpC,SAAA;KACF;AAED,IAAA,WAAW,CACT,SAAuB,EACvB,8BAAwD,EACxD,yBAAmD,EAAA;AAEnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAC/B,SAAS,EACT,8BAA8B,EAC9B,yBAAyB,CACxB,CAAC;AACJ,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACrC;AAED,IAAA,YAAY,CACV,SAAuB,EACvB,8BAAwD,EACxD,yBAAmD,EAAA;QAEnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc;aACtD,IAAI,CAAC,SAAS,CAAC,CAAC,aAAkC,KACjD,aAAa,EAAE,GAAG,KAAK,UAAU,IAAI,aAAa,EAAE,KAAK,KAAK,uBAAuB,CAAC,OAAO,CAAC,CAAC;aAChG,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,YAAA,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;AACL,QAAA,MAAM,OAAO,GAAG;AACd,YAAA;AACE,gBAAA,EAAE,EAAE,UAAU;AACd,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,4CAA4C;gBACrD,cAAc,EAAE,IAAI,CAAC,SAAS;gBAC9B,OAAO,EAAE,MAAK;AACZ,oBAAA,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/C,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC,CAAC;iBACtF;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,mBAAmB;AACvB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,6CAA6C;AACpD,gBAAA,OAAO,EAAE,8BAA8B,CAAC,SAAS,CAAC;AAClD,gBAAA,cAAc,EAAE,8BAA8B;AAC9C,gBAAA,OAAO,EAAE,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC;AAC1F,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,cAAc;AAClB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,0CAA0C;AACnD,gBAAA,cAAc,EAAE,yBAAyB;AACzC,gBAAA,OAAO,EAAE,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAChF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,gBAAgB;AACpB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,KAAK,EAAE,gDAAgD;AACvD,gBAAA,OAAO,EAAE,kDAAkD;AAC3D,gBAAA,OAAO,EAAE,CAAC,EAAgB,KAAI;oBAC5B,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;iBACjF;gBACD,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,YAAY,EAAE,CAAC,EAAgB,KAAK,iBAAiB,CAAC,EAAE,CAAC;AAC1D,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,aAAa;AACjB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,4CAA4C;AACrD,gBAAA,OAAO,EAAE,CAAC,EAAgB,KAAI;oBAC5B,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;oBAC7F,MAAM,uBAAuB,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;AACrG,oBAAA,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAChF,oBAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;AACvC,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAmB;AACpH,qBAAA,CAAC,CAAC;iBACJ;gBACD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,WAAW;AACf,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE,2CAA2C;AAClD,gBAAA,OAAO,EAAE,6CAA6C;AACtD,gBAAA,OAAO,EAAE,CAAC,MAAc,EAAE,EAAgB,KAAI;AAC5C,oBAAA,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE;wBACxB,GAAG,EAAE,EAAE,CAAC,GAAG;wBACX,KAAK,EAAE,EAAE,CAAC,KAAK;AAChB,qBAAA,CAAC,CAAC;iBACJ;AACD,gBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;AACxC,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,UAAU;gBACd,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,oCAAoC,CAAC;gBACnF,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,2CAA2C,CAC5C;AACD,gBAAA,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAK;oBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBAC7E;gBACD,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;AACjC,wBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,qBAAA;iBACF;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC3C,0CAA0C,CAC3C;gBACD,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,iDAAiD,CAClD;AACD,gBAAA,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAK;oBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBAC5E;gBACD,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC5B;AACF,aAAA;SACF,CAAC;AACF,QAAA,OAAQ,SAAS,CAAC,KAAK,CAAC,UAAsC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO;AAC1F,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;KAC/D;;AAjKU,iBAAA,CAAA,IAAA,GAAA,SAAA,yBAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,iBAAiB,cAoBlB,eAAe,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAS,YAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAT,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA;uEApBd,iBAAiB,EAAA,OAAA,EAAjB,iBAAiB,CAAA,IAAA,EAAA,UAAA,EAFhB,MAAM,EAAA,CAAA,CAAA;uFAEP,iBAAiB,EAAA,CAAA;cAH7B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;sBAqBI,MAAM;uBAAC,eAAe,CAAA;;;MCpBd,qBAAqB,CAAA;IAiBhC,WACmC,CAAA,eAAuB,EAChD,YAA0B,EAC3B,eAAgC,EAC/B,YAA0B,EAC1B,SAAoB,EAAA;QAJK,IAAe,CAAA,eAAA,GAAf,eAAe,CAAQ;QAChD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC3B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAC/B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;AApBvB,QAAA,IAAA,CAAA,SAAS,GAA6B,IAAI,eAAe,CAC9D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAY,CACxD,CAAC;AAEF,QAAA,IAAA,CAAA,SAAS,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;KAgB/B;AAblC,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC;KACzC;AAED,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC;KACvD;IASD,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;AACpC,SAAA;KACF;AAED,IAAA,WAAW,CACT,SAA2B,EAC3B,8BAAwD,EACxD,yBAAmD,EAAA;AAEnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAC/B,SAAS,EACT,8BAA8B,EAC9B,yBAAyB,CACxB,CAAC;AACJ,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;KACrC;AAED,IAAA,YAAY,CACV,SAA2B,EAC3B,8BAAwD,EACxD,yBAAmD,EAAA;QAEnD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc;aACtD,IAAI,CAAC,SAAS,CAAC,CAAC,aAAkC,KACjD,aAAa,EAAE,GAAG,KAAK,UAAU,IAAI,aAAa,EAAE,KAAK,KAAK,uBAAuB,CAAC,OAAO,CAAC,CAAC;aAChG,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACnC,YAAA,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;AACL,QAAA,MAAM,OAAO,GAAG;AACd,YAAA;AACE,gBAAA,EAAE,EAAE,UAAU;AACd,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,4CAA4C;gBACrD,cAAc,EAAE,IAAI,CAAC,SAAS;gBAC9B,OAAO,EAAE,MAAK;AACZ,oBAAA,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAC/C,oBAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,UAAU,CAAY,CAAC,CAAC;iBACtF;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,mBAAmB;AACvB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,6CAA6C;AACpD,gBAAA,OAAO,EAAE,8BAA8B,CAAC,SAAS,CAAC;AAClD,gBAAA,cAAc,EAAE,8BAA8B;AAC9C,gBAAA,OAAO,EAAE,MAAM,8BAA8B,CAAC,IAAI,CAAC,CAAC,8BAA8B,CAAC,KAAK,CAAC;AAC1F,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,cAAc;AAClB,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,0CAA0C;AACnD,gBAAA,cAAc,EAAE,yBAAyB;AACzC,gBAAA,OAAO,EAAE,MAAM,yBAAyB,CAAC,IAAI,CAAC,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAChF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,gBAAgB;AACpB,gBAAA,IAAI,EAAE,YAAY;AAClB,gBAAA,KAAK,EAAE,gDAAgD;AACvD,gBAAA,OAAO,EAAE,kDAAkD;AAC3D,gBAAA,OAAO,EAAE,CAAC,EAAoB,KAAI;oBAChC,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;iBACjF;gBACD,IAAI,EAAE,CAAC,SAAS,CAAC;gBACjB,YAAY,EAAE,CAAC,EAAoB,KAAK,iBAAiB,CAAC,EAAE,CAAC;AAC9D,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,aAAa;AACjB,gBAAA,IAAI,EAAE,aAAa;AACnB,gBAAA,KAAK,EAAE,0CAA0C;AACjD,gBAAA,OAAO,EAAE,4CAA4C;AACrD,gBAAA,OAAO,EAAE,CAAC,EAAoB,KAAI;oBAChC,MAAM,cAAc,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;oBAC7F,MAAM,uBAAuB,GAAG,EAAE,CAAC,WAAW,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;AACrG,oBAAA,MAAM,mBAAmB,GAAG,uBAAuB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAChF,oBAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;AACvC,wBAAA,IAAI,EAAE,cAAc;AACpB,wBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,kBAAkB,EAAE,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAmB;AACpH,qBAAA,CAAC,CAAC;iBACJ;gBACD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,WAAW;AACf,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE,2CAA2C;AAClD,gBAAA,OAAO,EAAE,6CAA6C;AACtD,gBAAA,OAAO,EAAE,CAAC,MAAc,EAAE,EAAoB,KAAI;AAChD,oBAAA,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE;wBACxB,GAAG,EAAE,EAAE,CAAC,GAAG;wBACX,KAAK,EAAE,EAAE,CAAC,KAAK;AAChB,qBAAA,CAAC,CAAC;iBACJ;AACD,gBAAA,IAAI,EAAE,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;AACxC,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,UAAU;gBACd,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,oCAAoC,CAAC;gBACnF,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,2CAA2C,CAC5C;AACD,gBAAA,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAK;oBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBAC7E;gBACD,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE;AACjC,wBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,qBAAA;iBACF;AACF,aAAA;AACD,YAAA;AACE,gBAAA,EAAE,EAAE,gBAAgB;gBACpB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC3C,0CAA0C,CAC3C;gBACD,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAC7C,iDAAiD,CAClD;AACD,gBAAA,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAK;oBACZ,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;iBAC5E;gBACD,OAAO,EAAE,MAAK;AACZ,oBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC5B;AACF,aAAA;SACF,CAAC;AACF,QAAA,OAAQ,SAAS,CAAC,KAAK,CAAC,UAAsC,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO;AAC1F,YAAA,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,WAAW,CAAC,CAAC;KAC/D;;AA/JU,qBAAA,CAAA,IAAA,GAAA,SAAA,6BAAA,CAAA,CAAA,EAAA,EAAA,OAAA,KAAA,CAAA,IAAA,qBAAqB,cAkBtB,eAAe,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAS,YAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAT,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA;2EAlBd,qBAAqB,EAAA,OAAA,EAArB,qBAAqB,CAAA,IAAA,EAAA,UAAA,EAFpB,MAAM,EAAA,CAAA,CAAA;uFAEP,qBAAqB,EAAA,CAAA;cAHjC,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;sBAmBI,MAAM;uBAAC,eAAe,CAAA;;;AC3B3B;;AAEG;MAIU,cAAc,CAAA;AAoDzB,IAAA,WAAA,CACU,qBAA4C,EAC5C,iBAAoC,EACpC,qBAA4C,EAC5C,cAA8B,EAAA;QAH9B,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAuB;QAC5C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAtDjC,IAAsB,CAAA,sBAAA,GAAY,KAAK,CAAC;AAEtC,QAAA,IAAA,CAAA,iBAAiB,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAClF,QAAA,IAAA,CAAA,8BAA8B,GAA6B,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AAC9F,QAAA,IAAA,CAAA,yBAAyB,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAE1F,QAAA,IAAA,CAAA,kBAAkB,GAA6B,IAAI,eAAe,CACzE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAY,CACxD,CAAC;QACM,IAAgB,CAAA,gBAAA,GAAmB,EAAE,CAAC;;AAYrC,QAAA,IAAA,CAAA,sBAAsB,GAA4B,IAAI,eAAe,CAAS,SAAS,CAAC,CAAC;AAElG;;AAEG;AACI,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,eAAe,CAAY,SAAS,CAAC,CAAC;QA8B5D,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AA7BD;;AAEG;IACH,IAAI,KAAK,KAAqB,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE;AAGnD,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YAC3B,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;AAC5F,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC;AACX,SAAA;KACF;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;YACzB,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;AAChG,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACf,SAAA;KACF;AAWD;;;;AAIG;IACK,cAAc,GAAA;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,SAAS;AAClB,aAAA,QAAQ,CAAC,CAAC,MAA+B,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AAC3E,aAAA,SAAS,CAAC,CAAC,MAA+B,KAAI;AAC7C,YAAA,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC;AACrD,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClC,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE;AAC3B,aAAA,SAAS,CAAC,CAAC,UAAqC,KAAI;AACnD,YAAA,UAAU,CAAC,GAAG,CAAC,CAAC,GAA4B,KAAI;AAC9C,gBAAA,IAAI,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;AAChC,oBAAA,IAAI,GAAG,CAAC,MAAM,YAAY,YAAY,EAAE;AACtC,wBAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAChC,GAAG,CAAC,MAAM,EACV,IAAI,CAAC,8BAA8B,EACnC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACnC,qBAAA;AAAM,yBAAA,IAAI,GAAG,CAAC,MAAM,YAAY,gBAAgB,EAAE;AACjD,wBAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,CACpC,GAAG,CAAC,MAAM,EACV,IAAI,CAAC,8BAA8B,EACnC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACnC,qBAAA;AAAM,yBAAA,IAAI,GAAG,CAAC,MAAM,YAAY,gBAAgB,EAAE;AACjD,wBAAA,IAAI,CAAC,qBAAqB,CAAC,WAAW,CACpC,GAAG,CAAC,MAAM,EACV,IAAI,CAAC,8BAA8B,EACnC,IAAI,CAAC,yBAAyB,CAAC,CAAC;AACnC,qBAAA;AACF,iBAAA;AAEH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,IAAG;AACpF,YAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;SACzC,CAAC,CAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,IAAG;AAChF,YAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;SACzC,CAAC,CAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,IAAG;AACpF,YAAA,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;SACzC,CAAC,CAAC,CAAC;AAEJ,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU;AACrC,aAAA,SAAS,CAAC,CAAC,SAAoB,KAAI;AAClC,YAAA,IAAI,IAAI,CAAC,uBAAuB,KAAK,SAAS,EAAE;AAC9C,gBAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC3C,gBAAA,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;AAC1C,aAAA;YAED,IAAI,SAAS,KAAK,SAAS,EAAE;AAC3B,gBAAA,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC,OAAO;AAC7C,qBAAA,SAAS,CAAC,CAAC,MAAc,KAAK,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5E,aAAA;AACH,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,+BAA+B,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC,eAAe,KAAI;AACvG,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAA4B,KAAI;gBAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;AACjC,oBAAA,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;AACrG,oBAAA,IAAI,cAAc,EAAE;AAClB,wBAAA,IAAI,eAAe,EAAE;4BACnB,cAAc,CAAC,QAAQ,EAAE,CAAC;AAC3B,yBAAA;AAAM,6BAAA;4BACL,cAAc,CAAC,UAAU,EAAE,CAAC;AAC7B,yBAAA;AACF,qBAAA;AACF,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,UAAU,KAAI;AACxF,YAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,GAA4B,KAAI;gBAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE;AACjC,oBAAA,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,CAAC,kCAAkC,CAAC,CAAC;AACpG,oBAAA,IAAI,cAAc,EAAE;AAClB,wBAAA,IAAI,UAAU,EAAE;4BACd,cAAc,CAAC,QAAQ,EAAE,CAAC;AAC3B,yBAAA;AAAM,6BAAA;4BACL,cAAc,CAAC,UAAU,EAAE,CAAC;AAC7B,yBAAA;AACF,qBAAA;AACF,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,uBAAuB,CAAC,SAAkB,EAAA;QAChD,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KACzC;AAEM,IAAA,sBAAsB,CAAC,EAAU,EAAA;AACtC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK;AAC3B,aAAA,GAAG,EAAE;aACL,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;AACxC,QAAA,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;AACzC,SAAA;KACF;AAEM,IAAA,yBAAyB,CAAC,KAAa,EAAA;AAC5C,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK;AAC5B,aAAA,GAAG,EAAE;aACL,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;AAChD,QAAA,IAAI,YAAY,EAAE;AAChB,YAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;AAC5C,SAAA;KACF;AAED;;;AAGG;IACH,WAAW,GAAA;QACT,IAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,QAAA,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,+BAA+B,EAAE;AACxC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;AAC/C,SAAA;QACD,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACnC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;AAC/C,SAAA;KACF;AAED;;AAEG;IACK,kBAAkB,GAAA;AACxB,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,uBAAuB,KAAK,SAAS,EAAE;AAC9C,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC5C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;AACxC,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC;AACtC,SAAA;KACF;;4EA7MU,cAAc,EAAA,EAAA,CAAA,QAAA,CAAAU,qBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,iBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,qBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAX,EAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA,CAAA;oEAAd,cAAc,EAAA,OAAA,EAAd,cAAc,CAAA,IAAA,EAAA,UAAA,EAFb,MAAM,EAAA,CAAA,CAAA;uFAEP,cAAc,EAAA,CAAA;cAH1B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;;;ICvBD,EAQG,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;IADD,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAmB,CAAA,iBAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;IAE7B,EAAqC,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IACvC,EAAS,CAAA,YAAA,EAAA,CAAA;;;AALP,IAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,2CAAA,CAAA,CAAsE,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,CAAA,CAAA;;MCM3D,wBAAwB,CAAA;AAmBnC,IAAA,WAAA,CAAoB,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAjB3C,QAAA,IAAA,CAAA,aAAa,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAIpE,QAAA,IAAA,CAAA,MAAM,GAA2B,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;QAW/D,IAAK,CAAA,KAAA,GAAW,SAAS,CAAC;KAEoB;IAZvD,IACI,KAAK,CAAC,KAAY,EAAA;AACpB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;AAED,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;KACpB;IAMD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACtF,aAAA,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAC5F,CAAC;KACL;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;KACnC;IAED,iBAAiB,GAAA;AACf,QAAA,IACE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAK;AACnC,YAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,KAAa,CAAC,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,EAAE;AACxE,YAAA,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC;YAClD,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC3D,SAAA;KACF;;gGAzCU,wBAAwB,EAAA,EAAA,CAAA,iBAAA,CAAAY,cAAA,CAAA,CAAA,CAAA,EAAA,CAAA;2EAAxB,wBAAwB,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QDXrC,EAUS,CAAA,UAAA,CAAA,CAAA,EAAA,0CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;QATN,EAA2B,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAA,CAAA;;uFCUjB,wBAAwB,EAAA,CAAA;cANpC,SAAS;2BACE,sBAAsB,EAAA,eAAA,EAGf,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mVAAA,EAAA,CAAA;8DAU3C,KAAK,EAAA,CAAA;kBADR,KAAK;YAUG,KAAK,EAAA,CAAA;kBAAb,KAAK;;;MCTK,qBAAqB,CAAA;;0FAArB,qBAAqB,GAAA,CAAA,EAAA,CAAA;uEAArB,qBAAqB,EAAA,CAAA,CAAA;2EAT9B,YAAY;QACZ,aAAa;QACb,eAAe;QACf,gBAAgB;QAChB,iBAAiB,CAAA,EAAA,CAAA,CAAA;uFAKR,qBAAqB,EAAA,CAAA;cAXjC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,aAAa;oBACb,eAAe;oBACf,gBAAgB;oBAChB,iBAAiB;AAClB,iBAAA;gBACD,YAAY,EAAE,CAAC,wBAAwB,CAAC;gBACxC,OAAO,EAAE,CAAC,wBAAwB,CAAC;AACpC,aAAA,CAAA;;wFACY,qBAAqB,EAAA,EAAA,YAAA,EAAA,CAHjB,wBAAwB,CAAA,EAAA,OAAA,EAAA,CANrC,YAAY;QACZ,aAAa;QACb,eAAe;QACf,gBAAgB;AAChB,QAAA,iBAAiB,aAGT,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;;ACjBpC,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAiD,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;;IAE7C,EASsD,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,CAAA;IAFpD,EAAc,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,0FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,0BAAmB,CAAA,CAAA,EAAA,CAAC,gNAEX,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,mBAAA,CAAA,MAAA,CAA2B,CAAA,CAFhB,EAAA,CAAA,CAAA;;;AAGpC,IAAA,EAAA,CAAA,YAAA,EAAoB,EAAA,CAAA;IAEtB,EAAsF,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;;IACpF,EAAmE,CAAA,SAAA,CAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,CAAA,CAAA;AACrE,IAAA,EAAA,CAAA,YAAA,EAAU,EAAA,CAAA;;;IAfD,EAAyE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzE,EAAyE,CAAA,UAAA,CAAA,OAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,mDAAA,CAAA,CAAA,CAAA;IAE9E,EAAkD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAlD,IAAA,EAAA,CAAA,UAAA,CAAA,YAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,YAAA,CAAA,QAAA,CAAA,CAAA,GAAA,CAAkD,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA,iBAAA,EAAA,MAAA,CAAA,eAAA,CAAA,CAAA,wBAAA,EAAA,MAAA,CAAA,sBAAA,CAAA,CAAA,OAAA,EAAA,MAAA,CAAA,cAAA,CAAA,+EAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,CAAA;IAW7C,EAA4E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA5E,EAA4E,CAAA,UAAA,CAAA,OAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,sDAAA,CAAA,CAAA,CAAA;IACxD,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAX,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA;;;;IAI1C,EAQsD,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,CAAA;IAFpD,EAAc,CAAA,UAAA,CAAA,YAAA,EAAA,SAAA,8FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,0BAAmB,CAAA,CAAA,EAAA,CAAC,oNAEX,EAAA,CAAA,WAAA,CAAA,MAAA,CAAA,mBAAA,CAAA,MAAA,CAA2B,CAAA,CAFhB,EAAA,CAAA,CAAA;;;IAGpC,EAAoB,CAAA,YAAA,EAAA,CAAA;;;IAPlB,EAAkD,CAAA,UAAA,CAAA,YAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,YAAA,CAAA,QAAA,CAAA,CAAA,GAAA,CAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA,OAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA,cAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,CAAA,CAAA,gBAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,cAAA,CAAA,CAAA;;;IASpD,EAG4B,CAAA,SAAA,CAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,CAAA,CAAA;;;IAD1B,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA;;ACVA,IAAA,yBAAyB,SAAzB,yBAAyB,CAAA;AAmBpC,IAAA,WAAA,CACU,QAAkB,EACnB,iBAAoC,EACnC,cAA8B,EAC/B,YAA0B,EAAA;QAHzB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACnB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC/B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAnB1B,IAAe,CAAA,eAAA,GAAY,KAAK,CAAC;AAYjC,QAAA,IAAA,CAAA,gBAAgB,GAAqB,gBAAgB,CAAC,KAAK,CAAC;QAC5D,IAAwB,CAAA,wBAAA,GAAY,IAAI,CAAC;KAO9C;AAlBJ;;;AAGG;IACH,IAAI,GAAG,GAAa,EAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;AAE/C,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KAClC;IAYD,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,UAAU,EAAE,CAAC;KACnB;IAEO,UAAU,GAAA;QAChB,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACtE,SAAA;QACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,KAAK,CAAC;QACxE,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AAC9D,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACpE,SAAA;KACF;IAEO,UAAU,GAAA;QAChB,MAAM,gBAAgB,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC;QACpE,IAAI,gBAAgB,KAAK,SAAS,EAAE;AAClC,YAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAClD,SAAA;AAAM,aAAA;YACL,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAEzD,SAAA;KACF;AAEM,IAAA,WAAW,CAAC,IAAsB,EAAA;AACvC,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KACtC;AAEM,IAAA,mBAAmB,CAAC,aAA4B,EAAA;AACrD,QAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;KACzD;AAED,IAAA,sBAAsB,CAAC,KAAK,EAAA;AAC1B,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAK,CAAC;KACrC;EACF;kGAhEY,yBAAyB,EAAA,EAAA,CAAA,iBAAA,CAAAhB,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAH,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAoB,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAR,YAAA,CAAA,CAAA,CAAA,EAAA,CAAA;4EAAzB,yBAAyB,EAAA,SAAA,EAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,wBAAA,EAAA,0BAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,CAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,qBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,kCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QDtBtC,EAiBgB,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,EAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;QAEhB,EASoB,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,CAAA;QAEpB,EAG4B,CAAA,UAAA,CAAA,CAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,2BAAA,EAAA,CAAA,CAAA,CAAA;;QAjCZ,EAA8B,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,wBAAA,CAAA,CAAA;QAoB3C,EAA+D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA/D,EAA+D,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,wBAAA,IAAA,GAAA,CAAA,gBAAA,KAAA,OAAA,CAAA,CAAA;QAW/D,EAAiE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAjE,EAAiE,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,wBAAA,IAAA,GAAA,CAAA,gBAAA,KAAA,SAAA,CAAA,CAAA;;ACTvD,yBAAyB,GAAA,UAAA,CAAA;AAXrC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,KAAK,EAAE,oCAAoC;AAC3C,QAAA,IAAI,EAAE,WAAW;KAClB,CAAC;AAOW,CAAA,EAAA,yBAAyB,CAgErC,CAAA;uFAhEY,yBAAyB,EAAA,CAAA;cANrC,SAAS;2BACE,wBAAwB,EAAA,eAAA,EAGjB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,0+CAAA,EAAA,MAAA,EAAA,CAAA,8BAAA,CAAA,EAAA,CAAA;uIAItC,sBAAsB,EAAA,CAAA;kBAA9B,KAAK;YAEG,eAAe,EAAA,CAAA;kBAAvB,KAAK;YAYG,gBAAgB,EAAA,CAAA;kBAAxB,KAAK;YACG,wBAAwB,EAAA,CAAA;kBAAhC,KAAK;;;MCVK,wBAAwB,CAAA;AACnC,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,wBAAwB;AAClC,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;gGANU,wBAAwB,GAAA,CAAA,EAAA,CAAA;0EAAxB,wBAAwB,EAAA,CAAA,CAAA;8EAZjC,qBAAqB;QACrB,4BAA4B;QAC5B,YAAY;QACZ,iBAAiB;QACjB,qBAAqB;QACrB,aAAa;QACb,cAAc,CAAA,EAAA,CAAA,CAAA;uFAML,wBAAwB,EAAA,CAAA;cAdpC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,qBAAqB;oBACrB,4BAA4B;oBAC5B,YAAY;oBACZ,iBAAiB;oBACjB,qBAAqB;oBACrB,aAAa;oBACb,cAAc;AACf,iBAAA;gBACD,YAAY,EAAE,CAAC,yBAAyB,CAAC;gBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;gBACpC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;wFACY,wBAAwB,EAAA,EAAA,YAAA,EAAA,CAJpB,yBAAyB,CAAA,EAAA,OAAA,EAAA,CARtC,qBAAqB;QACrB,4BAA4B;QAC5B,YAAY;QACZ,iBAAiB;QACjB,qBAAqB;QACrB,aAAa;AACb,QAAA,cAAc,aAGN,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;;ICbhC,EAA6D,CAAA,SAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA;IAC9D,EAAmE,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,CAAA;IAAhC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kGAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,WAAA,CAAA,KAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAqB,CAAA,cAAA,CAAA,QAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAoB,CAAA,YAAA,EAAA,CAAA;IACvF,EAAoF,CAAA,SAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,CAAA,kCAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;;;;IAF7D,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACnB,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACX,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAApB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,SAAA,CAAoB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACnB,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAArB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,UAAA,CAAqB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACnB,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAArB,IAAA,EAAA,CAAA,UAAA,CAAA,cAAA,EAAA,IAAA,CAAqB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IAC1B,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;;IAlBxC,EAS4B,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;IAE1B,EAQc,CAAA,UAAA,CAAA,CAAA,EAAA,+DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;IAEhB,EAAiB,CAAA,YAAA,EAAA,CAAA;;;AApBf,IAAA,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAW,CAAA,mBAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,CAAA,2BAAA,EAAA,MAAA,CAAA,yBAAA,CAAA,CAAA,6BAAA,EAAA,MAAA,CAAA,2BAAA,CAAA,CAAA,gCAAA,EAAA,MAAA,CAAA,8BAAA,CAAA,yEAAA,CAAA,YAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA;;;IA0BT,EAA0I,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACxI,EAAmD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;;IAAvD,EAAmD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnD,EAAmD,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,mCAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;AACrD,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAmE,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACxC,EAAiH,CAAA,cAAA,EAAA,CAAA;IAAjH,EAAiH,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAAC,EAAoR,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACta,EAAsE,CAAA,eAAA,EAAA,CAAA;IAAtE,EAAsE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAvB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAY,CAAA,UAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACnE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,qCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;;AAEF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAoE,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACzC,EAAiH,CAAA,cAAA,EAAA,CAAA;IAAjH,EAAiH,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAAC,EAA+K,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACjU,EAAwE,CAAA,eAAA,EAAA,CAAA;IAAxE,EAAwE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAxB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,sCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;;AAEF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAoE,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACzC,EAAiH,CAAA,cAAA,EAAA,CAAA;IAAjH,EAAiH,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IAAC,EAAsH,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACxQ,EAAwE,CAAA,eAAA,EAAA,CAAA;IAAxE,EAAwE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAxB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,sCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;AArBJ,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,CAA6C,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAEzC,EAA+C,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACrD,EACyD,CAAA,UAAA,CAAA,CAAA,EAAA,6DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACzD,EAKgB,CAAA,UAAA,CAAA,CAAA,EAAA,yEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;IAChB,EAKgB,CAAA,UAAA,CAAA,CAAA,EAAA,yEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;IAChB,EAKgB,CAAA,UAAA,CAAA,CAAA,EAAA,yEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;IAClB,EAAW,CAAA,YAAA,EAAA,CAAA;;;IArBP,EAA+C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/C,EAA+C,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,+BAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IAC7C,EAAmG,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnG,EAAmG,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,KAAA,MAAA,CAAA,mBAAA,IAAA,MAAA,CAAA,oBAAA,IAAA,MAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;IAEvF,EAAiD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjD,EAAiD,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,IAAA,MAAA,CAAA,mBAAA,CAAA,CAAA;IAMjD,EAAkD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlD,EAAkD,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,IAAA,MAAA,CAAA,oBAAA,CAAA,CAAA;IAMlD,EAAkD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlD,EAAkD,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,IAAA,MAAA,CAAA,oBAAA,CAAA,CAAA;;;IAjBpE,EAuBW,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;;;IAvBA,EAAgC,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,0BAAA,CAAA,CAAA;;ACKhC,IAAA,uBAAuB,SAAvB,uBAAuB,CAAA;IA8ElC,WACU,CAAA,QAAkB,EAClB,SAAoB,EACpB,mBAAwC,EACxC,KAAwB,EACxB,iBAAoC,EAAA;QAJpC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QACxB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAlFvC,IAA0B,CAAA,0BAAA,GAAY,KAAK,CAAC;QAE1C,IAA8B,CAAA,8BAAA,GAAY,KAAK,CAAC;QAEhD,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;QAE7C,IAA8B,CAAA,8BAAA,GAAY,KAAK,CAAC;QAEhD,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAE1B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAE3B,IAAiB,CAAA,iBAAA,GAA6B,EAAE,CAAC;QAEjD,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAE5B,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;KAmE1C;AAjEJ,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAED,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAC1B,GAAG,CAAC,CAAC,MAAM,KACT,MAAM,CAAC,MAAM,CACX,CAAC,KAAK,KACJ,KAAK,CAAC,eAAe,KAAK,KAAK;AAC/B,aAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAChD,CACF,CACF,CAAC;KACH;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,KAAK,CAAC;KAC1D;AAED,IAAA,IAAI,yBAAyB,GAAA;AAC3B,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACrC;YACE,WAAW,EAAE,qBAAqB,CAAC,OAAO;AAC3C,SAAA,EACD,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,WAAW;YACxC,KAAK,qBAAqB,CAAC,MAAM;AAC/B,gBAAA,iBAAiB,CAAC,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC;gBAC7D,MAAM;YACR,KAAK,qBAAqB,CAAC,KAAK;AAC9B,gBAAA,iBAAiB,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC;gBAC5D,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,iBAAiB,CAAC;KAC1B;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,QACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,mBAAmB;AACrB,iBAAA,UAAU,EAAE;iBACZ,MAAM,CAAC,eAAe,CAAC;iBACvB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EACnE;KACH;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACtE;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7E;IAUD,QAAQ,GAAA;;QAEN,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;AACvC,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC5B,EAAE,GAAG,CAAC,CAAC;KACT;IAED,UAAU,GAAA;QACR,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;KACtD;IAED,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KAChD;IAED,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;KACvD;AAED,IAAA,cAAc,CAAC,KAAY,EAAA;AACzB,QAAA,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE;AACxC,YAAA,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;AACxG,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAmB,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;KACrD;EACF;8FAnHY,uBAAuB,EAAA,EAAA,CAAA,iBAAA,CAAAT,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAkB,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAV,IAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAW,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;0EAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,OAAA,EAAA,EAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,gCAAA,EAAA,YAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,CAAA,GAAA,EAAA,mQAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,GAAA,EAAA,+JAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,GAAA,EAAA,sGAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QD7BpC,EAqBiB,CAAA,UAAA,CAAA,CAAA,EAAA,iDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;;QAEjB,EAyBc,CAAA,UAAA,CAAA,CAAA,EAAA,8CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;AAhD0B,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,MAAA,CAAgC,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;;AC6B3D,uBAAuB,GAAA,UAAA,CAAA;AAVnC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,KAAK,EAAE,2BAA2B;AAClC,QAAA,IAAI,EAAE,KAAK;KACZ,CAAC;AAMW,CAAA,EAAA,uBAAuB,CAmHnC,CAAA;uFAnHY,uBAAuB,EAAA,CAAA;cALnC,SAAS;2BACE,sBAAsB,EAAA,QAAA,EAAA,o+GAAA,EAAA,MAAA,EAAA,CAAA,uZAAA,CAAA,EAAA,CAAA;8KAOvB,8BAA8B,EAAA,CAAA;kBAAtC,KAAK;YAEG,2BAA2B,EAAA,CAAA;kBAAnC,KAAK;YAEG,8BAA8B,EAAA,CAAA;kBAAtC,KAAK;YAEG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAEG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YAEG,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;YAEG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YAEG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;;;;;IC9BA,EAA6D,CAAA,SAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA;IAC7D,EAAmE,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,CAAA,CAAA,CAAA;IAAhC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0EAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,WAAA,CAAA,KAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAqB,CAAA,cAAA,CAAA,QAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAoB,CAAA,YAAA,EAAA,CAAA;IACvF,EAAoF,CAAA,SAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,CAAA,CAAA,kCAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;;;;IAF9D,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IAClB,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACX,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAApB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,SAAA,CAAoB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACnB,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAArB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,MAAA,CAAA,UAAA,CAAqB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACnB,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAArB,IAAA,EAAA,CAAA,UAAA,CAAA,cAAA,EAAA,IAAA,CAAqB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IAC1B,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;ACP5C;;AAEG;AAYU,IAAA,gBAAgB,SAAhB,gBAAgB,CAAA;AA4C3B,IAAA,WAAA,CACU,QAAkB,EAClB,SAAoB,EACpB,iBAAoC,EAAA;QAFpC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QA9CrC,IAA8B,CAAA,8BAAA,GAAY,KAAK,CAAC;QAEhD,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;QAE7C,IAA8B,CAAA,8BAAA,GAAY,KAAK,CAAC;QAEhD,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAE1B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAE3B,IAAiB,CAAA,iBAAA,GAA6B,EAAE,CAAC;QAEjD,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;KAmCjC;AAjCJ,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,KAAK,CAAC;KAC1D;AAED,IAAA,IAAI,yBAAyB,GAAA;AAC3B,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACrC;YACE,WAAW,EAAE,qBAAqB,CAAC,OAAO;AAC3C,SAAA,EACD,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,WAAW;YACxC,KAAK,qBAAqB,CAAC,MAAM;AAC/B,gBAAA,iBAAiB,CAAC,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC;gBAC7D,MAAM;YACR,KAAK,qBAAqB,CAAC,KAAK;AAC9B,gBAAA,iBAAiB,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC;gBAC5D,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,iBAAiB,CAAC;KAC1B;AAQD,IAAA,cAAc,CAAC,KAAY,EAAA;AACzB,QAAA,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE;AACxC,YAAA,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;AACxG,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAmB,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;KACrD;EACF;gFA3DY,gBAAgB,EAAA,EAAA,CAAA,iBAAA,CAAAnB,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAkB,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAE,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;mEAAhB,gBAAgB,EAAA,SAAA,EAAA,CAAA,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,KAAA,EAAA,mBAAA,EAAA,2BAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,gCAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,yBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AD5B7B,QAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAe,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;;QAGX,EAS4B,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;QAE1B,EAQc,CAAA,UAAA,CAAA,CAAA,EAAA,uCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;AAEhB,QAAA,EAAA,CAAA,YAAA,EAAiB,EAAA,CAAA;QAGnB,EAAgE,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;;QAC9D,EAA2D,CAAA,SAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;AAC7D,QAAA,EAAA,CAAA,YAAA,EAAU,EAAA,CAAA;;QA3BD,EAAiD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAjD,EAAiD,CAAA,UAAA,CAAA,OAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,2BAAA,CAAA,CAAA,CAAA;QAEtD,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAX,QAAA,EAAA,CAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAW,4CAAA,CAAA,2BAAA,EAAA,GAAA,CAAA,yBAAA,CAAA,CAAA,6BAAA,EAAA,GAAA,CAAA,2BAAA,CAAA,CAAA,gCAAA,EAAA,GAAA,CAAA,8BAAA,CAAA,CAAA,gCAAA,EAAA,GAAA,CAAA,8BAAA,CAAA,qBAAA,CAAA,YAAA,EAAA,GAAA,CAAA,UAAA,CAAA,CAAA;QAuBN,EAAsD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAtD,EAAsD,CAAA,UAAA,CAAA,OAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,gCAAA,CAAA,CAAA,CAAA;;ACCpD,gBAAgB,GAAA,UAAA,CAAA;AAX5B,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,KAAK,EAAE,2BAA2B;AAClC,QAAA,IAAI,EAAE,KAAK;KACZ,CAAC;AAOW,CAAA,EAAA,gBAAgB,CA2D5B,CAAA;uFA3DY,gBAAgB,EAAA,CAAA;cAN5B,SAAS;2BACE,cAAc,EAAA,eAAA,EAGP,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,ihDAAA,EAAA,MAAA,EAAA,CAAA,kJAAA,CAAA,EAAA,CAAA;0GAGtC,8BAA8B,EAAA,CAAA;kBAAtC,KAAK;YAEG,2BAA2B,EAAA,CAAA;kBAAnC,KAAK;YAEG,8BAA8B,EAAA,CAAA;kBAAtC,KAAK;YAEG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAEG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YAEG,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;YAEG,UAAU,EAAA,CAAA;kBAAlB,KAAK;;;;;ICtBA,EAA8G,CAAA,SAAA,CAAA,CAAA,EAAA,8BAAA,EAAA,EAAA,CAAA,CAAA;;;IAA/C,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;;;IAG9E,EACuD,CAAA,cAAA,CAAA,CAAA,EAAA,wBAAA,EAAA,EAAA,CAAA,CAAA;IAA/B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,0HAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAoB,CAAA,kBAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAyB,CAAA,YAAA,EAAA,CAAA;;;;AADtB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,OAAA,CAAA,UAAA,CAAqB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;;;IAE/E,EACsD,CAAA,cAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,EAAA,CAAA,CAAA;IAA9B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wHAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAmB,CAAA,iBAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAwB,CAAA,YAAA,EAAA,CAAA;;;;AADtB,IAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,OAAA,CAAA,SAAA,CAAoB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;;;IAE5E,EAAiG,CAAA,cAAA,CAAA,CAAA,EAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;IAAhC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,gHAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,KAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAqB,CAAA,cAAA,CAAA,QAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAoB,CAAA,YAAA,EAAA,CAAA;;;IAApE,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;;IAPhE,EAA8G,CAAA,UAAA,CAAA,CAAA,EAAA,wFAAA,EAAA,CAAA,EAAA,CAAA,EAAA,8BAAA,EAAA,EAAA,CAAA,CAAA;AAC9G,IAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,EAAA,CAA2D,CAAA,CAAA,EAAA,0BAAA,EAAA,EAAA,CAAA,CAAA;IAE3D,EACgF,CAAA,UAAA,CAAA,CAAA,EAAA,kFAAA,EAAA,CAAA,EAAA,CAAA,EAAA,wBAAA,EAAA,EAAA,CAAA,CAAA;IAChF,EAC8E,CAAA,UAAA,CAAA,CAAA,EAAA,iFAAA,EAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,EAAA,CAAA,CAAA;IAC9E,EAAqH,CAAA,UAAA,CAAA,CAAA,EAAA,6EAAA,EAAA,CAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,EAAA,CAAA,CAAA;IACrH,EAA6D,CAAA,SAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,EAAA,CAAA,CAAA;;;;IAR9B,EAA8B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IACxC,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACV,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAArB,IAAA,EAAA,CAAA,UAAA,CAAA,cAAA,EAAA,IAAA,CAAqB,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IACtB,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/B,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,kBAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IAEhC,EAA8B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA9B,EAA8B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IAElC,EAA2B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA3B,EAA2B,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,cAAA,CAAA,QAAA,CAAA,CAAA,CAAA;IACzB,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;;;;IArBzC,EAUqD,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;IAAnD,EAAwB,CAAA,UAAA,CAAA,sBAAA,EAAA,SAAA,0FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAyB,CAAA,iBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAElD,EAUc,CAAA,UAAA,CAAA,CAAA,EAAA,yDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;IAChB,EAAiB,CAAA,YAAA,EAAA,CAAA;;;AArBf,IAAA,EAAA,CAAA,UAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,iBAAA,CAAuC,+DAAA,CAAA,6BAAA,EAAA,MAAA,CAAA,2BAAA,CAAA,CAAA,gCAAA,EAAA,MAAA,CAAA,8BAAA,CAAA,CAAA,gCAAA,EAAA,MAAA,CAAA,8BAAA,CAAA,CAAA,YAAA,EAAA,KAAA,CAAA,iCAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA;;;;IAyBzC,EAMoE,CAAA,cAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,EAAA,CAAA,CAAA;IAFlE,EAAmB,CAAA,UAAA,CAAA,iBAAA,EAAA,SAAA,mGAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAwB,CAAA,gBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;IAG9C,EAAwB,CAAA,YAAA,EAAA,CAAA;;;IALtB,EAA2C,CAAA,UAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,mBAAA,CAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,CAAA,+CAAA,CAAA,gCAAA,EAAA,MAAA,CAAA,8BAAA,CAAA,CAAA;;;;IAM7C,EAAoF,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,CAAA,CAAA;;;IAEpF,EACmH,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACjH,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;;;IADF,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA,MAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,yCAAA,CAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,yCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;IAOI,EACmC,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IACjC,EAAmD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;;IAAvD,EAAmD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnD,EAAmD,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,mCAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;AAErD,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAmE,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACxC,EACiC,CAAA,cAAA,EAAA,CAAA;IADjC,EACiC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACtD,EAEO,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AACT,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACR,EAAsE,CAAA,eAAA,EAAA,CAAA;IAAtE,EAAsE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAvB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAY,CAAA,UAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACnE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,qCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;;AAEF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAoE,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACzC,EACiC,CAAA,cAAA,EAAA,CAAA;IADjC,EACiC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACtD,EAEO,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AACT,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACR,EAAwE,CAAA,eAAA,EAAA,CAAA;IAAxE,EAAwE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAxB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,sCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;;AAEF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAoE,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACzC,EACiC,CAAA,cAAA,EAAA,CAAA;IADjC,EACiC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACtD,EAEO,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AACT,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACR,EAAwE,CAAA,eAAA,EAAA,CAAA;IAAxE,EAAwE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAxB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,wFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,sCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;AAtCJ,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,CAA6C,CAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;IAEzC,EAA+C,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACrD,EAEyD,CAAA,UAAA,CAAA,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAEzD,EAUgB,CAAA,UAAA,CAAA,CAAA,EAAA,oEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,CAAA;IAChB,EAUgB,CAAA,UAAA,CAAA,CAAA,EAAA,oEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,CAAA;IAChB,EAUgB,CAAA,UAAA,CAAA,CAAA,EAAA,oEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,CAAA;IAClB,EAAW,CAAA,YAAA,EAAA,CAAA;;;IAtCP,EAA+C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/C,EAA+C,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,+BAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IAC7C,EAAmG,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnG,EAAmG,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,oBAAA,KAAA,OAAA,CAAA,mBAAA,IAAA,OAAA,CAAA,oBAAA,IAAA,OAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;IAIvF,EAAiD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjD,EAAiD,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,oBAAA,IAAA,OAAA,CAAA,mBAAA,CAAA,CAAA;IAWjD,EAAkD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlD,EAAkD,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,oBAAA,IAAA,OAAA,CAAA,oBAAA,CAAA,CAAA;IAWlD,EAAkD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlD,EAAkD,CAAA,UAAA,CAAA,MAAA,EAAA,OAAA,CAAA,oBAAA,IAAA,OAAA,CAAA,oBAAA,CAAA,CAAA;;;IA7BpE,EAwCW,CAAA,UAAA,CAAA,CAAA,EAAA,oDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;;;IAxCA,EAAgC,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,0BAAA,CAAA,CAAA;;ACtBjD;;AAEG;AAYU,IAAA,iBAAiB,SAAjB,iBAAiB,CAAA;IAqH5B,WACS,CAAA,kBAAsC,EACrC,SAAoB,EACrB,QAAkB,EACjB,mBAAwC,EACxC,iBAAoC,EAAA;QAJrC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACrC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACrB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACjB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;AAzH9C,QAAA,IAAA,CAAA,OAAO,GAA6B,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,oBAAoB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;QAIrE,IAA0B,CAAA,0BAAA,GAAY,KAAK,CAAC;QAE1C,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QAErC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QAErC,IAA8B,CAAA,8BAAA,GAAY,KAAK,CAAC;QAEhD,IAA2B,CAAA,2BAAA,GAAY,KAAK,CAAC;QAE7C,IAA8B,CAAA,8BAAA,GAAY,KAAK,CAAC;QAIhD,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAE1B,IAAU,CAAA,UAAA,GAAY,IAAI,CAAC;QAE3B,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QAwBtC,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;QAMvB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;KAqEjC;AAjGJ,IAAA,IACI,iBAAiB,GAAA;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;KAChC;IACD,IAAI,iBAAiB,CAAC,KAA+B,EAAA;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;AACpE,QAAA,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC;AAC1C,QAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,WAAW,CAAC;AAClD,QAAA,MAAM,cAAc,GAAG,YAAY,CAAC,SAAS,CAAC;AAE9C,QAAA,KAAK,CAAC,OAAO,GAAG,YAAY,KAAK,EAAE,GAAG,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC;AACnE,QAAA,KAAK,CAAC,WAAW;AACf,YAAA,gBAAgB,KAAK,SAAS,GAAG,gBAAgB,GAAG,KAAK,CAAC,WAAW,CAAC;AACxE,QAAA,KAAK,CAAC,SAAS;AACb,YAAA,cAAc,KAAK,SAAS,GAAG,cAAc,GAAG,KAAK,CAAC,SAAS,CAAC;AAElE,QAAA,KAAK,CAAC,WAAW;AACf,YAAA,KAAK,CAAC,WAAW,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC;AAC9D,QAAA,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC;AAE1E,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;KACjC;AAGD,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAID,IAAA,IAAI,uBAAuB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,GAAG,CAAC,CAAC,MAAM,KACT,MAAM,CAAC,MAAM,CACX,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CACrE,CACF,CACF,CAAC;KACH;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAChE,CAAC;KACH;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,KAAK,CAAC;KAC1D;AAED,IAAA,IAAI,yBAAyB,GAAA;AAC3B,QAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,CACrC;YACE,WAAW,EAAE,qBAAqB,CAAC,OAAO;AAC3C,SAAA,EACD,IAAI,CAAC,iBAAiB,CACvB,CAAC;AAEF,QAAA,QAAQ,IAAI,CAAC,iBAAiB,CAAC,WAAW;YACxC,KAAK,qBAAqB,CAAC,MAAM;AAC/B,gBAAA,iBAAiB,CAAC,WAAW,GAAG,qBAAqB,CAAC,MAAM,CAAC;gBAC7D,MAAM;YACR,KAAK,qBAAqB,CAAC,KAAK;AAC9B,gBAAA,iBAAiB,CAAC,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC;gBAC5D,MAAM;AACR,YAAA;gBACE,MAAM;AACT,SAAA;AACD,QAAA,OAAO,iBAAiB,CAAC;KAC1B;AAID,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,QACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,mBAAmB;AACrB,iBAAA,UAAU,EAAE;iBACZ,MAAM,CAAC,eAAe,CAAC;iBACvB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EACnE;KACH;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACtE;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7E;IAUD,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,EAAE,CAAC;AACnB,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,OAAO;AAChB,YAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;SACpC,CAAC;AACC,aAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACtB,aAAA,SAAS,CAAC,CAAC,KAAwB,KAAI;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CACb,CAAC,KAAK,KACJ,KAAK,CAAC,eAAe,KAAK,KAAK;AAC/B,iBAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAChD,CACF,CAAC;AACJ,SAAC,CAAC,CAAC;QAEL,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AAC/B,gBAAA,IAAI,CAAC,QAAQ,CAAC,mBAAmB,KAAK,SAAS;AAC7C,sBAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AACnC,sBAAE,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACnE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;;AAGD,QAAA,UAAU,CAAC,OAAO,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;KACjE;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;AAC7C,SAAA;KACF;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;IAEO,WAAW,GAAA;QACjB,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,KAAK,CAAC;QACnE,IAAI,eAAe,KAAK,SAAS,EAAE;AACjC,YAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;AACzD,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,QAAQ,EAAE;AAC1C,gBAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC3C,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;AAC3C,aAAA;AACF,SAAA;KACF;AAEM,IAAA,UAAU,CAAC,GAAsB,EAAA;QACtC,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CACpB,CAAC,KAAK,KACJ,KAAK,CAAC,eAAe,KAAK,KAAK;AAC/B,aAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAChD,CACF,CAAC;KACH;AAED,IAAA,iBAAiB,CAAC,cAAwC,EAAA;QACxD,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;KACpE;IAED,aAAa,GAAA;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;aAAM,IACL,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;AACpC,YAAA,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAClC;AACA,YAAA,IAAI,sBAAsB,CAAC;AAC3B,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;gBAC/E,KAAK,CAAC,MAAM,KAAK,CAAC;AAChB,uBAAG,sBAAsB,GAAG,KAAK;AACjC,uBAAG,sBAAsB,GAAG,IAAI,CAAC,CAAC;AACtC,aAAC,CAAC,CAAC;YAEH,IAAI,sBAAsB,KAAK,KAAK,EAAE;AACpC,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,cAAc,CAAC,KAAY,EAAA;AACzB,QAAA,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;AAClB,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,EAAE;AACxC,YAAA,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,KAAK,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;AACxG,SAAA;AACD,QAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAmB,CAAC,CAAC;QAC5E,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;KACrD;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;KACzD;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;KACxD;IAED,UAAU,GAAA;QACR,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;KACtD;IAED,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KAChD;IAED,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;KACvD;AAED,IAAA,kBAAkB,CAAC,KAAK,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;QACzC,OAAO,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,cAAc,IAAI,OAAO,CAAC,UAAU,CAAC;KACxE;AAED,IAAA,iBAAiB,CAAC,KAAK,EAAA;AACrB,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;AACzC,QAAA,OAAO,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO;AACzE,aAAC,OAAO,CAAC,UAAU,CAAC,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY;AAC9F,mBAAA,OAAO,CAAC,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;KACnG;AAED,IAAA,cAAc,CAAC,KAAY,EAAA;QACzB,IACE,CAAC,KAAK,YAAY,WAAW,IAAI,KAAK,CAAC,UAAU,KAAK,IAAI;AAC1D,aAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;aAC3E,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,KAAK,KAAK,CAAC,EAAE,CAAC,EACvF;AACI,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;AACH,QAAA,OAAO,KAAK,CAAC;KACd;AAED,IAAA,iBAAiB,CAAC,KAAY,EAAA;QAC5B,IAAI,KAAK,YAAY,WAAW,EAAE;AAChC,YAAA,IAAK,KAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE;AACtD,gBAAA,OAAO,IAAI,CAAC;AACb,aAAA;AAEF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;EACF;kFAzRY,iBAAiB,EAAA,EAAA,CAAA,iBAAA,CAAAC,kBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAH,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAb,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAD,IAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAkB,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;oEAAjB,iBAAiB,EAAA,SAAA,EAAA,CAAA,CAAA,eAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,uBAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;QD1C9B,EAG2C,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;AAAzC,QAAA,EAAA,CAAA,UAAA,CAAA,mBAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAAqB,sBAAkB,CAAC,EAAA,CAAA,CAAA;;QAExC,EAA8D,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;;QAC5D,EAuBiB,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;;QACnB,EAAU,CAAA,YAAA,EAAA,CAAA;QAEV,EAA8D,CAAA,cAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,CAAA;;QAC5D,EAOwB,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,CAAA;QACxB,EAAoF,CAAA,UAAA,CAAA,EAAA,EAAA,6BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;QAEpF,EAGI,CAAA,UAAA,CAAA,EAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;QACN,EAAU,CAAA,YAAA,EAAA,CAAA;QAER,EA0Cc,CAAA,UAAA,CAAA,EAAA,EAAA,yCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;QAClB,EAAgB,CAAA,YAAA,EAAA,CAAA;;;QA1Fd,EAAyD,CAAA,UAAA,CAAA,eAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,kBAAA,CAAA,YAAA,CAAA,CAAA,CAAA;QAGhD,EAAoD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAApD,EAAoD,CAAA,UAAA,CAAA,OAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,8BAAA,CAAA,CAAA,CAAA;QAC1C,EAAsC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAtC,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,MAAA,KAAA,CAAA,CAAsC,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;QA0BhD,EAAoD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAApD,EAAoD,CAAA,UAAA,CAAA,OAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,8BAAA,CAAA,CAAA,CAAA;QACnC,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAArB,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,aAAA,EAAA,CAAA,CAAA;QAQ/B,EAAsC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAtC,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,MAAA,KAAA,CAAA,CAAsC,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;QAGjD,EAA8G,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA9G,EAA8G,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,mBAAA,IAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,MAAA,KAAA,CAAA,IAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,uBAAA,CAAA,CAAA,MAAA,KAAA,CAAA,CAAA,CAAA;;ACFxG,iBAAiB,GAAA,UAAA,CAAA;AAX7B,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,2BAA2B;AAClC,QAAA,IAAI,EAAE,KAAK;KACZ,CAAC;AAOW,CAAA,EAAA,iBAAiB,CAyR7B,CAAA;uFAzRY,iBAAiB,EAAA,CAAA;cAN7B,SAAS;2BACE,eAAe,EAAA,eAAA,EAGR,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,48KAAA,EAAA,MAAA,EAAA,CAAA,qgBAAA,CAAA,EAAA,CAAA;4KAUtC,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YAEG,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YAEG,8BAA8B,EAAA,CAAA;kBAAtC,KAAK;YAEG,2BAA2B,EAAA,CAAA;kBAAnC,KAAK;YAEG,8BAA8B,EAAA,CAAA;kBAAtC,KAAK;YAEG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YAEG,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAEG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YAEG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YAGF,iBAAiB,EAAA,CAAA;kBADpB,KAAK;YA4BG,UAAU,EAAA,CAAA;kBAAlB,KAAK;YA2CmC,QAAQ,EAAA,CAAA;kBAAhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;;;IC3IzC,EAM+C,CAAA,cAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,CAAA;IAA7C,EAAmB,CAAA,UAAA,CAAA,iBAAA,EAAA,SAAA,wGAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAwB,CAAA,gBAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;IAC9C,EAAwB,CAAA,YAAA,EAAA,CAAA;;;IALtB,EAAuC,CAAA,UAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,iBAAA,CAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,mBAAA,CAAA,yEAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;;;;IAMzC,EAAoF,CAAA,UAAA,CAAA,CAAA,EAAA,+CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,CAAA,CAAA;;;IAEpF,EACmH,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACjH,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;;;IADF,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,cAAA,CAAA,CAAA,MAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,yCAAA,CAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,yCAAA,CAAA,EAAA,IAAA,CAAA,CAAA;;;IAOI,EAA0I,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IACxI,EAAmD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;;IAAvD,EAAmD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnD,EAAmD,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,mCAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;;;AAErD,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAmE,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IACxC,EAAiH,CAAA,cAAA,EAAA,CAAA;IAAjH,EAAiH,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAAC,EAAoR,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACta,EAAsE,CAAA,eAAA,EAAA,CAAA;IAAtE,EAAsE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAvB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAY,CAAA,UAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACnE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,qCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;;AAEF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAoE,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IACzC,EAAiH,CAAA,cAAA,EAAA,CAAA;IAAjH,EAAiH,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAAC,EAA+K,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACjU,EAAwE,CAAA,eAAA,EAAA,CAAA;IAAxE,EAAwE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAxB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,sCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;;AAEF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAoE,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IACzC,EAAiH,CAAA,cAAA,EAAA,CAAA;IAAjH,EAAiH,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;IAAC,EAAsH,CAAA,SAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,CAAA;AAAC,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;IACxQ,EAAwE,CAAA,eAAA,EAAA,CAAA;IAAxE,EAAwE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAxB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrE,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;;IADH,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,sCAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;AAtBJ,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,CAA6C,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAEzC,EAA+C,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACrD,EACyD,CAAA,UAAA,CAAA,CAAA,EAAA,4DAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAEzD,EAKgB,CAAA,UAAA,CAAA,CAAA,EAAA,wEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;IAChB,EAKgB,CAAA,UAAA,CAAA,CAAA,EAAA,wEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;IAChB,EAKgB,CAAA,UAAA,CAAA,CAAA,EAAA,wEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,CAAA,CAAA;IAClB,EAAW,CAAA,YAAA,EAAA,CAAA;;;IAtBP,EAA+C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/C,EAA+C,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,+BAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IAC7C,EAAmG,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnG,EAAmG,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,KAAA,MAAA,CAAA,mBAAA,IAAA,MAAA,CAAA,oBAAA,IAAA,MAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;IAGvF,EAAiD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAjD,EAAiD,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,IAAA,MAAA,CAAA,mBAAA,CAAA,CAAA;IAMjD,EAAkD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlD,EAAkD,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,IAAA,MAAA,CAAA,oBAAA,CAAA,CAAA;IAMlD,EAAkD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlD,EAAkD,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,oBAAA,IAAA,MAAA,CAAA,oBAAA,CAAA,CAAA;;;IAlBpE,EAwBW,CAAA,UAAA,CAAA,CAAA,EAAA,wDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;;;IAxBA,EAAgC,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,0BAAA,CAAA,CAAA;;ACehC,IAAA,sBAAsB,SAAtB,sBAAsB,CAAA;AA6DjC,IAAA,WAAA,CACU,QAAkB,EAClB,SAAoB,EACpB,mBAAwC,EACxC,KAAwB,EAAA;QAHxB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QAhE3B,IAA0B,CAAA,0BAAA,GAAY,KAAK,CAAC;AAEnD,QAAA,IAAA,CAAA,OAAO,GAA6B,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,oBAAoB,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAC5E,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,aAAa,CAAO,CAAC,CAAC,CAAC;QAK5B,IAA8B,CAAA,8BAAA,GAAY,KAAK,CAAC;QAEhD,IAAoB,CAAA,oBAAA,GAAY,IAAI,CAAC;QAErC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QAErC,IAAmB,CAAA,mBAAA,GAAY,KAAK,CAAC;QAErC,IAAiB,CAAA,iBAAA,GAA6B,EAAE,CAAC;KAgDtD;AA9CJ,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAED,IAAA,IAAI,uBAAuB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,GAAG,CAAC,MAAM,IACR,MAAM,CAAC,MAAM,CACX,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,KAAK,CAAC,qBAAqB,CAAC,KAAK,CACnE,CACF,CACF,CAAC;KACH;AAED,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CACtB,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC5D,CAAC;KACH;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,IAAI,KAAK,CAAC;KAC1D;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,QACE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;AACnE,YAAA,IAAI,CAAC,mBAAmB;AACrB,iBAAA,UAAU,EAAE;iBACZ,MAAM,CAAC,eAAe,CAAC;iBACvB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EACjE;KACH;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;KACtE;AAED,IAAA,IAAI,oBAAoB,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC;KAC7E;IAQD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,OAAO;AAChB,YAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;SACpC,CAAC;AACC,aAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;AACtB,aAAA,SAAS,CAAC,CAAC,KAAwB,KAAI;YACtC,IAAI,CAAC,OAAO,CAAC,IAAI,CACf,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CACb,KAAK,IACH,KAAK,CAAC,eAAe,KAAK,KAAK;AAC/B,iBAAC,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAChD,CACF,CAAC;AACJ,SAAC,CAAC,CAAC;QAEL,IAAI,IAAI,CAAC,mBAAmB,EAAE;YAC5B,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AAC/B,gBAAA,IAAI,CAAC,QAAQ,CAAC,mBAAmB,KAAK,SAAS;AAC7C,sBAAE,IAAI,CAAC,QAAQ,CAAC,mBAAmB;AACnC,sBAAE,IAAI,CAAC,mBAAmB,IAAI,KAAK,CAAC;YACxC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACnE,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,SAAA;;QAGD,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;AACvC,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;SAC5B,EAAE,GAAG,CAAC,CAAC;KACT;AAED,IAAA,gBAAgB,CAAC,KAAK,EAAA;AACpB,QAAA,IAAI,CAAC,QAAQ,CAAC,mBAAmB,GAAG,KAAK,CAAC;AAC1C,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,aAAa,GAAA;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;AACxC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;aAAM,IACL,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC;AACpC,YAAA,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAClC;AACA,YAAA,IAAI,sBAAsB,CAAC;YAC3B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,KAAK,IAAG;gBAC7E,KAAK,CAAC,MAAM,KAAK,CAAC;AAChB,uBAAG,sBAAsB,GAAG,KAAK;AACjC,uBAAG,sBAAsB,GAAG,IAAI,CAAC,CAAC;AACtC,aAAC,CAAC,CAAC;YAEH,IAAI,sBAAsB,KAAK,KAAK,EAAE;AACpC,gBAAA,OAAO,KAAK,CAAC;AACd,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,YAAA,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;AAC7C,SAAA;KACF;IAED,UAAU,GAAA;QACR,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;KACtD;IAED,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KAChD;IAED,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;KACvD;EACF;4FAjJY,sBAAsB,EAAA,EAAA,CAAA,iBAAA,CAAAtB,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAkB,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAV,IAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;yEAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,8BAAA,EAAA,gCAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,2BAAA,EAAA,EAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gCAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,OAAA,EAAA,0BAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,EAAA,CAAA,2BAAA,EAAA,EAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gCAAA,EAAA,qBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,EAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,CAAA,GAAA,EAAA,mQAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,GAAA,EAAA,+JAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,GAAA,EAAA,sGAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QDhCnC,EAOwB,CAAA,UAAA,CAAA,CAAA,EAAA,uDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,CAAA;QACxB,EAAoF,CAAA,UAAA,CAAA,CAAA,EAAA,iCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;;QAEpF,EAGI,CAAA,UAAA,CAAA,CAAA,EAAA,mCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;QAGJ,EA0Bc,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;QA1CU,EAAqB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,aAAA,EAAA,CAAA,CAAA;QAQ/B,EAAsC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAtC,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,MAAA,KAAA,CAAA,CAAsC,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;QAGjD,EAA8G,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA9G,EAA8G,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,GAAA,CAAA,mBAAA,IAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,MAAA,KAAA,CAAA,IAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,uBAAA,CAAA,CAAA,MAAA,KAAA,CAAA,CAAA,CAAA;;ACqBpG,sBAAsB,GAAA,UAAA,CAAA;AAVlC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE,8BAA8B;AACrC,QAAA,IAAI,EAAE,2BAA2B;KAClC,CAAC;AAMW,CAAA,EAAA,sBAAsB,CAiJlC,CAAA;uFAjJY,sBAAsB,EAAA,CAAA;cALlC,SAAS;2BACE,qBAAqB,EAAA,QAAA,EAAA,8kGAAA,EAAA,MAAA,EAAA,CAAA,uXAAA,CAAA,EAAA,CAAA;iJActB,8BAA8B,EAAA,CAAA;kBAAtC,KAAK;YAEG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YAEG,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YAEG,mBAAmB,EAAA,CAAA;kBAA3B,KAAK;YAEG,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;;;;;ICzCQ,EAAsG,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAAA,CAAA;IAA5B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+EAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,MAAA,GAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAiB,CAAA,cAAA,CAAA,GAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAe,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAa,CAAA,YAAA,EAAA,CAAA;;;IAAxE,EAAe,CAAA,UAAA,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA;IAA6B,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAf,EAAe,CAAA,iBAAA,CAAA,QAAA,CAAA,KAAA,CAAA,CAAA;;;;IATrI,EAAmG,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA;IAG5E,EAA+E,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAY,CAAA,YAAA,EAAA,CAAA;AACtG,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAA8C,CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;IAClB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,GAAA,GAAA,EAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAY,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAC1C,EACJ,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAa,CAAA,YAAA,EAAA,CAAA;IACb,EAA2B,CAAA,SAAA,CAAA,EAAA,EAAA,aAAA,CAAA,CAAA;IAC3B,EAAkI,CAAA,UAAA,CAAA,EAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,CAAA,CAAA;AACtI,IAAA,EAAA,CAAA,YAAA,EAAa,EAAA,EAAA,CAAA;IAIrB,EAG0C,CAAA,cAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;IAAtC,EAAU,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAA0B,CAAA,UAAA,CAAA,MAAA,CAAA,OAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACrC,EACJ,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAmB,EAAA,CAAA;;;IAlBI,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAlB,EAAkB,CAAA,UAAA,CAAA,WAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA;IAEtB,EAA+E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/E,EAA+E,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,+DAAA,CAAA,CAAA,CAAA;IAE1E,EAAW,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAX,EAAW,CAAA,UAAA,CAAA,OAAA,EAAA,CAAA,CAAA,CAAA;IACnB,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,4DAAA,CAAA,EAAA,GAAA,CAAA,CAAA;IAE8B,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA1B,EAA0B,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,uBAAA,CAAA,CAAA;IAMhE,EAAiB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAjB,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,MAAA,CAAA,KAAA,CAAiB,CAAA,eAAA,EAAA,QAAA,CAAA,CAAA;IAGjB,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,wDAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;;;AAIA,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,CAAU,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAEF,EAAwE,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IAChF,EAAoC,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;IAChC,EAA4E,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAI,CAAA,YAAA,EAAA,CAAA;IACpF,EAAe,CAAA,cAAA,CAAA,CAAA,EAAA,eAAA,CAAA,CAAA;IACX,EAAqD,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACrD,EAAsE,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAvB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,iEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAY,CAAA,UAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACjE,EACJ,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;IAET,EAAe,CAAA,cAAA,CAAA,EAAA,EAAA,eAAA,CAAA,CAAA;IACX,EAAyD,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IACzD,EAAwE,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAxB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACnE,EACJ,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,CAAA;IAET,EAAe,CAAA,cAAA,CAAA,EAAA,EAAA,eAAA,CAAA,CAAA;IACX,EAAkD,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IAClD,EAAwE,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;IAAxB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,kEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAa,CAAA,WAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IACnE,EACJ,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAK,EAAA,EAAA,CAAA;;IAnBL,EAAwE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAxE,EAAwE,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,wDAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IAExE,EAA4E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA5E,EAA4E,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,4DAAA,CAAA,EAAA,EAAA,CAAA,CAAA;IAIxE,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,EAAA,8DAAA,CAAA,EAAA,GAAA,CAAA,CAAA;IAKI,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,+DAAA,CAAA,EAAA,GAAA,CAAA,CAAA;IAKI,EACJ,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADI,EACJ,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,+DAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;MC/BC,sBAAsB,CAAA;AAgBjC,IAAA,WAAA,CACS,QAAkB,EACjB,cAA8B,EAC9B,WAA+B,EAC/B,SAAoB,EAAA;QAHrB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACjB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;QAC/B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QAnBvB,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;QAoB1B,IAAI,CAAC,SAAS,EAAE,CAAC;KACpB;AAbD;;AAEG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAUD;;;AAGG;IACF,QAAQ,GAAA;AACP,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,IAAI,IAAI,CAAC,uBAAuB,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,KAC5E,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;KACpE;AAED;;;AAGG;IACH,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;AAED;;AAEG;IACK,SAAS,GAAA;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACpC,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACH,IAAA,UAAU,CAAC,MAAe,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAC1C,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;QACD,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACpD;AAED;;AAEG;AACH,IAAA,cAAc,CAAC,CAAC,EAAA;AACd,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,CAAC,SAAS,EAAE;AAAC,YAAA,CAAC,CAAC,SAAS,GAAG,KAAK,CAAC;AAAE,SAAA;AACxC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;AACtD,QAAA,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;QAC9D,IAAI,cAAc,KAAK,SAAS,EAAC;AAC/B,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;AACpB,SAAA;KACF;AAED;;AAEG;AACH,IAAA,SAAS,CAAC,CAAC,EAAA;QACT,IAAI,CAAC,CAAC,SAAS,EAAE;AACf,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;AACjE,YAAA,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;AACpB,SAAA;AACI,aAAA;YACH,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxC,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACvB;AAED;;AAEG;IACH,UAAU,GAAA;QACR,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;KACtD;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KAChD;AAED;;AAEG;IACH,WAAW,GAAA;QACT,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;KACvD;;4FAhHU,sBAAsB,EAAA,EAAA,CAAA,iBAAA,CAAAR,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAM,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAiB,SAAA,CAAA,CAAA,CAAA,EAAA,CAAA;yEAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,4BAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,EAAA,CAAA,GAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA,aAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,SAAA,EAAA,MAAA,CAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QDbnC,EAoBM,CAAA,UAAA,CAAA,CAAA,EAAA,qCAAA,EAAA,EAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;QAEN,EAyBc,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,EAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;;;AA/CR,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,uBAAA,CAAA,MAAA,CAAsC,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;;uFCa/B,sBAAsB,EAAA,CAAA;cANlC,SAAS;2BACE,oBAAoB,EAAA,QAAA,EAAA,+/EAAA,EAAA,MAAA,EAAA,CAAA,krBAAA,CAAA,EAAA,CAAA;;;;ICN5B,EAAkE,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA;IAC9D,EAEsC,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;IAC1C,EAAiB,CAAA,YAAA,EAAA,CAAA;;;IAFX,EAAwF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAxF,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,4DAAA,CAAA,CAAwF,CAAA,OAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;IAI5F,EAAoC,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA;IAClC,EAEkC,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;IAAA,EAAiB,CAAA,YAAA,EAAA,CAAA;;;IADrD,EAAwF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAxF,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,4DAAA,CAAA,CAAwF,CAAA,OAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;IAI1F,EAAoE,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA;IAChE,EAEsC,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;IAC1C,EAAiB,CAAA,YAAA,EAAA,CAAA;;;IAFX,EAAwF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAxF,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,4DAAA,CAAA,CAAwF,CAAA,OAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;IAI5F,EAAqC,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA;IAAE,EAEH,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;IAAA,EAAiB,CAAA,YAAA,EAAA,CAAA;;;IADrD,EAAyF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAzF,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,6DAAA,CAAA,CAAyF,CAAA,OAAA,EAAA,MAAA,CAAA,WAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;IAczF,EAGqC,CAAA,cAAA,CAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAAA,CAAA;AAAnC,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+EAAA,CAAA,MAAA,EAAA,EAAA,OAAS,wBAAwB,CAAC,EAAA,CAAA,CAAA;IAClC,EACF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAa,CAAA,YAAA,EAAA,CAAA;;;IAHX,EAAoB,CAAA,UAAA,CAAA,OAAA,EAAA,cAAA,CAAA,CAAA;IAEpB,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,cAAA,CAAA,eAAA,IAAA,cAAA,CAAA,KAAA,EAAA,GAAA,CAAA,CAAA;;AC9BN;;AAEG;MAMU,4BAA4B,CAAA;AAqCvC,IAAA,WAAA,CACS,QAAkB,EACjB,eAAgC,EAChC,cAA8B,EAC9B,KAAwB,EACxB,cAA8B,EAC9B,MAAqB,EACrB,WAA+B,EAAA;QANhC,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QACjB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QACxB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAoB;AA3ClC,QAAA,IAAA,CAAA,eAAe,GAA4B,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;AACnE,QAAA,IAAA,CAAA,YAAY,GAAwC,IAAI,eAAe,CAAC,EAAE,CAAC,CAAC;QAI5E,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,CAAY,CAAC;QACpE,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;QAC1B,IAAU,CAAA,UAAA,GAAG,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;QAEvC,IAAuB,CAAA,uBAAA,GAAkC,EAAE,CAAC;AAE5D,QAAA,IAAA,CAAA,WAAW,GAAqB;AACtC,YAAA,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC5H,YAAA,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;SACnE,CAAC;QACM,IAAY,CAAA,YAAA,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC;QACnD,IAAK,CAAA,KAAA,GAAY,IAAI,CAAC;QA4BzB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AA7BH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;KACzC;IACD,IAAI,SAAS,CAAC,KAAuB,EAAA;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;KAC5C;AACD,IAAA,IAAI,sBAAsB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC;KAC3C;IAED,IACI,sBAAsB,CAAC,KAAoC,EAAA;AAC7D,QAAA,IAAI,CAAC,uBAAuB,GAAG,KAAK,CAAC;KACtC;AAcD;;AAEG;IACH,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aAC3G,SAAS,CAAC,MAAK;AAClB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC7B,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzF,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,MAAM,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AACjE,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,cAAc,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;gBAC/D,IAAI,CAAC,WAAW,EAAE,CAAC;AACpB,aAAA;YACD,IAAI,UAAU,GAAG,KAAK,CAAC;AACvB,YAAA,IAAI,cAAc,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;AAC5C,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,cAAc,CAAC;gBACvC,UAAU,GAAG,IAAI,CAAC;AACnB,aAAA;AACD,YAAA,IAAI,cAAc,KAAK,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE;AAC5C,gBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,cAAc,CAAC;gBACvC,UAAU,GAAG,IAAI,CAAC;AACnB,aAAA;AACD,YAAA,IAAI,UAAU,EAAE;gBACd,IAAI,CAAC,2BAA2B,EAAE,CAAC;AACpC,aAAA;AACD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACjD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACzC,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AACrF,SAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAqB,CAAC;QACvF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,aAAa,KAAK,IAAI,EAC1B;YACE,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC/C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,gBAAgB,EAAE,CAAC;AACzB,SAAA;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;AACzC,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KAC1F;IAED,WAAW,GAAA;QACT,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KAC/B;AAED,IAAA,aAAa,CAAC,GAAW,EAAA;AACvB,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;KACpF;AACD;;;AAGG;IACH,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,QAAA,IAAI,KAAK,CAAC;AACV,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QACjC,IAAI,OAAO,GAAG,CAAC,CAAC;AAChB,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAC5D,OAAO,GAAG,CAAC,CAAC;AACb,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,KAAK,WAAW,IAAI,IAAI,KAAK,WAAW,CAAC,CAAC;QAC5D,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;AAC7E,QAAA,OAAO,KAAK,CAAC;KACd;AAED;;AAEG;IACH,mBAAmB,GAAA;AACjB,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/D,QAAA,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,OAAO,CACzB,gEAAgE,EAChE,kEAAkE,CAAC,CAAC;AACvE,SAAA;KACF;AAED;;AAEG;AACH,IAAA,aAAa,CAAC,MAAe,EAAA;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,QAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;KACvE;AAED;;AAEG;IACK,SAAS,GAAA;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;YACjC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvC,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;IACK,2BAA2B,GAAA;AACjC,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3C,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AACjD,QAAA,YAAY,CAAC,GAAG,CAAC,CAAC,IAAG;AACnB,YAAA,IAAI,CAAC,CAAC,YAAY,KAAK,KAAK,EAAE;gBAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAA,SAAA,EAAY,IAAI,CAAE,CAAA,GAAG,CAAA,QAAA,EAAW,EAAE,GAAG,IAAI,EAAE,CAAC;AACrE,oBAAA,CAAC,CAAC,KAAK,GAAG,CAAO,IAAA,EAAA,IAAI,EAAE,CAAC;AACxB,oBAAA,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACd,oBAAA,CAAC,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,EAAE,CAAC;oBACnB,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;AACtF,iBAAA;AACI,qBAAA;AACH,oBAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC;AACb,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACvB,oBAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,KAAK,EAAE;wBACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,qBAAA;AACF,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,CAAC,YAAY,KAAK,KAAK,EAAE;gBAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,gBAAA,MAAM,IAAI,GAAG,CAAW,QAAA,EAAA,IAAI,EAAE,CAAC;AAC/B,gBAAA,CAAC,CAAC,KAAK,GAAG,CAAO,IAAA,EAAA,IAAI,EAAE,CAAC;AACxB,gBAAA,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AACd,gBAAA,CAAC,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,EAAE,CAAC;gBACnB,CAAC,CAAC,eAAe,GAAG,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,CAAC,CAAC,CAAC;AACtF,aAAA;AACH,SAAC,CAAC,CAAC;AACH,QAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC;AACxD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACtC;AAED;;AAEG;IACK,kBAAkB,GAAA;QACxB,IAAI,CAAC,sBAAsB,GAAG,6BAA6B,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzF,MAAM,WAAW,GAAuB,EAAE,CAAC;AAE3C,QAAA,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAClC,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC1F,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;AACjD,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;YACrC,WAAW,CAAC,IAAI,CAAC;AACf,gBAAA,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACvG,gBAAA,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;AACnE,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE;YACrC,WAAW,CAAC,IAAI,CAAC;AACf,gBAAA,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,4CAA4C,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACvG,gBAAA,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;AACnE,aAAA,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;YAC3C,WAAW,CAAC,IAAI,CAAC;AACf,gBAAA,eAAe,EAAE,SAAS,CAAC,OAAO,CAAC,kDAAkD,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC7G,gBAAA,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE;AAChF,aAAA,CAAC,CAAC;AACJ,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE;;YAEnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,gBAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAA,SAAA,EAAY,IAAI,CAAE,CAAA,GAAG,CAAA,QAAA,EAAW,EAAE,GAAG,IAAI,EAAE,CAAC;AACrE,gBAAA,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACvB,oBAAA,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnH,oBAAA,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAO,IAAA,EAAA,IAAI,CAAE,CAAA,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA,EAAG,IAAI,CAAE,CAAA;AACjE,iBAAA,CAAC,CAAC;AACJ,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AACxB,aAAA;AACF,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE;AACnC,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,YAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAY,SAAA,EAAA,IAAI,EAAE,GAAG,CAAW,QAAA,EAAA,IAAI,EAAE,CAAC;AAChE,YAAA,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE;AAC3B,gBAAA,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnH,gBAAA,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAO,IAAA,EAAA,IAAI,CAAE,CAAA,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA,EAAG,IAAI,CAAE,CAAA;AACjE,aAAA,CAAC,CAAC;AACJ,SAAA;QACD,IAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE;YAC9C,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;AAC/D,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;KAC9D;AAED;;;AAGG;AACK,IAAA,OAAO,CAAC,WAAoC,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE;YACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,YAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAA,SAAA,EAAY,IAAI,CAAE,CAAA,GAAG,CAAA,QAAA,EAAW,EAAE,GAAG,IAAI,EAAE,CAAC;AACrE,YAAA,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACrB,gBAAA,eAAe,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACnH,gBAAA,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,CAAO,IAAA,EAAA,IAAI,CAAE,CAAA,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA,EAAG,IAAI,CAAE,CAAA;AAAC,aAAA,CAAC,CAAC;AACxE,SAAA;KACF;AAED;;;AAGG;IACK,WAAW,GAAA;AACjB,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAC5C,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;KACvB;AAED;;AAEG;IACK,gBAAgB,GAAA;AACtB,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,KAAK,EAAE;YACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAO,IAAA,EAAA,IAAI,EAAE,CAAC;AACrC,YAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAA,SAAA,EAAY,IAAI,CAAE,CAAA,GAAG,CAAA,QAAA,EAAW,EAAE,GAAG,IAAI,EAAE,CAAC;AACrE,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrI,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,KAAK,EAAE;YACzC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,CAAO,IAAA,EAAA,IAAI,EAAE,CAAC;AACrC,YAAA,MAAM,IAAI,GAAG,IAAI,GAAG,EAAE,GAAG,CAAY,SAAA,EAAA,IAAI,EAAE,GAAG,CAAW,QAAA,EAAA,IAAI,EAAE,CAAC;AAChE,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC;YAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,0CAA0C,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACrI,SAAA;KACF;AAED;;;;AAIG;AACH,IAAA,cAAc,CAAC,aAA+B,EAAA;AAC5C,QAAA,MAAM,EAAE,GAAG,aAAa,CAAC,YAAY,CAAC;AACtC,QAAA,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;QAClC,IAAI,QAAQ,CAAC;QACb,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,UAAU,KAAI;AACzC,YAAA,IAAI,EAAE,EAAE;AACN,gBAAA,IAAI,EAAE,KAAK,UAAU,CAAC,YAAY,EAAE;oBAClC,QAAQ,GAAG,IAAI,CAAC;AACjB,iBAAA;AACF,aAAA;AACI,iBAAA,IAAI,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE;gBACnC,QAAQ,GAAG,IAAI,CAAC;AACjB,aAAA;AACD,YAAA,IAAI,EAAE,CAAC;AACT,SAAC,CAAC,CAAC;QACH,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,CAAC,CAAC;AACnC,QAAA,OAAO,QAAQ,CAAC;KACjB;AAED;;;AAGG;AACH,IAAA,YAAY,CAAC,WAA6B,EAAA;QACxC,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAChE,QAAA,kBAAkB,CAAC,OAAO,CAAC,UAAU,IAAG;AACpC,YAAA,IAAI,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AAC3C,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1C,YAAA,MAAM,gBAAgB,GAAGC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAChG,YAAA,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC;AAC5E,gBAAA,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,EAAE;AAC9E,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;gBAC9B,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,EAAE;oBAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7C,iBAAA;AACD,gBAAA,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,CAAC,KAAK,CAAC,CAAC;AACtE,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxC,aAAA;AACI,iBAAA;AACD,gBAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;AACxB,oBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;AACxD,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAChC,iBAAA;AACJ,aAAA;AACL,SAAC,CAAC,CAAC;KACJ;;wGA3VU,4BAA4B,EAAA,EAAA,CAAA,iBAAA,CAAAxB,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,kBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;+EAA5B,4BAA4B,EAAA,SAAA,EAAA,CAAA,CAAA,0BAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,6CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oDAAA,CAAA,EAAA,CAAA,OAAA,EAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,WAAA,EAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,CAAA,YAAA,EAAA,EAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,wCAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,SAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,4BAAA,EAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,CAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,UAAA,EAAA,EAAA,EAAA,MAAA,EAAA,GAAA,EAAA,CAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,CAAA,UAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,cAAA,CAAA,EAAA,CAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,OAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ADlBzC,QAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyD,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;QAErD,EAIiB,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;QACjB,EAKc,CAAA,UAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;QAEd,EAIiB,CAAA,UAAA,CAAA,CAAA,EAAA,sDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;QACjB,EAIc,CAAA,UAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;QAChB,EAAM,CAAA,YAAA,EAAA,CAAA;QAEN,EACkC,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;AAAhC,QAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,6DAAA,GAAA,EAAA,OAAS,yBAAqB,CAAC,EAAA,CAAA,CAAA;;QAC/B,EAA4C,CAAA,SAAA,CAAA,EAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;AAChD,QAAA,EAAA,CAAA,YAAA,EAAS,EAAA,CAAA;AAET,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAqE,yBAAA,CAAA,EAAA,EAAA,WAAA,CAAA,CAAA;QAEtD,EAAoF,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;QAAA,EAAY,CAAA,YAAA,EAAA,CAAA;QAC3G,EAAkC,CAAA,cAAA,CAAA,EAAA,EAAA,YAAA,EAAA,EAAA,CAAA,CAAA;QAAtB,EAAqB,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,wEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA;QAC/B,EAKa,CAAA,UAAA,CAAA,EAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,EAAA,CAAA,CAAA;;AACf,QAAA,EAAA,CAAA,YAAA,EAAa,EAAA,CAAA;QAEf,EAG2C,CAAA,cAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,CAAA,CAAA;AAAzC,QAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,yEAAA,CAAA,MAAA,EAAA,EAAA,OAAU,iCAA6B,CAAC,EAAA,CAAA,CAAA;QACxC,EACF,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,QAAA,EAAA,CAAA,YAAA,EAAmB,EAAA,CAAA;QAGrB,EAAmC,CAAA,cAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;QAAA,EAA+G,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;QAAA,EAAI,CAAA,YAAA,EAAA,CAAA;QACtJ,EAAmC,CAAA,cAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;QAAA,EAA4G,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;;QAAA,EAAI,CAAA,YAAA,EAAA,CAAA;QACnJ,EAAmC,CAAA,cAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,CAAA,CAAA;QAAA,EAA6I,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;;QAAA,EAAI,CAAA,YAAA,EAAA,CAAA;;;;QAnD/J,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAb,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,KAAA,CAAa,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;QAYb,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAb,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,KAAA,CAAa,CAAA,UAAA,EAAA,GAAA,CAAA,CAAA;QAYR,EAA6F,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA7F,EAA6F,CAAA,WAAA,CAAA,YAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,6DAAA,CAAA,CAAA,CAAA;QAKrE,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAlB,EAAkB,CAAA,UAAA,CAAA,WAAA,EAAA,GAAA,CAAA,IAAA,CAAA,CAAA;QAErD,EAAoF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAApF,EAAoF,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,oEAAA,CAAA,CAAA,CAAA;QACnF,EAAqB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAArB,EAAqB,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAAA;QAEN,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAzB,EAAyB,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA,CAAA;QAQpD,EAAkB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAlB,QAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,MAAA,CAAkB,CAAA,eAAA,EAAA,QAAA,CAAA,CAAA;QAGlB,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,+DAAA,CAAA,EAAA,GAAA,CAAA,CAAA;QAGiC,EAA+G,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA/G,EAA+G,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,6DAAA,CAAA,EAAA,GAAA,EAAA,GAAA,CAAA,GAAA,CAAA,cAAA,CAAA,OAAA,EAAA,EAAA,EAAA,CAAA,CAAA;QAC/G,EAA4G,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA5G,EAA4G,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,8DAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,CAAA;QAC5G,EAA6I,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA7I,EAA6I,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,mEAAA,CAAA,EAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,GAAA,CAAA,cAAA,CAAA,aAAA,EAAA,EAAA,OAAA,CAAA,EAAA,EAAA,CAAA,CAAA;;uFCnCnK,4BAA4B,EAAA,CAAA;cALxC,SAAS;2BACE,0BAA0B,EAAA,QAAA,EAAA,mmGAAA,EAAA,MAAA,EAAA,CAAA,uoBAAA,CAAA,EAAA,CAAA;6OAqChC,sBAAsB,EAAA,CAAA;kBADzB,KAAK;;;AC/BK,IAAA,wBAAwB,SAAxB,wBAAwB,CAAA;AASnC,IAAA,WAAA,CACS,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAAI;AAR/B,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC;KAC1D;AACD,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,eAAe,CAAC;KAChE;AAKD,IAAA,cAAc,CAAC,KAAK,EAAA;QAClB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,GAAG,KAAK,CAAC;KAC1D;AAED,IAAA,YAAY,CAAC,KAAK,EAAA;QAChB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,cAAc,GAAG,KAAK,CAAC;KAChE;EACF;gGAnBY,wBAAwB,EAAA,EAAA,CAAA,iBAAA,CAAAA,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;2EAAxB,wBAAwB,EAAA,SAAA,EAAA,CAAA,CAAA,uBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,YAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,QAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,iCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCnBrC,EAAuB,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;QAAA,EAA6E,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;QAAA,EAAK,CAAA,YAAA,EAAA,CAAA;AACzG,QAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,oBAAA,CAAyC,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;QAEzC,EAAuB,CAAA,cAAA,CAAA,CAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;QAAA,EAAoF,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;QAAA,EAAK,CAAA,YAAA,EAAA,CAAA;AAChH,QAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,0BAAA,CAAqD,CAAA,CAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA;QAGrD,EAAuB,CAAA,cAAA,CAAA,EAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;QAAA,EAAqE,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;QAAA,EAAK,CAAA,YAAA,EAAA,CAAA;AAEjG,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAiC,cAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;AAM3B,QAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAAU,kCAA8B,CAAC,EAAA,CAAA,CAAA;;QACzC,EACF,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;QAAA,EAAmB,CAAA,YAAA,EAAA,CAAA;QAEnB,EAK0C,CAAA,cAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;AAAxC,QAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAAU,gCAA4B,CAAC,EAAA,CAAA,CAAA;;;QACvC,EACF,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,QAAA,EAAA,CAAA,YAAA,EAAmB,EAAA,EAAA,CAAA;;QA1BA,EAA6E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA7E,EAA6E,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,6DAAA,CAAA,CAAA,CAAA;QAG7E,EAAoF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAApF,EAAoF,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,oEAAA,CAAA,CAAA,CAAA;QAIpF,EAAqE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAArE,EAAqE,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,qDAAA,CAAA,CAAA,CAAA;QAMtF,EAA6B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA7B,QAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,SAAA,CAAA,CAA6B,CAAA,eAAA,EAAA,QAAA,CAAA,CAAA;QAG7B,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,wDAAA,CAAA,EAAA,GAAA,CAAA,CAAA;QAIE,EAAyC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAzC,QAAA,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,SAAA,CAAA,KAAA,IAAA,CAAyC,wDAAA,CAAA,eAAA,EAAA,QAAA,CAAA,CAAA;QAIzC,EACF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QADE,EACF,CAAA,kBAAA,CAAA,GAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,sDAAA,CAAA,EAAA,GAAA,CAAA,CAAA;;ADPS,wBAAwB,GAAA,UAAA,CAAA;AAfpC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,aAAa;AACnB,QAAA,KAAK,EAAE,mCAAmC;AAC1C,QAAA,IAAI,EAAE,SAAS;KAChB,CAAC;AAEF;;AAEG;AAOU,CAAA,EAAA,wBAAwB,CAmBpC,CAAA;uFAnBY,wBAAwB,EAAA,CAAA;cANpC,SAAS;2BACE,uBAAuB,EAAA,QAAA,EAAA,g3CAAA,EAAA,MAAA,EAAA,CAAA,ocAAA,CAAA,EAAA,CAAA;;;AEKnC;;AAEG;MAIU,iBAAiB,CAAA;IAgB5B,WACU,CAAA,QAAkB,EAClB,cAA8B,EAAA;QAD9B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAhBhC,IAA2B,CAAA,2BAAA,GAAW,EAAE,CAAC;AAE1C,QAAA,IAAA,CAAA,QAAQ,GAA6B,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AACzE,QAAA,IAAA,CAAA,qBAAqB,GAA4B,IAAI,eAAe,CACzE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,oBAAoB,CAAW,IAAI,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACxF,QAAA,IAAA,CAAA,sBAAsB,GAA4B,IAAI,eAAe,CAAS,aAAa,CAAC,CAAC;AAC7F,QAAA,IAAA,CAAA,qBAAqB,GAA0B,IAAI,YAAY,CAAU,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QACxG,IAAM,CAAA,MAAA,GAAmB,EAAE,CAAC;AAC7B,QAAA,IAAA,CAAA,0BAA0B,GAAsC,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AAUpG,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAK;YAC/C,IAAI,CAAC,yBAAyB,EAAE,CAAC;AACnC,SAAC,CAAC,CAAC;KACJ;AAXD,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;IAYD,yBAAyB,GAAA;AACvB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ;AACb,YAAA,IAAI,CAAC,sBAAsB;AAC3B,YAAA,IAAI,CAAC,qBAAqB;YAC1B,QAAQ,CAAC,IAAI,CAAC;AACd,YAAA,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS;SACzC,CAAC;AACC,aAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACvB,aAAA,SAAS,CAAC,CAAC,KAA6D,KAAI;AAC3E,YAAA,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,CAAC;AACnC,YAAA,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;YAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC;AAClE,YAAA,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,YAAA,MAAM,oBAAoB,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,oBAAoB,EAAE,oBAAoB,IAAI,IAAI,CAAC,2BAA2B,CAAC,CAAC;YAExG,IAAI,CAAC,OAAO,EAAE;gBACZ,OAAO;AACR,aAAA;AAGD,YAAA,IAAI,KAAe,CAAC;YACpB,IAAI,YAAY,KAAK,aAAa,EAAE;AAClC,gBAAA,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;oBACvC,OAAO;AACR,iBAAA;AAED,gBAAA,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC1F,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACjC,aAAA;AAAM,iBAAA;gBACL,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;gBAAA,CAAC;gBAC7C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,aAAA;AAED,YAAA,MAAM,WAAW,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;YAC9E,MAAM,kBAAkB,GAAG,YAAY,CAAC,WAA+B,EAAE,CAAC,CAAC,CAAC;AAC5E,YAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAEzD,MAAM,eAAe,GAAG,MAAM;iBAC3B,MAAM,CAAC,KAAK,IACX,KAAK,CAAC,EAAE,YAAY,aAAa;AAChC,gBAAA,KAAK,CAAC,UAAkC,CAAC,OAAO,CAAC,SAAS;AAC3D,gBAAA,KAAK,CAAC,OAAO;gBACb,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAEhC,YAAA,eAAe,CAAC,GAAG,CAAC,cAAc,IAAG;gBACnC,MAAM,WAAW,GAAG,cAAc,CAAC,EAAE,CAAC,SAAS,EAA8B,CAAC;;gBAG9E,MAAM,sBAAsB,GAAG,WAAW,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC1E,gBAAA,IAAI,sBAAsB,IAAI,sBAAsB,CAAC,MAAM,EAAE;AAC3D,oBAAA,sBAAsB,CAAC,GAAG,CAAC,qBAAqB,IAAG;AACjD,wBAAA,MAAM,qBAAqB,GAAG,aAAa,CAAC,qBAAqB,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBACxF,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAC;;AAEtE,wBAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACjF,qBAAC,CAAC,CAAC;AACJ,iBAAA;AAAM,qBAAA;;oBAEL,MAAM,gBAAgB,GAAG,WAAW,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;AAC1E,oBAAA,IAAI,gBAAgB,EAAE;AACpB,wBAAA,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;AACrD,wBAAA,MAAM,cAAc,GAAG,aAAa,CAAC,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;wBAC5E,MAAM,oBAAoB,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;wBAClE,MAAM,WAAW,GAAG,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;wBACpE,MAAM,UAAU,GAAG,uBAAuB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;wBACrE,IAAI,UAAU,IAAI,oBAAoB,EAAE;4BACtC,IAAI,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;;AAE/D,4BAAA,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAClF,yBAAA;AACF,qBAAA;AACF,iBAAA;AACH,aAAC,CAAC,CAAC;SAEJ,CAAC,CAAC,CAAC;KACP;AAEC;;;AAGC;IACQ,iBAAiB,CAAC,KAAY,EAAE,2BAA2B,EAAE,OAAgB,EAAE,KAAK,EAAE,QAAQ,EAAA;AACrG,QAAA,MAAM,SAAS,GAAG,IAAI,EAAE,CAAC;AACzB,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC;QACzD,MAAM,UAAU,GAAG,OAAO,CAAC,EAAE,CAAC,WAAW,EAAc,CAAC;QACxD,MAAM,QAAQ,GAAG,IAAIyB,eAAO,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE;AAC7D,YAAA,iBAAiB,EAAE,UAAU;AAC7B,YAAA,cAAc,EAAE,UAAU;AAC3B,SAAA,CAAQ,CAAC;AACV,QAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;AAChC,YAAA,IAAI,EAAE,OAAO;YACb,QAAQ;AACR,YAAA,UAAU,EAAE,UAAU,CAAC,OAAO,EAAE;AAChC,YAAA,UAAU,EAAE,EAAC,GAAG,OAAO,CAAC,UAAU,EAAC,GAAG;AACpC,oBAAA,EAAE,EAAE,SAAS;AACb,oBAAA,OAAO,EAAE,KAAK;oBACd,QAAQ;oBACR,2BAA2B;oBAC3B,UAAU,EAAE,KAAK,CAAC,EAAE;oBACpB,aAAa,EAAE,KAAK,CAAC,KAAK;iBAC3B,EAAC;AACF,YAAA,IAAI,EAAE;AACJ,gBAAA,EAAE,EAAE,SAAS;AACd,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;IAEH,aAAa,CAAC,OAAgB,EAAE,KAAY,EAAA;AAC1C,QAAA,IAAI,KAAK,CAAC;AACV,QAAA,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;AAClC,YAAA,MAAM,iBAAiB,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM;AAC3C,iBAAA,OAAqC,CAAC;YACzC,IAAI,iBAAiB,CAAC,UAAU,EAAE;gBAChC,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACnE,aAAA;AACF,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;IAED,aAAa,CAAC,OAAgB,EAAE,UAAU,EAAA;QACxC,IAAI,KAAK,GAAG,UAAU,CAAC;AACvB,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAExE,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,IAAG;YACrB,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,SAAC,CAAC,CAAC;;QAGH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,KAAK,UAAU,EAAE;YACnD,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC;AACtD,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;;kFAjKU,iBAAiB,EAAA,EAAA,CAAA,QAAA,CAAAzB,QAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA,CAAA;uEAAjB,iBAAiB,EAAA,OAAA,EAAjB,iBAAiB,CAAA,IAAA,EAAA,UAAA,EAFhB,MAAM,EAAA,CAAA,CAAA;uFAEP,iBAAiB,EAAA,CAAA;cAH7B,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;;;ICtBD,EAA0G,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA;IACxG,EAEgC,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;IAClC,EAAiB,CAAA,YAAA,EAAA,CAAA;;;IAFb,EAAoE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAApE,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,wCAAA,CAAA,CAAoE,CAAA,OAAA,EAAA,QAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;IAGxE,EAA4G,CAAA,cAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,EAAA,CAAA,CAAA;IAC1G,EAEiC,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;IACnC,EAAiB,CAAA,YAAA,EAAA,CAAA;;;IAFb,EAAoE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAApE,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,wCAAA,CAAA,CAAoE,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;;;IAIxE,EACkC,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAA,CAAA;IAAhC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,mEAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAqB,CAAA,mBAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAC/B,EAA4C,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;IAC9C,EAAS,CAAA,YAAA,EAAA,CAAA;;ACQI,IAAA,yBAAyB,SAAzB,yBAAyB,CAAA;AA4CpC,IAAA,WAAA,CACS,QAAkB,EAClB,iBAAoC,EACnC,eAAgC,EAChC,cAA8B,EAAA;QAH/B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QA9ChC,IAAM,CAAA,MAAA,GAAmB,EAAE,CAAC;AAepC;;;AAGG;AACI,QAAA,IAAA,CAAA,aAAa,GAAwB;AAC1C,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,UAAU,EAAE,KAAK;AACjB,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,OAAO,EAAE;AACP,gBAAA;AACE,oBAAA,IAAI,EAAE,SAAS;oBACf,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,4CAA4C,CAAC;AAC3F,oBAAA,aAAa,EAAE,CAAC,YAAqB,KAAI;AACvC,wBAAA,OAAO,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC;qBACxC;AACF,iBAAA;AACD,gBAAA;AACE,oBAAA,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,6CAA6C,CAAC;AAC5F,oBAAA,aAAa,EAAE,CAAC,YAAqB,KAAI;AACvC,wBAAA,OAAO,CAAG,EAAA,WAAW,CAAC,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAAC;qBAC/E;AACF,iBAAA;AACF,aAAA;SACF,CAAC;KAOD;AA5CD,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,KAAK,CAAC;KAC3D;IACD,IAAI,WAAW,CAAC,KAAa,EAAA;QAC3B,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1D;AAED,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;IAqCD,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3C,QAAA,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,cAAc,KAAK,IAAI,CAAC;AACxF,QAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,KAAK,IAAI,CAAC;AAE/D,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC,IAAG;YAC3E,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,aAAa,CAAC,CAAC;YAC9C,IAAI,CAAC,KAAK,aAAa,EAAE;gBACvB,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,cAAc,GAAG,IAAI,CAAC;AACtD,aAAA;AAAM,iBAAA;gBACL,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,cAAc,GAAG,KAAK,CAAC;AACvD,aAAA;SACF,CAAC,CAAC,CAAC;KACL;IAED,WAAW,GAAA;QACT,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC;KAChF;AAED,IAAA,oBAAoB,CAAC,CAAiB,EAAA;QACpC,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;KAC7D;AAED;;AAEG;IACH,mBAAmB,GAAA;AAEjB,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvG,QAAA,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,4CAA4C,EAAE,8CAA8C,CAAC,CAAC;AAC3H,SAAA;KACF;EACF;kGAvFY,yBAAyB,EAAA,EAAA,CAAA,iBAAA,CAAAA,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA0B,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAlB,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,EAAA,CAAA,cAAA,CAAA,CAAA,CAAA,EAAA,CAAA;4EAAzB,yBAAyB,EAAA,SAAA,EAAA,CAAA,CAAA,wBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;;ADxBtC,QAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA,CAA+I,CAAA,CAAA,EAAA,IAAA,CAAA,CAAA;QAE/I,EAIiB,CAAA,UAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;;QACjB,EAIiB,CAAA,UAAA,CAAA,CAAA,EAAA,mDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,CAAA;;QAEjB,EAGS,CAAA,UAAA,CAAA,CAAA,EAAA,2CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;;AACT,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAA6B,CAAA,EAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;QACa,EAA2D,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,QAAA,EAAA,CAAA,YAAA,EAAY,EAAA,CAAA;AAEjH,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAgD,CAAA,EAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,CAAA;AAC7B,QAAA,EAAA,CAAA,UAAA,CAAA,QAAA,EAAA,SAAA,qEAAA,CAAA,MAAA,EAAA,EAAA,OAAU,gCAA4B,CAAC,EAAA,CAAA,CAAA;QACtD,EAAmH,CAAA,cAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,CAAA,CAAA,CAAA;;QAAA,EAAgE,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;QAAA,EAAmB,CAAA,YAAA,EAAA,CAAA;QACtM,EAA+G,CAAA,cAAA,CAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,CAAA,CAAA;;QAAA,EAA8D,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAAA,QAAA,EAAA,CAAA,YAAA,EAAmB,EAAA,EAAA,CAAA;AAIpM,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAyB,0BAAA,CAAA,EAAA,EAAA,WAAA,CAAA,CAAA;QAGV,EAA4D,CAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;QAAA,EAAY,CAAA,YAAA,EAAA,CAAA;QACnF,EAAoJ,CAAA,cAAA,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,CAAA,CAAA;QAA9G,EAAyB,CAAA,UAAA,CAAA,eAAA,EAAA,SAAA,kEAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,WAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA;;AAA/D,QAAA,EAAA,CAAA,YAAA,EAAoJ,EAAA,EAAA,CAAA;;AA/BzG,QAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,qBAAA,CAAiD,CAAA,UAAA,EAAA,GAAA,CAAA,aAAA,CAAA,CAAA;QAE/E,EAA2D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA3D,EAA2D,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,0BAAA,CAAA,CAAA,CAAA;QAK3D,EAA2D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA3D,EAA2D,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,0BAAA,CAAA,CAAA,CAAA;QAMnE,EAA6H,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA7H,EAA6H,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,0BAAA,CAAA,IAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,0BAAA,CAAA,CAAA,MAAA,CAAA,CAAA;QAK5F,EAA2D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA3D,EAA2D,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,2CAAA,CAAA,CAAA,CAAA;QAI/E,EAA4E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA5E,EAA4E,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,sBAAA,CAAA,KAAA,aAAA,CAAA,CAAA;QAAqB,EAAgE,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAhE,EAAgE,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,gDAAA,CAAA,CAAA,CAAA;QACjK,EAA0E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA1E,EAA0E,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,sBAAA,CAAA,KAAA,WAAA,CAAA,CAAA;QAAmB,EAA8D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA9D,EAA8D,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,8CAAA,CAAA,CAAA,CAAA;QAOlK,EAA4D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA5D,EAA4D,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,4CAAA,CAAA,CAAA,CAAA;QACE,EAA0E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA1E,EAA0E,CAAA,qBAAA,CAAA,aAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,EAAA,4CAAA,CAAA,CAAA,CAAA;QAA7G,EAAyB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,WAAA,CAAA,CAAA;;ACPtD,yBAAyB,GAAA,UAAA,CAAA;AAfrC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,KAAK,EAAE,sCAAsC;AAC7C,QAAA,IAAI,EAAE,QAAQ;KACf,CAAC;AAEF;;AAEG;AAOU,CAAA,EAAA,yBAAyB,CAuFrC,CAAA;uFAvFY,yBAAyB,EAAA,CAAA;cANrC,SAAS;2BACE,wBAAwB,EAAA,QAAA,EAAA,6pEAAA,EAAA,MAAA,EAAA,CAAA,stBAAA,CAAA,EAAA,CAAA;gJAQI,KAAK,EAAA,CAAA;kBAA1C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;;;MCsDzB,eAAe,CAAA;AAC1B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,eAAe;AACzB,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;8EANU,eAAe,GAAA,CAAA,EAAA,CAAA;iEAAf,eAAe,EAAA,CAAA,CAAA;qEApCxB,WAAW;QACX,mBAAmB;QACnB,qBAAqB;QACrB,gBAAgB;QAChB,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,iBAAiB;QACjB,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,qBAAqB;QACrB,cAAc;QACd,eAAe;QACf,cAAc;QACd,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,aAAa;QACb,eAAe;QACf,gBAAgB;QAChB,oBAAoB,CAAA,EAAA,CAAA,CAAA;uFAQX,eAAe,EAAA,CAAA;cAtC3B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,WAAW;oBACX,mBAAmB;oBACnB,qBAAqB;oBACrB,gBAAgB;oBAChB,eAAe;oBACf,eAAe;oBACf,kBAAkB;oBAClB,cAAc;oBACd,iBAAiB;oBACjB,gBAAgB;oBAChB,YAAY;oBACZ,aAAa;oBACb,aAAa;oBACb,aAAa;oBACb,iBAAiB;oBACjB,cAAc;oBACd,iBAAiB;oBACjB,iBAAiB;oBACjB,qBAAqB;oBACrB,cAAc;oBACd,eAAe;oBACf,cAAc;oBACd,gBAAgB;oBAChB,qBAAqB;oBACrB,oBAAoB;oBACpB,aAAa;oBACb,eAAe;oBACf,gBAAgB;oBAChB,oBAAoB;AACrB,iBAAA;AACD,gBAAA,YAAY,EAAE,CAAE,wBAAwB,EAAE,yBAAyB,EAAE,gBAAgB;oBACnF,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,4BAA4B,CAAC;AAC3H,gBAAA,OAAO,EAAE,CAAC,wBAAwB,EAAE,yBAAyB,EAAE,gBAAgB;AAC7E,oBAAA,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,CAAC;gBACrE,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,eAAe,EANV,EAAA,YAAA,EAAA,CAAA,wBAAwB,EAAE,yBAAyB,EAAE,gBAAgB;QACnF,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,4BAA4B,CAAA,EAAA,OAAA,EAAA,CA/BxH,WAAW;QACX,mBAAmB;QACnB,qBAAqB;QACrB,gBAAgB;QAChB,eAAe;QACf,eAAe;QACf,kBAAkB;QAClB,cAAc;QACd,iBAAiB;QACjB,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,aAAa;QACb,aAAa;QACb,iBAAiB;QACjB,cAAc;QACd,iBAAiB;QACjB,iBAAiB;QACjB,qBAAqB;QACrB,cAAc;QACd,eAAe;QACf,cAAc;QACd,gBAAgB;QAChB,qBAAqB;QACrB,oBAAoB;QACpB,aAAa;QACb,eAAe;QACf,gBAAgB;AAChB,QAAA,oBAAoB,CAIZ,EAAA,OAAA,EAAA,CAAA,wBAAwB,EAAE,yBAAyB,EAAE,gBAAgB;QAC7E,iBAAiB,EAAE,uBAAuB,EAAE,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACzEtE;;AAEG;MAIU,YAAY,CAAA;AASvB,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAPtC;;AAEG;AACI,QAAA,IAAA,CAAA,KAAK,GAAqC,IAAI,YAAY,CAAqB,EAAE,EAAE;AACxF,YAAA,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;AACvB,SAAA,CAAC,CAAC;AAID,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;YAC7C,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,GAAG;AACxE,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;AAC1C,qBAAA,MAAM,CAAC,OAAO,IAAK,OAAe,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACjF,qBAAA,GAAG,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;wEAnBU,YAAY,EAAA,EAAA,CAAA,QAAA,CAAAR,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;kEAAZ,YAAY,EAAA,OAAA,EAAZ,YAAY,CAAA,IAAA,EAAA,UAAA,EAFX,MAAM,EAAA,CAAA,CAAA;uFAEP,YAAY,EAAA,CAAA;cAHxB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACAD;;AAEG;AAWU,IAAA,qBAAqB,SAArB,qBAAqB,CAAA;IAchC,WACU,CAAA,YAA0B,EAC1B,QAAkB,EAAA;QADlB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KACxB;AAfJ;;;AAGG;IACH,IAAI,KAAK,GAAuC,EAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE;AAEjF;;;AAGG;IACH,IAAI,GAAG,GAAa,EAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;EAOhD;0FAnBY,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA2B,YAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA5B,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;wEAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,mBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCvBlC,EAAyD,CAAA,SAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;;AAA3C,QAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,CAAe,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA;;ADuBhB,qBAAqB,GAAA,UAAA,CAAA;AAVjC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,KAAK,EAAE,gCAAgC;AACvC,QAAA,IAAI,EAAE,OAAO;KACd,CAAC;AAMW,CAAA,EAAA,qBAAqB,CAmBjC,CAAA;uFAnBY,qBAAqB,EAAA,CAAA;cALjC,SAAS;2BACE,mBAAmB,EAAA,eAAA,EAEZ,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,mEAAA,EAAA,CAAA;;;AEfjD;;AAEG;MASU,wBAAwB,CAAA;;gGAAxB,wBAAwB,GAAA,CAAA,EAAA,CAAA;0EAAxB,wBAAwB,EAAA,CAAA,CAAA;8EANjC,iBAAiB,CAAA,EAAA,CAAA,CAAA;uFAMR,wBAAwB,EAAA,CAAA;cARpC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,iBAAiB;AAClB,iBAAA;gBACD,YAAY,EAAE,CAAC,qBAAqB,CAAC;gBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;gBAChC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,wBAAwB,EAJpB,EAAA,YAAA,EAAA,CAAA,qBAAqB,CAFlC,EAAA,OAAA,EAAA,CAAA,iBAAiB,aAGT,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCHpB,mBAAmB,CAAA;;sFAAnB,mBAAmB,GAAA,CAAA,EAAA,CAAA;qEAAnB,mBAAmB,EAAA,CAAA,CAAA;yEAH5B,wBAAwB,CAAA,EAAA,CAAA,CAAA;uFAGf,mBAAmB,EAAA,CAAA;cAP/B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,OAAO,EAAE;oBACP,wBAAwB;AACzB,iBAAA;AACF,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,mBAAmB,cAH5B,wBAAwB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACQf,IAAA,kBAAkB,SAAlB,kBAAkB,CAAA;AAK7B,IAAA,WAAA,CAAoB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KAAI;AAJ1C,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;EAGF;oFANY,kBAAkB,EAAA,EAAA,CAAA,iBAAA,CAAAC,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;qEAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QChB/B,EAAmC,CAAA,SAAA,CAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,CAAA;;QAAxB,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA;;ADgBT,kBAAkB,GAAA,UAAA,CAAA;AAT9B,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,6BAA6B;AACpC,QAAA,IAAI,EAAE,SAAS;KAChB,CAAC;AAKW,CAAA,EAAA,kBAAkB,CAM9B,CAAA;uFANY,kBAAkB,EAAA,CAAA;cAJ9B,SAAS;2BACE,gBAAgB,EAAA,QAAA,EAAA,2CAAA,EAAA,CAAA;;;MEEf,iBAAiB,CAAA;AAC5B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;kFANU,iBAAiB,GAAA,CAAA,EAAA,CAAA;mEAAjB,iBAAiB,EAAA,CAAA,CAAA;uEALlB,cAAc,CAAA,EAAA,CAAA,CAAA;uFAKb,iBAAiB,EAAA,CAAA;cAN7B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACR,OAAO,EAAE,CAAC,cAAc,CAAC;gBACzB,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,iBAAiB,EAJb,EAAA,YAAA,EAAA,CAAA,kBAAkB,CADvB,EAAA,OAAA,EAAA,CAAA,cAAc,aAEd,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACU9B;;AAEG;MAIU,WAAW,CAAA;IAqCtB,WACU,CAAA,mBAAwC,EACxC,cAA8B,EAC9B,cAA8B,EAC9B,aAA4B,EAC5B,QAAkB,EAAA;QAJlB,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAzCrB,IAAiB,CAAA,iBAAA,GAA4B,EAAE,CAAC;QAChD,IAAkB,CAAA,kBAAA,GAA6B,EAAE,CAAC;QAClD,IAA2B,CAAA,2BAAA,GAA6B,EAAE,CAAC;QAC3D,IAAuB,CAAA,uBAAA,GAA6B,EAAE,CAAC;AAKrD,QAAA,IAAA,CAAA,mBAAmB,GAA4B,IAAI,eAAe,CAAC,GAAG,CAAC,CAAC;AAExE,QAAA,IAAA,CAAA,WAAW,GAA4B,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AAEtE,QAAA,IAAA,CAAA,WAAW,GAA4B,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AAEtE,QAAA,IAAA,CAAA,eAAe,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAEvE,QAAA,IAAA,CAAA,6BAA6B,GAA6B,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAErF,QAAA,IAAA,CAAA,qBAAqB,GAA6B,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AAEjF,QAAA,IAAA,CAAA,eAAe,GAAkC,IAAI,eAAe,CAAC,SAAS,CAAC,CAAC;AAEzF;;AAEG;AACM,QAAA,IAAA,CAAA,KAAK,GAA8B,IAAI,WAAW,CAAe,EAAE,CAAC,CAAC;QAiB5E,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAI3E,CAAC;AACF,QAAA,IAAI,kBAAkB,EAAE;AACtB,YAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC;AAClD,YAAA,IAAI,CAAC,2BAA2B,GAAG,kBAAkB,CAAC,SAAS,CAAC;AAChE,YAAA,IAAI,CAAC,uBAAuB,GAAG,kBAAkB,CAAC,KAAK,CAAC;AACzD,SAAA;QAED,MAAM,4BAA4B,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,8BAA8B,CAAY,CAAC;AACxG,QAAA,IAAI,4BAA4B,EAAE;AAChC,YAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;AACvE,SAAA;AACD,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,KAAK,CAAC,CAAC;QAErE,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,KAAK,WAAW,CAAC,CAAC;AACvG,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS;aAClC,SAAS,CAAC,CAAC,IAAG;YACb,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,gBAAgB,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;YACtH,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACnE,SAAC,CACA,CAAC;QACF,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAxCD;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,mBAAmB;AAC5B,aAAA,iBAAiB,EAAE;AACnB,aAAA,GAAG,CAAC,CAAC,MAAoB,KAAM,MAAM,CAAC,WAAmB,CAAC,IAAI,CAAC,CAAC;KACpE;IAmCO,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO;AACtB,aAAA,SAAS,CAAC,CAAC,MAAM,KAAI;YACpB,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;gBACvC,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACtD,IAAI,CAAC,KAAK,EAAE;oBACV,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBACpD,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACzC,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACN;IAEO,8BAA8B,GAAA;AACpC,QAAA,MAAM,gBAAgB,GAAG,CAAC,MAAkC,KAAI;YAC9D,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;AAC1C,SAAC,CAAC;AACF,QAAA,OAAO,IAAI,mCAAmC,CAAC,EAAC,gBAAgB,EAAmC,CAAC,CAAC;KACtG;AAED;;;AAGG;IACH,gCAAgC,GAAA;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnF,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,QAAQ,CAAC,QAAQ,EAAE,CAAC;AACrB,SAAA;KACF;AAED;;;AAGG;IACH,kCAAkC,GAAA;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,mCAAmC,CAAC,CAAC;QACnF,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,QAAQ,CAAC,UAAU,EAAE,CAAC;AACvB,SAAA;KACF;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACjC;AAED,IAAA,aAAa,CAAC,UAAkB,EAAA;AAC9B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACnC;AAED,IAAA,aAAa,CAAC,UAAkB,EAAA;AAC9B,QAAA,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACnC;IAED,uBAAuB,GAAA;AACrB,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACvC;AAED,IAAA,iBAAiB,CAAC,MAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACnC;AAED,IAAA,8BAA8B,CAAC,KAAK,EAAA;QAClC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;AAC/D,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAChD;;sEA5IU,WAAW,EAAA,EAAA,CAAA,QAAA,CAAAJ,IAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAqB,cAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAW,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;iEAAX,WAAW,EAAA,OAAA,EAAX,WAAW,CAAA,IAAA,EAAA,UAAA,EAFV,MAAM,EAAA,CAAA,CAAA;uFAEP,WAAW,EAAA,CAAA;cAHvB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;MClBY,yBAAyB,CAAA;IASpC,WACkB,CAAA,SAA6B,EACrC,WAAwB,EAAA;QADhB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAoB;QACrC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;KAC9B;AAVJ,IAAA,IAAI,UAAU,GAAA,EAAa,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;AACvE,IAAA,IAAI,UAAU,GAAA,EAAa,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE;IAWvE,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,UAAkB,KAAI;AAChF,YAAA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;AACnD,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACpC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,UAAkB,KAAI;AAChF,YAAA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;AACnD,gBAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC1C,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,cAAuB,KAAI;AAC7F,YAAA,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,cAAc,CAAC;AAC3C,SAAC,CAAC,CAAC;KACJ;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;AAChC,QAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;KACrC;AAGD,IAAA,kBAAkB,CAAC,UAAmB,EAAA;AACpC,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5C,SAAA;KACF;AAGD,IAAA,kBAAkB,CAAC,UAAmB,EAAA;AACpC,QAAA,IAAI,UAAU,KAAK,IAAI,CAAC,UAAU,EAAE;AAClC,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AAC5C,SAAA;KACF;;kGAlDU,yBAAyB,EAAA,EAAA,CAAA,iBAAA,CAAAhC,IAAA,CAAA,kBAAA,EAAA,CAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAiC,WAAA,CAAA,CAAA,CAAA,EAAA,CAAA;4EAAzB,yBAAyB,EAAA,SAAA,EAAA,CAAA,CAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,SAAA,sCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AAAzB,QAAA,EAAA,CAAA,UAAA,CAAA,kBAAA,EAAA,SAAA,6DAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,kBAAA,CAAA,MAAA,CAA0B,iHAA1B,GAA0B,CAAA,kBAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAA,CAAA;;uFAA1B,yBAAyB,EAAA,CAAA;cAHrC,SAAS;AAAC,QAAA,IAAA,EAAA,CAAA;AACT,gBAAA,QAAQ,EAAE,uBAAuB;AAClC,aAAA,CAAA;;sBAWI,IAAI;+CA6BP,kBAAkB,EAAA,CAAA;kBADjB,YAAY;mBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;YAQ5C,kBAAkB,EAAA,CAAA;kBADjB,YAAY;mBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AChD9C;;AAEG;MAMU,qBAAqB,CAAA;;0FAArB,qBAAqB,GAAA,CAAA,EAAA,CAAA;uEAArB,qBAAqB,EAAA,CAAA,CAAA;2EAJtB,eAAe,CAAA,EAAA,CAAA,CAAA;uFAId,qBAAqB,EAAA,CAAA;cALjC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACR,OAAO,EAAE,CAAC,eAAe,CAAC;gBAC1B,YAAY,EAAE,CAAC,yBAAyB,CAAC;gBACzC,OAAO,EAAE,CAAC,yBAAyB,CAAC;AACrC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,qBAAqB,EAHjB,EAAA,YAAA,EAAA,CAAA,yBAAyB,CAD9B,EAAA,OAAA,EAAA,CAAA,eAAe,aAEf,yBAAyB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;ICZrC,EAAkG,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,SAAA,EAAA,CAAA,CAAA,SAAA,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA;IAElF,EAA+D,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAS,EAAA,CAAA;AACpF,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,GAAA,CAAG,CAAA,CAAA,EAAA,QAAA,CAAA,CAAA;IAAQ,EAA8D,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;AAAA,IAAA,EAAA,CAAA,YAAA,EAAS,EAAA,CAAA;IAClF,EAAiG,CAAA,SAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;;AACrG,IAAA,EAAA,CAAA,YAAA,EAAU,EAAA,CAAA;;IAHM,EAA+D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA/D,EAA+D,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,6CAAA,CAAA,CAAA,CAAA;IAChE,EAA8D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAA9D,EAA8D,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,4CAAA,CAAA,CAAA,CAAA;IACpE,EAAqF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAArF,EAAqF,CAAA,UAAA,CAAA,WAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,EAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,EAAA,4CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,cAAA,CAAA,CAAA;;;IA+BtF,EAMwB,CAAA,SAAA,CAAA,CAAA,EAAA,uBAAA,EAAA,EAAA,CAAA,CAAA;;;;IALtB,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,CAAA,CAAA,QAAA,EAAA,MAAA,CAAA,MAAA,CAAA,CAAA,OAAA,EAAA,SAAA,CAAA,CAAA,yBAAA,EAAA,MAAA,CAAA,uBAAA,CAAA,CAAA;;;;IAqBf,EAOkC,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAA,CAAA;IAAhC,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,+FAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAqB,CAAA,mBAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;;IAC/B,EAK0C,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;;;IAC5C,EAAS,CAAA,YAAA,EAAA,CAAA;;;IATP,EAAgM,CAAA,UAAA,CAAA,YAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,0BAAA,CAAA,GAAA,iEAAA,GAAA,wDAAA,CAAA,CAAA,CAAA;IAIhM,EAA4D,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA5D,IAAA,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,0BAAA,CAAA,GAAA,GAAA,GAAA,EAAA,CAA4D,CAAA,gBAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,0BAAA,CAAA,KAAA,KAAA,CAAA,CAAA;;;;IAnBhE,EAAmH,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;IAAxD,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,yFAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAsB,CAAA,cAAA,CAAA,MAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAEzF,EAI6B,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAA,CAAA;IAA3B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,sFAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAgB,CAAA,cAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAC1B,EAAsG,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,EAAA,CAAA,CAAA;;IACxG,EAAS,CAAA,YAAA,EAAA,CAAA;IAET,EAcS,CAAA,UAAA,CAAA,CAAA,EAAA,uEAAA,EAAA,CAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,CAAA,CAAA;IAET,EAK8B,CAAA,cAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,EAAA,CAAA,CAAA;IAA5B,EAAgB,CAAA,UAAA,CAAA,cAAA,EAAA,SAAA,0GAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAU,CAAA,QAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;AAC7B,IAAA,EAAA,CAAA,YAAA,EAAsB,EAAA,CAAA;;;AAhCb,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,YAAA,CAAsB,CAAA,eAAA,EAAA,IAAA,CAAA,CAAA;IAOnB,EAAgF,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAhF,EAAgF,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,cAAA,CAAA,KAAA,WAAA,GAAA,UAAA,GAAA,YAAA,CAAA,CAAA;IAIzF,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,UAAA,CAAA,MAAA,EAAA,MAAA,CAAA,OAAA,CAAA,QAAA,CAAA,CAAA;IAiBvB,EAA4B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAA5B,IAAA,EAAA,CAAA,UAAA,CAAA,SAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAA4B,mBAAA,CAAA,SAAA,EAAA,MAAA,CAAA,SAAA,CAAA,OAAA,CAAA,CAAA;;;;IAnEpC,EAS2D,CAAA,cAAA,CAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA;;AAEzD,IAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAyB,CAAA,CAAA,EAAA,oBAAA,EAAA,CAAA,CAAA,CAAA;AAQrB,IAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,4FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAe,EAAA,CAAA,WAAA,CAAA,OAAA,CAAA,aAAA,CAAA,MAAA,CAAqB,CAAA,CAAA,EAAA,CAAC,CACrB,cAAA,EAAA,SAAA,6FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAsB,CAAA,cAAA,CAAA,MAAA,CAAA,CAAA,CADD,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,8FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAEpB,EAAA,CAAA,WAAA,CAAA,OAAA,CAAA,eAAA,CAAA,MAAA,CAAuB,CAAA,CAAA,EAAA,CAFH,CAGjB,kBAAA,EAAA,SAAA,iGAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAqB,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,CAHJ,EAAA,CAAA,CAAA,kBAAA,EAAA,SAAA,iGAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAIjB,EAAA,CAAA,WAAA,CAAA,OAAA,CAAA,eAAA,CAAA,MAAA,CAAuB,CAAA,CAAA,EAAA,CAJN,CAKtB,aAAA,EAAA,SAAA,4FAAA,CAAA,MAAA,EAAA,EAAA,EAAA,CAAA,aAAA,CAAA,IAAA,CAAA,CAAA,CAAA,MAAA,OAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,OAAgB,CAAA,QAAA,CAAA,MAAA,CAAA,CAAA,CALM,EAAA,CAAA,CAAA;IAOrC,EAQc,CAAA,UAAA,CAAA,CAAA,EAAA,gEAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,CAAA,EAAA,EAAA,CAAA,sBAAA,CAAA,CAAA;AAChB,IAAA,EAAA,CAAA,YAAA,EAAqB,EAAA,CAAA;IAGvB,EAAyC,CAAA,cAAA,CAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,CAAA;IACvC,EAiCY,CAAA,UAAA,CAAA,CAAA,EAAA,8DAAA,EAAA,CAAA,EAAA,EAAA,EAAA,WAAA,EAAA,EAAA,CAAA,CAAA;;AACd,IAAA,EAAA,CAAA,YAAA,EAAM,EAAA,CAAA;;;IAhEN,EAAwD,CAAA,UAAA,CAAA,OAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,QAAA,CAAA,GAAA,MAAA,CAAA,aAAA,GAAA,SAAA,CAAA,CAAA;IAIpD,EAAe,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAf,IAAA,EAAA,CAAA,UAAA,CAAA,OAAA,EAAA,MAAA,CAAA,KAAA,CAAe,CAAA,WAAA,EAAA,MAAA,CAAA,SAAA,CAAA,CAAA,MAAA,EAAA,MAAA,CAAA,IAAA,CAAA,CAAA,cAAA,EAAA,MAAA,CAAA,YAAA,CAAA,CAAA,iBAAA,EAAA,MAAA,CAAA,eAAA,CAAA,CAAA,KAAA,EAAA,MAAA,CAAA,GAAA,CAAA,CAAA;IA0BkB,EAAsB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAtB,EAAsB,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,MAAA,CAAA,QAAA,CAAA,CAAA,CAAA;;ACM7D;;AAEG;AAWU,IAAA,0BAA0B,SAA1B,0BAA0B,CAAA;IA0FrC,WACU,CAAA,QAAkB,EAClB,WAAwB,EACxB,KAAiB,EAClB,SAAoB,EACnB,cAA8B,EACtC,aAA4B,EAAA;QALpB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAClB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACnB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AA9FxC;;AAEG;QACM,IAAS,CAAA,SAAA,GAAY,IAAI,CAAC;AAEnC;;AAEG;QACM,IAAoB,CAAA,oBAAA,GAAW,UAAU,CAAC;QAE3C,IAA6B,CAAA,6BAAA,GAAY,KAAK,CAAC;QAChD,IAAuB,CAAA,uBAAA,GAAY,KAAK,CAAC;QAIxC,IAAsB,CAAA,sBAAA,GAAc,EAAE,CAAC;QACvC,IAA8B,CAAA,8BAAA,GAAc,EAAE,CAAC;AAC/C,QAAA,IAAA,CAAA,cAAc,GAAkC,IAAI,eAAe,CACzE,SAAS,CACV,CAAC;AACK,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAKxD,QAAA,IAAA,CAAA,eAAe,GAA6B,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAsCtE,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;AAGV,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAU,SAAS,CAAC,CAAC;AAE1D,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAgB,SAAS,CAAC,CAAC;AAe9D,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAcrC,IAAI,CAAC,6BAA6B,GAAG,aAAa,CAAC,SAAS,CAC1D,+BAA+B,CAChC,CAAC;QACF,IAAI,CAAC,uBAAuB,GAAG,aAAa,CAAC,SAAS,CACpD,yBAAyB,CAC1B,CAAC;KACH;AA3ED;;;AAGG;AACH,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;KAC/B;AAED;;;AAGG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;KAChE;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS;aACxB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;AAChC,aAAA,IAAI,CACH,GAAG,CACD,CAAC,OAAO,MACP,IAAI,CAAC,OAAO,GAAG,OAAO;AACrB,cAAG,OAAO,CAAC,MAAM,CAAC,IAAgB;AAClC,cAAE,SAAS,CAAC,CACf,CACF,CAAC;KACL;IAYD,IACI,aAAa,CAAC,KAAoB,EAAA;AACpC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACjC;AACD,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KAClC;AAED,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,KAAK,CAAC;KACnD;AAID,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC;KAC3C;IAkBD,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CACxD,CAAC,UAAkB,KAAI;YACrB,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,IAAI,UAAU,KAAK,EAAE,EAAE;AACxE,gBAAA,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;AACvB,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAClC,aAAA;iBAAM,IAAI,UAAU,KAAK,EAAE,EAAE;AAC5B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACjC,aAAA;AACH,SAAC,CACF,CAAC;AAEF,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;AACnD,YAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE;AACtD,gBAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AACjC,aAAA;AACF,SAAA;QAED,IAAI,CAAC,WAAW,CAAC,qBAAqB,CAAC,SAAS,CAAC,MAAK;AACpD,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClC,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAK;YACxD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7C,YAAA,IAAI,QAAQ,EAAE;gBACZ,UAAU,CAAC,MAAK;;oBAEd,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;AAC/C,wBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxC,qBAAA;AACH,iBAAC,EAAE,iBAAiB,CAAC,cAAc,GAAG,EAAE,CAAC,CAAC;AAC3C,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,6BAA6B,EAAE;AACtC,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;AAC3C,gBAAA,IAAI,CAAC,WAAW,CAAC,qBAAqB,GAAG,aAAa,CAAC;AACrD,oBAAA,IAAI,CAAC,cAAc;AACnB,oBAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;iBACpC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAsC,KAClD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAC9C,CAAC;AACH,aAAA;AAED,YAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,sBAAsB,EAAE;AAC5C,gBAAA,IAAI,CAAC,WAAW,CAAC,sBAAsB,GAAG,aAAa,CAAC;oBACtD,IAAI,CAAC,WAAW,CAAC,eAAe;AAChC,oBAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;iBACpC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAsC,KAClD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAC/C,CAAC;AACH,aAAA;AACF,SAAA;QACD,IAAI,CAAC,sBAAsB,EAAE,CAAC;AAE9B,QAAA,IAAI,CAAC,uBAAuB,GAAG,aAAa,CAAC;YAC3C,IAAI,CAAC,WAAW,CAAC,6BAA6B;AAC9C,YAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE;AAC3B,YAAA,IAAI,CAAC,cAAc;YACnB,IAAI,CAAC,WAAW,CAAC,eAAe;YAChC,IAAI,CAAC,WAAW,CAAC,WAAW;AAC5B,YAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW;AACpC,SAAA,CAAC,CAAC,SAAS,CAAC,CAAC,KAA4G,KAAI;AAE5H,YAAA,MAAM,4BAA4B,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9C,YAAA,MAAM,aAAa,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAE/B,IAAI,IAAI,CAAC,6BAA6B,EAAE;AACtC,gBAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACpC,aAAA;YACD,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9F,MAAM,mBAAmB,GAAG,aAAa;AACtC,iBAAA,MAAM,CAAC,MAAM,IACZ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO;AACvC,gBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;AAC3B,gBAAA,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;AACtB,gBAAA,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAE3B,YAAA,mBAAmB,CAAC,GAAG,CAAC,MAAM,IAAG;AAC/B,gBAAA,IAAI,4BAA4B,EAAE;AAChC,oBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;wBAC3B,oBAAoB,CAClB,MAAM,CAAC,MAAM,CACX,EAAE,EACF,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAuC,EAAE,EAClE,IAAI,CAAC,WAAW,CAAC,kBAAkB,EACnC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAC1D,CAAC,CAAC;oBACP,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAe,CAAC,CAAC;AAChE,oBAAA,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;oBAC3F,IAAI,IAAI,CAAC,6BAA6B,EAAE;wBACtC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,MAA+B,EAAE,OAAO,CAAC,CAAC;AAC3E,qBAAA;AACF,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACnI;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,2BAA2B,GAAG,aAAa,CAAC;AAC/C,YAAA,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,MAAM;YAC9B,IAAI,CAAC,WAAW,CAAC,eAAe;SACjC,CAAC;AACC,aAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;AACvB,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,cAAc,GAAG,KAAK,CAAC,CAAC,CAA0B,CAAC;YACzD,IAAI,CAAC,cAAc,EAAE;AACnB,gBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC5C,OAAO;AACR,aAAA;AACD,YAAA,IAAI,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE;AAChC,gBAAA,MAAM,iBAAiB,GAAG,WAAW,CACnC,cAAc,CAAC,IAAI,EACnB,IAAI,CAAC,GAAG,CAAC,UAAU,CACpB,CAAC;AACF,gBAAA,MAAM,uBAAuB,GAAG,uBAAuB,CAAC,IAAI,CAAC,GAAG,EAAE;oBAChE,iBAAiB;AAClB,iBAAA,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAClC,oBAAoB,CAAC,IAAI,CAAC,GAAG,EAAE,uBAAuB,CAAC,CACxD,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAEO,mBAAmB,CACzB,MAA6B,EAC7B,OAAqD,EAAA;QAErD,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACpC,SAAA;QACD,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpC,OAAO;AACR,SAAA;AACD,QAAA,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAClE,QAAA,MAAM,UAAU,GAAG,WAAW,CAAC,WAAW,EAAE,CAAC;AAC7C,QAAA,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,SAAS,EAAsC,EAAE,MAAM,CAAC,EAAE;AAC1G,YAAA,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;YACtC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAClD,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClD,YAAA,MAAM,QAAQ,GAAG,IAAI,SAAS,CAAC;gBAC7B,IAAI,EAAE,CAAG,EAAA,OAAO,CAAiB,eAAA,CAAA;gBACjC,QAAQ,EAAE,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9B,aAAA,CAAC,CAAC;AACH,YAAA,MAAM,cAAc,GAAG,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAEpE,YAAA,IAAI,aAAa,CAAC;YAClB,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB,YAAA,QAAQ,OAAO;AACb,gBAAA,KAAK,SAAS;AACZ,oBAAA,aAAa,GAAG,4BAA4B,CAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3B,IAAI,CAAC,WAAW,CAAC,uBAAuB,EACxC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;oBACpD,YAAY,GAAG,CAAC,CAAC;oBACjB,MAAM;AACR,gBAAA,KAAK,OAAO;AACV,oBAAA,aAAa,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EACnD,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3B,IAAI,CAAC,WAAW,CAAC,kBAAkB,EACnC,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC;oBAChD,MAAM;AACR,gBAAA,KAAK,UAAU;AACb,oBAAA,aAAa,GAAG,4BAA4B,CAC1C,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,cAAc,EAAE,EAC3B,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAC5C,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;oBAC5D,YAAY,GAAG,CAAC,CAAC;oBACjB,MAAM;AACT,aAAA;AACD,YAAA,cAAc,CAAC,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;YAC1C,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,cAAc,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;YAC7E,IAAI,OAAO,KAAK,SAAS,EAAE;AACzB,gBAAA,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC;AAC7C,aAAA;YACD,IAAI,OAAO,KAAK,UAAU,EAAE;AAC1B,gBAAA,IAAI,CAAC,sBAAsB,GAAG,cAAc,CAAC;AAC9C,aAAA;YACD,IAAI,OAAO,KAAK,OAAO,EAAE;AACvB,gBAAA,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAC1D,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACpC,SAAA;KACF;AAEO,IAAA,oBAAoB,CAAC,OAAyC,EAAA;AACpE,QAAA,IAAI,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,qBAAqB,EAAE;YACvD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,qBAAqB,GAAG,SAAS,CAAC;AACxC,SAAA;AACD,QAAA,IAAI,OAAO,KAAK,UAAU,IAAI,IAAI,CAAC,sBAAsB,EAAE;YACzD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACzE,YAAA,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;AACzC,SAAA;QACD,IAAI,OAAO,KAAK,OAAO,EAAE;YACvB,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;AACjH,YAAA,IAAI,CAAC,8BAA8B,GAAG,EAAE,CAAC;AAC1C,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC;AACnC,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,2BAA2B,EAAE;AACpC,YAAA,IAAI,CAAC,2BAA2B,CAAC,WAAW,EAAE,CAAC;AAChD,SAAA;QACD,IAAI,IAAI,CAAC,uBAAuB,EAAE;AAChC,YAAA,IAAI,CAAC,uBAAuB,CAAC,WAAW,EAAE,CAAC;AAC5C,SAAA;QACD,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AAC/B,SAAA;QACD,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC;AACrC,SAAA;KACF;AAED;;;;AAIG;AACH,IAAA,aAAa,CAAC,MAAoB,EAAA;AAChC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjC,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC5D,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,4BAA4B,CACnD,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,MAAM,CAAC,IAAuC,EAAE,EAC3D,IAAI,CAAC,WAAW,CAAC,uBAAuB,EACxC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;YAEpD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3F,YAAA,IAAI,OAAO,EAAE;gBACX,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACzC,OAAO;AACR,aAAA;AACD,YAAA,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,IAAe,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AACtF,SAAA;KACF;AAED,IAAA,eAAe,CAAC,MAAoB,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;YACpC,OAAO;AACR,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,IAAI,EAAE;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC3F,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,MAAM,KAAK,GAAG,4BAA4B,CACxC,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,MAAM,CAAC,IAAuC,EAAE,EAC3D,IAAI,CAAC,WAAW,CAAC,uBAAuB,EACxC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC;AACpD,gBAAA,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;YACD,OAAO;AACR,SAAA;QACD,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,aAAa,CAAC,MAAM,CAAC,IAAe,CAAC,CAAC;KACrE;AAED;;;;AAIG;AACH,IAAA,cAAc,CAAC,MAAoB,EAAA;QACjC,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;AACpD,QAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAE3C,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;AACpC,YAAA,IAAI,IAAI,CAAC,oBAAoB,KAAK,WAAW,EAAE;AAC7C,gBAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AACjC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;AAClC,aAAA;AACF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE;YACrC,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE;AAC/C,gBAAA,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;KACF;AAED,IAAA,QAAQ,CAAC,KAAsD,EAAA;AAC7D,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK;AAC1C,aAAA,MAAM,CAAC,CAAC,MAAoB,KAAK,MAAM,CAAC,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;aACzE,MAAM,CAAC,OAAO,CAAC,CAAC;AAEnB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE5B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE;AAClC,YAAA,IACE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,IAAI;AAC1C,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,EAC3C;AACA,gBAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,CAAC,CAAC;AACxD,aAAA;AACF,SAAA;QAED,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;AACnE,YAAA,IAAI,WAAW,CAAC;YAChB,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;AAC1C,gBAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;oBACnC,WAAW,GAAG,IAAI,CAAC;AACpB,iBAAA;qBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,UAAU,EAAE;AAClD,oBAAA,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC;AAC/D,iBAAA;qBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,QAAQ,EAAE;AAChD,oBAAA,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,CAAC;AAC7D,iBAAA;qBAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,WAAW,EAAE;AACnD,oBAAA,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;AAChE,iBAAA;AAAM,qBAAA;AACL,oBAAA,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,eAAe,CAAC,CAAC;AACvF,iBAAA;gBAED,IACE,WAAW,KAAK,IAAI;oBACpB,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC,EAC9C;AACA,oBAAA,OAAO,CAAC,SAAS;AACf,wBAAA,WAAW,CAAC,SAAS;AACrB,4BAAA,WAAW,CAAC,YAAY;4BACxB,OAAO,CAAC,YAAY,CAAC;AACxB,iBAAA;AACH,aAAC,CAAC,CAAC;SACJ,EAAE,GAAG,CAAC,CAAC;KACT;IAED,iBAAiB,GAAA;QACf,MAAM,KAAK,GAAG,QAAQ,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,CAAC;AACvE,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,oBAAoB,CAC3D,UAAU,CACX,CAAC,CAAC,CAAC,CAAC;AACL,QAAA,IAAI,YAAY,CAAC;;AAEjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE;AACzD,gBAAA,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACzB,aAAA;AACF,SAAA;AACD,QAAA,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;KAChC;IAED,cAAc,CAAC,UAAU,EAAE,IAAI,EAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE;AAC9C,YAAA,UAAU,CAAC,SAAS;AAClB,gBAAA,IAAI,CAAC,SAAS;AACd,oBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY;oBAC7B,UAAU,CAAC,YAAY,CAAC;AAC3B,SAAA;KACF;AAED,IAAA,cAAc,CAAC,KAAkB,EAAA;QAC/B,IAAG,KAAK,KAAM,KAAK,CAAC,MAAc,EAAE,SAAS,KAAK,iBAAiB,CAAC,EAAE;YACpE,OAAO;AACR,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,IAAI,CAAC,aAAa,KAAK,UAAU,EAAE;AACrC,gBAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC;AAClC,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC;AACjC,aAAA;AACF,SAAA;KACF;IAED,mBAAmB,GAAA;AACjB,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;AAC3D,gBAAA,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;AACvC,gBAAA,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;AACvC,aAAA,CAAC,CAAC;AACH,YAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AAClE,SAAA;KACF;AAED;;;AAGG;AACK,IAAA,kBAAkB,CAAC,MAAoB,EAAA;AAC7C,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AACpC,YAAA,OAAO,SAAS,CAAC;AAClB,SAAA;AACD,QAAA,MAAM,OAAO,GAAI,MAAgC,CAAC,IAAI,CAAC;;AAGvD,QAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;YACrB,OAAO;AACR,SAAA;AAED,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK,GAAG,4BAA4B,CAC/C,MAAM,CAAC,MAAM,CAAC,EAAE,EACd,EAAE,OAAO,EAAE,EACX,IAAI,CAAC,WAAW,CAAC,2BAA2B,EAC5C,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,GAAG,EAAE,CAAC,CAAC,CAAC;QAE5D,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACnD;IAED,kBAAkB,CAAC,UAAU,EAAE,IAAI,EAAA;QACjC,MAAM,OAAO,GAAG,CAAC,CAAC;AAClB,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,SAAS,CAAC;AACxC,QAAA,MAAM,aAAa,GAAG,UAAU,GAAG,UAAU,CAAC,YAAY,CAAC;AAE3D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,MAAM,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;AACzD,QAAA,OAAO,UAAU,IAAI,aAAa,IAAI,OAAO,IAAI,UAAU,CAAC;KAC7D;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAClD,QAAA,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC5C,UAAU,CAAC,MAAK;YACd,IAAI,kBAAkB,GAAG,KAAK,CAAC;YAC/B,IAAI,IAAI,CAAC,UAAU,EAAE;AAAE,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;AAAE,aAAA;AACvD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAa,KAAI;AAC7F,gBAAA,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC,kBAAkB,EAAE;oBACjF,kBAAkB,GAAG,IAAI,CAAC;oBAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;AAChF,oBAAA,IAAI,KAAK,CAAC;AACV,oBAAA,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE;wBACzB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;4BAC1C,KAAK,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACtF,yBAAA;AAAM,6BAAA;4BACL,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;4BACpD,KAAK,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,yBAAA;AACF,qBAAA;AACD,oBAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC;AAC9B,oBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;oBACzB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,EAAE;wBAClD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,qBAAqB,CAAC,SAAS,CAAC,KAAK,CAAC;wBAClE,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC;AAChF,wBAAA,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;AAC/F,wBAAA,MAAM,KAAK,GAAoB,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACnF,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,wBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;wBACzB,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC7C,qBAAA;AAEF,iBAAA;AACH,aAAC,CAAC,CAAC;SACJ,EAAE,GAAG,CAAC,CAAC;KACT;EACF;oGArjBY,0BAA0B,EAAA,EAAA,CAAA,iBAAA,CAAA7B,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA6B,WAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA1B,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA2B,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAApB,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,CAAA;6EAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,OAAA,EAAA,eAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,WAAA,CAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,eAAA,EAAA,MAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,KAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,UAAA,EAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,aAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,aAAA,EAAA,cAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,aAAA,CAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,eAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,yBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,OAAA,EAAA,eAAA,EAAA,OAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,4BAAA,EAAA,EAAA,EAAA,CAAA,EAAA,SAAA,EAAA,KAAA,EAAA,SAAA,EAAA,cAAA,CAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,gBAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QDlEvC,EAMM,CAAA,UAAA,CAAA,CAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,EAAA,EAAA,KAAA,EAAA,CAAA,CAAA,CAAA;;QAEN,EA2Ee,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,EAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;;;QAnFT,EAAoE,CAAA,UAAA,CAAA,MAAA,EAAA,CAAA,CAAA,GAAA,CAAA,KAAA,IAAA,GAAA,CAAA,KAAA,CAAA,SAAA,CAAA,KAAA,KAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,eAAA,CAAA,CAAA,CAAA;QASvE,EAAyC,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAzC,EAAyC,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,eAAA,CAAA,KAAA,KAAA,CAAA,CAAA;;ACyD/B,0BAA0B,GAAA,UAAA,CAAA;AAVtC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,KAAK,EAAE,qCAAqC;AAC5C,QAAA,IAAI,EAAE,SAAS;KAChB,CAAC;AAMW,CAAA,EAAA,0BAA0B,CAqjBtC,CAAA;uFArjBY,0BAA0B,EAAA,CAAA;cALtC,SAAS;2BACE,yBAAyB,EAAA,eAAA,EAElB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,yxGAAA,EAAA,CAAA;mLAMtC,SAAS,EAAA,CAAA;kBAAjB,KAAK;YAKG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;YAgEF,aAAa,EAAA,CAAA;kBADhB,KAAK;;;ACxHR;;AAEG;MAoBU,6BAA6B,CAAA;;0GAA7B,6BAA6B,GAAA,CAAA,EAAA,CAAA;+EAA7B,6BAA6B,EAAA,CAAA,CAAA;mFAjBtC,YAAY;QACZ,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,cAAc;QACd,uBAAuB;QACvB,mBAAmB,CAAA,EAAA,CAAA,CAAA;uFAMV,6BAA6B,EAAA,CAAA;cAnBzC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,YAAY;oBACZ,aAAa;oBACb,cAAc;oBACd,gBAAgB;oBAChB,eAAe;oBACf,iBAAiB;oBACjB,gBAAgB;oBAChB,eAAe;oBACf,iBAAiB;oBACjB,cAAc;oBACd,uBAAuB;oBACvB,mBAAmB;AACpB,iBAAA;gBACD,YAAY,EAAE,CAAC,0BAA0B,CAAC;gBAC1C,OAAO,EAAE,CAAC,0BAA0B,CAAC;gBACrC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;wFACY,6BAA6B,EAAA,EAAA,YAAA,EAAA,CAJzB,0BAA0B,CAAA,EAAA,OAAA,EAAA,CAbvC,YAAY;QACZ,aAAa;QACb,cAAc;QACd,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,gBAAgB;QAChB,eAAe;QACf,iBAAiB;QACjB,cAAc;QACd,uBAAuB;AACvB,QAAA,mBAAmB,aAGX,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCxBzB,kBAAkB,CAAA;;oFAAlB,kBAAkB,GAAA,CAAA,EAAA,CAAA;oEAAlB,kBAAkB,EAAA,CAAA,CAAA;wEAJ5B,qBAAqB;QACrB,6BAA6B,CAAA,EAAA,CAAA,CAAA;uFAGnB,kBAAkB,EAAA,CAAA;cAR9B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,OAAO,EAAE;oBACR,qBAAqB;oBACrB,6BAA6B;AAC7B,iBAAA;AACF,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,kBAAkB,cAJ5B,qBAAqB;QACrB,6BAA6B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACGnB,IAAA,sBAAsB,SAAtB,sBAAsB,CAAA;AACjC,IAAA,WAAA,GAAA,GAAgB;EACjB;4FAFY,sBAAsB,GAAA,CAAA,EAAA,CAAA;yEAAtB,sBAAsB,EAAA,SAAA,EAAA,CAAA,CAAA,qBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,6BAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,+BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCbnC,EAA+E,CAAA,SAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,CAAA;;ADalE,sBAAsB,GAAA,UAAA,CAAA;AATlC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE,iCAAiC;AACxC,QAAA,IAAI,EAAE,QAAQ;KACf,CAAC;AAKW,CAAA,EAAA,sBAAsB,CAElC,CAAA;uFAFY,sBAAsB,EAAA,CAAA;cAJlC,SAAS;2BACE,qBAAqB,EAAA,QAAA,EAAA,6FAAA,EAAA,CAAA;;;AEGpB,IAAA,uBAAuB,SAAvB,uBAAuB,CAAA;AAClC,IAAA,WAAA,GAAA,GAAgB;EACjB;8FAFY,uBAAuB,GAAA,CAAA,EAAA,CAAA;0EAAvB,uBAAuB,EAAA,SAAA,EAAA,CAAA,CAAA,sBAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,0BAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,gCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCbpC,EAAsE,CAAA,SAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA;;ADazD,uBAAuB,GAAA,UAAA,CAAA;AATnC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,KAAK,EAAE,kCAAkC;AACzC,QAAA,IAAI,EAAE,SAAS;KAChB,CAAC;AAKW,CAAA,EAAA,uBAAuB,CAEnC,CAAA;uFAFY,uBAAuB,EAAA,CAAA;cAJnC,SAAS;2BACE,sBAAsB,EAAA,QAAA,EAAA,4EAAA,EAAA,CAAA;;;;IEgChC,EAA0D,CAAA,uBAAA,CAAA,CAAA,CAAA,CAAA;IACxD,EAA+D,CAAA,SAAA,CAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,CAAA,CAAA;IACjE,EAAe,CAAA,qBAAA,EAAA,CAAA;;;IADQ,EAAmB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAnB,EAAmB,CAAA,UAAA,CAAA,SAAA,EAAA,UAAA,CAAA,CAAA;;ACF5C;;AAEG;AAeU,IAAA,0BAA0B,SAA1B,0BAA0B,CAAA;IAyCrC,WACU,CAAA,eAAgC,EAChC,oBAA0C,EAC1C,iBAAoC,EACpC,YAA0B,EAC1B,QAAkB,EAClB,cAA8B,EAC9B,eAAgC,EAChC,iBAAoC,EACpC,SAAoB,EACpB,cAA8B,EAC9B,KAAwB,EAAA;QAVxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;QAC1C,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;AA9CzB,QAAA,IAAA,CAAA,QAAQ,GAA0B,qBAAqB,CAAC,OAAO,CAAC;QAGlE,IAAM,CAAA,MAAA,GAAY,EAAE,CAAC;QACrB,IAAY,CAAA,YAAA,GAAY,EAAE,CAAC;QAM3B,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;QAEX,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC;AAEb,QAAA,IAAA,CAAA,gBAAgB,GAA6B,IAAI,eAAe,CACrE,SAAS,CACV,CAAC;AAEM,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QAEhC,IAAK,CAAA,KAAA,GAAyB,IAAI,WAAW,CAAU,EAAE,CAAC,CAAC;AAE3D,QAAA,IAAA,CAAA,gBAAgB,GAAyB,IAAI,WAAW,CAAU,EAAE,CAAC,CAAC;QAEtE,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAEhB,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;AAEnB,QAAA,IAAA,CAAA,WAAW,GAAsB,iBAAiB,CAAC,MAAM,CAAC;AACzD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAQ,CAAC;KAkBvC;AApDJ,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;IAoDD,QAAQ,GAAA;QACN,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACnC,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,EAAE;AACtH,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACzB,aAAA;AACF,SAAA;KACF;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;KAC9B;AAED,IAAA,aAAa,CAAC,KAAwB,EAAA;AACpC,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;AAED,IAAA,kBAAkB,CAAC,KAA6B,EAAA;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,CAAC,cAAc,EAAE,CAAC;AACvB,SAAA;KACF;IAED,kBAAkB,GAAA;QAChB,MAAM,GAAG,GAAG,EAAE,CAAC;AACf,QAAA,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,CAAC;AACpC,QAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AAC1B,gBAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACpB,aAAA;AACF,SAAA;QACD,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAmB,CAAC,CAAC;QAC3E,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;KACrD;AAED,IAAA,iBAAiB,CAAC,MAAO,EAAA;AACvB,QAAA,IAAI,cAAc,CAAC;QACnB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;YACpF,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AACrF,gBAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,qBAAqB,CAAC,SAAS,EAAE;AACnD,oBAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE;AACrC,wBAAA,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACzB,4BAAA,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;4BACvH,MAAM;AACP,yBAAA;AACJ,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACH,MAAM,KAAK,GAAG,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACrD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;wBAClC,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;4BAC/B,cAAc,GAAG,KAAK,CAAC;AACxB,yBAAA;AACH,qBAAC,CAAC,CAAC;AACN,iBAAA;AAED,gBAAA,IAAI,cAAc,EAAE;AAClB,oBAAA,IAAI,CAAC,cAAc,CAAC,sBAAsB,GAAG,IAAI,CAAC;oBAClD,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AAC/D,iBAAA;AACF,aAAA;iBAAM,IAAI,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3F,gBAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACnC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,MAAK;AAC/C,oBAAA,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACrC,iBAAC,CAAC,CAAC;AACJ,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,qBAAqB,CAAC,MAAM,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,IAAG;AAClD,YAAA,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,CAAC,CAAC;AACzD,YAAA,IAAI,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACxD,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACzD,gBAAA,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;AACxE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAEO,cAAc,GAAA;AACpB,QAAA,IAAI,CAAC,oBAAoB;AACtB,aAAA,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC;AAC9B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAClC,aAAA,SAAS,CAAC,CAAC,QAAmB,KAAI;YACjC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;gBACrB,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;oBACvC,OAAO,CAAC,CAAC,CAAC;AACX,iBAAA;gBACD,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE;AACvC,oBAAA,OAAO,CAAC,CAAC;AACV,iBAAA;AACD,gBAAA,OAAO,CAAC,CAAC;AACX,aAAC,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC9B,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACvC,SAAC,CAAC,CAAC;KACN;IAED,qBAAqB,GAAA;QACnB,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;KAC5B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACnC,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,UAAU,EAAE;AAC9C,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACtB,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AAC5B,SAAA;KACF;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,WAAW,GAAG,IAAI,CAAC;AACvB,QAAA,IAAI,SAAS,CAAC;AACd,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,KAAK,EAAE;YAC9D,IAAI,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AACvC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,qBAAqB,CAAC,SAAS,EAAE;AACrD,YAAA,MAAM,KAAK,GAA0B;AACnC,gBAAA,IAAI,EAAE,EAAE;aACT,CAAC;AACF,YAAA,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC;AACrB,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;AAC5B,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,iBAAiB,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,KAAK,EAAE;YAC9F,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;AAClC,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,OAAO,EAAE;AAC3C,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACjB,SAAA;QAED,MAAM,YAAY,GAA4B,EAAE,CAAC;AACjD,QAAA,SAAS,CAAC,OAAO,CAAC,QAAQ,IAAG;AAC3B,YAAA,YAAY,CAAC,IAAI,CACf,IAAI,CAAC,oBAAoB;AACtB,iBAAA,cAAc,CACb,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,EACd,QAAQ,EACR,IAAI,CAAC,MAAM,CACZ;AACA,iBAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAmB,KAAI;AAC1B,gBAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAChC,MAAM,aAAa,GAAc,EAAE,CAAC;gBACpC,MAAM,gBAAgB,GAAc,EAAE,CAAC;AACvC,gBAAA,IAAI,OAAO,CAAC;AACZ,gBAAA,IAAI,UAAU,CAAC;AACf,gBAAA,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AACzB,oBAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE;AACrC,wBAAA,OAAO,CAAC,UAAU,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC/D,wBAAA,OAAO,CAAC,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAC9D,wBAAA,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC5B,wBAAA,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3B,qBAAA;AAAM,yBAAA;AACL,wBAAA,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC/B,wBAAA,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;AAC9B,qBAAA;AACH,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;AAC9C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;gBACpD,IAAI,QAAQ,CAAC,MAAM,EAAE;oBACnB,WAAW,GAAG,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;AACzB,oBAAA,QAAQ,CAAC,WAAW,GAAG,KAAK,CAAC;AAC7B,oBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC5B,iBAAA;AAAM,qBAAA;AACL,oBAAA,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC;AAC7B,iBAAA;AAED,gBAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,KAAK,EAAE;AAC5B,oBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CACvB,oCAAoC,EACpC,+BAA+B,EAC/B,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;AACH,iBAAA;aACF,CAAC,CACH,CACJ,CAAC;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,QAAQ,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACvE,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,IAAI,WAAW,EAAE;AACf,gBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CACvB,mCAAmC,EACnC,+BAA+B,EAC/B,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,CAAC,OAAgB,EAAE,MAAgB,EAAA;AAC7C,QAAA,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC;AACpB,QAAA,IAAI,OAAO,EAAE;YACX,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACzF,YAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;AACnC,SAAA;KACF;AAED;;AAEG;IACI,mBAAmB,CAAC,QAAmB,EAAE,MAAgB,EAAA;QAC9D,IAAI,CAAC,GAAG,CAAC,CAAC;AACV,QAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE;AAC9B,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,UAAU,EAAE;AAC9C,gBAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/B,oBAAA,IACE,KAAK,CAAC,OAAO,CAAC,SAAS;wBACvB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,IAAI;AACxD,wBAAA,CAAC,MAAM,EACP;wBACA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;4BACpC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4BACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC9B,yBAAA;wBACD,OAAO;AACR,qBAAA;oBACD,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;AACnC,wBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;wBACvB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;wBACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7B,wBAAA,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7B,qBAAA;AACF,iBAAA;AACF,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,MAAM,EAAE;AACV,oBAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE;AACrC,wBAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;4BACrE,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;4BACzC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC7B,4BAAA,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC7B,yBAAA;AACF,qBAAA;AACF,iBAAA;AACD,gBAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;AACxB,aAAA;AACD,YAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;gBAC/B,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,EAAE;AACnC,oBAAA,CAAC,EAAE,CAAC;AACL,iBAAA;AACF,aAAA;YACD,IAAI,CAAC,YAAY,GAAG,CAAC,QAAQ,EAAE,UAAU,KAAI;gBAC3C,MAAM,WAAW,GAAI,QAAQ,CAAC,CAAC,CAAS,CAAC,WAAW,CAAC;AACrD,gBAAA,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;AACvB,oBAAA,KAAK,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;AACxB,wBAAA,MAAM,EAAE,WAAW;8BACf,IAAI,CAAC,MAAM;AACX,gCAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;gCAC1C,UAAU;AACZ,8BAAE,SAAS;AACb,wBAAA,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;AACrB,4BAAA,KAAK,EAAE,yBAAyB;yBACjC,CAAC;AACF,wBAAA,MAAM,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;AACzB,4BAAA,KAAK,EAAE,CAAC;AACR,4BAAA,KAAK,EAAE,QAAQ;yBAChB,CAAC;qBACH,CAAC;AACF,oBAAA,MAAM,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC;AACzB,wBAAA,KAAK,EAAE,CAAC;AACR,wBAAA,KAAK,EAAE,QAAQ;qBAChB,CAAC;AACF,oBAAA,IAAI,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;AACrB,wBAAA,KAAK,EAAE,yBAAyB;qBACjC,CAAC;AACH,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC;AACF,YAAA,IAAI,CAAC,iBAAiB;AACnB,iBAAA,qBAAqB,CAAC;AACrB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,SAAS,EAAE,IAAI;aACc,CAAC;AAC/B,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,CAAC,CAAC,UAAsB,KAAI;AACpC,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AAC5C,oBAAA,kBAAkB,EAAE,IAAI;AACxB,oBAAA,KAAK,GAAG,OAAO,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAClE,qCAAqC,CACtC,CAAW;AACZ,oBAAA,SAAS,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;AAC5B,oBAAA,SAAS,EAAE;AACT,wBAAA,IAAI,EACF,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,UAAU;AACxC,8BAAE,OAAO,CAAC,UAAU,CAAC,IAAI;AACzB,8BAAE,SAAS;AAChB,qBAAA;AACD,oBAAA,MAAM,EAAE,UAAU;AAClB,oBAAA,OAAO,EAAE,IAAI;AACd,iBAAA,CAAgB,CAAC;gBAClB,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAG;oBAClC,OAAO,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC7C,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,UAAU,EAAE;AAC9C,oBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,KAAK,GAAG,QAAQ,GAAG,UAAU,CAAC;AAC3E,oBAAA,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AACvC,oBAAA,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACvC,iBAAA;AACD,gBAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAkD,CAAC;AACzE,gBAAA,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;gBAC3B,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACvC,gBAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAChC,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC7B,aAAC,CAAC,CAAC;AACN,SAAA;KACF;AAED;;;AAGG;IACK,gBAAgB,CAAC,QAAmB,EAAE,EAAE,EAAA;QAC9C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,QAAQ,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC1B,OAAO;AACR,aAAA;AACD,YAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/B,gBAAA,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnD,oBAAA,CAAC,EAAE,CAAC;AACL,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB;AACnB,iBAAA,qBAAqB,CAAC;AACrB,gBAAA,IAAI,EAAE,SAAS;gBACf,EAAE;AACF,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,QAAQ,EAAE,GAAG;AACb,gBAAA,IAAI,EAAE;AACJ,oBAAA,KAAK,EAAE,SAAS;AACjB,iBAAA;aAC4B,CAAC;AAC/B,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,CAAC,CAAC,UAA6B,KAAI;gBAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;AACnC,gBAAA,IAAI,KAAoB,CAAC;gBACzB,IAAI,CAAC,IAAI,EAAE;oBACT,KAAK,GAAG,wBAAwB,EAAE,CAAC;AACpC,iBAAA;AAAM,qBAAA;oBACL,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,wBAAwB,EAAE,CAAC;AAChE,iBAAA;AAED,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AAC5C,oBAAA,kBAAkB,EAAE,IAAI;oBACxB,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACvF,qCAAqC,CACtC,CAAW;AACZ,oBAAA,MAAM,EAAE,UAAU;AAClB,oBAAA,OAAO,EAAE,IAAI;oBACb,KAAK;AACN,iBAAA,CAAC,CAAC;gBAEH,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAG;oBACxC,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACnD,iBAAC,CAAC,CAAC;AACH,gBAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAqB,CAAC;gBAC5C,EAAE,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AACvC,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE;oBACtD,IAAI,CAAC,GAAG,CAAC,WAAW,CAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CACnD,CAAC;AACF,oBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACV,oBAAA,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAChG,qCAAqC,CACtC,CAAW,CAAC;oBACb,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACvC,iBAAA;AACD,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAClB,gBAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACxB,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC7B,aAAC,CAAC,CAAC;AACN,SAAA;KACF;AAEO,IAAA,aAAa,CAAC,IAAI,EAAA;AACxB,QAAA,IAAI,KAAoB,CAAC;AACzB,QAAA,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AAC5D,YAAA,MAAM,aAAa,GAAG,IAAI,aAAa,EAAE,CAAC;AAC1C,YAAA,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AACnC,YAAA,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACpC,YAAA,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AACjD,YAAA,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACvC,MAAM,GAAG,GAAG,aAAa,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACpD,YAAA,KAAK,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;AACxB,gBAAA,KAAK,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;oBACtB,GAAG,EAAE,0BAA0B,GAAG,GAAG;iBACtC,CAAC;AACH,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,KAAK,CAAC;KACd;AACD;;AAEG;IACK,gBAAgB,CAAC,QAAmB,EAAE,EAAE,EAAA;QAC9C,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,QAAQ,CAAC,MAAM,EAAE;AACnB,YAAA,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;gBAC1B,OAAO;AACR,aAAA;AACD,YAAA,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;AAC/B,gBAAA,IAAI,KAAK,CAAC,KAAK,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AACnD,oBAAA,CAAC,EAAE,CAAC;AACL,iBAAA;AACF,aAAA;AACD,YAAA,IAAI,CAAC,iBAAiB;AACnB,iBAAA,qBAAqB,CAAC;AACrB,gBAAA,IAAI,EAAE,QAAQ;gBACd,EAAE;AACF,gBAAA,SAAS,EAAE,IAAI;aACc,CAAC;AAC/B,iBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACb,iBAAA,SAAS,CAAC,CAAC,UAAsB,KAAI;AACpC,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;AAC5C,oBAAA,kBAAkB,EAAE,IAAI;oBACxB,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CACvF,qCAAqC,CACtC,CAAW;AACZ,oBAAA,MAAM,EAAE,UAAU;AAClB,oBAAA,OAAO,EAAE,IAAI;AACd,iBAAA,CAAC,CAAC;gBACH,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,IAAG;oBACxC,OAAO,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AACnD,iBAAC,CAAC,CAAC;AACH,gBAAA,MAAM,EAAE,GAAG,UAAU,CAAC,EAAgC,CAAC;AACvD,gBAAA,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;AAC3B,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE;oBACtD,IAAI,CAAC,GAAG,CAAC,WAAW,CAClB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CACnD,CAAC;AACF,oBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACV,oBAAA,OAAO,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAChG,qCAAqC,CACtC,CAAW,CAAC;oBACb,OAAO,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;AACvC,iBAAA;AACD,gBAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AAC3B,gBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1B,gBAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AACxB,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC7B,aAAC,CAAC,CAAC;AACN,SAAA;KACF;AAED,IAAA,mBAAmB,CAAC,OAAO,EAAA;AACzB,QAAA,IAAI,OAAO,EAAE;YACX,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE;gBACjD,cAAc,EAAE,OAAO,CAAC,UAAU;AAClC,gBAAA,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU;AACvC,aAAA,CAAC,CAAC;AACH,YAAA,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7D,SAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAK,EAAA;AACb,QAAA,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,EAAE;AACnC,YAAA,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,EAAE;gBACvB,OAAO;AACR,aAAA;AACF,SAAA;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;EACF;oGA3hBY,0BAA0B,EAAA,EAAA,CAAA,iBAAA,CAAAd,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAU,IAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,IAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,IAAA,CAAA,YAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAD,QAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAD,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAkB,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAS,SAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,cAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,CAAA,CAAA,EAAA,CAAA;6EAA1B,0BAA0B,EAAA,SAAA,EAAA,CAAA,CAAA,yBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,OAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,cAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAAA,WAAA,EAAA,KAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,cAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,SAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,mCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;AD1DvC,QAAA,EAAA,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,CAAW,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,CAAA;AAMP,QAAA,EAAA,CAAA,UAAA,CAAA,WAAA,EAAA,SAAA,gFAAA,CAAA,MAAA,EAAA,EAAA,OAAa,GAAqB,CAAA,aAAA,CAAA,MAAA,CAAA,CAAA,EAAA,CAAC,CACjB,gBAAA,EAAA,SAAA,qFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,kBAAA,CAAA,MAAA,CAA0B,IADT,CAErB,YAAA,EAAA,SAAA,iFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,YAAA,CAAA,MAAA,CAAoB,CAFC,EAAA,CAAA,CAAA,sBAAA,EAAA,SAAA,2FAAA,CAAA,MAAA,EAAA,EAAA,OAGX,GAAqB,CAAA,YAAA,CAAA,MAAA,EAAA,IAAI,CAAC,CAAA,EAAA,CAHf,sJAAA,CAAA,mBAAA,EAAA,SAAA,wFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,WAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA;QAMrC,EAA0B,CAAA,YAAA,EAAA,CAAA;QAE1B,EAuB6C,CAAA,cAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,CAAA;AAb3C,QAAA,EAAA,CAAA,UAAA,CAAA,aAAA,EAAA,SAAA,kFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,MAAA,GAAA,MAAA,CAAA,EAAA,CAA+B,CAAA,aAAA,EAAA,SAAA,kFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,MAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,mBAAA,EAAA,SAAA,wFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,WAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,iBAAA,EAAA,SAAA,sFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,oBAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,oFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,IAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAKP,sBAAA,EAAA,SAAA,2FAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,YAAA,CAAA,MAAA,EAAqB,IAAI,CAAC,CALnB,EAAA,CAAA,CAAA,gBAAA,EAAA,SAAA,qFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,QAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,gBAAA,EAAA,SAAA,qFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,SAAA,GAAA,MAAA,CAAA,EAAA,CAAA,CAAA,cAAA,EAAA,SAAA,mFAAA,GAAA,EAAA,OAQf,GAAuB,CAAA,qBAAA,EAAA,CAAA,EAAA,CARR,CASX,kBAAA,EAAA,SAAA,uFAAA,GAAA,EAAA,OAAA,GAAA,CAAA,QAAA,EAAU,CATC,EAAA,CAAA,CAAA,kBAAA,EAAA,SAAA,uFAAA,GAAA,EAAA,OAUX,GAAsB,CAAA,oBAAA,EAAA,CAAA,EAAA,CAVX,CAWrB,QAAA,EAAA,SAAA,6EAAA,GAAA,EAAA,OAAA,GAAA,CAAA,kBAAA,EAAoB,CAXC,EAAA,CAAA,CAAA,eAAA,EAAA,SAAA,oFAAA,GAAA,EAAA,OAYd,GAAmB,CAAA,iBAAA,EAAA,CAAA,EAAA,CAZL,CAaf,cAAA,EAAA,SAAA,mFAAA,CAAA,MAAA,EAAA,EAAA,OAAA,GAAA,CAAA,iBAAA,CAAA,MAAA,CAAyB,CAbV,EAAA,CAAA,CAAA;AAcjC,QAAA,EAAA,CAAA,YAAA,EAA0B,EAAA,CAAA;QAG5B,EAAW,CAAA,cAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CAAA;QACT,EAEe,CAAA,UAAA,CAAA,CAAA,EAAA,kDAAA,EAAA,CAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA;;QACjB,EAAY,CAAA,YAAA,EAAA,CAAA;;QA3CR,EAA0B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA1B,EAA0B,CAAA,UAAA,CAAA,OAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,SAAA,CAAA,kBAAA,CAAA,QAAA,EAAA,GAAA,CAAA,YAAA,CAAA,CAAA;QAa1B,EAAa,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;AAAb,QAAA,EAAA,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAa,4BAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,wBAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,CAAA,CAAA,QAAA,EAAA,GAAA,CAAA,YAAA,CAAA,yBAAA,CAAA,gBAAA,EAAA,GAAA,CAAA,cAAA,CAAA,CAAA;QA2BA,EAA+B,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA/B,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,EAAA,EAAA,GAAA,CAAA,gBAAA,CAAA,CAAA,CAAA;;ACgBnC,0BAA0B,GAAA,UAAA,CAAA;AAdtC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,KAAK,EAAE,qCAAqC;AAC5C,QAAA,IAAI,EAAE,kBAAkB;KACzB,CAAC;AACF;;AAEG;AAOU,CAAA,EAAA,0BAA0B,CA2hBtC,CAAA;uFA3hBY,0BAA0B,EAAA,CAAA;cANtC,SAAS;2BACE,yBAAyB,EAAA,eAAA,EAGlB,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,urDAAA,EAAA,CAAA;iWAOtC,IAAI,EAAA,CAAA;kBAAZ,KAAK;YACG,QAAQ,EAAA,CAAA;kBAAhB,KAAK;YACG,oBAAoB,EAAA,CAAA;kBAA5B,KAAK;;;ACxDF,SAAUC,gBAAc,CAC5B,KAAK,GAAG,OAAO,EACf,IAAI,GAAG,aAAa,EAAA;IAEpB,OAAO,OAAO,CAAC,gBAAgB,EAAE;AAC/B,QAAA,KAAK,CACH,OAAO,EACP,KAAK,CAAC;AACJ,YAAA,SAAS,EAAE,kBAAkB;AAC9B,SAAA,CAAC,CACH;QACD,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AACzD,KAAA,CAAC,CAAC;AACL;;ACJa,IAAA,6BAA6B,SAA7B,6BAA6B,CAAA;AAiBxC,IAAA,WAAA,CAAmB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAF9B,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;KAEgB;AAfzC,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAED,IAAA,IAAI,KAAK,GAAA;QACP,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;AAC/B,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;AACF,SAAA;QACD,OAAO;KACR;EAKF;0GAlBY,6BAA6B,EAAA,EAAA,CAAA,iBAAA,CAAAjC,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;gFAA7B,6BAA6B,EAAA,SAAA,EAAA,CAAA,CAAA,6BAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,sCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QClB1C,EAKuB,CAAA,SAAA,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA;;QAJnB,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,CAAA,iBAAA,CAAA,iBAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;4FDeD,CAACiC,gBAAc,EAAE,CAAC,EAAA,EAAA,CAAA,CAAA;AAEnB,6BAA6B,GAAA,UAAA,CAAA;AAXzC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,kBAAkB;AACxB,QAAA,KAAK,EAAE,kCAAkC;AACzC,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,MAAM,EAAE,UAAU;KACnB,CAAC;AAMW,CAAA,EAAA,6BAA6B,CAkBzC,CAAA;uFAlBY,6BAA6B,EAAA,CAAA;cALzC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,EAE3B,UAAA,EAAA,CAACA,gBAAc,EAAE,CAAC,EAAA,QAAA,EAAA,oKAAA,EAAA,CAAA;;;AEP1B,SAAU,cAAc,CAC5B,KAAK,GAAG,OAAO,EACf,IAAI,GAAG,aAAa,EAAA;IAEpB,OAAO,OAAO,CAAC,gBAAgB,EAAE;AAC/B,QAAA,KAAK,CACH,OAAO,EACP,KAAK,CAAC;AACJ,YAAA,SAAS,EAAE,kBAAkB;AAC9B,SAAA,CAAC,CACH;QACD,UAAU,CAAC,eAAe,EAAE,OAAO,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,CAAC;AACzD,KAAA,CAAC,CAAC;AACL;;ACHa,IAAA,4BAA4B,SAA5B,4BAA4B,CAAA;AAiBvC,IAAA,WAAA,CAAmB,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAF9B,IAAO,CAAA,OAAA,GAAG,OAAO,CAAC;KAEgB;AAfzC,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;KAC1B;AAED,IAAA,IAAI,KAAK,GAAA;QACP,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AACjC,YAAA,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,KAAK,IAAI,EAAE;AAC/B,gBAAA,OAAO,GAAG,CAAC;AACZ,aAAA;AACF,SAAA;QACD,OAAO;KACR;EAKF;wGAlBY,4BAA4B,EAAA,EAAA,CAAA,iBAAA,CAAAjC,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;+EAA5B,4BAA4B,EAAA,SAAA,EAAA,CAAA,CAAA,4BAAA,CAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,CAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,qCAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;QCnBzC,EAK0B,CAAA,SAAA,CAAA,CAAA,EAAA,yBAAA,EAAA,CAAA,CAAA,CAAA;;QAJtB,EAAW,CAAA,UAAA,CAAA,KAAA,EAAA,GAAA,CAAA,GAAA,CAAA,CAAA,OAAA,EAAA,GAAA,CAAA,KAAA,CAAA,iBAAA,CAAA,iBAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA;+FDgBD,CAAC,cAAc,EAAE,CAAC,EAAA,EAAA,CAAA,CAAA;AAEnB,4BAA4B,GAAA,UAAA,CAAA;AAXxC,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,iBAAiB;AACvB,QAAA,KAAK,EAAE,iCAAiC;AACxC,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,MAAM,EAAE,UAAU;KACnB,CAAC;AAMW,CAAA,EAAA,4BAA4B,CAkBxC,CAAA;uFAlBY,4BAA4B,EAAA,CAAA;cALxC,SAAS;AACE,QAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAE1B,UAAA,EAAA,CAAC,cAAc,EAAE,CAAC,EAAA,QAAA,EAAA,kLAAA,EAAA,CAAA;;;MEenB,kBAAkB,CAAA;AAC7B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;oFANU,kBAAkB,GAAA,CAAA,EAAA,CAAA;oEAAlB,kBAAkB,EAAA,CAAA,CAAA;wEAjBnB,eAAe,EAAE,cAAc,EAAE,YAAY,CAAA,EAAA,CAAA,CAAA;uFAiB5C,kBAAkB,EAAA,CAAA;cAlB9B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE,CAAC,eAAe,EAAE,cAAc,EAAE,YAAY,CAAC;AACxD,gBAAA,YAAY,EAAE;oBACZ,sBAAsB;oBACtB,4BAA4B;oBAC5B,uBAAuB;oBACvB,6BAA6B;oBAC7B,0BAA0B;AAC3B,iBAAA;AACD,gBAAA,OAAO,EAAE;oBACP,sBAAsB;oBACtB,4BAA4B;oBAC5B,uBAAuB;oBACvB,6BAA6B;oBAC7B,0BAA0B;AAC3B,iBAAA;gBACD,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,kBAAkB,mBAf3B,sBAAsB;QACtB,4BAA4B;QAC5B,uBAAuB;QACvB,6BAA6B;AAC7B,QAAA,0BAA0B,aANlB,eAAe,EAAE,cAAc,EAAE,YAAY,aASrD,sBAAsB;QACtB,4BAA4B;QAC5B,uBAAuB;QACvB,6BAA6B;QAC7B,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;;;ICnB9B,EAOwB,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;IAAtB,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4DAAA,GAAA,EAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAW,CAAA,SAAA,EAAA,CAAA,CAAC,EAAA,CAAA,CAAA;;IACrB,EAAM,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;IAAA,EAAyD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IACtE,EAA6C,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IAC/C,EAAS,CAAA,YAAA,EAAA,CAAA;;;AALP,IAAA,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,OAAA,CAAoB,CAAA,YAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,gDAAA,CAAA,CAAA,CAAA;IAGd,EAAyD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzD,EAAyD,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,yCAAA,CAAA,CAAA,CAAA;;;IAIjE,EAO6B,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;;IAC3B,EAAM,CAAA,cAAA,CAAA,CAAA,EAAA,MAAA,CAAA,CAAA;IAAA,EAAyD,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;IAAA,EAAO,CAAA,YAAA,EAAA,CAAA;IACtE,EAA6C,CAAA,SAAA,CAAA,CAAA,EAAA,UAAA,EAAA,CAAA,CAAA,CAAA;IAC/C,EAAS,CAAA,YAAA,EAAA,CAAA;;;;AALP,IAAA,EAAA,CAAA,UAAA,CAAA,UAAA,EAAA,MAAA,CAAA,OAAA,CAAoB,sFAAA,CAAA,mBAAA,EAAA,GAAA,CAAA,CAAA;IAGd,EAAyD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzD,EAAyD,CAAA,iBAAA,CAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,yCAAA,CAAA,CAAA,CAAA;;;;IAK/D,EAAyF,CAAA,cAAA,CAAA,CAAA,EAAA,QAAA,EAAA,EAAA,CAAA,CAAA;IAA3B,EAAS,CAAA,UAAA,CAAA,OAAA,EAAA,SAAA,4DAAA,GAAA,EAAA,MAAA,WAAA,GAAA,EAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,CAAA,MAAA,QAAA,GAAA,WAAA,CAAA,SAAA,CAAA,CAAA,MAAA,MAAA,GAAA,EAAA,CAAA,aAAA,EAAA,CAAA,CAAA,OAAA,EAAA,CAAA,WAAA,CAAA,MAAgB,CAAA,SAAA,CAAA,QAAA,CAAA,CAAA,CAAC,EAAA,CAAA,CAAA;IAAC,EAAyB,CAAA,MAAA,CAAA,CAAA,CAAA,CAAA;IAAA,EAAS,CAAA,YAAA,EAAA,CAAA;;;;IAAlC,EAAyB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;IAAzB,EAAyB,CAAA,iBAAA,CAAA,MAAA,CAAA,cAAA,CAAA,QAAA,CAAA,CAAA,CAAA;;;IAGpH,EAEkB,CAAA,SAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,CAAA;;;;IADhB,EAA+B,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,MAAA,CAAA,UAAA,CAAA,CAAA,CAAA;;;ACnBpB,IAAA,kBAAkB,SAAlB,kBAAkB,CAAA;IAuC7B,WACS,CAAA,aAA4B,EAC5B,IAAiB,EAChB,IAAgB,EAChB,KAAwB,EACxB,eAAgC,EAAA;QAJjC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAC5B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAa;QAChB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAmB;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QA5BlC,IAAsB,CAAA,sBAAA,GAAW,KAAK,CAAC;AACxC,QAAA,IAAA,CAAA,sBAAsB,GAAuB,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAc5E,IAAK,CAAA,KAAA,GAAW,gCAAgC,CAAC;QACjD,IAAW,CAAA,WAAA,GAAW,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;QAKtG,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAQrB,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;AAC5D,QAAA,IAAI,CAAC,YAAY,GAAG,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;KACtG;AA/CD,IAAA,IACI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;IACD,IAAI,UAAU,CAAC,KAAa,EAAA;QAC1B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;KACpE;AAED,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IACD,IAAI,IAAI,CAAC,KAAa,EAAA;QACpB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;KAC9D;AAID,IAAA,IACI,qBAAqB,GAAA;QACvB,OAAO,IAAI,CAAC,sBAAsB,CAAC;KACpC;IACD,IAAI,qBAAqB,CAAC,KAAa,EAAA;AACrC,QAAA,IAAI,CAAC,sBAAsB,GAAG,KAAK,CAAC;AACpC,QAAA,IAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;KACzC;IAwBD,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE;AAC1E,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAI;gBACrD,MAAM,MAAM,GAAG,MAAa,CAAC;AAC7B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;AACvC,gBAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC7B,aAAC,CAAC,CAAC;AACJ,SAAA;AAAM,aAAA,IACH,IAAI,CAAC,IAAI,CAAC,aAAa;AACvB,YAAA,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC;AAC5C,YAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE;YACpD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,sBAAsB,CAAC,CAAC;AACnF,SAAA;KACF;AAED,IAAA,SAAS,CAAC,KAAM,EAAA;AACd,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AACpB,QAAA,MAAM,GAAG,GAAG,KAAK;AACf,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,GAAG,GAAG;YAC/B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;AACtD,QAAA,IAAI,CAAC,IAAI;aACR,GAAG,CAAC,GAAG,EAAE;AACR,YAAA,YAAY,EAAE,MAAM;SACrB,CAAC;aACD,SAAS,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;AACrB,YAAA,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,IAAY,EAAA;AACzB,QAAA,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAC5B,QAAA,OAAO,IAAI,CAAC;KACb;EACF;oFAvFY,kBAAkB,EAAA,EAAA,CAAA,iBAAA,CAAAJ,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAU,IAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAE,IAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAZ,EAAA,CAAA,eAAA,CAAA,CAAA,CAAA,EAAA,CAAA;qEAAlB,kBAAkB,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,KAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,CAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,EAAA,wBAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,OAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,MAAA,EAAA,SAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,OAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,CAAA,EAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,CAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,CAAA,EAAA,CAAA,SAAA,EAAA,eAAA,CAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,CAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,UAAA,EAAA,YAAA,EAAA,mBAAA,CAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,CAAA,EAAA,OAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;ADnB/B,QAAA,EAAA,CAAA,SAAA,CAAA,CAAA,EAAA,GAAA,CAAO,CAAA,CAAA,EAAA,sBAAA,EAAA,CAAA,CAAA,CAAA;QASP,EAUS,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;QAET,EAUS,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;QAET,EAA0B,CAAA,cAAA,CAAA,CAAA,EAAA,UAAA,EAAA,IAAA,EAAA,CAAA,CAAA,CAAA;QACxB,EAA2H,CAAA,UAAA,CAAA,CAAA,EAAA,oCAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,CAAA;QAC7H,EAAW,CAAA,YAAA,EAAA,CAAA;QAEX,EAEkB,CAAA,UAAA,CAAA,CAAA,EAAA,6CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,CAAA;QAElB,EAEkB,CAAA,SAAA,CAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,CAAA;;;QArChB,EAAiD,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAjD,EAAiD,CAAA,UAAA,CAAA,wBAAA,EAAA,GAAA,CAAA,sBAAA,CAAA,CAAA;QAG1C,EAA+E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA/E,EAA+E,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,aAAA,IAAA,GAAA,CAAA,iBAAA,IAAA,GAAA,CAAA,iBAAA,CAAA,MAAA,KAAA,CAAA,CAAA,CAAA;QAY/E,EAA6E,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA7E,EAA6E,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,IAAA,CAAA,aAAA,IAAA,GAAA,CAAA,iBAAA,IAAA,GAAA,CAAA,iBAAA,CAAA,MAAA,GAAA,CAAA,CAAA,CAAA;QAa1D,EAAoB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAApB,EAAoB,CAAA,UAAA,CAAA,SAAA,EAAA,GAAA,CAAA,iBAAA,CAAA,CAAA;QAG9B,EAAuB,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAAvB,EAAuB,CAAA,UAAA,CAAA,MAAA,EAAA,GAAA,CAAA,UAAA,KAAA,EAAA,CAAA,CAAA;QAKvC,EAA6C,CAAA,SAAA,CAAA,CAAA,CAAA,CAAA;QAA7C,EAA6C,CAAA,UAAA,CAAA,MAAA,EAAA,EAAA,CAAA,WAAA,CAAA,CAAA,EAAA,CAAA,EAAA,GAAA,CAAA,IAAA,EAAA,EAAA,CAAA,eAAA,CAAA,CAAA,EAAA,GAAA,EAAA,GAAA,CAAA,OAAA,CAAA,CAAA,CAAA,CAAA;;ACvBlC,kBAAkB,GAAA,UAAA,CAAA;AAV9B,IAAA,aAAa,CAAC;AACb,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,6BAA6B;AACpC,QAAA,IAAI,EAAE,aAAa;KACpB,CAAC;AAMW,CAAA,EAAA,kBAAkB,CAuF9B,CAAA;uFAvFY,kBAAkB,EAAA,CAAA;cAL9B,SAAS;2BACE,gBAAgB,EAAA,QAAA,EAAA,wpDAAA,EAAA,MAAA,EAAA,CAAA,oIAAA,CAAA,EAAA,CAAA;qLAMtB,UAAU,EAAA,CAAA;kBADb,KAAK;YASF,IAAI,EAAA,CAAA;kBADP,KAAK;YAWF,qBAAqB,EAAA,CAAA;kBADxB,KAAK;YASG,iBAAiB,EAAA,CAAA;kBAAzB,KAAK;;;MChBK,iBAAiB,CAAA;AAC5B,IAAA,OAAO,OAAO,GAAA;QACZ,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE,EAAE;SACd,CAAC;KACH;;kFANU,iBAAiB,GAAA,CAAA,EAAA,CAAA;mEAAjB,iBAAiB,EAAA,CAAA,CAAA;uEAb1B,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,aAAa;QACb,wBAAwB;QACxB,YAAY,CAAA,EAAA,CAAA,CAAA;uFAMH,iBAAiB,EAAA,CAAA;cAf7B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE;oBACP,iBAAiB;oBACjB,mBAAmB;oBACnB,eAAe;oBACf,gBAAgB;oBAChB,aAAa;oBACb,aAAa;oBACb,wBAAwB;oBACxB,YAAY;AACb,iBAAA;gBACD,YAAY,EAAE,CAAC,kBAAkB,CAAC;gBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;gBAC7B,OAAO,EAAE,CAAC,sBAAsB,CAAC;AAClC,aAAA,CAAA;;wFACY,iBAAiB,EAAA,EAAA,YAAA,EAAA,CAJb,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAT/B,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;QAChB,aAAa;QACb,aAAa;QACb,wBAAwB;AACxB,QAAA,YAAY,aAGJ,kBAAkB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MCrBjB,mBAAmB,CAAA;;sFAAnB,mBAAmB,GAAA,CAAA,EAAA,CAAA;qEAAnB,mBAAmB,EAAA,CAAA,CAAA;;uFAAnB,mBAAmB,EAAA,CAAA;cAL/B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAA;;;MC+BY,oBAAoB,CAAA;;wFAApB,oBAAoB,GAAA,CAAA,EAAA,CAAA;sEAApB,oBAAoB,EAAA,CAAA,CAAA;0EAhB7B,mBAAmB;QACnB,qBAAqB;QACrB,mBAAmB;QACnB,mBAAmB;QACnB,sBAAsB;QACtB,gBAAgB;QAChB,qBAAqB;QACrB,wBAAwB;QACxB,eAAe;QACf,mBAAmB;QACnB,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB,CAAA,EAAA,CAAA,CAAA;uFAGR,oBAAoB,EAAA,CAAA;cApBhC,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,OAAO,EAAE;oBACP,mBAAmB;oBACnB,qBAAqB;oBACrB,mBAAmB;oBACnB,mBAAmB;oBACnB,sBAAsB;oBACtB,gBAAgB;oBAChB,qBAAqB;oBACrB,wBAAwB;oBACxB,eAAe;oBACf,mBAAmB;oBACnB,iBAAiB;oBACjB,kBAAkB;oBAClB,kBAAkB;oBAClB,iBAAiB;AAClB,iBAAA;AACF,aAAA,CAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,oBAAoB,cAhB7B,mBAAmB;QACnB,qBAAqB;QACrB,mBAAmB;QACnB,mBAAmB;QACnB,sBAAsB;QACtB,gBAAgB;QAChB,qBAAqB;QACrB,wBAAwB;QACxB,eAAe;QACf,mBAAmB;QACnB,iBAAiB;QACjB,kBAAkB;QAClB,kBAAkB;QAClB,iBAAiB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;MC3BR,gBAAgB,CAAA;;gFAAhB,gBAAgB,GAAA,CAAA,EAAA,CAAA;kEAAhB,gBAAgB,EAAA,CAAA,CAAA;;uFAAhB,gBAAgB,EAAA,CAAA;cAL5B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;AACR,gBAAA,OAAO,EAAE,EAAE;AACX,gBAAA,YAAY,EAAE,EAAE;AAChB,gBAAA,OAAO,EAAE,EAAE;AACZ,aAAA,CAAA;;;ACeD;;AAEG;MAIU,wBAAwB,CAAA;AACnC;;AAEG;IAEH,WACU,CAAA,gBAAkC,EAClC,WAAwB,EACxB,YAA0B,EAC1B,WAAwB,EACxB,SAAoB,EACpB,QAAkB,EAAA;QALlB,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;QACpB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;KACxB;IAEJ,MAAM,GAAA;QACJ,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAED,UAAU,GAAA;QACR,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,MAAK;YAC5C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAC1D,IAAI,YAAY,CAAC,IAAI,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW;AACb,qBAAA,UAAU,EAAE;qBACZ,SAAS,CAAC,OAAO,IAChB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,CAClE,CAAC;AACL,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;AACjC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,aAAa,GAAA;QACX,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,IAAG;AAC7C,YAAA,IAAI,OAAO,EAAE;AACX,gBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,SAAS,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AAC3F,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AAChE,YAAA,IAAI,IAAI,EAAE;AACR,gBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;AACrE,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAkB,KAAI;AAC1E,YAAA,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,IAAI,EAAE;AACnD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC7E,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;AAED;;AAEI;IACJ,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,MAAe,KAAI;YAClE,IAAG,CAAC,MAAM,EAAC;gBACT,OAAO;AACR,aAAA;AAED,YAAA,MAAM,CAAC,GAAG,CAAC,KAAK,IAAG;AACjB,gBAAA,IAAI,SAAiB,CAAC;AACtB,gBAAA,IAAI,UAAkB,CAAC;AACvB,gBAAA,IAAI,SAAiB,CAAC;AACtB,gBAAA,IAAI,UAAkB,CAAC;AAEvB,gBAAA,QAAQ,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI;AACnC,oBAAA,KAAK,KAAK;AACR,wBAAA,MAAM,aAAa,GAAG,KAAK,CAAC,UAAU,CAAC,OAA+B,CAAC;AACvE,wBAAA,MAAM,YAAY,GAAW,aAAa,CAAC,MAAM,CAAC,MAAM,CAAC;AACzD,wBAAA,MAAM,MAAM,GAAW,aAAa,CAAC,GAAG,CAAC;AACzC,wBAAA,MAAM,OAAO,GAAW,aAAa,CAAC,IAAI,CAAC;AAC3C,wBAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAC,CAAC,CAAC;wBAC9E,MAAM;AACT,oBAAA,KAAK,MAAM;AACR,wBAAA,MAAM,cAAc,GAAG,KAAK,CAAC,UAAU,CAAC,OAAgC,CAAC;AACzE,wBAAA,MAAM,aAAa,GAAW,cAAc,CAAC,KAAK,CAAC;AACnD,wBAAA,MAAM,OAAO,GAAW,cAAc,CAAC,GAAG,CAAC;AAC3C,wBAAA,MAAM,SAAS,GAAW,cAAc,CAAC,SAAS,CAAC;AACnD,wBAAA,MAAM,QAAQ,GAAW,cAAc,CAAC,IAAI,CAAC;wBAC7C,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,CAAC,CAAC;wBAC7F,MAAM;AACN,oBAAA,KAAK,YAAY,CAAC;AAClB,oBAAA,KAAK,gBAAgB,CAAC;AACtB,oBAAA,KAAK,iBAAiB;AACtB,wBAAA,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,aACF,CAAC;AACpC,wBAAA,MAAM,QAAQ,GAAW,cAAc,CAAC,KAAK,CAAC;AAC9C,wBAAA,MAAM,OAAO,GAAW,cAAc,CAAC,GAAG,CAAC;AAC3C,wBAAA,MAAM,QAAQ,GAAW,cAAc,CAAC,IAAI,CAAC;AAC7C,wBAAA,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,EAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAC,CAAC,CAAC;wBAC7E,MAAM;AACR,oBAAA,KAAK,KAAK;AACT;;;;;AAKG;;wBAEF,MAAM;AAGT,iBAAA;AACG,gBAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,IAAI,UAAU,IAAI,SAAS,IAAI,UAAU,CAAC,CAAC;AAChH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;;gGArHU,wBAAwB,EAAA,EAAA,CAAA,QAAA,CAAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAU,IAAA,CAAA,WAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAA4B,YAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,WAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,SAAA,CAAA,EAAA,EAAA,CAAA,QAAA,CAAAC,QAAA,CAAA,CAAA,CAAA,EAAA,CAAA;8EAAxB,wBAAwB,EAAA,OAAA,EAAxB,wBAAwB,CAAA,IAAA,EAAA,UAAA,EAFvB,MAAM,EAAA,CAAA,CAAA;uFAEP,wBAAwB,EAAA,CAAA;cAHpC,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACpBD;;AAEG;MAIU,UAAU,CAAA;AASrB,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;AARhD;;AAEG;AACI,QAAA,IAAA,CAAA,KAAK,GAA8B,IAAI,WAAW,CAAe,EAAE,CAAC,CAAC;QACrE,IAAiB,CAAA,iBAAA,GAA6B,EAAE,CAAC;QACjD,IAA0B,CAAA,0BAAA,GAA6B,EAAE,CAAC;QAC1D,IAAsB,CAAA,sBAAA,GAA6B,EAAE,CAAC;QAG3D,MAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,mBAAmB,CAIzE,CAAC;AACF,QAAA,IAAI,iBAAiB,EAAE;AACrB,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,IAAI,CAAC;AAChD,YAAA,IAAI,CAAC,0BAA0B,GAAG,iBAAiB,CAAC,SAAS,CAAC;AAC9D,YAAA,IAAI,CAAC,sBAAsB,GAAG,iBAAiB,CAAC,KAAK,CAAC;AACvD,SAAA;KACF;;oEApBU,UAAU,EAAA,EAAA,CAAA,QAAA,CAAAzC,EAAA,CAAA,aAAA,CAAA,CAAA,CAAA,EAAA,CAAA;gEAAV,UAAU,EAAA,OAAA,EAAV,UAAU,CAAA,IAAA,EAAA,UAAA,EAFT,MAAM,EAAA,CAAA,CAAA;uFAEP,UAAU,EAAA,CAAA;cAHtB,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE,MAAM;AACnB,aAAA,CAAA;;;ACXD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"igo2-integration.mjs","sources":["../../../packages/integration/src/lib/analytics/analytics.module.ts","../../../packages/integration/src/lib/import-export/import-export.state.ts","../../../packages/integration/src/lib/tool/tool.state.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.ts","../../../packages/integration/src/lib/context/context-editor-tool/context-editor-tool.component.html","../../../packages/integration/src/lib/map/map.state.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-manager-tool/context-manager-tool.component.html","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.ts","../../../packages/integration/src/lib/context/context-permission-manager-tool/context-permission-manager-tool.component.html","../../../packages/integration/src/lib/map/layer-list-tool.state.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.ts","../../../packages/integration/src/lib/context/context-share-tool/context-share-tool.component.html","../../../packages/integration/src/lib/context/context.module.ts","../../../packages/integration/src/lib/catalog/catalog.state.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-library-tool/catalog-library-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.html","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.component.ts","../../../packages/integration/src/lib/catalog/catalog-browser-tool/catalog-browser-tool.module.ts","../../../packages/integration/src/lib/catalog/catalog.module.ts","../../../packages/integration/src/lib/directions/directions.state.ts","../../../packages/integration/src/lib/context/context.state.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.ts","../../../packages/integration/src/lib/directions/directions-tool/directions-tool.component.html","../../../packages/integration/src/lib/directions/directions.module.ts","../../../packages/integration/src/lib/draw/draw.state.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.ts","../../../packages/integration/src/lib/draw/drawing-tool/drawing-tool.component.html","../../../packages/integration/src/lib/draw/draw.module.ts","../../../packages/integration/src/lib/workspace/shared/workspace.utils.ts","../../../packages/integration/src/lib/storage/storage.state.ts","../../../packages/integration/src/lib/workspace/shared/feature-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/wfs-actions.service.ts","../../../packages/integration/src/lib/workspace/shared/edition-actions.service.ts","../../../packages/integration/src/lib/workspace/workspace.state.ts","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.html","../../../packages/integration/src/lib/workspace/workspace-button/workspace-button.component.ts","../../../packages/integration/src/lib/workspace/workspace.module.ts","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.html","../../../packages/integration/src/lib/import-export/import-export-tool/import-export-tool.component.ts","../../../packages/integration/src/lib/import-export/import-export.module.ts","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.html","../../../packages/integration/src/lib/map/map-details-tool/map-details-tool.component.ts","../../../packages/integration/src/lib/map/map-tool/map-tool.component.html","../../../packages/integration/src/lib/map/map-tool/map-tool.component.ts","../../../packages/integration/src/lib/map/map-tools/map-tools.component.html","../../../packages/integration/src/lib/map/map-tools/map-tools.component.ts","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.html","../../../packages/integration/src/lib/map/map-legend/map-legend-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-swipe/advanced-swipe.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.html","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-coordinates/advanced-coordinates.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.ts","../../../packages/integration/src/lib/map/advanced-map-tool/advanced-map-tool.component.html","../../../packages/integration/src/lib/map/map-proximity.state.ts","../../../packages/integration/src/lib/map/map-proximity-tool/map-proximity-tool.component.html","../../../packages/integration/src/lib/map/map-proximity-tool/map-proximity-tool.component.ts","../../../packages/integration/src/lib/map/map.module.ts","../../../packages/integration/src/lib/measure/measure.state.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.ts","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.component.html","../../../packages/integration/src/lib/measure/measurer-tool/measurer-tool.module.ts","../../../packages/integration/src/lib/measure/measure.module.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.ts","../../../packages/integration/src/lib/print/print-tool/print-tool.component.html","../../../packages/integration/src/lib/print/print.module.ts","../../../packages/integration/src/lib/search/search.state.ts","../../../packages/integration/src/lib/search/search-bar/search-bar-binding.directive.ts","../../../packages/integration/src/lib/search/search-bar/search-bar.module.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.html","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.component.ts","../../../packages/integration/src/lib/search/search-results-tool/search-results-tool.module.ts","../../../packages/integration/src/lib/search/search.module.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/ogc-filter-tool/ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/time-filter-tool/time-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.html","../../../packages/integration/src/lib/filter/spatial-filter-tool/spatial-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-time-filter-tool/active-time-filter-tool.component.html","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.animation.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.ts","../../../packages/integration/src/lib/filter/active-ogc-filter-tool/active-ogc-filter-tool.component.html","../../../packages/integration/src/lib/filter/filter.module.ts","../../../packages/integration/src/lib/about/about-tool/about-tool.component.html","../../../packages/integration/src/lib/about/about-tool/about-tool.component.ts","../../../packages/integration/src/lib/about/about.module.ts","../../../packages/integration/src/lib/storage/storage.module.ts","../../../packages/integration/src/lib/integration.module.ts","../../../packages/integration/src/lib/tool/tool.module.ts","../../../packages/integration/src/lib/analytics/analytics-listener.service.ts","../../../packages/integration/src/lib/search/query.state.ts","../../../packages/integration/src/public_api.ts","../../../packages/integration/src/igo2-integration.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoAppAnalyticsModule {}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { ExportOptions } from '@igo2/geo';\n\nexport enum ImportExportType {\n layer = 'layer',\n context = 'context'\n}\n\nexport enum ImportExportMode {\n import = 'import',\n export = 'export'\n}\n\n/**\n * Service that holds the state of the importExport module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ImportExportState {\n\n readonly importExportType$: BehaviorSubject<ImportExportType> = new BehaviorSubject(ImportExportType.layer);\n readonly selectedMode$: BehaviorSubject<ImportExportMode> = new BehaviorSubject(ImportExportMode.import);\n readonly exportOptions$: BehaviorSubject<ExportOptions> = new BehaviorSubject(undefined);\n\n setImportExportType(type: ImportExportType) {\n this.importExportType$.next(type);\n }\n\n setMode(mode: ImportExportMode) {\n this.selectedMode$.next(mode);\n }\n\n setsExportOptions(exportOptions: ExportOptions) {\n this.exportOptions$.next(exportOptions);\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { Toolbox, ToolService } from '@igo2/common';\n\nimport { ExportOptions } from '@igo2/geo';\nimport { BehaviorSubject } from 'rxjs';\nimport { ImportExportMode, ImportExportState } from '../import-export/import-export.state';\n\n/**\n * Service that holds the state of the search module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ToolState {\n get toolbox(): Toolbox {\n return this.toolService.toolbox;\n }\n\n public openSidenav$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\n\n constructor(\n private toolService: ToolService,\n private importExportState: ImportExportState\n ) {}\n\n toolToActivateFromOptions(toolToActivate: { tool: string; options: {[key: string]: any} }) {\n if (!toolToActivate) { return; }\n if (toolToActivate.tool === 'importExport') {\n let exportOptions: ExportOptions = this.importExportState.exportOptions$.value;\n if (!exportOptions) {\n exportOptions = {\n layers: toolToActivate.options.layers,\n featureInMapExtent: toolToActivate.options.featureInMapExtent\n };\n } else {\n exportOptions.layers = toolToActivate.options.layers;\n exportOptions.featureInMapExtent = toolToActivate.options.featureInMapExtent;\n }\n this.importExportState.setsExportOptions(exportOptions);\n this.importExportState.setMode(ImportExportMode.export);\n }\n\n if (this.toolbox.getTool(toolToActivate.tool)) {\n this.toolbox.activateTool(toolToActivate.tool);\n this.openSidenav$.next(true);\n }\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport { ToolState } from '../../tool/tool.state';\n\n@ToolComponent({\n name: 'contextEditor',\n title: 'igo.integration.tools.contexts',\n icon: 'star',\n parent: 'contextManager'\n})\n@Component({\n selector: 'igo-context-editor-tool',\n templateUrl: './context-editor-tool.component.html'\n})\nexport class ContextEditorToolComponent {\n\n constructor(private toolState: ToolState) {}\n\n submitSuccessed() {\n this.toolState.toolbox.activatePreviousTool();\n }\n}\n","<igo-context-edit\n igoContextEditBinding\n (submitSuccessed)=\"submitSuccessed()\"\n></igo-context-edit>\n","import { Injectable } from '@angular/core';\nimport { StorageService, ConfigService } from '@igo2/core';\n\nimport { IgoMap, MapService, ProjectionService } from '@igo2/geo';\n// import { BehaviorSubject } from 'rxjs';\n\n/**\n * Service that holds the state of the map module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MapState {\n\n // public mapCenter$ = new BehaviorSubject<boolean>(false);\n get showAllLegendsValue(): boolean {\n return this._legendToolShowAll;\n }\n\n set showAllLegendsValue(value) {\n this._legendToolShowAll = value;\n }\n private _legendToolShowAll: boolean;\n\n /**\n * Active map\n */\n get map(): IgoMap { return this._map; }\n private _map: IgoMap;\n\n constructor(\n private mapService: MapService,\n private projectionService: ProjectionService, // Don't remove this or it'll never be injected,\n private storageService: StorageService,\n private configService: ConfigService\n ) {\n this._map = new IgoMap({\n controls: {\n scaleLine: true,\n attribution: {\n collapsed: true\n }\n }\n },\n this.storageService,\n this.configService);\n\n this.mapService.setMap(this.map);\n }\n}\n","import { Component, Input } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\n\nimport { ToolState } from '../../tool/tool.state';\nimport { MapState } from '../../map/map.state';\nimport { IgoMap } from '@igo2/geo';\n\n@ToolComponent({\n name: 'contextManager',\n title: 'igo.integration.tools.contexts',\n icon: 'star'\n})\n@Component({\n selector: 'igo-context-manager-tool',\n templateUrl: './context-manager-tool.component.html'\n})\nexport class ContextManagerToolComponent {\n\n @Input() toolToOpenOnContextChange: string = 'mapTools';\n\n get map(): IgoMap { return this.mapState.map; }\n\n constructor(private toolState: ToolState, private mapState: MapState) {}\n\n editContext() {\n this.toolState.toolbox.activateTool('contextEditor');\n }\n\n managePermissions() {\n this.toolState.toolbox.activateTool('contextPermissionManager');\n }\n}\n","<igo-context-list\n igoContextListBinding\n [map]=\"map\"\n (edit)=\"editContext()\"\n (managePermissions)=\"managePermissions()\">\n</igo-context-list>\n","import { Component } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\n\n@ToolComponent({\n name: 'contextPermissionManager',\n title: 'igo.integration.tools.contexts',\n icon: 'star',\n parent: 'contextManager'\n})\n@Component({\n selector: 'igo-context-permission-manager-tool',\n templateUrl: './context-permission-manager-tool.component.html'\n})\nexport class ContextPermissionManagerToolComponent {}\n","<igo-context-permissions igoContextPermissionsBinding></igo-context-permissions>\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { LayerListControlsOptions } from '@igo2/geo';\n\n/**\n * Service that holds the state of layer list tool values\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class LayerListToolState {\n\n readonly keyword$: BehaviorSubject<string> = new BehaviorSubject('');\n readonly sortAlpha$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\n readonly onlyVisible$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\n readonly selectedTab$: BehaviorSubject<number> = new BehaviorSubject(undefined);\n\n setKeyword(keyword: string) {\n this.keyword$.next(keyword);\n }\n\n setSortAlpha(sort: boolean) {\n this.sortAlpha$.next(sort);\n }\n\n setOnlyVisible(onlyVisible: boolean) {\n this.onlyVisible$.next(onlyVisible);\n }\n\n setSelectedTab(tab: number) {\n this.selectedTab$.next(tab);\n }\n\n getLayerListControls(): LayerListControlsOptions {\n return {\n keyword: this.keyword$.value,\n onlyVisible: this.onlyVisible$.value,\n sortAlpha: this.sortAlpha$.value\n };\n }\n}\n","import { Component } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport { IgoMap, LayerListControlsOptions } from '@igo2/geo';\n\nimport { MapState } from '../../map/map.state';\nimport { LayerListToolState } from '../../map/layer-list-tool.state';\n\n@ToolComponent({\n name: 'shareMap',\n title: 'igo.integration.tools.shareMap',\n icon: 'share-variant'\n})\n@Component({\n selector: 'igo-context-share-tool',\n templateUrl: './context-share-tool.component.html'\n})\nexport class ContextShareToolComponent {\n\n get map(): IgoMap { return this.mapState.map; }\n\n get layerListControls(): LayerListControlsOptions { return this.layerListToolState.getLayerListControls(); }\n\n constructor(\n private mapState: MapState,\n private layerListToolState: LayerListToolState\n ) {}\n}\n","<igo-share-map\n [map]=\"map\"></igo-share-map>\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\nimport { IgoContextModule } from '@igo2/context';\n\nimport { ContextEditorToolComponent } from './context-editor-tool/context-editor-tool.component';\nimport { ContextManagerToolComponent } from './context-manager-tool/context-manager-tool.component';\nimport { ContextPermissionManagerToolComponent } from './context-permission-manager-tool/context-permission-manager-tool.component';\nimport { ContextShareToolComponent } from './context-share-tool/context-share-tool.component';\n\n@NgModule({\n imports: [IgoContextModule],\n declarations: [\n ContextEditorToolComponent,\n ContextManagerToolComponent,\n ContextPermissionManagerToolComponent,\n ContextShareToolComponent\n ],\n exports: [\n ContextEditorToolComponent,\n ContextManagerToolComponent,\n ContextPermissionManagerToolComponent,\n ContextShareToolComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppContextModule {}\n","import { Injectable } from '@angular/core';\n\nimport { AuthService } from '@igo2/auth';\nimport { EntityStore } from '@igo2/common';\nimport { Catalog, CatalogItem } from '@igo2/geo';\n\n/**\n * Service that holds the state of the catalog module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class CatalogState {\n\n /**\n * Store that contains all the catalogs\n */\n get catalogStore(): EntityStore<Catalog> { return this._catalogStore; }\n private _catalogStore: EntityStore<Catalog>;\n\n /**\n * Catalog -> Catalog items store mapping\n */\n private catalogItemsStores = new Map<string, EntityStore<CatalogItem>>();\n\n constructor(authService: AuthService) {\n this._catalogStore = new EntityStore([]);\n\n authService.authenticate$.subscribe(() => {\n this.clearCatalogItemsStores();\n });\n }\n\n /**\n * Get a catalog's items store\n * @param catalog Catalog\n * @returns Store that contains the catalog items\n */\n getCatalogItemsStore(catalog: Catalog): EntityStore<CatalogItem> {\n return this.catalogItemsStores.get(catalog.id as string);\n }\n\n /**\n * Bind a catalog items store to a catalog\n * @param catalog Catalog\n * @param store Catalog items store\n */\n setCatalogItemsStore(catalog: Catalog, store: EntityStore<CatalogItem>) {\n this.catalogItemsStores.set(catalog.id as string, store);\n }\n\n /**\n * Clear all catalog items stores\n */\n clearCatalogItemsStores() {\n this.catalogItemsStores.clear();\n }\n}\n","import { Component, OnInit, ChangeDetectionStrategy, Input } from '@angular/core';\nimport { take } from 'rxjs/operators';\n\nimport { ToolComponent } from '@igo2/common';\n\nimport { EntityStore } from '@igo2/common';\nimport { Catalog, CatalogService } from '@igo2/geo';\nimport { StorageService } from '@igo2/core';\n\nimport { ToolState } from '../../tool/tool.state';\nimport { CatalogState } from '../catalog.state';\n\n/**\n * Tool to browse the list of available catalogs.\n */\n@ToolComponent({\n name: 'catalog',\n title: 'igo.integration.tools.catalog',\n icon: 'layers-plus'\n})\n@Component({\n selector: 'igo-catalog-library-tool',\n templateUrl: './catalog-library-tool.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CatalogLibraryToolComponent implements OnInit {\n /**\n * Store that contains the catalogs\n * @internal\n */\n get store(): EntityStore<Catalog> {\n return this.catalogState.catalogStore;\n }\n\n /**\n * Determine if the form to add a catalog is allowed\n */\n @Input() addCatalogAllowed: boolean = false;\n\n /**\n * List of predefined catalogs\n */\n @Input() predefinedCatalogs: Catalog[] = [];\n\n constructor(\n private catalogService: CatalogService,\n private catalogState: CatalogState,\n private toolState: ToolState,\n private storageService: StorageService\n ) {}\n\n /**\n * @internal\n */\n ngOnInit() {\n if (this.store.count === 0) {\n this.loadCatalogs();\n }\n }\n\n /**\n * When the selected catalog changes, toggle the the CatalogBrowser tool.\n * @internal\n * @param event Select event\n */\n onCatalogSelectChange(event: { selected: boolean; catalog: Catalog }) {\n if (event.selected === false) {\n return;\n }\n this.toolState.toolbox.activateTool('catalogBrowser');\n }\n\n /**\n * Get all the available catalogs from the CatalogService and\n * load them into the store.\n */\n private loadCatalogs() {\n this.catalogService.loadCatalogs().pipe(take(1)).subscribe((catalogs: Catalog[]) => {\n this.store.clear();\n this.store.load(catalogs.concat((this.storageService.get('addedCatalogs') || []) as Catalog[]));\n });\n }\n}\n","<igo-catalog-library\n [predefinedCatalogs]=\"predefinedCatalogs\"\n [addCatalogAllowed]=\"addCatalogAllowed\"\n [store]=\"store\"\n (catalogSelectChange)=\"onCatalogSelectChange($event)\">\n</igo-catalog-library>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\nimport { IgoCatalogLibraryModule } from '@igo2/geo';\nimport { CatalogLibraryToolComponent } from './catalog-library-tool.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoCatalogLibraryModule\n ],\n declarations: [CatalogLibraryToolComponent],\n exports: [CatalogLibraryToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppCatalogLibraryToolModule {}\n","<igo-catalog-browser\n *ngIf=\"store$ | async as store\"\n [catalog]=\"catalog\"\n [store]=\"store\"\n [map]=\"map\"\n [toggleCollapsedGroup]=\"toggleCollapsedGroup\">\n</igo-catalog-browser>\n","import {\n Component,\n Input,\n OnInit,\n OnDestroy,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { EntityRecord, EntityStore, ToolComponent } from '@igo2/common';\nimport { AuthService } from '@igo2/auth';\n\nimport {\n IgoMap,\n Catalog,\n CatalogItem,\n CatalogItemState,\n CatalogService\n} from '@igo2/geo';\n\nimport { MapState } from '../../map/map.state';\nimport { CatalogState } from '../catalog.state';\n\n/**\n * Tool to browse a catalog's groups and layers and display them to a map.\n */\n@ToolComponent({\n name: 'catalogBrowser',\n title: 'igo.integration.tools.catalog',\n icon: 'photo-browser',\n parent: 'catalog'\n})\n@Component({\n selector: 'igo-catalog-browser-tool',\n templateUrl: './catalog-browser-tool.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CatalogBrowserToolComponent implements OnInit, OnDestroy {\n catalog: Catalog;\n\n /**\n * Store that contains the catalog items\n * @internal\n */\n store$ = new BehaviorSubject<EntityStore<CatalogItem, CatalogItemState>>(\n undefined\n );\n\n /**\n * Subscription to the selected catalog\n */\n private catalog$$: Subscription;\n\n /**\n * Subscription for authentication\n */\n private authenticate$$: Subscription;\n\n /**\n * Whether a group can be toggled when it's collapsed\n */\n @Input() toggleCollapsedGroup: boolean = true;\n\n /**\n * Map to add layers to\n * @internal\n */\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n constructor(\n private catalogService: CatalogService,\n private catalogState: CatalogState,\n private mapState: MapState,\n private authService: AuthService\n ) {}\n\n /**\n * @internal\n */\n ngOnInit() {\n const catalogStore = this.catalogState.catalogStore;\n this.catalog$$ = catalogStore.stateView\n .firstBy$(\n (record: EntityRecord<Catalog>) => record.state.selected === true\n )\n .subscribe((record: EntityRecord<Catalog>) => {\n if (record && record.entity) {\n const catalog = record.entity;\n this.catalog = catalog;\n }\n });\n\n this.authenticate$$ = this.authService.authenticate$.subscribe(() => {\n this.loadCatalogItems(this.catalog);\n });\n }\n\n /**\n * @internal\n */\n ngOnDestroy() {\n this.catalog$$.unsubscribe();\n this.authenticate$$.unsubscribe();\n }\n\n /**\n * Get the selected catalog's items from the CatalogService and\n * load them into the store.\n * @param catalog Selected catalog\n */\n private loadCatalogItems(catalog: Catalog) {\n let store = this.catalogState.getCatalogItemsStore(catalog);\n if (store !== undefined) {\n this.store$.next(store);\n return;\n }\n\n store = new EntityStore<CatalogItem>([]);\n this.catalogState.setCatalogItemsStore(catalog, store);\n this.catalogService\n .loadCatalogItems(catalog)\n .pipe(take(1))\n .subscribe((items: CatalogItem[]) => {\n store.load(items);\n this.store$.next(store);\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\nimport { IgoCatalogBrowserModule } from '@igo2/geo';\nimport { CatalogBrowserToolComponent } from './catalog-browser-tool.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n IgoCatalogBrowserModule\n ],\n declarations: [CatalogBrowserToolComponent],\n exports: [CatalogBrowserToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppCatalogBrowserToolModule {}\n","import { NgModule } from '@angular/core';\n\nimport { IgoAppCatalogLibraryToolModule } from './catalog-library-tool/catalog-library-tool.module';\nimport { IgoAppCatalogBrowserToolModule } from './catalog-browser-tool/catalog-browser-tool.module';\n\n@NgModule({\n imports: [],\n exports: [\n IgoAppCatalogLibraryToolModule,\n IgoAppCatalogBrowserToolModule\n ],\n declarations: []\n})\nexport class IgoAppCatalogModule {}\n","import { Injectable } from '@angular/core';\n\nimport { AnyLayerOptions, StopsStore, StopsFeatureStore, RoutesFeatureStore, StepFeatureStore } from '@igo2/geo';\nimport { Subject } from 'rxjs';\nimport { MapState } from '../map/map.state';\n\n/**\n * Service that holds the state of the direction module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DirectionState {\n\n public zoomToActiveRoute$: Subject<void> = new Subject();\n\n /**\n * Store that holds the stop\n */\n public stopsStore: StopsStore = new StopsStore([]);\n\n /**\n * Store that holds the driving stops as feature\n */\n public stopsFeatureStore: StopsFeatureStore = new StopsFeatureStore([], {\n map: this.mapState.map\n });\n\n /**\n * Store that holds the driving route as feature\n */\n public routesFeatureStore: RoutesFeatureStore = new RoutesFeatureStore([], {\n map: this.mapState.map\n });\n\n public stepFeatureStore: StepFeatureStore = new StepFeatureStore([], {\n map: this.mapState.map\n });\n\n public debounceTime: number = 200;\n\n constructor(private mapState: MapState) {\n\n this.mapState.map.ol.once('rendercomplete', () => {\n this.stopsFeatureStore.empty$.subscribe((empty) => {\n if (this.stopsFeatureStore.layer?.options) {\n (this.stopsFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\n }\n });\n this.routesFeatureStore.empty$.subscribe((empty) => {\n if (this.routesFeatureStore.layer?.options) {\n (this.routesFeatureStore.layer.options as AnyLayerOptions).showInLayerList = !empty;\n }\n });\n });\n\n this.mapState.map.layers$.subscribe(() => {\n if (!this.mapState.map.getLayerById('igo-direction-stops-layer')) {\n this.stopsStore.deleteMany(this.stopsStore.all());\n this.stopsFeatureStore.deleteMany(this.stopsFeatureStore.all()); // not necessary\n }\n if (!this.mapState.map.getLayerById('igo-direction-route-layer')) {\n this.routesFeatureStore.deleteMany(this.routesFeatureStore.all());\n }\n });\n }\n\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { LanguageService } from '@igo2/core';\nimport { Tool, ToolService } from '@igo2/common';\nimport { ContextService, DetailedContext } from '@igo2/context';\n\nimport { ToolState } from '../tool/tool.state';\n\n/**\n * Service that holds the state of the context module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ContextState {\n /**\n * Observable of the active context\n */\n context$: BehaviorSubject<DetailedContext> = new BehaviorSubject(undefined);\n\n constructor(\n private contextService: ContextService,\n private toolService: ToolService,\n private toolState: ToolState,\n private languageService: LanguageService\n ) {\n this.contextService.context$.subscribe((context: DetailedContext) => {\n this.onContextChange(context);\n });\n this.contextService.toolsChanged$.subscribe((context: DetailedContext) => {\n this.updateTools(context);\n });\n }\n\n /**\n * Set the active context\n * @param context Detailed context\n */\n private setContext(context: DetailedContext) {\n this.updateTools(context);\n this.context$.next(context);\n }\n\n /**\n * Update the tool state with the context's tools\n * @param context Detailed context\n */\n private updateTools(context: DetailedContext) {\n const toolbox = this.toolState.toolbox;\n\n const tools = [];\n const contextTools = context.tools || [];\n contextTools.forEach((contextTool: Tool) => {\n const baseTool = this.toolService.getTool(contextTool.name);\n if (baseTool === undefined) {\n return;\n }\n\n const options = Object.assign(\n {},\n baseTool.options || {},\n contextTool.options || {}\n );\n const tool = Object.assign({}, baseTool, contextTool, { options });\n tools.push(tool);\n });\n\n tools.forEach((tool) => {\n if (tool.parent) {\n const parentIndex = tools.findIndex((el) => el.name === tool.parent);\n if (parentIndex !== -1) {\n tools[parentIndex].children = [];\n tools[parentIndex].children.push(tool.name);\n }\n }\n });\n\n toolbox.setTools(tools);\n toolbox.setToolbar(context.toolbar || []);\n\n // TODO: This is a patch so the context service can work without\n // injecting the ToolState or without being completely refactored\n this.contextService.setTools([].concat(tools));\n this.contextService.setToolbar(context.toolbar || []);\n }\n\n /**\n * Set a new context and update the tool state\n * @param context Detailed context\n */\n private onContextChange(context: DetailedContext) {\n if (context === undefined) {\n return;\n }\n this.setContext(context);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AuthService } from '@igo2/auth';\n\nimport { ToolComponent } from '@igo2/common';\nimport { LanguageService, MessageService, StorageScope, StorageService } from '@igo2/core';\nimport { IgoMap, RoutesFeatureStore, StopsFeatureStore, StopsStore, StepFeatureStore } from '@igo2/geo';\nimport { Subject } from 'rxjs';\nimport { ContextState } from '../../context/context.state';\n\nimport { MapState } from '../../map/map.state';\nimport { DirectionState } from '../directions.state';\n\n@ToolComponent({\n name: 'directions',\n title: 'igo.integration.tools.directions',\n icon: 'directions'\n})\n@Component({\n selector: 'igo-directions-tool',\n templateUrl: './directions-tool.component.html'\n})\nexport class DirectionsToolComponent implements OnInit {\n\n public currentContextUri: string;\n /**\n * stops\n * @internal\n */\n get stopsStore(): StopsStore { return this.directionState.stopsStore; }\n\n get debounceTime(): number { return this.directionState.debounceTime; }\n\n /**\n * stops\n * @internal\n */\n get stopsFeatureStore(): StopsFeatureStore { return this.directionState.stopsFeatureStore; }\n\n /**\n * routes\n * @internal\n */\n get routesFeatureStore(): RoutesFeatureStore { return this.directionState.routesFeatureStore; }\n\n /**\n * step store\n * @internal\n */\n get stepFeatureStore(): StepFeatureStore { return this.directionState.stepFeatureStore; }\n\n /**\n * step store\n * @internal\n */\n get zoomToActiveRoute$(): Subject<void> { return this.directionState.zoomToActiveRoute$; }\n\n\n /**\n * Map to measure on\n * @internal\n */\n get map(): IgoMap { return this.mapState.map; }\n\n constructor(\n private directionState: DirectionState,\n private mapState: MapState,\n private languageService: LanguageService,\n private messageService: MessageService,\n private storageService: StorageService,\n public contextState: ContextState,\n private authService: AuthService\n ) {}\n\n ngOnInit(): void {\n const warningShown = this.storageService.get('direction.warning.shown') as boolean;\n if (!warningShown) {\n this.messageService.info(\n 'igo.integration.directions.warning.message',\n 'igo.integration.directions.warning.title', { timeOut: 20000 });\n this.storageService.set('direction.warning.shown', true, StorageScope.SESSION);\n }\n this.contextState.context$.subscribe(c => {\n if (!this.authService.authenticated) {\n this.currentContextUri = c.uri;\n }\n });\n }\n\n}\n","<igo-directions\n [contextUri]=\"currentContextUri\"\n [debounceTime]=\"debounceTime\"\n [stopsStore]=\"stopsStore\"\n [stopsFeatureStore]=\"stopsFeatureStore\"\n [stepFeatureStore]=\"stepFeatureStore\"\n [routesFeatureStore]=\"routesFeatureStore\"\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"> \n</igo-directions>","import {\n NgModule,\n ModuleWithProviders,\n CUSTOM_ELEMENTS_SCHEMA\n} from '@angular/core';\n\nimport { IgoDirectionsModule } from '@igo2/geo';\nimport { DirectionsToolComponent } from './directions-tool/directions-tool.component';\n\n@NgModule({\n imports: [IgoDirectionsModule],\n declarations: [DirectionsToolComponent],\n exports: [DirectionsToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppDirectionsModule {\n static forRoot(): ModuleWithProviders<IgoAppDirectionsModule> {\n return {\n ngModule: IgoAppDirectionsModule,\n providers: []\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DrawControl, FeatureStore, FeatureWithDraw, VectorLayer } from '@igo2/geo';\nimport { MapState } from '../map/map.state';\n\n/**\n * Service that holds the state of the measure module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DrawState {\n\n public stores: FeatureStore<FeatureWithDraw>[] = [];\n public layersID: string[] = [];\n public drawControls: [string, DrawControl][] = [];\n public activeDrawingLayer: VectorLayer;\n\n constructor(private mapState: MapState) {\n this.mapState.map.layers$.subscribe(() => {\n this.layersID.forEach(layerId => {\n if (!this.mapState.map.getLayerById(layerId)){\n let deletedStore = this.stores.find(store => store.layer.id === layerId);\n deletedStore.deleteMany(deletedStore.all());\n this.stores.splice(this.stores.indexOf(deletedStore,0), 1);\n this.layersID.splice(this.layersID.indexOf(layerId,0), 1);\n let drawControlIndex = this.drawControls.findIndex(dc => dc[0] === layerId);\n this.drawControls.splice(drawControlIndex, 1);\n }\n });\n });\n for (let store of this.stores){\n store = new FeatureStore<FeatureWithDraw>([], {map: this.mapState.map});\n }\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy\n } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport { FeatureStore, IgoMap, DrawControl, FeatureWithDraw, VectorLayer} from '@igo2/geo';\nimport { MapState } from '../../map/map.state';\nimport { DrawState } from '../draw.state';\n\n/**\n * Tool to measure lengths and areas\n */\n@ToolComponent({\n name: 'draw',\n title: 'igo.integration.tools.draw',\n icon: 'draw'\n})\n@Component({\n selector: 'igo-drawing-tool',\n templateUrl: './drawing-tool.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrawingToolComponent {\n /**\n * Map to measure on\n * @internal\n */\n get stores(): FeatureStore<FeatureWithDraw>[] {\n return this.drawState.stores;\n }\n\n /**\n * Map to measure on\n * @internal\n */\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n get layersID(): string[] {\n return this.drawState.layersID;\n }\n\n get drawControls(): [string, DrawControl][] {\n return this.drawState.drawControls;\n }\n set drawControls(dc:[string, DrawControl][]){\n this.drawState.drawControls = dc;\n }\n\n get activeDrawingLayer(): VectorLayer {\n return this.drawState.activeDrawingLayer;\n }\n set activeDrawingLayer(value: VectorLayer) {\n this.drawState.activeDrawingLayer = value;\n }\n\n public addLayersID(layerID:string){\n this.layersID.push(layerID);\n }\n\n public addDrawControls(dc:[string, DrawControl][]){\n this.drawControls = dc;\n }\n\n constructor(private drawState: DrawState, private mapState: MapState) {}\n}\n","<igo-draw\n [stores]=\"stores\"\n [map]=\"map\"\n (layersIDEvent)=\"addLayersID($event)\"\n [activeDrawingLayer]=\"activeDrawingLayer\"\n [drawControls]=\"drawControls\"\n (drawControlsEvent)=\"addDrawControls($event)\"\n (activeLayerChange)=\"activeDrawingLayer = $event\">\n</igo-draw>\n","import { NgModule } from '@angular/core';\n\nimport { IgoDrawingToolModule } from '@igo2/geo';\nimport { DrawingToolComponent } from './drawing-tool/drawing-tool.component';\n\n@NgModule({\n imports: [IgoDrawingToolModule],\n declarations: [DrawingToolComponent],\n exports: [\n DrawingToolComponent\n ]\n})\nexport class IgoAppDrawModule {}\n","import {\n FeatureMotion,\n FeatureStoreSelectionStrategy,\n FeatureWorkspace,\n WfsWorkspace,\n EditionWorkspace\n} from '@igo2/geo';\n\n\nexport function handleZoomAuto(workspace: FeatureWorkspace | WfsWorkspace | EditionWorkspace, storageService) {\n const zoomStrategy = workspace.entityStore\n .getStrategyOfType(FeatureStoreSelectionStrategy) as FeatureStoreSelectionStrategy;\n zoomStrategy.setMotion(storageService.get('zoomAuto') as boolean ? FeatureMotion.Default : FeatureMotion.None);\n}\n\n\n","import { Injectable } from '@angular/core';\n\nimport { StorageService } from '@igo2/core';\n\n/**\n * Service that holds the state of storage service\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class StorageState {\n get storageService(): StorageService {\n return this.igoStorageService;\n }\n\n constructor(private igoStorageService: StorageService) {}\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport {\n Action,\n EntityStoreFilterCustomFuncStrategy,\n EntityStoreFilterSelectionStrategy\n} from '@igo2/common';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport {\n FeatureWorkspace,\n mapExtentStrategyActiveToolTip,\n noElementSelected,\n ExportOptions\n} from '@igo2/geo';\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\nimport { StorageState } from '../../storage/storage.state';\nimport { map, skipWhile } from 'rxjs/operators';\nimport { ToolState } from '../../tool/tool.state';\nimport { handleZoomAuto } from './workspace.utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FeatureActionsService implements OnDestroy {\n\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\n this.storageService.get('workspaceMaximize') as boolean\n );\n\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n private storageChange$$: Subscription;\n\n get storageService(): StorageService {\n return this.storageState.storageService;\n }\n\n get zoomAuto(): boolean {\n return this.storageService.get('zoomAuto') as boolean;\n }\n\n constructor(\n private storageState: StorageState,\n public languageService: LanguageService,\n private toolState: ToolState,\n private mediaService: MediaService\n ) {}\n\n ngOnDestroy(): void {\n if (this.storageChange$$) {\n this.storageChange$$.unsubscribe();\n }\n }\n\n loadActions(\n workspace: FeatureWorkspace,\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\n ) {\n const actions = this.buildActions(\n workspace,\n rowsInMapExtentCheckCondition$,\n selectOnlyCheckCondition$\n );\n workspace.actionStore.load(actions);\n }\n\n buildActions(\n workspace: FeatureWorkspace,\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\n ): Action[] {\n this.zoomAuto$.next(this.zoomAuto);\n this.storageChange$$ = this.storageService.storageChange$\n .pipe(\n skipWhile(\n (storageChange: StorageServiceEvent) =>\n storageChange.key !== 'zoomAuto' || storageChange.event === StorageServiceEventEnum.CLEARED\n )\n )\n .subscribe(() => {\n this.zoomAuto$.next(this.zoomAuto);\n handleZoomAuto(workspace, this.storageService);\n });\n return [\n {\n id: 'zoomAuto',\n checkbox: true,\n title: 'igo.integration.workspace.zoomAuto.title',\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\n checkCondition: this.zoomAuto$,\n handler: () => {\n handleZoomAuto(workspace, this.storageService);\n this.storageService.set(\n 'zoomAuto',\n !this.storageService.get('zoomAuto') as boolean\n );\n }\n },\n {\n id: 'filterInMapExtent',\n checkbox: true,\n title: 'igo.integration.workspace.inMapExtent.title',\n tooltip: mapExtentStrategyActiveToolTip(workspace),\n checkCondition: rowsInMapExtentCheckCondition$,\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\n },\n {\n id: 'selectedOnly',\n checkbox: true,\n title: 'igo.integration.workspace.selected.title',\n tooltip: 'igo.integration.workspace.selected.tooltip',\n checkCondition: selectOnlyCheckCondition$,\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\n },\n {\n id: 'clearselection',\n icon: 'select-off',\n title: 'igo.integration.workspace.clearSelection.title',\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\n handler: (ws: FeatureWorkspace) => {\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), {\n selected: false\n });\n },\n args: [workspace],\n availability: (ws: FeatureWorkspace) => noElementSelected(ws)\n },\n {\n id: 'featureDownload',\n icon: 'file-export',\n title: 'igo.integration.workspace.download.title',\n tooltip: 'igo.integration.workspace.download.tooltip',\n handler: (ws: FeatureWorkspace) => {\n const filterStrategy = ws.entityStore.getStrategyOfType(\n EntityStoreFilterCustomFuncStrategy\n );\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(\n EntityStoreFilterSelectionStrategy\n );\n const layersWithSelection = filterSelectionStrategy.active\n ? [ws.layer.id]\n : [];\n this.toolState.toolToActivateFromOptions({\n tool: 'importExport',\n options: {\n layers: [ws.layer.id],\n featureInMapExtent: filterStrategy.active,\n layersWithSelection\n } as ExportOptions\n });\n },\n args: [workspace]\n },\n {\n id: 'maximize',\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\n tooltip: this.languageService.translate.instant(\n 'igo.integration.workspace.maximizeTooltip'\n ),\n icon: 'resize',\n display: () => {\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\n },\n handler: () => {\n if (!this.mediaService.isMobile()) {\n this.maximize$.next(true);\n }\n },\n },\n {\n id: 'standardExtent',\n title: this.languageService.translate.instant(\n 'igo.integration.workspace.standardExtent'\n ),\n tooltip: this.languageService.translate.instant(\n 'igo.integration.workspace.standardExtentTooltip'\n ),\n icon: 'resize',\n display: () => {\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\n },\n handler: () => {\n this.maximize$.next(false);\n }\n }\n ];\n }\n}\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\n\nimport {\n Action,\n EntityStoreFilterCustomFuncStrategy,\n EntityStoreFilterSelectionStrategy,\n Widget\n} from '@igo2/common';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport {\n WfsWorkspace,\n mapExtentStrategyActiveToolTip,\n noElementSelected,\n ExportOptions,\n OgcFilterWidget,\n OgcFilterableDataSource,\n} from '@igo2/geo';\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\nimport { StorageState } from '../../storage/storage.state';\nimport { map, skipWhile } from 'rxjs/operators';\nimport { ToolState } from '../../tool/tool.state';\nimport { handleZoomAuto } from './workspace.utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WfsActionsService implements OnDestroy {\n\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\n this.storageService.get('workspaceMaximize') as boolean\n );\n\n selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n // rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject(true);\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n private storageChange$$: Subscription;\n\n get storageService(): StorageService {\n return this.storageState.storageService;\n }\n\n get zoomAuto(): boolean {\n return this.storageService.get('zoomAuto') as boolean;\n }\n\n constructor(\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\n private storageState: StorageState,\n public languageService: LanguageService,\n private mediaService: MediaService,\n private toolState: ToolState) {}\n\n ngOnDestroy(): void {\n if (this.storageChange$$) {\n this.storageChange$$.unsubscribe();\n }\n }\n\n loadActions(\n workspace: WfsWorkspace,\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\n ) {\n const actions = this.buildActions(\n workspace,\n rowsInMapExtentCheckCondition$,\n selectOnlyCheckCondition$\n );\n workspace.actionStore.load(actions);\n }\n\n buildActions(\n workspace: WfsWorkspace,\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\n ): Action[] {\n this.zoomAuto$.next(this.zoomAuto);\n this.storageChange$$ = this.storageService.storageChange$\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\n storageChange?.key !== 'zoomAuto' || storageChange?.event === StorageServiceEventEnum.CLEARED))\n .subscribe(() => {\n this.zoomAuto$.next(this.zoomAuto);\n handleZoomAuto(workspace, this.storageService);\n });\n const actions = [\n {\n id: 'zoomAuto',\n checkbox: true,\n title: 'igo.integration.workspace.zoomAuto.title',\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\n checkCondition: this.zoomAuto$,\n handler: () => {\n handleZoomAuto(workspace, this.storageService);\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\n }\n },\n {\n id: 'filterInMapExtent',\n checkbox: true,\n title: 'igo.integration.workspace.inMapExtent.title',\n tooltip: mapExtentStrategyActiveToolTip(workspace),\n checkCondition: rowsInMapExtentCheckCondition$,\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\n },\n {\n id: 'selectedOnly',\n checkbox: true,\n title: 'igo.integration.workspace.selected.title',\n tooltip: 'igo.integration.workspace.selected.title',\n checkCondition: selectOnlyCheckCondition$,\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\n },\n {\n id: 'clearselection',\n icon: 'select-off',\n title: 'igo.integration.workspace.clearSelection.title',\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\n handler: (ws: WfsWorkspace) => {\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\n },\n args: [workspace],\n availability: (ws: WfsWorkspace) => noElementSelected(ws)\n },\n {\n id: 'wfsDownload',\n icon: 'file-export',\n title: 'igo.integration.workspace.download.title',\n tooltip: 'igo.integration.workspace.download.tooltip',\n handler: (ws: WfsWorkspace) => {\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\n this.toolState.toolToActivateFromOptions({\n tool: 'importExport',\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\n });\n },\n args: [workspace]\n },\n {\n id: 'ogcFilter',\n icon: 'filter',\n title: 'igo.integration.workspace.ogcFilter.title',\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\n handler: (widget: Widget, ws: WfsWorkspace) => {\n ws.activateWidget(widget, {\n map: ws.map,\n layer: ws.layer\n });\n },\n args: [this.ogcFilterWidget, workspace]\n },\n {\n id: 'maximize',\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\n tooltip: this.languageService.translate.instant(\n 'igo.integration.workspace.maximizeTooltip'\n ),\n icon: 'resize',\n display: () => {\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\n },\n handler: () => {\n if (!this.mediaService.isMobile()) {\n this.maximize$.next(true);\n }\n },\n },\n {\n id: 'standardExtent',\n title: this.languageService.translate.instant(\n 'igo.integration.workspace.standardExtent'\n ),\n tooltip: this.languageService.translate.instant(\n 'igo.integration.workspace.standardExtentTooltip'\n ),\n icon: 'resize',\n display: () => {\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\n },\n handler: () => {\n this.maximize$.next(false);\n }\n }\n ];\n return (workspace.layer.dataSource as OgcFilterableDataSource).options.ogcFilters?.enabled ?\n actions : actions.filter(action => action.id !== 'ogcFilter');\n }\n}\n","import { Inject, Injectable, OnDestroy } from '@angular/core';\n\nimport {\n Action,\n EntityStoreFilterCustomFuncStrategy,\n EntityStoreFilterSelectionStrategy,\n Widget\n} from '@igo2/common';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport {\n EditionWorkspace,\n mapExtentStrategyActiveToolTip,\n noElementSelected,\n ExportOptions,\n OgcFilterWidget,\n OgcFilterableDataSource,\n} from '@igo2/geo';\nimport { StorageService, StorageServiceEvent, StorageServiceEventEnum, LanguageService, MediaService} from '@igo2/core';\nimport { StorageState } from '../../storage/storage.state';\nimport { map, skipWhile } from 'rxjs/operators';\nimport { ToolState } from '../../tool/tool.state';\nimport { handleZoomAuto } from './workspace.utils';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EditionActionsService implements OnDestroy {\n\n public maximize$: BehaviorSubject<boolean> = new BehaviorSubject(\n this.storageService.get('workspaceMaximize') as boolean\n );\n\n zoomAuto$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n private storageChange$$: Subscription;\n\n get storageService(): StorageService {\n return this.storageState.storageService;\n }\n\n get zoomAuto(): boolean {\n return this.storageService.get('zoomAuto') as boolean;\n }\n\n constructor(\n @Inject(OgcFilterWidget) private ogcFilterWidget: Widget,\n private storageState: StorageState,\n public languageService: LanguageService,\n private mediaService: MediaService,\n private toolState: ToolState) {}\n\n ngOnDestroy(): void {\n if (this.storageChange$$) {\n this.storageChange$$.unsubscribe();\n }\n }\n\n loadActions(\n workspace: EditionWorkspace,\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\n ) {\n const actions = this.buildActions(\n workspace,\n rowsInMapExtentCheckCondition$,\n selectOnlyCheckCondition$\n );\n workspace.actionStore.load(actions);\n }\n\n buildActions(\n workspace: EditionWorkspace,\n rowsInMapExtentCheckCondition$: BehaviorSubject<boolean>,\n selectOnlyCheckCondition$: BehaviorSubject<boolean>\n ): Action[] {\n this.zoomAuto$.next(this.zoomAuto);\n this.storageChange$$ = this.storageService.storageChange$\n .pipe(skipWhile((storageChange: StorageServiceEvent) =>\n storageChange?.key !== 'zoomAuto' || storageChange?.event === StorageServiceEventEnum.CLEARED))\n .subscribe(() => {\n this.zoomAuto$.next(this.zoomAuto);\n handleZoomAuto(workspace, this.storageService);\n });\n const actions = [\n {\n id: 'zoomAuto',\n checkbox: true,\n title: 'igo.integration.workspace.zoomAuto.title',\n tooltip: 'igo.integration.workspace.zoomAuto.tooltip',\n checkCondition: this.zoomAuto$,\n handler: () => {\n handleZoomAuto(workspace, this.storageService);\n this.storageService.set('zoomAuto', !this.storageService.get('zoomAuto') as boolean);\n }\n },\n {\n id: 'filterInMapExtent',\n checkbox: true,\n title: 'igo.integration.workspace.inMapExtent.title',\n tooltip: mapExtentStrategyActiveToolTip(workspace),\n checkCondition: rowsInMapExtentCheckCondition$,\n handler: () => rowsInMapExtentCheckCondition$.next(!rowsInMapExtentCheckCondition$.value)\n },\n {\n id: 'selectedOnly',\n checkbox: true,\n title: 'igo.integration.workspace.selected.title',\n tooltip: 'igo.integration.workspace.selected.title',\n checkCondition: selectOnlyCheckCondition$,\n handler: () => selectOnlyCheckCondition$.next(!selectOnlyCheckCondition$.value)\n },\n {\n id: 'clearselection',\n icon: 'select-off',\n title: 'igo.integration.workspace.clearSelection.title',\n tooltip: 'igo.integration.workspace.clearSelection.tooltip',\n handler: (ws: EditionWorkspace) => {\n ws.entityStore.state.updateMany(ws.entityStore.view.all(), { selected: false });\n },\n args: [workspace],\n availability: (ws: EditionWorkspace) => noElementSelected(ws)\n },\n {\n id: 'wfsDownload',\n icon: 'file-export',\n title: 'igo.integration.workspace.download.title',\n tooltip: 'igo.integration.workspace.download.tooltip',\n handler: (ws: EditionWorkspace) => {\n const filterStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\n const filterSelectionStrategy = ws.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\n const layersWithSelection = filterSelectionStrategy.active ? [ws.layer.id] : [];\n this.toolState.toolToActivateFromOptions({\n tool: 'importExport',\n options: { layers: [ws.layer.id], featureInMapExtent: filterStrategy.active, layersWithSelection } as ExportOptions\n });\n },\n args: [workspace]\n },\n {\n id: 'ogcFilter',\n icon: 'filter',\n title: 'igo.integration.workspace.ogcFilter.title',\n tooltip: 'igo.integration.workspace.ogcFilter.tooltip',\n handler: (widget: Widget, ws: EditionWorkspace) => {\n ws.activateWidget(widget, {\n map: ws.map,\n layer: ws.layer\n });\n },\n args: [this.ogcFilterWidget, workspace]\n },\n {\n id: 'maximize',\n title: this.languageService.translate.instant('igo.integration.workspace.maximize'),\n tooltip: this.languageService.translate.instant(\n 'igo.integration.workspace.maximizeTooltip'\n ),\n icon: 'resize',\n display: () => {\n return this.maximize$.pipe(map((v) => !v && !this.mediaService.isMobile()));\n },\n handler: () => {\n if (!this.mediaService.isMobile()) {\n this.maximize$.next(true);\n }\n },\n },\n {\n id: 'standardExtent',\n title: this.languageService.translate.instant(\n 'igo.integration.workspace.standardExtent'\n ),\n tooltip: this.languageService.translate.instant(\n 'igo.integration.workspace.standardExtentTooltip'\n ),\n icon: 'resize',\n display: () => {\n return this.maximize$.pipe(map((v) => v && !this.mediaService.isMobile()));\n },\n handler: () => {\n this.maximize$.next(false);\n }\n }\n ];\n return (workspace.layer.dataSource as OgcFilterableDataSource).options.ogcFilters?.enabled ?\n actions : actions.filter(action => action.id !== 'ogcFilter');\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\n\nimport { BehaviorSubject, Subscription, Observable, of } from 'rxjs';\n\nimport {\n EntityRecord,\n Workspace,\n WorkspaceStore,\n Widget,\n EntityStoreFilterCustomFuncStrategy,\n EntityStoreFilterSelectionStrategy,\n EntityState } from '@igo2/common';\nimport { WfsWorkspace, FeatureWorkspace, EditionWorkspace } from '@igo2/geo';\nimport { FeatureActionsService } from './shared/feature-actions.service';\nimport { WfsActionsService } from './shared/wfs-actions.service';\nimport { StorageService } from '@igo2/core';\nimport { EditionActionsService } from './shared/edition-actions.service';\n\n/**\n * Service that holds the state of the workspace module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class WorkspaceState implements OnDestroy {\n\n public workspacePanelExpanded: boolean = false;\n\n readonly workspaceEnabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n readonly rowsInMapExtentCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(true);\n readonly selectOnlyCheckCondition$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n readonly workspaceMaximize$: BehaviorSubject<boolean> = new BehaviorSubject(\n this.storageService.get('workspaceMaximize') as boolean\n );\n private actionMaximize$$: Subscription[] = [];\n\n private rowsInMapExtentCheckCondition$$: Subscription;\n private selectOnlyCheckCondition$$: Subscription;\n\n /** Subscription to the active workspace */\n private activeWorkspace$$: Subscription;\n\n /** Subscription to the active workspace widget */\n private activeWorkspaceWidget$$: Subscription;\n\n /** Active widget observable. Only one may be active for all available workspaces */\n readonly activeWorkspaceWidget$: BehaviorSubject<Widget> = new BehaviorSubject<Widget>(undefined);\n\n /**\n * Observable of the active workspace\n */\n public workspace$ = new BehaviorSubject<Workspace>(undefined);\n\n /**\n * Store that holds all the available workspaces\n */\n get store(): WorkspaceStore { return this._store; }\n private _store: WorkspaceStore;\n\n get workspaceSelection() {\n if (this.workspace$.value) {\n return this.workspace$.value?.entityStore.stateView.manyBy((r) => r.state.selected === true);\n } else {\n return [];\n }\n }\n\n get workspaceSelection$(): Observable<EntityRecord<object, EntityState>[]> {\n if (this.workspace$.value) {\n return this.workspace$.value?.entityStore?.stateView.manyBy$((r) => r.state.selected === true);\n } else {\n return of([]);\n }\n }\n\n constructor(\n private featureActionsService: FeatureActionsService,\n private wfsActionsService: WfsActionsService,\n private editionActionsService: EditionActionsService,\n private storageService: StorageService\n ) {\n this.initWorkspaces();\n }\n\n /**\n * Initialize the workspace store. Each time a workspace is activated,\n * subscribe to it's active widget. Tracking the active widget is useful\n * to make sure only one widget is active at a time.\n */\n private initWorkspaces() {\n this._store = new WorkspaceStore([]);\n this._store.stateView\n .firstBy$((record: EntityRecord<Workspace>) => record.state.active === true)\n .subscribe((record: EntityRecord<Workspace>) => {\n const workspace = record ? record.entity : undefined;\n this.workspace$.next(workspace);\n });\n\n this._store.stateView.all$()\n .subscribe((workspaces: EntityRecord<Workspace>[]) => {\n workspaces.map((wks: EntityRecord<Workspace>) => {\n if (wks.entity.actionStore.empty) {\n if (wks.entity instanceof WfsWorkspace) {\n this.wfsActionsService.loadActions(\n wks.entity,\n this.rowsInMapExtentCheckCondition$,\n this.selectOnlyCheckCondition$);\n } else if (wks.entity instanceof FeatureWorkspace) {\n this.featureActionsService.loadActions(\n wks.entity,\n this.rowsInMapExtentCheckCondition$,\n this.selectOnlyCheckCondition$);\n } else if (wks.entity instanceof EditionWorkspace) {\n this.editionActionsService.loadActions(\n wks.entity,\n this.rowsInMapExtentCheckCondition$,\n this.selectOnlyCheckCondition$);\n }\n }\n\n });\n });\n\n this.actionMaximize$$.push(this.featureActionsService.maximize$.subscribe(maximized => {\n this.setWorkspaceIsMaximized(maximized);\n }));\n\n this.actionMaximize$$.push(this.wfsActionsService.maximize$.subscribe(maximized => {\n this.setWorkspaceIsMaximized(maximized);\n }));\n\n this.actionMaximize$$.push(this.editionActionsService.maximize$.subscribe(maximized => {\n this.setWorkspaceIsMaximized(maximized);\n }));\n\n this.activeWorkspace$$ = this.workspace$\n .subscribe((workspace: Workspace) => {\n if (this.activeWorkspaceWidget$$ !== undefined) {\n this.activeWorkspaceWidget$$.unsubscribe();\n this.activeWorkspaceWidget$$ = undefined;\n }\n\n if (workspace !== undefined) {\n this.activeWorkspaceWidget$$ = workspace.widget$\n .subscribe((widget: Widget) => this.activeWorkspaceWidget$.next(widget));\n }\n });\n\n this.rowsInMapExtentCheckCondition$$ = this.rowsInMapExtentCheckCondition$.subscribe((rowsInMapExtent) => {\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\n if (!wks.entity.actionStore.empty) {\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\n if (filterStrategy) {\n if (rowsInMapExtent) {\n filterStrategy.activate();\n } else {\n filterStrategy.deactivate();\n }\n }\n }\n });\n });\n\n this.selectOnlyCheckCondition$$ = this.selectOnlyCheckCondition$.subscribe((selectOnly) => {\n this._store.stateView.all().map((wks: EntityRecord<Workspace>) => {\n if (!wks.entity.actionStore.empty) {\n const filterStrategy = wks.entity.entityStore.getStrategyOfType(EntityStoreFilterSelectionStrategy);\n if (filterStrategy) {\n if (selectOnly) {\n filterStrategy.activate();\n } else {\n filterStrategy.deactivate();\n }\n }\n }\n });\n });\n }\n\n private setWorkspaceIsMaximized(maximized: boolean) {\n this.storageService.set('workspaceMaximize', maximized);\n this.workspaceMaximize$.next(maximized);\n }\n\n public setActiveWorkspaceById(id: string) {\n const wksFromId = this.store\n .all()\n .find(workspace => workspace.id === id);\n if (wksFromId) {\n this.store.activateWorkspace(wksFromId);\n }\n }\n\n public setActiveWorkspaceByTitle(title: string) {\n const wksFromTitle = this.store\n .all()\n .find(workspace => workspace.title === title);\n if (wksFromTitle) {\n this.store.activateWorkspace(wksFromTitle);\n }\n }\n\n /**\n * Teardown all the workspaces\n * @internal\n */\n ngOnDestroy() {\n this.teardownWorkspaces();\n this.actionMaximize$$.map(a => a.unsubscribe());\n if (this.rowsInMapExtentCheckCondition$$) {\n this.selectOnlyCheckCondition$$.unsubscribe();\n }\n if (this.selectOnlyCheckCondition$$) {\n this.selectOnlyCheckCondition$$.unsubscribe();\n }\n }\n\n /**\n * Teardown the workspace store and any subscribers\n */\n private teardownWorkspaces() {\n this.store.clear();\n if (this.activeWorkspaceWidget$$ !== undefined) {\n this.activeWorkspaceWidget$$.unsubscribe();\n }\n if (this.activeWorkspace$$ !== undefined) {\n this.activeWorkspace$$.unsubscribe();\n }\n }\n\n}\n","<button\n *ngIf=\"hasWorkspace$ | async\"\n mat-icon-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [matTooltip]=\"'igo.integration.workspace.toggleWorkspace' | translate\"\n [color]=\"color\"\n (click)=\"activateWorkspace()\"\n >\n <mat-icon svgIcon=\"table\"></mat-icon>\n</button>\n","import { Component, Input, ChangeDetectionStrategy, OnInit, OnDestroy } from '@angular/core';\nimport type { Layer } from '@igo2/geo';\nimport { WorkspaceState } from '../workspace.state';\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\n\n@Component({\n selector: 'igo-workspace-button',\n templateUrl: './workspace-button.component.html',\n styleUrls: ['./workspace-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class WorkspaceButtonComponent implements OnInit, OnDestroy {\n\n public hasWorkspace$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n private hasWorkspace$$: Subscription;\n\n private _layer: Layer;\n private layer$: BehaviorSubject<Layer> = new BehaviorSubject(undefined);\n @Input()\n set layer(value: Layer) {\n this._layer = value;\n this.layer$.next(this._layer);\n }\n\n get layer(): Layer {\n return this._layer;\n }\n\n @Input() color: string = 'primary';\n\n constructor(private workspaceState: WorkspaceState) { }\n\n ngOnInit(): void {\n this.hasWorkspace$$ = combineLatest([this.workspaceState.workspaceEnabled$, this.layer$])\n .subscribe(bunch => this.hasWorkspace$.next(bunch[0] && bunch[1]?.options.workspace?.enabled)\n );\n }\n\n ngOnDestroy(): void {\n this.hasWorkspace$$.unsubscribe();\n }\n\n activateWorkspace() {\n if (\n this.workspaceState.workspace$.value &&\n (this.workspaceState.workspace$.value as any).layer.id === this.layer.id &&\n this.workspaceState.workspacePanelExpanded) {\n this.workspaceState.workspacePanelExpanded = false;\n } else {\n this.workspaceState.workspacePanelExpanded = true;\n this.workspaceState.setActiveWorkspaceById(this.layer.id);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { WorkspaceButtonComponent } from './workspace-button/workspace-button.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconModule } from '@angular/material/icon';\nimport { IgoLanguageModule } from '@igo2/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatButtonModule,\n MatTooltipModule,\n IgoLanguageModule\n ],\n declarations: [WorkspaceButtonComponent],\n exports: [WorkspaceButtonComponent]\n})\nexport class IgoAppWorkspaceModule {}\n","<mat-tab-group *ngIf=\"importExportShowBothType\" >\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportData' | translate\">\n <igo-import-export \n [contextUri]=\"(contextState.context$ | async).uri\"\n [map]=\"map\"\n [selectFirstProj]=\"selectFirstProj\"\n [projectionsLimitations]=\"projectionsLimitations\"\n [store]=\"workspaceStore\"\n [selectedMode]=\"importExportState.selectedMode$ | async\"\n (selectMode)=\"modeChanged($event)\"\n [exportOptions$]=\"importExportState.exportOptions$\"\n (exportOptionsChange)=\"exportOptionsChange($event)\">\n </igo-import-export>\n </mat-tab>\n <mat-tab [label]=\"'igo.integration.importExportTool.importExportContext' | translate\">\n <igo-context-import-export [map]=\"map\"></igo-context-import-export>\n </mat-tab>\n</mat-tab-group>\n\n<igo-import-export \n *ngIf=\"!importExportShowBothType && importExportType === 'layer'\"\n [contextUri]=\"(contextState.context$ | async).uri\"\n [map]=\"map\"\n [store]=\"workspaceStore\"\n [selectedMode]=\"importExportState.selectedMode$ | async\"\n (selectMode)=\"modeChanged($event)\"\n [exportOptions$]=\"importExportState.exportOptions$\"\n (exportOptionsChange)=\"exportOptionsChange($event)\">\n</igo-import-export>\n\n<igo-context-import-export \n *ngIf=\"!importExportShowBothType && importExportType === 'context'\"\n [map]=\"map\">\n</igo-context-import-export>","import { Component, ChangeDetectionStrategy, OnInit, Input } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport type { WorkspaceStore } from '@igo2/common';\nimport { IgoMap, ExportOptions, ProjectionsLimitationsOptions } from '@igo2/geo';\n\nimport { MapState } from '../../map/map.state';\nimport { ImportExportMode, ImportExportState, ImportExportType } from '../import-export.state';\nimport { WorkspaceState } from '../../workspace/workspace.state';\nimport { ContextState } from '../../context/context.state';\n\n@ToolComponent({\n name: 'importExport',\n title: 'igo.integration.tools.importExport',\n icon: 'file-move'\n})\n@Component({\n selector: 'igo-import-export-tool',\n templateUrl: './import-export-tool.component.html',\n styleUrls: ['./import-export-tool.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ImportExportToolComponent implements OnInit {\n\n @Input() projectionsLimitations: ProjectionsLimitationsOptions;\n\n @Input() selectFirstProj: boolean = false;\n\n /**\n * Map to measure on\n * @internal\n */\n get map(): IgoMap { return this.mapState.map; }\n\n get workspaceStore(): WorkspaceStore {\n return this.workspaceState.store;\n }\n\n @Input() importExportType: ImportExportType = ImportExportType.layer;\n @Input() importExportShowBothType: boolean = true;\n\n constructor(\n private mapState: MapState,\n public importExportState: ImportExportState,\n private workspaceState: WorkspaceState,\n public contextState: ContextState\n ) {}\n\n ngOnInit(): void {\n this.selectType();\n this.selectMode();\n }\n\n private selectType() {\n if (this.importExportType) {\n this.importExportState.importExportType$.next(this.importExportType);\n }\n const userSelectedType = this.importExportState.importExportType$.value;\n if (userSelectedType !== undefined) {\n this.importExportState.setImportExportType(userSelectedType);\n } else {\n this.importExportState.setImportExportType(ImportExportType.layer);\n }\n }\n\n private selectMode() {\n const userSelectedMode = this.importExportState.selectedMode$.value;\n if (userSelectedMode !== undefined) {\n this.importExportState.setMode(userSelectedMode);\n } else {\n this.importExportState.setMode(ImportExportMode.import);\n\n }\n }\n\n public modeChanged(mode: ImportExportMode) {\n this.importExportState.setMode(mode);\n }\n\n public exportOptionsChange(exportOptions: ExportOptions) {\n this.importExportState.setsExportOptions(exportOptions);\n }\n\n importExportTypeChange(event) {\n this.importExportType = event.value;\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n CUSTOM_ELEMENTS_SCHEMA\n} from '@angular/core';\n\nimport { IgoImportExportModule, IgoStyleModule } from '@igo2/geo';\nimport { ImportExportToolComponent } from './import-export-tool/import-export-tool.component';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatTabsModule } from '@angular/material/tabs';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { IgoContextImportExportModule } from '@igo2/context';\n\n@NgModule({\n imports: [\n IgoImportExportModule,\n IgoContextImportExportModule,\n CommonModule,\n IgoLanguageModule,\n MatButtonToggleModule,\n MatTabsModule,\n IgoStyleModule\n ],\n declarations: [ImportExportToolComponent],\n exports: [ImportExportToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppImportExportModule {\n static forRoot(): ModuleWithProviders<IgoAppImportExportModule> {\n return {\n ngModule: IgoAppImportExportModule,\n providers: []\n };\n }\n}\n","<igo-layer-list class=\"mapDetailsList\" *ngIf=\"(layers$ | async).length; else empty\"\n [map]=\"map\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n floatLabel=\"never\"\n [queryBadge]=\"queryBadge\">\n\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n\n</igo-layer-list>\n\n<ng-template #empty>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{'igo.integration.mapTool.empty' | translate}}</p>\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\n {{'igo.integration.mapTool.customize' | translate}}</p>\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\n {{'igo.integration.mapTool.search-tool' | translate}}\n </h4>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\n {{'igo.integration.mapTool.catalog-tool' | translate}}\n </h4>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\n {{'igo.integration.mapTool.context-tool' | translate}}\n </h4>\n </mat-list-item>\n </mat-list>\n</ng-template>\n","import { Component, Input, OnInit, ChangeDetectorRef } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { ToolComponent } from '@igo2/common';\nimport {\n LayerListControlsEnum,\n Layer,\n IgoMap,\n LayerListControlsOptions,\n SearchSourceService,\n sourceCanSearch,\n ExportOptions\n} from '@igo2/geo';\n\nimport { ToolState } from './../../tool/tool.state';\nimport { MapState } from './../map.state';\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\n\n@ToolComponent({\n name: 'mapDetails',\n title: 'igo.integration.tools.map',\n icon: 'map'\n})\n@Component({\n selector: 'igo-map-details-tool',\n templateUrl: './map-details-tool.component.html',\n styleUrls: ['./map-details-tool.component.scss']\n})\nexport class MapDetailsToolComponent implements OnInit {\n public delayedShowEmptyMapContent: boolean = false;\n\n @Input() toggleLegendOnVisibilityChange: boolean = false;\n\n @Input() expandLegendOfVisibleLayers: boolean = false;\n\n @Input() updateLegendOnResolutionChange: boolean = false;\n\n @Input() ogcButton: boolean = true;\n\n @Input() timeButton: boolean = true;\n\n @Input() layerListControls: LayerListControlsOptions = {};\n\n @Input() queryBadge: boolean = false;\n\n @Input() layerAdditionAllowed: boolean = true;\n\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n get layers$(): Observable<Layer[]> {\n return this.map.layers$.pipe(\n map((layers) =>\n layers.filter(\n (layer) =>\n layer.showInLayerList !== false &&\n (!this.excludeBaseLayers || !layer.baseLayer)\n )\n )\n );\n }\n\n get excludeBaseLayers(): boolean {\n return this.layerListControls.excludeBaseLayers || false;\n }\n\n get layerFilterAndSortOptions(): any {\n const filterSortOptions = Object.assign(\n {\n showToolbar: LayerListControlsEnum.default\n },\n this.layerListControls\n );\n\n switch (this.layerListControls.showToolbar) {\n case LayerListControlsEnum.always:\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\n break;\n case LayerListControlsEnum.never:\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\n break;\n default:\n break;\n }\n return filterSortOptions;\n }\n\n get searchToolInToolbar(): boolean {\n return (\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\n this.searchSourceService\n .getSources()\n .filter(sourceCanSearch)\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\n );\n }\n\n get catalogToolInToolbar(): boolean {\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\n }\n\n get contextToolInToolbar(): boolean {\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\n }\n\n constructor(\n private mapState: MapState,\n private toolState: ToolState,\n private searchSourceService: SearchSourceService,\n private cdRef: ChangeDetectorRef,\n private importExportState: ImportExportState\n ) {}\n\n ngOnInit(): void {\n // prevent message to be shown too quickly. Waiting for layers\n setTimeout(() => {\n this.delayedShowEmptyMapContent = true;\n this.cdRef.detectChanges();\n }, 250);\n }\n\n searchEmit() {\n this.toolState.toolbox.activateTool('searchResults');\n }\n\n catalogEmit() {\n this.toolState.toolbox.activateTool('catalog');\n }\n\n contextEmit() {\n this.toolState.toolbox.activateTool('contextManager');\n }\n\n activateExport(layer: Layer) {\n let id = layer.id;\n if (layer.options.workspace?.workspaceId) {\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\n }\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\n this.importExportState.setMode(ImportExportMode.export);\n this.toolState.toolbox.activateTool('importExport');\n }\n}\n","<mat-tab-group>\n\n <mat-tab [label]=\"'igo.integration.tools.map' | translate\">\n <igo-layer-list\n [map]=\"map\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [floatLabel]=\"false\"\n [queryBadge]=\"queryBadge\">\n\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <!-- <igo-download-button [layer]=\"layer\"></igo-download-button> -->\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n <igo-export-button [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\n <igo-ogc-filter-button [header]=\"ogcButton\" [layer]=\"layer\"></igo-ogc-filter-button>\n <igo-time-filter-button [header]=\"timeButton\" [layer]=\"layer\"></igo-time-filter-button>\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n </ng-template>\n\n </igo-layer-list>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.contexts' | translate\">\n <igo-context-list igoContextListBinding></igo-context-list>\n </mat-tab>\n\n</mat-tab-group>\n","import { Component, ChangeDetectionStrategy, Input } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport {\n LayerListControlsEnum,\n LayerListControlsOptions,\n IgoMap,\n ExportOptions,\n Layer\n} from '@igo2/geo';\nimport { MapState } from './../map.state';\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\nimport { ToolState } from '../../tool/tool.state';\n\n/**\n * Tool to browse a map's layers or to choose a different map\n */\n@ToolComponent({\n name: 'map',\n title: 'igo.integration.tools.map',\n icon: 'map'\n})\n@Component({\n selector: 'igo-map-tool',\n templateUrl: './map-tool.component.html',\n styleUrls: ['./map-tool.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MapToolComponent {\n @Input() toggleLegendOnVisibilityChange: boolean = false;\n\n @Input() expandLegendOfVisibleLayers: boolean = false;\n\n @Input() updateLegendOnResolutionChange: boolean = false;\n\n @Input() ogcButton: boolean = true;\n\n @Input() timeButton: boolean = true;\n\n @Input() layerListControls: LayerListControlsOptions = {};\n\n @Input() queryBadge: boolean = false;\n\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n get excludeBaseLayers(): boolean {\n return this.layerListControls.excludeBaseLayers || false;\n }\n\n get layerFilterAndSortOptions(): any {\n const filterSortOptions = Object.assign(\n {\n showToolbar: LayerListControlsEnum.default\n },\n this.layerListControls\n );\n\n switch (this.layerListControls.showToolbar) {\n case LayerListControlsEnum.always:\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\n break;\n case LayerListControlsEnum.never:\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\n break;\n default:\n break;\n }\n return filterSortOptions;\n }\n\n constructor(\n private mapState: MapState,\n private toolState: ToolState,\n private importExportState: ImportExportState\n ) {}\n\n activateExport(layer: Layer) {\n let id = layer.id;\n if (layer.options.workspace?.workspaceId) {\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\n }\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\n this.importExportState.setMode(ImportExportMode.export);\n this.toolState.toolbox.activateTool('importExport');\n }\n}\n","<mat-tab-group\n #tabGroup\n [selectedIndex]=\"layerListToolState.selectedTab$ | async\"\n (selectedTabChange)=\"tabChanged($event)\">\n\n <mat-tab [label]=\"'igo.integration.tools.layers' | translate\">\n <igo-layer-list *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"\n igoLayerListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [layerFilterAndSortOptions]=\"layerFilterAndSortOptions\"\n [expandLegendOfVisibleLayers]=\"expandLegendOfVisibleLayers\"\n [toggleLegendOnVisibilityChange]=\"toggleLegendOnVisibilityChange\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [floatLabel]=\"false\"\n [queryBadge]=\"queryBadge\"\n [map]=\"map\"\n (appliedFilterAndSort)=\"onLayerListChange($event)\">\n\n <ng-template #igoLayerItemToolbar let-layer=\"layer\">\n <igo-style-modal-layer-button *ngIf=\"isStyleEditButton(layer)\" [layer]=\"layer\"></igo-style-modal-layer-button>\n <igo-metadata-button [layer]=\"layer\"></igo-metadata-button>\n <igo-track-feature-button [trackFeature]=\"true\" [layer]=\"layer\"></igo-track-feature-button>\n <igo-time-filter-button *ngIf=\"isTimeFilterButton(layer)\" [header]=\"timeButton\" [layer]=\"layer\"\n (click)=\"activateTimeFilter()\"></igo-time-filter-button>\n <igo-ogc-filter-button *ngIf=\"isOGCFilterButton(layer)\" [header]=\"ogcButton\" [layer]=\"layer\"\n (click)=\"activateOgcFilter()\"></igo-ogc-filter-button>\n <igo-export-button *ngIf=\"isExportButton(layer)\" [layer]=\"layer\" (click)=\"activateExport(layer)\"></igo-export-button>\n <igo-workspace-button [layer]=\"layer\"></igo-workspace-button>\n </ng-template>\n </igo-layer-list>\n </mat-tab>\n\n <mat-tab [label]=\"'igo.integration.tools.legend' | translate\">\n <igo-layer-legend-list *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\n (allLegendsShown)=\"onShowAllLegends($event)\"\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\">\n </igo-layer-legend-list>\n <ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\n\n <p class=\"map-empty mat-typography\"\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\n </p>\n </mat-tab>\n\n <ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{'igo.integration.mapTool.empty' | translate}}</p>\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\"\n class=\"map-empty mat-typography\">\n {{'igo.integration.mapTool.customize' | translate}}</p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\n preserveAspectRatio='xMidYMid meet' focusable='false'>\n <path\n d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'>\n </path>\n </svg></mat-icon>\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\n {{'igo.integration.mapTool.search-tool' | translate}}\n </h4>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\n preserveAspectRatio='xMidYMid meet' focusable='false'>\n <path\n d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'>\n </path>\n </svg></mat-icon>\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\n {{'igo.integration.mapTool.catalog-tool' | translate}}\n </h4>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%'\n preserveAspectRatio='xMidYMid meet' focusable='false'>\n <path\n d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'>\n </path>\n </svg></mat-icon>\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\n {{'igo.integration.mapTool.context-tool' | translate}}\n </h4>\n </mat-list-item>\n </mat-list>\n </ng-template>\n</mat-tab-group>\n","import {\n Component,\n ChangeDetectionStrategy,\n Input,\n OnInit,\n ViewChild,\n OnDestroy\n} from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport {\n LayerListControlsEnum,\n LayerListControlsOptions,\n IgoMap,\n SearchSourceService,\n sourceCanSearch,\n Layer,\n ExportOptions,\n VectorLayer\n} from '@igo2/geo';\n\nimport { LayerListToolState } from '../layer-list-tool.state';\nimport { MatTabChangeEvent } from '@angular/material/tabs';\nimport { ToolState } from '../../tool/tool.state';\nimport { MapState } from '../map.state';\nimport { BehaviorSubject, Observable, Subscription, combineLatest } from 'rxjs';\nimport { map, debounceTime } from 'rxjs/operators';\nimport { ImportExportMode, ImportExportState } from '../../import-export/import-export.state';\n/**\n * Tool to browse a map's layers or to choose a different map\n */\n@ToolComponent({\n name: 'mapTools',\n title: 'igo.integration.tools.map',\n icon: 'map'\n})\n@Component({\n selector: 'igo-map-tools',\n templateUrl: './map-tools.component.html',\n styleUrls: ['./map-tools.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MapToolsComponent implements OnInit, OnDestroy {\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n private resolution$$: Subscription;\n private visibleOrInRangeLayers$$: Subscription;\n public delayedShowEmptyMapContent: boolean = false;\n\n @Input() allowShowAllLegends: boolean = false;\n\n @Input() showAllLegendsValue: boolean = false;\n\n @Input() toggleLegendOnVisibilityChange: boolean = false;\n\n @Input() expandLegendOfVisibleLayers: boolean = false;\n\n @Input() updateLegendOnResolutionChange: boolean = false;\n\n @Input() selectedTabAtOpening: string;\n\n @Input() ogcButton: boolean = true;\n\n @Input() timeButton: boolean = true;\n\n @Input() layerAdditionAllowed: boolean = true;\n\n @Input()\n get layerListControls(): LayerListControlsOptions {\n return this._layerListControls;\n }\n set layerListControls(value: LayerListControlsOptions) {\n const stateOptions = this.layerListToolState.getLayerListControls();\n const stateKeyword = stateOptions.keyword;\n const stateOnlyVisible = stateOptions.onlyVisible;\n const stateSortAlpha = stateOptions.sortAlpha;\n\n value.keyword = stateKeyword !== '' ? stateKeyword : value.keyword;\n value.onlyVisible =\n stateOnlyVisible !== undefined ? stateOnlyVisible : value.onlyVisible;\n value.sortAlpha =\n stateSortAlpha !== undefined ? stateSortAlpha : value.sortAlpha;\n\n value.onlyVisible =\n value.onlyVisible === undefined ? false : value.onlyVisible;\n value.sortAlpha = value.sortAlpha === undefined ? false : value.sortAlpha;\n\n this._layerListControls = value;\n }\n private _layerListControls = {};\n\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n @Input() queryBadge: boolean = false;\n\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\n return this.layers$.pipe(\n map((layers) =>\n layers.filter(\n (layer) => layer.visible$.value && layer.isInResolutionsRange$.value\n )\n )\n );\n }\n\n get visibleLayers$(): Observable<Layer[]> {\n return this.layers$.pipe(\n map((layers) => layers.filter((layer) => layer.visible$.value))\n );\n }\n\n get excludeBaseLayers(): boolean {\n return this.layerListControls.excludeBaseLayers || false;\n }\n\n get layerFilterAndSortOptions(): LayerListControlsOptions {\n const filterSortOptions = Object.assign(\n {\n showToolbar: LayerListControlsEnum.default\n },\n this.layerListControls\n );\n\n switch (this.layerListControls.showToolbar) {\n case LayerListControlsEnum.always:\n filterSortOptions.showToolbar = LayerListControlsEnum.always;\n break;\n case LayerListControlsEnum.never:\n filterSortOptions.showToolbar = LayerListControlsEnum.never;\n break;\n default:\n break;\n }\n return filterSortOptions;\n }\n\n @ViewChild('tabGroup', { static: true }) tabGroup;\n\n get searchToolInToolbar(): boolean {\n return (\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\n this.searchSourceService\n .getSources()\n .filter(sourceCanSearch)\n .filter((s) => s.available && s.getType() === 'Layer').length > 0\n );\n }\n\n get catalogToolInToolbar(): boolean {\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\n }\n\n get contextToolInToolbar(): boolean {\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\n }\n\n constructor(\n public layerListToolState: LayerListToolState,\n private toolState: ToolState,\n public mapState: MapState,\n private searchSourceService: SearchSourceService,\n private importExportState: ImportExportState\n ) {}\n\n ngOnInit(): void {\n this.selectedTab();\n this.resolution$$ = combineLatest([\n this.map.layers$,\n this.map.viewController.resolution$\n ])\n .pipe(debounceTime(10))\n .subscribe((bunch: [Layer[], number]) => {\n this.layers$.next(\n bunch[0].filter(\n (layer) =>\n layer.showInLayerList !== false &&\n (!this.excludeBaseLayers || !layer.baseLayer)\n )\n );\n });\n\n if (this.allowShowAllLegends) {\n this.mapState.showAllLegendsValue =\n this.mapState.showAllLegendsValue !== undefined\n ? this.mapState.showAllLegendsValue\n : this.showAllLegendsValue || false;\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\n } else {\n this.showAllLegendsValue$.next(false);\n }\n\n // prevent message to be shown too quickly. Waiting for layers\n setTimeout(() => (this.delayedShowEmptyMapContent = true), 250);\n }\n\n ngOnDestroy(): void {\n this.resolution$$.unsubscribe();\n if (this.visibleOrInRangeLayers$$) {\n this.visibleOrInRangeLayers$$.unsubscribe();\n }\n }\n\n onShowAllLegends(event) {\n this.mapState.showAllLegendsValue = event;\n this.showAllLegendsValue$.next(event);\n }\n\n private selectedTab() {\n const userSelectedTab = this.layerListToolState.selectedTab$.value;\n if (userSelectedTab !== undefined) {\n this.layerListToolState.setSelectedTab(userSelectedTab);\n } else {\n if (this.selectedTabAtOpening === 'legend') {\n this.layerListToolState.setSelectedTab(1);\n } else {\n this.layerListToolState.setSelectedTab(0);\n }\n }\n }\n\n public tabChanged(tab: MatTabChangeEvent) {\n this.layerListToolState.setSelectedTab(tab.index);\n this.layers$.next(\n this.map.layers.filter(\n (layer) =>\n layer.showInLayerList !== false &&\n (!this.excludeBaseLayers || !layer.baseLayer)\n )\n );\n }\n\n onLayerListChange(appliedFilters: LayerListControlsOptions) {\n this.layerListToolState.setKeyword(appliedFilters.keyword);\n this.layerListToolState.setSortAlpha(appliedFilters.sortAlpha);\n this.layerListToolState.setOnlyVisible(appliedFilters.onlyVisible);\n }\n\n showAllLegend() {\n if (this.layers$.getValue().length === 0) {\n return false;\n } else if (\n this.layers$.getValue().length !== 0 &&\n this.allowShowAllLegends === false\n ) {\n let visibleOrInRangeLayers;\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe((value) => {\n value.length === 0\n ? (visibleOrInRangeLayers = false)\n : (visibleOrInRangeLayers = true);\n });\n\n if (visibleOrInRangeLayers === false) {\n return false;\n }\n }\n return true;\n }\n\n activateExport(layer: Layer) {\n let id = layer.id;\n if (layer.options.workspace?.workspaceId) {\n id = layer.options.workspace.workspaceId !== layer.id ? layer.options.workspace.workspaceId : layer.id;\n }\n this.importExportState.setsExportOptions({ layers: [id] } as ExportOptions);\n this.importExportState.setMode(ImportExportMode.export);\n this.toolState.toolbox.activateTool('importExport');\n }\n\n activateTimeFilter() {\n this.toolState.toolbox.activateTool('activeTimeFilter');\n }\n\n activateOgcFilter() {\n this.toolState.toolbox.activateTool('activeOgcFilter');\n }\n\n searchEmit() {\n this.toolState.toolbox.activateTool('searchResults');\n }\n\n catalogEmit() {\n this.toolState.toolbox.activateTool('catalog');\n }\n\n contextEmit() {\n this.toolState.toolbox.activateTool('contextManager');\n }\n\n isTimeFilterButton(layer): boolean {\n const options = layer.dataSource.options;\n return this.timeButton && options.timeFilterable && options.timeFilter;\n }\n\n isOGCFilterButton(layer): boolean {\n const options = layer.dataSource.options;\n return this.ogcButton && options.ogcFilters && options.ogcFilters.enabled &&\n (options.ogcFilters.pushButtons || options.ogcFilters.checkboxes || options.ogcFilters.radioButtons\n || options.ogcFilters.select || options.ogcFilters.autocomplete || options.ogcFilters.editable);\n }\n\n isExportButton(layer: Layer): boolean {\n if (\n (layer instanceof VectorLayer && layer.exportable === true) ||\n (layer.dataSource.options.download && layer.dataSource.options.download.url) ||\n (layer.options.workspace?.enabled && layer.options.workspace?.workspaceId !== layer.id))\n {\n return true;\n }\n return false;\n }\n\n isStyleEditButton(layer: Layer): boolean {\n if (layer instanceof VectorLayer) {\n if ((layer as VectorLayer).options?.igoStyle?.editable) {\n return true;\n }\n\n }\n return false;\n }\n}\n","<igo-layer-legend-list *ngIf=\"showAllLegend()\"\n igoLayerLegendListBinding\n [excludeBaseLayers]=\"excludeBaseLayers\"\n [allowShowAllLegends]=\"allowShowAllLegends\"\n [updateLegendOnResolutionChange]=\"updateLegendOnResolutionChange\"\n [showAllLegendsValue]=\"(showAllLegendsValue$ | async)\"\n (allLegendsShown)=\"onShowAllLegends($event)\">\n</igo-layer-legend-list>\n<ng-template *ngIf=\"(layers$ | async).length !== 0; else emptyLayers\"></ng-template>\n\n<p class=\"map-empty mat-typography\"\n *ngIf=\"!allowShowAllLegends && (layers$ | async).length !== 0 && (visibleOrInRangeLayers$ | async).length === 0\">\n {{ ((visibleLayers$ | async).length) ? ('igo.integration.mapTool.noLayersInRange' | translate) : ('igo.integration.mapTool.noLayersVisible' | translate) }}\n</p>\n\n\n<ng-template #emptyLayers>\n <mat-list *ngIf=\"delayedShowEmptyMapContent\">\n <p class=\"map-empty mat-typography\">\n {{'igo.integration.mapTool.empty' | translate}}</p>\n <p *ngIf=\"layerAdditionAllowed && (searchToolInToolbar || catalogToolInToolbar || contextToolInToolbar)\" class=\"map-empty mat-typography\">\n {{'igo.integration.mapTool.customize' | translate}}</p>\n\n <mat-list-item *ngIf=\"layerAdditionAllowed && searchToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M9.5,3A6.5,6.5 0 0,1 16,9.5C16,11.11 15.41,12.59 14.44,13.73L14.71,14H15.5L20.5,19L19,20.5L14,15.5V14.71L13.73,14.44C12.59,15.41 11.11,16 9.5,16A6.5,6.5 0 0,1 3,9.5A6.5,6.5 0 0,1 9.5,3M9.5,5C7,5 5,7 5,9.5C5,12 7,14 9.5,14C12,14 14,12 14,9.5C14,7 12,5 9.5,5Z'> </path> </svg></mat-icon>\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\n {{'igo.integration.mapTool.search-tool' | translate}}\n </h4>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && catalogToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M17,14H19V17H22V19H19V22H17V19H14V17H17V14M11,16L2,9L11,2L20,9L11,16M11,18.54L12,17.75V18C12,18.71 12.12,19.39 12.35,20L11,21.07L2,14.07L3.62,12.81L11,18.54Z'></path> </svg></mat-icon>\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\n {{'igo.integration.mapTool.catalog-tool' | translate}}\n </h4>\n </mat-list-item>\n <mat-list-item *ngIf=\"layerAdditionAllowed && contextToolInToolbar\">\n <mat-icon mat-list-icon> <svg viewBox='0 0 24 24' fit='' height='100%' width='100%' preserveAspectRatio='xMidYMid meet' focusable='false'> <path d='M12,17.27L18.18,21L16.54,13.97L22,9.24L14.81,8.62L12,2L9.19,8.62L2,9.24L7.45,13.97L5.82,21L12,17.27Z'></path> </svg></mat-icon>\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\n {{'igo.integration.mapTool.context-tool' | translate}}\n </h4>\n </mat-list-item>\n </mat-list>\n</ng-template>\n","import {\n Component,\n Input,\n OnInit,\n OnDestroy,\n ChangeDetectorRef\n} from '@angular/core';\nimport { Observable, Subscription, BehaviorSubject, ReplaySubject, combineLatest } from 'rxjs';\nimport { map, debounceTime } from 'rxjs/operators';\n\nimport { ToolComponent } from '@igo2/common';\nimport {\n Layer,\n IgoMap,\n LayerListControlsOptions,\n SearchSourceService,\n sourceCanSearch\n} from '@igo2/geo';\n\nimport { ToolState } from './../../tool/tool.state';\nimport { MapState } from './../map.state';\n\n@ToolComponent({\n name: 'mapLegend',\n title: 'igo.integration.tools.legend',\n icon: 'format-list-bulleted-type'\n})\n@Component({\n selector: 'igo-map-legend-tool',\n templateUrl: './map-legend-tool.component.html',\n styleUrls: ['./map-legend-tool.component.scss']\n})\nexport class MapLegendToolComponent implements OnInit, OnDestroy {\n public delayedShowEmptyMapContent: boolean = false;\n\n layers$: BehaviorSubject<Layer[]> = new BehaviorSubject([]);\n showAllLegendsValue$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n change$ = new ReplaySubject<void>(1);\n\n private resolution$$: Subscription;\n private visibleOrInRangeLayers$$: Subscription;\n\n @Input() updateLegendOnResolutionChange: boolean = false;\n\n @Input() layerAdditionAllowed: boolean = true;\n\n @Input() allowShowAllLegends: boolean = false;\n\n @Input() showAllLegendsValue: boolean = false;\n\n @Input() layerListControls: LayerListControlsOptions = {};\n\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n get visibleOrInRangeLayers$(): Observable<Layer[]> {\n return this.layers$.pipe(\n map(layers =>\n layers.filter(\n layer => layer.visible$.value && layer.isInResolutionsRange$.value\n )\n )\n );\n }\n\n get visibleLayers$(): Observable<Layer[]> {\n return this.layers$.pipe(\n map(layers => layers.filter(layer => layer.visible$.value))\n );\n }\n\n get excludeBaseLayers(): boolean {\n return this.layerListControls.excludeBaseLayers || false;\n }\n\n get searchToolInToolbar(): boolean {\n return (\n this.toolState.toolbox.getToolbar().indexOf('searchResults') !== -1 &&\n this.searchSourceService\n .getSources()\n .filter(sourceCanSearch)\n .filter(s => s.available && s.getType() === 'Layer').length > 0\n );\n }\n\n get catalogToolInToolbar(): boolean {\n return this.toolState.toolbox.getToolbar().indexOf('catalog') !== -1;\n }\n\n get contextToolInToolbar(): boolean {\n return this.toolState.toolbox.getToolbar().indexOf('contextManager') !== -1;\n }\n constructor(\n private mapState: MapState,\n private toolState: ToolState,\n private searchSourceService: SearchSourceService,\n private cdRef: ChangeDetectorRef\n ) {}\n\n ngOnInit(): void {\n this.resolution$$ = combineLatest([\n this.map.layers$,\n this.map.viewController.resolution$\n ])\n .pipe(debounceTime(10))\n .subscribe((bunch: [Layer[], number]) => {\n this.layers$.next(\n bunch[0].filter(\n layer =>\n layer.showInLayerList !== false &&\n (!this.excludeBaseLayers || !layer.baseLayer)\n )\n );\n });\n\n if (this.allowShowAllLegends) {\n this.mapState.showAllLegendsValue =\n this.mapState.showAllLegendsValue !== undefined\n ? this.mapState.showAllLegendsValue\n : this.showAllLegendsValue || false;\n this.showAllLegendsValue$.next(this.mapState.showAllLegendsValue);\n } else {\n this.showAllLegendsValue$.next(false);\n }\n\n // prevent message to be shown too quickly. Waiting for layers\n setTimeout(() => {\n this.delayedShowEmptyMapContent = true;\n this.cdRef.detectChanges();\n }, 250);\n }\n\n onShowAllLegends(event) {\n this.mapState.showAllLegendsValue = event;\n this.showAllLegendsValue$.next(event);\n }\n\n showAllLegend() {\n if (this.layers$.getValue().length === 0) {\n return false;\n } else if (\n this.layers$.getValue().length !== 0 &&\n this.allowShowAllLegends === false\n ) {\n let visibleOrInRangeLayers;\n this.visibleOrInRangeLayers$$ = this.visibleOrInRangeLayers$.subscribe(value => {\n value.length === 0\n ? (visibleOrInRangeLayers = false)\n : (visibleOrInRangeLayers = true);\n });\n\n if (visibleOrInRangeLayers === false) {\n return false;\n }\n }\n return true;\n }\n\n ngOnDestroy(): void {\n this.resolution$$.unsubscribe();\n if (this.visibleOrInRangeLayers$$) {\n this.visibleOrInRangeLayers$$.unsubscribe();\n }\n }\n\n searchEmit() {\n this.toolState.toolbox.activateTool('searchResults');\n }\n\n catalogEmit() {\n this.toolState.toolbox.activateTool('catalog');\n }\n\n contextEmit() {\n this.toolState.toolbox.activateTool('contextManager');\n }\n}\n","<div *ngIf=\"userControlledLayerList.length; else noLayersBlock\" class=\"igo-swipe-select-container\">\n <form class=\"igo-form\" [formGroup]=\"form\">\n <mat-form-field>\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-select' | translate}}</mat-label>\n <mat-select formControlName=\"layers\" multiple>\n <mat-option [value]=\"1\" (click)=\"selectAll(e)\" #e>\n {{'igo.integration.advanced-map-tool.advanced-swipe.selectAll' | translate}}\n </mat-option>\n <mat-divider></mat-divider>\n <mat-option *ngFor=\"let layer of userControlledLayerList\" [value]=\"layer\" (click)=\"applyNewLayers(e)\">{{layer.title}}</mat-option>\n </mat-select>\n </mat-form-field>\n </form>\n\n <mat-slide-toggle class=\"swipe-toggle mat-typography\"\n [checked]=\"swipe\"\n [labelPosition]=\"'before'\"\n (change)=\"startSwipe($event.checked)\">\n {{'igo.integration.advanced-map-tool.advanced-swipe.swipe' | translate}}\n </mat-slide-toggle> \n</div>\n\n<ng-template #noLayersBlock>\n <mat-list>\n <p class=\"map-empty mat-typography\">\n {{'igo.integration.advanced-map-tool.advanced-swipe.empty' | translate}}</p>\n <p class=\"map-empty mat-typography\">\n {{'igo.integration.advanced-map-tool.advanced-swipe.customize' | translate}}</p>\n <mat-list-item>\n <mat-icon mat-list-icon svgIcon=\"magnify\"></mat-icon>\n <h4 matLine class=\"search-tool mat-typography\" (click)=\"searchEmit()\">\n {{'igo.integration.advanced-map-tool.advanced-swipe.search-tool' | translate}}\n </h4>\n </mat-list-item>\n <mat-list-item>\n <mat-icon mat-list-icon svgIcon=\"layers-plus\"></mat-icon>\n <h4 matLine class=\"catalog-tool mat-typography\" (click)=\"catalogEmit()\">\n {{'igo.integration.advanced-map-tool.advanced-swipe.catalog-tool' | translate}}\n </h4>\n </mat-list-item>\n <mat-list-item>\n <mat-icon mat-list-icon svgIcon=\"star\"></mat-icon>\n <h4 matLine class=\"context-tool mat-typography\" (click)=\"contextEmit()\">\n {{'igo.integration.advanced-map-tool.advanced-swipe.context-tool' | translate}}\n </h4>\n </mat-list-item>\n </mat-list>\n</ng-template>\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';\nimport { ContextService, DetailedContext } from '@igo2/context';\nimport { IgoMap, Layer, VectorLayer } from '@igo2/geo';\nimport { MapState } from '../../map.state';\nimport { ToolState } from '../../../tool/tool.state';\n\n@Component({\n selector: 'igo-advanced-swipe',\n templateUrl: './advanced-swipe.component.html',\n styleUrls: ['./advanced-swipe.component.scss']\n})\n\nexport class AdvancedSwipeComponent implements OnInit, OnDestroy {\n public swipe: boolean = false;\n public layerList: Layer[];\n public userControlledLayerList: Layer[];\n public form: UntypedFormGroup;\n public layers: VectorLayer[];\n public res: DetailedContext;\n public listForSwipe: Layer[];\n\n /**\n * Get an active map state\n */\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n constructor(\n public mapState: MapState,\n private contextService: ContextService,\n private formBuilder: UntypedFormBuilder,\n private toolState: ToolState) {\n this.buildForm();\n }\n\n /**\n * Get the list of layers for swipe\n * @internal\n */\n ngOnInit() {\n this.map.layers$.subscribe(ll => this.userControlledLayerList = ll.filter(layer =>\n (!layer.baseLayer && layer.showInLayerList && layer.displayed)));\n }\n\n /**\n * Desactivate the swipe\n * @internal\n */\n ngOnDestroy(){\n this.swipe = false;\n this.map.swipeEnabled$.next(this.swipe);\n }\n\n /**\n * Build a form for choise of the layers\n */\n private buildForm() {\n this.form = this.formBuilder.group({\n layers: ['', [Validators.required]]\n });\n }\n\n /**\n * Activate the swipe, send a list of layers for a swipe-tool\n */\n startSwipe(toggle: boolean){\n this.swipe = toggle;\n this.map.swipeEnabled$.next(toggle);\n this.listForSwipe = [];\n for (const layer of this.form.value.layers) {\n this.listForSwipe.push(layer);\n }\n this.map.selectedFeatures$.next(this.listForSwipe);\n }\n\n /**\n * Restart a swipe for a new layers-list\n */\n applyNewLayers(e) {\n this.startSwipe(false); // l'approche KISS\n this.startSwipe(true);\n if (e._selected) {e._selected = false; }\n const allLayers = this.userControlledLayerList.length;\n const selectedLayers = this.form.controls.layers.value.length;\n if (selectedLayers === allLayers){\n e._selected = true;\n }\n }\n\n /**\n * Select all list of layers and restart a tool\n */\n selectAll(e) {\n if (e._selected) {\n this.form.controls.layers.setValue(this.userControlledLayerList);\n e._selected = true;\n }\n else {\n this.form.controls.layers.setValue([]);\n }\n this.startSwipe(false);\n this.startSwipe(true);\n }\n\n /**\n * Open search tool\n */\n searchEmit() {\n this.toolState.toolbox.activateTool('searchResults');\n }\n\n /**\n * Open catalog\n */\n catalogEmit() {\n this.toolState.toolbox.activateTool('catalog');\n }\n\n /**\n * Open context manager\n */\n contextEmit() {\n this.toolState.toolbox.activateTool('contextManager');\n }\n}\n","<div class=\"advanced-coordinates__coordinates-container\">\n <div class=\"advanced-coordinates__coordinates-container__inner\">\n <mat-form-field *ngIf=\"units; else elseBlock\" class=\"coordinates\">\n <textarea #textArea matInput readonly rows=\"1\"\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lon' | translate\"\n [value]=\"coordinates[0]\"></textarea>\n </mat-form-field>\n <ng-template #elseBlock >\n <mat-form-field class=\"coordinates\">\n <textarea #textArea matInput readonly rows=\"1\"\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.est' | translate\"\n [value]=\"coordinates[0]\"></textarea></mat-form-field>\n </ng-template>\n\n <mat-form-field *ngIf=\"units; else elseBlock2\" class=\"coordinates2\">\n <textarea #textArea matInput readonly rows=\"1\"\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.lat' | translate\"\n [value]=\"coordinates[1]\"></textarea>\n </mat-form-field>\n <ng-template #elseBlock2 >\n <mat-form-field class=\"coordinates2\"> <textarea #textArea matInput readonly rows=\"1\"\n [placeholder]=\"'igo.integration.advanced-map-tool.advanced-coordinates.nord' | translate\"\n [value]=\"coordinates[1]\"></textarea></mat-form-field>\n </ng-template>\n </div>\n\n <button mat-icon-button [attr.aria-label]=\"'igo.integration.advanced-map-tool.advanced-coordinates.copy' | translate\" class=\"igo-form-button-group advanced-coordinates__copy-coordinates\"\n (click)=\"copyTextToClipboard()\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n</button>\n</div>\n<form class=\"igo-form advanced-coordinates__form\" [formGroup]=\"form\">\n <mat-form-field class=\"igo-input-container\">\n <mat-label>{{'igo.integration.advanced-map-tool.advanced-coordinates.coordSystem' | translate}}</mat-label>\n <mat-select [(value)]=\"inputProj\">\n <mat-option matTooltipShowDelay=\"500\"\n *ngFor=\"let projection of (projections$ | async)\"\n [value]=\"projection\"\n (click)=\"$event.stopPropagation()\">\n {{projection.translatedValue || projection.alias }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <mat-slide-toggle class=\"center-toggle mat-typography\"\n [checked]=\"center\"\n [labelPosition]=\"'before'\"\n (change)=\"displayCenter($event.checked)\">\n {{'igo.integration.advanced-map-tool.advanced-coordinates.center' | translate}}\n </mat-slide-toggle> \n</form>\n\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.zoom' | translate}} {{map.viewController.getZoom() }}</p>\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.scale' | translate}} {{ formattedScale$ | async }}</p>\n<p class=\"igo-zoom mat-typography\">{{'igo.integration.advanced-map-tool.advanced-coordinates.resolution' | translate}} {{map.viewController.getResolution() | number: '1.0-0' }}</p>","import { ChangeDetectorRef, Component, OnDestroy, OnInit, Input } from '@angular/core';\nimport { formatScale, IgoMap, InputProjections, ProjectionsLimitationsOptions } from '@igo2/geo';\nimport { MapState } from '../../map.state';\nimport { Clipboard } from '@igo2/utils';\nimport { MessageService, LanguageService, StorageService, StorageScope, ConfigService } from '@igo2/core';\nimport { BehaviorSubject, combineLatest, Subscription } from 'rxjs';\nimport { UntypedFormBuilder, UntypedFormGroup, Validators } from '@angular/forms';\nimport { debounceTime } from 'rxjs/operators';\nimport { zoneMtm, zoneUtm, computeProjectionsConstraints } from '@igo2/geo';\nimport * as olproj from 'ol/proj';\n/**\n * Tool to display the coordinates and a cursor of the center of the map\n */\n@Component({\n selector: 'igo-advanced-coordinates',\n templateUrl: './advanced-coordinates.component.html',\n styleUrls: ['./advanced-coordinates.component.scss']\n})\nexport class AdvancedCoordinatesComponent implements OnInit, OnDestroy {\n public formattedScale$: BehaviorSubject<string> = new BehaviorSubject('');\n public projections$: BehaviorSubject<InputProjections[]> = new BehaviorSubject([]);\n public form: UntypedFormGroup;\n public coordinates: string[];\n private currentCenterDefaultProj: [number, number];\n public center: boolean = this.storageService.get('centerToggle') as boolean;\n private inMtmZone: boolean = true;\n private inLambert2 = {32198: true, 3798: true};\n private mapState$$: Subscription;\n private _projectionsLimitations: ProjectionsLimitationsOptions = {};\n private projectionsConstraints: ProjectionsLimitationsOptions;\n private defaultProj: InputProjections = {\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\n };\n private currentZones = { utm: undefined, mtm: undefined };\n public units: boolean = true;\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n get inputProj(): InputProjections {\n return this.form.get('inputProj').value;\n }\n set inputProj(value: InputProjections) {\n this.form.patchValue({ inputProj: value });\n }\n get projectionsLimitations(): ProjectionsLimitationsOptions {\n return this._projectionsLimitations || {};\n }\n\n @Input()\n set projectionsLimitations(value: ProjectionsLimitationsOptions) {\n this._projectionsLimitations = value;\n }\n\n constructor(\n public mapState: MapState,\n private languageService: LanguageService,\n private messageService: MessageService,\n private cdRef: ChangeDetectorRef,\n private storageService: StorageService,\n private config: ConfigService,\n private formBuilder: UntypedFormBuilder) {\n this.computeProjections();\n this.buildForm();\n }\n\n /**\n * Listen a state of the map, a state of a form, update the coordinates\n */\n ngOnInit(): void {\n this.mapState$$ = combineLatest([this.map.viewController.state$.pipe(debounceTime(50)), this.form.valueChanges])\n .subscribe(() => {\n this.setScaleValue(this.map);\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\n const currentMtmZone = zoneMtm(this.currentCenterDefaultProj[0]);\n const currentUtmZone = zoneUtm(this.currentCenterDefaultProj[0]);\n if (!this.inMtmZone && currentMtmZone !== this.currentZones.mtm) {\n this.back2quebec();\n }\n let zoneChange = false;\n if (currentMtmZone !== this.currentZones.mtm) {\n this.currentZones.mtm = currentMtmZone;\n zoneChange = true;\n }\n if (currentUtmZone !== this.currentZones.utm) {\n this.currentZones.utm = currentUtmZone;\n zoneChange = true;\n }\n if (zoneChange) {\n this.updateProjectionsZoneChange();\n }\n this.checkLambert(this.currentCenterDefaultProj);\n this.coordinates = this.getCoordinates();\n this.cdRef.detectChanges();\n this.storageService.set('currentProjection', this.inputProj, StorageScope.SESSION);\n });\n\n const tempInputProj = this.storageService.get('currentProjection') as InputProjections;\n this.inputProj = this.projections$.value[0];\n if (tempInputProj !== null)\n {\n const pos = this.positionInList(tempInputProj);\n this.inputProj = this.projections$.value[pos];\n this.updateZoneMtmUtm();\n }\n this.map.mapCenter$.next(this.center);\n this.coordinates = this.getCoordinates();\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\n }\n\n ngOnDestroy(): void {\n this.map.mapCenter$.next(false);\n this.mapState$$.unsubscribe();\n }\n\n setScaleValue(map: IgoMap) {\n this.formattedScale$.next(': ~ 1 / ' + formatScale(map.viewController.getScale()));\n }\n /**\n * Coordinates of the center of the map on the appropriate systeme of coordinates\n * @returns Array of two numbers\n */\n getCoordinates(): string[] {\n this.currentZones.mtm = zoneMtm(this.currentCenterDefaultProj[0]);\n this.currentZones.utm = zoneUtm(this.currentCenterDefaultProj[0]);\n let coord;\n const code = this.inputProj.code;\n let decimal = 2;\n if (code.includes('EPSG:4326') || code.includes('EPSG:4269')) {\n decimal = 5;\n }\n this.units = (code === 'EPSG:4326' || code === 'EPSG:4269');\n coord = this.map.viewController.getCenter(code).map(c => c.toFixed(decimal));\n return coord;\n }\n\n /**\n * Copy the coordinates to a clipboard\n */\n copyTextToClipboard(): void {\n const successful = Clipboard.copy(this.coordinates.toString());\n if (successful) {\n this.messageService.success(\n 'igo.integration.advanced-map-tool.advanced-coordinates.copyMsg',\n 'igo.integration.advanced-map-tool.advanced-coordinates.copyTitle');\n }\n }\n\n /**\n * Display a cursor on the center of the map\n */\n displayCenter(toggle: boolean): void {\n this.center = toggle;\n this.map.mapCenter$.next(toggle);\n this.storageService.set('centerToggle', toggle, StorageScope.SESSION);\n }\n\n /**\n * Builder of the form\n */\n private buildForm(): void {\n this.form = this.formBuilder.group({\n inputProj: ['', [Validators.required]]\n });\n }\n\n /**\n * Update list of projections after changing of the state of the map\n */\n private updateProjectionsZoneChange(): void {\n let modifiedProj = this.projections$.value;\n const translate = this.languageService.translate;\n modifiedProj.map(p => {\n if (p.translateKey === 'mtm') {\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\n if (zone) {\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\n p.alias = `MTM ${zone}`;\n p.code = code;\n p.zone = `${zone}`;\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.mtm', p);\n }\n else {\n p.alias = '';\n this.inMtmZone = false;\n if (this.inputProj.translateKey === 'mtm') {\n this.inputProj = this.projections$.value[0];\n }\n }\n }\n if (p.translateKey === 'utm') {\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\n const code = `EPSG:326${zone}`;\n p.alias = `UTM ${zone}`;\n p.code = code;\n p.zone = `${zone}`;\n p.translatedValue = translate.instant('igo.geo.importExportForm.projections.utm', p);\n }\n });\n modifiedProj = modifiedProj.filter(p => p.alias !== '');\n this.projections$.next(modifiedProj);\n }\n\n /**\n * Create a list of currents projections\n */\n private computeProjections(): void {\n this.projectionsConstraints = computeProjectionsConstraints(this.projectionsLimitations);\n const projections: InputProjections[] = [];\n\n if (!this.currentCenterDefaultProj) {\n this.currentCenterDefaultProj = this.map.viewController.getCenter(this.defaultProj.code);\n }\n\n const translate = this.languageService.translate;\n if (this.projectionsConstraints.wgs84) {\n projections.push({\n translatedValue: translate.instant('igo.geo.importExportForm.projections.wgs84', { code: 'EPSG:4326' }),\n translateKey: 'wgs84', alias: 'WGS84', code: 'EPSG:4326', zone: ''\n });\n }\n\n if (this.projectionsConstraints.nad83) {\n projections.push({\n translatedValue: translate.instant('igo.geo.importExportForm.projections.nad83', { code: 'EPSG:4269' }),\n translateKey: 'nad83', alias: 'NAD83', code: 'EPSG:4269', zone: ''\n });\n }\n\n if (this.projectionsConstraints.webMercator) {\n projections.push({\n translatedValue: translate.instant('igo.geo.importExportForm.projections.webMercator', { code: 'EPSG:3857' }),\n translateKey: 'webMercator', alias: 'Web Mercator', code: 'EPSG:3857', zone: ''\n });\n }\n if (this.projectionsConstraints.mtm) {\n // Quebec\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\n if (zone) {\n this.inMtmZone = true;\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\n projections.splice(3, 0, {\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`\n });\n }\n else {\n this.inMtmZone = false;\n }\n }\n if (this.projectionsConstraints.utm) {\n const order = this.inMtmZone ? 4 : 3;\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\n projections.splice(order, 0, {\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone }),\n translateKey: 'utm', alias: `UTM ${zone}`, code, zone: `${zone}`\n });\n }\n let configProjection = [];\n if (this.projectionsConstraints.projFromConfig) {\n configProjection = this.config.getConfig('projections') || [];\n }\n this.projections$.next(projections.concat(configProjection));\n }\n\n /**\n * Push the MTM in the array of systeme of coordinates\n * @param projections Array of the InputProjections\n */\n private pushMtm(projections: Array<InputProjections>): void {\n if (this.projectionsConstraints.mtm) {\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\n projections.splice(3, 0, {\n translatedValue: this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone }),\n translateKey: 'mtm', alias: `MTM ${zone}`, code, zone: `${zone}`});\n }\n }\n\n /**\n * Updates the list of systems of coordinates for territory of Quebec\n * push MTM and UTM in the Array\n */\n private back2quebec(): void {\n const projections = this.projections$.value;\n this.pushMtm(projections);\n this.inMtmZone = true;\n }\n\n /**\n * Update the numbers of the zones when application is restarted\n */\n private updateZoneMtmUtm() {\n if (this.inputProj.translateKey === 'mtm') {\n const zone = zoneMtm(this.currentCenterDefaultProj[0]);\n this.inputProj.alias = `MTM ${zone}`;\n const code = zone < 10 ? `EPSG:3218${zone}` : `EPSG:321${80 + zone}`;\n this.inputProj.code = code;\n this.inputProj.zone = `${zone}`;\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.mtm', { code, zone });\n }\n if (this.inputProj.translateKey === 'utm') {\n const zone = zoneUtm(this.currentCenterDefaultProj[0]);\n this.inputProj.alias = `UTM ${zone}`;\n const code = zone < 10 ? `EPSG:3260${zone}` : `EPSG:326${zone}`;\n this.inputProj.code = code;\n this.inputProj.zone = `${zone}`;\n this.inputProj.translatedValue = this.languageService.translate.instant('igo.geo.importExportForm.projections.utm', { code, zone });\n }\n }\n\n /**\n * Compute the position of a current projection in a list. 0 if the projection is not in the list\n * @param translateKey string, translate key of a projection\n * @returns numeric, position of an element in the array\n */\n positionInList(tempInputProj: InputProjections): number {\n const tk = tempInputProj.translateKey;\n const alias = tempInputProj.alias;\n let position; // = undefined;\n let iter = 0;\n this.projections$.value.map((projection) => {\n if (tk) {\n if (tk === projection.translateKey) {\n position = iter;\n }\n }\n else if (alias === projection.alias) {\n position = iter;\n }\n iter++;\n });\n position = position ? position : 0;\n return position;\n }\n\n /**\n * Change the list of projections depending on the projections of Lambert\n * @param coordinates An array of numbers, longitude and latitude\n */\n checkLambert(coordinates: [number, number]) {\n const lambertProjections = this.config.getConfig('projections');\n lambertProjections.forEach(projection => {\n let modifiedProj = this.projections$.value;\n const extent = projection.extent;\n const code = projection.code.match(/\\d+/);\n const currentExtentWGS = olproj.transformExtent(extent, projection.code, this.defaultProj.code);\n if (coordinates[0] < currentExtentWGS[0] || coordinates[0] > currentExtentWGS[2] ||\n coordinates[1] < currentExtentWGS[1] || coordinates[1] > currentExtentWGS[3]) {\n this.inLambert2[code] = false;\n if (this.inputProj.alias === projection.alias) {\n this.inputProj = this.projections$.value[0];\n }\n modifiedProj = modifiedProj.filter(p => p.alias !== projection.alias);\n this.projections$.next(modifiedProj);\n }\n else {\n if (!this.inLambert2[code]) {\n this.projections$.next(modifiedProj.concat(projection));\n this.inLambert2[code] = true;\n }\n }\n });\n }\n}\n","import { Component } from '@angular/core';\nimport { ToolComponent } from '@igo2/common';\nimport { MapState } from '../map.state';\n\n@ToolComponent({\n name: 'advancedMap',\n title: 'igo.integration.tools.advancedMap',\n icon: 'toolbox'\n})\n\n/**\n * Tool to handle the advanced map tools\n */\n@Component({\n selector: 'igo-advanced-map-tool',\n templateUrl: './advanced-map-tool.component.html',\n styleUrls: ['./advanced-map-tool.component.scss']\n})\n\nexport class AdvancedMapToolComponent {\n\n get tracking$() {\n return this.mapState.map.geolocationController.tracking$;\n }\n get followPosition$() {\n return this.mapState.map.geolocationController.followPosition$;\n }\n\n constructor(\n public mapState: MapState) {}\n\n toggleTracking(value) {\n this.mapState.map.geolocationController.tracking = value;\n }\n\n toggleFollow(value) {\n this.mapState.map.geolocationController.followPosition = value;\n }\n}\n","<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-swipe.swipe-tool' | translate}}</h4>\n<igo-advanced-swipe></igo-advanced-swipe>\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\n<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.advanced-coordinates.coordinates' | translate}}</h4>\n<igo-advanced-coordinates></igo-advanced-coordinates>\n<mat-divider class=\"advanced-tool-line\"></mat-divider>\n\n<h4 class=\"nameOfTool\">{{'igo.integration.advanced-map-tool.geolocation.title' | translate}}</h4>\n\n<div class=\"igo-input-container\">\n <div class=\"geolocation-slide-toggle-container mat-typography\">\n <mat-slide-toggle \n class=\"geolocation-option mat-typography\"\n [checked]=\"tracking$ | async\"\n [labelPosition]=\"'before'\"\n (change)=\"toggleTracking($event.checked)\">\n {{'igo.integration.advanced-map-tool.geolocation.tracking' | translate}}\n </mat-slide-toggle>\n\n <mat-slide-toggle\n class=\"geolocation-option mat-typography\"\n [disabled]=\"(tracking$ | async) !== true\"\n [checked]=\"followPosition$ | async\"\n [labelPosition]=\"'before'\"\n (change)=\"toggleFollow($event.checked)\">\n {{'igo.integration.advanced-map-tool.geolocation.follow' | translate}}\n </mat-slide-toggle>\n </div>\n</div>","import { Injectable } from '@angular/core';\n\nimport {\n FeatureStore, Feature, IgoMap,\n featureFromOl, measureOlGeometryLength, Layer, QueryableDataSourceOptions, FEATURE, roundCoordTo, QueryableDataSource, MapGeolocationState\n} from '@igo2/geo';\nimport { BehaviorSubject, combineLatest, interval, Subscription } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { MapState } from '../map/map.state';\n\nimport GeoJSON from 'ol/format/GeoJSON';\nimport { uuid } from '@igo2/utils';\n\nimport olLayerVector from 'ol/layer/Vector';\nimport olVectorSource from 'ol/source/Vector';\nimport Geometry from 'ol/geom/Geometry';\nimport olLineString from 'ol/geom/LineString';\nimport * as olProj from 'ol/proj';\nimport { StorageService } from '@igo2/core';\n/**\n * Service that holds the state of the direction module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MapProximityState {\n\n private defaultProximityRadiusValue: number = 30;\n\n public enabled$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n public proximityRadiusValue$: BehaviorSubject<number> = new BehaviorSubject<number>(\n this.storageService.get('mapProximityRadius') as number || this.defaultProximityRadiusValue);\n public proximitylocationType$: BehaviorSubject<string> = new BehaviorSubject<string>('geolocation');\n public proximityFeatureStore: FeatureStore<Feature> = new FeatureStore<Feature>([], { map: this.mapState.map });\n private subs$$: Subscription[] = [];\n public currentPositionCoordinate$: BehaviorSubject<[number, number]> = new BehaviorSubject(undefined);\n\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n constructor(\n private mapState: MapState,\n private storageService: StorageService) {\n\n this.mapState.map.ol.once('rendercomplete', () => {\n this.subscribeProximityMonitor();\n });\n }\n\n\n subscribeProximityMonitor() {\n this.subs$$.push(combineLatest([\n this.enabled$,\n this.proximitylocationType$,\n this.proximityRadiusValue$,\n interval(5000),\n this.map.geolocationController.position$\n ])\n .pipe(debounceTime(750))\n .subscribe((bunch: [boolean, string, number, number, MapGeolocationState]) => {\n this.proximityFeatureStore.clear();\n const enabled = bunch[0];\n const layers = this.map.layers;\n const currentPos = this.map.geolocationController.position$.value;\n const locationType = bunch[1];\n const proximityRadiusValue = bunch[2];\n this.storageService.set('mapProximityRadius', proximityRadiusValue || this.defaultProximityRadiusValue);\n\n if (!enabled) {\n return;\n }\n\n\n let coord: number[];\n if (locationType === 'geolocation') {\n if (!currentPos || !currentPos.position) {\n return;\n }\n\n coord = olProj.transform(currentPos.position, currentPos.projection, this.map.projection);\n this.map.mapCenter$.next(false);\n } else {\n coord = this.map.viewController.getCenter();;\n this.map.mapCenter$.next(true);\n }\n\n const coordLonLat = olProj.transform(coord, this.map.projection, 'EPSG:4269');\n const roundedCoordLonLat = roundCoordTo(coordLonLat as [number, number], 6);\n this.currentPositionCoordinate$.next(roundedCoordLonLat);\n\n const layersToMonitor = layers\n .filter(layer =>\n layer.ol instanceof olLayerVector &&\n (layer.dataSource as QueryableDataSource).options.queryable &&\n layer.visible &&\n layer.isInResolutionsRange);\n\n layersToMonitor.map(layerToMonitor => {\n const layerSource = layerToMonitor.ol.getSource() as olVectorSource<Geometry>;\n\n // Mostly for polygon features.\n const olFeaturesAtCoordinate = layerSource.getFeaturesAtCoordinate(coord);\n if (olFeaturesAtCoordinate && olFeaturesAtCoordinate.length) {\n olFeaturesAtCoordinate.map(olFeatureAtCoordinate => {\n const featureAtThisPosition = featureFromOl(olFeatureAtCoordinate, this.map.projection);\n let title = this.getQueryTitle(featureAtThisPosition, layerToMonitor);\n // todo handle imported layers without querytitle? prompt title or detect first column?\n this.addFeatureToStore(layerToMonitor, coord, featureAtThisPosition, title, 0);\n });\n } else {\n // compute proximity for remaining sources\n const closestOlFeature = layerSource.getClosestFeatureToCoordinate(coord);\n if (closestOlFeature) {\n const closestOlGeom = closestOlFeature.getGeometry();\n const closestFeature = featureFromOl(closestOlFeature, this.map.projection);\n const geometryClosestPoint = closestOlGeom.getClosestPoint(coord);\n const linebetween = new olLineString([coord, geometryClosestPoint]);\n const lineLength = measureOlGeometryLength(linebetween, 'EPSG:3857');\n if (lineLength <= proximityRadiusValue) {\n let title = this.getQueryTitle(closestFeature, layerToMonitor);\n // todo handle imported layers without querytitle? prompt title or detect first column?\n this.addFeatureToStore(layerToMonitor, coord, closestFeature, title, lineLength);\n }\n }\n }\n });\n\n }));\n }\n\n /**\n * Add a feature with proximity properties to the store\n * @internal\n */\n private addFeatureToStore(layer: Layer, coordFromCalculatedDistance, feature: Feature, title, distance) {\n const featureId = uuid();\n const projection = this.map.ol.getView().getProjection();\n const olGeometry = feature.ol.getGeometry() as Geometry;\n const geometry = new GeoJSON().writeGeometryObject(olGeometry, {\n featureProjection: projection,\n dataProjection: projection\n }) as any;\n this.proximityFeatureStore.update({\n type: FEATURE,\n geometry,\n projection: projection.getCode(),\n properties: {...feature.properties,...{\n id: featureId,\n element: title,\n distance,\n coordFromCalculatedDistance,\n layerSrcId: layer.id,\n layerSrcTitle: layer.title\n }},\n meta: {\n id: featureId\n }\n });\n }\n\n getQueryTitle(feature: Feature, layer: Layer): string {\n let title;\n if (layer.options?.source?.options) {\n const dataSourceOptions = layer.options.source\n .options as QueryableDataSourceOptions;\n if (dataSourceOptions.queryTitle) {\n title = this.getLabelMatch(feature, dataSourceOptions.queryTitle);\n }\n }\n return title;\n }\n\n getLabelMatch(feature: Feature, labelMatch): string {\n let label = labelMatch;\n const labelToGet = Array.from(labelMatch.matchAll(/\\$\\{([^\\{\\}]+)\\}/g));\n\n labelToGet.forEach(v => {\n label = label.replace(v[0], feature.properties[v[1]]);\n });\n\n // Nothing done? check feature's attribute\n if (labelToGet.length === 0 && label === labelMatch) {\n label = feature.properties[labelMatch] || labelMatch;\n }\n return label;\n }\n}\n","<igo-entity-table #table class=\"table-compact\" [store]=\"mapProximityState.proximityFeatureStore\" [template]=\"tableTemplate\"></igo-entity-table>\n<br>\n<mat-form-field *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord\" class=\"coordinates\">\n <textarea #textArea matInput readonly rows=\"1\"\n [placeholder]=\"'igo.integration.map-proximity-tool.lon' | translate\"\n [value]=\"coord[0]\"></textarea>\n</mat-form-field>\n<mat-form-field *ngIf=\"mapProximityState.currentPositionCoordinate$ | async as coord2\" class=\"coordinates2\">\n <textarea #textArea matInput readonly rows=\"1\"\n [placeholder]=\"'igo.integration.map-proximity-tool.lat' | translate\"\n [value]=\"coord2[1]\"></textarea>\n</mat-form-field>\n\n<button *ngIf=\"(mapProximityState.currentPositionCoordinate$ | async) && (mapProximityState.currentPositionCoordinate$ | async).length\" mat-icon-button\n (click)=\"copyTextToClipboard()\">\n <mat-icon svgIcon=\"content-copy\"></mat-icon>\n</button>\n<div class=\"title-container\">\n <mat-label class=\"title mat-typography\">{{'igo.integration.map-proximity-tool.method' | translate}}</mat-label>\n</div>\n<div class=\"igo-input-container mat-typography\">\n <mat-radio-group (change)=\"onLocationTypeChange($event)\">\n <mat-radio-button [checked]=\"(mapProximityState.proximitylocationType$|async)==='geolocation'\" value=\"geolocation\">{{'igo.integration.map-proximity-tool.geolocation' | translate}}</mat-radio-button>\n <mat-radio-button [checked]=\"(mapProximityState.proximitylocationType$|async)==='mapCenter'\" value=\"mapCenter\">{{'igo.integration.map-proximity-tool.mapCenter' | translate}}</mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"radius-unit\"> \n \n <mat-form-field appearance=\"outline\" class=\"radius-field\" floatLabel=\"always\">\n <mat-label>{{'igo.integration.map-proximity-tool.radiusM' | translate}}</mat-label>\n <input type=\"number\" pattern=\"[0-9]*\" [(ngModel)]=\"maxDistance\" matInput placeholder=\"{{'igo.integration.map-proximity-tool.radiusM' | translate}}\">\n </mat-form-field>\n\n \n</div>","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { MatRadioChange } from '@angular/material/radio';\nimport { EntityTableComponent, EntityTableTemplate, ToolComponent } from '@igo2/common';\nimport { LanguageService, MessageService } from '@igo2/core';\nimport { Feature, IgoMap } from '@igo2/geo';\nimport { NumberUtils, Clipboard } from '@igo2/utils';\nimport { Subscription } from 'rxjs';\nimport { MapProximityState } from '../map-proximity.state';\nimport { MapState } from '../map.state';\n@ToolComponent({\n name: 'map-proximity',\n title: 'igo.integration.tools.closestFeature',\n icon: 'radius'\n})\n\n/**\n * Tool to handle the advanced map tools\n */\n@Component({\n selector: 'igo-map-proximity-tool',\n templateUrl: './map-proximity-tool.component.html',\n styleUrls: ['./map-proximity-tool.component.scss']\n})\n\nexport class MapProximityToolComponent implements OnInit, OnDestroy {\n\n private subs$$: Subscription[] = [];\n @ViewChild('table', { static: true }) table: EntityTableComponent;\n\n get maxDistance() {\n return this.mapProximityState.proximityRadiusValue$.value;\n }\n set maxDistance(value: number) {\n this.mapProximityState.proximityRadiusValue$.next(value);\n }\n\n get map(): IgoMap {\n return this.mapState.map;\n }\n public userDefinedMapCenter: boolean;\n public userDefinedFollowPosition: boolean;\n /**\n * Table template\n * @internal\n */\n public tableTemplate: EntityTableTemplate = {\n selection: true,\n selectMany: false,\n selectionCheckbox: false,\n sort: true,\n columns: [\n {\n name: 'element',\n title: this.languageService.translate.instant('igo.integration.map-proximity-tool.feature'),\n valueAccessor: (localFeature: Feature) => {\n return localFeature.properties.element;\n }\n },\n {\n name: 'distance',\n title: this.languageService.translate.instant('igo.integration.map-proximity-tool.distance'),\n valueAccessor: (localFeature: Feature) => {\n return `${NumberUtils.roundToNDecimal(localFeature.properties.distance, 1)}m`;\n }\n }\n ]\n };\n\n constructor(\n public mapState: MapState,\n public mapProximityState: MapProximityState,\n private languageService: LanguageService,\n private messageService: MessageService) {\n }\n\n ngOnInit(): void {\n this.mapProximityState.enabled$.next(true);\n this.userDefinedFollowPosition = this.map.geolocationController.followPosition === true;\n this.userDefinedMapCenter = this.map.mapCenter$.value === true;\n\n this.subs$$.push(this.mapProximityState.proximitylocationType$.subscribe(v => {\n this.map.mapCenter$.next(v !== 'geolocation');\n if (v === 'geolocation') {\n this.map.geolocationController.followPosition = true;\n } else {\n this.map.geolocationController.followPosition = false;\n }\n }));\n }\n\n ngOnDestroy(): void {\n this.mapProximityState.enabled$.next(false);\n this.map.mapCenter$.next(this.userDefinedMapCenter);\n this.subs$$.map(s => s.unsubscribe());\n this.map.geolocationController.followPosition = this.userDefinedFollowPosition;\n }\n\n onLocationTypeChange(e: MatRadioChange) {\n this.mapProximityState.proximitylocationType$.next(e.value);\n }\n\n /**\n * Copy the coordinates to a clipboard\n */\n copyTextToClipboard(): void {\n\n const successful = Clipboard.copy(this.mapProximityState.currentPositionCoordinate$?.value.toString());\n if (successful) {\n this.messageService.success('igo.integration.map-proximity-tool.copyMsg', 'igo.integration.map-proximity-tool.copyTitle');\n }\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n CUSTOM_ELEMENTS_SCHEMA\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { IgoLanguageModule } from '@igo2/core';\nimport {\n IgoLayerModule,\n IgoMetadataModule,\n IgoDownloadModule,\n IgoFilterModule,\n IgoImportExportModule,\n IgoStyleModule\n} from '@igo2/geo';\nimport { IgoContextModule } from '@igo2/context';\nimport { MapDetailsToolComponent } from './map-details-tool/map-details-tool.component';\nimport { MapToolComponent } from './map-tool/map-tool.component';\nimport { MapToolsComponent } from './map-tools/map-tools.component';\nimport { MapLegendToolComponent } from './map-legend/map-legend-tool.component';\nimport { IgoAppWorkspaceModule } from '../workspace/workspace.module';\nimport { AdvancedMapToolComponent } from './advanced-map-tool/advanced-map-tool.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { IgoEntityTableModule, IgoSpinnerModule } from '@igo2/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { AdvancedSwipeComponent } from './advanced-map-tool/advanced-swipe/advanced-swipe.component';\nimport { AdvancedCoordinatesComponent } from './advanced-map-tool/advanced-coordinates/advanced-coordinates.component';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MapProximityToolComponent } from './map-proximity-tool/map-proximity-tool.component';\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n MatButtonToggleModule,\n MatDividerModule,\n MatSelectModule,\n MatOptionModule,\n MatFormFieldModule,\n MatInputModule,\n MatCheckboxModule,\n IgoSpinnerModule,\n CommonModule,\n MatTabsModule,\n MatListModule,\n MatIconModule,\n IgoLanguageModule,\n IgoLayerModule,\n IgoMetadataModule,\n IgoDownloadModule,\n IgoImportExportModule,\n IgoStyleModule,\n IgoFilterModule,\n MatRadioModule,\n IgoContextModule,\n IgoAppWorkspaceModule,\n MatSlideToggleModule,\n MatMenuModule,\n MatButtonModule,\n MatTooltipModule,\n IgoEntityTableModule\n ],\n declarations: [ AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,\n MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent, AdvancedSwipeComponent, AdvancedCoordinatesComponent],\n exports: [AdvancedMapToolComponent, MapProximityToolComponent, MapToolComponent,\n MapToolsComponent, MapDetailsToolComponent, MapLegendToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppMapModule {\n static forRoot(): ModuleWithProviders<IgoAppMapModule> {\n return {\n ngModule: IgoAppMapModule,\n providers: []\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { FeatureStore, FeatureWithMeasure } from '@igo2/geo';\nimport { MapState } from '../map/map.state';\n\n/**\n * Service that holds the state of the measure module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class MeasureState {\n\n /**\n * Store that holds the measures\n */\n public store: FeatureStore<FeatureWithMeasure> = new FeatureStore<FeatureWithMeasure>([], {\n map: this.mapState.map\n });\n\n constructor(private mapState: MapState) {\n\n this.mapState.map.layers$.subscribe((layers) => {\n if ((layers.filter(l => l.id?.startsWith('igo-measures-')).length === 0)) {\n this.store.deleteMany(this.store.all());\n this.mapState.map.ol.getOverlays().getArray()\n .filter(overlay => (overlay as any).options.className.includes('igo-map-tooltip'))\n .map(overlay => this.mapState.map.ol.removeOverlay(overlay));\n }\n });\n }\n\n}\n","import {\n Component,\n ChangeDetectionStrategy\n} from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport { FeatureStore, FeatureWithMeasure, IgoMap } from '@igo2/geo';\nimport { MapState } from '../../map/map.state';\nimport { MeasureState } from '../measure.state';\n\n/**\n * Tool to measure lengths and areas\n */\n@ToolComponent({\n name: 'measurer',\n title: 'igo.integration.tools.measurer',\n icon: 'ruler'\n})\n@Component({\n selector: 'igo-measurer-tool',\n templateUrl: './measurer-tool.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class MeasurerToolComponent {\n\n /**\n * Map to measure on\n * @internal\n */\n get store(): FeatureStore<FeatureWithMeasure> { return this.measureState.store; }\n\n /**\n * Map to measure on\n * @internal\n */\n get map(): IgoMap { return this.mapState.map; }\n\n constructor(\n private measureState: MeasureState,\n private mapState: MapState\n ) {}\n\n}\n","<igo-measurer [store]=\"store\" [map]=\"map\"></igo-measurer>\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\n\nimport { IgoMeasurerModule } from '@igo2/geo';\n\nimport { MeasurerToolComponent } from './measurer-tool.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n IgoMeasurerModule\n ],\n declarations: [MeasurerToolComponent],\n exports: [MeasurerToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppMeasurerToolModule {}\n","import { NgModule } from '@angular/core';\n\nimport { IgoAppMeasurerToolModule } from './measurer-tool/measurer-tool.module';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [\n IgoAppMeasurerToolModule\n ]\n})\nexport class IgoAppMeasureModule {}\n","import { Component } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport { IgoMap } from '@igo2/geo';\n\nimport { MapState } from '../../map/map.state';\n\n@ToolComponent({\n name: 'print',\n title: 'igo.integration.tools.print',\n icon: 'printer'\n})\n@Component({\n selector: 'igo-print-tool',\n templateUrl: './print-tool.component.html'\n})\nexport class PrintToolComponent {\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n constructor(private mapState: MapState) {}\n}\n","<igo-print [map]=\"map\"></igo-print>\n","import {\n NgModule,\n ModuleWithProviders,\n CUSTOM_ELEMENTS_SCHEMA\n} from '@angular/core';\n\nimport { IgoPrintModule } from '@igo2/geo';\nimport { PrintToolComponent } from './print-tool/print-tool.component';\n\n@NgModule({\n imports: [IgoPrintModule],\n declarations: [PrintToolComponent],\n exports: [PrintToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppPrintModule {\n static forRoot(): ModuleWithProviders<IgoAppPrintModule> {\n return {\n ngModule: IgoAppPrintModule,\n providers: []\n };\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n EntityRecord,\n EntityStore,\n EntityStoreFilterCustomFuncStrategy,\n EntityStoreStrategyFuncOptions\n} from '@igo2/common';\nimport { ConfigService, StorageService } from '@igo2/core';\nimport {\n SearchResult,\n SearchSourceService,\n SearchSource,\n CommonVectorStyleOptions,\n FeatureWorkspace,\n FeatureStore,\n Feature\n} from '@igo2/geo';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { WorkspaceState } from '../workspace/workspace.state';\nimport { MapState } from '../map';\n\n/**\n * Service that holds the state of the search module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SearchState {\n public searchLayerStores: FeatureStore<Feature>[] = [];\n public searchOverlayStyle: CommonVectorStyleOptions = {};\n public searchOverlayStyleSelection: CommonVectorStyleOptions = {};\n public searchOverlayStyleFocus: CommonVectorStyleOptions = {};\n\n public focusedOrResolution$$: Subscription;\n public selectedOrResolution$$: Subscription;\n\n readonly searchTermSplitter$: BehaviorSubject<string> = new BehaviorSubject('|');\n\n readonly searchTerm$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n readonly searchType$: BehaviorSubject<string> = new BehaviorSubject(undefined);\n\n readonly searchDisabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly searchResultsGeometryEnabled$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n\n readonly searchSettingsChange$: BehaviorSubject<boolean> = new BehaviorSubject(undefined);\n\n readonly selectedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(undefined);\n\n /**\n * Store that holds the search results\n */\n readonly store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\n\n /**\n * Search types currently enabled in the search source service\n */\n get searchTypes(): string[] {\n return this.searchSourceService\n .getEnabledSources()\n .map((source: SearchSource) => (source.constructor as any).type);\n }\n\n constructor(\n private searchSourceService: SearchSourceService,\n private storageService: StorageService,\n private workspaceState: WorkspaceState,\n private configService: ConfigService,\n private mapState: MapState) {\n const searchOverlayStyle = this.configService.getConfig('searchOverlayStyle') as {\n base?: CommonVectorStyleOptions,\n selection?: CommonVectorStyleOptions,\n focus?: CommonVectorStyleOptions\n };\n if (searchOverlayStyle) {\n this.searchOverlayStyle = searchOverlayStyle.base;\n this.searchOverlayStyleSelection = searchOverlayStyle.selection;\n this.searchOverlayStyleFocus = searchOverlayStyle.focus;\n }\n\n const searchResultsGeometryEnabled = this.storageService.get('searchResultsGeometryEnabled') as boolean;\n if (searchResultsGeometryEnabled) {\n this.searchResultsGeometryEnabled$.next(searchResultsGeometryEnabled);\n }\n this.store.addStrategy(this.createCustomFilterTermStrategy(), false);\n\n const wksSource = this.searchSourceService.getSources().find(source => source.getId() === 'workspace');\n this.workspaceState.store.entities$\n .subscribe(e => {\n const searchableWks = e.filter(fw => fw instanceof FeatureWorkspace && fw.layer.options.workspace.searchIndexEnabled);\n this.searchSourceService.setWorkspaces(wksSource, searchableWks);\n }\n );\n this.monitorLayerDeletion();\n }\n\n private monitorLayerDeletion() {\n this.mapState.map.layers$\n .subscribe((layers) => {\n this.searchLayerStores.forEach((store) => {\n let layer = layers.find(l => l.id === store.layer.id);\n if (!layer) {\n const index = this.searchLayerStores.indexOf(store);\n this.searchLayerStores.splice(index, 1);\n }\n });\n });\n }\n\n private createCustomFilterTermStrategy(): EntityStoreFilterCustomFuncStrategy {\n const filterClauseFunc = (record: EntityRecord<SearchResult>) => {\n return record.entity.meta.score === 100;\n };\n return new EntityStoreFilterCustomFuncStrategy({filterClauseFunc} as EntityStoreStrategyFuncOptions);\n }\n\n /**\n * Activate custom strategy\n *\n */\n activateCustomFilterTermStrategy() {\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\n if (strategy !== undefined) {\n strategy.activate();\n }\n }\n\n /**\n * Deactivate custom strategy\n *\n */\n deactivateCustomFilterTermStrategy() {\n const strategy = this.store.getStrategyOfType(EntityStoreFilterCustomFuncStrategy);\n if (strategy !== undefined) {\n strategy.deactivate();\n }\n }\n\n enableSearch() {\n this.searchDisabled$.next(false);\n }\n\n disableSearch() {\n this.searchDisabled$.next(true);\n }\n\n setSearchTerm(searchTerm: string) {\n this.searchTerm$.next(searchTerm);\n }\n\n setSearchType(searchType: string) {\n this.searchSourceService.enableSourcesByType(searchType);\n this.searchType$.next(searchType);\n }\n\n setSearchSettingsChange() {\n this.searchSettingsChange$.next(true);\n }\n\n setSelectedResult(result: SearchResult) {\n this.selectedResult$.next(result);\n }\n\n setSearchResultsGeometryStatus(value) {\n this.storageService.set('searchResultsGeometryEnabled', value);\n this.searchResultsGeometryEnabled$.next(value);\n }\n}\n","import { Directive, Self, OnInit, OnDestroy, HostListener } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { SearchBarComponent } from '@igo2/geo';\nimport { SearchState } from '../search.state';\n\n@Directive({\n selector: '[igoSearchBarBinding]'\n})\nexport class SearchBarBindingDirective implements OnInit, OnDestroy {\n\n get searchTerm(): string { return this.searchState.searchTerm$.value; }\n get searchType(): string { return this.searchState.searchType$.value; }\n\n private searchTerm$$: Subscription;\n private searchType$$: Subscription;\n private searchDisabled$$: Subscription;\n\n constructor(\n @Self() private component: SearchBarComponent,\n private searchState: SearchState\n ) {}\n\n ngOnInit() {\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe((searchTerm: string) => {\n if (searchTerm !== undefined && searchTerm !== null) {\n this.component.setTerm(searchTerm);\n }\n });\n\n this.searchType$$ = this.searchState.searchType$.subscribe((searchType: string) => {\n if (searchType !== undefined && searchType !== null) {\n this.component.setSearchType(searchType);\n }\n });\n\n this.searchDisabled$$ = this.searchState.searchDisabled$.subscribe((searchDisabled: boolean) => {\n this.component.disabled = searchDisabled;\n });\n }\n\n ngOnDestroy() {\n this.searchTerm$$.unsubscribe();\n this.searchType$$.unsubscribe();\n this.searchDisabled$$.unsubscribe();\n }\n\n @HostListener('searchTermChange', ['$event'])\n onSearchTermChange(searchTerm?: string) {\n if (searchTerm !== this.searchTerm) {\n this.searchState.setSearchTerm(searchTerm);\n }\n }\n\n @HostListener('searchTypeChange', ['$event'])\n onSearchTypeChange(searchType?: string) {\n if (searchType !== this.searchType) {\n this.searchState.setSearchType(searchType);\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { IgoSearchModule } from '@igo2/geo';\n\nimport { SearchBarBindingDirective } from './search-bar-binding.directive';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [IgoSearchModule],\n declarations: [SearchBarBindingDirective],\n exports: [SearchBarBindingDirective],\n})\nexport class IgoAppSearchBarModule {}\n","<div *ngIf=\"(!store || store.stateView.empty) && (debouncedEmpty$ | async)\" style=\"margin: 10px;\">\n <section class=\"mat-typography\">\n <h4><strong>{{ 'igo.integration.searchResultsTool.noResults' | translate }}</strong></h4>\n <p><strong>{{ 'igo.integration.searchResultsTool.doSearch' | translate }}</strong></p>\n <div [innerHTML]=\"'igo.integration.searchResultsTool.examples' | translate | sanitizeHtml\"></div>\n</section>\n</div>\n\n<igo-flexible\n *ngIf=\"(debouncedEmpty$ | async) === false\"\n #topPanel\n initial=\"100%\"\n initialMobile=\"100%\"\n collapsed=\"calc(100% - 58px)\"\n collapsedMobile=\"calc(100% - 58px)\"\n expanded=\"60%\"\n expandedMobile=\"60%\"\n [state]=\"(feature$ | async) ? topPanelState : 'initial'\">\n\n <div class=\"igo-content\">\n <igo-search-results\n [store]=\"store\"\n [showIcons]=\"showIcons\"\n [term]=\"term\"\n [termSplitter]=\"termSplitter\"\n [settingsChange$]=\"settingsChange$\"\n placeholder=\"false\"\n (resultFocus)=\"onResultFocus($event)\"\n (resultSelect)=\"onResultSelect($event)\"\n (resultUnfocus)=\"onResultUnfocus($event)\"\n (resultMouseenter)=\"onResultFocus($event)\"\n (resultMouseleave)=\"onResultUnfocus($event)\"\n (moreResults)=\"onSearch($event)\"\n [map]=\"map\">\n <ng-template #igoSearchItemToolbar let-result=\"result\">\n <igo-search-add-button\n [map]=\"map\"\n [store]=\"store\"\n [stores]=\"stores\"\n [layer]=\"result\"\n [saveSearchResultInLayer]=\"saveSearchResultInLayer\">\n </igo-search-add-button>\n </ng-template>\n </igo-search-results>\n </div>\n\n <div igoFlexibleFill class=\"igo-content\">\n <igo-panel [title]=\"featureTitle\" *ngIf=\"feature$ | async\" (click)=\"toggleTopPanel($event)\" [cursorPointer]=\"true\">\n\n <button\n mat-icon-button\n panelLeftButton\n class=\"igo-icon-button\"\n (click)=\"toggleTopPanel()\">\n <mat-icon [svgIcon]=\"(topPanelState$ | async) === 'collapsed' ? 'arrow-up' : 'arrow-down'\"></mat-icon>\n </button>\n\n <button\n *ngIf=\"feature.geometry\"\n mat-icon-button\n panelRightButton\n class=\"igo-icon-button\"\n [matTooltip]=\"((isSelectedResultOutOfView$ | async) ? 'igo.integration.searchResultsTool.zoomOnFeatureTooltipOutOfView' : 'igo.integration.searchResultsTool.zoomOnFeatureTooltip') | translate\"\n matTooltipShowDelay=\"500\"\n (click)=\"zoomToFeatureExtent()\">\n <mat-icon\n [matBadge]=\"(isSelectedResultOutOfView$ | async) ? '!' : ''\"\n matBadgeColor=\"accent\"\n matBadgeSize=\"small\"\n [matBadgeHidden]=\"(isSelectedResultOutOfView$ | async)===false\" \n svgIcon=\"magnify-plus-outline\"></mat-icon>\n </button>\n\n <igo-feature-details\n igoFeatureDetailsDirective\n [feature]=\"feature$ | async\"\n [map]=\"map\"\n [toolbox]=\"toolState.toolbox\"\n (routingEvent)=\"getRoute()\">\n </igo-feature-details>\n </igo-panel>\n </div>\n\n</igo-flexible>\n","import {\n Component,\n ChangeDetectionStrategy,\n Input,\n OnInit,\n ElementRef,\n OnDestroy\n} from '@angular/core';\nimport { Observable, BehaviorSubject, Subscription, combineLatest } from 'rxjs';\nimport { debounceTime, map } from 'rxjs/operators';\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\nimport olFeature from 'ol/Feature';\nimport olPoint from 'ol/geom/Point';\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\n\nimport pointOnFeature from '@turf/point-on-feature';\nimport * as olProj from 'ol/proj';\nimport { ConfigService } from '@igo2/core';\n\nimport {\n EntityStore,\n ToolComponent,\n FlexibleState,\n getEntityTitle,\n FlexibleComponent,\n EntityState\n} from '@igo2/common';\n\nimport {\n FEATURE,\n Feature,\n FeatureMotion,\n SearchResult,\n IgoMap,\n moveToOlFeatures,\n Research,\n featuresAreTooDeepInView,\n featureToOl,\n featureFromOl,\n getCommonVectorStyle,\n getCommonVectorSelectedStyle,\n computeOlFeaturesExtent,\n featuresAreOutOfView,\n roundCoordTo,\n FeatureStore\n} from '@igo2/geo';\n\nimport { MapState } from '../../map/map.state';\n\nimport { SearchState } from '../search.state';\nimport { ToolState } from '../../tool/tool.state';\nimport { DirectionState } from '../../directions/directions.state';\n\n/**\n * Tool to browse the search results\n */\n@ToolComponent({\n name: 'searchResults',\n title: 'igo.integration.tools.searchResults',\n icon: 'magnify'\n})\n@Component({\n selector: 'igo-search-results-tool',\n templateUrl: './search-results-tool.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SearchResultsToolComponent implements OnInit, OnDestroy {\n /**\n * to show hide results icons\n */\n @Input() showIcons: boolean = true;\n\n /**\n * Determine the top panel default state\n */\n @Input() topPanelStateDefault: string = 'expanded';\n\n private hasFeatureEmphasisOnSelection: boolean = false;\n public saveSearchResultInLayer: boolean = false;\n\n private showResultsGeometries$$: Subscription;\n private getRoute$$: Subscription;\n private shownResultsGeometries: Feature[] = [];\n private shownResultsEmphasisGeometries: Feature[] = [];\n private focusedResult$: BehaviorSubject<SearchResult> = new BehaviorSubject(\n undefined\n );\n public isSelectedResultOutOfView$ = new BehaviorSubject(false);\n private isSelectedResultOutOfView$$: Subscription;\n private abstractFocusedResult: Feature;\n private abstractSelectedResult: Feature;\n\n public debouncedEmpty$ :BehaviorSubject<boolean> = new BehaviorSubject(true);\n private debouncedEmpty$$: Subscription;\n\n /**\n * Store holding the search results\n * @internal\n */\n get store(): EntityStore<SearchResult> {\n return this.searchState.store;\n }\n\n /**\n * Map to display the results on\n * @internal\n */\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n get featureTitle(): string {\n return this.feature ? getEntityTitle(this.feature) : undefined;\n }\n\n get feature$(): Observable<Feature> {\n return this.store.stateView\n .firstBy$((e) => e.state.focused)\n .pipe(\n map(\n (element) =>\n (this.feature = element\n ? (element.entity.data as Feature)\n : undefined)\n )\n );\n }\n\n public feature: Feature;\n\n public term = '';\n private searchTerm$$: Subscription;\n\n public settingsChange$ = new BehaviorSubject<boolean>(undefined);\n\n public topPanelState$ = new BehaviorSubject<FlexibleState>('initial');\n private topPanelState$$: Subscription;\n\n @Input()\n set topPanelState(value: FlexibleState) {\n this.topPanelState$.next(value);\n }\n get topPanelState(): FlexibleState {\n return this.topPanelState$.value;\n }\n\n get termSplitter(): string {\n return this.searchState.searchTermSplitter$.value;\n }\n\n private format = new olFormatGeoJSON();\n\n get stores(): FeatureStore<Feature>[] {\n return this.searchState.searchLayerStores;\n }\n\n constructor(\n private mapState: MapState,\n private searchState: SearchState,\n private elRef: ElementRef,\n public toolState: ToolState,\n private directionState: DirectionState,\n configService: ConfigService\n ) {\n this.hasFeatureEmphasisOnSelection = configService.getConfig(\n 'hasFeatureEmphasisOnSelection'\n );\n this.saveSearchResultInLayer = configService.getConfig(\n 'saveSearchResultInLayer'\n );\n }\n\n ngOnInit() {\n this.searchTerm$$ = this.searchState.searchTerm$.subscribe(\n (searchTerm: string) => {\n if (searchTerm !== undefined && searchTerm !== null && searchTerm !== '') {\n this.term = searchTerm;\n this.debouncedEmpty$.next(false);\n } else if (searchTerm === '') {\n this.debouncedEmpty$.next(true);\n }\n }\n );\n\n for (const res of this.store.stateView.all$().value) {\n if (this.store.state.get(res.entity).selected === true) {\n this.topPanelState = 'expanded';\n }\n }\n\n this.searchState.searchSettingsChange$.subscribe(() => {\n this.settingsChange$.next(true);\n });\n\n this.topPanelState$$ = this.topPanelState$.subscribe(() => {\n const igoList = this.computeElementRef()[0];\n const selected = this.computeElementRef()[1];\n if (selected) {\n setTimeout(() => {\n // To be sure the flexible component has been displayed yet\n if (!this.isScrolledIntoView(igoList, selected)) {\n this.adjustTopPanel(igoList, selected);\n }\n }, FlexibleComponent.transitionTime + 50);\n }\n });\n\n if (this.hasFeatureEmphasisOnSelection) {\n if (!this.searchState.focusedOrResolution$$) {\n this.searchState.focusedOrResolution$$ = combineLatest([\n this.focusedResult$,\n this.map.viewController.resolution$\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\n this.buildResultEmphasis(bunch[0], 'focused')\n );\n }\n\n if (!this.searchState.selectedOrResolution$$) {\n this.searchState.selectedOrResolution$$ = combineLatest([\n this.searchState.selectedResult$,\n this.map.viewController.resolution$\n ]).subscribe((bunch: [SearchResult<Feature>, number]) =>\n this.buildResultEmphasis(bunch[0], 'selected')\n );\n }\n }\n this.monitorResultOutOfView();\n\n this.showResultsGeometries$$ = combineLatest([\n this.searchState.searchResultsGeometryEnabled$,\n this.store.stateView.all$(),\n this.focusedResult$,\n this.searchState.selectedResult$,\n this.searchState.searchTerm$,\n this.map.viewController.resolution$\n ]).subscribe((bunch: [boolean, { entity: SearchResult, state: EntityState }[], SearchResult, SearchResult, string, number]) => {\n\n const searchResultsGeometryEnabled = bunch[0];\n const searchResults = bunch[1];\n\n if (this.hasFeatureEmphasisOnSelection) {\n this.clearFeatureEmphasis('shown');\n }\n this.shownResultsGeometries.map(result => this.map.queryResultsOverlay.removeFeature(result));\n const featureToHandleGeom = searchResults\n .filter(result =>\n result.entity.meta.dataType === FEATURE &&\n result.entity.data.geometry &&\n !result.state.selected &&\n !result.state.focused);\n\n featureToHandleGeom.map(result => {\n if (searchResultsGeometryEnabled) {\n result.entity.data.meta.style =\n getCommonVectorStyle(\n Object.assign(\n {},\n { feature: result.entity.data as Feature | olFeature<OlGeometry> },\n this.searchState.searchOverlayStyle,\n result.entity.style?.base ? result.entity.style.base : {}\n ));\n this.shownResultsGeometries.push(result.entity.data as Feature);\n this.map.queryResultsOverlay.addFeature(result.entity.data as Feature, FeatureMotion.None);\n if (this.hasFeatureEmphasisOnSelection) {\n this.buildResultEmphasis(result.entity as SearchResult<Feature>, 'shown');\n }\n }\n });\n });\n\n this.debouncedEmpty$$ = this.store.stateView.empty$.pipe(debounceTime(1500)).subscribe(empty => this.debouncedEmpty$.next(empty));\n }\n\n private monitorResultOutOfView() {\n this.isSelectedResultOutOfView$$ = combineLatest([\n this.map.viewController.state$,\n this.searchState.selectedResult$\n ])\n .pipe(debounceTime(100))\n .subscribe((bunch) => {\n const selectedResult = bunch[1] as SearchResult<Feature>;\n if (!selectedResult) {\n this.isSelectedResultOutOfView$.next(false);\n return;\n }\n if (selectedResult.data.geometry) {\n const selectedOlFeature = featureToOl(\n selectedResult.data,\n this.map.projection\n );\n const selectedOlFeatureExtent = computeOlFeaturesExtent(this.map, [\n selectedOlFeature\n ]);\n this.isSelectedResultOutOfView$.next(\n featuresAreOutOfView(this.map, selectedOlFeatureExtent)\n );\n }\n });\n }\n\n private buildResultEmphasis(\n result: SearchResult<Feature>,\n trigger: 'selected' | 'focused' | 'shown' | undefined\n ) {\n if (trigger !== 'shown') {\n this.clearFeatureEmphasis(trigger);\n }\n if (!result || !result.data.geometry) {\n return;\n }\n const myOlFeature = featureToOl(result.data, this.map.projection);\n const olGeometry = myOlFeature.getGeometry();\n if (featuresAreTooDeepInView(this.map, olGeometry.getExtent() as [number, number, number, number], 0.0025)) {\n const extent = olGeometry.getExtent();\n const x = extent[0] + (extent[2] - extent[0]) / 2;\n const y = extent[1] + (extent[3] - extent[1]) / 2;\n const feature1 = new olFeature({\n name: `${trigger}AbstractResult'`,\n geometry: new olPoint([x, y])\n });\n const abstractResult = featureFromOl(feature1, this.map.projection);\n\n let computedStyle;\n let zIndexOffset = 0;\n\n switch (trigger) {\n case 'focused':\n computedStyle = getCommonVectorSelectedStyle(\n Object.assign({},\n { feature: abstractResult },\n this.searchState.searchOverlayStyleFocus,\n result.style?.focus ? result.style.focus : {}));\n zIndexOffset = 2;\n break;\n case 'shown':\n computedStyle = getCommonVectorStyle(Object.assign({},\n { feature: abstractResult },\n this.searchState.searchOverlayStyle,\n result.style?.base ? result.style.base : {}));\n break;\n case 'selected':\n computedStyle = getCommonVectorSelectedStyle(\n Object.assign({},\n { feature: abstractResult },\n this.searchState.searchOverlayStyleSelection,\n result.style?.selection ? result.style.selection : {}));\n zIndexOffset = 1;\n break;\n }\n abstractResult.meta.style = computedStyle;\n abstractResult.meta.style.setZIndex(2000 + zIndexOffset);\n this.map.searchResultsOverlay.addFeature(abstractResult, FeatureMotion.None);\n if (trigger === 'focused') {\n this.abstractFocusedResult = abstractResult;\n }\n if (trigger === 'selected') {\n this.abstractSelectedResult = abstractResult;\n }\n if (trigger === 'shown') {\n this.shownResultsEmphasisGeometries.push(abstractResult);\n }\n } else {\n this.clearFeatureEmphasis(trigger);\n }\n }\n\n private clearFeatureEmphasis(trigger: 'selected' | 'focused' | 'shown') {\n if (trigger === 'focused' && this.abstractFocusedResult) {\n this.map.searchResultsOverlay.removeFeature(this.abstractFocusedResult);\n this.abstractFocusedResult = undefined;\n }\n if (trigger === 'selected' && this.abstractSelectedResult) {\n this.map.searchResultsOverlay.removeFeature(this.abstractSelectedResult);\n this.abstractSelectedResult = undefined;\n }\n if (trigger === 'shown') {\n this.shownResultsEmphasisGeometries.map(shownResult => this.map.searchResultsOverlay.removeFeature(shownResult));\n this.shownResultsEmphasisGeometries = [];\n }\n }\n\n ngOnDestroy() {\n this.topPanelState$$.unsubscribe();\n this.searchTerm$$.unsubscribe();\n if (this.isSelectedResultOutOfView$$) {\n this.isSelectedResultOutOfView$$.unsubscribe();\n }\n if (this.showResultsGeometries$$) {\n this.showResultsGeometries$$.unsubscribe();\n }\n if (this.getRoute$$) {\n this.getRoute$$.unsubscribe();\n }\n if (this.debouncedEmpty$$) {\n this.debouncedEmpty$$.unsubscribe();\n }\n }\n\n /**\n * Try to add a feature to the map when it's being focused\n * @internal\n * @param result A search result that could be a feature\n */\n onResultFocus(result: SearchResult) {\n this.focusedResult$.next(result);\n if (result.meta.dataType === FEATURE && result.data.geometry) {\n result.data.meta.style = getCommonVectorSelectedStyle(\n Object.assign({},\n { feature: result.data as Feature | olFeature<OlGeometry> },\n this.searchState.searchOverlayStyleFocus,\n result.style?.focus ? result.style.focus : {}));\n\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\n if (feature) {\n feature.setStyle(result.data.meta.style);\n return;\n }\n this.map.searchResultsOverlay.addFeature(result.data as Feature, FeatureMotion.None);\n }\n }\n\n onResultUnfocus(result: SearchResult) {\n this.focusedResult$.next(undefined);\n if (result.meta.dataType !== FEATURE) {\n return;\n }\n\n if (this.store.state.get(result).selected === true) {\n const feature = this.map.searchResultsOverlay.dataSource.ol.getFeatureById(result.meta.id);\n if (feature) {\n const style = getCommonVectorSelectedStyle(\n Object.assign({},\n { feature: result.data as Feature | olFeature<OlGeometry> },\n this.searchState.searchOverlayStyleFocus,\n result.style?.focus ? result.style.focus : {}));\n feature.setStyle(style);\n }\n return;\n }\n this.map.searchResultsOverlay.removeFeature(result.data as Feature);\n }\n\n /**\n * Try to add a feature to the map when it's being selected\n * @internal\n * @param result A search result that could be a feature or some layer options\n */\n onResultSelect(result: SearchResult) {\n this.map.searchResultsOverlay.dataSource.ol.clear();\n this.tryAddFeatureToMap(result);\n this.searchState.setSelectedResult(result);\n\n if (this.topPanelState === 'initial') {\n if (this.topPanelStateDefault !== 'collapsed') {\n this.topPanelState = 'expanded';\n } else {\n this.topPanelState = 'collapsed';\n }\n }\n\n if (this.topPanelState === 'expanded') {\n const igoList = this.computeElementRef()[0];\n const selected = this.computeElementRef()[1];\n if (!this.isScrolledIntoView(igoList, selected)) {\n this.adjustTopPanel(igoList, selected);\n }\n }\n }\n\n onSearch(event: { research: Research; results: SearchResult[] }) {\n const results = event.results;\n const newResults = this.store.entities$.value\n .filter((result: SearchResult) => result.source !== event.research.source)\n .concat(results);\n\n this.store.load(newResults);\n\n for (const res of this.store.all()) {\n if (\n this.store.state.get(res).focused === true &&\n this.store.state.get(res).selected !== true\n ) {\n this.store.state.update(res, { focused: false }, true);\n }\n }\n\n setTimeout(() => {\n const igoList = this.elRef.nativeElement.querySelector('igo-list');\n let moreResults;\n event.research.request.subscribe((source) => {\n if (!source[0] || !source[0].source) {\n moreResults = null;\n } else if (source[0].source.getId() === 'icherche') {\n moreResults = igoList.querySelector('.icherche .moreResults');\n } else if (source[0].source.getId() === 'ilayer') {\n moreResults = igoList.querySelector('.ilayer .moreResults');\n } else if (source[0].source.getId() === 'nominatim') {\n moreResults = igoList.querySelector('.nominatim .moreResults');\n } else {\n moreResults = igoList.querySelector('.' + source[0].source.getId() + ' .moreResults');\n }\n\n if (\n moreResults !== null &&\n !this.isScrolledIntoView(igoList, moreResults)\n ) {\n igoList.scrollTop =\n moreResults.offsetTop +\n moreResults.offsetHeight -\n igoList.clientHeight;\n }\n });\n }, 250);\n }\n\n computeElementRef() {\n const items = document.getElementsByTagName('igo-search-results-item');\n const igoList = this.elRef.nativeElement.getElementsByTagName(\n 'igo-list'\n )[0];\n let selectedItem;\n // eslint-disable-next-line\n for (let i = 0; i < items.length; i++) {\n if (items[i].className.includes('igo-list-item-selected')) {\n selectedItem = items[i];\n }\n }\n return [igoList, selectedItem];\n }\n\n adjustTopPanel(elemSource, elem) {\n if (!this.isScrolledIntoView(elemSource, elem)) {\n elemSource.scrollTop =\n elem.offsetTop +\n elem.children[0].offsetHeight -\n elemSource.clientHeight;\n }\n }\n\n toggleTopPanel(event?: MouseEvent) {\n if(event && ((event.target as any)?.className !== 'igo-panel-title')) {\n return;\n } else {\n if (this.topPanelState === 'expanded') {\n this.topPanelState = 'collapsed';\n } else {\n this.topPanelState = 'expanded';\n }\n }\n }\n\n zoomToFeatureExtent() {\n if (this.feature.geometry) {\n const localOlFeature = this.format.readFeature(this.feature, {\n dataProjection: this.feature.projection,\n featureProjection: this.map.projection\n });\n moveToOlFeatures(this.map, [localOlFeature], FeatureMotion.Zoom);\n }\n }\n\n /**\n * Try to add a feature to the map overlay\n * @param result A search result that could be a feature\n */\n private tryAddFeatureToMap(result: SearchResult) {\n if (result.meta.dataType !== FEATURE) {\n return undefined;\n }\n const feature = (result as SearchResult<Feature>).data;\n\n // Somethimes features have no geometry. It happens with some GetFeatureInfo\n if (!feature.geometry) {\n return;\n }\n\n feature.meta.style = getCommonVectorSelectedStyle(\n Object.assign({},\n { feature },\n this.searchState.searchOverlayStyleSelection,\n result.style?.selection ? result.style.selection : {}));\n\n this.map.searchResultsOverlay.addFeature(feature);\n }\n\n isScrolledIntoView(elemSource, elem) {\n const padding = 6;\n const docViewTop = elemSource.scrollTop;\n const docViewBottom = docViewTop + elemSource.clientHeight;\n\n const elemTop = elem.offsetTop;\n const elemBottom = elemTop + elem.clientHeight + padding;\n return elemBottom <= docViewBottom && elemTop >= docViewTop;\n }\n\n getRoute() {\n this.toolState.toolbox.activateTool('directions');\n this.directionState.stopsStore.clearStops();\n setTimeout(() => {\n let routingCoordLoaded = false;\n if (this.getRoute$$) { this.getRoute$$.unsubscribe(); }\n this.getRoute$$ = this.directionState.stopsStore.storeInitialized$.subscribe((init: boolean) => {\n if (this.directionState.stopsStore.storeInitialized$.value && !routingCoordLoaded) {\n routingCoordLoaded = true;\n const stop = this.directionState.stopsStore.all().find((e) => e.position === 1);\n let coord;\n if (this.feature.geometry) {\n if (this.feature.geometry.type === 'Point') {\n coord = [this.feature.geometry.coordinates[0], this.feature.geometry.coordinates[1]];\n } else {\n const point = pointOnFeature(this.feature.geometry);\n coord = [point.geometry.coordinates[0], point.geometry.coordinates[1]];\n }\n }\n stop.text = this.featureTitle;\n stop.coordinates = coord;\n this.directionState.stopsStore.update(stop);\n if (this.map.geolocationController.position$.value) {\n const currentPos = this.map.geolocationController.position$.value;\n const stop = this.directionState.stopsStore.all().find((e) => e.position === 0);\n const currentCoord = olProj.transform(currentPos.position, currentPos.projection, 'EPSG:4326');\n const coord: [number,number] = roundCoordTo([currentCoord[0], currentCoord[1]], 6);\n stop.text = coord.join(',');\n stop.coordinates = coord;\n this.directionState.stopsStore.update(stop);\n }\n\n }\n });\n }, 250);\n }\n}\n","import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatBadgeModule } from '@angular/material/badge';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { IgoFlexibleModule, IgoCustomHtmlModule, IgoPanelModule } from '@igo2/common';\nimport {\n IgoFeatureModule,\n IgoSearchModule,\n IgoFeatureDetailsModule\n} from '@igo2/geo';\n\nimport { SearchResultsToolComponent } from './search-results-tool.component';\n\n/**\n * @ignore\n */\n@NgModule({\n imports: [\n CommonModule,\n MatIconModule,\n MatBadgeModule,\n MatTooltipModule,\n MatButtonModule,\n IgoLanguageModule,\n IgoFeatureModule,\n IgoSearchModule,\n IgoFlexibleModule,\n IgoPanelModule,\n IgoFeatureDetailsModule,\n IgoCustomHtmlModule\n ],\n declarations: [SearchResultsToolComponent],\n exports: [SearchResultsToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppSearchResultsToolModule {}\n","import { NgModule } from '@angular/core';\n\nimport { IgoAppSearchBarModule } from './search-bar/search-bar.module';\nimport { IgoAppSearchResultsToolModule } from './search-results-tool/search-results-tool.module';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [\n IgoAppSearchBarModule,\n IgoAppSearchResultsToolModule\n ],\n})\nexport class IgoAppSearchModule {}\n","import { Component } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\n\n@ToolComponent({\n name: 'ogcFilter',\n title: 'igo.integration.tools.ogcFilter',\n icon: 'filter'\n})\n@Component({\n selector: 'igo-ogc-filter-tool',\n templateUrl: './ogc-filter-tool.component.html'\n})\nexport class OgcFilterToolComponent {\n constructor() {}\n}\n","<igo-ogc-filterable-list igoOgcFilterableListBinding></igo-ogc-filterable-list>\n\n\n","import { Component } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\n\n@ToolComponent({\n name: 'timeFilter',\n title: 'igo.integration.tools.timeFilter',\n icon: 'history'\n})\n@Component({\n selector: 'igo-time-filter-tool',\n templateUrl: './time-filter-tool.component.html'\n})\nexport class TimeFilterToolComponent {\n constructor() {}\n}\n","<igo-time-filter-list igoTimeFilterListBinding></igo-time-filter-list>\n","<igo-panel>\n <igo-spatial-filter-type\n [store]=\"spatialListStore\"\n [selectedQueryType]=\"queryType\"\n [zone]=\"zone\"\n [layers]=\"activeLayers\"\n (eventType)=\"getOutputType($event)\"\n (eventQueryType)=\"getOutputQueryType($event)\"\n (zoneChange)=\"onZoneChange($event)\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (bufferChange)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\">\n </igo-spatial-filter-type>\n\n <igo-spatial-filter-item\n [type]=\"type\"\n [queryType]=\"queryType\"\n [map]=\"map\"\n [zone]=\"zone\"\n [loading]=\"loading\"\n [store]=\"store\"\n [layers]=\"activeLayers\"\n [allLayers]=\"layers\"\n [thematicLength]=\"thematicLength\"\n (radiusEvent)=\"buffer = $event\"\n (bufferEvent)=\"buffer = $event\"\n (measureUnitChange)=\"measureUnit = $event\"\n (freehandControl)=\"freehandDrawIsActive = $event\"\n (drawZoneEvent)=\"zone = $event\"\n (zoneWithBufferChange)=\"onZoneChange($event, true)\"\n (itemTypeChange)=\"itemType = $event\"\n (thematicChange)=\"thematics = $event\"\n (toggleSearch)=\"getOutputToggleSearch()\"\n (clearButtonEvent)=\"clearMap()\"\n (clearSearchEvent)=\"getOutputClearSearch()\"\n (export)=\"activateExportTool()\"\n (openWorkspace)=\"activateWorkspace()\"\n (entityChange)=\"activateWorkspace($event)\">\n </igo-spatial-filter-item>\n</igo-panel>\n\n<igo-panel>\n <ng-container *ngIf=\"selectedFeature$ | async as feature\">\n <igo-feature-details [feature]=\"feature\"></igo-feature-details>\n </ng-container>\n</igo-panel>","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';\nimport { MatIconRegistry } from '@angular/material/icon';\nimport { Observable, forkJoin, Subject } from 'rxjs';\nimport { tap, take, takeUntil } from 'rxjs/operators';\n\nimport {\n IgoMap,\n DataSourceService,\n LayerService,\n Feature,\n moveToOlFeatures,\n FeatureMotion,\n ClusterDataSource,\n featureToOl,\n DataSource,\n QueryableDataSourceOptions,\n SpatialFilterService,\n SpatialFilterType,\n SpatialFilterItemType,\n SpatialFilterQueryType,\n SpatialFilterThematic,\n Layer,\n VectorLayer,\n createOverlayMarkerStyle,\n ExportOptions,\n MeasureLengthUnit\n} from '@igo2/geo';\nimport { EntityStore, ToolComponent } from '@igo2/common';\nimport olFormatGeoJSON from 'ol/format/GeoJSON';\nimport olSourceVector from 'ol/source/Vector';\nimport olSourceCluster from 'ol/source/Cluster';\nimport type { default as OlGeometry } from 'ol/geom/Geometry';\nimport { BehaviorSubject } from 'rxjs';\nimport { MapState } from '../../map/map.state';\nimport { ImportExportMode, ImportExportState } from './../../import-export/import-export.state';\nimport * as olstyle from 'ol/style';\nimport { MessageService, LanguageService } from '@igo2/core';\nimport { ToolState } from '../../tool/tool.state';\nimport { WorkspaceState } from '../../workspace/workspace.state';\nimport { EventsKey } from 'ol/events';\n\n/**\n * Tool to apply spatial filter\n */\n@ToolComponent({\n name: 'spatialFilter',\n title: 'igo.integration.tools.spatialFilter',\n icon: 'selection-marker'\n})\n/**\n * Spatial Filter Type\n */\n@Component({\n selector: 'igo-spatial-filter-tool',\n templateUrl: './spatial-filter-tool.component.html',\n styleUrls: ['./spatial-filter-tool.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SpatialFilterToolComponent implements OnInit, OnDestroy {\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n @Input() type: SpatialFilterType;\n @Input() itemType: SpatialFilterItemType = SpatialFilterItemType.Address;\n @Input() freehandDrawIsActive: boolean;\n\n public layers: Layer[] = [];\n public activeLayers: Layer[] = [];\n\n public queryType: SpatialFilterQueryType;\n public thematics: SpatialFilterThematic[];\n public zone: Feature;\n public zoneWithBuffer: Feature;\n public buffer = 0;\n\n public iterator = 1;\n\n public selectedFeature$: BehaviorSubject<Feature> = new BehaviorSubject(\n undefined\n );\n\n private format = new olFormatGeoJSON();\n\n public store: EntityStore<Feature> = new EntityStore<Feature>([]); // Store to print results at the end\n\n public spatialListStore: EntityStore<Feature> = new EntityStore<Feature>([]);\n\n public loading = false;\n\n public thematicLength = 0;\n\n public measureUnit: MeasureLengthUnit = MeasureLengthUnit.Meters;\n private unsubscribe$ = new Subject<void>();\n\n private moveendKey: EventsKey;\n\n public defaultStyle: olstyle.Style | ((feature, resolution) => olstyle.Style);\n\n constructor(\n private matIconRegistry: MatIconRegistry,\n private spatialFilterService: SpatialFilterService,\n private dataSourceService: DataSourceService,\n private layerService: LayerService,\n private mapState: MapState,\n private messageService: MessageService,\n private languageService: LanguageService,\n private importExportState: ImportExportState,\n private toolState: ToolState,\n private workspaceState: WorkspaceState,\n private cdRef: ChangeDetectorRef\n ) {}\n\n ngOnInit() {\n for (const layer of this.map.layers) {\n if (layer.title && layer.title.includes(this.languageService.translate.instant('igo.geo.spatialFilter.spatialFilter'))) {\n this.layers.push(layer);\n }\n }\n }\n\n ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n getOutputType(event: SpatialFilterType) {\n this.type = event;\n this.queryType = undefined;\n }\n\n getOutputQueryType(event: SpatialFilterQueryType) {\n this.queryType = event;\n if (this.queryType) {\n this.loadFilterList();\n }\n }\n\n activateExportTool() {\n const ids = [];\n const re = new RegExp('^Zone \\\\d+');\n for (const layer of this.layers) {\n if (!layer.title.match(re)) {\n ids.push(layer.id);\n }\n }\n this.importExportState.setMode(ImportExportMode.export);\n this.importExportState.setsExportOptions({ layers: ids } as ExportOptions);\n this.toolState.toolbox.activateTool('importExport');\n }\n\n activateWorkspace(record?) {\n let layerToOpenWks;\n this.workspaceState.store.entities$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n if (!record && this.activeLayers.length && this.workspaceState.store.all().length > 1) {\n if (this.itemType === SpatialFilterItemType.Thematics) {\n for (const thematic of this.thematics) {\n if (!thematic.zeroResults) {\n layerToOpenWks = this.activeLayers.find(layer => layer.title.includes(thematic.name + ' ' + this.iterator.toString()));\n break;\n }\n }\n } else {\n const title = 'Adresses ' + this.iterator.toString();\n this.activeLayers.forEach((layer) => {\n if (layer.title.includes(title)) {\n layerToOpenWks = layer;\n }\n });\n }\n\n if (layerToOpenWks) {\n this.workspaceState.workspacePanelExpanded = true;\n this.workspaceState.setActiveWorkspaceById(layerToOpenWks.id);\n }\n } else if (record && this.activeLayers.length && this.workspaceState.store.all().length > 1) {\n this.selectWorkspaceEntity(record);\n this.moveendKey = this.map.ol.on('moveend', () => {\n this.selectWorkspaceEntity(record);\n });\n }\n });\n }\n\n private selectWorkspaceEntity(record) {\n this.workspaceState.store.all().forEach(workspace => {\n workspace.entityStore.state.updateAll({selected: false});\n if (workspace.title.includes(record.added[0].meta.title)) {\n this.workspaceState.setActiveWorkspaceById(workspace.id);\n workspace.entityStore.state.updateMany(record.added, {selected: true});\n }\n });\n }\n\n private loadFilterList() {\n this.spatialFilterService\n .loadFilterList(this.queryType)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe((features: Feature[]) => {\n features.sort((a, b) => {\n if (a.properties.nom < b.properties.nom) {\n return -1;\n }\n if (a.properties.nom > b.properties.nom) {\n return 1;\n }\n return 0;\n });\n this.spatialListStore.clear();\n this.spatialListStore.load(features);\n });\n }\n\n getOutputToggleSearch() {\n this.loadThematics();\n }\n\n getOutputClearSearch() {\n this.zone = undefined;\n this.queryType = undefined;\n }\n\n clearMap() {\n this.map.removeLayers(this.layers);\n this.layers = [];\n this.activeLayers = [];\n this.thematicLength = 0;\n this.iterator = 1;\n if (this.type === SpatialFilterType.Predefined) {\n this.zone = undefined;\n this.queryType = undefined;\n }\n }\n\n private loadThematics() {\n this.loading = true;\n let zeroResults = true;\n let thematics;\n if (this.buffer === 0 || this.type === SpatialFilterType.Point) {\n this.tryAddFeaturesToMap([this.zone]);\n }\n if (this.itemType !== SpatialFilterItemType.Thematics) {\n const theme: SpatialFilterThematic = {\n name: ''\n };\n thematics = [theme];\n } else {\n thematics = this.thematics;\n }\n if (this.measureUnit === MeasureLengthUnit.Kilometers && this.type !== SpatialFilterType.Point) {\n this.buffer = this.buffer * 1000;\n }\n if (this.type === SpatialFilterType.Polygon) {\n this.buffer = 0; // to avoid buffer enter a second time in terrAPI\n }\n\n const observables$: Observable<Feature[]>[] = [];\n thematics.forEach(thematic => {\n observables$.push(\n this.spatialFilterService\n .loadFilterItem(\n this.zone,\n this.itemType,\n this.queryType,\n thematic,\n this.buffer\n )\n .pipe(\n tap((features: Feature[]) => {\n this.store.insertMany(features);\n const featuresPoint: Feature[] = [];\n const featuresLinePoly: Feature[] = [];\n let idPoint;\n let idLinePoly;\n features.forEach(feature => {\n if (feature.geometry.type === 'Point') {\n feature.properties.longitude = feature.geometry.coordinates[0];\n feature.properties.latitude = feature.geometry.coordinates[1];\n featuresPoint.push(feature);\n idPoint = feature.meta.id;\n } else {\n featuresLinePoly.push(feature);\n idLinePoly = feature.meta.id;\n }\n });\n\n this.tryAddPointToMap(featuresPoint, idPoint);\n this.tryAddLayerToMap(featuresLinePoly, idLinePoly);\n if (features.length) {\n zeroResults = false;\n this.thematicLength += 1;\n thematic.zeroResults = false;\n this.cdRef.detectChanges();\n } else {\n thematic.zeroResults = true;\n }\n\n if (features.length >= 10000) {\n this.messageService.alert(\n 'igo.geo.spatialFilter.maxSizeAlert',\n 'igo.geo.spatialFilter.warning',\n { timeOut: 10000 }\n );\n }\n })\n )\n );\n });\n\n forkJoin(observables$).pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n this.loading = false;\n if (zeroResults) {\n this.messageService.alert(\n 'igo.geo.spatialFilter.zeroResults',\n 'igo.geo.spatialFilter.warning',\n { timeOut: 10000 }\n );\n }\n });\n }\n\n onZoneChange(feature: Feature, buffer?: boolean) {\n this.zone = feature;\n if (feature) {\n buffer ? this.tryAddFeaturesToMap([feature], true) : this.tryAddFeaturesToMap([feature]);\n this.zoomToFeatureExtent(feature);\n }\n }\n\n /**\n * Try to add zone feature to the map overlay\n */\n public tryAddFeaturesToMap(features: Feature[], buffer?: boolean) {\n let i = 1;\n for (const feature of features) {\n if (this.type === SpatialFilterType.Predefined) {\n for (const layer of this.layers) {\n if (\n layer.options._internal &&\n layer.options._internal.code === feature.properties.code &&\n !buffer\n ) {\n if (!layer.title?.startsWith('Zone')) {\n const index = this.layers.indexOf(layer);\n this.layers.splice(index, 1);\n }\n return;\n }\n if (layer.title?.startsWith('Zone')) {\n this.activeLayers = [];\n const index = this.layers.indexOf(layer);\n this.layers.splice(index, 1);\n this.map.removeLayer(layer);\n }\n }\n } else {\n if (buffer) {\n for (const layer of this.activeLayers) {\n if (this.activeLayers.length === 1 && layer.title?.startsWith('Zone')) {\n const index = this.layers.indexOf(layer);\n this.layers.splice(index, 1);\n this.map.removeLayer(layer);\n }\n }\n }\n this.activeLayers = [];\n }\n for (const layer of this.layers) {\n if (layer.title?.startsWith('Zone')) {\n i++;\n }\n }\n this.defaultStyle = (_feature, resolution) => {\n const coordinates = (features[0] as any).coordinates;\n return new olstyle.Style({\n image: new olstyle.Circle({\n radius: coordinates\n ? this.buffer /\n Math.cos((Math.PI / 180) * coordinates[1]) /\n resolution\n : undefined,\n fill: new olstyle.Fill({\n color: 'rgba(200, 200, 20, 0.2)'\n }),\n stroke: new olstyle.Stroke({\n width: 1,\n color: 'orange'\n })\n }),\n stroke: new olstyle.Stroke({\n width: 1,\n color: 'orange'\n }),\n fill: new olstyle.Fill({\n color: 'rgba(200, 200, 20, 0.2)'\n })\n });\n };\n this.dataSourceService\n .createAsyncDataSource({\n type: 'vector',\n queryable: true\n } as QueryableDataSourceOptions)\n .pipe(take(1))\n .subscribe((dataSource: DataSource) => {\n const olLayer = this.layerService.createLayer({\n isIgoInternalLayer: true,\n title: ('Zone ' + i + ' - ' + this.languageService.translate.instant(\n 'igo.geo.spatialFilter.spatialFilter'\n )) as string,\n workspace: { enabled: true },\n _internal: {\n code:\n this.type === SpatialFilterType.Predefined\n ? feature.properties.code\n : undefined\n },\n source: dataSource,\n visible: true\n }) as VectorLayer;\n const featuresOl = features.map(f => {\n return featureToOl(f, this.map.projection);\n });\n if (this.type !== SpatialFilterType.Predefined) {\n const type = this.type === SpatialFilterType.Point ? 'Cercle' : 'Polygone';\n featuresOl[0].set('nom', 'Zone', true);\n featuresOl[0].set('type', type, true);\n }\n const ol = dataSource.ol as olSourceVector<OlGeometry> | olSourceCluster;\n ol.addFeatures(featuresOl);\n olLayer.ol.setStyle(this.defaultStyle);\n this.map.addLayer(olLayer);\n this.layers.push(olLayer);\n this.activeLayers.push(olLayer);\n this.cdRef.detectChanges();\n });\n }\n }\n\n /**\n * Try to add point features to the map\n * Necessary to create clusters\n */\n private tryAddPointToMap(features: Feature[], id) {\n let i = 1;\n if (features.length) {\n if (this.map === undefined) {\n return;\n }\n for (const layer of this.layers) {\n if (layer.title?.startsWith(features[0].meta.title)) {\n i++;\n }\n }\n this.dataSourceService\n .createAsyncDataSource({\n type: 'cluster',\n id,\n queryable: true,\n distance: 120,\n meta: {\n title: 'Cluster'\n }\n } as QueryableDataSourceOptions)\n .pipe(take(1))\n .subscribe((dataSource: ClusterDataSource) => {\n const icon = features[0].meta.icon;\n let style: olstyle.Style;\n if (!icon) {\n style = createOverlayMarkerStyle();\n } else {\n style = this.createSvgIcon(icon) || createOverlayMarkerStyle();\n }\n\n const olLayer = this.layerService.createLayer({\n isIgoInternalLayer: true,\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\n 'igo.geo.spatialFilter.spatialFilter'\n )) as string,\n source: dataSource,\n visible: true,\n style\n });\n\n const featuresOl = features.map(feature => {\n return featureToOl(feature, this.map.projection);\n });\n const ol = dataSource.ol as olSourceCluster;\n ol.getSource().addFeatures(featuresOl);\n if (this.layers.find(layer => layer.id === olLayer.id)) {\n this.map.removeLayer(\n this.layers.find(layer => layer.id === olLayer.id)\n );\n i = i - 1;\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\n 'igo.geo.spatialFilter.spatialFilter'\n )) as string;\n olLayer.options.title = olLayer.title;\n }\n this.iterator = i;\n this.map.addLayer(olLayer);\n this.layers.push(olLayer);\n this.pushLayer(olLayer);\n this.cdRef.detectChanges();\n });\n }\n }\n\n private createSvgIcon(icon): olstyle.Style {\n let style: olstyle.Style;\n this.matIconRegistry.getNamedSvgIcon(icon).subscribe(svgObj => {\n const xmlSerializer = new XMLSerializer();\n svgObj.setAttribute('width', '30');\n svgObj.setAttribute('height', '30');\n svgObj.setAttribute('fill', 'rgba(0, 128, 255)');\n svgObj.setAttribute('stroke', 'white');\n const svg = xmlSerializer.serializeToString(svgObj);\n style = new olstyle.Style({\n image: new olstyle.Icon({\n src: 'data:image/svg+xml;utf8,' + svg\n })\n });\n });\n return style;\n }\n /**\n * Try to add line or polygon features to the map\n */\n private tryAddLayerToMap(features: Feature[], id) {\n let i = 1;\n if (features.length) {\n if (this.map === undefined) {\n return;\n }\n for (const layer of this.layers) {\n if (layer.title?.startsWith(features[0].meta.title)) {\n i++;\n }\n }\n this.dataSourceService\n .createAsyncDataSource({\n type: 'vector',\n id,\n queryable: true\n } as QueryableDataSourceOptions)\n .pipe(take(1))\n .subscribe((dataSource: DataSource) => {\n const olLayer = this.layerService.createLayer({\n isIgoInternalLayer: true,\n title: (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\n 'igo.geo.spatialFilter.spatialFilter'\n )) as string,\n source: dataSource,\n visible: true\n });\n const featuresOl = features.map(feature => {\n return featureToOl(feature, this.map.projection);\n });\n const ol = dataSource.ol as olSourceVector<OlGeometry>;\n ol.addFeatures(featuresOl);\n if (this.layers.find(layer => layer.id === olLayer.id)) {\n this.map.removeLayer(\n this.layers.find(layer => layer.id === olLayer.id)\n );\n i = i - 1;\n olLayer.title = (features[0].meta.title + ' ' + i + ' - ' + this.languageService.translate.instant(\n 'igo.geo.spatialFilter.spatialFilter'\n )) as string;\n olLayer.options.title = olLayer.title;\n }\n this.map.addLayer(olLayer);\n this.layers.push(olLayer);\n this.pushLayer(olLayer);\n this.cdRef.detectChanges();\n });\n }\n }\n\n zoomToFeatureExtent(feature) {\n if (feature) {\n const olFeature = this.format.readFeature(feature, {\n dataProjection: feature.projection,\n featureProjection: this.map.projection\n });\n moveToOlFeatures(this.map, [olFeature], FeatureMotion.Zoom);\n }\n }\n\n pushLayer(layer) {\n for (const lay of this.activeLayers) {\n if (lay.id === layer.id) {\n return;\n }\n }\n\n this.activeLayers.push(layer);\n }\n}\n","import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\nexport function toolSlideInOut(\n speed = '300ms',\n type = 'ease-in-out'\n): AnimationTriggerMetadata {\n return trigger('toolSlideInOut', [\n state(\n 'enter',\n style({\n transform: 'translateX(100%)'\n })\n ),\n transition('void => enter', animate(speed + ' ' + type))\n ]);\n}\n","import { Component } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport { MapState } from '../../map/map.state';\nimport { IgoMap, Layer } from '@igo2/geo';\nimport { toolSlideInOut } from './active-time-filter-tool.animation';\n\n@ToolComponent({\n name: 'activeTimeFilter',\n title: 'igo.integration.tools.timeFilter',\n icon: 'history',\n parent: 'mapTools'\n})\n@Component({\n selector: 'igo-active-time-filter-tool',\n templateUrl: './active-time-filter-tool.component.html',\n animations: [toolSlideInOut()]\n})\nexport class ActiveTimeFilterToolComponent {\n\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n get layer(): Layer {\n for (const lay of this.map.layers) {\n if (lay.options.active === true) {\n return lay;\n }\n }\n return;\n }\n\n public animate = 'enter';\n\n constructor(public mapState: MapState) {}\n}\n","<igo-time-filter-item\n [map]=\"map\"\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\">\n</igo-time-filter-item>\n","import {\n trigger,\n state,\n style,\n transition,\n animate,\n AnimationTriggerMetadata\n} from '@angular/animations';\n\nexport function toolSlideInOut(\n speed = '300ms',\n type = 'ease-in-out'\n): AnimationTriggerMetadata {\n return trigger('toolSlideInOut', [\n state(\n 'enter',\n style({\n transform: 'translateX(100%)'\n })\n ),\n transition('void => enter', animate(speed + ' ' + type))\n ]);\n}\n","import { Component } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport { MapState } from '../../map/map.state';\nimport { Layer, IgoMap } from '@igo2/geo';\n\nimport { toolSlideInOut } from './active-ogc-filter-tool.animation';\n\n@ToolComponent({\n name: 'activeOgcFilter',\n title: 'igo.integration.tools.ogcFilter',\n icon: 'filter',\n parent: 'mapTools'\n})\n@Component({\n selector: 'igo-active-ogc-filter-tool',\n templateUrl: './active-ogc-filter-tool.component.html',\n animations: [toolSlideInOut()]\n})\nexport class ActiveOgcFilterToolComponent {\n\n get map(): IgoMap {\n return this.mapState.map;\n }\n\n get layer(): Layer {\n for (const lay of this.map.layers) {\n if (lay.options.active === true) {\n return lay;\n }\n }\n return;\n }\n\n public animate = 'enter';\n\n constructor(public mapState: MapState) {}\n}\n","<igo-ogc-filterable-item\n [map]=\"map\"\n [layer]=\"layer\"\n [header]=\"false\"\n [@toolSlideInOut]=\"animate\">\n</igo-ogc-filterable-item>\n\n\n","import {\n NgModule,\n ModuleWithProviders,\n CUSTOM_ELEMENTS_SCHEMA\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { IgoFilterModule, IgoQueryModule } from '@igo2/geo';\nimport { OgcFilterToolComponent } from './ogc-filter-tool/ogc-filter-tool.component';\nimport { TimeFilterToolComponent } from './time-filter-tool/time-filter-tool.component';\nimport { SpatialFilterToolComponent } from './spatial-filter-tool/spatial-filter-tool.component';\nimport { ActiveTimeFilterToolComponent } from './active-time-filter-tool/active-time-filter-tool.component';\nimport { ActiveOgcFilterToolComponent } from './active-ogc-filter-tool/active-ogc-filter-tool.component';\n\n@NgModule({\n imports: [IgoFilterModule, IgoQueryModule, CommonModule],\n declarations: [\n OgcFilterToolComponent,\n ActiveOgcFilterToolComponent,\n TimeFilterToolComponent,\n ActiveTimeFilterToolComponent,\n SpatialFilterToolComponent\n ],\n exports: [\n OgcFilterToolComponent,\n ActiveOgcFilterToolComponent,\n TimeFilterToolComponent,\n ActiveTimeFilterToolComponent,\n SpatialFilterToolComponent\n ],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppFilterModule {\n static forRoot(): ModuleWithProviders<IgoAppFilterModule> {\n return {\n ngModule: IgoAppFilterModule,\n providers: []\n };\n }\n}\n","<p></p>\n<igo-interactive-tour\n mat-raised-button\n tourToStart=\"global\"\n menuIsOpen=true\n styleButton=\"raised\"\n [discoverTitleInLocale$]=\"discoverTitleInLocale$\">\n</igo-interactive-tour>\n\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length === 1\"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n (click)=\"openGuide()\">\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\n <mat-icon svgIcon=\"file-document\"></mat-icon>\n</button>\n\n<button *ngIf=\"auth.authenticated && trainingGuideURLs && trainingGuideURLs.length > 1\"\n class=\"training-guide-button\"\n mat-raised-button\n tooltip-position=\"below\"\n matTooltipShowDelay=\"500\"\n [disabled]=\"loading\"\n [matTooltip]=\"'igo.integration.aboutTool.trainingGuideTooltip' | translate\"\n [matMenuTriggerFor]=\"menu\">\n <span>{{'igo.integration.aboutTool.trainingGuide' | translate}}</span>\n <mat-icon svgIcon=\"file-document\"></mat-icon>\n</button>\n\n<mat-menu #menu=\"matMenu\">\n <button *ngFor=\"let guide of trainingGuideURLs\" mat-menu-item (click)=\"openGuide(guide)\">{{formatFileName(guide)}}</button>\n</mat-menu>\n\n<igo-custom-html *ngIf=\"headerHtml !== ''\" class=\"mat-typography\"\n [html]=\"headerHtml | translate\">\n</igo-custom-html>\n\n<igo-custom-html class=\"mat-typography\"\n [html]=\"html | translate: {version: version}\">\n</igo-custom-html>\n","import { ChangeDetectorRef, Component, Input, OnInit } from '@angular/core';\n\nimport { ToolComponent } from '@igo2/common';\nimport { ConfigService, LanguageService, Version } from '@igo2/core';\nimport { of } from 'rxjs';\nimport type { Observable } from 'rxjs';\nimport { AuthService } from '@igo2/auth';\nimport { HttpClient } from '@angular/common/http';\n\n@ToolComponent({\n name: 'about',\n title: 'igo.integration.tools.about',\n icon: 'help-circle'\n})\n@Component({\n selector: 'igo-about-tool',\n templateUrl: './about-tool.component.html',\n styleUrls: ['./about-tool.component.scss']\n})\nexport class AboutToolComponent implements OnInit {\n @Input()\n get headerHtml() {\n return this._headerHtml;\n }\n set headerHtml(value: string) {\n this._headerHtml = Array.isArray(value) ? value.join('\\n') : value;\n }\n\n @Input()\n get html() {\n return this._html;\n }\n set html(value: string) {\n this._html = Array.isArray(value) ? value.join('\\n') : value;\n }\n private _discoverTitleInLocale: string = 'IGO';\n public discoverTitleInLocale$: Observable<string> = of(this._discoverTitleInLocale);\n\n @Input()\n get discoverTitleInLocale() {\n return this._discoverTitleInLocale;\n }\n set discoverTitleInLocale(value: string) {\n this._discoverTitleInLocale = value;\n this.discoverTitleInLocale$ = of(value);\n }\n\n @Input() trainingGuideURLs;\n\n public version: Version;\n private _html: string = 'igo.integration.aboutTool.html';\n private _headerHtml: string = this.languageService.translate.instant('igo.integration.aboutTool.headerHtml');\n\n private baseUrlProfil;\n private baseUrlGuide;\n\n public loading = false;\n\n constructor(\n public configService: ConfigService,\n public auth: AuthService,\n private http: HttpClient,\n private cdRef: ChangeDetectorRef,\n private languageService: LanguageService) {\n this.version = configService.getConfig('version');\n this.baseUrlProfil = configService.getConfig('storage.url');\n this.baseUrlGuide = configService.getConfig('depot.url') + configService.getConfig('depot.guideUrl');\n }\n\n ngOnInit() {\n if (this.auth.authenticated && this.configService.getConfig('context.url')) {\n this.http.get(this.baseUrlProfil).subscribe((profil) => {\n const recast = profil as any;\n this.trainingGuideURLs = recast.guides;\n this.cdRef.detectChanges();\n });\n } else if (\n this.auth.authenticated &&\n !this.configService.getConfig('context.url') &&\n this.configService.getConfig('depot.trainingGuides')) {\n this.trainingGuideURLs = this.configService.getConfig('depot.trainingGuides');\n }\n }\n\n openGuide(guide?) {\n this.loading = true;\n const url = guide ?\n this.baseUrlGuide + guide + '?' :\n this.baseUrlGuide + this.trainingGuideURLs[0] + '?';\n this.http\n .get(url, {\n responseType: 'blob'\n })\n .subscribe(() => {\n this.loading = false;\n window.open(url, '_blank');\n this.cdRef.detectChanges();\n });\n }\n\n formatFileName(name: string) {\n name = name.split('_').join(' ');\n const index = name.indexOf('.');\n name = name.slice(0, index);\n return name;\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n CUSTOM_ELEMENTS_SCHEMA\n} from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenuModule } from '@angular/material/menu';\n\nimport { IgoLanguageModule } from '@igo2/core';\nimport { IgoCustomHtmlModule, IgoInteractiveTourModule } from '@igo2/common';\n\nimport { AboutToolComponent } from './about-tool/about-tool.component';\n\n@NgModule({\n imports: [\n IgoLanguageModule,\n IgoCustomHtmlModule,\n MatButtonModule,\n MatTooltipModule,\n MatIconModule,\n MatMenuModule,\n IgoInteractiveTourModule,\n CommonModule\n ],\n declarations: [AboutToolComponent],\n exports: [AboutToolComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA]\n})\nexport class IgoAppAboutModule {\n static forRoot(): ModuleWithProviders<IgoAppAboutModule> {\n return {\n ngModule: IgoAppAboutModule,\n providers: []\n };\n }\n}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoAppStorageModule {}\n","import { NgModule } from '@angular/core';\n\nimport { IgoAppAnalyticsModule } from './analytics/analytics.module';\nimport { IgoAppContextModule } from './context/context.module';\nimport { IgoAppCatalogModule } from './catalog/catalog.module';\nimport { IgoAppDirectionsModule } from './directions/directions.module';\nimport { IgoAppDrawModule } from './draw/draw.module';\nimport { IgoAppWorkspaceModule } from './workspace/workspace.module';\nimport { IgoAppImportExportModule } from './import-export/import-export.module';\nimport { IgoAppMapModule } from './map/map.module';\nimport { IgoAppMeasureModule } from './measure/measure.module';\nimport { IgoAppPrintModule } from './print/print.module';\nimport { IgoAppSearchModule } from './search/search.module';\nimport { IgoAppFilterModule } from './filter/filter.module';\nimport { IgoAppAboutModule } from './about/about.module';\nimport { IgoAppStorageModule } from './storage/storage.module';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: [\n IgoAppStorageModule,\n IgoAppAnalyticsModule,\n IgoAppContextModule,\n IgoAppCatalogModule,\n IgoAppDirectionsModule,\n IgoAppDrawModule,\n IgoAppWorkspaceModule,\n IgoAppImportExportModule,\n IgoAppMapModule,\n IgoAppMeasureModule,\n IgoAppPrintModule,\n IgoAppSearchModule,\n IgoAppFilterModule,\n IgoAppAboutModule\n ]\n})\nexport class IgoIntegrationModule {}\n","import { NgModule } from '@angular/core';\n\n@NgModule({\n imports: [],\n declarations: [],\n exports: []\n})\nexport class IgoAppToolModule {}\n","import { Injectable } from '@angular/core';\nimport { skip } from 'rxjs/operators';\n\nimport { AnalyticsService } from '@igo2/core';\nimport { AuthService } from '@igo2/auth';\n\nimport { ContextState } from '../context/context.state';\nimport { SearchState } from '../search/search.state';\nimport { ToolState } from '../tool/tool.state';\nimport { MapState } from '../map/map.state';\n\nimport {\n Layer,\n WMTSDataSourceOptions,\n WMSDataSourceOptions,\n ArcGISRestDataSourceOptions,\n TileArcGISRestDataSourceOptions,\n ArcGISRestImageDataSourceOptions\n} from '@igo2/geo';\n\n\n/**\n * Service that holds the state of the search module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class AnalyticsListenerService {\n /**\n * Toolbox that holds main tools\n */\n\n constructor(\n private analyticsService: AnalyticsService,\n private authService: AuthService,\n private contextState: ContextState,\n private searchState: SearchState,\n private toolState: ToolState,\n private mapState: MapState\n ) {}\n\n listen() {\n this.listenUser();\n this.listenContext();\n this.listenTool();\n this.listenSearch();\n this.listenLayer();\n }\n\n listenUser() {\n this.authService.authenticate$.subscribe(() => {\n const tokenDecoded = this.authService.decodeToken() || {};\n if (tokenDecoded.user) {\n this.authService\n .getProfils()\n .subscribe(profils =>\n this.analyticsService.setUser(tokenDecoded.user, profils.profils)\n );\n } else {\n this.analyticsService.setUser();\n }\n });\n }\n\n listenContext() {\n this.contextState.context$.subscribe(context => {\n if (context) {\n this.analyticsService.trackEvent('context', 'activateContext', context.id || context.uri);\n }\n });\n }\n\n listenTool() {\n this.toolState.toolbox.activeTool$.pipe(skip(1)).subscribe(tool => {\n if (tool) {\n this.analyticsService.trackEvent('tool', 'activateTool', tool.name);\n }\n });\n }\n\n listenSearch() {\n this.searchState.searchTerm$.pipe(skip(1)).subscribe((searchTerm: string) => {\n if (searchTerm !== undefined && searchTerm !== null) {\n this.analyticsService.trackSearch(searchTerm, this.searchState.store.count);\n }\n });\n }\n\n /**\n * Listener for adding layers to the map\n */\n listenLayer(){\n this.mapState.map.layersAddedByClick$.subscribe((layers: Layer[]) => {\n if(!layers){\n return;\n }\n\n layers.map(layer => {\n let wmsParams: string;\n let wmtsParams: string;\n let xyzParams: string;\n let restParams: string;\n\n switch (layer.dataSource.options.type){\n case 'wms':\n const wmsDataSource = layer.dataSource.options as WMSDataSourceOptions;\n const wmsLayerName: string = wmsDataSource.params.LAYERS;\n const wmsUrl: string = wmsDataSource.url;\n const wmsType: string = wmsDataSource.type;\n wmsParams = JSON.stringify({layer: wmsLayerName, type: wmsType, url: wmsUrl});\n break;\n case 'wmts':\n const wmtsDataSource = layer.dataSource.options as WMTSDataSourceOptions;\n const wmtsLayerName: string = wmtsDataSource.layer;\n const wmtsUrl: string = wmtsDataSource.url;\n const matrixSet: string = wmtsDataSource.matrixSet;\n const wmtsType: string = wmtsDataSource.type;\n wmtsParams = JSON.stringify({layer: wmtsLayerName, type: wmtsType, url: wmtsUrl, matrixSet});\n break;\n case 'arcgisrest':\n case 'tilearcgisrest':\n case 'imagearcgisrest':\n const restDataSource = layer.options.sourceOptions as ArcGISRestDataSourceOptions | TileArcGISRestDataSourceOptions\n | ArcGISRestImageDataSourceOptions;\n const restName: string = restDataSource.layer;\n const restUrl: string = restDataSource.url;\n const restType: string = restDataSource.type;\n restParams = JSON.stringify({layer: restName, type: restType, url: restUrl});\n break;\n case 'xyz':\n /* const xyzDataSource = layer.dataSource.options as XYZDataSourceOptions;\n const xyzName: string = layer.title;\n const xyzUrl: string = xyzDataSource.url;\n const xyzType: string = layer.dataSource.options.type;\n xyzParams = JSON.stringify({layer: xyzName, type: xyzType, url: xyzUrl});\n */\n // todo\n break;\n\n\n }\n this.analyticsService.trackLayer('layer', 'addLayer', wmsParams || wmtsParams || xyzParams || restParams);\n });\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { EntityStore } from '@igo2/common';\nimport { ConfigService } from '@igo2/core';\nimport { CapabilitiesService, CommonVectorStyleOptions, GeoPropertiesStrategy, PropertyTypeDetectorService, SearchResult } from '@igo2/geo';\nimport { MapState } from '../map/map.state';\n\n/**\n * Service that holds the state of the query module\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class QueryState {\n /**\n * Store that holds the query results\n */\n public store: EntityStore<SearchResult> = new EntityStore<SearchResult>([]);\n public queryOverlayStyle: CommonVectorStyleOptions = {};\n public queryOverlayStyleSelection: CommonVectorStyleOptions = {};\n public queryOverlayStyleFocus: CommonVectorStyleOptions = {};\n\n constructor(private configService: ConfigService,\n private propertyTypeDetectorService: PropertyTypeDetectorService,\n private capabilitiesService: CapabilitiesService,\n private mapState: MapState\n ) {\n const queryOverlayStyle = this.configService.getConfig('queryOverlayStyle') as {\n base?: CommonVectorStyleOptions,\n selection?: CommonVectorStyleOptions,\n focus?: CommonVectorStyleOptions\n };\n if (queryOverlayStyle) {\n this.queryOverlayStyle = queryOverlayStyle.base;\n this.queryOverlayStyleSelection = queryOverlayStyle.selection;\n this.queryOverlayStyleFocus = queryOverlayStyle.focus;\n }\n const geoPropertiesStrategy = new GeoPropertiesStrategy(\n { map: this.mapState.map },\n this.propertyTypeDetectorService,\n this.capabilitiesService);\n this.store.addStrategy(geoPropertiesStrategy, true);\n }\n}\n","/*\n * Public API Surface of tools\n */\n\nexport * from './lib/integration.module';\nexport * from './lib/about/about.module';\nexport * from './lib/analytics/analytics.module';\nexport * from './lib/storage/storage.module';\nexport * from './lib/context/context.module';\nexport * from './lib/catalog/catalog.module';\n\nexport * from './lib/directions/directions.module';\nexport * from './lib/draw/draw.module';\nexport * from './lib/workspace/workspace.module';\nexport * from './lib/filter/filter.module';\nexport * from './lib/import-export/import-export.module';\nexport * from './lib/map/map.module';\nexport * from './lib/measure/measure.module';\nexport * from './lib/print/print.module';\nexport * from './lib/search/search.module';\nexport * from './lib/tool/tool.module';\n\nexport * from './lib/about';\nexport * from './lib/analytics';\nexport * from './lib/context';\nexport * from './lib/catalog';\nexport * from './lib/directions';\nexport * from './lib/draw';\nexport * from './lib/workspace';\nexport * from './lib/filter';\nexport * from './lib/import-export';\nexport * from './lib/map';\nexport * from './lib/measure';\nexport * from './lib/print';\nexport * from './lib/search';\nexport * from './lib/tool';\nexport * from './lib/storage';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1","i2.ImportExportState","i1.ToolState","i2.MapState","i1.MapState","i2.LayerListToolState","i2.CatalogState","i3.ToolState","i4","i3.MapState","i2","i1.DirectionState","i3","i4.ContextState","i5","i1.DrawState","i1.StorageState","i1.FeatureActionsService","i2.WfsActionsService","i3.EditionActionsService","i1.WorkspaceState","i3.WorkspaceState","i2.ToolState","i4.ImportExportState","i3.ImportExportState","i1.LayerListToolState","i5.ImportExportState","i4.ToolState","olproj","GeoJSON","i2.MapProximityState","i1.MeasureState","i4.MapState","i2.SearchState","i4.DirectionState","i6.ToolState","i7.WorkspaceState","toolSlideInOut","i3.ContextState","i4.SearchState","i5.ToolState","i6.MapState"],"mappings":"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"}
|