@igo2/geo 16.2.0 → 17.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-group.component.mjs +30 -14
- package/esm2022/lib/catalog/catalog-browser/catalog-browser-layer.component.mjs +35 -17
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.component.mjs +18 -11
- package/esm2022/lib/catalog/catalog-browser/catalog-browser.module.mjs +8 -62
- package/esm2022/lib/catalog/catalog-library/add-catalog-dialog.component.mjs +46 -19
- package/esm2022/lib/catalog/catalog-library/catalog-library-item.component.mjs +22 -10
- package/esm2022/lib/catalog/catalog-library/catalog-library.component.mjs +28 -14
- package/esm2022/lib/catalog/catalog-library/catalog-library.module.mjs +8 -71
- package/esm2022/lib/catalog/catalog-library/index.mjs +9 -0
- package/esm2022/lib/catalog/catalog.module.mjs +9 -37
- package/esm2022/lib/catalog/index.mjs +7 -1
- package/esm2022/lib/catalog/shared/catalog.abstract.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.enum.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.interface.mjs +1 -1
- package/esm2022/lib/catalog/shared/catalog.service.mjs +72 -31
- package/esm2022/lib/catalog/shared/catalogs.mjs +1 -1
- package/esm2022/lib/catalog/shared/index.mjs +1 -1
- package/esm2022/lib/datasource/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/capabilities.interface.mjs +7 -1
- package/esm2022/lib/datasource/shared/capabilities.service.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasource.service.mjs +8 -12
- package/esm2022/lib/datasource/shared/datasources/any-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/arcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/carto-datasource.mjs +2 -2
- package/esm2022/lib/datasource/shared/datasources/datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/feature-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/imagearcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/index.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/mvt-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/osm-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tilearcgisrest-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/tiledebug-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/websocket-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wfs.service.mjs +5 -5
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.interface.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-datasource.mjs +1 -1
- package/esm2022/lib/datasource/shared/datasources/wms-wfs.utils.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.providers.mjs +1 -1
- package/esm2022/lib/datasource/shared/options/options-api.service.mjs +6 -6
- package/esm2022/lib/datasource/utils/tilegrid.mjs +1 -1
- package/esm2022/lib/directions/directions-buttons/directions-buttons.component.mjs +23 -12
- package/esm2022/lib/directions/directions-buttons/index.mjs +1 -1
- package/esm2022/lib/directions/directions-inputs/directions-inputs.component.mjs +42 -17
- package/esm2022/lib/directions/directions-inputs/index.mjs +1 -1
- package/esm2022/lib/directions/directions-results/directions-results.component.mjs +34 -14
- package/esm2022/lib/directions/directions-results/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.interface.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/directions-source.provider.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/index.mjs +1 -1
- package/esm2022/lib/directions/directions-sources/osrm-directions-source.mjs +5 -5
- package/esm2022/lib/directions/directions.component.mjs +18 -10
- package/esm2022/lib/directions/directions.module.mjs +17 -70
- package/esm2022/lib/directions/index.mjs +1 -1
- package/esm2022/lib/directions/shared/directions-source.service.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.enum.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.interface.mjs +1 -1
- package/esm2022/lib/directions/shared/directions.service.mjs +6 -6
- package/esm2022/lib/directions/shared/directions.utils.mjs +1 -1
- package/esm2022/lib/directions/shared/index.mjs +1 -1
- package/esm2022/lib/directions/shared/store.mjs +1 -1
- package/esm2022/lib/download/download-button/download-button.component.mjs +21 -11
- package/esm2022/lib/download/download-button/index.mjs +1 -1
- package/esm2022/lib/download/download.module.mjs +10 -27
- package/esm2022/lib/download/index.mjs +1 -1
- package/esm2022/lib/download/shared/download.interface.mjs +1 -1
- package/esm2022/lib/download/shared/download.service.mjs +5 -5
- package/esm2022/lib/download/shared/index.mjs +1 -1
- package/esm2022/lib/draw/draw/draw-layer-popup.component.mjs +21 -10
- package/esm2022/lib/draw/draw/draw-popup.component.mjs +39 -16
- package/esm2022/lib/draw/draw/draw-shorcuts.component.mjs +19 -9
- package/esm2022/lib/draw/draw/draw.component.mjs +52 -22
- package/esm2022/lib/draw/draw/draw.module.mjs +7 -104
- package/esm2022/lib/draw/drawingTool.module.mjs +8 -7
- package/esm2022/lib/draw/index.mjs +1 -1
- package/esm2022/lib/draw/shared/draw-icon.service.mjs +5 -5
- package/esm2022/lib/draw/shared/draw.enum.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.interface.mjs +1 -1
- package/esm2022/lib/draw/shared/draw.utils.mjs +1 -1
- package/esm2022/lib/draw/shared/index.mjs +1 -1
- package/esm2022/lib/environment/environment.interface.mjs +1 -1
- package/esm2022/lib/environment/index.mjs +1 -1
- package/esm2022/lib/feature/feature-details/feature-details.component.mjs +23 -11
- package/esm2022/lib/feature/feature-details/feature-details.directive.mjs +8 -7
- package/esm2022/lib/feature/feature-details/feature-details.module.mjs +8 -27
- package/esm2022/lib/feature/feature-details/index.mjs +9 -0
- package/esm2022/lib/feature/feature-form/feature-form.component.mjs +8 -8
- package/esm2022/lib/feature/feature-form/feature-form.module.mjs +8 -11
- package/esm2022/lib/feature/feature.module.mjs +9 -10
- package/esm2022/lib/feature/index.mjs +8 -2
- package/esm2022/lib/feature/shared/feature-store.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.enums.mjs +1 -1
- package/esm2022/lib/feature/shared/feature.utils.mjs +1 -1
- package/esm2022/lib/feature/shared/index.mjs +1 -1
- package/esm2022/lib/feature/shared/store.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/geo-properties.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-extent.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/in-map-resolution.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/index.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading-layer.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/loading.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies/search.mjs +4 -4
- package/esm2022/lib/feature/shared/strategies/selection.mjs +1 -1
- package/esm2022/lib/feature/shared/strategies.utils.mjs +1 -1
- package/esm2022/lib/filter/filter.module.mjs +47 -177
- package/esm2022/lib/filter/index.mjs +36 -1
- package/esm2022/lib/filter/ogc-filter-button/ogc-filter-button.component.mjs +29 -15
- package/esm2022/lib/filter/ogc-filter-form/ogc-filter-form.component.mjs +46 -20
- package/esm2022/lib/filter/ogc-filter-selection/ogc-filter-selection.component.mjs +52 -21
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.mjs +13 -10
- package/esm2022/lib/filter/ogc-filter-time/ogc-filter-time.component.mjs +45 -18
- package/esm2022/lib/filter/ogc-filterable-form/ogc-filterable-form.component.mjs +18 -12
- package/esm2022/lib/filter/ogc-filterable-item/ogc-filterable-item.component.mjs +42 -18
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.mjs +8 -7
- package/esm2022/lib/filter/ogc-filterable-list/ogc-filterable-list.component.mjs +21 -12
- package/esm2022/lib/filter/shared/filterable-datasource.pipe.mjs +6 -5
- package/esm2022/lib/filter/shared/ogc-filter-time.service.mjs +5 -5
- package/esm2022/lib/filter/shared/ogc-filter.mjs +1 -1
- package/esm2022/lib/filter/shared/ogc-filter.service.mjs +5 -5
- package/esm2022/lib/filter/shared/spatial-filter.service.mjs +5 -5
- package/esm2022/lib/filter/shared/time-filter.service.mjs +5 -5
- package/esm2022/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.mjs +63 -27
- package/esm2022/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.mjs +32 -15
- package/esm2022/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.mjs +34 -15
- package/esm2022/lib/filter/time-filter-button/time-filter-button.component.mjs +28 -14
- package/esm2022/lib/filter/time-filter-form/time-filter-form.component.mjs +47 -20
- package/esm2022/lib/filter/time-filter-item/time-filter-item.component.mjs +31 -13
- package/esm2022/lib/filter/time-filter-list/time-filter-list-binding.directive.mjs +8 -7
- package/esm2022/lib/filter/time-filter-list/time-filter-list.component.mjs +16 -10
- package/esm2022/lib/geo.module.mjs +5 -43
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field-input.component.mjs +7 -7
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.component.mjs +33 -16
- package/esm2022/lib/geometry/geometry-form-field/geometry-form-field.module.mjs +8 -43
- package/esm2022/lib/geometry/geometry-form-field/index.mjs +9 -0
- package/esm2022/lib/geometry/geometry.module.mjs +9 -10
- package/esm2022/lib/geometry/index.mjs +2 -3
- package/esm2022/lib/geometry/shared/controls/draw.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/index.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/modify.mjs +1 -1
- package/esm2022/lib/geometry/shared/controls/slice.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.errors.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.interfaces.mjs +1 -1
- package/esm2022/lib/geometry/shared/geometry.utils.mjs +1 -1
- package/esm2022/lib/geometry/shared/index.mjs +1 -1
- package/esm2022/lib/import-export/export-button/export-button.component.mjs +20 -10
- package/esm2022/lib/import-export/export-button/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export/import-export.component.mjs +45 -17
- package/esm2022/lib/import-export/import-export/index.mjs +1 -1
- package/esm2022/lib/import-export/import-export.module.mjs +10 -81
- package/esm2022/lib/import-export/index.mjs +9 -1
- package/esm2022/lib/import-export/shared/drop-geo-file.directive.mjs +7 -6
- package/esm2022/lib/import-export/shared/export.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.service.mjs +5 -5
- package/esm2022/lib/import-export/shared/export.type.mjs +1 -1
- package/esm2022/lib/import-export/shared/export.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.errors.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.interface.mjs +1 -1
- package/esm2022/lib/import-export/shared/import.service.mjs +5 -5
- package/esm2022/lib/import-export/shared/import.utils.mjs +1 -1
- package/esm2022/lib/import-export/shared/index.mjs +1 -1
- package/esm2022/lib/layer/index.mjs +19 -1
- package/esm2022/lib/layer/layer-item/layer-item.component.mjs +33 -14
- package/esm2022/lib/layer/layer-legend/layer-legend.component.mjs +41 -17
- package/esm2022/lib/layer/layer-legend-item/layer-legend-item.component.mjs +11 -9
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list-binding.directive.mjs +8 -7
- package/esm2022/lib/layer/layer-legend-list/layer-legend-list.component.mjs +28 -13
- package/esm2022/lib/layer/layer-list/layer-list-binding.directive.mjs +8 -7
- package/esm2022/lib/layer/layer-list/layer-list.component.mjs +48 -18
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.component.mjs +33 -14
- package/esm2022/lib/layer/layer-list-tool/layer-list-tool.service.mjs +5 -5
- package/esm2022/lib/layer/layer.module.mjs +16 -93
- package/esm2022/lib/layer/shared/layer.service.mjs +11 -11
- package/esm2022/lib/layer/shared/layers/image-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/image-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/index.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/legend.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/tile-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vector-layer.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.interface.mjs +1 -1
- package/esm2022/lib/layer/shared/layers/vectortile-layer.mjs +1 -1
- package/esm2022/lib/layer/track-feature-button/track-feature-button.component.mjs +21 -11
- package/esm2022/lib/layer/utils/image-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/layer.utils.mjs +1 -1
- package/esm2022/lib/layer/utils/outputLegend.mjs +1 -1
- package/esm2022/lib/layer/utils/tile-watcher.mjs +1 -1
- package/esm2022/lib/layer/utils/vector-watcher.mjs +1 -1
- package/esm2022/lib/map/baselayers-switcher/baselayers-switcher.component.mjs +25 -12
- package/esm2022/lib/map/baselayers-switcher/mini-basemap.component.mjs +8 -8
- package/esm2022/lib/map/geolocate-button/geolocate-button.component.mjs +22 -11
- package/esm2022/lib/map/home-extent-button/home-extent-button.component.mjs +13 -9
- package/esm2022/lib/map/index.mjs +32 -1
- package/esm2022/lib/map/info-section/info-section.component.mjs +7 -7
- package/esm2022/lib/map/map-browser/map-browser.component.mjs +6 -6
- package/esm2022/lib/map/map-center/map-center.component.mjs +6 -6
- package/esm2022/lib/map/map.module.mjs +36 -66
- package/esm2022/lib/map/menu-button/menu-button.component.mjs +21 -11
- package/esm2022/lib/map/offline-button/offline-button.component.mjs +21 -11
- package/esm2022/lib/map/rotation-button/rotation-button.component.mjs +23 -11
- package/esm2022/lib/map/shared/controllers/controller.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/geolocation.mjs +1 -1
- package/esm2022/lib/map/shared/controllers/view.mjs +1 -1
- package/esm2022/lib/map/shared/hover-feature.directive.mjs +8 -7
- package/esm2022/lib/map/shared/linkedLayers.utils.mjs +1 -1
- package/esm2022/lib/map/shared/map-pointer-position.directive.mjs +8 -7
- package/esm2022/lib/map/shared/map.abstract.mjs +1 -1
- package/esm2022/lib/map/shared/map.mjs +1 -1
- package/esm2022/lib/map/shared/map.service.mjs +5 -5
- package/esm2022/lib/map/shared/map.utils.mjs +1 -1
- package/esm2022/lib/map/shared/mapOffline.directive.mjs +7 -6
- package/esm2022/lib/map/shared/projection.service.mjs +5 -5
- package/esm2022/lib/map/shared/projection.utils.mjs +1 -1
- package/esm2022/lib/map/swipe-control/swipe-control.component.mjs +6 -6
- package/esm2022/lib/map/utils/layer-watcher.mjs +1 -1
- package/esm2022/lib/map/wake-lock-button/wake-lock-button.component.mjs +21 -11
- package/esm2022/lib/map/zoom-button/zoom-button.component.mjs +13 -9
- package/esm2022/lib/measure/index.mjs +2 -3
- package/esm2022/lib/measure/measure.module.mjs +8 -5
- package/esm2022/lib/measure/measurer/index.mjs +6 -0
- package/esm2022/lib/measure/measurer/measure-format.pipe.mjs +6 -5
- package/esm2022/lib/measure/measurer/measurer-dialog.component.mjs +18 -11
- package/esm2022/lib/measure/measurer/measurer-item.component.mjs +27 -13
- package/esm2022/lib/measure/measurer/measurer.component.mjs +35 -17
- package/esm2022/lib/measure/measurer/measurer.module.mjs +7 -69
- package/esm2022/lib/measure/shared/index.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.enum.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.interfaces.mjs +1 -1
- package/esm2022/lib/measure/shared/measure.utils.mjs +1 -1
- package/esm2022/lib/metadata/index.mjs +6 -1
- package/esm2022/lib/metadata/metadata-button/index.mjs +1 -1
- package/esm2022/lib/metadata/metadata-button/metadata-button.component.mjs +35 -18
- package/esm2022/lib/metadata/metadata.module.mjs +10 -31
- package/esm2022/lib/metadata/shared/index.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.interface.mjs +1 -1
- package/esm2022/lib/metadata/shared/metadata.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/configFileToGeoDB.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/geoDB.enums.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.interface.mjs +1 -1
- package/esm2022/lib/offline/geoDB/geoDB.service.mjs +5 -5
- package/esm2022/lib/offline/geoDB/index.mjs +1 -1
- package/esm2022/lib/offline/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/index.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.interface.mjs +1 -1
- package/esm2022/lib/offline/layerDB/layerDB.service.mjs +5 -5
- package/esm2022/lib/offline/shared/geo-network.service.mjs +5 -5
- package/esm2022/lib/offline/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/index.mjs +1 -1
- package/esm2022/lib/overlay/overlay.module.mjs +10 -8
- package/esm2022/lib/overlay/shared/index.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.directive.mjs +8 -7
- package/esm2022/lib/overlay/shared/overlay.enum.mjs +1 -1
- package/esm2022/lib/overlay/shared/overlay.mjs +2 -2
- package/esm2022/lib/overlay/shared/overlay.service.mjs +5 -5
- package/esm2022/lib/overlay/shared/overlay.utils.mjs +1 -1
- package/esm2022/lib/print/index.mjs +1 -1
- package/esm2022/lib/print/print/print.component.mjs +7 -7
- package/esm2022/lib/print/print-form/index.mjs +1 -1
- package/esm2022/lib/print/print-form/print-form.component.mjs +34 -14
- package/esm2022/lib/print/print.module.mjs +10 -54
- package/esm2022/lib/print/shared/geopdf.mjs +1 -1
- package/esm2022/lib/print/shared/index.mjs +1 -1
- package/esm2022/lib/print/shared/print.interface.mjs +1 -1
- package/esm2022/lib/print/shared/print.service.mjs +10 -10
- package/esm2022/lib/print/shared/print.type.mjs +1 -1
- package/esm2022/lib/query/index.mjs +1 -1
- package/esm2022/lib/query/query.module.mjs +7 -8
- package/esm2022/lib/query/shared/index.mjs +1 -1
- package/esm2022/lib/query/shared/query-search-source.mjs +6 -6
- package/esm2022/lib/query/shared/query-search-source.providers.mjs +1 -1
- package/esm2022/lib/query/shared/query.directive.mjs +8 -7
- package/esm2022/lib/query/shared/query.enums.mjs +1 -1
- package/esm2022/lib/query/shared/query.interfaces.mjs +1 -1
- package/esm2022/lib/query/shared/query.service.mjs +7 -9
- package/esm2022/lib/query/shared/query.utils.mjs +1 -1
- package/esm2022/lib/search/index.mjs +14 -5
- package/esm2022/lib/search/search-bar/search-bar.component.mjs +36 -16
- package/esm2022/lib/search/search-bar/search-bar.module.mjs +8 -61
- package/esm2022/lib/search/search-results/index.mjs +10 -0
- package/esm2022/lib/search/search-results/save-feature-dialog.component.mjs +42 -17
- package/esm2022/lib/search/search-results/search-results-add-button.component.mjs +28 -14
- package/esm2022/lib/search/search-results/search-results-item.component.mjs +22 -12
- package/esm2022/lib/search/search-results/search-results.component.mjs +24 -12
- package/esm2022/lib/search/search-results/search-results.module.mjs +8 -91
- package/esm2022/lib/search/search-selector/search-selector.component.mjs +27 -12
- package/esm2022/lib/search/search-selector/search-selector.module.mjs +8 -44
- package/esm2022/lib/search/search-settings/search-settings.component.mjs +37 -14
- package/esm2022/lib/search/search-settings/search-settings.module.mjs +7 -47
- package/esm2022/lib/search/search.module.mjs +10 -13
- package/esm2022/lib/search/shared/index.mjs +1 -1
- package/esm2022/lib/search/shared/search-pointer-summary.directive.mjs +8 -7
- package/esm2022/lib/search/shared/search-source-service.providers.mjs +1 -1
- package/esm2022/lib/search/shared/search-source.service.mjs +1 -1
- package/esm2022/lib/search/shared/search.enums.mjs +1 -1
- package/esm2022/lib/search/shared/search.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/search.service.mjs +5 -5
- package/esm2022/lib/search/shared/search.utils.mjs +1 -1
- package/esm2022/lib/search/shared/sources/cadastre.mjs +8 -7
- package/esm2022/lib/search/shared/sources/cadastre.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/coordinates.mjs +10 -10
- package/esm2022/lib/search/shared/sources/coordinates.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/icherche.mjs +16 -16
- package/esm2022/lib/search/shared/sources/icherche.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/ilayer.mjs +10 -10
- package/esm2022/lib/search/shared/sources/ilayer.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/index.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/nominatim.mjs +7 -7
- package/esm2022/lib/search/shared/sources/nominatim.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/source.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/storedqueries.mjs +11 -11
- package/esm2022/lib/search/shared/sources/storedqueries.providers.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.interfaces.mjs +1 -1
- package/esm2022/lib/search/shared/sources/workspace.mjs +7 -8
- package/esm2022/lib/search/shared/sources/workspace.providers.mjs +1 -1
- package/esm2022/lib/style/index.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/esri-style-generator.mjs +1 -1
- package/esm2022/lib/style/shared/datasource/index.mjs +1 -1
- package/esm2022/lib/style/shared/feature/feature-style.mjs +1 -1
- package/esm2022/lib/style/shared/feature/index.mjs +1 -1
- package/esm2022/lib/style/shared/font.enum.mjs +1 -1
- package/esm2022/lib/style/shared/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/index.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-marker-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/overlay/overlay-style.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/commonVectorStyle.mjs +1 -1
- package/esm2022/lib/style/shared/vector/conversion.utils.mjs +1 -1
- package/esm2022/lib/style/shared/vector/index.mjs +1 -1
- package/esm2022/lib/style/style-list/index.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.interface.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.module.mjs +5 -5
- package/esm2022/lib/style/style-list/style-list.provider.mjs +1 -1
- package/esm2022/lib/style/style-list/style-list.service.mjs +5 -5
- package/esm2022/lib/style/style-modal/drawing/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/drawing/style-modal-drawing.component.mjs +40 -17
- package/esm2022/lib/style/style-modal/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer/style-modal-layer.component.mjs +28 -14
- package/esm2022/lib/style/style-modal/layer-button/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/layer-button/style-modal-layer-button.component.mjs +13 -9
- package/esm2022/lib/style/style-modal/shared/index.mjs +1 -1
- package/esm2022/lib/style/style-modal/shared/style-modal.interface.mjs +1 -1
- package/esm2022/lib/style/style-service/draw-style.service.mjs +5 -5
- package/esm2022/lib/style/style-service/index.mjs +1 -1
- package/esm2022/lib/style/style-service/style.service.mjs +4 -4
- package/esm2022/lib/style/style.module.mjs +12 -57
- package/esm2022/lib/toast/index.mjs +1 -1
- package/esm2022/lib/toast/toast.component.mjs +19 -11
- package/esm2022/lib/toast/toast.module.mjs +10 -30
- package/esm2022/lib/utils/googleLinks.mjs +1 -1
- package/esm2022/lib/utils/id-generator.mjs +1 -1
- package/esm2022/lib/utils/index.mjs +1 -1
- package/esm2022/lib/utils/osmLinks.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/index.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.interface.mjs +1 -1
- package/esm2022/lib/utils/propertyTypeDetector/propertyTypeDetector.service.mjs +5 -5
- package/esm2022/lib/wkt/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/index.mjs +1 -1
- package/esm2022/lib/wkt/shared/wkt.service.mjs +19 -19
- package/esm2022/lib/wkt/wkt.module.mjs +8 -5
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.component.mjs +9 -8
- package/esm2022/lib/workspace/confirmation-popup/confirmation-popup.module.mjs +8 -24
- package/esm2022/lib/workspace/confirmation-popup/index.mjs +1 -1
- package/esm2022/lib/workspace/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/edition-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/feature-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/feature-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/index.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.mjs +1 -1
- package/esm2022/lib/workspace/shared/wfs-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/wms-workspace.service.mjs +5 -5
- package/esm2022/lib/workspace/shared/workspace.utils.mjs +1 -1
- package/esm2022/lib/workspace/widgets/index.mjs +1 -1
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.component.mjs +7 -7
- package/esm2022/lib/workspace/widgets/ogc-filter/ogc-filter.module.mjs +8 -13
- package/esm2022/lib/workspace/widgets/widgets.mjs +1 -1
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.directive.mjs +7 -6
- package/esm2022/lib/workspace/workspace-selector/workspace-selector.module.mjs +8 -10
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.directive.mjs +7 -6
- package/esm2022/lib/workspace/workspace-updator/workspace-updator.module.mjs +8 -10
- package/esm2022/lib/workspace/workspace.module.mjs +10 -35
- package/esm2022/public_api.mjs +11 -12
- package/fesm2022/igo2-geo.mjs +31812 -31914
- package/fesm2022/igo2-geo.mjs.map +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-group.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser-layer.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.component.d.ts +1 -1
- package/lib/catalog/catalog-browser/catalog-browser.module.d.ts +2 -14
- package/lib/catalog/catalog-library/add-catalog-dialog.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library-item.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.component.d.ts +1 -1
- package/lib/catalog/catalog-library/catalog-library.module.d.ts +3 -18
- package/lib/catalog/catalog-library/index.d.ts +5 -0
- package/lib/catalog/catalog.module.d.ts +6 -9
- package/lib/catalog/index.d.ts +2 -0
- package/lib/datasource/shared/capabilities.interface.d.ts +16 -0
- package/lib/datasource/shared/datasource.service.d.ts +2 -4
- package/lib/directions/directions-buttons/directions-buttons.component.d.ts +1 -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.component.d.ts +1 -1
- package/lib/directions/directions.module.d.ts +9 -20
- package/lib/download/download-button/download-button.component.d.ts +1 -1
- package/lib/download/download.module.d.ts +4 -6
- package/lib/draw/draw/draw-layer-popup.component.d.ts +1 -1
- package/lib/draw/draw/draw-popup.component.d.ts +4 -4
- package/lib/draw/draw/draw-shorcuts.component.d.ts +1 -1
- package/lib/draw/draw/draw.component.d.ts +1 -1
- package/lib/draw/draw/draw.module.d.ts +2 -25
- package/lib/draw/drawingTool.module.d.ts +3 -0
- package/lib/feature/feature-details/feature-details.component.d.ts +4 -2
- package/lib/feature/feature-details/feature-details.directive.d.ts +1 -1
- package/lib/feature/feature-details/feature-details.module.d.ts +2 -6
- package/lib/feature/feature-details/index.d.ts +5 -0
- package/lib/feature/feature-form/feature-form.component.d.ts +2 -2
- package/lib/feature/feature-form/feature-form.module.d.ts +2 -4
- package/lib/feature/feature.module.d.ts +6 -4
- package/lib/feature/index.d.ts +3 -1
- package/lib/filter/filter.module.d.ts +4 -28
- package/lib/filter/index.d.ts +16 -0
- package/lib/filter/ogc-filter-button/ogc-filter-button.component.d.ts +3 -3
- package/lib/filter/ogc-filter-form/ogc-filter-form.component.d.ts +3 -3
- package/lib/filter/ogc-filter-selection/ogc-filter-selection.component.d.ts +3 -3
- package/lib/filter/ogc-filter-time/ogc-filter-time-slider.component.d.ts +1 -1
- package/lib/filter/ogc-filter-time/ogc-filter-time.component.d.ts +2 -2
- package/lib/filter/ogc-filterable-form/ogc-filterable-form.component.d.ts +3 -3
- package/lib/filter/ogc-filterable-item/ogc-filterable-item.component.d.ts +3 -3
- package/lib/filter/ogc-filterable-list/ogc-filterable-list-binding.directive.d.ts +1 -1
- package/lib/filter/ogc-filterable-list/ogc-filterable-list.component.d.ts +3 -3
- package/lib/filter/shared/filterable-datasource.pipe.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-item/spatial-filter-item.component.d.ts +4 -4
- package/lib/filter/spatial-filter/spatial-filter-list/spatial-filter-list.component.d.ts +1 -1
- package/lib/filter/spatial-filter/spatial-filter-type/spatial-filter-type.component.d.ts +1 -1
- package/lib/filter/time-filter-button/time-filter-button.component.d.ts +1 -1
- package/lib/filter/time-filter-form/time-filter-form.component.d.ts +3 -3
- package/lib/filter/time-filter-item/time-filter-item.component.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list-binding.directive.d.ts +1 -1
- package/lib/filter/time-filter-list/time-filter-list.component.d.ts +1 -1
- package/lib/geo.module.d.ts +14 -24
- package/lib/geometry/geometry-form-field/geometry-form-field-input.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.component.d.ts +1 -1
- package/lib/geometry/geometry-form-field/geometry-form-field.module.d.ts +2 -10
- package/lib/geometry/geometry-form-field/index.d.ts +5 -0
- package/lib/geometry/geometry.module.d.ts +5 -3
- package/lib/geometry/index.d.ts +1 -2
- package/lib/import-export/export-button/export-button.component.d.ts +1 -1
- package/lib/import-export/import-export/import-export.component.d.ts +1 -1
- package/lib/import-export/import-export.module.d.ts +4 -15
- package/lib/import-export/index.d.ts +4 -0
- package/lib/import-export/shared/drop-geo-file.directive.d.ts +1 -1
- package/lib/layer/index.d.ts +8 -0
- package/lib/layer/layer-item/layer-item.component.d.ts +1 -1
- package/lib/layer/layer-legend/layer-legend.component.d.ts +1 -1
- package/lib/layer/layer-legend-item/layer-legend-item.component.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-legend-list/layer-legend-list.component.d.ts +1 -1
- package/lib/layer/layer-list/layer-list-binding.directive.d.ts +1 -1
- package/lib/layer/layer-list/layer-list.component.d.ts +1 -1
- package/lib/layer/layer-list-tool/layer-list-tool.component.d.ts +1 -1
- package/lib/layer/layer.module.d.ts +4 -18
- package/lib/layer/track-feature-button/track-feature-button.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/baselayers-switcher.component.d.ts +1 -1
- package/lib/map/baselayers-switcher/mini-basemap.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/index.d.ts +14 -0
- package/lib/map/info-section/info-section.component.d.ts +1 -1
- package/lib/map/map-browser/map-browser.component.d.ts +1 -1
- package/lib/map/map-center/map-center.component.d.ts +1 -1
- package/lib/map/map.module.d.ts +4 -7
- package/lib/map/menu-button/menu-button.component.d.ts +1 -1
- package/lib/map/offline-button/offline-button.component.d.ts +2 -2
- package/lib/map/rotation-button/rotation-button.component.d.ts +1 -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/mapOffline.directive.d.ts +1 -1
- package/lib/map/swipe-control/swipe-control.component.d.ts +1 -1
- package/lib/map/wake-lock-button/wake-lock-button.component.d.ts +1 -1
- package/lib/map/zoom-button/zoom-button.component.d.ts +1 -1
- package/lib/measure/index.d.ts +1 -2
- package/lib/measure/measure.module.d.ts +3 -0
- package/lib/measure/measurer/index.d.ts +5 -0
- package/lib/measure/measurer/measure-format.pipe.d.ts +1 -1
- package/lib/measure/measurer/measurer-dialog.component.d.ts +1 -1
- package/lib/measure/measurer/measurer-item.component.d.ts +1 -1
- package/lib/measure/measurer/measurer.component.d.ts +2 -3
- package/lib/measure/measurer/measurer.module.d.ts +3 -18
- package/lib/metadata/index.d.ts +2 -0
- package/lib/metadata/metadata-button/metadata-button.component.d.ts +2 -2
- package/lib/metadata/metadata.module.d.ts +4 -7
- package/lib/overlay/overlay.module.d.ts +4 -1
- package/lib/overlay/shared/overlay.d.ts +1 -1
- package/lib/overlay/shared/overlay.directive.d.ts +1 -1
- package/lib/print/print/print.component.d.ts +1 -1
- package/lib/print/print-form/print-form.component.d.ts +1 -1
- package/lib/print/print.module.d.ts +4 -12
- package/lib/query/query.module.d.ts +4 -4
- package/lib/query/shared/query.directive.d.ts +1 -1
- package/lib/query/shared/query.service.d.ts +2 -3
- package/lib/search/index.d.ts +6 -4
- package/lib/search/search-bar/search-bar.component.d.ts +1 -1
- package/lib/search/search-bar/search-bar.module.d.ts +2 -16
- package/lib/search/search-results/index.d.ts +6 -0
- 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-item.component.d.ts +1 -1
- package/lib/search/search-results/search-results.component.d.ts +1 -1
- package/lib/search/search-results/search-results.module.d.ts +3 -21
- package/lib/search/search-selector/search-selector.component.d.ts +1 -1
- package/lib/search/search-selector/search-selector.module.d.ts +2 -11
- package/lib/search/search-settings/search-settings.component.d.ts +1 -1
- package/lib/search/search-settings/search-settings.module.d.ts +2 -12
- package/lib/search/search.module.d.ts +6 -7
- package/lib/search/shared/search-pointer-summary.directive.d.ts +1 -1
- package/lib/search/shared/sources/cadastre.providers.d.ts +1 -1
- package/lib/search/shared/sources/coordinates.providers.d.ts +1 -1
- package/lib/search/shared/sources/icherche.providers.d.ts +2 -2
- package/lib/search/shared/sources/ilayer.providers.d.ts +1 -1
- package/lib/search/shared/sources/nominatim.providers.d.ts +1 -1
- package/lib/search/shared/sources/storedqueries.providers.d.ts +2 -2
- package/lib/search/shared/sources/workspace.providers.d.ts +1 -1
- package/lib/style/style-modal/drawing/style-modal-drawing.component.d.ts +1 -1
- package/lib/style/style-modal/layer/style-modal-layer.component.d.ts +1 -1
- package/lib/style/style-modal/layer-button/style-modal-layer-button.component.d.ts +1 -1
- package/lib/style/style.module.d.ts +5 -16
- package/lib/toast/toast.component.d.ts +1 -1
- package/lib/toast/toast.module.d.ts +4 -6
- package/lib/wkt/wkt.module.d.ts +3 -0
- package/lib/workspace/confirmation-popup/confirmation-popup.component.d.ts +1 -1
- package/lib/workspace/confirmation-popup/confirmation-popup.module.d.ts +2 -6
- package/lib/workspace/widgets/ogc-filter/ogc-filter.component.d.ts +1 -1
- package/lib/workspace/widgets/ogc-filter/ogc-filter.module.d.ts +2 -6
- package/lib/workspace/workspace-selector/workspace-selector.directive.d.ts +1 -1
- package/lib/workspace/workspace-selector/workspace-selector.module.d.ts +2 -3
- package/lib/workspace/workspace-updator/workspace-updator.directive.d.ts +1 -1
- package/lib/workspace/workspace-updator/workspace-updator.module.d.ts +2 -3
- package/lib/workspace/workspace.module.d.ts +5 -9
- package/locale/en.geo.json +3 -3
- package/locale/fr.geo.json +3 -3
- package/package.json +15 -13
- package/public_api.d.ts +10 -11
- package/src/lib/catalog/catalog-browser/catalog-browser.theming.scss +22 -22
- package/src/lib/catalog/catalog.theming.scss +5 -5
- package/src/lib/directions/directions-results/directions-results.theming.scss +10 -10
- package/src/lib/directions/directions.theming.scss +6 -6
- package/src/lib/draw/draw.theming.scss +32 -32
- package/src/lib/feature/feature-details/feature-details.theming.scss +16 -16
- package/src/lib/feature/feature.theming.scss +4 -4
- package/src/lib/measure/measure.theming.scss +5 -5
- package/src/lib/measure/measurer/measurer.theming.scss +26 -26
- package/src/lib/search/search-results/search-results-item.theme.scss +20 -20
- package/src/lib/search/search.theming.scss +7 -7
- package/src/lib/workspace/confirmation-popup/confirmation-popup.theming.scss +14 -14
- package/src/lib/workspace/workspace.theming.scss +6 -6
- package/esm2022/lib/datasource/datasource.module.mjs +0 -22
- package/esm2022/lib/search/search-bar/search-url-param.directive.mjs +0 -40
- package/lib/datasource/datasource.module.d.ts +0 -8
- package/lib/search/search-bar/search-url-param.directive.d.ts +0 -13
|
@@ -67,4 +67,4 @@ export class ImageLayer extends Layer {
|
|
|
67
67
|
xhr.send();
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2ltYWdlLWxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sWUFBWSxNQUFNLGdCQUFnQixDQUFDO0FBTTFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxVQUFXLFNBQVEsS0FBSztJQVMxQjtJQUNBO0lBTEQsT0FBTyxDQUFlO0lBRTlCLFlBQ0UsT0FBMEIsRUFDbkIsY0FBOEIsRUFDOUIsZUFBaUM7UUFFeEMsS0FBSyxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFIekMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUd4QyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQ25DLElBQUksU0FBUyxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQW1CO1NBQ2hELENBQUMsQ0FBQztRQUVILE1BQU0sS0FBSyxHQUFHLElBQUksWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzFDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3hCLEtBQUssQ0FBQyxTQUFTLEVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFFLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUF1QjtRQUNuQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVPLFlBQVksQ0FDbEIsSUFBSSxFQUNKLEdBQVcsRUFDWCxXQUE0QixFQUM1QixjQUE4QjtRQUU5QixNQUFNLEdBQUcsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO1FBRWpDLE1BQU0scUJBQXFCLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQixHQUFHLEdBQUcscUJBQXFCLENBQUM7UUFDOUIsQ0FBQztRQUNELEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLE1BQU0sV0FBVyxHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNqQixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztZQUMxQixPQUFPO1FBQ1QsQ0FBQztRQUVELEdBQUcsQ0FBQyxZQUFZLEdBQUcsYUFBYSxDQUFDO1FBRWpDLEdBQUcsQ0FBQyxNQUFNLEdBQUc7WUFDWCxNQUFNLGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBRSxJQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDL0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxXQUFXLEVBQUUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDakUsSUFBSSxjQUFjLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQztnQkFDdEQsY0FBYyxDQUFDLEtBQUssQ0FDbEIsMENBQTBDLEVBQzFDLHFDQUFxQyxDQUN0QyxDQUFDO1lBQ0osQ0FBQztZQUNELE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNoRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDO1lBQzlCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsR0FBRyxRQUFRLENBQUM7UUFDakMsQ0FBQyxDQUFDO1FBQ0YsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2IsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnQGlnbzIvYXV0aCc7XHJcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgb2xMYXllckltYWdlIGZyb20gJ29sL2xheWVyL0ltYWdlJztcclxuaW1wb3J0IG9sU291cmNlSW1hZ2UgZnJvbSAnb2wvc291cmNlL0ltYWdlJztcclxuXHJcbmltcG9ydCB7IEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9pbWFnZWFyY2dpc3Jlc3QtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFdNU0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IElnb01hcCB9IGZyb20gJy4uLy4uLy4uL21hcC9zaGFyZWQvbWFwJztcclxuaW1wb3J0IHsgSW1hZ2VXYXRjaGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvaW1hZ2Utd2F0Y2hlcic7XHJcbmltcG9ydCB7IEltYWdlTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi9pbWFnZS1sYXllci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4vbGF5ZXInO1xyXG5cclxuZXhwb3J0IGNsYXNzIEltYWdlTGF5ZXIgZXh0ZW5kcyBMYXllciB7XHJcbiAgcHVibGljIGRlY2xhcmUgZGF0YVNvdXJjZTogV01TRGF0YVNvdXJjZSB8IEltYWdlQXJjR0lTUmVzdERhdGFTb3VyY2U7XHJcbiAgcHVibGljIGRlY2xhcmUgb3B0aW9uczogSW1hZ2VMYXllck9wdGlvbnM7XHJcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sTGF5ZXJJbWFnZTxvbFNvdXJjZUltYWdlPjtcclxuXHJcbiAgcHJpdmF0ZSB3YXRjaGVyOiBJbWFnZVdhdGNoZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgb3B0aW9uczogSW1hZ2VMYXllck9wdGlvbnMsXHJcbiAgICBwdWJsaWMgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHVibGljIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvclxyXG4gICkge1xyXG4gICAgc3VwZXIob3B0aW9ucywgbWVzc2FnZVNlcnZpY2UsIGF1dGhJbnRlcmNlcHRvcik7XHJcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgSW1hZ2VXYXRjaGVyKHRoaXMsIHRoaXMubWVzc2FnZVNlcnZpY2UpO1xyXG4gICAgdGhpcy5zdGF0dXMkID0gdGhpcy53YXRjaGVyLnN0YXR1cyQ7XHJcbiAgICB0aGlzLnN0YXR1cyQuc3Vic2NyaWJlKCh2YWxTdGF0dXMpID0+IHtcclxuICAgICAgaWYgKHZhbFN0YXR1cyA9PT0gMCkge1xyXG4gICAgICAgIHRoaXMub2xMb2FkaW5nUHJvYmxlbSA9IHRydWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGNyZWF0ZU9sTGF5ZXIoKTogb2xMYXllckltYWdlPG9sU291cmNlSW1hZ2U+IHtcclxuICAgIGNvbnN0IG9sT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucywge1xyXG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5zb3VyY2Uub2wgYXMgb2xTb3VyY2VJbWFnZVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgaW1hZ2UgPSBuZXcgb2xMYXllckltYWdlKG9sT3B0aW9ucyk7XHJcbiAgICBpZiAodGhpcy5hdXRoSW50ZXJjZXB0b3IpIHtcclxuICAgICAgKGltYWdlLmdldFNvdXJjZSgpIGFzIGFueSkuc2V0SW1hZ2VMb2FkRnVuY3Rpb24oKHRpbGUsIHNyYykgPT4ge1xyXG4gICAgICAgIHRoaXMuY3VzdG9tTG9hZGVyKHRpbGUsIHNyYywgdGhpcy5hdXRoSW50ZXJjZXB0b3IsIHRoaXMubWVzc2FnZVNlcnZpY2UpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gaW1hZ2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0TWFwKG1hcDogSWdvTWFwIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAobWFwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy53YXRjaGVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndhdGNoZXIuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgIH1cclxuICAgIHN1cGVyLnNldE1hcChtYXApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjdXN0b21Mb2FkZXIoXHJcbiAgICB0aWxlLFxyXG4gICAgc3JjOiBzdHJpbmcsXHJcbiAgICBpbnRlcmNlcHRvcjogQXV0aEludGVyY2VwdG9yLFxyXG4gICAgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcclxuXHJcbiAgICBjb25zdCBhbHRlcmVkVXJsV2l0aEtleUF1dGggPSBpbnRlcmNlcHRvci5hbHRlclVybFdpdGhLZXlBdXRoKHNyYyk7XHJcbiAgICBsZXQgdXJsID0gc3JjO1xyXG4gICAgaWYgKGFsdGVyZWRVcmxXaXRoS2V5QXV0aCkge1xyXG4gICAgICB1cmwgPSBhbHRlcmVkVXJsV2l0aEtleUF1dGg7XHJcbiAgICB9XHJcbiAgICB4aHIub3BlbignR0VUJywgdXJsKTtcclxuICAgIGNvbnN0IGludGVyY2VwdGVkID0gaW50ZXJjZXB0b3IuaW50ZXJjZXB0WGhyKHhociwgdXJsKTtcclxuICAgIGlmICghaW50ZXJjZXB0ZWQpIHtcclxuICAgICAgeGhyLmFib3J0KCk7XHJcbiAgICAgIHRpbGUuZ2V0SW1hZ2UoKS5zcmMgPSB1cmw7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcclxuXHJcbiAgICB4aHIub25sb2FkID0gZnVuY3Rpb24gKCkge1xyXG4gICAgICBjb25zdCBhcnJheUJ1ZmZlclZpZXcgPSBuZXcgVWludDhBcnJheSgodGhpcyBhcyBhbnkpLnJlc3BvbnNlKTtcclxuICAgICAgY29uc3QgcmVzcG9uc2VTdHJpbmcgPSBuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoYXJyYXlCdWZmZXJWaWV3KTtcclxuICAgICAgaWYgKHJlc3BvbnNlU3RyaW5nLmluY2x1ZGVzKCdTZXJ2aWNlRXhjZXB0aW9uUmVwb3J0JykpIHtcclxuICAgICAgICBtZXNzYWdlU2VydmljZS5lcnJvcihcclxuICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2Uub3B0aW9uc0FwaVVuYXZhaWxhYmxlJyxcclxuICAgICAgICAgICdpZ28uZ2VvLmRhdGFTb3VyY2UudW5hdmFpbGFibGVUaXRsZSdcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbYXJyYXlCdWZmZXJWaWV3XSwgeyB0eXBlOiAnaW1hZ2UvcG5nJyB9KTtcclxuICAgICAgY29uc3QgdXJsQ3JlYXRvciA9IHdpbmRvdy5VUkw7XHJcbiAgICAgIGNvbnN0IGltYWdlVXJsID0gdXJsQ3JlYXRvci5jcmVhdGVPYmplY3RVUkwoYmxvYik7XHJcbiAgICAgIHRpbGUuZ2V0SW1hZ2UoKS5zcmMgPSBpbWFnZVVybDtcclxuICAgIH07XHJcbiAgICB4aHIuc2VuZCgpO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -10,4 +10,4 @@ export * from './vectortile-layer';
|
|
|
10
10
|
export * from './vectortile-layer.interface';
|
|
11
11
|
export * from './any-layer';
|
|
12
12
|
export * from './any-layer.interface';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyx1QkFBdUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGF5ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2xheWVyLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtbGF5ZXInO1xyXG5leHBvcnQgKiBmcm9tICcuL2ltYWdlLWxheWVyLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGlsZS1sYXllcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGlsZS1sYXllci5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3ZlY3Rvci1sYXllcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9yLWxheWVyLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9ydGlsZS1sYXllcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdmVjdG9ydGlsZS1sYXllci5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FueS1sYXllcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vYW55LWxheWVyLmludGVyZmFjZSc7XHJcbiJdfQ==
|
|
@@ -181,4 +181,4 @@ export class Layer {
|
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxlQUFlLEVBSWYsYUFBYSxFQUNkLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3ZFLE1BQU0sT0FBZ0IsS0FBSztJQXdIaEI7SUFDRztJQUNBO0lBQ0E7SUFDSDtJQTNIRixTQUFTLENBQVU7SUFDbkIsVUFBVSxDQUFhO0lBQ3ZCLE1BQU0sQ0FBVztJQUNqQixlQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2hDLGtCQUFrQixHQUFZLElBQUksQ0FBQztJQUNuQyxHQUFHLENBQVU7SUFDYixFQUFFLENBQW9CO0lBQ3RCLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUNsQyxPQUFPLENBQXlCO0lBQ2hDLGVBQWUsR0FBNkIsSUFBSSxlQUFlLENBQ3BFLFNBQVMsQ0FDVixDQUFDO0lBQ00sZ0JBQWdCLENBQWU7SUFDL0IsWUFBWSxDQUFlO0lBRW5DOzs7O09BSUc7SUFDSCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENB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U0FBUyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQzFCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDekMsTUFBTSxhQUFhLEdBQ2pCLElBQUksQ0FBQyxhQUFhLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7WUFDbkUsSUFBSSxDQUFDLG9CQUFvQjtnQkFDdkIsVUFBVSxJQUFJLGFBQWEsSUFBSSxVQUFVLElBQUksYUFBYSxDQUFDO1NBQzlEO2FBQU07WUFDTCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnQGlnbzIvYXV0aCc7XHJcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3RTdGF0dXMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgb2xMYXllciBmcm9tICdvbC9sYXllci9MYXllcic7XHJcbmltcG9ydCBvbFNvdXJjZSBmcm9tICdvbC9zb3VyY2UvU291cmNlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgQmVoYXZpb3JTdWJqZWN0LFxyXG4gIE9ic2VydmFibGUsXHJcbiAgU3ViamVjdCxcclxuICBTdWJzY3JpcHRpb24sXHJcbiAgY29tYmluZUxhdGVzdFxyXG59IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5pbXBvcnQgeyBEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IExlZ2VuZCB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2RhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHR5cGUgeyBNYXBCYXNlIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAuYWJzdHJhY3QnO1xyXG5pbXBvcnQgeyBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAudXRpbHMnO1xyXG5pbXBvcnQgeyBHZW9EQlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9vZmZsaW5lL2dlb0RCL2dlb0RCLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMYXllckRCU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL29mZmxpbmUvbGF5ZXJEQi9sYXllckRCLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMYXllck9wdGlvbnMgfSBmcm9tICcuL2xheWVyLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTGF5ZXIge1xyXG4gIHB1YmxpYyBjb2xsYXBzZWQ6IGJvb2xlYW47XHJcbiAgcHVibGljIGRhdGFTb3VyY2U6IERhdGFTb3VyY2U7XHJcbiAgcHVibGljIGxlZ2VuZDogTGVnZW5kW107XHJcbiAgcHVibGljIGxlZ2VuZENvbGxhcHNlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIGZpcnN0TG9hZENvbXBvbmVudDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIG1hcDogTWFwQmFzZTtcclxuICBwdWJsaWMgb2w6IG9sTGF5ZXI8b2xTb3VyY2U+O1xyXG4gIHB1YmxpYyBvbExvYWRpbmdQcm9ibGVtOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHN0YXR1cyQ6IFN1YmplY3Q8U3ViamVjdFN0YXR1cz47XHJcbiAgcHVibGljIGhhc0JlZW5WaXNpYmxlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdChcclxuICAgIHVuZGVmaW5lZFxyXG4gICk7XHJcbiAgcHJpdmF0ZSBoYXNCZWVuVmlzaWJsZSQkOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSByZXNvbHV0aW9uJCQ6IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgLyoqXHJcbiAgICogRGVmaW5lIGlmIGEgbGF5ZXIgaXMgZ2VuZXJhdGVkIGJ5IGNvZGUgT1IgZGVmaW5lZCBieSBsYXllci9jb250ZXh0IHVzZXIgbGF5ZXIuXHJcbiAgICogVXNlZnVsIGZvciBmaWx0ZXJpbmcgbGF5ZXJzIGxpc3QgaW4gbWFwT2ZmbGluZS5kaXJlY3RpdmUgb3IgaW4gdGhlIHNoYXJlbWFwLi4uXHJcbiAgICogcmV0dXJuIGZhbHNlIGJ5IGRlZmF1bHQuXHJcbiAgICovXHJcbiAgZ2V0IGlzSWdvSW50ZXJuYWxMYXllcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaXNJZ29JbnRlcm5hbExheWVyIHx8IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmlkIHx8IHRoaXMuZGF0YVNvdXJjZS5pZDtcclxuICB9XHJcblxyXG4gIGdldCBhbGlhcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5hbGlhcztcclxuICB9XHJcblxyXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy50aXRsZTtcclxuICB9XHJcblxyXG4gIHNldCB0aXRsZSh0aXRsZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMudGl0bGUgPSB0aXRsZTtcclxuICB9XHJcblxyXG4gIGdldCB6SW5kZXgoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm9sLmdldFpJbmRleCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0IHpJbmRleCh6SW5kZXg6IG51bWJlcikge1xyXG4gICAgdGhpcy5vbC5zZXRaSW5kZXgoekluZGV4KTtcclxuICB9XHJcblxyXG4gIGdldCBiYXNlTGF5ZXIoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmJhc2VMYXllcjtcclxuICB9XHJcblxyXG4gIHNldCBiYXNlTGF5ZXIoYmFzZUxheWVyOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMuYmFzZUxheWVyID0gYmFzZUxheWVyO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9wYWNpdHkoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm9sLmdldCgnb3BhY2l0eScpO1xyXG4gIH1cclxuXHJcbiAgc2V0IG9wYWNpdHkob3BhY2l0eTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9sLnNldE9wYWNpdHkob3BhY2l0eSk7XHJcbiAgfVxyXG5cclxuICBzZXQgaXNJblJlc29sdXRpb25zUmFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaXNJblJlc29sdXRpb25zUmFuZ2UkLm5leHQodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgaXNJblJlc29sdXRpb25zUmFuZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZSQudmFsdWU7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IGlzSW5SZXNvbHV0aW9uc1JhbmdlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID1cclxuICAgIG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xyXG5cclxuICBzZXQgbWF4UmVzb2x1dGlvbih2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9sLnNldE1heFJlc29sdXRpb24odmFsdWUgPT09IDAgPyAwIDogdmFsdWUgfHwgSW5maW5pdHkpO1xyXG4gICAgdGhpcy51cGRhdGVJblJlc29sdXRpb25zUmFuZ2UoKTtcclxuICB9XHJcbiAgZ2V0IG1heFJlc29sdXRpb24oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm9sLmdldE1heFJlc29sdXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldCBtaW5SZXNvbHV0aW9uKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMub2wuc2V0TWluUmVzb2x1dGlvbih2YWx1ZSB8fCAwKTtcclxuICAgIHRoaXMudXBkYXRlSW5SZXNvbHV0aW9uc1JhbmdlKCk7XHJcbiAgfVxyXG4gIGdldCBtaW5SZXNvbHV0aW9uKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5vbC5nZXRNaW5SZXNvbHV0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXQgdmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5vbC5zZXRWaXNpYmxlKHZhbHVlKTtcclxuICAgIHRoaXMudmlzaWJsZSQubmV4dCh2YWx1ZSk7XHJcbiAgICBpZiAoIXRoaXMuaGFzQmVlblZpc2libGUkLnZhbHVlICYmIHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaGFzQmVlblZpc2libGUkLm5leHQodmFsdWUpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucz8ubWVzc2FnZXMgJiYgdmFsdWUpIHtcclxuICAgICAgdGhpcy5vcHRpb25zPy5tZXNzYWdlc1xyXG4gICAgICAgIC5maWx0ZXIoKG0pID0+IG0ub3B0aW9ucz8uc2hvd09uRWFjaExheWVyVmlzaWJpbGl0eSlcclxuICAgICAgICAubWFwKChtZXNzYWdlKSA9PiB0aGlzLnNob3dNZXNzYWdlKG1lc3NhZ2UpKTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy52aXNpYmxlJC52YWx1ZTtcclxuICB9XHJcbiAgcmVhZG9ubHkgdmlzaWJsZSQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3QodW5kZWZpbmVkKTtcclxuXHJcbiAgZ2V0IGRpc3BsYXllZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZpc2libGUgJiYgdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZTtcclxuICB9XHJcbiAgcmVhZG9ubHkgZGlzcGxheWVkJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IGNvbWJpbmVMYXRlc3QoW1xyXG4gICAgdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZSQsXHJcbiAgICB0aGlzLnZpc2libGUkXHJcbiAgXSkucGlwZShtYXAoKGJ1bmNoOiBbYm9vbGVhbiwgYm9vbGVhbl0pID0+IGJ1bmNoWzBdICYmIGJ1bmNoWzFdKSk7XHJcblxyXG4gIGdldCBzaG93SW5MYXllckxpc3QoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnNob3dJbkxheWVyTGlzdCAhPT0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBvcHRpb25zOiBMYXllck9wdGlvbnMsXHJcbiAgICBwcm90ZWN0ZWQgbWVzc2FnZVNlcnZpY2U/OiBNZXNzYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBhdXRoSW50ZXJjZXB0b3I/OiBBdXRoSW50ZXJjZXB0b3IsXHJcbiAgICBwcm90ZWN0ZWQgZ2VvREJTZXJ2aWNlPzogR2VvREJTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxheWVyREJTZXJ2aWNlPzogTGF5ZXJEQlNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuZGF0YVNvdXJjZSA9IG9wdGlvbnMuc291cmNlO1xyXG5cclxuICAgIHRoaXMub2wgPSB0aGlzLmNyZWF0ZU9sTGF5ZXIoKTtcclxuICAgIGlmIChvcHRpb25zLnpJbmRleCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuekluZGV4ID0gb3B0aW9ucy56SW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG9wdGlvbnMuYmFzZUxheWVyICYmIG9wdGlvbnMudmlzaWJsZSA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIG9wdGlvbnMudmlzaWJsZSA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubWF4UmVzb2x1dGlvbiA9XHJcbiAgICAgIG9wdGlvbnMubWF4UmVzb2x1dGlvbiB8fFxyXG4gICAgICBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKE51bWJlcihvcHRpb25zLm1heFNjYWxlRGVub20pKTtcclxuICAgIHRoaXMubWluUmVzb2x1dGlvbiA9XHJcbiAgICAgIG9wdGlvbnMubWluUmVzb2x1dGlvbiB8fFxyXG4gICAgICBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKE51bWJlcihvcHRpb25zLm1pblNjYWxlRGVub20pKTtcclxuXHJcbiAgICB0aGlzLnZpc2libGUgPSBvcHRpb25zLnZpc2libGUgPT09IHVuZGVmaW5lZCA/IHRydWUgOiBvcHRpb25zLnZpc2libGU7XHJcbiAgICB0aGlzLm9wYWNpdHkgPSBvcHRpb25zLm9wYWNpdHkgPT09IHVuZGVmaW5lZCA/IDEgOiBvcHRpb25zLm9wYWNpdHk7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICBvcHRpb25zLmxlZ2VuZE9wdGlvbnMgJiZcclxuICAgICAgKG9wdGlvbnMubGVnZW5kT3B0aW9ucy51cmwgfHwgb3B0aW9ucy5sZWdlbmRPcHRpb25zLmh0bWwpXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5sZWdlbmQgPSB0aGlzLmRhdGFTb3VyY2Uuc2V0TGVnZW5kKG9wdGlvbnMubGVnZW5kT3B0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sZWdlbmRDb2xsYXBzZWQgPSBvcHRpb25zLmxlZ2VuZE9wdGlvbnNcclxuICAgICAgPyBvcHRpb25zLmxlZ2VuZE9wdGlvbnMuY29sbGFwc2VkXHJcbiAgICAgICAgPyBvcHRpb25zLmxlZ2VuZE9wdGlvbnMuY29sbGFwc2VkXHJcbiAgICAgICAgOiB0cnVlXHJcbiAgICAgIDogdHJ1ZTtcclxuXHJcbiAgICB0aGlzLm9sLnNldCgnX2xheWVyJywgdGhpcywgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgY3JlYXRlT2xMYXllcigpOiBvbExheWVyPG9sU291cmNlPjtcclxuXHJcbiAgc2V0TWFwKG1hcDogTWFwQmFzZSB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5tYXAgPSBtYXA7XHJcblxyXG4gICAgdGhpcy51bm9ic2VydmVSZXNvbHV0aW9uKCk7XHJcbiAgICBpZiAobWFwICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5vYnNlcnZlUmVzb2x1dGlvbigpO1xyXG4gICAgICB0aGlzLmhhc0JlZW5WaXNpYmxlJCQgPSB0aGlzLmhhc0JlZW5WaXNpYmxlJC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMubWVzc2FnZXMgJiYgdGhpcy52aXNpYmxlKSB7XHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMubWVzc2FnZXMubWFwKChtZXNzYWdlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2hvd01lc3NhZ2UobWVzc2FnZSk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93TWVzc2FnZShtZXNzYWdlOiBNZXNzYWdlKSB7XHJcbiAgICBpZiAoIXRoaXMubWVzc2FnZVNlcnZpY2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgbWVzc2FnZS50aXRsZSA9IG1lc3NhZ2UudGl0bGU7XHJcbiAgICBtZXNzYWdlLnRleHQgPSBtZXNzYWdlLnRleHQ7XHJcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLm1lc3NhZ2UobWVzc2FnZSBhcyBNZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb2JzZXJ2ZVJlc29sdXRpb24oKSB7XHJcbiAgICB0aGlzLnJlc29sdXRpb24kJCA9IHRoaXMubWFwLnZpZXdDb250cm9sbGVyLnJlc29sdXRpb24kLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICB0aGlzLnVwZGF0ZUluUmVzb2x1dGlvbnNSYW5nZSgpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1bm9ic2VydmVSZXNvbHV0aW9uKCkge1xyXG4gICAgaWYgKHRoaXMucmVzb2x1dGlvbiQkICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5yZXNvbHV0aW9uJCQudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5yZXNvbHV0aW9uJCQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZUluUmVzb2x1dGlvbnNSYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLm1hcCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIGNvbnN0IHJlc29sdXRpb24gPSB0aGlzLm1hcC52aWV3Q29udHJvbGxlci5nZXRSZXNvbHV0aW9uKCk7XHJcbiAgICAgIGNvbnN0IG1pblJlc29sdXRpb24gPSB0aGlzLm1pblJlc29sdXRpb247XHJcbiAgICAgIGNvbnN0IG1heFJlc29sdXRpb24gPVxyXG4gICAgICAgIHRoaXMubWF4UmVzb2x1dGlvbiA9PT0gdW5kZWZpbmVkID8gSW5maW5pdHkgOiB0aGlzLm1heFJlc29sdXRpb247XHJcbiAgICAgIHRoaXMuaXNJblJlc29sdXRpb25zUmFuZ2UgPVxyXG4gICAgICAgIHJlc29sdXRpb24gPj0gbWluUmVzb2x1dGlvbiAmJiByZXNvbHV0aW9uIDw9IG1heFJlc29sdXRpb247XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzSW5SZXNvbHV0aW9uc1JhbmdlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL2xheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sRUFDTCxlQUFlLEVBSWYsYUFBYSxFQUNkLE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3JDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBS3ZFLE1BQU0sT0FBZ0IsS0FBSztJQXdIaEI7SUFDRztJQUNBO0lBQ0E7SUFDSDtJQTNIRixTQUFTLENBQVU7SUFDbkIsVUFBVSxDQUFhO0lBQ3ZCLE1BQU0sQ0FBVztJQUNqQixlQUFlLEdBQVksSUFBSSxDQUFDO0lBQ2hDLGtCQUFrQixHQUFZLElBQUksQ0FBQztJQUNuQyxHQUFHLENBQVU7SUFDYixFQUFFLENBQW9CO0lBQ3RCLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUNsQyxPQUFPLENBQXlCO0lBQ2hDLGVBQWUsR0FBNkIsSUFBSSxlQUFlLENBQ3BFLFNBQVMsQ0FDVixDQUFDO0lBQ00sZ0JBQWdCLENBQWU7SUFDL0IsWUFBWSxDQUFlO0lBRW5DOzs7O09BSUc7SUFDSCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksS0FBSyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLEVBQUU7UUFDSixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENB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QUssU0FBUyxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNoQyxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0IsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDM0QsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUN6QyxNQUFNLGFBQWEsR0FDakIsSUFBSSxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNuRSxJQUFJLENBQUMsb0JBQW9CO2dCQUN2QixVQUFVLElBQUksYUFBYSxJQUFJLFVBQVUsSUFBSSxhQUFhLENBQUM7UUFDL0QsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTWVzc2FnZSwgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdFN0YXR1cyB9IGZyb20gJ0BpZ28yL3V0aWxzJztcclxuXHJcbmltcG9ydCBvbExheWVyIGZyb20gJ29sL2xheWVyL0xheWVyJztcclxuaW1wb3J0IG9sU291cmNlIGZyb20gJ29sL3NvdXJjZS9Tb3VyY2UnO1xyXG5cclxuaW1wb3J0IHtcclxuICBCZWhhdmlvclN1YmplY3QsXHJcbiAgT2JzZXJ2YWJsZSxcclxuICBTdWJqZWN0LFxyXG4gIFN1YnNjcmlwdGlvbixcclxuICBjb21iaW5lTGF0ZXN0XHJcbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmltcG9ydCB7IERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9kYXRhc291cmNlJztcclxuaW1wb3J0IHsgTGVnZW5kIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgdHlwZSB7IE1hcEJhc2UgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC5hYnN0cmFjdCc7XHJcbmltcG9ydCB7IGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC51dGlscyc7XHJcbmltcG9ydCB7IEdlb0RCU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL29mZmxpbmUvZ2VvREIvZ2VvREIuc2VydmljZSc7XHJcbmltcG9ydCB7IExheWVyREJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9sYXllckRCL2xheWVyREIuc2VydmljZSc7XHJcbmltcG9ydCB7IExheWVyT3B0aW9ucyB9IGZyb20gJy4vbGF5ZXIuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMYXllciB7XHJcbiAgcHVibGljIGNvbGxhcHNlZDogYm9vbGVhbjtcclxuICBwdWJsaWMgZGF0YVNvdXJjZTogRGF0YVNvdXJjZTtcclxuICBwdWJsaWMgbGVnZW5kOiBMZWdlbmRbXTtcclxuICBwdWJsaWMgbGVnZW5kQ29sbGFwc2VkOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgZmlyc3RMb2FkQ29tcG9uZW50OiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgbWFwOiBNYXBCYXNlO1xyXG4gIHB1YmxpYyBvbDogb2xMYXllcjxvbFNvdXJjZT47XHJcbiAgcHVibGljIG9sTG9hZGluZ1Byb2JsZW06IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc3RhdHVzJDogU3ViamVjdDxTdWJqZWN0U3RhdHVzPjtcclxuICBwdWJsaWMgaGFzQmVlblZpc2libGUkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KFxyXG4gICAgdW5kZWZpbmVkXHJcbiAgKTtcclxuICBwcml2YXRlIGhhc0JlZW5WaXNpYmxlJCQ6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHJlc29sdXRpb24kJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAvKipcclxuICAgKiBEZWZpbmUgaWYgYSBsYXllciBpcyBnZW5lcmF0ZWQgYnkgY29kZSBPUiBkZWZpbmVkIGJ5IGxheWVyL2NvbnRleHQgdXNlciBsYXllci5cclxuICAgKiBVc2VmdWwgZm9yIGZpbHRlcmluZyBsYXllcnMgbGlzdCBpbiBtYXBPZmZsaW5lLmRpcmVjdGl2ZSBvciBpbiB0aGUgc2hhcmVtYXAuLi5cclxuICAgKiByZXR1cm4gZmFsc2UgYnkgZGVmYXVsdC5cclxuICAgKi9cclxuICBnZXQgaXNJZ29JbnRlcm5hbExheWVyKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5pc0lnb0ludGVybmFsTGF5ZXIgfHwgZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXQgaWQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuaWQgfHwgdGhpcy5kYXRhU291cmNlLmlkO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFsaWFzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmFsaWFzO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLnRpdGxlO1xyXG4gIH1cclxuXHJcbiAgc2V0IHRpdGxlKHRpdGxlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMub3B0aW9ucy50aXRsZSA9IHRpdGxlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHpJbmRleCgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMub2wuZ2V0WkluZGV4KCk7XHJcbiAgfVxyXG5cclxuICBzZXQgekluZGV4KHpJbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLm9sLnNldFpJbmRleCh6SW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGJhc2VMYXllcigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYmFzZUxheWVyO1xyXG4gIH1cclxuXHJcbiAgc2V0IGJhc2VMYXllcihiYXNlTGF5ZXI6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMub3B0aW9ucy5iYXNlTGF5ZXIgPSBiYXNlTGF5ZXI7XHJcbiAgfVxyXG5cclxuICBnZXQgb3BhY2l0eSgpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMub2wuZ2V0KCdvcGFjaXR5Jyk7XHJcbiAgfVxyXG5cclxuICBzZXQgb3BhY2l0eShvcGFjaXR5OiBudW1iZXIpIHtcclxuICAgIHRoaXMub2wuc2V0T3BhY2l0eShvcGFjaXR5KTtcclxuICB9XHJcblxyXG4gIHNldCBpc0luUmVzb2x1dGlvbnNSYW5nZSh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZSQubmV4dCh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBpc0luUmVzb2x1dGlvbnNSYW5nZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzSW5SZXNvbHV0aW9uc1JhbmdlJC52YWx1ZTtcclxuICB9XHJcbiAgcmVhZG9ubHkgaXNJblJlc29sdXRpb25zUmFuZ2UkOiBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4gPVxyXG4gICAgbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XHJcblxyXG4gIHNldCBtYXhSZXNvbHV0aW9uKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHRoaXMub2wuc2V0TWF4UmVzb2x1dGlvbih2YWx1ZSA9PT0gMCA/IDAgOiB2YWx1ZSB8fCBJbmZpbml0eSk7XHJcbiAgICB0aGlzLnVwZGF0ZUluUmVzb2x1dGlvbnNSYW5nZSgpO1xyXG4gIH1cclxuICBnZXQgbWF4UmVzb2x1dGlvbigpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMub2wuZ2V0TWF4UmVzb2x1dGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0IG1pblJlc29sdXRpb24odmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5vbC5zZXRNaW5SZXNvbHV0aW9uKHZhbHVlIHx8IDApO1xyXG4gICAgdGhpcy51cGRhdGVJblJlc29sdXRpb25zUmFuZ2UoKTtcclxuICB9XHJcbiAgZ2V0IG1pblJlc29sdXRpb24oKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLm9sLmdldE1pblJlc29sdXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldCB2aXNpYmxlKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm9sLnNldFZpc2libGUodmFsdWUpO1xyXG4gICAgdGhpcy52aXNpYmxlJC5uZXh0KHZhbHVlKTtcclxuICAgIGlmICghdGhpcy5oYXNCZWVuVmlzaWJsZSQudmFsdWUgJiYgdmFsdWUpIHtcclxuICAgICAgdGhpcy5oYXNCZWVuVmlzaWJsZSQubmV4dCh2YWx1ZSk7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vcHRpb25zPy5tZXNzYWdlcyAmJiB2YWx1ZSkge1xyXG4gICAgICB0aGlzLm9wdGlvbnM/Lm1lc3NhZ2VzXHJcbiAgICAgICAgLmZpbHRlcigobSkgPT4gbS5vcHRpb25zPy5zaG93T25FYWNoTGF5ZXJWaXNpYmlsaXR5KVxyXG4gICAgICAgIC5tYXAoKG1lc3NhZ2UpID0+IHRoaXMuc2hvd01lc3NhZ2UobWVzc2FnZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnZpc2libGUkLnZhbHVlO1xyXG4gIH1cclxuICByZWFkb25seSB2aXNpYmxlJDogQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh1bmRlZmluZWQpO1xyXG5cclxuICBnZXQgZGlzcGxheWVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudmlzaWJsZSAmJiB0aGlzLmlzSW5SZXNvbHV0aW9uc1JhbmdlO1xyXG4gIH1cclxuICByZWFkb25seSBkaXNwbGF5ZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gY29tYmluZUxhdGVzdChbXHJcbiAgICB0aGlzLmlzSW5SZXNvbHV0aW9uc1JhbmdlJCxcclxuICAgIHRoaXMudmlzaWJsZSRcclxuICBdKS5waXBlKG1hcCgoYnVuY2g6IFtib29sZWFuLCBib29sZWFuXSkgPT4gYnVuY2hbMF0gJiYgYnVuY2hbMV0pKTtcclxuXHJcbiAgZ2V0IHNob3dJbkxheWVyTGlzdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc2hvd0luTGF5ZXJMaXN0ICE9PSBmYWxzZTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIG9wdGlvbnM6IExheWVyT3B0aW9ucyxcclxuICAgIHByb3RlY3RlZCBtZXNzYWdlU2VydmljZT86IE1lc3NhZ2VTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvcixcclxuICAgIHByb3RlY3RlZCBnZW9EQlNlcnZpY2U/OiBHZW9EQlNlcnZpY2UsXHJcbiAgICBwdWJsaWMgbGF5ZXJEQlNlcnZpY2U/OiBMYXllckRCU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlID0gb3B0aW9ucy5zb3VyY2U7XHJcblxyXG4gICAgdGhpcy5vbCA9IHRoaXMuY3JlYXRlT2xMYXllcigpO1xyXG4gICAgaWYgKG9wdGlvbnMuekluZGV4ICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy56SW5kZXggPSBvcHRpb25zLnpJbmRleDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAob3B0aW9ucy5iYXNlTGF5ZXIgJiYgb3B0aW9ucy52aXNpYmxlID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgb3B0aW9ucy52aXNpYmxlID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tYXhSZXNvbHV0aW9uID1cclxuICAgICAgb3B0aW9ucy5tYXhSZXNvbHV0aW9uIHx8XHJcbiAgICAgIGdldFJlc29sdXRpb25Gcm9tU2NhbGUoTnVtYmVyKG9wdGlvbnMubWF4U2NhbGVEZW5vbSkpO1xyXG4gICAgdGhpcy5taW5SZXNvbHV0aW9uID1cclxuICAgICAgb3B0aW9ucy5taW5SZXNvbHV0aW9uIHx8XHJcbiAgICAgIGdldFJlc29sdXRpb25Gcm9tU2NhbGUoTnVtYmVyKG9wdGlvbnMubWluU2NhbGVEZW5vbSkpO1xyXG5cclxuICAgIHRoaXMudmlzaWJsZSA9IG9wdGlvbnMudmlzaWJsZSA9PT0gdW5kZWZpbmVkID8gdHJ1ZSA6IG9wdGlvbnMudmlzaWJsZTtcclxuICAgIHRoaXMub3BhY2l0eSA9IG9wdGlvbnMub3BhY2l0eSA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMub3BhY2l0eTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIG9wdGlvbnMubGVnZW5kT3B0aW9ucyAmJlxyXG4gICAgICAob3B0aW9ucy5sZWdlbmRPcHRpb25zLnVybCB8fCBvcHRpb25zLmxlZ2VuZE9wdGlvbnMuaHRtbClcclxuICAgICkge1xyXG4gICAgICB0aGlzLmxlZ2VuZCA9IHRoaXMuZGF0YVNvdXJjZS5zZXRMZWdlbmQob3B0aW9ucy5sZWdlbmRPcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxlZ2VuZENvbGxhcHNlZCA9IG9wdGlvbnMubGVnZW5kT3B0aW9uc1xyXG4gICAgICA/IG9wdGlvbnMubGVnZW5kT3B0aW9ucy5jb2xsYXBzZWRcclxuICAgICAgICA/IG9wdGlvbnMubGVnZW5kT3B0aW9ucy5jb2xsYXBzZWRcclxuICAgICAgICA6IHRydWVcclxuICAgICAgOiB0cnVlO1xyXG5cclxuICAgIHRoaXMub2wuc2V0KCdfbGF5ZXInLCB0aGlzLCB0cnVlKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBjcmVhdGVPbExheWVyKCk6IG9sTGF5ZXI8b2xTb3VyY2U+O1xyXG5cclxuICBzZXRNYXAobWFwOiBNYXBCYXNlIHwgdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLm1hcCA9IG1hcDtcclxuXHJcbiAgICB0aGlzLnVub2JzZXJ2ZVJlc29sdXRpb24oKTtcclxuICAgIGlmIChtYXAgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLm9ic2VydmVSZXNvbHV0aW9uKCk7XHJcbiAgICAgIHRoaXMuaGFzQmVlblZpc2libGUkJCA9IHRoaXMuaGFzQmVlblZpc2libGUkLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5tZXNzYWdlcyAmJiB0aGlzLnZpc2libGUpIHtcclxuICAgICAgICAgIHRoaXMub3B0aW9ucy5tZXNzYWdlcy5tYXAoKG1lc3NhZ2UpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zaG93TWVzc2FnZShtZXNzYWdlKTtcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNob3dNZXNzYWdlKG1lc3NhZ2U6IE1lc3NhZ2UpIHtcclxuICAgIGlmICghdGhpcy5tZXNzYWdlU2VydmljZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBtZXNzYWdlLnRpdGxlID0gbWVzc2FnZS50aXRsZTtcclxuICAgIG1lc3NhZ2UudGV4dCA9IG1lc3NhZ2UudGV4dDtcclxuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UubWVzc2FnZShtZXNzYWdlIGFzIE1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvYnNlcnZlUmVzb2x1dGlvbigpIHtcclxuICAgIHRoaXMucmVzb2x1dGlvbiQkID0gdGhpcy5tYXAudmlld0NvbnRyb2xsZXIucmVzb2x1dGlvbiQuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgIHRoaXMudXBkYXRlSW5SZXNvbHV0aW9uc1JhbmdlKClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVub2JzZXJ2ZVJlc29sdXRpb24oKSB7XHJcbiAgICBpZiAodGhpcy5yZXNvbHV0aW9uJCQgIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLnJlc29sdXRpb24kJC51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLnJlc29sdXRpb24kJCA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlSW5SZXNvbHV0aW9uc1JhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMubWFwICE9PSB1bmRlZmluZWQpIHtcclxuICAgICAgY29uc3QgcmVzb2x1dGlvbiA9IHRoaXMubWFwLnZpZXdDb250cm9sbGVyLmdldFJlc29sdXRpb24oKTtcclxuICAgICAgY29uc3QgbWluUmVzb2x1dGlvbiA9IHRoaXMubWluUmVzb2x1dGlvbjtcclxuICAgICAgY29uc3QgbWF4UmVzb2x1dGlvbiA9XHJcbiAgICAgICAgdGhpcy5tYXhSZXNvbHV0aW9uID09PSB1bmRlZmluZWQgPyBJbmZpbml0eSA6IHRoaXMubWF4UmVzb2x1dGlvbjtcclxuICAgICAgdGhpcy5pc0luUmVzb2x1dGlvbnNSYW5nZSA9XHJcbiAgICAgICAgcmVzb2x1dGlvbiA+PSBtaW5SZXNvbHV0aW9uICYmIHJlc29sdXRpb24gPD0gbWF4UmVzb2x1dGlvbjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaXNJblJlc29sdXRpb25zUmFuZ2UgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVnZW5kLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvbGVnZW5kLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTWFwVmlld09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcC5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMZWdlbmRPcHRpb25zIHtcclxuICBjb2xsYXBzZWQ/OiBib29sZWFuO1xyXG4gIGRpc3BsYXk/OiBib29sZWFuO1xyXG4gIHVybD86IHN0cmluZztcclxuICBodG1sPzogc3RyaW5nO1xyXG4gIHN0eWxlc0F2YWlsYWJsZT86IEl0ZW1TdHlsZU9wdGlvbnNbXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMZWdlbmRNYXBWaWV3T3B0aW9ucyBleHRlbmRzIE1hcFZpZXdPcHRpb25zIHtcclxuICBzY2FsZT86IG51bWJlcjtcclxuICBzaXplPzogW251bWJlciwgbnVtYmVyXTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJdGVtU3R5bGVPcHRpb25zIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0TGF5ZXJMZWdlbmQge1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgdXJsOiBzdHJpbmc7XHJcbiAgZGlzcGxheTogYm9vbGVhbjtcclxuICBpc0luUmVzb2x1dGlvbnNSYW5nZTogYm9vbGVhbjtcclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL3RpbGUtbGF5ZXIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgb2xMYXllclRpbGUgZnJvbSAnb2wvbGF5ZXIvVGlsZSc7XHJcbmltcG9ydCBvbFNvdXJjZVRpbGUgZnJvbSAnb2wvc291cmNlL1RpbGUnO1xyXG5cclxuaW1wb3J0IHsgQ2FydG9EYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvY2FydG8tZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IENhcnRvRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jYXJ0by1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE9TTURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9vc20tZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IE9TTURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvb3NtLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvdGlsZWFyY2dpc3Jlc3QtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy90aWxlYXJjZ2lzcmVzdC1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRpbGVEZWJ1Z0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy90aWxlZGVidWctZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFRpbGVEZWJ1Z0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvdGlsZWRlYnVnLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV01UU0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXRzLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXTVRTRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXRzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3h5ei1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy94eXotZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBMYXllck9wdGlvbnMgfSBmcm9tICcuL2xheWVyLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFRpbGVMYXllck9wdGlvbnMgZXh0ZW5kcyBMYXllck9wdGlvbnMge1xyXG4gIHNvdXJjZT86XHJcbiAgICB8IE9TTURhdGFTb3VyY2VcclxuICAgIHwgV01UU0RhdGFTb3VyY2VcclxuICAgIHwgWFlaRGF0YVNvdXJjZVxyXG4gICAgfCBUaWxlRGVidWdEYXRhU291cmNlXHJcbiAgICB8IENhcnRvRGF0YVNvdXJjZVxyXG4gICAgfCBUaWxlQXJjR0lTUmVzdERhdGFTb3VyY2U7XHJcbiAgc291cmNlT3B0aW9ucz86XHJcbiAgICB8IE9TTURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICB8IFdNVFNEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgfCBYWVpEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgfCBUaWxlRGVidWdEYXRhU291cmNlT3B0aW9uc1xyXG4gICAgfCBDYXJ0b0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnM7XHJcbiAgb2w/OiBvbExheWVyVGlsZTxvbFNvdXJjZVRpbGU+O1xyXG59XHJcbiJdfQ==
|
|
@@ -47,4 +47,4 @@ export class TileLayer extends Layer {
|
|
|
47
47
|
super.setMap(map);
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlsZS1sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvdGlsZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLFdBQVcsTUFBTSxlQUFlLENBQUM7QUFVeEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFHaEMsTUFBTSxPQUFPLFNBQVUsU0FBUSxLQUFLO0lBZXpCO0lBQ0E7SUFMRCxPQUFPLENBQWM7SUFFN0IsWUFDRSxPQUF5QixFQUNsQixjQUErQixFQUMvQixlQUFpQztRQUV4QyxLQUFLLENBQUMsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBSHhCLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFJeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7U0FDL0IsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0MsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3pDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQVUsRUFBRSxHQUFXLEVBQUUsRUFBRTtZQUN6RCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsWUFBWSxDQUFDLElBQUksRUFBRSxHQUFXLEVBQUUsV0FBNEI7UUFDMUQsTUFBTSxxQkFBcUIsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbkUsSUFBSSxXQUFXLEdBQUcsR0FBRyxDQUFDO1FBQ3RCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztZQUMxQixXQUFXLEdBQUcscUJBQXFCLENBQUM7UUFDdEMsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxHQUFHLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBdUI7UUFDbkMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gJ0BpZ28yL2F1dGgnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IFRpbGUgZnJvbSAnb2wvVGlsZSc7XHJcbmltcG9ydCBvbExheWVyVGlsZSBmcm9tICdvbC9sYXllci9UaWxlJztcclxuaW1wb3J0IG9sU291cmNlVGlsZSBmcm9tICdvbC9zb3VyY2UvVGlsZSc7XHJcblxyXG5pbXBvcnQgeyBDYXJ0b0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jYXJ0by1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgT1NNRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL29zbS1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgVGlsZUFyY0dJU1Jlc3REYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvdGlsZWFyY2dpc3Jlc3QtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFRpbGVEZWJ1Z0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy90aWxlZGVidWctZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFdNVFNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd210cy1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgWFlaRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3h5ei1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgSWdvTWFwIH0gZnJvbSAnLi4vLi4vLi4vbWFwL3NoYXJlZC9tYXAnO1xyXG5pbXBvcnQgeyBUaWxlV2F0Y2hlciB9IGZyb20gJy4uLy4uL3V0aWxzL3RpbGUtd2F0Y2hlcic7XHJcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi9sYXllcic7XHJcbmltcG9ydCB7IFRpbGVMYXllck9wdGlvbnMgfSBmcm9tICcuL3RpbGUtbGF5ZXIuaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjbGFzcyBUaWxlTGF5ZXIgZXh0ZW5kcyBMYXllciB7XHJcbiAgcHVibGljIGRlY2xhcmUgZGF0YVNvdXJjZTpcclxuICAgIHwgT1NNRGF0YVNvdXJjZVxyXG4gICAgfCBXTVRTRGF0YVNvdXJjZVxyXG4gICAgfCBYWVpEYXRhU291cmNlXHJcbiAgICB8IFRpbGVEZWJ1Z0RhdGFTb3VyY2VcclxuICAgIHwgQ2FydG9EYXRhU291cmNlXHJcbiAgICB8IFRpbGVBcmNHSVNSZXN0RGF0YVNvdXJjZTtcclxuICBwdWJsaWMgZGVjbGFyZSBvcHRpb25zOiBUaWxlTGF5ZXJPcHRpb25zO1xyXG4gIHB1YmxpYyBkZWNsYXJlIG9sOiBvbExheWVyVGlsZTxvbFNvdXJjZVRpbGU+O1xyXG5cclxuICBwcml2YXRlIHdhdGNoZXI6IFRpbGVXYXRjaGVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG9wdGlvbnM6IFRpbGVMYXllck9wdGlvbnMsXHJcbiAgICBwdWJsaWMgbWVzc2FnZVNlcnZpY2U/OiBNZXNzYWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBhdXRoSW50ZXJjZXB0b3I/OiBBdXRoSW50ZXJjZXB0b3JcclxuICApIHtcclxuICAgIHN1cGVyKG9wdGlvbnMsIG1lc3NhZ2VTZXJ2aWNlKTtcclxuXHJcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgVGlsZVdhdGNoZXIodGhpcyk7XHJcbiAgICB0aGlzLnN0YXR1cyQgPSB0aGlzLndhdGNoZXIuc3RhdHVzJDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVPbExheWVyKCk6IG9sTGF5ZXJUaWxlPG9sU291cmNlVGlsZT4ge1xyXG4gICAgY29uc3Qgb2xPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XHJcbiAgICAgIHNvdXJjZTogdGhpcy5vcHRpb25zLnNvdXJjZS5vbFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCB0aWxlTGF5ZXIgPSBuZXcgb2xMYXllclRpbGUob2xPcHRpb25zKTtcclxuICAgIGNvbnN0IHRpbGVTb3VyY2UgPSB0aWxlTGF5ZXIuZ2V0U291cmNlKCk7XHJcbiAgICB0aWxlU291cmNlLnNldFRpbGVMb2FkRnVuY3Rpb24oKHRpbGU6IFRpbGUsIHVybDogc3RyaW5nKSA9PiB7XHJcbiAgICAgIHRoaXMuY3VzdG9tTG9hZGVyKHRpbGUsIHVybCwgdGhpcy5hdXRoSW50ZXJjZXB0b3IpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHRpbGVMYXllcjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEN1c3RvbSBsb2FkZXIgZm9yIHRpbGUgbGF5ZXIuXHJcbiAgICogQGludGVybmFsXHJcbiAgICogQHBhcmFtIHRpbGUgdGhlIGN1cnJlbnQgdGlsZVxyXG4gICAqIEBwYXJhbSB1cmwgdGhlIHVybCBzdHJpbmcgb3IgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcclxuICAgKi9cclxuICBjdXN0b21Mb2FkZXIodGlsZSwgdXJsOiBzdHJpbmcsIGludGVyY2VwdG9yOiBBdXRoSW50ZXJjZXB0b3IpIHtcclxuICAgIGNvbnN0IGFsdGVyZWRVcmxXaXRoS2V5QXV0aCA9IGludGVyY2VwdG9yLmFsdGVyVXJsV2l0aEtleUF1dGgodXJsKTtcclxuICAgIGxldCBtb2RpZmllZFVybCA9IHVybDtcclxuICAgIGlmIChhbHRlcmVkVXJsV2l0aEtleUF1dGgpIHtcclxuICAgICAgbW9kaWZpZWRVcmwgPSBhbHRlcmVkVXJsV2l0aEtleUF1dGg7XHJcbiAgICB9XHJcbiAgICB0aWxlLmdldEltYWdlKCkuc3JjID0gbW9kaWZpZWRVcmw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0TWFwKG1hcDogSWdvTWFwIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAobWFwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy53YXRjaGVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndhdGNoZXIuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgIH1cclxuICAgIHN1cGVyLnNldE1hcChtYXApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxheWVyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9yLWxheWVyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XHJcbmltcG9ydCAqIGFzIG9sQ29sb3IgZnJvbSAnb2wvY29sb3InO1xyXG5pbXBvcnQgdHlwZSB7IGRlZmF1bHQgYXMgT2xHZW9tZXRyeSB9IGZyb20gJ29sL2dlb20vR2VvbWV0cnknO1xyXG5pbXBvcnQgb2xMYXllclZlY3RvciBmcm9tICdvbC9sYXllci9WZWN0b3InO1xyXG5pbXBvcnQgUmVuZGVyRmVhdHVyZSBmcm9tICdvbC9yZW5kZXIvRmVhdHVyZSc7XHJcbmltcG9ydCBvbFNvdXJjZVZlY3RvciBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcclxuaW1wb3J0IG9sU3R5bGUgZnJvbSAnb2wvc3R5bGUvU3R5bGUnO1xyXG5cclxuaW1wb3J0IHsgQXJjR0lTUmVzdERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hcmNnaXNyZXN0LWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBBcmNHSVNSZXN0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hcmNnaXNyZXN0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgV2ViU29ja2V0RGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dlYnNvY2tldC1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgV2ViU29ja2V0RGF0YVNvdXJjZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZWJzb2NrZXQtZGF0YXNvdXJjZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBXRlNEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2ZzLWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBXRlNEYXRhU291cmNlT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dmcy1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IElnb1N0eWxlIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGUvc2hhcmVkL3ZlY3Rvci92ZWN0b3Itc3R5bGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQ2x1c3RlclBhcmFtIH0gZnJvbSAnLi4vY2x1c3RlclBhcmFtJztcclxuaW1wb3J0IHsgTGF5ZXJPcHRpb25zIH0gZnJvbSAnLi9sYXllci5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWZWN0b3JMYXllck9wdGlvbnMgZXh0ZW5kcyBMYXllck9wdGlvbnMge1xyXG4gIHNvdXJjZT86XHJcbiAgICB8IEZlYXR1cmVEYXRhU291cmNlXHJcbiAgICB8IFdGU0RhdGFTb3VyY2VcclxuICAgIHwgQXJjR0lTUmVzdERhdGFTb3VyY2VcclxuICAgIHwgV2ViU29ja2V0RGF0YVNvdXJjZVxyXG4gICAgfCBDbHVzdGVyRGF0YVNvdXJjZTtcclxuICBzb3VyY2VPcHRpb25zPzpcclxuICAgIHwgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zXHJcbiAgICB8IFdGU0RhdGFTb3VyY2VPcHRpb25zXHJcbiAgICB8IEFyY0dJU1Jlc3REYXRhU291cmNlT3B0aW9uc1xyXG4gICAgfCBXZWJTb2NrZXREYXRhU291cmNlT3B0aW9uc1xyXG4gICAgfCBDbHVzdGVyRGF0YVNvdXJjZU9wdGlvbnM7XHJcbiAgc3R5bGU/OlxyXG4gICAgfCBvbFN0eWxlXHJcbiAgICB8IG9sU3R5bGVbXVxyXG4gICAgfCAoKFxyXG4gICAgICAgIGFyZzA6IFJlbmRlckZlYXR1cmUgfCBGZWF0dXJlPGFueT4sXHJcbiAgICAgICAgYXJnMTogbnVtYmVyXHJcbiAgICAgICkgPT4gdm9pZCB8IG9sU3R5bGUgfCBvbFN0eWxlW10pO1xyXG4gIGJyb3dzYWJsZT86IGJvb2xlYW47XHJcbiAgZXhwb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgb2w/OiBvbExheWVyVmVjdG9yPG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+PjtcclxuICBhbmltYXRpb24/OiBWZWN0b3JBbmltYXRpb247XHJcbiAgY2x1c3RlclBhcmFtPzogQ2x1c3RlclBhcmFtO1xyXG4gIHRyYWNrRmVhdHVyZT86IHN0cmluZyB8IG51bWJlcjtcclxuICBpZGJJbmZvPzogSWRiSW5mbztcclxuICBpZ29TdHlsZT86IElnb1N0eWxlO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElkYkluZm8ge1xyXG4gIHN0b3JlVG9JZGI6IGJvb2xlYW47XHJcbiAgY29udGV4dFVyaTogc3RyaW5nO1xyXG4gIGZpcnN0TG9hZDogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBWZWN0b3JBbmltYXRpb24ge1xyXG4gIGR1cmF0aW9uPzogbnVtYmVyO1xyXG4gIGNvbG9yPzogb2xDb2xvci5Db2xvcjtcclxufVxyXG4iXX0=
|
|
@@ -570,4 +570,4 @@ export class VectorLayer extends Layer {
|
|
|
570
570
|
}
|
|
571
571
|
}
|
|
572
572
|
}
|
|
573
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBSzlGLE9BQU8sRUFDTCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ25CLE1BQU0sc0RBQXNELENBQUM7QUFLOUQsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBUTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxD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RUFBRSxFQUFFO2dCQUNyRSxJQUFJLE9BQU8sRUFBRTtvQkFDWCxNQUFNLE1BQU0sR0FBRyxZQUFZLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3hDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDOUIsSUFBSSxNQUFNLENBQUM7b0JBQ1gsSUFBSSxJQUFJLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxNQUFNLEVBQUU7d0JBQ3RDLE1BQU0sR0FBRyxPQUFPLENBQUM7cUJBQ2xCO3lCQUFNLElBQUksSUFBSSxLQUFLLEtBQUssRUFBRTt3QkFDekIsTUFBTSxHQUFHLE9BQU8sQ0FBQzt3QkFDakIsSUFBSSxDQUFDLE1BQU0sRUFBRTs0QkFDWCxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQ3RDLE9BQU8sRUFDUCxpQkFBaUIsQ0FDbEIsQ0FBQzt5QkFDSDtxQkFDRjt5QkFBTSxJQUFJLElBQUksS0FBSyxhQUFhLEVBQUU7d0JBQ2pDLE1BQU0sR0FBRyxPQUFPLENBQUM7cUJBQ2xCO29CQUNELElBQUksTUFBTSxFQUFFO3dCQUNWLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFOzRCQUMzQyxNQUFNOzRCQUNOLGlCQUFpQixFQUFFLFVBQVU7eUJBQzlCLENBQUMsQ0FBQzt3QkFDSCxZQUFZLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7d0JBQ2xFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDbkI7eUJBQU07d0JBQ0wsT0FBTyxFQUFFLENBQUM7cUJBQ1g7aUJBQ0Y7WUFDSCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXV0aEludGVyY2VwdG9yIH0gZnJvbSAnQGlnbzIvYXV0aCc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XG5cbmltcG9ydCBvbEZlYXR1cmUgZnJvbSAnb2wvRmVhdHVyZSc7XG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xuaW1wb3J0IHsgdW5CeUtleSB9IGZyb20gJ29sL09ic2VydmFibGUnO1xuaW1wb3J0IHsgYXNBcnJheSBhcyBDb2xvckFzQXJyYXkgfSBmcm9tICdvbC9jb2xvcic7XG5pbXBvcnQgeyBlYXNlT3V0IH0gZnJvbSAnb2wvZWFzaW5nJztcbmltcG9ydCBCYXNlRXZlbnQgZnJvbSAnb2wvZXZlbnRzL0V2ZW50JztcbmltcG9ydCB7IEV4dGVudCB9IGZyb20gJ29sL2V4dGVudCc7XG5pbXBvcnQgeyBGZWF0dXJlTG9hZGVyIH0gZnJvbSAnb2wvZmVhdHVyZWxvYWRlcic7XG5pbXBvcnQgKiBhcyBvbGZvcm1hdCBmcm9tICdvbC9mb3JtYXQnO1xuaW1wb3J0IHR5cGUgeyBkZWZhdWx0IGFzIE9sR2VvbWV0cnkgfSBmcm9tICdvbC9nZW9tL0dlb21ldHJ5JztcbmltcG9ydCBvbExheWVyVmVjdG9yIGZyb20gJ29sL2xheWVyL1ZlY3Rvcic7XG5pbXBvcnQgKiBhcyBvbHByb2ogZnJvbSAnb2wvcHJvaic7XG5pbXBvcnQgb2xQcm9qZWN0aW9uIGZyb20gJ29sL3Byb2ovUHJvamVjdGlvbic7XG5pbXBvcnQgeyBnZXRWZWN0b3JDb250ZXh0IH0gZnJvbSAnb2wvcmVuZGVyJztcbmltcG9ydCBvbFNvdXJjZVZlY3RvciBmcm9tICdvbC9zb3VyY2UvVmVjdG9yJztcblxuaW1wb3J0IHsgZnJvbUV2ZW50LCBvZiwgemlwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBjYXRjaEVycm9yLFxuICBjb25jYXRNYXAsXG4gIGRlYm91bmNlVGltZSxcbiAgZGVsYXksXG4gIGZpcnN0XG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXJjR0lTUmVzdERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hcmNnaXNyZXN0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgQ2x1c3RlckRhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9jbHVzdGVyLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9mZWF0dXJlLWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXZWJTb2NrZXREYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2Vic29ja2V0LWRhdGFzb3VyY2UnO1xuaW1wb3J0IHsgV0ZTRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL3dmcy1kYXRhc291cmNlJztcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gIGJ1aWxkVXJsLFxuICBkZWZhdWx0TWF4RmVhdHVyZXNcbn0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd21zLXdmcy51dGlscyc7XG5pbXBvcnQge1xuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMsXG4gIE9nY0ZpbHRlcnNPcHRpb25zXG59IGZyb20gJy4uLy4uLy4uL2ZpbHRlci9zaGFyZWQvb2djLWZpbHRlci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWdvTWFwLCBNYXBFeHRlbnQsIGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkJztcbmltcG9ydCB7IEluc2VydFNvdXJjZUluc2VydERCRW51bSB9IGZyb20gJy4uLy4uLy4uL29mZmxpbmUvZ2VvREIvZ2VvREIuZW51bXMnO1xuaW1wb3J0IHsgR2VvREJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9nZW9EQi9nZW9EQi5zZXJ2aWNlJztcbmltcG9ydCB7IExheWVyREJEYXRhIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9sYXllckRCL2xheWVyREIuaW50ZXJmYWNlJztcbmltcG9ydCB7IExheWVyREJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9sYXllckRCL2xheWVyREIuc2VydmljZSc7XG5pbXBvcnQge1xuICBHZW9OZXR3b3JrU2VydmljZSxcbiAgU2ltcGxlR2V0T3B0aW9uc1xufSBmcm9tICcuLi8uLi8uLi9vZmZsaW5lL3NoYXJlZC9nZW8tbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7IG9sU3R5bGVUb0Jhc2ljSWdvU3R5bGUgfSBmcm9tICcuLi8uLi8uLi9zdHlsZS9zaGFyZWQvdmVjdG9yL2NvbnZlcnNpb24udXRpbHMnO1xuaW1wb3J0IHsgVmVjdG9yV2F0Y2hlciB9IGZyb20gJy4uLy4uL3V0aWxzL3ZlY3Rvci13YXRjaGVyJztcbmltcG9ydCB7IExheWVyIH0gZnJvbSAnLi9sYXllcic7XG5pbXBvcnQgeyBWZWN0b3JMYXllck9wdGlvbnMgfSBmcm9tICcuL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgVmVjdG9yTGF5ZXIgZXh0ZW5kcyBMYXllciB7XG4gIHByaXZhdGUgcHJldmlvdXNMb2FkRXh0ZW50OiBFeHRlbnQ7XG4gIHByaXZhdGUgcHJldmlvdXNMb2FkUmVzb2x1dGlvbjogbnVtYmVyO1xuICBwcml2YXRlIHByZXZpb3VzT2djRmlsdGVyczogT2djRmlsdGVyc09wdGlvbnM7XG4gIHByaXZhdGUgeGhyQWNjdW11bGF0b3I6IFhNTEh0dHBSZXF1ZXN0W10gPSBbXTtcbiAgcHVibGljIGRlY2xhcmUgZGF0YVNvdXJjZTpcbiAgICB8IEZlYXR1cmVEYXRhU291cmNlXG4gICAgfCBXRlNEYXRhU291cmNlXG4gICAgfCBBcmNHSVNSZXN0RGF0YVNvdXJjZVxuICAgIHwgV2ViU29ja2V0RGF0YVNvdXJjZVxuICAgIHwgQ2x1c3RlckRhdGFTb3VyY2U7XG4gIHB1YmxpYyBkZWNsYXJlIG9wdGlvbnM6IFZlY3RvckxheWVyT3B0aW9ucztcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sTGF5ZXJWZWN0b3I8b2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT4+O1xuICBwcml2YXRlIHdhdGNoZXI6IFZlY3RvcldhdGNoZXI7XG4gIHByaXZhdGUgdHJhY2tGZWF0dXJlTGlzdGVuZXJJZDtcblxuICBnZXQgYnJvd3NhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuYnJvd3NhYmxlICE9PSBmYWxzZTtcbiAgfVxuXG4gIGdldCBleHBvcnRhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZXhwb3J0YWJsZSAhPT0gZmFsc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBvcHRpb25zOiBWZWN0b3JMYXllck9wdGlvbnMsXG4gICAgcHVibGljIG1lc3NhZ2VTZXJ2aWNlPzogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHVibGljIGF1dGhJbnRlcmNlcHRvcj86IEF1dGhJbnRlcmNlcHRvcixcbiAgICBwcml2YXRlIGdlb05ldHdvcmtTZXJ2aWNlPzogR2VvTmV0d29ya1NlcnZpY2UsXG4gICAgcHVibGljIGdlb0RCU2VydmljZT86IEdlb0RCU2VydmljZSxcbiAgICBwdWJsaWMgbGF5ZXJEQlNlcnZpY2U/OiBMYXllckRCU2VydmljZVxuICApIHtcbiAgICBzdXBlcihcbiAgICAgIG9wdGlvbnMsXG4gICAgICBtZXNzYWdlU2VydmljZSxcbiAgICAgIGF1dGhJbnRlcmNlcHRvcixcbiAgICAgIGdlb0RCU2VydmljZSxcbiAgICAgIGxheWVyREJTZXJ2aWNlXG4gICAgKTtcbiAgICB0aGlzLndhdGNoZXIgPSBuZXcgVmVjdG9yV2F0Y2hlcih0aGlzKTtcbiAgICB0aGlzLnN0YXR1cyQgPSB0aGlzLndhdGNoZXIuc3RhdHVzJDtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVPbExheWVyKCk6IG9sTGF5ZXJWZWN0b3I8b2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT4+IHtcbiAgICBjb25zdCBpbml0aWFsT3BhY2l0eVZhbHVlID0gdGhpcy5vcHRpb25zLm9wYWNpdHkgfHwgMTtcbiAgICBjb25zdCBpbml0aWFsVmlzaWJsZVZhbHVlID0gdGhpcy5vcHRpb25zLnZpc2libGUgIT09IGZhbHNlO1xuICAgIGNvbnN0IGluaXRpYWxNaW5SZXNWYWx1ZSA9XG4gICAgICB0aGlzLm9wdGlvbnMubWluUmVzb2x1dGlvbiB8fFxuICAgICAgZ2V0UmVzb2x1dGlvbkZyb21TY2FsZShOdW1iZXIodGhpcy5vcHRpb25zLm1pblNjYWxlRGVub20pKTtcbiAgICBjb25zdCBpbml0aWFsTWF4UmVzVmFsdWUgPVxuICAgICAgdGhpcy5vcHRpb25zLm1heFJlc29sdXRpb24gfHxcbiAgICAgIGdldFJlc29sdXRpb25Gcm9tU2NhbGUoTnVtYmVyKHRoaXMub3B0aW9ucy5tYXhTY2FsZURlbm9tKSk7XG4gICAgY29uc3Qgc28gPSB0aGlzLm9wdGlvbnMuc291cmNlT3B0aW9ucyBhcyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnM7XG4gICAgaWYgKHRoaXMuZGF0YVNvdXJjZSBpbnN0YW5jZW9mIEZlYXR1cmVEYXRhU291cmNlKSB7XG4gICAgICBpZiAoc28/LnByZWxvYWQ/LmJ5cGFzc1Jlc29sdXRpb24gfHwgc28/LnByZWxvYWQ/LmJ5cGFzc1Zpc2libGUpIHtcbiAgICAgICAgdGhpcy5vcHRpb25zLm9wYWNpdHkgPSAwO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgc28ucHJlbG9hZC5ieXBhc3NSZXNvbHV0aW9uICYmXG4gICAgICAgICAgKHRoaXMub3B0aW9ucy5taW5SZXNvbHV0aW9uIHx8IHRoaXMub3B0aW9ucy5tYXhSZXNvbHV0aW9uKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm9wdGlvbnMubWluUmVzb2x1dGlvbiA9IDA7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLm1heFJlc29sdXRpb24gPSBJbmZpbml0eTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc28ucHJlbG9hZC5ieXBhc3NWaXNpYmxlICYmICFpbml0aWFsVmlzaWJsZVZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5vcHRpb25zLnZpc2libGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb2xPcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zLCB7XG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5zb3VyY2Uub2wgYXMgb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT4sXG4gICAgICBzb3VyY2VPcHRpb25zOiB0aGlzLm9wdGlvbnMuc291cmNlT3B0aW9ucyB8fCB0aGlzLm9wdGlvbnMuc291cmNlLm9wdGlvbnNcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uKSB7XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub24oXG4gICAgICAgICdhZGRmZWF0dXJlJyxcbiAgICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICB0aGlzLmZsYXNoKGUuZmVhdHVyZSk7XG4gICAgICAgIH0uYmluZCh0aGlzKVxuICAgICAgKTtcbiAgICB9XG4gICAgaWYgKHRoaXMub3B0aW9ucy5pZGJJbmZvPy5zdG9yZVRvSWRiICYmIHRoaXMuZ2VvREJTZXJ2aWNlKSB7XG4gICAgICBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8uZmlyc3RMb2FkKSB7XG4gICAgICAgIHRoaXMubWFpbnRhaW5GZWF0dXJlc0luSWRiKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub25jZSgnZmVhdHVyZXNsb2FkZW5kJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub24oJ2FkZGZlYXR1cmUnLCAoKSA9PiB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKCdjaGFuZ2VmZWF0dXJlJywgKCkgPT5cbiAgICAgICAgICB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5vbC5vbignY2xlYXInLCAoKSA9PiB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpKTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKCdyZW1vdmVmZWF0dXJlJywgKCkgPT5cbiAgICAgICAgICB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB0aGlzLmRhdGFTb3VyY2UgaW5zdGFuY2VvZiBGZWF0dXJlRGF0YVNvdXJjZSAmJlxuICAgICAgKHNvPy5wcmVsb2FkPy5ieXBhc3NSZXNvbHV0aW9uIHx8IHNvPy5wcmVsb2FkPy5ieXBhc3NWaXNpYmxlKVxuICAgICkge1xuICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uY2UoJ2ZlYXR1cmVzbG9hZGVuZCcsICgpID0+IHtcbiAgICAgICAgaWYgKGluaXRpYWxPcGFjaXR5VmFsdWUpIHtcbiAgICAgICAgICB0aGlzLm9wYWNpdHkgPSBpbml0aWFsT3BhY2l0eVZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzby5wcmVsb2FkLmJ5cGFzc1Jlc29sdXRpb24pIHtcbiAgICAgICAgICB0aGlzLm1pblJlc29sdXRpb24gPSBpbml0aWFsTWluUmVzVmFsdWU7XG4gICAgICAgICAgdGhpcy5tYXhSZXNvbHV0aW9uID0gaW5pdGlhbE1heFJlc1ZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzby5wcmVsb2FkLmJ5cGFzc1Zpc2libGUpIHtcbiAgICAgICAgICB0aGlzLnZpc2libGUgPSBpbml0aWFsVmlzaWJsZVZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnRyYWNrRmVhdHVyZSkge1xuICAgICAgdGhpcy5lbmFibGVUcmFja0ZlYXR1cmUodGhpcy5vcHRpb25zLnRyYWNrRmVhdHVyZSk7XG4gICAgfVxuXG4gICAgY29uc3QgdmVjdG9yID0gbmV3IG9sTGF5ZXJWZWN0b3Iob2xPcHRpb25zKTtcbiAgICBjb25zdCB2ZWN0b3JTb3VyY2UgPSB2ZWN0b3IuZ2V0U291cmNlKCkgYXMgb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT47XG4gICAgY29uc3QgdXJsID0gdmVjdG9yU291cmNlLmdldFVybCgpO1xuICAgIGlmICh0eXBlb2YgdXJsID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdmVjdG9yO1xuICAgIH1cbiAgICBpZiAodXJsIHx8IG9sT3B0aW9ucy5zb3VyY2VPcHRpb25zPy50eXBlID09PSAnd2ZzJykge1xuICAgICAgbGV0IGxvYWRlcjogRmVhdHVyZUxvYWRlcjtcbiAgICAgIGNvbnN0IHdmc09wdGlvbnMgPSBvbE9wdGlvbnMuc291cmNlT3B0aW9ucyBhcyBXRlNEYXRhU291cmNlT3B0aW9ucztcbiAgICAgIGlmIChcbiAgICAgICAgd2ZzT3B0aW9ucz8udHlwZSA9PT0gJ3dmcycgJiZcbiAgICAgICAgKHdmc09wdGlvbnMucGFyYW1zIHx8IHdmc09wdGlvbnMucGFyYW1zV0ZTKVxuICAgICAgKSB7XG4gICAgICAgIGxvYWRlciA9IChleHRlbnQsIHJlc29sdXRpb24sIHByb2osIHN1Y2Nlc3MsIGZhaWx1cmUpID0+IHtcbiAgICAgICAgICB0aGlzLmN1c3RvbVdGU0xvYWRlcihcbiAgICAgICAgICAgIHZlY3RvclNvdXJjZSxcbiAgICAgICAgICAgIHdmc09wdGlvbnMsXG4gICAgICAgICAgICB0aGlzLmF1dGhJbnRlcmNlcHRvcixcbiAgICAgICAgICAgIGV4dGVudCxcbiAgICAgICAgICAgIHJlc29sdXRpb24sXG4gICAgICAgICAgICBwcm9qLFxuICAgICAgICAgICAgc3VjY2VzcyxcbiAgICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgICApO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9hZGVyID0gKGV4dGVudCwgcmVzb2x1dGlvbiwgcHJvaiwgc3VjY2VzcywgZmFpbHVyZSkgPT4ge1xuICAgICAgICAgIHRoaXMuY3VzdG9tTG9hZGVyKFxuICAgICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3IsXG4gICAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgICByZXNvbHV0aW9uLFxuICAgICAgICAgICAgcHJvaixcbiAgICAgICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgICAgICBmYWlsdXJlXG4gICAgICAgICAgKTtcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICAgIGlmIChsb2FkZXIpIHtcbiAgICAgICAgdmVjdG9yU291cmNlLnNldExvYWRlcihsb2FkZXIpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGIgJiYgdGhpcy5nZW9EQlNlcnZpY2UpIHtcbiAgICAgIGNvbnN0IGlkYkxvYWRlciA9IChleHRlbnQsIHJlc29sdXRpb24sIHByb2osIHN1Y2Nlc3MsIGZhaWx1cmUpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21JREJMb2FkZXIoXG4gICAgICAgICAgdmVjdG9yU291cmNlLFxuICAgICAgICAgIG9sT3B0aW9ucy5pZCxcbiAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgcHJvaixcbiAgICAgICAgICBzdWNjZXNzLFxuICAgICAgICAgIGZhaWx1cmVcbiAgICAgICAgKTtcbiAgICAgIH07XG4gICAgICBpZiAoaWRiTG9hZGVyKSB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5zZXRMb2FkZXIoaWRiTG9hZGVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGIgJiYgdGhpcy5nZW9EQlNlcnZpY2UpIHtcbiAgICAgIHZlY3Rvci5vbmNlKCdzb3VyY2VyZWFkeScsICgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucy5pZGJJbmZvLmZpcnN0TG9hZCkge1xuICAgICAgICAgIHRoaXMubWFpbnRhaW5PcHRpb25zSW5JZGIoKTtcbiAgICAgICAgfVxuICAgICAgICBmcm9tRXZlbnQ8QmFzZUV2ZW50Pih2ZWN0b3IsICdjaGFuZ2UnKVxuICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5tYWludGFpbk9wdGlvbnNJbklkYigpKTtcbiAgICAgICAgdmVjdG9yLm9uKCdjaGFuZ2U6ekluZGV4JywgKCkgPT4gdGhpcy5tYWludGFpbk9wdGlvbnNJbklkYigpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gdmVjdG9yO1xuICB9XG5cbiAgcmVtb3ZlTGF5ZXJGcm9tSURCKCkge1xuICAgIGlmICh0aGlzLmdlb0RCU2VydmljZSAmJiB0aGlzLmxheWVyREJTZXJ2aWNlKSB7XG4gICAgICB6aXAoXG4gICAgICAgIHRoaXMuZ2VvREJTZXJ2aWNlLmRlbGV0ZUJ5S2V5KHRoaXMuaWQpLFxuICAgICAgICB0aGlzLmxheWVyREJTZXJ2aWNlLmRlbGV0ZUJ5S2V5KHRoaXMuaWQpXG4gICAgICApLnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbWFpbnRhaW5PcHRpb25zSW5JZGIoKSB7XG4gICAgdGhpcy5vcHRpb25zLmlnb1N0eWxlLmlnb1N0eWxlT2JqZWN0ID0gb2xTdHlsZVRvQmFzaWNJZ29TdHlsZSh0aGlzLm9sKTtcbiAgICBjb25zdCBsYXllckRhdGE6IExheWVyREJEYXRhID0gT2JqZWN0VXRpbHMucmVtb3ZlVW5kZWZpbmVkKHtcbiAgICAgIGxheWVySWQ6IHRoaXMuaWQsXG4gICAgICBkZXRhaWxlZENvbnRleHRVcmk6IHRoaXMub3B0aW9ucy5pZGJJbmZvLmNvbnRleHRVcmksXG4gICAgICBzb3VyY2VPcHRpb25zOiB7XG4gICAgICAgIGlkOiB0aGlzLmlkLFxuICAgICAgICB0eXBlOiAndmVjdG9yJyxcbiAgICAgICAgcXVlcnlhYmxlOiB0cnVlXG4gICAgICB9LFxuICAgICAgbGF5ZXJPcHRpb25zOiB7XG4gICAgICAgIHdvcmtzcGFjZTogdGhpcy5vcHRpb25zLndvcmtzcGFjZSxcbiAgICAgICAgekluZGV4OiB0aGlzLm9sID8gdGhpcy56SW5kZXggOiAxMDAwMDAwLFxuICAgICAgICBpZDogdGhpcy5pZCxcbiAgICAgICAgaXNJZ29JbnRlcm5hbExheWVyOiB0aGlzLmlzSWdvSW50ZXJuYWxMYXllcixcbiAgICAgICAgdGl0bGU6IHRoaXMudGl0bGUsXG4gICAgICAgIGlnb1N0eWxlOiB0aGlzLm9wdGlvbnMuaWdvU3R5bGUsXG4gICAgICAgIGlkYkluZm86IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucy5pZGJJbmZvLCB7IGZpcnN0TG9hZDogZmFsc2UgfSlcbiAgICAgIH0sXG4gICAgICBpbnNlcnRFdmVudDogYCR7dGhpcy50aXRsZX0tJHt0aGlzLmlkfS0ke25ldyBEYXRlKCl9YFxuICAgIH0pO1xuICAgIHRoaXMubGF5ZXJEQlNlcnZpY2UudXBkYXRlKGxheWVyRGF0YSk7XG4gIH1cblxuICBwcml2YXRlIG1haW50YWluRmVhdHVyZXNJbklkYigpIHtcbiAgICBjb25zdCBkc0ZlYXR1cmVzID0gdGhpcy5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVzKCk7XG4gICAgY29uc3QgZ2VvanNvbk9iamVjdCA9IEpTT04ucGFyc2UoXG4gICAgICBuZXcgb2xmb3JtYXQuR2VvSlNPTigpLndyaXRlRmVhdHVyZXMoZHNGZWF0dXJlcywge1xuICAgICAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXG4gICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiB0aGlzLmRhdGFTb3VyY2Uub2wuZ2V0UHJvamVjdGlvbigpIHx8ICdFUFNHOjM4NTcnXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5nZW9EQlNlcnZpY2UudXBkYXRlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMuaWQsXG4gICAgICBnZW9qc29uT2JqZWN0LFxuICAgICAgSW5zZXJ0U291cmNlSW5zZXJ0REJFbnVtLlVzZXIsXG4gICAgICBgJHt0aGlzLnRpdGxlfS0ke3RoaXMuaWR9LSR7bmV3IERhdGUoKX1gXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBmbGFzaChmZWF0dXJlKSB7XG4gICAgY29uc3Qgc3RhcnQgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBsaXN0ZW5lcktleSA9IHRoaXMub2wub24oJ3Bvc3RyZW5kZXInLCBhbmltYXRlLmJpbmQodGhpcykpO1xuXG4gICAgZnVuY3Rpb24gYW5pbWF0ZShldmVudCkge1xuICAgICAgY29uc3QgdmVjdG9yQ29udGV4dCA9IGdldFZlY3RvckNvbnRleHQoZXZlbnQpO1xuICAgICAgY29uc3QgZnJhbWVTdGF0ZSA9IGV2ZW50LmZyYW1lU3RhdGU7XG4gICAgICBjb25zdCBmbGFzaEdlb20gPSBmZWF0dXJlLmdldEdlb21ldHJ5KCkuY2xvbmUoKTtcbiAgICAgIGNvbnN0IGVsYXBzZWQgPSBmcmFtZVN0YXRlLnRpbWUgLSBzdGFydDtcbiAgICAgIGNvbnN0IGVsYXBzZWRSYXRpbyA9IGVsYXBzZWQgLyB0aGlzLm9wdGlvbnMuYW5pbWF0aW9uLmR1cmF0aW9uO1xuICAgICAgY29uc3Qgb3BhY2l0eSA9IGVhc2VPdXQoMSAtIGVsYXBzZWRSYXRpbyk7XG4gICAgICBjb25zdCBuZXdDb2xvciA9IENvbG9yQXNBcnJheSh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uLmNvbG9yIHx8ICdyZWQnKTtcbiAgICAgIG5ld0NvbG9yWzNdID0gb3BhY2l0eTtcbiAgICAgIGxldCBzdHlsZSA9IHRoaXMub2xcbiAgICAgICAgLmdldFN0eWxlRnVuY3Rpb24oKVxuICAgICAgICAuY2FsbCh0aGlzLCBmZWF0dXJlKVxuICAgICAgICAuZmluZCgoc3R5bGUyKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHN0eWxlMi5nZXRJbWFnZSgpO1xuICAgICAgICB9KTtcbiAgICAgIGlmICghc3R5bGUpIHtcbiAgICAgICAgc3R5bGUgPSB0aGlzLm9sLmdldFN0eWxlRnVuY3Rpb24oKS5jYWxsKHRoaXMsIGZlYXR1cmUpWzBdO1xuICAgICAgfVxuICAgICAgY29uc3Qgc3R5bGVDbG9uZSA9IHN0eWxlLmNsb25lKCk7XG5cbiAgICAgIHN3aXRjaCAoZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmdldFR5cGUoKSkge1xuICAgICAgICBjYXNlICdQb2ludCc6XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpICE9PSBudWxsICYmXG4gICAgICAgICAgICB0eXBlb2Ygc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldFJhZGl1cyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgcmFkaXVzID1cbiAgICAgICAgICAgICAgZWFzZU91dChlbGFwc2VkUmF0aW8pICogKHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKS5nZXRSYWRpdXMoKSAqIDMpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLnNldFJhZGl1cyhyYWRpdXMpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLnNldE9wYWNpdHkob3BhY2l0eSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0xpbmVTdHJpbmcnOlxuICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICBpZiAoc3R5bGVDbG9uZS5nZXRJbWFnZSgpKSB7XG4gICAgICAgICAgICBzdHlsZUNsb25lLmdldEltYWdlKCkuZ2V0U3Ryb2tlKCkuc2V0Q29sb3IobmV3Q29sb3IpO1xuICAgICAgICAgICAgc3R5bGVDbG9uZVxuICAgICAgICAgICAgICAuZ2V0SW1hZ2UoKVxuICAgICAgICAgICAgICAuZ2V0U3Ryb2tlKClcbiAgICAgICAgICAgICAgLnNldFdpZHRoKFxuICAgICAgICAgICAgICAgIGVhc2VPdXQoZWxhcHNlZFJhdGlvKSAqXG4gICAgICAgICAgICAgICAgICAoc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldFN0cm9rZSgpLmdldFdpZHRoKCkgKiAzKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoc3R5bGVDbG9uZS5nZXRTdHJva2UoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRTdHJva2UoKS5zZXRDb2xvcihuZXdDb2xvcik7XG4gICAgICAgICAgICBzdHlsZUNsb25lXG4gICAgICAgICAgICAgIC5nZXRTdHJva2UoKVxuICAgICAgICAgICAgICAuc2V0V2lkdGgoXG4gICAgICAgICAgICAgICAgZWFzZU91dChlbGFwc2VkUmF0aW8pICogKHN0eWxlQ2xvbmUuZ2V0U3Ryb2tlKCkuZ2V0V2lkdGgoKSAqIDMpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdQb2x5Z29uJzpcbiAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgaWYgKHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldEZpbGwoKS5zZXRDb2xvcihuZXdDb2xvcik7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzdHlsZUNsb25lLmdldEZpbGwoKSkge1xuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRGaWxsKCkuc2V0Q29sb3IobmV3Q29sb3IpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cblxuICAgICAgc3R5bGVDbG9uZS5zZXRUZXh0KCcnKTtcbiAgICAgIHZlY3RvckNvbnRleHQuc2V0U3R5bGUoc3R5bGVDbG9uZSk7XG4gICAgICB2ZWN0b3JDb250ZXh0LmRyYXdHZW9tZXRyeShmbGFzaEdlb20pO1xuXG4gICAgICBpZiAoZWxhcHNlZCA+IHRoaXMub3B0aW9ucy5hbmltYXRpb24uZHVyYXRpb24pIHtcbiAgICAgICAgdW5CeUtleShsaXN0ZW5lcktleSk7XG4gICAgICAgIC8vIHJlbW92ZSBsYXN0IGdlb21ldHJ5XG4gICAgICAgIC8vIHRoZXJlIGlzIGEgbGl0dGxlIGZsYXNoIGJlZm9yZSBmZWF0dXJlIGRpc2FwcGVhciwgYmV0dGVyIHNvbHV0aW9uID9cbiAgICAgICAgdGhpcy5tYXAub2wucmVuZGVyKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIC8vIHRlbGwgT3BlbkxheWVycyB0byBjb250aW51ZSBwb3N0Y29tcG9zZSBhbmltYXRpb25cbiAgICAgIHRoaXMubWFwLm9sLnJlbmRlcigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXRNYXAobWFwOiBJZ29NYXAgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAobWFwID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMud2F0Y2hlci51bnN1YnNjcmliZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLndhdGNoZXIuc3Vic2NyaWJlKCgpID0+IHt9KTtcbiAgICB9XG4gICAgc3VwZXIuc2V0TWFwKG1hcCk7XG4gIH1cblxuICBwdWJsaWMgc2V0RXh0ZW50KGV4dGVudDogTWFwRXh0ZW50KTogdm9pZCB7XG4gICAgdGhpcy5vcHRpb25zLmV4dGVudCA9IGV4dGVudDtcbiAgfVxuXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLm9uVW53YXRjaCgpO1xuICAgIHRoaXMuc3RvcEFuaW1hdGlvbigpO1xuICB9XG5cbiAgcHVibGljIHN0b3BBbmltYXRpb24oKSB7XG4gICAgdGhpcy5kYXRhU291cmNlLm9sLnVuKFxuICAgICAgJ2FkZGZlYXR1cmUnLFxuICAgICAgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xuICAgICAgICAgIHRoaXMuZmxhc2goZS5mZWF0dXJlKTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmFibGVUcmFja0ZlYXR1cmUoaWQ6IHN0cmluZyB8IG51bWJlcikge1xuICAgIHRoaXMudHJhY2tGZWF0dXJlTGlzdGVuZXJJZCA9IHRoaXMuZGF0YVNvdXJjZS5vbC5vbihcbiAgICAgICdhZGRmZWF0dXJlJyxcbiAgICAgIHRoaXMudHJhY2tGZWF0dXJlLmJpbmQodGhpcywgaWQpXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgY2VudGVyTWFwT25GZWF0dXJlKGlkOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBjb25zdCBmZWF0ID0gdGhpcy5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVCeUlkKGlkKTtcbiAgICBpZiAoZmVhdCkge1xuICAgICAgdGhpcy5tYXAub2xcbiAgICAgICAgLmdldFZpZXcoKVxuICAgICAgICAuc2V0Q2VudGVyKChmZWF0LmdldEdlb21ldHJ5KCkgYXMgYW55KS5nZXRDb29yZGluYXRlcygpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJhY2tGZWF0dXJlKGlkLCBmZWF0KSB7XG4gICAgaWYgKGZlYXQuZmVhdHVyZS5nZXRJZCgpID09PSBpZCAmJiB0aGlzLnZpc2libGUpIHtcbiAgICAgIHRoaXMuY2VudGVyTWFwT25GZWF0dXJlKGlkKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGlzYWJsZVRyYWNrRmVhdHVyZShpZD86IHN0cmluZyB8IG51bWJlcikge1xuICAgIHVuQnlLZXkodGhpcy50cmFja0ZlYXR1cmVMaXN0ZW5lcklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gbG9hZGVyIGZvciBhIFdGUyBkYXRhc291cmNlXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gdmVjdG9yU291cmNlIHRoZSB2ZWN0b3Igc291cmNlIHRvIGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIG9wdGlvbnMgb2xPcHRpb25zIGZyb20gc291cmNlXG4gICAqIEBwYXJhbSBpbnRlcmNlcHRvciB0aGUgaW50ZXJjZXB0b3Igb2YgdGhlIGRhdGFcbiAgICogQHBhcmFtIGV4dGVudCB0aGUgZXh0ZW50IG9mIHRoZSByZXF1ZXN0ZWQgZGF0YVxuICAgKiBAcGFyYW0gcmVzb2x1dGlvbiB0aGUgY3VycmVudCByZXNvbHV0aW9uXG4gICAqIEBwYXJhbSBwcm9qIHRoZSBwcm9qZWN0aW9uIHRvIHJldHJpZXZlIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBzdWNjZXNzIHN1Y2Nlc3MgY2FsbGJhY2tcbiAgICogQHBhcmFtIGZhaWx1cmUgZmFpbHVyZSBjYWxsYmFja1xuICAgKiBAcGFyYW0gcmFuZG9tUGFyYW0gcmFuZG9tIHBhcmFtZXRlciB0byBlbnN1cmUgY2FjaGUgaXMgbm90IGNhdXNpbmcgcHJvYmxlbXMgaW4gcmV0cmlldmluZyBuZXcgZGF0YVxuICAgKi9cbiAgcHVibGljIGN1c3RvbVdGU0xvYWRlcihcbiAgICB2ZWN0b3JTb3VyY2U6IG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+LFxuICAgIG9wdGlvbnM6IFdGU0RhdGFTb3VyY2VPcHRpb25zLFxuICAgIGludGVyY2VwdG9yOiBBdXRoSW50ZXJjZXB0b3IsXG4gICAgZXh0ZW50OiBFeHRlbnQsXG4gICAgcmVzb2x1dGlvbjogbnVtYmVyLFxuICAgIHByb2o6IG9sUHJvamVjdGlvbixcbiAgICBzdWNjZXNzOiAoZmVhdHVyZXM6IG9sRmVhdHVyZTxPbEdlb21ldHJ5PltdKSA9PiB2b2lkLFxuICAgIGZhaWx1cmU6ICgpID0+IHZvaWQsXG4gICAgcmFuZG9tUGFyYW0/OiBib29sZWFuXG4gICkge1xuICAgIHtcbiAgICAgIGNvbnN0IHBhcmFtc1dGUyA9IG9wdGlvbnMucGFyYW1zV0ZTO1xuICAgICAgY29uc3Qgd2ZzUHJvaiA9IHBhcmFtc1dGUy5zcnNOYW1lXG4gICAgICAgID8gbmV3IG9sUHJvamVjdGlvbih7IGNvZGU6IHBhcmFtc1dGUy5zcnNOYW1lIH0pXG4gICAgICAgIDogcHJvajtcbiAgICAgIGNvbnN0IGN1cnJlbnRFeHRlbnQgPSBvbHByb2oudHJhbnNmb3JtRXh0ZW50KGV4dGVudCwgcHJvaiwgd2ZzUHJvaik7XG4gICAgICBjb25zdCBvZ2NGaWx0ZXJzID0gKG9wdGlvbnMgYXMgT2djRmlsdGVyYWJsZURhdGFTb3VyY2VPcHRpb25zKS5vZ2NGaWx0ZXJzO1xuXG4gICAgICBpZiAoXG4gICAgICAgICh0aGlzLnByZXZpb3VzTG9hZEV4dGVudCAmJlxuICAgICAgICAgIHRoaXMucHJldmlvdXNMb2FkRXh0ZW50ICE9PSBjdXJyZW50RXh0ZW50KSB8fFxuICAgICAgICAodGhpcy5wcmV2aW91c0xvYWRSZXNvbHV0aW9uICYmXG4gICAgICAgICAgdGhpcy5wcmV2aW91c0xvYWRSZXNvbHV0aW9uICE9PSByZXNvbHV0aW9uKSB8fFxuICAgICAgICAodGhpcy5wcmV2aW91c09nY0ZpbHRlcnMgJiYgdGhpcy5wcmV2aW91c09nY0ZpbHRlcnMgIT09IG9nY0ZpbHRlcnMpXG4gICAgICApIHtcbiAgICAgICAgdmVjdG9yU291cmNlLnJlbW92ZUxvYWRlZEV4dGVudCh0aGlzLnByZXZpb3VzTG9hZEV4dGVudCk7XG4gICAgICAgIGZvciAobGV0IHhociBvZiB0aGlzLnhockFjY3VtdWxhdG9yKSB7XG4gICAgICAgICAgeGhyLmFib3J0KCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5wcmV2aW91c0xvYWRFeHRlbnQgPSBjdXJyZW50RXh0ZW50O1xuICAgICAgdGhpcy5wcmV2aW91c0xvYWRSZXNvbHV0aW9uID0gcmVzb2x1dGlvbjtcbiAgICAgIHRoaXMucHJldmlvdXNPZ2NGaWx0ZXJzID0gb2djRmlsdGVycztcblxuICAgICAgcGFyYW1zV0ZTLnNyc05hbWUgPSBwYXJhbXNXRlMuc3JzTmFtZSB8fCBwcm9qLmdldENvZGUoKTtcbiAgICAgIGNvbnN0IHVybCA9IGJ1aWxkVXJsKFxuICAgICAgICBvcHRpb25zLFxuICAgICAgICBjdXJyZW50RXh0ZW50LFxuICAgICAgICB3ZnNQcm9qLFxuICAgICAgICBvZ2NGaWx0ZXJzLFxuICAgICAgICByYW5kb21QYXJhbVxuICAgICAgKTtcbiAgICAgIGxldCBzdGFydEluZGV4ID0gMDtcbiAgICAgIGlmIChcbiAgICAgICAgcGFyYW1zV0ZTLnZlcnNpb24gPT09ICcyLjAuMCcgJiZcbiAgICAgICAgcGFyYW1zV0ZTLm1heEZlYXR1cmVzID4gZGVmYXVsdE1heEZlYXR1cmVzXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgbmJPZkZlYXR1cmUgPSAxMDAwO1xuICAgICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IHBhcmFtc1dGUy5tYXhGZWF0dXJlcykge1xuICAgICAgICAgIGxldCBhbHRlcmVkVXJsID0gdXJsLnJlcGxhY2UoXG4gICAgICAgICAgICAnY291bnQ9JyArIHBhcmFtc1dGUy5tYXhGZWF0dXJlcyxcbiAgICAgICAgICAgICdjb3VudD0nICsgbmJPZkZlYXR1cmVcbiAgICAgICAgICApO1xuICAgICAgICAgIGFsdGVyZWRVcmwgPSBhbHRlcmVkVXJsLnJlcGxhY2UoJ3N0YXJ0SW5kZXg9MCcsICcwJyk7XG4gICAgICAgICAgYWx0ZXJlZFVybCArPSAnJnN0YXJ0SW5kZXg9JyArIHN0YXJ0SW5kZXg7XG4gICAgICAgICAgYWx0ZXJlZFVybC5yZXBsYWNlKC8mJi9nLCAnJicpO1xuICAgICAgICAgIHRoaXMuZ2V0RmVhdHVyZXMoXG4gICAgICAgICAgICB2ZWN0b3JTb3VyY2UsXG4gICAgICAgICAgICBpbnRlcmNlcHRvcixcbiAgICAgICAgICAgIGN1cnJlbnRFeHRlbnQsXG4gICAgICAgICAgICB3ZnNQcm9qLFxuICAgICAgICAgICAgcHJvaixcbiAgICAgICAgICAgIGFsdGVyZWRVcmwsXG4gICAgICAgICAgICBzdWNjZXNzLFxuICAgICAgICAgICAgZmFpbHVyZVxuICAgICAgICAgICk7XG4gICAgICAgICAgc3RhcnRJbmRleCArPSBuYk9mRmVhdHVyZTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5nZXRGZWF0dXJlcyhcbiAgICAgICAgICB2ZWN0b3JTb3VyY2UsXG4gICAgICAgICAgaW50ZXJjZXB0b3IsXG4gICAgICAgICAgY3VycmVudEV4dGVudCxcbiAgICAgICAgICB3ZnNQcm9qLFxuICAgICAgICAgIHByb2osXG4gICAgICAgICAgdXJsLFxuICAgICAgICAgIHN1Y2Nlc3MsXG4gICAgICAgICAgZmFpbHVyZVxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gbG9hZGVyIHRvIGdldCBmZWF0dXJlIGZyb20gYSBXRlMgZGF0YXNvdXJjZVxuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIHZlY3RvclNvdXJjZSB0aGUgdmVjdG9yIHNvdXJjZSB0byBiZSBjcmVhdGVkXG4gICAqIEBwYXJhbSBpbnRlcmNlcHRvciB0aGUgaW50ZXJjZXB0b3Igb2YgdGhlIGRhdGFcbiAgICogQHBhcmFtIGV4dGVudCB0aGUgZXh0ZW50IG9mIHRoZSByZXF1ZXN0ZWQgZGF0YVxuICAgKiBAcGFyYW0gZGF0YVByb2plY3Rpb24gdGhlIHByb2plY3Rpb24gb2YgdGhlIHJldHJpZXZlZCBkYXRhXG4gICAqIEBwYXJhbSBmZWF0dXJlUHJvamVjdGlvbiB0aGUgcHJvamVjdGlvbiBvZiB0aGUgY3JlYXRlZCBmZWF0dXJlc1xuICAgKiBAcGFyYW0gdXJsIHRoZSB1cmwgc3RyaW5nIHRvIHJldHJpZXZlIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBzdWNjZXNzIHN1Y2Nlc3MgY2FsbGJhY2tcbiAgICogQHBhcmFtIGZhaWx1cmUgZmFpbHVyZSBjYWxsYmFja1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRGZWF0dXJlcyhcbiAgICB2ZWN0b3JTb3VyY2U6IG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+LFxuICAgIGludGVyY2VwdG9yOiBBdXRoSW50ZXJjZXB0b3IsXG4gICAgZXh0ZW50OiBFeHRlbnQsXG4gICAgZGF0YVByb2plY3Rpb246IG9sUHJvamVjdGlvbixcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogb2xQcm9qZWN0aW9uLFxuICAgIHVybDogc3RyaW5nLFxuICAgIHN1Y2Nlc3M6IChmZWF0dXJlczogb2xGZWF0dXJlPE9sR2VvbWV0cnk+W10pID0+IHZvaWQsXG4gICAgZmFpbHVyZTogKCkgPT4gdm9pZFxuICApIHtcbiAgICBjb25zdCB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICBjb25zdCBhbHRlcmVkVXJsV2l0aEtleUF1dGggPSBpbnRlcmNlcHRvci5hbHRlclVybFdpdGhLZXlBdXRoKHVybCk7XG4gICAgbGV0IG1vZGlmaWVkVXJsID0gdXJsO1xuICAgIGlmIChhbHRlcmVkVXJsV2l0aEtleUF1dGgpIHtcbiAgICAgIG1vZGlmaWVkVXJsID0gYWx0ZXJlZFVybFdpdGhLZXlBdXRoO1xuICAgIH1cbiAgICB4aHIub3BlbignR0VUJywgbW9kaWZpZWRVcmwpO1xuICAgIGlmIChpbnRlcmNlcHRvcikge1xuICAgICAgaW50ZXJjZXB0b3IuaW50ZXJjZXB0WGhyKHhociwgbW9kaWZpZWRVcmwpO1xuICAgIH1cbiAgICBjb25zdCBvbkVycm9yID0gKCkgPT4ge1xuICAgICAgdmVjdG9yU291cmNlLnJlbW92ZUxvYWRlZEV4dGVudChleHRlbnQpO1xuICAgICAgZmFpbHVyZSgpO1xuICAgIH07XG4gICAgeGhyLm9uZXJyb3IgPSBvbkVycm9yO1xuICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMjAwICYmIHhoci5yZXNwb25zZVRleHQubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zdCBmZWF0dXJlcyA9IHZlY3RvclNvdXJjZVxuICAgICAgICAgIC5nZXRGb3JtYXQoKVxuICAgICAgICAgIC5yZWFkRmVhdHVyZXMoeGhyLnJlc3BvbnNlVGV4dCwge1xuICAgICAgICAgICAgZGF0YVByb2plY3Rpb24sXG4gICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvblxuICAgICAgICAgIH0pIGFzIG9sRmVhdHVyZTxPbEdlb21ldHJ5PltdO1xuICAgICAgICBpZiAoZmVhdHVyZXMpIHtcbiAgICAgICAgICB2ZWN0b3JTb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMpO1xuICAgICAgICAgIHN1Y2Nlc3MoZmVhdHVyZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHN1Y2Nlc3MoW10pO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvbkVycm9yKCk7XG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLnhockFjY3VtdWxhdG9yLnB1c2goeGhyKTtcbiAgICB4aHIuc2VuZCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBsb2FkZXIgZm9yIHZlY3RvciBsYXllci5cbiAgICogQGludGVybmFsXG4gICAqIEBwYXJhbSB2ZWN0b3JTb3VyY2UgdGhlIHZlY3RvciBzb3VyY2UgdG8gYmUgY3JlYXRlZFxuICAgKiBAcGFyYW0gdXJsIHRoZSB1cmwgc3RyaW5nIG9yIGZ1bmN0aW9uIHRvIHJldHJpZXZlIHRoZSBkYXRhXG4gICAqIEBwYXJhbSBpbnRlcmNlcHRvciB0aGUgaW50ZXJjZXB0b3Igb2YgdGhlIGRhdGFcbiAgICogQHBhcmFtIGV4dGVudCB0aGUgZXh0ZW50IG9mIHRoZSByZXF1ZXN0ZWQgZGF0YVxuICAgKiBAcGFyYW0gcmVzb2x1dGlvbiB0aGUgY3VycmVudCByZXNvbHV0aW9uXG4gICAqIEBwYXJhbSBwcm9qZWN0aW9uIHRoZSBwcm9qZWN0aW9uIHRvIHJldHJpZXZlIHRoZSBkYXRhXG4gICAqL1xuICBwcml2YXRlIGN1c3RvbUxvYWRlcihcbiAgICB2ZWN0b3JTb3VyY2U6IG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+LFxuICAgIHVybDogc3RyaW5nLFxuICAgIGludGVyY2VwdG9yOiBBdXRoSW50ZXJjZXB0b3IsXG4gICAgZXh0ZW50OiBFeHRlbnQsXG4gICAgcmVzb2x1dGlvbjogbnVtYmVyLFxuICAgIHByb2plY3Rpb246IG9sUHJvamVjdGlvbixcbiAgICBzdWNjZXNzOiAoZmVhdHVyZXM6IG9sRmVhdHVyZTxPbEdlb21ldHJ5PltdKSA9PiB2b2lkLFxuICAgIGZhaWx1cmU6ICgpID0+IHZvaWRcbiAgKSB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgbGV0IG1vZGlmaWVkVXJsID0gdXJsO1xuICAgIGlmICh0eXBlb2YgdXJsICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb25zdCBhbHRlcmVkVXJsV2l0aEtleUF1dGggPSBpbnRlcmNlcHRvci5hbHRlclVybFdpdGhLZXlBdXRoKHVybCk7XG4gICAgICBpZiAoYWx0ZXJlZFVybFdpdGhLZXlBdXRoKSB7XG4gICAgICAgIG1vZGlmaWVkVXJsID0gYWx0ZXJlZFVybFdpdGhLZXlBdXRoO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmICh0aGlzLmdlb05ldHdvcmtTZXJ2aWNlICYmIHR5cGVvZiB1cmwgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgIGNvbnN0IHR5cGUgPSBmb3JtYXQuZ2V0VHlwZSgpO1xuXG4gICAgICBsZXQgcmVzcG9uc2VUeXBlID0gdHlwZTtcbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQoZXh0ZW50KTtcbiAgICAgICAgZmFpbHVyZSgpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb3B0aW9uczogU2ltcGxlR2V0T3B0aW9ucyA9IHsgcmVzcG9uc2VUeXBlIH07XG4gICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlLmdlb0RCU2VydmljZVxuICAgICAgICAuZ2V0KHVybClcbiAgICAgICAgLnBpcGUoZGVsYXkoNzUwKSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgY29uY2F0TWFwKChyKSA9PlxuICAgICAgICAgICAgclxuICAgICAgICAgICAgICA/IG9mKHIpXG4gICAgICAgICAgICAgIDogdGhpcy5nZW9OZXR3b3JrU2VydmljZS5nZXQobW9kaWZpZWRVcmwgYXMgc3RyaW5nLCBvcHRpb25zKS5waXBlKFxuICAgICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlcztcbiAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChjb250ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgICAgICAgIGNvbnN0IHR5cGUgPSBmb3JtYXQuZ2V0VHlwZSgpO1xuICAgICAgICAgICAgbGV0IHNvdXJjZTtcbiAgICAgICAgICAgIGlmICh0eXBlID09PSAnanNvbicgfHwgdHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XG4gICAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICAgIGlmICghc291cmNlKSB7XG4gICAgICAgICAgICAgICAgc291cmNlID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veG1sJ1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5YnVmZmVyJykge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IGZvcm1hdC5yZWFkRmVhdHVyZXMoc291cmNlLCB7XG4gICAgICAgICAgICAgICAgZXh0ZW50LFxuICAgICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uXG4gICAgICAgICAgICAgIH0pIGFzIE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdO1xuICAgICAgICAgICAgICB2ZWN0b3JTb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMpO1xuICAgICAgICAgICAgICBzdWNjZXNzKGZlYXR1cmVzKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG9uRXJyb3IoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB4aHIub3BlbignR0VUJywgbW9kaWZpZWRVcmwgYXMgc3RyaW5nKTtcbiAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgIGlmIChmb3JtYXQuZ2V0VHlwZSgpID09PSAnYXJyYXlidWZmZXInKSB7XG4gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInO1xuICAgICAgfVxuICAgICAgaWYgKGludGVyY2VwdG9yKSB7XG4gICAgICAgIGludGVyY2VwdG9yLmludGVyY2VwdFhocih4aHIsIG1vZGlmaWVkVXJsIGFzIHN0cmluZyk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XG4gICAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQoZXh0ZW50KTtcbiAgICAgICAgZmFpbHVyZSgpO1xuICAgICAgfTtcbiAgICAgIHhoci5vbmVycm9yID0gb25FcnJvcjtcbiAgICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIC8vIHN0YXR1cyB3aWxsIGJlIDAgZm9yIGZpbGU6Ly8gdXJsc1xuICAgICAgICBpZiAoIXhoci5zdGF0dXMgfHwgKHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDApKSB7XG4gICAgICAgICAgY29uc3QgdHlwZSA9IGZvcm1hdC5nZXRUeXBlKCk7XG4gICAgICAgICAgbGV0IHNvdXJjZTtcbiAgICAgICAgICBpZiAodHlwZSA9PT0gJ2pzb24nIHx8IHR5cGUgPT09ICd0ZXh0Jykge1xuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlVGV4dDtcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB4aHIucmVzcG9uc2VYTUw7XG4gICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIHhoci5yZXNwb25zZVRleHQsXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xuICAgICAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBmb3JtYXQucmVhZEZlYXR1cmVzKHNvdXJjZSwge1xuICAgICAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uXG4gICAgICAgICAgICB9KSBhcyBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXTtcbiAgICAgICAgICAgIHZlY3RvclNvdXJjZS5hZGRGZWF0dXJlcyhmZWF0dXJlcyk7XG4gICAgICAgICAgICBzdWNjZXNzKGZlYXR1cmVzKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb25FcnJvcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIuc2VuZCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDdXN0b20gbG9hZGVyIGZvciB2ZWN0b3IgbGF5ZXIuXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcGFyYW0gdmVjdG9yU291cmNlIHRoZSB2ZWN0b3Igc291cmNlIHRvIGJlIGNyZWF0ZWRcbiAgICogQHBhcmFtIGxheWVySUQgdGhlIHVybCBzdHJpbmcgb3IgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICogQHBhcmFtIGludGVyY2VwdG9yIHRoZSBpbnRlcmNlcHRvciBvZiB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZXh0ZW50IHRoZSBleHRlbnQgb2YgdGhlIHJlcXVlc3RlZCBkYXRhXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIHRoZSBjdXJyZW50IHJlc29sdXRpb25cbiAgICogQHBhcmFtIHByb2plY3Rpb24gdGhlIHByb2plY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcbiAgICovXG4gIHByaXZhdGUgY3VzdG9tSURCTG9hZGVyKFxuICAgIHZlY3RvclNvdXJjZSxcbiAgICBsYXllcklELFxuICAgIGV4dGVudCxcbiAgICBwcm9qZWN0aW9uLFxuICAgIHN1Y2Nlc3MsXG4gICAgZmFpbHVyZVxuICApIHtcbiAgICBpZiAodGhpcy5nZW9OZXR3b3JrU2VydmljZSkge1xuICAgICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHtcbiAgICAgICAgdmVjdG9yU291cmNlLnJlbW92ZUxvYWRlZEV4dGVudChleHRlbnQpO1xuICAgICAgICBmYWlsdXJlKCk7XG4gICAgICB9O1xuICAgICAgdGhpcy5nZW9OZXR3b3JrU2VydmljZS5nZW9EQlNlcnZpY2UuZ2V0KGxheWVySUQpLnN1YnNjcmliZSgoY29udGVudCkgPT4ge1xuICAgICAgICBpZiAoY29udGVudCkge1xuICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcbiAgICAgICAgICBjb25zdCB0eXBlID0gZm9ybWF0LmdldFR5cGUoKTtcbiAgICAgICAgICBsZXQgc291cmNlO1xuICAgICAgICAgIGlmICh0eXBlID09PSAnanNvbicgfHwgdHlwZSA9PT0gJ3RleHQnKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3htbCcpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xuICAgICAgICAgICAgICBzb3VyY2UgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxuICAgICAgICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGZlYXR1cmVzID0gZm9ybWF0LnJlYWRGZWF0dXJlcyhzb3VyY2UsIHtcbiAgICAgICAgICAgICAgZXh0ZW50LFxuICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB2ZWN0b3JTb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMsIGZvcm1hdC5yZWFkUHJvamVjdGlvbihzb3VyY2UpKTtcbiAgICAgICAgICAgIHN1Y2Nlc3MoZmVhdHVyZXMpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvbkVycm9yKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
573
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9yLWxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ2VvL3NyYy9saWIvbGF5ZXIvc2hhcmVkL2xheWVycy92ZWN0b3ItbGF5ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUkxQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxPQUFPLElBQUksWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFJcEMsT0FBTyxLQUFLLFFBQVEsTUFBTSxXQUFXLENBQUM7QUFFdEMsT0FBTyxhQUFhLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxLQUFLLE1BQU0sTUFBTSxTQUFTLENBQUM7QUFDbEMsT0FBTyxZQUFZLE1BQU0sb0JBQW9CLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMxQyxPQUFPLEVBQ0wsVUFBVSxFQUNWLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLEtBQUssRUFDTixNQUFNLGdCQUFnQixDQUFDO0FBSXhCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBSzlGLE9BQU8sRUFDTCxRQUFRLEVBQ1Isa0JBQWtCLEVBQ25CLE1BQU0sc0RBQXNELENBQUM7QUFLOUQsT0FBTyxFQUFxQixzQkFBc0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBUTlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLCtDQUErQyxD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Q3ZDLE1BQU0sR0FBRyxPQUFPLENBQUM7b0JBQ25CLENBQUM7eUJBQU0sSUFBSSxJQUFJLEtBQUssS0FBSyxFQUFFLENBQUM7d0JBQzFCLE1BQU0sR0FBRyxPQUFPLENBQUM7d0JBQ2pCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQzs0QkFDWixNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQ3RDLE9BQU8sRUFDUCxpQkFBaUIsQ0FDbEIsQ0FBQzt3QkFDSixDQUFDO29CQUNILENBQUM7eUJBQU0sSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFLENBQUM7d0JBQ2xDLE1BQU0sR0FBRyxPQUFPLENBQUM7b0JBQ25CLENBQUM7b0JBQ0QsSUFBSSxNQUFNLEVBQUUsQ0FBQzt3QkFDWCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRTs0QkFDM0MsTUFBTTs0QkFDTixpQkFBaUIsRUFBRSxVQUFVO3lCQUM5QixDQUFDLENBQUM7d0JBQ0gsWUFBWSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO3dCQUNsRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7b0JBQ3BCLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixPQUFPLEVBQUUsQ0FBQztvQkFDWixDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICdAaWdvMi91dGlscyc7XHJcblxyXG5pbXBvcnQgb2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgT2xGZWF0dXJlIGZyb20gJ29sL0ZlYXR1cmUnO1xyXG5pbXBvcnQgeyB1bkJ5S2V5IH0gZnJvbSAnb2wvT2JzZXJ2YWJsZSc7XHJcbmltcG9ydCB7IGFzQXJyYXkgYXMgQ29sb3JBc0FycmF5IH0gZnJvbSAnb2wvY29sb3InO1xyXG5pbXBvcnQgeyBlYXNlT3V0IH0gZnJvbSAnb2wvZWFzaW5nJztcclxuaW1wb3J0IEJhc2VFdmVudCBmcm9tICdvbC9ldmVudHMvRXZlbnQnO1xyXG5pbXBvcnQgeyBFeHRlbnQgfSBmcm9tICdvbC9leHRlbnQnO1xyXG5pbXBvcnQgeyBGZWF0dXJlTG9hZGVyIH0gZnJvbSAnb2wvZmVhdHVyZWxvYWRlcic7XHJcbmltcG9ydCAqIGFzIG9sZm9ybWF0IGZyb20gJ29sL2Zvcm1hdCc7XHJcbmltcG9ydCB0eXBlIHsgZGVmYXVsdCBhcyBPbEdlb21ldHJ5IH0gZnJvbSAnb2wvZ2VvbS9HZW9tZXRyeSc7XHJcbmltcG9ydCBvbExheWVyVmVjdG9yIGZyb20gJ29sL2xheWVyL1ZlY3Rvcic7XHJcbmltcG9ydCAqIGFzIG9scHJvaiBmcm9tICdvbC9wcm9qJztcclxuaW1wb3J0IG9sUHJvamVjdGlvbiBmcm9tICdvbC9wcm9qL1Byb2plY3Rpb24nO1xyXG5pbXBvcnQgeyBnZXRWZWN0b3JDb250ZXh0IH0gZnJvbSAnb2wvcmVuZGVyJztcclxuaW1wb3J0IG9sU291cmNlVmVjdG9yIGZyb20gJ29sL3NvdXJjZS9WZWN0b3InO1xyXG5cclxuaW1wb3J0IHsgZnJvbUV2ZW50LCBvZiwgemlwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgY2F0Y2hFcnJvcixcclxuICBjb25jYXRNYXAsXHJcbiAgZGVib3VuY2VUaW1lLFxyXG4gIGRlbGF5LFxyXG4gIGZpcnN0XHJcbn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXJjR0lTUmVzdERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9hcmNnaXNyZXN0LWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBDbHVzdGVyRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uLy4uL2RhdGFzb3VyY2Uvc2hhcmVkL2RhdGFzb3VyY2VzL2NsdXN0ZXItZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IEZlYXR1cmVEYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlJztcclxuaW1wb3J0IHsgRmVhdHVyZURhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvZmVhdHVyZS1kYXRhc291cmNlLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFdlYlNvY2tldERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZWJzb2NrZXQtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93ZnMtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IFdGU0RhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvd2ZzLWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtcclxuICBidWlsZFVybCxcclxuICBkZWZhdWx0TWF4RmVhdHVyZXNcclxufSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy93bXMtd2ZzLnV0aWxzJztcclxuaW1wb3J0IHtcclxuICBPZ2NGaWx0ZXJhYmxlRGF0YVNvdXJjZU9wdGlvbnMsXHJcbiAgT2djRmlsdGVyc09wdGlvbnNcclxufSBmcm9tICcuLi8uLi8uLi9maWx0ZXIvc2hhcmVkL29nYy1maWx0ZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSWdvTWFwLCBNYXBFeHRlbnQsIGdldFJlc29sdXRpb25Gcm9tU2NhbGUgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkJztcclxuaW1wb3J0IHsgSW5zZXJ0U291cmNlSW5zZXJ0REJFbnVtIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9nZW9EQi9nZW9EQi5lbnVtcyc7XHJcbmltcG9ydCB7IEdlb0RCU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL29mZmxpbmUvZ2VvREIvZ2VvREIuc2VydmljZSc7XHJcbmltcG9ydCB7IExheWVyREJEYXRhIH0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9sYXllckRCL2xheWVyREIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgTGF5ZXJEQlNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9vZmZsaW5lL2xheWVyREIvbGF5ZXJEQi5zZXJ2aWNlJztcclxuaW1wb3J0IHtcclxuICBHZW9OZXR3b3JrU2VydmljZSxcclxuICBTaW1wbGVHZXRPcHRpb25zXHJcbn0gZnJvbSAnLi4vLi4vLi4vb2ZmbGluZS9zaGFyZWQvZ2VvLW5ldHdvcmsuc2VydmljZSc7XHJcbmltcG9ydCB7IG9sU3R5bGVUb0Jhc2ljSWdvU3R5bGUgfSBmcm9tICcuLi8uLi8uLi9zdHlsZS9zaGFyZWQvdmVjdG9yL2NvbnZlcnNpb24udXRpbHMnO1xyXG5pbXBvcnQgeyBWZWN0b3JXYXRjaGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvdmVjdG9yLXdhdGNoZXInO1xyXG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4vbGF5ZXInO1xyXG5pbXBvcnQgeyBWZWN0b3JMYXllck9wdGlvbnMgfSBmcm9tICcuL3ZlY3Rvci1sYXllci5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFZlY3RvckxheWVyIGV4dGVuZHMgTGF5ZXIge1xyXG4gIHByaXZhdGUgcHJldmlvdXNMb2FkRXh0ZW50OiBFeHRlbnQ7XHJcbiAgcHJpdmF0ZSBwcmV2aW91c0xvYWRSZXNvbHV0aW9uOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBwcmV2aW91c09nY0ZpbHRlcnM6IE9nY0ZpbHRlcnNPcHRpb25zO1xyXG4gIHByaXZhdGUgeGhyQWNjdW11bGF0b3I6IFhNTEh0dHBSZXF1ZXN0W10gPSBbXTtcclxuICBwdWJsaWMgZGVjbGFyZSBkYXRhU291cmNlOlxyXG4gICAgfCBGZWF0dXJlRGF0YVNvdXJjZVxyXG4gICAgfCBXRlNEYXRhU291cmNlXHJcbiAgICB8IEFyY0dJU1Jlc3REYXRhU291cmNlXHJcbiAgICB8IFdlYlNvY2tldERhdGFTb3VyY2VcclxuICAgIHwgQ2x1c3RlckRhdGFTb3VyY2U7XHJcbiAgcHVibGljIGRlY2xhcmUgb3B0aW9uczogVmVjdG9yTGF5ZXJPcHRpb25zO1xyXG4gIHB1YmxpYyBkZWNsYXJlIG9sOiBvbExheWVyVmVjdG9yPG9sU291cmNlVmVjdG9yPE9sR2VvbWV0cnk+PjtcclxuICBwcml2YXRlIHdhdGNoZXI6IFZlY3RvcldhdGNoZXI7XHJcbiAgcHJpdmF0ZSB0cmFja0ZlYXR1cmVMaXN0ZW5lcklkO1xyXG5cclxuICBnZXQgYnJvd3NhYmxlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5icm93c2FibGUgIT09IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGV4cG9ydGFibGUoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLmV4cG9ydGFibGUgIT09IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBvcHRpb25zOiBWZWN0b3JMYXllck9wdGlvbnMsXHJcbiAgICBwdWJsaWMgbWVzc2FnZVNlcnZpY2U/OiBNZXNzYWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBhdXRoSW50ZXJjZXB0b3I/OiBBdXRoSW50ZXJjZXB0b3IsXHJcbiAgICBwcml2YXRlIGdlb05ldHdvcmtTZXJ2aWNlPzogR2VvTmV0d29ya1NlcnZpY2UsXHJcbiAgICBwdWJsaWMgZ2VvREJTZXJ2aWNlPzogR2VvREJTZXJ2aWNlLFxyXG4gICAgcHVibGljIGxheWVyREJTZXJ2aWNlPzogTGF5ZXJEQlNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKFxyXG4gICAgICBvcHRpb25zLFxyXG4gICAgICBtZXNzYWdlU2VydmljZSxcclxuICAgICAgYXV0aEludGVyY2VwdG9yLFxyXG4gICAgICBnZW9EQlNlcnZpY2UsXHJcbiAgICAgIGxheWVyREJTZXJ2aWNlXHJcbiAgICApO1xyXG4gICAgdGhpcy53YXRjaGVyID0gbmV3IFZlY3RvcldhdGNoZXIodGhpcyk7XHJcbiAgICB0aGlzLnN0YXR1cyQgPSB0aGlzLndhdGNoZXIuc3RhdHVzJDtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjcmVhdGVPbExheWVyKCk6IG9sTGF5ZXJWZWN0b3I8b2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT4+IHtcclxuICAgIGNvbnN0IGluaXRpYWxPcGFjaXR5VmFsdWUgPSB0aGlzLm9wdGlvbnMub3BhY2l0eSB8fCAxO1xyXG4gICAgY29uc3QgaW5pdGlhbFZpc2libGVWYWx1ZSA9IHRoaXMub3B0aW9ucy52aXNpYmxlICE9PSBmYWxzZTtcclxuICAgIGNvbnN0IGluaXRpYWxNaW5SZXNWYWx1ZSA9XHJcbiAgICAgIHRoaXMub3B0aW9ucy5taW5SZXNvbHV0aW9uIHx8XHJcbiAgICAgIGdldFJlc29sdXRpb25Gcm9tU2NhbGUoTnVtYmVyKHRoaXMub3B0aW9ucy5taW5TY2FsZURlbm9tKSk7XHJcbiAgICBjb25zdCBpbml0aWFsTWF4UmVzVmFsdWUgPVxyXG4gICAgICB0aGlzLm9wdGlvbnMubWF4UmVzb2x1dGlvbiB8fFxyXG4gICAgICBnZXRSZXNvbHV0aW9uRnJvbVNjYWxlKE51bWJlcih0aGlzLm9wdGlvbnMubWF4U2NhbGVEZW5vbSkpO1xyXG4gICAgY29uc3Qgc28gPSB0aGlzLm9wdGlvbnMuc291cmNlT3B0aW9ucyBhcyBGZWF0dXJlRGF0YVNvdXJjZU9wdGlvbnM7XHJcbiAgICBpZiAodGhpcy5kYXRhU291cmNlIGluc3RhbmNlb2YgRmVhdHVyZURhdGFTb3VyY2UpIHtcclxuICAgICAgaWYgKHNvPy5wcmVsb2FkPy5ieXBhc3NSZXNvbHV0aW9uIHx8IHNvPy5wcmVsb2FkPy5ieXBhc3NWaXNpYmxlKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zLm9wYWNpdHkgPSAwO1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgIHNvLnByZWxvYWQuYnlwYXNzUmVzb2x1dGlvbiAmJlxyXG4gICAgICAgICAgKHRoaXMub3B0aW9ucy5taW5SZXNvbHV0aW9uIHx8IHRoaXMub3B0aW9ucy5tYXhSZXNvbHV0aW9uKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLm1pblJlc29sdXRpb24gPSAwO1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLm1heFJlc29sdXRpb24gPSBJbmZpbml0eTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNvLnByZWxvYWQuYnlwYXNzVmlzaWJsZSAmJiAhaW5pdGlhbFZpc2libGVWYWx1ZSkge1xyXG4gICAgICAgICAgdGhpcy5vcHRpb25zLnZpc2libGUgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG9sT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucywge1xyXG4gICAgICBzb3VyY2U6IHRoaXMub3B0aW9ucy5zb3VyY2Uub2wgYXMgb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT4sXHJcbiAgICAgIHNvdXJjZU9wdGlvbnM6IHRoaXMub3B0aW9ucy5zb3VyY2VPcHRpb25zIHx8IHRoaXMub3B0aW9ucy5zb3VyY2Uub3B0aW9uc1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5hbmltYXRpb24pIHtcclxuICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKFxyXG4gICAgICAgICdhZGRmZWF0dXJlJyxcclxuICAgICAgICBmdW5jdGlvbiAoZSkge1xyXG4gICAgICAgICAgdGhpcy5mbGFzaChlLmZlYXR1cmUpO1xyXG4gICAgICAgIH0uYmluZCh0aGlzKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pZGJJbmZvPy5zdG9yZVRvSWRiICYmIHRoaXMuZ2VvREJTZXJ2aWNlKSB7XHJcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMuaWRiSW5mby5maXJzdExvYWQpIHtcclxuICAgICAgICB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5vbC5vbmNlKCdmZWF0dXJlc2xvYWRlbmQnLCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKCdhZGRmZWF0dXJlJywgKCkgPT4gdGhpcy5tYWludGFpbkZlYXR1cmVzSW5JZGIoKSk7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLm9sLm9uKCdjaGFuZ2VmZWF0dXJlJywgKCkgPT5cclxuICAgICAgICAgIHRoaXMubWFpbnRhaW5GZWF0dXJlc0luSWRiKClcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5vbC5vbignY2xlYXInLCAoKSA9PiB0aGlzLm1haW50YWluRmVhdHVyZXNJbklkYigpKTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2Uub2wub24oJ3JlbW92ZWZlYXR1cmUnLCAoKSA9PlxyXG4gICAgICAgICAgdGhpcy5tYWludGFpbkZlYXR1cmVzSW5JZGIoKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5kYXRhU291cmNlIGluc3RhbmNlb2YgRmVhdHVyZURhdGFTb3VyY2UgJiZcclxuICAgICAgKHNvPy5wcmVsb2FkPy5ieXBhc3NSZXNvbHV0aW9uIHx8IHNvPy5wcmVsb2FkPy5ieXBhc3NWaXNpYmxlKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNvdXJjZS5vbC5vbmNlKCdmZWF0dXJlc2xvYWRlbmQnLCAoKSA9PiB7XHJcbiAgICAgICAgaWYgKGluaXRpYWxPcGFjaXR5VmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMub3BhY2l0eSA9IGluaXRpYWxPcGFjaXR5VmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChzby5wcmVsb2FkLmJ5cGFzc1Jlc29sdXRpb24pIHtcclxuICAgICAgICAgIHRoaXMubWluUmVzb2x1dGlvbiA9IGluaXRpYWxNaW5SZXNWYWx1ZTtcclxuICAgICAgICAgIHRoaXMubWF4UmVzb2x1dGlvbiA9IGluaXRpYWxNYXhSZXNWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHNvLnByZWxvYWQuYnlwYXNzVmlzaWJsZSkge1xyXG4gICAgICAgICAgdGhpcy52aXNpYmxlID0gaW5pdGlhbFZpc2libGVWYWx1ZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMudHJhY2tGZWF0dXJlKSB7XHJcbiAgICAgIHRoaXMuZW5hYmxlVHJhY2tGZWF0dXJlKHRoaXMub3B0aW9ucy50cmFja0ZlYXR1cmUpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHZlY3RvciA9IG5ldyBvbExheWVyVmVjdG9yKG9sT3B0aW9ucyk7XHJcbiAgICBjb25zdCB2ZWN0b3JTb3VyY2UgPSB2ZWN0b3IuZ2V0U291cmNlKCkgYXMgb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT47XHJcbiAgICBjb25zdCB1cmwgPSB2ZWN0b3JTb3VyY2UuZ2V0VXJsKCk7XHJcbiAgICBpZiAodHlwZW9mIHVybCA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gdmVjdG9yO1xyXG4gICAgfVxyXG4gICAgaWYgKHVybCB8fCBvbE9wdGlvbnMuc291cmNlT3B0aW9ucz8udHlwZSA9PT0gJ3dmcycpIHtcclxuICAgICAgbGV0IGxvYWRlcjogRmVhdHVyZUxvYWRlcjtcclxuICAgICAgY29uc3Qgd2ZzT3B0aW9ucyA9IG9sT3B0aW9ucy5zb3VyY2VPcHRpb25zIGFzIFdGU0RhdGFTb3VyY2VPcHRpb25zO1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgd2ZzT3B0aW9ucz8udHlwZSA9PT0gJ3dmcycgJiZcclxuICAgICAgICAod2ZzT3B0aW9ucy5wYXJhbXMgfHwgd2ZzT3B0aW9ucy5wYXJhbXNXRlMpXHJcbiAgICAgICkge1xyXG4gICAgICAgIGxvYWRlciA9IChleHRlbnQsIHJlc29sdXRpb24sIHByb2osIHN1Y2Nlc3MsIGZhaWx1cmUpID0+IHtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tV0ZTTG9hZGVyKFxyXG4gICAgICAgICAgICB2ZWN0b3JTb3VyY2UsXHJcbiAgICAgICAgICAgIHdmc09wdGlvbnMsXHJcbiAgICAgICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yLFxyXG4gICAgICAgICAgICBleHRlbnQsXHJcbiAgICAgICAgICAgIHJlc29sdXRpb24sXHJcbiAgICAgICAgICAgIHByb2osXHJcbiAgICAgICAgICAgIHN1Y2Nlc3MsXHJcbiAgICAgICAgICAgIGZhaWx1cmVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBsb2FkZXIgPSAoZXh0ZW50LCByZXNvbHV0aW9uLCBwcm9qLCBzdWNjZXNzLCBmYWlsdXJlKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLmN1c3RvbUxvYWRlcihcclxuICAgICAgICAgICAgdmVjdG9yU291cmNlLFxyXG4gICAgICAgICAgICB1cmwsXHJcbiAgICAgICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yLFxyXG4gICAgICAgICAgICBleHRlbnQsXHJcbiAgICAgICAgICAgIHJlc29sdXRpb24sXHJcbiAgICAgICAgICAgIHByb2osXHJcbiAgICAgICAgICAgIHN1Y2Nlc3MsXHJcbiAgICAgICAgICAgIGZhaWx1cmVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfTtcclxuICAgICAgfVxyXG4gICAgICBpZiAobG9hZGVyKSB7XHJcbiAgICAgICAgdmVjdG9yU291cmNlLnNldExvYWRlcihsb2FkZXIpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMub3B0aW9ucy5pZGJJbmZvPy5zdG9yZVRvSWRiICYmIHRoaXMuZ2VvREJTZXJ2aWNlKSB7XHJcbiAgICAgIGNvbnN0IGlkYkxvYWRlciA9IChleHRlbnQsIHJlc29sdXRpb24sIHByb2osIHN1Y2Nlc3MsIGZhaWx1cmUpID0+IHtcclxuICAgICAgICB0aGlzLmN1c3RvbUlEQkxvYWRlcihcclxuICAgICAgICAgIHZlY3RvclNvdXJjZSxcclxuICAgICAgICAgIG9sT3B0aW9ucy5pZCxcclxuICAgICAgICAgIGV4dGVudCxcclxuICAgICAgICAgIHByb2osXHJcbiAgICAgICAgICBzdWNjZXNzLFxyXG4gICAgICAgICAgZmFpbHVyZVxyXG4gICAgICAgICk7XHJcbiAgICAgIH07XHJcbiAgICAgIGlmIChpZGJMb2FkZXIpIHtcclxuICAgICAgICB2ZWN0b3JTb3VyY2Uuc2V0TG9hZGVyKGlkYkxvYWRlcik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmlkYkluZm8/LnN0b3JlVG9JZGIgJiYgdGhpcy5nZW9EQlNlcnZpY2UpIHtcclxuICAgICAgdmVjdG9yLm9uY2UoJ3NvdXJjZXJlYWR5JywgKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLm9wdGlvbnMuaWRiSW5mby5maXJzdExvYWQpIHtcclxuICAgICAgICAgIHRoaXMubWFpbnRhaW5PcHRpb25zSW5JZGIoKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZnJvbUV2ZW50PEJhc2VFdmVudD4odmVjdG9yLCAnY2hhbmdlJylcclxuICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg3NTApKVxyXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLm1haW50YWluT3B0aW9uc0luSWRiKCkpO1xyXG4gICAgICAgIHZlY3Rvci5vbignY2hhbmdlOnpJbmRleCcsICgpID0+IHRoaXMubWFpbnRhaW5PcHRpb25zSW5JZGIoKSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHZlY3RvcjtcclxuICB9XHJcblxyXG4gIHJlbW92ZUxheWVyRnJvbUlEQigpIHtcclxuICAgIGlmICh0aGlzLmdlb0RCU2VydmljZSAmJiB0aGlzLmxheWVyREJTZXJ2aWNlKSB7XHJcbiAgICAgIHppcChcclxuICAgICAgICB0aGlzLmdlb0RCU2VydmljZS5kZWxldGVCeUtleSh0aGlzLmlkKSxcclxuICAgICAgICB0aGlzLmxheWVyREJTZXJ2aWNlLmRlbGV0ZUJ5S2V5KHRoaXMuaWQpXHJcbiAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1haW50YWluT3B0aW9uc0luSWRiKCkge1xyXG4gICAgdGhpcy5vcHRpb25zLmlnb1N0eWxlLmlnb1N0eWxlT2JqZWN0ID0gb2xTdHlsZVRvQmFzaWNJZ29TdHlsZSh0aGlzLm9sKTtcclxuICAgIGNvbnN0IGxheWVyRGF0YTogTGF5ZXJEQkRhdGEgPSBPYmplY3RVdGlscy5yZW1vdmVVbmRlZmluZWQoe1xyXG4gICAgICBsYXllcklkOiB0aGlzLmlkLFxyXG4gICAgICBkZXRhaWxlZENvbnRleHRVcmk6IHRoaXMub3B0aW9ucy5pZGJJbmZvLmNvbnRleHRVcmksXHJcbiAgICAgIHNvdXJjZU9wdGlvbnM6IHtcclxuICAgICAgICBpZDogdGhpcy5pZCxcclxuICAgICAgICB0eXBlOiAndmVjdG9yJyxcclxuICAgICAgICBxdWVyeWFibGU6IHRydWVcclxuICAgICAgfSxcclxuICAgICAgbGF5ZXJPcHRpb25zOiB7XHJcbiAgICAgICAgd29ya3NwYWNlOiB0aGlzLm9wdGlvbnMud29ya3NwYWNlLFxyXG4gICAgICAgIHpJbmRleDogdGhpcy5vbCA/IHRoaXMuekluZGV4IDogMTAwMDAwMCxcclxuICAgICAgICBpZDogdGhpcy5pZCxcclxuICAgICAgICBpc0lnb0ludGVybmFsTGF5ZXI6IHRoaXMuaXNJZ29JbnRlcm5hbExheWVyLFxyXG4gICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlLFxyXG4gICAgICAgIGlnb1N0eWxlOiB0aGlzLm9wdGlvbnMuaWdvU3R5bGUsXHJcbiAgICAgICAgaWRiSW5mbzogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5vcHRpb25zLmlkYkluZm8sIHsgZmlyc3RMb2FkOiBmYWxzZSB9KVxyXG4gICAgICB9LFxyXG4gICAgICBpbnNlcnRFdmVudDogYCR7dGhpcy50aXRsZX0tJHt0aGlzLmlkfS0ke25ldyBEYXRlKCl9YFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmxheWVyREJTZXJ2aWNlLnVwZGF0ZShsYXllckRhdGEpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYWludGFpbkZlYXR1cmVzSW5JZGIoKSB7XHJcbiAgICBjb25zdCBkc0ZlYXR1cmVzID0gdGhpcy5kYXRhU291cmNlLm9sLmdldEZlYXR1cmVzKCk7XHJcbiAgICBjb25zdCBnZW9qc29uT2JqZWN0ID0gSlNPTi5wYXJzZShcclxuICAgICAgbmV3IG9sZm9ybWF0Lkdlb0pTT04oKS53cml0ZUZlYXR1cmVzKGRzRmVhdHVyZXMsIHtcclxuICAgICAgICBkYXRhUHJvamVjdGlvbjogJ0VQU0c6NDMyNicsXHJcbiAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHRoaXMuZGF0YVNvdXJjZS5vbC5nZXRQcm9qZWN0aW9uKCkgfHwgJ0VQU0c6Mzg1NydcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICB0aGlzLmdlb0RCU2VydmljZS51cGRhdGUoXHJcbiAgICAgIHRoaXMuaWQsXHJcbiAgICAgIHRoaXMuaWQsXHJcbiAgICAgIGdlb2pzb25PYmplY3QsXHJcbiAgICAgIEluc2VydFNvdXJjZUluc2VydERCRW51bS5Vc2VyLFxyXG4gICAgICBgJHt0aGlzLnRpdGxlfS0ke3RoaXMuaWR9LSR7bmV3IERhdGUoKX1gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGZsYXNoKGZlYXR1cmUpIHtcclxuICAgIGNvbnN0IHN0YXJ0ID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgICBjb25zdCBsaXN0ZW5lcktleSA9IHRoaXMub2wub24oJ3Bvc3RyZW5kZXInLCBhbmltYXRlLmJpbmQodGhpcykpO1xyXG5cclxuICAgIGZ1bmN0aW9uIGFuaW1hdGUoZXZlbnQpIHtcclxuICAgICAgY29uc3QgdmVjdG9yQ29udGV4dCA9IGdldFZlY3RvckNvbnRleHQoZXZlbnQpO1xyXG4gICAgICBjb25zdCBmcmFtZVN0YXRlID0gZXZlbnQuZnJhbWVTdGF0ZTtcclxuICAgICAgY29uc3QgZmxhc2hHZW9tID0gZmVhdHVyZS5nZXRHZW9tZXRyeSgpLmNsb25lKCk7XHJcbiAgICAgIGNvbnN0IGVsYXBzZWQgPSBmcmFtZVN0YXRlLnRpbWUgLSBzdGFydDtcclxuICAgICAgY29uc3QgZWxhcHNlZFJhdGlvID0gZWxhcHNlZCAvIHRoaXMub3B0aW9ucy5hbmltYXRpb24uZHVyYXRpb247XHJcbiAgICAgIGNvbnN0IG9wYWNpdHkgPSBlYXNlT3V0KDEgLSBlbGFwc2VkUmF0aW8pO1xyXG4gICAgICBjb25zdCBuZXdDb2xvciA9IENvbG9yQXNBcnJheSh0aGlzLm9wdGlvbnMuYW5pbWF0aW9uLmNvbG9yIHx8ICdyZWQnKTtcclxuICAgICAgbmV3Q29sb3JbM10gPSBvcGFjaXR5O1xyXG4gICAgICBsZXQgc3R5bGUgPSB0aGlzLm9sXHJcbiAgICAgICAgLmdldFN0eWxlRnVuY3Rpb24oKVxyXG4gICAgICAgIC5jYWxsKHRoaXMsIGZlYXR1cmUpXHJcbiAgICAgICAgLmZpbmQoKHN0eWxlMikgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHN0eWxlMi5nZXRJbWFnZSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICBpZiAoIXN0eWxlKSB7XHJcbiAgICAgICAgc3R5bGUgPSB0aGlzLm9sLmdldFN0eWxlRnVuY3Rpb24oKS5jYWxsKHRoaXMsIGZlYXR1cmUpWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIGNvbnN0IHN0eWxlQ2xvbmUgPSBzdHlsZS5jbG9uZSgpO1xyXG5cclxuICAgICAgc3dpdGNoIChmZWF0dXJlLmdldEdlb21ldHJ5KCkuZ2V0VHlwZSgpKSB7XHJcbiAgICAgICAgY2FzZSAnUG9pbnQnOlxyXG4gICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICBzdHlsZUNsb25lLmdldEltYWdlKCkgIT09IG51bGwgJiZcclxuICAgICAgICAgICAgdHlwZW9mIHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKS5nZXRSYWRpdXMgPT09ICdmdW5jdGlvbidcclxuICAgICAgICAgICkge1xyXG4gICAgICAgICAgICBjb25zdCByYWRpdXMgPVxyXG4gICAgICAgICAgICAgIGVhc2VPdXQoZWxhcHNlZFJhdGlvKSAqIChzdHlsZUNsb25lLmdldEltYWdlKCkuZ2V0UmFkaXVzKCkgKiAzKTtcclxuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLnNldFJhZGl1cyhyYWRpdXMpO1xyXG4gICAgICAgICAgICBzdHlsZUNsb25lLmdldEltYWdlKCkuc2V0T3BhY2l0eShvcGFjaXR5KTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlICdMaW5lU3RyaW5nJzpcclxuICAgICAgICAgIC8vIFRPRE9cclxuICAgICAgICAgIGlmIChzdHlsZUNsb25lLmdldEltYWdlKCkpIHtcclxuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRJbWFnZSgpLmdldFN0cm9rZSgpLnNldENvbG9yKG5ld0NvbG9yKTtcclxuICAgICAgICAgICAgc3R5bGVDbG9uZVxyXG4gICAgICAgICAgICAgIC5nZXRJbWFnZSgpXHJcbiAgICAgICAgICAgICAgLmdldFN0cm9rZSgpXHJcbiAgICAgICAgICAgICAgLnNldFdpZHRoKFxyXG4gICAgICAgICAgICAgICAgZWFzZU91dChlbGFwc2VkUmF0aW8pICpcclxuICAgICAgICAgICAgICAgICAgKHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKS5nZXRTdHJva2UoKS5nZXRXaWR0aCgpICogMylcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHN0eWxlQ2xvbmUuZ2V0U3Ryb2tlKCkpIHtcclxuICAgICAgICAgICAgc3R5bGVDbG9uZS5nZXRTdHJva2UoKS5zZXRDb2xvcihuZXdDb2xvcik7XHJcbiAgICAgICAgICAgIHN0eWxlQ2xvbmVcclxuICAgICAgICAgICAgICAuZ2V0U3Ryb2tlKClcclxuICAgICAgICAgICAgICAuc2V0V2lkdGgoXHJcbiAgICAgICAgICAgICAgICBlYXNlT3V0KGVsYXBzZWRSYXRpbykgKiAoc3R5bGVDbG9uZS5nZXRTdHJva2UoKS5nZXRXaWR0aCgpICogMylcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSAnUG9seWdvbic6XHJcbiAgICAgICAgICAvLyBUT0RPXHJcbiAgICAgICAgICBpZiAoc3R5bGVDbG9uZS5nZXRJbWFnZSgpKSB7XHJcbiAgICAgICAgICAgIHN0eWxlQ2xvbmUuZ2V0SW1hZ2UoKS5nZXRGaWxsKCkuc2V0Q29sb3IobmV3Q29sb3IpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHN0eWxlQ2xvbmUuZ2V0RmlsbCgpKSB7XHJcbiAgICAgICAgICAgIHN0eWxlQ2xvbmUuZ2V0RmlsbCgpLnNldENvbG9yKG5ld0NvbG9yKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBzdHlsZUNsb25lLnNldFRleHQoJycpO1xyXG4gICAgICB2ZWN0b3JDb250ZXh0LnNldFN0eWxlKHN0eWxlQ2xvbmUpO1xyXG4gICAgICB2ZWN0b3JDb250ZXh0LmRyYXdHZW9tZXRyeShmbGFzaEdlb20pO1xyXG5cclxuICAgICAgaWYgKGVsYXBzZWQgPiB0aGlzLm9wdGlvbnMuYW5pbWF0aW9uLmR1cmF0aW9uKSB7XHJcbiAgICAgICAgdW5CeUtleShsaXN0ZW5lcktleSk7XHJcbiAgICAgICAgLy8gcmVtb3ZlIGxhc3QgZ2VvbWV0cnlcclxuICAgICAgICAvLyB0aGVyZSBpcyBhIGxpdHRsZSBmbGFzaCBiZWZvcmUgZmVhdHVyZSBkaXNhcHBlYXIsIGJldHRlciBzb2x1dGlvbiA/XHJcbiAgICAgICAgdGhpcy5tYXAub2wucmVuZGVyKCk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHRlbGwgT3BlbkxheWVycyB0byBjb250aW51ZSBwb3N0Y29tcG9zZSBhbmltYXRpb25cclxuICAgICAgdGhpcy5tYXAub2wucmVuZGVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0TWFwKG1hcDogSWdvTWFwIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBpZiAobWFwID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy53YXRjaGVyLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLndhdGNoZXIuc3Vic2NyaWJlKCgpID0+IHt9KTtcclxuICAgIH1cclxuICAgIHN1cGVyLnNldE1hcChtYXApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldEV4dGVudChleHRlbnQ6IE1hcEV4dGVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcHRpb25zLmV4dGVudCA9IGV4dGVudDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvblVud2F0Y2goKSB7XHJcbiAgICB0aGlzLmRhdGFTb3VyY2Uub25VbndhdGNoKCk7XHJcbiAgICB0aGlzLnN0b3BBbmltYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdG9wQW5pbWF0aW9uKCkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLm9sLnVuKFxyXG4gICAgICAnYWRkZmVhdHVyZScsXHJcbiAgICAgIGZ1bmN0aW9uIChlKSB7XHJcbiAgICAgICAgaWYgKHRoaXMudmlzaWJsZSkge1xyXG4gICAgICAgICAgdGhpcy5mbGFzaChlLmZlYXR1cmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfS5iaW5kKHRoaXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVuYWJsZVRyYWNrRmVhdHVyZShpZDogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICB0aGlzLnRyYWNrRmVhdHVyZUxpc3RlbmVySWQgPSB0aGlzLmRhdGFTb3VyY2Uub2wub24oXHJcbiAgICAgICdhZGRmZWF0dXJlJyxcclxuICAgICAgdGhpcy50cmFja0ZlYXR1cmUuYmluZCh0aGlzLCBpZClcclxuICAgICk7XHJcbiAgfVxyXG4gIHB1YmxpYyBjZW50ZXJNYXBPbkZlYXR1cmUoaWQ6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgY29uc3QgZmVhdCA9IHRoaXMuZGF0YVNvdXJjZS5vbC5nZXRGZWF0dXJlQnlJZChpZCk7XHJcbiAgICBpZiAoZmVhdCkge1xyXG4gICAgICB0aGlzLm1hcC5vbFxyXG4gICAgICAgIC5nZXRWaWV3KClcclxuICAgICAgICAuc2V0Q2VudGVyKChmZWF0LmdldEdlb21ldHJ5KCkgYXMgYW55KS5nZXRDb29yZGluYXRlcygpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyB0cmFja0ZlYXR1cmUoaWQsIGZlYXQpIHtcclxuICAgIGlmIChmZWF0LmZlYXR1cmUuZ2V0SWQoKSA9PT0gaWQgJiYgdGhpcy52aXNpYmxlKSB7XHJcbiAgICAgIHRoaXMuY2VudGVyTWFwT25GZWF0dXJlKGlkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBkaXNhYmxlVHJhY2tGZWF0dXJlKGlkPzogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICB1bkJ5S2V5KHRoaXMudHJhY2tGZWF0dXJlTGlzdGVuZXJJZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDdXN0b20gbG9hZGVyIGZvciBhIFdGUyBkYXRhc291cmNlXHJcbiAgICogQGludGVybmFsXHJcbiAgICogQHBhcmFtIHZlY3RvclNvdXJjZSB0aGUgdmVjdG9yIHNvdXJjZSB0byBiZSBjcmVhdGVkXHJcbiAgICogQHBhcmFtIG9wdGlvbnMgb2xPcHRpb25zIGZyb20gc291cmNlXHJcbiAgICogQHBhcmFtIGludGVyY2VwdG9yIHRoZSBpbnRlcmNlcHRvciBvZiB0aGUgZGF0YVxyXG4gICAqIEBwYXJhbSBleHRlbnQgdGhlIGV4dGVudCBvZiB0aGUgcmVxdWVzdGVkIGRhdGFcclxuICAgKiBAcGFyYW0gcmVzb2x1dGlvbiB0aGUgY3VycmVudCByZXNvbHV0aW9uXHJcbiAgICogQHBhcmFtIHByb2ogdGhlIHByb2plY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcclxuICAgKiBAcGFyYW0gc3VjY2VzcyBzdWNjZXNzIGNhbGxiYWNrXHJcbiAgICogQHBhcmFtIGZhaWx1cmUgZmFpbHVyZSBjYWxsYmFja1xyXG4gICAqIEBwYXJhbSByYW5kb21QYXJhbSByYW5kb20gcGFyYW1ldGVyIHRvIGVuc3VyZSBjYWNoZSBpcyBub3QgY2F1c2luZyBwcm9ibGVtcyBpbiByZXRyaWV2aW5nIG5ldyBkYXRhXHJcbiAgICovXHJcbiAgcHVibGljIGN1c3RvbVdGU0xvYWRlcihcclxuICAgIHZlY3RvclNvdXJjZTogb2xTb3VyY2VWZWN0b3I8T2xHZW9tZXRyeT4sXHJcbiAgICBvcHRpb25zOiBXRlNEYXRhU291cmNlT3B0aW9ucyxcclxuICAgIGludGVyY2VwdG9yOiBBdXRoSW50ZXJjZXB0b3IsXHJcbiAgICBleHRlbnQ6IEV4dGVudCxcclxuICAgIHJlc29sdXRpb246IG51bWJlcixcclxuICAgIHByb2o6IG9sUHJvamVjdGlvbixcclxuICAgIHN1Y2Nlc3M6IChmZWF0dXJlczogb2xGZWF0dXJlPE9sR2VvbWV0cnk+W10pID0+IHZvaWQsXHJcbiAgICBmYWlsdXJlOiAoKSA9PiB2b2lkLFxyXG4gICAgcmFuZG9tUGFyYW0/OiBib29sZWFuXHJcbiAgKSB7XHJcbiAgICB7XHJcbiAgICAgIGNvbnN0IHBhcmFtc1dGUyA9IG9wdGlvbnMucGFyYW1zV0ZTO1xyXG4gICAgICBjb25zdCB3ZnNQcm9qID0gcGFyYW1zV0ZTLnNyc05hbWVcclxuICAgICAgICA/IG5ldyBvbFByb2plY3Rpb24oeyBjb2RlOiBwYXJhbXNXRlMuc3JzTmFtZSB9KVxyXG4gICAgICAgIDogcHJvajtcclxuICAgICAgY29uc3QgY3VycmVudEV4dGVudCA9IG9scHJvai50cmFuc2Zvcm1FeHRlbnQoZXh0ZW50LCBwcm9qLCB3ZnNQcm9qKTtcclxuICAgICAgY29uc3Qgb2djRmlsdGVycyA9IChvcHRpb25zIGFzIE9nY0ZpbHRlcmFibGVEYXRhU291cmNlT3B0aW9ucykub2djRmlsdGVycztcclxuXHJcbiAgICAgIGlmIChcclxuICAgICAgICAodGhpcy5wcmV2aW91c0xvYWRFeHRlbnQgJiZcclxuICAgICAgICAgIHRoaXMucHJldmlvdXNMb2FkRXh0ZW50ICE9PSBjdXJyZW50RXh0ZW50KSB8fFxyXG4gICAgICAgICh0aGlzLnByZXZpb3VzTG9hZFJlc29sdXRpb24gJiZcclxuICAgICAgICAgIHRoaXMucHJldmlvdXNMb2FkUmVzb2x1dGlvbiAhPT0gcmVzb2x1dGlvbikgfHxcclxuICAgICAgICAodGhpcy5wcmV2aW91c09nY0ZpbHRlcnMgJiYgdGhpcy5wcmV2aW91c09nY0ZpbHRlcnMgIT09IG9nY0ZpbHRlcnMpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHZlY3RvclNvdXJjZS5yZW1vdmVMb2FkZWRFeHRlbnQodGhpcy5wcmV2aW91c0xvYWRFeHRlbnQpO1xyXG4gICAgICAgIGZvciAobGV0IHhociBvZiB0aGlzLnhockFjY3VtdWxhdG9yKSB7XHJcbiAgICAgICAgICB4aHIuYWJvcnQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMucHJldmlvdXNMb2FkRXh0ZW50ID0gY3VycmVudEV4dGVudDtcclxuICAgICAgdGhpcy5wcmV2aW91c0xvYWRSZXNvbHV0aW9uID0gcmVzb2x1dGlvbjtcclxuICAgICAgdGhpcy5wcmV2aW91c09nY0ZpbHRlcnMgPSBvZ2NGaWx0ZXJzO1xyXG5cclxuICAgICAgcGFyYW1zV0ZTLnNyc05hbWUgPSBwYXJhbXNXRlMuc3JzTmFtZSB8fCBwcm9qLmdldENvZGUoKTtcclxuICAgICAgY29uc3QgdXJsID0gYnVpbGRVcmwoXHJcbiAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICBjdXJyZW50RXh0ZW50LFxyXG4gICAgICAgIHdmc1Byb2osXHJcbiAgICAgICAgb2djRmlsdGVycyxcclxuICAgICAgICByYW5kb21QYXJhbVxyXG4gICAgICApO1xyXG4gICAgICBsZXQgc3RhcnRJbmRleCA9IDA7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBwYXJhbXNXRlMudmVyc2lvbiA9PT0gJzIuMC4wJyAmJlxyXG4gICAgICAgIHBhcmFtc1dGUy5tYXhGZWF0dXJlcyA+IGRlZmF1bHRNYXhGZWF0dXJlc1xyXG4gICAgICApIHtcclxuICAgICAgICBjb25zdCBuYk9mRmVhdHVyZSA9IDEwMDA7XHJcbiAgICAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBwYXJhbXNXRlMubWF4RmVhdHVyZXMpIHtcclxuICAgICAgICAgIGxldCBhbHRlcmVkVXJsID0gdXJsLnJlcGxhY2UoXHJcbiAgICAgICAgICAgICdjb3VudD0nICsgcGFyYW1zV0ZTLm1heEZlYXR1cmVzLFxyXG4gICAgICAgICAgICAnY291bnQ9JyArIG5iT2ZGZWF0dXJlXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgYWx0ZXJlZFVybCA9IGFsdGVyZWRVcmwucmVwbGFjZSgnc3RhcnRJbmRleD0wJywgJzAnKTtcclxuICAgICAgICAgIGFsdGVyZWRVcmwgKz0gJyZzdGFydEluZGV4PScgKyBzdGFydEluZGV4O1xyXG4gICAgICAgICAgYWx0ZXJlZFVybC5yZXBsYWNlKC8mJi9nLCAnJicpO1xyXG4gICAgICAgICAgdGhpcy5nZXRGZWF0dXJlcyhcclxuICAgICAgICAgICAgdmVjdG9yU291cmNlLFxyXG4gICAgICAgICAgICBpbnRlcmNlcHRvcixcclxuICAgICAgICAgICAgY3VycmVudEV4dGVudCxcclxuICAgICAgICAgICAgd2ZzUHJvaixcclxuICAgICAgICAgICAgcHJvaixcclxuICAgICAgICAgICAgYWx0ZXJlZFVybCxcclxuICAgICAgICAgICAgc3VjY2VzcyxcclxuICAgICAgICAgICAgZmFpbHVyZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICAgIHN0YXJ0SW5kZXggKz0gbmJPZkZlYXR1cmU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ2V0RmVhdHVyZXMoXHJcbiAgICAgICAgICB2ZWN0b3JTb3VyY2UsXHJcbiAgICAgICAgICBpbnRlcmNlcHRvcixcclxuICAgICAgICAgIGN1cnJlbnRFeHRlbnQsXHJcbiAgICAgICAgICB3ZnNQcm9qLFxyXG4gICAgICAgICAgcHJvaixcclxuICAgICAgICAgIHVybCxcclxuICAgICAgICAgIHN1Y2Nlc3MsXHJcbiAgICAgICAgICBmYWlsdXJlXHJcbiAgICAgICAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9tIGxvYWRlciB0byBnZXQgZmVhdHVyZSBmcm9tIGEgV0ZTIGRhdGFzb3VyY2VcclxuICAgKiBAaW50ZXJuYWxcclxuICAgKiBAcGFyYW0gdmVjdG9yU291cmNlIHRoZSB2ZWN0b3Igc291cmNlIHRvIGJlIGNyZWF0ZWRcclxuICAgKiBAcGFyYW0gaW50ZXJjZXB0b3IgdGhlIGludGVyY2VwdG9yIG9mIHRoZSBkYXRhXHJcbiAgICogQHBhcmFtIGV4dGVudCB0aGUgZXh0ZW50IG9mIHRoZSByZXF1ZXN0ZWQgZGF0YVxyXG4gICAqIEBwYXJhbSBkYXRhUHJvamVjdGlvbiB0aGUgcHJvamVjdGlvbiBvZiB0aGUgcmV0cmlldmVkIGRhdGFcclxuICAgKiBAcGFyYW0gZmVhdHVyZVByb2plY3Rpb24gdGhlIHByb2plY3Rpb24gb2YgdGhlIGNyZWF0ZWQgZmVhdHVyZXNcclxuICAgKiBAcGFyYW0gdXJsIHRoZSB1cmwgc3RyaW5nIHRvIHJldHJpZXZlIHRoZSBkYXRhXHJcbiAgICogQHBhcmFtIHN1Y2Nlc3Mgc3VjY2VzcyBjYWxsYmFja1xyXG4gICAqIEBwYXJhbSBmYWlsdXJlIGZhaWx1cmUgY2FsbGJhY2tcclxuICAgKi9cclxuICBwcml2YXRlIGdldEZlYXR1cmVzKFxyXG4gICAgdmVjdG9yU291cmNlOiBvbFNvdXJjZVZlY3RvcjxPbEdlb21ldHJ5PixcclxuICAgIGludGVyY2VwdG9yOiBBdXRoSW50ZXJjZXB0b3IsXHJcbiAgICBleHRlbnQ6IEV4dGVudCxcclxuICAgIGRhdGFQcm9qZWN0aW9uOiBvbFByb2plY3Rpb24sXHJcbiAgICBmZWF0dXJlUHJvamVjdGlvbjogb2xQcm9qZWN0aW9uLFxyXG4gICAgdXJsOiBzdHJpbmcsXHJcbiAgICBzdWNjZXNzOiAoZmVhdHVyZXM6IG9sRmVhdHVyZTxPbEdlb21ldHJ5PltdKSA9PiB2b2lkLFxyXG4gICAgZmFpbHVyZTogKCkgPT4gdm9pZFxyXG4gICkge1xyXG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XHJcbiAgICBjb25zdCBhbHRlcmVkVXJsV2l0aEtleUF1dGggPSBpbnRlcmNlcHRvci5hbHRlclVybFdpdGhLZXlBdXRoKHVybCk7XHJcbiAgICBsZXQgbW9kaWZpZWRVcmwgPSB1cmw7XHJcbiAgICBpZiAoYWx0ZXJlZFVybFdpdGhLZXlBdXRoKSB7XHJcbiAgICAgIG1vZGlmaWVkVXJsID0gYWx0ZXJlZFVybFdpdGhLZXlBdXRoO1xyXG4gICAgfVxyXG4gICAgeGhyLm9wZW4oJ0dFVCcsIG1vZGlmaWVkVXJsKTtcclxuICAgIGlmIChpbnRlcmNlcHRvcikge1xyXG4gICAgICBpbnRlcmNlcHRvci5pbnRlcmNlcHRYaHIoeGhyLCBtb2RpZmllZFVybCk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBvbkVycm9yID0gKCkgPT4ge1xyXG4gICAgICB2ZWN0b3JTb3VyY2UucmVtb3ZlTG9hZGVkRXh0ZW50KGV4dGVudCk7XHJcbiAgICAgIGZhaWx1cmUoKTtcclxuICAgIH07XHJcbiAgICB4aHIub25lcnJvciA9IG9uRXJyb3I7XHJcbiAgICB4aHIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICBpZiAoeGhyLnN0YXR1cyA9PT0gMjAwICYmIHhoci5yZXNwb25zZVRleHQubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGNvbnN0IGZlYXR1cmVzID0gdmVjdG9yU291cmNlXHJcbiAgICAgICAgICAuZ2V0Rm9ybWF0KClcclxuICAgICAgICAgIC5yZWFkRmVhdHVyZXMoeGhyLnJlc3BvbnNlVGV4dCwge1xyXG4gICAgICAgICAgICBkYXRhUHJvamVjdGlvbixcclxuICAgICAgICAgICAgZmVhdHVyZVByb2plY3Rpb25cclxuICAgICAgICAgIH0pIGFzIG9sRmVhdHVyZTxPbEdlb21ldHJ5PltdO1xyXG4gICAgICAgIGlmIChmZWF0dXJlcykge1xyXG4gICAgICAgICAgdmVjdG9yU291cmNlLmFkZEZlYXR1cmVzKGZlYXR1cmVzKTtcclxuICAgICAgICAgIHN1Y2Nlc3MoZmVhdHVyZXMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBzdWNjZXNzKFtdKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgb25FcnJvcigpO1xyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgdGhpcy54aHJBY2N1bXVsYXRvci5wdXNoKHhocik7XHJcbiAgICB4aHIuc2VuZCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3VzdG9tIGxvYWRlciBmb3IgdmVjdG9yIGxheWVyLlxyXG4gICAqIEBpbnRlcm5hbFxyXG4gICAqIEBwYXJhbSB2ZWN0b3JTb3VyY2UgdGhlIHZlY3RvciBzb3VyY2UgdG8gYmUgY3JlYXRlZFxyXG4gICAqIEBwYXJhbSB1cmwgdGhlIHVybCBzdHJpbmcgb3IgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcclxuICAgKiBAcGFyYW0gaW50ZXJjZXB0b3IgdGhlIGludGVyY2VwdG9yIG9mIHRoZSBkYXRhXHJcbiAgICogQHBhcmFtIGV4dGVudCB0aGUgZXh0ZW50IG9mIHRoZSByZXF1ZXN0ZWQgZGF0YVxyXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIHRoZSBjdXJyZW50IHJlc29sdXRpb25cclxuICAgKiBAcGFyYW0gcHJvamVjdGlvbiB0aGUgcHJvamVjdGlvbiB0byByZXRyaWV2ZSB0aGUgZGF0YVxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3VzdG9tTG9hZGVyKFxyXG4gICAgdmVjdG9yU291cmNlOiBvbFNvdXJjZVZlY3RvcjxPbEdlb21ldHJ5PixcclxuICAgIHVybDogc3RyaW5nLFxyXG4gICAgaW50ZXJjZXB0b3I6IEF1dGhJbnRlcmNlcHRvcixcclxuICAgIGV4dGVudDogRXh0ZW50LFxyXG4gICAgcmVzb2x1dGlvbjogbnVtYmVyLFxyXG4gICAgcHJvamVjdGlvbjogb2xQcm9qZWN0aW9uLFxyXG4gICAgc3VjY2VzczogKGZlYXR1cmVzOiBvbEZlYXR1cmU8T2xHZW9tZXRyeT5bXSkgPT4gdm9pZCxcclxuICAgIGZhaWx1cmU6ICgpID0+IHZvaWRcclxuICApIHtcclxuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgbGV0IG1vZGlmaWVkVXJsID0gdXJsO1xyXG4gICAgaWYgKHR5cGVvZiB1cmwgIT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgY29uc3QgYWx0ZXJlZFVybFdpdGhLZXlBdXRoID0gaW50ZXJjZXB0b3IuYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmwpO1xyXG4gICAgICBpZiAoYWx0ZXJlZFVybFdpdGhLZXlBdXRoKSB7XHJcbiAgICAgICAgbW9kaWZpZWRVcmwgPSBhbHRlcmVkVXJsV2l0aEtleUF1dGg7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5nZW9OZXR3b3JrU2VydmljZSAmJiB0eXBlb2YgdXJsICE9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcclxuICAgICAgY29uc3QgdHlwZSA9IGZvcm1hdC5nZXRUeXBlKCk7XHJcblxyXG4gICAgICBsZXQgcmVzcG9uc2VUeXBlID0gdHlwZTtcclxuICAgICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHtcclxuICAgICAgICB2ZWN0b3JTb3VyY2UucmVtb3ZlTG9hZGVkRXh0ZW50KGV4dGVudCk7XHJcbiAgICAgICAgZmFpbHVyZSgpO1xyXG4gICAgICB9O1xyXG5cclxuICAgICAgY29uc3Qgb3B0aW9uczogU2ltcGxlR2V0T3B0aW9ucyA9IHsgcmVzcG9uc2VUeXBlIH07XHJcbiAgICAgIHRoaXMuZ2VvTmV0d29ya1NlcnZpY2UuZ2VvREJTZXJ2aWNlXHJcbiAgICAgICAgLmdldCh1cmwpXHJcbiAgICAgICAgLnBpcGUoZGVsYXkoNzUwKSlcclxuICAgICAgICAucGlwZShcclxuICAgICAgICAgIGNvbmNhdE1hcCgocikgPT5cclxuICAgICAgICAgICAgclxyXG4gICAgICAgICAgICAgID8gb2YocilcclxuICAgICAgICAgICAgICA6IHRoaXMuZ2VvTmV0d29ya1NlcnZpY2UuZ2V0KG1vZGlmaWVkVXJsIGFzIHN0cmluZywgb3B0aW9ucykucGlwZShcclxuICAgICAgICAgICAgICAgICAgZmlyc3QoKSxcclxuICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgb25FcnJvcigpO1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IHJlcztcclxuICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgICAgLnN1YnNjcmliZSgoY29udGVudCkgPT4ge1xyXG4gICAgICAgICAgaWYgKGNvbnRlbnQpIHtcclxuICAgICAgICAgICAgY29uc3QgZm9ybWF0ID0gdmVjdG9yU291cmNlLmdldEZvcm1hdCgpO1xyXG4gICAgICAgICAgICBjb25zdCB0eXBlID0gZm9ybWF0LmdldFR5cGUoKTtcclxuICAgICAgICAgICAgbGV0IHNvdXJjZTtcclxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdqc29uJyB8fCB0eXBlID09PSAndGV4dCcpIHtcclxuICAgICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XHJcbiAgICAgICAgICAgICAgc291cmNlID0gY29udGVudDtcclxuICAgICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xyXG4gICAgICAgICAgICAgICAgc291cmNlID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcclxuICAgICAgICAgICAgICAgICAgY29udGVudCxcclxuICAgICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcclxuICAgICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGlmIChzb3VyY2UpIHtcclxuICAgICAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IGZvcm1hdC5yZWFkRmVhdHVyZXMoc291cmNlLCB7XHJcbiAgICAgICAgICAgICAgICBleHRlbnQsXHJcbiAgICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvblxyXG4gICAgICAgICAgICAgIH0pIGFzIE9sRmVhdHVyZTxPbEdlb21ldHJ5PltdO1xyXG4gICAgICAgICAgICAgIHZlY3RvclNvdXJjZS5hZGRGZWF0dXJlcyhmZWF0dXJlcyk7XHJcbiAgICAgICAgICAgICAgc3VjY2VzcyhmZWF0dXJlcyk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgb25FcnJvcigpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB4aHIub3BlbignR0VUJywgbW9kaWZpZWRVcmwgYXMgc3RyaW5nKTtcclxuICAgICAgY29uc3QgZm9ybWF0ID0gdmVjdG9yU291cmNlLmdldEZvcm1hdCgpO1xyXG4gICAgICBpZiAoZm9ybWF0LmdldFR5cGUoKSA9PT0gJ2FycmF5YnVmZmVyJykge1xyXG4gICAgICAgIHhoci5yZXNwb25zZVR5cGUgPSAnYXJyYXlidWZmZXInO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChpbnRlcmNlcHRvcikge1xyXG4gICAgICAgIGludGVyY2VwdG9yLmludGVyY2VwdFhocih4aHIsIG1vZGlmaWVkVXJsIGFzIHN0cmluZyk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbnN0IG9uRXJyb3IgPSAoKSA9PiB7XHJcbiAgICAgICAgdmVjdG9yU291cmNlLnJlbW92ZUxvYWRlZEV4dGVudChleHRlbnQpO1xyXG4gICAgICAgIGZhaWx1cmUoKTtcclxuICAgICAgfTtcclxuICAgICAgeGhyLm9uZXJyb3IgPSBvbkVycm9yO1xyXG4gICAgICB4aHIub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIC8vIHN0YXR1cyB3aWxsIGJlIDAgZm9yIGZpbGU6Ly8gdXJsc1xyXG4gICAgICAgIGlmICgheGhyLnN0YXR1cyB8fCAoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCkpIHtcclxuICAgICAgICAgIGNvbnN0IHR5cGUgPSBmb3JtYXQuZ2V0VHlwZSgpO1xyXG4gICAgICAgICAgbGV0IHNvdXJjZTtcclxuICAgICAgICAgIGlmICh0eXBlID09PSAnanNvbicgfHwgdHlwZSA9PT0gJ3RleHQnKSB7XHJcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZVRleHQ7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XHJcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZVhNTDtcclxuICAgICAgICAgICAgaWYgKCFzb3VyY2UpIHtcclxuICAgICAgICAgICAgICBzb3VyY2UgPSBuZXcgRE9NUGFyc2VyKCkucGFyc2VGcm9tU3RyaW5nKFxyXG4gICAgICAgICAgICAgICAgeGhyLnJlc3BvbnNlVGV4dCxcclxuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94bWwnXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnYXJyYXlidWZmZXInKSB7XHJcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChzb3VyY2UpIHtcclxuICAgICAgICAgICAgY29uc3QgZmVhdHVyZXMgPSBmb3JtYXQucmVhZEZlYXR1cmVzKHNvdXJjZSwge1xyXG4gICAgICAgICAgICAgIGV4dGVudCxcclxuICAgICAgICAgICAgICBmZWF0dXJlUHJvamVjdGlvbjogcHJvamVjdGlvblxyXG4gICAgICAgICAgICB9KSBhcyBPbEZlYXR1cmU8T2xHZW9tZXRyeT5bXTtcclxuICAgICAgICAgICAgdmVjdG9yU291cmNlLmFkZEZlYXR1cmVzKGZlYXR1cmVzKTtcclxuICAgICAgICAgICAgc3VjY2VzcyhmZWF0dXJlcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvbkVycm9yKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIG9uRXJyb3IoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIHhoci5zZW5kKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDdXN0b20gbG9hZGVyIGZvciB2ZWN0b3IgbGF5ZXIuXHJcbiAgICogQGludGVybmFsXHJcbiAgICogQHBhcmFtIHZlY3RvclNvdXJjZSB0aGUgdmVjdG9yIHNvdXJjZSB0byBiZSBjcmVhdGVkXHJcbiAgICogQHBhcmFtIGxheWVySUQgdGhlIHVybCBzdHJpbmcgb3IgZnVuY3Rpb24gdG8gcmV0cmlldmUgdGhlIGRhdGFcclxuICAgKiBAcGFyYW0gaW50ZXJjZXB0b3IgdGhlIGludGVyY2VwdG9yIG9mIHRoZSBkYXRhXHJcbiAgICogQHBhcmFtIGV4dGVudCB0aGUgZXh0ZW50IG9mIHRoZSByZXF1ZXN0ZWQgZGF0YVxyXG4gICAqIEBwYXJhbSByZXNvbHV0aW9uIHRoZSBjdXJyZW50IHJlc29sdXRpb25cclxuICAgKiBAcGFyYW0gcHJvamVjdGlvbiB0aGUgcHJvamVjdGlvbiB0byByZXRyaWV2ZSB0aGUgZGF0YVxyXG4gICAqL1xyXG4gIHByaXZhdGUgY3VzdG9tSURCTG9hZGVyKFxyXG4gICAgdmVjdG9yU291cmNlLFxyXG4gICAgbGF5ZXJJRCxcclxuICAgIGV4dGVudCxcclxuICAgIHByb2plY3Rpb24sXHJcbiAgICBzdWNjZXNzLFxyXG4gICAgZmFpbHVyZVxyXG4gICkge1xyXG4gICAgaWYgKHRoaXMuZ2VvTmV0d29ya1NlcnZpY2UpIHtcclxuICAgICAgY29uc3Qgb25FcnJvciA9ICgpID0+IHtcclxuICAgICAgICB2ZWN0b3JTb3VyY2UucmVtb3ZlTG9hZGVkRXh0ZW50KGV4dGVudCk7XHJcbiAgICAgICAgZmFpbHVyZSgpO1xyXG4gICAgICB9O1xyXG4gICAgICB0aGlzLmdlb05ldHdvcmtTZXJ2aWNlLmdlb0RCU2VydmljZS5nZXQobGF5ZXJJRCkuc3Vic2NyaWJlKChjb250ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKGNvbnRlbnQpIHtcclxuICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZlY3RvclNvdXJjZS5nZXRGb3JtYXQoKTtcclxuICAgICAgICAgIGNvbnN0IHR5cGUgPSBmb3JtYXQuZ2V0VHlwZSgpO1xyXG4gICAgICAgICAgbGV0IHNvdXJjZTtcclxuICAgICAgICAgIGlmICh0eXBlID09PSAnanNvbicgfHwgdHlwZSA9PT0gJ3RleHQnKSB7XHJcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICd4bWwnKSB7XHJcbiAgICAgICAgICAgIHNvdXJjZSA9IGNvbnRlbnQ7XHJcbiAgICAgICAgICAgIGlmICghc291cmNlKSB7XHJcbiAgICAgICAgICAgICAgc291cmNlID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcclxuICAgICAgICAgICAgICAgIGNvbnRlbnQsXHJcbiAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24veG1sJ1xyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2FycmF5YnVmZmVyJykge1xyXG4gICAgICAgICAgICBzb3VyY2UgPSBjb250ZW50O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xyXG4gICAgICAgICAgICBjb25zdCBmZWF0dXJlcyA9IGZvcm1hdC5yZWFkRmVhdHVyZXMoc291cmNlLCB7XHJcbiAgICAgICAgICAgICAgZXh0ZW50LFxyXG4gICAgICAgICAgICAgIGZlYXR1cmVQcm9qZWN0aW9uOiBwcm9qZWN0aW9uXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB2ZWN0b3JTb3VyY2UuYWRkRmVhdHVyZXMoZmVhdHVyZXMsIGZvcm1hdC5yZWFkUHJvamVjdGlvbihzb3VyY2UpKTtcclxuICAgICAgICAgICAgc3VjY2VzcyhmZWF0dXJlcyk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBvbkVycm9yKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9ydGlsZS1sYXllci5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9nZW8vc3JjL2xpYi9sYXllci9zaGFyZWQvbGF5ZXJzL3ZlY3RvcnRpbGUtbGF5ZXIuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRmVhdHVyZSBmcm9tICdvbC9GZWF0dXJlJztcclxuaW1wb3J0IG9sTGF5ZXJWZWN0b3JUaWxlIGZyb20gJ29sL2xheWVyL1ZlY3RvclRpbGUnO1xyXG5pbXBvcnQgUmVuZGVyRmVhdHVyZSBmcm9tICdvbC9yZW5kZXIvRmVhdHVyZSc7XHJcbmltcG9ydCBvbFN0eWxlIGZyb20gJ29sL3N0eWxlL1N0eWxlJztcclxuXHJcbmltcG9ydCB7IE1WVERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9tdnQtZGF0YXNvdXJjZSc7XHJcbmltcG9ydCB7IE1WVERhdGFTb3VyY2VPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvbXZ0LWRhdGFzb3VyY2UuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgSWdvU3R5bGUgfSBmcm9tICcuLi8uLi8uLi9zdHlsZS9zaGFyZWQvdmVjdG9yL3ZlY3Rvci1zdHlsZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBMYXllck9wdGlvbnMgfSBmcm9tICcuL2xheWVyLmludGVyZmFjZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFZlY3RvclRpbGVMYXllck9wdGlvbnMgZXh0ZW5kcyBMYXllck9wdGlvbnMge1xyXG4gIHN0eWxlPzpcclxuICAgIHwgb2xTdHlsZVxyXG4gICAgfCBvbFN0eWxlW11cclxuICAgIHwgKChcclxuICAgICAgICBhcmcwOiBSZW5kZXJGZWF0dXJlIHwgRmVhdHVyZTxhbnk+LFxyXG4gICAgICAgIGFyZzE6IG51bWJlclxyXG4gICAgICApID0+IHZvaWQgfCBvbFN0eWxlIHwgb2xTdHlsZVtdKTtcclxuICBzb3VyY2U/OiBNVlREYXRhU291cmNlO1xyXG4gIHNvdXJjZU9wdGlvbnM/OiBNVlREYXRhU291cmNlT3B0aW9ucztcclxuICBvbD86IG9sTGF5ZXJWZWN0b3JUaWxlO1xyXG4gIGRlY2x1dHRlcj86IGJvb2xlYW47XHJcbiAgaWdvU3R5bGU/OiBJZ29TdHlsZTtcclxufVxyXG4iXX0=
|
|
@@ -104,4 +104,4 @@ export class VectorTileLayer extends Layer {
|
|
|
104
104
|
super.setMap(map);
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9ydGlsZS1sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9ydGlsZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLGlCQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBS3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2hDLE1BQU0sT0FBTyxlQUFnQixTQUFRLEtBQUs7SUFTL0I7SUFDQTtJQUxELE9BQU8sQ0FBYztJQUU3QixZQUNFLE9BQStCLEVBQ3hCLGNBQStCLEVBQy9CLGVBQWlDO1FBRXhDLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSHpDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFHeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQXdCO1NBQ3JELENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUF3QixDQUFDO1FBRXRFLGdCQUFnQixDQUFDLG1CQUFtQixD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O29CQUNMLE9BQU87b0JBQ1AsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztpQkFDcEI7WUFDSCxDQUFDLENBQUM7WUFDRixHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDakIsT0FBTztnQkFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNiLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBdUI7UUFDbkMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUI7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2xDO1FBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBdXRoSW50ZXJjZXB0b3IgfSBmcm9tICdAaWdvMi9hdXRoJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XG5cbmltcG9ydCBWZWN0b3JUaWxlIGZyb20gJ29sL1ZlY3RvclRpbGUnO1xuaW1wb3J0IG9sTGF5ZXJWZWN0b3JUaWxlIGZyb20gJ29sL2xheWVyL1ZlY3RvclRpbGUnO1xuaW1wb3J0IG9sU291cmNlVmVjdG9yVGlsZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yVGlsZSc7XG5cbmltcG9ydCB7IE1WVERhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi8uLi9kYXRhc291cmNlL3NoYXJlZC9kYXRhc291cmNlcy9tdnQtZGF0YXNvdXJjZSc7XG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcCc7XG5pbXBvcnQgeyBUaWxlV2F0Y2hlciB9IGZyb20gJy4uLy4uL3V0aWxzL3RpbGUtd2F0Y2hlcic7XG5pbXBvcnQgeyBMYXllciB9IGZyb20gJy4vbGF5ZXInO1xuaW1wb3J0IHsgVmVjdG9yVGlsZUxheWVyT3B0aW9ucyB9IGZyb20gJy4vdmVjdG9ydGlsZS1sYXllci5pbnRlcmZhY2UnO1xuXG5leHBvcnQgY2xhc3MgVmVjdG9yVGlsZUxheWVyIGV4dGVuZHMgTGF5ZXIge1xuICBwdWJsaWMgZGVjbGFyZSBkYXRhU291cmNlOiBNVlREYXRhU291cmNlO1xuICBwdWJsaWMgZGVjbGFyZSBvcHRpb25zOiBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zO1xuICBwdWJsaWMgZGVjbGFyZSBvbDogb2xMYXllclZlY3RvclRpbGU7XG5cbiAgcHJpdmF0ZSB3YXRjaGVyOiBUaWxlV2F0Y2hlcjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBvcHRpb25zOiBWZWN0b3JUaWxlTGF5ZXJPcHRpb25zLFxuICAgIHB1YmxpYyBtZXNzYWdlU2VydmljZT86IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBhdXRoSW50ZXJjZXB0b3I/OiBBdXRoSW50ZXJjZXB0b3JcbiAgKSB7XG4gICAgc3VwZXIob3B0aW9ucywgbWVzc2FnZVNlcnZpY2UsIGF1dGhJbnRlcmNlcHRvcik7XG4gICAgdGhpcy53YXRjaGVyID0gbmV3IFRpbGVXYXRjaGVyKHRoaXMpO1xuICAgIHRoaXMuc3RhdHVzJCA9IHRoaXMud2F0Y2hlci5zdGF0dXMkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU9sTGF5ZXIoKTogb2xMYXllclZlY3RvclRpbGUge1xuICAgIGNvbnN0IG9sT3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMub3B0aW9ucywge1xuICAgICAgc291cmNlOiB0aGlzLm9wdGlvbnMuc291cmNlLm9sIGFzIG9sU291cmNlVmVjdG9yVGlsZVxuICAgIH0pO1xuXG4gICAgY29uc3QgdmVjdG9yVGlsZSA9IG5ldyBvbExheWVyVmVjdG9yVGlsZShvbE9wdGlvbnMpO1xuICAgIGNvbnN0IHZlY3RvclRpbGVTb3VyY2UgPSB2ZWN0b3JUaWxlLmdldFNvdXJjZSgpIGFzIG9sU291cmNlVmVjdG9yVGlsZTtcblxuICAgIHZlY3RvclRpbGVTb3VyY2Uuc2V0VGlsZUxvYWRGdW5jdGlvbigodGlsZTogVmVjdG9yVGlsZSwgdXJsOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGxvYWRlciA9IHRoaXMuY3VzdG9tTG9hZGVyKFxuICAgICAgICB1cmwsXG4gICAgICAgIHRpbGUuZ2V0Rm9ybWF0KCksXG4gICAgICAgIHRoaXMuYXV0aEludGVyY2VwdG9yLFxuICAgICAgICB0aWxlLm9uTG9hZC5iaW5kKHRpbGUpXG4gICAgICApO1xuICAgICAgaWYgKGxvYWRlcikge1xuICAgICAgICB0aWxlLnNldExvYWRlcihsb2FkZXIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHZlY3RvclRpbGU7XG4gIH1cblxuICAvKipcbiAgICogQ3VzdG9tIGxvYWRlciBmb3IgdmVjdG9yIHRpbGUgbGF5ZXIuIE1vZGlmaWVkIGZyb20gdGhlIGxvYWRGZWF0dXJlc1hociBmdW5jdGlvbiBpbiBvbFxcZmVhdHVyZWxvYWRlci5qc1xuICAgKiBAaW50ZXJuYWxcbiAgICogQHBhcmFtIHVybCB0aGUgdXJsIHN0cmluZyBvciBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgZGF0YVxuICAgKiBAcGFyYW0gZm9ybWF0IHRoZSBmb3JtYXQgb2YgdGhlIHRpbGVcbiAgICogQHBhcmFtIGludGVyY2VwdG9yIHRoZSBpbnRlcmNlcHRvciBvZiB0aGUgZGF0YVxuICAgKiBAcGFyYW0gc3VjY2VzcyBPbiBzdWNjZXNzIGV2ZW50IGFjdGlvbiB0byB0cmlnZ2VyXG4gICAqIEBwYXJhbSBmYWlsdXJlIE9uIGZhaWx1cmUgZXZlbnQgYWN0aW9uIHRvIHRyaWdnZXIgVE9ET1xuICAgKi9cbiAgY3VzdG9tTG9hZGVyKHVybCwgZm9ybWF0LCBpbnRlcmNlcHRvciwgc3VjY2VzcywgZmFpbHVyZT8pIHtcbiAgICByZXR1cm4gKGV4dGVudCwgcmVzb2x1dGlvbiwgcHJvamVjdGlvbikgPT4ge1xuICAgICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgICBsZXQgbW9kaWZpZWRVcmwgPSB1cmw7XG4gICAgICBpZiAodHlwZW9mIHVybCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjb25zdCBhbHRlcmVkVXJsV2l0aEtleUF1dGggPSBpbnRlcmNlcHRvci5hbHRlclVybFdpdGhLZXlBdXRoKHVybCk7XG4gICAgICAgIGlmIChhbHRlcmVkVXJsV2l0aEtleUF1dGgpIHtcbiAgICAgICAgICBtb2RpZmllZFVybCA9IGFsdGVyZWRVcmxXaXRoS2V5QXV0aDtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbW9kaWZpZWRVcmwgPSB1cmwoZXh0ZW50LCByZXNvbHV0aW9uLCBwcm9qZWN0aW9uKTtcbiAgICAgIH1cbiAgICAgIHhoci5vcGVuKCdHRVQnLCBtb2RpZmllZFVybCk7XG4gICAgICBpZiAoaW50ZXJjZXB0b3IpIHtcbiAgICAgICAgaW50ZXJjZXB0b3IuaW50ZXJjZXB0WGhyKHhociwgbW9kaWZpZWRVcmwpO1xuICAgICAgfVxuXG4gICAgICBpZiAoZm9ybWF0LmdldFR5cGUoKSA9PT0gJ2FycmF5YnVmZmVyJykge1xuICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcbiAgICAgIH1cbiAgICAgIHhoci5vbmxvYWQgPSAoZXZlbnQpID0+IHtcbiAgICAgICAgaWYgKCF4aHIuc3RhdHVzIHx8ICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSkge1xuICAgICAgICAgIGNvbnN0IHR5cGUgPSBmb3JtYXQuZ2V0VHlwZSgpO1xuICAgICAgICAgIGxldCBzb3VyY2U7XG4gICAgICAgICAgaWYgKHR5cGUgPT09ICdqc29uJyB8fCB0eXBlID09PSAndGV4dCcpIHtcbiAgICAgICAgICAgIHNvdXJjZSA9IHhoci5yZXNwb25zZVRleHQ7XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAneG1sJykge1xuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlWE1MO1xuICAgICAgICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgICAgICAgc291cmNlID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyhcbiAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VUZXh0LFxuICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi94bWwnXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnYXJyYXlidWZmZXInKSB7XG4gICAgICAgICAgICBzb3VyY2UgPSB4aHIucmVzcG9uc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChzb3VyY2UpIHtcbiAgICAgICAgICAgIHN1Y2Nlc3MuY2FsbChcbiAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgZm9ybWF0LnJlYWRGZWF0dXJlcyhzb3VyY2UsIHtcbiAgICAgICAgICAgICAgICBleHRlbnQsXG4gICAgICAgICAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb25cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGZvcm1hdC5yZWFkUHJvamVjdGlvbihzb3VyY2UpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBUT0RPXG4gICAgICAgICAgICBmYWlsdXJlLmNhbGwodGhpcyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIC8vIFRPRE9cbiAgICAgICAgICBmYWlsdXJlLmNhbGwodGhpcyk7XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgLy8gVE9ET1xuICAgICAgICBmYWlsdXJlLmNhbGwodGhpcyk7XG4gICAgICB9O1xuICAgICAgeGhyLnNlbmQoKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHNldE1hcChtYXA6IElnb01hcCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChtYXAgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy53YXRjaGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud2F0Y2hlci5zdWJzY3JpYmUoKCkgPT4ge30pO1xuICAgIH1cbiAgICBzdXBlci5zZXRNYXAobWFwKTtcbiAgfVxufVxuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVjdG9ydGlsZS1sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dlby9zcmMvbGliL2xheWVyL3NoYXJlZC9sYXllcnMvdmVjdG9ydGlsZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLGlCQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBS3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBR2hDLE1BQU0sT0FBTyxlQUFnQixTQUFRLEtBQUs7SUFTL0I7SUFDQTtJQUxELE9BQU8sQ0FBYztJQUU3QixZQUNFLE9BQStCLEVBQ3hCLGNBQStCLEVBQy9CLGVBQWlDO1FBRXhDLEtBQUssQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBSHpDLG1CQUFjLEdBQWQsY0FBYyxDQUFpQjtRQUMvQixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFHeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDaEQsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQXdCO1NBQ3JELENBQUMsQ0FBQztRQUVILE1BQU0sVUFBVSxHQUFHLElBQUksaUJBQWlCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEQsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUF3QixDQUFDO1FBRXRFLGdCQUFnQixDQUFDLG1CQUFtQixD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QWMsQ0FBQyxNQUFNLENBQUMsQ0FDOUIsQ0FBQztvQkFDSixDQUFDO3lCQUFNLENBQUM7d0JBQ04sT0FBTzt3QkFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNyQixDQUFDO2dCQUNILENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPO29CQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3JCLENBQUM7WUFDSCxDQUFDLENBQUM7WUFDRixHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsRUFBRTtnQkFDakIsT0FBTztnQkFDUCxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3JCLENBQUMsQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNiLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFTSxNQUFNLENBQUMsR0FBdUI7UUFDbkMsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhJbnRlcmNlcHRvciB9IGZyb20gJ0BpZ28yL2F1dGgnO1xyXG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IFZlY3RvclRpbGUgZnJvbSAnb2wvVmVjdG9yVGlsZSc7XHJcbmltcG9ydCBvbExheWVyVmVjdG9yVGlsZSBmcm9tICdvbC9sYXllci9WZWN0b3JUaWxlJztcclxuaW1wb3J0IG9sU291cmNlVmVjdG9yVGlsZSBmcm9tICdvbC9zb3VyY2UvVmVjdG9yVGlsZSc7XHJcblxyXG5pbXBvcnQgeyBNVlREYXRhU291cmNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YXNvdXJjZS9zaGFyZWQvZGF0YXNvdXJjZXMvbXZ0LWRhdGFzb3VyY2UnO1xyXG5pbXBvcnQgeyBJZ29NYXAgfSBmcm9tICcuLi8uLi8uLi9tYXAvc2hhcmVkL21hcCc7XHJcbmltcG9ydCB7IFRpbGVXYXRjaGVyIH0gZnJvbSAnLi4vLi4vdXRpbHMvdGlsZS13YXRjaGVyJztcclxuaW1wb3J0IHsgTGF5ZXIgfSBmcm9tICcuL2xheWVyJztcclxuaW1wb3J0IHsgVmVjdG9yVGlsZUxheWVyT3B0aW9ucyB9IGZyb20gJy4vdmVjdG9ydGlsZS1sYXllci5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFZlY3RvclRpbGVMYXllciBleHRlbmRzIExheWVyIHtcclxuICBwdWJsaWMgZGVjbGFyZSBkYXRhU291cmNlOiBNVlREYXRhU291cmNlO1xyXG4gIHB1YmxpYyBkZWNsYXJlIG9wdGlvbnM6IFZlY3RvclRpbGVMYXllck9wdGlvbnM7XHJcbiAgcHVibGljIGRlY2xhcmUgb2w6IG9sTGF5ZXJWZWN0b3JUaWxlO1xyXG5cclxuICBwcml2YXRlIHdhdGNoZXI6IFRpbGVXYXRjaGVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIG9wdGlvbnM6IFZlY3RvclRpbGVMYXllck9wdGlvbnMsXHJcbiAgICBwdWJsaWMgbWVzc2FnZVNlcnZpY2U/OiBNZXNzYWdlU2VydmljZSxcclxuICAgIHB1YmxpYyBhdXRoSW50ZXJjZXB0b3I/OiBBdXRoSW50ZXJjZXB0b3JcclxuICApIHtcclxuICAgIHN1cGVyKG9wdGlvbnMsIG1lc3NhZ2VTZXJ2aWNlLCBhdXRoSW50ZXJjZXB0b3IpO1xyXG4gICAgdGhpcy53YXRjaGVyID0gbmV3IFRpbGVXYXRjaGVyKHRoaXMpO1xyXG4gICAgdGhpcy5zdGF0dXMkID0gdGhpcy53YXRjaGVyLnN0YXR1cyQ7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY3JlYXRlT2xMYXllcigpOiBvbExheWVyVmVjdG9yVGlsZSB7XHJcbiAgICBjb25zdCBvbE9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm9wdGlvbnMsIHtcclxuICAgICAgc291cmNlOiB0aGlzLm9wdGlvbnMuc291cmNlLm9sIGFzIG9sU291cmNlVmVjdG9yVGlsZVxyXG4gICAgfSk7XHJcblxyXG4gICAgY29uc3QgdmVjdG9yVGlsZSA9IG5ldyBvbExheWVyVmVjdG9yVGlsZShvbE9wdGlvbnMpO1xyXG4gICAgY29uc3QgdmVjdG9yVGlsZVNvdXJjZSA9IHZlY3RvclRpbGUuZ2V0U291cmNlKCkgYXMgb2xTb3VyY2VWZWN0b3JUaWxlO1xyXG5cclxuICAgIHZlY3RvclRpbGVTb3VyY2Uuc2V0VGlsZUxvYWRGdW5jdGlvbigodGlsZTogVmVjdG9yVGlsZSwgdXJsOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgbG9hZGVyID0gdGhpcy5jdXN0b21Mb2FkZXIoXHJcbiAgICAgICAgdXJsLFxyXG4gICAgICAgIHRpbGUuZ2V0Rm9ybWF0KCksXHJcbiAgICAgICAgdGhpcy5hdXRoSW50ZXJjZXB0b3IsXHJcbiAgICAgICAgdGlsZS5vbkxvYWQuYmluZCh0aWxlKVxyXG4gICAgICApO1xyXG4gICAgICBpZiAobG9hZGVyKSB7XHJcbiAgICAgICAgdGlsZS5zZXRMb2FkZXIobG9hZGVyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHZlY3RvclRpbGU7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDdXN0b20gbG9hZGVyIGZvciB2ZWN0b3IgdGlsZSBsYXllci4gTW9kaWZpZWQgZnJvbSB0aGUgbG9hZEZlYXR1cmVzWGhyIGZ1bmN0aW9uIGluIG9sXFxmZWF0dXJlbG9hZGVyLmpzXHJcbiAgICogQGludGVybmFsXHJcbiAgICogQHBhcmFtIHVybCB0aGUgdXJsIHN0cmluZyBvciBmdW5jdGlvbiB0byByZXRyaWV2ZSB0aGUgZGF0YVxyXG4gICAqIEBwYXJhbSBmb3JtYXQgdGhlIGZvcm1hdCBvZiB0aGUgdGlsZVxyXG4gICAqIEBwYXJhbSBpbnRlcmNlcHRvciB0aGUgaW50ZXJjZXB0b3Igb2YgdGhlIGRhdGFcclxuICAgKiBAcGFyYW0gc3VjY2VzcyBPbiBzdWNjZXNzIGV2ZW50IGFjdGlvbiB0byB0cmlnZ2VyXHJcbiAgICogQHBhcmFtIGZhaWx1cmUgT24gZmFpbHVyZSBldmVudCBhY3Rpb24gdG8gdHJpZ2dlciBUT0RPXHJcbiAgICovXHJcbiAgY3VzdG9tTG9hZGVyKHVybCwgZm9ybWF0LCBpbnRlcmNlcHRvciwgc3VjY2VzcywgZmFpbHVyZT8pIHtcclxuICAgIHJldHVybiAoZXh0ZW50LCByZXNvbHV0aW9uLCBwcm9qZWN0aW9uKSA9PiB7XHJcbiAgICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xyXG4gICAgICBsZXQgbW9kaWZpZWRVcmwgPSB1cmw7XHJcbiAgICAgIGlmICh0eXBlb2YgdXJsICE9PSAnZnVuY3Rpb24nKSB7XHJcbiAgICAgICAgY29uc3QgYWx0ZXJlZFVybFdpdGhLZXlBdXRoID0gaW50ZXJjZXB0b3IuYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmwpO1xyXG4gICAgICAgIGlmIChhbHRlcmVkVXJsV2l0aEtleUF1dGgpIHtcclxuICAgICAgICAgIG1vZGlmaWVkVXJsID0gYWx0ZXJlZFVybFdpdGhLZXlBdXRoO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBtb2RpZmllZFVybCA9IHVybChleHRlbnQsIHJlc29sdXRpb24sIHByb2plY3Rpb24pO1xyXG4gICAgICB9XHJcbiAgICAgIHhoci5vcGVuKCdHRVQnLCBtb2RpZmllZFVybCk7XHJcbiAgICAgIGlmIChpbnRlcmNlcHRvcikge1xyXG4gICAgICAgIGludGVyY2VwdG9yLmludGVyY2VwdFhocih4aHIsIG1vZGlmaWVkVXJsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGZvcm1hdC5nZXRUeXBlKCkgPT09ICdhcnJheWJ1ZmZlcicpIHtcclxuICAgICAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2FycmF5YnVmZmVyJztcclxuICAgICAgfVxyXG4gICAgICB4aHIub25sb2FkID0gKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgaWYgKCF4aHIuc3RhdHVzIHx8ICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSkge1xyXG4gICAgICAgICAgY29uc3QgdHlwZSA9IGZvcm1hdC5nZXRUeXBlKCk7XHJcbiAgICAgICAgICBsZXQgc291cmNlO1xyXG4gICAgICAgICAgaWYgKHR5cGUgPT09ICdqc29uJyB8fCB0eXBlID09PSAndGV4dCcpIHtcclxuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlVGV4dDtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3htbCcpIHtcclxuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlWE1MO1xyXG4gICAgICAgICAgICBpZiAoIXNvdXJjZSkge1xyXG4gICAgICAgICAgICAgIHNvdXJjZSA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoXHJcbiAgICAgICAgICAgICAgICB4aHIucmVzcG9uc2VUZXh0LFxyXG4gICAgICAgICAgICAgICAgJ2FwcGxpY2F0aW9uL3htbCdcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdhcnJheWJ1ZmZlcicpIHtcclxuICAgICAgICAgICAgc291cmNlID0geGhyLnJlc3BvbnNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKHNvdXJjZSkge1xyXG4gICAgICAgICAgICBzdWNjZXNzLmNhbGwoXHJcbiAgICAgICAgICAgICAgdGhpcyxcclxuICAgICAgICAgICAgICBmb3JtYXQucmVhZEZlYXR1cmVzKHNvdXJjZSwge1xyXG4gICAgICAgICAgICAgICAgZXh0ZW50LFxyXG4gICAgICAgICAgICAgICAgZmVhdHVyZVByb2plY3Rpb246IHByb2plY3Rpb25cclxuICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICBmb3JtYXQucmVhZFByb2plY3Rpb24oc291cmNlKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgLy8gVE9ET1xyXG4gICAgICAgICAgICBmYWlsdXJlLmNhbGwodGhpcyk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vIFRPRE9cclxuICAgICAgICAgIGZhaWx1cmUuY2FsbCh0aGlzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIHhoci5vbmVycm9yID0gKCkgPT4ge1xyXG4gICAgICAgIC8vIFRPRE9cclxuICAgICAgICBmYWlsdXJlLmNhbGwodGhpcyk7XHJcbiAgICAgIH07XHJcbiAgICAgIHhoci5zZW5kKCk7XHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldE1hcChtYXA6IElnb01hcCB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYgKG1hcCA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMud2F0Y2hlci51bnN1YnNjcmliZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy53YXRjaGVyLnN1YnNjcmliZSgoKSA9PiB7fSk7XHJcbiAgICB9XHJcbiAgICBzdXBlci5zZXRNYXAobWFwKTtcclxuICB9XHJcbn1cclxuIl19
|