@igo2/geo 17.0.0-next.4 → 17.0.0-next.6
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/assets/icons/cross_black_18px.svg +88 -88
- package/assets/icons/place_blue_36px.svg +55 -55
- package/assets/icons/place_green_36px.svg +55 -55
- package/assets/icons/place_red_36px.svg +55 -55
- package/assets/icons/place_yellow_36px.svg +55 -55
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +5 -5
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +1 -1
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +1 -1
- package/esm2022/lib/catalog/catalog-library/index.mjs +1 -1
- package/esm2022/lib/catalog/catalog.module.mjs +1 -1
- package/esm2022/lib/catalog/index.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
- package/esm2022/lib/catalog/shared/index.mjs +1 -1
- package/esm2022/lib/datasource/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasource.service.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +1 -1
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +3 -3
- package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +3 -3
- package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +3 -3
- package/esm2022/lib/directions/directions-results/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +1 -1
- package/esm2022/lib/directions/directions.component.mjs +3 -3
- package/esm2022/lib/directions/directions.module.mjs +1 -1
- package/esm2022/lib/directions/index.mjs +1 -1
- package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.service.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.utils.mjs +21 -21
- package/esm2022/lib/directions/shared/index.mjs +1 -1
- package/esm2022/lib/directions/shared/store.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
- package/esm2022/lib/download/download-button/index.mjs +1 -1
- package/esm2022/lib/download/download.module.mjs +1 -1
- package/esm2022/lib/download/index.mjs +1 -1
- package/esm2022/lib/download/shared/download.interface.mjs +1 -1
- package/esm2022/lib/download/shared/download.service.mjs +1 -1
- package/esm2022/lib/download/shared/index.mjs +1 -1
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +7 -4
- package/esm2022/lib/draw/draw/draw.component.mjs +4 -4
- package/esm2022/lib/draw/draw/draw.module.mjs +1 -1
- package/esm2022/lib/draw/drawingTool.module.mjs +1 -1
- package/esm2022/lib/draw/index.mjs +1 -1
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
- package/esm2022/lib/draw/shared/index.mjs +1 -1
- package/esm2022/lib/environment/environment.interface.mjs +1 -1
- package/esm2022/lib/environment/index.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +3 -3
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +1 -1
- package/esm2022/lib/feature/feature-details/index.mjs +1 -1
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +1 -1
- package/esm2022/lib/feature/feature.module.mjs +1 -1
- package/esm2022/lib/feature/index.mjs +1 -1
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.interfaces.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/index.mjs +1 -1
- package/esm2022/lib/feature/shared/store.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/search.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies.utils.mjs +1 -1
- package/esm2022/lib/filter/filter.module.mjs +1 -1
- package/esm2022/lib/filter/index.mjs +1 -1
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +7 -7
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +1 -1
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +3 -3
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +1 -1
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +1 -1
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.interface.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.mjs +1 -1
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +1 -1
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +3 -3
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +1 -1
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +7 -7
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +3 -3
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +1 -1
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +1 -1
- package/esm2022/lib/geo.module.mjs +1 -1
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +3 -3
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +3 -3
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +1 -1
- package/esm2022/lib/geometry/geometry-form-field/index.mjs +1 -1
- package/esm2022/lib/geometry/geometry.module.mjs +1 -1
- package/esm2022/lib/geometry/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +1 -1
- package/esm2022/lib/geometry/shared/index.mjs +1 -1
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
- package/esm2022/lib/import-export/export-button/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +3 -3
- package/esm2022/lib/import-export/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export.module.mjs +1 -1
- package/esm2022/lib/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +5 -56
- package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.service.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/index.mjs +1 -1
- package/esm2022/lib/layer/index.mjs +1 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +3 -3
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +3 -3
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +1 -1
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +1 -1
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +1 -1
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +1 -1
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +5 -4
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
- package/esm2022/lib/layer/layer.module.mjs +1 -1
- package/esm2022/lib/layer/shared/layer.service.mjs +6 -6
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +3 -3
- package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/tile-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/vector-watcher.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.animation.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +3 -3
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +1 -1
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +3 -3
- package/esm2022/lib/map/index.mjs +1 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +1 -1
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +1 -1
- package/esm2022/lib/map/map-center/map-center.component.mjs +1 -1
- package/esm2022/lib/map/map.module.mjs +1 -1
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +3 -3
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +3 -3
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +3 -3
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +1 -1
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +3 -3
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +1 -1
- package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
- package/esm2022/lib/map/shared/map.mjs +1 -1
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +1 -1
- package/esm2022/lib/map/shared/projection.service.mjs +1 -1
- package/esm2022/lib/map/shared/projection.utils.mjs +60 -1
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +1 -1
- package/esm2022/lib/map/utils/layer-watcher.mjs +1 -1
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +6 -6
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +3 -3
- package/esm2022/lib/measure/index.mjs +1 -1
- package/esm2022/lib/measure/measure.module.mjs +1 -1
- package/esm2022/lib/measure/measurer/index.mjs +1 -1
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +1 -1
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer.component.mjs +3 -3
- package/esm2022/lib/measure/measurer/measurer.module.mjs +1 -1
- package/esm2022/lib/measure/shared/index.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2022/lib/metadata/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +5 -5
- package/esm2022/lib/metadata/metadata.module.mjs +1 -1
- package/esm2022/lib/metadata/shared/index.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.service.mjs +1 -1
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +1 -1
- package/esm2022/lib/offline/geoDB/index.mjs +1 -1
- package/esm2022/lib/offline/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +1 -1
- package/esm2022/lib/offline/shared/geo-network.service.mjs +1 -1
- package/esm2022/lib/offline/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/index.mjs +1 -1
- package/esm2022/lib/overlay/overlay.module.mjs +1 -1
- package/esm2022/lib/overlay/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.service.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
- package/esm2022/lib/print/index.mjs +1 -1
- package/esm2022/lib/print/print/print.component.mjs +3 -3
- package/esm2022/lib/print/print-form/index.mjs +1 -1
- package/esm2022/lib/print/print-form/print-form.component.mjs +3 -3
- package/esm2022/lib/print/print.module.mjs +1 -1
- package/esm2022/lib/print/shared/geopdf.mjs +1 -1
- package/esm2022/lib/print/shared/index.mjs +1 -1
- package/esm2022/lib/print/shared/print.interface.mjs +1 -1
- package/esm2022/lib/print/shared/print.service.mjs +1 -1
- package/esm2022/lib/print/shared/print.type.mjs +1 -1
- package/esm2022/lib/query/index.mjs +1 -1
- package/esm2022/lib/query/query.module.mjs +1 -1
- package/esm2022/lib/query/shared/index.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2022/lib/query/shared/query.directive.mjs +1 -1
- package/esm2022/lib/query/shared/query.enums.mjs +1 -1
- package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2022/lib/query/shared/query.service.mjs +1 -1
- package/esm2022/lib/query/shared/query.utils.mjs +1 -1
- package/esm2022/lib/search/index.mjs +1 -1
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +3 -3
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +1 -1
- package/esm2022/lib/search/search-results/index.mjs +1 -1
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +5 -5
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results.module.mjs +1 -1
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +1 -1
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +3 -3
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +1 -1
- package/esm2022/lib/search/search.module.mjs +1 -1
- package/esm2022/lib/search/shared/index.mjs +1 -1
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +1 -1
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +1 -1
- package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.enums.mjs +1 -1
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.utils.mjs +2 -2
- package/esm2022/lib/search/shared/sources/cadastre.mjs +2 -2
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.mjs +2 -2
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche-icons.mjs +32 -0
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.mjs +8 -3
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/index.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.mjs +3 -3
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +3 -3
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.mjs +2 -2
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
- package/esm2022/lib/style/index.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/index.mjs +1 -1
- package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
- package/esm2022/lib/style/shared/feature/index.mjs +1 -1
- package/esm2022/lib/style/shared/font.enum.mjs +1 -1
- package/esm2022/lib/style/shared/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/index.mjs +1 -1
- package/esm2022/lib/style/shared/vector/vector-style.interface.mjs +1 -1
- package/esm2022/lib/style/style-list/index.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.interface.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.module.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.service.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/layer-button/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/shared/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
- package/esm2022/lib/style/style-service/draw-style.service.mjs +1 -1
- package/esm2022/lib/style/style-service/index.mjs +1 -1
- package/esm2022/lib/style/style-service/style.service.mjs +1 -1
- package/esm2022/lib/style/style.module.mjs +1 -1
- package/esm2022/lib/toast/index.mjs +1 -1
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +1 -1
- package/esm2022/lib/utils/googleLinks.mjs +1 -1
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/index.mjs +1 -1
- package/esm2022/lib/utils/osmLinks.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +1 -1
- package/esm2022/lib/wkt/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/wkt.service.mjs +15 -15
- package/esm2022/lib/wkt/wkt.module.mjs +1 -1
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +3 -3
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +1 -1
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2022/lib/workspace/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +3 -3
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +1 -1
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
- package/esm2022/lib/workspace/widgets/index.mjs +1 -1
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +1 -1
- package/esm2022/lib/workspace/widgets/widgets.mjs +1 -1
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +1 -1
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +1 -1
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +1 -1
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +1 -1
- package/esm2022/lib/workspace/workspace.module.mjs +1 -1
- package/esm2022/public_api.mjs +1 -1
- package/fesm2022/igo2-geo.mjs +307 -262
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/datasource/shared/datasources/arcgisrest-datasource.d.ts +2 -3
- package/lib/datasource/shared/datasources/cluster-datasource.interface.d.ts +2 -3
- package/lib/datasource/shared/datasources/datasource.d.ts +1 -2
- package/lib/datasource/shared/datasources/feature-datasource.d.ts +2 -3
- package/lib/datasource/shared/datasources/feature-datasource.interface.d.ts +2 -3
- package/lib/datasource/shared/datasources/websocket-datasource.d.ts +1 -2
- package/lib/datasource/shared/datasources/wfs-datasource.d.ts +2 -3
- package/lib/datasource/shared/datasources/wfs-datasource.interface.d.ts +1 -2
- package/lib/datasource/shared/datasources/wms-datasource.interface.d.ts +1 -2
- package/lib/directions/shared/directions.interface.d.ts +2 -9
- package/lib/draw/draw/draw-shorcuts.component.d.ts +2 -0
- package/lib/filter/shared/ogc-filter.interface.d.ts +1 -2
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -2
- package/lib/geometry/shared/controls/draw.d.ts +4 -4
- package/lib/geometry/shared/controls/slice.d.ts +4 -4
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +0 -2
- package/lib/layer/layer-list/layer-list.component.d.ts +2 -0
- package/lib/layer/shared/layers/vector-layer.d.ts +3 -4
- package/lib/layer/shared/layers/vector-layer.interface.d.ts +1 -2
- package/lib/map/shared/projection.utils.d.ts +11 -0
- package/lib/query/shared/query.interfaces.d.ts +1 -2
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/shared/search.interfaces.d.ts +12 -10
- package/lib/search/shared/sources/icherche-icons.d.ts +7 -0
- package/lib/style/shared/vector/conversion.utils.d.ts +2 -3
- package/lib/workspace/shared/edition-workspace.service.d.ts +2 -1
- package/locale/en.geo.json +818 -818
- package/locale/fr.geo.json +819 -819
- package/package.json +6 -6
- package/src/_index.scss +2 -2
- package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -22
- package/src/lib/catalog/catalog.theming.scss +5 -5
- package/src/lib/directions/directions-results/directions-results.theming.scss +10 -10
- package/src/lib/directions/directions.theming.scss +6 -6
- package/src/lib/draw/draw.theming.scss +32 -32
- package/src/lib/feature/feature-details/feature-details.theming.scss +16 -16
- package/src/lib/feature/feature.theming.scss +4 -4
- package/src/lib/measure/measure.theming.scss +5 -5
- package/src/lib/measure/measurer/measurer.theming.scss +26 -26
- package/src/lib/search/search-bar/search-bar.theming.scss +33 -33
- package/src/lib/search/search-results/search-results-item.theme.scss +20 -20
- package/src/lib/search/search.theming.scss +7 -7
- package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
- package/src/lib/workspace/workspace.theming.scss +6 -6
- package/style/style.css +2 -1
|
@@ -438,4 +438,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
438
438
|
providedIn: 'root'
|
|
439
439
|
}]
|
|
440
440
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.MapService }], propDecorators: { getArcgisOptions: [], getImageArcgisOptions: [], getTileArcgisOptions: [], getCapabilities: [] } });
|
|
441
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZixNQUFNLHNDQUFzQyxDQUFDO0FBSzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hGLE9BQU8s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QUFLLEVBQUUsRUFBRTtZQUMzRCxPQUFPO2dCQUNMLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2FBQ25CLENBQUM7UUFDSixDQUFDLENBQUM7WUFDQSx3RUFBd0U7YUFDdkUsTUFBTSxDQUNMLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdELEtBQUssQ0FDUixDQUFDO1FBRUosTUFBTSxhQUFhLEdBQWtCO1lBQ25DLGVBQWUsRUFBRSxZQUFZO1NBQ2IsQ0FBQztRQUVuQixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO3VHQWxoQlUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7QUFtRWxCO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUdDLFVBQVU7MkRBWVo7QUFLRDtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7OztvQ0FLQyxVQUFVO2dFQTJCWjtBQUtEO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUdDLFVBQVU7K0RBc0JaO0FBS0Q7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDOzs7b0NBS0MsVUFBVTswREE2Q1o7MkZBdE1VLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7d0dBa0VDLGdCQUFnQixNQW1CaEIscUJBQXFCLE1Bb0NyQixvQkFBb0IsTUE2QnBCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCBvbEF0dHJpYnV0aW9uIGZyb20gJ29sL2NvbnRyb2wvQXR0cmlidXRpb24nO1xyXG5pbXBvcnQgeyBFc3JpSlNPTiwgV01TQ2FwYWJpbGl0aWVzLCBXTVRTQ2FwYWJpbGl0aWVzIH0gZnJvbSAnb2wvZm9ybWF0JztcclxuaW1wb3J0ICogYXMgb2xwcm9qIGZyb20gJ29sL3Byb2onO1xyXG5pbXBvcnQgeyBvcHRpb25zRnJvbUNhcGFiaWxpdGllcyB9IGZyb20gJ29sL3NvdXJjZS9XTVRTLmpzJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENhY2hlYWJsZSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFRpbWVGaWx0ZXJTdHlsZSxcclxuICBUaW1lRmlsdGVyVHlwZVxyXG59IGZyb20gJy4uLy4uL2ZpbHRlci9zaGFyZWQvdGltZS1maWx0ZXIuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgSXRlbVN0eWxlT3B0aW9ucyxcclxuICBMZWdlbmRPcHRpb25zXHJcbn0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sZWdlbmQuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTWFwU2VydmljZSB9IGZyb20gJy4uLy4uL21hcC9zaGFyZWQvbWFwLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlIH0gZnJvbSAnLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xyXG5pbXBvcnQge1xyXG4gIFF1ZXJ5Rm9ybWF0LFxyXG4gIFF1ZXJ5Rm9ybWF0TWltZVR5cGVcclxufSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuZW51bXMnO1xyXG5pbXBvcnQgeyBFc3JpU3R5bGVHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9zdHlsZS9zaGFyZWQvZGF0YXNvdXJjZS9lc3JpLXN0eWxlLWdlbmVyYXRvcic7XHJcbmltcG9ydCB7XHJcbiAgVHlwZUNhcGFiaWxpdGllcyxcclxuICBUeXBlQ2FwYWJpbGl0aWVzU3RyaW5nc1xyXG59IGZyb20gJy4vY2FwYWJpbGl0aWVzLmludGVyZmFjZSc7XHJcbmltcG9ydCB7XHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcclxufSBmcm9tICcuL2RhdGFzb3VyY2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcGFiaWxpdGllc1NlcnZpY2Uge1xyXG4gIHByaXZhdGUgcGFyc2VycyA9IHtcclxuICAgIHdtczogbmV3IFdNU0NhcGFiaWxpdGllcygpLFxyXG4gICAgd210czogbmV3IFdNVFNDYXBhYmlsaXRpZXMoKSxcclxuICAgIGVzcmlKU09OOiBuZXcgRXNyaUpTT04oKVxyXG4gIH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBnZXRXTVNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxXTVNEYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgY29uc3QgdXJsID0gYmFzZU9wdGlvbnMudXJsO1xyXG4gICAgY29uc3QgdmVyc2lvbiA9IChiYXNlT3B0aW9ucy5wYXJhbXMgYXMgYW55KS5WRVJTSU9OO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmdldENhcGFiaWxpdGllcygnd21zJywgdXJsLCB2ZXJzaW9uKS5waXBlKFxyXG4gICAgICBtYXAoKGNhcGFiaWxpdGllczogYW55KSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllc1xyXG4gICAgICAgICAgPyB0aGlzLnBhcnNlV01TT3B0aW9ucyhiYXNlT3B0aW9ucywgY2FwYWJpbGl0aWVzKVxyXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0V01UU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxXTVRTRGF0YVNvdXJjZU9wdGlvbnM+IHtcclxuICAgIGNvbnN0IHVybCA9IGJhc2VPcHRpb25zLnVybDtcclxuICAgIGNvbnN0IHZlcnNpb24gPSBiYXNlT3B0aW9ucy52ZXJzaW9uO1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldENhcGFiaWxpdGllcygnd210cycsIHVybCwgdmVyc2lvbikucGlwZShcclxuICAgICAgbWFwKChjYXBhYmlsaXRpZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiBjYXBhYmlsaXRpZXNcclxuICAgICAgICAgID8gdGhpcy5wYXJzZVdNVFNPcHRpb25zKGJhc2VPcHRpb25zLCBjYXBhYmlsaXRpZXMpXHJcbiAgICAgICAgICA6IHVuZGVmaW5lZDtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gb3B0aW9ucztcclxuICB9XHJcblxyXG4gIGdldENhcnRvT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxDYXJ0b0RhdGFTb3VyY2VPcHRpb25zPiB7XHJcbiAgICBjb25zdCBiYXNlVXJsID1cclxuICAgICAgJ2h0dHBzOi8vJyArXHJcbiAgICAgIGJhc2VPcHRpb25zLmFjY291bnQgK1xyXG4gICAgICAnLmNhcnRvLmNvbS9hcGkvdjIvdml6LycgK1xyXG4gICAgICBiYXNlT3B0aW9ucy5tYXBJZCArXHJcbiAgICAgICcvdml6Lmpzb24nO1xyXG5cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmpzb25wKGJhc2VVcmwsICdjYWxsYmFjaycpXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoY2FydG9PcHRpb25zOiBhbnkpID0+XHJcbiAgICAgICAgICB0aGlzLnBhcnNlQ2FydG9PcHRpb25zKGJhc2VPcHRpb25zLCBjYXJ0b09wdGlvbnMpXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gIH1cclxuXHJcbiAgQENhY2hlYWJsZSh7XHJcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxyXG4gIH0pXHJcbiAgZ2V0QXJjZ2lzT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2VPcHRpb25zLnVybCArICcvJyArIGJhc2VPcHRpb25zLmxheWVyICsgJz9mPWpzb24nO1xyXG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKFxyXG4gICAgICAnYXJjZ2lzcmVzdCcsXHJcbiAgICAgIGJhc2VPcHRpb25zLnVybFxyXG4gICAgKTtcclxuICAgIGNvbnN0IGFyY2dpc09wdGlvbnMgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwpO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKFthcmNnaXNPcHRpb25zLCBzZXJ2aWNlQ2FwYWJpbGl0aWVzXSkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlQXJjZ2lzT3B0aW9ucyhiYXNlT3B0aW9ucywgcmVzWzBdLCByZXNbMV0pO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIEBDYWNoZWFibGUoe1xyXG4gICAgbWF4Q2FjaGVDb3VudDogMjBcclxuICB9KVxyXG4gIGdldEltYWdlQXJjZ2lzT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOlxyXG4gICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8XHJcbiAgICBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcclxuICA+IHtcclxuICAgIGNvbnN0IGJhc2VVcmwgPSBiYXNlT3B0aW9ucy51cmwgKyAnLycgKyBiYXNlT3B0aW9ucy5sYXllciArICc/Zj1qc29uJztcclxuICAgIGNvbnN0IGxlZ2VuZFVybCA9IGJhc2VPcHRpb25zLnVybCArICcvbGVnZW5kP2Y9anNvbic7XHJcbiAgICBjb25zdCBzZXJ2aWNlQ2FwYWJpbGl0aWVzID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoXHJcbiAgICAgICdpbWFnZWFyY2dpc3Jlc3QnLFxyXG4gICAgICBiYXNlT3B0aW9ucy51cmxcclxuICAgICk7XHJcbiAgICBjb25zdCBhcmNnaXNPcHRpb25zID0gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcclxuICAgIGNvbnN0IGxlZ2VuZCA9IHRoaXMuaHR0cC5nZXQobGVnZW5kVXJsKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMpLFxyXG4gICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZygnTm8gbGVnZW5kIGFzc29jaWF0ZWQgd2l0aCB0aGlzIEltYWdlIFNlcnZpY2UnKTtcclxuICAgICAgICByZXR1cm4gb2YoZXJyKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIGxlZ2VuZCwgc2VydmljZUNhcGFiaWxpdGllc10pLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZVRpbGVPckltYWdlQXJjZ2lzT3B0aW9ucyhcclxuICAgICAgICAgIGJhc2VPcHRpb25zLFxyXG4gICAgICAgICAgcmVzWzBdLFxyXG4gICAgICAgICAgcmVzWzFdLFxyXG4gICAgICAgICAgcmVzWzJdXHJcbiAgICAgICAgKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwXHJcbiAgfSlcclxuICBnZXRUaWxlQXJjZ2lzT3B0aW9ucyhcclxuICAgIGJhc2VPcHRpb25zOiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxcclxuICAgIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gID4ge1xyXG4gICAgY29uc3QgYmFzZVVybCA9IGJhc2VPcHRpb25zLnVybCArICcvJyArIGJhc2VPcHRpb25zLmxheWVyICsgJz9mPWpzb24nO1xyXG4gICAgY29uc3QgbGVnZW5kVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy9sZWdlbmQ/Zj1qc29uJztcclxuICAgIGNvbnN0IHNlcnZpY2VDYXBhYmlsaXRpZXMgPSB0aGlzLmdldENhcGFiaWxpdGllcyhcclxuICAgICAgJ3RpbGVhcmNnaXNyZXN0JyxcclxuICAgICAgYmFzZU9wdGlvbnMudXJsXHJcbiAgICApO1xyXG4gICAgY29uc3QgYXJjZ2lzT3B0aW9ucyA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCk7XHJcbiAgICBjb25zdCBsZWdlbmRJbmZvID0gdGhpcy5odHRwLmdldChsZWdlbmRVcmwpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBhbnkpID0+IHJlcyksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdObyBsZWdlbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgVGlsZSBTZXJ2aWNlJyk7XHJcbiAgICAgICAgcmV0dXJuIG9mKGVycik7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKFthcmNnaXNPcHRpb25zLCBsZWdlbmRJbmZvLCBzZXJ2aWNlQ2FwYWJpbGl0aWVzXSkucGlwZShcclxuICAgICAgbWFwKChyZXM6IGFueSkgPT5cclxuICAgICAgICB0aGlzLnBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKGJhc2VPcHRpb25zLCByZXNbMF0sIHJlc1sxXSwgcmVzWzJdKVxyXG4gICAgICApXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgQENhY2hlYWJsZSh7XHJcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxyXG4gIH0pXHJcbiAgZ2V0Q2FwYWJpbGl0aWVzKFxyXG4gICAgc2VydmljZTogVHlwZUNhcGFiaWxpdGllc1N0cmluZ3MsXHJcbiAgICBiYXNlVXJsOiBzdHJpbmcsXHJcbiAgICB2ZXJzaW9uPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKHtcclxuICAgICAgZnJvbU9iamVjdDoge1xyXG4gICAgICAgIHJlcXVlc3Q6ICdHZXRDYXBhYmlsaXRpZXMnLFxyXG4gICAgICAgIHNlcnZpY2U6IHNlcnZpY2UudG9VcHBlckNhc2UoKSxcclxuICAgICAgICB2ZXJzaW9uOiB2ZXJzaW9uIHx8ICcxLjMuMCcsXHJcbiAgICAgICAgX2k6ICd0cnVlJ1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICBsZXQgcmVxdWVzdDtcclxuICAgIGlmIChUeXBlQ2FwYWJpbGl0aWVzW3NlcnZpY2VdID09PSAnZXNyaUpTT04nKSB7XHJcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyAnP2Y9anNvbicpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCwge1xyXG4gICAgICAgIHBhcmFtcyxcclxuICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0J1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVxdWVzdC5waXBlKFxyXG4gICAgICBtYXAoKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChUeXBlQ2FwYWJpbGl0aWVzW3NlcnZpY2VdID09PSAnZXNyaUpTT04nKSB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzIGFzIG9iamVjdDtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgU3RyaW5nKHJlcykudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygnc2VydmljZWV4Y2VwdGlvbicpICYmXHJcbiAgICAgICAgICBTdHJpbmcocmVzKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdhY2Nlc3MgZGVuaWVkJylcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRocm93IHtcclxuICAgICAgICAgICAgZXJyb3I6IHtcclxuICAgICAgICAgICAgICBtZXNzYWdlOiAnU2VydmljZSBlcnJvciBnZXRDYXBhYmlsaXRpZXM6IEFjY2VzcyBpcyBkZW5pZWQnXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJldHVybiB0aGlzLnBhcnNlcnNbc2VydmljZV0ucmVhZChyZXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIGUuZXJyb3IgIT09ICd1bmRlZmluZWQnKSB7XHJcbiAgICAgICAgICBlLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRocm93IGU7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwYXJzZVdNU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBjYXBhYmlsaXRpZXM6IGFueVxyXG4gICk6IFdNU0RhdGFTb3VyY2VPcHRpb25zIHtcclxuICAgIGNvbnN0IGxheWVycyA9IChiYXNlT3B0aW9ucy5wYXJhbXMgYXMgYW55KS5MQVlFUlM7XHJcbiAgICBjb25zdCBsYXllciA9IHRoaXMuZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhcclxuICAgICAgY2FwYWJpbGl0aWVzLkNhcGFiaWxpdHkuTGF5ZXIsXHJcbiAgICAgIGxheWVyc1xyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoIWxheWVyKSB7XHJcbiAgICAgIHRocm93IHtcclxuICAgICAgICBlcnJvcjoge1xyXG4gICAgICAgICAgbWVzc2FnZTogJ0xheWVyIG5vdCBmb3VuZCdcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBtZXRhZGF0YSA9IGxheWVyLkRhdGFVUkwgPyBsYXllci5EYXRhVVJMWzBdIDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3QgYWJzdHJhY3QgPSBsYXllci5BYnN0cmFjdCA/IGxheWVyLkFic3RyYWN0IDogdW5kZWZpbmVkO1xyXG4gICAgY29uc3Qga2V5d29yZExpc3QgPSBsYXllci5LZXl3b3JkTGlzdCA/IGxheWVyLktleXdvcmRMaXN0IDogdW5kZWZpbmVkO1xyXG4gICAgbGV0IHF1ZXJ5YWJsZSA9IGxheWVyLnF1ZXJ5YWJsZTtcclxuICAgIGNvbnN0IHRpbWVGaWx0ZXIgPSB0aGlzLmdldFRpbWVGaWx0ZXIobGF5ZXIpO1xyXG4gICAgY29uc3QgdGltZUZpbHRlcmFibGUgPSB0aW1lRmlsdGVyICYmIE9iamVjdC5rZXlzKHRpbWVGaWx0ZXIpLmxlbmd0aCA+IDA7XHJcbiAgICBjb25zdCBsZWdlbmRPcHRpb25zID0gbGF5ZXIuU3R5bGUgPyB0aGlzLmdldFN0eWxlKGxheWVyLlN0eWxlKSA6IHVuZGVmaW5lZDtcclxuICAgIGxldCBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IHRydWU7XHJcbiAgICBpZiAobGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94KSB7XHJcbiAgICAgIGxheWVyLkVYX0dlb2dyYXBoaWNCb3VuZGluZ0JveC5mb3JFYWNoKChjb29yZCwgaW5kZXgpID0+IHtcclxuICAgICAgICBpZiAoaW5kZXggPCAyICYmIChjb29yZCA+IDE4MCB8fCBjb29yZCA8IC0xODApKSB7XHJcbiAgICAgICAgICBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoaW5kZXggPj0gMiAmJiAoY29vcmQgPiA5MCB8fCBjb29yZCA8IC05MCkpIHtcclxuICAgICAgICAgIGlzRXh0ZW50SW5HZW9ncmFwaGljID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlzRXh0ZW50SW5HZW9ncmFwaGljID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZXh0ZW50ID0gaXNFeHRlbnRJbkdlb2dyYXBoaWNcclxuICAgICAgPyBvbHByb2oudHJhbnNmb3JtRXh0ZW50KFxyXG4gICAgICAgICAgbGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94LFxyXG4gICAgICAgICAgJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgICB0aGlzLm1hcFNlcnZpY2UuZ2V0TWFwKCkucHJvamVjdGlvblxyXG4gICAgICAgIClcclxuICAgICAgOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgbGV0IHF1ZXJ5Rm9ybWF0OiBRdWVyeUZvcm1hdDtcclxuICAgIGNvbnN0IHF1ZXJ5Rm9ybWF0TWltZVR5cGVQcmlvcml0eSA9IFtcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HRU9KU09OLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdFT0pTT04yLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdNTDMsXHJcbiAgICAgIFF1ZXJ5Rm9ybWF0TWltZVR5cGUuR01MMixcclxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5KU09OLFxyXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkhUTUxcclxuICAgIF07XHJcblxyXG4gICAgZm9yIChjb25zdCBtaW1lVHlwZSBvZiBxdWVyeUZvcm1hdE1pbWVUeXBlUHJpb3JpdHkpIHtcclxuICAgICAgaWYgKFxyXG4gICAgICAgIGNhcGFiaWxpdGllcy5DYXBhYmlsaXR5LlJlcXVlc3QuR2V0RmVhdHVyZUluZm8uRm9ybWF0LmluZGV4T2YoXHJcbiAgICAgICAgICBtaW1lVHlwZVxyXG4gICAgICAgICkgIT09IC0xXHJcbiAgICAgICkge1xyXG4gICAgICAgIGNvbnN0IGtleUVudW0gPSBPYmplY3Qua2V5cyhRdWVyeUZvcm1hdE1pbWVUeXBlKS5maW5kKFxyXG4gICAgICAgICAgKGtleSkgPT4gUXVlcnlGb3JtYXRNaW1lVHlwZVtrZXldID09PSBtaW1lVHlwZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcXVlcnlGb3JtYXQgPSBRdWVyeUZvcm1hdFtrZXlFbnVtXTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgaWYgKCFxdWVyeUZvcm1hdCkge1xyXG4gICAgICBxdWVyeWFibGUgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBvcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIF9sYXllck9wdGlvbnNGcm9tU291cmNlOiB7XHJcbiAgICAgICAgdGl0bGU6IGxheWVyLlRpdGxlLFxyXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIuTWF4U2NhbGVEZW5vbWluYXRvciksXHJcbiAgICAgICAgbWluUmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShsYXllci5NaW5TY2FsZURlbm9taW5hdG9yKSxcclxuICAgICAgICBleHRlbnQsXHJcbiAgICAgICAgbWV0YWRhdGE6IHtcclxuICAgICAgICAgIHVybDogbWV0YWRhdGEgPyBtZXRhZGF0YS5PbmxpbmVSZXNvdXJjZSA6IHVuZGVmaW5lZCxcclxuICAgICAgICAgIGV4dGVybjogbWV0YWRhdGEgPyB0cnVlIDogdW5kZWZpbmVkLFxyXG4gICAgICAgICAgYWJzdHJhY3QsXHJcbiAgICAgICAgICBrZXl3b3JkTGlzdFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgbGVnZW5kT3B0aW9uc1xyXG4gICAgICB9LFxyXG4gICAgICBxdWVyeWFibGUsXHJcbiAgICAgIHF1ZXJ5Rm9ybWF0LFxyXG4gICAgICB0aW1lRmlsdGVyOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIgOiB1bmRlZmluZWQsXHJcbiAgICAgIHRpbWVGaWx0ZXJhYmxlOiB0aW1lRmlsdGVyYWJsZSA/IHRydWUgOiB1bmRlZmluZWQsXHJcbiAgICAgIG1pbkRhdGU6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlci5taW4gOiB1bmRlZmluZWQsXHJcbiAgICAgIG1heERhdGU6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlci5tYXggOiB1bmRlZmluZWQsXHJcbiAgICAgIHN0ZXBEYXRlOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIuc3RlcCA6IHVuZGVmaW5lZFxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlV01UU09wdGlvbnMoXHJcbiAgICBiYXNlT3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgY2FwYWJpbGl0aWVzOiBhbnlcclxuICApOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgLy8gUHV0IFRpdGxlIHNvdXJjZSBpbiBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZS4gKEZvciBzb3VyY2UgJiBjYXRhbG9nIGluIF9sYXllck9wdGlvbnNGcm9tU291cmNlLCBpZiBub3QgYWxyZWFkeSBvbiBjb25maWcpXHJcbiAgICBjb25zdCBsYXllciA9IGNhcGFiaWxpdGllcy5Db250ZW50cy5MYXllci5maW5kKFxyXG4gICAgICAoZWwpID0+IGVsLklkZW50aWZpZXIgPT09IGJhc2VPcHRpb25zLmxheWVyXHJcbiAgICApO1xyXG5cclxuICAgIGNvbnN0IG9wdGlvbnMgPSBvcHRpb25zRnJvbUNhcGFiaWxpdGllcyhjYXBhYmlsaXRpZXMsIGJhc2VPcHRpb25zKTtcclxuXHJcbiAgICBjb25zdCBvdXB1dE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICAgIGNvbnN0IHNvdXJjZU9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xyXG4gICAgICAgIHRpdGxlOiBsYXllci5UaXRsZVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKHNvdXJjZU9wdGlvbnMsIG91cHV0T3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlQ2FydG9PcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBjYXJ0b09wdGlvbnM6IGFueVxyXG4gICk6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgbGF5ZXJzID0gW107XHJcbiAgICBjb25zdCBwYXJhbXMgPSBjYXJ0b09wdGlvbnMubGF5ZXJzWzFdLm9wdGlvbnMubGF5ZXJfZGVmaW5pdGlvbjtcclxuICAgIHBhcmFtcy5sYXllcnMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICBsYXllcnMucHVzaCh7XHJcbiAgICAgICAgdHlwZTogZWxlbWVudC50eXBlLnRvTG93ZXJDYXNlKCksXHJcbiAgICAgICAgb3B0aW9uczogZWxlbWVudC5vcHRpb25zLFxyXG4gICAgICAgIGxlZ2VuZDogZWxlbWVudC5sZWdlbmRcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBjb25maWc6IHtcclxuICAgICAgICB2ZXJzaW9uOiBwYXJhbXMudmVyc2lvbixcclxuICAgICAgICBsYXllcnNcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGFyc2VBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGFyY2dpc09wdGlvbnM6IGFueSxcclxuICAgIHNlcnZpY2VDYXBhYmlsaXRpZXM6IGFueVxyXG4gICk6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB7XHJcbiAgICBjb25zdCB0aXRsZSA9IGFyY2dpc09wdGlvbnMubmFtZTtcclxuICAgIGxldCBsZWdlbmRJbmZvOiBhbnk7XHJcblxyXG4gICAgaWYgKGFyY2dpc09wdGlvbnMuZHJhd2luZ0luZm8/LnJlbmRlcmVyKSB7XHJcbiAgICAgIGxlZ2VuZEluZm8gPSBhcmNnaXNPcHRpb25zLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgbGVnZW5kSW5mbyA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc3R5bGU7XHJcbiAgICBpZiAoYXJjZ2lzT3B0aW9ucy5kcmF3aW5nSW5mbykge1xyXG4gICAgICBjb25zdCBzdHlsZUdlbmVyYXRvciA9IG5ldyBFc3JpU3R5bGVHZW5lcmF0b3IoKTtcclxuICAgICAgY29uc3QgdW5pdHMgPSBhcmNnaXNPcHRpb25zLnVuaXRzID09PSAnZXNyaU1ldGVycycgPyAnbScgOiAnZGVncmVlcyc7XHJcbiAgICAgIHN0eWxlID0gc3R5bGVHZW5lcmF0b3IuZ2VuZXJhdGVTdHlsZShhcmNnaXNPcHRpb25zLCB1bml0cyk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBhdHRyaWJ1dGlvbnMgPSBuZXcgb2xBdHRyaWJ1dGlvbih7XHJcbiAgICAgIHRhcmdldDogYXJjZ2lzT3B0aW9ucy5jb3B5cmlnaHRUZXh0XHJcbiAgICB9KTtcclxuICAgIGxldCB0aW1lRXh0ZW50O1xyXG4gICAgbGV0IHRpbWVGaWx0ZXI7XHJcbiAgICBpZiAoYXJjZ2lzT3B0aW9ucy50aW1lSW5mbykge1xyXG4gICAgICBjb25zdCB0aW1lID0gYXJjZ2lzT3B0aW9ucy50aW1lSW5mby50aW1lRXh0ZW50O1xyXG4gICAgICB0aW1lRXh0ZW50ID0gdGltZVswXSArICcsJyArIHRpbWVbMV07XHJcbiAgICAgIGNvbnN0IG1pbiA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIG1pbi5zZXRUaW1lKHRpbWVbMF0pO1xyXG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBtYXguc2V0VGltZSh0aW1lWzFdKTtcclxuICAgICAgdGltZUZpbHRlciA9IHtcclxuICAgICAgICBtaW46IG1pbi50b1VUQ1N0cmluZygpLFxyXG4gICAgICAgIG1heDogbWF4LnRvVVRDU3RyaW5nKCksXHJcbiAgICAgICAgcmFuZ2U6IHRydWUsXHJcbiAgICAgICAgdHlwZTogVGltZUZpbHRlclR5cGUuREFURVRJTUUsXHJcbiAgICAgICAgc3R5bGU6IFRpbWVGaWx0ZXJTdHlsZS5DQUxFTkRBUlxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmFzc2lnbihcclxuICAgICAge30sXHJcbiAgICAgIHtcclxuICAgICAgICBzdHlsZSxcclxuICAgICAgICBMQVlFUlM6IGJhc2VPcHRpb25zLmxheWVyID8gJ3Nob3c6JyArIGJhc2VPcHRpb25zLmxheWVyIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIHRpbWU6IHRpbWVFeHRlbnRcclxuICAgICAgfVxyXG4gICAgKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBwYXJhbXMsXHJcbiAgICAgIF9sYXllck9wdGlvbnNGcm9tU291cmNlOiB7XHJcbiAgICAgICAgdGl0bGUsXHJcbiAgICAgICAgbWluUmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShhcmNnaXNPcHRpb25zLm1heFNjYWxlKSxcclxuICAgICAgICBtYXhSZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWluU2NhbGUpLFxyXG4gICAgICAgIG1ldGFkYXRhOiB7XHJcbiAgICAgICAgICBleHRlcm46IGZhbHNlLFxyXG4gICAgICAgICAgYWJzdHJhY3Q6XHJcbiAgICAgICAgICAgIGFyY2dpc09wdGlvbnMuZGVzY3JpcHRpb24gfHwgc2VydmljZUNhcGFiaWxpdGllcy5zZXJ2aWNlRGVzY3JpcHRpb25cclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGxlZ2VuZEluZm8sXHJcbiAgICAgIHRpbWVGaWx0ZXIsXHJcbiAgICAgIHNvdXJjZUZpZWxkczogYXJjZ2lzT3B0aW9ucy5maWVsZHMsXHJcbiAgICAgIHF1ZXJ5VGl0bGU6IGFyY2dpc09wdGlvbnMuZGlzcGxheUZpZWxkXHJcbiAgICB9KTtcclxuICAgIG9wdGlvbnMuYXR0cmlidXRpb25zID0gYXR0cmlidXRpb25zO1xyXG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKFxyXG4gICAgYmFzZU9wdGlvbnM6XHJcbiAgICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgYXJjZ2lzT3B0aW9uczogYW55LFxyXG4gICAgbGVnZW5kOiBhbnksXHJcbiAgICBzZXJ2aWNlQ2FwYWJpbGl0aWVzOiBhbnlcclxuICApOiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMge1xyXG4gICAgY29uc3QgdGl0bGUgPSBhcmNnaXNPcHRpb25zLm5hbWU7XHJcbiAgICBjb25zdCBsZWdlbmRJbmZvID0gbGVnZW5kLmxheWVyc1xyXG4gICAgICA/IGxlZ2VuZC5sYXllcnMuZmluZCgoeCkgPT4geC5sYXllck5hbWUgPT09IHRpdGxlKVxyXG4gICAgICA6IHVuZGVmaW5lZDtcclxuICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IG5ldyBvbEF0dHJpYnV0aW9uKHtcclxuICAgICAgdGFyZ2V0OiBhcmNnaXNPcHRpb25zLmNvcHlyaWdodFRleHRcclxuICAgIH0pO1xyXG4gICAgbGV0IHRpbWVFeHRlbnQ7XHJcbiAgICBsZXQgdGltZUZpbHRlcjtcclxuICAgIGlmIChhcmNnaXNPcHRpb25zLnRpbWVJbmZvKSB7XHJcbiAgICAgIGNvbnN0IHRpbWUgPSBhcmNnaXNPcHRpb25zLnRpbWVJbmZvLnRpbWVFeHRlbnQ7XHJcbiAgICAgIHRpbWVFeHRlbnQgPSB0aW1lWzBdICsgJywnICsgdGltZVsxXTtcclxuICAgICAgY29uc3QgbWluID0gbmV3IERhdGUoKTtcclxuICAgICAgbWluLnNldFRpbWUodGltZVswXSk7XHJcbiAgICAgIGNvbnN0IG1heCA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIG1heC5zZXRUaW1lKHRpbWVbMV0pO1xyXG4gICAgICB0aW1lRmlsdGVyID0ge1xyXG4gICAgICAgIG1pbjogbWluLnRvVVRDU3RyaW5nKCksXHJcbiAgICAgICAgbWF4OiBtYXgudG9VVENTdHJpbmcoKSxcclxuICAgICAgICByYW5nZTogdHJ1ZSxcclxuICAgICAgICB0eXBlOiBUaW1lRmlsdGVyVHlwZS5EQVRFVElNRSxcclxuICAgICAgICBzdHlsZTogVGltZUZpbHRlclN0eWxlLkNBTEVOREFSXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKFxyXG4gICAgICB7fSxcclxuICAgICAge1xyXG4gICAgICAgIExBWUVSUzogYmFzZU9wdGlvbnMubGF5ZXIgPyAnc2hvdzonICsgYmFzZU9wdGlvbnMubGF5ZXIgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgdGltZTogdGltZUV4dGVudFxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XHJcbiAgICAgIHBhcmFtcyxcclxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcclxuICAgICAgICB0aXRsZSxcclxuICAgICAgICBtaW5SZXNvbHV0aW9uOiBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKGFyY2dpc09wdGlvbnMubWF4U2NhbGUpLFxyXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5taW5TY2FsZSksXHJcbiAgICAgICAgbWV0YWRhdGE6IHtcclxuICAgICAgICAgIGV4dGVybjogZmFsc2UsXHJcbiAgICAgICAgICBhYnN0cmFjdDpcclxuICAgICAgICAgICAgYXJjZ2lzT3B0aW9ucy5kZXNjcmlwdGlvbiB8fCBzZXJ2aWNlQ2FwYWJpbGl0aWVzLnNlcnZpY2VEZXNjcmlwdGlvblxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgbGVnZW5kSW5mbyxcclxuICAgICAgdGltZUZpbHRlcixcclxuICAgICAgc291cmNlRmllbGRzOiBhcmNnaXNPcHRpb25zLmZpZWxkcyxcclxuICAgICAgcXVlcnlUaXRsZTogYXJjZ2lzT3B0aW9ucy5kaXNwbGF5RmllbGRcclxuICAgIH0pO1xyXG4gICAgb3B0aW9ucy5hdHRyaWJ1dGlvbnMgPSBhdHRyaWJ1dGlvbnM7XHJcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhsYXllckFycmF5LCBuYW1lKTogYW55IHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGxheWVyQXJyYXkpKSB7XHJcbiAgICAgIGxldCBsYXllcjtcclxuICAgICAgbGF5ZXJBcnJheS5maW5kKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIGxheWVyID0gdGhpcy5maW5kRGF0YVNvdXJjZUluQ2FwYWJpbGl0aWVzKHZhbHVlLCBuYW1lKTtcclxuICAgICAgICByZXR1cm4gbGF5ZXIgIT09IHVuZGVmaW5lZDtcclxuICAgICAgfSwgdGhpcyk7XHJcblxyXG4gICAgICByZXR1cm4gbGF5ZXI7XHJcbiAgICB9IGVsc2UgaWYgKGxheWVyQXJyYXkuTGF5ZXIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhsYXllckFycmF5LkxheWVyLCBuYW1lKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChsYXllckFycmF5Lk5hbWUgJiYgbGF5ZXJBcnJheS5OYW1lID09PSBuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIGxheWVyQXJyYXk7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFRpbWVGaWx0ZXIobGF5ZXIpIHtcclxuICAgIGxldCBkaW1lbnNpb247XHJcblxyXG4gICAgaWYgKGxheWVyLkRpbWVuc2lvbikge1xyXG4gICAgICBjb25zdCB0aW1lRmlsdGVyOiBhbnkgPSB7fTtcclxuICAgICAgZGltZW5zaW9uID0gbGF5ZXIuRGltZW5zaW9uWzBdO1xyXG5cclxuICAgICAgaWYgKGRpbWVuc2lvbi52YWx1ZXMpIHtcclxuICAgICAgICBjb25zdCBtaW5NYXhEaW0gPSBkaW1lbnNpb24udmFsdWVzLnNwbGl0KCcvJyk7XHJcbiAgICAgICAgdGltZUZpbHRlci5taW4gPSBtaW5NYXhEaW1bMF0gIT09IHVuZGVmaW5lZCA/IG1pbk1heERpbVswXSA6IHVuZGVmaW5lZDtcclxuICAgICAgICB0aW1lRmlsdGVyLm1heCA9IG1pbk1heERpbVsxXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzFdIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIHRpbWVGaWx0ZXIuc3RlcCA9IG1pbk1heERpbVsyXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzJdIDogdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZGltZW5zaW9uLmRlZmF1bHQpIHtcclxuICAgICAgICB0aW1lRmlsdGVyLnZhbHVlID0gZGltZW5zaW9uLmRlZmF1bHQ7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRpbWVGaWx0ZXI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRTdHlsZShTdHlsZSk6IExlZ2VuZE9wdGlvbnMge1xyXG4gICAgY29uc3Qgc3R5bGVPcHRpb25zOiBJdGVtU3R5bGVPcHRpb25zW10gPSBTdHlsZS5tYXAoKHN0eWxlKSA9PiB7XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgbmFtZTogc3R5bGUuTmFtZSxcclxuICAgICAgICB0aXRsZTogc3R5bGUuVGl0bGVcclxuICAgICAgfTtcclxuICAgIH0pXHJcbiAgICAgIC8vIEhhbmRsZSByZXBlYXQgdGhlIHN0eWxlIFwiZGVmYXVsdFwiIGluIG91dHB1dCAgKE1hcFNlcnZlciBvciBPcGVuTGF5ZXIpXHJcbiAgICAgIC5maWx0ZXIoXHJcbiAgICAgICAgKGl0ZW0sIGluZGV4LCBzZWxmKSA9PlxyXG4gICAgICAgICAgc2VsZi5maW5kSW5kZXgoKGk6IEl0ZW1TdHlsZU9wdGlvbnMpID0+IGkubmFtZSA9PT0gaXRlbS5uYW1lKSA9PT1cclxuICAgICAgICAgIGluZGV4XHJcbiAgICAgICk7XHJcblxyXG4gICAgY29uc3QgbGVnZW5kT3B0aW9uczogTGVnZW5kT3B0aW9ucyA9IHtcclxuICAgICAgc3R5bGVzQXZhaWxhYmxlOiBzdHlsZU9wdGlvbnNcclxuICAgIH0gYXMgTGVnZW5kT3B0aW9ucztcclxuXHJcbiAgICByZXR1cm4gbGVnZW5kT3B0aW9ucztcclxuICB9XHJcbn1cclxuIl19
|
|
441
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FwYWJpbGl0aWVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9jYXBhYmlsaXRpZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFMUMsT0FBTyxhQUFhLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDeEUsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZUFBZSxFQUNmLGNBQWMsRUFDZixNQUFNLHNDQUFzQyxDQUFDO0FBSzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQ0wsV0FBVyxFQUNYLG1CQUFtQixFQUNwQixNQUFNLGdDQUFnQyxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3hGLE9BQU8s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QUFLLEVBQUUsRUFBRTtZQUMzRCxPQUFPO2dCQUNMLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtnQkFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLO2FBQ25CLENBQUM7UUFDSixDQUFDLENBQUM7WUFDQSx3RUFBd0U7YUFDdkUsTUFBTSxDQUNMLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQzdELEtBQUssQ0FDUixDQUFDO1FBRUosTUFBTSxhQUFhLEdBQWtCO1lBQ25DLGVBQWUsRUFBRSxZQUFZO1NBQ2IsQ0FBQztRQUVuQixPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO3VHQWxoQlUsbUJBQW1COzJHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7QUFtRWxCO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUdDLFVBQVU7MkRBWVo7QUFLRDtJQUhDLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO0tBQ2xCLENBQUM7OztvQ0FLQyxVQUFVO2dFQTJCWjtBQUtEO0lBSEMsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7S0FDbEIsQ0FBQzs7O29DQUdDLFVBQVU7K0RBc0JaO0FBS0Q7SUFIQyxTQUFTLENBQUM7UUFDVCxhQUFhLEVBQUUsRUFBRTtLQUNsQixDQUFDOzs7b0NBS0MsVUFBVTswREE2Q1o7MkZBdE1VLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7d0dBa0VDLGdCQUFnQixNQW1CaEIscUJBQXFCLE1Bb0NyQixvQkFBb0IsTUE2QnBCLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IG9sQXR0cmlidXRpb24gZnJvbSAnb2wvY29udHJvbC9BdHRyaWJ1dGlvbic7XG5pbXBvcnQgeyBFc3JpSlNPTiwgV01TQ2FwYWJpbGl0aWVzLCBXTVRTQ2FwYWJpbGl0aWVzIH0gZnJvbSAnb2wvZm9ybWF0JztcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcbmltcG9ydCB7IG9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzIH0gZnJvbSAnb2wvc291cmNlL1dNVFMuanMnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhY2hlYWJsZSB9IGZyb20gJ3RzLWNhY2hlYWJsZSc7XG5cbmltcG9ydCB7XG4gIFRpbWVGaWx0ZXJTdHlsZSxcbiAgVGltZUZpbHRlclR5cGVcbn0gZnJvbSAnLi4vLi4vZmlsdGVyL3NoYXJlZC90aW1lLWZpbHRlci5lbnVtJztcbmltcG9ydCB7XG4gIEl0ZW1TdHlsZU9wdGlvbnMsXG4gIExlZ2VuZE9wdGlvbnNcbn0gZnJvbSAnLi4vLi4vbGF5ZXIvc2hhcmVkL2xheWVycy9sZWdlbmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE1hcFNlcnZpY2UgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC5zZXJ2aWNlJztcbmltcG9ydCB7IGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XG5pbXBvcnQge1xuICBRdWVyeUZvcm1hdCxcbiAgUXVlcnlGb3JtYXRNaW1lVHlwZVxufSBmcm9tICcuLi8uLi9xdWVyeS9zaGFyZWQvcXVlcnkuZW51bXMnO1xuaW1wb3J0IHsgRXNyaVN0eWxlR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vc3R5bGUvc2hhcmVkL2RhdGFzb3VyY2UvZXNyaS1zdHlsZS1nZW5lcmF0b3InO1xuaW1wb3J0IHtcbiAgVHlwZUNhcGFiaWxpdGllcyxcbiAgVHlwZUNhcGFiaWxpdGllc1N0cmluZ3Ncbn0gZnJvbSAnLi9jYXBhYmlsaXRpZXMuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcbiAgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMsXG4gIENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXG4gIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zLFxuICBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcbn0gZnJvbSAnLi9kYXRhc291cmNlcyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIENhcGFiaWxpdGllc1NlcnZpY2Uge1xuICBwcml2YXRlIHBhcnNlcnMgPSB7XG4gICAgd21zOiBuZXcgV01TQ2FwYWJpbGl0aWVzKCksXG4gICAgd210czogbmV3IFdNVFNDYXBhYmlsaXRpZXMoKSxcbiAgICBlc3JpSlNPTjogbmV3IEVzcmlKU09OKClcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgcHJpdmF0ZSBtYXBTZXJ2aWNlOiBNYXBTZXJ2aWNlXG4gICkge31cblxuICBnZXRXTVNPcHRpb25zKFxuICAgIGJhc2VPcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFdNU0RhdGFTb3VyY2VPcHRpb25zPiB7XG4gICAgY29uc3QgdXJsID0gYmFzZU9wdGlvbnMudXJsO1xuICAgIGNvbnN0IHZlcnNpb24gPSAoYmFzZU9wdGlvbnMucGFyYW1zIGFzIGFueSkuVkVSU0lPTjtcblxuICAgIHJldHVybiB0aGlzLmdldENhcGFiaWxpdGllcygnd21zJywgdXJsLCB2ZXJzaW9uKS5waXBlKFxuICAgICAgbWFwKChjYXBhYmlsaXRpZXM6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gY2FwYWJpbGl0aWVzXG4gICAgICAgICAgPyB0aGlzLnBhcnNlV01TT3B0aW9ucyhiYXNlT3B0aW9ucywgY2FwYWJpbGl0aWVzKVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgZ2V0V01UU09wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFdNVFNEYXRhU291cmNlT3B0aW9ucz4ge1xuICAgIGNvbnN0IHVybCA9IGJhc2VPcHRpb25zLnVybDtcbiAgICBjb25zdCB2ZXJzaW9uID0gYmFzZU9wdGlvbnMudmVyc2lvbjtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmdldENhcGFiaWxpdGllcygnd210cycsIHVybCwgdmVyc2lvbikucGlwZShcbiAgICAgIG1hcCgoY2FwYWJpbGl0aWVzOiBhbnkpID0+IHtcbiAgICAgICAgcmV0dXJuIGNhcGFiaWxpdGllc1xuICAgICAgICAgID8gdGhpcy5wYXJzZVdNVFNPcHRpb25zKGJhc2VPcHRpb25zLCBjYXBhYmlsaXRpZXMpXG4gICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICB9KVxuICAgICk7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cblxuICBnZXRDYXJ0b09wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxDYXJ0b0RhdGFTb3VyY2VPcHRpb25zPiB7XG4gICAgY29uc3QgYmFzZVVybCA9XG4gICAgICAnaHR0cHM6Ly8nICtcbiAgICAgIGJhc2VPcHRpb25zLmFjY291bnQgK1xuICAgICAgJy5jYXJ0by5jb20vYXBpL3YyL3Zpei8nICtcbiAgICAgIGJhc2VPcHRpb25zLm1hcElkICtcbiAgICAgICcvdml6Lmpzb24nO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmpzb25wKGJhc2VVcmwsICdjYWxsYmFjaycpXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKChjYXJ0b09wdGlvbnM6IGFueSkgPT5cbiAgICAgICAgICB0aGlzLnBhcnNlQ2FydG9PcHRpb25zKGJhc2VPcHRpb25zLCBjYXJ0b09wdGlvbnMpXG4gICAgICAgIClcbiAgICAgICk7XG4gIH1cblxuICBAQ2FjaGVhYmxlKHtcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxuICB9KVxuICBnZXRBcmNnaXNPcHRpb25zKFxuICAgIGJhc2VPcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM+IHtcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy8nICsgYmFzZU9wdGlvbnMubGF5ZXIgKyAnP2Y9anNvbic7XG4gICAgY29uc3Qgc2VydmljZUNhcGFiaWxpdGllcyA9IHRoaXMuZ2V0Q2FwYWJpbGl0aWVzKFxuICAgICAgJ2FyY2dpc3Jlc3QnLFxuICAgICAgYmFzZU9wdGlvbnMudXJsXG4gICAgKTtcbiAgICBjb25zdCBhcmNnaXNPcHRpb25zID0gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIHNlcnZpY2VDYXBhYmlsaXRpZXNdKS5waXBlKFxuICAgICAgbWFwKChyZXM6IGFueSkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUFyY2dpc09wdGlvbnMoYmFzZU9wdGlvbnMsIHJlc1swXSwgcmVzWzFdKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIEBDYWNoZWFibGUoe1xuICAgIG1heENhY2hlQ291bnQ6IDIwXG4gIH0pXG4gIGdldEltYWdlQXJjZ2lzT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczpcbiAgICAgIHwgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnNcbiAgICAgIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFxuICAgIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICA+IHtcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy8nICsgYmFzZU9wdGlvbnMubGF5ZXIgKyAnP2Y9anNvbic7XG4gICAgY29uc3QgbGVnZW5kVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy9sZWdlbmQ/Zj1qc29uJztcbiAgICBjb25zdCBzZXJ2aWNlQ2FwYWJpbGl0aWVzID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoXG4gICAgICAnaW1hZ2VhcmNnaXNyZXN0JyxcbiAgICAgIGJhc2VPcHRpb25zLnVybFxuICAgICk7XG4gICAgY29uc3QgYXJjZ2lzT3B0aW9ucyA9IHRoaXMuaHR0cC5nZXQoYmFzZVVybCk7XG4gICAgY29uc3QgbGVnZW5kID0gdGhpcy5odHRwLmdldChsZWdlbmRVcmwpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdObyBsZWdlbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgSW1hZ2UgU2VydmljZScpO1xuICAgICAgICByZXR1cm4gb2YoZXJyKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgICByZXR1cm4gZm9ya0pvaW4oW2FyY2dpc09wdGlvbnMsIGxlZ2VuZCwgc2VydmljZUNhcGFiaWxpdGllc10pLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKFxuICAgICAgICAgIGJhc2VPcHRpb25zLFxuICAgICAgICAgIHJlc1swXSxcbiAgICAgICAgICByZXNbMV0sXG4gICAgICAgICAgcmVzWzJdXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBAQ2FjaGVhYmxlKHtcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxuICB9KVxuICBnZXRUaWxlQXJjZ2lzT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFxuICAgIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICA+IHtcbiAgICBjb25zdCBiYXNlVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy8nICsgYmFzZU9wdGlvbnMubGF5ZXIgKyAnP2Y9anNvbic7XG4gICAgY29uc3QgbGVnZW5kVXJsID0gYmFzZU9wdGlvbnMudXJsICsgJy9sZWdlbmQ/Zj1qc29uJztcbiAgICBjb25zdCBzZXJ2aWNlQ2FwYWJpbGl0aWVzID0gdGhpcy5nZXRDYXBhYmlsaXRpZXMoXG4gICAgICAndGlsZWFyY2dpc3Jlc3QnLFxuICAgICAgYmFzZU9wdGlvbnMudXJsXG4gICAgKTtcbiAgICBjb25zdCBhcmNnaXNPcHRpb25zID0gdGhpcy5odHRwLmdldChiYXNlVXJsKTtcbiAgICBjb25zdCBsZWdlbmRJbmZvID0gdGhpcy5odHRwLmdldChsZWdlbmRVcmwpLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PiByZXMpLFxuICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKCdObyBsZWdlbmQgYXNzb2NpYXRlZCB3aXRoIHRoaXMgVGlsZSBTZXJ2aWNlJyk7XG4gICAgICAgIHJldHVybiBvZihlcnIpO1xuICAgICAgfSlcbiAgICApO1xuICAgIHJldHVybiBmb3JrSm9pbihbYXJjZ2lzT3B0aW9ucywgbGVnZW5kSW5mbywgc2VydmljZUNhcGFiaWxpdGllc10pLnBpcGUoXG4gICAgICBtYXAoKHJlczogYW55KSA9PlxuICAgICAgICB0aGlzLnBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKGJhc2VPcHRpb25zLCByZXNbMF0sIHJlc1sxXSwgcmVzWzJdKVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBAQ2FjaGVhYmxlKHtcbiAgICBtYXhDYWNoZUNvdW50OiAyMFxuICB9KVxuICBnZXRDYXBhYmlsaXRpZXMoXG4gICAgc2VydmljZTogVHlwZUNhcGFiaWxpdGllc1N0cmluZ3MsXG4gICAgYmFzZVVybDogc3RyaW5nLFxuICAgIHZlcnNpb24/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcyh7XG4gICAgICBmcm9tT2JqZWN0OiB7XG4gICAgICAgIHJlcXVlc3Q6ICdHZXRDYXBhYmlsaXRpZXMnLFxuICAgICAgICBzZXJ2aWNlOiBzZXJ2aWNlLnRvVXBwZXJDYXNlKCksXG4gICAgICAgIHZlcnNpb246IHZlcnNpb24gfHwgJzEuMy4wJyxcbiAgICAgICAgX2k6ICd0cnVlJ1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgbGV0IHJlcXVlc3Q7XG4gICAgaWYgKFR5cGVDYXBhYmlsaXRpZXNbc2VydmljZV0gPT09ICdlc3JpSlNPTicpIHtcbiAgICAgIHJlcXVlc3QgPSB0aGlzLmh0dHAuZ2V0KGJhc2VVcmwgKyAnP2Y9anNvbicpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXF1ZXN0ID0gdGhpcy5odHRwLmdldChiYXNlVXJsLCB7XG4gICAgICAgIHBhcmFtcyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCdcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0LnBpcGUoXG4gICAgICBtYXAoKHJlcykgPT4ge1xuICAgICAgICBpZiAoVHlwZUNhcGFiaWxpdGllc1tzZXJ2aWNlXSA9PT0gJ2VzcmlKU09OJykge1xuICAgICAgICAgIHJldHVybiByZXMgYXMgb2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBTdHJpbmcocmVzKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdzZXJ2aWNlZXhjZXB0aW9uJykgJiZcbiAgICAgICAgICBTdHJpbmcocmVzKS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKCdhY2Nlc3MgZGVuaWVkJylcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhyb3cge1xuICAgICAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICAgICAgbWVzc2FnZTogJ1NlcnZpY2UgZXJyb3IgZ2V0Q2FwYWJpbGl0aWVzOiBBY2Nlc3MgaXMgZGVuaWVkJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMucGFyc2Vyc1tzZXJ2aWNlXS5yZWFkKHJlcyk7XG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICBpZiAodHlwZW9mIGUuZXJyb3IgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgZS5lcnJvci5jYXVnaHQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlV01TT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczogV01TRGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgY2FwYWJpbGl0aWVzOiBhbnlcbiAgKTogV01TRGF0YVNvdXJjZU9wdGlvbnMge1xuICAgIGNvbnN0IGxheWVycyA9IChiYXNlT3B0aW9ucy5wYXJhbXMgYXMgYW55KS5MQVlFUlM7XG4gICAgY29uc3QgbGF5ZXIgPSB0aGlzLmZpbmREYXRhU291cmNlSW5DYXBhYmlsaXRpZXMoXG4gICAgICBjYXBhYmlsaXRpZXMuQ2FwYWJpbGl0eS5MYXllcixcbiAgICAgIGxheWVyc1xuICAgICk7XG5cbiAgICBpZiAoIWxheWVyKSB7XG4gICAgICB0aHJvdyB7XG4gICAgICAgIGVycm9yOiB7XG4gICAgICAgICAgbWVzc2FnZTogJ0xheWVyIG5vdCBmb3VuZCdcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG4gICAgY29uc3QgbWV0YWRhdGEgPSBsYXllci5EYXRhVVJMID8gbGF5ZXIuRGF0YVVSTFswXSA6IHVuZGVmaW5lZDtcbiAgICBjb25zdCBhYnN0cmFjdCA9IGxheWVyLkFic3RyYWN0ID8gbGF5ZXIuQWJzdHJhY3QgOiB1bmRlZmluZWQ7XG4gICAgY29uc3Qga2V5d29yZExpc3QgPSBsYXllci5LZXl3b3JkTGlzdCA/IGxheWVyLktleXdvcmRMaXN0IDogdW5kZWZpbmVkO1xuICAgIGxldCBxdWVyeWFibGUgPSBsYXllci5xdWVyeWFibGU7XG4gICAgY29uc3QgdGltZUZpbHRlciA9IHRoaXMuZ2V0VGltZUZpbHRlcihsYXllcik7XG4gICAgY29uc3QgdGltZUZpbHRlcmFibGUgPSB0aW1lRmlsdGVyICYmIE9iamVjdC5rZXlzKHRpbWVGaWx0ZXIpLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgbGVnZW5kT3B0aW9ucyA9IGxheWVyLlN0eWxlID8gdGhpcy5nZXRTdHlsZShsYXllci5TdHlsZSkgOiB1bmRlZmluZWQ7XG4gICAgbGV0IGlzRXh0ZW50SW5HZW9ncmFwaGljID0gdHJ1ZTtcbiAgICBpZiAobGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94KSB7XG4gICAgICBsYXllci5FWF9HZW9ncmFwaGljQm91bmRpbmdCb3guZm9yRWFjaCgoY29vcmQsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmIChpbmRleCA8IDIgJiYgKGNvb3JkID4gMTgwIHx8IGNvb3JkIDwgLTE4MCkpIHtcbiAgICAgICAgICBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleCA+PSAyICYmIChjb29yZCA+IDkwIHx8IGNvb3JkIDwgLTkwKSkge1xuICAgICAgICAgIGlzRXh0ZW50SW5HZW9ncmFwaGljID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpc0V4dGVudEluR2VvZ3JhcGhpYyA9IGZhbHNlO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVudCA9IGlzRXh0ZW50SW5HZW9ncmFwaGljXG4gICAgICA/IG9scHJvai50cmFuc2Zvcm1FeHRlbnQoXG4gICAgICAgICAgbGF5ZXIuRVhfR2VvZ3JhcGhpY0JvdW5kaW5nQm94LFxuICAgICAgICAgICdFUFNHOjQzMjYnLFxuICAgICAgICAgIHRoaXMubWFwU2VydmljZS5nZXRNYXAoKS5wcm9qZWN0aW9uXG4gICAgICAgIClcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgbGV0IHF1ZXJ5Rm9ybWF0OiBRdWVyeUZvcm1hdDtcbiAgICBjb25zdCBxdWVyeUZvcm1hdE1pbWVUeXBlUHJpb3JpdHkgPSBbXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdFT0pTT04sXG4gICAgICBRdWVyeUZvcm1hdE1pbWVUeXBlLkdFT0pTT04yLFxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HTUwzLFxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5HTUwyLFxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5KU09OLFxuICAgICAgUXVlcnlGb3JtYXRNaW1lVHlwZS5IVE1MXG4gICAgXTtcblxuICAgIGZvciAoY29uc3QgbWltZVR5cGUgb2YgcXVlcnlGb3JtYXRNaW1lVHlwZVByaW9yaXR5KSB7XG4gICAgICBpZiAoXG4gICAgICAgIGNhcGFiaWxpdGllcy5DYXBhYmlsaXR5LlJlcXVlc3QuR2V0RmVhdHVyZUluZm8uRm9ybWF0LmluZGV4T2YoXG4gICAgICAgICAgbWltZVR5cGVcbiAgICAgICAgKSAhPT0gLTFcbiAgICAgICkge1xuICAgICAgICBjb25zdCBrZXlFbnVtID0gT2JqZWN0LmtleXMoUXVlcnlGb3JtYXRNaW1lVHlwZSkuZmluZChcbiAgICAgICAgICAoa2V5KSA9PiBRdWVyeUZvcm1hdE1pbWVUeXBlW2tleV0gPT09IG1pbWVUeXBlXG4gICAgICAgICk7XG4gICAgICAgIHF1ZXJ5Rm9ybWF0ID0gUXVlcnlGb3JtYXRba2V5RW51bV07XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIXF1ZXJ5Rm9ybWF0KSB7XG4gICAgICBxdWVyeWFibGUgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHRpb25zOiBXTVNEYXRhU291cmNlT3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xuICAgICAgICB0aXRsZTogbGF5ZXIuVGl0bGUsXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIuTWF4U2NhbGVEZW5vbWluYXRvciksXG4gICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUobGF5ZXIuTWluU2NhbGVEZW5vbWluYXRvciksXG4gICAgICAgIGV4dGVudCxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICB1cmw6IG1ldGFkYXRhID8gbWV0YWRhdGEuT25saW5lUmVzb3VyY2UgOiB1bmRlZmluZWQsXG4gICAgICAgICAgZXh0ZXJuOiBtZXRhZGF0YSA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAgICAgYWJzdHJhY3QsXG4gICAgICAgICAga2V5d29yZExpc3RcbiAgICAgICAgfSxcbiAgICAgICAgbGVnZW5kT3B0aW9uc1xuICAgICAgfSxcbiAgICAgIHF1ZXJ5YWJsZSxcbiAgICAgIHF1ZXJ5Rm9ybWF0LFxuICAgICAgdGltZUZpbHRlcjogdGltZUZpbHRlcmFibGUgPyB0aW1lRmlsdGVyIDogdW5kZWZpbmVkLFxuICAgICAgdGltZUZpbHRlcmFibGU6IHRpbWVGaWx0ZXJhYmxlID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgIG1pbkRhdGU6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlci5taW4gOiB1bmRlZmluZWQsXG4gICAgICBtYXhEYXRlOiB0aW1lRmlsdGVyYWJsZSA/IHRpbWVGaWx0ZXIubWF4IDogdW5kZWZpbmVkLFxuICAgICAgc3RlcERhdGU6IHRpbWVGaWx0ZXJhYmxlID8gdGltZUZpbHRlci5zdGVwIDogdW5kZWZpbmVkXG4gICAgfSk7XG5cbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VXTVRTT3B0aW9ucyhcbiAgICBiYXNlT3B0aW9uczogV01UU0RhdGFTb3VyY2VPcHRpb25zLFxuICAgIGNhcGFiaWxpdGllczogYW55XG4gICk6IFdNVFNEYXRhU291cmNlT3B0aW9ucyB7XG4gICAgLy8gUHV0IFRpdGxlIHNvdXJjZSBpbiBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZS4gKEZvciBzb3VyY2UgJiBjYXRhbG9nIGluIF9sYXllck9wdGlvbnNGcm9tU291cmNlLCBpZiBub3QgYWxyZWFkeSBvbiBjb25maWcpXG4gICAgY29uc3QgbGF5ZXIgPSBjYXBhYmlsaXRpZXMuQ29udGVudHMuTGF5ZXIuZmluZChcbiAgICAgIChlbCkgPT4gZWwuSWRlbnRpZmllciA9PT0gYmFzZU9wdGlvbnMubGF5ZXJcbiAgICApO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IG9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzKGNhcGFiaWxpdGllcywgYmFzZU9wdGlvbnMpO1xuXG4gICAgY29uc3Qgb3VwdXRPcHRpb25zID0gT2JqZWN0LmFzc2lnbihvcHRpb25zLCBiYXNlT3B0aW9ucyk7XG4gICAgY29uc3Qgc291cmNlT3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xuICAgICAgICB0aXRsZTogbGF5ZXIuVGl0bGVcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBPYmplY3RVdGlscy5tZXJnZURlZXAoc291cmNlT3B0aW9ucywgb3VwdXRPcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VDYXJ0b09wdGlvbnMoXG4gICAgYmFzZU9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgY2FydG9PcHRpb25zOiBhbnlcbiAgKTogQ2FydG9EYXRhU291cmNlT3B0aW9ucyB7XG4gICAgY29uc3QgbGF5ZXJzID0gW107XG4gICAgY29uc3QgcGFyYW1zID0gY2FydG9PcHRpb25zLmxheWVyc1sxXS5vcHRpb25zLmxheWVyX2RlZmluaXRpb247XG4gICAgcGFyYW1zLmxheWVycy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBsYXllcnMucHVzaCh7XG4gICAgICAgIHR5cGU6IGVsZW1lbnQudHlwZS50b0xvd2VyQ2FzZSgpLFxuICAgICAgICBvcHRpb25zOiBlbGVtZW50Lm9wdGlvbnMsXG4gICAgICAgIGxlZ2VuZDogZWxlbWVudC5sZWdlbmRcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIHZlcnNpb246IHBhcmFtcy52ZXJzaW9uLFxuICAgICAgICBsYXllcnNcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VBcmNnaXNPcHRpb25zKFxuICAgIGJhc2VPcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgYXJjZ2lzT3B0aW9uczogYW55LFxuICAgIHNlcnZpY2VDYXBhYmlsaXRpZXM6IGFueVxuICApOiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMge1xuICAgIGNvbnN0IHRpdGxlID0gYXJjZ2lzT3B0aW9ucy5uYW1lO1xuICAgIGxldCBsZWdlbmRJbmZvOiBhbnk7XG5cbiAgICBpZiAoYXJjZ2lzT3B0aW9ucy5kcmF3aW5nSW5mbz8ucmVuZGVyZXIpIHtcbiAgICAgIGxlZ2VuZEluZm8gPSBhcmNnaXNPcHRpb25zLmRyYXdpbmdJbmZvLnJlbmRlcmVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZWdlbmRJbmZvID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGxldCBzdHlsZTtcbiAgICBpZiAoYXJjZ2lzT3B0aW9ucy5kcmF3aW5nSW5mbykge1xuICAgICAgY29uc3Qgc3R5bGVHZW5lcmF0b3IgPSBuZXcgRXNyaVN0eWxlR2VuZXJhdG9yKCk7XG4gICAgICBjb25zdCB1bml0cyA9IGFyY2dpc09wdGlvbnMudW5pdHMgPT09ICdlc3JpTWV0ZXJzJyA/ICdtJyA6ICdkZWdyZWVzJztcbiAgICAgIHN0eWxlID0gc3R5bGVHZW5lcmF0b3IuZ2VuZXJhdGVTdHlsZShhcmNnaXNPcHRpb25zLCB1bml0cyk7XG4gICAgfVxuICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IG5ldyBvbEF0dHJpYnV0aW9uKHtcbiAgICAgIHRhcmdldDogYXJjZ2lzT3B0aW9ucy5jb3B5cmlnaHRUZXh0XG4gICAgfSk7XG4gICAgbGV0IHRpbWVFeHRlbnQ7XG4gICAgbGV0IHRpbWVGaWx0ZXI7XG4gICAgaWYgKGFyY2dpc09wdGlvbnMudGltZUluZm8pIHtcbiAgICAgIGNvbnN0IHRpbWUgPSBhcmNnaXNPcHRpb25zLnRpbWVJbmZvLnRpbWVFeHRlbnQ7XG4gICAgICB0aW1lRXh0ZW50ID0gdGltZVswXSArICcsJyArIHRpbWVbMV07XG4gICAgICBjb25zdCBtaW4gPSBuZXcgRGF0ZSgpO1xuICAgICAgbWluLnNldFRpbWUodGltZVswXSk7XG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSgpO1xuICAgICAgbWF4LnNldFRpbWUodGltZVsxXSk7XG4gICAgICB0aW1lRmlsdGVyID0ge1xuICAgICAgICBtaW46IG1pbi50b1VUQ1N0cmluZygpLFxuICAgICAgICBtYXg6IG1heC50b1VUQ1N0cmluZygpLFxuICAgICAgICByYW5nZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogVGltZUZpbHRlclR5cGUuREFURVRJTUUsXG4gICAgICAgIHN0eWxlOiBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVJcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgc3R5bGUsXG4gICAgICAgIExBWUVSUzogYmFzZU9wdGlvbnMubGF5ZXIgPyAnc2hvdzonICsgYmFzZU9wdGlvbnMubGF5ZXIgOiB1bmRlZmluZWQsXG4gICAgICAgIHRpbWU6IHRpbWVFeHRlbnRcbiAgICAgIH1cbiAgICApO1xuICAgIGNvbnN0IG9wdGlvbnMgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xuICAgICAgcGFyYW1zLFxuICAgICAgX2xheWVyT3B0aW9uc0Zyb21Tb3VyY2U6IHtcbiAgICAgICAgdGl0bGUsXG4gICAgICAgIG1pblJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5tYXhTY2FsZSksXG4gICAgICAgIG1heFJlc29sdXRpb246IGdldFJlc29sdXRpb25Gcm9tU2NhbGUoYXJjZ2lzT3B0aW9ucy5taW5TY2FsZSksXG4gICAgICAgIG1ldGFkYXRhOiB7XG4gICAgICAgICAgZXh0ZXJuOiBmYWxzZSxcbiAgICAgICAgICBhYnN0cmFjdDpcbiAgICAgICAgICAgIGFyY2dpc09wdGlvbnMuZGVzY3JpcHRpb24gfHwgc2VydmljZUNhcGFiaWxpdGllcy5zZXJ2aWNlRGVzY3JpcHRpb25cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIGxlZ2VuZEluZm8sXG4gICAgICB0aW1lRmlsdGVyLFxuICAgICAgc291cmNlRmllbGRzOiBhcmNnaXNPcHRpb25zLmZpZWxkcyxcbiAgICAgIHF1ZXJ5VGl0bGU6IGFyY2dpc09wdGlvbnMuZGlzcGxheUZpZWxkXG4gICAgfSk7XG4gICAgb3B0aW9ucy5hdHRyaWJ1dGlvbnMgPSBhdHRyaWJ1dGlvbnM7XG4gICAgcmV0dXJuIE9iamVjdFV0aWxzLm1lcmdlRGVlcChvcHRpb25zLCBiYXNlT3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVGlsZU9ySW1hZ2VBcmNnaXNPcHRpb25zKFxuICAgIGJhc2VPcHRpb25zOlxuICAgICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zXG4gICAgICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxuICAgIGFyY2dpc09wdGlvbnM6IGFueSxcbiAgICBsZWdlbmQ6IGFueSxcbiAgICBzZXJ2aWNlQ2FwYWJpbGl0aWVzOiBhbnlcbiAgKTogVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zIHtcbiAgICBjb25zdCB0aXRsZSA9IGFyY2dpc09wdGlvbnMubmFtZTtcbiAgICBjb25zdCBsZWdlbmRJbmZvID0gbGVnZW5kLmxheWVyc1xuICAgICAgPyBsZWdlbmQubGF5ZXJzLmZpbmQoKHgpID0+IHgubGF5ZXJOYW1lID09PSB0aXRsZSlcbiAgICAgIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IGF0dHJpYnV0aW9ucyA9IG5ldyBvbEF0dHJpYnV0aW9uKHtcbiAgICAgIHRhcmdldDogYXJjZ2lzT3B0aW9ucy5jb3B5cmlnaHRUZXh0XG4gICAgfSk7XG4gICAgbGV0IHRpbWVFeHRlbnQ7XG4gICAgbGV0IHRpbWVGaWx0ZXI7XG4gICAgaWYgKGFyY2dpc09wdGlvbnMudGltZUluZm8pIHtcbiAgICAgIGNvbnN0IHRpbWUgPSBhcmNnaXNPcHRpb25zLnRpbWVJbmZvLnRpbWVFeHRlbnQ7XG4gICAgICB0aW1lRXh0ZW50ID0gdGltZVswXSArICcsJyArIHRpbWVbMV07XG4gICAgICBjb25zdCBtaW4gPSBuZXcgRGF0ZSgpO1xuICAgICAgbWluLnNldFRpbWUodGltZVswXSk7XG4gICAgICBjb25zdCBtYXggPSBuZXcgRGF0ZSgpO1xuICAgICAgbWF4LnNldFRpbWUodGltZVsxXSk7XG4gICAgICB0aW1lRmlsdGVyID0ge1xuICAgICAgICBtaW46IG1pbi50b1VUQ1N0cmluZygpLFxuICAgICAgICBtYXg6IG1heC50b1VUQ1N0cmluZygpLFxuICAgICAgICByYW5nZTogdHJ1ZSxcbiAgICAgICAgdHlwZTogVGltZUZpbHRlclR5cGUuREFURVRJTUUsXG4gICAgICAgIHN0eWxlOiBUaW1lRmlsdGVyU3R5bGUuQ0FMRU5EQVJcbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHBhcmFtcyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgTEFZRVJTOiBiYXNlT3B0aW9ucy5sYXllciA/ICdzaG93OicgKyBiYXNlT3B0aW9ucy5sYXllciA6IHVuZGVmaW5lZCxcbiAgICAgICAgdGltZTogdGltZUV4dGVudFxuICAgICAgfVxuICAgICk7XG4gICAgY29uc3Qgb3B0aW9ucyA9IE9iamVjdFV0aWxzLnJlbW92ZVVuZGVmaW5lZCh7XG4gICAgICBwYXJhbXMsXG4gICAgICBfbGF5ZXJPcHRpb25zRnJvbVNvdXJjZToge1xuICAgICAgICB0aXRsZSxcbiAgICAgICAgbWluUmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShhcmNnaXNPcHRpb25zLm1heFNjYWxlKSxcbiAgICAgICAgbWF4UmVzb2x1dGlvbjogZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShhcmNnaXNPcHRpb25zLm1pblNjYWxlKSxcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICAgICAgICBleHRlcm46IGZhbHNlLFxuICAgICAgICAgIGFic3RyYWN0OlxuICAgICAgICAgICAgYXJjZ2lzT3B0aW9ucy5kZXNjcmlwdGlvbiB8fCBzZXJ2aWNlQ2FwYWJpbGl0aWVzLnNlcnZpY2VEZXNjcmlwdGlvblxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgbGVnZW5kSW5mbyxcbiAgICAgIHRpbWVGaWx0ZXIsXG4gICAgICBzb3VyY2VGaWVsZHM6IGFyY2dpc09wdGlvbnMuZmllbGRzLFxuICAgICAgcXVlcnlUaXRsZTogYXJjZ2lzT3B0aW9ucy5kaXNwbGF5RmllbGRcbiAgICB9KTtcbiAgICBvcHRpb25zLmF0dHJpYnV0aW9ucyA9IGF0dHJpYnV0aW9ucztcbiAgICByZXR1cm4gT2JqZWN0VXRpbHMubWVyZ2VEZWVwKG9wdGlvbnMsIGJhc2VPcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyhsYXllckFycmF5LCBuYW1lKTogYW55IHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShsYXllckFycmF5KSkge1xuICAgICAgbGV0IGxheWVyO1xuICAgICAgbGF5ZXJBcnJheS5maW5kKCh2YWx1ZSkgPT4ge1xuICAgICAgICBsYXllciA9IHRoaXMuZmluZERhdGFTb3VyY2VJbkNhcGFiaWxpdGllcyh2YWx1ZSwgbmFtZSk7XG4gICAgICAgIHJldHVybiBsYXllciAhPT0gdW5kZWZpbmVkO1xuICAgICAgfSwgdGhpcyk7XG5cbiAgICAgIHJldHVybiBsYXllcjtcbiAgICB9IGVsc2UgaWYgKGxheWVyQXJyYXkuTGF5ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmREYXRhU291cmNlSW5DYXBhYmlsaXRpZXMobGF5ZXJBcnJheS5MYXllciwgbmFtZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsYXllckFycmF5Lk5hbWUgJiYgbGF5ZXJBcnJheS5OYW1lID09PSBuYW1lKSB7XG4gICAgICAgIHJldHVybiBsYXllckFycmF5O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBnZXRUaW1lRmlsdGVyKGxheWVyKSB7XG4gICAgbGV0IGRpbWVuc2lvbjtcblxuICAgIGlmIChsYXllci5EaW1lbnNpb24pIHtcbiAgICAgIGNvbnN0IHRpbWVGaWx0ZXI6IGFueSA9IHt9O1xuICAgICAgZGltZW5zaW9uID0gbGF5ZXIuRGltZW5zaW9uWzBdO1xuXG4gICAgICBpZiAoZGltZW5zaW9uLnZhbHVlcykge1xuICAgICAgICBjb25zdCBtaW5NYXhEaW0gPSBkaW1lbnNpb24udmFsdWVzLnNwbGl0KCcvJyk7XG4gICAgICAgIHRpbWVGaWx0ZXIubWluID0gbWluTWF4RGltWzBdICE9PSB1bmRlZmluZWQgPyBtaW5NYXhEaW1bMF0gOiB1bmRlZmluZWQ7XG4gICAgICAgIHRpbWVGaWx0ZXIubWF4ID0gbWluTWF4RGltWzFdICE9PSB1bmRlZmluZWQgPyBtaW5NYXhEaW1bMV0gOiB1bmRlZmluZWQ7XG4gICAgICAgIHRpbWVGaWx0ZXIuc3RlcCA9IG1pbk1heERpbVsyXSAhPT0gdW5kZWZpbmVkID8gbWluTWF4RGltWzJdIDogdW5kZWZpbmVkO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGltZW5zaW9uLmRlZmF1bHQpIHtcbiAgICAgICAgdGltZUZpbHRlci52YWx1ZSA9IGRpbWVuc2lvbi5kZWZhdWx0O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRpbWVGaWx0ZXI7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3R5bGUoU3R5bGUpOiBMZWdlbmRPcHRpb25zIHtcbiAgICBjb25zdCBzdHlsZU9wdGlvbnM6IEl0ZW1TdHlsZU9wdGlvbnNbXSA9IFN0eWxlLm1hcCgoc3R5bGUpID0+IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHN0eWxlLk5hbWUsXG4gICAgICAgIHRpdGxlOiBzdHlsZS5UaXRsZVxuICAgICAgfTtcbiAgICB9KVxuICAgICAgLy8gSGFuZGxlIHJlcGVhdCB0aGUgc3R5bGUgXCJkZWZhdWx0XCIgaW4gb3V0cHV0ICAoTWFwU2VydmVyIG9yIE9wZW5MYXllcilcbiAgICAgIC5maWx0ZXIoXG4gICAgICAgIChpdGVtLCBpbmRleCwgc2VsZikgPT5cbiAgICAgICAgICBzZWxmLmZpbmRJbmRleCgoaTogSXRlbVN0eWxlT3B0aW9ucykgPT4gaS5uYW1lID09PSBpdGVtLm5hbWUpID09PVxuICAgICAgICAgIGluZGV4XG4gICAgICApO1xuXG4gICAgY29uc3QgbGVnZW5kT3B0aW9uczogTGVnZW5kT3B0aW9ucyA9IHtcbiAgICAgIHN0eWxlc0F2YWlsYWJsZTogc3R5bGVPcHRpb25zXG4gICAgfSBhcyBMZWdlbmRPcHRpb25zO1xuXG4gICAgcmV0dXJuIGxlZ2VuZE9wdGlvbnM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -254,4 +254,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
254
254
|
}], ctorParameters: () => [{ type: i1.CapabilitiesService }, { type: i2.OptionsService, decorators: [{
|
|
255
255
|
type: Optional
|
|
256
256
|
}] }, { type: i3.WFSService }, { type: i4.LanguageService }, { type: i5.MessageService }, { type: i6.AuthInterceptor }] });
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBRUwsb0JBQW9CLEVBR3BCLGVBQWUsRUFFZixpQkFBaUIsRUFHakIsaUJBQWlCLEVBRWpCLHlCQUF5QixFQUN6QixhQUFhLEVBRWIsYUFBYSxFQUViLHdCQUF3QixFQUV4QixtQkFBbUIsRUFFbkIsYUFBYSxFQUViLGFBQWEsRUFFYixjQUFjLEVBRWQsbUJBQW1CLEVBQ25CLGFBQWEsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBSWxCO0lBQ1k7SUFDWjtJQUNBO0lBQ0E7SUFD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bGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9tZXNzYWdlJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGZvcmtKb2luLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBDYXBhYmlsaXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi9jYXBhYmlsaXRpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQW55RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENhcnRvRGF0YVNvdXJjZSxcclxuICBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIENsdXN0ZXJEYXRhU291cmNlLFxyXG4gIENsdXN0ZXJEYXRhU291cmNlT3B0aW9ucyxcclxuICBEYXRhU291cmNlLFxyXG4gIEZlYXR1cmVEYXRhU291cmNlLFxyXG4gIEZlYXR1cmVEYXRhU291cmNlT3B0aW9ucyxcclxuICBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlLFxyXG4gIE1WVERhdGFTb3VyY2UsXHJcbiAgTVZURGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgT1NNRGF0YVNvdXJjZSxcclxuICBPU01EYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2UsXHJcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICBUaWxlRGVidWdEYXRhU291cmNlLFxyXG4gIFRpbGVEZWJ1Z0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gIFdGU0RhdGFTb3VyY2UsXHJcbiAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV01TRGF0YVNvdXJjZSxcclxuICBXTVNEYXRhU291cmNlT3B0aW9ucyxcclxuICBXTVRTRGF0YVNvdXJjZSxcclxuICBXTVRTRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgV2ViU29ja2V0RGF0YVNvdXJjZSxcclxuICBYWVpEYXRhU291cmNlLFxyXG4gIFhZWkRhdGFTb3VyY2VPcHRpb25zXHJcbn0gZnJvbSAnLi9kYXRhc291cmNlcyc7XHJcbmltcG9ydCB7IFdGU1NlcnZpY2UgfSBmcm9tICcuL2RhdGFzb3VyY2VzL3dmcy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuL29wdGlvbnMvb3B0aW9ucy5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VTZXJ2aWNlIHtcclxuICBwdWJsaWMgZGF0YXNvdXJjZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEYXRhU291cmNlW10+KFtdKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhcGFiaWxpdGllc1NlcnZpY2U6IENhcGFiaWxpdGllc1NlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIG9wdGlvbnNTZXJ2aWNlOiBPcHRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgd2ZzRGF0YVNvdXJjZVNlcnZpY2U6IFdGU1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvclxyXG4gICkge31cclxuXHJcbiAgY3JlYXRlQXN5bmNEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogQW55RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcclxuICApOiBPYnNlcnZhYmxlPERhdGFTb3VyY2U+IHtcclxuICAgIGlmICghY29udGV4dC50eXBlKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoY29udGV4dCk7XHJcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBuZWVkcyBhIHR5cGUnKTtcclxuICAgIH1cclxuICAgIGxldCBkYXRhU291cmNlO1xyXG4gICAgc3dpdGNoIChjb250ZXh0LnR5cGUudG9Mb3dlckNhc2UoKSkge1xyXG4gICAgICBjYXNlICdvc20nOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZU9TTURhdGFTb3VyY2UoY29udGV4dCBhcyBPU01EYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3ZlY3Rvcic6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlRmVhdHVyZURhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dmcyc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV0ZTRGF0YVNvdXJjZShjb250ZXh0IGFzIFdGU0RhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnd21zJzpcclxuICAgICAgICBjb25zdCB3bXNDb250ZXh0ID0gY29udGV4dCBhcyBXTVNEYXRhU291cmNlT3B0aW9ucztcclxuICAgICAgICBPYmplY3RVdGlscy5yZW1vdmVEdXBsaWNhdGVDYXNlSW5zZW5zaXRpdmUod21zQ29udGV4dC5wYXJhbXMpO1xyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdNU0RhdGFTb3VyY2Uod21zQ29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnd210cyc6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV01UU0RhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIFdNVFNEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3h5eic6XHJcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlWFlaRGF0YVNvdXJjZShjb250ZXh0IGFzIFhZWkRhdGFTb3VyY2VPcHRpb25zKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndGlsZWRlYnVnJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVUaWxlRGVidWdEYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBUaWxlRGVidWdEYXRhU291cmNlXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2FydG8nOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUNhcnRvRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQ2FydG9EYXRhU291cmNlT3B0aW9uc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2FyY2dpc3Jlc3QnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUFyY0dJU1Jlc3REYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICBkZXRhaWxlZENvbnRleHRVcmlcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdpbWFnZWFyY2dpc3Jlc3QnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgICAgICAgZGV0YWlsZWRDb250ZXh0VXJpXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnd2Vic29ja2V0JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXZWJTb2NrZXREYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCBhcyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtdnQnOlxyXG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZU1WVERhdGFTb3VyY2UoY29udGV4dCBhcyBNVlREYXRhU291cmNlT3B0aW9ucyk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RpbGVhcmNnaXNyZXN0JzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2UoXHJcbiAgICAgICAgICBjb250ZXh0IGFzIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgICAgICAgICBkZXRhaWxlZENvbnRleHRVcmlcclxuICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjbHVzdGVyJzpcclxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVDbHVzdGVyRGF0YVNvdXJjZShcclxuICAgICAgICAgIGNvbnRleHQgYXMgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXHJcbiAgICAgICAgKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBjb25zb2xlLmVycm9yKGNvbnRleHQpO1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBkYXRhc291cmNlIHR5cGUnKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmRhdGFzb3VyY2VzJC5uZXh0KHRoaXMuZGF0YXNvdXJjZXMkLnZhbHVlLmNvbmNhdChbZGF0YVNvdXJjZV0pKTtcclxuXHJcbiAgICByZXR1cm4gZGF0YVNvdXJjZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlT1NNRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IE9TTURhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxPU01EYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgT1NNRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVGZWF0dXJlRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8RmVhdHVyZURhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBGZWF0dXJlRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXZWJTb2NrZXREYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxXZWJTb2NrZXREYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgV2ViU29ja2V0RGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVXRlNEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogV0ZTRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdGU0RhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT5cclxuICAgICAgZC5uZXh0KFxyXG4gICAgICAgIG5ldyBXRlNEYXRhU291cmNlKFxyXG4gICAgICAgICAgY29udGV4dCxcclxuICAgICAgICAgIHRoaXMud2ZzRGF0YVNvdXJjZVNlcnZpY2UsXHJcbiAgICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvclxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV01TRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFdNU0RhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW107XHJcbiAgICBpZiAoY29udGV4dC5vcHRpb25zRnJvbUNhcGFiaWxpdGllcyAmJiB3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRXTVNPcHRpb25zKGNvbnRleHQpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5wYXJhbXMuTEFZRVJTIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vcHRpb25zU2VydmljZSAmJlxyXG4gICAgICBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpICYmXHJcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXHJcbiAgICApIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldFdNU09wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKS5waXBlKFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgICBlLmVycm9yLnRvRGlzcGxheSA9IHRydWU7XHJcbiAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2Uub3B0aW9uc0FwaVVuYXZhaWxhYmxlJ1xyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcblxyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxyXG4gICAgICBtYXAoKG9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zW10pID0+IHtcclxuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XHJcbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiBuZXcgV01TRGF0YVNvdXJjZShvcHRpb25zTWVyZ2VkLCB0aGlzLndmc0RhdGFTb3VyY2VTZXJ2aWNlKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlV01UU0RhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFdNVFNEYXRhU291cmNlPiB7XHJcbiAgICBpZiAoY29udGV4dC5vcHRpb25zRnJvbUNhcGFiaWxpdGllcyAmJiB3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldFdNVFNPcHRpb25zKGNvbnRleHQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChvcHRpb25zOiBXTVRTRGF0YVNvdXJjZU9wdGlvbnMpID0+IHtcclxuICAgICAgICAgIHJldHVybiBvcHRpb25zID8gbmV3IFdNVFNEYXRhU291cmNlKG9wdGlvbnMpIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZScsXHJcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5sYXllciB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgV01UU0RhdGFTb3VyY2UoY29udGV4dCkpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlWFlaRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IFhZWkRhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxYWVpEYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgWFlaRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUaWxlRGVidWdEYXRhU291cmNlKFxyXG4gICAgY29udGV4dDogVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPFRpbGVEZWJ1Z0RhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBUaWxlRGVidWdEYXRhU291cmNlKGNvbnRleHQpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNyZWF0ZUNhcnRvRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnNcclxuICApOiBPYnNlcnZhYmxlPENhcnRvRGF0YVNvdXJjZT4ge1xyXG4gICAgaWYgKGNvbnRleHQubWFwSWQpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZVxyXG4gICAgICAgIC5nZXRDYXJ0b09wdGlvbnMoY29udGV4dClcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIG1hcCgob3B0aW9uczogQ2FydG9EYXRhU291cmNlT3B0aW9ucykgPT4gbmV3IENhcnRvRGF0YVNvdXJjZShvcHRpb25zKSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IENhcnRvRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xyXG4gICk6IE9ic2VydmFibGU8QXJjR0lTUmVzdERhdGFTb3VyY2U+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW107XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5vbkxpbmUpIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0QXJjZ2lzT3B0aW9ucyhjb250ZXh0KS5waXBlKFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxyXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZScsXHJcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQubGF5ZXIgfVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB0aHJvdyBlO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcclxuICAgICAgY29udGV4dC5vcHRpb25zRnJvbUFwaSAmJlxyXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxyXG4gICAgKSB7XHJcbiAgICAgIG9ic2VydmFibGVzLnB1c2goXHJcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxyXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcclxuICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxyXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XHJcbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXHJcbiAgICAgIG1hcCgob3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cclxuICAgICAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChhLCBiKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBBcmNHSVNSZXN0RGF0YVNvdXJjZShvcHRpb25zTWVyZ2VkKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucz4ge1xyXG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcclxuXHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5vbkxpbmUpIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0SW1hZ2VBcmNnaXNPcHRpb25zKGNvbnRleHQpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5wYXJhbXMuTEFZRVJTIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlICYmXHJcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcclxuICAgICAgd2luZG93Lm5hdmlnYXRvci5vbkxpbmVcclxuICAgICkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2VcclxuICAgICAgICAgIC5nZXRBcmNnaXNSZXN0T3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2Uub3B0aW9uc0FwaVVuYXZhaWxhYmxlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIG9ic2VydmFibGVzLnB1c2gob2YoY29udGV4dCkpO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxyXG4gICAgICBtYXAoKG9wdGlvbnM6IEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2VbXSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cclxuICAgICAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChhLCBiKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIG5ldyBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xyXG4gICAgICB9KSxcclxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2UoXHJcbiAgICBjb250ZXh0OiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxyXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXHJcbiAgKTogT2JzZXJ2YWJsZTxUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2U+IHtcclxuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW107XHJcbiAgICBpZiAod2luZG93Lm5hdmlnYXRvci5vbkxpbmUpIHtcclxuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcclxuICAgICAgICB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0SW1hZ2VBcmNnaXNPcHRpb25zKGNvbnRleHQpLnBpcGUoXHJcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXHJcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcclxuICAgICAgICAgICAgICB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5wYXJhbXMuTEFZRVJTIH1cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhyb3cgZTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlICYmXHJcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcclxuICAgICAgd2luZG93Lm5hdmlnYXRvci5vbkxpbmVcclxuICAgICkge1xyXG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxyXG4gICAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2VcclxuICAgICAgICAgIC5nZXRBcmNnaXNSZXN0T3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpXHJcbiAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xyXG4gICAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXHJcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcclxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2Uub3B0aW9uc0FwaVVuYXZhaWxhYmxlJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICAgIClcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIG9ic2VydmFibGVzLnB1c2gob2YoY29udGV4dCkpO1xyXG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxyXG4gICAgICBtYXAoKG9wdGlvbnM6IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxyXG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gbmV3IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShvcHRpb25zTWVyZ2VkKTtcclxuICAgICAgfSksXHJcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlTVZURGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IE1WVERhdGFTb3VyY2VPcHRpb25zXHJcbiAgKTogT2JzZXJ2YWJsZTxNVlREYXRhU291cmNlPiB7XHJcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgTVZURGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjcmVhdGVDbHVzdGVyRGF0YVNvdXJjZShcclxuICAgIGNvbnRleHQ6IENsdXN0ZXJEYXRhU291cmNlT3B0aW9uc1xyXG4gICk6IE9ic2VydmFibGU8Q2x1c3RlckRhdGFTb3VyY2U+IHtcclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBDbHVzdGVyRGF0YVNvdXJjZShjb250ZXh0KSkpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
257
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBRUwsb0JBQW9CLEVBR3BCLGVBQWUsRUFFZixpQkFBaUIsRUFHakIsaUJBQWlCLEVBRWpCLHlCQUF5QixFQUN6QixhQUFhLEVBRWIsYUFBYSxFQUViLHdCQUF3QixFQUV4QixtQkFBbUIsRUFFbkIsYUFBYSxFQUViLGFBQWEsRUFFYixjQUFjLEVBRWQsbUJBQW1CLEVBQ25CLGFBQWEsRUFFZCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztBQUszRCxNQUFNLE9BQU8saUJBQWlCO0lBSWxCO0lBQ1k7SUFDWjtJQUNBO0lBQ0E7SUFD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bGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gJ0BpZ28yL2F1dGgnO1xuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbWVzc2FnZSc7XG5pbXBvcnQgeyBPYmplY3RVdGlscyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBmb3JrSm9pbiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2FwYWJpbGl0aWVzU2VydmljZSB9IGZyb20gJy4vY2FwYWJpbGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQW55RGF0YVNvdXJjZU9wdGlvbnMsXG4gIEFyY0dJU1Jlc3REYXRhU291cmNlLFxuICBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gIEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxuICBDYXJ0b0RhdGFTb3VyY2UsXG4gIENhcnRvRGF0YVNvdXJjZU9wdGlvbnMsXG4gIENsdXN0ZXJEYXRhU291cmNlLFxuICBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMsXG4gIERhdGFTb3VyY2UsXG4gIEZlYXR1cmVEYXRhU291cmNlLFxuICBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMsXG4gIEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UsXG4gIE1WVERhdGFTb3VyY2UsXG4gIE1WVERhdGFTb3VyY2VPcHRpb25zLFxuICBPU01EYXRhU291cmNlLFxuICBPU01EYXRhU291cmNlT3B0aW9ucyxcbiAgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlLFxuICBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICBUaWxlRGVidWdEYXRhU291cmNlLFxuICBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9ucyxcbiAgV0ZTRGF0YVNvdXJjZSxcbiAgV0ZTRGF0YVNvdXJjZU9wdGlvbnMsXG4gIFdNU0RhdGFTb3VyY2UsXG4gIFdNU0RhdGFTb3VyY2VPcHRpb25zLFxuICBXTVRTRGF0YVNvdXJjZSxcbiAgV01UU0RhdGFTb3VyY2VPcHRpb25zLFxuICBXZWJTb2NrZXREYXRhU291cmNlLFxuICBYWVpEYXRhU291cmNlLFxuICBYWVpEYXRhU291cmNlT3B0aW9uc1xufSBmcm9tICcuL2RhdGFzb3VyY2VzJztcbmltcG9ydCB7IFdGU1NlcnZpY2UgfSBmcm9tICcuL2RhdGFzb3VyY2VzL3dmcy5zZXJ2aWNlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9vcHRpb25zL29wdGlvbnMuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGFTb3VyY2VTZXJ2aWNlIHtcbiAgcHVibGljIGRhdGFzb3VyY2VzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RGF0YVNvdXJjZVtdPihbXSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjYXBhYmlsaXRpZXNTZXJ2aWNlOiBDYXBhYmlsaXRpZXNTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICAgIHByaXZhdGUgd2ZzRGF0YVNvdXJjZVNlcnZpY2U6IFdGU1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBsYW5ndWFnZVNlcnZpY2U6IExhbmd1YWdlU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvclxuICApIHt9XG5cbiAgY3JlYXRlQXN5bmNEYXRhU291cmNlKFxuICAgIGNvbnRleHQ6IEFueURhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPERhdGFTb3VyY2U+IHtcbiAgICBpZiAoIWNvbnRleHQudHlwZSkge1xuICAgICAgY29uc29sZS5lcnJvcihjb250ZXh0KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcignRGF0YXNvdXJjZSBuZWVkcyBhIHR5cGUnKTtcbiAgICB9XG4gICAgbGV0IGRhdGFTb3VyY2U7XG4gICAgc3dpdGNoIChjb250ZXh0LnR5cGUudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSAnb3NtJzpcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlT1NNRGF0YVNvdXJjZShjb250ZXh0IGFzIE9TTURhdGFTb3VyY2VPcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd2ZWN0b3InOlxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVGZWF0dXJlRGF0YVNvdXJjZShcbiAgICAgICAgICBjb250ZXh0IGFzIEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3dmcyc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdGU0RhdGFTb3VyY2UoY29udGV4dCBhcyBXRlNEYXRhU291cmNlT3B0aW9ucyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnd21zJzpcbiAgICAgICAgY29uc3Qgd21zQ29udGV4dCA9IGNvbnRleHQgYXMgV01TRGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgICAgIE9iamVjdFV0aWxzLnJlbW92ZUR1cGxpY2F0ZUNhc2VJbnNlbnNpdGl2ZSh3bXNDb250ZXh0LnBhcmFtcyk7XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVdNU0RhdGFTb3VyY2Uod21zQ29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3bXRzJzpcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlV01UU0RhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBXTVRTRGF0YVNvdXJjZU9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd4eXonOlxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVYWVpEYXRhU291cmNlKGNvbnRleHQgYXMgWFlaRGF0YVNvdXJjZU9wdGlvbnMpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3RpbGVkZWJ1Zyc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBUaWxlRGVidWdEYXRhU291cmNlXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2FydG8nOlxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVDYXJ0b0RhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnYXJjZ2lzcmVzdCc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUFyY0dJU1Jlc3REYXRhU291cmNlKFxuICAgICAgICAgIGNvbnRleHQgYXMgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICAgICAgICAgIGRldGFpbGVkQ29udGV4dFVyaVxuICAgICAgICApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2ltYWdlYXJjZ2lzcmVzdCc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2UoXG4gICAgICAgICAgY29udGV4dCBhcyBBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlT3B0aW9ucyxcbiAgICAgICAgICBkZXRhaWxlZENvbnRleHRVcmlcbiAgICAgICAgKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3ZWJzb2NrZXQnOlxuICAgICAgICBkYXRhU291cmNlID0gdGhpcy5jcmVhdGVXZWJTb2NrZXREYXRhU291cmNlKFxuICAgICAgICAgIGNvbnRleHQgYXMgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnbXZ0JzpcbiAgICAgICAgZGF0YVNvdXJjZSA9IHRoaXMuY3JlYXRlTVZURGF0YVNvdXJjZShjb250ZXh0IGFzIE1WVERhdGFTb3VyY2VPcHRpb25zKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd0aWxlYXJjZ2lzcmVzdCc6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcbiAgICAgICAgICBjb250ZXh0IGFzIFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgICAgICAgZGV0YWlsZWRDb250ZXh0VXJpXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnY2x1c3Rlcic6XG4gICAgICAgIGRhdGFTb3VyY2UgPSB0aGlzLmNyZWF0ZUNsdXN0ZXJEYXRhU291cmNlKFxuICAgICAgICAgIGNvbnRleHQgYXMgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXG4gICAgICAgICk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc29sZS5lcnJvcihjb250ZXh0KTtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGFzb3VyY2UgdHlwZScpO1xuICAgIH1cblxuICAgIHRoaXMuZGF0YXNvdXJjZXMkLm5leHQodGhpcy5kYXRhc291cmNlcyQudmFsdWUuY29uY2F0KFtkYXRhU291cmNlXSkpO1xuXG4gICAgcmV0dXJuIGRhdGFTb3VyY2U7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9TTURhdGFTb3VyY2UoXG4gICAgY29udGV4dDogT1NNRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxPU01EYXRhU291cmNlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IE9TTURhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRmVhdHVyZURhdGFTb3VyY2UoXG4gICAgY29udGV4dDogRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8RmVhdHVyZURhdGFTb3VyY2U+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgRmVhdHVyZURhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV2ViU29ja2V0RGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxXZWJTb2NrZXREYXRhU291cmNlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFdlYlNvY2tldERhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV0ZTRGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBXRlNEYXRhU291cmNlT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFdGU0RhdGFTb3VyY2U+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+XG4gICAgICBkLm5leHQoXG4gICAgICAgIG5ldyBXRlNEYXRhU291cmNlKFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgdGhpcy53ZnNEYXRhU291cmNlU2VydmljZSxcbiAgICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvclxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV01TRGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBXTVNEYXRhU291cmNlT3B0aW9ucyxcbiAgICBkZXRhaWxlZENvbnRleHRVcmk/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xuICAgIGlmIChjb250ZXh0Lm9wdGlvbnNGcm9tQ2FwYWJpbGl0aWVzICYmIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0V01TT3B0aW9ucyhjb250ZXh0KS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxuICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXG4gICAgKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlLmdldFdNU09wdGlvbnMoY29udGV4dCwgZGV0YWlsZWRDb250ZXh0VXJpKS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgIGUuZXJyb3IudGl0bGUgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGUuZXJyb3IubWVzc2FnZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuXG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XG5cbiAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUoXG4gICAgICBtYXAoKG9wdGlvbnM6IFdNU0RhdGFTb3VyY2VPcHRpb25zW10pID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uc01lcmdlZCA9IG9wdGlvbnMucmVkdWNlKChhLCBiKSA9PlxuICAgICAgICAgIE9iamVjdFV0aWxzLm1lcmdlRGVlcChhLCBiKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gbmV3IFdNU0RhdGFTb3VyY2Uob3B0aW9uc01lcmdlZCwgdGhpcy53ZnNEYXRhU291cmNlU2VydmljZSk7XG4gICAgICB9KSxcbiAgICAgIGNhdGNoRXJyb3IoKCkgPT4ge1xuICAgICAgICByZXR1cm4gb2YodW5kZWZpbmVkKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV01UU0RhdGFTb3VyY2UoXG4gICAgY29udGV4dDogV01UU0RhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8V01UU0RhdGFTb3VyY2U+IHtcbiAgICBpZiAoY29udGV4dC5vcHRpb25zRnJvbUNhcGFiaWxpdGllcyAmJiB3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZS5nZXRXTVRTT3B0aW9ucyhjb250ZXh0KS5waXBlKFxuICAgICAgICBtYXAoKG9wdGlvbnM6IFdNVFNEYXRhU291cmNlT3B0aW9ucykgPT4ge1xuICAgICAgICAgIHJldHVybiBvcHRpb25zID8gbmV3IFdNVFNEYXRhU291cmNlKG9wdGlvbnMpIDogdW5kZWZpbmVkO1xuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxuICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQubGF5ZXIgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBXTVRTRGF0YVNvdXJjZShjb250ZXh0KSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVYWVpEYXRhU291cmNlKFxuICAgIGNvbnRleHQ6IFhZWkRhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8WFlaRGF0YVNvdXJjZT4ge1xuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoZCkgPT4gZC5uZXh0KG5ldyBYWVpEYXRhU291cmNlKGNvbnRleHQpKSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpbGVEZWJ1Z0RhdGFTb3VyY2UoXG4gICAgY29udGV4dDogVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxUaWxlRGVidWdEYXRhU291cmNlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IFRpbGVEZWJ1Z0RhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2FydG9EYXRhU291cmNlKFxuICAgIGNvbnRleHQ6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxDYXJ0b0RhdGFTb3VyY2U+IHtcbiAgICBpZiAoY29udGV4dC5tYXBJZCkge1xuICAgICAgcmV0dXJuIHRoaXMuY2FwYWJpbGl0aWVzU2VydmljZVxuICAgICAgICAuZ2V0Q2FydG9PcHRpb25zKGNvbnRleHQpXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgob3B0aW9uczogQ2FydG9EYXRhU291cmNlT3B0aW9ucykgPT4gbmV3IENhcnRvRGF0YVNvdXJjZShvcHRpb25zKSlcbiAgICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IENhcnRvRGF0YVNvdXJjZShjb250ZXh0KSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMsXG4gICAgZGV0YWlsZWRDb250ZXh0VXJpPzogc3RyaW5nXG4gICk6IE9ic2VydmFibGU8QXJjR0lTUmVzdERhdGFTb3VyY2U+IHtcbiAgICBjb25zdCBvYnNlcnZhYmxlcyA9IFtdO1xuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEFyY2dpc09wdGlvbnMoY29udGV4dCkucGlwZShcbiAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmVycm9yKFxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlJyxcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJyxcbiAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICB7IHZhbHVlOiBjb250ZXh0LmxheWVyIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXG4gICAgKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xuICAgICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxuICAgICAgbWFwKChvcHRpb25zOiBBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5ldyBBcmNHSVNSZXN0RGF0YVNvdXJjZShvcHRpb25zTWVyZ2VkKTtcbiAgICAgIH0pLFxuICAgICAgY2F0Y2hFcnJvcigoKSA9PiB7XG4gICAgICAgIHJldHVybiBvZih1bmRlZmluZWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBcmNHSVNSZXN0SW1hZ2VEYXRhU291cmNlKFxuICAgIGNvbnRleHQ6IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zPiB7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZXMgPSBbXTtcblxuICAgIGlmICh3aW5kb3cubmF2aWdhdG9yLm9uTGluZSkge1xuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcbiAgICAgICAgdGhpcy5jYXBhYmlsaXRpZXNTZXJ2aWNlLmdldEltYWdlQXJjZ2lzT3B0aW9ucyhjb250ZXh0KS5waXBlKFxuICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGUnLFxuICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLnVuYXZhaWxhYmxlVGl0bGUnLFxuICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIHsgdmFsdWU6IGNvbnRleHQucGFyYW1zLkxBWUVSUyB9XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAoXG4gICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlICYmXG4gICAgICBjb250ZXh0Lm9wdGlvbnNGcm9tQXBpICYmXG4gICAgICB3aW5kb3cubmF2aWdhdG9yLm9uTGluZVxuICAgICkge1xuICAgICAgb2JzZXJ2YWJsZXMucHVzaChcbiAgICAgICAgdGhpcy5vcHRpb25zU2VydmljZVxuICAgICAgICAgIC5nZXRBcmNnaXNSZXN0T3B0aW9ucyhjb250ZXh0LCBkZXRhaWxlZENvbnRleHRVcmkpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgICAgIGUuZXJyb3IudG9EaXNwbGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgZS5lcnJvci50aXRsZSA9IHRoaXMubGFuZ3VhZ2VTZXJ2aWNlLnRyYW5zbGF0ZS5pbnN0YW50KFxuICAgICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgZS5lcnJvci5tZXNzYWdlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS5vcHRpb25zQXBpVW5hdmFpbGFibGUnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIG9ic2VydmFibGVzLnB1c2gob2YoY29udGV4dCkpO1xuICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShcbiAgICAgIG1hcCgob3B0aW9uczogSW1hZ2VBcmNHSVNSZXN0RGF0YVNvdXJjZVtdKSA9PiB7XG4gICAgICAgIGNvbnN0IG9wdGlvbnNNZXJnZWQgPSBvcHRpb25zLnJlZHVjZSgoYSwgYikgPT5cbiAgICAgICAgICBPYmplY3RVdGlscy5tZXJnZURlZXAoYSwgYilcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIG5ldyBJbWFnZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZShcbiAgICBjb250ZXh0OiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zLFxuICAgIGRldGFpbGVkQ29udGV4dFVyaT86IHN0cmluZ1xuICApOiBPYnNlcnZhYmxlPFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZT4ge1xuICAgIGNvbnN0IG9ic2VydmFibGVzID0gW107XG4gICAgaWYgKHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLmNhcGFiaWxpdGllc1NlcnZpY2UuZ2V0SW1hZ2VBcmNnaXNPcHRpb25zKGNvbnRleHQpLnBpcGUoXG4gICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5lcnJvcihcbiAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZScsXG4gICAgICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZScsXG4gICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgeyB2YWx1ZTogY29udGV4dC5wYXJhbXMuTEFZRVJTIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChcbiAgICAgIHRoaXMub3B0aW9uc1NlcnZpY2UgJiZcbiAgICAgIGNvbnRleHQub3B0aW9uc0Zyb21BcGkgJiZcbiAgICAgIHdpbmRvdy5uYXZpZ2F0b3Iub25MaW5lXG4gICAgKSB7XG4gICAgICBvYnNlcnZhYmxlcy5wdXNoKFxuICAgICAgICB0aGlzLm9wdGlvbnNTZXJ2aWNlXG4gICAgICAgICAgLmdldEFyY2dpc1Jlc3RPcHRpb25zKGNvbnRleHQsIGRldGFpbGVkQ29udGV4dFVyaSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgICAgICAgICAgZS5lcnJvci50b0Rpc3BsYXkgPSB0cnVlO1xuICAgICAgICAgICAgICBlLmVycm9yLnRpdGxlID0gdGhpcy5sYW5ndWFnZVNlcnZpY2UudHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgJ2lnby5nZW8uZGF0YVNvdXJjZS51bmF2YWlsYWJsZVRpdGxlJ1xuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICBlLmVycm9yLm1lc3NhZ2UgPSB0aGlzLmxhbmd1YWdlU2VydmljZS50cmFuc2xhdGUuaW5zdGFudChcbiAgICAgICAgICAgICAgICAnaWdvLmdlby5kYXRhU291cmNlLm9wdGlvbnNBcGlVbmF2YWlsYWJsZSdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgKTtcbiAgICB9XG4gICAgb2JzZXJ2YWJsZXMucHVzaChvZihjb250ZXh0KSk7XG4gICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKFxuICAgICAgbWFwKChvcHRpb25zOiBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2VbXSkgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25zTWVyZ2VkID0gb3B0aW9ucy5yZWR1Y2UoKGEsIGIpID0+XG4gICAgICAgICAgT2JqZWN0VXRpbHMubWVyZ2VEZWVwKGEsIGIpXG4gICAgICAgICk7XG4gICAgICAgIHJldHVybiBuZXcgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlKG9wdGlvbnNNZXJnZWQpO1xuICAgICAgfSksXG4gICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIG9mKHVuZGVmaW5lZCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU1WVERhdGFTb3VyY2UoXG4gICAgY29udGV4dDogTVZURGF0YVNvdXJjZU9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxNVlREYXRhU291cmNlPiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChkKSA9PiBkLm5leHQobmV3IE1WVERhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2x1c3RlckRhdGFTb3VyY2UoXG4gICAgY29udGV4dDogQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zXG4gICk6IE9ic2VydmFibGU8Q2x1c3RlckRhdGFTb3VyY2U+IHtcbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKGQpID0+IGQubmV4dChuZXcgQ2x1c3RlckRhdGFTb3VyY2UoY29udGV4dCkpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYW55LWRhdGFzb3VyY2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2FyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FydG9EYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vY2FydG8tZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9jbHVzdGVyLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2ZlYXR1cmUtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQXJjR0lTUmVzdEltYWdlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2ltYWdlYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBNVlREYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vbXZ0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9TTURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9vc20tZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vdGlsZWFyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGlsZURlYnVnRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL3RpbGVkZWJ1Zy1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4vd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXMtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV01UU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi93bXRzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IFhZWkRhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi94eXotZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBBbnlEYXRhU291cmNlT3B0aW9ucyA9XG4gIHwgRGF0YVNvdXJjZU9wdGlvbnNcbiAgfCBPU01EYXRhU291cmNlT3B0aW9uc1xuICB8IEZlYXR1cmVEYXRhU291cmNlT3B0aW9uc1xuICB8IFdGU0RhdGFTb3VyY2VPcHRpb25zXG4gIHwgWFlaRGF0YVNvdXJjZU9wdGlvbnNcbiAgfCBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9uc1xuICB8IFdNVFNEYXRhU291cmNlT3B0aW9uc1xuICB8IFdNU0RhdGFTb3VyY2VPcHRpb25zXG4gIHwgQ2FydG9EYXRhU291cmNlT3B0aW9uc1xuICB8IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICB8IEFyY0dJU1Jlc3RJbWFnZURhdGFTb3VyY2VPcHRpb25zXG4gIHwgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xuICB8IE1WVERhdGFTb3VyY2VPcHRpb25zXG4gIHwgQ2x1c3RlckRhdGFTb3VyY2VPcHRpb25zO1xuIl19
|
|
@@ -209,4 +209,4 @@ export class ArcGISRestDataSource extends DataSource {
|
|
|
209
209
|
}
|
|
210
210
|
onUnwatch() { }
|
|
211
211
|
}
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjZ2lzcmVzdC1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYXJjZ2lzcmVzdC1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sZ0JBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFFbEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFVBQVU7SUFJeEMsY0FBYztRQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUM5QyxRQUFRLEVBQUUsS0FBSztZQUNmLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLEdBQUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSTtnQkFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFDeEUsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQ2pDLFVBQVU7b0JBQ1IsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxVQUFVO29CQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1QsVUFBVTtvQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNULFVBQVU7b0JBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxzQ0FBc0MsQ0FDekMsQ0FBQztn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SCxXQUFXO3dCQUNYLEdBQUc7d0JBQ0gsSUFBSTt3QkFDSixXQUFXLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUc7b0JBQ0QsK0VBQStFO3dCQUMvRSxNQUFNO3dCQUNOLEdBQUc7d0JBQ0gsV0FBVzt3QkFDWCxHQUFHO3dCQUNILElBQUk7d0JBQ0osV0FBVyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sU0FBUyxLQUFJLENBQUM7Q0FDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xGb3JtYXRFc3JpSlNPTiBmcm9tICdvbC9mb3JtYXQvRXNyaUpTT04nO1xyXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgKiBhcyBvbGxvYWRpbmdzdHJhdGVneSBmcm9tICdvbC9sb2FkaW5nc3RyYXRlZ3knO1xyXG5pbXBvcnQgb2xTb3VyY2VWZWN0b3IgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XHJcblxyXG5pbXBvcnQgeyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2FyY2dpc3Jlc3QtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi9kYXRhc291cmNlJztcclxuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgY2xhc3MgQXJjR0lTUmVzdERhdGFTb3VyY2UgZXh0ZW5kcyBEYXRhU291cmNlIHtcclxuICBwdWJsaWMgZGVjbGFyZSBvbDogb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT47XHJcbiAgcHVibGljIGRlY2xhcmUgb3B0aW9uczogQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zO1xyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlT2xTb3VyY2UoKTogb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT4ge1xyXG4gICAgY29uc3QgZXNyaWpzb25Gb3JtYXQgPSBuZXcgb2xGb3JtYXRFc3JpSlNPTigpO1xyXG4gICAgcmV0dXJuIG5ldyBvbFNvdXJjZVZlY3Rvcih7XHJcbiAgICAgIGF0dHJpYnV0aW9uczogdGhpcy5vcHRpb25zLnBhcmFtcy5hdHRyaWJ1dGlvbnMsXHJcbiAgICAgIG92ZXJsYXBzOiBmYWxzZSxcclxuICAgICAgZm9ybWF0OiBlc3JpanNvbkZvcm1hdCxcclxuICAgICAgdXJsOiBmdW5jdGlvbiAoZXh0ZW50LCByZXNvbHV0aW9uLCBwcm9qKSB7XHJcbiAgICAgICAgY29uc3QgYmFzZVVybCA9IHRoaXMub3B0aW9ucy51cmwgKyAnLycgKyB0aGlzLm9wdGlvbnMubGF5ZXIgKyAnL3F1ZXJ5Lyc7XHJcbiAgICAgICAgY29uc3QgZ2VvbWV0cnkgPSBlbmNvZGVVUklDb21wb25lbnQoXHJcbiAgICAgICAgICAne1wieG1pblwiOicgK1xyXG4gICAgICAgICAgICBleHRlbnRbMF0gK1xyXG4gICAgICAgICAgICAnLFwieW1pblwiOicgK1xyXG4gICAgICAgICAgICBleHRlbnRbMV0gK1xyXG4gICAgICAgICAgICAnLFwieG1heFwiOicgK1xyXG4gICAgICAgICAgICBleHRlbnRbMl0gK1xyXG4gICAgICAgICAgICAnLFwieW1heFwiOicgK1xyXG4gICAgICAgICAgICBleHRlbnRbM10gK1xyXG4gICAgICAgICAgICAnLFwic3BhdGlhbFJlZmVyZW5jZVwiOntcIndraWRcIjoxMDIxMDB9fSdcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IHBhcmFtcyA9IFtcclxuICAgICAgICAgICdmPWpzb24nLFxyXG4gICAgICAgICAgYGdlb21ldHJ5PSR7Z2VvbWV0cnl9YCxcclxuICAgICAgICAgICdnZW9tZXRyeVR5cGU9ZXNyaUdlb21ldHJ5RW52ZWxvcGUnLFxyXG4gICAgICAgICAgJ2luU1I9MTAyMTAwJyxcclxuICAgICAgICAgICdzcGF0aWFsUmVsPWVzcmlTcGF0aWFsUmVsSW50ZXJzZWN0cycsXHJcbiAgICAgICAgICAnb3V0RmllbGRzPSonLFxyXG4gICAgICAgICAgJ3JldHVybkdlb21ldHJ5PXRydWUnLFxyXG4gICAgICAgICAgJ291dFNSPTEwMjEwMCdcclxuICAgICAgICBdO1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFyYW1zLnRpbWUpIHtcclxuICAgICAgICAgIGNvbnN0IHRpbWUgPSBgdGltZT0ke3RoaXMub3B0aW9ucy5wYXJhbXMudGltZX1gO1xyXG4gICAgICAgICAgcGFyYW1zLnB1c2godGltZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFyYW1zLmN1c3RvbVBhcmFtcykge1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLnBhcmFtcy5jdXN0b21QYXJhbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgICAgICBwYXJhbXMucHVzaChlbGVtZW50KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gYCR7YmFzZVVybH0/JHtwYXJhbXMuam9pbignJicpfWA7XHJcbiAgICAgIH0uYmluZCh0aGlzKSxcclxuICAgICAgc3RyYXRlZ3k6IG9sbG9hZGluZ3N0cmF0ZWd5LmJib3hcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0TGVnZW5kKCk6IExlZ2VuZFtdIHtcclxuICAgIGNvbnN0IGxlZ2VuZEluZm8gPSB0aGlzLm9wdGlvbnMubGVnZW5kSW5mbztcclxuICAgIGNvbnN0IGxlZ2VuZCA9IHN1cGVyLmdldExlZ2VuZCgpO1xyXG4gICAgaWYgKGxlZ2VuZEluZm8gPT09IHVuZGVmaW5lZCB8fCBsZWdlbmQubGVuZ3RoID4gMCkge1xyXG4gICAgICByZXR1cm4gbGVnZW5kO1xyXG4gICAgfVxyXG4gICAgaWYgKCFsZWdlbmRJbmZvKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGxldCBodG1sU3RyaW5nID0gJzx0YWJsZT4nO1xyXG4gICAgbGV0IHNyYzogc3RyaW5nO1xyXG4gICAgbGV0IGxhYmVsOiBzdHJpbmc7XHJcbiAgICBsZXQgc3ZnOiBzdHJpbmc7XHJcblxyXG4gICAgaWYgKGxlZ2VuZEluZm8ubGVnZW5kKSB7XHJcbiAgICAgIGZvciAoY29uc3QgbGVnZW5kRWxlbWVudCBvZiBsZWdlbmRJbmZvLmxlZ2VuZCkge1xyXG4gICAgICAgIHNyYyA9IHRoaXMuaHRtbEltZ1NyYyhcclxuICAgICAgICAgIGxlZ2VuZEVsZW1lbnQuY29udGVudFR5cGUsXHJcbiAgICAgICAgICBsZWdlbmRFbGVtZW50LmltYWdlRGF0YVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgbGFiZWwgPSBsZWdlbmRFbGVtZW50LmxhYmVsXHJcbiAgICAgICAgICA/IGxlZ2VuZEVsZW1lbnQubGFiZWwucmVwbGFjZSgnPE51bGw+JywgJ051bGwnKVxyXG4gICAgICAgICAgOiAnJztcclxuICAgICAgICBodG1sU3RyaW5nICs9XHJcbiAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcclxuICAgICAgICAgIHNyYyArXHJcbiAgICAgICAgICBgXCIgYWx0ID0nJyAvPjwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcclxuICAgICAgICAgIGxhYmVsICtcclxuICAgICAgICAgICc8L3RkPjwvdHI+JztcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnR5cGUgPT09ICd1bmlxdWVWYWx1ZScpIHtcclxuICAgICAgZm9yIChjb25zdCBsZWdlbmRFbGVtZW50IG9mIGxlZ2VuZEluZm8udW5pcXVlVmFsdWVJbmZvcykge1xyXG4gICAgICAgIGxhYmVsID0gbGVnZW5kRWxlbWVudC5sYWJlbC5yZXBsYWNlKCc8TnVsbD4nLCAnTnVsbCcpO1xyXG4gICAgICAgIGlmIChsZWdlbmRFbGVtZW50LnN5bWJvbC50eXBlID09PSAnZXNyaVBNUycpIHtcclxuICAgICAgICAgIHNyYyA9IHRoaXMuaHRtbEltZ1NyYyhcclxuICAgICAgICAgICAgbGVnZW5kRWxlbWVudC5zeW1ib2wuY29udGVudFR5cGUsXHJcbiAgICAgICAgICAgIGxlZ2VuZEVsZW1lbnQuc3ltYm9sLmltYWdlRGF0YVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIGh0bWxTdHJpbmcgKz1cclxuICAgICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPjxpbWcgc3JjPVwiYCArXHJcbiAgICAgICAgICAgIHNyYyArXHJcbiAgICAgICAgICAgIGBcIiBhbHQgPScnIC8+PC90ZD48dGQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPmAgK1xyXG4gICAgICAgICAgICBsYWJlbCArXHJcbiAgICAgICAgICAgICc8L3RkPjwvdHI+JztcclxuICAgICAgICB9IGVsc2UgaWYgKGxlZ2VuZEVsZW1lbnQuc3ltYm9sLnR5cGUgIT09ICdlc3JpUE1TJykge1xyXG4gICAgICAgICAgc3ZnID0gdGhpcy5jcmVhdGVTVkcobGVnZW5kRWxlbWVudC5zeW1ib2wpO1xyXG4gICAgICAgICAgaHRtbFN0cmluZyArPVxyXG4gICAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+YCArXHJcbiAgICAgICAgICAgIHN2ZyArXHJcbiAgICAgICAgICAgIGA8L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXHJcbiAgICAgICAgICAgIGxhYmVsICtcclxuICAgICAgICAgICAgJzwvdGQ+PC90cj4nO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnR5cGUgPT09ICdzaW1wbGUnKSB7XHJcbiAgICAgIGxhYmVsID0gbGVnZW5kSW5mby5sYWJlbFxyXG4gICAgICAgID8gbGVnZW5kSW5mby5sYWJlbC5yZXBsYWNlKCc8TnVsbD4nLCAnTnVsbCcpXHJcbiAgICAgICAgOiAnJztcclxuICAgICAgaWYgKGxlZ2VuZEluZm8uc3ltYm9sLnR5cGUgPT09ICdlc3JpUE1TJykge1xyXG4gICAgICAgIHNyYyA9IHRoaXMuaHRtbEltZ1NyYyhcclxuICAgICAgICAgIGxlZ2VuZEluZm8uc3ltYm9sLmNvbnRlbnRUeXBlLFxyXG4gICAgICAgICAgbGVnZW5kSW5mby5zeW1ib2wuaW1hZ2VEYXRhXHJcbiAgICAgICAgKTtcclxuICAgICAgICBodG1sU3RyaW5nICs9XHJcbiAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcclxuICAgICAgICAgIHNyYyArXHJcbiAgICAgICAgICBgXCIgYWx0ID0nJyAvPjwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcclxuICAgICAgICAgIGxhYmVsICtcclxuICAgICAgICAgICc8L3RkPjwvdHI+JztcclxuICAgICAgfSBlbHNlIGlmIChsZWdlbmRJbmZvLnN5bWJvbC50eXBlICE9PSAnZXNyaVBNUycpIHtcclxuICAgICAgICBzdmcgPSB0aGlzLmNyZWF0ZVNWRyhsZWdlbmRJbmZvLnN5bWJvbCk7XHJcbiAgICAgICAgaHRtbFN0cmluZyArPVxyXG4gICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPmAgK1xyXG4gICAgICAgICAgc3ZnICtcclxuICAgICAgICAgIGA8L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXHJcbiAgICAgICAgICBsYWJlbCArXHJcbiAgICAgICAgICAnPC90ZD48L3RyPic7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGh0bWxTdHJpbmcgKz0gJzwvdGFibGU+JztcclxuICAgIHJldHVybiBbeyBodG1sOiBodG1sU3RyaW5nIH1dO1xyXG4gIH1cclxuXHJcbiAgaHRtbEltZ1NyYyhjb250ZW50VHlwZTogc3RyaW5nLCBpbWFnZURhdGE6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYGRhdGE6JHtjb250ZW50VHlwZX07YmFzZTY0LCR7aW1hZ2VEYXRhfWA7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVTVkcoc3ltYm9sKTogc3RyaW5nIHtcclxuICAgIGxldCBzdmc6IHN0cmluZyA9ICcnO1xyXG5cclxuICAgIGNvbnN0IGNvbG9yOiBBcnJheTxudW1iZXI+ID0gc3ltYm9sLmNvbG9yID8gc3ltYm9sLmNvbG9yIDogWzAsIDAsIDAsIDBdO1xyXG5cclxuICAgIGlmIChzeW1ib2wudHlwZSA9PT0gJ2VzcmlTTFMnKSB7XHJcbiAgICAgIGNvbnN0IHdpZHRoOiBudW1iZXIgPSBzeW1ib2wud2lkdGggPyBzeW1ib2wud2lkdGggOiAwO1xyXG5cclxuICAgICAgY29uc3Qgc3Ryb2tlOiBzdHJpbmcgPVxyXG4gICAgICAgIGBzdHJva2U6cmdiYShgICtcclxuICAgICAgICBjb2xvclswXSArXHJcbiAgICAgICAgJywnICtcclxuICAgICAgICBjb2xvclsxXSArXHJcbiAgICAgICAgJywnICtcclxuICAgICAgICBjb2xvclsyXSArXHJcbiAgICAgICAgJywnICtcclxuICAgICAgICBjb2xvclszXSArXHJcbiAgICAgICAgJyknO1xyXG4gICAgICBjb25zdCBzdHJva2VXaWR0aDogc3RyaW5nID0gYHN0cm9rZS13aWR0aDpgICsgd2lkdGg7XHJcblxyXG4gICAgICBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNMU1NvbGlkJykge1xyXG4gICAgICAgIHN2ZyA9XHJcbiAgICAgICAgICBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48bGluZSB4MT1cIjBcIiB5MT1cIjE1XCIgeDI9XCIzMFwiIHkyPVwiMTVcIiBzdHlsZT1cImAgK1xyXG4gICAgICAgICAgc3Ryb2tlICtcclxuICAgICAgICAgICc7JyArXHJcbiAgICAgICAgICBzdHJva2VXaWR0aCArXHJcbiAgICAgICAgICBgXCIvPjwvc3ZnPmA7XHJcbiAgICAgIH0gZWxzZSBpZiAoc3ltYm9sLnN0eWxlID09PSAnZXNyaVNMU0Rhc2gnKSB7XHJcbiAgICAgICAgY29uc3Qgc3Ryb2tlRGFzaEFycmF5OiBzdHJpbmcgPSBgc3Ryb2tlLWRhc2hhcnJheT1cIjUsNVwiYDtcclxuICAgICAgICBzdmcgPVxyXG4gICAgICAgICAgYDxzdmcgaGVpZ2h0PVwiMzBcIiB3aWR0aD1cIjMwXCI+PGxpbmUgeDE9XCIwXCIgeTE9XCIxNVwiIHgyPVwiMzBcIiB5Mj1cIjE1XCIgc3R5bGU9XCJgICtcclxuICAgICAgICAgIHN0cm9rZSArXHJcbiAgICAgICAgICAnOycgK1xyXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xyXG4gICAgICAgICAgYFwiIGAgK1xyXG4gICAgICAgICAgc3Ryb2tlRGFzaEFycmF5ICtcclxuICAgICAgICAgIGAvPjwvc3ZnPmA7XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoXHJcbiAgICAgIHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDaXJjbGUnIHx8XHJcbiAgICAgIHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTRlNTb2xpZCdcclxuICAgICkge1xyXG4gICAgICBjb25zdCBvdXRsaW5lQ29sb3IgPSBzeW1ib2wub3V0bGluZS5jb2xvcjtcclxuICAgICAgY29uc3Qgb3V0bGluZVdpZHRoID0gc3ltYm9sLm91dGxpbmUud2lkdGg7XHJcbiAgICAgIGNvbnN0IHNpemUgPSBzeW1ib2wuc2l6ZTtcclxuXHJcbiAgICAgIGNvbnN0IHN0cm9rZSA9XHJcbiAgICAgICAgYHN0cm9rZTpyZ2JhKGAgK1xyXG4gICAgICAgIG91dGxpbmVDb2xvclswXSArXHJcbiAgICAgICAgJywnICtcclxuICAgICAgICBvdXRsaW5lQ29sb3JbMV0gK1xyXG4gICAgICAgICcsJyArXHJcbiAgICAgICAgb3V0bGluZUNvbG9yWzJdICtcclxuICAgICAgICAnLCcgK1xyXG4gICAgICAgIG91dGxpbmVDb2xvclszXSArXHJcbiAgICAgICAgJyknO1xyXG4gICAgICBjb25zdCBzdHJva2VXaWR0aCA9IGBzdHJva2Utd2lkdGg6YCArIG91dGxpbmVXaWR0aDtcclxuICAgICAgY29uc3QgZmlsbCA9XHJcbiAgICAgICAgYGZpbGw6cmdiYShgICtcclxuICAgICAgICBjb2xvclswXSArXHJcbiAgICAgICAgJywnICtcclxuICAgICAgICBjb2xvclsxXSArXHJcbiAgICAgICAgJywnICtcclxuICAgICAgICBjb2xvclsyXSArXHJcbiAgICAgICAgJywnICtcclxuICAgICAgICBjb2xvclszXSArXHJcbiAgICAgICAgJyknO1xyXG5cclxuICAgICAgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTVNDaXJjbGUnKSB7XHJcbiAgICAgICAgc3ZnID1cclxuICAgICAgICAgIGA8c3ZnIGhlaWdodD1cIjMwXCIgd2lkdGg9XCIzMFwiPjxjaXJjbGUgY3g9XCIxNVwiIGN5PVwiMTVcIiByPVwiYCArXHJcbiAgICAgICAgICBzaXplIC8gMiArXHJcbiAgICAgICAgICBgXCIgc3R5bGU9XCJgICtcclxuICAgICAgICAgIHN0cm9rZSArXHJcbiAgICAgICAgICAnOycgK1xyXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xyXG4gICAgICAgICAgJzsnICtcclxuICAgICAgICAgIGZpbGwgK1xyXG4gICAgICAgICAgYFwiLz48L3N2Zz5gO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHN2ZyA9XHJcbiAgICAgICAgICBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48cmVjdCB4PVwiNVwiIHk9XCI1XCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgc3R5bGUgPVwiYCArXHJcbiAgICAgICAgICBzdHJva2UgK1xyXG4gICAgICAgICAgJzsnICtcclxuICAgICAgICAgIHN0cm9rZVdpZHRoICtcclxuICAgICAgICAgICc7JyArXHJcbiAgICAgICAgICBmaWxsICtcclxuICAgICAgICAgIGBcIi8+PC9zdmc+YDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHN2ZztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7fVxyXG59XHJcbiJdfQ==
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJjZ2lzcmVzdC1kYXRhc291cmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvYXJjZ2lzcmVzdC1kYXRhc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sZ0JBQWdCLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxLQUFLLGlCQUFpQixNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sY0FBYyxNQUFNLGtCQUFrQixDQUFDO0FBRzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLG9CQUFxQixTQUFRLFVBQVU7SUFJeEMsY0FBYztRQUN0QixNQUFNLGNBQWMsR0FBRyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDOUMsT0FBTyxJQUFJLGNBQWMsQ0FBQztZQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUM5QyxRQUFRLEVBQUUsS0FBSztZQUNmLE1BQU0sRUFBRSxjQUFjO1lBQ3RCLEdBQUcsRUFBRSxVQUFVLE1BQU0sRUFBRSxVQUFVLEVBQUUsSUFBSTtnQkFDckMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQztnQkFDeEUsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQ2pDLFVBQVU7b0JBQ1IsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxVQUFVO29CQUNWLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1QsVUFBVTtvQkFDVixNQUFNLENBQUMsQ0FBQyxDQUFDO29CQUNULFVBQVU7b0JBQ1YsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDVCxzQ0FBc0MsQ0FDekMsQ0FBQztn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SCxXQUFXO3dCQUNYLEdBQUc7d0JBQ0gsSUFBSTt3QkFDSixXQUFXLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLEdBQUc7b0JBQ0QsK0VBQStFO3dCQUMvRSxNQUFNO3dCQUNOLEdBQUc7d0JBQ0gsV0FBVzt3QkFDWCxHQUFHO3dCQUNILElBQUk7d0JBQ0osV0FBVyxDQUFDO1lBQ2hCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sU0FBUyxLQUFJLENBQUM7Q0FDdEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xGb3JtYXRFc3JpSlNPTiBmcm9tICdvbC9mb3JtYXQvRXNyaUpTT04nO1xuaW1wb3J0ICogYXMgb2xsb2FkaW5nc3RyYXRlZ3kgZnJvbSAnb2wvbG9hZGluZ3N0cmF0ZWd5JztcbmltcG9ydCBvbFNvdXJjZVZlY3RvciBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcblxuaW1wb3J0IHsgQXJjR0lTUmVzdERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9hcmNnaXNyZXN0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBBcmNHSVNSZXN0RGF0YVNvdXJjZSBleHRlbmRzIERhdGFTb3VyY2Uge1xuICBwdWJsaWMgZGVjbGFyZSBvbDogb2xTb3VyY2VWZWN0b3I7XG4gIHB1YmxpYyBkZWNsYXJlIG9wdGlvbnM6IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9ucztcblxuICBwcm90ZWN0ZWQgY3JlYXRlT2xTb3VyY2UoKTogb2xTb3VyY2VWZWN0b3Ige1xuICAgIGNvbnN0IGVzcmlqc29uRm9ybWF0ID0gbmV3IG9sRm9ybWF0RXNyaUpTT04oKTtcbiAgICByZXR1cm4gbmV3IG9sU291cmNlVmVjdG9yKHtcbiAgICAgIGF0dHJpYnV0aW9uczogdGhpcy5vcHRpb25zLnBhcmFtcy5hdHRyaWJ1dGlvbnMsXG4gICAgICBvdmVybGFwczogZmFsc2UsXG4gICAgICBmb3JtYXQ6IGVzcmlqc29uRm9ybWF0LFxuICAgICAgdXJsOiBmdW5jdGlvbiAoZXh0ZW50LCByZXNvbHV0aW9uLCBwcm9qKSB7XG4gICAgICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLm9wdGlvbnMudXJsICsgJy8nICsgdGhpcy5vcHRpb25zLmxheWVyICsgJy9xdWVyeS8nO1xuICAgICAgICBjb25zdCBnZW9tZXRyeSA9IGVuY29kZVVSSUNvbXBvbmVudChcbiAgICAgICAgICAne1wieG1pblwiOicgK1xuICAgICAgICAgICAgZXh0ZW50WzBdICtcbiAgICAgICAgICAgICcsXCJ5bWluXCI6JyArXG4gICAgICAgICAgICBleHRlbnRbMV0gK1xuICAgICAgICAgICAgJyxcInhtYXhcIjonICtcbiAgICAgICAgICAgIGV4dGVudFsyXSArXG4gICAgICAgICAgICAnLFwieW1heFwiOicgK1xuICAgICAgICAgICAgZXh0ZW50WzNdICtcbiAgICAgICAgICAgICcsXCJzcGF0aWFsUmVmZXJlbmNlXCI6e1wid2tpZFwiOjEwMjEwMH19J1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBwYXJhbXMgPSBbXG4gICAgICAgICAgJ2Y9anNvbicsXG4gICAgICAgICAgYGdlb21ldHJ5PSR7Z2VvbWV0cnl9YCxcbiAgICAgICAgICAnZ2VvbWV0cnlUeXBlPWVzcmlHZW9tZXRyeUVudmVsb3BlJyxcbiAgICAgICAgICAnaW5TUj0xMDIxMDAnLFxuICAgICAgICAgICdzcGF0aWFsUmVsPWVzcmlTcGF0aWFsUmVsSW50ZXJzZWN0cycsXG4gICAgICAgICAgJ291dEZpZWxkcz0qJyxcbiAgICAgICAgICAncmV0dXJuR2VvbWV0cnk9dHJ1ZScsXG4gICAgICAgICAgJ291dFNSPTEwMjEwMCdcbiAgICAgICAgXTtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5wYXJhbXMudGltZSkge1xuICAgICAgICAgIGNvbnN0IHRpbWUgPSBgdGltZT0ke3RoaXMub3B0aW9ucy5wYXJhbXMudGltZX1gO1xuICAgICAgICAgIHBhcmFtcy5wdXNoKHRpbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMucGFyYW1zLmN1c3RvbVBhcmFtcykge1xuICAgICAgICAgIHRoaXMub3B0aW9ucy5wYXJhbXMuY3VzdG9tUGFyYW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIHBhcmFtcy5wdXNoKGVsZW1lbnQpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBgJHtiYXNlVXJsfT8ke3BhcmFtcy5qb2luKCcmJyl9YDtcbiAgICAgIH0uYmluZCh0aGlzKSxcbiAgICAgIHN0cmF0ZWd5OiBvbGxvYWRpbmdzdHJhdGVneS5iYm94XG4gICAgfSk7XG4gIH1cblxuICBnZXRMZWdlbmQoKTogTGVnZW5kW10ge1xuICAgIGNvbnN0IGxlZ2VuZEluZm8gPSB0aGlzLm9wdGlvbnMubGVnZW5kSW5mbztcbiAgICBjb25zdCBsZWdlbmQgPSBzdXBlci5nZXRMZWdlbmQoKTtcbiAgICBpZiAobGVnZW5kSW5mbyA9PT0gdW5kZWZpbmVkIHx8IGxlZ2VuZC5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gbGVnZW5kO1xuICAgIH1cbiAgICBpZiAoIWxlZ2VuZEluZm8pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGh0bWxTdHJpbmcgPSAnPHRhYmxlPic7XG4gICAgbGV0IHNyYzogc3RyaW5nO1xuICAgIGxldCBsYWJlbDogc3RyaW5nO1xuICAgIGxldCBzdmc6IHN0cmluZztcblxuICAgIGlmIChsZWdlbmRJbmZvLmxlZ2VuZCkge1xuICAgICAgZm9yIChjb25zdCBsZWdlbmRFbGVtZW50IG9mIGxlZ2VuZEluZm8ubGVnZW5kKSB7XG4gICAgICAgIHNyYyA9IHRoaXMuaHRtbEltZ1NyYyhcbiAgICAgICAgICBsZWdlbmRFbGVtZW50LmNvbnRlbnRUeXBlLFxuICAgICAgICAgIGxlZ2VuZEVsZW1lbnQuaW1hZ2VEYXRhXG4gICAgICAgICk7XG4gICAgICAgIGxhYmVsID0gbGVnZW5kRWxlbWVudC5sYWJlbFxuICAgICAgICAgID8gbGVnZW5kRWxlbWVudC5sYWJlbC5yZXBsYWNlKCc8TnVsbD4nLCAnTnVsbCcpXG4gICAgICAgICAgOiAnJztcbiAgICAgICAgaHRtbFN0cmluZyArPVxuICAgICAgICAgIGA8dHI+PHRkIGFsaWduPSdsZWZ0Jz48aW1nIHNyYz1cImAgK1xuICAgICAgICAgIHNyYyArXG4gICAgICAgICAgYFwiIGFsdCA9JycgLz48L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXG4gICAgICAgICAgbGFiZWwgK1xuICAgICAgICAgICc8L3RkPjwvdHI+JztcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGxlZ2VuZEluZm8udHlwZSA9PT0gJ3VuaXF1ZVZhbHVlJykge1xuICAgICAgZm9yIChjb25zdCBsZWdlbmRFbGVtZW50IG9mIGxlZ2VuZEluZm8udW5pcXVlVmFsdWVJbmZvcykge1xuICAgICAgICBsYWJlbCA9IGxlZ2VuZEVsZW1lbnQubGFiZWwucmVwbGFjZSgnPE51bGw+JywgJ051bGwnKTtcbiAgICAgICAgaWYgKGxlZ2VuZEVsZW1lbnQuc3ltYm9sLnR5cGUgPT09ICdlc3JpUE1TJykge1xuICAgICAgICAgIHNyYyA9IHRoaXMuaHRtbEltZ1NyYyhcbiAgICAgICAgICAgIGxlZ2VuZEVsZW1lbnQuc3ltYm9sLmNvbnRlbnRUeXBlLFxuICAgICAgICAgICAgbGVnZW5kRWxlbWVudC5zeW1ib2wuaW1hZ2VEYXRhXG4gICAgICAgICAgKTtcbiAgICAgICAgICBodG1sU3RyaW5nICs9XG4gICAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcbiAgICAgICAgICAgIHNyYyArXG4gICAgICAgICAgICBgXCIgYWx0ID0nJyAvPjwvdGQ+PHRkIGNsYXNzPVwibWF0LXR5cG9ncmFwaHlcIj5gICtcbiAgICAgICAgICAgIGxhYmVsICtcbiAgICAgICAgICAgICc8L3RkPjwvdHI+JztcbiAgICAgICAgfSBlbHNlIGlmIChsZWdlbmRFbGVtZW50LnN5bWJvbC50eXBlICE9PSAnZXNyaVBNUycpIHtcbiAgICAgICAgICBzdmcgPSB0aGlzLmNyZWF0ZVNWRyhsZWdlbmRFbGVtZW50LnN5bWJvbCk7XG4gICAgICAgICAgaHRtbFN0cmluZyArPVxuICAgICAgICAgICAgYDx0cj48dGQgYWxpZ249J2xlZnQnPmAgK1xuICAgICAgICAgICAgc3ZnICtcbiAgICAgICAgICAgIGA8L3RkPjx0ZCBjbGFzcz1cIm1hdC10eXBvZ3JhcGh5XCI+YCArXG4gICAgICAgICAgICBsYWJlbCArXG4gICAgICAgICAgICAnPC90ZD48L3RyPic7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGxlZ2VuZEluZm8udHlwZSA9PT0gJ3NpbXBsZScpIHtcbiAgICAgIGxhYmVsID0gbGVnZW5kSW5mby5sYWJlbFxuICAgICAgICA/IGxlZ2VuZEluZm8ubGFiZWwucmVwbGFjZSgnPE51bGw+JywgJ051bGwnKVxuICAgICAgICA6ICcnO1xuICAgICAgaWYgKGxlZ2VuZEluZm8uc3ltYm9sLnR5cGUgPT09ICdlc3JpUE1TJykge1xuICAgICAgICBzcmMgPSB0aGlzLmh0bWxJbWdTcmMoXG4gICAgICAgICAgbGVnZW5kSW5mby5zeW1ib2wuY29udGVudFR5cGUsXG4gICAgICAgICAgbGVnZW5kSW5mby5zeW1ib2wuaW1hZ2VEYXRhXG4gICAgICAgICk7XG4gICAgICAgIGh0bWxTdHJpbmcgKz1cbiAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+PGltZyBzcmM9XCJgICtcbiAgICAgICAgICBzcmMgK1xuICAgICAgICAgIGBcIiBhbHQgPScnIC8+PC90ZD48dGQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPmAgK1xuICAgICAgICAgIGxhYmVsICtcbiAgICAgICAgICAnPC90ZD48L3RyPic7XG4gICAgICB9IGVsc2UgaWYgKGxlZ2VuZEluZm8uc3ltYm9sLnR5cGUgIT09ICdlc3JpUE1TJykge1xuICAgICAgICBzdmcgPSB0aGlzLmNyZWF0ZVNWRyhsZWdlbmRJbmZvLnN5bWJvbCk7XG4gICAgICAgIGh0bWxTdHJpbmcgKz1cbiAgICAgICAgICBgPHRyPjx0ZCBhbGlnbj0nbGVmdCc+YCArXG4gICAgICAgICAgc3ZnICtcbiAgICAgICAgICBgPC90ZD48dGQgY2xhc3M9XCJtYXQtdHlwb2dyYXBoeVwiPmAgK1xuICAgICAgICAgIGxhYmVsICtcbiAgICAgICAgICAnPC90ZD48L3RyPic7XG4gICAgICB9XG4gICAgfVxuICAgIGh0bWxTdHJpbmcgKz0gJzwvdGFibGU+JztcbiAgICByZXR1cm4gW3sgaHRtbDogaHRtbFN0cmluZyB9XTtcbiAgfVxuXG4gIGh0bWxJbWdTcmMoY29udGVudFR5cGU6IHN0cmluZywgaW1hZ2VEYXRhOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgZGF0YToke2NvbnRlbnRUeXBlfTtiYXNlNjQsJHtpbWFnZURhdGF9YDtcbiAgfVxuXG4gIGNyZWF0ZVNWRyhzeW1ib2wpOiBzdHJpbmcge1xuICAgIGxldCBzdmc6IHN0cmluZyA9ICcnO1xuXG4gICAgY29uc3QgY29sb3I6IEFycmF5PG51bWJlcj4gPSBzeW1ib2wuY29sb3IgPyBzeW1ib2wuY29sb3IgOiBbMCwgMCwgMCwgMF07XG5cbiAgICBpZiAoc3ltYm9sLnR5cGUgPT09ICdlc3JpU0xTJykge1xuICAgICAgY29uc3Qgd2lkdGg6IG51bWJlciA9IHN5bWJvbC53aWR0aCA/IHN5bWJvbC53aWR0aCA6IDA7XG5cbiAgICAgIGNvbnN0IHN0cm9rZTogc3RyaW5nID1cbiAgICAgICAgYHN0cm9rZTpyZ2JhKGAgK1xuICAgICAgICBjb2xvclswXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIGNvbG9yWzFdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgY29sb3JbMl0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBjb2xvclszXSArXG4gICAgICAgICcpJztcbiAgICAgIGNvbnN0IHN0cm9rZVdpZHRoOiBzdHJpbmcgPSBgc3Ryb2tlLXdpZHRoOmAgKyB3aWR0aDtcblxuICAgICAgaWYgKHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTTFNTb2xpZCcpIHtcbiAgICAgICAgc3ZnID1cbiAgICAgICAgICBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48bGluZSB4MT1cIjBcIiB5MT1cIjE1XCIgeDI9XCIzMFwiIHkyPVwiMTVcIiBzdHlsZT1cImAgK1xuICAgICAgICAgIHN0cm9rZSArXG4gICAgICAgICAgJzsnICtcbiAgICAgICAgICBzdHJva2VXaWR0aCArXG4gICAgICAgICAgYFwiLz48L3N2Zz5gO1xuICAgICAgfSBlbHNlIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU0xTRGFzaCcpIHtcbiAgICAgICAgY29uc3Qgc3Ryb2tlRGFzaEFycmF5OiBzdHJpbmcgPSBgc3Ryb2tlLWRhc2hhcnJheT1cIjUsNVwiYDtcbiAgICAgICAgc3ZnID1cbiAgICAgICAgICBgPHN2ZyBoZWlnaHQ9XCIzMFwiIHdpZHRoPVwiMzBcIj48bGluZSB4MT1cIjBcIiB5MT1cIjE1XCIgeDI9XCIzMFwiIHkyPVwiMTVcIiBzdHlsZT1cImAgK1xuICAgICAgICAgIHN0cm9rZSArXG4gICAgICAgICAgJzsnICtcbiAgICAgICAgICBzdHJva2VXaWR0aCArXG4gICAgICAgICAgYFwiIGAgK1xuICAgICAgICAgIHN0cm9rZURhc2hBcnJheSArXG4gICAgICAgICAgYC8+PC9zdmc+YDtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKFxuICAgICAgc3ltYm9sLnN0eWxlID09PSAnZXNyaVNNU0NpcmNsZScgfHxcbiAgICAgIHN5bWJvbC5zdHlsZSA9PT0gJ2VzcmlTRlNTb2xpZCdcbiAgICApIHtcbiAgICAgIGNvbnN0IG91dGxpbmVDb2xvciA9IHN5bWJvbC5vdXRsaW5lLmNvbG9yO1xuICAgICAgY29uc3Qgb3V0bGluZVdpZHRoID0gc3ltYm9sLm91dGxpbmUud2lkdGg7XG4gICAgICBjb25zdCBzaXplID0gc3ltYm9sLnNpemU7XG5cbiAgICAgIGNvbnN0IHN0cm9rZSA9XG4gICAgICAgIGBzdHJva2U6cmdiYShgICtcbiAgICAgICAgb3V0bGluZUNvbG9yWzBdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgb3V0bGluZUNvbG9yWzFdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgb3V0bGluZUNvbG9yWzJdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgb3V0bGluZUNvbG9yWzNdICtcbiAgICAgICAgJyknO1xuICAgICAgY29uc3Qgc3Ryb2tlV2lkdGggPSBgc3Ryb2tlLXdpZHRoOmAgKyBvdXRsaW5lV2lkdGg7XG4gICAgICBjb25zdCBmaWxsID1cbiAgICAgICAgYGZpbGw6cmdiYShgICtcbiAgICAgICAgY29sb3JbMF0gK1xuICAgICAgICAnLCcgK1xuICAgICAgICBjb2xvclsxXSArXG4gICAgICAgICcsJyArXG4gICAgICAgIGNvbG9yWzJdICtcbiAgICAgICAgJywnICtcbiAgICAgICAgY29sb3JbM10gK1xuICAgICAgICAnKSc7XG5cbiAgICAgIGlmIChzeW1ib2wuc3R5bGUgPT09ICdlc3JpU01TQ2lyY2xlJykge1xuICAgICAgICBzdmcgPVxuICAgICAgICAgIGA8c3ZnIGhlaWdodD1cIjMwXCIgd2lkdGg9XCIzMFwiPjxjaXJjbGUgY3g9XCIxNVwiIGN5PVwiMTVcIiByPVwiYCArXG4gICAgICAgICAgc2l6ZSAvIDIgK1xuICAgICAgICAgIGBcIiBzdHlsZT1cImAgK1xuICAgICAgICAgIHN0cm9rZSArXG4gICAgICAgICAgJzsnICtcbiAgICAgICAgICBzdHJva2VXaWR0aCArXG4gICAgICAgICAgJzsnICtcbiAgICAgICAgICBmaWxsICtcbiAgICAgICAgICBgXCIvPjwvc3ZnPmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzdmcgPVxuICAgICAgICAgIGA8c3ZnIGhlaWdodD1cIjMwXCIgd2lkdGg9XCIzMFwiPjxyZWN0IHg9XCI1XCIgeT1cIjVcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiBzdHlsZSA9XCJgICtcbiAgICAgICAgICBzdHJva2UgK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgc3Ryb2tlV2lkdGggK1xuICAgICAgICAgICc7JyArXG4gICAgICAgICAgZmlsbCArXG4gICAgICAgICAgYFwiLz48L3N2Zz5gO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gc3ZnO1xuICB9XG5cbiAgcHVibGljIG9uVW53YXRjaCgpIHt9XG59XG4iXX0=
|
|
@@ -106,4 +106,4 @@ export class CartoDataSource extends DataSource {
|
|
|
106
106
|
}
|
|
107
107
|
onUnwatch() { }
|
|
108
108
|
}
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
109
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FydG8tZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2NhcnRvLWRhdGFzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxhQUFhLE1BQU0sbUJBQW1CLENBQUM7QUFFOUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHMUMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsVUFBVTtJQUk3QyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBYSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFRLElBQUksQ0FBQyxPQUFlLENBQUMsVUFBVTtZQUNyQyxDQUFDLENBQUUsSUFBSSxDQUFDLE9BQWUsQ0FBQyxVQUFVO1lBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1YsT0FBUSxJQUFJLENBQUMsT0FBZSxDQUFDLFFBQVEsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQVEsSUFBSSxDQUFDLE9BQWUsQ0FBQyxlQUFlO1lBQzFDLENBQUMsQ0FBRSxJQUFJLENBQUMsT0FBZSxDQUFDLGVBQWU7WUFDdkMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQUVTLGNBQWM7UUFDdEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQzFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7WUFDMUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQztRQUNoQixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUNqQztZ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LENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztnQ0FDeEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQzs0QkFDckIsQ0FBQzs0QkFDRCxVQUFVO2dDQUNSLFVBQVU7b0NBQ1YsMkJBQTJCO29DQUMzQixNQUFNLENBQUMsQ0FBQyxDQUFDO29DQUNULDJCQUEyQjtvQ0FDM0IsTUFBTTtvQ0FDTixJQUFJLENBQUMsQ0FBQyxDQUFDO29DQUNQLFlBQVksQ0FBQzt3QkFDakIsQ0FBQzt3QkFDRCxNQUFNO29CQUNSLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsVUFBVTs0QkFDbkMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxVQUFVOzRCQUN6QixDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNQLFVBQVU7NEJBQ1IsVUFBVTtnQ0FDViwyQkFBMkI7Z0NBQzNCLEtBQUs7Z0NBQ0wsc0JBQXNCO2dDQUN0QixXQUFXO2dDQUNYLEtBQUs7Z0NBQ0wsWUFBWSxDQUFDO3dCQUNmLE1BQU07b0JBQ1IsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUNELFVBQVUsSUFBSSxVQUFVLENBQUM7WUFDekIsT0FBTyxDQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDaEMsQ0FBQztJQUNILENBQUM7SUFFTSxTQUFTLEtBQUksQ0FBQztDQUN0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbFNvdXJjZUNhcnRvIGZyb20gJ29sL3NvdXJjZS9DYXJ0b0RCJztcblxuaW1wb3J0IHsgUXVlcnlIdG1sVGFyZ2V0IH0gZnJvbSAnLi4vLi4vLi4vcXVlcnkvc2hhcmVkL3F1ZXJ5LmVudW1zJztcbmltcG9ydCB7IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuL2NhcnRvLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuL2RhdGFzb3VyY2UnO1xuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBDYXJ0b0RhdGFTb3VyY2UgZXh0ZW5kcyBEYXRhU291cmNlIHtcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sU291cmNlQ2FydG87XG4gIHB1YmxpYyBkZWNsYXJlIG9wdGlvbnM6IENhcnRvRGF0YVNvdXJjZU9wdGlvbnM7XG5cbiAgZ2V0IHBhcmFtcygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucGFyYW1zIGFzIGFueTtcbiAgfVxuXG4gIGdldCBxdWVyeVRpdGxlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeVRpdGxlXG4gICAgICA/ICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeVRpdGxlXG4gICAgICA6ICd0aXRsZSc7XG4gIH1cblxuICBnZXQgbWFwTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKHRoaXMub3B0aW9ucyBhcyBhbnkpLm1hcExhYmVsO1xuICB9XG5cbiAgZ2V0IHF1ZXJ5SHRtbFRhcmdldCgpOiBzdHJpbmcge1xuICAgIHJldHVybiAodGhpcy5vcHRpb25zIGFzIGFueSkucXVlcnlIdG1sVGFyZ2V0XG4gICAgICA/ICh0aGlzLm9wdGlvbnMgYXMgYW55KS5xdWVyeUh0bWxUYXJnZXRcbiAgICAgIDogUXVlcnlIdG1sVGFyZ2V0LkJMQU5LO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU9sU291cmNlKCk6IG9sU291cmNlQ2FydG8ge1xuICAgIGNvbnN0IGNyb3NzT3JpZ2luID0gdGhpcy5vcHRpb25zLmNyb3NzT3JpZ2luXG4gICAgICA/IHRoaXMub3B0aW9ucy5jcm9zc09yaWdpblxuICAgICAgOiAnYW5vbnltb3VzJztcbiAgICBjb25zdCBzb3VyY2VPcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHtcbiAgICAgICAgY3Jvc3NPcmlnaW5cbiAgICAgIH0sXG4gICAgICB0aGlzLm9wdGlvbnNcbiAgICApO1xuICAgIHJldHVybiBuZXcgb2xTb3VyY2VDYXJ0byhzb3VyY2VPcHRpb25zKTtcbiAgfVxuXG4gIGdldExlZ2VuZCgpOiBMZWdlbmRbXSB7XG4gICAgY29uc3QgbGVnZW5kID0gc3VwZXIuZ2V0TGVnZW5kKCk7XG4gICAgaWYgKGxlZ2VuZC5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gbGVnZW5kO1xuICAgIH1cblxuICAgIGxldCBodG1sU3RyaW5nID0gJzx0YWJsZT4nO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuY29uZmlnLmxheWVyc1swXS5sZWdlbmQpIHtcbiAgICAgIHRoaXMub3B0aW9ucy5jb25maWcubGF5ZXJzWzBdLmxlZ2VuZC5pdGVtcy5mb3JFYWNoKChmKSA9PiB7XG4gICAgICAgIGlmIChmLnZpc2libGUgPT09IHRydWUpIHtcbiAgICAgICAgICBodG1sU3RyaW5nICs9XG4gICAgICAgICAgICAnPHRyPjx0ZD4nICtcbiAgICAgICAgICAgICc8cD48Zm9udCBzaXplPVwiNVwiIGNvbG9yPVwiJyArXG4gICAgICAgICAgICBmLnZhbHVlICtcbiAgICAgICAgICAgICdcIj4gJiM5Njc5PC9mb250PjwvcD48L3RkPicgK1xuICAgICAgICAgICAgJzx0ZD4nICtcbiAgICAgICAgICAgIGYubmFtZSArXG4gICAgICAgICAgICAnPC90ZD48L3RyPic7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaHRtbFN0cmluZyArPSAnPC90YWJsZT4nO1xuICAgICAgcmV0dXJuIFt7IGh0bWw6IGh0bWxTdHJpbmcgfV07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRyeSB0byBidWlsZCB0aGUgbGVnZW5kIGZyb20gdGhlIGNhcnRvY3NzIG9wdGlvbnNcbiAgICAgIGNvbnN0IGxheWVyT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5jb25maWcubGF5ZXJzWzBdLm9wdGlvbnM7XG4gICAgICAvLyBBbGwgYXZhaWxhYmxlIGNhcnRvY3NzIHN0eWxlIG9wdGlvbnNcbiAgICAgIGNvbnN0IHR5cGVzID0gW1xuICAgICAgICAncG9seWdvbi1maWxsOicsXG4gICAgICAgICdtYXJrZXItZmlsbDonLFxuICAgICAgICAnc2hpZWxkLWZpbGw6JyxcbiAgICAgICAgJ2J1aWxkaW5nLWZpbGw6JyxcbiAgICAgICAgJ2xpbmUtY29sb3I6J1xuICAgICAgXTtcbiAgICAgIGZvciAoY29uc3Qgb25lVHlwZSBvZiB0eXBlcykge1xuICAgICAgICBpZiAobGF5ZXJPcHRpb25zLmNhcnRvY3NzLmluY2x1ZGVzKG9uZVR5cGUpKSB7XG4gICAgICAgICAgY29uc3QgdHlwZSA9IGxheWVyT3B0aW9ucy5jYXJ0b2Nzcy5zcGxpdChvbmVUeXBlKS5wb3AoKTtcbiAgICAgICAgICBjb25zdCBjb2xvciA9IHR5cGUuc3Vic3RyKDAsIHR5cGUuaW5kZXhPZignOycpKTtcbiAgICAgICAgICBpZiAoY29sb3IuaW5jbHVkZXMoJ3JhbXAnKSkge1xuICAgICAgICAgICAgY29uc3QgY29sb3JzID0gY29sb3Iuc3BsaXQoJywgKCcpWzFdLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICBjb25zdCBkYXRhID0gY29sb3Iuc3BsaXQoJywgKCcpWzJdLnNwbGl0KCcsJyk7XG4gICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGNvbG9ycy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICBjb2xvcnNbal0gPSBjb2xvcnNbal0ucmVwbGFjZSgvKFwifFxcKSkvZywgJycpO1xuICAgICAgICAgICAgICBkYXRhW2pdID0gZGF0YVtqXS5yZXBsYWNlKC8oXCJ8XFwpKS9nLCAnJyk7XG4gICAgICAgICAgICAgIGlmIChkYXRhW2pdLnJlcGxhY2UoL1xccysvZywgJycpID09PSAnPScpIHtcbiAgICAgICAgICAgICAgICBkYXRhW2pdID0gJ0F1dHJlcyc7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaHRtbFN0cmluZyArPVxuICAgICAgICAgICAgICAgICc8dHI+PHRkPicgK1xuICAgICAgICAgICAgICAgICc8cD48Zm9udCBzaXplPVwiNVwiIGNvbG9yPVwiJyArXG4gICAgICAgICAgICAgICAgY29sb3JzW2pdICtcbiAgICAgICAgICAgICAgICAnXCI+ICYjOTY3OTwvZm9udD48L3A+PC90ZD4nICtcbiAgICAgICAgICAgICAgICAnPHRkPicgK1xuICAgICAgICAgICAgICAgIGRhdGFbal0gK1xuICAgICAgICAgICAgICAgICc8L3RkPjwvdHI+JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IGxheWVyT3B0aW9ucy5sYXllcl9uYW1lXG4gICAgICAgICAgICAgID8gbGF5ZXJPcHRpb25zLmxheWVyX25hbWVcbiAgICAgICAgICAgICAgOiAnJztcbiAgICAgICAgICAgIGh0bWxTdHJpbmcgKz1cbiAgICAgICAgICAgICAgJzx0cj48dGQ+JyArXG4gICAgICAgICAgICAgICc8cD48Zm9udCBzaXplPVwiNVwiIGNvbG9yPVwiJyArXG4gICAgICAgICAgICAgIGNvbG9yICtcbiAgICAgICAgICAgICAgJ1wiPiAmIzk2Nzk8L2ZvbnQ+PC9wPicgK1xuICAgICAgICAgICAgICAnPC90ZD48dGQ+JyArXG4gICAgICAgICAgICAgIHRpdGxlICtcbiAgICAgICAgICAgICAgJzwvdGQ+PC90cj4nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBodG1sU3RyaW5nICs9ICc8L3RhYmxlPic7XG4gICAgICByZXR1cm4gW3sgaHRtbDogaHRtbFN0cmluZyB9XTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25VbndhdGNoKCkge31cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci1kYXRhc291cmNlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2NsdXN0ZXItZGF0YXNvdXJjZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBvbFNvdXJjZVZlY3RvciBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcblxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9mZWF0dXJlLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcblxuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgZXh0ZW5kcyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMge1xuICAvLyB0eXBlPzogJ2NsdXN0ZXInO1xuICBkaXN0YW5jZT86IG51bWJlcjtcbiAgc291cmNlPzogb2xTb3VyY2VWZWN0b3I7XG4gIG9sPzogb2xTb3VyY2VWZWN0b3I7XG4gIHBhdGhPZmZsaW5lPzogc3RyaW5nO1xuICBleGNsdWRlQXR0cmlidXRlPzogQXJyYXk8c3RyaW5nPjtcbiAgZXhjbHVkZUF0dHJpYnV0ZU9mZmxpbmU/OiBBcnJheTxzdHJpbmc+O1xufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9kYXRhc291cmNlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUeXBlIH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XG5pbXBvcnQgb2xTb3VyY2UgZnJvbSAnb2wvc291cmNlL1NvdXJjZSc7XG5cbmltcG9ydCB7IEVuY29kZXJzLCBQcmVzZXQsIFRva2VuaXplciB9IGZyb20gJ2ZsZXhzZWFyY2gnO1xuXG5pbXBvcnQgeyBEb3dubG9hZE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kb3dubG9hZC9zaGFyZWQvZG93bmxvYWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IE9nY0ZpbHRlck9wZXJhdG9yVHlwZSB9IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5lbnVtJztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhU291cmNlT3B0aW9ucyB7XG4gIHR5cGU/OlxuICAgIHwgJ3dtcydcbiAgICB8ICd3ZnMnXG4gICAgfCAndmVjdG9yJ1xuICAgIHwgJ3dtdHMnXG4gICAgfCAneHl6J1xuICAgIHwgJ29zbSdcbiAgICB8ICd0aWxlZGVidWcnXG4gICAgfCAnY2FydG8nXG4gICAgfCAnYXJjZ2lzcmVzdCdcbiAgICB8ICdpbWFnZWFyY2dpc3Jlc3QnXG4gICAgfCAndGlsZWFyY2dpc3Jlc3QnXG4gICAgfCAnd2Vic29ja2V0J1xuICAgIHwgJ212dCdcbiAgICB8ICdjbHVzdGVyJztcbiAgb3B0aW9uc0Zyb21DYXBhYmlsaXRpZXM/OiBib29sZWFuO1xuICBvcHRpb25zRnJvbUFwaT86IGJvb2xlYW47XG4gIF9sYXllck9wdGlvbnNGcm9tU291cmNlPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgaWQ/OiBzdHJpbmc7XG4gIG9sPzogb2xTb3VyY2U7XG4gIG1pblpvb20/OiBudW1iZXI7XG4gIG1heFpvb20/OiBudW1iZXI7XG4gIG1pbkRhdGU/OiBzdHJpbmc7XG4gIG1heERhdGU/OiBzdHJpbmc7XG4gIHN0ZXBEYXRlPzogc3RyaW5nO1xuICAvLyBUT0RPOiBTaG91bGQgdGhvc2Ugb3B0aW9ucyByZWFsbHkgYmVsb25nIGhlcmU/XG4gIHNvdXJjZUZpZWxkcz86IFNvdXJjZUZpZWxkc09wdGlvbnNQYXJhbXNbXTtcbiAgZG93bmxvYWQ/OiBEb3dubG9hZE9wdGlvbnM7XG4gIGVkaXRpb24/OiBFZGl0aW9uT3B0aW9ucztcbiAgcmVsYXRpb25zPzogUmVsYXRpb25PcHRpb25zW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlRmllbGRzT3B0aW9uc1BhcmFtcyB7XG4gIG5hbWU6IGFueTtcbiAgYWxpYXM/OiBhbnk7XG4gIHZhbHVlcz86IGFueTtcbiAgZXhjbHVkZUZyb21PZ2NGaWx0ZXJzPzogYm9vbGVhbjtcbiAgYWxsb3dlZE9wZXJhdG9yc1R5cGU/OiBPZ2NGaWx0ZXJPcGVyYXRvclR5cGU7XG4gIHN0ZXA/OiBudW1iZXI7XG4gIHJlbGF0aW9uPzogUmVsYXRpb25PcHRpb25zO1xuICB0eXBlPzogbnVtYmVyIHwgbnVtYmVyW10gfCBzdHJpbmcgfCBzdHJpbmdbXSB8IGJvb2xlYW4gfCBEYXRlO1xuICBwcmltYXJ5PzogYm9vbGVhbjtcbiAgdmlzaWJsZT86IGJvb2xlYW47XG4gIHZhbGlkYXRpb24/OiBTb3VyY2VGaWVsZHNWYWxpZGF0aW9uUGFyYW1zO1xuICBsaW5rQ29sdW1uRm9yY2U/OiBzdHJpbmc7XG4gIG11bHRpcGxlPzogYm9vbGVhbjtcbiAgdG9vbHRpcD86IHN0cmluZztcbiAgc2VhcmNoSW5kZXg/OiBzZWFyY2hJbmRleE9wdGlvbnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2Ugc2VhcmNoSW5kZXhPcHRpb25zIHtcbiAgZW5hYmxlZD86IGJvb2xlYW47XG4gIHByZXNldD86IFByZXNldDtcbiAgdG9rZW5pemU/OiBUb2tlbml6ZXI7XG4gIGNhY2hlPzogYm9vbGVhbiB8IG51bWJlcjtcbiAgcmVzb2x1dGlvbj86IG51bWJlcjtcbiAgY29udGV4dD86IGJvb2xlYW47XG4gIG9wdGltaXplPzogYm9vbGVhbjtcbiAgbGFuZ3VhZ2U/OiBzdHJpbmc7XG4gIGVuY29kZT86IEVuY29kZXJzO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVkaXRpb25PcHRpb25zIHtcbiAgZW5hYmxlZDogYm9vbGVhbjtcbiAgYmFzZVVybDogc3RyaW5nO1xuICBhZGRVcmw6IHN0cmluZztcbiAgZGVsZXRlVXJsOiBzdHJpbmc7XG4gIG1vZGlmeVVybDogc3RyaW5nO1xuICBnZW9tVHlwZTogVHlwZTtcbiAgZ2VvbURhdGFiYXNlUHJvaj86IHN0cmluZztcbiAgaGFzR2VvbWV0cnk6IGJvb2xlYW47XG4gIGFkZFdpdGhEcmF3PzogYm9vbGVhbjtcbiAgbWVzc2FnZXM/OiBhbnlbXTtcbiAgYWRkSGVhZGVycz86IHsgW2tleTogc3RyaW5nXTogYW55IH07XG4gIG1vZGlmeUhlYWRlcnM/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xuICBtb2RpZnlQcm90b2NvbD86IHN0cmluZztcbiAgYWRkQnV0dG9uPzogYm9vbGVhbjtcbiAgbW9kaWZ5QnV0dG9uPzogYm9vbGVhbjtcbiAgZGVsZXRlQnV0dG9uPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbk9wdGlvbnMge1xuICB0aXRsZTogc3RyaW5nO1xuICBuYW1lOiBzdHJpbmc7XG4gIHRhYmxlPzogc3RyaW5nO1xuICB1cmw/OiBzdHJpbmc7XG4gIGFsaWFzPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBwYXJlbnQ/OiBzdHJpbmc7XG4gIHRvb2x0aXA/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlRmllbGRzVmFsaWRhdGlvblBhcmFtcyB7XG4gIG1hbmRhdG9yeT86IGJvb2xlYW47XG4gIG1heExlbmd0aD86IG51bWJlcjtcbiAgbWluTGVuZ3RoPzogbnVtYmVyO1xuICByZWFkb25seT86IGJvb2xlYW47XG4gIHNlbmQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExlZ2VuZCB7XG4gIGNvbGxhcHNlZD86IGJvb2xlYW47XG4gIGRpc3BsYXk/OiBib29sZWFuO1xuICB1cmw/OiBzdHJpbmc7XG4gIGh0bWw/OiBzdHJpbmc7XG4gIHN0eWxlPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXIgfTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIGN1cnJlbnRTdHlsZT86IHN0cmluZztcbiAgaW1nR3JhcGhWYWx1ZT86IHN0cmluZztcbn1cblxuLy8gcmVmZXIgdG8gaHR0cHM6Ly9vcGVubGF5ZXJzLm9yZy9lbi9sYXRlc3QvYXBpZG9jL21vZHVsZS1vbF90aWxlZ3JpZF9UaWxlR3JpZC1UaWxlR3JpZC5odG1sXG5leHBvcnQgaW50ZXJmYWNlIFRpbGVHcmlkT3B0aW9ucyB7XG4gIGV4dGVudDogW251bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlcl07XG4gIG1pblpvb20/OiBudW1iZXI7XG4gIG9yaWdpbj86IFtudW1iZXIsIG51bWJlcl07XG4gIG9yaWdpbnM/OiBbbnVtYmVyLCBudW1iZXJdW107XG4gIHJlc29sdXRpb25zOiBudW1iZXJbXTtcbiAgc2l6ZXM/OiBbbnVtYmVyLCBudW1iZXJdW107XG4gIHRpbGVTaXplPzogW251bWJlciwgbnVtYmVyXTtcbiAgdGlsZVNpemVzPzogW251bWJlciwgbnVtYmVyXVtdO1xufVxuIl19
|
|
@@ -31,4 +31,4 @@ export class DataSource {
|
|
|
31
31
|
return this.legend;
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFJMUUsTUFBTSxPQUFnQixVQUFVO0lBTXJCO0lBQ0c7SUFOTCxFQUFFLENBQVM7SUFDWCxFQUFFLENBQThDO0lBQy9DLE1BQU0sQ0FBVztJQUV6QixZQUNTLFVBQTZCLEVBQUUsRUFDNUIsV0FBeUI7UUFENUIsWUFBTyxHQUFQLE9BQU8sQ0FBd0I7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWM7UUFFbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUlTLFVBQVU7UUFDbEIsT0FBTywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFNBQVMsQ0FBQyxLQUFjLEVBQUUsSUFBMkI7UUFDMUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVNLFNBQVMsQ0FBQyxPQUFzQjtRQUNyQyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQzthQUFNLElBQUksT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDckIsQ0FBQztDQUdGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IG9sQ2x1c3RlclNvdXJjZSBmcm9tICdvbC9zb3VyY2UvQ2x1c3Rlcic7XG5pbXBvcnQgb2xTb3VyY2UgZnJvbSAnb2wvc291cmNlL1NvdXJjZSc7XG5pbXBvcnQgb2xWZWN0b3JTb3VyY2UgZnJvbSAnb2wvc291cmNlL1ZlY3Rvcic7XG5cbmltcG9ydCB7XG4gIExlZ2VuZE1hcFZpZXdPcHRpb25zLFxuICBMZWdlbmRPcHRpb25zXG59IGZyb20gJy4uLy4uLy4uL2xheWVyL3NoYXJlZC9sYXllcnMvbGVnZW5kLmludGVyZmFjZSc7XG5pbXBvcnQgeyBnZW5lcmF0ZUlkRnJvbVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9pZC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRhU291cmNlT3B0aW9ucywgTGVnZW5kIH0gZnJvbSAnLi9kYXRhc291cmNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEYXRhU291cmNlIHtcbiAgcHVibGljIGlkOiBzdHJpbmc7XG4gIHB1YmxpYyBvbDogb2xTb3VyY2UgfCBvbFZlY3RvclNvdXJjZSB8IG9sQ2x1c3RlclNvdXJjZTtcbiAgcHJpdmF0ZSBsZWdlbmQ6IExlZ2VuZFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBvcHRpb25zOiBEYXRhU291cmNlT3B0aW9ucyA9IHt9LFxuICAgIHByb3RlY3RlZCBkYXRhU2VydmljZT86IERhdGFTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgdGhpcy5pZCA9IHRoaXMub3B0aW9ucy5pZCB8fCB0aGlzLmdlbmVyYXRlSWQoKTtcbiAgICB0aGlzLm9sID0gdGhpcy5jcmVhdGVPbFNvdXJjZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGNyZWF0ZU9sU291cmNlKCk6IG9sU291cmNlO1xuXG4gIHByb3RlY3RlZCBnZW5lcmF0ZUlkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGdlbmVyYXRlSWRGcm9tU291cmNlT3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGdldExlZ2VuZChzdHlsZT86IHN0cmluZywgdmlldz86IExlZ2VuZE1hcFZpZXdPcHRpb25zKTogTGVnZW5kW10ge1xuICAgIHJldHVybiB0aGlzLmxlZ2VuZCA/IHRoaXMubGVnZW5kIDogW107XG4gIH1cblxuICBwdWJsaWMgc2V0TGVnZW5kKG9wdGlvbnM6IExlZ2VuZE9wdGlvbnMpOiBMZWdlbmRbXSB7XG4gICAgaWYgKG9wdGlvbnMudXJsKSB7XG4gICAgICB0aGlzLmxlZ2VuZCA9IFt7IHVybDogb3B0aW9ucy51cmwgfV07XG4gICAgfSBlbHNlIGlmIChvcHRpb25zLmh0bWwpIHtcbiAgICAgIHRoaXMubGVnZW5kID0gW3sgaHRtbDogb3B0aW9ucy5odG1sIH1dO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxlZ2VuZCA9IFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmxlZ2VuZDtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvblVud2F0Y2goKTtcbn1cbiJdfQ==
|