@kepler.gl/components 3.3.0-alpha.1 → 3.3.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/common/action-panel.js +1 -1
- package/dist/common/color-legend.d.ts +1 -1
- package/dist/common/data-table/canvas.d.ts +1 -1
- package/dist/common/data-table/index.d.ts +1 -1
- package/dist/common/dnd-layer-items.d.ts +4 -0
- package/dist/common/dnd-layer-items.js +6 -2
- package/dist/common/error-boundary.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/flex-container.d.ts +15 -7
- package/dist/common/icon-button.d.ts +53 -6
- package/dist/common/icons/arrow-down-full.d.ts +2 -1
- package/dist/common/icons/arrow-down-full.js +1 -1
- package/dist/common/icons/folder.d.ts +10 -0
- package/dist/common/icons/folder.js +51 -0
- package/dist/common/icons/index.d.ts +1 -0
- package/dist/common/icons/index.js +8 -1
- package/dist/common/icons/timeline-marker.d.ts +2 -1
- package/dist/common/icons/timeline-marker.js +1 -1
- package/dist/common/item-selector/dropdown-list.d.ts +1 -1
- package/dist/common/item-selector/dropdown-list.js +1 -1
- package/dist/common/item-selector/dropdown-select.d.ts +13 -7
- package/dist/common/item-selector/item-selector.d.ts +1 -1
- package/dist/common/item-selector/item-selector.js +1 -1
- package/dist/common/item-selector/typeahead.d.ts +4 -4
- package/dist/common/item-selector/typeahead.js +1 -3
- package/dist/common/layout-splitter.d.ts +45 -0
- package/dist/common/layout-splitter.js +231 -0
- package/dist/common/line-chart.d.ts +7 -3
- package/dist/common/line-chart.js +179 -59
- package/dist/common/modal.d.ts +11 -5
- package/dist/common/modal.js +1 -1
- package/dist/common/portaled.d.ts +17 -17
- package/dist/common/range-slider.js +1 -3
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/mouse-event.js +1 -2
- package/dist/common/slider/slider-bar-handle.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.js +1 -1
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider-handle.js +1 -1
- package/dist/common/slider/slider.d.ts +4 -4
- package/dist/common/slider/slider.js +1 -1
- package/dist/common/styled-components.d.ts +627 -177
- package/dist/common/vertical-toolbar.d.ts +12 -2
- package/dist/container.d.ts +3 -2
- package/dist/container.js +2 -2
- package/dist/context.d.ts +1 -1
- package/dist/context.js +1 -1
- package/dist/dnd-context.d.ts +4 -3
- package/dist/dnd-context.js +64 -9
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +2 -4
- package/dist/effects/effect-time-configurator.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +1 -1
- package/dist/filters/components.d.ts +7 -5
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
- package/dist/geocoder-panel.d.ts +2 -2
- package/dist/geocoder-panel.js +6 -7
- package/dist/hooks/use-dnd-layers.d.ts +4 -3
- package/dist/hooks/use-dnd-layers.js +103 -42
- package/dist/index.d.ts +3 -2
- package/dist/index.js +38 -9
- package/dist/injector.d.ts +1 -1
- package/dist/kepler-gl.d.ts +167 -27
- package/dist/kepler-gl.js +3 -2
- package/dist/loading-indicator.d.ts +1 -1
- package/dist/map/layer-hover-info.d.ts +7 -3
- package/dist/map/layer-hover-info.js +58 -22
- package/dist/map/map-control-panel.js +3 -2
- package/dist/map/map-control-toolbar.d.ts +29 -4
- package/dist/map/map-control.d.ts +11 -4
- package/dist/map/map-control.js +7 -6
- package/dist/map/map-legend-panel.d.ts +11 -2
- package/dist/map/map-legend-panel.js +19 -2
- package/dist/map/map-legend.d.ts +19 -2
- package/dist/map/map-legend.js +141 -27
- package/dist/map/split-map-button.d.ts +6 -1
- package/dist/map/split-map-button.js +113 -19
- package/dist/map-container.js +20 -3
- package/dist/maps-layout.d.ts +3 -0
- package/dist/maps-layout.js +86 -26
- package/dist/modal-container.d.ts +1 -1
- package/dist/modals/cloud-tile.d.ts +1 -2
- package/dist/modals/export-map-modal/components.d.ts +9 -5
- package/dist/modals/export-video-modal.d.ts +3 -0
- package/dist/modals/export-video-modal.js +79 -46
- package/dist/modals/export-video-modal.spec.js +2 -2
- package/dist/modals/hubble-utils.d.ts +16 -0
- package/dist/modals/hubble-utils.js +98 -1
- package/dist/modals/modal-dialog.d.ts +1 -1
- package/dist/modals/share-map-modal.d.ts +2 -4
- package/dist/modals/swipe-composite-utils.d.ts +10 -0
- package/dist/modals/swipe-composite-utils.js +108 -0
- package/dist/modals/swipe-export-settings.d.ts +24 -0
- package/dist/modals/swipe-export-settings.js +370 -0
- package/dist/modals/swipe-export-video-container.d.ts +122 -0
- package/dist/modals/swipe-export-video-container.js +630 -0
- package/dist/modals/swipe-export-video-preview.d.ts +68 -0
- package/dist/modals/swipe-export-video-preview.js +339 -0
- package/dist/modals/tilesets-modals/tileset-raster-form.js +1 -5
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
- package/dist/side-panel/layer-manager.d.ts +5 -4
- package/dist/side-panel/layer-manager.js +16 -4
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
- package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +1 -1
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
- package/dist/side-panel/layer-panel/layer-configurator.js +130 -82
- package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
- package/dist/side-panel/layer-panel/layer-group-header.js +179 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +9 -4
- package/dist/side-panel/layer-panel/layer-list.js +197 -40
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -10
- package/dist/side-panel/panel-tab.d.ts +1 -3
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/side-bar.d.ts +1 -6
- package/dist/side-panel.d.ts +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/package.json +29 -35
- package/dist/map/layer-selector-panel.d.ts +0 -21
- package/dist/map/layer-selector-panel.js +0 -85
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
- package/dist/side-panel/layer-panel/radius-by-zoom-input.js +0 -220
|
@@ -125,7 +125,7 @@ var DEFAULT_PROPS = {
|
|
|
125
125
|
mediaType: 'webm',
|
|
126
126
|
cameraPreset: 'None',
|
|
127
127
|
fileName: 'kepler.gl',
|
|
128
|
-
resolution: '',
|
|
128
|
+
resolution: '1280x720',
|
|
129
129
|
durationMs: 1000
|
|
130
130
|
},
|
|
131
131
|
containerW: 800,
|
|
@@ -683,4 +683,4 @@ describe('ExportVideoModal', function () {
|
|
|
683
683
|
})));
|
|
684
684
|
});
|
|
685
685
|
});
|
|
686
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX3JlYWN0SW50bCIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2xvY2FsaXphdGlvbiIsIl9leHBvcnRWaWRlb01vZGFsIiwiX2VmZmVjdHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyIiwiamVzdCIsImZuIiwiY3JlYXRlRWxlbWVudCIsIk1vY2tLZXBsZXJVSUNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJtb2NrIiwiRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lciIsInByb3BzIiwiS2VwbGVyVUlDb250ZXh0IiwibW9ja0NvbXB1dGVEZWNrRWZmZWN0cyIsImFjdHVhbCIsInJlcXVpcmVBY3R1YWwiLCJjb21wdXRlRGVja0VmZmVjdHMiLCJwYXRjaERlY2tSZW5kZXJlckZvclBvc3RQcm9jZXNzaW5nIiwiRGVja1NoYWRvd0NvbXBvc2l0aW5nRWZmZWN0IiwibW9ja0ltcGxlbWVudGF0aW9uIiwiaWQiLCJwb3N0UmVuZGVyIiwiY2xlYW51cCIsImdldFN0YXRpY01hcFByb3BzIiwiX3N0YXRlIiwiX29uQ2hhbmdlIiwiX3Rva2VuIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcFN0eWxlIiwibWFwTGliIiwiUHJvbWlzZSIsInJlc29sdmUiLCJnZXRCZWZvcmVMYXllcklkIiwiZ2V0SHViYmxlRGVja0dsUHJvcHMiLCJwYXJhbWV0ZXJzIiwiYmxlbmQiLCJjb250cm9sbGVyIiwidmlld3MiLCJnZXRUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMiLCJnZXRBbmltYXRhYmxlRmlsdGVycyIsInJlbmRlcldpdGhUaGVtZUxvY2FsIiwiY29tcG9uZW50IiwicmVuZGVyIiwiVGhlbWVQcm92aWRlciIsInRoZW1lIiwiSW50bFByb3ZpZGVyIiwibG9jYWxlIiwibWVzc2FnZXMiLCJFeHBvcnRWaWRlb01vZGFsIiwiRXhwb3J0VmlkZW9Nb2RhbEZhY3RvcnkiLCJERUZBVUxUX1BST1BTIiwibWFwYm94QXBpVXJsIiwibWFwU3RhdGUiLCJ6b29tIiwic3R5bGVUeXBlIiwibWFwU3R5bGVzIiwiZGFyayIsImFjY2Vzc1Rva2VuIiwiYm90dG9tTWFwU3R5bGUiLCJ0b3BNYXBTdHlsZSIsInZpc1N0YXRlIiwiZmlsdGVycyIsImxheWVycyIsImxheWVyQmxlbmRpbmciLCJsYXllck9yZGVyIiwiZXhwb3J0VmlkZW8iLCJtZWRpYVR5cGUiLCJjYW1lcmFQcmVzZXQiLCJmaWxlTmFtZSIsInJlc29sdXRpb24iLCJkdXJhdGlvbk1zIiwiY29udGFpbmVyVyIsInZpc1N0YXRlQWN0aW9ucyIsInNldEZpbHRlckFuaW1hdGlvblRpbWUiLCJzZXRMYXllckFuaW1hdGlvblRpbWUiLCJ1aVN0YXRlQWN0aW9ucyIsInNldEV4cG9ydFZpZGVvU2V0dGluZyIsIm9uQ2xvc2UiLCJyZW5kZXJBbmRXYWl0Rm9yUGFuZWwiLCJfcmVuZGVyQW5kV2FpdEZvclBhbmVsIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUyMCIsInJlc3VsdCIsIl9hcmdzMjAiLCJ3cmFwIiwiX2NhbGxlZTIwJCIsIl9jb250ZXh0MjAiLCJwcmV2IiwibmV4dCIsInVuZGVmaW5lZCIsIndhaXRGb3IiLCJleHBlY3QiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwiYWJydXB0Iiwic3RvcCIsImRlc2NyaWJlIiwiYmVmb3JlRWFjaCIsImNsZWFyQWxsTW9ja3MiLCJtb2NrUmV0dXJuVmFsdWUiLCJ0ZXN0IiwiX2NhbGxlZSIsIl95aWVsZCRyZW5kZXJBbmRXYWl0RiIsImNvbnRhaW5lciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzZW50IiwicXVlcnlTZWxlY3RvciIsInRvQmVJblRoZURvY3VtZW50IiwiX2NhbGxlZTIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJ0b0hhdmVCZWVuQ2FsbGVkVGltZXMiLCJfY2FsbGVlMyIsInBhbmVsUHJvcHMiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJjYWxscyIsImhlYWRlciIsInRvQmUiLCJkaXNhYmxlQmFzZU1hcCIsImRlZmF1bHRGaWxlTmFtZSIsImV4cG9ydFZpZGVvV2lkdGgiLCJ0b0JlTGVzc1RoYW5PckVxdWFsIiwidG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCIsImhhbmRsZUNsb3NlIiwiaW5pdGlhbFN0YXRlIiwidG9FcXVhbCIsIm1hcERhdGEiLCJfY2FsbGVlNCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsImRlY2tQcm9wcyIsIl9pc0V4cG9ydCIsImVmZmVjdHMiLCJfY2FsbGVlNSIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsIm1hcFByb3BzIiwidG9CZURlZmluZWQiLCJfY2FsbGVlNiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsImFuaW1hdGFibGVGaWx0ZXJzIiwiX2NhbGxlZTciLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJfdHlwZW9mMiIsIl9jYWxsZWU4IiwiX2NhbGxlZTgkIiwiX2NvbnRleHQ4Iiwib25GaWx0ZXJGcmFtZVVwZGF0ZSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiX2NhbGxlZTkiLCJfY2FsbGVlOSQiLCJfY29udGV4dDkiLCJvblRyaXBGcmFtZVVwZGF0ZSIsIk5PX01BUF9QUk9QUyIsIm5vX21hcCIsImxhYmVsIiwiaWNvbiIsImxheWVyR3JvdXBzIiwiY29sb3JNb2RlIiwic3R5bGUiLCJ2ZXJzaW9uIiwic291cmNlcyIsIl9jYWxsZWUxMCIsIl95aWVsZCRyZW5kZXJBbmRXYWl0RjIiLCJfY2FsbGVlMTAkIiwiX2NvbnRleHQxMCIsIl9jYWxsZWUxMSIsIm5vTWFwRW50cnkiLCJlbmNvZGVkIiwiZGVjb2RlZCIsIl9jYWxsZWUxMSQiLCJfY29udGV4dDExIiwidXJsIiwidG9NYXRjaCIsInJlcGxhY2UiLCJKU09OIiwicGFyc2UiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfY2FsbGVlMTIiLCJwcm9wc1dpdGhVcmwiLCJfY2FsbGVlMTIkIiwiX2NvbnRleHQxMiIsIm1ha2VGb2dEZWNrRWZmZWN0IiwiZWZmZWN0IiwiaGVpZ2h0Iiwic2V0UHJvcHMiLCJuZXdQcm9wcyIsImFzc2lnbiIsIm1ha2VTdXJmYWNlRm9nRWZmZWN0IiwiZGVja0VmZmVjdCIsIm92ZXJyaWRlcyIsInR5cGUiLCJpc0VuYWJsZWQiLCJhbmltYXRlSGVpZ2h0IiwiaGVpZ2h0RW5kIiwibGluZWFyRWFzaW5nIiwiY2xvbmUiLCJwcm9wc1dpdGhGb2dFZmZlY3QiLCJmb2dFZmZlY3QiLCJlZmZlY3RPcmRlciIsIl9jYWxsZWUxMyIsIm9yaWdpbmFsUG9zdFJlbmRlciIsIl9jYWxsZWUxMyQiLCJfY29udGV4dDEzIiwibm90IiwiX2NhbGxlZTE0IiwiX2NhbGxlZTE0JCIsIl9jb250ZXh0MTQiLCJjYWxsIiwiX2NhbGxlZTE1IiwiX2NhbGxlZTE1JCIsIl9jb250ZXh0MTUiLCJfY2FsbGVlMTYiLCJfeWllbGQkcmVuZGVyQW5kV2FpdEYzIiwidW5tb3VudCIsInBhdGNoZWRQb3N0UmVuZGVyIiwiX2NhbGxlZTE2JCIsIl9jb250ZXh0MTYiLCJiaW5kIiwibW9ja0VmZmVjdCIsInByb3BzV2l0aEVmZmVjdHMiLCJtYXAiLCJfY2FsbGVlMTciLCJzaGFkb3dEZWNrRWZmZWN0IiwiX2NhbGxlZTE3JCIsIl9jb250ZXh0MTciLCJzaGFkb3ciLCJfY2FsbGVlMTgiLCJwb3N0UHJvY2Vzc0VmZmVjdCIsIl9jYWxsZWUxOCQiLCJfY29udGV4dDE4IiwiZXZlcnkiLCJfY2FsbGVlMTkiLCJub25TaGFkb3dFZmZlY3QiLCJfY2FsbGVlMTkkIiwiX2NvbnRleHQxOSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvZXhwb3J0LXZpZGVvLW1vZGFsLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIEB0cy1ub2NoZWNrXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtUaGVtZVByb3ZpZGVyfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0ludGxQcm92aWRlcn0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge3JlbmRlciwgd2FpdEZvcn0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQge3RoZW1lfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5pbXBvcnQge21lc3NhZ2VzfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5cbmNvbnN0IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyID0gamVzdC5mbigoKSA9PiAoXG4gIDxkaXYgZGF0YS10ZXN0aWQ9XCJleHBvcnQtdmlkZW8tcGFuZWxcIj5Nb2NrIFBhbmVsPC9kaXY+XG4pKTtcbmNvbnN0IE1vY2tLZXBsZXJVSUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuXG5qZXN0Lm1vY2soJ0BodWJibGUuZ2wvcmVhY3QnLCAoKSA9PiAoe1xuICBFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyOiBwcm9wcyA9PiBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lcihwcm9wcyksXG4gIEtlcGxlclVJQ29udGV4dDogTW9ja0tlcGxlclVJQ29udGV4dFxufSkpO1xuXG5jb25zdCBtb2NrQ29tcHV0ZURlY2tFZmZlY3RzID0gamVzdC5mbigoKSA9PiBbXSk7XG5cbmplc3QubW9jaygnQGtlcGxlci5nbC91dGlscycsICgpID0+IHtcbiAgY29uc3QgYWN0dWFsID0gamVzdC5yZXF1aXJlQWN0dWFsKCdAa2VwbGVyLmdsL3V0aWxzJyk7XG4gIHJldHVybiB7XG4gICAgLi4uYWN0dWFsLFxuICAgIGNvbXB1dGVEZWNrRWZmZWN0czogKC4uLmFyZ3MpID0+IG1vY2tDb21wdXRlRGVja0VmZmVjdHMoLi4uYXJncyksXG4gICAgcGF0Y2hEZWNrUmVuZGVyZXJGb3JQb3N0UHJvY2Vzc2luZzogamVzdC5mbigpXG4gIH07XG59KTtcblxuamVzdC5tb2NrKCdAa2VwbGVyLmdsL2VmZmVjdHMnLCAoKSA9PiAoe1xuICBEZWNrU2hhZG93Q29tcG9zaXRpbmdFZmZlY3Q6IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gKHtcbiAgICBpZDogJ3NoYWRvdy1jb21wb3NpdGluZy1lZmZlY3QnLFxuICAgIHBvc3RSZW5kZXI6IGplc3QuZm4oKSxcbiAgICBjbGVhbnVwOiBqZXN0LmZuKClcbiAgfSkpXG59KSk7XG5cbmplc3QubW9jaygnLi9odWJibGUtdXRpbHMnLCAoKSA9PiAoe1xuICBnZXRTdGF0aWNNYXBQcm9wczogamVzdC5mbigoX3N0YXRlLCBfb25DaGFuZ2UsIF90b2tlbikgPT4gKHtcbiAgICBsYXRpdHVkZTogMzcuNyxcbiAgICBsb25naXR1ZGU6IC0xMjIuNCxcbiAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW46ICdzdHlsZS10b2tlbicsXG4gICAgbWFwU3R5bGU6IHtpZDogJ2Rhcmstc3R5bGUnfSxcbiAgICBtYXBMaWI6IFByb21pc2UucmVzb2x2ZSh7fSlcbiAgfSkpLFxuICBnZXRCZWZvcmVMYXllcklkOiBqZXN0LmZuKCgpID0+IG51bGwpLFxuICBnZXRIdWJibGVEZWNrR2xQcm9wczogamVzdC5mbigoKSA9PiAoe1xuICAgIHBhcmFtZXRlcnM6IHtibGVuZDogdHJ1ZX0sXG4gICAgY29udHJvbGxlcjogdHJ1ZSxcbiAgICB2aWV3czoge31cbiAgfSkpLFxuICBnZXRUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXM6IGplc3QuZm4oKSxcbiAgZ2V0QW5pbWF0YWJsZUZpbHRlcnM6IGplc3QuZm4oKCkgPT4gW10pXG59KSk7XG5cbmltcG9ydCBFeHBvcnRWaWRlb01vZGFsRmFjdG9yeSBmcm9tICcuL2V4cG9ydC12aWRlby1tb2RhbCc7XG5pbXBvcnQge0RlY2tTaGFkb3dDb21wb3NpdGluZ0VmZmVjdH0gZnJvbSAnQGtlcGxlci5nbC9lZmZlY3RzJztcblxuZnVuY3Rpb24gcmVuZGVyV2l0aFRoZW1lTG9jYWwoY29tcG9uZW50KSB7XG4gIHJldHVybiByZW5kZXIoXG4gICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgIDxJbnRsUHJvdmlkZXIgbG9jYWxlPVwiZW5cIiBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICB7Y29tcG9uZW50fVxuICAgICAgPC9JbnRsUHJvdmlkZXI+XG4gICAgPC9UaGVtZVByb3ZpZGVyPlxuICApO1xufVxuXG5jb25zdCBFeHBvcnRWaWRlb01vZGFsID0gRXhwb3J0VmlkZW9Nb2RhbEZhY3RvcnkoKTtcblxuY29uc3QgREVGQVVMVF9QUk9QUyA9IHtcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46ICd0ZXN0LXRva2VuJyxcbiAgbWFwYm94QXBpVXJsOiAnaHR0cHM6Ly9hcGkubWFwYm94LmNvbScsXG4gIG1hcFN0YXRlOiB7bGF0aXR1ZGU6IDM3LjcsIGxvbmdpdHVkZTogLTEyMi40LCB6b29tOiAxMH0sXG4gIG1hcFN0eWxlOiB7XG4gICAgc3R5bGVUeXBlOiAnZGFyaycsXG4gICAgbWFwU3R5bGVzOiB7ZGFyazoge2FjY2Vzc1Rva2VuOiAnc3R5bGUtdG9rZW4nfX0sXG4gICAgYm90dG9tTWFwU3R5bGU6IHtpZDogJ2Rhcmstc3R5bGUnfSxcbiAgICB0b3BNYXBTdHlsZTogbnVsbFxuICB9LFxuICB2aXNTdGF0ZToge1xuICAgIGZpbHRlcnM6IFtdLFxuICAgIGxheWVyczogW10sXG4gICAgbGF5ZXJCbGVuZGluZzogJ25vcm1hbCcsXG4gICAgbGF5ZXJPcmRlcjogW11cbiAgfSxcbiAgZXhwb3J0VmlkZW86IHtcbiAgICBtZWRpYVR5cGU6ICd3ZWJtJyxcbiAgICBjYW1lcmFQcmVzZXQ6ICdOb25lJyxcbiAgICBmaWxlTmFtZTogJ2tlcGxlci5nbCcsXG4gICAgcmVzb2x1dGlvbjogJycsXG4gICAgZHVyYXRpb25NczogMTAwMFxuICB9LFxuICBjb250YWluZXJXOiA4MDAsXG4gIHZpc1N0YXRlQWN0aW9uczoge1xuICAgIHNldEZpbHRlckFuaW1hdGlvblRpbWU6IGplc3QuZm4oKSxcbiAgICBzZXRMYXllckFuaW1hdGlvblRpbWU6IGplc3QuZm4oKVxuICB9LFxuICB1aVN0YXRlQWN0aW9uczoge1xuICAgIHNldEV4cG9ydFZpZGVvU2V0dGluZzogamVzdC5mbigpXG4gIH0sXG4gIG9uQ2xvc2U6IGplc3QuZm4oKVxufTtcblxuYXN5bmMgZnVuY3Rpb24gcmVuZGVyQW5kV2FpdEZvclBhbmVsKHByb3BzID0gREVGQVVMVF9QUk9QUykge1xuICBjb25zdCByZXN1bHQgPSByZW5kZXJXaXRoVGhlbWVMb2NhbCg8RXhwb3J0VmlkZW9Nb2RhbCB7Li4ucHJvcHN9IC8+KTtcbiAgYXdhaXQgd2FpdEZvcigoKSA9PiB7XG4gICAgZXhwZWN0KG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyKS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuICByZXR1cm4gcmVzdWx0O1xufVxuXG5kZXNjcmliZSgnRXhwb3J0VmlkZW9Nb2RhbCcsICgpID0+IHtcbiAgYmVmb3JlRWFjaCgoKSA9PiB7XG4gICAgamVzdC5jbGVhckFsbE1vY2tzKCk7XG4gICAgbW9ja0NvbXB1dGVEZWNrRWZmZWN0cy5tb2NrUmV0dXJuVmFsdWUoW10pO1xuICB9KTtcblxuICB0ZXN0KCdyZW5kZXJzIHdpdGhvdXQgY3Jhc2hpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3Qge2NvbnRhaW5lcn0gPSBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwoKTtcbiAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5leHBvcnQtdmlkZW8tbW9kYWwnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgfSk7XG5cbiAgdGVzdCgncHJvdmlkZXMgS2VwbGVyVUkgY29udGV4dCB3aXRoIGV4cGVjdGVkIGNvbXBvbmVudHMnLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKCk7XG4gICAgZXhwZWN0KG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyKS50b0hhdmVCZWVuQ2FsbGVkVGltZXMoMSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3Bhc3NlcyBjb3JyZWN0IHByb3BzIHRvIEV4cG9ydFZpZGVvUGFuZWxDb250YWluZXInLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKCk7XG5cbiAgICBleHBlY3QobW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgICBjb25zdCBwYW5lbFByb3BzID0gbW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIubW9jay5jYWxsc1swXVswXTtcblxuICAgIGV4cGVjdChwYW5lbFByb3BzLmhlYWRlcikudG9CZShmYWxzZSk7XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMuZGlzYWJsZUJhc2VNYXApLnRvQmUoZmFsc2UpO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLmRlZmF1bHRGaWxlTmFtZSkudG9CZSgna2VwbGVyLmdsJyk7XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMuZXhwb3J0VmlkZW9XaWR0aCkudG9CZUxlc3NUaGFuT3JFcXVhbCg1NDApO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLmV4cG9ydFZpZGVvV2lkdGgpLnRvQmVHcmVhdGVyVGhhbk9yRXF1YWwoMzIwKTtcbiAgICBleHBlY3QocGFuZWxQcm9wcy5oYW5kbGVDbG9zZSkudG9CZShERUZBVUxUX1BST1BTLm9uQ2xvc2UpO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLmluaXRpYWxTdGF0ZSkudG9FcXVhbChERUZBVUxUX1BST1BTLmV4cG9ydFZpZGVvKTtcbiAgICBleHBlY3QocGFuZWxQcm9wcy5tYXBEYXRhKS50b0VxdWFsKHtcbiAgICAgIHZpc1N0YXRlOiBERUZBVUxUX1BST1BTLnZpc1N0YXRlLFxuICAgICAgbWFwU3RhdGU6IERFRkFVTFRfUFJPUFMubWFwU3RhdGUsXG4gICAgICBtYXBTdHlsZTogREVGQVVMVF9QUk9QUy5tYXBTdHlsZVxuICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KCdwYXNzZXMgZGVja1Byb3BzIGZyb20gZ2V0SHViYmxlRGVja0dsUHJvcHMnLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKCk7XG5cbiAgICBjb25zdCBwYW5lbFByb3BzID0gbW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIubW9jay5jYWxsc1swXVswXTtcbiAgICBleHBlY3QocGFuZWxQcm9wcy5kZWNrUHJvcHMpLnRvRXF1YWwoe1xuICAgICAgcGFyYW1ldGVyczoge2JsZW5kOiB0cnVlfSxcbiAgICAgIGNvbnRyb2xsZXI6IHRydWUsXG4gICAgICB2aWV3czoge30sXG4gICAgICBfaXNFeHBvcnQ6IHRydWUsXG4gICAgICBlZmZlY3RzOiBbXVxuICAgIH0pO1xuICB9KTtcblxuICB0ZXN0KCdwYXNzZXMgbWFwUHJvcHMgZnJvbSBnZXRTdGF0aWNNYXBQcm9wcycsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwoKTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLm1hcFByb3BzLmxhdGl0dWRlKS50b0JlKDM3LjcpO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLm1hcFByb3BzLmxvbmdpdHVkZSkudG9CZSgtMTIyLjQpO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLm1hcFByb3BzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcikudG9CZSh0cnVlKTtcbiAgICBleHBlY3QocGFuZWxQcm9wcy5tYXBQcm9wcy5tYXBib3hBcGlBY2Nlc3NUb2tlbikudG9CZSgnc3R5bGUtdG9rZW4nKTtcbiAgICBleHBlY3QocGFuZWxQcm9wcy5tYXBQcm9wcy5tYXBTdHlsZSkudG9FcXVhbCh7aWQ6ICdkYXJrLXN0eWxlJ30pO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLm1hcFByb3BzLm1hcExpYikudG9CZURlZmluZWQoKTtcbiAgfSk7XG5cbiAgdGVzdCgncGFzc2VzIGVtcHR5IGFuaW1hdGFibGVGaWx0ZXJzIHdoZW4gbm8gbWF0Y2hpbmcgZmlsdGVycycsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwoKTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLmFuaW1hdGFibGVGaWx0ZXJzKS50b0VxdWFsKFtdKTtcbiAgfSk7XG5cbiAgdGVzdCgncHJvdmlkZXMgZ2V0VGltZVJhbmdlRmlsdGVyS2V5ZnJhbWVzIGNhbGxiYWNrJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbCgpO1xuXG4gICAgY29uc3QgcGFuZWxQcm9wcyA9IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyLm1vY2suY2FsbHNbMF1bMF07XG4gICAgZXhwZWN0KHR5cGVvZiBwYW5lbFByb3BzLmdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lcykudG9CZSgnZnVuY3Rpb24nKTtcbiAgfSk7XG5cbiAgdGVzdCgncHJvdmlkZXMgb25GaWx0ZXJGcmFtZVVwZGF0ZSB0aGF0IGNhbGxzIHZpc1N0YXRlQWN0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwoKTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgIHBhbmVsUHJvcHMub25GaWx0ZXJGcmFtZVVwZGF0ZSgwLCAndmFsdWUnLCBbMTAwLCAyMDBdKTtcbiAgICBleHBlY3QoREVGQVVMVF9QUk9QUy52aXNTdGF0ZUFjdGlvbnMuc2V0RmlsdGVyQW5pbWF0aW9uVGltZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoXG4gICAgICAwLFxuICAgICAgJ3ZhbHVlJyxcbiAgICAgIFsxMDAsIDIwMF1cbiAgICApO1xuICB9KTtcblxuICB0ZXN0KCdwcm92aWRlcyBvblRyaXBGcmFtZVVwZGF0ZSB0aGF0IGNhbGxzIHZpc1N0YXRlQWN0aW9ucycsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwoKTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgIHBhbmVsUHJvcHMub25UcmlwRnJhbWVVcGRhdGUoNDIpO1xuICAgIGV4cGVjdChERUZBVUxUX1BST1BTLnZpc1N0YXRlQWN0aW9ucy5zZXRMYXllckFuaW1hdGlvblRpbWUpLnRvSGF2ZUJlZW5DYWxsZWRXaXRoKDQyKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ05PX01BUF9JRCBoYW5kbGluZycsICgpID0+IHtcbiAgICBjb25zdCBOT19NQVBfUFJPUFMgPSB7XG4gICAgICAuLi5ERUZBVUxUX1BST1BTLFxuICAgICAgbWFwU3R5bGU6IHtcbiAgICAgICAgc3R5bGVUeXBlOiAnbm9fbWFwJyxcbiAgICAgICAgbWFwU3R5bGVzOiB7XG4gICAgICAgICAgbm9fbWFwOiB7XG4gICAgICAgICAgICBpZDogJ25vX21hcCcsXG4gICAgICAgICAgICBsYWJlbDogJ05vIEJhc2VtYXAnLFxuICAgICAgICAgICAgLy8gdXJsIGlzIGludGVudGlvbmFsbHkgbWlzc2luZyB0byBleGVyY2lzZSB0aGUgZGF0YS1VUkkgcGF0Y2hcbiAgICAgICAgICAgIGljb246ICcnLFxuICAgICAgICAgICAgbGF5ZXJHcm91cHM6IFtdLFxuICAgICAgICAgICAgY29sb3JNb2RlOiAnTk9ORScsXG4gICAgICAgICAgICBzdHlsZToge3ZlcnNpb246IDgsIHNvdXJjZXM6IHt9LCBsYXllcnM6IFtdfVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgYm90dG9tTWFwU3R5bGU6IG51bGwsXG4gICAgICAgIHRvcE1hcFN0eWxlOiBudWxsXG4gICAgICB9XG4gICAgfTtcblxuICAgIHRlc3QoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZyB3aGVuIHN0eWxlVHlwZSBpcyBOT19NQVBfSUQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7Y29udGFpbmVyfSA9IGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbChOT19NQVBfUFJPUFMpO1xuICAgICAgZXhwZWN0KGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCcuZXhwb3J0LXZpZGVvLW1vZGFsJykpLnRvQmVJblRoZURvY3VtZW50KCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdpbmplY3RzIGRhdGEtVVJJIGVtcHR5IHN0eWxlIFVSTCBpbnRvIG1hcERhdGEgd2hlbiBOT19NQVBfSUQgZW50cnkgaGFzIG5vIHVybCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbChOT19NQVBfUFJPUFMpO1xuXG4gICAgICBjb25zdCBwYW5lbFByb3BzID0gbW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGNvbnN0IG5vTWFwRW50cnkgPSBwYW5lbFByb3BzLm1hcERhdGEubWFwU3R5bGUubWFwU3R5bGVzLm5vX21hcDtcblxuICAgICAgZXhwZWN0KG5vTWFwRW50cnkudXJsKS50b0JlRGVmaW5lZCgpO1xuICAgICAgZXhwZWN0KG5vTWFwRW50cnkudXJsKS50b01hdGNoKC9eZGF0YTphcHBsaWNhdGlvblxcL2pzb24sLyk7XG5cbiAgICAgIGNvbnN0IGVuY29kZWQgPSBub01hcEVudHJ5LnVybC5yZXBsYWNlKCdkYXRhOmFwcGxpY2F0aW9uL2pzb24sJywgJycpO1xuICAgICAgY29uc3QgZGVjb2RlZCA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KGVuY29kZWQpKTtcbiAgICAgIGV4cGVjdChkZWNvZGVkKS50b0VxdWFsKHt2ZXJzaW9uOiA4LCBzb3VyY2VzOiB7fSwgbGF5ZXJzOiBbXX0pO1xuICAgIH0pO1xuXG4gICAgdGVzdCgncHJlc2VydmVzIG9yaWdpbmFsIG1hcFN0eWxlIHdoZW4gTk9fTUFQX0lEIGVudHJ5IGFscmVhZHkgaGFzIGEgdXJsJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcHJvcHNXaXRoVXJsID0ge1xuICAgICAgICAuLi5ERUZBVUxUX1BST1BTLFxuICAgICAgICBtYXBTdHlsZToge1xuICAgICAgICAgIHN0eWxlVHlwZTogJ25vX21hcCcsXG4gICAgICAgICAgbWFwU3R5bGVzOiB7XG4gICAgICAgICAgICBub19tYXA6IHtcbiAgICAgICAgICAgICAgaWQ6ICdub19tYXAnLFxuICAgICAgICAgICAgICB1cmw6ICdodHRwczovL2V4aXN0aW5nLXN0eWxlLmpzb24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBib3R0b21NYXBTdHlsZTogbnVsbCxcbiAgICAgICAgICB0b3BNYXBTdHlsZTogbnVsbFxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwocHJvcHNXaXRoVXJsKTtcblxuICAgICAgY29uc3QgcGFuZWxQcm9wcyA9IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyLm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBleHBlY3QocGFuZWxQcm9wcy5tYXBEYXRhLm1hcFN0eWxlKS50b0JlKHByb3BzV2l0aFVybC5tYXBTdHlsZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdzdXJmYWNlIGZvZyBoZWlnaHQgYW5pbWF0aW9uJywgKCkgPT4ge1xuICAgIGZ1bmN0aW9uIG1ha2VGb2dEZWNrRWZmZWN0KCkge1xuICAgICAgY29uc3QgZWZmZWN0ID0ge1xuICAgICAgICBpZDogJ3N1cmZhY2UtZm9nLWRlY2snLFxuICAgICAgICBwcm9wczoge2hlaWdodDogNTB9LFxuICAgICAgICBwb3N0UmVuZGVyOiBqZXN0LmZuKCksXG4gICAgICAgIHNldFByb3BzOiBqZXN0LmZuKGZ1bmN0aW9uIChuZXdQcm9wcykge1xuICAgICAgICAgIE9iamVjdC5hc3NpZ24oZWZmZWN0LnByb3BzLCBuZXdQcm9wcyk7XG4gICAgICAgIH0pXG4gICAgICB9O1xuICAgICAgcmV0dXJuIGVmZmVjdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlU3VyZmFjZUZvZ0VmZmVjdChkZWNrRWZmZWN0LCBvdmVycmlkZXMgPSB7fSkge1xuICAgICAgY29uc3QgZWZmZWN0ID0ge1xuICAgICAgICBpZDogJ2ZvZy0xJyxcbiAgICAgICAgdHlwZTogJ3N1cmZhY2VGb2cnLFxuICAgICAgICBpc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICBoZWlnaHQ6IDUwLFxuICAgICAgICAgIGFuaW1hdGVIZWlnaHQ6IHRydWUsXG4gICAgICAgICAgaGVpZ2h0RW5kOiAyMDAsXG4gICAgICAgICAgbGluZWFyRWFzaW5nOiBmYWxzZSxcbiAgICAgICAgICAuLi5vdmVycmlkZXNcbiAgICAgICAgfSxcbiAgICAgICAgZGVja0VmZmVjdCxcbiAgICAgICAgY2xvbmU6IGplc3QuZm4oKVxuICAgICAgfTtcbiAgICAgIC8vIGNsb25lIHJldHVybnMgYSBmcmVzaCByZWZlcmVuY2UgdGhhdCBzdGlsbCBwb2ludHMgdG8gdGhlIHNhbWUgZGVja0VmZmVjdFxuICAgICAgZWZmZWN0LmNsb25lLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiAoey4uLmVmZmVjdCwgY2xvbmU6IGVmZmVjdC5jbG9uZX0pKTtcbiAgICAgIHJldHVybiBlZmZlY3Q7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJvcHNXaXRoRm9nRWZmZWN0KGZvZ0VmZmVjdCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uREVGQVVMVF9QUk9QUyxcbiAgICAgICAgdmlzU3RhdGU6IHtcbiAgICAgICAgICAuLi5ERUZBVUxUX1BST1BTLnZpc1N0YXRlLFxuICAgICAgICAgIGVmZmVjdHM6IFtmb2dFZmZlY3RdLFxuICAgICAgICAgIGVmZmVjdE9yZGVyOiBbZm9nRWZmZWN0LmlkXVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRlc3QoJ3BhdGNoZXMgZGVja0VmZmVjdC5wb3N0UmVuZGVyIHdoZW4gYW5pbWF0ZUhlaWdodCBpcyBlbmFibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGVja0VmZmVjdCA9IG1ha2VGb2dEZWNrRWZmZWN0KCk7XG4gICAgICBjb25zdCBvcmlnaW5hbFBvc3RSZW5kZXIgPSBkZWNrRWZmZWN0LnBvc3RSZW5kZXI7XG4gICAgICBjb25zdCBmb2dFZmZlY3QgPSBtYWtlU3VyZmFjZUZvZ0VmZmVjdChkZWNrRWZmZWN0KTtcbiAgICAgIG1vY2tDb21wdXRlRGVja0VmZmVjdHMubW9ja1JldHVyblZhbHVlKFtkZWNrRWZmZWN0XSk7XG5cbiAgICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbChwcm9wc1dpdGhGb2dFZmZlY3QoZm9nRWZmZWN0KSk7XG5cbiAgICAgIGV4cGVjdChkZWNrRWZmZWN0LnBvc3RSZW5kZXIpLm5vdC50b0JlKG9yaWdpbmFsUG9zdFJlbmRlcik7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdyZXN0b3JlcyBvcmlnaW5hbCBoZWlnaHQgd2hlbiBodWJibGUgaXMgbm90IHBsYXlpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZWNrRWZmZWN0ID0gbWFrZUZvZ0RlY2tFZmZlY3QoKTtcbiAgICAgIGRlY2tFZmZlY3QucHJvcHMuaGVpZ2h0ID0gNzU7XG4gICAgICBjb25zdCBmb2dFZmZlY3QgPSBtYWtlU3VyZmFjZUZvZ0VmZmVjdChkZWNrRWZmZWN0LCB7aGVpZ2h0OiA3NX0pO1xuICAgICAgbW9ja0NvbXB1dGVEZWNrRWZmZWN0cy5tb2NrUmV0dXJuVmFsdWUoW2RlY2tFZmZlY3RdKTtcblxuICAgICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKHByb3BzV2l0aEZvZ0VmZmVjdChmb2dFZmZlY3QpKTtcblxuICAgICAgLy8gQ2FsbCB0aGUgcGF0Y2hlZCBwb3N0UmVuZGVyIHdpdGhvdXQgaHViYmxlIHBsYXlpbmdcbiAgICAgIGRlY2tFZmZlY3QucG9zdFJlbmRlci5jYWxsKGRlY2tFZmZlY3QsIHt9KTtcblxuICAgICAgLy8gTm90IHBsYXlpbmcg4oaSIGhlaWdodCByZXNldHMgdG8gb3JpZ2luYWxIZWlnaHRcbiAgICAgIGV4cGVjdChkZWNrRWZmZWN0LnByb3BzLmhlaWdodCkudG9CZSg3NSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdkb2VzIG5vdCBtdXRhdGUgaGVpZ2h0IHdoZW4gYW5pbWF0ZUhlaWdodCBpcyBkaXNhYmxlZCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlY2tFZmZlY3QgPSBtYWtlRm9nRGVja0VmZmVjdCgpO1xuICAgICAgY29uc3QgZm9nRWZmZWN0ID0gbWFrZVN1cmZhY2VGb2dFZmZlY3QoZGVja0VmZmVjdCwge2FuaW1hdGVIZWlnaHQ6IGZhbHNlfSk7XG4gICAgICBtb2NrQ29tcHV0ZURlY2tFZmZlY3RzLm1vY2tSZXR1cm5WYWx1ZShbZGVja0VmZmVjdF0pO1xuXG4gICAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwocHJvcHNXaXRoRm9nRWZmZWN0KGZvZ0VmZmVjdCkpO1xuXG4gICAgICBkZWNrRWZmZWN0LnByb3BzLmhlaWdodCA9IDQyO1xuICAgICAgZGVja0VmZmVjdC5wb3N0UmVuZGVyLmNhbGwoZGVja0VmZmVjdCwge30pO1xuXG4gICAgICAvLyByZWYuYWN0aXZlIGlzIGZhbHNlIHNvIGhlaWdodCBzaG91bGQgbm90IGJlIHRvdWNoZWRcbiAgICAgIGV4cGVjdChkZWNrRWZmZWN0LnByb3BzLmhlaWdodCkudG9CZSg0Mik7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdyZXN0b3JlcyBvcmlnaW5hbCBwb3N0UmVuZGVyIG9uIHVubW91bnQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZWNrRWZmZWN0ID0gbWFrZUZvZ0RlY2tFZmZlY3QoKTtcbiAgICAgIGNvbnN0IGZvZ0VmZmVjdCA9IG1ha2VTdXJmYWNlRm9nRWZmZWN0KGRlY2tFZmZlY3QpO1xuICAgICAgbW9ja0NvbXB1dGVEZWNrRWZmZWN0cy5tb2NrUmV0dXJuVmFsdWUoW2RlY2tFZmZlY3RdKTtcblxuICAgICAgY29uc3Qge3VubW91bnR9ID0gYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKHByb3BzV2l0aEZvZ0VmZmVjdChmb2dFZmZlY3QpKTtcblxuICAgICAgLy8gcG9zdFJlbmRlciB3YXMgcGF0Y2hlZCAodGhlIHdyYXBwZXIgZnVuY3Rpb24gZHJpdmVzIGFuaW1hdGlvbilcbiAgICAgIGNvbnN0IHBhdGNoZWRQb3N0UmVuZGVyID0gZGVja0VmZmVjdC5wb3N0UmVuZGVyO1xuICAgICAgLy8gVmVyaWZ5IGl0J3Mgbm90IHRoZSBvcmlnaW5hbCBtb2NrIChjb21wb25lbnQgYmluZHMgYW5kIHdyYXBzIGl0KVxuICAgICAgZXhwZWN0KHBhdGNoZWRQb3N0UmVuZGVyKS5ub3QudG9CZShkZWNrRWZmZWN0LnBvc3RSZW5kZXIuYmluZChkZWNrRWZmZWN0KSk7XG5cbiAgICAgIHVubW91bnQoKTtcblxuICAgICAgLy8gQWZ0ZXIgdW5tb3VudCwgcG9zdFJlbmRlciBubyBsb25nZXIgZHJpdmVzIGFuaW1hdGlvbi5cbiAgICAgIC8vIFRoZSByZXN0b3JlZCBmdW5jdGlvbiBpcyBhIGJvdW5kIGNvcHkgb2YgdGhlIG9yaWdpbmFsIG1vY2suXG4gICAgICBkZWNrRWZmZWN0LnByb3BzLmhlaWdodCA9IDk5O1xuICAgICAgZGVja0VmZmVjdC5wb3N0UmVuZGVyLmNhbGwoZGVja0VmZmVjdCwge30pO1xuICAgICAgLy8gSGVpZ2h0IHNob3VsZCBOT1QgYmUgbXV0YXRlZCBieSBhbmltYXRpb24gbG9naWMgYW55bW9yZVxuICAgICAgZXhwZWN0KGRlY2tFZmZlY3QucHJvcHMuaGVpZ2h0KS50b0JlKDk5KTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3NoYWRvdyBjb21wb3NpdGluZyBmYWxsYmFjaycsICgpID0+IHtcbiAgICBjb25zdCBtb2NrRWZmZWN0ID0ge1xuICAgICAgaWQ6ICdsaWdodC1zaGFkb3ctMScsXG4gICAgICB0eXBlOiAnbGlnaHQtYW5kLXNoYWRvdycsXG4gICAgICBpc0VuYWJsZWQ6IHRydWUsXG4gICAgICBjbG9uZTogamVzdC5mbigoKSA9PiAoey4uLm1vY2tFZmZlY3QsIGNsb25lOiBtb2NrRWZmZWN0LmNsb25lfSkpXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHByb3BzV2l0aEVmZmVjdHMoZWZmZWN0cykge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uREVGQVVMVF9QUk9QUyxcbiAgICAgICAgdmlzU3RhdGU6IHtcbiAgICAgICAgICAuLi5ERUZBVUxUX1BST1BTLnZpc1N0YXRlLFxuICAgICAgICAgIGVmZmVjdHMsXG4gICAgICAgICAgZWZmZWN0T3JkZXI6IGVmZmVjdHMubWFwKGUgPT4gZS5pZClcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0ZXN0KCdhZGRzIERlY2tTaGFkb3dDb21wb3NpdGluZ0VmZmVjdCB3aGVuIHNoYWRvd3MgZXhpc3QgYnV0IG5vIHBvc3RSZW5kZXIgZWZmZWN0JywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc2hhZG93RGVja0VmZmVjdCA9IHtpZDogJ2xpZ2h0aW5nJywgc2hhZG93OiB0cnVlfTtcbiAgICAgIG1vY2tDb21wdXRlRGVja0VmZmVjdHMubW9ja1JldHVyblZhbHVlKFtzaGFkb3dEZWNrRWZmZWN0XSk7XG5cbiAgICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbChwcm9wc1dpdGhFZmZlY3RzKFttb2NrRWZmZWN0XSkpO1xuXG4gICAgICBjb25zdCBwYW5lbFByb3BzID0gbW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGNvbnN0IGVmZmVjdHMgPSBwYW5lbFByb3BzLmRlY2tQcm9wcy5lZmZlY3RzO1xuXG4gICAgICBleHBlY3QoZWZmZWN0cy5sZW5ndGgpLnRvQmUoMik7XG4gICAgICBleHBlY3QoZWZmZWN0c1swXSkudG9CZShzaGFkb3dEZWNrRWZmZWN0KTtcbiAgICAgIGV4cGVjdChlZmZlY3RzWzFdLmlkKS50b0JlKCdzaGFkb3ctY29tcG9zaXRpbmctZWZmZWN0Jyk7XG4gICAgICBleHBlY3QoRGVja1NoYWRvd0NvbXBvc2l0aW5nRWZmZWN0KS50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdkb2VzIG5vdCBhZGQgRGVja1NoYWRvd0NvbXBvc2l0aW5nRWZmZWN0IHdoZW4gYSBwb3N0UmVuZGVyIGVmZmVjdCBhbHJlYWR5IGV4aXN0cycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHNoYWRvd0RlY2tFZmZlY3QgPSB7aWQ6ICdsaWdodGluZycsIHNoYWRvdzogdHJ1ZX07XG4gICAgICBjb25zdCBwb3N0UHJvY2Vzc0VmZmVjdCA9IHtpZDogJ2ZvZycsIHBvc3RSZW5kZXI6IGplc3QuZm4oKX07XG4gICAgICBtb2NrQ29tcHV0ZURlY2tFZmZlY3RzLm1vY2tSZXR1cm5WYWx1ZShbc2hhZG93RGVja0VmZmVjdCwgcG9zdFByb2Nlc3NFZmZlY3RdKTtcblxuICAgICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKHByb3BzV2l0aEVmZmVjdHMoW21vY2tFZmZlY3RdKSk7XG5cbiAgICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgY29uc3QgZWZmZWN0cyA9IHBhbmVsUHJvcHMuZGVja1Byb3BzLmVmZmVjdHM7XG5cbiAgICAgIGV4cGVjdChlZmZlY3RzLmxlbmd0aCkudG9CZSgyKTtcbiAgICAgIGV4cGVjdChlZmZlY3RzWzBdKS50b0JlKHNoYWRvd0RlY2tFZmZlY3QpO1xuICAgICAgZXhwZWN0KGVmZmVjdHNbMV0pLnRvQmUocG9zdFByb2Nlc3NFZmZlY3QpO1xuICAgICAgZXhwZWN0KGVmZmVjdHMuZXZlcnkoZSA9PiBlLmlkICE9PSAnc2hhZG93LWNvbXBvc2l0aW5nLWVmZmVjdCcpKS50b0JlKHRydWUpO1xuICAgIH0pO1xuXG4gICAgdGVzdCgnZG9lcyBub3QgYWRkIERlY2tTaGFkb3dDb21wb3NpdGluZ0VmZmVjdCB3aGVuIG5vIHNoYWRvdyBlZmZlY3QgZXhpc3RzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgbm9uU2hhZG93RWZmZWN0ID0ge2lkOiAnbGlnaHRpbmcnLCBzaGFkb3c6IGZhbHNlfTtcbiAgICAgIG1vY2tDb21wdXRlRGVja0VmZmVjdHMubW9ja1JldHVyblZhbHVlKFtub25TaGFkb3dFZmZlY3RdKTtcblxuICAgICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKHByb3BzV2l0aEVmZmVjdHMoW21vY2tFZmZlY3RdKSk7XG5cbiAgICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgY29uc3QgZWZmZWN0cyA9IHBhbmVsUHJvcHMuZGVja1Byb3BzLmVmZmVjdHM7XG5cbiAgICAgIGV4cGVjdChlZmZlY3RzLmxlbmd0aCkudG9CZSgxKTtcbiAgICAgIGV4cGVjdChlZmZlY3RzWzBdKS50b0JlKG5vblNoYWRvd0VmZmVjdCk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksT0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssYUFBQSxHQUFBTCxPQUFBO0FBa0RBLElBQUFNLGlCQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFQLE9BQUE7QUFBK0QsU0FBQVEsUUFBQUMsQ0FBQSxFQUFBQyxDQUFBLFFBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxJQUFBLENBQUFKLENBQUEsT0FBQUcsTUFBQSxDQUFBRSxxQkFBQSxRQUFBQyxDQUFBLEdBQUFILE1BQUEsQ0FBQUUscUJBQUEsQ0FBQUwsQ0FBQSxHQUFBQyxDQUFBLEtBQUFLLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFOLENBQUEsV0FBQUUsTUFBQSxDQUFBSyx3QkFBQSxDQUFBUixDQUFBLEVBQUFDLENBQUEsRUFBQVEsVUFBQSxPQUFBUCxDQUFBLENBQUFRLElBQUEsQ0FBQUMsS0FBQSxDQUFBVCxDQUFBLEVBQUFJLENBQUEsWUFBQUosQ0FBQTtBQUFBLFNBQUFVLGNBQUFaLENBQUEsYUFBQUMsQ0FBQSxNQUFBQSxDQUFBLEdBQUFZLFNBQUEsQ0FBQUMsTUFBQSxFQUFBYixDQUFBLFVBQUFDLENBQUEsV0FBQVcsU0FBQSxDQUFBWixDQUFBLElBQUFZLFNBQUEsQ0FBQVosQ0FBQSxRQUFBQSxDQUFBLE9BQUFGLE9BQUEsQ0FBQUksTUFBQSxDQUFBRCxDQUFBLE9BQUFhLE9BQUEsV0FBQWQsQ0FB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M0IsTUFBTSxDQUFDMEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNmLElBQUksQ0FBQzRHLGdCQUFnQixDQUFDO1lBQ3pDdkksTUFBTSxDQUFDMEMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUNmLElBQUksQ0FBQ2lILGlCQUFpQixDQUFDO1lBQzFDNUksTUFBTSxDQUFDMEMsT0FBTyxDQUFDcUcsS0FBSyxDQUFDLFVBQUFqUSxDQUFDO2NBQUEsT0FBSUEsQ0FBQyxDQUFDc0MsRUFBRSxLQUFLLDJCQUEyQjtZQUFBLEVBQUMsQ0FBQyxDQUFDdUcsSUFBSSxDQUFDLElBQUksQ0FBQztVQUFDO1VBQUE7WUFBQSxPQUFBbUgsVUFBQSxDQUFBM0ksSUFBQTtRQUFBO01BQUEsR0FBQXdJLFNBQUE7SUFBQSxDQUM3RSxHQUFDO0lBRUZuSSxJQUFJLENBQUMsdUVBQXVFLG1CQUFBckIsa0JBQUEsMkJBQUFDLFlBQUEsWUFBQUMsSUFBQSxDQUFFLFNBQUEySixVQUFBO01BQUEsSUFBQUMsZUFBQSxFQUFBM0gsVUFBQSxFQUFBb0IsT0FBQTtNQUFBLE9BQUF0RCxZQUFBLFlBQUFLLElBQUEsVUFBQXlKLFdBQUFDLFVBQUE7UUFBQSxrQkFBQUEsVUFBQSxDQUFBdkosSUFBQSxHQUFBdUosVUFBQSxDQUFBdEosSUFBQTtVQUFBO1lBQ3RFb0osZUFBZSxHQUFHO2NBQUM3TixFQUFFLEVBQUUsVUFBVTtjQUFFc04sTUFBTSxFQUFFO1lBQUssQ0FBQztZQUN2RDdOLHNCQUFzQixDQUFDMEYsZUFBZSxDQUFDLENBQUMwSSxlQUFlLENBQUMsQ0FBQztZQUFDRSxVQUFBLENBQUF0SixJQUFBO1lBQUEsT0FFcERaLHFCQUFxQixDQUFDbUosZ0JBQWdCLENBQUMsQ0FBQ0QsVUFBVSxDQUFDLENBQUMsQ0FBQztVQUFBO1lBRXJEN0csVUFBVSxHQUFHcEgsNkJBQTZCLENBQUNPLElBQUksQ0FBQ2dILEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0RpQixPQUFPLEdBQUdwQixVQUFVLENBQUNrQixTQUFTLENBQUNFLE9BQU87WUFFNUMxQyxNQUFNLENBQUMwQyxPQUFPLENBQUM5SSxNQUFNLENBQUMsQ0FBQytILElBQUksQ0FBQyxDQUFDLENBQUM7WUFDOUIzQixNQUFNLENBQUMwQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQ2YsSUFBSSxDQUFDc0gsZUFBZSxDQUFDO1VBQUM7VUFBQTtZQUFBLE9BQUFFLFVBQUEsQ0FBQWhKLElBQUE7UUFBQTtNQUFBLEdBQUE2SSxTQUFBO0lBQUEsQ0FDMUMsR0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
686
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZWRDb21wb25lbnRzIiwiX3JlYWN0SW50bCIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX2xvY2FsaXphdGlvbiIsIl9leHBvcnRWaWRlb01vZGFsIiwiX2VmZmVjdHMiLCJvd25LZXlzIiwiZSIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIm1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyIiwiamVzdCIsImZuIiwiY3JlYXRlRWxlbWVudCIsIk1vY2tLZXBsZXJVSUNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJtb2NrIiwiRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lciIsInByb3BzIiwiS2VwbGVyVUlDb250ZXh0IiwibW9ja0NvbXB1dGVEZWNrRWZmZWN0cyIsImFjdHVhbCIsInJlcXVpcmVBY3R1YWwiLCJjb21wdXRlRGVja0VmZmVjdHMiLCJwYXRjaERlY2tSZW5kZXJlckZvclBvc3RQcm9jZXNzaW5nIiwiRGVja1NoYWRvd0NvbXBvc2l0aW5nRWZmZWN0IiwibW9ja0ltcGxlbWVudGF0aW9uIiwiaWQiLCJwb3N0UmVuZGVyIiwiY2xlYW51cCIsImdldFN0YXRpY01hcFByb3BzIiwiX3N0YXRlIiwiX29uQ2hhbmdlIiwiX3Rva2VuIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIm1hcFN0eWxlIiwibWFwTGliIiwiUHJvbWlzZSIsInJlc29sdmUiLCJnZXRCZWZvcmVMYXllcklkIiwiZ2V0SHViYmxlRGVja0dsUHJvcHMiLCJwYXJhbWV0ZXJzIiwiYmxlbmQiLCJjb250cm9sbGVyIiwidmlld3MiLCJnZXRUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMiLCJnZXRBbmltYXRhYmxlRmlsdGVycyIsInJlbmRlcldpdGhUaGVtZUxvY2FsIiwiY29tcG9uZW50IiwicmVuZGVyIiwiVGhlbWVQcm92aWRlciIsInRoZW1lIiwiSW50bFByb3ZpZGVyIiwibG9jYWxlIiwibWVzc2FnZXMiLCJFeHBvcnRWaWRlb01vZGFsIiwiRXhwb3J0VmlkZW9Nb2RhbEZhY3RvcnkiLCJERUZBVUxUX1BST1BTIiwibWFwYm94QXBpVXJsIiwibWFwU3RhdGUiLCJ6b29tIiwic3R5bGVUeXBlIiwibWFwU3R5bGVzIiwiZGFyayIsImFjY2Vzc1Rva2VuIiwiYm90dG9tTWFwU3R5bGUiLCJ0b3BNYXBTdHlsZSIsInZpc1N0YXRlIiwiZmlsdGVycyIsImxheWVycyIsImxheWVyQmxlbmRpbmciLCJsYXllck9yZGVyIiwiZXhwb3J0VmlkZW8iLCJtZWRpYVR5cGUiLCJjYW1lcmFQcmVzZXQiLCJmaWxlTmFtZSIsInJlc29sdXRpb24iLCJkdXJhdGlvbk1zIiwiY29udGFpbmVyVyIsInZpc1N0YXRlQWN0aW9ucyIsInNldEZpbHRlckFuaW1hdGlvblRpbWUiLCJzZXRMYXllckFuaW1hdGlvblRpbWUiLCJ1aVN0YXRlQWN0aW9ucyIsInNldEV4cG9ydFZpZGVvU2V0dGluZyIsIm9uQ2xvc2UiLCJyZW5kZXJBbmRXYWl0Rm9yUGFuZWwiLCJfcmVuZGVyQW5kV2FpdEZvclBhbmVsIiwiX2FzeW5jVG9HZW5lcmF0b3IyIiwiX3JlZ2VuZXJhdG9yIiwibWFyayIsIl9jYWxsZWUyMCIsInJlc3VsdCIsIl9hcmdzMjAiLCJ3cmFwIiwiX2NhbGxlZTIwJCIsIl9jb250ZXh0MjAiLCJwcmV2IiwibmV4dCIsInVuZGVmaW5lZCIsIndhaXRGb3IiLCJleHBlY3QiLCJ0b0hhdmVCZWVuQ2FsbGVkIiwiYWJydXB0Iiwic3RvcCIsImRlc2NyaWJlIiwiYmVmb3JlRWFjaCIsImNsZWFyQWxsTW9ja3MiLCJtb2NrUmV0dXJuVmFsdWUiLCJ0ZXN0IiwiX2NhbGxlZSIsIl95aWVsZCRyZW5kZXJBbmRXYWl0RiIsImNvbnRhaW5lciIsIl9jYWxsZWUkIiwiX2NvbnRleHQiLCJzZW50IiwicXVlcnlTZWxlY3RvciIsInRvQmVJblRoZURvY3VtZW50IiwiX2NhbGxlZTIiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJ0b0hhdmVCZWVuQ2FsbGVkVGltZXMiLCJfY2FsbGVlMyIsInBhbmVsUHJvcHMiLCJfY2FsbGVlMyQiLCJfY29udGV4dDMiLCJjYWxscyIsImhlYWRlciIsInRvQmUiLCJkaXNhYmxlQmFzZU1hcCIsImRlZmF1bHRGaWxlTmFtZSIsImV4cG9ydFZpZGVvV2lkdGgiLCJ0b0JlTGVzc1RoYW5PckVxdWFsIiwidG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCIsImhhbmRsZUNsb3NlIiwiaW5pdGlhbFN0YXRlIiwidG9FcXVhbCIsIm1hcERhdGEiLCJfY2FsbGVlNCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsImRlY2tQcm9wcyIsIl9pc0V4cG9ydCIsImVmZmVjdHMiLCJfY2FsbGVlNSIsIl9jYWxsZWU1JCIsIl9jb250ZXh0NSIsIm1hcFByb3BzIiwidG9CZURlZmluZWQiLCJfY2FsbGVlNiIsIl9jYWxsZWU2JCIsIl9jb250ZXh0NiIsImFuaW1hdGFibGVGaWx0ZXJzIiwiX2NhbGxlZTciLCJfY2FsbGVlNyQiLCJfY29udGV4dDciLCJfdHlwZW9mMiIsIl9jYWxsZWU4IiwiX2NhbGxlZTgkIiwiX2NvbnRleHQ4Iiwib25GaWx0ZXJGcmFtZVVwZGF0ZSIsInRvSGF2ZUJlZW5DYWxsZWRXaXRoIiwiX2NhbGxlZTkiLCJfY2FsbGVlOSQiLCJfY29udGV4dDkiLCJvblRyaXBGcmFtZVVwZGF0ZSIsIk5PX01BUF9QUk9QUyIsIm5vX21hcCIsImxhYmVsIiwiaWNvbiIsImxheWVyR3JvdXBzIiwiY29sb3JNb2RlIiwic3R5bGUiLCJ2ZXJzaW9uIiwic291cmNlcyIsIl9jYWxsZWUxMCIsIl95aWVsZCRyZW5kZXJBbmRXYWl0RjIiLCJfY2FsbGVlMTAkIiwiX2NvbnRleHQxMCIsIl9jYWxsZWUxMSIsIm5vTWFwRW50cnkiLCJlbmNvZGVkIiwiZGVjb2RlZCIsIl9jYWxsZWUxMSQiLCJfY29udGV4dDExIiwidXJsIiwidG9NYXRjaCIsInJlcGxhY2UiLCJKU09OIiwicGFyc2UiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfY2FsbGVlMTIiLCJwcm9wc1dpdGhVcmwiLCJfY2FsbGVlMTIkIiwiX2NvbnRleHQxMiIsIm1ha2VGb2dEZWNrRWZmZWN0IiwiZWZmZWN0IiwiaGVpZ2h0Iiwic2V0UHJvcHMiLCJuZXdQcm9wcyIsImFzc2lnbiIsIm1ha2VTdXJmYWNlRm9nRWZmZWN0IiwiZGVja0VmZmVjdCIsIm92ZXJyaWRlcyIsInR5cGUiLCJpc0VuYWJsZWQiLCJhbmltYXRlSGVpZ2h0IiwiaGVpZ2h0RW5kIiwibGluZWFyRWFzaW5nIiwiY2xvbmUiLCJwcm9wc1dpdGhGb2dFZmZlY3QiLCJmb2dFZmZlY3QiLCJlZmZlY3RPcmRlciIsIl9jYWxsZWUxMyIsIm9yaWdpbmFsUG9zdFJlbmRlciIsIl9jYWxsZWUxMyQiLCJfY29udGV4dDEzIiwibm90IiwiX2NhbGxlZTE0IiwiX2NhbGxlZTE0JCIsIl9jb250ZXh0MTQiLCJjYWxsIiwiX2NhbGxlZTE1IiwiX2NhbGxlZTE1JCIsIl9jb250ZXh0MTUiLCJfY2FsbGVlMTYiLCJfeWllbGQkcmVuZGVyQW5kV2FpdEYzIiwidW5tb3VudCIsInBhdGNoZWRQb3N0UmVuZGVyIiwiX2NhbGxlZTE2JCIsIl9jb250ZXh0MTYiLCJiaW5kIiwibW9ja0VmZmVjdCIsInByb3BzV2l0aEVmZmVjdHMiLCJtYXAiLCJfY2FsbGVlMTciLCJzaGFkb3dEZWNrRWZmZWN0IiwiX2NhbGxlZTE3JCIsIl9jb250ZXh0MTciLCJzaGFkb3ciLCJfY2FsbGVlMTgiLCJwb3N0UHJvY2Vzc0VmZmVjdCIsIl9jYWxsZWUxOCQiLCJfY29udGV4dDE4IiwiZXZlcnkiLCJfY2FsbGVlMTkiLCJub25TaGFkb3dFZmZlY3QiLCJfY2FsbGVlMTkkIiwiX2NvbnRleHQxOSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvZXhwb3J0LXZpZGVvLW1vZGFsLnNwZWMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIEB0cy1ub2NoZWNrXG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtUaGVtZVByb3ZpZGVyfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge0ludGxQcm92aWRlcn0gZnJvbSAncmVhY3QtaW50bCc7XG5pbXBvcnQge3JlbmRlciwgd2FpdEZvcn0gZnJvbSAnQHRlc3RpbmctbGlicmFyeS9yZWFjdCc7XG5pbXBvcnQge3RoZW1lfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5pbXBvcnQge21lc3NhZ2VzfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5cbmNvbnN0IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyID0gamVzdC5mbigoKSA9PiAoXG4gIDxkaXYgZGF0YS10ZXN0aWQ9XCJleHBvcnQtdmlkZW8tcGFuZWxcIj5Nb2NrIFBhbmVsPC9kaXY+XG4pKTtcbmNvbnN0IE1vY2tLZXBsZXJVSUNvbnRleHQgPSBSZWFjdC5jcmVhdGVDb250ZXh0KG51bGwpO1xuXG5qZXN0Lm1vY2soJ0BodWJibGUuZ2wvcmVhY3QnLCAoKSA9PiAoe1xuICBFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyOiBwcm9wcyA9PiBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lcihwcm9wcyksXG4gIEtlcGxlclVJQ29udGV4dDogTW9ja0tlcGxlclVJQ29udGV4dFxufSkpO1xuXG5jb25zdCBtb2NrQ29tcHV0ZURlY2tFZmZlY3RzID0gamVzdC5mbigoKSA9PiBbXSk7XG5cbmplc3QubW9jaygnQGtlcGxlci5nbC91dGlscycsICgpID0+IHtcbiAgY29uc3QgYWN0dWFsID0gamVzdC5yZXF1aXJlQWN0dWFsKCdAa2VwbGVyLmdsL3V0aWxzJyk7XG4gIHJldHVybiB7XG4gICAgLi4uYWN0dWFsLFxuICAgIGNvbXB1dGVEZWNrRWZmZWN0czogKC4uLmFyZ3MpID0+IG1vY2tDb21wdXRlRGVja0VmZmVjdHMoLi4uYXJncyksXG4gICAgcGF0Y2hEZWNrUmVuZGVyZXJGb3JQb3N0UHJvY2Vzc2luZzogamVzdC5mbigpXG4gIH07XG59KTtcblxuamVzdC5tb2NrKCdAa2VwbGVyLmdsL2VmZmVjdHMnLCAoKSA9PiAoe1xuICBEZWNrU2hhZG93Q29tcG9zaXRpbmdFZmZlY3Q6IGplc3QuZm4oKS5tb2NrSW1wbGVtZW50YXRpb24oKCkgPT4gKHtcbiAgICBpZDogJ3NoYWRvdy1jb21wb3NpdGluZy1lZmZlY3QnLFxuICAgIHBvc3RSZW5kZXI6IGplc3QuZm4oKSxcbiAgICBjbGVhbnVwOiBqZXN0LmZuKClcbiAgfSkpXG59KSk7XG5cbmplc3QubW9jaygnLi9odWJibGUtdXRpbHMnLCAoKSA9PiAoe1xuICBnZXRTdGF0aWNNYXBQcm9wczogamVzdC5mbigoX3N0YXRlLCBfb25DaGFuZ2UsIF90b2tlbikgPT4gKHtcbiAgICBsYXRpdHVkZTogMzcuNyxcbiAgICBsb25naXR1ZGU6IC0xMjIuNCxcbiAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW46ICdzdHlsZS10b2tlbicsXG4gICAgbWFwU3R5bGU6IHtpZDogJ2Rhcmstc3R5bGUnfSxcbiAgICBtYXBMaWI6IFByb21pc2UucmVzb2x2ZSh7fSlcbiAgfSkpLFxuICBnZXRCZWZvcmVMYXllcklkOiBqZXN0LmZuKCgpID0+IG51bGwpLFxuICBnZXRIdWJibGVEZWNrR2xQcm9wczogamVzdC5mbigoKSA9PiAoe1xuICAgIHBhcmFtZXRlcnM6IHtibGVuZDogdHJ1ZX0sXG4gICAgY29udHJvbGxlcjogdHJ1ZSxcbiAgICB2aWV3czoge31cbiAgfSkpLFxuICBnZXRUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXM6IGplc3QuZm4oKSxcbiAgZ2V0QW5pbWF0YWJsZUZpbHRlcnM6IGplc3QuZm4oKCkgPT4gW10pXG59KSk7XG5cbmltcG9ydCBFeHBvcnRWaWRlb01vZGFsRmFjdG9yeSBmcm9tICcuL2V4cG9ydC12aWRlby1tb2RhbCc7XG5pbXBvcnQge0RlY2tTaGFkb3dDb21wb3NpdGluZ0VmZmVjdH0gZnJvbSAnQGtlcGxlci5nbC9lZmZlY3RzJztcblxuZnVuY3Rpb24gcmVuZGVyV2l0aFRoZW1lTG9jYWwoY29tcG9uZW50KSB7XG4gIHJldHVybiByZW5kZXIoXG4gICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lfT5cbiAgICAgIDxJbnRsUHJvdmlkZXIgbG9jYWxlPVwiZW5cIiBtZXNzYWdlcz17bWVzc2FnZXN9PlxuICAgICAgICB7Y29tcG9uZW50fVxuICAgICAgPC9JbnRsUHJvdmlkZXI+XG4gICAgPC9UaGVtZVByb3ZpZGVyPlxuICApO1xufVxuXG5jb25zdCBFeHBvcnRWaWRlb01vZGFsID0gRXhwb3J0VmlkZW9Nb2RhbEZhY3RvcnkoKTtcblxuY29uc3QgREVGQVVMVF9QUk9QUyA9IHtcbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46ICd0ZXN0LXRva2VuJyxcbiAgbWFwYm94QXBpVXJsOiAnaHR0cHM6Ly9hcGkubWFwYm94LmNvbScsXG4gIG1hcFN0YXRlOiB7bGF0aXR1ZGU6IDM3LjcsIGxvbmdpdHVkZTogLTEyMi40LCB6b29tOiAxMH0sXG4gIG1hcFN0eWxlOiB7XG4gICAgc3R5bGVUeXBlOiAnZGFyaycsXG4gICAgbWFwU3R5bGVzOiB7ZGFyazoge2FjY2Vzc1Rva2VuOiAnc3R5bGUtdG9rZW4nfX0sXG4gICAgYm90dG9tTWFwU3R5bGU6IHtpZDogJ2Rhcmstc3R5bGUnfSxcbiAgICB0b3BNYXBTdHlsZTogbnVsbFxuICB9LFxuICB2aXNTdGF0ZToge1xuICAgIGZpbHRlcnM6IFtdLFxuICAgIGxheWVyczogW10sXG4gICAgbGF5ZXJCbGVuZGluZzogJ25vcm1hbCcsXG4gICAgbGF5ZXJPcmRlcjogW11cbiAgfSxcbiAgZXhwb3J0VmlkZW86IHtcbiAgICBtZWRpYVR5cGU6ICd3ZWJtJyxcbiAgICBjYW1lcmFQcmVzZXQ6ICdOb25lJyxcbiAgICBmaWxlTmFtZTogJ2tlcGxlci5nbCcsXG4gICAgcmVzb2x1dGlvbjogJzEyODB4NzIwJyxcbiAgICBkdXJhdGlvbk1zOiAxMDAwXG4gIH0sXG4gIGNvbnRhaW5lclc6IDgwMCxcbiAgdmlzU3RhdGVBY3Rpb25zOiB7XG4gICAgc2V0RmlsdGVyQW5pbWF0aW9uVGltZTogamVzdC5mbigpLFxuICAgIHNldExheWVyQW5pbWF0aW9uVGltZTogamVzdC5mbigpXG4gIH0sXG4gIHVpU3RhdGVBY3Rpb25zOiB7XG4gICAgc2V0RXhwb3J0VmlkZW9TZXR0aW5nOiBqZXN0LmZuKClcbiAgfSxcbiAgb25DbG9zZTogamVzdC5mbigpXG59O1xuXG5hc3luYyBmdW5jdGlvbiByZW5kZXJBbmRXYWl0Rm9yUGFuZWwocHJvcHMgPSBERUZBVUxUX1BST1BTKSB7XG4gIGNvbnN0IHJlc3VsdCA9IHJlbmRlcldpdGhUaGVtZUxvY2FsKDxFeHBvcnRWaWRlb01vZGFsIHsuLi5wcm9wc30gLz4pO1xuICBhd2FpdCB3YWl0Rm9yKCgpID0+IHtcbiAgICBleHBlY3QobW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmRlc2NyaWJlKCdFeHBvcnRWaWRlb01vZGFsJywgKCkgPT4ge1xuICBiZWZvcmVFYWNoKCgpID0+IHtcbiAgICBqZXN0LmNsZWFyQWxsTW9ja3MoKTtcbiAgICBtb2NrQ29tcHV0ZURlY2tFZmZlY3RzLm1vY2tSZXR1cm5WYWx1ZShbXSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3JlbmRlcnMgd2l0aG91dCBjcmFzaGluZycsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCB7Y29udGFpbmVyfSA9IGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbCgpO1xuICAgIGV4cGVjdChjb250YWluZXIucXVlcnlTZWxlY3RvcignLmV4cG9ydC12aWRlby1tb2RhbCcpKS50b0JlSW5UaGVEb2N1bWVudCgpO1xuICB9KTtcblxuICB0ZXN0KCdwcm92aWRlcyBLZXBsZXJVSSBjb250ZXh0IHdpdGggZXhwZWN0ZWQgY29tcG9uZW50cycsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwoKTtcbiAgICBleHBlY3QobW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIpLnRvSGF2ZUJlZW5DYWxsZWRUaW1lcygxKTtcbiAgfSk7XG5cbiAgdGVzdCgncGFzc2VzIGNvcnJlY3QgcHJvcHMgdG8gRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lcicsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwoKTtcblxuICAgIGV4cGVjdChtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lcikudG9IYXZlQmVlbkNhbGxlZFRpbWVzKDEpO1xuICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuXG4gICAgZXhwZWN0KHBhbmVsUHJvcHMuaGVhZGVyKS50b0JlKGZhbHNlKTtcbiAgICBleHBlY3QocGFuZWxQcm9wcy5kaXNhYmxlQmFzZU1hcCkudG9CZShmYWxzZSk7XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMuZGVmYXVsdEZpbGVOYW1lKS50b0JlKCdrZXBsZXIuZ2wnKTtcbiAgICBleHBlY3QocGFuZWxQcm9wcy5leHBvcnRWaWRlb1dpZHRoKS50b0JlTGVzc1RoYW5PckVxdWFsKDU0MCk7XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMuZXhwb3J0VmlkZW9XaWR0aCkudG9CZUdyZWF0ZXJUaGFuT3JFcXVhbCgzMjApO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLmhhbmRsZUNsb3NlKS50b0JlKERFRkFVTFRfUFJPUFMub25DbG9zZSk7XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMuaW5pdGlhbFN0YXRlKS50b0VxdWFsKERFRkFVTFRfUFJPUFMuZXhwb3J0VmlkZW8pO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLm1hcERhdGEpLnRvRXF1YWwoe1xuICAgICAgdmlzU3RhdGU6IERFRkFVTFRfUFJPUFMudmlzU3RhdGUsXG4gICAgICBtYXBTdGF0ZTogREVGQVVMVF9QUk9QUy5tYXBTdGF0ZSxcbiAgICAgIG1hcFN0eWxlOiBERUZBVUxUX1BST1BTLm1hcFN0eWxlXG4gICAgfSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3Bhc3NlcyBkZWNrUHJvcHMgZnJvbSBnZXRIdWJibGVEZWNrR2xQcm9wcycsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwoKTtcblxuICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLmRlY2tQcm9wcykudG9FcXVhbCh7XG4gICAgICBwYXJhbWV0ZXJzOiB7YmxlbmQ6IHRydWV9LFxuICAgICAgY29udHJvbGxlcjogdHJ1ZSxcbiAgICAgIHZpZXdzOiB7fSxcbiAgICAgIF9pc0V4cG9ydDogdHJ1ZSxcbiAgICAgIGVmZmVjdHM6IFtdXG4gICAgfSk7XG4gIH0pO1xuXG4gIHRlc3QoJ3Bhc3NlcyBtYXBQcm9wcyBmcm9tIGdldFN0YXRpY01hcFByb3BzJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbCgpO1xuXG4gICAgY29uc3QgcGFuZWxQcm9wcyA9IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyLm1vY2suY2FsbHNbMF1bMF07XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMubWFwUHJvcHMubGF0aXR1ZGUpLnRvQmUoMzcuNyk7XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMubWFwUHJvcHMubG9uZ2l0dWRlKS50b0JlKC0xMjIuNCk7XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMubWFwUHJvcHMucHJlc2VydmVEcmF3aW5nQnVmZmVyKS50b0JlKHRydWUpO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLm1hcFByb3BzLm1hcGJveEFwaUFjY2Vzc1Rva2VuKS50b0JlKCdzdHlsZS10b2tlbicpO1xuICAgIGV4cGVjdChwYW5lbFByb3BzLm1hcFByb3BzLm1hcFN0eWxlKS50b0VxdWFsKHtpZDogJ2Rhcmstc3R5bGUnfSk7XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMubWFwUHJvcHMubWFwTGliKS50b0JlRGVmaW5lZCgpO1xuICB9KTtcblxuICB0ZXN0KCdwYXNzZXMgZW1wdHkgYW5pbWF0YWJsZUZpbHRlcnMgd2hlbiBubyBtYXRjaGluZyBmaWx0ZXJzJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbCgpO1xuXG4gICAgY29uc3QgcGFuZWxQcm9wcyA9IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyLm1vY2suY2FsbHNbMF1bMF07XG4gICAgZXhwZWN0KHBhbmVsUHJvcHMuYW5pbWF0YWJsZUZpbHRlcnMpLnRvRXF1YWwoW10pO1xuICB9KTtcblxuICB0ZXN0KCdwcm92aWRlcyBnZXRUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMgY2FsbGJhY2snLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKCk7XG5cbiAgICBjb25zdCBwYW5lbFByb3BzID0gbW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIubW9jay5jYWxsc1swXVswXTtcbiAgICBleHBlY3QodHlwZW9mIHBhbmVsUHJvcHMuZ2V0VGltZVJhbmdlRmlsdGVyS2V5ZnJhbWVzKS50b0JlKCdmdW5jdGlvbicpO1xuICB9KTtcblxuICB0ZXN0KCdwcm92aWRlcyBvbkZpbHRlckZyYW1lVXBkYXRlIHRoYXQgY2FsbHMgdmlzU3RhdGVBY3Rpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbCgpO1xuXG4gICAgY29uc3QgcGFuZWxQcm9wcyA9IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyLm1vY2suY2FsbHNbMF1bMF07XG4gICAgcGFuZWxQcm9wcy5vbkZpbHRlckZyYW1lVXBkYXRlKDAsICd2YWx1ZScsIFsxMDAsIDIwMF0pO1xuICAgIGV4cGVjdChERUZBVUxUX1BST1BTLnZpc1N0YXRlQWN0aW9ucy5zZXRGaWx0ZXJBbmltYXRpb25UaW1lKS50b0hhdmVCZWVuQ2FsbGVkV2l0aChcbiAgICAgIDAsXG4gICAgICAndmFsdWUnLFxuICAgICAgWzEwMCwgMjAwXVxuICAgICk7XG4gIH0pO1xuXG4gIHRlc3QoJ3Byb3ZpZGVzIG9uVHJpcEZyYW1lVXBkYXRlIHRoYXQgY2FsbHMgdmlzU3RhdGVBY3Rpb25zJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbCgpO1xuXG4gICAgY29uc3QgcGFuZWxQcm9wcyA9IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyLm1vY2suY2FsbHNbMF1bMF07XG4gICAgcGFuZWxQcm9wcy5vblRyaXBGcmFtZVVwZGF0ZSg0Mik7XG4gICAgZXhwZWN0KERFRkFVTFRfUFJPUFMudmlzU3RhdGVBY3Rpb25zLnNldExheWVyQW5pbWF0aW9uVGltZSkudG9IYXZlQmVlbkNhbGxlZFdpdGgoNDIpO1xuICB9KTtcblxuICBkZXNjcmliZSgnTk9fTUFQX0lEIGhhbmRsaW5nJywgKCkgPT4ge1xuICAgIGNvbnN0IE5PX01BUF9QUk9QUyA9IHtcbiAgICAgIC4uLkRFRkFVTFRfUFJPUFMsXG4gICAgICBtYXBTdHlsZToge1xuICAgICAgICBzdHlsZVR5cGU6ICdub19tYXAnLFxuICAgICAgICBtYXBTdHlsZXM6IHtcbiAgICAgICAgICBub19tYXA6IHtcbiAgICAgICAgICAgIGlkOiAnbm9fbWFwJyxcbiAgICAgICAgICAgIGxhYmVsOiAnTm8gQmFzZW1hcCcsXG4gICAgICAgICAgICAvLyB1cmwgaXMgaW50ZW50aW9uYWxseSBtaXNzaW5nIHRvIGV4ZXJjaXNlIHRoZSBkYXRhLVVSSSBwYXRjaFxuICAgICAgICAgICAgaWNvbjogJycsXG4gICAgICAgICAgICBsYXllckdyb3VwczogW10sXG4gICAgICAgICAgICBjb2xvck1vZGU6ICdOT05FJyxcbiAgICAgICAgICAgIHN0eWxlOiB7dmVyc2lvbjogOCwgc291cmNlczoge30sIGxheWVyczogW119XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBib3R0b21NYXBTdHlsZTogbnVsbCxcbiAgICAgICAgdG9wTWFwU3R5bGU6IG51bGxcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgdGVzdCgncmVuZGVycyB3aXRob3V0IGNyYXNoaW5nIHdoZW4gc3R5bGVUeXBlIGlzIE5PX01BUF9JRCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHtjb250YWluZXJ9ID0gYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKE5PX01BUF9QUk9QUyk7XG4gICAgICBleHBlY3QoY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJy5leHBvcnQtdmlkZW8tbW9kYWwnKSkudG9CZUluVGhlRG9jdW1lbnQoKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2luamVjdHMgZGF0YS1VUkkgZW1wdHkgc3R5bGUgVVJMIGludG8gbWFwRGF0YSB3aGVuIE5PX01BUF9JRCBlbnRyeSBoYXMgbm8gdXJsJywgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKE5PX01BUF9QUk9QUyk7XG5cbiAgICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgY29uc3Qgbm9NYXBFbnRyeSA9IHBhbmVsUHJvcHMubWFwRGF0YS5tYXBTdHlsZS5tYXBTdHlsZXMubm9fbWFwO1xuXG4gICAgICBleHBlY3Qobm9NYXBFbnRyeS51cmwpLnRvQmVEZWZpbmVkKCk7XG4gICAgICBleHBlY3Qobm9NYXBFbnRyeS51cmwpLnRvTWF0Y2goL15kYXRhOmFwcGxpY2F0aW9uXFwvanNvbiwvKTtcblxuICAgICAgY29uc3QgZW5jb2RlZCA9IG5vTWFwRW50cnkudXJsLnJlcGxhY2UoJ2RhdGE6YXBwbGljYXRpb24vanNvbiwnLCAnJyk7XG4gICAgICBjb25zdCBkZWNvZGVkID0gSlNPTi5wYXJzZShkZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZCkpO1xuICAgICAgZXhwZWN0KGRlY29kZWQpLnRvRXF1YWwoe3ZlcnNpb246IDgsIHNvdXJjZXM6IHt9LCBsYXllcnM6IFtdfSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdwcmVzZXJ2ZXMgb3JpZ2luYWwgbWFwU3R5bGUgd2hlbiBOT19NQVBfSUQgZW50cnkgYWxyZWFkeSBoYXMgYSB1cmwnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBwcm9wc1dpdGhVcmwgPSB7XG4gICAgICAgIC4uLkRFRkFVTFRfUFJPUFMsXG4gICAgICAgIG1hcFN0eWxlOiB7XG4gICAgICAgICAgc3R5bGVUeXBlOiAnbm9fbWFwJyxcbiAgICAgICAgICBtYXBTdHlsZXM6IHtcbiAgICAgICAgICAgIG5vX21hcDoge1xuICAgICAgICAgICAgICBpZDogJ25vX21hcCcsXG4gICAgICAgICAgICAgIHVybDogJ2h0dHBzOi8vZXhpc3Rpbmctc3R5bGUuanNvbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIGJvdHRvbU1hcFN0eWxlOiBudWxsLFxuICAgICAgICAgIHRvcE1hcFN0eWxlOiBudWxsXG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbChwcm9wc1dpdGhVcmwpO1xuXG4gICAgICBjb25zdCBwYW5lbFByb3BzID0gbW9ja0V4cG9ydFZpZGVvUGFuZWxDb250YWluZXIubW9jay5jYWxsc1swXVswXTtcbiAgICAgIGV4cGVjdChwYW5lbFByb3BzLm1hcERhdGEubWFwU3R5bGUpLnRvQmUocHJvcHNXaXRoVXJsLm1hcFN0eWxlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ3N1cmZhY2UgZm9nIGhlaWdodCBhbmltYXRpb24nLCAoKSA9PiB7XG4gICAgZnVuY3Rpb24gbWFrZUZvZ0RlY2tFZmZlY3QoKSB7XG4gICAgICBjb25zdCBlZmZlY3QgPSB7XG4gICAgICAgIGlkOiAnc3VyZmFjZS1mb2ctZGVjaycsXG4gICAgICAgIHByb3BzOiB7aGVpZ2h0OiA1MH0sXG4gICAgICAgIHBvc3RSZW5kZXI6IGplc3QuZm4oKSxcbiAgICAgICAgc2V0UHJvcHM6IGplc3QuZm4oZnVuY3Rpb24gKG5ld1Byb3BzKSB7XG4gICAgICAgICAgT2JqZWN0LmFzc2lnbihlZmZlY3QucHJvcHMsIG5ld1Byb3BzKTtcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgICByZXR1cm4gZWZmZWN0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VTdXJmYWNlRm9nRWZmZWN0KGRlY2tFZmZlY3QsIG92ZXJyaWRlcyA9IHt9KSB7XG4gICAgICBjb25zdCBlZmZlY3QgPSB7XG4gICAgICAgIGlkOiAnZm9nLTEnLFxuICAgICAgICB0eXBlOiAnc3VyZmFjZUZvZycsXG4gICAgICAgIGlzRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIGhlaWdodDogNTAsXG4gICAgICAgICAgYW5pbWF0ZUhlaWdodDogdHJ1ZSxcbiAgICAgICAgICBoZWlnaHRFbmQ6IDIwMCxcbiAgICAgICAgICBsaW5lYXJFYXNpbmc6IGZhbHNlLFxuICAgICAgICAgIC4uLm92ZXJyaWRlc1xuICAgICAgICB9LFxuICAgICAgICBkZWNrRWZmZWN0LFxuICAgICAgICBjbG9uZTogamVzdC5mbigpXG4gICAgICB9O1xuICAgICAgLy8gY2xvbmUgcmV0dXJucyBhIGZyZXNoIHJlZmVyZW5jZSB0aGF0IHN0aWxsIHBvaW50cyB0byB0aGUgc2FtZSBkZWNrRWZmZWN0XG4gICAgICBlZmZlY3QuY2xvbmUubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+ICh7Li4uZWZmZWN0LCBjbG9uZTogZWZmZWN0LmNsb25lfSkpO1xuICAgICAgcmV0dXJuIGVmZmVjdDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcm9wc1dpdGhGb2dFZmZlY3QoZm9nRWZmZWN0KSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5ERUZBVUxUX1BST1BTLFxuICAgICAgICB2aXNTdGF0ZToge1xuICAgICAgICAgIC4uLkRFRkFVTFRfUFJPUFMudmlzU3RhdGUsXG4gICAgICAgICAgZWZmZWN0czogW2ZvZ0VmZmVjdF0sXG4gICAgICAgICAgZWZmZWN0T3JkZXI6IFtmb2dFZmZlY3QuaWRdXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuXG4gICAgdGVzdCgncGF0Y2hlcyBkZWNrRWZmZWN0LnBvc3RSZW5kZXIgd2hlbiBhbmltYXRlSGVpZ2h0IGlzIGVuYWJsZWQnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBkZWNrRWZmZWN0ID0gbWFrZUZvZ0RlY2tFZmZlY3QoKTtcbiAgICAgIGNvbnN0IG9yaWdpbmFsUG9zdFJlbmRlciA9IGRlY2tFZmZlY3QucG9zdFJlbmRlcjtcbiAgICAgIGNvbnN0IGZvZ0VmZmVjdCA9IG1ha2VTdXJmYWNlRm9nRWZmZWN0KGRlY2tFZmZlY3QpO1xuICAgICAgbW9ja0NvbXB1dGVEZWNrRWZmZWN0cy5tb2NrUmV0dXJuVmFsdWUoW2RlY2tFZmZlY3RdKTtcblxuICAgICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKHByb3BzV2l0aEZvZ0VmZmVjdChmb2dFZmZlY3QpKTtcblxuICAgICAgZXhwZWN0KGRlY2tFZmZlY3QucG9zdFJlbmRlcikubm90LnRvQmUob3JpZ2luYWxQb3N0UmVuZGVyKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3Jlc3RvcmVzIG9yaWdpbmFsIGhlaWdodCB3aGVuIGh1YmJsZSBpcyBub3QgcGxheWluZycsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlY2tFZmZlY3QgPSBtYWtlRm9nRGVja0VmZmVjdCgpO1xuICAgICAgZGVja0VmZmVjdC5wcm9wcy5oZWlnaHQgPSA3NTtcbiAgICAgIGNvbnN0IGZvZ0VmZmVjdCA9IG1ha2VTdXJmYWNlRm9nRWZmZWN0KGRlY2tFZmZlY3QsIHtoZWlnaHQ6IDc1fSk7XG4gICAgICBtb2NrQ29tcHV0ZURlY2tFZmZlY3RzLm1vY2tSZXR1cm5WYWx1ZShbZGVja0VmZmVjdF0pO1xuXG4gICAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwocHJvcHNXaXRoRm9nRWZmZWN0KGZvZ0VmZmVjdCkpO1xuXG4gICAgICAvLyBDYWxsIHRoZSBwYXRjaGVkIHBvc3RSZW5kZXIgd2l0aG91dCBodWJibGUgcGxheWluZ1xuICAgICAgZGVja0VmZmVjdC5wb3N0UmVuZGVyLmNhbGwoZGVja0VmZmVjdCwge30pO1xuXG4gICAgICAvLyBOb3QgcGxheWluZyDihpIgaGVpZ2h0IHJlc2V0cyB0byBvcmlnaW5hbEhlaWdodFxuICAgICAgZXhwZWN0KGRlY2tFZmZlY3QucHJvcHMuaGVpZ2h0KS50b0JlKDc1KTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2RvZXMgbm90IG11dGF0ZSBoZWlnaHQgd2hlbiBhbmltYXRlSGVpZ2h0IGlzIGRpc2FibGVkJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgZGVja0VmZmVjdCA9IG1ha2VGb2dEZWNrRWZmZWN0KCk7XG4gICAgICBjb25zdCBmb2dFZmZlY3QgPSBtYWtlU3VyZmFjZUZvZ0VmZmVjdChkZWNrRWZmZWN0LCB7YW5pbWF0ZUhlaWdodDogZmFsc2V9KTtcbiAgICAgIG1vY2tDb21wdXRlRGVja0VmZmVjdHMubW9ja1JldHVyblZhbHVlKFtkZWNrRWZmZWN0XSk7XG5cbiAgICAgIGF3YWl0IHJlbmRlckFuZFdhaXRGb3JQYW5lbChwcm9wc1dpdGhGb2dFZmZlY3QoZm9nRWZmZWN0KSk7XG5cbiAgICAgIGRlY2tFZmZlY3QucHJvcHMuaGVpZ2h0ID0gNDI7XG4gICAgICBkZWNrRWZmZWN0LnBvc3RSZW5kZXIuY2FsbChkZWNrRWZmZWN0LCB7fSk7XG5cbiAgICAgIC8vIHJlZi5hY3RpdmUgaXMgZmFsc2Ugc28gaGVpZ2h0IHNob3VsZCBub3QgYmUgdG91Y2hlZFxuICAgICAgZXhwZWN0KGRlY2tFZmZlY3QucHJvcHMuaGVpZ2h0KS50b0JlKDQyKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ3Jlc3RvcmVzIG9yaWdpbmFsIHBvc3RSZW5kZXIgb24gdW5tb3VudCcsIGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGRlY2tFZmZlY3QgPSBtYWtlRm9nRGVja0VmZmVjdCgpO1xuICAgICAgY29uc3QgZm9nRWZmZWN0ID0gbWFrZVN1cmZhY2VGb2dFZmZlY3QoZGVja0VmZmVjdCk7XG4gICAgICBtb2NrQ29tcHV0ZURlY2tFZmZlY3RzLm1vY2tSZXR1cm5WYWx1ZShbZGVja0VmZmVjdF0pO1xuXG4gICAgICBjb25zdCB7dW5tb3VudH0gPSBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwocHJvcHNXaXRoRm9nRWZmZWN0KGZvZ0VmZmVjdCkpO1xuXG4gICAgICAvLyBwb3N0UmVuZGVyIHdhcyBwYXRjaGVkICh0aGUgd3JhcHBlciBmdW5jdGlvbiBkcml2ZXMgYW5pbWF0aW9uKVxuICAgICAgY29uc3QgcGF0Y2hlZFBvc3RSZW5kZXIgPSBkZWNrRWZmZWN0LnBvc3RSZW5kZXI7XG4gICAgICAvLyBWZXJpZnkgaXQncyBub3QgdGhlIG9yaWdpbmFsIG1vY2sgKGNvbXBvbmVudCBiaW5kcyBhbmQgd3JhcHMgaXQpXG4gICAgICBleHBlY3QocGF0Y2hlZFBvc3RSZW5kZXIpLm5vdC50b0JlKGRlY2tFZmZlY3QucG9zdFJlbmRlci5iaW5kKGRlY2tFZmZlY3QpKTtcblxuICAgICAgdW5tb3VudCgpO1xuXG4gICAgICAvLyBBZnRlciB1bm1vdW50LCBwb3N0UmVuZGVyIG5vIGxvbmdlciBkcml2ZXMgYW5pbWF0aW9uLlxuICAgICAgLy8gVGhlIHJlc3RvcmVkIGZ1bmN0aW9uIGlzIGEgYm91bmQgY29weSBvZiB0aGUgb3JpZ2luYWwgbW9jay5cbiAgICAgIGRlY2tFZmZlY3QucHJvcHMuaGVpZ2h0ID0gOTk7XG4gICAgICBkZWNrRWZmZWN0LnBvc3RSZW5kZXIuY2FsbChkZWNrRWZmZWN0LCB7fSk7XG4gICAgICAvLyBIZWlnaHQgc2hvdWxkIE5PVCBiZSBtdXRhdGVkIGJ5IGFuaW1hdGlvbiBsb2dpYyBhbnltb3JlXG4gICAgICBleHBlY3QoZGVja0VmZmVjdC5wcm9wcy5oZWlnaHQpLnRvQmUoOTkpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnc2hhZG93IGNvbXBvc2l0aW5nIGZhbGxiYWNrJywgKCkgPT4ge1xuICAgIGNvbnN0IG1vY2tFZmZlY3QgPSB7XG4gICAgICBpZDogJ2xpZ2h0LXNoYWRvdy0xJyxcbiAgICAgIHR5cGU6ICdsaWdodC1hbmQtc2hhZG93JyxcbiAgICAgIGlzRW5hYmxlZDogdHJ1ZSxcbiAgICAgIGNsb25lOiBqZXN0LmZuKCgpID0+ICh7Li4ubW9ja0VmZmVjdCwgY2xvbmU6IG1vY2tFZmZlY3QuY2xvbmV9KSlcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcHJvcHNXaXRoRWZmZWN0cyhlZmZlY3RzKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5ERUZBVUxUX1BST1BTLFxuICAgICAgICB2aXNTdGF0ZToge1xuICAgICAgICAgIC4uLkRFRkFVTFRfUFJPUFMudmlzU3RhdGUsXG4gICAgICAgICAgZWZmZWN0cyxcbiAgICAgICAgICBlZmZlY3RPcmRlcjogZWZmZWN0cy5tYXAoZSA9PiBlLmlkKVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIHRlc3QoJ2FkZHMgRGVja1NoYWRvd0NvbXBvc2l0aW5nRWZmZWN0IHdoZW4gc2hhZG93cyBleGlzdCBidXQgbm8gcG9zdFJlbmRlciBlZmZlY3QnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBzaGFkb3dEZWNrRWZmZWN0ID0ge2lkOiAnbGlnaHRpbmcnLCBzaGFkb3c6IHRydWV9O1xuICAgICAgbW9ja0NvbXB1dGVEZWNrRWZmZWN0cy5tb2NrUmV0dXJuVmFsdWUoW3NoYWRvd0RlY2tFZmZlY3RdKTtcblxuICAgICAgYXdhaXQgcmVuZGVyQW5kV2FpdEZvclBhbmVsKHByb3BzV2l0aEVmZmVjdHMoW21vY2tFZmZlY3RdKSk7XG5cbiAgICAgIGNvbnN0IHBhbmVsUHJvcHMgPSBtb2NrRXhwb3J0VmlkZW9QYW5lbENvbnRhaW5lci5tb2NrLmNhbGxzWzBdWzBdO1xuICAgICAgY29uc3QgZWZmZWN0cyA9IHBhbmVsUHJvcHMuZGVja1Byb3BzLmVmZmVjdHM7XG5cbiAgICAgIGV4cGVjdChlZmZlY3RzLmxlbmd0aCkudG9CZSgyKTtcbiAgICAgIGV4cGVjdChlZmZlY3RzWzBdKS50b0JlKHNoYWRvd0RlY2tFZmZlY3QpO1xuICAgICAgZXhwZWN0KGVmZmVjdHNbMV0uaWQpLnRvQmUoJ3NoYWRvdy1jb21wb3NpdGluZy1lZmZlY3QnKTtcbiAgICAgIGV4cGVjdChEZWNrU2hhZG93Q29tcG9zaXRpbmdFZmZlY3QpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICB9KTtcblxuICAgIHRlc3QoJ2RvZXMgbm90IGFkZCBEZWNrU2hhZG93Q29tcG9zaXRpbmdFZmZlY3Qgd2hlbiBhIHBvc3RSZW5kZXIgZWZmZWN0IGFscmVhZHkgZXhpc3RzJywgYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3Qgc2hhZG93RGVja0VmZmVjdCA9IHtpZDogJ2xpZ2h0aW5nJywgc2hhZG93OiB0cnVlfTtcbiAgICAgIGNvbnN0IHBvc3RQcm9jZXNzRWZmZWN0ID0ge2lkOiAnZm9nJywgcG9zdFJlbmRlcjogamVzdC5mbigpfTtcbiAgICAgIG1vY2tDb21wdXRlRGVja0VmZmVjdHMubW9ja1JldHVyblZhbHVlKFtzaGFkb3dEZWNrRWZmZWN0LCBwb3N0UHJvY2Vzc0VmZmVjdF0pO1xuXG4gICAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwocHJvcHNXaXRoRWZmZWN0cyhbbW9ja0VmZmVjdF0pKTtcblxuICAgICAgY29uc3QgcGFuZWxQcm9wcyA9IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyLm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBjb25zdCBlZmZlY3RzID0gcGFuZWxQcm9wcy5kZWNrUHJvcHMuZWZmZWN0cztcblxuICAgICAgZXhwZWN0KGVmZmVjdHMubGVuZ3RoKS50b0JlKDIpO1xuICAgICAgZXhwZWN0KGVmZmVjdHNbMF0pLnRvQmUoc2hhZG93RGVja0VmZmVjdCk7XG4gICAgICBleHBlY3QoZWZmZWN0c1sxXSkudG9CZShwb3N0UHJvY2Vzc0VmZmVjdCk7XG4gICAgICBleHBlY3QoZWZmZWN0cy5ldmVyeShlID0+IGUuaWQgIT09ICdzaGFkb3ctY29tcG9zaXRpbmctZWZmZWN0JykpLnRvQmUodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICB0ZXN0KCdkb2VzIG5vdCBhZGQgRGVja1NoYWRvd0NvbXBvc2l0aW5nRWZmZWN0IHdoZW4gbm8gc2hhZG93IGVmZmVjdCBleGlzdHMnLCBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCBub25TaGFkb3dFZmZlY3QgPSB7aWQ6ICdsaWdodGluZycsIHNoYWRvdzogZmFsc2V9O1xuICAgICAgbW9ja0NvbXB1dGVEZWNrRWZmZWN0cy5tb2NrUmV0dXJuVmFsdWUoW25vblNoYWRvd0VmZmVjdF0pO1xuXG4gICAgICBhd2FpdCByZW5kZXJBbmRXYWl0Rm9yUGFuZWwocHJvcHNXaXRoRWZmZWN0cyhbbW9ja0VmZmVjdF0pKTtcblxuICAgICAgY29uc3QgcGFuZWxQcm9wcyA9IG1vY2tFeHBvcnRWaWRlb1BhbmVsQ29udGFpbmVyLm1vY2suY2FsbHNbMF1bMF07XG4gICAgICBjb25zdCBlZmZlY3RzID0gcGFuZWxQcm9wcy5kZWNrUHJvcHMuZWZmZWN0cztcblxuICAgICAgZXhwZWN0KGVmZmVjdHMubGVuZ3RoKS50b0JlKDEpO1xuICAgICAgZXhwZWN0KGVmZmVjdHNbMF0pLnRvQmUobm9uU2hhZG93RWZmZWN0KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUlBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLGlCQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxPQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxhQUFBLEdBQUFMLE9BQUE7QUFrREEsSUFBQU0saUJBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVAsT0FBQTtBQUErRCxTQUFBUSxRQUFBQyxDQUFBLEVBQUFDLENBQUEsUUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLElBQUEsQ0FBQUosQ0FBQSxPQUFBRyxNQUFBLENBQUFFLHFCQUFBLFFBQUFDLENBQUEsR0FBQUgsTUFBQSxDQUFBRSxxQkFBQSxDQUFBTCxDQUFBLEdBQUFDLENBQUEsS0FBQUssQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQU4sQ0FBQSxXQUFBRSxNQUFBLENBQUFLLHdCQUFBLENBQUFSLENBQUEsRUFBQUMsQ0FBQSxFQUFBUSxVQUFBLE9BQUFQLENBQUEsQ0FBQVEsSUFBQSxDQUFBQyxLQUFBLENBQUFULENBQUEsRUFBQUksQ0FBQSxZQUFBSixDQUFBO0FBQUEsU0FBQVUsY0FBQVosQ0FBQSxhQUFBQyxDQUFBLE1BQUFBLENBQUEsR0FBQVksU0FBQSxDQUFBQyxNQUFBLEVBQUFiLENBQUEsVUFBQUMsQ0FBQSxXQUFBVyxTQUFBLENBQUFaLENBQUEsSUFBQVksU0FBQSxDQUFBWixDQUFBLFFBQUFBLENBQUEsT0FBQUYsT0FBQSxDQUFBSSxNQUFBLENBQUFELENBQUEsT0FBQWEsT0FBQSxX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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type MapViewState } from '@deck.gl/core';
|
|
1
2
|
import { TimeRangeFilter } from '@kepler.gl/types';
|
|
2
3
|
type KeplerState = {
|
|
3
4
|
visState: any;
|
|
@@ -22,4 +23,19 @@ export declare function getBeforeLayerId(topMapStyle: any, bottomMapStyle: any):
|
|
|
22
23
|
export declare function getStaticMapProps(keplerState: KeplerState, onViewChange: (viewState: Record<string, any>) => void, mapboxApiAccessToken: string, mapboxApiUrl?: string): Record<string, any>;
|
|
23
24
|
export declare function getHubbleDeckGlProps(keplerState: KeplerState, _mapboxApiAccessToken: string, _mapboxApiUrl?: string): Record<string, any>;
|
|
24
25
|
export declare function getAnimatableFilters(keplerState: KeplerState): TimeRangeFilter[];
|
|
26
|
+
export declare function scaleToVideoExport(viewState: MapViewState, container: {
|
|
27
|
+
width: number;
|
|
28
|
+
height: number;
|
|
29
|
+
}): MapViewState & {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
};
|
|
33
|
+
export declare function parseSetCameraType(strCameraType: string, viewState: MapViewState): MapViewState;
|
|
34
|
+
type Resolution = {
|
|
35
|
+
value: string;
|
|
36
|
+
label: string;
|
|
37
|
+
width: number;
|
|
38
|
+
height: number;
|
|
39
|
+
};
|
|
40
|
+
export declare function getResolutionSetting(value: string): Resolution;
|
|
25
41
|
export {};
|
|
@@ -8,8 +8,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
8
8
|
exports.getAnimatableFilters = getAnimatableFilters;
|
|
9
9
|
exports.getBeforeLayerId = getBeforeLayerId;
|
|
10
10
|
exports.getHubbleDeckGlProps = getHubbleDeckGlProps;
|
|
11
|
+
exports.getResolutionSetting = getResolutionSetting;
|
|
11
12
|
exports.getStaticMapProps = getStaticMapProps;
|
|
12
13
|
exports.getTimeRangeFilterKeyframes = getTimeRangeFilterKeyframes;
|
|
14
|
+
exports.parseSetCameraType = parseSetCameraType;
|
|
15
|
+
exports.scaleToVideoExport = scaleToVideoExport;
|
|
13
16
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
14
17
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
18
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
@@ -17,6 +20,8 @@ var _core = require("@deck.gl/core");
|
|
|
17
20
|
var _constants = require("@kepler.gl/constants");
|
|
18
21
|
var _utils = require("@kepler.gl/utils");
|
|
19
22
|
var _maplibreglMapboxRequestTransformer = require("maplibregl-mapbox-request-transformer");
|
|
23
|
+
var _helpers = require("@turf/helpers");
|
|
24
|
+
var _transformTranslate = _interopRequireDefault(require("@turf/transform-translate"));
|
|
20
25
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
21
26
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
22
27
|
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; }
|
|
@@ -194,4 +199,96 @@ function getAnimatableFilters(keplerState) {
|
|
|
194
199
|
return f.type === _constants.FILTER_TYPES.timeRange && (f.view === _constants.FILTER_VIEW_TYPES.enlarged || f.syncedWithLayerTimeline);
|
|
195
200
|
});
|
|
196
201
|
}
|
|
197
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX21hcGxpYnJlZ2xNYXBib3hSZXF1ZXN0VHJhbnNmb3JtZXIiLCJfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUiLCJlIiwiV2Vha01hcCIsInIiLCJ0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZjMiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJsaW5lYXIiLCJwIiwiaG9sZCIsImdldEtleUZyYW1lc0ZyZWUiLCJkZWx0YSIsInZhbHVlIiwia2V5ZnJhbWVzIiwiZG9tYWluIiwiZWFzaW5ncyIsImdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lcyIsIl9yZWYiLCJ0aW1pbmdzIiwidHlwZSIsIkZJTFRFUl9UWVBFUyIsInRpbWVSYW5nZSIsIkVycm9yIiwiZHVyYXRpb24iLCJhbmltYXRpb25XaW5kb3ciLCJfdGltZUJpbnMkZGF0YUlkJCIsInBsb3RUeXBlIiwidGltZUJpbnMiLCJkYXRhSWQiLCJpbnRlcnZhbCIsImJpbnMiLCJNYXRoIiwicm91bmQiLCJtYXAiLCJfIiwiaWR4IiwiYmluIiwieDAiLCJ4MSIsImdldEJlZm9yZUxheWVySWQiLCJ0b3BNYXBTdHlsZSIsImJvdHRvbU1hcFN0eWxlIiwiX3RvcE1hcFN0eWxlJGxheWVycyIsIl9ib3R0b21NYXBTdHlsZSRsYXllciIsImxheWVycyIsImZpcnN0VG9wTGF5ZXIiLCJmaXJzdFRvcExheWVySWR4IiwiZmluZEluZGV4IiwibGF5ZXIiLCJpZCIsImJlZm9yZUlkeCIsImdldFN0YXRpY01hcFByb3BzIiwia2VwbGVyU3RhdGUiLCJvblZpZXdDaGFuZ2UiLCJtYXBib3hBcGlBY2Nlc3NUb2tlbiIsIl9rZXBsZXJTdGF0ZSRtYXBTdHlsZSIsIl9rZXBsZXJTdGF0ZSRtYXBTdHlsZTIiLCJfa2VwbGVyU3RhdGUkbWFwU3R5bGUzIiwibWFwYm94QXBpVXJsIiwidW5kZWZpbmVkIiwiREVGQVVMVF9NQVBCT1hfQVBJX1VSTCIsImN1cnJlbnRTdHlsZSIsIm1hcFN0eWxlIiwibWFwU3R5bGVzIiwic3R5bGVUeXBlIiwiYWNjZXNzVG9rZW4iLCJpc01hcGJveCIsImdldEJhc2VNYXBMaWJyYXJ5IiwibWFwYm94VHJhbnNmb3JtUmVxdWVzdCIsInVybCIsInJlc291cmNlVHlwZSIsImlzTWFwYm94VVJMIiwidHJhbnNmb3JtTWFwYm94VXJsIiwibWFwU3RhdGUiLCJwcmVzZXJ2ZURyYXdpbmdCdWZmZXIiLCJ0cmFuc2Zvcm1SZXF1ZXN0IiwiY29udmVydE1hcGJveFN0eWxlVXJscyIsIm9uVmlld3BvcnRDaGFuZ2UiLCJtYXBMaWIiLCJQcm9taXNlIiwicmVzb2x2ZSIsInRoZW4iLCJzdHlsZSIsIl90eXBlb2YyIiwiY29udmVydGVkIiwic3ByaXRlIiwiX3RyYW5zZm9ybU1hcGJveFVybCIsImdseXBocyIsIl90cmFuc2Zvcm1NYXBib3hVcmwyIiwic291cmNlcyIsIm5ld1NvdXJjZXMiLCJfaSIsIl9PYmplY3QkZW50cmllcyIsImVudHJpZXMiLCJfT2JqZWN0JGVudHJpZXMkX2kiLCJfc2xpY2VkVG9BcnJheTIiLCJrZXkiLCJzb3VyY2UiLCJfdHJhbnNmb3JtTWFwYm94VXJsMyIsImdldEh1YmJsZVBhcmFtZXRlcnMiLCJnZXRMYXllckJsZW5kaW5nUGFyYW1ldGVycyIsInZpc1N0YXRlIiwibGF5ZXJCbGVuZGluZyIsImdldEh1YmJsZURlY2tHbFByb3BzIiwiX21hcGJveEFwaUFjY2Vzc1Rva2VuIiwiX21hcGJveEFwaVVybCIsInBhcmFtZXRlcnMiLCJjb250cm9sbGVyIiwidmlld3MiLCJNYXBWaWV3IiwiZmFyWk11bHRpcGxpZXIiLCJnZXRBbmltYXRhYmxlRmlsdGVycyIsIl9rZXBsZXJTdGF0ZSR2aXNTdGF0ZSIsImZpbHRlcnMiLCJmIiwidmlldyIsIkZJTFRFUl9WSUVXX1RZUEVTIiwiZW5sYXJnZWQiLCJzeW5jZWRXaXRoTGF5ZXJUaW1lbGluZSJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvaHViYmxlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7TWFwVmlld30gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQge0RFRkFVTFRfTUFQQk9YX0FQSV9VUkwsIEZJTFRFUl9WSUVXX1RZUEVTLCBGSUxURVJfVFlQRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Z2V0TGF5ZXJCbGVuZGluZ1BhcmFtZXRlcnMsIGdldEJhc2VNYXBMaWJyYXJ5fSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7aXNNYXBib3hVUkwsIHRyYW5zZm9ybU1hcGJveFVybH0gZnJvbSAnbWFwbGlicmVnbC1tYXBib3gtcmVxdWVzdC10cmFuc2Zvcm1lcic7XG5pbXBvcnQge1RpbWVSYW5nZUZpbHRlcn0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5cbnR5cGUgS2VwbGVyU3RhdGUgPSB7XG4gIHZpc1N0YXRlOiBhbnk7XG4gIG1hcFN0YXRlOiBhbnk7XG4gIG1hcFN0eWxlOiBhbnk7XG59O1xuXG50eXBlIE1hcGJveExheWVyUmVmID0ge1xuICBpZDogc3RyaW5nO1xufSAmIFJlY29yZDxzdHJpbmcsIGFueT47XG5cbmNvbnN0IGxpbmVhcjogKHA6IG51bWJlcikgPT4gbnVtYmVyID0gcCA9PiBwO1xuY29uc3QgaG9sZDogKHA6IG51bWJlcikgPT4gbnVtYmVyID0gcCA9PiAocCA9PT0gMSA/IDEgOiAwKTtcblxudHlwZSBUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMgPSB7XG4gIGtleWZyYW1lczoge3ZhbHVlOiBudW1iZXIgfCBbbnVtYmVyLCBudW1iZXJdfVtdO1xuICBlYXNpbmdzOiAocDogbnVtYmVyKSA9PiBudW1iZXI7XG4gIHRpbWluZ3M/OiBudW1iZXJbXTtcbn07XG5cbmZ1bmN0aW9uIGdldEtleUZyYW1lc0ZyZWUoZmlsdGVyOiBUaW1lUmFuZ2VGaWx0ZXIpOiBUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMge1xuICBjb25zdCBkZWx0YSA9IGZpbHRlci52YWx1ZVsxXSAtIGZpbHRlci52YWx1ZVswXTtcbiAgcmV0dXJuIHtcbiAgICBrZXlmcmFtZXM6IFtcbiAgICAgIHt2YWx1ZTogW2ZpbHRlci5kb21haW5bMF0sIGZpbHRlci5kb21haW5bMF0gKyBkZWx0YV19LFxuICAgICAge3ZhbHVlOiBbZmlsdGVyLmRvbWFpblsxXSAtIGRlbHRhLCBmaWx0ZXIuZG9tYWluWzFdXX1cbiAgICBdLFxuICAgIGVhc2luZ3M6IGxpbmVhclxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZVJhbmdlRmlsdGVyS2V5ZnJhbWVzKHtcbiAgZmlsdGVyLFxuICB0aW1pbmdzXG59OiB7XG4gIGZpbHRlcjogVGltZVJhbmdlRmlsdGVyO1xuICB0aW1pbmdzOiBudW1iZXJbXTtcbn0pOiBUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMge1xuICBpZiAoZmlsdGVyLnR5cGUgIT09IEZJTFRFUl9UWVBFUy50aW1lUmFuZ2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJmaWx0ZXIgdHlwZSBtdXN0IGJlICd0aW1lUmFuZ2UnLlwiKTtcbiAgfVxuXG4gIGNvbnN0IGR1cmF0aW9uID0gdGltaW5nc1sxXSAtIHRpbWluZ3NbMF07XG5cbiAgc3dpdGNoIChmaWx0ZXIuYW5pbWF0aW9uV2luZG93KSB7XG4gICAgZGVmYXVsdDpcbiAgICBjYXNlICdmcmVlJzoge1xuICAgICAgcmV0dXJuIGdldEtleUZyYW1lc0ZyZWUoZmlsdGVyKTtcbiAgICB9XG4gICAgY2FzZSAnaW5jcmVtZW50YWwnOiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXlmcmFtZXM6IFtcbiAgICAgICAgICB7dmFsdWU6IFtmaWx0ZXIudmFsdWVbMF0sIGZpbHRlci52YWx1ZVswXSArIDFdfSxcbiAgICAgICAgICB7dmFsdWU6IFtmaWx0ZXIudmFsdWVbMF0sIGZpbHRlci5kb21haW5bMV1dfVxuICAgICAgICBdLFxuICAgICAgICBlYXNpbmdzOiBsaW5lYXJcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5ZnJhbWVzOiBbe3ZhbHVlOiBmaWx0ZXIuZG9tYWluWzBdfSwge3ZhbHVlOiBmaWx0ZXIuZG9tYWluWzFdfV0sXG4gICAgICAgIGVhc2luZ3M6IGxpbmVhclxuICAgICAgfTtcbiAgICB9XG4gICAgY2FzZSAnaW50ZXJ2YWwnOiB7XG4gICAgICBjb25zdCB7cGxvdFR5cGUsIHRpbWVCaW5zLCBkYXRhSWR9ID0gZmlsdGVyO1xuICAgICAgY29uc3Qge2ludGVydmFsfSA9IHBsb3RUeXBlO1xuXG4gICAgICBjb25zdCBiaW5zID0gdGltZUJpbnM/LltkYXRhSWRbMF1dPy5baW50ZXJ2YWxdO1xuXG4gICAgICBpZiAoIWludGVydmFsIHx8ICFiaW5zIHx8IGJpbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiBnZXRLZXlGcmFtZXNGcmVlKGZpbHRlcik7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGRlbHRhID0gTWF0aC5yb3VuZChkdXJhdGlvbiAvIGJpbnMubGVuZ3RoKTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGltaW5nczogYmlucy5tYXAoKF8sIGlkeCkgPT4gdGltaW5nc1swXSArIGRlbHRhICogaWR4KSxcbiAgICAgICAga2V5ZnJhbWVzOiBiaW5zLm1hcChiaW4gPT4gKHt2YWx1ZTogW2Jpbi54MCwgYmluLngxXX0pKSxcbiAgICAgICAgZWFzaW5nczogaG9sZFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJlZm9yZUxheWVySWQodG9wTWFwU3R5bGU6IGFueSwgYm90dG9tTWFwU3R5bGU6IGFueSk6IE1hcGJveExheWVyUmVmIHwgbnVsbCB7XG4gIGlmICh0b3BNYXBTdHlsZT8ubGF5ZXJzPy5sZW5ndGggJiYgYm90dG9tTWFwU3R5bGU/LmxheWVycz8ubGVuZ3RoKSB7XG4gICAgY29uc3QgZmlyc3RUb3BMYXllciA9IHRvcE1hcFN0eWxlLmxheWVyc1swXTtcbiAgICBjb25zdCBmaXJzdFRvcExheWVySWR4ID0gYm90dG9tTWFwU3R5bGUubGF5ZXJzLmZpbmRJbmRleChcbiAgICAgIChsYXllcjogTWFwYm94TGF5ZXJSZWYpID0+IGxheWVyLmlkID09PSBmaXJzdFRvcExheWVyLmlkXG4gICAgKTtcbiAgICBjb25zdCBiZWZvcmVJZHggPSBmaXJzdFRvcExheWVySWR4IC0gMTtcbiAgICByZXR1cm4gYmVmb3JlSWR4ID4gLTEgPyBib3R0b21NYXBTdHlsZS5sYXllcnNbYmVmb3JlSWR4XSA6IG51bGw7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTdGF0aWNNYXBQcm9wcyhcbiAga2VwbGVyU3RhdGU6IEtlcGxlclN0YXRlLFxuICBvblZpZXdDaGFuZ2U6ICh2aWV3U3RhdGU6IFJlY29yZDxzdHJpbmcsIGFueT4pID0+IHZvaWQsXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBzdHJpbmcsXG4gIG1hcGJveEFwaVVybDogc3RyaW5nID0gREVGQVVMVF9NQVBCT1hfQVBJX1VSTFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIGNvbnN0IGN1cnJlbnRTdHlsZSA9IGtlcGxlclN0YXRlLm1hcFN0eWxlPy5tYXBTdHlsZXM/LltrZXBsZXJTdGF0ZS5tYXBTdHlsZS5zdHlsZVR5cGVdO1xuICBjb25zdCBhY2Nlc3NUb2tlbiA9IGN1cnJlbnRTdHlsZT8uYWNjZXNzVG9rZW4gfHwgbWFwYm94QXBpQWNjZXNzVG9rZW47XG4gIGNvbnN0IGlzTWFwYm94ID0gZ2V0QmFzZU1hcExpYnJhcnkoY3VycmVudFN0eWxlKSA9PT0gJ21hcGJveCc7XG5cbiAgY29uc3QgbWFwYm94VHJhbnNmb3JtUmVxdWVzdCA9ICh1cmw6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoaXNNYXBib3hVUkwodXJsKSkge1xuICAgICAgcmV0dXJuIHRyYW5zZm9ybU1hcGJveFVybCh1cmwsIHJlc291cmNlVHlwZSwgYWNjZXNzVG9rZW4pO1xuICAgIH1cbiAgICByZXR1cm4ge3VybH07XG4gIH07XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5rZXBsZXJTdGF0ZS5tYXBTdGF0ZSxcbiAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6IHRydWUsXG4gICAgbWFwYm94QXBpQWNjZXNzVG9rZW46IGFjY2Vzc1Rva2VuLFxuICAgIG1hcGJveEFwaVVybCxcbiAgICB0cmFuc2Zvcm1SZXF1ZXN0OiBtYXBib3hUcmFuc2Zvcm1SZXF1ZXN0LFxuICAgIG1hcFN0eWxlOiBpc01hcGJveFxuICAgICAgPyBjb252ZXJ0TWFwYm94U3R5bGVVcmxzKGtlcGxlclN0YXRlLm1hcFN0eWxlPy5ib3R0b21NYXBTdHlsZSwgYWNjZXNzVG9rZW4pXG4gICAgICA6IGtlcGxlclN0YXRlLm1hcFN0eWxlPy5ib3R0b21NYXBTdHlsZSxcbiAgICBvblZpZXdwb3J0Q2hhbmdlOiBvblZpZXdDaGFuZ2UsXG4gICAgbWFwTGliOiBpbXBvcnQoJ21hcGxpYnJlLWdsJylcbiAgfTtcbn1cblxuLyoqXG4gKiBDb252ZXJ0IG1hcGJveDovLyBVUkxzIGluc2lkZSBhIE1hcGJveCBzdHlsZSBvYmplY3QgdG8gSFRUUFMgQVBJIFVSTHNcbiAqIHNvIHRoYXQgbWFwbGlicmUtZ2wgY2FuIGZldGNoIHRoZW0gZGlyZWN0bHkuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRNYXBib3hTdHlsZVVybHMoc3R5bGU6IGFueSwgYWNjZXNzVG9rZW46IHN0cmluZyk6IGFueSB7XG4gIGlmICghc3R5bGUgfHwgdHlwZW9mIHN0eWxlICE9PSAnb2JqZWN0JykgcmV0dXJuIHN0eWxlO1xuXG4gIGNvbnN0IGNvbnZlcnRlZCA9IHsuLi5zdHlsZX07XG5cbiAgaWYgKHR5cGVvZiBjb252ZXJ0ZWQuc3ByaXRlID09PSAnc3RyaW5nJyAmJiBpc01hcGJveFVSTChjb252ZXJ0ZWQuc3ByaXRlKSkge1xuICAgIGNvbnZlcnRlZC5zcHJpdGUgPSB0cmFuc2Zvcm1NYXBib3hVcmwoY29udmVydGVkLnNwcml0ZSwgJ1Nwcml0ZScsIGFjY2Vzc1Rva2VuKT8udXJsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBjb252ZXJ0ZWQuZ2x5cGhzID09PSAnc3RyaW5nJyAmJiBpc01hcGJveFVSTChjb252ZXJ0ZWQuZ2x5cGhzKSkge1xuICAgIGNvbnZlcnRlZC5nbHlwaHMgPSB0cmFuc2Zvcm1NYXBib3hVcmwoY29udmVydGVkLmdseXBocywgJ0dseXBocycsIGFjY2Vzc1Rva2VuKT8udXJsO1xuICB9XG5cbiAgaWYgKGNvbnZlcnRlZC5zb3VyY2VzKSB7XG4gICAgY29uc3QgbmV3U291cmNlczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgc291cmNlXSBvZiBPYmplY3QuZW50cmllczxhbnk+KGNvbnZlcnRlZC5zb3VyY2VzKSkge1xuICAgICAgaWYgKHNvdXJjZT8udXJsICYmIGlzTWFwYm94VVJMKHNvdXJjZS51cmwpKSB7XG4gICAgICAgIG5ld1NvdXJjZXNba2V5XSA9IHtcbiAgICAgICAgICAuLi5zb3VyY2UsXG4gICAgICAgICAgdXJsOiB0cmFuc2Zvcm1NYXBib3hVcmwoc291cmNlLnVybCwgJ1NvdXJjZScsIGFjY2Vzc1Rva2VuKT8udXJsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuZXdTb3VyY2VzW2tleV0gPSBzb3VyY2U7XG4gICAgICB9XG4gICAgfVxuICAgIGNvbnZlcnRlZC5zb3VyY2VzID0gbmV3U291cmNlcztcbiAgfVxuXG4gIHJldHVybiBjb252ZXJ0ZWQ7XG59XG5cbmZ1bmN0aW9uIGdldEh1YmJsZVBhcmFtZXRlcnMoa2VwbGVyU3RhdGU6IEtlcGxlclN0YXRlKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIHJldHVybiBnZXRMYXllckJsZW5kaW5nUGFyYW1ldGVycyhrZXBsZXJTdGF0ZS52aXNTdGF0ZS5sYXllckJsZW5kaW5nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEh1YmJsZURlY2tHbFByb3BzKFxuICBrZXBsZXJTdGF0ZTogS2VwbGVyU3RhdGUsXG4gIF9tYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nLFxuICBfbWFwYm94QXBpVXJsOiBzdHJpbmcgPSBERUZBVUxUX01BUEJPWF9BUElfVVJMXG4pOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgcmV0dXJuIHtcbiAgICBwYXJhbWV0ZXJzOiBnZXRIdWJibGVQYXJhbWV0ZXJzKGtlcGxlclN0YXRlKSxcbiAgICBjb250cm9sbGVyOiB0cnVlLFxuICAgIHZpZXdzOiBuZXcgTWFwVmlldyh7XG4gICAgICBpZDogJ21hcGJveCcsXG4gICAgICBmYXJaTXVsdGlwbGllcjogMS4yXG4gICAgfSlcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFuaW1hdGFibGVGaWx0ZXJzKGtlcGxlclN0YXRlOiBLZXBsZXJTdGF0ZSk6IFRpbWVSYW5nZUZpbHRlcltdIHtcbiAgY29uc3QgZmlsdGVycyA9IGtlcGxlclN0YXRlLnZpc1N0YXRlPy5maWx0ZXJzIHx8IFtdO1xuICByZXR1cm4gZmlsdGVycy5maWx0ZXIoXG4gICAgKGY6IGFueSkgPT5cbiAgICAgIGYudHlwZSA9PT0gRklMVEVSX1RZUEVTLnRpbWVSYW5nZSAmJlxuICAgICAgKGYudmlldyA9PT0gRklMVEVSX1ZJRVdfVFlQRVMuZW5sYXJnZWQgfHwgZi5zeW5jZWRXaXRoTGF5ZXJUaW1lbGluZSlcbiAgKTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsS0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsbUNBQUEsR0FBQUgsT0FBQTtBQUFzRixTQUFBSSx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQUksd0JBQUFKLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSyxVQUFBLFNBQUFMLENBQUEsZUFBQUEsQ0FBQSxnQkFBQU0sUUFBQSxDQUFBTixDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLFVBQUFHLENBQUEsQ0FBQUssR0FBQSxDQUFBUixDQUFBLE9BQUFTLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWYsQ0FBQSxvQkFBQWUsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWpCLENBQUEsRUFBQWUsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBZCxDQUFBLEVB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
|
|
202
|
+
|
|
203
|
+
// --- Video export utilities (inlined from @hubble.gl internals) ---
|
|
204
|
+
|
|
205
|
+
function scaleToVideoExport(viewState, container) {
|
|
206
|
+
var viewport = new _core.WebMercatorViewport(viewState);
|
|
207
|
+
var nw = viewport.unproject([0, 0]);
|
|
208
|
+
var se = viewport.unproject([viewport.width, viewport.height]);
|
|
209
|
+
var videoViewport = new _core.WebMercatorViewport(_objectSpread(_objectSpread({}, viewState), {}, {
|
|
210
|
+
width: container.width,
|
|
211
|
+
height: container.height
|
|
212
|
+
})).fitBounds([nw, se]);
|
|
213
|
+
var height = videoViewport.height,
|
|
214
|
+
width = videoViewport.width,
|
|
215
|
+
latitude = videoViewport.latitude,
|
|
216
|
+
longitude = videoViewport.longitude,
|
|
217
|
+
zoom = videoViewport.zoom,
|
|
218
|
+
altitude = videoViewport.altitude;
|
|
219
|
+
return {
|
|
220
|
+
height: height,
|
|
221
|
+
width: width,
|
|
222
|
+
latitude: latitude,
|
|
223
|
+
longitude: longitude,
|
|
224
|
+
pitch: viewState.pitch,
|
|
225
|
+
zoom: zoom,
|
|
226
|
+
bearing: viewState.bearing,
|
|
227
|
+
altitude: altitude
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
function parseSetCameraType(strCameraType, viewState) {
|
|
231
|
+
var modifiedViewState = _objectSpread({}, viewState);
|
|
232
|
+
var match = strCameraType.match(/\b(?!to)\b\S+\w/g);
|
|
233
|
+
if (!match) return modifiedViewState;
|
|
234
|
+
var turfPoint = (0, _helpers.point)([modifiedViewState.longitude, modifiedViewState.latitude]);
|
|
235
|
+
if (match[0] === 'Orbit') {
|
|
236
|
+
modifiedViewState.bearing = modifiedViewState.bearing + parseInt(match[1], 10);
|
|
237
|
+
}
|
|
238
|
+
var directions = new Set(['East', 'South', 'West', 'North']);
|
|
239
|
+
if (directions.has(match[0])) {
|
|
240
|
+
var directionMap = {
|
|
241
|
+
East: 270,
|
|
242
|
+
South: 0,
|
|
243
|
+
West: 90,
|
|
244
|
+
North: 180
|
|
245
|
+
};
|
|
246
|
+
var translatedPoly = (0, _transformTranslate["default"])(turfPoint, 10, directionMap[match[0]]);
|
|
247
|
+
if (match[0] === 'East' || match[0] === 'West') {
|
|
248
|
+
modifiedViewState.longitude = translatedPoly.geometry.coordinates[0];
|
|
249
|
+
} else {
|
|
250
|
+
modifiedViewState.latitude = translatedPoly.geometry.coordinates[1];
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
if (match[0] === 'Zoom') {
|
|
254
|
+
modifiedViewState.zoom += match[1] === 'In' ? 3 : -3;
|
|
255
|
+
}
|
|
256
|
+
return modifiedViewState;
|
|
257
|
+
}
|
|
258
|
+
var RESOLUTIONS = [{
|
|
259
|
+
value: '960x540',
|
|
260
|
+
label: 'Good (540p)',
|
|
261
|
+
width: 960,
|
|
262
|
+
height: 540
|
|
263
|
+
}, {
|
|
264
|
+
value: '1280x720',
|
|
265
|
+
label: 'High (720p)',
|
|
266
|
+
width: 1280,
|
|
267
|
+
height: 720
|
|
268
|
+
}, {
|
|
269
|
+
value: '1920x1080',
|
|
270
|
+
label: 'Highest (1080p)',
|
|
271
|
+
width: 1920,
|
|
272
|
+
height: 1080
|
|
273
|
+
}, {
|
|
274
|
+
value: '640x480',
|
|
275
|
+
label: 'Good (480p)',
|
|
276
|
+
width: 640,
|
|
277
|
+
height: 480
|
|
278
|
+
}, {
|
|
279
|
+
value: '1280x960',
|
|
280
|
+
label: 'High (960p)',
|
|
281
|
+
width: 1280,
|
|
282
|
+
height: 960
|
|
283
|
+
}, {
|
|
284
|
+
value: '1920x1440',
|
|
285
|
+
label: 'Highest (1440p)',
|
|
286
|
+
width: 1920,
|
|
287
|
+
height: 1440
|
|
288
|
+
}];
|
|
289
|
+
function getResolutionSetting(value) {
|
|
290
|
+
return RESOLUTIONS.find(function (r) {
|
|
291
|
+
return r.value === value;
|
|
292
|
+
}) || RESOLUTIONS[0];
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29yZSIsInJlcXVpcmUiLCJfY29uc3RhbnRzIiwiX3V0aWxzIiwiX21hcGxpYnJlZ2xNYXBib3hSZXF1ZXN0VHJhbnNmb3JtZXIiLCJfaGVscGVycyIsIl90cmFuc2Zvcm1UcmFuc2xhdGUiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwiX19lc01vZHVsZSIsIl90eXBlb2YzIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwibGluZWFyIiwicCIsImhvbGQiLCJnZXRLZXlGcmFtZXNGcmVlIiwiZGVsdGEiLCJ2YWx1ZSIsImtleWZyYW1lcyIsImRvbWFpbiIsImVhc2luZ3MiLCJnZXRUaW1lUmFuZ2VGaWx0ZXJLZXlmcmFtZXMiLCJfcmVmIiwidGltaW5ncyIsInR5cGUiLCJGSUxURVJfVFlQRVMiLCJ0aW1lUmFuZ2UiLCJFcnJvciIsImR1cmF0aW9uIiwiYW5pbWF0aW9uV2luZG93IiwiX3RpbWVCaW5zJGRhdGFJZCQiLCJwbG90VHlwZSIsInRpbWVCaW5zIiwiZGF0YUlkIiwiaW50ZXJ2YWwiLCJiaW5zIiwiTWF0aCIsInJvdW5kIiwibWFwIiwiXyIsImlkeCIsImJpbiIsIngwIiwieDEiLCJnZXRCZWZvcmVMYXllcklkIiwidG9wTWFwU3R5bGUiLCJib3R0b21NYXBTdHlsZSIsIl90b3BNYXBTdHlsZSRsYXllcnMiLCJfYm90dG9tTWFwU3R5bGUkbGF5ZXIiLCJsYXllcnMiLCJmaXJzdFRvcExheWVyIiwiZmlyc3RUb3BMYXllcklkeCIsImZpbmRJbmRleCIsImxheWVyIiwiaWQiLCJiZWZvcmVJZHgiLCJnZXRTdGF0aWNNYXBQcm9wcyIsImtlcGxlclN0YXRlIiwib25WaWV3Q2hhbmdlIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJfa2VwbGVyU3RhdGUkbWFwU3R5bGUiLCJfa2VwbGVyU3RhdGUkbWFwU3R5bGUyIiwiX2tlcGxlclN0YXRlJG1hcFN0eWxlMyIsIm1hcGJveEFwaVVybCIsInVuZGVmaW5lZCIsIkRFRkFVTFRfTUFQQk9YX0FQSV9VUkwiLCJjdXJyZW50U3R5bGUiLCJtYXBTdHlsZSIsIm1hcFN0eWxlcyIsInN0eWxlVHlwZSIsImFjY2Vzc1Rva2VuIiwiaXNNYXBib3giLCJnZXRCYXNlTWFwTGlicmFyeSIsIm1hcGJveFRyYW5zZm9ybVJlcXVlc3QiLCJ1cmwiLCJyZXNvdXJjZVR5cGUiLCJpc01hcGJveFVSTCIsInRyYW5zZm9ybU1hcGJveFVybCIsIm1hcFN0YXRlIiwicHJlc2VydmVEcmF3aW5nQnVmZmVyIiwidHJhbnNmb3JtUmVxdWVzdCIsImNvbnZlcnRNYXBib3hTdHlsZVVybHMiLCJvblZpZXdwb3J0Q2hhbmdlIiwibWFwTGliIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ0aGVuIiwic3R5bGUiLCJfdHlwZW9mMiIsImNvbnZlcnRlZCIsInNwcml0ZSIsIl90cmFuc2Zvcm1NYXBib3hVcmwiLCJnbHlwaHMiLCJfdHJhbnNmb3JtTWFwYm94VXJsMiIsInNvdXJjZXMiLCJuZXdTb3VyY2VzIiwiX2kiLCJfT2JqZWN0JGVudHJpZXMiLCJlbnRyaWVzIiwiX09iamVjdCRlbnRyaWVzJF9pIiwiX3NsaWNlZFRvQXJyYXkyIiwia2V5Iiwic291cmNlIiwiX3RyYW5zZm9ybU1hcGJveFVybDMiLCJnZXRIdWJibGVQYXJhbWV0ZXJzIiwiZ2V0TGF5ZXJCbGVuZGluZ1BhcmFtZXRlcnMiLCJ2aXNTdGF0ZSIsImxheWVyQmxlbmRpbmciLCJnZXRIdWJibGVEZWNrR2xQcm9wcyIsIl9tYXBib3hBcGlBY2Nlc3NUb2tlbiIsIl9tYXBib3hBcGlVcmwiLCJwYXJhbWV0ZXJzIiwiY29udHJvbGxlciIsInZpZXdzIiwiTWFwVmlldyIsImZhclpNdWx0aXBsaWVyIiwiZ2V0QW5pbWF0YWJsZUZpbHRlcnMiLCJfa2VwbGVyU3RhdGUkdmlzU3RhdGUiLCJmaWx0ZXJzIiwiZiIsInZpZXciLCJGSUxURVJfVklFV19UWVBFUyIsImVubGFyZ2VkIiwic3luY2VkV2l0aExheWVyVGltZWxpbmUiLCJzY2FsZVRvVmlkZW9FeHBvcnQiLCJ2aWV3U3RhdGUiLCJjb250YWluZXIiLCJ2aWV3cG9ydCIsIldlYk1lcmNhdG9yVmlld3BvcnQiLCJudyIsInVucHJvamVjdCIsInNlIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWRlb1ZpZXdwb3J0IiwiZml0Qm91bmRzIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJ6b29tIiwiYWx0aXR1ZGUiLCJwaXRjaCIsImJlYXJpbmciLCJwYXJzZVNldENhbWVyYVR5cGUiLCJzdHJDYW1lcmFUeXBlIiwibW9kaWZpZWRWaWV3U3RhdGUiLCJtYXRjaCIsInR1cmZQb2ludCIsInBvaW50IiwicGFyc2VJbnQiLCJkaXJlY3Rpb25zIiwiU2V0IiwiZGlyZWN0aW9uTWFwIiwiRWFzdCIsIlNvdXRoIiwiV2VzdCIsIk5vcnRoIiwidHJhbnNsYXRlZFBvbHkiLCJ0cmFuc2Zvcm1UcmFuc2xhdGUiLCJnZW9tZXRyeSIsImNvb3JkaW5hdGVzIiwiUkVTT0xVVElPTlMiLCJsYWJlbCIsImdldFJlc29sdXRpb25TZXR0aW5nIiwiZmluZCJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tb2RhbHMvaHViYmxlLXV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7TWFwVmlldywgV2ViTWVyY2F0b3JWaWV3cG9ydCwgdHlwZSBNYXBWaWV3U3RhdGV9IGZyb20gJ0BkZWNrLmdsL2NvcmUnO1xuaW1wb3J0IHtERUZBVUxUX01BUEJPWF9BUElfVVJMLCBGSUxURVJfVklFV19UWVBFUywgRklMVEVSX1RZUEVTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge2dldExheWVyQmxlbmRpbmdQYXJhbWV0ZXJzLCBnZXRCYXNlTWFwTGlicmFyeX0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge2lzTWFwYm94VVJMLCB0cmFuc2Zvcm1NYXBib3hVcmx9IGZyb20gJ21hcGxpYnJlZ2wtbWFwYm94LXJlcXVlc3QtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHtwb2ludH0gZnJvbSAnQHR1cmYvaGVscGVycyc7XG5pbXBvcnQgdHJhbnNmb3JtVHJhbnNsYXRlIGZyb20gJ0B0dXJmL3RyYW5zZm9ybS10cmFuc2xhdGUnO1xuaW1wb3J0IHtUaW1lUmFuZ2VGaWx0ZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG50eXBlIEtlcGxlclN0YXRlID0ge1xuICB2aXNTdGF0ZTogYW55O1xuICBtYXBTdGF0ZTogYW55O1xuICBtYXBTdHlsZTogYW55O1xufTtcblxudHlwZSBNYXBib3hMYXllclJlZiA9IHtcbiAgaWQ6IHN0cmluZztcbn0gJiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuXG5jb25zdCBsaW5lYXI6IChwOiBudW1iZXIpID0+IG51bWJlciA9IHAgPT4gcDtcbmNvbnN0IGhvbGQ6IChwOiBudW1iZXIpID0+IG51bWJlciA9IHAgPT4gKHAgPT09IDEgPyAxIDogMCk7XG5cbnR5cGUgVGltZVJhbmdlRmlsdGVyS2V5ZnJhbWVzID0ge1xuICBrZXlmcmFtZXM6IHt2YWx1ZTogbnVtYmVyIHwgW251bWJlciwgbnVtYmVyXX1bXTtcbiAgZWFzaW5nczogKHA6IG51bWJlcikgPT4gbnVtYmVyO1xuICB0aW1pbmdzPzogbnVtYmVyW107XG59O1xuXG5mdW5jdGlvbiBnZXRLZXlGcmFtZXNGcmVlKGZpbHRlcjogVGltZVJhbmdlRmlsdGVyKTogVGltZVJhbmdlRmlsdGVyS2V5ZnJhbWVzIHtcbiAgY29uc3QgZGVsdGEgPSBmaWx0ZXIudmFsdWVbMV0gLSBmaWx0ZXIudmFsdWVbMF07XG4gIHJldHVybiB7XG4gICAga2V5ZnJhbWVzOiBbXG4gICAgICB7dmFsdWU6IFtmaWx0ZXIuZG9tYWluWzBdLCBmaWx0ZXIuZG9tYWluWzBdICsgZGVsdGFdfSxcbiAgICAgIHt2YWx1ZTogW2ZpbHRlci5kb21haW5bMV0gLSBkZWx0YSwgZmlsdGVyLmRvbWFpblsxXV19XG4gICAgXSxcbiAgICBlYXNpbmdzOiBsaW5lYXJcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVSYW5nZUZpbHRlcktleWZyYW1lcyh7XG4gIGZpbHRlcixcbiAgdGltaW5nc1xufToge1xuICBmaWx0ZXI6IFRpbWVSYW5nZUZpbHRlcjtcbiAgdGltaW5nczogbnVtYmVyW107XG59KTogVGltZVJhbmdlRmlsdGVyS2V5ZnJhbWVzIHtcbiAgaWYgKGZpbHRlci50eXBlICE9PSBGSUxURVJfVFlQRVMudGltZVJhbmdlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiZmlsdGVyIHR5cGUgbXVzdCBiZSAndGltZVJhbmdlJy5cIik7XG4gIH1cblxuICBjb25zdCBkdXJhdGlvbiA9IHRpbWluZ3NbMV0gLSB0aW1pbmdzWzBdO1xuXG4gIHN3aXRjaCAoZmlsdGVyLmFuaW1hdGlvbldpbmRvdykge1xuICAgIGRlZmF1bHQ6XG4gICAgY2FzZSAnZnJlZSc6IHtcbiAgICAgIHJldHVybiBnZXRLZXlGcmFtZXNGcmVlKGZpbHRlcik7XG4gICAgfVxuICAgIGNhc2UgJ2luY3JlbWVudGFsJzoge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAga2V5ZnJhbWVzOiBbXG4gICAgICAgICAge3ZhbHVlOiBbZmlsdGVyLnZhbHVlWzBdLCBmaWx0ZXIudmFsdWVbMF0gKyAxXX0sXG4gICAgICAgICAge3ZhbHVlOiBbZmlsdGVyLnZhbHVlWzBdLCBmaWx0ZXIuZG9tYWluWzFdXX1cbiAgICAgICAgXSxcbiAgICAgICAgZWFzaW5nczogbGluZWFyXG4gICAgICB9O1xuICAgIH1cbiAgICBjYXNlICdwb2ludCc6IHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGtleWZyYW1lczogW3t2YWx1ZTogZmlsdGVyLmRvbWFpblswXX0sIHt2YWx1ZTogZmlsdGVyLmRvbWFpblsxXX1dLFxuICAgICAgICBlYXNpbmdzOiBsaW5lYXJcbiAgICAgIH07XG4gICAgfVxuICAgIGNhc2UgJ2ludGVydmFsJzoge1xuICAgICAgY29uc3Qge3Bsb3RUeXBlLCB0aW1lQmlucywgZGF0YUlkfSA9IGZpbHRlcjtcbiAgICAgIGNvbnN0IHtpbnRlcnZhbH0gPSBwbG90VHlwZTtcblxuICAgICAgY29uc3QgYmlucyA9IHRpbWVCaW5zPy5bZGF0YUlkWzBdXT8uW2ludGVydmFsXTtcblxuICAgICAgaWYgKCFpbnRlcnZhbCB8fCAhYmlucyB8fCBiaW5zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZ2V0S2V5RnJhbWVzRnJlZShmaWx0ZXIpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBkZWx0YSA9IE1hdGgucm91bmQoZHVyYXRpb24gLyBiaW5zLmxlbmd0aCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRpbWluZ3M6IGJpbnMubWFwKChfLCBpZHgpID0+IHRpbWluZ3NbMF0gKyBkZWx0YSAqIGlkeCksXG4gICAgICAgIGtleWZyYW1lczogYmlucy5tYXAoYmluID0+ICh7dmFsdWU6IFtiaW4ueDAsIGJpbi54MV19KSksXG4gICAgICAgIGVhc2luZ3M6IGhvbGRcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCZWZvcmVMYXllcklkKHRvcE1hcFN0eWxlOiBhbnksIGJvdHRvbU1hcFN0eWxlOiBhbnkpOiBNYXBib3hMYXllclJlZiB8IG51bGwge1xuICBpZiAodG9wTWFwU3R5bGU/LmxheWVycz8ubGVuZ3RoICYmIGJvdHRvbU1hcFN0eWxlPy5sYXllcnM/Lmxlbmd0aCkge1xuICAgIGNvbnN0IGZpcnN0VG9wTGF5ZXIgPSB0b3BNYXBTdHlsZS5sYXllcnNbMF07XG4gICAgY29uc3QgZmlyc3RUb3BMYXllcklkeCA9IGJvdHRvbU1hcFN0eWxlLmxheWVycy5maW5kSW5kZXgoXG4gICAgICAobGF5ZXI6IE1hcGJveExheWVyUmVmKSA9PiBsYXllci5pZCA9PT0gZmlyc3RUb3BMYXllci5pZFxuICAgICk7XG4gICAgY29uc3QgYmVmb3JlSWR4ID0gZmlyc3RUb3BMYXllcklkeCAtIDE7XG4gICAgcmV0dXJuIGJlZm9yZUlkeCA+IC0xID8gYm90dG9tTWFwU3R5bGUubGF5ZXJzW2JlZm9yZUlkeF0gOiBudWxsO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhdGljTWFwUHJvcHMoXG4gIGtlcGxlclN0YXRlOiBLZXBsZXJTdGF0ZSxcbiAgb25WaWV3Q2hhbmdlOiAodmlld1N0YXRlOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiB2b2lkLFxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nLFxuICBtYXBib3hBcGlVcmw6IHN0cmluZyA9IERFRkFVTFRfTUFQQk9YX0FQSV9VUkxcbik6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICBjb25zdCBjdXJyZW50U3R5bGUgPSBrZXBsZXJTdGF0ZS5tYXBTdHlsZT8ubWFwU3R5bGVzPy5ba2VwbGVyU3RhdGUubWFwU3R5bGUuc3R5bGVUeXBlXTtcbiAgY29uc3QgYWNjZXNzVG9rZW4gPSBjdXJyZW50U3R5bGU/LmFjY2Vzc1Rva2VuIHx8IG1hcGJveEFwaUFjY2Vzc1Rva2VuO1xuICBjb25zdCBpc01hcGJveCA9IGdldEJhc2VNYXBMaWJyYXJ5KGN1cnJlbnRTdHlsZSkgPT09ICdtYXBib3gnO1xuXG4gIGNvbnN0IG1hcGJveFRyYW5zZm9ybVJlcXVlc3QgPSAodXJsOiBzdHJpbmcsIHJlc291cmNlVHlwZTogc3RyaW5nKSA9PiB7XG4gICAgaWYgKGlzTWFwYm94VVJMKHVybCkpIHtcbiAgICAgIHJldHVybiB0cmFuc2Zvcm1NYXBib3hVcmwodXJsLCByZXNvdXJjZVR5cGUsIGFjY2Vzc1Rva2VuKTtcbiAgICB9XG4gICAgcmV0dXJuIHt1cmx9O1xuICB9O1xuXG4gIHJldHVybiB7XG4gICAgLi4ua2VwbGVyU3RhdGUubWFwU3RhdGUsXG4gICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyOiB0cnVlLFxuICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBhY2Nlc3NUb2tlbixcbiAgICBtYXBib3hBcGlVcmwsXG4gICAgdHJhbnNmb3JtUmVxdWVzdDogbWFwYm94VHJhbnNmb3JtUmVxdWVzdCxcbiAgICBtYXBTdHlsZTogaXNNYXBib3hcbiAgICAgID8gY29udmVydE1hcGJveFN0eWxlVXJscyhrZXBsZXJTdGF0ZS5tYXBTdHlsZT8uYm90dG9tTWFwU3R5bGUsIGFjY2Vzc1Rva2VuKVxuICAgICAgOiBrZXBsZXJTdGF0ZS5tYXBTdHlsZT8uYm90dG9tTWFwU3R5bGUsXG4gICAgb25WaWV3cG9ydENoYW5nZTogb25WaWV3Q2hhbmdlLFxuICAgIG1hcExpYjogaW1wb3J0KCdtYXBsaWJyZS1nbCcpXG4gIH07XG59XG5cbi8qKlxuICogQ29udmVydCBtYXBib3g6Ly8gVVJMcyBpbnNpZGUgYSBNYXBib3ggc3R5bGUgb2JqZWN0IHRvIEhUVFBTIEFQSSBVUkxzXG4gKiBzbyB0aGF0IG1hcGxpYnJlLWdsIGNhbiBmZXRjaCB0aGVtIGRpcmVjdGx5LlxuICovXG5mdW5jdGlvbiBjb252ZXJ0TWFwYm94U3R5bGVVcmxzKHN0eWxlOiBhbnksIGFjY2Vzc1Rva2VuOiBzdHJpbmcpOiBhbnkge1xuICBpZiAoIXN0eWxlIHx8IHR5cGVvZiBzdHlsZSAhPT0gJ29iamVjdCcpIHJldHVybiBzdHlsZTtcblxuICBjb25zdCBjb252ZXJ0ZWQgPSB7Li4uc3R5bGV9O1xuXG4gIGlmICh0eXBlb2YgY29udmVydGVkLnNwcml0ZSA9PT0gJ3N0cmluZycgJiYgaXNNYXBib3hVUkwoY29udmVydGVkLnNwcml0ZSkpIHtcbiAgICBjb252ZXJ0ZWQuc3ByaXRlID0gdHJhbnNmb3JtTWFwYm94VXJsKGNvbnZlcnRlZC5zcHJpdGUsICdTcHJpdGUnLCBhY2Nlc3NUb2tlbik/LnVybDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgY29udmVydGVkLmdseXBocyA9PT0gJ3N0cmluZycgJiYgaXNNYXBib3hVUkwoY29udmVydGVkLmdseXBocykpIHtcbiAgICBjb252ZXJ0ZWQuZ2x5cGhzID0gdHJhbnNmb3JtTWFwYm94VXJsKGNvbnZlcnRlZC5nbHlwaHMsICdHbHlwaHMnLCBhY2Nlc3NUb2tlbik/LnVybDtcbiAgfVxuXG4gIGlmIChjb252ZXJ0ZWQuc291cmNlcykge1xuICAgIGNvbnN0IG5ld1NvdXJjZXM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcbiAgICBmb3IgKGNvbnN0IFtrZXksIHNvdXJjZV0gb2YgT2JqZWN0LmVudHJpZXM8YW55Pihjb252ZXJ0ZWQuc291cmNlcykpIHtcbiAgICAgIGlmIChzb3VyY2U/LnVybCAmJiBpc01hcGJveFVSTChzb3VyY2UudXJsKSkge1xuICAgICAgICBuZXdTb3VyY2VzW2tleV0gPSB7XG4gICAgICAgICAgLi4uc291cmNlLFxuICAgICAgICAgIHVybDogdHJhbnNmb3JtTWFwYm94VXJsKHNvdXJjZS51cmwsICdTb3VyY2UnLCBhY2Nlc3NUb2tlbik/LnVybFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbmV3U291cmNlc1trZXldID0gc291cmNlO1xuICAgICAgfVxuICAgIH1cbiAgICBjb252ZXJ0ZWQuc291cmNlcyA9IG5ld1NvdXJjZXM7XG4gIH1cblxuICByZXR1cm4gY29udmVydGVkO1xufVxuXG5mdW5jdGlvbiBnZXRIdWJibGVQYXJhbWV0ZXJzKGtlcGxlclN0YXRlOiBLZXBsZXJTdGF0ZSk6IFJlY29yZDxzdHJpbmcsIGFueT4ge1xuICByZXR1cm4gZ2V0TGF5ZXJCbGVuZGluZ1BhcmFtZXRlcnMoa2VwbGVyU3RhdGUudmlzU3RhdGUubGF5ZXJCbGVuZGluZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIdWJibGVEZWNrR2xQcm9wcyhcbiAga2VwbGVyU3RhdGU6IEtlcGxlclN0YXRlLFxuICBfbWFwYm94QXBpQWNjZXNzVG9rZW46IHN0cmluZyxcbiAgX21hcGJveEFwaVVybDogc3RyaW5nID0gREVGQVVMVF9NQVBCT1hfQVBJX1VSTFxuKTogUmVjb3JkPHN0cmluZywgYW55PiB7XG4gIHJldHVybiB7XG4gICAgcGFyYW1ldGVyczogZ2V0SHViYmxlUGFyYW1ldGVycyhrZXBsZXJTdGF0ZSksXG4gICAgY29udHJvbGxlcjogdHJ1ZSxcbiAgICB2aWV3czogbmV3IE1hcFZpZXcoe1xuICAgICAgaWQ6ICdtYXBib3gnLFxuICAgICAgZmFyWk11bHRpcGxpZXI6IDEuMlxuICAgIH0pXG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBbmltYXRhYmxlRmlsdGVycyhrZXBsZXJTdGF0ZTogS2VwbGVyU3RhdGUpOiBUaW1lUmFuZ2VGaWx0ZXJbXSB7XG4gIGNvbnN0IGZpbHRlcnMgPSBrZXBsZXJTdGF0ZS52aXNTdGF0ZT8uZmlsdGVycyB8fCBbXTtcbiAgcmV0dXJuIGZpbHRlcnMuZmlsdGVyKFxuICAgIChmOiBhbnkpID0+XG4gICAgICBmLnR5cGUgPT09IEZJTFRFUl9UWVBFUy50aW1lUmFuZ2UgJiZcbiAgICAgIChmLnZpZXcgPT09IEZJTFRFUl9WSUVXX1RZUEVTLmVubGFyZ2VkIHx8IGYuc3luY2VkV2l0aExheWVyVGltZWxpbmUpXG4gICk7XG59XG5cbi8vIC0tLSBWaWRlbyBleHBvcnQgdXRpbGl0aWVzIChpbmxpbmVkIGZyb20gQGh1YmJsZS5nbCBpbnRlcm5hbHMpIC0tLVxuXG5leHBvcnQgZnVuY3Rpb24gc2NhbGVUb1ZpZGVvRXhwb3J0KFxuICB2aWV3U3RhdGU6IE1hcFZpZXdTdGF0ZSxcbiAgY29udGFpbmVyOiB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9XG4pOiBNYXBWaWV3U3RhdGUgJiB7d2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9IHtcbiAgY29uc3Qgdmlld3BvcnQgPSBuZXcgV2ViTWVyY2F0b3JWaWV3cG9ydCh2aWV3U3RhdGUpO1xuICBjb25zdCBudyA9IHZpZXdwb3J0LnVucHJvamVjdChbMCwgMF0pIGFzIFtudW1iZXIsIG51bWJlcl07XG4gIGNvbnN0IHNlID0gdmlld3BvcnQudW5wcm9qZWN0KFt2aWV3cG9ydC53aWR0aCwgdmlld3BvcnQuaGVpZ2h0XSkgYXMgW251bWJlciwgbnVtYmVyXTtcbiAgY29uc3QgdmlkZW9WaWV3cG9ydCA9IG5ldyBXZWJNZXJjYXRvclZpZXdwb3J0KHtcbiAgICAuLi52aWV3U3RhdGUsXG4gICAgd2lkdGg6IGNvbnRhaW5lci53aWR0aCxcbiAgICBoZWlnaHQ6IGNvbnRhaW5lci5oZWlnaHRcbiAgfSkuZml0Qm91bmRzKFtudywgc2VdKTtcbiAgY29uc3Qge2hlaWdodCwgd2lkdGgsIGxhdGl0dWRlLCBsb25naXR1ZGUsIHpvb20sIGFsdGl0dWRlfSA9IHZpZGVvVmlld3BvcnQ7XG4gIHJldHVybiB7XG4gICAgaGVpZ2h0LFxuICAgIHdpZHRoLFxuICAgIGxhdGl0dWRlLFxuICAgIGxvbmdpdHVkZSxcbiAgICBwaXRjaDogdmlld1N0YXRlLnBpdGNoLFxuICAgIHpvb20sXG4gICAgYmVhcmluZzogdmlld1N0YXRlLmJlYXJpbmcsXG4gICAgYWx0aXR1ZGVcbiAgfSBhcyBhbnk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZVNldENhbWVyYVR5cGUoc3RyQ2FtZXJhVHlwZTogc3RyaW5nLCB2aWV3U3RhdGU6IE1hcFZpZXdTdGF0ZSk6IE1hcFZpZXdTdGF0ZSB7XG4gIGNvbnN0IG1vZGlmaWVkVmlld1N0YXRlOiBhbnkgPSB7Li4udmlld1N0YXRlfTtcbiAgY29uc3QgbWF0Y2ggPSBzdHJDYW1lcmFUeXBlLm1hdGNoKC9cXGIoPyF0bylcXGJcXFMrXFx3L2cpO1xuICBpZiAoIW1hdGNoKSByZXR1cm4gbW9kaWZpZWRWaWV3U3RhdGU7XG5cbiAgY29uc3QgdHVyZlBvaW50ID0gcG9pbnQoW21vZGlmaWVkVmlld1N0YXRlLmxvbmdpdHVkZSwgbW9kaWZpZWRWaWV3U3RhdGUubGF0aXR1ZGVdKTtcblxuICBpZiAobWF0Y2hbMF0gPT09ICdPcmJpdCcpIHtcbiAgICBtb2RpZmllZFZpZXdTdGF0ZS5iZWFyaW5nID0gbW9kaWZpZWRWaWV3U3RhdGUuYmVhcmluZyArIHBhcnNlSW50KG1hdGNoWzFdLCAxMCk7XG4gIH1cblxuICBjb25zdCBkaXJlY3Rpb25zID0gbmV3IFNldChbJ0Vhc3QnLCAnU291dGgnLCAnV2VzdCcsICdOb3J0aCddKTtcbiAgaWYgKGRpcmVjdGlvbnMuaGFzKG1hdGNoWzBdKSkge1xuICAgIGNvbnN0IGRpcmVjdGlvbk1hcDogUmVjb3JkPHN0cmluZywgbnVtYmVyPiA9IHtFYXN0OiAyNzAsIFNvdXRoOiAwLCBXZXN0OiA5MCwgTm9ydGg6IDE4MH07XG4gICAgY29uc3QgdHJhbnNsYXRlZFBvbHkgPSB0cmFuc2Zvcm1UcmFuc2xhdGUodHVyZlBvaW50LCAxMCwgZGlyZWN0aW9uTWFwW21hdGNoWzBdXSk7XG4gICAgaWYgKG1hdGNoWzBdID09PSAnRWFzdCcgfHwgbWF0Y2hbMF0gPT09ICdXZXN0Jykge1xuICAgICAgbW9kaWZpZWRWaWV3U3RhdGUubG9uZ2l0dWRlID0gdHJhbnNsYXRlZFBvbHkuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMF07XG4gICAgfSBlbHNlIHtcbiAgICAgIG1vZGlmaWVkVmlld1N0YXRlLmxhdGl0dWRlID0gdHJhbnNsYXRlZFBvbHkuZ2VvbWV0cnkuY29vcmRpbmF0ZXNbMV07XG4gICAgfVxuICB9XG5cbiAgaWYgKG1hdGNoWzBdID09PSAnWm9vbScpIHtcbiAgICBtb2RpZmllZFZpZXdTdGF0ZS56b29tICs9IG1hdGNoWzFdID09PSAnSW4nID8gMyA6IC0zO1xuICB9XG5cbiAgcmV0dXJuIG1vZGlmaWVkVmlld1N0YXRlO1xufVxuXG50eXBlIFJlc29sdXRpb24gPSB7dmFsdWU6IHN0cmluZzsgbGFiZWw6IHN0cmluZzsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXJ9O1xuXG5jb25zdCBSRVNPTFVUSU9OUzogUmVzb2x1dGlvbltdID0gW1xuICB7dmFsdWU6ICc5NjB4NTQwJywgbGFiZWw6ICdHb29kICg1NDBwKScsIHdpZHRoOiA5NjAsIGhlaWdodDogNTQwfSxcbiAge3ZhbHVlOiAnMTI4MHg3MjAnLCBsYWJlbDogJ0hpZ2ggKDcyMHApJywgd2lkdGg6IDEyODAsIGhlaWdodDogNzIwfSxcbiAge3ZhbHVlOiAnMTkyMHgxMDgwJywgbGFiZWw6ICdIaWdoZXN0ICgxMDgwcCknLCB3aWR0aDogMTkyMCwgaGVpZ2h0OiAxMDgwfSxcbiAge3ZhbHVlOiAnNjQweDQ4MCcsIGxhYmVsOiAnR29vZCAoNDgwcCknLCB3aWR0aDogNjQwLCBoZWlnaHQ6IDQ4MH0sXG4gIHt2YWx1ZTogJzEyODB4OTYwJywgbGFiZWw6ICdIaWdoICg5NjBwKScsIHdpZHRoOiAxMjgwLCBoZWlnaHQ6IDk2MH0sXG4gIHt2YWx1ZTogJzE5MjB4MTQ0MCcsIGxhYmVsOiAnSGlnaGVzdCAoMTQ0MHApJywgd2lkdGg6IDE5MjAsIGhlaWdodDogMTQ0MH1cbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvbHV0aW9uU2V0dGluZyh2YWx1ZTogc3RyaW5nKTogUmVzb2x1dGlvbiB7XG4gIHJldHVybiBSRVNPTFVUSU9OUy5maW5kKHIgPT4gci52YWx1ZSA9PT0gdmFsdWUpIHx8IFJFU09MVVRJT05TWzBdO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxLQUFBLEdBQUFDLE9BQUE7QUFDQSxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFGLE9BQUE7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
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const ModalDialogFactory: () => import("styled-components").
|
|
1
|
+
declare const ModalDialogFactory: () => import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("../common/modal").ModalDialogOwnProps & Omit<import("react-modal").Props, "className" | "style" | "ariaHideApp"> & import("react").RefAttributes<import("../common/modal").ModalDialog>, never> & Partial<Pick<import("../common/modal").ModalDialogOwnProps & Omit<import("react-modal").Props, "className" | "style" | "ariaHideApp"> & import("react").RefAttributes<import("../common/modal").ModalDialog>, never>>> & string & Omit<typeof import("../common/modal").ModalDialog, keyof import("react").Component<any, {}, any>>;
|
|
2
2
|
export default ModalDialogFactory;
|
|
@@ -2,10 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import { ImageModalContainerProps } from './image-modal-container';
|
|
3
3
|
import { Provider } from '@kepler.gl/cloud-providers';
|
|
4
4
|
import { cleanupExportImage as cleanupExportImageAction } from '@kepler.gl/actions';
|
|
5
|
-
export declare const StyledInputLabel: import("styled-components").
|
|
6
|
-
export declare const StyleSharingUrl: import("styled-components").
|
|
7
|
-
ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
8
|
-
}>, never>, never>>;
|
|
5
|
+
export declare const StyledInputLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, never> & Partial<Pick<React.DetailedHTMLProps<React.LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>, never>>> & string;
|
|
6
|
+
export declare const StyleSharingUrl: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>> & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "className"> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof React.ClassAttributes<HTMLDivElement> | keyof React.HTMLAttributes<HTMLDivElement>> & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement>, "className">>> & string;
|
|
9
7
|
interface SharingUrlProps {
|
|
10
8
|
url: string;
|
|
11
9
|
message?: string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type SwipeEasing = 'linear' | 'ease-in-out';
|
|
2
|
+
/**
|
|
3
|
+
* Compute the swipe percentage at a given time.
|
|
4
|
+
*/
|
|
5
|
+
export declare function getSwipePercentageAtTime(timeMs: number, durationMs: number, startPct: number, endPct: number, easing?: SwipeEasing): number;
|
|
6
|
+
/**
|
|
7
|
+
* Composite two canvases (left/right map views) with a swipe divider
|
|
8
|
+
* into a single output canvas.
|
|
9
|
+
*/
|
|
10
|
+
export declare function compositeSwipeFrame(leftCanvas: HTMLCanvasElement, rightCanvas: HTMLCanvasElement, outputCanvas: HTMLCanvasElement, percentage: number, showDivider?: boolean): void;
|