@igo2/geo 17.0.0-next.0 → 17.0.0-next.2
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/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +4 -4
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +19 -17
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +3 -3
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +14 -12
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +4 -4
- package/esm2022/lib/catalog/catalog.module.mjs +4 -4
- package/esm2022/lib/catalog/shared/catalog.service.mjs +12 -8
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +3 -3
- package/esm2022/lib/datasource/shared/datasource.service.mjs +10 -8
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/cluster-datasource.interface.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/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/wfs.service.mjs +3 -3
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +2 -2
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +3 -3
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +17 -13
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +6 -6
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +6 -6
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +2 -2
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +6 -6
- package/esm2022/lib/directions/directions.component.mjs +6 -6
- package/esm2022/lib/directions/directions.module.mjs +4 -4
- package/esm2022/lib/directions/shared/directions.service.mjs +13 -9
- package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +3 -3
- package/esm2022/lib/download/download.module.mjs +4 -4
- package/esm2022/lib/download/shared/download.service.mjs +6 -6
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +6 -6
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +3 -3
- package/esm2022/lib/draw/draw/draw.component.mjs +6 -6
- package/esm2022/lib/draw/draw/draw.module.mjs +4 -4
- package/esm2022/lib/draw/drawingTool.module.mjs +4 -4
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +6 -6
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +13 -10
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +3 -3
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +4 -4
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +3 -3
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +4 -4
- package/esm2022/lib/feature/feature.module.mjs +4 -4
- package/esm2022/lib/filter/filter.module.mjs +4 -4
- 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 +6 -6
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +3 -3
- 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 +3 -3
- 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 +3 -3
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +3 -3
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +3 -3
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +3 -3
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +3 -3
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +9 -7
- package/esm2022/lib/filter/shared/time-filter.service.mjs +3 -3
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +23 -21
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +6 -6
- 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 +3 -3
- 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 +3 -3
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +3 -3
- package/esm2022/lib/geo.module.mjs +4 -4
- 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 +4 -4
- package/esm2022/lib/geometry/geometry.module.mjs +4 -4
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +3 -3
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +28 -22
- package/esm2022/lib/import-export/import-export.module.mjs +4 -4
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +11 -9
- package/esm2022/lib/import-export/shared/export.service.mjs +6 -6
- package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +6 -6
- package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +6 -6
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +18 -16
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +6 -6
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +3 -3
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +3 -3
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +6 -6
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +3 -3
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +3 -3
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +3 -3
- package/esm2022/lib/layer/layer.module.mjs +4 -4
- package/esm2022/lib/layer/shared/layer.service.mjs +6 -6
- package/esm2022/lib/layer/shared/layers/image-layer.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/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.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/map/baselayers-switcher/baselayers-switcher.component.mjs +6 -6
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +3 -3
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +7 -7
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +6 -6
- package/esm2022/lib/map/info-section/info-section.component.mjs +3 -3
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +6 -6
- package/esm2022/lib/map/map-center/map-center.component.mjs +3 -3
- package/esm2022/lib/map/map.module.mjs +4 -4
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +6 -6
- 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/hover-feature.directive.mjs +6 -6
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +6 -6
- package/esm2022/lib/map/shared/map.mjs +1 -1
- package/esm2022/lib/map/shared/map.service.mjs +3 -3
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +9 -7
- package/esm2022/lib/map/shared/projection.service.mjs +6 -6
- package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +3 -3
- 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/measure.module.mjs +4 -4
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +3 -3
- 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 +16 -14
- package/esm2022/lib/measure/measurer/measurer.module.mjs +4 -4
- package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +6 -6
- package/esm2022/lib/metadata/metadata.module.mjs +4 -4
- package/esm2022/lib/metadata/shared/metadata.service.mjs +3 -3
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +6 -6
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +8 -10
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +3 -3
- package/esm2022/lib/offline/shared/geo-network.service.mjs +6 -6
- package/esm2022/lib/overlay/overlay.module.mjs +4 -4
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +3 -3
- package/esm2022/lib/overlay/shared/overlay.service.mjs +3 -3
- package/esm2022/lib/print/print/print.component.mjs +3 -3
- package/esm2022/lib/print/print-form/print-form.component.mjs +6 -6
- package/esm2022/lib/print/print.module.mjs +4 -4
- package/esm2022/lib/print/shared/print.service.mjs +13 -7
- package/esm2022/lib/query/query.module.mjs +6 -6
- package/esm2022/lib/query/shared/query-search-source.mjs +3 -3
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +2 -2
- package/esm2022/lib/query/shared/query.directive.mjs +3 -3
- package/esm2022/lib/query/shared/query.service.mjs +6 -6
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +6 -6
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +4 -4
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +6 -6
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +6 -6
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +3 -3
- package/esm2022/lib/search/search-results/search-results.component.mjs +6 -6
- package/esm2022/lib/search/search-results/search-results.module.mjs +4 -4
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +3 -3
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +4 -4
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +18 -16
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +4 -4
- package/esm2022/lib/search/search.module.mjs +4 -4
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +6 -6
- package/esm2022/lib/search/shared/search.service.mjs +6 -6
- package/esm2022/lib/search/shared/sources/cadastre.mjs +9 -7
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/coordinates.mjs +12 -10
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/icherche.mjs +16 -14
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/ilayer.mjs +12 -10
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/nominatim.mjs +6 -6
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +3 -2
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +13 -11
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +4 -2
- package/esm2022/lib/search/shared/sources/workspace.mjs +9 -7
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +4 -2
- package/esm2022/lib/style/style-list/style-list.module.mjs +4 -4
- package/esm2022/lib/style/style-list/style-list.service.mjs +3 -3
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +3 -3
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +3 -3
- package/esm2022/lib/style/style-service/draw-style.service.mjs +3 -3
- package/esm2022/lib/style/style-service/style.service.mjs +3 -3
- package/esm2022/lib/style/style.module.mjs +4 -4
- package/esm2022/lib/toast/toast.component.mjs +3 -3
- package/esm2022/lib/toast/toast.module.mjs +4 -4
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +6 -6
- package/esm2022/lib/wkt/shared/wkt.service.mjs +3 -3
- package/esm2022/lib/wkt/wkt.module.mjs +4 -4
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +6 -6
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +4 -4
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +15 -11
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +12 -10
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +12 -10
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +10 -8
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +2 -2
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +3 -3
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +3 -3
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +3 -3
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +4 -4
- package/esm2022/lib/workspace/workspace.module.mjs +4 -4
- package/fesm2022/igo2-geo.mjs +701 -690
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +2 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +2 -1
- package/lib/catalog/shared/catalog.service.d.ts +3 -1
- package/lib/datasource/shared/datasource.service.d.ts +2 -1
- package/lib/datasource/shared/options/options-api.providers.d.ts +1 -1
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +3 -1
- package/lib/directions/directions-inputs/directions-inputs.component.d.ts +1 -1
- package/lib/directions/directions-results/directions-results.component.d.ts +1 -1
- package/lib/directions/directions-sources/directions-source.provider.d.ts +1 -1
- package/lib/directions/directions-sources/osrm-directions-source.d.ts +1 -1
- package/lib/directions/directions.component.d.ts +1 -1
- package/lib/directions/shared/directions.service.d.ts +3 -1
- package/lib/directions/shared/directions.utils.d.ts +1 -1
- package/lib/download/shared/download.service.d.ts +1 -1
- package/lib/draw/draw/draw-popup.component.d.ts +1 -1
- package/lib/draw/draw/draw.component.d.ts +1 -1
- package/lib/draw/shared/draw-icon.service.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.component.d.ts +3 -2
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +1 -1
- package/lib/filter/shared/spatial-filter.service.d.ts +2 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +2 -1
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +4 -1
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +2 -1
- package/lib/import-export/shared/export.service.d.ts +1 -1
- package/lib/import-export/shared/export.utils.d.ts +1 -1
- package/lib/import-export/shared/import.service.d.ts +1 -1
- package/lib/import-export/shared/import.utils.d.ts +1 -1
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +2 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
- package/lib/layer/shared/layer.service.d.ts +1 -1
- package/lib/layer/shared/layers/image-layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.d.ts +1 -1
- package/lib/layer/shared/layers/layer.interface.d.ts +1 -1
- package/lib/layer/shared/layers/tile-layer.d.ts +1 -1
- package/lib/layer/shared/layers/vector-layer.d.ts +1 -1
- package/lib/layer/shared/layers/vectortile-layer.d.ts +1 -1
- package/lib/layer/utils/image-watcher.d.ts +1 -1
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
- package/lib/map/geolocate-button/geolocate-button.component.d.ts +1 -1
- package/lib/map/home-extent-button/home-extent-button.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +1 -1
- package/lib/map/menu-button/menu-button.component.d.ts +1 -1
- package/lib/map/shared/controllers/geolocation.d.ts +2 -1
- package/lib/map/shared/hover-feature.directive.d.ts +1 -1
- package/lib/map/shared/map-pointer-position.directive.d.ts +1 -1
- package/lib/map/shared/map.d.ts +2 -1
- package/lib/map/shared/mapOffline.directive.d.ts +2 -1
- package/lib/map/shared/projection.service.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
- package/lib/measure/measurer/measurer.component.d.ts +2 -1
- package/lib/measure/shared/measure.utils.d.ts +1 -1
- package/lib/offline/geoDB/configFileToGeoDB.service.d.ts +1 -1
- package/lib/offline/geoDB/geoDB.service.d.ts +2 -3
- package/lib/offline/shared/geo-network.service.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +1 -1
- package/lib/print/shared/print.service.d.ts +4 -1
- package/lib/query/query.module.d.ts +1 -1
- package/lib/query/shared/query-search-source.providers.d.ts +1 -1
- package/lib/query/shared/query.service.d.ts +1 -1
- package/lib/search/search-bar/search-bar.component.d.ts +1 -1
- package/lib/search/search-results/save-feature-dialog.component.d.ts +1 -1
- package/lib/search/search-results/search-results-add-button.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +1 -1
- package/lib/search/search-settings/search-settings.component.d.ts +2 -1
- package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
- package/lib/search/shared/search.service.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.d.ts +2 -1
- package/lib/search/shared/sources/cadastre.providers.d.ts +3 -1
- package/lib/search/shared/sources/coordinates.d.ts +2 -1
- package/lib/search/shared/sources/coordinates.providers.d.ts +3 -1
- package/lib/search/shared/sources/icherche.d.ts +2 -1
- package/lib/search/shared/sources/icherche.providers.d.ts +3 -1
- package/lib/search/shared/sources/ilayer.d.ts +2 -1
- package/lib/search/shared/sources/ilayer.providers.d.ts +3 -1
- package/lib/search/shared/sources/nominatim.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.providers.d.ts +2 -1
- package/lib/search/shared/sources/source.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.d.ts +2 -1
- package/lib/search/shared/sources/storedqueries.providers.d.ts +3 -1
- package/lib/search/shared/sources/workspace.d.ts +2 -1
- package/lib/search/shared/sources/workspace.providers.d.ts +3 -1
- package/lib/utils/propertyTypeDetector/propertyTypeDetector.service.d.ts +1 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
- package/lib/workspace/shared/edition-workspace.d.ts +1 -1
- package/lib/workspace/shared/edition-workspace.service.d.ts +3 -1
- package/lib/workspace/shared/feature-workspace.service.d.ts +2 -1
- package/lib/workspace/shared/wfs-workspace.service.d.ts +2 -1
- package/lib/workspace/shared/wms-workspace.service.d.ts +2 -1
- package/package.json +5 -5
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate, __metadata } from "tslib";
|
|
2
2
|
import { HttpClient, HttpParams } from '@angular/common/http';
|
|
3
3
|
import { Injectable } from '@angular/core';
|
|
4
|
-
import { ConfigService } from '@igo2/core';
|
|
4
|
+
import { ConfigService } from '@igo2/core/config';
|
|
5
5
|
import { customCacheHasher, uuid } from '@igo2/utils';
|
|
6
6
|
import { Observable } from 'rxjs';
|
|
7
7
|
import { map } from 'rxjs/operators';
|
|
@@ -10,7 +10,7 @@ import { DirectionsFormat, SourceDirectionsType } from '../shared/directions.enu
|
|
|
10
10
|
import { DirectionsSource } from './directions-source';
|
|
11
11
|
import * as i0 from "@angular/core";
|
|
12
12
|
import * as i1 from "@angular/common/http";
|
|
13
|
-
import * as i2 from "@igo2/core";
|
|
13
|
+
import * as i2 from "@igo2/core/config";
|
|
14
14
|
export class OsrmDirectionsSource extends DirectionsSource {
|
|
15
15
|
http;
|
|
16
16
|
config;
|
|
@@ -110,8 +110,8 @@ export class OsrmDirectionsSource extends DirectionsSource {
|
|
|
110
110
|
weight_name: roadNetworkRoute.weight_name
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
114
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.
|
|
113
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OsrmDirectionsSource, deps: [{ token: i1.HttpClient }, { token: i2.ConfigService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
114
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OsrmDirectionsSource });
|
|
115
115
|
}
|
|
116
116
|
__decorate([
|
|
117
117
|
Cacheable({
|
|
@@ -122,7 +122,7 @@ __decorate([
|
|
|
122
122
|
__metadata("design:paramtypes", [Array, HttpParams]),
|
|
123
123
|
__metadata("design:returntype", Observable)
|
|
124
124
|
], OsrmDirectionsSource.prototype, "getRoute", null);
|
|
125
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: OsrmDirectionsSource, decorators: [{
|
|
126
126
|
type: Injectable
|
|
127
127
|
}], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.ConfigService }], propDecorators: { getRoute: [] } });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NybS1kaXJlY3Rpb25zLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1zb3VyY2VzL29zcm0tZGlyZWN0aW9ucy1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLG9CQUFvQixFQUNyQixNQUFNLDJCQUEyQixDQUFDO0FBRW5DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBSXZELE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxnQkFBZ0I7SUFhOUM7SUFDQTtJQWJWLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUMvQixDQUFDO0lBQ0QsTUFBTSxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUM7SUFDckIsYUFBYSxHQUNuQixxRUFBcUUsQ0FBQztJQUNoRSxPQUFPLENBQThCO0lBRTdDLFlBQ1UsSUFBZ0IsRUFDaEIsTUFBcUI7UUFFN0IsS0FBSyxFQUFFLENBQUM7UUFIQSxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFHN0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUQsQ0FBQztJQUVELE9BQU87UUFDTCxPQUFPLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUNwQyxDQUFDO0lBRUQsS0FBSyxDQUNILFdBQStCLEVBQy9CLG9CQUFzQyxFQUFFO1FBRXhDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBTU8sUUFBUSxDQUNkLFdBQStCLEVBQy9CLE1BQWtCO1FBRWxCLE9BQU8sSUFBSSxDQUFDLElBQUk7YUFDYixHQUFHLENBQVMsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZELE1BQU07U0FDUCxDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8saUJBQWlCLENBQUMsUUFBUTtRQUNoQyxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDekIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNoQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxhQUFhLENBQUM7SUFDdkIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxvQkFBc0MsRUFBRTtRQUM3RCxpQkFBaUIsQ0FBQyxZQUFZO1lBQzVCLGlCQUFpQixDQUFDLFlBQVksS0FBSyxTQUFTO2dCQUMxQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsWUFBWTtnQkFDaEMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNYLGlCQUFpQixDQUFDLEtBQUs7WUFDckIsaUJBQWlCLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDekUsaUJBQWlCLENBQUMsVUFBVTtZQUMxQixpQkFBaUIsQ0FBQyxVQUFVLEtBQUssU0FBUztnQkFDeEMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFVBQVU7Z0JBQzlCLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDaEIsaUJBQWlCLENBQUMsUUFBUTtZQUN4QixpQkFBaUIsQ0FBQyxRQUFRLEtBQUssU0FBUztnQkFDdEMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLFFBQVE7Z0JBQzVCLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDWixpQkFBaUIsQ0FBQyxpQkFBaUI7WUFDakMsaUJBQWlCLENBQUMsaUJBQWlCLEtBQUssU0FBUztnQkFDL0MsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQjtnQkFDckMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVaLE9BQU8sSUFBSSxVQUFVLENBQUM7WUFDcEIsVUFBVSxFQUFFO2dCQUNWLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTztnQkFDL0QsUUFBUSxFQUFFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxNQUFNO2dCQUM1RCxLQUFLLEVBQUUsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU87Z0JBQ2pELFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxVQUFVO29CQUN0QyxDQUFDLENBQUMsaUJBQWlCLENBQUMsVUFBVTtvQkFDOUIsQ0FBQyxDQUFDLFNBQVM7Z0JBQ2IsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsaUJBQWlCO29CQUNwRCxDQUFDLENBQUMsTUFBTTtvQkFDUixDQUFDLENBQUMsT0FBTzthQUNaO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFdBQVcsQ0FBQyxnQkFBcUIsRUFBRSxTQUFjO1FBQ3ZELE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNuQixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDekIsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTztZQUNMLEVBQUUsRUFBRSxJQUFJLEVBQUU7WUFDVixLQUFLLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU87WUFDdkMsTUFBTSxFQUFFLG9CQUFvQixDQUFDLEtBQUs7WUFDbEMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLEtBQUs7WUFDdEMsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsZ0JBQWdCLENBQUMsT0FBTztZQUNoQyxJQUFJLEVBQUUsWUFBWTtZQUNsQixVQUFVLEVBQUUsV0FBVztZQUN2QixTQUFTO1lBQ1QsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsUUFBUSxFQUFFLGdCQUFnQixDQUFDLFFBQVE7WUFDbkMsSUFBSSxFQUFFLGdCQUFnQixDQUFDLElBQUk7WUFDM0IsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTTtZQUMvQixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsV0FBVztTQUMxQyxDQUFDO0lBQ0osQ0FBQzt1R0FwSFUsb0JBQW9COzJHQUFwQixvQkFBb0I7O0FBcUN2QjtJQUpQLFNBQVMsQ0FBQztRQUNULGFBQWEsRUFBRSxFQUFFO1FBQ2pCLFdBQVcsRUFBRSxpQkFBaUI7S0FDL0IsQ0FBQzs7NENBR1EsVUFBVTtvQ0FDakIsVUFBVTtvREFNWjsyRkE5Q1Usb0JBQW9CO2tCQURoQyxVQUFVOzJHQXNDRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5pbXBvcnQgeyBjdXN0b21DYWNoZUhhc2hlciwgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDYWNoZWFibGUgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBEaXJlY3Rpb25zRm9ybWF0LFxyXG4gIFNvdXJjZURpcmVjdGlvbnNUeXBlXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiwgRGlyZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlJztcclxuaW1wb3J0IHsgT3NybURpcmVjdGlvbnNTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT3NybURpcmVjdGlvbnNTb3VyY2UgZXh0ZW5kcyBEaXJlY3Rpb25zU291cmNlIHtcclxuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZW5hYmxlZCAhPT0gZmFsc2U7XHJcbiAgfVxyXG4gIHNldCBlbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9IHZhbHVlO1xyXG4gIH1cclxuICBzdGF0aWMgX25hbWUgPSAnT1NSTSBRdcOpYmVjJztcclxuICBwcml2YXRlIGRpcmVjdGlvbnNVcmwgPVxyXG4gICAgJ2h0dHBzOi8vZ2VvZWdsLm1zcC5nb3V2LnFjLmNhL3NlcnZpY2VzL2l0aW5lcmFpcmUvcm91dGUvdjEvZHJpdmluZy8nO1xyXG4gIHByaXZhdGUgb3B0aW9uczogT3NybURpcmVjdGlvbnNTb3VyY2VPcHRpb25zO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdkaXJlY3Rpb25zU291cmNlcy5vc3JtJykgfHwge307XHJcbiAgICB0aGlzLmRpcmVjdGlvbnNVcmwgPSB0aGlzLm9wdGlvbnMudXJsIHx8IHRoaXMuZGlyZWN0aW9uc1VybDtcclxuICB9XHJcblxyXG4gIGdldE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBPc3JtRGlyZWN0aW9uc1NvdXJjZS5fbmFtZTtcclxuICB9XHJcblxyXG4gIHJvdXRlKFxyXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge31cclxuICApOiBPYnNlcnZhYmxlPERpcmVjdGlvbltdPiB7XHJcbiAgICBjb25zdCBkaXJlY3Rpb25zUGFyYW1zID0gdGhpcy5nZXRSb3V0ZVBhcmFtcyhkaXJlY3Rpb25zT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSb3V0ZShjb29yZGluYXRlcywgZGlyZWN0aW9uc1BhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwLFxyXG4gICAgY2FjaGVIYXNoZXI6IGN1c3RvbUNhY2hlSGFzaGVyXHJcbiAgfSlcclxuICBwcml2YXRlIGdldFJvdXRlKFxyXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcclxuICAgIHBhcmFtczogSHR0cFBhcmFtc1xyXG4gICk6IE9ic2VydmFibGU8RGlyZWN0aW9uW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxKU09OW10+KHRoaXMuZGlyZWN0aW9uc1VybCArIGNvb3JkaW5hdGVzLmpvaW4oJzsnKSwge1xyXG4gICAgICAgIHBhcmFtc1xyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShtYXAoKHJlcykgPT4gdGhpcy5leHRyYWN0Um91dGVzRGF0YShyZXMpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RSb3V0ZXNEYXRhKHJlc3BvbnNlKTogRGlyZWN0aW9uW10ge1xyXG4gICAgY29uc3Qgcm91dGVSZXNwb25zZSA9IFtdO1xyXG4gICAgcmVzcG9uc2Uucm91dGVzLmZvckVhY2goKHJvdXRlKSA9PiB7XHJcbiAgICAgIHJvdXRlUmVzcG9uc2UucHVzaCh0aGlzLmZvcm1hdFJvdXRlKHJvdXRlLCByZXNwb25zZS53YXlwb2ludHMpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJvdXRlUmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvdXRlUGFyYW1zKGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge30pOiBIdHRwUGFyYW1zIHtcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXNcclxuICAgICAgICA6IHRydWU7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLnN0ZXBzICE9PSB1bmRlZmluZWQgPyBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA6IHRydWU7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzID1cclxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllcyAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXHJcbiAgICAgICAgOiAnZ2VvanNvbic7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5vdmVydmlldyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ICE9PSB1bmRlZmluZWRcclxuICAgICAgICA/IGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3XHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0ID1cclxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHQgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgID8gZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHRcclxuICAgICAgICA6IGZhbHNlO1xyXG5cclxuICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICBhbHRlcm5hdGl2ZXM6IGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyA/ICd0cnVlJyA6ICdmYWxzZScsXHJcbiAgICAgICAgb3ZlcnZpZXc6IGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ID8gJ3NpbXBsaWZpZWQnIDogJ2Z1bGwnLFxyXG4gICAgICAgIHN0ZXBzOiBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA/ICd0cnVlJyA6ICdmYWxzZScsXHJcbiAgICAgICAgZ2VvbWV0cmllczogZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllc1xyXG4gICAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXHJcbiAgICAgICAgICA6ICdnZW9qc29uJyxcclxuICAgICAgICBjb250aW51ZV9zdHJhaWdodDogZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHRcclxuICAgICAgICAgID8gJ3RydWUnXHJcbiAgICAgICAgICA6ICdmYWxzZSdcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFJvdXRlKHJvYWROZXR3b3JrUm91dGU6IGFueSwgd2F5cG9pbnRzOiBhbnkpOiBEaXJlY3Rpb24ge1xyXG4gICAgY29uc3Qgc3RlcHNVSSA9IFtdO1xyXG4gICAgcm9hZE5ldHdvcmtSb3V0ZS5sZWdzLmZvckVhY2goKGxlZykgPT4ge1xyXG4gICAgICBsZWcuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xyXG4gICAgICAgIHN0ZXBzVUkucHVzaChzdGVwKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiB1dWlkKCksXHJcbiAgICAgIHRpdGxlOiByb2FkTmV0d29ya1JvdXRlLmxlZ3NbMF0uc3VtbWFyeSxcclxuICAgICAgc291cmNlOiBPc3JtRGlyZWN0aW9uc1NvdXJjZS5fbmFtZSxcclxuICAgICAgc291cmNlVHlwZTogU291cmNlRGlyZWN0aW9uc1R5cGUuUm91dGUsXHJcbiAgICAgIG9yZGVyOiAxLFxyXG4gICAgICBmb3JtYXQ6IERpcmVjdGlvbnNGb3JtYXQuR2VvSlNPTixcclxuICAgICAgaWNvbjogJ2RpcmVjdGlvbnMnLFxyXG4gICAgICBwcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcclxuICAgICAgd2F5cG9pbnRzLFxyXG4gICAgICBkaXN0YW5jZTogcm9hZE5ldHdvcmtSb3V0ZS5kaXN0YW5jZSxcclxuICAgICAgZHVyYXRpb246IHJvYWROZXR3b3JrUm91dGUuZHVyYXRpb24sXHJcbiAgICAgIGdlb21ldHJ5OiByb2FkTmV0d29ya1JvdXRlLmdlb21ldHJ5LFxyXG4gICAgICBsZWdzOiByb2FkTmV0d29ya1JvdXRlLmxlZ3MsXHJcbiAgICAgIHN0ZXBzOiBzdGVwc1VJLFxyXG4gICAgICB3ZWlnaHQ6IHJvYWROZXR3b3JrUm91dGUud2VpZ2h0LFxyXG4gICAgICB3ZWlnaHRfbmFtZTogcm9hZE5ldHdvcmtSb3V0ZS53ZWlnaHRfbmFtZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3NybS1kaXJlY3Rpb25zLXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2RpcmVjdGlvbnMvZGlyZWN0aW9ucy1zb3VyY2VzL29zcm0tZGlyZWN0aW9ucy1zb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXpDLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3JCLE1BQU0sMkJBQTJCLENBQUM7QUFFbkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFJdkQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQWE5QztJQUNBO0lBYlYsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksT0FBTyxDQUFDLEtBQWM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxNQUFNLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQztJQUNyQixhQUFhLEdBQ25CLHFFQUFxRSxDQUFDO0lBQ2hFLE9BQU8sQ0FB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QyxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtZQUMzQixLQUFLLEVBQUUsT0FBTztZQUNkLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxNQUFNO1lBQy9CLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxXQUFXO1NBQzFDLENBQUM7SUFDSixDQUFDO3VHQXBIVSxvQkFBb0I7MkdBQXBCLG9CQUFvQjs7QUFxQ3ZCO0lBSlAsU0FBUyxDQUFDO1FBQ1QsYUFBYSxFQUFFLEVBQUU7UUFDakIsV0FBVyxFQUFFLGlCQUFpQjtLQUMvQixDQUFDOzs0Q0FHUSxVQUFVO29DQUNqQixVQUFVO29EQU1aOzJGQTlDVSxvQkFBb0I7a0JBRGhDLFVBQVU7MkdBc0NELFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9jb25maWcnO1xyXG5pbXBvcnQgeyBjdXN0b21DYWNoZUhhc2hlciwgdXVpZCB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDYWNoZWFibGUgfSBmcm9tICd0cy1jYWNoZWFibGUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBEaXJlY3Rpb25zRm9ybWF0LFxyXG4gIFNvdXJjZURpcmVjdGlvbnNUeXBlXHJcbn0gZnJvbSAnLi4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiwgRGlyZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2UgfSBmcm9tICcuL2RpcmVjdGlvbnMtc291cmNlJztcclxuaW1wb3J0IHsgT3NybURpcmVjdGlvbnNTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgT3NybURpcmVjdGlvbnNTb3VyY2UgZXh0ZW5kcyBEaXJlY3Rpb25zU291cmNlIHtcclxuICBnZXQgZW5hYmxlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZW5hYmxlZCAhPT0gZmFsc2U7XHJcbiAgfVxyXG4gIHNldCBlbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuZW5hYmxlZCA9IHZhbHVlO1xyXG4gIH1cclxuICBzdGF0aWMgX25hbWUgPSAnT1NSTSBRdcOpYmVjJztcclxuICBwcml2YXRlIGRpcmVjdGlvbnNVcmwgPVxyXG4gICAgJ2h0dHBzOi8vZ2VvZWdsLm1zcC5nb3V2LnFjLmNhL3NlcnZpY2VzL2l0aW5lcmFpcmUvcm91dGUvdjEvZHJpdmluZy8nO1xyXG4gIHByaXZhdGUgb3B0aW9uczogT3NybURpcmVjdGlvbnNTb3VyY2VPcHRpb25zO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdkaXJlY3Rpb25zU291cmNlcy5vc3JtJykgfHwge307XHJcbiAgICB0aGlzLmRpcmVjdGlvbnNVcmwgPSB0aGlzLm9wdGlvbnMudXJsIHx8IHRoaXMuZGlyZWN0aW9uc1VybDtcclxuICB9XHJcblxyXG4gIGdldE5hbWUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBPc3JtRGlyZWN0aW9uc1NvdXJjZS5fbmFtZTtcclxuICB9XHJcblxyXG4gIHJvdXRlKFxyXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge31cclxuICApOiBPYnNlcnZhYmxlPERpcmVjdGlvbltdPiB7XHJcbiAgICBjb25zdCBkaXJlY3Rpb25zUGFyYW1zID0gdGhpcy5nZXRSb3V0ZVBhcmFtcyhkaXJlY3Rpb25zT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRSb3V0ZShjb29yZGluYXRlcywgZGlyZWN0aW9uc1BhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBAQ2FjaGVhYmxlKHtcclxuICAgIG1heENhY2hlQ291bnQ6IDIwLFxyXG4gICAgY2FjaGVIYXNoZXI6IGN1c3RvbUNhY2hlSGFzaGVyXHJcbiAgfSlcclxuICBwcml2YXRlIGdldFJvdXRlKFxyXG4gICAgY29vcmRpbmF0ZXM6IFtudW1iZXIsIG51bWJlcl1bXSxcclxuICAgIHBhcmFtczogSHR0cFBhcmFtc1xyXG4gICk6IE9ic2VydmFibGU8RGlyZWN0aW9uW10+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldDxKU09OW10+KHRoaXMuZGlyZWN0aW9uc1VybCArIGNvb3JkaW5hdGVzLmpvaW4oJzsnKSwge1xyXG4gICAgICAgIHBhcmFtc1xyXG4gICAgICB9KVxyXG4gICAgICAucGlwZShtYXAoKHJlcykgPT4gdGhpcy5leHRyYWN0Um91dGVzRGF0YShyZXMpKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGV4dHJhY3RSb3V0ZXNEYXRhKHJlc3BvbnNlKTogRGlyZWN0aW9uW10ge1xyXG4gICAgY29uc3Qgcm91dGVSZXNwb25zZSA9IFtdO1xyXG4gICAgcmVzcG9uc2Uucm91dGVzLmZvckVhY2goKHJvdXRlKSA9PiB7XHJcbiAgICAgIHJvdXRlUmVzcG9uc2UucHVzaCh0aGlzLmZvcm1hdFJvdXRlKHJvdXRlLCByZXNwb25zZS53YXlwb2ludHMpKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHJvdXRlUmVzcG9uc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvdXRlUGFyYW1zKGRpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge30pOiBIdHRwUGFyYW1zIHtcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5hbHRlcm5hdGl2ZXNcclxuICAgICAgICA6IHRydWU7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLnN0ZXBzICE9PSB1bmRlZmluZWQgPyBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA6IHRydWU7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzID1cclxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllcyAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXHJcbiAgICAgICAgOiAnZ2VvanNvbic7XHJcbiAgICBkaXJlY3Rpb25zT3B0aW9ucy5vdmVydmlldyA9XHJcbiAgICAgIGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ICE9PSB1bmRlZmluZWRcclxuICAgICAgICA/IGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3XHJcbiAgICAgICAgOiBmYWxzZTtcclxuICAgIGRpcmVjdGlvbnNPcHRpb25zLmNvbnRpbnVlX3N0cmFpZ2h0ID1cclxuICAgICAgZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHQgIT09IHVuZGVmaW5lZFxyXG4gICAgICAgID8gZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHRcclxuICAgICAgICA6IGZhbHNlO1xyXG5cclxuICAgIHJldHVybiBuZXcgSHR0cFBhcmFtcyh7XHJcbiAgICAgIGZyb21PYmplY3Q6IHtcclxuICAgICAgICBhbHRlcm5hdGl2ZXM6IGRpcmVjdGlvbnNPcHRpb25zLmFsdGVybmF0aXZlcyA/ICd0cnVlJyA6ICdmYWxzZScsXHJcbiAgICAgICAgb3ZlcnZpZXc6IGRpcmVjdGlvbnNPcHRpb25zLm92ZXJ2aWV3ID8gJ3NpbXBsaWZpZWQnIDogJ2Z1bGwnLFxyXG4gICAgICAgIHN0ZXBzOiBkaXJlY3Rpb25zT3B0aW9ucy5zdGVwcyA/ICd0cnVlJyA6ICdmYWxzZScsXHJcbiAgICAgICAgZ2VvbWV0cmllczogZGlyZWN0aW9uc09wdGlvbnMuZ2VvbWV0cmllc1xyXG4gICAgICAgICAgPyBkaXJlY3Rpb25zT3B0aW9ucy5nZW9tZXRyaWVzXHJcbiAgICAgICAgICA6ICdnZW9qc29uJyxcclxuICAgICAgICBjb250aW51ZV9zdHJhaWdodDogZGlyZWN0aW9uc09wdGlvbnMuY29udGludWVfc3RyYWlnaHRcclxuICAgICAgICAgID8gJ3RydWUnXHJcbiAgICAgICAgICA6ICdmYWxzZSdcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFJvdXRlKHJvYWROZXR3b3JrUm91dGU6IGFueSwgd2F5cG9pbnRzOiBhbnkpOiBEaXJlY3Rpb24ge1xyXG4gICAgY29uc3Qgc3RlcHNVSSA9IFtdO1xyXG4gICAgcm9hZE5ldHdvcmtSb3V0ZS5sZWdzLmZvckVhY2goKGxlZykgPT4ge1xyXG4gICAgICBsZWcuc3RlcHMuZm9yRWFjaCgoc3RlcCkgPT4ge1xyXG4gICAgICAgIHN0ZXBzVUkucHVzaChzdGVwKTtcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIGlkOiB1dWlkKCksXHJcbiAgICAgIHRpdGxlOiByb2FkTmV0d29ya1JvdXRlLmxlZ3NbMF0uc3VtbWFyeSxcclxuICAgICAgc291cmNlOiBPc3JtRGlyZWN0aW9uc1NvdXJjZS5fbmFtZSxcclxuICAgICAgc291cmNlVHlwZTogU291cmNlRGlyZWN0aW9uc1R5cGUuUm91dGUsXHJcbiAgICAgIG9yZGVyOiAxLFxyXG4gICAgICBmb3JtYXQ6IERpcmVjdGlvbnNGb3JtYXQuR2VvSlNPTixcclxuICAgICAgaWNvbjogJ2RpcmVjdGlvbnMnLFxyXG4gICAgICBwcm9qZWN0aW9uOiAnRVBTRzo0MzI2JyxcclxuICAgICAgd2F5cG9pbnRzLFxyXG4gICAgICBkaXN0YW5jZTogcm9hZE5ldHdvcmtSb3V0ZS5kaXN0YW5jZSxcclxuICAgICAgZHVyYXRpb246IHJvYWROZXR3b3JrUm91dGUuZHVyYXRpb24sXHJcbiAgICAgIGdlb21ldHJ5OiByb2FkTmV0d29ya1JvdXRlLmdlb21ldHJ5LFxyXG4gICAgICBsZWdzOiByb2FkTmV0d29ya1JvdXRlLmxlZ3MsXHJcbiAgICAgIHN0ZXBzOiBzdGVwc1VJLFxyXG4gICAgICB3ZWlnaHQ6IHJvYWROZXR3b3JrUm91dGUud2VpZ2h0LFxyXG4gICAgICB3ZWlnaHRfbmFtZTogcm9hZE5ldHdvcmtSb3V0ZS53ZWlnaHRfbmFtZVxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectorRef, Component, Input } from '@angular/core';
|
|
2
2
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
3
3
|
import { EntityStoreWatcher } from '@igo2/common';
|
|
4
|
-
import { LanguageService } from '@igo2/core';
|
|
4
|
+
import { LanguageService } from '@igo2/core/language';
|
|
5
5
|
import { ChangeUtils, ObjectUtils } from '@igo2/utils';
|
|
6
6
|
import * as olCondition from 'ol/events/condition';
|
|
7
7
|
import * as olInteraction from 'ol/interaction';
|
|
@@ -21,7 +21,7 @@ import { DirectionsService } from './shared/directions.service';
|
|
|
21
21
|
import { addDirectionToRoutesFeatureStore, addStopToStopsFeatureStore, addStopToStore, initRoutesFeatureStore, initStepFeatureStore, initStopsFeatureStore, updateStoreSorting } from './shared/directions.utils';
|
|
22
22
|
import { RoutesFeatureStore, StepFeatureStore, StopsFeatureStore, StopsStore } from './shared/store';
|
|
23
23
|
import * as i0 from "@angular/core";
|
|
24
|
-
import * as i1 from "@igo2/core";
|
|
24
|
+
import * as i1 from "@igo2/core/language";
|
|
25
25
|
import * as i2 from "./shared/directions.service";
|
|
26
26
|
import * as i3 from "../search/shared/search.service";
|
|
27
27
|
import * as i4 from "../query/shared/query.service";
|
|
@@ -326,10 +326,10 @@ export class DirectionsComponent {
|
|
|
326
326
|
? ol.addInteraction(interaction)
|
|
327
327
|
: ol.removeInteraction(interaction));
|
|
328
328
|
}
|
|
329
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
330
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.
|
|
329
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.LanguageService }, { token: i2.DirectionsService }, { token: i3.SearchService }, { token: i4.QueryService }], target: i0.ɵɵFactoryTarget.Component });
|
|
330
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.4", type: DirectionsComponent, isStandalone: true, selector: "igo-directions", inputs: { contextUri: "contextUri", stopsStore: "stopsStore", stopsFeatureStore: "stopsFeatureStore", routesFeatureStore: "routesFeatureStore", stepFeatureStore: "stepFeatureStore", debounce: "debounce", length: "length", coordRoundedDecimals: "coordRoundedDecimals", zoomToActiveRoute$: "zoomToActiveRoute$" }, ngImport: i0, template: "<div class=\"directions-options\">\r\n <mat-slide-toggle\r\n [checked]=\"directionControlIsActive\"\r\n [labelPosition]=\"'before'\"\r\n (change)=\"onToggleDirectionsControl($event.checked)\"\r\n >\r\n {{ 'igo.geo.directionsForm.toggleActive' | translate }}\r\n </mat-slide-toggle>\r\n</div>\r\n\r\n<igo-directions-buttons\r\n [stepFeatureStore]=\"stepFeatureStore\"\r\n [contextUri]=\"contextUri\"\r\n [zoomToActiveRoute$]=\"zoomToActiveRoute$\"\r\n [routesFeatureStore]=\"routesFeatureStore\"\r\n [stopsStore]=\"stopsStore\"\r\n></igo-directions-buttons>\r\n\r\n<igo-directions-inputs\r\n (stopInputHasFocus)=\"onStopInputHasFocusChange($event)\"\r\n [coordRoundedDecimals]=\"coordRoundedDecimals\"\r\n [projection]=\"projection\"\r\n [stopsFeatureStore]=\"stopsFeatureStore\"\r\n [stopsStore]=\"stopsStore\"\r\n [debounce]=\"debounce\"\r\n [length]=\"length\"\r\n></igo-directions-inputs>\r\n\r\n<igo-directions-results\r\n [stepFeatureStore]=\"stepFeatureStore\"\r\n [routesFeatureStore]=\"routesFeatureStore\"\r\n></igo-directions-results>\r\n", styles: [".directions-options mat-slide-toggle{width:100%;padding:10px}.directions-options mat-slide-toggle ::ng-deep .mdc-form-field{width:100%}.directions-options mat-slide-toggle ::ng-deep .mdc-label{margin-left:0;width:calc(100% - 60px)}\n"], dependencies: [{ kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: DirectionsButtonsComponent, selector: "igo-directions-buttons", inputs: ["contextUri", "zoomToActiveRoute$", "stopsStore", "routesFeatureStore", "stepFeatureStore"] }, { kind: "component", type: DirectionsInputsComponent, selector: "igo-directions-inputs", inputs: ["stopsStore", "stopsFeatureStore", "projection", "coordRoundedDecimals", "debounce", "length"], outputs: ["stopInputHasFocus"] }, { kind: "component", type: DirectionsResultsComponent, selector: "igo-directions-results", inputs: ["routesFeatureStore", "stepFeatureStore"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
|
|
331
331
|
}
|
|
332
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
332
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsComponent, decorators: [{
|
|
333
333
|
type: Component,
|
|
334
334
|
args: [{ selector: 'igo-directions', standalone: true, imports: [
|
|
335
335
|
MatSlideToggleModule,
|
|
@@ -357,4 +357,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
357
357
|
}], zoomToActiveRoute$: [{
|
|
358
358
|
type: Input
|
|
359
359
|
}] } });
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUd2RCxPQUFPLEtBQUssV0FBVyxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sS0FBSyxhQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFHaEQsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFFbEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTdELE9BQU8s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MEJBQTBCLHNIQUMxQixlQUFlOzsyRkFHTixtQkFBbUI7a0JBYi9CLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBR2QsSUFBSSxXQUNQO3dCQUNQLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQix5QkFBeUI7d0JBQ3pCLDBCQUEwQjt3QkFDMUIsZUFBZTtxQkFDaEI7Mk1Bc0JRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgSW5wdXQsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XHJcblxyXG5pbXBvcnQgeyBFbnRpdHlTdG9yZVdhdGNoZXIgfSBmcm9tICdAaWdvMi9jb21tb24nO1xyXG5pbXBvcnQgeyBMYW5ndWFnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgQ2hhbmdlVXRpbHMsIE9iamVjdFV0aWxzIH0gZnJvbSAnQGlnbzIvdXRpbHMnO1xyXG5cclxuaW1wb3J0IENvbGxlY3Rpb24gZnJvbSAnb2wvQ29sbGVjdGlvbic7XHJcbmltcG9ydCAqIGFzIG9sQ29uZGl0aW9uIGZyb20gJ29sL2V2ZW50cy9jb25kaXRpb24nO1xyXG5pbXBvcnQgKiBhcyBvbEludGVyYWN0aW9uIGZyb20gJ29sL2ludGVyYWN0aW9uJztcclxuaW1wb3J0IHsgU2VsZWN0RXZlbnQgfSBmcm9tICdvbC9pbnRlcmFjdGlvbi9TZWxlY3QnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1RyYW5zbGF0ZSc7XHJcbmltcG9ydCAqIGFzIG9sUHJvaiBmcm9tICdvbC9wcm9qJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgRmVhdHVyZSB9IGZyb20gJy4uL2ZlYXR1cmUvc2hhcmVkL2ZlYXR1cmUuaW50ZXJmYWNlcyc7XHJcbmltcG9ydCB7IEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSB9IGZyb20gJy4uL2ZlYXR1cmUvc2hhcmVkL3N0cmF0ZWdpZXMvbG9hZGluZyc7XHJcbmltcG9ydCB7IHJvdW5kQ29vcmRUbywgc3RyaW5nVG9Mb25MYXQgfSBmcm9tICcuLi9tYXAnO1xyXG5pbXBvcnQgeyBRdWVyeVNlcnZpY2UgfSBmcm9tICcuLi9xdWVyeS9zaGFyZWQvcXVlcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFJlc2VhcmNoLCBTZWFyY2hSZXN1bHQgfSBmcm9tICcuLi9zZWFyY2gvc2hhcmVkL3NlYXJjaC5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgU2VhcmNoU2VydmljZSB9IGZyb20gJy4uL3NlYXJjaC9zaGFyZWQvc2VhcmNoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zQnV0dG9uc0NvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aW9ucy1idXR0b25zL2RpcmVjdGlvbnMtYnV0dG9ucy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWlucHV0cy9kaXJlY3Rpb25zLWlucHV0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zUmVzdWx0c0NvbXBvbmVudCB9IGZyb20gJy4vZGlyZWN0aW9ucy1yZXN1bHRzL2RpcmVjdGlvbnMtcmVzdWx0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25UeXBlLCBQcm9wb3NhbFR5cGUgfSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIERpcmVjdGlvbk9wdGlvbnMsXHJcbiAgRmVhdHVyZVdpdGhTdG9wUHJvcGVydGllcyxcclxuICBTdG9wXHJcbn0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBEaXJlY3Rpb25zU2VydmljZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgYWRkRGlyZWN0aW9uVG9Sb3V0ZXNGZWF0dXJlU3RvcmUsXHJcbiAgYWRkU3RvcFRvU3RvcHNGZWF0dXJlU3RvcmUsXHJcbiAgYWRkU3RvcFRvU3RvcmUsXHJcbiAgaW5pdFJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICBpbml0U3RlcEZlYXR1cmVTdG9yZSxcclxuICBpbml0U3RvcHNGZWF0dXJlU3RvcmUsXHJcbiAgdXBkYXRlU3RvcmVTb3J0aW5nXHJcbn0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy51dGlscyc7XHJcbmltcG9ydCB7XHJcbiAgUm91dGVzRmVhdHVyZVN0b3JlLFxyXG4gIFN0ZXBGZWF0dXJlU3RvcmUsXHJcbiAgU3RvcHNGZWF0dXJlU3RvcmUsXHJcbiAgU3RvcHNTdG9yZVxyXG59IGZyb20gJy4vc2hhcmVkL3N0b3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWdvLWRpcmVjdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kaXJlY3Rpb25zLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRTbGlkZVRvZ2dsZU1vZHVsZSxcclxuICAgIERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc0lucHV0c0NvbXBvbmVudCxcclxuICAgIERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50LFxyXG4gICAgVHJhbnNsYXRlTW9kdWxlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGlyZWN0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIHdhdGNoZXI6IEVudGl0eVN0b3JlV2F0Y2hlcjxTdG9wPjtcclxuXHJcbiAgcHVibGljIHByb2plY3Rpb246IHN0cmluZyA9ICdFUFNHOjQzMjYnO1xyXG5cclxuICBwcml2YXRlIHpvb21Sb3V0ZSQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBzdG9yZUVtcHR5JCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHN0b3JlQ2hhbmdlJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHJvdXRlc1F1ZXJpZXMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBzZWxlY3RTdG9wSW50ZXJhY3Rpb246IG9sSW50ZXJhY3Rpb24uU2VsZWN0O1xyXG4gIHByaXZhdGUgdHJhbnNsYXRlU3RvcDogb2xJbnRlcmFjdGlvbi5UcmFuc2xhdGU7XHJcbiAgcHJpdmF0ZSBzZWxlY3RlZFJvdXRlOiBvbEludGVyYWN0aW9uLlNlbGVjdDtcclxuICBwcml2YXRlIGZvY3VzT25TdG9wOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc1RyYW5zbGF0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBwcmV2aW91c1N0b3BzOiBTdG9wW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBzZWFyY2hzJCQ6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIGNvbnRleHRVcmk6IHN0cmluZztcclxuICBASW5wdXQoKSBzdG9wc1N0b3JlOiBTdG9wc1N0b3JlO1xyXG4gIEBJbnB1dCgpIHN0b3BzRmVhdHVyZVN0b3JlOiBTdG9wc0ZlYXR1cmVTdG9yZTtcclxuICBASW5wdXQoKSByb3V0ZXNGZWF0dXJlU3RvcmU6IFJvdXRlc0ZlYXR1cmVTdG9yZTtcclxuICBASW5wdXQoKSBzdGVwRmVhdHVyZVN0b3JlOiBTdGVwRmVhdHVyZVN0b3JlO1xyXG4gIEBJbnB1dCgpIGRlYm91bmNlOiBudW1iZXIgPSAyMDA7XHJcbiAgQElucHV0KCkgbGVuZ3RoOiBudW1iZXIgPSAyO1xyXG4gIEBJbnB1dCgpIGNvb3JkUm91bmRlZERlY2ltYWxzOiBudW1iZXIgPSA2O1xyXG4gIEBJbnB1dCgpIHpvb21Ub0FjdGl2ZVJvdXRlJDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZXRlciBvbmUgb2YgdGhlIGRpcmVjdGlvbiBjb250cm9sIGlzIGFjdGl2ZVxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqL1xyXG4gIGdldCBkaXJlY3Rpb25Db250cm9sSXNBY3RpdmUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZDtcclxuICB9XHJcblxyXG4gIGdldCBpbnRlcmFjdGlvbnMoKTogb2xJbnRlcmFjdGlvbi5JbnRlcmFjdGlvbltdIHtcclxuICAgIHJldHVybiBbdGhpcy5zZWxlY3RTdG9wSW50ZXJhY3Rpb24sIHRoaXMudHJhbnNsYXRlU3RvcCwgdGhpcy5zZWxlY3RlZFJvdXRlXTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIGxhbmd1YWdlU2VydmljZTogTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBkaXJlY3Rpb25zU2VydmljZTogRGlyZWN0aW9uc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNlYXJjaFNlcnZpY2U6IFNlYXJjaFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHF1ZXJ5U2VydmljZTogUXVlcnlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbml0RW50aXR5U3RvcmVzKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgaW5pdFN0b3BzRmVhdHVyZVN0b3JlKHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsIHRoaXMubGFuZ3VhZ2VTZXJ2aWNlKTtcclxuICAgICAgaW5pdFJvdXRlc0ZlYXR1cmVTdG9yZSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZSwgdGhpcy5sYW5ndWFnZVNlcnZpY2UpO1xyXG4gICAgICBpbml0U3RlcEZlYXR1cmVTdG9yZSh0aGlzLnN0ZXBGZWF0dXJlU3RvcmUpO1xyXG4gICAgICB0aGlzLmluaXRPbEludGVyYWN0aW9uKCk7XHJcbiAgICB9LCAxKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkID0gdHJ1ZTtcclxuICAgIHRoaXMuc3RvcmVFbXB0eSQkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcclxuICAgIHRoaXMuem9vbVJvdXRlJCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuZnJlZXplU3RvcmVzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZyZWV6ZVN0b3JlcygpIHtcclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICk7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlYWN0aXZhdGVTdHJhdGVneU9mVHlwZShcclxuICAgICAgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5XHJcbiAgICApO1xyXG4gICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKFxyXG4gICAgICBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3lcclxuICAgICk7XHJcbiAgICB0aGlzLnN0ZXBGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRFbnRpdHlTdG9yZXMoKSB7XHJcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgRW50aXR5U3RvcmVXYXRjaGVyKHRoaXMuc3RvcHNTdG9yZSwgdGhpcy5jZFJlZik7XHJcbiAgICB0aGlzLm1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCk7XHJcbiAgICB0aGlzLm1vbml0b3JFbnRpdHlTdG9yZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5tb25pdG9yQWN0aXZlUm91dGVab29tKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JBY3RpdmVSb3V0ZVpvb20oKSB7XHJcbiAgICB0aGlzLnpvb21Sb3V0ZSQkID0gdGhpcy56b29tVG9BY3RpdmVSb3V0ZSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmNvdW50ID49IDEpIHtcclxuICAgICAgICBjb25zdCBhY3RpdmVSb3V0ZSA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlXHJcbiAgICAgICAgICAuYWxsKClcclxuICAgICAgICAgIC5maW5kKChyb3V0ZSkgPT4gcm91dGUucHJvcGVydGllcy5hY3RpdmUpO1xyXG5cclxuICAgICAgICBpZiAoYWN0aXZlUm91dGUpIHtcclxuICAgICAgICAgIGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCk7XHJcbiAgICAgICAgICBjb25zdCByb3V0ZUV4dGVudCA9IGFjdGl2ZVJvdXRlLm9sLmdldEdlb21ldHJ5KCkuZ2V0RXh0ZW50KCk7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAudmlld0NvbnRyb2xsZXIuem9vbVRvRXh0ZW50KFxyXG4gICAgICAgICAgICByb3V0ZUV4dGVudCBhcyBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0T2xJbnRlcmFjdGlvbigpIHtcclxuICAgIHRoaXMuc2VsZWN0U3RvcEludGVyYWN0aW9uID0gbmV3IG9sSW50ZXJhY3Rpb24uU2VsZWN0KHtcclxuICAgICAgbGF5ZXJzOiBbdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXHJcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcclxuICAgICAgY29uZGl0aW9uOiAoZXZlbnQpID0+IHtcclxuICAgICAgICByZXR1cm4gZXZlbnQudHlwZSA9PT0gJ3BvaW50ZXJtb3ZlJyAmJiAhZXZlbnQuZHJhZ2dpbmc7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudHJhbnNsYXRlU3RvcCA9IG5ldyBvbEludGVyYWN0aW9uLlRyYW5zbGF0ZSh7XHJcbiAgICAgIGZlYXR1cmVzOiB0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbi5nZXRGZWF0dXJlcygpXHJcbiAgICB9KTtcclxuICAgIHRoaXMudHJhbnNsYXRlU3RvcC5vbigndHJhbnNsYXRpbmcnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLmV4ZWN1dGVTdG9wVHJhbnNsYXRpb24oZXZ0LmZlYXR1cmVzKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTdG9wLm9uKCd0cmFuc2xhdGVlbmQnLCAoZXZ0OiBUcmFuc2xhdGVFdmVudCkgPT4ge1xyXG4gICAgICB0aGlzLmlzVHJhbnNsYXRpbmcgPSBmYWxzZTtcclxuICAgICAgdGhpcy5leGVjdXRlU3RvcFRyYW5zbGF0aW9uKGV2dC5mZWF0dXJlcyk7XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnNlbGVjdGVkUm91dGUgPSBuZXcgb2xJbnRlcmFjdGlvbi5TZWxlY3Qoe1xyXG4gICAgICBsYXllcnM6IFt0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5vbF0sXHJcbiAgICAgIGNvbmRpdGlvbjogb2xDb25kaXRpb24uY2xpY2ssXHJcbiAgICAgIGhpdFRvbGVyYW5jZTogNyxcclxuICAgICAgZmlsdGVyOiAoZmVhdHVyZSkgPT4ge1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICBmZWF0dXJlLmdldCgndHlwZScpID09PSBEaXJlY3Rpb25UeXBlLlJvdXRlICYmXHJcbiAgICAgICAgICBmZWF0dXJlLmdldCgnYWN0aXZlJykgJiZcclxuICAgICAgICAgICF0aGlzLmlzVHJhbnNsYXRpbmdcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZS5vbignc2VsZWN0JywgKGV2dDogU2VsZWN0RXZlbnQpID0+IHtcclxuICAgICAgaWYgKHRoaXMuZm9jdXNPblN0b3AgPT09IGZhbHNlKSB7XHJcbiAgICAgICAgY29uc3Qgc2VsZWN0Q29vcmRpbmF0ZXMgPSByb3VuZENvb3JkVG8oXHJcbiAgICAgICAgICBvbFByb2oudHJhbnNmb3JtKFxyXG4gICAgICAgICAgICAoZXZ0IGFzIGFueSkubWFwQnJvd3NlckV2ZW50LmNvb3JkaW5hdGUsXHJcbiAgICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICAgICAgICB0aGlzLnByb2plY3Rpb25cclxuICAgICAgICAgICkgYXMgW251bWJlciwgbnVtYmVyXSxcclxuICAgICAgICAgIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHNcclxuICAgICAgICApO1xyXG4gICAgICAgIGNvbnN0IGFkZGVkU3RvcCA9IGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICAgICAgYWRkZWRTdG9wLnRleHQgPSBzZWxlY3RDb29yZGluYXRlcy5qb2luKCcsJyk7XHJcbiAgICAgICAgYWRkZWRTdG9wLmNvb3JkaW5hdGVzID0gW3NlbGVjdENvb3JkaW5hdGVzWzBdLCBzZWxlY3RDb29yZGluYXRlc1sxXV07XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvblN0b3BJbnB1dEhhc0ZvY3VzQ2hhbmdlKHN0b3BJbnB1dEhhc0ZvY3VzOiBib29sZWFuKSB7XHJcbiAgICBzdG9wSW5wdXRIYXNGb2N1c1xyXG4gICAgICA/IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5yZW1vdmVJbnRlcmFjdGlvbihcclxuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZVxyXG4gICAgICAgIClcclxuICAgICAgOiB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAub2wuYWRkSW50ZXJhY3Rpb24odGhpcy5zZWxlY3RlZFJvdXRlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZXhlY3V0ZVN0b3BUcmFuc2xhdGlvbihmZWF0dXJlczogQ29sbGVjdGlvbjxhbnk+KSB7XHJcbiAgICBpZiAoZmVhdHVyZXMuZ2V0TGVuZ3RoKCkgPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZmlyc3RGZWF0dXJlID0gZmVhdHVyZXMuZ2V0QXJyYXkoKVswXTtcclxuICAgIGNvbnN0IHRyYW5zbGF0ZWRTdG9wSWQgPSBmaXJzdEZlYXR1cmUuZ2V0SWQoKTtcclxuXHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbkNvb3JkaW5hdGVzID0gb2xQcm9qLnRyYW5zZm9ybShcclxuICAgICAgZmlyc3RGZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0Q29vcmRpbmF0ZXMoKSxcclxuICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5sYXllci5tYXAucHJvamVjdGlvbixcclxuICAgICAgdGhpcy5wcm9qZWN0aW9uXHJcbiAgICApO1xyXG4gICAgY29uc3QgdHJhbnNsYXRlZFN0b3AgPSB0aGlzLnN0b3BzU3RvcmUuZ2V0KHRyYW5zbGF0ZWRTdG9wSWQpO1xyXG4gICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICB0cmFuc2xhdGlvbkNvb3JkaW5hdGVzIGFzIFtudW1iZXIsIG51bWJlcl0sXHJcbiAgICAgIHRoaXMuY29vcmRSb3VuZGVkRGVjaW1hbHNcclxuICAgICk7XHJcbiAgICB0cmFuc2xhdGVkU3RvcC5jb29yZGluYXRlcyA9IHJvdW5kZWRDb29yZDtcclxuICAgIHRyYW5zbGF0ZWRTdG9wLnRleHQgPSByb3VuZGVkQ29vcmQuam9pbignLCcpO1xyXG4gICAgdGhpcy5zdG9wc1N0b3JlLnVwZGF0ZSh0cmFuc2xhdGVkU3RvcCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JFbXB0eUVudGl0eVN0b3JlKCkge1xyXG4gICAgLy8gV2F0Y2ggaWYgdGhlIHN0b3JlIGlzIGVtcHR5IHRvIHJlc2V0IGl0XHJcbiAgICB0aGlzLnN0b3JlRW1wdHkkJCA9IHRoaXMuc3RvcHNTdG9yZS5jb3VudCRcclxuICAgICAgLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgLnN1YnNjcmliZSgoY291bnQpID0+IHtcclxuICAgICAgICBpZiAoY291bnQgPCAyKSB7XHJcbiAgICAgICAgICBhZGRTdG9wVG9TdG9yZSh0aGlzLnN0b3BzU3RvcmUpO1xyXG4gICAgICAgICAgaWYgKHRoaXMuc3RvcHNTdG9yZS5jb3VudCA9PT0gMikge1xyXG4gICAgICAgICAgICB0aGlzLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQubmV4dCh0cnVlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5zdG9wc1N0b3JlLnN0b3JlSW5pdGlhbGl6ZWQkLm5leHQoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtb25pdG9yRW50aXR5U3RvcmVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLnN0b3JlQ2hhbmdlJCQgPSB0aGlzLnN0b3BzU3RvcmUuZW50aXRpZXMkXHJcbiAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlKSlcclxuICAgICAgLnN1YnNjcmliZSgoc3RvcHM6IFN0b3BbXSkgPT4ge1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU3RvcERpZmYoc3RvcHMpO1xyXG4gICAgICAgIHVwZGF0ZVN0b3JlU29ydGluZyh0aGlzLnN0b3BzU3RvcmUpO1xyXG4gICAgICAgIHRoaXMuaGFuZGxlU3RvcHNGZWF0dXJlKCk7XHJcbiAgICAgICAgdGhpcy5nZXRSb3V0ZXModGhpcy5pc1RyYW5zbGF0aW5nKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBjYW5jZWxTZWFyY2goKSB7XHJcbiAgICB0aGlzLnNlYXJjaHMkJC5tYXAoKHMpID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVN0b3BEaWZmKHN0b3BzOiBTdG9wW10pIHtcclxuICAgIGNvbnN0IHNpbXBsaWZpZWRTdG9wcyA9IHN0b3BzLm1hcCgoc3RvcDogU3RvcCkgPT4ge1xyXG4gICAgICByZXR1cm4gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcclxuICAgICAgICAuLi57IGlkOiBzdG9wLmlkLCB0ZXh0OiBzdG9wLnRleHQsIGNvb3JkaW5hdGVzOiBzdG9wLmNvb3JkaW5hdGVzIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGRpZmYgPSBDaGFuZ2VVdGlscy5maW5kQ2hhbmdlcyh0aGlzLnByZXZpb3VzU3RvcHMsIHNpbXBsaWZpZWRTdG9wcywgW1xyXG4gICAgICAnY29vcmRpbmF0ZXMnXHJcbiAgICBdKTtcclxuICAgIGNvbnN0IHN0b3BJZFRvUHJvY2VzcyA9IGRpZmYuYWRkZWQuY29uY2F0KGRpZmYubW9kaWZpZWQpO1xyXG4gICAgaWYgKHN0b3BJZFRvUHJvY2Vzcykge1xyXG4gICAgICBzdG9wSWRUb1Byb2Nlc3MubWFwKChjaGFuZ2UpID0+IHtcclxuICAgICAgICBjb25zdCBjaGFuZ2VkU3RvcCA9IGNoYW5nZS5uZXdWYWx1ZSBhcyBTdG9wO1xyXG4gICAgICAgIGlmIChjaGFuZ2VkU3RvcCkge1xyXG4gICAgICAgICAgY29uc3Qgc3RvcDogU3RvcCA9IHRoaXMuc3RvcHNTdG9yZS5nZXQoY2hhbmdlZFN0b3AuaWQpO1xyXG4gICAgICAgICAgY29uc3QgdGVybSA9IHN0b3AudGV4dDtcclxuICAgICAgICAgIGlmICghdGVybSB8fCB0ZXJtLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBjb25zdCByZXNwb25zZSA9IHN0cmluZ1RvTG9uTGF0KFxyXG4gICAgICAgICAgICB0ZXJtLFxyXG4gICAgICAgICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgbGV0IHJlc2VhcmNoZXM6IFJlc2VhcmNoW107XHJcbiAgICAgICAgICBsZXQgaXNDb29yZCA9IGZhbHNlO1xyXG4gICAgICAgICAgaWYgKHJlc3BvbnNlLmxvbkxhdCkge1xyXG4gICAgICAgICAgICBpc0Nvb3JkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc2VhcmNoZXMgPSB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoKHRlcm0sIHtcclxuICAgICAgICAgICAgc2VhcmNoVHlwZTogJ0ZlYXR1cmUnXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHRoaXMuY2FuY2VsU2VhcmNoKCk7XHJcbiAgICAgICAgICBjb25zdCByZXF1ZXN0cyQgPSByZXNlYXJjaGVzLm1hcCgocmVzKSA9PlxyXG4gICAgICAgICAgICByZXMucmVxdWVzdC5waXBlKFxyXG4gICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XHJcbiAgICAgICAgICAgICAgICByZXN1bHRzLmZpbHRlcigocikgPT5cclxuICAgICAgICAgICAgICAgICAgaXNDb29yZFxyXG4gICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgOiByLmRhdGEuZ2VvbWV0cnlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICB0aGlzLnNlYXJjaHMkJCA9IHJlcXVlc3RzJC5tYXAoKHJlcXVlc3QpID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIHJlcXVlc3RcclxuICAgICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzdWx0czogU2VhcmNoUmVzdWx0W10pID0+XHJcbiAgICAgICAgICAgICAgICAgIHJlc3VsdHMuZmlsdGVyKChyKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIGlzQ29vcmRcclxuICAgICAgICAgICAgICAgICAgICAgID8gci5kYXRhLmdlb21ldHJ5LnR5cGUgPT09ICdQb2ludCcgJiYgci5kYXRhLmdlb21ldHJ5XHJcbiAgICAgICAgICAgICAgICAgICAgICA6IHIuZGF0YS5nZW9tZXRyeVxyXG4gICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlczogU2VhcmNoUmVzdWx0W10pID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChyZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBzb3VyY2UgPSByZXNbMF0uc291cmNlO1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBtZXRhID0gcmVzWzBdLm1ldGE7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSByZXMubWFwKChyKSA9PiByLmRhdGEpO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoIXN0b3Auc2VhcmNoUHJvcG9zYWxzKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICBzdG9wLnNlYXJjaFByb3Bvc2FscyA9IHN0b3Auc2VhcmNoUHJvcG9zYWxzLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoc3ApID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICBzcC50eXBlID09PVxyXG4gICAgICAgICAgICAgICAgICAgICAgKGlzQ29vcmQgPyBQcm9wb3NhbFR5cGUuQ29vcmQgOiBQcm9wb3NhbFR5cGUuVGV4dClcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgbGV0IHN0b3JlZFNvdXJjZSA9IHN0b3Auc2VhcmNoUHJvcG9zYWxzLmZpbmQoXHJcbiAgICAgICAgICAgICAgICAgICAgKHNwKSA9PiBzcC5zb3VyY2UgPT09IHNvdXJjZVxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICBpZiAoc3RvcmVkU291cmNlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcmVkU291cmNlLnJlc3VsdHMgPSByZXN1bHRzO1xyXG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHN0b3Auc2VhcmNoUHJvcG9zYWxzLnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogaXNDb29yZCA/IFByb3Bvc2FsVHlwZS5Db29yZCA6IFByb3Bvc2FsVHlwZS5UZXh0LFxyXG4gICAgICAgICAgICAgICAgICAgICAgc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgbWV0YSxcclxuICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHNcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5wcmV2aW91c1N0b3BzID0gc2ltcGxpZmllZFN0b3BzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVTdG9wc0ZlYXR1cmUoKSB7XHJcbiAgICBjb25zdCBzdG9wcyA9IHRoaXMuc3RvcHNTdG9yZS5hbGwoKTtcclxuICAgIGNvbnN0IHN0b3BzV2l0aENvb3JkaW5hdGVzID0gc3RvcHMuZmlsdGVyKChzdG9wKSA9PiBzdG9wLmNvb3JkaW5hdGVzKTtcclxuICAgIHN0b3BzV2l0aENvb3JkaW5hdGVzLm1hcCgoc3RvcCkgPT4gdGhpcy5hZGRTdG9wT3ZlcmxheShzdG9wKSk7XHJcbiAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlXHJcbiAgICAgIC5hbGwoKVxyXG4gICAgICAubWFwKChzdG9wRmVhdHVyZTogRmVhdHVyZTxGZWF0dXJlV2l0aFN0b3BQcm9wZXJ0aWVzPikgPT4ge1xyXG4gICAgICAgIGlmICghdGhpcy5zdG9wc1N0b3JlLmdldChzdG9wRmVhdHVyZS5wcm9wZXJ0aWVzLmlkKSkge1xyXG4gICAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGUoc3RvcEZlYXR1cmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICBjb25zdCBzdG9wc1dpdGhvdXRDb29yZGluYXRlcyA9IHN0b3BzLmZpbHRlcigoc3RvcCkgPT4gIXN0b3AuY29vcmRpbmF0ZXMpO1xyXG4gICAgc3RvcHNXaXRob3V0Q29vcmRpbmF0ZXMubWFwKChzdG9wKSA9PiB7XHJcbiAgICAgIGNvbnN0IHN0b3BGZWF0dXJlID0gdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5nZXQoc3RvcC5pZCk7XHJcbiAgICAgIGlmIChzdG9wRmVhdHVyZSkge1xyXG4gICAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuZGVsZXRlKHN0b3BGZWF0dXJlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldFJvdXRlcyhpc092ZXJ2aWV3OiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGNvbnN0IHN0b3BzV2l0aENvb3JkaW5hdGVzID0gdGhpcy5zdG9wc1N0b3JlLnZpZXdcclxuICAgICAgLmFsbCgpXHJcbiAgICAgIC5maWx0ZXIoKHN0b3ApID0+IHN0b3AuY29vcmRpbmF0ZXMpO1xyXG4gICAgaWYgKHN0b3BzV2l0aENvb3JkaW5hdGVzLmxlbmd0aCA8IDIpIHtcclxuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVsZXRlTWFueSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5hbGwoKSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCByb3VuZGVkQ29vcmRpbmF0ZXMgPSBzdG9wc1dpdGhDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHtcclxuICAgICAgY29uc3Qgcm91bmRlZENvb3JkID0gcm91bmRDb29yZFRvKFxyXG4gICAgICAgIHN0b3AuY29vcmRpbmF0ZXMsXHJcbiAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xyXG4gICAgICApO1xyXG4gICAgICByZXR1cm4gcm91bmRlZENvb3JkO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBvdmVydmlld0RpcmVjdGlvbnNPcHRpb25zOiBEaXJlY3Rpb25PcHRpb25zID0ge1xyXG4gICAgICBvdmVydmlldzogdHJ1ZSxcclxuICAgICAgc3RlcHM6IGZhbHNlLFxyXG4gICAgICBhbHRlcm5hdGl2ZXM6IGZhbHNlLFxyXG4gICAgICBjb250aW51ZV9zdHJhaWdodDogZmFsc2VcclxuICAgIH07XHJcbiAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5tYXAoKHUpID0+IHUudW5zdWJzY3JpYmUoKSk7XHJcbiAgICBjb25zdCByb3V0ZVJlc3BvbnNlID0gdGhpcy5kaXJlY3Rpb25zU2VydmljZS5yb3V0ZShcclxuICAgICAgcm91bmRlZENvb3JkaW5hdGVzLFxyXG4gICAgICBpc092ZXJ2aWV3ID8gb3ZlcnZpZXdEaXJlY3Rpb25zT3B0aW9ucyA6IHVuZGVmaW5lZFxyXG4gICAgKTtcclxuICAgIGlmIChyb3V0ZVJlc3BvbnNlKSB7XHJcbiAgICAgIHJvdXRlUmVzcG9uc2UubWFwKChyZXMpID0+XHJcbiAgICAgICAgdGhpcy5yb3V0ZXNRdWVyaWVzJCQucHVzaChcclxuICAgICAgICAgIHJlcy5zdWJzY3JpYmUoKGRpcmVjdGlvbnMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuZGVsZXRlTWFueSh0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5hbGwoKSk7XHJcbiAgICAgICAgICAgIGRpcmVjdGlvbnMubWFwKChkaXJlY3Rpb24pID0+XHJcbiAgICAgICAgICAgICAgYWRkRGlyZWN0aW9uVG9Sb3V0ZXNGZWF0dXJlU3RvcmUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbixcclxuICAgICAgICAgICAgICAgIHRoaXMucHJvamVjdGlvbixcclxuICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9PT0gZGlyZWN0aW9uc1swXSA/IHRydWUgOiBmYWxzZVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFkZFN0b3BPdmVybGF5KHN0b3A6IFN0b3ApIHtcclxuICAgIGFkZFN0b3BUb1N0b3BzRmVhdHVyZVN0b3JlKFxyXG4gICAgICBzdG9wLFxyXG4gICAgICB0aGlzLnN0b3BzU3RvcmUsXHJcbiAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUsXHJcbiAgICAgIHRoaXMucHJvamVjdGlvbixcclxuICAgICAgdGhpcy5sYW5ndWFnZVNlcnZpY2VcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBvblRvZ2dsZURpcmVjdGlvbnNDb250cm9sKGlzQWN0aXZlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLnF1ZXJ5U2VydmljZS5xdWVyeUVuYWJsZWQgPSAhaXNBY3RpdmU7XHJcbiAgICBjb25zdCBvbCA9IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbDtcclxuICAgIHRoaXMuaW50ZXJhY3Rpb25zLm1hcCgoaW50ZXJhY3Rpb24pID0+XHJcbiAgICAgIGlzQWN0aXZlXHJcbiAgICAgICAgPyBvbC5hZGRJbnRlcmFjdGlvbihpbnRlcmFjdGlvbilcclxuICAgICAgICA6IG9sLnJlbW92ZUludGVyYWN0aW9uKGludGVyYWN0aW9uKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImRpcmVjdGlvbnMtb3B0aW9uc1wiPlxyXG4gIDxtYXQtc2xpZGUtdG9nZ2xlXHJcbiAgICBbY2hlY2tlZF09XCJkaXJlY3Rpb25Db250cm9sSXNBY3RpdmVcIlxyXG4gICAgW2xhYmVsUG9zaXRpb25dPVwiJ2JlZm9yZSdcIlxyXG4gICAgKGNoYW5nZSk9XCJvblRvZ2dsZURpcmVjdGlvbnNDb250cm9sKCRldmVudC5jaGVja2VkKVwiXHJcbiAgPlxyXG4gICAge3sgJ2lnby5nZW8uZGlyZWN0aW9uc0Zvcm0udG9nZ2xlQWN0aXZlJyB8IHRyYW5zbGF0ZSB9fVxyXG4gIDwvbWF0LXNsaWRlLXRvZ2dsZT5cclxuPC9kaXY+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtYnV0dG9uc1xyXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxyXG4gIFtjb250ZXh0VXJpXT1cImNvbnRleHRVcmlcIlxyXG4gIFt6b29tVG9BY3RpdmVSb3V0ZSRdPVwiem9vbVRvQWN0aXZlUm91dGUkXCJcclxuICBbcm91dGVzRmVhdHVyZVN0b3JlXT1cInJvdXRlc0ZlYXR1cmVTdG9yZVwiXHJcbiAgW3N0b3BzU3RvcmVdPVwic3RvcHNTdG9yZVwiXHJcbj48L2lnby1kaXJlY3Rpb25zLWJ1dHRvbnM+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtaW5wdXRzXHJcbiAgKHN0b3BJbnB1dEhhc0ZvY3VzKT1cIm9uU3RvcElucHV0SGFzRm9jdXNDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW2Nvb3JkUm91bmRlZERlY2ltYWxzXT1cImNvb3JkUm91bmRlZERlY2ltYWxzXCJcclxuICBbcHJvamVjdGlvbl09XCJwcm9qZWN0aW9uXCJcclxuICBbc3RvcHNGZWF0dXJlU3RvcmVdPVwic3RvcHNGZWF0dXJlU3RvcmVcIlxyXG4gIFtzdG9wc1N0b3JlXT1cInN0b3BzU3RvcmVcIlxyXG4gIFtkZWJvdW5jZV09XCJkZWJvdW5jZVwiXHJcbiAgW2xlbmd0aF09XCJsZW5ndGhcIlxyXG4+PC9pZ28tZGlyZWN0aW9ucy1pbnB1dHM+XHJcblxyXG48aWdvLWRpcmVjdGlvbnMtcmVzdWx0c1xyXG4gIFtzdGVwRmVhdHVyZVN0b3JlXT1cInN0ZXBGZWF0dXJlU3RvcmVcIlxyXG4gIFtyb3V0ZXNGZWF0dXJlU3RvcmVdPVwicm91dGVzRmVhdHVyZVN0b3JlXCJcclxuPjwvaWdvLWRpcmVjdGlvbnMtcmVzdWx0cz5cclxuIl19
|
|
360
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9kaXJlY3Rpb25zL2RpcmVjdGlvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBR3ZELE9BQU8sS0FBSyxXQUFXLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxLQUFLLGFBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCxPQUFPLEtBQUssTUFBTSxNQUFNLFNBQVMsQ0FBQztBQUVsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd6RSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FB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QiwwQkFBMEIsc0hBQzFCLGVBQWU7OzJGQUdOLG1CQUFtQjtrQkFiL0IsU0FBUzsrQkFDRSxnQkFBZ0IsY0FHZCxJQUFJLFdBQ1A7d0JBQ1Asb0JBQW9CO3dCQUNwQiwwQkFBMEI7d0JBQzFCLHlCQUF5Qjt3QkFDekIsMEJBQTBCO3dCQUMxQixlQUFlO3FCQUNoQjsyTUFzQlEsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBJbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdFNsaWRlVG9nZ2xlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlJztcclxuXHJcbmltcG9ydCB7IEVudGl0eVN0b3JlV2F0Y2hlciB9IGZyb20gJ0BpZ28yL2NvbW1vbic7XHJcbmltcG9ydCB7IExhbmd1YWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvbGFuZ3VhZ2UnO1xyXG5pbXBvcnQgeyBDaGFuZ2VVdGlscywgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgQ29sbGVjdGlvbiBmcm9tICdvbC9Db2xsZWN0aW9uJztcclxuaW1wb3J0ICogYXMgb2xDb25kaXRpb24gZnJvbSAnb2wvZXZlbnRzL2NvbmRpdGlvbic7XHJcbmltcG9ydCAqIGFzIG9sSW50ZXJhY3Rpb24gZnJvbSAnb2wvaW50ZXJhY3Rpb24nO1xyXG5pbXBvcnQgeyBTZWxlY3RFdmVudCB9IGZyb20gJ29sL2ludGVyYWN0aW9uL1NlbGVjdCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUV2ZW50IH0gZnJvbSAnb2wvaW50ZXJhY3Rpb24vVHJhbnNsYXRlJztcclxuaW1wb3J0ICogYXMgb2xQcm9qIGZyb20gJ29sL3Byb2onO1xyXG5cclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBGZWF0dXJlIH0gZnJvbSAnLi4vZmVhdHVyZS9zaGFyZWQvZmVhdHVyZS5pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5IH0gZnJvbSAnLi4vZmVhdHVyZS9zaGFyZWQvc3RyYXRlZ2llcy9sb2FkaW5nJztcclxuaW1wb3J0IHsgcm91bmRDb29yZFRvLCBzdHJpbmdUb0xvbkxhdCB9IGZyb20gJy4uL21hcCc7XHJcbmltcG9ydCB7IFF1ZXJ5U2VydmljZSB9IGZyb20gJy4uL3F1ZXJ5L3NoYXJlZC9xdWVyeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVzZWFyY2gsIFNlYXJjaFJlc3VsdCB9IGZyb20gJy4uL3NlYXJjaC9zaGFyZWQvc2VhcmNoLmludGVyZmFjZXMnO1xyXG5pbXBvcnQgeyBTZWFyY2hTZXJ2aWNlIH0gZnJvbSAnLi4vc2VhcmNoL3NoYXJlZC9zZWFyY2guc2VydmljZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNCdXR0b25zQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLWJ1dHRvbnMvZGlyZWN0aW9ucy1idXR0b25zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuL2RpcmVjdGlvbnMtaW5wdXRzL2RpcmVjdGlvbnMtaW5wdXRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNSZXN1bHRzQ29tcG9uZW50IH0gZnJvbSAnLi9kaXJlY3Rpb25zLXJlc3VsdHMvZGlyZWN0aW9ucy1yZXN1bHRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpcmVjdGlvblR5cGUsIFByb3Bvc2FsVHlwZSB9IGZyb20gJy4vc2hhcmVkL2RpcmVjdGlvbnMuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgRGlyZWN0aW9uT3B0aW9ucyxcclxuICBGZWF0dXJlV2l0aFN0b3BQcm9wZXJ0aWVzLFxyXG4gIFN0b3BcclxufSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZSxcclxuICBhZGRTdG9wVG9TdG9wc0ZlYXR1cmVTdG9yZSxcclxuICBhZGRTdG9wVG9TdG9yZSxcclxuICBpbml0Um91dGVzRmVhdHVyZVN0b3JlLFxyXG4gIGluaXRTdGVwRmVhdHVyZVN0b3JlLFxyXG4gIGluaXRTdG9wc0ZlYXR1cmVTdG9yZSxcclxuICB1cGRhdGVTdG9yZVNvcnRpbmdcclxufSBmcm9tICcuL3NoYXJlZC9kaXJlY3Rpb25zLnV0aWxzJztcclxuaW1wb3J0IHtcclxuICBSb3V0ZXNGZWF0dXJlU3RvcmUsXHJcbiAgU3RlcEZlYXR1cmVTdG9yZSxcclxuICBTdG9wc0ZlYXR1cmVTdG9yZSxcclxuICBTdG9wc1N0b3JlXHJcbn0gZnJvbSAnLi9zaGFyZWQvc3RvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdpZ28tZGlyZWN0aW9ucycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpcmVjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RpcmVjdGlvbnMuY29tcG9uZW50LnNjc3MnXSxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxyXG4gICAgRGlyZWN0aW9uc0J1dHRvbnNDb21wb25lbnQsXHJcbiAgICBEaXJlY3Rpb25zSW5wdXRzQ29tcG9uZW50LFxyXG4gICAgRGlyZWN0aW9uc1Jlc3VsdHNDb21wb25lbnQsXHJcbiAgICBUcmFuc2xhdGVNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgd2F0Y2hlcjogRW50aXR5U3RvcmVXYXRjaGVyPFN0b3A+O1xyXG5cclxuICBwdWJsaWMgcHJvamVjdGlvbjogc3RyaW5nID0gJ0VQU0c6NDMyNic7XHJcblxyXG4gIHByaXZhdGUgem9vbVJvdXRlJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHN0b3JlRW1wdHkkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgc3RvcmVDaGFuZ2UkJDogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcm91dGVzUXVlcmllcyQkOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHNlbGVjdFN0b3BJbnRlcmFjdGlvbjogb2xJbnRlcmFjdGlvbi5TZWxlY3Q7XHJcbiAgcHJpdmF0ZSB0cmFuc2xhdGVTdG9wOiBvbEludGVyYWN0aW9uLlRyYW5zbGF0ZTtcclxuICBwcml2YXRlIHNlbGVjdGVkUm91dGU6IG9sSW50ZXJhY3Rpb24uU2VsZWN0O1xyXG4gIHByaXZhdGUgZm9jdXNPblN0b3A6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwcml2YXRlIGlzVHJhbnNsYXRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIHByZXZpb3VzU3RvcHM6IFN0b3BbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIHNlYXJjaHMkJDogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgQElucHV0KCkgY29udGV4dFVyaTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHN0b3BzU3RvcmU6IFN0b3BzU3RvcmU7XHJcbiAgQElucHV0KCkgc3RvcHNGZWF0dXJlU3RvcmU6IFN0b3BzRmVhdHVyZVN0b3JlO1xyXG4gIEBJbnB1dCgpIHJvdXRlc0ZlYXR1cmVTdG9yZTogUm91dGVzRmVhdHVyZVN0b3JlO1xyXG4gIEBJbnB1dCgpIHN0ZXBGZWF0dXJlU3RvcmU6IFN0ZXBGZWF0dXJlU3RvcmU7XHJcbiAgQElucHV0KCkgZGVib3VuY2U6IG51bWJlciA9IDIwMDtcclxuICBASW5wdXQoKSBsZW5ndGg6IG51bWJlciA9IDI7XHJcbiAgQElucHV0KCkgY29vcmRSb3VuZGVkRGVjaW1hbHM6IG51bWJlciA9IDY7XHJcbiAgQElucHV0KCkgem9vbVRvQWN0aXZlUm91dGUkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hldGVyIG9uZSBvZiB0aGUgZGlyZWN0aW9uIGNvbnRyb2wgaXMgYWN0aXZlXHJcbiAgICogQGludGVybmFsXHJcbiAgICovXHJcbiAgZ2V0IGRpcmVjdGlvbkNvbnRyb2xJc0FjdGl2ZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGludGVyYWN0aW9ucygpOiBvbEludGVyYWN0aW9uLkludGVyYWN0aW9uW10ge1xyXG4gICAgcmV0dXJuIFt0aGlzLnNlbGVjdFN0b3BJbnRlcmFjdGlvbiwgdGhpcy50cmFuc2xhdGVTdG9wLCB0aGlzLnNlbGVjdGVkUm91dGVdO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRpcmVjdGlvbnNTZXJ2aWNlOiBEaXJlY3Rpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogU2VhcmNoU2VydmljZSxcclxuICAgIHByaXZhdGUgcXVlcnlTZXJ2aWNlOiBRdWVyeVNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5xdWVyeVNlcnZpY2UucXVlcnlFbmFibGVkID0gZmFsc2U7XHJcbiAgICB0aGlzLmluaXRFbnRpdHlTdG9yZXMoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpbml0U3RvcHNGZWF0dXJlU3RvcmUodGhpcy5zdG9wc0ZlYXR1cmVTdG9yZSwgdGhpcy5sYW5ndWFnZVNlcnZpY2UpO1xyXG4gICAgICBpbml0Um91dGVzRmVhdHVyZVN0b3JlKHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLCB0aGlzLmxhbmd1YWdlU2VydmljZSk7XHJcbiAgICAgIGluaXRTdGVwRmVhdHVyZVN0b3JlKHRoaXMuc3RlcEZlYXR1cmVTdG9yZSk7XHJcbiAgICAgIHRoaXMuaW5pdE9sSW50ZXJhY3Rpb24oKTtcclxuICAgIH0sIDEpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnF1ZXJ5U2VydmljZS5xdWVyeUVuYWJsZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zdG9yZUVtcHR5JCQudW5zdWJzY3JpYmUoKTtcclxuICAgIHRoaXMuc3RvcmVDaGFuZ2UkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5yb3V0ZXNRdWVyaWVzJCQubWFwKCh1KSA9PiB1LnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgdGhpcy56b29tUm91dGUkJC51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5mcmVlemVTdG9yZXMoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZnJlZXplU3RvcmVzKCkge1xyXG4gICAgdGhpcy5pbnRlcmFjdGlvbnMubWFwKChpbnRlcmFjdGlvbikgPT5cclxuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKGludGVyYWN0aW9uKVxyXG4gICAgKTtcclxuICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUuZGVhY3RpdmF0ZVN0cmF0ZWd5T2ZUeXBlKFxyXG4gICAgICBGZWF0dXJlU3RvcmVMb2FkaW5nU3RyYXRlZ3lcclxuICAgICk7XHJcbiAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5kZWFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUoXHJcbiAgICAgIEZlYXR1cmVTdG9yZUxvYWRpbmdTdHJhdGVneVxyXG4gICAgKTtcclxuICAgIHRoaXMuc3RlcEZlYXR1cmVTdG9yZS5kZWFjdGl2YXRlU3RyYXRlZ3lPZlR5cGUoRmVhdHVyZVN0b3JlTG9hZGluZ1N0cmF0ZWd5KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW5pdEVudGl0eVN0b3JlcygpIHtcclxuICAgIHRoaXMud2F0Y2hlciA9IG5ldyBFbnRpdHlTdG9yZVdhdGNoZXIodGhpcy5zdG9wc1N0b3JlLCB0aGlzLmNkUmVmKTtcclxuICAgIHRoaXMubW9uaXRvckVtcHR5RW50aXR5U3RvcmUoKTtcclxuICAgIHRoaXMubW9uaXRvckVudGl0eVN0b3JlQ2hhbmdlKCk7XHJcbiAgICB0aGlzLm1vbml0b3JBY3RpdmVSb3V0ZVpvb20oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW9uaXRvckFjdGl2ZVJvdXRlWm9vbSgpIHtcclxuICAgIHRoaXMuem9vbVJvdXRlJCQgPSB0aGlzLnpvb21Ub0FjdGl2ZVJvdXRlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUuY291bnQgPj0gMSkge1xyXG4gICAgICAgIGNvbnN0IGFjdGl2ZVJvdXRlID0gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmVcclxuICAgICAgICAgIC5hbGwoKVxyXG4gICAgICAgICAgLmZpbmQoKHJvdXRlKSA9PiByb3V0ZS5wcm9wZXJ0aWVzLmFjdGl2ZSk7XHJcblxyXG4gICAgICAgIGlmIChhY3RpdmVSb3V0ZSkge1xyXG4gICAgICAgICAgYWN0aXZlUm91dGUub2wuZ2V0R2VvbWV0cnkoKTtcclxuICAgICAgICAgIGNvbnN0IHJvdXRlRXh0ZW50ID0gYWN0aXZlUm91dGUub2wuZ2V0R2VvbWV0cnkoKS5nZXRFeHRlbnQoKTtcclxuICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC52aWV3Q29udHJvbGxlci56b29tVG9FeHRlbnQoXHJcbiAgICAgICAgICAgIHJvdXRlRXh0ZW50IGFzIFtudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXJdXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXRPbEludGVyYWN0aW9uKCkge1xyXG4gICAgdGhpcy5zZWxlY3RTdG9wSW50ZXJhY3Rpb24gPSBuZXcgb2xJbnRlcmFjdGlvbi5TZWxlY3Qoe1xyXG4gICAgICBsYXllcnM6IFt0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm9sXSxcclxuICAgICAgaGl0VG9sZXJhbmNlOiA3LFxyXG4gICAgICBjb25kaXRpb246IChldmVudCkgPT4ge1xyXG4gICAgICAgIHJldHVybiBldmVudC50eXBlID09PSAncG9pbnRlcm1vdmUnICYmICFldmVudC5kcmFnZ2luZztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGVTdG9wID0gbmV3IG9sSW50ZXJhY3Rpb24uVHJhbnNsYXRlKHtcclxuICAgICAgZmVhdHVyZXM6IHRoaXMuc2VsZWN0U3RvcEludGVyYWN0aW9uLmdldEZlYXR1cmVzKClcclxuICAgIH0pO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTdG9wLm9uKCd0cmFuc2xhdGluZycsIChldnQ6IFRyYW5zbGF0ZUV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNUcmFuc2xhdGluZyA9IHRydWU7XHJcbiAgICAgIHRoaXMuZXhlY3V0ZVN0b3BUcmFuc2xhdGlvbihldnQuZmVhdHVyZXMpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnRyYW5zbGF0ZVN0b3Aub24oJ3RyYW5zbGF0ZWVuZCcsIChldnQ6IFRyYW5zbGF0ZUV2ZW50KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNUcmFuc2xhdGluZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmV4ZWN1dGVTdG9wVHJhbnNsYXRpb24oZXZ0LmZlYXR1cmVzKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRSb3V0ZSA9IG5ldyBvbEludGVyYWN0aW9uLlNlbGVjdCh7XHJcbiAgICAgIGxheWVyczogW3RoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm9sXSxcclxuICAgICAgY29uZGl0aW9uOiBvbENvbmRpdGlvbi5jbGljayxcclxuICAgICAgaGl0VG9sZXJhbmNlOiA3LFxyXG4gICAgICBmaWx0ZXI6IChmZWF0dXJlKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIChcclxuICAgICAgICAgIGZlYXR1cmUuZ2V0KCd0eXBlJykgPT09IERpcmVjdGlvblR5cGUuUm91dGUgJiZcclxuICAgICAgICAgIGZlYXR1cmUuZ2V0KCdhY3RpdmUnKSAmJlxyXG4gICAgICAgICAgIXRoaXMuaXNUcmFuc2xhdGluZ1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvdXRlLm9uKCdzZWxlY3QnLCAoZXZ0OiBTZWxlY3RFdmVudCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5mb2N1c09uU3RvcCA9PT0gZmFsc2UpIHtcclxuICAgICAgICBjb25zdCBzZWxlY3RDb29yZGluYXRlcyA9IHJvdW5kQ29vcmRUbyhcclxuICAgICAgICAgIG9sUHJvai50cmFuc2Zvcm0oXHJcbiAgICAgICAgICAgIChldnQgYXMgYW55KS5tYXBCcm93c2VyRXZlbnQuY29vcmRpbmF0ZSxcclxuICAgICAgICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb24sXHJcbiAgICAgICAgICAgIHRoaXMucHJvamVjdGlvblxyXG4gICAgICAgICAgKSBhcyBbbnVtYmVyLCBudW1iZXJdLFxyXG4gICAgICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgYWRkZWRTdG9wID0gYWRkU3RvcFRvU3RvcmUodGhpcy5zdG9wc1N0b3JlKTtcclxuICAgICAgICBhZGRlZFN0b3AudGV4dCA9IHNlbGVjdENvb3JkaW5hdGVzLmpvaW4oJywnKTtcclxuICAgICAgICBhZGRlZFN0b3AuY29vcmRpbmF0ZXMgPSBbc2VsZWN0Q29vcmRpbmF0ZXNbMF0sIHNlbGVjdENvb3JkaW5hdGVzWzFdXTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5pbnRlcmFjdGlvbnMubWFwKChpbnRlcmFjdGlvbikgPT5cclxuICAgICAgdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLmFkZEludGVyYWN0aW9uKGludGVyYWN0aW9uKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uU3RvcElucHV0SGFzRm9jdXNDaGFuZ2Uoc3RvcElucHV0SGFzRm9jdXM6IGJvb2xlYW4pIHtcclxuICAgIHN0b3BJbnB1dEhhc0ZvY3VzXHJcbiAgICAgID8gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sLnJlbW92ZUludGVyYWN0aW9uKFxyXG4gICAgICAgICAgdGhpcy5zZWxlY3RlZFJvdXRlXHJcbiAgICAgICAgKVxyXG4gICAgICA6IHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5vbC5hZGRJbnRlcmFjdGlvbih0aGlzLnNlbGVjdGVkUm91dGUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleGVjdXRlU3RvcFRyYW5zbGF0aW9uKGZlYXR1cmVzOiBDb2xsZWN0aW9uPGFueT4pIHtcclxuICAgIGlmIChmZWF0dXJlcy5nZXRMZW5ndGgoKSA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCBmaXJzdEZlYXR1cmUgPSBmZWF0dXJlcy5nZXRBcnJheSgpWzBdO1xyXG4gICAgY29uc3QgdHJhbnNsYXRlZFN0b3BJZCA9IGZpcnN0RmVhdHVyZS5nZXRJZCgpO1xyXG5cclxuICAgIGNvbnN0IHRyYW5zbGF0aW9uQ29vcmRpbmF0ZXMgPSBvbFByb2oudHJhbnNmb3JtKFxyXG4gICAgICBmaXJzdEZlYXR1cmUuZ2V0R2VvbWV0cnkoKS5nZXRDb29yZGluYXRlcygpLFxyXG4gICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmxheWVyLm1hcC5wcm9qZWN0aW9uLFxyXG4gICAgICB0aGlzLnByb2plY3Rpb25cclxuICAgICk7XHJcbiAgICBjb25zdCB0cmFuc2xhdGVkU3RvcCA9IHRoaXMuc3RvcHNTdG9yZS5nZXQodHJhbnNsYXRlZFN0b3BJZCk7XHJcbiAgICBjb25zdCByb3VuZGVkQ29vcmQgPSByb3VuZENvb3JkVG8oXHJcbiAgICAgIHRyYW5zbGF0aW9uQ29vcmRpbmF0ZXMgYXMgW251bWJlciwgbnVtYmVyXSxcclxuICAgICAgdGhpcy5jb29yZFJvdW5kZWREZWNpbWFsc1xyXG4gICAgKTtcclxuICAgIHRyYW5zbGF0ZWRTdG9wLmNvb3JkaW5hdGVzID0gcm91bmRlZENvb3JkO1xyXG4gICAgdHJhbnNsYXRlZFN0b3AudGV4dCA9IHJvdW5kZWRDb29yZC5qb2luKCcsJyk7XHJcbiAgICB0aGlzLnN0b3BzU3RvcmUudXBkYXRlKHRyYW5zbGF0ZWRTdG9wKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbW9uaXRvckVtcHR5RW50aXR5U3RvcmUoKSB7XHJcbiAgICAvLyBXYXRjaCBpZiB0aGUgc3RvcmUgaXMgZW1wdHkgdG8gcmVzZXQgaXRcclxuICAgIHRoaXMuc3RvcmVFbXB0eSQkID0gdGhpcy5zdG9wc1N0b3JlLmNvdW50JFxyXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAuc3Vic2NyaWJlKChjb3VudCkgPT4ge1xyXG4gICAgICAgIGlmIChjb3VudCA8IDIpIHtcclxuICAgICAgICAgIGFkZFN0b3BUb1N0b3JlKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICAgICAgICBpZiAodGhpcy5zdG9wc1N0b3JlLmNvdW50ID09PSAyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RvcHNTdG9yZS5zdG9yZUluaXRpYWxpemVkJC5uZXh0KHRydWUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnN0b3BzU3RvcmUuc3RvcmVJbml0aWFsaXplZCQubmV4dChmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1vbml0b3JFbnRpdHlTdG9yZUNoYW5nZSgpIHtcclxuICAgIHRoaXMuc3RvcmVDaGFuZ2UkJCA9IHRoaXMuc3RvcHNTdG9yZS5lbnRpdGllcyRcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2UpKVxyXG4gICAgICAuc3Vic2NyaWJlKChzdG9wczogU3RvcFtdKSA9PiB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTdG9wRGlmZihzdG9wcyk7XHJcbiAgICAgICAgdXBkYXRlU3RvcmVTb3J0aW5nKHRoaXMuc3RvcHNTdG9yZSk7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVTdG9wc0ZlYXR1cmUoKTtcclxuICAgICAgICB0aGlzLmdldFJvdXRlcyh0aGlzLmlzVHJhbnNsYXRpbmcpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGNhbmNlbFNlYXJjaCgpIHtcclxuICAgIHRoaXMuc2VhcmNocyQkLm1hcCgocykgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU3RvcERpZmYoc3RvcHM6IFN0b3BbXSkge1xyXG4gICAgY29uc3Qgc2ltcGxpZmllZFN0b3BzID0gc3RvcHMubWFwKChzdG9wOiBTdG9wKSA9PiB7XHJcbiAgICAgIHJldHVybiBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICAgIC4uLnsgaWQ6IHN0b3AuaWQsIHRleHQ6IHN0b3AudGV4dCwgY29vcmRpbmF0ZXM6IHN0b3AuY29vcmRpbmF0ZXMgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgZGlmZiA9IENoYW5nZVV0aWxzLmZpbmRDaGFuZ2VzKHRoaXMucHJldmlvdXNTdG9wcywgc2ltcGxpZmllZFN0b3BzLCBbXHJcbiAgICAgICdjb29yZGluYXRlcydcclxuICAgIF0pO1xyXG4gICAgY29uc3Qgc3RvcElkVG9Qcm9jZXNzID0gZGlmZi5hZGRlZC5jb25jYXQoZGlmZi5tb2RpZmllZCk7XHJcbiAgICBpZiAoc3RvcElkVG9Qcm9jZXNzKSB7XHJcbiAgICAgIHN0b3BJZFRvUHJvY2Vzcy5tYXAoKGNoYW5nZSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZWRTdG9wID0gY2hhbmdlLm5ld1ZhbHVlIGFzIFN0b3A7XHJcbiAgICAgICAgaWYgKGNoYW5nZWRTdG9wKSB7XHJcbiAgICAgICAgICBjb25zdCBzdG9wOiBTdG9wID0gdGhpcy5zdG9wc1N0b3JlLmdldChjaGFuZ2VkU3RvcC5pZCk7XHJcbiAgICAgICAgICBjb25zdCB0ZXJtID0gc3RvcC50ZXh0O1xyXG4gICAgICAgICAgaWYgKCF0ZXJtIHx8IHRlcm0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gc3RyaW5nVG9Mb25MYXQoXHJcbiAgICAgICAgICAgIHRlcm0sXHJcbiAgICAgICAgICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLnByb2plY3Rpb25cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBsZXQgcmVzZWFyY2hlczogUmVzZWFyY2hbXTtcclxuICAgICAgICAgIGxldCBpc0Nvb3JkID0gZmFsc2U7XHJcbiAgICAgICAgICBpZiAocmVzcG9uc2UubG9uTGF0KSB7XHJcbiAgICAgICAgICAgIGlzQ29vcmQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzZWFyY2hlcyA9IHRoaXMuc2VhcmNoU2VydmljZS5zZWFyY2godGVybSwge1xyXG4gICAgICAgICAgICBzZWFyY2hUeXBlOiAnRmVhdHVyZSdcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgdGhpcy5jYW5jZWxTZWFyY2goKTtcclxuICAgICAgICAgIGNvbnN0IHJlcXVlc3RzJCA9IHJlc2VhcmNoZXMubWFwKChyZXMpID0+XHJcbiAgICAgICAgICAgIHJlcy5yZXF1ZXN0LnBpcGUoXHJcbiAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSkgPT5cclxuICAgICAgICAgICAgICAgIHJlc3VsdHMuZmlsdGVyKChyKSA9PlxyXG4gICAgICAgICAgICAgICAgICBpc0Nvb3JkXHJcbiAgICAgICAgICAgICAgICAgICAgPyByLmRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50JyAmJiByLmRhdGEuZ2VvbWV0cnlcclxuICAgICAgICAgICAgICAgICAgICA6IHIuZGF0YS5nZW9tZXRyeVxyXG4gICAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHRoaXMuc2VhcmNocyQkID0gcmVxdWVzdHMkLm1hcCgocmVxdWVzdCkgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gcmVxdWVzdFxyXG4gICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgbWFwKChyZXN1bHRzOiBTZWFyY2hSZXN1bHRbXSkgPT5cclxuICAgICAgICAgICAgICAgICAgcmVzdWx0cy5maWx0ZXIoKHIpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgaXNDb29yZFxyXG4gICAgICAgICAgICAgICAgICAgICAgPyByLmRhdGEuZ2VvbWV0cnkudHlwZSA9PT0gJ1BvaW50JyAmJiByLmRhdGEuZ2VvbWV0cnlcclxuICAgICAgICAgICAgICAgICAgICAgIDogci5kYXRhLmdlb21ldHJ5XHJcbiAgICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzOiBTZWFyY2hSZXN1bHRbXSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKHJlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNvdXJjZSA9IHJlc1swXS5zb3VyY2U7XHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IG1ldGEgPSByZXNbMF0ubWV0YTtcclxuICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0cyA9IHJlcy5tYXAoKHIpID0+IHIuZGF0YSk7XHJcbiAgICAgICAgICAgICAgICAgIGlmICghc3RvcC5zZWFyY2hQcm9wb3NhbHMpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdG9wLnNlYXJjaFByb3Bvc2FscyA9IFtdO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIHN0b3Auc2VhcmNoUHJvcG9zYWxzID0gc3RvcC5zZWFyY2hQcm9wb3NhbHMuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIChzcCkgPT5cclxuICAgICAgICAgICAgICAgICAgICAgIHNwLnR5cGUgPT09XHJcbiAgICAgICAgICAgICAgICAgICAgICAoaXNDb29yZCA/IFByb3Bvc2FsVHlwZS5Db29yZCA6IFByb3Bvc2FsVHlwZS5UZXh0KVxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICBsZXQgc3RvcmVkU291cmNlID0gc3RvcC5zZWFyY2hQcm9wb3NhbHMuZmluZChcclxuICAgICAgICAgICAgICAgICAgICAoc3ApID0+IHNwLnNvdXJjZSA9PT0gc291cmNlXHJcbiAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICAgIGlmIChzdG9yZWRTb3VyY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICBzdG9yZWRTb3VyY2UucmVzdWx0cyA9IHJlc3VsdHM7XHJcbiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RvcC5zZWFyY2hQcm9wb3NhbHMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpc0Nvb3JkID8gUHJvcG9zYWxUeXBlLkNvb3JkIDogUHJvcG9zYWxUeXBlLlRleHQsXHJcbiAgICAgICAgICAgICAgICAgICAgICBzb3VyY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICBtZXRhLFxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVzdWx0c1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnByZXZpb3VzU3RvcHMgPSBzaW1wbGlmaWVkU3RvcHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVN0b3BzRmVhdHVyZSgpIHtcclxuICAgIGNvbnN0IHN0b3BzID0gdGhpcy5zdG9wc1N0b3JlLmFsbCgpO1xyXG4gICAgY29uc3Qgc3RvcHNXaXRoQ29vcmRpbmF0ZXMgPSBzdG9wcy5maWx0ZXIoKHN0b3ApID0+IHN0b3AuY29vcmRpbmF0ZXMpO1xyXG4gICAgc3RvcHNXaXRoQ29vcmRpbmF0ZXMubWFwKChzdG9wKSA9PiB0aGlzLmFkZFN0b3BPdmVybGF5KHN0b3ApKTtcclxuICAgIHRoaXMuc3RvcHNGZWF0dXJlU3RvcmVcclxuICAgICAgLmFsbCgpXHJcbiAgICAgIC5tYXAoKHN0b3BGZWF0dXJlOiBGZWF0dXJlPEZlYXR1cmVXaXRoU3RvcFByb3BlcnRpZXM+KSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnN0b3BzU3RvcmUuZ2V0KHN0b3BGZWF0dXJlLnByb3BlcnRpZXMuaWQpKSB7XHJcbiAgICAgICAgICB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmRlbGV0ZShzdG9wRmVhdHVyZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIGNvbnN0IHN0b3BzV2l0aG91dENvb3JkaW5hdGVzID0gc3RvcHMuZmlsdGVyKChzdG9wKSA9PiAhc3RvcC5jb29yZGluYXRlcyk7XHJcbiAgICBzdG9wc1dpdGhvdXRDb29yZGluYXRlcy5tYXAoKHN0b3ApID0+IHtcclxuICAgICAgY29uc3Qgc3RvcEZlYXR1cmUgPSB0aGlzLnN0b3BzRmVhdHVyZVN0b3JlLmdldChzdG9wLmlkKTtcclxuICAgICAgaWYgKHN0b3BGZWF0dXJlKSB7XHJcbiAgICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZS5kZWxldGUoc3RvcEZlYXR1cmUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Um91dGVzKGlzT3ZlcnZpZXc6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3Qgc3RvcHNXaXRoQ29vcmRpbmF0ZXMgPSB0aGlzLnN0b3BzU3RvcmUudmlld1xyXG4gICAgICAuYWxsKClcclxuICAgICAgLmZpbHRlcigoc3RvcCkgPT4gc3RvcC5jb29yZGluYXRlcyk7XHJcbiAgICBpZiAoc3RvcHNXaXRoQ29vcmRpbmF0ZXMubGVuZ3RoIDwgMikge1xyXG4gICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5kZWxldGVNYW55KHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmFsbCgpKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHJvdW5kZWRDb29yZGluYXRlcyA9IHN0b3BzV2l0aENvb3JkaW5hdGVzLm1hcCgoc3RvcCkgPT4ge1xyXG4gICAgICBjb25zdCByb3VuZGVkQ29vcmQgPSByb3VuZENvb3JkVG8oXHJcbiAgICAgICAgc3RvcC5jb29yZGluYXRlcyxcclxuICAgICAgICB0aGlzLmNvb3JkUm91bmRlZERlY2ltYWxzXHJcbiAgICAgICk7XHJcbiAgICAgIHJldHVybiByb3VuZGVkQ29vcmQ7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IG92ZXJ2aWV3RGlyZWN0aW9uc09wdGlvbnM6IERpcmVjdGlvbk9wdGlvbnMgPSB7XHJcbiAgICAgIG92ZXJ2aWV3OiB0cnVlLFxyXG4gICAgICBzdGVwczogZmFsc2UsXHJcbiAgICAgIGFsdGVybmF0aXZlczogZmFsc2UsXHJcbiAgICAgIGNvbnRpbnVlX3N0cmFpZ2h0OiBmYWxzZVxyXG4gICAgfTtcclxuICAgIHRoaXMucm91dGVzUXVlcmllcyQkLm1hcCgodSkgPT4gdS51bnN1YnNjcmliZSgpKTtcclxuICAgIGNvbnN0IHJvdXRlUmVzcG9uc2UgPSB0aGlzLmRpcmVjdGlvbnNTZXJ2aWNlLnJvdXRlKFxyXG4gICAgICByb3VuZGVkQ29vcmRpbmF0ZXMsXHJcbiAgICAgIGlzT3ZlcnZpZXcgPyBvdmVydmlld0RpcmVjdGlvbnNPcHRpb25zIDogdW5kZWZpbmVkXHJcbiAgICApO1xyXG4gICAgaWYgKHJvdXRlUmVzcG9uc2UpIHtcclxuICAgICAgcm91dGVSZXNwb25zZS5tYXAoKHJlcykgPT5cclxuICAgICAgICB0aGlzLnJvdXRlc1F1ZXJpZXMkJC5wdXNoKFxyXG4gICAgICAgICAgcmVzLnN1YnNjcmliZSgoZGlyZWN0aW9ucykgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJvdXRlc0ZlYXR1cmVTdG9yZS5kZWxldGVNYW55KHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLmFsbCgpKTtcclxuICAgICAgICAgICAgZGlyZWN0aW9ucy5tYXAoKGRpcmVjdGlvbikgPT5cclxuICAgICAgICAgICAgICBhZGREaXJlY3Rpb25Ub1JvdXRlc0ZlYXR1cmVTdG9yZShcclxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVzRmVhdHVyZVN0b3JlLFxyXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5wcm9qZWN0aW9uLFxyXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uID09PSBkaXJlY3Rpb25zWzBdID8gdHJ1ZSA6IGZhbHNlXHJcbiAgICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICApXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYWRkU3RvcE92ZXJsYXkoc3RvcDogU3RvcCkge1xyXG4gICAgYWRkU3RvcFRvU3RvcHNGZWF0dXJlU3RvcmUoXHJcbiAgICAgIHN0b3AsXHJcbiAgICAgIHRoaXMuc3RvcHNTdG9yZSxcclxuICAgICAgdGhpcy5zdG9wc0ZlYXR1cmVTdG9yZSxcclxuICAgICAgdGhpcy5wcm9qZWN0aW9uLFxyXG4gICAgICB0aGlzLmxhbmd1YWdlU2VydmljZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9uVG9nZ2xlRGlyZWN0aW9uc0NvbnRyb2woaXNBY3RpdmU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMucXVlcnlTZXJ2aWNlLnF1ZXJ5RW5hYmxlZCA9ICFpc0FjdGl2ZTtcclxuICAgIGNvbnN0IG9sID0gdGhpcy5yb3V0ZXNGZWF0dXJlU3RvcmUubGF5ZXIubWFwLm9sO1xyXG4gICAgdGhpcy5pbnRlcmFjdGlvbnMubWFwKChpbnRlcmFjdGlvbikgPT5cclxuICAgICAgaXNBY3RpdmVcclxuICAgICAgICA/IG9sLmFkZEludGVyYWN0aW9uKGludGVyYWN0aW9uKVxyXG4gICAgICAgIDogb2wucmVtb3ZlSW50ZXJhY3Rpb24oaW50ZXJhY3Rpb24pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZGlyZWN0aW9ucy1vcHRpb25zXCI+XHJcbiAgPG1hdC1zbGlkZS10b2dnbGVcclxuICAgIFtjaGVja2VkXT1cImRpcmVjdGlvbkNvbnRyb2xJc0FjdGl2ZVwiXHJcbiAgICBbbGFiZWxQb3NpdGlvbl09XCInYmVmb3JlJ1wiXHJcbiAgICAoY2hhbmdlKT1cIm9uVG9nZ2xlRGlyZWN0aW9uc0NvbnRyb2woJGV2ZW50LmNoZWNrZWQpXCJcclxuICA+XHJcbiAgICB7eyAnaWdvLmdlby5kaXJlY3Rpb25zRm9ybS50b2dnbGVBY3RpdmUnIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxyXG48L2Rpdj5cclxuXHJcbjxpZ28tZGlyZWN0aW9ucy1idXR0b25zXHJcbiAgW3N0ZXBGZWF0dXJlU3RvcmVdPVwic3RlcEZlYXR1cmVTdG9yZVwiXHJcbiAgW2NvbnRleHRVcmldPVwiY29udGV4dFVyaVwiXHJcbiAgW3pvb21Ub0FjdGl2ZVJvdXRlJF09XCJ6b29tVG9BY3RpdmVSb3V0ZSRcIlxyXG4gIFtyb3V0ZXNGZWF0dXJlU3RvcmVdPVwicm91dGVzRmVhdHVyZVN0b3JlXCJcclxuICBbc3RvcHNTdG9yZV09XCJzdG9wc1N0b3JlXCJcclxuPjwvaWdvLWRpcmVjdGlvbnMtYnV0dG9ucz5cclxuXHJcbjxpZ28tZGlyZWN0aW9ucy1pbnB1dHNcclxuICAoc3RvcElucHV0SGFzRm9jdXMpPVwib25TdG9wSW5wdXRIYXNGb2N1c0NoYW5nZSgkZXZlbnQpXCJcclxuICBbY29vcmRSb3VuZGVkRGVjaW1hbHNdPVwiY29vcmRSb3VuZGVkRGVjaW1hbHNcIlxyXG4gIFtwcm9qZWN0aW9uXT1cInByb2plY3Rpb25cIlxyXG4gIFtzdG9wc0ZlYXR1cmVTdG9yZV09XCJzdG9wc0ZlYXR1cmVTdG9yZVwiXHJcbiAgW3N0b3BzU3RvcmVdPVwic3RvcHNTdG9yZVwiXHJcbiAgW2RlYm91bmNlXT1cImRlYm91bmNlXCJcclxuICBbbGVuZ3RoXT1cImxlbmd0aFwiXHJcbj48L2lnby1kaXJlY3Rpb25zLWlucHV0cz5cclxuXHJcbjxpZ28tZGlyZWN0aW9ucy1yZXN1bHRzXHJcbiAgW3N0ZXBGZWF0dXJlU3RvcmVdPVwic3RlcEZlYXR1cmVTdG9yZVwiXHJcbiAgW3JvdXRlc0ZlYXR1cmVTdG9yZV09XCJyb3V0ZXNGZWF0dXJlU3RvcmVcIlxyXG4+PC9pZ28tZGlyZWN0aW9ucy1yZXN1bHRzPlxyXG4iXX0=
|
|
@@ -16,21 +16,21 @@ export class IgoDirectionsModule {
|
|
|
16
16
|
ngModule: IgoDirectionsModule
|
|
17
17
|
};
|
|
18
18
|
}
|
|
19
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
20
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.
|
|
19
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoDirectionsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
20
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.4", ngImport: i0, type: IgoDirectionsModule, imports: [i1.IgoSearchModule, DirectionsComponent,
|
|
21
21
|
DirectionsInputsComponent,
|
|
22
22
|
DirectionsButtonsComponent,
|
|
23
23
|
DirectionsResultsComponent], exports: [DirectionsComponent,
|
|
24
24
|
DirectionsInputsComponent,
|
|
25
25
|
DirectionsButtonsComponent,
|
|
26
26
|
DirectionsResultsComponent] });
|
|
27
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.
|
|
27
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoDirectionsModule, providers: [provideDirectionsSourceService()], imports: [IgoSearchModule.forRoot(),
|
|
28
28
|
DirectionsComponent,
|
|
29
29
|
DirectionsInputsComponent,
|
|
30
30
|
DirectionsButtonsComponent,
|
|
31
31
|
DirectionsResultsComponent] });
|
|
32
32
|
}
|
|
33
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: IgoDirectionsModule, decorators: [{
|
|
34
34
|
type: NgModule,
|
|
35
35
|
args: [{
|
|
36
36
|
imports: [
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { DOCUMENT } from '@angular/common';
|
|
2
2
|
import { Inject, Injectable } from '@angular/core';
|
|
3
|
-
import { ActivityService
|
|
3
|
+
import { ActivityService } from '@igo2/core/activity';
|
|
4
|
+
import { ConfigService } from '@igo2/core/config';
|
|
5
|
+
import { LanguageService } from '@igo2/core/language';
|
|
4
6
|
import { SubjectStatus } from '@igo2/utils';
|
|
5
7
|
import html2canvas from 'html2canvas';
|
|
6
8
|
import jsPDF from 'jspdf';
|
|
@@ -13,8 +15,10 @@ import { DirectionsSourceService } from './directions-source.service';
|
|
|
13
15
|
import { formatDistance, formatDuration, formatInstruction } from './directions.utils';
|
|
14
16
|
import * as i0 from "@angular/core";
|
|
15
17
|
import * as i1 from "./directions-source.service";
|
|
16
|
-
import * as i2 from "@igo2/core";
|
|
17
|
-
import * as i3 from "
|
|
18
|
+
import * as i2 from "@igo2/core/config";
|
|
19
|
+
import * as i3 from "@igo2/core/language";
|
|
20
|
+
import * as i4 from "../../print/shared/print.service";
|
|
21
|
+
import * as i5 from "@igo2/core/activity";
|
|
18
22
|
export class DirectionsService {
|
|
19
23
|
directionsSourceService;
|
|
20
24
|
configService;
|
|
@@ -187,16 +191,16 @@ export class DirectionsService {
|
|
|
187
191
|
doc.text('Page ' + doc.getCurrentPageInfo().pageNumber + ' / ' + pageCount, width - 20, pageHeight - 10);
|
|
188
192
|
}
|
|
189
193
|
}
|
|
190
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.
|
|
191
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.
|
|
194
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsService, deps: [{ token: i1.DirectionsSourceService }, { token: i2.ConfigService }, { token: i3.LanguageService }, { token: i4.PrintService }, { token: DOCUMENT }, { token: i5.ActivityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
195
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsService, providedIn: 'root' });
|
|
192
196
|
}
|
|
193
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.
|
|
197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: DirectionsService, decorators: [{
|
|
194
198
|
type: Injectable,
|
|
195
199
|
args: [{
|
|
196
200
|
providedIn: 'root'
|
|
197
201
|
}]
|
|
198
|
-
}], ctorParameters: () => [{ type: i1.DirectionsSourceService }, { type: i2.ConfigService }, { type:
|
|
202
|
+
}], ctorParameters: () => [{ type: i1.DirectionsSourceService }, { type: i2.ConfigService }, { type: i3.LanguageService }, { type: i4.PrintService }, { type: Document, decorators: [{
|
|
199
203
|
type: Inject,
|
|
200
204
|
args: [DOCUMENT]
|
|
201
|
-
}] }, { type:
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLFdBQVcsTUFBTSxhQUFhLENBQUM7QUFDdEMsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8saUJBQWlCLENBQUM7QUFFekIsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBYyxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHM0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3BFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFDTCxjQUFjLEVBQ2QsY0FBYyxFQUNkLGlCQUFpQixFQUNsQixNQUFNLG9CQUFvQixDQUFDOzs7OztBQUs1QixNQUFNLE9BQU8saUJBQWlCO0lBRWxCO0lBQ0E7SUFDQTtJQUNBO0lBQ2tCO0lBQ2xCO0lBTlYsWUFDVSx1QkFBZ0QsRUFDaEQsYUFBNEIsRUFDNUIsZUFBZ0MsRUFDaEMsWUFBMEIsRUFDUixRQUFrQixFQUNwQyxlQUFnQztRQUxoQyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUNSLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO0lBQ3ZDLENBQUM7SUFFSixLQUFLLENBQ0gsV0FBK0IsRUFDL0Isb0JBQXNDLEVBQUU7UUFFeEMsSUFBSSxXQUFXLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDVCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTzthQUN4QyxNQUFNLENBQUMsQ0FBQyxNQUF3QixFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDO2FBQ3BELEdBQUcsQ0FBQyxDQUFDLE1BQXdCLEVBQUUsRUFBRSxDQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FDekQsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXLENBQ1QsTUFBd0IsRUFDeEIsV0FBK0IsRUFDL0Isb0JBQXNDLEVBQUU7UUFFeEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUM3RCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRUQsaUJBQWlCLENBQ2YsR0FBVyxFQUNYLFNBQW9CO1FBRXBCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbkQsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFFN0MsTUFBTSxHQUFHLEdBQVUsSUFBSSxLQUFLLENBQUM7WUFDM0IsV0FBVyxFQUFFLEdBQUc7WUFDaEIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQ3RCLENBQUMsQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFHO1lBQ2pCLEdBQUcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUs7WUFDM0IsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTTtTQUM3QixDQUFDO1FBQ0YsTUFBTSxPQUFPLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUIsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLEdBQXFCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRS9DLE1BQU0sS0FBSyxHQUFHLEdBQUcsU0FBUyxDQUFDLEtBQUssS0FBSyxjQUFjLENBQ2pELFNBQVMsQ0FBQyxRQUFRLENBQ25CLEtBQUssY0FBYyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQzVDLE1BQU0sYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUV6QixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLGFBQWEsRUFBRTtZQUM5RCxLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFDLENBQUM7UUFFSCxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtRQUN2QyxJQUFJLENBQUMsWUFBWTthQUNkLE1BQU0sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixDQUFDLElBQUksQ0FBQzthQUNyRSxTQUFTLENBQUMsS0FBSyxFQUFFLE1BQXFCLEVBQUUsRUFBRTtZQUN6QyxJQUFJLE1BQU0sS0FBSyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xDLE1BQU0sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNsRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzlCLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssTUFBTSxFQUFFLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUQsQ0FBQztZQUVELElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFTCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0lBRU8sS0FBSyxDQUFDLG1CQUFtQixDQUMvQixTQUFvQjtRQUVwQixNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6RCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNqRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsSUFBSSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLFNBQVMsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksUUFBUSxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUMsT0FBTztZQUNQLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFxQixDQUFDO1lBQzlELEdBQUcsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQztZQUN2QixtQkFBbUI7WUFDbkIsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQWdCLENBQUM7WUFDM0QsSUFBSSxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO1lBQ3JDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDM0IsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMzQixJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDckIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQWdCLENBQUM7Z0JBQ25FLFlBQVksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQztnQkFDNUMsWUFBWSxDQUFDLFNBQVM7b0JBQ3BCLGdDQUFnQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7Z0JBQ3RELFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDckMsQ0FBQztZQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDdEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNyQixPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNCLENBQUM7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVPLEtBQUssQ0FBQyxxQkFBcUIsQ0FDakMsU0FBb0I7UUFFcEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVE7YUFDL0Isb0JBQW9CLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakQsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkMsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3ZFLDhCQUE4QjtRQUM5QixJQUFJLFVBQVUsR0FBMEMsRUFBRSxDQUFDO1FBQzNELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDeEQsTUFBTSxPQUFPLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25DLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQWdCLENBQUM7WUFDeEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBVyxDQUFDO1lBQ25FLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDNUQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLE1BQU0sVUFBVSxHQUFHLE1BQU0sV0FBVyxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RCxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNwRSxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksa0JBQWtCLEdBSWpCLEVBQUUsQ0FBQztRQUNSLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEMsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUNsQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFDdEIsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFDM0IsQ0FBQyxFQUNBLElBQUksQ0FBQyxRQUFnQixDQUFDLElBQUksRUFDM0IsSUFBSSxDQUFDLGVBQWUsRUFDcEIsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDakMsQ0FBQztZQUVGLE1BQU0sUUFBUSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0Msa0JBQWtCLENBQUMsSUFBSSxDQUFDO2dCQUN0QixXQUFXLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLEdBQUcsV0FBVyxDQUFDLFdBQVc7Z0JBQ25ELElBQUksRUFBRSxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJO2dCQUNyRSxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsUUFBUSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUzthQUN0RCxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBRU8sS0FBSyxDQUFDLGVBQWUsQ0FDM0IsR0FBVSxFQUNWLFNBQW9CLEVBQ3BCLEtBQWE7UUFFYixHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZCxNQUFNLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDekIsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxhQUFhLEVBQUU7WUFDOUQsS0FBSyxFQUFFLFFBQVE7U0FDaEIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUQsTUFBTSxRQUFRLEdBQUcsYUFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQyxHQUFXLENBQUMsU0FBUyxDQUFDO1lBQ3JCLElBQUksRUFBRSxTQUFTO1lBQ2YsTUFBTSxFQUFFLFFBQVE7WUFDaEIsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFO1lBQy9CLFlBQVksRUFBRTtnQkFDWixDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO2FBQ3JCO1lBQ0QsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUU7Z0JBQ04sUUFBUSxFQUFFLEVBQUU7YUFDYjtZQUNELFdBQVcsRUFBRSxVQUFVLElBQUk7Z0JBQ3pCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLE1BQU0sRUFBRSxDQUFDO29CQUM1RCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7b0JBQ3JCLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBa0IsQ0FBQztvQkFDeEMsTUFBTSxHQUFHLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM5QyxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO1lBQ0gsQ0FBQztTQUNvQixDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLG1CQUFtQixDQUFDLEdBQVU7UUFDcEMsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDekMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXRFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDMUUsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO1FBRXpELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxTQUFTLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUMvQyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25CLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7WUFDdkMsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU07Z0JBQ2hDLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTTtnQkFDakIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN6QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDcEUsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxLQUFLLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakQsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFVBQVUsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUNwQyxHQUFHLENBQUMsSUFBSSxDQUNOLE9BQU8sR0FBRyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxVQUFVLEdBQUcsS0FBSyxHQUFHLFNBQVMsRUFDakUsS0FBSyxHQUFHLEVBQUUsRUFDVixVQUFVLEdBQUcsRUFBRSxDQUNoQixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7dUdBN05VLGlCQUFpQixpSkFNbEIsUUFBUTsyR0FOUCxpQkFBaUIsY0FGaEIsTUFBTTs7MkZBRVAsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBT0ksTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEFjdGl2aXR5U2VydmljZSwgQ29uZmlnU2VydmljZSwgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3RTdGF0dXMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xyXG5pbXBvcnQganNQREYgZnJvbSAnanNwZGYnO1xyXG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XHJcbmltcG9ydCB7IFVzZXJPcHRpb25zIH0gZnJvbSAnanNwZGYtYXV0b3RhYmxlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XHJcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ByaW50L3NoYXJlZC9wcmludC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJpbnRMZWdlbmRQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3ByaW50L3NoYXJlZC9wcmludC50eXBlJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uc1NvdXJjZSB9IGZyb20gJy4uL2RpcmVjdGlvbnMtc291cmNlcy9kaXJlY3Rpb25zLXNvdXJjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiwgRGlyZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBmb3JtYXREaXN0YW5jZSxcclxuICBmb3JtYXREdXJhdGlvbixcclxuICBmb3JtYXRJbnN0cnVjdGlvblxyXG59IGZyb20gJy4vZGlyZWN0aW9ucy51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlOiBEaXJlY3Rpb25zU291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHByaW50U2VydmljZTogUHJpbnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBwcml2YXRlIGFjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICByb3V0ZShcclxuICAgIGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdW10sXHJcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XHJcbiAgKTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT5bXSB7XHJcbiAgICBpZiAoY29vcmRpbmF0ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLnNvdXJjZXNcclxuICAgICAgLmZpbHRlcigoc291cmNlOiBEaXJlY3Rpb25zU291cmNlKSA9PiBzb3VyY2UuZW5hYmxlZClcclxuICAgICAgLm1hcCgoc291cmNlOiBEaXJlY3Rpb25zU291cmNlKSA9PlxyXG4gICAgICAgIHRoaXMucm91dGVTb3VyY2Uoc291cmNlLCBjb29yZGluYXRlcywgZGlyZWN0aW9uc09wdGlvbnMpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICByb3V0ZVNvdXJjZShcclxuICAgIHNvdXJjZTogRGlyZWN0aW9uc1NvdXJjZSxcclxuICAgIGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdW10sXHJcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XHJcbiAgKTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHNvdXJjZS5yb3V0ZShjb29yZGluYXRlcywgZGlyZWN0aW9uc09wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZERpcmVjdGlvbihcclxuICAgIG1hcDogSWdvTWFwLFxyXG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb25cclxuICApOiBPYnNlcnZhYmxlPFN1YmplY3RTdGF0dXM+IHtcclxuICAgIGNvbnN0IGFjdGl2aXR5SWQgPSB0aGlzLmFjdGl2aXR5U2VydmljZS5yZWdpc3RlcigpO1xyXG4gICAgY29uc3Qgc3RhdHVzJCA9IG5ldyBTdWJqZWN0PFN1YmplY3RTdGF0dXM+KCk7XHJcblxyXG4gICAgY29uc3QgZG9jOiBqc1BERiA9IG5ldyBqc1BERih7XHJcbiAgICAgIG9yaWVudGF0aW9uOiAncCcsXHJcbiAgICAgIGZvcm1hdDogJ0xldHRlcicsXHJcbiAgICAgIHVuaXQ6ICdtbScgLy8gZGVmYXVsdFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBkaW1lbnNpb25zID0gW1xyXG4gICAgICBkb2MuaW50ZXJuYWwucGFnZVNpemUud2lkdGgsXHJcbiAgICAgIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5oZWlnaHRcclxuICAgIF07XHJcbiAgICBjb25zdCBtYXJnaW5zID0gWzEwLCAxMCwgMTAsIDEwXTtcclxuICAgIGNvbnN0IHdpZHRoID0gZGltZW5zaW9uc1swXTtcclxuICAgIGNvbnN0IGhlaWdodCA9IGRpbWVuc2lvbnNbMV0gLSBtYXJnaW5zWzBdIC0gbWFyZ2luc1syXTtcclxuICAgIGNvbnN0IHNpemU6IFtudW1iZXIsIG51bWJlcl0gPSBbd2lkdGgsIGhlaWdodF07XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSBgJHtkaXJlY3Rpb24udGl0bGV9ICgke2Zvcm1hdERpc3RhbmNlKFxyXG4gICAgICBkaXJlY3Rpb24uZGlzdGFuY2VcclxuICAgICl9LCAke2Zvcm1hdER1cmF0aW9uKGRpcmVjdGlvbi5kdXJhdGlvbil9KWA7XHJcbiAgICBjb25zdCB0aXRsZVBvc2l0aW9uID0gMjU7XHJcblxyXG4gICAgZG9jLnRleHQodGl0bGUsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS53aWR0aCAvIDIsIHRpdGxlUG9zaXRpb24sIHtcclxuICAgICAgYWxpZ246ICdjZW50ZXInXHJcbiAgICB9KTtcclxuXHJcbiAgICBtYXJnaW5zWzBdICs9IDIwO1xyXG4gICAgY29uc3QgcmVzb2x1dGlvbiA9IDk2OyAvLyBEZWZhdWx0IGlzIDk2XHJcbiAgICB0aGlzLnByaW50U2VydmljZVxyXG4gICAgICAuYWRkTWFwKGRvYywgbWFwLCByZXNvbHV0aW9uLCBzaXplLCBtYXJnaW5zLCBQcmludExlZ2VuZFBvc2l0aW9uLm5vbmUpXHJcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHN0YXR1czogU3ViamVjdFN0YXR1cykgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT09IFN1YmplY3RTdGF0dXMuRG9uZSkge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5hZGRJbnN0cnVjdGlvbnMoZG9jLCBkaXJlY3Rpb24sIHRpdGxlKTtcclxuICAgICAgICAgIHRoaXMuc2V0UGFnZUhlYWRlckZvb3Rlcihkb2MpO1xyXG4gICAgICAgICAgYXdhaXQgZG9jLnNhdmUoYCR7dGl0bGV9LnBkZmAsIHsgcmV0dXJuUHJvbWlzZTogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnVucmVnaXN0ZXIoYWN0aXZpdHlJZCk7XHJcbiAgICAgICAgc3RhdHVzJC5uZXh0KHN0YXR1cyk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzdGF0dXMkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZXRIVE1MVGFibGVDb250ZW50KFxyXG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb25cclxuICApOiBQcm9taXNlPEhUTUxUYWJsZUVsZW1lbnQ+IHtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRpcmVjdGlvbnNJbnN0cnVjdGlvbihkaXJlY3Rpb24pO1xyXG4gICAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpO1xyXG4gICAgY29uc3QgdGJsQm9keSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rib2R5Jyk7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRhdGFbaW5kZXhdO1xyXG4gICAgICB2YXIgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTtcclxuICAgICAgdmFyIGNlbGxJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7XHJcbiAgICAgIHZhciBjZWxsVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7XHJcbiAgICAgIC8vIGljb25cclxuICAgICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykgYXMgSFRNTEltYWdlRWxlbWVudDtcclxuICAgICAgaW1nLnNyYyA9IGVsZW1lbnQuaWNvbjtcclxuICAgICAgLy8gaW5zdHJ1Y3Rpb24gdGV4dFxyXG4gICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBzcGFuLmlubmVySFRNTCA9IGVsZW1lbnQuaW5zdHJ1Y3Rpb247XHJcbiAgICAgIGNlbGxJbWFnZS5hcHBlbmRDaGlsZChpbWcpO1xyXG4gICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuKTtcclxuICAgICAgaWYgKGVsZW1lbnQuZGlzdGFuY2UpIHtcclxuICAgICAgICBjb25zdCBzcGFuRGlzdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgc3BhbkRpc3RhbmNlLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAnbWlkZGxlJztcclxuICAgICAgICBzcGFuRGlzdGFuY2UuaW5uZXJIVE1MID1cclxuICAgICAgICAgICcmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsnICsgZWxlbWVudC5kaXN0YW5jZTtcclxuICAgICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuRGlzdGFuY2UpO1xyXG4gICAgICB9XHJcbiAgICAgIHJvdy5hcHBlbmQoY2VsbEltYWdlKTtcclxuICAgICAgcm93LmFwcGVuZChjZWxsVGV4dCk7XHJcbiAgICAgIHRibEJvZHkuYXBwZW5kQ2hpbGQocm93KTtcclxuICAgIH1cclxuICAgIHRhYmxlLmFwcGVuZENoaWxkKHRibEJvZHkpO1xyXG4gICAgcmV0dXJuIHRhYmxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBkaXJlY3Rpb25zSW5zdHJ1Y3Rpb24oXHJcbiAgICBkaXJlY3Rpb246IERpcmVjdGlvblxyXG4gICk6IFByb21pc2U8QXJyYXk8eyBpbnN0cnVjdGlvbjogc3RyaW5nOyBpY29uOiBzdHJpbmc7IGRpc3RhbmNlOiBzdHJpbmcgfT4+IHtcclxuICAgIGNvbnN0IG1hdExpc3RJdGVtcyA9IHRoaXMuZG9jdW1lbnRcclxuICAgICAgLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZ28tZGlyZWN0aW9ucy1yZXN1bHRzJylbMF1cclxuICAgICAgLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXQtbGlzdCcpWzBdO1xyXG4gICAgY29uc3QgbWF0TGlzdEl0ZW0gPSBtYXRMaXN0SXRlbXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21hdC1saXN0LWl0ZW0nKTtcclxuICAgIC8vIGNvbnZlcnQgaWNvbiBsaXN0IHRvIGJhc2U2NFxyXG4gICAgbGV0IGljb25zQXJyYXk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyBpY29uOiBzdHJpbmcgfT4gPSBbXTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXRMaXN0SXRlbS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IG1hdExpc3RJdGVtW2luZGV4XTtcclxuICAgICAgY29uc3QgaWNvbiA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21hdC1pY29uJylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGNvbnN0IGljb25OYW1lID0gaWNvbi5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWF0LWljb24tbmFtZScpIGFzIHN0cmluZztcclxuICAgICAgY29uc3QgZm91bmQgPSBpY29uc0FycmF5LnNvbWUoKGVsKSA9PiBlbC5uYW1lID09PSBpY29uTmFtZSk7XHJcbiAgICAgIGlmICghZm91bmQpIHtcclxuICAgICAgICBjb25zdCBpY29uQ2FudmFzID0gYXdhaXQgaHRtbDJjYW52YXMoaWNvbiwgeyBzY2FsZTogMyB9KTtcclxuICAgICAgICBpY29uc0FycmF5LnB1c2goeyBuYW1lOiBpY29uTmFtZSwgaWNvbjogaWNvbkNhbnZhcy50b0RhdGFVUkwoKSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxldCBmb3JtYXR0ZWREaXJlY3Rpb246IEFycmF5PHtcclxuICAgICAgaW5zdHJ1Y3Rpb246IHN0cmluZztcclxuICAgICAgaWNvbjogc3RyaW5nO1xyXG4gICAgICBkaXN0YW5jZTogc3RyaW5nO1xyXG4gICAgfT4gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlyZWN0aW9uLnN0ZXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHN0ZXAgPSBkaXJlY3Rpb24uc3RlcHNbaV07XHJcbiAgICAgIGNvbnN0IGluc3RydWN0aW9uID0gZm9ybWF0SW5zdHJ1Y3Rpb24oXHJcbiAgICAgICAgc3RlcC5tYW5ldXZlci50eXBlLFxyXG4gICAgICAgIHN0ZXAubWFuZXV2ZXIubW9kaWZpZXIsXHJcbiAgICAgICAgc3RlcC5uYW1lLFxyXG4gICAgICAgIHN0ZXAubWFuZXV2ZXIuYmVhcmluZ19hZnRlcixcclxuICAgICAgICBpLFxyXG4gICAgICAgIChzdGVwLm1hbmV1dmVyIGFzIGFueSkuZXhpdCxcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZSxcclxuICAgICAgICBpID09PSBkaXJlY3Rpb24uc3RlcHMubGVuZ3RoIC0gMVxyXG4gICAgICApO1xyXG5cclxuICAgICAgY29uc3QgZGlzdGFuY2UgPSBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKTtcclxuICAgICAgZm9ybWF0dGVkRGlyZWN0aW9uLnB1c2goe1xyXG4gICAgICAgIGluc3RydWN0aW9uOiBpICsgMSArICcuICcgKyBpbnN0cnVjdGlvbi5pbnN0cnVjdGlvbixcclxuICAgICAgICBpY29uOiBpY29uc0FycmF5LmZpbmQoKGljb24pID0+IGljb24ubmFtZSA9PT0gaW5zdHJ1Y3Rpb24uaW1hZ2UpLmljb24sXHJcbiAgICAgICAgZGlzdGFuY2U6IGRpc3RhbmNlID8gJygnICsgZGlzdGFuY2UgKyAnKScgOiB1bmRlZmluZWRcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0dGVkRGlyZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBhZGRJbnN0cnVjdGlvbnMoXHJcbiAgICBkb2M6IGpzUERGLFxyXG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb24sXHJcbiAgICB0aXRsZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBkb2MuYWRkUGFnZSgpO1xyXG4gICAgY29uc3QgdGl0bGVQb3NpdGlvbiA9IDI1O1xyXG4gICAgZG9jLnRleHQodGl0bGUsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS53aWR0aCAvIDIsIHRpdGxlUG9zaXRpb24sIHtcclxuICAgICAgYWxpZ246ICdjZW50ZXInXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IEhUTUx0YWJsZSA9IGF3YWl0IHRoaXMuc2V0SFRNTFRhYmxlQ29udGVudChkaXJlY3Rpb24pO1xyXG4gICAgY29uc3QgdGFibGVQb3MgPSB0aXRsZVBvc2l0aW9uICsgNTtcclxuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xyXG4gICAgICBodG1sOiBIVE1MdGFibGUsXHJcbiAgICAgIHN0YXJ0WTogdGFibGVQb3MsXHJcbiAgICAgIG1hcmdpbjogeyB0b3A6IDIwLCBib3R0b206IDIwIH0sXHJcbiAgICAgIGNvbHVtblN0eWxlczoge1xyXG4gICAgICAgIDA6IHsgY2VsbFdpZHRoOiAxMCB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoZW1lOiAncGxhaW4nLFxyXG4gICAgICBzdHlsZXM6IHtcclxuICAgICAgICBmb250U2l6ZTogMTJcclxuICAgICAgfSxcclxuICAgICAgZGlkRHJhd0NlbGw6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgaWYgKGRhdGEuY29sdW1uLmluZGV4ID09PSAwICYmIGRhdGEuY2VsbC5zZWN0aW9uID09PSAnYm9keScpIHtcclxuICAgICAgICAgIGRhdGEucm93LmhlaWdodCA9IDEwO1xyXG4gICAgICAgICAgY29uc3QgdGQgPSBkYXRhLmNlbGwucmF3IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgY29uc3QgaW1nID0gdGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpWzBdO1xyXG4gICAgICAgICAgZG9jLmFkZEltYWdlKGltZy5zcmMsIGRhdGEuY2VsbC54LCBkYXRhLmNlbGwueSwgOCwgOCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IHNhdGlzZmllcyBVc2VyT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBhZ2VIZWFkZXJGb290ZXIoZG9jOiBqc1BERikge1xyXG4gICAgY29uc3QgcGFnZUNvdW50ID0gZG9jLmdldE51bWJlck9mUGFnZXMoKTtcclxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoRGF0ZS5ub3coKSkuZm9ybWF0KCdERC9NTS9ZWVlZIGhoOm1tJykudG9TdHJpbmcoKTtcclxuXHJcbiAgICBjb25zdCBsb2dvQ29uZmlnID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZGlyZWN0aW9uc1NvdXJjZXMubG9nbycpO1xyXG4gICAgY29uc3QgbG9nbyA9IGxvZ29Db25maWcgPyBsb2dvQ29uZmlnIDogJ2Fzc2V0cy9sb2dvLnBuZyc7XHJcblxyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHBhZ2VDb3VudDsgaW5kZXgrKykge1xyXG4gICAgICBkb2Muc2V0UGFnZShpbmRleCk7XHJcbiAgICAgIGRvYy5zZXRGb250U2l6ZSg4KTtcclxuICAgICAgY29uc3QgcGFnZVNpemUgPSBkb2MuaW50ZXJuYWwucGFnZVNpemU7XHJcbiAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSBwYWdlU2l6ZS5oZWlnaHRcclxuICAgICAgICA/IHBhZ2VTaXplLmhlaWdodFxyXG4gICAgICAgIDogcGFnZVNpemUuZ2V0SGVpZ2h0KCk7XHJcbiAgICAgIGNvbnN0IHdpZHRoID0gcGFnZVNpemUud2lkdGggPyBwYWdlU2l6ZS53aWR0aCA6IHBhZ2VTaXplLmdldFdpZHRoKCk7XHJcbiAgICAgIGRvYy50ZXh0KGRhdGUsIDEwLCAxMCwgeyBiYXNlbGluZTogJ3RvcCcgfSk7XHJcbiAgICAgIGRvYy5hZGRJbWFnZShsb2dvLCAnUE5HJywgd2lkdGggLSAyMCwgNSwgMTAsIDEwKTtcclxuICAgICAgZG9jLnRleHQoZGF0ZSwgMTAsIHBhZ2VIZWlnaHQgLSAxMCk7XHJcbiAgICAgIGRvYy50ZXh0KFxyXG4gICAgICAgICdQYWdlICcgKyBkb2MuZ2V0Q3VycmVudFBhZ2VJbmZvKCkucGFnZU51bWJlciArICcgLyAnICsgcGFnZUNvdW50LFxyXG4gICAgICAgIHdpZHRoIC0gMjAsXHJcbiAgICAgICAgcGFnZUhlaWdodCAtIDEwXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
205
|
+
}] }, { type: i5.ActivityService }] });
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvZGlyZWN0aW9ucy9zaGFyZWQvZGlyZWN0aW9ucy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUczQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFHcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUNMLGNBQWMsRUFDZCxjQUFjLEVBQ2QsaUJBQWlCLEVBQ2xCLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7QUFLNUIsTUFBTSxPQUFPLGlCQUFpQjtJQUVsQjtJQUNBO0lBQ0E7SUFDQTtJQUNrQjtJQUNsQjtJQU5WLFlBQ1UsdUJBQWdELEVBQ2hELGFBQTRCLEVBQzVCLGVBQWdDLEVB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LEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pELEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxVQUFVLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDcEMsR0FBRyxDQUFDLElBQUksQ0FDTixPQUFPLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixFQUFFLENBQUMsVUFBVSxHQUFHLEtBQUssR0FBRyxTQUFTLEVBQ2pFLEtBQUssR0FBRyxFQUFFLEVBQ1YsVUFBVSxHQUFHLEVBQUUsQ0FDaEIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO3VHQTdOVSxpQkFBaUIsaUpBTWxCLFFBQVE7MkdBTlAsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU9JLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBY3Rpdml0eVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlL2FjdGl2aXR5JztcclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUvY29uZmlnJztcclxuaW1wb3J0IHsgTGFuZ3VhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZS9sYW5ndWFnZSc7XHJcbmltcG9ydCB7IFN1YmplY3RTdGF0dXMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgaHRtbDJjYW52YXMgZnJvbSAnaHRtbDJjYW52YXMnO1xyXG5pbXBvcnQganNQREYgZnJvbSAnanNwZGYnO1xyXG5pbXBvcnQgJ2pzcGRmLWF1dG90YWJsZSc7XHJcbmltcG9ydCB7IFVzZXJPcHRpb25zIH0gZnJvbSAnanNwZGYtYXV0b3RhYmxlJztcclxuaW1wb3J0IG1vbWVudCBmcm9tICdtb21lbnQnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi9tYXAvc2hhcmVkL21hcCc7XHJcbmltcG9ydCB7IFByaW50U2VydmljZSB9IGZyb20gJy4uLy4uL3ByaW50L3NoYXJlZC9wcmludC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUHJpbnRMZWdlbmRQb3NpdGlvbiB9IGZyb20gJy4uLy4uL3ByaW50L3NoYXJlZC9wcmludC50eXBlJztcclxuaW1wb3J0IHsgRGlyZWN0aW9uc1NvdXJjZSB9IGZyb20gJy4uL2RpcmVjdGlvbnMtc291cmNlcy9kaXJlY3Rpb25zLXNvdXJjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbiwgRGlyZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL3NoYXJlZC9kaXJlY3Rpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IERpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlIH0gZnJvbSAnLi9kaXJlY3Rpb25zLXNvdXJjZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBmb3JtYXREaXN0YW5jZSxcclxuICBmb3JtYXREdXJhdGlvbixcclxuICBmb3JtYXRJbnN0cnVjdGlvblxyXG59IGZyb20gJy4vZGlyZWN0aW9ucy51dGlscyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaXJlY3Rpb25zU2VydmljZSB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlOiBEaXJlY3Rpb25zU291cmNlU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgbGFuZ3VhZ2VTZXJ2aWNlOiBMYW5ndWFnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHByaW50U2VydmljZTogUHJpbnRTZXJ2aWNlLFxyXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXHJcbiAgICBwcml2YXRlIGFjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICByb3V0ZShcclxuICAgIGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdW10sXHJcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XHJcbiAgKTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT5bXSB7XHJcbiAgICBpZiAoY29vcmRpbmF0ZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmRpcmVjdGlvbnNTb3VyY2VTZXJ2aWNlLnNvdXJjZXNcclxuICAgICAgLmZpbHRlcigoc291cmNlOiBEaXJlY3Rpb25zU291cmNlKSA9PiBzb3VyY2UuZW5hYmxlZClcclxuICAgICAgLm1hcCgoc291cmNlOiBEaXJlY3Rpb25zU291cmNlKSA9PlxyXG4gICAgICAgIHRoaXMucm91dGVTb3VyY2Uoc291cmNlLCBjb29yZGluYXRlcywgZGlyZWN0aW9uc09wdGlvbnMpXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICByb3V0ZVNvdXJjZShcclxuICAgIHNvdXJjZTogRGlyZWN0aW9uc1NvdXJjZSxcclxuICAgIGNvb3JkaW5hdGVzOiBbbnVtYmVyLCBudW1iZXJdW10sXHJcbiAgICBkaXJlY3Rpb25zT3B0aW9uczogRGlyZWN0aW9uT3B0aW9ucyA9IHt9XHJcbiAgKTogT2JzZXJ2YWJsZTxEaXJlY3Rpb25bXT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHNvdXJjZS5yb3V0ZShjb29yZGluYXRlcywgZGlyZWN0aW9uc09wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHJlcXVlc3Q7XHJcbiAgfVxyXG5cclxuICBkb3dubG9hZERpcmVjdGlvbihcclxuICAgIG1hcDogSWdvTWFwLFxyXG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb25cclxuICApOiBPYnNlcnZhYmxlPFN1YmplY3RTdGF0dXM+IHtcclxuICAgIGNvbnN0IGFjdGl2aXR5SWQgPSB0aGlzLmFjdGl2aXR5U2VydmljZS5yZWdpc3RlcigpO1xyXG4gICAgY29uc3Qgc3RhdHVzJCA9IG5ldyBTdWJqZWN0PFN1YmplY3RTdGF0dXM+KCk7XHJcblxyXG4gICAgY29uc3QgZG9jOiBqc1BERiA9IG5ldyBqc1BERih7XHJcbiAgICAgIG9yaWVudGF0aW9uOiAncCcsXHJcbiAgICAgIGZvcm1hdDogJ0xldHRlcicsXHJcbiAgICAgIHVuaXQ6ICdtbScgLy8gZGVmYXVsdFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBkaW1lbnNpb25zID0gW1xyXG4gICAgICBkb2MuaW50ZXJuYWwucGFnZVNpemUud2lkdGgsXHJcbiAgICAgIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS5oZWlnaHRcclxuICAgIF07XHJcbiAgICBjb25zdCBtYXJnaW5zID0gWzEwLCAxMCwgMTAsIDEwXTtcclxuICAgIGNvbnN0IHdpZHRoID0gZGltZW5zaW9uc1swXTtcclxuICAgIGNvbnN0IGhlaWdodCA9IGRpbWVuc2lvbnNbMV0gLSBtYXJnaW5zWzBdIC0gbWFyZ2luc1syXTtcclxuICAgIGNvbnN0IHNpemU6IFtudW1iZXIsIG51bWJlcl0gPSBbd2lkdGgsIGhlaWdodF07XHJcblxyXG4gICAgY29uc3QgdGl0bGUgPSBgJHtkaXJlY3Rpb24udGl0bGV9ICgke2Zvcm1hdERpc3RhbmNlKFxyXG4gICAgICBkaXJlY3Rpb24uZGlzdGFuY2VcclxuICAgICl9LCAke2Zvcm1hdER1cmF0aW9uKGRpcmVjdGlvbi5kdXJhdGlvbil9KWA7XHJcbiAgICBjb25zdCB0aXRsZVBvc2l0aW9uID0gMjU7XHJcblxyXG4gICAgZG9jLnRleHQodGl0bGUsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS53aWR0aCAvIDIsIHRpdGxlUG9zaXRpb24sIHtcclxuICAgICAgYWxpZ246ICdjZW50ZXInXHJcbiAgICB9KTtcclxuXHJcbiAgICBtYXJnaW5zWzBdICs9IDIwO1xyXG4gICAgY29uc3QgcmVzb2x1dGlvbiA9IDk2OyAvLyBEZWZhdWx0IGlzIDk2XHJcbiAgICB0aGlzLnByaW50U2VydmljZVxyXG4gICAgICAuYWRkTWFwKGRvYywgbWFwLCByZXNvbHV0aW9uLCBzaXplLCBtYXJnaW5zLCBQcmludExlZ2VuZFBvc2l0aW9uLm5vbmUpXHJcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKHN0YXR1czogU3ViamVjdFN0YXR1cykgPT4ge1xyXG4gICAgICAgIGlmIChzdGF0dXMgPT09IFN1YmplY3RTdGF0dXMuRG9uZSkge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5hZGRJbnN0cnVjdGlvbnMoZG9jLCBkaXJlY3Rpb24sIHRpdGxlKTtcclxuICAgICAgICAgIHRoaXMuc2V0UGFnZUhlYWRlckZvb3Rlcihkb2MpO1xyXG4gICAgICAgICAgYXdhaXQgZG9jLnNhdmUoYCR7dGl0bGV9LnBkZmAsIHsgcmV0dXJuUHJvbWlzZTogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWN0aXZpdHlTZXJ2aWNlLnVucmVnaXN0ZXIoYWN0aXZpdHlJZCk7XHJcbiAgICAgICAgc3RhdHVzJC5uZXh0KHN0YXR1cyk7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBzdGF0dXMkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBzZXRIVE1MVGFibGVDb250ZW50KFxyXG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb25cclxuICApOiBQcm9taXNlPEhUTUxUYWJsZUVsZW1lbnQ+IHtcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmRpcmVjdGlvbnNJbnN0cnVjdGlvbihkaXJlY3Rpb24pO1xyXG4gICAgY29uc3QgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0YWJsZScpO1xyXG4gICAgY29uc3QgdGJsQm9keSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3Rib2R5Jyk7XHJcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZGF0YS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IGRhdGFbaW5kZXhdO1xyXG4gICAgICB2YXIgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndHInKTtcclxuICAgICAgdmFyIGNlbGxJbWFnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7XHJcbiAgICAgIHZhciBjZWxsVGV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3RkJyk7XHJcbiAgICAgIC8vIGljb25cclxuICAgICAgY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJykgYXMgSFRNTEltYWdlRWxlbWVudDtcclxuICAgICAgaW1nLnNyYyA9IGVsZW1lbnQuaWNvbjtcclxuICAgICAgLy8gaW5zdHJ1Y3Rpb24gdGV4dFxyXG4gICAgICBjb25zdCBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpIGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICBzcGFuLmlubmVySFRNTCA9IGVsZW1lbnQuaW5zdHJ1Y3Rpb247XHJcbiAgICAgIGNlbGxJbWFnZS5hcHBlbmRDaGlsZChpbWcpO1xyXG4gICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuKTtcclxuICAgICAgaWYgKGVsZW1lbnQuZGlzdGFuY2UpIHtcclxuICAgICAgICBjb25zdCBzcGFuRGlzdGFuY2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJykgYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgICAgc3BhbkRpc3RhbmNlLnN0eWxlLnZlcnRpY2FsQWxpZ24gPSAnbWlkZGxlJztcclxuICAgICAgICBzcGFuRGlzdGFuY2UuaW5uZXJIVE1MID1cclxuICAgICAgICAgICcmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsnICsgZWxlbWVudC5kaXN0YW5jZTtcclxuICAgICAgICBjZWxsVGV4dC5hcHBlbmRDaGlsZChzcGFuRGlzdGFuY2UpO1xyXG4gICAgICB9XHJcbiAgICAgIHJvdy5hcHBlbmQoY2VsbEltYWdlKTtcclxuICAgICAgcm93LmFwcGVuZChjZWxsVGV4dCk7XHJcbiAgICAgIHRibEJvZHkuYXBwZW5kQ2hpbGQocm93KTtcclxuICAgIH1cclxuICAgIHRhYmxlLmFwcGVuZENoaWxkKHRibEJvZHkpO1xyXG4gICAgcmV0dXJuIHRhYmxlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBkaXJlY3Rpb25zSW5zdHJ1Y3Rpb24oXHJcbiAgICBkaXJlY3Rpb246IERpcmVjdGlvblxyXG4gICk6IFByb21pc2U8QXJyYXk8eyBpbnN0cnVjdGlvbjogc3RyaW5nOyBpY29uOiBzdHJpbmc7IGRpc3RhbmNlOiBzdHJpbmcgfT4+IHtcclxuICAgIGNvbnN0IG1hdExpc3RJdGVtcyA9IHRoaXMuZG9jdW1lbnRcclxuICAgICAgLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdpZ28tZGlyZWN0aW9ucy1yZXN1bHRzJylbMF1cclxuICAgICAgLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXQtbGlzdCcpWzBdO1xyXG4gICAgY29uc3QgbWF0TGlzdEl0ZW0gPSBtYXRMaXN0SXRlbXMuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21hdC1saXN0LWl0ZW0nKTtcclxuICAgIC8vIGNvbnZlcnQgaWNvbiBsaXN0IHRvIGJhc2U2NFxyXG4gICAgbGV0IGljb25zQXJyYXk6IEFycmF5PHsgbmFtZTogc3RyaW5nOyBpY29uOiBzdHJpbmcgfT4gPSBbXTtcclxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtYXRMaXN0SXRlbS5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgY29uc3QgZWxlbWVudCA9IG1hdExpc3RJdGVtW2luZGV4XTtcclxuICAgICAgY29uc3QgaWNvbiA9IGVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ21hdC1pY29uJylbMF0gYXMgSFRNTEVsZW1lbnQ7XHJcbiAgICAgIGNvbnN0IGljb25OYW1lID0gaWNvbi5nZXRBdHRyaWJ1dGUoJ2RhdGEtbWF0LWljb24tbmFtZScpIGFzIHN0cmluZztcclxuICAgICAgY29uc3QgZm91bmQgPSBpY29uc0FycmF5LnNvbWUoKGVsKSA9PiBlbC5uYW1lID09PSBpY29uTmFtZSk7XHJcbiAgICAgIGlmICghZm91bmQpIHtcclxuICAgICAgICBjb25zdCBpY29uQ2FudmFzID0gYXdhaXQgaHRtbDJjYW52YXMoaWNvbiwgeyBzY2FsZTogMyB9KTtcclxuICAgICAgICBpY29uc0FycmF5LnB1c2goeyBuYW1lOiBpY29uTmFtZSwgaWNvbjogaWNvbkNhbnZhcy50b0RhdGFVUkwoKSB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGxldCBmb3JtYXR0ZWREaXJlY3Rpb246IEFycmF5PHtcclxuICAgICAgaW5zdHJ1Y3Rpb246IHN0cmluZztcclxuICAgICAgaWNvbjogc3RyaW5nO1xyXG4gICAgICBkaXN0YW5jZTogc3RyaW5nO1xyXG4gICAgfT4gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGlyZWN0aW9uLnN0ZXBzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IHN0ZXAgPSBkaXJlY3Rpb24uc3RlcHNbaV07XHJcbiAgICAgIGNvbnN0IGluc3RydWN0aW9uID0gZm9ybWF0SW5zdHJ1Y3Rpb24oXHJcbiAgICAgICAgc3RlcC5tYW5ldXZlci50eXBlLFxyXG4gICAgICAgIHN0ZXAubWFuZXV2ZXIubW9kaWZpZXIsXHJcbiAgICAgICAgc3RlcC5uYW1lLFxyXG4gICAgICAgIHN0ZXAubWFuZXV2ZXIuYmVhcmluZ19hZnRlcixcclxuICAgICAgICBpLFxyXG4gICAgICAgIChzdGVwLm1hbmV1dmVyIGFzIGFueSkuZXhpdCxcclxuICAgICAgICB0aGlzLmxhbmd1YWdlU2VydmljZSxcclxuICAgICAgICBpID09PSBkaXJlY3Rpb24uc3RlcHMubGVuZ3RoIC0gMVxyXG4gICAgICApO1xyXG5cclxuICAgICAgY29uc3QgZGlzdGFuY2UgPSBmb3JtYXREaXN0YW5jZShzdGVwLmRpc3RhbmNlKTtcclxuICAgICAgZm9ybWF0dGVkRGlyZWN0aW9uLnB1c2goe1xyXG4gICAgICAgIGluc3RydWN0aW9uOiBpICsgMSArICcuICcgKyBpbnN0cnVjdGlvbi5pbnN0cnVjdGlvbixcclxuICAgICAgICBpY29uOiBpY29uc0FycmF5LmZpbmQoKGljb24pID0+IGljb24ubmFtZSA9PT0gaW5zdHJ1Y3Rpb24uaW1hZ2UpLmljb24sXHJcbiAgICAgICAgZGlzdGFuY2U6IGRpc3RhbmNlID8gJygnICsgZGlzdGFuY2UgKyAnKScgOiB1bmRlZmluZWRcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZm9ybWF0dGVkRGlyZWN0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBhZGRJbnN0cnVjdGlvbnMoXHJcbiAgICBkb2M6IGpzUERGLFxyXG4gICAgZGlyZWN0aW9uOiBEaXJlY3Rpb24sXHJcbiAgICB0aXRsZTogc3RyaW5nXHJcbiAgKSB7XHJcbiAgICBkb2MuYWRkUGFnZSgpO1xyXG4gICAgY29uc3QgdGl0bGVQb3NpdGlvbiA9IDI1O1xyXG4gICAgZG9jLnRleHQodGl0bGUsIGRvYy5pbnRlcm5hbC5wYWdlU2l6ZS53aWR0aCAvIDIsIHRpdGxlUG9zaXRpb24sIHtcclxuICAgICAgYWxpZ246ICdjZW50ZXInXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IEhUTUx0YWJsZSA9IGF3YWl0IHRoaXMuc2V0SFRNTFRhYmxlQ29udGVudChkaXJlY3Rpb24pO1xyXG4gICAgY29uc3QgdGFibGVQb3MgPSB0aXRsZVBvc2l0aW9uICsgNTtcclxuICAgIChkb2MgYXMgYW55KS5hdXRvVGFibGUoe1xyXG4gICAgICBodG1sOiBIVE1MdGFibGUsXHJcbiAgICAgIHN0YXJ0WTogdGFibGVQb3MsXHJcbiAgICAgIG1hcmdpbjogeyB0b3A6IDIwLCBib3R0b206IDIwIH0sXHJcbiAgICAgIGNvbHVtblN0eWxlczoge1xyXG4gICAgICAgIDA6IHsgY2VsbFdpZHRoOiAxMCB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHRoZW1lOiAncGxhaW4nLFxyXG4gICAgICBzdHlsZXM6IHtcclxuICAgICAgICBmb250U2l6ZTogMTJcclxuICAgICAgfSxcclxuICAgICAgZGlkRHJhd0NlbGw6IGZ1bmN0aW9uIChkYXRhKSB7XHJcbiAgICAgICAgaWYgKGRhdGEuY29sdW1uLmluZGV4ID09PSAwICYmIGRhdGEuY2VsbC5zZWN0aW9uID09PSAnYm9keScpIHtcclxuICAgICAgICAgIGRhdGEucm93LmhlaWdodCA9IDEwO1xyXG4gICAgICAgICAgY29uc3QgdGQgPSBkYXRhLmNlbGwucmF3IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgICAgICAgY29uc3QgaW1nID0gdGQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2ltZycpWzBdO1xyXG4gICAgICAgICAgZG9jLmFkZEltYWdlKGltZy5zcmMsIGRhdGEuY2VsbC54LCBkYXRhLmNlbGwueSwgOCwgOCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IHNhdGlzZmllcyBVc2VyT3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBhZ2VIZWFkZXJGb290ZXIoZG9jOiBqc1BERikge1xyXG4gICAgY29uc3QgcGFnZUNvdW50ID0gZG9jLmdldE51bWJlck9mUGFnZXMoKTtcclxuICAgIGNvbnN0IGRhdGUgPSBtb21lbnQoRGF0ZS5ub3coKSkuZm9ybWF0KCdERC9NTS9ZWVlZIGhoOm1tJykudG9TdHJpbmcoKTtcclxuXHJcbiAgICBjb25zdCBsb2dvQ29uZmlnID0gdGhpcy5jb25maWdTZXJ2aWNlLmdldENvbmZpZygnZGlyZWN0aW9uc1NvdXJjZXMubG9nbycpO1xyXG4gICAgY29uc3QgbG9nbyA9IGxvZ29Db25maWcgPyBsb2dvQ29uZmlnIDogJ2Fzc2V0cy9sb2dvLnBuZyc7XHJcblxyXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IHBhZ2VDb3VudDsgaW5kZXgrKykge1xyXG4gICAgICBkb2Muc2V0UGFnZShpbmRleCk7XHJcbiAgICAgIGRvYy5zZXRGb250U2l6ZSg4KTtcclxuICAgICAgY29uc3QgcGFnZVNpemUgPSBkb2MuaW50ZXJuYWwucGFnZVNpemU7XHJcbiAgICAgIGNvbnN0IHBhZ2VIZWlnaHQgPSBwYWdlU2l6ZS5oZWlnaHRcclxuICAgICAgICA/IHBhZ2VTaXplLmhlaWdodFxyXG4gICAgICAgIDogcGFnZVNpemUuZ2V0SGVpZ2h0KCk7XHJcbiAgICAgIGNvbnN0IHdpZHRoID0gcGFnZVNpemUud2lkdGggPyBwYWdlU2l6ZS53aWR0aCA6IHBhZ2VTaXplLmdldFdpZHRoKCk7XHJcbiAgICAgIGRvYy50ZXh0KGRhdGUsIDEwLCAxMCwgeyBiYXNlbGluZTogJ3RvcCcgfSk7XHJcbiAgICAgIGRvYy5hZGRJbWFnZShsb2dvLCAnUE5HJywgd2lkdGggLSAyMCwgNSwgMTAsIDEwKTtcclxuICAgICAgZG9jLnRleHQoZGF0ZSwgMTAsIHBhZ2VIZWlnaHQgLSAxMCk7XHJcbiAgICAgIGRvYy50ZXh0KFxyXG4gICAgICAgICdQYWdlICcgKyBkb2MuZ2V0Q3VycmVudFBhZ2VJbmZvKCkucGFnZU51bWJlciArICcgLyAnICsgcGFnZUNvdW50LFxyXG4gICAgICAgIHdpZHRoIC0gMjAsXHJcbiAgICAgICAgcGFnZUhlaWdodCAtIDEwXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|