@carto/kepler.gl 0.0.81 → 0.0.82
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/dist/actions/action-wrapper.d.ts +115 -0
- package/dist/actions/action-wrapper.js +5 -5
- package/dist/actions/actions.d.ts +195 -0
- package/dist/actions/actions.js +20 -15
- package/dist/actions/identity-actions.d.ts +61 -0
- package/dist/actions/identity-actions.js +15 -10
- package/dist/actions/index.d.ts +9 -0
- package/dist/actions/index.js +1 -1
- package/dist/actions/map-state-actions.d.ts +69 -0
- package/dist/actions/map-state-actions.js +15 -12
- package/dist/actions/map-style-actions.d.ts +146 -0
- package/dist/actions/map-style-actions.js +53 -29
- package/dist/actions/provider-actions.d.ts +153 -0
- package/dist/actions/provider-actions.js +73 -42
- package/dist/actions/ui-state-actions.d.ts +300 -0
- package/dist/actions/ui-state-actions.js +135 -67
- package/dist/actions/vis-state-actions.d.ts +821 -0
- package/dist/actions/vis-state-actions.js +26 -111
- package/dist/cloud-providers/index.d.ts +2 -0
- package/dist/cloud-providers/index.js +2 -2
- package/dist/cloud-providers/provider.d.ts +176 -0
- package/dist/cloud-providers/provider.js +15 -16
- package/dist/components/bottom-widget.d.ts +47 -0
- package/dist/components/bottom-widget.js +10 -7
- package/dist/components/common/action-panel.d.ts +27 -0
- package/dist/components/common/action-panel.js +5 -7
- package/dist/components/common/animation-control/animation-control.d.ts +24 -0
- package/dist/components/common/animation-control/animation-control.js +7 -6
- package/dist/components/common/animation-control/animation-controller.d.ts +16 -0
- package/dist/components/common/animation-control/animation-controller.js +51 -31
- package/dist/components/common/animation-control/animation-speed-slider.d.ts +12 -0
- package/dist/components/common/animation-control/animation-speed-slider.js +6 -9
- package/dist/components/common/animation-control/floating-time-display.d.ts +9 -0
- package/dist/components/common/animation-control/floating-time-display.js +7 -4
- package/dist/components/common/animation-control/playback-controls.d.ts +72 -0
- package/dist/components/common/animation-control/playback-controls.js +4 -5
- package/dist/components/common/animation-control/speed-control.d.ts +13 -0
- package/dist/components/common/animation-control/speed-control.js +1 -1
- package/dist/components/common/checkbox.d.ts +35 -0
- package/dist/components/common/checkbox.js +10 -27
- package/dist/components/common/color-legend.d.ts +43 -0
- package/dist/components/common/color-legend.js +11 -23
- package/dist/components/common/data-table/button.d.ts +8 -0
- package/dist/components/common/data-table/button.js +2 -2
- package/dist/components/common/data-table/canvas.d.ts +2 -0
- package/dist/components/common/data-table/canvas.js +1 -1
- package/dist/components/common/data-table/cell-size.d.ts +36 -0
- package/dist/components/common/data-table/cell-size.js +1 -1
- package/dist/components/common/data-table/grid.d.ts +7 -0
- package/dist/components/common/data-table/grid.js +18 -11
- package/dist/components/common/data-table/index.d.ts +143 -0
- package/dist/components/common/data-table/index.js +44 -47
- package/dist/components/common/data-table/option-dropdown.d.ts +14 -0
- package/dist/components/common/data-table/option-dropdown.js +2 -2
- package/dist/components/common/dataset-label.d.ts +10 -0
- package/dist/components/common/dataset-label.js +3 -3
- package/dist/components/common/error-boundary.d.ts +16 -0
- package/dist/components/common/error-boundary.js +4 -6
- package/dist/components/common/field-selector.d.ts +47 -0
- package/dist/components/common/field-selector.js +14 -48
- package/dist/components/common/field-token.d.ts +45 -0
- package/dist/components/common/field-token.js +2 -2
- package/dist/components/common/file-uploader/file-drop.d.ts +54 -0
- package/dist/components/common/file-uploader/file-drop.js +22 -21
- package/dist/components/common/file-uploader/file-upload-progress.d.ts +8 -0
- package/dist/components/common/file-uploader/file-upload-progress.js +7 -8
- package/dist/components/common/file-uploader/file-upload.d.ts +27 -0
- package/dist/components/common/file-uploader/file-upload.js +12 -14
- package/dist/components/common/file-uploader/upload-button.d.ts +8 -0
- package/dist/components/common/file-uploader/upload-button.js +37 -61
- package/dist/components/common/histogram-plot.d.ts +3 -0
- package/dist/components/common/histogram-plot.js +10 -5
- package/dist/components/common/icons/add.d.ts +9 -0
- package/dist/components/common/icons/add.js +4 -10
- package/dist/components/common/icons/anchor_window.d.ts +11 -0
- package/dist/components/common/icons/anchor_window.js +1 -6
- package/dist/components/common/icons/arrow-down-alt.d.ts +9 -0
- package/dist/components/common/icons/arrow-down-alt.js +4 -10
- package/dist/components/common/icons/arrow-down-solid.d.ts +9 -0
- package/dist/components/common/icons/arrow-down-solid.js +58 -0
- package/dist/components/common/icons/arrow-down.d.ts +9 -0
- package/dist/components/common/icons/arrow-down.js +4 -10
- package/dist/components/common/icons/arrow-left.d.ts +9 -0
- package/dist/components/common/icons/arrow-left.js +4 -10
- package/dist/components/common/icons/arrow-right.d.ts +9 -0
- package/dist/components/common/icons/arrow-right.js +4 -10
- package/dist/components/common/icons/arrow-up-alt.d.ts +9 -0
- package/dist/components/common/icons/arrow-up-alt.js +4 -10
- package/dist/components/common/icons/arrow-up-solid.d.ts +9 -0
- package/dist/components/common/icons/arrow-up-solid.js +4 -10
- package/dist/components/common/icons/arrow-up.d.ts +9 -0
- package/dist/components/common/icons/arrow-up.js +4 -10
- package/dist/components/common/icons/base.d.ts +29 -0
- package/dist/components/common/icons/base.js +7 -19
- package/dist/components/common/icons/bug.d.ts +9 -0
- package/dist/components/common/icons/bug.js +4 -10
- package/dist/components/common/icons/cancel.d.ts +9 -0
- package/dist/components/common/icons/cancel.js +4 -10
- package/dist/components/common/icons/checkmark.d.ts +10 -0
- package/dist/components/common/icons/checkmark.js +4 -10
- package/dist/components/common/icons/chevron-right.js +5 -6
- package/dist/components/common/icons/clipboard.d.ts +9 -0
- package/dist/components/common/icons/clipboard.js +4 -10
- package/dist/components/common/icons/clock.d.ts +9 -0
- package/dist/components/common/icons/clock.js +4 -10
- package/dist/components/common/icons/close.d.ts +9 -0
- package/dist/components/common/icons/close.js +4 -10
- package/dist/components/common/icons/code-alt.d.ts +9 -0
- package/dist/components/common/icons/code-alt.js +4 -10
- package/dist/components/common/icons/copy.d.ts +9 -0
- package/dist/components/common/icons/copy.js +4 -10
- package/dist/components/common/icons/crosshairs.d.ts +9 -0
- package/dist/components/common/icons/crosshairs.js +4 -10
- package/dist/components/common/icons/cube-3d.d.ts +9 -0
- package/dist/components/common/icons/cube-3d.js +4 -10
- package/dist/components/common/icons/cursor-click.d.ts +9 -0
- package/dist/components/common/icons/cursor-click.js +4 -10
- package/dist/components/common/icons/data-table.d.ts +10 -0
- package/dist/components/common/icons/data-table.js +4 -10
- package/dist/components/common/icons/db.d.ts +10 -0
- package/dist/components/common/icons/db.js +4 -10
- package/dist/components/common/icons/delete.d.ts +9 -0
- package/dist/components/common/icons/delete.js +4 -9
- package/dist/components/common/icons/docs.d.ts +9 -0
- package/dist/components/common/icons/docs.js +4 -10
- package/dist/components/common/icons/drag-n-drop.d.ts +9 -0
- package/dist/components/common/icons/drag-n-drop.js +4 -10
- package/dist/components/common/icons/draw-polygon.d.ts +10 -0
- package/dist/components/common/icons/draw-polygon.js +4 -13
- package/dist/components/common/icons/email.d.ts +9 -0
- package/dist/components/common/icons/email.js +4 -10
- package/dist/components/common/icons/expand.d.ts +9 -0
- package/dist/components/common/icons/expand.js +4 -10
- package/dist/components/common/icons/eye-seen.d.ts +9 -0
- package/dist/components/common/icons/eye-seen.js +4 -10
- package/dist/components/common/icons/eye-unseen.d.ts +9 -0
- package/dist/components/common/icons/eye-unseen.js +4 -10
- package/dist/components/common/icons/file-type.d.ts +8 -0
- package/dist/components/common/icons/file-type.js +1 -1
- package/dist/components/common/icons/file.d.ts +9 -0
- package/dist/components/common/icons/file.js +4 -10
- package/dist/components/common/icons/files.d.ts +9 -0
- package/dist/components/common/icons/files.js +3 -9
- package/dist/components/common/icons/filter-funnel.d.ts +9 -0
- package/dist/components/common/icons/filter-funnel.js +4 -10
- package/dist/components/common/icons/free-window.d.ts +11 -0
- package/dist/components/common/icons/free-window.js +1 -6
- package/dist/components/common/icons/gear.d.ts +9 -0
- package/dist/components/common/icons/gear.js +4 -10
- package/dist/components/common/icons/hash.d.ts +9 -0
- package/dist/components/common/icons/hash.js +4 -10
- package/dist/components/common/icons/histogram.d.ts +9 -0
- package/dist/components/common/icons/histogram.js +3 -8
- package/dist/components/common/icons/index.d.ts +78 -0
- package/dist/components/common/icons/index.js +15 -1
- package/dist/components/common/icons/info.d.ts +12 -0
- package/dist/components/common/icons/info.js +4 -10
- package/dist/components/common/icons/layers.d.ts +9 -0
- package/dist/components/common/icons/layers.js +4 -10
- package/dist/components/common/icons/left-arrow.d.ts +9 -0
- package/dist/components/common/icons/left-arrow.js +4 -10
- package/dist/components/common/icons/legend.d.ts +9 -0
- package/dist/components/common/icons/legend.js +4 -10
- package/dist/components/common/icons/line-chart.d.ts +9 -0
- package/dist/components/common/icons/line-chart.js +4 -9
- package/dist/components/common/icons/login.d.ts +9 -0
- package/dist/components/common/icons/login.js +4 -9
- package/dist/components/common/icons/logout.d.ts +9 -0
- package/dist/components/common/icons/logout.js +4 -9
- package/dist/components/common/icons/map-icon.d.ts +11 -0
- package/dist/components/common/icons/map-icon.js +4 -11
- package/dist/components/common/icons/map.d.ts +11 -0
- package/dist/components/common/icons/map.js +4 -11
- package/dist/components/common/icons/messages.d.ts +9 -0
- package/dist/components/common/icons/messages.js +4 -10
- package/dist/components/common/icons/minus.d.ts +9 -0
- package/dist/components/common/icons/minus.js +4 -10
- package/dist/components/common/icons/order-by-dataset.d.ts +12 -0
- package/dist/components/common/icons/order-by-dataset.js +51 -0
- package/dist/components/common/icons/order-by-list.d.ts +12 -0
- package/dist/components/common/icons/order-by-list.js +43 -0
- package/dist/components/common/icons/pause.d.ts +9 -0
- package/dist/components/common/icons/pause.js +4 -10
- package/dist/components/common/icons/picture.d.ts +9 -0
- package/dist/components/common/icons/picture.js +3 -9
- package/dist/components/common/icons/pin.d.ts +9 -0
- package/dist/components/common/icons/pin.js +12 -14
- package/dist/components/common/icons/play.d.ts +9 -0
- package/dist/components/common/icons/play.js +4 -10
- package/dist/components/common/icons/polygon.d.ts +10 -0
- package/dist/components/common/icons/polygon.js +4 -13
- package/dist/components/common/icons/rectangle.d.ts +10 -0
- package/dist/components/common/icons/rectangle.js +4 -13
- package/dist/components/common/icons/reduce.d.ts +9 -0
- package/dist/components/common/icons/reduce.js +4 -10
- package/dist/components/common/icons/reset.d.ts +9 -0
- package/dist/components/common/icons/reset.js +4 -10
- package/dist/components/common/icons/rocket.d.ts +9 -0
- package/dist/components/common/icons/rocket.js +4 -10
- package/dist/components/common/icons/save.d.ts +9 -0
- package/dist/components/common/icons/save.js +4 -10
- package/dist/components/common/icons/save2.d.ts +9 -0
- package/dist/components/common/icons/save2.js +4 -10
- package/dist/components/common/icons/search.d.ts +9 -0
- package/dist/components/common/icons/search.js +4 -10
- package/dist/components/common/icons/settings.d.ts +9 -0
- package/dist/components/common/icons/settings.js +4 -10
- package/dist/components/common/icons/share.d.ts +9 -0
- package/dist/components/common/icons/share.js +4 -10
- package/dist/components/common/icons/split.d.ts +9 -0
- package/dist/components/common/icons/split.js +4 -10
- package/dist/components/common/icons/square-select.d.ts +9 -0
- package/dist/components/common/icons/square-select.js +4 -10
- package/dist/components/common/icons/swap-horizontal.js +5 -6
- package/dist/components/common/icons/table.d.ts +9 -0
- package/dist/components/common/icons/table.js +4 -9
- package/dist/components/common/icons/trash.d.ts +9 -0
- package/dist/components/common/icons/trash.js +4 -10
- package/dist/components/common/icons/upload.d.ts +9 -0
- package/dist/components/common/icons/upload.js +4 -11
- package/dist/components/common/icons/vert-dots.d.ts +9 -0
- package/dist/components/common/icons/vert-dots.js +4 -10
- package/dist/components/common/icons/vert-three-dots.d.ts +9 -0
- package/dist/components/common/icons/vert-three-dots.js +4 -10
- package/dist/components/common/icons/warning.d.ts +10 -0
- package/dist/components/common/icons/warning.js +4 -10
- package/dist/components/common/image-preview.d.ts +15 -0
- package/dist/components/common/image-preview.js +1 -2
- package/dist/components/common/info-helper.d.ts +11 -0
- package/dist/components/common/info-helper.js +1 -7
- package/dist/components/common/item-selector/accessor.d.ts +7 -0
- package/dist/components/common/item-selector/accessor.js +1 -1
- package/dist/components/common/item-selector/chickleted-input.d.ts +21 -0
- package/dist/components/common/item-selector/chickleted-input.js +4 -24
- package/dist/components/common/item-selector/dropdown-list.d.ts +68 -0
- package/dist/components/common/item-selector/dropdown-list.js +30 -40
- package/dist/components/common/item-selector/item-selector-submenu.js +8 -9
- package/dist/components/common/item-selector/item-selector.d.ts +91 -0
- package/dist/components/common/item-selector/item-selector.js +33 -66
- package/dist/components/common/item-selector/typeahead.d.ts +115 -0
- package/dist/components/common/item-selector/typeahead.js +47 -72
- package/dist/components/common/line-chart.d.ts +34 -0
- package/dist/components/common/line-chart.js +9 -10
- package/dist/components/common/loading-spinner.d.ts +9 -0
- package/dist/components/common/loading-spinner.js +2 -4
- package/dist/components/common/logo.d.ts +8 -0
- package/dist/components/common/logo.js +5 -14
- package/dist/components/common/map-layer-selector.d.ts +13 -0
- package/dist/components/common/map-layer-selector.js +1 -2
- package/dist/components/common/modal.d.ts +49 -0
- package/dist/components/common/modal.js +7 -21
- package/dist/components/common/portaled.d.ts +527 -0
- package/dist/components/common/portaled.js +29 -28
- package/dist/components/common/progress-bar.d.ts +12 -0
- package/dist/components/common/progress-bar.js +1 -2
- package/dist/components/common/range-brush.d.ts +19 -0
- package/dist/components/common/range-brush.js +29 -30
- package/dist/components/common/range-plot.d.ts +35 -0
- package/dist/components/common/range-plot.js +2 -15
- package/dist/components/common/range-slider.d.ts +32 -0
- package/dist/components/common/range-slider.js +31 -46
- package/dist/components/common/slider/mouse-event.d.ts +27 -0
- package/dist/components/common/slider/mouse-event.js +49 -44
- package/dist/components/common/slider/slider-bar-handle.d.ts +29 -0
- package/dist/components/common/slider/slider-bar-handle.js +7 -16
- package/dist/components/common/slider/slider-handle.d.ts +33 -0
- package/dist/components/common/slider/slider-handle.js +12 -19
- package/dist/components/common/slider/slider.d.ts +70 -0
- package/dist/components/common/slider/slider.js +42 -62
- package/dist/components/common/styled-components.d.ts +119 -0
- package/dist/components/common/styled-components.js +21 -11
- package/dist/components/common/switch.d.ts +16 -0
- package/dist/components/common/switch.js +1 -16
- package/dist/components/common/time-range-slider-time-title.d.ts +9 -0
- package/dist/components/common/time-range-slider-time-title.js +1 -1
- package/dist/components/common/time-range-slider.d.ts +32 -0
- package/dist/components/common/time-range-slider.js +4 -22
- package/dist/components/common/time-slider-marker.d.ts +21 -0
- package/dist/components/common/time-slider-marker.js +2 -2
- package/dist/components/common/tippy-tooltip.d.ts +4 -0
- package/dist/components/common/tippy-tooltip.js +115 -0
- package/dist/components/common/toolbar-item.d.ts +14 -0
- package/dist/components/common/toolbar-item.js +8 -6
- package/dist/components/common/toolbar.d.ts +5 -0
- package/dist/components/common/toolbar.js +1 -1
- package/dist/components/common/vertical-toolbar.d.ts +3 -0
- package/dist/components/common/vertical-toolbar.js +1 -1
- package/dist/components/container.d.ts +39 -0
- package/dist/components/container.js +38 -31
- package/dist/components/context.d.ts +7 -0
- package/dist/components/context.js +1 -1
- package/dist/components/editor/constants.d.ts +17 -0
- package/dist/components/editor/constants.js +1 -1
- package/dist/components/editor/editor.d.ts +29 -0
- package/dist/components/editor/editor.js +26 -42
- package/dist/components/editor/feature-action-panel.d.ts +27 -0
- package/dist/components/editor/feature-action-panel.js +13 -18
- package/dist/components/editor/feature-styles.d.ts +24 -0
- package/dist/components/editor/feature-styles.js +3 -3
- package/dist/components/editor/handle-style.d.ts +38 -0
- package/dist/components/editor/handle-style.js +3 -3
- package/dist/components/filters/components.d.ts +1 -0
- package/dist/components/filters/components.js +1 -1
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.d.ts +10 -0
- package/dist/components/filters/filter-panels/filter-panel-with-field-select.js +5 -8
- package/dist/components/filters/filter-panels/multi-select-filter-panel.d.ts +9 -0
- package/dist/components/filters/filter-panels/multi-select-filter-panel.js +3 -10
- package/dist/components/filters/filter-panels/new-filter-panel.d.ts +12 -0
- package/dist/components/filters/filter-panels/new-filter-panel.js +4 -10
- package/dist/components/filters/filter-panels/polygon-filter-panel.d.ts +9 -0
- package/dist/components/filters/filter-panels/polygon-filter-panel.js +6 -11
- package/dist/components/filters/filter-panels/range-filter-panel.d.ts +9 -0
- package/dist/components/filters/filter-panels/range-filter-panel.js +3 -10
- package/dist/components/filters/filter-panels/single-select-filter-panel.d.ts +9 -0
- package/dist/components/filters/filter-panels/single-select-filter-panel.js +3 -10
- package/dist/components/filters/filter-panels/time-range-filter-panel.d.ts +8 -0
- package/dist/components/filters/filter-panels/time-range-filter-panel.js +6 -9
- package/dist/components/filters/filter-panels/types.d.ts +36 -0
- package/dist/components/filters/filter-panels/types.js +6 -0
- package/dist/components/filters/index.d.ts +5 -0
- package/dist/components/filters/index.js +1 -1
- package/dist/components/filters/multi-select-filter.d.ts +3 -0
- package/dist/components/filters/multi-select-filter.js +1 -1
- package/dist/components/filters/polygon-filter.d.ts +4 -0
- package/dist/components/filters/polygon-filter.js +3 -4
- package/dist/components/filters/range-filter.d.ts +8 -0
- package/dist/components/filters/range-filter.js +2 -2
- package/dist/components/filters/single-select-filter.d.ts +3 -0
- package/dist/components/filters/single-select-filter.js +1 -1
- package/dist/components/filters/time-range-filter.d.ts +28 -0
- package/dist/components/filters/time-range-filter.js +1 -1
- package/dist/components/filters/time-widget.d.ts +14 -0
- package/dist/components/filters/time-widget.js +2 -3
- package/dist/components/filters/types.d.ts +53 -0
- package/dist/components/filters/types.js +6 -0
- package/dist/components/geocoder/geocoder.d.ts +33 -0
- package/dist/components/geocoder/geocoder.js +17 -17
- package/dist/components/geocoder-panel.d.ts +28 -0
- package/dist/components/geocoder-panel.js +24 -31
- package/dist/components/index.d.ts +165 -0
- package/dist/components/index.js +98 -15
- package/dist/components/injector.d.ts +25 -0
- package/dist/components/injector.js +4 -4
- package/dist/components/kepler-gl.d.ts +302 -0
- package/dist/components/kepler-gl.js +60 -43
- package/dist/components/map/coordinate-info.d.ts +7 -0
- package/dist/components/map/coordinate-info.js +1 -1
- package/dist/components/map/layer-hover-info.d.ts +13 -0
- package/dist/components/map/layer-hover-info.js +1 -2
- package/dist/components/map/layer-selector-panel.d.ts +22 -0
- package/dist/components/map/layer-selector-panel.js +2 -2
- package/dist/components/map/locale-panel.d.ts +16 -0
- package/dist/components/map/locale-panel.js +17 -13
- package/dist/components/map/map-control-panel.d.ts +14 -0
- package/dist/components/map/map-control-panel.js +20 -5
- package/dist/components/map/map-control-toolbar.d.ts +2 -0
- package/dist/components/map/map-control-toolbar.js +1 -1
- package/dist/components/map/map-control-tooltip.d.ts +7 -0
- package/dist/components/map/map-control-tooltip.js +3 -3
- package/dist/components/map/map-control.d.ts +44 -0
- package/dist/components/map/map-control.js +2 -2
- package/dist/components/map/map-draw-panel.d.ts +21 -0
- package/dist/components/map/map-draw-panel.js +19 -13
- package/dist/components/map/map-legend-panel.d.ts +23 -0
- package/dist/components/map/map-legend-panel.js +101 -56
- package/dist/components/map/map-legend.d.ts +55 -0
- package/dist/components/map/map-legend.js +20 -12
- package/dist/components/map/map-popover.d.ts +37 -0
- package/dist/components/map/map-popover.js +7 -4
- package/dist/components/map/split-map-button.d.ts +19 -0
- package/dist/components/map/split-map-button.js +18 -15
- package/dist/components/map/toggle-3d-button.d.ts +16 -0
- package/dist/components/map/toggle-3d-button.js +19 -15
- package/dist/components/map-container.d.ts +58 -0
- package/dist/components/map-container.js +60 -73
- package/dist/components/maps-layout.d.ts +10 -0
- package/dist/components/maps-layout.js +6 -5
- package/dist/components/modal-container.d.ts +65 -0
- package/dist/components/modal-container.js +29 -54
- package/dist/components/modals/add-map-style-modal.d.ts +17 -0
- package/dist/components/modals/add-map-style-modal.js +10 -18
- package/dist/components/modals/cloud-tile.d.ts +15 -0
- package/dist/components/modals/cloud-tile.js +1 -1
- package/dist/components/modals/data-table-modal.d.ts +29 -0
- package/dist/components/modals/data-table-modal.js +33 -29
- package/dist/components/modals/delete-data-modal.d.ts +10 -0
- package/dist/components/modals/delete-data-modal.js +1 -1
- package/dist/components/modals/error-display.d.ts +6 -0
- package/dist/components/modals/error-display.js +1 -1
- package/dist/components/modals/export-data-modal.d.ts +25 -0
- package/dist/components/modals/export-data-modal.js +12 -28
- package/dist/components/modals/export-image-modal.d.ts +18 -0
- package/dist/components/modals/export-image-modal.js +2 -2
- package/dist/components/modals/export-map-modal/components.d.ts +8 -0
- package/dist/components/modals/export-map-modal/components.js +1 -1
- package/dist/components/modals/export-map-modal/export-html-map.d.ts +12 -0
- package/dist/components/modals/export-map-modal/export-html-map.js +1 -2
- package/dist/components/modals/export-map-modal/export-json-map.d.ts +9 -0
- package/dist/components/modals/export-map-modal/export-json-map.js +20 -9
- package/dist/components/modals/export-map-modal/export-map-modal.d.ts +27 -0
- package/dist/components/modals/export-map-modal/export-map-modal.js +6 -18
- package/dist/components/modals/image-modal-container.d.ts +18 -0
- package/dist/components/modals/image-modal-container.js +5 -5
- package/dist/components/modals/load-data-modal.d.ts +33 -0
- package/dist/components/modals/load-data-modal.js +4 -4
- package/dist/components/modals/load-storage-map.d.ts +26 -0
- package/dist/components/modals/load-storage-map.js +10 -12
- package/dist/components/modals/loading-dialog.d.ts +7 -0
- package/dist/components/modals/loading-dialog.js +1 -1
- package/dist/components/modals/modal-dialog.d.ts +2 -0
- package/dist/components/modals/modal-dialog.js +1 -1
- package/dist/components/modals/modal-tabs.d.ts +27 -0
- package/dist/components/modals/modal-tabs.js +2 -2
- package/dist/components/modals/overwrite-map-modal.d.ts +16 -0
- package/dist/components/modals/overwrite-map-modal.js +1 -1
- package/dist/components/modals/provider-modal-container.d.ts +23 -0
- package/dist/components/modals/provider-modal-container.js +8 -13
- package/dist/components/modals/save-map-modal.d.ts +29 -0
- package/dist/components/modals/save-map-modal.js +5 -6
- package/dist/components/modals/share-map-modal.d.ts +30 -0
- package/dist/components/modals/share-map-modal.js +19 -22
- package/dist/components/modals/status-panel.d.ts +13 -0
- package/dist/components/modals/status-panel.js +1 -1
- package/dist/components/modals/storage-map-viewer.d.ts +21 -0
- package/dist/components/modals/storage-map-viewer.js +5 -12
- package/dist/components/notification-panel/notification-item.d.ts +66 -0
- package/dist/components/notification-panel/notification-item.js +7 -18
- package/dist/components/notification-panel.d.ts +61 -0
- package/dist/components/notification-panel.js +6 -13
- package/dist/components/performance.d.ts +4 -0
- package/dist/components/performance.js +2 -1
- package/dist/components/plot-container.d.ts +24 -0
- package/dist/components/plot-container.js +35 -40
- package/dist/components/side-panel/cloud-storage-dropdown.d.ts +6 -0
- package/dist/components/side-panel/cloud-storage-dropdown.js +1 -1
- package/dist/components/side-panel/common/dataset-info.d.ts +3 -0
- package/dist/components/side-panel/common/dataset-info.js +1 -1
- package/dist/components/side-panel/common/dataset-tag.d.ts +3 -0
- package/dist/components/side-panel/common/dataset-tag.js +37 -13
- package/dist/components/side-panel/common/dataset-title.d.ts +8 -0
- package/dist/components/side-panel/common/dataset-title.js +49 -19
- package/dist/components/side-panel/common/source-data-catalog.d.ts +9 -0
- package/dist/components/side-panel/common/source-data-catalog.js +5 -3
- package/dist/components/side-panel/common/source-data-selector.d.ts +8 -0
- package/dist/components/side-panel/common/source-data-selector.js +18 -13
- package/dist/components/side-panel/common/types.d.ts +58 -0
- package/dist/components/side-panel/common/types.js +6 -0
- package/dist/components/side-panel/custom-panel.d.ts +9 -0
- package/dist/components/side-panel/custom-panel.js +1 -1
- package/dist/components/side-panel/filter-manager.d.ts +20 -0
- package/dist/components/side-panel/filter-manager.js +7 -15
- package/dist/components/side-panel/filter-panel/filter-panel-header.d.ts +21 -0
- package/dist/components/side-panel/filter-panel/filter-panel-header.js +3 -6
- package/dist/components/side-panel/filter-panel/filter-panel.d.ts +23 -0
- package/dist/components/side-panel/filter-panel/filter-panel.js +15 -31
- package/dist/components/side-panel/interaction-manager.d.ts +14 -0
- package/dist/components/side-panel/interaction-manager.js +1 -1
- package/dist/components/side-panel/interaction-panel/brush-config.d.ts +15 -0
- package/dist/components/side-panel/interaction-panel/brush-config.js +1 -1
- package/dist/components/side-panel/interaction-panel/interaction-panel.d.ts +19 -0
- package/dist/components/side-panel/interaction-panel/interaction-panel.js +9 -17
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +28 -0
- package/dist/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +15 -21
- package/dist/components/side-panel/interaction-panel/tooltip-config.d.ts +38 -0
- package/dist/components/side-panel/interaction-panel/tooltip-config.js +7 -3
- package/dist/components/side-panel/layer-manager.d.ts +46 -0
- package/dist/components/side-panel/layer-manager.js +87 -192
- package/dist/components/side-panel/layer-panel/add-layer-button.d.ts +10 -0
- package/dist/components/side-panel/layer-panel/add-layer-button.js +147 -0
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.d.ts +8 -0
- package/dist/components/side-panel/layer-panel/color-dimension-scale-selector.js +2 -2
- package/dist/components/side-panel/layer-panel/color-palette.d.ts +13 -0
- package/dist/components/side-panel/layer-panel/color-palette.js +7 -15
- package/dist/components/side-panel/layer-panel/color-range-selector.d.ts +129 -0
- package/dist/components/side-panel/layer-panel/color-range-selector.js +105 -142
- package/dist/components/side-panel/layer-panel/color-selector.d.ts +101 -0
- package/dist/components/side-panel/layer-panel/color-selector.js +16 -37
- package/dist/components/side-panel/layer-panel/column-selector.d.ts +22 -0
- package/dist/components/side-panel/layer-panel/column-selector.js +3 -3
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.d.ts +6 -0
- package/dist/components/side-panel/layer-panel/custom-markers-config-group.js +2 -2
- package/dist/components/side-panel/layer-panel/custom-palette.d.ts +38 -0
- package/dist/components/side-panel/layer-panel/custom-palette.js +55 -61
- package/dist/components/side-panel/layer-panel/custom-picker.d.ts +67 -0
- package/dist/components/side-panel/layer-panel/custom-picker.js +7 -16
- package/dist/components/side-panel/layer-panel/dataset-layer-group.d.ts +24 -0
- package/dist/components/side-panel/layer-panel/dataset-layer-group.js +81 -0
- package/dist/components/side-panel/layer-panel/dataset-layer-section.d.ts +25 -0
- package/dist/components/side-panel/layer-panel/dataset-layer-section.js +74 -0
- package/dist/components/side-panel/layer-panel/dataset-section.d.ts +26 -0
- package/dist/components/side-panel/layer-panel/dataset-section.js +91 -0
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.d.ts +10 -0
- package/dist/components/side-panel/layer-panel/dimension-scale-selector.js +1 -1
- package/dist/components/side-panel/layer-panel/hex-column-config.d.ts +62 -0
- package/dist/components/side-panel/layer-panel/hex-column-config.js +4 -5
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.d.ts +8 -0
- package/dist/components/side-panel/layer-panel/layer-aggregation-resolution.js +1 -1
- package/dist/components/side-panel/layer-panel/layer-column-config.d.ts +20 -0
- package/dist/components/side-panel/layer-panel/layer-column-config.js +2 -13
- package/dist/components/side-panel/layer-panel/layer-config-group.d.ts +37 -0
- package/dist/components/side-panel/layer-panel/layer-config-group.js +11 -13
- package/dist/components/side-panel/layer-panel/layer-configurator.d.ts +415 -0
- package/dist/components/side-panel/layer-panel/layer-configurator.js +70 -63
- package/dist/components/side-panel/layer-panel/layer-list.d.ts +20 -0
- package/dist/components/side-panel/layer-panel/layer-list.js +168 -0
- package/dist/components/side-panel/layer-panel/layer-panel-header.d.ts +43 -0
- package/dist/components/side-panel/layer-panel/layer-panel-header.js +10 -24
- package/dist/components/side-panel/layer-panel/layer-panel.d.ts +40 -0
- package/dist/components/side-panel/layer-panel/layer-panel.js +19 -38
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.d.ts +17 -0
- package/dist/components/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
- package/dist/components/side-panel/layer-panel/layer-type-list-item.d.ts +11 -0
- package/dist/components/side-panel/layer-panel/layer-type-list-item.js +1 -1
- package/dist/components/side-panel/layer-panel/layer-type-selector.d.ts +23 -0
- package/dist/components/side-panel/layer-panel/layer-type-selector.js +2 -8
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.d.ts +23 -0
- package/dist/components/side-panel/layer-panel/layer-visibility-by-zoom.js +3 -3
- package/dist/components/side-panel/layer-panel/panel-view-list-toggle.d.ts +36 -0
- package/dist/components/side-panel/layer-panel/panel-view-list-toggle.js +116 -0
- package/dist/components/side-panel/layer-panel/single-color-palette.d.ts +12 -0
- package/dist/components/side-panel/layer-panel/single-color-palette.js +27 -58
- package/dist/components/side-panel/layer-panel/text-label-panel.d.ts +18 -0
- package/dist/components/side-panel/layer-panel/text-label-panel.js +9 -16
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.d.ts +35 -0
- package/dist/components/side-panel/layer-panel/vis-config-by-field-selector.js +22 -35
- package/dist/components/side-panel/layer-panel/vis-config-slider.d.ts +20 -0
- package/dist/components/side-panel/layer-panel/vis-config-slider.js +130 -34
- package/dist/components/side-panel/layer-panel/vis-config-switch.d.ts +16 -0
- package/dist/components/side-panel/layer-panel/vis-config-switch.js +1 -11
- package/dist/components/side-panel/map-manager.d.ts +21 -0
- package/dist/components/side-panel/map-manager.js +9 -17
- package/dist/components/side-panel/map-style-panel/map-layer-selector.d.ts +19 -0
- package/dist/components/side-panel/map-style-panel/map-layer-selector.js +1 -1
- package/dist/components/side-panel/map-style-panel/map-style-selector.d.ts +16 -0
- package/dist/components/side-panel/map-style-panel/map-style-selector.js +1 -1
- package/dist/components/side-panel/panel-dropdown.d.ts +18 -0
- package/dist/components/side-panel/panel-dropdown.js +5 -13
- package/dist/components/side-panel/panel-header-action.d.ts +20 -0
- package/dist/components/side-panel/panel-header-action.js +5 -18
- package/dist/components/side-panel/panel-header.d.ts +78 -0
- package/dist/components/side-panel/panel-header.js +17 -29
- package/dist/components/side-panel/panel-tab.d.ts +20 -0
- package/dist/components/side-panel/panel-tab.js +1 -1
- package/dist/components/side-panel/panel-title.d.ts +4 -0
- package/dist/components/side-panel/panel-title.js +7 -2
- package/dist/components/side-panel/panel-toggle.d.ts +14 -0
- package/dist/components/side-panel/panel-toggle.js +2 -9
- package/dist/components/side-panel/side-bar.d.ts +76 -0
- package/dist/components/side-panel/side-bar.js +6 -14
- package/dist/components/side-panel.d.ts +134 -0
- package/dist/components/side-panel.js +19 -17
- package/dist/components/types.d.ts +44 -0
- package/dist/components/types.js +6 -0
- package/dist/connect/keplergl-connect.d.ts +5 -0
- package/dist/connect/keplergl-connect.js +1 -1
- package/dist/connect/with-local-selector.d.ts +6 -0
- package/dist/connect/with-local-selector.js +10 -13
- package/dist/constants/action-types.d.ts +111 -0
- package/dist/constants/action-types.js +8 -3
- package/dist/constants/color-palette.d.ts +491 -0
- package/dist/constants/color-palette.js +1 -1
- package/dist/constants/color-ranges.d.ts +24 -0
- package/dist/constants/color-ranges.js +3 -1
- package/dist/constants/custom-color-ranges.d.ts +37 -0
- package/dist/constants/custom-color-ranges.js +1 -1
- package/dist/constants/default-settings.d.ts +773 -0
- package/dist/constants/default-settings.js +25 -13
- package/dist/constants/index.d.ts +9 -0
- package/dist/constants/index.js +1 -1
- package/dist/constants/keyevent.d.ts +2 -0
- package/dist/constants/keyevent.js +1 -1
- package/dist/constants/tooltip.d.ts +165 -0
- package/dist/constants/tooltip.js +1 -1
- package/dist/constants/user-feedbacks.d.ts +5 -0
- package/dist/constants/user-feedbacks.js +1 -1
- package/dist/constants/user-guides.d.ts +9 -0
- package/dist/constants/user-guides.js +1 -1
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.d.ts +13 -0
- package/dist/deckgl-layers/3d-building-layer/3d-building-layer.js +13 -6
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.d.ts +7 -0
- package/dist/deckgl-layers/3d-building-layer/3d-building-utils.js +1 -1
- package/dist/deckgl-layers/3d-building-layer/types.d.ts +37 -0
- package/dist/deckgl-layers/3d-building-layer/types.js +6 -0
- package/dist/deckgl-layers/cluster-layer/cluster-layer.js +4 -5
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.d.ts +6 -0
- package/dist/deckgl-layers/column-layer/enhanced-column-layer.js +9 -9
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.d.ts +13 -0
- package/dist/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +15 -14
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.d.ts +13 -0
- package/dist/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +15 -14
- package/dist/deckgl-layers/layer-utils/cluster-utils.js +4 -5
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.d.ts +91 -0
- package/dist/deckgl-layers/layer-utils/cpu-aggregator.js +9 -10
- package/dist/deckgl-layers/layer-utils/shader-utils.d.ts +1 -0
- package/dist/deckgl-layers/layer-utils/shader-utils.js +1 -1
- package/dist/deckgl-layers/line-layer/line-layer.d.ts +12 -0
- package/dist/deckgl-layers/line-layer/line-layer.js +17 -15
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.d.ts +8 -0
- package/dist/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +18 -12
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.d.ts +18 -0
- package/dist/deckgl-layers/svg-icon-layer/svg-icon-layer.js +14 -5
- package/dist/index.d.ts +11 -0
- package/dist/index.js +2 -2
- package/dist/layers/aggregation-layer.d.ts +70 -0
- package/dist/layers/aggregation-layer.js +34 -24
- package/dist/layers/arc-layer/arc-layer-icon.d.ts +16 -0
- package/dist/layers/arc-layer/arc-layer-icon.js +4 -5
- package/dist/layers/arc-layer/arc-layer.d.ts +143 -0
- package/dist/layers/arc-layer/arc-layer.js +21 -19
- package/dist/layers/base-layer.d.ts +436 -0
- package/dist/layers/base-layer.js +96 -80
- package/dist/layers/cluster-layer/cluster-layer-icon.d.ts +16 -0
- package/dist/layers/cluster-layer/cluster-layer-icon.js +4 -5
- package/dist/layers/cluster-layer/cluster-layer.d.ts +39 -0
- package/dist/layers/cluster-layer/cluster-layer.js +4 -5
- package/dist/layers/default-layer-icon.d.ts +14 -0
- package/dist/layers/default-layer-icon.js +4 -5
- package/dist/layers/geojson-layer/geojson-layer-icon.d.ts +15 -0
- package/dist/layers/geojson-layer/geojson-layer-icon.js +4 -5
- package/dist/layers/geojson-layer/geojson-layer.d.ts +227 -0
- package/dist/layers/geojson-layer/geojson-layer.js +25 -15
- package/dist/layers/geojson-layer/geojson-utils.d.ts +44 -0
- package/dist/layers/geojson-layer/geojson-utils.js +19 -6
- package/dist/layers/grid-layer/grid-layer-icon.d.ts +15 -0
- package/dist/layers/grid-layer/grid-layer-icon.js +4 -5
- package/dist/layers/grid-layer/grid-layer.d.ts +74 -0
- package/dist/layers/grid-layer/grid-layer.js +5 -5
- package/dist/layers/grid-layer/grid-utils.d.ts +24 -0
- package/dist/layers/grid-layer/grid-utils.js +7 -7
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.d.ts +16 -0
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer-icon.js +4 -5
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.d.ts +170 -0
- package/dist/layers/h3-hexagon-layer/h3-hexagon-layer.js +15 -8
- package/dist/layers/h3-hexagon-layer/h3-utils.d.ts +20 -0
- package/dist/layers/h3-hexagon-layer/h3-utils.js +2 -2
- package/dist/layers/heatmap-layer/heatmap-layer-icon.d.ts +15 -0
- package/dist/layers/heatmap-layer/heatmap-layer-icon.js +4 -5
- package/dist/layers/heatmap-layer/heatmap-layer.d.ts +144 -0
- package/dist/layers/heatmap-layer/heatmap-layer.js +26 -32
- package/dist/layers/hexagon-layer/hexagon-layer-icon.d.ts +15 -0
- package/dist/layers/hexagon-layer/hexagon-layer-icon.js +4 -5
- package/dist/layers/hexagon-layer/hexagon-layer.d.ts +78 -0
- package/dist/layers/hexagon-layer/hexagon-layer.js +5 -5
- package/dist/layers/hexagon-layer/hexagon-utils.d.ts +7 -0
- package/dist/layers/hexagon-layer/hexagon-utils.js +1 -1
- package/dist/layers/icon-layer/icon-info-modal.d.ts +3 -0
- package/dist/layers/icon-layer/icon-info-modal.js +3 -2
- package/dist/layers/icon-layer/icon-layer-icon.d.ts +15 -0
- package/dist/layers/icon-layer/icon-layer-icon.js +4 -5
- package/dist/layers/icon-layer/icon-layer.d.ts +119 -0
- package/dist/layers/icon-layer/icon-layer.js +24 -12
- package/dist/layers/index.d.ts +53 -0
- package/dist/layers/index.js +3 -3
- package/dist/layers/layer-factory.d.ts +150 -0
- package/dist/layers/layer-factory.js +54 -39
- package/dist/layers/layer-text-label.d.ts +7 -0
- package/dist/layers/layer-text-label.js +1 -3
- package/dist/layers/layer-update.d.ts +9 -0
- package/dist/layers/layer-update.js +1 -2
- package/dist/layers/line-layer/line-layer-icon.d.ts +15 -0
- package/dist/layers/line-layer/line-layer-icon.js +4 -5
- package/dist/layers/line-layer/line-layer.d.ts +136 -0
- package/dist/layers/line-layer/line-layer.js +28 -26
- package/dist/layers/mapbox-utils.d.ts +57 -0
- package/dist/layers/mapbox-utils.js +9 -14
- package/dist/layers/mapboxgl-layer.d.ts +87 -0
- package/dist/layers/mapboxgl-layer.js +19 -13
- package/dist/layers/point-layer/point-layer-icon.d.ts +15 -0
- package/dist/layers/point-layer/point-layer-icon.js +4 -5
- package/dist/layers/point-layer/point-layer.d.ts +272 -0
- package/dist/layers/point-layer/point-layer.js +31 -17
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.d.ts +189 -0
- package/dist/layers/s2-geometry-layer/s2-geometry-layer.js +15 -11
- package/dist/layers/s2-geometry-layer/s2-layer-icon.d.ts +15 -0
- package/dist/layers/s2-geometry-layer/s2-layer-icon.js +4 -5
- package/dist/layers/s2-geometry-layer/s2-utils.d.ts +7 -0
- package/dist/layers/s2-geometry-layer/s2-utils.js +7 -1
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.d.ts +3 -0
- package/dist/layers/scenegraph-layer/scenegraph-info-modal.js +1 -1
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.d.ts +15 -0
- package/dist/layers/scenegraph-layer/scenegraph-layer-icon.js +4 -5
- package/dist/layers/scenegraph-layer/scenegraph-layer.d.ts +80 -0
- package/dist/layers/scenegraph-layer/scenegraph-layer.js +9 -6
- package/dist/layers/trip-layer/trip-info-modal.d.ts +3 -0
- package/dist/layers/trip-layer/trip-info-modal.js +1 -1
- package/dist/layers/trip-layer/trip-layer-icon.d.ts +15 -0
- package/dist/layers/trip-layer/trip-layer-icon.js +4 -5
- package/dist/layers/trip-layer/trip-layer.d.ts +157 -0
- package/dist/layers/trip-layer/trip-layer.js +21 -13
- package/dist/layers/trip-layer/trip-utils.d.ts +31 -0
- package/dist/layers/trip-layer/trip-utils.js +13 -14
- package/dist/layers/types.d.ts +15 -0
- package/dist/layers/types.js +1 -1
- package/dist/localization/formatted-message.d.ts +12 -0
- package/dist/localization/formatted-message.js +6 -7
- package/dist/localization/index.d.ts +5 -0
- package/dist/localization/index.js +2 -2
- package/dist/localization/locales.d.ts +27 -0
- package/dist/localization/locales.js +1 -1
- package/dist/localization/messages.d.ts +4 -0
- package/dist/localization/messages.js +37 -0
- package/dist/localization/translations/ca.d.ts +438 -0
- package/dist/localization/translations/ca.js +466 -0
- package/dist/localization/translations/cn.d.ts +441 -0
- package/dist/localization/translations/cn.js +469 -0
- package/dist/localization/translations/en.d.ts +466 -0
- package/dist/localization/translations/en.js +494 -0
- package/dist/localization/translations/es.d.ts +438 -0
- package/dist/localization/translations/es.js +466 -0
- package/dist/localization/translations/fi.d.ts +410 -0
- package/dist/localization/translations/fi.js +438 -0
- package/dist/localization/translations/ja.d.ts +439 -0
- package/dist/localization/translations/ja.js +467 -0
- package/dist/localization/translations/pt.d.ts +410 -0
- package/dist/localization/translations/pt.js +438 -0
- package/dist/localization/translations/ru.d.ts +447 -0
- package/dist/localization/translations/ru.js +475 -0
- package/dist/middleware/index.d.ts +8 -0
- package/dist/middleware/index.js +3 -3
- package/dist/processors/data-processor.d.ts +242 -0
- package/dist/processors/data-processor.js +44 -43
- package/dist/processors/file-handler.d.ts +28 -0
- package/dist/processors/file-handler.js +18 -17
- package/dist/processors/index.d.ts +3 -0
- package/dist/processors/index.js +12 -1
- package/dist/processors/types.d.ts +21 -0
- package/dist/processors/types.js +6 -0
- package/dist/reducers/combined-updaters.d.ts +52 -0
- package/dist/reducers/combined-updaters.js +3 -7
- package/dist/reducers/composer-helpers.d.ts +21 -0
- package/dist/reducers/composer-helpers.js +7 -7
- package/dist/reducers/composers.d.ts +12 -0
- package/dist/reducers/composers.js +2 -2
- package/dist/reducers/core.d.ts +65 -0
- package/dist/reducers/core.js +2 -6
- package/dist/reducers/index.d.ts +19 -0
- package/dist/reducers/index.js +14 -2
- package/dist/reducers/map-state-updaters.d.ts +96 -0
- package/dist/reducers/map-state-updaters.js +4 -11
- package/dist/reducers/map-state.d.ts +4 -0
- package/dist/reducers/map-state.js +3 -3
- package/dist/reducers/map-style-updaters.d.ts +204 -0
- package/dist/reducers/map-style-updaters.js +23 -37
- package/dist/reducers/map-style.d.ts +16 -0
- package/dist/reducers/map-style.js +3 -3
- package/dist/reducers/provider-state-updaters.d.ts +41 -0
- package/dist/reducers/provider-state-updaters.js +27 -72
- package/dist/reducers/provider-state.d.ts +4 -0
- package/dist/reducers/provider-state.js +3 -3
- package/dist/reducers/root.d.ts +24 -0
- package/dist/reducers/root.js +4 -4
- package/dist/reducers/types.d.ts +16 -0
- package/dist/reducers/types.js +6 -0
- package/dist/reducers/ui-state-updaters.d.ts +434 -0
- package/dist/reducers/ui-state-updaters.js +27 -38
- package/dist/reducers/ui-state.d.ts +3 -0
- package/dist/reducers/ui-state.js +5 -4
- package/dist/reducers/vis-state-merger.d.ts +110 -0
- package/dist/reducers/vis-state-merger.js +47 -43
- package/dist/reducers/vis-state-selectors.d.ts +10 -0
- package/dist/reducers/vis-state-selectors.js +1 -1
- package/dist/reducers/vis-state-updaters.d.ts +645 -0
- package/dist/reducers/vis-state-updaters.js +72 -126
- package/dist/reducers/vis-state.d.ts +4 -0
- package/dist/reducers/vis-state.js +4 -4
- package/dist/schemas/dataset-schema.d.ts +17 -0
- package/dist/schemas/dataset-schema.js +9 -12
- package/dist/schemas/index.d.ts +8 -0
- package/dist/schemas/index.js +2 -2
- package/dist/schemas/map-state-schema.d.ts +23 -0
- package/dist/schemas/map-state-schema.js +1 -1
- package/dist/schemas/map-style-schema.d.ts +38 -0
- package/dist/schemas/map-style-schema.js +5 -7
- package/dist/schemas/schema-manager.d.ts +271 -0
- package/dist/schemas/schema-manager.js +7 -5
- package/dist/schemas/schema-utils.d.ts +11 -0
- package/dist/schemas/schema-utils.js +1 -1
- package/dist/schemas/schema.d.ts +37 -0
- package/dist/schemas/schema.js +4 -4
- package/dist/schemas/versions.d.ts +5 -0
- package/dist/schemas/versions.js +1 -1
- package/dist/schemas/vis-state-schema.d.ts +214 -0
- package/dist/schemas/vis-state-schema.js +57 -77
- package/dist/styles/base.d.ts +1530 -0
- package/dist/styles/base.js +8 -4
- package/dist/styles/index.d.ts +2 -0
- package/dist/styles/index.js +1 -1
- package/dist/styles/media-breakpoints.d.ts +13 -0
- package/dist/styles/media-breakpoints.js +26 -7
- package/dist/tasks/tasks.d.ts +15 -0
- package/dist/tasks/tasks.js +12 -12
- package/dist/templates/export-map-html.d.ts +9 -0
- package/dist/templates/export-map-html.js +1 -1
- package/dist/utils/aggregate-utils.d.ts +3 -0
- package/dist/utils/aggregate-utils.js +1 -1
- package/dist/utils/color-utils.d.ts +44 -0
- package/dist/utils/color-utils.js +24 -9
- package/dist/utils/custom-scales.js +1 -1
- package/dist/utils/data-scale-utils.d.ts +23 -0
- package/dist/utils/data-scale-utils.js +1 -6
- package/dist/utils/data-utils.d.ts +115 -0
- package/dist/utils/data-utils.js +18 -39
- package/dist/utils/dataset-utils.d.ts +38 -0
- package/dist/utils/dataset-utils.js +4 -5
- package/dist/utils/dom-to-image.d.ts +73 -0
- package/dist/utils/dom-to-image.js +5 -5
- package/dist/utils/dom-utils.d.ts +20 -0
- package/dist/utils/dom-utils.js +1 -1
- package/dist/utils/export-utils.d.ts +56 -0
- package/dist/utils/export-utils.js +31 -25
- package/dist/utils/filter-utils.d.ts +267 -0
- package/dist/utils/filter-utils.js +40 -95
- package/dist/utils/gl-utils.d.ts +1 -0
- package/dist/utils/gl-utils.js +1 -1
- package/dist/utils/gpu-filter-utils.d.ts +28 -0
- package/dist/utils/gpu-filter-utils.js +13 -20
- package/dist/utils/index.d.ts +22 -0
- package/dist/utils/index.js +136 -38
- package/dist/utils/interaction-utils.d.ts +36 -0
- package/dist/utils/interaction-utils.js +10 -17
- package/dist/utils/layer-utils.d.ts +54 -0
- package/dist/utils/layer-utils.js +2 -3
- package/dist/utils/locale-utils.d.ts +2 -0
- package/dist/utils/locale-utils.js +5 -5
- package/dist/utils/map-info-utils.d.ts +1 -0
- package/dist/utils/map-info-utils.js +1 -1
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.d.ts +64 -0
- package/dist/utils/map-style-utils/mapbox-gl-style-editor.js +18 -18
- package/dist/utils/map-style-utils/mapbox-utils.d.ts +3 -0
- package/dist/utils/map-style-utils/mapbox-utils.js +1 -1
- package/dist/utils/mapbox-utils.d.ts +7 -0
- package/dist/utils/mapbox-utils.js +1 -1
- package/dist/utils/notifications-utils.d.ts +54 -0
- package/dist/utils/notifications-utils.js +8 -8
- package/dist/utils/observe-dimensions.d.ts +15 -0
- package/dist/utils/observe-dimensions.js +8 -8
- package/dist/utils/projection-utils.d.ts +12 -0
- package/dist/utils/projection-utils.js +1 -1
- package/dist/utils/searcher-utils.d.ts +1 -0
- package/dist/utils/searcher-utils.js +1 -1
- package/dist/utils/split-map-utils.d.ts +29 -0
- package/dist/utils/split-map-utils.js +4 -4
- package/dist/utils/table-utils/data-container-interface.d.ts +115 -0
- package/dist/utils/table-utils/data-container-interface.js +6 -0
- package/dist/utils/table-utils/data-container-utils.d.ts +29 -0
- package/dist/utils/table-utils/data-container-utils.js +18 -7
- package/dist/utils/table-utils/data-row.d.ts +59 -0
- package/dist/utils/table-utils/data-row.js +61 -8
- package/dist/utils/table-utils/index.d.ts +1 -0
- package/dist/utils/table-utils/index.js +1 -1
- package/dist/utils/table-utils/indexed-data-container.d.ts +34 -0
- package/dist/utils/table-utils/indexed-data-container.js +18 -12
- package/dist/utils/table-utils/kepler-table.d.ts +168 -0
- package/dist/utils/table-utils/kepler-table.js +56 -22
- package/dist/utils/table-utils/row-data-container.d.ts +31 -0
- package/dist/utils/table-utils/row-data-container.js +11 -8
- package/dist/utils/utils.d.ts +98 -0
- package/dist/utils/utils.js +28 -4
- package/package.json +139 -60
- package/src/actions/action-wrapper.ts +183 -0
- package/src/actions/actions.ts +259 -0
- package/src/actions/identity-actions.ts +116 -0
- package/src/actions/map-state-actions.ts +116 -0
- package/src/actions/map-style-actions.ts +243 -0
- package/src/actions/provider-actions.ts +218 -0
- package/src/actions/ui-state-actions.ts +490 -0
- package/src/actions/vis-state-actions.ts +1279 -0
- package/src/cloud-providers/index.ts +22 -0
- package/src/cloud-providers/provider.ts +276 -0
- package/src/components/bottom-widget.tsx +277 -0
- package/src/components/common/action-panel.tsx +207 -0
- package/src/components/common/animation-control/animation-control.tsx +157 -0
- package/src/components/common/animation-control/animation-controller.ts +250 -0
- package/src/components/common/animation-control/animation-speed-slider.tsx +86 -0
- package/src/components/common/animation-control/floating-time-display.tsx +209 -0
- package/src/components/common/animation-control/playback-controls.tsx +316 -0
- package/src/components/common/animation-control/speed-control.tsx +71 -0
- package/src/components/common/checkbox.tsx +137 -0
- package/src/components/common/color-legend.tsx +203 -0
- package/src/components/common/data-table/button.tsx +54 -0
- package/src/components/common/data-table/cell-size.ts +185 -0
- package/src/components/common/data-table/grid.tsx +57 -0
- package/src/components/common/data-table/index.tsx +693 -0
- package/src/components/common/data-table/option-dropdown.tsx +122 -0
- package/src/components/common/dataset-label.tsx +48 -0
- package/src/components/common/error-boundary.tsx +47 -0
- package/src/components/common/field-selector.tsx +242 -0
- package/src/components/common/field-token.tsx +60 -0
- package/src/components/common/file-uploader/file-drop.tsx +209 -0
- package/src/components/common/file-uploader/file-upload-progress.tsx +123 -0
- package/src/components/common/file-uploader/file-upload.tsx +319 -0
- package/src/components/common/file-uploader/upload-button.tsx +89 -0
- package/src/components/common/histogram-plot.tsx +125 -0
- package/src/components/common/icons/add.tsx +37 -0
- package/src/components/common/icons/anchor_window.tsx +49 -0
- package/src/components/common/icons/arrow-down-alt.tsx +37 -0
- package/src/components/common/icons/arrow-down-solid.tsx +37 -0
- package/src/components/common/icons/arrow-down.tsx +40 -0
- package/src/components/common/icons/arrow-left.tsx +42 -0
- package/src/components/common/icons/arrow-right.tsx +40 -0
- package/src/components/common/icons/arrow-up-alt.tsx +40 -0
- package/src/components/common/icons/arrow-up-solid.tsx +37 -0
- package/src/components/common/icons/arrow-up.tsx +40 -0
- package/src/components/common/icons/base.tsx +95 -0
- package/src/components/common/icons/bug.tsx +40 -0
- package/src/components/common/icons/cancel.tsx +37 -0
- package/src/components/common/icons/checkmark.tsx +39 -0
- package/src/components/common/icons/chevron-right.js +2 -2
- package/src/components/common/icons/clipboard.tsx +40 -0
- package/src/components/common/icons/clock.tsx +38 -0
- package/src/components/common/icons/close.tsx +43 -0
- package/src/components/common/icons/code-alt.tsx +37 -0
- package/src/components/common/icons/copy.tsx +38 -0
- package/src/components/common/icons/crosshairs.tsx +37 -0
- package/src/components/common/icons/cube-3d.tsx +39 -0
- package/src/components/common/icons/cursor-click.tsx +43 -0
- package/src/components/common/icons/data-table.tsx +40 -0
- package/src/components/common/icons/db.tsx +40 -0
- package/src/components/common/icons/delete.tsx +39 -0
- package/src/components/common/icons/docs.tsx +40 -0
- package/src/components/common/icons/drag-n-drop.tsx +38 -0
- package/src/components/common/icons/draw-polygon.tsx +51 -0
- package/src/components/common/icons/email.tsx +39 -0
- package/src/components/common/icons/expand.tsx +39 -0
- package/src/components/common/icons/eye-seen.tsx +38 -0
- package/src/components/common/icons/eye-unseen.tsx +38 -0
- package/src/components/common/icons/file-type.tsx +71 -0
- package/src/components/common/icons/file.tsx +37 -0
- package/src/components/common/icons/files.tsx +37 -0
- package/src/components/common/icons/filter-funnel.tsx +37 -0
- package/src/components/common/icons/free-window.tsx +48 -0
- package/src/components/common/icons/gear.tsx +40 -0
- package/src/components/common/icons/hash.tsx +37 -0
- package/src/components/common/icons/histogram.tsx +42 -0
- package/src/components/common/icons/index.tsx +98 -0
- package/src/components/common/icons/info.tsx +48 -0
- package/src/components/common/icons/layers.tsx +37 -0
- package/src/components/common/icons/left-arrow.tsx +37 -0
- package/src/components/common/icons/legend.tsx +37 -0
- package/src/components/common/icons/line-chart.tsx +40 -0
- package/src/components/common/icons/login.tsx +41 -0
- package/src/components/common/icons/logout.tsx +38 -0
- package/src/components/common/icons/map-icon.tsx +62 -0
- package/src/components/common/icons/map.tsx +62 -0
- package/src/components/common/icons/messages.tsx +37 -0
- package/src/components/common/icons/minus.tsx +39 -0
- package/src/components/common/icons/order-by-dataset.tsx +49 -0
- package/src/components/common/icons/order-by-list.tsx +39 -0
- package/src/components/common/icons/pause.tsx +37 -0
- package/src/components/common/icons/picture.tsx +37 -0
- package/src/components/common/icons/pin.tsx +42 -0
- package/src/components/common/icons/play.tsx +37 -0
- package/src/components/common/icons/polygon.tsx +65 -0
- package/src/components/common/icons/rectangle.tsx +66 -0
- package/src/components/common/icons/reduce.tsx +42 -0
- package/src/components/common/icons/reset.tsx +37 -0
- package/src/components/common/icons/rocket.tsx +37 -0
- package/src/components/common/icons/save.tsx +38 -0
- package/src/components/common/icons/save2.tsx +42 -0
- package/src/components/common/icons/search.tsx +38 -0
- package/src/components/common/icons/settings.tsx +39 -0
- package/src/components/common/icons/share.tsx +37 -0
- package/src/components/common/icons/split.tsx +57 -0
- package/src/components/common/icons/square-select.tsx +38 -0
- package/src/components/common/icons/swap-horizontal.js +1 -1
- package/src/components/common/icons/table.tsx +41 -0
- package/src/components/common/icons/trash.tsx +45 -0
- package/src/components/common/icons/upload.tsx +37 -0
- package/src/components/common/icons/vert-dots.tsx +44 -0
- package/src/components/common/icons/vert-three-dots.tsx +39 -0
- package/src/components/common/icons/warning.tsx +40 -0
- package/src/components/common/image-preview.tsx +118 -0
- package/src/components/common/info-helper.tsx +91 -0
- package/src/components/common/item-selector/accessor.ts +45 -0
- package/src/components/common/item-selector/chickleted-input.tsx +153 -0
- package/src/components/common/item-selector/dropdown-list.tsx +269 -0
- package/src/components/common/item-selector/item-selector-submenu.js +2 -1
- package/src/components/common/item-selector/item-selector.d.ts +24 -27
- package/src/components/common/item-selector/item-selector.tsx +373 -0
- package/src/components/common/item-selector/typeahead.tsx +533 -0
- package/src/components/common/line-chart.tsx +170 -0
- package/src/components/common/loading-spinner.tsx +75 -0
- package/src/components/common/logo.tsx +88 -0
- package/src/components/common/map-layer-selector.tsx +64 -0
- package/src/components/common/modal.tsx +238 -0
- package/src/components/common/portaled.tsx +311 -0
- package/src/components/common/progress-bar.tsx +74 -0
- package/src/components/common/range-brush.tsx +276 -0
- package/src/components/common/range-plot.tsx +145 -0
- package/src/components/common/range-slider.tsx +320 -0
- package/src/components/common/slider/mouse-event.ts +122 -0
- package/src/components/common/slider/slider-bar-handle.tsx +106 -0
- package/src/components/common/slider/slider-handle.tsx +210 -0
- package/src/components/common/slider/slider.tsx +234 -0
- package/src/components/common/styled-components.tsx +714 -0
- package/src/components/common/switch.tsx +47 -0
- package/src/components/common/time-range-slider-time-title.tsx +87 -0
- package/src/components/common/time-range-slider.tsx +171 -0
- package/src/components/common/time-slider-marker.tsx +187 -0
- package/src/components/common/tippy-tooltip.tsx +130 -0
- package/src/components/common/toolbar-item.tsx +99 -0
- package/src/components/common/toolbar.tsx +49 -0
- package/src/components/common/vertical-toolbar.tsx +35 -0
- package/src/components/container.d.ts +8 -0
- package/src/components/container.tsx +189 -0
- package/src/components/context.ts +32 -0
- package/src/components/editor/editor.tsx +234 -0
- package/src/components/editor/feature-action-panel.tsx +155 -0
- package/src/components/editor/feature-styles.ts +76 -0
- package/src/components/editor/handle-style.ts +89 -0
- package/src/components/filters/filter-panels/filter-panel-with-field-select.tsx +118 -0
- package/src/components/filters/filter-panels/multi-select-filter-panel.tsx +63 -0
- package/src/components/filters/filter-panels/new-filter-panel.tsx +100 -0
- package/src/components/filters/filter-panels/polygon-filter-panel.tsx +84 -0
- package/src/components/filters/filter-panels/range-filter-panel.tsx +63 -0
- package/src/components/filters/filter-panels/single-select-filter-panel.tsx +63 -0
- package/src/components/filters/filter-panels/time-range-filter-panel.tsx +92 -0
- package/src/components/filters/filter-panels/types.ts +40 -0
- package/src/components/filters/multi-select-filter.tsx +37 -0
- package/src/components/filters/polygon-filter.tsx +74 -0
- package/src/components/filters/range-filter.tsx +44 -0
- package/src/components/filters/single-select-filter.tsx +50 -0
- package/src/components/filters/time-range-filter.tsx +76 -0
- package/src/components/filters/time-widget.tsx +240 -0
- package/src/components/filters/types.ts +78 -0
- package/src/components/geocoder/geocoder.tsx +307 -0
- package/src/components/geocoder-panel.tsx +199 -0
- package/src/components/index.ts +269 -0
- package/src/components/injector.d.ts +33 -0
- package/src/components/injector.tsx +171 -0
- package/src/components/kepler-gl.d.ts +1 -2
- package/src/components/kepler-gl.tsx +585 -0
- package/src/components/map/coordinate-info.tsx +58 -0
- package/src/components/map/layer-hover-info.tsx +192 -0
- package/src/components/map/layer-selector-panel.tsx +122 -0
- package/src/components/map/locale-panel.tsx +110 -0
- package/src/components/map/map-control-panel.tsx +142 -0
- package/src/components/map/map-control-tooltip.tsx +45 -0
- package/src/components/map/map-control.tsx +138 -0
- package/src/components/map/map-draw-panel.tsx +145 -0
- package/src/components/map/map-legend-panel.tsx +167 -0
- package/src/components/map/map-legend.tsx +284 -0
- package/src/components/map/map-popover.tsx +268 -0
- package/src/components/map/split-map-button.tsx +98 -0
- package/src/components/map/toggle-3d-button.tsx +90 -0
- package/src/components/map-container.tsx +549 -0
- package/src/components/maps-layout.tsx +45 -0
- package/src/components/modal-container.tsx +555 -0
- package/src/components/modals/add-map-style-modal.tsx +304 -0
- package/src/components/modals/cloud-tile.tsx +181 -0
- package/src/components/modals/data-table-modal.tsx +241 -0
- package/src/components/modals/delete-data-modal.tsx +55 -0
- package/src/components/modals/error-display.tsx +43 -0
- package/src/components/modals/export-data-modal.tsx +201 -0
- package/src/components/modals/export-image-modal.tsx +155 -0
- package/src/components/modals/export-map-modal/export-html-map.tsx +164 -0
- package/src/components/modals/export-map-modal/export-json-map.tsx +112 -0
- package/src/components/modals/export-map-modal/export-map-modal.tsx +109 -0
- package/src/components/modals/image-modal-container.tsx +86 -0
- package/src/components/modals/load-data-modal.tsx +120 -0
- package/src/components/modals/load-storage-map.tsx +414 -0
- package/src/components/modals/loading-dialog.tsx +77 -0
- package/src/components/modals/modal-tabs.tsx +137 -0
- package/src/components/modals/overwrite-map-modal.tsx +113 -0
- package/src/components/modals/provider-modal-container.tsx +62 -0
- package/src/components/modals/save-map-modal.tsx +277 -0
- package/src/components/modals/share-map-modal.tsx +217 -0
- package/src/components/modals/status-panel.tsx +106 -0
- package/src/components/modals/storage-map-viewer.tsx +190 -0
- package/src/components/notification-panel/notification-item.tsx +143 -0
- package/src/components/notification-panel.tsx +75 -0
- package/src/components/performance.tsx +105 -0
- package/src/components/plot-container.tsx +243 -0
- package/src/components/side-panel/common/dataset-info.tsx +46 -0
- package/src/components/side-panel/common/dataset-tag.tsx +86 -0
- package/src/components/side-panel/common/dataset-title.tsx +187 -0
- package/src/components/side-panel/common/source-data-catalog.tsx +67 -0
- package/src/components/side-panel/common/source-data-selector.tsx +90 -0
- package/src/components/side-panel/common/types.ts +76 -0
- package/src/components/side-panel/filter-manager.tsx +120 -0
- package/src/components/side-panel/filter-panel/filter-panel-header.tsx +96 -0
- package/src/components/side-panel/filter-panel/filter-panel.tsx +125 -0
- package/src/components/side-panel/interaction-manager.tsx +59 -0
- package/src/components/side-panel/interaction-panel/brush-config.tsx +58 -0
- package/src/components/side-panel/interaction-panel/interaction-panel.tsx +124 -0
- package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.tsx +243 -0
- package/src/components/side-panel/interaction-panel/tooltip-config.tsx +238 -0
- package/src/components/side-panel/layer-manager.tsx +242 -0
- package/src/components/side-panel/layer-panel/add-layer-button.tsx +208 -0
- package/src/components/side-panel/layer-panel/color-dimension-scale-selector.tsx +33 -0
- package/src/components/side-panel/layer-panel/color-palette.tsx +98 -0
- package/src/components/side-panel/layer-panel/color-range-selector.tsx +388 -0
- package/src/components/side-panel/layer-panel/color-selector.tsx +200 -0
- package/src/components/side-panel/layer-panel/column-selector.tsx +102 -0
- package/src/components/side-panel/layer-panel/custom-markers-config-group.tsx +30 -0
- package/src/components/side-panel/layer-panel/custom-palette.tsx +301 -0
- package/src/components/side-panel/layer-panel/custom-picker.tsx +99 -0
- package/src/components/side-panel/layer-panel/dataset-layer-group.tsx +99 -0
- package/src/components/side-panel/layer-panel/dataset-layer-section.tsx +100 -0
- package/src/components/side-panel/layer-panel/dataset-section.tsx +125 -0
- package/src/components/side-panel/layer-panel/dimension-scale-selector.tsx +64 -0
- package/src/components/side-panel/layer-panel/hex-column-config.tsx +53 -0
- package/src/components/side-panel/layer-panel/layer-column-config.tsx +115 -0
- package/src/components/side-panel/layer-panel/layer-config-group.tsx +259 -0
- package/src/components/side-panel/layer-panel/layer-configurator.tsx +1419 -0
- package/src/components/side-panel/layer-panel/layer-list.tsx +193 -0
- package/src/components/side-panel/layer-panel/layer-panel-header.tsx +273 -0
- package/src/components/side-panel/layer-panel/layer-panel.tsx +197 -0
- package/src/components/side-panel/layer-panel/layer-type-dropdown-list.tsx +118 -0
- package/src/components/side-panel/layer-panel/layer-type-list-item.tsx +92 -0
- package/src/components/side-panel/layer-panel/layer-type-selector.tsx +115 -0
- package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.tsx +123 -0
- package/src/components/side-panel/layer-panel/panel-view-list-toggle.tsx +132 -0
- package/src/components/side-panel/layer-panel/single-color-palette.tsx +94 -0
- package/src/components/side-panel/layer-panel/text-label-panel.tsx +189 -0
- package/src/components/side-panel/layer-panel/vis-config-by-field-selector.tsx +187 -0
- package/src/components/side-panel/layer-panel/vis-config-slider.tsx +237 -0
- package/src/components/side-panel/layer-panel/vis-config-switch.tsx +86 -0
- package/src/components/side-panel/map-manager.tsx +123 -0
- package/src/components/side-panel/map-style-panel/map-layer-selector.tsx +145 -0
- package/src/components/side-panel/map-style-panel/map-style-selector.tsx +122 -0
- package/src/components/side-panel/panel-dropdown.tsx +54 -0
- package/src/components/side-panel/panel-header-action.tsx +114 -0
- package/src/components/side-panel/panel-header.tsx +386 -0
- package/src/components/side-panel/panel-tab.tsx +79 -0
- package/src/components/side-panel/panel-title.tsx +35 -0
- package/src/components/side-panel/panel-toggle.tsx +72 -0
- package/src/components/side-panel/side-bar.tsx +141 -0
- package/src/components/side-panel.tsx +261 -0
- package/src/components/types.ts +41 -0
- package/src/connect/keplergl-connect.ts +48 -0
- package/src/connect/with-local-selector.tsx +70 -0
- package/src/constants/action-types.ts +188 -0
- package/src/constants/color-ranges.ts +87 -0
- package/src/constants/default-settings.ts +1051 -0
- package/src/deckgl-layers/3d-building-layer/3d-building-layer.ts +63 -0
- package/src/deckgl-layers/3d-building-layer/3d-building-utils.ts +211 -0
- package/src/deckgl-layers/3d-building-layer/types.ts +29 -0
- package/src/deckgl-layers/column-layer/enhanced-column-layer.ts +63 -0
- package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.ts +70 -0
- package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.ts +70 -0
- package/src/deckgl-layers/layer-utils/cluster-utils.ts +78 -0
- package/src/deckgl-layers/layer-utils/cpu-aggregator.ts +671 -0
- package/src/deckgl-layers/layer-utils/shader-utils.ts +41 -0
- package/src/deckgl-layers/line-layer/line-layer.ts +126 -0
- package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.ts +68 -0
- package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.ts +102 -0
- package/src/index.ts +52 -0
- package/src/layers/aggregation-layer.ts +400 -0
- package/src/layers/arc-layer/arc-layer-icon.tsx +67 -0
- package/src/layers/arc-layer/arc-layer.ts +294 -0
- package/src/layers/base-layer.ts +1744 -0
- package/src/layers/cluster-layer/cluster-layer.ts +162 -0
- package/src/layers/geojson-layer/geojson-layer-icon.tsx +68 -0
- package/src/layers/geojson-layer/geojson-layer.ts +462 -0
- package/src/layers/geojson-layer/geojson-utils.ts +200 -0
- package/src/layers/grid-layer/grid-layer-icon.tsx +53 -0
- package/src/layers/grid-layer/grid-layer.ts +154 -0
- package/src/layers/grid-layer/grid-utils.ts +84 -0
- package/src/layers/h3-hexagon-layer/h3-hexagon-layer.ts +340 -0
- package/src/layers/h3-hexagon-layer/h3-utils.ts +67 -0
- package/src/layers/heatmap-layer/heatmap-layer.ts +255 -0
- package/src/layers/hexagon-layer/hexagon-layer.ts +157 -0
- package/src/layers/hexagon-layer/hexagon-utils.ts +64 -0
- package/src/layers/icon-layer/icon-info-modal.tsx +155 -0
- package/src/layers/icon-layer/icon-layer.ts +396 -0
- package/src/layers/index.ts +81 -0
- package/src/layers/layer-factory.ts +707 -0
- package/src/layers/layer-text-label.ts +62 -0
- package/src/layers/layer-update.ts +70 -0
- package/src/layers/line-layer/line-layer.ts +223 -0
- package/src/layers/mapbox-utils.ts +204 -0
- package/src/layers/mapboxgl-layer.ts +176 -0
- package/src/layers/point-layer/point-layer.ts +507 -0
- package/src/layers/s2-geometry-layer/s2-geometry-layer.ts +369 -0
- package/src/layers/s2-geometry-layer/s2-utils.ts +42 -0
- package/src/layers/scenegraph-layer/scenegraph-layer.ts +237 -0
- package/src/layers/trip-layer/trip-layer.ts +356 -0
- package/src/layers/trip-layer/trip-utils.ts +177 -0
- package/src/localization/formatted-message.tsx +42 -0
- package/src/localization/index.ts +29 -0
- package/src/localization/locales.ts +53 -0
- package/src/localization/messages.ts +40 -0
- package/src/localization/translations/ca.ts +476 -0
- package/src/localization/translations/cn.ts +477 -0
- package/src/localization/translations/en.ts +504 -0
- package/src/localization/translations/es.ts +477 -0
- package/src/localization/translations/fi.ts +448 -0
- package/src/localization/translations/ja.ts +477 -0
- package/src/localization/translations/pt.ts +449 -0
- package/src/localization/translations/ru.ts +488 -0
- package/src/middleware/index.ts +35 -0
- package/src/processors/data-processor.ts +723 -0
- package/src/processors/file-handler.ts +250 -0
- package/src/processors/index.ts +23 -0
- package/src/processors/types.ts +22 -0
- package/src/reducers/combined-updaters.ts +215 -0
- package/src/reducers/composer-helpers.ts +75 -0
- package/src/reducers/core.ts +111 -0
- package/src/reducers/index.ts +116 -0
- package/src/reducers/map-state-updaters.ts +271 -0
- package/src/reducers/map-state.ts +47 -0
- package/src/reducers/map-style-updaters.ts +638 -0
- package/src/reducers/map-style.ts +53 -0
- package/src/reducers/provider-state-updaters.ts +454 -0
- package/src/reducers/provider-state.ts +53 -0
- package/src/reducers/root.ts +230 -0
- package/src/reducers/types.ts +18 -0
- package/src/reducers/ui-state-updaters.ts +925 -0
- package/src/reducers/ui-state.ts +75 -0
- package/src/reducers/vis-state-merger.ts +625 -0
- package/src/reducers/vis-state-selectors.ts +35 -0
- package/src/reducers/vis-state-updaters.ts +2567 -0
- package/src/reducers/vis-state.ts +157 -0
- package/src/schemas/dataset-schema.ts +141 -0
- package/src/schemas/index.ts +52 -0
- package/src/schemas/schema-manager.ts +445 -0
- package/src/schemas/schema.ts +122 -0
- package/src/schemas/vis-state-schema.ts +761 -0
- package/src/styles/base.ts +1642 -0
- package/src/styles/media-breakpoints.ts +56 -0
- package/src/tasks/tasks.ts +92 -0
- package/src/typedefs/deckgl.d.ts +25 -0
- package/src/utils/aggregate-utils.ts +71 -0
- package/src/utils/color-utils.ts +135 -0
- package/src/utils/data-scale-utils.ts +73 -0
- package/src/utils/data-utils.ts +459 -0
- package/src/utils/dataset-utils.ts +261 -0
- package/src/utils/dom-to-image.ts +533 -0
- package/src/utils/dom-utils.ts +354 -0
- package/src/utils/export-utils.ts +265 -0
- package/src/utils/filter-utils.ts +1181 -0
- package/src/utils/gpu-filter-utils.ts +249 -0
- package/src/utils/index.ts +72 -0
- package/src/utils/interaction-utils.ts +212 -0
- package/src/utils/layer-utils.ts +248 -0
- package/src/utils/map-style-utils/mapbox-gl-style-editor.ts +227 -0
- package/src/utils/notifications-utils.ts +89 -0
- package/src/utils/observe-dimensions.ts +127 -0
- package/src/utils/split-map-utils.ts +104 -0
- package/src/utils/table-utils/data-container-interface.ts +140 -0
- package/src/utils/table-utils/data-container-utils.ts +90 -0
- package/src/utils/table-utils/data-row.ts +110 -0
- package/src/utils/table-utils/indexed-data-container.ts +184 -0
- package/src/utils/table-utils/kepler-table.ts +638 -0
- package/src/utils/table-utils/row-data-container.ts +178 -0
- package/src/utils/utils.ts +228 -0
- package/actions.js +0 -21
- package/cloud-providers.js +0 -21
- package/components.js +0 -21
- package/constants.js +0 -21
- package/dist/components/common/icons/arrow-down-solid .js +0 -64
- package/dist/localization/en.js +0 -494
- package/layers.js +0 -21
- package/localization.js +0 -21
- package/middleware.js +0 -21
- package/processors.js +0 -21
- package/reducers.js +0 -21
- package/schemas.js +0 -21
- package/src/actions/action-wrapper.js +0 -183
- package/src/actions/actions.d.ts +0 -104
- package/src/actions/actions.js +0 -178
- package/src/actions/identity-actions.d.ts +0 -53
- package/src/actions/identity-actions.js +0 -83
- package/src/actions/index.d.ts +0 -23
- package/src/actions/map-state-actions.d.ts +0 -46
- package/src/actions/map-state-actions.js +0 -90
- package/src/actions/map-style-actions.d.ts +0 -116
- package/src/actions/map-style-actions.js +0 -135
- package/src/actions/provider-actions.d.ts +0 -203
- package/src/actions/provider-actions.js +0 -94
- package/src/actions/ui-state-actions.d.ts +0 -200
- package/src/actions/ui-state-actions.js +0 -272
- package/src/actions/vis-state-actions.d.ts +0 -502
- package/src/actions/vis-state-actions.js +0 -919
- package/src/cloud-providers/index.d.ts +0 -53
- package/src/cloud-providers/index.js +0 -21
- package/src/cloud-providers/provider.js +0 -233
- package/src/components/bottom-widget.d.ts +0 -33
- package/src/components/bottom-widget.js +0 -235
- package/src/components/common/action-panel.d.ts +0 -24
- package/src/components/common/action-panel.js +0 -177
- package/src/components/common/animation-control/animation-control.js +0 -155
- package/src/components/common/animation-control/animation-controller.js +0 -224
- package/src/components/common/animation-control/animation-speed-slider.js +0 -79
- package/src/components/common/animation-control/floating-time-display.js +0 -192
- package/src/components/common/animation-control/playback-controls.js +0 -278
- package/src/components/common/animation-control/speed-control.js +0 -71
- package/src/components/common/checkbox.js +0 -128
- package/src/components/common/color-legend.js +0 -198
- package/src/components/common/data-table/button.js +0 -47
- package/src/components/common/data-table/cell-size.js +0 -180
- package/src/components/common/data-table/grid.js +0 -55
- package/src/components/common/data-table/index.js +0 -620
- package/src/components/common/data-table/option-dropdown.js +0 -110
- package/src/components/common/dataset-label.js +0 -40
- package/src/components/common/error-boundary.js +0 -43
- package/src/components/common/field-selector.js +0 -233
- package/src/components/common/field-token.js +0 -56
- package/src/components/common/file-uploader/file-drop.d.ts +0 -19
- package/src/components/common/file-uploader/file-drop.js +0 -196
- package/src/components/common/file-uploader/file-upload-progress.d.ts +0 -11
- package/src/components/common/file-uploader/file-upload-progress.js +0 -110
- package/src/components/common/file-uploader/file-upload.d.ts +0 -22
- package/src/components/common/file-uploader/file-upload.js +0 -301
- package/src/components/common/file-uploader/upload-button.d.ts.wip +0 -11
- package/src/components/common/file-uploader/upload-button.js +0 -83
- package/src/components/common/histogram-plot.js +0 -102
- package/src/components/common/icons/add.js +0 -43
- package/src/components/common/icons/anchor_window.js +0 -53
- package/src/components/common/icons/arrow-down-alt.js +0 -43
- package/src/components/common/icons/arrow-down-solid .js +0 -43
- package/src/components/common/icons/arrow-down.js +0 -46
- package/src/components/common/icons/arrow-left.js +0 -48
- package/src/components/common/icons/arrow-right.js +0 -46
- package/src/components/common/icons/arrow-up-alt.js +0 -46
- package/src/components/common/icons/arrow-up-solid.js +0 -43
- package/src/components/common/icons/arrow-up.js +0 -46
- package/src/components/common/icons/base.js +0 -90
- package/src/components/common/icons/bug.js +0 -46
- package/src/components/common/icons/cancel.js +0 -43
- package/src/components/common/icons/checkmark.js +0 -45
- package/src/components/common/icons/clipboard.js +0 -46
- package/src/components/common/icons/clock.js +0 -44
- package/src/components/common/icons/close.js +0 -49
- package/src/components/common/icons/code-alt.js +0 -43
- package/src/components/common/icons/copy.js +0 -44
- package/src/components/common/icons/crosshairs.js +0 -43
- package/src/components/common/icons/cube-3d.js +0 -45
- package/src/components/common/icons/cursor-click.js +0 -49
- package/src/components/common/icons/data-table.js +0 -45
- package/src/components/common/icons/db.js +0 -45
- package/src/components/common/icons/delete.js +0 -44
- package/src/components/common/icons/docs.js +0 -46
- package/src/components/common/icons/drag-n-drop.js +0 -44
- package/src/components/common/icons/draw-polygon.js +0 -60
- package/src/components/common/icons/email.js +0 -45
- package/src/components/common/icons/expand.js +0 -45
- package/src/components/common/icons/eye-seen.js +0 -44
- package/src/components/common/icons/eye-unseen.js +0 -44
- package/src/components/common/icons/file-type.js +0 -57
- package/src/components/common/icons/file.js +0 -43
- package/src/components/common/icons/files.js +0 -42
- package/src/components/common/icons/filter-funnel.js +0 -43
- package/src/components/common/icons/free-window.js +0 -53
- package/src/components/common/icons/gear.js +0 -45
- package/src/components/common/icons/hash.js +0 -43
- package/src/components/common/icons/histogram.js +0 -47
- package/src/components/common/icons/index.js +0 -96
- package/src/components/common/icons/info.js +0 -54
- package/src/components/common/icons/layers.js +0 -43
- package/src/components/common/icons/left-arrow.js +0 -43
- package/src/components/common/icons/legend.js +0 -43
- package/src/components/common/icons/line-chart.js +0 -45
- package/src/components/common/icons/login.js +0 -46
- package/src/components/common/icons/logout.js +0 -43
- package/src/components/common/icons/map-icon.js +0 -69
- package/src/components/common/icons/map.js +0 -69
- package/src/components/common/icons/messages.js +0 -43
- package/src/components/common/icons/minus.js +0 -45
- package/src/components/common/icons/pause.js +0 -43
- package/src/components/common/icons/picture.js +0 -43
- package/src/components/common/icons/pin.js +0 -43
- package/src/components/common/icons/play.js +0 -43
- package/src/components/common/icons/polygon.js +0 -74
- package/src/components/common/icons/rectangle.js +0 -75
- package/src/components/common/icons/reduce.js +0 -48
- package/src/components/common/icons/reset.js +0 -43
- package/src/components/common/icons/rocket.js +0 -43
- package/src/components/common/icons/save.js +0 -44
- package/src/components/common/icons/save2.js +0 -47
- package/src/components/common/icons/search.js +0 -44
- package/src/components/common/icons/settings.js +0 -45
- package/src/components/common/icons/share.js +0 -43
- package/src/components/common/icons/split.js +0 -63
- package/src/components/common/icons/square-select.js +0 -44
- package/src/components/common/icons/table.js +0 -46
- package/src/components/common/icons/trash.js +0 -51
- package/src/components/common/icons/upload.js +0 -44
- package/src/components/common/icons/vert-dots.js +0 -50
- package/src/components/common/icons/vert-three-dots.js +0 -45
- package/src/components/common/icons/warning.js +0 -46
- package/src/components/common/image-preview.js +0 -111
- package/src/components/common/info-helper.js +0 -84
- package/src/components/common/item-selector/accessor.js +0 -45
- package/src/components/common/item-selector/chickleted-input.js +0 -143
- package/src/components/common/item-selector/dropdown-list.js +0 -258
- package/src/components/common/item-selector/item-selector.js +0 -360
- package/src/components/common/item-selector/typeahead.js +0 -507
- package/src/components/common/line-chart.js +0 -134
- package/src/components/common/loading-spinner.js +0 -64
- package/src/components/common/logo.js +0 -92
- package/src/components/common/map-layer-selector.d.ts +0 -10
- package/src/components/common/map-layer-selector.js +0 -54
- package/src/components/common/modal.js +0 -233
- package/src/components/common/portaled.js +0 -264
- package/src/components/common/progress-bar.d.ts +0 -13
- package/src/components/common/progress-bar.js +0 -49
- package/src/components/common/range-brush.js +0 -256
- package/src/components/common/range-plot.js +0 -139
- package/src/components/common/range-slider.js +0 -299
- package/src/components/common/slider/mouse-event.js +0 -97
- package/src/components/common/slider/slider-bar-handle.js +0 -97
- package/src/components/common/slider/slider-handle.js +0 -181
- package/src/components/common/slider/slider.js +0 -213
- package/src/components/common/styled-components.js +0 -657
- package/src/components/common/switch.js +0 -50
- package/src/components/common/time-range-slider-time-title.js +0 -76
- package/src/components/common/time-range-slider.js +0 -163
- package/src/components/common/time-slider-marker.js +0 -168
- package/src/components/common/toolbar-item.d.ts +0 -14
- package/src/components/common/toolbar-item.js +0 -83
- package/src/components/common/toolbar.js +0 -45
- package/src/components/common/vertical-toolbar.js +0 -35
- package/src/components/container.js +0 -173
- package/src/components/context.d.ts +0 -10
- package/src/components/context.js +0 -32
- package/src/components/editor/editor.js +0 -218
- package/src/components/editor/feature-action-panel.js +0 -143
- package/src/components/editor/feature-styles.js +0 -75
- package/src/components/editor/handle-style.js +0 -89
- package/src/components/filters/filter-panels/filter-panel-types.d.ts +0 -28
- package/src/components/filters/filter-panels/filter-panel-with-field-select.js +0 -124
- package/src/components/filters/filter-panels/multi-select-filter-panel.js +0 -75
- package/src/components/filters/filter-panels/new-filter-panel.js +0 -99
- package/src/components/filters/filter-panels/polygon-filter-panel.js +0 -96
- package/src/components/filters/filter-panels/range-filter-panel.js +0 -75
- package/src/components/filters/filter-panels/single-select-filter-panel.js +0 -75
- package/src/components/filters/filter-panels/time-range-filter-panel.js +0 -95
- package/src/components/filters/multi-select-filter.js +0 -36
- package/src/components/filters/polygon-filter.d.ts +0 -13
- package/src/components/filters/polygon-filter.js +0 -73
- package/src/components/filters/range-filter.js +0 -43
- package/src/components/filters/single-select-filter.js +0 -49
- package/src/components/filters/time-range-filter.js +0 -68
- package/src/components/filters/time-widget.js +0 -228
- package/src/components/geocoder/geocoder.d.ts +0 -33
- package/src/components/geocoder/geocoder.js +0 -272
- package/src/components/geocoder-panel.js +0 -191
- package/src/components/index.js +0 -254
- package/src/components/injector.js +0 -161
- package/src/components/kepler-gl.js +0 -518
- package/src/components/map/coordinate-info.js +0 -53
- package/src/components/map/layer-hover-info.d.ts +0 -12
- package/src/components/map/layer-hover-info.js +0 -185
- package/src/components/map/layer-selector-panel.d.ts +0 -16
- package/src/components/map/layer-selector-panel.js +0 -106
- package/src/components/map/locale-panel.d.ts +0 -12
- package/src/components/map/locale-panel.js +0 -91
- package/src/components/map/map-control-panel.d.ts +0 -11
- package/src/components/map/map-control-panel.js +0 -98
- package/src/components/map/map-control-tooltip.d.ts +0 -8
- package/src/components/map/map-control-tooltip.js +0 -40
- package/src/components/map/map-control.d.ts +0 -37
- package/src/components/map/map-control.js +0 -100
- package/src/components/map/map-draw-panel.d.ts +0 -16
- package/src/components/map/map-draw-panel.js +0 -125
- package/src/components/map/map-legend-panel.d.ts +0 -20
- package/src/components/map/map-legend-panel.js +0 -100
- package/src/components/map/map-legend.d.ts +0 -58
- package/src/components/map/map-legend.js +0 -228
- package/src/components/map/map-popover.d.ts +0 -28
- package/src/components/map/map-popover.js +0 -250
- package/src/components/map/split-map-button.d.ts +0 -19
- package/src/components/map/split-map-button.js +0 -82
- package/src/components/map/toggle-3d-button.d.ts +0 -16
- package/src/components/map/toggle-3d-button.js +0 -75
- package/src/components/map-container.d.ts +0 -18
- package/src/components/map-container.js +0 -499
- package/src/components/maps-layout.d.ts +0 -5
- package/src/components/maps-layout.js +0 -40
- package/src/components/modal-container.d.ts +0 -37
- package/src/components/modal-container.js +0 -543
- package/src/components/modals/add-map-style-modal.js +0 -298
- package/src/components/modals/cloud-tile.js +0 -147
- package/src/components/modals/data-table-modal.js +0 -217
- package/src/components/modals/delete-data-modal.js +0 -48
- package/src/components/modals/error-display.js +0 -39
- package/src/components/modals/export-data-modal.js +0 -193
- package/src/components/modals/export-image-modal.d.ts +0 -21
- package/src/components/modals/export-image-modal.js +0 -144
- package/src/components/modals/export-map-modal/export-html-map.d.ts +0 -21
- package/src/components/modals/export-map-modal/export-html-map.js +0 -145
- package/src/components/modals/export-map-modal/export-json-map.js +0 -100
- package/src/components/modals/export-map-modal/export-map-modal.js +0 -114
- package/src/components/modals/image-modal-container.d.ts +0 -13
- package/src/components/modals/image-modal-container.js +0 -76
- package/src/components/modals/load-data-modal.d.ts +0 -30
- package/src/components/modals/load-data-modal.js +0 -94
- package/src/components/modals/load-storage-map.js +0 -381
- package/src/components/modals/loading-dialog.js +0 -69
- package/src/components/modals/modal-tabs.js +0 -126
- package/src/components/modals/overwrite-map-modal.d.ts +0 -18
- package/src/components/modals/overwrite-map-modal.js +0 -97
- package/src/components/modals/provider-modal-container.d.ts +0 -12
- package/src/components/modals/provider-modal-container.js +0 -60
- package/src/components/modals/save-map-modal.d.ts +0 -32
- package/src/components/modals/save-map-modal.js +0 -244
- package/src/components/modals/share-map-modal.js +0 -208
- package/src/components/modals/status-panel.js +0 -95
- package/src/components/modals/storage-map-viewer.js +0 -177
- package/src/components/notification-panel/notification-item.js +0 -132
- package/src/components/notification-panel.js +0 -72
- package/src/components/performance.js +0 -103
- package/src/components/plot-container.js +0 -228
- package/src/components/side-panel/common/dataset-info.js +0 -45
- package/src/components/side-panel/common/dataset-tag.js +0 -55
- package/src/components/side-panel/common/dataset-title.js +0 -146
- package/src/components/side-panel/common/source-data-catalog.js +0 -61
- package/src/components/side-panel/common/source-data-selector.js +0 -79
- package/src/components/side-panel/filter-manager.js +0 -105
- package/src/components/side-panel/filter-panel/filter-panel-header.js +0 -83
- package/src/components/side-panel/filter-panel/filter-panel.js +0 -126
- package/src/components/side-panel/interaction-manager.js +0 -46
- package/src/components/side-panel/interaction-panel/brush-config.js +0 -51
- package/src/components/side-panel/interaction-panel/interaction-panel.js +0 -115
- package/src/components/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +0 -199
- package/src/components/side-panel/interaction-panel/tooltip-config.js +0 -190
- package/src/components/side-panel/layer-manager.js +0 -290
- package/src/components/side-panel/layer-panel/color-dimension-scale-selector.js +0 -33
- package/src/components/side-panel/layer-panel/color-palette.js +0 -90
- package/src/components/side-panel/layer-panel/color-range-selector.js +0 -359
- package/src/components/side-panel/layer-panel/color-selector.js +0 -196
- package/src/components/side-panel/layer-panel/column-selector.js +0 -70
- package/src/components/side-panel/layer-panel/custom-markers-config-group.js +0 -30
- package/src/components/side-panel/layer-panel/custom-palette.js +0 -296
- package/src/components/side-panel/layer-panel/custom-picker.js +0 -88
- package/src/components/side-panel/layer-panel/dimension-scale-selector.js +0 -48
- package/src/components/side-panel/layer-panel/hex-column-config.js +0 -45
- package/src/components/side-panel/layer-panel/layer-column-config.js +0 -113
- package/src/components/side-panel/layer-panel/layer-config-group.js +0 -237
- package/src/components/side-panel/layer-panel/layer-configurator.js +0 -1412
- package/src/components/side-panel/layer-panel/layer-panel-header.js +0 -236
- package/src/components/side-panel/layer-panel/layer-panel.js +0 -171
- package/src/components/side-panel/layer-panel/layer-type-dropdown-list.js +0 -105
- package/src/components/side-panel/layer-panel/layer-type-list-item.js +0 -83
- package/src/components/side-panel/layer-panel/layer-type-selector.js +0 -89
- package/src/components/side-panel/layer-panel/layer-visibility-by-zoom.js +0 -123
- package/src/components/side-panel/layer-panel/single-color-palette.js +0 -98
- package/src/components/side-panel/layer-panel/text-label-panel.js +0 -179
- package/src/components/side-panel/layer-panel/vis-config-by-field-selector.js +0 -163
- package/src/components/side-panel/layer-panel/vis-config-slider.js +0 -82
- package/src/components/side-panel/layer-panel/vis-config-switch.js +0 -87
- package/src/components/side-panel/map-manager.js +0 -114
- package/src/components/side-panel/map-style-panel/map-layer-selector.js +0 -128
- package/src/components/side-panel/map-style-panel/map-style-selector.js +0 -111
- package/src/components/side-panel/panel-dropdown.js +0 -53
- package/src/components/side-panel/panel-header-action.js +0 -106
- package/src/components/side-panel/panel-header.js +0 -321
- package/src/components/side-panel/panel-tab.js +0 -62
- package/src/components/side-panel/panel-title.js +0 -32
- package/src/components/side-panel/panel-toggle.js +0 -70
- package/src/components/side-panel/side-bar.js +0 -136
- package/src/components/side-panel.d.ts +0 -33
- package/src/components/side-panel.js +0 -253
- package/src/connect/keplergl-connect.js +0 -47
- package/src/connect/with-local-selector.d.ts +0 -11
- package/src/connect/with-local-selector.js +0 -67
- package/src/constants/action-types.d.ts +0 -135
- package/src/constants/action-types.js +0 -184
- package/src/constants/color-ranges.js +0 -72
- package/src/constants/default-settings.js +0 -994
- package/src/deckgl-layers/3d-building-layer/3d-building-layer.js +0 -56
- package/src/deckgl-layers/3d-building-layer/3d-building-utils.js +0 -192
- package/src/deckgl-layers/column-layer/enhanced-column-layer.js +0 -63
- package/src/deckgl-layers/grid-layer/enhanced-cpu-grid-layer.js +0 -70
- package/src/deckgl-layers/hexagon-layer/enhanced-hexagon-layer.js +0 -70
- package/src/deckgl-layers/layer-utils/cluster-utils.js +0 -76
- package/src/deckgl-layers/layer-utils/cpu-aggregator.js +0 -583
- package/src/deckgl-layers/layer-utils/shader-utils.js +0 -41
- package/src/deckgl-layers/line-layer/line-layer.js +0 -122
- package/src/deckgl-layers/svg-icon-layer/scatterplot-icon-layer.js +0 -57
- package/src/deckgl-layers/svg-icon-layer/svg-icon-layer.js +0 -85
- package/src/index.js +0 -52
- package/src/layers/aggregation-layer.js +0 -356
- package/src/layers/arc-layer/arc-layer-icon.js +0 -67
- package/src/layers/arc-layer/arc-layer.js +0 -221
- package/src/layers/base-layer.js +0 -1545
- package/src/layers/cluster-layer/cluster-layer.js +0 -125
- package/src/layers/geojson-layer/geojson-layer-icon.js +0 -68
- package/src/layers/geojson-layer/geojson-layer.js +0 -344
- package/src/layers/geojson-layer/geojson-utils.js +0 -179
- package/src/layers/grid-layer/grid-layer-icon.js +0 -53
- package/src/layers/grid-layer/grid-layer.js +0 -95
- package/src/layers/grid-layer/grid-utils.js +0 -71
- package/src/layers/h3-hexagon-layer/h3-hexagon-layer.js +0 -264
- package/src/layers/h3-hexagon-layer/h3-utils.js +0 -65
- package/src/layers/heatmap-layer/heatmap-layer.js +0 -226
- package/src/layers/hexagon-layer/hexagon-layer.js +0 -95
- package/src/layers/hexagon-layer/hexagon-utils.js +0 -63
- package/src/layers/icon-layer/icon-info-modal.js +0 -155
- package/src/layers/icon-layer/icon-layer.js +0 -324
- package/src/layers/index.d.ts +0 -128
- package/src/layers/index.js +0 -76
- package/src/layers/layer-factory.d.ts +0 -149
- package/src/layers/layer-factory.js +0 -487
- package/src/layers/layer-text-label.js +0 -62
- package/src/layers/layer-update.js +0 -71
- package/src/layers/line-layer/line-layer.js +0 -161
- package/src/layers/mapbox-utils.js +0 -195
- package/src/layers/mapboxgl-layer.js +0 -154
- package/src/layers/point-layer/point-layer.js +0 -412
- package/src/layers/s2-geometry-layer/s2-geometry-layer.js +0 -265
- package/src/layers/s2-geometry-layer/s2-utils.js +0 -36
- package/src/layers/scenegraph-layer/scenegraph-layer.js +0 -182
- package/src/layers/trip-layer/trip-layer.js +0 -295
- package/src/layers/trip-layer/trip-utils.js +0 -169
- package/src/localization/en.js +0 -504
- package/src/localization/formatted-message.js +0 -33
- package/src/localization/index.js +0 -32
- package/src/localization/locales.js +0 -46
- package/src/middleware/index.js +0 -34
- package/src/processors/data-processor.d.ts +0 -57
- package/src/processors/data-processor.js +0 -684
- package/src/processors/file-handler.d.ts +0 -46
- package/src/processors/file-handler.js +0 -220
- package/src/processors/index.js +0 -22
- package/src/reducers/combined-updaters.d.ts +0 -26
- package/src/reducers/combined-updaters.js +0 -198
- package/src/reducers/composer-helpers.d.ts +0 -32
- package/src/reducers/composer-helpers.js +0 -70
- package/src/reducers/core.d.ts +0 -25
- package/src/reducers/core.js +0 -97
- package/src/reducers/index.d.ts +0 -118
- package/src/reducers/index.js +0 -53
- package/src/reducers/map-state-updaters.d.ts +0 -64
- package/src/reducers/map-state-updaters.js +0 -224
- package/src/reducers/map-state.js +0 -47
- package/src/reducers/map-style-updaters.d.ts +0 -76
- package/src/reducers/map-style-updaters.js +0 -541
- package/src/reducers/map-style.js +0 -53
- package/src/reducers/provider-state-updaters.d.ts +0 -88
- package/src/reducers/provider-state-updaters.js +0 -428
- package/src/reducers/provider-state.js +0 -53
- package/src/reducers/root.js +0 -230
- package/src/reducers/types.d.ts +0 -10
- package/src/reducers/ui-state-updaters.d.ts +0 -198
- package/src/reducers/ui-state-updaters.js +0 -766
- package/src/reducers/ui-state.js +0 -73
- package/src/reducers/vis-state-merger.d.ts +0 -78
- package/src/reducers/vis-state-merger.js +0 -557
- package/src/reducers/vis-state-selectors.js +0 -35
- package/src/reducers/vis-state-updaters.d.ts +0 -534
- package/src/reducers/vis-state-updaters.js +0 -2137
- package/src/reducers/vis-state.js +0 -155
- package/src/schemas/dataset-schema.js +0 -141
- package/src/schemas/index.d.ts +0 -24
- package/src/schemas/index.js +0 -42
- package/src/schemas/schema-manager.d.ts +0 -229
- package/src/schemas/schema-manager.js +0 -228
- package/src/schemas/schema.d.ts +0 -47
- package/src/schemas/schema.js +0 -90
- package/src/schemas/versions.d.ts +0 -23
- package/src/schemas/vis-state-schema.js +0 -754
- package/src/styles/base.js +0 -1620
- package/src/styles/media-breakpoints.js +0 -47
- package/src/tasks/tasks.js +0 -92
- package/src/typedefs/README.md +0 -3
- package/src/typedefs/deck.gl__core.d.ts +0 -64
- package/src/typedefs/deck.gl__mesh-layers.d.ts +0 -33
- package/src/utils/aggregate-utils.js +0 -71
- package/src/utils/color-utils.js +0 -115
- package/src/utils/data-scale-utils.d.ts +0 -26
- package/src/utils/data-scale-utils.js +0 -61
- package/src/utils/data-utils.d.ts +0 -46
- package/src/utils/data-utils.js +0 -447
- package/src/utils/dataset-utils.d.ts +0 -10
- package/src/utils/dataset-utils.js +0 -255
- package/src/utils/dom-to-image.js +0 -533
- package/src/utils/dom-utils.js +0 -354
- package/src/utils/export-utils.js +0 -247
- package/src/utils/filter-utils.d.ts +0 -192
- package/src/utils/filter-utils.js +0 -1114
- package/src/utils/gpu-filter-utils.d.ts +0 -28
- package/src/utils/gpu-filter-utils.js +0 -253
- package/src/utils/index.d.ts +0 -5
- package/src/utils/index.js +0 -57
- package/src/utils/interaction-utils.d.ts +0 -36
- package/src/utils/interaction-utils.js +0 -185
- package/src/utils/layer-utils.d.ts +0 -78
- package/src/utils/layer-utils.js +0 -206
- package/src/utils/map-style-utils/mapbox-gl-style-editor.js +0 -201
- package/src/utils/notifications-utils.js +0 -83
- package/src/utils/observe-dimensions.d.ts +0 -18
- package/src/utils/observe-dimensions.js +0 -115
- package/src/utils/split-map-utils.js +0 -104
- package/src/utils/table-utils/data-container-interface.d.ts +0 -140
- package/src/utils/table-utils/data-container-utils.d.ts +0 -43
- package/src/utils/table-utils/data-container-utils.js +0 -61
- package/src/utils/table-utils/data-row.d.ts +0 -65
- package/src/utils/table-utils/data-row.js +0 -54
- package/src/utils/table-utils/index.d.ts +0 -1
- package/src/utils/table-utils/indexed-data-container.d.ts +0 -26
- package/src/utils/table-utils/indexed-data-container.js +0 -152
- package/src/utils/table-utils/kepler-table.d.ts +0 -114
- package/src/utils/table-utils/kepler-table.js +0 -508
- package/src/utils/table-utils/row-data-container.d.ts +0 -30
- package/src/utils/table-utils/row-data-container.js +0 -151
- package/src/utils/utils.js +0 -202
- package/styles.js +0 -21
- /package/src/actions/{index.js → index.ts} +0 -0
- /package/src/components/common/data-table/{canvas.js → canvas.tsx} +0 -0
- /package/src/components/editor/{constants.js → constants.ts} +0 -0
- /package/src/components/filters/{components.js → components.ts} +0 -0
- /package/src/components/filters/{index.js → index.ts} +0 -0
- /package/src/components/map/{map-control-toolbar.js → map-control-toolbar.tsx} +0 -0
- /package/src/components/modals/export-map-modal/{components.js → components.tsx} +0 -0
- /package/src/components/modals/{modal-dialog.js → modal-dialog.tsx} +0 -0
- /package/src/components/side-panel/{cloud-storage-dropdown.js → cloud-storage-dropdown.tsx} +0 -0
- /package/src/components/side-panel/{custom-panel.js → custom-panel.tsx} +0 -0
- /package/src/components/side-panel/layer-panel/{layer-aggregation-resolution.js → layer-aggregation-resolution.tsx} +0 -0
- /package/src/constants/{color-palette.js → color-palette.ts} +0 -0
- /package/src/constants/{custom-color-ranges.js → custom-color-ranges.ts} +0 -0
- /package/src/constants/{index.js → index.ts} +0 -0
- /package/src/constants/{keyevent.js → keyevent.ts} +0 -0
- /package/src/constants/{tooltip.js → tooltip.ts} +0 -0
- /package/src/constants/{user-feedbacks.js → user-feedbacks.ts} +0 -0
- /package/src/constants/{user-guides.js → user-guides.ts} +0 -0
- /package/src/layers/cluster-layer/{cluster-layer-icon.js → cluster-layer-icon.tsx} +0 -0
- /package/src/layers/{default-layer-icon.js → default-layer-icon.tsx} +0 -0
- /package/src/layers/h3-hexagon-layer/{h3-hexagon-layer-icon.js → h3-hexagon-layer-icon.tsx} +0 -0
- /package/src/layers/heatmap-layer/{heatmap-layer-icon.js → heatmap-layer-icon.tsx} +0 -0
- /package/src/layers/hexagon-layer/{hexagon-layer-icon.js → hexagon-layer-icon.tsx} +0 -0
- /package/src/layers/icon-layer/{icon-layer-icon.js → icon-layer-icon.tsx} +0 -0
- /package/src/layers/line-layer/{line-layer-icon.js → line-layer-icon.tsx} +0 -0
- /package/src/layers/point-layer/{point-layer-icon.js → point-layer-icon.tsx} +0 -0
- /package/src/layers/s2-geometry-layer/{s2-layer-icon.js → s2-layer-icon.tsx} +0 -0
- /package/src/layers/scenegraph-layer/{scenegraph-info-modal.js → scenegraph-info-modal.tsx} +0 -0
- /package/src/layers/scenegraph-layer/{scenegraph-layer-icon.js → scenegraph-layer-icon.tsx} +0 -0
- /package/src/layers/trip-layer/{trip-info-modal.js → trip-info-modal.tsx} +0 -0
- /package/src/layers/trip-layer/{trip-layer-icon.js → trip-layer-icon.tsx} +0 -0
- /package/src/layers/{types.js → types.ts} +0 -0
- /package/src/reducers/{composers.js → composers.ts} +0 -0
- /package/src/schemas/{map-state-schema.js → map-state-schema.ts} +0 -0
- /package/src/schemas/{map-style-schema.js → map-style-schema.ts} +0 -0
- /package/src/schemas/{schema-utils.js → schema-utils.ts} +0 -0
- /package/src/schemas/{versions.js → versions.ts} +0 -0
- /package/src/styles/{index.js → index.ts} +0 -0
- /package/src/templates/{export-map-html.js → export-map-html.ts} +0 -0
- /package/src/utils/{gl-utils.js → gl-utils.ts} +0 -0
- /package/src/utils/{locale-utils.js → locale-utils.ts} +0 -0
- /package/src/utils/{map-info-utils.js → map-info-utils.ts} +0 -0
- /package/src/utils/map-style-utils/{mapbox-utils.js → mapbox-utils.ts} +0 -0
- /package/src/utils/{mapbox-utils.js → mapbox-utils.ts} +0 -0
- /package/src/utils/{projection-utils.js → projection-utils.ts} +0 -0
- /package/src/utils/{searcher-utils.js → searcher-utils.ts} +0 -0
- /package/src/utils/table-utils/{index.js → index.ts} +0 -0
|
@@ -11,15 +11,14 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
12
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
13
13
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
14
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
16
15
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
17
|
-
var
|
|
16
|
+
var _lodash = _interopRequireDefault(require("lodash.pick"));
|
|
18
17
|
var _versions = require("./versions");
|
|
19
18
|
var _filterUtils = require("../utils/filter-utils");
|
|
20
19
|
var _layerFactory = require("../layers/layer-factory");
|
|
21
20
|
var _schema = _interopRequireDefault(require("./schema"));
|
|
22
|
-
var
|
|
21
|
+
var _lodash2 = _interopRequireDefault(require("lodash.clonedeep"));
|
|
23
22
|
var _dataUtils = require("../utils/data-utils");
|
|
24
23
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
25
24
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -48,7 +47,6 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
48
47
|
*/
|
|
49
48
|
|
|
50
49
|
var dimensionPropsV0 = exports.dimensionPropsV0 = ['name', 'type'];
|
|
51
|
-
|
|
52
50
|
// in v0 geojson there is only sizeField
|
|
53
51
|
|
|
54
52
|
// in v1 geojson
|
|
@@ -82,7 +80,6 @@ function geojsonSizeFieldV0ToV1(config) {
|
|
|
82
80
|
|
|
83
81
|
// convert v0 to v1 layer config
|
|
84
82
|
var DimensionFieldSchemaV0 = /*#__PURE__*/function (_Schema) {
|
|
85
|
-
(0, _inherits2["default"])(DimensionFieldSchemaV0, _Schema);
|
|
86
83
|
function DimensionFieldSchemaV0() {
|
|
87
84
|
var _this;
|
|
88
85
|
(0, _classCallCheck2["default"])(this, DimensionFieldSchemaV0);
|
|
@@ -90,10 +87,11 @@ var DimensionFieldSchemaV0 = /*#__PURE__*/function (_Schema) {
|
|
|
90
87
|
args[_key] = arguments[_key];
|
|
91
88
|
}
|
|
92
89
|
_this = _callSuper(this, DimensionFieldSchemaV0, [].concat(args));
|
|
93
|
-
(0, _defineProperty2["default"])(
|
|
90
|
+
(0, _defineProperty2["default"])(_this, "version", _versions.VERSIONS.v0);
|
|
94
91
|
return _this;
|
|
95
92
|
}
|
|
96
|
-
(0,
|
|
93
|
+
(0, _inherits2["default"])(DimensionFieldSchemaV0, _Schema);
|
|
94
|
+
return (0, _createClass2["default"])(DimensionFieldSchemaV0, [{
|
|
97
95
|
key: "save",
|
|
98
96
|
value: function save(field) {
|
|
99
97
|
// should not be called anymore
|
|
@@ -115,10 +113,8 @@ var DimensionFieldSchemaV0 = /*#__PURE__*/function (_Schema) {
|
|
|
115
113
|
};
|
|
116
114
|
}
|
|
117
115
|
}]);
|
|
118
|
-
return DimensionFieldSchemaV0;
|
|
119
116
|
}(_schema["default"]);
|
|
120
117
|
var DimensionScaleSchemaV0 = /*#__PURE__*/function (_Schema2) {
|
|
121
|
-
(0, _inherits2["default"])(DimensionScaleSchemaV0, _Schema2);
|
|
122
118
|
function DimensionScaleSchemaV0() {
|
|
123
119
|
var _this2;
|
|
124
120
|
(0, _classCallCheck2["default"])(this, DimensionScaleSchemaV0);
|
|
@@ -126,10 +122,11 @@ var DimensionScaleSchemaV0 = /*#__PURE__*/function (_Schema2) {
|
|
|
126
122
|
args[_key2] = arguments[_key2];
|
|
127
123
|
}
|
|
128
124
|
_this2 = _callSuper(this, DimensionScaleSchemaV0, [].concat(args));
|
|
129
|
-
(0, _defineProperty2["default"])(
|
|
125
|
+
(0, _defineProperty2["default"])(_this2, "version", _versions.VERSIONS.v0);
|
|
130
126
|
return _this2;
|
|
131
127
|
}
|
|
132
|
-
(0,
|
|
128
|
+
(0, _inherits2["default"])(DimensionScaleSchemaV0, _Schema2);
|
|
129
|
+
return (0, _createClass2["default"])(DimensionScaleSchemaV0, [{
|
|
133
130
|
key: "save",
|
|
134
131
|
value: function save(scale) {
|
|
135
132
|
return (0, _defineProperty2["default"])({}, this.key, scale);
|
|
@@ -151,10 +148,8 @@ var DimensionScaleSchemaV0 = /*#__PURE__*/function (_Schema2) {
|
|
|
151
148
|
};
|
|
152
149
|
}
|
|
153
150
|
}]);
|
|
154
|
-
return DimensionScaleSchemaV0;
|
|
155
151
|
}(_schema["default"]); // used to convert v0 to v1 layer config
|
|
156
152
|
var LayerConfigSchemaV0 = /*#__PURE__*/function (_Schema3) {
|
|
157
|
-
(0, _inherits2["default"])(LayerConfigSchemaV0, _Schema3);
|
|
158
153
|
function LayerConfigSchemaV0() {
|
|
159
154
|
var _this3;
|
|
160
155
|
(0, _classCallCheck2["default"])(this, LayerConfigSchemaV0);
|
|
@@ -162,10 +157,11 @@ var LayerConfigSchemaV0 = /*#__PURE__*/function (_Schema3) {
|
|
|
162
157
|
args[_key3] = arguments[_key3];
|
|
163
158
|
}
|
|
164
159
|
_this3 = _callSuper(this, LayerConfigSchemaV0, [].concat(args));
|
|
165
|
-
(0, _defineProperty2["default"])(
|
|
160
|
+
(0, _defineProperty2["default"])(_this3, "version", _versions.VERSIONS.v0);
|
|
166
161
|
return _this3;
|
|
167
162
|
}
|
|
168
|
-
(0,
|
|
163
|
+
(0, _inherits2["default"])(LayerConfigSchemaV0, _Schema3);
|
|
164
|
+
return (0, _createClass2["default"])(LayerConfigSchemaV0, [{
|
|
169
165
|
key: "load",
|
|
170
166
|
value: function load(saved, parents, accumulated) {
|
|
171
167
|
// fold v0 layer property into config.key
|
|
@@ -174,11 +170,9 @@ var LayerConfigSchemaV0 = /*#__PURE__*/function (_Schema3) {
|
|
|
174
170
|
};
|
|
175
171
|
}
|
|
176
172
|
}]);
|
|
177
|
-
return LayerConfigSchemaV0;
|
|
178
173
|
}(_schema["default"]); // used to convert v0 to v1 layer columns
|
|
179
174
|
// only return column value for each column
|
|
180
175
|
var LayerColumnsSchemaV0 = /*#__PURE__*/function (_Schema4) {
|
|
181
|
-
(0, _inherits2["default"])(LayerColumnsSchemaV0, _Schema4);
|
|
182
176
|
function LayerColumnsSchemaV0() {
|
|
183
177
|
var _this4;
|
|
184
178
|
(0, _classCallCheck2["default"])(this, LayerColumnsSchemaV0);
|
|
@@ -186,10 +180,11 @@ var LayerColumnsSchemaV0 = /*#__PURE__*/function (_Schema4) {
|
|
|
186
180
|
args[_key4] = arguments[_key4];
|
|
187
181
|
}
|
|
188
182
|
_this4 = _callSuper(this, LayerColumnsSchemaV0, [].concat(args));
|
|
189
|
-
(0, _defineProperty2["default"])(
|
|
183
|
+
(0, _defineProperty2["default"])(_this4, "version", _versions.VERSIONS.v0);
|
|
190
184
|
return _this4;
|
|
191
185
|
}
|
|
192
|
-
(0,
|
|
186
|
+
(0, _inherits2["default"])(LayerColumnsSchemaV0, _Schema4);
|
|
187
|
+
return (0, _createClass2["default"])(LayerColumnsSchemaV0, [{
|
|
193
188
|
key: "load",
|
|
194
189
|
value: function load(saved, parents, accumulated) {
|
|
195
190
|
// fold v0 layer property into config.key, flatten columns
|
|
@@ -202,10 +197,8 @@ var LayerColumnsSchemaV0 = /*#__PURE__*/function (_Schema4) {
|
|
|
202
197
|
};
|
|
203
198
|
}
|
|
204
199
|
}]);
|
|
205
|
-
return LayerColumnsSchemaV0;
|
|
206
200
|
}(_schema["default"]); // used to convert v0 to v1 layer config.visConfig
|
|
207
201
|
var LayerConfigToVisConfigSchemaV0 = /*#__PURE__*/function (_Schema5) {
|
|
208
|
-
(0, _inherits2["default"])(LayerConfigToVisConfigSchemaV0, _Schema5);
|
|
209
202
|
function LayerConfigToVisConfigSchemaV0() {
|
|
210
203
|
var _this5;
|
|
211
204
|
(0, _classCallCheck2["default"])(this, LayerConfigToVisConfigSchemaV0);
|
|
@@ -213,10 +206,11 @@ var LayerConfigToVisConfigSchemaV0 = /*#__PURE__*/function (_Schema5) {
|
|
|
213
206
|
args[_key5] = arguments[_key5];
|
|
214
207
|
}
|
|
215
208
|
_this5 = _callSuper(this, LayerConfigToVisConfigSchemaV0, [].concat(args));
|
|
216
|
-
(0, _defineProperty2["default"])(
|
|
209
|
+
(0, _defineProperty2["default"])(_this5, "version", _versions.VERSIONS.v0);
|
|
217
210
|
return _this5;
|
|
218
211
|
}
|
|
219
|
-
(0,
|
|
212
|
+
(0, _inherits2["default"])(LayerConfigToVisConfigSchemaV0, _Schema5);
|
|
213
|
+
return (0, _createClass2["default"])(LayerConfigToVisConfigSchemaV0, [{
|
|
220
214
|
key: "load",
|
|
221
215
|
value: function load(saved, parents, accumulated) {
|
|
222
216
|
// fold v0 layer property into config.visConfig
|
|
@@ -228,10 +222,8 @@ var LayerConfigToVisConfigSchemaV0 = /*#__PURE__*/function (_Schema5) {
|
|
|
228
222
|
};
|
|
229
223
|
}
|
|
230
224
|
}]);
|
|
231
|
-
return LayerConfigToVisConfigSchemaV0;
|
|
232
225
|
}(_schema["default"]);
|
|
233
226
|
var LayerVisConfigSchemaV0 = /*#__PURE__*/function (_Schema6) {
|
|
234
|
-
(0, _inherits2["default"])(LayerVisConfigSchemaV0, _Schema6);
|
|
235
227
|
function LayerVisConfigSchemaV0() {
|
|
236
228
|
var _this6;
|
|
237
229
|
(0, _classCallCheck2["default"])(this, LayerVisConfigSchemaV0);
|
|
@@ -239,11 +231,12 @@ var LayerVisConfigSchemaV0 = /*#__PURE__*/function (_Schema6) {
|
|
|
239
231
|
args[_key6] = arguments[_key6];
|
|
240
232
|
}
|
|
241
233
|
_this6 = _callSuper(this, LayerVisConfigSchemaV0, [].concat(args));
|
|
242
|
-
(0, _defineProperty2["default"])(
|
|
243
|
-
(0, _defineProperty2["default"])(
|
|
234
|
+
(0, _defineProperty2["default"])(_this6, "version", _versions.VERSIONS.v0);
|
|
235
|
+
(0, _defineProperty2["default"])(_this6, "key", 'visConfig');
|
|
244
236
|
return _this6;
|
|
245
237
|
}
|
|
246
|
-
(0,
|
|
238
|
+
(0, _inherits2["default"])(LayerVisConfigSchemaV0, _Schema6);
|
|
239
|
+
return (0, _createClass2["default"])(LayerVisConfigSchemaV0, [{
|
|
247
240
|
key: "load",
|
|
248
241
|
value: function load(visConfig, parents, accumulator) {
|
|
249
242
|
var _parents$slice5 = parents.slice(-1),
|
|
@@ -272,10 +265,8 @@ var LayerVisConfigSchemaV0 = /*#__PURE__*/function (_Schema6) {
|
|
|
272
265
|
};
|
|
273
266
|
}
|
|
274
267
|
}]);
|
|
275
|
-
return LayerVisConfigSchemaV0;
|
|
276
268
|
}(_schema["default"]);
|
|
277
269
|
var LayerConfigSchemaDeleteV0 = /*#__PURE__*/function (_Schema7) {
|
|
278
|
-
(0, _inherits2["default"])(LayerConfigSchemaDeleteV0, _Schema7);
|
|
279
270
|
function LayerConfigSchemaDeleteV0() {
|
|
280
271
|
var _this7;
|
|
281
272
|
(0, _classCallCheck2["default"])(this, LayerConfigSchemaDeleteV0);
|
|
@@ -283,16 +274,16 @@ var LayerConfigSchemaDeleteV0 = /*#__PURE__*/function (_Schema7) {
|
|
|
283
274
|
args[_key7] = arguments[_key7];
|
|
284
275
|
}
|
|
285
276
|
_this7 = _callSuper(this, LayerConfigSchemaDeleteV0, [].concat(args));
|
|
286
|
-
(0, _defineProperty2["default"])(
|
|
277
|
+
(0, _defineProperty2["default"])(_this7, "version", _versions.VERSIONS.v0);
|
|
287
278
|
return _this7;
|
|
288
279
|
}
|
|
289
|
-
(0,
|
|
280
|
+
(0, _inherits2["default"])(LayerConfigSchemaDeleteV0, _Schema7);
|
|
281
|
+
return (0, _createClass2["default"])(LayerConfigSchemaDeleteV0, [{
|
|
290
282
|
key: "load",
|
|
291
283
|
value: function load(value) {
|
|
292
284
|
return {};
|
|
293
285
|
}
|
|
294
286
|
}]);
|
|
295
|
-
return LayerConfigSchemaDeleteV0;
|
|
296
287
|
}(_schema["default"]);
|
|
297
288
|
/**
|
|
298
289
|
* V0 -> V1 Changes
|
|
@@ -366,12 +357,12 @@ var layerPropsV0 = exports.layerPropsV0 = {
|
|
|
366
357
|
* V1 Schema
|
|
367
358
|
*/
|
|
368
359
|
var ColumnSchemaV1 = /*#__PURE__*/function (_Schema8) {
|
|
369
|
-
(0, _inherits2["default"])(ColumnSchemaV1, _Schema8);
|
|
370
360
|
function ColumnSchemaV1() {
|
|
371
361
|
(0, _classCallCheck2["default"])(this, ColumnSchemaV1);
|
|
372
362
|
return _callSuper(this, ColumnSchemaV1, arguments);
|
|
373
363
|
}
|
|
374
|
-
(0,
|
|
364
|
+
(0, _inherits2["default"])(ColumnSchemaV1, _Schema8);
|
|
365
|
+
return (0, _createClass2["default"])(ColumnSchemaV1, [{
|
|
375
366
|
key: "save",
|
|
376
367
|
value: function save(columns, state) {
|
|
377
368
|
// starting from v1, only save column value
|
|
@@ -388,20 +379,19 @@ var ColumnSchemaV1 = /*#__PURE__*/function (_Schema8) {
|
|
|
388
379
|
};
|
|
389
380
|
}
|
|
390
381
|
}]);
|
|
391
|
-
return ColumnSchemaV1;
|
|
392
382
|
}(_schema["default"]);
|
|
393
383
|
var TextLabelSchemaV1 = /*#__PURE__*/function (_Schema9) {
|
|
394
|
-
(0, _inherits2["default"])(TextLabelSchemaV1, _Schema9);
|
|
395
384
|
function TextLabelSchemaV1() {
|
|
396
385
|
(0, _classCallCheck2["default"])(this, TextLabelSchemaV1);
|
|
397
386
|
return _callSuper(this, TextLabelSchemaV1, arguments);
|
|
398
387
|
}
|
|
399
|
-
(0,
|
|
388
|
+
(0, _inherits2["default"])(TextLabelSchemaV1, _Schema9);
|
|
389
|
+
return (0, _createClass2["default"])(TextLabelSchemaV1, [{
|
|
400
390
|
key: "save",
|
|
401
391
|
value: function save(textLabel) {
|
|
402
392
|
return (0, _defineProperty2["default"])({}, this.key, textLabel.map(function (tl) {
|
|
403
393
|
return _objectSpread(_objectSpread({}, tl), {}, {
|
|
404
|
-
field: tl.field ? (0,
|
|
394
|
+
field: tl.field ? (0, _lodash["default"])(tl.field, ['name', 'type']) : null
|
|
405
395
|
});
|
|
406
396
|
}));
|
|
407
397
|
}
|
|
@@ -413,7 +403,6 @@ var TextLabelSchemaV1 = /*#__PURE__*/function (_Schema9) {
|
|
|
413
403
|
};
|
|
414
404
|
}
|
|
415
405
|
}]);
|
|
416
|
-
return TextLabelSchemaV1;
|
|
417
406
|
}(_schema["default"]);
|
|
418
407
|
var visualChannelModificationV1 = {
|
|
419
408
|
geojson: function geojson(vc, parents, accumulator) {
|
|
@@ -437,12 +426,12 @@ var visualChannelModificationV1 = {
|
|
|
437
426
|
* V1: save [field]: {name, type}, [scale]: '' for each channel
|
|
438
427
|
*/
|
|
439
428
|
var VisualChannelSchemaV1 = /*#__PURE__*/function (_Schema10) {
|
|
440
|
-
(0, _inherits2["default"])(VisualChannelSchemaV1, _Schema10);
|
|
441
429
|
function VisualChannelSchemaV1() {
|
|
442
430
|
(0, _classCallCheck2["default"])(this, VisualChannelSchemaV1);
|
|
443
431
|
return _callSuper(this, VisualChannelSchemaV1, arguments);
|
|
444
432
|
}
|
|
445
|
-
(0,
|
|
433
|
+
(0, _inherits2["default"])(VisualChannelSchemaV1, _Schema10);
|
|
434
|
+
return (0, _createClass2["default"])(VisualChannelSchemaV1, [{
|
|
446
435
|
key: "save",
|
|
447
436
|
value: function save(visualChannels, parents) {
|
|
448
437
|
// only save field and scale of each channel
|
|
@@ -452,7 +441,7 @@ var VisualChannelSchemaV1 = /*#__PURE__*/function (_Schema10) {
|
|
|
452
441
|
return (0, _defineProperty2["default"])({}, this.key, Object.keys(visualChannels).reduce(
|
|
453
442
|
// save channel to null if didn't select any field
|
|
454
443
|
function (accu, key) {
|
|
455
|
-
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, visualChannels[key].field, layer.config[visualChannels[key].field] ? (0,
|
|
444
|
+
return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])((0, _defineProperty2["default"])({}, visualChannels[key].field, layer.config[visualChannels[key].field] ? (0, _lodash["default"])(layer.config[visualChannels[key].field], ['name', 'type', 'colorColumn']) : null), visualChannels[key].scale, layer.config[visualChannels[key].scale]));
|
|
456
445
|
}, {}));
|
|
457
446
|
}
|
|
458
447
|
}, {
|
|
@@ -468,18 +457,17 @@ var VisualChannelSchemaV1 = /*#__PURE__*/function (_Schema10) {
|
|
|
468
457
|
});
|
|
469
458
|
}
|
|
470
459
|
}]);
|
|
471
|
-
return VisualChannelSchemaV1;
|
|
472
460
|
}(_schema["default"]);
|
|
473
461
|
/**
|
|
474
462
|
* V1: save [channel]: [{ label, color }, ...] for legend
|
|
475
463
|
*/
|
|
476
464
|
var LegendSettingsV1 = /*#__PURE__*/function (_Schema11) {
|
|
477
|
-
(0, _inherits2["default"])(LegendSettingsV1, _Schema11);
|
|
478
465
|
function LegendSettingsV1() {
|
|
479
466
|
(0, _classCallCheck2["default"])(this, LegendSettingsV1);
|
|
480
467
|
return _callSuper(this, LegendSettingsV1, arguments);
|
|
481
468
|
}
|
|
482
|
-
(0,
|
|
469
|
+
(0, _inherits2["default"])(LegendSettingsV1, _Schema11);
|
|
470
|
+
return (0, _createClass2["default"])(LegendSettingsV1, [{
|
|
483
471
|
key: "save",
|
|
484
472
|
value: function save(legendSettings, parents) {
|
|
485
473
|
return (0, _defineProperty2["default"])({}, this.key, Object.keys(legendSettings).reduce(function (accu, key) {
|
|
@@ -493,7 +481,6 @@ var LegendSettingsV1 = /*#__PURE__*/function (_Schema11) {
|
|
|
493
481
|
return _objectSpread(_objectSpread({}, accumulator), {}, (0, _defineProperty2["default"])({}, this.key, ls));
|
|
494
482
|
}
|
|
495
483
|
}]);
|
|
496
|
-
return LegendSettingsV1;
|
|
497
484
|
}(_schema["default"]);
|
|
498
485
|
var visConfigModificationV1 = {
|
|
499
486
|
point: function point(visConfig, parents, accumulated) {
|
|
@@ -505,7 +492,7 @@ var visConfigModificationV1 = {
|
|
|
505
492
|
if (isOld) {
|
|
506
493
|
// color color & color range to stroke color
|
|
507
494
|
modified.strokeColor = layer.config.color;
|
|
508
|
-
modified.strokeColorRange = (0,
|
|
495
|
+
modified.strokeColorRange = (0, _lodash2["default"])(visConfig.colorRange);
|
|
509
496
|
if (visConfig.outline) {
|
|
510
497
|
// point layer now supports both outline and fill
|
|
511
498
|
// for older schema where filled has not been added to point layer
|
|
@@ -527,7 +514,7 @@ var visConfigModificationV1 = {
|
|
|
527
514
|
if (isOld) {
|
|
528
515
|
// color color & color range to stroke color
|
|
529
516
|
modified.strokeColor = layer.config.color;
|
|
530
|
-
modified.strokeColorRange = (0,
|
|
517
|
+
modified.strokeColorRange = (0, _lodash2["default"])(visConfig.colorRange);
|
|
531
518
|
if (isPoint) {
|
|
532
519
|
// if is point, set stroke to false
|
|
533
520
|
modified.filled = true;
|
|
@@ -538,7 +525,6 @@ var visConfigModificationV1 = {
|
|
|
538
525
|
}
|
|
539
526
|
};
|
|
540
527
|
var VisConfigSchemaV1 = /*#__PURE__*/function (_Schema12) {
|
|
541
|
-
(0, _inherits2["default"])(VisConfigSchemaV1, _Schema12);
|
|
542
528
|
function VisConfigSchemaV1() {
|
|
543
529
|
var _this8;
|
|
544
530
|
(0, _classCallCheck2["default"])(this, VisConfigSchemaV1);
|
|
@@ -546,10 +532,11 @@ var VisConfigSchemaV1 = /*#__PURE__*/function (_Schema12) {
|
|
|
546
532
|
args[_key8] = arguments[_key8];
|
|
547
533
|
}
|
|
548
534
|
_this8 = _callSuper(this, VisConfigSchemaV1, [].concat(args));
|
|
549
|
-
(0, _defineProperty2["default"])(
|
|
535
|
+
(0, _defineProperty2["default"])(_this8, "key", 'visConfig');
|
|
550
536
|
return _this8;
|
|
551
537
|
}
|
|
552
|
-
(0,
|
|
538
|
+
(0, _inherits2["default"])(VisConfigSchemaV1, _Schema12);
|
|
539
|
+
return (0, _createClass2["default"])(VisConfigSchemaV1, [{
|
|
553
540
|
key: "load",
|
|
554
541
|
value: function load(visConfig, parents, accumulated) {
|
|
555
542
|
var _parents$slice17 = parents.slice(-2, -1),
|
|
@@ -561,7 +548,6 @@ var VisConfigSchemaV1 = /*#__PURE__*/function (_Schema12) {
|
|
|
561
548
|
};
|
|
562
549
|
}
|
|
563
550
|
}]);
|
|
564
|
-
return VisConfigSchemaV1;
|
|
565
551
|
}(_schema["default"]);
|
|
566
552
|
var layerPropsV1 = exports.layerPropsV1 = {
|
|
567
553
|
id: null,
|
|
@@ -600,7 +586,6 @@ var layerPropsV1 = exports.layerPropsV1 = {
|
|
|
600
586
|
})
|
|
601
587
|
};
|
|
602
588
|
var LayerSchemaV0 = exports.LayerSchemaV0 = /*#__PURE__*/function (_Schema13) {
|
|
603
|
-
(0, _inherits2["default"])(LayerSchemaV0, _Schema13);
|
|
604
589
|
function LayerSchemaV0() {
|
|
605
590
|
var _this9;
|
|
606
591
|
(0, _classCallCheck2["default"])(this, LayerSchemaV0);
|
|
@@ -608,10 +593,11 @@ var LayerSchemaV0 = exports.LayerSchemaV0 = /*#__PURE__*/function (_Schema13) {
|
|
|
608
593
|
args[_key9] = arguments[_key9];
|
|
609
594
|
}
|
|
610
595
|
_this9 = _callSuper(this, LayerSchemaV0, [].concat(args));
|
|
611
|
-
(0, _defineProperty2["default"])(
|
|
596
|
+
(0, _defineProperty2["default"])(_this9, "key", 'layers');
|
|
612
597
|
return _this9;
|
|
613
598
|
}
|
|
614
|
-
(0,
|
|
599
|
+
(0, _inherits2["default"])(LayerSchemaV0, _Schema13);
|
|
600
|
+
return (0, _createClass2["default"])(LayerSchemaV0, [{
|
|
615
601
|
key: "save",
|
|
616
602
|
value: function save(layers, parents) {
|
|
617
603
|
var _this10 = this;
|
|
@@ -636,10 +622,8 @@ var LayerSchemaV0 = exports.LayerSchemaV0 = /*#__PURE__*/function (_Schema13) {
|
|
|
636
622
|
}));
|
|
637
623
|
}
|
|
638
624
|
}]);
|
|
639
|
-
return LayerSchemaV0;
|
|
640
625
|
}(_schema["default"]);
|
|
641
626
|
var FilterSchemaV0 = exports.FilterSchemaV0 = /*#__PURE__*/function (_Schema14) {
|
|
642
|
-
(0, _inherits2["default"])(FilterSchemaV0, _Schema14);
|
|
643
627
|
function FilterSchemaV0() {
|
|
644
628
|
var _this12;
|
|
645
629
|
(0, _classCallCheck2["default"])(this, FilterSchemaV0);
|
|
@@ -647,10 +631,11 @@ var FilterSchemaV0 = exports.FilterSchemaV0 = /*#__PURE__*/function (_Schema14)
|
|
|
647
631
|
args[_key10] = arguments[_key10];
|
|
648
632
|
}
|
|
649
633
|
_this12 = _callSuper(this, FilterSchemaV0, [].concat(args));
|
|
650
|
-
(0, _defineProperty2["default"])(
|
|
634
|
+
(0, _defineProperty2["default"])(_this12, "key", 'filters');
|
|
651
635
|
return _this12;
|
|
652
636
|
}
|
|
653
|
-
(0,
|
|
637
|
+
(0, _inherits2["default"])(FilterSchemaV0, _Schema14);
|
|
638
|
+
return (0, _createClass2["default"])(FilterSchemaV0, [{
|
|
654
639
|
key: "save",
|
|
655
640
|
value: function save(filters) {
|
|
656
641
|
var _this13 = this;
|
|
@@ -668,11 +653,9 @@ var FilterSchemaV0 = exports.FilterSchemaV0 = /*#__PURE__*/function (_Schema14)
|
|
|
668
653
|
};
|
|
669
654
|
}
|
|
670
655
|
}]);
|
|
671
|
-
return FilterSchemaV0;
|
|
672
656
|
}(_schema["default"]);
|
|
673
657
|
var interactionPropsV0 = ['tooltip', 'brush'];
|
|
674
658
|
var InteractionSchemaV0 = /*#__PURE__*/function (_Schema15) {
|
|
675
|
-
(0, _inherits2["default"])(InteractionSchemaV0, _Schema15);
|
|
676
659
|
function InteractionSchemaV0() {
|
|
677
660
|
var _this14;
|
|
678
661
|
(0, _classCallCheck2["default"])(this, InteractionSchemaV0);
|
|
@@ -680,10 +663,11 @@ var InteractionSchemaV0 = /*#__PURE__*/function (_Schema15) {
|
|
|
680
663
|
args[_key11] = arguments[_key11];
|
|
681
664
|
}
|
|
682
665
|
_this14 = _callSuper(this, InteractionSchemaV0, [].concat(args));
|
|
683
|
-
(0, _defineProperty2["default"])(
|
|
666
|
+
(0, _defineProperty2["default"])(_this14, "key", 'interactionConfig');
|
|
684
667
|
return _this14;
|
|
685
668
|
}
|
|
686
|
-
(0,
|
|
669
|
+
(0, _inherits2["default"])(InteractionSchemaV0, _Schema15);
|
|
670
|
+
return (0, _createClass2["default"])(InteractionSchemaV0, [{
|
|
687
671
|
key: "save",
|
|
688
672
|
value: function save(interactionConfig) {
|
|
689
673
|
return Array.isArray(this.properties) ? (0, _defineProperty2["default"])({}, this.key, this.properties.reduce(function (accu, key) {
|
|
@@ -702,11 +686,9 @@ var InteractionSchemaV0 = /*#__PURE__*/function (_Schema15) {
|
|
|
702
686
|
}, {})) : {};
|
|
703
687
|
}
|
|
704
688
|
}]);
|
|
705
|
-
return InteractionSchemaV0;
|
|
706
689
|
}(_schema["default"]);
|
|
707
690
|
var interactionPropsV1 = [].concat(interactionPropsV0, ['geocoder', 'coordinate']);
|
|
708
691
|
var InteractionSchemaV1 = exports.InteractionSchemaV1 = /*#__PURE__*/function (_Schema16) {
|
|
709
|
-
(0, _inherits2["default"])(InteractionSchemaV1, _Schema16);
|
|
710
692
|
function InteractionSchemaV1() {
|
|
711
693
|
var _this15;
|
|
712
694
|
(0, _classCallCheck2["default"])(this, InteractionSchemaV1);
|
|
@@ -714,10 +696,11 @@ var InteractionSchemaV1 = exports.InteractionSchemaV1 = /*#__PURE__*/function (_
|
|
|
714
696
|
args[_key12] = arguments[_key12];
|
|
715
697
|
}
|
|
716
698
|
_this15 = _callSuper(this, InteractionSchemaV1, [].concat(args));
|
|
717
|
-
(0, _defineProperty2["default"])(
|
|
699
|
+
(0, _defineProperty2["default"])(_this15, "key", 'interactionConfig');
|
|
718
700
|
return _this15;
|
|
719
701
|
}
|
|
720
|
-
(0,
|
|
702
|
+
(0, _inherits2["default"])(InteractionSchemaV1, _Schema16);
|
|
703
|
+
return (0, _createClass2["default"])(InteractionSchemaV1, [{
|
|
721
704
|
key: "save",
|
|
722
705
|
value: function save(interactionConfig) {
|
|
723
706
|
// save config even if disabled,
|
|
@@ -750,12 +733,11 @@ var InteractionSchemaV1 = exports.InteractionSchemaV1 = /*#__PURE__*/function (_
|
|
|
750
733
|
});
|
|
751
734
|
});
|
|
752
735
|
}
|
|
753
|
-
return;
|
|
736
|
+
return undefined;
|
|
754
737
|
});
|
|
755
738
|
return (0, _defineProperty2["default"])({}, this.key, modifiedConfig);
|
|
756
739
|
}
|
|
757
740
|
}]);
|
|
758
|
-
return InteractionSchemaV1;
|
|
759
741
|
}(_schema["default"]);
|
|
760
742
|
var filterPropsV0 = exports.filterPropsV0 = {
|
|
761
743
|
dataId: null,
|
|
@@ -766,12 +748,12 @@ var filterPropsV0 = exports.filterPropsV0 = {
|
|
|
766
748
|
enlarged: null
|
|
767
749
|
};
|
|
768
750
|
var DimensionFieldSchema = exports.DimensionFieldSchema = /*#__PURE__*/function (_Schema17) {
|
|
769
|
-
(0, _inherits2["default"])(DimensionFieldSchema, _Schema17);
|
|
770
751
|
function DimensionFieldSchema() {
|
|
771
752
|
(0, _classCallCheck2["default"])(this, DimensionFieldSchema);
|
|
772
753
|
return _callSuper(this, DimensionFieldSchema, arguments);
|
|
773
754
|
}
|
|
774
|
-
(0,
|
|
755
|
+
(0, _inherits2["default"])(DimensionFieldSchema, _Schema17);
|
|
756
|
+
return (0, _createClass2["default"])(DimensionFieldSchema, [{
|
|
775
757
|
key: "save",
|
|
776
758
|
value: function save(field) {
|
|
777
759
|
return (0, _defineProperty2["default"])({}, this.key, field ? this.savePropertiesOrApplySchema(field)[this.key] : null);
|
|
@@ -782,15 +764,14 @@ var DimensionFieldSchema = exports.DimensionFieldSchema = /*#__PURE__*/function
|
|
|
782
764
|
return (0, _defineProperty2["default"])({}, this.key, field);
|
|
783
765
|
}
|
|
784
766
|
}]);
|
|
785
|
-
return DimensionFieldSchema;
|
|
786
767
|
}(_schema["default"]);
|
|
787
768
|
var SplitMapsSchema = exports.SplitMapsSchema = /*#__PURE__*/function (_Schema18) {
|
|
788
|
-
(0, _inherits2["default"])(SplitMapsSchema, _Schema18);
|
|
789
769
|
function SplitMapsSchema() {
|
|
790
770
|
(0, _classCallCheck2["default"])(this, SplitMapsSchema);
|
|
791
771
|
return _callSuper(this, SplitMapsSchema, arguments);
|
|
792
772
|
}
|
|
793
|
-
(0,
|
|
773
|
+
(0, _inherits2["default"])(SplitMapsSchema, _Schema18);
|
|
774
|
+
return (0, _createClass2["default"])(SplitMapsSchema, [{
|
|
794
775
|
key: "convertLayerSettings",
|
|
795
776
|
value: function convertLayerSettings(accu, _ref19) {
|
|
796
777
|
var _ref20 = (0, _slicedToArray2["default"])(_ref19, 2),
|
|
@@ -823,7 +804,6 @@ var SplitMapsSchema = exports.SplitMapsSchema = /*#__PURE__*/function (_Schema18
|
|
|
823
804
|
};
|
|
824
805
|
}
|
|
825
806
|
}]);
|
|
826
|
-
return SplitMapsSchema;
|
|
827
807
|
}(_schema["default"]);
|
|
828
808
|
var filterPropsV1 = exports.filterPropsV1 = _objectSpread(_objectSpread({}, filterPropsV0), {}, {
|
|
829
809
|
plotType: null,
|
|
@@ -903,4 +883,4 @@ var visStateSchema = exports.visStateSchema = (0, _defineProperty2["default"])((
|
|
|
903
883
|
|
|
904
884
|
// test load v0
|
|
905
885
|
var _default = exports["default"] = visStateSchema;
|
|
906
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcGljayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3ZlcnNpb25zIiwiX2ZpbHRlclV0aWxzIiwiX2xheWVyRmFjdG9yeSIsIl9zY2hlbWEiLCJfY2xvbmVEZWVwIiwiX2RhdGFVdGlscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiZGltZW5zaW9uUHJvcHNWMCIsImV4cG9ydHMiLCJnZW9qc29uU2l6ZUZpZWxkVjBUb1YxIiwiY29uZmlnIiwiZGVmYXVsdFJhaXVkcyIsImRlZmF1bHRSYWRpdXNSYW5nZSIsInZpc0NvbmZpZyIsImV4dHJ1ZGVkIiwic3Ryb2tlZCIsInJhZGl1cyIsInJhZGl1c1JhbmdlIiwic29tZSIsImQiLCJpIiwiRGltZW5zaW9uRmllbGRTY2hlbWFWMCIsIl9TY2hlbWEiLCJfaW5oZXJpdHMyIiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2xlbiIsImFyZ3MiLCJBcnJheSIsIl9rZXkiLCJjb25jYXQiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkMiIsIlZFUlNJT05TIiwidjAiLCJfY3JlYXRlQ2xhc3MyIiwia2V5IiwidmFsdWUiLCJzYXZlIiwiZmllbGQiLCJzYXZlUHJvcGVydGllc09yQXBwbHlTY2hlbWEiLCJsb2FkIiwicGFyZW50cyIsImFjY3VtdWxhdGVkIiwiX3BhcmVudHMkc2xpY2UiLCJzbGljZSIsIl9wYXJlbnRzJHNsaWNlMiIsIl9zbGljZWRUb0FycmF5MiIsImZpZWxkTmFtZSIsInR5cGUiLCJ2aXN1YWxDaGFubmVscyIsIlNjaGVtYSIsIkRpbWVuc2lvblNjYWxlU2NoZW1hVjAiLCJfU2NoZW1hMiIsIl90aGlzMiIsIl9sZW4yIiwiX2tleTIiLCJzY2FsZSIsIl9wYXJlbnRzJHNsaWNlMyIsIl9wYXJlbnRzJHNsaWNlNCIsIkxheWVyQ29uZmlnU2NoZW1hVjAiLCJfU2NoZW1hMyIsIl90aGlzMyIsIl9sZW4zIiwiX2tleTMiLCJzYXZlZCIsIkxheWVyQ29sdW1uc1NjaGVtYVYwIiwiX1NjaGVtYTQiLCJfdGhpczQiLCJfbGVuNCIsIl9rZXk0IiwiY29sdW1ucyIsInJlZHVjZSIsImFjY3UiLCJMYXllckNvbmZpZ1RvVmlzQ29uZmlnU2NoZW1hVjAiLCJfU2NoZW1hNSIsIl90aGlzNSIsIl9sZW41IiwiX2tleTUiLCJhY2N1bXVsYXRlZENvbmZpZyIsIkxheWVyVmlzQ29uZmlnU2NoZW1hVjAiLCJfU2NoZW1hNiIsIl90aGlzNiIsIl9sZW42IiwiX2tleTYiLCJhY2N1bXVsYXRvciIsIl9wYXJlbnRzJHNsaWNlNSIsIl9wYXJlbnRzJHNsaWNlNiIsInJlbmFtZSIsImdlb2pzb24iLCJlbGV2YXRpb25SYW5nZSIsInByb3BUb1JlbmFtZSIsIkxheWVyQ29uZmlnU2NoZW1hRGVsZXRlVjAiLCJfU2NoZW1hNyIsIl90aGlzNyIsIl9sZW43IiwiX2tleTciLCJsYXllclByb3BzVjAiLCJpZCIsImRhdGFJZCIsImxhYmVsIiwiY29sb3IiLCJpc1Zpc2libGUiLCJoaWRkZW4iLCJ2aXNpYmlsaXR5Qnlab29tIiwiY29sb3JGaWVsZCIsInByb3BlcnRpZXMiLCJjb2xvclNjYWxlIiwic2l6ZUZpZWxkIiwic2l6ZVNjYWxlIiwiZW5hYmxlM2QiLCJjb2xvckFnZ3JlZ2F0aW9uIiwic2l6ZUFnZ3JlZ2F0aW9uIiwiaXNBZ2dyZWdhdGVkIiwiQ29sdW1uU2NoZW1hVjEiLCJfU2NoZW1hOCIsInN0YXRlIiwiY2tleSIsIlRleHRMYWJlbFNjaGVtYVYxIiwiX1NjaGVtYTkiLCJ0ZXh0TGFiZWwiLCJtYXAiLCJ0bCIsInBpY2siLCJpc0FycmF5IiwidmlzdWFsQ2hhbm5lbE1vZGlmaWNhdGlvblYxIiwidmMiLCJfcGFyZW50cyRzbGljZTciLCJfcGFyZW50cyRzbGljZTgiLCJsYXllciIsImlzT2xkIiwiaGFzT3duUHJvcGVydHkiLCJpc1BvaW50IiwicmFkaXVzRmllbGQiLCJMQVlFUl9WSVNfQ09ORklHUyIsImRlZmF1bHRWYWx1ZSIsInN0cm9rZUNvbG9yRmllbGQiLCJzdHJva2VDb2xvclNjYWxlIiwiVmlzdWFsQ2hhbm5lbFNjaGVtYVYxIiwiX1NjaGVtYTEwIiwiX3BhcmVudHMkc2xpY2U5IiwiX3BhcmVudHMkc2xpY2UxMCIsIl9wYXJlbnRzJHNsaWNlMTEiLCJfcGFyZW50cyRzbGljZTEyIiwibW9kaWZpZWQiLCJMZWdlbmRTZXR0aW5nc1YxIiwiX1NjaGVtYTExIiwibGVnZW5kU2V0dGluZ3MiLCJscyIsInZpc0NvbmZpZ01vZGlmaWNhdGlvblYxIiwicG9pbnQiLCJfcGFyZW50cyRzbGljZTEzIiwiX3BhcmVudHMkc2xpY2UxNCIsInN0cm9rZUNvbG9yIiwic3Ryb2tlQ29sb3JSYW5nZSIsImNsb25lRGVlcCIsImNvbG9yUmFuZ2UiLCJvdXRsaW5lIiwiZmlsbGVkIiwiX3BhcmVudHMkc2xpY2UxNSIsIl9wYXJlbnRzJHNsaWNlMTYiLCJWaXNDb25maWdTY2hlbWFWMSIsIl9TY2hlbWExMiIsIl90aGlzOCIsIl9sZW44IiwiX2tleTgiLCJfcGFyZW50cyRzbGljZTE3IiwiX3BhcmVudHMkc2xpY2UxOCIsImxheWVyUHJvcHNWMSIsInZlcnNpb24iLCJ2MSIsImhpZ2hsaWdodENvbG9yIiwiTGF5ZXJTY2hlbWFWMCIsIl9TY2hlbWExMyIsIl90aGlzOSIsIl9sZW45IiwiX2tleTkiLCJsYXllcnMiLCJfdGhpczEwIiwiX3BhcmVudHMkc2xpY2UxOSIsIl9wYXJlbnRzJHNsaWNlMjAiLCJ2aXNTdGF0ZSIsImxheWVyT3JkZXIiLCJpbmRleCIsImlzVmFsaWRUb1NhdmUiLCJfdGhpczExIiwibG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hIiwiRmlsdGVyU2NoZW1hVjAiLCJfU2NoZW1hMTQiLCJfdGhpczEyIiwiX2xlbjEwIiwiX2tleTEwIiwiZmlsdGVycyIsIl90aGlzMTMiLCJpc1ZhbGlkRmlsdGVyVmFsdWUiLCJpbnRlcmFjdGlvblByb3BzVjAiLCJJbnRlcmFjdGlvblNjaGVtYVYwIiwiX1NjaGVtYTE1IiwiX3RoaXMxNCIsIl9sZW4xMSIsIl9rZXkxMSIsImludGVyYWN0aW9uQ29uZmlnIiwiZW5hYmxlZCIsImludGVyYWN0aW9uUHJvcHNWMSIsIkludGVyYWN0aW9uU2NoZW1hVjEiLCJfU2NoZW1hMTYiLCJfdGhpczE1IiwiX2xlbjEyIiwiX2tleTEyIiwiX3RoaXMxNiIsIm1vZGlmaWVkQ29uZmlnIiwiY29uZmlnVHlwZSIsImZpZWxkc1RvU2hvdyIsIm5vdE51bGxvclVuZGVmaW5lZCIsImZpZWxkRGF0YSIsIm5hbWUiLCJmb3JtYXQiLCJmaWx0ZXJQcm9wc1YwIiwiZW5sYXJnZWQiLCJEaW1lbnNpb25GaWVsZFNjaGVtYSIsIl9TY2hlbWExNyIsIlNwbGl0TWFwc1NjaGVtYSIsIl9TY2hlbWExOCIsImNvbnZlcnRMYXllclNldHRpbmdzIiwiX3JlZjE5IiwiX3JlZjIwIiwiX3R5cGVvZjIiLCJpc0F2YWlsYWJsZSIsInNwbGl0TWFwcyIsIl90aGlzMTciLCJzZXR0aW5ncyIsImVudHJpZXMiLCJmaWx0ZXJQcm9wc1YxIiwicGxvdFR5cGUiLCJhbmltYXRpb25XaW5kb3ciLCJ5QXhpcyIsImxheWVySWQiLCJzcGVlZCIsInByb3BlcnRpZXNWMCIsImxheWVyQmxlbmRpbmciLCJwcm9wZXJ0aWVzVjEiLCJhbmltYXRpb25Db25maWciLCJjdXJyZW50VGltZSIsInZpc1N0YXRlU2NoZW1hVjAiLCJ2aXNTdGF0ZVNjaGVtYVYxIiwidmlzU3RhdGVTY2hlbWEiLCJ0b1NhdmUiLCJ0b0xvYWQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWFzL3Zpcy1zdGF0ZS1zY2hlbWEuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHBpY2sgZnJvbSAnbG9kYXNoL3BpY2snO1xuaW1wb3J0IHtWRVJTSU9OU30gZnJvbSAnLi92ZXJzaW9ucyc7XG5pbXBvcnQge2lzVmFsaWRGaWx0ZXJWYWx1ZX0gZnJvbSAndXRpbHMvZmlsdGVyLXV0aWxzJztcbmltcG9ydCB7TEFZRVJfVklTX0NPTkZJR1N9IGZyb20gJ2xheWVycy9sYXllci1mYWN0b3J5JztcbmltcG9ydCBTY2hlbWEgZnJvbSAnLi9zY2hlbWEnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2gvY2xvbmVEZWVwJztcbmltcG9ydCB7bm90TnVsbG9yVW5kZWZpbmVkfSBmcm9tICd1dGlscy9kYXRhLXV0aWxzJztcblxuLyoqXG4gKiBWMCBTY2hlbWFcbiAqL1xuXG5leHBvcnQgY29uc3QgZGltZW5zaW9uUHJvcHNWMCA9IFsnbmFtZScsICd0eXBlJ107XG5cbi8vIGluIHYwIGdlb2pzb24gdGhlcmUgaXMgb25seSBzaXplRmllbGRcblxuLy8gaW4gdjEgZ2VvanNvblxuLy8gc3Ryb2tlIGJhc2Ugb24gLT4gc2l6ZUZpZWxkXG4vLyBoZWlnaHQgYmFzZWQgb24gLT4gaGVpZ2h0RmllbGRcbi8vIHJhZGl1cyBiYXNlZCBvbiAtPiByYWRpdXNGaWVsZFxuLy8gaGVyZSB3ZSBtYWtlIG91ciB3aXJlZHN0IGd1ZXNzIG9uIHdoaWNoIGNoYW5uZWwgc2l6ZUZpZWxkIGJlbG9uZ3MgdG9cbmZ1bmN0aW9uIGdlb2pzb25TaXplRmllbGRWMFRvVjEoY29uZmlnKSB7XG4gIGNvbnN0IGRlZmF1bHRSYWl1ZHMgPSAxMDtcbiAgY29uc3QgZGVmYXVsdFJhZGl1c1JhbmdlID0gWzAsIDUwXTtcblxuICAvLyBpZiBleHRydWRlZCwgc2l6ZUZpZWxkIGlzIG1vc3QgbGlrZWx5IHVzZWQgZm9yIGhlaWdodFxuICBpZiAoY29uZmlnLnZpc0NvbmZpZy5leHRydWRlZCkge1xuICAgIHJldHVybiAnaGVpZ2h0RmllbGQnO1xuICB9XG5cbiAgLy8gaWYgc2hvdyBzdHJva2UgZW5hYmxlZCwgc2l6ZUZpZWxkIGlzIG1vc3QgbGlrZWx5IHVzZWQgZm9yIHN0cm9rZVxuICBpZiAoY29uZmlnLnZpc0NvbmZpZy5zdHJva2VkKSB7XG4gICAgcmV0dXJuICdzaXplRmllbGQnO1xuICB9XG5cbiAgLy8gaWYgcmFkaXVzIGNoYW5nZWQsIG9yIHJhZGl1cyBSYW5nZSBDaGFuZ2VkLCBzaXplRmllbGQgaXMgbW9zdCBsaWtlbHkgdXNlZCBmb3IgcmFkaXVzXG4gIC8vIHRoaXMgaXMgdGhlIG1vc3QgdW5yZWxpYWJsZSBndWVzcywgdGhhdCdzIHdoeSB3ZSBwdXQgaXQgaW4gdGhlIGVuZFxuICBpZiAoXG4gICAgY29uZmlnLnZpc0NvbmZpZy5yYWRpdXMgIT09IGRlZmF1bHRSYWl1ZHMgfHxcbiAgICBjb25maWcudmlzQ29uZmlnLnJhZGl1c1JhbmdlLnNvbWUoKGQsIGkpID0+IGQgIT09IGRlZmF1bHRSYWRpdXNSYW5nZVtpXSlcbiAgKSB7XG4gICAgcmV0dXJuICdyYWRpdXNGaWVsZCc7XG4gIH1cblxuICByZXR1cm4gJ3NpemVGaWVsZCc7XG59XG5cbi8vIGNvbnZlcnQgdjAgdG8gdjEgbGF5ZXIgY29uZmlnXG5jbGFzcyBEaW1lbnNpb25GaWVsZFNjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBzYXZlKGZpZWxkKSB7XG4gICAgLy8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgYW55bW9yZVxuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBmaWVsZCAhPT0gbnVsbCA/IHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGZpZWxkKVt0aGlzLmtleV0gOiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIGxvYWQoZmllbGQsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSB7XG4gICAgY29uc3QgW2NvbmZpZ10gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBsZXQgZmllbGROYW1lID0gdGhpcy5rZXk7XG4gICAgaWYgKGNvbmZpZy50eXBlID09PSAnZ2VvanNvbicgJiYgdGhpcy5rZXkgPT09ICdzaXplRmllbGQnICYmIGZpZWxkKSB7XG4gICAgICBmaWVsZE5hbWUgPSBnZW9qc29uU2l6ZUZpZWxkVjBUb1YxKGNvbmZpZyk7XG4gICAgfVxuICAgIC8vIGZvbGQgaW50byB2aXN1YWxDaGFubmVscyB0byBiZSBsb2FkIGJ5IFZpc3VhbENoYW5uZWxTY2hlbWFWMVxuICAgIHJldHVybiB7XG4gICAgICB2aXN1YWxDaGFubmVsczoge1xuICAgICAgICAuLi4oYWNjdW11bGF0ZWQudmlzdWFsQ2hhbm5lbHMgfHwge30pLFxuICAgICAgICBbZmllbGROYW1lXTogZmllbGRcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbmNsYXNzIERpbWVuc2lvblNjYWxlU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICB2ZXJzaW9uID0gVkVSU0lPTlMudjA7XG4gIHNhdmUoc2NhbGUpIHtcbiAgICByZXR1cm4ge1t0aGlzLmtleV06IHNjYWxlfTtcbiAgfVxuICBsb2FkKHNjYWxlLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIGNvbnN0IFtjb25maWddID0gcGFyZW50cy5zbGljZSgtMSk7XG4gICAgLy8gZm9sZCBpbnRvIHZpc3VhbENoYW5uZWxzIHRvIGJlIGxvYWQgYnkgVmlzdWFsQ2hhbm5lbFNjaGVtYVYxXG4gICAgaWYgKHRoaXMua2V5ID09PSAnc2l6ZVNjYWxlJyAmJiBjb25maWcudHlwZSA9PT0gJ2dlb2pzb24nKSB7XG4gICAgICAvLyBzaXplU2NhbGUgbm93IHNwbGl0IGludG8gcmFkaXVzU2NhbGUsIGhlaWdodFNjYWxlXG4gICAgICAvLyBubyB1c2VyIGN1c3RvbWl6YXRpb24sIGp1c3QgdXNlIGRlZmF1bHRcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmlzdWFsQ2hhbm5lbHM6IHtcbiAgICAgICAgLi4uKGFjY3VtdWxhdGVkLnZpc3VhbENoYW5uZWxzIHx8IHt9KSxcbiAgICAgICAgW3RoaXMua2V5XTogc2NhbGVcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbi8vIHVzZWQgdG8gY29udmVydCB2MCB0byB2MSBsYXllciBjb25maWdcbmNsYXNzIExheWVyQ29uZmlnU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICB2ZXJzaW9uID0gVkVSU0lPTlMudjA7XG4gIGxvYWQoc2F2ZWQsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSB7XG4gICAgLy8gZm9sZCB2MCBsYXllciBwcm9wZXJ0eSBpbnRvIGNvbmZpZy5rZXlcbiAgICByZXR1cm4ge1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRlZC5jb25maWcgfHwge30pLFxuICAgICAgICBbdGhpcy5rZXldOiBzYXZlZFxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuLy8gdXNlZCB0byBjb252ZXJ0IHYwIHRvIHYxIGxheWVyIGNvbHVtbnNcbi8vIG9ubHkgcmV0dXJuIGNvbHVtbiB2YWx1ZSBmb3IgZWFjaCBjb2x1bW5cbmNsYXNzIExheWVyQ29sdW1uc1NjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBsb2FkKHNhdmVkLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIC8vIGZvbGQgdjAgbGF5ZXIgcHJvcGVydHkgaW50byBjb25maWcua2V5LCBmbGF0dGVuIGNvbHVtbnNcbiAgICByZXR1cm4ge1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRlZC5jb25maWcgfHwge30pLFxuICAgICAgICBjb2x1bW5zOiBPYmplY3Qua2V5cyhzYXZlZCkucmVkdWNlKFxuICAgICAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgICAgW2tleV06IHNhdmVkW2tleV0udmFsdWVcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB7fVxuICAgICAgICApXG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG4vLyB1c2VkIHRvIGNvbnZlcnQgdjAgdG8gdjEgbGF5ZXIgY29uZmlnLnZpc0NvbmZpZ1xuY2xhc3MgTGF5ZXJDb25maWdUb1Zpc0NvbmZpZ1NjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBsb2FkKHNhdmVkLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIC8vIGZvbGQgdjAgbGF5ZXIgcHJvcGVydHkgaW50byBjb25maWcudmlzQ29uZmlnXG4gICAgY29uc3QgYWNjdW11bGF0ZWRDb25maWcgPSBhY2N1bXVsYXRlZC5jb25maWcgfHwge307XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi5hY2N1bXVsYXRlZENvbmZpZyxcbiAgICAgICAgdmlzQ29uZmlnOiB7XG4gICAgICAgICAgLi4uKGFjY3VtdWxhdGVkQ29uZmlnLnZpc0NvbmZpZyB8fCB7fSksXG4gICAgICAgICAgW3RoaXMua2V5XTogc2F2ZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgTGF5ZXJWaXNDb25maWdTY2hlbWFWMCBleHRlbmRzIFNjaGVtYSB7XG4gIHZlcnNpb24gPSBWRVJTSU9OUy52MDtcbiAga2V5ID0gJ3Zpc0NvbmZpZyc7XG5cbiAgbG9hZCh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdG9yKSB7XG4gICAgY29uc3QgW2NvbmZpZ10gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBjb25zdCByZW5hbWUgPSB7XG4gICAgICBnZW9qc29uOiB7XG4gICAgICAgIGV4dHJ1ZGVkOiAnZW5hYmxlM2QnLFxuICAgICAgICBlbGV2YXRpb25SYW5nZTogJ2hlaWdodFJhbmdlJ1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnLnR5cGUgaW4gcmVuYW1lKSB7XG4gICAgICBjb25zdCBwcm9wVG9SZW5hbWUgPSByZW5hbWVbY29uZmlnLnR5cGVdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uKGFjY3VtdWxhdG9yLmNvbmZpZyB8fCB7fSksXG4gICAgICAgICAgdmlzQ29uZmlnOiBPYmplY3Qua2V5cyh2aXNDb25maWcpLnJlZHVjZShcbiAgICAgICAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgICAgIC4uLihwcm9wVG9SZW5hbWVba2V5XVxuICAgICAgICAgICAgICAgID8ge1twcm9wVG9SZW5hbWVba2V5XV06IHZpc0NvbmZpZ1trZXldfVxuICAgICAgICAgICAgICAgIDoge1trZXldOiB2aXNDb25maWdba2V5XX0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgLi4uKGFjY3VtdWxhdG9yLmNvbmZpZyB8fCB7fSksXG4gICAgICAgIHZpc0NvbmZpZ1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgTGF5ZXJDb25maWdTY2hlbWFEZWxldGVWMCBleHRlbmRzIFNjaGVtYSB7XG4gIHZlcnNpb24gPSBWRVJTSU9OUy52MDtcbiAgbG9hZCh2YWx1ZSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4vKipcbiAqIFYwIC0+IFYxIENoYW5nZXNcbiAqIC0gbGF5ZXIgaXMgbm93IGEgY2xhc3NcbiAqIC0gY29uZmlnIHNhdmVkIGluIGEgY29uZmlnIG9iamVjdFxuICogLSBpZCwgdHlwZSwgaXNBZ2dyZWdhdGVkIGlzIG91dHNpZGUgbGF5ZXIuY29uZmlnXG4gKiAtIHZpc3VhbENoYW5uZWxzIGlzIG91dHNpZGUgY29uZmlnLCBpdCBkZWZpbmVzIGF2YWlsYWJsZSB2aXN1YWwgY2hhbm5lbCBhbmRcbiAqICAgcHJvcGVydHkgbmFtZXMgZm9yIGZpZWxkLCBzY2FsZSwgZG9tYWluIGFuZCByYW5nZSBvZiBlYWNoIHZpc3VhbCBjaGFuZWwuXG4gKiAtIGVuYWJsZTNkLCBjb2xvckFnZ3JlZ2F0aW9uIGFuZCBzaXplQWdncmVnYXRpb24gYXJlIG1vdmVkIGludG8gdmlzQ29uZmlnXG4gKiAtIEdlb2pzb25MYXllciAtIGFkZGVkIGhlaWdodCwgcmFkaXVzIHNwZWNpZmljIHByb3BlcnRpZXNcbiAqL1xuXG5leHBvcnQgY29uc3QgbGF5ZXJQcm9wc1YwID0ge1xuICBpZDogbnVsbCxcbiAgdHlwZTogbnVsbCxcblxuICAvLyBtb3ZlIGludG8gbGF5ZXIuY29uZmlnXG4gIGRhdGFJZDogbmV3IExheWVyQ29uZmlnU2NoZW1hVjAoe2tleTogJ2RhdGFJZCd9KSxcbiAgbGFiZWw6IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdsYWJlbCd9KSxcbiAgY29sb3I6IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdjb2xvcid9KSxcbiAgaXNWaXNpYmxlOiBuZXcgTGF5ZXJDb25maWdTY2hlbWFWMCh7a2V5OiAnaXNWaXNpYmxlJ30pLFxuICBoaWRkZW46IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdoaWRkZW4nfSksXG4gIHZpc2liaWxpdHlCeVpvb206IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICd2aXNpYmlsaXR5Qnlab29tJ30pLFxuXG4gIC8vIGNvbnZlcnQgdmlzQ29uZmlnXG4gIHZpc0NvbmZpZzogbmV3IExheWVyVmlzQ29uZmlnU2NoZW1hVjAoe2tleTogJ3Zpc0NvbmZpZyd9KSxcblxuICAvLyBtb3ZlIGludG8gbGF5ZXIuY29uZmlnXG4gIC8vIGZsYXR0ZW5cbiAgY29sdW1uczogbmV3IExheWVyQ29sdW1uc1NjaGVtYVYwKCksXG5cbiAgLy8gc2F2ZSBpbnRvIHZpc3VhbENoYW5uZWxzXG4gIGNvbG9yRmllbGQ6IG5ldyBEaW1lbnNpb25GaWVsZFNjaGVtYVYwKHtcbiAgICBwcm9wZXJ0aWVzOiBkaW1lbnNpb25Qcm9wc1YwLFxuICAgIGtleTogJ2NvbG9yRmllbGQnXG4gIH0pLFxuICBjb2xvclNjYWxlOiBuZXcgRGltZW5zaW9uU2NhbGVTY2hlbWFWMCh7XG4gICAga2V5OiAnY29sb3JTY2FsZSdcbiAgfSksXG4gIHNpemVGaWVsZDogbmV3IERpbWVuc2lvbkZpZWxkU2NoZW1hVjAoe1xuICAgIHByb3BlcnRpZXM6IGRpbWVuc2lvblByb3BzVjAsXG4gICAga2V5OiAnc2l6ZUZpZWxkJ1xuICB9KSxcbiAgc2l6ZVNjYWxlOiBuZXcgRGltZW5zaW9uU2NhbGVTY2hlbWFWMCh7XG4gICAga2V5OiAnc2l6ZVNjYWxlJ1xuICB9KSxcblxuICAvLyBtb3ZlIGludG8gY29uZmlnLnZpc0NvbmZpZ1xuICBlbmFibGUzZDogbmV3IExheWVyQ29uZmlnVG9WaXNDb25maWdTY2hlbWFWMCh7a2V5OiAnZW5hYmxlM2QnfSksXG4gIGNvbG9yQWdncmVnYXRpb246IG5ldyBMYXllckNvbmZpZ1RvVmlzQ29uZmlnU2NoZW1hVjAoe1xuICAgIGtleTogJ2NvbG9yQWdncmVnYXRpb24nXG4gIH0pLFxuICBzaXplQWdncmVnYXRpb246IG5ldyBMYXllckNvbmZpZ1RvVmlzQ29uZmlnU2NoZW1hVjAoe2tleTogJ3NpemVBZ2dyZWdhdGlvbid9KSxcblxuICAvLyBkZWxldGVcbiAgaXNBZ2dyZWdhdGVkOiBuZXcgTGF5ZXJDb25maWdTY2hlbWFEZWxldGVWMCgpXG59O1xuXG4vKipcbiAqIFYxIFNjaGVtYVxuICovXG5jbGFzcyBDb2x1bW5TY2hlbWFWMSBleHRlbmRzIFNjaGVtYSB7XG4gIHNhdmUoY29sdW1ucywgc3RhdGUpIHtcbiAgICAvLyBzdGFydGluZyBmcm9tIHYxLCBvbmx5IHNhdmUgY29sdW1uIHZhbHVlXG4gICAgLy8gZmllbGRJZHggd2lsbCBiZSBjYWxjdWxhdGVkIGR1cmluZyBtZXJnZVxuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyhjb2x1bW5zKS5yZWR1Y2UoXG4gICAgICAgIChhY2N1LCBja2V5KSA9PiAoe1xuICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgW2NrZXldOiBjb2x1bW5zW2NrZXldLnZhbHVlXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIH07XG4gIH1cblxuICBsb2FkKGNvbHVtbnMpIHtcbiAgICByZXR1cm4ge2NvbHVtbnN9O1xuICB9XG59XG5cbmNsYXNzIFRleHRMYWJlbFNjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZSh0ZXh0TGFiZWwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMua2V5XTogdGV4dExhYmVsLm1hcCh0bCA9PiAoe1xuICAgICAgICAuLi50bCxcbiAgICAgICAgZmllbGQ6IHRsLmZpZWxkID8gcGljayh0bC5maWVsZCwgWyduYW1lJywgJ3R5cGUnXSkgOiBudWxsXG4gICAgICB9KSlcbiAgICB9O1xuICB9XG5cbiAgbG9hZCh0ZXh0TGFiZWwpIHtcbiAgICByZXR1cm4ge3RleHRMYWJlbDogQXJyYXkuaXNBcnJheSh0ZXh0TGFiZWwpID8gdGV4dExhYmVsIDogW3RleHRMYWJlbF19O1xuICB9XG59XG5cbmNvbnN0IHZpc3VhbENoYW5uZWxNb2RpZmljYXRpb25WMSA9IHtcbiAgZ2VvanNvbjogKHZjLCBwYXJlbnRzLCBhY2N1bXVsYXRvcikgPT4ge1xuICAgIGNvbnN0IFtsYXllcl0gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBjb25zdCBpc09sZCA9ICF2Yy5oYXNPd25Qcm9wZXJ0eSgnc3Ryb2tlQ29sb3JGaWVsZCcpO1xuICAgIC8vIG1ha2Ugb3VyIGJlc3QgZ3Vlc3MgaWYgdGhpcyBnZW9qc29uIGxheWVyIGNvbnRhaW5zIHBvaW50XG4gICAgY29uc3QgaXNQb2ludCA9XG4gICAgICB2Yy5yYWRpdXNGaWVsZCB8fCBsYXllci5jb25maWcudmlzQ29uZmlnLnJhZGl1cyAhPT0gTEFZRVJfVklTX0NPTkZJR1MucmFkaXVzLmRlZmF1bHRWYWx1ZTtcblxuICAgIGlmIChpc09sZCAmJiAhaXNQb2ludCAmJiBsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZWQpIHtcbiAgICAgIC8vIGlmIHN0cm9rZWQgaXMgdHJ1ZSwgY29weSBjb2xvciBjb25maWcgdG8gc3Ryb2tlIGNvbG9yIGNvbmZpZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3Ryb2tlQ29sb3JGaWVsZDogdmMuY29sb3JGaWVsZCxcbiAgICAgICAgc3Ryb2tlQ29sb3JTY2FsZTogdmMuY29sb3JTY2FsZVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG59O1xuLyoqXG4gKiBWMTogc2F2ZSBbZmllbGRdOiB7bmFtZSwgdHlwZX0sIFtzY2FsZV06ICcnIGZvciBlYWNoIGNoYW5uZWxcbiAqL1xuY2xhc3MgVmlzdWFsQ2hhbm5lbFNjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZSh2aXN1YWxDaGFubmVscywgcGFyZW50cykge1xuICAgIC8vIG9ubHkgc2F2ZSBmaWVsZCBhbmQgc2NhbGUgb2YgZWFjaCBjaGFubmVsXG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTEpO1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyh2aXN1YWxDaGFubmVscykucmVkdWNlKFxuICAgICAgICAvLyAgc2F2ZSBjaGFubmVsIHRvIG51bGwgaWYgZGlkbid0IHNlbGVjdCBhbnkgZmllbGRcbiAgICAgICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgIFt2aXN1YWxDaGFubmVsc1trZXldLmZpZWxkXTogbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uZmllbGRdXG4gICAgICAgICAgICA/IHBpY2sobGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uZmllbGRdLCBbJ25hbWUnLCAndHlwZScsICdjb2xvckNvbHVtbiddKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIFt2aXN1YWxDaGFubmVsc1trZXldLnNjYWxlXTogbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uc2NhbGVdXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIH07XG4gIH1cbiAgbG9hZCh2YywgcGFyZW50cywgYWNjdW11bGF0b3IpIHtcbiAgICAvLyBmb2xkIGNoYW5uZWxzIGludG8gY29uZmlnXG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTEpO1xuICAgIGNvbnN0IG1vZGlmaWVkID0gdmlzdWFsQ2hhbm5lbE1vZGlmaWNhdGlvblYxW2xheWVyLnR5cGVdXG4gICAgICA/IHZpc3VhbENoYW5uZWxNb2RpZmljYXRpb25WMVtsYXllci50eXBlXSh2YywgcGFyZW50cywgYWNjdW11bGF0b3IpXG4gICAgICA6IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjY3VtdWxhdG9yLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRvci5jb25maWcgfHwge30pLFxuICAgICAgICAuLi52YyxcbiAgICAgICAgLi4ubW9kaWZpZWRcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4vKipcbiAqIFYxOiBzYXZlIFtjaGFubmVsXTogW3sgbGFiZWwsIGNvbG9yIH0sIC4uLl0gZm9yIGxlZ2VuZFxuICovXG5jbGFzcyBMZWdlbmRTZXR0aW5nc1YxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZShsZWdlbmRTZXR0aW5ncywgcGFyZW50cykge1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyhsZWdlbmRTZXR0aW5ncykucmVkdWNlKChhY2N1LCBrZXkpID0+IHtcbiAgICAgICAgYWNjdVtrZXldID0gbGVnZW5kU2V0dGluZ3Nba2V5XTtcbiAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICB9LCB7fSlcbiAgICB9O1xuICB9XG4gIGxvYWQobHMsIHBhcmVudHMsIGFjY3VtdWxhdG9yKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjY3VtdWxhdG9yLFxuICAgICAgW3RoaXMua2V5XTogbHNcbiAgICB9O1xuICB9XG59XG5jb25zdCB2aXNDb25maWdNb2RpZmljYXRpb25WMSA9IHtcbiAgcG9pbnQ6ICh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSA9PiB7XG4gICAgY29uc3QgbW9kaWZpZWQgPSB7fTtcbiAgICBjb25zdCBbbGF5ZXJdID0gcGFyZW50cy5zbGljZSgtMiwgLTEpO1xuICAgIGNvbnN0IGlzT2xkID1cbiAgICAgICF2aXNDb25maWcuaGFzT3duUHJvcGVydHkoJ2ZpbGxlZCcpICYmICF2aXNDb25maWcuc3Ryb2tlQ29sb3IgJiYgIXZpc0NvbmZpZy5zdHJva2VDb2xvclJhbmdlO1xuICAgIGlmIChpc09sZCkge1xuICAgICAgLy8gY29sb3IgY29sb3IgJiBjb2xvciByYW5nZSB0byBzdHJva2UgY29sb3JcbiAgICAgIG1vZGlmaWVkLnN0cm9rZUNvbG9yID0gbGF5ZXIuY29uZmlnLmNvbG9yO1xuICAgICAgbW9kaWZpZWQuc3Ryb2tlQ29sb3JSYW5nZSA9IGNsb25lRGVlcCh2aXNDb25maWcuY29sb3JSYW5nZSk7XG4gICAgICBpZiAodmlzQ29uZmlnLm91dGxpbmUpIHtcbiAgICAgICAgLy8gcG9pbnQgbGF5ZXIgbm93IHN1cHBvcnRzIGJvdGggb3V0bGluZSBhbmQgZmlsbFxuICAgICAgICAvLyBmb3Igb2xkZXIgc2NoZW1hIHdoZXJlIGZpbGxlZCBoYXMgbm90IGJlZW4gYWRkZWQgdG8gcG9pbnQgbGF5ZXJcbiAgICAgICAgLy8gc2V0IGl0IHRvIGZhbHNlXG4gICAgICAgIG1vZGlmaWVkLmZpbGxlZCA9IGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBtb2RpZmllZDtcbiAgfSxcbiAgZ2VvanNvbjogKHZpc0NvbmZpZywgcGFyZW50cywgYWNjdW11bGF0ZWQpID0+IHtcbiAgICAvLyBpcyBwb2ludHM/XG4gICAgY29uc3QgbW9kaWZpZWQgPSB7fTtcbiAgICBjb25zdCBbbGF5ZXJdID0gcGFyZW50cy5zbGljZSgtMiwgLTEpO1xuICAgIGNvbnN0IGlzT2xkID1cbiAgICAgIGxheWVyLnZpc3VhbENoYW5uZWxzICYmXG4gICAgICAhbGF5ZXIudmlzdWFsQ2hhbm5lbHMuaGFzT3duUHJvcGVydHkoJ3N0cm9rZUNvbG9yRmllbGQnKSAmJlxuICAgICAgIXZpc0NvbmZpZy5zdHJva2VDb2xvciAmJlxuICAgICAgIXZpc0NvbmZpZy5zdHJva2VDb2xvclJhbmdlO1xuICAgIC8vIG1ha2Ugb3VyIGJlc3QgZ3Vlc3MgaWYgdGhpcyBnZW9qc29uIGxheWVyIGNvbnRhaW5zIHBvaW50XG4gICAgY29uc3QgaXNQb2ludCA9XG4gICAgICAobGF5ZXIudmlzdWFsQ2hhbm5lbHMgJiYgbGF5ZXIudmlzdWFsQ2hhbm5lbHMucmFkaXVzRmllbGQpIHx8XG4gICAgICAodmlzQ29uZmlnICYmIHZpc0NvbmZpZy5yYWRpdXMgIT09IExBWUVSX1ZJU19DT05GSUdTLnJhZGl1cy5kZWZhdWx0VmFsdWUpO1xuXG4gICAgaWYgKGlzT2xkKSB7XG4gICAgICAvLyBjb2xvciBjb2xvciAmIGNvbG9yIHJhbmdlIHRvIHN0cm9rZSBjb2xvclxuICAgICAgbW9kaWZpZWQuc3Ryb2tlQ29sb3IgPSBsYXllci5jb25maWcuY29sb3I7XG4gICAgICBtb2RpZmllZC5zdHJva2VDb2xvclJhbmdlID0gY2xvbmVEZWVwKHZpc0NvbmZpZy5jb2xvclJhbmdlKTtcbiAgICAgIGlmIChpc1BvaW50KSB7XG4gICAgICAgIC8vIGlmIGlzIHBvaW50LCBzZXQgc3Ryb2tlIHRvIGZhbHNlXG4gICAgICAgIG1vZGlmaWVkLmZpbGxlZCA9IHRydWU7XG4gICAgICAgIG1vZGlmaWVkLnN0cm9rZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbW9kaWZpZWQ7XG4gIH1cbn07XG5cbmNsYXNzIFZpc0NvbmZpZ1NjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAga2V5ID0gJ3Zpc0NvbmZpZyc7XG5cbiAgbG9hZCh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSB7XG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTIsIC0xKTtcbiAgICBjb25zdCBtb2RpZmllZCA9IHZpc0NvbmZpZ01vZGlmaWNhdGlvblYxW2xheWVyLnR5cGVdXG4gICAgICA/IHZpc0NvbmZpZ01vZGlmaWNhdGlvblYxW2xheWVyLnR5cGVdKHZpc0NvbmZpZywgcGFyZW50cywgYWNjdW11bGF0ZWQpXG4gICAgICA6IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHZpc0NvbmZpZzoge1xuICAgICAgICAuLi52aXNDb25maWcsXG4gICAgICAgIC4uLm1vZGlmaWVkXG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgbGF5ZXJQcm9wc1YxID0ge1xuICBpZDogbnVsbCxcbiAgdHlwZTogbnVsbCxcbiAgY29uZmlnOiBuZXcgU2NoZW1hKHtcbiAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MSxcbiAgICBrZXk6ICdjb25maWcnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGRhdGFJZDogbnVsbCxcbiAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgY29sb3I6IG51bGwsXG4gICAgICBoaWdobGlnaHRDb2xvcjogbnVsbCxcbiAgICAgIGNvbHVtbnM6IG5ldyBDb2x1bW5TY2hlbWFWMSh7XG4gICAgICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgICAgICBrZXk6ICdjb2x1bW5zJ1xuICAgICAgfSksXG4gICAgICBpc1Zpc2libGU6IG51bGwsXG4gICAgICB2aXNDb25maWc6IG5ldyBWaXNDb25maWdTY2hlbWFWMSh7XG4gICAgICAgIHZlcnNpb246IFZFUlNJT05TLnYxXG4gICAgICB9KSxcbiAgICAgIGhpZGRlbjogbnVsbCxcbiAgICAgIHZpc2liaWxpdHlCeVpvb206IG51bGwsXG4gICAgICB0ZXh0TGFiZWw6IG5ldyBUZXh0TGFiZWxTY2hlbWFWMSh7XG4gICAgICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgICAgICBrZXk6ICd0ZXh0TGFiZWwnXG4gICAgICB9KVxuICAgIH1cbiAgfSksXG4gIGxlZ2VuZFNldHRpbmdzOiBuZXcgTGVnZW5kU2V0dGluZ3NWMSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAga2V5OiAnbGVnZW5kU2V0dGluZ3MnXG4gIH0pLFxuICB2aXN1YWxDaGFubmVsczogbmV3IFZpc3VhbENoYW5uZWxTY2hlbWFWMSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAga2V5OiAndmlzdWFsQ2hhbm5lbHMnXG4gIH0pXG59O1xuXG5leHBvcnQgY2xhc3MgTGF5ZXJTY2hlbWFWMCBleHRlbmRzIFNjaGVtYSB7XG4gIGtleSA9ICdsYXllcnMnO1xuXG4gIHNhdmUobGF5ZXJzLCBwYXJlbnRzKSB7XG4gICAgY29uc3QgW3Zpc1N0YXRlXSA9IHBhcmVudHMuc2xpY2UoLTEpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIFt0aGlzLmtleV06IHZpc1N0YXRlLmxheWVyT3JkZXIucmVkdWNlKChzYXZlZCwgaW5kZXgpID0+IHtcbiAgICAgICAgLy8gc2F2ZSBsYXllcnMgYWNjb3JkaW5nIHRvIHRoZWlyIHJlbmRlcmluZyBvcmRlclxuICAgICAgICBjb25zdCBsYXllciA9IGxheWVyc1tpbmRleF07XG4gICAgICAgIGlmIChsYXllci5pc1ZhbGlkVG9TYXZlKCkpIHtcbiAgICAgICAgICBzYXZlZC5wdXNoKHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGxheWVyKS5sYXllcnMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBzYXZlZDtcbiAgICAgIH0sIFtdKVxuICAgIH07XG4gIH1cblxuICBsb2FkKGxheWVycykge1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBsYXllcnMubWFwKGxheWVyID0+IHRoaXMubG9hZFByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGxheWVyLCBsYXllcnMpLmxheWVycylcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBGaWx0ZXJTY2hlbWFWMCBleHRlbmRzIFNjaGVtYSB7XG4gIGtleSA9ICdmaWx0ZXJzJztcbiAgc2F2ZShmaWx0ZXJzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnNcbiAgICAgICAgLmZpbHRlcihpc1ZhbGlkRmlsdGVyVmFsdWUpXG4gICAgICAgIC5tYXAoZmlsdGVyID0+IHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGZpbHRlcikuZmlsdGVycylcbiAgICB9O1xuICB9XG4gIGxvYWQoZmlsdGVycykge1xuICAgIHJldHVybiB7ZmlsdGVyc307XG4gIH1cbn1cblxuY29uc3QgaW50ZXJhY3Rpb25Qcm9wc1YwID0gWyd0b29sdGlwJywgJ2JydXNoJ107XG5cbmNsYXNzIEludGVyYWN0aW9uU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICBrZXkgPSAnaW50ZXJhY3Rpb25Db25maWcnO1xuXG4gIHNhdmUoaW50ZXJhY3Rpb25Db25maWcpIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnByb3BlcnRpZXMpXG4gICAgICA/IHtcbiAgICAgICAgICBbdGhpcy5rZXldOiB0aGlzLnByb3BlcnRpZXMucmVkdWNlKFxuICAgICAgICAgICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgICAgICAgLi4uKGludGVyYWN0aW9uQ29uZmlnW2tleV0uZW5hYmxlZCA/IHtba2V5XTogaW50ZXJhY3Rpb25Db25maWdba2V5XS5jb25maWd9IDoge30pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICA6IHt9O1xuICB9XG4gIGxvYWQoaW50ZXJhY3Rpb25Db25maWcpIHtcbiAgICAvLyBjb252ZXJ0IHYwIC0+IHYxXG4gICAgLy8gcmV0dXJuIGVuYWJsZWQ6IGZhbHNlIGlmIGRpc2FibGVkLFxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMucHJvcGVydGllcylcbiAgICAgID8ge1xuICAgICAgICAgIFt0aGlzLmtleV06IHRoaXMucHJvcGVydGllcy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgICAgICAuLi57XG4gICAgICAgICAgICAgICAgW2tleV06IHtcbiAgICAgICAgICAgICAgICAgIC4uLihpbnRlcmFjdGlvbkNvbmZpZ1trZXldIHx8IHt9KSxcbiAgICAgICAgICAgICAgICAgIGVuYWJsZWQ6IEJvb2xlYW4oaW50ZXJhY3Rpb25Db25maWdba2V5XSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApXG4gICAgICAgIH1cbiAgICAgIDoge307XG4gIH1cbn1cblxuY29uc3QgaW50ZXJhY3Rpb25Qcm9wc1YxID0gWy4uLmludGVyYWN0aW9uUHJvcHNWMCwgJ2dlb2NvZGVyJywgJ2Nvb3JkaW5hdGUnXTtcblxuZXhwb3J0IGNsYXNzIEludGVyYWN0aW9uU2NoZW1hVjEgZXh0ZW5kcyBTY2hlbWEge1xuICBrZXkgPSAnaW50ZXJhY3Rpb25Db25maWcnO1xuXG4gIHNhdmUoaW50ZXJhY3Rpb25Db25maWcpIHtcbiAgICAvLyBzYXZlIGNvbmZpZyBldmVuIGlmIGRpc2FibGVkLFxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHRoaXMucHJvcGVydGllcylcbiAgICAgID8ge1xuICAgICAgICAgIFt0aGlzLmtleV06IHRoaXMucHJvcGVydGllcy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgICAgICBba2V5XToge1xuICAgICAgICAgICAgICAgIC4uLmludGVyYWN0aW9uQ29uZmlnW2tleV0uY29uZmlnLFxuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IGludGVyYWN0aW9uQ29uZmlnW2tleV0uZW5hYmxlZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICA6IHt9O1xuICB9XG4gIGxvYWQoaW50ZXJhY3Rpb25Db25maWcpIHtcbiAgICBjb25zdCBtb2RpZmllZENvbmZpZyA9IGludGVyYWN0aW9uQ29uZmlnO1xuICAgIE9iamVjdC5rZXlzKGludGVyYWN0aW9uQ29uZmlnKS5mb3JFYWNoKGNvbmZpZ1R5cGUgPT4ge1xuICAgICAgaWYgKGNvbmZpZ1R5cGUgPT09ICd0b29sdGlwJykge1xuICAgICAgICBjb25zdCBmaWVsZHNUb1Nob3cgPSBtb2RpZmllZENvbmZpZ1tjb25maWdUeXBlXS5maWVsZHNUb1Nob3c7XG4gICAgICAgIGlmICghbm90TnVsbG9yVW5kZWZpbmVkKGZpZWxkc1RvU2hvdykpIHtcbiAgICAgICAgICByZXR1cm4ge1t0aGlzLmtleV06IG1vZGlmaWVkQ29uZmlnfTtcbiAgICAgICAgfVxuICAgICAgICBPYmplY3Qua2V5cyhmaWVsZHNUb1Nob3cpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgICBmaWVsZHNUb1Nob3dba2V5XSA9IGZpZWxkc1RvU2hvd1trZXldLm1hcChmaWVsZERhdGEgPT4ge1xuICAgICAgICAgICAgaWYgKCFmaWVsZERhdGEubmFtZSkge1xuICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIG5hbWU6IGZpZWxkRGF0YSxcbiAgICAgICAgICAgICAgICBmb3JtYXQ6IG51bGxcbiAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmaWVsZERhdGE7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuO1xuICAgIH0pO1xuICAgIHJldHVybiB7W3RoaXMua2V5XTogbW9kaWZpZWRDb25maWd9O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJQcm9wc1YwID0ge1xuICBkYXRhSWQ6IG51bGwsXG4gIGlkOiBudWxsLFxuICBuYW1lOiBudWxsLFxuICB0eXBlOiBudWxsLFxuICB2YWx1ZTogbnVsbCxcbiAgZW5sYXJnZWQ6IG51bGxcbn07XG5cbmV4cG9ydCBjbGFzcyBEaW1lbnNpb25GaWVsZFNjaGVtYSBleHRlbmRzIFNjaGVtYSB7XG4gIHNhdmUoZmllbGQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMua2V5XTogZmllbGQgPyB0aGlzLnNhdmVQcm9wZXJ0aWVzT3JBcHBseVNjaGVtYShmaWVsZClbdGhpcy5rZXldIDogbnVsbFxuICAgIH07XG4gIH1cblxuICBsb2FkKGZpZWxkKSB7XG4gICAgcmV0dXJuIHtbdGhpcy5rZXldOiBmaWVsZH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNwbGl0TWFwc1NjaGVtYSBleHRlbmRzIFNjaGVtYSB7XG4gIGNvbnZlcnRMYXllclNldHRpbmdzKGFjY3UsIFtrZXksIHZhbHVlXSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgW2tleV06IHZhbHVlXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZS5pc0F2YWlsYWJsZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgW2tleV06IEJvb2xlYW4odmFsdWUuaXNWaXNpYmxlKVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIGFjY3U7XG4gIH1cblxuICBsb2FkKHNwbGl0TWFwcykge1xuICAgIC8vIHByZXZpb3VzIHNwbGl0TWFwcyBTY2hlbWEge2xheWVyczoge2xheWVySWQ6IHtpc1Zpc2libGUsIGlzQXZhaWxhYmxlfX19XG5cbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoc3BsaXRNYXBzKSB8fCAhc3BsaXRNYXBzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIHtzcGxpdE1hcHM6IFtdfTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgc3BsaXRNYXBzOiBzcGxpdE1hcHMubWFwKHNldHRpbmdzID0+ICh7XG4gICAgICAgIC4uLnNldHRpbmdzLFxuICAgICAgICBsYXllcnM6IE9iamVjdC5lbnRyaWVzKHNldHRpbmdzLmxheWVycyB8fCB7fSkucmVkdWNlKHRoaXMuY29udmVydExheWVyU2V0dGluZ3MsIHt9KVxuICAgICAgfSkpXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZmlsdGVyUHJvcHNWMSA9IHtcbiAgLi4uZmlsdGVyUHJvcHNWMCxcbiAgcGxvdFR5cGU6IG51bGwsXG4gIGFuaW1hdGlvbldpbmRvdzogbnVsbCxcbiAgeUF4aXM6IG5ldyBEaW1lbnNpb25GaWVsZFNjaGVtYSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAga2V5OiAneUF4aXMnLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIG5hbWU6IG51bGwsXG4gICAgICB0eXBlOiBudWxsXG4gICAgfVxuICB9KSxcblxuICAvLyBwb2x5Z29uIGZpbHRlciBwcm9wZXJ0aWVzXG4gIGxheWVySWQ6IG51bGwsXG4gIHNwZWVkOiBudWxsXG59O1xuXG5leHBvcnQgY29uc3QgcHJvcGVydGllc1YwID0ge1xuICBmaWx0ZXJzOiBuZXcgRmlsdGVyU2NoZW1hVjAoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYwLFxuICAgIHByb3BlcnRpZXM6IGZpbHRlclByb3BzVjBcbiAgfSksXG4gIGxheWVyczogbmV3IExheWVyU2NoZW1hVjAoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYwLFxuICAgIHByb3BlcnRpZXM6IGxheWVyUHJvcHNWMFxuICB9KSxcbiAgaW50ZXJhY3Rpb25Db25maWc6IG5ldyBJbnRlcmFjdGlvblNjaGVtYVYwKHtcbiAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MCxcbiAgICBwcm9wZXJ0aWVzOiBpbnRlcmFjdGlvblByb3BzVjBcbiAgfSksXG4gIGxheWVyQmxlbmRpbmc6IG51bGxcbn07XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0aWVzVjEgPSB7XG4gIGZpbHRlcnM6IG5ldyBGaWx0ZXJTY2hlbWFWMCh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAgcHJvcGVydGllczogZmlsdGVyUHJvcHNWMVxuICB9KSxcbiAgbGF5ZXJzOiBuZXcgTGF5ZXJTY2hlbWFWMCh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAgcHJvcGVydGllczogbGF5ZXJQcm9wc1YxXG4gIH0pLFxuICBpbnRlcmFjdGlvbkNvbmZpZzogbmV3IEludGVyYWN0aW9uU2NoZW1hVjEoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgIHByb3BlcnRpZXM6IGludGVyYWN0aW9uUHJvcHNWMVxuICB9KSxcbiAgbGF5ZXJCbGVuZGluZzogbnVsbCxcbiAgc3BsaXRNYXBzOiBuZXcgU3BsaXRNYXBzU2NoZW1hKHtcbiAgICBrZXk6ICdzcGxpdE1hcHMnLFxuICAgIHZlcnNpb246IFZFUlNJT05TLnYxXG4gIH0pLFxuICBhbmltYXRpb25Db25maWc6IG5ldyBTY2hlbWEoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIGN1cnJlbnRUaW1lOiBudWxsLFxuICAgICAgc3BlZWQ6IG51bGxcbiAgICB9LFxuICAgIGtleTogJ2FuaW1hdGlvbkNvbmZpZydcbiAgfSlcbn07XG5cbmV4cG9ydCBjb25zdCB2aXNTdGF0ZVNjaGVtYVYwID0gbmV3IFNjaGVtYSh7XG4gIHZlcnNpb246IFZFUlNJT05TLnYwLFxuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzVjAsXG4gIGtleTogJ3Zpc1N0YXRlJ1xufSk7XG5cbmV4cG9ydCBjb25zdCB2aXNTdGF0ZVNjaGVtYVYxID0gbmV3IFNjaGVtYSh7XG4gIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICBwcm9wZXJ0aWVzOiBwcm9wZXJ0aWVzVjEsXG4gIGtleTogJ3Zpc1N0YXRlJ1xufSk7XG5cbmV4cG9ydCBjb25zdCB2aXNTdGF0ZVNjaGVtYSA9IHtcbiAgW1ZFUlNJT05TLnYwXToge1xuICAgIHNhdmU6IHRvU2F2ZSA9PiB2aXNTdGF0ZVNjaGVtYVYwLnNhdmUodG9TYXZlKSxcbiAgICBsb2FkOiB0b0xvYWQgPT4gdmlzU3RhdGVTY2hlbWFWMS5sb2FkKHZpc1N0YXRlU2NoZW1hVjAubG9hZCh0b0xvYWQpLnZpc1N0YXRlKVxuICB9LFxuICBbVkVSU0lPTlMudjFdOiB2aXNTdGF0ZVNjaGVtYVYxXG59O1xuXG4vLyB0ZXN0IGxvYWQgdjBcbmV4cG9ydCBkZWZhdWx0IHZpc1N0YXRlU2NoZW1hO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBLElBQUFBLEtBQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFNBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLFlBQUEsR0FBQUYsT0FBQTtBQUNBLElBQUFHLGFB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
|
|
886
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9kYXNoIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfdmVyc2lvbnMiLCJfZmlsdGVyVXRpbHMiLCJfbGF5ZXJGYWN0b3J5IiwiX3NjaGVtYSIsIl9sb2Rhc2gyIiwiX2RhdGFVdGlscyIsIm93bktleXMiLCJlIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX2NhbGxTdXBlciIsIl9nZXRQcm90b3R5cGVPZjIiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybjIiLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJjYWxsIiwiZGltZW5zaW9uUHJvcHNWMCIsImV4cG9ydHMiLCJnZW9qc29uU2l6ZUZpZWxkVjBUb1YxIiwiY29uZmlnIiwiZGVmYXVsdFJhaXVkcyIsImRlZmF1bHRSYWRpdXNSYW5nZSIsInZpc0NvbmZpZyIsImV4dHJ1ZGVkIiwic3Ryb2tlZCIsInJhZGl1cyIsInJhZGl1c1JhbmdlIiwic29tZSIsImQiLCJpIiwiRGltZW5zaW9uRmllbGRTY2hlbWFWMCIsIl9TY2hlbWEiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsIlZFUlNJT05TIiwidjAiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsInZhbHVlIiwic2F2ZSIsImZpZWxkIiwic2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hIiwibG9hZCIsInBhcmVudHMiLCJhY2N1bXVsYXRlZCIsIl9wYXJlbnRzJHNsaWNlIiwic2xpY2UiLCJfcGFyZW50cyRzbGljZTIiLCJfc2xpY2VkVG9BcnJheTIiLCJmaWVsZE5hbWUiLCJ0eXBlIiwidmlzdWFsQ2hhbm5lbHMiLCJTY2hlbWEiLCJEaW1lbnNpb25TY2FsZVNjaGVtYVYwIiwiX1NjaGVtYTIiLCJfdGhpczIiLCJfbGVuMiIsIl9rZXkyIiwic2NhbGUiLCJfcGFyZW50cyRzbGljZTMiLCJfcGFyZW50cyRzbGljZTQiLCJMYXllckNvbmZpZ1NjaGVtYVYwIiwiX1NjaGVtYTMiLCJfdGhpczMiLCJfbGVuMyIsIl9rZXkzIiwic2F2ZWQiLCJMYXllckNvbHVtbnNTY2hlbWFWMCIsIl9TY2hlbWE0IiwiX3RoaXM0IiwiX2xlbjQiLCJfa2V5NCIsImNvbHVtbnMiLCJyZWR1Y2UiLCJhY2N1IiwiTGF5ZXJDb25maWdUb1Zpc0NvbmZpZ1NjaGVtYVYwIiwiX1NjaGVtYTUiLCJfdGhpczUiLCJfbGVuNSIsIl9rZXk1IiwiYWNjdW11bGF0ZWRDb25maWciLCJMYXllclZpc0NvbmZpZ1NjaGVtYVYwIiwiX1NjaGVtYTYiLCJfdGhpczYiLCJfbGVuNiIsIl9rZXk2IiwiYWNjdW11bGF0b3IiLCJfcGFyZW50cyRzbGljZTUiLCJfcGFyZW50cyRzbGljZTYiLCJyZW5hbWUiLCJnZW9qc29uIiwiZWxldmF0aW9uUmFuZ2UiLCJwcm9wVG9SZW5hbWUiLCJMYXllckNvbmZpZ1NjaGVtYURlbGV0ZVYwIiwiX1NjaGVtYTciLCJfdGhpczciLCJfbGVuNyIsIl9rZXk3IiwibGF5ZXJQcm9wc1YwIiwiaWQiLCJkYXRhSWQiLCJsYWJlbCIsImNvbG9yIiwiaXNWaXNpYmxlIiwiaGlkZGVuIiwidmlzaWJpbGl0eUJ5Wm9vbSIsImNvbG9yRmllbGQiLCJwcm9wZXJ0aWVzIiwiY29sb3JTY2FsZSIsInNpemVGaWVsZCIsInNpemVTY2FsZSIsImVuYWJsZTNkIiwiY29sb3JBZ2dyZWdhdGlvbiIsInNpemVBZ2dyZWdhdGlvbiIsImlzQWdncmVnYXRlZCIsIkNvbHVtblNjaGVtYVYxIiwiX1NjaGVtYTgiLCJzdGF0ZSIsImNrZXkiLCJUZXh0TGFiZWxTY2hlbWFWMSIsIl9TY2hlbWE5IiwidGV4dExhYmVsIiwibWFwIiwidGwiLCJwaWNrIiwiaXNBcnJheSIsInZpc3VhbENoYW5uZWxNb2RpZmljYXRpb25WMSIsInZjIiwiX3BhcmVudHMkc2xpY2U3IiwiX3BhcmVudHMkc2xpY2U4IiwibGF5ZXIiLCJpc09sZCIsImhhc093blByb3BlcnR5IiwiaXNQb2ludCIsInJhZGl1c0ZpZWxkIiwiTEFZRVJfVklTX0NPTkZJR1MiLCJkZWZhdWx0VmFsdWUiLCJzdHJva2VDb2xvckZpZWxkIiwic3Ryb2tlQ29sb3JTY2FsZSIsIlZpc3VhbENoYW5uZWxTY2hlbWFWMSIsIl9TY2hlbWExMCIsIl9wYXJlbnRzJHNsaWNlOSIsIl9wYXJlbnRzJHNsaWNlMTAiLCJfcGFyZW50cyRzbGljZTExIiwiX3BhcmVudHMkc2xpY2UxMiIsIm1vZGlmaWVkIiwiTGVnZW5kU2V0dGluZ3NWMSIsIl9TY2hlbWExMSIsImxlZ2VuZFNldHRpbmdzIiwibHMiLCJ2aXNDb25maWdNb2RpZmljYXRpb25WMSIsInBvaW50IiwiX3BhcmVudHMkc2xpY2UxMyIsIl9wYXJlbnRzJHNsaWNlMTQiLCJzdHJva2VDb2xvciIsInN0cm9rZUNvbG9yUmFuZ2UiLCJjbG9uZURlZXAiLCJjb2xvclJhbmdlIiwib3V0bGluZSIsImZpbGxlZCIsIl9wYXJlbnRzJHNsaWNlMTUiLCJfcGFyZW50cyRzbGljZTE2IiwiVmlzQ29uZmlnU2NoZW1hVjEiLCJfU2NoZW1hMTIiLCJfdGhpczgiLCJfbGVuOCIsIl9rZXk4IiwiX3BhcmVudHMkc2xpY2UxNyIsIl9wYXJlbnRzJHNsaWNlMTgiLCJsYXllclByb3BzVjEiLCJ2ZXJzaW9uIiwidjEiLCJoaWdobGlnaHRDb2xvciIsIkxheWVyU2NoZW1hVjAiLCJfU2NoZW1hMTMiLCJfdGhpczkiLCJfbGVuOSIsIl9rZXk5IiwibGF5ZXJzIiwiX3RoaXMxMCIsIl9wYXJlbnRzJHNsaWNlMTkiLCJfcGFyZW50cyRzbGljZTIwIiwidmlzU3RhdGUiLCJsYXllck9yZGVyIiwiaW5kZXgiLCJpc1ZhbGlkVG9TYXZlIiwiX3RoaXMxMSIsImxvYWRQcm9wZXJ0aWVzT3JBcHBseVNjaGVtYSIsIkZpbHRlclNjaGVtYVYwIiwiX1NjaGVtYTE0IiwiX3RoaXMxMiIsIl9sZW4xMCIsIl9rZXkxMCIsImZpbHRlcnMiLCJfdGhpczEzIiwiaXNWYWxpZEZpbHRlclZhbHVlIiwiaW50ZXJhY3Rpb25Qcm9wc1YwIiwiSW50ZXJhY3Rpb25TY2hlbWFWMCIsIl9TY2hlbWExNSIsIl90aGlzMTQiLCJfbGVuMTEiLCJfa2V5MTEiLCJpbnRlcmFjdGlvbkNvbmZpZyIsImVuYWJsZWQiLCJpbnRlcmFjdGlvblByb3BzVjEiLCJJbnRlcmFjdGlvblNjaGVtYVYxIiwiX1NjaGVtYTE2IiwiX3RoaXMxNSIsIl9sZW4xMiIsIl9rZXkxMiIsIl90aGlzMTYiLCJtb2RpZmllZENvbmZpZyIsImNvbmZpZ1R5cGUiLCJmaWVsZHNUb1Nob3ciLCJub3ROdWxsb3JVbmRlZmluZWQiLCJmaWVsZERhdGEiLCJuYW1lIiwiZm9ybWF0IiwidW5kZWZpbmVkIiwiZmlsdGVyUHJvcHNWMCIsImVubGFyZ2VkIiwiRGltZW5zaW9uRmllbGRTY2hlbWEiLCJfU2NoZW1hMTciLCJTcGxpdE1hcHNTY2hlbWEiLCJfU2NoZW1hMTgiLCJjb252ZXJ0TGF5ZXJTZXR0aW5ncyIsIl9yZWYxOSIsIl9yZWYyMCIsIl90eXBlb2YyIiwiaXNBdmFpbGFibGUiLCJzcGxpdE1hcHMiLCJfdGhpczE3Iiwic2V0dGluZ3MiLCJlbnRyaWVzIiwiZmlsdGVyUHJvcHNWMSIsInBsb3RUeXBlIiwiYW5pbWF0aW9uV2luZG93IiwieUF4aXMiLCJsYXllcklkIiwic3BlZWQiLCJwcm9wZXJ0aWVzVjAiLCJsYXllckJsZW5kaW5nIiwicHJvcGVydGllc1YxIiwiYW5pbWF0aW9uQ29uZmlnIiwiY3VycmVudFRpbWUiLCJ2aXNTdGF0ZVNjaGVtYVYwIiwidmlzU3RhdGVTY2hlbWFWMSIsInZpc1N0YXRlU2NoZW1hIiwidG9TYXZlIiwidG9Mb2FkIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NoZW1hcy92aXMtc3RhdGUtc2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBwaWNrIGZyb20gJ2xvZGFzaC5waWNrJztcbmltcG9ydCB7VkVSU0lPTlN9IGZyb20gJy4vdmVyc2lvbnMnO1xuaW1wb3J0IHtpc1ZhbGlkRmlsdGVyVmFsdWV9IGZyb20gJ3V0aWxzL2ZpbHRlci11dGlscyc7XG5pbXBvcnQge0xBWUVSX1ZJU19DT05GSUdTfSBmcm9tICdsYXllcnMvbGF5ZXItZmFjdG9yeSc7XG5pbXBvcnQgU2NoZW1hIGZyb20gJy4vc2NoZW1hJztcbmltcG9ydCBjbG9uZURlZXAgZnJvbSAnbG9kYXNoLmNsb25lZGVlcCc7XG5pbXBvcnQge25vdE51bGxvclVuZGVmaW5lZH0gZnJvbSAndXRpbHMvZGF0YS11dGlscyc7XG5cbi8qKlxuICogVjAgU2NoZW1hXG4gKi9cblxuZXhwb3J0IGNvbnN0IGRpbWVuc2lvblByb3BzVjAgPSBbJ25hbWUnLCAndHlwZSddO1xuXG5leHBvcnQgdHlwZSBtb2RpZmllZFR5cGUgPSB7XG4gIHN0cm9rZUNvbG9yPzogYW55O1xuICBzdHJva2VDb2xvclJhbmdlPzogYW55O1xuICBmaWxsZWQ/OiBib29sZWFuO1xuICBzdHJva2VkPzogYm9vbGVhbjtcbn07XG5cbi8vIGluIHYwIGdlb2pzb24gdGhlcmUgaXMgb25seSBzaXplRmllbGRcblxuLy8gaW4gdjEgZ2VvanNvblxuLy8gc3Ryb2tlIGJhc2Ugb24gLT4gc2l6ZUZpZWxkXG4vLyBoZWlnaHQgYmFzZWQgb24gLT4gaGVpZ2h0RmllbGRcbi8vIHJhZGl1cyBiYXNlZCBvbiAtPiByYWRpdXNGaWVsZFxuLy8gaGVyZSB3ZSBtYWtlIG91ciB3aXJlZHN0IGd1ZXNzIG9uIHdoaWNoIGNoYW5uZWwgc2l6ZUZpZWxkIGJlbG9uZ3MgdG9cbmZ1bmN0aW9uIGdlb2pzb25TaXplRmllbGRWMFRvVjEoY29uZmlnKSB7XG4gIGNvbnN0IGRlZmF1bHRSYWl1ZHMgPSAxMDtcbiAgY29uc3QgZGVmYXVsdFJhZGl1c1JhbmdlID0gWzAsIDUwXTtcblxuICAvLyBpZiBleHRydWRlZCwgc2l6ZUZpZWxkIGlzIG1vc3QgbGlrZWx5IHVzZWQgZm9yIGhlaWdodFxuICBpZiAoY29uZmlnLnZpc0NvbmZpZy5leHRydWRlZCkge1xuICAgIHJldHVybiAnaGVpZ2h0RmllbGQnO1xuICB9XG5cbiAgLy8gaWYgc2hvdyBzdHJva2UgZW5hYmxlZCwgc2l6ZUZpZWxkIGlzIG1vc3QgbGlrZWx5IHVzZWQgZm9yIHN0cm9rZVxuICBpZiAoY29uZmlnLnZpc0NvbmZpZy5zdHJva2VkKSB7XG4gICAgcmV0dXJuICdzaXplRmllbGQnO1xuICB9XG5cbiAgLy8gaWYgcmFkaXVzIGNoYW5nZWQsIG9yIHJhZGl1cyBSYW5nZSBDaGFuZ2VkLCBzaXplRmllbGQgaXMgbW9zdCBsaWtlbHkgdXNlZCBmb3IgcmFkaXVzXG4gIC8vIHRoaXMgaXMgdGhlIG1vc3QgdW5yZWxpYWJsZSBndWVzcywgdGhhdCdzIHdoeSB3ZSBwdXQgaXQgaW4gdGhlIGVuZFxuICBpZiAoXG4gICAgY29uZmlnLnZpc0NvbmZpZy5yYWRpdXMgIT09IGRlZmF1bHRSYWl1ZHMgfHxcbiAgICBjb25maWcudmlzQ29uZmlnLnJhZGl1c1JhbmdlLnNvbWUoKGQsIGkpID0+IGQgIT09IGRlZmF1bHRSYWRpdXNSYW5nZVtpXSlcbiAgKSB7XG4gICAgcmV0dXJuICdyYWRpdXNGaWVsZCc7XG4gIH1cblxuICByZXR1cm4gJ3NpemVGaWVsZCc7XG59XG5cbi8vIGNvbnZlcnQgdjAgdG8gdjEgbGF5ZXIgY29uZmlnXG5jbGFzcyBEaW1lbnNpb25GaWVsZFNjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBzYXZlKGZpZWxkKSB7XG4gICAgLy8gc2hvdWxkIG5vdCBiZSBjYWxsZWQgYW55bW9yZVxuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBmaWVsZCAhPT0gbnVsbCA/IHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGZpZWxkKVt0aGlzLmtleV0gOiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIGxvYWQoZmllbGQsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSB7XG4gICAgY29uc3QgW2NvbmZpZ10gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBsZXQgZmllbGROYW1lID0gdGhpcy5rZXk7XG4gICAgaWYgKGNvbmZpZy50eXBlID09PSAnZ2VvanNvbicgJiYgdGhpcy5rZXkgPT09ICdzaXplRmllbGQnICYmIGZpZWxkKSB7XG4gICAgICBmaWVsZE5hbWUgPSBnZW9qc29uU2l6ZUZpZWxkVjBUb1YxKGNvbmZpZyk7XG4gICAgfVxuICAgIC8vIGZvbGQgaW50byB2aXN1YWxDaGFubmVscyB0byBiZSBsb2FkIGJ5IFZpc3VhbENoYW5uZWxTY2hlbWFWMVxuICAgIHJldHVybiB7XG4gICAgICB2aXN1YWxDaGFubmVsczoge1xuICAgICAgICAuLi4oYWNjdW11bGF0ZWQudmlzdWFsQ2hhbm5lbHMgfHwge30pLFxuICAgICAgICBbZmllbGROYW1lXTogZmllbGRcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbmNsYXNzIERpbWVuc2lvblNjYWxlU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICB2ZXJzaW9uID0gVkVSU0lPTlMudjA7XG4gIHNhdmUoc2NhbGUpIHtcbiAgICByZXR1cm4ge1t0aGlzLmtleV06IHNjYWxlfTtcbiAgfVxuICBsb2FkKHNjYWxlLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIGNvbnN0IFtjb25maWddID0gcGFyZW50cy5zbGljZSgtMSk7XG4gICAgLy8gZm9sZCBpbnRvIHZpc3VhbENoYW5uZWxzIHRvIGJlIGxvYWQgYnkgVmlzdWFsQ2hhbm5lbFNjaGVtYVYxXG4gICAgaWYgKHRoaXMua2V5ID09PSAnc2l6ZVNjYWxlJyAmJiBjb25maWcudHlwZSA9PT0gJ2dlb2pzb24nKSB7XG4gICAgICAvLyBzaXplU2NhbGUgbm93IHNwbGl0IGludG8gcmFkaXVzU2NhbGUsIGhlaWdodFNjYWxlXG4gICAgICAvLyBubyB1c2VyIGN1c3RvbWl6YXRpb24sIGp1c3QgdXNlIGRlZmF1bHRcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgdmlzdWFsQ2hhbm5lbHM6IHtcbiAgICAgICAgLi4uKGFjY3VtdWxhdGVkLnZpc3VhbENoYW5uZWxzIHx8IHt9KSxcbiAgICAgICAgW3RoaXMua2V5XTogc2NhbGVcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG5cbi8vIHVzZWQgdG8gY29udmVydCB2MCB0byB2MSBsYXllciBjb25maWdcbmNsYXNzIExheWVyQ29uZmlnU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICB2ZXJzaW9uID0gVkVSU0lPTlMudjA7XG4gIGxvYWQoc2F2ZWQsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSB7XG4gICAgLy8gZm9sZCB2MCBsYXllciBwcm9wZXJ0eSBpbnRvIGNvbmZpZy5rZXlcbiAgICByZXR1cm4ge1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRlZC5jb25maWcgfHwge30pLFxuICAgICAgICBbdGhpcy5rZXldOiBzYXZlZFxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuLy8gdXNlZCB0byBjb252ZXJ0IHYwIHRvIHYxIGxheWVyIGNvbHVtbnNcbi8vIG9ubHkgcmV0dXJuIGNvbHVtbiB2YWx1ZSBmb3IgZWFjaCBjb2x1bW5cbmNsYXNzIExheWVyQ29sdW1uc1NjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBsb2FkKHNhdmVkLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIC8vIGZvbGQgdjAgbGF5ZXIgcHJvcGVydHkgaW50byBjb25maWcua2V5LCBmbGF0dGVuIGNvbHVtbnNcbiAgICByZXR1cm4ge1xuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRlZC5jb25maWcgfHwge30pLFxuICAgICAgICBjb2x1bW5zOiBPYmplY3Qua2V5cyhzYXZlZCkucmVkdWNlKFxuICAgICAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgICAgW2tleV06IHNhdmVkW2tleV0udmFsdWVcbiAgICAgICAgICB9KSxcbiAgICAgICAgICB7fVxuICAgICAgICApXG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG4vLyB1c2VkIHRvIGNvbnZlcnQgdjAgdG8gdjEgbGF5ZXIgY29uZmlnLnZpc0NvbmZpZ1xuY2xhc3MgTGF5ZXJDb25maWdUb1Zpc0NvbmZpZ1NjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAgdmVyc2lvbiA9IFZFUlNJT05TLnYwO1xuICBsb2FkKHNhdmVkLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIC8vIGZvbGQgdjAgbGF5ZXIgcHJvcGVydHkgaW50byBjb25maWcudmlzQ29uZmlnXG4gICAgY29uc3QgYWNjdW11bGF0ZWRDb25maWcgPSBhY2N1bXVsYXRlZC5jb25maWcgfHwge307XG4gICAgcmV0dXJuIHtcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICAuLi5hY2N1bXVsYXRlZENvbmZpZyxcbiAgICAgICAgdmlzQ29uZmlnOiB7XG4gICAgICAgICAgLi4uKGFjY3VtdWxhdGVkQ29uZmlnLnZpc0NvbmZpZyB8fCB7fSksXG4gICAgICAgICAgW3RoaXMua2V5XTogc2F2ZWRcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgTGF5ZXJWaXNDb25maWdTY2hlbWFWMCBleHRlbmRzIFNjaGVtYSB7XG4gIHZlcnNpb24gPSBWRVJTSU9OUy52MDtcbiAga2V5ID0gJ3Zpc0NvbmZpZyc7XG5cbiAgbG9hZCh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdG9yKSB7XG4gICAgY29uc3QgW2NvbmZpZ10gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBjb25zdCByZW5hbWUgPSB7XG4gICAgICBnZW9qc29uOiB7XG4gICAgICAgIGV4dHJ1ZGVkOiAnZW5hYmxlM2QnLFxuICAgICAgICBlbGV2YXRpb25SYW5nZTogJ2hlaWdodFJhbmdlJ1xuICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoY29uZmlnLnR5cGUgaW4gcmVuYW1lKSB7XG4gICAgICBjb25zdCBwcm9wVG9SZW5hbWUgPSByZW5hbWVbY29uZmlnLnR5cGVdO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgLi4uKGFjY3VtdWxhdG9yLmNvbmZpZyB8fCB7fSksXG4gICAgICAgICAgdmlzQ29uZmlnOiBPYmplY3Qua2V5cyh2aXNDb25maWcpLnJlZHVjZShcbiAgICAgICAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgICAgIC4uLihwcm9wVG9SZW5hbWVba2V5XVxuICAgICAgICAgICAgICAgID8ge1twcm9wVG9SZW5hbWVba2V5XV06IHZpc0NvbmZpZ1trZXldfVxuICAgICAgICAgICAgICAgIDoge1trZXldOiB2aXNDb25maWdba2V5XX0pXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBjb25maWc6IHtcbiAgICAgICAgLi4uKGFjY3VtdWxhdG9yLmNvbmZpZyB8fCB7fSksXG4gICAgICAgIHZpc0NvbmZpZ1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuY2xhc3MgTGF5ZXJDb25maWdTY2hlbWFEZWxldGVWMCBleHRlbmRzIFNjaGVtYSB7XG4gIHZlcnNpb24gPSBWRVJTSU9OUy52MDtcbiAgbG9hZCh2YWx1ZSkge1xuICAgIHJldHVybiB7fTtcbiAgfVxufVxuXG4vKipcbiAqIFYwIC0+IFYxIENoYW5nZXNcbiAqIC0gbGF5ZXIgaXMgbm93IGEgY2xhc3NcbiAqIC0gY29uZmlnIHNhdmVkIGluIGEgY29uZmlnIG9iamVjdFxuICogLSBpZCwgdHlwZSwgaXNBZ2dyZWdhdGVkIGlzIG91dHNpZGUgbGF5ZXIuY29uZmlnXG4gKiAtIHZpc3VhbENoYW5uZWxzIGlzIG91dHNpZGUgY29uZmlnLCBpdCBkZWZpbmVzIGF2YWlsYWJsZSB2aXN1YWwgY2hhbm5lbCBhbmRcbiAqICAgcHJvcGVydHkgbmFtZXMgZm9yIGZpZWxkLCBzY2FsZSwgZG9tYWluIGFuZCByYW5nZSBvZiBlYWNoIHZpc3VhbCBjaGFuZWwuXG4gKiAtIGVuYWJsZTNkLCBjb2xvckFnZ3JlZ2F0aW9uIGFuZCBzaXplQWdncmVnYXRpb24gYXJlIG1vdmVkIGludG8gdmlzQ29uZmlnXG4gKiAtIEdlb2pzb25MYXllciAtIGFkZGVkIGhlaWdodCwgcmFkaXVzIHNwZWNpZmljIHByb3BlcnRpZXNcbiAqL1xuXG5leHBvcnQgY29uc3QgbGF5ZXJQcm9wc1YwID0ge1xuICBpZDogbnVsbCxcbiAgdHlwZTogbnVsbCxcblxuICAvLyBtb3ZlIGludG8gbGF5ZXIuY29uZmlnXG4gIGRhdGFJZDogbmV3IExheWVyQ29uZmlnU2NoZW1hVjAoe2tleTogJ2RhdGFJZCd9KSxcbiAgbGFiZWw6IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdsYWJlbCd9KSxcbiAgY29sb3I6IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdjb2xvcid9KSxcbiAgaXNWaXNpYmxlOiBuZXcgTGF5ZXJDb25maWdTY2hlbWFWMCh7a2V5OiAnaXNWaXNpYmxlJ30pLFxuICBoaWRkZW46IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICdoaWRkZW4nfSksXG4gIHZpc2liaWxpdHlCeVpvb206IG5ldyBMYXllckNvbmZpZ1NjaGVtYVYwKHtrZXk6ICd2aXNpYmlsaXR5Qnlab29tJ30pLFxuXG4gIC8vIGNvbnZlcnQgdmlzQ29uZmlnXG4gIHZpc0NvbmZpZzogbmV3IExheWVyVmlzQ29uZmlnU2NoZW1hVjAoe2tleTogJ3Zpc0NvbmZpZyd9KSxcblxuICAvLyBtb3ZlIGludG8gbGF5ZXIuY29uZmlnXG4gIC8vIGZsYXR0ZW5cbiAgY29sdW1uczogbmV3IExheWVyQ29sdW1uc1NjaGVtYVYwKCksXG5cbiAgLy8gc2F2ZSBpbnRvIHZpc3VhbENoYW5uZWxzXG4gIGNvbG9yRmllbGQ6IG5ldyBEaW1lbnNpb25GaWVsZFNjaGVtYVYwKHtcbiAgICBwcm9wZXJ0aWVzOiBkaW1lbnNpb25Qcm9wc1YwLFxuICAgIGtleTogJ2NvbG9yRmllbGQnXG4gIH0pLFxuICBjb2xvclNjYWxlOiBuZXcgRGltZW5zaW9uU2NhbGVTY2hlbWFWMCh7XG4gICAga2V5OiAnY29sb3JTY2FsZSdcbiAgfSksXG4gIHNpemVGaWVsZDogbmV3IERpbWVuc2lvbkZpZWxkU2NoZW1hVjAoe1xuICAgIHByb3BlcnRpZXM6IGRpbWVuc2lvblByb3BzVjAsXG4gICAga2V5OiAnc2l6ZUZpZWxkJ1xuICB9KSxcbiAgc2l6ZVNjYWxlOiBuZXcgRGltZW5zaW9uU2NhbGVTY2hlbWFWMCh7XG4gICAga2V5OiAnc2l6ZVNjYWxlJ1xuICB9KSxcblxuICAvLyBtb3ZlIGludG8gY29uZmlnLnZpc0NvbmZpZ1xuICBlbmFibGUzZDogbmV3IExheWVyQ29uZmlnVG9WaXNDb25maWdTY2hlbWFWMCh7a2V5OiAnZW5hYmxlM2QnfSksXG4gIGNvbG9yQWdncmVnYXRpb246IG5ldyBMYXllckNvbmZpZ1RvVmlzQ29uZmlnU2NoZW1hVjAoe1xuICAgIGtleTogJ2NvbG9yQWdncmVnYXRpb24nXG4gIH0pLFxuICBzaXplQWdncmVnYXRpb246IG5ldyBMYXllckNvbmZpZ1RvVmlzQ29uZmlnU2NoZW1hVjAoe2tleTogJ3NpemVBZ2dyZWdhdGlvbid9KSxcblxuICAvLyBkZWxldGVcbiAgaXNBZ2dyZWdhdGVkOiBuZXcgTGF5ZXJDb25maWdTY2hlbWFEZWxldGVWMCgpXG59O1xuXG4vKipcbiAqIFYxIFNjaGVtYVxuICovXG5jbGFzcyBDb2x1bW5TY2hlbWFWMSBleHRlbmRzIFNjaGVtYSB7XG4gIHNhdmUoY29sdW1ucywgc3RhdGUpIHtcbiAgICAvLyBzdGFydGluZyBmcm9tIHYxLCBvbmx5IHNhdmUgY29sdW1uIHZhbHVlXG4gICAgLy8gZmllbGRJZHggd2lsbCBiZSBjYWxjdWxhdGVkIGR1cmluZyBtZXJnZVxuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyhjb2x1bW5zKS5yZWR1Y2UoXG4gICAgICAgIChhY2N1LCBja2V5KSA9PiAoe1xuICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgW2NrZXldOiBjb2x1bW5zW2NrZXldLnZhbHVlXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIH07XG4gIH1cblxuICBsb2FkKGNvbHVtbnMpIHtcbiAgICByZXR1cm4ge2NvbHVtbnN9O1xuICB9XG59XG5cbmNsYXNzIFRleHRMYWJlbFNjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZSh0ZXh0TGFiZWwpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMua2V5XTogdGV4dExhYmVsLm1hcCh0bCA9PiAoe1xuICAgICAgICAuLi50bCxcbiAgICAgICAgZmllbGQ6IHRsLmZpZWxkID8gcGljayh0bC5maWVsZCwgWyduYW1lJywgJ3R5cGUnXSkgOiBudWxsXG4gICAgICB9KSlcbiAgICB9O1xuICB9XG5cbiAgbG9hZCh0ZXh0TGFiZWwpIHtcbiAgICByZXR1cm4ge3RleHRMYWJlbDogQXJyYXkuaXNBcnJheSh0ZXh0TGFiZWwpID8gdGV4dExhYmVsIDogW3RleHRMYWJlbF19O1xuICB9XG59XG5cbmNvbnN0IHZpc3VhbENoYW5uZWxNb2RpZmljYXRpb25WMSA9IHtcbiAgZ2VvanNvbjogKHZjLCBwYXJlbnRzLCBhY2N1bXVsYXRvcikgPT4ge1xuICAgIGNvbnN0IFtsYXllcl0gPSBwYXJlbnRzLnNsaWNlKC0xKTtcbiAgICBjb25zdCBpc09sZCA9ICF2Yy5oYXNPd25Qcm9wZXJ0eSgnc3Ryb2tlQ29sb3JGaWVsZCcpO1xuICAgIC8vIG1ha2Ugb3VyIGJlc3QgZ3Vlc3MgaWYgdGhpcyBnZW9qc29uIGxheWVyIGNvbnRhaW5zIHBvaW50XG4gICAgY29uc3QgaXNQb2ludCA9XG4gICAgICB2Yy5yYWRpdXNGaWVsZCB8fCBsYXllci5jb25maWcudmlzQ29uZmlnLnJhZGl1cyAhPT0gTEFZRVJfVklTX0NPTkZJR1MucmFkaXVzLmRlZmF1bHRWYWx1ZTtcblxuICAgIGlmIChpc09sZCAmJiAhaXNQb2ludCAmJiBsYXllci5jb25maWcudmlzQ29uZmlnLnN0cm9rZWQpIHtcbiAgICAgIC8vIGlmIHN0cm9rZWQgaXMgdHJ1ZSwgY29weSBjb2xvciBjb25maWcgdG8gc3Ryb2tlIGNvbG9yIGNvbmZpZ1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3Ryb2tlQ29sb3JGaWVsZDogdmMuY29sb3JGaWVsZCxcbiAgICAgICAgc3Ryb2tlQ29sb3JTY2FsZTogdmMuY29sb3JTY2FsZVxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9XG59O1xuLyoqXG4gKiBWMTogc2F2ZSBbZmllbGRdOiB7bmFtZSwgdHlwZX0sIFtzY2FsZV06ICcnIGZvciBlYWNoIGNoYW5uZWxcbiAqL1xuY2xhc3MgVmlzdWFsQ2hhbm5lbFNjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZSh2aXN1YWxDaGFubmVscywgcGFyZW50cykge1xuICAgIC8vIG9ubHkgc2F2ZSBmaWVsZCBhbmQgc2NhbGUgb2YgZWFjaCBjaGFubmVsXG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTEpO1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyh2aXN1YWxDaGFubmVscykucmVkdWNlKFxuICAgICAgICAvLyAgc2F2ZSBjaGFubmVsIHRvIG51bGwgaWYgZGlkbid0IHNlbGVjdCBhbnkgZmllbGRcbiAgICAgICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgICAgICAuLi5hY2N1LFxuICAgICAgICAgIFt2aXN1YWxDaGFubmVsc1trZXldLmZpZWxkXTogbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uZmllbGRdXG4gICAgICAgICAgICA/IHBpY2sobGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uZmllbGRdLCBbJ25hbWUnLCAndHlwZScsICdjb2xvckNvbHVtbiddKVxuICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgIFt2aXN1YWxDaGFubmVsc1trZXldLnNjYWxlXTogbGF5ZXIuY29uZmlnW3Zpc3VhbENoYW5uZWxzW2tleV0uc2NhbGVdXG4gICAgICAgIH0pLFxuICAgICAgICB7fVxuICAgICAgKVxuICAgIH07XG4gIH1cbiAgbG9hZCh2YywgcGFyZW50cywgYWNjdW11bGF0b3IpIHtcbiAgICAvLyBmb2xkIGNoYW5uZWxzIGludG8gY29uZmlnXG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTEpO1xuICAgIGNvbnN0IG1vZGlmaWVkID0gdmlzdWFsQ2hhbm5lbE1vZGlmaWNhdGlvblYxW2xheWVyLnR5cGVdXG4gICAgICA/IHZpc3VhbENoYW5uZWxNb2RpZmljYXRpb25WMVtsYXllci50eXBlXSh2YywgcGFyZW50cywgYWNjdW11bGF0b3IpXG4gICAgICA6IHt9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjY3VtdWxhdG9yLFxuICAgICAgY29uZmlnOiB7XG4gICAgICAgIC4uLihhY2N1bXVsYXRvci5jb25maWcgfHwge30pLFxuICAgICAgICAuLi52YyxcbiAgICAgICAgLi4ubW9kaWZpZWRcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4vKipcbiAqIFYxOiBzYXZlIFtjaGFubmVsXTogW3sgbGFiZWwsIGNvbG9yIH0sIC4uLl0gZm9yIGxlZ2VuZFxuICovXG5jbGFzcyBMZWdlbmRTZXR0aW5nc1YxIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZShsZWdlbmRTZXR0aW5ncywgcGFyZW50cykge1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBPYmplY3Qua2V5cyhsZWdlbmRTZXR0aW5ncykucmVkdWNlKChhY2N1LCBrZXkpID0+IHtcbiAgICAgICAgYWNjdVtrZXldID0gbGVnZW5kU2V0dGluZ3Nba2V5XTtcbiAgICAgICAgcmV0dXJuIGFjY3U7XG4gICAgICB9LCB7fSlcbiAgICB9O1xuICB9XG4gIGxvYWQobHMsIHBhcmVudHMsIGFjY3VtdWxhdG9yKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmFjY3VtdWxhdG9yLFxuICAgICAgW3RoaXMua2V5XTogbHNcbiAgICB9O1xuICB9XG59XG5jb25zdCB2aXNDb25maWdNb2RpZmljYXRpb25WMSA9IHtcbiAgcG9pbnQ6ICh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdGVkKSA9PiB7XG4gICAgY29uc3QgbW9kaWZpZWQ6IG1vZGlmaWVkVHlwZSA9IHt9O1xuICAgIGNvbnN0IFtsYXllcl0gPSBwYXJlbnRzLnNsaWNlKC0yLCAtMSk7XG4gICAgY29uc3QgaXNPbGQgPVxuICAgICAgIXZpc0NvbmZpZy5oYXNPd25Qcm9wZXJ0eSgnZmlsbGVkJykgJiYgIXZpc0NvbmZpZy5zdHJva2VDb2xvciAmJiAhdmlzQ29uZmlnLnN0cm9rZUNvbG9yUmFuZ2U7XG4gICAgaWYgKGlzT2xkKSB7XG4gICAgICAvLyBjb2xvciBjb2xvciAmIGNvbG9yIHJhbmdlIHRvIHN0cm9rZSBjb2xvclxuICAgICAgbW9kaWZpZWQuc3Ryb2tlQ29sb3IgPSBsYXllci5jb25maWcuY29sb3I7XG4gICAgICBtb2RpZmllZC5zdHJva2VDb2xvclJhbmdlID0gY2xvbmVEZWVwKHZpc0NvbmZpZy5jb2xvclJhbmdlKTtcbiAgICAgIGlmICh2aXNDb25maWcub3V0bGluZSkge1xuICAgICAgICAvLyBwb2ludCBsYXllciBub3cgc3VwcG9ydHMgYm90aCBvdXRsaW5lIGFuZCBmaWxsXG4gICAgICAgIC8vIGZvciBvbGRlciBzY2hlbWEgd2hlcmUgZmlsbGVkIGhhcyBub3QgYmVlbiBhZGRlZCB0byBwb2ludCBsYXllclxuICAgICAgICAvLyBzZXQgaXQgdG8gZmFsc2VcbiAgICAgICAgbW9kaWZpZWQuZmlsbGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZGlmaWVkO1xuICB9LFxuICBnZW9qc29uOiAodmlzQ29uZmlnLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkgPT4ge1xuICAgIC8vIGlzIHBvaW50cz9cbiAgICBjb25zdCBtb2RpZmllZDogbW9kaWZpZWRUeXBlID0ge307XG4gICAgY29uc3QgW2xheWVyXSA9IHBhcmVudHMuc2xpY2UoLTIsIC0xKTtcbiAgICBjb25zdCBpc09sZCA9XG4gICAgICBsYXllci52aXN1YWxDaGFubmVscyAmJlxuICAgICAgIWxheWVyLnZpc3VhbENoYW5uZWxzLmhhc093blByb3BlcnR5KCdzdHJva2VDb2xvckZpZWxkJykgJiZcbiAgICAgICF2aXNDb25maWcuc3Ryb2tlQ29sb3IgJiZcbiAgICAgICF2aXNDb25maWcuc3Ryb2tlQ29sb3JSYW5nZTtcbiAgICAvLyBtYWtlIG91ciBiZXN0IGd1ZXNzIGlmIHRoaXMgZ2VvanNvbiBsYXllciBjb250YWlucyBwb2ludFxuICAgIGNvbnN0IGlzUG9pbnQgPVxuICAgICAgKGxheWVyLnZpc3VhbENoYW5uZWxzICYmIGxheWVyLnZpc3VhbENoYW5uZWxzLnJhZGl1c0ZpZWxkKSB8fFxuICAgICAgKHZpc0NvbmZpZyAmJiB2aXNDb25maWcucmFkaXVzICE9PSBMQVlFUl9WSVNfQ09ORklHUy5yYWRpdXMuZGVmYXVsdFZhbHVlKTtcblxuICAgIGlmIChpc09sZCkge1xuICAgICAgLy8gY29sb3IgY29sb3IgJiBjb2xvciByYW5nZSB0byBzdHJva2UgY29sb3JcbiAgICAgIG1vZGlmaWVkLnN0cm9rZUNvbG9yID0gbGF5ZXIuY29uZmlnLmNvbG9yO1xuICAgICAgbW9kaWZpZWQuc3Ryb2tlQ29sb3JSYW5nZSA9IGNsb25lRGVlcCh2aXNDb25maWcuY29sb3JSYW5nZSk7XG4gICAgICBpZiAoaXNQb2ludCkge1xuICAgICAgICAvLyBpZiBpcyBwb2ludCwgc2V0IHN0cm9rZSB0byBmYWxzZVxuICAgICAgICBtb2RpZmllZC5maWxsZWQgPSB0cnVlO1xuICAgICAgICBtb2RpZmllZC5zdHJva2VkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZGlmaWVkO1xuICB9XG59O1xuXG5jbGFzcyBWaXNDb25maWdTY2hlbWFWMSBleHRlbmRzIFNjaGVtYSB7XG4gIGtleSA9ICd2aXNDb25maWcnO1xuXG4gIGxvYWQodmlzQ29uZmlnLCBwYXJlbnRzLCBhY2N1bXVsYXRlZCkge1xuICAgIGNvbnN0IFtsYXllcl0gPSBwYXJlbnRzLnNsaWNlKC0yLCAtMSk7XG4gICAgY29uc3QgbW9kaWZpZWQgPSB2aXNDb25maWdNb2RpZmljYXRpb25WMVtsYXllci50eXBlXVxuICAgICAgPyB2aXNDb25maWdNb2RpZmljYXRpb25WMVtsYXllci50eXBlXSh2aXNDb25maWcsIHBhcmVudHMsIGFjY3VtdWxhdGVkKVxuICAgICAgOiB7fTtcblxuICAgIHJldHVybiB7XG4gICAgICB2aXNDb25maWc6IHtcbiAgICAgICAgLi4udmlzQ29uZmlnLFxuICAgICAgICAuLi5tb2RpZmllZFxuICAgICAgfVxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGxheWVyUHJvcHNWMSA9IHtcbiAgaWQ6IG51bGwsXG4gIHR5cGU6IG51bGwsXG4gIGNvbmZpZzogbmV3IFNjaGVtYSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAga2V5OiAnY29uZmlnJyxcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICBkYXRhSWQ6IG51bGwsXG4gICAgICBsYWJlbDogbnVsbCxcbiAgICAgIGNvbG9yOiBudWxsLFxuICAgICAgaGlnaGxpZ2h0Q29sb3I6IG51bGwsXG4gICAgICBjb2x1bW5zOiBuZXcgQ29sdW1uU2NoZW1hVjEoe1xuICAgICAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MSxcbiAgICAgICAga2V5OiAnY29sdW1ucydcbiAgICAgIH0pLFxuICAgICAgaXNWaXNpYmxlOiBudWxsLFxuICAgICAgdmlzQ29uZmlnOiBuZXcgVmlzQ29uZmlnU2NoZW1hVjEoe1xuICAgICAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MVxuICAgICAgfSksXG4gICAgICBoaWRkZW46IG51bGwsXG4gICAgICB2aXNpYmlsaXR5Qnlab29tOiBudWxsLFxuICAgICAgdGV4dExhYmVsOiBuZXcgVGV4dExhYmVsU2NoZW1hVjEoe1xuICAgICAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MSxcbiAgICAgICAga2V5OiAndGV4dExhYmVsJ1xuICAgICAgfSlcbiAgICB9XG4gIH0pLFxuICBsZWdlbmRTZXR0aW5nczogbmV3IExlZ2VuZFNldHRpbmdzVjEoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgIGtleTogJ2xlZ2VuZFNldHRpbmdzJ1xuICB9KSxcbiAgdmlzdWFsQ2hhbm5lbHM6IG5ldyBWaXN1YWxDaGFubmVsU2NoZW1hVjEoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYxLFxuICAgIGtleTogJ3Zpc3VhbENoYW5uZWxzJ1xuICB9KVxufTtcblxuZXhwb3J0IGNsYXNzIExheWVyU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICBrZXkgPSAnbGF5ZXJzJztcblxuICBzYXZlKGxheWVycywgcGFyZW50cykge1xuICAgIGNvbnN0IFt2aXNTdGF0ZV0gPSBwYXJlbnRzLnNsaWNlKC0xKTtcblxuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiB2aXNTdGF0ZS5sYXllck9yZGVyLnJlZHVjZSgoc2F2ZWQsIGluZGV4KSA9PiB7XG4gICAgICAgIC8vIHNhdmUgbGF5ZXJzIGFjY29yZGluZyB0byB0aGVpciByZW5kZXJpbmcgb3JkZXJcbiAgICAgICAgY29uc3QgbGF5ZXIgPSBsYXllcnNbaW5kZXhdO1xuICAgICAgICBpZiAobGF5ZXIuaXNWYWxpZFRvU2F2ZSgpKSB7XG4gICAgICAgICAgc2F2ZWQucHVzaCh0aGlzLnNhdmVQcm9wZXJ0aWVzT3JBcHBseVNjaGVtYShsYXllcikubGF5ZXJzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2F2ZWQ7XG4gICAgICB9LCBbXSlcbiAgICB9O1xuICB9XG5cbiAgbG9hZChsYXllcnMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgW3RoaXMua2V5XTogbGF5ZXJzLm1hcChsYXllciA9PiB0aGlzLmxvYWRQcm9wZXJ0aWVzT3JBcHBseVNjaGVtYShsYXllciwgbGF5ZXJzKS5sYXllcnMpXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsdGVyU2NoZW1hVjAgZXh0ZW5kcyBTY2hlbWEge1xuICBrZXkgPSAnZmlsdGVycyc7XG4gIHNhdmUoZmlsdGVycykge1xuICAgIHJldHVybiB7XG4gICAgICBmaWx0ZXJzOiBmaWx0ZXJzXG4gICAgICAgIC5maWx0ZXIoaXNWYWxpZEZpbHRlclZhbHVlKVxuICAgICAgICAubWFwKGZpbHRlciA9PiB0aGlzLnNhdmVQcm9wZXJ0aWVzT3JBcHBseVNjaGVtYShmaWx0ZXIpLmZpbHRlcnMpXG4gICAgfTtcbiAgfVxuICBsb2FkKGZpbHRlcnMpIHtcbiAgICByZXR1cm4ge2ZpbHRlcnN9O1xuICB9XG59XG5cbmNvbnN0IGludGVyYWN0aW9uUHJvcHNWMCA9IFsndG9vbHRpcCcsICdicnVzaCddO1xuXG5jbGFzcyBJbnRlcmFjdGlvblNjaGVtYVYwIGV4dGVuZHMgU2NoZW1hIHtcbiAga2V5ID0gJ2ludGVyYWN0aW9uQ29uZmlnJztcblxuICBzYXZlKGludGVyYWN0aW9uQ29uZmlnKSB7XG4gICAgcmV0dXJuIEFycmF5LmlzQXJyYXkodGhpcy5wcm9wZXJ0aWVzKVxuICAgICAgPyB7XG4gICAgICAgICAgW3RoaXMua2V5XTogdGhpcy5wcm9wZXJ0aWVzLnJlZHVjZShcbiAgICAgICAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgICAgIC4uLihpbnRlcmFjdGlvbkNvbmZpZ1trZXldLmVuYWJsZWQgPyB7W2tleV06IGludGVyYWN0aW9uQ29uZmlnW2tleV0uY29uZmlnfSA6IHt9KVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7fVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgOiB7fTtcbiAgfVxuICBsb2FkKGludGVyYWN0aW9uQ29uZmlnKSB7XG4gICAgLy8gY29udmVydCB2MCAtPiB2MVxuICAgIC8vIHJldHVybiBlbmFibGVkOiBmYWxzZSBpZiBkaXNhYmxlZCxcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnByb3BlcnRpZXMpXG4gICAgICA/IHtcbiAgICAgICAgICBbdGhpcy5rZXldOiB0aGlzLnByb3BlcnRpZXMucmVkdWNlKFxuICAgICAgICAgICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgICAgICAgLi4ue1xuICAgICAgICAgICAgICAgIFtrZXldOiB7XG4gICAgICAgICAgICAgICAgICAuLi4oaW50ZXJhY3Rpb25Db25maWdba2V5XSB8fCB7fSksXG4gICAgICAgICAgICAgICAgICBlbmFibGVkOiBCb29sZWFuKGludGVyYWN0aW9uQ29uZmlnW2tleV0pXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICA6IHt9O1xuICB9XG59XG5cbmNvbnN0IGludGVyYWN0aW9uUHJvcHNWMSA9IFsuLi5pbnRlcmFjdGlvblByb3BzVjAsICdnZW9jb2RlcicsICdjb29yZGluYXRlJ107XG5cbmV4cG9ydCBjbGFzcyBJbnRlcmFjdGlvblNjaGVtYVYxIGV4dGVuZHMgU2NoZW1hIHtcbiAga2V5ID0gJ2ludGVyYWN0aW9uQ29uZmlnJztcblxuICBzYXZlKGludGVyYWN0aW9uQ29uZmlnKSB7XG4gICAgLy8gc2F2ZSBjb25maWcgZXZlbiBpZiBkaXNhYmxlZCxcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh0aGlzLnByb3BlcnRpZXMpXG4gICAgICA/IHtcbiAgICAgICAgICBbdGhpcy5rZXldOiB0aGlzLnByb3BlcnRpZXMucmVkdWNlKFxuICAgICAgICAgICAgKGFjY3UsIGtleSkgPT4gKHtcbiAgICAgICAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgICAgICAgW2tleV06IHtcbiAgICAgICAgICAgICAgICAuLi5pbnRlcmFjdGlvbkNvbmZpZ1trZXldLmNvbmZpZyxcbiAgICAgICAgICAgICAgICBlbmFibGVkOiBpbnRlcmFjdGlvbkNvbmZpZ1trZXldLmVuYWJsZWRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB7fVxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgOiB7fTtcbiAgfVxuICBsb2FkKGludGVyYWN0aW9uQ29uZmlnKSB7XG4gICAgY29uc3QgbW9kaWZpZWRDb25maWcgPSBpbnRlcmFjdGlvbkNvbmZpZztcbiAgICBPYmplY3Qua2V5cyhpbnRlcmFjdGlvbkNvbmZpZykuZm9yRWFjaChjb25maWdUeXBlID0+IHtcbiAgICAgIGlmIChjb25maWdUeXBlID09PSAndG9vbHRpcCcpIHtcbiAgICAgICAgY29uc3QgZmllbGRzVG9TaG93ID0gbW9kaWZpZWRDb25maWdbY29uZmlnVHlwZV0uZmllbGRzVG9TaG93O1xuICAgICAgICBpZiAoIW5vdE51bGxvclVuZGVmaW5lZChmaWVsZHNUb1Nob3cpKSB7XG4gICAgICAgICAgcmV0dXJuIHtbdGhpcy5rZXldOiBtb2RpZmllZENvbmZpZ307XG4gICAgICAgIH1cbiAgICAgICAgT2JqZWN0LmtleXMoZmllbGRzVG9TaG93KS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgICAgZmllbGRzVG9TaG93W2tleV0gPSBmaWVsZHNUb1Nob3dba2V5XS5tYXAoZmllbGREYXRhID0+IHtcbiAgICAgICAgICAgIGlmICghZmllbGREYXRhLm5hbWUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBmaWVsZERhdGEsXG4gICAgICAgICAgICAgICAgZm9ybWF0OiBudWxsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gZmllbGREYXRhO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG4gICAgcmV0dXJuIHtbdGhpcy5rZXldOiBtb2RpZmllZENvbmZpZ307XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGZpbHRlclByb3BzVjAgPSB7XG4gIGRhdGFJZDogbnVsbCxcbiAgaWQ6IG51bGwsXG4gIG5hbWU6IG51bGwsXG4gIHR5cGU6IG51bGwsXG4gIHZhbHVlOiBudWxsLFxuICBlbmxhcmdlZDogbnVsbFxufTtcblxuZXhwb3J0IGNsYXNzIERpbWVuc2lvbkZpZWxkU2NoZW1hIGV4dGVuZHMgU2NoZW1hIHtcbiAgc2F2ZShmaWVsZCkge1xuICAgIHJldHVybiB7XG4gICAgICBbdGhpcy5rZXldOiBmaWVsZCA/IHRoaXMuc2F2ZVByb3BlcnRpZXNPckFwcGx5U2NoZW1hKGZpZWxkKVt0aGlzLmtleV0gOiBudWxsXG4gICAgfTtcbiAgfVxuXG4gIGxvYWQoZmllbGQpIHtcbiAgICByZXR1cm4ge1t0aGlzLmtleV06IGZpZWxkfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU3BsaXRNYXBzU2NoZW1hIGV4dGVuZHMgU2NoZW1hIHtcbiAgY29udmVydExheWVyU2V0dGluZ3MoYWNjdSwgW2tleSwgdmFsdWVdKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5hY2N1LFxuICAgICAgICBba2V5XTogdmFsdWVcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmICh2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlLmlzQXZhaWxhYmxlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5hY2N1LFxuICAgICAgICBba2V5XTogQm9vbGVhbih2YWx1ZS5pc1Zpc2libGUpXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gYWNjdTtcbiAgfVxuXG4gIGxvYWQoc3BsaXRNYXBzKSB7XG4gICAgLy8gcHJldmlvdXMgc3BsaXRNYXBzIFNjaGVtYSB7bGF5ZXJzOiB7bGF5ZXJJZDoge2lzVmlzaWJsZSwgaXNBdmFpbGFibGV9fX1cblxuICAgIGlmICghQXJyYXkuaXNBcnJheShzcGxpdE1hcHMpIHx8ICFzcGxpdE1hcHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm4ge3NwbGl0TWFwczogW119O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBzcGxpdE1hcHM6IHNwbGl0TWFwcy5tYXAoc2V0dGluZ3MgPT4gKHtcbiAgICAgICAgLi4uc2V0dGluZ3MsXG4gICAgICAgIGxheWVyczogT2JqZWN0LmVudHJpZXMoc2V0dGluZ3MubGF5ZXJzIHx8IHt9KS5yZWR1Y2UodGhpcy5jb252ZXJ0TGF5ZXJTZXR0aW5ncywge30pXG4gICAgICB9KSlcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBmaWx0ZXJQcm9wc1YxID0ge1xuICAuLi5maWx0ZXJQcm9wc1YwLFxuICBwbG90VHlwZTogbnVsbCxcbiAgYW5pbWF0aW9uV2luZG93OiBudWxsLFxuICB5QXhpczogbmV3IERpbWVuc2lvbkZpZWxkU2NoZW1hKHtcbiAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MSxcbiAgICBrZXk6ICd5QXhpcycsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgbmFtZTogbnVsbCxcbiAgICAgIHR5cGU6IG51bGxcbiAgICB9XG4gIH0pLFxuXG4gIC8vIHBvbHlnb24gZmlsdGVyIHByb3BlcnRpZXNcbiAgbGF5ZXJJZDogbnVsbCxcbiAgc3BlZWQ6IG51bGxcbn07XG5cbmV4cG9ydCBjb25zdCBwcm9wZXJ0aWVzVjAgPSB7XG4gIGZpbHRlcnM6IG5ldyBGaWx0ZXJTY2hlbWFWMCh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjAsXG4gICAgcHJvcGVydGllczogZmlsdGVyUHJvcHNWMFxuICB9KSxcbiAgbGF5ZXJzOiBuZXcgTGF5ZXJTY2hlbWFWMCh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjAsXG4gICAgcHJvcGVydGllczogbGF5ZXJQcm9wc1YwXG4gIH0pLFxuICBpbnRlcmFjdGlvbkNvbmZpZzogbmV3IEludGVyYWN0aW9uU2NoZW1hVjAoe1xuICAgIHZlcnNpb246IFZFUlNJT05TLnYwLFxuICAgIHByb3BlcnRpZXM6IGludGVyYWN0aW9uUHJvcHNWMFxuICB9KSxcbiAgbGF5ZXJCbGVuZGluZzogbnVsbFxufTtcblxuZXhwb3J0IGNvbnN0IHByb3BlcnRpZXNWMSA9IHtcbiAgZmlsdGVyczogbmV3IEZpbHRlclNjaGVtYVYwKHtcbiAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MSxcbiAgICBwcm9wZXJ0aWVzOiBmaWx0ZXJQcm9wc1YxXG4gIH0pLFxuICBsYXllcnM6IG5ldyBMYXllclNjaGVtYVYwKHtcbiAgICB2ZXJzaW9uOiBWRVJTSU9OUy52MSxcbiAgICBwcm9wZXJ0aWVzOiBsYXllclByb3BzVjFcbiAgfSksXG4gIGludGVyYWN0aW9uQ29uZmlnOiBuZXcgSW50ZXJhY3Rpb25TY2hlbWFWMSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAgcHJvcGVydGllczogaW50ZXJhY3Rpb25Qcm9wc1YxXG4gIH0pLFxuICBsYXllckJsZW5kaW5nOiBudWxsLFxuICBzcGxpdE1hcHM6IG5ldyBTcGxpdE1hcHNTY2hlbWEoe1xuICAgIGtleTogJ3NwbGl0TWFwcycsXG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjFcbiAgfSksXG4gIGFuaW1hdGlvbkNvbmZpZzogbmV3IFNjaGVtYSh7XG4gICAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgY3VycmVudFRpbWU6IG51bGwsXG4gICAgICBzcGVlZDogbnVsbFxuICAgIH0sXG4gICAga2V5OiAnYW5pbWF0aW9uQ29uZmlnJ1xuICB9KVxufTtcblxuZXhwb3J0IGNvbnN0IHZpc1N0YXRlU2NoZW1hVjAgPSBuZXcgU2NoZW1hKHtcbiAgdmVyc2lvbjogVkVSU0lPTlMudjAsXG4gIHByb3BlcnRpZXM6IHByb3BlcnRpZXNWMCxcbiAga2V5OiAndmlzU3RhdGUnXG59KTtcblxuZXhwb3J0IGNvbnN0IHZpc1N0YXRlU2NoZW1hVjEgPSBuZXcgU2NoZW1hKHtcbiAgdmVyc2lvbjogVkVSU0lPTlMudjEsXG4gIHByb3BlcnRpZXM6IHByb3BlcnRpZXNWMSxcbiAga2V5OiAndmlzU3RhdGUnXG59KTtcblxuZXhwb3J0IGNvbnN0IHZpc1N0YXRlU2NoZW1hID0ge1xuICBbVkVSU0lPTlMudjBdOiB7XG4gICAgc2F2ZTogdG9TYXZlID0+IHZpc1N0YXRlU2NoZW1hVjAuc2F2ZSh0b1NhdmUpLFxuICAgIGxvYWQ6IHRvTG9hZCA9PiB2aXNTdGF0ZVNjaGVtYVYxLmxvYWQodmlzU3RhdGVTY2hlbWFWMC5sb2FkKHRvTG9hZCkudmlzU3RhdGUpXG4gIH0sXG4gIFtWRVJTSU9OUy52MV06IHZpc1N0YXRlU2NoZW1hVjFcbn07XG5cbi8vIHRlc3QgbG9hZCB2MFxuZXhwb3J0IGRlZmF1bHQgdmlz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
|